(57)【要約】【課題】本発明は、例えばＨ．２６４／ＭＰＥＧ−４ＡＶＣ規格に従ってビデオデータを符号化、復号化する場合に適用して、バスの一時的な負荷の増大を防止する。【解決手段】本発明は、複数のマクロブロック処理部で処理中の参照画像データ数の総計が、目標参照画像データ数となるように、マクロブロック処理部で処理可能なマクロブロックから各マクロブロック処理部の処理対象マクロブロックを設定する。【選択図】        図１
2007318517.tif 000002
【特許請求の範囲】
【請求項１】
複数のマクロブロック処理部を用いて、マクロブロック単位で画像データを符号化処理又は復号化処理する画像データの処理方法において、
前記複数のマクロブロック処理部は、
それぞれ前記マクロブロック単位で、最適予測モードに応じて、メモリに保持した参照フレームの参照画像データをバスを介してロードし、
該ロードした参照画像データを動き補償して予測値を生成し、
前記予測値を用いて前記画像データを符号化処理又は復号化処理し、
前記動き補償に使用する参照画像データ数が、前記最適予測モードに応じて変化し、
前記画像データの処理方法は、
前記複数のマクロブロック処理部で処理中の前記マクロブロックにおける前記参照画像データ数の総計が、目標参照画像データ数となるように、前記複数のマクロブロック処理部で処理可能なマクロブロックから、前記複数のマクロブロック処理部に処理対象のマクロブロックを設定するマクロブロック設定のステップを有する
ことを特徴とする画像データの処理方法。
【請求項２】
前記複数のマクロブロック処理部は、
前記マクロブロック単位で、前記最適予測モードに応じて、前記マクロブロック処理部で処理の完了した隣接マクロブロックの画像データを参照して前記画像データを処理し、
マクロブロック設定のステップは、
前記マクロブロック処理部で処理の完了した隣接マクロブロックの画像データを参照可能なマクロブロックを選択して、前記処理可能なマクロブロックに設定する
ことを特徴とする請求項１に記載の画像データの処理方法。
【請求項３】
前記複数のマクロブロック処理部は、
前記最適予測モードに応じて、前記マクロブロック処理部で処理の完了した隣接マクロブロックの画像データを参照して、マクロブロック単位で、前記画像データを処理し、
前記画像データの処理方法は、
前記複数のマクロブロック処理部における処理の前処理を実行する前処理のステップを有し、
前記マクロブロック設定のステップは、
前記前処理のステップの処理を完了した前記マクロブロックから、前記マクロブロック処理部で処理の完了した隣接マクロブロックの画像データを参照可能なマクロブロックを選択して、前記処理可能なマクロブロックに設定する
ことを特徴とする請求項１に記載の画像データの処理方法。
【請求項４】
前記マクロブロック設定のステップは、
前記処理可能なマクロブロックにおける前記参照画像データ数から、前記目標参照画像データ数を計算する目標参照画像データ数の計算ステップを有する
ことを特徴とする請求項１に記載の画像データの処理方法。
【請求項５】
前記目標参照画像データ数の計算ステップは、
前記処理可能なマクロブロックにおける前記参照画像データ数の平均値を求めて、前記目標参照画像データ数に設定する
ことを特徴とする請求項４に記載の画像データの処理方法。
【請求項６】
複数のマクロブロック処理部を用いて、マクロブロック単位で画像データを符号化処理又は復号化処理する画像データの処理方法のプログラムにおいて、
前記複数のマクロブロック処理部は、
それぞれ前記マクロブロック単位で、最適予測モードに応じて、メモリに保持した参照フレームの参照画像データをバスを介してロードし、
該ロードした参照画像データを動き補償して予測値を生成し、
前記予測値を用いて前記画像データを符号化処理又は復号化処理し、
前記動き補償に使用する参照画像データ数が、前記最適予測モードに応じて変化し、
前記画像データの処理方法のプログラムは、
前記複数のマクロブロック処理部で処理中の前記マクロブロックにおける前記参照画像データ数の総計が、目標参照画像データ数となるように、前記複数のマクロブロック処理部で処理可能なマクロブロックから、前記複数のマクロブロック処理部に処理対象のマクロブロックを設定するマクロブロック設定のステップを有する
ことを特徴とする画像データの処理方法のプログラム。
【請求項７】
複数のマクロブロック処理部を用いて、マクロブロック単位で画像データを符号化処理又は復号化処理する画像データの処理方法のプログラムを記録した記録媒体において、
前記複数のマクロブロック処理部は、
それぞれ前記マクロブロック単位で、最適予測モードに応じて、メモリに保持した参照フレームの参照画像データをバスを介してロードし、
該ロードした参照画像データを動き補償して予測値を生成し、
前記予測値を用いて前記画像データを符号化処理又は復号化処理し、
前記動き補償に使用する参照画像データ数が、前記最適予測モードに応じて変化し、
前記画像データの処理方法のプログラムは、
前記複数のマクロブロック処理部で処理中の前記マクロブロックにおける前記参照画像データ数の総計が、目標参照画像データ数となるように、前記複数のマクロブロック処理部で処理可能なマクロブロックから、前記複数のマクロブロック処理部に処理対象のマクロブロックを設定するマクロブロック設定のステップを有する
ことを特徴とする画像データの処理方法のプログラムを記録した記録媒体。
【請求項８】
複数のマクロブロック処理部を用いて、マクロブロック単位で画像データを符号化処理又は復号化処理する画像データの処理装置において、
前記複数のマクロブロック処理部は、
それぞれ前記マクロブロック単位で、最適予測モードに応じて、メモリに保持した参照フレームの参照画像データをバスを介してロードし、
該ロードした参照画像データを動き補償して予測値を生成し、
前記予測値を用いて前記画像データを符号化処理又は復号化処理し、
前記動き補償に使用する参照画像データ数が、前記最適予測モードに応じて変化し、
前記画像データの処理装置は、
前記複数のマクロブロック処理部で処理中の前記マクロブロックにおける前記参照画像データ数の総計が、目標参照画像データ数となるように、前記複数のマクロブロック処理部で処理可能なマクロブロックから、前記複数のマクロブロック処理部に処理対象のマクロブロックを設定するマクロブロック設定部を有する
ことを特徴とする画像データの処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像データの処理方法、画像データの処理方法のプログラム、画像データの処理方法のプログラムを記録した記録媒体及び画像データの処理装置に関し、例えばＨ．２６４／ＭＰＥＧ−４ＡＶＣ（ITU-T Rec. H.264 ISO/IEC 14496-10 AVC ）規格に従ってビデオデータを符号化、復号化する場合に適用することができる。本発明は、複数のマクロブロック処理部で処理中の参照画像データ数の総計が、目標参照画像データ数となるように、マクロブロック処理部で処理可能なマクロブロックから各マクロブロック処理部の処理対象マクロブロックを設定することにより、複数の処理部で同時並列的に画像データを符号化処理、復号化処理する場合に、バスの一時的な負荷の増大を防止する。
【背景技術】
【０００２】
従来、各種映像機器では、Ｈ．２６４／ＭＰＥＧ−４ＡＶＣ、ＷＭＶ９（Windows Media Video 9 ）、ＭＰＥＧ−４（ISO/IEC14496 Information Technology-Generic Coding of Audio-Visual Object ）等で画像データを符号化処理、復号化処理している。ここでこれらの符号化方法は、ラスタ走査の順序で、マクロブロックをイントラ符号化処理、インター符号化処理する。
【０００３】
ここでマクロブロックは、イントラ符号化処理、インター符号化処理の基本処理単位である。輝度信号のマクロブロックは、図１８（Ａ）及び（Ｂ）に示すように、水平方向及び垂直方向に１６画素×１６画素のブロックである。Ｈ．２６４／ＭＰＥＧ−４ＡＶＣでは、各マクロブロックを最適予測モードで処理しており、この最適予測モードによっては、１つマクロブロックを細分割して動き補償する場合がある。
【０００４】
ここでこの動き補償における処理単位は、１６画素×１６画素のマクロブロックの他に、図１８（Ｂ１）〜（Ｂ３）に示すように、１６画素×１６画素のマクロブロックを水平方向及び又は垂直方向に分割した１６画素×８画素、８画素×１６画素、８画素×８画素のブロックが用意されている。なおＨ．２６４／ＭＰＥＧ−４ＡＶＣでは、これら１６画素×８画素、８画素×１６画素、８画素×８画素のブロックもマクロブロックと称され、１６画素×１６画素のマクロブロックと同様に、マクロブロックタイプ（mb type ）で特定される。図１９〜図２１は、各スライスにおけるこのマクロブロックタイプ（mb type）と動き補償処理との関係を示す図表である。
【０００５】
また動き補償において、８画素×８画素のマクロブロックは、図１８（Ｃ１）〜（Ｃ４）に示すように、さらに水平方向及び又は垂直方向に分割された８画素×４画素、４画素×８画素、又は４画素×４画素のサブマクロブロック単位で処理される場合もある。ここでサブマクロブロックは、サブマクロブロックタイプ（sb mb type）で特定される。図２２及び図２３は、このサブマクロブロックタイプ（sb mb type）と動き補償処理との対応関係を示す図表である。なお８画素×８画素のマクロブロックは、これらサブマクロブロックの階層では、サブマクロブロックと称される。
【０００６】
ここでＩスライスは、図１９に示すように、１６画素×１６画素のマクロブロックだけがイントラ予測で動き補償される。これに対して図２０に示すように、Ｐスライスでは、１６画素×１６画素、１６画素×８画素、８画素×１６画素のマクロブロックが前予測で動き補償され、又は８画素×８画素のマクロブロックが図２２に示すように処理される。またＢスライスでは、図２１に示すように、１６画素×１６画素、１６画素×８画素、８画素×１６画素のマクロブロックが前方向、又は双方向で動き補償され、又は８画素×８画素のマクロブロックが図２３に示すように処理される。
【０００７】
またＨ．２６４／ＭＰＥＧ−４ＡＶＣのインター符号化処理では、６タップのフィルタを用いて１／４画素精度で動き補償している。すなわち図２４に示すように、黒丸で示す整数画素位置の予測値を求める場合、参照フレームの対応する画素値を割り当てて予測値を生成する。これに対して四角印で示すように、１／２画素精度の位置である隣接する画素間の中間位置の予測値を求める場合、６タップのフィルタを用いて前後３つの画素値から予測値を生成する。またさらに三角印で示す１／４画素精度の予測値を生成する場合、同様に６タップのフィルタを用いて、前後、３つの１／２画素精度の予測値から予測値を求める。
【０００８】
従って４画素×４画素のサブマクロブロックを動き補償する場合、図２５に示すように、４画素×４画素のサブマクロブロックに対して水平方向及び垂直方向、両側にそれぞれ２画素及び３画素だけ大きな領域である９×９画素の領域の参照画像データが必要になり、この場合、８１画素の参照画像データが必要になる。従って８×８画素のサブマクロブロックの双方向予測では、８１×２×４＝６４８個の参照画像データが必要になり、１６画素×１６画素のマクロブロックの全てを４画素×４画素のサブマクロブロックで処理する場合、６４８×４＝２５９２個の参照画像データが必要になる。なおここで参照画像データは、動き補償に使用する参照フレームの画像データである。
【０００９】
ここで図２６及び図２７は、この動き補償と必要画像データ数の関係を示す図表である。ここでイントラ予測では、参照画像データは不要となる。これに対して１６画素×１６画素のマクロブロックでは、前予測に、（１６＋５）画素×（１６＋５）画素＝４４１個の参照画像データが必要になり、双方向予測では、４４１個×２＝８８２個の参照画像データが必要になる。
【００１０】
このような画像データの処理に関して、例えば特開２０００−３００４７号公報には、複数のマクロブロックを同時並列的に処理して、符号化処理、復号化処理を高速度化する方法が提案されている。
【００１１】
ここで図２８は、この特開２０００−３００４７号公報に提案の手法を適用するとして、本願出願人が検討したＨ．２６４／ＭＰＥＧ−４ＡＶＣのエンコーダ／デコーダを示すブロック図である。このエンコーダ／デコーダ１において、ビデオＩ／Ｏ２は、画像データを入出力する入出力回路であり、符号化処理する画像データを入力してバスＢＵＳに出力し、また復号化処理した画像データを出力する。ビットストリームＩ／Ｏ３は、ビットストリームの入出力回路であり、符号化処理したビットストリームを出力し、また復号化処理するビットストリームを入力する。メモリ４は、ビデオＩ／Ｏ２、ビットストリームＩ／Ｏ３を介してバスＢＵＳに入力された画像データ及びビットストリーム、参照画像データ、処理途中の各種データ、処理結果の画像データ及びビットストリームを一時格納するメモリであり、保持したデータをバスＢＵＳに出力してこのエンコーダ／デコーダ１の各部に出力する。
【００１２】
前処理部５は、符号化時、メモリ４に保持した画像データを順次入力して最適予測モードを選択し、動きベクトルを検出して出力する。なおここでこの最適予測モードは、メモリ４に保持した符号化処理前の画像データを参照画像データに設定して実行する。また前処理部５は、復号化時、メモリ４に保持したビットストリームを読み出してマクロブロックタイプ、動き補償等の情報をデコードする。
【００１３】
並列処理部６は、この前処理部５で処理された画像データ、ビットストリームをメモリ４を介して入力し、複数マクロブロックを、同時並列的に処理して符号化、復号化の処理を実行する。すなわち並列処理部６は、複数のマクロブロック処理部（ＭＢ処理部）７Ａ〜７Ｎと、この複数のマクロブロック処理部７Ａ〜７Ｎの動作を管理する状態管理部８が設けられる。
【００１４】
ここで各マクロブロック処理部７Ａ〜７Ｎは、符号化時、それぞれ前処理部５で処理されてメモリ４に保持された画像データをマクロブロック単位で入力し、前処理部５で選択された最適予測モードに従って符号化処理する。また符号化処理結果であるビットストリームをメモリ４に格納する。また復号化時、これとは逆に前処理部５で処理されてメモリ４に保持されたビットストリームをマクロブロック単位で入力し、前処理部５で検出された情報に従って復号化処理する。また復号化処理結果である画像データをメモリ４に格納する。
【００１５】
状態管理部８は、Ｈ．２６４／ＭＰＥＧ−４ＡＶＣで定められたマクロブロック間の参照関係に基づいて、前処理部５で処理された画像データ、ビットストリームのうちで、マクロブロック処理部７Ａ〜７Ｎで処理可能なマクロブロックを選択し、この選択したマクロブロックの処理を各マクロブロック処理部７Ａ〜７Ｎに指示する。
【００１６】
後処理部９は、この並列処理部６で処理されてメモリ４に保持されたデータを後処理してビットストリーム、画像データを出力する。すなわち後処理部９は、符号化時、並列処理部６で処理されてメモリ４に保持されたデータに量子化スケール、マクロブロックタイプ等の情報を付加してビットストリームを生成し、また並列処理部６で処理されてメモリ４に保持された参照画像データをデブロックフィルタリング処理してブロック歪みを除去する。これに対して復号化時、並列処理部で復号された画像データをデブロックフィルタリング処理して出力する。
【００１７】
図２９は、このエンコーダ／デコーダ１において、１フレームの画像データの符号化処理を示すフローチャートである。このエンコーダ／デコーダ１において、画像データは、ビデオＩ／Ｏ２を介してメモリ４に保持され、各フレームの画像データが順次符号化処理される。画像データは、符号化処理順序になると、この処理手順が開始されてステップＳＰ１からステップＳＰ２に移り、メモリ４から読み出されて前処理部５で処理された後、処理結果がメモリ４に格納される。また続くステップＳＰ３においてマクロブロック処理部７Ａ〜７Ｎで順次マクロブロック単位で並列処理され、続くステップＳＰ４において後処理部９で処理される。また続くステップＳＰ５において、１フレーム分の処理の完了が後処理部９から通知されると、ステップＳＰ６に移ってこの処理手順を終了する。
【００１８】
この図２８の構成によれば、各部の構成をそれ程、高速度化しなくても、高解像度の画像データ、ビットストリームを符号化、復号化することができると考えられる。
【００１９】
しかしながら図２６及び図２７に示したように、各マクロブロックでは最適予測モードに応じて処理に必要な画像データの数が大きく変化することから、単にマクロブロック処理部７Ａ〜７Ｎで処理可能となったマクロブロックを並列処理したのでは、バスＢＵＳの負荷が一時的に著しく増大することが判った。
【００２０】
すなわち１つのマクロブロックを処理する場合に必要な画像データ数は（図２６）、イントラ予測で最小の０個であるのに対し、８画素×８画素のサブマクロブロック単位で処理する場合に最大の２５９２個である。従ってｎ個のマクロブロック処理部で並列処理する場合、最小で０×ｎ個の画像データをメモリ４から並列処理部６に転送することが必要になるのに対し、最大で２５９２×ｎ個の画像データをメモリ４から並列処理部６に転送することが必要になる。従ってバスＢＵＳは、平均レートはそれ程高く無いにも係わらず、この２５９２×ｎ個の画像データを転送可能に高性能に構成することが必要になる。
【００２１】
ここで図３０は、このメモリ４から並列処理部６に転送することが必要な参照画像データのデータ数を検討した特性曲線図である。この図３０において矢印Ａで示す部分が、最大数の画像データを転送することが必要になる期間である。この矢印Ａの部分で何ら障害無く画像データを転送可能に高性能にバスＢＵＳを構成すると、バスＢＵＳは、他の殆どの期間の間、遊んでいることになる。
【特許文献１】特開２０００−３００４７号公報
【発明の開示】
【発明が解決しようとする課題】
【００２２】
本発明は以上の点を考慮してなされたもので、複数の処理部で同時並列的に画像データを符号化処理、復号化処理する場合に、バスの一時的な負荷の増大を防止することができる画像データの処理方法、画像データの処理方法のプログラム、画像データの処理方法のプログラムを記録した記録媒体及び画像データの処理装置を提案しようとするものである。
【課題を解決するための手段】
【００２３】
上記の課題を解決するため請求項１の発明は、複数のマクロブロック処理部を用いて、マクロブロック単位で画像データを符号化処理又は復号化処理する画像データの処理方法に適用して、前記複数のマクロブロック処理部は、それぞれ前記マクロブロック単位で、最適予測モードに応じて、メモリに保持した参照フレームの参照画像データをバスを介してロードし、該ロードした参照画像データを動き補償して予測値を生成し、前記予測値を用いて前記画像データを符号化処理又は復号化処理し、前記動き補償に使用する参照画像データ数が、前記最適予測モードに応じて変化し、前記画像データの処理方法は、前記複数のマクロブロック処理部で処理中の前記マクロブロックにおける前記参照画像データ数の総計が、目標参照画像データ数となるように、前記複数のマクロブロック処理部で処理可能なマクロブロックから、前記複数のマクロブロック処理部に処理対象のマクロブロックを設定するマクロブロック設定のステップを有するようにする。
【００２４】
また請求項６の発明は、複数のマクロブロック処理部を用いて、マクロブロック単位で画像データを符号化処理又は復号化処理する画像データの処理方法のプログラムに適用して、前記複数のマクロブロック処理部は、それぞれ前記マクロブロック単位で、最適予測モードに応じて、メモリに保持した参照フレームの参照画像データをバスを介してロードし、該ロードした参照画像データを動き補償して予測値を生成し、前記予測値を用いて前記画像データを符号化処理又は復号化処理し、前記動き補償に使用する参照画像データ数が、前記最適予測モードに応じて変化し、前記画像データの処理方法のプログラムは、前記複数のマクロブロック処理部で処理中の前記マクロブロックにおける前記参照画像データ数の総計が、目標参照画像データ数となるように、前記複数のマクロブロック処理部で処理可能なマクロブロックから、前記複数のマクロブロック処理部に処理対象のマクロブロックを設定するマクロブロック設定のステップを有するようにする。
【００２５】
また請求項７の発明は、複数のマクロブロック処理部を用いて、マクロブロック単位で画像データを符号化処理又は復号化処理する画像データの処理方法のプログラムを記録した記録媒体に適用して、前記複数のマクロブロック処理部は、それぞれ前記マクロブロック単位で、最適予測モードに応じて、メモリに保持した参照フレームの参照画像データをバスを介してロードし、該ロードした参照画像データを動き補償して予測値を生成し、前記予測値を用いて前記画像データを符号化処理又は復号化処理し、前記動き補償に使用する参照画像データ数が、前記最適予測モードに応じて変化し、前記画像データの処理方法のプログラムは、前記複数のマクロブロック処理部で処理中の前記マクロブロックにおける前記参照画像データ数の総計が、目標参照画像データ数となるように、前記複数のマクロブロック処理部で処理可能なマクロブロックから、前記複数のマクロブロック処理部に処理対象のマクロブロックを設定するマクロブロック設定のステップを有するようにする。
【００２６】
また請求項８の発明は、複数のマクロブロック処理部を用いて、マクロブロック単位で画像データを符号化処理又は復号化処理する画像データの処理装置に適用して、前記複数のマクロブロック処理部は、それぞれ前記マクロブロック単位で、最適予測モードに応じて、メモリに保持した参照フレームの参照画像データをバスを介してロードし、該ロードした参照画像データを動き補償して予測値を生成し、前記予測値を用いて前記画像データを符号化処理又は復号化処理し、前記動き補償に使用する参照画像データ数が、前記最適予測モードに応じて変化し、前記画像データの処理装置は、前記複数のマクロブロック処理部で処理中の前記マクロブロックにおける前記参照画像データ数の総計が、目標参照画像データ数となるように、前記複数のマクロブロック処理部で処理可能なマクロブロックから、前記複数のマクロブロック処理部に処理対象のマクロブロックを設定するマクロブロック設定部を有するようにする。
【００２７】
請求項１、請求項６、請求項７又は請求項８の構成によれば、最適予測モードに応じて各マクロブロック処理部が使用する参照画像データ数が変化しても、複数のマクロブロック処理部における参照画像データ数はほぼ目標参照画像データ数に維持される。従って複数の処理部で同時並列的に画像データを符号化処理、復号化処理する場合に、バスの一時的な負荷の増大を防止することができる。
【発明の効果】
【００２８】
本発明によれば、複数の処理部で同時並列的に画像データを符号化処理、復号化処理する場合に、バスの一時的な負荷の増大を防止することができる。
【発明を実施するための最良の形態】
【００２９】
以下、適宜図面を参照しながら本発明の実施例を詳述する。
【実施例１】
【００３０】
（１）実施例の構成
図２は、本発明の実施例１のエンコーダ／デコーダを示すブロック図である。このエンコーダ／デコーダ１０は、Ｈ．２６４／ＭＰＥＧ−４ＡＶＣのフォーマットで画像データを符号化処理、復号化処理する。なおこのエンコーダ／デコーダ１０において、図２８について上述したエンコーダ／デコーダ１と同一の構成は、対応する符号を付して示し、重複した説明は省略する。また以下において、マクロブロックは、特に大きさを記載している場合を除いて、１６画素×１６画素の基本処理単位のマクロブロックを意味するものとする。
【００３１】
このエンコーダ／デコーダ１０は、バスＢＵＳに接続された演算処理手段のプログラムの実行により、この演算処理部で前処理部１１、並列処理部１２、後処理部１３の機能ブロックが形成され、また並列処理部１２に、複数のマクロブロック処理部（ＭＢ処理部）１５Ａ〜１５Ｎ、これら複数のマクロブロック処理部１５Ａ〜１５Ｎの動作を管理する状態管理部１６の機能ブロックが形成される。またこの演算処理手段が実行するプログラムの切り換えにより、これらの機能ブロック１１〜１６が構成を切り換え、エンコーダとデコーダとで構成を切り換える。なおこのプログラムは、このエンコーダ／デコーダ１０に事前にインストールして提供されるものの、この事前のインストールによる提供に代えて、光ディスク、磁気ディスク、メモリカード等の記録媒体に記録して提供するようにしてもよく、またインターネット等のネットワークを介したダウンロードにより提供するようにしてもよい。
【００３２】
ここで図３は、このエンコーダ／デコーダ１０をエンコーダとして構成した場合の、画像データの処理に関するエンコーダ／デコーダ１０のブロック図である。この構成において、前処理部１１は、マクロブロック処理部１５Ａ〜１５Ｎで処理する画像データpixelを事前にまとめてフレーム単位で処理する。具体的に、前処理部１１は、各マクロブロックの最適予測モードを検出する。またさらにインター予測では、メモリ４に格納された参照フレームに対して動きベクトルを検出する。なお前処理部１１は、符号化処理を完了した現フレームの隣接マクロブロックに代えて、処理対象の画像データpixelによる原画像の隣接マクロブロックを参照して最適予測モードを検出する。
【００３３】
マクロブロック処理部１５Ａ〜１５Ｎは、前処理部１１の処理結果に基づいて画像データpixelをそれぞれマクロブロック単位で処理する並列処理可能な機能ブロックである。マクロブロック処理部１５Ａ〜１５Ｎは、前処理部１１で検出された最適予測モードに応じて予測値を作成し、この予測値を用いてマクロブロックの画像データを符号化処理する。
【００３４】
すなわち図４に示すように、マクロブロック処理部１５Ａ〜１５Ｎは、マクロブロック単位でバッファメモリから画像データpixelを減算回路２１に入力する。減算回路２１は、最適予測モードに応じて動作を切り換え、イントラ符号化する場合には、イントラ予測回路２２で生成される予測値と画像データpixelとの差分データを生成し、インター符号化する場合には、動き予測補償回路２３で生成される予測値と画像データpixelとの差分データを生成する。
【００３５】
ディスクリートコサイン変換回路（ＤＣＴ）２４は、減算回路２１から出力される差分データを直交変換処理して係数データを出力する。量子化回路（Ｑ）２５は、所定の量子化スケールでこの係数データを量子化して出力する。マクロブロック処理部１５Ａ〜１５Ｎは、この量子化回路２５の出力データcoefを後処理部１３に出力する。
【００３６】
逆量子化回路（Ｑ-1）２６は、量子化回路２５の出力データcoefを逆量子化処理し、量子化回路２５に入力される係数データを復号する。逆ディスクリートコサイン変換回路（ＩＤＣＴ）２７は、逆量子化回路２６の出力データを逆ディスクリートコサイン変換処理し、ディスクリートコサイン変換回路２４に入力される差分データを復号する。加算回路２８は、この復号した差分データにイントラ予測回路２２又は動き予測補償回路２３で生成した予測値を加算し、マクロブロック処理部１５Ａ〜１５Ｎの入力データpixelを復号する。
【００３７】
イントラ予測回路２２は、この加算回路２８で復号される現フレームＦｎの画像データpixelを用いて、イントラ符号化する場合の予測値を出力する。動き予測補償回路２３は、加算回路２８で復号されて、メモリ４に保持された参照フレームＦｎ−１の画像データpixelを用いて動き補償の処理を実行し、インター符号化する場合の予測値を出力する。なお以下において、この参照フレームＦｎ−１の画像データを参照画像データと呼ぶ。
【００３８】
マクロブロック処理部１５Ａ〜１５Ｎは、Ｉピクチャーでは、イントラ符号化の最適予測モードで画像データpixelを符号化するように、イントラ予測回路２２の予測値を選択的に減算回路２１に出力する。またＩピクチャー以外では、イントラ符号化の最適予測モードとインター符号化の最適予測モードのうちで、発生符号量が少ない側の最適予測モードで画像データpixelを符号化するように、これらイントラ予測回路２２、動き予測補償回路２３の予測値を選択的に減算回路２１に出力する。なおマクロブロック処理部１５Ａ〜１５Ｎは、これらの処理を基本の処理単位である１６画素×１６画素のマクロブロック単位で実行する。なおマクロブロック処理部１５Ａ〜１５Ｎは、この１６画素×１６画素のマクロブロック以外のマクロブロック、サブマクロブロックを処理単位とする予測モードを最適予測モードとして処理する場合もあるが、この場合もマクロブロック、サブマクロブロックを順次処理して最終的には、１６画素×１６画素のマクロブロック単位で画像データpixelを符号化処理する。
【００３９】
後処理部１３（図２）は、メモリ４を介してマクロブロック処理部１５Ａ〜１５Ｎの出力データcoefを一定の順序で入力する。また入力したデータcoefを可変長符号化処理した後、量子化スケール、マクロブロックタイプ（mb type ）等の情報を付加してビットストリームstreamを出力する。またマクロブロック処理部１５Ａ〜１５Ｎから出力して一旦メモリ４に格納した現フレームＦｎの画像データを、デブロックフィルタリング処理してブロック歪みを除去する。
【００４０】
状態管理部１６は、前処理部１１、マクロブロック処理部１５Ａ〜１５Ｎ、後処理部１３で画像データpixelをパイプライン処理するように、前処理部１１、マクロブロック処理部１５Ａ〜１５Ｎ、後処理部１３を管理する。またこのときマクロブロック処理部１５Ａ〜１５Ｎでは、同時並列的にマクロブロックを処理するように、マクロブロック処理部１５Ａ〜１５Ｎの動作を管理する。
【００４１】
これに対して図５は、このエンコーダ／デコーダ１０をデコーダとして構成した場合の、画像データの処理に関するエンコーダ／デコーダ１０のブロック図である。この構成において、前処理部１１は、マクロブロック処理部１５Ａ〜１５Ｎで処理するビットストリームstreamを事前にまとめてフレーム単位で処理する機能ブロックである。具体的に、前処理部１１は、エンコーダの後処理部１３に対応して、メモリ４に入力されたビットストリームstreamを可変長復号化処理し、さらには各マクロブロックのマクロブロックタイプ、動き補償処理等の情報を取得して出力する。
【００４２】
マクロブロック処理部１５Ａ〜１５Ｎは、エンコーダのマクロブロック処理部１５Ａ〜１５Ｎに対応して、前処理部１１の出力データcoefをそれぞれマクロブロック単位で処理して画像データpixelを出力する。
【００４３】
すなわち図６に示すように、マクロブロック処理部１５Ａ〜１５Ｎは、マクロブロック単位でメモリ４から前処理部１１の出力データcoefを逆量子化回路（Ｑ-1）４１に入力する。ここで逆量子化回路４１は、ビットストリームデータstreamに設定された量子化スケールで前処理部１１の出力データcoefを逆量子化処理し、エンコーダの量子化回路２５に入力される係数データを復号する。逆ディスクリートコサイン変換回路（ＩＤＣＴ）４２は、逆量子化回路４１の出力データを逆ディスクリートコサイン変換処理し、エンコーダのディスクリートコサイン変換回路２４に入力される差分データを復号する。加算回路４３は、この復号した差分データにイントラ予測回路４４又は動き予測補償回路４５で生成した予測値を加算し、画像データpixelを復号する。
【００４４】
イントラ予測回路４４は、この加算回路４３で復号される現フレームＦｎの画像データpixelを用いて、イントラ符号化の場合の予測値を出力する。動き予測補償回路４５は、加算回路４３で復号されて、メモリ４に保持された参照画像データを用いて動き補償の処理を実行し、インター符号化する場合の予測値を出力する。
【００４５】
後処理部１３（図５）は、マクロブロック処理部１５Ａ〜１５Ｎの出力データpixelをデブロックフィルタリング処理してブロック歪みを除去する。またこのブロック歪みを除去した画像データpixelを参照画像データとしてメモリ４に格納する。
【００４６】
このデコーダの構成においても、状態管理部１６は、前処理部１１、マクロブロック処理部１５Ａ〜１５Ｎ、後処理部１３でビットストリームstreamをパイプライン処理するように、またマクロブロック処理部１５Ａ〜１５Ｎでは、同時並列的にマクロブロックを処理するように、前処理部１１、マクロブロック処理部１５Ａ〜１５Ｎ、後処理部１３を管理する。
【００４７】
図７は、これら前処理部１１、マクロブロック処理部１５Ａ〜１５Ｎ、後処理部１３における符号化処理時の画像データの処理順序を示すフローチャートである。このエンコーダ／デコーダ１０は、処理を開始するとステップＳＰ１１からステップＳＰ１２に移り、前処理部１１で画像データの処理を開始する。また続くステップＳＰ１３で動き補償（ＭＣ）関係等のパラメータを順次初期化し、続くステップＳＰ１４において、前処理部１１で処理したデータをマクロブロック処理部１５Ａ〜１５Ｎで同時並列的に処理する。また続くステップＳＰ１５においてマクロブロック処理部１５Ａ〜１５Ｎで全フレームの処理を完了したか否か判断し、ここで否定結果が得られると、ステップＳＰ１４を繰り返す。これに対してマクロブロック処理部１５Ａ〜１５Ｎで全フレームの処理を完了すると、ステップＳＰ１５からステップＳＰ１６に移り、後処理部１３で後処理した後、ステップＳＰ１７に移って処理を完了する。
【００４８】
これに対して図８は、１フレーム単位で見た場合の、エンコーダ／デコーダ１０における画像データの符号化処理時の処理順序を示すフローチャートである。エンコーダ／デコーダ１０は、処理対象のフレームが処理順序になると、この処理手順を開始してステップＳＰ２１からステップＳＰ２２に移り、メモリ４に格納した対応する１フレーム分の画像データを前処理部１１で処理する。また続くステップＳＰ２３において、動き補償（ＭＣ）関係等のパラメータを順次初期化し、続くステップＳＰ２４において、前処理部１１で処理したデータをマクロブロック処理部１５Ａ〜１５Ｎで同時並列的に処理する。また続くステップＳＰ２５においてマクロブロック処理部１５Ａ〜１５Ｎで処理したデータを後処理した後、続くステップＳＰ２６で全てのデータの処理完了を待機し、ステップＳＰ２７に移って処理を完了する。
【００４９】
なお図７のフローチャートでは、１つのファイルの処理を前処理部１１が完了すると、続いてマクロブロック処理部１５Ａ〜１５Ｎが処理を開始し、このマクロブロック処理部１５Ａ〜１５Ｎが１つのファイルの処理を完了すると、後処理部１３の処理が、この処理の完了したファイルを続いて処理するように記載されている。また図８のフローチャートでは、１フレーム分の処理を前処理部１１が完了すると、続いてマクロブロック処理部１５Ａ〜１５Ｎが処理を開始し、このマクロブロック処理部１５Ａ〜１５Ｎが１フレーム分の処理を完了すると、後処理部１３の処理が、この処理の完了した１フレーム分のデータを続いて処理するように記載されている。しかしながらこの図７及び図８は、各部の処理順序を明確にするために便宜的に示したものであり、前処理部１１、マクロブロック処理部１５Ａ〜１５Ｎ、後処理部１３は、実際には、状態管理部１６の管理によりそれぞれ前段の処理により処理可能となったマクロブロックを順次処理し、状態管理部１６の管理によるパイプライン処理により画像データを符号化処理、復号化処理する。
【００５０】
この状態管理部１６の管理のために、エンコーダ／デコーダ１０（図２）は、前処理部１１に、マクロブロックタイプ、サブマクロブロックタイプ検出部１１Ａと、参照画像データ数検出部１１Ｂとが設けられる。ここでマクロブロックタイプ、サブマクロブロックタイプ検出部１１Ａは、１６画素×１６画素のマクロブロック毎に、当該マクロブロックのマクロブロックタイプ、動き補償タイプ（図１９〜図２１参照）、当該マクロブロックを構成するマクロブロック、サブマクロブロックのサブマクロブロックタイプ、動き補償タイプ（図１８〜図２３参照）を検出する。マクロブロックタイプ、サブマクロブロックタイプ検出部１１Ａは、エンコーダでは、最適予測モードからこれらマクロブロックタイプ、サブマクロブロックタイプ、動き補償タイプを検出する。またデコーダでは、ビットストリームに設定されたヘッダ情報からこれらの情報を取得する。
【００５１】
参照画像データ数検出部１１Ｂは、マクロブロックタイプ、サブマクロブロックタイプ検出部１１Ａの検出結果に基づいて、１６画素×１６画素のマクロブロック毎に、図２６により示される参照画像データ数を検出して並列処理部１２の状態管理部１６に通知する。
【００５２】
状態管理部１６は、Ｈ．２６４／ＭＰＥＧ−４ＡＶＣで定められたマクロブロック間の参照関係に基づいて、前処理部１１で処理された画像データ、ビットストリームのうちで、マクロブロック処理部１５Ａ〜１５Ｎで処理可能なマクロブロックを選択する。ここで図９において参照関係を矢印で示すように、Ｈ．２６４／ＭＰＥＧ−４ＡＶＣでは、ラスタ走査の順序で符号化処理して、先に処理する隣接マクロブロック（ｘ−１，ｙ−１）、（ｘ，ｙ−１）、（ｘ＋１，ｙ−１）、（ｘ−１，ｙ）の何れかを参照してマクロブロック（ｘ，ｙ）を符号化処理する予測モードが存在する。従ってＭＰＥＧ−４等では、結局、これらの隣接マクロブロック（ｘ−１，ｙ−１）、（ｘ，ｙ−１）、（ｘ＋１，ｙ−１）、（ｘ−１，ｙ）の符号化処理、復号化処理の完了を待って、マクロブロック（ｘ，ｙ）を符号化処理、復号化処理しなければならない。
【００５３】
ここで図１０は、１フレーム中におけるマクロブロックの位置を示す平面図である。マクロブロック間の参照関係により、Ｈ．２６４／ＭＰＥＧ−４ＡＶＣでは、１フレーム中のマクロブロックのうちで、ラスタ走査開始端の座標（０，０）のマクロブロックをマクロブロック処理部１５Ａ〜１５Ｎの何れかで初めに処理することが必要になる。またこの場合、この座標（０，０）以外の他のマクロブロックは、マクロブロック処理部１５Ａ〜１５Ｎで処理できないことになる。なおこの図１０及び以下の図１１及び図１２では、処理可能なマクロブロックの座標を丸印により囲って示す。
【００５４】
またこのラスタ走査の開始位置の座標（０，０）のマクロブロックの処理を完了すると、この座標（０，０）のマクロブロックの水平方向に隣接する座標（１，０）のマクロブロックがマクロブロック処理部１５Ａ〜１５Ｎで処理可能となる。しかしながら座標（１，０）以外の他のマクロブロックについては、座標（０，０）のマクロブロックの処理を開始する場合と同様に、マクロブロック処理部１５Ａ〜１５Ｎで処理できないことになる。
【００５５】
しかしながら図１１に示すように、この続く座標（１，０）のマクロブロックの処理を完了した場合、１つ下のスライス層の走査開始位置である座標（０，１）のマクロブロックは、ラスタ走査の順序で先に走査する隣接マクロブロックが既に処理されていることになり、マクロブロック処理部１５Ａ〜１５Ｎで処理することが可能となる。従ってこの場合、丸印で示す座標（２，０）、（０，１）の２つのマクロブロックが共にマクロブロック処理部１５Ａ〜１５Ｎで処理可能となる。
【００５６】
またこの図１１に示す状況から、座標（２，０）、（０，１）の２つのマクロブロックの符号化処理を完了すると、今度は、座標（２，０）、（０，１）のマクロブロックに続く座標（３，０）、（１，１）のマクロブロックが共にマクロブロック処理部１５Ａ〜１５Ｎで処理可能となる。
【００５７】
またこの座標（３，０）、（１，１）の２つのマクロブロックの処理を完了すると、図１２に示すように、さらに１つ下のスライス層の走査開始位置である座標（０，２）のマクロブロックは、ラスタ走査の順序で先に走査する隣接マクロブロックが既に符号化処理されていることになり、マクロブロック処理部１５Ａ〜１５Ｎで処理することが可能となる。従ってこの場合、丸印で示す座標（４，０）、（２，１）、（０，２）の３つのマクロブロックが共にマクロブロック処理部１５Ａ〜１５Ｎで処理可能となる。
【００５８】
この図１０〜図１２で説明したＨ．２６４／ＭＰＥＧ−４ＡＶＣで定められたマクロブロック間の参照関係に基づいて、状態管理部１６は、フレーム毎に、前処理部１１で処理されたマクロブロックのうちで、ラスタ走査の順序で走査した場合に、先に走査する隣接マクロブロックの全てが、マクロブロック処理部１５Ａ〜１５Ｎで処理を完了しているマクロブロックを、マクロブロック処理部１５Ａ〜１５Ｎで処理可能な処理可能マクロブロックに設定する。
【００５９】
状態管理部１６は（図２）、前処理部１１の参照画像データ数検出部１１Ｂから通知される参照画像データ数を目標参照画像データ数計算部１６Ａで、平均値化して目標参照画像データ数を計算する。またマクロブロック処理部１５Ａ〜１５Ｎで同時並列的に処理するマクロブロックの参照画像データ数の総計が、この目標参照画像データ数となるように、マクロブロック割り当て部（ＭＢ割り当て部）１６Ｂで、処理可能マクロブロックからマクロブロック処理部１５Ａ〜１５Ｎで処理するマクロブロックを選択する。
【００６０】
図１３は、状態管理部１６の制御による１つのマクロブロック処理部の処理手順を示すフローチャートである。マクロブロック処理部は、画像データ、ストリーミングデータの処理を開始するとステップＳＰ３１からステップＳＰ３２に移り、状態管理部１６に処理するマクロブロックを問い合わせする。
【００６１】
続いてマクロブロック処理部は、ステップＳＰ３３において、状態管理部１６が処理可能マクロブロックの有無を判定する。ここで処理可能マクロブロックが存在しない場合、続くステップＳＰ３４において、状態管理部１６で全て画像データの処理を終了したか否か判断する。このステップＳＰ３４で肯定結果が得られると、マクロブロック処理部は、状態管理部１６からの通知に従ってステップＳＰ３４からステップＳＰ３５に移り、この処理手順を終了する。
【００６２】
これに対して例えば図１０、図１１に示すように、ラスタ走査開始端側のマクロブロックを他のマクロブロック処理部が処理している場合は、未だ画像データ、ビットストリームの処理を完了していないにも係わらず、当該マクロブロック処理部の処理可能マクロブロックが存在しないことになる。従ってこの場合、マクロブロック処理部は、状態管理部１６からの通知に従って新たに処理可能マクロブロックが発生するに十分と予測される時間だけ待機した後、ステップＳＰ３４からステップＳＰ３２に戻る。
【００６３】
これに対して処理可能マクロブロックが存在する場合、マクロブロック処理部は、ステップＳＰ３３からステップＳＰ３６に移る。ここでマクロブロック処理部は、状態管理部１６で処理対象のマクロブロックが決定され、この処理対象マクロブロックが状態管理部１６から通知される。マクロブロック処理部は、続くステップＳＰ３７において、この通知された処理対象マクロブロックの処理を開始し、続くステップＳＰ３８でこの処理対象マクロブロックの処理を完了する。また続くステップＳＰ３９で、この処理対象マクロブロックの処理の完了を状態管理部１６に通知し、状態管理部１６では、この通知に従って目標参照画像データ数を計算する目標参照画像データ数計算処理が実行される。続いてマクロブロック処理部は、ステップＳＰ３２に戻り、続くマクロブロックの割り当てを状態管理部１６に問い合わせする。
【００６４】
並列処理部１２では、マクロブロック処理部１５Ａ〜１５Ｎ毎に、この処理手順が実行されて、各マクロブロック処理部１５Ａ〜１５Ｎに処理対象マクロブロックが割り当てられる。
【００６５】
図１４は、状態管理部１６の目標参照画像データ数の計算処理を示すフローチャートである。状態管理部１６は、図１３のステップＳＰ３９で示すように、マクロブロック処理部で１つのマクロブロックの処理を完了する毎に、また前処理部１１から１つのマクロブロックの処理の完了が通知される毎に、この処理手順を実行し、現在の処理可能マクロブロックの参照画像データ数（1 Sum MC Pixel）を平均値化して目標参照画像データ数（Sum MC Pixel Target ）を計算する。
【００６６】
すなわち状態管理部１６は、この処理手順を開始すると、ステップＳＰ４１からステップＳＰ４２に移る。ここで状態管理部１６は、処理可能マクロブロックの新たな追加か、１つのマクロブロックのマクロブロック処理部１５Ａ〜１５Ｎの処理の完了かを判定する。ここで処理可能マクロブロックの新たな追加の場合、状態管理部１６は、ステップＳＰ４２からステップＳＰ４３に移る。ここで状態管理部１６は、処理可能マクロブロック数（All Sum MC）を値１だけインクリメントする。また続くステップＳＰ４４において、参照画像データ数検出部１１Ｂからの通知に基づいて、この追加された処理可能マクロブロックの参照画像データ数（1 Sum MC Pixel）を検出する。また続くステップＳＰ４５において、それまでの参照画像データ数の総計（Sum MC Pixel）に、ステップＳＰ４４で検出した参照画像データ数（1 Sum MC Pixel）を加算し、参照画像データの総計（Sum MC Pixel）を更新する。
【００６７】
続いて状態管理部１６は、ステップＳＰ４６に移り、ステップＳＰ４５で更新した参照画像データの総計（Sum MC Pixel）を、ステップＳＰ４３で計算した処理可能マクロブロック数（All Sum MC）で割り算して平均値（Sum MC Pixel／All Sum MC）を計算する。また平均値（Sum MC Pixel／All Sum MC）にマクロブロック処理部１５Ａ〜１５Ｎの個数を乗算して目標参照画像データ数（Sum MC Pixel Target ）を計算し、ステップＳＰ４７に移ってこの処理手順を終了する。
【００６８】
これに対してこの処理手順の開始が１つのマクロブロックのマクロブロック処理部１５Ａ〜１５Ｎの処理の完了によるものの場合、状態管理部１６は、ステップＳＰ４２からステップＳＰ４９に移る。ここで状態管理部１６は、処理可能マクロブロック数（All Sum
MC）を値１だけデクリメントする。また続くステップＳＰ５０において、この処理の完了したマクロブロックの参照画像データ数（1 Sum MC Pixel）を検出する。また続くステップＳＰ５１において、それまでの参照画像データ数の総計（Sum MC Pixel）から、ステップＳＰ５０で検出した参照画像データ数（1 Sum MC Pixel）を減算し、参照画像データの総計（Sum MC Pixel）を更新する。
【００６９】
続いて状態管理部１６は、ステップＳＰ４６に移り、この場合、ステップＳＰ５１で更新した参照画像データの総計（Sum MC Pixel）を、ステップＳＰ４９で計算した処理可能マクロブロック数（All Sum MC）で割り算して平均値（Sum MC Pixel／All Sum MC）を計算する。またこの平均値（Sum MC Pixel／All Sum MC）にマクロブロック処理部１５Ａ〜１５Ｎの個数を乗算して目標参照画像データ数（Sum MC Pixel Target ）を計算し、ステップＳＰ４７に移ってこの処理手順を終了する。
【００７０】
図１は、この目標参照画像データ数（Sum MC Pixel Target ）を基準にした処理マクロブロックの設定を示すフローチャートである。この図１の処理手順は、図１３のステップＳＰ３３、ＳＰ３６に対応する状態管理部１６の処理手順である。状態管理部１６は、マクロブロック処理部１５Ａ〜１５Ｎから処理対象マクロブロックの割り当て要求があると、この処理手順を開始してステップＳＰ６１からステップＳＰ６２に移る。ここで状態管理部１６は、選択可能マクロブロックが存在するか否か判断する。ここで選択可能マクロブロックが存在しない場合、マクロブロックの割り当てが困難な旨、割り当て要求のあったマクロブロック処理部１５Ａ〜１５Ｎに通知した後、ステップＳＰ６２からステップＳＰ６３に移ってこの処理手順を終了する。
【００７１】
これに対して選択可能マクロブロックが存在する場合、状態管理部１６は、ステップＳＰ６２からステップＳＰ６４に移る。ここで状態管理部１６は、他のマクロブロック処理部１５Ａ〜１５Ｎが現在処理中のマクロブロックについて、参照画像データ数の総和（Cur Sum MC Pixel）を計算する。
【００７２】
続いて状態管理部１６は、ステップＳＰ６５に移り、処理可能マクロブロックの各参照画像データ数（1 Sum MC Pixel）をそれぞれステップＳＰ６４で求めた参照画像データ数の総和（Cur Sum MC Pixel）に加算する。また各加算値（Cur Sum MC Pixel＋1 Sum MC Pixel）から目標参照画像データ数（Sum MC Pixel Target ）を減算し、減算値（Cur Sum MC Pixel＋1 Sum MC Pixel−Sum MC Pixel Target ）の絶対値を求める。このステップＳＰ６５の処理により状態管理部１６は、現在処理中のマクロブロックに対し、各選択可能マクロブロックを処理対象に加えた場合の、目標参照画像データ数（Sum MC Pixel Target ）に対する全参照画像データ数の偏差を検出する。
【００７３】
続いて状態管理部１６は、ステップＳＰ６６に移り、ステップＳＰ５５で計算した絶対値のうちで最も値の小さな絶対値を検出し、この絶対値の選択可能マクロブロックを要求のあったマクロブロック処理部１５Ａ〜１５Ｎの処理対象に設定する。状態管理部１６は、この処理対象に設定したマクロブロックを要求のあったマクロブロック処理部１５Ａ〜１５Ｎに通知すると、ステップＳＰ６３に移ってこの処理手順を終了する。
【００７４】
この図１４の処理により、状態管理部１６は、図１５に示すように、複数のマクロブロック処理部で処理中の参照画像データ数の総計が、目標参照画像データ数となるように、マクロブロック処理部で処理可能なマクロブロックから各マクロブロック処理部の処理対象マクロブロックを設定し、バスＢＵＳの一時的な負荷の増大を防止する。なおこの図１５の例は、マクロブロック処理部１５Ａ〜１５Ｎが４個の場合に、１つのマクロブロック処理部で座標（２２，０）のマクロブロックの処理を完了し、その時点で、他のマクロブロック処理部が座標（１，２０）、（３，１４）、（４，１１）のマクロブロックを処理している場合である。状態管理部１６は、この座標（２２，０）のマクロブロックの処理を完了したマクロブロック処理部からの問い合わせにより、座標（１，２０）、（３，１４）、（４，１１）のマクロブロックにおける参照画像データ数の総計を計算する。またこの計算した総計に基づいて、座標（０，２３）、（２，１７）、（５，８）、（６，５）、（７，２）、（８，０）の選択可能なマクロブロックから、４つのマクロブロック処理部で処理するマクロブロックの参照画像データ数の総計が目標参照画像データ数に最も近づくマクロブロックを選択して、問い合わせのあったマクロブロック処理部の処理対象に設定する。
【００７５】
すなわち図１６に示すようにマクロブロックＭＢ１〜ＭＢｎを処理可能な場合、状態管理部１６は、参照画像データ数の総計が最も目標参照画像データ数に近づく処理可能マクロブロックＭＢ３を問い合わせのあったマクロブロック処理部の処理対象に設定する。なおここで図１６は、マクロブロック処理部で処理するマクロブロックについて、参照画像データ数の総計の時間変化を示す特性曲線図である。
【００７６】
ここでＨ．２６４／ＭＰＥＧ−４ＡＶＣでは、参照画像データ数が最大である８画素×８画素のサブマクロブロックで１つのマクロブロックを処理した場合（図２６）、このマクロブロックに隣接するマクロブロックでは、イントラ予測することが規格で定められており、このイントラ予測では、参照画像データ数が０個となる。従って８画素×８画素のサブマクロブロックで使用する最大の最小画像データ数をＭとおくと、マクロブロックの参照画像データ数の平均値は、最大でＭ／２個となる。従って上述の目標参照画像データ数は、Ｍ／２個より小さい値となり、図１６との対比により図１７に示すように、複数のマクロブロック処理部１５Ａ〜１５Ｎで必要とする参照画像データ数は、目標参照画像データ数を中心にして上下動することになる。
【００７７】
そこでこのエンコーダ／デコーダ１０では、マクロブロック処理部１５Ａ〜１５Ｎで必要とする参照画像データ数をＭ／２個に設定し、この参照画像データ数Ｍ／２個を基準にしてバスＢＵＳが設計される。
【００７８】
（２）実施例の動作
以上の構成において、この実施例のエンコーダ／デコーダ１０（図２）では、例えばチュナー、光ディスク装置等から出力される画像データが、ビデオＩ／Ｏ２を介して順次メモリ４に格納され、このメモリ４に格納された画像データが、前処理部１１、並列処理部１２、後処理部１３でパイプライン処理され、ビットストリームＩ／Ｏ３を介して出力される。またこのエンコーダ／デコーダ１０で画像データを復号する場合、ビットストリームＩ／Ｏ３を介して入力されるビットストリームがメモリ４に順次格納され、このビットストリームが前処理部１１、並列処理部１２、後処理部１３でパイプライン処理されて画像データが復号化され、この復号した画像データがビデオＩ／Ｏ２を介して出力される。この前処理部１１、並列処理部１２、後処理部１３におけるパイプライン処理により、エンコーダ／デコーダ１０では、１つの機能ブロックで符号化、復号化する場合に比して、高速度の画像データを符号化、復号化することができる。
【００７９】
また画像データ、ビットストリームは、それぞれ前処理部１１で前処理された後、並列処理部１２に設けられた複数のマクロブロック処理部１５Ａ〜１５Ｎにおいてマクロブロック単位で同時並列的に処理され、後処理部１３で後処理される。このマクロブロック処理部１５Ａ〜１５Ｎにおけるマクロブロック単位の同時並列的な処理により、画像データ、ビットストリームは、さらに一段と高速度に処理されることになり、画像データ、ビットストリームが高解像度の場合であっても、各部の構成を高性能化することなく、リアルタイムで処理することが可能となる。
【００８０】
しかしながらこのエンコーダ／デコーダ１０では、Ｈ．２６４／ＭＰＥＧ−４ＡＶＣで画像データを符号化、復号化しており、Ｈ．２６４／ＭＰＥＧ−４ＡＶＣでは、最適予測モードに応じて動き補償に使用する参照画像データ数が大きく変化することになる（図２６、図２７及び図３０）。このエンコーダ／デコーダ１０では、複数のマクロブロック処理部１５Ａ〜１５Ｎで動き補償の処理をそれぞれ実行することから、これら複数のマクロブロック処理部１５Ａ〜１５Ｎの動き補償モードによっては、メモリ４から多数の参照画像データを並列処理部１２に転送することが必要になり、バスＢＵＳの負担が一時的に著しく増大することになる。
【００８１】
そこでこのエンコーダ／デコーダ１０では、各マクロブロック処理部１５Ａ〜１５Ｎの動作を管理する状態管理部１６で各マクロブロック処理部１５Ａ〜１５Ｎの処理対象マクロブロックを設定するようにして、この複数のマクロブロック処理部１５Ａ〜１５Ｎで処理中の参照画像データ数の総計が、目標参照画像データ数となるように各マクロブロック処理部１５Ａ〜１５Ｎの処理対象マクロブロックが設定される。
【００８２】
その結果、このエンコーダ／デコーダ１０では、この目標参照画像データ数を上下するように、各マクロブロック処理部１５Ａ〜１５Ｎで必要とする参照画像データの総数が制御され（図１７）、バスＢＵＳの一時的な著しい負荷の増大を防止することができる。従って、バスＢＵＳは、バンド幅を低減して構成を簡略化することができる。特に、高速度のメモリに参照画像データを格納してキャッシングにより処理速度を高速度化することも考えられ、この場合には、このキャッシュメモリに格納して準備する参照画像データ数の大きな変動を防止することができ、キャッシュメモリを小容量化することができる。
【００８３】
より具体的に、Ｈ．２６４／ＭＰＥＧ−４ＡＶＣでは、ラスタ走査の順序でマクロブロックを処理した場合に、先に処理する隣接マクロブロックを参照してマクロブロックを処理する参照関係があることから、このエンコーダ／デコーダ１０では、前処理部１１で処理されたマクロブロックのうちで、この参照関係を満足するマクロブロックが、マクロブロック処理部１５Ａ〜１５Ｎの処理可能マクロブロックに設定される。またこの処理可能マクロブロックの中から、複数のマクロブロック処理部１５Ａ〜１５Ｎで処理中の参照画像データ数の総計が、目標参照画像データ数となるように、各マクロブロック処理部１５Ａ〜１５Ｎの処理対象マクロブロックが設定される。その結果、このエンコーデ／デコーダ１０では、処理済の隣接マクロブロックの処理結果を参照するフォーマットで画像データを符号化、復号化する場合でも、複数のマクロブロック処理部１５Ａ〜１５Ｎで同時並列的にマクロブロックを処理して、高速度で符号化、復号化の処理を実行しつつバスＢＵＳの一時的な負担の増大を防止することができる。また前処理部とのパイプライン処理によっても、高速度で符号化、復号化の処理を実行しつつバスＢＵＳの一時的な負担の増大を防止することができる。
【００８４】
またエンコーダ／デコーダ１０では、マクロブロック処理部１５Ａ〜１５Ｎの処理可能マクロブロックで必要な参照画像データ数から、目標参照画像データ数が設定される。より具体的には、処理可能なマクロブロックの参照画像データ数が平均値化されて目標参照画像データ数が設定される。従ってエンコーダ／デコーダ１０では、画像データに応じて変化する動き補償モードに応じて適応的に目標参照画像データ数が設定され、種々に画像が変化する場合等にあっても、目標参照画像データ数を基準として各マクロブロック処理部に処理対象マクロブロックを適切に割り当て、バスＢＵＳの一時的な負担の増大を防止することができる。
【００８５】
（３）実施例の効果
以上の構成によれば、複数のマクロブロック処理部で処理中の参照画像データ数の総計が目標参照画像データ数となるように、マクロブロック処理部で処理可能なマクロブロックから各マクロブロック処理部の処理対象マクロブロックを設定することにより、複数の処理部で同時並列的に画像データを符号化処理、復号化処理する場合に、バスの一時的な負荷の増大を防止することができる。
【００８６】
また前処理してこの各マクロブロック処理部の処理可能なマクロブロックを設定することにより、符号化処理、復号化処理をパイプライン処理して高速度に画像データを処理することができる。
【００８７】
また隣接マクロブロックの参照関係を満足するマクロブロックを、各マクロブロック処理部の処理可能なマクロブロックに設定することにより、隣接マクロブロックを参照するフォーマットの符号化処理、復号化処理に適用して、符号化処理、復号化処理を高速度で実行することができる。
【００８８】
また複数のマクロブロック処理部で処理可能なマクロブロックにおける参照画像データ数から、目標参照画像データ数を計算することにより、種々に画像が変化する場合等にあっても、目標参照画像データ数を基準とした各マクロブロック処理部への処理対象マクロブロックの割り当てを適切に実行してバスＢＵＳの一時的な負担の増大を防止することができる。
【００８９】
より具体的に、複数のマクロブロック処理部で処理可能なマクロブロックにおける参照画像データ数の平均値を求めて、目標参照画像データ数に設定することにより、種々に画像が変化する場合等にあっても、目標参照画像データ数を基準とした各マクロブロック処理部への処理対象マクロブロックの割り当てを適切に実行してバスＢＵＳの一時的な負担の増大を防止することができる。
【実施例２】
【００９０】
なお上述の実施例においては、ラスタ走査順にマクロブロックを順次処理することを前提とした方式で画像データを符号化、復号化する場合について述べたが、本発明はこれに限らず、種々の順序でマクロブロックを順次処理することを前提とした方式に広く適用することができる。
【００９１】
また上述の実施例においては、隣接マクロブロックの処理結果を参照する場合について述べたが、本発明はこれに限らず、例えばＭＰＥＧ２等のように、隣接マクロブロックの処理結果を参照しない方式で符号化処理する場合にも広く適用することができる。
【００９２】
また上述の実施例においては、本発明をソフトウエアにより構成した場合について述べたが、本発明はこれに限らず、ハードウエア構成とする場合にも広く適用することができる。
【産業上の利用可能性】
【００９３】
本発明は、例えばＨ．２６４／ＭＰＥＧ−４ＡＶＣ（ITU-T Rec. H.264 ISO/IEC 14496-10 AVC ）規格に従ってビデオデータを符号化、復号化する場合に適用することができる。
【図面の簡単な説明】
【００９４】
【図１】本発明の実施例１のエンコーダ／デコーダにおける処理対象マクロブロックの設定の説明に供するフローチャートである。
【図２】本発明の実施例１のエンコーダ／デコーダを示すブロック図である。
【図３】図２のエンコーダ／デコーダの符号化処理時における構成を示すブロック図である。
【図４】図３のエンコーダ／デコーダにおけるマクロブロック処理部を示すブロック図である。
【図５】図２のエンコーダ／デコーダの復号化処理時における構成を示すブロック図である。
【図６】図４のエンコーダ／デコーダにおけるマクロブロック処理部を示すブロック図である。
【図７】図３のエンコーダ／デコーダにおける画像データの処理の説明に供するフローチャートである。
【図８】図７の処理をフレーム単位で示すフローチャートである。
【図９】隣接マクロブロックの参照関係を示す略線図である。
【図１０】１フレームの処理開始時の処理可能マクロブロックの説明に供する略線図である。
【図１１】図１０に続く時点における、処理可能マクロブロックの説明に供する略線図である。
【図１２】図１１に続く時点における、処理可能マクロブロックの説明に供する略線図である。
【図１３】１つのマクロブロック処理部に対するマクロブロックの割り当ての処理を示すフローチャートである。
【図１４】目標参照画像データ数の計算処理を示すフローチャートである。
【図１５】各マクロブロックへのマクロブロックの割り当ての説明に供する略線図である。
【図１６】各マクロブロックへのマクロブロックの割り当ての説明に供する特性曲線図である。
【図１７】複数のマクロブロック処理部で必要とする参照画像データ数の時間変化を示す特性曲線図である。
【図１８】マクロブロックの説明に供する平面図である。
【図１９】Ｉスライスにおけるマクロブロックと動き補償との関係を示す図表である。
【図２０】Ｐスライスにおけるマクロブロックと動き補償との関係を示す図表である。
【図２１】Ｂスライスにおけるマクロブロックと動き補償との関係を示す図表である。
【図２２】Ｐスライスにおけるサブマクロブロックと動き補償との関係を示す図表である。
【図２３】Ｂスライスにおけるサブマクロブロックと動き補償との関係を示す図表である。
【図２４】６タップフィルタによる動き補償の説明に供する平面図である。
【図２５】動き補償の参照画像データの説明に供する平面図である。
【図２６】マクロブロック毎の動き補償と参照画像データ数との関係を示す図表である。
【図２７】サブマクロブロック毎の動き補償と参照画像データ数との関係を示す図表である。
【図２８】複数のマクロブロックを並列処理する場合に考えられるエンコーダ／デコーダの構成を示すブロック図である。
【図２９】図２８のエンコーダ／デコーダの動作の説明に供するフローチャートである。
【図３０】図２８のエンコーダ／デコーダにおける参照画像データ数の時間変化を示す特性曲線図である。
【符号の説明】
【００９５】
１、１０……エンコーダ／デコーダ、４……メモリ４、１１……前処理部、６、１２……並列処理部、７Ａ〜７Ｎ、１５Ａ〜１５Ｎ……マクロブロック処理部、８、１６……状態管理部、９、１３……後処理部
【図１】
2007318517.tif 000003
【図２】
2007318517.tif 000004
【図３】
2007318517.tif 000005
【図４】
2007318517.tif 000006
【図５】
2007318517.tif 000007
【図６】
2007318517.tif 000008
【図７】
2007318517.tif 000009
【図８】
2007318517.tif 000010
【図９】
2007318517.tif 000011
【図１０】
2007318517.tif 000012
【図１１】
2007318517.tif 000013
【図１２】
2007318517.tif 000014
【図１３】
2007318517.tif 000015
【図１４】
2007318517.tif 000016
【図１５】
2007318517.tif 000017
【図１６】
2007318517.tif 000018
【図１７】
2007318517.tif 000019
【図１８】
2007318517.tif 000020
【図１９】
2007318517.tif 000021
【図２０】
2007318517.tif 000022
【図２１】
2007318517.tif 000023
【図２２】
2007318517.tif 000024
【図２３】
2007318517.tif 000025
【図２４】
2007318517.tif 000026
【図２５】
2007318517.tif 000027
【図２６】
2007318517.tif 000028
【図２７】
2007318517.tif 000029
【図２８】
2007318517.tif 000030
【図２９】
2007318517.tif 000031
【図３０】
2007318517.tif 000032