(57)【特許請求の範囲】
【請求項１】
画像データを分割して得られるＮ個のマクロブロックまたはスライスに対して符号化処理を行う場合に、
可変長符号化処理を逐次処理する第１プロセッサと、
符号化処理及び局所復号化処理を並列に処理する複数の第２プロセッサと、
前記第１プロセッサにおいてｎ番目のマクロブロックまたはスライス（ｎは１からＮまでの整数）に対する可変長符号化処理が終了したことを条件に、前記ｎ番目のマクロブロックまたはスライスに対する局所復号化処理と、前記ｎ番目のマクロブロックまたはスライスの次に処理すべきマクロブロックまたはスライスに対する符号化処理とを、前記複数の第２プロセッサのうちの処理を実行していないいずれかの第２プロセッサに対して割り当てる割当手段と、
を有し、
前記割当手段は、前記複数の第２プロセッサのいずれかにより前記ｎ番目のマクロブロックまたはスライスに対する符号化処理が終了したことを条件に、前記ｎ番目のマクロブロックまたはスライスに対する可変長符号化処理を前記第１プロセッサに対して割り当てる
データ処理装置。
【請求項２】
画像データを分割して得られるＮ個のマクロブロックまたはスライスに対して符号化処理を行う場合に、
可変長符号化処理を逐次処理し、かつ、符号化処理及び局所復号化処理を並列に処理する複数のプロセッサと、
前記複数のプロセッサのうちのいずれかのプロセッサに対して、ｎ番目のマクロブロックまたはスライス（ｎは１からＮまでの整数）に対する符号化処理、可変長符号化処理、局所復号化処理を順次行わせる割当手段と、
を有し、
前記割当手段は、前記複数のプロセッサのうちのいずれかのプロセッサにおいて、前記ｎ番目のマクロブロックまたはスライスに対する可変長符号化処理が終了するまで、前記複数のプロセッサのうちの他のプロセッサに対して、ｎ＋１番目のマクロブロックまたはスライスに対する可変長符号化処理の開始を待機させる
データ処理装置。
【請求項３】
画像データを分割して得られるＮ個のマクロブロックまたはスライスに対して復号化処理を行う場合に、
可変長符号化処理を逐次処理し、かつ、符号化処理及び局所復号化処理を並列に処理する複数のプロセッサと、
前記複数のプロセッサのうちのいずれかのプロセッサに対して、ｎ番目のマクロブロックまたはスライス（ｎは１からＮまでの整数）に対する復号化処理、可変長復号化処理を順次行わせる割当手段と、
を有し、
前記割当手段は、前記複数のプロセッサのうちのいずれかのプロセッサにおいて、前記ｎ番目のマクロブロックまたはスライスに対する可変長復号化処理が終了するまで、前記複数のプロセッサのうちの他のプロセッサに対して、ｎ＋１番目のマクロブロックまたはスライスに対する可変長復号化処理の開始を待機させる
データ処理装置。
【請求項４】
画像データを分割して得られるＮ個のマクロブロックまたはスライスに対して符号化処理を行う場合に、
ｎ番目のマクロブロックまたはスライス（ｎは１からＮまでの整数）に対する可変長符号化処理を第１プロセッサが逐次処理させるステップと、
前記第１プロセッサにおいて、ｎ番目のマクロブロックまたはスライスに対する可変長符号化処理が終了したことを条件に、前記ｎ番目のマクロブロックまたはスライスに対する局所復号化処理と、前記ｎ番目のマクロブロックまたはスライスの次に処理すべきマクロブロックまたはスライスに対する符号化処理とを、複数の第２プロセッサのうちの処理を実行していないいずれかの第２プロセッサに対して並列処理させるように割り当てるステップと、
前記複数の第２プロセッサのいずれかにより前記ｎ番目のマクロブロックまたはスライスに対する符号化処理が終了したことを条件に、前記ｎ番目のマクロブロックまたはスライスに対する可変長符号化処理を前記第１プロセッサに対して割り当てるステップと、
を有するデータ処理方法。
【請求項５】
画像データを分割して得られるＮ個のマクロブロックまたはスライスに対して符号化処理を行う場合に、
ｎ番目のマクロブロックまたはスライス（ｎは１からＮまでの整数）に対する、符号化処理を並列処理させ、可変長符号化処理を逐次処理させ、局所復号化処理を並列処理させるように、複数のプロセッサのうちのいずれかのプロセッサに対して割り当てるステップと、
前記複数のプロセッサのうちのいずれかのプロセッサにおいて、前記ｎ番目のマクロブロックまたはスライスに対する可変長符号化処理が終了するまで、前記複数のプロセッサのうちの他のプロセッサに対して、ｎ＋１番目のマクロブロックまたはスライスに対する可変長符号化処理の開始を待機させるステップと、
を有するデータ処理方法。
【請求項６】
画像データを分割して得られるＮ個のマクロブロックまたはスライスに対して復号化処理を行う場合に、
ｎ番目のマクロブロックまたはスライス（ｎは１からＮまでの整数）に対する復号化処理、可変長復号化処理を、複数のプロセッサのうちのいずれかのプロセッサに順次実行させるステップと、
前記複数のプロセッサのうちのいずれかのプロセッサにおいて前記ｎ番目のマクロブロックまたはスライス（ｎは１からＮまでの整数）に対する可変長復号化処理が終了したことを条件に、当該ｎ番目のマクロブロックまたはスライスに対する復号化処理を前記複数のプロセッサのうち、処理を実行していない他のプロセッサに実行させるステップと、
前記複数のプロセッサのうちのいずれかのプロセッサにおいて、前記ｎ番目のマクロブロックまたはスライスに対する可変長復号化処理が終了するまで、前記複数のプロセッサのうちの他のプロセッサに対して、ｎ＋１番目のマクロブロックまたはスライスに対する可変長復号化処理の開始を待機させるステップと、
を有するデータ処理方法。
【請求項７】
画像データを分割して得られるＮ個のマクロブロックまたはスライスに対して符号化処理を行う処理を第１プロセッサ及び第２プロセッサを有するコンピュータに実行させるプログラムを記録した、前記コンピュータが読み取り可能な記録媒体であって、
前記第１プロセッサにおいて、ｎ番目のマクロブロックまたはスライス（ｎは１からＮまでの整数）に対する可変長符号化処理を逐次処理させる手順と、
前記第１プロセッサにおいて、ｎ番目のマクロブロックまたはスライスに対する可変長符号化処理が終了したことを条件に、前記ｎ番目のマクロブロックまたはスライスに対する局所復号化処理と、前記ｎ番目のマクロブロックまたはスライスの次に処理すべきマクロブロックまたはスライスに対する符号化処理とを、複数の前記第２プロセッサのうちの処理を実行していないいずれかの第２プロセッサに対して並列処理させるように割り当てる手順と、
前記複数の第２プロセッサのいずれかにより前記ｎ番目のマクロブロックまたはスライスに対する符号化処理が終了したことを条件に、前記ｎ番目のマクロブロックまたはスライスに対する可変長符号化処理を前記第１プロセッサに対して割り当てる手順と、
を前記コンピュータに実行させるプログラムを記録した、前記コンピュータが読み取り可能な記録媒体。
【請求項８】
画像データを分割して得られるＮ個のマクロブロックまたはスライスに対して符号化処理を行う処理を複数のプロセッサを有するコンピュータに実行させるプログラムを記録した、前記コンピュータが読み取り可能な記録媒体であって、
ｎ番目のマクロブロックまたはスライス（ｎは１からＮまでの整数）に対する、符号化処理を並列処理させ、可変長符号化処理を逐次処理させ、局所復号化処理を並列処理させるように、前記複数のプロセッサのうちのいずれかのプロセッサに順次割り当てる手順と、
前記複数のプロセッサのうちのいずれかのプロセッサにおいて、前記ｎ番目のマクロブロックまたはスライスに対する可変長符号化処理が終了するまで、前記複数のプロセッサのうちの他のプロセッサに対して、ｎ＋１番目のマクロブロックまたはスライスに対する可変長符号化処理の開始を待機させる手順と、
を前記コンピュータに実行させるプログラムを記録した、前記コンピュータが読み取り可能な記録媒体。
【請求項９】
画像データを分割して得られるＮ個のマクロブロックまたはスライスに対して復号化処理を行う処理を複数のプロセッサを有するコンピュータに実行させるプログラムを記録した、前記コンピュータが読み取り可能な記録媒体であって、
ｎ番目のマクロブロックまたはスライス（ｎは１からＮまでの整数）に対する復号化処理、可変長復号化処理を、前記複数のプロセッサのうちのいずれかのプロセッサに順次実行させる手順と、
前記複数のプロセッサのうちのいずれかのプロセッサにおいて前記ｎ番目のマクロブロックまたはスライス（ｎは１からＮまでの整数）に対する可変長復号化処理が終了したことを条件に、当該ｎ番目のマクロブロックまたはスライスに対する復号化処理を前記複数のプロセッサのうち、処理を実行していない他のプロセッサに実行させる手順と、
前記複数のプロセッサのうちのいずれかのプロセッサにおいて、前記ｎ番目のマクロブロックまたはスライスに対する可変長復号化処理が終了するまで、前記複数のプロセッサのうちの他のプロセッサに対して、ｎ＋１番目のマクロブロックまたはスライスに対する可変長復号化処理の開始を待機させる手順と、
を前記コンピュータに実行させるプログラムを記録した、前記コンピュータが読み取り可能な記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、たとえばＭＰＥＧ(Moving Picture coding Experts Groupによる高品質動画符号化方式)のような、ビデオデータやオーディオデータなどのデータを、可変長データからなるビットストリームに変換する符号化方式およびその復号化方式に関し、特に、並列処理によりその符号化および復号化を高速に行うデータ処理方法、データ処理装置及び記録媒体に関する。
【０００２】
【従来の技術】
現在、広く用いられている画像の標準的符号化および復号化方式である、ＭＰＥＧ方式（ＭＰＥＧ１およびＭＰＥＧ２）について説明する。図１４は、ＭＰＥＧにおける、画像データの構造を示す図である。図１４に示すように、ＭＰＥＧの画像データは階層構造に構成されている。各階層は、上位から順に、ビデオ・シーケンス（以降、単にシーケンスと言う）、グループ・オブ・ピクチャ（ＧＯＰ）、ピクチャ、スライス、マクロブロック、ブロックとなっている。ＭＰＥＧ符号化では、画像データはこの階層構造に基づいて順次符号化され、ビットストリームに変換される。
【０００３】
図１５に、ＭＰＥＧ符号化されたデータのビットストリームの構造を示す。図１５のビットストリームでは、各ピクチャはｊ個のスライスからなり、各スライスはｉ個のマクロブロックからなる。また、図１４に示した階層のうちブロック以外は符号化モードなどが格納されたヘッダを持つ。したがって、ビットストリームの構成をビデオ・シーケンスの先頭から列挙すると、シーケンス・ヘッダ（ＳＥＱＨ）１５１、ＧＯＰ・ヘッダ（ＧＯＰＨ）１５２、ピクチャ・ヘッダ（ＰＨ）１５３、スライス・ヘッダ（ＳＨ）１５４、マクロブロック・ヘッダ（ＭＨ）１５５、マクロブロック０の圧縮データ（ＭＢ０）１５６、マクロブロック・ヘッダ（ＭＨ）１５７、マクロブロック１の圧縮データ（ＭＢ１）１５８・・・となる。なお、ビットストリームに含まれるマクロブロックの圧縮データのサイズは可変長であり、画像の性質などによって変動する。また、ＭＰＥＧ復号化では、このビットストリームが順次復号化され、図１４の階層構造に基づいて画像が再構成される。
【０００４】
次に、ＭＰＥＧによる符号化処理および復号化処理を行うための、処理装置の構成、処理アルゴリズムおよび処理の流れについて具体的に説明する。まず、符号化処理について説明する。図１６は、ＭＰＥＧ符号化を行うための一般的な処理装置の構成を示すブロック図である。図１６に示す符号化装置１６０は、動きベクトル検出部（ＭＥ）１６１、減算器１６２、離散コサイン変換部（ＦＤＣＴ）１６３、量子化部１６４、可変長符号化部（ＶＬＣ）１６５，逆量子化部（ＩＱ）１６６、逆離散コサイン変換部（ＩＤＣＴ）１６７、加算器１６８、動き補償部（ＭＣ）１６９およびエンコード制御部１７０を有する。
【０００５】
このような構成の符号化装置１６０においては、入力された画像データの符号化モードがＰ（Predictive coded）ピクチャまたはＢ（Bidirectionally predictive coded）ピクチャの場合には、動きベクトル検出部１６１でマクロブロック単位に動き補償予測が行われ、減算器１６２で予測誤差が検出され、その予測誤差に対して、離散コサイン変換部１６３でＤＣＴを行ってＤＣＴ係数が求められる。また、符号化モードがＩ（Intra coded）ピクチャの場合には、画素値がそのまま離散コサイン変換部１６３に入力されてＤＣＴが行われ、ＤＣＴ係数が求められる。
【０００６】
求められたＤＣＴ係数が、量子化部１６４で量子化され、可変長符号化部１６５で動きベクトルや符号化モード情報とともに可変長符号化されることにより、符号化ビットストリームが生成される。また、量子化部１６４で生成された量子化データは、逆量子化部１６６で逆量子化され、逆離散コサイン変換部１６７でＩＤＣＴされて元の予測誤差に復元され、加算器１６８で参照画像に加算され、動き補償部１６９において参照画像が生成される。なお、エンコード制御部１７０は、これら符号化装置１６０の各部の動作を制御する。
【０００７】
このような符号化処理は、一般に、動きベクトル検出部１６１における動きベクトル検出処理から量子化部１６４における量子化処理までの符号化処理、ビットストリームを生成する可変長符号化部１６５、および、逆量子化部１６６における逆量子化処理から動き補償部１６９における動き補償処理までの局所復号化処理の、３つの処理部に大別される。
【０００８】
次に、このような符号化処理を行い、図１５に示したような構造の符号化ビットストリームを生成するための処理の流れについて、図１７を参照して説明する。図１７は、ＭＰＥＧ符号化を行ってビットストリームを生成する処理の流れを示すフローチャートである。符号化処理を開始したら（ステップＳ１８０）、シーケンス・ヘッダを生成し（ステップＳ１８１）、ＧＯＰ・ヘッダを生成し（ステップＳ１８２）、ピクチャ・ヘッダを生成し（ステップＳ１８３）、スライス・ヘッダを生成する（ステップＳ１８４）。
【０００９】
各階層のヘッダの生成が終了したら、マクロブロック符号化を行い（ステップＳ１８５）、マクロブロック可変長符号化を行い（ステップＳ１８６）、マクロブロック局所符号化を行う（ステップＳ１８７）。そして、スライス内の全てのマクロブロックについて符号化処理が終了したら、次のスライスの処理に移る（ステップＳ１８８）。以下同様に、１つのピクチャの全ての処理が終了したら、次のピクチャの処理に移り（ステップＳ１８９）、１ＧＯＰの全ての処理が終了したら、次のＧＯＰの処理に移る（ステップＳ１９０）。そして、これらの処理を、シーケンスが終了するまで繰り返したら（ステップＳ１８１）、処理を終了する（ステップＳ１９２）。
【００１０】
また、このような符号化処理を、たとえばＤＳＰ（デジタル・シグナル・プロセッサ）などの演算処理装置により逐次処理する場合の、タイムチャートを図１８に示す。図１８に示すように、演算処理装置においては、図１６に示したフローチャートの各処理を、各マクロブロックごとに順に行うことになる。なお、図１８において、処理ＭＢｘ−ＥＮＣは、第（ｘ＋１）番目のマクロブロックｘのデータに対する符号化処理を示し、処理ＭＢｘ−ＶＬＣは、第（ｘ＋１）番目のマクロブロックｘのデータに対する可変長符号化処理を示し、処理ＭＢｘ−ＤＥＣは、第（ｘ＋１）番目のマクロブロックｘのデータに対する局所符号化処理を示す。
【００１１】
次に、復号化処理について説明する。図１９は、ＭＥＰＧ復号化を行うための一般的な処理装置の構成を示すブロック図である。図１９に示す復号化装置２００は、可変長復号化部（ＶＬＤ）２０１、逆量子化部（ＩＱ）２０２、逆離散コサイン変換部（ＩＤＣＴ）２０３、加算器２０４、動き補償部（ＭＣ）２０５およびデコード制御部２０６を有する。
【００１２】
このような構成の復号化装置２００においては、入力された符号化データのビットストリームは、可変長復号化部２０１で復号化され、マクロブロックごとの符号化モード、動きベクトル、量子化情報および量子化ＤＣＴ係数が分離される。復号化された量子化ＤＣＴ係数は、逆量子化部２０２で逆量子化されてＤＣＴ係数に復元され、逆離散コサイン変換部２０３によりＩＤＣＴされて画素空間データに変換される。
【００１３】
そして、そのブロックが動き補償予測モードの場合には、加算器２０４で動き補償予測されたブロックデータが加算されて元のデータが復元され出力される。また、動き補償部２０５では、復号された画像に基づいて、動き補償予測を行い、加算器２０４において加算されるデータを生成しておく。なお、第１の可変長復号化部（ＶＬＤ）２０６は、これら復号化装置２００の各部の動作を制御する。
【００１４】
なお、このような復号化処理は、一般に、ビットストリームを解読する可変長復号化部２０１における可変長復号化処理と、逆量子化部２０２における逆量子化から動き補償部２０５における動き補償処理までの復号化処理の、２つの処理部に大別される。
【００１５】
次に、このような符号化処理を行い、図１５に示したような構造の符号化ビットストリームを復号するための処理の流れについて、図２０を参照して説明する。図２０は、ＭＰＥＧ復号化を行って元の画像データを生成する処理の流れを示すフローチャートである。復号化処理を開始したら（ステップＳ２１０）、シーケンス・ヘッダを復号化し（ステップＳ２１１）、ＧＯＰ・ヘッダを復号化し（ステップＳ２１２）、ピクチャ・ヘッダを復号化し（ステップＳ２１３）、スライス・ヘッダを復号化する（ステップＳ２１４）。
【００１６】
各階層のヘッダの復号化が終了したら、マクロブロック可変長復号化を行い（ステップＳ２１５）、マクロブロックの復号化処理を行う（ステップＳ２１６）。そして、スライス内の全てのマクロブロックについて復号化処理が終了したら、次のスライスの処理に移る（ステップＳ２１７）。以下同様に、１ピクチャの全ての処理が終了したら、次のピクチャの処理に移り（ステップＳ２１８）、１ＧＯＰの全ての処理が終了したら、次のＧＯＰの処理に移る（ステップＳ２１９）。そして、これらの処理を、シーケンスが終了するまで繰り返したら（ステップＳ２２０）、処理を終了する（ステップＳ２２１）。
【００１７】
また、このような復号化処理を、たとえばＤＳＰ（デジタル・シグナル・プロセッサ）などの演算処理装置により逐次処理する場合の、タイムチャートを図２１に示す。図２１に示すように、演算処理装置においては、図２０に示したフローチャートの各処理を、各スライスごとに、また、各スライス内では各マクロブロックごとに順に行うことになる。なお、図１８において、処理ＳＨ−ＶＬＤは、スライス・ヘッダ復号化処理を示し、ＭＢｘ−ＶＬＤは、第（ｘ＋１）番目のマクロブロックｘの符号化データに対する可変長復号化処理を示し、処理ＭＢｘ−ＤＥＣは、第（ｘ＋１）番目のマクロブロックｘの符号化データに対する復号化処理を示す。
【００１８】
【発明が解決しようとする課題】
ところで、このような画像などのデータの符号化および復号化を、複数の演算処理装置を有する並列処理装置により効率よく高速に行いたいという要望がある。しかしながら、これまでの並列処理装置および並列処理方法では、種々の問題があり十分に効率よく高速な処理が行えなかった。具体的には、まず、前述した符号化処理および復号化処理を並列処理により効率よく行おうとした場合、どの工程をどのように複数の演算処理装置に振り分ければよいか、決定するのが難しいという問題がある。
【００１９】
また、このような符号化処理および復号化処理においては、可変長データを処理対象としているため、この可変長符号化処理および可変長復号化処理についてはデータ処理の順番として逐次処理を行わざるを得ない。そのため、この逐次処理部分の実行時に並列処理が中断されたり、また、この逐次処理部分がネックとなって処理速度が制限されたりする場合がある。また、各演算処理装置における処理の実行時間が等しければ負荷が均等になり効率よい処理が行えるが、各工程の処理時間は異なるために、各演算処理装置の負荷は不均等になり、効率よい処理が行えないという問題も生じる。
【００２０】
また、このような並列処理方法では、たとえば前述した画像データの場合には１つのビデオセグメントであるような、１つのデータに対する処理を複数の演算処理装置で分割して行っているため、データの授受に伴う同期や通信の制御を行う必要があり、装置の構成や制御方法などが複雑になるという問題もある。さらに、各演算処理装置で行う処理が異なるため、個々の演算処理装置に対して処理プログラムを用意し、また、個々の演算処理装置に対して別個に処理の制御を行わなければならず、一層装置の構成や制御方法などが複雑になるという問題もある。
【００２１】
したがって、本発明の目的は、複数の演算処理装置を有し、たとえば画像データなどの符号化処理および復号化処理を高速に行うことができ、構成が簡単な、符号化装置および復号化装置を提供することにある。また、本発明の他の目的は、任意の構成の並列処理装置に適用可能であり、たとえば画像データなどの符号化処理および復号化処理を高速に行うことができるデータ処理方法、データ処理装置及び記録媒体を提供することにある。
【００２２】
【課題を解決するための手段】
したがって、本発明のデータ処理装置は、画像データを分割して得られるＮ個のマクロブロックまたはスライスに対して符号化処理を行う場合に、可変長符号化処理を逐次処理する第１プロセッサと、符号化処理及び局所復号化処理を並列に処理する複数の第２プロセッサと、前記第１プロセッサにおいてｎ番目のマクロブロックまたはスライス（ｎは１からＮまでの整数）に対する可変長符号化処理が終了したことを条件に、前記ｎ番目のマクロブロックまたはスライスに対する局所復号化処理と、前記ｎ番目のマクロブロックまたはスライスの次に処理すべきマクロブロックまたはスライスに対する符号化処理とを、前記複数の第２プロセッサのうちの処理を実行していないいずれかの第２プロセッサに対して割り当てる割当手段と、を有し、前記割当手段は、前記複数の第２プロセッサのいずれかにより前記ｎ番目のマクロブロックまたはスライスに対する符号化処理が終了したことを条件に、前記ｎ番目のマクロブロックまたはスライスに対する可変長符号化処理を前記第１プロセッサに対して割り当てる。
【００２３】
また、本発明のデータ処理装置は、画像データを分割して得られるＮ個のマクロブロックまたはスライスに対して符号化処理を行う場合に、可変長符号化処理を逐次処理し、かつ、符号化処理及び局所復号化処理を並列に処理する複数のプロセッサと、前記複数のプロセッサのうちのいずれかのプロセッサに対して、ｎ番目のマクロブロックまたはスライス（ｎは１からＮまでの整数）に対する符号化処理、可変長符号化処理、局所復号化処理を順次行わせる割当手段と、を有し、前記割当手段は、前記複数のプロセッサのうちのいずれかのプロセッサにおいて、前記ｎ番目のマクロブロックまたはスライスに対する可変長符号化処理が終了するまで、前記複数のプロセッサのうちの他のプロセッサに対して、ｎ＋１番目のマクロブロックまたはスライスに対する可変長符号化処理の開始を待機させる。
【００２４】
また、本発明のデータ処理装置は、画像データを分割して得られるＮ個のマクロブロックまたはスライスに対して復号化処理を行う場合に、可変長符号化処理を逐次処理し、かつ、符号化処理及び局所復号化処理を並列に処理する複数のプロセッサと、前記複数のプロセッサのうちのいずれかのプロセッサに対して、ｎ番目のマクロブロックまたはスライス（ｎは１からＮまでの整数）に対する復号化処理、可変長復号化処理を順次行わせる割当手段と、を有し、前記割当手段は、前記複数のプロセッサのうちのいずれかのプロセッサにおいて、前記ｎ番目のマクロブロックまたはスライスに対する可変長復号化処理が終了するまで、前記複数のプロセッサのうちの他のプロセッサに対して、ｎ＋１番目のマクロブロックまたはスライスに対する可変長復号化処理の開始を待機させる。
【００２５】
また、本発明のデータ処理方法は、画像データを分割して得られるＮ個のマクロブロックまたはスライスに対して符号化処理を行う場合に、ｎ番目のマクロブロックまたはスライス（ｎは１からＮまでの整数）に対する可変長符号化処理を第１プロセッサが逐次処理させるステップと、前記第１プロセッサにおいて、ｎ番目のマクロブロックまたはスライスに対する可変長符号化処理が終了したことを条件に、前記ｎ番目のマクロブロックまたはスライスに対する局所復号化処理と、前記ｎ番目のマクロブロックまたはスライスの次に処理すべきマクロブロックまたはスライスに対する符号化処理とを、複数の第２プロセッサのうちの処理を実行していないいずれかの第２プロセッサに対して並列処理させるように割り当てるステップと、前記複数の第２プロセッサのいずれかにより前記ｎ番目のマクロブロックまたはスライスに対する符号化処理が終了したことを条件に、前記ｎ番目のマクロブロックまたはスライスに対する可変長符号化処理を前記第１プロセッサに対して割り当てるステップと、を有する。
また、本発明のデータ処理方法は、画像データを分割して得られるＮ個のマクロブロックまたはスライスに対して符号化処理を行う場合に、ｎ番目のマクロブロックまたはスライス（ｎは１からＮまでの整数）に対する、符号化処理を並列処理させ、可変長符号化処理を逐次処理させ、局所復号化処理を並列処理させるように、複数のプロセッサのうちのいずれかのプロセッサに対して割り当てるステップと、前記複数のプロセッサのうちのいずれかのプロセッサにおいて、前記ｎ番目のマクロブロックまたはスライスに対する可変長符号化処理が終了するまで、前記複数のプロセッサのうちの他のプロセッサに対して、ｎ＋１番目のマクロブロックまたはスライスに対する可変長符号化処理の開始を待機させるステップと、を有する。
また、本発明のデータ処理方法は、画像データを分割して得られるＮ個のマクロブロックまたはスライスに対して復号化処理を行う場合に、ｎ番目のマクロブロックまたはスライス（ｎは１からＮまでの整数）に対する復号化処理、可変長復号化処理を、複数のプロセッサのうちのいずれかのプロセッサに順次実行させるステップと、前記複数のプロセッサのうちのいずれかのプロセッサにおいて前記ｎ番目のマクロブロックまたはスライス（ｎは１からＮまでの整数）に対する可変長復号化処理が終了したことを条件に、当該ｎ番目のマクロブロックまたはスライスに対する復号化処理を前記複数のプロセッサのうち、処理を実行していない他のプロセッサに実行させるステップと、前記複数のプロセッサのうちのいずれかのプロセッサにおいて、前記ｎ番目のマクロブロックまたはスライスに対する可変長復号化処理が終了するまで、前記複数のプロセッサのうちの他のプロセッサに対して、ｎ＋１番目のマクロブロックまたはスライスに対する可変長復号化処理の開始を待機させるステップと、を有する。
また、本発明のプログラムは、画像データを分割して得られるＮ個のマクロブロックまたはスライスに対して符号化処理を行う処理を第１プロセッサ及び第２プロセッサを有するコンピュータに実行させるプログラムを記録した、前記コンピュータが読み取り可能な記録媒体であって、前記第１プロセッサにおいて、ｎ番目のマクロブロックまたはスライス（ｎは１からＮまでの整数）に対する可変長符号化処理を逐次処理させる手順と、前記第１プロセッサにおいて、ｎ番目のマクロブロックまたはスライスに対する可変長符号化処理が終了したことを条件に、前記ｎ番目のマクロブロックまたはスライスに対する局所復号化処理と、前記ｎ番目のマクロブロックまたはスライスの次に処理すべきマクロブロックまたはスライスに対する符号化処理とを、複数の前記第２プロセッサのうちの処理を実行していないいずれかの第２プロセッサに対して並列処理させるように割り当てる手順と、前記複数の第２プロセッサのいずれかにより前記ｎ番目のマクロブロックまたはスライスに対する符号化処理が終了したことを条件に、前記ｎ番目のマクロブロックまたはスライスに対する可変長符号化処理を前記第１プロセッサに対して割り当てる手順と、を前記コンピュータに実行させるプログラムを記録した、前記コンピュータが読み取り可能な記録媒体である。
画像データを分割して得られるＮ個のマクロブロックまたはスライスに対して符号化処理を行う処理を複数のプロセッサを有するコンピュータに実行させるプログラムを記録した、前記コンピュータが読み取り可能な記録媒体であって、ｎ番目のマクロブロックまたはスライス（ｎは１からＮまでの整数）に対する、符号化処理を並列処理させ、可変長符号化処理を逐次処理させ、局所復号化処理を並列処理させるように、前記複数のプロセッサのうちのいずれかのプロセッサに順次割り当てる手順と、前記複数のプロセッサのうちのいずれかのプロセッサにおいて、前記ｎ番目のマクロブロックまたはスライスに対する可変長符号化処理が終了するまで、前記複数のプロセッサのうちの他のプロセッサに対して、ｎ＋１番目のマクロブロックまたはスライスに対する可変長符号化処理の開始を待機させる手順と、を前記コンピュータに実行させるプログラムを記録した、前記コンピュータが読み取り可能な記録媒体である。
画像データを分割して得られるＮ個のマクロブロックまたはスライスに対して復号化処理を行う処理を複数のプロセッサを有するコンピュータに実行させるプログラムを記録した、前記コンピュータが読み取り可能な記録媒体であって、ｎ番目のマクロブロックまたはスライス（ｎは１からＮまでの整数）に対する復号化処理、可変長復号化処理を、前記複数のプロセッサのうちのいずれかのプロセッサに順次実行させる手順と、前記複数のプロセッサのうちのいずれかのプロセッサにおいて前記ｎ番目のマクロブロックまたはスライス（ｎは１からＮまでの整数）に対する可変長復号化処理が終了したことを条件に、当該ｎ番目のマクロブロックまたはスライスに対する復号化処理を前記複数のプロセッサのうち、処理を実行していない他のプロセッサに実行させる手順と、前記複数のプロセッサのうちのいずれかのプロセッサにおいて、前記ｎ番目のマクロブロックまたはスライスに対する可変長復号化処理が終了するまで、前記複数のプロセッサのうちの他のプロセッサに対して、ｎ＋１番目のマクロブロックまたはスライスに対する可変長復号化処理の開始を待機させる手順と、を前記コンピュータに実行させるプログラムを記録した、前記コンピュータが読み取り可能な記録媒体である。
【００２６】
【発明の実施の形態】
本発明の実施の形態について、図１〜図１３を参照して説明する。本実施の形態においては、複数のプロセッサにより並列処理を行い、ＭＰＥＧ２により動画像の符号化および復号化を行う、画像符号化／復号化装置を例示して本発明を説明する。
【００２７】
なお、ＭＰＥＧ符号化および復号化の並列処理を行う際の処理単位としては、図１４に示した各階層のいずれか、あるいは画素が考えられるが、本実施の形態においては、マクロブロックを並列処理単位として選択した場合について説明する。マクロブロックを並列処理単位とした場合、１スライス内においては符号化処理、局所復号化処理および復号化処理は並列実行できるが、可変長符号化処理および可変長復号化処理については逐次実行する必要がある。これは、可変長符号化処理および可変長復号化処理ではマクロブロックの圧縮データが可変長であり、ビットストリーム上におけるマクロブロックの圧縮データの先頭位置が、直前のマクロブロックの可変長符号化処理または可変長復号化処理が完了するまで決定しないためである。なお、この制約は、スライスを並列処理単位にした場合も同様である。
【００２８】
第１の画像符号化／復号化装置まず、並列処理により前述したような画像の符号化および復号化を行う、これまでの画像符号化／復号化装置について説明する。図１は、その画像符号化／復号化装置の並列処理部の構成を示す概略ブロック図である。図１に示すように、画像符号化／復号化装置の並列処理部９は、ｎ個のプロセッサ２-1〜２-n、メモリ３および結合網４を有する。
【００２９】
まず、この並列処理部９の構成について説明する。ｎ個のプロセッサ２-1〜２-nは、各々独立して所定の演算処理を行うプロセッサである。各プロセッサ２-i（ｉ＝１〜ｎ）は、実行する演算処理プログラムが格納されるプログラムＲＯＭまたはプログラムＲＡＭ、演算に係わるデータなどを記憶するＲＡＭを有している。そして、プロセッサ２-iは、このプログラムＲＯＭまたはプログラムＲＡＭに予め記憶されているプログラムに従って所定の動作を行う。
【００３０】
なお、本実施の形態においてはｎ＝３、すなわち、並列処理部９は３つのｎ個のプロセッサ２-1〜２-3を有するものとする。また、以下の説明では、各プロセッサ２-1〜２-nについて、画像データの符号化および復号化に関する処理についてのみ述べるが、これと並行して、いずれか１つのプロセッサ２-i（ｉ＝１〜ｎ）において、あるいは、ｎ個のプロセッサ２-1〜２-n各々において、並列処理部９全体の動作を制御するための処理も行われる。そして、この制御動作により、各プロセッサ２-1〜２-nが協働して、また同期して、以下に説明するような動作をするものである。
【００３１】
メモリ３は、ｎ個のプロセッサ２-1〜２-nの共有メモリである。メモリ３には、処理対象の画像データや処理結果のデータが記憶され、ｎ個のプロセッサ２-1〜２-nにより適宜データの読み出しおよび書き込みが行われる。結合網４は、ｎ個のプロセッサ２-1〜２-nが協働して動作するように、また、ｎ個のプロセッサ２-1〜２-nがメモリ３を適宜参照するように、ｎ個のプロセッサ２-1〜２-nおよびメモリ３を相互に接続する接続部である。
【００３２】
次に、このような構成の並列処理部９において、前述したような動画像の符号化処理を行う場合の、各プロセッサ２-i（ｉ＝１〜３）における処理、および、並列処理部９の動作について説明する。まず、各プロセッサ２-iにおける処理について説明する。並列処理部９においては、各マクロブロックの可変長符号化処理を１つのプロセッサ（以降、このプロセッサを親プロセッサと言う。）に固定して割り当てて逐次実行させ、符号化処理および局所復号化処理をその他のプロセッサ（以降、このプロセッサを子プロセッサと言う。）に割り当てて、並列実行を行う。図１に示す並列処理部９においては、第１のプロセッサ２-1を親プロセッサ、第２および第３のプロセッサ２-2，２-3を子プロセッサとする。
【００３３】
まず、親プロセッサである第１のプロセッサ２-1は、図２のフローチャートに示すような処理を行う。すなわち、符号化処理を開始したら（ステップＳ１０）、シーケンス・ヘッダを生成し（ステップＳ１１）、ＧＯＰ・ヘッダを生成し（ステップＳ１２）、ピクチャ・ヘッダを生成し（ステップＳ１３）、スライス・ヘッダを生成する（ステップＳ１４）。スライス・ヘッダの生成が終了したら、親プロセッサは子プロセッサを起動し（ステップＳ１５）、子プロセッサにおける符号化処理の終了待ち状態に入る（ステップＳ１６）。
【００３４】
子プロセッサにおけるマクロブロックの符号化処理が終了したら（ステップＳ１６）、そのマクロブロックの可変長符号化処理を始める（ステップＳ１７）。なお、この可変長符号化処理は、前述したような制約により逐次実行しなくてはならない。したがって、たとえマクロブロック１の符号化処理の方がマクロブロック０の符号化処理よりも先に終了したとしても、プロセッサ０は必ずマクロブロック０の可変長符号化処理を先に行う。
【００３５】
親プロセッサは、スライス内の全ての処理が終了するまで、この手順を繰り返し（ステップＳ１８）、スライス内の全ての処理が終了したら、子プロセッサにおける全ての処理が終了するまで待つ（ステップＳ１９）。以下同様に、１ピクチャの全ての処理が終了したら、次のピクチャの処理に移り（ステップＳ２０）、１ＧＯＰの全てのピクチャの処理が終了したら、次のＧＯＰの処理に移る（ステップＳ２１）。そして、これらの処理を、シーケンスが終了するまで繰り返したら（ステップＳ２２）、処理を終了する（ステップＳ２３）。
【００３６】
次に、子プロセッサである第２および第３のプロセッサ２-2，２-3は、図３のフローチャートに示すような処理を行う。すなわち、親プロセッサにおけるステップＳ１５の処理で起動され符号化処理を開始したら（ステップＳ３０）、まず、処理すべきマクロブロックの番号を取得し（ステップＳ３１）、そのマクロブロックの符号化処理を行う（ステップＳ３２）。符号化処理が終了したら、親プロセッサにおける可変長符号化処理の終了を待ち（ステップＳ３３）、可変長符号化処理が終了したら、局所復号化処理を行う（ステップＳ３４）。スライス内の全ての処理が終了するまで、この手順を繰り返し（ステップＳ３５）、スライス内の全ての処理が終了したら（ステップＳ３５）、子プロセッサの処理は終了する（ステップＳ３６）。
【００３７】
なお、これらの親プロセッサおよび子プロセッサの各処理を行うプログラムは、各プロセッサ２-iに対して設けられたプログラムＲＯＭまたはプログラムＲＡＭに予め記憶しておく。そして、このプログラムに従って各プロセッサ２-iが動作することにより、実際にこれらの処理が行われる。
【００３８】
次に、動画像の符号化処理を行う場合の、並列処理部９の動作について、図４を参照して説明する。図４は、３個のプロセッサ２-1〜２-3における符号化処理の状態を示すタイムチャートである。なお、図４において、処理ＭＢｘ−ＥＮＣは、第（ｘ＋１）のマクロブロックｘに対する符号化処理（図３におけるステップＳ３２）を示し、処理ＭＢｘ−ＤＥＣは、第（ｘ＋１）のビデオセグメントｘに対する局所復号化処理（図３におけるステップＳ３４）を示し、処理ＭＢｘ−ＶＬＣは、第（ｘ＋１）のビデオセグメントｘに対する可変長符号化処理（図２における、ステップＳ１７）を示す。
【００３９】
図４に示すように、符号化処理を開始したら、まず、第２のプロセッサ２-2および第３のプロセッサ２-3においてマクロブロック０およびマクロブロック１の符号化処理ＭＢ０−ＥＮＣ，ＭＢ１−ＥＮＣが行われる。第２のプロセッサ２-2におけるマクロブロック０の符号化処理ＭＢ０−ＥＮＣが終了したら、その符号化されたデータに対して第１のプロセッサ２-1において可変長符号化処理ＭＢ０−ＶＬＣが行われる。第１のプロセッサ２-1でマクロブロック０の可変長符号化処理ＭＢ０−ＶＬＣを行っている間に、第３のプロセッサ２-3におけるマクロブロック１の符号化処理ＭＢ１−ＥＮＣは終了するので、第１のプロセッサ２-1は、引き続きマクロブロック１の符号化データに対する可変長符号化処理ＭＢ１−ＶＬＣを行う。
【００４０】
一方、第２のプロセッサ２-2においては、第１のプロセッサ２-1においてマクロブロック０に対する可変長符号化処理ＭＢ０−ＶＬＣが終了したら、そのデータに対する局所復号化処理ＭＢ０−ＤＥＣを行う。そして、この局所復号化処理ＭＢ０−ＤＥＣが終了したら、次のマクロブロック２に対する符号化処理ＭＢ２−ＥＮＣを行う。第３のプロセッサ２-3においても、同様に、第１のプロセッサ２-1においてマクロブロック１に対する可変長符号化処理ＭＢ１−ＶＬＣが終了したら、そのデータに対する局所復号化処理ＭＢ０−ＤＥＣを行う。そして、この局所復号化処理ＭＢ０−ＤＥＣが終了したら、次のマクロブロック３に対する符号化処理ＭＢ３−ＥＮＣを行う。
【００４１】
以下、同様に、第１のプロセッサ２-1においては、第２のプロセッサ２-2または第３のプロセッサ２-3において、次に処理すべきマクロブロックの符号化処理ＭＢｘ−ＥＮＣが終了したら、その符号化されたデータの復号化処理ＭＢｘ−ＶＬＣを順に行う。また、第２のプロセッサ２-2および第３のプロセッサ２-3においては、第１のプロセッサ２-1において可変長符号化処理ＭＢｘ−ＶＬＣが終了したら、そのマクロブロックに対する局所符号化処理ＭＢｘ−ＤＥＣを行い、その処理終了後、引き続き、次のマクロブロックｘ＋１に対する符号化処理ＭＢｘ−ＥＮＣを行う。
【００４２】
なお、可変長符号化処理は、テーブル変換により固定長データから可変長データを生成するフェーズと可変長データをまとめてビットストリームを生成するフェーズとに分けることができる。この２つのフェーズとも逐次実行してもよいし、後半フェーズだけ逐次実行して前半フェーズは並列実行しても構わない。ただし、後者の方式では前半フェーズと後半フェ−ズ間にバッファメモリが必要となる。
【００４３】
次に、並列処理部９において、前述したような動画像の復号化処理を行う場合の、各プロセッサ２-i（ｉ＝１〜３）における処理、および、並列処理部９の動作について説明する。まず、各プロセッサ２-iにおける処理について説明する。並列処理部９においては、各マクロブロックの可変長復号化処理を１つのプロセッサ（以降、このプロセッサを親プロセッサと言う。）に固定して割り当てて逐次実行させ、復号化処理をその他のプロセッサ（以降、このプロセッサを子プロセッサと言う。）に割り当てて、並列実行を行う。図１に示す並列処理部９においては、第１のプロセッサ２-1を親プロセッサ、第２および第３のプロセッサ２-2，２-3を子プロセッサとする。
【００４４】
まず、親プロセッサである第１のプロセッサ２-1は、図５のフローチャートに示すような処理を行う。すなわち、復号化処理を開始したら（ステップＳ４０）、シーケンス・ヘッダを復号化し（ステップＳ４１）、ＧＯＰ・ヘッダを復号化し（ステップＳ４２）、ピクチャ・ヘッダを復号化し（ステップＳ４３）、スライス・ヘッダを復号化する（ステップＳ４４）。スライス・ヘッダの復号化が終了したら、親プロセッサは子プロセッサを起動し（ステップＳ４５）、マクロブロックに対して可変長復号化処理を行う（ステップＳ４６）。親プロセッサは、スライス内の全てのマクロブロックに対してこの処理が終了するまで、この可変長復号化処理（ステップＳ４６）を繰り返し行う。
【００４５】
スライス内の全てのマクロブロックに対する可変長復号化処理が終了したら、子プロセッサにおける全ての処理が終了するまで待ち（ステップＳ４８）、子プロセッサにおける処理が終了したら（ステップＳ４８）、次のピクチャに対する処理に移る（ステップＳ４９）。１ＧＯＰの全てのピクチャの処理が終了したら（ステップＳ４９）、次のＧＯＰの処理に移り（ステップＳ５０）、全てのＧＯＰの処理が終了したら（ステップＳ５０）、次のシーケンスの処理に移る（ステップＳ５１）。そして、これらの処理を、全てのシーケンスが終了するまで繰り返したら（ステップＳ５１）、処理を終了する（ステップＳ５２）。
【００４６】
次に、子プロセッサである第２および第３のプロセッサ２-2，２-3は、図６のフローチャートに示すような処理を行う。すなわち、親プロセッサにおけるステップＳ４５の処理で起動され復号化処理を開始したら（ステップＳ６０）、まず、処理すべきマクロブロックの番号を取得し（ステップＳ６１）、親プロセッサのステップＳ４６における当該マクロブロックの可変長復号化処理の終了を待つ（ステップＳ６２）。そして、可変長復号化処理が終了したら、そのデータを用いてマクロブロックの復号化処理を行う（ステップＳ６３）。そして、スライス内の全てのマクロブロックの処理が終了するまで、この手順を繰り返し（ステップＳ６４）、スライス内の全ての処理が終了したら（ステップＳ６４）、子プロセッサの処理は終了する（ステップＳ６５）。
【００４７】
なお、これらの親プロセッサおよび子プロセッサの各処理を行うプログラムは、各プロセッサ２-iに対して設けられたプログラムＲＯＭまたはプログラムＲＡＭに予め記憶しておく。そして、このプログラムに従って各プロセッサ２-iが動作することにより、実際にこれらの処理が行われる。また、可変長復号化処理でスライスを並列処理単位とした場合、可変長復号化処理をすることなしに、ビットストリーム上の次のスライスの先頭を見つけることができる。これは、スライスの先頭に置かれるスライス・スタートコードをスキャンして探すことにより可能になる。したがって、このスキャン処理のみを逐次的に行い、可変長復号化処理を含めた他の処理を並列に行う処理方法も可能である。
【００４８】
次に、動画像の復号化処理を行う場合の、並列処理部９の動作について、図７を参照して説明する。図７は、３個のプロセッサ２-1〜２-3における復号化処理の状態を示すタイムチャートである。なお、図７において、処理ＭＢｘ−ＶＬＤは、第（ｘ＋１）のマクロブロックｘに対する可変長復号化処理（図５におけるステップＳ４６）を示し、処理ＭＢｘ−ＤＥＣは、第（ｘ＋１）のビデオセグメントｘに対する復号化処理（図６におけるステップＳ６３）を示す。
【００４９】
図７に示すように、復号化処理を開始したら、第１のプロセッサ２-1においては、マクロブロック０より、順次可変長復号化処理を行う。第２のプロセッサ２-2においては、第１のプロセッサ２-1において、マクロブロック０の可変長復号化処理が終了したら、このデータに対して復号化処理ＭＢ０−ＤＥＣを行う。また、第３のプロセッサ２-3においては、その次のマクロブロック１の可変長復号化処理が第１のプロセッサ２-1において終了したら、このデータに対して福愚押下処理ＭＢ１−ＤＥＣを行う。以後、第２のプロセッサ２-2または第３のプロセッサ２-3の、復号化処理の終了した方のプロセッサが、第１のプロセッサ２-1で可変長復号化された次のマクロブロックのデータを取り込んで、符号化処理を行う。
【００５０】
このように、第１の画像符号化／復号化装置においては、符号化処理および復号化処理の処理工程を、各々、並列処理が可能な工程と、並列処理が不可能で逐次処理が必要な可変長符号化／復号化に係わる工程に分割し、逐次処理が必要な工程は親プロセッサに振り分け、並列処理が可能な工程は子プロセッサに振り分け、符号化処理および復号化処理を行うようにしている。したがって、順次入力されるデータは、これら３個のプロセッサ２-1〜２-3で順次処理され、所望の圧縮符号化データへ、または、復元された画像データへ変換される。そして、このように、並列処理により画像の符号化処理および復号化処理を行うことにより、通常の、１つのプロセッサにより処理を行う場合に比べて高速に処理を行うことができる。
【００５１】
第２の画像符号化／復号化装置しかしながら、第１の画像符号化／復号化装置においては、逐次処理部分（可変長符号化処理および可変長復号化処理）を、特定のプロセッサ（第１のプロセッサ２-1）に固定して割り当てて逐次実行させていたため、３個のプロセッサ２-1〜２-3間で負荷が不均等になるという問題を見い出した。このような場合、逐次処理部分と並列処理部分の実行時間の比が、逐次処理部分を実行するプロセッサと並列処理部分を実行するプロセッサ台数の比に比例していれば負荷は均等になるが、そうでなければ各プロセッサの負荷が不均等になり、性能低下を引き起こす。
【００５２】
たとえば、図４に示したＭＰＥＧ符号化の並列処理においては、可変長符号化処理の負荷が比較的軽いため、特に第１のプロセッサ２-1に遊びが頻繁に生じている。これはプロセッサ台数が２台の並列計算機システムでは、さらに顕著になる。また、図７に示したＭＰＥＧ復号化の並列処理においても、可変長復号化処理の負荷が比較的軽いため、第１のプロセッサ２-1は１スライス分の可変長復号化処理が終了した時点で、第２のプロセッサ２-2および第３のプロセッサ２-3における全ての復号化処理が終了するまでの間、遊ぶことになる。
【００５３】
さらに、第１の画像符号化／復号化装置においては、各プロセッサで実行する処理が異なるため、各プロセッサを別々に制御したり、同期をとってデータの授受や通信を行う必要があり、制御が複雑化するという問題も生じている。
【００５４】
そこで、そのような問題を解決し、より一層高速に画像の符号化処理および復号化処理が行え、さらに構成や制御方法なども簡単にすることのできる、本発明に係わる画像符号化／復号化装置について、第２の画像符号化／復号化装置として説明する。
【００５５】
第２の画像符号化／復号化装置のハードウェア構成は、前述した第１の画像符号化／復号化装置と同一である。すなわち、その並列処理部１は、図１に示したような構成であり、ｎ個のプロセッサ２-1〜２-n、メモリ３および結合網４を有する。なお、これらの各構成部は、各々ハードウェア構成が第１の画像符号化／復号化装置の並列処理部９の場合と同一なので、同一の符号を用いて説明する。また、ｎ個のプロセッサ２-1〜２-n〜結合網４の機能および構成も、前述した第１の画像符号化／復号化装置の並列処理部９の場合と同じなのでその説明を省略する。また、第２の画像符号化／復号化装置の並列処理部１の場合も、プロセッサ２の個数ｎは３である。
【００５６】
このような第１の画像符号化／復号化装置の並列処理部９と同じハードウェア構成の第２の画像符号化／復号化装置の並列処理部１であるが、動画像の符号化処理および復号化処理の処理方法および各プロセッサ２-i（ｉ＝１〜３）の動作などは、第１の画像符号化／復号化装置と異なる。すなわち、３個のプロセッサ２-1〜２-3に対して設けられているプログラムＲＯＭまたはプログラムＲＡＭに記憶されるプログラムが第１の画像符号化／復号化装置の場合とは異なり、これにより第２の画像符号化／復号化装置の並列処理部１は全体として第１の画像符号化／復号化装置の並列処理部９とは異なる処理を行う。
【００５７】
そして、第２の画像符号化／復号化装置においては、前記課題を解決するために、並列処理部分のみならず逐次処理部分も各プロセッサに分担して実行させるようにしている。符号化に関して、第２の画像符号化／復号化装置の並列処理部１においては、各マクロブロックの可変長符号化処理を各プロセッサが分担して逐次的に行う。したがって、各プロセッサは、担当するマクロブロックについて、符号化処理、可変長符号化処理、局所復号化処理の全てを行う。この際、あるマクロブロックの可変長符号化処理を始める時点で、前のマクロブロックの可変長符号化処理が終了していない場合に限り、その可変長符号化処理の終了を待つ。また、復号化に関して、第２の画像符号化／復号化装置の並列処理部１においては、各マクロブロックの可変長復号化処理をも各プロセッサが分担して逐次的に行う。したがって、各プロセッサは、担当するマクロブロックについて、可変長復号化処理、復号化処理の両方を行う。この際、あるマクロブロックの可変長復号化処理が終了していない場合に限り、その可変長復号化処理の終了を待つ。
【００５８】
以下、第２の画像符号化／復号化装置の並列処理部１において、動画像の符号化処理および復号化処理を行う場合の各プロセッサ２-i（ｉ＝１〜３）における処理、および、並列処理部１の動作について説明する。
【００５９】
まず、符号化処理を行う場合の、各プロセッサ２-iにおける処理について説明する。第２の画像符号化／復号化装置の並列処理部１においては、前述した第１の画像符号化／復号化装置と同様に、１つの親プロセッサとその他のプロセッサを予め決定し、各々で異なる所定の処理を行わせる。しかしながら、この親プロセッサと子プロセッサにおける処理の違いは、親プロセッサにおいてヘッダの生成と子プロセッサの起動を行う点のみであり、実際の符号化処理に係わる符号化処理、可変長符号化処理および局所復号化処理は、親プロセッサおよび子プロセッサの両方で同様の手順により行う。すなわち、親プロセッサと子プロセッサは、一応、異なる処理手順で処理を行うものの、符号化の際の主な処理部は同一の手順で行われるものである。
【００６０】
以下、各プロセッサの処理について説明する。まず、親プロセッサである第１のプロセッサ２-1は、図８のフローチャートに示すような処理を行う。すなわち、符号化処理を開始したら（ステップＳ７０）、シーケンス・ヘッダを生成し（ステップＳ７１）、ＧＯＰ・ヘッダを生成し（ステップＳ７２）、ピクチャ・ヘッダを生成し（ステップＳ７３）、スライス・ヘッダを生成する（ステップＳ７４）。そして、スライス・ヘッダの生成が終了したら、親プロセッサは子プロセッサを起動する（ステップＳ７５）。
【００６１】
子プロセッサの起動が終了したら、親プロセッサは、子プロセッサと同様の符号化に係わる処理を行う。すなわち、まず、処理すべきマクロブロックの番号を取得し（ステップＳ７６）、そのマクロブロックの符号化処理を行う（ステップＳ７７）。次に、前のマクロブロックの可変長符号化処理が終了するのを確認して（ステップＳ７８）、可変長符号化処理を行い（ステップＳ７９）、さらに、局所復号化処理を行う（ステップＳ８０）。
【００６２】
このような手順を、スライス内の全ての処理が終了するまで繰り返し（ステップＳ８１）、スライス内の全ての処理が終了したら、子プロセッサにおける全ての処理が終了するまで待つ（ステップＳ８２）。そして、１ピクチャの全ての処理が終了したら、次のピクチャの処理に移り（ステップＳ８３）、１ＧＯＰの全てのピクチャの処理が終了したら、次のＧＯＰの処理に移る（ステップＳ８４）。そして、これらの処理を、シーケンスが終了するまで繰り返したら（ステップＳ８５）、処理を終了する（ステップＳ８６）。
【００６３】
次に、子プロセッサである第２および第３のプロセッサ２-2，２-3は、図９のフローチャートに示すような処理を行う。すなわち、親プロセッサにおけるステップＳ７５の処理で起動され符号化処理を開始したら（ステップＳ９０）、まず、処理すべきマクロブロックの番号を取得し（ステップＳ９１）、そのマクロブロックの符号化処理を行う（ステップＳ９２）。次に、前のマクロブロックの可変長符号化処理が終了するのを確認して（ステップＳ９３）、可変長符号化処理を行い（ステップＳ９４）、さらに、局所復号化処理を行う（ステップＳ９５）。このような手順を、スライス内の全ての処理が終了するまで繰り返し（ステップＳ９６）、スライス内の全ての処理が終了したら、子プロセッサにおける処理を終了する（ステップＳ９７）。
【００６４】
次に、このような処理手順で３個のプロセッサ２-1〜２-3が動作して符号化処理を行う場合の、並列処理部１の動作について、図１０を参照して説明する。図１０は、３個のプロセッサ２-1〜２-3における符号化処理の状態を示すタイムチャートである。なお、図１０における各処理を示す標記は、図４に示した標記と同一であるので説明を省略する。
【００６５】
図示のごとく、符号化処理を開始したら、３個のプロセッサ２-1〜２-3で、各々、マクロブロック０、マクロブロック１およびマクロブロック２の符号化処理ＭＢ０−ＥＮＣ，ＭＢ１−ＥＮＣ，ＭＢ２−ＥＮＣを開始する。そして、第１のプロセッサ２-1においては、符号化処理ＭＢ０−ＥＮＣが終了したら、引き続きそのマクロブロック０の可変長符号化処理ＭＢ０−ＶＬＣを行い、さらに、マクロブロック０の局所復号化処理ＭＢ０−ＤＥＣを行う。また、マクロブロック０の局所復号化処理ＭＢ０−ＤＥＣが終了したら、次のマクロブロック、すなわち、マクロブロック３に対する処理を符号化処理ＭＢ３−ＥＮＣから開始する。
【００６６】
一方、第２のプロセッサ２-2は、マクロブロック１の符号化処理ＭＢ１−ＥＮＣが終了した時点では、まだ前のマクロブロック０の可変長符号化処理ＭＢ０−ＶＬＣが第１のプロセッサ２-1で行われているので、この可変長符号化処理の終了を待ち、これが終了したらマクロブロック１の可変長符号化処理ＭＢ１−ＶＬＣを開始する。そして、その可変長符号化処理ＭＢ１−ＶＬＣが終了したら、そのマクロブロック１の局所復号化処理ＭＢ１−ＤＥＣを行う。また、そのマクロブロック１の局所復号化処理ＭＢ１−ＤＥＣが終了したら、次のマクロブロック４に対する符号化処理ＭＢ４−ＥＮＣを開始する。
【００６７】
また、第３のプロセッサ２-3においても、マクロブロック２の符号化処理ＭＢ２−ＥＮＣが終了した時点ではまだ前のマクロブロック０およびマクロブロック１の可変長符号化処理ＭＢ０−ＶＬＣおよびＭＢ１−ＶＬＣが終了していないので、これらの処理の終了を待つ。そして、マクロブロック０およびマクロブロック１の可変長符号化処理が終了したら、マクロブロック２の可変長符号化処理ＭＢ２−ＶＬＣを行う。そして、その可変長符号化処理ＭＢ２−ＶＬＣが終了したら、そのマクロブロック２の局所復号化処理ＭＢ２−ＤＥＣを行う。また、そのマクロブロック２の局所復号化処理ＭＢ２−ＤＥＣが終了したら、次のマクロブロック５に対する符号化処理ＭＢ５−ＥＮＣを開始する。
【００６８】
このようにして、各プロセッサ２-1〜２-3においては、順次処理対象のマクロブロックｘを選択して、そのマクロブロックｘに対する符号化処理ＭＢｘ−ＥＮＣ、可変長符号化処理ＭＢｘ−ＶＬＣおよび局所復号化処理ＭＢｘ−ＤＥＣを行う。このように処理を行うことで、可変長符号化処理ＭＢｘ−ＶＬＣのみは、前のマクロブロックｘ−１に対する可変長符号化処理ＭＢ（ｘ−１）−ＶＬＣが終了していない場合には処理の開始を待機させられるが、その他の箇所は全く並行して処理を行うことができる。
【００６９】
そして、その可変長符号化処理ＭＢｘ−ＶＬＣにおいても、処理の開始時こそ、図１０に示すように、各プロセッサ２-1〜２-3で同時に符号化処理が開始されるため、可変長符号化処理の開始の要求が重なり、プロセッサ２-2，２-3に遊びが生じているが、その後は、必然的に各プロセッサにおける処理工程がずれることになり、このような遊びが生じ難くなる。図１０に示す例においても、第３のプロセッサ２-3におけるマクロブロック５の可変長符号化処理ＭＢ５−ＶＬＣがわずかに待たされているのみで、その他には、全く遊びが生じていない。
【００７０】
次に、第２の画像符号化／復号化装置において復号化処理を行う場合の、各プロセッサ２-iにおける処理について説明する。復号化処理の場合も、前述した第１の画像符号化／復号化装置と同様に、１つの親プロセッサとその他のプロセッサを予め決定し、各々で異なる所定の処理を行わせる。しかしながら、この親プロセッサは、ヘッダの復号化と子プロセッサの起動を行う点のみが子プロセッサの処理と異なるものであり、実際の復号化処理に係わる可変長復号化処理および復号化処理は、親プロセッサおよび子プロセッサの両方で同様の手順により行う。すなわち、親プロセッサと子プロセッサは、一応、異なる処理手順で処理を行うものの、復号化の際の主な処理部は同一の手順で行われるものである。
【００７１】
以下、各プロセッサの処理について説明する。まず、親プロセッサである第１のプロセッサ２-1は、図１１のフローチャートに示すような処理を行う。すなわち、復号化処理を開始したら（ステップＳ１００）、シーケンス・ヘッダを復号化し（ステップＳ１０１）、ＧＯＰ・ヘッダを復号化し（ステップＳ１０２）、ピクチャ・ヘッダを復号化し（ステップＳ１０３）、スライス・ヘッダを復号化する（ステップＳ１０４）。そして、スライス・ヘッダの復号化が終了したら、親プロセッサは子プロセッサを起動する（ステップＳ１０５）。
【００７２】
子プロセッサの起動が終了したら、親プロセッサは、子プロセッサと同様の復号化に係わる処理を行う。すなわち、まず、処理すべきマクロブロックの番号を取得し（ステップＳ１０６）、前のマクロブロックの可変長復号化処理が終了していることを確認して（ステップＳ１０７）、そのマクロブロックの可変長復号化処理を行う（ステップＳ１０８）。そして、可変長復号化処理が終了したら、そのマクロブロックの復号化処理を行う（ステップＳ１０９）。
【００７３】
このような手順を、スライス内の全ての処理が終了するまで繰り返し（ステップＳ１１０）、スライス内の全ての処理が終了したら、子プロセッサにおける全ての処理が終了するまで待つ（ステップＳ１１１）。そして、１ピクチャの全ての処理が終了したら、次のピクチャの処理に移り（ステップＳ１１２）、１ＧＯＰの全てのピクチャの処理が終了したら、次のＧＯＰの処理に移る（ステップＳ１１３）。そして、これらの処理を、シーケンスが終了するまで繰り返したら（ステップＳ１１４）、処理を終了する（ステップＳ１１５）。
【００７４】
次に、子プロセッサである第２および第３のプロセッサ２-2，２-3は、図１２のフローチャートに示すような処理を行う。すなわち、親プロセッサにおけるステップＳ１０５の処理で起動され復号化処理を開始したら（ステップＳ１２０）、まず、処理すべきマクロブロックの番号を取得し（ステップＳ１２１）、前のマクロブロックの可変長復号化処理が終了していることを確認して（ステップＳ１２２）、そのマクロブロックの可変長復号化処理を行う（ステップＳ１２３）。次に、可変長復号化処理が終了したら、そのマクロブロックの復号化処理を行う（ステップＳ１２４）。このような手順を、スライス内の全ての処理が終了するまで繰り返し（ステップＳ１２５）、スライス内の全ての処理が終了したら、子プロセッサにおける処理を終了する（ステップＳ１２６）。
【００７５】
次に、このような処理手順で３個のプロセッサ２-1〜２-3が動作して復号化処理を行う場合の、並列処理部１の動作について、図１３を参照して説明する。図１３は、３個のプロセッサ２-1〜２-3における復号化処理の状態を示すタイムチャートである。なお、図１３における各処理を示す標記は、図７に示した標記と同一であるので説明を省略する。
【００７６】
図示のごとく、復号化処理を開始したら、まず、第１のプロセッサ２-1で最小のマクロブロック０の可変長復号化処理ＭＢ０−ＶＬＤを行う。第２のプロセッサ２-2は、マクロブロック１に対する処理を行うものであるが、可変長復号化処理については、マクロブロックごとに順に行う必要があるので、第１のプロセッサ２-1におけるマクロブロック０の可変長復号化処理ＭＢ０−ＶＬＤが終了するのを待って、マクロブロック１の可変長復号化処理ＭＢ１−ＶＬＤを行う。第３のプロセッサ２-3も同様に、第１のプロセッサ２-1におけるマクロブロック０に対する可変長復号化処理ＭＢ０−ＶＬＤ、および、第２のプロセッサ２-2におけるマクロブロック１に対する可変長復号化処理ＭＢ１−ＶＬＤが終了するのを待って、マクロブロック２の可変長復号化処理ＭＢ２−ＶＬＤを行う。
【００７７】
マクロブロック０に対する可変長符号化処理ＭＢ０−ＶＬＤが終了した第１のプロセッサ２-1においては、引き続きそのマクロブロック０に対する復号化処理ＭＢ０−ＤＥＣを行う。そして、その復号化処理ＭＢ０−ＤＥＣが終了したら、次のマクロブロック３に対する処理を開始する。しかし、この時に、図１３に示すように、前のマクロブロック２に対する可変長符号化処理ＭＢ２−ＶＬＤが終了していなければ、これを待って、マクロブロック３に対する可変長復号化処理ＭＢ３−ＶＬＤを開始する。
【００７８】
以後、同様に、各各プロセッサ２-1〜２-3においては、順次処理対象のマクロブロックｘを選択して、そのマクロブロックｘに対する可変長復号化処理ＭＢｘ−ＶＬＤおよび復号化処理ＭＢｘ−ＤＥＣを行う。このように処理を行うことで、可変長復号化処理ＭＢｘ−ＶＬＤは、前のマクロブロックｘ−１に対する可変長復号化処理ＭＢ（ｘ−１）−ＶＬＤが終了していない場合には処理の開始を待機させられるが、その他の箇所は全く並行して処理を行うことができる。
【００７９】
そして、その可変長復号化処理ＭＢｘ−ＶＬＤにおいても、処理の開始時こそ、図１３に示すように、各プロセッサ２-1〜２-3で同時に復号化処理が開始されるため、第２のプロセッサ２-2および第３のプロセッサ２-3が待機させられており、処理に遊びが生じているが、その後は、必然的に各プロセッサにおける処理工程がずれることになり、このような遊びが生じ難くなる。図１３に示す例においても、第１のプロセッサ２-1におけるマクロブロック３の可変長復号化処理ＭＢ３−ＶＬＤがわずかに待たされているのみで、その他には、全く遊びが生じていない。
【００８０】
このように、第２の画像符号化／復号化装置においては、ＭＰＥＧ符号化処理および復号化処理を行う際に、並列処理可能な符号化処理部分、局所復号化処理部分および復号化処理部分のみならず、逐次処理する必要のある可変長符号化処理部分および可変長復号化処理部分も、各プロセッサにおいて分散処理するようにしている。したがって、この逐次処理部分の負荷をも、各プロセッサに均等に分散することができ、図１０および図１３に示したように、第１の画像符号化／復号化装置と比較してプロセッサの遊び時間を大幅に少なくすることができる。そして、その結果、全体の符号化および復号化の処理速度を大幅に向上させることができる。なお、これはプロセッサ台数が２台の並列計算機システムでは、さらに顕著になる。
【００８１】
また、第２の画像符号化／復号化装置の並列処理部１においては、複数のプロセッサ２-1〜２-nの各々において、振り分けられた処理対象のマクロブロックについての一連の符号化処理、一連の復号化処理を一貫して行っている。そのため、各プロセッサ間の同期をとったり、データ通信などの負荷を少なくすることができる。また、その結果、処理時間の全てを符号化および復号化処理にあてることができる。結果的に、各プロセッサにおける負荷も実質的に均等になり、効率よく、また高速に符号化処理および復号化処理が行える。また、全てのプロセッサを、実質的に同一の制御、処理手順で動作させることができるので、装置構成が簡単になる。さらに本発明は、プロセッサ台数に依存しないスケーラブルな並列処理方式のため、様々な構成の並列計算機システムに適用できる。
【００８２】
なお、本発明は、本実施の形態にのみ限られるものではなく、任意好適な種々の改変が可能である。たとえば、前述した実施の形態の並列処理部において、親プロセッサは必ず１台であるが、子プロセッサの台数に制約はなく、何台でもよい。また、子プロセッサが取得するマクロブロック番号は、オペレーティング・システムが動的に決定する場合もあれば、コンパイラやハードウェアによって、静的に一意に決まっている場合もあり、任意の方法により決定してよい。
【００８３】
また、各プロセッサで実行されるプログラムは、ＲＯＭに予め記憶して画像符号化／復号化装置の並列処理部に具備されるような構成でもよいし、ハードディスク、ＣＤ−ＲＯＭなどの記憶媒体上に格納しておき、実行時にプログラムＲＡＭなどに読み込んで参照されるような構成でもよい。
【００８４】
また、本実施の形態においては、本発明に係わる処理装置として、図１に示したように、共有メモリ型の並列計算機システムを例示したが、装置構成はこれに限られるものではない。共有メモリを有しておらず、いわゆるメッセージ通信によりデータの転送などを行うメッセージ通信型並列計算機システムであってもよい。また、本実施の形態のような、各プロセッサが緊密に連結された並列計算機システムでなくとも、各々が独立した計算機装置であり、それらが任意の通信手段により接続されて協働して所望の処理を行うように構成されたようなシステムであってもよい。すなわち、計算機装置の実際の構成は、任意に決定してよい。
【００８５】
また、前述した画像符号化／復号化装置の並列処理部は、プログラムに従って所定の動作を行うプロセッサを複数有し、それらが並列に動作して所望の処理を行うような構成であったが、専用のハードウェアにより構成され並列に動作する複数の処理部を有するような構成であってもよい。たとえば、ＭＰＥＧの符号化／復号化専用回路、画像コーデック用ＤＳＰ、メディアプロセッサなどの、可変長符号化／復号化処理のための専用回路などにも適用可能である。
【００８６】
また、本実施の形態においては、符号化および復号化の際に行う変換方式としてＤＣＴを用いた。しかし、この変換方式は任意の直交変換方式を用いてよい。たとえば、高速フーリエ変換（ＦＦＴ）や離散フーリエ変換（ＤＦＴ）などのフーリエ変換、アダマール変換、Ｋ−Ｌ変換などの、任意の変換を用いてよい。また、本発明は、本実施の形態において例示した動画像の符号化処理および復号化処理についてのみ適用可能なものではない。たとえば、音声データやテキストデータの符号化および復号化など、任意のデータの符号化および復号化に適用可能である。
【００８７】
【発明の効果】
以上説明したように、本発明のデータ処理方法、データ処理装置及び記録媒体によれば、たとえば画像データなどの符号化および復号化を行う際に、複数の演算処理装置の各々に均等かつ効率よく負荷を配分することができ、また、演算処理装置間における同期をとるための通信やデータ通信を少なくすることができる。その結果、そのような符号化および復号化を高速に行うことができ、また、制御方法や装置構成などを簡単にすることができる。
【００８８】
また、本発明のデータ処理方法、データ処理装置及び記録媒体によれば、たとえば画像データなどの符号化および復号化を複数の演算処理装置を用いた並列処理により行う際に、各演算処理装置に均等かつ効率よく負荷を配分することができる。また、各演算処理装置間で同期をとるための通信やデータ通信を少なくすることができる。その結果、簡単な制御で、そのような符号化および復号化を高速に行うことができる。また、本発明のデータ処理方法、データ処理装置及び記録媒体は、その負荷の配分の方法が演算処理装置の個数などその並列処理装置の構成に依存しない、スケーラブルな方法のため、様々な構成の並列処理装置に適用することができる。
【図面の簡単な説明】
【図１】図１は、本発明に係わる画像符号化／復号化装置の並列処理部の構成を示す概略ブロック図である。
【図２】図２は、図１に示した並列処理部の親プロセッサ（第１のプロセッサ）において、これまでの並列処理方法により画像の符号化を行う場合の処理を示すフローチャートである。
【図３】図３は、図１に示した並列処理部の子プロセッサ（第２〜第ｎのプロセッサ）において、これまでの並列処理方法により画像の符号化を行う場合の処理を示すフローチャートである。
【図４】図４は、図１に示した並列処理部において、これまでの並列処理方法により画像の符号化を行う場合の、各プロセッサにおける処理の状態を示すタイムチャートである。
【図５】図５は、図１に示した並列処理部の親プロセッサ（第１のプロセッサ）において、これまでの並列処理方法により画像の復号化を行う場合の処理を示すフローチャートである。
【図６】図６は、図１に示した並列処理部の子プロセッサ（第２〜第ｎのプロセッサ）において、これまでの並列処理方法により画像の復号化を行う場合の処理を示すフローチャートである。
【図７】図７は、図１に示した並列処理部において、これまでの並列処理方法により画像の復号化を行う場合の、各プロセッサにおける処理の状態を示すタイムチャートである。
【図８】図８は、図１に示した並列処理部の親プロセッサ（第１のプロセッサ）において、本発明に係わる並列処理方法により画像の符号化を行う場合の処理を示すフローチャートである。
【図９】図９は、図１に示した並列処理部の子プロセッサ（第２〜第ｎのプロセッサ）において、本発明に係わる並列処理方法により画像の符号化を行う場合の処理を示すフローチャートである。
【図１０】図１０は、図１に示した並列処理部において、本発明に係わる並列処理方法により画像の符号化を行う場合の、各プロセッサにおける処理の状態を示すタイムチャートである。
【図１１】図１１は、図１に示した並列処理部の親プロセッサ（第１のプロセッサ）において、本発明に係わる並列処理方法により画像の復号化を行う場合の処理を示すフローチャートである。
【図１２】図１２は、図１に示した並列処理部の子プロセッサ（第２〜第ｎのプロセッサ）において、本発明に係わる並列処理方法により画像の復号化を行う場合の処理を示すフローチャートである。
【図１３】図１３は、図１に示した並列処理部において、本発明に係わる並列処理方法により画像の復号化を行う場合の、各プロセッサにおける処理の状態を示すタイムチャートである。
【図１４】図１４は、ＭＰＥＧ符号化における画像データの構造を示す図である。
【図１５】図１５は、ＭＰＥＧ符号化された画像データビットストリームの構造を示す図である。
【図１６】図１６は、ＭＰＥＧ符号化を行うための処理装置の構成を示すブロック図である。
【図１７】図１７は、ＭＰＥＧ符号化を行って図１５に示したようなビットストリームを生成する処理の流れを示すフローチャートである。
【図１８】図１８は、逐次処理によりＭＰＥＧ符号化を行う場合の処理装置の動作を示すタイムチャートである。
【図１９】図１９は、ＭＰＥＧ復号化を行うための処理装置の構成を示すブロック図である。
【図２０】図２０は、ＭＰＥＧ復号化を行って図１５に示したようなビットストリームを生成する処理の流れを示すフローチャートである。
【図２１】図２１は、逐次処理によりＭＰＥＧ復号化を行う場合の処理装置の動作を示すタイムチャートである。
【符号の説明】
１，９…画像符号化／復号化装置の並列処理部、２…プロセッサ、３…メモリ、４…結合網、１６０…符号化装置、１６１…動きベクトル検出部、１６２…減算器、１６３…離散コサイン変換部、１６４…量子化部、１６５…可変長符号化部、１６６…逆量子化部、１６７…逆離散コサイン変換部、１６８…加算器、１６９…動き補償部、１７０…エンコード制御部、２００…復号化装置、２０１…可変長復号化部、２０２…逆量子化部、２０３…逆離散コサイン変換部、２０４…加算器、２０５…動き補償部、２０６…デコード制御部
【図１】
0004427827.tif 000002
【図２】
0004427827.tif 000003
【図３】
0004427827.tif 000004
【図４】
0004427827.tif 000005
【図５】
0004427827.tif 000006
【図６】
0004427827.tif 000007
【図７】
0004427827.tif 000008
【図８】
0004427827.tif 000009
【図９】
0004427827.tif 000010
【図１０】
0004427827.tif 000011
【図１１】
0004427827.tif 000012
【図１２】
0004427827.tif 000013
【図１３】
0004427827.tif 000014
【図１４】
0004427827.tif 000015
【図１５】
0004427827.tif 000016
【図１６】
0004427827.tif 000017
【図１７】
0004427827.tif 000018
【図１８】
0004427827.tif 000019
【図１９】
0004427827.tif 000020
【図２０】
0004427827.tif 000021
【図２１】
0004427827.tif 000022