(57)【要約】【課題】動画像データを復号する際、マクロブロックをグループに分類することによって、効率良く画像を復号する。【解決手段】動きベクトル生成部２３４は、インターマクロブロックの動きベクトルを生成する。インターマクロブロック画素値生成グループ分類部２３５は、インターマクロブロックの参照情報に基づいて、インターマクロブロックの画素値を生成するためのグループ（画素値生成グループ）にインターマクロブロックを分類する。画素値生成部４００は、インターマクロブロックの画素値を、画素値生成グループごとに、そのグループに応じた処理をすることによって生成する。【選択図】図２
2011066638.tif 000002
【特許請求の範囲】
【請求項１】
符号化された画像データを構成するマクロブロックのうちのインターマクロブロックについて前記インターマクロブロックを構成する動きベクトル検出単位ブロックから動きベクトルを生成する動きベクトル生成部と、
前記動きベクトル検出単位ブロックが有する参照情報に基づいて、前記動きベクトルが生成された前記動きベクトル単位ブロックを参照情報に応じた特定処理が可能なグループに分類する動きベクトル検出単位ブロックグループ分類部と、
並列して演算処理することが可能な複数の演算部を備え、同一の前記グループに属する前記動きベクトル検出単位ブロックを同一の演算部に割り当てて前記動きベクトル検出単位ブロックの画像データを前記参照情報に応じた処理により復号する画像データ復号部と、
前記復号された画像データを合成することにより復号画像を生成する復号画像生成部と
を具備する画像復号装置。
【請求項２】
前記参照情報は、前記動きベクトル検出単位ブロックが参照する参照フレームに関する情報であり、
前記動きベクトル検出単位ブロックグループ分類部は、同一のフレームを前記参照フレームとする前記動きベクトル検出単位ブロックを同一のグループに分類する
請求項１記載の画像復号装置。
【請求項３】
前記参照情報は、前記符号化された画像データにおける前記動きベクトル検出単位ブロックの位置情報であり、
前記動きベクトル検出単位ブロックグループ分類部は、互いに隣接する前記動きベクトル検出単位ブロック同士を同一のグループに分類する
請求項１記載の画像復号装置。
【請求項４】
前記参照情報は、前記動きベクトル検出単位ブロックが参照する参照フレームに関する情報および前記符号化された画像データにおける前記動きベクトル検出単位ブロックの位置情報であり、
前記動きベクトル検出単位ブロックグループ分類部は、同一のフレームを前記参照フレームとするとともに互いに隣接する前記動きベクトル検出単位ブロックを同一のグループに分類し、
前記画像データ復号部は、前記動きベクトル検出単位ブロックの画像データを復号する際に前記動きベクトル検出単位ブロックが参照する参照フレームの画素値を前記グループごとに取得し、前記取得された画素値を用いて前記グループごとに前記動きベクトル検出単位ブロックの画像データを復号する請求項１記載の画像復号装置。
【請求項５】
前記参照情報は、前記インターマクロブロックを構成する前記動きベクトル検出単位ブロックのサイズに関する情報であり、
前記動きベクトル検出単位ブロックグループ分類部は、前記動きベクトル検出単位ブロックのサイズが同一である前記インターマクロブロックを同一のグループに分類する
請求項１記載の画像復号装置。
【請求項６】
前記動きベクトルを生成する際における前記インターマクロブロック間の参照関係に基づいて、前記参照関係を有する前記インターマクロブロック同士を同一のグループに分類する動きベクトル生成グループ分類部をさらに具備し、
前記動きベクトル生成部は、前記動きベクトル生成グループ分類部により分類された前記グループごとに前記動きベクトルを生成する
請求項１記載の画像復号装置。
【請求項７】
前記動きベクトルを生成する際における前記インターマクロブロック間の参照関係に基づいて、前記動きベクトルを生成するための順序を決定する動きベクトル生成順序決定部をさらに具備し、
前記動きベクトル生成部は、前記決定された順序に従って前記動きベクトルを生成する
請求項１記載の画像復号装置。
【請求項８】
前記複数の演算部は、前記各参照情報に応じた並列演算処理が可能な専用の演算部により構成され、
前記画像データ復号部は、前記グループに属する前記動きベクトル検出単位ブロックを当該グループに対応する前記参照情報に応じた前記専用の演算部に割り当てて、前記動きベクトル検出単位ブロックの画像データを復号する
請求項１記載の画像復号装置。
【請求項９】
前記画像データ復号部は、前記グループの演算量に従って前記各グループを前記複数の演算部の何れかに割り当てて前記グループごとに並列演算処理を行うことにより前記動きベクトル検出単位ブロックの画像データを復号する請求項１記載の画像復号装置。
【請求項１０】
前記マクロブロックのうちのイントラマクロブロックについて前記イントラマクロブロック間の参照関係に基づいて、前記参照関係を有する前記イントラマクロブロック同士を同一のグループに分類するイントラマクロブロックグループ分類部をさらに具備し、
前記画像データ復号部は、前記イントラマクロブロックグループ分類部により分類された前記グループごとに前記イントラマクロブロックの画像データを復号する
請求項１記載の画像復号装置。
【請求項１１】
前記参照関係に基づいて、前記イントラマクロブロックを復号する際の順序を決定するイントラマクロブロック順序決定部をさらに具備し、
前記画像データ復号部は、前記イントラマクロブロックグループ分類部により分類された前記グループごとに前記イントラマクロブロックの画像データを前記決定された順序に従って復号する
請求項１０記載の画像復号装置。
【請求項１２】
前記イントラマクロブロックを構成するフレーム内予測ブロックのイントラ予測モードを、前記イントラマクロブロックグループ分類部により分類された前記グループごとに決定するイントラ予測モード決定部をさらに具備する請求項１０記載の画像復号装置。
【請求項１３】
前記参照関係に基づいて、前記イントラ予測モードを決定するための順序を決定するイントラ予測モード順序決定部をさらに具備し、
前記イントラ予測モード決定部は、前記イントラマクロブロックグループ分類部により分類された前記グループごとに前記決定された順序に従って前記イントラ予測モードを決定する
請求項１２記載の画像復号装置。
【請求項１４】
前記符号化された画像データは、可変長符号が復号された画像データであり、前記符号化された画像データを当該画像データ単位で保持する中間値保持部をさらに具備し、
前記動きベクトル生成部は、前記符号化された画像データのうちのインターマクロブロックについて前記動きベクトルを生成する
請求項１記載の画像復号装置。
【請求項１５】
符号化された画像データを構成するマクロブロックのうちのイントラマクロブロックについて前記イントラマクロブロック間の参照関係に基づいて、前記参照関係を有する前記イントラマクロブロック同士を同一のグループに分類するイントラマクロブロックグループ分類部と、
並列して演算処理することが可能な複数の演算部を備え、同一の前記グループに属する前記イントラマクロブロックを同一の演算部に割り当てて前記イントラマクロブロックの画像データを復号する画像データ復号部と、
前記復号された画像データを合成することにより復号画像を生成する復号画像生成部と
を具備する画像復号装置。
【請求項１６】
符号化された画像データを構成するマクロブロックのうちのインターマクロブロックについて前記インターマクロブロックを構成する動きベクトル検出単位ブロックの画像データの予測値を生成するインターマクロブロック予測値生成部と、
前記マクロブロックのうちのイントラマクロブロックについて前記イントラマクロブロックを構成するフレーム内予測ブロックの画像データの予測値を生成するイントラマクロブロック予測値生成部と、
前記動きベクトル検出単位ブロックおよび前記フレーム内予測ブロックのそれぞれのサイズに基づいて前記動きベクトル検出単位ブロックおよび前記フレーム内予測ブロックのそれぞれをグループに分類するブロックサイズ分類部と、
前記動きベクトル検出単位ブロックの差分データと、前記フレーム内予測ブロックの差分データとを前記サイズに応じた処理により前記グループごとに生成し、前記動きベクトル検出単位ブロックおよび前記フレーム内予測ブロックのそれぞれについて生成された前記予測値および前記差分データに基づいて前記画像データを復号する画像データ復号部と、
前記復号された画像データを合成することにより復号画像を生成する復号画像生成部と
を具備する画像復号装置。
【請求項１７】
符号化された画像データを構成するマクロブロックのうちのインターマクロブロックについて前記インターマクロブロックを構成する動きベクトル検出単位ブロックから動きベクトルを生成する動きベクトル生成手順と、
前記動きベクトル検出単位ブロックが有する参照情報に基づいて、前記動きベクトルが生成された前記動きベクトル単位ブロックを参照情報に応じた特定処理が可能なグループに分類する動きベクトル検出単位ブロックグループ分類手段と、
同一の前記グループに属する前記動きベクトル検出単位ブロックを、並列して演算処理することが可能な複数の演算部を構成する所定の演算部に割り当てて、前記動きベクトル検出単位ブロックの画像データを前記参照情報に応じた処理により復号する画像データ復号手順と、
前記復号された画像データを合成することにより復号画像を生成する復号画像生成手順と
を具備する画像復号方法。
【請求項１８】
符号化された画像データを構成するマクロブロックのうちのインターマクロブロックについて前記インターマクロブロックを構成する動きベクトル検出単位ブロックから動きベクトルを生成する動きベクトル生成手順と、
前記動きベクトル検出単位ブロックが有する参照情報に基づいて、前記動きベクトルが生成された前記動きベクトル単位ブロックを参照情報に応じた特定処理が可能なグループに分類する動きベクトル検出単位ブロックグループ分類手段と、
同一の前記グループに属する前記動きベクトル検出単位ブロックを、並列して演算処理することが可能な複数の演算部を構成する所定の演算部に割り当てて、前記動きベクトル検出単位ブロックの画像データを前記参照情報に応じた処理により復号する画像データ復号手順と、
前記復号された画像データを合成することにより復号画像を生成する復号画像生成手順と
をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像復号装置に関し、特に動画像データを復号する画像復号装置、および、これらにおける処理方法ならびに当該方法をコンピュータに実行させるプログラムに関する。
【背景技術】
【０００２】
近年、インターネット等のネットワーク技術が向上し、各情報を高速で通信することが可能となるとともに、この通信についての信頼性が向上している。このため、例えば、各種ネットワークを介して動画を配信して表示することが可能なサービスが普及している。
【０００３】
しかしながら、動画像データはデータ量が膨大であり、そのままでは、保存するためには多くの保存領域を必要とし、配信するためには非常に高速の回線を必要とする。このため、動画像データを符号化してデータ量を少なくしてから目的の用途に用いることが行われている。
【０００４】
さらに、近年では、高画質かつ高解像度の画像への需要が高まっており、動画像データのデータ量がさらに膨大している。このため、符号化した動画像データのデータ量も膨大になり、画像を高速に復号する画像復号装置が求められている。
【０００５】
このような画像復号装置として、例えば、マクロブロックの画素値を復号する演算部を複数備え、各マクロブロックを復号する際には、複数のマクロブロックを並列処理する画像復号装置が提案されている（例えば、特許文献１参照。）。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００８−２８３６１２号公報（図５）
【発明の概要】
【発明が解決しようとする課題】
【０００７】
上述の画像復号装置では、マクロブロックの画素値の復号処理が終了する毎に、そのマクロブロックを参照するマクロブロックが復号可能か否か判別することによって、その復号終了後に並列して復号が可能な複数のマクロブロックを検出する。そして、この画像復号装置では、その検出したマクロブロックを演算部にランダムに入力する。このように、マクロブロックを並列に復号することが可能であるため、画像の復号速度を向上させることができる。
【０００８】
ただし、処理対象のマクロブロックの種類は複数存在し、その種類に応じてそのマクロブロックの復号処理の内容が異なる。このため、これらのマクロブロックが演算部にランダムに入力され、同一の演算部において連続して復号処理されるマクロブロックの種類が順次変更されると、その変更毎に復号処理の内容を変更する必要がある。また、マクロブロックごとに復号処理の内容が変更されると、その変更に応じてメモリアクセスの処理も変更する必要がある。ここで、例えば、同一種類のマクロブロックを同一の演算部において連続して復号処理する場合には、参照する画素値のうちの一部を演算部が複数の復号処理に再利用することができる場合がある。しかしながら、マクロブロックを複数の演算部にランダムに入力すると、同一種類のマクロブロックが同一の演算部に連続して入力されず、参照する画素値のうちの一部を演算部が複数の復号処理に再利用することができないおそれがある。このため、マクロブロックを複数の演算部にランダムに入力すると、復号処理の効率が低下するおそれがある。
【０００９】
本発明はこのような状況に鑑みてなされたものであり、動画像データの復号処理の効率を高めることを目的とする。
【課題を解決するための手段】
【００１０】
本発明は、上記課題を解決するためになされたものであり、その第１の側面は、符号化された画像データを構成するマクロブロックのうちのインターマクロブロックについて上記インターマクロブロックを構成する動きベクトル検出単位ブロックから動きベクトルを生成する動きベクトル生成部と、上記動きベクトル検出単位ブロックが有する参照情報に基づいて、上記動きベクトルが生成された上記動きベクトル単位ブロックを参照情報に応じた特定処理が可能なグループに分類する動きベクトル検出単位ブロックグループ分類部と、並列して演算処理することが可能な複数の演算部を備え、同一の上記グループに属する上記動きベクトル検出単位ブロックを同一の演算部に割り当てて上記動きベクトル検出単位ブロックの画像データを上記参照情報に応じた処理により復号する画像データ復号部と、上記復号された画像データを合成することにより復号画像を生成する復号画像生成部とを具備する画像復号装置およびその処理方法ならびに当該方法をコンピュータに実行させるプログラムである。これにより、動きベクトルが生成された動きベクトル検出単位ブロックを参照情報に基づいてグループに分類させ、この分類されたグループごとに参照情報に応じた処理により画素値を復号させるという作用をもたらす。
【００１１】
また、この第１の側面において、上記参照情報は、上記動きベクトル検出単位ブロックが参照する参照フレームに関する情報であり、上記動きベクトル検出単位ブロックグループ分類部は、同一のフレームを上記参照フレームとする上記動きベクトル検出単位ブロックを同一のグループに分類するようにしてもよい。これにより、動きベクトルが生成された動きベクトル検出単位ブロックを動きベクトル検出単位ブロックが参照する参照フレームに基づいてグループに分類させるという作用をもたらす。
【００１２】
また、この第１の側面において、上記参照情報は、上記符号化された画像データにおける上記動きベクトル検出単位ブロックの位置情報であり、上記動きベクトル検出単位ブロックグループ分類部は、互いに隣接する上記動きベクトル検出単位ブロック同士を同一のグループに分類するようにしてもよい。これにより、動きベクトルが生成された動きベクトル検出単位ブロックを動きベクトル検出単位ブロックの位置情報に基づいてグループに分類させるという作用をもたらす。
【００１３】
また、この第１の側面において、上記参照情報は、上記動きベクトル検出単位ブロックが参照する参照フレームに関する情報および上記符号化された画像データにおける上記動きベクトル検出単位ブロックの位置情報であり、上記動きベクトル検出単位ブロックグループ分類部は、同一のフレームを上記参照フレームとするとともに互いに隣接する上記動きベクトル検出単位ブロックを同一のグループに分類し、上記画像データ復号部は、上記動きベクトル検出単位ブロックの画像データを復号する際に上記動きベクトル検出単位ブロックが参照する参照フレームの画素値を上記グループごとに取得し、上記取得された画素値を用いて上記グループごとに上記動きベクトル検出単位ブロックの画像データを復号するようにしてもよい。これにより、動きベクトル検出単位ブロックが参照する参照フレームの画素値をグループごとに取得し、その取得された画素値を用いてグループごとに動きベクトル検出単位ブロックの画像データを復号させるという作用をもたらす。
【００１４】
また、この第１の側面において、上記参照情報は、上記インターマクロブロックを構成する上記動きベクトル検出単位ブロックのサイズに関する情報であり、上記動きベクトル検出単位ブロックグループ分類部は、上記動きベクトル検出単位ブロックのサイズが同一である上記インターマクロブロックを同一のグループに分類するようにしてもよい。これにより、動きベクトル検出単位ブロックのサイズが同一であるインターマクロブロックを同一のグループに分類させるという作用をもたらす。
【００１５】
また、この第１の側面において、上記動きベクトルを生成する際における上記インターマクロブロック間の参照関係に基づいて、上記参照関係を有する上記インターマクロブロック同士を同一のグループに分類する動きベクトル生成グループ分類部をさらに具備し、上記動きベクトル生成部は、上記動きベクトル生成グループ分類部により分類された上記グループごとに上記動きベクトルを生成するようにしてもよい。これにより、動きベクトルを生成する際におけるインターマクロブロック間の参照関係に基づいてインターマクロブロックをグループに分類させ、その分類されたグループごとに動きベクトルを生成させるという作用をもたらす。
【００１６】
また、この第１の側面において、上記動きベクトルを生成する際における上記インターマクロブロック間の参照関係に基づいて、上記動きベクトルを生成するための順序を決定する動きベクトル生成順序決定部をさらに具備し、上記動きベクトル生成部は、上記決定された順序に従って上記動きベクトルを生成するようにしてもよい。これにより、動きベクトルを生成するための順序に従って動きベクトルをグループごとに生成させるという作用をもたらす。
【００１７】
また、この第１の側面において、上記複数の演算部は、上記各参照情報に応じた並列演算処理が可能な専用の演算部により構成され、上記画像データ復号部は、上記グループに属する上記動きベクトル検出単位ブロックを当該グループに対応する上記参照情報に応じた上記専用の演算部に割り当てて、上記動きベクトル検出単位ブロックの画像データを復号するようにしてもよい。これにより、各参照情報に応じた並列演算処理が可能な専用の演算部により画像データを復号させるという作用をもたらす。
【００１８】
また、この第１の側面において、上記画像データ復号部は、上記グループの演算量に従って上記各グループを上記複数の演算部の何れかに割り当てて上記グループごとに並列演算処理を行うことにより上記動きベクトル検出単位ブロックの画像データを復号するようにしてもよい。これにより、グループの演算量に従って各グループを複数の演算部の何れかに割り当てて動きベクトル検出単位ブロックの画像データを復号させるという作用をもたらす。
【００１９】
また、この第１の側面において、上記マクロブロックのうちのイントラマクロブロックについて上記イントラマクロブロック間の参照関係に基づいて、上記参照関係を有する上記イントラマクロブロック同士を同一のグループに分類するイントラマクロブロックグループ分類部をさらに具備し、上記画像データ復号部は、上記イントラマクロブロックグループ分類部により分類された上記グループごとに上記イントラマクロブロックの画像データを復号するようにしてもよい。これにより、イントラマクロブロック間の参照関係に基づいイントラマクロブロックをグループに分類させ、イントラマクロブロックの画像データをグループごとに復号させるという作用をもたらす。この場合において、上記イントラマクロブロックを復号する際の順序を決定するイントラマクロブロック順序決定部をさらに具備し、上記画像データ復号部は、上記イントラマクロブロックグループ分類部により分類された上記グループごとに上記イントラマクロブロックの画像データを上記決定された順序に従って復号するようにしてもよい。これにより、イントラマクロブロックを復号する際の順序に従ってイントラマクロブロックの画像データをグループごとに復号させるという作用をもたらす。この場合において、上記イントラマクロブロックを構成するフレーム内予測ブロックのイントラ予測モードを、上記イントラマクロブロックグループ分類部により分類された上記グループごとに決定するイントラ予測モード決定部をさらに具備するようにしてもよい。これにより、グループごとにイントラ予測モードを決定させるという作用をもたらす。この場合において、上記参照関係に基づいて、上記イントラ予測モードを決定するための順序を決定するイントラ予測モード順序決定部をさらに具備し、上記イントラ予測モード決定部は、上記イントラマクロブロックグループ分類部により分類された上記グループごとに上記決定された順序に従って上記イントラ予測モードを決定するようにしてもよい。これにより、イントラ予測モードを決定するための順序に従ってイントラ予測モードをグループごとに決定させるという作用をもたらす。
【００２０】
また、この第１の側面において、上記符号化された画像データは、可変長符号が復号された画像データであり、上記符号化された画像データを当該画像データ単位で保持する中間値保持部をさらに具備し、上記動きベクトル生成部は、上記符号化された画像データのうちのインターマクロブロックについて上記動きベクトルを生成するようにしてもよい。これにより、中間値保持部により画像データ単位で保持された画像データのインターマクロブロックの動きベクトルを生成させるという作用をもたらす。
【００２１】
また、本発明の第２の側面は、符号化された画像データを構成するマクロブロックのうちのイントラマクロブロックについて上記イントラマクロブロック間の参照関係に基づいて、上記参照関係を有する上記イントラマクロブロック同士を同一のグループに分類するイントラマクロブロックグループ分類部と、並列して演算処理することが可能な複数の演算部を備え、同一の上記グループに属する上記イントラマクロブロックを同一の演算部に割り当てて上記イントラマクロブロックの画像データを復号する画像データ復号部と、上記復号された画像データを合成することにより復号画像を生成する復号画像生成部とを具備する画像復号装置およびその処理方法ならびに当該方法をコンピュータに実行させるプログラムである。これにより、イントラマクロブロック間の参照関係に基づいてイントラマクロブロックをグループに分類させ、この分類されたグループごとにイントラマクロブロックの画像データを復号させるという作用をもたらす。
【００２２】
また、本発明の第３の側面は、符号化された画像データを構成するマクロブロックのうちのインターマクロブロックについて上記インターマクロブロックを構成する動きベクトル検出単位ブロックの画像データの予測値を生成するインターマクロブロック予測値生成部と、上記マクロブロックのうちのイントラマクロブロックについて上記イントラマクロブロックを構成するフレーム内予測ブロックの画像データの予測値を生成するイントラマクロブロック予測値生成部と、上記動きベクトル検出単位ブロックおよび上記フレーム内予測ブロックのそれぞれのサイズに基づいて上記動きベクトル検出単位ブロックおよび上記フレーム内予測ブロックのそれぞれをグループに分類するブロックサイズ分類部と、上記動きベクトル検出単位ブロックの差分データと、上記フレーム内予測ブロックの差分データとを上記サイズに応じた処理により上記グループごとに生成し、上記動きベクトル検出単位ブロックおよび上記フレーム内予測ブロックのそれぞれについて生成された上記予測値および上記差分データに基づいて上記画像データを復号する画像データ復号部と、上記復号された画像データを合成することにより復号画像を生成する復号画像生成部とを具備する画像復号装置およびその処理方法ならびに当該方法をコンピュータに実行させるプログラムである。これにより、動きベクトル検出単位ブロックおよびフレーム内予測ブロックのそれぞれのサイズに基づいて分類されたグループごとに、ベクトル検出単位ブロックの差分データとフレーム内予測ブロックの差分データとを復号させるという作用をもたらす。
【発明の効果】
【００２３】
本発明によれば、効率良く画像を復号することができるという優れた効果を奏し得る。
【図面の簡単な説明】
【００２４】
【図１】本発明の第１の実施の形態における画像復号装置１００の機能構成例を示すブロック図である。
【図２】本発明の第１の実施の形態におけるフレーム復号部２００の機能構成例を示すブロック図である。
【図３】本発明の第１の実施の形態におけるインターマクロブロック分類部２３０の機能構成例を示すブロック図である。
【図４】本発明の第１の実施の形態におけるイントラマクロブロック分類部２４０の機能構成例を示すブロック図である。
【図５】本発明の第１の実施の形態における画像復号装置１００の動作の同期タイミング例を示す模式図である。
【図６】本発明の第１の実施の形態におけるマクロブロック判別部２２０によるマクロブロックの判別例を示す図である。
【図７】本発明の第１の実施の形態における動きベクトル生成順序決定部２３２による動きベクトル生成順序の決定例を示す図である。
【図８】本発明の第１の実施の形態における動きベクトル生成順序決定部２３２によるインターマクロブロック群５２０に対する動きベクトル生成順序の決定例を示す模式図である。
【図９】本発明の第１の実施の形態における動きベクトル生成グループ分類部２３３によるインターマクロブロックの分類例を示す模式図である。
【図１０】本発明の第１の実施の形態における参照先分類部２３６によるインターマクロブロックの分類例を示す模式図である。
【図１１】本発明の第１の実施の形態における位置分類部２３７によるインターマクロブロックの分類例を示す図である。
【図１２】本発明の第１の実施の形態におけるイントラマクロブロック順序決定部２４２によるイントラマクロブロック群５６０に対するイントラ予測モードおよび画素値の生成順序の決定例を示す模式図である。
【図１３】本発明の第１の実施の形態におけるイントラマクロブロックグループ分類部２４３によるイントラマクロブロックの分類例を示す模式図である。
【図１４】本発明の第１の実施の形態における画素値生成部４００の機能構成例を示すブロック図である。
【図１５】本発明の第１の実施の形態における第１読み出し対象領域バッファ４２１乃至第４読み出し対象領域バッファ４２４が保持する画素値の一例を示す模式図である。
【図１６】本発明の第１の実施の形態における画素値生成部４００のグループ演算例を示す模式図である。
【図１７】本発明の第１の実施の形態における画像復号装置１００による画像復号処理の処理手順例を示すフローチャートである。
【図１８】本発明の第１の実施の形態における画素値生成グループ生成処理（ステップＳ９１０）の処理手順例を示すフローチャートである。
【図１９】本発明の第１の実施の形態におけるイントラマクロブロック順序決定処理（ステップＳ９２０）の処理手順例を示すフローチャートである。
【図２０】本発明の第１の実施の形態における画素値生成処理（ステップＳ９４０）の処理手順例を示すフローチャートである。
【図２１】本発明の第２の実施の形態における画素値生成部６００の機能構成例を示すブロック図である。
【図２２】本発明の第２の実施の形態における画素値生成部６００による画像復号処理の処理手順を示すフローチャートである。
【図２３】本発明の第３の実施の形態における画素値生成部７００の機能構成例を示すブロック図である。
【図２４】本発明の第３の実施の形態における画素値生成部７００による画像復号処理（ステップＳ９６０）の処理手順を示すフローチャートである。
【図２５】本発明の第４の実施の形態における動き補償ブロック分類部８００の機能構成例を示すブロック図である。
【図２６】本発明の第４の実施の形態における動き補償ブロックグループ分類部８１０によるインターマクロブロックの分類例を示す図である。
【図２７】本発明の第４の実施の形態における画素値生成部８３０の機能構成例を示すブロック図である。
【発明を実施するための形態】
【００２５】
以下、本発明を実施するための形態（以下、実施の形態と称する）について説明する。説明は以下の順序により行う。
１．第１の実施の形態（画像復号制御：マクロブロック単位でグループに分類して、汎用の演算部を備える画素値生成部で画素値を生成する例）
２．第２の実施の形態（画像復号制御：マクロブロック単位でグループに分類して、専用の演算部を備える画素値生成部で画素値を生成する例）
３．第３の実施の形態（画像復号制御：動き補償ブロック単位およびイントラ予測ブロック単位でグループにさらに分類する画素値生成部の例）
４．第４の実施の形態（画像復号制御：動き補償ブロック単位でグループに分類するインターマクロブロック分類部の例）
【００２６】
＜１．第１の実施の形態＞
［画像復号装置の機能構成例］
図１は、本発明の第１の実施の形態における画像復号装置１００の機能構成例を示すブロック図である。この画像復号装置１００は、ビットストリーム入力部１１０と、可変長復号部１２０と、フレーム復号部２００と、フィルタ処理部１４０と、フレームバッファ１５０と、画像出力部１６０とを備える。
【００２７】
なお、本発明の第１の実施の形態では、復号化の対象となる動画像データは、Ｈ.２６４／ＡＶＣ規格により符号化された動画像データを想定する。また、フレーム間予測において符号化対象となるブロック（動き補償ブロック）は、便宜上、１６×１６画素の一種類のみとし、マクロブロック（ＭＢ）と同じものとする。なお、これ以降の説明では、このフレーム間予測において符号化対象となるブロックにより構成されるマクロブロックをインターマクロブロックと表現することとする。なお、動き補償ブロックは、特許請求の範囲に記載の動きベクトル検出単位ブロックの一例である。
【００２８】
また、フレーム内予測において符号化対象となるブロック（フレーム内予測ブロック）は、便宜上、１６×１６画素の一種類のみとし、マクロブロックと同じものとする。なお、これ以降の説明では、このフレーム内予測において符号化対象となるブロックにより構成されるマクロブロックをイントラマクロブロックと表現することとする。
【００２９】
また、本発明の第１の実施の形態では、フレーム間予測およびフレーム内予測を用いて画素値を符号化するのか、フレーム内予測のみで画素値を符号化するのかの指定は、フレーム単位で指定することを想定する。また、特に指定が無い場合には、復号するフレームは、フレーム間予測およびフレーム内予測を用いて画素値が符号化されたＰ（Predicted）フレームであることを想定する。
【００３０】
ビットストリーム入力部１１０は、符号化されたビットストリーム（動画像データ）を画像復号装置１００の外部から入力するものであり、その入力されたビットストリームを可変長復号部１２０に供給する。このビットストリーム入力部１１０は、例えば、入力されたビットストリームを一時的に保持し、画像復号装置１００における画像の復号処理速度に応じて、その保持されたビットストリームを可変長復号部１２０に順次供給する。
【００３１】
可変長復号部１２０は、可変長符号化されたビットストリームについて、可変長に符号化されたデータに復号処理を施して、可変長に符号化される前の固定長の符号化された動画像データを生成するものである。そして、可変長復号部１２０は、生成された固定長の動画像データをフレーム復号部２００に供給する。
【００３２】
フレーム復号部２００は、可変長復号部１２０から供給された固定長の動画像データ（可変長符号が復号された動画像データ）についてフレームごとに復号処理を行うものである。このフレーム復号部２００は、１フレームを構成する各マクロブロックをグループに分類し、その分類されたグループごとにそのグループに応じた演算処理により画素値を復号する。そして、このフレーム復号部２００は、そのグループごとに復号された画素値を合成することによってフレーム（復号画像）を生成し、その生成したフレームをフィルタ処理部１４０に供給する。なお、フレーム復号部２００の内部構成については、図２を参照して詳細に説明する。
【００３３】
フィルタ処理部１４０は、フレーム復号部２００から供給されたフレームに対してフィルタ処理を行うものである。このフィルタ処理部１４０は、例えば、フレームの復号時に生じたブロック歪を減少させるために、フレーム復号部２００から供給されたフレームに対してデブロッキングフィルタを用いてフィルタ処理を行う。このフィルタ処理部１４０は、そのフィルタ処理したフレームをフレームバッファ１５０に供給する。
【００３４】
フレームバッファ１５０は、フィルタ処理された複数のフレームを一時的に保持するものである。このフレームバッファ１５０は、フレーム復号部２００において他のフレームの画素値を参照するインターマクロブロックが復号される場合には、その参照される画素値を、信号線１５１を介してフレーム復号部２００に供給する。また、このフレームバッファ１５０は、保持されているフレームを画像出力部１６０に順次供給する。
【００３５】
画像出力部１６０は、フレームバッファ１５０に保持されているフレームを取り出し、取り出されたフレームを表示装置（図示せず）に順次出力するものである。また、この画像出力部１６０は、取り出したフレームを動画像として表示させる順序およびフレーム間隔に整列させて表示装置に出力する。これにより、画像出力部１６０に供給されたフレームが、例えば、動画像として表示装置に表示される。
【００３６】
［フレーム復号部の機能構成例］
図２は、本発明の第１の実施の形態におけるフレーム復号部２００の機能構成例を示すブロック図である。このフレーム復号部２００は、固定長データバッファ２１０と、マクロブロック判別部２２０と、インターマクロブロック分類部２３０と、イントラマクロブロック分類部２４０と、画素値生成部４００と、フレーム合成部２６０とを備える。
【００３７】
固定長データバッファ２１０は、可変長復号部１２０から供給された固定長の動画像データ（可変長符号が復号された動画像データ）を一時的に保持するものである。この固定長データバッファ２１０は、例えば、その固定長の動画像データをフレーム単位で保持する。また、この固定長データバッファ２１０は、例えば、保持するデータの量を削減するため、マクロブロックごとの非ゼロ係数およびＲＵＮ値を離散コサイン変換（ＤＣＴ：Discrete Cosine Transform）係数に復元しないでそのまま保持する。この固定長データバッファ２１０は、その保持した固定長の動画像データをマクロブロック判別部２２０に供給する。なお、固定長データバッファ２１０は、特許請求の範囲に記載の中間値保持部の一例である。
【００３８】
マクロブロック判別部２２０は、固定長データバッファ２１０から供給された動画像データをマクロブロック単位で解析して、その解析したマクロブロックがインターマクロブロックであるか、イントラマクロブロックであるかを判別するものである。このマクロブロック判別部２２０は、例えば、動画像データを構成するフレームごとにマクロブロックを解析する。このマクロブロック判別部２２０は、マクロブロックがインターマクロブロックと判定された場合には、その判定されたインターマクロブロックのインターマクロブロック情報を、信号線２２３を介してインターマクロブロック分類部２３０に供給する。ここで、インターマクロブロック情報とは、固定長の動画像データにおけるインターマクロブロックごとの符号化されたデータである。
【００３９】
また、このマクロブロック判別部２２０は、マクロブロックがイントラマクロブロックと判定された場合には、その判定されたイントラマクロブロックのイントラマクロブロック情報を、信号線２２４を介してイントラマクロブロック分類部２４０に供給する。ここで、インターマクロブロック情報とは、固定長の動画像データにおけるイントラマクロブロックごとの符号化されたデータである。
【００４０】
インターマクロブロック分類部２３０は、マクロブロック判別部２２０により判別されたインターマクロブロックを、画素値を生成するためのグループ（インターマクロブロックの画素値生成グループ）に分類するものである。このインターマクロブロック分類部２３０は、インターマクロブロックの画素値を復号する際に必要な参照情報に基づいてインターマクロブロックをグループに分類する。ここで、参照情報とは、インターマクロブロックの画素値を生成する際に参照されるインターマクロブロックの情報である。この参照情報は、例えば、参照フレーム情報、インターマクロブロックの位置、動き補償ブロックの情報である。ここで、参照フレーム情報とは、インターマクロブロックの画素値を生成するために参照する画素値が含まれるフレームに関する情報である。また、インターマクロブロックの画素値生成グループとは、インターマクロブロックの画素値を復号する際に、特定の共通点を有する複数のインターマクロブロックを連続して復号させることにより画素値の復号の効率を向上させるためのグループである。
【００４１】
このインターマクロブロック分類部２３０は、例えば、フレームを構成するインターマクロブロックが参照する参照フレームごとのグループにインターマクロブロックを分類する。このインターマクロブロック分類部２３０は、例えば、フレームを構成する全てのインターマクロブロックをグループに分類する。そして、インターマクロブロック分類部２３０は、その生成したグループに関するグループ情報が付与されたインターマクロブロック情報を、信号線４０８を介して画素値生成部４００にグループごとに供給する。なお、インターマクロブロック分類部２３０の内部構成については、図３を参照して詳細に説明する。なお、画素値生成グループは、特許請求の範囲に記載の動きベクトル検出単位ブロックグループ分類部が生成するグループの一例である。
【００４２】
イントラマクロブロック分類部２４０は、マクロブロック判別部２２０により判別されたイントラマクロブロックを、画素値を生成するためのグループ（イントラマクロブロックの画素値生成グループ）に分類するものである。このイントラマクロブロック分類部２４０は、イントラマクロブロックのイントラ予測モードを生成する際に必要なイントラマクロブロックの参照情報に基づいてイントラマクロブロックをグループに分類する。ここで、イントラ予測モードとは、イントラマクロブロックの画素値を復号する際に、隣接イントラマクロブロックの画素値から画素値を復号するためにフレーム内予測の予測方向を定めるものである。また、イントラマクロブロックの画素値生成グループとは、イントラマクロブロックの画素値を復号する際に、参照関係が依存しないイントラマクロブロックを並列して復号させることにより画素値の復号の効率を向上させるためのグループである。ここで、参照関係の依存関係とは、２つのイントラマクロブロックの画素値を復号する場合において、一方のイントラマクロブロックの画素値を復号するためには、他方のイントラマクロブロックの画素値を復号する必要がある関係を意味する。このイントラマクロブロック分類部２４０は、例えば、イントラ予測モード生成における参照関係の依存関係を有するイントラマクロブロック同士を同一のグループに分類する。このイントラマクロブロック分類部２４０は、例えば、フレームを構成する全てのイントラマクロブロックをグループに分類する。そして、イントラマクロブロック分類部２４０は、その生成したグループに関するグループ情報が付与されたイントラマクロブロック情報を、信号線４０９を介して画素値生成部４００に供給する。なお、イントラマクロブロック分類部２４０の内部構成については、図４を参照して詳細に説明する。
【００４３】
画素値生成部４００は、インターマクロブロックおよびイントラマクロブロックの画素値を、画素値生成グループごとに、そのグループに応じた処理をすることによって生成するものである。この画素値生成部４００は、例えば、インターマクロブロックの画素値を、信号線１５１を介して供給された参照フレームの画素値を用いて、インターマクロブロック分類部２３０において生成されたグループごとに生成する。すなわち、この画素値生成部４００は、複数の演算部を備える場合には、同一のグループに属するインターマクロブロックを同一の演算部に割り当てて参照情報に応じた処理によりインターマクロブロックの画素値を復号する。また、この画素値生成部４００は、例えば、イントラマクロブロックの画素値を、イントラマクロブロック分類部２４０において生成されたグループごとに生成する。すなわち、この画素値生成部４００は、複数の演算部を備える場合には、同一のグループに属するイントラマクロブロックを同一の演算部に割り当ててイントラマクロブロックの画素値を復号する。この画素値生成部４００は、生成したグループごとの画素値を、信号線４０１を介してフレーム合成部２６０に供給する。なお、画素値生成部４００の内部構成については、図１４を参照して詳細に説明する。なお、画素値生成部４００は、特許請求の範囲に記載の画像データ復号部の一例である。
【００４４】
フレーム合成部２６０は、グループごとに生成された画素値を合成することによってフレーム（復号画像）を生成するものであり、合成したフレームを、フィルタ処理部１４０に供給する。なお、フレーム合成部２６０は、特許請求の範囲に記載の復号画像生成部の一例である。
【００４５】
なお、ここでは、インターマクロブロック分類部２３０およびイントラマクロブロック分類部２４０はフレームごとのマクロブロックをグループに分類したが、これに限定されるものではない。例えば、Ｈ．２６４／ＡＶＣ規格では、フレームを複数のスライスに分割し、このスライス単位で画素値の符号化のモードを指定することができる。このため、フレームのスライス単位で符号化のモードが変わる場合には、インターマクロブロック分類部２３０およびイントラマクロブロック分類部２４０は、スライスごとにマクロブロックをグループに分類するようにしてもよい。
【００４６】
［インターマクロブロック分類部の機能構成例］
図３は、本発明の第１の実施の形態におけるインターマクロブロック分類部２３０の機能構成例を示すブロック図である。このインターマクロブロック分類部２３０は、インターマクロブロックバッファ２３１と、動きベクトル生成順序決定部２３２と、動きベクトル生成グループ分類部２３３とを備える。また、このインターマクロブロック分類部２３０は、動きベクトル生成部２３４と、インターマクロブロック画素値生成グループ分類部２３５とを備える。
【００４７】
インターマクロブロックバッファ２３１は、マクロブロック判別部２２０により判別されたインターマクロブロックを一時的に保持するものである。このインターマクロブロックバッファ２３１は、例えば、Ｐフレームのマクロブロックを保持する場合には、１フレームを構成するマクロブロックのうち、インターマクロブロックに関するインターマクロブロック情報を全て保持する。このインターマクロブロックバッファ２３１は、その保持した１または複数のインターマクロブロックに関するインターマクロブロック情報を動きベクトル生成順序決定部２３２に供給する。
【００４８】
動きベクトル生成順序決定部２３２は、インターマクロブロックの動きベクトルを生成する際の参照関係を解析し、その解析結果に基づいて動きベクトルを生成するための順序（動きベクトル生成順序）を決定するものである。この動きベクトル生成順序決定部２３２は、動きベクトル生成順序が付与されたインターマクロブロック情報を動きベクトル生成グループ分類部２３３に供給する。ここで、動きベクトル生成順序は、例えば、動きベクトルの生成対象となるインターマクロブロック（現インターマクロブロック）を参照するインターマクロブロック（参照インターマクロブロック）を次の動きベクトル生成対象とすることにより決定される。なお、この順序決定方法については、図８乃至図１１を参照して詳細に説明する。
【００４９】
このように、動きベクトルを生成する前に、動きベクトルを生成するための順序を決定する。これにより、動きベクトルを生成可能な順にランダムに生成する場合またはラスター順に生成する場合と比較して、参照インターマクロブロックの動きベクトルへのメモリアクセスの効率を高めることができる。
【００５０】
動きベクトル生成グループ分類部２３３は、インターマクロブロックを、複数の演算装置で並列して動きベクトルを生成するためのグループ（動きベクトル生成グループ）に分類するものである。この動きベクトル生成グループ分類部２３３は、例えば、動きベクトル生成順序決定部２３２が検出したインターマイクロブロック間の参照関係の切れ目を示す切れ目情報（境界情報）を用いて動きベクトル生成グループを生成する。すなわち、この動きベクトル生成グループ分類部２３３は、参照関係を有するインターマクロブロック同士を同一のグループに分類する。この動きベクトル生成グループ分類部２３３は、動きベクトル生成順序および動きベクトル生成グループの情報が付与されたインターマクロブロック情報を動きベクトル生成部２３４に供給する。
【００５１】
動きベクトル生成部２３４は、インターマイクロブロックの動きベクトルを生成するものである。この動きベクトル生成部２３４は、例えば、動きベクトルの生成対象である現インターマクロブロックが参照する隣接インターマクロブロックの動きベクトルの中間値から予測ベクトルを生成する。そして、この動きベクトル生成部２３４は、現インターマクロブロックの動きベクトルの差分ベクトルと、その生成された予測ベクトルとに基づいて現インターマクロブロックの動きベクトルを生成する。ここで差分ベクトルは、可変長復号部１２０により復号された固定長の動画像データを構成する各動き補償ブロックに含まれるものである。
【００５２】
この動きベクトル生成部２３４は、動きベクトル生成順序決定部２３２が決定した動きベクトル生成順序に従って、動きベクトル生成グループ分類部２３３により分類されたグループごとに動きベクトルを生成する。この動きベクトル生成部２３４は、動きベクトルが付与されたインターマクロブロック情報をインターマクロブロック画素値生成グループ分類部２３５に供給する。
【００５３】
インターマクロブロック画素値生成グループ分類部２３５は、インターマクロブロックの参照情報に基づいて、インターマクロブロックの画素値を生成するためのグループ（画素値生成グループ）にインターマクロブロックを分類するものである。このインターマクロブロック画素値生成グループ分類部２３５は、動きベクトルが生成されたインターマクロブロックをグループに分類する。このインターマクロブロック画素値生成グループ分類部２３５は、参照先分類部２３６および位置分類部２３７を備える。なお、インターマクロブロック画素値生成グループ分類部２３５は、特許請求の範囲に記載の動きベクトル検出単位ブロックグループ分類部の一例である。
【００５４】
参照先分類部２３６は、インターマクロブロックが参照する参照フレームに基づいてインターマクロブロックを分類するものである。この参照先分類部２３６は、例えば、フレームを構成するインターマクロブロックが参照する参照フレームが３枚である場合には、参照フレームに基づく分類をすることによって３つのグループを生成する。すなわち、この参照先分類部２３６は、同一のフレームを参照フレームとするインターマクロブロックを同一のグループに分類する。この参照先分類部２３６は、参照フレームに基づくグループ情報が付与されたインターマクロブロック情報を位置分類部２３７にグループ単位で供給する。
【００５５】
位置分類部２３７は、インターマクロブロックの現フレームにおける位置に基づいて、参照フレームに基づく分類がされたインターマクロブロックをさらに分類するものである。この位置分類部２３７は、例えば、動きベクトル生成順序決定部２３２と同様の処理により隣接するインターマクロブロックを検出することによって、インターマクロブロックをグループに分類する。すなわち、この位置分類部２３７は、互いに隣接するインターマクロブロック同士を同一のグループに分類する。また、この際に、この位置分類部２３７は、インターマクロブロックの画素値を生成する順序（画素値生成順序）を決定する。これにより、画素値を生成する際のメモリアクセスの効率を向上させることができる。
【００５６】
この位置分類部２３７は、位置情報に基づくグループ情報および参照フレームに基づくグループ情報が付与されたインターマクロブロック情報を画素値生成部４００にグループ単位で供給する。なお、この位置情報とは、現フレームに対応する画面上における位置を示す情報である。
【００５７】
なお、ここでは、インターマクロブロック分類部２３０はフレーム単位でマクロブロックをグループに分類したが、これに限定されるものではない。例えば、フレームのスライス単位で符号化のモードが変わる場合には、インターマクロブロック分類部２３０はスライス単位でマクロブロックをグループに分類するようにしてもよい。例えば、インターマクロブロックバッファ２３１は、スライスのインターマクロブロックを全て保持する。そして、動きベクトル生成順序決定部２３２はそのスライスのインターマクロブロックの動きベクトル生成順序を決定し、動きベクトル生成グループ分類部２３３は、動きベクトル生成グループにそのスライスのインターマクロブロックを分類する。そして、動きベクトル生成部２３４は、動きベクトル生成順序および動きベクトル生成グループ情報に基づいてそのスライスのインターマクロブロックの動きベクトルを生成する。
【００５８】
また、このスライス単位のインターマクロブロックの動きベクトルを生成する場合において、インターマクロブロック画素値生成グループ分類部２３５は、画素値を生成するためのグループをスライス単位で生成してもフレーム単位で生成してもよい。インターマクロブロック間の参照関係は、動きベクトル生成部２３４において動きベクトルを生成することによって解消されている。そのため、インターマクロブロック画素値生成グループ分類部２３５は、動きベクトルを生成する際のグループとは無関係にインターマクロブロックを画素値を生成するためのグループに分類することができる。これにより、このインターマクロブロック画素値生成グループ分類部２３５は、動きベクトルを生成した際のスライスが構成するフレームのインターマクロブロックをグループにフレーム単位で分類することもできる。
【００５９】
なお、ここでは、インターマクロブロック画素値生成グループ分類部２３５はインターマクロブロック単位でグループに分類したが、これに限定されるものではない。例えば、ＭＰＥＧ−４およびＨ．２６４／ＡＶＣでは、複数の動き補償ブロックにより構成されるインターマクロブロックを用いることができる。このインターマクロブロックを構成する複数の動き補償ブロックは、それぞれが個別に参照フレームを指定することができる。この場合においては、インターマクロブロック単位ではなく動き補償ブロックを単位として分類することにより、参照フレームに基づいてグループに分類する。すなわち、参照先分類部２３６は、動き補償ブロックの参照フレームに基づいて動き補償ブロックをグループに分類する。そして、位置分類部２３７は、隣接する動き補償ブロックを検出することによって、動き補償ブロックをグループに分類する。
【００６０】
なお、ここでは、インターマクロブロック間の参照関係を有する動きベクトルを生成する際のグループと、その参照関係を有しない画素値を生成する際のグループとの両方を生成するインターマクロブロック分類部２３０の構成例について説明した。しかしながら、グループ分けはこれに限定されるものではない。一方のグループ分けのみでも画素値の生成の効率を向上させることができる。
【００６１】
［イントラマクロブロック分類部の機能構成例］
図４は、本発明の第１の実施の形態におけるイントラマクロブロック分類部２４０の機能構成例を示すブロック図である。このイントラマクロブロック分類部２４０は、イントラマクロブロックバッファ２４１と、イントラマクロブロック順序決定部２４２と、イントラマクロブロックグループ分類部２４３と、イントラ予測モード決定部２４４とを備える。
【００６２】
イントラマクロブロックバッファ２４１は、マクロブロック判別部２２０により判別されたイントラマクロブロックを一時的に保持するものである。このイントラマクロブロックバッファ２４１は、例えば、Ｐフレームのマクロブロックを保持する場合には、１フレームを構成するマクロブロックのうち、イントラマクロブロックに関するイントラマクロブロック情報を全て保持する。このイントラマクロブロックバッファ２４１は、その保持した１または複数のイントラマクロブロックに関するイントラマクロブロック情報をイントラマクロブロック順序決定部２４２に供給する。
【００６３】
イントラマクロブロック順序決定部２４２は、イントラマクロブロックのイントラ予測モードを生成する際の参照関係を解析し、その解析結果に基づいてイントラ予測モードおよび画素値の生成順序（イントラマクロブロック生成順序）を決定するものである。このイントラマクロブロック順序決定部２４２は、イントラマクロブロック生成順序が付与されたイントラマクロブロック情報をイントラマクロブロックグループ分類部２４３に供給する。このイントラマクロブロック生成順序は、イントラ予測モードを決定する対象となるイントラマクロブロック（現イントラマクロブロック）を参照するイントラマクロブロック（参照イントラマクロブロック）を次の決定対象とすることにより決定される。
【００６４】
なお、この順序決定方法については、動きベクトルを生成するための順序を決定する方法と同様であり、図８乃至図１１を参照して詳細に説明する。このように、イントラ予測モードの生成順序を決定することにより、イントラ予測モードを決定可能な順にランダムに決定する場合やラスター順に決定する場合と比べて、参照されるイントラマクロブロックの情報へのメモリアクセスの効率を改善することができる。また、イントラ予測モードと同様に、画素値の生成順序を決定することにより、画素値を生成する際に参照されるイントラマクロブロックの情報へのメモリアクセスの効率を改善することができる。なお、イントラマクロブロック順序決定部２４２は、特許請求の範囲に記載のイントラマクロブロック順序決定部およびイントラ予測モード順序決定部の一例である。
【００６５】
イントラマクロブロックグループ分類部２４３は、イントラマクロブロックを、イントラ予測モードおよび画素値の生成の際に複数の演算装置で並列して生成するためのグループ（イントラマクロブロック生成グループ）に分類するものである。このイントラマクロブロックグループ分類部２４３は、例えば、イントラマクロブロック順序決定部２４２が検出したイントラマクロブロック間の参照関係の切れ目を示す切れ目情報（境界情報）を用いてイントラマクロブロック生成グループを生成する。すなわち、このイントラマクロブロックグループ分類部２４３は、参照関係を有するイントラマクロブロック同士を同一のグループに分類する。このイントラマクロブロックグループ分類部２４３は、イントラマクロブロック生成順序およびイントラマクロブロック生成グループの情報が付与されたイントラマクロブロック情報をイントラ予測モード決定部２４４に供給する。なお、イントラマクロブロックグループ分類部２４３は、特許請求の範囲に記載のイントラマクロブロックグループ分類部の一例である。
【００６６】
イントラ予測モード決定部２４４は、イントラマクロブロックのイントラ予測モードをイントラマクロブロック生成グループごとにイントラマクロブロック生成順序に従って決定するものである。このイントラ予測モード決定部２４４は、例えば、イントラ予測モードの生成対象である現イントラマクロブロックが参照するイントラマクロブロックの予測モードから現イントラマクロブロックのイントラ予測モードを予測する。そして、このイントラ予測モード決定部２４４は、予測したイントラ予測モードが適切であるか否かを、現イントラマクロブロックのイントラマクロブロック情報におけるイントラ予測モードの予測に関する情報に基づいて解析する。このイントラ予測モード決定部２４４は、予測したイントラ予測モードが不適切である場合には、イントラマクロブロック情報におけるイントラ予測モードに関する情報に基づいて適切なイントラ予測モードを決定する。
【００６７】
このイントラ予測モード決定部２４４は、生成した予測モード、インターマクロブロック生成順序およびインターマクロブロック生成グループの情報が付与されたインターマクロブロック情報を画素値生成部４００に供給する。なお、イントラ予測モード決定部２４４は、特許請求の範囲に記載のイントラ予測モード決定部の一例である。
【００６８】
［画像復号処理における同期タイミング例］
図５は、本発明の第１の実施の形態における画像復号装置１００の動作の同期タイミング例を示す模式図である。この図５では、インターマクロブロックに対する処理とイントラマクロブロックに対する処理との間における同期タイミングを示している。
【００６９】
可変長復号処理１７１は、可変長に符号化される前の固定長に符号化された動画像データを生成する処理（可変長復号部１２０における処理）である。続いて、マクロブロック判別処理１７２は、マクロブロック判別部２２０におけるインターマクロブロックとイントラマクロブロックとを判別する処理である。
【００７０】
インターマクロブロック保持処理１７３は、インターマクロブロックを一時的に保持する処理（インターマクロブロックバッファ２３１における処理）である。また、イントラマクロブロック保持処理１７４は、イントラマクロブロックを一時的に保持する処理（イントラマクロブロックバッファ２４１における処理）である。
【００７１】
そして、動きベクトル生成処理１７５は、動きベクトルを生成する処理（動きベクトル生成部２３４における処理）である。また、イントラ予測モード決定処理１７６は、イントラ予測モードを決定する処理（イントラ予測モード決定部２４４における処理）である。
【００７２】
そして、画素値生成処理１７７は、画素値を復号する処理（画素値生成部４００における処理）であり、フレーム合成処理１７８は、フレームを合成する処理（フレーム合成部２６０における処理）である。
【００７３】
この図５には、インターマクロブロックに対する処理と、イントラマクロブロックに対する処理との間において同期を取るタイミングが破線（同期１８１および１８２）により示されている。
【００７４】
まず１回目の同期１８１を取るタイミングは、インターマクロブロック保持処理１７３およびイントラマクロブロック保持処理１７４において、マクロブロックを保持するタイミングで行われる。インターマクロブロックとイントラマクロブロックとの間には、画素値を生成する際に必要となる参照関係は無い。しかしながら、インターマクロブロック間における参照関係はインターマクロブロックの動きベクトルを生成するために必要であり、イントラマクロブロック間における参照関係はイントラ予測モードの決定および画素値の生成のために必要である。
【００７５】
そのため、インターマクロブロック保持処理１７３およびイントラマクロブロック保持処理１７４において、フレームの全てのマクロブロックが保持されるように同期を取る。
【００７６】
次の同期１８２を取るタイミングは、フレーム合成処理１７８によりフレームを合成するタイミングで行われる。画素値生成処理１７７では、画素値はグループごとに復号される。このため、グループに分類されたマクロブロックを集合させてフレームとして画素値を配置する必要がある。そのため。画素値生成処理１７７を終了した直後に行われるフレーム合成処理１７８において、インターマクロブロックに対する処理とイントラマクロブロックに対する処理との間における同期を取り、フレームを合成する。
【００７７】
なお、インターマクロブロックの処理に関しては、動きベクトル生成処理の後に画素値を生成するためのグループを生成するため、動きベクトル生成処理１７５の後に画素値を生成するためのグループを生成するための同期を取るようにしてもよい。
【００７８】
［マクロブロック判別部によるマクロブロックの判別例］
図６は、本発明の第１の実施の形態におけるマクロブロック判別部２２０によるマクロブロックの判別例を示す図である。なお、ここでは、フレームを構成するインターマクロブロックが参照する参照フレームが３枚である場合を例にして説明する。
【００７９】
図６（ａ）は、復号対象となるフレーム（現フレーム５１０）を示す模式図である。
【００８０】
現フレーム５１０は、マクロブロック判別部２２０による分類処理がされる前のフレームである。図６（ａ）では、説明の容易のため、１００個のマクロブロックにより現フレーム５１０を構成する例を示す。また、これらの各マクロブロックを表す矩形内には、識別情報（１乃至１００の番号）を付して示す。なお、左上から右下への斜線が内部に付された矩形（例えば、１、４）、複数のドットが内部に付された矩形（例えば、１５乃至１６）および右上から左下への斜線が内部に付された矩形（例えば、２、３）は、インターマクロブロックを示す。このインターマクロブロックを示す矩形内の模様の違いは、参照フレームの違いを示す。左上から右下への斜線が付されたインターマクロブロックはフレームＡを参照し、複数のドットが付されたインターマクロブロックはフレームＢを参照し、右上から左下への斜線が付されたインターマクロブロックはフレームＣを参照するものとする。
【００８１】
また、内部を白地とする矩形（例えば、６乃至１０）は、イントラマクロブロックを示す。
【００８２】
例えば、マクロブロック判別部２２０は、現フレーム５１０を構成する各マクロブロック（１乃至１００）のタイプを判別し、インターマクロブロックとイントラマクロブロックとに分類する。
【００８３】
図６（ｂ）は、現フレーム５１０を構成するマクロブロックのうち、マクロブロック判別部２２０によりインターマクロブロックと判別されたマクロブロックの集合（インターマクロブロック群５２０）を示す模式図である。
【００８４】
このインターマクロブロック群５２０は、インターマクロブロック間の参照関係を有しているインターマクロブロックの集合であり、各インターマクロブロックは、隣接インターマクロブロックを参照できるように復号する必要がある。そのため、マクロブロック判別部２２０は、現フレーム５１０の全てのインターマクロブロックを判別して、その判別したインターマクロブロックのインターマクロブロック情報をインターマクロブロックバッファ２３１に保持させる。
【００８５】
図６（ｃ）は、現フレーム５１０を構成するマクロブロックのうち、マクロブロック判別部２２０によりイントラマクロブロックと判別されたマクロブロックの集合（イントラマクロブロック群５６０）を示す模式図である。
【００８６】
このイントラマクロブロック群５６０は、イントラマクロブロック間の参照関係を有しているイントラマクロブロックの集合であり、各イントラマクロブロックは、隣接イントラマクロブロックを参照できるように復号する必要がある。そのため、マクロブロック判別部２２０は、現フレーム５１０の全てのイントラマクロブロックを判別して、その判別したイントラマクロブロックのイントラマクロブロック情報をイントラマクロブロックバッファ２４１に保持させる。
【００８７】
［動きベクトル生成順序決定部による動きベクトル生成順序の決定例］
図７は、本発明の第１の実施の形態における動きベクトル生成順序決定部２３２による動きベクトル生成順序の決定例を示す図である。ここでは、１６×１６画素の動き補償ブロックを想定し、１６×１６画素の動き補償ブロックは左および上の２つの隣接マクロブロックの動きベクトルの中間値から予測ベクトルを生成するものとする。
【００８８】
また、ここでは、便宜上、図６（ａ）において示した現フレーム５１０を構成する９個のマクロブロック（１３、１４、２１乃至２６、３５番）が生成順序を決定する対象のブロックであると想定して説明する。また、これらのマクロブロックに動きベクトル生成順序を付与する際の動きベクトル生成順序決定部２３２の１２回の動作を、時系列順にＴ＝１乃至Ｔ＝１２と表現する。
【００８９】
また、ここでは、決定の対象のマクロブロックを参照先とするマクロブロックが複数ある場合には、左方向への参照を上方向への参照よりも優先して次の対象マクロブロックとするものとする。さらに、ここでは、決定の対象のマクロブロックが参照する参照先のマクロブロックのうち動きベクトル生成順序が未決定であるマクロブロックが複数ある場合には、上方向への参照を左方向への参照よりも優先して次の対象マクロブロックとするものとする。
【００９０】
この図７においては、動きベクトル生成順序が未決定のマクロブロックと、動きベクトル生成順序が既に決定済みのマクロブロックと、図７で示すタイミングにおいて動きベクトル生成順序を決定する対象のマクロブロックとが示されている。
【００９１】
動きベクトル生成順序が未決定のマクロブロックは、マクロブロックを表す矩形内を白抜きとして示す。
【００９２】
動きベクトル生成順序が既に決定済みのマクロブロックは、マクロブロックを表す矩形内に括弧付の番号を付して示す。また、このブロックにおける括弧付の番号は、決定された動きベクトル生成順序の順位を示している。
【００９３】
図７で示すタイミングにおいて動きベクトル生成順序を決定する対象のマクロブロックは、マクロブロックを表す矩形が太線で表された対象マクロブロック５９１として示す。この対象マクロブロック５９１において、括弧付の番号を有する対象マクロブロック５９１は、図７で示すタイミングにおいて動きベクトル生成順序が決定された対象マクロブロックを示す。一方、中が空白の対象マクロブロック５９１は、図７で示すタイミングにおいて動きベクトル生成順序の決定がされていない対象マクロブロック（決定が保留された対象マクロブロック）を示す。
【００９４】
図７（ａ）乃至（ｉ）は、Ｔ＝１乃至Ｔ＝７、Ｔ＝１１およびＴ＝１２にそれぞれ対応する動きベクトル生成順序決定部２３２による動きベクトル生成順序の決定例を示す模式図である。なお、Ｔ＝８乃至１０は、省略する。
【００９５】
図７（ａ）には、動きベクトル生成順序決定部２３２の動作タイミング「Ｔ＝１」における動きベクトル生成順序の決定処理の状態が模式的に示されている。
【００９６】
まず、動きベクトル生成順序決定部２３２は、動きベクトル生成順序の決定処理の対象となるマクロブロックをラスタースキャンにより検出する。これにより、動きベクトル生成順序が未決定のマクロブロックのうち最も左上に位置するマクロブロックが検出される。そして、動きベクトル生成順序決定部２３２は、その検出したマクロブロックに動きベクトル生成順序を付与する。
【００９７】
すなわち、「Ｔ＝１」においては、図７で決定対象としている９個のマクロブロックのうち図７（ａ）の対象マクロブロック５９１において示したマクロブロックがまず最初に検出される。そして、動きベクトル生成順序決定部２３２は、その検出されたマクロブロックに動きベクトル生成順序の「１」番を付与する。
【００９８】
そして、動きベクトル生成順序決定部２３２は、「Ｔ＝１」における対象マクロブロック５９１を参照先とするマクロブロックが有るか否かを判定する。この動きベクトル生成順序決定部２３２は、そのマクロブロックが１つ有る場合には、そのマクロブロックを次の対象マクロブロック５９１と設定する。また、この動きベクトル生成順序決定部２３２は、参照先とするマクロブロックが複数ある場合には、左方向への参照を上方向への参照よりも優先して、その左方向への参照をするマクロブロックを次の対象マクロブロック５９１と設定する。
【００９９】
これにより、動きベクトル生成順序決定部２３２は、「Ｔ＝１」の対象マクロブロック５９１を参照先とするマクロブロックとして、「Ｔ＝１」の対象マクロブロック５９１の下側および右側に隣接するマクロブロックを検出する。そして、動きベクトル生成順序決定部２３２は、「Ｔ＝１」の対象マクロブロック５９１を左参照する右側に隣接するマクロブロックを新たな対象マクロブロック５９１と設定する。
【０１００】
図７（ｂ）には、動きベクトル生成順序決定部２３２の動作タイミング「Ｔ＝２」における動きベクトル生成順序の決定処理の状態が模式的に示されている。
【０１０１】
まず、動きベクトル生成順序決定部２３２は、その設定された対象マクロブロック５９１が参照するマクロブロックについて動きベクトル生成順序を付与していないマクロブロックが有るか否かを判定する。動きベクトル生成順序を付与していないマクロブロックが無い場合には、対象マクロブロック５９１に動きベクトル生成順序を付与する。一方、動きベクトル生成順序を付与していないマクロブロックが有る場合には、対象マクロブロック５９１に動きベクトル生成順序を付与することを保留する。
【０１０２】
すなわち、図７（ｂ）に示す状態では、動きベクトル生成順序決定部２３２は、対象マクロブロック５９１が参照するマクロブロックのうち動きベクトル生成順序を付与していないマクロブロックは無いことを判定する。そして、動きベクトル生成順序決定部２３２は、対象マクロブロック５９１に動きベクトル生成順序の「２」番を付与する。
【０１０３】
その後、動きベクトル生成順序決定部２３２は、「Ｔ＝２」における対象マクロブロック５９１を参照先とするマクロブロックを判定する。その結果、「Ｔ＝２」における対象マクロブロック５９１を上参照するマクロブロックが検出され、その検出されたマクロブロックが新たな対象マクロブロック５９１と設定される。
【０１０４】
図７（ｃ）には、動きベクトル生成順序決定部２３２の動作タイミング「Ｔ＝３」における動きベクトル生成順序の決定処理の状態が模式的に示されている。
【０１０５】
まず、動きベクトル生成順序決定部２３２は、対象マクロブロック５９１が参照するマクロブロックのうち、左参照により参照するマクロブロックについて動きベクトル生成順序を付与していないことを検出する。これにより、動きベクトル生成順序決定部２３２は、「Ｔ＝３」における対象マクロブロック５９１に対する動きベクトル生成順序の付与を保留する。
【０１０６】
そして、動きベクトル生成順序決定部２３２は、その動きベクトル生成順序を付与していない参照先のマクロブロックを新たな対象マクロブロック５９１に設定する。
【０１０７】
図７（ｄ）には、動きベクトル生成順序決定部２３２の動作タイミング「Ｔ＝４」における動きベクトル生成順序の決定処理の状態が模式的に示されている。
【０１０８】
動きベクトル生成順序決定部２３２は、「Ｔ＝３」の時と同様に、対象マクロブロック５９１が参照するマクロブロックのうち、左参照により参照するマクロブロックについて動きベクトル生成順序を付与していないことを検出する。そして、動きベクトル生成順序決定部２３２は、「Ｔ＝３」の時と同様に、「Ｔ＝４」における対象マクロブロック５９１に対する動きベクトル生成順序の付与を保留する。その後、動きベクトル生成順序決定部２３２は、動きベクトル生成順序を付与していない参照先のマクロブロックを新たな対象マクロブロック５９１に設定する。
【０１０９】
図７（ｅ）には、動きベクトル生成順序決定部２３２の動作タイミング「Ｔ＝５」における動きベクトル生成順序の決定処理の状態が模式的に示されている。この「Ｔ＝５」における動きベクトル生成順序決定部２３２の動作は、図７（ｄ）において示した「Ｔ＝４」と同様のものであるので、ここでの詳細な説明を省略する。
【０１１０】
図７（ｆ）には、動きベクトル生成順序決定部２３２の動作タイミング「Ｔ＝６」における動きベクトル生成順序の決定処理の状態が模式的に示されている。
【０１１１】
動きベクトル生成順序決定部２３２は、対象マクロブロック５９１が参照するマクロブロックが無いことにより、動きベクトル生成順序を付与していない参照するマクロブロックは無いことを検出する。そして、動きベクトル生成順序決定部２３２は、「Ｔ＝６」における対象マクロブロック５９１に動きベクトル生成順序の「３」番を付与する。
【０１１２】
その後、動きベクトル生成順序決定部２３２は、対象マクロブロック５９１を参照先とするマクロブロックを判定する。その結果、対象マクロブロック５９１を左参照するマクロブロックが検出され、その検出されたマクロブロックが新たな対象マクロブロック５９１と設定される。
【０１１３】
図７（ｇ）には、動きベクトル生成順序決定部２３２の動作タイミング「Ｔ＝７」における動きベクトル生成順序の決定処理の状態が模式的に示されている。この「Ｔ＝７」における動きベクトル生成順序決定部２３２の動作は、図７（ｆ）において示した「Ｔ＝６」と同様のものであるので、ここでの詳細な説明を省略する。すなわち、動きベクトル生成順序決定部２３２は、「Ｔ＝７」における対象マクロブロック５９１に動きベクトル生成順序の「４」番を付与し、対象マクロブロック５９１を左参照するマクロブロックが新たな対象マクロブロック５９１と設定される。
【０１１４】
また、動作タイミング「Ｔ＝８乃至Ｔ＝１０」についても、「Ｔ＝６」と同様のものであるので、ここでの図示および詳細な説明を省略する。すなわち、「Ｔ＝８乃至Ｔ＝１０」においても、動きベクトル生成順序決定部２３２は「Ｔ＝６」と同様の動作をすることによって、動きベクトル生成順序の「５乃至７」番がマクロブロックに付与される。
【０１１５】
図７（ｈ）には、動きベクトル生成順序決定部２３２の動作タイミング「Ｔ＝１１」における動きベクトル生成順序の決定処理の状態が模式的に示されている。
【０１１６】
この「Ｔ＝１１」において、動きベクトル生成順序決定部２３２は、動きベクトル生成順序を付与していない参照するマクロブロックは無いことから、「Ｔ＝１１」における対象マクロブロック５９１に動きベクトル生成順序の「８」番を付与する。そして、動きベクトル生成順序決定部２３２は、対象マクロブロック５９１を参照先とするマクロブロックが無いことを検出する。この場合において、動きベクトル生成順序決定部２３２は、「Ｔ＝１乃至Ｔ＝１０」において動きベクトル生成順序を付与したマクロブロックを参照先とするマクロブロックのうち動きベクトル生成順序を未だ付与していないマクロブロックが有るか否かを判定する。これにより、動きベクトル生成順序の「７」番を付与されたマクロブロックを上参照するマクロブロックが検出され、その検出されたマクロブロックが新たな対象マクロブロック５９１と設定される。
【０１１７】
図７（ｉ）には、動きベクトル生成順序決定部２３２の動作タイミング「Ｔ＝１２」における動きベクトル生成順序の決定処理の状態が模式的に示されている。
【０１１８】
この「Ｔ＝１２」において、動きベクトル生成順序決定部２３２は、動きベクトル生成順序を付与していない参照するマクロブロックは無いことから、「Ｔ＝１２」における対象マクロブロック５９１に動きベクトル生成順序の「９」番を付与する。そして、動きベクトル生成順序決定部２３２は、対象マクロブロック５９１を参照先とするマクロブロックが無いことを検出する。また、動きベクトル生成順序決定部２３２は、「Ｔ＝１乃至Ｔ＝１１」において動きベクトル生成順序を付与したマクロブロックを参照先とするマクロブロックのうち動きベクトル生成順序を未だ付与していないマクロブロックが無いことを検出する。これにより、動きベクトル生成順序決定部２３２は、図６（ａ）において示した現フレーム５１０を構成する９個のマクロブロック（１３、１４、２１乃至２６、３５番）について、動きベクトル生成順序を付与する動作を終了する。
【０１１９】
［動きベクトル生成順序決定部による動きベクトル生成順序の決定例］
図８は、本発明の第１の実施の形態における動きベクトル生成順序決定部２３２によるインターマクロブロック群５２０に対する動きベクトル生成順序の決定例を示す模式図である。
【０１２０】
この図８には、図６（ｂ）において示したインターマクロブロック群５２０の動きベクトル生成順序が実線の矢印で示されている。また、参照関係が途切れて生成順序の決定が再開される箇所は、破線の矢印で示されている。
【０１２１】
まず、「１」番のインターマクロブロックから動きベクトルの生成順序の決定が開始される。その後、図７において示した順序決定方法に基づいて参照関係の依存関係があるインターマクロブロックに関して動きベクトルの生成順序が決定される。そして、「１２」番のインターマクロブロックでインターマクロブロック間の参照関係が途切れ、これにより「１」番のインターマクロブロックから開始される動きベクトルの生成順序の決定は終了する。図８では、参照関係が途切れた「１２」番のインターマクロブロックから、生成順序の決定が再開される「３１」番のインターマクロブロックまでが、破線の矢印５２９で示されている。ここで、図７（ｈ）において説明したように、参照先とするマクロブロックが無い場合における動きベクトル生成順序を未だ付与していないマクロブロックが検出される。図８では、例えば、「７０」番のインターマクロブロックの生成順序の決定の次に「１１」番のインターマクロブロックが検出される。このため、「７０」番のインターマクロブロックの次に「１１」番のインターマクロブロックの順序が決定される。
【０１２２】
続いて、「３１」番のインターマクロブロックから動きベクトルの生成順序の決定が再開され、「７１」番のインターマクロブロックで「３１」番のインターマクロブロックから開始される動きベクトルの生成順序の決定は終了する。図８では、参照関係が途切れた「７１」番のインターマクロブロックから、生成順序の決定が再開される「９１」番のインターマクロブロックまでが、破線の矢印５２８で示されている。なお、「１００」番のインターマクロブロックの次に「７１」番のインターマクロブロックの順序が決定されるのは、「７０」番の次に「１１」番の順序が決定されるのと同様の検出による。
【０１２３】
そして、「９１」番のインターマクロブロックから再開され、「９２」番のインターマクロブロックで「９１」番のインターマクロブロックから開始される動きベクトルの生成順序の決定は終了する。
【０１２４】
このように、動きベクトル生成順序決定部２３２は、図７において示した順序決定方法に基づいてインターマクロブロックの動きベクトル生成順序を決定する。また、この動きベクトル生成順序決定部２３２は、参照関係が途切れて生成順序の決定が再開される箇所を検出することによって、インターマクロブロック間の参照関係の依存関係の有無を検出する。
【０１２５】
［動きベクトル生成グループ分類部によるインターマクロブロックの分類例］
図９は、本発明の第１の実施の形態における動きベクトル生成グループ分類部２３３によるインターマクロブロックの分類例を示す模式図である。ここでは、動きベクトル生成順序決定部２３２において検出される参照関係が途切れて生成順序の決定が再開される箇所に基づいてグループを生成するものとする。
【０１２６】
この図９には、図８において示したインターマクロブロック群５２０に、動きベクトル生成グループ５２１乃至５２３が示されている。すなわち、この図９のインターマクロブロック群５２０には、動きベクトル生成順序（番号間を結ぶ矢印により特定される順序）と、動きベクトル生成グループ５２１乃至５２３とが示されている。
【０１２７】
この動きベクトル生成グループ５２１乃至５２３は、図８において示した動きベクトル生成順序決定部２３２において検出されるインターマクロブロック間の参照関係が途切れる箇所で新たなグループとすることにより生成されたグループである。この参照関係が途切れる箇所の前後のインターマクロブロック間には、参照先のインターマクロブロックが一致するインターマクロブロックが無い。すなわち、途切れる前のインターマクロブロックが含まれる一群のインターマクロブロックのグループと、途切れた後のインターマクロブロックのグループとには参照関係の依存関係がないため、それぞれ独立して動きベクトルを生成することができる。
【０１２８】
このように、動きベクトル生成グループ分類部２３３は、インターマクロブロック間の参照関係が途切れて生成順序の決定が再開される箇所を境界情報として用いてインターマクロブロックをグループに分類する。
【０１２９】
そして、動きベクトル生成部２３４は、動きベクトル生成グループ分類部２３３により生成されたグループごとに、動きベクトル生成順序決定部２３２により決定された動きベクトル生成順序に従って並列して動きベクトルを生成する。これにより、グループ化しない場合と比較して、メモリアクセスの効率が向上した順序を用いてグループごとに並列して動きベクトルを生成することができる。
【０１３０】
［参照先分類部によるインターマクロブロックの分類例］
図１０は、本発明の第１の実施の形態における参照先分類部２３６によるインターマクロブロックの分類例を示す模式図である。
【０１３１】
図１０（ａ）には、動きベクトル生成部２３４により動きベクトルが生成された後のインターマクロブロック群５２０が示されている。インターマクロブロックは、動きベクトルが生成された後の処理においては、インターマクロブロック間の参照関係は不要になる。
【０１３２】
そのため、参照先分類部２３６は、インターマクロブロック間の参照関係とは無関係にインターマクロブロックが参照する参照フレームに基づいてインターマクロブロックを分類する。
【０１３３】
図１０（ｂ）には、図１０（ａ）において示したインターマクロブロック群５２０のインターマクロブロックが参照先分類部２３６により分類されて生成されたグループであるフレームＡ群５３０と、フレームＢ群５４０と、フレームＣ群５５０とが示されている。なお、上述したように、各マクロブロックを示す矩形内の模様の違いは、参照フレームの違いを示す。
【０１３４】
このように、参照先分類部２３６は、インターマクロブロックを参照フレームごとのグループに分類する。
【０１３５】
［位置分類部によるインターマクロブロックの分類例］
図１１は、本発明の第１の実施の形態における位置分類部２３７によるインターマクロブロックの分類例を示す図である。
【０１３６】
ここでは、現フレームにおいて、互いに隣接するインターマクロブロック同士を同じグループとする一例について説明する。また、ここでは、動きベクトル生成順序決定部２３２と同様の処理をすることにより、インターマクロブロックをグループに分類することとする。すなわち、隣接するインターマクロブロックを検出することによって、インターマクロブロックをグループに分類する。なお、この際にインターマクロブロックの画素値を生成する順序（画素値生成順序）を決定するものとする。
【０１３７】
図１１（ａ）には、図１０（ｂ）において示したフレームＡ群５３０に含まれる各インターマクロブロックについて、互いに隣接するインターマクロブロックをグループにしたグループ５３１乃至５３６が示されている。また、この図１１（ａ）には、動きベクトル生成順序決定部２３２と同様の処理をすることによって生成した画素値を生成する順序がグループごとに矢印で示されている。
【０１３８】
図１１（ｂ）には、図１０（ｂ）において示したフレームＢ群５４０に含まれる各インターマクロブロックについて、互いに隣接するインターマクロブロックをグループにしたグループ５４１乃至５４５が示されている。また、図１１（ｂ）には、図１１（ａ）と同様に、画素値を生成する順序がグループごとに矢印で示されている。
【０１３９】
図１１（ｃ）には、図１０（ｂ）において示したフレームＣ群５５０に含まれる各インターマクロブロックについて、互いに隣接するインターマクロブロックをグループにしたグループ５５１乃至５５５が示されている。また、図１１（ｃ）には、図１１（ａ）と同様に、画素値を生成する順序がグループごとに矢印で示されている。
【０１４０】
このように、位置分類部２３７は、現フレームにおいて、互いに隣接するインターマクロブロックを同じグループとすることによって画素値を生成するためのグループを生成する。
【０１４１】
［イントラマクロブロック順序決定部２４２による動きベクトル生成順序の決定例］
図１２は、本発明の第１の実施の形態におけるイントラマクロブロック順序決定部２４２によるイントラマクロブロック群５６０に対するイントラ予測モードおよび画素値の生成順序の決定例を示す模式図である。
【０１４２】
この図１２には、図６（ｃ）において示したイントラマクロブロック群５６０のイントラ予測モードおよび画素値の生成順序が実線の矢印で示されている。また、参照関係が途切れて生成順序の決定が再開される箇所は、破線線の矢印５６８および５６９で示されている。
【０１４３】
このように、イントラマクロブロック順序決定部２４２は、図８において示した動きベクトル生成順序決定部２３２と同様の処理によって、イントラ予測モードおよび画素値の生成順序を決定する。なお、イントラマクロブロック順序決定部２４２における順序決定処理は、図８に示す例と同様であるため、ここでの説明を省略する。
【０１４４】
［イントラマクロブロックグループ分類部によるイントラマクロブロックの分類例］
図１３は、本発明の第１の実施の形態におけるイントラマクロブロックグループ分類部２４３によるイントラマクロブロックの分類例を示す模式図である。ここでは、イントラマクロブロック順序決定部２４２において検出される参照関係が途切れて生成順序の決定が再開される箇所に基づいてグループを生成するものとする。
【０１４５】
この図１３には、図１２において示したイントラマクロブロック群５６０に、イントラ予測モードおよび画素値を生成するためのグループであるイントラマクロブロック生成グループ５６１乃至５６３が示されている。すなわち、この図１３のイントラマクロブロック群５６０には、イントラ予測モードおよび画素値の生成順序であるイントラマクロブロック生成順序と、イントラマクロブロック生成グループ５６１乃至５６３とが示されている。
【０１４６】
このように、イントラマクロブロックグループ分類部２４３は、図９において示した動きベクトル生成グループ分類部２３３と同様の処理によって、イントラ予測モードおよび画素値の生成順序を決定する。なお、イントラマクロブロックグループ分類部２４３におけるグループ分類処理は、図９に示す例と同様であるため、ここでの説明を省略する。
【０１４７】
［画素値生成部の機能構成例］
図１４は、本発明の第１の実施の形態における画素値生成部４００の機能構成例を示すブロック図である。ここでは、インターマクロブロックおよびイントラマクロブロックの両方を復号することができる演算部を用いて画素値を復号する一例について説明する。また、ここでは、画素値生成部４００が４つの演算部を備える場合を想定する。
【０１４８】
この画素値生成部４００は、グループキュー４１０と、第１読み出し対象領域バッファ４２１と、第１演算部４３１と、第２読み出し対象領域バッファ４２２と、第２演算部４３２と、第３読み出し対象領域バッファ４２３とを備える。さらに、この画素値生成部４００は、第３演算部４３３と、第４読み出し対象領域バッファ４２４と、第４演算部４３４とを備える。
【０１４９】
グループキュー４１０は、位置分類部２３７から供給されたインターマクロブロック、および、イントラ予測モード決定部２４４から供給されたイントラマクロブロックの画素値を生成するためのグループを、供給された順序を維持した状態で保持するものである。このグループキュー４１０は、例えば、先入れ先出しするＦＩＦＯ（First-In First-Out）タイプのキューにより構成される。このグループキュー４１０は、そのグループ単位で保持したインターマクロブロック情報およびイントラマクロブロック情報を、演算が終了した第１演算部４３１乃至第４演算部４３４に、保持された順に順次供給する。
【０１５０】
第１読み出し対象領域バッファ４２１乃至第４読み出し対象領域バッファ４２４は、インターマクロブロックの画素値が復号される際に信号線１５１を介して供給される参照フレームの画素値を保持するものである。
【０１５１】
第１読み出し対象領域バッファ４２１は、第１演算部４３１がインターマクロブロックの画素値を復号する際に参照する参照フレームの画素値を保持する。また、第２読み出し対象領域バッファ４２２は、第２演算部４３２がインターマクロブロックの画素値を復号する際に参照する参照フレームの画素値を保持する。第３読み出し対象領域バッファ４２３は、第３演算部４３３がインターマクロブロックの画素値を復号する際に参照する参照フレームの画素値を保持する。第４読み出し対象領域バッファ４２４は、第４演算部４３４がインターマクロブロックの画素値を復号する際に参照する参照フレームの画素値を保持する。すなわち、この第１読み出し対象領域バッファ４２１乃至第４読み出し対象領域バッファ４２４は、画素値生成グループごとに参照フレームの画素値を保持する。
【０１５２】
例えば、第１演算部４３１が、図１１（ａ）において示したグループ５３１のインターマクロブロックを復号する場合には、グループ５３１の３つのインターマクロブロックが参照する参照フレームＡの画素値が第１読み出し対象領域バッファ４２１に保持される。
【０１５３】
この第１読み出し対象領域バッファ４２１乃至第４読み出し対象領域バッファ４２４は、保持する画素値を、それぞれが接続される第１演算部４３１乃至第４演算部４３４に供給する。
【０１５４】
第１演算部４３１乃至第４演算部４３４は、インターマクロブロックおよびイントラマクロブロックの画素値を復号するものである。
【０１５５】
ここで、この第１演算部４３１乃至第４演算部４３４の機能について、図１１（ａ）において示したグループ５３１が第１演算部４３１に供給された場合を一例として説明する。まず、第１演算部４３１は、グループ５３１の３つのインターマクロブロックが参照する画素値の参照フレームＡにおける位置をインターマクロブロックのそれぞれの動きベクトルから算出する。そして、第１演算部４３１は、その算出した位置に基づいて第１読み出し対象領域バッファ４２１に読み出す参照フレームＡの領域を決定し、その決定した領域の画素値をフレームバッファ１５０から第１読み出し対象領域バッファ４２１に読み出させる。
【０１５６】
そして、第１演算部４３１は、グループ５３１の３つのインターマクロブロックの画素値をそのインターマクロブロックの画素値生成順序に従って復号する。具体的には、まず、第１演算部４３１は、復号対象のインターマクロブロックが参照する画素値を第１読み出し対象領域バッファ４２１から動きベクトルに基づいて読み出すことによって、インターマクロブロックの画素値の予測値（予測画素値値）を生成する。そして、予測画素値と
の差分の符号化された画素値の情報（差分情報）がインターマクロブロック情報に含まれている場合には、その差分情報を逆離散コサイン変換および逆量子化して差分の画素値（差分画素値）を生成する。そして、第１演算部４３１は、予測画素値と差分画素値とを加算することにより画素値を復号する。また、差分画素値がないために差分情報を逆離散コサイン変換および逆量子化して差分画素値を生成する必要が無い場合には、予測画素値をそのままインターマクロブロックの画素値とする。このようにして、第１演算部４３１は、インターマクロブロックの画素値を復号する。なお、差分画素値は、特許請求の範囲に記載の差分データの一例である。
【０１５７】
続いて、この第１演算部４３１乃至第４演算部４３４の機能について、図１３において示したグループ５６１が第１演算部４３１に供給された場合について説明する。この場合には、第１演算部４３１は、グループ５６１のイントラマクロブロックをイントラマクロブロック生成順序に従って復号する。具体的には、まず、第１演算部４３１は、イントラ予測モードと隣接マクロブロックの画素値を用いて画素値の予測値（予測画素値）を生成する。また、第１演算部４３１は、この予測画素値との差分の符号化された画素値の情報（差分情報）がイントラマクロブロック情報に含まれている場合には、その差分情報を逆離散コサイン変換および逆量子化して差分画素値を生成する。そして、第１演算部４３１は、予測画素値と差分画素値とを加算することにより画素値を復号する。また、差分画素値がないために差分情報を逆離散コサイン変換および逆量子化して差分画素値を生成する必要が無い場合には、予測画素値をそのままイントラマクロブロックの画素値とする。このようにして、第１演算部４３１は、イントラマクロブロックの画素値を復号する。
【０１５８】
この第１演算部４３１乃至第４演算部４３４は、復号した画素値を、信号線４０１を介してフレーム合成部２６０に供給する。
【０１５９】
なお、ここでは、画素値を復号する演算部は第１演算部４３１乃至第４演算部４３４の４つであることを想定したが、これに限定されるものではない。多くのグループが生成できることが予想される画像復号装置において並列して演算する量を増やすためにこれより多くの演算部を備えるようにしてもよい。また、単純な画像復号装置にするためにこれより少ない演算部を備えるようにしてもよい。
【０１６０】
［第１読み出し対象領域バッファ乃至第４読み出し対象領域バッファが保持する画素値の一例］
図１５は、本発明の第１の実施の形態における第１読み出し対象領域バッファ４２１乃至第４読み出し対象領域バッファ４２４が保持する画素値の一例を示す模式図である。なお、第１読み出し対象領域バッファ４２１乃至第４読み出し対象領域バッファ４２４の各構成については略同一であるため、ここでは、第１読み出し対象領域バッファ４２１の一例について説明し、他の説明を省略する。
【０１６１】
図１５（ａ）には、復号対象のインターマクロブロックが、現フレーム４７０にインターマクロブロック４７１乃至４７６として示されている。また、インターマクロブロック４７１乃至４７６の画素値を復号する際に参照される領域が、参照フレーム４８０に参照領域４９１乃至４９６として示されている。なお、第１読み出し対象領域バッファ４２１に読み出される領域が読み出し対象領域４９０として示されている。また、図１５（ｂ）には、読み出し対象領域４９０が第１読み出し対象領域バッファ４２１に読み出された領域として示されている。
【０１６２】
この参照フレーム４８０の参照領域４９１乃至４９６により示すように、隣接するインターマクロブロック４７１乃至４７６の参照領域４９１乃至４９６は、参照フレーム４８０においても互いに近い位置にあることが多い。そのため、第１演算部４３１が、インターマクロブロック４７１乃至４７６の各動きベクトルに基づいて読み出し対象領域４９０を算出し、この算出された読み出し対象領域４９０を第１読み出し対象領域バッファ４２１に保持させる。これにより、隣接するインターマクロブロック４７１乃至４７６について復号処理を行う場合に、各インターマクロブロックの復号処理毎に参照領域４９１乃至４９６を順次読み出す必要がないため、画素値へのメモリアクセスの効率を向上させることができる。
【０１６３】
［画素値生成部のグループ演算例］
図１６は、本発明の第１の実施の形態における画素値生成部４００のグループ演算例を示す模式図である。ここでは、グループキュー４１０は、図１１および図１３において示したグループ５３１、５４１、５５１、５６１、５３２、５４２、５５２を、この示した順序で保持していることを想定する。また、ここでは、便宜上、第１演算部４３１乃至第４演算部４３４における処理内容に係わらず、１つのマクロブロックの画素値を復号するために掛かる時間を「１」とする。また、マクロブロックの画素値を復号する際の第１演算部４３１乃至第４演算部４３４の動作を、「Ｔ＝１」を始点として時系列順に表現する。また、第１演算部４３１乃至第４演算部４３４がグループキュー４１０からグループを同時に取り出す場合には、第１演算部４３１から順に取り出すこととする。
【０１６４】
この図１６には、マクロブロックの画素値の復号をするグループが第１演算部４３１乃至第４演算部４３４を表す矩形内に示されている。また、このグループの中には、画素値が復号されたマクロブロックと、画素値が未だ復号されていないマクロブロックと、図１６で示すタイミングにおいて画素値を復号する対象のマクロブロックとが示されている。この図１６では、画素値が復号されたマクロブロックは矩形の枠を消去して示している。また、画素値が未だ復号されていないマクロブロックは実線の枠を備える矩形で示し、図１６で示すタイミングにおいて画素値を復号する対象のマクロブロックは太線の枠の矩形で示している。
【０１６５】
図１６（ａ）乃至（ｄ）は、Ｔ＝１乃至Ｔ＝４における画素値生成部４００の画素値復号の状態を示す模式図である。
【０１６６】
図１６（ａ）には、画素値生成部４００の動作に関するタイミング「Ｔ＝１」における画素値の復号処理の状態が模式的に示されている。
【０１６７】
まず、第１演算部４３１乃至第４演算部４３４は、画素値を復号するグループをグループキュー４１０から取得する。すなわち、第１演算部４３１はグループ５３１を取得し、第２演算部４３２はグループ５４１を取得し、第３演算部４３３はグループ５５１を取得し、第４演算部４３４はグループ５６１をグループキュー４１０から取得する。
【０１６８】
そして、第１演算部４３１乃至第４演算部４３４は、取得したグループがインターマクロブロックで構成されるグループである場合には、第１読み出し対象領域バッファ４２１乃至第４読み出し対象領域バッファ４２４に参照フレームの画素値を保持させる。これにより、第１演算部４３１は、グループ５３１に対する読み出し対象領域４９０をフレームＡの画素値から生成し、この生成した読み出し対象領域４９０を第１読み出し対象領域バッファ４２１に保持させる。第２演算部４３２は、グループ５４１に対する読み出し対象領域４９０をフレームＢの画素値から生成し、この生成した読み出し対象領域４９０を第２読み出し対象領域バッファ４２２に保持させる。第３演算部４３３は、グループ５５１に対する読み出し対象領域４９０をフレームＣの画素値から生成し、この生成した読み出し対象領域４９０を第３読み出し対象領域バッファ４２３に保持させる。
【０１６９】
続いて、第１演算部４３１乃至第４演算部４３４は、位置分類部２３７およびイントラマクロブロック順序決定部２４２が決定した順序に従ってマクロブロックの画素値を復号する。すなわち、第１演算部４３１は「１」番のインターマクロブロックの画素値を復号し、第２演算部４３２は「１５」番のインターマクロブロックの画素値を復号し、第３演算部４３３は「２」番のインターマクロブロックの画素値を復号する。また、第４演算部４３４は、「６」番のイントラマクロブロックの画素値を復号する。
【０１７０】
図１６（ｂ）には、画素値生成部４００の動作に関するタイミング「Ｔ＝２」における画素値の復号処理の状態が模式的に示されている。
【０１７１】
まず、第１演算部４３１乃至第４演算部４３４は、「Ｔ＝２」において画素値を復号するマクロブロックを決定する。この時、前のタイミングにおいて復号されたマクロブロックと同一のグループのマクロブロックが決定される場合には、位置分類部２３７およびイントラマクロブロック順序決定部２４２が決定した順序に従って決定する。
【０１７２】
すなわち、第１演算部４３１は「１１」番のインターマクロブロックを、第２演算部４３２は「１６」番のインターマクロブロックを「Ｔ＝２」において画素値を復号するマクロブロックとして決定する。また、第３演算部４３３は「３」番のインターマクロブロックを、第４演算部４３４は「７」番のイントラマクロブロックを「Ｔ＝２」において画素値を復号するマクロブロックとして決定する。
【０１７３】
続いて、第１演算部４３１乃至第４演算部４３４は、マクロブロックの画素値を復号する。「Ｔ＝２」では、グループ５３１、５４１および５５１のインターマクロブロックが参照する画素値は、第１読み出し対象領域バッファ４２１乃至第３読み出し対象領域バッファ４２３に「Ｔ＝１」においてすでに保持されている。そこで、第１演算部４３１乃至第３演算部４３３は、第１読み出し対象領域バッファ４２１乃至第３読み出し対象領域バッファ４２３に新たに読み出し対象領域４９０を保持させることをしないで、インターマクロブロックの画素値を復号する。
【０１７４】
これにより、第１演算部４３１は「１１」番のインターマクロブロックの画素値を復号し、第２演算部４３２は「１６」番のインターマクロブロックの画素値を復号し、第３演算部４３３は「３」番のインターマクロブロックの画素値を復号する。また、第４演算部４３４は、「７」番のイントラマクロブロックの画素値を復号する。
【０１７５】
図１６（ｃ）には、画素値生成部４００の動作に関するタイミング「Ｔ＝３」における画素値の復号処理の状態が模式的に示されている。
【０１７６】
まず、第１演算部４３１乃至第４演算部４３４は、「Ｔ＝３」において画素値を復号するマクロブロックを決定する。第１演算部４３１、第２演算部４３２および第４演算部は「Ｔ＝２」と同様にして決定する。一方、第３演算部４３３は、グループ５５１のインターマクロブロックの画素値の復号は「Ｔ＝２」において終了しているため、グループキュー４１０から新たなグループを取得する。これにより、第３演算部４３３は、グループ５３２を、画素値を復号するグループとしてグループキュー４１０から取得する。そして、第３演算部４３３は、グループ５３２がインターマクロブロックで構成されるグループであるため、グループ５３２に対する読み出し対象領域４９０を第３読み出し対象領域バッファ４２３に保持させる。
【０１７７】
そして、第１演算部４３１乃至第４演算部４３４は、「Ｔ＝１および２」と同様にして、マクロブロックの画素値を復号する。
【０１７８】
図１６（ｄ）には、画素値生成部４００の動作に関するタイミング「Ｔ＝４」における画素値の復号処理の状態が模式的に示されている。
【０１７９】
「Ｔ＝４」では、第１演算部４３１乃至第４演算部４３４は、「Ｔ＝３」と同様にしてマクロブロックの画素値を復号する。すなわち、第１演算部４３１および第２演算部４３２は、グループキュー４１０から新たなグループを取得し、第１読み出し対象領域バッファ４２１および第２読み出し対象領域バッファ４２２に保持させる。そして、第１演算部４３１乃至第４演算部４３４は、「Ｔ＝１乃至３」と同様にして、マクロブロックの画素値を復号する。
【０１８０】
このように、画素値生成部４００は、インターマクロブロック分類部２３０およびイントラマクロブロック分類部２４０が生成した画素値を生成するためのグループごとに、そのグループに応じた処理方法により画素値を生成することができる。
【０１８１】
なお、ここでは、便宜上、１つのマクロブロックの画素値を復号するために掛かる時間を「１」とした。しかしながら、第１演算部４３１乃至第４演算部４３４は、動作タイミングが一致する必要はなく、演算が簡単なグループを演算する演算部は、演算の重いグループを演算する演算部より早く演算を終わらせて次のグループを処理するようにしてよい。
【０１８２】
［画像復号装置の動作例］
次に、本発明の第１の実施の形態における画像復号装置１００の動作について図面を参照して説明する。
【０１８３】
図１７は、本発明の第１の実施の形態における画像復号装置１００による画像復号処理の処理手順例を示すフローチャートである。
【０１８４】
まず、ビットストリーム入力部１１０に、符号化された画像データが入力される（ステップＳ９０１）。次に、可変長復号部１２０により、可変長に符号化された動画像データが固定長の符号化された動画像データに復号される（ステップＳ９０２）。そして、固定長データバッファ２１０に、固定長に符号化された動画像データが一時的に保持される（ステップＳ９０３）。
【０１８５】
続いて、マクロブロック判別部２２０とインターマクロブロック分類部２３０とイントラマクロブロック分類部２４０とにより、画素値を復号するためのグループを生成する画素値復号グループ生成処理が行われる（ステップＳ９１０）。なお、ステップＳ９１０については、図１８を参照して詳細に説明する。
【０１８６】
次に、画素値生成部４００により、画素値を生成するためのグループ（画素値生成グループ）ごとに画素値を生成する画素値生成処理が行われる（ステップＳ９４０）。なお、ステップＳ９４０については、図２０を参照して詳細に説明する。なお、ステップＳ９４０は、特許請求の範囲に記載の画像データ復号手順の一例である。
【０１８７】
続いて、全ての画素値生成グループについて画素値の復号が終了したか否かが判断される（ステップＳ９０４）。そして、全ての画素値生成グループについて画素値の復号が終了されていないと判断された場合には、ステップＳ９４０に戻る。
【０１８８】
一方、全ての画素値生成グループについて画素値の生成が終了したと判断された場合には、フレーム合成部２６０により、各グループの画素値を合成させてフレームが生成される（ステップＳ９０５）。そして、フィルタ処理部１４０により、フレームのブロック歪を低減させるためフィルタ処理が行われる（ステップＳ９０６）。なお、ステップＳ９０５は、特許請求の範囲に記載の復号画像生成手順の一例である。
【０１８９】
続いて、フレームバッファ１５０に、フィルタ処理が行われたフレームが一時的に保持される（ステップＳ９０７）。最後に、画像出力部１６０により、復号されたフレームが外部の表示装置に順次出力される（ステップＳ９０８）。そして、画像復号処理は終了する。
【０１９０】
図１８は、本発明の第１の実施の形態における画素値生成グループ生成処理（ステップＳ９１０）の処理手順例を示すフローチャートである。
【０１９１】
なお、この例では、便宜上、図１２において示したイントラマクロブロックの順序を決定する際に、図１３において示したイントラマクロブロック生成グループも生成されるものとする。また、この例では、便宜上、図８において示した動きベクトル生成順序を決定する際に、図９において示した動きベクトル生成グループも生成されるものとする。
【０１９２】
まず、マクロブロック判別部２２０により、フレームを構成するマクロブロック（ＭＢ）が解析され（ステップＳ９１１）、各マクロブロックがインターマクロブロックとイントラマクロブロックとに分類される（ステップＳ９１２）。これにより、インターマクロブロックはインターマクロブロックバッファ２３１に保持され、イントラマクロブロックはイントラマクロブロックバッファ２４１に保持される。
【０１９３】
次に、現フレームのマクロブロックが全て分類されて、インターマクロブロックバッファ２３１およびイントラマクロブロックバッファ２４１に保持されたか否かが判断される（ステップＳ９１３）。そして、現フレームのマクロブロックが全て分類され、インターマクロブロックバッファ２３１およびイントラマクロブロックバッファ２４１に保持されていないと判断された場合には、ステップＳ９１２に戻る。
【０１９４】
一方、現フレームのマクロブロックが全て分類されたと判断された場合には、イントラマクロブロック順序決定処理が行われる（ステップＳ９２０）。このイントラマクロブロック順序決定処理については、図１９を参照して詳細に説明する。
【０１９５】
続いて、イントラ予測モード決定部２４４により、イントラ予測モードが決定される（ステップＳ９１４）。
【０１９６】
インターマクロブロックに関しては、動きベクトル生成順序決定部２３２および動きベクトル生成グループ分類部２３３により、動きベクトルを生成するための順序およびグループが決定される（ステップＳ９１５）。なお、この動きベクトルを生成するための順序およびグループを決定する処理手順については、ステップＳ９２０と同様であるため、詳細な説明を省略する。また、この例では、ステップＳ９２０およびＳ９１４の処理手順の後に、ステップＳ９１５乃至Ｓ９１８の処理手順を行う例を示したが、これらの処理手順については、それぞれを同時に行うようにしてもよい。また、ステップＳ９２０およびＳ９１４の処理手順と、ステップＳ９１５乃至Ｓ９１８の処理手順との順序を入れ替えて行うようにしてもよい。
【０１９７】
また、この例では、ステップＳ９２０およびＳ９１４の処理手順と、ステップＳ９１５乃至Ｓ９１８の処理手順とが終了した後に、ステップＳ９４０に進む例について説明したが、これに限定されるものではない。例えば、ステップＳ９２０およびＳ９１４の処理手順が終了した場合において、ステップＳ９２０およびＳ９１４の処理手順の終了を待たずに、分類されたイントラマクロブロックの画素値画素値生成処理（ステップＳ９４０）を順次行うようにしてもよい。ステップＳ９２０およびＳ９１４の処理手順とステップＳ９１５乃至Ｓ９１８の処理手順とを同時に行う場合、ステップＳ９２０およびＳ９１４の処理手順とステップＳ９１５乃至Ｓ９１８の処理手順との順序を入れ替える場合も同様である。
【０１９８】
次に、動きベクトル生成部２３４により、動きベクトルが生成される（ステップＳ９１６）。これにより、インターマクロブロック間の参照関係が解消され、インターマクロブロック間の参照関係に依存しないグループ分けが可能になる。そして、参照先分類部２３６により、参照フレームごとにインターマクロブロックが分類される（ステップＳ９１７）。続いて、位置分類部２３７により、隣接するインターマクロブロックが同じグループに分類される（ステップＳ９１８）。このステップＳ９１７およびステップＳ９１８により、インターマクロブロックの画素値を生成するためのグループが生成される。なお、ステップＳ９１６は、特許請求の範囲に記載の動きベクトル生成手順の一例である。なお、ステップＳ９１７およびＳ９１８は、特許請求の範囲に記載の動きベクトル検出単位ブロックグループ分類手順の一例である。
【０１９９】
図１９は、本発明の第１の実施の形態におけるイントラマクロブロック順序決定処理（ステップＳ９２０）の処理手順例を示すフローチャートである。
【０２００】
なお、図１９では、イントラマクロブロックをマクロブロック（ＭＢ）と表現して説明する。
【０２０１】
まず、グループ番号（Ｇ）が「０」に初期化される（ステップＳ９２１）。続いて、順序番号（Ｄ）が「０」に初期化される（ステップＳ９２２）。次に、順序が未決定のイントラマクロブロック（ＭＢ）があるか否かがラスタースキャンにより検出される（ステップＳ９２３）。そして、順序が未決定のイントラマクロブロックが検出されない場合には、イントラマクロブロック順序決定処理の動作を終了する。
【０２０２】
一方、順序が未決定のイントラマクロブロックが検出された場合には、その検出されたイントラマクロブロックが、グループの始点のマクロブロック（グループ始点ＭＢ）および判定対象のマクロブロック（判定対象ＭＢ）に設定される（ステップＳ９２４）。次に、判定対象マクロブロックの順序に順序番号（Ｄ）の値が設定される（ステップＳ９２５）。これにより、判定対象マクロブロックの順序が決定される。そして、順序番号（Ｄ）に「１」が加算される（ステップＳ９２６）。
【０２０３】
続いて、判定対象マクロブロックを参照するマクロブロック（参照ＭＢ）のうち、順序が未決定の参照マクロブロックがあるか否かが判断される（ステップＳ９２７）。そして、順序が未決定の参照マクロブロックがあると判断された場合には、その参照マクロブロックのうちの１つの参照マクロブロックが、優先順位に基づいて新たな判定対象マクロブロックに設定される（ステップＳ９２８）。例えば、左方向への参照を上方向への参照よりも優先して次の判定対象マクロブロックとすると優先順位が決定されていた場合には、左方向への参照をするマクロブロックが新たな判定対象マクロブロックに設定される。
【０２０４】
次に、判定対象マクロブロックが参照するマクロブロック（被参照ＭＢ）のうち、順序が未決定の被参照マクロブロックがあるか否かが判断される（ステップＳ９２９）。そして、順序が未決定の被参照マクロブロックが無いと判断された場合には、ステップＳ９２５に戻る。このステップＳ９２５に戻ることにより、判定対象マクロブロックの順序が決定される。
【０２０５】
一方、ステップＳ９２９において、順序が未決定の被参照マクロブロックがあると判断された場合には、その被参照マクロブロックのうちの１つの被参照マクロブロックが、優先順位に基づいて新たな判定対象マクロブロックに設定される（ステップＳ９３１）。例えば、上方向への参照を左方向への参照よりも優先して次の判定対象マクロブロックとすると優先順位が決定されていた場合には、判定対象マクロブロックの上方向に隣接するマクロブロックが新たな判定対象マクロブロックに設定される。これにより、順序が未決定の被参照マクロブロックがある判定対象マクロブロックの順序の決定は保留され、新たな判定対象マクロブロックが設定される。そして、ステップＳ９２９に戻る。
【０２０６】
一方、ステップＳ９２７で順序が未決定の参照マクロブロックがないと判断された場合には、グループ番号（Ｇ）の順序が決定されたマクロブロックを参照するマクロブロックのうち、順序が未決定のマクロブロックがあるか否かが判断される（ステップＳ９３２）。そして、順序が未決定のマクロブロックがあると判断された場合には、そのマクロブロックのうちの１つのマクロブロックが、優先順序に基づいて新たな判定対象マクロブロックに設定される（ステップＳ９３３）。これにより、ステップＳ９２８において優先順序が低いため判定対象マクロブロックとならなかったマクロブロックが検出され、判定対象マクロブロックに設定される。そして、ステップＳ９２９に戻る。
【０２０７】
一方、ステップＳ９３２において、順序が未決定のマクロブロックがないと判断された場合には、グループ番号（Ｇ）に「１」が加算される（ステップＳ９３４）。これにより、グループ番号（Ｇ）のマクロブロックを検出する処理は終了し、次のグループのマクロブロックを検出する処理になる。そして、ステップＳ９２２に戻る。
【０２０８】
なお、上述したように、イントラマクロブロック順序決定処理（ステップＳ９２０）と動きベクトル生成順序の生成処理（ステップＳ９１５）とは、マクロブロックおよび参照方向が異なるが、処理内容は略同じである。このため、マクロブロック（ＭＢ）をインターマクロブロックと読み替えることにより、図１９に示す例を、ステップＳ９１５の処理手順に適用することができる。
【０２０９】
図２０は、本発明の第１の実施の形態における画素値生成処理（ステップＳ９４０）の処理手順例を示すフローチャートである。
【０２１０】
まず、グループキュー４１０により、供給された順序を維持して、画素値生成グループに分類されたインターマクロブロック情報およびイントラマクロブロック情報が保持される（ステップＳ９４１）。
【０２１１】
続いて、第１演算部４３１乃至第４演算部４３４において、演算が終了した演算部があるか否かが判断される（ステップＳ９４２）。そして、演算が終了した演算部があると判断された場合には、その演算が終了した演算部に画素値生成グループが供給され（ステップＳ９４３）、ステップＳ９４４に進む。
【０２１２】
一方、演算が終了した演算部が無いと判断された場合には（ステップＳ９４２）、第１演算部４３１乃至第４演算部４３４により、画素値生成グループにおける生成順序に従ってマクロブロックの画素値の演算が継続して行われる（ステップＳ９４４）。
【０２１３】
このように、本発明の第１の実施の形態では、マクロブロックをグループに分類することにより、参照関係が依存するマクロブロックおよび画素値を参照する位置が参照フレーム上で近接するマクロブロックの復号処理を同一の演算部で連続して行うことができる。
【０２１４】
具体的には、参照関係を用いるインターマクロブロックの動きベクトルを生成する処理については、複数のグループを並列して演算することができる。また、並列して演算できるとともに、連続して動きベクトルを生成するインターマクロブロックの参照する動きベクトルが一致あるいはメモリの記憶領域において近接することにより、メモリアクセスの効率を向上させることができる。
【０２１５】
また、参照関係を用いるイントラマクロブロックの予測モードおよび画素値を生成する処理については、動きベクトルの生成処理と同様に、複数のグループを並列して演算することができる。また、並列して演算できるとともに、連続して予測モードを生成するイントラマクロブロックの参照する予測モードおよび画素値が一致あるいはメモリの記憶領域において近接することにより、メモリアクセスの効率を向上させることができる。
【０２１６】
また、インターマクロブロックの画素値を生成する処理については、動きベクトルの生成処理の後に参照情報に基づいてグループに分類することにより、個々のグループに応じた処理で複数のグループを並列して演算することができる。例えば、参照フレーム毎に分類した後に位置が近接するインターマクロブロック同士を同一のグループとすることで同一の参照フレーム上の近接した画素値を参照することにより、メモリアクセスの効率を向上させることができる。
【０２１７】
なお、本発明の第１の実施の形態では、動き補償ブロックおよびフレーム内予測において符号化されるブロックは、便宜上、１６×１６画素の一種類のみとしたが、これに限定されるものではない。これらのブロックの大きさが、１６×１６画素と異なる場合においても同様にグループに分類することができる。
【０２１８】
なお、インターマクロブロックを構成する動き補償ブロックが複数ある場合について説明する。この場合において、インターマクロブロック画素値生成グループ分類部２３５は、参照フレームがインターマクロブロック単位で設定されているならマクロブロック単位でグループに分類することができる。一方、参照フレームが動き補償ブロックごとに設定されている場合には、インターマクロブロック画素値生成グループ分類部２３５は、動き補償ブロック単位でグループに分類することにより画素値を生成するためのグループを生成することができる。
【０２１９】
＜２．第２の実施の形態＞
本発明の第１の実施の形態では、インターマクロブロックに対する処理およびイントラマクロブロックに対する処理の何れについても行うことが可能な汎用の演算部を画像復号装置１００に備える例について説明した。この場合には、インターマクロブロックに対する処理およびイントラマクロブロックに対する処理の何れについても４つの演算部に順次演算処理を割り当てることができるため、第１演算部４３１乃至第４演算部４３４の稼働率を高めることができる。
【０２２０】
しかしながら、インターマクロブロックおよびイントラマクロブロックのそれぞれの演算処理を専用に行う演算部を設けることにより、各グループの演算処理をさらに効率的に速く演算することができると考えられる。
【０２２１】
そこで、本発明の第２の実施の形態では、インターマクロブロックおよびイントラマクロブロックのそれぞれの演算処理を専用に行う演算部を設けた例について説明する。
【０２２２】
［画素値復号部の機能構成例］
図２１は、本発明の第２の実施の形態における画素値生成部６００の機能構成例を示すブロック図である。ここでは、インターマクロブロックおよびイントラマクロブロックのそれぞれの演算処理を専用に行う演算部を備え、さらにインターマクロブロックの画素値生成グループを参照フレームごとに保持するキューを備える画素値生成部の一例について説明する。なお、本発明の第２の実施の形態は、本発明の第１の実施の形態の変形例である。すなわち、画像復号装置１００を構成する画素値生成部４００（図２に示す）の代わりに、画素値生成部６００を設けた例である。このため、本発明の第２の実施の形態における画素値生成部６００以外の機能構成については、本発明の第１の実施の形態における画像復号装置１００と略同様である。そこで、以下では、本発明の第１の実施の形態と異なる部分を中心に説明し、本発明の第１の実施の形態と共通する部分についての説明を省略する。
【０２２３】
なお、本発明の第２の実施の形態では、インターマクロブロックは、第１の実施の形態の図１０と同様に、フレームＡ、フレームＢ、およびフレームＣの３つのフレームの何れかの画素値を参照することを想定する。また、ここでは、動き補償ブロックおよびフレーム内予測ブロックは、図１において示したものと同様のものとする。
【０２２４】
この画素値生成部６００は、フレームグループキュー６１０と、イントラマクロブロックグループキュー６２０と、第１読み出し対象領域バッファ６３１と、第２読み出し対象領域バッファ６３２と、第３読み出し対象領域バッファ６３３とを備える。また、この画素値生成部６００は、第１演算部６４１と、第２演算部６４２と、第３演算部６４３と、イントラマクロブロック画素値演算部６６０とを備える。
【０２２５】
フレームグループキュー６１０は、図３において示した位置分類部２３７から信号線４０８を介して画素値生成グループ単位で供給されたインターマクロブロック情報を、参照フレームごとにグループ単位で保持するものである。このフレームグループキュー６１０は、第１フレームグループキュー６１１と、第２フレームグループキュー６１２と、第３フレームグループキュー６１３とを備える。
【０２２６】
第１フレームグループキュー６１１乃至第３フレームグループキュー６１３は、画素値生成グループ単位で供給されたインターマクロブロック情報を参照フレームごとにグループ単位で保持するものである。例えば、第１フレームグループキュー６１１は、図１１において示したフレームＡ群５３０のグループ５３１乃至５３６を保持し、第２フレームグループキュー６１２は、図１１において示したフレームＢ群５４０のグループ５４１乃至５４５を保持する。また、第３フレームグループキュー６１３は、図１１において示したフレームＣ群５５０のグループ５５１乃至５５５を保持する。
【０２２７】
この第１フレームグループキュー６１１乃至第３フレームグループキュー６１３は、例えば、図１４において示したグループキュー４１０と同様に、ＦＩＦＯタイプのキューにより構成される。この第１フレームグループキュー６１１乃至第３フレームグループキュー６１３は、グループ単位で保持したインターマクロブロック情報を、それぞれが接続される第１演算部４３１乃至第４演算部４３４に、保持された順に順次供給する。
【０２２８】
イントラマクロブロックグループキュー６２０は、図４で示したイントラ予測モード決定部２４４から信号線４０９を介して画素値生成グループ単位で供給されたイントラマクロブロック情報を、供給された順序を維持したままグループ単位で保持するものである。例えば、このイントラマクロブロックグループキュー６２０は、図１４において示したグループキュー４１０と同様に、ＦＩＦＯタイプのキューにより構成される。このイントラマクロブロックグループキュー６２０は、グループ単位で保持したイントラマクロブロック情報を、イントラマクロブロック画素値演算部６６０に、保持された順に順次供給する。
【０２２９】
第１読み出し対象領域バッファ６３１乃至第３読み出し対象領域バッファ６３３は、インターマクロブロックの画素値が復号される際に信号線１５１を介して供給される参照フレームの画素値を保持するものである。この第１読み出し対象領域バッファ６３１乃至第３読み出し対象領域バッファ６３３は、それぞれが接続される第１演算部６４１乃至第３演算部６４３が画素値を復号する際に参照する参照フレームの画素値を保持する。例えば、第１演算部６４１がフレームＡのグループについて画素値の復号を行う場合には、第１読み出し対象領域バッファ６３１は、フレームＡの全ての画素値を保持する。この第１読み出し対象領域バッファ６３１乃至第３読み出し対象領域バッファ６３３は、保持する画素値を、それぞれが接続される第１演算部６４１乃至第３演算部６４３に供給する。
【０２３０】
第１演算部６４１乃至第３演算部６４３は、第１フレームグループキュー６１１乃至第３フレームグループキュー６１３から供給された画素値生成グループごとにインターマクロブロックの画素値を復号するものである。
【０２３１】
ここで、この第１演算部６４１乃至第３演算部６４３の機能について、図１１（ａ）において示したグループ５３１乃至５３６が第１フレームグループキュー６１１に供給された場合を一例として説明する。
【０２３２】
まず、第１演算部６４１は、グループ５３１のインターマクロブロックのインターマクロブロック情報を第１フレームグループキュー６１１から取得する。そして、第１演算部６４１は、参照フレームＡの全ての画素値をフレームバッファ１５０から第１読み出し対象領域バッファ６３１に読み出させる。続いて、第１演算部６４１は、グループ５３１のインターマクロブロックの画素値を生成する。なお、グループ５３１のインターマクロブロックの画素値を生成する方法については、図１４において示した第１演算部４３１の説明と同様の方法であるので、ここでの説明を省略する。続いて、グループ５３２を第１フレームグループキュー６１１から取得し、画素値を生成する。このグループ５３２のインターマクロブロックの画素値を生成する際には、参照フレームＡの全ての画素値が第１読み出し対象領域バッファ６３１に既に読み出されているため改めて読み出す必要はない。そして、このグループ５３２と同様にして、グループ５３３乃至５３６のインターマクロブロックの画素値も生成される。すなわち、第１演算部６４１は参照フレームＡを参照するインターマクロブロックのグループの専用の演算部として機能し、第２演算部６４２は参照フレームＢを参照するインターマクロブロックのグループの専用の演算部として機能する。また、第３演算部６４３は、参照フレームＣを参照するインターマクロブロックのグループの専用の演算部として機能する。
【０２３３】
この第１演算部６４１乃至第３演算部６４３は、グループ単位で復号したインターマクロブロックの画素値を、信号線４０１を介してフレーム合成部２６０に供給する。
【０２３４】
イントラマクロブロック画素値演算部６６０は、イントラマクロブロックの画素値を生成するものである。このイントラマクロブロック画素値演算部６６０の機能は、図１４で示した第１演算部４３１の機能のうちイントラマクロブロックの画素値を生成する機能と同様のものであるため、ここでの詳細な説明を省略する。このイントラマクロブロック画素値演算部６６０は、グループ単位で復号したイントラマクロブロックの画素値を信号線４０１を介してフレーム合成部２６０に供給する。
【０２３５】
なお、ここでは、第１読み出し対象領域バッファ６３１乃至第３読み出し対象領域バッファ６３３は参照フレームの画素値を全て保持するものとしたが、これに限定されるものではない。例えば、例えば、参照フレームに対応する各グループに関する復号処理に必要な領域に含まれる画素値のみを保持するようにしてもよい。例えば、本発明の第１の実施の形態と同様に、図１５において示した画素値生成グループごとの読み出し対象領域４９０とすることができる。
【０２３６】
また、この図２１において示したような構成にすると、第１フレームグループキュー６１１乃至第３フレームグループキュー６１３に保持されるインターマクロブロックの総数に偏りがある場合には、画素値の生成が終わるタイミングが乖離することも想定される。そのため、画素値の生成処理が終了した第１演算部６４１乃至第３演算部６４３は、未だ終わっていない他の演算部の生成処理を、代わりに行うようにしてもよい。
【０２３７】
［画像復号装置の動作例］
次に、本発明の第２の実施の形態における画素値生成部６００の動作について図面を参照して説明する。
【０２３８】
図２２は、本発明の第２の実施の形態における画素値生成部６００による画像復号処理の処理手順例を示すフローチャートである。この処理手順例は、図１７および図２０に示すステップＳ９４０の処理手順の変形例である。
【０２３９】
まず、供給された順序を維持して、画素値生成グループに分類されたインターマクロブロック情報およびイントラマクロブロック情報が保持される（ステップＳ９５１）。この演算処理は、第１フレームグループキュー６１１乃至第３フレームグループキュー６１３およびイントラマクロブロックグループキュー６２０により行われる。
【０２４０】
続いて、第１演算部６４１乃至第３演算部６４３およびイントラマクロブロック画素値演算部６６０のそれぞれにおいて、演算が終了した演算部があるか否かが判断される（ステップＳ９５２）。そして、演算が終了した演算部があると判断された場合には、その演算が終了した演算部に画素値生成グループが供給され（ステップＳ９５３）、ステップＳ９５４に進む。
【０２４１】
一方、演算が終了した演算部が無いと判断された場合には（ステップＳ９５２）、画素値生成グループにおける生成順序に従ってマクロブロックの画素値の演算が継続して行われる（ステップＳ９５４）。この演算処理は、第１演算部６４１乃至第３演算部６４３およびイントラマクロブロック画素値演算部６６０により行われる。
【０２４２】
＜３．第３の実施の形態＞
本発明の第１および第２の実施の形態では、動き補償ブロックおよびフレーム内予測により符号化されるブロックが、マクロブロックと同じ大きさである場合について説明した。しかしながら、Ｈ.２６４／ＡＶＣ規格では、インターマクロブロックを複数の動き補償ブロックで構成させることにより、圧縮の精度が高い動画像データを生成することができる。例えば、動き補償ブロックのサイズは、１６×１６画素の他、１６×８画素、８×１６画素、８×８画素、８×４画素、４×８画素、４×４画素などがある。
【０２４３】
また、イントラマクロブロックに関しても複数のブロックで構成させることにより、より圧縮の精度が高い動画像データを生成することができる。このフレーム内予測により符号化されるブロックのサイズは、１６×１６画素の他、８×８画素、４×４画素などがある。
【０２４４】
本発明の第１および第２の実施の形態は、マクロブロックが複数のブロックにより構成されていたとしても適用することができる。しかしながら、逆離散コサイン変換処理に対するグループ分けをすることにより、さらに、高速化することができると考えられる。
【０２４５】
そこで、本発明の第３の実施の形態では、動き補償ブロックおよびフレーム内予測ブロックのサイズで逆離散コサイン変換を行うためのグループを生成する例について説明する。
【０２４６】
［画素値生成部の機能構成例］
図２３は、本発明の第３の実施の形態における画素値生成部７００の機能構成例を示すブロック図である。ここでは、インターマクロブロックおよびイントラマクロブロックの画素値を生成する際の逆離散コサイン変換処理に対するグループを生成する一例について説明する。本発明の第３の実施の形態は、本発明の第１の実施の形態の変形例である。すなわち、画像復号装置１００を構成する画素値生成部４００（図２に示す）の代わりに、画素値生成部７００を設けた例である。このため、本発明の第３の実施の形態における画素値生成部７００以外の機能構成については、本発明の第１の実施の形態における画像復号装置１００と略同様である。そこで、以下では、本発明の第１の実施の形態と異なる部分を中心に説明し、本発明の第１の実施の形態と共通する部分についての説明を省略する。
【０２４７】
なお、本発明の第３の実施の形態では、インターマクロブロックは、複数の動き補償ブロックにより構成されることを想定する。また、イントラマクロブロックは、複数のフレーム内予測ブロックにより構成されることを想定する。
【０２４８】
この画素値生成部７００は、インターマクロブロックグループキュー７１０と、イントラマクロブロックグループキュー７２０と、第１読み出し対象領域バッファ７３１と、第１インターマクロブロック演算部７３２とを備える。また、この画素値生成部７００は、第２読み出し対象領域バッファ７３３と、第２インターマクロブロック演算部７３４と、第１イントラマクロブロック演算部７４１と、第２イントラマクロブロック演算部７４２と、差分情報判別部７５０とを備える。さらに、この画素値生成部７００は、ブロックサイズ分類部７６０と、第１ＩＤＣＴ（Inverse Discrete Cosine Transform ）演算部７８１と、第２ＩＤＣＴ演算部７８２とを備える。
【０２４９】
インターマクロブロックグループキュー７１０は、図３において示した位置分類部２３７から信号線４０８を介して画素値生成グループ単位で供給されたインターマクロブロック情報を、供給された順序を維持した状態でグループ単位で保持するものである。例えば、このインターマクロブロックグループキュー７１０は、図１４において示したグループキュー４１０と同様に、ＦＩＦＯタイプのキューにより構成される。このインターマクロブロックグループキュー７１０は、その保持したインターマクロブロック情報をグループ単位で、第１インターマクロブロック演算部７３２および第２インターマクロブロック演算部７３４のうちの演算処理が終了した演算部に順次供給する。
【０２５０】
イントラマクロブロックグループキュー７２０は、図４において示したイントラ予測モード決定部２４４から信号線４０９を介して供給されたイントラマクロブロック情報を、供給された順序を維持した状態でグループ単位で保持するものである。例えば、このイントラマクロブロックグループキュー７２０は、図１４において示したグループキュー４１０と同様に、ＦＩＦＯタイプのキューにより構成される。このイントラマクロブロックグループキュー７２０は、その保持したインターマクロブロック情報をグループ単位で、第１イントラマクロブロック演算部７４１および第２イントラマクロブロック演算部７４２のうちの演算処理が終了した演算部に順次供給する。
【０２５１】
第１読み出し対象領域バッファ７３１および第２読み出し対象領域バッファ７３３は、インターマクロブロックの画素値が復号される際に信号線１５１を介して供給される参照フレームの画素値を保持するものである。この第１読み出し対象領域バッファ７３１および第２読み出し対象領域バッファ７３３の機能は、図１４において示した第１読み出し対象領域バッファ４２１乃至第４読み出し対象領域バッファ４２４と同様のものであるため、ここでの詳細な説明を省略する。この第１読み出し対象領域バッファ７３１および第２読み出し対象領域バッファ７３３は、保持した画素値を、それぞれが接続される第１インターマクロブロック演算部７３２および第２インターマクロブロック演算部７３４に供給する。
【０２５２】
第１インターマクロブロック演算部７３２および第２インターマクロブロック演算部７３４は、インターマクロブロックの画素値の予測値（予測画素値）をグループ単位で生成するものである。この第１インターマクロブロック演算部７３２および第２インターマクロブロック演算部７３４の機能は、図１４で示した第１演算部４３１の機能のうちインターマクロブロックの予測画素値を生成するまでの機能と同様のものである。そのため、この第１インターマクロブロック演算部７３２および第２インターマクロブロック演算部７３４の機能に関しては、ここでの詳細な説明を省略する。この第１インターマクロブロック演算部７３２および第２インターマクロブロック演算部７３４は、生成したインターマクロブロックの予測画素値を差分情報判別部７５０に供給する。なお、第１インターマクロブロック演算部７３２および第２インターマクロブロック演算部７３４は、特許請求の範囲に記載のインターマクロブロック予測値生成部の一例である。
【０２５３】
第１イントラマクロブロック演算部７４１および第２イントラマクロブロック演算部７４２は、イントラマクロブロックの画素値の予測値（予測画素値）を生成するものである。この第１イントラマクロブロック演算部７４１および第２イントラマクロブロック演算部７４２の機能は、図１４で示した第１演算部４３１の機能のうちイントラマクロブロックの予測画素値を生成するまでの機能と同様のものである。そのため、この第１イントラマクロブロック演算部７４１および第２イントラマクロブロック演算部７４２の機能に関しては、ここでの詳細な説明を省略する。この第１イントラマクロブロック演算部７４１および第２イントラマクロブロック演算部７４２は、生成したイントラマクロブロックの予測画素値を差分情報判別部７５０に供給する。なお、第１イントラマクロブロック演算部７４１および第２イントラマクロブロック演算部７４２は、特許請求の範囲に記載のイントラマクロブロック予測値生成部の一例である。
【０２５４】
差分情報判別部７５０は、動き補償ブロックおよびフレーム内予測ブロックに差分情報を有するか否かを判別するものである。この差分情報判別部７５０は、差分情報がないと判別されたブロックの予測画素値を、そのブロックの画素値として信号線４０１を介してフレーム合成部２６０に供給する。また、この差分情報判別部７５０は、差分情報を有すると判別されたブロックの予測画素値および差分情報をブロックサイズ分類部７６０に供給する。
【０２５５】
ブロックサイズ分類部７６０は、離散コサイン変換されたブロックの形状に基づいて、動き補償ブロックおよびフレーム内予測ブロックをグループに分類するものである。このブロックサイズ分類部７６０は、例えば、動き補償ブロックおよびフレーム内予測ブロックのうち４×４画素のブロックで符号化されたものを同一のグループ（ＩＤＣＴグループ）に分類する。このブロックサイズ分類部７６０は、ＩＤＣＴグループの情報が付与されたブロックの予測画素値および差分情報を第１ＩＤＣＴ演算部７８１および第２ＩＤＣＴ演算部７８２に供給する。なお、ブロックサイズ分類部７６０は、特許請求の範囲に記載のブロックサイズ分類部の一例である。
【０２５６】
第１ＩＤＣＴ演算部７８１および第２ＩＤＣＴ演算部７８２は、逆離散コサイン変換（ＩＤＣＴ）をすることにより画素値を復号するものである。この第１ＩＤＣＴ演算部７８１および第２ＩＤＣＴ演算部７８２は、例えば、画素値の差分情報を有する動き補償ブロックの画素値を復号する場合には、その差分情報に基づいて差分の画素値（差分画素値）を復号する。そして、予測画素値と差分画素値とを加算することによって、その動き補償ブロックの画素値を復号する。また、この第１ＩＤＣＴ演算部７８１および第２ＩＤＣＴ演算部７８２は、画素値の差分情報を有するフレーム内予測ブロックの画素値を復号する場合には、画素値の差分情報に基づいて差分画素値を復号する。そして、復号された差分画素値と予測画素値と加算することによって画素値を復号する。
【０２５７】
この第１ＩＤＣＴ演算部７８１および第２ＩＤＣＴ演算部７８２は、生成した画素値を信号線４０１を介してフレーム合成部２６０（図２に示す）に供給する。なお、第１ＩＤＣＴ演算部７８１および第２ＩＤＣＴ演算部７８２は、特許請求の範囲に記載の予測値および差分データに基づいて画像データを復号する画像データ復号部の一例である。
【０２５８】
［画像復号装置の動作例］
次に、本発明の第３の実施の形態における画素値生成部７００の動作について図面を参照して説明する。
【０２５９】
図２４は、本発明の第３の実施の形態における画素値生成部７００による画像復号処理（ステップＳ９６０）の処理手順例を示すフローチャートである。この処理手順例は、図１７および図２０に示すステップＳ９４０の処理手順の変形例である。
【０２６０】
まず、インターマクロブロックグループキュー７１０およびイントラマクロブロックグループキュー７２０により、供給された順序を維持して画素値生成グループが保持される（ステップＳ９６１）。
【０２６１】
次に、４つの演算部のうち何れかの演算部において演算が終了した演算部があるか否かが判断される（ステップＳ９６２）。なお、４つの演算部は、第１インターマクロブロック演算部７３２、第２インターマクロブロック演算部７３４、第１イントラマクロブロック演算部７４１および第２イントラマクロブロック演算部７４２である。そして、演算が終了した演算部があると判断された場合には、画素値生成グループに分類されたインターマクロブロック情報またはイントラマクロブロック情報がグループごとに、その演算が終了した演算部に供給される（ステップＳ９６３）。その後、ステップＳ９４４に進む。
【０２６２】
一方、演算が終了した演算部が無いと判断された場合には、画素値生成グループにおける生成順序に従って動き補償ブロックおよびフレーム内予測ブロックの予測画素値の演算が行われる（ステップＳ９５４）。次に、差分情報判別部７５０により、差分情報を有していることによる逆離散コサイン変換処理が必要か否かが判断される（ステップＳ９６５）。そして、差分情報がないと判断された場合には、予測画素値が動き補償ブロックおよびフレーム内予測ブロックの画素値としてフレーム合成部２６０に供給される（ステップＳ９６８）。
【０２６３】
一方、ステップＳ９６５において差分情報を有すると判断された場合には、ブロックサイズ分類部７６０により、ブロックサイズに基づいてグループに分類される（ステップＳ９６６）。そして、第１ＩＤＣＴ演算部７８１および第２ＩＤＣＴ演算部７８２により、差分情報から差分の画素値（差分画素値）が復号され、画素値の予測値と差分画素値とが加算されることにより画素値が復号され、フレーム合成部２６０に供給される（ステップＳ９６７）。
【０２６４】
このように、本発明の第３の実施の形態では、動き補償ブロックおよびフレーム内予測ブロックを、逆離散コサイン変換を行うためのグループに分類することができる。このことにより、逆離散コサイン変換を高速に行うことができる。
【０２６５】
なお、ここでは、動き補償ブロックおよびフレーム内予測ブロックのサイズが複数ある場合について説明したが、これに限定されるものではない。例えば、動き補償ブロックおよびフレーム内予測ブロックがマクロブロックと同一の大きさである場合には、ブロックサイズ分類部７６０を省略し、差分情報判別部７５０が差分情報の有無に基づいてグループを生成するようにしてもよい。
【０２６６】
＜４．第４の実施の形態＞
本発明の第３の実施の形態では、動き補償ブロックおよびフレーム内予測ブロックのサイズに基づいて逆離散コサイン変換を行うためのグループを生成する一例について説明した。
【０２６７】
この動き補償ブロックおよびフレーム内予測ブロックのサイズに基づくグループの生成は、参照関係が解消すればいつでも可能である。すなわち、動き補償ブロックに関しては、画素値生成グループを生成する段階で動き補償ブロックのサイズに基づいてグループの生成をすることができる。
【０２６８】
そこで、本発明の第４の実施の形態では、画素値生成グループを生成する段階において動き補償ブロックのサイズに基づいてグループを生成する例について説明する。
【０２６９】
［インターマクロブロック分類部の機能構成例］
図２５は、本発明の第４の実施の形態における動き補償ブロック分類部８００の機能構成例を示すブロック図である。本発明の第４の実施の形態では、動き補償ブロックのサイズに応じて分類する動き補償ブロック分類部８００の一例について説明する。なお、本発明の第４の実施の形態は、本発明の第１の実施の形態の変形例である。すなわち、画像復号装置１００を構成するインターマクロブロック分類部２３０（図２に示す）の代わりに、動き補償ブロック分類部８００を設け、画素値生成部４００（図２に示す）の代わりに、画素値生成部８３０を設けた例である。このため、本発明の第４の実施の形態では、動き補償ブロック分類部８００以外の機能構成については、本発明の第１の実施の形態における画像復号装置１００と略同様である。そこで、以下では、本発明の第１の実施の形態と異なる部分を中心に説明し、本発明の第１の実施の形態と共通する部分についての説明を省略する。
【０２７０】
本発明の第４の実施の形態では、インターマクロブロックは、１個の１６×１６画素の動き補償ブロック、４個の８×８画素の動き補償ブロック、および１６個の４×４画素の動き補償ブロックにより構成されることを想定する。また、各インターマクロブロックは、同一のフレームを参照フレームとすることを想定する。すなわち、４個の８×８画素の動き補償ブロックは全て同じ参照フレームを参照し、１６個の４×４画素の動き補償ブロックも全て同じ参照フレームを参照するものとする。
【０２７１】
動き補償ブロック分類部８００は、インターマクロブロックバッファ２３１と、動きベクトル生成順序決定部２３２と、動きベクトル生成グループ分類部２３３と、動きベクトル生成部２３４と、動き補償ブロックグループ分類部８１０とを備える。
【０２７２】
インターマクロブロックバッファ２３１、動きベクトル生成順序決定部２３２、動きベクトル生成グループ分類部２３３、および動きベクトル生成部２３４は、図３において示したものと同様のものである。このため、図３と同一の符号を付してここでの詳細な説明を省略する。
【０２７３】
動き補償ブロックグループ分類部８１０は、動き補償ブロックのサイズごとにインターマクロブロックを分類するものである。例えば、この動き補償ブロックグループ分類部８１０は、１６×１６画素の動き補償ブロックのグループと、８×８画素の動き補償ブロックのグループと、４×４画素の動き補償ブロックのグループとに動き補償ブロックを分類する。すなわち、この動き補償ブロックグループ分類部８１０は、各インターマクロブロックが同一のフレームを参照フレームとする場合には、動き補償ブロックのサイズが同一であるインターマクロブロックを同一のグループに分類する。この動き補償ブロックグループ分類部８１０は、グループの情報が付与されたインターマクロブロック情報を信号線４０８を介して画素値生成部８３０（図２７に示す）にグループ単位で供給する。なお、動き補償ブロックグループ分類部８１０は、特許請求の範囲に記載の動きベクトル検出単位ブロックグループ分類部の一例である。
【０２７４】
［動き補償ブロック分類部によるインターマクロブロックの分類例］
図２６は、本発明の第４の実施の形態における動き補償ブロックグループ分類部８１０によるインターマクロブロックの分類例を示す図である。
【０２７５】
図２６（ａ）には、動きベクトル生成部２３４により動きベクトルが生成された後のインターマクロブロック群８２０が示されている。動き補償ブロックは、動きベクトルが生成された後の処理においては、動き補償ブロック間の参照関係は不要になる。
【０２７６】
そのため、動き補償ブロックグループ分類部８１０は、動き補償ブロック間の参照関係とは無関係に動き補償ブロックが参照する参照フレームに基づいて動き補償ブロックを分類する。
【０２７７】
図２６（ｂ）には、図２６（ａ）において示したインターマクロブロック群８２０のインターマクロブロックが、動き補償ブロックグループ分類部８１０により分類されて生成された３つのグループが示されている。例えば、大サイズ動き補償ブロックグループ８２１と、中サイズ動き補償ブロックグループ８２２と、小サイズ動き補償ブロックグループ８２３との３つのグループが、動き補償ブロックグループ分類部８１０により生成される。大サイズ動き補償ブロックグループ８２１は、１６×１６画素の動き補償ブロックが属するグループである。また、中サイズ動き補償ブロックグループ８２２は、８×８画素の動き補償ブロックが属するグループである。また、小サイズ動き補償ブロックグループ８２３は、４×４画素の動き補償ブロックが属するグループである。
【０２７８】
このように、動き補償ブロックグループ分類部８１０は、動き補償ブロックを、動き補償ブロックのサイズごとのグループに分類する。
【０２７９】
［画素値復号部の機能構成例］
図２７は、本発明の第４の実施の形態における画素値生成部８３０の機能構成例を示すブロック図である。ここでは、動き補償ブロックのサイズに応じて割り当てられる演算部の個数が異なる画素値を復号する一例について説明する。
【０２８０】
この画素値生成部８３０は、大サイズ動き補償ブロックグループキュー８４１と、中サイズ動き補償ブロックグループキュー８４２と、小サイズ動き補償ブロックグループキュー８４３と、イントラマクロブロックグループキュー８５１とを備える。また、この画素値生成部８３０は、第１読み出し対象領域バッファ８６１と、第２読み出し対象領域バッファ８６２と、第３読み出し対象領域バッファ８６３と、第４読み出し対象領域バッファ８６４と、第５読み出し対象領域バッファ８６５とを備える。さらに、この画素値生成部８３０は、第６読み出し対象領域バッファ８６６と、第１演算部８７１と、第２演算部８７２と、第３演算部８７３とを備える。また、この画素値生成部８３０は、第４演算部８７４と、第５演算部８７５と、第６演算部８７６と、イントラマクロブロック画素値演算部８８０とを備える。
【０２８１】
なお、第４の実施の形態では、大サイズ動き補償ブロックグループキュー８４１、中サイズ動き補償ブロックグループキュー８４２および小サイズ動き補償ブロックグループキュー８４３の３個のキューをサイズ分類グループキューと示すものとする。
【０２８２】
大サイズ動き補償ブロックグループキュー８４１は、動き補償ブロックグループ分類部８１０からグループ単位で供給された大サイズの動き補償ブロックのインターマクロブロック情報を、供給された順序を維持した状態でグループ単位で保持するものである。例えば、この大サイズ動き補償ブロックグループキュー８４１は、図２６において示した大サイズ動き補償ブロックグループ８２１のインターマクロブロックのインターマクロブロック情報をグループ単位で保持する。
【０２８３】
中サイズ動き補償ブロックグループキュー８４２は、動き補償ブロックグループ分類部８１０からグループ単位で供給された中サイズの動き補償ブロックのインターマクロブロック情報を、供給された順序を維持した状態でグループ単位で保持するものである。例えば、この中サイズ動き補償ブロックグループキュー８４２は、図２６において示した中サイズ動き補償ブロックグループ８２２のインターマクロブロックのインターマクロブロック情報をグループ単位で保持する。
【０２８４】
小サイズ動き補償ブロックグループキュー８４３は、動き補償ブロックグループ分類部８１０からグループ単位で供給された小サイズの動き補償ブロックのインターマクロブロック情報を、供給された順序を維持した状態でグループ単位で保持するものである。例えば、この小サイズ動き補償ブロックグループキュー８４３は、図２６において示した小サイズ動き補償ブロックグループ８２３のインターマクロブロックのインターマクロブロック情報をグループ単位で保持する。
【０２８５】
イントラマクロブロックグループキュー８５１は、図４において示したイントラ予測モード決定部２４４からイントラマクロブロック生成グループ単位で供給されたイントラマクロブロック情報を、供給された順序を維持した状態で保持するものである。なお、このイントラマクロブロックグループキュー８５１は、図２１および図２３において示したイントラマクロブロックグループキュー６２０および７１０と同様のものであるため、ここでの詳細な説明を省略する。
【０２８６】
第１読み出し対象領域バッファ８６１乃至第６読み出し対象領域バッファ８６６は、インターマクロブロックの画素値が復号される際に信号線１５１を介して供給される参照フレームの画素値を保持するものである。この第１読み出し対象領域バッファ８６１乃至第６読み出し対象領域バッファ８６６の機能は、図１４において示した第１読み出し対象領域バッファ４２１乃至第４読み出し対象領域バッファ４２４と同様のものであるため、ここでの詳細な説明を省略する。
【０２８７】
第１演算部８７１乃至第６演算部８７６は、インターマクロブロックの画素値を復号するものである。この第１演算部８７１乃至第６演算部８７６は、インターマクロブロックの画素値生成グループの演算量に従って演算するグループのサイズが割り当てられ、その割り当てに応じてサイズ分類グループキューの３個のキューの何れかに接続される。すなわち、演算量が最も多いグループが保持されるキューには最も多い数の演算部が接続され、演算量が最も少ないグループが保持されるキューには最も少ない数の演算部が接続される。
【０２８８】
例えば、第１演算部８７１は、大サイズ動き補償ブロックグループキュー８４１から大サイズ動き補償ブロックグループのインターマクロブロック情報をグループ単位で読み出し、その読み出したインターマクロブロックの画素値を生成する。第２演算部８７２および第３演算部８７３は、中サイズ動き補償ブロックグループキュー８４２から中サイズ動き補償ブロックグループのインターマクロブロック情報をグループ単位で読み出し、その読み出したインターマクロブロックの画素値を生成する。第４演算部８７４および第６演算部８７６は、小サイズ動き補償ブロックグループキュー８４３から小サイズ動き補償ブロックグループのインターマクロブロック情報を読み出し、その読み出したインターマクロブロックの画素値を生成する。この第１演算部８７１乃至第６演算部８７６における画素値の生成方法は、図１４において示した第１演算部４３１におけるインターマクロブロックの画素値の生成方法と同様のものであるため、ここでの詳細な説明を省略する。
【０２８９】
イントラマクロブロック画素値演算部８８０は、イントラマクロブロックの画素値を生成するものである。このイントラマクロブロック画素値演算部８８０の機能は、図１４で示した第１演算部４３１の機能のうちイントラマクロブロックの画素値を生成する機能と同様のものであるため、ここでの詳細な説明を省略する。
【０２９０】
このように、本発明の第４の実施の形態では、動き補償ブロックグループ分類部８１０において動き補償ブロックのサイズに基づいてインターマクロブロックをグループに分類することにより、サイズに応じた演算部の割り当てを行うことができる。すなわち、演算量に応じた演算部の割り当てることにより空いている演算部を減少させることができ、演算処理の効率を高めることができる。
【０２９１】
なお、ここでは、動き補償ブロックのサイズのみでグループを生成する動き補償ブロックグループ分類部８１０について説明したが、これに限定されるものではない。例えば、図３において示した参照先分類部２３６をさらに設けることにより、インターマクロブロックが参照する参照フレームおよび動き補償ブロックのサイズに基づいてインターマクロブロックを分類するようにしてもよい。また、図３において示した位置分類部２３７をさらに設けることにより、インターマクロブロックの現フレームにおける位置に基づいてさらに分類するようにしてもよい。
【０２９２】
なお、ここでは、インターマクロブロック単位で参照フレームが設定されている例について説明したが、これに限定されるものではない。動き補償ブロックごとに参照フレームが設定されている場合でも、第１読み出し対象領域バッファ８６１乃至第６読み出し対象領域バッファ８６６において参照するフレームが変わるたびに新たに参照する画素値を読み出すことにより画素値を生成することができる。また、この場合においては、参照先分類部２３６をさらに設けて動き補償ブロックの参照フレームに基づいて動き補償ブロック単位でグループに分類するようにしてもよい。これにより、第１の実施の形態と同様に、第１読み出し対象領域バッファ８６１乃至第６読み出し対象領域バッファ８６６にグループごとの読み出し対象領域４９０を読み出すことによる画素値の生成をすることができる。
【０２９３】
このように、本発明の実施の形態によれば、マクロブロックをグループに分類させることにより、効率良く画像を復号することができる。また、本発明の実施の形態では、Ｈ.２６４／ＡＶＣ規格の動画像データを復号する画像復号装置１００について説明したが、Ｈ.２６４／ＡＶＣ規格以外のＭＰＥＧ−２およびＭＰＥＧ−４などに対しても適用することができる。例えば、ＭＰＥＧ−２はイントラ予測モードがないが、動きベクトルを生成するためのグループおよびインターマクロブロックの画素値生成グループなどは適用することができる。
【０２９４】
なお、本発明の実施の形態は本発明を具現化するための一例を示したものであり、本発明の実施の形態において明示したように、本発明の実施の形態における事項と、特許請求の範囲における発明特定事項とはそれぞれ対応関係を有する。同様に、特許請求の範囲における発明特定事項と、これと同一名称を付した本発明の実施の形態における事項とはそれぞれ対応関係を有する。ただし、本発明は実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において実施の形態に種々の変形を施すことにより具現化することができる。
【０２９５】
また、本発明の実施の形態において説明した処理手順は、これら一連の手順を有する方法として捉えてもよく、また、これら一連の手順をコンピュータに実行させるためのプログラム乃至そのプログラムを記憶する記録媒体として捉えてもよい。この記録媒体として、例えば、ＣＤ（Compact Disc）、ＭＤ（MiniDisc）、ＤＶＤ（Digital Versatile Disk）、メモリカード、ブルーレイディスク（Blu-ray Disc（登録商標））等を用いることができる。
【符号の説明】
【０２９６】
１００  画像復号装置
１１０  ビットストリーム入力部
１２０  可変長復号部
１４０  フィルタ処理部
１５０  フレームバッファ
１６０  画像出力部
２００  フレーム復号部
２１０  固定長データバッファ
２２０  マクロブロック判別部
２３０  インターマクロブロック分類部
２３１  インターマクロブロックバッファ
２３２  動きベクトル生成順序決定部
２３３  動きベクトル生成グループ分類部
２３４  動きベクトル生成部
２３５  インターマクロブロック画素値生成グループ分類部
２３６  参照先分類部
２３７  位置分類部
２４０  イントラマクロブロック分類部
２４１  イントラマクロブロックバッファ
２４２  イントラマクロブロック順序決定部
２４３  イントラマクロブロックグループ分類部
２６０  フレーム合成部
４００、６００、７００、８３０  画素値生成部
４１０  グループキュー
４２１、６３１、７３１、８６１  第１読み出し対象領域バッファ
４２２、６３２、７３３、８６２  第２読み出し対象領域バッファ
４２３、６３３、８６３  第３読み出し対象領域バッファ
４２４、８６４  第４読み出し対象領域バッファ
４３１、６４１、８７１  第１演算部
４３２、６４２、８７２  第２演算部
４３３、６４３、８７３  第３演算部
４３４、８７４  第４演算部
６１０  フレームグループキュー
６１１  第１フレームグループキュー
６１２  第２フレームグループキュー
６１３  第３フレームグループキュー
６２０  イントラマクロブロックグループキュー
６６０、８８０  イントラマクロブロック画素値演算部
７１０  インターマクロブロックグループキュー
７２０、８５１  イントラマクロブロックグループキュー
７３２  第１インターマクロブロック演算部
７３４  第２インターマクロブロック演算部
７４１  第１イントラマクロブロック演算部
７４２  第２イントラマクロブロック演算部
７５０  差分情報判別部
７６０  ブロックサイズ分類部
７８１  第１ＩＤＣＴ演算部
７８２  第２ＩＤＣＴ演算部
８００  動き補償ブロック分類部
８１０  動き補償ブロックグループ分類部
８４１  大サイズ動き補償ブロックグループキュー
８４２  中サイズ動き補償ブロックグループキュー
８４３  小サイズ動き補償ブロックグループキュー
８６５  第５読み出し対象領域バッファ
８６６  第６読み出し対象領域バッファ
８７５  第５演算部
８７６  第６演算部
【図１】
2011066638.tif 000003
【図２】
2011066638.tif 000004
【図３】
2011066638.tif 000005
【図４】
2011066638.tif 000006
【図５】
2011066638.tif 000007
【図６】
2011066638.tif 000008
【図７】
2011066638.tif 000009
【図８】
2011066638.tif 000010
【図９】
2011066638.tif 000011
【図１０】
2011066638.tif 000012
【図１１】
2011066638.tif 000013
【図１２】
2011066638.tif 000014
【図１３】
2011066638.tif 000015
【図１４】
2011066638.tif 000016
【図１５】
2011066638.tif 000017
【図１６】
2011066638.tif 000018
【図１７】
2011066638.tif 000019
【図１８】
2011066638.tif 000020
【図１９】
2011066638.tif 000021
【図２０】
2011066638.tif 000022
【図２１】
2011066638.tif 000023
【図２２】
2011066638.tif 000024
【図２３】
2011066638.tif 000025
【図２４】
2011066638.tif 000026
【図２５】
2011066638.tif 000027
【図２６】
2011066638.tif 000028
【図２７】
2011066638.tif 000029