(57)【要約】  動きベクトル本数制限設定部３５は、マクロブロックの大きさに応じて動きベクトル本数の上限値を設定する。動き予測・補償部３２は、動きベクトル本数が上限値を超えていない最適予測モードを検出して、検出した最適予測モードの動きベクトルを用いて参照画像の動き補償を行い予測画像を生成する。マクロブロックの大きさに応じて動きベクトル本数の上限値を設定することで、拡張されたマクロブロックを用いた場合に、動きベクトル本数が必要以上に制限されてしまうことがなく、画質の劣化等を防止できる。
2012017858.tif 000002
【特許請求の範囲】
【請求項１】
画像データを符号化処理する際の符号化処理単位であるブロックのブロックサイズに応じて、動きベクトルの数の上限値を設定する設定部と、
前記ブロックの動きベクトルの数が前記設定部により設定された上限値以下の状態で予測モードを検出し、該検出した予測モードの動きベクトルを用いて参照画像の動き補償を行って、予測画像を生成する動き予測・補償部と、
前記動き予測・補償部により生成された予測画像を用いて、前記画像データを符号化して符号化ストリームを生成する符号化部と
を備える画像処理装置。
【請求項２】
前記設定部は、前記ブロックのブロックサイズが所定サイズよりも大きいサイズである場合、前記上限値を前記所定サイズのブロックにおける上限値よりも大きく設定する
請求項１記載の画像処理装置。
【請求項３】
前記設定部は、所定サイズ（Ｎ）のブロックに対する動きベクトル数の上限値がｐであり、前記所定サイズよりも大きなブロックサイズが（Ｎ×ｍ）×（Ｎ×ｎ）画素である場合、前記上限値を（ｐ×ｍ×ｎ）に設定する
請求項２記載の画像処理装置。
【請求項４】
前記所定サイズは、１６×１６画素である
請求項３に記載の画像処理装置。
【請求項５】
前記所定サイズよりも大きいサイズのブロックは、階層構造を有する符号化単位において最大サイズを有する最大符号化単位である
請求項２に記載の画像処理装置。
【請求項６】
前記動き予測・補償部は、前記予測モードを検出する際、動きベクトルの数が前記上限値を超える予測モードを、検出対象となる予測モードの候補から除外する
請求項２記載の画像処理装置。
【請求項７】
前記動き予測・補償部は、前記動きベクトルの数が前記上限値を超えないための制御回数をフレーム毎に監視して、該制御回数が予め設定された所定回数を超えた場合、次のフレームにおけるブロックのブロックサイズを大きく設定する
請求項２記載の画像処理装置。
【請求項８】
前記画像データにおけるシーンチェンジを検出するシーンチェンジ検出部を有し、
前記動き予測・補償部は、前記シーンチェンジ検出部でシーンチェンジが検出された場合、ブロックのブロックサイズを予め設定した所定のサイズに設定する
請求項７記載の画像処理装置。
【請求項９】
前記符号化部は、前記動きベクトルの数にかかわらず最適予測モードを検出して、該検出した最適予測モードの動きベクトルを用いて参照画像の動き補償を行い予測画像を生成する動作モードにおいて、予測モードにおける動きベクトルの数が前記上限値を超える場合は、前記符号化ストリームと、前記動きベクトルの数が上限値を超えていることを示す判別情報とを伝送する
請求項１記載の画像処理装置。
【請求項１０】
前記設定部により上限値が設定されるブロックのブロックサイズを識別するサイズ識別情報を生成する生成部を更に備え、
前記符号化部は、前記符号化ストリームと前記サイズ識別情報とを伝送する
請求項１に記載の画像処理装置。
【請求項１１】
画像データを符号化処理する際の符号化処理単位であるブロックのブロックサイズに応じて、動きベクトルの数の上限値を設定する工程と、
前記設定された上限値以下の状態で予測モードを検出し、該検出した予測モードの動きベクトルを用いて参照画像の動き補償を行って、予測画像を生成する工程と、
前記生成された予測画像を用いて、前記画像データを符号化して符号化ストリームを生成する工程と
を含む画像処理方法。
【請求項１２】
画像データを符号化した符号化ストリームを復号化処理する際の復号化処理単位であるブロックのブロックサイズに応じて、動きベクトルの数の上限値を設定する設定部と、
前記ブロックの動きベクトルの数が前記設定部により設定された上限値以下の状態で予測モードを検出し、該検出した予測モードの動きベクトルを用いて参照画像の動き補償を行って、予測画像を生成する動き補償部と、
前記動き補償部により生成された予測画像を用いて、前記符号化ストリームを復号化する復号化部と
を備える画像処理装置。
【請求項１３】
前記設定部は、前記ブロックのブロックサイズが所定サイズよりも大きいサイズである場合、前記上限値を前記所定サイズのブロックにおける上限値よりも大きく設定する
請求項１２記載の画像処理装置。
【請求項１４】
前記設定部は、所定サイズ（Ｎ）のブロックに対する動きベクトル数の上限値がｐであり、前記所定サイズよりも大きなブロックサイズが（Ｎ×ｍ）×（Ｎ×ｎ）画素である場合、前記上限値を（ｐ×ｍ×ｎ）に設定する
請求項１３記載の画像処理装置。
【請求項１５】
前記所定サイズは、１６×１６画素である
請求項１４に記載の画像処理装置。
【請求項１６】
前記所定サイズよりも大きいサイズのブロックは、階層構造を有する符号化単位において最大サイズを有する最大符号化単位である
請求項１３に記載の画像処理装置。
【請求項１７】
前記動き補償部は、前記予測モードを検出する際、動きベクトルの数が前記上限値を超える予測モードを、検出対象となる予測モードの候補から除外する
請求項１３記載の画像処理装置。
【請求項１８】
前記動き補償部は、前記動きベクトルの数が前記上限値を超えないための制御回数をフレーム毎に監視して、該制御回数が予め設定された所定回数を超えた場合、次のフレームにおけるブロックのブロックサイズを大きく設定する
請求項１３記載の画像処理装置。
【請求項１９】
前記画像データにおけるシーンチェンジを検出するシーンチェンジ検出部を有し、
前記動き補償部は、前記シーンチェンジ検出部でシーンチェンジが検出された場合、ブロックのブロックサイズを予め設定した所定のサイズに設定する
請求項１８記載の画像処理装置。
【請求項２０】
前記復号部は、前記動きベクトルの数にかかわらず最適予測モードを検出して、該検出した最適予測モードの動きベクトルを用いて参照画像の動き補償を行い予測画像を生成する動作モードにおいて、前駆符号化ストリームから前記動きベクトルの数が上限値を超えていることを示す判別情報を取得する
請求項１２記載の画像処理装置。
【請求項２１】
前記復号化部は、上限値が設定されるブロックのブロックサイズを識別するサイズ識別情報を前記符号化ストリームから取得する
請求項１２に記載の画像処理装置。
【請求項２２】
画像データを符号化した符号化ストリームを復号化処理する際の復号化処理単位であるブロックのブロックサイズに応じて、動きベクトルの数の上限値を設定する工程と、
前記ブロックの動きベクトルの数が前記設定部により設定された上限値以下の状態で予測モードを検出し、該検出した予測モードの動きベクトルを用いて参照画像の動き補償を行って、予測画像を生成する工程と、
前記生成された予測画像を用いて、前記符号化ストリームを復号化する工程と
を含む画像処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この技術は、画像処理装置と画像処理方法に関する。詳しくは、拡張されたマクロブロックに対応した画像処理を行うことができる画像処理装置と画像処理方法を提供する。
【背景技術】
【０００２】
近年、画像情報をディジタルとして取り扱い、その際、効率の高い情報の伝送、蓄積を行う装置、例えば離散コサイン変換等の直交変換と動き補償により圧縮するＭＰＥＧ等の方式に準拠した装置が、放送局や一般家庭において普及しつつある。【０００３】
特に、ＭＰＥＧ２（ＩＳＯ／ＩＥＣ１３８１８−２）は、汎用画像符号化方式として定義されており、プロフェッショナル用途およびコンシューマー用途の広範なアプリケーションに現在広く用いられている。【０００４】
また、テレビ会議用等の画像符号化を目的として、Ｈ.２６Ｌ（ＩＴＵ−Ｔ  Ｑ６／１６  ＶＣＥＧ）という標準の規格化が進んでいる。Ｈ．２６ＬはＭＰＥＧ２やＭＰＥＧ４といった従来の符号化方式に比べ、その符号化、復号化により多くの演算量が要求されるものの、より高い符号化効率が実現されることが知られている。また、現在、ＭＰＥＧ４の活動の一環として、このＨ．２６Ｌをベースに、より高い符号化効率を実現する標準化がJoint Model of Enhanced-Compression Video Codingとして行われており、Ｈ．２６４およびＭＰＥＧ−４  Ｐａｒｔ１０  （以下「Ｈ．２６４／ＡＶＣ（Advanced Video Coding)」と記す）という名の下に国際標準となった。【０００５】
さらに、昨今、４０００×２０００画素程度の画像を圧縮したい、またはインターネットのような限られた伝送容量の環境において、ハイビジョン画像を配信したいといった、さらに高圧縮率符号化に対するニーズが高まっている。このため、非特許文献１のように、マクロブロックの大きさを、ＭＰＥＧ２やＨ．２６４／ＡＶＣよりも大きい例えば３２画素×３２画素といった大きさに拡張することが提案されている。すなわち、非特許文献１では、マクロブロックについて階層構造を採用することにより、１６×１６画素ブロック以下に関しては、Ｈ．２６４／ＡＶＣにおけるマクロブロックと互換性を保ち、そのスーパーセットとして、より大きなブロックが定義されている。
【先行技術文献】
【非特許文献】
【０００６】
【非特許文献１】“Video Coding Using Extended Block Sizes”(Study Group16, Contribution 123, ITU, 2009年1月)
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ところで、Ｈ．２６４／ＡＶＣ方式では、１６×１６画素により構成されるマクロブロックは、１６×１６、１６×８、８×１６若しくは８×８のいずれかのパーティションに分割して、それぞれ独立した動きベクトル情報を持つことができる。さらに、８×８パーティションは、８×８、８×４、４×８、４×４のいずれかのサブパーティションに分割して、それぞれ独立した動きベクトル情報を持つことができる。このような動き予測・補償処理が行われて、マクロブロック内のパーティションの数が増えると動きベクトル情報は、情報量が膨大となり動きベクトル情報をこのまま符号化することは、符号化効率の低下を招く。したがって、Ｈ．２６４／ＡＶＣ方式では、連続する２つのマクロブロックにおける動きベクトルの数の合計が、定められた上限値を超えないように動き補償ブロックのブロックサイズを設定することが行われている。このため、マクロブロックの大きさを拡張した場合にＨ．２６４／ＡＶＣ方式で定められた上限値を用いると、動きベクトルの数の制限によりブロックサイズを小さくすることができなくなって、画質の劣化等を招いてしまうおそれがある。【０００８】
そこで、本技術では、拡張されたマクロブロックに対応した画像処理を行うことができる画像処理装置と画像処理方法を提供することを目的とする。
【課題を解決するための手段】
【０００９】
この技術の第１の側面は、像データを符号化処理する際の符号化処理単位であるブロックのブロックサイズに応じて、動きベクトルの数の上限値を設定する設定部と、前記ブロックの動きベクトルの数が前記設定部により設定された上限値以下の状態で予測モードを検出し、該検出した予測モードの動きベクトルを用いて参照画像の動き補償を行って、予測画像を生成する動き予測・補償部と、前記動き予測・補償部により生成された予測画像を用いて、前記画像データを符号化して符号化ストリームを生成する符号化部とを備える画像処理装置にある。【００１０】
本技術において、動きベクトル本数制限設定部では、マクロブロックの大きさに応じて動きベクトルの数の上限値が設定される。マクロブロックが所定サイズ例えば１６×１６画素よりも拡張されたサイズである場合、上限値は１６×１６画素のマクロブロックにおける上限値よりも大きい値に設定される。ここで、１６×１６画素マクロブロックに対する動きベクトルの数の上限値をｐ本としたとき、拡張されたマクロブロックの大きさが（１６×ｍ）×（１６×ｎ）画素である場合、上限値は（ｐ×ｍ×ｎ）本に設定される。動き予測・補償部では、動きベクトルの数が上限値を超える予測モードを最適予測モードの候補から除外して最適予測モードの検出を行い、検出した最適予測モードの動きベクトルを用いて参照画像の動き補償を行い、予測画像が生成される。また、動き予測・補償部では、動きベクトルの数が上限値を超えないための制御回数をフレーム毎に監視して、制御回数が予め設定された所定回数を超えた場合、次のフレームにおけるマクロブロックを大きくして、シーンチェンジ検出部でシーンチェンジが検出された場合には、マクロブロックを予め設定した所定の大きさとする。さらに、動き予測・補償部では、動きベクトルの数にかかわらず最適予測モードを検出して、該検出した最適予測モードの動きベクトルを用いて参照画像の動き補償を行い予測画像を生成する動作モードが設けられている場合、この動作モードにおいて、最適予測モードにおける動きベクトルの数が上限値を超える場合、予測画像を用いて生成された画像圧縮情報に、動きベクトルの数が上限値を超えていることを示す判別情報が含まれるようにする。また、所定サイズよりも大きいサイズのブロックは、解像構造を有する符号化単位において例えば最大サイズを有する最大符号化単位とする。【００１１】
この技術の第２の側面は、画像データを符号化処理する際の符号化処理単位であるブロックのブロックサイズに応じて、動きベクトルの数の上限値を設定する工程と、前記設定された上限値以下の状態で予測モードを検出し、該検出した予測モードの動きベクトルを用いて参照画像の動き補償を行って、予測画像を生成する工程と、前記生成された予測画像を用いて、前記画像データを符号化して符号化ストリームを生成する工程とを含む画像処理方法にある。【００１２】
この技術の第３の側面は、画像データを符号化した符号化ストリームを復号化処理する際の復号化処理単位であるブロックのブロックサイズに応じて、動きベクトルの数の上限値を設定する設定部と、前記ブロックの動きベクトルの数が前記設定部により設定された上限値以下の状態で予測モードを検出し、該検出した予測モードの動きベクトルを用いて参照画像の動き補償を行って、予測画像を生成する動き補償部と、前記動き補償部により生成された予測画像を用いて、前記符号化ストリームを復号化する復号化部とを備える画像処理装置にある。【００１３】
本技術において、画像データを符号化した符号化ストリームを復号化処理する際に、動きベクトル本数制限設定部では、マクロブロックの大きさに応じて動きベクトルの数の上限値が設定される。マクロブロックが所定サイズ例えば１６×１６画素のマクロブロックよりも拡張されたサイズである場合、上限値は１６×１６画素のマクロブロックにおける上限値よりも大きい値に設定される。ここで、１６×１６画素マクロブロックに対する動きベクトル数の上限値をｐ本としたとき、拡張されたマクロブロックの大きさが（１６×ｍ）×（１６×ｎ）画素である場合、上限値は（ｐ×ｍ×ｎ）本に設定される。動き補償部では、画像圧縮情報に含まれている動きベクトル情報に基づいて参照画像の動き補償を行い予測画像を生成する場合に、動きベクトルの数が設定された上限値以下の状態で予測モードを検出し、検出した予測モードの動きベクトルを用いて参照画像の動き補償を行い予測画像が生成される。この生成された予測画像を用いて、復号化部で符号化ストリームが復号化される。また、動き補償部では、予測モードを検出する際、動きベクトルの数が上限値を超える予測モードを、検出対象となる予測モードの候補から除外する。さらに、動き補償部では、動きベクトルの数が上限値を超えないための制御回数をフレーム毎に監視して、制御回数が予め設定された所定回数を超えた場合、次のフレームにおけるブロックのブロックサイズを大きく設定する。また画像データにおけるシーンチェンジが検出された場合、ブロックサイズが予め設定した所定のサイズに設定される。また動きベクトルの数にかかわらず最適予測モードを検出して、検出した最適予測モードの動きベクトルを用いて参照画像の動き補償を行い予測画像を生成する動作モードでは、符号化ストリームから動きベクトルの数が上限値を超えていることを示す判別情報を取得する。符号化ストリームから、上限値が設定されるブロックのブロックサイズを識別するサイズ識別情報を取得することも行われる。【００１４】
この技術の第４の側面は、画像データを符号化した符号化ストリームを復号化処理する際の復号化処理単位であるブロックのブロックサイズに応じて、動きベクトルの数の上限値を設定する工程と、前記ブロックの動きベクトルの数が前記設定部により設定された上限値以下の状態で予測モードを検出し、該検出した予測モードの動きベクトルを用いて参照画像の動き補償を行って、予測画像を生成する工程と、前記生成された予測画像を用いて、前記符号化ストリームを復号化する工程とを含む画像処理方法にある。
【発明の効果】
【００１５】
この技術では、マクロブロックの大きさに応じて動きベクトルの数の上限値が設定される。また、動きベクトルの数が上限値を超えていない最適予測モードが検出されて、検出した最適予測モードの動きベクトルを用いて参照画像の動き補償を行い、予測画像が生成される。このため、拡張された大きさのマクロブロックが用いられた場合に、動きベクトルの数が必要以上に制限されてしまうことがなく、拡張されたマクロブロックに対応した画像処理を行うことができる。
【図面の簡単な説明】
【００１６】
【図１】画像符号化装置の構成を示す図である。
【図２】Ｈ．２６４／ＡＶＣ方式におけるマクロブロック示す図である。
【図３】動き補償ブロックと隣接ブロックを示す図である。
【図４】Multi-Reference Frameを説明するための図である。
【図５】時間ダイレクトモードを説明するための図である。
【図６】１／４画素精度の動き予測・補償処理を説明するための図である。
【図７】６タップのＦＩＲフィルタを用いた１／４画素精度の動き予測・補償処理で用いる画素を示す図である。
【図８】動きベクトル本数の上限値を説明するための図である。
【図９】マクロブロックの大きさを拡張した場合の階層構造を示す図である。
【図１０】動き予測・補償部の構成と動きベクトル本数制限設定部を示した図である。
【図１１】画像符号化装置の動作を示すフローチャートである。
【図１２】予測処理を示すフローチャートである。
【図１３】イントラ予測処理を示すフローチャートである。
【図１４】インター予測処理を示すフローチャートである。
【図１５】動きベクトル本数の上限値設定を示すフローチャートである。
【図１６】画像符号化装置の他の構成を示す図である。
【図１７】動き予測・補償部の他の構成と動きベクトル本数制限設定部を示す図である。
【図１８】画像復号化装置の構成を示す図である。
【図１９】動き補償部の構成と動きベクトル本数制限設定部を示す図である。
【図２０】画像復号化装置の動作を示すフローチャートである。
【図２１】予測画像生成処理を示すフローチャートである。
【図２２】インター予測画像生成処理を示すフローチャートである。
【図２３】スライスヘッダを例示した図である。
【図２４】テレビジョン装置の概略構成を例示した図である。
【図２５】携帯電話機の概略構成を例示した図である。
【図２６】記録再生装置の概略構成を例示した図である。
【図２７】撮像装置の概略構成を例示した図である。
【発明を実施するための形態】
【００１７】
以下、実施の形態について説明する。本技術では、マクロブロックの大きさを拡張した場合、Ｈ．２６４／ＡＶＣ方式のようにレベルに応じた設定されている上限値を用いると、動きベクトルの数は、必要以上に制限されて画質の劣化を招いてしまうおそれがある。したがって、拡張されたサイズのマクロブロックを用いる場合、マクロブロックの大きさに応じて上限値を設定することで、動きベクトルの数を必要以上に制限することなくリアルタイム動作をメモリバンド幅の観点から保証する。また、動きベクトルの数が必要以上に制限されて画質が劣化してしまうことを防止する。なお、説明は以下の順序で行う。
１．画像符号化装置の構成
２．画像符号化装置の動作
３．画像符号化装置の他の構成
４．画像符号化装置の他の動作
５．画像復号化装置の構成
６．画像復号化装置の動作
７．ソフトウェア処理の場合
８．電子機器に適用した場合
【００１８】
＜１．画像符号化装置の構成＞
図１は画像符号化を行う画像処理装置である画像符号化装置の構成を示している。画像符号化装置１０は、アナログ／ディジタル変換部（Ａ／Ｄ変換部）１１、画面並び替えバッファ１２、減算部１３、直交変換部１４、量子化部１５、可逆符号化部１６、蓄積バッファ１７、レート制御部１８を備えている。さらに、画像符号化装置１０は、逆量子化部２１、逆直交変換部２２、加算部２３、デブロッキングフィルタ２４、フレームメモリ２５、イントラ予測部３１、動き予測・補償部３２、予測画像・最適モード選択部３３を備えている。
【００１９】
Ａ／Ｄ変換部１１は、アナログの画像信号をディジタルの画像データに変換して画面並べ替えバッファ１２に出力する。
【００２０】
画面並べ替えバッファ１２は、Ａ／Ｄ変換部１１から出力された画像データに対してフレームの並べ替えを行う。画面並べ替えバッファ１２は、符号化処理に係るＧＯＰ（Group of Pictures）構造に応じてフレームの並べ替えを行い、並べ替え後の画像データを減算部１３とイントラ予測部３１と動き予測・補償部３２に出力する。
【００２１】
減算部１３には、画面並べ替えバッファ１２から出力された画像データと、後述する予測画像・最適モード選択部３３で選択された予測画像データが供給される。減算部１３は、画面並べ替えバッファ１２から出力された画像データと予測画像・最適モード選択部３３から供給された予測画像データとの差分である予測誤差データを算出して、直交変換部１４に出力する。
【００２２】
直交変換部１４は、減算部１３から出力された予測誤差データに対して、離散コサイン変換（DCT；Discrete Cosine Transform）、カルーネン・レーベ変換等の直交変換処理を行う。直交変換部１４は、直交変換処理を行うことにより得られた変換係数データを量子化部１５に出力する。
【００２３】
量子化部１５には、直交変換部１４から出力された変換係数データと、後述するレート制御部１８からレート制御信号が供給されている。量子化部１５は変換係数データの量子化を行い、量子化データを可逆符号化部１６と逆量子化部２１に出力する。また、量子化部１５は、レート制御部１８からのレート制御信号に基づき量子化パラメータ（量子化スケール）を切り替えて、量子化データのビットレートを変化させる。
【００２４】
可逆符号化部１６には、量子化部１５から出力された量子化データと、後述するイントラ予測部３１と動き予測・補償部３２および予測画像・最適モード選択部３３から予測モード情報が供給される。なお、予測モード情報には、イントラ予測またはインター予測に応じて、予測モード、マクロブロックの大きさ、マクロブロックタイプ、動きベクトル情報等が含まれる。また、予測モード情報には、後述する判別情報やサイズ識別情報等も含めてもよい。また、可逆符号化部１６は、量子化データに対して例えば可変長符号化または算術符号化等により可逆符号化処理を行い、画像圧縮情報を生成して蓄積バッファ１７に出力する。さらに、可逆符号化部１６は、予測モード情報を可逆符号化して、画像圧縮情報に含める。例えば可逆符号化部１６は、画像圧縮情報である符号化ストリームのヘッダ情報に付加する。
【００２５】
蓄積バッファ１７は、可逆符号化部１６からの画像圧縮情報を蓄積する。また、蓄積バッファ１７は、蓄積した画像圧縮情報を伝送路に応じた伝送速度で出力する。
【００２６】
レート制御部１８は、蓄積バッファ１７の空き容量の監視を行い、空き容量に応じてレート制御信号を生成して量子化部１５に出力する。レート制御部１８は、例えば蓄積バッファ１７から空き容量を示す情報を取得する。レート制御部１８は空き容量が少なくなっている場合、レート制御信号によって量子化データのビットレートを低下させる。また、レート制御部１８は蓄積バッファ１７の空き容量が十分大きい場合、レート制御信号によって量子化データのビットレートを高くする。
【００２７】
逆量子化部２１は、量子化部１５から供給された量子化データの逆量子化処理を行う。逆量子化部２１は、逆量子化処理を行うことで得られた変換係数データを逆直交変換部２２に出力する。
【００２８】
逆直交変換部２２は、逆量子化部２１から供給された変換係数データの逆直交変換処理を行うことで得られたデータを加算部２３に出力する。
【００２９】
加算部２３は、逆直交変換部２２から供給されたデータと予測画像・最適モード選択部３３から供給された予測画像データを加算して復号画像データを生成して、デブロッキングフィルタ２４とフレームメモリ２５に出力する。なお、復号画像データは参照画像の画像データとして用いられる。
【００３０】
デブロッキングフィルタ２４は、画像の符号化時に生じるブロック歪みを減少させるためのフィルタ処理を行う。デブロッキングフィルタ２４は、加算部２３から供給された復号画像データからブロック歪みを除去するフィルタ処理を行い、フィルタ処理後の復号画像データをフレームメモリ２５に出力する。
【００３１】
フレームメモリ２５は、デブロッキングフィルタ２４から供給されたフィルタ処理後の復号画像データを保持する。このフレームメモリ２５に保持された復号画像データは、参照画像データとして動き予測・補償部３２で用いられる。
【００３２】
イントラ予測部３１は、画面並べ替えバッファ１２から出力された符号化対象画像の画像データと加算部２３から供給された復号画像データを用いて、候補となる全てのイントラ予測モードのイントラ予測処理を行う。さらに、イントラ予測部３１は、各イントラ予測モードに対してコスト関数値を算出して、算出したコスト関数値が最小となるイントラ予測モード、すなわち符号化効率が最良となるイントラ予測モードを、最適イントラ予測モードとして選択する。イントラ予測部３１は、最適イントラ予測モードで生成された予測画像データと最適イントラ予測モードに関する予測モード情報、および最適イントラ予測モードでのコスト関数値を予測画像・最適モード選択部３３に出力する。
【００３３】
動き予測・補償部３２は、各動き補償ブロックサイズで動き予測・補償処理を行う。動き予測・補償部３２は、画面並べ替えバッファ１２から読み出された符号化対象画像について予測モード毎すなわち各動き補償ブロックでモード毎に、フレームメモリ２５から読み出された参照画像データを用いて動きベクトルを検出する。さらに、動き予測・補償部３２は、検出した動きベクトルに基づいて復号画像に動き補償処理を施して予測画像データの生成を行う。
【００３４】
また、動き予測・補償部３２は、予測モード毎にコスト関数値を算出する。動き予測・補償部３２は、算出したコスト関数値が最小で、連続する２つのマクロブロックの動きベクトルの合計本数が後述する動きベクトル本数制限設定部３５で設定された上限値を超えていない動き補償ブロックサイズを、最適インター予測モードとして選択する。動き予測・補償部３２は、最適インター予測モードで生成された予測画像データと最適インター予測モードに関する予測モード情報、および最適インター予測モードでのコスト関数値や動きベクトル情報を予測画像・最適モード選択部３３に出力する。なお、動き予測・補償部３２は、インター予測モードとして、スキップドマクロブロックやダイレクトモードでの予測も行う。
【００３５】
予測画像・最適モード選択部３３は、イントラ予測部３１から供給されたコスト関数値と動き予測・補償部３２から供給されたコスト関数値を比較して、コスト関数値が少ない方を、符号化効率が最良となる最適モードとして選択する。また、予測画像・最適モード選択部３３は、最適モードで生成した予測画像データを減算部１３と加算部２３に出力する。さらに、予測画像・最適モード選択部３３は、最適モードの予測モード情報を可逆符号化部１６に出力する。なお、予測画像・最適モード選択部３３は、スライス単位でイントラ予測またはインター予測を行う。
【００３６】
動きベクトル本数制限設定部３５は、Ｈ．２６４／ＡＶＣ方式とは異なり、マクロブロックの大きさに応じて動きベクトルの数の上限値を設定して、動き予測・補償部３２に出力する。ここで、Ｈ．２６４／ＡＶＣ方式における動きベクトルの数の制限について説明しておく。
【００３７】
Ｈ．２６４／ＡＶＣ方式では、図２の（Ａ）に示すように、１６×１６画素により構成されるマクロブロックは、１６×１６、１６×８、８×１６若しくは８×８のいずれかのパーティションに分割して、それぞれ独立した動きベクトル情報を持つことができる。さらに、８×８パーティションは、図２の（Ｂ）に示すように、８×８、８×４、４×８、４×４のいずれかのサブパーティションに分割して、それぞれ独立した動きベクトル情報を持つことができる。このような動き予測・補償処理が行われると、動きベクトル情報は、情報量が膨大となり動きベクトル情報をこのまま符号化することは、符号化効率の低下を招く。したがって、Ｈ．２６４／ＡＶＣ方式では、以下のような手法により、動きベクトル情報の情報量の低減が実現されている。
【００３８】
図３において、ブロック「Ｅ」はこれから符号化されようとしている当該動き補償ブロック、ブロック「Ａ」〜「Ｄ」は、既に符号化済みであってブロック「Ｅ」に隣接するブロックである。
【００３９】
ここで、ｘ＝Ａ，Ｂ，Ｃ，Ｄ，Ｅとして、ｘに対する動きベクトル情報を、ｍｖxで表すものとする。まず、ブロックＡ，Ｂ，Ｃに関する動きベクトル情報を用い、動き補償ブロックＥに対する予測動きベクトル情報ｐｍｖEを、メディアンオペレーションにより、式（１）から生成する。
ｐｍｖE＝ｍｅｄ（ｍｖA，ｍｖB，ｍｖC）  ・・・（１）
【００４０】
また、ブロック「Ｃ」に関する情報が、画枠の端である等の理由により「unavailable」である場合には、ブロック「Ｄ」に関する情報にて代用する。
【００４１】
画像圧縮情報に、動き補償ブロック「Ｅ」に対する動きベクトル情報として符号化されるデータｍｖｄEは、ｐｍｖEを用いて式（２）のように生成される。
ｍｖｄE＝ｍｖE−ｐｍｖE                 ・・・（２）
なお、実際の処理は、動きベクトル情報の水平方向、垂直方向のそれぞれの成分に対して、独立に処理が行われる。
【００４２】
このように、動きベクトル情報として予測動きベクトル情報ｐｍｖEとの差分であるデータｍｖｄEを用いることで、動きベクトル情報の情報量の低減が実現されている。
【００４３】
また、Ｈ．２６４／ＡＶＣ方式においては、Multi-Reference Frameという、ＭＰＥＧ−２やＨ．２６３等の画像情報符号化方式では規定されていなかった方式が規定されている。図４は、Multi-Reference Frameを説明するための図である。Ｈ．２６４／ＡＶＣ方式では、複数の参照フレームをメモリに格納し、図４に示すように、動き補償ブロック毎に異なるフレームを参照することが可能とされている。
【００４４】
また、Ｈ．２６４／ＡＶＣ方式におけるＢピクチャについては、ダイレクトモード（Direct Mode）が設けられている。ダイレクトモードでは、動きベクトル情報は、画像圧縮情報中には格納されず、画像復号化装置において、周辺若しくはCo-Locatedブロックの動きベクトル情報から、動き補償ブロックの動きベクトル情報が抽出される。
【００４５】
ダイレクトモードでは、空間ダイレクトモード（Spatial Direct Mode）と時間ダイレクトモード（Temporal Direct Mode）が設けられており、どちらを用いるかは、スライス毎に切り替えることが可能とされている。
【００４６】
空間ダイレクトモードでは、式（３）に示すように、メディアン予測により生成された動きベクトル情報を、動き補償ブロックに適用する。
ｍｖE＝ｐｍｖE        ・・・（３）
【００４７】
図５は、時間ダイレクトモードを説明するための図である。図５において、Ｌ０参照ピクチャにおける、動き補償ブロックと、同じ空間上のアドレスにあるブロックを、Co-Locatedブロックとし、Co-Located Blockにおける動きベクトル情報をｍｖcolとする。また、当該ピクチャとＬ０参照ピクチャの時間軸上の距離をＴＤBとし、Ｌ０参照ピクチャとＬ１参照ピクチャの時間軸上の距離をＴＤDとする。
【００４８】
このとき、当該ピクチャにおけるＬ０動きベクトル情報ｍｖL0およびＬ１動きベクトル情報ｍｖL1を、式（４），（５）に示すように生成する。
ｍｖL0＝（ＴＤB／ＴＤD）ｍｖcol              ・・・（４）
ｍｖL1＝（（ＴＤD−ＴＤB）／ＴＤD）ｍｖcol   ・・・（５）
なお、画像圧縮情報においては、時間軸上の距離を表す情報が存在しないため、ＰＯＣ（Picture Order Count）を用いて演算を行う。
【００４９】
Ｈ．２６４／ＡＶＣ方式では、６タップのＦＩＲ（Finite Impulse Response）フィルタを用いた１／４画素精度の動き予測・補償処理を行うことで、符号化効率の向上がはかられている。図６は１／４画素精度の動き予測・補償処理を説明するための図である。
【００５０】
図６において、「Ａ」はフレームメモリに格納されている整数精度画素の位置、「ｂ」,「ｃ」，「ｄ」は１／２画素精度の位置、「ｅ1」，「ｅ2」，「ｅ3」は１／４画素精度の位置である。
【００５１】
Ｃｌｉｐ１()は、式（６）のように定義する。
【数１】
2012017858.tif 000003
なお、式（６）において、ｍａｘ＿ｐｉｘの値は、入力画像が８ビット精度である場合、２５５となる。
【００５２】
位置「ｂ」「ｄ」における画素値は、６タップのＦＩＲフィルタを用いて、式（７）（８）のように生成される。
Ｆ＝Ａ−２−５・Ａ−１＋２０・Ａ０＋２０・Ａ１−５・Ａ２＋Ａ３  ・・・（７）
ｂ，ｄ＝Ｃｌｉｐ１((Ｆ＋１６)＞＞５）                   ・・・（８）
【００５３】
位置「ｃ」における画素値は、６タップのＦＩＲフィルタを用いて、式（９）または式（１０）のいずれかと式（１１）のように生成される。
Ｆ＝ｂ−２−５・ｂ−１＋２０・ｂ０＋２０・ｂ１−５・ｂ２＋ｂ３・・・（９）
Ｆ＝ｄ−２−５・ｄ−１＋２０・ｄ０＋２０・ｄ１−５・ｄ２＋ｄ３・・・（１０）
ｃ＝Ｃｌｉｐ１((Ｆ＋５１２)＞＞１０）                ・・・（１１）
なお、Ｃｌｉｐ１処理は、水平方向および垂直方向の積和処理の両方を行った後、最後に一度のみ行う。
【００５４】
位置「ｅ1」〜「ｅ3」における画素値は、線形内挿により式（１２）〜（１４）のように生成される。
ｅ1＝（Ａ＋ｂ＋１）＞＞１      ・・・（１２）
ｅ2＝（ｂ＋ｄ＋１）＞＞１      ・・・（１３）
ｅ3＝（ｂ＋ｃ＋１）＞＞１      ・・・（１４）
【００５５】
このような１／４画素精度の動き予測・補償処理では、動き補償ブロックのサイズが１６×１６画素である場合、図７の（Ａ）に示す２１×２１画素のブロックの画素値が用いられる。また、動き補償ブロックのサイズが４×４画素である場合、図７の（Ｂ）に示す９×９画素のブロックの画素値が用いられる。このように、６タップのＦＩＲフィルタを用いた１／４画素精度の動き予測・補償処理では、ブロックサイズに対して水平方向および垂直方向のそれぞれで５画素分のオーバーヘッドが必要となる。したがって、ブロックサイズが１６×１６画素である場合は（（２１×２１）／（１６×１６））倍の画素の画素値が必要となり、ブロックサイズが４×４画素である場合は（（９×９）／（４×４））倍の画素の画素値が必要となる。つまり、小さなブロックサイズが画像符号化装置においてより多く選択されると、より多くの画素の画素値が必要となり大きなメモリバンド幅が必要となる。
【００５６】
このため、Ｈ．２６４／ＡＶＣ方式では、図８に示すように、連続する２つのマクロブロックにおける動きベクトルの数の合計が、定められた上限値を超えないように動き補償ブロックのブロックサイズを設定することで、メモリバンド幅の増加が防止されている。すなわち、マクロブロックＭＢ(a)の動きベクトル本数Ｎ(a)とマクロブロックＭＢ(a+1)の動きベクトル本数Ｎ(a+1)の合計は、上限値ＮHL（レベル４（ＨＤＴＶの解像度）の場合には１６本）を超えないように制限される。同様に、マクロブロックＭＢ(a+1)の動きベクトル本数Ｎ(a+1)とマクロブロックＭＢ(a+2)の動きベクトル本数Ｎ(a+2)の合計は、上限値ＮHLを超えないように制限される。このように、連続する２つのマクロブロックにおける動きベクトルの数の合計は、定められた上限値ＮHLを超えないように制限する。例えば、Ｂピクチャでマクロブロックの大きさが１６×１６画素であり、動き補償ブロックサイズを４×４画素とする。この場合、１マクロブロックに１６個の動き補償ブロックが含まれることになり、動きベクトル本数は１６×２本となって上限値ＮHL（＝１６）を超えてしまう。したがって、動きベクトル本数が上限値を超えないように動き補償ブロックのサイズが設定される。
【００５７】
図９は、マクロブロックの大きさを拡張した場合の階層構造を示している。図９において、図９の（Ｃ）（Ｄ）は、Ｈ．２６４／ＡＶＣ方式で規定されている１６×１６画素のマクロブロックと８×８画素のサブマクロブロックを示している。また、Ｈ．２６４／ＡＶＣ方式よりも拡張された大きさのマクロブロックとして、図９の（Ａ）に示す６４×６４画素や図９の（Ｂ）に示す３２×３２画素のマクロブロックが規定される。なお、図９において、「Ｓｋｉｐ／ｄｉｒｅｃｔ」は、スキップドマクロブロックやダイレクトモードを選択した場合のブロックサイズであることを示している。また、「ＭＥ」は動き補償ブロックサイズであることを示している。また、「Ｐ８×８」は、ブロックサイズを小さくした下位の階層でさらに分割できることを示している。
【００５８】
このように、マクロブロックの大きさを拡張した場合にＨ．２６４／ＡＶＣ方式で定められた上限値を用いると、動きベクトル本数は、必要以上に制限されて画質の劣化を招いてしまうおそれがある。例えば、マクロブロックが１６×１６画素である場合の上限値を、６４×６４画素のマクロブロックでも用いると、ブロックサイズが４倍であっても上限値は等しいことから、動きベクトル本数は必要以上に制限されてしまう。したがって、動き補償ブロックのブロックサイズは、小さいブロックサイズとすることができなくなって、画質の劣化等を招いてしまうおそれがある。
【００５９】
したがって、動きベクトル本数制限設定部３５は、マクロブロックの大きさに応じて動きベクトル本数の上限値を設定する。動きベクトル本数制限設定部３５は、所定サイズ（Ｎ）のマクロブロックよりも拡張されたサイズである場合、上限値を所定サイズ（Ｎ）のマクロブロックにおける上限値よりも大きくして、 動きベクトル本数が必要以上に制限することなくリアルタイム動作をメモリバンド幅の観点から保証する。例えば、動きベクトル本数制限設定部３５は、マクロブロックの大きさが１６×１６画素（Ｎ＝１６）であるときの動きベクトル本数の上限値がｐ本であり、マクロブロックの大きさが（１６×ｍ）×（１６×ｎ）画素である場合、上限値を（ｍ×ｎ×ｐ）本として、マクロブロックの大きさに対する上限値を所定の割合とすることで、動きベクトル本数が必要以上に制限することなくリアルタイム動作をメモリバンド幅の観点から保証する。
【００６０】
図１０は、動き予測・補償部の構成と動きベクトル本数制限設定部を示している。
【００６１】
動き予測・補償部３２は動き探索部３２１、モード判定部３２２、動き補償処理部３２３、動きベクトルバッファ３２４を備えている。
【００６２】
動き探索部３２１には、画面並べ替えバッファ１２から供給された並べ替え後の画像データと、フレームメモリ２５から読み出した参照画像データが供給される。
【００６３】
動き探索部３２１は、候補となる全てのインター予測モードで動き探索処理を行い、動き探索処理によって検出した動きベクトルを示す動きベクトル情報をモード判定部３２２に出力する。また、動き探索部３２１は、検出した動きベクトルに基づき参照画像データの動き補償を行い予測画像データを生成してモード判定部３２２に出力する。さらに、動き探索部３２１は、マクロブロックの大きさを示す情報、すなわち上限値が設定されるブロックのブロックサイズを識別するサイズ識別情報を動きベクトル本数制限設定部３５に出力する。
【００６４】
動きベクトル本数制限設定部３５は、サイズ識別情報に基づきブロックサイズに応じて動きベクトル本数の上限値を設定して、設定した上限値をモード判定部３２２に通知する。
【００６５】
モード判定部３２２には、動き探索部３２１から、候補となる全てのインター予測モードに関する動きベクトル情報および予測画像データが供給される。また、モード判定部３２２には、後述する動きベクトルバッファ３２４から符号化済みの隣接ブロックで生成された動きベクトル情報が供給される。さらに、モード判定部３２２には、コスト関数を算出するため、画面並べ替えバッファ１２から供給された並べ替え後の画像データが供給される。
【００６６】
モード判定部３２２は、最適インター予測モードの候補モード毎に、画面並べ替えバッファ１２から供給された画像データと動き探索部３２１から供給された予測画像データを用いてコスト関数値を算出する。モード判定部３２２は、コスト関数値が最小となるモードを符号化対象のマクロブロックに対する最適インター予測モードとして選択する。また、モード判定部３２２は、動きベクトルバッファ３２４から供給された隣接するマクロブロックの動きベクトル情報を用いて、連続する２つのマクロブロックの動きベクトルの合計数を算出する。モード判定部３２２は、算出した数が動きベクトル本数制限設定部３５で設定された上限値を超えるモードに関しては、候補モードから除外して最適インター予測モードの判定を行う。
【００６７】
さらに、モード判定部３２２は、最適と判定されたモードに関する予測モード情報および動きベクトル情報やコスト関数値を動き補償処理部３２３に出力する。なお、予測モード情報には上限値が設定されるブロックのブロックサイズを識別するサイズ識別情報を含めるようにしてもよい。また、モード判定部３２２は、動きベクトルバッファ３２４から供給された動きベクトル情報に基づき予測動きベクトルを算出する。モード判定部３２２は、算出した予測動きベクトルと動き探索部３２１で検出された動きベクトルとの差分である差分動きベクトルを算出して、この差分動きベクトルを示す差分動きベクトル情報を動きベクトル情報に含めて動き補償処理部３２３に出力する。
【００６８】
動き補償処理部３２３は、フレームメモリ２５から供給された参照画像の画像データを用いて、モード判定部３２２から供給された動きベクトル情報に基づき動き補償を行い、予測画像データを生成する。動き補償処理部３２３は、生成された予測画像データとコスト関数値や予測モード情報（例えばマクロブロックの大きさやマクロブロックタイプ、予測モード、差分動きベクトル情報等を含む）とともに予測画像・最適モード選択部３３に出力する。また、動き補償処理部３２３は、動きベクトル情報を動きベクトルバッファ３２４に出力する。
【００６９】
動きベクトルバッファ３２４は、動き補償処理部３２３から供給された動きベクトル情報を一時記憶する。また、動きベクトルバッファ３２４は、記憶している動きベクトル情報をモード判定部３２２に供給して、連続する２つのマクロブロックの動きベクトルの合計本数や予測動きベクトルの算出を可能とする。
【００７０】
＜２．画像符号化装置の動作＞
図１１は画像符号化装置の動作を示すフローチャートである。ステップＳＴ１１において、Ａ／Ｄ変換部１１は入力された画像信号をＡ／Ｄ変換する。
【００７１】
ステップＳＴ１２において画面並べ替えバッファ１２は、画像並べ替えを行う。画面並べ替えバッファ１２は、Ａ／Ｄ変換部１１より供給された画像データを記憶し、各ピクチャの表示する順番から符号化する順番への並べ替えを行う。
【００７２】
ステップＳＴ１３において減算部１３は、予測誤差データの生成を行う。減算部１３は、ステップＳＴ１２で並び替えられた画像の画像データと予測画像・最適モード選択部３３で選択された予測画像データとの差分を算出して予測誤差データを生成する。予測誤差データは、元の画像データに比べてデータ量が小さい。したがって、画像をそのまま符号化する場合に比べて、データ量を圧縮することができる。
【００７３】
ステップＳＴ１４において直交変換部１４は、直交変換処理を行う。直交変換部１４は、減算部１３から供給された予測誤差データを直交変換する。具体的には、予測誤差データに対して離散コサイン変換、カルーネン・レーベ変換等の直交変換が行われ、変換係数データを出力する。
【００７４】
ステップＳＴ１５において量子化部１５は、量子化処理を行う。量子化部１５は、変換係数データを量子化する。量子化に際しては、後述するステップＳＴ２５の処理で説明されるように、レート制御が行われる。
【００７５】
ステップＳＴ１６において逆量子化部２１は、逆量子化処理を行う。逆量子化部２１は、量子化部１５により量子化された変換係数データを量子化部１５の特性に対応する特性で逆量子化する。
【００７６】
ステップＳＴ１７において逆直交変換部２２は、逆直交変換処理を行う。逆直交変換部２２は、逆量子化部２１により逆量子化された変換係数データを直交変換部１４の特性に対応する特性で逆直交変換する。
【００７７】
ステップＳＴ１８において加算部２３は、参照画像データの生成を行う。加算部２３は、予測画像・最適モード選択部３３から供給された予測画像データと、この予測画像と対応する位置の逆直交変換後のデータを加算して、参照画像データ（復号画像データ）を生成する。
【００７８】
ステップＳＴ１９においてデブロッキングフィルタ２４は、フィルタ処理を行う。デブロッキングフィルタ２４は、加算部２３より出力された復号画像データをフィルタリングしてブロック歪みを除去する。
【００７９】
ステップＳＴ２０においてフレームメモリ２５は、参照画像データを記憶する。フレームメモリ２５はフィルタ処理後の参照画像データ（復号画像データ）を記憶する。
【００８０】
ステップＳＴ２１においてイントラ予測部３１と動き予測・補償部３２は、それぞれ予測処理を行う。すなわち、イントラ予測部３１は、イントラ予測モードのイントラ予測処理を行い、動き予測・補償部３２は、インター予測モードの動き予測・補償処理を行う。予測処理の詳細は、図１２を参照して後述するが、この処理により、候補となる全ての予測モードでの予測処理がそれぞれ行われ、候補となる全ての予測モードでのコスト関数値がそれぞれ算出される。そして、算出されたコスト関数値に基づいて、最適イントラ予測モードと最適インター予測モードが選択され、選択された予測モードで生成された予測画像とそのコスト関数および予測モード情報が予測画像・最適モード選択部３３に供給される。
【００８１】
ステップＳＴ２２において予測画像・最適モード選択部３３は、予測画像データの選択を行う。予測画像・最適モード選択部３３は、イントラ予測部３１および動き予測・補償部３２より出力された各コスト関数値に基づいて、符号化効率が最良となる最適モードに決定する。さらに、予測画像・最適モード選択部３３は、決定した最適モードの予測画像データを選択して、減算部１３と加算部２３に出力する。この予測画像が、上述したように、ステップＳＴ１３，ＳＴ１８の演算に利用される。なお、選択した予測画像データに対応する予測モード情報は、可逆符号化部１６に出力される。
【００８２】
ステップＳＴ２３において可逆符号化部１６は、可逆符号化処理を行う。可逆符号化部１６は、量子化部１５より出力された量子化データを可逆符号化する。すなわち、量子化データに対して可変長符号化や算術符号化等の可逆符号化が行われて、データ圧縮される。このとき、上述したステップＳＴ２２において可逆符号化部１６に入力された予測モード情報も可逆符号化される。さらに、量子化データを可逆符号化して生成された画像圧縮情報に、予測モード情報の可逆符号化データが含められる。
【００８３】
ステップＳＴ２４において蓄積バッファ１７は、蓄積処理を行う。蓄積バッファ１７は、可逆符号化部１６から出力される画像圧縮情報を蓄積する。この蓄積バッファ１７に蓄積された画像圧縮情報は、適宜読み出されて伝送路を介して復号側に伝送される。
【００８４】
ステップＳＴ２５においてレート制御部１８は、レート制御を行う。レート制御部１８は、蓄積バッファ１７で画像圧縮情報を蓄積するとき、オーバーフローまたはアンダーフローが蓄積バッファ１７で発生しないように、量子化部１５の量子化動作のレートを制御する。
【００８５】
次に、図１２のフローチャートを参照して、図１１のステップＳＴ２１における予測処理を説明する。
【００８６】
ステップＳＴ３１において、イントラ予測部３１はイントラ予測処理を行う。イントラ予測部３１は処理対象のブロックの画像を、候補となる全てのイントラ予測モードでイントラ予測する。なお、イントラ予測において参照される復号画像の画像データは、デブロッキングフィルタ２４でブロッキングフィルタ処理が行われる前の復号画像データが用いられる。このイントラ予測処理により、候補となる全てのイントラ予測モードでイントラ予測が行われ、候補となる全てのイントラ予測モードに対してコスト関数値が算出される。そして、算出されたコスト関数値に基づいて、全てのイントラ予測モードの中から、符号化効率が最良となる１つのイントラ予測モードが選択される。
【００８７】
ステップＳＴ３２において、動き予測・補償部３２はインター予測処理を行う。動き予測・補償部３２は、フレームメモリ２５に記憶されているデブロッキングフィルタ処理後の復号画像データを用いて、候補となるインター予測モードのインター予測処理を行う。このインター予測処理により、候補となる全てのインター予測モードで予測処理が行われ、候補となる全てのインター予測モードに対してコスト関数値が算出される。そして、算出されたコスト関数値に基づいて、全てのインター予測モードの中から、符号化効率が最良となる１つのインター予測モードが選択される。
【００８８】
次に、図１１のステップＳＴ３１におけるイントラ予測処理について図１３のフローチャートを参照して説明する。
【００８９】
ステップＳＴ４１でイントラ予測部３１は、各予測モードのイントラ予測を行う。イントラ予測部３１は、ブロッキングフィルタ処理前の復号画像データを用いて、イントラ予測モード毎に予測画像データを生成する。
【００９０】
ステップＳＴ４２でイントラ予測部３１は、各予測モードでのコスト関数値を算出する。コスト関数値としては、Ｈ．２６４／ＡＶＣ方式における参照ソフトウェアであるＪＭ（Joint Model）で定められているように、High Complexityモードか、Low Complexityモードのいずれかの手法に基づいて行う。
【００９１】
すなわち、High Complexityモードにおいては、ステップＳＴ４２の処理として、候補となる全ての予測モードに対して、仮に可逆符号化処理までを行い、次の式（１５）で表されるコスト関数値を各予測モードに対して算出する。
Cost(Mode∈Ω)=Ｄ+λ・Ｒ            ・・・（１５）
【００９２】
Ωは、当該ブロック乃至マクロブロックを符号化するための候補となる予測モードの全体集合を示している。Ｄは、予測モードで符号化を行った場合の復号画像と入力画像との差分エネルギー（歪み）を示している。Ｒは、直交変換係数や予測モード情報等を含んだ発生符号量、λは、量子化パラメータＱＰの関数として与えられるラグランジュ乗数である。
【００９３】
つまり、High Complexityモードでの符号化を行うには、上記パラメータＤおよびＲを算出するため、候補となる全ての予測モードにより、一度、仮エンコード処理を行う必要があり、より高い演算量を要する。
【００９４】
一方、Low Complexityモードにおいては、ステップＳＴ４２の処理として、候補となる全ての予測モードに対して、予測画像の生成、および、動きベクトル情報や予測モード情報などのヘッダビットまでを算出し、次の式（１６）で表されるコスト関数値を各予測モードに対して算出する。
Cost(Mode∈Ω)=Ｄ+QP2Quant(QP)・Header＿Bit      ・・・（１６）
【００９５】
Ωは、当該ブロック乃至マクロブロックを符号化するための候補となる予測モードの全体集合を示している。Ｄは、予測モードで符号化を行った場合の復号画像と入力画像との差分エネルギー（歪み）を示している。Header＿Bitは、予測モードに対するヘッダビット、QP2Quantは、量子化パラメータＱＰの関数として与えられる関数である。
【００９６】
すなわち、Low Complexityモードにおいては、それぞれの予測モードに関して、予測処理を行う必要があるが、復号化画像までは必要ないため、High Complexityモードより低い演算量での実現が可能である。
【００９７】
ステップＳＴ４３でイントラ予測部３１は、最適イントラ予測モードを決定する。イントラ予測部３１は、ステップＳＴ４２において算出されたコスト関数値に基づいて、それらの中から、コスト関数値が最小値である１つのイントラ予測モードを選択して最適イントラ予測モードに決定する。
【００９８】
次に、図１４のフローチャートを参照して、図１１のステップＳＴ３２のインター予測処理について説明する。ステップＳＴ５１で動きベクトル本数制限設定部３５は、動きベクトル本数の上限値設定を行う。
【００９９】
図１５は、動きベクトル本数の上限値設定を示すフローチャートである。ステップＳＴ６１で動きベクトル本数制限設定部３５は、マクロブロックの大きさを判別する。動きベクトル本数制限設定部３５は、動き探索部３２１からインター予測を行う場合のマクロブロックの大きさを示すサイズ識別情報を取得して、マクロブロックの大きさを判別してステップＳＴ６２に進む。
【０１００】
ステップＳＴ６２で動きベクトル本数制限設定部３５は、動きベクトル本数の上限値を算出する。動きベクトル本数制限設定部３５は、マクロブロックの大きさに応じて、本数の上限値を算出する。ここで、マクロブロックが１６×１６画素のマクロブロックよりも拡張されたサイズである場合、動きベクトル本数制限設定部３５は、上限値を１６×１６画素のマクロブロックにおける上限値よりも大きくして、 動きベクトル本数が必要以上に制限することなくリアルタイム動作をメモリバンド幅の観点から保証する。例えば、動きベクトル本数制限設定部３５は、マクロブロックの大きさが１６×１６画素であるときの動きベクトル本数の上限値がｐ本であり、マクロブロックの大きさが（１６×ｍ）×（１６×ｎ）画素である場合、上限値を（ｍ×ｎ×ｐ）本として、図１４のステップＳＴ５２に戻る。
【０１０１】
ステップＳＴ５２で動き予測・補償部３２は、動き予測処理を行う。動き予測・補償部３２は、予測モード毎に動き予測を行って動きベクトルを検出してステップＳＴ５３に進む。
【０１０２】
ステップＳＴ５３で動き予測・補償部３２は、動きベクトル符号化処理を行う。動き予測・補償部３２は、各予測モードで検出された動きベクトルと符号化済みのブロックの動きベクトルから生成した予測動きベクトルとの差分である差分動きベクトルを示す動きベクトル情報を生成する。動き予測・補償部３２は、生成された動きベクトル情報を可逆符号化してステップＳＴ５４に進む。
【０１０３】
ステップＳＴ５４で動き予測・補償部３２は、各予測モードについて動きベクトルと参照画像を決定する。動き予測・補償部３２は、各動き補償ブロックサイズについてモード毎に動きベクトルと、該動きベクトルの検出に用いた参照画像を決定してステップＳＴ５５に進む。また、動き予測・補償部３２は、連続する２つのマクロブロックの動きベクトルの合計本数が上限値を超える予測モードを、最適インター予測モードの候補から除外する。
【０１０４】
ステップＳＴ５５で動き予測・補償部３２は、各予測モードでのコスト関数値を算出する。動き予測・補償部３２は、上述した式（１５）または式（１６）を用いてコスト関数値の算出を行う。なお、インター予測モードに対するコスト関数値の算出には、Ｈ．２６４／ＡＶＣ方式において定められているスキップドマクロブロックやダイレクトモードのコスト関数値の評価も含まれる。
【０１０５】
ステップＳＴ５６で動き予測・補償部３２は、最適インター予測モードを決定する。動き予測・補償部３２は、ステップＳＴ５５において算出されたコスト関数値に基づいて、それらの中から、コスト関数値が最小値である１つの予測モードを選択して最適インター予測モードに決定する。
【０１０６】
このように、図１に示す画像処理装置や図１１に示す画像処理方法によれば、動きベクトル本数の上限値がマクロブロックの大きさに応じて設定される。したがって、上限値を超えないように動きベクトル本数を制限しても、動きベクトル本数を必要以上に制限することなくリアルタイム動作をメモリバンド幅の観点から保証することができる。また、動きベクトル本数が必要以上に制限されて画質が劣化してしまうことを防止できる。すなわち、拡張されたマクロブロックに対応した画像処理を行うことができる。
【０１０７】
＜３．画像符号化装置の他の構成＞
次に、画像符号化装置の他の構成として、動きベクトル本数が上限値を超えないための制御回数をフレーム毎に監視することで、符号化処理をより効率よく行えるようにする場合について説明する。
【０１０８】
図１６は画像符号化装置の他の構成を示している。画像符号化装置１０ａは、画像符号化装置１０と同様に、アナログ／ディジタル変換部（Ａ／Ｄ変換部）１１、画面並び替えバッファ１２、減算部１３、直交変換部１４、量子化部１５、可逆符号化部１６、蓄積バッファ１７、レート制御部１８を備えている。また、画像符号化装置１０ａは、画像符号化装置１０と同様に、逆量子化部２１、逆直交変換部２２、加算部２３、デブロッキングフィルタ２４、フレームメモリ２５、イントラ予測部３１、動き予測・補償部３２ａ、予測画像・最適モード選択部３３、動きベクトル本数制限設定部３５を備えている。さらに、画像符号化装置１０ａは、シーンチェンジ検出部２９を備えている。なお、以下の説明では、画像符号化装置１０と相違する部分についてのみ説明を行う。
【０１０９】
シーンチェンジ検出部２９は、画像並べ替えバッファ１２から出力された入力画像データを用いてシーンの切り替えを検出して、シーンチェンジ検出結果を動き予測・補償部３２ａに出力する。
【０１１０】
図１７は、動き予測・補償部の他の構成と動きベクトル本数制限設定部を示している。
【０１１１】
動き予測・補償部３２ａは動き探索部３２１ａ、モード判定部３２２ａ、動き補償処理部３２３、動きベクトルバッファ３２４を備えている。
【０１１２】
動き探索部３２１ａには、画面並べ替えバッファ１２から供給された並べ替え後の画像データと、フレームメモリ２５から読み出した参照画像データが供給される。また、動き探索部３２１ａには、シーンチェンジ検出部２９からシーンチェンジ検出結果とモード判定部３２２ａから動きベクトル本数が上限値を超えないための制御回数が供給される。
【０１１３】
動き探索部３２１ａは、候補となる全てのインター予測モードで動き探索処理を行い、動き探索処理によって検出した動きベクトルを示す動きベクトル情報をモード判定部３２２ａに出力する。また、動き探索部３２１ａは、検出した動きベクトルに基づき参照画像データの動き補償を行い予測画像データを生成してモード判定部３２２ａに出力する。さらに、動き探索部３２１ａは、上限値が設定されるブロックのブロックサイズを識別するためのサイズ識別情報を動きベクトル本数制限設定部３５に出力する。また、動き探索部３２１ａは、動きベクトル本数が上限値を超えないための制御回数が所定回数よりも大きくなった場合、次のフレームでマクロブロックを大きくする。また、動き探索部３２１ａは、シーンチェンジ検出結果によってシーンチェンジが検出されたことが示された場合、マクロブロックの大きさを所定サイズに戻す処理を行う。
【０１１４】
モード判定部３２２ａには、動き探索部３２１ａから、候補となる全てのインター予測モードに関する動きベクトル情報および予測画像データが供給される。また、モード判定部３２２ａには、動きベクトルバッファ３２４から符号化済みの隣接ブロックで生成された動きベクトル情報が供給される。さらに、モード判定部３２２ａには、コスト関数を算出するため、画面並べ替えバッファ１２から供給された並べ替え後の画像データが供給される。
【０１１５】
モード判定部３２２ａは、最適インター予測モードの候補モード毎に、画面並べ替えバッファ１２から供給された画像データと動き探索部３２１ａから供給された予測画像データを用いてコスト関数値を算出する。モード判定部３２２ａは、コスト関数値が最小となるモードを符号化対象のマクロブロックに対する最適インター予測モードとして選択する。
【０１１６】
また、モード判定部３２２ａは、動きベクトルバッファ３２４から供給された隣接するマクロブロックの動きベクトル情報を用いて、連続する２つのマクロブロックの動きベクトルの合計本数を算出する。モード判定部３２２ａは、コスト関数値が最小となるモードにおける動きベクトルの合計本数が上限値を超える場合、合計値が上限値を超えることなくコスト関数値が最小となるモードを最適インター予測モードとする制御、例えば連続する２つのマクロブロックの動きベクトルの合計本数が上限値を超える予測モードを、最適インター予測モードの候補から除外する制御を行い、フレーム毎の制御回数（マクロブロック数）をフレーム毎に動き探索部３２１ａに出力する。
【０１１７】
さらに、モード判定部３２２ａは、最適と判定されたモードに関する予測モード情報および動きベクトル情報やコスト関数値を動き補償処理部３２３に出力する。また、モード判定部３２２ａは、動きベクトルバッファ３２４から供給された動きベクトル情報に基づき予測動きベクトルを算出する。モード判定部３２２ａは、算出した予測動きベクトルと動き探索部３２１ａで検出された動きベクトルとの差分である差分動きベクトルを算出して、この差分動きベクトルを示す差分動きベクトル情報を動きベクトル情報に含めて動き補償処理部３２３に出力する。
【０１１８】
このように、動きベクトル本数が上限値を超えないための制御回数をフレーム毎に監視して、制御回数が所定回数よりも大きくなった場合、次のフレームでマクロブロックを大きくすると、上限値が大きくなり動きベクトル本数の制限が緩やかになる。したがって、動きベクトル本数が上限値を超えないための制御回数を少なくすることが可能となり、効率のよい符号化処理を行うことができる。また、シーンチェンジが検出されたときはマクロブロックが予め設定されたサイズに戻されるので、シーンチェンジが行われて画像の連続性が無くなったとき、予め設定されたマクロブロックの大きさで符号化処理を行うことができる。
【０１１９】
＜４．画像符号化装置の他の動作＞
次に、画像符号化装置の他の動作として、画像符号化装置は、上限値を超える動きベクトル本数を許容する動作モードを有している場合を説明する。なお、この場合の画像符号化装置の構成は、図１，図１０と同様である。
【０１２０】
動きベクトル本数の制限は、上述のようにリアルタイム動作をメモリバンド幅の観点から保証するために設けられている。したがって、リアルタイム動作を保証する必要のない動作モードを設けて、上限値を超えた動きベクトル本数を許容できるようにしてもよい。この場合、動きベクトル本数は上限値に制限されないことから、より最適な予測画像を生成することが可能となる。
【０１２１】
また、このような動作モードを用いる場合、画像圧縮情報におけるシーケンスパラメータセット等において、リアルタイム復号化処理を保証しないことを示す情報、すなわち動きベクトルの数が上限値を超えていることを示す判別情報（例えばフラグ）を設ける。このようなフラグを設けることで、画像圧縮情報の復号化を行う画像復号化装置は、フラグの検出を行うことで動きベクトル本数が上限値を超えていることを容易に判別できる。したがって、リアルタイム動作の復号化処理が保証されないことをユーザ等に対して容易に通知することが可能となる。
【０１２２】
＜５．画像復号化装置の構成＞
入力画像を符号化して生成された画像圧縮情報は、所定の伝送路や記録媒体等を介して画像復号化装置に供給されて復号される。
【０１２３】
図１８は、画像圧縮情報の復号化を行う画像処理装置である画像復号化装置の構成を示している。画像復号化装置５０は、蓄積バッファ５１、可逆復号化部５２、逆量子化部５３、逆直交変換部５４、加算部５５、デブロッキングフィルタ５６、画面並べ替えバッファ５７、ディジタル／アナログ変換部（Ｄ／Ａ変換部）５８を備えている。さらに、画像復号化装置５０は、フレームメモリ６１、イントラ予測部６２、動き補償部６３、セレクタ６４、動きベクトル本数制限設定部６５を備えている。
【０１２４】
蓄積バッファ５１は、伝送されてきた画像圧縮情報を蓄積する。可逆復号化部５２は、蓄積バッファ５１より供給された画像圧縮情報を、図１の可逆符号化部１６の符号化方式に対応する方式で復号化する。
【０１２５】
可逆復号化部５２は、画像圧縮情報を復号して得られた予測モード情報をイントラ予測部６２や動き補償部６３に出力する。
【０１２６】
逆量子化部５３は、可逆復号化部５２で復号された量子化データを、図１の量子化部１５の量子化方式に対応する方式で逆量子化する。逆直交変換部５４は、図１の直交変換部１４の直交変換方式に対応する方式で逆量子化部５３の出力を逆直交変換して加算部５５に出力する。
【０１２７】
加算部５５は、逆直交変換後のデータとセレクタ６４から供給される予測画像データを加算して復号画像データを生成してデブロッキングフィルタ５６とイントラ予測部６２に出力する。
【０１２８】
デブロッキングフィルタ５６は、加算部５５から供給された復号画像データに対してデブロッキングフィルタ処理を行い、ブロック歪みを除去してからフレームメモリ６１に供給し蓄積させるとともに、画面並べ替えバッファ５７に出力する。
【０１２９】
画面並べ替えバッファ５７は、画像の並べ替えを行う。すなわち、図１の画面並べ替えバッファ１２により符号化の順番のために並べ替えられたフレームの順番が、元の表示の順番に並べ替えられて、Ｄ／Ａ変換部５８に出力される。
【０１３０】
Ｄ／Ａ変換部５８は、画面並べ替えバッファ５７から供給された画像データをＤ／Ａ変換し、図示せぬディスプレイに出力することで画像を表示させる。
【０１３１】
フレームメモリ６１は、デブロッキングフィルタ２４から供給されたフィルタ処理後の復号画像データを記憶する。
【０１３２】
イントラ予測部６２は、可逆復号化部５２から供給された予測モード情報に基づき、加算部５５から供給された復号画像データから予測画像の生成を行い、生成した予測画像データをセレクタ６４に出力する。
【０１３３】
動き補償部６３は、可逆復号化部５２から供給された予測モード情報や動きベクトルに基づき、フレームメモリ６１から参照画像の画像データを読み出して動き補償を行い、予測画像データを生成してセレクタ６４に出力する。また、動き補償部６３は、予測モード情報で示されているマクロブロックの大きさを動きベクトル本数制限設定部６５に出力する。さらに、動き補償部６３は、連続する２つのマクロブロックの動くベクトルの合計本数が、動きベクトル本数制限設定部６５から通知された上限値を超えているか判別して、判別結果を例えばシステムコントローラ等に出力する。
【０１３４】
セレクタ６４は、イントラ予測部６２で生成された予測画像データを加算部５５に出力する。また、セレクタ６４は、動き補償部６３で生成された予測画像データを加算部５５に出力する。
【０１３５】
動きベクトル本数制限設定部６５は、動き補償部６３から通知されたマクロブロックの大きさに応じて動きベクトル本数の上限値を設定して、設定した上限値を動き補償部６３に通知する。ここで、マクロブロックが１６×１６画素のマクロブロックよりも拡張されたサイズである場合、動きベクトル本数制限設定部６５は、上限値を１６×１６画素のマクロブロックにおける上限値よりも大きくして、 動きベクトル本数が必要以上に制限することなくリアルタイム動作がメモリバンド幅の観点から保証可能であるか判別できるようにする。例えば、動きベクトル本数制限設定部６５は、マクロブロックの大きさが１６×１６画素であるときの動きベクトル本数の上限値がｐ本であり、マクロブロックの大きさが（１６×ｍ）×（１６×ｎ）画素である場合、上限値を（ｍ×ｎ×ｐ）本として、マクロブロックの大きさに対する上限値を所定の割合とすることで、動きベクトル本数が必要以上に制限することなくリアルタイム動作がメモリバンド幅の観点から保証可能であるか判別できるようにする。
【０１３６】
図１９は、動き補償部の構成と動きベクトル本数制限設定部を示している。
【０１３７】
動き補償部６３は、マクロブロックサイズバッファ６３１、動きベクトル生成部６３２、モードバッファ６３３、動き補償処理部６３４を備えている。
【０１３８】
マクロブロックサイズバッファ６３１は、可逆復号化部５２から供給されたサイズ識別情報を記憶する。また、マクロブロックサイズバッファ６３１は、記憶しているサイズ識別情報を動きベクトル本数制限設定部６５に出力する。
【０１３９】
動きベクトル本数制限設定部６５は、マクロブロックの大きさに応じて動きベクトル本数の上限値を決定して、この上限値を動きベクトル生成部６３２に通知する。
【０１４０】
動きベクトル生成部６３２は、動きベクトル情報を再構築するため、時空間で隣接するブロックに関する動きベクトル情報を格納するバッファを備えている。動きベクトル生成部６３２は、隣接ブロックの動きベクトル情報と可逆復号化部から供給された予測モード情報で示された差分動きベクトル情報を用いて、当該ブロックに関する動きベクトル情報を再構築する。また、動きベクトル生成部６３２は、再構築された動きベクトル本数が動きベクトル本数制限設定部６５で決定された上限値を超えているか否かの判定を行い、判定結果をシステムコントローラ等（図示せず）に出力する。
【０１４１】
モードバッファ６３３は、可逆復号化部５２から供給された予測モードを示す予測モード情報を記憶する。また、モードバッファ６３３は、記憶している予測モード情報を動き補償処理部６３４に出力する。
【０１４２】
動き補償処理部６３４は、予測モード情報に基づいてフレームメモリ６１から参照画像の画像データを読み出して、動きベクトル生成部６３２で生成された動きベクトル情報に基づき動き補償を行い、予測画像データを生成する。動き補償処理部６３４は、生成した予測画像データをセレクタ６４に出力する。
【０１４３】
＜６．画像復号化装置の動作＞
次に、図２０のフローチャートを参照して、画像復号化装置５０で行われる画像復号処理動作について説明する。
【０１４４】
ステップＳＴ８１で蓄積バッファ５１は、伝送されてきた画像圧縮情報を蓄積する。ステップＳＴ８２で可逆復号化部５２は、可逆復号化処理を行う。可逆復号化部５２は、蓄積バッファ５１から供給される画像圧縮情報を復号化する。すなわち、図１の可逆符号化部１６により符号化された各ピクチャの量子化データが得られる。また、可逆復号化部５２、画像圧縮情報に含まれている予測モード情報の可逆復号化を行い、得られた予測モード情報がイントラ予測モードに関する情報である場合、予測モード情報をイントラ予測部６２に出力する。また、可逆復号化部５２は、予測モード情報がインター予測モードに関する情報である場合、予測モード情報を動き補償部６３に出力する。
【０１４５】
ステップＳＴ８３において逆量子化部５３は、逆量子化処理を行う。逆量子化部５３は、可逆復号化部５２により復号された量子化データを、図１の量子化部１５の特性に対応する特性で逆量子化する。
【０１４６】
ステップＳＴ８４において逆直交変換部５４は、逆直交変換処理を行う。逆直交変換部５４は、逆量子化部５３により逆量子化された変換係数データを、図１の直交変換部１４の特性に対応する特性で逆直交変換する。
【０１４７】
ステップＳＴ８５において加算部５５は、復号画像データの生成を行う。加算部５５は、逆直交変換処理を行うことにより得られたデータと、後述するステップＳＴ８９で選択された予測画像データを加算して復号画像データを生成する。これにより元の画像が復号される。
【０１４８】
ステップＳＴ８６においてデブロッキングフィルタ５６は、フィルタ処理を行う。デブロッキングフィルタ５６は、加算部５５より出力された復号画像データのデブロッキングフィルタ処理を行い、復号画像に含まれているブロック歪みを除去する。
【０１４９】
ステップＳＴ８７においてフレームメモリ６１は、復号画像データの記憶処理を行う。
【０１５０】
ステップＳＴ８８においてイントラ予測部６２と動き補償部６３は、予測画像生成処理を行う。イントラ予測部６２と動き補償部６３は、可逆復号化部５２から供給される予測モード情報に対応してそれぞれ予測画像生成処理を行う。
【０１５１】
すなわち、可逆復号化部５２からイントラ予測の予測モード情報が供給された場合、イントラ予測部６２は、予測モード情報に基づいて予測画像データを生成する。また、可逆復号化部５２からインター予測の予測モード情報が供給された場合、動き補償部６３は、予測モード情報に基づき動き補償を行い予測画像データを生成する。
【０１５２】
ステップＳＴ８９において、セレクタ６４は予測画像データの選択を行う。セレクタ６４は、イントラ予測部６２から供給された予測画像と動き補償部６３で生成された予測画像データを選択して加算部５５に供給して、上述したように、ステップＳＴ８５において逆直交変換部５４の出力と加算させる。
【０１５３】
ステップＳＴ９０において画面並べ替えバッファ５７は、画像並べ替えを行う。すなわち画面並べ替えバッファ５７は、図１の画像符号化装置１０の画面並べ替えバッファ１２により符号化のために並べ替えられたフレームの順序が、元の表示の順序に並べ替えられる。
【０１５４】
ステップＳＴ９１において、Ｄ／Ａ変換部５８は、画面並べ替えバッファ５７からの画像データをＤ／Ａ変換する。この画像が図示せぬディスプレイに出力され、画像が表示される。
【０１５５】
次に、図２１のフローチャートを参照して、図２０のステップＳＴ８８の予測画像生成処理について説明する。
【０１５６】
ステップＳＴ１０１で可逆復号化部５２は、対象ブロックがイントラ符号化されているか否かを判定する。可逆復号化部５２は、可逆復号化を行うことにより得られた予測モード情報がイントラ予測の予測モード情報である場合、予測モード情報をイントラ予測部６２に供給してステップＳＴ１０２に進む。また、可逆復号化部５２は、予測モード情報がインター予測の予測モード情報である場合、予測モード情報を動き補償部６３に供給してステップＳＴ１０３に進む。
【０１５７】
ステップＳＴ１０２でイントラ予測部６２は、イントラ予測画像生成処理を行う。イントラ予測部６２は、加算部５５から供給された復号画像データと予測モード情報を用いてイントラ予測を行い、予測画像データを生成する。
【０１５８】
ステップＳＴ１０３で動き補償部６３は、インター予測画像生成処理を行う。動き補償部６３は、可逆復号化部５２からの予測モード情報や動きベクトルに基づいて、フレームメモリ６１から読み出した参照画像の動き補償を行い、予測画像データを生成する。
【０１５９】
図２２は、ステップＳＴ１０３のインター予測画像生成処理を示すフローチャートである。ステップＳＴ１１１で動きベクトル本数制限設定部６５は、図１５と同様な処理を行い、動きベクトル本数の上限値設定を行う。動きベクトル本数制限設定部６５は、マクロブロックの大きさに応じて、動きベクトル本数の上限値を設定する。ここで、マクロブロックが１６×１６画素のマクロブロックよりも拡張されたサイズである場合、動きベクトル本数制限設定部６５は、上限値を１６×１６画素のマクロブロックにおける上限値よりも大きくして、 動きベクトル本数が必要以上に制限することなくリアルタイム動作をメモリバンド幅の観点から保証可能であるか判別できるようにする。例えば、動きベクトル本数制限設定部６５は、マクロブロックの大きさが１６×１６画素であるときの動きベクトル本数の上限値がｐ本であり、マクロブロックの大きさが（１６×ｍ）×（１６×ｎ）画素である場合、上限値を（ｍ×ｎ×ｐ）本としてステップＳＴ１１２に進む。
【０１６０】
ステップＳＴ１１２で動き補償部６３は、予測モード情報を取得する。動き補償部６３は、予測画像データを生成するために、予測モード情報を可逆復号化部５２から取得してステップＳＴ１１３に進む。
【０１６１】
ステップＳＴ１１３で動き補償部６３は、動きベクトル情報を再構築する。動き補償部６３は、例えば復号化済みの隣接ブロックの動きベクトルから予測動きベクトル情報を生成して、この予測動きベクトル情報と予測モード情報で示された差分動きベクトル情報から動きベクトル情報を再構築してステップＳＴ１１４に進む。
【０１６２】
ステップＳＴ１１４で動き補償部６３は、動きベクトル本数の監視を行う。動き補償部６３は、隣接する２つのマクロブロックの動きベクトルの合計本数が、ステップＳＴ１１１で決定された上限値を超えているか監視する。動き補償部６３は、動きベクトル本数が上限値を超えた場合例えばシステムコントローラ等にその旨を通知してステップＳＴ１１５に進む。
【０１６３】
ステップＳＴ１１５で動き補償部６３は、予測画像データの生成を行う。動き補償部６３はステップＳＴ１１２で取得した予測モード情報や、ステップＳＴ１１３で再構築した動きベクトル情報に基づき、フレームメモリ６１から参照画像データを読み出して動き補償を行い、予測画像データを生成してセレクタ６４に出力する。
【０１６４】
このように、図１８に示す画像処理装置や図２０に示す画像処理方法によれば、動きベクトル本数の上限値がマクロブロックの大きさに応じて設定されて、動きベクトル本数が設定された上限値を超えるか否かの監視結果が出力される。したがって、監視結果に基づき、リアルタイム動作が保証されるか容易に判別することが可能となり、動きベクトル本数が上限値を超えてリアルタイム動作が保証されない場合、その旨を表示や音声等でユーザに通知することができる。
【０１６５】
また、画像圧縮情報に動きベクトル本数が上限値を超えていることを示す判別情報が含まれる場合、この判別情報に基づき動きベクトル本数が上限値を超えているかを示す判別結果を出力することで、リアルタイム動作が保証されない場合には表示や音声等でユーザにその旨を通知することが可能となる。
【０１６６】
なお、マクロブロックのサイズは、上述の実施の形態に限定されず、他のサイズであってもよい。現在、Ｈ．２６４／ＡＶＣ方式より更なる符号化効率の向上を目的として、ＩＴＵ−ＴとＩＳＯ／ＩＥＣとの共同の標準化団体であるＪＣＴＶＣ（Joint Collaboration Team - Video Coding）により、ＨＥＶＣ（High Efficiency Video Coding）と呼ばれる画像符号化方式の標準化が進められている。
【０１６７】
ＨＥＶＣにおいて、符号化単位（ＣＵ：Coding Unit）のサイズはシーケンスごとに動的に指定され得る。ＨＥＶＣの符号化単位は符号化ツリーブロック（Coding Tree Block）とも呼ばれ、最大のサイズを有する符号化単位を最大符号化単位（ＬＣＵ：Largest Coding Unit）、最小のサイズを有する符号化単位を最小符号化単位（ＳＣＵ：Smallest Coding Unit）という。画像圧縮情報の一部であるシーケンスパラメータセットにおいてこれらＬＣＵ及びＳＣＵのサイズを指定することで、使用可能な符号化単位のサイズの範囲が定義される。さらに、split_flagの値を指定することで、個々のシーケンスにおいて使用される符号化単位のサイズが特定される。
【０１６８】
なお、符号化単位の形状は通常は正方形であり、一辺のサイズが２のべき乗で表現される。さらに、符号化単位は、イントラ予測又はインター予測の処理単位である予測単位（ＰＵ：Prediction  Unit）に分割され得る。また、符号化単位は、直交変換の処理単位である変換単位（ＴＵ：Transform  Unit）にも分割され得る。ＨＥＶＣでは、４×４画素及び８×８画素に加えて、１６×１６画素及び３２×３２画素のサイズを有する変換単位を使用することができる。このため、本明細書ではブロックとして、マクロブロックだけでなく、符号化単位、最大符号化単位などユニットの概念を含む。 
さらに、上述した動きベクトル本数の上限値は、例えば全てのＣＵに設定する必要はなく、基準となる上限値と異なる値を設定したいブロックのみ設定することも可能である。この場合、基準となる上限値と異なる値を設定したいブロックのみ設定するための識別情報を符号化ストリームに含める。図２３は、識別情報をスライスヘッダ（SliceHeader）に含める場合のシンタックスを例示している。なお、図２３において、各行の左端の数字は説明のために付した行番号である。
【０１６９】
第２２行目のシンタックス「MinUnitForNumMV」は、上限値を設定する最小のＣＵサイズを指定(識別)するための情報である。例えば、ＣＵの最小サイズが８×８画素であったとしても、「MinUnitForNumMV =16」と指定されている場合、１６×１６画素以上のサイズのＣＵのみ上限値を設定し、８×８画素のＣＵには上限値を設定しないようにする。
【０１７０】
また、別のアプローチとして、フラグとして設定することも可能である。例えば「MinUnitForNumMV」をフラグとして０と設定した場合は１２８×１２８画素サイズのレベルでは上限値を設定し、６４×６４画素サイズ以下のレベルでは上限値を設定しない。「MinUnitForNumMV」をフラグとして１と設定した場合は６４×６４画素サイズのレベルでは上限値を設定し、３２×３２画素サイズ以下のレベルでは上限値を設定しない。「MinUnitForNumMV」をフラグとして２と設定した場合は３２×３２画素サイズのレベルでは上限値を設定し、１６×１６画素サイズ以下のレベルでは上限値を設定しない。
【０１７１】
このようにすれば、例えば、１６×１６画素サイズ以上おいて上限値設定の制御しか望んでいなければ、８×８画素サイズのＣＵでは上限値を設けずに動き予測・補償を行う。このようなシンタックス「MinUnitForNumMV」を設定することにより、この場合には８×８画素サイズのＣＵの制御を省略することができ、上限値の設定と動き予測・補償のコントロールを柔軟に設定することができる。
【０１７２】
なお、図２３は、シンタックス「MinUnitForNumMV」をスライスヘッダに設けた場合を例示したが、このシンタックスは、スライスヘッダ以外に格納するようにしてもよい。例えば、ピクチャパラメータセット（PictureParameterSet）に格納するようにしてもよい。このように、スライスヘッダまたはピクチャパラメータセットに格納すれば、例えばシーンチェンジ後にこの値を変更するといった操作に対応することができる。また、「MinUnitForNumMV」を、スライスヘッダに格納すれば、ピクチャをマルチスライス化してスライス毎に並列処理する場合に対応できる。
【０１７３】
＜７．ソフトウェア処理の場合＞
また、明細書中において説明した一連の処理はハードウェア、またはソフトウェア、または両者の複合構成によって実行することが可能である。ソフトウェアによる処理を実行する場合は、処理シーケンスを記録したプログラムを、専用のハードウェアに組み込まれたコンピュータ内のメモリにインストールして実行させる。または、各種処理が実行可能な汎用コンピュータにプログラムをインストールして実行させることも可能である。
【０１７４】
例えば、プログラムは記録媒体としてのハードディスクやＲＯＭ（Read Only Memory)に予め記録しておくことができる。または、プログラムはフレキシブルディスク、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory），ＭＯ（Magneto optical）ディスク，ＤＶＤ（Digital Versatile Disc）、磁気ディスク、半導体メモリなどのリムーバブル記録媒体に、一時的または永続的に格納（記録）しておくことができる。このようなリムーバブル記録媒体は、いわゆるパッケージソフトウェアとして提供することができる。
【０１７５】
なお、プログラムは、上述したようなリムーバブル記録媒体からコンピュータにインストールする他、ダウンロードサイトから、コンピュータに無線転送したり、ＬＡＮ（Local Area Network）、インターネットといったネットワークを介して、コンピュータに有線で転送し、コンピュータでは、そのようにして転送されてくるプログラムを受信し、内蔵するハードディスク等の記録媒体にインストールすることができる。
【０１７６】
プログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【０１７７】
＜８．電子機器に適用した場合＞
また、以上においては、符号化方式／復号方式としてＨ．２６４／ＡＶＣ方式が用いられたが、本技術は、その他の動き予測・補償処理を行う符号化方式／復号方式を用いる画像符号化装置／画像復号装置に適用することもできる。
【０１７８】
さらに、本技術は、例えば、ＭＰＥＧ，Ｈ．２６ｘ等のように、離散コサイン変換等の直交変換と動き補償によって圧縮された画像情報（ビットストリーム）を、衛星放送、ケーブルＴＶ（テレビジョン）、インターネット、および携帯電話機などのネットワークメディアを介して受信する際に、あるいは、光、磁気ディスク、およびフラッシュメモリのような記憶メディア上で処理する際に用いられる画像符号化装置および画像復号装置に適用することができる。
【０１７９】
上述した画像符号化装置１０や画像復号化装置５０は、任意の電子機器に適用することができる。以下にその例について説明する。
【０１８０】
図２４は、本技術を適用したテレビジョン装置の概略構成を例示している。テレビジョン装置９０は、アンテナ９０１、チューナ９０２、デマルチプレクサ９０３、デコーダ９０４、映像信号処理部９０５、表示部９０６、音声信号処理部９０７、スピーカ９０８、外部インタフェース部９０９を有している。さらに、テレビジョン装置９０は、制御部９１０、ユーザインタフェース部９１１等を有している。
【０１８１】
チューナ９０２は、アンテナ９０１で受信された放送波信号から所望のチャンネルを選局して復調を行い、得られたストリームをデマルチプレクサ９０３に出力する。
【０１８２】
デマルチプレクサ９０３は、ストリームから視聴対象である番組の映像や音声のパケットを抽出して、抽出したパケットのデータをデコーダ９０４に出力する。また、デマルチプレクサ９０３は、ＥＰＧ（Electronic Program Guide）等のデータのパケットを制御部９１０に出力する。なお、スクランブルが行われている場合、デマルチプレクサ等でスクランブルの解除を行う。
【０１８３】
デコーダ９０４は、パケットの復号化処理を行い、復号処理化によって生成された映像データを映像信号処理部９０５、音声データを音声信号処理部９０７に出力する。
【０１８４】
映像信号処理部９０５は、映像データに対して、ノイズ除去やユーザ設定に応じた映像処理等を行う。映像信号処理部９０５は、表示部９０６に表示させる番組の映像データや、ネットワークを介して供給されるアプリケーションに基づく処理による画像データなどを生成する。また、映像信号処理部９０５は、項目の選択などのメニュー画面等を表示するための映像データを生成し、それを番組の映像データに重畳する。映像信号処理部９０５は、このようにして生成した映像データに基づいて駆動信号を生成して表示部９０６を駆動する。
【０１８５】
表示部９０６は、映像信号処理部９０５からの駆動信号に基づき表示デバイス（例えば液晶表示素子等）を駆動して、番組の映像などを表示させる。
【０１８６】
音声信号処理部９０７は、音声データに対してノイズ除去などの所定の処理を施し、処理後の音声データのＤ／Ａ変換処理や増幅処理を行い、スピーカ９０８に供給することで音声出力を行う。
【０１８７】
外部インタフェース部９０９は、外部機器やネットワークと接続するためのインタフェースであり、映像データや音声データ等のデータ送受信を行う。
【０１８８】
制御部９１０にはユーザインタフェース部９１１が接続されている。ユーザインタフェース部９１１は、操作スイッチやリモートコントロール信号受信部等で構成されており、ユーザ操作に応じた操作信号を制御部９１０に供給する。
【０１８９】
制御部９１０は、ＣＰＵ（Central Processing Unit）やメモリ等を用いて構成されている。メモリは、ＣＰＵにより実行されるプログラムやＣＰＵが処理を行う上で必要な各種のデータ、ＥＰＧデータ、ネットワークを介して取得されたデータ等を記憶する。メモリに記憶されているプログラムは、テレビジョン装置９０の起動時などの所定タイミングでＣＰＵにより読み出されて実行される。ＣＰＵは、プログラムを実行することで、テレビジョン装置９０がユーザ操作に応じた動作となるように各部を制御する。
【０１９０】
なお、テレビジョン装置９０では、チューナ９０２、デマルチプレクサ９０３、映像信号処理部９０５、音声信号処理部９０７、外部インタフェース部９０９等と制御部９１０を接続するためバス９１２が設けられている。
【０１９１】
このように構成されたテレビジョン装置では、デコーダ９０４に本願の画像復号化装置（画像復号化方法）の機能が設けられる。このため、拡張されたマクロブロックが用いられても、拡張されたマクロブロックに対応した画像符号化処理を行うことができる。例えば、拡張されたマクロブロックが用いられている画像圧縮情報の再生時に動きベクトル本数が上限値を超えてリアルタイム動作が保証されない場合、その旨をユーザに通知することができる。
【０１９２】
図２５は、本技術を適用した携帯電話機の概略構成を例示している。携帯電話機９２は、通信部９２２、音声コーデック９２３、カメラ部９２６、画像処理部９２７、多重分離部９２８、記録再生部９２９、表示部９３０、制御部９３１を有している。これらは、バス９３３を介して互いに接続されている。
【０１９３】
また、通信部９２２にはアンテナ９２１が接続されており、音声コーデック９２３には、スピーカ９２４とマイクロホン９２５が接続されている。さらに制御部９３１には、操作部９３２が接続されている。
【０１９４】
携帯電話機９２は、音声通話モードやデータ通信モード等の各種モードで、音声信号の送受信、電子メールや画像データの送受信、画像撮影、またはデータ記録等の各種動作を行う。
【０１９５】
音声通話モードにおいて、マイクロホン９２５で生成された音声信号は、音声コーデック９２３で音声データへの変換やデータ圧縮が行われて通信部９２２に供給される。通信部９２２は、音声データの変調処理や周波数変換処理等を行い、送信信号を生成する。また、通信部９２２は、送信信号をアンテナ９２１に供給して図示しない基地局へ送信する。また、通信部９２２は、アンテナ９２１で受信した受信信号の増幅や周波数変換処理および復調処理等を行い、得られた音声データを音声コーデック９２３に供給する。音声コーデック９２３は、音声データのデータ伸張やアナログ音声信号への変換を行い、スピーカ９２４に出力する。
【０１９６】
また、データ通信モードにおいて、メール送信を行う場合、制御部９３１は、操作部９３２の操作によって入力された文字データを受け付けて、入力された文字を表示部９３０に表示する。また、制御部９３１は、操作部９３２におけるユーザ指示等に基づいてメールデータを生成して通信部９２２に供給する。通信部９２２は、メールデータの変調処理や周波数変換処理等を行い、得られた送信信号をアンテナ９２１から送信する。また、通信部９２２は、アンテナ９２１で受信した受信信号の増幅や周波数変換処理および復調処理等を行い、メールデータを復元する。このメールデータを、表示部９３０に供給して、メール内容の表示を行う。
【０１９７】
なお、携帯電話機９２は、受信したメールデータを、記録再生部９２９で記憶媒体に記憶させることも可能である。記憶媒体は、書き換え可能な任意の記憶媒体である。例えば、記憶媒体は、ＲＡＭや内蔵型フラッシュメモリ等の半導体メモリ、ハードディスク、磁気ディスク、光磁気ディスク、光ディスク、ＵＳＢメモリ、またはメモリカード等のリムーバブルメディアである。
【０１９８】
データ通信モードにおいて画像データを送信する場合、カメラ部９２６で生成された画像データを、画像処理部９２７に供給する。画像処理部９２７は、画像データの符号化処理を行い、符号化データを生成する。
【０１９９】
多重分離部９２８は、画像処理部９２７で生成された符号化データと、音声コーデック９２３から供給された音声データを所定の方式で多重化して、通信部９２２に供給する。通信部９２２は、多重化データの変調処理や周波数変換処理等を行い、得られた送信信号をアンテナ９２１から送信する。また、通信部９２２は、アンテナ９２１で受信した受信信号の増幅や周波数変換処理および復調処理等を行い、多重化データを復元する。この多重化データを多重分離部９２８に供給する。多重分離部９２８は、多重化データの分離を行い、符号化データを画像処理部９２７、音声データを音声コーデック９２３に供給する。
【０２００】
画像処理部９２７は、符号化データの復号化処理を行い、画像データを生成する。この画像データを表示部９３０に供給して、受信した画像の表示を行う。音声コーデック９２３は、音声データをアナログ音声信号に変換してスピーカ９２４に供給して、受信した音声を出力する。
【０２０１】
このように構成された携帯電話装置では、画像処理部９２７に本願の画像符号化装置（画像符号化方法）や画像復号化装置（画像復号化方法）の機能が設けられる。したがって、拡張されたマクロブロックが用いられても、拡張されたマクロブロックに対応した画像符号化処理や画像復号化処理を行うことができる。
【０２０２】
図２６は、本技術を適用した記録再生装置の概略構成を例示している。記録再生装置９４は、例えば受信した放送番組のオーディオデータとビデオデータを、記録媒体に記録して、その記録されたデータをユーザの指示に応じたタイミングでユーザに提供する。また、記録再生装置９４は、例えば他の装置からオーディオデータやビデオデータを取得し、それらを記録媒体に記録させることもできる。さらに、記録再生装置９４は、記録媒体に記録されているオーディオデータやビデオデータを復号して出力することで、モニタ装置等において画像表示や音声出力を行うことができるようにする。
【０２０３】
記録再生装置９４は、チューナ９４１、外部インタフェース部９４２、エンコーダ９４３、ＨＤＤ（Hard Disk Drive）部９４４、ディスクドライブ９４５、セレクタ９４６、デコーダ９４７、ＯＳＤ（On-Screen Display）部９４８、制御部９４９、ユーザインタフェース部９５０を有している。
【０２０４】
チューナ９４１は、図示しないアンテナで受信された放送信号から所望のチャンネルを選局する。チューナ９４１は、所望のチャンネルの受信信号を復調して得られた画像圧縮情報をセレクタ９４６に出力する。
【０２０５】
外部インタフェース部９４２は、ＩＥＥＥ１３９４インタフェース、ネットワークインタフェース部、ＵＳＢインタフェース、フラッシュメモリインタフェース等の少なくともいずれで構成されている。外部インタフェース部９４２は、外部機器やネットワーク、メモリカード等と接続するためのインタフェースであり、記録する映像データや音声データ等のデータ受信を行う。
【０２０６】
エンコーダ９４３は、外部インタフェース部９４２から供給された映像データや音声データが符号化されていないとき所定の方式で符号化を行い、画像圧縮情報をセレクタ９４６に出力する。
【０２０７】
ＨＤＤ部９４４は、映像や音声等のコンテンツデータ、各種プログラムやその他のデータ等を内蔵のハードディスクに記録し、また再生時等にそれらを当該ハードディスクから読み出す。
【０２０８】
ディスクドライブ９４５は、装着されている光ディスクに対する信号の記録および再生を行う。光ディスク、例えばＤＶＤディスク（ＤＶＤ−Ｖｉｄｅｏ、ＤＶＤ−ＲＡＭ、ＤＶＤ−Ｒ、ＤＶＤ−ＲＷ、ＤＶＤ＋Ｒ、ＤＶＤ＋ＲＷ等）やＢｌｕ−ｒａｙディスク等である。
【０２０９】
セレクタ９４６は、映像や音声の記録時には、チューナ９４１またはエンコーダ９４３からのいずれのストリームを選択して、ＨＤＤ部９４４やディスクドライブ９４５のいずれに供給する。また、セレクタ９４６は、映像や音声の再生時に、ＨＤＤ部９４４またはディスクドライブ９４５から出力されたストリームをデコーダ９４７に供給する。
【０２１０】
デコーダ９４７は、ストリームの復号化処理を行う。デコーダ９４７は、復号処理化を行うことにより生成された映像データをＯＳＤ部９４８に供給する。また、デコーダ９４７は、復号処理化を行うことにより生成された音声データを出力する。
【０２１１】
ＯＳＤ部９４８は、項目の選択などのメニュー画面等を表示するための映像データを生成し、それをデコーダ９４７から出力された映像データに重畳して出力する。
【０２１２】
制御部９４９には、ユーザインタフェース部９５０が接続されている。ユーザインタフェース部９５０は、操作スイッチやリモートコントロール信号受信部等で構成されており、ユーザ操作に応じた操作信号を制御部９４９に供給する。
【０２１３】
制御部９４９は、ＣＰＵやメモリ等を用いて構成されている。メモリは、ＣＰＵにより実行されるプログラムやＣＰＵが処理を行う上で必要な各種のデータを記憶する。メモリに記憶されているプログラムは、記録再生装置９４の起動時などの所定タイミングでＣＰＵにより読み出されて実行される。ＣＰＵは、プログラムを実行することで、記録再生装置９４がユーザ操作に応じた動作となるように各部を制御する。
【０２１４】
このように構成された記録再生装置では、エンコーダ９４３に本願の画像符号化装置（画像符号化方法）の機能、デコーダ９４７に画像復号化装置（画像復号化方法）の機能が設けられて、拡張されたマクロブロックが用いられても、拡張されたマクロブロックに対応した画像符号化処理や画像復号化処理を行うことができる。
【０２１５】
図２７は、本技術を適用した撮像装置の概略構成を例示している。撮像装置９６は、被写体を撮像し、被写体の画像を表示部に表示させたり、それを画像データとして、記録媒体に記録する。
【０２１６】
撮像装置９６は、光学ブロック９６１、撮像部９６２、カメラ信号処理部９６３、画像データ処理部９６４、表示部９６５、外部インタフェース部９６６、メモリ部９６７、メディアドライブ９６８、ＯＳＤ部９６９、制御部９７０を有している。また、制御部９７０には、ユーザインタフェース部９７１が接続されている。さらに、画像データ処理部９６４や外部インタフェース部９６６、メモリ部９６７、メディアドライブ９６８、ＯＳＤ部９６９、制御部９７０等は、バス９７２を介して接続されている。
【０２１７】
光学ブロック９６１は、フォーカスレンズや絞り機構等を用いて構成されている。光学ブロック９６１は、被写体の光学像を撮像部９６２の撮像面に結像させる。撮像部９６２は、ＣＣＤまたはＣＭＯＳイメージセンサを用いて構成されており、光電変換によって光学像に応じた電気信号を生成してカメラ信号処理部９６３に供給する。
【０２１８】
カメラ信号処理部９６３は、撮像部９６２から供給された電気信号に対してニー補正やガンマ補正、色補正等の種々のカメラ信号処理を行う。カメラ信号処理部９６３は、カメラ信号処理後の画像データを画像データ処理部９６４に供給する。
【０２１９】
画像データ処理部９６４は、カメラ信号処理部９６３から供給された画像データの符号化処理を行う。画像データ処理部９６４は、符号化処理を行うことにより生成された符号化データを外部インタフェース部９６６やメディアドライブ９６８に供給する。また、画像データ処理部９６４は、外部インタフェース部９６６やメディアドライブ９６８から供給された符号化データの復号化処理を行う。画像データ処理部９６４は、復号化処理を行うことにより生成された画像データを表示部９６５に供給する。また、画像データ処理部９６４は、カメラ信号処理部９６３から供給された画像データを表示部９６５に供給する処理や、ＯＳＤ部９６９から取得した表示用データを、画像データに重畳させて表示部９６５に供給する。
【０２２０】
ＯＳＤ部９６９は、記号、文字、または図形からなるメニュー画面やアイコンなどの表示用データを生成して画像データ処理部９６４に出力する。
【０２２１】
外部インタフェース部９６６は、例えば、ＵＳＢ入出力端子などで構成され、画像の印刷を行う場合に、プリンタと接続される。また、外部インタフェース部９６６には、必要に応じてドライブが接続され、磁気ディスク、光ディスク等のリムーバブルメディアが適宜装着され、それらから読み出されたコンピュータプログラムが、必要に応じて、インストールされる。さらに、外部インタフェース部９６６は、ＬＡＮやインターネット等の所定のネットワークに接続されるネットワークインタフェースを有する。制御部９７０は、例えば、ユーザインタフェース部９７１からの指示にしたがって、メモリ部９６７から符号化データを読み出し、それを外部インタフェース部９６６から、ネットワークを介して接続される他の装置に供給させることができる。また、制御部９７０は、ネットワークを介して他の装置から供給される符号化データや画像データを、外部インタフェース部９６６を介して取得し、それを画像データ処理部９６４に供給したりすることができる。
【０２２２】
メディアドライブ９６８で駆動される記録メディアとしては、例えば、磁気ディスク、光磁気ディスク、光ディスク、または半導体メモリ等の、読み書き可能な任意のリムーバブルメディアが用いられる。また、記録メディアは、リムーバブルメディアとしての種類も任意であり、テープデバイスであってもよいし、ディスクであってもよいし、メモリカードであってもよい。もちろん、非接触ＩＣカード等であってもよい。
【０２２３】
また、メディアドライブ９６８と記録メディアを一体化し、例えば、内蔵型ハードディスクドライブやＳＳＤ（Solid State Drive）等のように、非可搬性の記憶媒体により構成されるようにしてもよい。
【０２２４】
制御部９７０は、ＣＰＵやメモリ等を用いて構成されている。メモリは、ＣＰＵにより実行されるプログラムやＣＰＵが処理を行う上で必要な各種のデータ等を記憶する。メモリに記憶されているプログラムは、撮像装置９６の起動時などの所定タイミングでＣＰＵにより読み出されて実行される。ＣＰＵは、プログラムを実行することで、撮像装置９６がユーザ操作に応じた動作となるように各部を制御する。
【０２２５】
このように構成された撮像装置では、画像データ処理部９６４に本願の画像符号化装置（画像符号化方法）や画像復号化装置（画像復号化方法）の機能が設けられる。したがって、撮像画像をメモリ部９６７や記録メディア等に記録する際に、拡張されたマクロブロックが用いられても、拡張されたマクロブロックに対応した画像符号化処理や画像復号化処理を行うことができる。
【０２２６】
さらに、本技術は、上述した実施の形態に限定して解釈されるべきではない。この実施の形態は、例示という形態で本技術を開示しており、本技術の要旨を逸脱しない範囲で当業者が実施の形態の修正や代用をなし得ることは自明である。すなわち、本技術の要旨を判断するためには、請求の範囲を参酌すべきである。
【０２２７】
また、本技術は以下のような構成も取ることができる。
（１）  画像データを符号化処理する際の符号化処理単位であるブロックのブロックサイズに応じて、動きベクトルの数の上限値を設定する設定部と、
前記ブロックの動きベクトルの数が前記設定部により設定された上限値以下の状態で予測モードを検出し、該検出した予測モードの動きベクトルを用いて参照画像の動き補償を行って、予測画像を生成する動き予測・補償部と、
前記動き予測・補償部により生成された予測画像を用いて、前記画像データを符号化して符号化ストリームを生成する符号化部と
を備える画像処理装置。
（２）  前記設定部は、前記ブロックのブロックサイズが所定サイズよりも大きいサイズである場合、前記上限値を前記所定サイズのブロックにおける上限値よりも大きく設定する（１）に記載の画像処理装置。
（３）  前記設定部は、所定サイズ（Ｎ）のブロックに対する動きベクトル数の上限値がｐであり、前記所定サイズよりも大きなブロックサイズが（Ｎ×ｍ）×（Ｎ×ｎ）画素である場合、前記上限値を（ｐ×ｍ×ｎ）に設定する（２）に記載の画像処理装置。
（４）  前記所定サイズは、１６×１６画素である（２）または（３）に記載の画像処理装置。
（５）  前記所定サイズよりも大きいサイズのブロックは、階層構造を有する符号化単位において最大サイズを有する最大符号化単位である（２）乃至（４）の何れかに記載の画像処理装置。
（６）  前記動き予測・補償部は、前記予測モードを検出する際、動きベクトルの数が前記上限値を超える予測モードを、検出対象となる予測モードの候補から除外する（２）乃至（５）の何れかに記載の画像処理装置。
（７）  前記動き予測・補償部は、前記動きベクトルの数が前記上限値を超えないための制御回数をフレーム毎に監視して、該制御回数が予め設定された所定回数を超えた場合、次のフレームにおけるブロックのブロックサイズを大きく設定する（２）乃至（６）の何れかに記載の画像処理装置。
（８）  前記画像データにおけるシーンチェンジを検出するシーンチェンジ検出部を有し、
前記動き予測・補償部は、前記シーンチェンジ検出部でシーンチェンジが検出された場合、ブロックのブロックサイズを予め設定した所定のサイズに設定する（１）乃至（７）の何れかに記載の画像処理装置。
（９）  前記符号化部は、前記動きベクトルの数にかかわらず最適予測モードを検出して、該検出した最適予測モードの動きベクトルを用いて参照画像の動き補償を行い予測画像を生成する動作モードにおいて、予測モードにおける動きベクトルの数が前記上限値を超える場合は、前記符号化ストリームと、前記動きベクトルの数が上限値を超えていることを示す判別情報とを伝送する（１）乃至（８）の何れかに記載の画像処理装置。
（１０）  前記設定部により上限値が設定されるブロックのブロックサイズを識別するサイズ識別情報を生成する生成部を更に備え、
前記符号化部は、前記符号化ストリームと前記サイズ識別情報とを伝送する（１）乃至（９）の何れかに記載の画像処理装置。
（１１）  画像データを符号化した符号化ストリームを復号化処理する際の復号化処理単位であるブロックのブロックサイズに応じて、動きベクトルの数の上限値を設定する設定部と、
前記ブロックの動きベクトルの数が前記設定部により設定された上限値以下の状態で予測モードを検出し、該検出した予測モードの動きベクトルを用いて参照画像の動き補償を行って、予測画像を生成する動き補償部と、
前記動き補償部により生成された予測画像を用いて、前記符号化ストリームを復号化する復号化部と
を備える画像処理装置。
（１２）  前記設定部は、前記ブロックのブロックサイズが所定サイズよりも大きいサイズである場合、前記上限値を前記所定サイズのブロックにおける上限値よりも大きく設定する（１１）に記載の画像処理装置。
（１３）  前記設定部は、所定サイズ（Ｎ）のブロックに対する動きベクトル数の上限値がｐであり、前記所定サイズよりも大きなブロックサイズが（Ｎ×ｍ）×（Ｎ×ｎ）画素である場合、前記上限値を（ｐ×ｍ×ｎ）に設定する（１２）に記載の画像処理装置。
（１４）  前記所定サイズは、１６×１６画素である（１２）または（１３）に記載の画像処理装置。
（１５）  前記所定サイズよりも大きいサイズのブロックは、階層構造を有する符号化単位において最大サイズを有する最大符号化単位である（１２）乃至（１４）の何れかに記載の画像処理装置。
（１６）  前記動き補償部は、前記予測モードを検出する際、動きベクトルの数が前記上限値を超える予測モードを、検出対象となる予測モードの候補から除外する（１２）乃至（１５）の何れかに記載の画像処理装置。
（１７）  前記動き補償部は、前記動きベクトルの数が前記上限値を超えないための制御回数をフレーム毎に監視して、該制御回数が予め設定された所定回数を超えた場合、次のフレームにおけるブロックのブロックサイズを大きく設定する（１２）乃至（１６）の何れかに記載の画像処理装置。
（１８）  前記画像データにおけるシーンチェンジを検出するシーンチェンジ検出部を有し、
前記動き補償部は、前記シーンチェンジ検出部でシーンチェンジが検出された場合、ブロックのブロックサイズを予め設定した所定のサイズに設定する（１１）乃至（１７）の何れかに記載の画像処理装置。
（１９）  前記復号部は、前記動きベクトルの数にかかわらず最適予測モードを検出して、該検出した最適予測モードの動きベクトルを用いて参照画像の動き補償を行い予測画像を生成する動作モードにおいて、前記符号化ストリームから前記動きベクトルの数が上限値を超えていることを示す判別情報を取得する（１１）乃至（１８）の何れかに記載の画像処理装置。
（２０）  前記復号化部は、上限値が設定されるブロックのブロックサイズを識別するサイズ識別情報を前記符号化ストリームから取得する（１１）乃至（１９）の何れかに記載の画像処理装置。
【産業上の利用可能性】
【０２２８】
この技術の画像処理装置と画像処理方法では、マクロブロックの大きさに応じて動きベクトルの数の上限値が設定される。また、動きベクトルの数が上限値を超えていない最適予測モードが検出されて、検出した最適予測モードの動きベクトルを用いて参照画像の動き補償を行い、予測画像が生成される。このため、拡張された大きさのマクロブロックが用いられた場合に、動きベクトルの数が必要以上に制限されてしまうことがなく、拡張されたマクロブロックに対応した画像処理を行うことができる。【０２２９】
したがって、ブロック単位で符号化を行うことにより得られた画像圧縮情報（ビットストリーム）を、衛星放送、ケーブルＴＶ、インターネット、携帯電話などのネットワークメディアを介して送受信する際に、若しくは光、磁気ディスク、フラッシュメモリのような記憶メディア上で処理する際に用いられる画像符号化装置や画像復号化装置等に適している。
【符号の説明】
【０２３０】
１０，１０ａ・・・画像符号化装置、１１・・・Ａ／Ｄ変換部、１２，５７・・・画面並べ替えバッファ、１３・・・減算部、１４・・・直交変換部、１５・・・量子化部、１６・・・可逆量子化部、１７・・・蓄積バッファ、１８・・・レート制御部、２１，５３・・・逆量子化部、２２，５４・・・逆直交変換部、２３，５５・・・加算部、２４，５６・・・デブロッキングフィルタ、２５・・・フレームメモリ、２９・・・シーンチェンジ検出部、３１・・・イントラ予測部、３２，３２ａ・・・動き予測・補償部、３３・・・予測画像・最適モード選択部、３５６５・・・動きベクトル本数制限設定部、５０・・・画像復号化装置、５１・・・蓄積バッファ、５２・・・可逆復号化部、５８・・・Ｄ／Ａ変換部、６１・・・フレームメモリ、６２・・・イントラ予測部、６３・・・動き補償部、６４・・・セレクタ、９０・・・テレビジョン装置、９２・・・携帯電話機、９４・・・記録再生装置、９６・・・撮像装置、３２１，３２１ａ・・・動き探索部、３２２，３２２ａ・・・モード判定部、３２３，６３４・・・動き補償処理部、３２４・・・動きベクトルバッファ、６３１・・・マイクブロックサイズバッファ、６３２・・・動きベクトル生成部、６３３・・・モードバッファ
【図１】
2012017858.tif 000004
【図２】
2012017858.tif 000005
【図３】
2012017858.tif 000006
【図４】
2012017858.tif 000007
【図５】
2012017858.tif 000008
【図６】
2012017858.tif 000009
【図７】
2012017858.tif 000010
【図８】
2012017858.tif 000011
【図９】
2012017858.tif 000012
【図１０】
2012017858.tif 000013
【図１１】
2012017858.tif 000014
【図１２】
2012017858.tif 000015
【図１３】
2012017858.tif 000016
【図１４】
2012017858.tif 000017
【図１５】
2012017858.tif 000018
【図１６】
2012017858.tif 000019
【図１７】
2012017858.tif 000020
【図１８】
2012017858.tif 000021
【図１９】
2012017858.tif 000022
【図２０】
2012017858.tif 000023
【図２１】
2012017858.tif 000024
【図２２】
2012017858.tif 000025
【図２３】
2012017858.tif 000026
【図２４】
2012017858.tif 000027
【図２５】
2012017858.tif 000028
【図２６】
2012017858.tif 000029
【図２７】
2012017858.tif 000030
【国際調査報告】
2012017858.tif 000031
2012017858.tif 000032
2012017858.tif 000033
2012017858.tif 000034