(57)【要約】動画像復号装置は、動画像符号化ストリームから動きベクトルに関するフラグを抽出する復号部と、隣接するブロックの動きベクトルが同じか否かを判断する動きベクトル比較部と、動きベクトルが同じと判断された複数のブロックを１つの動き補償対象ブロックに統合するブロック統合部と、動きベクトルを生成する動きベクトル生成部と、動き補償対象ブロック毎の参照画像をメモリに格納された参照画像データから取得する参照画像取得部と、動き補償対象ブロック毎に予測画像を生成する動き補償部と、動き補償部で生成された予測画像を利用して画像を復元する加算器とを備える。動き補償処理を高速かつ低消費電力で実現できる動画像復号装置を提供する。
2013031071.tif 000002
【特許請求の範囲】
【請求項１】
ブロック単位の動き予測を利用して符号化された動画像符号化ストリームを復号する動画像復号装置であって、
隣接するブロックと同じ動きベクトルを示す予測方向、動きベクトルが０であること、及び動きベクトルの差分情報が前記動画像符号化ストリームに符号化されていること、のいずれか１つを示す動きベクトルに関するフラグを抽出するために、前記動画像符号化ストリームを復号する復号手段と、
前記復号手段で抽出された複数のブロックの前記動きベクトルに関するフラグを基に、隣接するブロックの動きベクトルが同じか否かを判断する動きベクトル比較手段と、
前記動きベクトル比較手段で動きベクトルが同じと判断された複数のブロックを１つの動き補償対象ブロックに統合するブロック統合手段と、
前記動きベクトルに関するフラグに基づいて、動きベクトルを生成する動きベクトル生成手段と、
前記動きベクトル生成手段で生成された動きベクトルに基づいて、前記動き補償対象ブロック毎の参照画像を、過去に復号されてメモリに格納された参照画像データから取得する参照画像取得手段と、
前記参照画像取得手段で取得された参照画像を用いて動き補償を行い、前記動き補償対象ブロック毎に予測画像を生成する動き補償手段と、
前記動き補償手段で生成された予測画像を利用して画像を復元する復元手段とを備える
ことを特徴とする動画像復号装置。
【請求項２】
前記ブロック統合手段は、前記動きベクトル比較手段で動きベクトルが隣接するブロックと同じでないと判断された動き補償対象ブロックを個別の動き補償対象ブロックとする
ことを特徴とする請求項１に記載の動画像復号装置。
【請求項３】
前記動きベクトルに関するフラグの予測方向は、前記フラグが対応付けられたブロックに、上方向に隣接するブロックと動きベクトルが同じであること、または、左方向に隣接するブロックと動きベクトルが同じであることのうちのいずれかを示す
ことを特徴とする請求項１又は２に記載の動画像復号装置。
【請求項４】
前記動きベクトル比較手段で比較の対象となるブロック、及び前記ブロック統合手段で統合される前のブロックの大きさは、４画素×４画素または８画素×８画素である
ことを特徴とする請求項１〜３のいずれか１項に記載の動画像復号装置。
【請求項５】
前記動きベクトル比較手段で比較の対象となるブロックは、１つのマクロブロック内のブロックである
ことを特徴とする請求項１〜４のいずれか１項に記載の動画像復号装置。
【請求項６】
前記動きベクトル比較手段は、前記複数のブロックそれぞれについて、当該ブロックに上方向に隣接するブロック、左方向に隣接するブロック、または、左上方向に隣接するブロックと動きベクトルが同じか否かを判断する
ことを特徴とする請求項５記載の動画像復号装置。
【請求項７】
前記動きベクトル比較手段は、比較対象となる２つの隣接するブロックそれぞれの前記動きベクトルに関するフラグが、当該２つのブロックに隣接するマクロブロックに含まれる動き補償対象ブロックと動きベクトルが同じであることを示す場合に、当該２つのブロックを１つの動き補償対象ブロックに統合する
ことを特徴とする請求項５記載の動画像復号装置。
【請求項８】
前記隣接するマクロブロックに含まれる前記動き補償対象ブロックのサイズは、１６画素×１６画素または８画素×８画素である
ことを特徴とする請求項７記載の動画像復号装置。
【請求項９】
前記動画像符号化ストリームは、ＶＰ８で符号化されている
ことを特徴とする請求項１〜８のいずれか１項に記載の動画像復号装置。
【請求項１０】
ブロック単位の動き予測を利用して符号化された動画像符号化ストリームを復号する動画像復号装置であって、
前記動画像符号化ストリームから動きベクトルの差分値を復号する復号手段と、
前記動きベクトルの予測値である予測ベクトルを算出する予測ベクトル算出手段と、
前記予測ベクトル算出手段で算出された前記予測ベクトルと、前記復号手段で復号された前記動きベクトルの差分値とを足し合わせることによって、動きベクトルを生成する動きベクトル生成手段と、
前記動きベクトル生成手段で生成された前記動きベクトルと、隣接する複数のブロックの動きベクトルとを比較し、同じ動きベクトルとなるか否かを判断する動きベクトル比較手段と、
前記動きベクトル比較手段で動きベクトルが同じと判断された複数のブロックを１つの動き補償対象ブロックに統合するブロック統合手段と、
前記動きベクトル生成手段で生成された動きベクトルに基づいて、前記動き補償対象ブロック毎の参照画像を、過去に復号されてメモリに格納された参照画像データから取得する参照画像取得手段と、
前記参照画像取得手段で取得された参照画像を用いて動き補償を行い、前記動き補償対象ブロック毎に予測画像を生成する動き補償手段と、
前記動き補償手段で生成された予測画像を利用して画像を復元する復元手段とを備える
ことを特徴とする動画像復号装置。
【請求項１１】
ブロック単位の動き予測を利用して符号化された動画像符号化ストリームを復号する動画像復号方法であって、
隣接するブロックと同じ動きベクトルを示す予測方向、動きベクトルが０であること、及び動きベクトルの差分情報が前記動画像符号化ストリームに符号化されていること、のいずれか１つを示す動きベクトルに関するフラグを抽出するために、前記動画像符号化ストリームを復号する復号ステップと、
前記復号ステップで抽出された複数のブロックの前記動きベクトルに関するフラグを基に、隣接するブロックの動きベクトルが同じか否かを判断する動きベクトル比較ステップと、
前記動きベクトル比較ステップで動きベクトルが同じと判断された複数のブロックを１つの動き補償対象ブロックに統合するブロック統合ステップと、
前記動きベクトルに関するフラグに基づいて、動きベクトルを生成する動きベクトル生成ステップと、
前記動きベクトル生成ステップで生成された動きベクトルに基づいて、前記動き補償対象ブロック毎の参照画像を、過去に復号されてメモリに格納された参照画像データから取得する参照画像取得ステップと、
前記参照画像取得ステップで取得された参照画像を用いて動き補償を行い、前記動き補償対象ブロック毎の予測画像を生成する動き補償ステップと、
前記動き補償ステップで生成された予測画像を利用して画像を復元する復元ステップとを含む
ことを特徴とする動画像復号方法。
【請求項１２】
ブロック単位の動き予測を利用して符号化された動画像符号化ストリームを復号する集積回路であって、
隣接するブロックと同じ動きベクトルを示す予測方向、動きベクトルが０であること、及び動きベクトルの差分情報が前記動画像符号化ストリームに符号化されていること、のいずれか１つを示す動きベクトルに関するフラグを抽出するために、前記動画像符号化ストリームを復号する復号部と、
前記復号部で抽出された複数のブロックの前記動きベクトルに関するフラグを基に、隣接するブロックの動きベクトルが同じか否かを判断する動きベクトル比較部と、
前記動きベクトル比較部で動きベクトルが同じと判断された複数のブロックを１つの動き補償対象ブロックに統合するブロック統合部と、
前記動きベクトルに関するフラグに基づいて、動きベクトルを生成する動きベクトル生成部と、
前記動きベクトル生成部で生成された動きベクトルに基づいて、前記動き補償対象ブロック毎の参照画像を、過去に復号されてメモリに格納された参照画像データから取得する参照画像取得部と、
前記参照画像取得部で取得された参照画像を用いて動き補償を行い、前記動き補償対象ブロック毎に予測画像を生成する動き補償部と、
前記動き補償部で生成された予測画像を利用して画像を復元する復元部とを備える
ことを特徴とする集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、動き予測を用いて符号化された動画像符号化ストリームを復号する動画像復号装置及び動画像復号方法に関するものである。
【背景技術】
【０００２】
近年、マルチメディア技術の発展に伴い、動画、静止画、音声やテキストなどあらゆる情報がデジタル信号として、配信されるようになってきた。特に、動画像に関しては、ITU-T（International Telecommunication Union Telecommunication Standardization Sector）によって標準化されたＨ．２６１、Ｈ．２６３やＩＳＯ／ＩＥＣ（International Organization for Standardization ／ International Electrotechnical Commission）によって標準化されたＭＰＥＧ（Motion Picture Experts Group）−１、ＭＰＥＧ−２、ＭＰＥＧ−４などの動画符号化技術が標準規格として用いられている。【０００３】
また最近では、スマートフォンに代表される携帯情報端末やネットワーク配信など、より広範囲に適用可能で、より圧縮率の高い符号化方式として、ITU-TとISOが共同で標準化を行ったＨ．２６４（MPEG-4 AVC）や、標準規格では無く、メーカー独自の動画符号化規格である、Ｇｏｏｇｌｅ社のＶＰ８などが注目されている。【０００４】
一般に動画像の符号化では、時間方向および空間方向の冗長性を削減することによって情報量の圧縮を行う。【０００５】
そこで、時間的な冗長性の削減を目的とする画面間予測符号化では、符号化対象画像の前方または後方の画像を参照してブロック単位で動きの検出を行うことで動きベクトルの算出を行い、さらに動きベクトルの指すブロックから予測画像の作成を行い、得られた予測画像と符号化対象画像との差分値を、動きベクトルと共に符号化して動画像符号化ストリームを生成する。【０００６】
そして、このような手法により、符号化された動画像符号化ストリームの復号の際には、過去に復号した画像である参照画像データを示す動きベクトルの復号と、動きベクトルによって算出される予測画像を生成する動き補償処理と、動き補償処理で生成された予測画像と動画像符号化ストリームから与えられる差分値とを加算することで元の画像を復元する復元処理とを行う。【０００７】
通常、動き補償処理は、１６画素×１６画素からなるマクロブロック単位で行われる。すなわち、マクロブロック毎に１つあるいは複数の動きベクトルが与えられるので、復号装置は、それらの動きベクトルの指し示す画像領域のデータを参照画像データ（例えば、フレームメモリ）から読み出し、動画像符号化ストリームから与えられる原画像との差分値と読み出したデータとを加算することにより、画像を復元することができる。【０００８】
また、動きベクトル（以後、ＭＶと呼ぶ。）は、通常そのまま符号化されず、以下の式１に示されるように、予測動きベクトル（以後、ＰＭＶまたは予測ＭＶと呼ぶ。）とその差分値（以後、ＭＶＤまたはＭＶ差分と呼ぶ。）とで構成され、ＰＭＶとＭＶＤとが別々に符号化される。【０００９】
ＭＶ＝ＰＭＶ＋ＭＶＤ  （式１）
Ｈ．２６４（非特許文献１を参照）におけるＰＭＶは、動き補償対象のブロックサイズ（マクロブロックタイプとも呼ぶ）により、どの隣接ブロックのＭＶを使用するか、または、その導出方法が決められている。そして、ＭＶＤは、そのマクロブロックタイプに応じて動画像符号化ストリームに符号化されることが決められている（例えば、Ｈ．２６４では、インターマクロブロックであり、且つスキップマクロブロックで無い場合にＭＶＤが符号化されている）。【００１０】
また、ＶＰ８（非特許文献２を参照）におけるＰＭＶは、どの隣接ブロックのＭＶを使うか、ＭＶ値が０であるか、または、ＭＶＤが動画像符号化ストリームに含まれるかを示すフラグが動画像符号化ストリームに符号化されており、ＭＶＤは、そのＰＭＶを示すフラグの値に応じて、動画像符号化ストリームに符号化されている。【００１１】
なお、当然、ＭＶがそのまま動画像符号化ストリームに符号化されていてもよい。このように、ＭＶをどのように動画像符号化ストリームに含めるかは、各動画像符号化規格に規定される。【００１２】
ところで、上記の復号処理を実行する復号回路は、通常、復号した画像のデータを一旦外部のメモリに格納する構成とされている。このため、動き予測を利用した画像の復号処理のためには、外部のメモリから参照画像のデータを読み出すことが必要となる。【００１３】
ここで、例えばＭＰＥＧ−２では、マクロブロックを２つの領域に分割し、分割した領域ごとに動き予測を行うことが可能となっている（以後、動き予測を行う対象となる領域のことをブロック、または、動き補償対象ブロックとも呼ぶ）。また、Ｈ．２６４及びＶＰ８ではさらに、マクロブロックを４画素×４画素のサイズのブロックに１６分割することが可能となっている。このようにマクロブロックを複数のブロックに分割した場合、従来は、動きベクトルが指し示す参照画像データを、分割したブロックに対応する領域ごとに外部のメモリから読み出していた。その結果、分割数が増加すると、メモリにアクセスする回数が増加する。また、メモリと復号回路との間のデータトラフィックが増大する、つまり、メモリバンド幅が増大するという問題があった。【００１４】
さらに、通常、動きベクトルは、参照画像位置、つまり、参照画像の整数位置を指し示すのみならず、小数位置をも指し示すことが可能である（例えば、１／２の位置や１／４の位置）。小数画素位置の予測画像を算出するためには、動きベクトルが指し示す参照画像とその周辺画素とを用いて、フィルタ処理を行う必要がある。【００１５】
例えば、Ｈ．２６４やＶＰ８の動き補償処理では、６タップフィルタを使用する場合がある（非特許文献１、非特許文献２を参照）。ここで、図９は、動き補償処理のブロックサイズ（以後、パーティションサイズと呼ぶ。）が横４画素×縦４画素（以後、４×４と呼ぶ。）の場合に、６タップフィルタで使用される参照画像データを示す図である。【００１６】
図中の×印は、動き補償処理後に算出される予測画素を示し、○印は、６タップフィルタを使用した動き補償処理に必要な画素を示す。つまり、パーティションサイズが４×４のブロック（図１０Ａの実線）の動き補償には、９画素×９画素（図１０Ａの破線）の参照画像データが必要である。同様に、パーティションサイズが１６×１６のブロック（図１０Ｂの実線）の場合、２１画素×２１画素（図１０Ｂの破線）の参照画像データが必要である。さらに、パーティションサイズが８×８のブロックの場合、１３画素×１３画素の参照画像データが必要である（図は省略）。【００１７】
従って、例えば、パーティションサイズが１６×１６のときに、輝度成分の予測画像を生成するために必要な参照画像データは、図１０Ｂに示すように２１画素×２１画素の参照画像データとなる。この場合、１マクロブロックの輝度成分の予測画像（例えば、輝度成分１画素当り１バイトの場合）を生成するために必要な参照画像データの最大読み出し量は、一つの予測方向につき、２１［画素］×２１［画素］×１［ベクトル数］＝４４１［バイト］となる。なお、参照画像データの読み出し量は、外部メモリと接続するバスのバス幅や１回のアクセスするデータ量などにより、さらに増加する可能性がある。また、参照画像データの読み出し量は、外部メモリと接続するバスのバス幅や１回のアクセスするデータ量や外部メモリのＡＣ特性（例えば、ＳＤＲＡＭのＣＡＳレイテンシやウェートサイクル）などにより、増加する可能性がある。【００１８】
一方、パーティションサイズが４×４のときには、図１０Ａに示すように９画素×９画素の領域を読み出す必要がある。この場合に１マクロブロックの輝度成分の予測画像を生成するために必要な参照画像データの最大読み出し量は、一つの予測方向につき、９［画素］×９［画素］×１６［ベクトル数］＝１２９６［バイト］となり、パーティションサイズが１６×１６の場合と比較して、読み出し量が増大することがわかる。【００１９】
なお、上記の参照画像データの読み出し量が増大する課題に対して、１つのマクロブロックで必要な参照画像データを１つの２次元データ領域にまとめることで、参照画像データの読み出し量を削減しようとする動画像復号回路がある（例えば、特許文献１及び特許文献２を参照）。【００２０】
図１１Ａ及び図１１Ｂに、従来技術による動き補償処理に必要な参照画像データの例を示す。図１１Ａは、１つのマクロブロックに含まれる８×８パーティションの４つのブロックと、その動きベクトルとを示す図である。図１１Ｂは、図１１Ａの各ブロックが必要とする参照画像データを示す図であり、１つの画像領域にまとめた場合を破線１１００で示す。つまり、複数の参照画像データを１つの画像領域にまとめることで、重複する画像データを外部のメモリ（フレームメモリ）から繰り返し取得しなくてもよいために、メモリバンド幅の削減が可能となる。【００２１】
図１２Ａ及び図１２Ｂは、動き補償処理に使用する画素、中間画素、及び出力画素の例を示す図である。通常、動き補償処理で小数画素位置（例えば、Ｘ方向に１／２画素位置、Ｙ方向に１／２画素位置）を求めるためには、水平方向に６タップフィルタを実施することによって水平方向の小数画素位置を求める水平フィルタと、水平フィルタで求めた画素を使って垂直方向に６タップフィルタを実施することによって垂直方向の小数画素位置を求める垂直フィルタとを組み合わせる。【００２２】
水平フィルタ及び垂直フィルタの順番、フィルタ係数、及び丸め処理は、各動画符号化規格によって異なる（例えば、非特許文献１、非特許文献２を参照）。図１２Ａは、パーティションサイズが４×４の場合の動き補償に必要な画素（○印）、水平フィルタ後の出力画素（◆印）、及び動き補償後の出力画素（×印）を示す図である。図１２Ｂは、パーティションサイズが４×８の場合の動き補償に必要な画素（○印）、水平フィルタ後の出力画素（◆印）及び動き補償後の出力画素（×印）を示す図である。なお、この例では、水平フィルタ、垂直フィルタの順に実施されるものとする。【００２３】
この場合、１マクロブロックの輝度成分の予測画像（２５６バイト）を生成するために必要な６タップフィルタ処理の実施回数（処理量）は、４×４のパーティションサイズの場合、水平フィルタが、４［画素］×９［画素］＝３６回（図１２Ａの◆印）、垂直フィルタが、４［画素］×４［画素］＝１６回（図１２Ａの×印）である。すなわち、１マクロブロックでは、（３６＋１６）×１６［パーティション数］＝８３２［回］必要である。【００２４】
一方、４×８のパーティションサイズの場合、水平フィルタが、４［画素］×１３［画素］＝５２回（図１２Ｂの◆印）、垂直フィルタが、４［画素］×８［画素］＝３２回（図１２Ｂの×印）である。すなわち、１マクロブロックでは、（５２＋３２）×８［パーティション数］＝６７２［回］となり、４×４の場合よりもフィルタ実施回数は減少する。同様に、１６×１６のパーティションサイズの場合、水平フィルタが、１６［画素］×２１［画素］＝３３６回、垂直フィルタが、１６［画素］×１６［画素］＝２５６回となる。すなわち、（３３６＋２５６）×１［パーティション数］＝５９２［回］となり、更にフィルタ実施回数は減少する。【００２５】
つまり、パーティションサイズが小さくなると、フィルタ処理回数が増加するため、性能の劣化となる課題があった。【００２６】
なお、フィルタ処理を水平方向または垂直方向に一度に複数画素を出力可能な回路構成をとることで、処理性能を向上することは可能である。例えば、８画素分を同時に６タップフィルタ処理して出力することが可能な場合、４×４のパーティションサイズの場合（図１２Ａ）、水平フィルタを９回、垂直フィルタを４回実施すればよい。すなわち、１マクロブロックでは、（９＋４）×１６［パーティション数］＝２０８［回］となる。４×８のパーティションサイズの場合（図１２Ｂ）、水平フィルタを１３回、垂直フィルタを４回実施すればよい。すなわち、１マクロブロックでは、（１３＋４）×８［パーティション数］＝１３６［回］となる。【００２７】
つまり、この場合でもパーティションサイズが小さくなると、フィルタ処理回数が増加するため、性能の劣化となる課題がある。
【先行技術文献】
【特許文献】
【００２８】
【特許文献１】特開２００５−３５４６７３号公報
【特許文献２】国際公開第２００７／０５５０１３号
【非特許文献】
【００２９】
【非特許文献１】ITU-T（International Telecommunication Union Telecommunication Standardization Sector）勧告「H.264(03/10)」、2010年6月発行
【非特許文献２】VP8 Data Format and Decoding Guide
【発明の概要】
【００３０】
上述した従来技術のように、１つのマクロブロックで必要な参照画像を１つの画像領域にまとめることで参照画像の読み出し量を削減することは可能である。しかしながら、パーティション毎に、動き補償処理、つまり、フィルタ処理を実施する必要があり、パーティションサイズが小さくなればなるほど、フィルタ処理量が増大し、処理性能の悪化を招いてしまう課題がある。処理性能の悪化は、復号処理の高速化を阻害する要因になる。また、高速化のために動作周波数を高めると、消費電力が増加してしまうことが問題である。
【００３１】
本発明は、このような課題に鑑みてなされたものであり、動き予測を用いて符号化された符号化ストリームを復号する際に、フレームメモリからの参照画像データの読み出し画素数を削減し、動き補償処理を高速かつ低消費電力で実現できる動画像復号装置及びその方法を提供することを目的とする。
【００３２】
本発明の一形態に係る動画像復号装置は、ブロック単位の動き予測を利用して符号化された動画像符号化ストリームを復号する。具体的には、動画像復号装置は、隣接するブロックと同じ動きベクトルを示す予測方向、動きベクトルが０であること、及び動きベクトルの差分情報が前記動画像符号化ストリームに符号化されていること、のいずれか１つを示す動きベクトルに関するフラグを抽出するために、前記動画像符号化ストリームを復号する復号手段と、前記復号手段で抽出された複数のブロックの前記動きベクトルに関するフラグを基に、隣接するブロックの動きベクトルが同じか否かを判断する動きベクトル比較手段と、前記動きベクトル比較手段で動きベクトルが同じと判断された複数のブロックを１つの動き補償対象ブロックに統合するブロック統合手段と、前記動きベクトルに関するフラグに基づいて、動きベクトルを生成する動きベクトル生成手段と、前記動きベクトル生成手段で生成された動きベクトルに基づいて、前記動き補償対象ブロック毎の参照画像を、過去に復号されてメモリに格納された参照画像データから取得する参照画像取得手段と、前記参照画像取得手段で取得された参照画像を用いて動き補償を行い、前記動き補償対象ブロック毎に予測画像を生成する動き補償手段と、前記動き補償手段で生成された予測画像を利用して画像を復元する復元手段とを備える。
【００３３】
これによれば、動きベクトルに関するフラグを基に、隣接する複数のブロックが同じ動きベクトルとなる場合にはブロックサイズを統合し、統合後の動き補償対象ブロック毎に参照画像データを取得することができる。
【００３４】
これらにより、フレームメモリからの参照画像データの読み出し画素数を削減し、かつ、動き補償処理を行うブロックサイズを大きく統合しているため、動き補償処理の高速化を図り、低消費電力で実現することができる。
【００３５】
また、前記ブロック統合手段は、前記動きベクトル比較手段で動きベクトルが隣接するブロックと同じでないと判断されたブロックを個別の動き補償対象ブロックとするものであってもよい。
【００３６】
これによれば、隣接する複数のブロックの動きベクトルが異なる場合においても、個別の動き補償対象ブロック毎に参照画像を取得することができる。
【００３７】
これらにより、フレームメモリからの参照画像データの読み出し画素数を削減し、かつ、動き補償処理を行うブロックサイズを大きく統合しているため、動き補償処理の高速化を図り、低消費電力で実現することができる。
【００３８】
また、前記動きベクトルに関するフラグの予測方向は、前記フラグが対応付けられたブロックに、上方向に隣接するブロックと動きベクトルが同じであること、または、左方向に隣接するブロックと動きベクトルが同じであることのうちのいずれかを示すものであってもよい。
【００３９】
これによれば、動きベクトルの予測方向を示すフラグ、すなわち、上方向の隣接ブロック又は左方向の隣接ブロックと同じ動きベクトルをもつことを示すフラグだけを用いることで、隣接する複数のブロックが同じ動きベクトルを持つかどうかを容易に判断することが可能である。そして、同じ動きベクトルとなる場合には、ブロックサイズを統合したうえで、統合後のブロック毎に参照画像を取得することができる。
【００４０】
これらにより、フレームメモリからの参照画像データの読み出し画素数を削減し、かつ、動き補償処理を行うブロックサイズを大きく統合しているため、動き補償処理の高速化を図り、低消費電力で実現することができる。
【００４１】
また、前記動きベクトル比較手段で比較の対象となるブロック、及び前記ブロック統合手段で統合される前のブロックの大きさは、４画素×４画素または８画素×８画素であってもよい。
【００４２】
これによれば、４画素×４画素または８画素×８画素のブロックの動きベクトルの予測方向に関するフラグを基に、隣接する複数のブロックが同じ動きベクトルとなるかを判断し、もし同じ動きベクトルであれば、同じ動きベクトルとなる隣接するブロックを統合し、統合後の動き補償対象ブロック毎に参照画像を取得することができる。
【００４３】
これらにより、フレームメモリからの参照画像データの読み出し画素数を削減し、かつ、動き補償処理を行うブロックサイズを大きく統合しているため、動き補償処理の高速化を図り、低消費電力で実現することができる。
【００４４】
また、前記動きベクトル比較手段で比較の対象となるブロックは、１つのマクロブロック内のブロックであってもよい。
【００４５】
これによれば、マクロブロック内の複数のブロックの動きベクトルに関するフラグを基に、同じ動きベクトルとなるかを判断し、もし同じ動きベクトルであれば、同じ動きベクトルとなる隣接するブロックを統合し、統合後の動き補償対象ブロック毎に参照画像を取得することができる。
【００４６】
これらにより、フレームメモリからの参照画像データの読み出し画素数を削減し、かつ、動き補償処理を行うブロックサイズを大きく統合しているため、動き補償処理の高速化を図り、低消費電力で実現することができる。
【００４７】
また、前記動きベクトル比較手段は、前記複数のブロックそれぞれについて、当該ブロックに上方向に隣接するブロック、左方向に隣接するブロック、または、左上方向に隣接するブロックと動きベクトルが同じか否かを判断してもよい。
【００４８】
これによれば、上方向の隣接ブロック、左方向の隣接ブロック、及び左上方向の隣接する複数のブロックの動きベクトルに関するフラグを基に、同じ動きベクトルとなる場合にはブロックサイズを統合したうえで、統合後のブロック毎に参照画像を取得することができる。
【００４９】
これらにより、フレームメモリからの参照画像データの読み出し画素数を削減し、かつ、動き補償処理を行うブロックサイズを大きく統合しているため、動き補償処理の高速化を図り、低消費電力で実現することができる。
【００５０】
また、前記動きベクトル比較手段は、比較対象となる２つの隣接するブロックそれぞれの前記動きベクトルに関するフラグが、当該２つのブロックに隣接するマクロブロックに含まれる動き補償対象ブロックと動きベクトルが同じであることを示す場合に、当該２つのブロックを１つの動き補償対象ブロックに統合してもよい。
【００５１】
これによれば、隣接するマクロブロックの動き補償対象ブロックを動きベクトル比較手段で用いることで、隣接する複数のブロックが隣接マクロブロックの動きベクトルを参照し、同じ動きベクトルになる場合に、ブロックサイズを統合したうえで、統合後のブロック毎に参照画像を取得することができる。
【００５２】
これらにより、フレームメモリからの参照画像データの読み出し画素数を削減し、かつ、動き補償処理を行うブロックサイズを大きく統合しているため、動き補償処理の高速化を図り、低消費電力で実現することができる。
【００５３】
また、前記隣接するマクロブロックに含まれる前記動き補償対象ブロックのサイズは、１６画素×１６画素または８画素×８画素であってもよい。
【００５４】
これによれば、隣接するマクロブロックの動き補償を行うブロックサイズが１６画素×１６画素または８画素×８を画素の場合に、隣接マクロブロックを動きベクトル比較手段で用いることで、隣接する複数のブロックが参照する隣接するマクロブロックの動き補償ブロックと同じ動きベクトルとなる場合には、ブロックサイズを統合したうえで、統合後のブロック毎に参照画像を取得することができる。
【００５５】
これらにより、フレームメモリからの参照画像データの読み出し画素数を削減し、かつ、動き補償処理を行うブロックサイズを大きく統合しているため、動き補償処理の高速化を図り、低消費電力で実現することができる。
【００５６】
また、前記動画像符号化ストリームは、ＶＰ８で符号化されていてもよい。
【００５７】
これによれば、ＶＰ８の場合に、動きベクトルに関するフラグを動きベクトル比較手段で用いることで、同じ動きベクトルとなる場合にはブロックサイズを統合し、統合後のブロック毎に参照画像データを取得することができる。
【００５８】
これらにより、フレームメモリからの参照画像データの読み出し画素数を削減し、かつ、動き補償処理を行うブロックサイズを大きく統合しているため、動き補償処理の高速化を図り、低消費電力で実現することができる。
【００５９】
本発明の他の形態に係る動画像復号装置は、ブロック単位の動き予測を利用して符号化された動画像符号化ストリームを復号する。具体的には、動画像復号装置は、前記動画像符号化ストリームから動きベクトルの差分値を復号する復号手段と、前記動きベクトルの予測値である予測ベクトルを算出する予測ベクトル算出手段と、前記予測ベクトル算出手段で算出された前記予測ベクトルと、前記復号手段で復号された前記動きベクトルの差分値とを足し合わせることによって、動きベクトルを生成する動きベクトル生成手段と、前記動きベクトル生成手段で生成された前記動きベクトルと、隣接する複数のブロックの動きベクトルとを比較し、同じ動きベクトルとなるか否かを判断する動きベクトル比較手段と、前記動きベクトル比較手段で動きベクトルが同じと判断された複数のブロックを１つの動き補償対象ブロックに統合するブロック統合手段と、前記動きベクトル生成手段で生成された動きベクトルに基づいて、前記動き補償対象ブロック毎の参照画像を、過去に復号されてメモリに格納された参照画像データから取得する参照画像取得手段と、前記参照画像取得手段で取得された参照画像を用いて動き補償を行い、前記動き補償対象ブロック毎に予測画像を生成する動き補償手段と、前記動き補償手段で生成された予測画像を利用して画像を復元する復元手段とを備える。
【００６０】
これによれば、隣接する複数の動き補償対象ブロックが同じ動きベクトルとなる場合にはブロックサイズを統合し、統合後の動き補償対象ブロック毎に参照画像データを取得することができる。
【００６１】
これらにより、フレームメモリからの参照画像データの読み出し画素数を削減し、かつ、動き補償処理を行うブロックサイズを大きく統合しているため、動き補償処理の高速化を図り、低消費電力で実現することができる。
【００６２】
本発明の一形態に係る動画像復号方法は、ブロック単位の動き予測を利用して符号化された動画像符号化ストリームを復号する方法である。具体的には、動画像復号方法は、隣接するブロックと同じ動きベクトルを示す予測方向、動きベクトルが０であること、及び動きベクトルの差分情報が前記動画像符号化ストリームに符号化されていること、のいずれか１つを示す動きベクトルに関するフラグを抽出するために、前記動画像符号化ストリームを復号する復号ステップと、前記復号ステップで抽出された複数のブロックの前記動きベクトルに関するフラグを基に、隣接するブロックの動きベクトルが同じか否かを判断する動きベクトル比較ステップと、前記動きベクトル比較ステップで動きベクトルが同じと判断された複数のブロックを１つの動き補償対象ブロックに統合するブロック統合ステップと、前記動きベクトルに関するフラグに基づいて、動きベクトルを生成する動きベクトル生成ステップと、前記動きベクトル生成ステップで生成された動きベクトルに基づいて、前記動き補償対象ブロック毎の参照画像を、過去に復号されてメモリに格納された参照画像データから取得する参照画像取得ステップと、前記参照画像取得ステップで取得された参照画像を用いて動き補償を行い、前記動き補償対象ブロック毎の予測画像を生成する動き補償ステップと、前記動き補償ステップで生成された予測画像を利用して画像を復元する復元ステップとを含む。
【００６３】
これによれば、動きベクトルの予測方向を示すフラグを基に、同じ動きベクトルとなる場合にはブロックサイズを統合し、統合後のブロック毎に参照画像データを取得することができる。
【００６４】
これらによりフレームメモリからの参照画像データの読み出し画素数を削減し、かつ、動き補償処理を行うブロックサイズを大きく統合しているため、動き補償処理の高速化を図り、低消費電力で実現することができる。
【００６５】
本発明の一形態に係る集積回路は、ブロック単位の動き予測を利用して符号化された動画像符号化ストリームを復号する。具体的には、集積回路は、隣接するブロックと同じ動きベクトルを示す予測方向、動きベクトルが０であること、及び動きベクトルの差分情報が前記動画像符号化ストリームに符号化されていること、のいずれか１つを示す動きベクトルに関するフラグを抽出するために、前記動画像符号化ストリームを復号する復号部と、前記復号部で抽出された複数のブロックの前記動きベクトルに関するフラグを基に、隣接するブロックの動きベクトルが同じか否かを判断する動きベクトル比較部と、前記動きベクトル比較部で動きベクトルが同じと判断された複数のブロックを１つの動き補償対象ブロックに統合するブロック統合部と、前記動きベクトルに関するフラグに基づいて、動きベクトルを生成する動きベクトル生成部と、前記動きベクトル生成部で生成された動きベクトルに基づいて、前記動き補償対象ブロック毎の参照画像を、過去に復号されてメモリに格納された参照画像データから取得する参照画像取得部と、前記参照画像取得部で取得された参照画像を用いて動き補償を行い、前記動き補償対象ブロック毎に予測画像を生成する動き補償部と、前記動き補償部で生成された予測画像を利用して画像を復元する復元部とを備える。
【００６６】
これによれば、動きベクトルの予測方向を示すフラグを基に、同じ動きベクトルとなる場合にはブロックサイズを統合し、統合後のブロック毎に参照画像データを取得することができる。
【００６７】
これらによりフレームメモリからの参照画像データの読み出し画素数を削減し、かつ、動き補償処理を行うブロックサイズを大きく統合しているため、動き補償処理の高速化を図り、低消費電力で実現することができる。
【００６８】
以上のように、本発明にかかる動画像復号装置によれば、動き補償処理の処理単位であるブロックを統合することで、メモリバンド幅を削減できるとともに、動き補償処理時の処理量の削減を行うことができる。その結果、デコード性能の向上及びデコード処理の高速化が実現でき、処理量の削減による低消費電力化を行うことができる。
【図面の簡単な説明】
【００６９】
【図１】図１は、実施の形態１に係る動画像復号装置の構成を示すブロック図である。
【図２Ａ】図２Ａは、動きベクトルに関するフラグを説明する図であって、動きベクトルが左側に隣接するブロックと同じであることを示す図である。
【図２Ｂ】図２Ｂは、動きベクトルに関するフラグを説明する図であって、動きベクトルが上側に隣接するブロックと同じであることを示す図である。
【図２Ｃ】図２Ｃは、動きベクトルに関するフラグを説明する図であって、動きベクトルが０であることを示す図である。
【図２Ｄ】図２Ｄは、動きベクトルに関するフラグを説明する図であって、動きベクトルデータが動画像符号化ストリームに含まれていることを示す図である。
【図３Ａ】図３Ａは、マクロブロックに含まれる各ブロックの動きベクトルに関するフラグの例を示す図である。
【図３Ｂ】図３Ｂは、図３Ａの各ブロックを統合した結果を示す図である。
【図３Ｃ】図３Ｃは、マクロブロックに含まれる各ブロックの動きベクトルに関するフラグの例を示す図である。
【図３Ｄ】図３Ｄは、図３Ｃの各ブロックを統合した結果を示す図である。
【図３Ｅ】図３Ｅは、図３Ｄの各ブロックをさらに統合した結果を示す図である。
【図３Ｆ】図３Ｆは、図３Ｅの各ブロックをさらに統合した結果を示す図である。
【図４】図４は、実施の形態１に係る予測画像生成のフローチャートである。
【図５Ａ】図５Ａは、８×８パーティションに含まれる複数のブロックの位置関係を示す図である。
【図５Ｂ】図５Ｂは、図５Ａの各ブロックの統合可能なケースの一覧である。
【図５Ｃ】図５Ｃは、図５Ａの各ブロックの統合可能なケースの一覧である。
【図６Ａ】図６Ａは、マクロブロックに含まれる各ブロックの動きベクトルに関するフラグの例を示す図である。
【図６Ｂ】図６Ｂは、図６Ａの各ブロックを統合した結果を示す図である。
【図６Ｃ】図６Ｃは、図６Ｂの各ブロックをさらに統合した結果を示す図である。
【図７Ａ】図７Ａは、８×８パーティションに含まれる複数のブロックと、隣接する他のマクロブロックとの位置関係を示す図である。
【図７Ｂ】図７Ｂは、図７Ａの各ブロックの統合可能なケースの一覧である。
【図７Ｃ】図７Ｃは、図７Ａの各ブロックの統合可能なケースの一覧である。
【図８】図８は、実施の形態２に係る予測画像生成のフローチャートである。
【図９】図９は、６タップフィルタを用いた動き補償処理を説明する図である。
【図１０Ａ】図１０Ａは、パーティションサイズが４×４のブロックの動き補償に必要な参照画像データの例を示す図である。
【図１０Ｂ】図１０Ｂは、パーティションサイズが１６×１６のブロックの動き補償に必要な参照画像データの例を示す図である。
【図１１Ａ】図１１Ａは、８×８パーティションの４つのブロックと、その動きベクトルとを示す図である。
【図１１Ｂ】図１１Ｂは、図１１Ａの各ブロックが必要とする参照画像データを示す図である。
【図１２Ａ】図１２Ａは、４×４パーティションのブロックの動き補償に必要な画素、中間画素、及び出力画素を示す図である。
【図１２Ｂ】図１２Ｂは、４×８パーティションのブロックの動き補償に必要な画素、中間画素、及び出力画素を示す図である。
【発明を実施するための形態】
【００７０】
以下、図面を参照しつつ、本発明の実施の形態について説明する。
【００７１】
（実施の形態１）
以下、本発明の実施の形態１における動画像復号装置について説明する。
【００７２】
図１は、本発明の実施の形態１における動画像復号装置１００の構成を示すブロック図である。
【００７３】
図１の示すように、この動画像復号装置１００は、復号部１１０と、動きベクトル比較部１２０と、ブロック統合部１３０と、動きベクトル生成部１４０と、フレームメモリ転送制御部１５０と、バッファ１６０と、局所参照メモリ１７０と、動き補償部１８０と、加算器（復元部）１９０とを備える。
【００７４】
復号部１１０は、復号部１１０に入力された動画像符号化ストリームを復号して、動きベクトルに関するフラグ、動きベクトルデータ、及び符号化対象画像と予測画像との差分値（以下「残差画像」）を出力する。そして、復号部１１０は、動きベクトルに関するフラグ及び動きベクトルデータを動きベクトル比較部１２０及び動きベクトル生成部１４０に出力し、残差画像を加算器１９０に出力する。
【００７５】
ここで、動きベクトルに関するフラグとは、隣接ブロックと同じ動きベクトルをもつことを示す予測方向、動きベクトルが０であること、及び動画像符号化ストリームに動きベクトルデータが含まれていることのいずれかを示すフラグであって、動画像符号化ストリームにブロック毎に格納されている。
【００７６】
また、動きベクトルデータとは、動きベクトルの差分値または動きベクトルそのものである。ただし、この動きベクトルデータは、動画像符号化ストリームに動きベクトルデータが含まれていることを、動きベクトルに関するフラグが示している場合にのみ、動画像符号化ストリームに格納されていればよい。
【００７７】
動きベクトル生成部１４０は、復号部１１０から動きベクトルに関するフラグを受け取った場合、隣接ブロックの動きベクトルを用いて、復号対象ブロックの動きベクトルを生成する。また、動きベクトル生成部１４０は、動きベクトルの差分値を受け取った場合、隣接ブロックの動きベクトルまたは隣接ブロックの動きベクトルから算出される予測ＭＶと動きベクトルの差分値とを加算して、復号対象ブロックの動きベクトルを生成する。
【００７８】
動きベクトル比較部１２０は、復号部１１０または動きベクトル生成部１４０から受け取った動きベクトルに関するフラグを、隣接する複数のブロックの動きベクトルに関するフラグと比較し、隣接する複数のブロックで動きベクトルが同じとなるか否かを判定し、その判定結果をブロック統合部１３０へ出力する。
【００７９】
比較結果を受け取ったブロック統合部１３０は、隣接する複数のブロックで同じ動きベクトルとなる場合、それらの隣接する複数のブロックを動き補償処理単位であるブロックサイズ（以後、パーティションサイズと呼ぶ。）の動き補償対象ブロックに統合することを決定し、その結果を動きベクトル生成部１４０へ出力する。一方、ブロック統合部１３０は、隣接する複数のブロックのいずれの動きベクトルとも異なるブロックを、当該ブロック単独で動き補償対象ブロックにすると決定し、その結果を動きベクトル生成部１４０へ出力する。
【００８０】
次に、図２Ａ〜図２Ｄを用いて、動きベクトルに関するフラグについて、説明する。
【００８１】
動画像符号化ストリームが、パーティションサイズ毎に、動きベクトルに関するフラグを含んでいる場合（例えば、ＶＰ８）、当該フラグは、図２Ａ〜図２Ｄに示す４種類（Ｌｅｆｔ、Ａｂｏｖｅ、Ｚｅｒｏ、Ｎｅｗと図示）に分類される。なお、上記の動きベクトルに関するフラグを一例として説明しているが、他の場合であっても構わない。例えば、左上や右上の隣接ブロックの動きベクトルと同じことを示してもよいし、さらに２つ以上離れたブロックの動きベクトルと同じことを示してもよい。なお、Ｈ．２６４などの動画符号化規格においては、動画符号化ストリームから動きベクトルの予測方向が求められる。すなわち、図２Ａ〜図２Ｄの内容に限定されるものではない。
【００８２】
図２Ａに示される「Ｌｅｆｔ」と記載のブロックは、左側に隣接するブロックと動きベクトル（以下、ＭＶと呼ぶ。）が同じであることを示す。図２Ｂに示される「Ａｂｏｖｅ」と記載のブロックは、上側に隣接するブロックとＭＶが同じであることを示す。図２Ｃに示される「Ｚｅｒｏ」と記載のブロックは、ＭＶが０であることを示す。ただし、ＭＶが０となる場合は、当然、隣接ブロックと同じＭＶを持つ可能性はある。
【００８３】
図２Ｄに示される「Ｎｅｗ」と記載のブロックは、動画像符号化ストリーム中に新たなＭＶもしくは復号済みの周辺ブロックのＭＶから算出された予測ＭＶとの差分値を含むことを示す。つまり、符号化対象ブロックのＭＶは、隣接する複数のブロックのいずれのＭＶとも異なることと同義といえる。なお、周辺ブロックのＭＶから導出される予測ＭＶは、動画符号化規格によりその導出方法は決められており、ここでは詳述はしない（例えば、Ｈ．２６４やＶＰ８を参照）。
【００８４】
上記のように、動きベクトルに関するフラグを符号化して動画像符号化ストリーム中に含めることで、動きベクトルに関する情報の符号量の削減を容易に実現できる特徴をもつことができる。
【００８５】
また、隣接ブロックのパーティションサイズが現在のブロックのパーティションサイズと異なる場合（例えば、現在のブロックのパーティションサイズが８画素×８画素で、隣接ブロックのパーティションサイズが４画素×４画素の場合）、隣接ブロックが４画素×４画素のパーティションサイズの２つのブロックから構成されるとみなせばよい。このように、隣接ブロックに予測ＭＶとなる候補が複数存在する場合、どちらか一方を使うか、またはその平均を使うかなどは、各動画符号化規格で定められている。また、ピクチャの領域外にある隣接ブロックに関しては、ある値（例えば、０）で置き換えることや候補の予測ＭＶとして使わないなどが定められていたりする。また、画面間予測を伴わないイントラマクロブロックにある隣接ブロックに関しても同様に、ある値（例えば、０）で置き換えることや候補の予測ＭＶとして使わないなどが定められていたりする。
【００８６】
つまり、動きベクトル生成部１４０は、復号部１１０から受け取った動きベクトルに関するフラグで特定される隣接ブロックの動きベクトルを用いて、復号対象ブロックの動きベクトルを生成する。また、動きベクトルに関するフラグ以外に予測ＭＶとの差分値が必要な場合（図２Ｄの場合）、復号された動きベクトルの差分値を復号部１１０から受け取り、予測ＭＶとその差分値とを足し合わせることで動きベクトルを生成する。
【００８７】
フレームメモリ転送制御部１５０は、ブロック統合部１３０での統合結果であるパーティションサイズの動き補償対象ブロック毎に、生成された動きベクトルが指し示す参照画像領域及び動き補償時に必要な画素（予測画像生成時に必要な画素）を含むデータをバッファ１６０から局所参照メモリ１７０に転送する。
【００８８】
動き補償部１８０は、局所参照メモリ１７０に記憶されているデータから動き補償対象ブロック毎に予測画像を求め、その予測画像を加算器１９０へ出力する。加算器１９０は、復号部１１０から出力された残差画像と、動き補償部１８０から取得した予測画像とを加算し、バッファ１６０へ出力する。その後、復号済みの画像データは、バッファ１６０から表示部（図示省略）へ出力される。
【００８９】
なお、復号部１１０から出力される残差画像は、復号部１１０で復号された周波数成分の係数データ（例えば、ＤＣＴ係数）を逆量子化し、さらに画素データへの変換（例えば、逆変換やＩＤＣＴ：Inversed Discrete Cosine Transform）することによって算出される。また、時間的に異なる参照画像を用いないＩピクチャやイントラマクロブロックでは、画面内予測を用いることで、予測画像を算出することも可能である。
【００９０】
また、図１には記載していないが、加算器１９０での加算処理のあとに、マクロブロック境界やブロック境界に対して、例えば、Ｈ．２６４やＶＰ８などの動画符号化規格で定義されるデブロッキングフィルタを実施する場合もある。また、バッファ１６０は、外付けのメモリで構成されても構わないし、内蔵のメモリで構成されても構わない。
【００９１】
次に、動きベクトル比較部１２０に関して、説明する。動きベクトル比較部１２０は、復号部１１０から出力された動きベクトルに関するフラグ（詳細は、例えば図２Ａ〜図２Ｄで前述したとおりである。）と、複数の隣接ブロックの動きベクトルに関するフラグとを用いて、動きベクトルの比較を行う。なお、隣接ブロックの動きベクトルに関するフラグは、動きベクトル比較部１２０に保持されてもよいし、動きベクトル生成部１４０に保持されてもよい。
【００９２】
動きベクトル比較部１２０は、隣接する複数のブロックの動きベクトルに関するフラグを基に動きベクトルを比較する。そして、隣接するブロック間で同じ動きベクトルとなる場合、動きベクトル比較部１２０は、同一の動きベクトルを持つ複数のブロックを、動き補償処理を行う新たなパーティションサイズの動き補償対象ブロックとして、統合する。
【００９３】
例えば、パーティションサイズが４×４の場合において、動きベクトルに関するフラグが「Ａｂｏｖｅ」の場合、上側に隣接するブロック（例えば、パーティションサイズ４×４）と現在のブロックとは同じ動きベクトルを持つので、４×８のパーティションサイズの動き補償対象ブロックとして統合される。そして、フレームメモリ転送制御部１５０は、統合された新たなパーティションサイズの動き補償対象ブロックに対応する参照画像を取得する。また、動き補償部１８０は、取得された参照画像を用いて動き補償対象ブロックの動き補償処理を行い、予測画像を生成する。
【００９４】
以上のように、同じ動きベクトルを持つ複数のブロックを統合し、より大きなパーティションサイズの動き補償対象ブロックとして動き補償処理することにより、統合前の小さなパーティションサイズで参照画像を取得するよりもメモリ転送サイズの削減することができる。さらに、大きなパーティションサイズで動き補償処理を行うことで、動き補償処理の処理量の削減を実現することができる。
【００９５】
図３Ａ及び図３Ｂは、本発明の実施の形態に係るブロックの統合の一つの例を示す図である。図３Ａは、１つのマクロブロックに含まれる複数のブロックのパーティションサイズが４×４の場合の例を示す図である。図３Ａには、各ブロックの動きベクトルに関するフラグの内容を記載している。
【００９６】
具体的には、ブロック２００、２０６、２０８、２１５のフラグは、「Ｎｅｗ（図２Ｄのように、ＭＶが別に存在することを示す。）」である。ブロック２０１、２０３、２０７、２１０、２１４のフラグは、「Ｌｅｆｔ（図２Ａのように、左側に隣接するブロックと同じＭＶを示す。）」である。ブロック２０２、２０９のフラグは、「Ｚｅｒｏ（図２Ｃのように、ＭＶは０を示す。）」を示す。ブロック２０４、２０５、２１１、２１２、２１３のフラグは、「Ａｂｏｖｅ（図２Ｂのように、上側に隣接するブロックと同じＭＶを示す。）」である。
【００９７】
ここで、左上の８×８パーティションに含まれる４つのブロック２００、２０１、２０４、２０５に着目すると、ブロック２０１、２０４のフラグは、ブロック２００とＭＶが同じであることを示している。また、ブロック２０５のフラグは、ブロック２０１とＭＶが同じであることを示している。すなわち、これら４つのブロック２００、２０１、２０４、２０５は、同じＭＶを持つことがそれぞれの動きベクトルに関するフラグからわかる。つまり、図３Ａの左上の８×８パーティションに含まれる４つのブロック２００、２０１、２０４、２０５は、図３Ｂに示すように、８×８パーティションの動き補償対象ブロック３０１として統合することができる。
【００９８】
同様に、図３Ａの右上の８×８パーティションに含まれる４つのブロック２０２、２０３、２０６、２０７は、図３Ｂに示すように、８×４パーティションの２つの動き補償対象ブロック３０２、３０３として統合することができる。
【００９９】
さらに、図３Ａの左下の８×８パーティションに含まれる４つのブロック２０８、２０９、２１２、２１３は、図３Ｂに示すように、４×８パーティションの２つの動き補償対象ブロック３０４、３０５として統合することができる。
【０１００】
なお、図３Ａの右下の８×８パーティションに含まれる４つのブロック２１０、２１１、２１４、２１５は、全て異なる動きベクトルとなることから統合することはできず、図３Ｂに示すように、４×４パーティションの４つの動き補償対象ブロック３０６、３０７、３０８、３０９となる。
【０１０１】
上記は、動き補償の処理単位の１つである８×８パーティションに含まれる複数のブロックの動きベクトルに関するフラグを基にし、隣接する複数のブロックを統合することが可能か否かを判断したが、特に比較するパーティションサイズに限定は無い。例えば、８×４パーティション単位でフラグを比較してもよいし、４×８パーティション単位でフラグを比較しても構わない。さらに、マクロブロック内及びマクロブロック境界を跨ぐ任意の隣接する複数のブロックでフラグを比較しても構わない。例えば、図３Ａの４つの４×４パーティションのブロック２０９、２１０、２１３、２１４は同じ動きベクトルとなるため、８×８パーティションの動き補償対象ブロックに統合することができる。
【０１０２】
また、一度統合した後に、動き補償対象ブロックをさらに統合できるかの判断をするような、再帰的な統合処理も可能である。例えば、図３Ｂの統合後の動き補償対象ブロック３０５、３０６、３０８は同じ動きベクトルとなるため、８×８パーティションの動き補償対象ブロックにさらに統合することができる。
【０１０３】
また、図３Ｃ、図３Ｄ、図３Ｅ及び図３Ｆは、本発明の実施の形態に係るブロックの統合の別の例を示す図である。図３Ｃは、１つのマクロブロックに含まれる複数のブロックのパーティションサイズが４×４の場合の例を示す図である。図３Ｃには、各ブロックの動きベクトルに関するフラグの内容を記載している。
【０１０４】
具体的には、ブロック２２０、２２１、２２２、２２３、２２５、２２６、２２７、２２８、２２９、２３０、２３１、２３３、２３４、２３５のフラグは、「Ｌｅｆｔ」である。ブロック２２４、２３２のフラグは、「Ａｂｏｖｅ」である。
【０１０５】
ここで、左上の８×８パーティションに含まれる４つのブロック２２０、２２１、２２４、２２５に着目すると、これら４つのブロック２２０、２２１、２２４、２２５は、同じＭＶを持つことがそれぞれの動きベクトルに関するフラグからわかる。つまり、図３Ｃの左上の８×８パーティションに含まれる４つのブロック２２０、２２１、２２４、２２５は、図３Ｄに示すように、８×８パーティションの動き補償対象ブロック３２１として統合することができる。
【０１０６】
さらに、図３Ｃの右上の８×８パーティションに含まれる４つのブロック２２２、２２３、２２６、２２７は、図３Ｄに示すように、８×４パーティションの２つの動き補償対象ブロック３２２、３２３として統合され、各動き補償対象ブロック３２２、３２３の動き補償に関するフラグが「Ｌｅｆｔ」である。
【０１０７】
そして、この動き補償対象ブロック３２２、３２３の左側には、８×８パーティションの統合後の動き補償対象ブロック３２１がある。すなわち、８×４パーティションの２つの動き補償対象ブロック３２２、３２３の動きベクトルは、結果として図３Ｄの動き補償対象ブロック３２１の動きベクトルと等しくなる。そこで、図３Ｄの２つの動き補償対象ブロック３２２、３２３は、さらに、図３Ｅに示すように、８×８パーティションの動き補償対象ブロック３３２に統合することができる。
【０１０８】
また、図３Ｃの左下の８×８パーティションに含まれる４つのブロック２２８、２２９、２３２、２３３は、図３Ｄに示すように、８×８パーティションの動き補償対象ブロック３２４として統合することができる。
【０１０９】
さらに、図３Ｃの右下の８×８パーティションに含まれる４つのブロック２３０、２３１、２３４、２３５は、図３Ｄに示すように、８×４パーティションの２つの動き補償対象ブロック３２５、３２６として統合され、各動き補償対象ブロック３２５、３２６の動き補償に関するフラグが「Ｌｅｆｔ」である。そして、この動き補償対象ブロック３２５、３２６の左側には、８×８パーティションの統合後の動き補償対象ブロック３２４がある。
【０１１０】
すなわち、８×４パーティションの２つの動き補償対象ブロック３２５、３２６の動きベクトルは、結果として図３Ｄの動き補償対象ブロック３２４の動きベクトルと等しくなる。そこで、図３Ｄの２つの動き補償対象ブロック３２５、３２６は、さらに、図３Ｅに示すように、８×８パーティションの動き補償対象ブロック３３４に統合することができる。
【０１１１】
さらに、図３Ｅに示す統合後の動き補償対象ブロック３３２は、８×８パーティションで、動きベクトルに関するフラグは「Ｌｅｆｔ」である。そして、この動き補償対象ブロック３３２の左側には、８×８パーティションの統合後の動き補償対象ブロック３３１がある。すなわち、この８×８パーティションの２つの動き補償対象ブロック３３１、３３２の動きベクトルは、等しくなる。そこで、図３Ｅの２つの動き補償対象ブロック３３１、３３２は、さらに、図３Ｆに示すように、１６×８パーティションの動き補償対象ブロック３４１に統合することができる。
【０１１２】
同様に、図３Ｅに示す統合後の動き補償対象ブロック３３４は、８×８パーティションで、動きベクトルに関するフラグは「Ｌｅｆｔ」である。そして、この動き補償対象ブロック３３４の左側には、８×８パーティションの統合後の動き補償対象ブロック３３３がある。すなわち、この８×８パーティションの２つの動き補償対象ブロック３３３、３３４の動きベクトルは、等しくなる。そこで、図３Ｅの２つの動き補償対象ブロック３３３、３３４は、さらに、図３Ｆに示すように、１６×８パーティションの動き補償対象ブロック３４２に統合することができる。
【０１１３】
以上のように、一度ブロックを動き補償対象ブロックに統合した後に、動き補償対象ブロックをさらに統合できるかの判断をするような、再帰的な統合処理をすることで、同じ動きベクトルを持つ複数のブロックを統合し、より大きなパーティションサイズの動き補償対象ブロックとし、この動き補償対象ブロック毎に動き補償処理することが可能となる。なお、上記では８×８パーティション毎に、その動き補償対象ブロックの動きベクトルに関するフラグの比較を行ったが、１６×１６パーティション内の動き補償対象ブロックの動きベクトルに関するフラグの比較を行っても構わない。
【０１１４】
以上のように、同じ動きベクトルを持つ複数のブロックを統合してより大きなパーティションサイズの動き補償対象ブロックとし、この動き補償対象ブロック毎に動き補償処理することが可能となる。
【０１１５】
バッファ１６０からの参照画像取得時のメモリ転送サイズは、図１０Ａの破線で示すように、パーティションサイズが４×４のブロックの動き補償に６タップフィルタを用いる場合、９画素×９画素の参照画像データが必要である。同様に、図１０Ｂの破線で示すように、パーティションサイズが１６×１６のブロックの動き補償に６タップフィルタを用いる場合、２１画素×２１画素の参照画像データが必要である。
【０１１６】
従って、例えば、動き補償対象ブロックのパーティションサイズが１６×１６のときに、輝度成分の予測画像を生成するために必要な参照画像データは、１つの動き補償対象ブロックに対して２１画素×２１画素の参照画像データとなる。この場合、１マクロブロックの輝度成分の予測画像（２５６バイト）を生成するために必要な参照画像データの最大読み出し量は、一つの予測方向につき、２１［画素］×２１［画素］×１［ベクトル数］＝４４１［バイト］となる。
【０１１７】
一方、動き補償対象ブロックのパーティションサイズが４×４のときには、図１０Ａに示すように、１つの動き補償対象ブロックに対して９画素×９画素の参照画像データを読み出す必要がある。この場合に１マクロブロックの輝度成分の予測画像を生成するために必要な参照画像データの最大読み出し量は、一つの予測方向につき、９［画素］×９［画素］×１６［ベクトル数］＝１２９６［バイト］となり、１６×１６パーティションの場合と比較して、読み出し量が増大することがわかる。つまり、動き補償対象ブロックのパーティションサイズが大きくなると、参照画像取得時のメモリ転送サイズを削減することができる。
【０１１８】
上記図３Ａ及び図３Ｂで説明した、図３Ａの左上の８×８パーティションに含まれる４つの４×４ブロック２００、２０１、２０４、２０５が、図３Ｂに示される８×８パーティションの動き補償対象ブロック３０１として、統合される場合の参照画像データの読み出し量について、説明する。
【０１１９】
統合前の動き補償対象ブロックのパーティションサイズが４×４の４つの場合、１つの動き補償対象ブロックのパーティションサイズ４×４に対して、９画素×９画素の参照画像データを読み出す必要がある。この場合、８×８パーティション（４つの４×４の動き補償対象ブロックを含む）の輝度成分の予測画像を生成するために必要な参照画像の最大読み出し量は、９［画素］×９［画素］×４［ベクトル数（動き補償対象ブロック数）］＝３２４［バイト］となる。
【０１２０】
また、統合後の動き補償対象ブロックのパーティションサイズが８×８の場合、１３画素×１３画素の参照画像データを読み出す必要がある。この場合、８×８パーティションの輝度成分の予測画像を生成するために必要な参照画像の最大読み出し量は、１３［画素］×１３［画素］×１［ベクトル数（動き補償対象ブロック数）］＝１６９［バイト］となり、統合前と比較して、読み出し量を削減できることがわかる。つまり、動き補償対象ブロックを統合することで、参照画像取得時のメモリ転送サイズを削減することができる。
【０１２１】
また、上記の統合後のパーティションサイズ８×８の動き補償対象ブロックのメモリ転送サイズは、元々の動き補償対象ブロックのパーティションサイズが８×８の場合と同じであることがわかる。この場合、動きベクトルが同じであれば、上記輝度成分の参照画像データの読み出し時のバッファ１６０（例えば、ＳＤＲ−ＳＤＲＡＭ、ＤＤＲ−ＳＤＲＡＭ、ＤＤＲ２−ＳＤＲＡＭやＤＤＲ３−ＳＤＲＡＭなどの外部メモリ）へのアクセス順（例えば、ＳＤＲＡＭへのアドレス、制御コマンドや制御信号）やデータ転送順は同じである。なお、上記輝度成分の参照画像データの読み出し量やアクセス時間は、外部メモリと接続するバスのバス幅や１回のアクセスするデータ量や外部メモリのＡＣ特性（例えば、ＳＤＲＡＭのＣＡＳレイテンシやウェートサイクル）などにより、増加する可能性はある。さらに、バッファ１６０からの上記輝度成分の参照データの読み出し中に、他のアクセス(例えば、当該動き補償対象ブロックに対応した色差成分の参照データの読み出し、表示部への画像出力のための画像データ読み出しやＣＰＵからのアクセスなど）によって、中断される可能性もある。
【０１２２】
また、動き補償時の処理量に関しては、図１２Ａ及び図１２Ｂに示すように、動き補償時の処理量が中間画素を含めた出力画素数と等価であるとすると、１マクロブロックの輝度成分の予測画像（２５６バイト）を生成するために必要な６タップフィルタ処理を実施する回数（処理量）は、動き補償対象ブロックが４×４パーティションの場合、１つの動き補償対象ブロックに対して、水平フィルタが、４［画素］×９［画素］＝３６回（図１２Ａの◆印）、垂直フィルタが、４［画素］×４［画素］＝１６回（図１２Ａの×印）であるので、１マクロブロックでは、（３６＋１６）×１６［パーティション数］＝８３２［回］必要である。
【０１２３】
一方、動き補償対象ブロックが４×８パーティションの場合、１つの動き補償対象ブロックに対して、水平フィルタが、４［画素］×１３［画素］＝５２回（図１２Ｂの◆印）、垂直フィルタが、４［画素］×８［画素］＝３２回（図１２Ｂの×印）であるので、１マクロブロックでは、（５２＋３２）×８［パーティション数］＝６７２［回］となる。すなわち、４×８パーティションの場合は、４×４パーティションの場合よりもフィルタ回数は減少する。
【０１２４】
同様に、動き補償対象ブロックが１６×１６パーティションの場合、１つの動き補償対象ブロックに対して、水平フィルタが、１６［画素］×２１［画素］＝３３６回、垂直フィルタが、１６［画素］×１６［画素］＝２５６回であるので、１マクロブロックでは、（３３６＋２５６）×１［パーティション数］＝５９２［回］となり、更にフィルタ回数は減少する。
【０１２５】
なお、フィルタ処理を水平方向または垂直方向に一度に複数画素を出力可能な回路構成をとることで、処理性能を向上することは可能である。例えば、８画素分を同時に６タップフィルタ処理して出力することが可能な場合、４×４のパーティションサイズの場合（図１２Ａ）、水平フィルタを９回、垂直フィルタを４回実施すればよい。すなわち、１マクロブロックでは、（９＋４）×１６［パーティション数］＝２０８［回］となる。４×８のパーティションサイズの場合（図１２Ｂ）、水平フィルタを１３回、垂直フィルタを４回実施すればよい。すなわち、１マクロブロックでは、（１３＋４）×８［パーティション数］＝１３６［回］となる。
【０１２６】
つまり、動き補償対象ブロックのパーティションサイズが大きくなると、フィルタ処理回数（処理量）を減少させることができる。よって、バッファ１６０からの参照画像データの読み出し画素数を削減し、動き補償処理を高速かつ低消費電力で実現することができる。
【０１２７】
次に、図４は、本発明の実施の形態１に係る予測画像生成のフローチャートである。
【０１２８】
まず、復号部１１０は、動画像符号化ストリームから動きベクトルに関するフラグを取得し、動きベクトル比較部１２０へ出力する（ステップＳ４０１）。
【０１２９】
次に、動きベクトル比較部１２０は、入力された動きベクトルに関するフラグと、既に取得している隣接する複数のブロックの動きベクトルに関するフラグとを用いて、隣接する複数のブロックの動きベクトルが同じであるかを求め、その結果をブロック統合部１３０へ出力する（ステップＳ４０２）。
【０１３０】
次に、ブロック統合部１３０は、統合可能（すなわち、ステップＳ４０２で複数のブロックの動きベクトルが同じである）と判断された場合（ステップＳ４０３でＹｅｓ）、同じ動きベクトルとなる複数のブロックを１つのパーティションサイズの動き補償対象ブロックとなるように変更する（ステップＳ４０４）。
【０１３１】
さらに、動きベクトル生成部１４０は、動きベクトルを算出し、動きベクトルをフレームメモリ転送制御部１５０へ出力する。なお、動きベクトル生成部１４０は、動き補償対象ブロック毎に動きベクトルを算出すればよい。より具体的には、動き補償対象ブロックに含まれる複数のブロックのうちの１つのブロックの動きベクトルを算出すれば足りる。
【０１３２】
フレームメモリ転送制御部１５０は、動きベクトルが指し示す参照画像領域、つまり動き補償対象ブロックの動き補償処理に必要な参照画像データをバッファ１６０から取得し、局所参照メモリ１７０に転送する（ステップＳ４０５）。
【０１３３】
動き補償部１８０は、局所参照メモリ１７０から取得した参照画像データを用いて、動き補償対象ブロック毎に動き補償処理を行い、生成された予測画像を加算器１９０に出力する（ステップＳ４０６）。
【０１３４】
なお、ステップＳ４０３において、隣接する複数のブロックを統合できない場合は、パーティションサイズを変更することなく、元のパーティションサイズの動き補償対象ブロック毎に、参照画像の取得及び動き補償処理を行う（ステップＳ４０５、Ｓ４０６）。
【０１３５】
なお、図４のフローチャートは、統合可能か否かを判断する比較対象のブロックとして、８×８パーティション毎に、このパーティションに含まれる複数のブロックの動きベクトルに関するフラグを基に統合することが可能か否かを判断しても構わないし、または他のパーティションサイズ（例えば、１６×１６、１６×８、８×１６、８×４、４×８）毎であっても構わない。当然、当該ブロックのパーティションサイズが、統合可能か否かを判断する比較対象のブロックサイズより大きい場合は、パーティションサイズを変更することなく、元のパーティションサイズの動き補償対象ブロック毎に、参照画像の取得及び動き補償処理を行っても構わない。
【０１３６】
以上の図４の処理によれば、同じ動きベクトルを持つ複数のブロックを統合し、より大きなパーティションサイズの動き補償対象ブロックとして、動き補償処理することが可能となる。その結果、参照画像取得時のメモリ転送サイズの削減と、動き補償処理時の処理量の削減とを実現することが可能である。よって、バッファ１６０からの参照画像データの読み出し画素数を削減し、動き補償処理を高速かつ低消費電力で実現することができる。
【０１３７】
次に、図５Ａ，図５Ｂ及び図５Ｃに、８×８パーティションに含まれる４つのブロックの動きベクトルに関するフラグを基にした統合可能な場合の一例を示す。
【０１３８】
図５Ａは、パーティションサイズが４×４の４つのブロックの位置関係を示す図である。左上のブロックをブロック０、右上のブロックをブロック１、左下のブロックをブロック２、右下のブロックをブロック３とする。
【０１３９】
図５Ｂ及び図５Ｃは、図５Ａに示した８×８パーティションに含まれる４つのブロック０、１、２、３が統合可能なフラグの組み合わせの一例を示した図である。また、図５Ｂ及び図５Ｃに、各ケースで統合した後のパーティションサイズを示す。
【０１４０】
例えば、図５Ｃのケース４３は、図３Ａの左上の４つのブロック２００、２０１、２０４、２０５のケースを示す。この場合、８×８のパーティションの動き補償対象ブロックに統合可能なことを示す。
【０１４１】
以上のように、８×８パーティション毎に、このパーティションに含まれる４つのブロックで動きベクトルに関するフラグを比較する場合は、図５Ｂまたは図５Ｃの比較結果を使用することで、比較処理を簡略化することが可能である。また、比較回路として使用することで、比較的簡単な回路で動画像復号装置及び動画像復号回路を実現することが可能である。
【０１４２】
また、その他に、図５Ｂまたは図５Ｃに示した以外に、８×８パーティションにおいては、８×４パーティションの１つの動き補償対象ブロックと、４×４パーティションの２つの動き補償対象ブロックとに統合される場合もある。また、１６×１６のマクロブロックに含まれる複数のブロックの各フラグを比較することも可能である。他に、１６×８や８×１６などの大きさのパーティションに含まれる複数のブロックの各フラグを比較することも可能である。
【０１４３】
図６Ａ〜図６Ｃは、本発明の実施の形態１に係るブロックの統合に関する一つの例を示す。図６Ａは、１つのマクロブロックに含まれる各ブロックのパーティションサイズが４×４の場合であり、さらに、隣接するマクロブロックに含まれる各ブロックのパーティションサイズが８×８の場合を示す図である。
【０１４４】
なお、ブロックのパーティションサイズが４×４のマクロブロックには、ブロック毎に、動きベクトルに関するフラグの内容を記載している。また、左側の８×８パーティションの４つのブロック４２０、４２１、４２２、４２３は、例えば、ブロック統合部１３０によって既に統合された動き補償対象ブロックである。
【０１４５】
具体的には、ブロック４０６のフラグは「Ｎｅｗ（図２Ｄのように、ＭＶが別に存在することを示す。）」を、ブロック４００、４０１、４０３、４０４、４０５、４０７、４０８、４０９、４１０、４１１、４１２、４１３、４１５のフラグは「Ｌｅｆｔ（図２Ａのように、左隣接ブロックと同じＭＶを示す。）」を、ブロック４０２のフラグは「Ｚｅｒｏ（図２Ｃのように、ＭＶは０を示す。）」を、ブロック４１４のフラグは「Ａｂｏｖｅ（図２Ｂのように、上隣接ブロックと同じＭＶを示す。）」をそれぞれ示す。
【０１４６】
ここで、左上の８×８パーティションに含まれる４つのブロック４００、４０１、４０４、４０５に着目すると、図６Ｂに示すように、ブロック４００、４０１が同じＭＶを持ち、ブロック４０４、４０５が同じＭＶを持つことが、それぞれの動きベクトルに関するフラグの内容からわかる（この場合、Ｌｅｆｔ）。つまり、図６Ａの４×４パーティションの４つのブロック４００、４０１、４０４、４０５は、図６Ｂに示すように、８×４パーティションの２つの動き補償対象ブロック５０１、５０２として統合することができる。
【０１４７】
同様に、図６Ａの右上の８×８パーティションに含まれる４つのブロック４０２、４０３、４０６、４０７は、図６Ｂに示すように、８×４パーティションの２つの動き補償対象ブロック５０３、５０４として統合することができる。
【０１４８】
また、図６Ａの左下の８×８パーティションに含まれる４つのブロック４０８、４０９、４１２、４１３は、図６Ｂに示すように、８×４パーティションの２つの動き補償対象ブロック５０５、５０６として統合することができる。
【０１４９】
さらに、図６Ａの右下の８×８パーティションに含まれる４つのブロック４１０、４１１、４１４、４１５は、図６Ｂに示すように、８×８パーティションの１つの動き補償対象ブロック５０７として統合することができる。
【０１５０】
また、図６Ａの左上の８×８パーティションに含まれるブロックは、図６Ｂに示すように、８×４パーティションの２つの動き補償対象ブロック５０１、５０２に統合され、各動き補償対象ブロック５０１、５０２の動きベクトルに関するフラグが「ｌｅｆｔ」である。そして、この動き補償対象ブロック５０１、５０２の左側には、隣接するマクロブロックの８×８パーティションのブロック４２１がある。
【０１５１】
すなわち、８×４パーティションの２つの動き補償対象ブロック５０１、５０２の動きベクトルは、結果として図６Ａのブロック４２１の動きベクトルと等しくなる。そこで、図６Ｂの２つの動き補償対象ブロック５０１、５０２は、さらに、図６Ｃに示すように、８×８パーティションの動き補償対象ブロック６０１に統合することができる。
【０１５２】
このように、比較対象となる２つのブロック（上記の例では、動き補償対象ブロック５０１、５０２）それぞれの動きベクトルが、当該２つのブロックに隣接し、且つこの２つのブロックよりパーティションサイズの大きいブロック（上記の例では、ブロック４２１）の動きベクトルと同じである場合に、当該２つのブロックを１つの動き補償対象ブロック（上記の例では、動き補償対象ブロック６０１）に統合することができる。
【０１５３】
同様に、図６Ｂの左下の８×８パーティションに含まれる２つの動き補償対象ブロック５０５、５０６の動きベクトルに関するフラグが「ｌｅｆｔ」である。そして、この動き補償対象ブロック５０５、５０６の左側には、隣接するマクロブロックの８×８パーティションのブロック４２３がある。
【０１５４】
すなわち、８×４パーティションの２つの動き補償対象ブロック５０５、５０６の動きベクトルは、結果として図６Ａのブロック４２３の動きベクトルと等しくなる。そこで、図６Ｂの２つの動き補償対象ブロック５０５、５０６は、さらに、図６Ｃに示すように、８×８パーティションの動き補償対象ブロック６０４に統合することができる。
【０１５５】
上記のように、同一のマクロブロックのみならず、隣接するマクロブロックを比較対象にすることで、隣接する複数の動き補償対象ブロックをさらに統合することが可能となる。
【０１５６】
さらに、図６Ｃに示す統合後の動き補償対象ブロック６０５は、８×８パーティションで、動きベクトルに関するフラグは「Ｌｅｆｔ」である。そして、この動き補償対象ブロック６０５の左側には、８×８パーティションの統合後の動き補償対象ブロック６０４がある。すなわち、この８×８パーティションの２つの動き補償対象ブロック６０４、６０５の動きベクトルは、等しくなる。そこで、この２つの動き補償対象ブロック６０４、６０５は、さらに、１６×８パーティションの動き補償対象ブロックに統合することができる。
【０１５７】
なお、上記では、隣接するマクロブロックに含まれる各ブロックのパーティションサイズが８×８の場合について説明したが、その隣接するマクロブロック内の動き補償対象ブロックサイズが１６×１６、８×１６や１６×８及びイントラマクロブロック（例えば、動きベクトルが０として扱える場合）であっても、上記の統合後の動き補償対象ブロックサイズは同じ結果になる。
【０１５８】
以上のように、同じ動きベクトルを持つブロックを統合し、より大きなパーティションサイズの動き補償対象ブロックとして、動き補償処理することが可能となる。その結果、参照画像取得時のメモリ転送サイズの削減と、動き補償処理時の処理量の削減とを実現することが可能である。よって、バッファ１６０からの参照画像データの読み出し画素数を削減し、動き補償処理を高速かつ低消費電力で実現することができる。
【０１５９】
次に、図７Ａ、図７Ｂ及び図７Ｃに、８×８パーティションに含まれる４つのブロックの動きベクトルに関するフラグを基に、さらに上方向に隣接するブロック及び左方向に隣接するブロックを考慮して、動きベクトルを比較した場合の一例を示す。
【０１６０】
図７Ａは、互いに隣接する４つの４×４パーティションのブロックの位置関係を示す図である。左上のブロックをブロック０、右上のブロックをブロック１、左下のブロックをブロック２、右下のブロックをブロック３とする。また、図７Ａは、上方向に隣接するブロック（上・隣接と記載）、左方向に隣接するブロック（左・隣接と記載）の位置を示す。
【０１６１】
図７Ｂ及び図７Ｃは、図７Ａに示した８×８パーティションに含まれる４つのブロック０、１、２、３と、上方向及び左方向に隣接する８×８パーティションのブロックとの統合可能なフラグの組み合わせの一例を示した図である。また、図７Ｂ及び図７Ｃに、各ケースで統合した後のパーティションサイズを示す。
【０１６２】
例えば、図７Ｂのケース１は、図６Ａの左上の８×８パーティションに含まれるブロック４００、４０１、４０４、４０５のケースを示しており、この場合、８×８パーティションの動き補償対象ブロックに統合可能なことを示す。
【０１６３】
以上のように、８×８パーティション毎に、このパーティションに含まれる４つのブロックで動きベクトルに関するフラグを比較する場合は、図７Ｂまたは図７Ｃの比較結果を使用することで、比較処理を簡略化することが可能である。また、比較回路として使用することで、比較的簡単な回路で動画像復号装置及び動画像復号回路を実現することが可能である。
【０１６４】
また、図７Ｂまたは図７Ｃに示した以外に、８×８パーティションにおいては、８×４パーティションの１つの動き補償対象ブロックと、４×４パーティションの２つの動き補償対象ブロックとに統合される場合もある。また、１６×１６パーティションのマクロブロックに含まれる複数のブロック毎に比較することも可能である。他に、１６×８パーティションや８×１６パーティションなど毎に比較することも可能である。
【０１６５】
（実施の形態２）
以下、本発明の実施の形態２における動画像復号装置について説明する。実施の形態２に係る動画像符号化装置は、動きベクトルに関するフラグを用いず、まず各ブロックの動きベクトルを実際に算出し、隣接する複数のブロックで動きベクトルを比較する点が実施の形態１と異なる。なお、実施の形態１との共通点の詳しい説明は省略し、相違点を中心に説明する。
【０１６６】
図８は、本発明の実施の形態２における予測画像生成のフローチャートである。
【０１６７】
まず、復号部１１０は、動画像符号化ストリームから動きベクトルまたは予測動きベクトルの差分値を取得し、動きベクトル生成部１４０に出力する。動きベクトル生成部１４０は、受け取った動きベクトルもしくは動きベクトルの差分値と予測動きベクトルとから動きベクトルを算出し、動きベクトル比較部１２０へ出力する（ステップＳ８０１）。
【０１６８】
次に、動きベクトル比較部１２０は、動きベクトル生成部１４０から入力された動きベクトルと、隣接する複数のブロックの動きベクトルとを比較し、隣接する複数のブロックの動きベクトルが同じであるか否かを判断し、その判断結果をブロック統合部１３０へ出力する（ステップＳ８０２）。
【０１６９】
次に、複数のブロックが統合可能（すなわち、ステップＳ８０２で複数のブロックの動きベクトルが同じである）と判断された場合（ステップＳ８０３でＹｅｓ）、ブロック統合部１３０は、同じ動きベクトルとなる複数のブロックをパーティションサイズが大きい１つの動き補償対象ブロックとなるように変更し、結果を動きベクトル生成部１４０へ出力する（ステップＳ８０４）。
【０１７０】
次に、動きベクトル生成部１４０は、動き補償対象ブロックの動きベクトルを算出し、算出した動きベクトルをフレームメモリ転送制御部１５０へ出力する。なお、ステップＳ８０１で算出した動きベクトルを用いてもよい。
【０１７１】
そして、フレームメモリ転送制御部１５０は、ブロック統合部１３０での結果に基づいて、動きベクトルが指し示す参照画像領域、つまり動き補償対象ブロックの動き補償処理に必要な参照画像データをバッファ１６０から取得し、局所参照メモリ１７０に転送する（ステップＳ８０５）。
【０１７２】
動き補償部１８０は、局所参照メモリ１７０から取得した参照画像データを用いて、動き補償対象ブロックの動き補償処理を行い、生成した予測画像を加算器１９０に出力する（ステップＳ８０６）。
【０１７３】
なお、ステップＳ８０３において、隣接する複数のブロックが統合できない場合は、パーティションサイズを変更することなく、元のパーティションサイズの動き補償対象ブロック毎に、参照画像の取得及び動き補償処理を行う（ステップＳ８０５、Ｓ８０６）。
【０１７４】
なお、図８のフローチャートは、統合可能か否かを判断する比較対象のブロックとして、８×８パーティション毎に、このパーティションに含まれる複数のブロックの動きベクトルを基に統合することが可能か否かを判断しても構わないし、または他のパーティションサイズ（例えば、１６×１６、１６×８、８×１６、８×４、４×８）毎であっても構わない。当然、当該ブロックのパーティションサイズが、統合可能か否かを判断する比較対象のブロックサイズより大きい場合は、パーティションサイズを変更することなく、元のパーティションサイズの動き補償対象ブロック毎に、参照画像の取得及び動き補償処理を行っても構わない。
【０１７５】
以上の図８の処理によれば、同じ動きベクトルを持つブロックを統合し、より大きなパーティションサイズの動き補償対象ブロックとして、動き補償処理することが可能となる。その結果、参照画像取得時のメモリ転送サイズの削減と、動き補償処理時の処理量の削減とを実現することが可能である。よって、バッファ１６０からの参照画像データの読み出し画素数を削減し、動き補償処理を高速かつ低消費電力で実現することができる。
【０１７６】
（その他の実施の形態）
なお、実施の形態１乃至２では、その構成図を説明したが、実施の形態はこれだけでなく、１チップのＬＳＩとして実現してもよいし、個別のＬＳＩとして構成されてもよい。さらに、半導体技術の進歩又は派生する別技術によりＬＳＩに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適応等が可能性としてありえる。また、コンピューター上で実行されるプログラムとして実現されてもよい。
【産業上の利用可能性】
【０１７７】
本発明にかかる動画像復号装置は、動き予測を用いて符号化された動画像符号化ストリームを復号する動画像復号装置およびその再生方法に有用である。また、ＤＶＤレコーダ、ＤＶＤプレーヤ、ブルーレイディスクレコーダ、ブルーレイディスクプレーヤやデジタルＴＶ、さらにはスマートフォンなどの携帯情報端末等の用途にも応用可能である。
【符号の説明】
【０１７８】
１００  動画像復号装置
１１０  復号部
１２０  動きベクトル比較部
１３０  ブロック統合部
１４０  動きベクトル生成部
１５０  フレームメモリ転送制御部
１６０  バッファ
１７０  局所参照メモリ
１８０  動き補償部
１９０  加算器
０，１，２，３，２００，２０１，２０２，２０３，２０４，２０５，２０６，２０７，２０８，２０９，２１０，２１１，２１２，２１３，２１４，２１５，２２０，２２１，２２２，２２３，２２４，２２５，２２６，２２７，２２８，２２９，２３０，２３１，２３２，２３３，２３４，２３５，４００，４０１，４０２，４０３，４０４，４０５，４０６，４０７，４０８，４０９，４１０，４１１，４１２，４１３，４１４，４１５，４２０，４２１，４２２，４２３  ブロック
３０１，３０２，３０３，３０４，３０５，３０６，３０７，３０８，３０９，３２１，３２２，３２３，３２４，３２５，３２６，３３１，３３２，３３３，３３４，３４１，３４２，５０１，５０２，５０３，５０４，５０５，５０６，５０７，６０１，６０２，６０３，６０４，６０５  動き補償対象ブロック
１１００  破線
【図１】
2013031071.tif 000003
【図２Ａ】
2013031071.tif 000004
【図２Ｂ】
2013031071.tif 000005
【図２Ｃ】
2013031071.tif 000006
【図２Ｄ】
2013031071.tif 000007
【図３Ａ】
2013031071.tif 000008
【図３Ｂ】
2013031071.tif 000009
【図３Ｃ】
2013031071.tif 000010
【図３Ｄ】
2013031071.tif 000011
【図３Ｅ】
2013031071.tif 000012
【図３Ｆ】
2013031071.tif 000013
【図４】
2013031071.tif 000014
【図５Ａ】
2013031071.tif 000015
【図５Ｂ】
2013031071.tif 000016
【図５Ｃ】
2013031071.tif 000017
【図６Ａ】
2013031071.tif 000018
【図６Ｂ】
2013031071.tif 000019
【図６Ｃ】
2013031071.tif 000020
【図７Ａ】
2013031071.tif 000021
【図７Ｂ】
2013031071.tif 000022
【図７Ｃ】
2013031071.tif 000023
【図８】
2013031071.tif 000024
【図９】
2013031071.tif 000025
【図１０Ａ】
2013031071.tif 000026
【図１０Ｂ】
2013031071.tif 000027
【図１１Ａ】
2013031071.tif 000028
【図１１Ｂ】
2013031071.tif 000029
【図１２Ａ】
2013031071.tif 000030
【図１２Ｂ】
2013031071.tif 000031
【国際調査報告】
2013031071.tif 000032
2013031071.tif 000033
2013031071.tif 000034
2013031071.tif 000035