- ベストアンサー
ランレングス法の圧縮率
「attending the meeting」という文字列をランレングス法で圧縮した場合、どのような結果になるのかがいまいちよくわかりません。 スペースの部分は無視するのでしょうか??
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
「繰り返し部分を纏める」というのがランレングスの基本ですから、 単純に考えると「tt」「ee」あたりが圧縮対象ですね。 a[t*2]ending the m[e*2]ting という感じのデータになります。 「辞書」を使う方式ですと A="ing" attend{A} the meet{A} という風になります。 両方使うと、 A="ing" a[t*2]end{A} the m[e*2]t{A} 元データによっては、ヘタすると元より大きくなります。 そういう場合はあえて圧縮をしないほうがいいのでそのままです。
その他の回答 (2)
- toyomimi
- ベストアンサー率32% (9/28)
ランレングスには1バイト単位のものと2バイト単位のものがあります。通常はバイトです。 また、個々のバイトなりワードの内容がどんなものかは関係ありません。 ご指定の文字列の場合共通であると認識できるのは ing だけです。それ以外は一致探索の最小の文字列に該当しません。 設計にも依りますが、2度目の ing を最小のビット数で表現すると、16ビット、またはそれ以下になるのが普通です。 また、残りの部分を最大のビット数で表現すると、1バイトにつき9ビット必要になります。 ですから、この程度の文字列の場合は、原始データよりも処理後のほうが大きくなり、それを検知して自動的に圧縮しないようにするのが一般的です。
- BLUEPIXY
- ベストアンサー率50% (3003/5914)
ランレングス法って、連続するデータを個数で表すことによって圧縮する方法ですよね。 "attending the meeting" の場合圧縮できるようなデータがないので圧縮はできないと思います。 また、一般にスペースは無視したりしないと思います。