日本電信電話株式会社(以下NTT、本社:東京都千代田区、代表取締役社長:三浦 惺)は、最新の映像符号化国際標準MPEG-4 AVC(Advanced Video Coding)/H.264方式に準拠したソフトウェアエンコードエンジンを開発しました。本エンコードエンジンは、PC上で動作するソフトウェアライブラリ※1で(図1)、エンコーダやトランスコーダなどのアプリケーションソフトに組み込んで利用します。
本エンコードエンジンは、マルチコアPCに適した圧縮処理の並列化により、従来と同程度の画質では2倍の高速化、従来と同程度の処理時間では20%の圧縮率向上を実現し、これは現在の技術水準においては最高水準の圧縮性能といえます。
また、再生映像の異常箇所を自動的で検出し、圧縮をやり直す"オートリトライ技術"も搭載し、視聴確認作業や不具合発生時の再符号化作業を軽減し、圧縮作業コストを削減します。これら技術により、映像配信サービスにおけるサービスコスト削減に貢献します。
なお、本エンコードエンジンは、2010年4月12日から15日に米国ラスベガスで開催される世界最大の放送技術展NAB2010のNTTブース(South Hall Upper Level, SU7217)にて展示いたします。
|
1.研究開発の背景 |
 |
近年、IPTVやVoDサービスをはじめとする映像配信サービスが普及しつつあります(図2)。これら映像配信サービスでは、地上波ディジタル放送等で利用されているMPEG-2方式に加え、より高圧縮なMPEG-4 AVC/H.264方式の利用が拡大しています。MPEG-4 AVC/H.264方式は、高圧縮率を追及すると処理時間が長くなる課題がありますが、サービスコスト削減のためには高速で高圧縮なエンコーダが求められています。
従来より、NTT研究所では、放送・プロ向けのコーデックLSIや機器の研究開発を行っており、その技術力やノウハウをもとに、映像配信サービス市場のニーズに適したMPEG-4 AVC/H.264ソフトウェアエンコードエンジンの研究開発を進めてきました。
|
2.技術概要 |
 |
(1)並列化技術
|
|  |
本エンコードエンジンでは、最近のトレンドでもあるマルチコア(1台の筐体に複数のコアを搭載して性能を向上)PCの性能を十分に発揮させることを念頭に、並列処理の方法を見直しました。これまでの画面分割による並列処理では、分割した画像間でデータ参照ができず、分割数の増加が圧縮率の低下につながりました。そのため、分割数を制限する必要があり、コア数が多い最新PCの性能を十分に発揮できませんでした。そこで、これまで培ってきた映像コーデックLSIの技術を応用し、最小符号化単位であるマクロブロック単位で並列化し、マクロブロック間のデータ参照を可能とすることで、圧縮率低下を防ぎつつマルチコアPCの搭載コア数に応じた並列化を可能としました(図3)。これにより、8コアを搭載した最新のマルチコアPCでは、従来の半分の時間で圧縮できるようになりました。また、圧縮作業コストの観点から映像配信サービスで許容される圧縮作業時間(実時間の5倍程度)であれば、利用する符号化ツールを追加することで、20%の低ビットレート化が実現できました。この条件下では、最高水準の圧縮性能です。
本エンコードエンジンの並列処理は、将来的なPCの搭載コア数増加を対応した設計となっており、最新PCの性能を十分に発揮できます。
|
 |
(2)オートリトライ技術
|
|  |
一般に、圧縮が難しい映像(例えば、水しぶきなど)が続いて目標ビットレートを越える状態が続くと、圧縮データの伝送が間に合わず映像の再生ができなくなるため、圧縮作業をやり直さなければなりません。目標ビットレートに収まるように圧縮作業をやり直す際、圧縮が難しい部分に合わせて圧縮条件を設定するため、映像全体の画質が低下する問題があります。また、圧縮データの確認ややり直しの手間もかかります。
そこで、本エンコードエンジンでは、符号化制御において、圧縮が難しい部分のみの圧縮条件の変更を可能とし、また圧縮処理の途中で異常箇所を検出して自動的に再圧縮処理を行えるようになりました。これにより、映像全体の画質低下を防ぐとともに、再圧縮の手間を削減でき、圧縮作業の省力化を実現できます。
|
3.今後の予定 |
 |
今後は、2010年後半の製品化を目標として、本エンコードエンジンを組み込んだアプリケーションの開発やSDK化※2を検討します。なお、本エンコードエンジンは、4/12〜15に米国ラスベガスで開催される世界最大の放送技術展NAB2010のNTTブース(South Hall Upper Level, SU7217)にて展示いたします。
|
<用語解説> |
| ※1:ソフトウェアライブラリ |
 |
エンコードエンジンは、ソフトウエアライブラリであり、単体では利用できません。アプリケーションから本エンコードエンジンを呼び出して利用します。例えば、エンコーダアプリケーションを実現するには、映像や音声の入力部分、音声の圧縮部分、映像と音声の圧縮データを多重化する部分が必要になります。
|
※2:SDK(Software Development Kit) |
 |
本エンコードエンジンライブラリを利用してアプリケーションを開発する際に必要なツールセットのことです。
|