(57)【特許請求の範囲】
【請求項１】
複数の画像領域に分割された画像データの所定の画像領域のみを複数のピクチャに渡って格納する、異なる画像領域が割り当てられた複数のメモリ手段と、
復号を担当する画像領域が画像復号に必要とする参照画像領域の処理が終わった後に復号処理を始めるという処理タイミングで、複数の画像領域に分割された画像データの、所定の画像領域を複数のピクチャに渡って画像復号処理する、異なる画像領域が割り当てられた複数の画像復号手段と、
該複数の画像復号手段のおのおのが復号処理に参照する画像領域を格納した該複数のメモリ手段と該複数の画像復号手段のおのおのとを接続する接続手段と、
を備え、
該複数の画像復号手段は複数の異なるピクチャを並行して画像復号処理し、
該複数の画像復号手段に渡って処理される各々のピクチャの画像復号処理は、ピクチャ内の一方から他方に向けて順に処理されること
を特徴とする動画像復号装置。
【請求項２】
第１画像復号単位ブロックの画像復号の際に参照する、該第１画像復号単位ブロックに隣接する第２画像復号単位ブロックのデータを格納する隣接ブロックバッファをさらに備
えることを特徴とする請求項１に記載の動画像復号装置。
【請求項３】
ピクチャあるいはスライス単位で可変長復号処理を行う複数の可変長復号処理手段と、
該複数の可変長復号処理手段の復号結果データを格納する中間データバッファと、
をさらに備えることを特徴とする請求項１又は２に記載の動画像復号装置。
【請求項４】
前記接続手段は、
前記画像復号手段を、１または複数の前記メモリ手段に接続することを特徴とする請求項１に記載の動画像復号装置。
【請求項５】
複数の画像領域に分割された画像データの所定の画像領域のみを複数のピクチャに渡って格納する、異なる画像領域が割り当てられた複数のメモリ手段に接続された半導体装置であって、
復号を担当する画像領域が画像復号に必要とする参照画像領域の処理が終わった後に復号処理を始めるという処理タイミングで、複数の画像領域に分割された画像データの、所定の画像領域を複数のピクチャに渡って画像復号処理する、異なる画像領域が割り当てられた複数の画像復号手段と、
該複数の画像復号手段のおのおのが復号処理に参照する画像領域を格納した該複数のメモリ手段と該複数の画像復号手段のおのおのとを接続する接続手段と、
を備え、
該複数の画像復号手段は複数の異なるピクチャを並行して画像復号処理し、
該複数の画像復号手段に渡って処理される各々のピクチャの画像復号処理は、ピクチャ内の一方から他方に向けて順に処理されること
を特徴とする半導体装置。
【請求項６】
複数の画像領域に分割された画像データの所定の画像領域のみを複数のピクチャに渡って格納する、異なる画像領域が割り当てられた複数のメモリ手段と、
符号化を担当する画像領域が画像符号化に必要とする参照画像領域の処理が終わった後に符号化処理を始めるという処理タイミングで、複数の画像領域に分割された画像データの、所定の画像領域を複数のピクチャに渡って画像符号化処理する、異なる画像領域が割り当てられた複数の画像符号化手段と、
該複数の画像符号化手段のおのおのが符号化処理時に参照する画像領域を格納した該複数のメモリ手段と該複数の画像符号化手段のおのおのとを接続する接続手段と、
を備え、
該複数の画像符号化手段は複数の異なるピクチャを並行して画像符号化処理し、
該複数の画像符号化手段に渡って処理される各々のピクチャの画像符号化処理は、ピクチャ内の一方から他方に向けて順に処理されること
を特徴とする動画像符号化装置。
【請求項７】
画像符号化単位ブロックの画像符号化の際に参照する、該画像符号化単位ブロックに隣接するブロックデータを格納する隣接ブロックバッファをさらに備えることを特徴とする請求項６に記載の動画像符号化装置。
【請求項８】
ピクチャあるいはスライス単位で可変長符号化処理を行う複数の可変長符号化処理手段と、
該複数の可変長符号化処理手段へ入力する符号化データを格納する中間データバッファと、
をさらに備えることを特徴とする請求項６に記載の動画像符号化装置。
【請求項９】
前記接続手段は、
前記画像符号化手段からのアクセスを、１または複数のメモリ手段に振り分ける振り分け手段を備える、
ことを特徴とする請求項６に記載の動画像符号化装置。
【請求項１０】
複数の画像領域に分割された画像データの所定の画像領域のみを複数のピクチャに渡って格納する、異なる画像領域が割り当てられた複数のメモリ手段に接続された半導体装置であって、
符号化を担当する画像領域が画像符号化に必要とする参照画像領域の処理が終わった後に符号化処理を始めるという処理タイミングで、複数の画像領域に分割された画像データの、所定の画像領域を複数のピクチャに渡って画像符号化処理する、異なる画像領域が割り当てられた複数の画像符号化手段と、
該複数の画像符号化手段のおのおのが符号化処理時に参照する画像領域を格納した該複数のメモリ手段と該複数の画像符号化手段のおのおのとを接続する接続手段と、
を備え、
該複数の画像符号化手段は複数の異なるピクチャを並行して画像符号化処理し、
該複数の画像符号化手段に渡って処理される各々のピクチャの画像符号化処理は、ピクチャ内の一方から他方に向けて順に処理されること
を特徴とする半導体装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、動画像の復号装置及び符号化装置に関する。
【背景技術】
【０００２】
ハイビジョン放送、大容量光ディスクなどの普及により、HDTV(High Definition TV)画像(1920x1080画素)を扱うことが一般的になってきている。今後、更に大画面のUHDTV（Ultra High Definition TV）画像(7680x4320画素、3840x2160画素)を使用することが検討されており、MPEGのデコード・エンコード装置の更なる処理性能向上が望まれている。
【０００３】
処理性能の向上には、「動作周波数の向上」、「処理の並列化」などが考えられるが、動作周波数の向上には、プロセス技術の向上、高速動作可能な回路などが必要である。一方、処理の並列化に関しては、MPEGのデコード処理では、フレーム(ピクチャ)間の予測処理および可変長復号化処理が必要なため、符号圧縮されたビットストリームを前から順番に処理していく必要があり、単純な処理の並列化は難しく、並列化には様々な工夫が行なわれてきた。
【０００４】
従来技術の並列化手法としては、MPEG2におけるスライスなど、フレーム内でのデータの独立性を利用したスライス単位でのフレーム内での並列化を行う手法や、動きベクトル範囲を考慮して、各マクロブロック（16x16画素の領域に相当する符号化・復号の単位）のフレーム間予測で必要となる参照画領域のデコードが完了した後になるように制御して、フレーム間での並列化を行う手法、
などが提案されている。
【０００５】
図１は、スライス単位でフレーム内の並列化を行う手法の説明図である。
図１（ａ）は、画像復号処理部とメモリの画面分割と担当領域、図１（ｂ）は、動作タイミング、図１（ｃ）は、ブロック構成を示す。
【０００６】
図１の手法では、MPEG2規格において、マクロブロックライン毎にスライスヘッダと呼ばれるユニークコードが存在することを利用している。図１（ａ）に示されるように、１画面は、６８ライン（スライス）からなっており、２つの画像復号処理部を使う場合、１画面を３４スライスずつに分割して、処理を割り当てる。また、メモリも複数設ける。メモリ０〜２には、１画面を３つに分割して、格納する。
【０００７】
図１（ｂ）に示されるように、画像復号処理部０は、１画面のスライス０〜３３を担当し、画像復号処理部１は、１画面のスライス３４〜６７を担当する。これらの担当スライスは、ピクチャが変わっても変わらない。すなわち、図１（ｂ）にあるように、画像復号処理部０は、ピクチャＩ０を処理する場合、スライス０〜３３を処理するが、次のピクチャＰ３を処理する場合にも、スライス０〜３３を処理する。同様に、ピクチャＢ１、Ｂ２を処理する場合にも、スライス０〜３３を担当する。一方、画像復号処理部１は、画像復号処理部０と並列して、スライス３４〜６７を処理する。後続のピクチャＰ３、Ｂ１、Ｂ２についても同様である。画像復号処理部０のスライス０〜３３の処理と、これと並列する画像復号処理部１のスライス３４〜６７の処理は、１画面の処理時間である１／３０秒内に行われる。１画面の処理時間が１／３０秒なのは、１秒間に３０枚の画像を表示することによって、動画を表示する場合である。
【０００８】
図１（ｃ）にあるように、ビデオストリームは、ストリームバッファ１０にいったん格納され、画像復号処理部０と１によって読み出される。ストリームバッファ１０から読み
出されたデータは、画像復号処理部０と１を介してメモリ０〜２に格納される。図１（ａ）で示したように、画像復号処理部が分担処理するスライスと、メモリが分担格納するスライスが異なるので、画像復号処理部０は、メモリ０と１に、画像復号処理部１は、メモリ１と２にアクセスしなければならない。また、メモリ０〜２に格納されたデータは、処理のために画像復号処理部によって再び読み出されるので、画像復号処理部とメモリの間に双方向のアクセス経路を設ける必要がある。そのために、セレクタ１１−１〜１１−３を設けている。
【０００９】
MPEG-2とは異なり、H.264などの近年の画像圧縮規格では、フレーム内でユニークコードは必ずしも存在せず、またデコード処理において、隣接上方のマクロブロックを参照する必要がある。そのため、スライスレベル相当の並列化処理を行う技術は、H.264に代表される近年の画像圧縮規格には適用できない。
フレーム間予測の依存関係を守るように制御し、フレーム間での並列化を行う手法は、H.264を含めた近年の画像圧縮規格にも使用可能であるが、UHDTV画像などの大画面に適用しようとした場合、次のような課題がある。
【００１０】
大画面を扱うデコーダ/エンコーダでは、処理能力の増加のため、デコード/エンコード処理ブロックの数が増える。また、画像を格納するメモリモジュールに関しても、必要なメモリ容量およびメモリモジュールとデコード/エンコード処理ブロック間の帯域確保のため、メモリモジュールも複数必要となる。
【００１１】
例えば、4つのデコード処理ブロックと4つのメモリモジュールを使用する構成においては、各デコード処理ブロックは、割り当てられたフレーム処理を担当し、各メモリは割り当てられた領域のデータを格納する。４つのデコード処理ブロックは、4つのメモリモジュール全てにアクセスする必要がある。そのため、デコード処理ブロックとメモリモジュールの間に4対4の接続が必要となり、メモリバス構成が複雑化・肥大化してしまう。
【特許文献１】特許第２８６３０９６号公報
【特許文献２】特開２００６−１４１１３号公報
【発明の開示】
【発明が解決しようとする課題】
【００１２】
本発明の目的は、複数のデコード/エンコード処理ブロックおよび複数のメモリモジュールを使用する復号/符号化装置であって、デコード/エンコード処理ブロックとメモリモジュール間のメモリバス構成の複雑化・肥大化を避けることのできる動画像復号、符号化装置を提供することである。
【課題を解決するための手段】
【００１３】
本発明の動画像復号装置は、複数の画像領域に分割された画像データの、所定の画像領域を複数のピクチャにわたって格納する、異なる画像領域が割り当てられた複数のメモリ手段と、複数の画像領域に分割された画像データの、所定の画像領域を複数のピクチャにわたって画像復号処理する、異なる画像領域が割り当てられた複数の画像復号手段と、複数のメモリ手段と複数の画像復号手段との接続を制御する接続手段とを備える。
【００１４】
本発明の符号化装置は、複数の画像領域に分割された画像データの、所定の画像領域を複数のピクチャにわたって格納する、異なる画像領域が割り当てられた複数のメモリ手段と、複数の画像領域に分割された画像データの、所定の画像領域を複数のピクチャにわたって画像符号化処理する、異なる画像領域が割り当てられた複数の画像符号化手段と、複数のメモリ手段と複数の画像符号化手段との接続を制御する接続手段とを備える。
【発明の効果】
【００１５】
本発明によれば、複数のデコード/エンコード処理ブロックおよび複数のメモリモジュールを使用する復号/符号化装置であって、デコード/エンコード処理ブロックとメモリモジュール間のメモリバス構成の複雑化・肥大化を避けることのできる動画像復号、符号化装置を提供することができる。
【発明を実施するための最良の形態】
【００１６】
本発明の実施形態は、MPEGやH.264などフレーム間予測を使用した画像圧縮規格のデコーダおよびエンコーダ装置の構成に関する。特にUHDTV画像などの大画面のデコード・エンコードなど、高い処理能力が要求される装置において、複数のデコード・エンコード処理ブロックおよび複数のメモリモジュールを使用する場合の、並列処理手法および構成に関する。
【００１７】
本発明の実施形態の動画像復号装置は、複数の画像復号処理部とその復号画像を格納する複数のメモリモジュールを有する。各画像復号処理部はピクチャを複数に分割した各領域の復号処理を担当し、各メモリモジュールにはピクチャを複数に分割した各領域を格納するメモリマップを割り当てる。各画像復号処理部における各マクロブロックの復号処理開始タイミングは、復号を担当する領域の必要とする参照画のうち、処理するマクロブロックが必要とする参照画領域の復号が完了した後とし、各画像復号処理部に割り当てられた領域のマクロブロックが参照画として使用する領域を格納したメモリモジュール間でのデータバスセレクト機能を有する。
【００１８】
画像復号処理部とメモリモジュールの物理的な構成として、全ての画像復号処理部が1つのチップに配置されるという構成も、複数のチップに分割して配置されるという構成もある。また、メモリモジュールが外付けのメモリである構成も、オンチップメモリ(Embedded DRAMなど)である構成もある。
【００１９】
また、各画像復号処理部が復号処理に必要な隣接マクロブロック情報を格納するための隣接マクロブロック情報バッファを有する。隣接マクロブロック情報バッファは、隣接した画面領域を担当する2つの画像復号処理部からアクセスができ、一方の画像復号処理部が格納した隣接マクロブロック情報を、他方の画像復号処理部が読み出すことが可能である。
【００２０】
隣接マクロブロック情報バッファは、チップ内の内部バッファであってもよいし、チップに外付けするメモリの一領域としてを用いてもよい。
複数の可変長復号処理部と複数の画像復号処理部を有する場合、各可変長復号処理部はピクチャ単位での復号処理を担当し、可変長復号処理部が出力する復号中間データを格納するための中間データバッファを有する。前記中間データバッファに格納する復号中間データの各画像復号処理部が復号処理を担当するピクチャ毎あるいはピクチャ内領域毎の格納位置を示すポインタを記録する機能を有し、画像復号処理部のそれぞれに必要な復号中間データに振り分けて入力する。
【００２１】
なお、中間データバッファは、チップ内の内部バッファであってよいし、チップに外付けするメモリであってもよい。
さらに、各画像復号処理部は、復号処理中のマクロブロックのピクチャ内位置情報を通知する手段を有するとともに、制御部からの指示によりマクロブロック復号処理の待機、再開の制御を行う。
【００２２】
制御部は、各画像復号処理部から通知されるピクチャ内位置情報から、各画像復号処理部が復号を担当する領域の必要とする参照画のうち、処理するマクロブロックが必要とする参照画領域の復号が完了した後になるように、復号処理開始タイミングを制御する。こ
のとき、各画像復号処理部の待機、再開の単位は必ずしもマクロブロック単位である必要はなく、より大きな単位、例えば、マクロブロックライン単位での待機、再開でも良い。
【００２３】
また、画像復号処理部とメモリモジュールの間にメモリアクセス振り分け部を有し、前記メモリアクセス振り分け部は、画像復号処理部からのアクセスをメモリマップにしたがって、複数のメモリモジュールのいずれか、もしくは複数のメモリモジュールに振り分ける機能を有する。
【００２４】
複数の画像復号処理部が物理的に複数のモジュールに分かれて配置されている場合、モジュール間で画像データおよび、隣接マクロブロック情報、復号中間データ、マクロブロック復号位置情報のうち、一部または全てのデータの受け渡しを行う。
【００２５】
動画像符号化装置においては、複数の画像符号化処理部とそのローカル復号画像を格納する複数のメモリモジュールを有し、各画像符号化処理部はピクチャを複数に分割した各領域の符号化処理を担当し、各メモリモジュールにはピクチャを複数に分割した各領域を格納するメモリマップを割り当てる。各画像符号化処理部における各マクロブロックの符号化処理開始タイミングは、符号化を担当する領域の必要とする参照画のうち、処理するマクロブロックが必要とする参照画領域の符号化が完了した後とする。各画像符号化処理部に割り当てられた領域のマクロブロックが参照画として使用する領域を格納したメモリモジュール間でのデータバスセレクトを行う。基本的な構成は動画復号装置の場合と同様である。
【００２６】
本実施形態では、各マクロブロックで参照に必要な参照画像領域のデコードが完了した後に、デコードの開始を行なうために、ピクチャレベルでの並列化が可能である。
図２に復号処理の動作を示す。
【００２７】
例えば、ピクチャ1の各マクロブロックの処理動作は、参照画となるピクチャ0の処理のうち、各マクロブロックの参照可能範囲のマクロブロック処理がデコード完了した後にスタートする。画像復号処理部0が全ピクチャの上1/4の領域を処理し、画像復号処理部1が全ピクチャの次の1/4の領域を処理する。このような処理分担とすることにより、各画像復号処理部が復号処理を担当する領域とその前後の参照画領域だけをアクセスできればよいことになる。
【００２８】
図２（ａ）では、ピクチャＩ０、Ｐ１、Ｐ２、Ｐ３が示されている。小さな、太線で囲まれた四角が処理対象のマクロブロック（符号化、復号処理単位ブロック）であり、大きな四角が、処理対象のマクロブロックを処理する際に参照する範囲である。ピクチャＰ１の処理対象マクロブロックを処理する場合には、ピクチャＩ０の斜線で示された、四角で囲まれた範囲を参照する。このとき、ピクチャＰ１の処理対象マクロブロックを処理は、ピクチャＩ０の参照範囲の処理が終わってから開始する。同様に、ピクチャＰ２の処理対象マクロブロックの処理は、ピクチャＰ１の参照範囲の処理が終わってから、ピクチャＰ３の処理対象マクロブロックの処理は、ピクチャＰ２の参照範囲の処理が終わってから行う。
【００２９】
図２（ｂ）に処理タイミングの概念を示している。デコーダは、例えば４つ設ける。デコーダ０は、１つのピクチャの０〜３のスライスをデコードする。デコーダ１は、４〜７のスライスを、デコーダ２は、８〜１１のスライスを、デコーダ３は、１２〜１４のスライスをデコードする。まず、デコーダ０が処理を開始する。デコーダ０は、ピクチャ０のスライス０〜３を処理し終わると、次に、ピクチャ１のスライス０〜３を処理する。次に、デコーダ０は、ピクチャ２のスライス０〜３を処理する。デコーダ０がピクチャ０のスライス０〜３の処理を終えると、デコーダ１は、ピクチャ０のスライス４〜７の処理を開始する。デコーダ１は、ピクチャ０のスライス４〜７の処理が終わると、ピクチャ１のスライス４〜７の処理を開始する。デコーダ２は、デコーダ１がピクチャ０のスライス４〜７の処理を終了した後、ピクチャ０のスライス８〜１１の処理を開始する。デコーダ３は、デコーダ２がピクチャ０のスライス８〜１１の処理を終了した後、ピクチャ０のスライス１２〜１４の処理を開始する。
【００３０】
図３に、本発明の実施形態での画像復号処理部(Decoder Core)と各メモリ(Memory)の間の接続パスの様子を示す。
ここで、各画像復号処理部と各Memoryが担当する処理領域(復号担当領域と格納領域)は1対1に対応しており、各画像復号処理部の担当復号領域が必要とする参照画領域は、対応するMemoryとその前後のMemoryに格納される。すなわち、参照する動きベクトルの最大ベクトル範囲が１つのMemory格納領域の範囲を超えないものとしている。従来技術で記載した画像復号処理部とMemoryへのデータの割り振り方法であると、Core4/Memory4、Core8/Memory8の構成で接続パス数はそれぞれ32、128となるのに対し、本実施形態では、それぞれ17、37となる。表にまとめると以下のようになる。
【００３１】
【表１】
0005309700.tif 000002
なお、Writeに関しては、H.264におけるループフィルタ処理のために、自処理領域の上側の領域への書き込みを必要としている。
【００３２】
図４及び図５にループフィルタ処理での上側書き込み領域を示す。
ループフィルタ処理では、マクロブロック間の境界において、画像に不連続な部分が出来ないように、ブロック境界にフィルタ処理を行うために、処理マクロブロックの隣接画素のRead/Write処理が必要となる。上隣接マクロブロックについて注目すると、H.264規格では、ループフィルタ処理によって上隣接3画素のデータが変化する可能性があるので、上隣接3画素のWrite処理が必要となる。
【００３３】
図４に示されるように、画像復号処理部0の処理担当領域であり、Memory0の格納領域に存在するマクロブロックＭＢｎと、画像復号処理部1の処理担当領域であり、Memory1の格納領域に存在するマクロブロックＭＢｍが隣接しているとし、マクロブロックＭＢｍを処理する場合には、ＭＢｎの、境界から３画素分の幅の領域をループフィルタ処理する。
【００３４】
H.264のようにデコード処理に上隣接情報を使用する場合、隣接マクロブロック情報を、上領域を処理している画像復号処理部から、下領域を処理している画像復号処理部へ受け渡す必要がある。ここで、隣接マクロブロック情報には、各マクロブロックでのマクロブロックタイプ情報、動きベクトル情報、画素値などがある。
【００３５】
図５に各マクロブロックが復号処理に必要とする隣接マクロブロック情報の位置関係をしめす。
あるマクロブロックを処理する際に、その隣接A(左),B(上),C(右上),D(左上)の情報が必要となる。マクロブロック処理は、左から順に復号処理を進めていくので、あるマクロブロックを処理するために新たに必要な隣接マクロブロック情報は、C(右上)のものとなる。
【００３６】
隣接マクロブロック情報バッファを使用した隣接情報の受け渡し動作について説明する。隣接マクロブロック情報バッファは、画像復号処理部毎に1マクロブロックライン分の情報が格納できる容量とし、水平マクロブロック数N個の領域に分け、それぞれの領域に水平位置に対応したマクロブロック情報を格納するものとする。このバッファは前後の画像復号処理部間での情報受け渡しだけでなく、画像復号処理部内のマクロブロック復号動作においても使用される。
【００３７】
図６は、マクロブロック処理の動作を説明する図である。
0〜M-1のマクロブロックラインは画像復号処理部0で処理をし、M〜2M-1のマクロブロックラインが画像復号処理部1で処理する。マクロブロックラインM-2の位置aのマクロブロックを処理する場合には、aのC(右上)位置のマクロブロック情報を新たに必要とする。位置aが水平アドレスiのマクロブロックだとすると、C(右上)位置のマクロブロック情報は、i+1の領域に格納されている。よって、バッファ領域i+1から情報を読み出して復号処理を行い、自マクロブロック処理の結果のマクロブロック情報をバッファ領域iに書き込む。位置bのマクロマクロブロックを処理する際には、次のマクロブロックラインM-1の処理のために、バッファ位置0の情報を読み出しておき、自マクロブロック処理の結果をバッファ領域N-1に書き込む。この時点でバッファ内は全て、マクロブロックラインM-2の情報となる。マクロブロックラインM-1も同様に処理を続けるが、ここで書き込むマクロブロック情報は、画像復号処理部1で使用されるものである。画像復号処理部0最後のマクロブロック位置dの処理の後、画像復号処理部0が処理するのは、次のピクチャの先頭のマクロブロックである。一方、画像復号処理部1は、マクロブロックラインMの水平位置0のマクロブロックを処理する。この境界において画像復号処理部0の隣接マクロブロック情報バッファから、画像復号処理部1の隣接マクロブロック情報バッファへのデータのコピーが行われる。コピー後、画像復号処理部1は画像復号処理部1側のバッファから、上隣接マクロブロック情報、すなわち、マクロブロックラインM-1の情報を読み出し、画像復号処理部1側のバッファに自マクロブロック情報を書き込む。このとき、最初のマクロブロック処理(位置e)においては、隣接B(上),隣接C(右上)のReadが行われる。画像復号処理部0側は、次のピクチャのマクロブロックライン0の処理を開始する。このようにして画像復号処理部0から、画像復号処理部1に隣接マクロブロック情報を受け渡すことにより、ピクチャの領域毎に分担されたデコード処理が、画像復号処理部0から画像復号処理部1に引き継ぐことが可能となる。
【００３８】
なお、画像復号処理部0、画像復号処理部1間の隣接マクロブロック情報の受け渡しについては、バッファの上書きが起こらないように制御すれば、前記方法以外の方法でも良い。例えば、マクロブロック単位で同期して動作し、画像復号処理部0側の情報(上隣接情報)が画像復号処理部1から読み出された後に、画像復号処理部0が自マクロブロック情報を書き込むという方法も可能である。この場合、画像復号処理部1がマクロブロックラインMを処理し、画像復号処理部0が次のピクチャのマクロブロックライン0を処理している期間(位置eから位置f)は、画像復号処理部0と画像復号処理部1がマクロブロック単位で同期を取りながら、画像復号処理部0側のバッファは、画像復号処理部１から読み出し、画像復号処理部0が書き込む。
【００３９】
処理がマクロブロックラインM+1に移ると、隣接バッファ０と１において、隣接バッファの先頭位置（位置g）に書き込みを行い、次の位置から読み出しを行う。
このような制御により、画像復号処理部間で隣接マクロブロック情報を受け渡すことにより、H.264のように上隣接情報を必要とする規格においても、各画像復号処理部にピクチャを分割した領域を担当させる並列処理が可能となる。
【００４０】
可変長復号処理は通常、ストリームの先頭から順に処理を行う必要があり、並列処理を行うとしても、可変長復号処理における前後の依存関係がなく、かつ、ユニークコードな
どで境界を特定できる箇所で分割して、並列処理を行う。スライス分割が必須ではないH.264などの規格において、上記のような分割箇所を必ず特定できるのはピクチャ境界であるため、可変長復号処理の並列化は、ピクチャ単位で行う。一方、本実施形態の画像復号処理部は、ピクチャを領域毎に分けてそれぞれの領域の復号処理を担当する。本実施形態の構成では、可変長復号処理部と画像復号処理部の間に復号中間データバッファを設け、復号中間データの格納位置ポインタを記録することによって、画像復号処理部での並列処理を実現する。
【００４１】
図７〜図９に、中間データバッファの説明図を示す。
図７はブロック構成、図８は中間データバッファとポインタの関係、図９は動作タイミングである。
【００４２】
図７〜図９は、可変長復号処理部4個、画像復号処理部4個の場合の例である。可変長復号処理部０〜３では、ピクチャ単位(例えばH.264でのアクセスユニットAU)ごとに処理を行うものとし、それぞれAU0からAU3までの復号処理を行う。そして各ピクチャの復号中間データを中間データバッファ１５に格納し、その開始ポインタ(AU0 PTR_C0、AU1 PTR_C0、AU2 PTR_C0、AU3 PTR_C0)を記録する。画像復号処理部0は、まず、AU0 PTR_C0のポインタで示される中間データを読み出し、復号処理を行う。画像符号処理部0は割り当てられた領域のデコード処理を終了すると、AU1 PTR_C0の処理を開始するが、このとき、画像復号処理部1は、AU0の割り当てられた領域のデコード処理を開始する。画像復号処理部1が処理を行う領域の中間データは、画像復号処理部0が処理した中間データの続きであるので、画像復号処理部0の中間データ処理終了位置(AU0 PTR_C1)から処理を開始する。なお、このAU0_PTR_C1のポインタは、可変長復号部が中間データ復号処理時に記録して、画像復号処理部1に通知しても良い。このように画像復号処理部0と1がそれぞれの担当する領域の中間データを読み出しながら復号処理をすることにより、並列動作が可能となる。以下同様に、画像復号処理部2、3も並列処理を行う。このように、可変長復号処理部と画像復号処理部の間に復号中間データバッファ１５を設け、復号中間データの格納位置ポインタを記録、使用することで、画像復号処理部が処理する中間データの格納領域を判断し、各画像復号処理部での並列処理を実現することができる。
【００４３】
図８では、中間データバッファ１５の内容の例を示している。各ピクチャのデータは、開始ポインタ(AU0 PTR_C0、AU1 PTR_C0、AU2 PTR_C0、AU3 PTR_C0)から始まっている。画像復号処理部0の担当データは、AU0 C0, AU1 C0, AU2 C0, AU3 C0であり、それぞれ、ポインタAU0 PTR_C1, AU1 PTR_C1, AU2 PTR_C1, AU3 PTR_C1が画像復号処理部0の担当データの終わり位置を示す。また、これらのポインタは、画像復号処理部1の担当データの開始位置も示す。以下同様に、画像復号処理部1, 画像復号処理部2, 画像復号処理部3の担当データが格納される。
【００４４】
図９に示されるように、可変長復号処理部０〜３は、それぞれ並列に、担当データAU0〜AU3を処理する。処理結果は、図7の中間データバッファ１５に格納される。図７の画像復号処理部（Core）０〜３は、まず、画像復号処理部0が最初の担当データAU0 C0を処理し、次に、AU1 C0というように、順次処理するが、画像復号処理部1は、画像復号処理部0のAU0 C0の処理が終わってから、AU0 C1の処理を始める。同様に、画像復号処理部2は、画像復号処理部1のAU0 C1の処理が終わってから、AU0 C2の処理を開始する。画像復号処理部3は、画像復号処理部2のAU0 C2の処理が終わってから、AU0 C3の処理を開始する。
【００４５】
各画像復号処理部が処理中のマクロブロックの位置情報を制御部に通知し、制御部がデコード進行状況を知ることにより、各マクロブロックで参照に必要な参照画像領域のデコードが完了したことを把握することができる。各画像復号処理部が制御部からの指示により、マクロブロック単位で処理の待機・再開を行うようにしておくと、各マクロブロック単位で必要な参照画像領域が揃ってからデコードを開始するという制御が可能となる。通常、必要な参照画像領域は、縦動きベクトルの範囲で規定されるので、必要な参照画領域が揃ってからデコードを開始するという意味では、マクロブロックライン単位で待機、再開を行う制御としても良い。
【００４６】
ただし、先に説明したような隣接マクロブロック情報を格納するバッファで隣接情報の受け渡しを行う場合においては、上側画像復号処理部が書き込んだ上隣接マクロブロックの情報が、下側画像復号処理部によって読み出される前に、上側画像復号処理部が処理する次のピクチャのマクロブロック情報によって上書きされないように制御する必要がある。
【００４７】
動画像復号処理において、参照画像の読み出しなどのメモリアクセスは通常、画像上の矩形領域でのメモリアクセスとなる。1ピクチャの画像データを複数のメモリに領域毎に格納する場合、その境界領域において、1つの矩形アクセスリクエストが2つのメモリにまたがる場合がある。そのためメモリマップに応じて、矩形アクセスリクエストを二つに分ける必要がある。
【００４８】
図１０に、矩形アクセスの例を示す。
Aの領域のアクセスは、Memory0のみのアクセス、Bの領域のアクセスはMemory1のみのアクセスとなるが、Cの領域は上側がMemory0、下側がMemory1に格納されているので、両方のMemoryにアクセスする必要がある。
【００４９】
図１１に、アクセスの振り分けモジュールの構成例を示す。
リードアクセスの場合、リクエスト／ライトデータ振り分け部２０−１、２０−２でどちらのMemoryにアクセスするか、あるいは、リクエストを分割する必要があるかを判定する。片方のMemoryアクセスの場合は、そのMemoryへのリードアクセスを行い、分割する必要がある場合は、それぞれのMemoryに必要なリードアクセスを行う。各Memoryからのリードデータについては、リードデータ振り分け部２１−１、２１−２で、どちらの画像復号処理部からのリクエストであったかに応じて、リクエスト発行元の画像復号処理部にリードデータを返す。
【００５０】
ライトアクセスの場合は、リクエスト／ライトデータ振り分け部２０−１、２０−２で、どちらのMemoryにアクセスするか、あるいは、リクエストを分割する必要があるかを判定する。また、画像復号処理部からライトデータを受け取り、片方のMemoryアクセスの場合は、そのMemoryへのライトアクセスを行い、分割する必要がある場合は、画像復号処理部から受け取ったライトデータをそれぞれのMemoryに振り分けつつ、ライトアクセスを行う。
【００５１】
上記実施形態のデコーダにおいて、複数の画像復号処理部が物理的に複数のモジュールに分かれて配置されていてもよい。この場合、モジュール間で画像データおよび、隣接マクロブロック情報、復号中間データ、マクロブロック復号位置情報のうち、一部または全てのデータの受け渡しを行う。このように複数モジュールで1つのデコーダ装置を構成する場合においても、本実施形態のメモリ-画像復号処理部間の接続パス削減により、モジュール間IF、データ転送量が減少する。
【００５２】
本実施形態では、各画像復号処理部は最大で2つまたは3つのメモリにアクセスすればよい。よって画像復号処理部数とメモリ数が増えてもその接続関係が限定される、ため、I/O端子と画像復号処理部配置の関係を単純化することができる。
【００５３】
図１２〜図１４は、本実施形態のデコーダを説明する図である。
図１２は4Kx2K（3840x2160画素)のH.264デコーダに本実施形態を4並列で適用した装置のブロック構成である。可変長復号処理部（ENT Decoder）２５−１〜２５−４、画像復号処理部２７−１〜２７−４をそれぞれ4つずつ有し、可変長復号処理部２５−１〜２５−４はピクチャ単位の並列処理、画像復号処理部２７−１〜２７−４は図１３のように１つのピクチャを4つの領域に分割したそれぞれの領域を担当する。４つの領域のデータが、それぞれ4つのメモリに格納される。なお本例での垂直ベクトル範囲は±512とし、各画像復号処理部で処理する領域が参照する領域は、上下の画像復号処理部で処理する領域を超えることはないものとする。それぞれの可変長復号部は、H.264規格にしたがったCAVLCやCABACなどの可変長復号処理を実施し、画像復号処理部は、H.264規格の逆量子化、逆変換、インター予測補償、イントラ予測補償、デブロッキングフィルタなどといった画像復号処理を行う。また、可変長復号部２５−１〜２５−４と画像復号処理部２７−１〜２７−４の間には、中間データを格納する中間データバッファ２８、各画像復号部の間には隣接マクロブロック情報を受け渡すための隣接マクロブロック情報バッファ２９−１〜２９−４、画像復号処理部とメモリの間には、メモリアクセスを振り分ける機能を有したメモリ制御部３０、各画像復号処理部からの処理マクロブロック位置情報を受け取り、各画像復号処理部の起動制御を行う画像復号処理部起動制御部３１を有する。
【００５４】
図１３に示すように、１ピクチャの画像データは、４つのMemory0〜３に分割されて保存される。Memory0には、マクロブロックライン０〜３３、Memory1には、マクロブロックライン３４〜６７、Memory2には、マクロブロックライン６８〜１０１、Memory3には、マクロブロックライン１０２〜１３４が格納される。
【００５５】
図１４に並列動作のタイミングを示す。
前記中間データバッファ２８、隣接マクロブロック情報バッファ２９−１〜２９−４、メモリ制御部３０、画像復号処理部起動制御部３１は、デコードの並列処理中、上記した役割を果たし、H.264デコード処理における並列動作を可能とする。
【００５６】
図１４において、画像復号処理部0は、マクロブロックライン０〜３３を担当する。画像復号処理部1は、マクロブロックライン３４〜６７を担当する。画像復号処理部2は、マクロブロックライン６８〜１０１を担当する。画像復号処理部3は、マクロブロックライン１０２〜１３４を担当する。画像復号処理部に起動がかけられ、最初のピクチャＩ０が処理され始めると、画像復号処理部0は、マクロブロックライン０〜３３の処理を順次実行する。各マクロブロックラインの処理は、各マクロブロックの処理ごとにかけられる、マクロブロックラインの処理起動によって開始される。画像復号処理部0は、ピクチャＩ０のマクロブロックライン０〜３３が処理し終わると、次のピクチャＰ３のマクロブロックライン０〜３３の処理を実行し、その次は、ピクチャＢ１、Ｂ２と順次処理する。画像復号処理部1は、画像復号処理部0のピクチャＩ０のマクロブロックライン０〜３３の処理の終了後、ピクチャＩ０のマクロブロックライン３４〜６７の処理を開始する。画像復号処理部2は、画像復号処理部1がマクロブロックライン３４〜６７を処理した後、同じピクチャのマクロブロックライン６８〜１０１の処理を開始し、画像復号処理部3は、画像復号処理部2がマクロブロックライン６８〜１０１の処理後、同じピクチャのマクロブロックライン１０２〜１３４の処理を開始する。
【００５７】
各画像復号処理部における各マクロブロックの復号処理開始タイミングが、復号を担当する領域の必要とする参照画のうち、処理するマクロブロックが必要とする参照画領域の復号が完了した後となる制御の一例として、以下のような制御とする。
【００５８】
図１５及び図１６は、本実施形態の処理フローである。
図１５は、領域単位の起動処理、図１６はマクロブロックライン単位での起動処理の制御を示す。
【００５９】
各画像復号処理部の領域単位の起動は同期して行い、領域単位で全ての画像復号処理部処理が完了を待ってから次の起動を行う。各画像復号処理部のマクロブロックライン単位の起動も、マクロブロックライン単位で画像復号処理部間の同期を取って制御される。
【００６０】
領域単位の起動は、まず処理するピクチャの可変長復号処理が完了しているかどうかを確認する。可変長復号処理が完了していない場合には、処理を待つ。完了していれば、画像復号処理部に起動をかける。最初の画像復号処理部起動については、画像復号処理部0のみに起動をかける。画像復号処理部0の割り当て担当領域の全処理が完了すると、次に、同様に可変長復号処理完了の判定をし、画像復号処理部0と画像復号処理部1に起動をかける。そして画像復号処理部0と画像復号処理部1両方の割り当て担当領域の処理が完了すると、次に、画像復号処理部0、１，２が起動され、その次は、画像復号処理部０、１、２，３が起動される。逆に、終了時の3回の起動は、画像復号処理部１，２，３のみ、画像復号処理部２、３のみ、画像復号処理部３のみという起動となる。このような制御で、Nピクチャの復号処理において、画像復号処理部の起動回数は、N+3回の起動処理となる。
【００６１】
各画像復号処理部のマクロブロックライン単位の起動では、あるマクロブロックの復号処理開始時に、参照に使用する領域の復号処理が完了している状態となるように制御する。本フローでは、マクロブロックライン単位の起動をかけたのち、自画像復号処理部のマクロブロックライン処理が完了しても、並列動作する画像復号処理部のマクロブロックライン処理が完了するのを待つ制御としている。本実施形態では、各画像復号処理部の割り当て領域は、垂直動きベクトル範囲(±512)以上となっているので、マクロブロックライン単位で各画像復号処理部の同期をとるようにしていれば、復号未完了領域を参照するような状態にはならない。基本的には、１つ先の画像復号処理部の指定ＭＢ（現処理ＭＢライン番号＋最大垂直ベクトルから決まる固定値）の処理が完了していればよい。
【００６２】
また、隣接マクロブロック情報バッファの上書きを避けるために、各画像復号処理部に割り当てられた最初のマクロブロックライン処理を開始する前に隣接マクロブロック情報バッファ内容の移動が行われる。最下端の画像復号処理部3の隣接マクロブロック情報は移動の必要はないが、画像復号処理部2から画像復号処理部3、画像復号処理部1から画像復号処理部2、画像復号処理部0から画像復号処理部1へ隣接マクロブロック情報の移動を行う。このとき、情報の上書きを避けるために移動の順番は上記の順序で行う必要がある。
【００６３】
以下、図に即して説明する。
図１５は、画像復号処理部割り当て領域処理起動フローである。ステップＳ１０においては、対応処理領域のENT処理（可変長復号処理）が完了するまで待つ。ステップＳ１１において、各画像復号処理部を起動する。この起動は処理領域単位で行う。画像復号処理部並列数をｋとして、最初のｋ−１回の起動は、上領域担当の画像復号処理部から１個ずつ起動画像復号処理部数を増やしていく。処理停止時、最後のｋ−１回の起動は、上領域担当画像復号処理部から１個ずつ起動画像復号処理部数を減らしていく。ステップＳ１２において、起動した全画像復号処理部が処理完了したか、領域単位で判断し、処理完了を待つ。ステップＳ１３において、全ピクチャ処理が完了したか否かを判断し、終わってない場合にはステップＳ１０へ、終わった場合には、処理終了へ進む。
【００６４】
図１６は、ＭＢライン処理起動フローである。ステップＳ１５において、処理ＭＢラインが、非最下端処理画像復号処理部の担当であるか否かを判断する。ここで、画面最下端の隣接バッファは、移動の必要はない。ステップＳ１５の判断がＮｏの場合には、ステップＳ１８に進む。ステップＳ１５の判断がＹｅｓの場合には、ステップＳ１６において、隣接情報移動先バッファへの書き込みがＯＫになるまで待つ。ここでは、隣接情報バッフ
ァの内容を画像復号処理部の間で移動させる際に、移動先のバッファである、すぐ下の領域のバッファの移動が完了していればＯＫとする。画面最下端のバッファは、移動の必要はないので、すぐに書き込みＯＫとする。ステップＳ１７において、隣接情報移動を行い、ステップＳ１８に進む。ステップＳ１８において、ＭＢライン処理を起動する。ステップＳ１９において、ＭＢライン処理の完了を待つ。ステップＳ２０において、ＭＢライン処理の終了通知を行う。ステップＳ２１において、並列動作する画像復号処理部のＭＢライン処理の完了を待つ。次に起動するＭＢラインが参照に使用する可能性があるＭＢラインの処理が完了していることを保証するために、並列動作する画像復号処理部のＭＢライン処理が完了するのを待つ。ステップＳ２２において、割り当て全ＭＢ来処理が完了したか否かを判断する。ステップＳ２２の判断がＮｏの場合には、ステップＳ１５に戻り、Ｙｅｓの場合には、処理を終了する。
【００６５】
図１７は、本実施形態のデコーダのチップ構成例である。
図１７にはデコード処理に用いる、デコードストリームの入力インターフェース（Stream IF）４０、デコード画像の表示を行う画像出力インターフェース（Display IF）４１のみ図示している。図１７（ａ）は、1チップ構成、図１７（ｂ）は2チップ構成の例である。1チップ構成では、4つの画像復号処理部が1つのチップに搭載され、画像格納用の4つのメモリが接続されている。また、本図では、ストリーム格納用、中間データ格納用のバッファは別メモリで構成する。このメモリは、画像格納用の4つのメモリと別に用意しても良いし、画像格納用に使用している4つのメモリの一部に領域を確保して同一メモリとして使用してもよい。2チップ構成では、2つのメモリの間にデータ転送インターフェース(データ転送IF)４２を設けて、ストリームデータ、中間データ、隣接マクロブロック情報、画像データ等が受け渡し可能なようにしている。このように画像復号処理部が複数のチップに分けられ、メモリの接続先が複数のチップに分かれている場合も、データ転送の受け渡しを行い、全体として本実施形態の並列処理を行う。
【００６６】
図１８は、8Kx4K画素(7680x4320画素)のデコーダに本実施形態を4並列で適用する場合の画像復号処理部割り当てとメモリマップの割り当てを示した図である。
本例でも垂直ベクトル範囲は±512とする。デコーダ構成は前述と同様である。図１８（ａ）は、4つの画像復号処理部が担当する領域それぞれに、4つのメモリを割り当てるメモリマップの場合である。図１８（ｂ）は、メモリは2個とし、画像復号処理部0と1の担当領域がメモリ0、画像復号処理部2と3の担当領域がメモリ1に割り当てられたメモリマップの場合である。図１８（ｃ）は、画像復号処理部の割り当て領域とメモリマップの割り当て領域を544ライン分ずらし、メモリ0には、544ライン分、メモリ3には1600ライン分の割り当てをした場合である。図１８（ｄ）は、図１８（ｃ）と同様、画像復号処理部の割り当て領域とメモリマップの割り当て領域を544ライン分ずらして、ピクチャの最下部512ラインは、メモリ0に割り当てた場合である。各構成での接続パス数を下記に示す。
【００６７】
【表２】
0005309700.tif 000003
図１８（ｂ）では、メモリ数が2個に減っているので接続パス数も削減される。図１８（ｃ）、（ｄ）では、画像復号処理部の担当処理領域とメモリマップの割り当て領域の境界が、動きベクトルの垂直最大値よりも離れているために、リードアクセスとして、最大
で2つのメモリからのアクセスができればよい構成となっている。そのため、図１８（ａ）の構成に比べて、リードの接続パス数が削減されている。これらの画像復号処理部、メモリマップの割り当ても含め、ピクチャ内の画像復号処理部領域割り当て、メモリマップの割り当ては様々な方法が考えられる。
【００６８】
図１９は、本発明の実施形態をH.264エンコーダに適用した場合のブロック構成図を示す。
図１９は4Kx2K画素(3840x2160画素)のエンコーダを4並列で適用した装置である。可変長符号化処理部５０−１〜５０−４、画像符号化処理部５１−１〜５１−４をそれぞれ4つずつ有し、可変長符号化処理部５０−１〜５０−４はピクチャ単位の並列処理、画像符号化処理部５１−１〜５１−４はピクチャを4つの領域に分割したそれぞれの領域を担当し、それぞれの領域のデータが対応した4つのメモリに格納されるメモリマップとする。これらの割り当ては復号装置と同様である。それぞれの可変長符号化処理部５０−１唐０−４は、例えばH.264規格にしたがったCAVLCやCABACなどの可変長符号化処理を実施し、画像符号化処理部５１−１〜５１−４は、例えばH.264の画像符号化処理に必要な、動きベクトル探索、インター予測、イントラ予測、直交変換、量子化、デブロッキングフィルタなどの処理を行う。また、可変長符号化処理部５０−１〜５０−４と画像符号化処理部５１−１〜５１−４の間には中間データを格納する中間データバッファ５５、各画像符号化処理部５１−１〜５１−４の間には隣接マクロブロック情報を受け渡すための隣接マクロブロック情報バッファ５２−１〜５２−４、画像符号化処理部５１−１〜５１−４とメモリ０〜３の間には、メモリアクセスを振り分けるメモリ制御部５３、各画像復号処理部からの処理マクロブロック位置情報を受け取り、各画像復号処理部の起動制御を行う画像復号処理部起動制御部５４を有する。エンコーダ処理における画像符号化処理部の並列動作の方法は、デコード処理における画像復号処理部の並列動作と同様であるので省略する。
【００６９】
前記中間データバッファ、隣接マクロブロック情報バッファ、メモリ制御部、画像復号処理部起動制御部は、エンコード処理においても、同様の役割を果たし、エンコード処理における本実施形態の並列動作を可能とする。
【００７０】
エンコーダにおいてもデコーダと同様に、図１７のようなチップ構成が可能である。
このように、複数のデコード・エンコード処理ブロックおよび複数のメモリモジュールを使用する場合においても、デコード/エンコード処理ブロックとメモリモジュール間のメモリバス構成の複雑化・肥大化を避けことができる。
【００７１】
また、画像復号処理部数とメモリ数が増えてもその接続関係が限定されるため、I/O端子と画像復号処理部配置の関係を単純化することができる。
本実施形態は、画像復号処理部数、メモリ数が大きくなるほどその削減効果は大きく、扱う画像が大きく、多くの画像復号処理部、メモリを使用するようなアプリケーションで効果的である。
【図面の簡単な説明】
【００７２】
【図１】スライス単位でフレーム内の並列化を行う手法の説明図である。
【図２】復号処理の動作を示す図である。
【図３】本発明の実施形態での画像復号処理部と各メモリモジュールの間の接続パスを示す図である。
【図４】ループフィルタ処理での上側書き込み領域を示す図（その１）である。
【図５】ループフィルタ処理での上側書き込み領域を示す図（その２）である。
【図６】マクロブロック処理の動作を説明する図である。
【図７】中間データバッファの説明図（その１）である。
【図８】中間データバッファの説明図（その２）である。
【図９】中間データバッファの説明図（その３）である。
【図１０】矩形アクセスの例を示す図である。
【図１１】アクセスの振り分けモジュールの構成例を示す図である。
【図１２】本実施形態のデコーダを説明する図（その１）である。
【図１３】本実施形態のデコーダを説明する図（その２）である。
【図１４】本実施形態のデコーダを説明する図（その３）である。
【図１５】本実施形態の処理フロー（その１）である。
【図１６】本実施形態の処理フロー（その２）である。
【図１７】本実施形態のデコーダ構成をLSIに適用した場合のチップ構成例である。
【図１８】8Kx4K画素（7680x4320画素）のH.264デコーダに本実施形態を4並列で適用する場合の画像復号処理部割り当てとメモリマップの割り当てを示した図である。
【図１９】本発明の実施形態をH.264エンコーダに適用した場合のブロック構成図である。
【図３】
0005309700.tif 000004
【図４】
0005309700.tif 000005
【図５】
0005309700.tif 000006
【図９】
0005309700.tif 000007
【図１０】
0005309700.tif 000008
【図１１】
0005309700.tif 000009
【図１】
0005309700.tif 000010
【図２】
0005309700.tif 000011
【図６】
0005309700.tif 000012
【図７】
0005309700.tif 000013
【図８】
0005309700.tif 000014
【図１２】
0005309700.tif 000015
【図１３】
0005309700.tif 000016
【図１４】
0005309700.tif 000017
【図１５】
0005309700.tif 000018
【図１６】
0005309700.tif 000019
【図１７】
0005309700.tif 000020
【図１８】
0005309700.tif 000021
【図１９】
0005309700.tif 000022