(57)【要約】  画像符号化装置は、入力画像信号のフレームを分割した複数の画素ブロックをさらに分割した複数のサブブロックに対する予測順を予め定められた複数の予測順の中から選択する第１選択部；符号化済み画素を参照して各サブブロックの第１予測信号を生成する際の該符号化済み画素の参照方法を規定する複数の予測モードの中から、第１予測信号の予測に用いる予測モードの数を選択する第２選択部；複数の予測モードの中から、第１予測信号の予測に用いるための、選択された数の予測モードを選択する第３選択部；画素ブロックに対応する第２予測信号を生成するために、選択された数の選択された予測モードを用いて、選択された予測順で第１予測信号を生成する生成部；及び予測符号化による符号化データを生成するために、画素ブロックの画像信号と第２予測信号との差を表す予測残差信号を符号化する符号化部；を含む。
2008012918.tif 000002
【特許請求の範囲】
【請求項１】
入力画像信号のフレームを分割した複数の画素ブロック毎に予測符号化を行う画像符号化方法において、
前記画素ブロックを分割した複数のサブブロックに対する予測順を予め定められた複数の予測順の中から選択すること；
符号化済み画素を参照して前記各サブブロックの第１予測信号を生成する際の該符号化済み画素の参照方法を規定する複数の予測モードの中から、前記第１予測信号の予測に用いる予測モードの数を選択すること；
前記複数の予測モードの中から、前記第１予測信号の予測に用いるための、前記選択された数の予測モードを選択すること；
前記画素ブロックに対応する第２予測信号を生成するために、前記選択された数の前記選択された予測モードを用いて、選択された予測順で前記第１予測信号を生成すること；及び
前記予測符号化による符号化データを生成するために、前記画素ブロックの画像信号と前記第２予測信号との差を表す予測残差信号を符号化すること；を具備する画像符号化方法。
【請求項２】
入力画像信号のフレームを分割した複数の画素ブロック毎に予測符号化を行う画像符号化装置において、
前記画素ブロックを分割した複数のサブブロックに対する予測順を予め定められた複数の予測順の中から選択する第１選択部；
符号化済み画素を参照して前記各サブブロックの第１予測信号を生成する際の該符号化済み画素の参照方法を規定する複数の予測モードの中から、前記第１予測信号の予測に用いる予測モードの数を選択する第２選択部；
前記複数の予測モードの中から、前記第１予測信号の予測に用いるための、前記選択された数の予測モードを選択する第３選択部；
前記画素ブロックに対応する第２予測信号を生成するために、前記選択された数の前記選択された予測モードを用いて、選択された予測順で前記第１予測信号を生成する生成部；及び
前記予測符号化による符号化データを生成するために、前記画素ブロックの画像信号と前記第２予測信号との差を表す予測残差信号を符号化する符号化部；を具備する画像符号化装置。
【請求項３】
前記画像符号化装置は、フレーム内予測及びフレーム間予測のうちの少なくとも一方を用いて前記予測符号化を行うように構成される請求項２記載の画像符号化装置。
【請求項４】
前記第１選択部は、前記予測順を前記画素ブロック毎に選択する請求項２記載の画像符号化装置。
【請求項５】
前記第１選択部は、第１の予測順と第２の予測順のいずれかを前記画素ブロック毎に選択する請求項２記載の画像符号化装置。
【請求項６】
前記第１選択部は、前記予測順を前記画素ブロック毎に切り替えて選択するか否かが制御可能に構成される請求項２記載の画像符号化装置。
【請求項７】
前記第１選択部は、第１の予測順と第２の予測順のいずれを選択するかが前記画素ブロック毎に制御可能に構成される請求項２記載の画像符号化装置。
【請求項８】
前記符号化部は、前記符号化データを生成するために前記選択された予測順を示す情報も符号化するように構成される請求項２記載の画像符号化装置。
【請求項９】
前記予測モードの少なくとも一つは、前記入力画像信号がなす空間内において特定の方向から前記符号化済み画素を参照する方向予測モードである請求項２記載の画像符号化装置。
【請求項１０】
前記予測部は、前記複数の予測モードから一つの予測モードが選択された場合に、前記選択された予測順及び該選択された一つの予測モードに従って前記画素ブロックを予測する第１予測部と、前記複数の予測モードから２またはそれ以上の数の予測モードが選択された場合に、複数の予測信号を生成しかつ画素単位に組み合わせることにより前記第２予測信号を生成するために、前記選択された予測順及び該選択された２またはそれ以上の数の予測モードに従って前記画素ブロックを予測する第２予測部を有する請求項２記載の画像符号化装置。
【請求項１１】
前記第２予測部は、前記画素単位の組み合わせを（ａ）加重平均、（ｂ）最大値フィルタ、（ｃ）最小値フィルタ、（ｄ）メディアンフィルタ、及び（ｅ）前記入力画像信号がなす空間内において特定の方向から前記符号化済み画素を参照する方向予測の角度または前記選択された予測モードの数に応じた重み係数を記述したテーブル、の少なくとも一つによって行うように構成される請求項１０記載の画像符号化装置。
【請求項１２】
前記符号化部は、前記符号化データを生成するために前記選択された予測モードの数を示す情報も符号化するように構成される請求項２記載の画像符号化装置。
【請求項１３】
前記第１選択部は、前記画素ブロックまたは隣接画素ブロックのアクティビティ情報に応じて前記予測順を選択するように構成される請求項２記載の画像符号化装置。
【請求項１４】
前記第１選択部は、前記画素ブロックまたは隣接画素ブロックのアクティビティ情報に応じて前記予測順を選択するように構成され、
前記符号化部は、前記符号化データを生成するために前記選択された予測順を示す情報も符号化するように構成される請求項２記載の画像符号化装置。
【請求項１５】
前記第２選択部は、前記画素ブロックまたは隣接画素ブロックのアクティビティ情報に応じて前記第１予測信号の予測に用いる予測モードの数を選択するように構成される請求項２記載の画像符号化装置。
【請求項１６】
前記第２選択部は、前記画素ブロックまたは隣接画素ブロックのアクティビティ情報に応じて前記第１予測信号の予測に用いる予測モードの数を選択するように構成され、
前記符号化部は、前記符号化データを生成するために前記選択された予測モードの数を示す情報も符号化するように構成される請求項２記載の画像符号化装置。
【請求項１７】
画像信号のフレームを分割した複数の画素ブロック毎に符号化データを復号する画像復号方法において、
前記画素ブロックを分割した複数のサブブロックに対する予測順を予め定められた複数の予測順の中から選択すること；
復号済み画素を参照して前記各サブブロックの第１予測信号を生成する際の該復号済み画素の参照方法を規定する複数の予測モードの中から、前記第１予測信号の予測に用いる予測モードの数を選択すること；
前記複数の予測モードの中から、前記第１予測信号の予測に用いるための、前記選択された数の予測モードを選択すること；
前記画素ブロックに対応する第２予測信号を生成するために、前記選択された数の前記選択された予測モードを用いて、選択された予測順で前記第１予測信号を生成すること；及び
前記第２予測信号を用いて復号画像信号を生成すること；を具備する画像復号方法。
【請求項１８】
画像信号のフレームを分割した複数の画素ブロック毎に符号化データを復号する画像復号装置において、
前記画素ブロックを分割した複数のサブブロックに対する予測順を予め定められた複数の予測順の中から選択する第１選択部；
復号済み画素を参照して前記各サブブロックの第１予測信号を生成する際の該復号済み画素の参照方法を規定する複数の予測モードの中から、前記第１予測信号の予測に用いる予測モードの数を選択する第２選択部；
前記複数の予測モードの中から、前記第１予測信号の予測に用いるための、前記選択された数の予測モードを選択する第３選択部；
前記画素ブロックに対応する第２予測信号を生成するために、前記選択された数の前記選択された予測モードを用いて、選択された予測順で前記第１予測信号を生成する生成部；及び
前記第２予測信号を用いて復号画像信号を生成する生成部；を具備する画像復号装置。
【請求項１９】
前記第１選択部は、前記予測順を前記画素ブロック毎に選択する請求項１８記載の画像復号装置。
【請求項２０】
前記第１選択部は、第１の予測順と第２の予測順のいずれかを前記画素ブロック毎に選択する請求項１８記載の画像復号装置。
【請求項２１】
前記第１選択部は、前記予測順を前記画素ブロック毎に切り替えて選択するか否かが制御可能に構成される請求項１８記載の画像復号装置。
【請求項２２】
前記第１選択部は、第１の予測順と第２の予測順のいずれを選択するかが前記画素ブロック毎に制御可能に構成される請求項１８記載の画像復号装置。
【請求項２３】
前記符号化データに含まれる、前記画素ブロックを分割した複数のサブブロックに対する予測順を示す第１情報を分離する分離部をさらに具備し、
前記第１選択部は、前記第１情報によって示される予測順を選択するように構成される請求項１８記載の画像復号装置。
【請求項２４】
前記予測モードの少なくとも一つは、前記画像信号がなす空間内において特定の方向から前記復号済み画素を参照する方向予測モードである請求項１８記載の画像復号装置。
【請求項２５】
前記予測部は、前記複数の予測モードから一つの予測モードが選択された場合に、前記選択された予測順及び該選択された一つの予測モードに従って前記画素ブロックを予測する第１予測部と、前記複数の予測モードから２またはそれ以上の数の予測モードが選択された場合に、複数の予測信号を生成しかつ画素単位に組み合わせることにより前記画素ブロックに対応する予測信号を生成するために、前記選択された予測順及び該選択された２またはそれ以上の数の予測モードに従って前記画素ブロックを予測する請求項１８記載の画像復号装置。
【請求項２６】
前記第２予測部は、前記画素単位の組み合わせを（ａ）加重平均、（ｂ）最大値フィルタ、（ｃ）最小値フィルタ、（ｄ）メディアンフィルタ、及び（ｅ）前記入力画像信号がなす空間内において特定の方向から前記符号化済み画素を参照する方向予測の角度または前記選択された予測モードの数に応じた重み係数を記述したテーブル、の少なくとも一つによって行うように構成される請求項２５記載の画像復号装置。
【請求項２７】
前記符号化データに含まれる、前記第１予測信号の予測に用いる予測モードの数を示す第２情報を分離する分離部をさらに具備し、
前記第２選択部は、前記第２情報によって示される予測モードの数を選択するように構成される請求項１８記載の画像復号装置。
【請求項２８】
前記第１選択部は、前記画素ブロックまたは隣接画素ブロックのアクティビティ情報に応じて前記予測順を選択するように構成される請求項１８記載の画像復号装置。
【請求項２９】
前記符号化データに含まれる、前記画素ブロックを分割した複数のサブブロックに対する予測順を示す第１情報を分離する分離部をさらに具備し、
前記第１選択部は、前記第１情報、及び前記画素ブロックまたは隣接画素ブロックのアクティビティ情報の少なくとも一方に応じて前記予測順を選択するように構成される請求項１８記載の画像復号装置。
【請求項３０】
前記第２選択部は、前記画素ブロックまたは隣接画素ブロックのアクティビティ情報に応じて前記第１予測信号の予測に用いる予測モードの数を選択するように構成される請求項１８記載の画像復号装置。
【請求項３１】
前記符号化データに含まれる、前記第１予測信号の予測に用いる予測モードの数を示す第２情報を分離する分離部をさらに具備し、
前記第２選択部は、前記第２情報、及び前記画素ブロックまたは隣接画素ブロックのアクティビティ情報の少なくとも一方に応じて前記第１予測信号の予測に用いる予測モードの数を選択するように構成される請求項１８記載の画像復号装置。
【請求項３２】
入力画像信号のフレームを分割した複数の画素ブロック毎に予測符号化を行うことを含む画像符号化をコンピュータに行わせるための画像符号化プログラムを格納したコンピュータ読み取り可能な記憶媒体であって、前記プログラムは、
前記画素ブロックを分割した複数のサブブロックに対する予測順を予め定められた複数の予測順の中から選択すること、を前記コンピュータに行わせるための手段；
符号化済み画素を参照して前記各サブブロックの第１予測信号を生成する際の該符号化済み画素の参照方法を規定する複数の予測モードの中から、前記第１予測信号の予測に用いる予測モードの数を選択すること、を前記コンピュータに行わせるための手段；
前記複数の予測モードの中から、前記第１予測信号の予測に用いるための、前記選択された数の予測モードを選択すること、を前記コンピュータに行わせるための手段；
前記画素ブロックに対応する第２予測信号を生成するために、前記選択された数の前記選択された予測モードを用いて、選択された予測順で前記第１予測信号を生成すること、を前記コンピュータに行わせるための手段；及び
前記予測符号化による符号化データを生成するために、前記画素ブロックの画像信号と前記第２予測信号との差を表す予測残差信号を符号化すること、を前記コンピュータに行わせるための手段；を具備する、コンピュータ読み取り可能な記憶媒体。
【請求項３３】
画像信号のフレームを分割した複数の画素ブロック毎に符号化データを復号することを含む画像復号をコンピュータに行わせるための画像復号プログラムを格納したコンピュータ読み取り可能な記憶媒体であって、前記プログラムは、
前記画素ブロックを分割した複数のサブブロックに対する予測順を予め定められた複数の予測順の中から選択すること、を前記コンピュータに行わせるための手段；
復号済み画素を参照して前記各サブブロックの第１予測信号を生成する際の該復号済み画素の参照方法を規定する複数の予測モードの中から、前記第１予測信号の予測に用いる予測モードの数を選択すること、を前記コンピュータに行わせるための手段；
前記複数の予測モードの中から、前記第１予測信号の予測に用いるための、前記選択された数の予測モードを選択すること、を前記コンピュータに行わせるための手段；
前記画素ブロックに対応する第２予測信号を生成するために、前記選択された数の前記選択された予測モードを用いて、選択された予測順で前記第１予測信号を生成すること、を前記コンピュータに行わせるための手段；及び
前記第２予測信号を用いて復号画像信号を生成すること、を前記コンピュータに行わせるための手段；を具備するコンピュータ読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、動画像または静止画像のための符号化と復号の方法及び装置に関する。
【背景技術】
【０００２】
近年、大幅に符号化効率を向上させた画像符号化方法がITU-TとISO/IECとの共同で、ITU-T Rec. H. 264及びISO/IEC 14496-10（以下、H. 264という）として勧告されている。ISO/IEC MPEG-1, 2及び4, ITU-T H. 261及びH. 263といった符号化方式は、直交変換後の周波数領域（ＤＣＴ係数）上でのフレーム内予測を行い、変換係数の符号量削減を図っている。これに対して、H. 264では空間領域（画素領域）での方向予測（Greg Conklin， “New Intra Prediction Modes”, ITU-T Q.6/SG16 VCEG, VCEG-N54, Sep. 2001.参照）を取り入れることにより、ISO/IEC MPEG-1, 2及び4におけるフレーム内予測と比較して高い予測効率を実現している。【０００３】
H. 264ハイプロファイルでは、輝度信号に対して３種類のフレーム内予測方式が規定されており、そのうちの１つをマクロブロック（１６ｘ１６画素ブロック）単位に選択できる。３種類のフレーム内予測方式は、４ｘ４画素予測、８ｘ８画素予測及び１６ｘ１６画素予測と呼ばれている。【０００４】
１６ｘ１６画素予測では、垂直予測、水平予測、ＤＣ予測及び平面予測と呼ばれる４つの予測モードが規定されている。４つの予測モードでは、デブロッキングフィルタが適用される前の局部復号信号のうち符号化対象マクロブロックの周囲のマクロブロックの画素値を参照画素値として用いて予測を行う。【０００５】
４ｘ４画素予測は、マクロブロックを１６個の４ｘ４画素ブロック（サブブロック）に分割し、それぞれの４ｘ４画素ブロックに対して９つの予測モードのいずれかをブロック毎に選択する。９つの予測モードのうち、利用可能な参照画素の平均画素値で予測するＤＣ予測（モード２）を除く８つのモードは、それぞれ２２．５度間隔でずれた予測方向を持っている。参照画素を用いて予測方向に外挿補間を行うことにより、予測信号を生成する。【０００６】
８ｘ８画素予測は、マクロブロックを４個の８ｘ８画素ブロック（サブブロック）に分割し、それぞれの８ｘ８画素ブロックに対して上記９つの予測モードのいずれかをブロック毎に選択する。予測モードは、４ｘ４画素予測と同じ枠組みで設計される。但し、符号化済みの参照画素に対して３タップのフィルタリングを行い、予測に用いる参照画素の平坦化を行うことで符号化歪みを平均化する処理が追加される。【０００７】
Kenneth K. C. Lee et al. “ Spatial Domain Contribution to a High Compression Efficiency System” IWAIT2006, Jun. 2006には、上記９つの予測モード候補から２つの予測モードを選択し、選択した２つの予測モードに従って生成される予測信号に対して画素単位に平均値を求めることにより、予測信号を生成する手法が開示されている。この手法によると、通常の４ｘ４画素予測や８ｘ８画素予測では想定していないような複雑なテクスチャに対しても、高い予測効率が実現される。【０００８】
Kenneth K. C. Lee et al. “ Spatial Domain Contribution to a High Compression Efficiency System” IWAIT2006, Jun. 2006によると、マクロブロック内のサブブロック（４ｘ４画素ブロックまたは８ｘ８画素ブロック）の予測順は一律に固定されている。例えば、４ｘ４画素ブロックの予測においては、マクロブロックを４分割した８ｘ８画素ブロックを考え、８ｘ８画素ブロックをさらに４分割した４ｘ４画素ブロックについて外挿予測を順次行う。このような８ｘ８画素ブロック単位の処理を４回繰り返すことで、１６個の４ｘ４画素ブロックの予測符号化が完了する。一方、８ｘ８画素ブロックの予測においては、マクロブロックを４分割した８ｘ８画素ブロックについて外挿予測を順次行う。
【発明の開示】
【０００９】
H. 264のフレーム内予測は外挿予測を基本としているため、原理的にマクロブロック内のサブブロックに対して左及び上の画素のみしか参照できない。従って、サブブロックの画素と左及び上の画素との輝度の相関が低いときには予測残差が増大し、結果的に符号化効率が低下する。
【００１０】
また、Kenneth K. C. Lee et al. “ Spatial Domain Contribution to a High Compression Efficiency System” IWAIT2006, Jun. 2006では、常に２つの予測モードを使用している。すなわち、単一の予測モードで十分なときでも２つの予測モードを用いて予測を行うため、符号化効率の面で改良の余地がある。
【００１１】
本発明の目的は、符号化効率の高い画像符号化と復号の方法及び装置を提供することにある。
【００１２】
本発明の一観点によると、入力画像信号のフレームを分割した複数の画素ブロックをさらに分割した複数のサブブロックに対する予測順を予め定められた複数の予測順の中から選択する第１選択部と；符号化済み画素を参照して前記各サブブロックの第１予測信号を生成する際の該符号化済み画素の参照方法を規定する複数の予測モードの中から、前記第１予測信号の予測に用いる予測モードの数を選択する第２選択部；前記複数の予測モードの中から、前記第１予測信号の予測に用いるための、前記選択された数の予測モードを選択する第３選択部；前記画素ブロックに対応する第２予測信号を生成するために、前記選択された数の前記選択された予測モードを用いて、選択された予測順で前記第１予測信号を生成する生成部；及び前記予測符号化による符号化データを生成するために、前記画素ブロックの画像信号と前記第２予測信号との差を表す予測残差信号を符号化する符号化部；を含む画像符号化装置を提供する。
【００１３】
本発明の他の観点によると、画像信号のフレームを分割した複数の画素ブロックをさらに分割した複数のサブブロックに対する予測順を予め定められた複数の予測順の中から選択する第１選択部と；復号済み画素を参照して前記各サブブロックの第１予測信号を生成する際の該復号済み画素の参照方法を規定する複数の予測モードの中から、前記第１予測信号の予測に用いる予測モードの数を選択する第２選択部；前記複数の予測モードの中から、前記第１予測信号の予測に用いるための、前記選択された数の予測モードを選択する第３選択部；前記画素ブロックに対応する第２予測信号を生成するために、前記選択された数の前記選択された予測モードを用いて、選択された予測順で前記第１予測信号を生成する生成部；及び前記第２予測信号を用いて復号画像信号を生成する生成部；を含む画像復号装置を提供する。
【００１４】
本発明の別の観点では、上述した画像符号化の処理及び画像復号の処理の少なくとも一方をコンピュータに行わせるためのプログラムを格納したコンピュータ読み取り可能な記憶媒体を提供する。
【図面の簡単な説明】
【００１５】
【図１】図１は、一実施形態に従う画像符号化装置を示すブロック図である。
【図２Ａ】図２Ａは、符号化対象フレームにおける符号化対象ブロック及び符号化済みブロックについて示す図である。
【図２Ｂ】図２Ｂは、マクロブロックのブロックサイズを示す図である。
【図３Ａ】図３Ａは、８ｘ８画素ブロックを示す図である。
【図３Ｂ】図３Ｂは、４ｘ４画素ブロックを示す図である。
【図３Ｃ】図３Ｃは、８ｘ８／４ｘ４画素ブロックを示す図である。
【図４】図４は、図１中の予測部の詳細を示すブロック図である。
【図５】図５は、図１中の予測信号生成部の詳細を示すブロック図である。
【図６Ａ】図６Ａは、８ｘ８画素ブロックとブロックインデックスを示す図である。
【図６Ｂ】図６Ｂは、図６Ａのブロックに対する順次予測による予測順を示す図である。
【図６Ｃ】図６Ｃは、図６Ａのブロックに対する外挿／内挿予測による予測順の変更例を示す図である。
【図６Ｄ】図６Ｄは、図６Ａのブロックに対する他の予測順の変更例を示す図である。
【図７Ａ】図７Ａは、４ｘ４画素ブロックとブロックインデックスを示す図である。
【図７Ｂ】図７Ｂは、図７Ａのブロックに対する順次予測による予測順を示す図である。
【図７Ｃ】図７Ｃは、図７Ａのブロックに対する外挿／内挿予測による予測順の変更例を示す図である。
【図７Ｄ】図７Ｄは、図７Ａのブロックに対する他の予測順の変更例を示す図である。
【図８】図８は、予測順切替部において用いられる予測順テーブルを説明する図である。
【図９Ａ】図９Ａは、単方向予測部における順次ブロック予測の予測モードについて示す図である。
【図９Ｂ】図９Ｂは、４ｘ４画素予測における予測画素と参照画素との関係を示す図である。
【図９Ｃ】図９Ｃは、モード０における予測信号生成方法を説明する図である。
【図９Ｄ】図９Ｄは、モード４における予測信号生成方法を説明する図である。
【図１０】図１０は、単方向予測部における予測モードの名称とモードインデックスを示す図である。
【図１１】図１１は、双方向予測部における予測モードの名称とモードインデックスを示す図である。
【図１２Ａ】図１２Ａは、４ｘ４画素予測における垂直／水平予測（モード０１）の概念図である。
【図１２Ｂ】図１２Ｂは、４ｘ４画素予測における垂直／直交右下予測（モード０４）の概念図である。
【図１３Ａ】図１３Ａは、８ｘ８画素ブロックに対する外挿／内挿ブロック予測を説明する図である。
【図１３Ｂ】図１３Ｂは、４ｘ４画素ブロックに対する外挿／内挿ブロック予測を説明する図である。
【図１４Ａ】図１４Ａは、外挿ブロック予測における参照画素と予測画素の位置関係を示す図である。
【図１４Ｂ】図１４Ｂは、４ｘ４画素予測における内挿ブロック（１）と参照画素との関係を示す図である。
【図１４Ｃ】図１４Ｃは、４ｘ４画素予測における内挿ブロック（２）と参照画素との関係を示す図である。
【図１４Ｄ】図１４Ｄは、４ｘ４画素予測における内挿ブロック（３）と参照画素との関係を示す図である。
【図１５Ａ】図１５Ａは、外挿ブロック予測において垂直予測（モード０）が選択された場合の予測信号生成方法を説明する図である。
【図１５Ｂ】図１５Ｂは、外挿ブロック予測において直交右下予測（モード４）が選択された場合の予測信号生成方法を説明する図である。
【図１６】図１６は、単方向予測部における内挿ブロック予測の予測モードについて示す図である。
【図１７】図１７は、単方向予測部における内挿ブロック予測で行われる単方向予測の予測モードについて示す図である。
【図１８Ａ】図１８Ａは、単方向予測部において内挿ブロック（１）について選択可能な予測モードを示す図である。
【図１８Ｂ】図１８Ｂは、単方向予測部において内挿ブロック（２）について選択可能な予測モードを示す図である。
【図１８Ｃ】図１８Ｃは、単方向予測部において内挿ブロック（３）について選択可能な予測モードを示す図である。
【図１８Ｄ】図１８Ｄは、単方向予測部において外挿ブロック（４）について選択可能な予測モードを示す図である。
【図１９Ａ】図１９Ａは、逆方向垂直予測（モード９）における内挿ブロック（１）の予測信号生成方法を説明する図である。
【図１９Ｂ】図１９Ｂは、逆方向垂直予測（モード９）における内挿ブロック（２）の予測信号生成方法を説明する図である。
【図２０Ａ】図２０Ａは、逆方向水平予測（モード１０）における内挿ブロック（１）の予測信号生成方法を説明する図である。
【図２０Ｂ】図２０Ｂは、逆方向水平予測（モード１０）における内挿ブロック（３）の予測信号生成方法を説明する図である。
【図２１Ａ】図２１Ａは、直交左値予測（モード１２）における内挿ブロック（１）の予測信号生成方法を説明する図である。
【図２１Ｂ】図２１Ｂは、直交左値予測（モード１２）における内挿ブロック（１）の予測信号生成方法を説明する図である。
【図２１Ｃ】図２１Ｃは、直交左値予測（モード１２）における内挿ブロック（２）の予測信号生成方法を説明する図である。
【図２２】図２２は、双方向予測部における内挿ブロック予測の予測モードの名称とモードインデックスを示す図である。
【図２３】図２３は、一実施形態に従う画像符号化の処理手順を示すフローチャートである。
【図２４】図２４は、図２３の一部の処理手順を詳細に示すフローチャートである。
【図２５】図２５は、画像符号化部において用いられるシンタクス構造の一例を示す図である。
【図２６】図２６は、シマクロブロックレイヤーシンタクスのデータ構造の一例を示す図である。
【図２７】図２７は、マクロブロックプレディクションシンタクスのデータ構造の一例を示す図である。
【図２８】図２８は、予測モードを符号化インデックスに変換する式を説明する図である。
【図２９】図２９は、予測モードを符号化インデックスに変換するテーブルを説明する図である。
【図３０】図３０は、内挿ブロック（１）、（２）及び（３）と外挿ブロック（４）に対して利用可能な予測モードの名称とモードインデックスを示す図である。
【図３１】図３１は、マクロブロックプレディクションシンタクスのデータ構造の他の例を示す図である。
【図３２】図３２は、予測モードの導出方法について示す図である。
【図３３】図３３は、予測モードを予測時に参照するブロック位置について示す図である。
【図３４】図３４は、マクロブロックプレディクションシンタクスのデータ構造の他の例を示す図である。
【図３５】図３５は、シーケンスパラメータセットシンタクスのデータ構造の一例を示す図である。
【図３６】図３６は、ピクチャパラメータセットシンタクスのデータ構造の一例を示す図である。
【図３７】図３７は、スライスヘッダシンタクスのデータ構造の一例を示す図である。
【図３８】図３８は、マクロブロックレイヤシンタクスのデータ構造の一例を示す図である。
【図３９】図３９は、マクロブロックプレディクションシンタクスのさらに別の例を示す図である。
【図４０】図４０は、一実施形態に従う画像復号装置を示すブロック図である。
【図４１】図４１は、図４０中の予測信号生成部の詳細を示すブロック図である。
【図４２】図４２は、復号したインデックスを予測モードに逆変換する式を説明する図である。
【図４３】図４３は、復号したインデックスを予測モードに逆変換するテーブルを説明する図である。
【図４４Ａ】図４４Ａは、予測モードを内挿ブロック（１）の予測時に参照するブロック位置を説明する図である。
【図４４Ｂ】図４４Ｂは、予測モードを内挿ブロック（２）の予測時に参照するブロック位置を説明する図である。
【図４４Ｃ】図４４Ｃは、予測モードを内挿ブロック（３）の予測時に参照するブロック位置を説明する図である。
【図４４Ｄ】図４４Ｄは、予測モードを外挿ブロック（４）の予測時に参照するブロック位置を説明する図である。
【発明を実施するための最良の形態】
【００１６】
以下、図面を参照して本発明の実施の形態を説明する。  
＜画像符号化装置について＞  
図１に示されるように、本発明の一実施形態に従う画像符号化装置では、動画像または静止画像の入力画像信号１２０が画像符号化部１００に入力される。画像符号化部１００はフレーム分割部１０１、予測部１０２、モード選択部１０３、直交変換／量子化部１０４、逆量子化／逆直交変換部１０５、加算器１０６、参照画像メモリ１０７及びエントロピー符号化部１０８を有する。【００１７】
符号化制御部１１０は、画像符号化部１００の符号化処理全般を制御するために符号化制御情報１４０を画像符号化部１００に与え、また画像符号化部１００からフィードバック情報１５０を適宜受け取る。符号化制御情報１４０には、後述する予測モードインデックス情報、ブロックサイズ切替情報、予測順切替情報、予測モード数切替情報、及び量子化パラメータ情報などが含まれる。量子化パラメータ情報は、量子化幅（量子化ステップサイズ）及び量子化マトリクスなどの情報を含む。フィードバック情報１５０には、量子化パラメータの決定に必要な、画像符号化部１００での発生符号量情報が含まれる。【００１８】
画像符号化部１００内では、入力動画像信号１２０はフレーム分割部１０１に入力される。フレーム分割部１０１では、入力画像信号１２０の符号化対象フレームが複数の画素ブロックに分割されることによって、ブロック画像信号１２１が生成される。例えば、図２Ａの符号化対象フレームが図２Ｂのような１６ｘ１６画素／ブロックのサイズの複数ブロックに分割される。図２Ｂのブロックはマクロブロックと呼ばれ、これが符号化の基本的な処理単位となる。すなわち、符号化はマクロブロック単位で行われる。【００１９】
フレーム分割部１０１から出力されるブロック画像信号１２１は、まず予測部１０２によってフレーム内予測が施される。フレーム内予測は、既に知られているようにフレーム内で閉じた予測を行う方式である。予測部１０２は、符号化済みの画素を参照画素として用いて符号化対象ブロックを予測することによってマクロブロック単位の予測信号１２２を生成する。【００２０】
予測部１０２では、フレーム内予測のための複数の予測モードが用意されており、選択可能な全ての予測モードに従って予測を行う。予測部１０２は、H. 264のイントラ予測、すなわち図３Ａの８ｘ８画素予測、図３Ｂの４ｘ４画素予測、あるいは図３Ｃの８ｘ８／４ｘ４画素予測（マクロブロック内で８ｘ８画素予測と４ｘ４画素予測が混在する）を行う予測モードを有していてもよい。このようなH. 264のイントラ予測では、マクロブロック内で局部復号画像を作成しないと次の予測を行うことができない。この場合は、予測部１０２の内部で直交変換／量子化、逆量子化／逆直交変換を行ってもよい。【００２１】
８ｘ８画素予測及び４ｘ４画素予測では、それぞれマクロブロックを８ｘ８画素ブロック及び４ｘ４画素ブロックのサブブロックに分割する。ここで、予測モードはサブブロックの予測信号を生成する際の符号化済み画素の参照方法を規定する。サブブロックの形状（サイズを含む）は特に限定されず、例えば１６ｘ８画素、８ｘ１６画素、８ｘ４画素、４ｘ８画素といった形状でもよい。従って、８ｘ４画素予測や２x２画素予測も同様の枠組みで実現が可能である。【００２２】
サブブロックのブロックサイズを小さくすると、すなわちマクロブロックの分割数が増えると、後述するブロックサイズ切替情報を符号化する際の符号量が増加するが、より予測効率の高いフレーム内予測が可能となるため、予測残差が削減される。従って、後述する変換係数情報の符号量と局所復号信号とのバランスを考慮して、ブロックサイズを選択すればよい。また、領域分割手法で生成した任意形状の画素領域に対して、同様の処理を行ってもよい。【００２３】
予測部１０２では、予測信号１２２とブロック画像信号１２１から予測信号１２２を差し引いた予測残差信号１２３が生成される。予測残差信号１２３は、直交変換／量子化部１０４とモード選択部１０３に入力される。直交変換／量子化部１０４では、予測残差信号１２３に対して直交変換が施され、さらに直交変換によって得られる変換係数が量子化されることによって、量子化変換係数情報１２７が生成される。【００２４】
直交変換／量子化部１０４における処理単位である変換／量子化ブロックの形状に関しても、８ｘ８画素、４ｘ４画素、１６ｘ８画素、８ｘ１６画素、８ｘ４画素、４ｘ８画素といった形状を選択できる。あるいは変換／量子化ブロックの形状を一つのマクロブロック内で異ならせ、例えば図３Ｃに示されるようにマクロブロック内に８ｘ８画素ブロックと４ｘ４画素ブロックとが混在するようにしてもよい。【００２５】
モード選択部１０３では、予測残差信号１２３と予測部１０２を経て入力される予測モードインデックス情報、ブロックサイズ切替情報、予測順切替情報及び予測モード数切替情報といった予測モードに関する情報（以後、予測モードインデックス情報、ブロックサイズ切替情報、予測順切替情報及び予測モード数切替情報を予測モード情報と総称する）１２４を基に符号化コストを算出し、それに基づいて最適な予測モードを選択する。【００２６】
より具体的には、モード選択部１０３は例えば予測モード情報１２４をＯＨ、予測残差信号の絶対和（sum of absolute value）をＳＡＤとすると、次式により算出される符号化コストＫの最小値を与える予測モードを最適モードとして選択する。
【数１】
2008012918.tif 000003
【００２７】
ここで、λは定数であり、量子化パラメータの値に基づいて決められる。【００２８】
モード選択部１０３におけるコスト計算の他の例として、予測モード情報ＯＨのみ、あるいは予測残差信号の絶対和ＳＡＤのみを用いてもよい。予測モード情報あるいは予測残差信号をアダマール変換したり、近似したりした値を利用してもよい。量子化幅、量子化パラメータを利用してコスト関数を作成してもよい。【００２９】
コスト計算のさらに別の例として、仮符号化部を用意し、各予測モードで生成された予測残差信号１２３を実際に符号化した場合の符号量と、符号化データを局部復号して得られる復号画像信号１３０とブロック画像信号１２１との間の二乗誤差を用いてもよい。この場合、次式により算出される符号化コストＪの最小値を与える予測モードを最適モードとして選択する。
【数２】
2008012918.tif 000004
【００３０】
ここで、Ｄはブロック画像信号１２１と復号画像信号１３０との間の二乗誤差を表す符号化歪みである。一方、Ｒは仮符号化によって見積もられた符号量を表している。【００３１】
式（２）の符号化コストＪを用いた場合、予測モード毎に仮符号化と局部復号（逆量子化や逆直交変換）が必要となるため、処理量または回路規模が増大する。しかし、Ｊは正確な符号量と符号化歪みを反映するため、より最適な予測モードを選択することを可能とする。この結果、より高い符号化効率を得ることができる。式（２）では、符号化コストＪの計算に符号化歪Ｄ及び符号量Ｒを用いているが、Ｄ及びＲのいずれか一方のみを用いて符号化コストを算出してもよい。また、Ｄ及びＲを近似した値を用いてコスト関数を作成してもよい。【００３２】
モード選択部１０３からは、選択した予測モードを表す最適予測モード情報１２５と、選択した予測モードに対応する予測信号１２６が出力される。最適予測モード情報１２５は、予測部１０２からの予測残差信号１２３とともに直交変換／量子化部１０４に入力される。直交変換／量子化部１０４は、最適予測モード情報１２５を参照して予測残差信号１２３に直交変換、例えば離散コサイン変換（ＤＣＴ）を施す。直交変換としては、他にウェーブレット変換や独立成分解析などを用いてもよい。直交変換／量子化部１０４において、直交変換により得られる変換係数は量子化され、量子化変換係数情報１２７が生成される。ここで、直交変換／量子化部１０４において量子化に必要とされる量子化幅などの量子化パラメータは、符号化制御部１１０からの符号化制御情報１４０に含まれる前記量子化パラメータ情報によって指示される。【００３３】
量子化変換係数情報１２７は、符号化制御情報１４０に含まれる予測モードインデックス情報１４１、ブロックサイズ切替情報１４２、予測順切替情報１４３、予測モード数切替情報１４４及び量子化パラメータなどの予測に関する情報とともにエントロピー符号化部１０８に入力される。エントロピー符号化部１０８は、量子化変換係数情報１２７及び予測に関する情報に対して例えばハフマン符号化、ゴルム符号化あるいは算術符号化のようなエントロピー符号化を施し、符号化データ１４６を生成する。符号化データ１４６は多重化部１１１により多重化され、さらに出力バッファ１１２を通して符号化ビットストリーム１４７として出力される。【００３４】
量子化変換係数情報１２７は、逆量子化／逆直交変換部１０５にも入力される。逆量子化／逆直交変換部１０５は、量子化変換係数情報１２７を符号化制御部１１０からの量子化パラメータ情報に従って逆量子化し、逆量子化によって得られた変換係数に対して例えば逆離散コサイン変換（ＩＤＣＴ）のような逆直交変換を施すことによって、予測部１０２から出力される予測残差信号１２３と等価な予測残差信号１２８を生成する。【００３５】
逆量子化／逆直交変換部１０５により生成された予測残差信号１２８は、加算器１０６においてモード選択部１０３からの予測信号１２６と加算されることにより、局部復号信号１２９が生成される。局部復号信号１２９は、参照画像メモリ１０６に蓄積される。参照画像メモリ１０７に蓄積された局部復号信号は参照画像信号１３０として読み出され、予測部１０２による予測残差信号１２３の生成の際に参照される。【００３６】
符号化ループ（図１における予測部１０２→直交変換／量子化部１０４→逆量子化／逆直交変換部１０５→参照画像メモリ１３０→予測部１０２）は、符号化対象ブロックで選択可能な全ての予測モードに対する処理が終了すると一巡する。ある符号化対象マクロブロックに対して符号化ループの処理が終了すると、次の符号化対象ブロックのブロック画像信号１２１が予測部１０１に入力され、再び符号化が行われる。【００３７】
符号化制御部１１０は、発生符号量のフィードバック制御や量子化パラメータ制御によるレート制御、符号化モード制御及び予測部の制御など符号化全体の制御を行う。図１の画像符号化装置は、ＬＳＩチップなどのハードウェアにより実現されるか、あるいはコンピュータにおいて画像符号化プログラムの実行によって実現される。【００３８】
＜予測部１０２について＞
次に、図４を用いて予測部１０２について説明する。予測部１０２は、予測信号を生成する予測信号生成部１１３を有し、さらにマクロブロックを分割した複数の小画素ブロック（サブブロックという）単位の予測を行うために、内部モード選択部１１４、内部直交変換／量子化部１１５、内部逆量子化／逆直交変換部１１６及び内部参照画像メモリ１１８を有する。【００３９】
予測部１０２にブロック画像信号１２１が入力されると、予測信号生成部１１３により後述する単方向予測または後述する双方向予測による予測信号１２２が生成される。この際、予測生成部１１３には符号化制御部１１０から予測モードインデックス情報１４１、ブロックサイズ切替情報１４２、予測順切替情報１４３及び予測モード切替情報１４４を含む予測モード情報が伝達される。符号化制御部１１０は予測生成部１１３に複数の予測モードを伝達して、予測信号生成部１１３に複数の予測モードの各々による予測を行わせる。予測信号生成部１１３は、各々の予測モードによる予測信号１２２に加えて、予測信号１２２に対応する予測モード情報１６１を生成する。【００４０】
減算器１１９は、ブロック画像信号１２１から予測信号１１４を差し引いて予測残差信号１２３を生成する。内部モード選択部１１４は、予測信号生成部１１３を経て伝達されてくる予測モード情報１６１（予測モードインデックス情報１４１、ブロックサイズ切替情報１４２、予測順切替情報１４３及び予測モード切替情報１４４を含む）と予測残差信号１２３を基に予測モードの選択を行い、選択した予測モードを示す予測モード情報１２４を出力する。【００４１】
予測誤差信号１２３と内部モード選択部１１４から出力される予測モード情報１２４は、内部直交変換／量子化部１１５に入力される。内部直交変換／量子化部１１５では、予測モード情報１２４を参照して予測残差信号１２３に直交変換、例えばＤＣＴを施す。直交変換としては、他にウェーブレット変換や独立成分解析などを用いてもよい。内部直交変換／量子化部１１５において、直交変換により得られる変換係数は量子化され、量子化変換係数情報１６３が生成される。ここで、直交変換／量子化部１１５において量子化に必要とされる量子化幅などの量子化パラメータは、符号化制御部１１０からの符号化制御情報１４０に含まれる前記量子化パラメータ情報によって指示される。【００４２】
量子化変換係数情報１６３は、内部逆量子化／逆直交変換部１１６に入力される。内部逆量子化／逆直交変換部１１６は、量子化変換係数情報１６３を符号化制御部１１０からの量子化パラメータ情報に従って逆量子化し、逆量子化によって得られた変換係数に対して例えばＩＤＣＴのような逆直交変換を施すことによって、予測残差信号１２３と等価な予測残差信号１６４を生成する。【００４３】
内部逆量子化／逆直交変換部１１６により生成された予測残差信号１６４は、加算器１１７において内部モード選択部１１４からの予測信号１６２と加算されることにより、内部復号信号１６５が生成される。内部復号信号１６５は、内部参照画像メモリ１１８に蓄積される。【００４４】
内部参照画像メモリ１１８に蓄積された局部復号信号は内部参照画像信号１６６として読み出され、予測信号生成部１１３による予測残差信号の生成の際に参照される。予測部１０２において全てのサブブロックにおける予測が完了すると、マクロブロックに対応する、予測信号１２２、予測残差信号１２３及び予測モード情報１２４が予測部１０２の外部へ出力される。【００４５】
＜予測信号生成部１１３について＞
次に、図５を用いて予測信号生成部１１３について説明する。図５は、予測信号生成部１１３のうち予測信号１２２の生成に関わる部分のみを示している。図５において、予測順切替部１７０はブロック画像信号１２１に対して予測順切替情報１４３に基づいてマクロブロック中のサブブロックの予測順を切り替える。すなわち、予測順切替部１７０は画素ブロック（マクロブロック）を分割した複数のサブブロックに対する予測順を予め定められた複数の予測順の中から選択する。予測順切替部１７０によって予測順が切り替えられたブロック画像信号は、単方向予測部１７１及び双方向予測部１７２に入力される。【００４６】
単方向予測部１７１及び双方向予測部１７２は、マクロブロックに対応する予測信号を生成するために、予測順切替部１７０により切り替えられ選択された予測順と、それぞれにより選択された予測モードに従って符号化済み画素を参照してマクロブロックを予測する。【００４７】
すなわち、単方向予測部１７１は、予測モードインデックス情報１４１に基づいて、用意された複数の予測モードのうち一つの予測モードを選択する。単方向予測部１７１は、こうして選択した予測モード及びブロックサイズ切替情報１４２に従って、参照画像信号１６６を参照して予測信号を生成する。双方向予測部１７２は、予測モードインデックス情報１４１に基づいて、前記用意された複数の予測モードのうち２つの予測モードを選択する。双方向予測部１７２は、こうして選択した２つの予測モード及びブロックサイズ切替情報１４２に従って、参照画像信号１６６を参照して予測信号を生成する。単方向予測部１７１及び双方向予測部１７２から出力される予測信号は、予測モード数切替部１７３に入力される。【００４８】
予測モード数切替器１７３は、予測モード数切替情報１４４に従って制御されることにより、単方向予測部１７１によって生成された予測信号及び双方向予測部１７２によって生成された予測信号のいずれかを選択し、選択した予測信号１２２を出力する。言い換えれば、予測モード数切替部１７３は予め定められた複数の予測モードの中から使用可能な予測モードの数を選択する。【００４９】
図６Ａ〜図６Ｄ、図７Ａ〜図７Ｄ及び図８を用いて予測順切替部１７０の動作を説明する。図６Ａは、８ｘ８画素予測におけるマクロブロック内のサブブロック（８ｘ８画素ブロック）の基準となるインデックス:blkを示している。同様に図７Ａは、４ｘ４画素予測におけるマクロブロック内のサブブロック（４ｘ４画素ブロック）のインデックス:blkを示している。図６Ａでは、マクロブロックを４分割した８ｘ８画素ブロックについて順次予測及び符号化処理を行うよう順番付けしている。図７Ａでは、マクロブロックを４分割した８ｘ８画素ブロックを考え、当該８ｘ８画素ブロック内をさらに４分割した４ｘ４画素ブロックについて順次予測及び符号化処理を行うよう順番付けしている。【００５０】
予測順切替部１７０は予測順切替情報１４３により制御され、予測順切替情報１４３を表す後述のフラグ:block_order_flagの値によって前記基準となるインデックス:blkを変換することによりサブブロックの予測順を切り替える。サブブロックの順番:idxに対して、実際の符号化時のサブブロックのインデックス:order（予測順を表す）は、次式で与えられる。
【数３】
2008012918.tif 000005
【００５１】
図８は、blkConv[ ][ ]の具体的な変換テーブルの例を示している。フラグ:block_order_flagが０（FALSE）の場合、実際に予測符号化を行う際のサブブロックのインデックス:orderは符号化対象のサブブロックのインデックス:idxそのものであり、ブロックの予測及び予測順を変更しない（以後、このような予測順による予測を順次予測という）。【００５２】
図６Ｂ及び図７Ｂは、それぞれ図６Ａ及び図７Ａに対する順次予測による予測順を示している。すなわち、図６Ｂでは予測順はインデックス:idxに従った順序（０→１→２→３）に設定される。同様に図７Ｂにおいても、予測順はインデックス:idxに従った順序（０→１→２→・・・→１４→１５）に設定される。【００５３】
一方、フラグ:block_order_flagが１(TRUE)の場合、実際に予測符号化を行うサブブロックのインデックス:orderは、４つのサブブロックのうち先に対角の１ブロックを外挿により予測し、残りの３ブロックを外挿または内挿により予測する、という予測順を示す。以後、このような予測順による予測を外挿／内挿予測という。【００５４】
図６Ｃ及び図７Ｃは、それぞれ図６Ａ及び図７Ａに対する外挿／内挿予測による予測順変更例を示している。図６Ｃでは、最初にidx＝３のサブブロックを外挿により予測し、次にidx＝１及びidx＝２のサブブロックを予測し、最後にidx＝３のサブブロックに対して対角の位置にあるidx＝０のサブブロックを外挿により予測する。図７Ｃでは、８ｘ８画素ブロック内を４分割した４ｘ４画素の４つのサブブロック毎に、図６Ｃと同様に予測順を設定している。【００５５】
さらに別の例として、サブブロックの予測順をマクロブロック内の画素の相関などの性質に応じて、例えば図６Ｄ及び図７Ｄのように任意に設定してもよい。【００５６】
上述のようにして予測順切替部１７０により予測順が切り替えられたサブブロックは、単方向予測部１７１または双方向予測部１７２に入力されることによって、各サブブロックに対応する予測信号が生成される。モード数切替スイッチ１７３は、予測モード数切替情報１４４が予測モード数“１”を示しているときは単方向予測部１７１により得られる予測信号を出力し、予測モード数切替情報１４４が予測モード数“２”を示しているときは双方向予測部１７２により得られる予測信号を出力する。モード数切替スイッチ１７３から出力される予測信号は、予測信号生成部１１３の出力１２２として取り出される。【００５７】
次に、フラグ:block_order_flagによって設定される予測順に対応する単方向予測部１７１及び双方向予測部１７２の処理について説明する。前述したように、単方向予測部１７１及び双方向予測部１７２は、図４中に示した内部参照画像メモリ１１８に保持されている既に復号済みの画素を参照画像信号１６６として用いて符号化対象のサブブロックの予測を行う。【００５８】
（順次ブロック予測における単方向予測部１７１の処理）  
単方向予測部１７１における順次ブロック予測の予測モードとしては、例えばモード０からモード８までの９つが存在する。図９Ａに示されるように、モード２を除く８つのモード（モード０，モード１，モード３〜８）は、入力画像信号１００のなす画像空間内において２２．５度間隔でシフトした予測方向（符号化済み画素を参照する方向）を持ち、方向予測モードと呼ばれる。モード２は、単方向予測部１７１ではＤＣ予測モードである。図１０は、単方向予測部１７１における順次ブロック予測の予測モード:モード０〜８の名称を示しており、各名称にモード０〜８を表すモードインデックスが付けられている。【００５９】
図９Ｂは、４ｘ４画素予測における予測画素と参照画素との関係を示している。図９Ｂにおいて画素Ａ〜Ｍは参照画素であり、画素ａ〜ｐは予測画素である。以下、図９Ａ、図９Ｂ、図９Ｃ及び図９Ｄを用いて具体的な予測方法を説明する。【００６０】
単方向予測部１７１では、モード２のＤＣ予測が選択された場合、次式により予測画素ａ〜ｐの値が算出されることによって、予測信号が生成される。
【数４】
2008012918.tif 000006
【００６１】
ここで、ave (・)は（ ）内に示す参照画素の画素値（輝度値）の平均（平均画素値という）を示す。【００６２】
（ ）内の参照画素の一部が利用できない場合は、利用できる参照画素のみの平均画素値が算出されることによって予測信号が生成される。利用できる参照画素が１つも存在しない場合は、予測信号生成部１１３では予測信号の最大輝度値の半分の値（８ビットなら１２８）が予測信号とされる。【００６３】
モード２以外のモードが選択された場合、単方向予測部１７１は図９Ａで示される各予測方向に対して、参照画素を予測画素にコピーする、という予測方法を用いる。具体的に、モード０（垂直予測）が選択された場合の予測信号生成方法を次式に示す。
【数５】
2008012918.tif 000007
【００６４】
このモード０は、参照画素Ａ〜Ｄを利用できるときだけ選択することが可能である。モード０では、図９Ｃに示されるように参照画素Ａ〜Ｄが垂直方向に並ぶ予測画素にそのままコピーされることにより、予測信号が生成される。【００６５】
一方、モード４（直交右下予測）が選択されたときの予測信号生成方法を次式に示す。
【数６】
2008012918.tif 000008
【００６６】
モード４は、参照画素Ａ〜Ｄ及びＩ〜Ｍを利用できるときにのみ選択することが可能である。モード４では、図９Ｄに示されるように３タップのフィルタによって生成された値が右下４５度の方向にコピーされることによって、予測信号が生成される。【００６７】
モード０，２，４以外の予測モードに関しても、同様の枠組みである。すなわち、予測方向に対して利用できる参照画素を予測方向に並ぶ予測画素にコピーするという手法により、予測信号が生成される。【００６８】
（順次ブロック予測における双方向予測部１７２の処理）  
単方向予測は、ブロック内の画像における空間的方向性が一つという前提の下で予測信号を生成する。ブロック内の画像に２つ以上の空間的方向性がある場合には、このような前提が成り立たなくなるので、単方向予測のみでは予測残差信号が増大する傾向になる。そこで、２つ以上の空間的方向性がある場合は、単方向予測部１７１における９つの予測モード（ＤＣ予測も含む）のうち２つのモードを双方向予測部１７２において同時に使用することにより、複数の空間的方向性を考慮した予測を行い、予測残差信号の増大を抑制する。【００６９】
図１１は、双方向予測部１７２における予測モードの名称と対応するモードインデックスを示している。図１１では、２つのモードを使用する予測モードが存在している。例えば、垂直予測（モード０）と水平予測（モード１）を使用する予測モードの名称及びモードインデックスをそれぞれ「垂直／水平予測」及び「モード０１」と表記している。また、例えば垂直予測（モード０）とDC予測（モード２）を使用する予測モードの名称及びモードインデックスを「垂直／ＤＣ予測」及び「モード０２」と表記する。【００７０】
例として、垂直予測（モード０）と水平予測（モード１）を使用した垂直／水平予測による予測信号生成方法を説明する。図１２Ａは、４ｘ４画素予測における垂直／水平予測（モード０１）の概念を示している。４ｘ４画素予測における予測画素と参照画素との関係は図９Ｂと同様である。例えば、予測画素ａでは垂直予測において参照する画素Ａと水平予測において参照する画素Ｉとの平均画素値を予測信号とする。予測画素ｂでは、垂直予測における参照画素Ｂと直交右下予測における参照画素Ｉとの平均画素値を予測信号とする。他の予測画素についても、同様の方法で予測信号が生成される。【００７１】
具体的に、垂直／水平予測（モード０１）では次式を用いて予測画素を計算する。  
【数７】
2008012918.tif 000009
【００７２】
ここで、ｎは図９Ｂで示される予測画素ａ〜ｐに対応するインデックスである。Ｘ（０，ｎ）及びＸ（１，ｎ）は、それぞれ単方向予測である、垂直予測及び水平予測によって生成した予測信号である。予測信号Ｘ（０，ｎ）及びＸ（１，ｎ）の具体的な生成方法は、式（５）及び式（６）に示された手法と同様であるので説明を省略する。【００７３】
一方、垂直／ＤＣ予測（モード０２）では、次式を用いて予測画素を計算する。  
【数８】
2008012918.tif 000010
【００７４】
垂直／直交右下予測（モード０４）では、次式を用いて予測画素を計算する。  
【数９】
2008012918.tif 000011
【００７５】
図１２Ｂは、モード０４における予測方法の概念を示している。【００７６】
モード０１，０２以外の複数方向の外挿予測についても、同様に予測画素を計算することができる。以上述べた複数方向の外挿予測は、以下の一般式で表わされる。
【数１０】
2008012918.tif 000012
【００７７】
ここで、Ｘ（Ｕ，ｎ），Ｘ（Ｖ，ｎ）はそれぞれ単方向予測のモード“Ｕ”及びモード“Ｖ”であり、Ｘ（ＵＶ，ｎ）は複数方向の外挿予測のモード“ＵＶ”の予測信号である。【００７８】
このように画素単位で任意の２種類の単方向予測により予測画素を求め、これらの予測画素を平均した値を予測信号とする。これによって、ブロック内において複数の空間的方向性が存在した場合に精度の高い予測ができ、符号化効率の改善が可能となる。【００７９】
（外挿／内挿ブロック予測）  
図６Ｂで説明したような外挿／内挿ブロック予測では、マクロブロック内の各サブブロックの順番を順次ブロック予測から数式（３）に従った予測順に変更する。例えば、８ｘ８画素ブロックについて予測を行う場合、図１３Ａに示すようにまず外角の１ブロックを外挿予測が可能なブロック（以下、外挿ブロックという）として先に予測し、次に他の３ブロックを内挿予測が可能なブロック（以下、内挿ブロックという）として予測する。すなわち、まず外挿ブロック（１）を予測し、次に内挿ブロック（２）（３）及び（４）を予測する。一方、４ｘ４画素ブロックについて予測を行う場合、図１３Ｂに示すように外挿ブロックの予測と内挿ブロックの予測を８ｘ８画素ブロック単位で各４ｘ４画素ブロックについて行うことで予測順を設定する。【００８０】
以下、４ｘ４画素予測が選択された場合における８ｘ８画素ブロック単位の予測処理を説明する。この予測処理では、８ｘ８画素ブロック単位の予測が終了したら、次の８ｘ８画素ブロックに対して予測を行う、というように８ｘ８画素ブロック単位の予測を計４回繰り返す。【００８１】
（外挿ブロックの予測）  
外挿ブロックを予測する場合、参照画素と予測画素との距離が離れるため、参照画素の範囲は図１４Ａに示すようになる。図１４Ａにおいて画素Ａ〜Ｘ及びＺは参照画素であり、画素ａ〜ｐは予測画素である。参照画素の範囲は広がるものの、予測角度に従って参照画素をコピーすることによって予測信号を生成する手法については、先の順次ブロック予測の場合と同様である。【００８２】
具体的に、外挿ブロックにおいてモード２のＤＣ予測が選択された場合、次式により予測画素ａ〜ｐが計算される。
【数１１】
2008012918.tif 000013
【００８３】
ここで、ave(・)は（ ）内に示す参照画素の平均画素値を示す。【００８４】
（ ）内の参照画素の一部が利用できない場合は、利用できる参照画素のみの平均画素値が算出されることによって予測信号が生成される。利用できる参照画素が１つも存在しない場合は、予測信号生成部１１３では予測信号の最大輝度値の半分の値（８ビットなら１２８）が予測信号とされる。【００８５】
モード２以外のモードが選択された場合、単方向予測部１７１は図９Ａで示される各予測方向に対して、参照画素を予測画素にコピーする、という予測方法を用いる。具体的に、モード０（垂直予測）が選択された場合の予測信号生成方法を次式に示す。
【数１２】
2008012918.tif 000014
【００８６】
このモード０は、参照画素Ｅ〜Ｈを利用できるときだけ選択することが可能である。モード０では、図１５Ａに示されるように参照画素Ｅ〜Ｈが垂直方向に並ぶ予測画素にそのままコピーされることにより、予測信号が生成される。【００８７】
一方、外挿ブロックにおいてモード４（直交右下予測）が選択されたときの予測信号生成方法を次式に示す。
【数１３】
2008012918.tif 000015
【００８８】
このモード４は、参照画素Ａ〜Ｄ、Ｑ〜Ｔ及びＺを利用できるときにのみ選択することが可能である。モード４では、図１５Ｂに示されるように３タップのフィルタによって生成された値を右下４５度方向に並ぶ予測画素にすることにより、予測信号が生成される。【００８９】
モード０，２，４以外の予測モードに関しても、ほぼ同様の枠組みである。すなわち、予測方向に対して利用できる参照画素または当該参照画素から生成される補間値を予測方向に並ぶ予測画素にコピーするという手法により、予測信号が生成される。【００９０】
（内挿ブロック予測）  
図１３Ａ及び図１３Ｂにおいて、内挿ブロック（２）を予測する際には、既に外挿ブロック（４）の予測が終了しているため、外挿ブロック（４）の画素を参照する予測が可能である。内挿ブロック（３）を予測する際には、外挿ブロック（４）に加えて内挿ブロック（２）の画素を参照する予測が可能である。外挿ブロック（１）を予測する際には、外挿ブロック（４）及び内挿ブロック(２）に加えて、内挿ブロック（３）の画素を参照する予測が可能である。【００９１】
図１４Ｂ、図１４Ｃ及び図１４Ｄに、４ｘ４画素予測における内挿ブロック（１）（２）及び（３）と参照画素との関係が示されている。画素ＲＡ〜ＲＩは図１４Ａに対して新たに追加された参照画素であり、画素ａ〜ｐは予測画素である。【００９２】
（内挿ブロック予測における単方向予測部１７１の処理）  
単方向予測部１７１は、図１６に示されるように内挿ブロック予測について外挿ブロックにおける方向予測及び符号化済みマクロブロック内の参照画素を参照する逆方向の外挿予測の合計１７個のモードを持っており、モード２を除く１７個のモードは２２．５度ずつシフトした予測方向を有する。【００９３】
図１７は、単方向予測部１７１における内挿ブロック予測で行われる単方向予測の予測モード００〜１６の名称を示しており、各名称にモード０〜１６を表すモードインデックス００〜１６が付けられている。図１７では、図１０に示した外挿ブロック予測（順次ブロック予測）の予測モードに対して、逆方向の予測モードが追加されている。【００９４】
すなわち、垂直予測、水平予測、ＤＣ予測、直交左下予測、直交右下予測、垂直右予測、水平下予測、垂直左予測及び水平上予測の各モードは、図１０と図１７とで共通である。一方、図１７では図１０に示すモードに加えて、逆方向垂直予測（モード９）、逆方向水平予測（モード１０）、直交右上予測（モード１１）、直交左上予測（モード１２）、逆方向垂直左予測（モード１３）、逆方向水平上予測（モード１４）、逆方向垂直右予測（モード１５）及び逆方向水平下予測（モード１６）が追加されている。【００９５】
予測モードは、図１３Ａ及び図１３Ｂに示されるような、内挿ブロックに対する参照画素の位置関係及び参照画素の有無に応じて選択可能か否かが決定される。例えば、内挿ブロック（１）では、左右上下方向全てに参照画素が配置されているため、図１８Ａに示されるように全てのモード０〜１６を選択することが不可能である。内挿ブロック（２）では、右側に参照画素が配置されていないため、図１８Ｂに示されるようにモード１０、モード１４及びモード１６を選択することが不可能である。内挿ブロック（３）では、下側に参照画素が配置されていないため、図１８Ｃに示されるようにモード９、モード１３及びモード１５を選択することは不可能である。【００９６】
以下、内挿ブロック予測における単方向予測部１７１の予測信号生成方法について説明する。単方向予測部１７１では、モード２のＤＣ予測が選択された場合、上下左右それぞれの最近傍の参照画素の平均画素値を計算することによって、予測信号を生成する。【００９７】
具体的には、内挿ブロック(１）については、次式に従って予測信号が計算される。
【数１４】
2008012918.tif 000016
【００９８】
内挿ブロック(２）については、次式に従って予測信号が計算される。
【数１５】
2008012918.tif 000017
【００９９】
内挿ブロック(３）については、次式に従って予測信号が計算される。
【数１６】
2008012918.tif 000018
【０１００】
ここで、式（１４）、（１５）及び（１６）において、ave(・)は（ ）内に示す参照画素の平均画素値を示す。【０１０１】
（ ）内の参照画素の一部が利用できない場合は、利用できる参照画素のみの平均画素値が算出されることによって予測信号が生成される。【０１０２】
モード２以外のモードが選択された場合、単方向予測部１７１は図１６で示される各予測方向に対して、参照画素を予測画素にコピーする、という予測方法を用いる。モード０〜モード８についての予測画素の算出は、前述した外挿ブロックと同様の予測角度で予測を行うので、説明を省略する。【０１０３】
モード９〜モード１６については、符号化済みの外挿ブロック（４）の画素または予測順により、マクロブロック内に配置される符号化済みブロックを参照する。具体的には、モード９（逆方向垂直予測）が選択された場合は、下方向で最近傍に位置する参照画素から予測信号を生成する。内挿ブロック（１）及び内挿ブロック(２）については、次式に従って予測信号が計算される。
【数１７】
2008012918.tif 000019
【０１０４】
図１９Ａ及び図１９Ｂは、モード９による内挿ブロック（１）及び内挿ブロック（２）に対する予測信号の生成方法を示している。参照画素ＲＡ〜ＲＤが垂直方向に並ぶ予測画素にそのままコピーされることにより、予測信号が生成される。内挿ブロック（３）については、下方向に参照画素が存在しないためモード９を利用することはできない。【０１０５】
一方、モード１０（逆方向水平予測）が選択された場合には、右方向で最近傍に位置する参照画素から予測信号を生成する。内挿ブロック（１）及び内挿ブロック(３）については、次式に従って予測信号が計算される。
【数１８】
2008012918.tif 000020
【０１０６】
図２０Ａ及び図２０Ｂは、モード１０による内挿ブロック（１）及び内挿ブロック（３）に対する予測信号の生成方法を示している。参照画素ＲＥ〜ＲＨが水平方向に並ぶ予測画素にそのままコピーされることにより、予測信号が生成される。内挿ブロック（２）については、右方向に参照画素が存在しないため、モード１０を利用することはできない。【０１０７】
さらに、モード１２（直交左上予測）が選択された場合、内挿ブロック（１）に対しては、次式に従って予測信号が計算される。
【数１９】
2008012918.tif 000021
【０１０８】
内挿ブロック（２）については、次式に従って予測信号が計算される。
【数２０】
2008012918.tif 000022
【０１０９】
内挿ブロック（３）については、次式に従って予測信号が計算される。
【数２１】
2008012918.tif 000023
【０１１０】
図２１Ａ、図２１Ｂ及び図２１Ｃは、モード１２による内挿ブロック（１）、内挿ブロック（２）及び内挿ブロック（３）に対する予測信号の生成方法を示している。３タップのフィルタによって生成された値が左上４５度の方向にコピーされることによって、予測信号が生成される。【０１１１】
上述したモード２，９及び１１以外の予測モード（モード１２〜１６）についても、図１８Ａ、図１８Ｂ、図１８Ｃ及び図１８Ｄで示される予測方向に対して、参照可能で且つ最近傍の画素から補間された予測信号をコピーする予測方法を用いる。予測方向に対して参照画素が配置されていない場合は、最近傍の参照画素の値をコピーして参照画素を生成して利用してもよいし、または複数の参照画素の内挿補間から仮想的な参照画素を生成し、当該仮想的な参照画素を予測に利用してもよい。【０１１２】
（内挿ブロック予測における双方向予測部１７２の処理）  
双方向予測部１７２は、内挿ブロック予測において単方向予測部１７１で行われる内挿ブロック予測の１７個の予測モード（ＤＣ予測も含む）のうち２つのモードを同時に使用することで、複数の方向性を包含した予測を行う。具体的な予測信号生成法は、式（１０）と同様である。すなわち、選択した２つのモード（式（１０）ではモード“Ｕ”及びモード“Ｖ”）による予測信号を画素単位で平均した値を予測画素の予測信号とする。【０１１３】
図２２は、双方向予測部１７２において内挿ブロック予測で行われる予測モードの名称と対応するモードインデックスを示している。図２２においては、２つのモードを使用する予測モードが存在している。例えば、垂直予測（モード０）と逆方向水平予測（モード１０）を使用する場合の予測モードの名称及びモードインデックスを「垂直・逆方向水平予測」及び「モード００１０」と表記している。各予測モードの番号が１桁の場合は先頭に０を加えて２桁で表記する。モード０とモード００は等しい意味を持つ。【０１１４】
このように、内挿ブロックの双方向予測は、予測モードの方向が完全に正対する単純な内挿予測のみではなく、当該ブロックの僅かな方向性の変化、または複雑さに対応した内挿予測を行うことが可能となる。従って、予測残差信号が低減する効果が得られる。【０１１５】
（画像符号化の処理手順）  
図２３を参照して画像符号化部１００の処理手順を説明する。画像符号化部１００に１フレーム分の入力画像信号１２０が入力されると（ステップＳ１０１）、フレーム分割部１０１によって入力画像信号１２０の符号化対象フレームが複数の画素ブロック（マクロブロック）に分割され、ブロック画像信号１２１が生成される。ブロック画像信号１２１に対して符号化が開始される（ステップＳ１０２）。ブロック画像信号１２１は、予測部１０２に入力される。【０１１６】
予測部１０２では、まず予測順切替情報１４３に基づいてサブブロックの予測順を変更するか否かを判断する（ステップＳ１０３）。予測順を変更しない場合（Ｓ１０３の結果がNO）、block_order_flagがFALSEであり、予測順切替部１７０は式（３）に示すorderに従ってサブブロックを予測符号化する「順次ブロック予測」を選択する。【０１１７】
順次ブロック予測においては、予測モード数切替情報１４４によってサブブロックについて単方向予測を行うか否かを判断する（ステップＳ１０４）。ここで単方向予測を行う場合（Ｓ１０４の結果がYES）、単方向予測部１７１が予測を行い（ステップＳ１０６）、単方向予測を行わない場合（Ｓ１０４の結果がNO）、双方向予測部１７２が予測を行う（ステップＳ１０７）。【０１１８】
一方、予測順を変更する場合（Ｓ１０３の結果がYES）、block_order_flagがTRUEであり、予測順切替部１７０は式（３）が示すorderに従ってサブブロックを予測符号化する「外挿／内挿ブロック予測」を選択する。【０１１９】
外挿／内挿ブロック予測においては、予測モード数切替情報１４４によってサブブロックについて単方向予測を行うか否かを判断する（ステップＳ１０５）。ここで、単方向予測を行う場合（Ｓ１０５の結果がYES）、単方向予測部１７１が予測を行い（ステップＳ１０８）、単方向予測を行わない場合（Ｓ１０５の結果がNO）、双方向予測部１７２が予測を行う（ステップＳ１０９）。【０１２０】
ステップＳ１０６，Ｓ１０７，Ｓ１０８またはＳ１０９の予測が終了すると、マクロブロック内の総コスト（１）（２）（３）または（４）を式（３）及び式（４）から算出する（ステップＳ１１１，Ｓ１１２，Ｓ１１３またはＳ１１４）。ステップＳ１１１，Ｓ１１２，Ｓ１１３またはＳ１１４により算出された各総コストの比較を行い、予測手法を決定する（ステップＳ１１５）。こうして決定された予測手法で直交変換／量子化部１０４ぉよびエントロピー符号化部１０８により符号化を行い、符号化データ１４６を出力する（ステップＳ１１６）。【０１２１】
このとき量子化変換係数情報１２７が逆量子化／逆直交変換部１０５により逆量子化及び逆直交変換が行われることによって、復号された予測残差信号１２８が生成される。復号された予測残差信号１２８とモード選択部１０３から入力される予測信号１２６が加算器１０６により加算されることによって局部復号信号１２９が生成される。局部復号信号１２９は、参照画像メモリ１０６に蓄積される。【０１２２】
入力動画像信号１２０の１フレーム分の予測符号化が終了しているか否かを判定する。（ステップＳ１１７）。予測符号化が終了している場合（Ｓ１１７の結果がYES）、次の１フレームの入力画像信号１２０が入力され、再び予測符号化が行われる。一方、１フレームの予測符号化が終了していない場合（Ｓ１１７の結果がNO）、ステップＳ１０２に戻って次のマクロブロックのブロック画像信号１２１に対して予測符号化が行われる。【０１２３】
次に、図２４を用いて図２３におけるステップＳ１０４及びＳ１０５の予測処理の手順を説明する。  
予測部１０２にブロック画像信号１２１が入力されると、まず予測信号生成部１１３にblk=０で示されるサブブロックをセットする（ステップＳ２０１）。さらに、モード選択部１０３及び内部モード選択部１１４における予測モード及び符号化コストの初期化を行う（ステップＳ２０２）。例えば、予測モード:indexを０にセットし、最小符号化コスト:min_costを無限大にセットする。【０１２４】
次に、予測信号生成部１１３によってblk=０で示されるサブブロックに対して選択可能な１つのモードにより予測信号１２２を生成する（ステップＳ２０３）。ブロック画像信号１２１と予測信号１２２との差分をとって予測残差信号１２３を生成し、式（１）または式（２）に従って符号化コストを計算する（ステップＳ２０４）。【０１２５】
モード選択部１０３は、計算された符号化コストが最小符号化コスト:min_costより小さいか否かを判別し（ステップＳ２０５）、小さい場合（Ｓ２０５の結果がYES）、計算された符号化コストで最小符号化コストを更新するとともに、その際の予測モード情報を最適予測モード情報であることを示すbest_modeインデックスとして保持する（ステップＳ２０６）。計算されたコストが最小符号化コスト:min_costより大きい場合（Ｓ２０５の結果がNO）、モードインデックス:indexをインクリメントし、インクリメント後のindexがモードの最後の番号（MAX）より大きいか否かを判定する（ステップＳ２０７）。【０１２６】
indexがMAXよりも大きい場合（Ｓ２０７の結果がYES）、モード選択部１０３から最適予測モード情報１２５及び予測残差信号１２６を直交変換／量子化部１０４へ渡し、直交変換及び量子化を行う。直交変換／量子化部１０４により得られる量子化変換係数情報１２７をエントロピー符号化部１０８によって予測モードインデックス情報１４１と共にエントロピー符号化する（ステップＳ２０８）。一方、indexがＭＡＸよりも小さい場合（Ｓ２０７の結果がNO）、ステップＳ２０３に戻って次のindexで示される予測モードの予測信号１２２を生成する。【０１２７】
best_modeでの符号化を行うと、内部直交変換／量子化部１１５により得られる量子化変換係数情報１６３を内部逆量子化／逆直交変換部１１６に渡し、逆量子化及び逆変換を行う。内部逆量子化／逆直交変換部１１６により生成される、復号された予測残差信号１６４を内部モード選択部１１４から入力されるbest_modeの予測信号１６２と内部加算器１１７により加算する。内部加算器１１７によって生成される内部復号信号１６５を内部参照画像メモリ１１８に保存する（ステップＳ２０８）。【０１２８】
当該ブロック符号化数:blkをインクリメントし、インクリメント後のblkの値がマクロブロック内の小ブロックの総数:BLK_MAX（４ｘ４画素予測であれば１６、８ｘ８画素予測であれば４）よりも大きいか否かを判断する（ステップＳ２０９）。インクリメント後のblkの値がBLK_MAXより大きい場合（Ｓ２０９の結果がYES）、当該マクロブロック内での予測処理は終了する。一方、インクリメント後のblkがBLK_MAXよりも小さい場合（Ｓ２０９の結果がNO）、ステップＳ２０２に戻って次のblkで示される小ブロックの予測処理を行う。【０１２９】
以上述べたように、本実施形態によれば画像の領域毎の性質（方向性、複雑さ及びテクスチャ）に応じて予測順の切替、及び単方向予測と双方向予測の切替（予測モード数の切替）を適応的に行う。従って予測効率が向上し、結果的に符号化効率が向上する。【０１３０】
本発明の一実施形態に従う画像符号化装置においては、以下のような種々の変更が可能である。  
（ａ）一実施形態では、４ｘ４画素予測に関するフレーム内予測について述べた。しかしながら、８ｘ８画素や１６ｘ１６画素予測においても、あるいは色差信号に関しても、同様のフレーム内予測を行うことができる。【０１３１】
（ｂ）予測モード数については、演算コストを抑えるためにさらに減らしてもよい。予測方向に関しては、２２．５度間隔に限られず、角度間隔をより細かく設定してもよいし、より粗く設定してもよい。【０１３２】
（ｃ）一実施形態では、フレーム内予測の予測モードはモード２を除いて方向予測を利用している。しかしながら、予測モードとしては方向予測のみではなく、平面予測や共一次内挿予測、三次畳み込み内挿予測、最近傍内挿予測といった内挿予測を１つの予測モードとして設定してもよい。【０１３３】
（ｄ）一実施形態では、複数の予測モードから双方向予測モードのために用意された２つのモードでの平均画素値を予測値としている。平均画素値を計算することに代えて、１:３や１:４などの重み係数を用いた加重平均により予測値を求めてもよい。この場合、各予測モードの重み係数はテーブル化されていてもよい。【０１３４】
あるいは最大値フィルタ、最小値フィルタ、メディアンフィルタ、方向予測の角度や使用予測モード数に応じた重み係数を記述した重みテーブルを利用して予測画素を計算してもよい。複数の予測モードから３つ以上の予測モードを選択して予測値を生成してもよい。複数の予測モードからのモードの選択数や上記重みテーブルについては、シーケンス毎、ピクチャ毎、スライス毎、マクロブロック毎、あるいは画素といった単位毎に複数の候補を保持しておき、各単位で切り替えてもよい。【０１３５】
（ｄ）一実施形態においては、１６ｘ１６画素のマクロブロック毎に、サブブロックの予測順を変更するか、変更しないか切り替えている。予測順の変更の切り替えは、３２ｘ３２画素、６４ｘ６４画素、６４ｘ３２画素のような他の画素サイズ毎あるいはフレーム毎に行ってもよい。【０１３６】
（ｅ）一実施形態においては、マクロブロック内のサブブロックをフレームの左上のブロックから右下に向かって順次予測する場合について説明しているが、予測順はこれに限られない、例えば、右下から左上に向かって順次予測を行ってもよいし、フレームの中央から渦巻状に順次予測を行ってもよい。右上から左下に向かって順次予測を行ってもよいし、フレームの周辺部から中心部に向かって順次予測を行ってもよい。【０１３７】
（ｆ）一実施形態においては、予測モードとしてフレーム内予測のみを説明した。しかし、フレーム間の相関を利用して予測を行うフレーム間予測を用いてもよい。複数の予測モード候補から少なくとも一つの予測モードを選択する際、フレーム内予測による予測モードと、フレーム間予測による予測モードのいずれか一方を選択してもよいし、両方を選択してもよい。フレーム内予測による予測モードとフレーム間予測による予測モードの両方を選択すると、参照画素と予測画素との空間的相関及び時間的相関を併用する３次元予測が実現される。【０１３８】
（ｇ）一実施形態で用いるフレーム内予測をフレーム間符号化スライス中で行ってもよい。この場合、フレーム内予測とフレーム間予測の切替は、マクロブロック単位である必要はなく、８ｘ８画素ブロック単位であってもよいし、８ｘ４画素ブロック単位であってもよい。領域分割手法で生成した任意形状の画素領域に対して、同様の処理を行ってもよい。【０１３９】
（ｈ）一実施形態においては、予測順を変更するか否か、及び単方向予測を行うか双方向予測を行うかを、式（１）または式（２）から計算される符号化コストにより切り替えている。符号化コストは式（１）及び（２）に限られず、対象ブロックや隣接ブロックから計算される分散、標準偏差、頻度分布あるいは相関係数といったアクティビティ情報を用いることもできる。該アクティビティ情報に基づいて予測順変更の切替や単方向予測を行うか双方向予測を行うかの切り替えを行ってもよい。【０１４０】
例えば、対象ブロック内の予測画素に対し、左及び上の参照画素との相関係数を計算し、相関係数が例えばある閾値より大きくなれば、予測画素と左及び上の参照画素との相関が高いと判断して予測順を変更しないようにする。例えば、対象ブロック内の分散を計算し、分散値が例えばある閾値より大きい値となれば、ブロック内のテクスチャが複雑であると判断して双方向予測を行う。一方、当該分散値が例えば閾値より小さい値となれば、ブロック内のテクスチャが単調であると判断して単方向予測を行う。【０１４１】
（ｊ）図３中に示した直交変換／量子化部１０４及び逆量子化／逆直交変換部１０５においては、必ずしも全ての予測残差信号に対して処理を行う必要はない。例えば、予測残差信号の一部をそのままエントロピー符号化部１０８で符号化してもよい。あるいは、量子化及び逆量子化の処理を省略してもよいし、直交変換と逆直交変換の処理を省略してもよい。【０１４２】
（シンタクス構造の第１の例）
次に、図２５を参照して画像符号化部１００において用いられるシンタクス構造の概略を説明する。  
シンタクスは主にハイレベルシンタクス２０１、スライスレベルシンタクス２０４及びマクロブロックレベルシンタクス２０７という３つのパートからなる。ハイレベルシンタクス２０１では、スライス以上の上位レイヤのシンタクス情報が詰め込まれている。スライスレベルシンタクス２０４では、スライス毎に必要な情報が明記されている。マクロブロックレベルシンタクス２０７では、マクロブロック毎に必要とされる量子化パラメータの変更値やモード情報などが明記されている。【０１４３】
３つのパートは、さらに細かく複数のシンタクスで構成される。すなわち、ハイレベルシンタクス２０１は、シーケンスパラメータセットシンタクス２０２及びピクチャパラメータセットシンタクス２０３という、シーケンスレベル及びピクチャレベルのシンタクスを含む。スライスレベルシンタクス２０４は、スライスヘッダシンタクス２０５及びスライスデータシンタクス２０６を含む。マクロブロックレベルシンタクス２０７は、マクロブロックレイヤシンタクス２０８及びマクロブロックプレディクションシンタクス２０９を含む。【０１４４】
本実施形態において特に必要となるシンタクス情報は、シマクロブロックレイヤーシンタクス２０８及びマクロブロックプレディクションシンタクス２０９である。以下、シマクロブロックレイヤーシンタクス２０８及びマクロブロックプレディクションシンタクス２０９について図２６及び図２７を用いて詳細に説明する。【０１４５】
図２６のマクロブロックレイヤシンタクス内で示されるblock_order_flagは、予測順の切り替えをマクロブロックで行うか否かを示す。すなわち、フラグ:block_order_flagのFALSEはマクロブロックで予測順の切り替えを行わないことを示し、TRUEはマクロブロックで予測順の切り替えを行うことを示す。【０１４６】
図２７のマクロブロックプレディクションシンタクスには、マクロブロック内のサブブロック（４ｘ４画素ブロックまたは８ｘ８画素ブロック）毎の予測モード情報が明記されている。単方向予測については、複数の予測モードの中から使用するモードを示す予測モード情報をintra4x4(8x8)_pred_mode_l0_orgあるいはintra4x4(8x8)_pred_mode_l1_orgで表す。双方向予測については、予測モード情報は２つのシンタックスを備えている。ここでは、複数の予測モードの中から２種類の予測モードを選択する際のモードインデックスが小さい方（リスト０）の予測モードをintra4x4(8x8)_pred_mode_l0_orgで示し、モードインデックスが大きい方（リスト１）の予測モードをintra4x4(8x8)_pred_mode_l1_orgで示す。モードインデックスが大きい方（リスト０）の予測モードをintra4x4(8x8)_pred_mode_l0_orgで示し、モードインデックスが小さい方（リスト１）の予測モードをintra4x4(8x8)_pred_mode_l1_orgで示してもよい。【０１４７】
以下、４ｘ４画素予測が選択された場合のマクロブロックプレディクションシンタクスの構成について図２７を用いて説明する。  
図２７中のblkConv[block_order_flag][luma4x4BlkIdx]は、図８に示されるような予測順の変換を行う変換テーブルを有しており、符号化対象ブロックのインデックスを出力する。【０１４８】
図２７中のintra4x4_pred_mode_l0[ block_order_flag ][order]は、intra4x4_pred_mode_l0_org[block_order_flag][order]を後述するmodeConv[block_order_flag][intra4x4_pred_mode_l0_org]に従って変換したインデックスのデータである。【０１４９】
図２７中のintra4x4_bi_pred_flagは、当該４ｘ４画素ブロックに対して双方向予測を行うか、行わないかを切り替えるフラグである。すなわち、当該フラグintra4x4_bi_pred_flagのFALSEは当該４ｘ４画素ブロックが単方向予測であることを意味し、TRUEは当該４ｘ４画素ブロックが双方向予測であることを意味する。【０１５０】
図２７中のintra4x4_pred_mode_l1は、intra4x4_pred_mode_l1_org[block_order_flag][order]を後述するmodeConv[block_order_flag][intra4x4_pred_mode_l1_org]に従って変換したインデックスのデータである。当該データintra4x4_pred_mode_l1は、intra4x4_bi_pred_flagがTRUEの際に符号化される。【０１５１】
以下、各シンタックスの詳細について説明する。  
luma4x4Blkに対して、block_order_flag毎にblkConv[block_order_flag][luma4x4BlkIdx]に示すテーブルに従って変換を施し、符号化対象のサブブロックを示すブロックインデックス:orderを算出する（図８参照）。【０１５２】
ブロックインデックス:orderが示す４ｘ４画素ブロックを予測する場合、図２８に示すようにintra4x4_pred_mode_l0_org[block_order_flag][order] を intra4x4_pred_mode_l0[order]に変換する。これは、block_order_flag及びマクロブロック内の４ｘ４画素ブロックの位置によって利用可能な予測モードが異なるために行う処理である。具体的には図２９に示すように、block_order_flagが０（FALSE）の場合、intra4x4_pred_mode_l0にintra4x4_pred_mode_l0_orgがそのまま代入される。このとき、intra4x4_pred_mode_l0は用意された単方向予測の９種類の予測モードのうちどのモードを４ｘ４画素ブロックの予測に用いるかを示すデータとなる。【０１５３】
一方、block_order_flagが１（TRUE:外挿／内挿ブロック予測）の場合、符号化対象マクロブロック内の４ｘ４画素ブロックの位置に応じてテーブルが切り替わる。図３０は、符号化対象マクロブロックに対して左、上、右上及び左上に隣接するマクロブロックが参照可能である場合に、図１３Ｂによって示されるサブブロック（内挿ブロック（１）（２）及び（３）、及び外挿ブロック（４））に対応して利用可能な予測モードとその名称を示している。【０１５４】
図３０より、内挿ブロック（１）は１７個の全てのモードが利用可能であるのに対して、内挿ブロック（２）及び（３）は利用不可能なモードが存在することがわかる。そこで、図２８に示したようにmodeConv[ ][ ]によってintra4x4_pred_mode_l0_org[block_order_flag][order] をintra4x4_pred_mode_l0に変換し、利用不可能な予測モードを予め除去することで、後述するエントロピー符号化の効率が向上する。具体的な変換例を示すと、内挿ブロック（２）の予測モードがモード１５（逆方向垂直右予測）である場合、intra4x4_pred_mode_l0には、“１３”が代入される。内挿ブロック（３）の予測モードがモード１４（逆方向水平上予測）である場合、intra4x4_pred_mode_l0には、“１２”が代入される。【０１５５】
intra4x4_pred_mode_l0を符号化する際は、block_order_flag及びブロックの位置毎に利用可能なモードの状態数が異なるため、符号化対象の４ｘ４画素ブロックの位置に応じてエントロピー符号化（ハフマン符号化、ゴルム符号化、あるいは算術符号化など）を行う。具体的なシンボルのとり得る状態数は、図３０に示されている。以上が、intra4x4_pred_mode_l0_orgの符号化に関するシンタックスの説明である。【０１５６】
intra4x4_bi_pred_flagがTRUEの場合、さらにintra4x4_pred_mode_l1_orgを符号化する。intra4x4_pred_mode_l1_orgの符号化に関しては、intra4x4_pred_mode_l0_orgのときほぼ同様の処理を行う。【０１５７】
まず、modeConv[ ][ ]に従ってintra4x4_pred_mode_l1_org をintra4x4_pred_mode_l1に変換し、intra4x4_pred_mode_l1をblock_order_flagとorderに応じた可変長符号によりエントロピー符号化を行う。但し、intra4x4_pred_mode_l1はintra4x4_pred_mode_l0との間で同一の予測モードはなり得ないことから、intra4x4_pred_mode_l0の状態数から１を減じた数がintra4x4_pred_mode_l1のとり得るシンボルの状態数となる。この状態数を基に、エントロピー符号化を行う。【０１５８】
他の例として、intra4x4(8x8)_pred_mode_l0_orｇ及びintra4x4(8x8)_pred_mode_l1_orgをmodeConv[ ][ ]に従って変換せずに、そのままエントロピー符号化してもよい。以上が、各シンタックスの詳細である。【０１５９】
ここで、block_order_flag及びintra4x4_bi_pred_flagについては、これらを符号化してから符号化ストリームに多重化して伝送してもよい。一方、このような多重化及び伝送をせず、符号化済みブロック及び画素から計算されるアクティビティ情報によりblock_order_flag及びintra4x4_bi_pred_flagの情報を示してもよい。この場合、復号側においても符号化側と同様のロジックを用いることにより、block_order_flag及びintra4x4_bi_pred_flagの情報は符号化側と同一の情報が示される。【０１６０】
８ｘ８画素予測については、図２７に示すとおり４ｘ４画素予測の際のシンタクスと同様であるため、説明を省略する。【０１６１】
他の例として、intra4x4_pred_mode_l0_orgを隣接ブロックにおけるintra4x4_pred_mode_l0_orgとの相関を利用して符号化してもよい。具体的なシンタックス構造は図３１に示されており、図２７に示すマクロブロックプレディクションシンタクスの構成が図３１に置き換えられる。図３１中のprev_intra4x4_pred_mode_l0_flag[ block_order_flag ][order]は、後述する参照ブロックから計算されるリスト０の予測モードref_pred_mode_orgと当該ブロックのリスト０の予測モードintra4x4_pred_mode_l0_org[block_order_flag][order]とが同一か否かを示すフラグである。【０１６２】
図３２は、prev_intra4x4_pred_mode_l0_flag[ block_order_flag ][order]の導出方法を示している。ここで、図３２中のref_blkA_mode_l0はブロックblkAに対して左に位置する最近傍の符号化済みのブロックblkAのリスト０の予測モードを示し、ref_blkB_mode_l0はブロックblkBに対して上に位置する最近傍の符号化済みのブロックのリスト０の予測モードを示す。ref_blkA_mode_l0及びref_blkB_mode_l0は、block_order_flag毎に位置が異なり、具体的には図３３、４４Ａ、図４４Ｂ、図４４Ｃ及び図４４Ｄに示されている。block_order_flagがFALSEの場合、blkA及びblkBは当該ブロックに隣接する左及び上の符号化済みブロックとなる（図３３参照）。一方、当該フラグがTRUEの場合、ブロックblkA及びblkBはblkA及びblkBから最近傍の左及び上の符号化済みブロックとなる（図４４A、図４４Ｂ、図４４Ｃ及び図４４Ｄ参照）。【０１６３】
prev_intra4x4_pred_mode_l0_flag[ block_order_flag ][order]がTRUEの場合、隣接ブロックとの相関を利用して１ビットでintra4x4_pred_mode_l0_orgの情報を示すことができるため、符号化効率が向上する。【０１６４】
一方、prev_intra4x4_pred_mode_l0_flag[ block_order_flag ][order]がFALSEの場合、prev_intra4x4_pred_mode_l0_flag[ block_order_flag ][order]以外のリスト０の予測モードとして、rem_intra4x4_pred_mode_l0[ block_order_flag ][order]が示される。これは、rem_intra4x4_pred_mode_l0[ block_order_flag ][order]からref_pred_mode_orgを除く予測モードのうちどの予測モードであるかを示すデータである。当該データは、リスト０の予測モードでとり得るシンボルからref_pred_mode_orgを除いた状態数を基にエントロピー符号化される。【０１６５】
８ｘ８画素予測については、図３１に示すとおり４ｘ４画素予測の際のシンタクスと同様であるため、説明を省略する。  
上述のようなシンタクス構造を備えることにより、予測モードの符号化においても符号化効率が向上する。【０１６６】
（シンタクス構造の第２の例）  
図３４は、画像符号化部１００で用いられるシンタクス構造の他の例を示している。必要となるシンタクス情報は図２５中のマクロブロックレイヤシンタクス２０８であり、ここでは図２６に示したマクロブロックレイヤシンタクスの構成を図３４に置き換える。各シンタクスを以下で説明する。【０１６７】
図３４のマクロブロックレイヤシンタクス内に示されるblock_order_flagは、予測順の切り替えを当該マクロブロックで行うか否かを示すフラグである。block_order_flagがTRUEであるときは予測順を切り替え、外挿／内挿ブロック予測を行う。一方、block_order_flagがFALSEであるときは予測順を切り替えず、順次ブロック予測を行う。block_order_flagがTRUEのときの予測順の具体的な記述方法は、block_order_in_mb_modeに示される。block_order_in_mb_modeは、以下のようにして予測順を示す。【０１６８】
予測モードがモード０の場合、第１の実施形態に示す外挿／内挿ブロック予測を行う際の予測順を与える。予測モードがモード１の場合、予測順の組み合わせをインデックスに変換し、インデックス情報で予測順を示す。４つのブロックに対して予測順を決定する際は、順列により２４通り（ = ４Ｐ４）から順次ブロック予測を除く２３通りの予測順から、マクロブロック毎に１つを決定する。具体的には、図３４におけるblock_order_idxが前記ブロック組み合わせインデックスを与える。予測モードがモード２の場合、各ブロックに対して順序番号を直接示す。４ｘ４画素ブロックに対しては、１６個のblock_order4x4[BLK]にその順番が示される。また、８ｘ８画素ブロックに対しては、４個のblock_order8x8[BLK]にその順番が示されている。【０１６９】
上述したシンタクス構造は、さらに以下のような変形が可能である。  
（ａ）block_order_in_mb_modeが１のとき、最初に符号化する１ブロックのみを示してもよい。  
（ｂ）４ｘ４画素予測では、予測順のインデックスが膨大となることから、８ｘ８画素ブロック単位で示される４ｘ４画素ブロックの予測順を４回繰り返すことで、インデックスの情報を削減してもよい。  
（ｃ）block_order_in_mb_modeが２の場合、block_order4x4[BLK]については外部からのテーブルによって示してもよいし、隣接するblock_order4x4[ ]との差分を可変の符号長で表現してもよい。  
（ｄ）最後のblock_order4x4[15]は、残りの一つの予測順であることから、block_order4x4[15]を示す必要は無い。８ｘ８画素ブロックについても同様である。４ｘ４画素予測の場合、８ｘ８画素ブロック単位で示される４ｘ４画素ブロックの予測順を４回繰り返すことで、block_order4x4の情報を削減してもよい。  
（ｅ）block_order_in_mb_mode, block_order_idx, block_order4x4, block_order8x8といった情報の値は、シーケンス毎、ピクチャ毎、スライス毎あるいはマクロブロック毎に適応的に設定されてもよい。【０１７０】
（シンタクス構造の第３の例）  
図３５、図３６、図３７、図３８及び図３９は、画像符号化部１００で用いられるシンタクスの構造のさらに別の例を示している。本例で必要となるシンタクス情報は、図２５中のシーケンスパラメータセットシンタクス７０２、ピクチャパラメータセットシンタクス７０３、スライスヘッダシンタクス７０５及びマクロブロックレイヤシンタクス７０８であり、第１の例のシンタクス構造に対して図３５、図３６、図３７、図３８及び図３９で示されるシンタクスが追加される。以下、各シンタクスについて説明する。【０１７１】
図３５のシーケンスパラメータセットシンタクス内に示されるblock_order_in_seq_flagは、予測順の切り替えをシーケンス内で可能とするか否かを示すフラグである。block_order_in_seq_flagがTRUEであるときは、シーケンス内で予測順を切り替えることが可能である。一方、block_order_in_seq_flagがFALSEであるときは、シーケンス内で予測順を切り替えることができない。【０１７２】
図３６のピクチャパラメータセットシンタクス内に示されるblock_order_in_pic_flagは、予測順の切り替えを当該ピクチャ内で可能とするか否かを示すフラグである。block_order_in_pic_flagがTRUEであるときは、ピクチャ内で予測順を切り替えることが可能である。一方、block_order_in_pic_flagがFALSEであるときは、ピクチャ内で予測順を切り替えることができない。【０１７３】
図３７のスライスヘッダシンタクス内に示されるblock_order_in_slice_flagは、予測順の切り替えを当該スライス内で可能とするか否かを示すフラグである。block_order_in_slice_flagがTRUEであるときは、スライス内で予測順を切り替えることが可能である。一方、block_order_in_slice_flagがFALSEであるときは、スライス内で予測順を切り替えることができない。【０１７４】
図３８のマクロブロックレイヤシンタクス内に示されるblock_order_flagは、予測順の切り替えを当該マクロブロックで行うか否かを示すフラグである。block_order_flagがTRUEであるときは予測順を切り替え、外挿／内挿ブロック予測を行う。一方、block_order_flagがFALSEであるときは、予測順を切り替えず、順次ブロック予測を行う。block_order_flagは、block_order_in_slice_flagがTRUEであるときにのみ有効であり、またマクロブロックの予測タイプがフレーム内予測のときのみ利用できる。【０１７５】
図３５のシーケンスパラメータセットシンタクス内に示されるintra_bi_pred_in_seq_flagは、双方向予測が当該シーケンス内で可能とするか否かを示すフラグである。intra_bi_pred_in_seq_flagがTRUEであるときは、シーケンス内で双方向予測を行うことが可能である。一方、intra_bi_pred_in_seq_flagがFALSEであるときは、シーケンス内で双方向予測を行うことができない。【０１７６】
図３６のピクチャパラメータセットシンタクス内に示されるintra_bi_pred_in_pic_flagは、双方向予測が当該ピクチャ内で可能とするか否かを示すフラグである。intra_bi_pred_in_pic_flagがTRUEであるときは、ピクチャ内で双方向予測を行うことが可能である。一方、intra_bi_pred_in_pic_flagがFALSEであるときは、ピクチャ内で双方向予測を行うことができない。【０１７７】
図３７のスライスヘッダシンタクス内に示されるintra_bi_pred_in_slice_flagは、双方向予測がスライス内で可能とするか否かを示すフラグである。intra_bi_pred_in_slice_flagがTRUEであるときは、スライス内で双方向予測を行うことが可能である。一方、intra_bi_pred_in_slice_flagがFALSEであるときは、スライス内で双方向予測を行うことができない。【０１７８】
図３８のマクロブロックレイヤシンタクス内に示されるintra_bi_pred_in_mb_flagは、双方向予測がマクロブロック内で可能とするか否かを示すフラグである。intra_bi_pred_in_mb_flagがTRUEであるときは、マクロブロック内で双方向予測を行うことが可能である。一方、intra_bi_pred_in_mb_flagがFALSEであるときは、マクロブロック内で双方向予測を行うことができない。【０１７９】
図３９のマクロブロックプレディクションシンタクス内に示されるintra4x4_bi_pred_flagは、双方向予測が予測ブロック内で行うか否かを示すフラグである。intra4x4_bi_pred_flagがTRUEであるときは、予測ブロック内で双方向予測を行う。一方、intra4x4_bi_pred_flagがFALSEであるときは、マクロブロック内で双方向予測を行わない。intra4x4_bi_pred_flagは、intra_bi_pred_in_mb_flagがTRUEであるときにのみ有効であり、またマクロブロックの予測タイプがフレーム内予測のときのみ利用できる。なお、上記シンタックスの初期値はFALSEとする。【０１８０】
＜画像復号装置について＞  
図４０に示される本発明の一実施形態に従う画像復号装置には、図示しない画像符号化装置（例えば、図１の画像符号化装置）から送出され、伝送系または蓄積系を経て送られてきた符号化ビットストリーム３２０が入力される。符号化ビットストリーム３２０は入力バッファ９０１に一度蓄えられ、さらに逆多重化部３０２により１フレーム毎にシンタクスに基づいて分離された後、復号部３０４に入力される。復号部３０４はエントロピー復号部３０５、逆量子化／逆直交変換部３０６、加算器３０７、参照画像メモリ３０８及び予測信号生成部３０９を有する。【０１８１】
復号部３０４内では、逆多重化部３０２により分離された符号化ビットストリームがエントロピー復号部３０３に入力される。エントロピー復号部３０３では、図２５に示されるシンタクス構造に従って、符号化ビットストリームのハイレベルシンタクス、スライスレベルシンタクス及びマクロブロックレベルシンタクスのそれぞれに対して、符号列がエントロピー復号される。【０１８２】
これによりエントロピー復号部３０３から、量子化変換係数情報３２１及び量子化パラメータ情報のほか、予測モードインデックス情報３３１、ブロックサイズ切替情報３３２、予測順切替情報３３３、予測モード数切替情報３３４といった予測モードに関する情報（以後、予測モードインデックス情報、ブロックサイズ切替情報、予測順切替情報及び予測モード数切替情報を予測モード情報と総称する）が出力される。量子化変換係数情報３２１は、予測残差信号を直交変換及び量子化した情報である。量子化パラメータ情報は、量子化幅（量子化ステップサイズ）及び量子化マトリクスなどの情報を含む。【０１８３】
量子化変換係数情報３２１は、復元された量子化パラメータに従って逆量子化／逆直交変換部３０６により逆量子化され、さらにＩＤＣＴのような逆直交変換が施される。ここでは、逆直交変換について説明したが、符号化側でウェーブレット変換などが行われている場合、逆量子化／逆変換部３０６は対応する逆量子化／逆ウェーブレット変換などを行ってもよい。【０１８４】
逆量子化／逆変換部３０６からは予測誤差信号３２２が出力され、加算器３０７に入力される。加算器３０７では、予測信号生成部３０９から出力される予測信号３２３と予測残差信号３２２との加算が行われ、復号画像信号３２４が生成される。復号画像信号３２４は、参照画像メモリ３０８に入力されるとともに出力バッファ３１１に渡され、出力バッファ３１１から復号化制御部３１０が管理するタイミングで出力される。【０１８５】
一方、エントロピー復号部３０５により復号された予測モードインデックス情報３３１、ブロックサイズ切替情報３３２、予測順切替情報３３３及び予測モード数切替情報３３４は予測信号生成部３０９に入力される。予測信号生成部３０９には、さらに参照画像メモリ３０８から既に復号されている参照画像信号３２５が入力される。予測信号生成部３０９は、予測モードインデックス情報３３１、ブロックサイズ切替情報３３２、予測順切替情報３３３及び予測モード数切替情報３３４を基に、参照画像信号３２５を参照して予測信号３２３を生成する。復号制御部３１０は、復号部３０４の復号処理全般の制御、例えば入力バッファ３０１及び出力バッファ３１１の制御や、復号タイミングの制御などを行う。【０１８６】
＜予測信号生成部３０９について＞
次に、図４１を参照して予測信号生成部３０９について説明する。図４１に示す予測信号生成部３０９は、前述した画像符号化装置内の予測信号生成部１１３と基本的に同様である。図４１において、予測順切替部３７０は参照画像メモリ３０８からの参照画像信号３２５に対して予測順切替情報３３３に基づいてマクロブロック中のサブブロックの予測順を切り替える。予測順切替部３７０によって予測順が切り替えられた画像信号は、単方向予測部３７１及び双方向予測部３７２に入力される。【０１８７】
単方向予測部３７１は、予測モードインデックス情報３３１に基づいて、用意された複数の予測モードのうち一つの予測モードを選択し、選択した予測モード及びブロックサイズ切替情報３３２に従って、参照画像信号３２５を参照して予測信号を生成する。双方向予測部３７２は、予測モードインデックス情報３３１に基づいて、前記用意された複数の予測モードのうち２つの予測モードを選択し、選択した予測モード及びブロックサイズ切替情報３３２に従って、参照画像信号３２５を参照して予測信号を生成する。単方向予測部３７１及び双方向予測部３７２から出力される予測信号は、予測モード数切替部３７３に入力される。ここで、予測モードはサブブロックの予測信号を生成する際の復号済み画素の参照方法を規定する。【０１８８】
予測モード数切替器３７３は、予測モード数切替情報３４４に従って制御されることにより、単方向予測部３７１によって生成された予測信号及び双方向予測部３７２によって生成された予測信号のいずれかを選択し、選択した予測信号３２３を出力する。【０１８９】
予測順切替部３７０は予測順切替情報３３３により制御され、予測順切替情報３３３を表す後述のフラグ:block_order_flagの値によって前記基準となるインデックス:blkを変換することによりサブブロックの予測順を切り替える。サブブロックの順番:idxに対して、実際の符号化時のサブブロックのインデックス:order（予測順を表す）は、式（３）に示した通りである。また、blkConv[ ][ ]の変換のための変換テーブルは、図８に示したとおりである。【０１９０】
フラグ:block_order_flagが０（FALSE）の場合、実際に予測符号化を行う際のサブブロックのインデックス:orderは符号化対象のサブブロックのインデックス:idxそのものであり、ブロックの予測及び予測順を変更しない（以後、このような予測順による予測を順次予測という）。図６Ｂ及び図７Ｂは、それぞれ図６Ａ及び図７Ａに対する順次予測による予測順を示している。【０１９１】
一方、フラグ:block_order_flagが１(TRUE)の場合、実際に予測符号化を行うサブブロックのインデックス:orderは、４つのサブブロックのうち先に対角の１ブロックを外挿により予測し、残りの３ブロックを外挿予測または内挿により予測する、という予測順を示す。以後、このような予測順による予測を外挿／内挿予測という。図６Ｃ及び図７Ｃは、それぞれ図６Ａ及び図７Ａに対する外挿／内挿予測による予測順変更例を示している。【０１９２】
上述のようにして予測順切替部３７０により予測順が切り替えられたサブブロックは、単方向予測部３７１または双方向予測部３７２に入力されることによって、各サブブロックに対応する予測信号が生成される。モード数切替スイッチ３７３は、予測モード数切替情報３３４が予測モード数“１”を示しているときは単方向予測部３７１により得られる予測信号を出力し、予測モード数切替情報３３４が予測モード数“２”を示しているときは双方向予測部３７２により得られる予測信号を出力する。モード数切替スイッチ３７３から出力される予測信号は、予測信号生成部３０９の出力３２３として取り出される。【０１９３】
モード数切替スイッチ３７３は、予測ブロック（４ｘ４画素ブロックまたは８ｘ８画素ブロック）毎に与えられる予測モード数切替情報３３４に従って制御されることにより、予測信号３２３を出力する。具体的に４ｘ４画素予測の際には、intra4x4_bi_pred_flagが４ｘ４画素ブロック毎に記述されている。【０１９４】
すなわち、モード数切替スイッチ３７３は予測モード数切替情報３３４であるフラグ:intra4x4_bi_pred_flagがFALSEの場合は、単方向予測部３７１により得られる予測信号を選択し、intra4x4_bi_pred_flagがTRUEの場合は双方向予測部１７２により得られる予測信号を選択する。【０１９５】
単方向予測部３７１及び双方向予測部３７２の具体的な処理は、画像符号化装置における単方向予測部１７１及び双方向予測部１７２と同様であるため、説明を省略する。【０１９６】
シンタクス構造は、基本的に図１９に示した通りであが、以下では４ｘ４画素予測が選択された場合のマクロブロックプレディクションシンタクスの構成について図２７を用いて説明する。  
図２７中のblkConv[block_order_flag][luma4x4BlkIdx]は、図８に示されるような予測順の変換を行う変換テーブルを有しており、復号対象ブロックのインデックスを出力する。intra4x4_pred_mode_l0[ block_order_flag ][order]は、復号されたインデックスのデータである。【０１９７】
図２７中のintra4x4_bi_pred_flagは、当該４ｘ４画素ブロックに対して双方向予測を行うか、行わないかを切り替えるフラグである。すなわち、当該フラグintra4x4_bi_pred_flagのFALSEは当該４ｘ４画素ブロックが単方向予測であることを意味し、TRUEは当該４ｘ４画素ブロックが双方向予測であることを意味する。【０１９８】
図２７中のintra4x4_pred_mode_l1は、復号されたインデックスのデータである。当該データintra4x4_pred_mode_l1は、intra4x4_bi_pred_flagがTRUEの際に復号される。【０１９９】
以下、各シンタックスの詳細について説明する。【０２００】
luma4x4Blkに対して、block_order_flag毎にblkConv[block_order_flag][luma4x4BlkIdx]に示すテーブルに従って変換を施し、符号化対象のサブブロックを示すブロックインデックス:orderを算出する（図８参照）。【０２０１】
ブロックインデックスorderが示す４ｘ４画素ブロックを復号する場合、intra4x4_pred_mode_l0[block_order_flag][order]を復号し、これを図４２に示すようにintra4x4_pred_mode_l0_org[block_order_flag][order]に逆変換する。これは、block_order_flag及びマクロブロック内の当該ブロックの位置に応じて利用可能な予測モードが異なるために行う処理である。具体的には図４３に示すように、block_order_flagが０（FALSE）の場合、intra4x4_pred_mode_l0_orgにintra4x4_pred_mode_l0の値がそのまま代入される。このとき、intra4x4_pred_mode_l0_orgは用意された単方向予測の９種類の予測モードのうちどの予測モードを４ｘ４画素ブロックの復号に用いるかを示すデータとなる。【０２０２】
一方、block_order_flagが１（TRUE:外挿／内挿ブロック予測）の場合、当該４ｘ４画素ブロックがマクロブロック内のどこに位置するかに応じて、テーブルが切り替わる。具体的には、内挿ブロック(２）に対して復号されたintra4x4_pred_mode_l0[1][order]が１３である場合、当該予測モードintra4x4_pred_mode_l0_org[1][order]は１５（逆方向垂直右予測）となる。また、内挿ブロック(３）に対して復号されたintra4x4_pred_mode_l0[1][order]が１２である場合、当該予測モードintra4x4_pred_mode_l0_org[1][order]は１４（逆方向水平上予測）となる。【０２０３】
intra4x4_bi_pred_flagがTRUEの場合、さらにintra4x4_pred_mode_l1[block_order_flag][order]を復号する。復号されたintra4x4_pred_mode_l0[block_order_flag][order]は、図４３に示されるようにintra4x4_pred_mode_l0_org[block_order_flag][order]に変換される。【０２０４】
他の例においては、block_order_flag及びintra4x4_bi_pred_flagの情報は符号化ビットストリームから分離されて復号されるが、復号済みのブロック及び画素から計算される前記アクティビティ情報により、block_order_flag及びintra4x4_bi_pred_flagの情報を示してもよい。この場合、符号化側と同様のロジックを用いることにより、block_order_flag及びintra4x4_bi_pred_flagの情報は、符号化側と同一のものが示されるため、符号化ビットストリームから分離及び復号の処理は必要とされない。【０２０５】
さらに別の例として、intra4x4_pred_mode_l0_orgを隣接ブロックにおけるintra4x4_pred_mode_l0_orgとの相関を利用して符号化してもよい。具体的なシンタックス構造は図３１に示されており、図２７に示すマクロブロックプレディクションシンタクスの構成が図３１に置き換えられる。図３１中のprev_intra4x4_pred_mode_l0_flag[ block_order_flag ][order]は、後述する参照ブロックから計算されるリスト０の予測モードref_pred_mode_orgと、対象ブロックのリスト０の予測モードintra4x4_pred_mode_l0_org[block_order_flag][order]とが同一か否かを示すフラグである。【０２０６】
図３２は、prev_intra4x4_pred_mode_l0_flag[ block_order_flag ][order]の導出方法を示している。ここで、図３２中のref_blkA_mode_l0は、ブロックblkAに対して左に位置する最近傍の符号化済みのブロックblkAのリスト０の予測モードを示す。ref_blkB_mode_l0は、ブロックblkBに対して上に位置する最近傍の符号化済みのブロックのリスト０の予測モードを示す。【０２０７】
ref_blkA_mode_l0及びref_blkB_mode_l0は、block_order_flag毎に位置が異なり、具体的には図３３、４４Ａ、図４４Ｂ、図４４Ｃ及び図４４Ｄに示されている。block_order_flagがFALSEの場合、blkA及びblkBは対象ブロックに隣接する左及び上の復号済みブロックとなる（図３３参照）。一方、block_order_flagがTRUEの場合、ref_blkA及びref_blkBは対象ブロックから最近傍の左及び上の復号済みブロックとなる（図４４A、図４４Ｂ、図４４Ｃ及び図４４Ｄ参照）。【０２０８】
prev_intra4x4_pred_mode_l0_flag[ block_order_flag ][order]がTRUEの場合、対象ブロックと隣接ブロックとの相関を利用し、１ビットでintra4x4_pred_mode_l0_orgの情報を示す。【０２０９】
一方、prev_intra4x4_pred_mode_l0_flag[ block_order_flag ][order]がFALSEの場合、prev_intra4x4_pred_mode_l0_flag[ block_order_flag ][order]以外のリスト０の予測モードとして、rem_intra4x4_pred_mode_l0[ block_order_flag ][order]が示される。rem_intra4x4_pred_mode_l0[ block_order_flag ][order]からref_pred_mode_orgを除く予測モードのうちどの予測モードであるかを示すデータは、リスト０の予測モードに従ってとり得るシンボルからref_pred_mode_orgを除いた状態数を基に復号される。【０２１０】
８ｘ８画素予測については、図２７に示すとおり４ｘ４画素予測の際のシンタクスと同様であるため説明を省略する。【０２１１】
次に、他の実施形態に従う画像符号化装置について、今までの説明と異なる部分を中心に説明する。図３３のマクロブロックレイヤシンタクス内に示されるblock_order_flagは、予測順の切り替えをマクロブロックで行うか否かを示すフラグである。block_order_flagがTRUEであるときは、予測順を切り替えて外挿／内挿ブロック予測を行う。一方、block_order_flagがFALSEであるときは、予測順の切り替えを行わず、順次ブロック予測を行う。【０２１２】
block_order_flagがTRUEの際には、予測順の具体的な記述方法がblock_order_in_mb_modeによって示される。block_order_in_mb_modeは以下に従って、予測順を示す。【０２１３】
（ａ）モードが０の場合、外挿／内挿ブロック予測を行う際の予測順を与える。【０２１４】
（ｂ）モードが１の場合、予測順の組み合わせをインデックス情報に変換し、インデックス情報で予測順を示す。４つのブロックに対して予測順を決定する際は、順列により４Ｐ４＝２４通りから順次ブロック予測を除く２３通りの予測順から、マクロブロック毎に１つを決定する。具体的には、図３３中のblock_order_idxが前記ブロック組み合わせインデックスを与える。【０２１５】
（ｃ）モードが２の場合、各ブロックに対して順序番号を直接示す。４ｘ４画素ブロックに対しては、１６個のblock_order4x4[ BLK]にその順番が示される。また、８ｘ８画素ブロックに対しては、４個のblock_order8x8[BLK]にその順番が示されている。【０２１６】
別の例として、block_order_in_mb_modeが１の際に、最初に復号する１ブロックのみを示してもよい。４ｘ４画素予測の際は、予測順のインデックスが膨大となることから、８ｘ８画素ブロック単位で示される４ｘ４画素ブロックの順番を４回繰り返し、インデックスの情報を削減してもよい。【０２１７】
また、block_order_in_mb_modeが２の際に、block_order4x4[ BLK]は外部からのテーブルによって示してもよい。隣接するblock_order4x4[ ]との差分を計算し、可変の符号長で表現してもよい。最後のblock_order4x4[15]は残りの一つの順番となることから、block_order4x4[15]を示す必要は無い。８ｘ８画素ブロックに対しても同様である。４ｘ４画素予測の際は、８ｘ８画素ブロック単位で示される４ｘ４画素ブロックの順番を４回繰り返し、block_order4x4の情報を削減してもよい。【０２１８】
block_order_in_mb_mode，block_order_idx，block_order4x4及びblock_order8x8といった情報はシーケンス毎、ピクチャ毎、スライス毎、マクロブロック毎に適応的に値を設定してもよい。【０２１９】
本発明の一実施形態によると、予測順を選択可能としたことによって、例えば左や上の画素との相関を利用する外挿予測のみではなく、右や下の画素との相関を効果的に利用した内挿予測を行うことができる。また、使用可能な予測モード数を選択できるため、例えば複数の予測モードによる予測信号を画素単位で計算する双方向予測を選択することで、複雑なテクスチャに対しても高い予測効率が実現される。さらに、予測順切替情報や予測モード選択数情報については、シーケンス毎、ピクチャ毎、スライス毎、マクロブロック毎、あるいはサブブロック毎に適応的に切り替えて符号化できる。従って、符号化効率の高い画像符号化及び符号化された画像の復号を実現できる。【０２２０】
以上説明した一実施形態に基づく画像符号化の処理及び画像復号の処理は、ハードウェアでも実現可能であるが、パーソナルコンピュータのようなコンピュータを用いてソフトウェアにより実行することも可能である。従って、本発明の観点によると、上述した画像符号化の処理及び画像復号の処理の少なくとも一方をコンピュータに行わせるための画像符号化プログラムまたは画像復号プログラム、あるいは該プログラムを格納したコンピュータ読み取り可能な記憶媒体を提供することもできる。【０２２１】
なお、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
【産業上の利用可能性】
【０２２２】
本発明は、動画像や静止画像の高能率圧縮符号化／復号技術に利用することが可能である。
【図１】
2008012918.tif 000024
【図２Ａ】
2008012918.tif 000025
【図２Ｂ】
2008012918.tif 000026
【図３Ａ】
2008012918.tif 000027
【図３Ｂ】
2008012918.tif 000028
【図３Ｃ】
2008012918.tif 000029
【図４】
2008012918.tif 000030
【図５】
2008012918.tif 000031
【図６Ａ】
2008012918.tif 000032
【図６Ｂ】
2008012918.tif 000033
【図６Ｃ】
2008012918.tif 000034
【図６Ｄ】
2008012918.tif 000035
【図７Ａ】
2008012918.tif 000036
【図７Ｂ】
2008012918.tif 000037
【図７Ｃ】
2008012918.tif 000038
【図７Ｄ】
2008012918.tif 000039
【図８】
2008012918.tif 000040
【図９Ａ】
2008012918.tif 000041
【図９Ｂ】
2008012918.tif 000042
【図９Ｃ】
2008012918.tif 000043
【図９Ｄ】
2008012918.tif 000044
【図１０】
2008012918.tif 000045
【図１１】
2008012918.tif 000046
【図１２Ａ】
2008012918.tif 000047
【図１２Ｂ】
2008012918.tif 000048
【図１３Ａ】
2008012918.tif 000049
【図１３Ｂ】
2008012918.tif 000050
【図１４Ａ】
2008012918.tif 000051
【図１４Ｂ】
2008012918.tif 000052
【図１４Ｃ】
2008012918.tif 000053
【図１４Ｄ】
2008012918.tif 000054
【図１５Ａ】
2008012918.tif 000055
【図１５Ｂ】
2008012918.tif 000056
【図１６】
2008012918.tif 000057
【図１７】
2008012918.tif 000058
【図１８Ａ】
2008012918.tif 000059
【図１８Ｂ】
2008012918.tif 000060
【図１８Ｃ】
2008012918.tif 000061
【図１８Ｄ】
2008012918.tif 000062
【図１９Ａ】
2008012918.tif 000063
【図１９Ｂ】
2008012918.tif 000064
【図２０Ａ】
2008012918.tif 000065
【図２０Ｂ】
2008012918.tif 000066
【図２１Ａ】
2008012918.tif 000067
【図２１Ｂ】
2008012918.tif 000068
【図２１Ｃ】
2008012918.tif 000069
【図２２】
2008012918.tif 000070
【図２３】
2008012918.tif 000071
【図２４】
2008012918.tif 000072
【図２５】
2008012918.tif 000073
【図２６】
2008012918.tif 000074
【図２７】
2008012918.tif 000075
【図２８】
2008012918.tif 000076
【図２９】
2008012918.tif 000077
【図３０】
2008012918.tif 000078
【図３１】
2008012918.tif 000079
【図３２】
2008012918.tif 000080
【図３３】
2008012918.tif 000081
【図３４】
2008012918.tif 000082
【図３５】
2008012918.tif 000083
【図３６】
2008012918.tif 000084
【図３７】
2008012918.tif 000085
【図３８】
2008012918.tif 000086
【図３９】
2008012918.tif 000087
【図４０】
2008012918.tif 000088
【図４１】
2008012918.tif 000089
【図４２】
2008012918.tif 000090
【図４３】
2008012918.tif 000091
【図４４Ａ】
2008012918.tif 000092
【図４４Ｂ】
2008012918.tif 000093
【図４４Ｃ】
2008012918.tif 000094
【図４４Ｄ】
2008012918.tif 000095
【国際調査報告】
2008012918.tif 000096
2008012918.tif 000097
2008012918.tif 000098