KTAソフトウェアの手引き @ PCSJ/IMPS 2008
PCSJ/IMPS2008 in 修善寺に参加してきました.ナイトセッションのメモです.
とりあえず,前半のみ.後半はまた今度.
イントロダクション
KTAはKey Technical Areasの略で,ITU-T SG16 Question 6 Visual Coding Expert Group (VCEG)で議論されている.2005年10月にスタートし,JM11.0ベースに新しい符号化ツールを追加している
KTA#1 符号化効率改善,KTA#2 計算量削減
計算量削減とは,JMで非常に時間のかかるRDoptの高速化ではなく(残念!),仕組みとしての計算量削減.例えば,Entropy Slice(Parallel CABAC)はエントロピー符号化だけでSliceが組めるようになっている.ちなみに,CABACは非常に演算時間はかかるが,並列化が難しい処理でした.
KTA(のソースコード)は http://iphome.hhi.de/suehring/tml/download/KTA/ で手に入る."KTA HHI"で検索すれば出てくるはず.
符号化効率改善の考え方
B%の符号量削減を実現するためには,「独立に」A%の符号量削減可能な符号化ツールが何個必要になるのか?
10%削減できるツールが7個あれば,符号量を半分にできる!
寄書(Contributions)
ラポータ会議(議長権限で開催,年3回) http://wftp3.itu.int/av-arch/jvt-site/
JVTの会議 http://wftp3.itu.int/av-arch/video-site/
他に,MPEGの会議があるが,一般公開はされていない
マニュアル
JMのマニュアル:JVT-X072:12.3のマニュアル
KTAのマニュアル:VCEG-AF11 1.3のマニュアル KTA Toolの説明
ただし,configファイルのオプションは突然変わったりするので,ヘッダファイル等で確認した方がよい.
テスト画像
VCEG http://wftp3.itu.int/av-arch/video-site/sequences/
MPEG ftp.tnt.uni-hannover.de MPEGのaccountが必要
VQEG http://www.its.bldrdoc.gov/vqeg/
映像メディア http://www.ite.or.jp/shuppan/testchart_index.html
StEM http://www.dcimovies.com
CoSME http://www.dcaj.org/cosme/index.html
評価方法
Bjontegaard metricを使う.詳しくはVCEG-M33を参照のこと.
量子化一定で4点符号化結果(PSNR,ビットレート)をカーブで近似し,積分してゲインを計算(ΔPSNR(dB),ΔBitrate(%))
実行ファイルはavsnr.exeで,av-arch/video-site/H26L/avsnr4.zipから入手可能.また,Excelマクロ(VCEG-AI11参照)もある.
実験条件も整備されつつある.VCEG-AA10, VCEG-AE10r1, VCEG-AH10,VCEG-AI10を参照のこと.
例えば,GOP構造は,IPPP(baseline),IPPP(High),IBBP(Hight),階層双方向予測構造(High),I-Only(Baseline, High)など.また,解像度はQCIF, CIF,720p,1080pなど.量子化一定で4点(QP=22,27,32,37)符号化.最強のH.264/AVCと比較!!
最強のH.264/AVCと比較というのが以外と辛い.いわゆるAVCよりもかなり効率が上がっている上に,計算時間も半端ない.階層双方向予測構造というのがキー.
階層双方向予測構造(Hierarchical Bi-prediction structure)
方式:双方向予測しているフレームからも参照する入れ子の予測構造
目的:時間的冗長度の削減
対wavelet戦略(MCTF)
今使われているのは8枚飛ばし
10%ぐらいレート削減
適応量しか丸め処理 ARO Adaptive Rounding Offset
ミッドトレッド+一様量子化が現状
入力値Xの絶対値の期待値E{x}と,逆量子化後の再生値E{Q[x]}の期待値をそろえるようにオフセットを追加
mobile 10Mbps で5dBとかあがる.基本的に高ビットレート時に効く.
ピクチャ単位の複数符号化 Picture based multi-pass encoding
複数のpicture parameter setを切り替えて,重み付き予測と量子化パラメータを制御
目的:ピクチャレベルの最適化
特に重み付き予測係数の最適化に予測効率向上
silent shuttlestart 10%以上あがる
一見静止しているようなシーケンスでも,重み付き予測を積極的に利用するとかなり効率が改善される.シーケンス依存なので,まったく効かない場合もある.
KTAの特徴
- Rate Distortion Optimization
- MEとモード決定は別ループ
- 符号化結果をメモリで保持
- 補間フィルタ処理は1画面単位で結果をメモリで確保
- 豊富なEncoding技術
- PictureレベルのRDO
- 量子化の最適化技術
- 高速ME
- KTA Toolは#define文で分離
QCIFはフルサーチ,大きな画像はEPZSを使う
config(cfg)ファイルは後ろに書いた方が優先されるので,後ろに書き足すと良いですよ
デコーダーの速度を測るときは,ファイル出力をしないように
global.hでグローバル変数が定義されている.以下の構造体に着目
- input:入力パラメータ
- img:ピクチャ単位でのパラメータ
推奨したいこと
- ソースコード管理システムの導入
- Coding規約は守ろう!
- 自分のコードは#defineで分離
- Decoderは必ず作成しよう
- Encoderの局所複合画像とDecoderの復号画像が一致するか確認!!
- 絵を見てみよう!