(57)【要約】  【課題】  画像データの符号化及び復号をパイプライン処理により高速化するとともに、復号処理中に発生した復号エラーによるパイプライン制御の乱れを回避し、復号画像の劣化を最小限に抑えて、高画質化を実現する画像データ処理装置を提供する  【解決手段】  本発明の画像データ処理装置１００は、パイプライン処理により画像復号処理を行う画像復号部１０、画像復号部１０のパイプライン処理を制御するパイプライン制御部２０、メモリ３０、及び、入出力インターフェイス４０を備える。パイプライン制御部２０は、起動テーブル記憶手段２３に格納されている各パイプラインステージの起動情報を用いて、パイプライン処理の制御を行う。これにより、復号処理中の復号エラー発生時にパイプライン制御が乱れても、復号画像の劣化を最小限に抑え高画質化を実現する画像データ処理装置を提供可能となる。【選択図】  図１
2006115092.tif 000002
【特許請求の範囲】
【請求項１】
入力される入力符号化データをパイプライン処理により復号して、復号画像データを出力する画像復号部と、
前記画像復号部のパイプライン処理を制御するためのパイプライン制御部と、
前記入力符号化データと前記復号画像データを格納するメモリとを備える画像データ処理装置。
【請求項２】
前記画像復号部は、パイプライン処理を行う複数段のデータ処理部を有し、
前記複数段のデータ処理部は、
前記入力符号化データを可変長復号して、量子化ＤＣＴ係数と動きベクトルとを出力する可変長復号処理手段と、
前記可変長復号処理手段が出力した前記量子化ＤＣＴ係数を逆量子化して、逆量子化ＤＣＴ係数を出力する逆量子化処理手段と、
前記逆量子化処理手段が出力した前記逆量子化ＤＣＴ係数を逆ＤＣＴ処理して、ＤＣＴ係数を出力する逆ＤＣＴ処理手段と、
前記逆ＤＣＴ処理手段が出力した前記ＤＣＴ係数と、前記可変長復号処理手段が出力した前記動きベクトルと、前記メモリに格納されている前フレームの復号画像データとを用いて、現フレームの復号画像データを生成する動き補償処理手段の内の少なくとも２つを有する、請求項１記載の画像データ処理装置。
【請求項３】
前記パイプライン制御部は、
前記画像復号部のパイプライン処理を制御するための起動情報が登録された、パイプライン起動テーブルを格納する起動テーブル記憶手段と、
前記起動テーブル記憶手段に格納された前記パイプライン起動テーブルを参照するための、オフセット値を決定するオフセット決定手段と、
前記オフセット決定手段で決定されたオフセット値を基に、前記起動テーブル記憶手段に格納されているパイプライン起動テーブルから、前記画像復号部のパイプライン処理を制御するための起動情報を読み出し、前記画像復号部のパイプライン処理の起動方法を決定する起動ステージ決定手段と、
前記オフセット決定手段と前記起動ステージ決定手段とを制御して、前記起動ステージ決定手段が決定した前記画像復号部のパイプライン処理の起動方法を基に、前記画像復号部のパイプライン処理を制御するパイプライン制御手段とを有する、請求項１記載の画像データ処理装置。
【請求項４】
前記画像データ処理装置は、誤り隠蔽処理手段をさらに備え、
前記可変長復号処理手段は、前記入力符号化データの符号誤りを検出する符号誤り検出手段をさらに有し、
前記符号誤り検出手段が、前記入力符号化データのマクロブロックに符号誤りを検出した場合、
前記誤り隠蔽処理手段は、誤りが検出されたマクロブロック以降のマクロブロックに対して、前記メモリに格納されている過去の復号画像データを充当して、前記入力符号化データの符号誤りよる復号画像の表示の乱れを隠蔽する請求項２記載の画像データ処理装置。
【請求項５】
前記符号誤り検出手段が、前記入力符号化データのマクロブロックに符号誤りを検出した場合、
前記誤り隠蔽処理手段は、誤りが検出されたマクロブロックから、前記画像復号部のパイプライン処理段数に等しい個数のマクロブロック以前のマクロブロックを、前記隠蔽の対象から除外する請求項４記載の画像データ処理装置。
【請求項６】
入力される入力画像データをパイプライン処理により符号化して、符号化データを出力する画像符号化部と、
前記画像符号化部のパイプライン処理を制御するためのパイプライン制御部と、前記入力画像データに対する再構築画像データと前記符号化データとを格納するメモリとを備える画像データ処理装置。
【請求項７】
前記画像符号化部は、パイプライン処理を行う複数段のデータ処理部を有し、
前記複数段のデータ処理部は、
現フレームの入力画像データである前記入力画像データと、前記メモリに格納されている前フレームの再構築画像データとを用いて、現フレームの動きベクトルを検出する動き検出処理手段と、
前記動き検出処理手段が検出した前記動きベクトルと、前記メモリに格納されている前フレームの再構築画像データとを用いて、現フレームに対する予測画像データを生成する動き補償処理手段と、
前記動き補償処理手段が生成した前記予測画像データと、前記入力画像データとの差分をＤＣＴ処理して、ＤＣＴ係数を出力するＤＣＴ処理手段と、
前記ＤＣＴ処理手段が出力した前記ＤＣＴ係数を量子化して、量子化ＤＣＴ係数を出力する量子化処理手段と、
前記量子化処理手段が出力した前記量子化ＤＣＴ係数を逆量子化して、逆量子化ＤＣＴ係数を出力する逆量子化処理手段と、
前記逆量子化処理手段が出力した前記逆量子化ＤＣＴ係数を逆ＤＣＴ処理して、再構築画像データを得るためのＤＣＴ係数を出力する逆ＤＣＴ処理手段と、
前記量子化処理手段が出力した前記量子化ＤＣＴ係数と、前記動き検出処理手段が検出した前記動きベクトルとを可変長符号化して、符号化データを出力する可変長符号化処理手段の内の少なくとも２つを有する、請求項６記載の画像データ処理装置。
【請求項８】
前記パイプライン制御部は、
前記画像符号化部のパイプライン処理を制御するための起動情報が登録されたパイプライン起動テーブルを格納する起動テーブル記憶手段と、
前記起動テーブル記憶手段に格納された前記パイプライン起動テーブルを参照するときのオフセット値を決定するオフセット決定手段と、
前記オフセット決定手段で決定されたオフセット値を基に、前記起動テーブル記憶手段に格納されているパイプライン起動テーブルから、前記画像符号化部のパイプライン処理を制御するための起動情報を読み出し、前記画像符号化部のパイプライン処理の起動方法を決定する起動ステージ決定手段と、
前記オフセット決定手段と前記起動ステージ決定手段とを制御して、前記起動ステージ決定手段が決定した前記画像符号化部のパイプライン処理の起動方法を基に、前記画像符号化部のパイプライン処理を制御するパイプライン制御手段とを有する、請求項６記載の画像データ処理装置。
【請求項９】
複数段のパイプラインを用いて画像データを処理する画像データ処理ステップと、
前記画像データ処理ステップにおいて処理した画像データを格納する画像データ格納ステップと、
前記複数段のパイプラインを制御するパイプライン制御ステップとを含む画像データ処理方法。
【請求項１０】
前記パイプライン制御ステップは、
前記複数段のパイプラインの起動を制御するための起動情報が登録された、パイプライン起動テーブルを格納する起動テーブル格納ステップと、
前記パイプライン起動テーブルを参照するためのオフセット値を決定するオフセット値決定ステップと、
前記オフセット値決定ステップにおいて決定されたオフセット値を基に、前記パイプライン起動テーブルに登録されている前記起動情報を取得し、前記複数段のパイプラインの起動方法を決定する起動ステージ決定ステップと、
前記起動ステージ決定ステップにおいて決定された起動方法に基づいて、前記複数段のパイプラインを制御するパイプライン制御ステップとを含む、請求項９記載の画像データ処理方法。
【請求項１１】
前記画像データ処理ステップは、符号化データをマクロブロック単位で復号し、
前記符号化データの復号誤りを検出する誤り検出ステップと、
誤り隠蔽処理を行う誤り隠蔽ステップとをさらに含み、
前記誤り検出ステップにおいて復号誤りが検出された場合、前記パイプライン制御ステップは、前記符号誤りが検出されたマクロブロック以降のマクロブロックに対して、前記画像データ処理ステップにおける復号処理を中断し、前記誤り隠蔽ステップにおける誤り隠蔽処理を実行する、請求項９から１０記載の画像データ処理方法。
【請求項１２】
前記誤り隠蔽ステップは、前記画像データ格納ステップにおいて格納されている、過去に処理した画像データを充当して、誤り隠蔽処理を実行する、請求項１１記載の画像データ処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像データ処理装置に関し、特に、画像データの符号化および復号をパイプライン処理により、高速で効率的に実行できる画像データ処理装置及び画像データ処理方法に関するものである。
【背景技術】
【０００２】
ＭＰＥＧ（Ｍｏｖｉｎｇ  Ｐｉｃｔｕｒｅ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ）規格に代表される画像データの符号化／復号処理は、一連の様々な符号化／復号処理過程から成る。例えば、ＭＰＥＧ方式の復号処理過程は、可変長復号処理、逆量子化処理、逆ＤＣＴ処理（Ｉｎｖｅｒｓｅ  Ｄｅｓｃｒｅｔｅ  Ｃｏｓｉｎｅ  Ｔｒａｎｓｆｏｒｍａｔｉｏｎ；逆離散コサイン変換）、動き補償処理を含み、ＭＰＥＧ方式の符号化処理は、可変長符号化処理、ＤＣＴ処理、量子化処理、動き検出処理、動き補償処理、逆量子化処理、逆ＤＣＴ処理を含む。
【０００３】
このような画像データの一連の符号化／復号処理を高速化する従来の技術として、特許文献１に開示された画像データ処理装置がある。
【０００４】
図１７は、特許文献１に開示された従来の画像データ処理装置１のブロック図である。図１７に示す画像データ処理装置１は、ＤＣＴ処理と量子化処理を行うピクセルプロセシングユニット２、動き予測処理を行う動き予測ユニット３、可変長符号化を行う可変長プロセッサ６などの、複数の独立した符号化処理ユニットを備え、全体制御プロセッサ５が、これら符号化処理ユニットをパイプラインの各ステージとして並列に動作させるよう制御する。つまり、画像データ処理装置１は、独立に動作する複数の処理ユニットをパイプライン制御することによって、画像データの符号化／復号処理を高速化しようとするものである。
【０００５】
しかしながら、上述した従来の技術による符号化／復号処理を行う画像データ処理装置は、伝送路として無線環境を多用する携帯電話等など、伝送中に符号化データにデータ誤りがしばしば発生し得る環境でも利用される装置には、適用できない。これは、従来技術の画像データ処理装置は、伝送路でデータ誤りが発生した場合、そのデータ誤りに起因する復号画像の劣化を最小限に抑え、高画質を維持するという要件に応えることが出来ないためである。
【０００６】
つまり、従来技術の画像データ処理装置は、復号処理中の符号化データのデータ誤りによる復号エラー発生時や、復号エラー発生後の復号処理再開時などで、パイプライン処理の制御に乱れが生じた場合の対策を施していない。したがって、従来技術の画像データ処理装置では、復号処理中に復号エラーが発生した場合は、パイプライン処理中の全データを破棄し、一つ前の復号画像による誤り隠蔽処理を行うしか、対応のしようがなく、この結果、復号画像に著しい劣化を招くことになる。
【特許文献１】特開平７―２４０８４４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
そこで本発明は、画像データの符号化及び復号をパイプライン処理により高速化するとともに、復号処理中に発生した復号エラーによるパイプライン制御の乱れを回避し、復号画像の劣化を最小限に抑えて、高画質化を実現する画像データ処理装置及び画像データ処理方法を提供することを目的とする。
【課題を解決するための手段】
【０００８】
請求項１記載の画像データ処理装置は、入力される入力符号化データパイプライン処理により復号して、復号画像データを出力する画像復号部と、画像復号部のパイプライン処理を制御するためのパイプライン制御部と、入力符号化データと復号画像データを格納するメモリとを備える。
【０００９】
この構成によれば、パイプライン処理により高速に動作する、符号化データ復号のための画像データ処理装置を提供できる。
【００１０】
請求項２記載の画像データ処理装置では、画像復号部は、パイプライン処理を行う複数段のデータ処理部を有し、複数段のデータ処理部は、入力符号化データを可変長復号して、量子化ＤＣＴ係数と動きベクトルとを出力する可変長復号処理手段と、可変長復号処理手段が出力した量子化ＤＣＴ係数を逆量子化して、逆量子化ＤＣＴ係数を出力する逆量子化処理手段と、逆量子化処理手段が出力した逆量子化ＤＣＴ係数を逆ＤＣＴ処理して、ＤＣＴ係数を出力する逆ＤＣＴ処理手段と、逆ＤＣＴ処理手段が出力したＤＣＴ係数と、可変長復号処理手段が出力した動きベクトルと、メモリに格納されている前フレームの復号画像データとを用いて、現フレームの復号画像データを生成する動き補償処理手段の内の少なくとも２つを有する。
【００１１】
この構成によれば、ＭＰＥＧ規格の符号化データをパイプライン処理により高速に復号する画像データ処理装置を提供できる。
【００１２】
請求項３記載の画像データ処理装置では、パイプライン制御部は、画像復号部のパイプライン処理を制御するための起動情報が登録された、パイプライン起動テーブルを格納する起動テーブル記憶手段と、起動テーブル記憶手段に格納されたパイプライン起動テーブルを参照するための、オフセット値を決定するオフセット決定手段と、オフセット決定手段で決定されたオフセット値を基に、起動テーブル記憶手段に格納されているパイプライン起動テーブルから、画像復号部のパイプライン処理を制御するための起動情報を読み出し、画像復号部のパイプライン処理の起動方法を決定する起動ステージ決定手段と、オフセット決定手段と起動ステージ決定手段とを制御して、起動ステージ決定手段が決定した画像復号部のパイプライン処理の起動方法を基に、画像復号部のパイプライン処理を制御するパイプライン制御手段とを有する。
【００１３】
この構成によれば、復号処理時に復号エラーが発生し、画像復号部のパイプライン処理に乱れが発生した場合、パイプライン起動テーブルとそれを参照するためのオフセット値とを用いて、パイプライン処理を直ちに正常に戻すことができる。この結果、復号画像の復号エラーによる画質劣化を最小限に抑制できる。
【００１４】
請求項４記載の画像データ処理装置では、画像データ処理装置は、誤り隠蔽処理手段をさらに備え、可変長復号処理手段は、入力符号化データの符号誤りを検出する符号誤り検出手段をさらに有し、符号誤り検出手段が、入力符号化データのマクロブロックに符号誤りを検出した場合、誤り隠蔽処理手段は、誤りが検出されたマクロブロック以降のマクロブロックに対して、メモリに格納されている過去の復号画像データを充当して、入力符号化データの符号誤りよる復号画像の表示の乱れを隠蔽する。
【００１５】
請求項５記載の画像データ処理装置では、符号誤り検出手段が、入力符号化データのマクロブロックに符号誤りを検出した場合、誤り隠蔽処理手段は、誤りが検出されたマクロブロックから、画像復号部のパイプライン処理段数に等しい個数のマクロブロック以前のマクロブロックを、隠蔽の対象から除外する。
【００１６】
これらの構成によれば、復号処理時に復号エラーが発生し、画像復号部のパイプライン処理に乱れが発生した場合、復号処理中の全データを破棄する必要はなく、すでに復号処理が終わっているマクロブロックについては、復号した画像データを採用し、復号エラーのために復号処理が終わっていないマクロブロックについては、メモリに格納されている過去の復号画像データを充当して、復号画像の表示の乱れを隠蔽することができる。すなわち、復号エラーに対する隠蔽処理をマクロブロック単位で実行できるので、復号画像の復号エラーによる画質劣化を最小限に抑制できる。
【００１７】
請求項６記載の画像データ処理装置は、入力される入力画像データをパイプライン処理により符号化して、符号化データを出力する画像符号化部と、画像符号化部のパイプライン処理を制御するためのパイプライン制御部と、入力画像データに対する再構築画像データと符号化データとを格納するメモリとを備える。
【００１８】
この構成によれば、パイプライン処理により高速に動作する、画像データ符号化のための画像データ処理装置を提供できる。
【００１９】
請求項７記載の画像データ処理装置では、画像符号化部は、パイプライン処理を行う複数段のデータ処理部を有し、複数段のデータ処理部は、現フレームの入力画像データである入力画像データと、メモリに格納されている前フレームの再構築画像データとを用いて、現フレームの動きベクトルを検出する動き検出処理手段と、動き検出処理手段が検出した動きベクトルと、メモリに格納されている前フレームの再構築画像データとを用いて、現フレームに対する予測画像データを生成する動き補償処理手段と、動き補償処理手段が生成した予測画像データと、入力画像データとの差分をＤＣＴ処理して、ＤＣＴ係数を出力するＤＣＴ処理手段と、ＤＣＴ処理手段が出力したＤＣＴ係数を量子化して、量子化ＤＣＴ係数を出力する量子化処理手段と、量子化処理手段が出力した量子化ＤＣＴ係数を逆量子化して、逆量子化ＤＣＴ係数を出力する逆量子化処理手段と、逆量子化処理手段が出力した逆量子化ＤＣＴ係数を逆ＤＣＴ処理して、再構築画像データを得るためのＤＣＴ係数を出力する逆ＤＣＴ処理手段と、量子化処理手段が出力した量子化ＤＣＴ係数と、動き検出処理手段が検出した動きベクトルとを可変長符号化して、符号化データを出力する可変長符号化処理手段の内の少なくとも２つを有する。
【００２０】
この構成によれば、パイプライン処理により画像データをＭＰＥＧ規格の符号化データに高速に符号化する画像データ処理装置を提供できる。
【００２１】
請求項８記載の画像データ処理装置では、パイプライン制御部は、画像符号化部のパイプライン処理を制御するための起動情報が登録されたパイプライン起動テーブルを格納する起動テーブル記憶手段と、起動テーブル記憶手段に格納されたパイプライン起動テーブルを参照するときのオフセット値を決定するオフセット決定手段と、オフセット決定手段で決定されたオフセット値を基に、起動テーブル記憶手段に格納されているパイプライン起動テーブルから、画像符号化部のパイプライン処理を制御するための起動情報を読み出し、画像符号化部のパイプライン処理の起動方法を決定する起動ステージ決定手段と、オフセット決定手段と起動ステージ決定手段とを制御して、起動ステージ決定手段が決定した画像符号化部のパイプライン処理の起動方法を基に、画像符号化部のパイプライン処理を制御するパイプライン制御手段とを有する。
【００２２】
この構成によれば、パイプライン起動テーブルとそれを参照するためのオフセット値とを用いて、パイプライン処理を行う各処理手段を容易に起動することができる。
【発明の効果】
【００２３】
本発明によれば、画像データの符号化および復号をパイプライン処理により、高速で効率的に実行できる画像データ処理装置及び画像データ処理方法を提供できる。
【発明を実施するための最良の形態】
【００２４】
次に、図面を参照しながら、本発明の実施の形態を説明する。
【００２５】
（実施の形態１）
図１は、本発明の実施の形態１における画像データ処理装置１００のブロック図である。本形態の画像データ処理装置１００は、ＭＰＥＧ規格に代表される符号化データを、パイプライン処理により、高速に復号する。
【００２６】
図１に示すように、本形態の画像データ処理装置１００は、可変長復号処理手段１１と逆量子化処理手段１２と逆ＤＣＴ処理手段１３と動き補償処理手段１４とを有する画像復号部１０、パイプライン制御手段２１と起動ステージ決定手段２２と起動テーブル記憶手段２３とオフセット決定手段２４とを有するパイプライン制御部２０、メモリ３０、及び、入出力インターフェイス４０を備える。
【００２７】
可変長復号処理手段１１、逆量子化処理手段１２、逆ＤＣＴ処理手段１３、動き補償処理手段１４、メモリ３０、及び、入出力インターフェイス４０は、データバス８０に接続されている。また、可変長復号処理手段１１、逆量子化処理手段１２、逆ＤＣＴ処理手段１３、及び、動き補償処理手段１４は、制御線８１を介して、パイプライン制御手段２１に接続されている。
【００２８】
可変長復号処理手段１１、逆量子化処理手段１２、及び、逆ＤＣＴ処理手段１３は、パイプラインの各段を構成しており、いわゆるパイプライン処理を行う。それらのパイプライン処理の制御は、制御線８１を介して、パイプライン制御手段２１によって、実行される。その詳細は後述する。
【００２９】
入出力ポート９０から入出力インターフェイス４０に入力された入力符号化データ（本形態では、可変長符号に符号化された入力符号化データ）は、メモリ３０に一旦格納される。
【００３０】
可変長復号処理手段１１は、メモリ３０に格納されている入力符号化データを、可変長復号して、量子化ＤＣＴ係数と動きベクトルを出力する。
【００３１】
逆量子化処理手段１２は、可変長復号処理手段１１が出力した量子化ＤＣＴ係数を逆量子化して、逆量子化ＤＣＴ係数を出力する。
【００３２】
逆ＤＣＴ処理手段１３は、逆量子化処理手段１２が出力した逆量子化ＤＣＴ係数を逆ＤＣＴ処理して、ＤＣＴ係数を出力する。
【００３３】
動き補償処理手段１４は、可変長復号処理手段１１が出力した動きベクトルと、逆ＤＣＴ処理手段１３が出力したＤＣＴ係数と、メモリ３０に格納されている前フレームの復号画像データとを用いて、現フレームの復号画像データを生成し、メモリ３０に格納する。
【００３４】
図２（ａ）は、本発明の実施の形態１における画像復号処理のダイヤグラムである。すなわち、図２（ａ）は、本形態の画像データ処理装置１００で実行される画像復号処理の流れを示している。
【００３５】
メモリ３０から読み込まれた符号化データＤ１０は、可変長復号処理手段１１によって可変長復号処理Ｐ１１が施され、量子化ＤＣＴ係数Ｄ１１が出力される。
【００３６】
量子化ＤＣＴ係数Ｄ１１は、逆量子化処理手段１２によって逆量子化処理Ｐ１２が施され、逆量子化ＤＣＴ係数Ｄ１２が出力される。
【００３７】
逆量子化ＤＣＴ係数Ｄ１２は、逆ＤＣＴ処理手段１３によって逆ＤＣＴ処理Ｐ１３が施され、ＤＣＴ係数Ｄ１３が出力される。
【００３８】
ＤＣＴ係数Ｄ１３は、動き補償処理手段１４によって動き補償処理Ｐ１４が施され、現フレームの復号画像データＤ１４が出力される。なお、動き補償処理Ｐ１４では、可変長復号処理Ｐ１１で出力された動きベクトルと、メモリ３０に格納されている前フレームの復号画像データとが利用される。
【００３９】
図２（ｂ）は、本発明の実施の形態１における復号画像４００の画面図である。図２（ａ）に示した画像復号処理は、図２（ｂ）に示す部分画像であるマクロブロック４０１（ＭＢ０、ＭＢ１、ＭＢ２、ＭＢ３、・・・、ＭＢ４７）の画像単位で実行される。一般的に復号画像の左上マクロブロックＭＢ０から右の方の順（ＭＢ０→ＭＢ１→ＭＢ２・・・）に復号処理が実行される。
【００４０】
図３は、本発明の実施の形態１におけるパイプライン処理のタイムチャートである。本形態のパイプライン処理は、図２（ａ）に示した本形態の画像復号処理のうち、可変長復号処理Ｐ１１、逆量子化処理Ｐ１２、及び、逆ＤＣＴ処理Ｐ１３に対して行われる。図３の横軸は、時間の経過を示し、縦軸は、画像復号処理におけるパイプライン処理ステージ（第１ステージ（Ｓ１）＝可変長復号処理Ｐ１１、第２ステージ（Ｓ２）＝逆量子化処理Ｐ１２、及び、第３ステージ（Ｓ３）＝逆ＤＣＴ処理Ｐ１３の３ステージ）を示す。
【００４１】
なお、可変長復号処理Ｐ１１、逆量子化処理Ｐ１２、逆ＤＣＴ処理Ｐ１３、動き補償処理Ｐ１４は、本発明の主張するところではないので、それらの詳細な説明を省略する。
【００４２】
以下に、図３に示す本実施の形態のパイプライン処理について説明する。
【００４３】
復号処理開始と共に、まず期間ＴＰ０において、フレームヘッダ情報ＶＯＰに対する第１ステージの可変長復号処理Ｐ１１が行われる。フレームヘッダ情報ＶＯＰは、可変長符号データにおける各フレームの先頭に挿入され、フレーム内に含まれるマクロブロック数などの情報を含んでいる。
【００４４】
次に、期間ＴＭ０において、最初のマクロブロックであるＭＢ０に対する第１ステージにおける可変長復号処理Ｐ１１が行われる。
【００４５】
期間ＴＭ０におけるマクロブロックＭＢ０に対する第１ステージにおける可変長復号処理Ｐ１１が完了すると、期間ＴＭ１において、２番目のマクロブロックＭＢ１に対する第１ステージにおける可変長復号処理Ｐ１１と、マクロブロックＭＢ０に対する第２ステージでの逆量子化処理Ｐ１２とが並列に行われる。
【００４６】
次に、期間ＴＶ０において、パケットヘッダ情報ＶＰの第１ステージにおける可変長復号処理Ｐ１１が行われる。パケットヘッダ情報ＶＰは、マクロブロックデータの間に適時挿入されるパケットヘッダに関する情報、すなわち、以降のマクロブロックのマクロブロック番号やマクロブロックにおける逆量子化処理で使用される量子化値などを含んでいる。
【００４７】
次に、期間ＴＶ０におけるパケットヘッダ情報ＶＰに対する第１ステージでの可変長復号処理Ｐ１１が完了すると、期間ＴＭ２において３番目のマクロブロックＭＢ２に対する第１ステージにおける可変長復号処理Ｐ１１と、マクロブロックＭＢ１に対する第２ステージにおける逆量子化処理Ｐ１２と、マクロブロックＭＢ０に対する第３ステージにおける逆ＤＣＴ処理Ｐ１３とが並列に行われる。
【００４８】
次に、期間ＴＭ２における処理が完了すると、期間ＴＭ３において４番目のマクロブロックＭＢ３に対する第１ステージでの可変長復号処理Ｐ１１と、マクロブロックＭＢ２に対する第２ステージでの逆量子化処理Ｐ１２と、マクロブロックＭＢ１に対する第３ステージでの逆ＤＣＴ処理Ｐ１３とが並列に行われる。
【００４９】
以降は、期間ＴＰ０におけるフレームヘッダ情報ＶＯＰを復号して得られたフレーム内マクロブロック数に基づく復号画像の最後のマクロブロックＭＢ４７に対する第１ステージでの可変長復号処理Ｐ１１を行う期間ＴＭ４７まで、処理対象のマクロブロックを進めながら同様の処理が繰り返される。
【００５０】
期間ＴＭ４７における処理が完了すると、期間ＴＭ４８においてマクロブロックＭＢ４７に対する第２ステージでの逆量子化処理Ｐ１２及びマクロブロックＭＢ４６に対する第３ステージでの逆ＤＣＴ処理Ｐ１３が並列に行われる。
【００５１】
期間ＴＭ４８における処理が完了すると、期間ＴＭ４９においてマクロブロックＭＢ４７に対する第３ステージでの逆ＤＣＴ処理Ｐ１３が行われ、現フレームに対する復号のためのパイプライン処理が完了する。
【００５２】
次に、図１に示す本形態の画像データ処理装置１００において、図３に示したパイプライン処理を実施するときの、パイプライン制御の方法について、図４〜図８に示すフローチャートに従って説明する。パイプライン制御は、図１に示すパイプライン制御部２０が行う。
【００５３】
図４は、本発明の実施の形態１におけるパイプライン制御の前半のフローチャートである。図５は、本発明の実施の形態１におけるパイプライン制御の後半のフローチャートである。図４の丸囲み記号「Ａ」「Ｂ」「Ｃ」は、図５の丸囲み記号「Ａ」「Ｂ」「Ｃ」につながる。以下に、図４のフローチャートに従って、本形態のパイプライン制御について、図３に示す期間ごとに、説明する。
（期間ＴＰ０）
図４において、画像復号処理が開始されると、図１に示す画像データ処理装置１００のパイプライン制御手段２１が起動される。
【００５４】
ステップＳ１１において、まず可変長復号処理手段１１を用いて、可変長符号化データの各フレーム先頭に挿入されるフレームヘッダ情報ＶＯＰの可変長復号処理を行い、フレーム内マクロブロック数（ＭＢ＿ＩＮ＿ＶＯＰ）を取得する。ここでは、
ＭＢ＿ＩＮ＿ＶＯＰ＝４８
とする。
【００５５】
ステップＳ１２において、マクロブロックカウンタ（ＭＢＡ）の初期化を行い、
ＭＢＡ＝０
と設定する。
ステップＳ１３において、フレーム内マクロブロック数の処理を完了したかどうかの判定として、
ＭＢＡ＞＝ＭＢ＿ＩＮ＿ＶＯＰ？  （記号「＞＝」は、左辺が右辺以上であることを表す。）
の判定が行われる。ここでは、
ＭＢＡ＝０、
ＭＢ＿ＩＮ＿ＶＯＰ＝４８
であり、ステップＳ１３での判定結果は「Ｎｏ」（処理未完了）となり、ステップＳ１４に進む。
（期間ＴＭ０）
まず、ステップＳ１４において、パイプライン中断フラグ（ＰＩＰＥ＿ＥＮＤ）の初期化として、
ＰＩＰＥ＿ＥＮＤ＝０
と設定する。
【００５６】
ステップＳ１５において、後述するパイプライン立上げテーブルを参照するためのオフセット１（ＯＦＦＳＥＴ１）の初期化として、
ＯＦＦＳＥＴ１＝０
と設定する。
【００５７】
ステップＳ１６において、マクロブロック処理中フラグ（ＭＢ＿ＰＲＯＣ）の初期化として、
ＭＢ＿ＰＲＯＣ＝１
と設定する。
【００５８】
ステップＳ１７において、パイプライン処理は先頭の処理かを判定する。パイプライン処理が先頭の処理かどうかの判定は、
ＯＦＦＳＥＴ１＝＝０？  （記号「＝＝」は、「等号」を表す）
の判定によって行う。ここでは、
ＯＦＦＳＥＴ１＝０
であり、ステップＳ１７での判定結果は「Ｙｅｓ」（先頭の処理である）となリ、ステップＳ１９に進む。
【００５９】
ステップＳ１９において、図１のオフセット決定手段２４が起動されて、パイプライン起動テーブルオフセット決定処理が実施される。そして、後述するパイプライン起動テーブル（パイプライン立上げテーブルとパイプライン中断テーブル）を参照する時のオフセット値（ＯＦＦＳＥＴ１、ＯＦＦＳＥＴ２、ＯＦＦＳＥＴ３）を決定する。
【００６０】
なお、オフセット決定手段２４の起動時には、パイプライン中断フラグ（ＰＩＰＥ＿ＥＮＤ）、マクロブロック処理中フラグ（ＭＢ＿ＰＲＯＣ）、及び、パイプライン立上げテーブル（後述）用オフセット１（ＯＦＦＳＥＴ１）が、パイプライン制御手段２１よりオフセット決定手段２４へ渡される。ここでは、
ＰＩＰＥ＿ＥＮＤ＝０
ＭＢ＿ＰＲＯＣ＝１
ＯＦＦＳＥＴ１＝０
が渡される。
【００６１】
図６は、本発明の実施の形態１におけるパイプライン起動テーブルオフセット決定処理の前半のフローチャートである。図７は、本発明の実施の形態１におけるパイプライン起動テーブルオフセット決定処理の後半のフローチャートである。図６の丸囲み記号「Ａ」は、図７の丸囲み記号「Ａ」につながる。
【００６２】
パイプライン起動テーブルオフセット決定処理が開始されると、図６のステップＳ４１において、図１の起動テーブル記憶手段２３が起動され、パイプライン処理の中断開始であるかどうかが判定される。すなわち、
ＰＩＰＥ＿ＥＮＤ！＝０？  （記号「！＝」は、「不等号」を表す。）
の判定を行う。ここでは、
ＰＩＰＥ＿ＥＮＤ＝０
であり、ステップＳ４１での判定結果は、「Ｎｏ」（パイプライン処理の中断開始ではない）となり、ステップＳ４２に進む。
【００６３】
ステップＳ４２では、パイプライン立上げテーブル（後述）用オフセット１（ＯＦＦＳＥＴ１）の初期化処理として、
ＯＦＦＳＥＴ１＝０
の設定を行う。
【００６４】
ステップＳ４３では、パイプライン中断テーブル用オフセット２（ＯＦＦＳＥＴ２）の初期化処理として、
ＯＦＦＳＥＴ２＝０
の設定を行う。
【００６５】
ステップＳ４４では、パイプライン中断テーブル用オフセット３（ＯＦＦＳＥＴ３）の初期化処理として、
ＯＦＦＳＥＴ３＝−３２７６８
の設定を行う。以上のステップＳ４２〜４４の初期化処理を行って、パイプライン起動テーブルオフセット決定処理（図４のステップＳ１９）を終了する。
【００６６】
この時、図１のオフセット決定手段２４によって、
ＯＦＦＳＥＴ１＝０、
ＯＦＦＳＥＴ２＝０、
ＯＦＦＳＥＴ３＝−３２７６８、
ＰＩＰＥ＿ＥＮＤ＝０
が、それぞれ返される。
【００６７】
図４のステップＳ１９のパイプライン起動テーブルオフセット決定処理を終了すると、ステップＳ２０に進む。
【００６８】
ステップＳ２０では、パイプライン処理の中断処理が無いかどうかの判定処理を、
ＯＦＦＳＥＴ２＝＝−３２７６８？
の判定により行う。ここでは、パイプライン中断テーブル用オフセット２（ＯＦＦＳＥＴ２）の値は、
ＯＦＦＳＥＴ２＝０
であり、ステップＳ２０での判定結果は、「Ｎｏ」（パイプライン処理の中断処理あり）となり、ステップＳ２１（図５）に進む。
【００６９】
ステップＳ２１では、図１の起動ステージ決定手段２２が起動され、パイプライン起動ステージ決定処理が実行される。すなわち、ステップＳ２１のパイプライン起動ステージ決定処理では、可変長復号処理手段１１による可変長復号処理Ｐ１１、逆量子化処理手段１２による逆量子化処理Ｐ１２、及び、逆ＤＣＴ処理手段１３による逆ＤＣＴ処理Ｐ１３の各パイプラインステージを起動するための、パイプラインステージ起動パラメータ（ＰＩＰＥＫＩＣＫ）が決定される。
【００７０】
なお、起動ステージ決定手段２２の起動時には、パイプライン制御手段２１より、パイプライン立上げテーブル用オフセットセット１（ＯＦＦＳＥＴ１）、パイプライン中断テーブル用オフセット２（ＯＦＦＳＥＴ２）、及び、パイプライン中断テーブル用オフセット３（ＯＦＦＳＥＴ３）が渡される。ここでは、
ＯＦＦＳＥＴ１＝０、
ＯＦＦＳＥＴ２＝０、
ＯＦＦＳＥＴ３＝−３２７６８
が渡される。
【００７１】
図８は、本発明の実施の形態１におけるパイプライン起動ステージ決定処理のフローチャートである。以下に、図８を参照して、パイプライン起動ステージ決定処理を説明する。
【００７２】
パイプライン起動ステージ決定処理が開始されると、図１の起動ステージ決定手段２２が起動される。ステップＳ６１において、まずパイプライン立上げ中かどうかの判定処理として、
ＯＦＦＳＥＴ１＜２？
の判定を行う。ここでは、
ＯＦＦＳＥＴ１＝０
であり、ステップＳ６１での判定結果は、「Ｙｅｓ」（立上げ中）となり、ステップＳ６２に進む。
【００７３】
ステップＳ６２では、パイプラインステージ起動パラメータ（ＰＩＰＥＫＩＣＫ）をパイプライン立上げテーブル（ＴＡＢＬＥ１）より取得する。すなわち、
ＰＩＰＥＫＩＣＫ＝ＴＡＢＬＥ１［ＯＦＦＳＥＴ１］
の演算を行う。
【００７４】
ここで、パイプライン立上げテーブル（ＴＡＢＬＥ１）は、起動テーブル記憶手段２３に格納されたテーブルであって、可変長復号処理手段１１、逆量子化処理手段１２、逆ＤＣＴ処理手段１３の各起動情報が記述されている。
【００７５】
図９（ａ）は、本発明の実施の形態１におけるパイプライン立上げテーブル（ＴＡＢＬＥ１）４２０の構成図である。図９（ｂ）は、本発明の実施の形態１におけるパイプライン中断テーブル（ＴＡＢＬＥ２）４２１の構成図である。
【００７６】
パイプライン立上げテーブル（ＴＡＢＬＥ１）４２０は、要素「＿Ｓ１」と要素「＿Ｓ１｜＿Ｓ２」の２つの要素を持つテーブルである。要素「＿Ｓ１」は、パイプライン処理の第１ステージ（Ｓ１）である可変長復号処理Ｐ１１を起動することを示し、要素「＿Ｓ１｜＿Ｓ２」は、パイプライン処理の第１ステージ（Ｓ１）である可変長復号処理Ｐ１１とパイプライン処理の第２ステージ（Ｓ２）である逆量子化処理Ｐ１２を並列に起動することを示す。
【００７７】
図８のステップＳ６２では、
ＯＦＦＳＥＴ１＝０
であり、
ＰＩＰＥＫＩＣＫ＝＿Ｓ１
を取得する。
【００７８】
次に、ステップＳ６３では、パイプライン立上げテーブル用オフセット１のインクリメント処理として、
ＯＦＦＳＥＴ１＋＋  （記号「＋＋」は、左辺の変数に値「１」を足すことを表す。）
を実行し、
ＯＦＦＳＥＴ１＝１
として、パイプライン起動ステージ決定処理を終了する。
【００７９】
起動ステージ決定手段２２において、パイプライン起動ステージ決定処理が終了した時には、パイプライン立上げテーブル用オフセットセット１（ＯＦＦＳＥＴ１）、パイプライン中断テーブル用オフセット２（ＯＦＦＳＥＴ２）、パイプライン中断テーブル用オフセット３（ＯＦＦＳＥＴ３）、パイプラインステージ起動パラメータ（ＰＩＰＥＫＩＣＫ）が返される。ここでは、
ＯＦＦＳＥＴ１＝１、
ＯＦＦＳＥＴ２＝０、
ＯＦＦＳＥＴ３＝−３２７６８、
ＰＩＰＥＫＩＣＫ＝＿Ｓ１
が返される。
【００８０】
以上で、図５のステップＳ２１におけるパイプライン起動ステージ決定処理が終了し、図５のステップＳ２２に進む。
【００８１】
ステップＳ２２において、パイプライン処理の起動を行う。ステップＳ２２におけるパイプライン処理の起動は、ステップＳ２１で決定したパイプラインステージ起動パラメータ（ＰＩＰＥＫＩＣＫ）を用いて行う。すなわち、パイプラインステージ起動パラメータ（ＰＩＰＥＫＩＣＫ）にセットされたパイプラインステージに対応する処理手段を起動する。ここでは、パイプラインステージ起動パラメータ（ＰＩＰＥＫＩＣＫ）は、
ＰＩＰＥＫＩＣＫ＝＿Ｓ１
であり、第１ステージ（Ｓ１）の可変長復号処理Ｐ１１のための可変長復号処理手段１１のみが起動される。
【００８２】
ステップＳ２３では、ステップＳ２２で起動された可変長復号処理Ｐ１１の処理終了を待つ。処理が終了すると、ステップＳ２４に進む。
【００８３】
ステップＳ２４において、パイプライン処理が中断処理中であるかどうかの判定処理として、
ＯＦＦＳＥＴ３！＝−３２７６８？
の判定を行う。ここでは、
ＯＦＦＳＥＴ３＝−３２７６８
であり、ステップＳ２４での判定結果は、「Ｎｏ」（パイプライン処理は中断処理中ではない）となり、ステップＳ２５に進む。
【００８４】
ステップＳ２５において、マクロブロックカウンタ（ＭＢＡ）のインクリメント処理として、
ＭＢＡ＋＋
の演算を行い、
ＭＢＡ＝１
と設定する。
【００８５】
次に、ステップＳ２６において、ヘッダ有りかどうかの判定処理を実行する。
【００８６】
可変長符号データにおいては、マクロブロックデータ間に挿入されるパケットヘッダ情報（ＶＰ）の先頭に、特有のビット列（「０ｘ０００００１」など、記号「ｘ」は、値「０」か「１」）から成る同期語が含まれており、これを検出することでヘッダ有り無しを判定する。
【００８７】
ここでは、ステップＳ２６での判定結果は、「Ｎｏ」（ヘッダ無し）であり、ステップＳ２９に進む。
【００８８】
ステップＳ２９において、フレーム内マクロブロック数の処理が完了したかどうかの判定処理として、
ＭＢＡ＞＝ＭＢ＿ＩＮ＿ＶＯＰ？
の判定を行う。ここでは、
ＭＢＡ＝１、
ＭＢ＿ＩＮ＿ＶＯＰ＝４８
であり、ステップＳ２６での判定結果は、「Ｎｏ」（フレーム内マクロブロック数の処理は完了していない）となり、直接ステップＳ１６（図４）へ戻り次の期間の処理を行う。
【００８９】
以上で、期間ＴＭ０の処理が終了する。
（期間ＴＭ１、ＴＶ０）
この期間の処理は、図４のステップＳ１６から始まる。
【００９０】
この期間の初めにおいて、主要なパラメータは以下のように設定されている。
ＭＢＡ＝１、
ＰＩＰＥ＿ＥＮＤ＝０、
ＭＢ＿ＰＲＯＣ＝１、
ＯＦＦＳＥＴ１＝１、
ＯＦＦＳＥＴ２＝０、
ＯＦＦＳＥＴ３＝−３２７６８。
【００９１】
ステップＳ１６において、マクロブロック処理中フラグ（ＭＢ＿ＰＲＯＣ）の初期化として、
ＭＢ＿ＰＲＯＣ＝１
の設定を行う。
【００９２】
ステップＳ１７において、パイプライン処理が先頭の処理かどうかの判定を、
ＯＦＦＳＥＴ１＝＝０？
の判定によって行う。ここでは、
ＯＦＦＳＥＴ１＝１
であり、ステップＳ１７での判定結果は、「Ｎｏ」（先頭の処理ではない）となり、ステップＳ１８に進む。
【００９３】
ステップＳ１８において、パイプライン処理は中断開始かどうかの判定として、
ＰＩＰＥ＿ＥＮＤ！＝０？
の判定を行う。ここでは、
ＰＩＰＥ＿ＥＮＤ＝０
であり、ステップＳ１８での判定結果は、「Ｎｏ」（中断開始ではない）となり、ステップＳ２１（図５）に進む。
【００９４】
次に、ステップＳ２１において起動ステージ決定手段２２が起動される。このとき、
ＯＦＦＳＥＴ１＝１、
ＯＦＦＳＥＴ２＝０、
ＯＦＦＳＥＴ３＝−３２７６８
が、パイプライン制御手段２１から起動ステージ決定手段２２へ渡され、図８に示すパイプライン起動ステージ決定処理が実行される。
【００９５】
図８のステップＳ６１では、パイプライン立上げ中かどうかの判定処理として、
ＯＦＦＳＥＴ１＜２？
の判定が行われ、ここでは、
ＯＦＦＳＥＴ１＝１、
であり、ステップＳ６１の判定結果は、「Ｙｅｓ」（立上げ中）となり、ステップＳ６２に進む。
【００９６】
ステップＳ６２では、
ＯＦＦＳＥＴ１＝１
を用いて、
ＰＩＰＥＫＩＣＫ＝ＴＡＢＬＥ１［ＯＦＦＳＥＴ１］
の演算を行い、
ＰＩＰＥＫＩＣＫ＝＿Ｓ１｜＿Ｓ２
を取得する。
【００９７】
ステップＳ６３では、
ＯＦＦＳＥＴ１＋＋
の演算を行い、
ＯＦＦＳＥＴ１＝２
として、パイプライン起動ステージ決定処理を終了する。この結果、パイプライン起動ステージ決定処理を終了後に、
ＯＦＦＳＥＴ１＝２、
ＯＦＦＳＥＴ２＝０、
ＯＦＦＳＥＴ３＝−３２７６８、
ＰＩＰＥＫＩＣＫ＝＿Ｓ１｜＿Ｓ２
が返される。
【００９８】
次に、図５のステップＳ２２において、パイプライン処理の起動を行う。ステップＳ２２におけるパイプライン処理の起動は、パイプラインステージ起動パラメータ（ＰＩＰＥＫＩＣＫ）にセットされた要素「＿Ｓ１｜＿Ｓ２」にしたがって、第１ステージ（Ｓ１）の可変長復号処理Ｐ１１と第２ステージ（Ｓ２）の逆量子化処理Ｐ１２の両パイプライン処理ステージが並列に起動される。
【００９９】
ステップＳ２３では、並列に起動された可変長復号処理Ｐ１１と逆量子化処理Ｐ１２の処理終了を待つ。
【０１００】
次に、ステップＳ２４において、パイプライン処理が中断処理中がどうかの判定処理として、
ＯＦＦＳＥＴ３！＝−３２７６８？
の判定を行う。ここで、
ＯＦＦＳＥＴ３＝−３２７６８
であるから、ステップＳ２４での判定結果は、「Ｎｏ」（中断処理中）となり、ステップＳ２５に進む。
【０１０１】
ステップＳ２５では、
ＭＢＡ＋＋
の演算を行い、
ＭＢＡ＝２
となる。
【０１０２】
次に、ステップＳ２６において、ヘッダ有りかどうかの判定処理が行われ、ここでは、「Ｙｅｓ」（ヘッダ有り）と判定され、ステップＳ２７に進む。
【０１０３】
ステップＳ２７では、マクロブロック処理中フラグ（ＭＢ＿ＰＲＯＣ）のリセット処理として、
ＭＢ＿ＰＲＯＣ＝０
の設定を行い、ステップＳ２８において、ヘッダ処理を行い、ステップＳ１６（図４）へ戻り、次の期間の処理を行う。
【０１０４】
以上で、期間ＴＭ１、ＴＶ０の処理が終了する。
【０１０５】
（期間ＴＭ２）
この期間の処理は、図４のステップＳ１６から始まる。
【０１０６】
この期間の初めにおいて、主要なパラメータは以下のように設定されている。
ＭＢＡ＝２、
ＰＩＰＥ＿ＥＮＤ＝０、
ＭＢ＿ＰＲＯＣ＝１、
ＯＦＦＳＥＴ１＝２、
ＯＦＦＳＥＴ２＝０、
ＯＦＦＳＥＴ３＝−３２７６８。
【０１０７】
ステップＳ１６において、マクロブロック処理中フラグ（ＭＢ＿ＰＲＯＣ）の初期化として、
ＭＢ＿ＰＲＯＣ＝１
の設定を行う。
【０１０８】
ステップＳ１７において、パイプライン処理は先頭の処理かを判定する。パイプライン処理が先頭の処理かどうかの判定は、
ＯＦＦＳＥＴ１＝＝０？
の判定によって行う。ここでは、
ＯＦＦＳＥＴ１＝２
であり、ステップＳ１７での判定結果は、「Ｎｏ」となり、ステップＳ１８に進む。
【０１０９】
ステップＳ１８において、パイプライン処理は中断開始かどうかの判定として、
ＰＩＰＥ＿ＥＮＤ！＝０？
の判定を行う。ここでは、
ＰＩＰＥ＿ＥＮＤ＝０
であり、ステップＳ１８での判定結果は、「Ｎｏ」（中断開始ではない）となり、ステップＳ２１（図５）に進む。
【０１１０】
次に、ステップＳ２１において起動ステージ決定手段２２が起動される。このとき、
ＯＦＦＳＥＴ１＝２、
ＯＦＦＳＥＴ２＝０、
ＯＦＦＳＥＴ３＝−３２７６８
が、パイプライン制御手段２１から起動ステージ決定手段２２へ渡され、図８に示すパイプライン起動ステージ決定処理が行われる。
【０１１１】
図８のステップＳ６１では、パイプライン立上げ中かどうかの判定処理として、
ＯＦＦＳＥＴ１＜２？
の判定が行われる。ここでは、
ＯＦＦＳＥＴ１＝２
であり、ステップＳ６１での判定結果は、「Ｎｏ」（立上げ中ではない）となり、ステップＳ６４に進む。
【０１１２】
ステップＳ６４では、パイプライン処理が中断処理中かどうかの判定処理として、
ＯＦＦＳＥＴ３＞＝０？
の判定を行う。ここでは、
ＯＦＦＳＥＴ３＝−３２７６８
であり、ステップＳ６４での判定結果は、「Ｎｏ」（パイプライン処理は、中断処理中ではない）となり、ステップＳ６７に進む。
【０１１３】
ステップＳ６７において、全パイプラインステージを起動するために、パイプラインステージ起動パラメータ（ＰＩＰＥＫＩＣＫ）に、
ＰＩＰＥＫＩＣＫ＝＿Ｓ１｜＿Ｓ２｜＿Ｓ３
の設定をする。この要素「＿Ｓ１｜＿Ｓ２｜＿Ｓ３」は、パイプラインの第１ステージである可変長復号処理Ｐ１１と、第２ステージである逆量子化処理Ｐ１２と、第３ステージである逆ＤＣＴ処理Ｐ１３とを並列に起動することを示す。
【０１１４】
ステップＳ６８において、パイプライン立上げテーブル用オフセット１に正の最大値として、
ＯＦＦＳＥＴ１＝３２７６７
を設定して、パイプライン起動ステージ決定処理を終了する。
【０１１５】
起動ステージ決定手段２２において、パイプライン起動ステージ決定処理が終了した時には、
ＯＦＦＳＥＴ１＝３２７６７、
ＯＦＦＳＥＴ２＝０、
ＯＦＦＳＥＴ３＝−３２７６８、
ＰＩＰＥＫＩＣＫ＝＿Ｓ１｜＿Ｓ２｜＿Ｓ３
が返される。
【０１１６】
次に、図５に戻り、ステップＳ２２において、パイプライン処理の起動を行う。ステップＳ２２におけるパイプライン処理の起動は、パイプラインステージ起動パラメータ（ＰＩＰＥＫＩＣＫ）にセットされた要素「＿Ｓ１｜＿Ｓ２｜＿Ｓ３」にしたがって、第１ステージ（Ｓ１）の可変長復号処理Ｐ１１、第２ステージ（Ｓ２）の逆量子化処理Ｐ１２、及び、第３ステージ（Ｓ３）の逆ＤＣＴ処理Ｐ１３の全パイプライン処理ステージが並列に起動される。
【０１１７】
ステップＳ２３では、並列に起動された可変長復号処理Ｐ１１と逆量子化処理Ｐ１２と逆ＤＣＴ処理Ｐ１３の処理終了を待つ。
【０１１８】
次に、ステップＳ２４において、パイプライン処理が中断処理中がどうかの判定処理として、
ＯＦＦＳＥＴ３！＝−３２７６８？
の判定を行う。ここで、
ＯＦＦＳＥＴ３＝−３２７６８
であるから、ステップＳ２４での判定結果は、「Ｎｏ」（パイプライン処理は、中断処理中）となり、ステップＳ２５に進む。
【０１１９】
ステップＳ２５において、
ＭＢＡ＋＋
の演算を行い、
ＭＢＡ＝３
とする。
【０１２０】
次に、ステップＳ２６において、ヘッダ有りかどうかの判定処理が行われ、ここでは、「Ｎｏ」（ヘッダ無し）と判定され、ステップＳ２９に進む。
【０１２１】
ステップＳ２９において、フレーム内マクロブロック数の処理が完了したかどうかの判定処理として、
ＭＢＡ＞＝ＭＢ＿ＩＮ＿ＶＯＰ？
の判定を行う。ここでは、
ＭＢＡ＝３
ＭＢ＿ＩＮ＿ＶＯＰ＝４８
であり、ステップＳ２９での判定結果は「Ｎｏ」（処理が完了していない）となる。
【０１２２】
以上で、期間ＴＭ１、ＴＶ０の処理が終了し、ステップＳ１６へ戻り、次の期間の処理を行う。
【０１２３】
（期間ＴＭ３〜ＴＭ４６）
これらの期間の処理は、上述した期間ＴＭ２における処理と、基本的に同じであり、説明を省略する。
【０１２４】
（期間ＴＭ４７）
この期間の処理は、図４のステップＳ１６から始まる。
【０１２５】
この期間の初めにおいて、主要なパラメータは以下のように設定されている。
ＭＢＡ＝４７、
ＰＩＰＥ＿ＥＮＤ＝０、
ＭＢ＿ＰＲＯＣ＝１、
ＯＦＦＳＥＴ１＝３２７６７、
ＯＦＦＳＥＴ２＝０、
ＯＦＦＳＥＴ３＝−３２７６８。
【０１２６】
ステップＳ１６において、マクロブロック処理中フラグ（ＭＢ＿ＰＲＯＣ）の初期化として、
ＭＢ＿ＰＲＯＣ＝１
の設定を行う。
【０１２７】
ステップＳ１７において、パイプライン処理は先頭の処理かを判定する。パイプライン処理が先頭の処理かどうかの判定は、
ＯＦＦＳＥＴ１＝＝０？
の判定によって行う。ここでは、
ＯＦＦＳＥＴ１＝３２７６７
であり、ステップＳ１７での判定結果は、「Ｎｏ」（先頭の処理ではない）となり、ステップＳ１８に進む。
【０１２８】
ステップＳ１８において、パイプライン処理は中断開始かどうかの判定として、
ＰＩＰＥ＿ＥＮＤ！＝０？
の判定を行う。ここでは、
ＰＩＰＥ＿ＥＮＤ＝０
であり、ステップＳ１８での判定結果は、「Ｎｏ」（中断開始ではない）となり、ステップＳ２１（図５）に進む。
【０１２９】
次に、ステップＳ２１において起動ステージ決定手段２２が起動される。このとき、
ＯＦＦＳＥＴ１＝３２７６７、
ＯＦＦＳＥＴ２＝０、
ＯＦＦＳＥＴ３＝−３２７６８
が、パイプライン制御手段２１から起動ステージ決定手段２２へ渡され、図８に示すパイプライン起動ステージ決定処理が行われる。
【０１３０】
図８のステップＳ６１では、パイプライン立上げ中かどうかの判定処理として、
ＯＦＦＳＥＴ１＜２？
の判定が行われ、ここでは、
ＯＦＦＳＥＴ１＝３２７６７
であり、ステップＳ６１の判定結果は、「Ｎｏ」（立上げ中ではない）となり、ステップＳ６４に進む。
【０１３１】
ステップＳ６４では、パイプライン処理が中断処理中かどうかの判定処理として、
ＯＦＦＳＥＴ３＞＝０？
の判定を行う。ここでは、
ＯＦＦＳＥＴ３＝−３２７６８
であり、ステップＳ６４での判定結果は、「Ｎｏ」（パイプライン処理は、中断処理中ではない）となり、ステップＳ６７に進む。
【０１３２】
ステップＳ６７において、全パイプラインステージを起動するために、パイプラインステージ起動パラメータ（ＰＩＰＥＫＩＣＫ）に、
ＰＩＰＥＫＩＣＫ＝＿Ｓ１｜＿Ｓ２｜＿Ｓ３
の設定をする。
【０１３３】
ステップＳ６８において、パイプライン立上げテーブル用オフセット１に正の最大値として、
ＯＦＦＳＥＴ１＝３２７６７
を設定して、パイプライン起動ステージ決定処理を終了する。
【０１３４】
起動ステージ決定手段２２において、パイプライン起動ステージ決定処理が終了した時には、
ＯＦＦＳＥＴ１＝３２７６７
ＯＦＦＳＥＴ２＝０、
ＯＦＦＳＥＴ３＝−３２７６８、
ＰＩＰＥＫＩＣＫ＝＿Ｓ１｜＿Ｓ２｜＿Ｓ３
が返される。
【０１３５】
次に、図５のステップＳ２２において、パイプライン処理の起動を行う。ステップＳ２２におけるパイプライン処理の起動は、パイプラインステージ起動パラメータ（ＰＩＰＥＫＩＣＫ）にセットされた要素「＿Ｓ１｜＿Ｓ２｜＿Ｓ３」にしたがって、第１ステージ（Ｓ１）の可変長復号処理Ｐ１１、第２ステージ（Ｓ２）の逆量子化処理Ｐ１２、及び、第３ステージ（Ｓ３）の逆ＤＣＴ処理Ｐ１３の全パイプライン処理ステージが並列に起動される。
【０１３６】
ステップＳ２３では、並列に起動された可変長復号処理Ｐ１１と逆量子化処理Ｐ１２と逆ＤＣＴ処理Ｐ１３の処理終了を待つ。
【０１３７】
次に、ステップＳ２４において、パイプライン処理が中断処理中かどうかの判定処理として、
ＯＦＦＳＥＴ３！＝−３２７６８？
の判定を行う。ここで、
ＯＦＦＳＥＴ３＝−３２７６８
であるから、ステップＳ２４での判定結果は、「Ｎｏ」（パイプライン処理は中断処理中）となり、ステップＳ２５に進む。
【０１３８】
ステップＳ２５において、
ＭＢＡ＋＋
の演算を行い、
ＭＢＡ＝４８
とする。
【０１３９】
次に、ステップＳ２６において、ヘッダ有りかどうかの判定処理が行われ、ここでは、「Ｎｏ」（ヘッダ無し）と判定され、ステップＳ２９に進む。
【０１４０】
ステップＳ２９において、フレーム内マクロブロック数の処理が完了したかの判定処理として、
ＭＢＡ＞＝ＭＢ＿ＩＮ＿ＶＯＰ？
の判定を行う。ここでは、
ＭＢＡ＝４８
ＭＢ＿ＩＮ＿ＶＯＰ＝４８
であり、ステップＳ２９での判定結果は「Ｙｅｓ」（処理が完了）となリ、ステップＳ３０に進む。
【０１４１】
ステップＳ３０では、パイプライン中断フラグセット（ＰＩＰＥ＿ＥＮＤ）の設定として
ＰＩＰＥ＿ＥＮＤ＝１
の設定をする。
【０１４２】
以上で、期間ＴＭ４７の処理が終了し、ステップＳ１６へ戻り、次の期間の処理を行う。
【０１４３】
（期間ＴＭ４８）
この期間の処理は、図４のステップＳ１６から始まる。
【０１４４】
この期間の初めにおいて、主要なパラメータは以下のように設定されている。
ＭＢＡ＝４８、
ＰＩＰＥ＿ＥＮＤ＝１、
ＭＢ＿ＰＲＯＣ＝１、
ＯＦＦＳＥＴ１＝３２７６７、
ＯＦＦＳＥＴ２＝０、
ＯＦＦＳＥＴ３＝−３２７６８。
【０１４５】
ステップＳ１６において、マクロブロック処理中フラグ（ＭＢ＿ＰＲＯＣ）の初期化として、
ＭＢ＿ＰＲＯＣ＝１
の設定を行う。
【０１４６】
ステップＳ１７において、パイプライン処理は先頭の処理かどうかの判定として、
ＯＦＦＳＥＴ１＝＝０？
の判定によって行う。ここでは、
ＯＦＦＳＥＴ１＝３２７６７
であり、ステップＳ１７での判定結果は、「Ｎｏ」（先頭の処理ではない）となり、ステップＳ１８に進む。
【０１４７】
ステップＳ１８において、パイプライン処理は中断開始かどうかの判定として、
ＰＩＰＥ＿ＥＮＤ！＝０？
の判定を行う。ここでは、
ＰＩＰＥ＿ＥＮＤ＝１
であり、ステップＳ１８での判定結果は、「Ｙｅｓ」（パイプライン処理は中断開始）となり、ステップＳ１９に進む。
【０１４８】
ステップＳ１９において、パイプライン起動テーブルオフセット決定処理が実行される。より具体的には、図６に示すパイプライン起動テーブルオフセット決定処理の前半のフローチャートと、図７に示すパイプライン起動テーブルオフセット決定処理の後半のフローチャートとに従った処理を行う。
【０１４９】
この時、
ＰＩＰＥ＿ＥＮＤ＝１、
ＭＢ＿ＰＲＯＣ＝１、
ＯＦＦＳＥＴ１＝３２７６７
が渡される。
【０１５０】
図６に示すパイプライン起動テーブルオフセット決定処理が開始されると、ステップＳ４１においてパイプライン処理の中断開始であるかどうかが判定される。すなわち、
ＰＩＰＥ＿ＥＮＤ！＝０？
の判定を行う。ここでは、
ＰＩＰＥ＿ＥＮＤ＝１
であり、ステップＳ４１での判定結果が「Ｙｅｓ］（パイプライン処理の中断開始である）となって、ステップＳ４５に進む。
【０１５１】
ステップＳ４５では、パイプライン処理がパイプラインの先頭の処理かどうかの判定処理として、
ＯＦＦＳＥＴ１＝＝０？
の判定を行う。ここでは、
ＯＦＦＳＥＴ１＝３２７６７
であり、ステップＳ４５での判定結果が「Ｎｏ」（パイプライン先頭の処理ではない）となって、ステップＳ４６に進む。
【０１５２】
ステップＳ４６では、パイプライン処理がパイプラインの２番目の処理かどうかの判定処理として、
ＯＦＦＳＥＴ１＝＝１？
の判定を行う。ここでは、
ＯＦＦＳＥＴ１＝３２７６７
であり、ステップＳ４６での判定結果が「Ｎｏ」（パイプライン２番目の処理ではない）となって、ステップＳ４９に進む。
【０１５３】
ステップＳ４９では、パイプライン中断テーブル用オフセット２の設定として、
ＯＦＦＳＥＴ２＝ＭＩＮ（ＯＦＦＳＥＴ１，１）
の演算を行う。
【０１５４】
上式において、関数ＭＩＮ（ｘ，ｙ）は、変数「ｘ」、「ｙ」のうち、値が小さい方の変数の値を関数値とすることを意味する。
【０１５５】
ここでは、
ＯＦＦＳＥＴ１＝３２７６７
であり、演算結果は、
ＯＦＦＳＥＴ２＝１
となる。
【０１５６】
続いて、ステップＳ５０では、マクロブロック処理中かどうかの判定処理として、
ＭＢ＿ＰＲＯＣ！＝０？
の判定を行う。ここでは、
ＭＢ＿ＰＲＯＣ＝１
であり、テップＳ５０での判定結果が「Ｙｅｓ」（マクロブロック処理中）となって、ステップＳ５２（図７）に進む。
【０１５７】
ステップＳ５２では、パイプライン中断テーブル用オフセット３の設定として、
ＯＦＦＳＥＴ３＝１
の設定をして、ステップＳ５３に進む。
【０１５８】
ステップＳ５３では、マクロブロック処理中かどうかの判定処理として、
ＭＢ＿ＰＲＯＣ！＝０？
の判定を行う。ここでは、
ＭＢ＿ＰＲＯＣ＝１
であり、ステップＳ５３での判定結果は、「Ｙｅｓ」（マクロブロック処理中）となって、ステップＳ５５に進む。
【０１５９】
ステップＳ５５では、パイプライン立上げテーブル用オフセット１の設定として、
ＯＦＦＳＥＴ１＝３２７６７
の設定をして、ステップＳ５６に進む。
【０１６０】
ステップＳ５６では、パイプライン中断フラグのリセット処理として、
ＰＩＰＥ＿ＥＮＤ＝０
の設定をする。
【０１６１】
以上の諸設定を終えて、パイプライン起動テーブルオフセット決定処理（図４のステップＳ１９）を終了する。この時、図１のオフセット決定手段２４によって、
ＯＦＦＳＥＴ１＝３２７６７、
ＯＦＦＳＥＴ２＝１、
ＯＦＦＳＥＴ３＝１、
ＰＩＰＥ＿ＥＮＤ＝０
が返される。
【０１６２】
次に、図４のステップＳ２０に進み、パイプライン処理の中断処理無し判定として、
ＯＦＦＳＥＴ２＝＝−３２７６８？
の判定を行う。ここでは、
ＯＦＦＳＥＴ２＝１
であり、ステップＳ２０の判定結果は、「Ｎｏ」（中断処理有り）となって、ステップＳ２１（図５）に進む。
【０１６３】
ステップＳ２１において起動ステージ決定手段２２が起動される。このとき、
ＯＦＦＳＥＴ１＝３２７６７、
ＯＦＦＳＥＴ２＝１、
ＯＦＦＳＥＴ３＝１
が渡され、図８に示すパイプライン起動ステージ決定処理が行われる。
【０１６４】
図８のステップＳ６１では、パイプライン立上げ中かどうかの判定処理として、
ＯＦＦＳＥＴ１＜２？
の判定が行われる。ここでは、
ＯＦＦＳＥＴ１＝３２７６７
であり、ステップＳ６１の判定結果は、「Ｎｏ」（パイプライン立上げ中ではない）となり、ステップＳ６４に進む。
【０１６５】
ステップＳ６４では、パイプライン処理が中断処理中かどうかの判定処理として、
ＯＦＦＳＥＴ３＞＝０？
の判定を行う。ここでは、
ＯＦＦＳＥＴ３＝１
であり、ステップＳ６４の判定結果は、「Ｙｅｓ」（パイプライン処理は、中断処理中）となり、ステップＳ６５に進む。
【０１６６】
ステップＳ６５では、パイプラインステージ起動パラメータ
ＰＩＰＥＫＩＣＫ＝ＴＡＢＬＥ２［ＯＦＦＳＥＴ２］［ＯＦＦＳＥＴ３］
の演算を行い、
ＰＩＰＥＫＩＣＫ＝＿Ｓ２｜＿Ｓ３
を取得して、ステップＳ６６に進む。
【０１６７】
ステップＳ６６では、パイプライン中断テーブル用オフセット３のデクリメント処理として、
ＯＦＦＳＥＴ３−−  （記号「−−」は、左辺の変数の値を値「１」だけ減ずることを表す。）
の演算を行い、
ＯＦＦＳＥＴ３＝０
として、パイプライン起動ステージ決定処理を終了する。この時、
ＯＦＦＳＥＴ１＝３２７６７、
ＯＦＦＳＥＴ２＝１、
ＯＦＦＳＥＴ３＝０、
ＰＩＰＥＫＩＣＫ＝＿Ｓ２｜＿Ｓ３
が返される。
【０１６８】
次に、図５のステップＳ２２に進み、パイプライン処理の起動が行なわれる。ステップＳ２２におけるパイプライン処理の起動は、ステップＳ２１で決定したパイプラインステージ起動パラメータ（ＰＩＰＥＫＩＣＫ＝＿Ｓ２｜＿Ｓ３）を用いて行い、第２ステージ（Ｓ２）の逆量子化処理Ｐ１２と第３ステージ（Ｓ３）の逆ＤＣＴ処理Ｐ１３とが並列に起動される。
【０１６９】
次に、ステップＳ２３において、逆量子化処理Ｐ１２と逆ＤＣＴ処理Ｐ１３の終了を待つ。
【０１７０】
ステップＳ２４において、パイプライン処理は中断処理中であるかどうかの判定処理として、
ＯＦＦＳＥＴ３！＝−３２７６８？
の判定を行う。ここでは、
ＯＦＦＳＥＴ３＝０
であり、ステップＳ２４での判定結果は「Ｙｅｓ」（中断処理中）となって、ステップＳ３１に進む。
【０１７１】
ステップＳ３１において、パイプライン処理の中断は終了したかどうかの判定として、
ＯＦＦＳＥＴ３＝＝−１？
の判定を行う。ここでは、
ＯＦＦＳＥＴ３＝０
であり、ステップＳ２４での判定結果は、「Ｎｏ」（終了していない）となって、期間ＴＭ４８の処理を終了し、ステップＳ１６（図４）に戻る。
【０１７２】
（期間ＴＭ４９）
この期間の処理は、図４のステップＳ１６から始まる。
【０１７３】
この期間の初めにおいて、主要なパラメータは以下のように設定されている。
ＭＢＡ＝４８、
ＰＩＰＥ＿ＥＮＤ＝０、
ＭＢ＿ＰＲＯＣ＝１、
ＯＦＦＳＥＴ１＝３２７６７、
ＯＦＦＳＥＴ２＝１、
ＯＦＦＳＥＴ３＝０。
【０１７４】
ステップＳ１６において、マクロブロック処理中フラグ（ＭＢ＿ＰＲＯＣ）の初期化として、
ＭＢ＿ＰＲＯＣ＝１
の設定を行う。
【０１７５】
ステップＳ１７において、パイプライン処理は先頭の処理かどうかの判定として、
ＯＦＦＳＥＴ１＝＝０？
の判定によって行う。ここでは、
ＯＦＦＳＥＴ１＝３２７６７
であり、ステップＳ１７での判定結果は、「Ｎｏ」（先頭の処理ではない）となり、ステップＳ１８に進む。
【０１７６】
ステップＳ１８において、パイプライン処理は中断開始かどうかの判定として、
ＰＩＰＥ＿ＥＮＤ！＝０？
の判定を行う。ここでは、
ＰＩＰＥ＿ＥＮＤ＝０
であり、ステップＳ１８での判定結果は、「Ｎｏ」（中断開始ではない）となり、ステップＳ２１（図５）に進む。
【０１７７】
ステップＳ２１において起動ステージ決定手段２２が起動される。このとき、
ＯＦＦＳＥＴ１＝３２７６７、
ＯＦＦＳＥＴ２＝１、
ＯＦＦＳＥＴ３＝０
が渡され、図８に示すパイプライン起動ステージ決定処理が行われる。
【０１７８】
図８のステップＳ６１では、パイプライン立上げ中かどうかの判定処理として、
ＯＦＦＳＥＴ１＜２？
の判定が行わる。ここでは、
ＯＦＦＳＥＴ１＝３２７６７
であり、ステップＳ６１の判定結果は、「Ｎｏ」（立上げ中ではない）となり、ステップＳ６４に進む。
【０１７９】
ステップＳ６４では、パイプライン処理が中断処理中かどうかの判定処理として、
ＯＦＦＳＥＴ３＞＝０？
の判定を行う。ここでは、
ＯＦＦＳＥＴ３＝０
であり、ステップＳ６４の判定結果は、「Ｙｅｓ」（中断処理中）となり、ステップＳ６５に進む。
【０１８０】
ステップＳ６５では、パイプラインステージ起動パラメータ
ＰＩＰＥＫＩＣＫ＝ＴＡＢＬＥ２［ＯＦＦＳＥＴ２］［ＯＦＦＳＥＴ３］
の演算を行い、
ＰＩＰＥＫＩＣＫ＝＿Ｓ３
を取得して、ステップＳ６６に進む。
【０１８１】
ステップＳ６６では、パイプライン中断テーブル用オフセット３のデクリメント処理として、
ＯＦＦＳＥＴ３−−
の演算を行い、
ＯＦＦＳＥＴ３＝−１
として、パイプライン起動ステージ決定処理を終了する。この時、
ＯＦＦＳＥＴ１＝３２７６７、
ＯＦＦＳＥＴ２＝１、
ＯＦＦＳＥＴ３＝−１、
ＰＩＰＥＫＩＣＫ＝＿Ｓ３
が返される。
【０１８２】
次に、図５のステップＳ２２に進み、パイプライン処理の起動が行なわれる。ステップＳ２２におけるパイプライン処理の起動は、ステップＳ２１で決定したパイプラインステージ起動パラメータ（ＰＩＰＥＫＩＣＫ＝＿Ｓ３）を用いて行い、第３ステージ（Ｓ３）の逆ＤＣＴ処理Ｐ１３が起動される。
【０１８３】
次に、ステップＳ２３において、逆ＤＣＴ処理Ｐ１３の終了を待つ。
【０１８４】
ステップＳ２４において、パイプライン処理は中断処理中であるかどうかの判定処理として、
ＯＦＦＳＥＴ３！＝−３２７６８？
の判定を行う。ここでは、
ＯＦＦＳＥＴ３＝−１
であり、ステップＳ２４での判定結果は「Ｙｅｓ」（中断処理中）となって、ステップＳ３１に進む。
【０１８５】
ステップＳ３１において、パイプライン処理の中断は終了したかどうかの判定として、
ＯＦＦＳＥＴ３＝＝−１？
の判定を行う。ここでは、
ＯＦＦＳＥＴ３＝−１
であり、ステップＳ３１での判定結果は、「Ｙｅｓ」（中断終了）となって、ステップＳ１３（図４）に戻る。
【０１８６】
ステップＳ１３において、フレーム内マクロブロック数の処理を完了したかどうかの判定として、
ＭＢＡ＞＝ＭＢ＿ＩＮ＿ＶＯＰ？
の判定が行われる。ここでは、
ＭＢＡ＝４８、
ＭＢ＿ＩＮ＿ＶＯＰ＝４８
であり、ステップＳ１３での判定結果は「Ｙｅｓ」（処理を完了）となり、復号処理を終了する。
【０１８７】
なお、本実施の形態において、画像復号処理における処理手段として、可変長復号処理手段１１、逆量子化処理手段１２、逆ＤＣＴ処理手段１３を設けたが、それ以外の処理手段を設けたり、複数の処理手段をまとめて一つの処理手段として構成し、その結果、パイプライン処理ステージ数が変わっても同様の効果が得られる。
【０１８８】
（実施の形態２）
図１０は、本発明の実施の形態２における画像データ処理装置２００のブロック図である。本形態の画像データ処理装置２００は、本発明の実施の形態１の画像データ処理装置１００と同様に、ＭＰＥＧ規格に代表される符号化データを、パイプライン処理により、高速に復号する。さらに、本形態の画像データ処理装置２００は、入力符号化データに符号誤りがある場合に、復号画像の表示の乱れを効率よく隠蔽する。
【０１８９】
図１０において、 図１と同様な構成要素については、同一の符号を付すことにより、説明を省略する。
【０１９０】
図１０に示す本形態の画像データ処理装置２００は、画像復号部１０、パイプライン制御部２０、メモリ３０、入出力インターフェイス４０、及び、誤り隠蔽処理手段５０を備る。
【０１９１】
画像復号部１０は、符号誤り検出手段１５を有する可変長復号処理手段１１、逆量子化処理手段１２、逆ＤＣＴ処理手段１３、及び、動き補償処理手段１４を有する。
【０１９２】
パイプライン制御部２０は、パイプライン制御手段２１、起動ステージ決定手段２２、起動テーブル記憶手段２３、及び、オフセット決定手段２４を有する。
【０１９３】
誤り隠蔽処理手段５０は、データバス８０に接続されており、制御線８１を介して、パイプライン制御部２０に接続されている。
【０１９４】
その他の構成要素の接続は、本発明の実施の形態１の画像データ処理装置１００と同様であり、説明を省略する。
【０１９５】
図１１は、本発明の実施の形態２におけるパイプライン処理のタイムチャートである。
【０１９６】
図１１に示すように、本形態のパイプライン処理は、可変長復号処理Ｐ１１、逆量子化処理Ｐ１２、及び、逆ＤＣＴ処理Ｐ１３からなる。図１１の横軸は時間の経過を示し、縦軸は、画像復号処理におけるパイプライン処理ステージ（第１ステージ（Ｓ１）＝可変長復号処理Ｐ１１、第２ステージ（Ｓ２）＝逆量子化処理Ｐ１２、及び、第３ステージ（Ｓ３）＝逆ＤＣＴ処理Ｐ１３の３ステージ）を示す。
【０１９７】
なお、可変長復号処理Ｐ１１、逆量子化処理Ｐ１２、逆ＤＣＴ処理Ｐ１３は、本発明の主張するところではないので、それらの詳細な説明を省略する。
【０１９８】
図１１に示すパイプライン処理のタイムチャートでは、期間ＴＭ２のマクロブロックＭＢ２に対する可変長復号処理Ｐ１１を実行中に、復号エラーが発生し、その後、誤り隠蔽処理を行う場合について示している。
【０１９９】
期間ＴＰ０〜ＴＶ０については、図３に示す本発明の実施の形態１におけるパイプライン処理のタイムチャートと同様であり、詳細な説明を省略する。
【０２００】
期間ＴＶ０におけるパケットヘッダ情報（ＶＰ）に対する可変長復号処理Ｐ１１が終了した後、期間ＴＭ２において、マクロブロックＭＢ２に対する可変長復号処理Ｐ１１、マクロブロックＭＢ１に対する逆量子化処理Ｐ１２、及び、マクロブロックＭＢ０に対する逆ＤＣＴ処理Ｐ１３が並列に行われる。
【０２０１】
ここで、マクロブロックＭＢ２に対する可変長復号処理Ｐ１１の途中で、可変長復号処理手段１１の符号誤り検出手段１５が可変長符号データに誤りを検出し、以降のマクロブロックＭＢ２〜ＭＢ４７に対する正常な復号処理が不可能となったと仮定している。データ誤りによる復号画像の乱れを抑えるために、この後誤り隠蔽処理を行うが、その前に、まず、パイプライン処理を実行中の全マクロブロックＭＢ０〜ＭＢ２に対して、第３ステージの逆ＤＣＴ処理Ｐ１３まで終了させる。但し、マクロブロックＭＢ２は、第１ステージでの可変長復号処理Ｐ１１の過程でデータ誤りが発生し、以降の処理が出来ない状態にあるため、その後の逆量子化処理Ｐ１２及び逆ＤＣＴ処理Ｐ１３は、実行する必要がない。
【０２０２】
よって、期間ＴＭ２において、マクロブロックＭＢ２に対する可変長復号処理Ｐ１１（ただし、エラー検出とその後の処理まで）、マクロブロックＭＢ１に対する逆量子化処理Ｐ１２、及び、マクロブロックＭＢ０に対する逆ＤＣＴ処理Ｐ１３の並列処理を終了させる。
【０２０３】
期間ＴＭ３においては、マクロブロックＭＢ１に対する逆ＤＣＴ処理Ｐ１３のみが行われる。
【０２０４】
期間ＴＭ３における処理が終了後、期間ＴＣ０において、マクロブロックＭＢ２〜ＭＢ４７に対する誤り隠蔽処理が行われる。
【０２０５】
誤り隠蔽処理の一手法として、保持しておいた過去（例えば一つ前）のフレームの復号画像による置き換えがあり、本形態の画像データ処理装置２００では、正常な復号ができないマクロブロックＭＢ２〜ＭＢ４７を、同じ位置の一つ前のフレームの復号画像で置き換えることで復号画像を完成させる。
【０２０６】
以下に、本形態の画像データ処理装置２００において、図１１に示すような復号エラーが発生した場合のパイプライン制御の方法について、本発明の実施の形態１で用いた図６〜図９、図１２、及び、図１３を参照しながら、説明する。
【０２０７】
図１２は、本発明の実施の形態２におけるパイプライン制御の前半のフローチャートであり、図１３は、本発明の実施の形態２におけるパイプライン制御の後半のフローチャートである。
【０２０８】
（期間ＴＰ０、ＴＭ０〜ＴＭ１、ＴＶ０）
本形態における期間ＴＰ０、ＴＭ０〜ＴＭ１、ＴＶ０での処理は、復号エラーの発生はないと仮定しているので、エラーフラグ初期化処理（図１２のステップＳ７８）でエラーフラグ（ＥＲＲ）が
ＥＲＲ＝０
と設定され、エラー判定処理（同じく、ステップＳ７３、ステップＳ７９）において、いずれも「Ｎｏ」と判定される。その結果、これらの期間において、実際に実行されるパイプライン制御のフローは、本発明の実施の形態１における期間ＴＰ０、ＴＭ０〜ＴＭ１、ＴＶ０でのパイプライン制御のフローと同様である。従って、説明を省略する。
【０２０９】
（期間ＴＭ２）
この期間の処理は、仮定により、パイプライン処理中に復号エラーの発生を検出するもので、図１２のステップＳ７９から始まる。
【０２１０】
この期間の初めにおいて、主要なパラメータは以下のように設定されている。
ＭＢＡ＝２、
ＰＩＰＥ＿ＥＮＤ＝０、
ＭＢ＿ＰＲＯＣ＝０、
ＯＦＦＳＥＴ１＝２、
ＯＦＦＳＥＴ２＝０、
ＯＦＦＳＥＴ３＝−３２７６８、
ＥＲＲ＝０。
【０２１１】
ステップＳ７９において、エラー有りかどうかの判定処理として、
ＥＲＲ！＝０？
の判定を行う。ここで、エラー有りかどうかの判定に使用するエラーフラグ（ＥＲＲ）は、可変長復号処理Ｐ１１の過程において、可変長復号処理手段１１の符号誤り検出手段１５によって、可変長符号データにデータ誤りが検出された場合に、
ＥＲＲ＝１
とセットされる。
【０２１２】
ここでは、エラーフラグ（ＥＲＲ）は、
ＥＲＲ＝０
であり、ステップＳ７９での判定結果は「Ｎｏ」（エラーなし）となって、ステップＳ８１に進む。
【０２１３】
ステップＳ８１では、マクロブロック処理中フラグ（ＭＢ＿ＰＲＯＣ）の初期化処理として、
ＭＢ＿ＰＲＯＣ＝１
の設定を行い、ステップＳ８２（図１３）に進む。
【０２１４】
ステップＳ８２において、パイプライン処理は先頭の処理かどうかを
ＯＦＦＳＥＴ１＝＝０？
の判定で行う。ここでは、
ＯＦＦＳＥＴ１＝２
であり、ステップＳ８２での判定結果は、「Ｎｏ」（先頭の処理ではない）となり、ステップＳ８３に進む。
【０２１５】
ステップＳ８３において、パイプライン処理は中断開始かどうかを
ＰＩＰＥ＿ＥＮＤ！＝０？
の判定で行う。ここでは、
ＰＩＰＥ＿ＥＮＤ＝０
であり、ステップＳ８３の判定結果は、「Ｎｏ」（中断開始ではない）となり、ステップＳ８６に進む。
【０２１６】
次に、ステップＳ８６においてパイプライン起動ステージ決定処理が開始される。この時、
ＯＦＦＳＥＴ１＝２、
ＯＦＦＳＥＴ２＝０、
ＯＦＦＳＥＴ３＝−３２７６８
が、図１０のパイプライン制御手段２１より、起動ステージ決定手段２２に渡される。
【０２１７】
ステップＳ８６においてパイプライン起動ステージ決定処理が開始され、図６と図７に示すフローチャートに従った処理が行われる。本形態のパイプライン起動ステージ決定処理は、本発明の実施の形態１で述べたものと同様であり、その説明を省略する。
【０２１８】
ステップＳ８６におけるパイプライン起動ステージ決定処理が終了すると、
ＯＦＦＳＥＴ１＝３２７６７
ＯＦＦＳＥＴ２＝０、
ＯＦＦＳＥＴ３＝−３２７６８、
ＰＩＰＥＫＩＣＫ＝＿Ｓ１｜＿Ｓ２｜＿Ｓ３
が返される。
【０２１９】
次に、ステップＳ８７において、パイプライン処理の起動を行う。ステップＳ８７におけるパイプライン処理の起動は、ステップＳ８６で決定したパイプラインステージ起動パラメータ（ＰＩＰＥＫＩＣＫ）にセットされた要素「＿Ｓ１｜＿Ｓ２｜＿Ｓ３」に従って、第１ステージ（Ｓ１）の可変長復号処理Ｐ１１、第２ステージ（Ｓ２）の逆量子化処理Ｐ１２、及び、第３ステージ（Ｓ３）の逆ＤＣＴ処理Ｐ１３の全パイプライン処理ステージが並列に起動される。
【０２２０】
ステップＳ８８では、並列に起動された各処理の終了を待つ。図１１に示したタイムチャートで仮定したマクロブロックＭＢ２における可変長符号データのデータ誤り発生は、このステップにおいて検出される。すなわち、このステップにおいて、図１０の可変長復号処理手段１１が実行しているマクロブロックＭＢ２に対する可変長復号処理Ｐ１１の過程において、符号誤り検出手段１５により可変長符号データにデータ誤りが検出され、エラーフラグ（ＥＲＲ）が
ＥＲＲ＝１
にセットされる。
【０２２１】
符号誤り検出手段１５により可変長符号データにデータ誤りが検出される場合として、可変長復号処理手段１１が可変長符号データの復号処理を可変長符号テーブルを参照して行っている時に、入力された可変長符号データが可変長符号テーブルに存在しないケースなどがある。
【０２２２】
ステップＳ８９において、パイプライン処理が中断処理中かどうかの判定処理として、
ＯＦＦＳＥＴ３！＝−３２７６８？
の判定を行う。ここでは、
ＯＦＦＳＥＴ３＝−３２７６８
であり、ステップＳ８９での判定結果は「Ｎｏ」（パイプライン処理は中断処理中ではない）となり、ステップＳ９１に進む。
【０２２３】
ステップＳ９１では、マクロブロックカウンタ（ＭＢＡ）のインクリメント処理として、
ＭＢＡ＋＋
の演算を行い、
ＭＢＡ＝３
として、ステップＳ９２に進む。
【０２２４】
次に、ステップＳ９２において、ヘッダ有りかどうかの判定処理が行われ、ここでは、「Ｎｏ」（ヘッダ無し）と判定され、ステップＳ９５に進む。
【０２２５】
ステップＳ９５において、フレーム内マクロブロック数の処理が完了したかどうかの判定処理として、
ＭＢＡ＞＝ＭＢ＿ＩＮ＿ＶＯＰ？
の判定を行う。ここでは、
ＭＢＡ＝３
ＭＢ＿ＩＮ＿ＶＯＰ＝４８
であり、ステップＳ９５での判定結果は「Ｎｏ」（処理が完了していない）となリ、ステップＳ７９（図１２）に戻る。以上で、期間ＴＭ２の処理が終了する。
【０２２６】
（期間ＴＭ３）
この期間の処理は、復号エラー発生後のパイプライン処理であり、ステップＳ７９から始まる。
【０２２７】
この期間の初めにおいて、主要なパラメータは以下のように設定されている。
ＭＢＡ＝３、
ＰＩＰＥ＿ＥＮＤ＝０、
ＭＢ＿ＰＲＯＣ＝１、
ＯＦＦＳＥＴ１＝３２７６７、
ＯＦＦＳＥＴ２＝０、
ＯＦＦＳＥＴ３＝−３２７６８、
ＥＲＲ＝１。
【０２２８】
ステップＳ７９において、エラー有りかどうかの判定処理として、
ＥＲＲ！＝０？
の判定を行う。ここではエラーフラグ（ＥＲＲ）は、
ＥＲＲ＝１
であり、ステップＳ７９における判定結果は、「Ｙｅｓ」（エラー有り）となって、ステップＳ８０に進む。
【０２２９】
ステップＳ８０において、パイプライン中断フラグ（ＰＩＰＥ＿ＥＮＤ）の設定として、
ＰＩＰＥ＿ＥＮＤ＝１
の設定を行い、ステップＳ８２（図１３）に進む。
【０２３０】
ステップＳ８２において、パイプライン処理は先頭の処理かどうかを
ＯＦＦＳＥＴ１＝＝０？
の判定で行う。ここでは、
ＯＦＦＳＥＴ１＝３２７６７
であり、ステップＳ８２での判定結果は、「Ｎｏ」（先頭の処理ではない）となり、ステップＳ８３に進む。
【０２３１】
ステップＳ８３において、パイプライン処理は中断開始かどうかを
ＰＩＰＥ＿ＥＮＤ！＝０？
の判定で行う。ここでは、
ＰＩＰＥ＿ＥＮＤ＝１
であり、ステップＳ８３の判定結果は、「Ｙｅｓ」（中断開始）となり、ステップＳ８４に進む。
【０２３２】
ステップＳ８４において、
ＰＩＰＥ＿ＥＮＤ＝１、
ＭＢ＿ＰＲＯＣ＝１、
ＯＦＦＳＥＴ１＝３２７６７
が、図１０のパイプライン制御手段２１からオフセット決定手段２４に渡され、パイプライン起動テーブルオフセット決定処理が起動される。そして、図１０の起動テーブル記憶手段２３に格納されたパイプライン起動テーブル（パイプライン立上げテーブル、パイプライン中断テーブル）を参照する時のオフセット値（ＯＦＦＳＥＴ１、ＯＦＦＳＥＴ２、ＯＦＦＳＥＴ３）が決定される。
【０２３３】
パイプライン起動テーブルオフセット決定処理の結果、
ＯＦＦＳＥＴ１＝３２７６７、
ＯＦＦＳＥＴ２＝０、
ＯＦＦＳＥＴ３＝０、
ＰＩＰＥ＿ＥＮＤ＝０
がオフセット決定手段２４からパイプライン制御手段２１に返され、ステップＳ８５に進む。
【０２３４】
ステップＳ８５において、パイプライン処理の中断処理無しかどうかの判定処理として、
ＯＦＦＳＥＴ２＝＝−３２７６８？
の判定を行う。ここでは、
ＯＦＦＳＥＴ２＝０
であり、ステップＳ８５の判定結果は、「Ｎｏ」（パイプライン処理の中断処理有り）であり、ステップＳ８６に進む。
【０２３５】
ステップＳ８６において、パイプライン起動ステージ決定処理が開始される。この時、
ＯＦＦＳＥＴ１＝３２７６７、
ＯＦＦＳＥＴ２＝０、
ＯＦＦＳＥＴ３＝０
が、図１０のパイプライン制御手段２１より起動ステージ決定手段２２に渡される。パイプライン起動ステージ決定処理が終了すると、
ＯＦＦＳＥＴ１＝３２７６７、
ＯＦＦＳＥＴ２＝０、
ＯＦＦＳＥＴ３＝−１、
ＰＩＰＥＫＩＣＫ＝＿Ｓ３
が、起動ステージ決定手段２２より逆量子化処理手段１２に返される。
【０２３６】
次に、ステップＳ８７において、パイプライン処理を起動する。ここでは、パイプラインステージ起動パラメータ（ＰＩＰＥＫＩＣＫ）の要素「＿Ｓ３」に対応して、第３ステージ（Ｓ３）の逆ＤＣＴ処理Ｐ１３が起動される。
【０２３７】
ステップＳ８８において、逆ＤＣＴ処理Ｐ１３の終了を待つ。
【０２３８】
ステップＳ８９において、パイプライン処理が中断処理中かどうかの判定処理として、
ＯＦＦＳＥＴ３！＝−３２７６８？
の判定を行う。ここでは、
ＯＦＦＳＥＴ３＝−１
であり、ステップＳ８９での判定結果は「Ｙｅｓ」（パイプライン処理は中断処理中である）となり、ステップＳ９０に進む。
【０２３９】
ステップＳ９０において、パイプライン処理の中断処理が終了したかどうかの判定処理として、
ＯＦＦＳＥＴ３＝＝−１？
の判定を行う。ここでは、
ＯＦＦＳＥＴ３＝−１
であり、ステップＳ９０の判定結果は、「Ｙｅｓ」（パイプライン処理の中断終了）となり、ステップＳ７３（図１２）に進む。
【０２４０】
以上で、期間ＴＭ３の処理が終了する。
【０２４１】
（期間ＴＣ０）
この期間は、誤り隠蔽処理の期間であり、ステップＳ７３から始まる。
【０２４２】
この期間の初めにおいて、主要なパラメータは以下のように設定されている。
ＭＢＡ＝３、
ＰＩＰＥ＿ＥＮＤ＝０、
ＭＢ＿ＰＲＯＣ＝１、
ＯＦＦＳＥＴ１＝３２７６７、
ＯＦＦＳＥＴ２＝０、
ＯＦＦＳＥＴ３＝−１、
ＥＲＲ＝１。
【０２４３】
ステップＳ７３において、エラー有りかどうかの判定処理として、
ＥＲＲ！＝０？
の判定を行う。ここでは、
ＥＲＲ＝１
であり、ステップＳ７３の判定結果は、「Ｙｅｓ」（エラー有り）となって、ステップＳ７４に進む。
【０２４４】
ステップＳ７４において、誤り隠蔽処理が開始され、図１０の誤り隠蔽処理手段５０が起動される。この時、パイプライン制御手段２１より誤り隠蔽処理手段５０へ、
ＭＢＡ＝３、
ＭＢ＿ＩＮ＿ＶＯＰ＝４８
が渡される。
【０２４５】
以下に、図１４を参照して、本形態の誤り隠蔽処理について述べる。
【０２４６】
図１４は、本発明の実施の形態２における誤り隠蔽処理のフローチャートである。
【０２４７】
図１２のステップＳ７４において誤り隠蔽処理が開始され、図１０の誤り隠蔽処理手段５０が起動されると、図１４の誤り隠蔽処理のフローチャートに従って誤り隠蔽処理が開始される。
【０２４８】
図１４のステップＳ９７において、マクロブロックカウンタ（ＭＢＡ）を、復号エラーが発生したマクロブロックに合わせるために、マクロブロックカウンタのデクリメント処理として、
ＭＢＡ−−
を演算する。その結果、
ＭＢＡ＝２
となる。（ＭＢＡ＝２は、復号エラーが発生したマクロブロック。）
ステップＳ９８において、誤り隠蔽処理が終了したかどうかの判定処理として、
ＭＢＡ＞＝ＭＢ＿ＩＮ＿ＶＯＰ？
の判定を行う。ここでは、
ＭＢＡ＝２
であり、ステップＳ９８の判定結果は、「Ｎｏ」（誤り隠蔽処理は終了していない）となって、ステップＳ９９に進む。
【０２４９】
ステップＳ９９において、図１０のメモリ３０に格納されている１つ前のフレームの復号画像における同一マクロブロック位置の復号画像を、現フレームの復号画像誤り隠蔽処理対象であるマクロブロックＭＢ２にコピーして隠蔽処理を行い、ステップＳ１００に進む。
【０２５０】
ステップＳ１００では、マクロブロックカウンタ（ＭＢＡ）のインクリメント処理として、
ＭＢＡ＋＋
を実行し、
ＭＢＡ＝３
とする。そして、ステップＳ９８に戻る。
【０２５１】
以下、ステップＳ９８からステップＳ１００まで、マクロブロックカウンタ（ＭＢＡ）が
ＭＢＡ＝４８
になるまで、繰り返される。
【０２５２】
次に、ステップＳ９８において、誤り隠蔽処理が終了したかどうかの判定処理として、
ＭＢＡ＞＝ＭＢ＿ＩＮ＿ＶＯＰ？
の判定を行う。ここでは、
ＭＢＡ＝４８
であり、ステップＳ９８の判定結果は、「Ｙｅｓ」（誤り隠蔽処理は終了）となって、誤り隠蔽処理を終了する。以上の処理で、復号エラーが発生したマクロブロック（ＭＢ２）から最後のマクロブロック（ＭＢ４７）までの誤り隠蔽処理が終了する。この時、誤り隠蔽処理手段５０よりパイプライン制御手段２１へ、
ＭＢＡ＝４８、
ＭＢ＿ＩＮ＿ＶＯＰ＝４８
が返される。
【０２５３】
続いて、図１２のステップＳ７５に進み、フレーム内マクロブロック数の処理が終了したかどうかの判定処理として、
ＭＢＡ＞＝ＭＢ＿ＩＮ＿ＶＯＰ？
の判定を行う。
が行われる。ここでは、
ＭＢＡ＝４８
ＭＢ＿ＩＮ＿ＶＯＰ＝４８
であり、ステップＳ７５の判定結果は、「Ｙｅｓ」（処理が終了）となって、誤り隠蔽処理を伴った一連の復号処理を終了する。
【０２５４】
なお、本実施の形態において、画像復号処理における処理手段として、可変長復号処理手段１１、逆量子化処理手段１２、逆ＤＣＴ処理手段１３を設けたが、それ以外の処理手段を設けたり、複数の処理手段をまとめて一つの処理手段として構成し、その結果、パイプライン処理ステージ数が変わっても同様の効果が得られる。
【０２５５】
（実施の形態３）
図１５は、本発明の実施の形態３における画像データ処理装置３００のブロック図である。本形態の画像データ処理装置３００は、パイプライン処理により、画像データを、ＭＰＥＧ規格に代表される符号化データにマクロブロック単位で高速に符号化する。
【０２５６】
図１５において、 図１と同様な構成要素については、同一の符号を付すことにより、説明を省略する。
【０２５７】
図１５に示す本形態の画像データ処理装置３００は、画像符号化部６０、パイプライン制御部２０、メモリ３０、及び、入出力インターフェイス４０を備える。
【０２５８】
画像符号化部６０は、可変長符号化処理手段６１、ＤＣＴ処理手段６２、量子化処理手段６３、動き検出処理手段６４、動き補償処理手段６５、逆量子化処理手段６６、及び、逆ＤＣＴ処理手段６７を有する。
【０２５９】
パイプライン制御部２０は、パイプライン制御手段２１、起動ステージ決定手段２２、起動テーブル記憶手段２３、及び、オフセット決定手段２４を有する。
【０２６０】
画像符号化部６０の各構成要素６１〜６７とメモリ３０と入出力インターフェイス４０とは、データバス８０に接続されている。また、画像符号化部６０の各構成要素６１〜６７は、制御線８１を介して、パイプライン制御部２１に接続されている。
【０２６１】
動き検出処理手段６４は、現フレームの入力画像データである入力画像データと、メモリ３０に格納されている前フレームの再構築画像データとを用いて、現フレームの動きベクトルを検出する。
【０２６２】
動き補償処理手段６５は、動き検出処理手段６４が検出した動きベクトルと、メモリ３０に格納されている前フレームの再構築画像データとを用いて、現フレームに対する予測画像データを生成する。
【０２６３】
ＤＣＴ処理手段６２は、動き補償処理手段６５が生成した予測画像データと、入力画像データとの差分をＤＣＴ処理して、ＤＣＴ係数を出力する。
【０２６４】
量子化処理手段６３は、ＤＣＴ処理手段６２が出力したＤＣＴ係数を量子化して、量子化ＤＣＴ係数を出力する。
【０２６５】
逆量子化処理手段６６は、量子化処理手段６３が出力した量子化ＤＣＴ係数を逆量子化して、逆量子化ＤＣＴ係数を出力する。
【０２６６】
逆ＤＣＴ処理手段６７は、逆量子化処理手段６６が出力した逆量子化ＤＣＴ係数を逆ＤＣＴ処理して、再構築画像データを得るためのＤＣＴ係数を出力する。
【０２６７】
そして、可変長符号化処理手段６１は、量子化処理手段６３が出力した量子化ＤＣＴ係数と、動き検出処理手段６４が検出した動きベクトルとを可変長符号化して、符号化データを出力する。
【０２６８】
なお、以上説明した画像符号化部６０の各構成要素６１〜６７は、本発明の主張するところではないので、更なる詳細な説明を省略する。
【０２６９】
本形態の画像データ処理装置３００では、パイプライン制御部２０が、画像符号化部６０におけるパイプライン処理による画像符号化処理の、パイプライン制御を行う。
【０２７０】
図１６は、本発明の実施の形態３におけるパイプライン処理のタイムチャートである。図１６では、画像符号化部６０が行う処理のうち、動き検出処理Ｐ２１、動き補償処理Ｐ２２、ＤＣＴ処理Ｐ２３、及び、量子化処理Ｐ２４をパイプライン処理により、並列に処理する例を示している。以下にその概略を述べる。
【０２７１】
期間ＴＭ０では、マクロブロックＭＢ０の動き検出処理Ｐ２１が行われる。
【０２７２】
期間ＴＭ１では、マクロブロックＭＢ１の動き検出処理Ｐ２１とマクロブロックＭＢ０の動き補償処理Ｐ２２とが並列に行われる。
【０２７３】
期間ＴＭ２では、マクロブロックＭＢ２の動き検出処理Ｐ２１とマクロブロックＭＢ１の動き補償処理Ｐ２２とマクロブロックＭＢ０のＤＣＴ処理Ｐ２３とが並列に行われる。
【０２７４】
期間ＴＭ３では、マクロブロックＭＢ３の動き検出処理Ｐ２１とマクロブロックＭＢ２の動き補償処理Ｐ２２とマクロブロックＭＢ１のＤＣＴ処理Ｐ２３とマクロブロックＭＢ０の量子化処理Ｐ２４とが並列に行われる。
【０２７５】
以下、期間ＴＭ４７まで同様な並列処理が繰り返される。
【０２７６】
期間ＴＭ４８では、マクロブロックＭＢ４７の動き補償処理Ｐ２２とマクロブロックＭＢ４６のＤＣＴ処理Ｐ２３とマクロブロックＭＢ４５の量子化処理Ｐ２４とが並列に行われる。
【０２７７】
期間ＴＭ４９では、マクロブロックＭＢ４７のＤＣＴ処理Ｐ２３とマクロブロックＭＢ４６の量子化処理Ｐ２４とが並列に行われる。
【０２７８】
期間ＴＭ５０では、マクロブロックＭＢ４７の量子化処理Ｐ２４が行われる。
【０２７９】
以上のパイプライン処理を、図１５のパイプライン制御部２０が制御する。
【０２８０】
起動テーブル記憶手段２３には、上述した並列処理Ｐ２１〜Ｐ２４をそれぞれ起動するためのパイプライン起動テーブル（パイプライン立上げテーブルとパイプライン中断テーブル）が用意されている。それらの構造は、図９（ａ）（ｂ）に示すテーブルの構造と類似であり、詳細な説明を割愛する。
【０２８１】
オフセット決定手段２４は、起動テーブル記憶手段２３のパイプライン立上げテーブルとパイプライン中断テーブルを参照する時のオフセット値を決定する。
【０２８２】
起動ステージ決定手段２２は、オフセット決定手段２４が決定したオフセット値を基に、パイプライン各ステージの起動方法を決定する。
【０２８３】
パイプライン制御手段２１は、起動ステージ決定手段２２が決定したパイプライン各ステージの起動方法を基に、画像符号化部６０の対応するパイプラインステージの構成要素を起動させる。
【０２８４】
本形態のパイプライン制御のフローチャートは、本発明の実施の形態１で述べたパイプライン制御のフローチャートから、容易に類推できるので、具体的記述を省略する。
【０２８５】
なお、本形態の画像データ処理装置３００では、動き検出処理Ｐ２１、動き補償処理Ｐ２２、ＤＣＴ処理Ｐ２３、及び、量子化処理Ｐ２４をパイプラインの各ステージとして並列処理する例を述べたが、並列処理する処理の内容は、その他ものであっても良い。たとえば、動き検出処理手段６４とメモリ３０とのデータ転送がかなりの時間を要するならば、そのデータ転送を並列に処理しても良い。
【０２８６】
以上説明したように、本発明の趣旨は、画像データの符号化および復号をパイプライン処理により、高速で効率的に実行できる画像データ処理装置を実現することにあるのであって、本発明の趣旨を逸脱しない限り、種々の適用が可能である。
【産業上の利用可能性】
【０２８７】
本発明に係わる画像データ処理装置は、例えば、カメラつき携帯電話等、画像処理が必要な電子装置とその応用分野において利用できる。
【図面の簡単な説明】
【０２８８】
【図１】本発明の実施の形態１における画像データ処理装置のブロック図
【図２】（ａ）本発明の実施の形態１における画像復号処理のダイヤグラム  （ｂ）本発明の実施の形態１における復号画像の画面図
【図３】本発明の実施の形態１におけるパイプライン処理のタイムチャート
【図４】本発明の実施の形態１におけるパイプライン制御の前半のフローチャート
【図５】本発明の実施の形態１におけるパイプライン制御の後半のフローチャート
【図６】本発明の実施の形態１におけるパイプライン起動テーブルオフセット決定処理の前半のフローチャート
【図７】本発明の実施の形態１におけるパイプライン起動テーブルオフセット決定処理の後半のフローチャート
【図８】本発明の実施の形態１におけるパイプライン起動ステージ決定処理のフローチャート
【図９】（ａ）本発明の実施の形態１におけるパイプライン立上げテーブルの構成図  （ｂ）本発明の実施の形態１におけるパイプライン中断テーブルの構成図
【図１０】本発明の実施の形態２における画像データ処理装置のブロック図
【図１１】本発明の実施の形態２におけるパイプライン処理のタイムチャート
【図１２】本発明の実施の形態２におけるパイプライン制御の前半のフローチャート
【図１３】本発明の実施の形態２におけるパイプライン制御の後半のフローチャート
【図１４】本発明の実施の形態２における誤り隠蔽処理のフローチャート
【図１５】本発明の実施の形態３における画像データ処理装置３００のブロック図
【図１６】本発明の実施の形態３におけるパイプライン処理のタイムチャート
【図１７】従来の画像データ処理装置のブロック図
【符号の説明】
【０２８９】
１  画像データ処理装置
２  ピクセルプロセシングユニット
３  動き予測ユニット
４  コントロールユニット
５  全体制御プロセッサ
６  可変長プロセッサ
７  フレームバッファメモリ
１０  画像復号部
１１  可変長復号処理手段
１２  逆量子化処理手段
１３  逆ＤＣＴ処理手段
１４  動き補償処理手段
１５  符号誤り検出手段
２０  パイプライン制御部
２１  パイプライン制御手段
２２  起動ステージ決定手段
２３  起動テーブル記憶手段
２４  オフセット決定手段
３０  メモリ
４０  入出力インターフェイス
５０  誤り隠蔽処理手段
６０  画像符号化部
６１  可変長符号化処理手段
６２  ＤＣＴ処理手段
６３  量子化処理手段
６４  動き検出処理手段
６５  動き補償処理手段
６６  逆量子化処理手段
６７  逆ＤＣＴ処理手段
８０  データバス
８１  制御線
９０  入出力ポート
１００、２００、３００  画像データ処理装置
４００  復号画像
４０１  マクロブロック
４２０  パイプライン立ち上げテーブル
４２１  パイプライン中断テーブル
【図１】
2006115092.tif 000003
【図２】
2006115092.tif 000004
【図３】
2006115092.tif 000005
【図４】
2006115092.tif 000006
【図５】
2006115092.tif 000007
【図６】
2006115092.tif 000008
【図７】
2006115092.tif 000009
【図８】
2006115092.tif 000010
【図９】
2006115092.tif 000011
【図１０】
2006115092.tif 000012
【図１１】
2006115092.tif 000013
【図１２】
2006115092.tif 000014
【図１３】
2006115092.tif 000015
【図１４】
2006115092.tif 000016
【図１５】
2006115092.tif 000017
【図１６】
2006115092.tif 000018
【図１７】
2006115092.tif 000019