(58)【調査した分野】(Int.Cl.,DB名)
前記係数修正部は、前記第1のサブブロックの前記量子化された直交変換係数が全て0である場合、前記第1のサブブロックに含まれる前記変換ユニットのうちのサイズが最大となる変換ユニットの何れかの量子化された直交変換係数を前記所定値に置換する、請求項1に記載の動画像符号化装置。
前記係数修正部は、前記第1のサブブロックについての前記量子化された直交変換係数が全て0である場合、前記所定値に置換された量子化された直交変換係数を含む前記変換ユニットを逆量子化及び逆直交変換して得られる予測誤差信号が0になる量子化パラメータの値の範囲内で、前記第1の量子化パラメータに最も近い値を第2の量子化パラメータとし、
前記デブロックフィルタ部は、前記第2の量子化パラメータに基づいて前記第1のサブブロックに対するデブロッキングフィルタの強度を決定する、請求項1または2に記載の動画像符号化装置。
前記係数修正部は、前記第1のサブブロックの前記量子化された直交変換係数が全て0である場合、前記第1のサブブロックについての前記変換ユニットの分割パターンと、前記量子化された直交変換係数を前記所定値に置換する前記変換ユニットの位置と、前記量子化パラメータの候補値の組み合わせのそれぞれごとに、何れかの前記変換ユニットの前記量子化された直交変換係数の何れかを前記所定値に置換したときの符号量の推定値を算出し、該推定値が最小となる組み合わせに従って、前記変換ユニットの分割パターンと、前記量子化された直交変換係数を前記所定値に置換する変換ユニットを決定し、かつ、該推定値が最小となる組み合わせに含まれる前記量子化パラメータの候補値を前記第1のサブブロックに対するデブロッキングフィルタの強度決定に利用される第2の量子化パラメータとする、請求項1に記載の動画像符号化装置。
前記係数修正部は、前記第1のサブブロックについての前記量子化された直交変換係数が全て0である場合、前記所定値に置換された量子化された直交変換係数を含む前記変換ユニットを逆量子化及び逆直交変換して得られる予測誤差信号が0になる量子化パラメータの値の範囲内に前記量子化パラメータの候補値を設定する、請求項4に記載の動画像符号化装置。
前記量子化部は、前記第1のサブブロックについて前記第2の量子化パラメータが設定された場合、前記複数のサブブロックのうち、前記第1のサブブロックについて適用される量子化パラメータと同じ量子化パラメータが適用される範囲に属する他のサブブロックの前記直交変換係数を前記第2の量子化パラメータを用いて量子化する、請求項3〜5の何れか一項に記載の動画像符号化装置。
動画像データに含まれる符号化対象ピクチャを複数のブロックに分割し、該ブロックのラインごとに符号化することをコンピュータに実行させる動画像符号化用コンピュータプログラムであって、
前記ブロックを分割した複数のサブブロックのそれぞれについて、該サブブロックと対応する予測ブロック間の予測誤差信号を、該サブブロックを分割した変換ユニットごとに直交変換することにより直交変換係数を算出し、
前記複数のサブブロックのそれぞれごとに、前記直交変換係数を、量子化幅を規定する第1の量子化パラメータに従って量子化することにより、量子化された直交変換係数を算出し、
前記複数のサブブロックのそれぞれごとに、前記量子化された直交変換係数を前記第1の量子化パラメータを用いて逆量子化することにより前記直交変換係数を復元し、
前記複数のサブブロックのそれぞれごとに、前記復元された直交変換係数を逆直交変換することにより前記予測誤差信号を復元し、
前記複数のサブブロックのそれぞれごとに、前記復元された予測誤差信号を対応する前記予測ブロックの画素の値に加算することで前記サブブロックを再生し、
前記再生されたサブブロックのそれぞれに対して、当該サブブロックについての前記量子化された直交変換係数が全て0である場合、符号化済みの他のサブブロックについての前記第1の量子化パラメータに基づいてデブロッキングフィルタの強度を決定し、一方、当該サブブロックについての前記量子化された直交変換係数の何れかが0でない場合、当該サブブロックについての前記第1の量子化パラメータに基づいてデブロッキングフィルタの強度を決定し、決定された強度のデブロッキングフィルタ処理を実行し、
前記複数のサブブロックのうち、前記ブロックのラインにおいて最初に符号化される第1のサブブロックの前記量子化された直交変換係数が全て0である場合、当該第1のサブブロックに含まれる前記変換ユニットのうち、前記再生された第1のサブブロックの画質の劣化または前記第1のサブブロックの符号量の増加が最小となる変換ユニットを選択し、選択された変換ユニットに含まれる何れかの量子化された直交変換係数を0以外の所定値に置換する、
ことをコンピュータに実行させるための動画像符号化用コンピュータプログラム。
【発明を実施するための形態】
【0022】
以下、図を参照しつつ、一つの実施形態による、動画像符号化装置について説明する。この動画像符号化装置は、HEVCのように、動画像データに含まれる各ピクチャを多段階に分割して符号化することが可能な符号化方式に従って、符号化処理の単位となるCTUのラインごとに並列に符号化する。この動画像符号化装置は、各CTUラインの最初に符号化されるCUに含まれる量子化された直交変換係数が全て0であった場合に、そのCUに含まれるTUの何れかの量子化された直交変換係数の値を0以外の所定値に修正する。これにより、この動画像符号化装置は、デブロッキングフィルタの強度の決定において、CTUライン間の参照関係が生じることを防止して、CTUラインごとの並列処理を可能にする。
【0023】
さらに、この動画像符号化装置は、量子化された直交変換係数を修正するTUを、再生されたピクチャの画質劣化を最小限に止めることができるように選択する。さらに、この動画像符号化装置は、そのTUを含むQGに適用される修正されたQP値を、そのTUの量子化に用いたQP値に近い値とすることで、符号量の増加を抑制する。
【0024】
なお、ピクチャは、フレームまたはフィールドの何れであってもよい。フレームは、動画像データ中の一つの静止画像であり、一方、フィールドは、フレームから奇数行のデータあるいは偶数行のデータのみを取り出すことにより得られる静止画像である。
【0025】
図2は、一つの実施形態による動画像符号化装置の概略構成図である。動画像符号化装置1は、分割部10と、n個の符号化部11−1〜11−n(nは2以上の整数)と、結合部12とを有する。
動画像符号化装置1が有するこれらの各部は、それぞれ別個の回路として形成される。あるいは動画像符号化装置1が有するこれらの各部は、その各部に対応する回路が集積された一つの集積回路として動画像符号化装置1に実装されてもよい。さらに、動画像符号化装置1が有するこれらの各部は、動画像符号化装置1が有するプロセッサ上で実行されるコンピュータプログラムにより実現される、機能モジュールであってもよい。
【0026】
分割部10は、動画像データに含まれる各ピクチャを、水平方向にCTUが並んだCTUラインごとに分割する。そして分割部10は、各CTUラインのデータを、それぞれ、符号化部11−1〜11−nの何れかへ出力する。
【0027】
符号化部11−1〜11−nは、それぞれ、受け取ったCTUラインに含まれる各CTUを符号化する。符号化部の数がCTUラインの数以上である場合には、各符号化部は、一つのCTUラインを符号化すればよい。符号化部の数がCTUラインの数よりも少ない場合には、例えば、各符号化部は、一番上のCTUラインから順に、nラインずつ符号化すればよい。例えば、一つのピクチャに含まれるCTUラインを一番上から順にCTUライン1、CTUライン2、...、CTUラインmと表記する(ただし、m>n)。この場合、符号化部11−1〜1−nは、最初に、CTUライン1〜CTUラインnを符号化する。次に、符号化部11−1〜1−nは、CTUライン(n+1)〜CTUライン(2n)を符号化する。同様に、符号化部11−1〜1−nは、一番下のCTUラインmの符号化が終了するまで、nラインごとに符号化すればよい。
【0028】
図3は、各符号化部とCTUラインの関係を示す図である。ピクチャ300は、m個のCTUライン301−1〜301−mに分割される。例えば、CTUライン301−1は、符号化部11−1により符号化され、CTUライン301−2は、符号化部11−2により符号化され、CTUライン301−3は、符号化部11−3により符号化される。
ここで、CTUライン301−2以降のCTUラインを符号化する際には、符号化部は、一つ上のCTUラインの符号化済みのCTUの情報を参照できることが符号化効率の点から好ましい。例えば、符号化対象のCTUを符号化する際に、そのCTUの上方に隣接するCTUと、右斜め上方に隣接するCTUの情報を参照できることが好ましい。そこで、各符号化部は、一つ上のCTUラインを符号化する他の符号化部が、CTUラインの左端から2個のCTUの符号化処理を終了した時点で符号化を開始することが好ましい。したがって、符号化部11−3が上から3番目のCTUライン301−3の先頭のCTU313−1の符号化を開始する際には、符号化部11−2は、上から2番目のCTUライン301−2の先頭CTU312−1及び次のCTU312−2の符号化を完了していることが好ましい。同様に、符号化部11−1は、1番上のCTUライン301−1の先頭CTU311−1〜4番目のCTU311−4までの符号化を完了していることが好ましい。
【0029】
符号化部11−1〜11−nは、符号化されたCTUラインのデータストリームを結合部12へ出力する。
【0030】
結合部12は、符号化された各CTUラインのデータストリームに基づいて、各CTUの符号化データを、一番上のCTUラインに含まれるCTUの符号化データからラスタスキャン順に結合する。そして結合部12は、そのデータストリームに含まれる各種の符号化データを、生起確率が高い信号値ほど短くなるようにエントロピー符号化する。結合部12は、例えば、エントロピー符号化処理として、CAVLCといったハフマン符号化処理あるいはCABACといった算術符号化処理を用いることができる。
【0031】
結合部12は、エントロピー符号化により生成されたデータストリームに所定の符号化データのフォーマットに従ってヘッダ情報などを付加することで、ピクチャの符号化データストリームを生成する。さらに結合部12は、ピクチャごとの符号化順序に従って、各ピクチャの符号化データストリームを結合する。そして結合部12は、その結合されたデータストリームに所定の符号化データのフォーマットに従ってヘッダ情報などを付加することで、符号化された動画像のデータストリームを生成し、そのデータストリームを出力する。
【0032】
以下、符号化部11−1〜11−nの詳細について説明する。符号化部11−1〜11−nは、同一の構成及び同一の機能を有するので、以下では、一つの符号化部についてのみ説明する。
【0033】
図4は、符号化部11−k(k=1,2,...,n)の構成図である。符号化部11−kは、予測誤差算出部21と、直交変換部22と、量子化部23と、逆量子化部24と、逆直交変換部25と、加算部26と、デブロックフィルタ部27と、記憶部28と、動きベクトル計算部29と、予測モード判定部30と、予測ブロック生成部31と、係数修正部32とを有する。
符号化部11−kは、分割部10から受け取ったCTUラインのデータに含まれる先頭(この例では、左端)のCTUから順に、CTU単位で符号化する。
【0034】
予測誤差算出部21は、符号化対象CTU内のCUごとに、そのCU内の各TUについて、予測ブロック生成部31により生成された予測ブロックとの差分演算を実行する。そして予測誤差算出部21は、その差分演算により得られたTU内の各画素に対応する差分値を、そのTUの予測誤差信号とする。
【0035】
直交変換部22は、予測モード判定部30から通知されるTU分割パターンを表すTU分割情報に従って、CU内のTUごとに、そのTUの予測誤差信号を直交変換することで予測誤差信号の水平方向の周波数成分及び垂直方向の周波数成分を表す直交変換係数を求める。例えば、直交変換部22は、予測誤差信号に対して、直交変換処理としてDCTを実行することにより、直交変換係数として、DCT係数を得る。
【0036】
量子化部23は、直交変換部22により得られたTUごとの直交変換係数を量子化することにより、量子化された直交変換係数を算出する。
この量子化処理は、一定区間(量子化幅)に含まれる信号値を一つの信号値で表す処理である。量子化部23は、上記のQPに基づいて決定される量子化ステップQstep(QP)と量子化された直交変換係数の周波数ごとの重みを調整する行列ScalingListとをパラメータとして決定される量子化幅で直交変換係数を量子化する。なお、QPの値は、例えば、制御部(図示せず)により、CUに対して設定される符号量に応じて決定され、その制御部から通知される。例えば、水平方向にi番目、垂直方向にj番目の成分の直交変換係数をc
ijとして、量子化部23は、次式にしたがってc
ijに対応する量子化された直交変換係数c'
ijを算出する。
【数1】
ここで、Round()は、整数への丸め処理を表し、Abs()は、絶対値を出力する関数である。またSign()は、正負の符号を出力する関数である。そしてTUSizeは、該当TUの水平あるいは垂直の画素数を表す。演算子'a>>b'は、パラメータaを下位方向へbビットシフトさせるシフト演算子である。また、Qstep(QP)は、次式で表される。
【数2】
【0037】
図5(a)〜
図5(f)は、それぞれ、ScalingListの一例を示す図である。
図5(a)〜
図5(f)のそれぞれにおいて、左上の数値が直流成分に対するScaling値である。
図5(a)〜
図5(c)に示されるScalingList501〜ScalingList503は、それぞれ、8x8画素、16x16画素、32x32画素のイントラ予測符号化されるTUに適用されるScalingListである。一方、
図5(d)〜
図5(f)に示されるScalingList504〜ScalingList506は、それぞれ、8x8画素、16x16画素、32x32画素のインター予測符号化されるTUに適用されるScalingListである。ただし、
図5(b)、
図5(e)に示されるScalingList502及びScalingList505における一つの要素は、2x2=4個の成分に適用される。また、
図5(c)、
図5(f)に示されるScalingList503及びScalingList506における一つの要素は、4x4=16個の成分に適用される。
【0038】
なお、TUの各サイズについて、全ての要素の値が同一値(例えば、16)であるScalingListが用いられてもよい。例えば、TUが4x4画素のサイズを有する場合には、イントラ予測符号化モード及びインター予測符号化モードの何れについても、ScalingListの各要素は16となる。なお、各要素が16となるScalingListが、標準規格での初期値として用いられる。
【0039】
得られたc'
ijについては、シフト演算により0に近い値の頻度が高くなるので、結合部12におけるエントロピー符号化により符号量を圧縮し易くなる。
【0040】
量子化部23は、量子化された直交変換係数及びCUがどのようなTUに分割されるかを表すTU分割情報を逆量子化部24及び係数修正部32へ出力する。
【0041】
逆量子化部24、逆直交変換部25、加算部26及びデブロックフィルタ部27は、各TUの量子化された直交変換係数から、そのTUよりも後のCUなどを符号化するために参照される参照ブロックを生成し、その参照ブロックを記憶部28に記憶する。
そのために、逆量子化部24は、各TUの量子化された直交変換係数を逆量子化する。例えば、逆量子化部24は、次式に従って直交変換係数d
ijを復元する。
【数3】
なお、演算子'a<<b'は、パラメータaを上位方向へbビットシフトさせるシフト演算子である。
逆量子化部24は、各TUの復元された直交変換係数を逆直交変換部25へ出力する。
【0042】
逆直交変換部25は、TUごとに、復元された直交変換係数に対して逆直交変換を行う。例えば、直交変換部22が直交変換としてDCTを用いている場合、逆直交変換部25は、逆直交変換として逆DCT処理を実行する。これにより、逆直交変換部25は、TUごとに、符号化前の予測誤差信号と同程度の情報を有する予測誤差信号を復元する。
逆直交変換部25は、TUごとの復元された予測誤差信号を加算部26へ出力する。
【0043】
加算部26は、TUごとに、そのTUの予測ブロックの各画素値に、復元された予測誤差信号を加算することで、その後に符号化されるCUなどに対する予測ブロックを生成するために利用される参照ブロックを生成する。
加算部26は、参照ブロックを生成する度に、その参照ブロックを記憶部28に記憶させる。
【0044】
記憶部28は、加算部26から受け取った参照ブロックを一時的に記憶する。なお、参照ピクチャは、各TUの符号化順序にしたがって、1枚のピクチャ分の参照ブロックを結合することで得られる。そのため、記憶部28は、符号化済みのピクチャについての他のCTUラインの参照ブロックのデータを、他の符号化部から受け取ってもよい。記憶部28は、動きベクトル計算部29、予測モード判定部30及び予測ブロック生成部31に、参照ピクチャまたは参照ブロックを供給する。なお、記憶部28は、符号化対象ピクチャが参照する可能性がある、予め定められた所定枚数分の参照ピクチャを記憶し、参照ピクチャの枚数がその所定枚数を超えると、符号化順序が古い参照画ピクチャから順に破棄する。
さらに、記憶部28は、インター予測符号化された参照ブロックのそれぞれについての動きベクトルを記憶する。
【0045】
デブロックフィルタ部27は、記憶部28に記憶されている参照ブロックに対して、ブロックノイズを低減するために、隣接する二つの参照ブロック間の境界を跨ぐようにデブロッキングフィルタ処理を実行することで、各参照ブロックの画素値を平滑化する。なお、デブロックフィルタ部27は、参照ブロックに対して他のフィルタ処理、例えば、sample adaptive offsetフィルタ処理を行ってもよい。そしてデブロックフィルタ部27は、フィルタ処理された参照ブロックを記憶部28に記憶する。
【0046】
なお、デブロックフィルタ部27は、例えば、HEVCの規格に従って、デブロッキングフィルタの強度を決定する。すなわち、デブロックフィルタ部27は、量子化された直交変換係数の一つ以上が0でないCU、すなわち、QP値が符号化されるCUについては、そのCU自身のQP値に応じてデブロッキングフィルタの強度を決定する。一方、全ての量子化された直交変換係数が0であるCUについては、デブロックフィルタ部27は、既に符号化されている他のCUについてのQP値に応じてデブロッキングフィルタの強度を決定する。
また、後述するように、係数修正部28により量子化された直交変換係数が変更されたCUについては、係数修正部28により設定された第2のQP値に応じて、例えば、HEVCの規格に従ってデブロッキングフィルタの強度を決定する。
【0047】
動きベクトル計算部29は、インター予測符号化用の予測ブロックを生成するために、符号化対象CU内のPUごとに、そのPUと参照ピクチャとを用いて、動きベクトルを求める。動きベクトルは、PUと、そのPUに最も類似する参照ピクチャ上の領域間の空間的な移動量を表す。
動きベクトル計算部29は、PUと、参照ピクチャとのブロックマッチングを実行することにより、そのPUと最も一致する参照ピクチャ及びその参照ピクチャ上の領域の位置を決定する。そして動きベクトル計算部29は、符号化対象ピクチャ上のPUの位置と、そのPUに最も一致する参照ピクチャ上の領域との水平方向及び垂直方向の移動量を動きベクトルとする。
動きベクトル計算部29は、求めた動きベクトルと、参照ピクチャの識別情報を、記憶部28、予測モード判定部30、予測ブロック生成部31及び予測誤差算出部21へ渡す。
【0048】
予測モード判定部30は、符号化対象CTUを分割するCU、PU及びTUのサイズ及び予測ブロックの生成方法を決定する。予測モード判定部30は、例えば、図示しない制御部から取得した、符号化対象CUが含まれる符号化対象のピクチャのタイプを示す情報に基づいて、そのCTUの予測符号化モードを決定する。符号化対象のピクチャのタイプがIピクチャであれば、予測モード判定部30は適用される予測符号化モードとしてイントラ予測符号化モードを選択する。また、符号化対象のピクチャのタイプがPピクチャまたはBピクチャであれば、予測モード判定部30は、例えば、適用される予測符号化モードとして、インター予測符号化モード及びイントラ予測符号化モードの何れかを選択する。
【0049】
予測モード判定部30は、適用可能な予測符号化モードについての符号化対象CTUの符号化されたデータ量の評価値であるコストをCU単位でそれぞれ算出する。例えば、予測モード判定部30は、インター予測符号化モードについては、CTUを分割するCU、PU及びTUのサイズ及び動きベクトルの予測ベクトルの生成方法を規定するベクトルモードの組み合わせごとにコストを算出する。また、イントラ予測符号化モードについては、予測モード判定部30は、CTUを分割するCU、PU及びTUのサイズ及び予測ブロックの生成方法を規定する予測モードの組み合わせごとにコストを算出する。
そして予測モード判定部30は、コストが最小となるように、符号化対象CTU内のCU単位でイントラ予測符号化モードとインター予測符号化モードを選択する。さらに、予測モード判定部13は、各CU内の各PU及びTUの組み合わせごとにコストが最小となる予測モードまたはベクトルモードを選択する。
予測モード判定部30は、選択したCU、PU及びTUのサイズ及び予測ブロックの生成方法の組み合わせを予測ブロック生成部31に通知する。また予測モード判定部30は、TU分割情報を直交変換部22、量子化部23、逆量子化部24、逆直交変換部25及び係数修正部32へ通知する。
【0050】
予測ブロック生成部31は、予測モード判定部30によって選択されたCU、PU及びTUのサイズ及び予測ブロックの生成方法の組み合わせに従って各TUの予測ブロックを生成する。予測ブロック生成部31は、例えば、CUがインター予測符号化される場合、そのCU内のPUごとに、記憶部28から得た参照ピクチャを、動きベクトル計算部29から提供される動きベクトルに基づいて動き補償する。そして予測ブロック生成部14は、動き補償されたインター予測符号化用の予測ブロックを生成する。
【0051】
また予測ブロック生成部31は、符号化対象CUがイントラ予測符号化される場合、符号化対象CU内のPUごとに選択された予測モードを適用することで、各TUの予測ブロックを生成する。
予測ブロック生成部31は、生成された予測ブロックを予測誤差算出部21へ渡す。
【0052】
係数修正部32は、CTUライン内の最初に符号化されるCUについての量子化された直交変換係数が全て0か否か判定する。そして係数修正部32は、CTUライン内の最初に符号化されるCUについての量子化された直交変換係数が全て0となる場合、そのCU内の何れかのTUの量子化された直交変換係数を0以外の所定値に修正し、その修正による画質の劣化が生じないようにQP値を決定する。そして係数修正部32は、各CUの量子化された直交変換係数を符号化データとして結合部12へ出力する。
なお、係数修正部32の詳細は後述する。
【0053】
以下、係数修正部32の詳細について説明する。
図6は、係数修正部32の構成図である。係数修正部32は、判定部41と、TU選択部42と、置換部43と、QP修正部44とを有する。
【0054】
判定部41は、符号化対象CUが、CTUライン内で最初に符号化されるCUであるか否かを判定する。そして符号化対象CUが最初に符号化されるCUである場合、判定部41は、CU内の全ての量子化された直交変換係数が0であるか否かを判定する。そして、全ての量子化された直交変換係数が0である場合、判定部41は、符号化対象CUを、係数修正対象とする。
【0055】
一方、符号化対象CUがCTUライン内で最初に符号化されるCUでない場合、デブロックフィルタ部27が、そのCUに対するデブロッキングフィルタの強度を設定する際、CTUライン内の符号化済みの他のCUのQP値を参照できる。そのため、この場合には、判定部41は、符号化対象CUを係数修正対象としない。また、符号化対象CU内の量子化された直交変換係数の何れかが0でない場合、デブロックフィルタ部27は、符号化対象CU自身のQP値を利用できるので、判定部41は、符号化対象CUを係数修正対象としない。
【0056】
TU選択部42は、符号化対象CUが係数修正対象と判定された場合、量子化部23から受け取ったTU分割情報に基づいて、ゼロ以外の値に置換される量子化された直交変換係数を含むTUを選択する。なお、量子化された直交変換係数のうちのどの周波数成分の係数が0以外の値に置換されてもよいが、結合部12でのエントロピー符号化に要するビット数が少ない点で、直流成分を表す係数(例えば、DCTの(0,0)の係数)をゼロ以外の値に置換することが好ましい。同様に、修正後の量子化された直交変換係数の値も、0以外の任意の整数値とすることができるが、結合部12でのエントロピー符号化に要するビット数が少ない点で、1または−1とすることが好ましい。
【0057】
何れかの量子化された直交変換係数の値が0から1に置換された場合、逆量子化及び逆直交変換により得られる、復元された予測誤差信号の値も0から他の値に変化する。量子化された直交変換係数の値を置換した場合に復元された予測誤差信号と量子化された直交変換係数の値を置換しない場合に復元された予測誤差信号との差は、量子化された直交変換係数の置換により生じるノイズとみなせる。したがって、TU選択部42は、量子化された直交変換係数の置換により生じるノイズが、復号後のピクチャの画質に影響しないように、そのノイズが小さくなるよう、量子化された直交変換係数を置換するTUを選択することが好ましい。
【0058】
量子化された直流成分を表す直交変換係数(すなわち、(1)式及び(3)式におけるc'
00)の値を1としたとき、逆量子化及び逆直交変換後の予測誤差信号の値の大きさは、QPと、TUのサイズと、そのTUに対応するScalingListの直流成分の値scalingListDCによって定まる。
すなわち、TU内の全ての量子化された直交変換係数c'
ijが0である場合に、c'
00を1に置換としたときの逆量子化後の直交変換係数の直流成分d
00は、(3)式に従って算出される。そして、d
00から、直流成分が1の場合に逆直交変換(この例では、逆DCT)により復元される予測誤差信号の値r
ijは、以下のように算出される。
【数4】
直流成分の量子化された直交変換係数c'
00の値が置換されなければ、r
ij=0なので、TU選択部42は、r
ijの絶対値が小さくなるように直流成分の量子化された直交変換係数c'
00の値を置換するTUを選択することで、ノイズを低下できる。(4)式から明らかなように、r
ijを小さくするには、TU選択部42は、d
00を小さくすればよい。
【0059】
すなわち、TU選択部42は、TUサイズごとに、d
00の絶対値が小さいほど、優先度が高くなるように各TUに優先度を設定する。そしてTU選択部42は、符号化対象CU内の各TUのうち、優先度が最も大きいTUサイズを持つTUを、量子化された直交変換係数の置換対象となるTUとして選択する。
【0060】
なお、符号化対象CUについて使用する可能性のあるScalingListの直流成分が、TUサイズに依存せず同じ値であれば、(3)式から明らかなように、TUサイズが大きいほどd
ijが小さくなるので、TU選択部42は、TUサイズが大きいほど、優先度を高くすればよい。
【0061】
なお、TU選択部42は、輝度成分のTUの中から、量子化された直交変換係数の値を置換するTUを選択する。あるいは、TU選択部42は、色差成分のTUの中から、量子化された直交変換係数の値を置換するTUを選択してもよい。あるいはまた、TU選択部42は、輝度成分のTUと色差成分のTUの中から、量子化された直交変換係数の値を置換するTUを一つ選択してもよい。また、優先度が最高となるサイズを持つTUが複数存在する場合、TU選択部42は、その複数のTUのうち、CUの所定の領域に含まれるTUを選択してもよい。
【0062】
置換部43は、符号化対象CUのうち、TU選択部42により選択されたTUの量子化された直交変換係数の何れかの値を0以外の値に置換する。
上記のように、本実施形態では、置換部43は、直流成分を表す量子化された直交変換係数の値を1または-1に置換する。
そして置換部43は、何れかの量子化された直交変換係数の値が置換された後の符号化対象CUの各量子化された直交変換係数を符号化データとして結合部12へ出力する。
【0063】
QP修正部44は、TU選択部42により選択されたTUについての復元された予測誤差信号r
ijが0になる範囲で符号化対象CU内の各TUの量子化処理で使用した第1のQPと最も近い第2のQPを選択する。
【0064】
なお、量子化された直交変換係数が置換されたTUについて、復元された予測誤差信号r
ijが0になる範囲は、ScalingListの直流成分に基づいて決定される。例えば、ScalingListDCが16である場合、r
ijが0になるQPの範囲は下記の表に示される。
【表1】
【0065】
上記の関係表からわかるように、TUサイズが大きいほど、選択可能なQPの範囲が大きくなる。ピクチャ内では、局所的には空間の相関性があることが多いので、符号化対象CUの第1のQPは、周囲のCUについて使用されるQPと近い値になると想定される。したがって、第2のQPとして、第1のQPに近い値を選択するほど、隣接QG間でのQPの差分値cuQpDeltaが小さくなり、その結果としてcuQpDeltaの符号量が削減される。
そこで、QP修正部44は、例えば、QP修正部44が有するメモリ回路(図示せず)に記憶されている上記の関係表を参照して、TU選択部42により選択されたTUのサイズに該当する、r
ijが0になるQPの範囲を求める。そしてQP修正部44は、そのQPの範囲内で、量子化部23から通知された第1のQPの値に最も近いQP値を、第2のQPとする。
【0066】
本実施形態では、TUサイズが大きくなるように、すなわち、選択可能なQPの範囲が大きくなるように、量子化された直交変換係数の値が置換されるTUが選択されるので、QP修正部44は、第2のQPとして第1のQPに近い値を選択し易くなる。その結果として、この動画像符号化装置1は、cuQpDeltaについての符号量を削減できる。
【0067】
なお、量子化された直交変換係数の置換により生じるノイズが許容される場合、QP修正部44は、第2のQPの値を上記のTUサイズに応じて定まるQP値の範囲から外れる値としてもよい。この場合には、QP修正部44は、第1のQPの値が上記の範囲から外れていたとしても、第2のQPの値を、第1のQPの値により近い値または第1のQPの値そのものに設定できる。そのため、この変形例では、cuQpDeltaについての符号量がより削減される。またこの場合、逆量子化部24は、第2のQPに従って、直交変換係数が置換されたTUを逆量子化して直交変換係数を復元し、逆直交変換部25は、その直交変換係数を逆直交変換して予測誤差信号r
ijを算出すればよい。そして加算部26は、そのr
ijを用いて参照ブロックを生成すればよい。なお、イントラ予測符号化モードでは、符号化対象TUに隣接する参照ブロックの画素の値に基づいて予測ブロックが生成される。そのため、参照ブロックの画素値が変化すると、隣接するTUでのイントラ予測符号化モードにより生成される予測ブロックの画素値も変化してしまう。そのため、QP修正部44は、量子化された直交変換係数が置換されるTUを含むCUがインター予測符号化されている場合にはノイズを許容するように第2のQPを決定してもよい。一方、そのTUを含むCUがイントラ予測符号化されている場合は、QP修正部44は、予測誤差信号r
ijが0になる範囲内で第2のQPを決定することが好ましい。
【0068】
QP修正部44は、第2のQP値を、量子化部23、逆量子化部24及びデブロックフィルタ部27に出力する。またQP修正部44は、第2のQP値を符号化データとして結合部12へ出力する。結合部12は、第2のQP値及びその第2のQP値が利用されたTUを含むQGに後続するQGにおいて、第2のQPの値に基づいて算出されたcuQpDeltaをエントロピー符号化する。
また、量子化部23及び逆量子化部24は、直交変換係数が置換されたTUと同一のQGに所属する残りの未処理TUの量子化処理及び逆量子化処理を、第1のQPの代わりに第2のQPを用いて実行する。これは、一つのQGについては一度しかQPを動画像復号装置に通知できないため、動画像復号装置は、QG内の残りのTUの逆量子化を第2のQPを用いることになる。そのため、動画像符号化装置1でも、QG内の残りのTUについては、第2のQPを利用して量子化及び逆量子化を行う。同様に、デブロックフィルタ部27は、通知された第2のQPに基づいてデブロッキングフィルタの強度を決定し、CTUラインの最初のCUについてのデブロッキングフィルタ処理を行えばよい。これにより、動画像符号化装置1が実行するデブロッキングフィルタ処理も、動画像復号装置が実行するデブロッキングフィルタ処理と同じとすることができる。
【0069】
図7は、係数修正部32により実行される係数修正処理の動作フローチャートである。
判定部41は、符号化対象CUがCTUライン内の最初に符号化されるCUか否か判定する(ステップS101)。符号化対象CUがCTUライン内の最初に符号化されるCUでなければ(ステップS101−No)、係数修正部32は、係数修正処理を終了する。
【0070】
一方、符号化対象CUがCTUライン内の最初に符号化されるCUであれば(ステップS101−Yes)、判定部41は、符号化対象CU内の量子化された直交変換係数が全て0か否か判定する(ステップS102)。符号化対象CU内の何れかの量子化された直交変換係数が0以外の値を有していれば(ステップS102−No)、係数修正部32は、係数修正処理を終了する。
【0071】
一方、判定部41は、符号化対象CU内の量子化された直交変換係数が全て0であれば(ステップS102−Yes)、判定部41は、符号化対象CU内の何れかの量子化された直交変換係数を修正すると判定する。そしてTU選択部42は、符号化対象CU内で、TUのサイズと、そのTUに対応するScalingListの直流成分の値scalingListDCに基づいて、逆量子化の直交変換係数の直流成分が最小となるサイズのTUを、係数修正対象のTUとして選択する(ステップS103)。
【0072】
置換部43は、選択されたTUの直流成分の量子化された直交変換係数を0以外の所定値に置換する(ステップS104)。そして置換部43は、置換された量子化された直交変換係数を含む、符号化対象CUの各TUの量子化された直交変換係数を結合部12へ出力する。
【0073】
また、QP修正部44は、置換された量子化後の直交変換係数を持つTUを逆量子化及び逆直交変換して得られる予測誤差信号が0となるQPの値の範囲内で、符号化対象CUについての量子化に使用された第1のQPに最も近い値を第2のQPとする(ステップS105)。その後、QP修正部44は、第2のQP値を、結合部12、量子化部23、逆量子化部24及びデブロックフィルタ部27に出力する。そして係数修正部32は、係数修正処理を終了する。
【0074】
図8は、動画像符号化装置1により実行される動画像符号化処理の動作フローチャートである。動画像符号化装置1は、CUごとに
図8に示される動画像符号化処理を実行する。
【0075】
予測モード判定部30は、符号化対象CUの予測符号化モードを決定する(ステップS201)。予測ブロック生成部31は、決定された予測符号化モードに応じて予測ブロックを生成する(ステップS202)。
【0076】
予測誤差算出部21は、符号化対象CUと予測ブロック間の予測誤差信号を算出する(ステップS203)。直交変換部22は、その予測誤差信号をTU単位で直交変換することで、直交変換係数を算出する(ステップS204)。量子化部23は、第1のQP値に基づいて決定される量子化幅で直交変換係数を量子化することで、量子化された直交変換係数を算出する(ステップS205)。
【0077】
逆量子化部24は、量子化された直交変換係数を逆量子化することで直交変換係数を復元する(ステップS206)。そして逆直交変換部25は、復元された直交変換係数を逆直交変換することで予測誤差信号を復元する(ステップS207)。加算部26は、復元された予測誤差信号を予測ブロックに加算することで参照ブロックを生成し、その参照ブロックを記憶部28に記憶させる(ステップS208)。
【0078】
一方、係数修正部32は、量子化係数に対して係数修正処理を実行する(ステップS209)。デブロックフィルタ部27は、第1のQP値または係数修正処理により選択された第2のQP値に応じた強度のデブロッキングフィルタ処理を参照ブロックに対して実行する(ステップS210)。そして動画像符号化装置1は、一つのCUに対する動画像符号化処理を終了する。
【0079】
以上に説明してきたように、この動画像符号化装置は、各ピクチャをCTUラインごとに符号化する際に、CTUラインの最初に符号化されるCUについての量子化された直交変換係数が全て0のときに何れかの量子化された直交変換係数を0以外の所定値にする。これにより、この動画像符号化装置は、デブロッキングフィルタ処理に関するCTUライン間の依存を無くし、CTUラインごとの符号化処理を並列に実行できるようにする。さらに、この動画像符号化装置は、量子化された直交変換係数の置換によるノイズが小さくなるようにその置換を行うTUを選択する。そしてこの動画像符号化装置は、置換が行われたTUを含む先頭CUについてのデブロッキングフィルタの強度設定に利用する第2のQP値を、そのCUの量子化に利用されたQP値にできるだけ近い値に設定する。これにより、この動画像符号化装置は、QP値の符号化に要する符号量の増加を抑制する。さらに、この動画像符号化装置は、第2のQP値が非常に小さな値となることを防止して、先頭CUと同一QG内のCUの量子化された直交変換係数が十分に小さな値とならずに符号量が増加することを抑制する。
【0080】
次に、第2の実施形態による動画像符号化装置について説明する。第2の実施形態による動画像符号化装置は、CTUラインの先頭CU内の量子化された直交変換係数が全て0であった場合に、TU分割パターン、直交変換係数を修正するTUの位置及び第2のQPの候補値の組み合わせごとに符号量の推定値である符号化コストを算出する。そしてこの動画像符号化装置は、符号化コストが最小となる組み合わせに従って量子化された直交変換係数を修正する。
【0081】
図9は、第2の実施形態による係数修正部52の構成図である。係数修正部52は、判定部41と、修正位置決定部45と、置換部43と、QP修正部44とを有する。第2の実施形態による動画像符号化装置は、第1の実施形態による動画像符号化装置と比較して、係数修正部52がTU選択部42の代わりに修正位置決定部45を有する点で異なる。そこで以下では、修正位置決定部45及びその関連部分について説明する。動画像符号化装置のその他の構成要素については、第1の実施形態による動画像符号化装置の対応する構成要素の説明を参照されたい。
【0082】
図10は、第2の実施形態による係数修正部52による係数修正処理の概念図である。係数修正部52は、量子化係数が全て0である最初に符号化されるCU1000を、適用可能なTU分割パターンのそれぞれに従って分割する。係数修正部52は、TU分割パターンごとに、そのTU分割パターンで設定されたそれぞれのTUの何れか(
図10では、TU1011〜1013)の量子化係数を0以外の所定値、例えば1に置換する。そして係数修正部52は、係数が修正されたTU(
図10では、TU1011〜1013)を第2のQPの候補値で逆量子化したときの符号化コストを算出する。そして係数修正部52は、符号化コストが最小となる、TU分割パターン、量子化係数を修正するTUの位置及び第2のQP値の候補の組み合わせを特定する。
【0083】
修正位置決定部45は、修正対象となる、CTUライン内の最初に符号化されるCUについて、TU分割パターンの候補と、量子化された直交変換係数を修正するTU位置と、QP値の候補の組み合わせごとに符号化コストを算出する。例えば、修正位置決定部45は、修正対象CUの量子化に利用された第1のQPと、表1に示されるQP値の範囲内の各QP値を、TUサイズごとの第2のQP値の候補とする。また、修正位置決定部45は、例えば、HEVCで規定されるTU分割パターンのそれぞれを、TU分割パターンの候補とすればよい。
【0084】
また、本実施形態において、置換対象となる量子化された直交変換係数は、第1の実施形態と同様に、直流成分を表す係数とする。また、符号化コストの算出において、全ての組み合わせについて、量子化された直交変換係数を同じ絶対値に置換するならば、置換後の量子化された直交変換係数の絶対値がどのような値であっても、組み合わせごとの符号化コストの大小関係は変わらない。そこで、置換後の量子化された直交変換係数は、1または-1であればよい。そこで、修正位置決定部45は、全ての組み合わせについて、直流成分を表す量子化された直交変換係数を1または-1とし、他の周波数成分の量子化された直交変換係数を0として、符号化コストを算出する。
【0085】
符号化コストCは、例えば、ラグランジュの未定乗数法に従って、以下の式により算出される。
【数5】
ここで、λは未定乗数である。
(5)式における符号化誤差は、以下のように計算できる。
NxN画素のCUに対して、着目するQPの候補値をqpとして、直流成分を表す量子化された直交変換係数をkとした場合、逆量子化及び逆直交変換して得られる予測誤差信号の値r
ijは、画素位置に依らずに全て同一の値となる。ここで、その予測誤差信号の値をdcVal(N,k,qp)とする。なお、修正位置決定部45は、dcVal(N,k,qp)を、上記の(3)式及び(4)式に従って算出できる。
【0086】
符号化誤差は、原ピクチャと復号ピクチャ間の対応画素間の誤差の2乗和で表すことができる。そのため、量子化された直交変換係数の直流成分を修正した場合における、復号されたCUについて考える。画素位置iに関して、予測ブロックの画素値をpred(i)とすると、復号されたCUにおける画素値ldec(i)は、次式で表される。
【数6】
【0087】
したがって、NxN画素の原CUの画素値をorg(i)とすると、復号CUの画素値ldec(i)との2乗誤差の和は、予測誤差信号diff(i) = org(i)-pred(i)として、次式で表される。
【数7】
すなわち、逆量子化及び逆直交変換を行わなくても、予測誤差信号の2乗和Σ{diff(i)
2}と、予測誤差信号の和Σdiff(i)を算出しておくことにより、修正位置決定部45は、k=±1,±2・・・の場合の符号化誤差を算出できる。
【0088】
さらに、上述したように、修正位置決定部45は、TU分割パターンと、量子化された直交変換係数を修正するTU位置と、QP値の候補の組み合わせのうちの符号化コストが最小となる組み合わせを決定するためには、k=±1の符号化コストを算出すればよい。そのため、修正位置決定部45は、Σ{diff(i)
2}とΣdiff(i)を算出しておけば、符号化誤差算出の演算量を削減できる。
さらに、Σdiff(i)は、直交変換における直流成分の計算で算出されるため、修正位置決定部45は、直交変換部22からΣdiff(i)を受け取ってもよい。
【0089】
CUがインター予測符号化される場合、Σ{diff(i)
2}は、TUの分割パターンによらずに同じ値となる。そのため、修正位置決定部45は、Σ{diff(i)
2}を0とみなしても、組み合わせごとの符号化コストの比較結果は変わらない。そのためCUがインター予測符号化される場合、修正位置決定部45は、Σ{diff(i)
2}を算出せず、0としてもよい。以上より、符号化誤差の演算量はほとんど無視できる。
【0090】
(6)式から明らかなように、dcval(N,k,qp)の符号と、Σdiff(i)の符号が同一となる方が、それらの符号が異なるよりも、右辺の第2項が負になることにより符号化誤差は小さくなる。そのため、dcVal(N,k,qp)を算出する(3)式及び(4)式を考慮すると、修正位置決定部45は、
Σdiff(i) ≧ 0 のとき k=1、
Σdiff(i) < 0 のとき k=-1
の符号化コストを算出すればよい。
【0091】
修正位置決定部45は、上記のように、TU分割パターンの候補と、量子化された直交変換係数を修正するTU位置と、QP値の候補の組み合わせごとに符号化コストを算出する。そして修正位置決定部45は、符号化コストが最小となる組み合わせを決定する。
修正位置決定部45は、符号化コストが最小となる組み合わせに含まれるTU分割パターンと量子化された直交変換係数を修正するTU位置及び対応するkの値を置換部43に通知する。また修正位置決定部45は、符号化コストが最小となる組み合わせに含まれるQP値をQP修正部44に通知する。
【0092】
置換部43は、通知されたTU分割パターン及びTU位置に従って、先頭CU内で量子化された直交変換係数を修正するTUを特定し、そのTUの直流成分を通知されたk(すなわち、1または-1)に置換する。そして置換部43は、そのTU分割パターンと、先頭CU内の各量子化された直交変換係数の値を符号化データとして結合部12へ出力する。
【0093】
QP修正部44は、通知されたQP値を、先頭CUが属するQGについての第2のOPとする。そしてQP修正部44は、第2のQP値を、量子化部23、逆量子化部24及びデブロックフィルタ部27に出力する。またQP修正部44は、第2のQP値を符号化データとして結合部12へ出力する。
【0094】
図11は、第2の実施形態による動画像符号化装置における、係数修正処理の動作フローチャートである。
判定部41は、符号化対象CUがCTUライン内の最初に符号化されるCUか否か判定する(ステップS301)。符号化対象CUがCTUライン内の最初に符号化されるCUでなければ(ステップS301−No)、係数修正部32は、係数修正処理を終了する。
【0095】
一方、符号化対象CUがCTUライン内の最初に符号化されるCUであれば(ステップS301−Yes)、判定部41は、符号化対象CU内の量子化された直交変換係数が全て0か否か判定する(ステップS302)。符号化対象CU内の何れかの量子化された直交変換係数が0以外の値を有していれば(ステップS302−No)、係数修正部32は、係数修正処理を終了する。
【0096】
一方、判定部41は、符号化対象CU内の量子化された直交変換係数が全て0であれば(ステップS302−Yes)、判定部41は、符号化対象CU内の何れかの量子化された直交変換係数を修正すると判定する。この場合、修正位置決定部45は、TU分割パターンの候補、量子化係数を修正するTU位置、QP値の候補の組み合わせごとに符号化コストを算出する(ステップS303)。そして修正位置決定部45は、符号化コストが最小となる組み合わせを選択する(ステップS304)。
【0097】
置換部43は、選択された組み合わせのTU分割パターンにおける修正対象TUの直流成分の量子化された直交変換係数を0以外の所定値に置換する(ステップS305)。そして置換部43は、置換された量子化された直交変換係数を含む、符号化対象CUの各TUの量子化された直交変換係数を結合部12へ出力する。
【0098】
また、QP修正部44は、選択された組み合わせに含まれるQPの候補値を第2のQP値とする(ステップS306)。その後、QP修正部44は、第2のQP値を、結合部12、量子化部23、逆量子化部24及びデブロックフィルタ部27に出力する。そして係数修正部52は、係数修正処理を終了する。
【0099】
以上に説明してきたように、第2の実施形態による動画像符号化装置は、最初に符号化されるCUの直交変換係数を修正する際、TU分割パターン、量子化された直交変換係数を修正するTU位置及び修正後のQP値の組み合わせごとに符号化コストを算出する。そしてこの動画像符号化装置は、量子化された直交変換係数の修正による符号化コストが最小となるように、TU分割パターン、量子化された直交変換係数を修正するTU位置及び修正後のQP値の組み合わせを決定する。そのため、この動画像符号化装置は、CTUラインごとに符号化する際のデブロッキングフィルタ処理についてのCTUライン間の依存関係をなくしつつ、量子化された直交変換係数を修正する際の符号化コストの増加を抑制できる。
【0100】
図12は、上記の実施形態またはその変形例による動画像符号化装置の各部の機能を実現するコンピュータプログラムが動作することにより、動画像符号化装置として動作するコンピュータの構成図である。
【0101】
コンピュータ100は、ユーザインターフェース部101と、通信インターフェース部102と、記憶部103と、記憶媒体アクセス装置104と、プロセッサ105とを有する。プロセッサ105は、ユーザインターフェース部101、通信インターフェース部102、記憶部103及び記憶媒体アクセス装置104と、例えば、バスを介して接続される。
【0102】
ユーザインターフェース部101は、例えば、キーボードとマウスなどの入力装置と、液晶ディスプレイといった表示装置とを有する。または、ユーザインターフェース部101は、タッチパネルディスプレイといった、入力装置と表示装置とが一体化された装置を有してもよい。そしてユーザインターフェース部101は、例えば、ユーザの操作に応じて、符号化する動画像データを選択する操作信号をプロセッサ105へ出力する。
【0103】
通信インターフェース部102は、コンピュータ100を、動画像データを生成する装置、例えば、ビデオカメラと接続するための通信インターフェース及びその制御回路を有してもよい。そのような通信インターフェースは、例えば、Universal Serial Bus(ユニバーサル・シリアル・バス、USB)とすることができる。
【0104】
さらに、通信インターフェース部102は、イーサネット(登録商標)などの通信規格に従った通信ネットワークに接続するための通信インターフェース及びその制御回路を有してもよい。
【0105】
この場合には、通信インターフェース部102は、通信ネットワークに接続された他の機器から、符号化する動画像データを取得し、それらのデータをプロセッサ105へ渡す。また通信インターフェース部102は、プロセッサ105から受け取った、符号化動画像データを通信ネットワークを介して他の機器へ出力してもよい。
【0106】
記憶部103は、例えば、読み書き可能な半導体メモリと読み出し専用の半導体メモリとを有する。そして記憶部103は、プロセッサ105上で実行される、動画像符号化処理を実行するためのコンピュータプログラム、及びこれらの処理の途中または結果として生成されるデータを記憶する。
【0107】
記憶媒体アクセス装置104は、例えば、磁気ディスク、半導体メモリカード及び光記憶媒体といった記憶媒体106にアクセスする装置である。記憶媒体アクセス装置104は、例えば、記憶媒体106に記憶されたプロセッサ105上で実行される、動画像符号化処理用のコンピュータプログラムを読み込み、プロセッサ105に渡す。
【0108】
プロセッサ105は、上記の実施形態または変形例による動画像符号化処理用コンピュータプログラムを実行することにより、符号化動画像データを生成する。そしてプロセッサ105は、生成された符号化動画像データを記憶部103に保存し、または通信インターフェース部102を介して他の機器へ出力する。
【0109】
なお、動画像符号化装置1の各部の機能をプロセッサ上で実行可能なコンピュータプログラムは、コンピュータによって読み取り可能な媒体に記録された形で提供されてもよい。ただし、そのような記録媒体には、搬送波は含まれない。
【0110】
ここに挙げられた全ての例及び特定の用語は、読者が、本発明及び当該技術の促進に対する本発明者により寄与された概念を理解することを助ける、教示的な目的において意図されたものであり、本発明の優位性及び劣等性を示すことに関する、本明細書の如何なる例の構成、そのような特定の挙げられた例及び条件に限定しないように解釈されるべきものである。本発明の実施形態は詳細に説明されているが、本発明の精神及び範囲から外れることなく、様々な変更、置換及び修正をこれに加えることが可能であることを理解されたい。