プログレッシブJPEGと普通のJPEGはどこが違うのでしょうか。
プログレッシブJPEGは,7/1号p.266で解説したインタレースGIF同様,データの並び順を替えることで,画像のイメージを素早く表示できるようにした技法です。しかし,JPEGは一度「DCT」と呼ばれる周波数変換を行っているため,GIFほど分かりやすい構造にはなっていません。簡単に説明すると,JPEGはまず画像を8×8の正方形のブロック単位に分け,それぞれの8×8ブロックを「ジグザグスキャン」と呼ばれる独特の並び順に変換したうえで,その画像の周波数成分を抽出し,量子化と呼ばれる足切り処理を行ってから格納するという手順になっています。
したがってJPEG画像を読み込むときには,まず逆量子化と呼ばれる手順で足切り部分を補完してから,「逆DCT」と呼ばれる手法で周波数成分を画像成分に戻し,逆ジグザグスキャンで正規の画像に並べ替えるという手順になります。通常のJPEGでのデータ格納方法を模式図で示すと@のようになるのですが,プログレッシブJPEGの場合はAのように,格納方法が変わっています(厳密にはやや違うのですが,大まかな理解としてはこのような感じでいいでしょう)。
このため,とりあえず最初の周波数成分1を全部読み込んだ段階で画像全体のイメージがつかめるわけです(ただしこの段階では,画像が8×8のモザイク状になっていて,ディテールは分かりません)。高い周波数成分を読み込んでいくにつれ,だんだんディテールが明らかになっていきます。
基本的にプログレッシブJPEGも,この並び順以外は通常のJPEGと同じと考えてかまいません。
(大原雄介)
図 通常のJPEGとプログレッシブJPEG