ランレングスエンコーディングを実行するプログラムを作成しました。典型的なシナリオでは、テキストが
AAAAAABBCDEEEEGGHJ
ランレングスエンコーディングはそれを作ります
A6B2C1D1E4G2H1J1
ただし、繰り返されない文字ごとに1が追加されていました。私はそれを使ってBMPファイルを圧縮しているので、繰り返し文字の出現を示すためにマーカー「$」を配置するというアイデアを思いつきました(画像ファイルに大量の繰り返しテキストがあると仮定します)。
だからそれは次のようになります
$A6$B2CD$E4$G2HJ
現在の例では、長さは同じですが、BMPファイルには顕著な違いがあります。今、私の問題はデコードにあります。一部のBMPファイルにはパターンがあります。$<char><num>
つまり$I9
、元のファイルにあるため、圧縮ファイルにも同じテキストが含まれています。$I9
ただし、デコードすると、9回繰り返される繰り返しIとして扱われます。したがって、間違った出力が生成されます。私が知りたいのは、元のソースと競合しないように、繰り返し文字(実行)の開始をマークするためにどの記号を使用できるかです。