(57)【要約】【課題】様々なブロックサイズのマクロブロック処理を高速化する。【解決手段】マクロブロックごとに、予測値算出部２は、対象のマクロブロックの隣接マクロブロックをアドレス算出部３へ指示する。アドレス算出部３は、指定された隣接マクロブロックのブロックサイズに応じて規定される動きベクトルデータが格納される参照画像記憶部１のアドレスを算出する。予測値算出部２は、取得したアドレスに基づいて、参照画像記憶部１から隣接マクロブロックの動きベクトルデータを読み出し、対象マクロブロックの動きベクトル予測値を算出する。【選択図】図１
2008048200.tif 000002
【特許請求の範囲】
【請求項１】
動画像を所定の領域に分割した動きベクトル検出単位でフレーム間予測処理を行うフレーム間予測処理装置において、
必要に応じて所定のサイズに設定される動きベクトル検出単位ごとに生成された動きベクトルデータを格納する動きベクトル格納領域が、前記動きベクトル検出単位の最小単位に応じて用意される参照画像記憶部と、
指定された前記動きベクトル検出単位の動きベクトルデータが格納される前記参照画像記憶部のアドレスを指定された前記動きベクトル検出単位のサイズに基づいて算出するアドレス算出部と、
前記アドレス算出部に対して対象動きベクトル検出単位のフレーム間予測で参照する前記対象動きベクトル検出単位に隣接する隣接動きベクトル検出単位を指示して前記隣接動きベクトル検出単位について生成された前記動きベクトルデータが格納されるアドレスを取得し、取得した前記アドレスに基づいて前記参照画像記憶部より前記隣接動きベクトル検出単位の前記動きベクトルデータを読み出し、前記対象動きベクトル検出単位の動きベクトル予測値を算出する予測値算出部と、
前記動きベクトル予測値の算出のために参照される前記隣接動きベクトル検出単位の前記動きベクトルデータを、前記隣接動きベクトル検出単位に対応する前記動きベクトル格納領域の所定の領域に格納する参照画像格納部と、
を具備することを特徴とするフレーム間予測処理装置。
【請求項２】
前記アドレス算出部は、
前記隣接動きベクトル検出単位のサイズ及び前記隣接動きベクトル検出単位の指定と、前記動きベクトルデータが格納される前記参照画像記憶部のアドレスとを対応付けた変換テーブルを有し、前記変換テーブルに基づいて前記予測値算出部からの入力情報を前記アドレスに変換する、
ことを特徴とする請求項１記載のフレーム間予測処理装置。
【請求項３】
前記参照画像記憶部は、前記対象動きベクトル検出単位の前記動きベクトルデータを格納するブロック内データ格納領域と、前記対象動きベクトル検出単位に隣接する他の動きベクトル検出単位の前記動きベクトルデータを格納する隣接ブロックデータ格納領域とを有し、
前記参照画像格納部は、次の動きベクトル検出単位に処理対象が移行するまでに、前記対象動きベクトル検出単位の前記動きベクトルデータを、前記対象動きベクトル検出単位に対応する前記隣接ブロックデータ格納領域に格納する、
ことを特徴とする請求項１記載のフレーム間予測処理装置。
【請求項４】
前記アドレス算出部は、
前記隣接動きベクトル検出単位のサイズ及び前記隣接動きベクトル検出単位の指定と、前記動きベクトルデータが格納される前記ブロック内データ格納領域のアドレスとを対応付けた第１の変換テーブルと、
前記隣接動きベクトル検出単位のサイズ及び前記隣接動きベクトル検出単位の指定と、前記隣接ブロックデータ格納領域のアドレスとを対応付けた第２の変換テーブルとを有し、
前記第１の変換テーブル及び前記第２の変換テーブルに基づいて前記予測値算出部からの入力情報を前記アドレスに変換する、
ことを特徴とする請求項３記載のフレーム間予測処理装置。
【請求項５】
動画像を所定の領域に分割した動きベクトル検出単位でフレーム間予測処理を行うフレーム間予測方法において、
予測値算出部が、対象動きベクトル検出単位のフレーム間予測で参照する前記対象動きベクトル検出単位に隣接する隣接動きベクトル検出単位を指示し、
アドレス算出部が、必要に応じて所定のサイズに設定される動きベクトル検出単位ごとに生成された動きベクトルデータを格納する動きベクトル格納領域が前記動きベクトル検出単位の最小単位に応じて用意される参照画像記憶部において、指定された前記動きベクトル検出単位の動きベクトルデータが格納されるアドレスを指定された前記動きベクトル検出単位のサイズに基づいて算出し、
前記予測値算出部が、前記アドレス算出部から前記隣接動きベクトル検出単位について生成された前記動きベクトルデータが格納されるアドレスを取得し、取得した前記アドレスに基づいて前記参照画像記憶部より前記隣接動きベクトル検出単位の前記動きベクトルデータを読み出して前記対象動きベクトル検出単位の動きベクトル予測値を算出し、
算出画像格納部が、次以降の処理対象の動きベクトル検出単位に関する前記動きベクトル予測値の算出のために参照される前記隣接動きベクトル検出単位の前記動きベクトルデータを、前記隣接動きベクトル検出単位に対応する前記動きベクトル格納領域の所定の領域に格納する、
処理を行うことを特徴とするフレーム間予測方法。
【請求項６】
基本処理単位の動きベクトル検出単位ごとに、入力画像について所定の参照画像からの動き補償を行って生成した予測誤差を圧縮符号化する画像符号化装置において、
必要に応じて所定のサイズに設定される動きベクトル検出単位ごとに生成された動きベクトルデータを格納する動きベクトル格納領域が、前記動きベクトル検出単位の最小単位に応じて用意される参照画像記憶部と、
指定された前記動きベクトル検出単位の動きベクトルデータが格納される前記参照画像記憶部のアドレスを指定された前記動きベクトル検出単位のサイズに基づいて算出するアドレス算出部と、
前記アドレス算出部に対して対象動きベクトル検出単位のフレーム間予測で参照する前記対象動きベクトル検出単位に隣接する隣接動きベクトル検出単位を指示して前記隣接動きベクトル検出単位について生成された前記動きベクトルデータが格納されるアドレスを取得し、取得した前記アドレスに基づいて前記参照画像記憶部より前記隣接動きベクトル検出単位の前記動きベクトルデータを読み出して前記対象動きベクトル検出単位の動きベクトル予測値を算出し、算出した前記対象動きベクトル検出単位の動きベクトル予測値と、前記対象動きベクトル検出単位について検出された前記動きベクトルデータとの予測差分値を算出して符号化対象とするフレーム間予測部と、
前記動きベクトル予測値の算出のために参照される前記隣接動きベクトル検出単位の前記動きベクトルデータを、前記隣接動きベクトル検出単位に対応する前記動きベクトル格納領域の所定の領域に格納する参照画像格納部と、
を具備することを特徴とする画像符号化装置。
【請求項７】
基本処理単位の動きベクトル検出単位ごとに、入力画像について所定の参照画像からの動き補償を行って生成した予測誤差を圧縮符号化した画像符号化信号を入力し、元の動画像を復元する画像復号装置において、
必要に応じて所定のサイズに設定される動きベクトル検出単位ごとに生成された動きベクトルデータを格納する動きベクトル格納領域が、前記動きベクトル検出単位の最小単位に応じて用意される参照画像記憶部と、
指定された前記動きベクトル検出単位の動きベクトルデータが格納される前記参照画像記憶部のアドレスを指定された前記動きベクトル検出単位のサイズに基づいて算出するアドレス算出部と、
前記アドレス算出部に対して対象動きベクトル検出単位のフレーム間予測で参照する前記対象動きベクトル検出単位に隣接する隣接動きベクトル検出単位を指示して前記隣接動きベクトル検出単位について生成された前記動きベクトルデータが格納されるアドレスを取得し、取得した前記アドレスに基づいて前記参照画像記憶部より前記隣接動きベクトル検出単位の前記動きベクトルデータを読み出して前記対象動きベクトル検出単位の動きベクトル予測値を算出し、算出した前記対象動きベクトル検出単位の動きベクトル予測値と復号された予測差分値とを用いて前記対象動きベクトル検出単位の前記動きベクトルを復号するフレーム間予測部と、
前記フレーム間予測部によって復号され、前記動きベクトル予測値の算出のために参照される前記対象動きベクトル検出単位の前記動きベクトルデータを、前記隣接動きベクトル検出単位に対応する前記動きベクトル格納領域の所定の領域に格納する参照画像格納部と、
を具備することを特徴とする画像復号装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、フレーム間予測処理装置、フレーム間予測方法、画像符号化装置及び画像復号装置に関し、特に動画像を所定の領域に分割した動きベクトル検出単位でフレーム間予測処理を行うフレーム間予測処理装置とフレーム間予測方法、及びこのようなフレーム間予測処理装置を具備する画像符号化装置と画像復号装置に関する。
【背景技術】
【０００２】
動画像信号の圧縮符号化方式として、ＭＰＥＧ（Moving Picture Expert Group）や、Ｈ．２６４などが知られている。このような圧縮符号化方式では、入力画像データを動きベクトル検出単位に分割し、これを単位として符号化・復号処理が行われる。このような動きベクトル検出単位は、マクロブロックと呼ばれる。符号化処理では、入力画像に対して直交変換、量子化などで画面内の冗長性を取り除くフレーム内予測と、過去の複数のフレームから動き補償した予測残差を抽出することでフレーム間の冗長性を取り除くフレーム間予測とが行われ、それぞれ算出された値をエントロピー符号化する。また、復号処理では、その逆動作が行われる。
【０００３】
アルゴリズム処理の大部分は、フレーム間予測のための動きベクトル処理で占められており、その処理の効率化と高速化とが求められてきた。このため、たとえば、参照画像メモリの容量を減らすため、次のフレームで動きベクトルを用いてインター符号化することが決定されたマクロブロック位置に対する参照画像マクロブロックのみ、参照画像メモリに格納する動画符号化方法が提案されている（たとえば、特許文献１参照）。
【０００４】
ところで、輪郭を多く含むマクロブロックなどでは、予測精度を向上させるために、マクロブロックをより小さな領域に分割し、分割したマクロブロックを動きベクトルの検出単位として動き予測処理を行うことがある。基本的なマクロブロックのブロックサイズは、１６×１６画素サイズであるが、たとえば、Ｈ．２６４では、必要に応じて４×４画素サイズのマクロブロックを用いることができる。
【０００５】
図２４は、Ｈ．２６４におけるマクロブロックのブロックサイズを示した図である。なお、矢印は、処理の順番を示している。
マクロブロック９１は、基本の１６×１６画素サイズのマクロブロックである。以下、所定の画素サイズのマクロブロックを「ＭＢ（画素サイズ）」と表記する。たとえば、マクロブロック９１は、ＭＢ（１６×１６）９１と表す。
【０００６】
ＭＢ（１６×８）９２は、ＭＢ（１６×１６）９１を横方向に２分割した形状の１６×８画素サイズ、ＭＢ（８×１６）９３は、ＭＢ（１６×１６）９１を縦方向に２分割した形状の８×１６画素サイズ、ＭＢ（８×８）９４は、ＭＢ（１６×１６）９１を４等分した形状の８×８画素サイズのマクロブロックである。なお、マクロブロック間の処理順は図に示したように、ＭＢ（１６×８）９２は上から下、ＭＢ（８×１６）９３は左から右、ＭＢ（８×８）９４は、左上、右上、左下、右下の順に処理を行う。
【０００７】
さらに、Ｈ．２６４では、ＭＢ（８×８）９４のマクロブロックをさらに分割したサブマクロブロック分割を指定することもできる。マクロブロックと同様に、所定の画素サイズのサブマクロブロックを「サブＭＢ（画素サイズ）」と表記する。サブＭＢ（８×４）９５ａは８×４画素サイズ、サブＭＢ（４×８）９５ｂは４×８画素サイズ、サブＭＢ（４×４）９５ｃは４×４画素サイズで構成される。サブマクロブロック内の処理順は、図に示したように、同一形状のマクロブロックと同じになる。
【０００８】
このように、より小さい単位のブロックサイズのマクロブロックを利用することよって、より激しい、あるいは、細かい動きへの追従性が向上するが、ベクトルの符号量が増える。そこで、マクロブロックを小領域単位に分割して個々に動き補償を行う場合において、動きベクトル検出単位（マクロブロック）の大きさに応じて仮想サンプルの精度を決定し、仮想サンプル生成に必要なメモリバンド幅を削減する画像符号化装置が提案されている（たとえば、特許文献２参照）。
【特許文献１】特開２００４−２６６７３１号公報
【特許文献２】特開２００４−４８５５２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
しかし、従来のフレーム間予測処理では、マクロブロックの様々なブロックサイズに対応できるように、最も小さいブロックサイズに合わせて参照画像データを設定しなければならないという問題点があった。
【００１０】
画像符号化装置では、マクロブロック単位で検出された動きベクトル（以下、ＭＶとする。ＭＶ：Motion Vector）と、このマクロブロックの周辺領域のＭＶを予測値とする動きベクトル予測値（以下、ＭＶＰとする。ＭＶＰ：MV Predictor）との予測差分値（以下、ＭＶＤとする。ＭＶＤ：MV Difference）を符号化対象とし、マクロブロック情報とともに符号化して画像復号装置へ送る。画像復号装置では、符号化されたＭＶＤとマクロブロック情報とを復号し、ＭＶＰとＭＶＤとからＭＶを生成して元の画像を復元する。このとき、ＭＶＰは、既に復元された周辺領域のＭＶを参照して生成される。
【００１１】
以下、画像復号装置のＭＶ生成処理の場合を例にとって説明する。
図２５は、従来の画像復号装置における動きベクトル生成処理部の構成図である。
画像復号装置では、メモリ９０１、ＭＶＰ生成制御９０２、ＭＶ生成制御９０３、４×４サイズ格納処理９０４、隣接マクロブロックＡ（以下、隣接ＭＢ［Ａ］とする）格納制御９０５、及び隣接マクロブロックＢ，Ｃ，Ｄ（以下、隣接ＭＢ［ＢＣＤ］とする）格納制御９０６を具備する。メモリ９０１には、参照用としてマクロブロックの最小サイズ（４×４）に応じたＭＶ格納領域が用意されており、既に復号された周辺領域、すなわち、対象マクロブロック及び隣接マクロブロックのＭＶが格納されている。
【００１２】
動作を説明する。マクロブロックサイズ（以下、ＭＢサイズとする）、サブＭＢサイズ、及び復号されたＭＶＤが入力され、ＭＶ生成処理が開始される。ＭＶＰ生成制御９０２は、メモリ９０１の対象マクロブロックに隣接する隣接マクロブロックのＭＶを読み出し、読み出したＭＶに基づいて対象マクロブロックのＭＶＰを生成する。このとき、読み出しＭＶに対応する隣接マクロブロックは、最小ブロック単位で指定される。ＭＶ生成制御９０３は、算出されたＭＶＰとＭＶＤからＭＶを復元する。４×４サイズ格納処理９０４は、復元されたＭＶを、ブロックサイズの最小単位である４×４画素サイズに応じてメモリ９０１のＭＶ格納領域に展開する。また、メモリ９０１には、隣接マクロブロックのＭＶ格納領域が用意されている。これもマクロブロックと同様に、マクロブロックの最小サイズ単位に応じて領域が確保されている。隣接ＭＢ［Ａ］格納制御９０５及び隣接ＭＢ［ＢＣＤ］９０６では、以降の処理に用いるため、隣接マクロブロックのＭＶ格納領域に４×４画素サイズに合わせてＭＶを展開する処理が行われる。
【００１３】
図２６は、ＭＢ（１６×１６）の隣接マクロブロックと、ＭＶ展開処理とを示した図である。
以下、現処理対象のマクロブロック部分（Part）をＣｕ（Current Part）とする。
【００１４】
処理対象のＣｕの隣接マクロブロックは、Ｃｕの左隣の隣接ＭＢ［Ａ］、真上の隣接ＭＢ［Ｂ］、右上の隣接ＭＢ［Ｃ］、及び左上の隣接ＭＢ［Ｄ］になる。ＭＶＰ生成制御９０２では、参照ＭＶを読み出す隣接マクロブロックの指定は、最小ブロック単位で行われる。
【００１５】
すなわち、（Ａ）ＭＢ（１６×１６）９１０がＣｕの場合には、隣接ＭＢ［Ａ］９１１は、Ｃｕ９１０の左に隣接する最上段のサブＭＢ（４×４）になる。同様に、隣接ＭＢ［Ｂ］９１２は、上に隣接する最も左のサブＭＢ（４×４）、隣接ＭＢ［Ｃ］９１３は、右上に隣接するサブＭＢ（４×４）、及び隣接ＭＢ［Ｄ］９１４は、左上に隣接するサブＭＢ（４×４）になる。こうして読み出されたＭＶに基づいてＭＶＰが算出され、このＭＶＰとＭＶＤからＣｕ９１０のＭＶ（ＭＶ０とする）が生成された。生成されたＭＶ０は、４×４サイズ格納処理９０４によって、Ｃｕ９１０に用意されたＭＶ格納領域９１０−１に格納される。
【００１６】
前述のように、メモリ９０１のＭＶ格納領域９１０−１には、最小ブロック単位に合わせてＭＶ格納領域が確保されている。すなわち、１６×１６画素サイズを最小ブロック単位（４×４画素）に分割した場合を想定し、１６のＭＶ格納領域が用意されている。４×４展開処理では、この１６のＭＶ格納領域すべてにＭＶ０を格納する。なお、図は、ＭＶ格納領域とマクロブロック構成との対応を説明するものであり、実際のメモリ構成を示すものではない。
【００１７】
このようにＭＶ０を全領域展開しておくことにより、たとえば、Ｃｕ９１０が隣接ＭＢ［Ａ］となった場合、右上のＭＶ格納領域９１１−１からデータを読み出すことができる。同様に、隣接ＭＢ［Ｂ］９１２と、隣接ＭＢ［Ｃ］９１３の場合は、左下のＭＶ格納領域９１２−１からデータを読み出すことができ、隣接ＭＢ［Ｄ］９１４の場合は、ＭＶ格納領域９１４−１からデータを読み出すことができる。
【００１８】
図２７は、ＭＢ（１６×８）の隣接マクロブロックを示した図である。
ＭＢ（１６×８）９２１がＣｕの場合、隣接ＭＢ［Ａ］９２１ａ、隣接ＭＢ［Ｂ］９２１ｂ、隣接ＭＢ［Ｃ］９２１ｃ、及び隣接ＭＢ［Ｄ］９２１ｄが参照され、ＭＶが算出される。続いて、ＭＢ（１６×８）９２２がＣｕになると、隣接ＭＢ［Ａ］９２２ａ、隣接ＭＢ［Ｂ］９２２ｂ、及び隣接ＭＢ［Ｄ］９２２ｄが参照され、ＭＶが算出される。隣接ＭＢ［Ｂ］９２２ｂは、Ｃｕ９２１について算出されたＭＶになる。したがって、Ｃｕ９２１について生成されたＭＶを、Ｃｕ９２１に対応する全ＭＶ格納領域に格納しておけば、以降の処理で隣接マクロブロックとして読み出すことができる。
【００１９】
以上のように、従来の処理では、以降の処理で、隣接マクロブロックのブロックサイズによらずＭＶを読み出すことができるように、４×４展開処理を行って、ＭＶを対応する全ＭＶ格納領域に展開していた。
【００２０】
図２８は、ＭＶの展開処理を示す図である。（Ａ）は、１６×１６サイズのＭＶ展開のシーケンス図であり、（Ｂ）は、１６×８サイズのＭＶ展開のシーケンス図である。
（Ａ）ＭＢ（１６×１６）の場合、Ｃｕ９１０に対して生成されるＭＶは、ＭＶ０のみであるので、ＭＶ０を全１６のＭＶ格納領域に格納する。図の例では、書き込み許可信号（ＥＮ）が立ち上がると、ＭＶ０を書き込みアドレス（ＷＡＤ）の０から１５までに対応するＭＶ格納領域に順次書き込む。これにより、以降の処理において、ＷＡＤ０から１５の任意のＭＶ格納領域からＭＶ読み出しを行っても、ＭＶ０を読み出すことができるようになる。
【００２１】
（Ｂ）ＭＢ（１６×８）の場合、Ｃｕ９２１に対応するＭＶ０と、Ｃｕ９２２に対応するＭＶ１が算出される。そこで、Ｃｕ９２１の領域に対応するＭＶ格納領域にＭＶ０を書き込み、Ｃｕ９２２の領域に対応するＭＶ格納領域にＭＶ１を書き込む。図の例では、書き込み許可信号（ＥＮ）が立ち上がると、ＭＶ０をＷＡＤの０から７までに対応するＭＶ格納領域に順次書き込み、続いてＭＶ１をＷＡＤの８から１５に対応するＭＶ格納領域に順次書き込む。これにより、以降の処理において、Ｃｕ９２１に対応するＷＡＤ０から７の任意のＭＶ格納領域からＭＶ０が読み出せる。そして、Ｃｕ９２２に対応するＷＡＤ８から１５の任意のＭＶ格納領域からＭＶ１が読み出せる。
【００２２】
このようにＭＶを展開しておくことにより、次以降のＣｕの処理において、１６×１６サイズのマクロブロックに対応する任意のＭＶ格納領域から参照ＭＶを読み出すことが可能となる。しかしながら、１６×１６サイズのマクロブロックに対応する全ＭＶ格納領域にＭＶを展開するために、処理時間がかかるという問題点がある。なお、他の形状のマクロブロックの場合も同様の処理が行われ、そのマクロブロックに属する全ＭＶ格納領域に、ＭＶが展開される。
【００２３】
また、隣接ＭＢ［Ａ］格納制御９０５は、メモリ９０１上に予め用意されている隣接ＭＢ［Ａ］の値を格納する領域に次の処理で参照する隣接ＭＢ［Ａ］に相当するデータを格納する。この場合も、４×４サイズに対応して処理を行うための展開処理が行われる。
【００２４】
以上のように、参照用の隣接ＭＢデータにも同様の処理を行わなければならないため、ＭＶ生成処理にさらに時間がかかってしまうという問題点もある。
また、Ｈ．２６４では、予測精度を上げるため、未来方向、過去方向を含む複数の２フレームを参照フレームとして用いることができる。この場合、ＭＶ格納領域がさらに増えることとなり、処理時間が増大する。さらに、画像サイズ（画素数）が大きくなった場合、処理するマクロブロックの数も多くなることから、ＭＶの展開処理に要する時間も増大する。近年、予測精度の向上や画像サイズの増加が求められており、これにともなってＭＶＰ生成に要する処理の高速化が要求されている。
【００２５】
本発明はこのような点に鑑みてなされたものであり、様々なブロックサイズが任意に選択されるマクロブロックの画像処理を高速化するフレーム間予測処理装置とフレーム間予測方法を提供することにある。さらに、このフレーム間予測処理装置を具備する画像符号化装置と画像復号装置を提供することを目的とする。
【課題を解決するための手段】
【００２６】
本発明では、上記課題を解決するために、図１に示すようなフレーム間予測処理装置が提供される。本発明に係るフレーム間予測処理装置は、参照画像記憶部１、予測値算出部２、アドレス算出部３、及び参照画像格納部４を具備し、所定の領域に分割した動きベクトル検出単位でフレーム間予測処理を行う。
【００２７】
参照画像記憶部１には、必要に応じて所定のサイズに設定される動きベクトル検出単位ごとに生成された動きベクトルデータを格納する動きベクトル格納領域を有する。この動きベクトル格納領域は、最もサイズが小さい、動きベクトル検出単位の最小単位の場合にも動きベクトルデータを格納することができるように領域が確保されている。アドレス算出部３は、指定された動きベクトル検出単位の動きベクトルデータが格納される参照画像記憶部１のアドレスを、指定された動きベクトル検出単位のブロックサイズに基づいて算出する。予測値算出部２は、アドレス算出部３に対して隣接動きベクトル検出単位を指示し、隣接動きベクトル検出単位の動きベクトルデータが格納される参照画像記憶部１のアドレスを取得する。隣接動きベクトル検出単位は、対象動きベクトル検出単位に隣接し、対象動きベクトル検出単位のフレーム間予測処理において参照される動きベクトルデータが生成された動きベクトル検出単位を指す。そして、取得したアドレスに基づいて、参照画像記憶部１に格納される動きベクトルデータを読み出し、この対象動きベクトル検出単位を単位とする動きベクトル予測値を算出する。参照画像格納部４は、以降の処理で参照するため、隣接動きベクトル検出単位の動きベクトルデータを、隣接動きベクトル検出単位に対応する動きベクトル格納領域の所定の領域に格納する。
【００２８】
このようなフレーム間予測処理装置によれば、参照画像記憶部１には、動きベクトル検出単位の最小サイズに応じた動きベクトル格納領域が確保されている。動きベクトルデータは、参照画像格納部４によって、動きベクトルデータが生成された動きベクトル検出単位のサイズに応じて、動きベクトル格納領域のうちの予め指定された所定の領域に格納されている。予測値算出部２は、アドレス算出部３に対して隣接動きベクトル検出単位を指定する。アドレス算出部３では、指定された隣接動きベクトル検出単位のサイズに応じて、その隣接動きベクトル検出単位に関する動きベクトルデータが格納される動きベクトル格納領域の参照画像記憶部１におけるアドレスを算出し、予測値算出部２へ返す。予測値算出部２では、取得したアドレスに基づいて参照画像記憶部１から動きベクトルデータを読み出して対象動きベクトル検出単位の動きベクトル予測値を算出する。以上の手順を、所定の処理順に従って、動きベクトル検出単位ごとに実行する。
【００２９】
また、本発明では、上記課題を解決するために、基本処理単位の動きベクトル検出単位ごとに、入力画像について所定の参照画像からの動き補償を行って生成した予測誤差を圧縮符号化する画像符号化装置において、必要に応じて所定のサイズに設定される動きベクトル検出単位ごとに生成された動きベクトルデータを格納する動きベクトル格納領域が、動きベクトル検出単位の最小単位に応じて用意される参照画像記憶部と、指定された動きベクトル検出単位の動きベクトルデータが格納される参照画像記憶部のアドレスを指定された動きベクトル検出単位のサイズに基づいて算出するアドレス算出部と、アドレス算出部に対して対象動きベクトル検出単位のフレーム間予測で参照する対象動きベクトル検出単位に隣接する隣接動きベクトル検出単位を指示して隣接動きベクトル検出単位について生成された動きベクトルデータが格納されるアドレスを取得し、取得した前記アドレスに基づいて、参照画像記憶部より隣接動きベクトル検出単位の動きベクトルデータを読み出し、対象動きベクトル検出単位の動きベクトル予測値を算出し、算出した対象動きベクトル検出単位の動きベクトル予測値と、対象動きベクトル検出単位について検出された動きベクトルデータとの予測差分値を算出して符号化対象とするフレーム間予測部と、動きベクトル予測値の算出のために参照される隣接動きベクトル検出単位の動きベクトルデータを、隣接動きベクトル検出単位に対応する動きベクトル格納領域の所定の領域に格納する参照画像格納部と、を具備することを特徴とする画像符号化装置、が提供される。
【００３０】
このような画像符号化装置によれば、入力画像を分割した動きベクトル検出単位ごとに、フレーム間予測部が、参照画像格納部の所定のアドレスに格納される参照対象の周辺領域の動きベクトルデータの格納アドレスをアドレス算出部より取得する。参照画像格納部には、参照画像格納部によって、動きベクトルデータの対象の動きベクトル検出単位に対応する動きベクトルデータ格納領域内の１の格納アドレスに動きベクトルデータが設定されている。そして、取得したアドレスより読み出した周辺領域の動きベクトルデータから動きベクトル予測値を算出し、さらに、動きベクトルデータとの予測差分値を算出する。算出した予測差分値は、符号化対象として、以降の処理において符号化される。
【００３１】
また、本発明では、上記課題を解決するために、基本処理単位の動きベクトル検出単位ごとに、入力画像について所定の参照画像からの動き補償を行って生成した予測誤差を圧縮符号化した画像符号化信号を入力し、元の動画像を復元する画像復号装置において、必要に応じて所定のサイズに設定される動きベクトル検出単位ごとに生成された動きベクトルデータを格納する動きベクトル格納領域が、動きベクトル検出単位の最小単位に応じて用意される参照画像記憶部と、指定された動きベクトル検出単位の動きベクトルデータが格納される参照画像記憶部のアドレスを指定された動きベクトル検出単位のサイズに基づいて算出するアドレス算出部と、アドレス算出部に対して対象動きベクトル検出単位のフレーム間予測で参照する対象動きベクトル検出単位に隣接する隣接動きベクトル検出単位を指示して隣接動きベクトル検出単位について生成された動きベクトルデータが格納されるアドレスを取得し、取得した前記アドレスに基づいて参照画像記憶部より隣接動きベクトル検出単位の動きベクトルデータを読み出して対象動きベクトル検出単位の動きベクトル予測値を算出し、算出した対象動きベクトル検出単位の動きベクトル予測値と復号された予測差分値とを用いて対象動きベクトル検出単位の動きベクトルを復号するフレーム間予測部と、フレーム間予測部によって復号され、動きベクトル予測値の算出のために参照される対象動きベクトル検出単位の動きベクトルデータを、隣接動きベクトル検出単位に対応する動きベクトル格納領域の所定の領域に格納する参照画像格納部と、を具備することを特徴とする画像復号装置、が提供される。
【００３２】
このような画像復号装置によれば、入力画像を分割した動きベクトル検出単位ごとに、符号化された画像信号が入力されると、復号された予測差分値と動きベクトル検出単位情報に基づいてフレーム間予測部が、参照画像格納部の所定のアドレスに格納される参照対象の周辺領域の動きベクトルデータの格納アドレスをアドレス算出部より取得する。参照画像格納部には、参照画像格納部によって、対象の動きベクトル検出単位に対応する動きベクトルデータ格納領域内の１の格納アドレスに、既に復号された周辺領域の動きベクトルデータが設定されている。そして、取得したアドレスより読み出した周辺領域の動きベクトルデータから動きベクトル予測値を算出し、予測差分値とから動きベクトルデータを生成する。
【発明の効果】
【００３３】
本発明に係るフレーム間予測処理装置では、フレーム間予測処理において参照される動きベクトルデータが格納されているアドレスを自動的に算出し、データを読み出すことができる。このため、動きベクトル検出単位のサイズによらずどこからでも読み出すことができるように、最も小さい分割単位に合わせて動きベクトル検出単位に対応する全領域に動きベクトルデータを展開する必要がなくなる。この結果、全領域に動きベクトルデータを展開するために要していた処理時間を省くことができ、全体の処理時間を短くすることができる。
【００３４】
また、このようなフレーム間予測処理装置を搭載した画像符号化装置及び画像復号装置は、動き補償に要する処理時間が短縮され、結果として画像処理時間を短縮することができる。
【発明を実施するための最良の形態】
【００３５】
以下、本発明の実施の形態を図面を参照して説明する。まず、実施の形態に適用される発明の概念について説明し、その後、実施の形態の具体的な内容を説明する。なお、以下の説明では、画素サイズを省略し、たとえば、１６×１６画素サイズは、１６×１６と表記する。
【００３６】
図１は、実施の形態に適用される発明の概念図である。本発明は、画像を所定のサイズの動きベクトル検出単位に分割し、順次画像処理を行う画像符号化装置及び画像復号装置に適用される。以下、このような動きベクトル検出単位をマクロブロックと呼び、１つのマクロブロックが占有する領域の大きさをブロックサイズと呼ぶ。ブロックサイズは、画像の変化や形状の細かさなど、必要に応じて、複数用意されたブロックサイズから任意に選択することができる。ブロックサイズの決定処理については公知であるので、ここでは言及しない。なお、以下の説明では、特に、１６×１６のマクロブロックを基本マクロブロックと呼ぶこととする。
【００３７】
本発明に係るフレーム間予測処理装置は、参照画像記憶部１、予測値算出部２、アドレス算出部３、及び参照画像格納部４を具備し、周辺領域の動きベクトルデータ（ＭＶ）を参照して対象マクロブロックの動きベクトル予測値（ＭＶＰ）を算出する。
【００３８】
参照画像記憶部１は、ＭＶＰ算出時に参照する周辺領域の隣接マクロブロックを含む所定のマクロブロックについて生成されたＭＶを格納するメモリである。参照画像記憶部１は、少なくとも、現時点で処理対象の基本マクロブロックに含まれるマクロブロックのＭＶを格納するＭＶ格納領域と、参照される周辺領域に属する隣接マクロブロックのＭＶを格納する隣接マクロブロックＭＶ格納領域とを有する。また、それぞれの基本マクロブロックについて、分割可能な最小のＭＢサイズに応じた最大数のＭＶを格納できるように、ＭＶ格納領域が確保されている。たとえば、Ｈ．２６４であれば、基本単位の１６×１６のマクロブロックを、最小の４×４に分割した場合を想定し、基本マクロブロックに対し、１６のＭＶ格納領域が用意される。各マクロブロックのＭＶは、基本マクロブロックに対応する１６のＭＶ格納領域のうちの所定の１つの領域に格納される。たとえば、ＭＢ（１６×１６）に対してＭＶが生成された場合は、対応する１６のＭＶ格納領域のうちの所定の１つの領域にＭＶが格納される。どの領域に格納されるかは、予め決められた規則に応じて、マクロブロックの形状ごとに一意に決められる。以下、ＭＶが格納されるＭＶ格納領域を代表ＭＶ格納領域、そのＭＶを代表ＭＶと呼ぶこととする。
【００３９】
予測値算出部２は、アドレス算出部３に対して隣接マクロブロックを指定して、代表ＭＶ格納領域の参照画像記憶部１におけるアドレスを取得する。そして、取得したアドレスに基づいて参照画像記憶部１から代表ＭＶを読み出し、読み出したＭＶに基づいてＭＶＰを算出する。画像符号化の場合には、このＭＶＰとＭＶとの差分であるＭＶＤ（予測差分値）が圧縮符号化され、復号装置へ送られる。また、復号の場合には、算出されたＭＶＰと、復号されたＭＶＤとを用いてＭＶが復元される。ＭＶは、画像の復号に用いられる。
【００４０】
アドレス算出部３は、予測値算出部２から、隣接マクロブロックの指定を受け取ると、隣接マクロブロックのブロックサイズに基づき、代表ＭＶが格納される参照画像記憶部１のアドレスを算出する。隣接マクロブロックについて実行されたＭＶ生成処理では、隣接マクロブロックのブロックサイズに応じた代表ＭＶ格納領域のみに、代表ＭＶを格納している。この代表ＭＶ格納領域は、そのマクロブロックのブロックサイズに応じて一意に決まるので、入力された隣接マクロブロック指定からそのブロックサイズを検出し、対応する参照画像記憶部１のアドレスを算出する。算出した代表ＭＶ格納領域のアドレスは、予測値算出部２へ出力する。詳細は後述するが、隣接マクロブロックのサイズに応じて代表ＭＶ格納領域が一意に決まる変換テーブルを予め用意しておき、変換テーブルに基づいてアドレスを導出してもよい。
【００４１】
参照画像格納部４は、以降の処理で参照されるマクロブロックの代表ＭＶを所定の隣接マクロブロックＭＶ格納領域に格納する。隣接マクロブロックＭＶ格納領域は、次以降の処理の対象マクロブロックに対するＭＶＰ算出時に用いられるＭＶを格納するために参照画像記憶部１に設けられた領域である。
【００４２】
このようなフレーム間予測処理装置の動作及びフレーム間予測方法について説明する。
予測値算出部２は、入力画像のマクロブロック処理順に応じて指定された対象マクロブロックのＭＶＰを算出する。当該マクロブロックについての処理が行われるまでに、参照画像記憶部１には、参照される隣接マクロブロックの代表ＭＶが、所定の代表ＭＶ格納領域に格納されている。予測値算出部２は、隣接マクロブロックを指定してアドレス算出部３へ代表ＭＶ格納領域のアドレス算出を依頼する。アドレス算出部３は、指定された隣接マクロブロックのブロックサイズに基づいて代表ＭＶ格納領域のアドレスを算出し、予測値算出部２へ通知する。予測値算出部２は、取得したアドレスを用いて参照画像記憶部１からＭＶを読み出し、ＭＶＰを生成する。ＭＶＰは、符号化装置では、符号化対象データであるＭＶＤ（予測差分値）を算出するために用いられる。また、復号装置では、復号されたＭＶＤを用いてＭＶを復元するために用いられる。
【００４３】
さらに、対象ブロックのＭＶは、参照画像格納部４によって、次以降の処理における隣接マクロブロックのＭＶとして参照できるように、隣接マクロブロックＭＶ格納領域に格納される。
【００４４】
このように、本発明に係るフレーム間予測処理装置では、アドレス算出部３が、必要に応じて様々なブロックサイズをとるマクロブロックのＭＶＰ生成に利用する周辺領域のＭＶが格納される代表ＭＶ格納領域のアドレスを算出する。このように、代表ＭＶ格納領域のアドレスが特定されるため、最小のブロックサイズに合わせて、参照画像記憶部１にＭＶを展開しておく必要がなくなり、処理に要する時間を短縮することが可能となる。
【００４５】
以下、実施の形態を、Ｈ．２６４に基づく符号化及び復号処理を行う画像符号化装置と画像復号装置に適用した場合を例に図面を参照して詳細に説明する。Ｈ．２６４では、１６×１６の基本マクロブロックに加え、１６×８、８×１６、及び８×８の４種類のマクロブロックが選択可能となっている。さらに、８×８サイズのマクロブロックについては、８×８、８×４、４×８、４×４の４種類のサブブロック分割を指定することもできる。基本的なアルゴリズムは、符号化処理では、フレームを基本処理単位のマクロブロックに分割し、マクロブロックごとに、フレーム内の空間的冗長性を利用したフレーム内予測と、フレーム間の時間的冗長性を利用したフレーム間予測とを適宜切り替えて、入力画像の符号化を行う。復号処理では、その逆動作が行われる。なお、Ｈ．２６４では、両方向の参照フレームを用いることができるが、以下では、片方向の場合で説明する。両方向の場合には、両方向のＭＶを格納するための領域が増えるが、処理は片方向と同様に行われる。
【００４６】
図２は、本発明の実施の形態の画像符号化装置の構成を示したブロック図である。
本発明の実施の形態の画像符号化装置１００は、ＭＢ分割１０１、動きベクトル検出１０２、過去のフレームバッファ１０３、フレーム間予測１０４、フレーム内予測１０５、現フレームバッファ１０６、予測モード選択１０７、減算器１０８、直交変換量子化１０９、エントロピー符号化１１０、逆量子化逆直交変換１１１、加算器１１２、デブロッキングフィルタ１１３、及びフレームバッファ管理１１４を有する。
【００４７】
このような画像符号化装置１００では、入力画像は、ＭＢ分割１０１によって所定の大きさのマクロブロックに分割される。動きベクトル検出１０２は、入力したＭＢ単位の画像信号と、過去のフレームバッファ１０３に格納される参照画像とを用いて、対象マクロブロックのＭＶを検出する。ＭＶは、通常、周辺領域との相関が高いので、フレーム間予測１０４では、周辺領域のＭＶを予測値として、周辺のＭＶに基づいてＭＶＰを算出し、ＭＶとの間のＭＶＤを算出する。フレーム内予測１０５は、現フレームバッファ１０６のフレーム内予測を行う。予測モード選択１０７は、フレーム間予測１０４とフレーム内予測１０５の予測誤差を比較するなどして、当該マクロブロックを最も効率よく符号化することができる符号化モードを選択し、符号化モード情報を生成する。この符号化モード情報も、符号化対象情報として、エントロピー符号化１１０へ受け渡される。符号化モード情報には、マクロブロックを分割した分割マクロブロックのサイズと、分割マクロブロックをさらに分割したサブマクロブロックのサイズが含まれる。
【００４８】
予測モード選択１０７としてフレーム内予測１０５が選択される場合は、ＭＢ分割１０１を経由したマクロブロックの入力画像がそのまま直交変換量子化１０９へ出力され、直交変換と量子化が施される。こうして生成された直交変数係数データは、エントロピー符号化１１０へ受け渡される。また、この直交変換係数データは、逆量子化逆直交変換１１１によってデコードされ、現フレームバッファ１０６に書き込まれる。
【００４９】
予測モード選択１０７としてフレーム間予測１０４が選択される場合は、フレーム間予測１０４が算出したＭＶＤが符号化対象として選択され、エントロピー符号化１１０へ受け渡される。また、予測モード選択１０７経由でＭＶＰに基づく予測画像が減算器１０８へ出力される。減算器１０８では、マクロブロック単位の入力画像と、予測画像との差分が算出され、直交変換量子化１０９へ出力される。この出力は、逆量子化逆直交変換１１１によってデコードされ、加算器１１２によって予測モード選択１０７からの予測画像を加算した後、現フレームバッファ１０６に書き込まれる。
【００５０】
エントロピー符号化１１０は、符号化対象データのエントロピー符号化を行い、画像圧縮符号化信号として出力する。また、現フレームバッファ１０６に格納される参照画像は、デブロッキングフィルタ１１３によりマクロブロック境界が平滑化され、フレームバッファ管理１１４を経由して、過去のフレームバッファ１０３に格納される。
【００５１】
次に、画像復号装置について説明する。
図３は、本発明の実施の形態の画像復号装置の構成を示したブロック図である。
本発明の実施の形態の画像復号装置２００は、エントロピー復号２０１、逆量子化逆直交変換２０２、加算器２０３、現フレームバッファ２０４、フレーム内予測２０５、予測モード選択２０６、デブロッキングフィルタ２０７、フレームバッファ管理２０８、過去のフレームバッファ２０９、及びフレーム間予測２１０、を具備し、図２に示した画像符号化装置１００が生成した画像圧縮符号化信号を復号する。
【００５２】
画像圧縮符号化信号は、エントロピー復号２０１によってエントロピー復号が施された後、逆量子化逆直交変換２０２によって逆量子化と逆直交変換が施される。フレーム間予測１０４によって符号化されている場合は、ＭＶＤの形式で符号化されている動きベクトルデータを復号する。予測モード選択２０６は、逆量子化逆直交変換２０２によって復元された符号化モード情報に基づき、フレーム内予測２０５またはフレーム間予測２１０を選択する。
【００５３】
予測モード選択２０６としてフレーム内予測２０５が選択される場合は、逆量子化逆直交変換２０２によって復元された画像が現フレームバッファ２０４に書き込まれる。
予測モード選択２０６としてフレーム間予測２１０が選択される場合は、ＭＶＤの形式で復号された動きベクトルを、各動きベクトル適用単位領域、すなわち、分割マクロブロックの領域ごとに、各動きベクトル適用単位領域で使用された動きベクトルデータ（ＭＶ）へ復号する。復号されたＭＶに基づいて予測画像が復元され、予測モード選択２０６経由で加算器２０３に入力する。そして、逆量子化逆直交変換２０２により復号された予測誤差と加算されることによって、画像が復号され、現フレームバッファ２０４に格納される。
【００５４】
現フレームバッファ２０４に格納された画像データは、デブロッキングフィルタ２０７、フレームバッファ管理２０８を経由して、過去のフレームバッファ２０９に格納される。
【００５５】
次に、上記の画像復号装置のフレーム間予測２１０における動きベクトルの復号について説明する。図４は、本実施の形態の画像復号装置のフレーム間予測における動きベクトル生成処理を示した機能ブロック図である。
【００５６】
フレーム間予測２１０は、対象マクロブロックと隣接マクロブロックのＭＶを格納するメモリ２１１、ＭＶＰ生成部２１２、アドレス変換部２１３、ＭＶ生成部２１４、隣接ＭＢ［Ａ］格納部２１５、及び隣接ＭＢ［ＢＣＤ］格納部２１６を具備し、対象マクロブロックのＭＶを生成する。なお、前述のように、処理対象のＣｕの隣接マクロブロックは、Ｃｕの左隣を隣接ＭＢ［Ａ］、真上を隣接ＭＢ［Ｂ］、右上を隣接ＭＢ［Ｃ］、及び左上を隣接ＭＢ［Ｄ］とする。また、隣接ＭＢ［ＢＣＤ］は、隣接ＭＢ［Ｂ］、隣接ＭＢ［Ｃ］、及び隣接ＭＢ［Ｄ］をまとめて示す場合の表記とする。
【００５７】
メモリ２１１には、対象マクロブロックのＭＶと、対象マクロブロックのＭＶＰの生成時に参照する隣接マクロブロックのＭＶが格納される。詳細は後述する。
ＭＶＰ生成部２１２は、隣接マクロブロックを指定して、アドレス変換部２１３から、隣接マクロブロックの代表ＭＶが格納される代表ＭＶ格納領域のメモリ２１１におけるアドレスを取得する。そして、代表ＭＶを読み出し、代表ＭＶからＭＶＰを算出する。ＭＶＰ算出には、種々の方法があるが、ここでは、隣接マクロブロックのＭＶの中間値をＭＶＰとする。隣接ＭＢ［Ａ］のＭＶをＭＶＡ、隣接ＭＢ［Ｂ］のＭＶをＭＶＢ、隣接ＭＢ［Ｃ］のＭＶをＭＶＣ、及び隣接ＭＢ［Ｄ］のＭＶをＭＶＤとすると、ＣｕのＭＶＰは、
ＭＶＰ＝Ｍｅｄｉａｎ（ＭＶＡ，ＭＶＢ，ＭＶＣ）                  ・・・（１）
と表すことができる。なお、画面端などでＭＶＣが存在しない場合、ＭＶＤを使用する。
【００５８】
中間値の生成式は、３値ｘ，ｙ，ｚを用いて、
Ｍｅｄｉａｎ（ｘ，ｙ，ｚ）＝ｘ＋ｙ＋ｚ−Ｍｉｎ（ｘ，Ｍｉｎ（ｙ，ｚ））
−Ｍａｘ（ｘ，Ｍａｘ（ｙ，ｚ））    ・・・（２）
によって表すことができる。Ｍｉｎ（ｘ，ｙ）は、小さい方の値をとることを表し、Ｍａｘ（ｘ，ｙ）は、大きい方の値をとることを表す。
【００５９】
アドレス変換部２１３は、隣接マクロブロックのサイズ（ＭＢサイズとサブＭＢサイズ）から、その代表ＭＶ格納領域のアドレスに変換する。
ＭＶ生成部２１４は、ＭＶＰ生成部２１２によって算出されたＭＶＰと復号されたＭＶＤとからＭＶを復元する。ＭＶは、
ＭＶ＝ＭＶＰ＋ＭＶＤ                                            ・・・（３）
によって算出することができる。算出されたＭＶは、この対象マクロブロックに対応するメモリ２１１内の代表ＭＶ格納領域に書き込む。
【００６０】
隣接ＭＢ［Ａ］格納部２１５は、以降のマクロブロック処理で参照される隣接ＭＢ［Ａ］に相当する対象マクロブロックのＭＶをメモリ２１１から読み出し、メモリ２１１に用意された隣接ＭＢ［Ａ］格納領域に設定する。
【００６１】
隣接ＭＢ［ＢＣＤ］格納部２１６は、以降のマクロブロック処理で参照される隣接ＭＢ［Ｂ］，ＭＢ［Ｃ］，ＭＢ［Ｄ］に相当する対象マクロブロックのＭＶをメモリ２１１から読み出し、メモリ２１１に用意された隣接ＭＢ［ＢＣＤ］格納領域に設定する。
【００６２】
以下、このような構成のフレーム間予測２１０の動作及びフレーム間予測方法について説明する。
ここで、フレーム構成と、メモリ２１１内のＭＶ格納領域について説明する。図５は、本発明の実施の形態のＭＶ格納領域とフレーム構成との関係を示した図である。
【００６３】
フレーム３００は、基本マクロブロックであるＭＢ（１６×１６）３０１に分割されてフレーム間予測処理が行われる。マクロブロックのブロックサイズは、必要に応じて可変に設定することもできる。
【００６４】
メモリ２１１は、Ｃｕ３１０内のＭＶを格納するブロック内データ格納領域と、隣接ＭＢ［Ａ］３２０のＭＶと、隣接ＭＢ［ＢＣＤ］３３１，３３２のＭＶとを格納する隣接ブロックデータ格納領域とを有する。Ｃｕ３１０については、マクロブロックの最小単位であるサブＭＢ（４×４）によって、Ｃｕ３１０が占める領域を１６に分割し、分割されたそれぞれのブロックに対応付けて、１６のＭＶ格納領域が確保される。
【００６５】
隣接ＭＢ［Ａ］３２０については、Ｃｕ３１０の左に隣接する４段のサブＭＢ（４×４）に対応する４つのＭＶ格納領域が確保される。隣接ＭＢ［Ａ］格納部２１５は、Ｃｕ３１０のＭＶ生成が終了すると、Ｃｕ３１０に関するＭＶが格納されるＭＶ格納領域から、最も右の４段のサブＭＢ（４×４）に対応するＭＶを読み出し、そのデータを隣接ＭＢ［Ａ］３２０に格納する。
【００６６】
隣接ＭＢ［ＢＣＤ］３３１，３３２については、少なくとも、隣接ＭＢ［Ｂ］、隣接ＭＢ［Ｃ］、及び隣接ＭＢ［Ｄ］を含む、Ｃｕ３１０が属するフレーム行の上側に隣接するサブＭＢ（４×４）に対応するＭＶ格納領域と、Ｃｕ３１０が属するフレーム行の最下段のサブＭＢ（４×４）に対応するＭＶ格納領域が確保される。隣接ＭＢ［ＢＣＤ］格納部２１６では、Ｃｕ３１０のＭＶ生成処理が終了すると、Ｃｕ３１０に関するＭＶが格納されるＭＶ格納領域の最下段のサブＭＢ（４×４）を隣接ＭＢ［ＢＣＤ］３３２に格納する。したがって、処理対象のフレーム行が下に移動した場合には、隣接ＭＢ［ＢＣＤ］３３２に格納されるＭＶは、処理対象のＣｕ３１０の上側の隣接する隣接マクロブロックのデータになる。
【００６７】
上記の構成のメモリ２１１のＭＶ格納領域に格納されるＭＶは、Ｃｕが移動するごとに順次更新されていく。たとえば、処理対象がＣｕ３１０から右隣のマクロブロック３１１移ると、Ｃｕ３１０のＭＶを格納していた領域は、新たにＣｕとなるマクロブロック３１１のＭＶを格納する領域になる。また、隣接ＭＢ［Ａ］３２０には、Ｃｕ３１０の最も左側のブロックのＭＶが格納される。隣接ＭＢ［ＢＣＤ］３３１，３３２も同様に書き換わる。
【００６８】
ここで、説明のため、基本マクロブロックを最小単位の４×４で分割した領域に対し、便宜的に番号を割り振る。図６は、１６×１６のマクロブロックと、ブロック番号の関係を示した図である。
【００６９】
図に示したように、基本マクロブロックであるＭＢ（１６×１６）３４０を、最小単位の４×４で分割した１６ブロックについて、ＭＢ（８×８）の４つの領域に分割し、左上、右上、左下、右下と順に番号を割り振る。さらにＭＢ（８×８）を４つの領域に分割したサブＭＢ（４×４）のブロックについても左上、右上、左下、右下の順に番号を割り振る。具体的には、左上のＭＢ（８×８）のサブＭＢ（４×４）について、左上、右上、左下、右下の順にｂ０、ｂ１、ｂ２、ｂ３を割り振る。次に、右上のＭＢ（８×８）のサブＭＢ（４×４）について、左上、右上、左下、右下の順にｂ４からｂ７を割り振る。同様に、左下のＭＢ（８×８）のサブＭＢ（４×４）にｂ８からｂ１１を、右下のＭＢ（８×８）のサブＭＢ（４×４）にｂ１２からｂ１５を割り振る。
【００７０】
次に、本発明の実施の形態のＭＶ生成処理と、メモリ２１１へのＭＶ格納処理について説明する。ＭＶＰ生成部２１２は、参照する隣接マクロブロックのＭＶが格納されるメモリ２１１のアドレスをアドレス変換部２１３より取得する。そして、取得したアドレスからＭＶを読み出し、式（１）によりＭＶＰを算出する。続いて、ＭＶ生成部２１４が、式（３）により、算出されたＭＶＰと復号されたＭＶＤからＭＶを生成し、メモリ２１１の代表ＭＶ格納領域に書き込む。ここでは、処理対象のマクロブロックの左上の４×４のマクロブロックを代表ＭＶ格納領域とする。
【００７１】
図７は、本発明の実施の形態のＭＢ（１６×１６）の場合のＭＶ生成処理と格納処理を示した図である。（Ａ）は、代表ＭＶの生成、（Ｂ）は、ＭＶの書き込みシーケンスを示している。
【００７２】
ＭＢ（１６×１６）のＣｕ４００は、Ｃｕ４００に隣接する隣接ＭＢ［Ａ］のｂ５（４００ａ）、隣接ＭＢ［Ｂ］のｂ１０（４００ｂ）、隣接ＭＢ［Ｃ］のｂ１０（４００ｃ）、及び隣接ＭＢ［Ｄ］のｂ１５（４００ｄ）のＭＶを読み出し、式（１）に基づいてＭＶＰを算出する。そして、ＭＶＰと、復号されたＭＶＤを用いて、式（３）によりＭＶを生成する。これをＭＶ０とする。ＭＶ０は、Ｃｕ４００の左上のｂ０（４０１）に格納される。
【００７３】
格納処理を（Ｂ）のシーケンス図で見ると、ＥＮ信号により、ＭＶ０は、ＷＡＤ＝０のｂ０に書き込まれる。このＭＶが以降のＭＶＰ生成処理で参照される場合には、アドレス変換部２１３が格納アドレスを自動的に算出するので、メモリ２１１にＭＶを展開する必要はなく、書き込みは１ブロック分で終了する。したがって、１６ブロック分の書き込みを行っていた従来と比較し、処理時間を大幅に短縮することができる。
【００７４】
図８は、本発明の実施の形態のＭＢ（１６×８）の場合のＭＶ生成処理と格納処理を示した図である。（Ａ）は、代表ＭＶの生成、（Ｂ）は、ＭＶの書き込みシーケンスを示している。
【００７５】
ＭＢ（１６×８）の上側のＣｕ０（４１１）は、Ｃｕ０（４１１）に隣接する隣接ＭＢ［Ａ］のｂ５（４１１ａ）、隣接ＭＢ［Ｂ］のｂ１０（４１１ｂ）、隣接ＭＢ［Ｃ］のｂ１０（４１１ｃ）、及び隣接ＭＢ［Ｄ］のｂ１５（４１１ｄ）のＭＶを読み出してＭＶＰを算出し、ＭＶ０を生成する。ＭＶ０は、Ｃｕ０（４１１）の左上のｂ０（４１２）に格納される。続いて、下側のＣｕ１（４１３）に対し、Ｃｕ１（４１３）に隣接する隣接ＭＢ［Ａ］のｂ１３（４１３ａ）、隣接ＭＢ［Ｂ］に相当するＣｕ０（４１１）のｂ２（４１３ｂ）、及び隣接ＭＢ［Ｄ］のｂ１５（４１３ｄ）のＭＶを読み出してＭＶＰを算出し、ＭＶ１を生成する。なお、隣接ＭＢ［Ｃ］に相当する図のＸ（４１３ｃ）には、ＭＶが存在しない。この場合、式（１）に従って、ＭＶＡ、ＭＶＢ、ＭＶＤよりＭＶが算出される。算出されたＭＶ１は、Ｃｕ１（４１３）の左上のｂ８（４１４）に格納される。
【００７６】
格納処理を（Ｂ）のシーケンス図で見ると、ＥＮ信号により、ＭＶ０はＷＡＤ＝０のｂ０に書き込まれ、ＭＶ１はＷＡＤ＝８のｂ８に書き込まれる。書き込みは２ブロック分で終了する。
【００７７】
図９は、本発明の実施の形態のＭＢ（８×１６）の場合のＭＶ生成処理と格納処理を示した図である。（Ａ）は、代表ＭＶの生成、（Ｂ）は、ＭＶの書き込みシーケンスを示している。
【００７８】
ＭＢ（８×１６）の左側のＣｕ０（４２１）は、Ｃｕ０（４２１）に隣接する隣接ＭＢ［Ａ］のｂ５（４２１ａ）、隣接ＭＢ［Ｂ］のｂ１０（４２１ｂ）、隣接ＭＢ［Ｃ］のｂ１４（４２１ｃ）、及び隣接ＭＢ［Ｄ］のｂ１５（４２１ｄ）のＭＶを読み出してＭＶＰを算出し、ＭＶ０を生成する。ＭＶ０は、Ｃｕ０（４２１）の左上のｂ０（４２２）に格納される。続いて、右側のＣｕ１（４２３）に対し、Ｃｕ０（４２１）のｂ１（４２３ａ）、Ｃｕ１（４２３）の隣接ＭＢ［Ｂ］のｂ１４（４２３ｂ）、隣接ＭＢ［Ｃ］のｂ１０（４２３ｃ）、及び隣接ＭＢ［Ｄ］のｂ１１（４２３ｄ）のＭＶを読み出してＭＶＰを算出し、ＭＶ１を生成する。ＭＶ１は、Ｃｕ１（４２３）の左上のｂ４（４２４）に格納される。
【００７９】
格納処理を（Ｂ）のシーケンス図で見ると、ＥＮ信号により、ＭＶ０はＷＡＤ＝０のｂ０に書き込まれ、ＭＶ１はＷＡＤ＝４のｂ４に書き込まれる。書き込みは２ブロック分で終了する。
【００８０】
図１０は、本発明の実施の形態のＭＢ（８×８）の場合のＭＶ生成処理と格納処理を示した図である。（Ａ）は、代表ＭＶの生成、（Ｂ）は、ＭＶの書き込みシーケンスを示している。
【００８１】
ＭＢ（８×８）の左上のＣｕ０（４３１）は、Ｃｕ０（４３１）に隣接する隣接ＭＢ［Ａ］のｂ５（４３１ａ）、隣接ＭＢ［Ｂ］のｂ１０（４３１ｂ）、隣接ＭＢ［Ｃ］のｂ１４（４３１ｃ）、及び隣接ＭＢ［Ｄ］のｂ１５（４３１ｄ）のＭＶを読み出してＭＶＰを算出し、ＭＶ０を生成する。ＭＶ０は、Ｃｕ０（４３１）の左上のｂ０（４３２）に格納される。右上のＣｕ１（４３３）に対し、Ｃｕ０（４３１）のｂ１（４３３ａ）、Ｃｕ１（４３３）の隣接ＭＢ［Ｂ］のｂ１４（４３３ｂ）、隣接ＭＢ［Ｃ］のｂ１０（４３３ｃ）、及び隣接ＭＢ［Ｄ］のｂ１４（４３３ｄ）のＭＶを読み出してＭＶＰを算出し、ＭＶ１を生成する。ＭＶ１は、Ｃｕ１（４３３）の左上のｂ４（４３４）に格納される。左下のＣｕ２（４３５）に対し、Ｃｕ２（４３５）に隣接する隣接ＭＢ［Ａ］のｂ１３（４３５ａ）、Ｃｕ０（４３１）のｂ２（４３５ｂ）、Ｃｕ１（４３３）のｂ６（４３５ｃ）、及び隣接ＭＢ［Ｂ］のｂ７（４３５ｄ）のＭＶを読み出してＭＶＰを算出し、ＭＶ３を生成する。ＭＶ３は、Ｃｕ２（４３５）の左上のｂ８（４３６）に格納される。右下のＣｕ３（４３７）に対し、Ｃｕ２（４３５）のｂ９（４３７ａ）、Ｃｕ１（４３３）のｂ６（４３７ｂ）、及びＣｕ０（４３１）のｂ３（４３７ｄ）を読み出してＭＶＰを算出し、ＭＶ４を生成する。隣接ＭＢ［Ｃ］のＸ（４３７ｃ）は参照しない。ＭＶ４は、Ｃｕ３（４３７）の左上のｂ１２（４３８）に格納される。
【００８２】
格納処理を（Ｂ）のシーケンス図で見ると、ＥＮ信号により、ＭＶ０はＷＡＤ＝０のｂ０、ＭＶ１はＷＡＤ＝４のｂ４、ＭＶ２はＷＡＤ＝８のｂ８、及びＭＶ３はＷＡＤ＝１２のｂ１２に書き込まれる。書き込みは４ブロック分で終了する。
【００８３】
図１１及び図１２は、本発明の実施の形態のサブマクロブロック分割の場合のＭＶ生成処理と格納処理を示した図である。図１１の（Ａ）は、サブマクロブロック分割、（Ｂ−１）は、サブマクロブロック０から２までの代表ＭＶの生成処理を示している。図１２の（Ｂ−２）は、サブマクロブロック３の代表ＭＶの生成、（Ｃ）は、ＭＶの書き込みシーケンスを示している。
【００８４】
図１１の（Ａ）は、ＭＢ（８×８）をさらに分割したサブマクロブロック分割の一例を示した図である。左上のＭＢ（８×８）は、８×８のＳＢ０（４４１）の１ブロックで構成される。右上のＭＢ（８×８）は、８×４のＳＢ１−０（４５１）と、ＳＢ１−１（４５３）の２ブロックで構成される。左下のＭＢ（８×８）は、４×８のＳＢ２−０（４６１）と、ＳＢ２−１（４６３）の２ブロックで構成される。右下のＭＢ（８×８）は、４×４のＳＢ３−０（４７１）、ＳＢ３−１（４７２）、ＳＢ３−２（４７３）、及びＳＢ３−３（４７４）の４つのブロックで構成される。
【００８５】
各サブマクロブロックのＭＶ生成処理について説明する。
ＳＢ０（４４１）は、隣接マクロブロックから読み出したＭＶに基づいてＭＶ０を生成し、ＳＢ０（４４１）の左上のｂ０（４４２）に格納する。ＳＢ１−０（４５１）は、隣接マクロブロックから読み出したＭＶに基づいてＭＶ１を生成し、ＳＢ１−０の左上のｂ４（４５２）に格納する。ＳＢ１−１（４５３）も同様にしてＭＶ２を生成し、ＳＢ１−１（４５３）の左上のｂ６（４５４）に格納する。ＳＢ２−０（４６１）について生成されるＭＶ３は、ｂ８（４６２）に格納され、ＳＢ２−１（４６３）について生成されるＭＶ４は、ｂ９（４６４）に格納される。
【００８６】
図１２を用いて説明する。
最小単位のサブマクロブロックで構成されるＳＢ３−０（４７１）、ＳＢ３−１（４７２）、ＳＢ３−２（４７３）、及びＳＢ３−３（４７４）について生成されたＭＶは、それぞれのサブマクロブロック（ｂ１２，ｂ１３，ｂ１４，ｂ１５）に格納される。
【００８７】
格納処理を（Ｃ）のシーケンス図で見ると、ＥＮ信号により、ＭＶ０はＷＡＤ＝０のｂ０、ＭＶ１はＷＡＤ＝４のｂ４、ＭＶ２はＷＡＤ＝６のｂ６、ＭＶ３はＷＡＤ＝８のｂ８、ＭＶ４はＷＡＤ＝９のｂ９、ＭＶ５はＷＡＤ＝１２のｂ１２、ＭＶ６はＷＡＤ＝１３のｂ１３、ＭＶ７はＷＡＤ＝１４のｂ１４、及びＭＶ８はＷＡＤ＝１５のｂ１５に書き込まれる。書き込みは９ブロック分で終了する。
【００８８】
以上のように、本発明の実施の形態のＭＶ生成では、生成されたＭＶは、ＭＶが生成されたマクロブロック範囲を代表するＭＶ格納領域（ここでは、左上のブロックに相当するＭＶ格納領域）にのみ書き込みが行われる。図から明らかなように、ＭＢ（８×８）までは、最大４ブロックの書き込みで処理が終了する。１６ブロックの書き込みが行われるのは、すべてのブロックが４×４の場合のみであり、多くの場合、より少ない書き込みブロック数で処理が終了する。これにより、従来のＭＶ処理では、１６ブロックに対応する全てのＭＶ格納領域に対して行われていた格納処理時間を大幅に短縮することができる。
【００８９】
以上の処理手順が実行されることにより、図５に示したように、現在処理中のＣｕ３１０と、その隣接ＭＢ［Ａ］３２０、及び隣接ＭＢ［ＢＣＤ］３３１，３３２の動きベクトルデータが格納される。
【００９０】
次に、アドレス変換部２１３によるアドレス変換処理について説明する。
アドレス変換部２１３では、ＭＶＰ生成部２１２が指示した隣接マクロブロックの代表ＭＶ格納領域を指示するアドレスに変換し、ＭＶＰ生成部２１２へアドレスを通知する。ＭＶＰ生成部２１２からは、参照する隣接マクロブロック（４×４）を指示する情報が入力される。たとえば、１６×１６の基本マクロブロックは、識別番号が付与されており、その識別番号と図６に示したｂ０からｂ１５のブロック番号などから隣接マクロブロックを指示する指示情報を生成し、アドレス変換部２１３へ引き渡す。アドレス変換部２１３では、指定された隣接マクロブロックのＭＢサイズ及びサブＭＢサイズと、代表ＭＶ格納領域とを対応付けたアドレス変換テーブルを用意しておき、アドレス変換テーブルに基づいてアドレスを導出する。
【００９１】
本発明の実施の形態では、図５に示したように、Ｃｕ３１０内の処理マクロブロックで参照するＭＶが、Ｃｕ３１０の外部のＭＶである場合には、隣接ＭＢ［Ａ］３２０、及び隣接ＭＢ［ＢＣＤ］３３１，３３２に対応付けられたＭＶ格納領域からデータを読み出す必要がある。たとえ処理マクロブロックの形状が同じであっても、配置される場所に応じて参照するＭＶが外部であるか内部であるかは異なってしまう。そこで、最初に、参照されるＭＶが内部の場合について説明し、続いて、隣接ＭＢ［Ａ］３２０、及び隣接ＭＢ［ＢＣＤ］３３１，３３２に参照されるＭＶが格納されている場合について説明する。
【００９２】
まず、内部のＭＶを参照する場合について説明する。以下の説明では、実際には、外部のＭＶを参照する場合であっても、内部と同等に処理できるとする。すなわち、すべてのマクロブロックのＭＶが、図５に示したＣｕ３１０と同様に格納されているとして説明する。
【００９３】
図１３及び図１４は、本発明の実施の形態のアドレス変換テーブルの機能を示した図である。図１３は、隣接マクロブロックのＭＢサイズが１６×１６と１６×８の場合である。図１４は、隣接マクロブロックのＭＢサイズが８×１６と８×８の場合と、サブＭＢサイズが８×４、４×８、及び４×４の場合とを示している。
【００９４】
図１３に示した隣接マクロブロックが、ＭＢ（１６×１６）の場合は、ｂ０からｂ１５が指定される可能性がある。これに対し、図７で説明したように、代表ＭＶは、ｂ０に対応するＭＶ格納領域に格納されている。したがって、指示された隣接マクロブロックが１６×１６の場合は、このマクロブロックの代表ＭＶ格納領域であるｂ０に相当するＭＶ格納領域を指示するアドレスに変換し、ＭＶＰ生成部２１２へ通知する。なお、隣接マクロブロックは、既に処理が終了したマクロブロックであり、ブロックサイズなどは既知である。たとえば、この情報を保存しておけば、指定された隣接マクロブロックのサイズを知ることができる。
【００９５】
同様に、隣接マクロブロックがＭＢ（１６×８）であって、ＭＢ（１６×１６）範囲の上側に位置する場合は、ｂ０からｂ７が指定される可能性がある。この場合の代表ＭＶ格納領域は、図８に示したようにｂ０になる。したがって、指示された隣接マクロブロックが１６×８で、ｂ０からｂ７が指定された場合、代表ＭＶ格納領域であるｂ０に相当するＭＶ格納領域を指示するアドレスに変換し、ＭＶＰ生成部２１２へ通知する。
【００９６】
なお、図示していないが、隣接マクロブロックが１６×８で、ｂ８からｂ１５が指定された場合は、基本マクロブロック範囲で下側のＭＢ（１６×８）であるので、代表ＭＶ格納領域は、図８に示したように、ｂ８になる。そこで、この場合は、ｂ８に相当するＭＶ格納領域を指示するアドレスに変換し、ＭＶＰ生成部２１２へ通知する。
【００９７】
図１４で説明する。
図１４に示した隣接マクロブロックがＭＢ（８×１６）であって、ＭＢ（１６×１６）範囲の左上に位置する場合は、ｂ０，ｂ１，ｂ２，ｂ３，ｂ８，ｂ９，ｂ１０，ｂ１１が指定される。図９に示したように、代表ＭＶ格納領域は、ｂ０に相当するＭＶ格納領域であるので、そこを指示するアドレスに変換し、ＭＶＰ生成部２１２へ通知する。また、ＭＢ（１６×８）の場合と同様に、隣接マクロブロックが８×１６で、上記以外のｂ４，ｂ５，ｂ６，ｂ７，ｂ１２，ｂ１３，ｂ１４，ｂ１５が指定された場合は、代表ＭＶ格納領域は、図９に示したように、ｂ４に対応するＭＶ格納領域になる。
【００９８】
基本マクロブロック範囲で左上に位置するＭＢ（８×８）の場合は、隣接マクロブロックとしてｂ０，ｂ１，ｂ２，ｂ３が指定される。図１０に示したように、代表ＭＶ格納領域は、ｂ０に相当するＭＶ格納領域であるので、そこを指示するアドレスに変換し、ＭＶＰ生成部２１２へ通知する。また、他と同様に、隣接マクロブロックが８×１６で、ｂ４，ｂ５，ｂ６，ｂ７が指定された場合の代表ＭＶ格納領域はｂ４，ｂ８，ｂ９，ｂ１０，ｂ１１が指定された場合の代表ＭＶ格納領域はｂ８、そしてｂ１２，ｂ１３，ｂ１４，ｂ１５が指定された場合の代表ＭＶ格納領域はｂ１２になる。それぞれの指定ブロックに対応するＭＶ格納領域を指示するアドレスに変換し、ＭＶＰ生成部２１２に通知する。
【００９９】
以下、サブマクロブロック構成の場合について説明する。簡単のため、それぞれ左上のＭＢ（８×８）に属する１つのサブマクロブロックを例にとり説明する。上記と同様に、他のサブマクロブロックについても、サイズと指定ブロックとにより、代表ＭＶ格納領域を一意に特定することができる。
【０１００】
基本マクロブロック単位で左上に位置するＭＢ（８×８）を横方向に２分割した上側のサブＭＢ（８×４）の場合、隣接マクロブロックとしてｂ０とｂ１が指定される。したがって、ＭＢサイズが８×８、サブＭＢサイズが８×４、そしてｂ０またはｂ１が指定された場合は、代表ＭＶ格納領域としてｂ０に対応するＭＶ格納領域のアドレスを通知する。
【０１０１】
基本マクロブロック単位で左上に位置するＭＢ（８×８）を縦方向に２分割した左側のサブＭＢ（８×４）の場合、隣接マクロブロックとしてｂ０とｂ２が指定される。したがって、ＭＢサイズが８×８、サブＭＢサイズが４×８、そしてｂ０またはｂ２が指定された場合は、代表ＭＶ格納領域としてｂ０に対応するＭＶ格納領域のアドレスを通知する。
【０１０２】
基本マクロブロック単位で左上に位置するＭＢ（８×８）を４分割した左上のサブＭＢ（４×４）の場合、隣接マクロブロックとしてｂ０が指定される。したがって、ＭＢサイズが８×８、サブＭＢサイズが４×４、そしてｂ０が指定された場合は、代表ＭＶ格納領域としてｂ０に対応するＭＶ格納領域のアドレスを通知する。
【０１０３】
以上のように、代表ＭＶ格納領域は、隣接マクロブロックのＭＢサイズとサブＭＢサイズ、及び指定ブロック（ｂ０〜ｂ１５）と、代表ＭＶ格納領域のアドレスとを対応付けた変換テーブルによって導出することができる。これにより、ＭＶＰ生成部２１２によってＭＶ生成部２１４が代表ＭＶ格納領域にのみに格納されたＭＶを読み出すことができる。
【０１０４】
なお、図１３及び図１４には、変換テーブル例を示さなかったが、上記のように隣接マクロブロックのＭＢサイズとサブＭＢサイズ、及び指定ブロック（ｂ０〜ｂ１５）と、代表ＭＶ格納領域のアドレスとが対応付けられ、隣接マクロブロックのサイズとブロック指定をアドレスが導出できるものであれば、どのような形式であってもよい。
【０１０５】
以下、参照するＭＶがＣｕ外にある場合について説明する。たとえば、上記の処理マクロブロックが１６×１６の場合、参照するＭＶは、すべて隣接ＭＢ［Ａ］３２０と、隣接ＭＢ［ＢＣＤ］３３１，３３２に対応するＭＶ格納領域に格納されている。
【０１０６】
まず、隣接ＭＢ［Ａ］及び隣接ＭＢ［ＢＣＤ］について、どの領域が代表ＭＶ格納領域となるのかを説明する。
図１５は、本発明の実施の形態における隣接マクロブロックＭＢ［Ａ］のＭＶ格納処理を示した図である。
【０１０７】
Ｃｕ５０１は、隣接ＭＢ［Ａ］（Ａ０，Ａ１，Ａ２，Ａ３）を参照する現処理マクロブロックであり、マクロブロック５０２は、Ｃｕ５０１の前に処理対象であったマクロブロックである。隣接ＭＢ［Ａ］格納部２１５は、マクロブロック５０２のＭＶ生成処理によって生成された代表ＭＶを読み出し、隣接ＭＢ［Ａ］（Ａ０，Ａ１，Ａ２，Ａ３）に格納する。このとき、水平方向に代表ＭＶが複数存在する場合は、最も右に位置するマクロブロックに対し生成された代表ＭＶを選択し、隣接ＭＢ［Ａ］に格納する。たとえば、８×１６のマクロブロックが左右に並ぶ場合、Ａ０に対応するマクロブロックのｂ０とｂ４に対応するＭＶ格納領域にそれぞれ代表ＭＶが格納されている。この場合、ｂ４に対応する代表ＭＶが選択され、Ａ０に格納される。
【０１０８】
図１６は、本発明の実施の形態における隣接マクロブロックＭＢ［ＢＣＤ］のＭＶ格納処理を示した図である。
Ｃｕ５０１は、隣接ＭＢ［ＢＣＤ］（Ｎ０，Ｎ１，Ｎ２，Ｎ３，Ｎ４，Ｎ５）を参照する現処理マクロブロックである。マクロブロック５０３，５０４，５０５は、既にＭＶ生成処理が終了したマクロブロックである。隣接ＭＢ［ＢＣＤ］格納部２１６は、たとえば、マクロブロック５０３のＭＶ生成処理によって生成された代表ＭＶを読み出し、隣接ＭＢ［ＢＣＤ］（Ｎ１，Ｎ２，Ｎ３，Ｎ４）に格納する。Ｎ０は、マクロブロック５０４のＭＶ生成処理後に、Ｎ５は、マクロブロック５０５のＭＶ生成処理後に、同様に代表ＭＶが設定される。このとき、垂直方向に代表ＭＶが複数存在する場合、最も下に位置するマクロブロックの代表ＭＶを選択し、隣接ＭＢ［ＢＣＤ］に格納する。たとえば、１６×８のマクロブロックが上下に並ぶ場合、Ｎ１に対応するマクロブロックｂ０とｂ８に対応するＭＶ格納領域に、それぞれの代表ＭＶが格納されている。この場合、ｂ８に対応する代表ＭＶが選択され、Ｎ１に格納される。
【０１０９】
ブロックサイズごとに代表ＭＶが格納されるアドレスが異なるので、以下、ブロックサイズごとのＭＶ格納処理について説明する。
図１７から図１９は、本発明の実施の形態の隣接ＭＢの代表ＭＶ格納領域を示している。
【０１１０】
図１７（Ａ）は、隣接ＭＢ（１６×１６）の代表ＭＶ格納領域を示している。
ＭＶ生成対象のマクロブロックが、ＭＢ（１６×１６）５１０の場合、代表ＭＶ０は、ｂ０に格納される。隣接ＭＢ［Ａ］格納部２１５では、ｂ０に格納される代表ＭＶ０を読み出し、ｂ０を水平移動した位置に対応する隣接ＭＢ［Ａ］のＡ０（５１１）に格納する。また、隣接ＭＢ［ＢＣＤ］格納部２１６では、ｂ０に格納される代表ＭＶ０を、ｂ０を垂直移動した位置に対応する隣接ＭＢ［ＢＣＤ］のＮ１（５１２）に格納する。
【０１１１】
図１７（Ｂ）は、隣接ＭＢ（１６×８）の代表ＭＶ格納領域を示している。
ＭＶ生成対象のマクロブロックが、ＭＢ（１６×８）５２０の場合、２つの代表ＭＶが生成され、代表ＭＶ０はｂ０、代表ＭＶ８はｂ８に格納される。隣接ＭＢ［Ａ］格納部２１５では、ｂ０に格納される代表ＭＶ０を読み出し、ｂ０を水平移動した位置に対応するＭＢ［Ａ］のＡ０（５２１）に格納するとともに、同様にして、ＭＶ８をＡ２（５２２）に格納する。また、隣接ＭＢ［ＢＣＤ］格納部２１６では、２つの代表ＭＶのうち、下に位置するｂ８に格納される代表ＭＶ８を、ｂ０を垂直移動した位置に対応するＭＢ［ＢＣＤ］のＮ１（５２３）に格納する。
【０１１２】
図１８（Ｃ）は、隣接ＭＢ（８×１６）の代表ＭＶ格納領域を示している。
ＭＶ生成対象のマクロブロックが、ＭＢ（８×１６）５３０の場合、２つの代表ＭＶが生成され、代表ＭＶ０はｂ０、代表ＭＶ４はｂ４に格納される。隣接ＭＢ［Ａ］格納部２１５では、ｂ０とｂ４のうち、右側に格納されるｂ４の代表ＭＶ４を読み出し、ｂ４を水平移動した位置に対応するＭＢ［Ａ］のＡ０（５３１）に格納する。また、隣接ＭＢ［ＢＣＤ］格納部２１６では、ｂ０に格納されるＭＶ０を、ｂ０を垂直移動した位置に対応するＭＢ［ＢＣＤ］のＮ１（５３２）に格納し、ｂ４に格納されるＭＶ４を、ｂ４を垂直移動した位置に対応するＭＢ［ＢＣＤ］のＮ３（５３３）に格納する。
【０１１３】
図１８（Ｄ）は、隣接ＭＢ（８×８）の代表ＭＶ格納領域を示している。
ＭＶ生成対象のマクロブロックが、ＭＢ（８×８）５４０の場合、４つの代表ＭＶが生成され、代表ＭＶ０はｂ０、代表ＭＶ４はｂ４、代表ＭＶ８はｂ８、そして代表ＭＶ１２はｂ１２に格納される。隣接ＭＢ［Ａ］格納部２１５では、ｂ０とｂ４のうち、右側に位置するｂ４の代表ＭＶ４を読み出し、Ａ０（５４１）に格納する。また、ｂ８とｂ１２のうち、右側に位置するｂ１２の代表ＭＶ１２を選択し、Ａ２（５４２）に格納する。隣接ＭＢ［ＢＣＤ］格納部２１６では、ｂ０とｂ８のうち、下に位置するｂ８を選択し、その代表ＭＶ８を、隣接ＭＢ［ＢＣＤ］のＮ１（５４３）に格納する。また、ｂ４とｂ１２のうち、下に位置するｂ１２を選択し、隣接ＭＢ［ＢＣＤ］のＮ３（５４４）に格納する。
【０１１４】
図１９（Ｅ）は、隣接ＭＢ（４×４）の代表ＭＶ格納領域を示している。
ＭＶ生成対象のマクロブロックが、サブＭＢ（４×４）５５０の場合、ＭＶ０からＭＶ１５の１６の代表ＭＶが生成される。代表ＭＶは、それぞれ対応するブロック番号に格納される。隣接ＭＢ［Ａ］格納部２１５では、代表ＭＶのうち、最も右側に位置するＭＶ５，ＭＶ７，ＭＶ１３，ＭＶ１５を選択し、それぞれＭＢ［Ａ］のＡ０，Ａ１，Ａ２，Ａ３に格納する。隣接ＭＢ［ＢＣＤ］格納部２１６では、代表ＭＶのうち、下に位置するＭＶ１０，ＭＶ１１，ＭＶ１４，ＭＶ１５を選択し、ＭＢ［ＢＣＤ］のＮ１，Ｎ２，Ｎ３，Ｎ４に格納する。なお、詳細は省略するが、ＭＢ（８×４），ＭＢ（４×８）についても同様の処理が行われる。
【０１１５】
以上のように、隣接ＭＢ［Ａ］格納部２１５と、隣接ＭＢ［ＢＣＤ］格納部２１６によって、隣接ＭＢ［Ａ］及び隣接ＭＢ［ＢＣＤ］の所定の領域に代表ＭＶが格納される。
次に、ＭＶＰ生成部２１２が、隣接ＭＢ［Ａ］または隣接ＭＢ［ＢＣＤ］に格納される外部のＭＶを参照する場合について説明する。
【０１１６】
ＭＶＰ生成部２１２から、参照する隣接マクロブロック（４×４）を指示する情報が入力されると、アドレス変換部２１３は、指示された隣接マクロブロックが、隣接ＭＢ［Ａ］３２０、または隣接ＭＢ［ＢＣＤ］３３１，３３２にあるのかどうかを判定する。ない場合は、上記の図１３、図１４に示した変換テーブルを用いてアドレスを算出する。隣接ＭＢ［Ａ］３２０、または隣接ＭＢ［ＢＣＤ］３３１，３３２にある場合は、以下に説明する図２０から図２３の変換テーブルを用いてアドレス算出を行う。
【０１１７】
図２０及び図２１は、本発明の実施の形態の隣接ＭＢ［Ａ］格納領域を参照する場合のアドレス変換テーブルの機能を示した図である。図２０は、隣接ＭＢ［Ａ］のＭＶを生成した隣接マクロブロックが、ＭＢ（１６×１６）、ＭＢ（１６×８）、ＭＢ（８×１６）、及びＭＢ（８×８）の場合を示した図である。図２１は、隣接ＭＢ［Ａ］のＭＶを生成した隣接マクロブロックが、サブＭＢ（８×４）、サブＭＢ（４×８）、及びサブＭＢ（４×４）の場合を示した図である。
【０１１８】
隣接マクロブロックのＭＢサイズが１６×１６の場合、Ａ０に対応するＭＶ格納領域のみにＭＶ０が格納されている。隣接ＭＢ［Ａ］として、Ａ０，Ａ１，Ａ２，Ａ３が指定される可能性があるか、いずれの場合もＡ０に対応するＭＶ格納領域のアドレスに変換する。これにより、隣接ＭＢ［Ａ］のＭＢサイズが１６×１６の場合は、常に、ＭＶ０を読み出すことができる。
【０１１９】
隣接マクロブロックのＭＢサイズが１６×８の場合、Ａ０に対応するＭＶ格納領域にＭＶ０、Ａ２に対応するＭＶ格納領域にＭＶ８が格納されている。隣接ＭＢ［Ａ］として、Ａ０，Ａ１が指定された場合には、Ａ０に対応するＭＶ格納領域のアドレスに変換する。また、Ａ２，Ａ３が指定された場合には、Ａ２に対応するＭＶ格納領域のアドレスに変換する。これにより、隣接ＭＢ［Ａ］のＭＢサイズが１６×８の場合は、Ａ０またはＡ１が指定されるとＭＶ０、Ａ２またはＡ３が指定されるとＭＶ２を読み出すことができる。
【０１２０】
隣接マクロブロックのＭＢサイズが８×１６の場合、Ａ０に対応するＭＶ格納領域にＭＶ４が格納されている。隣接ＭＢ［Ａ］として、Ａ０，Ａ１，Ａ２、またはＡ３が指定された場合は、Ａ０に対応するＭＶ格納領域のアドレスに変換する。これにより、隣接ＭＢ［Ａ］のＭＢサイズが８×１６の場合は、常に、ＭＶ０を読み出すことができる。
【０１２１】
隣接マクロブロックのＭＢサイズが８×８の場合、Ａ０に対応するＭＶ格納領域にＭＶ４、Ａ２に対応するＭＶ格納領域にＭＶ１２が格納されている。隣接ＭＢ［Ａ］として、Ａ０，Ａ１が指定された場合には、Ａ０に対応するＭＶ格納領域のアドレスに変換する。また、Ａ２，Ａ３が指定された場合には、Ａ２に対応するＭＶ格納領域のアドレスに変換する。これにより、隣接ＭＢ［Ａ］のＭＢサイズが８×８の場合は、Ａ０またはＡ１が指定されるとＭＶ４、Ａ２またはＡ３が指定されるとＭＶ１２を読み出すことができる。
【０１２２】
図２１により説明する。図２１は、サブブロック分割の場合の隣接ＭＢ［Ａ］のアドレス変換を示している。なお、基本マクロブロック範囲における左半分がどのような構成であっても、隣接ＭＢ［Ａ］に代表ＭＶとして格納される値は同じであるので、図では左半分を省略している。
【０１２３】
隣接マクロブロックのＭＢサイズが８×４の場合、Ａ０に対応するＭＶ格納領域にＭＶ４、Ａ１に対応するＭＶ格納領域にＭＶ６、Ａ２に対応するＭＶ格納領域にＭＶ１２、そしてＡ３に対応するＭＶ格納領域にＭＶ１４が格納されている。この場合は、隣接ＭＢ［Ａ］として指定されたＡ０，Ａ１，Ａ２、またはＡ３に対応するＭＶ格納領域のアドレスに変換する。
【０１２４】
隣接マクロブロックのＭＢサイズが４×８の場合、Ａ０に対応するＭＶ格納領域にＭＶ５、Ａ２に対応するＭＶ格納領域にＭＶ１３が格納されている。この場合は、隣接ＭＢ［Ａ］として、Ａ０，Ａ１が指定された場合には、Ａ０に対応するＭＶ格納領域のアドレスに変換する。また、Ａ２，Ａ３が指定された場合には、Ａ２に対応するＭＶ格納領域のアドレスに変換する。
【０１２５】
隣接マクロブロックのＭＢサイズが４×４の場合、Ａ０に対応するＭＶ格納領域にＭＶ６、Ａ１に対応するＭＶ格納領域にＭＶ７、Ａ２に対応するＭＶ格納領域にＭＶ１３、そしてＡ３に対応するＭＶ格納領域にＭＶ１５が格納されている。この場合は、隣接ＭＢ［Ａ］として指定されたＡ０，Ａ１，Ａ２、またはＡ３に対応するＭＶ格納領域のアドレスに変換する。
【０１２６】
このように、アドレス変換部２１３では、隣接ＭＢ［Ａ］が指定されると、図２０及び図２１に示したアドレス変換を行って、指定された隣接ＭＢ［Ａ］の代表ＭＶ格納領域のアドレスに変換し、ＭＶＰ生成部２１２へ提供する。
【０１２７】
次に、隣接ＭＢ［ＢＣＤ］に関するアドレス変換について説明する。
図２２及び図２３は、本発明の実施の形態の隣接ＭＢ［ＢＣＤ］格納領域を参照する場合のアドレス変換テーブルの機能を示した図である。図２２は、隣接ＭＢ［ＢＣＤ］のＭＶを生成した隣接マクロブロックが、ＭＢ（１６×１６）、ＭＢ（１６×８）、ＭＢ（８×１６）、及びＭＢ（８×８）の場合を示した図である。図２３は、隣接ＭＢ［ＢＣＤ］のＭＶを生成した隣接マクロブロックが、サブＭＢ（８×４）、サブＭＢ（４×８）、及びサブＭＢ（４×４）の場合を示した図である。
【０１２８】
隣接マクロブロックのＭＢサイズが１６×１６の場合、Ｎ１に対応するＭＶ格納領域のみにＭＶ０が格納されている。隣接ＭＢ［ＢＣＤ］として、Ｎ１，Ｎ２，Ｎ３，Ｎ４が指定されるが、いずれの場合もＮ１に対応するＭＶ格納領域のアドレスに変換する。これにより、隣接ＭＢ［ＢＣＤ］のＭＢサイズが１６×１６の場合は、常に、ＭＶ０を読み出すことができる。
【０１２９】
隣接マクロブロックのＭＢサイズが１６×８の場合、Ｎ１に対応するＭＶ格納領域にＭＶ８が格納されている。隣接ＭＢ［ＢＣＤ］として、Ｎ１，Ｎ２，Ｎ３、またはＮ４が指定された場合は、Ｎ１に対応するＭＶ格納領域のアドレスに変換する。これにより、隣接ＭＢ［ＢＣＤ］のＭＢサイズが１６×８の場合は、常に、ＭＶ０を読み出すことができる。
【０１３０】
隣接マクロブロックのＭＢサイズが８×１６の場合、Ｎ１に対応するＭＶ格納領域にＭＶ０、Ｎ３に対応するＭＶ格納領域にＭＶ４が格納されている。隣接ＭＢ［ＢＣＤ］として、Ｎ１，Ｎ２が指定された場合には、Ｎ１に対応するＭＶ格納領域のアドレスに変換する。また、Ｎ３，Ｎ４が指定された場合には、Ｎ３に対応するＭＶ格納領域のアドレスに変換する。これにより、隣接ＭＢ［ＢＣＤ］のＭＢサイズが８×１６の場合は、Ｎ１またはＮ２が指定されるとＭＶ０、Ｎ３またはＮ４が指定されるとＭＶ４を読み出すことができる。
【０１３１】
隣接マクロブロックのＭＢサイズが８×８の場合、Ｎ１に対応するＭＶ格納領域にＭＶ８、Ｎ３に対応するＭＶ格納領域にＭＶ１２が格納されている。隣接ＭＢ［ＢＣＤ］として、Ｎ１，Ｎ２が指定された場合には、Ｎ１に対応するＭＶ格納領域のアドレスに変換する。また、Ｎ３，Ｎ４が指定された場合には、Ｎ３に対応するＭＶ格納領域のアドレスに変換する。これにより、隣接ＭＢ［ＢＣＤ］のＭＢサイズが８×８の場合は、Ｎ１またはＮ２が指定されるとＭＶ８、Ｎ３またはＮ４が指定されるとＭＶ１２を読み出すことができる。
【０１３２】
図２３により説明する。図２３は、サブブロック分割の場合の隣接ＭＢ［ＢＣＤ］のアドレス変換を示している。なお、基本マクロブロック範囲における上半分がどのような構成であっても、隣接ＭＢ［ＢＣＤ］に代表ＭＶとして格納される値は同じであるので、図では上半分を省略している。
【０１３３】
隣接マクロブロックのＭＢサイズが８×４の場合、Ｎ１に対応するＭＶ格納領域にＭＶ８、及びＮ３に対応するＭＶ格納領域にＭＶ１２が格納されている。この場合は、隣接ＭＢ［ＢＣＤ］として、Ｎ１，Ｎ２が指定された場合には、Ｎ１に対応するＭＶ格納領域のアドレスに変換する。また、Ｎ３，Ｎ４が指定された場合には、Ｎ３に対応するＭＶ格納領域のアドレスに変換する。
【０１３４】
隣接マクロブロックのＭＢサイズが４×８の場合、Ｎ１に対応するＭＶ格納領域にＭＶ８、Ｎ２に対応するＭＶ格納領域にＭＶ９、Ｎ３に対応するＭＶ格納領域にＭＶ１２、そしてＮ４に対応するＭＶ格納領域にＭＶ１３が格納されている。この場合は、隣接ＭＢ［ＢＣＤ］として指定されたＮ１，Ｎ２，Ｎ３、またはＮ４に対応するＭＶ格納領域のアドレスに変換する。
【０１３５】
隣接マクロブロックのＭＢサイズが４×４の場合、Ｎ１に対応するＭＶ格納領域にＭＶ１０、Ｎ２に対応するＭＶ格納領域にＭＶ１１、Ｎ３に対応するＭＶ格納領域にＭＶ１４、そしてＮ４に対応するＭＶ格納領域にＭＶ１５が格納されている。この場合は、隣接ＭＢ［ＢＣＤ］として指定されたＮ１，Ｎ２，Ｎ３、またはＮ４に対応するＭＶ格納領域のアドレスに変換する。
【０１３６】
このように、アドレス変換部２１３では、隣接ＭＢ［ＢＣＤ］が指定されると、図２２及び図２３に示したアドレス変換を行って、指定された隣接ＭＢ［ＢＣＤ］の代表ＭＶ格納領域のアドレスに変換し、ＭＶＰ生成部２１２へ提供する。
【０１３７】
以上説明したように、本発明の実施の形態では、アドレス変換部２１３によってＭＶＰ生成部２１２によるＭＶ参照時には、参照されるＭＶが格納されるアドレスを算出するので、参照用のＭＶをメモリに展開しておく必要がなくなり、不要なデータの格納サイクルをなくすことができる。この結果、ＭＶ処理の処理時間を短縮することができる。
【０１３８】
たとえば、ＭＢサイズが１６×１６の場合、従来のＭＶ処理では、ＭＶの格納に１６サイクル、隣接ＭＢ［Ａ］の格納に４サイクル、及び隣接ＭＢ［ＢＣＤ］の格納に４サイクルの計２４サイクルが必要であった。これに対し、本実施の形態では、ＭＶの格納に１サイクル、隣接ＭＢ［Ａ］の格納に１サイクル、及び隣接ＭＢ［ＢＣＤ］の格納に１サイクルの計３サイクルで処理が終了する。したがって、最大２１サイクル削減することができる。
【０１３９】
また、ＭＢサイズが８×８の場合、従来のＭＶ処理では、１６×１６と同様に計２４サイクルが必要であった。これに対し、本実施の形態では、ＭＶの格納に８サイクル、隣接ＭＢ［Ａ］の格納に２サイクル、及び隣接ＭＢ［ＢＣＤ］の格納に２サイクルの計１２サイクルで処理が終了する。したがって、最大１２サイクル削減することができる。
【０１４０】
サイクル数の削減は、１マイクロブロックのＭＢサイズが大きいほど、また、処理対象の画面サイズが大きいほど、効果が大きくなる。
【図面の簡単な説明】
【０１４１】
【図１】実施の形態に適用される発明の概念図である。
【図２】本発明の実施の形態の画像符号化装置の構成を示したブロック図である。
【図３】本発明の実施の形態の画像復号装置の構成を示したブロック図である。
【図４】本実施の形態の画像復号装置のフレーム間予測における動きベクトル生成処理を示した機能ブロック図である。
【図５】本発明の実施の形態のＭＶ格納領域とフレーム構成との関係を示した図である。
【図６】１６×１６のマクロブロックと、ブロック番号の関係を示した図である。
【図７】本発明の実施の形態のＭＢ（１６×１６）の場合のＭＶ生成処理と格納処理を示した図である。
【図８】本発明の実施の形態のＭＢ（１６×８）の場合のＭＶ生成処理と格納処理を示した図である。
【図９】本発明の実施の形態のＭＢ（８×１６）の場合のＭＶ生成処理と格納処理を示した図である。
【図１０】本発明の実施の形態のＭＢ（８×８）の場合のＭＶ生成処理と格納処理を示した図である。
【図１１】本発明の実施の形態のサブマクロブロック分割の場合のＭＶ生成処理と格納処理を示した図（サブマクロブロック分割と代表ＭＶ生成処理）である。
【図１２】本発明の実施の形態のサブマクロブロック分割の場合のＭＶ生成処理と格納処理を示した図（代表ＭＶの生成と書き込みシーケンス）である。
【図１３】本発明の実施の形態のアドレス変換テーブル（ＭＢ（１６×１６），ＭＢ（１６×８））の機能を示した図である。
【図１４】本発明の実施の形態のアドレス変換テーブル（ＭＢ（８×１６），ＭＢ（８×８），サブＭＢ）の機能を示した図である。
【図１５】本発明の実施の形態における隣接マクロブロックＭＢ［Ａ］のＭＶ格納処理を示した図である。
【図１６】本発明の実施の形態における隣接マクロブロックＭＢ［ＢＣＤ］のＭＶ格納処理を示した図である。
【図１７】本発明の実施の形態の隣接ＭＢ（ＭＢ（１６×１６）とＭＢ（１６×８））の代表ＭＶ格納領域を示している。
【図１８】本発明の実施の形態の隣接ＭＢ（ＭＢ（８×１６）とＭＢ（８×８））の代表ＭＶ格納領域を示している。
【図１９】本発明の実施の形態の隣接ＭＢ（ＭＢ（４×４））の代表ＭＶ格納領域を示している。
【図２０】本発明の実施の形態の隣接ＭＢ［Ａ］格納領域を参照する場合のアドレス変換テーブルの機能を示した図である。
【図２１】本発明の実施の形態の隣接ＭＢ［Ａ］格納領域を参照する場合のアドレス変換テーブルの機能を示した図である。
【図２２】本発明の実施の形態の隣接ＭＢ［ＢＣＤ］格納領域を参照する場合のアドレス変換テーブルの機能を示した図である。
【図２３】本発明の実施の形態の隣接ＭＢ［ＢＣＤ］格納領域を参照する場合のアドレス変換テーブルの機能を示した図である。
【図２４】Ｈ．２６４におけるマクロブロックのブロックサイズを示した図である。
【図２５】従来の画像復号装置における動きベクトル生成処理部の構成図である。
【図２６】ＭＢ（１６×１６）の隣接マクロブロックと、ＭＶ展開処理とを示した図である。
【図２７】ＭＢ（１６×８）の隣接マクロブロックを示した図である。
【図２８】ＭＶの展開処理を示す図である。
【符号の説明】
【０１４２】
１  参照画像記憶部
２  予測値算出部
３  アドレス算出部
４  参照画像格納部
【図１】
2008048200.tif 000003
【図２】
2008048200.tif 000004
【図３】
2008048200.tif 000005
【図４】
2008048200.tif 000006
【図５】
2008048200.tif 000007
【図６】
2008048200.tif 000008
【図７】
2008048200.tif 000009
【図８】
2008048200.tif 000010
【図９】
2008048200.tif 000011
【図１０】
2008048200.tif 000012
【図１１】
2008048200.tif 000013
【図１２】
2008048200.tif 000014
【図１３】
2008048200.tif 000015
【図１４】
2008048200.tif 000016
【図１５】
2008048200.tif 000017
【図１６】
2008048200.tif 000018
【図１７】
2008048200.tif 000019
【図１８】
2008048200.tif 000020
【図１９】
2008048200.tif 000021
【図２０】
2008048200.tif 000022
【図２１】
2008048200.tif 000023
【図２２】
2008048200.tif 000024
【図２３】
2008048200.tif 000025
【図２４】
2008048200.tif 000026
【図２５】
2008048200.tif 000027
【図２６】
2008048200.tif 000028
【図２７】
2008048200.tif 000029
【図２８】
2008048200.tif 000030