(57)【特許請求の範囲】
【請求項１】
動画を構成する画像を複数の画素からなるブロックに分割し、分割されたブロック単位で符号化する画像符号化装置であって、
前記符号化対象ブロックの予測符号化のモードが、前記符号化対象ブロックを含む画像とは異なる画像のうちの画像部分を参照する第１のモードにおいて、前記符号化対象ブロックの近傍ブロックに関連付けられたベクトルを含む候補リストから前記符号化対象ブロックのためのベクトルを選択し、前記選択されたベクトルに対応するインデックスを符号化するとともに、前記予測符号化が第１のモードであることを示すデータを符号化する第１の符号化手段と、
前記符号化対象ブロックの予測符号化のモードが、前記符号化対象ブロックを含む画像のうちの画像部分を参照することを示すために前記符号化対象ブロックと前記画像部分との空間的な関係を示すベクトルの符号化を許容する第２のモードにおいて、前記符号化対象ブロックの近傍ブロックに関連付けられたベクトルを含む候補リストから前記符号化対象ブロックのためのベクトルを選択し、前記選択されたベクトルに対応するインデックスを符号化するとともに、前記予測符号化が第２のモードであることを示すデータを符号化する第２の符号化手段を有し、
前記１の符号化手段および前記第２の符号化手段は、前記候補リストに含まれる前記ベクトルが所定数に満たない場合、前記所定数となるまでゼロベクトルを追加することを特徴とする画像符号化装置。
【請求項２】
前記符号化手段は、さらに、前記所定数として、前記符号化対象ブロックの予測符号化のモードが第２のモードである場合における、候補リストに含まれるベクトルの最大数に関する情報を符号化することを特徴とする請求項１に記載の画像符号化装置。
【請求項３】
前記第２のモードにおいて、前記符号化対象ブロックを含む画像のうちの参照されるべき画像部分は、前記符号化対象の画像のうち符号化済みである画像部分に含まれることを特徴とする請求項１に記載の画像符号化装置。
【請求項４】
入力された符号データに基づいて、ブロック単位で符号化された画像を復号する画像復号装置において、
復号対象の画像のうち、前記復号済みの画像を取得する画像取得手段と、
前記符号データから、復号対象ブロックの予測符号化モードを判定する判定手段と、
前記判定手段によって判定された予測符号化モードが、前記復号対象ブロックを含む画像とは異なる画像のうちの画像部分を参照する第１のモードである場合において、前記復号対象ブロックの近傍ブロックに関連付けられたベクトルを含む候補リストから、前記符号化データから得られるインデックスに対応するベクトルを選択し、当該選択されたベクトルに基づいて前記復号対象のブロックを復号する第１の復号手段と、
前記判定手段によって判定された予測符号化モードが、前記復号対象ブロックを含む画像のうちの画像部分を参照することを示すために前記復号対象ブロックと前記画像部分との空間的な関係を示すベクトルの符号化を許容する第２のモードである場合において、前記復号対象ブロックの近傍ブロックに関連付けられたベクトルを含む候補リストから、前記符号化データから得られるインデックスに対応するベクトルを選択し、当該選択されたベクトルに基づいて前記復号対象のブロックを復号する第２の復号手段とを有し、
前記第１の復号手段および前記第２の復号手段は、前記候補リストに含まれる前記ベクトルが所定数に満たない場合、前記所定数となるまでゼロベクトルを追加することを特徴とする画像復号装置。
【請求項５】
前記復号手段は、さらに、前記所定数として、前記符号化対象ブロックの予測符号化のモードが第２のモードである場合における、候補リストに含まれるベクトルの最大数に関する情報を復号することを特徴とする請求項４に記載の画像復号装置。
【請求項６】
動画を構成する画像を複数の画素からなるブロックに分割し、分割されたブロック単位で符号化する画像符号化方法であって、
前記符号化対象ブロックの予測符号化のモードが、前記符号化対象ブロックを含む画像とは異なる画像のうちの画像部分を参照する第１のモードにおいて、前記符号化対象ブロックの近傍ブロックに関連付けられたベクトルを含む候補リストから前記符号化対象ブロックのためのベクトルを選択する第１の選択工程と、
前記第１の選択工程において選択されたベクトルに対応するインデックスを符号化するとともに、前記予測符号化のモードを示すデータを符号化する第１の符号化工程と、
前記符号化対象ブロックの予測符号化のモードが、前記符号化対象ブロックを含む画像のうちの画像部分を参照することを示すために前記符号化対象ブロックと前記画像部分との空間的な関係を示すベクトルの符号化を許容する第２のモードにおいて、前記符号化対象ブロックの近傍ブロックに関連付けられたベクトルを含む候補リストから前記符号化対象ブロックのためのベクトルを選択する第２の選択工程と、
前記第２の選択工程において選択されたベクトルに対応するインデックスを符号化するとともに、前記予測符号化のモードを示すデータを符号化する第２の符号化工程とを有し、
前記第１選択工程および前記第２の選択工程において、前記候補リストに含まれる前記ベクトルが所定数に満たない場合、前記所定数となるまでゼロベクトルを追加することを特徴とする画像符号化方法。
【請求項７】
前記第１の符号化工程において、さらに、前記所定数として、前記符号化対象ブロックの予測符号化のモードが前記第１のモードである場合における、候補リストに含まれるベクトルの最大数に関する情報が符号化されることを特徴とする請求項６に記載の画像符号化方法。
【請求項８】
前記第２のモードにおいて、符号化対象ブロックを含む画像のうちの参照されるべき画像部分は、前記符号化対象の画像のうち符号化済みである画像部分に含まれることを特徴とする請求項６に記載の画像符号化方法。
【請求項９】
入力された符号データに基づいて、ブロック単位で符号化された画像を復号する画像復号方法において、
復号対象の画像のうち、前記復号済みの画像を取得する画像取得工程と、
前記符号データから、復号対象ブロックの予測符号化モードを判定する判定工程と、
前記判定工程において判定された予測符号化モードが、前記復号対象ブロックを含む画像とは異なる画像のうちの画像部分を参照する第１のモードである場合において、前記復号対象ブロックの近傍ブロックに関連付けられたベクトルを含む候補リストから、前記符号化データから得られるインデックスに対応するベクトルを選択し、当該選択されたベクトルに基づいて前記復号対象のブロックを復号する第１の復号工程と、
前記判定工程において判定された予測符号化モードが、前記復号対象ブロックを含む画像のうちの画像部分を参照することを示すために前記復号対象ブロックと前記画像部分との空間的な関係を示すベクトルの符号化を許容する第２のモードである場合において、前記復号対象ブロックの近傍ブロックに関連付けられたベクトルを含む候補リストから、前記符号化データから得られるインデックスに対応するベクトルを選択し、当該選択されたベクトルに基づいて前記復号対象のブロックを復号する第２の復号工程とを有し、
前記第１の復号工程および前記第２の復号工程において、前記候補リストに含まれる前記ベクトルが所定数に満たない場合、前記所定数となるまでゼロベクトルが追加されることを特徴とする画像復号方法。
【請求項１０】
前記第１の復号工程において、さらに、前記所定数として、前記符号化対象ブロックの予測符号化のモードが第１モードである場合における、候補リストに含まれるベクトルの最大数に関する情報が復号されることを特徴とする請求項９に記載の画像復号方法。
【請求項１１】
請求項６または請求項８のいずれか１項に記載の画像符号化方法をコンピュータに実行させるためのプログラム。
【請求項１２】
請求項９または請求項１０に記載の画像復号方法をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、動画像の符号化技術・復号技術に関する。特に動画像において、画像を複数のブロックに分割し、分割された複数のブロックからなるスライスを分割したブロックごとに符号化及び復号を行う技術に関する。
【背景技術】
【０００２】
近年、Ｈ．２６４／ＭＰＥＧ−４  ＡＶＣ（以下、Ｈ．２６４）の後継としてさらに高効率な符号化方式の国際標準化を行う活動が開始された。そのために、ＪＣＴ−ＶＣ（Ｊｏｉｎｔ  Ｃｏｌｌａｂｏｒａｔｉｖｅ  Ｔｅａｍ  ｏｎ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ）がＩＳＯ／ＩＥＣとＩＴＵ−Ｔの間で設立された。ＪＣＴ−ＶＣでは、Ｈｉｇｈ  Ｅｆｆｉｃｉｅｎｃｙ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ（以下、ＨＥＶＣ）の標準化が進められている。ＩＴＵ−Ｔでは２０１３年４月にＨ．２６５符号化方式としてとして承認された。ＨＥＶＣの標準化にあたっては、引き続き、階層符号化、レンジ拡張、スクリーンコンテント符号化といった機能の追加を検討している。
【０００３】
ＨＥＶＣの標準化にあたっては、種々の符号化ツールが開発され、高い符号化効率を実現している。ＨＥＶＣにおいても、Ｈ．２６４までの符号化方式でも採用されているようにブロック符号化モードとしてイントラ符号化モードとインター符号化モードが採用されている。インター符号化モードは時間的に前に符号化・復号された画像データを参照して、類似するブロックを算出して符号化する。イントラ符号化モードは時間的に前に符号化・復号された画像データを参照することなく、符号化・復号対象のブロックの周辺の復号済みの画素からブロックを予測する。
【０００４】
ＨＥＶＣにおいても、インター符号化モードにおいて、動きベクトルの予測について新たにマージモードが採用されている。マージモードは空間的・時間的近傍のブロックで動きの情報をそのまま使用できるブロックを選び、その位置を示すインデックスを符号化する技術である。これにより、符号化効率の向上が図られた。さらに、ブロックの画像データもそのまま使用できる、すなわち画像データの予測誤差が０である場合、スキップ符号化を用いることができる。この場合、スキップ符号化を行ったか否かを表すフラグとマージモードの符号のみを送ることで符号化が行えるので、さらなる符号化効率の改善を図ることができた。
【０００５】
また、イントラ符号化モードにおいても、新しい機能として、符号化・復号対象の画像データで符号化・復号済みのデータから類似したブロックを予測に用いる方式が提案されている。この方式はイントラブロックコピー（Ｉｎｔｒａ  Ｂｌｏｃｋ  Ｃｏｐｙｉｎｇ）符号化と呼ばれている。特に、カメラで撮影された自然画像ではない画像、例えばコンピュータの画面のような人工の画像において、符号化・復号対象の画像データ内で符号化済みの画像から予測することで符号化効率を向上させようとしたものである。このような人工の画像においては符号化・復号対象の画像データ内に文字やテクスチャなど繰り返し出てくる画像データがあることを利用したものである。これらはレンジ拡張のための標準化草案（非特許文献１）に記載されている。ピクチャ内の予測にあっては、符号化済みの画像データの再生画像を探索し、類似しているブロックを予測ブロックとし、その位置をベクトルとで表し、予測ブロックの画像データと符号化対象ブロックの画像データから予測誤差ブロックを算出して符号化する。特に、このベクトルをインター符号化モードの動きベクトルと区別するため、コピーベクトルと呼称する。
【先行技術文献】
【非特許文献】
【０００６】
【非特許文献１】ＪＣＴ−ＶＣ  寄書  ＪＣＴＶＣ−Ｐ１００５−ｖ４  インターネット＜  ｈｔｔｐ：／／ｐｈｅｎｉｘ．ｉｎｔ−ｅｖｒｙ．ｆｒ／ｊｃｔ／ｄｏｃ＿ｅｎｄ＿ｕｓｅｒ／ｄｏｃｕｍｅｎｔｓ／１６＿Ｓａｎ％２０Ｊｏｓｅ／ｗｇ１１／  ＞
【発明の概要】
【発明が解決しようとする課題】
【０００７】
コピーベクトルの符号化においては、ＩＴＵ−Ｔ  Ｈ．２６５の７．３．８．５章Ｃｏｄｉｎｇ  ｕｎｉｔ  ｓｙｎｔａｘに記載されている通り、ｍｖｄ＿ｃｏｄｉｎｇ（）によって符号化されている。このｍｖｄ＿ｃｏｄｉｎｇ（）のシンタックスは７．３．８．９章Ｍｏｔｉｏｎ  ｖｅｃｔｏｒ  ｄｉｆｆｅｒｅｎｃｅ  ｓｙｎｔａｘに記載されている通り、周囲のコピーベクトルから予測されたコピーベクトルとの差分を符号化している。したがって、マージモードのように符号化対象ブロックの空間的・時間的近傍のブロックで動きの情報をそのまま使用できるブロックを選びその位置を示すインデックスを符号化することによる符号化効率の改善が望めなかった。
【課題を解決するための手段】
【０００８】
本発明は、上述の課題を鑑みてなされたものであり、イントラブロックコピー符号化においてもマージモードを使用し、スキップ符号化を実現する。
【０００９】
上記符号化装置の具体的な符号化の動作は、イントラブロックコピー符号化において、空間的な近傍のブロックのみのコピーベクトルを参照してコピーベクトルの候補リストを作成し、そのインデックスを符号化する。また、マージモードを使用しつつ、予測誤差が０であれば、スキップ符号化を行う。その際にスライスタイプを判定してイントラブロックコピー符号化のコピーベクトルなのかインター予測符号化の動きベクトルを判断する。さらにはスキップ符号化の可否を表す符号の前にイントラブロックコピー符号化の可否を表す符号を先に符号化・復号することでイントラブロックコピー符号化のコピーベクトルなのかインター予測符号化の動きベクトルかを判断する。
【００１０】
本発明は、上述の課題を鑑みてなされたものであり、動画を構成する画像を複数の画素からなるブロックに分割し、分割されたブロック単位で符号化する画像符号化装置であって、前記符号化対象ブロックの予測符号化のモードが、前記符号化対象ブロックを含む画像とは異なる画像のうちの画像部分を参照する第１のモードにおいて、前記符号化対象ブロックの近傍ブロックに関連付けられたベクトルを含む候補リストから前記符号化対象ブロックのためのベクトルを選択し、前記選択されたベクトルに対応するインデックスを符号化するとともに、前記予測符号化が第１のモードであることを示すデータを符号化する第１の符号化手段と、前記符号化対象ブロックの予測符号化のモードが、前記符号化対象ブロックを含む画像のうちの画像部分を参照することを示すために前記符号化対象ブロックと前記画像部分との空間的な関係を示すベクトルの符号化を許容する第２のモードにおいて、前記符号化対象ブロックの近傍ブロックに関連付けられたベクトルを含む候補リストから前記符号化対象ブロックのためのベクトルを選択し、前記選択されたベクトルに対応するインデックスを符号化するとともに、前記予測符号化が第２のモードであることを示すデータを符号化する第２の符号化手段を有し、前記１の符号化手段および前記第２の符号化手段は、前記候補リストに含まれる前記ベクトルが所定数に満たない場合、前記所定数となるまでゼロベクトルを追加することを特徴とする。
【００１１】
さらに、入力された符号データに基づいて、ブロック単位で符号化された画像を復号する画像復号装置において、復号対象の画像のうち、前記復号済みの画像を取得する画像取得手段と、前記符号データから、復号対象ブロックの予測符号化モードを判定する判定手段と、前記判定手段によって判定された予測符号化モードが、前記復号対象ブロックを含む画像とは異なる画像のうちの画像部分を参照する第１のモードである場合において、前記復号対象ブロックの近傍ブロックに関連付けられたベクトルを含む候補リストから、前記符号化データから得られるインデックスに対応するベクトルを選択し、当該選択されたベクトルに基づいて前記復号対象のブロックを復号する第１の復号手段と、前記判定手段によって判定された予測符号化モードが、前記復号対象ブロックを含む画像のうちの画像部分を参照することを示すために前記復号対象ブロックと前記画像部分との空間的な関係を示すベクトルの符号化を許容する第２のモードである場合において、前記復号対象ブロックの近傍ブロックに関連付けられたベクトルを含む候補リストから、前記符号化データから得られるインデックスに対応するベクトルを選択し、当該選択されたベクトルに基づいて前記復号対象のブロックを復号する第２の復号手段とを有し、前記第１の復号手段および前記第２の復号手段は、前記候補リストに含まれる前記ベクトルが所定数に満たない場合、前記所定数となるまでゼロベクトルを追加することを特徴とする。
【発明の効果】
【００１４】
イントラブロックコピー符号化のコピーベクトルにおいてもマージモードの使用が可能になり、コピーベクトルでの符号化効率の改善が可能になった。
【図面の簡単な説明】
【００１５】
【図１】実施形態１、３、５、７における画像符号化装置の構成を示すブロック図である。
【図２】実施形態１、２におけるビットストリームの一部のシンタックスの例を表す図である。
【図３】実施形態１、２におけるビットストリームの一部のシンタックスの例を表す図である。
【図４】実施形態１、２におけるビットストリームの一部のシンタックスの例を表す図である。
【図５】実施形態１、３、５、７における動画像全体の画像符号化処理を表すフローチャートである。
【図６】実施形態１、５、７におけるブロックの画像符号化処理を表すフローチャートである。
【図７】実施形態１におけるブロックのインター予測符号化処理を表すフローチャートである。
【図８】実施形態１におけるブロックのイントラ予測符号化処理を表すフローチャートである。
【図９】実施形態１におけるブロックのイントラブロックコピー符号化処理を表すフローチャートである。
【図１０】実施形態１におけるビットストリームの一部のシンタックスの例を表す図である。
【図１１】実施形態２、４、６、８における画像復号装置の構成を示すブロック図である。
【図１２】実施形態２、４、６、８における動画像全体の画像復号処理を表すフローチャートである。
【図１３】実施形態２におけるブロックの画像復号処理を表すフローチャートである。
【図１４】実施形態３、４におけるビットストリームの一部のシンタックスの例を表す図である。
【図１５】実施形態３におけるブロックの画像符号化処理を表すフローチャートである。
【図１６】実施形態３におけるブロックのイントラブロックコピー符号化処理を表すフローチャートである。
【図１７】実施形態３におけるビットストリームの一部のシンタックスの例を表す図である。
【図１８】実施形態４におけるブロックの画像復号処理を表すフローチャートである。
【図１９】実施形態５、６におけるビットストリームの一部のシンタックスの例を表す図である。
【図２０】実施形態５におけるブロックのインター予測符号化処理を表すフローチャートである。
【図２１】実施形態５におけるブロックのイントラ予測符号化処理を表すフローチャートである。
【図２２】実施形態５におけるブロックのイントラブロックコピー符号化処理を表すフローチャートである。
【図２３】実施形態６におけるブロックの画像復号処理を表すフローチャートである。
【図２４】ブロック符号化モードの選択を表す図である。
【図２５】実施形態７、８におけるビットストリームの一部のシンタックスの例を表す図である。
【図２６】実施形態７、８におけるビットストリームの一部のシンタックスの例を表す図である。
【図２７】実施形態７におけるブロックのインター予測符号化処理を表すフローチャートである。
【図２８】実施形態７におけるブロックのイントラ予測符号化処理を表すフローチャートである。
【図２９】実施形態７におけるブロックのイントラブロックコピー符号化処理を表すフローチャートである。
【図３０】実施形態８におけるブロックの画像復号処理を表すフローチャートである。
【図３１】本発明の画像符号化装置、復号装置に適用可能なコンピュータのハードウェアの構成例を示すブロック図である。
【図３２】ブロックの参照を表す図である。
【図３３】イントラ予測符号化モードの画素の参照の一例を表す図である。
【図３４】イントラブロックコピー符号化モードのコピーベクトルの一例を表す図である。
【発明を実施するための形態】
【００１６】
（実施形態１）
第１の実施形態を、図１から図１０を使って説明する。
【００１７】
図１は、画像符号化装置の構成を示すブロック図である。なお、以下に記述する第２の実施形態以降の画像符号化装置の構成も図１と同様であるものとする。図１において、１０１は画像データを入力する入力部である。以下、単に入力部１０１と記す。１０２はスライス設定部であり、入力される画像の特性や予め決められたタイミングに応じて画像内のスライスのサイズ、位置等を決定し、それぞれのスライスのスライスタイプを設定する。１０３はイントラブロックコピー可否設定部であり、イントラブロックコピーイングを行うか否かを表すイントラブロックコピー可否情報を設定する。イントラブロックコピーイングを行うか否かの決定について特に限定しない。イントラブロックコピー可否設定部１０３は、ビットストリームを生成する画像符号化装置またはビットストリームを復号する画像復号装置の機能に基づいて設定したり、ユーザが設定したりしてもよい。１０４はピクチャバッファであり、入力される動画像をそれぞれピクチャ単位で格納するバッファとして使用される。１０５はブロック分割部であり、ピクチャバッファ１０４から画像をブロック単位で入力し、必要に応じてサブブロックに分割し、それぞれを後段の処理に出力する。後段ではブロックないしサブブロックを処理の単位としてブロックと称することとする。１０６はイントラブロックコピー予測部であり、符号化対象ピクチャの符号化済みがブロックの再生画像を参照してコピーベクトルを算出し、符号化対象のブロックの予測画像となるイントラブロックコピー予測ブロックデータを算出する。図３４にその様子を表す。３４０１は例えば８ｘ８の画素を有するブロックを表しており、ブロックＸとする。ブロックＸに対して、所定の探索範囲の符号化済みの画像データを参照して、最も類似するブロックの位置を決定する。ここでは、この類似するブロックを予測ブロックと呼ぶ。なお、図３４に示す例では、符号化済みの画像データは対象ブロックＸの上側および左側のブロックを含む範囲が探索範囲となる。点線で表したブロック３４０２や３４０３のいずれかが最も類似する予測ブロックとする場合、矢印３４０４、３４０５のいずれかが算出されるコピーベクトルとなる。すなわち、コピーベクトルは、ピクチャ内において符号化対象のブロック（復号化装置においては復号化対象のブロック）と予測ブロックとの空間的な関係を示している。所定の探索範囲については特に限定されない。例えば、符号化済みの全ての画像データを参照しても良いし、同じブロックラインの符号化済みの画像データのみを参照しても良い。前者ではコピーベクトル３１０４および３１０５のいずれかが算出され、後者ではコピーベクトル３４０５が算出されることになる。また、ＨＥＶＣでは直前に符号化されたＬＣＵ（最大符号化単位）の画像データと符号化中のＬＣＵで符号化済みの画像データにその探索範囲を限定しても構わない。イントラブロックコピー予測部１０６は、生成されたイントラブロックコピー予測ブロックデータと符号化対象ブロックの画像データからイントラブロックコピー予測誤差ブロックデータを生成し、出力する。１０７はインター予測部であり、符号化対象ピクチャより前に符号化されたピクチャの再生画像を参照して動きベクトルを算出し、符号化対象のブロックの予測画像となるインター予測ブロックデータを算出する。生成されたインター予測ブロックデータと符号化対象ブロックの画像データからインター予測誤差ブロックデータを生成し、出力する。１０８はイントラ予測部であり、符号化対象ピクチャの符号化対象ブロックの周辺の符号化済みの再生画像の画素値をイントラ予測モードに基づいて参照し、最適なイントラ予測モードを決定する。図３３（ａ）にイントラ予測モードの一例を表す。３３０１はブロックを表す。ここでは８画素×８画素のブロックを例にとって説明するが、ブロックのサイズはこれに限定されない。図３３において、ｚ０、ａ０１、ａ０２、・・・ａ１５、ｂ０１、ｂ０２、・・・ｂ１５は符号化済みの画素を表す。図３３（ｂ）は水平方向に周囲の復号済み画素から予測する様子を表す。図３３（ｃ）は垂直方向に周囲の復号済み画素から予測する様子を表す。図３３（ｄ）は斜め右下方向に周囲の復号済み画素から予測する様子を表す。図３３（ｅ）は斜め左下方向に周囲の復号済み画素から予測する様子を表す。さらに最適なイントラ予測モードに従って符号化対象のブロックの予測画像となるイントラ予測ブロックデータを算出する。生成されたイントラ予測ブロックデータと符号化対象ブロックの画像データからイントラ予測誤差ブロックデータを生成し、出力する。１１３は予測モード決定部であり、スライスタイプで使用できる予測符号化モードの内、最適な予測符号化モードを決定し、出力する。本実施形態ではイントラブロックコピー符号化を行うイントラブロックコピー符号化モード、動き補償を行うインター予測符号化モード、イントラ予測を行うイントラ予測符号化モードから選択する。判定の方法は特に限定されないが、符号化した際の符号量等から最小のものを選択するなどの方法が考えられる。１０９はコピーベクトル符号化部であり、イントラブロックコピー符号化モードが選択された場合に、コピーベクトルメモリ１１０に格納されたコピーベクトルを参照して、コピーベクトルを符号化する。１１０はコピーベクトルメモリであり、コピーベクトルの予測を行う際に用いるために符号化されたコピーベクトルを格納する。１１１は動きベクトル符号化部であり、予測符号化モードでインター符号化モードが選択された場合に、動きベクトルメモリ１１２に格納された動きベクトルを参照して、動きベクトルを符号化する。１１２は動きベクトルメモリであり、符号化において動きベクトルの予測を行う際に参照するために符号化済みの動きベクトルを格納する。１１４はヘッダ符号化部であり、シーケンスヘッダ、スライスヘッダ、ブロックヘッダの符号データを生成し、出力する。特に、シーケンスヘッダの符号化においては動画像シーケンス単位でイントラブロックコピー可否情報であるｉｎｔｒａ＿ｂｌｏｃｋ＿ｃｏｐｙ＿ｅｎａｂｌｅｄ＿ｆｌａｇが符号化される。スライスヘッダの符号化においては、スライスタイプを表すｓｌｉｃｅ＿ｔｙｐｅが符号化される。ブロックヘッダの符号化においては、ブロック符号化モードを表すｐｒｅｄ＿ｍｏｄｅ＿ｆｌａｇ符号を符号化する。ブロック符号化モードがイントラ符号化モードの場合、イント���ブロックコピー符号化モードが選択されたことを示すイントラブロックコピーフラグを表すｉｎｔｒａ＿ｂｃ＿ｆｌａｇ符号やイントラ予測モードを表す符号も符号化する。１１５は変換・量子化部であり、予測モード決定部１１３で決定された予測符号化モードに応じて、イントラブロックコピー予測部１０６、インター予測部１０７、イントラ予測部１０８から出力される予測誤差ブロックデータを入力する。変換・量子化部１１５は、入力された予測誤差ブロックデータに対して、直交変換を行い、直交変換係数を算出し、さらに直交変換係数を量子化パラメータを用いた所定の方法によって量子化して量子化係数を算出し、出力する。また、量子化に用いた量子化パラメータを逆量子化・逆変換部１１６に出力する。１１６は逆量子化・逆変換部であり、入力された量子化係数に対して量子化パラメータを用いて逆量子化して直交変換係数を再生し、さらに逆直交変換を施し、符号化対象ブロックの予測誤差ブロックデータを再生する。１１７は再構成部であり、復号された予測誤差と予測モード決定部１１３で決定された予測符号化モードに応じて、コピーベクトル、動きベクトル、イントラ予測モードを入力し、これに基づいて予測ブロックデータを生成し、復号された再生画像を生成する。１１８はカレントピクチャメモリであり、再生された符号化対象ピクチャの再生画像の画像データを格納する。１１９はピクチャメモリであり、符号化対象ピクチャのより前に符号化されたピクチャの再生画像の画像データを格納する。１２０は符号化部であり、量子化係数を符号化し、予測誤差の符号データを生成し、出力する。１２１はヘッダ符号化部１１４、コピーベクトル符号化部１０９、動きベクトル符号化部１１１、符号化部１２０から出力された符号データからビットストリームを構成し出力する。１２２は出力部であり、ビットストリームを外部に出力する。図１の各処理部は１つの物理的な集積回路によって構成されてもよいし、それぞれが１つの回路であってもよい。１２３は、画像符号化装置の上記の各処理部を制御する制御部であり、ＣＰＵなどによって構成される。
【００１８】
上記画像符号化装置における画像の符号化動作を以下に説明する。符号化動作については図５から図９に示したフローチャートに基づき説明する。
【００１９】
図５は符号化動作の全体を表すフローチャートである。ステップＳ５０１において、符号化に先立ち、イントラブロックコピー可否設定部１０３は、シーケンス全体でイントラブロックコピー符号化を行うか否かを表すイントラブロックコピー可否情報を設定する。イントラブロックコピー可否情報は符号化対象のシーケンスでイントラブロックコピー符号化を行う場合には値に１を、行わない場合は０が設定される。特にその設定にあたっては方法を問わないが、不図示のユーザが設定したり、符号化装置の構成によって設定したりすること等が可能である。さらに、ステップＳ５０２にて、ヘッダ符号化部１１４は、ステップＳ５０１で決定されたイントラブロックコピー可否情報をｉｎｔｒａ＿ｂｌｏｃｋ＿ｃｏｐｙ＿ｅｎａｂｌｅｄ＿ｆｌａｇ符号として符号化し、シーケンスヘッダの符号データに挿入する。生成されたシーケンスの符号データは統合部１２１に入力され、ビットストリームに成形されて出力部１２２から外部に出力される。ステップＳ５０３以降で、各ピクチャの符号化処理が行われる。
【００２０】
ステップＳ５０３にて、入力部１０１は、符号化対象のピクチャの画像データを入力し、ピクチャバッファ１０４に格納する。ステップＳ５０４にて、スライス設定部１０２は、入力された画像データのスライス分割の構成を決定し、それぞれのスライスのスライスタイプを設定する。スライス分割の構成の設定方法については特に限定しない。ピクチャを等分割したり、画像の特性に応じて分割したりすることが可能である。また、スライスタイプの設定方法についても特に限定しない。例えば、ピクチャ単位でスライスタイプを決定しても構わないし、スライス内の画像データの特性に応じて決定しても構わない。
【００２１】
ステップＳ５０５以降で、各スライスの符号化処理を行う。ステップＳ５０５にて、ヘッダ符号化部１１４は、スライスヘッダの符号化を実行する。スライスヘッダの符号化において、スライスタイプを表すｓｌｉｃｅ＿ｔｙｐｅ符号を符号化する。ｓｌｉｃｅ＿ｔｙｐｅ符号にはイントラ予測符号化のみで符号化が可能なスライス（以下、イントラスライスと称する。）を表すＩ＿ｓｌｉｃｅが含まれる。さらにｓｌｉｃｅ＿ｔｙｐｅ符号には、インター符号化モードも使って符号化を行うことが可能なスライス（以下では総称して非イントラスライスと称する）としてＰ＿ｓｌｉｃｅ、およびＢ＿ｓｌｉｃｅが含まれる。ステップＳ５０６にて、ブロック分割部１０５はスライスをブロックに分割する。例えば、ＨＥＶＣではまず、ＬＣＵ（最大符号化単位）に分割し、その内部を必要に応じてＣＵ（符号化単位）に分割する。本実施形態では説明を簡易にするため、それぞれをブロックと称する。ステップＳ５０７、Ｓ５０８にてブロック単位の符号化が実行される。
【００２２】
ステップＳ５０７において、各ブロックの符号化が行われる。図６はブロックの符号化動作を表すフローチャートである。
【００２３】
ステップＳ６０１にて、スライス設定部１０２は自身が設定したスライスタイプに基づく判定を行い、Ｉ＿ｓｌｉｃｅを設定していればステップＳ６０３に進み、そうでなければ、ステップＳ６０２に進む。
【００２４】
最初に、ステップＳ６０１において、スライス設定部１０２がスライスタイプとしてＩ＿ｓｌｉｃｅを設定したと判定された場合、ステップＳ６０３に進む。ステップＳ６０３にて、イントラブロックコピー予測部１０６、イントラ予測部１０８は、ステップＳ５０１で設定されたイントラブロックコピー可否情報を判定する。その結果、イントラブロックコピー可否情報が１であれば、ステップＳ６０６に進み、そうでなければステップＳ６０４に進む。
【００２５】
ステップＳ６０３において、イントラブロックコピー可否情報が１であった場合ステップＳ６０６に進む。ステップＳ６０６にて、イントラ予測部１０８は、カレントピクチャメモリ１１８に格納されている符号化対象ピクチャの符号化対象ブロックの周辺の再生画像の画像データを参照し、イントラ予測モードを決定する。また、イントラ予測部１０８は、決定されたイントラ予測モードに基づいて、符号化対象ブロックの予測画像であるイントラ予測ブロックデータを生成する。さらに、イントラ予測部１０８は、生成されたイントラ予測ブロックデータと符号化対象ブロックの画像データからイントラ予測誤差ブロックデータを生成する。算出されたイントラ予測モードはヘッダ符号化部１１４および再構成部１１７に出力され、イントラ予測誤差ブロックデータは予測モード決定部１１３および変換・量子化部１１５に出力される。ステップＳ６０７にて、イントラブロックコピー予測部１０６は、カレントピクチャメモリ１１８に格納されている符号化対象ピクチャの符号化済みのブロックの再生画像を参照し、コピーベクトルを算出する。さらに、イントラブロックコピー予測部１０６は算出されたコピーベクトルに基づいて、符号化対象ブロックの予測画像であるイントラブロックコピー予測ブロックデータを生成する。その後、生成されたイントラブロックコピー予測ブロックデータと符号化対象ブロックの画像データからイントラブロックコピー予測誤差ブロックデータを生成する。算出されたコピーベクトルはコピーベクトル符号化部１０９および再構成部１１７に出力され、イントラブロックコピー予測誤差ブロックデータは予測モード決定部１１３および変換・量子化部１１５に出力される。ステップＳ６０８にて、予測モード決定部１１３は、符号化に使用する予測符号化モードを決定する。但し、決定の方法は特に限定されない。例えば、予測モード決定部１１３は、それぞれの予測誤差ブロックデータから符号化コストを推定し、その大小比較によって符号化に使用する予測符号化モードを符号化コストが小さい方のモードに決定することができる。ここでは、選択できる予測符号化モードはイントラ予測符号化モードかイントラブロックコピー符号化モードである。イントラ予測符号化モードであればステップＳ６０５に進み、イントラブロックコピー符号化モードであればステップＳ６０９に進む。
【００２６】
ステップＳ６０８において、イントラブロックコピー符号化モードが選択された場合、ステップＳ６０９に進む。。ステップＳ６０９にて、ヘッダ符号化部１１４はイントラブロックコピーフラグに１を設定する。その後、ステップＳ６２３に進む。
【００２７】
ステップＳ６２３ではブロックのイントラブロックコピー符号化処理が行われる。図９はブロックのイントラブロックコピー符号化処理を表すフローチャートである。ステップＳ９０１にて、ヘッダ符号化部１１４は、ブロック符号化モードにイントラ符号化モード（ＭＯＤＥ＿ＩＮＴＲＡ）を設定する。ステップＳ９０２にて、コピーベクトル符号化部１０９はコピーベクトルメモリ１１０に格納されているコピーベクトルから、マージモードのためのコピーベクトルの候補リストを作成する。コピーベクトルの候補リストはインター予測符号化モードのマージモードと同様に、空間的に近傍のコピーベクトルから参照して生成される。具体的には、図３２に周囲のブロックの参照を表す。図３２において、符号化対象のブロックをＸとすると空間的に近傍でありかつ符号化済みのブロックＡ０、Ａ１、Ｂ０、Ｂ１、Ｂ２を参照する。コピーベクトル符号化部１０９は、それぞれのブロックが存在し、それぞれのブロックがイントラブロックコピー符号化モードで符号化されているかどうか判定する。もしイントラブロックコピーモードで符号化されていると判定された場合、コピーベクトル符号化部１０９は、イントラブロックコピーモードで符号化されたブロックに関連付けられているコピーベクトルをコピーベクトル候補リストに登録する。その後、コピーベクトル符号化部１０９は、同じベクトル値のコピーベクトルを１つにまとめる。もし、登録されたコピーベクトルが予め決められたコピーベクトル候補リストのコピーベクトル登録最大数よりも小さければ、コピーベクトル符号化部１０９は、適宜コピーベクトルを追加する。例えば、ブロックの縦の幅をｈ、横の幅をｗとした時に、ベクトル値（−ｗ、０）、（０、−ｈ）、（−ｗ、−ｈ）、（ｗ、−ｈ）、（−２ｗ、０）といった順にコピーベクトルを追加する。但し、追加するコピーベクトルはこれらに限定されない。
【００２８】
ステップＳ９０３にて、ヘッダ符号化部１１４はスライスタイプを判定する。スライスタイプとしてＩ＿ｓｌｉｃｅが設定されていれば、ステップＳ９０５に進み、そうでなければステップＳ９０４に進む。ステップＳ９０４にて、ヘッダ符号化部１１４はスキップ符号化を行うか否かを示すスキップフラグの値を０に設定し、それを表すｃｕ＿ｓｋｉｐ＿ｆｌａｇ符号を符号化する。スキップフラグは符号化対象のブロックがスキップ符号化される場合に値として１となり、そうでなければ０となる。ステップＳ９０４の動作は、図２に示したシンタックスにおいて、スライスタイプがＩ＿ｓｌｉｃｅではない場合に、ｃｕ＿ｓｋｉｐ＿ｆｌａｇ符号の符号化が行われるため、必要となる。ステップＳ９０５にて、ヘッダ符号化部１１４はステップＳ６０９ないし、ステップＳ６１６で設定されたイントラブロックコピーフラグの値である１をｉｎｔｒａ＿ｂｃ＿ｆｌａｇ符号として符号化する。ｉｎｔｒａ＿ｂｃ＿ｆｌａｇ符号の符号データは統合部１２１に入力され、ビットストリームに成形されて出力部１２２から外部に出力される。ステップＳ９０６にて、ステップＳ９０３と同様にヘッダ符号化部１１４はスライスタイプを判定し、Ｉ＿ｓｌｉｃｅが設定されていれば、ステップＳ９０８に進み、そうでなければステップＳ９０７に進む。ステップＳ９０７にて、ヘッダ符号化部１１４はステップＳ９０１で設定されたイントラ符号化モード（ＭＯＤＥ＿ＩＮＴＲＡ）をｐｒｅｄ＿ｍｏｄｅ＿ｆｌａｇ符号として符号化する。
【００２９】
ステップＳ９０８にて、コピーベクトル符号化部１０９は、ステップＳ６０７ないしステップＳ６１２で算出されたコピーベクトルがマージモードで符号化できるか否かを判定する。判定の方法は特に限定しないが、例えば、コピーベクトル候補リストに登録されたコピーベクトルと算出されたコピーベクトルのベクトル値が一致するか否かを判定してもよい。マージモードでの符号化をする場合、ステップＳ９０９に進み、そうでない場合はステップＳ９１０に進む。ステップＳ９０９にて、コピーベクトル符号化部１０９はマージモードの可否を表すマージモードフラグに１を設定し、これをｍｅｒｇｅ＿ｆｌａｇ符号として符号化する。さらに、コピーベクトル符号化部１０９は、コピーベクトル候補リストのコピーベクトルの内、符号化対象のコピーベクトルと一致するベクトル値を持つコピーベクトルのベクトル候補インデックスをｍｅｒｇｅ＿ｉｄｘ符号として符号化する。ステップＳ９１０にて、ヘッダ符号化部１１４はマージモードフラグに０を設定し、これをｍｅｒｇｅ＿ｆｌａｇ符号として符号化する。続いて、コピーベクトル符号化部１０９は算出されたコピーベクトルをコピーベクトルメモリ１１０に格納されている周囲のコピーベクトルから予測を行い、コピーベクトルの予測の方向を決定する。コピーベクトル符号化部１０９は、その予測されたコピーベクトルとの差分ベクトルを求めて、差分ベクトルのベクトル値とその予測の方向を表すコピーベクトル参照フラグをｍｖｐ＿ｉｂｃ＿ｆｌａｇ符号として符号化する。例えば、図３２のＡ０、Ａ１、Ｂ０、Ｂ１、Ｂ２において、ブロックＡ０、Ａ１、から選ばれたコピーベクトルが用いられた場合はコピーベクトル参照フラグの値を０とする。また、ブロックＢ０、Ｂ１、Ｂ２から選ばれたコピーベクトルが用いられた場合はコピーベクトル参照フラグの値を１とする。この値をｍｖｐ＿ｉｂｃ＿ｆｌａｇ符号として符号化する。
【００３０】
ステップＳ９１１にて、変換・量子化部１１５はステップＳ６０５ないしステップＳ６１２で生成されたイントラブロックコピー予測誤差ブロックデータに直交変換、量子化を施し、量子化係数を算出する。算出された量子化係数は符号化部１２０と逆量子化・逆変換部１１６、ヘッダ符号化部１１４に入力される。逆量子化・逆変換部１１６に入力された量子化係数は逆量子化、逆変換を経て、イントラブロックコピー予測誤差ブロックデータとして再生する。また、再構成部１１７はコピーベクトルに基づいてカレントピクチャメモリ１１８からイントラブロックコピー予測ブロックデータを算出する。再構成部１１７は、さらにこのイントラブロックコピー予測ブロックデータとイントラブロックコピー予測誤差ブロックデータを用いて、符号化対象ブロックの復号画像の再生画像の画像データを算出する。算出された再生画像の画像データはカレントピクチャメモリ１１８に格納される。また、符号化部１２０はイントラブロックコピー予測誤差ブロックデータの量子化係数を符号化し、その符号データを生成する。生成された符号データは統合部１２１に入力され、ビットストリームに成形されて出力部１２２から外部に出力される。その後、符号化対象ブロックの符号化処理を終了する。
【００３１】
図６に戻り、ステップＳ６０８において、イントラ予測符号化モードが選択された場合、ステップＳ６０５に進む。ステップＳ６０５にて、ヘッダ符号化部１１４はイントラブロックコピーフラグに０を設定する。その後、ステップＳ６２２に進む。
【００３２】
ステップＳ６２２にて、ブロックのイントラ予測符号化処理が行われる。図８はブロックのイントラ予測符号化の符号化動作を表すフローチャートである。ステップＳ８０１にて、ヘッダ符号化部１１４はブロック符号化モードにイントラ符号化モード（ＭＯＤＥ＿ＩＮＴＲＡ）を設定する。ステップＳ８０２にて、ヘッダ符号化部１１４は、スライスタイプがＩ＿ｓｌｉｃｅか否かを判定し、Ｉ＿ｓｌｉｃｅであれば、ステップＳ８０４に進み、そうでなければステップＳ８０３に進む。ステップＳ８０３にて、ヘッダ符号化部１１４はスキップ符号化を行うか否かを示すスキップフラグの値を０に設定し、それを表すｃｕ＿ｓｋｉｐ＿ｆｌａｇを符号化する。ステップＳ８０４にて、ヘッダ符号化部１１４はステップＳ５０１で設定されたイントラブロックコピー可否情報を判定し、イントラブロックコピー可否情報が１であれば、ステップＳ８０５に進み、そうでなければステップＳ８０６に進む。ステップＳ８０５にて、ヘッダ符号化部１１４はステップＳ６０９、ステップＳ６１５、ないし、ステップＳ６１７で設定されたイントラブロックコピーフラグの値である０をｉｎｔｒａ＿ｂｃ＿ｆｌａｇ符号として符号化する。ステップＳ８０６にて、ヘッダ符号化部１１４は、スライスタイプがＩ＿ｓｌｉｃｅか否かを判定し、Ｉ＿ｓｌｉｃｅであれば、ステップＳ８０８に進み、そうでなければステップＳ８０７に進む。ステップＳ８０７にて、ヘッダ符号化部１１４はステップＳ８０１で設定されたイントラ符号化モード（ＭＯＤＥ＿ＩＮＴＲＡ）をｐｒｅｄ＿ｍｏｄｅ＿ｆｌａｇ符号として符号化する。ステップＳ８０８にて、ヘッダ符号化部１１４はステップＳ６０４、Ｓ６０６、ステップＳ６１１、ないし、ステップＳ６１９で算出したイントラ予測モードを符号化する。ステップＳ８０９にて、変換・量子化部１１５はステップＳ６０４、ステップＳ６０６、ステップＳ６１１、ないし、ステップＳ６１９で生成されたイントラ予測誤差ブロックデータに直交変換、量子化を施し、量子化係数を算出する。算出された量子化係数は符号化部１２０と逆量子化・逆変換部１１６、ヘッダ符号化部１１４に入力される。逆量子化・逆変換部１１６は入力された量子化係数に対して逆量子化、逆変換を施し、イントラ予測誤差ブロックデータを再生する。また、再構成部１１７は、イントラ予測モードに基づいてカレントピクチャメモリ１１８からイントラ予測ブロックデータを算出し、さらにイントラ予測誤差ブロックデータを用いて、符号化対象ブロックの復号画像として再生画像の画像データを算出する。算出された再生画像の画像データはカレントピクチャメモリ１１８に格納される。また、符号化部１２０はイントラ予測誤差ブロックデータの量子化係数を符号化し、予測誤差の符号データを生成する。生成された符号データは統合部１２１に入力され、ビットストリームに成形されて出力部１２２から外部に出力される。その後、符号化対象ブロックの符号化処理を終了する。
【００３３】
図６に戻り、ステップＳ６０３において、イントラブロックコピー可否情報が１ではなかった場合ステップＳ６０４に進む。ステップＳ６０４にて、ステップＳ６０６と同様に、イントラ予測部１０８は、イントラ予測モードを決定し、イントラ予測ブロックデータを生成して、符号化対象ブロックの画像データを用いてイントラ予測誤差ブロックデータを生成する。算出されたイントラ予測モードはヘッダ符号化部１１４および再構成部１１７に出力され、イントラ予測誤差ブロックデータは予測モード決定部１１３および変換・量子化部１１５に出力される。以下、ステップＳ６０８にて、イントラ予測符号化モードが選択された場合と同様に符号化処理が行われる。
【００３４】
続いて、ステップＳ６０１において、スライス設定部１０２がスライスタイプとしてＩ＿ｓｌｉｃｅ以外のスライスタイプを設定したと判定された場合について説明する。ステップＳ６０２にて、イントラブロックコピー予測部１０６、イントラ予測部１０８、インター予測部１０７は、ステップＳ５０１で設定されたイントラブロックコピー可否情報を判定する。その結果、イントラブロックコピー可否情報が１であれば、ステップＳ６１０に進み、そうでなければステップＳ６１７に進む。
【００３５】
ステップＳ６０２にて、イントラブロックコピー可否情報が１であった場合、ステップＳ６１０に進む。ステップＳ６１０にて、インター予測部１０７は、ピクチャメモリ１１９に格納されている符号化対象ピクチャより前に符号化された符号化済みのピクチャの再生画像の画像データを参照し、動きベクトルを算出する。また、インター予測部１０７は、算出された動きベクトルに基づいて、符号化対象ブロックの予測画像であるインター予測ブロックデータを生成する。インター予測部１０７は、生成されたインター予測ブロックデータと符号化対象ブロックの画像データからインター予測誤差ブロックデータを生成する。算出された動きベクトルは、動きベクトル符号化部１１１および再構成部１１７に出力され、インター予測誤差ブロックデータは予測モード決定部１１３および変換・量子化部１１５に出力される。ステップＳ６１１にて、イントラ予測部１０８はステップＳ６０６と同様に、イントラ予測モードを決定し、イントラ予測ブロックデータを生成して、符号化対象ブロックの画像データを用いてイントラ予測誤差ブロックデータを生成する。ステップＳ６１２にて、イントラブロックコピー予測部１０６は、ステップＳ６０７と同様に、コピーベクトルを決定する。イントラブロックコピーイング予測部１０６は、決定されたコピーベクトルに基づいてイントラブロックコピー予測ブロックデータを生成し、符号化対象ブロックの画像データを用いてイントラブロックコピー予測誤差ブロックデータを生成する。
【００３６】
ステップＳ６１３にて、予測モード決定部１１３は符号化のモードをイントラ予測符号化モード／イントラブロックコピー符号化モード／インター予測符号化モードのいずれかを用いるかを決定する。但し、決定の方法は特に限定されない。例えば、それぞれの予測誤差から符号化コストを推定し、その大小比較によって決定することができる。インター予測符号化モードであればステップＳ６１４に進み、イントラ予測符号化モードであればステップＳ６１５に進み、イントラブロックコピー符号化モードであればステップＳ６１６に進む。
【００３７】
ステップＳ６１３において、予測符号化モードがインター予測符号化モードであった場合ステップＳ６１４に進む。ステップＳ６１４にて、ヘッダ符号化部１１４はイントラブロックコピーフラグに０を設定し、ステップＳ６２１に進む。ステップＳ６２１ではブロックのインター予測符号化処理を行う。図７はブロックのインター予測符号化の符号化動作を表すフローチャートである。ステップＳ７０１にて、ヘッダ符号化部１１４はブロック符号化モードにインター符号化モード（ＭＯＤＥ＿ＩＮＴＥＲ）を設定する。ステップＳ７０２にて、動きベクトル符号化部１１１は、マージモードのための動きベクトルの候補リストを生成する。動きベクトルの候補リストは動きベクトルメモリ１１２に格納されている動きベクトルから、空間的および時間的に近傍の動きベクトルから参照することによって生成される。具体的には、動きベクトル符号化部１１１は、図３２の符号化対象のブロックをＸとすると空間的に近傍のブロックＡ０、Ａ１、Ｂ０、Ｂ１、Ｂ２に、時間的に近傍の同じ位置のブロックの動きベクトルを加えて参照する。ここでは説明を簡易にするために双方向ではない動き補償を例にとって説明する。それぞれのブロックが存在し、それぞれのブロックがインター予測符号化モードで符号化されていれば、各ブロックの動きベクトルが動きベクトル候補リストに登録される。その後、動きベクトル符号化部１１１は、同じベクトル値の空間的に近傍のブロックの動きベクトルを１つにまとめる。スライスタイプがＢ＿ｓｌｉｃｅの場合、動きベクトル候補リストに登録された動きベクトル候補を組合せた双方向マージ候補を生成する。もし、予め決められた動きベクトル候補リストのベクトル数が登録最大数より少なければ、適宜、ベクトル値が（０，０）のゼロベクトルが動きベクトルとして追加される。ステップＳ７０３にて、動きベクトル符号化部１１１は、ステップＳ６１０ないしステップＳ６１８で算出された動きベクトルがマージモードで符号化できるか否かを判定する。判定は、例えば、動きベクトル候補リストに登録された動きベクトルと算出された動きベクトルのベクトル値が一致するか否かを判定する。マージモードでの符号化をする場合、ステップＳ７０４に進み、そうでない場合はステップＳ７１５に進む。
【００３８】
ステップＳ７０３にて、動きベクトル符号化部１１１でマージモードでの符号化をすると判定された場合ステップＳ７０４に進む。ステップＳ７０４にて、変換・量子化部１１５はステップＳ６１０ないしステップＳ６１８にて算出されたインター予測誤差ブロックデータに直交変換、量子化を施し、量子化係数を算出する。ステップＳ７０５にて、ヘッダ符号化部１１４はスキップ符号化を行うか否かの判定を行う。ここでは、スキップ符号化を行う条件として、動きベクトルの符号化がマージモードで行え、かつステップＳ７０４で算出したインター予測誤差ブロックデータの量子化係数の値が全て０であることとする。マージモードで行えるか否かはステップＳ７０３で判定され、量子化係数についてはステップＳ７０４で算出された量子化係数の値が用いられる。スキップ符号化が可な場合、ステップＳ７０６に進み、そうでなければ、ステップＳ７０９に進む。
【００３９】
ステップＳ７０５において、スキップ符号化をすると判定された場合ステップＳ７０６に進む。ステップＳ７０６にて、ヘッダ符号化部１１４はスキップフラグの値として１を設定し、これをｃｕ＿ｓｋｉｐ＿ｆｌａｇ符号として符号化する。ステップＳ７０７にて、動きベクトル符号化部１１１はステップＳ７０２で生成した動きベクトル候補リストから該当する動きベクトル候補のベクトル候補インデックスをｍｅｒｇｅ＿ｉｄｘ符号として符号化する。ｃｕ＿ｓｋｉｐ＿ｆｌａｇ符号とｍｅｒｇｅ＿ｉｄｘ符号は統合部１２１に入力され、ビットストリームに成形されて出力部１２２から外部に出力される。また、算出された動きベクトルは動きベクトルメモリ１１２に格納される。ステップＳ７０８にて、再構成部１１７は動きベクトルに基づいてピクチャメモリ１１９からインター予測ブロックデータを算出しインター予測ブロックデータを、符号化対象ブロックの復号画像の再生画像の画像データとする。再生画像の画像データはカレントピクチャメモリ１１８に格納される。その後、符号化対象ブロックの符号化処理を終了する。
【００４０】
ステップＳ７０５において、スキップ符号化をしないと判定された場合ステップＳ７０９に進む。ステップＳ７０９にて、ヘッダ符号化部１１４はスキップフラグの値として０を設定し、これをｃｕ＿ｓｋｉｐ＿ｆｌａｇ符号として符号化する。ステップＳ７１０にて、イントラブロックコピー予測部１０６は、ステップＳ５０１で設定されたイントラブロックコピー可否情報を判定する。イントラブロックコピー可否情報が１であれば、イントラブロックコピー予測が可と判断され、ステップＳ７１１に進み、そうでなければステップＳ７１２に進む。ステップＳ７１１にて、ヘッダ符号化部１１４は、ステップＳ６１４、ないし、ステップＳ６１７において設定されたイントラブロックコピーフラグの値である０をｉｎｔｒａ＿ｂｃ＿ｆｌａｇ符号として符号化する。ｉｎｔｒａ＿ｂｃ＿ｆｌａｇ符号の符号データは統合部１２１に入力され、ビットストリームに成形されて出力部１２２から外部に出力される。ステップＳ７１２にて、ヘッダ符号化部１１４はステップＳ７０１で設定されたインター符号化モード（ＭＯＤＥ＿ＩＮＴＥＲ）をｐｒｅｄ＿ｍｏｄｅ＿ｆｌａｇ符号として符号化する。ｐｒｅｄ＿ｍｏｄｅ＿ｆｌａｇ符号の符号データは統合部１２１に入力され、ビットストリームに成形されて出力部１２２から外部に出力される。ステップＳ７１３にて、ステップＳ７０７と同様に、動きベクトル符号化部１１１はｍｅｒｇｅ＿ｉｄｘ符号を符号化し、符号化した動きベクトルを動きベクトルメモリ１１２に格納する。ステップＳ７１４にて、インター予測部１０７は、ステップＳ７０４で算出された量子化係数を符号化部１２０と逆量子化・逆変換部１１６に入力する。逆量子化・逆変換部１１６は入力された量子化係数は逆量子化、逆変換を施して、インター予測誤差ブロックデータを再生する。再構成部１１７は動きベクトルに基づいてピクチャメモリ１１９からインター予測ブロックデータを算出する。さらに再構成部１１７は、算出されたインター予測ブロックデータと再生されたインター予測誤差ブロックデータを用いて、符号化対象ブロックの復号画像の再生画像の画像データを算出する。算出された再生画像の画像データはカレントピクチャメモリ１１８に格納される。また、符号化部１２０はインター予測誤差ブロックデータの量子化係数を符号化し、予測誤差の符号データを生成する。生成された符号化データは統合部１２１に入力され、ビットストリームに成形されて出力部１２２から外部に出力される。その後、符号化対象ブロックの符号化処理を終了する。
【００４１】
ステップＳ７０３において、動きベクトル符号化部１１１でマージモードでの符号化をしないと判定された場合ステップＳ７１５に進む。ステップＳ７１５において、ステップＳ７０９と同様に、ヘッダ符号化部１１４は、スキップフラグの値として０を設定し、これをｃｕ＿ｓｋｉｐ＿ｆｌａｇ符号として符号化する。ｃｕ＿ｓｋｉｐ＿ｆｌａｇ符号の符号データは統合部１２１に入力され、ビットストリームに成形されて出力部１２２から外部に出力される。ステップＳ７１６にて、ステップＳ７１０と同様に、ヘッダ符号化部１１４は、イントラブロックコピー可否情報を判定する。イントラブロックコピー可否情報が１であれば、イントラブロックコピーイングが可能であると判断され、ステップＳ７１７に進み、そうでなければステップＳ７１８に進む。ステップＳ７１７にて、ステップＳ７１１と同様に、ヘッダ符号化部１１４は、イントラブロックコピーフラグをｉｎｔｒａ＿ｂｃ＿ｆｌａｇ符号として符号化する。ｉｎｔｒａ＿ｂｃ＿ｆｌａｇ符号の符号データは統合部１２１に入力され、ビットストリームに成形されて出力部１２２から外部に出力される。ステップＳ７１８にて、ステップＳ７１２と同様に、ヘッダ符号化部１１４はｐｒｅｄ＿ｍｏｄｅ＿ｆｌａｇを符号化し、出力する。ステップＳ７１９にて、動きベクトル符号化部１１１は算出された動きベクトルを動きベクトルメモリ１１２に格納されている周囲の動きベクトルから予測を行い、その予測方向とその差分ベクトルを求めて、符号化する。予測方向はｍｖｐ＿ｌ０＿ｆｌａｇ符号ないしはｍｖｐ＿ｌ１＿ｆｌａｇ符号として符号化される。
【００４２】
ステップＳ７２０にて、変換・量子化部１１５はステップＳ６１０ないしステップＳ６１８で生成されたインター予測誤差ブロックデータに直交変換、量子化を施し、量子化係数を算出する。算出された量子化係数は符号化部１２０と逆量子化・逆変換部１１６に入力される。逆量子化・逆変換部１１６に入力された量子化係数は逆量子化、逆変換を経て、インター予測誤差ブロックデータとして再生される。また、再構成部１１７は、動きベクトルに基づいてカレントピクチャメモリ１１８からインター予測ブロックデータを算出し、インター予測誤差ブロックデータを用いて、符号化対象ブロックの復号画像の再生画像の画像データを算出する。算出された再生画像の画像データはカレントピクチャメモリ１１８に格納される。また、符号化部１２０はインター予測誤差ブロックデータを符号化し、予測誤差の符号データを生成する。生成された符号データは統合部１２１に入力され、ビットストリームに成形されて出力部１２２から外部に出力される。その後、符号化対象ブロックの符号化処理を終了する。
【００４３】
図６に戻り、ステップＳ６１３において、符号化のモードがイントラ予測符号化モードであった場合について説明する。ステップＳ６１５にて、イントラブロックコピーフラグに０を設定し、ステップＳ６２２に進む。ステップＳ６２２では前述の通り、ブロックのイントラ予測符号化処理が行われる。
【００４４】
ステップＳ６１３において、符号化のモードがイントラブロックコピー符号化モードであった場合について説明する。ステップＳ６１６にて、ヘッダ符号化部１１４はイントラブロックコピーフラグに１を設定し、ステップＳ６２３に進む。ステップＳ６２３では前述の通り、ブロックのイントラブロックコピー符号化処理が行われる。
【００４５】
ステップＳ６０２において、イントラブロックコピー可否情報が１ではなかった場合について説明する。ステップＳ６１７にて、ステップＳ６１４と同様に、ヘッダ符号化部１１４はイントラブロックコピーフラグに０を設定する。ステップＳ６１８にて、ステップＳ６１０と同様に、インター予測部１０７は、動きベクトルを算出する。また、インター予測部１０７は、算出された動きベクトルに基づいて、インター予測ブロックデータを生成する。そして、インター予測部１０７は、生成されたインター予測ブロックデータと符号化対象ブロックの画像データからインター予測誤差ブロックデータを生成する。算出された動きベクトルは動きベクトル符号化部１１１および再構成部１１７に出力され、インター予測誤差ブロックデータは予測モード決定部１１３および変換・量子化部１１５に出力される。ステップＳ６１９にて、ステップＳ６０６と同様に、イントラ予測部１０８はイントラ予測モードを決定し、イントラ予測ブロックデータを生成して、符号化対象ブロックの画像データを用いてイントラ予測誤差ブロックデータを生成する。ステップＳ６２０にて、予測モード決定部１１３は符号化のモードをイントラ予測符号化モードかインター予測符号化モードのいずれかを用いるかを決定する。但し、決定の方法は特に限定されない。例えば、予測モード決定部１１３は、それぞれの予測誤差から符号化コストを推定し、符号化コストが小さい方を予測モードとして判定することができる。インター予測符号化モードであればステップＳ６２１に進む。ステップＳ６２１では前述の通り、ブロックのインター予測符号化処理が行われる。イントラ予測符号化モードであればステップＳ６２２に進む。ステップＳ６２２では前述の通り、ブロックのイントラ予測符号化処理が行われる。
【００４６】
図５に戻り、ステップＳ５０８にて、画像符号化装置全体を制御する制御部１２３は、スライス内の全てのブロックの符号化が終了したか否かを判定する。全てのブロックの符号化が終了している場合、ステップＳ５０９に進み、そうでない場合はブロックのスキャン順に次のブロックの符号化をステップＳ５０７で行う。ステップＳ５０９にて、制御部１２３は、ピクチャ内の全てのスライスの符号化が終了したか否かを判定する。全てのスライスの符号化が終了している場合、ステップＳ５１０に進み、そうでない場合はステップＳ５０５に戻り、次のスライスの符号化処理を行う。ステップＳ５１０にて、符号化対象であったピクチャの再生画像の画像データをカレントピクチャメモリ１１８からピクチャメモリ１１９に移動させる。ピクチャメモリ１１９においては必要に応じて、参照されることが無くなる画像データを消去する。ステップＳ５１１にて、制御部１２３はシーケンス内の全てのピクチャの符号化が終了したか否かを判定する。全てのピクチャの符号化が終了していない場合、ステップＳ５０３に進み、次のピクチャの符号化処理を行う。終了している場合は全ても符号化動作を終了する。
【００４７】
上記の構成と動作によって生成されたビットストリームにおいて、ブロックの符号化に関するシンタックスの例を図２および図３に示す。図２はブロックの符号化のシンタックスを表したものである。図２、３において、太字が符号を表している。本実施形態のシンタックスは非特許文献２のシンタックスを改良したものであり、従来のシンタックスとは１９行目から３１行目が異なっている。従来は
【００４８】
【表１】
0006482191.tif 000002
となっていたのを、
【００４９】
【表２】
0006482191.tif 000003
とし、動きベクトルの差分ベクトルの符号化の関数であったｍｖｄ＿ｃｏｄｉｎｇ（）をマージモードを使用できるベクトルの符号化を行うｐｒｅｄｉｃｔｉｏｎ＿ｕｎｉｔ（）に変更した。図３は予測を行うブロックでのシンタックスを表したものである。図３では、１３行目から１６行目および３３行目が追加されている。４行目のｍｅｒｇｅ＿ｉｄｘ符号は、本実施形態では非イントラスライスであるスライスタイプがＰ＿ｓｌｉｃｅかＢ＿ｓｌｉｃｅのみに限定される。９行目に関して、ｍｅｒｇｅ＿ｉｄｘ符号の表すベクトル候補インデックスは、インター予測符号化モードとイントラブロックコピー符号化モードでベクトル候補リストが異なる。予測符号化モードがインター予測符号化モードであれば、図７のステップＳ７０２に記述したように空間的な近傍ブロックと時間的な近傍ブロックを参照して動きベクトル候補リストが作成される。予測符号化のモードがイントラブロックコピー符号化モードであれば、図９のステップＳ９０２に記述したように空間的な近傍ブロックを参照してコピーベクトル候補リストが作成される。図３の１４行目でイントラブロックコピー符号化でのマージモードでない場合の動きベクトルの符号データが構成される。１５行目のｍｖｐ＿ｉｂｃ＿ｆｌａｇ符号は差分ベクトルの符号化の際にいずれのブロックのコピーベクトルを参照したか表すコピーベクトル参照フラグを符号化したものである。ｐｒｅｄｉｃｔｉｏｎ＿ｕｎｉｔ（）の変更での別な構成について図４を用いて説明する。１４行目と１５行目にイントラブロックコピーフラグによる条件が追加された。また、１８行目、２０行目、２１行目が追加されている。これによって、ｍｖｐ＿ｌ０＿ｆｌａｇ符号とｍｖｐ＿ｉｂｃ＿ｆｌａｇ符号を使い分けることができるようになる。
【００５０】
以上、説明した装置構成と方法で、イントラブロックコピー符号化のコピーベクトルにおいてもマージモードの使用が可能になり、コピーベクトルでの符号化効率の改善が可能になった。
【００５１】
なお、イントラ予測に関して、イントラ予測モードの決定、イントラ予測誤差ブロックデータの算出に関して、ステップＳ６０１より前で行い、ステップＳ６０４、Ｓ６０６、Ｓ６１２、Ｓ６１９を省略しても構わない。
【００５２】
なお、予め決められたコピーベクトル候補リストのコピーベクトルの候補となるベクトルのブロックの参照はこれに限定されない。
【００５３】
なお、登録最大数以下の場合に追加するコピーベクトルはこれに限定されない。簡略化のために、ベクトル値が（０、０）のゼロベクトルをコピーベクトルとして登録最大数になるまで追加しても構わない。但し、この場合、コピーベクトルにおいて、ベクトル値（０、０）は符号化対象ブロック自身を表すため、参照はされない。
【００５４】
なお、本実施形態において、コピーベクトルと動きベクトルはそれぞれコピーベクトルメモリ１１０と動きベクトルメモリ１１２に分けて格納したが、これに限定されず、同じメモリに格納しても構わない。参照されるブロックのｉｎｔｒａ＿ｂｃ＿ｆｌａｇ符号を参照することで、判別される。さらには、非特許文献１においては、マージモードでの動きベクトル登録最大数がｆｉｖｅ＿ｍｉｎｕｓ＿ｍａｘ＿ｎｕｍ＿ｍｅｒｇｅ＿ｃａｎｄ符号としてスライスヘッダに挿入されている。コピーベクトルの候補ベクトルに関しては空間的な近傍ブロックのコピーベクトルの参照であることから、マージモードでの動きベクトル登録最大数よりも小さい。したがって、図１０に示すようにマージモードでのコピーベクトル登録最大数を表すｆｉｖｅ＿ｍｉｎｕｓ＿ｍａｘ＿ｎｕｍ＿ｍｅｒｇｅ＿ｂｃ符号を別途設けて、その数を送ることにより、無駄なベクトルの追加を抑えることが可能になる。
【００５５】
なお、マージモードでのコピーベクトル登録最大数については符号化せず、例えばマージモードでの動きベクトル登録最大数から予め決められた所定の数（例えば１）を減じた数でも構わない。
【００５６】
なお、本実施形態において、スキップ符号化の可否の判断の条件はこれに限定されない。例えば、画像の特徴や発生したデータ量などによって決めても構わない。
【００５７】
（実施形態２）
本発明の第２の実施形態を、図１１から図１３を使って説明する。本実施形態では実施形態１で生成されたビットストリームを復号する場合を例にとって説明する。
【００５８】
図１１は、本発明の実施形態である画像復号装置の構成を示すブロック図である。図１１において、１１０１は符号データであるビットストリームを入力する入力部である。入力されるビットストリームのシンタックスは図２および図３で説明されたものとするが、これに限定されない。なお、図１の画像符号化装置によるピクチャ内のブロックの符号化順序と図１１の画像復号装置によるピクチャ内のブロックの復号化順序は同じである。１１０２は符号バッファであり、入力されるビットストリームを格納する。１１０３は分離部であり、入力されたビットストリームから各符号データを取り出し、それらを処理する後段の各復号部等に出力する。１１０４はヘッダ復号部であり、シーケンスヘッダ、スライスヘッダ、ブロックヘッダの符号データを復号し、必要な情報を各部に出力する。特に、シーケンスヘッダの復号においてはシーケンスでイントラブロックコピーイングを行うか否かを示す、ｉｎｔｒａ＿ｂｌｏｃｋ＿ｃｏｐｙ＿ｅｎａｂｌｅｄ＿ｆｌａｇ符号を復号し、イントラブロックコピー可否情報を取得する。スライスヘッダの復号においては、スライスタイプを表すｓｌｉｃｅ＿ｔｙｐｅ符号を復号する。ブロックヘッダの復号においては、ｃｕ＿ｓｋｉｐ＿ｆｌａｇ符号、ｐｒｅｄ＿ｍｏｄｅ＿ｆｌａｇ符号、ｉｎｔｒａ＿ｂｃ＿ｆｌａｇ符号、イントラ予測のモードを表す符号を復号する。１１０５はコピーベクトル復号部であり、コピーベクトルに関する符号データを復号してコピーベクトルを再生する。１１０６はコピーベクトルメモリであり、復号時にコピーベクトルの予測を行う際に参照するため復号済みのコピーベクトルを格納する。１１０７は動きベクトル復号部であり、動きベクトルに関する符号データを復号して動きベクトルを再生する。１１０８は動きベクトルメモリであり、復号時に動きベクトルの予測を行う際に参照するため復号済みの動きベクトルを格納する。１１０９はイントラブロックコピー予測部であり、復号されたコピーベクトルを用いて、復号対象ピクチャの復号済みの再生画像の画像データを参照して、復号対象のブロックの予測画像となるイントラブロックコピー予測ブロックデータを算出する。算出されたイントラブロックコピー予測ブロックデータは後段の再構成部１１１４に出力される。１１１０はインター予測部であり、再生された動きベクトルを用いて、復号対象ピクチャより前に復号された再生画像の画像データを参照して、復号対象のブロックの予測画像となるインター予測ブロックデータを算出し、後段の再構成部１１１４に出力する。１１１１はイントラ予測部であり、分離部１１０３を介して入力されたイントラ予測モードの符号データを復号してイントラ予測モードを再生する。さらに、イントラ予測部１１１１は、イントラ予測モードに従って、復号対象ピクチャの復号済みの再生画像の画像データのうち、復号対象のブロックの周囲の画素値からイントラ予測ブロックデータを算出する。算出されたイントラ予測ブロックデータは後段の再構成部１１１４に出力される。１１１２は復号部であり、入力された量子化係数に関する符号データを復号して量子化係数を再生する。１１１３は逆量子化・逆変換部であり、入力された量子化係数を逆量子化して直交変換係数を再生し、さらに逆直交変換を施し、復号対象ブロックの予測誤差ブロックデータを生成する。１１１４は再構成部であり、復号された予測誤差ブロックデータと、ヘッダ復号部１１０４で復号されたブロック符号化モード、イントラブロックコピー予測符号化モードに応じて予測ブロックデータを選択して取得する。すなわち、再構成部１１１４は、イントラブロックコピー予測部１１０９、インター予測部１１１０、イントラ予測部１１１１から出力される予測ブロックデータを選択して入力する。復号された予測誤差と予測ブロックデータから復号された再生画像を生成する。１１１５はカレントピクチャメモリであり、再生された復号対象ピクチャの再生画像の画像データを格納する。１１１６はピクチャメモリであり、復号対象ピクチャより前に復号されたピクチャの再生画像の画像データを格納する。１１１７は出力部であり、再生画像の画像データを外部に出力する。図１１の各処理部は１つの物理的な集積回路によって構成されてもよいし、それぞれが１つの回路であってもよい。１１１８は、画像復号化装置の上記の各処理部を制御する制御部であり、ＣＰＵなどによって構成される。
【００５９】
画像復号装置における画像の復号動作を図１２、１３に示したフローチャートに基づき説明する。
【００６０】
図１２は復号動作の全体を表すフローチャートである。図１２のフローチャートでは特に言及していないが、順次、入力部１１０１を介して画像復号装置にビットストリームが入力され、符号バッファ１１０２に格納されるものとする。ステップＳ１２０１にて、ヘッダ復号部１１０４は分離部１１０３を介して入力されたシーケンスヘッダの符号データを復号する。その中で、ヘッダ復号部１１０４は、ｉｎｔｒａ＿ｂｌｏｃｋ＿ｃｏｐｙ＿ｅｎａｂｌｅｄ＿ｆｌａｇ符号を復号し、イントラブロックコピー可否情報を復号する。イントラブロックコピー可否情報は復号対象のシーケンスでイントラブロックコピー予測符号化モードでの符号化が行われていた場合には値として１が、行われていない場合は０が再生される。ステップＳ１２０２以降で、各ピクチャの復号処理が行われる。
【００６１】
ステップＳ１２０２以降で、各スライスの復号処理が行われる。ステップＳ１２０２にて、ヘッダ復号部１１０４は、スライスヘッダの復号を行う。スライスヘッダの復号処理では、スライスタイプを表すｓｌｉｃｅ＿ｔｙｐｅ符号が復号される。ｆｉｖｅ＿ｍｉｎｕｓ＿ｍａｘ＿ｎｕｍ＿ｍｅｒｇｅ＿ｃａｎｄ符号、および図１０のシンタックスの符号データであれば、ｆｉｖｅ＿ｍｉｎｕｓ＿ｍａｘ＿ｎｕｍ＿ｍｅｒｇｅ＿ｃａｎｄ＿ｂｃ符号が復号される。また、続いて、ステップＳ１２０３において、各ブロックの復号を行う。ここで、図１３はブロックの復号動作を表すフローチャートである。なお、分離部１１０３におけるブロック符号データの入出力に関しては後述する。
【００６２】
ステップＳ１３０１にて、ヘッダ復号部１１０４は、ステップＳ１２０２で復号されたｓｌｉｃｅ＿ｔｙｐｅ符号を参照し、スライスタイプがＩ＿ｓｌｉｃｅであった場合はステップＳ１３０３に進み、そうでなければステップＳ１３０２に進む。
【００６３】
ステップＳ１３０２にて、ヘッダ復号部１１０４は分離部１１０３を介して入力されたｃｕ＿ｓｋｉｐ＿ｆｌａｇ符号を復号し、その値をスキップフラグに設定する。ステップＳ１３０３にて、ヘッダ復号部１１０４はスキップフラグに０を設定する。これはスキップ符号化の復号処理が、スライスタイプがＰ＿ｓｌｉｃｅかＢ＿ｓｌｉｃｅの非イントラスライスのみで行われることを示している。ステップＳ１３０４にて、ヘッダ復号部１１０４はスキップフラグの値を判定し、値が１であればステップＳ１３２６に進み、そうでなければステップＳ１３０５に進む。
【００６４】
ステップＳ１３０４において、スキップフラグの値が１であった場合スキップ符号化されていると判定しステップＳ１３２６に進む。ステップＳ１３２６にて、動きベクトル復号部１１０７は動きベクトルの復号を行う。ステップＳ１３２６ではスキップ符号化されているので、動きベクトルの符号データはマージモードで符号化されている。動きベクトル復号部１１０７は分離部１１０３を介して入力されたｍｅｒｇｅ＿ｉｄｘ符号を復号する。本実施形態ではスキップ符号化は非イントラスライスのみであるので、ｍｅｒｇｅ＿ｉｄｘ符号が表すベクトル候補インデックスは動きベクトル候補リストのベクトル候補インデックスである。動きベクトル復号部１１０７は、動きベクトルメモリ１１０８を参照して、復号対象ブロックの空間的・時間的近傍のブロックの動きベクトルを用いて、動きベクトル候補リストを生成する。動きベクトル復号部１１０７はｍｅｒｇｅ＿ｉｄｘ符号を復号してベクトル候補インデックスを再生し、さらにベクトル候補インデックスに従って、動きベクトル候補リストから動きベクトルを再生する。再生された動きベクトルはインター予測部１１１０に入力される。また、再生された動きベクトルは動きベクトルメモリ１１０８に格納される。
【００６５】
ステップＳ１３２７において、インター予測部１１１０は入力された動きベクトルに基づいて、ピクチャメモリ１１１６に格納されている復号対象ピクチャより前に復号されたピクチャの再生画像を参照してインター予測ブロックデータを生成する。生成されたインター予測ブロックデータは再構成部１１１４に入力される。再構成部１１１４は入力されたインター予測ブロックデータを復号対象ブロックの復号画像の再生画像の画像データとする。復号対象ブロックの画像データはカレントピクチャメモリ１１１５に出力される。その後、復号対象ブロックの復号処理を終了する。
【００６６】
ステップＳ１３０４において、スキップフラグの値が１でなかった場合、スキップ符号化されていないと判定しステップＳ１３０５に進む。ステップＳ１３０５にて、ヘッダ復号部１１０４は、ステップＳ１２０１において復号して得られたイントラブロックコピー可否情報を判定する。イントラブロックコピー可否情報の値が１であれば、イントラブロックコピーイング予測に対応する復号が可能であると判定し、ステップＳ１３０６に進み、そうでなければステップＳ１３０６に進む。ステップＳ１３０７にて、ヘッダ復号部１１０４は、分離部１１０３を介して符号バッファ１１０２から入力されたｉｎｔｒａ＿ｂｃ＿ｆｌａｇ符号を復号し、イントラブロックコピーフラグを再生する。ステップＳ１３０６にて、ヘッダ復号部１１０４は、イントラブロックコピーフラグの値に０を設定する。ステップＳ１３０８にて、ステップＳ１３０１と同様に、ヘッダ復号部１１０４は、スライスタイプを判定し、Ｉ＿ｓｌｉｃｅであればステップＳ１３１０に進み、そうでなければステップＳ１３０９に進む。ステップＳ１３１０にて、ヘッダ復号部１１０４は、ブロック符号化モードにイントラ符号化モード（ＭＯＤＥ＿ＩＮＴＲＡ）を設定する。ステップＳ１３０９にて、ヘッダ復号部１１０４は、ブロック符号化モードを表すｐｒｅｄ＿ｍｏｄｅ＿ｆｌａｇ符号を復号し、その値をブロック符号化モードの値に設定する。
【００６７】
ステップＳ１３１１にて、ヘッダ復号部１１０４は、ステップＳ１３０９またはステップＳ１３１０において設定されたブロック符号化モードの値を判定する。ブロック符号化モードの値がイントラ符号化モードを表すＭＯＤＥ＿ＩＮＴＲＡであればステップＳ１３１２に進み、そうでなければ、ステップＳ１３２０に進む。
【００６８】
ステップＳ１３１１にて、イントラ符号化モードと判定された場合について説明する。ステップＳ１３１２にて、ヘッダ復号部１１０４は、ステップＳ１３０６またはステップＳ１３０７にて設定されたイントラブロックコピーフラグを判定する。イントラブロックコピーフラグの値が０であればステップＳ１３１８に進み、そうでなければステップＳ１３１３に進む。
【００６９】
ステップＳ１３１２にて、イントラブロックコピーフラグの値が０であった場合について説明する。この場合はイントラ予測符号化モードでの復号となる。ステップＳ１３１８にて、イントラ予測部１１１１は、符号バッファ１１０２から分離部１１０３を介して、イントラ予測の符号データを入力して復号し、イントラ予測モードを再生する。続いて、ステップＳ１３１９にて、イントラ予測部１１１１は再生されたイントラ予測モードに基づいてカレントピクチャメモリ１１１５を参照し、復号対象のブロックの周辺の画素値からイントラ予測ブロックデータを算出し、算出されたイントラ予測ブロックデータを再構成部１１１４に出力する。ステップＳ１３２５にて、復号部１１１２は分離部１１０３を介して入力された予測誤差の量子化係数の符号データを復号して、量子化係数を再生する。再生された量子化係数は逆量子化・逆変換部１１１３に入力される。逆量子化・逆変換部１１１３は入力された量子化係数を逆量子化して直交変換係数を再生し、さらに逆直交変換を施し、符号化対象ブロックの復号されたイントラ予測誤差ブロックデータを再生し、再構成部１１１４に出力する。再構成部１１１４はステップＳ１３１９で生成されたイントラ予測ブロックデータとイントラ予測誤差ブロックデータを用いて、復号対象ブロックの復号画像の画像データを再生する。再生された画像データはカレントピクチャメモリ１１１５に出力される。その後、復号対象ブロックの復号処理を終了する。
【００７０】
ステップＳ１３１２にて、イントラブロックコピーフラグの値が０ではなかった場合すなわち値が１であった場合について説明する。この場合はイントラブロックコピー符号化モードでの復号に決定される。ステップＳ１３１３にて、コピーベクトル復号部１１０５は符号バッファ１１０２から分離部１１０３を介して、ｍｅｒｇｅ＿ｆｌａｇ符号を入力して復号し、マージモードフラグの値を再生する。ステップＳ１３１４にて、コピーベクトル復号部１１０５は、再生されたマージモードの値を判定し、その値が１であればステップＳ１３１５に進み、そうでなければステップＳ１３１６に進む。ステップＳ１３１５にて、コピーベクトル復号部１１０５は分離部１１０３を介して入力されたｍｅｒｇｅ＿ｉｄｘ符号を復号し、ベクトル候補インデックスを再生する。コピーベクトル復号部１１０５は、コピーベクトルメモリ１１０６を参照して、復号対象ブロックの空間的近傍のブロックのコピーベクトルを用いて、コピーベクトル候補リストを生成する。再生されたベクトル候補インデックスに従って、コピーベクトル候補リストからコピーベクトルを再生する。再生されたコピーベクトルはイントラブロックコピー予測部１１０９に入力される。ステップＳ１３１６にて、コピーベクトル復号部１１０５は、符号バッファ１１０２から分離部１１０３を介して入力された差分ベクトルの符号データを復号して差分ベクトルを生成する。また、ｍｖｐ＿ｉｂｃ＿ｆｌａｇ符号を復号し、予測の方向を再生する。コピーベクトルメモリ１１０に格納されている周囲のコピーベクトルから再生された予測の方向に基づき、コピーベクトルの予測を行う。さらにコピーベクトル復号部１１０５はこの差分ベクトルと予測されたコピーベクトルから復号対象ブロックのコピーベクトルを再生する。
【００７１】
ステップＳ１３１７において、イントラブロックコピー予測部１１０９は再生されたコピーベクトルに基づいて、カレントピクチャメモリ１１１５に格納されている復号対象ピクチャの再生画像を参照する。参照された復号対象ピクチャの再生画像に基づいてイントラブロックコピー予測ブロックデータを生成する。生成されたイントラブロックコピー予測ブロックデータは再構成部１１１４に入力される。ステップＳ１３２５にて、復号部１１１２は、分離部１１０３を介して入力されたイントラブロックコピー予測誤差ブロックデータの量子化係数の符号データを復号して、量子化係数を再生する。再生された量子化係数は逆量子化・逆変換部１１１３に入力される。逆量子化・逆変換部１１１３は入力された量子化係数を逆量子化、逆直交変換を施し、イントラブロックコピー予測誤差ブロックデータを生成し、再構成部１１１４に出力する。再構成部１１１４はステップＳ１３１７で生成されたイントラブロックコピー予測ブロックデータとイントラブロックコピー予測誤差ブロックデータを用いて、復号対象ブロックの復号画像の再生画像の画像データを再生する。復号対象ブロックの画像データはカレントピクチャメモリ１１１５に出力される。その後、復号対象ブロックの復号処理を終了する。
【００７２】
ステップＳ１３１１にて、イントラ予測符号化モードではない、すなわちインター予測符号化モードであると判定された場合について説明する。ステップＳ１３２０にて、動きベクトル復号部１１０７は符号バッファ１１０２から分離部１１０３を介して、ｍｅｒｇｅ＿ｆｌａｇ符号を入力して復号し、マージモードフラグの値を再生する。ステップＳ１３２１にて、動きベクトル復号部１１０７は、再生されたマージモードの値を判定し、その値が１であればマージモードであると判定してステップＳ１３２２に進み、そうでなければステップＳ１３２３に進む。ステップＳ１３２２にて、動きベクトル復号部１１０７は分離部１１０３を介して入力されたｍｅｒｇｅ＿ｉｄｘ符号を復号し、動きベクトルのベクトル候補インデックスを再生する。動きベクトル復号部１１０７は、動きベクトルメモリ１１０８を参照して、復号対象ブロックの空間的・時間的近傍のブロックの動きベクトルを用いて、動きベクトル候補リストを生成する。そして、動きベクトル復号部１１０７は、ベクトル候補インデックスに従って、動きベクトル候補リストから動きベクトルを選択する。選択された動きベクトルはインター予測部１１１０に入力される。ステップＳ１３２３にて、動きベクトル復号部１１０７は、符号バッファ１１０２から分離部１１０３を介して入力された差分ベクトルの符号データを復号して差分ベクトルを生成する。また、動きベクトル復号部１１０７は、ｍｖｐ＿ｌ０＿ｆｌａｇ符号等を復号し、予測の方向を再生する。さらに、動きベクトル復号部１１０７は、動きベクトルメモリ１１０８に格納されている周囲の動きベクトルから予測の方向に基づき、動きベクトルの予測を行う。さらに動きベクトル復号部１１０７はこの差分ベクトルと予測された動きベクトルから復号対象ブロックの動きベクトルを再生する。再生した動きベクトルはインター予測部１１１０に入力される。ステップＳ１３２４にて、インター予測部１１１０は入力された動きベクトルに基づいて、ピクチャメモリ１１１６に格納されている復号対象ピクチャより前に復号されたピクチャの再生画像の画像データを参照してインター予測ブロックデータを生成する。生成されたインター予測ブロックデータは再構成部１１１４に入力される。復号部１１１２は分離部１１０３を介して入力されたインター予測誤差ブロックデータの量子化係数の符号データを復号して、量子化係数を再生する。再生された量子化係数は逆量子化・逆変換部１１１３に入力される。逆量子化・逆変換部１１１３は入力された量子化係数を逆量子化して直交変換係数を再生し、さらに逆直交変換を施し、符号化対象ブロックの復号されたインター予測誤差ブロックデータを生成し、再構成部１１１４に出力する。再構成部１１１４はステップＳ１３２４で生成されたインター予測ブロックデータとインター予測誤差ブロックデータを用いて、復号対象ブロックの復号画像の再生画像の画像データを再生する。再生画像の画像データはカレントピクチャメモリ１１１５に出力される。その後、復号対象ブロックの復号処理を終了する。
【００７３】
図１２に戻り、ステップＳ１２０４にて、制御部１１１８はスライス内の全てのブロックの復号が終了したか否かを判定する。全てのブロックの復号が終了している場合、ステップＳ１２０５に進み、そうでない場合はブロックのスキャン順に次のブロックの復号をステップＳ１２０３で行う。ステップＳ１２０５にて、制御部１１１８はピクチャ内の全てのスライスの復号が終了したか否かを判定する。全てのスライスの復号が終了している場合、ステップＳ１２０６に進み、そうでない場合はステップＳ１２０２に戻り、次のスライスの復号処理が行われる。ステップＳ１２０６にて、制御部１１１８によってカレントピクチャメモリ１１１５に格納された再生画像の画像データが出力部１１１７を介して外部に出力される。また、ピクチャメモリ１１１６の画像データも再生画像の必要に応じて画像データを用いて更新する。ステップＳ１２０７にて、シーケンス内の全てのピクチャの復号が終了したか否かを判定する。全てのピクチャの復号が終了していない場合、ステップＳ１２０２に進み、次のピクチャの復号処理を行う。終了している場合は全ての復号動作を終了する。
【００７４】
分離部１１０３におけるブロック符号データの入出力に関して、図２および図３３のシンタックスを用いて説明する。図２において、ｃｏｄｉｎｇ＿ｕｎｉｔ（）はブロックのシンタックスを表す。スライスタイプがＩ＿ｓｌｉｃｅではない場合、分離部１１０３はｃｕ＿ｓｋｉｐ＿ｆｌａｇ符号を入力し、ヘッダ復号部１１０４に出力する。イントラブロックコピー可否情報が１の場合に分離部１１０３はｉｎｔｒａ＿ｂｃ＿ｆｌａｇ符号を入力し、ヘッダ復号部１１０４に出力する。すなわち、イントラブロックコピー予測符号化モードをする場合、スライスタイプに関係なくｉｎｔｒａ＿ｂｃ＿ｆｌａｇ符号を入力することになる。また、スライスタイプがＰ＿ｓｌｉｃｅやＢ＿ｓｌｉｃｅである非イントラスライスのイントラ符号化モードのブロックでもイントラブロックコピー符号化が可能である。続いて、スライスが非イントラスライス（Ｐ＿ｓｌｉｃｅまたはＢ＿ｓｌｉｃｅ）で、かつイントラブロックコピーフラグが０の場合に分離部１１０３はｐｒｅｄ＿ｍｏｄｅ＿ｆｌａｇ符号を入力し、ヘッダ復号部１１０４に出力する。
【００７５】
また、図３において、ｐｒｅｄｉｃｔｉｏｎ＿ｕｎｉｔ（）は予測を行うブロックでのシンタックスを表す。図２のｃｕ＿ｓｋｉｐ＿ｆｌａｇ符号の値が１であれば、ｍｅｒｇｅ＿ｉｄｘ符号を入力し、スライスタイプに応じてコピーベクトル復号部１１０５か動きベクトル復号部１１０７に入力される。スライスタイプがＩ＿ｓｌｉｃｅであれば、コピーベクトル復号部１１０５に出力する。そうでなければ動きベクトル復号部１１０７に出力する。また、ｃｕ＿ｓｋｉｐ＿ｆｌａｇ符号の値が０であればｍｅｒｇｅ＿ｆｌａｇ符号を入力し、スライスタイプに応じてコピーベクトル復号部１１０５か動きベクトル復号部１１０７に入力される。スライスタイプに応じた出力先に関してはｍｅｒｇｅ＿ｉｄｘ符号と同様である。続いて、ｍｅｒｇｅ＿ｆｌａｇ符号の値が１であれば、ｍｅｒｇｅ＿ｉｄｘ符号を入力し、スライスタイプに応じてコピーベクトル復号部１１０５か動きベクトル復号部１１０７に入力される。スライスタイプに応じた出力先に関しても上記と同様である。以下ではマージモードでなかった場合の符号については、ｉｎｔｒａ＿ｂｃ＿ｆｌａｇ符号の値が１であればｍｖｄ＿ｃｏｄｉｎｇ（）関数で差分ベクトルの符号データとｍｖｐ＿ｉｂｃ＿ｆｌａｇ符号をコピーベクトル復号部１１０５に出力する。ｉｎｔｒａ＿ｂｃ＿ｆｌａｇ符号の値が１でなければ、これらの符号データは動きベクトル復号部１１０７に出力される。
【００７６】
以上、説明した装置構成と方法で、イントラブロックコピーイングにおいて、コピーベクトルをマージモードで符号化されたビットストリームを復号することができる。これによって、より少ないデータ量で圧縮された画像を復号することができる。
【００７７】
さらに、各符号データの生成に用いた符号化方式は特に限定されない。例えば、算術符号化方式やハフマン符号化方式を用いて復号することができる。
【００７８】
さらに、本実施形態においては、各機能をハードウェアで実現する例をとって説明したが、これに限定されず、その一部または全部をＣＰＵなどの演算処理装置を用いてソフトウェアで動作を実現しても構わない。
【００７９】
なお、本実施形態において、外部への再生画像の画像データの出力をピクチャ単位で行ったが、これに限定されず、スライス単位やブロック単位で外部に出力してももちろん構わない。
【００８０】
ｐｒｅｄｉｃｔｉｏｎ＿ｕｎｉｔ（）関数での分離部１１０３の動作について図３を用いて説明したが、これに限定されず、図４に記載されたｐｒｅｄｉｃｔｉｏｎ＿ｕｎｉｔ（）関数でも同様に入力と出力が行える。
【００８１】
なお、本実施形態において、コピーベクトルと動きベクトルはそれぞれコピーベクトルメモリ１１０６と動きベクトルメモリ１１０８に分けて格納したが、これに限定されず、同じメモリに格納しても構わない。参照されるブロックのｉｎｔｒａ＿ｂｃ＿ｆｌａｇ符号を参照することで、判別される。さらには、図４に示すように、コピーベクトル登録最大数を表すｆｉｖｅ＿ｍｉｎｕｓ＿ｍａｘ＿ｎｕｍ＿ｍｅｒｇｅ＿ｂｃ符号を別途設けられている場合、コピーベクトルの候補リストでコピーベクトルの候補ベクトルの数を増減することができる。これにより、イントラブロックコピー予測符号化モードにおける候補ベクトルの数が少なく設定でき、符号データも短くなったビットストリームを復号することが可能になる。
【００８２】
（実施形態３）
本発明の第３の実施形態を、図１４から図１７を使って説明する。本実施形態において、画像符号化装置の構成は図１と同じなので省略する。但し、イントラブロックコピー予測部１０６、コピーベクトル符号化部１０９、ヘッダ符号化部１１４、統合部１２１の動作が実施形態１と異なる。本実施形態での画像の符号化動作を以下に説明する。符号化動作については図１５、１６に示したフローチャートに基づき説明する。この時、符号化動作の全体を表すフローチャートについては図５と同じであり、ステップＳ５０７のブロック符号化動作が異なる。
【００８３】
図１５はブロックの符号化動作を表すフローチャートである。同図においては図６のフローチャートと同じ機能を果たすステップについては同じ番号を付し、説明を省略する。ステップＳ１５０１にてイントラブロックコピー予測部１０６、インター予測部１０７、イントラ予測部１０８は、ステップＳ５０１で設定されたイントラブロックコピー可否情報を判定する。その結果、イントラブロックコピー可否情報が１であれば、イントラブロックコピーイングの符号化が可であると判定され、ステップＳ６１０に進み、そうでなければステップＳ６１７に進む。
【００８４】
ステップＳ１５０１において、イントラブロックコピー可否情報が１ではなかった場合すなわち０であった場合、ステップＳ６１７に進む。ステップＳ６１７からステップＳ６２０による符号処理は実施形態１と同様であるため、説明を省略する。ステップＳ６２１においては実施形態１の図７に示すインター予測符号化処理が行われる。ステップＳ６２２においては、図８に示すイントラ予測符号化処理のうち、ステップＳ８０２の処理は行われず、全てのスライスタイプでステップＳ８０３が行われる点が異なる。
【００８５】
ステップＳ１５０１において、イントラブロックコピー可否情報が１であった場合について説明する。実施形態１と同様にステップＳ６１０からステップＳ６１２において、各予測符号化モードで用いられる、それぞれの予測誤差ブロックデータと動きベクトル、コピーベクトル、イントラ予測モードがそれぞれ算出される。ステップＳ６１３にて、実施形態１と同様に、予測モード決定部１１３は予測符号化モードをイントラ予測符号化モード／イントラブロックコピー符号化モード／インター予測符号化モードのいずれかを用いるかを決定する。インター予測符号化モードであればステップＳ６１４に進み、イントラ予測符号化モードであればステップＳ６１５に進み、実施形態１と同様にステップＳ６２１、ステップＳ６２２によって符号処理が行われるため、説明を省略する。イントラブロックコピー符号化モードであれば、ステップＳ６１６に進む。
【００８６】
ステップＳ６１３にて、イントラブロックコピー符号化モードであった場合について説明する。ステップＳ６１６にて、実施形態１と同様に、ヘッダ符号化部１１４はイントラブロックコピーフラグに１を設定する。ステップＳ１５２３ではブロックのイントラブロックコピー符号化処理が実行される。図１６はブロックのイントラブロックコピー符号化の符号化動作を表すフローチャートである。同図においては図９のフローチャートと同じ機能を果たすステップについては同じ番号を付し、説明を省略する。ステップＳ９０１、ステップＳ９０２にて、実施形態１と同様に、ヘッダ符号化部１１４はブロック符号化モードにイントラ符号化モードを設定し、コピーベクトル符号化部１０９はコピーベクトル候補リストを生成する。ステップＳ１６０１にて、ステップＳ９０８と同様に、コピーベクトル符号化部１０９は、ステップＳ６１２で算出されたコピーベクトルがマージモードで符号化できるか否かを判定する。具体的には、コピーベクトル符号化部１０９は、コピーベクトル候補リストに登録されたコピーベクトルと算出されたコピーベクトルのベクトル値が一致するか否かを判定する。マージモードでの符号化をする場合、ステップＳ１６０２に進み、そうでない場合はステップＳ９０４に進む。
【００８７】
ステップＳ１６０１において、マージモードでの符号化をすると判定された場合、ステップＳ１６０２に進む。ステップＳ１６０２において、ヘッダ符号化部１１４はスライスタイプを判定する。スライスタイプとしてＩ＿ｓｌｉｃｅが設定されていれば、ステップＳ１６０３に進み、そうでなければステップＳ１６０８に進む。
【００８８】
ステップＳ１６０２において、スライスタイプがＩ＿ｓｌｉｃｅと判定された場合について説明する。ステップＳ１６０３にて、変換・量子化部１１５は図１５のステップＳ６１２で算出されたイントラブロックコピー予測誤差ブロックデータに直交変換、量子化を施し、量子化係数を算出する。ステップＳ１６０３にて、ヘッダ符号化部１１４はスキップ符号化を行うか否かの判定を行う。ここでは、スキップ符号化を行う条件として、コピーベクトルの符号化がマージモードで行え、かつ図１５のステップＳ６１２で算出したインター予測誤差ブロックデータの量子化係数の値が全て０であることとする。但し、これに限定されない。マージモードで行えるか否かはステップＳ１６０１で判定され、ステップＳ１６０３で算出された量子化係数の値で判定できる。ヘッダ符号化部１１４は、スキップ符号化をする場合、ステップＳ１６０５に進み、そうでなければ、ステップＳ１６０８に進む。
【００８９】
ステップＳ１６０４にてスキップ符号化が行われる場合について説明する。ステップＳ１６０５にて、ヘッダ符号化部１１４はスキップフラグの値として１を設定し、これをｃｕ＿ｓｋｉｐ＿ｆｌａｇ符号として符号化する。ステップＳ１６０６にて、コピーベクトル符号化部１０９はステップＳ９０２で生成したコピーベクトル候補リストから該当するコピーベクトル候補のベクトル候補インデックスをｍｅｒｇｅ＿ｉｄｘ符号として符号化する。また、符号化されたコピーベクトルをコピーベクトルメモリ１１０に格納する。ｃｕ＿ｓｋｉｐ＿ｆｌａｇ符号とｍｅｒｇｅ＿ｉｄｘ符号は統合部１２１に入力され、統合された符号データがビットストリームとして出力部１２２から外部に出力される。また、算出されたコピーベクトルはコピーベクトルメモリ１１０に格納される。ステップＳ１６０７にて、再構成部１１７にてコピーベクトルに基づいてカレントピクチャメモリ１１８からイントラブロックコピー予測ブロックデータが算出される。イントラブロックコピー予測ブロックデータを、符号化対象ブロックの復号画像の再生画像の画像データとする。再生画像の画像データはカレントピクチャメモリ１１８に格納される。その後、符号化対象ブロックの符号化処理を終了する。
【００９０】
ステップＳ１６０４にてスキップ符号化をしないとされた場合について説明する。以下は、ステップＳ１６０２でスライスタイプがＩ＿ｓｌｉｃｅではない場合も同じである。ステップＳ１６０８にて、ヘッダ符号化部１１４はスキップフラグの値として０を設定し、これをｃｕ＿ｓｋｉｐ＿ｆｌａｇ符号として符号化する。さらにステップＳ１６０９にて、ヘッダ符号化部１１４は、ステップＳ６１６において設定されたイントラブロックコピーフラグをｉｎｔｒａ＿ｂｃ＿ｆｌａｇ符号として符号化する。ｉｎｔｒａ＿ｂｃ＿ｆｌａｇ符号の符号データは統合部１２１に入力され、ビットストリームに成形されて出力部１２２から外部に出力される。ステップＳ１６１０にて、ヘッダ符号化部１１４はスライスタイプを判定する。スライスタイプとしてＩ＿ｓｌｉｃｅが設定されていれば、ステップＳ１６１２に進み、そうでなければステップＳ１６１１に進む。ステップＳ１６１１にて、ヘッダ符号化部１１４はステップＳ９０１で設定されたイントラ符号化モード（ＭＯＤＥ＿ＩＮＴＲＡ）をｐｒｅｄ＿ｍｏｄｅ＿ｆｌａｇ符号として符号化する。ｐｒｅｄ＿ｍｏｄｅ＿ｆｌａｇ符号の符号データは統合部１２１に入力され、ビットストリームに成形されて出力部１２２から外部に出力される。ステップＳ１６１２にて、ステップＳ１６０６と同様にコピーベクトル符号化部１０９は該当するコピーベクトル候補のベクトル候補インデックスをｍｅｒｇｅ＿ｉｄｘ符号として符号化し、選択されたコピーベクトルをコピーベクトルメモリ１１０に格納する。ステップＳ９１１にて、実施形態１と同様に、変換・量子化部１１５はイントラブロックコピー予測誤差ブロックデータの量子化係数を算出し、逆量子化・逆変換部１１６は符号化対象ブロックの復号画像の再生画像を算出し、カレントピクチャメモリ１１８に格納する。符号化部１２０はイントラブロックコピー予測誤差ブロックデータを符号化し、イントラブロックコピー予測誤差ブロックデータの符号データを生成し、統合部１２１に入力し、ビットストリームに成形されて出力部１２２から外部に出力される。その後、符号化対象ブロックの符号化処理を終了する。
【００９１】
ステップＳ１６０２において、スライスタイプがＰ＿ｓｌｉｃｅないしＢ＿ｓｌｉｃｅと判定された場合について説明する。ステップＳ１６０８以降、前述の符号化処理を行う。すなわち、ｃｕ＿ｓｋｉｐ＿ｆｌａｇ、ｉｎｔｒａ＿ｂｃ＿ｆｌａｇ、ｐｒｅｄ＿ｍｏｄｅ＿ｆｌａｇの符号化が行われる。さらに、符号化対象ブロックのコピーベクトルが差分ベクトルの符号化によって符号化され、イントラブロックコピー予測誤差ブロックデータの量子化係数が符号化される。コピーベクトル、再生画像の画像データをコピーベクトルメモリ１１０、カレントピクチャメモリ１１８に格納し、符号化対象ブロックの符号化処理を終了する。
【００９２】
ステップＳ１６０１において、マージモードでの符号化をしないと判定された場合について説明する。実施形態１と同様に、ステップＳ９０４にて、ヘッダ符号化部１１４はスキップ符号化を行うか否かを示すスキップフラグの値を０に設定し、それを表すｃｕ＿ｓｋｉｐ＿ｆｌａｇ符号を符号化する。ステップＳ９０５にて、イントラブロックコピーフラグの値である１をｉｎｔｒａ＿ｂｃ＿ｆｌａｇ符号として符号化する。ステップＳ９０６にて、ヘッダ符号化部１１４はスライスタイプを判定し、Ｉ＿ｓｌｉｃｅが設定されていれば、ステップＳ９１０に進み、そうでなければステップＳ９０７に進む。ステップＳ９０７にて、ヘッダ符号化部１１４はステップＳ９０１で設定されたイントラ符号化モード（ＭＯＤＥ＿ＩＮＴＲＡ）をｐｒｅｄ＿ｍｏｄｅ＿ｆｌａｇ符号として符号化する。ステップＳ９１０にて、コピーベクトル符号化部１０９は差分ベクトルと予測の方向を求めて、符号化する。ステップＳ９１１にて、、実施形態１と同様に、変換・量子化部１１５はイントラブロックコピー予測誤差ブロックデータの量子化係数を算出する。逆量子化・逆変換部１１６に入力された量子化係数は逆量子化、逆変換を経て、イントラブロックコピー予測誤差ブロックデータとして再生する。また、再構成部１１７はイントラブロックコピー予測ブロックデータを算出し、イントラブロックコピー予測誤差ブロックデータを用いて、符号化対象ブロックの復号画像の再生画像の画像データを再生する。再生画像の画像データはカレントピクチャメモリ１１８に格納される。また、符号化部１２０はイントラブロックコピー予測誤差ブロックデータの量子化係数を符号化し、予測誤差の符号データを生成する。これらは統合部１２１に入力され、ビットストリームに成形されて出力部１２２から外部に出力される。その後、符号化対象ブロックの符号化処理を終了する。
【００９３】
図５に戻り、実施形態１と同様に、動画像シーケンス内の全てのピクチャの符号化を行い、符号化処理全体が終了する。
【００９４】
上記の構成と動作によって生成されたビットストリームの内、ブロックの符号化に関するシンタックスの例を図１４に示す。図１４において、図２のシンタックスに比べ、ｃｕ＿ｓｋｉｐ＿ｆｌａｇ符号の前の
ｉｆ（ｓｌｉｃｅ＿ｔｙｐｅ！＝Ｉ）
という条件が外されている。したがって、全てのスライスタイプのスライスのブロックでスキップ符号化が可能になる。但し、スライスタイプがＩ＿ｓｌｉｃｅであれば、イントラブロックコピー符号化モードのブロックのみでスキップ符号化が行われる。また、スライスタイプがＰ＿ｓｌｉｃｅまたはＢ＿ｓｌｉｃｅであれば、インター予測符号化モードのブロックのみでスキップ符号化が行われる。これは図３のスキップ符号化を行う時のｍｅｒｇｅ＿ｉｄｘ符号の値であるベクトル候補インデックスがコピーベクトル候補のインデックスなのか、動きベクトル候補のインデックスなのかをスライスタイプで判断して使用することで実現される。
【００９５】
以上、説明した装置構成と方法で、イントラブロックコピー符号化のコピーベクトルにおいてもマージモードの使用が可能になる。さらにスライスタイプがＩ＿ｓｌｉｃｅのスライスのイントラブロックコピー符号化においてスキップ符号化が可能になり、符号化効率の改善が可能になった。
【００９６】
なお、本実施形態において、図１４のシンタックスの代わりに、図１７のシンタックスを用いても構わない。図１７において、図２の
ｉｆ（ｓｌｉｃｅ＿ｔｙｐｅ！＝Ｉ）
の条件の代わりに
ｉｆ（ｓｌｉｃｅ＿ｔｙｐｅ！＝Ｉ｜｜ｉｎｔｒａ＿ｂｌｏｃｋ＿ｃｏｐｙ＿ｅｎａｂｌｅｄ＿ｆｌａｇ）
とする。これにより、スライスタイプがＩ＿ｓｌｉｃｅであっても、イントラブロックコピー符号化が可能でない場合にｃｕ＿ｓｋｉｐ＿ｆｌａｇ符号を省略できる効果が得られる。
【００９７】
なお、図１６において、ステップＳ１６０４においてスキップ符号化をしないと判断された場合に、ステップＳ９１１ではイントラブロックコピー予測誤差ブロックデータをステップＳ１６０３で算出したものを用いても構わない。
【００９８】
また、本実施形態において、イントラブロックコピー符号化モードにおいて、スキップ符号化が行われる際に、予め決められたコピーベクトル候補のベクトル候補インデックスを用いても良い。例えば、ブロックの左側のブロックが参照可能であれば、左側のブロックのコピーベクトルを符号化対象ブロックのコピーベクトルとする。また、ブロックの左側のブロックが参照不可能であれば、上側のブロックのコピーベクトルを符号化対象ブロックのコピーベクトルとする。この場合、予測を行うブロックでのシンタックスに関して、図４の３行目について下記のように変更される。
【００９９】
【表３】
0006482191.tif 000004
これにより、さらにデータ量を削減することが可能になる。
【０１００】
（実施形態４）
本発明の第４の実施形態を、図１８を使って説明する。本実施形態では実施形態３で生成されたビットストリームを復号する場合を例にとって説明する。
【０１０１】
本実施形態において、画像復号装置の構成は図１１と同じなので省略する。但し、分離部１１０３、ヘッダ復号部１１０４、コピーベクトル復号部１１０５、イントラブロックコピー予測部１１０９、再構成部１１１４の動作が実施形態２と異なる。本実施形態での画像の復号動作を以下に説明する。この時、復号動作の全体を表すフローチャートについては図１２と同じであり、ステップＳ１２０３のブロック復号動作が異なる。
【０１０２】
図１８は、本実施形態のステップＳ１２０３のブロックの復号動作を表すフローチャートである。同図においては図１３のフローチャートと同じ機能を果たすステップについては同じ番号を付し、説明を省略する。ステップＳ１３０２にて、実施形態２と同様に、ヘッダ復号部１１０４はスキップフラグの値を再生する。ステップＳ１３０４にて、ヘッダ復号部１１０４はスキップフラグの値を判定し、値が１であればスキップ符号化されていると判定しステップＳ１８０１に進み、そうでなければステップＳ１３０５に進む。
【０１０３】
ステップＳ１３０４において、スキップフラグの値が１であった場合について説明する。ステップＳ１８０１にて、コピーベクトル復号部１１０５、及び動きベクトル復号部１１０７、イントラブロックコピー予測部１１０９、インター予測部１１１０はスライスタイプを判定する。スライスタイプがＩ＿ｓｌｉｃｅであれば、ステップＳ１８０２に進み、そうでなければステップＳ１３２６に進む。
【０１０４】
ステップＳ１８０１でスライスタイプがＩ＿ｓｌｉｃｅと判定された場合について説明する。ステップＳ１８０２にて、コピーベクトル復号部１１０５は分離部１１０３を介してｍｅｒｇｅ＿ｉｄｘ符号を入力し復号する。ここではイントラスライスであるので、ｍｅｒｇｅ＿ｉｄｘ符号が表すベクトル候補インデックスはコピーベクトル候補リストのベクトル候補インデックスである。コピーベクトル復号部１１０５は、コピーベクトルメモリ１１０６を参照して、復号対象ブロックの空間的近傍のブロックのコピーベクトルを用いて、コピーベクトル候補リストを生成する。コピーベクトル復号部１１０５はｍｅｒｇｅ＿ｉｄｘ符号を復号してベクトル候補インデックスを再生し、ベクトル候補インデックスに従って、コピーベクトル候補リストからコピーベクトルを再生する。再生されたコピーベクトルはイントラブロックコピー予測部１１０９に入力される。また、再生されたコピーベクトルはコピーベクトルメモリ１１０６に格納される。ステップＳ１８０３にて、イントラブロックコピー予測部１１０９はこのコピーベクトルに基づいて、カレントピクチャメモリ１１１５に格納されている復号対象ピクチャの再生画像の画像データを参照してイントラブロックコピー予測ブロックデータを生成する。イントラブロックコピーイング予測部１１０９は、このイントラブロックコピー予測ブロックデータを復号対象ブロックの再生画像の画像データとする。復号対象ブロックの再生画像の画像データはカレントピクチャメモリ１１１５に出力される。その後、復号対象ブロックの復号処理が終了する。
【０１０５】
ステップＳ１８０１でスライスタイプがＩ＿ｓｌｉｃｅ以外と判定された場合について説明する。実施形態２と同様に、ステップＳ１３２６において、動きベクトル復号部１１０７はｍｅｒｇｅ＿ｉｄｘ符号を復号し、動きベクトル候補インデックスを再生し、生成された動きベクトル候補リストから動きベクトルを再生する。再生された動きベクトルは動きベクトルメモリ１１０８に格納される。ステップＳ１３２７にて、インター予測部１１１０は入力された動きベクトルに基づいて、ピクチャメモリ１１１６に格納されている復号対象ピクチャより前に復号されたピクチャの再生画像を参照してインター予測ブロックデータを生成する。再構成部１１１４はインター予測ブロックデータを用いて、復号対象ブロックの復号画像の再生画像の画像データとする。復号対象ブロックの画像データはカレントピクチャメモリ１１１５に出力される。その後、復号対象ブロックの復号処理が終了する。
【０１０６】
ステップＳ１３０４において、スキップフラグの値が１でなかった場合については以下の動作は実施形態２と同様であるので、説明を省略する。
【０１０７】
分離部１１０３におけるブロック符号データの入力に関して、図１４のシンタックスを用いて説明する。図１４において、ｃｏｄｉｎｇ＿ｕｎｉｔ（）はブロックのシンタックスを表す。分離部１１０３はスライスタイプに依存せず、ｃｕ＿ｓｋｉｐ＿ｆｌａｇ符号を入力し、ヘッダ復号部１１０４に出力する。以下、従来通り、イントラブロックコピー可否情報が１の場合に分離部１１０３はｉｎｔｒａ＿ｂｃ＿ｆｌａｇ符号を入力し、ヘッダ復号部１１０４に出力する。スライスが非イントラスライス（Ｐ＿ｓｌｉｃｅまたはＢ＿ｓｌｉｃｅ）でかつとイントラブロックコピーフラグが０の場合に分離部１１０３はｐｒｅｄ＿ｍｏｄｅ＿ｆｌａｇ符号を入力し、ヘッダ復号部１１０４に出力する。
【０１０８】
図１７のシンタックスにおいても以下のとおりである。分離部１１０３はスライスタイプがＩ＿ｓｌｉｃｅではないか、Ｉ＿ｓｌｉｃｅであってもｉｎｔｒａ＿ｂｌｏｃｋ＿ｃｏｐｙ＿ｅｎａｂｌｅｄ＿ｆｌａｇ符号が１であれば、ｃｕ＿ｓｋｉｐ＿ｆｌａｇ符号を入力し、ヘッダ復号部１１０４に出力する。すなわち、スライスタイプがＩ＿ｓｌｉｃｅでｉｎｔｒａ＿ｂｌｏｃｋ＿ｃｏｐｙ＿ｅｎａｂｌｅｄ＿ｆｌａｇ符号が０の時にはｃｕ＿ｓｋｉｐ＿ｆｌａｇ符号は入力されない。以下、従来通りに入力と出力を行う。
【０１０９】
以上、説明した装置構成と方法で、イントラブロックコピーイングにおいて、さらにスライスタイプがＩ＿ｓｌｉｃｅのスライスのイントラブロックコピー符号化においてスキップ符号化が可能になり、符号化効率の改善が可能になった。これによって、より少ないデータ量で圧縮された画像を復号することができる。
【０１１０】
さらに、本実施形態においては、各機能をハードウェアで実現する例をとって説明したが、これに限定されず、その一部または全部をＣＰＵなどの演算処理装置を用いてソフトウェアで動作を実現しても構わない。
【０１１１】
さらに、各符号データの生成に用いた符号化方式は特に限定されない。例えば、算術符号化方式やハフマン符号化方式を用いて復号することができる。
【０１１２】
なお、本実施形態において、外部への再生画像の画像データの出力をピクチャ単位で行ったが、これに限定されず、スライス単位やブロック単位で外部に出力してももちろん構わない。
【０１１３】
また、本実施形態において、イントラブロックコピー符号化モードにおいて、スキップ符号化を行う際に、予め決められたコピーベクトル候補のベクトル候補インデックスが用いられていても良い。例えば、ブロックの左側のブロックが参照可能であれば、左側のブロックのコピーベクトルを復号対象ブロックのコピーベクトルとする。また、ブロックの左側のブロックが参照不可能であれば、上側のブロックのコピーベクトルを復号対象ブロックのコピーベクトルとする。さらには、一意に左側のブロックのコピーベクトルや復号対象ブロックの直前に復号されたブロックのコピーベクトルを復号対象ブロックのコピーベクトルとしてもよい。コピーベクトル候補のベクトルを限定することによって、よりデータ量の少ないビットストリームでも復号が可能である。
【０１１４】
（実施形態５）
本発明の第５の実施形態を、図１９から図２２を使って説明する。本実施形態において、画像符号化装置の構成は図１と同じなのでその説明を省略する。但し、イントラブロックコピー予測部１０６、コピーベクトル符号化部１０９、ヘッダ符号化部１１４、統合部１２１の動作が実施形態３と異なる。本実施形態での画像の符号化動作を以下に説明する。符号化動作については図２０、２１に示したフローチャートに基づき説明する。この時、符号化動作の全体を表すフローチャートについては図５と同じであり、ステップＳ５０７のブロック符号化動作が異なる。また、ブロック符号化処理を表すフローチャートについては図６と同じであり、ステップＳ６２１、ステップＳ６２２、ステップＳ６２３の動作が異なる。
【０１１５】
図２０は図６におけるステップＳ６２１の本実施形態でのインター予測符号化処理を表すフローチャートである。同図においては図７のフローチャートと同じ機能を果たすステップについては同じ番号を付し、説明を省略する。ステップＳ７０１にて、実施形態１と同様に、ヘッダ符号化部１１４はブロック符号化モードにインター符号化モード（ＭＯＤＥ＿ＩＮＴＥＲ）を設定する。ステップＳ２００１にて、ヘッダ符号化部１１４はイントラブロックコピー可否情報を判定し、イントラブロックコピー可否情報が１であれば、ステップＳ２００２に進み、そうでなければステップＳ７０２に進む。ステップＳ２００２にて、図７のステップＳ７１７と同様に、ヘッダ符号化部１１４は、イントラブロックコピーフラグをｉｎｔｒａ＿ｂｃ＿ｆｌａｇ符号として符号化する。ｉｎｔｒａ＿ｂｃ＿ｆｌａｇ符号の符号データは統合部１２１に入力され、ビットストリームに成形されて出力部１２２から外部に出力される。実施形態１と同様にステップＳ７０３にて、動きベクトル符号化部１１１はマージモードの可否を判定する。実施形態１と同様にステップＳ７０５にて、ヘッダ符号化部１１４はスキップ符号化の可否を決定する。その後、ステップＳ７０６、またはステップＳ７０９、またはステップＳ７１５にて、スキップフラグの符号化が行われる。以下、動きベクトルの符号化、インター予測誤差ブロックデータの符号化、再生画像の算出、動きベクトルの格納が行われ、符号化対象ブロックの符号化処理が終了する。
【０１１６】
図２１は図６におけるステップＳ６２２の本実施形態でのイントラ予測符号化処理を表すフローチャートである。同図においては図８のフローチャートと同じ機能を果たすステップについては同じ番号を付し、説明を省略する。ステップＳ８０１にて、実施形態１と同様に、ヘッダ符号化部１１４はブロック符号化モードにイントラ符号化モード（ＭＯＤＥ＿ＩＮＴＲＡ）を設定する。ステップＳ２１０１にて、ヘッダ符号化部１１４はイントラブロックコピー可否情報を判定し、イントラブロックコピー可否情報が１であれば、ステップＳ２１０２に進み、そうでなければステップＳ８０３に進む。ステップＳ２１０２にて、図８のステップＳ８０５と同様に、ヘッダ符号化部１１４は、イントラブロックコピーフラグをｉｎｔｒａ＿ｂｃ＿ｆｌａｇ符号として符号化する。ｉｎｔｒａ＿ｂｃ＿ｆｌａｇ符号の符号データは統合部１２１に入力され、ビットストリームに成形されて出力部１２２から外部に出力される。実施形態１と同様にステップＳ８０３にて、スキップフラグの符号化が行われる。以下、実施形態１と同様に、イントラ予測モードの符号化、イントラ予測誤差ブロックデータの符号化、再生画像の算出が行われ、符号化対象ブロックの符号化処理が終了する。
【０１１７】
図２２は図６におけるステップＳ６２３の本実施形態でのイントラブロックコピー符号化処理を表すフローチャートである。同図においては図１６のフローチャートと同じ機能を果たすステップについては同じ番号を付し、説明を省略する。ステップＳ９０１にて、実施形態１と同様に、ヘッダ符号化部１１４はブロック符号化モードにイントラ符号化モード（ＭＯＤＥ＿ＩＮＴＲＡ）を設定する。ステップＳ２２０１にて、図９のステップＳ９０４と同様に、ヘッダ符号化部１１４は、イントラブロックコピーフラグをｉｎｔｒａ＿ｂｃ＿ｆｌａｇ符号として符号化する。ここではイントラブロックコピーフラグの値は１である。ｉｎｔｒａ＿ｂｃ＿ｆｌａｇ符号の符号データは統合部１２１に入力され、ビットストリームに成形されて出力部１２２から外部に出力される。続いて、同様に、ステップＳ９０２にて、コピーベクトル符号化部１０９はコピーベクトルの候補リストを生成する。ステップＳ１６０１にて、実施形態２と同様に、コピーベクトルがマージモードで符号化できるか否かを判定する。
【０１１８】
ステップＳ１６０１において、マージモードでの符号化をすると判定された場合について説明する。ステップＳ１６０２において、実施形態２と同様に、ヘッダ符号化部１１４はスキップ符号化をするかどうかを判定する。
【０１１９】
ステップＳ１６０２において、スキップ符号化を可能と判定した場合について説明する。以下、実施形態１と同様に、ステップＳ１６０５にて、ヘッダ符号化部１１４はスキップフラグの値として１を設定し、これをｃｕ＿ｓｋｉｐ＿ｆｌａｇ符号として符号化する。ステップＳ１６０６にて、コピーベクトル符号化部１０９は、該当するコピーベクトル候補のベクトル候補インデックスをｍｅｒｇｅ＿ｉｄｘ符号として符号化する。ステップＳ１６０７にて、イントラブロックコピー予測ブロックデータを、符号化対象ブロックの復号画像の再生画像の画像データとする。再生画像の画像データはカレントピクチャメモリ１１８に格納される。その後、符号化対象ブロックの符号化処理を終了する。
【０１２０】
ステップＳ１６０２において、スキップ符号化を行うと判定した場合について説明する。ステップＳ１６０８にて、ヘッダ符号化部１１４はスキップフラグの値として０を設定し、これをｃｕ＿ｓｋｉｐ＿ｆｌａｇ符号として符号化する。ステップＳ１６１２にて、コピーベクトル符号化部１０９は、該当するコピーベクトル候補のベクトル候補インデックスをｍｅｒｇｅ＿ｉｄｘ符号として符号化する。ステップＳ９１１にて、、実施形態１と同様に、変換・量子化部１１５はイントラブロックコピー予測誤差ブロックデータの量子化係数を算出し、逆量子化・逆変換部１１６は符号化対象ブロックの再生画像の画像データが再生され、カレントピクチャメモリ１１８に格納する。符号化部１２０はイントラブロックコピー予測誤差ブロックデータの量子化係数が符号化され、予測誤差の符号データが生成される。符号データは統合部１２１に入力され、ビットストリームに成形されて出力部１２２から外部に出力される。その後、符号化対象ブロックの符号化処理を終了する。
【０１２１】
ステップＳ１６０２において、スキップ符号化を行わないと判定した場合について説明する。ステップＳ１６０８にて、実施形態２と同様に、ヘッダ符号化部１１４はスキップフラグの値を０に設定し、それを表すｃｕ＿ｓｋｉｐ＿ｆｌａｇ符号を符号化する。続いて、ステップＳ１６１２にて、コピーベクトル符号化部１０９はステップＳ１６０６と同様に、該当するコピーベクトル候補のベクトル候補インデックスをｍｅｒｇｅ＿ｉｄｘ符号として符号化する。続いてステップＳ９１１にて前述の通り、符号化対象ブロックの再生画像の画像データが再生され、イントラブロックコピー予測誤差ブロックデータの量子化係数が符号化され、予測誤差の符号データが生成される。
【０１２２】
ステップＳ１６０１において、マージモードでの符号化をしないと判定された場合について説明する。ステップＳ９０４にて、ヘッダ符号化部１１４はスキップフラグの値として０を設定し、これをｃｕ＿ｓｋｉｐ＿ｆｌａｇ符号として符号化する。ステップＳ９１０にて、コピーベクトル符号化部１０９は差分ベクトルを求めて、符号化する。ステップＳ９１１にて、前述の通り、符号化対象ブロックの再生画像の画像データが再生され、イントラブロックコピー予測誤差ブロックデータの量子化係数を符号化し、予測誤差の符号データが生成される。
【０１２３】
そして、実施形態２と同様に、動画像シーケンス内の全てのピクチャの符号化を行い、符号化処理全体が終了する。
【０１２４】
上記の構成と動作によって生成されたビットストリームの内、ブロックの符号化に関するシンタックスの例を図１９に示す。図１９において、図２のシンタックスに比べ、ｃｕ＿ｓｋｉｐ＿ｆｌａｇ符号より前に
ｉｆ（ｉｎｔｒａ＿ｂｌｏｃｋ＿ｃｏｐｙ＿ｅｎａｂｌｅｄ＿ｆｌａｇ）
ｉｎｔｒａ＿ｂｃ＿ｆｌａｇ［ｘ０］［ｙ０］
が追加された。これにより、イントラブロックコピー可否情報であるｉｎｔｒａ＿ｂｌｏｃｋ＿ｃｏｐｙ＿ｅｎａｂｌｅｄ＿ｆｌａｇ符号に基づいて、ｉｎｔｒａ＿ｂｃ＿ｆｌａｇ符号が符号化される。
【０１２５】
さらに、ｃｕ＿ｓｋｉｐ＿ｆｌａｇ符号の条件である、
ｉｆ（ｓｌｉｃｅ＿ｔｙｐｅ！＝Ｉ）
が
ｉｆ（ｓｌｉｃｅ＿ｔｙｐｅ！＝Ｉ｜｜ｉｎｔｒａ＿ｂｃ＿ｆｌａｇ）
に変更されている。これにより、ｃｕ＿ｓｋｉｐ＿ｆｌａｇ符号はスライスタイプが非イントラスライスの全ての符号化のモードと、スライスタイプがＩ＿ｓｌｉｃｅのイントラブロックコピー符号化モードの際にスキップ符号化を使用することができる。
【０１２６】
以上、説明した装置構成と方法で、さらに、スライスタイプがＩ＿ｓｌｉｃｅのスライスだけでなくＰ＿ｓｌｉｃｅやＢ＿ｓｌｉｃｅのイントラブロックコピー符号化においてもスキップ符号化が可能になり、符号化効率の改善が可能になった。
【０１２７】
さらに、本実施形態においては、各機能をハードウェアで実現する例をとって説明したが、これに限定されず、その一部または全部をＣＰＵなどの演算処理装置を用いてソフトウェアで動作を実現しても構わない。
【０１２８】
さらに、各符号データの生成に用いた符号化方式は特に限定されない。例えば、算術符号化方式やハフマン符号化方式を用いて復号することができる。
【０１２９】
また、本実施形態において、イントラブロックコピー符号化モードにおいて、スキップ符号化を行う際に、予め決められたコピーベクトル候補のベクトル候補インデックスを用いても良い。例えば、ブロックの左側のブロックが参照可能であれば、左側のブロックのコピーベクトルを符号化対象ブロックのコピーベクトルとする。また、ブロックの左側のブロックが参照不可能であれば、上側のブロックのコピーベクトルを符号化対象ブロックのコピーベクトルとする。この場合は、予測を行うブロックでのシンタックスに関して、実施形態３と同様にように変更される。これにより、さらにデータ量を削減することが可能になる。
【０１３０】
（実施形態６）
本発明の第６の実施形態を、図２３を使って説明する。本実施形態では実施形態５で生成されたビットストリームを復号する場合を例にとって説明する。
【０１３１】
本実施形態において、画像復号装置の構成は図１１と同じなので省略する。但し、分離部１１０３、ヘッダ復号部１１０４、コピーベクトル復号部１１０５、イントラブロックコピー予測部１１０９、再構成部１１１４の動作が実施形態４と異なる。本実施形態での画像の復号動作を以下に説明する。復号動作については図２３に示したフローチャートに基づき説明する。同図においては図１８のフローチャートと同じ機能を果たすステップについては同じ番号を付し、説明を省略する。ステップＳ２３０１にて、ヘッダ復号部１１０４は、ステップＳ１２０１にて復号して得られたイントラブロックコピー可否情報を判定する。イントラブロックコピー可否情報の値が１（イントラブロックコピーイングが可）であればステップＳ２３０２に進み、そうでなければステップＳ２３０３に進む。ステップＳ２３０２にて、ヘッダ復号部１１０４は分離部１１０３を介して入力されたｉｎｔｒａ＿ｂｃ＿ｆｌａｇ符号を復号し、その値をイントラブロックコピーフラグに設定する。ステップＳ２３０３にて、ヘッダ復号部１１０４はイントラブロックコピーフラグに０を設定する。
【０１３２】
ステップＳ１３０１にて、実施形態２と同様に、ヘッダ復号部１１０４は図１２のステップＳ１２０２で再生されたスライスタイプを判定する。スライスタイプがＩ＿ｓｌｉｃｅであればステップＳ２３０５に進み、そうでなければステップＳ１３０２に進む。ステップＳ２３０５にて、ヘッダ復号部１１０４はステップＳ２３０２またはステップＳ２３０３にて設定されたイントラブロックコピーフラグの値を判定し、その値が１であればステップＳ１３０２に進み、そうでなければステップＳ１３０３に進む。ステップＳ１３０２及びステップＳ１３０３は実施形態２と同様にスキップフラグの値を設定する。
【０１３３】
ステップＳ１３０４にて、ヘッダ復号部１１０４はスキップフラグの値を判定し、値が１であればステップＳ２３０９に進み、そうでなければステップＳ１３０８に進む。
【０１３４】
ステップＳ１３０４において、スキップフラグの値が１であった場合について説明する。ステップＳ２３０９にて、ヘッダ復号部１１０４は、ステップＳ２３０２またはステップＳ２３０３にて設定されたイントラブロックコピーフラグの値を判定し、その値が１であればステップＳ２３２９に進み、そうでなければステップＳ２３２７に進む。
【０１３５】
ステップＳ２３０９において、イントラブロックコピーフラグの値が１であった場合について説明する。ステップＳ２３２９にて、コピーベクトル復号部１１０５は分離部１１０３を介してｍｅｒｇｅ＿ｉｄｘ符号を入力し復号する。ここではイントラブロックコピーフラグの値が１であることからブロック符号化モードはイントラ符号化モードである。さらに言えば、予測符号化モードはイントラブロックコピー予測符号化モードである。したがって、ｍｅｒｇｅ＿ｉｄｘ符号が表すベクトル候補インデックスはコピーベクトル候補リストのベクトル候補インデックスである。コピーベクトル復号部１１０５は、コピーベクトルメモリ１１０６を参照して、復号対象ブロックの空間的近傍のブロックのコピーベクトルを用いて、コピーベクトル候補リストを生成する。コピーベクトル復号部１１０５はｍｅｒｇｅ＿ｉｄｘ符号を復号してベクトル候補インデックスを再生する。このベクトル候補インデックスに従って、コピーベクトル候補リストからコピーベクトルを再生する。再生されたコピーベクトルはイントラブロックコピー予測部１１０９に入力される。また、再生されたコピーベクトルはコピーベクトルメモリ１１０６に格納される。ステップＳ１８０３にて、実施形態４と同様にイントラブロックコピー予測ブロックデータが生成され、これを再生画像の画像データとする。復号対象ブロックの再生画像の画像データはカレントピクチャメモリ１１１５に出力される。その後、復号対象ブロックの復号処理を終了する。
【０１３６】
ステップＳ２３０９において、イントラブロックコピーフラグの値が１でなかった場合について説明する。ステップＳ２３２７にて、動きベクトル復号部１１０７は分離部１１０３を介して入力されたｍｅｒｇｅ＿ｉｄｘ符号を復号する。ここではイントラブロックコピーフラグの値が０であることから、ブロック符号化モードはインター符号化モードである。さらに言えば、予測符号化モードはインター予測符号化モードである。動きベクトル復号部１１０７は分離部１１０３を介して入力されたｍｅｒｇｅ＿ｉｄｘ符号を復号する。動きベクトル復号部１１０７は、動きベクトルメモリ１１０８を参照して、復号対象ブロックの空間的・時間的近傍のブロックの動きベクトルを用いて、動きベクトル候補リストを生成する。動きベクトル復号部１１０７はさらにｍｅｒｇｅ＿ｉｄｘ符号を復号してベクトル候補インデックスを再生し、ベクトル候補インデックスに従って、動きベクトル候補リストから復号対象ブロックの動きベクトルを再生する。再生された動きベクトルはインター予測部１１１０に入力される。また、再生された動きベクトルは動きベクトルメモリ１１０８に格納される。ステップＳ１３２７にて、実施形態４と同様にインター予測ブロックデータが生成され、この生成されたデータを復号対象ブロックの再生画像の画像データとする。再生画像の画像データはカレントピクチャメモリ１１１５に出力される。その後、復号対象ブロックの復号処理を終了する。
【０１３７】
ステップＳ１３０４において、スキップフラグの値が１ではなかった場合について説明する。ステップＳ１３０８にて、ヘッダ復号部１１０４は、スライスタイプを判定し、Ｉ＿ｓｌｉｃｅであればステップＳ１３１０に進み、そうでなければステップＳ２３１０に進む。ステップＳ１３０８において、スライスタイプがＩ＿ｓｌｉｃｅでなかった場合、ステップＳ２３１０にて、ヘッダ復号部１１０４はイントラブロックコピーフラグの値を判定する。イントラブロックコピーフラグの値が１（イントラブロックコピーイングが可）であればステップＳ１３１０に進み、そうでなければステップＳ１３０９に進む。ステップＳ１３０９にて、実施形態２と同様に、ヘッダ復号部１１０４は、ブロック符号化モードを表すｐｒｅｄ＿ｍｏｄｅ＿ｆｌａｇ符号を復号し、その値をブロック符号化モードの値に設定する。ステップＳ１３１０にて、実施形態２と同様に、ヘッダ復号部１１０４は、ブロック符号化モードにイントラ符号化モード（ＭＯＤＥ＿ＩＮＴＲＡ）を設定する。以下、実施形態４と同様であるので、説明を省略する。
【０１３８】
分離部１１０３におけるブロック符号データの入力に関して、図１９のシンタックスを用いて説明する。図１９において、ｃｏｄｉｎｇ＿ｕｎｉｔ（）はブロックのシンタックスを表す。分離部１１０３はスライスタイプに依存せず、イントラブロックコピー可否情報が１の場合に、分離部１１０３はｉｎｔｒａ＿ｂｃ＿ｆｌａｇ符号を入力し、ヘッダ復号部１１０４に出力する。続いて、スライスタイプがＩ＿ｓｌｉｃｅではないか、ｉｎｔｒａ＿ｂｃ＿ｆｌａｇ符号の値が１の場合にｃｕ＿ｓｋｉｐ＿ｆｌａｇ符号を入力し、ヘッダ復号部１１０４に出力する。これにより、イントラブロックコピーフラグの値が１の時、すなわち、スライスタイプに拘わらずイントラブロックコピー符号化モードにおいてｃｕ＿ｓｋｉｐ＿ｆｌａｇ符号を使用することが可能になった。
【０１３９】
以上、説明した装置構成と方法で、さらにスライスタイプに拘わらずイントラブロックコピー符号化においてスキップ符号化されたビットストリームの復号が可能になり、符号化効率の改善が可能になった。これによって、より少ないデータ量で圧縮された画像を復号することができる。
【０１４０】
さらに、本実施形態においては、各機能をハードウェアで実現する例をとって説明したが、これに限定されず、その一部または全部をＣＰＵなどの演算処理装置を用いてソフトウェアで動作を実現しても構わない。
【０１４１】
さらに、各符号データの生成に用いた符号化方式は特に限定されない。例えば、算術符号化方式やハフマン符号化方式を用いて復号することができる。
【０１４２】
また、本実施形態において、イントラブロックコピー符号化モードにおいて、スキップ符号化を行う際に、予め決められたコピーベクトル候補のベクトル候補インデックスが用いられていても良い。例えば、ブロックの左側のブロックが参照可能であれば、左側のブロックのコピーベクトルを復号対象ブロックのコピーベクトルとする。また、ブロックの左側のブロックが参照不可能であれば、上側のブロックのコピーベクトルを復号対象ブロックのコピーベクトルとする。これによって、よりデータ量の少ないビットストリームでも復号が可能である。
【０１４３】
（実施形態７）
本発明の第７の実施形態を、図２４から図２９を使って説明する。
【０１４４】
本実施形態の説明に先立ち、本実施形態で使用する予測符号化モードについて、図２４を用いて説明する。本実施形態で扱う予測符号化モードはイントラ予測符号化モード、イントラブロックコピー符号化モード、インター予測符号化モードである。図２４（ａ）は従来の符号化のモードを説明した図である。図２４（ａ）において、これらをｐｒｅｄ＿ｍｏｄｅ＿ｆｌａｇ符号の値であるＭＯＤＥ＿ＩＮＴＲＡとＭＯＤＥ＿ＩＮＴＥＲ、およびｉｎｔｒａ＿ｂｃ＿ｆｌａｇ符号の値である１または０の組合せで表現することができた。本実施形態では、新たに予測符号化モードを表す符号として、ブロック符号化インデックスを設け、ｐｒｅｄ＿ｍｏｄｅ＿ｉｄｘ符号として符号化する。図２４（ｂ）を用いてこれを説明する。ブロック符号化インデックスとして、イントラ予測符号化モードとしてＭＯＤＥ＿ＩＮＴＲＡを、イントラブロックコピー符号化モードとしてＭＯＤＥ＿ＩＮＴＲＡ＿ＢＣを、インター予測符号化モードとしてＭＯＤＥ＿ＩＮＴＥＲを割り当てる。例えば、ＭＯＤＥ＿ＩＮＴＲＡは０を、ＭＯＤＥ＿ＩＮＴＲＡ＿ＢＣは１を、ＭＯＤＥ＿ＩＮＴＥＲは２とすることができる。但し、値はこれに限定されない。
【０１４５】
本実施形態において、画像符号化装置の構成は図１と同じなので省略する。但し、ヘッダ符号化部１１４、統合部１２１の動作が実施形態１と異なる。本実施形態での画像の符号化動作を以下に説明する。符号化動作については図２７から図２９に示したフローチャートに基づき説明する。このとき、符号化動作の全体を表すフローチャートについては図５と同じであり、ステップＳ５０７のブロック符号化動作が異なる。また、ブロック符号化処理を表すフローチャートについては図６と同じであり、ステップＳ６２１、ステップＳ６２２、ステップＳ６２３の動作が異なる。
【０１４６】
図２７は図６におけるステップＳ６２１の本実施形態でのインター予測符号化処理を表すフローチャートである。同図においては図７のフローチャートと同じ機能を果たすステップについては同じ番号を付し、説明を省略する。ステップＳ２７０１にて、ヘッダ符号化部１１４はブロック符号化インデックスの値としてＭＯＤＥ＿ＩＮＴＥＲを設定する。以下、実施形態１と同様に、動きベクトル符号化部１１１は、ステップＳ７０２にて動きベクトルの候補リストを生成し、ステップＳ７０３にてマージモードで符号化できるか否かを判定する。マージモードでの符号化をする場合、ステップＳ７０４に進み、そうでない場合はステップＳ７１５に進む。
【０１４７】
ステップＳ７０３で動きベクトルのマージモードでの符号化をすると判定された場合について説明する。ステップＳ７０４にて、変換・量子化部１１５はインター予測誤差ブロックデータの量子化係数を算出する。ステップＳ７０５にて、ヘッダ符号化部１１４はスキップ符号化をするか否かの判定を行う。スキップ符号化をすると判定した場合は、ステップＳ７０６に進み、そうでなければステップＳ７０９に進む。ステップＳ７０５において、スキップ符号化をすると判定した場合は、ステップＳ７０６からステップＳ７０８にて、実施形態１と同じ動作を行うため、説明を省略する。ステップＳ７０５において、スキップ符号化をしないと判定した場合、ステップＳ７０９にて、ヘッダ符号化部１１４はスキップフラグの値として０を設定し、これをｃｕ＿ｓｋｉｐ＿ｆｌａｇ符号として符号化する。ステップＳ２７０２にて、ヘッダ符号化部１１４は、ステップＳ２７０１で設定されたブロック符号化インデックスの値をｐｒｅｄ＿ｍｏｄｅ＿ｉｄｘ符号として符号化する。符号化方式は特に限定されず、他の符号と同様に、ハフマン符号化や算術符号化によって符号化される。以下、ステップＳ７１２、ステップＳ７１３は実施形態１と同じ動作を行うため、説明を省略する。
【０１４８】
ステップＳ７０３で動きベクトルのマージモードでの符号化をしないと判定された場合について説明する。実施形態１と同様に、ステップＳ７１５にて、ヘッダ符号化部１１４はスキップフラグの値として０を設定し、これをｃｕ＿ｓｋｉｐ＿ｆｌａｇ符号として符号化する。ステップＳ２７０３にて、ヘッダ符号化部１１４は、ステップＳ２７０１で設定されたブロック符号化インデックスの値をｐｒｅｄ＿ｍｏｄｅ＿ｉｄｘ符号として符号化する。以下、ステップＳ７１９、ステップＳ７２０は実施形態１と同じ動作を行うため、説明を省略する。
【０１４９】
図２８は図６におけるステップＳ６２２の本実施形態でのイントラ予測符号化処理を表すフローチャートである。同図においては図８のフローチャートと同じ機能を果たすステップについては同じ番号を付し、説明を省略する。ステップＳ２８０１にて、ヘッダ符号化部１１４はブロック符号化インデックスの値としてＭＯＤＥ＿ＩＮＴＲＡを設定する。ステップＳ２８０２にて、ヘッダ符号化部１１４は、ステップＳ２８０１で設定されたブロック符号化インデックスの値をｐｒｅｄ＿ｍｏｄｅ＿ｉｄｘ符号として符号化する。符号化方式は特に限定されず、他の符号と同様に、ハフマン符号化や算術符号化によって符号化される。以下、ステップＳ８０８、ステップＳ８０９は実施形態１と同じ動作を行うため、説明を省略する。
【０１５０】
図２９は図６におけるステップＳ６２３の本実施形態でのイントラブロックコピー符号化処理を表すフローチャートである。同図においては実施形態１の図９のフローチャートと同じ機能を果たすステップについては同じ番号を付し、説明を省略する。ステップＳ２９０１にて、ヘッダ符号化部１１４はブロック符号化インデックスの値としてＭＯＤＥ＿ＩＮＴＲＡ＿ＢＣを設定する。以下、実施形態１と同様に、ステップＳ９０２にて、コピーベクトル符号化部１０９は、ステップＳ９０２にてコピーベクトルの候補リストを生成する。ステップＳ９０３にて、ヘッダ符号化部１１４はスライスタイプを判定する。ステップＳ９０４にて、ヘッダ符号化部１１４はスキップ符号化を行うか否かを示すスキップフラグの値を０に設定し、それを表すｃｕ＿ｓｋｉｐ＿ｆｌａｇ符号を符号化する。ステップＳ２９０３にて、ステップＳ２９０１で設定されたブロック符号化インデックスの値をｐｒｅｄ＿ｍｏｄｅ＿ｉｄｘ符号として符号化する。以下、ステップＳ９０８からステップＳ９１１は実施形態１と同じ動作を行うため、説明を省略する。
【０１５１】
上記の構成と動作によって生成されたビットストリームの内、ブロックの符号化に関するシンタックスの例を図２５、図２６に示す。図２５はブロックの符号化のシンタックスを表したものである。図２のブロックの符号化のシンタックスで使用されていたｉｎｔｒａ＿ｂｃ＿ｆｌａｇ符号とｐｒｅｄ＿ｍｏｄｅ＿ｆｌａｇ符号の代わりに、図２５においてはｐｒｅｄ＿ｍｏｄｅ＿ｉｄｘ符号が符号化される。以下、ｉｎｔｒａ＿ｂｃ＿ｆｌａｇ符号とｐｒｅｄ＿ｍｏｄｅ＿ｆｌａｇ符号の値の参照ではなく、ｐｒｅｄ＿ｍｏｄｅ＿ｉｄｘ符号の値がＣｕＰｒｅｄＭｏｄｅ［ｘ０］［ｙ０］に設定される。設定された値であるＭＯＤＥ＿ＩＮＴＲＡ、ＭＯＤＥ＿ＩＮＴＲＡ＿ＢＣ，ＭＯＤＥ＿ＩＮＴＥＲによって以下の判定が行われる。図２６は予測を行うブロックでのシンタックスを表したものである。図２の１２行目の、
ｉｆ（ＣｕＰｒｅｄＭｏｄｅ［ｘ０］［ｙ０］！＝ＭＯＤＥ＿ＩＮＴＲＡ｜｜ｉｎｔｒａ＿ｂｃ＿ｆｌａｇ［ｘ０］［ｙ０］
｜｜ｌｏｇ２ＣｂＳｉｚｅ＝＝ＭｉｎＣｂＬｏｇ２ＳｉｚｅＹ）
は図２５と同様に図２のｉｎｔｒａ＿ｂｃ＿ｆｌａｇ符号の参照ではなく、ＭＯＤＥ＿ＩＮＴＲＡ、ＭＯＤＥ＿ＩＮＴＲＡ＿ＢＣ，ＭＯＤＥ＿ＩＮＴＥＲが設定されたＣｕＰｒｅｄＭｏｄｅ［ｘ０］［ｙ０］によって判定が行われる。このため、
ｉｆ（ＣｕＰｒｅｄＭｏｄｅ［ｘ０］［ｙ０］＝＝ＭＯＤＥ＿ＩＮＴＥＲ｜｜
ＣｕＰｒｅｄＭｏｄｅ［ｘ０］［ｙ０］＝＝ＭＯＤＥ＿ＩＮＴＲＡ＿ＢＣ｜｜
ｌｏｇ２ＣｂＳｉｚｅ＝＝ＭｉｎＣｂＬｏｇ２ＳｉｚｅＹ）
となる。
【０１５２】
以上、説明した装置構成と方法で、ｉｎｔｒａ＿ｂｃ＿ｆｌａｇ符号とｐｒｅｄ＿ｍｏｄｅ＿ｆｌａｇ符号の代わりにｐｒｅｄ＿ｍｏｄｅ＿ｉｄｘ符号を用いることで、各ブロックでの処理の簡略化が可能になった。例えば、実施形態１の図７と本実施形態の図２７を比較すればステップＳ７０１、ステップＳ７１２、ステップＳ７１８がステップＳ２７０１、ステップＳ２７０２、ステップＳ２７０３に置き換えられている。また、ステップＳ７１０、ステップＳ７１１、ステップＳ７１６、ステップＳ７１７が省略されている。
【０１５３】
なお、ｐｒｅｄ＿ｍｏｄｅ＿ｉｄｘ符号の符号化においては、周囲のブロックのブロック符号化インデックスの値から予測を行って符号化しても構わない。例えば、ＭＯＤＥ＿ＩＮＴＲＡは１を、ＭＯＤＥ＿ＩＮＴＲＡ＿ＢＣは２を、ＭＯＤＥ＿ＩＮＴＥＲは３とし、例えば、直前に符号化されたブロックのブロック符号化インデックスと同じであれば値を０とする。これに最も短い符号を割り当て符号化することで符号化効率の改善を図っても構わない。
【０１５４】
また、実施形態５、６のブロックの符号化のシンタックスのように、ｐｒｅｄ＿ｍｏｄｅ＿ｉｄｘ符号を先頭に持ってきても構わない。すなわち、図１９の３、４行目の
【０１５５】
【表４】
0006482191.tif 000005
を
【０１５６】
【表５】
0006482191.tif 000006
に置き換え、図１９の１１、１２行目の
【０１５７】
【表６】
0006482191.tif 000007
を省略しても良い。
【０１５８】
（実施形態８）
本発明の第８の実施形態を、図３０を使って説明する。本実施形態では実施形態７で生成されたビットストリームを復号する場合を例にとって説明する。
【０１５９】
本実施形態において、画像復号装置の構成は図１１と同じなので省略する。但し、分離部１１０３、ヘッダ復号部１１０４の動作が実施形態２と異なる。本実施形態での画像の復号動作を以下に説明する。復号動作の全体を表すフローチャートについては実施形態１の図１２とのステップＳ１２０３のブロック復号動作が異なることを除いては同じであるためその説明を省略する。
【０１６０】
図３０は実施形態８におけるブロックの復号動作を表すフローチャートである。同図においては図１３のフローチャートと同じ機能を果たすステップについては同じ番号を付し、説明を省略する。ステップＳ１３０１からステップＳ１３０３にて、実施形態２と同様に、ヘッダ復号部１１０４は、スライスタイプに応じてスキップフラグの値を決定する。ステップＳ１３０４にて、ヘッダ復号部１１０４はスキップフラグの値を判定し、値が１であればスキップ符号化されていると判断しステップＳ１３２６に進み、そうでなければステップＳ３００１に進む。ステップＳ１３０４において、スキップフラグが１であった場合、実施形態１と同様に、ヘッダ復号部１１０４、動きベクトル復号部１１０７、インター予測部１１１０はステップＳ１３２６、ステップＳ１３２７の処理を行う。その後、復号対象ブロックの復号処理を終了する。ステップｓ１３０４において、スキップフラグが１ではない場合、ステップＳ３００１にて、ヘッダ復号部１１０４はｐｒｅｄ＿ｍｏｄｅ＿ｉｄｘ符号を復号し、ブロック符号化インデックスの値を再生する。ステップＳ３００２にて、ヘッダ復号部１１０４はブロック符号化インデックスの値を判定する。
【０１６１】
ステップＳ３００２において、ブロック符号化インデックスの値がＭＯＤＥ＿ＩＮＴＲＡ＿ＢＣであった場合、ステップＳ１３１３に進む。以下、実施形態２と同様に、コピーベクトル復号部１１０５はステップＳ１３１３からステップＳ１３１６にてコピーベクトルを復号する。ステップＳ１３１７でイントラブロックコピー予測ブロックデータを再生し、ステップＳ１３２５にて、再生画像の画像データを生成して、復号対象ブロックの復号処理を終了する。ステップＳ３００２において、ブロック符号化インデックスの値がＭＯＤＥ＿ＩＮＴＲＡであった場合、ステップＳ１３１８に進む。以下、実施形態１と同様に、イントラ予測部１１１１はステップＳ１３１８にてイントラ予測モードを復号し、ステップＳ１３１９にてイントラ予測ブロックデータを再生し、ステップＳ１３２５にて、再生画像を生成して、復号対象ブロックの復号処理を終了する。ステップＳ３００２において、ブロック符号化インデックスの値がＭＯＤＥ＿ＩＮＴＥＲであった場合、ステップＳ１３２０に進む。以下、実施形態２と同様に、動きベクトル復号部１１０７はステップＳ１３２１からステップＳ１３２３にて動きベクトルを復号する。ステップＳ１３２４でインター予測ブロックデータが再生され、ステップＳ１３２５にて、再生画像が生成されて、復号対象ブロックの復号処理が終了する。
【０１６２】
分離部１１０３におけるブロック符号データの入力に関して、図２５、２６のシンタックスを用いて説明する。図２５において、ｃｏｄｉｎｇ＿ｕｎｉｔ（）はブロックのシンタックスを表す。スライスタイプがＩ＿ｓｌｉｃｅではない場合、分離部１１０３はｃｕ＿ｓｋｉｐ＿ｆｌａｇ符号を入力し、ヘッダ復号部１１０４に出力する。スキップ符号化ではない場合、分離部１１０３はｐｒｅｄ＿ｍｏｄｅ＿ｉｄｘ符号を入力し、ヘッダ復号部１１０４に出力する。以下、ブロック符号化インデックスの値に従って順次、符号を入力し、ヘッダ復号部１１０４、コピーベクトル復号部１１０５、動きベクトル復号部１１０７にそれぞれ出力する。
【０１６３】
また、図２６において、ｐｒｅｄｉｃｔｉｏｎ＿ｕｎｉｔ（）は予測を行うブロックでのシンタックスを表す。図２のｃｕ＿ｓｋｉｐ＿ｆｌａｇ符号の値が１であれば、ｍｅｒｇｅ＿ｉｄｘ符号を入力し、スライスタイプに応じてコピーベクトル復号部１１０５か動きベクトル復号部１１０７に出力される。また、ｃｕ＿ｓｋｉｐ＿ｆｌａｇ符号の値が１でなければ、ｍｅｒｇｅ＿ｆｌａｇ符号が入力され、ブロック符号化インデックスの値に応じて、コピーベクトル復号部１１０５か動きベクトル復号部１１０７に出力される。ｍｅｒｇｅ＿ｉｄｘ符号があれば、これもブロック符号化インデックスの値に応じて、コピーベクトル復号部１１０５か動きベクトル復号部１１０７に出力される。ｍｅｒｇｅ＿ｆｌａｇ符号の値が０であれば、Ｂ＿ｓｌｉｃｅではｉｎｔｅｒ＿ｐｒｅｄ＿ｉｄｃ符号が入力され、動きベクトル復号部１１０７に出力される。また、ブロック符号化インデックスの値がＭＯＤＥ＿ＩＮＴＲＡ＿ＢＣであれば、コピーベクトルに関連する符号データがコピーベクトル復号部１１０５に入力される。以下、必要に応じて動きベクトルに関連する符号データが動きベクトル復号部１１０７に入力される。
【０１６４】
また、実施形態５、６のブロックの符号化のシンタックスのように、ｐｒｅｄ＿ｍｏｄｅ＿ｉｄｘ符号がブロックの符号データの先頭にあっても構わない。実施形態６と同様にて、最初にｐｒｅｄ＿ｍｏｄｅ＿ｉｄｘ符号を復号することで、最初にｉｎｔｒａ＿ｂｃ＿ｆｌａｇ符号とｐｒｅｄ＿ｍｏｄｅ＿ｆｌａｇ符号を復号するのと変わらないためである。
【０１６５】
以上、説明した装置構成と方法で、ｉｎｔｒａ＿ｂｃ＿ｆｌａｇ符号とｐｒｅｄ＿ｍｏｄｅ＿ｆｌａｇ符号の代わりにｐｒｅｄ＿ｍｏｄｅ＿ｉｄｘ符号を用いることで、各ブロックでの処理の簡略化が可能になった。例えば、実施形態２の図１３と本実施形態の図３０を比較すればステップＳ１３０９、ステップＳ１３１１がステップＳ３００１、ステップＳ３００２に置き換えられている。また、ステップＳ１３０５からステップＳ１３０８、ステップＳ１３０７、ステップＳ１３１０、ステップＳ１３１２が省略されている。
【０１６６】
さらに、本実施形態においては、各機能をハードウェアで実現する例をとって説明したが、これに限定されず、その一部または全部をＣＰＵなどの演算処理装置を用いてソフトウェアで動作を実現しても構わない。
【０１６７】
さらに、各符号データの生成に用いた符号化方式は特に限定されない。例えば、算術符号化方式やハフマン符号化方式を用いて復号することができる。
【０１６８】
（実施形態９）
図１、図１１に示した各処理部はハードウェアでもって構成しているものとして上記実施形態では説明した。しかし、これらの図に示した各処理部で行う処理をコンピュータプログラムでもって構成しても良い。
【０１６９】
図３１は、上記各実施形態に係る画像表示装置に適用可能なコンピュータのハードウェアの構成例を示すブロック図である。
【０１７０】
ＣＰＵ３１０１は、ＲＡＭ３１０２やＲＯＭ３１０３に格納されているコンピュータプログラムやデータを用いてコンピュータ全体の制御を行うと共に、上記各実施形態に係る画像符号化装置または画像復号装置が行うものとして上述した各処理を実行する。即ち、ＣＰＵ３１０１は、図１、図１１に示した各処理部として機能することになる。
【０１７１】
ＲＡＭ３１０２は、外部記憶装置３１０６からロードされたコンピュータプログラムやデータ、Ｉ／Ｆ（インターフェース）３１０７を介して外部から取得したデータなどを一時的に記憶するためのエリアを有する。更に、ＲＡＭ３１０２は、ＣＰＵ３１０１が各種の処理を実行する際に用いるワークエリアを有する。即ち、ＲＡＭ３１０２は、例えば、ピクチャメモリとして割り当てたり、その他の各種のエリアを適宜、提供したりすることができる。
【０１７２】
ＲＯＭ３１０３には、本コンピュータの設定データや、ブートプログラムなどが格納されている。操作部３１０４は、キーボードやマウスなどにより構成されており、本コンピュータのユーザが操作することで、各種の指示をＣＰＵ３１０１に対して入力することができる。表示部３１０５は、ＣＰＵ３１０１による復号の結果を表示する。また表示部３１０５は例えば液晶ディスプレイで構成される。
【０１７３】
外部記憶装置３１０６は、ハードディスクドライブ装置に代表される、大容量情報記憶装置である。外部記憶装置３１０６には、ＯＳ（オペレーティングシステム）や、図１、図１１に示した各部の機能をＣＰＵ３１０１に実現させるためのコンピュータプログラムが保存されている。更には、外部記憶装置３１０６には、処理対象としての各画像データが保存されていても良い。
【０１７４】
外部記憶装置３１０６に保存されているコンピュータプログラムやデータは、ＣＰＵ３１０１による制御に従って適宜、ＲＡＭ３１０２にロードされ、ＣＰＵ３１０１による処理対象となる。Ｉ／Ｆ３１０７には、ＬＡＮやインターネット等のネットワーク、投影装置や表示装置などの他の機器を接続することができ、本コンピュータはこのＩ／Ｆ３１０７を介して様々な情報を取得したり、送出したりすることができる。３１０８は上述の各部を繋ぐバスである。
【０１７５】
上述の構成からなる作動は前述のフローチャートで説明した作動をＣＰＵ３１０１が中心となってその制御を行う。
【０１７６】
（その他の実施形態）
本発明の目的は、前述した機能を実現するコンピュータプログラムのコードを記録した記憶媒体を、システムに供給し、そのシステムがコンピュータプログラムのコードを読み出し実行することによっても達成される。この場合、記憶媒体から読み出されたコンピュータプログラムのコード自体が前述した実施形態の機能を実現し、そのコンピュータプログラムのコードを記憶した記憶媒体は本発明を構成する。また、そのプログラムのコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム（ＯＳ）などが実際の処理の一部または全部を行い、その処理によって前述した機能が実現される場合も含まれる。
【０１７７】
さらに、以下の形態で実現しても構わない。すなわち、記憶媒体から読み出されたコンピュータプログラムコードを、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込む。そして、そのコンピュータプログラムのコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行って、前述した機能が実現される場合も含まれる。
【０１７８】
本発明を上記記憶媒体に適用する場合、その記憶媒体には、先に説明したフローチャートに対応するコンピュータプログラムのコードが格納されることになる。
【産業上の利用可能性】
【０１７９】
本発明は、例えば、スクリーンコンテントなどの自然画像ではない人工的に生成された動画像の符号化を行う機器やそれを復号する機器などに適用することができる。
【符号の説明】
【０１８０】
１０１、１１０１  入力部
１０２  スライス設定部
１０３  イントラブロックコピー可否設定部
１０４、１１９、１１１６  ピクチャメモリ
１０５  ブロック分割部
１０６、１１０９  イントラブロックコピー予測部
１０７、１１１０  インター予測部
１０８、１１１１  イントラ予測部
１０９  コピーベクトル符号化部
１１０、１１０６  コピーベクトルメモリ
１１１  動きベクトル符号化部
１１２、１１０８  動きベクトルメモリ
１１３  予測モード決定部
１１４  ヘッダ符号化部
１１５  変換・量子化部
１１６、１１１３  逆量子化・逆変換部
１１７、１１１４  再構成部
１１８、１１１５  カレントピクチャメモリ
１２０  符号化部
１２１  統合部
１２２  出力部
１１０２  符号バッファ
１１０３  分離部
１１０４  ヘッダ復号部
１１０５  コピーベクトル復号部
１１０７  動きベクトル復号部
１１１２  復号部
【図１】
0006482191.tif 000008
【図２】
0006482191.tif 000009
【図３】
0006482191.tif 000010
【図４】
0006482191.tif 000011
【図５】
0006482191.tif 000012
【図６】
0006482191.tif 000013
【図７】
0006482191.tif 000014
【図８】
0006482191.tif 000015
【図９】
0006482191.tif 000016
【図１０】
0006482191.tif 000017
【図１１】
0006482191.tif 000018
【図１２】
0006482191.tif 000019
【図１３】
0006482191.tif 000020
【図１４】
0006482191.tif 000021
【図１５】
0006482191.tif 000022
【図１６】
0006482191.tif 000023
【図１７】
0006482191.tif 000024
【図１８】
0006482191.tif 000025
【図１９】
0006482191.tif 000026
【図２０】
0006482191.tif 000027
【図２１】
0006482191.tif 000028
【図２２】
0006482191.tif 000029
【図２３】
0006482191.tif 000030
【図２４】
0006482191.tif 000031
【図２５】
0006482191.tif 000032
【図２６】
0006482191.tif 000033
【図２７】
0006482191.tif 000034
【図２８】
0006482191.tif 000035
【図２９】
0006482191.tif 000036
【図３０】
0006482191.tif 000037
【図３１】
0006482191.tif 000038
【図３２】
0006482191.tif 000039
【図３３】
0006482191.tif 000040
【図３４】
0006482191.tif 000041