JP4807320B2 - 復号装置、符号化装置、復号方法、符号化方法、および映像の復号と符号化を行うプログラム - Google Patents
復号装置、符号化装置、復号方法、符号化方法、および映像の復号と符号化を行うプログラム Download PDFInfo
- Publication number
- JP4807320B2 JP4807320B2 JP2007127867A JP2007127867A JP4807320B2 JP 4807320 B2 JP4807320 B2 JP 4807320B2 JP 2007127867 A JP2007127867 A JP 2007127867A JP 2007127867 A JP2007127867 A JP 2007127867A JP 4807320 B2 JP4807320 B2 JP 4807320B2
- Authority
- JP
- Japan
- Prior art keywords
- macroblock
- processing
- state
- requested
- processing element
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Advance Control (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Description
詳しくは、本発明は、例えば、映像や音声の復号または符号化を複数のプロセシングエレメントで並列に行うデータ処理装置、復号装置、符号化装置、データ処理方法、復号方法、符号化方法、および映像の復号と符号化を行うプログラムに関する。
このため、同一の構造を有する複数のプロセシングエレメントを含むプログラマブルなデータ処理装置で動画像の復号または符号化を行う場合、個々のプロセシングエレメントに1個のマクロブロックを割り当てて、並列に処理することが考えられる。すなわち、データ処理装置で領域分割による並列化を行うことが考えられる。
このように、複数のプロセシングエレメントが並列に動作するデータ処理装置においてマクロブロック単位で粒度の細かい同期を取るためのオーバヘッドは無視できない。
前記マクロブロックを処理する、少なくとも2つのプロセシングエレメント
を含むデータ処理部と、
前記プロセシングエレメントが前記マクロブロックの処理を終了するごとに、処理対象であるマクロブロックの符号化時に既に符号化済みである隣接マクロブロックに対応して設けられ、当該隣接マクロブロックの処理結果を参照して処理対象のマクロブロックを処理することを示す参照フラグに基づいて、前記プロセシングエレメントが処理できる可能性のあるマクロブロックを選択する選択部と、
前記ピクチャに含まれる個々のマクロブロックについて、当該マクロブロックの処理状態が、少なくとも、前記データ処理部に当該マクロブロックを処理することが要求されていない状態である未処理、当該マクロブロックの処理が前記データ処理部に要求され、前記データ処理部が当該マクロブロックを処理している状態である要求、前記データ処理部によって当該マクロブロックの処理が終了された状態である終了、または条件フラグに応じて当該マクロブロックが前記未処理の状態または前記終了の状態として扱われる仮処理のいずれの状態であるかを記憶する状態記憶部と、
前記選択されたマクロブロックの隣接マクロブロックの前記処理状態と前記参照フラグに基づいて、前記選択されたマクロブロックが処理可能であるか否かを判定し、当該処理可能であると判定されたマクロブロックの処理を前記データ処理部に要求する判定部と、
前記未処理の状態または仮処理の状態のマクロブロックの処理を前記データ処理部に要求する制御部と、
を含む処理制御部と、
を有し、
前記制御部が、前記マクロブロックのうちイントラマクロブロックについて前記状態記憶部における処理状態を仮処理に設定し、前記条件フラグを仮処理の状態が終了として扱われるように設定し、前記参照フラグを全て隣接マクロブロックの処理結果を参照せずに処理対象のインターマクロブロックを処理するように設定して、前記データ処理部に未処理の状態のインターマクロブロックを復号するように要求するとともに、当該復号するように要求したインターマクロブロックの前記状態記憶部における処理状態を要求に変更し、
前記プロセシングエレメントが、前記要求されたインターマクロブロックを復号し、
前記制御部が、前記プロセシングエレメントが前記要求されたインターマクロブロックの復号を終了するごとに、前記状態記憶部における前記要求されたインターマクロブロックの処理状態を終了に変更し、
前記制御部が、前記状態記憶部における前記インターマクロブロックの処理状態がすべて終了になると、前記条件フラグを仮処理の状態が未処理の状態として扱われるように変更し、前記参照フラグを動画像の符号化規格に応じて設定して、前記データ処理部に仮処理の状態のイントラマクロブロックを復号するように要求するとともに、当該復号するように要求したイントラマクロブロックの前記状態記憶部における処理状態を要求に変更し、
前記プロセシングエレメントが、前記要求されたイントラマクロブロックを復号し、
前記選択部が、前記プロセシングエレメントが前記要求されたイントラマクロブロックの復号を終了するごとに、前記状態記憶部における前記要求されたイントラマクロブロックの処理状態を終了に変更するとともに、前記参照フラグに基づいて、前記プロセシングエレメントが処理できる可能性のあるマクロブロックを選択し、
前記判定部が、前記選択されたマクロブロックの隣接ブロックの処理状態と前記参照フラグと前記条件フラグに基づいて、前記選択されたマクロブロックが処理可能なイントラマクロブロックであるか否かを判定し、処理可能であると判定されたイントラマクロブロックの復号を前記プロセシングエレメントが行うことを要求するとともに、当該復号するように要求したイントラマクロブロックの処理状態を要求に変更し、
前記プロセシングエレメントが、前記処理可能であると判定されたイントラマクロブロックを復号する。
前記制御部が、前記イントラマクロブロックを処理するとき、前記参照フラグを全て隣接マクロブロックの処理結果を参照して処理対象のイントラマクロブロックを処理するように設定し、
前記制御部が、前記状態記憶部における前記イントラマクロブロックの処理状態がすべて終了になると、前記状態記憶部における全てのマクロブロックの処理状態を未処理に設定し、前記参照フラグを全て隣接マクロブロックの処理結果を参照して処理対象のマクロブロックを処理するように設定し、前記プロセシングエレメントが未処理の状態のマクロブロックにデブロッキングフィルタをかけることを要求するとともに当該デブロッキングフィルタをかけることを要求したマクロブロックの前記状態記憶部における処理状態を要求に変更し、
前記プロセシングエレメントが、前記要求されたマクロブロックにデブロッキングフィルタをかけ、
前記制御部が、前記プロセシングエレメントが前記要求されたマクロブロックにデブロッキングフィルタをかけるごとに、前記状態記憶部における前記要求されたマクロブロックの処理状態を終了に変更する。
前記マクロブロックを処理する、少なくとも2つのプロセシングエレメント
を含むデータ処理部と、
前記プロセシングエレメントが前記マクロブロックの処理を終了するごとに、処理対象であるマクロブロックの符号化時に既に符号化済みである隣接マクロブロックに対応して設けられ、当該隣接マクロブロックの処理結果を参照して処理対象のマクロブロックを処理することを示す参照フラグに基づいて、前記プロセシングエレメントが処理できる可能性のあるマクロブロックを選択する選択部と、
前記ピクチャに含まれる個々のマクロブロックについて、当該マクロブロックの処理状態が、少なくとも、前記データ処理部に当該マクロブロックを処理することが要求されていない状態である未処理、当該マクロブロックの処理が前記データ処理部に要求され、前記データ処理部が当該マクロブロックを処理している状態である要求、前記データ処理部によって当該マクロブロックの処理が終了された状態である終了、または条件フラグに応じて当該マクロブロックが前記未処理の状態または前記終了の状態として扱われる仮処理のいずれの状態であるかを記憶する状態記憶部と、
前記選択されたマクロブロックの隣接マクロブロックの前記処理状態と前記参照フラグに基づいて、前記選択されたマクロブロックが処理可能であるか否かを判定し、当該処理可能であると判定されたマクロブロックの処理を前記データ処理部に要求する判定部と、
前記未処理の状態または仮処理の状態のマクロブロックの処理を前記データ処理部に要求する制御部と、
を含む処理制御部と、
を有し、
前記制御部が、前記マクロブロックのうちイントラマクロブロックについて前記状態記憶部における処理状態を仮処理に設定し、前記条件フラグを仮処理の状態が終了として扱われるように設定し、前記参照フラグを全て隣接マクロブロックの処理結果を参照せずに処理対象のインターマクロブロックを処理するように設定して、前記プロセシングエレメントに未処理の状態のインターマクロブロックを符号化するように要求するとともに当該符号化するように要求したインターマクロブロックの前記状態記憶部における処理状態を要求に変更し、
前記プロセシングエレメントが、前記要求されたインターマクロブロックを符号化し、
前記制御部が、前記プロセシングエレメントが前記要求されたインターマクロブロックの符号化を終了するごとに、前記状態記憶部における前記要求されたインターマクロブロックの処理状態を終了に変更し、
前記制御部が、前記状態記憶部における前記インターマクロブロックの処理状態がすべて終了になると、前記条件フラグを前記仮処理の状態が未処理として扱われるように変更し、前記参照フラグを動画像の符号化規格に応じて設定して、前記データ処理部に仮処理の状態のイントラマクロブロックを符号化するように要求するとともに当該符号化するように要求したイントラマクロブロックの前記状態記憶部における処理状態を要求に変更し、
前記プロセシングエレメントが、前記要求されたイントラマクロブロックを符号化し、
前記選択部が、前記プロセシングエレメントが前記要求されたイントラマクロブロックの符号化を終了するごとに、前記状態記憶部における前記要求されたイントラマクロブロックの処理状態を終了に変更するとともに、前記参照フラグに基づいて、前記プロセシングエレメントが処理できる可能性のあるマクロブロックを選択し、
前記判定部が、前記選択されたマクロブロックの隣接ブロックの処理状態と前記参照フラグと前記条件フラグに基づいて、前記選択されたマクロブロックが処理可能なイントラマクロブロックであるか否かを判定し、処理可能であると判定されたイントラマクロブロックの符号化を前記プロセシングエレメントが行うことを要求するとともに、当該符号化するように要求したイントラマクロブロックの処理状態を要求に変更し、
前記プロセシングエレメントが、前記処理可能であると判定されたイントラマクロブロックを符号化する。
全てのマクロブロックの処理状態を、前記プロセシングエレメントにマクロブロックを処理することが要求されていない状態である未処理の状態に設定するステップと、
前記マクロブロックのうちイントラマクロブロックを、条件フラグに応じて前記未処理の状態または前記プロセシングエレメントによってマクロブロックの処理が終了された状態である終了の状態として扱われる仮処理の状態に変更するステップと、
前記条件フラグを前記仮処理の状態が前記終了の状態として扱われるように設定するステップと、
処理対象マクロブロックの符号化時において符号化済みである当該処理対象マクロブロックの周囲の隣接マクロブロックに対応して設けられた参照フラグを、全て隣接マクロブロックの処理結果を参照せずに処理対象のインターマクロブロックを処理するように設定するステップと、
前記未処理の状態のインターマクロブロックの復号を前記プロセシングエレメントが行うことを要求するとともに、当該復号するように要求したインターマクロブロックの処理状態を前記プロセシングエレメントによって処理されている状態である要求の状態に変更するステップと、
前記プロセシングエレメントが、前記要求されたインターマクロブロックを復号するステップと、
前記プロセシングエレメントが前記要求されたインターマクロブロックの復号を終了するごとに、前記要求の状態であるインターマクロブロックの処理状態を終了に変更するステップと、
全てのインターマクロブロックの処理状態が終了になると、前記条件フラグを前記仮処理の状態が前記未処理の状態として扱われるように設定するステップと、
前記参照フラグを動画像の符号化規格に応じて設定するステップと、
前記仮処理の状態のイントラマクロブロックの復号を前記プロセシングエレメントが行うことを要求するとともに、当該復号するように要求したイントラマクロブロックの処理状態を要求に変更するステップと、
前記プロセシングエレメントが、前記要求されたイントラマクロブロックを復号するステップと、
前記プロセシングエレメントが前記要求されたイントラマクロブロックの復号を終了するごとに、前記イントラマクロブロックの処理状態を終了に変更するとともに、前記参照フラグに基づいて、前記プロセシングエレメントが処理できる可能性のあるマクロブロックを選択するステップと、
前記選択されたマクロブロックの隣接ブロックの処理状態と前記参照フラグと前記条件フラグに基づいて、前記選択されたマクロブロックが処理可能なイントラマクロブロックであるか否かを判定するステップと、
処理可能であると判定されたイントラマクロブロックの復号を前記プロセシングエレメントが行うことを要求するとともに、当該復号するように要求したイントラマクロブロックの処理状態を要求に変更するステップと、
前記プロセシングエレメントが、前記処理可能であると判定されたイントラマクロブロックを復号するステップと
を有する。
全てのマクロブロックの処理状態を、前記プロセシングエレメントにマクロブロックを処理することが要求されていない状態である未処理の状態に設定するステップと、
前記マクロブロックのうちイントラマクロブロックを、条件フラグに応じて前記未処理の状態または前記プロセシングエレメントによってマクロブロックの処理が終了された状態である終了の状態として扱われる仮処理の状態に変更するステップと、
前記条件フラグを前記仮処理の状態が前記終了の状態として扱われるように設定するステップと、
処理対象マクロブロックの周囲の既に符号化済みである隣接マクロブロックに対応して設けられた参照フラグを、全て隣接マクロブロックの処理結果を参照せずに処理対象のインターマクロブロックを処理するように設定するステップと、
前記未処理の状態のインターマクロブロックの符号化を前記プロセシングエレメントが行うことを要求するとともに、当該符号化するように要求したインターマクロブロックの処理状態を前記プロセシングエレメントによって処理されている状態である要求の状態に変更するステップと、
前記プロセシングエレメントが、前記要求されたインターマクロブロックを符号化するステップと、
前記プロセシングエレメントが前記要求されたインターマクロブロックの符号化を終了するごとに、前記要求の状態であるインターマクロブロックの処理状態を終了に変更するステップと、
全てのインターマクロブロックの処理状態が終了になると、前記条件フラグを前記仮処理の状態が前記未処理の状態として扱われるように設定するステップと、
前記参照フラグを動画像の符号化規格に応じて設定するステップと、
前記仮処理の状態のイントラマクロブロックの符号化を前記プロセシングエレメントが行うことを要求するとともに、当該符号化するように要求したイントラマクロブロックの処理状態を要求に変更するステップと、
前記プロセシングエレメントが、前記要求されたイントラマクロブロックを符号化するステップと、
前記プロセシングエレメントが前記要求されたイントラマクロブロックの符号化を終了するごとに、前記イントラマクロブロックの処理状態を終了に変更するとともに、前記参照フラグに基づいて、前記プロセシングエレメントが処理できる可能性のあるマクロブロックを選択するステップと、
前記選択されたマクロブロックの隣接ブロックの処理状態と前記参照フラグと前記条件フラグに基づいて、前記選択されたマクロブロックが処理可能なイントラマクロブロックであるか否かを判定するステップと、
処理可能であると判定されたイントラマクロブロックの符号化を前記プロセシングエレメントが行うことを要求するとともに、当該符号化するように要求したイントラマクロブロックの処理状態を要求に変更するステップと、
前記プロセシングエレメントが、前記処理可能であると判定されたイントラマクロブロックを符号化するステップと
を有する。
全てのマクロブロックの処理状態を、前記プロセシングエレメントにマクロブロックを処理することが要求されていない状態である未処理の状態に設定するステップと、
前記マクロブロックのうちイントラマクロブロックを、条件フラグに応じて前記未処理の状態または前記プロセシングエレメントによってマクロブロックの処理が終了された状態である終了の状態として扱われる仮処理の状態に変更するステップと、
前記条件フラグを前記仮処理の状態が前記終了の状態として扱われるように設定するステップと、
処理対象マクロブロックの符号化時において符号化済みである当該処理対象マクロブロックの周囲の隣接マクロブロックに対応して設けられた参照フラグを、全て隣接マクロブロックの処理結果を参照せずに処理対象のインターマクロブロックを処理するように設定するステップと、
前記未処理の状態のインターマクロブロックの復号を前記プロセシングエレメントが行うことを要求するとともに、当該復号するように要求したインターマクロブロックの処理状態を前記プロセシングエレメントによって処理されている状態である要求の状態に変更するステップと、
前記プロセシングエレメントが前記要求されたインターマクロブロックの復号を終了するごとに、前記要求の状態であるインターマクロブロックの処理状態を終了に変更するステップと、
全てのインターマクロブロックの処理状態が終了になると、前記条件フラグを前記仮処理の状態が前記未処理の状態として扱われるように設定するステップと、
前記参照フラグを動画像の符号化規格に応じて設定するステップと、
前記仮処理の状態のイントラマクロブロックの復号を前記プロセシングエレメントが行うことを要求するとともに、当該復号するように要求したイントラマクロブロックの処理状態を要求に変更するするステップと、
前記プロセシングエレメントが前記要求されたイントラマクロブロックの復号を終了するごとに、前記イントラマクロブロックの処理状態を終了に変更するとともに、前記参照フラグに基づいて、前記プロセシングエレメントが処理できる可能性のあるマクロブロックを選択するステップと、
前記選択されたマクロブロックの隣接ブロックの処理状態と前記参照フラグと前記条件フラグに基づいて、前記選択されたマクロブロックが処理可能なイントラマクロブロックであるか否かを判定するステップと、
処理可能であると判定されたイントラマクロブロックの復号を前記プロセシングエレメントが行うことを要求するとともに、当該復号するように要求したイントラマクロブロックの処理状態を要求に変更するステップと
をコンピュータに実行させる。
全てのマクロブロックの処理状態を、前記プロセシングエレメントにマクロブロックを処理することが要求されていない状態である未処理の状態に設定するステップと、
前記マクロブロックのうちイントラマクロブロックを、条件フラグに応じて前記未処理の状態または前記プロセシングエレメントによってマクロブロックの処理が終了された状態である終了の状態として扱われる仮処理の状態に変更するステップと、
前記条件フラグを前記仮処理の状態が前記終了の状態として扱われるように設定するステップと、
処理対象マクロブロックの周囲の既に符号化済みである隣接マクロブロックに対応して設けられた参照フラグを、全て隣接マクロブロックの処理結果を参照せずに処理対象のインターマクロブロックを処理するように設定するステップと、
前記未処理の状態のインターマクロブロックの符号化を前記プロセシングエレメントが行うことを要求するとともに、当該符号化するように要求したインターマクロブロックの処理状態を前記プロセシングエレメントによって処理されている状態である要求の状態に変更するステップと、
前記プロセシングエレメントが前記要求されたインターマクロブロックの符号化を終了するごとに、前記要求の状態であるインターマクロブロックの処理状態を終了に変更するステップと、
全てのインターマクロブロックの処理状態が終了になると、前記条件フラグを前記仮処理の状態が前記未処理の状態として扱われるように設定するステップと、
前記参照フラグを動画像の符号化規格に応じて設定するステップと、
前記仮処理の状態のイントラマクロブロックの符号化を前記プロセシングエレメントが行うことを要求するとともに、当該符号化するように要求したイントラマクロブロックの処理状態を要求に変更するするステップと、
前記プロセシングエレメントが前記要求されたイントラマクロブロックの符号化を終了するごとに、前記イントラマクロブロックの処理状態を終了に変更するとともに、前記参照フラグに基づいて、前記プロセシングエレメントが処理できる可能性のあるマクロブロックを選択するステップと、
前記選択されたマクロブロックの隣接ブロックの処理状態と前記参照フラグと前記条件フラグに基づいて、前記選択されたマクロブロックが処理可能なイントラマクロブロックであるか否かを判定するステップと、
処理可能であると判定されたイントラマクロブロックの符号化を前記プロセシングエレメントが行うことを要求するとともに、当該符号化するように要求したイントラマクロブロックの処理状態を要求に変更するステップと
をコンピュータに実行させる。
データ処理部は、処理を要求されたブロックを処理し、ブロックの処理が終了すると、処理を終了したブロックを処理制御部に通知する。
MPEG−2では、ある任意のマクロブロックに対して復号または符号化を行う場合、左横のマクロブロックの処理結果を参照するので、少なくとも処理対象のマクロブロックの左横のマクロブロックの復号または符号化が完了していなければならない。なお、以下、このような関係のことを、左横に依存関係があるという。
MPEG−2では、各マクロブロックが左横に依存関係があるので、横方向に並んだ一群のマクロブロックに対して左側から順番に処理を行うことができる。
H.264では、ある任意のマクロブロックに対して復号または符号化を行う場合、左横、左斜上、上および右斜上のマクロブロックの処理結果を参照するので、少なくとも左横、左斜上、上および右斜上の4つのマクロブロックの復号または符号化が完了していなければならない。すなわち、H.264では、各マクロブロックが左横、左斜上、上および右斜上に依存関係がある。
H.264では、各マクロブロックが左横、左斜上、上および右斜上に依存関係があるので、斜め方向に並んだ一群のマクロブロックに対して並列に復号または符号化を行うことができる。
例えば、処理内容が動画像の復号または符号化であるとき、IDはマクロブロックの位置を2次元の座標(x,y)で表したものである。xはピクチャの左端のマクロブロックの位置を0として、ピクチャの左端から右横方向に数えたマクロブロックの位置を示す。一方、yはピクチャの上端のマクロブロックの位置を0として、ピクチャの上端から下方向に数えたマクロブロックの位置を示す。ピクチャの左上隅のマクロブロックのIDは(0,0)である。
また、データ転送部24は、2面のメモリ25(25−1、25−2)の一方の面から各プロセシングエレメント22に割り当てたIDのブロックのデータをリードして、各FIFO23に供給する。データ転送部24がアクセスしていないメモリ25の他方の面には、後述するタスクコントローラから各プロセシングエレメント22によって次に処理されるブロック群のデータがライトされる。
図6(a)に示すように、処理制御部30では個々のブロックの処理状態は4つに分類される。
未処理(Plane)の状態は、そのブロックの処理がデータ処理部20に要求されておらず、データ処理部20によって処理もされていない状態である。要求(Requested)は、そのブロックの処理がデータ処理部20に要求され、データ処理部20がそのブロックを処理している状態である。終了(Finish)は、データ処理部20がそのブロックの処理を終了した状態である。仮処理(Virtual)は、条件フラグ(TREAT_AS_FINISH)=TRUEのとき、終了(Finish)として働き、条件フラグ(TREAT_AS_FINISH)=FALSEのとき、未処理(Plane)として働く。
図6(b)に示すように、個々のブロックの状態は、未処理(Plane)または仮処理(Virtual)の状態から、要求(Requested)の状態に遷移し、最後に終了(Finish)の状態に遷移する。
例えば、H.264のピクチャ種別には、イントラピクチャとインターピクチャがある。イントラピクチャ(Iピクチャ)は、そのピクチャ内の画素のみを用いて符号化されるピクチャであり、インターピクチャは時間的に前後のピクチャを参照して符号化されるピクチャである。
インターピクチャには、既に符号化された時間的に前のピクチャを参照して符号化する順方向予測ピクチャ(Pピクチャ)と時間的に前後の2ピクチャを参照して予測する双方向予測ピクチャ(Bピクチャ)がある。
符号化の場合には、イントラマクロブロックとインターマクロブロックの判定が終了した後からデブロッキングフィルタまでの間の処理、すなわち、整数変換、量子化、逆量子化、逆整数変換は左横、上および右斜上のマクロブロックの処理が終了していなくても行うことができる。
次に、各プロセシングエレメント22の命令メモリに同一のインターマクロブロック用プログラムをロードし、条件フラグ=TRUEとしてイントラマクロブロックの処理状態を終了と仮定してインターマクロブロックを復号または符号化する(ステップS11)。
次に、各プロセシングエレメント22の命令メモリに同一のイントラマクロブロック用プログラムをロードし、条件フラグ=FALSEとしてイントラマクロブロックの処理状態を未処理に変更してイントラマクロブロックを復号または符号化する(ステップS12)。
全てのマクロブロックの処理状態が終了となったとき、動画像の復号または符号化が終了する(ステップS13)。
検出部31は、この通知を受けたときのID数を記憶しておき、FIFOメモリ21から新たにIDを受け取ると、現在カウントされているID数と通知を受けたときのID数との差分を制御部35に渡す。
制御部35は、プロセシングエレメント22によるマクロブロックの処理が進み、この差分が、データ転送部24がマクロブロックの処理を受け付けることができるID数に達すると、選択部32と判定部34を動作させ、データ処理部20への新たなIDの処理の要求を再開する。
マクロブロックTは復号または符号化の対象であるマクロブロックである。マクロブロックAとマクロブロックBとマクロブロックCとマクロブロックDは、それぞれマクロブロックTの左斜上、上、右斜上および左横のマクロブロックである。
これらの4個のマクロブロックは、マクロブロックTを復号または符号化するとき既に復号または符号化が終了している。マクロブロックTを復号または符号化するとき、これら4個のマクロブロックの処理結果のうちどれを参照するかは符号化方式により異なる。
例えば、MPEG−2では、マクロブロックTを復号または符号化するとき、マクロブロックDの処理結果を参照する。MPEG−4では、マクロブロックTを復号または符号化するとき、マクロブロックAとマクロブロックBとマクロブロックDの処理結果を参照する。H.264では、マクロブロックAとマクロブロックBとマクロブロックCとマクロブロックDの処理結果を参照する。
プロセシングエレメント22が復号または符号化できる可能性のあるマクロブロックは、参照フラグに基づいて選択される。
例えば、Dep(0)=TRUEは、マクロブロックTを復号または符号化するとき、図8に示すマクロブロックAの処理結果が参照されることを意味する。すなわち、Dep(0)=TRUEは、マクロブロックAの復号または符号化が終了したとき、マクロブロックTを復号または符号化できる可能性があることを意味する。従って、Dep(0)=TRUEであるとき、図9のマクロブロックEの復号または符号化が終了すると、マクロブロックWを復号または符号化できる可能性が生じる。
同様に、Dep(1)=TRUE、Dep(2)=TRUE、またはDep(3)=TRUEであるとき、マクロブロックEの復号または符号化が終了すると、それぞれマクロブロックZ、マクロブロックY、またはマクロブロックXを復号または符号化できる可能性が生じる。
このため、選択部32は、マクロブロックEの復号または符号化が終了すると、TRUEである参照フラグDep(0)、Dep(1)、Dep(2)、またはDep(3)に対応して、プロセシングエレメント22が処理できる可能性のあるマクロブロックとして、それぞれマクロブロックW、マクロブロックZ、マクロブロックY、またはマクロブロックXを選択する。
選択部32は、各プロセシングエレメント22がマクロブロックの処理を終了し、FIFOメモリ21から各プロセシングエレメント22が処理を終了したマクロブロックのIDを受け取ると、状態記憶部33の処理状態を終了に変更する。
判定部34は、選択部32または制御部35から、処理可能であるか否かを判定する対象となるマクロブロックのID=(x,y)を受け取る。そして、ID=(x,y)のマクロブロックの処理状態Block(x,y)と、そのマクロブロックに隣接しているID=(x−1,y−1)のマクロブロックの処理状態Block(x−1,y−1)、ID=(x,y−1)のマクロブロックの処理状態Block(x,y−1)、ID=(x+1,y−1)のマクロブロックの処理状態Block(x+1,y−1)およびID=(x−1,y)のマクロブロックの処理状態Block(x−1,y)を状態記憶部33から取得する。なお、ID=(x−1,y−1)、ID=(x,y−1)、ID=(x+1,y−1)およびID=(x−1,y)のマクロブロックは、それぞれ図8に示すマクロブロックA、マクロブロックB、マクロブロックCおよびマクロブロックDに対応する。
そして、判定部34は、これらの各マクロブロックの処理状態と参照フラグと条件フラグに基づいて、判定対象のマクロブロックが処理可能であるか否かを判定する。
なお、図10の判定方法では、判定対象のマクロブロックがピクチャの左端、右端、上端または下端のマクロブロックであって、隣接マクロブロックが存在しないとき、存在しない隣接マクロブロックの処理状態は終了として扱われる。
そして、制御部35は、検出部31から全てのマクロブロックの処理終了が通知されると、データ処理装置10を制御するプロセサ等へ終了を通知する。
動画像コーデック装置40は、タスクコントローラ41と、データ処理装置10とを有している。図5と図11における同一の符号は同一の構成要素を示す。なお、図11では、処理制御部30をタスクコントローラ41と別々に設けているが、処理制御部30はタスクコントローラ41の一部に含めても良い。
図12は、H.264で符号化されたビットストリームを復号する例を示している。
タスクコントローラ41は、H.264で符号化されたビットストリームに対して可変長符号の復号(VLD)を行う。固定長符号に復号されたマクロブロックのデータはデータ処理装置10に送られ、データ処理装置10内のメモリ25に書き込まれる。
メモリ25は、2重化されているため、タスクコントローラ41から送られたマクロブロックのデータがメモリ25の一方の面にライトされているとき、FIFOメモリ23はメモリ25の他方の面から固定長符号に復号されたマクロブロックのデータをリードし、プロセシングエレメント22に供給することができる。
このため、タスクコントローラ41によるVLDとプロセシングエレメント22によるマクロブロックのデータの復号はパイプライン的に並列して実行される。
イントラマクロブロックの復号が終了すると、次にピクチャ内の全てのイントラマクロブロックに対してプロセシングエレメント22によって並列にデブロッキングフィルタをかける。デブロッキングフィルタをかけるときも、同様に検出部31には、プロセシングエレメント22によって処理されるべき総ブロック数としてピクチャ内のマクロブロックの総数が指定される。
次に、ピクチャ内の全てのイントラマクロブロックに対してプロセシングエレメント22によって並列に逆量子化と逆整数変換とイントラ予測を行ってイントラマクロブロックを復号する。このとき、検出部31には、プロセシングエレメント22によって処理されるべき総ブロック数としてピクチャ内のイントラマクロブロックの数が指定される。
最後に、ピクチャ内の全てのマクロブロックに対してプロセシングエレメント22によって並列にデブロッキングフィルタをかける。デブロッキングフィルタをかけるときは、プロセシングエレメント22によって処理されるべき総ブロック数としてピクチャ内のマクロブロックの総数が指定される。
図13Aと図13Bは、タスクコントローラ41で可変長符号の復号(VLD)が行われた後、データ処理装置10で行われる処理を示す。
次に、制御部35は、状態記憶部33におけるイントラマクロブロックの処理状態を仮処理(Virtual)に変更する(ステップS21)。
次に、制御部35は、条件フラグ(TREAT_AS_FINISH)を仮処理の状態が終了の状態として扱われるように設定する(ステップS22)。
次に、左斜上、上、右斜上および左横の隣接マクロブロックの参照フラグ(Dep)を、全て隣接マクロブロックの処理結果を参照せずに処理対象のインターマクロブロックを処理するように設定する(ステップS23)。
次に、制御部35は、未処理の状態のインターマクロブロックのIDを判定部34に送り、判定部34はこのインターマクロブロックのIDをデータ処理部20に送ることによって、データ処理部20に含まれるプロセシングエレメント22が復号を行うことを要求する。判定部34は、同時に、状態記憶部33におけるこのIDのインターマクロブロックの処理状態を要求に変更する(ステップS24)。
次に、プロセシングエレメント22は、要求されたIDのインターマクロブロックを復号する(ステップS25)。
選択部32は、検出部31によって要求されたIDのインターマクロブロックの復号終了が検出されるごとに、状態記憶部33における要求されたIDのインターマクロブロックの処理状態を終了に変更する(ステップS26)。
次に、制御部35は、左斜上、上、右斜上および左横の隣接マクロブロックの参照フラグ(Dep)を、全て隣接マクロブロックの処理結果を参照して処理対象のイントラマクロブロックを処理するように設定する(ステップS28)。
次に、制御部35は、仮処理の状態のイントラマクロブロックのIDを判定部34に送り、判定部34はこのイントラマクロブロックのIDをデータ処理部20に送ることによって、データ処理部20に含まれるプロセシングエレメント22が復号を行うことを要求する。判定部34は、同時に、状態記憶部33におけるこのIDのイントラマクロブロックの処理状態を要求に変更する(ステップS29)。
プロセシングエレメント22は、要求されたIDのイントラマクロブロックを復号する(ステップS30)。
選択部32は、検出部31によって要求されたIDのイントラマクロブロックの復号終了が検出されるごとに、状態記憶部33における要求されたIDのイントラマクロブロックの処理状態を終了に変更するとともに、参照フラグに基づいて、プロセシングエレメント22が処理できる可能性のあるマクロブロックを選択する(ステップS31)。
判定部34は、選択されたマクロブロックの隣接ブロックの処理状態と参照フラグと条件フラグに基づいて選択されたマクロブロックが処理可能なイントラマクロブロックであるか否かを判定する(ステップS32)。
次に、判定部34は、処理可能であると判定されたイントラマクロブロックのIDをデータ処理部20に送ることによって、データ処理部20に含まれるプロセシングエレメント22が復号を行うことを要求する。判定部34は、同時に、状態記憶部33におけるこのIDのイントラマクロブロックの処理状態を要求に変更する(ステップS33)。
プロセシングエレメント22は、処理可能であると判定されたIDのイントラマクロブロックを復号する(ステップS34)。
次に、制御部35は、左斜上、上、右斜上および左横の隣接マクロブロックの参照フラグを全て隣接マクロブロックの処理結果を参照して処理対象のマクロブロックを処理するように設定する(ステップS36)。
次に、制御部35は、未処理の状態のマクロブロックのIDを判定部34に送り、判定部34はこのマクロブロックのIDをデータ処理部20に送ることによって、データ処理部20に含まれるプロセシングエレメント22が未処理の状態のマクロブロックにデブロッキングフィルタをかけることを要求する。判定部34は、同時に、状態記憶部33におけるこのIDのマクロブロックの処理状態を要求に変更する(ステップS37)。
プロセシングエレメント22は、要求されたIDのマクロブロックにデブロッキングフィルタをかける(ステップS38)。
選択部32は、検出部31によってプロセシングエレメント22が要求されたIDのマクロブロックにデブロッキングフィルタをかけたことが検出されるごとに、状態記憶部33における要求されたIDのマクロブロックの処理状態を終了に変更する(ステップS39)。
制御部35は、状態記憶部33における全てのマクロブロックの処理状態が終了になると、復号を終了する(ステップS40)。
デブロッキングフィルタが無いため、図13Aと図13BにおけるステップS35−ステップS39は不要である。また、参照フラグは、それぞれDep(0)=TRUE、Dep(1)=TRUE、Dep(2)=FALSE、およびDep(3)=TRUEと設定される。処理制御部30は、これら2点を除き、H.264とMPEG−4で同様に動作する。
図14Aと図14Bはデータ処理装置10で行われる処理を示す。タスクコントローラ41で動き検出とイントラマクロブロックまたはインターマクロブロックの判定が行われた後、データ処理装置10で図14Aと図14Bに示す処理が行われる。その後、タスクコントローラ41で可変長符号化が行われる。
図13Aおよび図13Bと、図14Aおよび図14Bが異なる点は、復号が符号化に変更された点のみである。復号が符号化に変更された点を除き、ステップS20−ステップS40とステップS50−ステップS70は同一である。すなわち、プロセシングエレメント22のプログラムは復号と符号化で異なるが、処理制御部30の動作は復号と符号化で同一である。
Claims (8)
- 第1の方向と第2の方向にそれぞれ所定の画素数を有するマクロブロックに分割されたピクチャを当該マクロブロックごとに並列に処理する復号装置であって、
前記マクロブロックを処理する、少なくとも2つのプロセシングエレメント
を含むデータ処理部と、
前記プロセシングエレメントが前記マクロブロックの処理を終了するごとに、処理対象であるマクロブロックの符号化時に既に符号化済みである隣接マクロブロックに対応して設けられ、当該隣接マクロブロックの処理結果を参照して処理対象のマクロブロックを処理することを示す参照フラグに基づいて、前記プロセシングエレメントが処理できる可能性のあるマクロブロックを選択する選択部と、
前記ピクチャに含まれる個々のマクロブロックについて、当該マクロブロックの処理状態が、少なくとも、前記データ処理部に当該マクロブロックを処理することが要求されていない状態である未処理、当該マクロブロックの処理が前記データ処理部に要求され、前記データ処理部が当該マクロブロックを処理している状態である要求、前記データ処理部によって当該マクロブロックの処理が終了された状態である終了、または条件フラグに応じて当該マクロブロックが前記未処理の状態または前記終了の状態として扱われる仮処理のいずれの状態であるかを記憶する状態記憶部と、
前記選択されたマクロブロックの隣接マクロブロックの前記処理状態と前記参照フラグに基づいて、前記選択されたマクロブロックが処理可能であるか否かを判定し、当該処理可能であると判定されたマクロブロックの処理を前記データ処理部に要求する判定部と、
前記未処理の状態または仮処理の状態のマクロブロックの処理を前記データ処理部に要求する制御部と、
を含む処理制御部と、
を有し、
前記制御部が、前記マクロブロックのうちイントラマクロブロックについて前記状態記憶部における処理状態を仮処理に設定し、前記条件フラグを仮処理の状態が終了として扱われるように設定し、前記参照フラグを全て隣接マクロブロックの処理結果を参照せずに処理対象のインターマクロブロックを処理するように設定して、前記データ処理部に未処理の状態のインターマクロブロックを復号するように要求するとともに、当該復号するように要求したインターマクロブロックの前記状態記憶部における処理状態を要求に変更し、
前記プロセシングエレメントが、前記要求されたインターマクロブロックを復号し、
前記制御部が、前記プロセシングエレメントが前記要求されたインターマクロブロックの復号を終了するごとに、前記状態記憶部における前記要求されたインターマクロブロックの処理状態を終了に変更し、
前記制御部が、前記状態記憶部における前記インターマクロブロックの処理状態がすべて終了になると、前記条件フラグを仮処理の状態が未処理の状態として扱われるように変更し、前記参照フラグを動画像の符号化規格に応じて設定して、前記データ処理部に仮処理の状態のイントラマクロブロックを復号するように要求するとともに、当該復号するように要求したイントラマクロブロックの前記状態記憶部における処理状態を要求に変更し、
前記プロセシングエレメントが、前記要求されたイントラマクロブロックを復号し、
前記選択部が、前記プロセシングエレメントが前記要求されたイントラマクロブロックの復号を終了するごとに、前記状態記憶部における前記要求されたイントラマクロブロックの処理状態を終了に変更するとともに、前記参照フラグに基づいて、前記プロセシングエレメントが処理できる可能性のあるマクロブロックを選択し、
前記判定部が、前記選択されたマクロブロックの隣接ブロックの処理状態と前記参照フラグと前記条件フラグに基づいて、前記選択されたマクロブロックが処理可能なイントラマクロブロックであるか否かを判定し、処理可能であると判定されたイントラマクロブロックの復号を前記プロセシングエレメントが行うことを要求するとともに、当該復号するように要求したイントラマクロブロックの処理状態を要求に変更し、
前記プロセシングエレメントが、前記処理可能であると判定されたイントラマクロブロックを復号する
復号装置。 - 前記符号化規格が、MPEG−2またはMPEG−4である
請求項1に記載の復号装置。 - 前記符号化規格が、H.264であり、
前記制御部が、前記イントラマクロブロックを処理するとき、前記参照フラグを全て隣接マクロブロックの処理結果を参照して処理対象のイントラマクロブロックを処理するように設定し、
前記制御部が、前記状態記憶部における前記イントラマクロブロックの処理状態がすべて終了になると、前記状態記憶部における全てのマクロブロックの処理状態を未処理に設定し、前記参照フラグを全て隣接マクロブロックの処理結果を参照して処理対象のマクロブロックを処理するように設定し、前記プロセシングエレメントが未処理の状態のマクロブロックにデブロッキングフィルタをかけることを要求するとともに当該デブロッキングフィルタをかけることを要求したマクロブロックの前記状態記憶部における処理状態を要求に変更し、
前記プロセシングエレメントが、前記要求されたマクロブロックにデブロッキングフィルタをかけ、
前記制御部が、前記プロセシングエレメントが前記要求されたマクロブロックにデブロッキングフィルタをかけるごとに、前記状態記憶部における前記要求されたマクロブロックの処理状態を終了に変更する
請求項1に記載の復号装置。 - 第1の方向と第2の方向にそれぞれ所定の画素数を有するマクロブロックに分割されたピクチャを当該マクロブロックごとに並列に処理する符号化装置であって、
前記マクロブロックを処理する、少なくとも2つのプロセシングエレメント
を含むデータ処理部と、
前記プロセシングエレメントが前記マクロブロックの処理を終了するごとに、処理対象であるマクロブロックの符号化時に既に符号化済みである隣接マクロブロックに対応して設けられ、当該隣接マクロブロックの処理結果を参照して処理対象のマクロブロックを処理することを示す参照フラグに基づいて、前記プロセシングエレメントが処理できる可能性のあるマクロブロックを選択する選択部と、
前記ピクチャに含まれる個々のマクロブロックについて、当該マクロブロックの処理状態が、少なくとも、前記データ処理部に当該マクロブロックを処理することが要求されていない状態である未処理、当該マクロブロックの処理が前記データ処理部に要求され、前記データ処理部が当該マクロブロックを処理している状態である要求、前記データ処理部によって当該マクロブロックの処理が終了された状態である終了、または条件フラグに応じて当該マクロブロックが前記未処理の状態または前記終了の状態として扱われる仮処理のいずれの状態であるかを記憶する状態記憶部と、
前記選択されたマクロブロックの隣接マクロブロックの前記処理状態と前記参照フラグに基づいて、前記選択されたマクロブロックが処理可能であるか否かを判定し、当該処理可能であると判定されたマクロブロックの処理を前記データ処理部に要求する判定部と、
前記未処理の状態または仮処理の状態のマクロブロックの処理を前記データ処理部に要求する制御部と、
を含む処理制御部と、
を有し、
前記制御部が、前記マクロブロックのうちイントラマクロブロックについて前記状態記憶部における処理状態を仮処理に設定し、前記条件フラグを仮処理の状態が終了として扱われるように設定し、前記参照フラグを全て隣接マクロブロックの処理結果を参照せずに処理対象のインターマクロブロックを処理するように設定して、前記プロセシングエレメントに未処理の状態のインターマクロブロックを符号化するように要求するとともに当該符号化するように要求したインターマクロブロックの前記状態記憶部における処理状態を要求に変更し、
前記プロセシングエレメントが、前記要求されたインターマクロブロックを符号化し、
前記制御部が、前記プロセシングエレメントが前記要求されたインターマクロブロックの符号化を終了するごとに、前記状態記憶部における前記要求されたインターマクロブロックの処理状態を終了に変更し、
前記制御部が、前記状態記憶部における前記インターマクロブロックの処理状態がすべて終了になると、前記条件フラグを前記仮処理の状態が未処理として扱われるように変更し、前記参照フラグを動画像の符号化規格に応じて設定して、前記データ処理部に仮処理の状態のイントラマクロブロックを符号化するように要求するとともに当該符号化するように要求したイントラマクロブロックの前記状態記憶部における処理状態を要求に変更し、
前記プロセシングエレメントが、前記要求されたイントラマクロブロックを符号化し、
前記選択部が、前記プロセシングエレメントが前記要求されたイントラマクロブロックの符号化を終了するごとに、前記状態記憶部における前記要求されたイントラマクロブロックの処理状態を終了に変更するとともに、前記参照フラグに基づいて、前記プロセシングエレメントが処理できる可能性のあるマクロブロックを選択し、
前記判定部が、前記選択されたマクロブロックの隣接ブロックの処理状態と前記参照フラグと前記条件フラグに基づいて、前記選択されたマクロブロックが処理可能なイントラマクロブロックであるか否かを判定し、処理可能であると判定されたイントラマクロブロックの符号化を前記プロセシングエレメントが行うことを要求するとともに、当該符号化するように要求したイントラマクロブロックの処理状態を要求に変更し、
前記プロセシングエレメントが、前記処理可能であると判定されたイントラマクロブロックを符号化する
符号化装置。 - 少なくとも2つのプロセシングエレメントを有するデータ処理装置における復号方法であって、
全てのマクロブロックの処理状態を、前記プロセシングエレメントにマクロブロックを処理することが要求されていない状態である未処理の状態に設定するステップと、
前記マクロブロックのうちイントラマクロブロックを、条件フラグに応じて前記未処理の状態または前記プロセシングエレメントによってマクロブロックの処理が終了された状態である終了の状態として扱われる仮処理の状態に変更するステップと、
前記条件フラグを前記仮処理の状態が前記終了の状態として扱われるように設定するステップと、
処理対象マクロブロックの符号化時において符号化済みである当該処理対象マクロブロックの周囲の隣接マクロブロックに対応して設けられた参照フラグを、全て隣接マクロブロックの処理結果を参照せずに処理対象のインターマクロブロックを処理するように設定するステップと、
前記未処理の状態のインターマクロブロックの復号を前記プロセシングエレメントが行うことを要求するとともに、当該復号するように要求したインターマクロブロックの処理状態を前記プロセシングエレメントによって処理されている状態である要求の状態に変更するステップと、
前記プロセシングエレメントが、前記要求されたインターマクロブロックを復号するステップと、
前記プロセシングエレメントが前記要求されたインターマクロブロックの復号を終了するごとに、前記要求の状態であるインターマクロブロックの処理状態を終了に変更するステップと、
全てのインターマクロブロックの処理状態が終了になると、前記条件フラグを前記仮処理の状態が前記未処理の状態として扱われるように設定するステップと、
前記参照フラグを動画像の符号化規格に応じて設定するステップと、
前記仮処理の状態のイントラマクロブロックの復号を前記プロセシングエレメントが行うことを要求するとともに、当該復号するように要求したイントラマクロブロックの処理状態を要求に変更するステップと、
前記プロセシングエレメントが、前記要求されたイントラマクロブロックを復号するステップと、
前記プロセシングエレメントが前記要求されたイントラマクロブロックの復号を終了するごとに、前記イントラマクロブロックの処理状態を終了に変更するとともに、前記参照フラグに基づいて、前記プロセシングエレメントが処理できる可能性のあるマクロブロックを選択するステップと、
前記選択されたマクロブロックの隣接ブロックの処理状態と前記参照フラグと前記条件フラグに基づいて、前記選択されたマクロブロックが処理可能なイントラマクロブロックであるか否かを判定するステップと、
処理可能であると判定されたイントラマクロブロックの復号を前記プロセシングエレメントが行うことを要求するとともに、当該復号するように要求したイントラマクロブロックの処理状態を要求に変更するステップと、
前記プロセシングエレメントが、前記処理可能であると判定されたイントラマクロブロックを復号するステップと、
を有する復号方法。 - 少なくとも2つのプロセシングエレメントを有するデータ処理装置における符号化方法であって、
全てのマクロブロックの処理状態を、前記プロセシングエレメントにマクロブロックを処理することが要求されていない状態である未処理の状態に設定するステップと、
前記マクロブロックのうちイントラマクロブロックを、条件フラグに応じて前記未処理の状態または前記プロセシングエレメントによってマクロブロックの処理が終了された状態である終了の状態として扱われる仮処理の状態に変更するステップと、
前記条件フラグを前記仮処理の状態が前記終了の状態として扱われるように設定するステップと、
処理対象マクロブロックの周囲の既に符号化済みである隣接マクロブロックに対応して設けられた参照フラグを、全て隣接マクロブロックの処理結果を参照せずに処理対象のインターマクロブロックを処理するように設定するステップと、
前記未処理の状態のインターマクロブロックの符号化を前記プロセシングエレメントが行うことを要求するとともに、当該符号化するように要求したインターマクロブロックの処理状態を前記プロセシングエレメントによって処理されている状態である要求の状態に変更するステップと、
前記プロセシングエレメントが、前記要求されたインターマクロブロックを符号化するステップと、
前記プロセシングエレメントが前記要求されたインターマクロブロックの符号化を終了するごとに、前記要求の状態であるインターマクロブロックの処理状態を終了に変更するステップと、
全てのインターマクロブロックの処理状態が終了になると、前記条件フラグを前記仮処理の状態が前記未処理の状態として扱われるように設定するステップと、
前記参照フラグを動画像の符号化規格に応じて設定するステップと、
前記仮処理の状態のイントラマクロブロックの符号化を前記プロセシングエレメントが行うことを要求するとともに、当該符号化するように要求したイントラマクロブロックの処理状態を要求に変更するステップと、
前記プロセシングエレメントが、前記要求されたイントラマクロブロックを符号化するステップと、
前記プロセシングエレメントが前記要求されたイントラマクロブロックの符号化を終了するごとに、前記イントラマクロブロックの処理状態を終了に変更するとともに、前記参照フラグに基づいて、前記プロセシングエレメントが処理できる可能性のあるマクロブロックを選択するステップと、
前記選択されたマクロブロックの隣接ブロックの処理状態と前記参照フラグと前記条件フラグに基づいて、前記選択されたマクロブロックが処理可能なイントラマクロブロックであるか否かを判定するステップと、
処理可能であると判定されたイントラマクロブロックの符号化を前記プロセシングエレメントが行うことを要求するとともに、当該符号化するように要求したイントラマクロブロックの処理状態を要求に変更するステップと、
前記プロセシングエレメントが、前記処理可能であると判定されたイントラマクロブロックを符号化するステップと、
を有する符号化方法。 - 少なくとも2つのプロセシングエレメントによってビットストリームを復号させる処理をコンピュータに実行させるプログラムであって、
全てのマクロブロックの処理状態を、前記プロセシングエレメントにマクロブロックを処理することが要求されていない状態である未処理の状態に設定するステップと、
前記マクロブロックのうちイントラマクロブロックを、条件フラグに応じて前記未処理の状態または前記プロセシングエレメントによってマクロブロックの処理が終了された状態である終了の状態として扱われる仮処理の状態に変更するステップと、
前記条件フラグを前記仮処理の状態が前記終了の状態として扱われるように設定するステップと、
処理対象マクロブロックの符号化時において符号化済みである当該処理対象マクロブロックの周囲の隣接マクロブロックに対応して設けられた参照フラグを、全て隣接マクロブロックの処理結果を参照せずに処理対象のインターマクロブロックを処理するように設定するステップと、
前記未処理の状態のインターマクロブロックの復号を前記プロセシングエレメントが行うことを要求するとともに、当該復号するように要求したインターマクロブロックの処理状態を前記プロセシングエレメントによって処理されている状態である要求の状態に変更するステップと、
前記プロセシングエレメントが前記要求されたインターマクロブロックの復号を終了するごとに、前記要求の状態であるインターマクロブロックの処理状態を終了に変更するステップと、
全てのインターマクロブロックの処理状態が終了になると、前記条件フラグを前記仮処理の状態が前記未処理の状態として扱われるように設定するステップと、
前記参照フラグを動画像の符号化規格に応じて設定するステップと、
前記仮処理の状態のイントラマクロブロックの復号を前記プロセシングエレメントが行うことを要求するとともに、当該復号するように要求したイントラマクロブロックの処理状態を要求に変更するするステップと、
前記プロセシングエレメントが前記要求されたイントラマクロブロックの復号を終了するごとに、前記イントラマクロブロックの処理状態を終了に変更するとともに、前記参照フラグに基づいて、前記プロセシングエレメントが処理できる可能性のあるマクロブロックを選択するステップと、
前記選択されたマクロブロックの隣接ブロックの処理状態と前記参照フラグと前記条件フラグに基づいて、前記選択されたマクロブロックが処理可能なイントラマクロブロックであるか否かを判定するステップと、
処理可能であると判定されたイントラマクロブロックの復号を前記プロセシングエレメントが行うことを要求するとともに、当該復号するように要求したイントラマクロブロックの処理状態を要求に変更するステップと、
をコンピュータに実行させるプログラム。 - 少なくとも2つのプロセシングエレメントによって動画像を符号化させる処理をコンピュータに実行させるプログラムであって、
全てのマクロブロックの処理状態を、前記プロセシングエレメントにマクロブロックを処理することが要求されていない状態である未処理の状態に設定するステップと、
前記マクロブロックのうちイントラマクロブロックを、条件フラグに応じて前記未処理の状態または前記プロセシングエレメントによってマクロブロックの処理が終了された状態である終了の状態として扱われる仮処理の状態に変更するステップと、
前記条件フラグを前記仮処理の状態が前記終了の状態として扱われるように設定するステップと、
処理対象マクロブロックの周囲の既に符号化済みである隣接マクロブロックに対応して設けられた参照フラグを、全て隣接マクロブロックの処理結果を参照せずに処理対象のインターマクロブロックを処理するように設定するステップと、
前記未処理の状態のインターマクロブロックの符号化を前記プロセシングエレメントが行うことを要求するとともに、当該符号化するように要求したインターマクロブロックの処理状態を前記プロセシングエレメントによって処理されている状態である要求の状態に変更するステップと、
前記プロセシングエレメントが前記要求されたインターマクロブロックの符号化を終了するごとに、前記要求の状態であるインターマクロブロックの処理状態を終了に変更するステップと、
全てのインターマクロブロックの処理状態が終了になると、前記条件フラグを前記仮処理の状態が前記未処理の状態として扱われるように設定するステップと、
前記参照フラグを動画像の符号化規格に応じて設定するステップと、
前記仮処理の状態のイントラマクロブロックの符号化を前記プロセシングエレメントが行うことを要求するとともに、当該符号化するように要求したイントラマクロブロックの処理状態を要求に変更するするステップと、
前記プロセシングエレメントが前記要求されたイントラマクロブロックの符号化を終了するごとに、前記イントラマクロブロックの処理状態を終了に変更するとともに、前記参照フラグに基づいて、前記プロセシングエレメントが処理できる可能性のあるマクロブロックを選択するステップと、
前記選択されたマクロブロックの隣接ブロックの処理状態と前記参照フラグと前記条件フラグに基づいて、前記選択されたマクロブロックが処理可能なイントラマクロブロックであるか否かを判定するステップと、
処理可能であると判定されたイントラマクロブロックの符号化を前記プロセシングエレメントが行うことを要求するとともに、当該符号化するように要求したイントラマクロブロックの処理状態を要求に変更するステップと、
をコンピュータに実行させるプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007127867A JP4807320B2 (ja) | 2007-05-14 | 2007-05-14 | 復号装置、符号化装置、復号方法、符号化方法、および映像の復号と符号化を行うプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007127867A JP4807320B2 (ja) | 2007-05-14 | 2007-05-14 | 復号装置、符号化装置、復号方法、符号化方法、および映像の復号と符号化を行うプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2008283612A JP2008283612A (ja) | 2008-11-20 |
JP4807320B2 true JP4807320B2 (ja) | 2011-11-02 |
Family
ID=40144030
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007127867A Expired - Fee Related JP4807320B2 (ja) | 2007-05-14 | 2007-05-14 | 復号装置、符号化装置、復号方法、符号化方法、および映像の復号と符号化を行うプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4807320B2 (ja) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2009063646A1 (ja) * | 2007-11-16 | 2009-05-22 | Panasonic Corporation | 画像復号装置及び画像復号方法 |
KR100999505B1 (ko) | 2009-05-15 | 2010-12-09 | 이승훈 | 매크로블록 기반의 데이터 병렬 처리를 수행하는 동영상 인코딩/디코딩 장치 |
JP5482414B2 (ja) * | 2010-05-07 | 2014-05-07 | 富士通セミコンダクター株式会社 | 動きベクトル生成回路及び動きベクトル生成方法 |
KR101673186B1 (ko) | 2010-06-09 | 2016-11-07 | 삼성전자주식회사 | 매크로블록의 연관관계를 고려하여 영상 데이터의 부호화 및 복호화를 병렬 처리하는 장치 및 방법 |
KR101219220B1 (ko) * | 2010-10-20 | 2013-01-08 | 성균관대학교산학협력단 | 병렬 부호화를 위한 데이터 파티션 방법 및 이를 수행하는 프로그램을 기록한 기록매체 |
US9866855B2 (en) | 2013-09-30 | 2018-01-09 | Nec Corporation | Processing control device, processing control method, and processing control program |
JP6825699B2 (ja) * | 2017-04-10 | 2021-02-03 | 日本電気株式会社 | 動画像処理装置、動画像処理方法、及び、動画像処理プログラム |
WO2019031136A1 (ja) * | 2017-08-07 | 2019-02-14 | パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ | 符号化装置、復号装置、符号化方法及び復号方法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101014660B1 (ko) * | 2003-10-24 | 2011-02-16 | 삼성전자주식회사 | 인트라 예측 방법 및 장치 |
JP4407472B2 (ja) * | 2004-10-29 | 2010-02-03 | ソニー株式会社 | 符号化及び復号装置並びに符号化及び復号方法 |
JP4453518B2 (ja) * | 2004-10-29 | 2010-04-21 | ソニー株式会社 | 符号化及び復号装置並びに符号化及び復号方法 |
JP2006165699A (ja) * | 2004-12-02 | 2006-06-22 | Matsushita Electric Ind Co Ltd | 画像符号化装置および画像符号化方法 |
JP2008182527A (ja) * | 2007-01-25 | 2008-08-07 | Matsushita Electric Ind Co Ltd | 画像符号化装置及び方法、並びに撮像システム |
-
2007
- 2007-05-14 JP JP2007127867A patent/JP4807320B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2008283612A (ja) | 2008-11-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4807320B2 (ja) | 復号装置、符号化装置、復号方法、符号化方法、および映像の復号と符号化を行うプログラム | |
US9843813B2 (en) | Delayed chroma processing in block processing pipelines | |
US8861591B2 (en) | Software video encoder with GPU acceleration | |
KR101105531B1 (ko) | 병렬 처리 인-루프 디블록 필터용 메커니즘 | |
US10757437B2 (en) | Motion estimation in block processing pipelines | |
JP6225250B2 (ja) | 並列のハードウェア及びソフトウェアブロック処理パイプライン | |
US9106888B2 (en) | Reducing quantization artifacts using neighbor-based weighted dithering | |
US9224186B2 (en) | Memory latency tolerance in block processing pipelines | |
US9392292B2 (en) | Parallel encoding of bypass binary symbols in CABAC encoder | |
US9762919B2 (en) | Chroma cache architecture in block processing pipelines | |
US9292899B2 (en) | Reference frame data prefetching in block processing pipelines | |
US9218639B2 (en) | Processing order in block processing pipelines | |
US9299122B2 (en) | Neighbor context processing in block processing pipelines | |
US20150092843A1 (en) | Data storage and access in block processing pipelines | |
US9305325B2 (en) | Neighbor context caching in block processing pipelines | |
TW201320760A (zh) | 視頻解碼方法及電腦可讀媒介 | |
JP2007251865A (ja) | 画像データの処理装置、画像データの処理方法、画像データの処理方法のプログラム及び画像データの処理方法のプログラムを記録した記録媒体 | |
TWI583180B (zh) | 具有上下文切換之視訊編碼器 | |
JP2010109572A (ja) | 画像処理装置、及び方法 | |
JP2007325119A (ja) | 画像処理装置及び画像処理方法 | |
US8908777B2 (en) | Memory request ordering for a motion compensation process, implemented by a picture processing apparatus, a picture processing method, and a picture processing program | |
JP4351903B2 (ja) | 動画像符号化装置 | |
JP2009049460A (ja) | 画像処理装置およびその方法、並びにプログラム | |
Ouyang et al. | Optimization and implementation of h. 264 encoder on symmetric multi-processor platform |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20100427 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20110426 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110510 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20110701 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20110719 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20110801 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140826 Year of fee payment: 3 |
|
LAPS | Cancellation because of no payment of annual fees |