動画像符号化装置、動画像符号化方法およびプログラム
【課題】量子化制御変数ごとの発生符号量を正確に推定し、フレームごとの符号量を適切に割り当てながら、処理時間が著しく増大しない動画像符号化装置等を提供する。
【解決手段】動画像符号化装置1は、第1段階目の符号化を異なる量子化制御変数によって複数回実行する第1段階符号化手段55と、第1段階目の複数の符号化結果を用いて全ての量子化制御変数に対してフレームごとに発生する符号量を推定する符号量推定手段57と、符号量の推定結果からフレームごとの符号量の割り当てを行う符号量割り当て手段59と、割り当てたフレームごとの符号量に基づいて第2段階目の符号化を実行する第2段階符号化手段61と、を具備する。特に、第1段階符号化手段55はフレームの属性に応じて実行する符号化の回数を可変とし、2回目以降の符号化処理に含まれる処理の一部を省略する。
【解決手段】動画像符号化装置1は、第1段階目の符号化を異なる量子化制御変数によって複数回実行する第1段階符号化手段55と、第1段階目の複数の符号化結果を用いて全ての量子化制御変数に対してフレームごとに発生する符号量を推定する符号量推定手段57と、符号量の推定結果からフレームごとの符号量の割り当てを行う符号量割り当て手段59と、割り当てたフレームごとの符号量に基づいて第2段階目の符号化を実行する第2段階符号化手段61と、を具備する。特に、第1段階符号化手段55はフレームの属性に応じて実行する符号化の回数を可変とし、2回目以降の符号化処理に含まれる処理の一部を省略する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、2段階の符号化を実施し、第1段階目の符号化の結果によって符号化対象の画像の性質を解析し、その解析結果に基づいて第2段階目の符号化を行う動画像符号化装置、動画像符号化方法およびプログラムに関する。
【背景技術】
【0002】
動画像符号化技術は、国際標準化作業とともに進歩を遂げている。標準化の理由は、符号化された動画像コンテンツを広く流通させるには、復号化処理における相互運用性が必要だからである。現在、MPEG(Moving Picture Experts Group)−1、MPEG−2、MPEG−4、H.264/AVC(Advanced Video Coding)などの標準方式が存在する。これらの標準方式によって定められた規約は、復号化処理のための最低限の相互運用性を確保するためのものであり、標準方式の実現には技術競争の余地が残されている。従って、多くの技術者たちが、処理時間の短縮や画像品質の向上等を図り、研究開発を行っている。
【0003】
例えば、主に、画像品質の向上を目的として、2段階の符号化を実施する仕組みが知られている(特許文献1、特許文献2、特許文献3)。
特許文献1では、第1段階目の符号化によってフレーム単位の統計データを取得し、それに基づいて動画像シーケンス全体にわたって画像品質の向上を目的としたフレーム単位の符号量割り当てを行い、可変ビットレートによる第2段階目の符号化を行っている。
また、特許文献2では、1つの量子化スケールのみによって第1段階目の符号化を行い、当該量子化スケールと発生符号量の積などで表される複雑度指標データなるものに基づいて、フレーム単位の符号量割り当てを行っている。
また、特許文献3では、ある適当な量子化スケールを用いた第1段階目の符号化によって取得した統計データのサンプルを用いて、その他の全量子化スケール(=第1段階目の符号化に用いていない量子化スケール)による発生符号量を指数関数や高次関数の近似式で推定する。そして、その推定結果を基に、指定されたビットレート等のパラメータ条件を満たし、かつ画像品質が最も向上するようなフレーム単位の符号量割り当てを行い、第2段階目の符号化を行っている。
【特許文献1】特開平8−186821号公報
【特許文献2】特開2003−18603号公報
【特許文献3】特開2007−28156号公報
【発明の開示】
【発明が解決しようとする課題】
【0004】
しかしながら、特許文献1では、最適符号量割り当ての具体例として、希望的な結果を示す図(特許文献1の図6)と、「最適符号量割当は、伝送路の最大レートとバッファリングの制限を満たす範囲で安定した画質を得るために、入力画像の複雑さに応じた符号量割当を行うことでなされる。」(特許文献1の段落番号0038)と記載しているに過ぎない。これでは、符号量割り当てについて、動画像符号化装置の具体的な動作が記載されているとは言えない。
また、特許文献2の仕組みでは、第1段階目の符号化を1回しか行わず、すなわち、1つの量子化スケールしか用いず、符号量割り当て処理に用いる統計データ(=第1段階目の符号化による発生符号量)が1つである。これでは、複雑度指標データなるものの精度が十分とは言えず、ひいては符号量割り当てを適切に行うことはできない。
また、特許文献3の仕組みでは、近似式の具体例として、符号量が量子化スケールの逆数に依存して決まる式を挙げている(特許文献3の段落番号0031)。そして、「第1符号化において、フレーム毎に固定の量子化スケールを用いて符号化を行い、フレームごとの発生符号量を量子化の影響を受ける部分とヘッダ等の量子化の影響を受けない部分とに分離して集計する・・・」(特許文献3の段落番号0033)と記載されている。すなわち、特許文献3の仕組みでは、フレームごとに固定の量子化スケールを用いて第1符号化を行うことから、特許文献2と同様、フレームごとに1つの量子化スケールに対する統計データしか得られない。確かに、前述の近似式の具体例は、量子化の影響を受けて決定する係数が1つしかないことから、1つの量子化スケールに対する統計データだけでも式の決定は可能である。しかしながら、近似式のモデル自体が、様々な画像の性質に対応できるものにはなっていないことから、発生符号量推定の精度は十分と言えず、ひいては符号量割り当てを適切に行うことはできない。
【0005】
以上のとおり、特許文献1から特許文献3に係る従来技術では、符号量割り当てを適切に行うことが出来ず、画像品質の向上を図ることはできない。
尚、量子化スケールとは、量子化の粗さを既定する値であり、量子化スケールが大きい場合、量子化によって失われる情報量は多くなるが、圧縮効率は上がる。一方、量子化スケールが小さい場合、量子化によって失われる情報量は少なくなるが、圧縮効率は下がる。
これに対し、量子化パラメータとは、量子化を実施する際に用いるパラメータであり、量子化スケールと量子化パラメータの間には符号化方式ごとに関係が規定されている。量子化スケールをQS、量子化パラメータをQPとすると、H.264/AVCでは、QS=2^((QP−4.0)/6)(但し、x^yは、xのy乗を意味する。)である。また、MPEG−4では、QS=2×QPである。以下では、「量子化制御変数」を量子化スケールと量子化パラメータの両方を含む用語として用いることとする。
【0006】
本発明は、前述した問題点に鑑みてなされたもので、その目的は、量子化制御変数ごとの発生符号量を正確に推定し、フレームごとの符号量を適切に割り当てるための動画像符号化装置等を提供することである。
更に、同時に達成すべき目的として、符号量の正確な推定を実現しながら処理時間が著しく増大しない動画像符号化装置等を提供することである。
【課題を解決するための手段】
【0007】
前述した目的を達成するために第1の発明は、2段階の符号化を実施し、第1段階目の符号化の結果によって符号化対象の画像の性質を解析し、その解析結果に基づいて第2段階目の符号化を行う動画像符号化装置であって、前記第1段階目の符号化を異なる量子化制御変数によって複数回実行する第1段階符号化手段と、前記第1段階符号化手段の符号化結果から、全ての前記量子化制御変数に対してフレームごとに発生する符号量を推定する符号量推定手段と、前記符号量推定手段の推定結果から、前記フレームごとの前記符号量の割り当てを行う符号量割り当て手段と、前記符号量割り当て手段によって割り当てた前記フレームごとの前記符号量に基づいて前記第2段階目の符号化を実行する第2段階符号化手段と、を具備することを特徴とする動画像符号化装置である。
【0008】
前記第1段階符号化手段は、前記フレームの属性に応じて実行する符号化の回数を可変とすることが望ましい。また、前記第1段階符号化手段は、2回目以降の符号化処理に含まれる処理の一部を省略することが望ましい。また、前記符号量推定手段は、前記フレームごとに前記符号量の推定ロジックを選択可能とすることが望ましい。また、前記符号量割り当て手段は、同一の前記量子化制御変数によって推定した前記フレームごとの前記符号量が、符号化対象の動画像シーケンス全体で、指定されたビットレートに最も適したものとなる前記量子化制御変数を決定し、決定した前記量子化制御変数によって前記フレームごとの前記符号量を割り当てることが望ましい。
【0009】
第2の発明は、2段階の符号化を実施し、第1段階目の符号化の結果によって符号化対象の画像の性質を解析し、その解析結果に基づいて第2段階目の符号化を行う動画像符号化方法であって、前記第1段階目の符号化を異なる量子化制御変数によって複数回実行する第1段階符号化ステップと、前記第1段階符号化ステップの結果から、全ての前記量子化制御変数に対してフレームごとに発生する符号量を推定する符号量推定ステップと、前記符号量推定ステップの結果から、前記フレームごとの前記符号量の割り当てを行う符号量割り当てステップと、前記符号量割り当てステップによって割り当てた前記フレームごとの前記符号量に基づいて前記第2段階目の符号化を実行する第2段階符号化ステップと、を含むことを特徴とする動画像符号化方法である。
【0010】
前記第1段階符号化ステップは、前記フレームの属性に応じて実行する符号化の回数を可変とすることが望ましい。また、前記第1段階符号化ステップは、2回目以降の符号化処理に含まれる処理の一部を省略することが望ましい。また、前記符号量推定ステップは、前記フレームごとに発生符号量の推定ロジックを選択可能とすることが望ましい。また、前記符号量割り当てステップは、同一の前記量子化制御変数によって推定した前記フレームごとの前記符号量が、符号化対象の動画像シーケンス全体で、指定されたビットレートに最も適したものとなる前記量子化制御変数を決定し、決定した前記量子化制御変数によって前記フレームごとの前記符号量を割り当てることが望ましい。
【0011】
第3の発明は、コンピュータを第1の発明の動画像符号化装置として機能させるプログラムである。
【発明の効果】
【0012】
本発明により、量子化制御変数ごとの発生符号量を正確に推定し、フレームごとの符号量を適切に割り当てるための動画像符号化装置等を提供することができる。また、符号量の正確な推定を実現しながら処理時間が著しく増大しない動画像符号化装置等を提供することができる。
【発明を実施するための最良の形態】
【0013】
以下図面に基づいて、本発明の実施形態を詳細に説明する。
【0014】
図1は、本実施の形態に係る動画像符号化装置1を実現するコンピュータのハードウェア構成図である。尚、図1のハードウェア構成は一例であり、用途、目的に応じて様々な構成を採ることが可能である。
動画像符号化装置1は、制御部3、記憶部5、メディア入出力部7、通信制御部9、入力部11、表示部13、周辺機器I/F部15等が、バス17を介して接続される。
【0015】
制御部3は、CPU(Central Processing Unit)、ROM(Read Only Memory)、RAM(Random Access Memory)等で構成される。
【0016】
CPUは、記憶部5、ROM、記録媒体等に格納されるプログラムをRAM上のワークメモリ領域に呼び出して実行し、バス17を介して接続された各装置を駆動制御し、動画像符号化装置1が行う後述する処理を実現する。
ROMは、不揮発性メモリであり、コンピュータのブートプログラムやBIOS等のプログラム、データ等を恒久的に保持している。
RAMは、揮発性メモリであり、記憶部5、ROM、記録媒体等からロードしたプログラム、データ等を一時的に保持するとともに、制御部3が各種処理を行う為に使用するワークエリアを備える。
【0017】
記憶部5は、HDD(ハードディスクドライブ)であり、制御部3が実行するプログラム、プログラム実行に必要なデータ、OS(オペレーティングシステム)等が格納される。プログラムに関しては、OS(オペレーティングシステム)に相当する制御プログラムや、後述の処理に相当するアプリケーションプログラムが格納されている。
これらの各プログラムコードは、制御部3により必要に応じて読み出されてRAMに移され、CPUに読み出されて各種の手段として実行される。
【0018】
メディア入出力部7(ドライブ装置)は、データの入出力を行い、例えば、CDドライブ(−ROM、−R、−RW等)、DVDドライブ(−ROM、−R、−RW等)、MOドライブ等のメディア入出力装置を有する。
【0019】
通信制御部9は、通信制御装置、通信ポート等を有し、コンピュータとネットワーク19間の通信を媒介する通信インタフェースであり、ネットワーク19を介して、他のコンピュータ間との通信制御を行う。
【0020】
入力部11は、データの入力を行い、例えば、キーボード、マウス等のポインティングデバイス、テンキー等の入力装置を有する。
入力部11を介して、コンピュータに対して、操作指示、動作指示、データ入力等を行うことができる。
【0021】
表示部13は、CRTモニタ、液晶パネル等のディスプレイ装置、ディスプレイ装置と連携してコンピュータのビデオ機能を実現するための論理回路等(ビデオアダプタ等)を有する。
【0022】
周辺機器I/F(インタフェース)部15は、コンピュータに周辺機器を接続させるためのポートであり、周辺機器I/F部15を介してコンピュータは周辺機器とのデータの送受信を行う。周辺機器I/F部15は、USBやIEEE1394やRS−232C等で構成されており、通常複数の周辺機器I/Fを有する。周辺機器との接続形態は有線、無線を問わない。
【0023】
バス17は、各装置間の制御信号、データ信号等の授受を媒介する経路である。
【0024】
次に、図2を参照しながら、標準方式の規約を準拠したコンピュータが具備する符号化処理の機能の概要について説明する。図2は、H.264/AVCの規約を準拠したコンピュータが具備する符号化処理の機能を示すブロック図である。H.264/AVCの規約を前提とした場合、本実施の形態に係る動画像符号化装置1は、図2に示す機能を具備する。尚、標準方式をH.264/AVCとしたのは一例に過ぎず、本実施の形態に係る動画像符号化装置1に係る技術的思想は、他の標準方式(将来規定されるものを含む)についても適用可能である。
【0025】
図2に示すように、H.264/AVCの規約を準拠したコンピュータは、減算回路23、DCT(Discrete Cosine Transform:離散コサイン変換)回路25、量子化回路27、逆量子化回路29、IDCT(Inverse Discrete Cosine Transform:逆離散コサイン変換)回路31、加算回路33、デブロッキングフィルタ35、画面内予測回路37、動き補償回路39、重み付き予測回路41、動きベクトル検出回路43、可変長符号化回路45等を具備する。尚、各回路はハードウェアを示すものではなく、ソフトウェアによって実現される機能を示す。
【0026】
符号化対象データ21は、複数のフレームデータの集合体として規定される。フレームデータは、一つ以上のマクロブロックの集合体である。マクロブロックは、16×16画素ブロックの輝度信号と8×8画素ブロックの二つの色差信号によって構成される。
フレームは、予測モードの制限によって3つのフレームタイプがある。すなわち、(1)前後のフレームとは関係なくその画面内(Intra)だけで独立して符号化するPフレーム、(2)フレーム間(Inter)の順方向予測符号化によって得られるPフレーム、(3)順方向予測、逆方向予測、両方向予測を用いることのできるBフレーム、の三つである。
マクロブロックは、マクロブロック内で独立して符号化するIntraマクロブロック、ブロック間の順方向予測符号化によって得られるInterマクロブロックに分類される。
そして、Iフレームは、Intraマクロブロックのみで構成され、PフレームやBフレームは、IntraマクロブロックとInterマクロブロックの両者で構成される。
【0027】
減算回路23は、符号化対象データ21に含まれるフレームデータと、画面内予測回路37または重み付き予測回路41から出力された予測データとの差を算出し、差分データをDCT回路25に出力する。
【0028】
DCT回路25は、減算回路23から出力された差分データに対して、離散コサイン変換を行い、変換データを量子化回路27、および必要に応じて画面内予測回路37に出力する。
【0029】
量子化回路27は、DCT回路25から出力された変換データに対して、予め定められた量子化パラメータによって量子化を行い、量子化データを逆量子化回路29および可変長符号化回路45に出力する。
【0030】
逆量子化回路29は、量子化回路27から出力された量子化データに対して、量子化回路27の量子化に対応する逆量子化を行い、逆量子化データをIDCT回路31に出力する。
【0031】
IDCT回路31は、逆量子化回路29から出力された逆量子化データに対して、DCT回路25の離散コサイン変換に対応する逆離散コサイン変換を行い、逆変換データを加算回路33に出力する。
【0032】
加算回路33は、IDCT回路31から出力された逆変換データに対して、画面内予測回路37または重み付き予測回路41から出力された予測データを用いて局所復号を行い、局所復号データをデブロックフィルタ35に出力する。
【0033】
デブロッキングフィルタ35は、加算回路33から出力された局所復号データに対して、ブロックの歪みを除去し、フィルタリングデータを動き補償回路39に出力する。
【0034】
画面内予測回路37は、DCT回路25から出力された変換データを基に、同一フレーム上の近傍画素を用いて予測を行い、予測データを減算回路23および加算回路33に出力する。尚、38は、処理に応じて画面内予測回路37と重み付き予測回路41をスイッチする。
【0035】
動き補償回路39は、動きベクトル検出回路43から出力された動きベクトルデータと、デブロッキングフィルタ35から出力されたフィルタリングデータとを基に、動き補償を行い、動き補償データを重み付き予測回路41に出力する。
【0036】
重み付き予測回路41は、動き補償回路39から出力された動き補償データに対して、重み付き予測を行い、予測データを減算回路23および加算回路33に出力する。
【0037】
動きベクトル検出回路43は、符号化対象データ21に含まれるフレームデータと、過去のフレームデータとを基に、動きベクトルを検出し、動きベクトルデータを動き補償回路39および可変長符号化回路45に出力する。
【0038】
可変長符号化回路45は、量子化回路27から出力された量子化データ、および動きベクトル検出回路43から出力された動きベクトルデータ等を含む符号化データ47をバッファ(図示しない)に格納する。
【0039】
次に、図3から図7を参照しながら、本実施の形態に係る動画像符号化装置1全体の機能を実現する構成について説明する。
図3は、動画像符号化装置1の機能を示すブロック図である。
【0040】
図3に示すように、動画像符号化装置1は、符号化対象データ入力手段51、符号化条件設定手段53、第1段階符号化手段55、符号量推定手段57、符号量割り当て手段59、第2段階符号化手段61、符号化データ出力手段63等を備える。そして、動画像符号化装置1は、2段階の符号化を実施し、第1段階目の符号化の結果によって符号化対象の画像の性質を解析し、その解析結果に基づいて第2段階目の符号化を行う。
【0041】
符号化対象データ入力手段51は、符号化対象データ21を入力する。データの入力は、メディア入出力部7によって各メディアから行っても良い。また、通信制御部9によってネットワーク19を介して他のコンピュータから行っても良い。また、周辺機器I/F部15によって各周辺機器から行っても良い。
入力された符号化対象データ21は、一旦、記憶部5に記憶し、制御部3が記憶部5から読み出して後述する処理を行っても良い。また、制御部3のRAMに保持し、後述する処理を行っても良い。
【0042】
符号化条件設定手段53は、後述する符号化処理における符号化条件を設定する。符号化条件は、入力部11を介して入力しても良いし、通信制御部9によってネットワーク19を介して他のコンピュータから入力しても良い。入力された符号化条件は、符号化条件設定手段53が所定の変数に値を保持し、後述する処理に用いられる。ここで、符号化条件とは、例えば、ビットレートである。また、その他の制御変数のデフォルト値等であっても良い。
【0043】
第1段階符号化手段55は、第1段階目の符号化を異なる量子化制御変数によって複数回実行する。符号化処理は、図2の説明にて前述した機能によって行われる。ここで、量子化制御変数は、例えば、量子化スケール、または量子化パラメータである。以下では、混乱を避けるために、量子化制御変数として量子化パラメータを採用した場合について説明することとする。但し、本発明に係る技術的思想は、量子化制御変数として量子化スケールを採用する場合であっても、同様に適用可能である。
【0044】
第1段階符号化手段55による第1段階目の符号化は、符号化対象の動画像データに対して、フレーム単位の画像の性質に関する情報を収集することを目的とする。ここで、収集する情報は、フレームごとに決まるフレームタイプ、符号化を実行した量子化パラメータ、フレームごとの発生符号量、フレームに含まれるIntraマクロブロックの個数およびIntraマクロブロックとして発生したビット数、フレームに含まれるInterマクロブロックの個数およびInterマクロブロックとして発生したビット数等である。尚、収集する情報は、後述する符号量推定手段57の推定ロジックに応じて適宜選択することが可能である。
【0045】
また、第1段階符号化手段55は、フレームの属性によって符号化の回数を可変とする。
図4は、フレームの属性による分類の一つ目の例を示す図である。
図4に示すように、動画像シーケンス71に含まれるフレームは、フレームタイプによって分類することができる。具体的には、Iフレーム73、Pフレーム75等に分類できる。このとき、第1段階符号化手段55の第1の実行ロジックは、数種類の量子化パラメータによって、Iフレーム73とPフレーム75の両方に対し、同じ回数の第1段階目の符号化を行うものである。
尚、Bフレームについては特に言及していないが、前述の第1の実行ロジック、並びに後述する符号量推定手段57の推定ロジックの決定においては、Pフレームと同様に扱うことができる。
また、本実施の形態に係る符号化処理は、動画像シーケンス71全体に対して行っても良いし、動画像シーケンス71をある単位(例えば、グループオブピクチャ等)で分割して行っても良い。
【0046】
図5は、フレームの属性による分類の二つ目の例を示す図である。
図5に示すように、動画像シーケンス71に含まれるフレームは、フレームタイプに基づくフレームの属性によって分類することができる。具体的には、Iフレーム73、Iフレーム直後のPフレーム77、その他のPフレーム79等に分類できる。このとき、第1段階符号化手段55の第2の実行ロジックは、3つに分類したフレームごとに符号化回数を可変とするものである。例えば、Iフレーム73に対しては、数種類の量子化パラメータによって、複数回の第1段階目の符号化を行う。また、Iフレーム直後のPフレーム77に対しては、直前のIフレーム73と同様の量子化パラメータによって、複数回の第1段階目の符号化を行う。そして、その他のPフレーム79に対しては、一種類の量子化パラメータによって、一回の第1段階目の符号化を行う。
尚、Bフレームについては特に言及していないが、前述の第2の実行ロジック、並びに後述する符号量推定手段57の推定ロジックの決定においては、Pフレームと同様に扱うことができる。
また、本実施の形態に係る符号化処理は、動画像シーケンス71全体に対して行っても良いし、動画像シーケンス71をある単位(例えば、グループオブピクチャ等)で分割して行っても良い。
【0047】
第2の実行ロジックにおいて、その他のPフレーム79に対して第1段階目の符号化を1回しか行わない理由は、計算処理の負荷を低減するためである。但し、符号化を1回しか行わない場合、符号量の推定の精度が問題となる。そこで、その他のPフレーム79に対する符号量の推定では、Iフレーム直後のPフレーム77の符号化結果を参照することで、精度を保つこととする。精度が保たれる理由は、その他のPフレーム79に係る画像の性質が、Iフレーム直後のPフレーム77に係る画像の性質と類似していることによるものである。
【0048】
また、前述のように、第1段階符号化手段55における符号化処理では、同一のフレームに対して、異なる量子化パラメータによって、複数回の符号化が行われる。従って、計算処理の負荷は、回数に比例して増大することになる。この計算処理の負荷の増大を回避するため、第1段階符号化手段55は、2回目以降の符号化処理において、図2の説明にて前述した符号化処理に含まれる処理の一部を省略する。具体的には、動きベクトル検出処理、デブロッキングフィルタ処理、動き補償予測処理、逆量子化処理、IDCT処理を省略する。これらの処理は、2回目以降の符号化処理において、発生符号量に影響を与えない、または代替手段が存在する処理である。例えば、動きベクトルは、1回目の符号化で得られたものを共通で使用することができることから、動きベクトル検出処理は2回目以降では不要である。
【0049】
図3の説明に戻り、符号量推定手段57は、第1段階符号化手段55による複数の符号化結果を用いて、全ての量子化パラメータに対してフレームごとに発生する符号量を推定する。具体的には、符号量推定手段57は、第1段階符号化手段55によって収集した複数の量子化パラメータによる符号化結果の情報を用いて、フレームごとに発生符号量の推定ロジックを適宜選択し、全ての量子化パラメータに対する符号量を推定する。
【0050】
図6は、量子化パラメータと発生符号量の関係を示す図である。
一般に、量子化パラメータと発生符号量の関係は、画像の性質に応じて変化するものである。図6では、(a)が標準的な画像における量子化パラメータと発生符号量の関係を示している。そして、画像の変化が大きい場合、量子化パラメータと発生符号量の関係は、(b)に示すような特性を持つ。また、画像の変化が小さい場合、量子化パラメータと発生符号量の関係は、(c)に示すような特性を持つ。そして、従来技術のように、第1段階目の符号化を1回のみ行い、ある1つの量子化パラメータに対する発生符号量(以下、単に「サンプル値」という。)しか収集できていない場合、このように画像の性質に応じて変化する量子化パラメータと発生符号量の関係を表す式を決定することは困難である。また、仮に、1つのサンプル値によって式を決定できたとしても、その結果推定される発生符号量に大きな誤差が生じることは明らかである。
符号量推定手段57は、このような量子化パラメータと発生符号量の関係について、第1段階符号化手段55によって収集した複数のサンプル値を用いて推定する。
【0051】
まず、第1の推定ロジックについて説明する。
第1の推定ロジックでは、下記の式を用いる。
【数1】
ただし、QP1 、QP2:第1段階目の符号化を実行した量子化パラメータ、
qp:(QP1+1)≦qp≦(QP2−1)の範囲の量子化パラメータ、Bit
:(qpにおける)発生符号量、ΔBit:(QP1の場合の発生符号量)−(QP2の場合の発生符号量)、β:QP2の場合の発生符号量、である。
H.264/AVCの規約では、量子化パラメータが6増加すると、量子化ステップサイズが2倍になり、発生符号量がおおよそ1/2に近い値となる。第1の推定ロジックに用いる数1は、このことを考慮したものとなっている。
【0052】
次に、第2の推定ロジックについて説明する。
第2の推定ロジックでは、下記の式を用いる。
【数2】
ただし、QP1 、QP2:第1段階目の符号化を実行した量子化パラメータの最小値と最大値、qp:(QP1+1)≦qp≦(QP2−1)を取り得る量子化パラメータ、Bit:(qpにおける)発生符号量、である。
数2を用いる第2の推定ロジックでは、多項式によって発生符号量を推定する。このように、多項式によって推定する場合、多項式の次数が高くなるに従って、必要となるサンプル値の数、すなわち、第1段階目の符号化を実行する回数が増える。2次多項式であれば3つのサンプル値、3次多項式であれば4つのサンプル値、4次多項式であれば5つのサンプル値が必要となる。
【0053】
次に、第3の推定ロジックについて説明する。
第3の推定ロジックでは、下記の式を用いる。
【数3】
ただし、QS:量子化スケール、α、β:係数、δ:符号化に関係ないヘッダ等の符号量、Bit:(QSにおける)発生符号量である。
ここで、量子化スケールは、量子化パラメータによって算出される。第3の推定ロジックでは、量子化による影響を受ける係数であるαとβの二つの値を決定することから、少なくとも二つのサンプル値が必要となる。
【0054】
次に、第4の推定ロジックについて説明する。
第4の推定ロジックでは、その他のPフレーム79の発生符号量の推定に用いることを想定し、自らのサンプル値のみでなく、他のフレームの推定結果も利用する。これは、その他のPフレーム79自体は、一つのサンプル値しか収集しない為、第1の推定ロジックから第3の推定ロジックまでのように、自らのサンプル値のみで発生符号量を推定することは困難だからである。
具体的には、下記の式を用いる。
【数4】
ただし、X:推定対象のその他のPフレーム79、Y:推定結果を利用するIフレーム直後のPフレーム77、QP1 :Xに対して第1段階目の符号化を実行した量子化パラメータ、Bit(F、QP):量子化パラメータQPにおけるフレームFに係る発生符号量、である。
数4において、Bit(X、QP1)、Bit(Y、QP1)はサンプル値であり、Bit(Y、qp)はYの推定結果である。このように、その他のPフレーム79の発生符号量は、Iフレーム直後のPフレーム77の発生符号量と同じ比率で推定する。これにより、推定の精度を保ちながら、一つのサンプル値のみで発生符号量を推定することができる。
【0055】
図7は、区間ごとの符号量の推定を示す図である。
図7に示すように、(1)QP0+1≦qp≦QP1−1の範囲の量子化パラメータqp、(2)QP1+1≦qp<QP2−1の範囲の量子化パラメータqpと複数の区間に分割し、別々に符号量を推定するようにしても良い。また、区間ごとに異なる推定ロジックで符号量を推定するようにしても良い。
例えば、図7に示す区間に分割し、(1)の区間と(2)の区間に対して別々に第1の推定ロジックによって符号量を推定する場合、まず、QP0、QP1、QP2の3つの量子化パラメータによって第1段階目の符号化を3回行う。次に、(1)の区間に対しては、QP0、QP1の量子化パラメータに係るサンプル値を用いて符号量の推定を行い、(2)の区間に対しては、QP1、QP2の量子化パラメータに係るサンプル値を用いて符号量の推定を行う。
尚、(3)qp≦QP0−1の範囲の量子化パラメータqp、(4)QP2+1≦qpの範囲の量子化パラメータqpに対しては、別の量子化パラメータによる第1段階目の符号化を行って推定しても良い。また、指定されたビットレートによって、(3)、(4)の区間に含まれる量子化パラメータを第2段階目の符号化において使用しないことが明らかな場合、当該範囲における符号量の推定を行わなくても良い。すなわち、指定されるビットレートに応じて、量子化パラメータの最小値と最大値を定義しておき、符号量を推定する範囲を限定するようにしても良い。
【0056】
ここで、第1段階符号化手段55における第1段階目の符号化の実行ロジックと、符号量推定手段57における符号量の推定ロジックとの関係について説明する。
図8は、第1の実行ロジックによって第1段階目の符号化を実行した場合の推定ロジックの選択を示す図である。
図8に示すように、第1の実行ロジックでは、フレームはIフレーム73とPフレーム75とに分類される。そして、Iフレーム73の符号量推定においては、第1の推定ロジックから第3の推定ロジックまでのいずれを選択しても良い。また、Pフレーム75の符号量推定においても、第1の推定ロジックから第3の推定ロジックまでのいずれを選択しても良い。
【0057】
図9は、第2の実行ロジックによって第1段階目の符号化を実行した場合の推定ロジックの選択を示す図である。
図9に示すように、第2の実行ロジックでは、フレームはIフレーム73とIフレーム直後のPフレーム77とその他のPフレーム79とに分類される。そして、Iフレーム73、およびIフレーム直後のPフレーム77の符号量推定においては、第1の推定ロジックから第3の推定ロジックまでのいずれを選択しても良い。一方、その他のPフレーム79の符号量推定においては、第4の推定ロジックのみ選択することができる。
尚、前述した第1の推定ロジックから第4の推定ロジックは一例に過ぎず、他の推定ロジックに従って符号量の推定を行っても良い。例えば、第1段階符号化手段55によって、フレームに含まれるIntraマクロブロックの個数およびIntraマクロブロックとして発生したビット数、フレームに含まれるInterマクロブロックの個数およびInterマクロブロックとして発生したビット数等を収集した場合、マクロブロック単位での符号量推定も可能であり、より精度の高い符号量の推定を行うことができる。
このように、符号量推定手段57は、符号量の推定ロジックをフレームごとに選択することが可能である。そして、様々な推定ロジックの中から最適の推定ロジックを選択することによって、精度の高い符号量の推定を行うことができる。
【0058】
図3の説明に戻り、符号量割り当て手段59は、符号量推定手段57の推定結果から、フレームごとの符号量の割り当てを行う。
一般に、量子化を伴う符号化では、量子化パラメータの増加に伴って符号化歪が増加し、復号化後の画像品質が低下する。また、符号化歪は、一義的には量子化パラメータによって決まり、画像の性質には依存しない特徴がある。つまり、動画像シーケンス71全体にわたって安定した再生画質を得るためには、量子化パラメータの変動を抑制し、均一の量子化パラメータを用いればよいことが知られている。従って、同一の量子化パラメータによって推定したフレームごとの符号量が、符号化対象の動画像シーケンス71全体で、指定されたビットレートに最も適したものとなる量子化パラメータを決定し、決定した量子化パラメータによってフレームごとの符号量割り当てを決定すれば良いことになる。
具体的には、符号量割り当て手段59は、最初に、指定されたビットレートから符号量の合計の目標値を設定する。次に、符号量割り当て手段59は、量子化パラメータごとに、推定したフレームごとの符号量の合計を算出する。そして、符号量割り当て手段59は、指定されたビットレートから設定した符号量の合計の目標値と、推定したフレームごとの符号量の合計値との差が最も少ない量子化パラメータを決定する。更に、符号量割り当て手段59は、決定した量子化パラメータによって推定した符号量をフレームごとに割り当てる。
【0059】
また、符号量割り当て手段59では、前述の符号量の割り当てが規約に従っているかどうかを判定し、必要に応じて符号量の割り当ての修正を行う。
具体的には、符号量割り当て手段59は、VBV(Video Buffer Verifier)として採用されている仮想デコーダの受信バッファモデルを用いて、バッファのアンダーフローやオーバーフローが発生するかどうか、すなわちバッファ占有量の条件を満たすかどうかチェックする。条件を満たさない場合、符号量割り当て手段59は、符号量の割り当ての修正を行う。これらの仕組みの実現については、例えば、特願2006−021965に示された手法等を用いることができる。
【0060】
第2段階符号化手段61は、符号量割り当て手段59によって割り当てたフレームごとの符号量に基づいて第2段階目の符号化を実行する。第2段階目の符号化は一回のみであり、例えば、H.264/AVCの規約に従う場合、図2の説明にて前述した符号化処理を実行する。
【0061】
符号化データ出力手段63は、第2段階符号化手段61によってバッファに格納された符号化データ47を出力する。データの出力は、メディア入出力部7によって各メディアに対して行っても良い。また、通信制御部9によってネットワーク19を介して他のコンピュータに対して行っても良い。また、記憶部5に記憶するようにしても良い。
【0062】
次に、図10を参照しながら、動画像符号化装置1の動作の詳細について説明する。
図10は、2段階の符号化処理全体の流れを示すフローチャートである。
以下では、フローチャートとともに、具体例についても説明する。具体例は、第1段階符号化手段55の第2の実行ロジックに従い、Iフレーム73およびIフレーム直後のPフレーム77に対しては第1段階目の符号化を3回実行し、その他のPフレーム79に対しては第1段階目の符号化を1回実行する場合とする。尚、1回目から3回目までに用いる量子化パラメータは事前に設定されているとする。
【0063】
図10に示すように、制御部3は、第1段階目の符号化に用いる量子化パラメータを決定し(S101)、決定した量子化パラメータを用いて第1段階目の符号化を実行し(S102)、符号化結果を保持する(S103)。
ここで、具体例においては、S101からS103までの処理が1回目の場合、事前に設定された1回目の量子化パラメータを用いることを決定し、全てのフレーム、すなわち、Iフレーム73およびIフレーム直後のPフレーム77およびその他のPフレーム79に対して、第1段階目の符号化を実行し、符号化結果を保持する。
次に、S101からS103までの処理が2回目または3回目の場合、事前に設定された2回目または3回目の量子化パラメータを用いることを決定し、Iフレーム73およびIフレーム直後のPフレーム77に対して、第1段階目の符号化を実行し、符号化結果を保持する。ここで、符号化の際、収集する情報に影響のない処理は省略することができる。
【0064】
次に、制御部3は、第1段階目の符号化の終了条件を満たすかどうか確認する(S104)。ここで、具体例における終了条件は、S101からS103までの処理を3回実行したことである。
終了条件を満たさない場合(S104のNo)、S101から繰り返す。
終了条件を満たす場合(S104のYes)、S105に進む。
【0065】
次に、制御部3は、発生する符号量を推定するフレームを決定し(S105)、決定したフレームに対して符号量推定を実行する(S106)。
ここで、具体例においては、例えば、動画像シーケンス71の順に符号量を推定するフレームを決定すれば良い。尚、その他のPフレーム79については、参照するIフレーム直後のPフレーム77の符号量の推定が終了していないと、処理を実行することはできない。
符号量推定ロジックの選択は、Iフレーム73およびIフレーム直後のPフレーム77に対しては、第1の推定ロジックから第3の推定ロジックのいずれを選択することも可能である。但し、サンプルは3つであることから、第2の推定ロジックの場合、2次多項式によって推定することになる。一方、その他のPフレーム79に対しては、第4の推定ロジックのみ選択することが可能である。
【0066】
次に、制御部3は、全てのフレームについて符号量推定の処理が終了したかどうか確認する(S107)。
ここで、前述した具体例の説明においてフレーム数には言及していないが、例えば、フレーム数が300であれば、S105からS107までの処理が300回繰り返されることになる。
終了していない場合(S107のNo)、S105から繰り返す。
終了している場合(S107のYes)、S108に進む。
【0067】
次に、制御部3は、符号量合計を算出する量子化パラメータを決定し(S108)、符号量合計を算出する(S109)。
ここで、前述した具体例の説明において量子化パラメータの範囲には言及していないが、例えば、量子化パラメータの最小値を5、最大値を45と事前に設定していた場合、最小値である5から順に1ずつ加算して量子化パラメータを決定すれば良い。また、最大値である45から順に1ずつ減算して量子化パラメータを決定しても良い。
符号量の合計は、フレーム数が300であれば、300通りの推定式に、決定した量子化パラメータの値をそれぞれ代入して、フレームごとの符号量を算出し、これらを合算することで算出する。
【0068】
次に、制御部3は、指定されたビットレートに対して当該量子化パラメータが最適かどうか確認する(S110)。
具体的には、制御部3は、指定されたビットレートから設定した符号量の合計の目標値と、S109で算出した符号量の合計値との差を算出する。そして、現時点の最適量子化パラメータによる符号量の合計値との差よりも小さい場合、(現時点では)最適であると判断する。
最適である場合(S110のYes)、当該量子化パラメータを最適量子化パラメータとして保持する(S111)。
最適でない場合(S110のNo)、S112に進む。
【0069】
次に、制御部3は、最適量子化パラメータの決定の終了条件を満たすかどうか確認する(S112)。
ここで、最適量子化パラメータの決定の終了条件は、例えば、取り得る全ての量子化パラメータに対して、S108からS111までの処理を実行したことである。
終了条件を満たさない場合(S112のNo)、S108から繰り返す。
終了条件を満たす場合(S112のYes)、S113に進む。
【0070】
次に、制御部3は、最適量子化パラメータによって推定された符号量の割り当てを行う(S113)。
【0071】
次に、制御部3は、バッファ占有量の遷移を算出し(S114)、バッファ占有量の条件を満たすかどうか確認する(S115)。
条件を満たさない場合(S115のNo)、制御部3は、符号量の割り当てを修正し(S116)、S114から繰り返す。
条件を満たす場合(S115のYes)、S117に進む。
【0072】
次に、制御部3は、割り当てられたフレームごとの符号量に基づいて、第2段階目の符号化を実行する(S117)。
以上のように、動画像符号化装置1は、2段階の符号化を実施し、第1段階目の符号化の結果によって符号化対象の画像の性質を解析し、その解析結果に基づいて第2段階目の符号化を行う。
【実施例】
【0073】
次に、図11を参照しながら、本実施の形態に係る実施例について説明する。
図11は、従来方式と実施例に係る新方式の性能テストの一例を示す図である。
本実施例で使用したPC(パーソナルコンピュータ)は、CPUがPentium(登録商標)D(動作周波数3.20GHz)、メモリが1GB、HDDの空き容量が66.7GB、OSがWindows(登録商標)XPであった。
また、符号化処理はH.264/AVCの標準方式に従い、フレームレートは30fps、ビットレートは256kbpsであった。符号化対象のコンテンツは、性能テストによく用いられるテスト用のサンプル動画像データを用いた。
図11に示す旧方式では、第1段階目の符号化を1回のみとした。一方、実施例に係る新方式では、第1段階目の符号化を3種類の量子化パラメータによって3回行った。フレームは図4に示すようにIフレーム73とPフレーム75に分類し、両方に対し、同じ回数、すなわち3回の第1段階目の符号化を行った。また、符号量推定手段57は、第3の推定ロジックを用いた。
【0074】
新方式の第1段階目の符号化に要した処理時間は、従来方式の第1段階目の符号化に要した処理時間と比べて、全てのコンテンツに対し、2倍以下となっている。新方式では、3回の第1段階目の符号化を行っていることから、単純計算では3倍となるはずである。しかしながら、新方式では、既に述べてきた処理時間の増大を抑える仕組みを採用しており、符号量の正確な推定を実現しながら処理時間は著しく増大しない結果となった。
また、(新方式の全体の処理時間)/(従来方式の全体の処理時間)の平均値は約1.4倍程度であり、実用化にも問題のない性能を示す結果となった。
【0075】
以上説明したように、本発明の実施の形態によれば、動画像符号化装置1は、第1段階目の符号化を異なる量子化パラメータによって複数回実行し、第1段階目の複数の符号化結果を用いて、全ての量子化パラメータに対してフレームごとに発生する符号量を推定する。そして、動画像符号化装置1は、符号量の推定結果から、フレームごとの符号量の割り当てを行い、割り当てたフレームごとの符号量に基づいて第2段階目の符号化を実行する。特に、第1段階目の符号化は、フレームの属性に応じて実行する符号化の回数を可変とし、2回目以降の符号化処理に含まれる処理の一部を省略する。また、符号量の推定は、フレームごとに符号量の推定ロジックを選択する。
【0076】
本発明の実施の形態に係る動画像符号化装置1によって、量子化パラメータごとの発生符号量を正確に推定し、フレームごとの符号量を適切に割り当てることができる。更に、符号量の正確な推定を実現しながら処理時間の増大を抑えることができる。
【0077】
以上、添付図面を参照しながら、本発明に係る動画像符号化装置等の好適な実施形態について説明したが、本発明はかかる例に限定されない。当業者であれば、本願で開示した技術的思想の範疇内において、各種の変更例又は修正例に想到し得ることは明らかであり、それらについても当然に本発明の技術的範囲に属するものと了解される。
【図面の簡単な説明】
【0078】
【図1】動画像符号化装置1を実現するコンピュータのハードウェア構成図
【図2】H.264/AVCの規約を準拠したコンピュータが具備する符号化処理の機能を示すブロック図
【図3】動画像符号化装置1の機能を示すブロック図
【図4】フレームの属性による分類の一つ目の例を示す図
【図5】フレームの属性による分類の二つ目の例を示す図
【図6】量子化パラメータと発生符号量の関係を示す図
【図7】区間ごとの符号量の推定を示す図
【図8】第1の実行ロジックによって第1段階目の符号化を実行した場合の推定ロジックの選択を示す図
【図9】第2の実行ロジックによって第1段階目の符号化を実行した場合の推定ロジックの選択を示す図
【図10】2段階の符号化処理全体の流れを示すフローチャート
【図11】従来方式と実施例に係る新方式の性能テストの一例を示す図
【符号の説明】
【0079】
1………動画像符号化装置
3………制御部
5………記憶部
7………メディア入出力部
9………通信制御部
11………入力部
13………表示部
15………周辺機器I/F部
17………バス
19………ネットワーク
51………符号化対象データ入力手段
53………符号化条件設定手段
55………第1段階符号化手段
57………符号量推定手段
59………符号量割り当て手段
61………第2段階符号化手段
63………符号化データ出力手段
71………動画像シーケンス
73………Iフレーム
75………Pフレーム
77………Iフレーム直後のPフレーム
79………その他のPフレーム
【技術分野】
【0001】
本発明は、2段階の符号化を実施し、第1段階目の符号化の結果によって符号化対象の画像の性質を解析し、その解析結果に基づいて第2段階目の符号化を行う動画像符号化装置、動画像符号化方法およびプログラムに関する。
【背景技術】
【0002】
動画像符号化技術は、国際標準化作業とともに進歩を遂げている。標準化の理由は、符号化された動画像コンテンツを広く流通させるには、復号化処理における相互運用性が必要だからである。現在、MPEG(Moving Picture Experts Group)−1、MPEG−2、MPEG−4、H.264/AVC(Advanced Video Coding)などの標準方式が存在する。これらの標準方式によって定められた規約は、復号化処理のための最低限の相互運用性を確保するためのものであり、標準方式の実現には技術競争の余地が残されている。従って、多くの技術者たちが、処理時間の短縮や画像品質の向上等を図り、研究開発を行っている。
【0003】
例えば、主に、画像品質の向上を目的として、2段階の符号化を実施する仕組みが知られている(特許文献1、特許文献2、特許文献3)。
特許文献1では、第1段階目の符号化によってフレーム単位の統計データを取得し、それに基づいて動画像シーケンス全体にわたって画像品質の向上を目的としたフレーム単位の符号量割り当てを行い、可変ビットレートによる第2段階目の符号化を行っている。
また、特許文献2では、1つの量子化スケールのみによって第1段階目の符号化を行い、当該量子化スケールと発生符号量の積などで表される複雑度指標データなるものに基づいて、フレーム単位の符号量割り当てを行っている。
また、特許文献3では、ある適当な量子化スケールを用いた第1段階目の符号化によって取得した統計データのサンプルを用いて、その他の全量子化スケール(=第1段階目の符号化に用いていない量子化スケール)による発生符号量を指数関数や高次関数の近似式で推定する。そして、その推定結果を基に、指定されたビットレート等のパラメータ条件を満たし、かつ画像品質が最も向上するようなフレーム単位の符号量割り当てを行い、第2段階目の符号化を行っている。
【特許文献1】特開平8−186821号公報
【特許文献2】特開2003−18603号公報
【特許文献3】特開2007−28156号公報
【発明の開示】
【発明が解決しようとする課題】
【0004】
しかしながら、特許文献1では、最適符号量割り当ての具体例として、希望的な結果を示す図(特許文献1の図6)と、「最適符号量割当は、伝送路の最大レートとバッファリングの制限を満たす範囲で安定した画質を得るために、入力画像の複雑さに応じた符号量割当を行うことでなされる。」(特許文献1の段落番号0038)と記載しているに過ぎない。これでは、符号量割り当てについて、動画像符号化装置の具体的な動作が記載されているとは言えない。
また、特許文献2の仕組みでは、第1段階目の符号化を1回しか行わず、すなわち、1つの量子化スケールしか用いず、符号量割り当て処理に用いる統計データ(=第1段階目の符号化による発生符号量)が1つである。これでは、複雑度指標データなるものの精度が十分とは言えず、ひいては符号量割り当てを適切に行うことはできない。
また、特許文献3の仕組みでは、近似式の具体例として、符号量が量子化スケールの逆数に依存して決まる式を挙げている(特許文献3の段落番号0031)。そして、「第1符号化において、フレーム毎に固定の量子化スケールを用いて符号化を行い、フレームごとの発生符号量を量子化の影響を受ける部分とヘッダ等の量子化の影響を受けない部分とに分離して集計する・・・」(特許文献3の段落番号0033)と記載されている。すなわち、特許文献3の仕組みでは、フレームごとに固定の量子化スケールを用いて第1符号化を行うことから、特許文献2と同様、フレームごとに1つの量子化スケールに対する統計データしか得られない。確かに、前述の近似式の具体例は、量子化の影響を受けて決定する係数が1つしかないことから、1つの量子化スケールに対する統計データだけでも式の決定は可能である。しかしながら、近似式のモデル自体が、様々な画像の性質に対応できるものにはなっていないことから、発生符号量推定の精度は十分と言えず、ひいては符号量割り当てを適切に行うことはできない。
【0005】
以上のとおり、特許文献1から特許文献3に係る従来技術では、符号量割り当てを適切に行うことが出来ず、画像品質の向上を図ることはできない。
尚、量子化スケールとは、量子化の粗さを既定する値であり、量子化スケールが大きい場合、量子化によって失われる情報量は多くなるが、圧縮効率は上がる。一方、量子化スケールが小さい場合、量子化によって失われる情報量は少なくなるが、圧縮効率は下がる。
これに対し、量子化パラメータとは、量子化を実施する際に用いるパラメータであり、量子化スケールと量子化パラメータの間には符号化方式ごとに関係が規定されている。量子化スケールをQS、量子化パラメータをQPとすると、H.264/AVCでは、QS=2^((QP−4.0)/6)(但し、x^yは、xのy乗を意味する。)である。また、MPEG−4では、QS=2×QPである。以下では、「量子化制御変数」を量子化スケールと量子化パラメータの両方を含む用語として用いることとする。
【0006】
本発明は、前述した問題点に鑑みてなされたもので、その目的は、量子化制御変数ごとの発生符号量を正確に推定し、フレームごとの符号量を適切に割り当てるための動画像符号化装置等を提供することである。
更に、同時に達成すべき目的として、符号量の正確な推定を実現しながら処理時間が著しく増大しない動画像符号化装置等を提供することである。
【課題を解決するための手段】
【0007】
前述した目的を達成するために第1の発明は、2段階の符号化を実施し、第1段階目の符号化の結果によって符号化対象の画像の性質を解析し、その解析結果に基づいて第2段階目の符号化を行う動画像符号化装置であって、前記第1段階目の符号化を異なる量子化制御変数によって複数回実行する第1段階符号化手段と、前記第1段階符号化手段の符号化結果から、全ての前記量子化制御変数に対してフレームごとに発生する符号量を推定する符号量推定手段と、前記符号量推定手段の推定結果から、前記フレームごとの前記符号量の割り当てを行う符号量割り当て手段と、前記符号量割り当て手段によって割り当てた前記フレームごとの前記符号量に基づいて前記第2段階目の符号化を実行する第2段階符号化手段と、を具備することを特徴とする動画像符号化装置である。
【0008】
前記第1段階符号化手段は、前記フレームの属性に応じて実行する符号化の回数を可変とすることが望ましい。また、前記第1段階符号化手段は、2回目以降の符号化処理に含まれる処理の一部を省略することが望ましい。また、前記符号量推定手段は、前記フレームごとに前記符号量の推定ロジックを選択可能とすることが望ましい。また、前記符号量割り当て手段は、同一の前記量子化制御変数によって推定した前記フレームごとの前記符号量が、符号化対象の動画像シーケンス全体で、指定されたビットレートに最も適したものとなる前記量子化制御変数を決定し、決定した前記量子化制御変数によって前記フレームごとの前記符号量を割り当てることが望ましい。
【0009】
第2の発明は、2段階の符号化を実施し、第1段階目の符号化の結果によって符号化対象の画像の性質を解析し、その解析結果に基づいて第2段階目の符号化を行う動画像符号化方法であって、前記第1段階目の符号化を異なる量子化制御変数によって複数回実行する第1段階符号化ステップと、前記第1段階符号化ステップの結果から、全ての前記量子化制御変数に対してフレームごとに発生する符号量を推定する符号量推定ステップと、前記符号量推定ステップの結果から、前記フレームごとの前記符号量の割り当てを行う符号量割り当てステップと、前記符号量割り当てステップによって割り当てた前記フレームごとの前記符号量に基づいて前記第2段階目の符号化を実行する第2段階符号化ステップと、を含むことを特徴とする動画像符号化方法である。
【0010】
前記第1段階符号化ステップは、前記フレームの属性に応じて実行する符号化の回数を可変とすることが望ましい。また、前記第1段階符号化ステップは、2回目以降の符号化処理に含まれる処理の一部を省略することが望ましい。また、前記符号量推定ステップは、前記フレームごとに発生符号量の推定ロジックを選択可能とすることが望ましい。また、前記符号量割り当てステップは、同一の前記量子化制御変数によって推定した前記フレームごとの前記符号量が、符号化対象の動画像シーケンス全体で、指定されたビットレートに最も適したものとなる前記量子化制御変数を決定し、決定した前記量子化制御変数によって前記フレームごとの前記符号量を割り当てることが望ましい。
【0011】
第3の発明は、コンピュータを第1の発明の動画像符号化装置として機能させるプログラムである。
【発明の効果】
【0012】
本発明により、量子化制御変数ごとの発生符号量を正確に推定し、フレームごとの符号量を適切に割り当てるための動画像符号化装置等を提供することができる。また、符号量の正確な推定を実現しながら処理時間が著しく増大しない動画像符号化装置等を提供することができる。
【発明を実施するための最良の形態】
【0013】
以下図面に基づいて、本発明の実施形態を詳細に説明する。
【0014】
図1は、本実施の形態に係る動画像符号化装置1を実現するコンピュータのハードウェア構成図である。尚、図1のハードウェア構成は一例であり、用途、目的に応じて様々な構成を採ることが可能である。
動画像符号化装置1は、制御部3、記憶部5、メディア入出力部7、通信制御部9、入力部11、表示部13、周辺機器I/F部15等が、バス17を介して接続される。
【0015】
制御部3は、CPU(Central Processing Unit)、ROM(Read Only Memory)、RAM(Random Access Memory)等で構成される。
【0016】
CPUは、記憶部5、ROM、記録媒体等に格納されるプログラムをRAM上のワークメモリ領域に呼び出して実行し、バス17を介して接続された各装置を駆動制御し、動画像符号化装置1が行う後述する処理を実現する。
ROMは、不揮発性メモリであり、コンピュータのブートプログラムやBIOS等のプログラム、データ等を恒久的に保持している。
RAMは、揮発性メモリであり、記憶部5、ROM、記録媒体等からロードしたプログラム、データ等を一時的に保持するとともに、制御部3が各種処理を行う為に使用するワークエリアを備える。
【0017】
記憶部5は、HDD(ハードディスクドライブ)であり、制御部3が実行するプログラム、プログラム実行に必要なデータ、OS(オペレーティングシステム)等が格納される。プログラムに関しては、OS(オペレーティングシステム)に相当する制御プログラムや、後述の処理に相当するアプリケーションプログラムが格納されている。
これらの各プログラムコードは、制御部3により必要に応じて読み出されてRAMに移され、CPUに読み出されて各種の手段として実行される。
【0018】
メディア入出力部7(ドライブ装置)は、データの入出力を行い、例えば、CDドライブ(−ROM、−R、−RW等)、DVDドライブ(−ROM、−R、−RW等)、MOドライブ等のメディア入出力装置を有する。
【0019】
通信制御部9は、通信制御装置、通信ポート等を有し、コンピュータとネットワーク19間の通信を媒介する通信インタフェースであり、ネットワーク19を介して、他のコンピュータ間との通信制御を行う。
【0020】
入力部11は、データの入力を行い、例えば、キーボード、マウス等のポインティングデバイス、テンキー等の入力装置を有する。
入力部11を介して、コンピュータに対して、操作指示、動作指示、データ入力等を行うことができる。
【0021】
表示部13は、CRTモニタ、液晶パネル等のディスプレイ装置、ディスプレイ装置と連携してコンピュータのビデオ機能を実現するための論理回路等(ビデオアダプタ等)を有する。
【0022】
周辺機器I/F(インタフェース)部15は、コンピュータに周辺機器を接続させるためのポートであり、周辺機器I/F部15を介してコンピュータは周辺機器とのデータの送受信を行う。周辺機器I/F部15は、USBやIEEE1394やRS−232C等で構成されており、通常複数の周辺機器I/Fを有する。周辺機器との接続形態は有線、無線を問わない。
【0023】
バス17は、各装置間の制御信号、データ信号等の授受を媒介する経路である。
【0024】
次に、図2を参照しながら、標準方式の規約を準拠したコンピュータが具備する符号化処理の機能の概要について説明する。図2は、H.264/AVCの規約を準拠したコンピュータが具備する符号化処理の機能を示すブロック図である。H.264/AVCの規約を前提とした場合、本実施の形態に係る動画像符号化装置1は、図2に示す機能を具備する。尚、標準方式をH.264/AVCとしたのは一例に過ぎず、本実施の形態に係る動画像符号化装置1に係る技術的思想は、他の標準方式(将来規定されるものを含む)についても適用可能である。
【0025】
図2に示すように、H.264/AVCの規約を準拠したコンピュータは、減算回路23、DCT(Discrete Cosine Transform:離散コサイン変換)回路25、量子化回路27、逆量子化回路29、IDCT(Inverse Discrete Cosine Transform:逆離散コサイン変換)回路31、加算回路33、デブロッキングフィルタ35、画面内予測回路37、動き補償回路39、重み付き予測回路41、動きベクトル検出回路43、可変長符号化回路45等を具備する。尚、各回路はハードウェアを示すものではなく、ソフトウェアによって実現される機能を示す。
【0026】
符号化対象データ21は、複数のフレームデータの集合体として規定される。フレームデータは、一つ以上のマクロブロックの集合体である。マクロブロックは、16×16画素ブロックの輝度信号と8×8画素ブロックの二つの色差信号によって構成される。
フレームは、予測モードの制限によって3つのフレームタイプがある。すなわち、(1)前後のフレームとは関係なくその画面内(Intra)だけで独立して符号化するPフレーム、(2)フレーム間(Inter)の順方向予測符号化によって得られるPフレーム、(3)順方向予測、逆方向予測、両方向予測を用いることのできるBフレーム、の三つである。
マクロブロックは、マクロブロック内で独立して符号化するIntraマクロブロック、ブロック間の順方向予測符号化によって得られるInterマクロブロックに分類される。
そして、Iフレームは、Intraマクロブロックのみで構成され、PフレームやBフレームは、IntraマクロブロックとInterマクロブロックの両者で構成される。
【0027】
減算回路23は、符号化対象データ21に含まれるフレームデータと、画面内予測回路37または重み付き予測回路41から出力された予測データとの差を算出し、差分データをDCT回路25に出力する。
【0028】
DCT回路25は、減算回路23から出力された差分データに対して、離散コサイン変換を行い、変換データを量子化回路27、および必要に応じて画面内予測回路37に出力する。
【0029】
量子化回路27は、DCT回路25から出力された変換データに対して、予め定められた量子化パラメータによって量子化を行い、量子化データを逆量子化回路29および可変長符号化回路45に出力する。
【0030】
逆量子化回路29は、量子化回路27から出力された量子化データに対して、量子化回路27の量子化に対応する逆量子化を行い、逆量子化データをIDCT回路31に出力する。
【0031】
IDCT回路31は、逆量子化回路29から出力された逆量子化データに対して、DCT回路25の離散コサイン変換に対応する逆離散コサイン変換を行い、逆変換データを加算回路33に出力する。
【0032】
加算回路33は、IDCT回路31から出力された逆変換データに対して、画面内予測回路37または重み付き予測回路41から出力された予測データを用いて局所復号を行い、局所復号データをデブロックフィルタ35に出力する。
【0033】
デブロッキングフィルタ35は、加算回路33から出力された局所復号データに対して、ブロックの歪みを除去し、フィルタリングデータを動き補償回路39に出力する。
【0034】
画面内予測回路37は、DCT回路25から出力された変換データを基に、同一フレーム上の近傍画素を用いて予測を行い、予測データを減算回路23および加算回路33に出力する。尚、38は、処理に応じて画面内予測回路37と重み付き予測回路41をスイッチする。
【0035】
動き補償回路39は、動きベクトル検出回路43から出力された動きベクトルデータと、デブロッキングフィルタ35から出力されたフィルタリングデータとを基に、動き補償を行い、動き補償データを重み付き予測回路41に出力する。
【0036】
重み付き予測回路41は、動き補償回路39から出力された動き補償データに対して、重み付き予測を行い、予測データを減算回路23および加算回路33に出力する。
【0037】
動きベクトル検出回路43は、符号化対象データ21に含まれるフレームデータと、過去のフレームデータとを基に、動きベクトルを検出し、動きベクトルデータを動き補償回路39および可変長符号化回路45に出力する。
【0038】
可変長符号化回路45は、量子化回路27から出力された量子化データ、および動きベクトル検出回路43から出力された動きベクトルデータ等を含む符号化データ47をバッファ(図示しない)に格納する。
【0039】
次に、図3から図7を参照しながら、本実施の形態に係る動画像符号化装置1全体の機能を実現する構成について説明する。
図3は、動画像符号化装置1の機能を示すブロック図である。
【0040】
図3に示すように、動画像符号化装置1は、符号化対象データ入力手段51、符号化条件設定手段53、第1段階符号化手段55、符号量推定手段57、符号量割り当て手段59、第2段階符号化手段61、符号化データ出力手段63等を備える。そして、動画像符号化装置1は、2段階の符号化を実施し、第1段階目の符号化の結果によって符号化対象の画像の性質を解析し、その解析結果に基づいて第2段階目の符号化を行う。
【0041】
符号化対象データ入力手段51は、符号化対象データ21を入力する。データの入力は、メディア入出力部7によって各メディアから行っても良い。また、通信制御部9によってネットワーク19を介して他のコンピュータから行っても良い。また、周辺機器I/F部15によって各周辺機器から行っても良い。
入力された符号化対象データ21は、一旦、記憶部5に記憶し、制御部3が記憶部5から読み出して後述する処理を行っても良い。また、制御部3のRAMに保持し、後述する処理を行っても良い。
【0042】
符号化条件設定手段53は、後述する符号化処理における符号化条件を設定する。符号化条件は、入力部11を介して入力しても良いし、通信制御部9によってネットワーク19を介して他のコンピュータから入力しても良い。入力された符号化条件は、符号化条件設定手段53が所定の変数に値を保持し、後述する処理に用いられる。ここで、符号化条件とは、例えば、ビットレートである。また、その他の制御変数のデフォルト値等であっても良い。
【0043】
第1段階符号化手段55は、第1段階目の符号化を異なる量子化制御変数によって複数回実行する。符号化処理は、図2の説明にて前述した機能によって行われる。ここで、量子化制御変数は、例えば、量子化スケール、または量子化パラメータである。以下では、混乱を避けるために、量子化制御変数として量子化パラメータを採用した場合について説明することとする。但し、本発明に係る技術的思想は、量子化制御変数として量子化スケールを採用する場合であっても、同様に適用可能である。
【0044】
第1段階符号化手段55による第1段階目の符号化は、符号化対象の動画像データに対して、フレーム単位の画像の性質に関する情報を収集することを目的とする。ここで、収集する情報は、フレームごとに決まるフレームタイプ、符号化を実行した量子化パラメータ、フレームごとの発生符号量、フレームに含まれるIntraマクロブロックの個数およびIntraマクロブロックとして発生したビット数、フレームに含まれるInterマクロブロックの個数およびInterマクロブロックとして発生したビット数等である。尚、収集する情報は、後述する符号量推定手段57の推定ロジックに応じて適宜選択することが可能である。
【0045】
また、第1段階符号化手段55は、フレームの属性によって符号化の回数を可変とする。
図4は、フレームの属性による分類の一つ目の例を示す図である。
図4に示すように、動画像シーケンス71に含まれるフレームは、フレームタイプによって分類することができる。具体的には、Iフレーム73、Pフレーム75等に分類できる。このとき、第1段階符号化手段55の第1の実行ロジックは、数種類の量子化パラメータによって、Iフレーム73とPフレーム75の両方に対し、同じ回数の第1段階目の符号化を行うものである。
尚、Bフレームについては特に言及していないが、前述の第1の実行ロジック、並びに後述する符号量推定手段57の推定ロジックの決定においては、Pフレームと同様に扱うことができる。
また、本実施の形態に係る符号化処理は、動画像シーケンス71全体に対して行っても良いし、動画像シーケンス71をある単位(例えば、グループオブピクチャ等)で分割して行っても良い。
【0046】
図5は、フレームの属性による分類の二つ目の例を示す図である。
図5に示すように、動画像シーケンス71に含まれるフレームは、フレームタイプに基づくフレームの属性によって分類することができる。具体的には、Iフレーム73、Iフレーム直後のPフレーム77、その他のPフレーム79等に分類できる。このとき、第1段階符号化手段55の第2の実行ロジックは、3つに分類したフレームごとに符号化回数を可変とするものである。例えば、Iフレーム73に対しては、数種類の量子化パラメータによって、複数回の第1段階目の符号化を行う。また、Iフレーム直後のPフレーム77に対しては、直前のIフレーム73と同様の量子化パラメータによって、複数回の第1段階目の符号化を行う。そして、その他のPフレーム79に対しては、一種類の量子化パラメータによって、一回の第1段階目の符号化を行う。
尚、Bフレームについては特に言及していないが、前述の第2の実行ロジック、並びに後述する符号量推定手段57の推定ロジックの決定においては、Pフレームと同様に扱うことができる。
また、本実施の形態に係る符号化処理は、動画像シーケンス71全体に対して行っても良いし、動画像シーケンス71をある単位(例えば、グループオブピクチャ等)で分割して行っても良い。
【0047】
第2の実行ロジックにおいて、その他のPフレーム79に対して第1段階目の符号化を1回しか行わない理由は、計算処理の負荷を低減するためである。但し、符号化を1回しか行わない場合、符号量の推定の精度が問題となる。そこで、その他のPフレーム79に対する符号量の推定では、Iフレーム直後のPフレーム77の符号化結果を参照することで、精度を保つこととする。精度が保たれる理由は、その他のPフレーム79に係る画像の性質が、Iフレーム直後のPフレーム77に係る画像の性質と類似していることによるものである。
【0048】
また、前述のように、第1段階符号化手段55における符号化処理では、同一のフレームに対して、異なる量子化パラメータによって、複数回の符号化が行われる。従って、計算処理の負荷は、回数に比例して増大することになる。この計算処理の負荷の増大を回避するため、第1段階符号化手段55は、2回目以降の符号化処理において、図2の説明にて前述した符号化処理に含まれる処理の一部を省略する。具体的には、動きベクトル検出処理、デブロッキングフィルタ処理、動き補償予測処理、逆量子化処理、IDCT処理を省略する。これらの処理は、2回目以降の符号化処理において、発生符号量に影響を与えない、または代替手段が存在する処理である。例えば、動きベクトルは、1回目の符号化で得られたものを共通で使用することができることから、動きベクトル検出処理は2回目以降では不要である。
【0049】
図3の説明に戻り、符号量推定手段57は、第1段階符号化手段55による複数の符号化結果を用いて、全ての量子化パラメータに対してフレームごとに発生する符号量を推定する。具体的には、符号量推定手段57は、第1段階符号化手段55によって収集した複数の量子化パラメータによる符号化結果の情報を用いて、フレームごとに発生符号量の推定ロジックを適宜選択し、全ての量子化パラメータに対する符号量を推定する。
【0050】
図6は、量子化パラメータと発生符号量の関係を示す図である。
一般に、量子化パラメータと発生符号量の関係は、画像の性質に応じて変化するものである。図6では、(a)が標準的な画像における量子化パラメータと発生符号量の関係を示している。そして、画像の変化が大きい場合、量子化パラメータと発生符号量の関係は、(b)に示すような特性を持つ。また、画像の変化が小さい場合、量子化パラメータと発生符号量の関係は、(c)に示すような特性を持つ。そして、従来技術のように、第1段階目の符号化を1回のみ行い、ある1つの量子化パラメータに対する発生符号量(以下、単に「サンプル値」という。)しか収集できていない場合、このように画像の性質に応じて変化する量子化パラメータと発生符号量の関係を表す式を決定することは困難である。また、仮に、1つのサンプル値によって式を決定できたとしても、その結果推定される発生符号量に大きな誤差が生じることは明らかである。
符号量推定手段57は、このような量子化パラメータと発生符号量の関係について、第1段階符号化手段55によって収集した複数のサンプル値を用いて推定する。
【0051】
まず、第1の推定ロジックについて説明する。
第1の推定ロジックでは、下記の式を用いる。
【数1】
ただし、QP1 、QP2:第1段階目の符号化を実行した量子化パラメータ、
qp:(QP1+1)≦qp≦(QP2−1)の範囲の量子化パラメータ、Bit
:(qpにおける)発生符号量、ΔBit:(QP1の場合の発生符号量)−(QP2の場合の発生符号量)、β:QP2の場合の発生符号量、である。
H.264/AVCの規約では、量子化パラメータが6増加すると、量子化ステップサイズが2倍になり、発生符号量がおおよそ1/2に近い値となる。第1の推定ロジックに用いる数1は、このことを考慮したものとなっている。
【0052】
次に、第2の推定ロジックについて説明する。
第2の推定ロジックでは、下記の式を用いる。
【数2】
ただし、QP1 、QP2:第1段階目の符号化を実行した量子化パラメータの最小値と最大値、qp:(QP1+1)≦qp≦(QP2−1)を取り得る量子化パラメータ、Bit:(qpにおける)発生符号量、である。
数2を用いる第2の推定ロジックでは、多項式によって発生符号量を推定する。このように、多項式によって推定する場合、多項式の次数が高くなるに従って、必要となるサンプル値の数、すなわち、第1段階目の符号化を実行する回数が増える。2次多項式であれば3つのサンプル値、3次多項式であれば4つのサンプル値、4次多項式であれば5つのサンプル値が必要となる。
【0053】
次に、第3の推定ロジックについて説明する。
第3の推定ロジックでは、下記の式を用いる。
【数3】
ただし、QS:量子化スケール、α、β:係数、δ:符号化に関係ないヘッダ等の符号量、Bit:(QSにおける)発生符号量である。
ここで、量子化スケールは、量子化パラメータによって算出される。第3の推定ロジックでは、量子化による影響を受ける係数であるαとβの二つの値を決定することから、少なくとも二つのサンプル値が必要となる。
【0054】
次に、第4の推定ロジックについて説明する。
第4の推定ロジックでは、その他のPフレーム79の発生符号量の推定に用いることを想定し、自らのサンプル値のみでなく、他のフレームの推定結果も利用する。これは、その他のPフレーム79自体は、一つのサンプル値しか収集しない為、第1の推定ロジックから第3の推定ロジックまでのように、自らのサンプル値のみで発生符号量を推定することは困難だからである。
具体的には、下記の式を用いる。
【数4】
ただし、X:推定対象のその他のPフレーム79、Y:推定結果を利用するIフレーム直後のPフレーム77、QP1 :Xに対して第1段階目の符号化を実行した量子化パラメータ、Bit(F、QP):量子化パラメータQPにおけるフレームFに係る発生符号量、である。
数4において、Bit(X、QP1)、Bit(Y、QP1)はサンプル値であり、Bit(Y、qp)はYの推定結果である。このように、その他のPフレーム79の発生符号量は、Iフレーム直後のPフレーム77の発生符号量と同じ比率で推定する。これにより、推定の精度を保ちながら、一つのサンプル値のみで発生符号量を推定することができる。
【0055】
図7は、区間ごとの符号量の推定を示す図である。
図7に示すように、(1)QP0+1≦qp≦QP1−1の範囲の量子化パラメータqp、(2)QP1+1≦qp<QP2−1の範囲の量子化パラメータqpと複数の区間に分割し、別々に符号量を推定するようにしても良い。また、区間ごとに異なる推定ロジックで符号量を推定するようにしても良い。
例えば、図7に示す区間に分割し、(1)の区間と(2)の区間に対して別々に第1の推定ロジックによって符号量を推定する場合、まず、QP0、QP1、QP2の3つの量子化パラメータによって第1段階目の符号化を3回行う。次に、(1)の区間に対しては、QP0、QP1の量子化パラメータに係るサンプル値を用いて符号量の推定を行い、(2)の区間に対しては、QP1、QP2の量子化パラメータに係るサンプル値を用いて符号量の推定を行う。
尚、(3)qp≦QP0−1の範囲の量子化パラメータqp、(4)QP2+1≦qpの範囲の量子化パラメータqpに対しては、別の量子化パラメータによる第1段階目の符号化を行って推定しても良い。また、指定されたビットレートによって、(3)、(4)の区間に含まれる量子化パラメータを第2段階目の符号化において使用しないことが明らかな場合、当該範囲における符号量の推定を行わなくても良い。すなわち、指定されるビットレートに応じて、量子化パラメータの最小値と最大値を定義しておき、符号量を推定する範囲を限定するようにしても良い。
【0056】
ここで、第1段階符号化手段55における第1段階目の符号化の実行ロジックと、符号量推定手段57における符号量の推定ロジックとの関係について説明する。
図8は、第1の実行ロジックによって第1段階目の符号化を実行した場合の推定ロジックの選択を示す図である。
図8に示すように、第1の実行ロジックでは、フレームはIフレーム73とPフレーム75とに分類される。そして、Iフレーム73の符号量推定においては、第1の推定ロジックから第3の推定ロジックまでのいずれを選択しても良い。また、Pフレーム75の符号量推定においても、第1の推定ロジックから第3の推定ロジックまでのいずれを選択しても良い。
【0057】
図9は、第2の実行ロジックによって第1段階目の符号化を実行した場合の推定ロジックの選択を示す図である。
図9に示すように、第2の実行ロジックでは、フレームはIフレーム73とIフレーム直後のPフレーム77とその他のPフレーム79とに分類される。そして、Iフレーム73、およびIフレーム直後のPフレーム77の符号量推定においては、第1の推定ロジックから第3の推定ロジックまでのいずれを選択しても良い。一方、その他のPフレーム79の符号量推定においては、第4の推定ロジックのみ選択することができる。
尚、前述した第1の推定ロジックから第4の推定ロジックは一例に過ぎず、他の推定ロジックに従って符号量の推定を行っても良い。例えば、第1段階符号化手段55によって、フレームに含まれるIntraマクロブロックの個数およびIntraマクロブロックとして発生したビット数、フレームに含まれるInterマクロブロックの個数およびInterマクロブロックとして発生したビット数等を収集した場合、マクロブロック単位での符号量推定も可能であり、より精度の高い符号量の推定を行うことができる。
このように、符号量推定手段57は、符号量の推定ロジックをフレームごとに選択することが可能である。そして、様々な推定ロジックの中から最適の推定ロジックを選択することによって、精度の高い符号量の推定を行うことができる。
【0058】
図3の説明に戻り、符号量割り当て手段59は、符号量推定手段57の推定結果から、フレームごとの符号量の割り当てを行う。
一般に、量子化を伴う符号化では、量子化パラメータの増加に伴って符号化歪が増加し、復号化後の画像品質が低下する。また、符号化歪は、一義的には量子化パラメータによって決まり、画像の性質には依存しない特徴がある。つまり、動画像シーケンス71全体にわたって安定した再生画質を得るためには、量子化パラメータの変動を抑制し、均一の量子化パラメータを用いればよいことが知られている。従って、同一の量子化パラメータによって推定したフレームごとの符号量が、符号化対象の動画像シーケンス71全体で、指定されたビットレートに最も適したものとなる量子化パラメータを決定し、決定した量子化パラメータによってフレームごとの符号量割り当てを決定すれば良いことになる。
具体的には、符号量割り当て手段59は、最初に、指定されたビットレートから符号量の合計の目標値を設定する。次に、符号量割り当て手段59は、量子化パラメータごとに、推定したフレームごとの符号量の合計を算出する。そして、符号量割り当て手段59は、指定されたビットレートから設定した符号量の合計の目標値と、推定したフレームごとの符号量の合計値との差が最も少ない量子化パラメータを決定する。更に、符号量割り当て手段59は、決定した量子化パラメータによって推定した符号量をフレームごとに割り当てる。
【0059】
また、符号量割り当て手段59では、前述の符号量の割り当てが規約に従っているかどうかを判定し、必要に応じて符号量の割り当ての修正を行う。
具体的には、符号量割り当て手段59は、VBV(Video Buffer Verifier)として採用されている仮想デコーダの受信バッファモデルを用いて、バッファのアンダーフローやオーバーフローが発生するかどうか、すなわちバッファ占有量の条件を満たすかどうかチェックする。条件を満たさない場合、符号量割り当て手段59は、符号量の割り当ての修正を行う。これらの仕組みの実現については、例えば、特願2006−021965に示された手法等を用いることができる。
【0060】
第2段階符号化手段61は、符号量割り当て手段59によって割り当てたフレームごとの符号量に基づいて第2段階目の符号化を実行する。第2段階目の符号化は一回のみであり、例えば、H.264/AVCの規約に従う場合、図2の説明にて前述した符号化処理を実行する。
【0061】
符号化データ出力手段63は、第2段階符号化手段61によってバッファに格納された符号化データ47を出力する。データの出力は、メディア入出力部7によって各メディアに対して行っても良い。また、通信制御部9によってネットワーク19を介して他のコンピュータに対して行っても良い。また、記憶部5に記憶するようにしても良い。
【0062】
次に、図10を参照しながら、動画像符号化装置1の動作の詳細について説明する。
図10は、2段階の符号化処理全体の流れを示すフローチャートである。
以下では、フローチャートとともに、具体例についても説明する。具体例は、第1段階符号化手段55の第2の実行ロジックに従い、Iフレーム73およびIフレーム直後のPフレーム77に対しては第1段階目の符号化を3回実行し、その他のPフレーム79に対しては第1段階目の符号化を1回実行する場合とする。尚、1回目から3回目までに用いる量子化パラメータは事前に設定されているとする。
【0063】
図10に示すように、制御部3は、第1段階目の符号化に用いる量子化パラメータを決定し(S101)、決定した量子化パラメータを用いて第1段階目の符号化を実行し(S102)、符号化結果を保持する(S103)。
ここで、具体例においては、S101からS103までの処理が1回目の場合、事前に設定された1回目の量子化パラメータを用いることを決定し、全てのフレーム、すなわち、Iフレーム73およびIフレーム直後のPフレーム77およびその他のPフレーム79に対して、第1段階目の符号化を実行し、符号化結果を保持する。
次に、S101からS103までの処理が2回目または3回目の場合、事前に設定された2回目または3回目の量子化パラメータを用いることを決定し、Iフレーム73およびIフレーム直後のPフレーム77に対して、第1段階目の符号化を実行し、符号化結果を保持する。ここで、符号化の際、収集する情報に影響のない処理は省略することができる。
【0064】
次に、制御部3は、第1段階目の符号化の終了条件を満たすかどうか確認する(S104)。ここで、具体例における終了条件は、S101からS103までの処理を3回実行したことである。
終了条件を満たさない場合(S104のNo)、S101から繰り返す。
終了条件を満たす場合(S104のYes)、S105に進む。
【0065】
次に、制御部3は、発生する符号量を推定するフレームを決定し(S105)、決定したフレームに対して符号量推定を実行する(S106)。
ここで、具体例においては、例えば、動画像シーケンス71の順に符号量を推定するフレームを決定すれば良い。尚、その他のPフレーム79については、参照するIフレーム直後のPフレーム77の符号量の推定が終了していないと、処理を実行することはできない。
符号量推定ロジックの選択は、Iフレーム73およびIフレーム直後のPフレーム77に対しては、第1の推定ロジックから第3の推定ロジックのいずれを選択することも可能である。但し、サンプルは3つであることから、第2の推定ロジックの場合、2次多項式によって推定することになる。一方、その他のPフレーム79に対しては、第4の推定ロジックのみ選択することが可能である。
【0066】
次に、制御部3は、全てのフレームについて符号量推定の処理が終了したかどうか確認する(S107)。
ここで、前述した具体例の説明においてフレーム数には言及していないが、例えば、フレーム数が300であれば、S105からS107までの処理が300回繰り返されることになる。
終了していない場合(S107のNo)、S105から繰り返す。
終了している場合(S107のYes)、S108に進む。
【0067】
次に、制御部3は、符号量合計を算出する量子化パラメータを決定し(S108)、符号量合計を算出する(S109)。
ここで、前述した具体例の説明において量子化パラメータの範囲には言及していないが、例えば、量子化パラメータの最小値を5、最大値を45と事前に設定していた場合、最小値である5から順に1ずつ加算して量子化パラメータを決定すれば良い。また、最大値である45から順に1ずつ減算して量子化パラメータを決定しても良い。
符号量の合計は、フレーム数が300であれば、300通りの推定式に、決定した量子化パラメータの値をそれぞれ代入して、フレームごとの符号量を算出し、これらを合算することで算出する。
【0068】
次に、制御部3は、指定されたビットレートに対して当該量子化パラメータが最適かどうか確認する(S110)。
具体的には、制御部3は、指定されたビットレートから設定した符号量の合計の目標値と、S109で算出した符号量の合計値との差を算出する。そして、現時点の最適量子化パラメータによる符号量の合計値との差よりも小さい場合、(現時点では)最適であると判断する。
最適である場合(S110のYes)、当該量子化パラメータを最適量子化パラメータとして保持する(S111)。
最適でない場合(S110のNo)、S112に進む。
【0069】
次に、制御部3は、最適量子化パラメータの決定の終了条件を満たすかどうか確認する(S112)。
ここで、最適量子化パラメータの決定の終了条件は、例えば、取り得る全ての量子化パラメータに対して、S108からS111までの処理を実行したことである。
終了条件を満たさない場合(S112のNo)、S108から繰り返す。
終了条件を満たす場合(S112のYes)、S113に進む。
【0070】
次に、制御部3は、最適量子化パラメータによって推定された符号量の割り当てを行う(S113)。
【0071】
次に、制御部3は、バッファ占有量の遷移を算出し(S114)、バッファ占有量の条件を満たすかどうか確認する(S115)。
条件を満たさない場合(S115のNo)、制御部3は、符号量の割り当てを修正し(S116)、S114から繰り返す。
条件を満たす場合(S115のYes)、S117に進む。
【0072】
次に、制御部3は、割り当てられたフレームごとの符号量に基づいて、第2段階目の符号化を実行する(S117)。
以上のように、動画像符号化装置1は、2段階の符号化を実施し、第1段階目の符号化の結果によって符号化対象の画像の性質を解析し、その解析結果に基づいて第2段階目の符号化を行う。
【実施例】
【0073】
次に、図11を参照しながら、本実施の形態に係る実施例について説明する。
図11は、従来方式と実施例に係る新方式の性能テストの一例を示す図である。
本実施例で使用したPC(パーソナルコンピュータ)は、CPUがPentium(登録商標)D(動作周波数3.20GHz)、メモリが1GB、HDDの空き容量が66.7GB、OSがWindows(登録商標)XPであった。
また、符号化処理はH.264/AVCの標準方式に従い、フレームレートは30fps、ビットレートは256kbpsであった。符号化対象のコンテンツは、性能テストによく用いられるテスト用のサンプル動画像データを用いた。
図11に示す旧方式では、第1段階目の符号化を1回のみとした。一方、実施例に係る新方式では、第1段階目の符号化を3種類の量子化パラメータによって3回行った。フレームは図4に示すようにIフレーム73とPフレーム75に分類し、両方に対し、同じ回数、すなわち3回の第1段階目の符号化を行った。また、符号量推定手段57は、第3の推定ロジックを用いた。
【0074】
新方式の第1段階目の符号化に要した処理時間は、従来方式の第1段階目の符号化に要した処理時間と比べて、全てのコンテンツに対し、2倍以下となっている。新方式では、3回の第1段階目の符号化を行っていることから、単純計算では3倍となるはずである。しかしながら、新方式では、既に述べてきた処理時間の増大を抑える仕組みを採用しており、符号量の正確な推定を実現しながら処理時間は著しく増大しない結果となった。
また、(新方式の全体の処理時間)/(従来方式の全体の処理時間)の平均値は約1.4倍程度であり、実用化にも問題のない性能を示す結果となった。
【0075】
以上説明したように、本発明の実施の形態によれば、動画像符号化装置1は、第1段階目の符号化を異なる量子化パラメータによって複数回実行し、第1段階目の複数の符号化結果を用いて、全ての量子化パラメータに対してフレームごとに発生する符号量を推定する。そして、動画像符号化装置1は、符号量の推定結果から、フレームごとの符号量の割り当てを行い、割り当てたフレームごとの符号量に基づいて第2段階目の符号化を実行する。特に、第1段階目の符号化は、フレームの属性に応じて実行する符号化の回数を可変とし、2回目以降の符号化処理に含まれる処理の一部を省略する。また、符号量の推定は、フレームごとに符号量の推定ロジックを選択する。
【0076】
本発明の実施の形態に係る動画像符号化装置1によって、量子化パラメータごとの発生符号量を正確に推定し、フレームごとの符号量を適切に割り当てることができる。更に、符号量の正確な推定を実現しながら処理時間の増大を抑えることができる。
【0077】
以上、添付図面を参照しながら、本発明に係る動画像符号化装置等の好適な実施形態について説明したが、本発明はかかる例に限定されない。当業者であれば、本願で開示した技術的思想の範疇内において、各種の変更例又は修正例に想到し得ることは明らかであり、それらについても当然に本発明の技術的範囲に属するものと了解される。
【図面の簡単な説明】
【0078】
【図1】動画像符号化装置1を実現するコンピュータのハードウェア構成図
【図2】H.264/AVCの規約を準拠したコンピュータが具備する符号化処理の機能を示すブロック図
【図3】動画像符号化装置1の機能を示すブロック図
【図4】フレームの属性による分類の一つ目の例を示す図
【図5】フレームの属性による分類の二つ目の例を示す図
【図6】量子化パラメータと発生符号量の関係を示す図
【図7】区間ごとの符号量の推定を示す図
【図8】第1の実行ロジックによって第1段階目の符号化を実行した場合の推定ロジックの選択を示す図
【図9】第2の実行ロジックによって第1段階目の符号化を実行した場合の推定ロジックの選択を示す図
【図10】2段階の符号化処理全体の流れを示すフローチャート
【図11】従来方式と実施例に係る新方式の性能テストの一例を示す図
【符号の説明】
【0079】
1………動画像符号化装置
3………制御部
5………記憶部
7………メディア入出力部
9………通信制御部
11………入力部
13………表示部
15………周辺機器I/F部
17………バス
19………ネットワーク
51………符号化対象データ入力手段
53………符号化条件設定手段
55………第1段階符号化手段
57………符号量推定手段
59………符号量割り当て手段
61………第2段階符号化手段
63………符号化データ出力手段
71………動画像シーケンス
73………Iフレーム
75………Pフレーム
77………Iフレーム直後のPフレーム
79………その他のPフレーム
【特許請求の範囲】
【請求項1】
2段階の符号化を実施し、第1段階目の符号化の結果によって符号化対象の画像の性質を解析し、その解析結果に基づいて第2段階目の符号化を行う動画像符号化装置であって、
前記第1段階目の符号化を異なる量子化制御変数によって複数回実行する第1段階符号化手段と、
前記第1段階符号化手段による複数の符号化結果を用いて、全ての前記量子化制御変数に対してフレームごとに発生する符号量を推定する符号量推定手段と、
前記符号量推定手段の推定結果から、前記フレームごとの前記符号量の割り当てを行う符号量割り当て手段と、
前記符号量割り当て手段によって割り当てた前記フレームごとの前記符号量に基づいて前記第2段階目の符号化を実行する第2段階符号化手段と、
を具備することを特徴とする動画像符号化装置。
【請求項2】
前記第1段階符号化手段は、前記フレームの属性に応じて実行する符号化の回数を可変とすることを特徴とする請求項1に記載の動画像符号化装置。
【請求項3】
前記第1段階符号化手段は、2回目以降の符号化処理に含まれる処理の一部を省略することを特徴とする請求項1または請求項2に記載の動画像符号化装置。
【請求項4】
前記符号量推定手段は、前記フレームごとに前記符号量の推定ロジックを選択可能とすることを特徴とする請求項1から請求項3までのいずれかに記載の動画像符号化装置。
【請求項5】
前記符号量割り当て手段は、同一の前記量子化制御変数によって推定した前記フレームごとの前記符号量が、符号化対象の動画像シーケンス全体で、指定されたビットレートに最も適したものとなる前記量子化制御変数を決定し、決定した前記量子化制御変数によって前記フレームごとの前記符号量を割り当てることを特徴とする請求項1から請求項4までのいずれかに記載の動画像符号化装置。
【請求項6】
2段階の符号化を実施し、第1段階目の符号化の結果によって符号化対象の画像の性質を解析し、その解析結果に基づいて第2段階目の符号化を行う動画像符号化方法であって、
前記第1段階目の符号化を異なる量子化制御変数によって複数回実行する第1段階符号化ステップと、
前記第1段階符号化ステップによる複数の符号化結果を用いて、全ての前記量子化制御変数に対してフレームごとに発生する符号量を推定する符号量推定ステップと、
前記符号量推定ステップの結果から、前記フレームごとの前記符号量の割り当てを行う符号量割り当てステップと、
前記符号量割り当てステップによって割り当てた前記フレームごとの前記符号量に基づいて前記第2段階目の符号化を実行する第2段階符号化ステップと、
を含むことを特徴とする動画像符号化方法。
【請求項7】
前記第1段階符号化ステップは、前記フレームの属性に応じて実行する符号化の回数を可変とすることを特徴とする請求項6に記載の動画像符号化方法。
【請求項8】
前記第1段階符号化ステップは、2回目以降の符号化処理に含まれる処理の一部を省略することを特徴とする請求項6または請求項7に記載の動画像符号化方法。
【請求項9】
前記符号量推定ステップは、前記フレームごとに発生符号量の推定ロジックを選択可能とすることを特徴とする請求項6から請求項8までのいずれかに記載の動画像符号化方法。
【請求項10】
前記符号量割り当てステップは、同一の前記量子化制御変数によって推定した前記フレームごとの前記符号量が、符号化対象の動画像シーケンス全体で、指定されたビットレートに最も適したものとなる前記量子化制御変数を決定し、決定した前記量子化制御変数によって前記フレームごとの前記符号量を割り当てることを特徴とする請求項6から請求項9までのいずれかに記載の動画像符号化方法。
【請求項11】
コンピュータを請求項1から請求項5までのいずれかに記載の動画像符号化装置として機能させるプログラム。
【請求項1】
2段階の符号化を実施し、第1段階目の符号化の結果によって符号化対象の画像の性質を解析し、その解析結果に基づいて第2段階目の符号化を行う動画像符号化装置であって、
前記第1段階目の符号化を異なる量子化制御変数によって複数回実行する第1段階符号化手段と、
前記第1段階符号化手段による複数の符号化結果を用いて、全ての前記量子化制御変数に対してフレームごとに発生する符号量を推定する符号量推定手段と、
前記符号量推定手段の推定結果から、前記フレームごとの前記符号量の割り当てを行う符号量割り当て手段と、
前記符号量割り当て手段によって割り当てた前記フレームごとの前記符号量に基づいて前記第2段階目の符号化を実行する第2段階符号化手段と、
を具備することを特徴とする動画像符号化装置。
【請求項2】
前記第1段階符号化手段は、前記フレームの属性に応じて実行する符号化の回数を可変とすることを特徴とする請求項1に記載の動画像符号化装置。
【請求項3】
前記第1段階符号化手段は、2回目以降の符号化処理に含まれる処理の一部を省略することを特徴とする請求項1または請求項2に記載の動画像符号化装置。
【請求項4】
前記符号量推定手段は、前記フレームごとに前記符号量の推定ロジックを選択可能とすることを特徴とする請求項1から請求項3までのいずれかに記載の動画像符号化装置。
【請求項5】
前記符号量割り当て手段は、同一の前記量子化制御変数によって推定した前記フレームごとの前記符号量が、符号化対象の動画像シーケンス全体で、指定されたビットレートに最も適したものとなる前記量子化制御変数を決定し、決定した前記量子化制御変数によって前記フレームごとの前記符号量を割り当てることを特徴とする請求項1から請求項4までのいずれかに記載の動画像符号化装置。
【請求項6】
2段階の符号化を実施し、第1段階目の符号化の結果によって符号化対象の画像の性質を解析し、その解析結果に基づいて第2段階目の符号化を行う動画像符号化方法であって、
前記第1段階目の符号化を異なる量子化制御変数によって複数回実行する第1段階符号化ステップと、
前記第1段階符号化ステップによる複数の符号化結果を用いて、全ての前記量子化制御変数に対してフレームごとに発生する符号量を推定する符号量推定ステップと、
前記符号量推定ステップの結果から、前記フレームごとの前記符号量の割り当てを行う符号量割り当てステップと、
前記符号量割り当てステップによって割り当てた前記フレームごとの前記符号量に基づいて前記第2段階目の符号化を実行する第2段階符号化ステップと、
を含むことを特徴とする動画像符号化方法。
【請求項7】
前記第1段階符号化ステップは、前記フレームの属性に応じて実行する符号化の回数を可変とすることを特徴とする請求項6に記載の動画像符号化方法。
【請求項8】
前記第1段階符号化ステップは、2回目以降の符号化処理に含まれる処理の一部を省略することを特徴とする請求項6または請求項7に記載の動画像符号化方法。
【請求項9】
前記符号量推定ステップは、前記フレームごとに発生符号量の推定ロジックを選択可能とすることを特徴とする請求項6から請求項8までのいずれかに記載の動画像符号化方法。
【請求項10】
前記符号量割り当てステップは、同一の前記量子化制御変数によって推定した前記フレームごとの前記符号量が、符号化対象の動画像シーケンス全体で、指定されたビットレートに最も適したものとなる前記量子化制御変数を決定し、決定した前記量子化制御変数によって前記フレームごとの前記符号量を割り当てることを特徴とする請求項6から請求項9までのいずれかに記載の動画像符号化方法。
【請求項11】
コンピュータを請求項1から請求項5までのいずれかに記載の動画像符号化装置として機能させるプログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【公開番号】特開2009−49551(P2009−49551A)
【公開日】平成21年3月5日(2009.3.5)
【国際特許分類】
【出願番号】特願2007−211710(P2007−211710)
【出願日】平成19年8月15日(2007.8.15)
【出願人】(000208891)KDDI株式会社 (2,700)
【Fターム(参考)】
【公開日】平成21年3月5日(2009.3.5)
【国際特許分類】
【出願日】平成19年8月15日(2007.8.15)
【出願人】(000208891)KDDI株式会社 (2,700)
【Fターム(参考)】
[ Back to top ]