圧縮のアルゴリズムのひとつで、連続して同じデータが現れる場合に、「そのデータ1個+長さ」というデータに置き換えることで圧縮する手法です。
たとえば「AAABBBBBBCDD」というデータを「A3B6C1D2」のように置き換えます。圧縮後のデータから元のデータを取り戻すことが可能なので、可逆圧縮に分類されます。
さきほどの例で「C」が「C1」に置き換えられてしまっているように、ごく単純なランレングス圧縮の実装では、連続していないデータがあると、その部分はかえってデータ量が増加してしまいます。この問題を解決する手法はいくつか考案されていますが、単純な方法は、連続する回数が1回だけなら長さを付加せずに、そのままにしておくというものです。「AAABBBBBBCDD」なら「A3B6CD2」とすれば、データ量が増加してしまうことは防がれます。
ランレングス圧縮は、連続データが多い場合に効率が高まるので、モノクロ画像や FAX の送信データの圧縮などで使用されます。
Programming Place Plus のトップページへ
はてなブックマーク に保存 | Pocket に保存 | Facebook でシェア |
X で ポスト/フォロー | LINE で送る | noteで書く |
RSS | 管理者情報 | プライバシーポリシー |