H.265という名前がITUに承認されたということで、HEVCのエンコーダとデコーダを使ってみました。リポジトリはFraunhoferのHigh Efficiency Video Coding (HEVC)にあります。HEVCのエンコーダとデコーダの使用方法は、ReferenceSoftwareManualに記載されています。

HEVCのビルドと実行


まず、SubversionをApacheSubversionからインストールします。一番下のwin32svnを使用しました。インストール後、C:\Program Files (x86)\Subversion\binにパスを通します。

(1)リポジトリをチェックアウト

svn co svn://hevc.kw.bbc.co.uk/svn/jctvc-hm/


(2)ライブラリとエンコーダ・デコーダをビルド

VisualStudio2010で以下のプロジェクトをビルド。
jctvc-hm\trunk\build\HM_vc10.sln


(3)ビルドしたバイナリを取得

以下のフォルダにTAppEncoder.exeとTAppDecoder.exeがあります。

jctvc-hm\trunk\bin\vc10\Win32\Release


(4)YUVファイルからエンコード

画像サイズとフレームレートとフレーム数、画質を設定します。エンコーダの入出力はYUVファイルなので、ImageMagicKを使って変換しています。

convert src.bmp src.yuv
TAppEncoder.exe -c encoder_intra_main.cfg -i src.yuv -b str.bin -wdt 320 -hgt 160 -fr 1 -f 1 -q 1
TAppDecoder.exe -b str.bin -o out.yuv
convert -size 320x160 out.yuv out.bmp


使ってみた印象


手元で動かしてみた印象としては、イントラの高圧縮領域で2[dB]近く性能が向上していて素晴らしいです。HEVCはスーパーハイビジョンを想定しているということもあり、使ってみるまでは、画像の解像度が大きくないと、H.264とあまり差が出ないかなと考えていたのですが、QVGAの画像に対してもH.264のJMとの差が1[dB]近く出ていて驚きました。HEVCはかなり優秀なCODECだと思います。

アニメ系でもほとんどモスキートノイズが出ないので、アニメは全部HEVCになると幸せになれると思います。14年7月に開始という噂のNHKの4k放送もHEVCになってほしいですね。

演算負荷と考察


デコーダは、マクロブロックライン単位のスレッド並列デコードが可能になったのと、デブロッキングフィルタの演算負荷が削減された関係で、H.264と同等か、むしろ高速にデコードできるようです。Docomoは、HEVC復号ソフトウェアにおいて、以下のような驚異的なデコード性能を出しています。

本復号ソフトウェアにて、スマートフォン上でHEVCのフルHD動画、汎用パソコン上で秒60コマの4K動画の再生が実証されています。


課題はエンコーダで、HEVC Complexity and Implementation Analysisによると、現状はフルHDの動画のイントラオンリーのエンコードで、実時間の1000倍のエンコード時間が必要となっています。

Times are recorded in tens of seconds such as to illustrate the ratio to real-time operation.Even for intra-only configurations, the encoding time may exceed 1000 times real-time. Encoding times were obtained
on a cluster containing Xeon-based servers (E5670 clocked at 2.93 GHz) and using gcc 4.4.5.


スマートフォンでは、チップの高性能化がすごいスピードで進んでいるので、数年でハードウェアデコーダの搭載が当たり前になってくるかと思います。そのタイミングで、エンコーダの高速化がどこまで進んでいるかが重要そうです。予想としては、最初のエンコーダは、圧縮性能を落としてエンコードを高速化したものが市場に出てきて、それから時間を経て、リファレンスモデルの性能に近づいていくのかなと思います。

オススメする文献


HEVCの仕様については、以下のPDFにまとまっています。

Overview of the High Efficiency Video Coding(HEVC) Standard


日本語書籍としては、インプレスのHEVC教科書が一番オススメです。HMの使い方と、HMのλパラメータの解説があります。



また、”高効率映像符号化技術 HEVC/H.265とその応用 ”もコンパクトにデコーダ仕様がまとまっています。



P.188のAVC/H.264とHEVC/H.265の相違点を引用します。

イントラ符号化に関するAVC/H.264とHEVC/H.265の相違点は
・イントラ予測モードの多様化
・参照画素、および参照画素と予測画像の間の適応平滑化フィルタ
・予測・変換ブロックサイズの多様化
である。

インター符号化に関するAVC/H.264とHEVC/H.265の相違点は
・マージモードの導入
・適応動きベクトル予測
・小数画素生成用の内挿フィルタの改善
・予測・変換ブロックサイズの多様化
である。