無圧縮画像のお話し。

WWWで用いるべき画像は圧縮されたものの筈ですが、時として已む無く無圧縮画像を使う事があります。

その理由は形式によって異なります。

無圧縮GIF画像

かつて、GIF画像の基幹技術であるLZW圧縮アルゴリズムに特許問題があったとき、その問題を回避するために一時的に無圧縮GIF画像が使われた事がありました。

とは言うものの、GIF画像そのものがLZW圧縮アルゴリズムの使用を前提としたフォーマットだったため、かなり工夫が求められました。

GIF画像での圧縮データは、画像のピクセルに要するビット数を n としたとき、n+1 ビットのデータから始まり、辞書のデータが増えるごとにビット数を最大24まで増やしていきます。

また、未知のデータ列が現れる度に辞書データが増えていくため、 最速だと2nオクテットのデータを処理するごとにビット数が増えていきます。

加えて、2nはクリアコード、2n+1は終了コードとなっているため、実際には2n-3オクテットのピクセルデータを登録する度にクリアコードを発行して辞書をクリアする事になります。

クリアコードがいちいち必要な事、データのビット数が n+1ビットに拡げられる事から、無圧縮と言うより却って膨張させている事になりますが、背に腹は代えられなかったと言うのでしょう。

もちろん、LZW圧縮アルゴリズムの特許問題が失効した今日では、これらの方法は全く不要な手法となりました。

無圧縮PNG画像

圧縮技術に特許問題が無いとされるPNG画像においても、無圧縮が利用される事があります。

それはデフレート圧縮を自分で作るのはかなり難しいからでしょう。

但し、PNG画像の仕様には無圧縮は定義されておりません。

しかしながら、PNG画像で採用されている圧縮方式であるデフレート圧縮には最大65,535オクテットの連続するデータを無圧縮で処理する事が出来るようになっております。

この無圧縮PNG画像は、今もPNG画像形式のアクセスカウンタCGIなどで使われております。


ページ外へのご案内。