(57)【要約】【課題】フレーム間予測における動き補償処理の際に参照ピクチャが分散している場合であっても、アクセスの局所性を確保する。【解決手段】動き補償処理の対象ブロックが双予測（Ｂ）ブロックである場合、２つの参照ピクチャに関する補間処理は第１処理と第２処理に分解される。参照画素の取得（７１１、７２１）、補間処理（７１２、７２２）、補間結果の保存（７１３、７２３）は、第１処理と第２処理は独立して実行が可能なため、参照ピクチャ番号が同じ補間処理をまとめて処理することにより、メモリの局所性を高め、キャッシュメモリのヒット率を向上させる。双予測（Ｂ）ブロックの場合、２つの補間結果の平均化処理が必要なため、第３処理において補間結果が取得され（７３１）、平均化処理が行われ（７３２）、その結果として予測画像が保存される（７３３）。この平均化処理には参照ピクチャは不要である。【選択図】図１０
2011061320.tif 000002
【特許請求の範囲】
【請求項１】
動画像を構成する各画面の画像データを保持する画像データ保持部と、
画面間の動き補償処理のために前記画像データを参照して補間処理を行う複数の補間処理部と、
前記動き補償処理の対象ブロックが前記補間処理の際に複数の他の画面の画像データを参照する予測タイプであるか否かを判別するブロックタイプ判別部と、
前記対象ブロックが前記複数の他の画面の画像データを参照する予測タイプである場合には他の画面を１つずつ参照する処理に前記補間処理を分解して、参照する画面が共通する前記補間処理同士を前記複数の補間処理部のうち同じものに割り当てて実行させる処理分解部と
を具備する動き補償装置。
【請求項２】
前記対象ブロックが前記複数の他の画面の画像データを参照する予測タイプである場合には前記対象ブロックに関する前記複数の補間処理部による補間処理の結果を平均化する平均化処理部をさらに具備する請求項１記載の動き補償装置。
【請求項３】
前記複数の他の画面の画像データを参照する予測タイプのブロックは、Ｈ．２６４規格における双予測タイプのサブマクロブロックである請求項１記載の動き補償装置。
【請求項４】
動画像を構成する各画面の画像データを保持する画像データ保持部と、
画面間の動き補償処理のために前記画像データを参照して補間処理を行う補間処理部と、
前記動き補償処理の対象ブロックが前記補間処理の際に複数の他の画面の画像データを参照する予測タイプであるか否かを判別するブロックタイプ判別部と、
前記対象ブロックが前記複数の他の画面の画像データを参照する予測タイプである場合には他の画面を１つずつ参照する処理に前記補間処理を分解する処理分解部と、
前記分解された補間処理について同一の画面が連続して参照されるよう並び替えて前記補間処理部に補間処理を実行させる並び替え部と
を具備する動き補償装置。
【請求項５】
前記対象ブロックが前記複数の他の画面の画像データを参照する予測タイプである場合には前記対象ブロックに関する前記補間処理部による補間処理の結果を平均化する平均化処理部をさらに具備する請求項４記載の動き補償装置。
【請求項６】
前記複数の他の画面の画像データを参照する予測タイプのブロックは、Ｈ．２６４規格における双予測タイプのサブマクロブロックである請求項４記載の動き補償装置。
【請求項７】
動画像を構成する各画面の画像データを保持する画像データ保持部と、
画面間の動き補償処理のために前記画像データを参照して補間処理を行う複数の補間処理部と、
前記動き補償処理の対象ブロックが前記補間処理の際に複数の他の画面の画像データを参照する予測タイプであるか否かを判別するブロックタイプ判別部と、
前記対象ブロックが前記複数の他の画面の画像データを参照する予測タイプである場合には他の画面を１つずつ参照する処理に前記補間処理を分解して、参照する画面が共通する前記補間処理同士を前記複数の補間処理部のうち同じものに割り当てて実行させる処理分解部と、
前記動き補償処理の施されたデータを符号化する符号化部と
を具備する符号化装置。
【請求項８】
動画像を構成する各画面の画像データを保持する画像データ保持部と、
画面間の動き補償処理のために前記画像データを参照して補間処理を行う補間処理部と、
前記動き補償処理の対象ブロックが前記補間処理の際に複数の他の画面の画像データを参照する予測タイプであるか否かを判別するブロックタイプ判別部と、
前記対象ブロックが前記複数の他の画面の画像データを参照する予測タイプである場合には他の画面を１つずつ参照する処理に前記補間処理を分解する処理分解部と、
前記分解された補間処理について同一の画面が連続して参照されるよう並び替えて前記補間処理部に補間処理を実行させる並び替え部と、
前記動き補償処理の施されたデータを符号化する符号化部と
を具備する符号化装置。
【請求項９】
動画像の符号化データを復号する復号部と、
前記復号された動画像を構成する各画面の画像データを保持する画像データ保持部と、
画面間の動き補償処理のために前記画像データを参照して補間処理を行う複数の補間処理部と、
前記動き補償処理の対象ブロックが前記補間処理の際に複数の他の画面の画像データを参照する予測タイプであるか否かを判別するブロックタイプ判別部と、
前記対象ブロックが前記複数の他の画面の画像データを参照する予測タイプである場合には他の画面を１つずつ参照する処理に前記補間処理を分解して、参照する画面が共通する前記補間処理同士を前記複数の補間処理部のうち同じものに割り当てて実行させる処理分解部と
を具備する復号装置。
【請求項１０】
動画像の符号化データを復号する復号部と、
前記復号された動画像を構成する各画面の画像データを保持する画像データ保持部と、
画面間の動き補償処理のために前記画像データを参照して補間処理を行う補間処理部と、
前記動き補償処理の対象ブロックが前記補間処理の際に複数の他の画面の画像データを参照する予測タイプであるか否かを判別するブロックタイプ判別部と、
前記対象ブロックが前記複数の他の画面の画像データを参照する予測タイプである場合には他の画面を１つずつ参照する処理に前記補間処理を分解する処理分解部と、
前記分解された補間処理について同一の画面が連続して参照されるよう並び替えて前記補間処理部に補間処理を実行させる並び替え部と
を具備する復号装置。
【請求項１１】
動画像を構成する各画面の画像データを保持する画像データ保持部と、画面間の動き補償処理のために前記画像データを参照して補間処理を行う複数の補間処理部とを備える動き補償装置における動き補償方法であって、
前記動き補償処理の対象ブロックが前記補間処理の際に複数の他の画面の画像データを参照する予測タイプであるか否かを判別するブロックタイプ判別手順と、
前記対象ブロックが前記複数の他の画面の画像データを参照する予測タイプである場合には他の画面を１つずつ参照する処理に前記補間処理を分解して、参照する画面が共通する前記補間処理同士を前記複数の補間処理部のうち同じものに割り当てて実行させる処理分解手順と
を具備する動き補償方法。
【請求項１２】
動画像を構成する各画面の画像データを保持する画像データ保持部と、画面間の動き補償処理のために前記画像データを参照して補間処理を行う補間処理部とを備える動き補償装置における動き補償方法であって、
前記動き補償処理の対象ブロックが前記補間処理の際に複数の他の画面の画像データを参照する予測タイプであるか否かを判別するブロックタイプ判別手順と、
前記対象ブロックが前記複数の他の画面の画像データを参照する予測タイプである場合には他の画面を１つずつ参照する処理に前記補間処理を分解する処理分解手順と、
前記分解された補間処理について同一の画面が連続して参照されるよう並び替えて前記補間処理部に補間処理を実行させる並び替え手順と
を具備する動き補償方法。
【請求項１３】
動画像を構成する各画面の画像データを保持する画像データ保持部と、画面間の動き補償処理のために前記画像データを参照して補間処理を行う複数の補間処理部とを備える動き補償装置において、
前記動き補償処理の対象ブロックが前記補間処理の際に複数の他の画面の画像データを参照する予測タイプであるか否かを判別するブロックタイプ判別手順と、
前記対象ブロックが前記複数の他の画面の画像データを参照する予測タイプである場合には他の画面を１つずつ参照する処理に前記補間処理を分解して、参照する画面が共通する前記補間処理同士を前記複数の補間処理部のうち同じものに割り当てて実行させる処理分解手順と
をコンピュータに実行させるプログラム。
【請求項１４】
動画像を構成する各画面の画像データを保持する画像データ保持部と、画面間の動き補償処理のために前記画像データを参照して補間処理を行う補間処理部とを備える動き補償装置において、
前記動き補償処理の対象ブロックが前記補間処理の際に複数の他の画面の画像データを参照する予測タイプであるか否かを判別するブロックタイプ判別手順と、
前記対象ブロックが前記複数の他の画面の画像データを参照する予測タイプである場合には他の画面を１つずつ参照する処理に前記補間処理を分解する処理分解手順と、
前記分解された補間処理について同一の画面が連続して参照されるよう並び替えて前記補間処理部に補間処理を実行させる並び替え手順と
をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、動画像データの符号化または復号技術に関し、特にフレーム間の動き補償を行う動き補償装置、符号化装置、復号装置、および、これらにおける処理方法ならびに当該方法をコンピュータに実行させるプログラムに関する。
【背景技術】
【０００２】
動画像データを符号化または復号するための標準化方式としてＭＰＥＧ（Moving Picture Experts Group）規格が知られている。このＭＰＥＧ規格には複数の方式があるが、いずれにおいても画面（フレーム）間予測、量子化、エントロピー符号化等の基本技術が採用されている。ＭＰＥＧにおいては、符号化画像の種類として、Ｉピクチャ、ＰピクチャおよびＢピクチャの３種類が定義されている。Ｉピクチャは、画面内の情報のみから符号化または復号（画面内予測）を行うピクチャタイプである。Ｐピクチャは、時間軸上で過去の画面の情報から符号化または復号（前方向予測）を行うピクチャタイプである。Ｂピクチャは、時間軸上で過去または未来の画面の情報から符号化または復号（双方向予測）を行うピクチャタイプである。
【０００３】
ＰピクチャおよびＢピクチャについては、画面間予測のために動き補償（Motion Compensation）処理や動き推定（Motion Estimation）処理が行われる。この動き補償処理等では、他の画面の情報を参照するため、多くのデータ量が必要となり、また、アクセスの局所性を確保し難いという問題がある。すなわち、この動き補償処理等をソフトウェアにより実現しようとする場合、キャッシュメモリのヒット率が低下してしまい、システム全体として性能を向上させることが困難になる。
【０００４】
そのため、例えば、連続するＢピクチャの処理をマクロブロック毎に交互に繰り返すことにより、アクセスの局所性を確保して、キャッシュメモリのヒット率向上を図る技術が提案されている（例えば、特許文献１参照。）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０００−２７８６９３号公報（図１）
【発明の概要】
【発明が解決しようとする課題】
【０００６】
上述の従来技術では、ＭＰＥＧ規格におけるＢピクチャが過去の１画面および未来の１画面のみを参照することを前提として、画面の処理順序を入れ換えた上でマクロブロック毎の処理を行っている。しかしながら、Ｈ．２６４（ＭＰＥＧ−４  ＡＶＣ）規格のように過去または未来の任意の画面を参照できる符号化方式の場合、そのような手法を適用することはできない。また、Ｈ．２６４復号器では、縦４ライン×横４画素の動き補償ブロックの予測画素値を計算するために、参照ピクチャから最大で縦９ライン×横９画素の領域を２つ参照することになる。Ｈ．２６４復号器では、規格上、最大１６枚の参照ピクチャを想定することが可能であるため、アクセス対象となるメモリ空間が非常に大きくなり、外部メモリと演算装置との間のキャッシュメモリのヒット率が低下し易い。
【０００７】
本発明はこのような状況に鑑みてなされたものであり、画面間予測における動き補償処理の際に参照ピクチャが分散している場合であっても、アクセスの局所性を確保することを目的とする。
【課題を解決するための手段】
【０００８】
本発明は、上記課題を解決するためになされたものであり、その第１の側面は、動画像を構成する各画面の画像データを保持する画像データ保持部と、画面間の動き補償処理のために上記画像データを参照して補間処理を行う複数の補間処理部と、上記動き補償処理の対象ブロックが上記補間処理の際に複数の他の画面の画像データを参照する予測タイプであるか否かを判別するブロックタイプ判別部と、上記対象ブロックが上記複数の他の画面の画像データを参照する予測タイプである場合には他の画面を１つずつ参照する処理に上記補間処理を分解して、参照する画面が共通する上記補間処理同士を上記複数の補間処理部のうち同じものに割り当てて実行させる処理分解部とを具備する動き補償装置、符号化装置、復号装置、これらにおける処理方法およびプログラムである。これにより、参照する画面が共通する補間処理同士を複数の補間処理部のうち同じものに割り当てて実行させるという作用をもたらす。
【０００９】
また、この第１の側面において、上記対象ブロックが上記複数の他の画面の画像データを参照する予測タイプである場合には上記対象ブロックに関する上記複数の補間処理部による補間処理の結果を平均化する平均化処理部をさらに具備してもよい。これにより、複数の補間処理部により補間処理を行った際にも対象ブロックの予測画素値を生成させるという作用をもたらす。
【００１０】
また、この第１の側面において、上記複数の他の画面の画像データを参照する予測タイプのブロックは、例えば、Ｈ．２６４規格における双予測タイプのサブマクロブロックを想定することができる。
【００１１】
また、本発明の第２の側面は、動画像を構成する各画面の画像データを保持する画像データ保持部と、画面間の動き補償処理のために上記画像データを参照して補間処理を行う補間処理部と、上記動き補償処理の対象ブロックが上記補間処理の際に複数の他の画面の画像データを参照する予測タイプであるか否かを判別するブロックタイプ判別部と、上記対象ブロックが上記複数の他の画面の画像データを参照する予測タイプである場合には他の画面を１つずつ参照する処理に上記補間処理を分解する処理分解部と、上記分解された補間処理について同一の画面が連続して参照されるよう並び替えて上記補間処理部に補間処理を実行させる並び替え部とを具備する動き補償装置、符号化装置、復号装置、これらにおける処理方法およびプログラムである。これにより、同一の画面が連続して参照されるよう並び替えて補間処理部に補間処理を実行させるという作用をもたらす。
【００１２】
また、この第２の側面において、上記対象ブロックが上記複数の他の画面の画像データを参照する予測タイプである場合には上記対象ブロックに関する上記補間処理部による補間処理の結果を平均化する平均化処理部をさらに具備してもよい。これにより、複数の補間処理部により補間処理を行った際にも対象ブロックの予測画素値を生成させるという作用をもたらす。
【００１３】
また、この第２の側面においても、上記複数の他の画面の画像データを参照する予測タイプのブロックは、例えば、Ｈ．２６４規格における双予測タイプのサブマクロブロックを想定することができる。
【発明の効果】
【００１４】
本発明によれば、画面間予測における動き補償処理の際に参照ピクチャが分散している場合であっても、アクセスの局所性を確保することができるという優れた効果を奏し得る。
【図面の簡単な説明】
【００１５】
【図１】本発明の実施の形態における符号化器１００の全体構成例を示す図である。
【図２】本発明の実施の形態における復号器２００の全体構成例を示す図である。
【図３】Ｈ．２６４におけるデータ構造の概要を示す図である。
【図４】Ｈ．２６４におけるストリームの基本構造を示す図である。
【図５】Ｈ．２６４におけるスライスデータ３２の基本構造を示す図である。
【図６】動き補償処理における符号化または復号の対象ピクチャと参照ピクチャとの関係例を示す図である。
【図７】サブマクロブロックと参照ピクチャとの関係例を示す図である。
【図８】Ｈ．２６４におけるマクロブロック４０の基本構造を示す図である。
【図９】動き補償処理の概要を示す図である。
【図１０】本発明の実施の形態における双予測（Ｂ）ブロックの動き補償処理のシーケンス例を示す図である。
【図１１】本発明の第１の実施の形態による、並列演算を前提とした機能構成例を示す図である。
【図１２】本発明の第１の実施の形態におけるマルチプロセッサシステムの構成例を示す図である。
【図１３】本発明の実施の形態における処理分解の動作例を示す図である。
【図１４】本発明の第１の実施の形態におけるマルチプロセッサシステムへの処理分配例を示す図である。
【図１５】本発明の第２の実施の形態による、逐次演算を前提とした機能構成例を示す図である。
【図１６】本発明の第２の実施の形態によるプロセッサシステムにおける処理順序決定例を示す図である。
【発明を実施するための形態】
【００１６】
以下、本発明を実施するための形態（以下、実施の形態と称する）について説明する。説明は以下の順序により行う。
１．第１の実施の形態（複数の演算器による並列演算を想定した例）
２．第２の実施の形態（単一の演算器による逐次演算を想定した例）
【００１７】
＜１．第１の実施の形態＞
［符号化器の全体構成例］
図１は、本発明の実施の形態における符号化器１００の全体構成例を示す図である。この符号化器１００は、Ｈ．２６４（ＭＰＥＧ−４  ＡＶＣ）規格を想定したエンコーダであり、信号線１０１から入力されたデータを符号化して、信号線１０９を介して出力する。この符号化器１００は、減算器１１１と、加算器１１２と、離散コサイン変換部１２１と、逆離散コサイン変換部１２２と、量子化部１３１と、逆量子化部１３２と、可変長符号化部１４０とを備える。また、この符号化器１００は、デブロッキングフィルタ１５０と、フレームメモリ１６１および１６２と、画面内予測部１７０と、選択部１７９と、動き補償部１８０と、動き推定部１９０とを備える。
【００１８】
減算器１１１は、符号化対象のデータと後述する予測値との差分を生成するものである。離散コサイン変換部１２１は、減算器１１１の出力に対して離散コサイン変換を施すものである。量子化部１３１は、離散コサイン変換部１２１の出力を量子化するものである。このようにして量子化されたデータは、可変長符号化部１４０および逆量子化部１３２に供給される。
【００１９】
可変長符号化部１４０は、量子化されたデータを可変長符号化（エントロピー符号化）するものである。Ｈ．２６４規格では、可変長符号化方式として、単純な指数ゴロム符号の他に、高能率符号化方式としてコンテキスト適応型二値算術符号化方式（ＣＡＢＡＣ）およびコンテキスト適応型可変長符号化方式（ＣＡＶＬＣ）が用意されている。この可変長符号化部１４０の出力が、信号線１０９を介して符号化データとして符号化器１００の外部に出力される。
【００２０】
逆量子化部１３２は、量子化されたデータを元に戻すために逆量子化を行うものである。逆離散コサイン変換部１２２は、逆量子化部１３２の出力に対して逆離散コサイン変換を施すものである。加算器１１２は、逆離散コサイン変換部１２２の出力と後述する予測値とを加算して、画像を復元するものである。これにより、他のフレームを符号化するために必要な画素値が得られる。この値は、フレームメモリ１６１およびデブロッキングフィルタ１５０に供給される。
【００２１】
フレームメモリ１６１は、画面内予測を行うための画素値を保持するメモリである。画面内予測部１７０は、フレームメモリ１６１に保持された画素値に基づいて画面内予測（Intra prediction）を行うものである。このフレームメモリ１６１は画面内予測に用いられるため、１フレーム分の容量で十分である。
【００２２】
デブロッキングフィルタ１５０は、符号化の際に生じるブロック境界の歪を減少させるためのフィルタである。フレームメモリ１６２は、デブロッキングフィルタ１５０の出力を保持するメモリである。このフレームメモリ１６２は画面間予測に用いられるため、Ｂピクチャの場合を想定して複数フレームを保持しておく必要がある。
【００２３】
動き補償部１８０は、画面間予測（Inter prediction）を行うための動き補償（Motion Compensation）処理を行うものである。この動き補償処理は、片方向予測（Ｐ、ＳＰ）または双予測（Ｂ）のブロックに対して行われるものであり、画面内予測（Ｉ、ＳＩ）のブロックに対しては行われない。動き推定部１９０は、画面間予測を行うために画面間の動きベクトルを推定（Motion Estimation）するものである。
【００２４】
選択部１７９は、画面内予測部１７０または動き補償部１８０の何れかの出力を選択して、予測値として減算器１１１および加算器１１２に供給するものである。すなわち、画面内予測の予測値を用いる場合には画面内予測部１７０の出力が選択され、画面間予測の予測値を用いる場合には動き補償部１８０の出力が選択される。
【００２５】
なお、ここで説明した離散コサイン変換部１２１、量子化部１３１および可変長符号化部１４０は、特許請求の範囲に記載の符号化部の一例である。
【００２６】
［復号器の全体構成例］
図２は、本発明の実施の形態における復号器２００の全体構成例を示す図である。この復号器２００は、Ｈ．２６４規格を想定したデコーダであり、信号線２０１から入力された符号を復号して、信号線２０９を介して出力する。この復号器２００は、可変長復号部２１０と、逆量子化部２２０と、逆離散コサイン変換部２３０と、加算器２４０と、デブロッキングフィルタ２５０と、フレームメモリ２６１および２６２と、画面内予測部２７０と、選択部２７９と、動き補償部２８０とを備える。
【００２７】
可変長復号部２１０は、可変長符号化（エントロピー符号化）された信号線２０１の符号を復号（ＶＬＤ：Variable Length Decode）するものである。逆量子化部２２０は、可変長復号部２１０のＶＬＤ後の出力を逆量子化するものである。逆離散コサイン変換部２３０は、逆量子化部２２０の出力に対して逆離散コサイン変換を施すものである。加算器２４０は、逆離散コサイン変換部２３０の出力と後述する予測値とを加算して、画像を復元するものである。
【００２８】
フレームメモリ２６１は、画面内予測を行うための画素値を保持するメモリである。画面内予測部２７０は、フレームメモリ２６１に保持された画素値に基づいて画面内予測を行うものである。このフレームメモリ２６１は画面内予測に用いられるため、１フレーム分の容量で十分である。
【００２９】
デブロッキングフィルタ２５０は、複合の際に生じるブロック境界の歪を減少させるためのフィルタである。このデブロッキングフィルタ２５０の出力が、復号されたデータとして信号線２０９を介して復号器２００の外部に出力される。フレームメモリ２６２は、デブロッキングフィルタ２５０の出力を保持するメモリである。このフレームメモリ２６２は画面間予測に用いられるため、Ｂピクチャの場合を想定して複数フレームを保持しておく必要がある。
【００３０】
動き補償部２８０は、画面間予測を行うための動き補償処理を行うものである。上述のように、この動き補償処理は、片方向予測（Ｐ、ＳＰ）または双予測（Ｂ）のブロックに対して行われるものであり、画面内予測（Ｉ、ＳＩ）のブロックに対しては行われない。
【００３１】
選択部２７９は、画面内予測部２７０または動き補償部２８０の何れかの出力を選択して、予測値として加算器２４０に供給するものである。すなわち、画面内予測の予測値を用いる場合には画面内予測部２７０の出力が選択され、画面間予測の予測値を用いる場合には動き補償部２８０の出力が選択される。
【００３２】
なお、ここで説明した可変長復号部２１０、逆量子化部２２０および逆離散コサイン変換部２３０は、特許請求の範囲に記載の復号部の一例である。
【００３３】
［Ｈ．２６４規格におけるデータ構造］
以下では、本発明の実施の形態の適用例としてＨ．２６４規格におけるデータ構造について説明する。図３は、Ｈ．２６４規格におけるデータ構造の概要を示す図である。Ｈ．２６４規格では、符号化データのデータ列は、シーケンス層、ピクチャ層、スライス層およびマクロブロック層の４つの層に大別される。
【００３４】
シーケンス層に含まれる各ピクチャ２０は１枚の画像を表す。このピクチャ２０は複数のスライス３０に分割される。このスライス３０は、ピクチャ２０を１６ライン毎に帯状に分割したものである。
【００３５】
スライス３０は、複数のマクロブロック４０により構成される。マクロブロック４０は、画面上の縦１６ライン×横１６画素の領域に対応する画像データであり、縦１６ライン×横１６画素の輝度信号Ｙ、縦８ライン×横８画素の色差信号Ｃｒ、および、縦８ライン×横８画素の色差信号Ｃｂを有する。各マクロブロック４０は、ＤＣＴの処理単位として、縦４ライン×横４画素のブロックに分割される。
【００３６】
Ｈ．２６４規格では、動き補償を行うための動き補償ブロックは、マクロブロックと同じ縦１６ライン×横１６画素の領域だけでなく、さらに細分化した領域を選択することができる。すなわち、縦８ライン×横１６画素、縦１６ライン×横８画素、縦８ライン×横８画素、縦８ライン×横４画素、縦４ライン×横８画素、縦４ライン×横４画素の各領域を動き補償ブロックとして、それぞれ動きベクトルを求めることができる。また、マクロブロックを４等分した縦８ライン×横８画素の領域をサブマクロブロックとして、このサブマクロブロック毎に参照ピクチャ番号を符号化することができる。ただし、動き補償ブロックのサイズが縦８ライン×横８画素より大きい場合には、参照ピクチャ番号および動きベクトルは、動き補償ブロック毎に符号化される。
【００３７】
図４は、Ｈ．２６４規格におけるストリームの基本構造を示す図である。シーケンス層のレベルで見ると、シーケンスヘッダ１１の後、シーケンスデータが続く。また、ピクチャ層のレベルで見ると、ピクチャヘッダ２１の後、ピクチャデータが続く。また、スライス層のレベルで見ると、スライスヘッダ３１の後、スライスデータ３２が続く。シーケンスデータとして複数のピクチャを含み、また、ピクチャデータとして複数のスライスを含む場合がある。
【００３８】
図５は、Ｈ．２６４規格におけるスライスデータ３２の基本構造を示す図である。ここでは、スライスデータ３２の先頭にシンタックス要素ｍｂ＿ｓｋｉｐ＿ｆｌａｇ３４が存在する。このシンタックス要素ｍｂ＿ｓｋｉｐ＿ｆｌａｇは、マクロブロック層を参照するか否かを示すフラグである。このシンタックス要素ｍｂ＿ｓｋｉｐ＿ｆｌａｇが「１」であれば、その後のシンタックス要素ｍｂ＿ｆｉｅｌｄ＿ｄｅｃｏｄｉｎｇ＿ｆｌａｇ３６およびマクロブロック層４０はスキップされる（３５）。一方、シンタックス要素ｍｂ＿ｓｋｉｐ＿ｆｌａｇが「０」であればスキップされず、引き続きシンタックス要素ｍｂ＿ｆｉｅｌｄ＿ｄｅｃｏｄｉｎｇ＿ｆｌａｇ３６およびマクロブロック層４０が復号される。
【００３９】
シンタックス要素ｍｂ＿ｆｉｅｌｄ＿ｄｅｃｏｄｉｎｇ＿ｆｌａｇ３６は、２つのフィールドを独立した２つのピクチャとして扱うか、まとめて１つのフレームとして扱うかを指示するものである。このシンタックス要素ｍｂ＿ｆｉｅｌｄ＿ｄｅｃｏｄｉｎｇ＿ｆｌａｇ３６が「１」であれば２つのフィールドを独立した２つのピクチャとして扱い、「０」」であれば２つのフィールドをまとめて１つのフレームとして扱う。
【００４０】
シンタックス要素ｅｎｄ＿ｏｆ＿ｓｌｉｃｅ＿ｆｌａｇ３８は、スライスデータ３２の終了を示すフラグである。このシンタックス要素ｅｎｄ＿ｏｆ＿ｓｌｉｃｅ＿ｆｌａｇ３８が「１」であればこれ以上マクロブロックが続かないことを示し、「０」であればこのスライスにおいてさらに他のマクロブロックが続くことを示す（３９）。
【００４１】
［動き補償処理における参照ピクチャ］
図６は、動き補償処理における符号化または復号の対象ピクチャと参照ピクチャとの関係例を示す図である。ここでは、符号化または復号対象ピクチャ５３０に対して、時間軸上で過去の画面である参照ピクチャ５１０および５２０と、時間軸上で未来の画面である参照ピクチャ５４０および５５０とが示されている。ＭＰＥＧ−２等のＢピクチャでは、時間軸上で過去の１画面および未来の１画面の２画面のみを参照することを前提としている。これに対し、Ｈ．２６４規格の双予測（Ｂ）のブロックは、時間軸上で過去または未来の画面のうち任意の画面を参照することができるようになっている。
【００４２】
符号化または復号対象ピクチャ５３０において、縦１６ライン×横１６画素のマクロブロック５３１は４つの縦８ライン×横８画素のサブマクロブロック５３６乃至５３９を含む。サブマクロブロック５３６乃至５３９の各々は、それぞれ独自に参照ピクチャ番号を保持することができる。例えば、同図において、サブマクロブロック５３６は参照ピクチャ５１０の領域５１６および参照ピクチャ５２０の領域５２６を参照している。また、サブマクロブロック５３７は参照ピクチャ５２０の領域５２７を参照している。また、サブマクロブロック５３８は参照ピクチャ５２０の領域５２８および参照ピクチャ５５０の領域５５８を参照している。また、サブマクロブロック５３９は参照ピクチャ５４０の領域５４９を参照している。
【００４３】
図７は、サブマクロブロックと参照ピクチャとの関係例を示す図である。上述のように、縦１６ライン×横１６画素のマクロブロック４０は、４つの縦８ライン×横８画素のサブマクロブロック４９を含んでいる。各サブマクロブロック内の数字は、参照ピクチャ番号を示している。１つのサブマクロブロックから２つのピクチャを参照することが可能であり、この場合、そのサブマクロブロックは双予測サブマクロブロックと呼ばれる。
【００４４】
図８は、Ｈ．２６４規格におけるマクロブロック４０の基本構造を示す図である。このマクロブロック４０は、マクロブロックタイプ（ｍｂ＿ｔｙｐｅ）４１０と、マクロブロック予測（ｍｂ＿ｐｒｅｄ）４２０と、サブマクロブロック予測（ｓｕｂ＿ｍｂ＿ｐｒｅｄ）４３０とを含んでいる。
【００４５】
マクロブロックタイプ（ｍｂ＿ｔｙｐｅ）４１０は、マクロブロックの予測モードを示すシンタックス要素である。すなわち、このマクロブロックタイプ（ｍｂ＿ｔｙｐｅ）４１０は、マクロブロックを単位として、画面内予測（Ｉ、ＳＩ）、片方向予測（Ｐ）または双予測（Ｂ）の参照方向や、ブロック形状等を示す。動き補償ブロックのサイズが縦８ライン×横８画素より大きい場合には、動きベクトルだけでなく参照ピクチャ番号も動き補償ブロック毎に保持されるため、マクロブロック予測（ｍｂ＿ｐｒｅｄ）４２０が用いられる。
【００４６】
マクロブロック予測（ｍｂ＿ｐｒｅｄ）４２０は、参照番号Ｌ０（ｒｅｆ＿ｉｄｘ＿ｌ０）４２２と、参照番号Ｌ１（ｒｅｆ＿ｉｄｘ＿ｌ１）４２３と、動きベクトルＬ０（ｍｖｄ＿ｌ０）４２４と、動きベクトルＬ１（ｍｖｄ＿ｌ１）４２５とを含む。参照番号Ｌ０（ｒｅｆ＿ｉｄｘ＿ｌ０）４２２および参照番号Ｌ１（ｒｅｆ＿ｉｄｘ＿ｌ１）４２３は、動き補償ブロックを単位として参照ピクチャ番号を保持するものである。動きベクトルＬ０（ｍｖｄ＿ｌ０）４２４および動きベクトルＬ１（ｍｖｄ＿ｌ１）４２５は、動き補償ブロックを単位として動きベクトルを保持するものである。
【００４７】
動き補償ブロックのサイズが縦８ライン×横８画素以下の場合には、サブマクロブロック予測（ｓｕｂ＿ｍｂ＿ｐｒｅｄ）４３０が用いられる。サブマクロブロック予測（ｓｕｂ＿ｍｂ＿ｐｒｅｄ）４３０は、サブマクロブロックタイプ（ｓｕｂ＿ｍｂ＿ｔｙｐｅ）４３１と、参照番号Ｌ０（ｒｅｆ＿ｉｄｘ＿ｌ０）４３２と、参照番号Ｌ１（ｒｅｆ＿ｉｄｘ＿ｌ１）４３３と、動きベクトルＬ０（ｍｖｄ＿ｌ０）４３４と、動きベクトルＬ１（ｍｖｄ＿ｌ１）４３５とを含む。サブマクロブロックタイプ（ｓｕｂ＿ｍｂ＿ｔｙｐｅ）４３１は、分割されたサブマクロブロックの予測モードを示すシンタックス要素である。すなわち、サブマクロブロックを単位として、片方向予測（Ｐ）または双予測（Ｂ）の参照方向や分割サイズ等を示す。参照番号Ｌ０（ｒｅｆ＿ｉｄｘ＿ｌ０）４３２および参照番号Ｌ１（ｒｅｆ＿ｉｄｘ＿ｌ１）４３３は、サブマクロブロックを単位として参照ピクチャ番号を保持するものである。動きベクトルＬ０（ｍｖｄ＿ｌ０）４３４および動きベクトルＬ１（ｍｖｄ＿ｌ１）４３５は、動き補償ブロックを単位として動きベクトルを保持するものである。
【００４８】
［動き補償処理の概要］
図９は、動き補償処理の概要を示す図である。図９（ａ）は、片方向予測（Ｐ）ブロックに対する動き補償処理の概要である。片方向予測（Ｐ）ブロックの場合、参照ピクチャ８１は１つであり、補間処理部も補間処理部８５の１つである。補間処理部８５は、参照情報８２に基づいて参照ピクチャ８１における領域を参照して、補間処理（interpolation）を行う。Ｈ．２６４規格における動き補償予測では１／４画素精度までの予測を可能としているため、補間処理部８５は参照ピクチャ８１から１／２および１／４画素を補間する。
【００４９】
参照情報８２は、図８において説明したマクロブロック４０に含まれる情報である。片方向予測（Ｐ）ブロックの場合、参照番号Ｌ０（ｒｅｆ＿ｉｄｘ＿ｌ０）４２２または参照番号Ｌ０（ｒｅｆ＿ｉｄｘ＿ｌ０）４３２を参照することにより、参照ピクチャ８１を特定することができる。また、参照ピクチャ８１における領域は、動きベクトルＬ０（ｍｖｄ＿ｌ０）４２４または動きベクトルＬ０（ｍｖｄ＿ｌ０）４３４を参照することにより特定することができる。
【００５０】
予測画像保持部８９は、動き補償処理により得られた予測画像を保持するメモリである。片方向予測（Ｐ）ブロックの場合、補間処理部８５による補間処理の結果がそのまま予測画像となり、予測画像保持部８９に保持される。
【００５１】
図９（ｂ）は、双予測（Ｂ）ブロックに対する動き補償処理の概要である。双予測（Ｂ）ブロックの場合、参照ピクチャ８１は２つであり、補間処理部は第１補間処理部８６と第２補間処理部８７の２つである。第１補間処理部８６および第２補間処理部８７は、それぞれ第１参照情報８３および第２参照情報８４に基づいて参照ピクチャ８１における領域を参照して、補間処理を行う。
【００５２】
第１参照情報８３および第２参照情報８４は、図８において説明したマクロブロック４０に含まれる情報である。双予測（Ｂ）ブロックの場合、第１参照情報８３の参照番号Ｌ０（ｒｅｆ＿ｉｄｘ＿ｌ０）４２２または参照番号Ｌ０（ｒｅｆ＿ｉｄｘ＿ｌ０）４３２を参照することにより、参照ピクチャ８１の第１の参照ピクチャを特定することができる。また、第１の参照ピクチャにおける領域は、第１参照情報８３の動きベクトルＬ０（ｍｖｄ＿ｌ０）４２４または動きベクトルＬ０（ｍｖｄ＿ｌ０）４３４を参照することにより特定することができる。一方、第２参照情報８４の参照番号Ｌ１（ｒｅｆ＿ｉｄｘ＿ｌ１）４２３または参照番号Ｌ１（ｒｅｆ＿ｉｄｘ＿ｌ１）４３３を参照することにより、第２の参照ピクチャを特定することができる。また、第２の参照ピクチャにおける領域は、第２参照情報８４の動きベクトルＬ１（ｍｖｄ＿ｌ１）４２５または動きベクトルＬ１（ｍｖｄ＿ｌ１）４３５を参照することにより特定することができる。
【００５３】
平均化処理部８８は、第１補間処理部８６および第２補間処理部８７による補間処理の結果の平均値を生成するものである。双予測（Ｂ）ブロックの場合、この平均化処理部８８により生成された平均値が予測画像となり、予測画像保持部８９に保持される。
【００５４】
第１補間処理部８６と第２補間処理部８７はそれぞれ別個の参照ピクチャを読み出すため、両者を連続して処理するとキャッシュメモリの入れ換えが頻発して全体の性能に悪影響を与えるおそれがある。一方、平均化処理部８８では、参照ピクチャへのアクセスを必要とせず、処理自体も軽い。しかも、平均化処理は画面間予測処理の後の任意のタイミングにおいて実行可能である。そこで、本発明の実施の形態においては、双予測（Ｂ）ブロックに対して第１補間処理部８６における処理と第２補間処理部８７における処理とを分解することにより、処理の分散化または処理順序の入れ換えを可能とする。
【００５５】
［Ｂブロックの動き補償処理の分解］
図１０は、本発明の実施の形態における双予測（Ｂ）ブロックの動き補償処理のシーケンス例を示す図である。図９（ｂ）により説明した双予測（Ｂ）ブロックの動き補償処理は、第１補間処理部８６による第１処理と、第２補間処理部８７による第２処理と、平均化処理部８８による第３処理に分解される。
【００５６】
第１処理では、第１参照情報８３に基づいて参照画素が取得され（７１１）、補間処理が行われる（７１２）。この補間処理により得られた値は中間値として保存される（７１３）。同様に、第２処理では、第２参照情報８４に基づいて参照画素が取得され（７２１）、補間処理が行われる（７２２）。この補間処理により得られた値は中間値として保存される（７２３）。これら第１処理と第２処理は、互いに依存関係がないため、並列に処理することができる。
【００５７】
第３処理では、補間処理により得られた中間値が取得され（７３１）、両者の平均値が生成される（７３２）。この平均値が予測画像として保存される（７３３）。この平均化処理は、上述のように、画面間予測処理の後の任意のタイミングにおいて実行可能である。
【００５８】
［複数の演算器による並列演算］
図１１は、本発明の第１の実施の形態による、並列演算を前提とした機能構成例を示す図である。この機能構成例は、ブロックタイプ判別部３１０と、処理分解部３２０と、管理テーブル３３０と、フレームメモリ３６０と、処理バッファ３７０と、補間処理部３８０と、平均化処理部３９０とを備えている。
【００５９】
フレームメモリ３６０は、動き補償の対象となるデータを保持するメモリである。このデータは、符号化器１００においては可変長符号化される前のデータであり、復号器２００においては可変長復号（ＶＬＤ）された後のデータである。ブロックタイプ判別部３１０は、フレームメモリ３６０からサブマクロブロックに関する情報を取得して、そのサブマクロブロックのブロックタイプを判別するものである。このブロックタイプとしては、上述のように、画面内予測（Ｉ）、片方向予測（Ｐ）、および双予測（Ｂ）の３つのブロックがあるが、動き補償の対象となるのは後２者である。ブロックタイプ判別部３１０は、これらブロックタイプの何れであるかを処理分解部３２０に知らせる。
【００６０】
処理分解部３２０は、ブロックタイプが双予測（Ｂ）である場合、図１０により説明した第１処理、第２処理および第３処理の３つに動き補償処理を分解するものである。ブロックタイプが片方向予測（Ｐ）である場合には、動き補償処理の分解は不要であり、１つの参照ピクチャを参照する補間処理がそのまま実行されるように取り扱う。
【００６１】
管理テーブル３３０は、処理分解部３２０により処理対象となった補間処理を一時的に保持するテーブルである。すなわち、ブロックタイプが双予測（Ｂ）である場合には２つの補間処理が管理テーブル３３０に保持され、ブロックタイプが片方向予測（Ｐ）である場合には１つの補間処理が管理テーブル３３０に保持される。なお、この管理テーブル３３０は、補間処理の内容をそのまま保持してもよく、また、フレームメモリ３６０に保持された対象データへのポインタを保持するようにしてもよい。
【００６２】
処理バッファ３７０は、処理分解部３２０による処理結果に応じて、対応する補間処理がフレームメモリ３６０から供給され、それを保持するバッファである。この処理バッファ３７０は複数設けられ、同一の参照ピクチャ番号を有する補間処理は同じ処理バッファ３７０に保持される。この処理バッファ３７０は、例えばＦＩＦＯ（First-In First-Out）バッファにより実現することができる。
【００６３】
補間処理部３８０は、参照ピクチャの画素値を補間して対象ピクチャの予測画素値を生成するものである。この補間処理部３８０は複数設けられ、処理バッファ３７０に１対１に対応する。Ｈ．２６４規格における動き補償予測では１／４画素精度までの予測を可能としているため、補間処理部３８０は参照ピクチャから１／２および１／４画素を補間して予測画素値を生成する。ただし、ブロックタイプが双予測（Ｂ）である場合、２つの参照ピクチャが参照されるため、平均化処理部３９０において平均化処理が必要となる。
【００６４】
平均化処理部３９０は、ブロックタイプが双予測（Ｂ）である場合に、それぞれの参照ピクチャから補間された値を平均化して対象ピクチャの予測画素値を生成するものである。
【００６５】
図１２は、本発明の第１の実施の形態におけるマルチプロセッサシステムの構成例を示す図である。このマルチプロセッサシステムは、ｎ台のＣＰＵ６１０＃１乃至＃ｎと、ｎ台のデータキャッシュ６２０＃１乃至＃ｎと、外部メモリ６３０と、ｎ台の処理バッファ６６０＃１乃至＃ｎを備えている。
【００６６】
ｎ台のＣＰＵ６１０は、それぞれ独立に動作する処理装置である。このＣＰＵ６１０は、上述の補間処理や平均化処理などを実行する。外部メモリ６３０は、ＣＰＵ６１０の作業領域を保持するメモリである。ｎ台のデータキャッシュ６２０は、外部メモリ６３０の一部の領域のコピーを保持するキャッシュメモリである。データキャッシュ６２０は、対応するＣＰＵ６１０と同じＬＳＩに格納されるように実現してもよい。  なお、これらデータキャッシュ６２０および外部メモリ６３０は、特許請求の範囲に記載の画像データ保持部の一例である。
【００６７】
ｎ台の処理バッファ６６０は、動き補償の対象となるデータを保持するバッファであり、図１１において説明した処理バッファ３７０に相当する。このｎ台の処理バッファ６６０は、外部メモリ６３０に割り当てるようにしてもよい。このｎ台の処理バッファ６６０は、対応するＣＰＵ６１０に処理を依頼すべきデータ６７０をそれぞれ保持する。この処理バッファ６６０に保持されたデータ６７０は順番に対応するＣＰＵ６１０に供給され、動き補償処理が実行される。
【００６８】
［処理手順］
図１３は、本発明の実施の形態における処理分解の動作例を示す図である。画面に含まれる各ブロック（サブマクロブロック）に対して、以下の処理が実行される（ループＬ９１１）。その際、ブロック番号ＢＬＫは全ブロック数になるまで、「１」ずつ加算されていく。
【００６９】
まず、ブロックタイプ判別部３１０は、フレームメモリ３６０からブロック番号ＢＬＫのサブマクロブロックに関する情報を取得して、そのサブマクロブロックのブロックタイプを判別する（ステップＳ９１２）。その結果、ブロックタイプが双予測（Ｂ）である場合（ステップＳ９１３）、処理分解部３２０は、図１０により説明した第１処理、第２処理および第３処理の３つに動き補償処理を分解する（ステップＳ９１４）。そして、処理分解部３２０は、分解された２つの補間処理（第１処理および第２処理）を配列ＩｎｔｅｒＢｌｋへ格納する（ステップＳ９１５）。
【００７０】
一方、サブマクロブロックのブロックタイプが双予測（Ｂ）でない場合（ステップＳ９１３）、すなわち片方向予測（Ｐ）である場合には、補間処理が１つしか含まれていないため、その補間処理を配列ＩｎｔｅｒＢｌｋへ格納する（ステップＳ９１６）。
【００７１】
このようにして、配列ＩｎｔｅｒＢｌｋには、双予測（Ｂ）および片方向予測（Ｐ）の補間処理が格納される。なお、この配列ＩｎｔｅｒＢｌｋは、管理テーブル３３０に割り当てることができる。
【００７２】
図１４は、本発明の第１の実施の形態におけるマルチプロセッサシステムへの処理分配例を示す図である。配列ＩｎｔｅｒＢｌｋに格納された補間処理に対して、以下の処理が実行される（ループＬ９２１）。その際、配列ＩｎｔｅｒＢｌｋのインデックスＩＢは配列ＩｎｔｅｒＢｌｋの全要素数になるまで、「１」ずつ加算されていく。
【００７３】
まず、処理分解部３２０は、インデックスＩＢに従って配列ＩｎｔｅｒＢｌｋの要素を取得する（ステップＳ９２２）。そして、その補間処理の参照ピクチャ番号に応じて（ステップＳ９２３）、処理バッファ３７０の何れかにその補間処理をタスクとして投入する（ステップＳ９２４乃至Ｓ９２６）。
【００７４】
なお、ここでは、補間処理を配列ＩｎｔｅｒＢｌｋへ一旦格納する例について説明したが、動き補償処理を分解した際に（ステップ９１４）、参照ピクチャ番号に従って（ステップ９２３）、処理バッファ３７０にタスクを投入するように制御しても構わない。
【００７５】
このように、本発明の第１の実施の形態によれば、ブロックタイプが双予測（Ｂ）である場合、２つの補間処理に分解した上で、同一の参照ピクチャ番号を有する補間処理が同じ処理バッファ３７０に保持される。これにより、同一の参照ピクチャ番号を有する補間処理が同じ補間処理部３８０によってまとめて処理され、データキャッシュ６２０のヒット率を向上させることができる。
【００７６】
＜２．第２の実施の形態＞
［単一の演算器による逐次演算］
第１の実施の形態では、複数台のＣＰＵ６１０により動き補償処理を実行することを想定したが、この第２の実施の形態では図１２においてＣＰＵ６１０、データキャッシュ６２０および処理バッファ６６０が１台ずつのシステムを想定する。すなわち、この第２の実施の形態では１台のＣＰＵ６１０によって逐次演算が行われる。
【００７７】
図１５は、本発明の第２の実施の形態による、逐次演算を前提とした機能構成例を示す図である。この機能構成例は、ブロックタイプ判別部３１０と、処理分解部３２０と、管理テーブル３３０と、並び替え部３４０と、フレームメモリ３６０と、処理バッファ３７０と、補間処理部３８０と、平均化処理部３９０とを備えている。上述の第１の実施の形態と比べると、処理バッファ３７０および補間処理部３８０が１つになり、並び替え部３４０が追加された点が異なっている。
【００７８】
並び替え部３４０は、管理テーブル３３０に保持された補間処理について、同一の参照ピクチャが連続して参照されるよう並替え（ソート）処理を行うものである。そのため、並び替え部３４０は、参照ピクチャ番号が一定の順序になるように補間処理を並び替える。一定の順序としては、昇順または降順が考えられるが、必ずしもそれらに限定されない。この実施の形態において必要なのは、同一の参照ピクチャ番号を有する補間処理をまとめて処理することであるため、同一の参照ピクチャ番号の補間処理が別々にならなければ他の順序であってもよい。
【００７９】
処理バッファ３７０には、並び替え部３４０によってソートされた補間処理が順番に供給され、保持される。この処理バッファ３７０に保持された補間処理は、順番に補間処理部３８０に供給される。補間処理部３８０は、処理バッファ３７０から供給された補間処理を順番に実行する。また、ブロックタイプが双予測（Ｂ）である場合、平均化処理部３９０がさらに平均化処理を実行する。
【００８０】
［処理手順］
図１６は、本発明の第２の実施の形態によるプロセッサシステムにおける処理順序決定例を示す図である。なお、動き補償処理の分解の際の動作は並列演算の場合と同様であり、図１３の手順により実現される。
【００８１】
変数Ｐに処理バッファ３７０の先頭アドレスが設定された後（ステップＳ９３１）、配列ＩｎｔｅｒＢｌｋに格納された補間処理に対して、以下の二重ループによる処理が実行される（ループＬ９３２およびＬ９３３）。その際、参照ピクチャ番号ＰＩＣが「１」から全参照ピクチャ数になるまで、「１」ずつ加算されていく。そして、その参照ピクチャ番号ＰＩＣのそれぞれに対して、配列ＩｎｔｅｒＢｌｋのインデックスＩＢが配列ＩｎｔｅｒＢｌｋの全要素数になるまで、「１」ずつ加算されていく。
【００８２】
まず、処理分解部３２０は、インデックスＩＢに従って配列ＩｎｔｅｒＢｌｋの要素を取得する（ステップＳ９３４）。そして、その補間処理の参照ピクチャ番号がＰＩＣと一致していれば（ステップＳ９３５）、その補間処理を処理バッファ３７０における変数Ｐの指す位置に追加していく（ステップＳ９３６）。変数Ｐは処理バッファ３７０における次の位置（アドレス）を示すように更新される（ステップＳ９３７）。
【００８３】
一方、補間処理の参照ピクチャ番号がＰＩＣと一致しなければ（ステップＳ９３５）、何も処理を行わず、配列ＩｎｔｅｒＢｌｋの次の要素の処理に移る（ステップＳ９３４）。
【００８４】
このような並び替え（ソート）処理を経て処理バッファ３７０に保持された補間処理は、順番に補間処理部３８０に供給されて実行されていく。また、ブロックタイプが双予測（Ｂ）である場合、平均化処理部３９０によって平均化処理が実行される。
【００８５】
このように、本発明の第２の実施の形態によれば、ブロックタイプが双予測（Ｂ）である場合、２つの補間処理に分解した上で、同一の参照ピクチャ番号を有する補間処理が連続して１つの処理バッファ３７０に保持される。これにより、同一の参照ピクチャ番号を有する補間処理が補間処理部３８０によって連続して処理され、データキャッシュ６２０のヒット率を向上させることができる。
【００８６】
なお、本発明の実施の形態は本発明を具現化するための一例を示したものであり、本発明の実施の形態において明示したように、本発明の実施の形態における事項と、特許請求の範囲における発明特定事項とはそれぞれ対応関係を有する。同様に、特許請求の範囲における発明特定事項と、これと同一名称を付した本発明の実施の形態における事項とはそれぞれ対応関係を有する。ただし、本発明は実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において実施の形態に種々の変形を施すことにより具現化することができる。
【００８７】
また、本発明の実施の形態において説明した処理手順は、これら一連の手順を有する方法として捉えてもよく、また、これら一連の手順をコンピュータに実行させるためのプログラム乃至そのプログラムを記憶する記録媒体として捉えてもよい。この記録媒体として、例えば、ＣＤ（Compact Disc）、ＭＤ（MiniDisc）、ＤＶＤ（Digital Versatile Disk）、メモリカード、ブルーレイディスク（Blu-ray Disc（登録商標））等を用いることができる。
【符号の説明】
【００８８】
８１  参照ピクチャ
８２〜８４  参照情報
８５〜８７  補間処理部
８８  平均化処理部
８９  予測画像保持部
１００  符号化器
１１１  減算器
１１２、２４０  加算器
１２１  離散コサイン変換部
１２２、２３０  逆離散コサイン変換部
１３１  量子化部
１３２、２２０  逆量子化部
１４０  可変長符号化部
１５０、２５０  デブロッキングフィルタ
１６１、１６２、２６１、２６２  フレームメモリ
１７０、２７０  画面内予測部
１７９、２７９  選択部
１８０、２８０  動き補償部
１９０  動き推定部
２００  復号器
２１０  可変長復号部
３１０  ブロックタイプ判別部
３２０  処理分解部
３３０  管理テーブル
３４０  並び替え部
３６０  フレームメモリ
３７０、６６０  処理バッファ
３８０  補間処理部
３９０  平均化処理部
６１０  ＣＰＵ
６２０  データキャッシュ
６３０  外部メモリ
【図１】
2011061320.tif 000003
【図２】
2011061320.tif 000004
【図３】
2011061320.tif 000005
【図４】
2011061320.tif 000006
【図５】
2011061320.tif 000007
【図６】
2011061320.tif 000008
【図７】
2011061320.tif 000009
【図８】
2011061320.tif 000010
【図９】
2011061320.tif 000011
【図１０】
2011061320.tif 000012
【図１１】
2011061320.tif 000013
【図１２】
2011061320.tif 000014
【図１３】
2011061320.tif 000015
【図１４】
2011061320.tif 000016
【図１５】
2011061320.tif 000017
【図１６】
2011061320.tif 000018