(57)【要約】【課題】画像処理を高速化する。【解決手段】フレーム間予測処理装置１は、アドレス通知部２と予測値算出部３とを有する。アドレス通知部２は、ＭＢＡＦＦ識別タイプと、コーディングタイプとに基づいて、処理対象の画像がＭＢＡＦＦであるとき、現処理対象動きベクトル検出単位・ペアの境界の外部に存在する領域を参照して動き補償をする場合、現処理対象動きベクトル検出単位・ペアのコーディングタイプと領域の参照先のコーディングタイプとに応じて領域の参照先の動きベクトルが格納されているメモリのアドレスを通知する。予測値算出部３は、通知されたアドレスに基づいて、メモリの参照先の動きベクトルを読み出し、現処理対象動きベクトル検出単位・ペアの各現処理対象動きベクトル検出単位の動きベクトル予測値を算出する。【選択図】図１
2008048289.tif 000002
【特許請求の範囲】
【請求項１】
動画像を所定の領域に分割した動きベクトル検出単位を用いてフレーム間予測処理を行うフレーム間予測処理装置において、
処理対象の画像がフレームのみまたはフィールドのみで構成されている非ＭＢＡＦＦ（Macro Block Adaptive Field／Frame）か、前記動きベクトル検出単位・ペア毎にフレーム予測／フィールド予測を選択的に適用可能なＭＢＡＦＦかを識別するＭＢＡＦＦ識別タイプと、前記画像における隣接する現処理対象動きベクトル検出単位・ペア毎に、前記現処理対象動きベクトル検出単位・ペアがフレームで構成されているかフィールドで構成されているかを識別するコーディングタイプとに基づいて、前記処理対象の画像が前記ＭＢＡＦＦであるとき、前記現処理対象動きベクトル検出単位・ペアの境界の外部に存在する領域を参照して動き補償をする場合、前記現処理対象動きベクトル検出単位・ペアの前記コーディングタイプと前記領域の前記参照先の前記コーディングタイプとに応じて前記領域の前記参照先の動きベクトルが格納されているメモリのアドレスを通知するアドレス通知部と、
通知された前記アドレスに基づいて、前記メモリの前記参照先の前記動きベクトルを読み出し、前記現処理対象動きベクトル検出単位・ペアの各現処理対象動きベクトル検出単位の動きベクトル予測値を算出する予測値算出部と、
を有することを特徴とするフレーム間予測処理装置。
【請求項２】
前記現処理対象動きベクトル検出単位・ペアがフィールドで構成されている場合、前記アドレス通知部は、さらに前記現処理対象動きベクトル検出単位の位置がトップ・フィールド側かボトム・フィールド側かを識別するフィールド識別タイプに基づいて、前記領域の前記参照先の前記動きベクトルが格納されている前記メモリのアドレスを通知することを特徴とする請求項１記載のフレーム間予測処理装置。
【請求項３】
前記アドレス通知部は、前記非ＭＢＡＦＦであるときであり、かつ、前記現処理対象動きベクトル検出単位の境界の外部に存在する領域を参照して動き補償をする場合においても、前記領域の前記参照先の前記動きベクトルが格納されている前記メモリのアドレスを通知する機能を有することを特徴とする請求項１記載のフレーム間予測処理装置。
【請求項４】
前記動きベクトルは、必要に応じて所定のブロックサイズに設定される前記動きベクトル検出単位毎に生成され、
前記動きベクトルを格納する動きベクトル格納領域が、前記動きベクトル検出単位の最小単位に応じて用意され、前記メモリを構成する参照画像記憶部と、
現処理以降の前記動きベクトル検出単位・ペアの処理で参照され、前記現処理対象動きベクトル検出単位・ペアに隣接する隣接動きベクトル検出単位の前記動きベクトルを格納する参照画像格納部と、をさらに有し、
前記アドレス通知部は、前記領域の前記参照先の前記動きベクトル検出単位の前記動きベクトルが格納される前記参照画像記憶部のアドレスを、前記領域の前記参照先の前記動きベクトル検出単位のブロックサイズに基づいて算出して前記予測値算出部に通知し、
前記予測値算出部は、前記アドレス通知部に対して前記各現処理対象動きベクトル検出単位のフレーム間予測で参照する前記隣接動きベクトル検出単位を指示して前記隣接動きベクトル検出単位について生成された前記動きベクトルが格納されるアドレスを取得し、取得した前記アドレスに基づいて前記参照画像記憶部より前記隣接動きベクトル検出単位の前記動きベクトルを読み出し、前記各現処理対象動きベクトル検出単位の動きベクトル予測値を算出し、
前記参照画像格納部は、前記動きベクトル予測値の算出のために参照される前記隣接動きベクトル検出単位の前記動きベクトルを、前記隣接動きベクトル検出単位に対応する前記動きベクトル格納領域の所定の領域に格納することを特徴とする請求項１記載のフレーム間予測処理装置。
【請求項５】
前記現処理対象動きベクトル検出単位・ペアに対応する前記隣接動きベクトル検出単位の前記動きベクトル格納領域が前記参照画像記憶部に用意されることを特徴とする請求項４記載のフレーム間予測処理装置。
【請求項６】
前記アドレス通知部は、前記隣接動きベクトル検出単位のブロックサイズ及び前記隣接動きベクトル検出単位の指定と、前記動きベクトルが格納される前記参照画像記憶部のアドレスとを対応付けた変換テーブルを有し、前記変換テーブルに基づいて前記予測値算出部からの入力情報を前記アドレスに変換することを特徴とする請求項４記載のフレーム間予測処理装置。
【請求項７】
前記参照画像記憶部は、前記現処理対象動きベクトル検出単位の前記動きベクトルを格納するブロック内データ格納領域と、前記現処理対象動きベクトル検出単位に隣接する他の動きベクトル検出単位の前記動きベクトルを格納する隣接ブロックデータ格納領域とを有し、
前記参照画像格納部は、次の動きベクトル検出単位に処理対象が移行するまでに、前記現処理対象の前記動きベクトルを、前記現処理対象動きベクトル検出単位に対応する前記隣接ブロックデータ格納領域に格納することを特徴とする請求項４記載のフレーム間予測処理装置。
【請求項８】
前記アドレス通知部は、
前記隣接動きベクトル検出単位のブロックサイズ及び前記隣接動きベクトル検出単位の指定と、前記動きベクトルが格納される前記ブロック内データ格納領域のアドレスとを対応付けた第１の変換テーブルと、
前記非ＭＢＡＦＦ時に前記隣接動きベクトル検出単位のブロックサイズ及び前記隣接動きベクトル検出単位の指定と、前記隣接ブロックデータ格納領域のアドレスとを対応付けた第２の変換テーブルと、
前記ＭＢＡＦＦ時に前記隣接動きベクトル検出単位のブロックサイズ及び前記隣接動きベクトル検出単位の指定と、前記隣接ブロックデータ格納領域のアドレスとを対応付けた第３の変換テーブルとを有し、
前記各変換テーブルに基づいて前記予測値算出部からの入力情報を前記アドレスに変換することを特徴とする請求項７記載のフレーム間予測処理装置。
【請求項９】
基本処理単位の動きベクトル検出単位毎に、入力画像について所定の参照画像からの動き補償を行って生成した予測誤差を圧縮符号化する画像符号化装置において、
処理対象の画像がフレームのみまたはフィールドのみで構成されている非ＭＢＡＦＦ（Macro Block Adaptive Field／Frame）か、動きベクトル検出単位・ペア毎にフレーム予測／フィールド予測を選択的に適用可能なＭＢＡＦＦかを識別するＭＢＡＦＦ識別タイプと、前記画像における隣接する現処理対象動きベクトル検出単位・ペア毎に、前記現処理対象動きベクトル検出単位・ペアがフレームで構成されているかフィールドで構成されているかを識別するコーディングタイプとに基づいて、
前記処理対象の画像が前記ＭＢＡＦＦであるとき、前記現処理対象動きベクトル検出単位・ペアの境界の外部に存在する領域を参照して動き補償をする場合、前記現処理対象動きベクトル検出単位・ペアの前記コーディングタイプと前記領域の前記参照先の前記コーディングタイプとに応じて前記領域の前記参照先の動きベクトルが格納されているメモリのアドレスを通知するアドレス通知部と、
通知された前記アドレスに基づいて、前記メモリの前記参照先の前記動きベクトルを読み出し、前記現処理対象動きベクトル検出単位・ペアの各現処理対象動きベクトル検出単位の前記動きベクトル予測値を算出し、算出した前記各現処理対象動きベクトル検出単位の前記動きベクトル予測値と、前記各現処理対象動きベクトル検出単位について検出された前記動きベクトルとの予測差分値を算出して符号化対象とするフレーム間予測処理部と、
を有することを特徴とする画像符号化装置。
【請求項１０】
基本処理単位の動きベクトル検出単位ごとに、入力画像について所定の参照画像からの動き補償を行って生成した予測誤差を圧縮符号化した画像符号化信号を入力し、元の動画像を復元する画像復号化装置において、
処理対象の画像がフレームのみまたはフィールドのみで構成されている非ＭＢＡＦＦ（Macro Block Adaptive Field／Frame）か、動きベクトル検出単位・ペア毎にフレーム予測／フィールド予測を選択的に適用可能なＭＢＡＦＦかを識別するＭＢＡＦＦ識別タイプと、前記画像における隣接する現処理対象動きベクトル検出単位・ペア毎に、前記現処理対象動きベクトル検出単位・ペアがフレームで構成されているかフィールドで構成されているかを識別するコーディングタイプとに基づいて、
前記処理対象の画像が前記ＭＢＡＦＦであるとき、前記現処理対象動きベクトル検出単位・ペアの境界の外部に存在する領域を参照して動き補償をする場合、前記現処理対象動きベクトル検出単位・ペアの前記コーディングタイプと前記領域の前記参照先の前記コーディングタイプとに応じて前記領域の前記参照先の動きベクトルが格納されているメモリのアドレスを通知するアドレス通知部と、
通知された前記アドレスに基づいて、前記メモリの前記参照先の前記動きベクトルを読み出し、前記現処理対象動きベクトル検出単位・ペアの各現処理対象動きベクトル検出単位の動きベクトル予測値を算出し、算出した前記各現処理対象動きベクトル検出単位の前記動きベクトル予測値と復号化された予測差分値とを用いて前記各現処理対象動きベクトル検出単位の前記動きベクトルを復号化するフレーム間予測部と、
を有することを特徴とする画像復号化装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、フレーム間予測処理装置、画像符号化装置、及び画像復号化装置に関し、特に動画像を所定の領域に分割したマクロブロックを単位としてフレーム間予測処理を行うフレーム間予測処理装置、及びこのようなフレーム間予測処理装置を具備する画像符号化装置と画像復号化装置に関する。
【背景技術】
【０００２】
動画像信号の圧縮符号化方式として、ＭＰＥＧ（Moving Picture Expert Group）や、Ｈ．２６４などが知られている。このような圧縮符号化方式では、入力画像データをマクロブロックと呼ばれる基本処理単位に分割し、これを単位として符号化・復号処理が行われる。符号化処理では、入力画像に対して直交変換、量子化などで画面内の冗長性を取り除くフレーム内予測と、過去の複数のフレームから動き補償した予測残差を抽出することでフレーム間の冗長性を取り除くフレーム間予測とが行われ、それぞれ算出された値をエントロピー符号化する。また、復号処理では、その逆動作が行われる。
【０００３】
また、ＭＰＥＧやＨ．２６４などでは、フレーム単位で符号化するモードとフィールド単位で符号化するモードとを適応的に選択可能になっている。これに加えて、上下に隣接する２つのマクロブロック（動きベクトル検出単位）（以下、ＭＢペアという）単位で、フレーム間予測、及びフィールド間予測とを切り替えて用いることも可能となっており、このモードはＭＢＡＦＦ（Macro Block Adaptive Field／Frame）と呼ばれている。これらの３つのモードは符号化タイプ（Coding Type）としてピクチャ単位に設定でき、以下では各符号化タイプを「フレーム」「フィールド」「ＭＢＡＦＦ」と表すことにする。また、ＭＢＡＦＦ以外の２つのモードを「非ＭＢＡＦＦ」とも表すことにする。
【０００４】
図５６は、符号化タイプ別のマクロブロックの処理順について説明するための図である。
この図５６の上側では、画像上での１６画素×１６画素のマクロブロックの処理順を示している。符号化タイプがフレームのときは、同図左上側に示すように、フレーム内の１６画素×１６画素のマクロブロックが水平方向の並列順に処理されるので、それらの各マクロブロック内では、同図左下側に示すように、奇数ラインのデータと偶数ラインのデータとが交互に処理されることになる。また、符号化タイプがフィールドのときは、同図中央上側に示すように、トップ・フィールドのデータとボトム・フィールドのデータとが存在する。このため、同図中央下側に示すように、まずトップ・フィールドに対応する奇数ラインが順に処理された後、次のフィールド同期期間においてボトム・フィールドに対応する偶数マクロブロックラインが処理されることになる。
【０００５】
符号化タイプがＭＢＡＦＦのときは、同図右上側に示すように、フレーム内のデータはマクロブロック・ペア単位で処理される。ただし、フレーム間予測を適用したマクロブロック・ペア（以下、フレーム・ペア（Frame Pair）という）とフィールド間予測を適用したマクロブロック・ペア（以下、フィールド・ペア（Field Pair）という）とでは処理順が異なり、同図右下側に示すように、フレーム・ペアでは奇数ラインと偶数ラインとが交互に処理される。一方、フィールド・ペアでは、２つのマクロブロックがそれぞれトップ・フィールド、ボトム・フィールドに対応するデータに対応しており、奇数ラインが処理された後、続いて偶数ラインが処理されることになる。
【０００６】
また、輪郭を多く含むマクロブロックなどでは、予測精度を向上させるために、マクロブロックをより小さな領域に分割し、分割したブロックを動きベクトルの検出単位として動き予測処理を行うことがある。基本的なマクロブロックのブロックサイズは１６画素×１６画素であるが、たとえばＨ．２６４では、必要に応じて最小で４画素×４画素サイズのブロックを用いることができる。
【０００７】
ところで、アルゴリズム処理の大部分は、フレーム間予測のための動きベクトル処理で占められており、その処理の効率化と高速化とが求められてきた。このため、たとえば、参照画像メモリの容量を減らすため、次のフレームで動きベクトルを用いてインター符号化することが決定されたマクロブロック位置に対する参照画像マクロブロックのみ、参照画像メモリに格納する動画符号化方法が提案されている（たとえば、特許文献１参照）。
【０００８】
また、画像符号化装置では、マクロブロック単位で検出された動きベクトル（以下、ＭＶ（Motion Vector）という）と、このマクロブロックの周辺領域のＭＶを予測値とする動きベクトル予測値（以下、ＭＶＰ（Motion Vector Predictor）という）との予測差分値（以下、ＭＶＤ（Motion Vector Difference）という。）を符号化対象とし、マクロブロック情報とともに符号化して画像復号化装置へ送る。画像復号化装置では、符号化されたＭＶＤとマクロブロック情報とを復号し、ＭＶＰとＭＶＤとからＭＶを生成して元の画像を復元する。このとき、ＭＶＰは、既に復元された周辺領域のＭＶを参照して生成される。なお、画像復号化装置は、予め参照用としてマクロブロックに応じたＭＶ格納領域が用意されており、既に復号された周辺領域、すなわち、対象マクロブロック、及び対象マクロブロックに隣接する隣接マクロブロックのＭＶが格納されているメモリを有し、復元に必要な情報は、このメモリから読み出される。
【特許文献１】特開２００４−２６６７３１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
従来のＭＢＡＦＦにおいては、ＭＶＰを得るために、書き込み側または読み出し側にて対象マクロブロック・ペアと隣接マクロブロック・ペアとの整合を取っていた。すなわち、たとえば対象マクロブロック・ペアがフレーム・ペアである場合は、隣接マクロブロック・ペアもフィールド・ペアからフレーム・ペアに置き換えを行い、メモリへの格納処理を行っていた。
【００１０】
しかしながら、このような置き換えには、処理コストがかかり、処理の効率を悪化させる要因となっていた。
本発明はこのような点に鑑みてなされたものであり、画像処理を高速化するフレーム間予測処理装置を提供することにある。さらに、このフレーム間予測処理装置を具備する画像符号化装置と画像復号化装置を提供することを目的とする。
【課題を解決するための手段】
【００１１】
本発明では、上記課題を解決するために、図１に示すようなフレーム間予測処理装置が提供される。本発明に係るフレーム間予測処理装置１は、動画像を所定の領域に分割した動きベクトル検出単位（マクロブロック）を用いてフレーム間予測処理を行う装置である。
【００１２】
フレーム間予測処理装置１は、以下の機能を有する。
アドレス通知部２が、処理対象の画像がフレームのみまたはフィールドのみで構成されている非ＭＢＡＦＦか、動きベクトル検出単位・ペア毎にフレーム予測／フィールド予測を選択的に適用可能なＭＢＡＦＦかを識別するＭＢＡＦＦ識別タイプと、画像における隣接する現処理対象動きベクトル検出単位・ペア毎に、現処理対象動きベクトル検出単位・ペアがフレームで構成されているかフィールドで構成されているかを識別するコーディングタイプとに基づいて、処理対象の画像がＭＢＡＦＦであるとき、現処理対象動きベクトル検出単位・ペアの境界の外部に存在する領域を参照して動き補償をする場合、現処理対象動きベクトル検出単位・ペアのコーディングタイプと領域の参照先のコーディングタイプとに応じて領域の参照先の動きベクトルが格納されているメモリのアドレスを通知する。
【００１３】
予測値算出部３が、通知されたアドレスに基づいて、メモリの参照先の動きベクトルを読み出し、現処理対象動きベクトル検出単位・ペアの各現処理対象動きベクトル検出単位の動きベクトル予測値を算出する。
【００１４】
このようなフレーム間予測処理装置１によれば、アドレス通知部２により、ＭＢＡＦＦ識別タイプとコーディングタイプとに基づいて、処理対象の画像がＭＢＡＦＦであるとき、現処理対象動きベクトル検出単位・ペアの境界の外部に存在する領域を参照して動き補償をする場合、現処理対象動きベクトル検出単位・ペアのコーディングタイプと領域の参照先のコーディングタイプとに応じて領域の参照先の動きベクトルが格納されているメモリのアドレスが通知される。また、予測値算出部３により、通知されたアドレスに基づいて、メモリの参照先の動きベクトルが読み出され、現処理対象動きベクトル検出単位・ペアの各現処理対象動きベクトル検出単位の動きベクトル予測値が算出される。
【００１５】
また、本発明では、上記課題を解決するために、基本処理単位の動きベクトル検出単位毎に、入力画像について所定の参照画像からの動き補償を行って生成した予測誤差を圧縮符号化する画像符号化装置において、処理対象の画像がフレームのみまたはフィールドのみで構成されている非ＭＢＡＦＦ（Macro Block Adaptive Field／Frame）か、動きベクトル検出単位・ペア毎にフレーム予測／フィールド予測を選択的に適用可能なＭＢＡＦＦかを識別するＭＢＡＦＦ識別タイプと、前記画像における隣接する現処理対象動きベクトル検出単位・ペア毎に、前記現処理対象動きベクトル検出単位・ペアがフレームで構成されているかフィールドで構成されているかを識別するコーディングタイプとに基づいて、前記処理対象の画像が前記ＭＢＡＦＦであるとき、前記現処理対象動きベクトル検出単位・ペアの境界の外部に存在する領域を参照して動き補償をする場合、前記現処理対象動きベクトル検出単位・ペアの前記コーディングタイプと前記領域の前記参照先の前記コーディングタイプとに応じて前記領域の前記参照先の動きベクトルが格納されているメモリのアドレスを通知するアドレス通知部と、通知された前記アドレスに基づいて、前記メモリの前記参照先の前記動きベクトルを読み出し、前記現処理対象動きベクトル検出単位・ペアの各現処理対象動きベクトル検出単位の動きベクトル予測値を算出し、算出した前記各現処理対象動きベクトル検出単位の前記動きベクトル予測値と、前記各現処理対象動きベクトル検出単位について検出された前記動きベクトルとの予測差分値を算出して符号化対象とするフレーム間予測処理部と、を有することを特徴とする画像符号化装置が提供される。
【００１６】
このような画像符号化装置によれば、ＭＢＡＦＦであり、かつ、現処理対象マクロブロック・ペアの境界の外部に存在する領域を参照して動き補償をする場合、アドレス通知部により、現処理対象マクロブロック・ペアのコーディングタイプと領域の参照先のコーディングタイプとに応じて領域の参照先の動きベクトルが格納されているメモリのアドレスが通知される。そして、フレーム間予測処理部により、通知されたアドレスに基づいて、メモリの参照先の動きベクトルが読み出され、現処理対象マクロブロック・ペアの各現処理対象マクロブロックの動きベクトル予測値が算出され、算出した各現処理対象マクロブロックの動きベクトル予測値と、各現処理対象マクロブロックについて検出された動きベクトルとの予測差分値が算出される。算出した予測差分値は、符号化対象として、以降の処理において符号化される。
【００１７】
また、本発明では、上記課題を解決するために、基本処理単位の動きベクトル検出単位ごとに、入力画像について所定の参照画像からの動き補償を行って生成した予測誤差を圧縮符号化した画像符号化信号を入力し、元の動画像を復元する画像復号化装置において、処理対象の画像がフレームのみまたはフィールドのみで構成されている非ＭＢＡＦＦ（Macro Block Adaptive Field／Frame）か、動きベクトル検出単位・ペア毎にフレーム予測／フィールド予測を選択的に適用可能なＭＢＡＦＦかを識別するＭＢＡＦＦ識別タイプと、前記画像における隣接する現処理対象動きベクトル検出単位・ペア毎に、前記現処理対象動きベクトル検出単位・ペアがフレームで構成されているかフィールドで構成されているかを識別するコーディングタイプとに基づいて、前記処理対象の画像が前記ＭＢＡＦＦであるとき、前記現処理対象動きベクトル検出単位・ペアの境界の外部に存在する領域を参照して動き補償をする場合、前記現処理対象動きベクトル検出単位・ペアの前記コーディングタイプと前記領域の前記参照先の前記コーディングタイプとに応じて前記領域の前記参照先の動きベクトルが格納されているメモリのアドレスを通知するアドレス通知部と、通知された前記アドレスに基づいて、前記メモリの前記参照先の前記動きベクトルを読み出し、前記現処理対象動きベクトル検出単位・ペアの各現処理対象動きベクトル検出単位の動きベクトル予測値を算出し、算出した前記各現処理対象動きベクトル検出単位の前記動きベクトル予測値と復号化された予測差分値とを用いて前記各現処理対象動きベクトル検出単位の前記動きベクトルを復号化するフレーム間予測部と、を有することを特徴とする画像復号化装置が提供される。
【００１８】
このような画像復号化装置によれば、ＭＢＡＦＦであり、かつ、現処理対象マクロブロック・ペアの境界の外部に存在する領域を参照して動き補償をする場合、アドレス通知部により、現処理対象マクロブロック・ペアのコーディングタイプと領域の参照先のコーディングタイプとに応じて領域の参照先の動きベクトルが格納されているメモリのアドレスが通知される。そして、フレーム間予測処理部により、通知されたアドレスに基づいて、メモリの参照先の動きベクトルが読み出され、現処理対象マクロブロック・ペアの各現処理対象マクロブロックの動きベクトル予測値が算出される。そして、算出した各現処理対象マクロブロックの動きベクトル予測値と、予測差分値とから動きベクトルが生成される。
【発明の効果】
【００１９】
本発明では、処理対象の画像がＭＢＡＦＦであるとき、アドレス通知部が、現処理対象マクロブロック・ペアの境界の外部に存在する領域を参照して動き補償をする場合、現処理対象マクロブロック・ペアのコーディングタイプと領域の参照先のコーディングタイプとに応じて領域の参照先の動きベクトルが格納されているメモリのアドレスを通知するようにしたので、境界の外に存在する領域の探索を、非ＭＢＡＦＦと同じ時間で行うことができる。これにより、処理時間の短縮を図ることができる。
【００２０】
特に、参照画像記憶部、アドレス算出部、参照画像格納部をさらに設けた場合、フレーム間予測処理において参照される動きベクトルデータが格納されているアドレスを自動的に算出し、データを読み出すことができる。このため、マクロブロックのブロックサイズによらずどこからでも読み出すことができるように、最も小さい分割単位に合わせてマクロブロックに対応する全領域に動きベクトルデータを展開する必要がなくなる。この結果、全領域に動きベクトルデータを展開するために要していた処理時間を省くことができ、全体の処理時間を短くすることができる。
【発明を実施するための最良の形態】
【００２１】
以下、本発明の実施の形態を、図面を参照して説明する。まず、本発明の概要について説明し、その後、実施の形態の具体的な内容を説明する。なお、以下の説明では、画素サイズを省略し、たとえば、１６×１６画素サイズは、１６×１６と表記する。また、マクロブロックと同様に、所定の画素サイズのサブマクロブロックを「サブＭＢ（画素サイズ）」と表記する。
【００２２】
図１は、本発明の概要を示す図である。図１に示すフレーム間予測処理装置１は、画像を所定のブロックサイズのマクロブロックに分割し、順次画像処理を行う画像符号化装置、及び画像復号化装置に適用される。ブロックサイズは、画像の変化や形状の細かさなど、必要に応じて、複数用意されたブロックサイズから任意に選択することができる。ブロックサイズの決定処理については公知であるので、ここでは言及しない。なお、以下の説明では、特に、１６×１６のマクロブロックを基本マクロブロックと呼ぶこととする。
【００２３】
フレーム間予測処理装置１は、以下の機能を有する。
アドレス通知部２は、予測値算出部３からの動きベクトル検出単位指定により動作する。
【００２４】
このアドレス通知部２は、処理対象の画像がフレームのみまたはフィールドのみで構成されている非ＭＢＡＦＦか、動きベクトル検出単位・ペア毎にフレーム予測／フィールド予測を選択的に適用可能なＭＢＡＦＦかを識別するＭＢＡＦＦ識別タイプと、画像における隣接する現処理対象動きベクトル検出単位・ペア毎に、現処理対象動きベクトル検出単位・ペアがフレームで構成されているかフィールドで構成されているかを識別するコーディングタイプとに基づいて、処理対象の画像がＭＢＡＦＦであるとき、現処理対象動きベクトル検出単位・ペアの境界の外部に存在する領域を参照して動き補償をする場合、現処理対象動きベクトル検出単位・ペアのコーディングタイプと領域の参照先のコーディングタイプとに応じて領域の参照先の動きベクトルが格納されているメモリのアドレスを通知する。詳細は後述するが、参照先を探し出すためにたとえばテーブルなどを予め用意しておき、このテーブルに基づいてアドレスを導出するようにしてもよい。
【００２５】
予測値算出部３が、通知されたアドレスに基づいて、メモリの参照先の動きベクトルを読み出し、現処理対象動きベクトル検出単位・ペアの各現処理対象動きベクトル検出単位の動きベクトル予測値を算出する。
【００２６】
このようなフレーム間予測処理装置によれば、アドレス通知部２により、ＭＢＡＦＦ識別タイプとコーディングタイプとに基づいて、処理対象の画像がＭＢＡＦＦであるとき、現処理対象動きベクトル検出単位・ペアの境界の外部に存在する領域を参照して動き補償をする場合、現処理対象動きベクトル検出単位・ペアのコーディングタイプと領域の参照先のコーディングタイプとに応じて領域の参照先の動きベクトルが格納されているメモリのアドレスが通知される。また、予測値算出部３により、通知されたアドレスに基づいて、メモリの参照先の動きベクトルが読み出され、現処理対象動きベクトル検出単位・ペアの各現処理対象動きベクトル検出単位の動きベクトル予測値が算出される。
【００２７】
以下、実施の形態を、Ｈ．２６４に基づく符号化処理を行う画像符号化装置と復号化処理を行う画像復号化装置とに適用した場合を例に図面を参照して詳細に説明する。
Ｈ．２６４では、１６×１６の基本マクロブロックに加え、１６×８、８×１６、及び８×８の４種類のマクロブロックが選択可能となっている。さらに、８×８サイズのマクロブロックについては、８×８、８×４、４×８、４×４の４種類のサブブロック分割を指定することもできる。基本的なアルゴリズムは、符号化処理では、フレームを基本処理単位のマクロブロックに分割し、マクロブロックごとに、フレーム内の空間的冗長性を利用したフレーム内予測と、フレーム間の時間的冗長性を利用したフレーム間予測とを適宜切り替えて、入力画像の符号化を行う。復号化処理では、その逆動作が行われる。なお、Ｈ．２６４では、両方向の参照フレームを用いることができるが、以下では、片方向の場合で説明する。両方向の場合には、両方向のＭＶを格納するための領域が増えるが、処理は片方向と同様に行われる。
【００２８】
以下、説明を分かり易くするため、第１の実施の形態にて非ＭＢＡＦＦについて説明し、第２の実施の形態にてＭＢＡＦＦについて説明する。
＜第１の実施の形態＞
図２は、実施の形態の画像符号化装置の構成を示したブロック図である。
【００２９】
画像符号化装置１００は、ＭＢ（マクロブロック）分割部１０１、動きベクトル検出部１０２、過去のフレームバッファ１０３、フレーム間予測部１０４、フレーム内予測部１０５、現フレームバッファ１０６、予測モード選択部１０７、減算器１０８、直交変換量子化部１０９、エントロピー符号化部１１０、逆量子化逆直交変換部１１１、加算器１１２、デブロッキングフィルタ１１３、及びフレームバッファ管理部１１４を有している。
【００３０】
このような画像符号化装置１００では、入力画像は、ＭＢ分割部１０１によって所定の大きさのマクロブロックに分割される。動きベクトル検出部１０２は、入力したＭＢ単位の画像信号と、過去のフレームバッファ１０３に格納される参照画像とを用いて、対象マクロブロックのＭＶを検出する。ＭＶは、通常、周辺領域との相関が高いので、フレーム間予測部１０４では、周辺領域のＭＶを予測値として、周辺のＭＶに基づいてＭＶＰを算出し、ＭＶとの間のＭＶＤを算出する。フレーム内予測部１０５は、現フレームバッファ１０６のフレーム内予測を行う。予測モード選択部１０７は、フレーム間予測部１０４とフレーム内予測部１０５の予測誤差を比較するなどして、当該マクロブロックを最も効率よく符号化することができる符号化モードを選択し、符号化モード情報を生成する。この符号化モード情報も、符号化対象情報として、エントロピー符号化部１１０へ受け渡される。符号化モード情報には、マクロブロックを分割した分割マクロブロックのサイズと、分割マクロブロックをさらに分割したサブマクロブロックのサイズが含まれる。
【００３１】
予測モード選択部１０７としてフレーム内予測部１０５が選択される場合は、ＭＢ分割部１０１を経由したマクロブロックの入力画像がそのまま直交変換量子化部１０９へ出力され、直交変換と量子化が施される。こうして生成された直交変数係数データは、エントロピー符号化部１１０へ受け渡される。また、この直交変換係数データは、逆量子化逆直交変換部１１１によってデコードされ、現フレームバッファ１０６に書き込まれる。
【００３２】
予測モード選択部１０７としてフレーム間予測部１０４が選択される場合は、フレーム間予測部１０４が算出したＭＶＤが符号化対象として選択され、エントロピー符号化部１１０へ受け渡される。また、予測モード選択部１０７経由でＭＶＰに基づく予測画像が減算器１０８へ出力される。減算器１０８では、マクロブック単位の入力画像と、予測画像との差分が算出され、直交変換量子化部１０９へ出力される。この出力は、逆量子化逆直交変換部１１１によってデコードされ、加算器１１２によって予測モード選択部１０７からの予測画像を加算した後、現フレームバッファ１０６に書き込まれる。
【００３３】
エントロピー符号化部１１０は、符号化対象データのエントロピー符号化を行い、画像圧縮符号化信号として出力する。また、現フレームバッファ１０６に格納される参照画像は、デブロッキングフィルタ１１３によりマクロブロック境界が平滑化され、フレームバッファ管理部１１４を経由して、過去のフレームバッファ１０３に格納される。
【００３４】
次に、画像復号化装置について説明する。
図３は、実施の形態の画像復号化装置の構成を示したブロック図である。
画像復号化装置２００は、エントロピー復号化部２０１、逆量子化逆直交変換部２０２、加算器２０３、現フレームバッファ２０４、フレーム内予測部２０５、予測モード選択部２０６、デブロッキングフィルタ２０７、フレームバッファ管理部２０８、過去のフレームバッファ２０９、及びフレーム間予測部２１０、を具備し、図２に示した画像符号化装置１００が生成した画像圧縮符号化信号を復号する。
【００３５】
画像圧縮符号化信号は、エントロピー復号化部２０１によってエントロピー復号が施された後、逆量子化逆直交変換部２０２によって逆量子化と逆直交変換が施される。フレーム間予測部１０４によって符号化されている場合は、ＭＶＤの形式で符号化されている動きベクトルデータを復号する。予測モード選択部２０６は、逆量子化逆直交変換部２０２によって復元された符号化モード情報に基づき、フレーム内予測部２０５またはフレーム間予測部２１０を選択する。
【００３６】
予測モード選択部２０６としてフレーム内予測部２０５が選択される場合は、逆量子化逆直交変換部２０２によって復元された画像が現フレームバッファ２０４に書き込まれる。
【００３７】
予測モード選択部２０６としてフレーム間予測部２１０が選択される場合は、ＭＶＤの形式で復号された動きベクトルを、各動きベクトル適用単位領域、すなわち、分割マクロブロックの領域ごとに、各動きベクトル適用単位領域で使用された動きベクトルデータ（ＭＶ）へ復号する。復号されたＭＶに基づいて予測画像が復元され、予測モード選択部２０６経由で加算器２０３に入力する。そして、逆量子化逆直交変換部２０２により復号された予測誤差と加算されることによって、画像が復号され、現フレームバッファ２０４に格納される。
【００３８】
現フレームバッファ２０４に格納された画像データは、デブロッキングフィルタ２０７、フレームバッファ管理部２０８を経由して、過去のフレームバッファ２０９に格納される。
【００３９】
次に、上記の画像復号化装置のフレーム間予測部２１０における動きベクトルの復号について説明する。
図４は、Ｈ．２６４におけるマクロブロックのブロックサイズを示した図である。なお、以下では、図４中紙面上側を「上」、下側を「下」、左側を「左」、右側を「右」という。また、図４中、点線の矢印は処理の順番を示している。
【００４０】
マクロブロック１１は、基本の１６×１６画素サイズのマクロブロックである。以下、所定の画素サイズのマクロブロックを「ＭＢ（画素サイズ）」と表記する。たとえば、マクロブロック１１は、ＭＢ（１６×１６）１１と表す。
【００４１】
ＭＢ（１６×８）１２は、ＭＢ（１６×１６）１１を横方向に２分割した形状の１６×８画素サイズ、ＭＢ（８×１６）１３は、ＭＢ（１６×１６）１１を縦方向に２分割した形状の８×１６画素サイズ、ＭＢ（８×８）１４は、ＭＢ（１６×１６）１１を４等分した形状の８×８画素サイズのマクロブロックである。なお、マクロブロック間の処理順は図に示したように、ＭＢ（１６×８）１２は上から下、ＭＢ（８×１６）１３は左から右、ＭＢ（８×８）１４は、左上、右上、左下、右下の順に処理を行う。
【００４２】
さらに、Ｈ．２６４では、ＭＢ（８×８）１４のマクロブロックをさらに分割したサブマクロブロック分割を指定することもできる。マクロブロックと同様に、所定の画素サイズのサブマクロブロックを「サブＭＢ（画素サイズ）」と表記する。サブＭＢ（８×４）１５ａは８×４画素サイズ、サブＭＢ（４×８）１５ｂは４×８画素サイズ、サブＭＢ（４×４）１５ｃは４×４画素サイズで構成される。サブマクロブロック内の処理順は、図に示したように、同一形状のマクロブロックと同じになる。
【００４３】
図５は、本実施の形態の画像復号化装置のフレーム間予測における動きベクトル生成処理を示した機能ブロック図である。
フレーム間予測部２１０は、対象マクロブロックと隣接マクロブロックのＭＶを格納するメモリ２１１、ＭＶＰ生成部２１２、アドレス変換部２１３、ＭＶ生成部２１４、隣接ＭＢ［Ａ］格納部２１５、及び隣接ＭＢ［ＢＣＤ］格納部２１６を具備し、対象マクロブロックのＭＶを生成する。以下、現処理対象のマクロブロック部分（Part）をＣｕ（Current Part）とする。処理対象のＣｕの隣接マクロブロックは、Ｃｕの左隣を隣接ＭＢ［Ａ］、真上を隣接ＭＢ［Ｂ］、右上を隣接ＭＢ［Ｃ］、及び左上を隣接ＭＢ［Ｄ］とする。また、隣接ＭＢ［ＢＣＤ］は、隣接ＭＢ［Ｂ］、隣接ＭＢ［Ｃ］、及び隣接ＭＢ［Ｄ］をまとめて示す場合の表記とする。
【００４４】
メモリ２１１には、対象マクロブロックのＭＶと、対象マクロブロックのＭＶＰの生成時に参照する隣接マクロブロックのＭＶが格納される。詳細は後述する。以下、ＭＶが格納されるＭＶ格納領域を代表ＭＶ格納領域、そのＭＶを代表ＭＶと呼ぶこととする。
【００４５】
ＭＶＰ生成部２１２は、隣接マクロブロックを指定して、アドレス変換部２１３から、隣接マクロブロックの代表ＭＶが格納される代表ＭＶ格納領域のメモリ２１１におけるアドレスを取得する。そして、代表ＭＶを読み出し、代表ＭＶからＭＶＰを算出する。ＭＶＰ算出には、種々の方法があるが、ここでは、隣接マクロブロックのＭＶの中間値をＭＶＰとする。隣接ＭＢ［Ａ］のＭＶをＭＶＡ、隣接ＭＢ［Ｂ］のＭＶをＭＶＢ、隣接ＭＢ［Ｃ］のＭＶをＭＶＣ、及び隣接ＭＢ［Ｄ］のＭＶをＭＶＤとすると、ＣｕのＭＶＰは、
ＭＶＰ＝Ｍｅｄｉａｎ（ＭＶＡ，ＭＶＢ，ＭＶＣ）                  ・・・（１）
と表すことができる。なお、画面端などでＭＶＣが存在しない場合、ＭＶＤを使用する。
【００４６】
中間値の生成式は、３値ｘ，ｙ，ｚを用いて、
Ｍｅｄｉａｎ（ｘ，ｙ，ｚ）＝ｘ＋ｙ＋ｚ−Ｍｉｎ（ｘ，Ｍｉｎ（ｙ，ｚ））
−Ｍａｘ（ｘ，Ｍａｘ（ｙ，ｚ））    ・・・（２）
によって表すことができる。Ｍｉｎ（ｘ，ｙ）は、小さい方の値をとることを表し、Ｍａｘ（ｘ，ｙ）は、大きい方の値をとることを表す。
【００４７】
アドレス変換部２１３は、隣接マクロブロックのサイズ（ＭＢサイズとサブＭＢサイズ）から、その代表ＭＶ格納領域のアドレスに変換する。
ＭＶ生成部２１４は、ＭＶＰ生成部２１２によって算出されたＭＶＰと復号されたＭＶＤとからＭＶを復元する。ＭＶは、
ＭＶ＝ＭＶＰ＋ＭＶＤ                                            ・・・（３）
によって算出することができる。算出されたＭＶは、この対象マクロブロックに対応するメモリ２１１内の代表ＭＶ格納領域に書き込む。
【００４８】
隣接ＭＢ［Ａ］格納部２１５は、以降のマクロブロック処理で参照される隣接ＭＢ［Ａ］に相当する対象マクロブロックのＭＶをメモリ２１１から読み出し、メモリ２１１に用意された隣接ＭＢ［Ａ］格納領域に設定する。
【００４９】
隣接ＭＢ［ＢＣＤ］格納部２１６は、以降のマクロブロック処理で参照される隣接ＭＢ［Ｂ］，ＭＢ［Ｃ］，ＭＢ［Ｄ］に相当する対象マクロブロックのＭＶをメモリ２１１から読み出し、メモリ２１１に用意された隣接ＭＢ［ＢＣＤ］格納領域に設定する。
【００５０】
以下、このような構成のフレーム間予測部２１０の動作及びフレーム間予測方法について、処理対象の画像がフレーム構成である場合を例にとって説明する。
＜フレーム構成＞
フレーム構成と、メモリ２１１内のＭＶ格納領域について説明する。
【００５１】
図６は、本発明の実施の形態のＭＶ格納領域とフレーム構成との関係を示した図である。
フレーム３００は、基本マクロブロックであるＭＢ（１６×１６）３０１に分割されてフレーム間予測処理が行われる。マクロブロックのブロックサイズは、必要に応じて可変に設定することもできる。
【００５２】
メモリ２１１は、Ｃｕ３１０内のＭＶを格納するブロック内データ格納領域と、隣接ＭＢ［Ａ］３２０のＭＶと、隣接ＭＢ［ＢＣＤ］３３１，３３２のＭＶとを格納する隣接ブロックデータ格納領域とを有する。
【００５３】
Ｃｕ３１０内については、マクロブロックの最小単位であるサブＭＢ（４×４）によって、Ｃｕ３１０が占める領域を１６に分割し、分割されたそれぞれのブロックに対応付けて、１６のＭＶ格納領域が確保される。
【００５４】
隣接ＭＢ［Ａ］３２０については、Ｃｕ３１０の左に隣接する４段のサブＭＢ（４×４）に対応する４つのＭＶ格納領域が確保される。隣接ＭＢ［Ａ］格納部２１５は、Ｃｕ３１０のＭＶ生成が終了すると、Ｃｕ３１０に関するＭＶが格納されるＭＶ格納領域から、最も右の４段のサブＭＢ（４×４）に対応するＭＶを読み出し、そのデータを隣接ＭＢ［Ａ］３２０に格納する。
【００５５】
隣接ＭＢ［ＢＣＤ］３３１，３３２については、少なくとも、隣接ＭＢ［Ｂ］、隣接ＭＢ［Ｃ］、及び隣接ＭＢ［Ｄ］を含む、Ｃｕ３１０が属するフレーム行の上側に隣接するサブＭＢ（４×４）に対応するＭＶ格納領域と、Ｃｕ３１０が属するフレーム行の最下段のサブＭＢ（４×４）に対応するＭＶ格納領域が確保される。隣接ＭＢ［ＢＣＤ］格納部２１６では、Ｃｕ３１０のＭＶ生成処理が終了すると、Ｃｕ３１０に関するＭＶが格納されるＭＶ格納領域の最下段のサブＭＢ（４×４）を隣接ＭＢ［ＢＣＤ］３３２に格納する。したがって、処理対象のフレーム行が下に移動した場合には、隣接ＭＢ［ＢＣＤ］３３２に格納されるＭＶは、処理対象のＣｕ３１０の上側の隣接する隣接マクロブロックのデータになる。
【００５６】
上記の構成のメモリ２１１のＭＶ格納領域に格納されるＭＶは、Ｃｕが移動するごとに順次更新されていく。たとえば、処理対象がＣｕ３１０の右隣のマクロブロック３１１に移ると、Ｃｕ３１０のＭＶを格納する領域は、新たにＣｕとなるマクロブロック３１１のＭＶを格納する領域になる。また、隣接ＭＢ［Ａ］３２０には、Ｃｕ３１０の最も右側のブロックのＭＶが格納される。隣接ＭＢ［ＢＣＤ］３３１，３３２も同様に書き換わる。
【００５７】
ここで、説明のため、基本マクロブロックを最小単位の４×４で分割した領域に対し、便宜的に番号を割り振る。図７は、１６×１６のマクロブロックと、ブロック番号の関係を示した図である。
【００５８】
図に示したように、基本マクロブロックであるＭＢ（１６×１６）３４０を、最小単位の４×４で分割した１６ブロックについて、ＭＢ（８×８）の４つの領域に分割し、左上、右上、左下、右下と順に番号を割り振る。さらにＭＢ（８×８）を４つの領域に分割したサブＭＢ（４×４）のブロックについても左上、右上、左下、右下の順に番号を割り振る。具体的には、左上のＭＢ（８×８）のサブＭＢ（４×４）について、左上、右上、左下、右下の順にｂ０、ｂ１、ｂ２、ｂ３を割り振る。次に、右上のＭＢ（８×８）のサブＭＢ（４×４）について、左上、右上、左下、右下の順にｂ４からｂ７を割り振る。同様に、左下のＭＢ（８×８）のサブＭＢ（４×４）にｂ８からｂ１１を、右下のＭＢ（８×８）のサブＭＢ（４×４）にｂ１２からｂ１５を割り振る。
【００５９】
次に、本発明の実施の形態のＭＶ生成処理と、メモリ２１１へのＭＶ格納処理について説明する。ＭＶＰ生成部２１２は、参照する隣接マクロブロックのＭＶが格納されるメモリ２１１のアドレスをアドレス変換部２１３より取得する。そして、取得したアドレスからＭＶを読み出し、式（１）によりＭＶＰを算出する。続いて、ＭＶ生成部２１４が、式（３）により、算出されたＭＶＰと復号されたＭＶＤからＭＶを生成し、メモリ２１１の代表ＭＶ格納領域に書き込む。ここでは、処理対象のマクロブロックの左上の４×４のマクロブロックを代表ＭＶ格納領域とする。
【００６０】
図８は、本発明の実施の形態のＭＢ（１６×１６）の場合のＭＶ生成処理と格納処理を示した図である。（Ａ）は、代表ＭＶの生成、（Ｂ）は、ＭＶの書き込みシーケンスを示している。
【００６１】
ＭＢ（１６×１６）のＣｕ４００は、Ｃｕ４００に隣接する隣接ＭＢ［Ａ］のｂ５、隣接ＭＢ［Ｂ］のｂ１０、隣接ＭＢ［Ｃ］のｂ１０、及び隣接ＭＢ［Ｄ］のｂ１５のＭＶを読み出し、式（１）に基づいてＭＶＰを算出する。そして、ＭＶＰと、復号されたＭＶＤを用いて、式（３）によりＭＶを生成する。これをＭＶ０とする。ＭＶ０は、Ｃｕ４００の左上のｂ０（４０１）に格納される。
【００６２】
格納処理を（Ｂ）のシーケンス図で見ると、ＥＮ信号により、ＭＶ０は、ＷＡＤ＝０のｂ０に書き込まれる。このＭＶが以降のＭＶＰ生成処理で参照される場合には、アドレス変換部２１３が格納アドレスを自動的に算出するので、メモリ２１１にＭＶを展開する必要はなく、書き込みは１ブロック分で終了する。したがって、１６ブロック分の書き込みを行っていた従来と比較し、処理時間を大幅に短縮することができる。
【００６３】
図９は、本発明の実施の形態のＭＢ（１６×８）の場合のＭＶ生成処理と格納処理を示した図である。（Ａ）は、代表ＭＶの生成、（Ｂ）は、ＭＶの書き込みシーケンスを示している。
【００６４】
ＭＢ（１６×８）の上側のＣｕ０（４１１）は、Ｃｕ０（４１１）に隣接する隣接ＭＢ［Ａ］のｂ５、隣接ＭＢ［Ｂ］のｂ１０、隣接ＭＢ［Ｃ］のｂ１０、及び隣接ＭＢ［Ｄ］のｂ１５のＭＶを読み出してＭＶＰを算出し、ＭＶ０を生成する。ＭＶ０は、Ｃｕ０（４１１）の左上のｂ０（４１２）に格納される。続いて、下側のＣｕ１（４１３）に対し、Ｃｕ１（４１３）に隣接する隣接ＭＢ［Ａ］のｂ１３、Ｃｕ０（４１１）のｂ２、及び隣接ＭＢ［Ｄ］のｂ１５のＭＶを読み出してＭＶＰを算出し、ＭＶ１を生成する。なお、図のＸはＭＶが存在しない。ＭＶ１は、Ｃｕ１（４１３）の左上のｂ８（４１４）に格納される。
【００６５】
格納処理を（Ｂ）のシーケンス図で見ると、ＥＮ信号により、ＭＶ０はＷＡＤ＝０のｂ０に書き込まれ、ＭＶ１はＷＡＤ＝８のｂ８に書き込まれる。書き込みは２ブロック分で終了する。
【００６６】
図１０は、本発明の実施の形態のＭＢ（８×１６）の場合のＭＶ生成処理と格納処理を示した図である。（Ａ）は、代表ＭＶの生成、（Ｂ）は、ＭＶの書き込みシーケンスを示している。
【００６７】
ＭＢ（８×１６）の左側のＣｕ０（４２１）は、Ｃｕ０（４２１）に隣接する隣接ＭＢ［Ａ］のｂ５、隣接ＭＢ［Ｂ］のｂ１０、隣接ＭＢ［Ｃ］のｂ１４、及び隣接ＭＢ［Ｄ］のｂ１５のＭＶを読み出してＭＶＰを算出し、ＭＶ０を生成する。ＭＶ０は、Ｃｕ０（４２１）の左上のｂ０（４２２）に格納される。続いて、右側のＣｕ１（４２３）に対し、Ｃｕ０（４２１）のｂ１、Ｃｕ１（４２３）の隣接ＭＢ［Ｂ］のｂ１４、隣接ＭＢ［Ｃ］のｂ１０、及び隣接ＭＢ［Ｄ］のｂ１１のＭＶを読み出してＭＶＰを算出し、ＭＶ１を生成する。ＭＶ１は、Ｃｕ１（４２３）の左上のｂ４（４２４）に格納される。
【００６８】
格納処理を（Ｂ）のシーケンス図で見ると、ＥＮ信号により、ＭＶ０はＷＡＤ＝０のｂ０に書き込まれ、ＭＶ１はＷＡＤ＝４のｂ４に書き込まれる。書き込みは２ブロック分で終了する。
【００６９】
図１１は、本発明の実施の形態のＭＢ（８×８）の場合のＭＶ生成処理と格納処理を示した図である。（Ａ）は、代表ＭＶの生成、（Ｂ）は、ＭＶの書き込みシーケンスを示している。
【００７０】
ＭＢ（８×８）の左上のＣｕ０（４３１）は、Ｃｕ０（４３１）に隣接する隣接ＭＢ［Ａ］のｂ５、隣接ＭＢ［Ｂ］のｂ１０、隣接ＭＢ［Ｃ］のｂ１４、及び隣接ＭＢ［Ｄ］のｂ１５のＭＶを読み出してＭＶＰを算出し、ＭＶ０を生成する。ＭＶ０は、Ｃｕ０（４３１）の左上のｂ０（４３２）に格納される。右上のＣｕ１（４３３）に対し、Ｃｕ０（４３１）のｂ１、Ｃｕ１（４２３）の隣接ＭＢ［Ｂ］のｂ１４、隣接ＭＢ［Ｃ］のｂ１０、及び隣接ＭＢ［Ｄ］のｂ１１のＭＶを読み出してＭＶＰを算出し、ＭＶ１を生成する。ＭＶ１は、Ｃｕ１（４３３）の左上のｂ４（４３４）に格納される。左下のＣｕ２（４３５）に対し、Ｃｕ２（４２６）に隣接する隣接ＭＢ［Ａ］のｂ１３、Ｃｕ０（４３１）のｂ２、Ｃｕ１（４３２）のｂ６、及び隣接ＭＢ［Ｂ］のｂ７のＭＶを読み出してＭＶＰを算出し、ＭＶ２を生成する。ＭＶ２は、Ｃｕ２（４３５）の左上のｂ８（４３６）に格納される。右下のＣｕ３（４３７）に対し、Ｃｕ２（４３５）のｂ９、Ｃｕ１（４３３）のｂ６、及びＣｕ０（４３１）のＭＶを読み出してＭＶＰを算出し、ＭＶ３を生成する。ＭＶ３は、Ｃｕ３（４３７）の左上のｂ１２（４３８）に格納される。
【００７１】
格納処理を（Ｂ）のシーケンス図で見ると、ＥＮ信号により、ＭＶ０はＷＡＤ＝０のｂ０、ＭＶ１はＷＡＤ＝４のｂ４、ＭＶ２はＷＡＤ＝８のｂ８、及びＭＶ３はＷＡＤ＝１２のｂ１２に書き込まれる。書き込みは４ブロック分で終了する。
【００７２】
図１２及び図１３は、本発明の実施の形態のサブマクロブロック分割の場合のＭＶ生成処理と格納処理を示した図である。図１２の（Ａ）は、サブマクロブロック分割、（Ｂ−１）は、サブマクロブロック０から２までの代表ＭＶの生成処理を示している。図１３の（Ｂ−２）は、サブマクロブロック３の代表ＭＶの生成、（Ｃ）は、ＭＶの書き込みシーケンスを示している。
【００７３】
図１２の（Ａ）は、ＭＢ（８×８）をさらに分割したサブマクロブロック分割の一例を示した図である。左上のＭＢ（８×８）は、８×８のＳＢ０（４４１）の１ブロックで構成される。右上のＭＢ（８×８）は、８×４のＳＢ１−０（４５１）と、ＳＢ１−１（４５３）の２ブロックで構成される。左下のＭＢ（８×８）は、４×８のＳＢ２−０（４６１）と、ＳＢ２−１（４６３）の２ブロックで構成される。右下のＭＢ（８×８）は、４×４のＳＢ３−０（４７１）、ＳＢ３−１（４７２）、ＳＢ３−２（４７３）、及びＳＢ３−３（４７４）の４つのブロックで構成される。
【００７４】
各サブマクロブロックのＭＶ生成処理について説明する。
ＳＢ０（４４１）は、隣接マクロブロックから読み出したＭＶに基づいてＭＶ０を生成し、ＳＢ０（４４１）の左上のｂ０（４４２）に格納する。ＳＢ１−０（４５１）は、隣接マクロブロックから読み出したＭＶに基づいてＭＶ１を生成し、ＳＢ１−０の左上のｂ４（４５２）に格納する。ＳＢ１−１(４５３)も同様にしてＭＶ２を生成し、ＳＢ１−１（４５３）の左上のｂ６（４５４）に格納する。ＳＢ２−０（４６１）について生成されるＭＶ３は、ｂ８（４６２）に格納され、ＳＢ２−１（４６３）について生成されるＭＶ４は、ｂ９（４６４）に格納される。
【００７５】
図１３を用いて説明する。
最小単位のサブマクロブロックで構成されるＳＢ３−０（４７１）、ＳＢ３−１（４７２）、ＳＢ３−２（４７３）、及びＳＢ３−３（４７４）について生成されたＭＶは、それぞれのサブマクロブロック（ｂ１２，ｂ１３，ｂ１４，ｂ１５）に格納される。
【００７６】
格納処理を（Ｃ）のシーケンス図で見ると、ＥＮ信号により、ＭＶ０はＷＡＤ＝０のｂ０、ＭＶ１はＷＡＤ＝４のｂ４、ＭＶ２はＷＡＤ＝６のｂ６、ＭＶ３はＷＡＤ＝８のｂ８、ＭＶ４はＷＡＤ＝９のｂ９、ＭＶ５はＷＡＤ＝１２のｂ１２、ＭＶ６はＷＡＤ＝１３のｂ１３、ＭＶ７はＷＡＤ＝１４のｂ１４、及びＭＶ８はＷＡＤ＝１５のｂ１５に書き込まれる。書き込みは９ブロック分で終了する。
【００７７】
以上のように、本発明の実施の形態のＭＶ生成では、生成されたＭＶは、ＭＶが生成されたマクロブロック範囲を代表するＭＶ格納領域（ここでは、左上のブロックに相当するＭＶ格納領域）にのみ書き込みが行われる。図から明らかなように、ＭＢ（８×８）までは、最大４ブロックの書き込みで処理が終了する。１６ブロックの書き込みが行われるのは、すべてのブロックが４×４の場合のみであり、多くの場合、より少ない書き込みブロック数で処理が終了する。これにより、従来のＭＶ処理では、１６ブロックに対応する全てのＭＶ格納領域に対して行われていた格納処理時間を大幅に短縮することができる。
【００７８】
以上の処理手順が実行されることにより、図６に示したように、現在処理中のＣｕ３１０と、その隣接ＭＢ［Ａ］３２０、及び隣接ＭＢ［ＢＣＤ］３３１，３３２の動きベクトルデータが格納される。
【００７９】
次に、アドレス変換部２１３によるアドレス変換処理について説明する。
アドレス変換部２１３では、ＭＶＰ生成部２１２が指示した隣接マクロブロックの代表ＭＶ格納領域を指示するアドレスに変換し、ＭＶＰ生成部２１２へアドレスを通知する。ＭＶＰ生成部２１２からは、参照する隣接マクロブロック（４×４）を指示する情報が入力される。たとえば、１６×１６の基本マクロブロックは、識別番号が付与されており、その識別番号と図７に示したｂ０からｂ１５のブロック番号などから隣接マクロブロックを指示する指示情報を生成し、アドレス変換部２１３へ引き渡す。アドレス変換部２１３では、指定された隣接マクロブロックのＭＢサイズ及びサブＭＢサイズと、代表ＭＶ格納領域とを対応付けたアドレス変換テーブルを用意しておき、アドレス変換テーブルに基づいてアドレスを導出する。
【００８０】
本発明の実施の形態では、図６に示したように、Ｃｕ３１０内の処理マクロブロックで参照するＭＶが、Ｃｕ３１０の外部のＭＶである場合には、隣接ＭＢ［Ａ］３２０、及び隣接ＭＢ［ＢＣＤ］３３１，３３２に対応付けられたＭＶ格納領域からデータを読み出す必要がある。たとえ処理マクロブロックの形状が同じであっても、配置される場所に応じて参照するＭＶが外部であるか内部であるかは異なってしまう。そこで、最初に、参照されるＭＶが内部の場合について説明し、続いて、隣接ＭＢ［Ａ］３２０、及び隣接ＭＢ［ＢＣＤ］３３１，３３２に参照されるＭＶが格納されている場合について説明する。
【００８１】
まず、内部のＭＶを参照する場合について説明する。以下の説明では、実際には、外部のＭＶを参照する場合であっても、内部と同などに処理できるとする。すなわち、すべてのマクロブロックのＭＶが、図６に示したＣｕ３１０と同様に格納されているとして説明する。
【００８２】
図１４及び図１５は、本発明の実施の形態のアドレス変換テーブルの機能を示した図である。図１４は、隣接マクロブロックのＭＢサイズが１６×１６と１６×８の場合である。図１５は、隣接マクロブロックのＭＢサイズが８×１６と８×８の場合と、サブＭＢサイズが８×４、４×８、及び４×４の場合とを示している。
【００８３】
図１４に示した隣接マクロブロックが、ＭＢ（１６×１６）の場合は、ｂ０からｂ１５が指定される可能性がある。これに対し、図８で説明したように、代表ＭＶは、ｂ０に対応するＭＶ格納領域に格納されている。したがって、指示された隣接マクロブロックが１６×１６の場合は、このマクロブロックの代表ＭＶ格納領域であるｂ０に相当するＭＶ格納領域を指示するアドレスに変換し、ＭＶＰ生成部２１２へ通知する。なお、隣接マクロブロックは、既に処理が終了したマクロブロックであり、ブロックサイズなどは既知である。たとえば、この情報を保存しておけば、指定された隣接マクロブロックのサイズを知ることができる。
【００８４】
同様に、隣接マクロブロックがＭＢ（１６×８）であって、ＭＢ（１６×１６）範囲の上側に位置する場合は、ｂ０からｂ７が指定される可能性がある。この場合の代表ＭＶ格納領域は、図９に示したようにｂ０になる。したがって、指示された隣接マクロブロックが１６×８で、ｂ０からｂ７が指定された場合、代表ＭＶ格納領域であるｂ０に相当するＭＶ格納領域を指示するアドレスに変換し、ＭＶＰ生成部２１２へ通知する。
【００８５】
なお、図示していないが、隣接マクロブロックが１６×８で、ｂ８からｂ１５が指定された場合は、基本マクロブロック範囲で下側のＭＢ（１６×８）であるので、代表ＭＶ格納領域は、図９に示したように、ｂ８になる。そこで、この場合は、ｂ８に相当するＭＶ格納領域を指示するアドレスに変換し、ＭＶＰ生成部２１２へ通知する。
【００８６】
図１５で説明する。
図１５に示した隣接マクロブロックがＭＢ（８×１６）であって、ＭＢ（１６×１６）範囲の左上に位置する場合は、ｂ０，ｂ１，ｂ２，ｂ３，ｂ８，ｂ９，ｂ１０，ｂ１１が指定される。図１０に示したように、代表ＭＶ格納領域は、ｂ０に相当するＭＶ格納領域であるので、そこを指示するアドレスに変換し、ＭＶＰ生成部２１２へ通知する。また、ＭＢ（１６×８）の場合と同様に、隣接マクロブロックが８×１６で、上記以外のｂ４，ｂ５，ｂ６，ｂ７，ｂ１２，ｂ１３，ｂ１４，ｂ１５が指定された場合は、代表ＭＶ格納領域は、図１０に示したように、ｂ４に対応するＭＶ格納領域になる。
【００８７】
基本マクロブロック範囲で左上に位置するＭＢ（８×８）の場合は、隣接マクロブロックとしてｂ０，ｂ１，ｂ２，ｂ３が指定される。図１１に示したように、代表ＭＶ格納領域は、ｂ０に相当するＭＶ格納領域であるので、そこを指示するアドレスに変換し、ＭＶＰ生成部２１２へ通知する。また、他と同様に、隣接マクロブロックが８×１６で、ｂ４，ｂ５，ｂ６，ｂ７が指定された場合の代表ＭＶ格納領域はｂ４、ｂ８，ｂ９，ｂ１０，ｂ１１が指定された場合の代表ＭＶ格納領域はｂ８、そしてｂ１２，ｂ１３，ｂ１４，ｂ１５が指定された場合の代表ＭＶ格納領域はｂ１２になる。それぞれの指定ブロックに対応するＭＶ格納領域を指示するアドレスに変換し、ＭＶＰ生成部２１２に通知する。
【００８８】
以下、サブマクロブロック構成の場合について説明する。簡単のため、それぞれ左上のＭＢ（８×８）に属する１つのサブマクロブロックを例にとり説明する。上記と同様に、他のサブマクロブロックについても、サイズと指定ブロックとにより、代表ＭＶ格納領域を一意に特定することができる。
【００８９】
基本マクロブロック単位で左上に位置するＭＢ（８×８）を横方向に２分割した上側のサブＭＢ（８×４）の場合、隣接マクロブロックとしてｂ０とｂ１が指定される。したがって、ＭＢサイズが８×８、サブＭＢサイズが８×４、そしてｂ０またはｂ１が指定された場合は、代表ＭＶ格納領域としてｂ０に対応するＭＶ格納領域のアドレスを通知する。
【００９０】
基本マクロブロック単位で左上に位置するＭＢ（８×８）を縦方向に２分割した左側のサブＭＢ（８×４）の場合、隣接マクロブロックとしてｂ０とｂ２が指定される。したがって、ＭＢサイズが８×８、サブＭＢサイズが４×８、そしてｂ０またはｂ２が指定された場合は、代表ＭＶ格納領域としてｂ０に対応するＭＶ格納領域のアドレスを通知する。
【００９１】
基本マクロブロック単位で左上に位置するＭＢ（８×８）を４分割した左上のサブＭＢ（４×４）の場合、隣接マクロブロックとしてｂ０が指定される。したがって、ＭＢサイズが８×８、サブＭＢサイズが４×４、そしてｂ０が指定された場合は、代表ＭＶ格納領域としてｂ０に対応するＭＶ格納領域のアドレスを通知する。
【００９２】
以上のように、代表ＭＶ格納領域は、隣接マクロブロックのＭＢサイズとサブＭＢサイズ、及び指定ブロック（ｂ０〜ｂ１５）と、代表ＭＶ格納領域のアドレスとを対応付けた変換テーブルによって導出することができる。これにより、ＭＶＰ生成部２１２によってＭＶ生成部２１４が代表ＭＶ格納領域にのみに格納されたＭＶを読み出すことができる。
【００９３】
なお、図１４及び図１５には、変換テーブル例を示さなかったが、上記のように隣接マクロブロックのＭＢサイズとサブＭＢサイズ、及び指定ブロック（ｂ０〜ｂ１５）と、代表ＭＶ格納領域のアドレスとが対応付けられ、隣接マクロブロックのサイズとブロック指定をアドレスが導出できるものであれば、どのような形式であってもよい。
【００９４】
以下、参照するＭＶがＣｕ外にある場合について説明する。たとえば、上記の処理マクロブロックが１６×１６の場合、参照するＭＶは、すべて隣接ＭＢ［Ａ］３２０と、隣接ＭＢ［ＢＣＤ］３３１，３３２に対応するＭＶ格納領域に格納されている。
【００９５】
まず、隣接ＭＢ［Ａ］及び隣接ＭＢ［ＢＣＤ］について、どの領域が代表ＭＶ格納領域となるのかを説明する。
図１６は、本発明の実施の形態における隣接マクロブロックＭＢ［Ａ］のＭＶ格納処理を示した図である。
【００９６】
Ｃｕ５０１は、隣接ＭＢ［Ａ］（Ａ０，Ａ１，Ａ２，Ａ３）を参照する現処理マクロブロックであり、マクロブロック５０２は、Ｃｕ５０１の前に処理対象であったマクロブロックである。隣接ＭＢ［Ａ］格納部２１５は、マクロブロック５０２のＭＶ生成処理によって生成された代表ＭＶを読み出し、隣接ＭＢ［Ａ］（Ａ０，Ａ１，Ａ２，Ａ３）に格納する。このとき、水平方向に代表ＭＶが複数存在する場合は、最も右に位置するマクロブロックに対し生成された代表ＭＶを選択し、隣接ＭＢ［Ａ］に格納する。たとえば、８×１６のマクロブロックが左右に並ぶ場合、Ａ０に対応するマクロブロックのｂ０とｂ４に対応するＭＶ格納領域にそれぞれ代表ＭＶが格納されている。この場合、ｂ４に対応する代表ＭＶが選択され、Ａ０に格納される。
【００９７】
図１７は、本発明の実施の形態における隣接マクロブロックＭＢ［ＢＣＤ］のＭＶ格納処理を示した図である。
Ｃｕ５０１は、隣接ＭＢ［ＢＣＤ］（Ｎ０，Ｎ１，Ｎ２，Ｎ３，Ｎ４，Ｎ５）を参照する現処理マクロブロックである。マクロブロック５０３，５０４，５０５は、既にＭＶ生成処理が終了したマクロブロックである。隣接ＭＢ［ＢＣＤ］格納部２１６は、たとえば、マクロブロック５０３のＭＶ生成処理によって生成された代表ＭＶを読み出し、隣接ＭＢ［ＢＣＤ］（Ｎ１，Ｎ２，Ｎ３，Ｎ４）に格納する。Ｎ０は、マクロブロック５０４のＭＶ生成処理後に、Ｎ５は、マクロブロック５０５のＭＶ生成処理後に、同様に代表ＭＶが設定される。このとき、垂直方向に代表ＭＶが複数存在する場合、最も下に位置するマクロブロックの代表ＭＶを選択し、隣接ＭＢ［ＢＣＤ］に格納する。たとえば、１６×８のマクロブロックが上下に並ぶ場合、Ｎ１に対応するマクロブロックｂ０とｂ８に対応するＭＶ格納領域に、それぞれの代表ＭＶが格納されている。この場合、ｂ８に対応する代表ＭＶが選択され、Ｎ１に格納される。
【００９８】
ブロックサイズごとに代表ＭＶが格納されるアドレスが異なるので、以下、ブロックサイズごとのＭＶ格納処理について説明する。
図１８から図２０は、本発明の実施の形態の隣接ＭＢの代表ＭＶ格納領域を示している。
【００９９】
図１８（Ａ）は、隣接ＭＢ（１６×１６）の代表ＭＶ格納領域を示している。
ＭＶ生成対象のマクロブロックが、ＭＢ（１６×１６）５１０の場合、代表ＭＶ０は、ｂ０に格納される。隣接ＭＢ［Ａ］格納部２１５では、ｂ０に格納される代表ＭＶ０を読み出し、ｂ０を水平移動した位置に対応するＭＢ［Ａ］のＡ０（５１１）に格納する。また、隣接ＭＢ［ＢＣＤ］格納部２１６では、ｂ０に格納される代表ＭＶ０を、ｂ０を垂直移動した位置に対応するＭＢ［ＢＣＤ］のＮ１（５１２）に格納する。
【０１００】
図１８（Ｂ）は、隣接ＭＢ（１６×８）の代表ＭＶ格納領域を示している。
ＭＶ生成対象のマクロブロックが、ＭＢ（１６×８）５２０の場合、２つの代表ＭＶが生成され、代表ＭＶ０はｂ０、代表ＭＶ８はｂ８に格納される。隣接ＭＢ［Ａ］格納部２１５では、ｂ０に格納される代表ＭＶ０を読み出し、ｂ０を水平移動した位置に対応するＭＢ［Ａ］のＡ０（５２１）に格納するとともに、同様にして、ＭＶ８をＡ２（５２２）に格納する。また、隣接ＭＢ［ＢＣＤ］格納部２１６では、２つの代表ＭＶのうち、下に位置するｂ８に格納される代表ＭＶ８を、ｂ０を垂直移動した位置に対応するＭＢ［ＢＣＤ］のＮ１（５２３）に格納する。
【０１０１】
図１９（Ｃ）は、隣接ＭＢ（８×１６）の代表ＭＶ格納領域を示している。
ＭＶ生成対象のマクロブロックが、ＭＢ（８×１６）５３０の場合、２つの代表ＭＶが生成され、代表ＭＶ０はｂ０、代表ＭＶ４はｂ４に格納される。隣接ＭＢ［Ａ］格納部２１５では、ｂ０とｂ４のうち、右側に格納されるｂ４の代表ＭＶ４を読み出し、ｂ４を水平移動した位置に対応するＭＢ［Ａ］のＡ０（５３１）に格納する。また、隣接ＭＢ［ＢＣＤ］格納部２１６では、ｂ０に格納されるＭＶ０を、ｂ０を垂直移動した位置に対応するＭＢ［ＢＣＤ］のＮ１（５３２）に格納し、ｂ４に格納されるＭＶ４を、ｂ４を垂直移動した位置に対応するＭＢ［ＢＣＤ］のＮ３（５３３）に格納する。
【０１０２】
図１９（Ｄ）は、隣接ＭＢ（８×８）の代表ＭＶ格納領域を示している。
ＭＶ生成対象のマクロブロックが、ＭＢ（８×８）５４０の場合、４つの代表ＭＶが生成され、代表ＭＶ０はｂ０、代表ＭＶ４はｂ４、代表ＭＶ８はｂ８、そして代表ＭＶ１２はｂ１２に格納される。隣接ＭＢ［Ａ］格納部２１５では、ｂ０とｂ４のうち、右側に位置するｂ４の代表ＭＶ４を読み出し、Ａ０（５４１）に格納する。また、ｂ８とｂ１２のうち、右側に位置するｂ１２の代表ＭＶ１２を選択し、Ａ２（５４２）に格納する。隣接ＭＢ［ＢＣＤ］格納部２１６では、ｂ０とｂ８のうち、下に位置するｂ８を選択し、その代表ＭＶ８を、ＭＢ［ＢＣＤ］のＮ１（５４３）に格納する。また、ｂ４とｂ１２のうち、ｂ１２を選択し、ＭＢ［ＢＣＤ］のＮ３（５４４）に格納する。
【０１０３】
図２０（Ｅ）は、隣接ＭＢ（４×４）の代表ＭＶ格納領域を示している。
ＭＶ生成対象のマクロブロックが、サブＭＢ（４×４）５５０の場合、ＭＶ０からＭＶ１５の１６の代表ＭＶが生成される。代表ＭＶは、それぞれ対応するブロック番号に格納される。隣接ＭＢ［Ａ］格納部２１５では、代表ＭＶのうち、最も右側に位置するＭＶ５，ＭＶ７，ＭＶ１３，ＭＶ１５を選択し、それぞれＭＢ［Ａ］のＡ０，Ａ１，Ａ２，Ａ３に格納する。隣接ＭＢ［ＢＣＤ］格納部２１６では、代表ＭＶのうち、下に位置するＭＶ１０，ＭＶ１１，ＭＶ１４，ＭＶ１５を選択し、ＭＢ［ＢＣＤ］のＮ１，Ｎ２，Ｎ３，Ｎ４に格納する。なお、詳細は省略するが、ＭＢ（８×４），ＭＢ（４×８）についても同様の処理が行われる。
【０１０４】
以上のように、隣接ＭＢ［Ａ］格納部２１５と、隣接ＭＢ［ＢＣＤ］格納手段によって、隣接ＭＢ［Ａ］及び隣接ＭＢ［ＢＣＤ］の所定の領域に代表ＭＶが格納される。
次に、ＭＶＰ生成部２１２が、隣接ＭＢ［Ａ］または隣接ＭＢ［ＢＣＤ］に格納される外部のＭＶを参照する場合について説明する。
【０１０５】
ＭＶＰ生成部２１２から、参照する隣接マクロブロック（４×４）を指示する情報が入力されると、アドレス変換部２１３は、指示された隣接マクロブロックが、隣接ＭＢ［Ａ］格納領域３２０、または隣接ＭＢ［ＢＣＤ］格納領域３３１，３３２にあるのかどうかを判定する。ない場合は、上記の図１４、図１５に示した変換テーブルを用いてアドレスを算出する。隣接ＭＢ［Ａ］格納領域３２０、または隣接ＭＢ［ＢＣＤ］格納領域３３１，３３２にある場合は、以下に説明する図２１から図２４の変換テーブルを用いてアドレス算出を行う。
【０１０６】
図２１及び図２２は、本発明の実施の形態の隣接ＭＢ［Ａ］格納領域を参照する場合のアドレス変換テーブルの機能を示した図である。図２１は、隣接ＭＢ［Ａ］のＭＶを生成した隣接マクロブロックが、ＭＢ（１６×１６）、ＭＢ（１６×８）、ＭＢ（８×１６）、及びＭＢ（８×８）の場合を示した図である。図２２は、隣接ＭＢ［Ａ］のＭＶを生成した隣接マクロブロックが、サブＭＢ（８×４）、サブＭＢ（４×８）、及びサブＭＢ（４×４）の場合を示した図である。
【０１０７】
隣接マクロブロックのＭＢサイズが１６×１６の場合、Ａ０に対応するＭＶ格納領域のみにＭＶ０が格納されている。隣接ＭＢ［Ａ］として、Ａ０，Ａ１，Ａ２，Ａ３が指定される可能性があるが、いずれの場合もＡ０に対応するＭＶ格納領域のアドレスに変換する。これにより、隣接ＭＢ［Ａ］のＭＢサイズが１６×１６の場合は、常に、ＭＶ０を読み出すことができる。
【０１０８】
隣接マクロブロックのＭＢサイズが１６×８の場合、Ａ０に対応するＭＶ格納領域にＭＶ０、Ａ２に対応するＭＶ格納領域にＭＶ８が格納されている。隣接ＭＢ［Ａ］として、Ａ０，Ａ１が指定された場合には、Ａ０に対応するＭＶ格納領域のアドレスに変換する。また、Ａ２，Ａ３が指定された場合には、Ａ２に対応するＭＶ格納領域のアドレスに変換する。これにより、隣接ＭＢ［Ａ］のＭＢサイズが１６×８の場合は、Ａ０またはＡ１が指定されるとＭＶ０、Ａ２またはＡ３が指定されるとＭＶ２を読み出すことができる。
【０１０９】
隣接マクロブロックのＭＢサイズが８×１６の場合、Ａ０に対応するＭＶ格納領域にＭＶ４が格納されている。隣接ＭＢ［Ａ］として、Ａ０，Ａ１，Ａ２、またはＡ３が指定された場合は、Ａ０に対応するＭＶ格納領域のアドレスに変換する。これにより、隣接ＭＢ［Ａ］のＭＢサイズが８×１６の場合は、常に、ＭＶ０を読み出すことができる。
【０１１０】
隣接マクロブロックのＭＢサイズが８×８の場合、Ａ０に対応するＭＶ格納領域にＭＶ４、Ａ２に対応するＭＶ格納領域にＭＶ１２が格納されている。隣接ＭＢ［Ａ］として、Ａ０，Ａ１が指定された場合には、Ａ０に対応するＭＶ格納領域のアドレスに変換する。また、Ａ２，Ａ３が指定された場合には、Ａ２に対応するＭＶ格納領域のアドレスに変換する。これにより、隣接ＭＢ［Ａ］のＭＢサイズが８×８の場合は、Ａ０またはＡ１が指定されるとＭＶ４、Ａ２またはＡ３が指定されるとＭＶ１２を読み出すことができる。
【０１１１】
図２２により説明する。図２２は、サブブロック分割の場合の隣接ＭＢ［Ａ］のアドレス変換を示している。なお、基本マクロブロック範囲における左半分がどのような構成であっても、隣接ＭＢ［Ａ］に代表ＭＶとして格納される値は同じであるので、図では左半分を省略している。
【０１１２】
隣接マクロブロックのＭＢサイズが８×４の場合、Ａ０に対応するＭＶ格納領域にＭＶ４、Ａ１に対応するＭＶ格納領域にＭＶ６、Ａ２に対応するＭＶ格納領域にＭＶ１２、そしてＡ３に対応するＭＶ格納領域にＭＶ１４が格納されている。この場合は、隣接ＭＢ［Ａ］として指定されたＡ０，Ａ１，Ａ２、またはＡ３に対応するＭＶ格納領域のアドレスに変換する。
【０１１３】
隣接マクロブロックのＭＢサイズが４×８の場合、Ａ０に対応するＭＶ格納領域にＭＶ５、Ａ２に対応するＭＶ格納領域にＭＶ１３が格納されている。この場合は、隣接ＭＢ［Ａ］として、Ａ０，Ａ１が指定された場合には、Ａ０に対応するＭＶ格納領域のアドレスに変換する。また、Ａ２，Ａ３が指定された場合には、Ａ２に対応するＭＶ格納領域のアドレスに変換する。
【０１１４】
隣接マクロブロックのＭＢサイズが４×４の場合、Ａ０に対応するＭＶ格納領域にＭＶ６、Ａ１に対応するＭＶ格納領域にＭＶ７、Ａ２に対応するＭＶ格納領域にＭＶ１３、そしてＡ３に対応するＭＶ格納領域にＭＶ１５が格納されている。この場合は、隣接ＭＢ［Ａ］として指定されたＡ０，Ａ１，Ａ２、またはＡ３に対応するＭＶ格納領域のアドレスに変換する。
【０１１５】
このように、アドレス変換部２１３では、隣接ＭＢ［Ａ］が指定されると、図２１及び図２２に示したアドレス変換を行って、指定された隣接ＭＢ［Ａ］の代表ＭＶ格納領域のアドレスに変換し、ＭＶＰ生成部２１２へ提供する。
【０１１６】
次に、隣接ＭＢ［ＢＣＤ］に関するアドレス変換について説明する。
図２３及び図２４は、本発明の実施の形態の隣接ＭＢ［ＢＣＤ］格納領域を参照する場合のアドレス変換テーブルの機能を示した図である。図２３は、隣接ＭＢ［ＢＣＤ］のＭＶを生成した隣接マクロブロックが、ＭＢ（１６×１６）、ＭＢ（１６×８）、ＭＢ（８×１６）、及びＭＢ（８×８）の場合を示した図である。図２４は、隣接ＭＢ［ＢＣＤ］のＭＶを生成した隣接マクロブロックが、サブＭＢ（８×４）、サブＭＢ（４×８）、及びサブＭＢ（４×４）の場合を示した図である。
【０１１７】
隣接マクロブロックのＭＢサイズが１６×１６の場合、Ｎ１に対応するＭＶ格納領域のみにＭＶ０が格納されている。隣接ＭＢ［ＢＣＤ］として、Ｎ１，Ｎ２，Ｎ３，Ｎ４が指定されるが、いずれの場合もＮ１に対応するＭＶ格納領域のアドレスに変換する。これにより、隣接ＭＢ［ＢＣＤ］のＭＢサイズが１６×１６の場合は、常に、ＭＶ０を読み出すことができる。
【０１１８】
隣接マクロブロックのＭＢサイズが１６×８の場合、Ｎ１に対応するＭＶ格納領域にＭＶ８が格納されている。隣接ＭＢ［ＢＣＤ］として、Ｎ１，Ｎ２，Ｎ３、またはＮ４が指定された場合は、Ｎ１に対応するＭＶ格納領域のアドレスに変換する。これにより、隣接ＭＢ［ＢＣＤ］のＭＢサイズが１６×８の場合は、常に、ＭＶ８を読み出すことができる。
【０１１９】
隣接マクロブロックのＭＢサイズが８×１６の場合、Ｎ１に対応するＭＶ格納領域にＭＶ０、Ｎ３に対応するＭＶ格納領域にＭＶ４が格納されている。隣接ＭＢ［ＢＣＤ］として、Ｎ１，Ｎ２が指定された場合には、Ｎ１に対応するＭＶ格納領域のアドレスに変換する。また、Ｎ３，Ｎ４が指定された場合には、Ｎ３に対応するＭＶ格納領域のアドレスに変換する。これにより、隣接ＭＢ［ＢＣＤ］のＭＢサイズが８×１６の場合は、Ｎ１またはＮ２が指定されるとＭＶ０、Ｎ３またはＮ４が指定されるとＭＶ４を読み出すことができる。
【０１２０】
隣接マクロブロックのＭＢサイズが８×８の場合、Ｎ１に対応するＭＶ格納領域にＭＶ８、Ｎ３に対応するＭＶ格納領域にＭＶ１２が格納されている。隣接ＭＢ［ＢＣＤ］として、Ｎ１，Ｎ２が指定された場合には、Ｎ１に対応するＭＶ格納領域のアドレスに変換する。また、Ｎ３，Ｎ４が指定された場合には、Ｎ３に対応するＭＶ格納領域のアドレスに変換する。これにより、隣接ＭＢ［ＢＣＤ］のＭＢサイズが８×８の場合は、Ｎ１またはＮ２が指定されるとＭＶ８、Ｎ３またはＮ４が指定されるとＭＶ１２を読み出すことができる。
【０１２１】
図２４により説明する。図２４は、サブブロック分割の場合の隣接ＭＢ［ＢＣＤ］のアドレス変換を示している。なお、基本マクロブロック範囲における上半分がどのような構成であっても、隣接ＭＢ［ＢＣＤ］に代表ＭＶとして格納される値は同じであるので、図では上半分を省略している。
【０１２２】
隣接マクロブロックのＭＢサイズが８×４の場合、Ｎ１に対応するＭＶ格納領域にＭＶ８、及びＮ３に対応するＭＶ格納領域にＭＶ１２が格納されている。この場合は、隣接ＭＢ［ＢＣＤ］として、Ｎ１，Ｎ２が指定された場合には、Ｎ１に対応するＭＶ格納領域のアドレスに変換する。また、Ｎ３，Ｎ４が指定された場合には、Ｎ３に対応するＭＶ格納領域のアドレスに変換する。
【０１２３】
隣接マクロブロックのＭＢサイズが４×８の場合、Ｎ１に対応するＭＶ格納領域にＭＶ８、Ｎ２に対応するＭＶ格納領域にＭＶ９、Ｎ３に対応するＭＶ格納領域にＭＶ１２、そしてＮ４に対応するＭＶ格納領域にＭＶ１３が格納されている。この場合は、隣接ＭＢ［ＢＣＤ］として指定されたＮ１，Ｎ２，Ｎ３、またはＮ４に対応するＭＶ格納領域のアドレスに変換する。
【０１２４】
隣接マクロブロックのＭＢサイズが４×４の場合、Ｎ１に対応するＭＶ格納領域にＭＶ１０、Ｎ２に対応するＭＶ格納領域にＭＶ１１、Ｎ３に対応するＭＶ格納領域にＭＶ１４、そしてＮ４に対応するＭＶ格納領域にＭＶ１５が格納されている。この場合は、隣接ＭＢ［ＢＣＤ］として指定されたＮ１，Ｎ２，Ｎ３、またはＮ４に対応するＭＶ格納領域のアドレスに変換する。
【０１２５】
このように、アドレス変換部２１３では、隣接ＭＢ［ＢＣＤ］が指定されると、図２３及び図２４に示したアドレス変換を行って、指定された隣接ＭＢ［ＢＣＤ］の代表ＭＶ格納領域のアドレスに変換し、ＭＶＰ生成部２１２へ提供する。
【０１２６】
以上説明したように、本発明の実施の形態では、アドレス変換部２１３によってＭＶＰ生成部２１２によるＭＶ参照時には、参照されるＭＶが格納されるアドレスを算出するので、参照用のＭＶをメモリに展開しておく必要がなくなり、不要なデータの格納サイクルをなくすことができる。この結果、ＭＶ処理の処理時間を短縮することができる。
【０１２７】
たとえば、ＭＢサイズが１６×１６の場合、従来のＭＶ処理では、ＭＶの格納に１６サイクル、隣接ＭＢ［Ａ］の格納に４サイクル、及び隣接ＭＢ［ＢＣＤ］の格納に４サイクルの計２４サイクルが必要であった。これに対し、本実施の形態では、ＭＶの格納に１サイクル、隣接ＭＢ［Ａ］の格納に１サイクル、及び隣接ＭＢ［ＢＣＤ］の格納に１サイクルの計３サイクルで処理が終了する。したがって、最大２１サイクル削減することができる。
【０１２８】
また、ＭＢサイズが８×８の場合、従来のＭＶ処理では、１６×１６と同様に計２４サイクルが必要であった。これに対し、本実施の形態では、ＭＶの格納に８サイクル、隣接ＭＢ［Ａ］の格納に２サイクル、及び隣接ＭＢ［ＢＣＤ］の格納に２サイクルの計１２サイクルで処理が終了する。したがって、最大１２サイクル削減することができる。
【０１２９】
サイクル数の削減は、１マイクロブロックのＭＢサイズが大きいほど、また、処理対象の画面サイズが大きいほど、効果が大きくなる。
＜フィールド構成＞
処理対象の画像がフィールド構成である場合についてもトップ・フィールド、ボトム・フィールドに対応するライン毎に前述した処理を行うことで、本発明をフレーム構成に適用した場合と同様の効果が得られる。
【０１３０】
＜第２の実施の形態＞
次に、第２の実施の形態の画像復号化装置２００のフレーム間予測部２１０における動きベクトルの復号化について説明する。
【０１３１】
以下、第２の実施の形態の画像復号化装置について説明するが、第１の実施の形態の画像復号化装置との相違点について説明し、同様の部分については、説明を省略する。
第２の実施の形態の画像復号化装置は、ＭＢＡＦＦに対応する点で第１の実施の形態の画像復号化装置と異なっている。
【０１３２】
以下、現処理対象のＭＢ（１６×１６）のマクロブロックのペアを「対象マクロブロック・ペア」といい、マクロブロック・ペアに隣接するマクロブロックのペアを「隣接マクロブロック・ペア」という。また、第２の実施の形態では、Ｃｕの符号の語尾に「ａ」を付したものを各ペアのトップ側とし、語尾に「ｂ」を付したものを各ペアのボトム側とする。
【０１３３】
本実施の形態ではＭＶＰ生成部２１２が対象マクロブロック・ペアのＭＶを、フレーム／フィールドの種別にかかわらず、そのまま必要なデータを格納する。
図２５は、ＭＶ格納領域とフレーム構成との関係を示した図であり、図２５（ａ）は、トップ側のＭＶ格納領域とフレーム構成との関係を示した図であり、図２５（ｂ）は、ボトム側のＭＶ格納領域とフレーム構成との関係を示した図である。
【０１３４】
本実施の形態では、隣接ＭＢ［Ａ］格納部２１５、及び隣接ＭＢ［ＢＣＤ］格納部２１６（対象マクロブロックの格納位置）は、トップ／ボトムとも共通で利用する。
本実施の形態のメモリ２１１は、Ｃｕ３１０ａ、３１０ｂ内のＭＶを格納するブロック内データ格納領域と、隣接ＭＢ［Ａ］３２０のＭＶと、隣接ＭＢ［ＢＣＤ］３３１ａ，３３１ｂ，３３２ａ，３３２ｂのＭＶとを格納する隣接ブロックデータ格納領域とを有する。
【０１３５】
隣接ＭＢ［Ａ］３２０については、Ｃｕ３１０ａ，３１０ｂそれぞれの左に隣接する４段のサブＭＢ（４×４）に対応する４つ（計８つ）のＭＶ格納領域が確保される。隣接ＭＢ［Ａ］格納部２１５は、Ｃｕ３１０ａ，３１０ｂそれぞれのＭＶ生成が終了すると、Ｃｕ３１０ａ，３１０ｂに関するＭＶが格納されるＭＶ格納領域から、それぞれ最も右の４段のサブＭＢ（４×４）に対応するＭＶを読み出し、そのデータを隣接ＭＢ［Ａ］３２０に格納する。この処理については後述する。
【０１３６】
隣接ＭＢ［ＢＣＤ］３３１ａ，３３１ｂについては、少なくとも、隣接ＭＢ［Ｂ］、隣接ＭＢ［Ｃ］、及び隣接ＭＢ［Ｄ］を含む、Ｃｕ３１０ａ，３１０ｂの上に隣接する隣接マクロブロック・ペアのトップ側、ボトム側の各最下段に位置するサブＭＢ（４×４）に対応するＭＶ格納領域が確保される。
【０１３７】
隣接ＭＢ［ＢＣＤ］３３２ａ，３３２ｂについても、Ｃｕ３１０ａ，３１０ｂが属するフレーム行の各最下段のサブＭＢ（４×４）に対応するＭＶ格納領域が確保される。
隣接ＭＢ［ＢＣＤ］格納部２１６では、Ｃｕ３１０ａ，３１０ｂのＭＶ生成処理が終了すると、Ｃｕ３１０ａ，３１０ｂに関するＭＶが格納されるＭＶ格納領域の最下段のサブＭＢ（４×４）を隣接ＭＢ［ＢＣＤ］３３２に格納する。
【０１３８】
ここで、図２５（ｂ）に示すように、アドレス変換部２１３によってＭＶＰ生成部２１２によるＭＶ参照時には、参照されるＭＶが格納されるアドレスを算出するので、本実施の形態では、格納される領域が、従来に比べＣｕ３１０ａの斜線部分（ｂ０，ｂ１，ｂ２，ｂ３，ｂ４，ｂ６，ｂ８，ｂ９，ｂ１２）だけ少ない。
【０１３９】
図２６は、第２の実施の形態の対象マクロブロック・ペアの格納処理を示す図である。
図２６において、まず、Ｃｕ３１０ａのサブＭＢ（４×４）（Ｔ５，Ｔ７，Ｔ１３，Ｔ１５）と、サブＭＢ（４×４）（Ｔ１０，Ｔ１１，Ｔ１４，Ｔ１５）とを取り出し、ＭＶ格納領域に確保する（ステップＳ１）。
【０１４０】
そして、Ｃｕ３１０ｂのサブＭＢ（４×４）（Ｂ５，Ｂ７，Ｂ１３，Ｂ１５）と、サブＭＢ（４×４）（Ｂ１０，Ｂ１１，Ｂ１４，Ｂ１５）とをＭＶ格納領域に確保する（ステップＳ２）。
【０１４１】
そして、ステップＳ１、及びステップＳ２にて得られた集合から（Ｔ５，Ｔ７，Ｔ１３，Ｔ１５，Ｂ５，Ｂ７，Ｂ１３，Ｂ１５）を、この順番に並べて隣接ＭＢ［Ａ］３２０に格納する（ステップＳ３）。また、ステップＳ１、及びステップＳ２にて得られた集合からサブＭＢ（４×４）（Ｔ１０，Ｔ１１，Ｔ１４，Ｔ１５）、及びサブＭＢ（４×４）（Ｂ１０，Ｂ１１，Ｂ１４，Ｂ１５）をひとまとめにして隣接ＭＢ［ＢＣＤ］３３１ａ，３３１ｂまたは隣接ＭＢ［ＢＣＤ］３３２ａ，３３２ｂに格納する（ステップＳ４，Ｓ５）。
【０１４２】
次に、本実施の形態の隣接ＭＢ［Ａ］及び隣接ＭＢ［ＢＣＤ］の位置について説明する。
図２７は、ＭＢＡＦＦの隣接ＭＢ［Ａ］及び隣接ＭＢ［ＢＣＤ］の位置を示す図である。なお、図２７中、たとえば「Ａ（ｔｏｐ）」は、隣接ＭＢ［Ａ］となる隣接マクロブロック・ペアのトップ側を示し、「Ａ（ｂｏｔ）」は、ボトム側を示している。
【０１４３】
図２７（ａ）に示すように、ＭＢＡＦＦでは、Ｃｕ３１０ａの隣接ＭＢ［Ａ］として、Ｃｕ３１０ａの左に隣接するサブＭＢ（４×４）（ＡＴ５，ＡＴ７，ＡＴ１３，ＡＴ１５）と、ボトム側であるＣｕ３１０ｂの左に隣接するサブＭＢ（４×４）（ＡＢ５，ＡＢ７，ＡＢ１３，ＡＢ１５）とが確保される。また、図２７（ｂ）に示すように、Ｃｕ３１０ｂの隣接ＭＢ［Ａ］として、Ｃｕ３１０ａの場合と同様に、Ｃｕ３１０ａの左に隣接するサブＭＢ（４×４）（ＡＴ５，ＡＴ７，ＡＴ１３，ＡＴ１５）と、ボトム側であるＣｕ３１０ｂの左に隣接するサブＭＢ（４×４）（ＡＢ５，ＡＢ７，ＡＢ１３，ＡＢ１５）とが確保される。
【０１４４】
また、Ｃｕ３１０ａの隣接ＭＢ［ＢＣＤ］としては、Ｃｕ３１０ａの上に隣接する隣接マクロブロック・ペアのトップ側の最下段に位置するサブＭＢ（４×４）（ＢＴ１０，ＢＴ１１，ＢＴ１４，ＢＴ１５）と、ＢＴ１０の左側に隣接するサブＭＢ（４×４）ＤＴ１５と、ＢＴ１５の右側に隣接するＣＴ１０と、Ｃｕ３１０ａの上に隣接する（ＢＢ１０，ＢＢ１１，ＢＢ１４，ＢＢ１５）と、ＢＢ１０の左側に隣接するＤＢ１５とＢＢ１５の右側に隣接するサブＭＢ（４×４）ＣＢ１０とが確保される。
【０１４５】
また、Ｃｕ３１０ｂの隣接ＭＢ［ＢＣＤ］としては、Ｃｕ３１０ａの最下段に位置するサブＭＢ（４×４）（ＥＴ１０，ＥＴ１１，ＥＴ１４，ＥＴ１５）と、ＥＴ１０の左側に隣接するサブＭＢ（４×４）ＡＴ１５と、Ｃｕ３１０ａの上に隣接する（ＢＢ１０，ＢＢ１１，ＢＢ１４，ＢＢ１５）と、ＢＢ１０の左側に隣接するＤＢ１５とＢＢ１５の右側に隣接するサブＭＢ（４×４）ＣＢ１０とが確保される。
【０１４６】
次に、隣接ＭＢ［ＢＣＤ］用の位置の条件について詳しく説明する。
図２８〜図３１は、隣接ＭＢ［ＢＣＤ］の位置を示す図である。
図２８は、対象マクロブロック・ペアと参照する隣接マクロブロック・ペアとがともにフレーム・ペアである場合を示す図である。この場合において図２８（ａ）は、対象マクロブロック・ペアのトップ側における隣接ＭＢ［ＢＣＤ］用位置の条件を示す図であり、図２８（ｂ）は、対象マクロブロック・ペアのボトム側における隣接ＭＢ［ＢＣＤ］用位置の条件を示す図である。
【０１４７】
対象マクロブロック・ペアのトップ側における隣接ＭＢ［ＢＣＤ］用位置は、Ｃｕ３１０ａの上に隣接する隣接マクロブロック・ペアのボトム側の最下段に位置するサブＭＢ（４×４）（ＢＢ１０，ＢＢ１１，ＢＢ１４，ＢＢ１５）と、ＢＢ１０の左側に隣接するサブＭＢ（４×４）ＤＢ１５とサブＭＢ（４×４）ＢＢ１５の右側に隣接するサブＭＢ（４×４）ＣＢ１０となる。また、対象マクロブロックのボトム側における隣接ＭＢ［ＢＣＤ］用位置は、Ｃｕ３１０ａの最下段に位置するサブＭＢ（４×４）（ＥＴ１０，ＥＴ１１，ＥＴ１４，ＥＴ１５）となる。
【０１４８】
図２９は、対象マクロブロック・ペアと参照する隣接マクロブロック・ペアとがともにフィールド・ペアである場合を示す図である。この場合において図２９（ａ）は、対象マクロブロック・ペアのトップ側における隣接ＭＢ［ＢＣＤ］用位置の条件を示す図であり、図２９（ｂ）は、対象マクロブロック・ペアのボトム側における隣接ＭＢ［ＢＣＤ］用位置の条件を示す図である。
【０１４９】
対象マクロブロック・ペアのトップ側における隣接ＭＢ［ＢＣＤ］用位置は、Ｃｕ３１０ａの上に隣接する隣接マクロブロック・ペアのトップ側の最下段に位置するサブＭＢ（４×４）（ＢＴ１０，ＢＴ１１，ＢＴ１４，ＢＴ１５）と、ＢＴ１０の左側に隣接するサブＭＢ（４×４）ＤＴ１５と、ＢＴ１５の右側に隣接するＣＴ１０となる。また、対象マクロブロック・ペアのボトム側における隣接ＭＢ［ＢＣＤ］用位置は、Ｃｕ３１０ａの上に隣接する隣接マクロブロック・ペアのトップ側の最下段に位置するサブＭＢ（４×４）（ＢＴ１０，ＢＴ１１，ＢＴ１４，ＢＴ１５）となる。
【０１５０】
図３０は、対象マクロブロック・ペアがフレーム・ペアであり、参照する隣接マクロブロック・ペアがフィールド・ペアである場合を示す図である。この場合において図３０（ａ）は、対象マクロブロック・ペアのトップ側における隣接ＭＢ［ＢＣＤ］用位置の条件を示す図であり、図３０（ｂ）は、対象マクロブロック・ペアのボトム側における隣接ＭＢ［ＢＣＤ］用位置の条件を示す図である。
【０１５１】
この場合は、図２９に示す場合と同様であるため説明を省略する。
図３１は、対象マクロブロック・ペアがフィールド・ペアであり、参照する隣接マクロブロック・ペアがフレーム・ペアである場合を示す図である。この場合において図３１（ａ）は、対象マクロブロック・ペアのトップ側における隣接ＭＢ［ＢＣＤ］用位置の条件を示す図であり、図３１（ｂ）は、対象マクロブロック・ペアのボトム側における隣接ＭＢ［ＢＣＤ］用位置の条件を示す図である。
【０１５２】
対象マクロブロック・ペアのトップ側における隣接ＭＢ［ＢＣＤ］用位置は、Ｃｕ３１０ａの上に隣接するサブＭＢ（４×４）（ＢＢ１０，ＢＢ１１，ＢＢ１４，ＢＢ１５）と、ＢＢ１０の左側に隣接するＤＢ１５とＢＢ１５の右側に隣接するサブＭＢ（４×４）ＣＢ１０となる。また、対象マクロブロック・ペアのトップ側における隣接ＭＢ［ＢＣＤ］用位置も同様となる。
【０１５３】
図３２は、図２７に示すＭＶ格納領域の隣接ＭＢ［Ａ］位置の条件を示す図である。
図３２（ａ）、及び図３２（ｂ）に示すように、対象マクロブロック・ペア、参照する隣接マクロブロック・ペアがそれぞれフレーム・ペア同士またはフィールド・ペア同士である場合は、第１の実施の形態と同様の対応関係になる。
【０１５４】
一方、図３２（ｃ）に示すように、対象マクロブロック・ペアがフレーム・ペアであり、隣接マクロブロック・ペアがフィールド・ペアである場合、Ｃｕ３１０ａのサブＭＢ（４×４）（ＥＴ０，ＥＴ２）は、それぞれ隣接ＭＢ［Ａ］５０２ａのサブＭＢ（４×４）ＡＴ５を参照する。Ｃｕ３１０ａのサブＭＢ（４×４）（ＥＴ８，ＥＴ１０）は、それぞれ隣接ＭＢ［Ａ］５０２ａのサブＭＢ（４×４）ＡＴ７を参照する。Ｃｕ３１０ｂのサブＭＢ（４×４）（ＥＢ０，ＥＢ２）は、それぞれ隣接ＭＢ［Ａ］５０２ａのサブＭＢ（４×４）ＡＴ１３を参照する。Ｃｕ３１０ｂのサブＭＢ（４×４）（ＥＢ８，ＥＢ１０）はそれぞれ、隣接ＭＢ［Ａ］５０２ａのサブＭＢ（４×４）ＡＴ１５を参照する。また、図３２（ｄ）に示すように、対象マクロブロック・ペアがフィールド・ペアであり、隣接マクロブロック・ペアがフレーム・ペアである場合、Ｃｕ３１０ａ，３１０ｂのサブＭＢ（４×４）（ＥＴ０，ＥＢ０）は、それぞれ隣接ＭＢ［Ａ］５０２ａのサブＭＢ（４×４）ＡＴ５を参照する。Ｃｕ３１０ａ，３１０ｂのサブＭＢ（４×４）（ＥＴ２，ＥＢ２）は、それぞれ隣接ＭＢ［Ａ］５０２ａのサブＭＢ（４×４）ＡＴ１３を参照する。Ｃｕ３１０ａ，３１０ｂのサブＭＢ（４×４）（ＥＴ８，ＥＢ８）は、それぞれ隣接ＭＢ［Ａ］５０２ｂのサブＭＢ（４×４）ＡＢ５を参照する。Ｃｕ３１０ａ，３１０ｂのサブＭＢ（４×４）（ＥＴ１０，ＥＢ１０）はそれぞれ、隣接ＭＢ［Ａ］５０２ｂのサブＭＢ（４×４）ＡＢ１３を参照する。
【０１５５】
図３３は、隣接ＭＢ［Ｄ］位置の条件を示す図である。
図３３（ａ）、及び図３３（ｂ）に示すように、対象マクロブロック・ペア、参照する隣接マクロブロック・ペアがそれぞれフレーム・ペア同士またはフィールド・ペア同士である場合は、第１の実施の形態と同様の対応関係になる。
【０１５６】
一方、図３３（ｃ）に示すように、対象マクロブロック・ペアがフレーム・ペアであり、隣接マクロブロック・ペアがフィールド・ペアである場合、Ｃｕ３１０ａのサブＭＢ（４×４）（ＥＴ２，ＥＴ８）は、それぞれ隣接ＭＢ［Ａ］５０２ｂのサブＭＢ（４×４）ＡＢ５を参照する。Ｃｕ３１０ａのサブＭＢ（４×４）ＥＴ１０、及びＣｕ３１０ｂのサブＭＢ（４×４）ＥＢ０は、それぞれ隣接ＭＢ［Ａ］５０２ｂのサブＭＢ（４×４）ＡＢ７を参照する。Ｃｕ３１０ｂのサブＭＢ（４×４）（ＥＢ２，ＥＢ８）は、それぞれ隣接ＭＢ［Ａ］５０２ｂのサブＭＢ（４×４）ＡＢ１３を参照する。Ｃｕ３１０ｂのサブＭＢ（４×４）ＥＴ１０は、隣接ＭＢ［Ａ］５０２ｂのサブＭＢ（４×４）ＡＢ１５を参照する。また、図３３（ｄ）に示すように、対象マクロブロック・ペアがフィールド・ペアであり、隣接マクロブロック・ペアがフレーム・ペアである場合、Ｃｕ３１０ａ，３１０ｂのサブＭＢ（４×４）（ＥＴ２，ＥＢ２）は、それぞれ隣接ＭＢ［Ａ］５０２ａのサブＭＢ（４×４）ＡＴ７を参照する。Ｃｕ３１０ａ，３１０ｂのサブＭＢ（４×４）（ＥＴ８，ＥＢ８）は、それぞれ隣接ＭＢ［Ａ］５０２ａのサブＭＢ（４×４）ＡＴ１５を参照する。Ｃｕ３１０ａ，３１０ｂのサブＭＢ（４×４）（ＥＴ１０，ＥＢ１０）は、それぞれ隣接ＭＢ［Ａ］５０２ｂのサブＭＢ（４×４）ＡＢ７を参照する。Ｃｕ３１０ｂのサブＭＢ（４×４）（ＥＢ０）は、隣接ＭＢ［Ａ］５０２ｂのサブＭＢ（４×４）ＡＢ１５を参照する。
【０１５７】
次に、ＭＢＡＦＦにおけるアドレス変換部によるアドレス変換処理について説明する。
なお、内部のＭＶを参照する場合については、第１の実施の形態と同様であるため、以下では外部のＭＶを参照する場合について説明する。
【０１５８】
図３４は、第２の実施の形態のアドレス変換部を示す図である。
第２の実施の形態のアドレス変換部２１３ａは、内部のＭＶを参照する場合において用いるＣｕＭＢ内参照変換テーブルＴａ１と、非ＭＢＡＦＦにおいて参照するＭＶがＣｕ外にある場合において用いるＣｕＭＢ外参照非ＭＢＡＦＦ用変換テーブルＴａ２と、ＭＢＡＦＦにおいて参照するＭＶがＣｕ外にある場合において用いるＣｕＭＢ外参照ＭＢＡＦＦ用変換テーブルＴａ３とを有している。
【０１５９】
ここで、ＣｕＭＢ内参照変換テーブルＴａ１とＣｕＭＢ外参照非ＭＢＡＦＦ用変換テーブルＴａ２とは、第１の実施の形態のアドレス変換部２１３が備えているものである。すなわち、アドレス変換部２１３ａはアドレス変換部２１３に比べ、対応する隣接マクロブロックのサイズ（ＭＢサイズとサブＭＢサイズ）から、その代表ＭＶ格納領域のアドレスに変換するＣｕＭＢ外参照ＭＢＡＦＦ用変換テーブルＴａ３をさらに有している。
【０１６０】
アドレス変換部２１３ａは、入力されたピクチャ単位でＭＢＡＦＦか非ＭＢＡＦＦかを判別し、非ＭＢＡＦＦの場合は、ＣｕＭＢ内参照変換テーブルＴａ１とＣｕＭＢ外参照非ＭＢＡＦＦ用変換テーブルＴａ２とを用いて処理を行う。また、ＭＢＡＦＦの場合は、ＣｕＭＢ内参照変換テーブルＴａ１とＣｕＭＢ外参照ＭＢＡＦＦ用変換テーブルＴａ３とを用いて処理を行う。
【０１６１】
ここで、ＣｕＭＢ外参照ＭＢＡＦＦ用変換テーブルＴａ３を用いて処理を行う場合、アドレス変換部２１３ａは、入力された対象マクロブロックがフィールド構造であるかフレーム構造であるかのコーディングタイプを判別するためのＭＢＦＩＥＬＤフラグと、隣接ＭＢ［Ａ］、及び隣接ＭＢ［ＢＣＤ］の属する各隣接マクロブロックのコーディングタイプを判別する周辺ＭＢ判別用フラグと、対象マクロブロックがフィールド構造の場合、フィールド種別（トップ・フィールドまたはボトム・フィールド）を判別するＴｏｐ／Ｂｏｔｔｏｍフラグとに基づいて、処理を行う。
【０１６２】
図３５は、ＭＢＡＦＦにおけるアドレス変換を示す図である。なお、図３５では対象マクロブロックが、ＭＢ（１６×８）の場合を示している。
アドレス変換部２１３ａは、ＭＢＡＦＦにおいても、非ＭＢＡＦＦの場合と同様に処理を行う。具体的には、まず、図３５（ａ）に示すように、隣接ＭＢ［Ａ］、隣接ＭＢ［Ｂ］、隣接ＭＢ［Ｃ］、及び隣接ＭＢ［Ｄ］の周辺位置をサブＭＢ（４×４）にて考慮し、次に図３５（ｂ）に示すように、周辺の分割を考慮し、次に図３５（ｃ）に示すように管理されているアドレスを考慮して、代表ＭＶ格納領域から代表ＭＶを指示するアドレスに変換し、ＭＶＰ生成部２１２へ通知する。但し、ＭＢＡＦＦでは、対象マクロブロック・ペアの上側、及び左側に隣接するマクロブロック・ペアの組み合わせによって、周辺位置の取り方が非ＭＢＡＦＦとは異なる場合が存在する。
【０１６３】
以下、ＭＢＡＦＦにおける対象マクロブロック・ペアと、対象マクロブロック・ペアの左側に隣接するマクロブロック（以下、単に「左隣接マクロブロック」という）とのフレーム／フィールドの組み合わせによるＭＶ生成処理を各パターンについて説明する。
【０１６４】
なお、以下では説明を分かり易くするため、マクロブロック・ペア毎ではなくマクロブロック毎のパターンにて説明する。
図３６、及び図３７は、対象マクロブロックおよび左隣接マクロブロックが、それぞれフレームである場合の隣接ＭＢの位置を示す図である。なお、図３６において、１つの図に画像６００の符号を付し、他の図においては符号を省略している（図３７〜図４７についても同様）。また、図３７の画像６００中、塗りつぶしパターンの部分は、フレームにおける偶数ラインを示しており、偶数ラインに挟まれた部分は奇数ラインを示している。また、図３６中、対象マクロブロックのサブＭＢ（４×４）内の斜線部は、ラインの位置を示している（図３７〜図４７についても同様）。
【０１６５】
図３６、及び図３７に示す隣接ＭＢ［Ａ］、及び隣接ＭＢ［ＢＣＤ］の位置は、非ＭＢＡＦＦの場合と同様である。すなわち、たとえば図３６（ｂ）に示すＣｕ３１０ａ中のＣｕのＭＶは、隣接ＭＢ［Ａ］５０２ａのサブＭＢ（４×４）（ＡＴ７）、Ｃｕ３１０ａのサブＭＢ（４×４）（ＥＴ０）、Ｃｕ３１０ａのサブＭＢ（４×４）（ＥＴ１）、及びＣｕ５０２ａのサブＭＢ（４×４）（ＡＴ５）の各ＭＶを読み出し、前述した式（１）に基づいてＭＶＰを算出する。そして、ＭＶＰと、復号されたＭＶＤを用いて、前述した式（３）によりＭＶを生成する。これをＭＶ８とする。なお、図３６（ａ）の場合の隣接ＭＢ［Ｂ］、及び隣接ＭＢ［ｃ］の読み出し位置は、対象マクロブロック、及び参照マクロブロックの上側に位置するマクロブロックのパターン（フレーム／フィールド）によって異なる。これについては後述する。
【０１６６】
図３８、及び図３９は、対象マクロブロックおよび左隣接マクロブロックが、それぞれフィールドである場合の隣接ＭＢの位置を示す図である。図３８の画像６００中、上側がトップ・フィールドを示し、下側（塗りつぶしパターンの部分）は、ボトム・フィールドを示している。
【０１６７】
図３６、及び図３７の場合と異なるのは、図３９（ａ）に示す場合である。図３９（ａ）の場合の隣接ＭＢ［ＢＣＤ］の読み出し位置は、対象マクロブロック、及び対象マクロブロックの上側に位置する隣接マクロブロックのパターン（フレーム／フィールド）によって異なる。
【０１６８】
図４０、及び図４１は、対象マクロブロックがフレームであり、左隣接マクロブロックがフィールドである場合の隣接ＭＢの位置を示す図である。
たとえば図４０（ｂ）の場合、対象マクロブロック（フレーム）の５ライン目に対応するサブＭＢ（４×４）の左隣接マクロブロック（フィールド）の隣接ＭＢ［Ａ］の位置は、奇数ラインの３ライン目であるため、隣接ＭＢ［Ａ］として、このラインに属するサブＭＢ（４×４）（ＡＴ５）のＭＶを読み出す。また、対象マクロブロックの５ライン目に対応する左隣接マクロブロックの隣接ＭＢ［Ｄ］の位置は、偶数ラインの２ライン目であるため、隣接ＭＢ［Ｄ］として、このラインに属するサブＭＢ（４×４）（ＡＢ５）のＭＶを読み出す。図４１についても同様である。
【０１６９】
図４２、及び図４３は、サブＭＢ（４×４）の対象マクロブロックがフィールドであり、左隣接マクロブロックがフレームである場合の隣接ＭＢの位置を示す図である。
考え方としては図４０、及び図４１と同様の考え方となる。たとえば図４２（ｂ）の場合、対象マクロブロック（フィールド）の５ライン目（奇数ラインの５ライン目）のサブＭＢ（４×４）に対応する左隣接マクロブロック（フレーム）の隣接ＭＢ［Ａ］の位置は、対象マクロブロックの上から数えて９ライン目であるため、隣接ＭＢ［Ａ］として、このラインに属するサブＭＢ（４×４）（ＡＴ１３）のＭＶを読み出す。また、対象マクロブロック（フィールド）の４ライン目（奇数ラインの４ライン目）に対応するフィールドの隣接ＭＢ［Ｄ］の位置は、対象マクロブロックの上から数えて７ライン目であるため、隣接ＭＢ［Ｄ］として、このラインに属するサブＭＢ（４×４）（ＡＴ７）のＭＶを読み出す。図４３についても同様である。
【０１７０】
次に、ＭＢＡＦＦにおける対象マクロブロックと、対象マクロブロックの上側に隣接するマクロブロック（以下、単に「上隣接マクロブロック」という）とのフレーム／フィールドの組み合わせによる各パターンについて説明する。
【０１７１】
図４４は、サブＭＢ（４×４）の対象マクロブロック、上隣接マクロブロックが、それぞれフレームである場合の隣接ＭＢの位置を示す図である。
たとえば図４４（ａ）に示す場合は、隣接ＭＢ［Ｂ］５０３ｂのサブＭＢ（４×４）（ＢＢ１０）、隣接ＭＢ［Ｂ］５０３ｂのサブＭＢ（４×４）（ＢＢ１１）、及び隣接ＭＢ［Ｄ］５０４ｂのサブＭＢ（４×４）（ＤＢ１５）のＭＶを読み出し、式（１）に基づいてＭＶＰを算出する。そして、ＭＶＰと、復号されたＭＶＤを用いて、式（３）によりＭＶを生成する。
【０１７２】
図４５は、サブＭＢ（４×４）の対象マクロブロックがフレームであり、上隣接マクロブロックがフィールドである場合の隣接ＭＢの位置を示す図である。
この場合も図４４に示す位置と同様である。
【０１７３】
図４６は、サブＭＢ（４×４）の対象マクロブロックがフィールドであり、上隣接マクロブロックがフレームである場合の隣接ＭＢの位置を示す図である。
図４６（ａ）の場合、すなわちＣｕがトップ・フィールドに存在する場合については、隣接ＭＢ［Ｂ］５０３ｂのサブＭＢ（４×４）（ＢＢ１０）、隣接ＭＢ［Ｂ］５０３ｂのサブＭＢ（４×４）（ＢＢ１１）、及び隣接ＭＢ［Ｄ］５０４ａのサブＭＢ（４×４）（ＤＢ１５）のＭＶを読み出す。
【０１７４】
また、図４６（ｂ）の場合、すなわちＣｕがボトム・フィールドに存在する場合については、隣接ＭＢ［Ｂ］５０３ｂのサブＭＢ（４×４）（ＢＢ１０）、隣接ＭＢ［Ｂ］５０３ｂのサブＭＢ（４×４）（ＢＢ１１）、及び隣接ＭＢ［Ｄ］５０４ｂのサブＭＢ（４×４）（ＤＢ１５）のＭＶを読み出す。
【０１７５】
図４７は、サブＭＢ（４×４）の対象マクロブロック、上隣接マクロブロックが、それぞれフィールドである場合の隣接ＭＢの位置を示す図である。
図４７（ａ）の場合、すなわちＣｕがトップ・フィールドに存在する場合については、隣接ＭＢ［Ｂ］５０３ａのサブＭＢ（４×４）（ＢＴ１０）、隣接ＭＢ［Ｂ］５０３ａのサブＭＢ（４×４）（ＢＴ１１）、及び隣接ＭＢ［Ｄ］５０４ａのサブＭＢ（４×４）（ＤＴ１５）のＭＶを読み出す。
【０１７６】
また、図４７（ｂ）の場合、すなわちＣｕがボトム・フィールドに存在する場合については、隣接ＭＢ［Ｂ］５０３ｂのサブＭＢ（４×４）（ＢＢ１０）、隣接ＭＢ［Ｂ］５０３ｂのサブＭＢ（４×４）（ＢＢ１１）、及び隣接ＭＢ［Ｄ］５０４ｂのサブＭＢ（４×４）（ＤＢ１５）のＭＶを読み出す。
【０１７７】
次に、ＣｕＭＢ外参照ＭＢＡＦＦ用変換テーブルＴａ３の内容について詳しく説明する。
図４８、及び図４９は、ＭＢ（４×４）の場合の対象マクロブロック・ペア、上隣接マクロブロック、及び左隣接マクロブロックがともにフレーム・ペアである場合の隣接ＭＢの位置を示す図であり、図５０、及び図５１は、ＭＢ（４×４）の場合の対象マクロブロック・ペア、上隣接マクロブロック、及び左隣接マクロブロックがともにフィールド・ペアである場合の隣接ＭＢの位置を示す図であり、図５２、及び図５３は、ＭＢ（４×４）の場合の対象マクロブロック・ペアがフレーム・ペアであり、上隣接マクロブロック、及び左隣接マクロブロックがともにフィールド・ペアである場合の隣接ＭＢの位置を示す図であり、図５４、及び図５５は、ＭＢ（４×４）の場合の対象マクロブロック・ペアがフィールド・ペアであり、上隣接マクロブロック、及び左隣接マクロブロックがともにフレーム・ペアである場合の隣接ＭＢの位置を示す図である。
【０１７８】
なお、各図において、対象マクロブロックの代表ＭＶの位置をそれぞれｂ０〜ｂ１５を用いて示している。また、図中「Ｘ」は、Ｃが無効の場合を示している。また、各図において、１つの図にＣｕ３１０ａ，３１０ｂの符号を付し、他の図においては符号を省略している。
【０１７９】
図４８〜図５５にそれぞれ示すように、アドレス変換部２１３ａは、参照するＭＶが、対象マクロブロック・ペア内に存在する場合は、ＣｕＭＢ内参照変換テーブルＴａ１を使用して変換を行い、参照するＭＶが、対象マクロブロック・ペア内に存在する場合は、ＣｕＭＢ外参照ＭＢＡＦＦ用変換テーブルＴａ３を使用して変換を行う。
【０１８０】
この第２の実施の形態の画像復号化装置２００によれば、第１の実施の形態の画像復号化装置２００と同様の効果が得られる。
そして、第２の実施の形態の画像復号化装置２００によれば、ＭＢＡＦＦで参照するＭＶがＣｕ外にある場合（隣接ＭＢ［Ａ］、及び隣接ＭＢ［ＢＣＤ］が対象マクロブロック外を指定する場合）、ＭＢＦＩＥＬＤフラグと、周辺ＭＢ判別用フラグと、Ｔｏｐ／Ｂｏｔｔｏｍフラグとに基づいて、ＣｕＭＢ外参照ＭＢＡＦＦ用変換テーブルＴａ３を使用して処理を行うことによりＭＶの探索を、非ＭＢＡＦＦと同じ時間で行うことができる。
【０１８１】
また、参照するＭＶがＣｕ内にある場合（隣接ＭＢ［Ａ］、及び隣接ＭＢ［ＢＣＤ］が対象マクロブロック内を指定する場合）、非ＭＢＡＦＦと共通のＣｕＭＢ内参照変換テーブルＴａ１を使用することで、図２５（ｂ）に示したように、Ｃｕ３１０ａの斜線部分（ｂ０，ｂ１，ｂ２，ｂ３，ｂ４，ｂ６，ｂ８，ｂ９，ｂ１２）９ＭＶ分のメモリ２１１に格納する領域を削減することができる。よって、メモリ２１１の回路規模の縮小を図ることができる。
【０１８２】
以上、本発明のフレーム間予測処理装置、画像符号化装置、及び画像復号化装置を、図示の実施の形態に基づいて説明したが、本発明はこれに限定されるものではなく、各部の構成は、同様の機能を有する任意の構成のものに置換することができる。また、本発明に、他の任意の構成物や工程が付加されていてもよい。
【０１８３】
また、本発明は、前述した各実施の形態のうちの、任意の２以上の構成（特徴）を組み合わせたものであってもよい。
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、フレーム間予測処理装置が有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、たとえば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリなどが挙げられる。磁気記録装置としては、たとえば、ハードディスク装置（ＨＤＤ）、フレキシブルディスク（ＦＤ）、磁気テープなどが挙げられる。光ディスクとしては、たとえば、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−ＲＡＭ（Random Access Memory）、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＣＤ−Ｒ（Recordable）／ＲＷ（ReWritable）などが挙げられる。光磁気記録媒体としては、たとえば、ＭＯ（Magneto-Optical disk）などが挙げられる。
【０１８４】
プログラムを流通させる場合には、たとえば、そのプログラムが記録されたＤＶＤ、ＣＤ−ＲＯＭなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【０１８５】
フレーム間予測処理プログラムを実行するコンピュータは、たとえば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送される毎に、逐次、受け取ったプログラムに従った処理を実行することもできる。
【図面の簡単な説明】
【０１８６】
【図１】本発明の概要を示す図である。
【図２】第１の実施の形態の画像符号化装置の構成を示したブロック図である。
【図３】第１の実施の形態の画像復号化装置の構成を示したブロック図である。
【図４】Ｈ．２６４におけるマクロブロックのブロックサイズを示した図である。
【図５】第１の実施の形態の画像復号化装置のフレーム間予測における動きベクトル生成処理を示した機能ブロック図である。
【図６】第１の実施の形態のＭＶ格納領域とフレーム構成との関係を示した図である。
【図７】１６×１６のマクロブロックと、ブロック番号の関係を示した図である。
【図８】第１の実施の形態のＭＢ（１６×１６）の場合のＭＶ生成処理と格納処理を示した図である。
【図９】第１の実施の形態のＭＢ（１６×８）の場合のＭＶ生成処理と格納処理を示した図である。
【図１０】第１の実施の形態のＭＢ（８×１６）の場合のＭＶ生成処理と格納処理を示した図である。
【図１１】第１の実施の形態のＭＢ（８×８）の場合のＭＶ生成処理と格納処理を示した図である。
【図１２】第１の実施の形態のサブマクロブロック分割の場合のＭＶ生成処理と格納処理を示した図（サブマクロブロック分割と代表ＭＶ生成処理）である。
【図１３】第１の実施の形態のサブマクロブロック分割の場合のＭＶ生成処理と格納処理を示した図（代表ＭＶの生成と書き込みシーケンス）である。
【図１４】第１の実施の形態のアドレス変換テーブルの機能を示した図である。
【図１５】第１の実施の形態のアドレス変換テーブルの機能を示した図である。
【図１６】第１の実施の形態における隣接マクロブロックＭＢ［Ａ］のＭＶ格納処理を示した図である。
【図１７】第１の実施の形態における隣接マクロブロックＭＢ［ＢＣＤ］のＭＶ格納処理を示した図である。
【図１８】第１の実施の形態の隣接ＭＢ（ＭＢ（１６×１６）とＭＢ（１６×８））の代表ＭＶ格納領域を示している。
【図１９】第１の実施の形態の隣接ＭＢ（ＭＢ（８×１６）とＭＢ（８×８））の代表ＭＶ格納領域を示している。
【図２０】第１の実施の形態の隣接ＭＢ（ＭＢ（４×４））の代表ＭＶ格納領域を示している。
【図２１】第１の実施の形態の隣接ＭＢ［Ａ］格納領域を参照する場合のアドレス変換テーブルの機能を示した図である。
【図２２】第１の実施の形態の隣接ＭＢ［Ａ］格納領域を参照する場合のアドレス変換テーブルの機能を示した図である。
【図２３】第１の実施の形態の隣接ＭＢ［ＢＣＤ］格納領域を参照する場合のアドレス変換テーブルの機能を示した図である。
【図２４】第１の実施の形態の隣接ＭＢ［ＢＣＤ］格納領域を参照する場合のアドレス変換テーブルの機能を示した図である。
【図２５】第２の実施の形態のＭＶ格納領域とフレーム構成との関係を示した図である。
【図２６】第２の実施の形態の対象マクロブロック・ペアの格納処理を示す図である。
【図２７】ＭＢＡＦＦの隣接ＭＢ［Ａ］及び隣接ＭＢ［ＢＣＤ］の位置を示す図である。
【図２８】隣接ＭＢ［ＢＣＤ］の位置を示す図である。
【図２９】隣接ＭＢ［ＢＣＤ］の位置を示す図である。
【図３０】隣接ＭＢ［ＢＣＤ］の位置を示す図である。
【図３１】隣接ＭＢ［ＢＣＤ］の位置を示す図である。
【図３２】図２７に示すＭＶ格納領域の隣接ＭＢ［Ａ］位置の条件を示す図である。
【図３３】隣接ＭＢ［Ｄ］位置の条件を示す図である。
【図３４】第２の実施の形態のアドレス変換部を示す図である。
【図３５】ＭＢＡＦＦにおけるアドレス変換を示す図である。
【図３６】隣接ＭＢの位置を示す図である。
【図３７】隣接ＭＢの位置を示す図である。
【図３８】隣接ＭＢの位置を示す図である。
【図３９】隣接ＭＢの位置を示す図である。
【図４０】隣接ＭＢの位置を示す図である。
【図４１】隣接ＭＢの位置を示す図である。
【図４２】隣接ＭＢの位置を示す図である。
【図４３】隣接ＭＢの位置を示す図である。
【図４４】隣接ＭＢの位置を示す図である。
【図４５】隣接ＭＢの位置を示す図である。
【図４６】隣接ＭＢの位置を示す図である。
【図４７】隣接ＭＢの位置を示す図である。
【図４８】隣接ＭＢの位置を示す図である。
【図４９】隣接ＭＢの位置を示す図である。
【図５０】隣接ＭＢの位置を示す図である。
【図５１】隣接ＭＢの位置を示す図である。
【図５２】隣接ＭＢの位置を示す図である。
【図５３】隣接ＭＢの位置を示す図である。
【図５４】隣接ＭＢの位置を示す図である。
【図５５】隣接ＭＢの位置を示す図である。
【図５６】符号化タイプ別のマクロブロックの処理順について説明するための図である。
【符号の説明】
【０１８７】
１  フレーム間予測処理装置
２  アドレス通知部
３  予測値算出部
１００  画像符号化装置
１０４、２１０  フレーム間予測部
２００  画像復号化装置
２１１  メモリ
２１２  ＭＶＰ生成部
２１３、２１３ａ  アドレス変換部
２１４  ＭＶ生成部
２１５  隣接ＭＢ［Ａ］格納部
２１６  隣接ＭＢ［ＢＣＤ］格納部
３１０、３１０ａ、３１０ｂ  Ｃｕ
Ｔａ１  ＣｕＭＢ内参照変換テーブル
Ｔａ２  ＣｕＭＢ外参照非ＭＢＡＦＦ用変換テーブル
Ｔａ３  ＣｕＭＢ外参照ＭＢＡＦＦ用変換テーブル
【図１】
2008048289.tif 000003
【図２】
2008048289.tif 000004
【図３】
2008048289.tif 000005
【図４】
2008048289.tif 000006
【図５】
2008048289.tif 000007
【図６】
2008048289.tif 000008
【図７】
2008048289.tif 000009
【図８】
2008048289.tif 000010
【図９】
2008048289.tif 000011
【図１０】
2008048289.tif 000012
【図１１】
2008048289.tif 000013
【図１２】
2008048289.tif 000014
【図１３】
2008048289.tif 000015
【図１４】
2008048289.tif 000016
【図１５】
2008048289.tif 000017
【図１６】
2008048289.tif 000018
【図１７】
2008048289.tif 000019
【図１８】
2008048289.tif 000020
【図１９】
2008048289.tif 000021
【図２０】
2008048289.tif 000022
【図２１】
2008048289.tif 000023
【図２２】
2008048289.tif 000024
【図２３】
2008048289.tif 000025
【図２４】
2008048289.tif 000026
【図２５】
2008048289.tif 000027
【図２６】
2008048289.tif 000028
【図２７】
2008048289.tif 000029
【図２８】
2008048289.tif 000030
【図２９】
2008048289.tif 000031
【図３０】
2008048289.tif 000032
【図３１】
2008048289.tif 000033
【図３２】
2008048289.tif 000034
【図３３】
2008048289.tif 000035
【図３４】
2008048289.tif 000036
【図３５】
2008048289.tif 000037
【図３６】
2008048289.tif 000038
【図３７】
2008048289.tif 000039
【図３８】
2008048289.tif 000040
【図３９】
2008048289.tif 000041
【図４０】
2008048289.tif 000042
【図４１】
2008048289.tif 000043
【図４２】
2008048289.tif 000044
【図４３】
2008048289.tif 000045
【図４４】
2008048289.tif 000046
【図４５】
2008048289.tif 000047
【図４６】
2008048289.tif 000048
【図４７】
2008048289.tif 000049
【図４８】
2008048289.tif 000050
【図４９】
2008048289.tif 000051
【図５０】
2008048289.tif 000052
【図５１】
2008048289.tif 000053
【図５２】
2008048289.tif 000054
【図５３】
2008048289.tif 000055
【図５４】
2008048289.tif 000056
【図５５】
2008048289.tif 000057
【図５６】
2008048289.tif 000058