(57)【要約】【課題】マクロブロックごとの処理を並列に行う複数のプロセシングエレメントがマクロブロックの依存関係に応じた処理を行うことを可能にする。【解決手段】検出部３１がデータ処理部２０から処理を終了したマクロブロックのＩＤを受け取るごとに、選択部３２は、マクロブロックの依存関係を示す参照フラグに基づいて、プロセシングエレメント２２が処理できる可能性のあるマクロブロックを選択する。  判定部３４は、選択されたマクロブロックが未処理の状態であって、かつ、４個の隣接マクロブロックの状態が（１）選択されたマクロブロックによってその隣接マクロブロックの処理結果が参照されない、または（２）その隣接マクロブロックの処理状態が終了である、または（３）その隣接マクロブロックの処理状態が仮処理の状態であって終了としてみなされる、のいずれかであるとき、選択されたマクロブロックは処理できると判定する。【選択図】図５
2008283612.tif 000002
【特許請求の範囲】
【請求項１】
ブロックに分割されたデータを当該ブロックごとに並列に処理するデータ処理装置であって、
前記ブロックを処理する、少なくとも２つのプロセシングエレメント
を含むデータ処理部と、
前記プロセシングエレメントが前記ブロックの処理を終了するごとに、隣接ブロックの処理結果を参照して処理対象のブロックを処理することを示す参照フラグに基づいて、前記プロセシングエレメントが処理できる可能性のあるブロックを選択する選択部と、
前記選択されたブロックの隣接ブロックの処理状態と前記参照フラグに基づいて、前記選択されたブロックが処理可能であるか否かを判定し、当該処理可能であると判定されたブロックの処理を前記データ処理部に要求する判定部と
を含む処理制御部と
を有するデータ処理装置。
【請求項２】
前記処理制御部が、
処理対象の個々のブロックについて、前記処理状態が、少なくとも、前記データ処理部に当該ブロックを処理することが要求されていない状態である未処理、当該ブロックの処理が前記データ処理部に要求され、前記データ処理部が当該ブロックを処理している状態である要求、前記データ処理部によって当該ブロックの処理が終了された状態である終了、または条件フラグに応じて当該ブロックが前記未処理の状態または前記終了の状態として扱われる仮処理のいずれの状態であるかを記憶する状態記憶部と、
上記未処理の状態または仮処理の状態のブロックの処理を前記データ処理部に要求する制御部と
を含む請求項１に記載のデータ処理装置。
【請求項３】
第１の方向と第２の方向にそれぞれ所定の画素数を有するマクロブロックに分割されたピクチャを当該マクロブロックごとに並列に処理する復号装置であって、
前記マクロブロックを処理する、少なくとも２つのプロセシングエレメント
を含むデータ処理部と、
前記プロセシングエレメントが前記マクロブロックの処理を終了するごとに、処理対象であるマクロブロックの符号化時に既に符号化済みである隣接マクロブロックに対応して設けられ、当該隣接マクロブロックの処理結果を参照して処理対象のマクロブロックを処理することを示す参照フラグに基づいて、前記プロセシングエレメントが処理できる可能性のあるマクロブロックを選択する選択部と、
前記ピクチャに含まれる個々のマクロブロックについて、当該マクロブロックの処理状態が、少なくとも、前記データ処理部に当該マクロブロックを処理することが要求されていない状態である未処理、当該マクロブロックの処理が前記データ処理部に要求され、前記データ処理部が当該マクロブロックを処理している状態である要求、前記データ処理部によって当該マクロブロックの処理が終了された状態である終了、または条件フラグに応じて当該マクロブロックが前記未処理の状態または前記終了の状態として扱われる仮処理のいずれの状態であるかを記憶する状態記憶部と、
前記選択されたマクロブロックの隣接マクロブロックの前記処理状態と前記参照フラグに基づいて、前記選択されたマクロブロックが処理可能であるか否かを判定し、当該処理可能であると判定されたマクロブロックの処理を前記データ処理部に要求する判定部と、
前記未処理の状態または仮処理の状態のマクロブロックの処理を前記データ処理部に要求する制御部と
を含む処理制御部と
を有する復号装置。
【請求項４】
前記制御部が、前記マクロブロックのうちイントラマクロブロックについて前記状態記憶部における処理状態を仮処理に設定し、前記条件フラグを仮処理の状態が終了として扱われるように設定し、前記参照フラグを全て隣接マクロブロックの処理結果を参照せずに処理対象のインターマクロブロックを処理するように設定して、前記データ処理部に未処理の状態のインターマクロブロックを復号するように要求するとともに、当該復号するように要求したインターマクロブロックの前記状態記憶部における処理状態を要求に変更し、
前記プロセシングエレメントが、前記要求されたインターマクロブロックを復号し、
前記制御部が、前記プロセシングエレメントが前記要求されたインターマクロブロックの復号を終了するごとに、前記状態記憶部における前記要求されたインターマクロブロックの処理状態を終了に変更し、
前記制御部が、前記状態記憶部における前記インターマクロブロックの処理状態がすべて終了になると、前記条件フラグを仮処理の状態が未処理の状態として扱われるように変更し、前記参照フラグを動画像の符号化規格に応じて設定して、前記データ処理部に仮処理の状態のイントラマクロブロックを復号するように要求するとともに、当該復号するように要求したイントラマクロブロックの前記状態記憶部における処理状態を要求に変更し、
前記プロセシングエレメントが、前記要求されたイントラマクロブロックを復号し、
前記選択部が、前記プロセシングエレメントが前記要求されたイントラマクロブロックの復号を終了するごとに、前記状態記憶部における前記要求されたイントラマクロブロックの処理状態を終了に変更するとともに、前記参照フラグに基づいて、前記プロセシングエレメントが処理できる可能性のあるマクロブロックを選択し、
前記判定部が、前記選択されたマクロブロックの隣接ブロックの処理状態と前記参照フラグと前記条件フラグに基づいて、前記選択されたマクロブロックが処理可能なイントラマクロブロックであるか否かを判定し、処理可能であると判定されたイントラマクロブロックの復号を前記プロセシングエレメントが行うことを要求するとともに、当該復号するように要求したイントラマクロブロックの処理状態を要求に変更し、
前記プロセシングエレメントが、前記処理可能であると判定されたイントラマクロブロックを復号する
請求項３に記載の復号装置。
【請求項５】
前記符号化規格が、ＭＰＥＧ−２またはＭＰＥＧ−４である
請求項４に記載の復号装置。
【請求項６】
前記符号化規格が、Ｈ．２６４であり、
前記制御部が、前記イントラマクロブロックを処理するとき、前記参照フラグを全て隣接マクロブロックの処理結果を参照して処理対象のイントラマクロブロックを処理するように設定し、
前記制御部が、前記状態記憶部における前記イントラマクロブロックの処理状態がすべて終了になると、前記状態記憶部における全てのマクロブロックの処理状態を未処理に設定し、前記参照フラグを全て隣接マクロブロックの処理結果を参照して処理対象のマクロブロックを処理するように設定し、前記プロセシングエレメントが未処理の状態のマクロブロックにデブロッキングフィルタをかけることを要求するとともに当該デブロッキングフィルタをかけることを要求したマクロブロックの前記状態記憶部における処理状態を要求に変更し、
前記プロセシングエレメントが、前記要求されたマクロブロックにデブロッキングフィルタをかけ、
前記制御部が、前記プロセシングエレメントが前記要求されたマクロブロックにデブロッキングフィルタをかけるごとに、前記状態記憶部における前記要求されたマクロブロックの処理状態を終了に変更する
請求項４に記載の復号装置。
【請求項７】
第１の方向と第２の方向にそれぞれ所定の画素数を有するマクロブロックに分割されたピクチャを当該マクロブロックごとに並列に処理する符号化装置であって、
前記マクロブロックを処理する、少なくとも２つのプロセシングエレメント
を含むデータ処理部と、
前記プロセシングエレメントが前記マクロブロックの処理を終了するごとに、処理対象であるマクロブロックの符号化時に既に符号化済みである隣接マクロブロックに対応して設けられ、当該隣接マクロブロックの処理結果を参照して処理対象のマクロブロックを処理することを示す参照フラグに基づいて、前記プロセシングエレメントが処理できる可能性のあるマクロブロックを選択する選択部と、
前記ピクチャに含まれる個々のマクロブロックについて、当該マクロブロックの処理状態が、少なくとも、前記データ処理部に当該マクロブロックを処理することが要求されていない状態である未処理、当該マクロブロックの処理が前記データ処理部に要求され、前記データ処理部が当該マクロブロックを処理している状態である要求、前記データ処理部によって当該マクロブロックの処理が終了された状態である終了、または条件フラグに応じて当該マクロブロックが前記未処理の状態または前記終了の状態として扱われる仮処理のいずれの状態であるかを記憶する状態記憶部と、
前記選択されたマクロブロックの隣接マクロブロックの前記処理状態と前記参照フラグに基づいて、前記選択されたマクロブロックが処理可能であるか否かを判定し、当該処理可能であると判定されたマクロブロックの処理を前記データ処理部に要求する判定部と、
前記未処理の状態または仮処理の状態のマクロブロックの処理を前記データ処理部に要求する制御部と
を含む処理制御部と
を有する符号化装置。
【請求項８】
前記制御部が、前記マクロブロックのうちイントラマクロブロックについて前記状態記憶部における処理状態を仮処理に設定し、前記条件フラグを仮処理の状態が終了として扱われるように設定し、前記参照フラグを全て隣接マクロブロックの処理結果を参照せずに処理対象のインターマクロブロックを処理するように設定して、前記プロセシングエレメントに未処理の状態のインターマクロブロックを符号化するように要求するとともに当該符号化するように要求したインターマクロブロックの前記状態記憶部における処理状態を要求に変更し、
前記プロセシングエレメントが、前記要求されたインターマクロブロックを符号化し、
前記制御部が、前記プロセシングエレメントが前記要求されたインターマクロブロックの符号化を終了するごとに、前記状態記憶部における前記要求されたインターマクロブロックの処理状態を終了に変更し、
前記制御部が、前記状態記憶部における前記インターマクロブロックの処理状態がすべて終了になると、前記条件フラグを前記仮処理の状態が未処理として扱われるように変更し、前記参照フラグを動画像の符号化規格に応じて設定して、前記データ処理部に仮処理の状態のイントラマクロブロックを符号化するように要求するとともに当該符号化するように要求したイントラマクロブロックの前記状態記憶部における処理状態を要求に変更し、
前記プロセシングエレメントが、前記要求されたイントラマクロブロックを符号化し、
前記選択部が、前記プロセシングエレメントが前記要求されたイントラマクロブロックの符号化を終了するごとに、前記状態記憶部における前記要求されたイントラマクロブロックの処理状態を終了に変更するとともに、前記参照フラグに基づいて、前記プロセシングエレメントが処理できる可能性のあるマクロブロックを選択し、
前記判定部が、前記選択されたマクロブロックの隣接ブロックの処理状態と前記参照フラグと前記条件フラグに基づいて、前記選択されたマクロブロックが処理可能なイントラマクロブロックであるか否かを判定し、処理可能であると判定されたイントラマクロブロックの符号化を前記プロセシングエレメントが行うことを要求するとともに、当該符号化するように要求したイントラマクロブロックの処理状態を要求に変更し、
前記プロセシングエレメントが、前記処理可能であると判定されたイントラマクロブロックを符号化する
請求項７に記載の符号化装置。
【請求項９】
少なくとも２つのプロセシングエレメントを含むデータ処理装置におけるデータ処理方法であって、
前記プロセシングエレメントがブロックの処理を終了するごとに、隣接ブロックの処理結果を参照して処理対象のブロックを処理することを示す参照フラグに基づいて、前記プロセシングエレメントが処理できる可能性のあるブロックを選択するステップと、
前記選択されたブロックの隣接ブロックの処理状態と前記参照フラグに基づいて、前記選択されたブロックが処理可能であるか否かを判定するステップと、
前記処理可能であると判定されたブロックの処理を前記プロセシングエレメントに要求するステップと、
前記プロセシングエレメントが、前記処理可能であると判定されたブロックを処理するステップと
を有するデータ処理方法。
【請求項１０】
少なくとも２つのプロセシングエレメントを有するデータ処理装置における復号方法であって、
全てのマクロブロックの処理状態を、前記プロセシングエレメントにマクロブロックを処理することが要求されていない状態である未処理の状態に設定するステップと、
前記マクロブロックのうちイントラマクロブロックを、条件フラグに応じて前記未処理の状態または前記プロセシングエレメントによってマクロブロックの処理が終了された状態である終了の状態として扱われる仮処理の状態に変更するステップと、
前記条件フラグを前記仮処理の状態が前記終了の状態として扱われるように設定するステップと、
処理対象マクロブロックの符号化時において符号化済みである当該処理対象マクロブロックの周囲の隣接マクロブロックに対応して設けられた参照フラグを、全て隣接マクロブロックの処理結果を参照せずに処理対象のインターマクロブロックを処理するように設定するステップと、
前記未処理の状態のインターマクロブロックの復号を前記プロセシングエレメントが行うことを要求するとともに、当該復号するように要求したインターマクロブロックの処理状態を前記プロセシングエレメントによって処理されている状態である要求の状態に変更するステップと、
前記プロセシングエレメントが、前記要求されたインターマクロブロックを復号するステップと、
前記プロセシングエレメントが前記要求されたインターマクロブロックの復号を終了するごとに、前記要求の状態であるインターマクロブロックの処理状態を終了に変更するステップと、
全てのインターマクロブロックの処理状態が終了になると、前記条件フラグを前記仮処理の状態が前記未処理の状態として扱われるように設定するステップと、
前記参照フラグを動画像の符号化規格に応じて設定するステップと、
前記仮処理の状態のイントラマクロブロックの復号を前記プロセシングエレメントが行うことを要求するとともに、当該復号するように要求したイントラマクロブロックの処理状態を要求に変更するステップと、
前記プロセシングエレメントが、前記要求されたイントラマクロブロックを復号するステップと、
前記プロセシングエレメントが前記要求されたイントラマクロブロックの復号を終了するごとに、前記イントラマクロブロックの処理状態を終了に変更するとともに、前記参照フラグに基づいて、前記プロセシングエレメントが処理できる可能性のあるマクロブロックを選択するステップと、
前記選択されたマクロブロックの隣接ブロックの処理状態と前記参照フラグと前記条件フラグに基づいて、前記選択されたマクロブロックが処理可能なイントラマクロブロックであるか否かを判定するステップと、
処理可能であると判定されたイントラマクロブロックの復号を前記プロセシングエレメントが行うことを要求するとともに、当該復号するように要求したイントラマクロブロックの処理状態を要求に変更するステップと、
前記プロセシングエレメントが、前記処理可能であると判定されたイントラマクロブロックを復号するステップと
を有する復号方法。
【請求項１１】
少なくとも２つのプロセシングエレメントを有するデータ処理装置における符号化方法であって、
全てのマクロブロックの処理状態を、前記プロセシングエレメントにマクロブロックを処理することが要求されていない状態である未処理の状態に設定するステップと、
前記マクロブロックのうちイントラマクロブロックを、条件フラグに応じて前記未処理の状態または前記プロセシングエレメントによってマクロブロックの処理が終了された状態である終了の状態として扱われる仮処理の状態に変更するステップと、
前記条件フラグを前記仮処理の状態が前記終了の状態として扱われるように設定するステップと、
処理対象マクロブロックの周囲の既に符号化済みである隣接マクロブロックに対応して設けられた参照フラグを、全て隣接マクロブロックの処理結果を参照せずに処理対象のインターマクロブロックを処理するように設定するステップと、
前記未処理の状態のインターマクロブロックの符号化を前記プロセシングエレメントが行うことを要求するとともに、当該符号化するように要求したインターマクロブロックの処理状態を前記プロセシングエレメントによって処理されている状態である要求の状態に変更するステップと、
前記プロセシングエレメントが、前記要求されたインターマクロブロックを符号化するステップと、
前記プロセシングエレメントが前記要求されたインターマクロブロックの符号化を終了するごとに、前記要求の状態であるインターマクロブロックの処理状態を終了に変更するステップと、
全てのインターマクロブロックの処理状態が終了になると、前記条件フラグを前記仮処理の状態が前記未処理の状態として扱われるように設定するステップと、
前記参照フラグを動画像の符号化規格に応じて設定するステップと、
前記仮処理の状態のイントラマクロブロックの符号化を前記プロセシングエレメントが行うことを要求するとともに、当該符号化するように要求したイントラマクロブロックの処理状態を要求に変更するステップと、
前記プロセシングエレメントが、前記要求されたイントラマクロブロックを符号化するステップと、
前記プロセシングエレメントが前記要求されたイントラマクロブロックの符号化を終了するごとに、前記イントラマクロブロックの処理状態を終了に変更するとともに、前記参照フラグに基づいて、前記プロセシングエレメントが処理できる可能性のあるマクロブロックを選択するステップと、
前記選択されたマクロブロックの隣接ブロックの処理状態と前記参照フラグと前記条件フラグに基づいて、前記選択されたマクロブロックが処理可能なイントラマクロブロックであるか否かを判定するステップと、
処理可能であると判定されたイントラマクロブロックの符号化を前記プロセシングエレメントが行うことを要求するとともに、当該符号化するように要求したイントラマクロブロックの処理状態を要求に変更するステップと、
前記プロセシングエレメントが、前記処理可能であると判定されたイントラマクロブロックを符号化するステップと
を有する符号化方法。
【請求項１２】
少なくとも２つのプロセシングエレメントによってビットストリームを復号させる処理をコンピュータに実行させるプログラムであって、
全てのマクロブロックの処理状態を、前記プロセシングエレメントにマクロブロックを処理することが要求されていない状態である未処理の状態に設定するステップと、
前記マクロブロックのうちイントラマクロブロックを、条件フラグに応じて前記未処理の状態または前記プロセシングエレメントによってマクロブロックの処理が終了された状態である終了の状態として扱われる仮処理の状態に変更するステップと、
前記条件フラグを前記仮処理の状態が前記終了の状態として扱われるように設定するステップと、
処理対象マクロブロックの符号化時において符号化済みである当該処理対象マクロブロックの周囲の隣接マクロブロックに対応して設けられた参照フラグを、全て隣接マクロブロックの処理結果を参照せずに処理対象のインターマクロブロックを処理するように設定するステップと、
前記未処理の状態のインターマクロブロックの復号を前記プロセシングエレメントが行うことを要求するとともに、当該復号するように要求したインターマクロブロックの処理状態を前記プロセシングエレメントによって処理されている状態である要求の状態に変更するステップと、
前記プロセシングエレメントが前記要求されたインターマクロブロックの復号を終了するごとに、前記要求の状態であるインターマクロブロックの処理状態を終了に変更するステップと、
全てのインターマクロブロックの処理状態が終了になると、前記条件フラグを前記仮処理の状態が前記未処理の状態として扱われるように設定するステップと、
前記参照フラグを動画像の符号化規格に応じて設定するステップと、
前記仮処理の状態のイントラマクロブロックの復号を前記プロセシングエレメントが行うことを要求するとともに、当該復号するように要求したイントラマクロブロックの処理状態を要求に変更するするステップと、
前記プロセシングエレメントが前記要求されたイントラマクロブロックの復号を終了するごとに、前記イントラマクロブロックの処理状態を終了に変更するとともに、前記参照フラグに基づいて、前記プロセシングエレメントが処理できる可能性のあるマクロブロックを選択するステップと、
前記選択されたマクロブロックの隣接ブロックの処理状態と前記参照フラグと前記条件フラグに基づいて、前記選択されたマクロブロックが処理可能なイントラマクロブロックであるか否かを判定するステップと、
処理可能であると判定されたイントラマクロブロックの復号を前記プロセシングエレメントが行うことを要求するとともに、当該復号するように要求したイントラマクロブロックの処理状態を要求に変更するステップと
をコンピュータに実行させるプログラム。
【請求項１３】
少なくとも２つのプロセシングエレメントによって動画像を符号化させる処理をコンピュータに実行させるプログラムであって、
全てのマクロブロックの処理状態を、前記プロセシングエレメントにマクロブロックを処理することが要求されていない状態である未処理の状態に設定するステップと、
前記マクロブロックのうちイントラマクロブロックを、条件フラグに応じて前記未処理の状態または前記プロセシングエレメントによってマクロブロックの処理が終了された状態である終了の状態として扱われる仮処理の状態に変更するステップと、
前記条件フラグを前記仮処理の状態が前記終了の状態として扱われるように設定するステップと、
処理対象マクロブロックの周囲の既に符号化済みである隣接マクロブロックに対応して設けられた参照フラグを、全て隣接マクロブロックの処理結果を参照せずに処理対象のインターマクロブロックを処理するように設定するステップと、
前記未処理の状態のインターマクロブロックの符号化を前記プロセシングエレメントが行うことを要求するとともに、当該符号化するように要求したインターマクロブロックの処理状態を前記プロセシングエレメントによって処理されている状態である要求の状態に変更するステップと、
前記プロセシングエレメントが前記要求されたインターマクロブロックの符号化を終了するごとに、前記要求の状態であるインターマクロブロックの処理状態を終了に変更するステップと、
全てのインターマクロブロックの処理状態が終了になると、前記条件フラグを前記仮処理の状態が前記未処理の状態として扱われるように設定するステップと、
前記参照フラグを動画像の符号化規格に応じて設定するステップと、
前記仮処理の状態のイントラマクロブロックの符号化を前記プロセシングエレメントが行うことを要求するとともに、当該符号化するように要求したイントラマクロブロックの処理状態を要求に変更するするステップと、
前記プロセシングエレメントが前記要求されたイントラマクロブロックの符号化を終了するごとに、前記イントラマクロブロックの処理状態を終了に変更するとともに、前記参照フラグに基づいて、前記プロセシングエレメントが処理できる可能性のあるマクロブロックを選択するステップと、
前記選択されたマクロブロックの隣接ブロックの処理状態と前記参照フラグと前記条件フラグに基づいて、前記選択されたマクロブロックが処理可能なイントラマクロブロックであるか否かを判定するステップと、
処理可能であると判定されたイントラマクロブロックの符号化を前記プロセシングエレメントが行うことを要求するとともに、当該符号化するように要求したイントラマクロブロックの処理状態を要求に変更するステップと
をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ処理装置、復号装置、符号化装置、データ処理方法、復号方法、符号化方法、およびプログラムに関する。
詳しくは、本発明は、例えば、映像や音声の復号または符号化を複数のプロセシングエレメントで並列に行うデータ処理装置、復号装置、符号化装置、データ処理方法、復号方法、符号化方法、および映像の復号と符号化を行うプログラムに関する。
【背景技術】
【０００２】
映像や音声に対する様々な符号化方式が知られている。例えば、動画像に対して、ＭＰＥＧ−１、ＭＰＥＧ−２、ＭＰＥＧ−４、Ｈ．２６４等がある。静止画像に対して、ＪＰＥＧ等がある。また、音声に対して、ＭＰ３、ＡＡＣ等がある。
【０００３】
また、近年、ＬＳＩ技術の進歩により、チップ内に処理回路を大量に搭載することが可能となった。このため、複数のＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）を持つマルチコア型マイクロプロセサや高い並列度の演算器をもつＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）等の並列処理装置が実現されている。
【０００４】
動画像の復号または符号化を行う並列処理装置の実現法としては、機能分割による並列化（例えば、非特許文献１参照）と領域分割による並列化（例えば、特許文献１参照）が知られている。また、機能分割と領域分割を組み合わせた並列化も可能である。
【０００５】
動画像の復号または符号化専用の装置は機能分割による並列化が採用されることが多い。
【０００６】
一方、ＭＰＥＧ−４やＨ．２６４等の動画像の符号化方式では、１枚のピクチャが１６画素×１６画素のマクロブロックに分割され、このマクロブロック単位で復号と符号化が行われる。
このため、同一の構造を有する複数のプロセシングエレメントを含むプログラマブルなデータ処理装置で動画像の復号または符号化を行う場合、個々のプロセシングエレメントに１個のマクロブロックを割り当てて、並列に処理することが考えられる。すなわち、データ処理装置で領域分割による並列化を行うことが考えられる。
【特許文献１】特開２００６−１２９２８４号公報
【非特許文献１】渡辺浩巳，茶木英明，”Ｈ．２６４とＭＰＥＧ−４に両対応  携帯機器向けコーデック・コアを開発  ＶＧＡの動画を３６ｍＡで符号化”，日経エレクトロニクス，２００４年９月２７日号，ｎｏ．８８３，ｐｐ１２３−１３３．
【発明の開示】
【発明が解決しようとする課題】
【０００７】
ＭＰＥＧ−４やＨ．２６４では、マクロブロックの処理は隣接マクロブロックの動きベクトルや再生画素を参照する等隣接マクロブロックの処理結果に依存する。このため、データ処理装置で領域分割による並列化を行う場合、個々のプロセシングエレメントの間で依存関係に応じた処理を行わなければならない。このため、個々のプロセシングエレメントでマクロブロックの処理が終了するごとにプロセシングエレメントの間で同期を取る必要が生じる。
このように、複数のプロセシングエレメントが並列に動作するデータ処理装置においてマクロブロック単位で粒度の細かい同期を取るためのオーバヘッドは無視できない。
【０００８】
また、データ処理装置でピクチャレベルの並列化を行うことも可能であるが、ＰピクチャとＢピクチャは参照先のピクチャの処理が終了していなければ処理できない。このため、Ｉピクチャごとに並列化しなければならず、ピクチャレベルの並列化における並列度は極めて低い。
【０００９】
以上から、ブロックごとに並列に処理を行う複数のプロセシングエレメントの間でブロック単位で粒度の小さい同期を取ることができ、個々のプロセシングエレメントがブロックの依存関係に応じた処理を行うことができるデータ処理装置が要望されている。
【課題を解決するための手段】
【００１０】
本発明のデータ処理装置は、ブロックに分割されたデータを当該ブロックごとに並列に処理するデータ処理装置であって、
前記ブロックを処理する、少なくとも２つのプロセシングエレメント
を含むデータ処理部と、
前記プロセシングエレメントが前記ブロックの処理を終了するごとに、隣接ブロックの処理結果を参照して処理対象のブロックを処理することを示す参照フラグに基づいて、前記プロセシングエレメントが処理できる可能性のあるブロックを選択する選択部と、
前記選択されたブロックの隣接ブロックの処理状態と前記参照フラグに基づいて、前記選択されたブロックが処理可能であるか否かを判定し、当該処理可能であると判定されたブロックの処理を前記データ処理部に要求する判定部と
を含む処理制御部と
を有する。
【００１１】
好ましくは、本発明のデータ処理装置は、前記処理制御部が、
処理対象の個々のブロックについて、前記処理状態が、少なくとも、前記データ処理部に当該ブロックを処理することが要求されていない状態である未処理、当該ブロックの処理が前記データ処理部に要求され、前記データ処理部が当該ブロックを処理している状態である要求、前記データ処理部によって当該ブロックの処理が終了された状態である終了、または条件フラグに応じて当該ブロックが前記未処理の状態または前記終了の状態として扱われる仮処理のいずれの状態であるかを記憶する状態記憶部と、
上記未処理の状態または仮処理の状態のブロックの処理を前記データ処理部に要求する判定部と
を含む。
【００１２】
また、本発明の復号装置は、第１の方向と第２の方向にそれぞれ所定の画素数を有するマクロブロックに分割されたピクチャを当該マクロブロックごとに並列に処理する復号装置であって、
前記マクロブロックを処理する、少なくとも２つのプロセシングエレメント
を含むデータ処理部と、
前記プロセシングエレメントが前記マクロブロックの処理を終了するごとに、処理対象であるマクロブロックの符号化時に既に符号化済みである隣接マクロブロックに対応して設けられ、当該隣接マクロブロックの処理結果を参照して処理対象のマクロブロックを処理することを示す参照フラグに基づいて、前記プロセシングエレメントが処理できる可能性のあるマクロブロックを選択する選択部と、
前記ピクチャに含まれる個々のマクロブロックについて、当該マクロブロックの処理状態が、少なくとも、前記データ処理部に当該マクロブロックを処理することが要求されていない状態である未処理、当該マクロブロックの処理が前記データ処理部に要求され、前記データ処理部が当該マクロブロックを処理している状態である要求、前記データ処理部によって当該マクロブロックの処理が終了された状態である終了、または条件フラグに応じて当該マクロブロックが前記未処理の状態または前記終了の状態として扱われる仮処理のいずれの状態であるかを記憶する状態記憶部と、
前記選択されたマクロブロックの隣接マクロブロックの前記処理状態と前記参照フラグに基づいて、前記選択されたマクロブロックが処理可能であるか否かを判定し、当該処理可能であると判定されたマクロブロックの処理を前記データ処理部に要求する判定部と、
前記未処理の状態または仮処理の状態のマクロブロックの処理を前記データ処理部に要求する制御部と
を含む処理制御部と
を有する。
【００１３】
好ましくは、本発明の復号装置は、前記制御部が、前記マクロブロックのうちイントラマクロブロックについて前記状態記憶部における処理状態を仮処理に設定し、前記条件フラグを仮処理の状態が終了として扱われるように設定し、前記参照フラグを全て隣接マクロブロックの処理結果を参照せずに処理対象のインターマクロブロックを処理するように設定して、前記データ処理部に未処理の状態のインターマクロブロックを復号するように要求するとともに、当該復号するように要求したインターマクロブロックの前記状態記憶部における処理状態を要求に変更し、
前記プロセシングエレメントが、前記要求されたインターマクロブロックを復号し、
前記制御部が、前記プロセシングエレメントが前記要求されたインターマクロブロックの復号を終了するごとに、前記状態記憶部における前記要求されたインターマクロブロックの処理状態を終了に変更し、
前記制御部が、前記状態記憶部における前記インターマクロブロックの処理状態がすべて終了になると、前記条件フラグを仮処理の状態が未処理の状態として扱われるように変更し、前記参照フラグを動画像の符号化規格に応じて設定して、前記データ処理部に仮処理の状態のイントラマクロブロックを復号するように要求するとともに、当該復号するように要求したイントラマクロブロックの前記状態記憶部における処理状態を要求に変更し、
前記プロセシングエレメントが、前記要求されたイントラマクロブロックを復号し、
前記選択部が、前記プロセシングエレメントが前記要求されたイントラマクロブロックの復号を終了するごとに、前記状態記憶部における前記要求されたイントラマクロブロックの処理状態を終了に変更するとともに、前記参照フラグに基づいて、前記プロセシングエレメントが処理できる可能性のあるマクロブロックを選択し、
前記判定部が、前記選択されたマクロブロックの隣接ブロックの処理状態と前記参照フラグと前記条件フラグに基づいて、前記選択されたマクロブロックが処理可能なイントラマクロブロックであるか否かを判定し、処理可能であると判定されたイントラマクロブロックの復号を前記プロセシングエレメントが行うことを要求するとともに、当該復号するように要求したイントラマクロブロックの処理状態を要求に変更し、
前記プロセシングエレメントが、前記処理可能であると判定されたイントラマクロブロックを復号する。
【００１４】
好ましくは、本発明の復号装置は、前記符号化規格が、ＭＰＥＧ−２またはＭＰＥＧ−４である。
【００１５】
好ましくは、本発明の復号装置は、前記符号化規格が、Ｈ．２６４であり、
前記制御部が、前記イントラマクロブロックを処理するとき、前記参照フラグを全て隣接マクロブロックの処理結果を参照して処理対象のイントラマクロブロックを処理するように設定し、
前記制御部が、前記状態記憶部における前記イントラマクロブロックの処理状態がすべて終了になると、前記状態記憶部における全てのマクロブロックの処理状態を未処理に設定し、前記参照フラグを全て隣接マクロブロックの処理結果を参照して処理対象のマクロブロックを処理するように設定し、前記プロセシングエレメントが未処理の状態のマクロブロックにデブロッキングフィルタをかけることを要求するとともに当該デブロッキングフィルタをかけることを要求したマクロブロックの前記状態記憶部における処理状態を要求に変更し、
前記プロセシングエレメントが、前記要求されたマクロブロックにデブロッキングフィルタをかけ、
前記制御部が、前記プロセシングエレメントが前記要求されたマクロブロックにデブロッキングフィルタをかけるごとに、前記状態記憶部における前記要求されたマクロブロックの処理状態を終了に変更する。
【００１６】
また、本発明の符号化装置は、第１の方向と第２の方向にそれぞれ所定の画素数を有するマクロブロックに分割されたピクチャを当該マクロブロックごとに並列に処理する符号化装置であって、
前記マクロブロックを処理する、少なくとも２つのプロセシングエレメント
を含むデータ処理部と、
前記プロセシングエレメントが前記マクロブロックの処理を終了するごとに、処理対象であるマクロブロックの符号化時に既に符号化済みである隣接マクロブロックに対応して設けられ、当該隣接マクロブロックの処理結果を参照して処理対象のマクロブロックを処理することを示す参照フラグに基づいて、前記プロセシングエレメントが処理できる可能性のあるマクロブロックを選択する選択部と、
前記ピクチャに含まれる個々のマクロブロックについて、当該マクロブロックの処理状態が、少なくとも、前記データ処理部に当該マクロブロックを処理することが要求されていない状態である未処理、当該マクロブロックの処理が前記データ処理部に要求され、前記データ処理部が当該マクロブロックを処理している状態である要求、前記データ処理部によって当該マクロブロックの処理が終了された状態である終了、または条件フラグに応じて当該マクロブロックが前記未処理の状態または前記終了の状態として扱われる仮処理のいずれの状態であるかを記憶する状態記憶部と、
前記選択されたマクロブロックの隣接マクロブロックの前記処理状態と前記参照フラグに基づいて、前記選択されたマクロブロックが処理可能であるか否かを判定し、当該処理可能であると判定されたマクロブロックの処理を前記データ処理部に要求する判定部と、
前記未処理の状態または仮処理の状態のマクロブロックの処理を前記データ処理部に要求する制御部と
を含む処理制御部と
を有する。
【００１７】
好ましくは、本発明の符号化装置は、前記制御部が、前記マクロブロックのうちイントラマクロブロックについて前記状態記憶部における処理状態を仮処理に設定し、前記条件フラグを仮処理の状態が終了として扱われるように設定し、前記参照フラグを全て隣接マクロブロックの処理結果を参照せずに処理対象のインターマクロブロックを処理するように設定して、前記プロセシングエレメントに未処理の状態のインターマクロブロックを符号化するように要求するとともに当該符号化するように要求したインターマクロブロックの前記状態記憶部における処理状態を要求に変更し、
前記プロセシングエレメントが、前記要求されたインターマクロブロックを符号化し、
前記制御部が、前記プロセシングエレメントが前記要求されたインターマクロブロックの符号化を終了するごとに、前記状態記憶部における前記要求されたインターマクロブロックの処理状態を終了に変更し、
前記制御部が、前記状態記憶部における前記インターマクロブロックの処理状態がすべて終了になると、前記条件フラグを前記仮処理の状態が未処理として扱われるように変更し、前記参照フラグを動画像の符号化規格に応じて設定して、前記データ処理部に仮処理の状態のイントラマクロブロックを符号化するように要求するとともに当該符号化するように要求したイントラマクロブロックの前記状態記憶部における処理状態を要求に変更し、
前記プロセシングエレメントが、前記要求されたイントラマクロブロックを符号化し、
前記選択部が、前記プロセシングエレメントが前記要求されたイントラマクロブロックの符号化を終了するごとに、前記状態記憶部における前記要求されたイントラマクロブロックの処理状態を終了に変更するとともに、前記参照フラグに基づいて、前記プロセシングエレメントが処理できる可能性のあるマクロブロックを選択し、
前記判定部が、前記選択されたマクロブロックの隣接ブロックの処理状態と前記参照フラグと前記条件フラグに基づいて、前記選択されたマクロブロックが処理可能なイントラマクロブロックであるか否かを判定し、処理可能であると判定されたイントラマクロブロックの符号化を前記プロセシングエレメントが行うことを要求するとともに、当該符号化するように要求したイントラマクロブロックの処理状態を要求に変更し、
前記プロセシングエレメントが、前記処理可能であると判定されたイントラマクロブロックを符号化する。
【００１８】
また、本発明のデータ処理方法は、少なくとも２つのプロセシングエレメントを含むデータ処理装置におけるデータ処理方法であって、
前記プロセシングエレメントがブロックの処理を終了するごとに、隣接ブロックの処理結果を参照して処理対象のブロックを処理することを示す参照フラグに基づいて、前記プロセシングエレメントが処理できる可能性のあるブロックを選択するステップと、
前記選択されたブロックの隣接ブロックの処理状態と前記参照フラグに基づいて、前記選択されたブロックが処理可能であるか否かを判定するステップと、
前記処理可能であると判定されたブロックの処理を前記プロセシングエレメントに要求するステップと、
前記プロセシングエレメントが、前記処理可能であると判定されたブロックを処理するステップと
を有する。
【００１９】
また、本発明の復号方法は、少なくとも２つのプロセシングエレメントを有するデータ処理装置における復号方法であって、
全てのマクロブロックの処理状態を、前記プロセシングエレメントにマクロブロックを処理することが要求されていない状態である未処理の状態に設定するステップと、
前記マクロブロックのうちイントラマクロブロックを、条件フラグに応じて前記未処理の状態または前記プロセシングエレメントによってマクロブロックの処理が終了された状態である終了の状態として扱われる仮処理の状態に変更するステップと、
前記条件フラグを前記仮処理の状態が前記終了の状態として扱われるように設定するステップと、
処理対象マクロブロックの符号化時において符号化済みである当該処理対象マクロブロックの周囲の隣接マクロブロックに対応して設けられた参照フラグを、全て隣接マクロブロックの処理結果を参照せずに処理対象のインターマクロブロックを処理するように設定するステップと、
前記未処理の状態のインターマクロブロックの復号を前記プロセシングエレメントが行うことを要求するとともに、当該復号するように要求したインターマクロブロックの処理状態を前記プロセシングエレメントによって処理されている状態である要求の状態に変更するステップと、
前記プロセシングエレメントが、前記要求されたインターマクロブロックを復号するステップと、
前記プロセシングエレメントが前記要求されたインターマクロブロックの復号を終了するごとに、前記要求の状態であるインターマクロブロックの処理状態を終了に変更するステップと、
全てのインターマクロブロックの処理状態が終了になると、前記条件フラグを前記仮処理の状態が前記未処理の状態として扱われるように設定するステップと、
前記参照フラグを動画像の符号化規格に応じて設定するステップと、
前記仮処理の状態のイントラマクロブロックの復号を前記プロセシングエレメントが行うことを要求するとともに、当該復号するように要求したイントラマクロブロックの処理状態を要求に変更するステップと、
前記プロセシングエレメントが、前記要求されたイントラマクロブロックを復号するステップと、
前記プロセシングエレメントが前記要求されたイントラマクロブロックの復号を終了するごとに、前記イントラマクロブロックの処理状態を終了に変更するとともに、前記参照フラグに基づいて、前記プロセシングエレメントが処理できる可能性のあるマクロブロックを選択するステップと、
前記選択されたマクロブロックの隣接ブロックの処理状態と前記参照フラグと前記条件フラグに基づいて、前記選択されたマクロブロックが処理可能なイントラマクロブロックであるか否かを判定するステップと、
処理可能であると判定されたイントラマクロブロックの復号を前記プロセシングエレメントが行うことを要求するとともに、当該復号するように要求したイントラマクロブロックの処理状態を要求に変更するステップと、
前記プロセシングエレメントが、前記処理可能であると判定されたイントラマクロブロックを復号するステップと
を有する。
【００２０】
また、本発明の符号化方法は、少なくとも２つのプロセシングエレメントを有するデータ処理装置における符号化方法であって、
全てのマクロブロックの処理状態を、前記プロセシングエレメントにマクロブロックを処理することが要求されていない状態である未処理の状態に設定するステップと、
前記マクロブロックのうちイントラマクロブロックを、条件フラグに応じて前記未処理の状態または前記プロセシングエレメントによってマクロブロックの処理が終了された状態である終了の状態として扱われる仮処理の状態に変更するステップと、
前記条件フラグを前記仮処理の状態が前記終了の状態として扱われるように設定するステップと、
処理対象マクロブロックの周囲の既に符号化済みである隣接マクロブロックに対応して設けられた参照フラグを、全て隣接マクロブロックの処理結果を参照せずに処理対象のインターマクロブロックを処理するように設定するステップと、
前記未処理の状態のインターマクロブロックの符号化を前記プロセシングエレメントが行うことを要求するとともに、当該符号化するように要求したインターマクロブロックの処理状態を前記プロセシングエレメントによって処理されている状態である要求の状態に変更するステップと、
前記プロセシングエレメントが、前記要求されたインターマクロブロックを符号化するステップと、
前記プロセシングエレメントが前記要求されたインターマクロブロックの符号化を終了するごとに、前記要求の状態であるインターマクロブロックの処理状態を終了に変更するステップと、
全てのインターマクロブロックの処理状態が終了になると、前記条件フラグを前記仮処理の状態が前記未処理の状態として扱われるように設定するステップと、
前記参照フラグを動画像の符号化規格に応じて設定するステップと、
前記仮処理の状態のイントラマクロブロックの符号化を前記プロセシングエレメントが行うことを要求するとともに、当該符号化するように要求したイントラマクロブロックの処理状態を要求に変更するステップと、
前記プロセシングエレメントが、前記要求されたイントラマクロブロックを符号化するステップと、
前記プロセシングエレメントが前記要求されたイントラマクロブロックの符号化を終了するごとに、前記イントラマクロブロックの処理状態を終了に変更するとともに、前記参照フラグに基づいて、前記プロセシングエレメントが処理できる可能性のあるマクロブロックを選択するステップと、
前記選択されたマクロブロックの隣接ブロックの処理状態と前記参照フラグと前記条件フラグに基づいて、前記選択されたマクロブロックが処理可能なイントラマクロブロックであるか否かを判定するステップと、
処理可能であると判定されたイントラマクロブロックの符号化を前記プロセシングエレメントが行うことを要求するとともに、当該符号化するように要求したイントラマクロブロックの処理状態を要求に変更するステップと、
前記プロセシングエレメントが、前記処理可能であると判定されたイントラマクロブロックを符号化するステップと
を有する。
【００２１】
また、本発明のプログラムは、少なくとも２つのプロセシングエレメントによってビットストリームを復号させる処理をコンピュータに実行させるプログラムであって、
全てのマクロブロックの処理状態を、前記プロセシングエレメントにマクロブロックを処理することが要求されていない状態である未処理の状態に設定するステップと、
前記マクロブロックのうちイントラマクロブロックを、条件フラグに応じて前記未処理の状態または前記プロセシングエレメントによってマクロブロックの処理が終了された状態である終了の状態として扱われる仮処理の状態に変更するステップと、
前記条件フラグを前記仮処理の状態が前記終了の状態として扱われるように設定するステップと、
処理対象マクロブロックの符号化時において符号化済みである当該処理対象マクロブロックの周囲の隣接マクロブロックに対応して設けられた参照フラグを、全て隣接マクロブロックの処理結果を参照せずに処理対象のインターマクロブロックを処理するように設定するステップと、
前記未処理の状態のインターマクロブロックの復号を前記プロセシングエレメントが行うことを要求するとともに、当該復号するように要求したインターマクロブロックの処理状態を前記プロセシングエレメントによって処理されている状態である要求の状態に変更するステップと、
前記プロセシングエレメントが前記要求されたインターマクロブロックの復号を終了するごとに、前記要求の状態であるインターマクロブロックの処理状態を終了に変更するステップと、
全てのインターマクロブロックの処理状態が終了になると、前記条件フラグを前記仮処理の状態が前記未処理の状態として扱われるように設定するステップと、
前記参照フラグを動画像の符号化規格に応じて設定するステップと、
前記仮処理の状態のイントラマクロブロックの復号を前記プロセシングエレメントが行うことを要求するとともに、当該復号するように要求したイントラマクロブロックの処理状態を要求に変更するするステップと、
前記プロセシングエレメントが前記要求されたイントラマクロブロックの復号を終了するごとに、前記イントラマクロブロックの処理状態を終了に変更するとともに、前記参照フラグに基づいて、前記プロセシングエレメントが処理できる可能性のあるマクロブロックを選択するステップと、
前記選択されたマクロブロックの隣接ブロックの処理状態と前記参照フラグと前記条件フラグに基づいて、前記選択されたマクロブロックが処理可能なイントラマクロブロックであるか否かを判定するステップと、
処理可能であると判定されたイントラマクロブロックの復号を前記プロセシングエレメントが行うことを要求するとともに、当該復号するように要求したイントラマクロブロックの処理状態を要求に変更するステップと
をコンピュータに実行させる。
【００２２】
また、本発明のプログラムは、少なくとも２つのプロセシングエレメントによって動画像を符号化させる処理をコンピュータに実行させるプログラムであって、
全てのマクロブロックの処理状態を、前記プロセシングエレメントにマクロブロックを処理することが要求されていない状態である未処理の状態に設定するステップと、
前記マクロブロックのうちイントラマクロブロックを、条件フラグに応じて前記未処理の状態または前記プロセシングエレメントによってマクロブロックの処理が終了された状態である終了の状態として扱われる仮処理の状態に変更するステップと、
前記条件フラグを前記仮処理の状態が前記終了の状態として扱われるように設定するステップと、
処理対象マクロブロックの周囲の既に符号化済みである隣接マクロブロックに対応して設けられた参照フラグを、全て隣接マクロブロックの処理結果を参照せずに処理対象のインターマクロブロックを処理するように設定するステップと、
前記未処理の状態のインターマクロブロックの符号化を前記プロセシングエレメントが行うことを要求するとともに、当該符号化するように要求したインターマクロブロックの処理状態を前記プロセシングエレメントによって処理されている状態である要求の状態に変更するステップと、
前記プロセシングエレメントが前記要求されたインターマクロブロックの符号化を終了するごとに、前記要求の状態であるインターマクロブロックの処理状態を終了に変更するステップと、
全てのインターマクロブロックの処理状態が終了になると、前記条件フラグを前記仮処理の状態が前記未処理の状態として扱われるように設定するステップと、
前記参照フラグを動画像の符号化規格に応じて設定するステップと、
前記仮処理の状態のイントラマクロブロックの符号化を前記プロセシングエレメントが行うことを要求するとともに、当該符号化するように要求したイントラマクロブロックの処理状態を要求に変更するするステップと、
前記プロセシングエレメントが前記要求されたイントラマクロブロックの符号化を終了するごとに、前記イントラマクロブロックの処理状態を終了に変更するとともに、前記参照フラグに基づいて、前記プロセシングエレメントが処理できる可能性のあるマクロブロックを選択するステップと、
前記選択されたマクロブロックの隣接ブロックの処理状態と前記参照フラグと前記条件フラグに基づいて、前記選択されたマクロブロックが処理可能なイントラマクロブロックであるか否かを判定するステップと、
処理可能であると判定されたイントラマクロブロックの符号化を前記プロセシングエレメントが行うことを要求するとともに、当該符号化するように要求したイントラマクロブロックの処理状態を要求に変更するステップと
をコンピュータに実行させる。
【００２３】
本発明によれば、処理制御部は、データ処理部に含まれるプロセシングエレメントがブロックの処理を終了するごとに、隣接ブロックの処理結果を参照して処理対象のブロックを処理することを示す参照フラグに基づいて、プロセシングエレメントが処理できる可能性のあるブロックを選択する。そして、処理制御部は、選択されたブロックの隣接ブロックの処理状態と参照フラグに基づいて、選択されたブロックが処理可能であるか否かを判定し、処理可能であると判定されたブロックの処理をデータ処理部に要求する。
データ処理部は、処理を要求されたブロックを処理し、ブロックの処理が終了すると、処理を終了したブロックを処理制御部に通知する。
【発明の効果】
【００２４】
以上のように、本発明によれば、ブロックごとに並列に処理を行う複数のプロセシングエレメントの間でブロック単位で粒度の小さい同期を取ることができ、個々のプロセシングエレメントがブロックの依存関係に応じた処理を行うことができる。
【発明を実施するための最良の形態】
【００２５】
図１は、ＭＰＥＧ−２におけるマクロブロック間の依存関係を示す図である。
ＭＰＥＧ−２では、ある任意のマクロブロックに対して復号または符号化を行う場合、左横のマクロブロックの処理結果を参照するので、少なくとも処理対象のマクロブロックの左横のマクロブロックの復号または符号化が完了していなければならない。なお、以下、このような関係のことを、左横に依存関係があるという。
【００２６】
図２は、ＭＰＥＧ−２において並列に復号または符号化を行うことが可能なマクロブロックを示す図である。
ＭＰＥＧ−２では、各マクロブロックが左横に依存関係があるので、横方向に並んだ一群のマクロブロックに対して左側から順番に処理を行うことができる。
【００２７】
図３は、Ｈ．２６４におけるマクロブロック間の依存関係を示す図である。
Ｈ．２６４では、ある任意のマクロブロックに対して復号または符号化を行う場合、左横、左斜上、上および右斜上のマクロブロックの処理結果を参照するので、少なくとも左横、左斜上、上および右斜上の４つのマクロブロックの復号または符号化が完了していなければならない。すなわち、Ｈ．２６４では、各マクロブロックが左横、左斜上、上および右斜上に依存関係がある。
【００２８】
図４は、Ｈ．２６４において並列に復号または符号化を行うことが可能なマクロブロックを示す図である。
Ｈ．２６４では、各マクロブロックが左横、左斜上、上および右斜上に依存関係があるので、斜め方向に並んだ一群のマクロブロックに対して並列に復号または符号化を行うことができる。
【００２９】
このように、符号化方式によってマクロブロック間の依存関係が異なるため、並列に処理できるマクロブロックの位置が異なる。
【００３０】
図５は、本発明の一実施形態によるデータ処理装置の例を示すブロック図である。データ処理装置１０は、データ処理部２０と処理制御部３０とを有している。
【００３１】
処理制御部３０は処理を要求するブロックのＩＤをデータ処理部２０に通知する。データ処理部２０は処理を要求されたＩＤのブロックを処理する。データ処理部２０はブロックの処理が終了すると、処理を終了したブロックのＩＤを処理制御部３０に通知する。
例えば、処理内容が動画像の復号または符号化であるとき、ＩＤはマクロブロックの位置を２次元の座標（ｘ，ｙ）で表したものである。ｘはピクチャの左端のマクロブロックの位置を０として、ピクチャの左端から右横方向に数えたマクロブロックの位置を示す。一方、ｙはピクチャの上端のマクロブロックの位置を０として、ピクチャの上端から下方向に数えたマクロブロックの位置を示す。ピクチャの左上隅のマクロブロックのＩＤは（０，０）である。
【００３２】
データ処理部２０は、ＦＩＦＯ（Ｆｉｒｓｔ−Ｉｎ  Ｆｉｒｓｔ−Ｏｕｔ）メモリ２１と、プロセシングエレメント２２（２２−１、２２−２、２２−３、２２−４）と、ＦＩＦＯメモリ２３（２３−１、２３−２、２３−３、２３−４）と、データ転送部２４と、メモリ２５（２５−１、２５−２）とを含んでいる。
【００３３】
ＦＩＦＯメモリ２１は、各プロセシングエレメント２２から処理を終了したブロックのＩＤを受け取り、バッファリングして処理制御部３０に渡す。
【００３４】
各プロセシングエレメント２２は、所定のワード数の命令メモリを有しており、図示しない命令キャッシュメモリから全てのプロセシングエレメント２２が同一の命令をロードし、命令メモリに記憶する。各プロセシングエレメント２２は各々シーケンサを有しており、ＦＩＦＯメモリ２３に記憶されているブロックのデータをリードし、命令メモリに記憶されている命令を実行する。
【００３５】
各ＦＩＦＯメモリ２３は、処理対象のブロックのデータを全て記憶できるだけの容量を有しており、割り当てられたＩＤのブロックのデータをメモリ２５からリードして記憶する。例えば、処理内容が動画像の復号または符号化であるとき、１マクロブロック分のデータを全て記憶する。各ＦＩＦＯメモリ２３は、特定のプロセシングエレメント２２に接続されており、割り当てられたＩＤのブロックのデータを接続されたプロセシングエレメント２２に供給する。
【００３６】
データ転送部２４は、処理制御部３０が処理を要求したＩＤを所定の数保持し、ラウンドロビン法等の所定のアルゴリズムによって各プロセシングエレメント２２に処理すべきブロックのＩＤを割り当てる。データ転送部２４は、保持できる最大の数のＩＤを処理制御部３０から受け取ると、新たなＩＤを受け付けできないことを処理制御部３０に通知する。
また、データ転送部２４は、２面のメモリ２５（２５−１、２５−２）の一方の面から各プロセシングエレメント２２に割り当てたＩＤのブロックのデータをリードして、各ＦＩＦＯ２３に供給する。データ転送部２４がアクセスしていないメモリ２５の他方の面には、後述するタスクコントローラから各プロセシングエレメント２２によって次に処理されるブロック群のデータがライトされる。
【００３７】
処理制御部３０は、検出部３１と、選択部３２と、状態記憶部３３と、判定部３４と、制御部３５とを有している。
【００３８】
図６は、処理制御部におけるブロックの処理状態を示す図である。
図６（ａ）に示すように、処理制御部３０では個々のブロックの処理状態は４つに分類される。
未処理（Ｐｌａｎｅ）の状態は、そのブロックの処理がデータ処理部２０に要求されておらず、データ処理部２０によって処理もされていない状態である。要求（Ｒｅｑｕｅｓｔｅｄ）は、そのブロックの処理がデータ処理部２０に要求され、データ処理部２０がそのブロックを処理している状態である。終了（Ｆｉｎｉｓｈ）は、データ処理部２０がそのブロックの処理を終了した状態である。仮処理（Ｖｉｒｔｕａｌ）は、条件フラグ（ＴＲＥＡＴ＿ＡＳ＿ＦＩＮＩＳＨ）＝ＴＲＵＥのとき、終了（Ｆｉｎｉｓｈ）として働き、条件フラグ（ＴＲＥＡＴ＿ＡＳ＿ＦＩＮＩＳＨ）＝ＦＡＬＳＥのとき、未処理（Ｐｌａｎｅ）として働く。
図６（ｂ）に示すように、個々のブロックの状態は、未処理（Ｐｌａｎｅ）または仮処理（Ｖｉｒｔｕａｌ）の状態から、要求（Ｒｅｑｕｅｓｔｅｄ）の状態に遷移し、最後に終了（Ｆｉｎｉｓｈ）の状態に遷移する。
【００３９】
図７は、仮処理の状態を用いた動画像の復号または符号化の処理フローを示す図である。
例えば、Ｈ．２６４のピクチャ種別には、イントラピクチャとインターピクチャがある。イントラピクチャ（Ｉピクチャ）は、そのピクチャ内の画素のみを用いて符号化されるピクチャであり、インターピクチャは時間的に前後のピクチャを参照して符号化されるピクチャである。
インターピクチャには、既に符号化された時間的に前のピクチャを参照して符号化する順方向予測ピクチャ（Ｐピクチャ）と時間的に前後の２ピクチャを参照して予測する双方向予測ピクチャ（Ｂピクチャ）がある。
【００４０】
インターピクチャは、インターマクロブロックのほかにイントラマクロブロックも含む。イントラマクロブロックは、復号と符号化のいずれの場合も同じピクチャ内の左横、上および右斜上のマクロブロックの処理が終了していなければ、処理することはできない。
【００４１】
一方、インターマクロブロックは、復号の場合、ＶＬＤとデブロッキングフィルタを除き、左横、上および右斜上のマクロブロックの処理が終了していなくてもインターマクロブロックを処理することができる。
符号化の場合には、イントラマクロブロックとインターマクロブロックの判定が終了した後からデブロッキングフィルタまでの間の処理、すなわち、整数変換、量子化、逆量子化、逆整数変換は左横、上および右斜上のマクロブロックの処理が終了していなくても行うことができる。
【００４２】
また、上述したとおり、データ処理部２０に含まれるプロセシングエレメント２２の命令メモリのワード数は有限である。そこで、インターマクロブロックを先にまとめて復号または符号化し、その後プログラムを入れ換えてイントラマクロブロックを復号または符号化することによって命令メモリのワード数を少なくすることができる。
【００４３】
そのために、まず、イントラマクロブロックの処理状態を仮処理と設定する（ステップＳ１０）。
次に、各プロセシングエレメント２２の命令メモリに同一のインターマクロブロック用プログラムをロードし、条件フラグ＝ＴＲＵＥとしてイントラマクロブロックの処理状態を終了と仮定してインターマクロブロックを復号または符号化する（ステップＳ１１）。
次に、各プロセシングエレメント２２の命令メモリに同一のイントラマクロブロック用プログラムをロードし、条件フラグ＝ＦＡＬＳＥとしてイントラマクロブロックの処理状態を未処理に変更してイントラマクロブロックを復号または符号化する（ステップＳ１２）。
全てのマクロブロックの処理状態が終了となったとき、動画像の復号または符号化が終了する（ステップＳ１３）。
【００４４】
以下では、処理制御部３０に含まれる各機能ブロックの動作を、動画像の復号または符号化を行う場合を例として説明する。
【００４５】
検出部３１は、ＦＩＦＯメモリ２１から各プロセシングエレメント２２が処理を終了したマクロブロックのＩＤを受け取り、受け取ったＩＤの数をカウントする。制御部３５は、検出部３１に対してプロセシングエレメント２２によって処理されるべき総マクロブロック数を指定する。検出部３１は、カウントしたＩＤ数が処理されるべき総マクロブロック数に達すると、制御部３５に全てのマクロブロックの処理終了を通知する。
【００４６】
また、制御部３５は、データ転送部２４から保持できるＩＤ数に達したため新たなＩＤを受け付けできないことを通知されると、データ転送部２４がオーバフローすることを防ぐために、後述する選択部３２と判定部３４を停止させ、データ転送部２４から新たなＩＤを受け付けできないという通知を受けたことを検出部３１に通知する。
検出部３１は、この通知を受けたときのＩＤ数を記憶しておき、ＦＩＦＯメモリ２１から新たにＩＤを受け取ると、現在カウントされているＩＤ数と通知を受けたときのＩＤ数との差分を制御部３５に渡す。
制御部３５は、プロセシングエレメント２２によるマクロブロックの処理が進み、この差分が、データ転送部２４がマクロブロックの処理を受け付けることができるＩＤ数に達すると、選択部３２と判定部３４を動作させ、データ処理部２０への新たなＩＤの処理の要求を再開する。
【００４７】
選択部３２は、各プロセシングエレメント２２がマクロブロックの処理を終了し、ＦＩＦＯメモリ２１から各プロセシングエレメント２２が処理を終了したマクロブロックのＩＤを受け取るごとに、隣接マクロブロックの処理結果を参照して処理対象のブロックを処理することを示す参照フラグに基づいて、プロセシングエレメント２２が処理できる可能性のあるマクロブロックを選択する。
【００４８】
図８は、動画像の復号または符号化を行うときの隣接マクロブロックを示す図である。
マクロブロックＴは復号または符号化の対象であるマクロブロックである。マクロブロックＡとマクロブロックＢとマクロブロックＣとマクロブロックＤは、それぞれマクロブロックＴの左斜上、上、右斜上および左横のマクロブロックである。
これらの４個のマクロブロックは、マクロブロックＴを復号または符号化するとき既に復号または符号化が終了している。マクロブロックＴを復号または符号化するとき、これら４個のマクロブロックの処理結果のうちどれを参照するかは符号化方式により異なる。
例えば、ＭＰＥＧ−２では、マクロブロックＴを復号または符号化するとき、マクロブロックＤの処理結果を参照する。ＭＰＥＧ−４では、マクロブロックＴを復号または符号化するとき、マクロブロックＡとマクロブロックＢとマクロブロックＤの処理結果を参照する。Ｈ．２６４では、マクロブロックＡとマクロブロックＢとマクロブロックＣとマクロブロックＤの処理結果を参照する。
【００４９】
従って、動画像の復号または符号化の処理を行うときの参照フラグＤｅｐは４ビットである。Ｄｅｐ（０）＝ＴＲＵＥは、マクロブロックＴを復号または符号化するとき、マクロブロックＡの処理結果を参照することを示し、Ｄｅｐ（０）＝ＦＡＬＳＥはマクロブロックＡの処理結果を参照しないことを示す。同様に、Ｄｅｐ（１）＝ＴＲＵＥ、Ｄｅｐ（２）＝ＴＲＵＥおよびＤｅｐ（３）＝ＴＲＵＥは、それぞれマクロブロックＢ、マクロブロックＣ、マクロブロックＤの処理結果を参照することを示し、Ｄｅｐ（１）＝ＦＡＬＳＥ、Ｄｅｐ（２）＝ＦＡＬＳＥおよびＤｅｐ（３）＝ＦＡＬＳＥは、それぞれマクロブロックＢ、マクロブロックＣ、マクロブロックＤの処理結果を参照しないことを示す。
【００５０】
図９は、プロセシングエレメントが復号または符号化できる可能性のあるマクロブロックを示す図である。
プロセシングエレメント２２が復号または符号化できる可能性のあるマクロブロックは、参照フラグに基づいて選択される。
例えば、Ｄｅｐ（０）＝ＴＲＵＥは、マクロブロックＴを復号または符号化するとき、図８に示すマクロブロックＡの処理結果が参照されることを意味する。すなわち、Ｄｅｐ（０）＝ＴＲＵＥは、マクロブロックＡの復号または符号化が終了したとき、マクロブロックＴを復号または符号化できる可能性があることを意味する。従って、Ｄｅｐ（０）＝ＴＲＵＥであるとき、図９のマクロブロックＥの復号または符号化が終了すると、マクロブロックＷを復号または符号化できる可能性が生じる。
同様に、Ｄｅｐ（１）＝ＴＲＵＥ、Ｄｅｐ（２）＝ＴＲＵＥ、またはＤｅｐ（３）＝ＴＲＵＥであるとき、マクロブロックＥの復号または符号化が終了すると、それぞれマクロブロックＺ、マクロブロックＹ、またはマクロブロックＸを復号または符号化できる可能性が生じる。
このため、選択部３２は、マクロブロックＥの復号または符号化が終了すると、ＴＲＵＥである参照フラグＤｅｐ（０）、Ｄｅｐ（１）、Ｄｅｐ（２）、またはＤｅｐ（３）に対応して、プロセシングエレメント２２が処理できる可能性のあるマクロブロックとして、それぞれマクロブロックＷ、マクロブロックＺ、マクロブロックＹ、またはマクロブロックＸを選択する。
【００５１】
状態記憶部３３には、１ピクチャ分のマクロブロックについて、マクロブロックごとに図６（ａ）に示す４つの処理状態のいずれかが記憶されている。
選択部３２は、各プロセシングエレメント２２がマクロブロックの処理を終了し、ＦＩＦＯメモリ２１から各プロセシングエレメント２２が処理を終了したマクロブロックのＩＤを受け取ると、状態記憶部３３の処理状態を終了に変更する。
【００５２】
上述したように、制御部３５は、データ転送部２４から保持できるＩＤ数に達したため新たなＩＤを受け付けできないことを通知されると、選択部３２を停止させる。しかし、その場合でも選択部３２は、処理を終了したマクロブロックのＩＤを受け取ると、状態記憶部３３の処理状態を終了に変更する処理は実行する。
【００５３】
図１０は、マクロブロックが処理可能であるか否かを判定する方法を示す図である。
判定部３４は、選択部３２または制御部３５から、処理可能であるか否かを判定する対象となるマクロブロックのＩＤ＝（ｘ，ｙ）を受け取る。そして、ＩＤ＝（ｘ，ｙ）のマクロブロックの処理状態Ｂｌｏｃｋ（ｘ，ｙ）と、そのマクロブロックに隣接しているＩＤ＝（ｘ−１，ｙ−１）のマクロブロックの処理状態Ｂｌｏｃｋ（ｘ−１，ｙ−１）、ＩＤ＝（ｘ，ｙ−１）のマクロブロックの処理状態Ｂｌｏｃｋ（ｘ，ｙ−１）、ＩＤ＝（ｘ＋１，ｙ−１）のマクロブロックの処理状態Ｂｌｏｃｋ（ｘ＋１，ｙ−１）およびＩＤ＝（ｘ−１，ｙ）のマクロブロックの処理状態Ｂｌｏｃｋ（ｘ−１，ｙ）を状態記憶部３３から取得する。なお、ＩＤ＝（ｘ−１，ｙ−１）、ＩＤ＝（ｘ，ｙ−１）、ＩＤ＝（ｘ＋１，ｙ−１）およびＩＤ＝（ｘ−１，ｙ）のマクロブロックは、それぞれ図８に示すマクロブロックＡ、マクロブロックＢ、マクロブロックＣおよびマクロブロックＤに対応する。
そして、判定部３４は、これらの各マクロブロックの処理状態と参照フラグと条件フラグに基づいて、判定対象のマクロブロックが処理可能であるか否かを判定する。
【００５４】
図１０に示す判定方法ＣｈｅｃｋＩＤによると、判定対象のマクロブロックが未処理の状態であって、かつ、４個の隣接マクロブロックの状態が（１）判定対象のマクロブロックによってその隣接マクロブロックの処理結果が参照されない、または（２）その隣接マクロブロックの処理状態が終了である、または（３）その隣接マクロブロックの処理状態が仮処理の状態であって終了としてみなされる、のいずれかであるとき、判定対象のマクロブロックは復号または符号化できる（ＴＲＵＥ）と判定される。それ以外のときは、判定対象のマクロブロックは復号または符号化できない（ＦＡＬＳＥ）と判定される。
なお、図１０の判定方法では、判定対象のマクロブロックがピクチャの左端、右端、上端または下端のマクロブロックであって、隣接マクロブロックが存在しないとき、存在しない隣接マクロブロックの処理状態は終了として扱われる。
【００５５】
判定部３４は、判定対象のマクロブロックを復号または符号化できる（ＴＲＵＥ）と判定すると、データ処理部２０にそのマクロブロックのＩＤを通知し、復号または符号化を要求する。判定部３４は、同時に復号または符号化を要求したＩＤのマクロブロックについて状態記憶部３３の処理状態を要求に変更する。
【００５６】
制御部３５は、最初に状態記憶部３３に記憶されている全てのマクロブロックの処理状態を未処理に初期化する。次に、所定のマクロブロックを仮処理の状態に変更する。次に、未処理の状態のマクロブロックのＩＤを判定部３４に送って、処理可能か否か判定させる。判定部３４が、処理可能と判定したマクロブロックのＩＤをデータ処理部２０に通知することによりデータ処理部２０が処理を開始する。
そして、制御部３５は、検出部３１から全てのマクロブロックの処理終了が通知されると、データ処理装置１０を制御するプロセサ等へ終了を通知する。
【００５７】
処理制御部３０は、ハードウエアとして実現しても良いし、コンピュータで実行されるソフトウエアとして実現しても良い。また、図５では、プロセシングエレメント２２とＦＩＦＯメモリ２３の数を４個ずつとしたが、４個に限らず任意の数とすることができる。
【００５８】
なお、データ処理部２０は本発明のデータ処理部の例であり、プロセシングエレメント２２は本発明のプロセシングエレメントの例であり、処理制御部３０は本発明の処理制御部の例であり、選択部３２は本発明の選択部の例であり、状態記憶部３３は本発明の状態記憶部の例であり、判定部３４は本発明の判定部の例であり、制御部３５は本発明の制御部の例である。
【００５９】
図１１は、本発明の一実施形態による動画像コーデック装置の例を示すブロック図である。
動画像コーデック装置４０は、タスクコントローラ４１と、データ処理装置１０とを有している。図５と図１１における同一の符号は同一の構成要素を示す。なお、図１１では、処理制御部３０をタスクコントローラ４１と別々に設けているが、処理制御部３０はタスクコントローラ４１の一部に含めても良い。
【００６０】
図１２は、タスクコントローラとデータ処理装置の処理分担の例を示す図である。
図１２は、Ｈ．２６４で符号化されたビットストリームを復号する例を示している。
タスクコントローラ４１は、Ｈ．２６４で符号化されたビットストリームに対して可変長符号の復号（ＶＬＤ）を行う。固定長符号に復号されたマクロブロックのデータはデータ処理装置１０に送られ、データ処理装置１０内のメモリ２５に書き込まれる。
メモリ２５は、２重化されているため、タスクコントローラ４１から送られたマクロブロックのデータがメモリ２５の一方の面にライトされているとき、ＦＩＦＯメモリ２３はメモリ２５の他方の面から固定長符号に復号されたマクロブロックのデータをリードし、プロセシングエレメント２２に供給することができる。
このため、タスクコントローラ４１によるＶＬＤとプロセシングエレメント２２によるマクロブロックのデータの復号はパイプライン的に並列して実行される。
【００６１】
復号されるピクチャがイントラピクチャであるときは、データ処理装置１０は、まずピクチャ内の全てのイントラマクロブロックに対してプロセシングエレメント２２によって並列に逆量子化と逆整数変換とイントラ予測を行ってイントラマクロブロックを復号する。このとき、検出部３１には、プロセシングエレメント２２によって処理されるべき総ブロック数としてピクチャ内のマクロブロックの総数が指定される。
イントラマクロブロックの復号が終了すると、次にピクチャ内の全てのイントラマクロブロックに対してプロセシングエレメント２２によって並列にデブロッキングフィルタをかける。デブロッキングフィルタをかけるときも、同様に検出部３１には、プロセシングエレメント２２によって処理されるべき総ブロック数としてピクチャ内のマクロブロックの総数が指定される。
【００６２】
また、復号されるピクチャがインターピクチャであるときは、データ処理装置１０は、図１２に示すように、まずピクチャ内の全てのインターマクロブロックに対してプロセシングエレメント２２によって並列に逆量子化と逆整数変換と動き補償を行ってインターマクロブロックを復号する。このとき、検出部３１には、プロセシングエレメント２２によって処理されるべき総ブロック数としてピクチャ内のインターマクロブロックの数が指定される。
次に、ピクチャ内の全てのイントラマクロブロックに対してプロセシングエレメント２２によって並列に逆量子化と逆整数変換とイントラ予測を行ってイントラマクロブロックを復号する。このとき、検出部３１には、プロセシングエレメント２２によって処理されるべき総ブロック数としてピクチャ内のイントラマクロブロックの数が指定される。
最後に、ピクチャ内の全てのマクロブロックに対してプロセシングエレメント２２によって並列にデブロッキングフィルタをかける。デブロッキングフィルタをかけるときは、プロセシングエレメント２２によって処理されるべき総ブロック数としてピクチャ内のマクロブロックの総数が指定される。
【００６３】
図１３Ａと図１３Ｂは、Ｈ．２６４で符号化されたビットストリームにおけるインターピクチャの復号処理を示すフローチャートの図である。
図１３Ａと図１３Ｂは、タスクコントローラ４１で可変長符号の復号（ＶＬＤ）が行われた後、データ処理装置１０で行われる処理を示す。
【００６４】
制御部３５は、状態記憶部３３における全てのマクロブロックの処理状態を、未処理（Ｐｌａｎｅ）に設定する（ステップＳ２０）。
次に、制御部３５は、状態記憶部３３におけるイントラマクロブロックの処理状態を仮処理（Ｖｉｒｔｕａｌ）に変更する（ステップＳ２１）。
次に、制御部３５は、条件フラグ（ＴＲＥＡＴ＿ＡＳ＿ＦＩＮＩＳＨ）を仮処理の状態が終了の状態として扱われるように設定する（ステップＳ２２）。
次に、左斜上、上、右斜上および左横の隣接マクロブロックの参照フラグ(Ｄｅｐ)を、全て隣接マクロブロックの処理結果を参照せずに処理対象のインターマクロブロックを処理するように設定する（ステップＳ２３）。
次に、制御部３５は、未処理の状態のインターマクロブロックのＩＤを判定部３４に送り、判定部３４はこのインターマクロブロックのＩＤをデータ処理部２０に送ることによって、データ処理部２０に含まれるプロセシングエレメント２２が復号を行うことを要求する。判定部３４は、同時に、状態記憶部３３におけるこのＩＤのインターマクロブロックの処理状態を要求に変更する（ステップＳ２４）。
次に、プロセシングエレメント２２は、要求されたＩＤのインターマクロブロックを復号する（ステップＳ２５）。
選択部３２は、検出部３１によって要求されたＩＤのインターマクロブロックの復号終了が検出されるごとに、状態記憶部３３における要求されたＩＤのインターマクロブロックの処理状態を終了に変更する（ステップＳ２６）。
【００６５】
制御部３５は、状態記憶部３３における全てのインターマクロブロックの処理状態が終了になると、条件フラグを仮処理の状態が未処理の状態として扱われるように設定する（ステップＳ２７）。
次に、制御部３５は、左斜上、上、右斜上および左横の隣接マクロブロックの参照フラグ(Ｄｅｐ)を、全て隣接マクロブロックの処理結果を参照して処理対象のイントラマクロブロックを処理するように設定する（ステップＳ２８）。
次に、制御部３５は、仮処理の状態のイントラマクロブロックのＩＤを判定部３４に送り、判定部３４はこのイントラマクロブロックのＩＤをデータ処理部２０に送ることによって、データ処理部２０に含まれるプロセシングエレメント２２が復号を行うことを要求する。判定部３４は、同時に、状態記憶部３３におけるこのＩＤのイントラマクロブロックの処理状態を要求に変更する（ステップＳ２９）。
プロセシングエレメント２２は、要求されたＩＤのイントラマクロブロックを復号する（ステップＳ３０）。
選択部３２は、検出部３１によって要求されたＩＤのイントラマクロブロックの復号終了が検出されるごとに、状態記憶部３３における要求されたＩＤのイントラマクロブロックの処理状態を終了に変更するとともに、参照フラグに基づいて、プロセシングエレメント２２が処理できる可能性のあるマクロブロックを選択する（ステップＳ３１）。
判定部３４は、選択されたマクロブロックの隣接ブロックの処理状態と参照フラグと条件フラグに基づいて選択されたマクロブロックが処理可能なイントラマクロブロックであるか否かを判定する（ステップＳ３２）。
次に、判定部３４は、処理可能であると判定されたイントラマクロブロックのＩＤをデータ処理部２０に送ることによって、データ処理部２０に含まれるプロセシングエレメント２２が復号を行うことを要求する。判定部３４は、同時に、状態記憶部３３におけるこのＩＤのイントラマクロブロックの処理状態を要求に変更する（ステップＳ３３）。
プロセシングエレメント２２は、処理可能であると判定されたＩＤのイントラマクロブロックを復号する（ステップＳ３４）。
【００６６】
次に、制御部３５は、状態記憶部３３における全てのイントラマクロブロックの処理状態が終了になると、状態記憶部３３における全てのマクロブロックの処理状態を未処理に設定する（ステップＳ３５）。
次に、制御部３５は、左斜上、上、右斜上および左横の隣接マクロブロックの参照フラグを全て隣接マクロブロックの処理結果を参照して処理対象のマクロブロックを処理するように設定する(ステップＳ３６)。
次に、制御部３５は、未処理の状態のマクロブロックのＩＤを判定部３４に送り、判定部３４はこのマクロブロックのＩＤをデータ処理部２０に送ることによって、データ処理部２０に含まれるプロセシングエレメント２２が未処理の状態のマクロブロックにデブロッキングフィルタをかけることを要求する。判定部３４は、同時に、状態記憶部３３におけるこのＩＤのマクロブロックの処理状態を要求に変更する(ステップＳ３７)。
プロセシングエレメント２２は、要求されたＩＤのマクロブロックにデブロッキングフィルタをかける（ステップＳ３８）。
選択部３２は、検出部３１によってプロセシングエレメント２２が要求されたＩＤのマクロブロックにデブロッキングフィルタをかけたことが検出されるごとに、状態記憶部３３における要求されたＩＤのマクロブロックの処理状態を終了に変更する（ステップＳ３９）。
制御部３５は、状態記憶部３３における全てのマクロブロックの処理状態が終了になると、復号を終了する（ステップＳ４０）。
【００６７】
なお、選択部３２が、プロセシングエレメント２２が処理できる可能性のあるマクロブロックを選択できなかったとき、または判定部３４が処理可能なマクロブロックがないと判定したときは、制御部３５が未処理の状態のマクロブロックのＩＤを判定部３４に送ることによって処理が続行される。
【００６８】
ＭＰＥＧ−４で符号化されたビットストリームにおけるインターピクチャの復号処理もＨ．２６４と同様に行うことができる。Ｈ．２６４とＭＰＥＧ−４で異なる点は、ＭＰＥＧ−４にはデブロッキングフィルタが無い点と参照フラグが異なる点のみである。
デブロッキングフィルタが無いため、図１３Ａと図１３ＢにおけるステップＳ３５−ステップＳ３９は不要である。また、参照フラグは、それぞれＤｅｐ（０）＝ＴＲＵＥ、Ｄｅｐ（１）＝ＴＲＵＥ、Ｄｅｐ（２）＝ＦＡＬＳＥ、およびＤｅｐ（３）＝ＴＲＵＥと設定される。処理制御部３０は、これら２点を除き、Ｈ．２６４とＭＰＥＧ−４で同様に動作する。
【００６９】
ＭＰＥＧ−２で符号化されたビットストリームにおけるインターピクチャの復号処理もＭＰＥＧ−４と同様に行うことができる。ＭＰＥＧ−４と同様にＭＰＥＧ−２もデブロッキングフィルタが無い。また、参照フラグは、それぞれＤｅｐ（０）＝ＦＡＬＳＥ、Ｄｅｐ（１）＝ＦＡＬＳＥ、Ｄｅｐ（２）＝ＦＡＬＳＥ、およびＤｅｐ（３）＝ＴＲＵＥと設定される。
【００７０】
ＪＰＥＧで符号化されたビットストリームの復号処理は、参照フラグを全てＦＡＬＳＥに設定することにより、データ処理装置１０で行うことができる。
【００７１】
図１４Ａと図１４Ｂは、インターピクチャをＨ．２６４で符号化する処理を示すフローチャートの図である。
図１４Ａと図１４Ｂはデータ処理装置１０で行われる処理を示す。タスクコントローラ４１で動き検出とイントラマクロブロックまたはインターマクロブロックの判定が行われた後、データ処理装置１０で図１４Ａと図１４Ｂに示す処理が行われる。その後、タスクコントローラ４１で可変長符号化が行われる。
図１３Ａおよび図１３Ｂと、図１４Ａおよび図１４Ｂが異なる点は、復号が符号化に変更された点のみである。復号が符号化に変更された点を除き、ステップＳ２０−ステップＳ４０とステップＳ５０−ステップＳ７０は同一である。すなわち、プロセシングエレメント２２のプログラムは復号と符号化で異なるが、処理制御部３０の動作は復号と符号化で同一である。
【００７２】
ＭＰＥＧ−４、ＭＰＥＧ−２、またはＪＰＥＧ等の符号化もデータ処理装置１０を用いて行うことができる。また、音声を対象とするＭＰ３、ＡＡＣ等の符号化方式による復号と符号化もデータ処理装置１０を用いて行うことができる。
【００７３】
以上説明したように、本発明によれば、ブロックごとの処理を並列に行う複数のプロセシングエレメントの間でブロック単位で粒度の小さい同期を取ることができ、個々のプロセシングエレメントがブロックの依存関係に応じた処理を行うことができる。
【００７４】
以上、本発明の実施形態について説明したが、設計上の都合やその他の要因によって必要となる様々な修正や組み合わせは、請求項に記載されている発明や発明の実施形態に記載されている具体例に対応する発明の範囲に含まれると理解されるべきである。
【図面の簡単な説明】
【００７５】
【図１】ＭＰＥＧ−２におけるマクロブロック間の依存関係を示す図である。
【図２】ＭＰＥＧ−２において並列に復号または符号化を行うことが可能なマクロブロックを示す図である。
【図３】Ｈ．２６４におけるマクロブロック間の依存関係を示す図である。
【図４】Ｈ．２６４において並列に復号または符号化を行うことが可能なマクロブロックを示す図である。
【図５】本発明の一実施形態によるデータ処理装置の例を示すブロック図である。
【図６】処理制御部におけるブロックの処理状態を示す図である。
【図７】仮処理の状態を用いた動画像の復号または符号化の処理フローを示す図である。
【図８】動画像の復号または符号化を行うときの隣接マクロブロックを示す図である。
【図９】プロセシングエレメントが復号または符号化できる可能性のあるマクロブロックを示す図である。
【図１０】マクロブロックが処理可能であるか否かを判定する方法を示す図である。
【図１１】本発明の一実施形態による動画像コーデック装置の例を示すブロック図である。
【図１２】タスクコントローラとデータ処理装置の処理分担の例を示す図である。
【図１３Ａ】Ｈ．２６４で符号化されたビットストリームにおけるインターピクチャの復号処理を示すフローチャートを示す図である。
【図１３Ｂ】Ｈ．２６４で符号化されたビットストリームにおけるインターピクチャの復号処理を示すフローチャートを示す図である。
【図１４Ａ】インターピクチャをＨ．２６４で符号化する処理を示すフローチャートの図である。
【図１４Ｂ】インターピクチャをＨ．２６４で符号化する処理を示すフローチャートの図である。
【符号の説明】
【００７６】
１０…データ処理装置、２０…データ処理部、２２…プロセシングエレメント、３０…処理制御部、３２…選択部、３３…状態記憶部、３４…判定部、３５…制御部
【図１】
2008283612.tif 000003
【図２】
2008283612.tif 000004
【図３】
2008283612.tif 000005
【図４】
2008283612.tif 000006
【図５】
2008283612.tif 000007
【図６】
2008283612.tif 000008
【図７】
2008283612.tif 000009
【図８】
2008283612.tif 000010
【図９】
2008283612.tif 000011
【図１０】
2008283612.tif 000012
【図１１】
2008283612.tif 000013
【図１２】
2008283612.tif 000014
【図１３Ａ】
2008283612.tif 000015
【図１３Ｂ】
2008283612.tif 000016
【図１４Ａ】
2008283612.tif 000017
【図１４Ｂ】
2008283612.tif 000018