(57)【要約】【課題】ROTおよびDCTまたは逆DCTおよび逆ROTの処理量を削減する。【解決手段】符号化された画像を復号した画像情報を逆量子化することで、第一の直交変換手段により求められた、前記画像情報における低周波成分と、第二の直交変換手段により求められた、前記画像情報における前記低周波成分より高い高周波数成分とを求め、前記低周波数成分と前記高周波数成分とを同様の手法により逆直交変換する。本発明は、例えば、画像を符号化する場合や復号する場合に適用できる。【選択図】図２
2012039590.tif 000002
【特許請求の範囲】
【請求項１】
量子化された画像を逆量子化することで、第１の直交変換後に第２の直交変換が行われることにより求められた、前記画像の所定のサイズの低周波成分と、前記第１の直交変換により求められた、前記画像の前記低周波成分以外の成分である高周波数成分とを求める逆量子化手段と、
前記画像のサイズが前記所定のサイズである場合、前記低周波成分である前記画像に対して、前記第１の直交変換に対応する第１の逆直交変換と前記第２の直交変換に対応する第２の逆直交変換を合成した変換である第３の逆直交変換を行い、前記画像のサイズが前記所定のサイズより大きい場合、前記低周波数成分に対して前記第２の逆直交変換を行い、前記第２の逆直交変換後の前記低周波数成分と前記逆量子化手段により求められた前記高周波数成分に対して前記第１の逆直交変換を行う逆直交変換手段と
を備える画像処理装置。
【請求項２】
前記所定のサイズは、４×４画素である
請求項１に記載の画像処理装置。
【請求項３】
前記所定のサイズは、前記画像のサイズが４×４画素である場合４×４画素であり、前記画像のサイズが８×８画素以上である場合８×８画素であり、
前記逆直交変換手段は、前記画像のサイズが４×４画素である場合、前記低周波数成分である前記画像に対して前記第３の逆直交変換を行い、前記画像のサイズが８×８画素以上である場合、前記低周波数成分に対して前記第２の逆直交変換を行い、前記第２の逆直交変換後の前記低周波成分と前記逆量子化手段により求められた前記高周波数成分に対して前記第１の逆直交変換を行う
請求項１に記載の画像処理装置。
【請求項４】
前記第１の直交変換は、ＤＣＴ（Discrete Cosine Transform）であり、
前記第２の直交変換は、ＲＯＴ（Rotation transform）である
請求項１に記載の画像処理装置。
【請求項５】
前記画像のサイズが前記所定のサイズである場合、前記画像に対して前記第１の直交変換と前記第２の直交変換を合成した変換である第３の直交変換を行い、前記画像のサイズが前記所定のサイズより大きい場合、前記画像に対して前記第１の直交変換を行い、前記第１の直交変換後の画像における前記所定のサイズの低周波成分に対して第２の直交変換を行う直交変換手段と、
前記第３の直交変換後の前記所定のサイズの前記画像を量子化するか、または、前記第１の直交変換により求められた前記低周波成分以外の成分である高周波成分と前記第２の直交変換により求められた前記低周波成分を量子化する量子化手段と
をさらに備える
請求項１に記載の画像処理装置。
【請求項６】
量子化された画像を逆量子化することで、第１の直交変換後に第２の直交変換が行われることにより求められた、前記画像の所定のサイズの低周波成分と、前記第１の直交変換により求められた、前記画像の前記低周波成分以外の成分である高周波数成分とを求める逆量子化手段と、
前記画像のサイズが前記所定のサイズである場合、前記低周波成分である前記画像に対して、前記第１の直交変換に対応する第１の逆直交変換と前記第２の直交変換に対応する第２の逆直交変換を合成した変換である第３の逆直交変換を行い、前記画像のサイズが前記所定のサイズより大きい場合、前記低周波数成分に対して前記第２の逆直交変換を行い、前記第２の逆直交変換後の前記低周波数成分と前記逆量子化手段により求められた前記高周波数成分に対して前記第１の逆直交変換を行う逆直交変換手段と
を備える画像処理装置の、
前記逆量子化手段が、前記低周波成分と、前記高周波数成分とを求め、
前記逆直交変換手段が、前記画像のサイズが前記所定のサイズである場合、前記低周波成分である前記画像に対して前記第３の逆直交変換を行い、前記画像のサイズが前記所定のサイズより大きい場合、前記低周波数成分に対して前記第２の逆直交変換を行い、前記第２の逆直交変換後の前記低周波数成分と前記逆量子化手段により求められた前記高周波数成分に対して前記第１の逆直交変換を行う
ステップを含む画像処理方法。
【請求項７】
量子化された画像を逆量子化することで、第１の直交変換後に第２の直交変換が行われることにより求められた、前記画像の所定のサイズの低周波成分と、前記第１の直交変換により求められた、前記画像の前記低周波成分以外の成分である高周波数成分とを求める逆量子化手段と、
前記画像のサイズが前記所定のサイズである場合、前記低周波成分である前記画像に対して、前記第１の直交変換に対応する第１の逆直交変換と前記第２の直交変換に対応する第２の逆直交変換を合成した変換である第３の逆直交変換を行い、前記画像のサイズが前記所定のサイズより大きい場合、前記低周波数成分に対して前記第２の逆直交変換を行い、前記第２の逆直交変換後の前記低周波数成分と前記逆量子化手段により求められた前記高周波数成分に対して前記第１の逆直交変換を行う逆直交変換手段と
して、コンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置、画像処理方法、及びプログラムに関し、特に、直交変換処理または逆直交変換処理の演算量を削減することができるようにした画像処理装置、画像処理方法、及びプログラムに関する。
【背景技術】
【０００２】
AVC（Advanced Video Coding）の次世代に相当する符号化方式において、Rotation transform(ROT)という直交変換を用いることが検討されている（例えば、特許文献１参照）。ビデオ符号化で広く使われている従来の離散コサイン変換(DCT（Discrete Cosine Transform）)は、いくつかの状況では最適ではない。例えば、変換対象が強い方向成分をもっている場合、DCT基底ベクトルは、その強い方向成分を良好に表現できない。
【０００３】
通常、ROT（Directional transform）では上記の問題を解決することができるが、多くの浮動小数点演算が要求されたり、変換対象のブロックが正方形であることが求められたりするため、ROTを行うことは困難である。特に、ROT のブロックサイズの種類が多い場合にはより困難である。
【０００４】
そこで、ブロックサイズの種類の少ないROT を行う処理部を設計しておき、 DCT の後に2nd transform として低周波数成分に対してのみROT を施す方法が考案されている。
【０００５】
図１は、このような方法で直交変換を行うことにより符号化された画像データを復号するデコーダにおける逆ROTの工程例を示したものである。
【０００６】
左の白い箱は、符号化された画像データから取り出された残差情報としての画像データである。この画像データは、４×４画素，８×８画素，１６×１６画素，３２×３２画素，６４×６４画素、または１２８×１２８画素の画素値からなるブロックごとに逆量子化される。そして、逆量子化後のブロックのうちの低い周波数成分からなる４×４または８×８画素のブロックだけが逆ROTされ、その逆ROT後の係数と逆量子化後のブロックのうちの残りの高い周波数成分が併せられて逆DCT変換される。
【０００７】
こうすることで、上述した方法では、ROTおよび逆ROTのブロックサイズとして、４×４画素または８×８画素の２種類だけ用意すればよくなる。
【先行技術文献】
【非特許文献】
【０００８】
【非特許文献１】http://wftp3.itu.int/av-arch/jctvc-site/2010_04_A_Dresden/JCTVC-A124.zip[平成２２年１０月２８日検索]
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかしながら、イントラ予測のブロックサイズが４×４画素のように小さい場合、問題が起こる。具体的には、各ブロックのイントラ予測を行うためには、そのブロックの左のブロックを含む周囲のブロックの復号後の画像データが必要であるため、各ブロックのイントラ予測を並列に行うことはできない。そして、上述した方法では、復号後の画像データを得るために、DCT,ROT、量子化、逆量子化、逆ROT、および逆DCTといった非常に多くの処理が必要である。
【００１０】
従って、イントラ予測のブロックサイズが小さい場合、マクロブロックあるいはCU(Cording Unit)のエンコードおよびデコードに要する最長時間が大きくなり、リアルタイム性を要求するアプリケーションにおいて上述した方法を用いることは極めて困難になる。ここでCUとはAVC方式におけるマクロブロックと同じ概念である。
【００１１】
本発明は、このような状況に鑑みてなされたものであり、ROTおよびDCTまたは逆DCTおよび逆ROTの処理量を削減することができるようにするものである。
【課題を解決するための手段】
【００１２】
本発明の一側面の画像処理装置、又は、プログラムは、量子化された画像を逆量子化することで、第１の直交変換後に第２の直交変換が行われることにより求められた、前記画像の所定のサイズの低周波成分と、前記第１の直交変換により求められた、前記画像の前記低周波成分以外の成分である高周波数成分とを求める逆量子化手段と、前記画像のサイズが前記所定のサイズである場合、前記低周波成分である前記画像に対して、前記第１の直交変換に対応する第１の逆直交変換と前記第２の直交変換に対応する第２の逆直交変換を合成した変換である第３の逆直交変換を行い、前記画像のサイズが前記所定のサイズより大きい場合、前記低周波数成分に対して前記第２の逆直交変換を行い、前記第２の逆直交変換後の前記低周波数成分と前記逆量子化手段により求められた前記高周波数成分に対して前記第１の逆直交変換を行う逆直交変換手段とを備える画像処理装置、又は、画像処理装置として、コンピュータを機能させるためのプログラムである。
【００１３】
本発明の一側面の画像処理方法は、量子化された画像を逆量子化することで、第１の直交変換後に第２の直交変換が行われることにより求められた、前記画像の所定のサイズの低周波成分と、前記第１の直交変換により求められた、前記画像の前記低周波成分以外の成分である高周波数成分とを求め、前記画像のサイズが前記所定のサイズである場合、前記低周波成分である前記画像に対して、前記第１の直交変換に対応する第１の逆直交変換と前記第２の直交変換に対応する第２の逆直交変換を合成した変換である第３の逆直交変換を行い、前記画像のサイズが前記所定のサイズより大きい場合、前記低周波数成分に対して前記第２の逆直交変換を行い、前記第２の逆直交変換後の前記低周波数成分と前記逆量子化手段により求められた前記高周波数成分に対して前記第１の逆直交変換を行うステップを含む画像処理方法である。
【００１４】
本発明の一側面においては、量子化された画像を逆量子化することで、第１の直交変換後に第２の直交変換が行われることにより求められた、前記画像の所定のサイズの低周波成分と、前記第１の直交変換により求められた、前記画像の前記低周波成分以外の成分である高周波数成分とが求められ、前記画像のサイズが前記所定のサイズである場合、前記低周波成分である前記画像に対して、前記第１の直交変換に対応する第１の逆直交変換と前記第２の直交変換に対応する第２の逆直交変換を合成した変換である第３の逆直交変換が行われ、前記画像のサイズが前記所定のサイズより大きい場合、前記低周波数成分に対して前記第２の逆直交変換を行い、前記第２の逆直交変換後の前記低周波数成分と前記逆量子化手段により求められた前記高周波数成分に対して前記第１の逆直交変換が行われる。
【発明の効果】
【００１５】
本発明の一側面によれば、ROTおよびDCTまたは逆DCTおよび逆ROTの処理量を削減することができる。
【図面の簡単な説明】
【００１６】
【図１】デコーダにおけるROT の工程例を示す図である。
【図２】AVC方式のエンコーダの構成例を示すブロック図である。
【図３】AVC方式のデコーダの構成例を示すブロック図である。
【図４】ROTを導入したときの、直交変換装置、量子化装置、逆量子化装置、及び、逆直交変換装置に相当する部分の構成例を示すブロック図である。
【図５】エンコーダ側でのROTの改善を説明するための図である。
【図６】ROTを導入したときの、逆量子化装置、及び、逆直交変換装置に相当する部分の構成例を示すブロック図である。
【図７】デコーダ側でのROTの改善を説明するための図である。
【図８】エンコーダ処理を説明するフローチャートである。
【図９】エンコーダ処理を説明するフローチャートである。
【図１０】エンコーダ処理を説明するフローチャートである。
【図１１】エンコーダ処理を説明するフローチャートである。
【図１２】エンコーダ処理を説明するフローチャートである。
【図１３】デコーダ処理を説明するフローチャートである。
【図１４】デコーダ処理を説明するフローチャートである。
【図１５】デコーダ処理を説明するフローチャートである。
【図１６】本発明を適用したコンピュータの一実施の形態の構成例を示すブロック図である。
【発明を実施するための形態】
【００１７】
＜一実施の形態＞
［エンコーダの構成例］
図２は、本発明を適用したAVC方式のエンコーダの一実施の形態の構成例を示すブロック図である。
【００１８】
図２のエンコーダは、A/D変換装置１０１、画面並べ替えバッファ１０２、演算装置１０３、直交変換装置１０４、量子化装置１０５、可逆符号化装置１０６、蓄積バッファ１０７、逆量子化装置１０８、逆直交変換装置１０９、加算装置１１０、デブロックフィルタ１１１、フレームメモリ１１２、動き補償装置１１３、イントラ予測装置１１４、レート制御装置１１５、動き予測装置１１６、および選択装置１１７により構成される。図１のエンコーダは、入力された画像をAVC方式で圧縮符号化する。
【００１９】
具体的には、エンコーダのA/D変換装置１０１は、入力信号として入力されたフレーム単位の画像をA/D変換し、画面並べ替えバッファ１０２に出力し、記憶させる。画面並べ替えバッファ１０２は、記憶した表示の順番のフレームの画像を、GOP（Group of Picture）構造に応じて、符号化のための順番に並べ替える。
【００２０】
演算装置１０３は、必要に応じて、画面並べ替えバッファ１０２から読み出された画像から、選択装置１１７から供給される予測画像を減算する。演算装置１０３は、減算の結果得られる画像を、残差情報として直交変換装置１０４に出力する。演算装置１０３は、選択装置１１７から予測画像が供給されない場合、画面並べ替えバッファ１０２から読み出された画像をそのまま残差情報として直交変換装置１０４に出力する。
【００２１】
直交変換装置１０４は、演算装置１０３からの残差情報に対して、ブロックサイズに応じた直交変換処理を行う。具体的には、ブロックサイズが４×４画素である場合、直交変換装置１０４は、残差情報に対してDCTとROTを合成した変換を行う。一方、ブロックサイズが８×８画素である場合、直交変換装置１０４は、残差情報に対してDCTを行い、その結果得られる係数に対してROTを行う。また、ブロックサイズが８×８画素より大きい場合、直交変換装置１０４は、残差情報に対してDCTを行い、その結果得られる係数のうちの８×８画素の低周波数成分に対してROTを行い、その結果得られる係数と残りの高周波数成分を最終的な係数とする。直交変換装置１０４は、直交変換処理の結果得られる係数を量子化装置１０５に供給する。
【００２２】
量子化装置１０５は、直交変換装置１０４から供給される係数を量子化する。量子化された係数は、可逆符号化装置１０６に入力される。
【００２３】
可逆符号化装置１０６は、最適イントラ予測モードを示す情報（以下、イントラ予測モード情報という）をイントラ予測装置１１４から取得し、最適インター予測モードを示す情報（以下、インター予測モード情報という）、動きベクトルの情報などを動き予測装置１１６から取得する。
【００２４】
可逆符号化装置１０６は、量子化装置１０５から供給される量子化された係数に対して、可変長符号化（例えば、CAVLC（Context-Adaptive Variable Length Coding）など）、算術符号化（例えば、CABAC（Context-Adaptive Binary Arithmetic Coding）など）などの可逆符号化を行い、その結果得られる情報を圧縮画像とする。また、可逆符号化装置１０６は、イントラ予測モード情報、インター予測モード情報、動きベクトルの情報などを可逆符号化し、その結果得られる情報を圧縮画像に付加されるヘッダ情報とする。可逆符号化装置１０６は、可逆符号化の結果得られるヘッダ情報が付加された圧縮画像を画像圧縮情報として蓄積バッファ１０７に供給し、蓄積させる。
【００２５】
蓄積バッファ１０７は、可逆符号化装置１０６から供給される画像圧縮情報を、一時的に記憶し、例えば、後段の図示せぬ記録装置や伝送路などに出力する。
【００２６】
また、量子化装置１０５より出力された、量子化された係数は、逆量子化装置１０８にも入力され、逆量子化された後、逆直交変換装置１０９に供給される。
【００２７】
逆直交変換装置１０９は、逆量子化装置１０８から供給される係数に対して、ブロックサイズに応じた逆直交変換処理を行う。具体的には、ブロックサイズが４×４画素である場合、逆直交変換装置１０９は、係数に対して逆ROTと逆DCTを合成した変換を行う。一方、ブロックサイズが８×８画素である場合、逆直交変換装置１０９は、係数に対して逆ROTを行い、その結果得られる係数に対して逆DCTを行う。また、ブロックサイズが８×８画素より大きい場合、逆直交変換装置１０９は、係数の８×８の低周波数成分に対して逆ROTを行い、その結果得られる係数と残りの高周波数成分に対して逆DCTを行う。逆直交変換装置１０９は、逆直交変換処理の結果得られる残差情報を加算装置１１０に供給する。
【００２８】
加算装置１１０は、逆直交変換装置１０９から供給される残差情報を、必要に応じて、イントラ予測装置１１４または動き補償装置１１３から供給される予測画像と加算し、局部的に復号された画像を得る。加算装置１１０は、得られた画像をデブロックフィルタ１１１に供給するとともに、参照画像としてイントラ予測装置１１４に供給する。
【００２９】
デブロックフィルタ１１１は、加算装置１１０から供給される局部的に復号された画像をフィルタリングすることにより、ブロック歪を除去する。デブロックフィルタ１１１は、その結果得られる画像をフレームメモリ１１２に供給し、蓄積させる。フレームメモリ１１２に蓄積された画像は、参照画像として動き補償装置１１３および動き予測装置１１６に出力される。
【００３０】
動き補償装置１１３は、動き予測装置１１６から供給される動きベクトルとインター予測モード情報に基づいて、フレームメモリ１１２から供給される参照画像に対して補償処理を行い、予測画像を生成する。動き補償装置１１３は、動き予測装置１１６から供給されるコスト関数値（詳細は後述する）と、生成された予測画像とを選択装置１１７に供給する。
【００３１】
なお、コスト関数値は、RD(Rate Distortion)コストともいい、例えば、AVC方式における参照ソフトウェアであるJM(Joint Model)で定められているような、High Complexity モードか、Low Complexity モードのいずれかの手法に基づいて算出される。
【００３２】
具体的には、コスト関数値の算出手法としてHigh Complexity モードが採用される場合、候補となる全ての予測モードに対して、仮に可逆符号化までが行われ、次の式（１）で表わされるコスト関数値が各予測モードに対して算出される。
【００３３】
Cost(Mode)=D＋λ・R                                          ・・・（１）
【００３４】
Dは、原画像と復号画像の差分（歪）、Rは、直交変換の係数まで含んだ発生符号量、λは、量子化パラメータQPの関数として与えられるラグランジュ乗数である。
【００３５】
一方、コスト関数値の算出手法としてLow Complexity モードが採用される場合、候補となる全ての予測モードに対して、復号画像の生成、および、予測モードを示す情報などのヘッダビットの算出が行われ、次の式（２）で表わされるコスト関数が各予測モードに対して算出される。
【００３６】
Cost(Mode)=D＋QPtoQuant(QP)・Header_Bit                      ・・・（２）
【００３７】
Dは、原画像と復号画像の差分（歪）、Header_Bitは、予測モードに対するヘッダビット、QPtoQuantは、量子化パラメータQPの関数として与えられる関数である。
【００３８】
Low Complexity モードにおいては、全ての予測モードに対して、復号画像を生成するだけでよく、可逆符号化を行う必要がないため、演算量が少なくて済む。なお、ここでは、コスト関数値の算出手法としてHigh Complexity モードが採用されるものとする。
【００３９】
イントラ予測装置１１４は、画面並べ替えバッファ１０２から読み出された画像と、加算装置１１０から供給された参照画像とに基づいて、候補となる全てのブロックサイズのブロック単位で、候補となる全てのイントラ予測モードのイントラ予測処理を行い、予測画像を生成する。
【００４０】
また、イントラ予測装置１１４は、候補となる全てのイントラ予測モードおよびブロックサイズに対してコスト関数値を算出する。そして、イントラ予測装置１１４は、コスト関数値が最小となるイントラ予測モードおよびブロックサイズの組み合わせを最適イントラ予測モードに決定する。イントラ予測装置１１４は、最適イントラ予測モードで生成された予測画像、および、対応するコスト関数値を、選択装置１１７に供給する。イントラ予測装置１１４は、選択装置１１７から最適イントラ予測モードで生成された予測画像の選択が通知された場合、イントラ予測モード情報を可逆符号化装置１０６に供給する。
【００４１】
動き予測装置１１６は、画面並べ替えバッファ１０２から供給される画像と、フレームメモリ１１２から供給される参照画像とに基づいて、候補となる全てのインター予測モードの動き予測行い、動きベクトルを生成する。このとき、動き予測装置１１６は、候補となる全てのインター予測モードに対してコスト関数値を算出し、コスト関数値が最小となるインター予測モードを最適インター測モードに決定する。そして、動き予測装置１１６は、インター予測モード情報、並びに、対応する動きベクトルおよびコスト関数値を動き補償装置１１３に供給する。動き予測装置１１６は、選択装置１１７から最適インター予測モードで生成された予測画像の選択が通知された場合、インター予測モード情報、対応する動きベクトルの情報などを可逆符号化装置１０６に出力する。
【００４２】
選択装置１１７は、イントラ予測装置１１４および動き補償装置１１３から供給されるコスト関数値に基づいて、最適イントラ予測モードと最適インター予測モードのうちのいずれかを、最適予測モードに決定する。そして、選択装置１１７は、最適予測モードの予測画像を、演算装置１０３および加算装置１１０に供給する。また、選択装置１１７は、最適予測モードの予測画像の選択をイントラ予測装置１１４または動き予測装置１１６に通知する。
【００４３】
レート制御装置１１５は、蓄積バッファ１０７に蓄積された画像圧縮情報に基づいて、オーバーフローあるいはアンダーフローが発生しないように、量子化装置１０５の量子化動作のレートを制御する。
【００４４】
［復号装置の構成例］
図３は、図２のエンコーダに対応するAVC方式のデコーダのブロック図である。
【００４５】
図３のデコーダは、蓄積バッファ２１６、可逆復号化装置２１７、逆量子化装置２１８、逆直交変換装置２１９、加算装置２２０、画面並べ替えバッファ２２１、D/A変換装置２２２、フレームメモリ２２３、動き補償装置２２４、イントラ予測装置２２５、デブロックフィルタ２２６、およびスイッチ２２７により構成されている。
【００４６】
蓄積バッファ２１６は、図２のエンコーダより伝送されてきた画像圧縮情報を蓄積する。可逆復号化装置２１７は、蓄積バッファ２１６から画像圧縮情報を読み出して取得し、その画像圧縮情報を図２の可逆符号化装置１０６の可逆符号化方式に対応する方式で可逆復号化する。
【００４７】
具体的には、可逆復号化装置２１７は、画像圧縮情報のうちのヘッダ情報を可逆復号し、イントラ予測モード情報、インター予測モード情報、動きベクトル情報などを取得する。また、可逆復号化装置２１７は、画像圧縮情報のうちの圧縮画像を可逆復号する。
【００４８】
また、可逆復号化装置２１７は、圧縮画像を可逆復号した結果得られる量子化された係数を逆量子化装置２１８に供給する。可逆復号化装置２１７は、可逆復号の結果得られるイントラ予測モード情報をイントラ予測装置２２５に供給し、インター予測モード情報、動きベクトル情報などを動き補償装置２２４に供給する。
【００４９】
逆量子化装置２１８は、図２の逆量子化装置１０８と同様に構成され、可逆復号化装置２１７から供給される量子化された係数を、図２の量子化装置１０５の量子化方式に対応する方式で逆量子化する。逆量子化装置２１８は、逆量子化の結果得られる係数を逆直交変換装置２１９に供給する。
【００５０】
逆直交変換装置２１９は、図２の逆直交変換装置１０９と同様に、逆量子化装置２１８から供給される係数に対して、ブロックサイズに応じた逆直交変換処理を行う。逆直交変換装置２１９は、逆直交変換処理の結果得られる残差情報を加算装置２２０に供給する。
【００５１】
加算装置２２０は、逆直交変換装置２１９から供給される残差情報を、必要に応じて、スイッチ２２７から供給される予測画像と加算し、復号する。加算装置２２０は、その結果得られるデコード画像をイントラ予測装置２２５とデブロックフィルタ２２６に供給する。
【００５２】
デブロックフィルタ２２６は、加算装置２２０から供給されるデコード画像をフィルタリングすることによりブロック歪を除去する。デブロックフィルタ２２６は、その結果得られる画像をフレームメモリ２２３に供給し、蓄積させるとともに、画面並べ替えバッファ２２１に出力する。
【００５３】
画面並べ替えバッファ２２１は、デブロックフィルタ２２６から供給される画像の並べ替えを行う。具体的には、図２の画面並べ替えバッファ１０２により符号化するための順番に並べ替えられた画像の順番が、元の表示の順番に並べ替えられる。D/A変換装置２２２は、画面並べ替えバッファ２２１により並べ替えられた画像をD/A変換し、図示せぬディスプレイに出力信号として出力し、表示させる。
【００５４】
フレームメモリ２２３は、蓄積している画像を参照画像として読み出し、動き補償装置２２４に出力する。
【００５５】
イントラ予測装置２２５は、可逆復号化装置２１７から供給されるイントラ予測モード情報に基づいて、そのイントラ予測モード情報が示す最適イントラ予測モードのイントラ予測処理を行い、予測画像を生成する。イントラ予測装置２２５は、予測画像をスイッチ２２７に供給する。
【００５６】
動き補償装置２２４は、可逆復号化装置２１７から供給されるインター予測モード情報、動きベクトル情報などに基づいて、フレームメモリ２２３から供給される参照画像に動き補償処理を行い、予測画像を生成する。動き補償装置２２４は、予測画像をスイッチ２２７に供給する。
【００５７】
スイッチ２２７は、動き補償装置２２４またはイントラ予測装置２２５により生成された予測画像を選択し、加算装置２２０に供給する。
【００５８】
［直交変換処理と逆直交変換処理の説明］
まず、図４は、直交変換処理としてDCTとROTを行う場合の従来のエンコーダの直交変換装置、量子化装置、逆量子化装置、および逆直交変換装置を示すブロック図である。
【００５９】
図４に示すように、従来のエンコーダの直交変換装置は、４×４DCT４１１，８×８DCT４１２，１６×１６DCT４１３，３２×３２DCT４１４，６４×６４DCT４１５，１２８×１２８DCT４１６，４×４ROT４１７、および８×８ROT４１８により構成される。
【００６０】
４×４DCT４１１，８×８DCT４１２，１６×１６DCT４１３，３２×３２DCT４１４，６４×６４DCT４１５、および１２８×１２８DCT４１６には、残差情報がブロックサイズに応じて入力され、DCTされる。
【００６１】
具体的には、４×４DCT４１１は、４×４画素の残差情報に対してDCTを行い、その結果得られる４×４画素の係数の演算精度を丸めて、４×４ROT４１７に供給する。
【００６２】
８×８DCT４１２は、８×８画素の残差情報に対してDCTを行い、その結果得られる８×８画素の係数の演算精度を丸めて、８×８ROT４１８に供給する。１６×１６DCT４１３は、１６×１６画素の残差情報に対してDCTを行い、その結果得られる１６×１６画素の係数の演算精度を丸める。１６×１６DCT４１３は、その結果得られる１６×１６画素の係数のうちの８×８画素の低周波数成分を８×８ROT４１８に供給し、残りの高周波数成分を量子化装置に供給する。
【００６３】
同様に、３２×３２DCT４１４，６４×６４DCT４１５、および１２８×１２８DCT４１６は、それぞれ、３２×３２画素，６４×６４画素，１２８×１２８画素の残差情報に対してDCTを行い、その結果得られる係数の演算精度を丸める。そして、３２×３２DCT４１４，６４×６４DCT４１５、および１２８×１２８DCT４１６は、その結果得られる係数のうちの８×８画素の低周波数成分だけ８×８ROT４１８に供給し、残りの高周波数成分を量子化装置に供給する。
【００６４】
４×４ROT４１７は、４×４DCT４１１から供給される４×４画素の係数に対して、角度インデックス（index）を用いてROTを行う。
【００６５】
なお、ROTとは、以下の式（１）に示す垂直方向の回転行列Rｖｅｒｔｉｃａｌおよび水平方向の回転行列Rｈｏｒｉｚｏｎｔａｌを用いた回転変換であり、角度インデックスとは、式（１）におけるα１乃至α６である。
【００６６】
【数１】
2012039590.tif 000003
【００６７】
８×８ROT４１８は、８×８DCT４１２，１６×１６DCT４１３，３２×３２DCT４１４，６４×６４DCT４１５、および１２８×１２８DCT４１６から供給される８×８画素の係数に対して、角度インデックスを用いてROTを行う。
【００６８】
４×４ROT４１７によるROTの結果得られる４×４画素の係数および８×８ROT４１８によるROTの結果得られる８×８画素の係数は、それぞれ、演算精度が丸められ、量子化装置に供給される。
【００６９】
量子化装置は、４×４Quant４１９，８×８Quant４２０，１６×１６Quant４２１，３２×３２Quant４２２，６４×６４Quant４２３、および１２８×１２８Quant４２４により構成される。
【００７０】
４×４Quant４１９は、４×４ROT４１７から供給される４×４画素の係数を量子化する。４×４Quant４１９は、量子化された４×４画素の係数を逆量子化装置に供給するとともに、図２の可逆符号化装置１０６と同様の図示せぬ可逆符号化装置に供給する。
【００７１】
８×８Quant４２０は、８×８ROT４１８から供給される８×８画素の係数を量子化する。８×８Quant４２０は、量子化された８×８画素の係数を逆量子化装置に供給するとともに、可逆符号化装置１０６と同様の図示せぬ可逆符号化装置に供給する。
【００７２】
１６×１６Quant４２１は、８×８ROT４１８から供給される８×８画素の係数と、１６×１６DCT４１３から供給される、１６×１６画素の残差情報に対するDCTの結果得られる係数のうちの８×８画素の低周波数成分以外の高周波数成分とを量子化する。１６×１６Quant４２１は、量子化された１６×１６画素の係数を逆量子化装置に供給するとともに、可逆符号化装置１０６と同様の図示せぬ可逆符号化装置に供給する。
【００７３】
同様に、３２×３２Quant４２２，６４×６４Quant４２３、および１２８×１２８Quant４２４は、それぞれ、８×８ROT４１８から供給される８×８画素の係数と、３２×３２画素，６４×６４画素，１２８×１２８画素の残差情報に対するDCTの結果得られる係数のうちの８×８画素の低周波数成分以外の高周波数成分とを量子化する。３２×３２Quant４２２，６４×６４Quant４２３、および１２８×１２８Quant４２４は、それぞれ、量子化された３２×３２画素，６４×６４画素，１２８×１２８画素の係数を逆量子化装置に供給するとともに、可逆符号化装置１０６と同様の図示せぬ可逆符号化装置に供給する。
【００７４】
逆量子化装置は、４×４Inv Quant４５１，８×８Inv Quant４５２，１６×１６Inv Quant４５３，３２×３２Inv Quant４５４，６４×６４Inv Quant４５５、および１２８×１２８Inv Quant４５６により構成される。
【００７５】
４×４Inv Quant４５１，８×８Inv Quant４５２，１６×１６Inv Quant４５３，３２×３２Inv Quant４５４，６４×６４Inv Quant４５５、および１２８×１２８Inv Quant４５６は、それぞれ、４×４Quant４１９，８×８Quant４２０，１６×１６Quant４２１，３２×３２Quant４２２，６４×６４Quant４２３，１２８×１２８Quant４２４から供給される量子化された係数を逆量子化し、逆直交変換装置に供給する。
【００７６】
逆直交変換装置は、４×４Inv ROT４５７，８×８Inv ROT４５８，４×４Inv DCT４５９，８×８Inv DCT４６０，１６×１６Inv DCT４６１，３２×３２Inv DCT４６２，６４×６４Inv DCT４６３、および１２８×１２８Inv DCT４６４により構成される。
【００７７】
４×４Inv ROT４５７は、４×４Inv Quant４５１から供給される逆量子化された４×４画素の係数に対して、角度インデックスを用いて逆ROTを行う。４×４Inv ROT４５７は、その結果得られる４×４画素の係数を４×４Inv DCT４５９に供給する。
【００７８】
８×８Inv ROT４５８は、８×８Inv Quant４５２から供給される逆量子化された８×８画素の係数に対して、角度インデックスを用いて逆ROTを行い、その結果得られる８×８画素の係数を８×８Inv DCT４６０に供給する。
【００７９】
また、８×８Inv ROT４５８は、１６×１６Inv Quant４５３から供給される逆量子化された１６×１６画素の係数のうちの８×８画素の低周波数成分に対して、角度インデックスを用いて逆ROTを行う。そして、８×８Inv ROT４５８は、逆ROTの結果得られる８×８画素の係数を１６×１６Inv DCT４６１に供給する。
【００８０】
同様に、８×８Inv ROT４５８は、３２×３２Inv Quant４５４，６４×６４Inv Quant４５５、および１２８×１２８Inv Quant４５６から供給される逆量子化された３２×３２画素，６４×６４画素，１２８×１２８画素の係数のうちの８×８画素の低周波数成分に対して、角度インデックスを用いて逆ROTを行う。そして、８×８Inv ROT４５８は、逆量子化された３２×３２画素，６４×６４画素，１２８×１２８画素の係数のうちの８×８画素の低周波数成分に対する逆ROTの結果得られる８×８画素の係数を、３２×３２Inv DCT４６２，６４×６４Inv DCT４６３，１２８×１２８Inv DCT４６４に供給する。
【００８１】
４×４Inv DCT４５９は、４×４Inv Rot４５７から供給される４×４画素の係数に対して逆DCTを行う。４×４Inv DCT４５９は、その結果得られる４×４画素の残差情報を図２の加算装置１１０と同様の図示せぬ加算装置に供給する。
【００８２】
８×８Inv DCT４６０は、８×８Inv Rot４５８から供給される８×８画素の係数に対して逆DCTを行う。８×８Inv DCT４６０は、その結果得られる８×８画素の残差情報を加算装置１１０と同様の図示せぬ加算装置に供給する。１６×１６Inv DCT４６１は、８×８Inv Rot４５８から供給される８×８画素の係数と、１６×１６Inv Quant４５３から供給される１６×１６画素の係数のうちの８×８画素の低周波数成分以外の高周波数成分とに対して逆DCTを行う。１６×１６Inv DCT４６１は、その結果得られる１６×１６画素の残差情報を加算装置１１０と同様の図示せぬ加算装置に供給する。
【００８３】
同様に、３２×３２Inv DCT４６２，６４×６４Inv DCT４６３、および１２８×１２８Inv DCT４６４は、それぞれ、８×８Inv Rot４５８から供給される８×８画素の係数と、３２×３２Inv Quant４５４，６４×６４Inv Quant４５５，１２８×１２８Inv Quant４５６から供給される係数のうちの８×８画素の低周波数成分以外の高周波数成分とに対して逆DCTを行う。３２×３２Inv DCT４６２，６４×６４Inv DCT４６３、および１２８×１２８Inv DCT４６４は、それぞれ、逆DCTの結果得られる３２×３２画素，６４×６４画素，１２８×１２８画素の残差情報を加算装置１１０と同様の図示せぬ加算装置に供給する。
【００８４】
以上のようにして図示せぬ加算装置に残差情報が入力されることにより、復号後の画像が得られる。
【００８５】
次に、図５は、図２のエンコーダの直交変換装置１０４、量子化装置１０５、逆量子化装置１０８、および逆直交変換装置１０９の詳細を示すブロック図である。
【００８６】
なお、図５に示す構成のうち、図４の構成と同じ構成には同じ符号を付してある。重複する説明については適宜省略する。
【００８７】
図５の構成は、主に、直交変換装置１０４において４×４DCT４１１と４×４ROT４１７の代わりに４×４DCT×ROT５０１が設けられている点、逆直交変換装置１０９において４×４Inv ROT４５７と４×４Inv DCT４５９の代わりに４×４Inv ROT×Inv DCT５０２が設けられている点が図４の構成と異なる。
【００８８】
直交変換装置１０４の４×４DCT×ROT５０１は、角度インデックスを用いて、図２の演算装置１０３から供給される４×４画素の残差情報に対してDCTとROTを合成した変換を行う。具体的には、４×４DCT×ROT５０１は、角度インデックスに応じたDCTとROTを合成した変換のための行列を予め用意しており、４×４DCT×ROT５０１は、その行列を用いた１回の変換で、DCTおよびROT後の４×４画素の係数を得る。４×４DCT×ROT５０１は、その４×４画素の係数の演算精度を丸め、４×４Quant４１９に供給する。
【００８９】
なお、DCTとROTは直交変換の一種であり、通常、行列演算により行われる。従って、DCTとROTを合成した変換のための行列とは、DCTの行列演算で用いられる行列とROTの行列演算で用いられる行列の積によって得られる行列である。
【００９０】
以上のように、直交変換装置１０４では、４×４画素の残差情報に対して１回の変換でDCTとROTを行うことができるので、図４の直交変換装置に比べて直交変換処理の演算量を削減することができる。また、DCT後の演算精度の丸めが必要なくなり、図４の直交変換装置に比べて演算精度を高めることができる。従って、図４の４×４ROT４１７の出力と図５の４×４DCT×ROT５０１の出力は同一ではない。
【００９１】
また、逆直交変換装置１０９の４×４Inv ROT×Inv DCT５０２は、角度インデックスを用いて、４×４Inv Quant４５１から供給される４×４画素の係数に対して逆DCTと逆ROTを合成した変換を行う。具体的には、４×４Inv ROT×Inv DCT５０２は、角度インデックスに応じた逆DCTと逆ROTを合成した変換のための行列を予め用意しており、４×４Inv ROT×Inv DCT５０２は、その行列を用いた１回の変換で、逆DCTおよび逆ROT後の４×４画素の残差情報を得る。なお、逆DCTと逆ROTを合成した変換は、４×４DCT×ROT５０１で行われる変換の逆変換である。４×４Inv ROT×Inv DCT５０２は、変換の結果得られる４×４画素の残差情報を図２の加算装置１１０に供給する。
【００９２】
以上のように、逆直交変換装置１０９では、４×４画素の係数に対して１回の変換で逆DCTと逆ROTを行うことができるので、図４の逆直交変換装置に比べて逆直交変換処理の演算量を削減することができる。また、逆ROT後の演算精度の丸めが必要なくなり、図４の逆直交変換装置に比べて演算精度を高めることができる。従って、図４の４×４Inv DCT４５９の出力と図５の４×４Inv ROT×Inv DCT５０２の出力は同一ではない。
【００９３】
次に、図６は、直交変換処理としてDCTとROTを行う場合の従来のデコーダの逆量子化装置および逆直交変換装置を示すブロック図である。
【００９４】
図６の従来のデコーダの逆量子化装置は、図４の逆量子化装置と同様に構成され、図６の逆直交変換装置は、図４の逆直交変換装置と同様に構成される。
【００９５】
具体的には、図６の逆量子化装置は、４×４Inv Quant６０１，８×８Inv Quant６０２，１６×１６Inv Quant６０３，３２×３２Inv Quant６０４，６４×６４Inv Quant６０５、および１２８×１２８Inv Quant６０６により構成される。４×４Inv Quant６０１，８×８Inv Quant６０２，１６×１６Inv Quant６０３，３２×３２Inv Quant６０４，６４×６４Inv Quant６０５、および１２８×１２８Inv Quant６０６は、エンコーダから可逆符号化されて伝送されてくる画像圧縮情報を可逆復号した結果得られる量子化された係数に対して、図４の逆量子化装置と同様に逆量子化を行う。
【００９６】
また、図６の逆直交変換装置は、４×４Inv ROT６０７，８×８Inv ROT６０８，４×４Inv DCT６０９，８×８Inv DCT６１０，１６×１６Inv DCT６１１，３２×３２Inv DCT６１２，６４×６４Inv DCT６１３、および１２８×１２８Inv DCT６１４により構成される。４×４Inv ROT６０７および８×８Inv ROT６０８は、それぞれ、図４の４×４Inv ROT４５７，８×８Inv ROT４５８と同様に逆ROTを行う。また、４×４Inv DCT６０９，８×８Inv DCT６１０，１６×１６Inv DCT６１１，３２×３２Inv DCT６１２，６４×６４Inv DCT６１３、および１２８×１２８Inv DCT６１４は、それぞれ、図４の対応するブロックサイズのInv DCTと同様に、逆DCTを行う。
【００９７】
次に、図７は、図３のデコーダの逆量子化装置２１８および逆直交変換装置２１９の詳細を示すブロック図である。
【００９８】
図７の逆量子化装置２１８は、図５の逆量子化装置１０８と同様に構成され、図７の逆直交変換装置２１９は、図５の逆直交変換装置１０９と同様に構成される。
【００９９】
なお、図７に示す構成のうち、図６の構成と同じ構成には同じ符号を付してある。重複する説明については適宜省略する。
【０１００】
図７の構成は、主に、逆直交変換装置２１９において、逆直交変換装置１０９と同様に、４×４Inv ROT６０７と４×４Inv DCT６０９の代わりに４×４Inv ROT×Inv DCT７０１が設けられている点が図６の構成と異なる。
【０１０１】
逆直交変換装置２１９の４×４Inv ROT×Inv DCT７０１は、図５の４×４Inv ROT×Inv DCT５０２と同様に、角度インデックスを用いて、４×４Inv Quant６０１から供給される４×４画素の係数に対して逆DCTと逆ROTを合成した変換を行う。４×４Inv ROT×Inv DCT７０１は、変換の結果得られる４×４画素の残差情報を図３の加算装置２２０に供給する。
【０１０２】
なお、角度インデックスは、例えば、エンコーダで決定され、可逆符号化装置１０６でヘッダ情報に含められてデコーダに伝送される。
【０１０３】
本実施の形態では、４×４画素の残差情報に対するDCTとROTが１度の変換で行われるようにしたが、４×４画素だけでなく８×８画素の残差情報に対するDCTとROTも１度の変換で行われるようにしてもよい。逆DCTと逆ROTについても同様である。
【０１０４】
また、本実施の形態では、DCTの結果得られる８×８画素以上のサイズの係数については、８×８画素の低周波数成分に対してのみROTが行われるようにしたが、ROTが行われる係数の最大限のサイズは、８×８画素以外のサイズ（４×４画素、１６×１６画素等）にしてもよい。このことは、逆ROTについても同様である。
【０１０５】
[エンコーダの処理の説明]
図８、図９、図１０、図１１、及び、図１２は、図２のエンコーダの処理のフローチャートである。
【０１０６】
図８は、マクロブロック（ＭＢ）のエンコード処理を説明するフローチャートである。
【０１０７】
図８のステップＳ１１において、エンコーダは、インター予測を用いた時のＲＤコスト（Ｐ）を算出する。インター予測を用いた時のＲＤコスト（Ｐ）を算出する処理の詳細は、後述する図９を参照して説明する。
【０１０８】
ステップＳ１２において、エンコーダは、イントラ予測を用いた時のＲＤコスト（Ｉ）を算出する。イントラ予測を用いた時のＲＤコスト（Ｉ）を算出する処理の詳細は、後述する図１２を参照して説明する。
【０１０９】
ステップＳ１３において、選択装置１１７は、ＲＤコスト（Ｉ）がＲＤコスト（Ｐ）より大きいかどうかを判定する。
【０１１０】
ステップＳ１３でＲＤコスト（Ｉ）がＲＤコスト（Ｐ）より大きくはないと判定された場合、即ちＲＤコスト（Ｉ）がＲＤコスト（Ｐ）以下である場合、選択装置１１７は、最適イントラ予測モードを最適予測モードに決定する。そして、選択装置１１７は、最適イントラ予測モードの予測画像を、演算装置１０３および加算装置１１０に供給する。また、選択装置１１７は、最適イントラ予測モードの予測画像の選択をイントラ予測装置１１４に通知する。これにより、イントラ予測装置１１４は、イントラ予測モード情報を可逆符号化装置１０６に供給する。
【０１１１】
そして、ステップＳ１４において、エンコーダは、処理対象のマクロブロック（当該ＭＢ）を最適イントラ予測モードのイントラ予測で符号化する。具体的には、エンコーダの演算装置１０３が、画面並べ替えバッファ１０２から読み出された画像の処理対象のマクロブロックから、選択装置１１７から供給される予測画像を減算し、直交変換装置１０４が、その結果得られる残差情報を直交変換する。量子化装置１０５は、直交変換装置１０４による直交変換の結果得られる係数を量子化し、可逆符号化装置１０６は、量子化された係数を可逆符号化するとともに、イントラ予測モード情報などを可逆符号化してヘッダ情報とする。蓄積バッファ１０７は、可逆符号化の結果得られるヘッダ情報が付加された圧縮画像を、画像圧縮情報として一時的に蓄積し、出力する。
【０１１２】
一方、ステップＳ１３でＲＤコスト（Ｉ）がＲＤコスト（Ｐ）より大きいと判定された場合、選択装置１１７は、最適インター予測モードを最適予測モードに決定する。そして、選択装置１１７は、最適インター予測モードの予測画像を、演算装置１０３および加算装置１１０に供給する。また、選択装置１１７は、最適インター予測モードの予測画像の選択を動き予測装置１１６に通知する。これにより、動き予測装置１１６は、インター予測モード情報、対応する動きベクトルの情報などを可逆符号化装置１０６に出力する。
【０１１３】
そして、ステップＳ１５において、エンコーダは、処理対象のマクロブロックを最適インター予測モードのインター予測で符号化する。具体的には、エンコーダの演算装置１０３が、画面並べ替えバッファ１０２から読み出された画像の処理対象のマクロブロックから、選択装置１１７から供給される予測画像を減算し、直交変換装置１０４が、その結果得られる残差情報を直交変換する。量子化装置１０５は、直交変換装置１０４による直交変換の結果得られる係数を量子化し、可逆符号化装置１０６は、量子化された係数を可逆符号化するとともに、インター予測モード情報、動きベクトルの情報などを可逆符号化してヘッダ情報とする。蓄積バッファ１０７は、可逆符号化の結果得られるヘッダ情報が付加された圧縮画像を、画像圧縮情報として一時的に蓄積し、出力する。
【０１１４】
図９は、図８のステップＳ１１のインター予測を用いた時のＲＤコスト（Ｐ）を算出する処理の詳細を説明するフローチャートである。
【０１１５】
図９のステップＳ３１において、動き予測装置１１６は、インター予測のブロックサイズを、各インター予測モードに対応する４×４画素，８×８画素，１６×１６画素，３２×３２画素，６４×６４画素，１２８×１２８画素のうち、まだ設定されていないものに設定する。
【０１１６】
ステップＳ３２において、動き予測装置１１６は、ステップＳ３１で設定されたサイズで動き予測を行う。具体的には、動き予測装置１１６は、画面並べ替えバッファ１０２から供給される画像とフレームメモリ１１２から供給される参照画像とを用いて、ステップＳ３１で設定されたサイズのブロック単位で動き予測を行う。その結果、ブロック単位の動きベクトル（ＭＶ）が得られる。動き予測装置１１６は、その動きベクトルを動き補償装置１１３に供給する。
【０１１７】
ステップＳ３３において、動き補償装置１１３は、動き予測装置１１６から供給される動きベクトルに応じて、動き補償（ＭＣ）を行う。具体的には、動き補償装置１１３は、動きベクトルに応じて、フレームメモリ１１２から供給される参照画像から予測画像を生成する。動き補償装置１１３は、生成された予測画像を、選択装置１１７を介して演算装置１０３に供給する。
【０１１８】
ステップＳ３４において、演算装置１０３は、入力信号に対応する画像とＭＣ画像（予測画像）の差分を計算する。演算装置１０３は、計算の結果得られる差分を残差情報として直交変換装置１０４に供給する。
【０１１９】
ステップＳ３５において、直交変換装置１０４は、角度インデックスを、インデックス番号０，１，２、および３の角度インデックスのうちのまだ設定されていない角度インデックスに設定する。なお、インデックス番号とは、角度インデックスα１乃至α６の組み合わせに固有の番号であり、本実施の形態では、０乃至３の番号の４種類の角度インデックスの組み合わせが用意されている。
【０１２０】
ステップＳ３６において、直交変換装置１０４は、演算装置１０３から供給される残差情報（差分情報）に対して角度インデックスに応じてROTを行う処理であるROT処理等を施す。ステップＳ３６の処理の詳細は、後述する図１０を参照して説明する。
【０１２１】
ステップＳ３７において、量子化装置１０５は、ステップＳ３６でROT処理等が施された結果得られる係数に対して量子化する処理である量子化処理を施す。具体的には、量子化装置１０５のインター予測のブロックサイズに対応する４×４Quant４１９，８×８Quant４２０，１６×１６Quant４２１，３２×３２Quant４２２，６４×６４Quant４２３、または１２８×１２８Quant４２４が、直交変換装置１０４から供給される係数を量子化する。量子化装置１０５は、量子化処理の結果得られる係数を可逆符号化装置１０６と逆量子化装置１０８に供給する。
【０１２２】
ステップＳ３８において、可逆符号化装置１０６は、量子化装置１０５から供給される係数（量子化後係数）を可逆符号化し、圧縮画像を得る。
【０１２３】
ステップＳ３９において、逆量子化装置１０８は、量子化装置１０５から供給される係数に対して逆量子化する処理である逆量子化処理を施す。具体的には、逆量子化装置１０８のインター予測のブロックサイズに対応する４×４Inv Quant４５１，８×８Inv Quant４５２，１６×１６Inv Quant４５３，３２×３２Inv Quant４５４，６４×６４Inv Quant４５５、または１２８×１２８Inv Quant４５６が、量子化装置１０５から供給される係数を逆量子化する。逆量子化処理の結果得られる係数は、逆直交変換装置１０９に供給される。
【０１２４】
ステップＳ４０において、逆直交変換装置１０９は、残差情報（差分情報）に対応する係数に対して、ステップＳ３５で設定された角度インデックスに応じて、逆ROTを行う処理である逆ROT処理等を施す。ステップＳ４０の処理の詳細は、後述する図１１を参照して説明する。
【０１２５】
ステップＳ４０の処理後、処理はステップＳ３５に戻り、インデックス番号０乃至３の角度インデックスの全てが角度インデックスに設定されるまで、ステップＳ３５乃至Ｓ４０の処理が繰り返される。そして、インデックス番号０乃至３の角度インデックスの全てが角度インデックスに設定されると、処理はステップＳ３１に戻る。そして、４×４画素，８×８画素，１６×１６画素，３２×３２画素，６４×６４画素、および１２８×１２８画素の全てのサイズがインター予測のブロックサイズに設定されるまで、ステップＳ３１乃至Ｓ４０の処理が繰り返される。
【０１２６】
そして、４×４画素，８×８画素，１６×１６画素，３２×３２画素，６４×６４画素、および１２８×１２８画素の全てのサイズがインター予測のブロックサイズに設定され、各ブロックサイズのインター予測のブロックに対して、インデックス番号０乃至３の角度インデックスの全てが角度インデックスとして設定された場合、処理はステップＳ４１に進む。
【０１２７】
ステップＳ４１において、動き予測装置１１６は、インター予測モードと角度インデックスの組み合わせごとに、ＭＶ情報、量子化後符号情報、デコード画像からＲＤコストを計算する。具体的には、動き予測装置１１６は、インター予測モードと角度インデックスの組み合わせごとに、動きベクトルとフレームメモリ１１２から供給される参照画像を用いて予測画像を生成する。そして、動き予測装置１１６は、その予測画像と画面並べ替えバッファ１０２から供給される画像との差分を演算する。そして、動き予測装置１１６は、その差分、ステップＳ３８の処理により得られる圧縮画像の発生符号量などを用いて、上述した式（１）を演算し、ＲＤコストを算出する。
【０１２８】
そして、動き予測装置１１６により、インター予測のブロックサイズに対応するインター予測モードと角度インデックスの組み合わせごとのＲＤコストから最も小さかったＲＤコストがＲＤコスト（Ｐ）として使われる。即ち、動き予測装置１１６は、インター予測モードと角度インデックスの組み合わせごとのＲＤコストのうちの最も小さかったＲＤコストであるＲＤコスト（Ｐ）と、対応する動きベクトルおよびインター予測モード情報を動き補償装置１１３に供給する。
【０１２９】
これにより、動き補償装置１１３は、動き予測装置１１６から供給される動きベクトルとインター予測モード情報に基づいて、フレームメモリ１１２から供給される参照画像に対して補償処理を行い、予測画像を生成する。そして、動き補償装置１１３は、動き予測装置１１６から供給されるＲＤコスト（Ｐ）と、生成された予測画像とを選択装置１１７に供給する。
【０１３０】
図１０は、図９のステップＳ３６の処理の詳細を説明するフローチャートである。
【０１３１】
図１０のステップＳ５１において、直交変換装置１０４は、インター予測のブロックサイズが４×４画素であるかどうかを判定する。
【０１３２】
ステップＳ５１でインター予測のブロックサイズが４×４画素であると判定された場合、ステップＳ５２において、直交変換装置１０４は、角度インデックスに応じてROT×DCT処理を施す。具体的には、直交変換装置１０４の４×４DCT×ROT５０１(図５)は、図９のステップＳ３５で設定された角度インデックスに応じて、演算装置１０３から供給される残差情報に対して、DCTとROTを合成した変換を行う。４×４DCT×ROT５０１は、変換の結果得られる係数を量子化装置１０５の４×４Quant４１９に供給する。
【０１３３】
ステップＳ５１でインター予測のブロックサイズが４×４画素ではないと判定された場合、ステップＳ５３において、直交変換装置１０４は、演算装置１０３から供給される残差情報に対して、DCTを行う処理であるDCT処理を施す。具体的には、直交変換装置１０４のインター予測のブロックサイズに対応する８×８DCT４１２，１６×１６DCT４１３，３２×３２DCT４１４，６４×６４DCT４１５、または１２８×１２８DCT４１６が、残差情報に対してDCTを行う。DCTの結果得られる係数のうちの８×８画素の低周波数成分は、８×８ROT４１８に供給され、残りの高周波数成分は、インター予測のブロックサイズに対応する１６×１６Quant４２１，３２×３２Quant４２２，６４×６４Quant４２３、または１２８×１２８Quant４２４に供給される。
【０１３４】
ステップＳ５４において、直交変換装置１０４の８×８ROT４１８は、低周波数成分の８×８画素（８×８サイズ）の係数に対して、図９のステップＳ３５で設定された角度インデックスに応じてROT処理を施す。８×８ROT４１８は、ROT処理の結果得られる８×８画素の係数を、イントラ予測のブロックサイズに対応する８×８Quant４２０，１６×１６Quant４２１，３２×３２Quant４２２，６４×６４Quant４２３、または１２８×１２８Quant４２４に供給する。
【０１３５】
図１１は、図９のステップＳ４０の処理を詳細に説明するフローチャートである。
【０１３６】
図１１のステップＳ７１において、逆直交変換装置１０９は、インター予測のブロックサイズが４×４画素であるかどうかを判定する。
【０１３７】
ステップＳ７１でインター予測のブロックサイズが４×４画素であると判定された場合、ステップＳ７２において、逆直交変換装置１０９は、角度インデックスに応じて逆ROT×DCT処理を施す。具体的には、逆直交変換装置１０９の４×４Inv ROT×Inv DCT５０２(図５)は、図９のステップＳ３５で設定された角度インデックスに応じて、逆量子化装置１０８の４×４Inv Quant４５１から供給される係数に対して、逆ROTと逆DCTを合成した変換を行う。４×４Inv ROT×Inv DCT５０２は、変換の結果得られる残差情報を加算装置１１０に供給する。
【０１３８】
ステップＳ７１でインター予測のブロックサイズが４×４画素ではないと判定された場合、処理はステップＳ７３に進む。ステップＳ７３において、逆直交変換装置１０９の８×８Inv ROT４５８(図７)は、逆量子化装置１０８から供給される８×８画素以上のサイズの係数のうちの低周波数成分の８×８画素（８×８サイズ）の係数に対して、図９のステップＳ３５で設定された角度インデックスに応じて、逆ROTを行う処理である逆ROT処理を施す。８×８Inv ROT４５８は、逆ROT処理の結果得られる係数を、インター予測のブロックサイズに対応する８×８Inv DCT４６０，１６×１６Inv DCT４６１，３２×３２Inv DCT４６２，６４×６４Inv DCT４６３、または１２８×１２８Inv DCT４６４に供給する。
【０１３９】
ステップＳ７４において、逆直交変換装置１０９の８×８Inv DCT４６０，１６×１６Inv DCT４６１，３２×３２Inv DCT４６２，６４×６４Inv DCT４６３、または１２８×１２８Inv DCT４６４は、８×８Inv ROT４５８から供給される係数と逆量子化装置１０８から供給される係数に対して、逆DCTを行う処理である逆DCT処理を施す。逆DCT処理の結果得られる残差情報は、加算装置１１０に供給される。
【０１４０】
図１２は、図８のステップＳ１２のイントラ予測を用いた時のＲＤコスト（Ｉ）を算出する処理を詳細に説明するフローチャートである。
【０１４１】
図１２のステップＳ１０１において、イントラ予測装置１１４は、イントラ予測のブロックサイズを４×４画素，８×８画素，１６×１６画素，３２×３２画素，６４×６４画素、および１２８×１２８画素のうち、まだ設定されていないものに設定する。
【０１４２】
ステップＳ１０２において、イントラ予測装置１１４は、イントラ予測モード（Intra direction mode）を、イントラ予測モード番号が０，１，２，３，４，５，６，７、または８であるイントラ予測モードのうち、まだ設定されていないものに設定する。なお、イントラ予測モード番号とは、イントラ予測モードに固有の番号であり、本実施の形態では、０乃至８の番号の８種類のイントラ予測モードが用意されている。
【０１４３】
ステップＳ１０３において、イントラ予測装置１１４は、ステップＳ１０１で設定されたブロックサイズおよびイントラ予測モードで動き予測を行う。具体的には、イントラ予測装置１１４は、画面並べ替えバッファ１０２から供給される画像と加算装置１１０から供給される参照画像とを用いて、ステップＳ１０１で設定されたブロックサイズのブロック単位で、設定されたイントラ予測モードのイントラ予測処理を行い、予測画像を生成する。イントラ予測装置１１４は、生成された予測画像を、選択装置１１７を介して演算装置１０３に供給する。
【０１４４】
ステップＳ１０４において、演算装置１０３は、入力信号に対応する画像とイントラ予測画像（イントラ予測処理により生成された予測画像）の差分を計算する。演算装置１０３は、計算の結果得られる差分を残差情報として直交変換装置１０４に供給する。
【０１４５】
ステップＳ１０５乃至Ｓ１１０の処理は、図９のステップＳ３５乃至Ｓ４０の処理と同様であるので、説明は省略する。
【０１４６】
ステップＳ１１０の処理後、処理はステップＳ１０５に戻り、インデックス番号０乃至３の角度インデックスの全てが角度インデックスに設定されるまで、ステップＳ１０５乃至Ｓ１１０の処理が繰り返される。そして、インデックス番号０乃至３の角度インデックスの全てが角度インデックスに設定されると、処理はステップＳ１０２に戻る。そして、イントラ予測モード番号０乃至８のイントラ予測モードの全てがイントラ予測モードに設定されるまで、ステップＳ１０２乃至Ｓ１１０の処理が繰り返される。
【０１４７】
そして、イントラ予測モード番号０乃至８の全てがイントラ予測モードに設定されると、処理はステップＳ１０１に戻る。そして、４×４画素，８×８画素，１６×１６画素，３２×３２画素，６４×６４画素、および１２８×１２８画素の全てのサイズがイントラ予測のブロックサイズに設定されるまで、ステップＳ１０１乃至Ｓ１１０の処理が繰り返される。
【０１４８】
そして、４×４画素，８×８画素，１６×１６画素，３２×３２画素，６４×６４画素、および１２８×１２８画素の全てのサイズがイントラ予測のブロックサイズに設定され、各ブロックサイズのブロックに対して、インデックス番号０乃至３の角度インデックスの全てが角度インデックスとして設定され、かつ、イントラ予測モード０乃至８のイントラ予測モードの全てがイントラ予測モードとして設定された場合、処理はステップＳ１１１に進む。
【０１４９】
ステップＳ１１１において、イントラ予測装置１１４は、イントラ予測のブロックサイズ、イントラ予測モード、および角度インデックスの組み合わせごとに、量子化後符号情報、デコード画像からＲＤコストを計算する。具体的には、イントラ予測装置１１４は、イントラ予測のブロックサイズ、イントラ予測モード、および角度インデックスの組み合わせごとに、フレームメモリ１１２から供給される参照画像を用いて予測画像を生成する。そして、イントラ予測装置１１４は、その予測画像と画面並べ替えバッファ１０２から供給される画像との差分を演算する。そして、動き予測装置１１６は、その差分、ステップＳ１０８の処理により得られる圧縮画像の発生符号量などを用いて、上述した式（１）を演算し、ＲＤコストを算出する。
【０１５０】
そして、イントラ予測装置１１４により、イントラ予測のブロックサイズ、イントラ予測モード、および角度インデックスの組み合わせごとのＲＤコストから最も小さかったＲＤコストがＲＤコスト（Ｉ）として使われる。即ち、イントラ予測装置１１４は、イントラ予測のブロックサイズ、イントラ予測モード、および角度インデックスの組み合わせごとのＲＤコストのうちの最も小さかったＲＤコストであるＲＤコスト（Ｉ）と、対応する予測画像を選択装置１１７に供給する。
【０１５１】
図１３、図１４、及び、図１５は、図３のデコーダの処理のフローチャートである。
【０１５２】
図１３は、マクロブロック（ＭＢ）のデコード処理を説明するフローチャートである。
【０１５３】
図１３のステップＳ１２１において、可逆復号化装置２１７は、蓄積バッファ２１６から処理対象のマクロブロックの画像圧縮情報を読み出して取得し、その画像圧縮情報を図２の可逆符号化装置１０６の可逆符号化方式に対応する方式で可逆復号化する。この可逆復号化によって処理対象のマクロブロックの最適予測モードを示す情報として、イントラ予測モード情報またはインター予測モード情報が取り出される。
【０１５４】
ステップＳ１２２において、可逆復号化装置２１７は、ステップＳ１２１で取り出された最適予測モードを示す情報が、イントラ予測モード情報であるかどうかを判定する。ステップＳ１２２でイントラ予測モード情報であると判定された場合、ステップＳ１２３において、デコーダは、処理対象のマクロブロック（当該ＭＢ）を、イントラ予測で復号化する。ステップＳ１２３の処理の詳細は、後述する図１５を参照して説明する。
【０１５５】
一方、ステップＳ１２２でイントラ予測モード情報ではないと判定された場合、即ちステップＳ１２１で取り出された最適予測モードを示す情報が、インター予測モード情報である場合、処理はステップＳ１２４に進む。
【０１５６】
ステップＳ１２４において、デコーダは、処理対象のマクロブロックを、インター予測で復号化する。ステップＳ１２４の処理の詳細は、後述する図１４を参照して説明する。
【０１５７】
図１４は、図１３のステップＳ１２４の処理の詳細を説明するフローチャートである。  
【０１５８】
図１４のステップＳ１４１において、可逆復号化装置２１７は、蓄積バッファ２１６から取得された画像圧縮情報（ストリーム情報）から、インター予測のブロックサイズ、動きベクトル（ＭＶ）、角度インデックス情報、残差情報（差分情報）に対応する量子化された係数を取り出す。具体的には、可逆復号化装置２１７は、画像圧縮情報を可逆復号化し、インター予測モード情報、動きベクトル、角度インデックス情報、および量子化された係数を得る。そして、可逆復号化装置２１７は、インター予測モード情報に対応するインター予測のブロックサイズを認識する。可逆復号化装置２１７は、インター予測モード情報に対応するブロックサイズのブロック単位で、量子化された係数を逆量子化装置２１８に供給する。また、可逆復号化装置２１７は、インター予測モード情報および動きベクトルを動き補償装置２２４に供給し、角度インデックスを逆直交変換装置２１９に供給する。
【０１５９】
ステップＳ１４２において、動き補償装置２２４は、可逆復号化装置２１７から供給されるインター予測モード情報および動きベクトルに応じて、フレームメモリ２２３から供給される参照画像に対して動き補償処理（ＭＣ処理）を施す。そして、動き補償装置２２４は、動き補償処理の結果得られる予測画像を、スイッチ２２７を介して加算装置２２０に供給する。
【０１６０】
ステップＳ１４３において、逆量子化装置２１８は、可逆復号化装置２１７から供給される量子化された係数に対して逆量子化処理を施す。具体的には、逆量子化装置２１８のインター予測のブロックサイズに対応する４×４Inv Quant６０１，８×８Inv Quant６０２，１６×１６Inv Quant６０３，３２×３２Inv Quant６０４，６４×６４Inv Quant６０５、または１２８×１２８Inv Quant６０６は、量子化された係数を逆量子化する。逆量子化装置２１８は、逆量子化処理の結果得られる係数を逆直交変換装置２１９に供給する。
【０１６１】
ステップＳ１４４において、逆直交変換装置２１９は、逆量子化装置２１８から供給される差分情報（残差情報）に対応する係数に対して、可逆復号化装置２１７から供給される角度インデックスに応じて逆ROT処理等を施す。ステップＳ１４４の処理の詳細は、図１１で説明した場合と同様であるので、説明は省略する。
【０１６２】
ステップＳ１４５において、加算装置２２０は、動き補償装置２２４からスイッチ２２７を介して供給される予測画像（予測信号）に、ステップＳ１４４の処理の結果得られる残差情報(逆ROT情報)を加えて、デコード画像を得る。このデコード画像は、イントラ予測装置２２５に供給されたり、デブロックフィルタ２２６を介してフレームメモリ２２３に供給されたり、デブロックフィルタ２２６、画面並べ替えバッファ２２１、D/A変換装置２２２を介して外部に出力されたりする。
【０１６３】
図１５は、図１３のステップＳ１２３の処理の詳細を説明するフローチャートである。
【０１６４】
図１５のステップＳ１６１において、可逆復号化装置２１７は、蓄積バッファ２１６から取得された画像圧縮情報（ストリーム情報）から、イントラ予測のブロックサイズ、イントラ予測モード、角度インデックス情報、残差情報（差分情報）に対応する量子化された係数を取り出す。具体的には、可逆復号化装置２１７は、画像圧縮情報を可逆復号化し、イントラ予測モード情報、角度インデックス情報、および量子化された係数を得る。そして、可逆復号化装置２１７は、イントラ予測モード情報からイントラ予測モードとイントラ予測のブロックサイズを認識する。可逆復号化装置２１７は、イントラ予測のブロックサイズのブロック単位で、量子化された係数を逆量子化装置２１８に供給する。また、可逆復号化装置２１７は、イントラ予測モード情報をイントラ予測装置２２５に供給し、角度インデックスを逆直交変換装置２１９に供給する。
【０１６５】
ステップＳ１６２において、イントラ予測装置２２５は、可逆復号化装置２１７から供給されるイントラ予測モード情報に応じて、加算装置２２０から供給される参照画像に対してイントラ予測処理を行う。そして、イントラ予測装置２２５は、イントラ予測処理の結果得られる予測画像を、スイッチ２２７を介して加算装置２２０に供給する。
【０１６６】
ステップＳ１６３において、逆量子化装置２１８は、図１４のステップＳ１４３の処理と同様に、可逆復号化装置２１７から供給される量子化された係数に対して逆量子化処理を施す。逆量子化装置２１８は、逆量子化処理の結果得られる係数を逆直交変換装置２１９に供給する。
【０１６７】
ステップＳ１６４において、逆直交変換装置２１９は、ステップＳ１４４の処理と同様に、逆量子化装置２１８から供給される差分情報に対応する係数に対して、可逆復号化装置２１７から供給される角度インデックスに応じて逆ROT処理等を施す。
【０１６８】
ステップＳ１６５において、加算装置２２０は、イントラ予測装置２２５からスイッチ２２７を介して供給される予測画像（予測信号）に、ステップＳ１６４の処理の結果得られる残差情報(逆ROT情報)を加えて、デコード画像を得る。このデコード画像は、イントラ予測装置２２５に供給されたり、デブロックフィルタ２２６を介してフレームメモリ２２３に供給されたり、デブロックフィルタ２２６、画面並べ替えバッファ２２１、D/A変換装置２２２を介して外部に出力されたりする。
【０１６９】
［本発明を適用したコンピュータの説明］
【０１７０】
次に、上述した一連の処理は、ハードウェアにより行うこともできるし、ソフトウェアにより行うこともできる。一連の処理をソフトウェアによって行う場合には、そのソフトウェアを構成するプログラムが、汎用のコンピュータ等にインストールされる。
【０１７１】
そこで、図１６は、上述した一連の処理を実行するプログラムがインストールされるコンピュータの一実施の形態の構成例を示している。
【０１７２】
プログラムは、コンピュータに内蔵されている記録媒体としてのハードディスク７０５やROM７０３に予め記録しておくことができる。
【０１７３】
あるいはまた、プログラムは、リムーバブル記録媒体７１１に格納（記録）しておくことができる。このようなリムーバブル記録媒体７１１は、いわゆるパッケージソフトウエアとして提供することができる。ここで、リムーバブル記録媒体７１１としては、例えば、フレキシブルディスク、CD-ROM(Compact Disc Read Only Memory)，MO(Magneto Optical)ディスク，DVD(Digital Versatile Disc)、磁気ディスク、半導体メモリ等がある。
【０１７４】
なお、プログラムは、上述したようなリムーバブル記録媒体７１１からコンピュータにインストールする他、通信網や放送網を介して、コンピュータにダウンロードし、内蔵するハードディスク７０５にインストールすることができる。すなわち、プログラムは、例えば、ダウンロードサイトから、ディジタル衛星放送用の人工衛星を介して、コンピュータに無線で転送したり、LAN(Local Area Network)、インターネットといったネットワークを介して、コンピュータに有線で転送することができる。
【０１７５】
コンピュータは、CPU(Central Processing Unit)７０２を内蔵しており、CPU７０２には、バス７０１を介して、入出力インタフェース７１０が接続されている。
【０１７６】
CPU７０２は、入出力インタフェース７１０を介して、ユーザによって、入力部７０７が操作等されることにより指令が入力されると、それに従って、ROM(Read Only Memory)７０３に格納されているプログラムを実行する。あるいは、CPU７０２は、ハードディスク７０５に格納されたプログラムを、RAM(Random Access Memory)７０４にロードして実行する。
【０１７７】
これにより、CPU７０２は、上述したフローチャートにしたがった処理、あるいは上述したブロック図の構成により行われる処理を行う。そして、CPU７０２は、その処理結果を、必要に応じて、例えば、入出力インタフェース７１０を介して、出力部７０６から出力、あるいは、通信部７０８から送信、さらには、ハードディスク７０５に記録等させる。
【０１７８】
なお、入力部７０７は、キーボードや、マウス、マイク等で構成される。また、出力部７０６は、LCD(Liquid Crystal Display)やスピーカ等で構成される。
【０１７９】
ここで、本明細書において、コンピュータがプログラムに従って行う処理は、必ずしもフローチャートとして記載された順序に沿って時系列に行われる必要はない。すなわち、コンピュータがプログラムに従って行う処理は、並列的あるいは個別に実行される処理（例えば、並列処理あるいはオブジェクトによる処理）も含む。
【０１８０】
また、プログラムは、１のコンピュータ（プロセッサ）により処理されるものであっても良いし、複数のコンピュータによって分散処理されるものであっても良い。さらに、プログラムは、遠方のコンピュータに転送されて実行されるものであっても良い。
【０１８１】
なお、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
【符号の説明】
【０１８２】
１０４  直交変換装置，  １０５  量子化装置，  １０８  逆量子化装置，  １０９  逆直交変換装置，  ２１８  逆量子化装置，  ２１９  逆直交変換装置，  ７０１  バス，  ７０２  CPU，  ７０３  ROM，  ７０４  RAM，  ７０５  ハードディスク，  ７０６  出力部，  ７０７  入力部，  ７０８  通信部，  ７０９  ドライブ，  ７１０  入出力インタフェース，  ７１１  リムーバブル記録媒体
【図１】
2012039590.tif 000004
【図２】
2012039590.tif 000005
【図３】
2012039590.tif 000006
【図４】
2012039590.tif 000007
【図５】
2012039590.tif 000008
【図６】
2012039590.tif 000009
【図７】
2012039590.tif 000010
【図８】
2012039590.tif 000011
【図９】
2012039590.tif 000012
【図１０】
2012039590.tif 000013
【図１１】
2012039590.tif 000014
【図１２】
2012039590.tif 000015
【図１３】
2012039590.tif 000016
【図１４】
2012039590.tif 000017
【図１５】
2012039590.tif 000018
【図１６】
2012039590.tif 000019