JPEG再考(その2)

DC,AC成分の符号量の割合

 昨日の続き.予告通りJPEGにおけるビット量の割合を調べてみた.DC成分が大部分を占める,と勝手に思い込んでいた.でも実際にはそんなことはなかった.まずは結果から.


Lenna


Barabara


Foreman001


Mobile&Calendar001

 グラフの見方は以下の通り.横軸はエンコーダの品質パラメータで10刻みで動かしてみた.パラメータとRDの関係は昨日のグラフからだいたい推測できると思われます.縦軸は1ブロックあたりのビット量で,JPEGの1ブロックは8x8の64画素になります.非圧縮なら512bitになるはずで,当然ながらそれよりもかなり小さいです.1bppは縦軸の64に相当するはずです.

 各系列に行く前に,AC成分の符号量をどのように計測したかを説明します.AC成分の符号化は2次元VLCを用いているので,どの周波数領域が何ビットというようにはうまく対応づけられません.そこで,ジグザグスキャン順に符号化する係数の個数を指定します.言い換えると,指定した周波数より高いところの量子化テーブルを非常に大きくしたのと同じです.ここではTrancationと言うことにしましょう.Trancationする個数を変えて,AC成分の符号量を計測します.

 DCというのは読んで字のごとく,DC成分の符号量です.きわめて少ないです.それもそのはず,DPCMをかけているので値としてもそこそこ小さいわけです.次に,AC0〜AC8は,AC成分の符号量です.AC0はTrancationしなかった場合,AC1は右下半分をTrancationした場合,AC2は右下半分+7個の係数をTrancationした場合,AC3は……という感じで,最後はAC成分2個の場合になります.

 見慣れないグラフなので理解するのが難しいです.

 結局のところ,DC成分やAC成分数個というのはあまりビット量を占めているわけではないようです.無視できるほどではないにしても,ずば抜けて多いわけでもない.そんな感じです.

 画像間で比較してみると,相変わらずMobile&Calendarの符号量がずば抜けて多いことが解ります.当然ながらDC成分は同じぐらいなのですが,AC成分の符号量が他の2倍近くあります.これは何とかならないものなのか…….

まとめ

 飽きてきたのでサクサクまとめます.JPEGの符号化効率は高くない.突然原因を言いますと,DC成分の予測にDPCMを用いていること,AC成分の予測を行っていないことでしょう.こういう結論はもっと実験をしないといえないはずなのですが,わりと自明なので…….JPEG2000は多重解像度解析によって各成分の予測に周辺のブロックすべてを使っていることに相当するでしょうし,H.264のイントラ予測も符号化済みの周辺ブロックからAC成分も含めて予測を行っているので予測効率が上がっているのでしょう.実はこれが言いたかっただけです.

 明らかに出来た課題があるとすれば,Mobile&Calendarの符号量が多すぎることですかね.多分自己相関係数をとれば確かに相関が低いとかでそうですけど.統計的でない先験的な知識を組み合わせて(例えば,画像として人が知覚できる),もっと符号量を削減できると思うんですが.