(57)【特許請求の範囲】
【請求項１】
動画像に含まれるピクチャの各画素について、当該画素の値と当該画素の予測信号間の差分により得られる予測誤差信号を、前記ピクチャを分割した複数のブロックごとに直交変換することで得られる、前記ブロックに含まれる複数の直交変換係数を、所定数の前記直交変換係数を含む複数の係数グループに分割する分割部と、
前記複数の係数グループのうち、低周波数の前記直交変換係数を含む係数グループから順に設定される第１の係数グループについて、当該第１の係数グループに含まれる前記所定数の直交変換係数のそれぞれについて、当該直交変換係数を量子化する際の複数の量子化係数の候補の中から、符号化誤差と符号量とから求められるコストが最小となる候補を当該直交変換係数の量子化係数とする係数最適化部と、
前記複数の係数グループのうち、低周波数の前記直交変換係数を含む係数グループから順に設定される第２の係数グループについて、当該第２の係数グループよりも高周波数の係数グループにゼロでない量子化係数が含まれると仮定して、当該第２の係数グループに含まれる前記所定数の前記量子化係数を全てゼロにするか否かを判定する係数グループ最適化部と、
前記複数の係数グループのうち、低周波数の前記直交変換係数を含む係数グループから順に設定される第３の係数グループについて、当該第３の係数グループよりも高周波数の係数グループに含まれる前記量子化係数が全てゼロであると仮定して、当該第３の係数グループに含まれるゼロでない前記量子化係数のうちから最も高周波数のゼロでない前記量子化係数の第１の候補を求め、当該第１の候補について、前記コストから当該第３の係数グループよりも高周波数の係数グループについての符号化誤差を除いた比較用コストが、当該第３の係数グループよりも低周波数の係数グループについて求められた最も高周波数のゼロでない量子化係数の第２の候補について算出された前記比較用コストに前記第２の候補を含む係数グループよりも一つ高周波数の前記係数グループから当該第３の係数グループまでの符号化誤差を加算した値よりも低い場合に、前記第２の候補を前記第１の候補に更新し、前記複数の係数グループのうちの最も高周波数の係数グループについての前記第２の候補の更新が終了したときの前記第２の候補を、最も高周波数のゼロでない量子化係数とする最終係数位置判定部と、
前記第２の候補を含む前記係数グループよりも一つ高周波数側の前記係数グループから前記第１の候補を含む前記係数グループまでの前記符号化誤差を算出する補正値算出部と、
を有する動画像符号化装置。
【請求項２】
前記補正値算出部は、前記第２の候補を含む前記係数グループよりも一つ高周波数側の前記係数グループから前記第１の候補を含む前記係数グループまでに含まれる全ての前記量子化係数をゼロとして前記符号化誤差を算出する、請求項１に記載の動画像符号化装置。
【請求項３】
前記最終係数位置判定部は、前記第２の候補として、前記第１の候補を含む前記係数グループに含まれる前記所定数の前記量子化係数が全てゼロに置換された場合も前記第１の候補で更新される第３の候補と、前記第１の候補を含む前記係数グループに含まれる前記所定数の前記量子化係数が全てゼロに置換された場合には前記第１の候補で更新されない第４の候補とを含み、前記第３の候補が含まれる前記係数グループよりも高周波数側の前記係数グループに含まれる全ての前記量子化係数がゼロである場合、前記第３の候補を、最も高周波数のゼロでない量子化係数とし、一方、前記第３の候補が含まれる前記係数グループよりも高周波数側の前記係数グループの何れかにゼロでない前記量子化係数が含まれる場合、前記第４の候補を、最も高周波数のゼロでない量子化係数とする、請求項１または２に記載の動画像符号化装置。
【請求項４】
動画像に含まれるピクチャの各画素について、当該画素の値と当該画素の予測信号間の差分により得られる予測誤差信号を、前記ピクチャを分割した複数のブロックごとに直交変換することで得られる、前記ブロックに含まれる複数の直交変換係数を、所定数の前記直交変換係数を含む複数の係数グループに分割し、
前記複数の係数グループのうち、低周波数の前記直交変換係数を含む係数グループから順に設定される第１の係数グループについて、当該第１の係数グループに含まれる前記所定数の直交変換係数のそれぞれについて、当該直交変換係数を量子化する際の複数の量子化係数の候補の中から、符号化誤差と符号量とから求められるコストが最小となる候補を当該直交変換係数の量子化係数とし、
前記複数の係数グループのうち、低周波数の前記直交変換係数を含む係数グループから順に設定される第２の係数グループについて、当該第２の係数グループよりも高周波数の係数グループにゼロでない量子化係数が含まれると仮定して、当該第２の係数グループに含まれる前記所定数の前記量子化係数を全てゼロにするか否かを判定し、
前記複数の係数グループのうち、低周波数の前記直交変換係数を含む係数グループから順に設定される第３の係数グループについて、当該第３の係数グループよりも高周波数の係数グループに含まれる前記量子化係数が全てゼロであると仮定して、当該第３の係数グループに含まれるゼロでない前記量子化係数のうちから最も高周波数のゼロでない前記量子化係数の第１の候補を求め、
前記第１の候補を含む前記第３の係数グループよりも低周波数の係数グループについて求められた最も高周波数のゼロでない量子化係数の第２の候補を含む前記係数グループよりも一つ高周波数側の前記係数グループから前記第１の候補を含む前記第３の係数グループまでの前記符号化誤差を算出し、
前記第１の候補についての前記コストから前記第１の候補を含む前記第３の係数グループよりも高周波数の係数グループについての符号化誤差を除いた比較用コストが、前記第２の候補について算出された前記比較用コストに前記符号化誤差を加算した値よりも低い場合に、前記第２の候補を前記第１の候補に更新し、前記複数の係数グループのうちの最も高周波数の係数グループについての前記第２の候補の更新が終了したときの前記第２の候補を、最も高周波数のゼロでない量子化係数とする、
ことを含む動画像符号化方法。
【請求項５】
動画像に含まれるピクチャの各画素について、当該画素の値と当該画素の予測信号間の差分により得られる予測誤差信号を、前記ピクチャを分割した複数のブロックごとに直交変換することで得られる、前記ブロックに含まれる複数の直交変換係数を、所定数の前記直交変換係数を含む複数の係数グループに分割し、
前記複数の係数グループのうち、低周波数の前記直交変換係数を含む係数グループから順に設定される第１の係数グループについて、当該第１の係数グループに含まれる前記所定数の直交変換係数のそれぞれについて、当該直交変換係数を量子化する際の複数の量子化係数の候補の中から、符号化誤差と符号量とから求められるコストが最小となる候補を当該直交変換係数の量子化係数とし、
前記複数の係数グループのうち、低周波数の前記直交変換係数を含む係数グループから順に設定される第２の係数グループについて、当該第２の係数グループよりも高周波数の係数グループにゼロでない量子化係数が含まれると仮定して、当該第２の係数グループに含まれる前記所定数の前記量子化係数を全てゼロにするか否かを判定し、
前記複数の係数グループのうち、低周波数の前記直交変換係数を含む係数グループから順に設定される第３の係数グループについて、当該第３の係数グループよりも高周波数の係数グループに含まれる前記量子化係数が全てゼロであると仮定して、当該第３の係数グループに含まれるゼロでない前記量子化係数のうちから最も高周波数のゼロでない前記量子化係数の第１の候補を求め、
前記第１の候補を含む前記第３の係数グループよりも低周波数の係数グループについて求められた最も高周波数のゼロでない量子化係数の第２の候補を含む前記係数グループよりも一つ高周波数側の前記係数グループから前記第１の候補を含む前記第３の係数グループまでの前記符号化誤差を算出し、
前記第１の候補についての前記コストから前記第１の候補を含む前記第３の係数グループよりも高周波数の係数グループについての符号化誤差を除いた比較用コストが、前記第２の候補について算出された前記比較用コストに前記符号化誤差を加算した値よりも低い場合に、前記第２の候補を前記第１の候補に更新し、前記複数の係数グループのうちの最も高周波数の係数グループについての前記第２の候補の更新が終了したときの前記第２の候補を、最も高周波数のゼロでない量子化係数とする、
ことをコンピュータに実行させるための動画像符号化用コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えば、動画像符号化装置、動画像符号化方法及び動画像符号化用コンピュータプログラムに関する。
【背景技術】
【０００２】
動画像データは、一般に非常に大きなデータ量を有する。そのため、動画像データを扱う装置は、動画像データを他の装置へ送信しようとする場合、あるいは、動画像データを記憶装置に記憶しようとする場合、動画像データを符号化することにより圧縮する。代表的な動画像の符号化方式として、International Organization for Standardization /International Electrotechnical Commission(ISO/IEC)で策定されたMoving Picture Experts Group phase 2（MPEG-2）、MPEG-4、あるいはH.264 MPEG-4 Advanced Video Coding（H.264 MPEG-4 AVC）が利用されている。また、新たな符号化標準として、High Efficiency Video Coding(HEVC, MPEG-H/H.265)が策定されている。
【０００３】
このような符号化方式において、符号化された動画像データを復号して得られる動画像の画質と圧縮効率のバランスを最適化するために、レート歪み最適量子化（Rate Distortion Optimized Quantization, RDOQ）を適用することが検討されている（例えば、特許文献１〜３を参照）。
【０００４】
RDOQでは、動画像データに含まれるピクチャを分割して得られるブロック内の各画素の予測誤差信号を直交変換して得られる直交変換係数を量子化する際に、符号化誤差と符号量の両方を考慮した符号化コストを最小化するように量子化係数が決定される。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１１−１７６４８３号公報
【特許文献２】特表２０１１−５１４０５５号公報
【特許文献３】特開２０１３−１１０７４０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
これらの特許文献に開示された方式では、直交変換の単位となるブロックごとに、最も高周波数の非0の量子化係数（以下、最終係数と呼ぶ）の位置を決定する処理と、各量子化係数を個別またはグループ単位で最適化する処理とが行われる。これら二つの処理のうち、最終係数の位置を決定する処理は、最適化された各量子化係数を利用して実行される。そのため、各量子化係数の最適化の処理と最終係数の位置を決定する処理は、いわゆる２pass処理となる。そのため、動画像データを符号化する際のスループットが低下してしまう。
【０００７】
また近年、いわゆる4K(3840画素×2160画素)あるいは8K(7680画素×4320画素)といった、ピクチャ当たりの画素数が非常に多い動画像データの放送も検討されている。ピクチャ当たりの画素数が多くなるほど、符号化に要する時間が長くなるか、より高コストとなる高性能な演算器が必要となるため、符号化のスループットが低下することは好ましくない。特に、リアルタイムの放送のように、低遅延が要求される場合には、スループットの低下により、動画像データの符号化が間に合わず、支障をきたすおそれもある。
【０００８】
そこで、本明細書は、レート歪み最適量子化を適用して量子化係数を決定する処理を1pass化できる動画像符号化装置を提供することを目的とする。
【課題を解決するための手段】
【０００９】
一つの実施形態によれば、動画像符号化装置が提供される。この動画像符号化装置は、動画像に含まれるピクチャの各画素について、その画素の値とその画素の予測信号間の差分により得られる予測誤差信号を、ピクチャを分割した複数のブロックごとに直交変換することで得られる、ブロックに含まれる複数の直交変換係数を、所定数の直交変換係数を含む複数の係数グループに分割する分割部と、複数の係数グループのうち、低周波数の直交変換係数を含む係数グループから順に、その係数グループに含まれる所定数の直交変換係数のそれぞれについて、その直交変換係数を量子化する際の複数の量子化係数の候補の中から、符号化誤差と符号量とから求められるコストが最小となる候補をその直交変換係数の量子化係数とする係数最適化部と、複数の係数グループのうち、低周波数の直交変換係数を含む係数グループから順に、その係数グループよりも高周波数の係数グループにゼロでない量子化係数が含まれると仮定して、その係数グループに含まれる所定数の量子化係数を全てゼロにするか否かを判定する係数グループ最適化部と、複数の係数グループのうち、低周波数の直交変換係数を含む係数グループから順に、その係数グループよりも高周波数の係数グループに含まれる量子化係数が全てゼロであると仮定して、その係数グループに含まれるゼロでない量子化係数のうちから最も高周波数のゼロでない量子化係数の第１の候補を求め、その第１の候補について、符号化誤差と符号量とから求められるコストからその係数グループよりも高周波数の係数グループについての符号化誤差を除いた比較用コストが、その係数グループよりも低周波数の係数グループについて求められた最も高周波数のゼロでない量子化係数の第２の候補について算出された比較用コストに第２の候補を含む係数グループよりも一つ高周波数の係数グループから第１の候補を含む係数グループまでの符号化誤差を加算した値よりも低い場合に、第２の候補を第１の候補に更新し、複数の係数グループのうちの最も高周波数の係数グループについての第２の候補の更新が終了したときの第２の候補を、最も高周波数のゼロでない量子化係数とする最終係数位置判定部と、第２の候補を含む係数グループよりも一つ高周波数側の係数グループから第１の候補を含む係数グループまでの符号化誤差を算出する補正値算出部とを有する。
【００１０】
本発明の目的及び利点は、請求項において特に指摘されたエレメント及び組み合わせにより実現され、かつ達成される。
上記の一般的な記述及び下記の詳細な記述の何れも、例示的かつ説明的なものであり、請求項のように、本発明を限定するものではないことを理解されたい。
【発明の効果】
【００１１】
本明細書に開示された動画像符号化装置は、レート歪み最適量子化を適用して量子化係数を決定する処理を1pass化できる。
【図面の簡単な説明】
【００１２】
【図１】直交変換の単位となるブロックと、係数グループの関係を示す図である。
【図２】周波数の順序で並べられたブロック内の各量子化係数と、最終係数の位置との関係の一例を示す図である。
【図３】一つの実施形態による動画像符号化装置の概略構成図である。
【図４】量子化部の概略構成図である。
【図５】係数グループごとの処理順序を示す図である。
【図６】着目する係数グループ内での最終係数位置の走査順序と、最終係数の候補の一例を示す図である。
【図７】係数グループの最適化と最終係数位置の候補の更新の一例の説明図である。
【図８】係数グループの最適化と最終係数位置の候補の更新の一例の説明図である。
【図９】係数グループの最適化と最終係数位置の候補の更新の一例の説明図である。
【図１０】係数グループの最適化と最終係数位置の候補の更新の一例の説明図である。
【図１１】係数グループの最適化と最終係数位置の候補の更新の一例の説明図である。
【図１２】レート歪み最適量子化処理の動作フローチャートである。
【図１３】動画像符号化処理の動作フローチャートである。
【図１４】何れかの実施形態または変形例による動画像符号化処理を実行可能なコンピュータの構成図である。
【発明を実施するための形態】
【００１３】
以下、図を参照しつつ、動画像符号化装置について説明する。この動画像符号化装置は、直交変換の単位となるブロックごとに、RDOQを適用して、そのブロックに含まれる各量子化係数を最適化する。なお、以下では、特に断りが無い限り、ブロックとは、直交変換の単位となるブロックを意味する。
先ず、理解を容易にするために、RDOQを適用した2pass処理によってブロック内の各量子化係数を最適化する手順について説明する。
【００１４】
RDOQでは、ブロックごとに以下の３種類の処理が実行される。
（１）各量子化係数の最適化
（２）量子化係数グループの最適化
（３）最終係数位置の決定
【００１５】
（１）各量子化係数の最適化
この処理は、ブロック内の低周波数側から順に、直交変換係数ごとに行われる。動画像符号化装置は、着目する直交変換係数について、例えば、３通りの量子化係数の候補を設定し、その候補のそれぞれごとに、次式に従って、符号化誤差、すなわち歪みと符号量、すなわちレートの両方を考慮した符号化コストを算出する。なお、歪みとレートの両方を考慮した符号化コストを、以下では、便宜上、RDコストと呼ぶ。そして動画像符号化装置は、RDコストが最小となる候補を、着目する直交変換係数についての量子化係数とする。
【数１】
0006476900.tif 000002
ここで、Distortion及びCBitsは、それぞれ、着目する直交変換係数と対応する量子化係数間の誤差（以下、単に符号化誤差）と符号量の推定値を表す。λは、ラグランジュの未定乗数である。そしてRDcostは、RDコストである。
【００１６】
量子化係数の候補としては、例えば、0と、量子化スケールに基づいてその直交変換係数を量子化したときの値coeffと、(coeff-1)とが用いられる。なお、coeffと、(coeff-1)とは、それぞれ、量子化により削除される低位ビットによる、1未満の値を切り上げた場合と切り捨てた場合に相当する。また量子化スケールは、例えば、そのブロックを含むピクチャについて割り当てられる目標符号量または符号化レートなどに基づいて設定される。
【００１７】
（２）量子化係数グループの最適化
この処理は、4×4個の量子化係数を含む係数グループごとに行われる。そして動画像符号化装置は、着目する係数グループに含まれる全ての量子化係数を0としたときのRDコストが、元の量子化係数を用いたときのRDコストよりも小さくなる場合、着目する係数グループに含まれる全ての量子化係数を0とする。
【００１８】
図１は、直交変換の単位となるブロックと、係数グループの関係を示す図である。図１において、ブロック１００は、直交変換の単位となるブロックであり、例えば、HEVCでは、Transform Unit(TU)である。ブロック１００内の各サブブロック１０１は、係数グループであり、それぞれ、4×4個の量子化係数１０２を含む。直交変換として、離散コサイン変換(Discrete Cosine Transform, DCT)が用いられる場合、ブロック１００内では、左上端が最も低周波数となり、右下端が最も高周波数となる。そこで例えば、矢印１１０に示されるように、高周波数側から順に、係数グループの最適化処理が実行される。また、矢印１１１に示されるように、低周波数側から順に、各係数グループ内で、個別の量子化係数の最適化処理が行われる。なお、係数グループの最適化処理は、最終係数１２０を含む係数グループ１２１、元々全ての量子化係数がゼロの係数グループ１２２、及び、最も低周波数、すなわち、左上端の係数グループ１２３については行われない。
【００１９】
（３）最終係数位置の決定
この処理は、ブロック内の高周波数側から順に、量子化係数ごとに行われる。この処理では、動画像符号化装置は、高周波数側から順に、絶対値が１であり、かつ、符号量CBitsが一定値以下となる量子化係数を、順次０に置換したときのRDコストを算出する。なお、高周波数側から順に走査して、絶対値が２以上となる量子化係数のうちの最初に登場する量子化係数以降については、動画像符号化装置は、量子化係数を０に置換したRDコストを算出しない。そして動画像符号化装置は、RDコストが最小となるときの最も高周波数側で非0の量子化係数を最終係数とし、最終係数よりも高周波数側の全ての量子化係数を0とする。
【００２０】
図２は、周波数の順序で並べられたブロック内の各量子化係数と、最終係数の位置との関係の一例を示す図である。図２において、各ブロック内の数値は、量子化係数を表す。また、ブロックの右端ほど、周波数が高い。また、図２において、ブロック列２０１〜２０４の右端が最も高い周波数に対応し、一方、ブロック列２０１〜２０４の左端が最も低い周波数に対応する。ブロック列２０１〜２０４に示されるように、絶対値が１である、最も高周波数側の量子化係数２１１から順に、絶対値が１である量子化係数２１２、２１３が順次０に置換される。ただし、量子化係数２１４の絶対値が２以上であるので、量子化係数２１４及びそれよりも低周波数側の量子化係数は0に置換されない。そして例えば、ブロック列２０３に示されるように、量子化係数２１１及び２１２が0に置換されたときのRDコストが最小となる場合、量子化係数２１３が最終係数となる。
【００２１】
上記のように、（１）、（２）の処理が終わって、全ての量子化係数が一旦定まらない限り、高周波数側から処理する（３）の処理でのRDコスト及びCBitsの算出ができない。そのため、従来技術では、（１）、（２）の処理と、（３）の処理とが2pass処理となっていた。
【００２２】
ここで、発明者は、低周波数側から順に、係数グループごとに、その係数グループに最終係数が含まれると仮定して最終係数の候補を求めることとした。そしてこの場合、最終係数の候補を含む二つの係数グループのRDコストを、その二つの係数グループよりも高周波数側の量子化係数による符号化誤差を無視して比較できることを発明者は見出した。そこで、この動画像符号化装置は、各ブロックについて、低周波数側から順に、係数グループ単位で上記の（１）〜（３）の処理を順次実行する。その際、この動画像符号化装置は、着目する係数グループよりも後の係数グループに最終係数が含まれると仮定して、着目する係数グループの最適化を行う。一方、この動画像符号化装置は、着目する係数グループについて、その係数グループに最終係数が含まれると仮定して最終係数の候補を求める。またこの動画像符号化装置は、着目する係数グループ内の最終係数の候補についてのRDコストを、それ以前の係数グループについて求められた、ブロック全体での最終係数の候補についてのRDコストと比較する。そしてこの動画像符号化装置は、着目する係数グループ内の最終係数の候補についてのRDコストの方が低い場合に、着目する係数グループ内の最終係数の候補をブロック全体での最終係数の候補とする。そしてこの動画像符号化装置は、全ての係数グループについて処理が終了した時点での、最終係数の候補を最終係数とする。これにより、この動画像符号化装置は、RDOQを適用した量子化係数の最適化を1pass処理で行うことを可能とする。
【００２３】
本実施形態では、動画像符号化装置は、HEVCに準拠して動画像データを符号化する。しかし、動画像符号化装置は、ピクチャを分割した各ブロックの予測誤差信号を直交変換して得られる直交変換係数を量子化することによりピクチャを符号化する、他の符号化標準に準拠してもよい。
【００２４】
図３は、一つの実施形態による動画像符号化装置の概略構成図である。動画像符号化装置１は、予測誤差算出部１１と、直交変換部１２と、量子化部１３と、可変長符号化部１４と、復号部１５と、記憶部１９と、動きベクトル計算部２０と、符号化モード判定部２１と、予測ブロック生成部２２と、ループフィルタ部２３とを有する。さらに、復号部１５は、逆量子化部１６と、逆直交変換部１７と、加算部１８とを有する。
【００２５】
動画像データに含まれる各ピクチャは、例えば、制御部（図示せず）により、複数の符号化処理の単位となるCoding Tree Unit(CTU)に分割される。そしてラスタスキャン順に従って、CTUが動画像符号化装置１に順次入力される。動画像符号化装置１は、CTUごとに動画像符号化処理を実行する。
【００２６】
予測誤差算出部１１には、符号化対象CTUに含まれる各Coding Unit(CU)が順次入力される。そして予測誤差算出部１１は、符号化対象CTU内のCUごとに、そのCU内の各TUについて、予測ブロック生成部２２により生成された予測ブロックとの差分演算を実行する。そして予測誤差算出部１１は、その差分演算により得られたTU内の各画素に対応する差分値を、そのTUの予測誤差信号とする。なお、上記では、TU単位で差分演算を行う例で説明したが、予測誤差算出部１１は、差分演算の処理をCU単位またはPrediction Unit(PU)単位で実行してもよい。
【００２７】
直交変換部１２は、CU内のTUごとに、そのTUの予測誤差信号を直交変換することで予測誤差信号の水平方向の周波数成分及び垂直方向の周波数成分を表す直交変換係数を求める。例えば、直交変換部１２は、予測誤差信号に対して、直交変換処理としてDiscrete Cosine Transform(DCT)を実行することにより、直交変換係数として、DCT係数を得る。
【００２８】
量子化部１３は、直交変換部１２により得られたTUごとに、本実施形態による、1pass処理のRDOQを適用して量子化係数を算出する。なお、量子化部１３の処理の詳細は後述する。
【００２９】
量子化部１３は、TUごとの量子化係数を可変長符号化部１４及び復号部１５へ出力する。
【００３０】
可変長符号化部１４は、量子化係数を可変長符号化する。さらに、可変長符号化部１４は、予測ブロックの作成に利用された動きベクトルなどの情報も可変長符号化する。そして可変長符号化部１４は、その可変長符号化によって得られた符号化ビットを、準拠する符号化標準に従って所定の順序に並べたビットストリームを出力する。なお、可変長符号化部１４は、量子化係数に適用する可変長符号化方式として、Context-based Adaptive Binary Arithmetic Coding(CABAC)といった算術符号化処理を用いる。また、可変長符号化部１４は、量子化係数以外の情報に関して、Context-based Adaptive Variable Length Coding (CAVLC)といったハフマン符号化処理を用いてもよい。
可変長符号化部１４は、得られたビットストリームを出力する。
【００３１】
復号部１５は、各TUの量子化された直交変換係数から、そのTUよりも後のCUなどを符号化するために参照される参照ブロックを生成し、その参照ブロックを記憶部１９に記憶する。
そのために、復号部１５の逆量子化部１６は、各TUの量子化係数を逆量子化する。そして逆量子化部１６は、各TUの復元された直交変換係数を復号部１５の逆直交変換部１７へ出力する。
【００３２】
逆直交変換部１７は、TUごとに、復元された直交変換係数に対して逆直交変換を行う。例えば、直交変換部１２が直交変換としてDCTを用いている場合、逆直交変換部１７は、逆直交変換として逆DCT処理を実行する。これにより、逆直交変換部１７は、TUごとに、符号化前の予測誤差信号と同程度の情報を有する予測誤差信号を復元する。
逆直交変換部１７は、TUごとの復元された予測誤差信号を復号部１５の加算部１８へ出力する。
【００３３】
加算部１８は、TUごとに、そのTUの予測ブロックの各画素値に、復元された予測誤差信号を加算することで、その後に符号化されるCUなどに対する予測ブロックを生成するために利用される参照ブロックを生成する。
加算部１８は、参照ブロックを生成する度に、その参照ブロックを記憶部１９に記憶させる。
【００３４】
記憶部１９は、加算部１８から受け取った参照ブロックを一時的に記憶する。そして記憶部１９に、一つのピクチャに含まれる全ての参照ブロックのデータが書き込まれると、その全ての参照ブロックを組み合わせることで、他のピクチャの符号化の際に参照される参照ピクチャとなる。記憶部１９は、動きベクトル計算部２０、符号化モード判定部２１、予測ブロック生成部２２及びループフィルタ部２３に、参照ブロックまたは参照ピクチャを供給する。
【００３５】
動きベクトル計算部２０は、インター予測符号化用の予測ブロックを生成するために、符号化対象CU内のPUごとに、そのPUと、記憶部１９から読み込んだ参照ピクチャとを用いて、動きベクトルを求める。動きベクトルは、PUと、そのPUに最も類似する参照ピクチャ上の領域間の空間的な移動量を表す。
【００３６】
動きベクトル計算部２０は、PUと、参照ピクチャとのブロックマッチングを実行することにより、そのPUと最も一致する参照ピクチャ及びその参照ピクチャ上の領域の位置を決定する。そして動きベクトル計算部２０は、符号化対象ピクチャ上のPUの位置と、そのPUに最も一致する参照ピクチャ上の領域との水平方向及び垂直方向の移動量を動きベクトルとする。
動きベクトル計算部２０は、求めた動きベクトルと、参照ピクチャの識別情報を、符号化モード判定部２１及び予測ブロック生成部２２へ渡す。
【００３７】
符号化モード判定部２１は、符号化対象CTUを分割するCU、PU及びTUのサイズ及び予測ブロックの生成に適用する予測符号化モードを決定する。符号化モード判定部２１は、例えば、図示しない制御部から取得した、符号化対象CTUが含まれる符号化対象のピクチャのタイプを示す情報に基づいて、その符号化対象CTU内の各CUの予測符号化モードを決定する。符号化対象のピクチャのタイプが、イントラ予測符号化モードのみの適用が可能なIピクチャであれば、符号化モード判定部２１は、適用される符号化モードとしてイントラ予測符号化モードを選択し、符号量が最小となる予測モードを選択する。また、符号化対象のピクチャのタイプがPピクチャまたはBピクチャであれば、符号化モード判定部２１は、例えば、適用される符号化モードとして、インター予測符号化モード及びイントラ予測符号化モードの何れかを選択する。なお、Pピクチャは、片方向のインター予測符号化を適用可能なピクチャであり、Bピクチャは、双方向及び片方向のインター予測符号化を適用可能なピクチャである。
【００３８】
符号化モード判定部２１は、CU、PU及びTUの適用可能なサイズと適用可能な予測符号化モードの組み合わせのそれぞれについて、符号化対象CTUの符号量の推定値である符号化コストを算出する。例えば、符号化モード判定部２１は、インター予測符号化モードについては、CTUを分割するCU、PU及びTUのサイズ及び動きベクトルの予測ベクトルの生成方法を規定するベクトルモードの組み合わせごとに符号化コストを算出する。また、イントラ予測符号化モードについては、符号化モード判定部２１は、CTUを分割するCU、PU及びTUのサイズ及び予測モードの組み合わせごとに符号化コストを算出する。
【００３９】
符号化モード判定部２１は、例えば、着目する組み合わせの符号化コストを算出するために、次式に従って、その組み合わせに含まれるTUごとに、画素差分絶対値和SADを算出する。
SAD=Σ|OrgPixel-PredPixel|
ここで、OrgPixelは符号化対象ピクチャの着目するブロック、例えば、TUに含まれる画素の値であり、PredPixelは、着目するブロックに対応する予測ブロックに含まれる画素の値である。予測ブロックは、着目する組み合わせに含まれる予測符号化モードに従って、符号化済みの参照ピクチャまたは符号化済みの他のブロックから生成される。
【００４０】
符号化モード判定部２１は、着目する組み合わせについて、次式に従って符号化コストCostを算出する。
Cost = ΣSAD+λR
ここで、ΣSADは、符号化対象のCTUに含まれる各TUについて算出されたSADの総和である。またRは、動きベクトル、予測モードを表すフラグなど、直交変換係数以外の項目についての符号量の推定値である。そしてλはラグランジュの未定乗数である。
【００４１】
なお、符号化モード判定部２１は、SADの代わりに、着目するブロックと予測ブロックとの差分画像をアダマール変換した後の各画素の絶対値和SATDなどを算出してもよい。
【００４２】
そして符号化モード判定部２１は、符号化コストが最小となるように、符号化対象CTU内のCU単位で適用される予測符号化モード（イントラ予測符号化モードまたはインター予測符号化モード）を選択する。さらに、符号化モード判定部２１は、各CU内の各PU及びTUの組み合わせごとに符号化コストが最小となる予測モードまたはベクトルモードを選択する。
【００４３】
符号化モード判定部２１は、選択したCU、PU及びTUのサイズ及び予測符号化モードの組み合わせを直交変換部１２及び予測ブロック生成部２２に通知する。
【００４４】
予測ブロック生成部２２は、符号化モード判定部２１によって選択されたCU、PU及びTUのサイズ及び予測符号化モードの組み合わせに従って各TUの予測ブロックを生成する。予測ブロック生成部２２は、例えば、CUがインター予測符号化される場合、そのCU内のPUごとに、記憶部１９から読み込んだ参照ピクチャを、動きベクトル計算部２０から提供される動きベクトルに基づいて動き補償する。そして予測ブロック生成部２２は、動き補償されたインター予測符号化用の予測ブロックを生成する。
【００４５】
また予測ブロック生成部２２は、符号化対象CUがイントラ予測符号化される場合、符号化対象CU内のPUごとに選択された予測モードを適用することで、各TUの予測ブロックを生成する。
予測ブロック生成部２２は、生成された予測ブロックを予測誤差算出部１１へ渡す。
【００４６】
ループフィルタ部２３は、記憶部１９に記憶されている参照ブロックに対して、ブロックノイズを低減するために、隣接する二つの参照ブロック間の境界を跨ぐようにデブロッキングフィルタ処理を実行することで、各参照ブロックの画素値を平滑化する。デブロッキング処理を行って得られた画素の値は、符号化対象ピクチャよりも後に符号化されるピクチャを符号化する際に参照される参照ピクチャの対応する画素の値となる。なお、ループフィルタ部２３は、参照ブロックに対して他のノイズ軽減処理、例えば、sample adaptive offset処理を行ってもよい。そしてループフィルタ部２３は、フィルタ処理された参照ブロックの各画素値を記憶部１９に書き込む。
【００４７】
以下、量子化部１３の処理の詳細について説明する。
図４は、量子化部１３の概略構成図である。量子化部１３は、制御部３０と、スケーリング部３１と、係数最適化部３２と、係数グループ最適化部３３と、補正値算出部３４と、最終係数位置判定部３５と、判定部３６と、記憶部３７とを有する。
【００４８】
制御部３０は、分割部の一例であり、直交変換係数が算出されたTUが入力されるごとに、そのTUを係数グループ単位で分割する。本実施形態では、係数グループは、上記のように、4×4個の直交変換係数を含む。本実施形態では、量子化部１３は、係数グループ単位で低周波数側から順に上記の（１）〜（３）の処理を実行する。そのため、制御部３０は、低周波数側の係数グループから順に、スケーリング部３１へ渡す。
【００４９】
図５は、係数グループごとの処理順序を示す図である。この例では、TU５００は32×32個の直交変換係数を含む。したがって、TU５００内に、8×8個の係数グループ５０１が設定される。また、直交変換処理としてDCTが用いられる場合、TU５００内の左上端に位置する直交変換係数が最も低い周波数（直流）の成分を表し、TU５００内の右下端に位置する直交変換係数が最も高い周波数の成分を表す。そこで、量子化部１３は、矢印５０２に示される順序で、各係数グループ５０１に対して（１）〜（３）の処理を実行する。
【００５０】
スケーリング部３１は、係数グループが入力される度に、その係数グループに含まれる直交変換係数ごとに、その直交変換係数を量子化した値である量子化係数の候補のリストを作成する。本実施形態では、スケーリング部３１は、直交変換係数ごとに、量子化係数の候補を３個含むリストを作成する。各候補は、{0, coeff-1, coeff}である。そして候補coeffは、HEVCに準拠するように、例えば、次式に従って直交変換係数ごとに算出される。
【数２】
0006476900.tif 000003
ここで、Ciは、低周波数側からi番目の直交変換係数であり、Q(QP%6,i)は、i番目の直交変換係数に対する量子化スケールである。またQPは、量子化部１３に入力されたTUについて使用されている量子化パラメータであり、目標ビットレートなどにより決定される。さらに、QuantScales[]は、量子化スケールのリストである。また、ScalingList[type][i]は、i番目の直交変換係数に対する、typeごとに定められるスケールのリストである。typeは、量子化部１３に入力されたTUのサイズ、そのTUを含むCUに適用される予測符号化モード、及び、符号化対象となっているTUが輝度成分または色差成分かなどにより決定される。また、qshiftは、量子化シフト値であり、BitDepthは、画素当たりのビット精度を表す。αは、丸め値であり、例えば、'1<<(qshift-1)'などに設定される。さらに、演算子'>>'は、低位側へのビットシフトを表し、演算子'<<'は、高位側へのビットシフトを表す。
【００５１】
スケーリング部３１は、係数グループに含まれる各直交変換係数についての量子化係数の候補を係数最適化部３２へ渡す。
【００５２】
係数最適化部３２は、係数グループごとに、その係数グループに含まれる各直交変換係数について、対応する量子化係数の候補の中から、RDコストが最小となる候補を特定し、その候補を、その直交変換係数に対する量子化係数とする。
【００５３】
本実施形態では、係数最適化部３２は、係数グループ内の直交変換係数の位置によらず、並列に各直交変換係数に対応する量子化係数を決定できるよう、次式に従って各直交変換係数についてのRDコストを、量子化係数の候補ごとに算出する。
【数３】
0006476900.tif 000004
ここでJ(litest)は、低周波数側からi番目の直交変換係数についての量子化係数の候補litest (={0, coeff-1, coeff})についてのRDコストである。またerr(Ci,litest)は、i番目の直交変換係数Ciと量子化係数の候補litest 間の二乗誤差である。またErrScaleは、誤差スケールを表す。そしてBitScaleは、小数ビット精度を表す。また、λはラグランジュの未定乗数であり、R[i]は、i番目の係数についての符号量である。なお、本実施形態では、符号量R[i]は、可変長符号化部で行われるCABACによる符号が求められる前のbin数に対応する値として算出される。具体的には、符号量R[i]は、次式で算出される。
【数４】
0006476900.tif 000005
ここで、sigCoeffFlag[i]、coeffAbsLevelGreater1Flag[i]、coeffAbsLevelGreater2Flag[i]、coeffAbsLevelRemaining[i]、coeffSignFlag[i]は、それぞれ、HEVCで規定されている、i番目の係数についてのシンタックスエレメントについての符号量である。このうち、sigCoefFlag[i]は、処理対象となる係数グループの量子化係数を高周波数側から順に並べた量子化係数列の最終係数位置から低周波数側の各量子化係数が0か否かを表す情報の符号量であり、1となる。また、coeffAbsLevelGreater1Flag[i]は、量子化係数の絶対値が1より大きいか否かを表す情報での符号量であり、1となる。また、coeffAbsLevelGreater2Flag[i]は、量子化係数の絶対値が2より大きいか否かを表す情報の符号量であり、0となる。また、coeffAbsLevelRemaining[i]は、絶対値が2より大きい量子化係数を二値化した情報の符号量であり、litestが1以下の場合、0である。一方、litestが2以上の場合、coeffAbsLevelRemaining[i]の符号量は、litestをTruncated Rice Golomb符号化したときのビット数となる。その符号化の際に利用されるRiceParam値は、係数グループ全体で同一の値が用いられるので、0〜4の何れかに設定されればよい。さらに、coeffSignFlag[i]は、量子化係数の正負の符号を表す情報の符号量であり、0となる。
【００５４】
係数最適化部３２は、各直交変換係数について、RDコストJ(litest)が最小となる候補を特定し、その候補を、その直交変換係数についての量子化係数とする。そして係数最適化部３２は、求めた各量子化係数を記憶部３７に保存するとともに、係数グループ最適化部３３、補正値算出部３４及び最終係数位置判定部３５へ渡す。さらに、係数最適化部３２は、各直交変換係数について、量子化係数の候補の一つである0について算出した符号化誤差err(Ci,0)も記憶部３７に保存する。
【００５５】
係数グループ最適化部３３は、低周波数側から順に、係数グループごとに、その係数グループに含まれる全ての量子化係数を0にするか否かを判定する。すなわち、係数グループ最適化部３３は、上記の（２）の処理を、低周波数側から順に、係数グループごとに実行する。ただし、係数グループ最適化部３３は、最も低周波の係数グループに対しては、（２）の処理を実行しない。
【００５６】
また、最終係数が含まれる係数グループについては、係数グループ最適化の対象外であるため、係数グループ最適化部３３は、着目する係数グループよりも高周波数側に最終係数が存在すると仮定する。そして係数グループ最適化部３３は、着目する係数グループ内の量子化係数を維持した場合のその係数グループ全体のRDコストCGCost(m)と、着目する係数グループ内の全ての量子化係数を0に置換した場合のその係数グループ全体のRDコストCGCost0(m)を算出する。その際、係数グループ最適化部３３は、係数グループ間での依存が無いように、例えば、次式に従ってCGCost(m)とCGCost0(m)とを算出する。
【数５】
0006476900.tif 000006
ここで、mは、着目する係数グループについての、低周波数側からの順番を表す。また、Σcgerr(Ci,li)は、着目する係数グループ全体の符号化誤差である。また、Ci、liは、それぞれ、着目する係数グループ内でのi番目の直交変換係数及び対応する量子化係数である。なお、err(Ci,li)は、（３）式に示した、err(Ci,litest)の算出式と同様の算出式を利用して算出される。
【００５７】
また、CBitsCG(m)は、量子化係数を維持した場合の着目する係数グループの符号量であり、一方、CBitsCG0(m)は、着目する係数グループ内の量子化係数を全て0に置換した場合のその係数グループの符号量である。このうち、coeffNxNCost[i]は、（４）式において示したcoeffNxNCost[i]の算出式と同様の算出式により算出される。なお、係数グループ最適化部３３は、係数最適化部３２が量子化係数を決定する際に算出したcoeffNxNCost[i]の値を利用して、CBitsCG(m)を求めてもよい。
【００５８】
CGBits(m)は、係数グループのシンタックスエレメントから求められる、その係数グループに非0の量子化係数が含まれるか否かを表す情報についての符号量であり、可変長符号化部１４のCABACによる符号が算出される前のbin数に相当する。sigCoeffFlagは、係数グループ内で最も低周波数の量子化係数のみが非0か否かを表すシンタックスエレメントの符号量であり、0である。また、codedSubBlockFlagは、係数グループ内に非0の量子化係数が1個以上存在するか否かを表すシンタックスエレメントの符号量であり、1である。
【００５９】
係数グループ最適化部３３は、着目する係数グループについて、CGCost0(m)がCGCost(m)よりも小さい場合、その係数グループに含まれる量子化係数を全て0に置換すると判定し、全ての量子化係数を0に置換する。一方、係数グループ最適化部３３は、CGCost0(m)がCGCost(m)以上である場合、その係数グループに含まれる量子化係数を維持すると判定する。そして係数グループ最適化部３３は、その判定結果を表すフラグを記憶部３７に保存するとともに、判定部３６へ通知する。
【００６０】
補正値算出部３４は、係数グループ間でのRDコストの比較に利用する、RDコストの補正値を、係数グループごとに算出する。
【００６１】
ここで、再度（１）式を参照すると、最終係数の位置をkとしたとき、TU全体のRDコストTUCost(k)は、次式で表される。
【数６】
0006476900.tif 000007
（６）式において、右辺の第１項は、低周波数側から順に最終係数までの各量子化係数による符号化誤差を表し、右辺の第２項は、最終係数の位置の次の周波数位置から最も高周波数までの各量子化係数による符号化誤差を表す。ただし定義により、最終係数の位置よりも後の各量子化係数は0である。また、右辺の第３項は、ラグランジュの未定乗数にTU全体の符号量を乗じた値を表す。右辺の第１項〜第３項のうち、第１項及び第３項については、最も低周波数（すなわち、0）からk番目までの量子化係数に関連する処理に基づいて算出することができる。そこで、m番目の係数グループに最終係数が含まれると仮定した場合、（６）式の右辺の第２項を、m番目の係数グループの符号化誤差と(m+1)番目以降の係数グループについての符号化誤差とに分解することで、次式が得られる。
【数７】
0006476900.tif 000008
ここで、ΣCGDist(t)[t=0,...,m]は、0番目からm番目までの係数グループの符号化誤差を表す。また、ΣCGDist0(t)[t=m+1,...,n/16]は、(m+1)番目以降の係数グループの符号化誤差、すなわち、量子化係数が全て0の係数グループによる符号化誤差を表す。
【００６２】
次式で示されるように、TUCost(k)から、(m+1)番目以降の係数グループの符号化誤差ΣCGDist0(t)を除いたコストをOpt(m)とする。
【数８】
0006476900.tif 000009
TUCost(k)は、全ての係数グループの量子化係数が求められないと算出できないが、Opt(m)は、係数グループmに最終係数が含まれると仮定した場合には算出できる。ここで、係数グループmについてのコストOpt(m)と、係数グループ(m+s)(ただし、sは1以上の整数)に最終係数k'が含まれるとしたときのコストOpt(m+s)との差は次式で表される。
【数９】
0006476900.tif 000010
【００６３】
（９）式で示されるように、係数グループ(m+s)に最終係数k'が含まれる場合のRDコストTUCost(k')と係数グループmに最終係数kが含まれる場合のRDコストTUCost(k)との差は、コストOpt(m+s)とコストOpt(m)の差に、ΣCGDist0(t)を加えたものと等しい。ただし、t=m+1,...,m+sである。そしてコストOpt(m+s)とコストOpt(m)は、それぞれ、係数グループ(m+s)、mに最終係数が含まれると仮定することで算出できる。したがって、RDコストTUCost(k)及びTUCost(k')は算出できなくても、Opt(m)、Opt(m+s)及びΣCGDist0(t)[t=m+1,...,m+s]を求めることで、TUCost(k)とTUCost(k')の差を算出できることが分かる。
【００６４】
そこで、補正値算出部３４は、補正値として、ΣCGDist0(t)[t=m+1,...,m+s]を算出する。この補正値ΣCGDist0(t)[t=m+1,...,m+s]は、係数グループ(m+1)〜係数グループ(m+s)について、その係数グループに含まれる全ての量子化係数を0としたときの符号化誤差err(Ci,0)の和である。補正値算出部３４は、係数最適化部３２が各直交変換係数に対応する量子化係数を特定するために算出したerr(Ci,0)をCGDist0(m)の算出に利用できる。そこで補正値算出部３４は、その時点での最終係数の候補が含まれる係数グループの次の係数グループから順次、着目する係数グループに含まれる各量子化係数についてのerr(Ci,0)を記憶部３７から読み出して、その時点での補正値ΣCGDist0(t)に加算する。これにより、補正値算出部３４は、着目する係数グループについての補正値ΣCGDist0(t)を算出できる。補正値算出部３４は、算出した補正値ΣCGDist0(t)[t=m+1,...,m+s]を最終係数位置判定部３５へわたす。
また、補正値算出部３４は、TU全体としての最終係数の候補が着目する係数グループについての最終係数の候補で更新される場合、補正値ΣCGDist0(t)を0にリセットする。
【００６５】
最終係数位置判定部３５は、低周波数側から順に、係数グループごとに、その係数グループに最終係数が含まれると仮定して、最終係数の候補を求める。すなわち、最終係数位置判定部３５は、上記の（３）の処理を、低周波数側から順に、係数グループごとに実行する。そして最終係数位置判定部３５は、全ての係数グループについての処理が終了した時点での最終係数の候補を最終係数とし、その最終係数の位置を特定する。
【００６６】
最終係数位置判定部３５は、先ず、着目する係数グループ内で最終係数位置の判定を行う。その後、最終係数位置判定部３５は、それまでの係数グループに基づいて求められた、TU全体としての最終係数の候補についてのRDコストと着目する係数グループ内の最終係数の候補についてのRDコストとを、補正値とOpt()を利用して比較する。そして、最終係数位置判定部３５は、着目する係数グループの方がRDコストが低ければ、着目する係数グループ内の最終係数の候補で、TU全体の最終係数の候補とする。
【００６７】
先ず、着目する係数グループ内での最終係数の候補の判定について説明する。
図６は、着目する係数グループ内での最終係数位置の走査順序と、最終係数の候補の一例を示す図である。図６において、着目する係数グループ６００に含まれる量子化係数のうち、量子化係数６０１〜６０４の絶対値が1であり、量子化係数６０５の絶対値が2以上であるとする。そしてその他の量子化係数は0であるとする。最終係数位置の走査は、矢印６１０で示されるように、高周波数側から順に実行されるので、量子化係数６０１〜６０４のうち、量子化係数６０５よりも高周波数側に位置する量子化係数６０２〜６０４が、最終係数の候補となる。
【００６８】
最終係数位置判定部３５は、最終係数の候補となる量子化係数、すなわち、後続する量子化係数の絶対値が1以下で、符号量が一定値以下となる量子化係数ごとに、次式に従ってTU全体のRDコストTUCost(k)を算出する。
【数１０】
0006476900.tif 000011
ここで、kは、着目する最終係数の候補となる量子化係数についての低周波数側からの順番（ただし、最も低周波数の係数について、k=0とする）を表す。また、nは、TU全体に含まれる、量子化係数の総数から1を減じた値(TUSize2-1)である。Σerr(Ci,li)[i=0,...,k]は、0番目からk番目の量子化係数についての符号化誤差であり、Σerr(Ci,0)[i=k+1,...,n]は、(k+1)番目からn番目の量子化係数を0としたときの符号化誤差である。また、Ci、liは、それぞれ、i番目の直交変換係数及び対応する量子化係数である。なお、err(Ci,li)、err(Ci,0)は、（３）式に示した、err(Ci,litest)の算出式と同様の算出式を利用して算出される。
【００６９】
また、CBits(k)は、TU全体の符号量である。このうち、coeffNxNCost[i]は、（４）式において示したcoeffNxNCost[i]の算出式と同様の算出式により算出される。ただし、位置kよりも高周波数の量子化係数についての符号量は0となる。なお、最終係数位置判定部３５は、CBits(k)の算出に、係数最適化部３２が量子化係数を決定する際に算出したcoeffNxNCost[i]の値を利用してもよい。
【００７０】
CGBits(m)は、係数グループのシンタックスエレメントから求められる、係数グループ内に非0の量子化係数が含まれるか否かを表す情報についての符号量である。最終係数を含む係数グループよりも低周波数側の係数グループについては、CGBits(m)は、（５）式に示されるCGBits(m)の算出と同様の方法で算出される。一方、最終係数を含む係数グループ及びそれ以降の係数グループについては、CGBits(m)は0となる。
【００７１】
また、TUBits(k)は、最終係数位置を表すシンタックスエレメントについての符号量であり、可変長符号化部１４のCABACによりそれらシンタックスエレメントの符号が算出される前のbin数に相当する。このうち、シンタックスエレメントcbfは、TU全体に量子化係数が含まれるか否かを表すものであり、その符号量は0または1である。なお、符号量が0になるか1になるかは、TUについての量子化部１３の処理が開始される前に決定される。また、シンタックスエレメントlastSigCoeffX及びlastSigCoeffYは、それぞれ、最終係数位置（この例では、k）のTU全体でのx方向の位置及びy方向の位置を表し、その符号量は、それらシンタックスエレメントのbin数となる。
【００７２】
最終係数位置判定部３５は、着目する係数グループ内の最終係数の候補ごとに、RDコストTUCost(k)を算出し、TUCost(k)が最小となる候補を、着目する係数グループについての最終係数の候補とする。
【００７３】
次に、最終係数位置判定部３５は、着目する係数グループよりも低周波数側の係数グループにおいて求められた、TU全体としての最終係数の候補についてのRDコストと、着目する係数グループ内の最終係数の候補についてのRDコストとを比較する。そして最終係数位置判定部３５は、着目する係数グループ内の最終係数の候補についてのRDコストの方が小さい場合、TU全体としての最終係数の候補を、着目する係数グループ内の最終係数の候補で更新する。一方、TU全体としての最終係数の候補についてのRDコストの方が小さい場合には、最終係数位置判定部３５は、TU全体としての最終係数の候補を更新しない。
【００７４】
TU全体としての最終係数の候補についてのRDコストと、着目する係数グループ内の最終係数の候補についてのRDコストとの比較は、係数グループ間でのRDコストの比較となる。そこで、最終係数位置判定部３５は、着目する係数グループ内の最終係数の候補について、（８）式及び（９）式に基づいてTU全体のRDコストから、着目する係数グループ以降の符号化誤差を除いたコストOpt(Int)を算出する。なお、Intは、着目する係数グループの番号を表す。最終係数位置判定部３５は、TU全体としての最終係数の候補について算出され、記憶部３７に記憶されているコストOpt(min)と、補正値算出部３４から受け取った、(min+1)〜Int間の補正値ΣCGDist0とを利用して、（９）式に従ってその二つのRDコストを比較する。
【００７５】
さらに、着目する係数グループ内に、絶対値が2以上の量子化係数が含まれる場合、最終係数位置判定部３５は、着目する係数グループよりも前の係数グループに基づいて設定されたTU全体の最終係数の候補を破棄する。これは、最終係数の条件から、絶対値が2以上の量子化係数よりも低周波数側の量子化係数が最終係数となることはないためである。
【００７６】
なお、最終係数位置判定部３５は、係数グループ最適化処理で量子化係数が全て0に置換された係数グループを除いた、TU全体の最終係数の候補と、係数グループ最適化処理の結果に依存しない、TU全体の最終係数の候補とを記憶部３７に記憶する。このように、二通りの最終係数の候補を記憶する理由は、最終の係数グループについての最終係数位置の判定が終了した時点で、係数グループの最適化の処理結果がキャンセルされる可能性が有るためである。このようなキャンセルは、最終係数位置が含まれる係数グループについては係数グループ最適化処理が行われないという制約から生じる。
【００７７】
図７〜図１１を参照しつつ、係数グループの最適化と最終係数位置の候補の更新の一例について説明する。図７〜図１１において、TU７００には、4×4個の係数グループが含まれているものとする。また図７〜図１１において、丸印７２１は、係数グループ最適化処理で量子化係数が全て0に置換された係数グループを除いた、TU全体の最終係数の候補が含まれる係数グループを表す。一方、四角７２２は、係数グループ最適化処理の結果に依存しない、TU全体の最終係数の候補が含まれる係数グループを表す。なお、図７〜図１１では、丸印７２１に対応するコストOpt()をTUcostで表し、補正値をDistDで表す。一方、四角７２２に対応するコストOpt()をTUCostCtで表し、補正値をDistCtDで表す。
【００７８】
また、各係数グループ内の数値0または1は、その係数グループ内に非0の量子化係数が含まれるか否かを表す。数値0は、非0の量子化係数が含まれないことを表し、数値1は、非0の量子化係数が含まることを表す。
さらに、図７〜図１１において、グレーで示される係数グループについては、係数グループ最適化処理及び最終係数位置の判定処理の対象となっていないことを表す。
【００７９】
図７に示されるように、最初に、左上端、すなわち、直流成分を含む、最も低周波数の係数グループ７０１が処理対象となる。ただし、直流成分を含む係数グループについては、グループ係数の最適化は行われないので、係数グループ７０１についてはその係数グループ内での最終係数の候補の決定のみが行われる。そしてTUCostCt、TUCostには、Opt(0)が保存される。
【００８０】
次に、係数グループ７０１の次に低周波数の係数グループ７０２が処理対象となる。そして係数グループ７０２では、係数グループ最適化処理により、全ての量子化係数が0に置換される。また、最終係数位置に関しては、係数グループ７０２内の最終係数の候補についてのRDコストよりも、係数グループ７０１の内の最終係数の候補についてのRDコストの方が低い。そのため、TU全体としての最終係数の候補は係数グループ７０１に含まれるとして、その最終係数の候補の位置は更新されない。
【００８１】
次に、係数グループ７０２の次に低周波数の係数グループ７０３が処理対象となる。係数グループ７０３では、係数グループ最適化処理により、全ての量子化係数が維持される。また、最終係数位置に関しては、係数グループ７０３内の最終係数の候補についてのRDコストよりも、係数グループ７０１の内の最終係数の候補についてのRDコストの方が低い。そのため、TU全体としての最終係数の候補は係数グループ７０１に含まれるとして、その最終係数の候補の位置は更新されない。
【００８２】
次に、図８を参照すると、係数グループ７０３の次に低周波数の係数グループ７０４が処理対象となる。そして係数グループ７０４では、係数グループ最適化処理により、全ての量子化係数が0に置換される。さらに、係数グループ７０４内の最終係数の候補についてのRDコストの方が、係数グループ７０１内の最終係数の候補についてのRDコストよりも低い。そのため、四角７２２で示されるように、係数グループ最適化の結果に依存しない方のTU全体としての最終係数の候補は係数グループ７０４に含まれるとして、その最終係数の候補の位置は更新される。また、TUCostCtも、Opt(3)に更新される。一方、係数グループ７０４では、係数グループ最適化処理により、全ての量子化係数が0に置換される。そのため、丸印７２１で示されるように、係数グループ最適化の結果に依存する方のTU全体としての最終係数の候補は、係数グループ７０１内の候補のまま維持される。
【００８３】
次に、係数グループ７０４の次に低周波数の係数グループ７０５が処理対象となる。そして係数グループ７０５では、係数グループ最適化処理により、全ての量子化係数が維持される。一方、係数グループ７０５内の最終係数の候補についてのRDコストの方が、係数グループ最適化に依存するTU全体についての最終係数の候補についてのRDコストよりも低い。同様に、係数グループ７０５内の最終係数の候補についてのRDコストの方が、係数グループ最適化に依存しないTU全体についての最終係数の候補についてのRDコストよりも低い。そこで、丸印７２１及び四角７２２に示されるように、係数グループ最適化の結果に依存する方及び依存しない方の両方について、TU全体としての最終係数の候補は係数グループ７０５内の最終係数の候補に更新される。そしてTUCost及びTUCostCtの両方が、Opt(4)に更新される。
【００８４】
次に、係数グループ７０５の次に低周波数の係数グループ７０６が処理対象となる。そして係数グループ７０６では、係数グループ最適化処理により、全ての量子化係数が0に置換される。また、最終係数位置に関しては、係数グループ７０６内の最終係数の候補についてのRDコストよりも、係数グループ７０５内の最終係数の候補についてのRDコストの方が低い。そのため、TU全体としての最終係数の候補は係数グループ７０５に含まれるとして、最終係数の候補の位置は更新されない。
【００８５】
次に、係数グループ７０６の次に低周波数の係数グループ７０７が処理対象となる。そして係数グループ７０７では、係数グループ最適化処理により、全ての量子化係数が0に置換される。さらに、係数グループ７０７内の最終係数の候補についてのRDコストの方が、係数グループ７０５内の最終係数の候補についてのRDコストよりも低い。そのため、四角７２２に示されるように、係数グループ最適化の結果に依存しない方のTU全体としての最終係数の候補は係数グループ７０７に含まれるとして、その最終係数の候補の位置が更新される。また、TUCostCtも、Opt(6)に更新される。一方、丸印７２１に示されるように、係数グループ最適化の結果に依存する方のTU全体としての最終係数の候補は、係数グループ７０５内の候補のまま維持される。
【００８６】
図９に示されるように、係数グループ７０７以降の各係数グループには、非0の量子化係数が含まれなかったとする。この場合、係数グループ７０７は、係数グループ最適化処理の対象とならない。そのため、係数グループ７０７に含まれる、各量子化係数の0への置換はキャンセルされる。そこで、判定部３６は、記憶部３７に保存されている、係数グループ７０７の元の量子化係数を読み込み、係数グループ７０７の各量子化係数を、その元の量子化係数に戻す。
【００８７】
この場合、最終係数位置判定部３５は、係数グループ最適化の結果に依存しない方のTU全体としての最終係数の候補を、すなわち、係数グループ７０７に含まれる最終係数の候補を、最終係数とする。そして最終係数位置判定部３５は、その最終係数に対応するコストをTUCostCtとする。この場合、その最終係数に対応する、TU全体のRDコストは、TUCostCt+DistCtDとなる。
【００８８】
一方、図１０に示されるように、係数グループ７１２に、絶対値が1の量子化係数が含まれており、絶対値が2以上の量子化係数が含まれていなかったとする。そして係数グループ７１２以降には、非0の量子化係数を含む係数グループは存在しなかったとする。この場合において、係数グループ７１２内の最終係数の候補についてのRDコストよりも、係数グループ７０５内の最終係数の候補についてのRDコストの方が低いと、最終係数位置判定部３５は、係数グループ７０５内の最終係数の候補を最終係数とする。そしてこの場合、係数グループ７０７に含まれる各量子化係数の0への置換は維持される。そして最終係数位置判定部３５は、その最終係数に対応するコストをTUCostとする。この場合、その最終係数に対応する、TU全体のRDコストは、TUCostCt+DistDとなる。
【００８９】
また、図１１に示されるように、最も高周波数の係数グループ７１６内に、絶対値が2以上の量子化係数７３１が含まれていたとする。この場合には、最終係数は、量子化係数７３１以降の量子化係数となるので、係数グループ７０５及び係数グループ７０７内の最終係数の候補は、最終係数の候補から除外される。したがって、最終係数位置判定部３５は、係数グループ７１６内の最終係数の候補を、最終係数とすればよい。この場合も、係数グループ７０７に含まれる各量子化係数の0への置換は維持される。
【００９０】
最終係数位置判定部３５は、最終係数の位置及びその最終係数の位置に対応するTU全体のRDコストを判定部３６へ通知する。
【００９１】
判定部３６は、最終係数位置判定部３５により求められた最終係数の位置に対応する、TU全体のRDコストと、TUに含まれる全ての量子化係数を0に置換したときのRDコストJzとを比較する。そして判定部３６は、最終係数の位置に対応するTU全体のRDコストがRDコストJz以下であれば、TU内の各量子化係数、各係数グループの非0係数の有無情報及び最終係数位置を表す情報を可変長符号化部１４及び復号部１５へ出力する。また、判定部３６は、最終係数が位置する係数グループに含まれる全量子化係数が、係数グループ最適化処理によって0に置換されている場合、記憶部３７からその係数グループに含まれる各量子化係数の値を読み出して、各量子化係数の値を元に戻す。
【００９２】
一方、判定部３６は、RDコストJzの方が小さければ、TUに含まれる全ての量子化係数を0に置換する。そして判定部３６は、TU内に非0の量子化係数が含まれないことを表す情報を可変長符号化部１４及び復号部１５へ出力する。
【００９３】
なお、判定部３６は、RDコストJzを次式に従って算出する。
【数１１】
0006476900.tif 000012
このうち、Σtuerr(Ci,0)は、全ての量子化係数を0としたときのTU全体の符号化誤差を表し、判定部３６は、量子化係数最適化の際に算出されるerr(Ci,0)の総和をΣtuerr(Ci,0)として算出できる。またCBitsは、全ての量子化係数を0としたときのTU全体の符号量である。TUのサイズがそのTUを含むCUのサイズと等しい場合、CBits=0となり、TUのサイズがそのTUを含むCUのサイズと異なる場合、CBits=1となる。
【００９４】
図１２は、量子化部１３により実行される、レート歪み最適量子化処理の動作フローチャートである。量子化部１３は、直交変換の単位となるブロック（この例では、TU）ごとに、以下の動作フローチャートに従ってレート歪み最適量子化処理を実行する。
【００９５】
制御部３０は、TUを、係数グループごとに分割する（ステップＳ１０１）。そして制御部３０は、最も周波数の低い係数グループを着目する係数グループに設定する（ステップＳ１０２）。そして制御部３０は、着目する係数グループをスケーリング部３１へ入力する。
【００９６】
スケーリング部３１は、着目する係数グループに含まれる直交変換係数ごとに、量子化パラメータに従って、その直交変換係数に対応する量子化係数の候補リスト{0, coeff-1, coeff}を作成する（ステップＳ１０３）。そしてスケーリング部３１は、着目する係数グループに含まれる各直交変換係数の量子化係数の候補リストを係数最適化部３２にわたす。
【００９７】
係数最適化部３２は、着目する係数グループに含まれる直交変換係数ごとに、候補リストに含まれる量子化係数の候補の中から、RDコストが最小となる候補を特定し、その特定された候補を、その直交変換係数に対応する量子化係数とする（ステップＳ１０４）。そして係数最適化部３２は、着目する係数グループに含まれる各量子化係数を、記憶部３７に記憶するとともに、係数グループ最適化部３３及び最終係数位置判定部３５に通知する。また、係数最適化部３２は、各直交変換係数についてのRDコストを算出する際に求めた、量子化係数の候補'0'についての符号化誤差err(Ci,0)も記憶部３７に記憶する。
【００９８】
係数グループ最適化部３３は、着目する係数グループについて、全ての量子化係数を0に置換したときのRDコストと、全ての量子化係数を維持した場合のRDコストの比較により、全ての量子化係数を0に置換するか否か判定する（ステップＳ１０５）。そして係数グループ最適化部３３は、その判定結果を記憶部３７に記憶するとともに、最終係数位置判定部３５へ通知する。
【００９９】
補正値算出部３４は、現時点における、最終係数の候補を含む係数グループの次の係数グループから、着目する係数グループまでの各量子化係数を0にした場合の符号化誤差の総和を補正値ΣCGDist0として算出する（ステップＳ１０６）。そして補正値算出部３４は、補正値ΣCGDist0を最終係数位置判定部３５へ渡す。
【０１００】
最終係数位置判定部３５は、着目する係数グループ内で、絶対値が2以上の量子化係数、及び、それより高周波数側で、絶対値が1が量子化係数のそれぞれについて、その量子化係数よりも高周波数側の量子化係数を0に置換したときのRDコストを算出する。そして最終係数位置判定部３５は、RDコストが最小となる量子化係数を、着目する係数グループ内の最終係数の候補に設定する（ステップＳ１０７）。
【０１０１】
さらに、最終係数位置判定部３５は、現時点における、TU全体での最終係数の候補についてのRDコストよりも、着目する係数グループ内の最終係数の候補についてのRDコストの方が低いか否かを判定する。本実施形態では、最終係数位置判定部３５は、現時点における、TU全体での最終係数の候補を含む係数グループのコストOpt(min)に補正値ΣCGDist0を加算した値よりも、着目する係数グループのコストOpt(Int)の方が低いか否かを判定する（ステップＳ１０８）。(Opt(min)+ΣCGDist0)よりもOpt(Int)の方が低い場合（ステップＳ１０８−Ｙｅｓ）、最終係数位置判定部３５は、TU全体での最終係数の候補を、着目する係数グループ内の最終係数の候補で更新する（ステップＳ１０９）。
ステップＳ１０９の後、制御部３０は、未着目の係数グループが有るか否か判定する（ステップＳ１１０）。また、ステップＳ１０８にて、現時点における、TU全体での最終係数の候補についてのRDコストの方が、着目する係数グループ内の最終係数の候補についてのRDコスト以下である場合（ステップＳ１０８−Ｎｏ）も、制御部３０は、ステップＳ１１０の処理を行う。
【０１０２】
未着目の係数グループが残っている場合（ステップＳ１１０−Ｙｅｓ）、制御部３０は、未着目の係数グループのうちの最も低周波数の係数グループを着目する係数グループに設定する（ステップＳ１１１）。そして制御部３０は、着目する係数グループをスケーリング部３１へ入力し、量子化部１３は、ステップＳ１０３以降の処理を実行する。
【０１０３】
一方、未着目の係数グループが残っていない場合（ステップＳ１１０−Ｎｏ）、制御部３０は、最終係数位置判定部３５に、現時点における、TU全体での最終係数の候補を、最終係数とし、その最終係数の位置及び対応するRDコストを判定部３６へ通知させる。
【０１０４】
判定部３６は、TUに含まれる全ての量子化係数を0に置換した場合のTU全体のRDコストJzが、最終係数位置に対応するTU全体のRDコストよりも低いか否か判定する（ステップＳ１１２）。RDコストJzが最終係数位置に対応するTU全体のRDコストよりも低い場合（ステップＳ１１２−Ｙｅｓ）、判定部３６は、TUに含まれる全ての量子化係数を0に置換する（ステップＳ１１３）。そして判定部３６は、TUに非0の量子化係数が含まれないことを表す情報を可変長符号化部１４及び復号部１５へ通知する。
【０１０５】
一方、RDコストJzが、最終係数位置に対応するTU全体のRDコスト以上である場合（ステップＳ１１２−Ｙｅｓ）、判定部３６は、TU内の各量子化係数を維持する。そして判定部３６は、TU内の各量子化係数、各係数グループの非0係数の有無情報及び最終係数位置を表す情報を復号部１５及び可変長符号化部１４へ出力する（ステップＳ１１４）。
ステップＳ１１３またはＳ１１４の後、量子化部１３は、レート歪み最適量子化処理を終了する。
【０１０６】
図１３は、一つの実施形態による動画像符号化装置１により実行される動画像符号化処理の動作フローチャートである。動画像符号化装置１は、符号化対象ピクチャに含まれるCTUごとに、この動画像符号化処理を実行する。
【０１０７】
符号化モード判定部２１は、予測符号化モード、CUサイズ、PUサイズ、TUサイズの組み合わせのうちで符号化コストが最小となる組み合わせを決定する（ステップＳ２０１）。そして予測ブロック生成部２２は、決定した組み合わせに含まれる予測符号化モード及びCUサイズ、PUサイズ、TUサイズの組み合わせに従って、CTUに含まれる各TUの予測ブロックを算出する（ステップＳ２０２）。そして予測誤差信号算出部１１は、TUごとに、TUとそのTUに対応する予測ブロック間で画素ごとに差分演算することで、予測誤差信号を算出する（ステップＳ２０３）。
【０１０８】
その後、直交変換部１２は、予測誤差信号をTUごとに直交変換して直交変換係数の組を算出する（ステップＳ２０４）。そして量子化部１３は、TUごとに、各直交変換係数を、レート歪み最適化処理を適用することで量子化する（ステップＳ２０５）。
【０１０９】
復号部１５は、量子化係数を逆量子化及び逆直交変換して再生した予測誤差信号と予測ブロックを加算して参照ブロックを生成する（ステップＳ２０６）。そして復号部１５は、その参照ブロックを記憶部１９に記憶する。一方、可変長符号化部１４は、各量子化係数を可変長符号化する（ステップＳ２０７）。そして動画像符号化装置１は、動画像符号化処理を終了する。
【０１１０】
以上に説明してきたように、この動画像符号化装置は、直交変換の単位となるブロックごとに、そのブロックに含まれる各直交変換係数に対してレート歪み最適化処理を適用することで、そのブロックに含まれる各直交変換係数を量子化する。その際、この動画像符号化装置は、着目する係数グループよりも高周波数側の係数グループに非0の量子化係数が含まれると仮定して、着目する係数グループについて係数グループ最適化処理を行う。その一方、この動画像符号化装置は、着目する係数グループよりも高周波数側の係数グループには非0の量子化係数は存在しないと仮定して、最終係数の候補を求める。この動画像符号化装置は、着目する係数グループ内の最終係数の候補と、より低周波数側の係数グループ内に位置する最終係数の候補との間でのRDコストの比較の際に、着目する係数グループより高周波数側の係数グループによる符号化誤差を無視することとした。これにより、この動画像符号化装置は、レート歪み最適化処理を、低周波数側の係数グループから順に、いわゆる1pass処理で行うことを可能とし、レート歪み最適化処理のスループットを向上できる。
【０１１１】
なお、変形例によれば、量子化部１３は、TU全体の量子化係数を0に置換する場合を考慮しなくてもよい。この場合には、量子化部１３は、全ての係数グループについて最終係数位置の判定が終わった時点で、RUコストが最小となる最終係数の候補を、そのまま最終係数とすればよい。この場合には、判定部３６は省略される。
【０１１２】
また、他の変形例によれば、符号化モード判定部２１が、符号化対象のCTUに適用される予測符号化モード、CUサイズ、PUサイズ及びTUサイズを決定する際に、量子化部１３と同様の処理を行ってもよい。これにより、符号化モード判定部２１は、符号量だけでなく、符号化誤差も考慮して、適切な予測符号化モード、CUサイズ、PUサイズ及びTUサイズを決定できる。
【０１１３】
なお、上記の各実施形態またはその変形例による動画像符号化装置の各部の機能をプロセッサ上で実行可能なコンピュータプログラムは、コンピュータによって読み取り可能な媒体に記録された形で提供されてもよい。
【０１１４】
上述した実施形態またはその変形例による動画像符号化装置は、様々な用途に利用される。例えば、この動画像符号化装置は、ビデオカメラ、映像伝送装置、テレビ電話システム、コンピュータあるいは携帯電話機に組み込まれる。
【０１１５】
図１４は、上記の各実施形態またはその変形例による動画像符号化装置の各部の機能を実現するコンピュータプログラムが動作することにより、動画像符号化装置として動作するコンピュータの構成図である。
コンピュータ１００は、ユーザインターフェース部１０１と、通信インターフェース部１０２と、記憶部１０３と、記憶媒体アクセス装置１０４と、プロセッサ１０５とを有する。プロセッサ１０５は、ユーザインターフェース部１０１、通信インターフェース部１０２、記憶部１０３及び記憶媒体アクセス装置１０４と、例えば、バスを介して接続される。
【０１１６】
ユーザインターフェース部１０１は、例えば、キーボードとマウスなどの入力装置と、液晶ディスプレイといった表示装置とを有する。または、ユーザインターフェース部１０１は、タッチパネルディスプレイといった、入力装置と表示装置とが一体化された装置を有してもよい。そしてユーザインターフェース部１０１は、ユーザの操作に応じて、動画像符号化処理を開始させる操作信号をプロセッサ１０５へ出力する。
【０１１７】
通信インターフェース部１０２は、コンピュータ１００を、ビデオカメラなどの動画像入力装置（図示せず）と接続するための通信インターフェース及びその制御回路を有してもよい。そのような通信インターフェースは、例えば、High-Definition Multimedia Interface、またはUniversal Serial Bus（ユニバーサル・シリアル・バス、USB）とすることができる。
【０１１８】
さらに、通信インターフェース部１０２は、イーサネット（登録商標）などの通信規格に従った通信ネットワークに接続するための通信インターフェース及びその制御回路を有してもよい。この場合には、通信インターフェース部１０２は、画像入力装置または通信ネットワークに接続された他の機器から、特定の映像フォーマットに準拠した動画像データを取得し、その動画像データをプロセッサ１０５へ渡す。また通信インターフェース部１０２は、プロセッサ１０５から受け取った、符号化された動画像データを通信ネットワークを介して他の機器へ出力してもよい。
【０１１９】
記憶部１０３は、例えば、読み書き可能な半導体メモリと読み出し専用の半導体メモリとを有する。そして記憶部１０３は、プロセッサ１０５上で実行される、動画像符号化処理を実行するためのコンピュータプログラム、符号化対象の動画像データ、またはプロセッサ１０５により符号化された動画像データなどを記憶する。
【０１２０】
記憶媒体アクセス装置１０４は、例えば、磁気ディスク、半導体メモリカード及び光記憶媒体といった記憶媒体１０６にアクセスする装置である。記憶媒体アクセス装置１０４は、例えば、記憶媒体１０６に記憶されたプロセッサ１０５上で実行される、動画像符号化処理用のコンピュータプログラムを読み込み、プロセッサ１０５に渡す。また記憶媒体アクセス装置１０４は、プロセッサ１０５により符号化された動画像データを記憶媒体１０６に書き込んでもよい。
【０１２１】
プロセッサ１０５は、上記の各実施形態の何れかまたは変形例による動画像符号化処理用コンピュータプログラムを実行することにより、動画像データを符号化する。そしてプロセッサ１０５は、符号化された動画像データを記憶部１０３に保存し、または通信インターフェース部１０２を介して他の機器へ出力する。
【０１２２】
ここに挙げられた全ての例及び特定の用語は、読者が、本発明及び当該技術の促進に対する本発明者により寄与された概念を理解することを助ける、教示的な目的において意図されたものであり、本発明の優位性及び劣等性を示すことに関する、本明細書の如何なる例の構成、そのような特定の挙げられた例及び条件に限定しないように解釈されるべきものである。本発明の実施形態は詳細に説明されているが、本発明の精神及び範囲から外れることなく、様々な変更、置換及び修正をこれに加えることが可能であることを理解されたい。
【符号の説明】
【０１２３】
１    動画像符号化装置
１１    予測誤差算出部
１２    直交変換部
１３    量子化部
１４    可変長符号化部
１５    復号部
１６    逆量子化部
１７    逆直交変換部
１８    加算部
１９    記憶部
２０    動きベクトル計算部
２１    符号化モード判定部
２２    予測ブロック生成部
２３    ループフィルタ部
３０    制御部
３１    スケーリング部
３２    係数最適化部
３３    係数グループ最適化部
３４    補正値算出部
３５    最終係数位置判定部
３６    判定部
３７    記憶部
１００    コンピュータ
１０１    ユーザインターフェース部
１０２    通信インターフェース部
１０３    記憶部
１０４    記憶媒体アクセス装置
１０５    プロセッサ
１０６    記憶媒体
【図１】
0006476900.tif 000013
【図２】
0006476900.tif 000014
【図３】
0006476900.tif 000015
【図４】
0006476900.tif 000016
【図５】
0006476900.tif 000017
【図６】
0006476900.tif 000018
【図７】
0006476900.tif 000019
【図８】
0006476900.tif 000020
【図９】
0006476900.tif 000021
【図１０】
0006476900.tif 000022
【図１１】
0006476900.tif 000023
【図１２】
0006476900.tif 000024
【図１３】
0006476900.tif 000025
【図１４】
0006476900.tif 000026