画像処理 その9

このエントリーをはてなブックマークに追加
510デフォルトの名無しさん

画像自体のエフェクトの話じゃなくて済まないんだが、BMPのランレングス圧縮を自力でやってみた。

圧縮、展開、表示とうまくいくのでデータの整合性としては正しいと思うんだけど、圧縮結果の容量
がフォトショップで出力した画像より5〜8%程度大きい…。

何で差が出るのか画像の中を見てみたら、例えば

AAAABCDEFGHHIJKKKLMNNNNNNN

AAAA BCDEFGHHIJKKKLM NNNNNNN:フォトショップ
AAAA BCDEFGHHIJ KKK LM NNNNNNN:俺プログラム

みたいにフォトショはKKKなど三つ以上連続している場合も不連続領域に含めている感じだった。
おそらくそれで制御コードの容量の差が結果の大きさの違いになって現れたんじゃないかと。

ただ、機械的にやってるわけではなさそうで、単純に三つ以上連続している場合に不連続領域
を止めてるケースや、不連続の途中で(まだ続けられるのに)切ってることもある。

何が聞きたいかというと、容量的に最小になるアルゴリズムってあるのでしょうか? ってことです。

フォトショのBMPのランレングス圧縮はでかい画像に適用しても結構早いので、PNGの圧縮みたいに
がんばって探してるふうでもなさそうなんで…。

ご存知の方いませんか?