トップ :: H 電気 :: H04 電気通信技術




【発明の名称】 フレーム間予測処理装置、画像符号化装置、及び画像復号化装置
【発明者】 【氏名】仲石 英典

【要約】 【課題】画像処理を高速化する。

【構成】フレーム間予測処理装置1は、アドレス通知部2と予測値算出部3とを有する。アドレス通知部2は、MBAFF識別タイプと、コーディングタイプとに基づいて、処理対象の画像がMBAFFであるとき、現処理対象動きベクトル検出単位・ペアの境界の外部に存在する領域を参照して動き補償をする場合、現処理対象動きベクトル検出単位・ペアのコーディングタイプと領域の参照先のコーディングタイプとに応じて領域の参照先の動きベクトルが格納されているメモリのアドレスを通知する。予測値算出部3は、通知されたアドレスに基づいて、メモリの参照先の動きベクトルを読み出し、現処理対象動きベクトル検出単位・ペアの各現処理対象動きベクトル検出単位の動きベクトル予測値を算出する。
【特許請求の範囲】
【請求項1】
動画像を所定の領域に分割した動きベクトル検出単位を用いてフレーム間予測処理を行うフレーム間予測処理装置において、
処理対象の画像がフレームのみまたはフィールドのみで構成されている非MBAFF(Macro Block Adaptive Field/Frame)か、前記動きベクトル検出単位・ペア毎にフレーム予測/フィールド予測を選択的に適用可能なMBAFFかを識別するMBAFF識別タイプと、前記画像における隣接する現処理対象動きベクトル検出単位・ペア毎に、前記現処理対象動きベクトル検出単位・ペアがフレームで構成されているかフィールドで構成されているかを識別するコーディングタイプとに基づいて、前記処理対象の画像が前記MBAFFであるとき、前記現処理対象動きベクトル検出単位・ペアの境界の外部に存在する領域を参照して動き補償をする場合、前記現処理対象動きベクトル検出単位・ペアの前記コーディングタイプと前記領域の前記参照先の前記コーディングタイプとに応じて前記領域の前記参照先の動きベクトルが格納されているメモリのアドレスを通知するアドレス通知部と、
通知された前記アドレスに基づいて、前記メモリの前記参照先の前記動きベクトルを読み出し、前記現処理対象動きベクトル検出単位・ペアの各現処理対象動きベクトル検出単位の動きベクトル予測値を算出する予測値算出部と、
を有することを特徴とするフレーム間予測処理装置。
【請求項2】
前記現処理対象動きベクトル検出単位・ペアがフィールドで構成されている場合、前記アドレス通知部は、さらに前記現処理対象動きベクトル検出単位の位置がトップ・フィールド側かボトム・フィールド側かを識別するフィールド識別タイプに基づいて、前記領域の前記参照先の前記動きベクトルが格納されている前記メモリのアドレスを通知することを特徴とする請求項1記載のフレーム間予測処理装置。
【請求項3】
前記アドレス通知部は、前記非MBAFFであるときであり、かつ、前記現処理対象動きベクトル検出単位の境界の外部に存在する領域を参照して動き補償をする場合においても、前記領域の前記参照先の前記動きベクトルが格納されている前記メモリのアドレスを通知する機能を有することを特徴とする請求項1記載のフレーム間予測処理装置。
【請求項4】
前記動きベクトルは、必要に応じて所定のブロックサイズに設定される前記動きベクトル検出単位毎に生成され、
前記動きベクトルを格納する動きベクトル格納領域が、前記動きベクトル検出単位の最小単位に応じて用意され、前記メモリを構成する参照画像記憶部と、
現処理以降の前記動きベクトル検出単位・ペアの処理で参照され、前記現処理対象動きベクトル検出単位・ペアに隣接する隣接動きベクトル検出単位の前記動きベクトルを格納する参照画像格納部と、をさらに有し、
前記アドレス通知部は、前記領域の前記参照先の前記動きベクトル検出単位の前記動きベクトルが格納される前記参照画像記憶部のアドレスを、前記領域の前記参照先の前記動きベクトル検出単位のブロックサイズに基づいて算出して前記予測値算出部に通知し、
前記予測値算出部は、前記アドレス通知部に対して前記各現処理対象動きベクトル検出単位のフレーム間予測で参照する前記隣接動きベクトル検出単位を指示して前記隣接動きベクトル検出単位について生成された前記動きベクトルが格納されるアドレスを取得し、取得した前記アドレスに基づいて前記参照画像記憶部より前記隣接動きベクトル検出単位の前記動きベクトルを読み出し、前記各現処理対象動きベクトル検出単位の動きベクトル予測値を算出し、
前記参照画像格納部は、前記動きベクトル予測値の算出のために参照される前記隣接動きベクトル検出単位の前記動きベクトルを、前記隣接動きベクトル検出単位に対応する前記動きベクトル格納領域の所定の領域に格納することを特徴とする請求項1記載のフレーム間予測処理装置。
【請求項5】
前記現処理対象動きベクトル検出単位・ペアに対応する前記隣接動きベクトル検出単位の前記動きベクトル格納領域が前記参照画像記憶部に用意されることを特徴とする請求項4記載のフレーム間予測処理装置。
【請求項6】
前記アドレス通知部は、前記隣接動きベクトル検出単位のブロックサイズ及び前記隣接動きベクトル検出単位の指定と、前記動きベクトルが格納される前記参照画像記憶部のアドレスとを対応付けた変換テーブルを有し、前記変換テーブルに基づいて前記予測値算出部からの入力情報を前記アドレスに変換することを特徴とする請求項4記載のフレーム間予測処理装置。
【請求項7】
前記参照画像記憶部は、前記現処理対象動きベクトル検出単位の前記動きベクトルを格納するブロック内データ格納領域と、前記現処理対象動きベクトル検出単位に隣接する他の動きベクトル検出単位の前記動きベクトルを格納する隣接ブロックデータ格納領域とを有し、
前記参照画像格納部は、次の動きベクトル検出単位に処理対象が移行するまでに、前記現処理対象の前記動きベクトルを、前記現処理対象動きベクトル検出単位に対応する前記隣接ブロックデータ格納領域に格納することを特徴とする請求項4記載のフレーム間予測処理装置。
【請求項8】
前記アドレス通知部は、
前記隣接動きベクトル検出単位のブロックサイズ及び前記隣接動きベクトル検出単位の指定と、前記動きベクトルが格納される前記ブロック内データ格納領域のアドレスとを対応付けた第1の変換テーブルと、
前記非MBAFF時に前記隣接動きベクトル検出単位のブロックサイズ及び前記隣接動きベクトル検出単位の指定と、前記隣接ブロックデータ格納領域のアドレスとを対応付けた第2の変換テーブルと、
前記MBAFF時に前記隣接動きベクトル検出単位のブロックサイズ及び前記隣接動きベクトル検出単位の指定と、前記隣接ブロックデータ格納領域のアドレスとを対応付けた第3の変換テーブルとを有し、
前記各変換テーブルに基づいて前記予測値算出部からの入力情報を前記アドレスに変換することを特徴とする請求項7記載のフレーム間予測処理装置。
【請求項9】
基本処理単位の動きベクトル検出単位毎に、入力画像について所定の参照画像からの動き補償を行って生成した予測誤差を圧縮符号化する画像符号化装置において、
処理対象の画像がフレームのみまたはフィールドのみで構成されている非MBAFF(Macro Block Adaptive Field/Frame)か、動きベクトル検出単位・ペア毎にフレーム予測/フィールド予測を選択的に適用可能なMBAFFかを識別するMBAFF識別タイプと、前記画像における隣接する現処理対象動きベクトル検出単位・ペア毎に、前記現処理対象動きベクトル検出単位・ペアがフレームで構成されているかフィールドで構成されているかを識別するコーディングタイプとに基づいて、
前記処理対象の画像が前記MBAFFであるとき、前記現処理対象動きベクトル検出単位・ペアの境界の外部に存在する領域を参照して動き補償をする場合、前記現処理対象動きベクトル検出単位・ペアの前記コーディングタイプと前記領域の前記参照先の前記コーディングタイプとに応じて前記領域の前記参照先の動きベクトルが格納されているメモリのアドレスを通知するアドレス通知部と、
通知された前記アドレスに基づいて、前記メモリの前記参照先の前記動きベクトルを読み出し、前記現処理対象動きベクトル検出単位・ペアの各現処理対象動きベクトル検出単位の前記動きベクトル予測値を算出し、算出した前記各現処理対象動きベクトル検出単位の前記動きベクトル予測値と、前記各現処理対象動きベクトル検出単位について検出された前記動きベクトルとの予測差分値を算出して符号化対象とするフレーム間予測処理部と、
を有することを特徴とする画像符号化装置。
【請求項10】
基本処理単位の動きベクトル検出単位ごとに、入力画像について所定の参照画像からの動き補償を行って生成した予測誤差を圧縮符号化した画像符号化信号を入力し、元の動画像を復元する画像復号化装置において、
処理対象の画像がフレームのみまたはフィールドのみで構成されている非MBAFF(Macro Block Adaptive Field/Frame)か、動きベクトル検出単位・ペア毎にフレーム予測/フィールド予測を選択的に適用可能なMBAFFかを識別するMBAFF識別タイプと、前記画像における隣接する現処理対象動きベクトル検出単位・ペア毎に、前記現処理対象動きベクトル検出単位・ペアがフレームで構成されているかフィールドで構成されているかを識別するコーディングタイプとに基づいて、
前記処理対象の画像が前記MBAFFであるとき、前記現処理対象動きベクトル検出単位・ペアの境界の外部に存在する領域を参照して動き補償をする場合、前記現処理対象動きベクトル検出単位・ペアの前記コーディングタイプと前記領域の前記参照先の前記コーディングタイプとに応じて前記領域の前記参照先の動きベクトルが格納されているメモリのアドレスを通知するアドレス通知部と、
通知された前記アドレスに基づいて、前記メモリの前記参照先の前記動きベクトルを読み出し、前記現処理対象動きベクトル検出単位・ペアの各現処理対象動きベクトル検出単位の動きベクトル予測値を算出し、算出した前記各現処理対象動きベクトル検出単位の前記動きベクトル予測値と復号化された予測差分値とを用いて前記各現処理対象動きベクトル検出単位の前記動きベクトルを復号化するフレーム間予測部と、
を有することを特徴とする画像復号化装置。
【発明の詳細な説明】【技術分野】
【0001】
本発明は、フレーム間予測処理装置、画像符号化装置、及び画像復号化装置に関し、特に動画像を所定の領域に分割したマクロブロックを単位としてフレーム間予測処理を行うフレーム間予測処理装置、及びこのようなフレーム間予測処理装置を具備する画像符号化装置と画像復号化装置に関する。
【背景技術】
【0002】
動画像信号の圧縮符号化方式として、MPEG(Moving Picture Expert Group)や、H.264などが知られている。このような圧縮符号化方式では、入力画像データをマクロブロックと呼ばれる基本処理単位に分割し、これを単位として符号化・復号処理が行われる。符号化処理では、入力画像に対して直交変換、量子化などで画面内の冗長性を取り除くフレーム内予測と、過去の複数のフレームから動き補償した予測残差を抽出することでフレーム間の冗長性を取り除くフレーム間予測とが行われ、それぞれ算出された値をエントロピー符号化する。また、復号処理では、その逆動作が行われる。
【0003】
また、MPEGやH.264などでは、フレーム単位で符号化するモードとフィールド単位で符号化するモードとを適応的に選択可能になっている。これに加えて、上下に隣接する2つのマクロブロック(動きベクトル検出単位)(以下、MBペアという)単位で、フレーム間予測、及びフィールド間予測とを切り替えて用いることも可能となっており、このモードはMBAFF(Macro Block Adaptive Field/Frame)と呼ばれている。これらの3つのモードは符号化タイプ(Coding Type)としてピクチャ単位に設定でき、以下では各符号化タイプを「フレーム」「フィールド」「MBAFF」と表すことにする。また、MBAFF以外の2つのモードを「非MBAFF」とも表すことにする。
【0004】
図56は、符号化タイプ別のマクロブロックの処理順について説明するための図である。
この図56の上側では、画像上での16画素×16画素のマクロブロックの処理順を示している。符号化タイプがフレームのときは、同図左上側に示すように、フレーム内の16画素×16画素のマクロブロックが水平方向の並列順に処理されるので、それらの各マクロブロック内では、同図左下側に示すように、奇数ラインのデータと偶数ラインのデータとが交互に処理されることになる。また、符号化タイプがフィールドのときは、同図中央上側に示すように、トップ・フィールドのデータとボトム・フィールドのデータとが存在する。このため、同図中央下側に示すように、まずトップ・フィールドに対応する奇数ラインが順に処理された後、次のフィールド同期期間においてボトム・フィールドに対応する偶数マクロブロックラインが処理されることになる。
【0005】
符号化タイプがMBAFFのときは、同図右上側に示すように、フレーム内のデータはマクロブロック・ペア単位で処理される。ただし、フレーム間予測を適用したマクロブロック・ペア(以下、フレーム・ペア(Frame Pair)という)とフィールド間予測を適用したマクロブロック・ペア(以下、フィールド・ペア(Field Pair)という)とでは処理順が異なり、同図右下側に示すように、フレーム・ペアでは奇数ラインと偶数ラインとが交互に処理される。一方、フィールド・ペアでは、2つのマクロブロックがそれぞれトップ・フィールド、ボトム・フィールドに対応するデータに対応しており、奇数ラインが処理された後、続いて偶数ラインが処理されることになる。
【0006】
また、輪郭を多く含むマクロブロックなどでは、予測精度を向上させるために、マクロブロックをより小さな領域に分割し、分割したブロックを動きベクトルの検出単位として動き予測処理を行うことがある。基本的なマクロブロックのブロックサイズは16画素×16画素であるが、たとえばH.264では、必要に応じて最小で4画素×4画素サイズのブロックを用いることができる。
【0007】
ところで、アルゴリズム処理の大部分は、フレーム間予測のための動きベクトル処理で占められており、その処理の効率化と高速化とが求められてきた。このため、たとえば、参照画像メモリの容量を減らすため、次のフレームで動きベクトルを用いてインター符号化することが決定されたマクロブロック位置に対する参照画像マクロブロックのみ、参照画像メモリに格納する動画符号化方法が提案されている(たとえば、特許文献1参照)。
【0008】
また、画像符号化装置では、マクロブロック単位で検出された動きベクトル(以下、MV(Motion Vector)という)と、このマクロブロックの周辺領域のMVを予測値とする動きベクトル予測値(以下、MVP(Motion Vector Predictor)という)との予測差分値(以下、MVD(Motion Vector Difference)という。)を符号化対象とし、マクロブロック情報とともに符号化して画像復号化装置へ送る。画像復号化装置では、符号化されたMVDとマクロブロック情報とを復号し、MVPとMVDとからMVを生成して元の画像を復元する。このとき、MVPは、既に復元された周辺領域のMVを参照して生成される。なお、画像復号化装置は、予め参照用としてマクロブロックに応じたMV格納領域が用意されており、既に復号された周辺領域、すなわち、対象マクロブロック、及び対象マクロブロックに隣接する隣接マクロブロックのMVが格納されているメモリを有し、復元に必要な情報は、このメモリから読み出される。
【特許文献1】特開2004−266731号公報
【発明の開示】
【発明が解決しようとする課題】
【0009】
従来のMBAFFにおいては、MVPを得るために、書き込み側または読み出し側にて対象マクロブロック・ペアと隣接マクロブロック・ペアとの整合を取っていた。すなわち、たとえば対象マクロブロック・ペアがフレーム・ペアである場合は、隣接マクロブロック・ペアもフィールド・ペアからフレーム・ペアに置き換えを行い、メモリへの格納処理を行っていた。
【0010】
しかしながら、このような置き換えには、処理コストがかかり、処理の効率を悪化させる要因となっていた。
本発明はこのような点に鑑みてなされたものであり、画像処理を高速化するフレーム間予測処理装置を提供することにある。さらに、このフレーム間予測処理装置を具備する画像符号化装置と画像復号化装置を提供することを目的とする。
【課題を解決するための手段】
【0011】
本発明では、上記課題を解決するために、図1に示すようなフレーム間予測処理装置が提供される。本発明に係るフレーム間予測処理装置1は、動画像を所定の領域に分割した動きベクトル検出単位(マクロブロック)を用いてフレーム間予測処理を行う装置である。
【0012】
フレーム間予測処理装置1は、以下の機能を有する。
アドレス通知部2が、処理対象の画像がフレームのみまたはフィールドのみで構成されている非MBAFFか、動きベクトル検出単位・ペア毎にフレーム予測/フィールド予測を選択的に適用可能なMBAFFかを識別するMBAFF識別タイプと、画像における隣接する現処理対象動きベクトル検出単位・ペア毎に、現処理対象動きベクトル検出単位・ペアがフレームで構成されているかフィールドで構成されているかを識別するコーディングタイプとに基づいて、処理対象の画像がMBAFFであるとき、現処理対象動きベクトル検出単位・ペアの境界の外部に存在する領域を参照して動き補償をする場合、現処理対象動きベクトル検出単位・ペアのコーディングタイプと領域の参照先のコーディングタイプとに応じて領域の参照先の動きベクトルが格納されているメモリのアドレスを通知する。
【0013】
予測値算出部3が、通知されたアドレスに基づいて、メモリの参照先の動きベクトルを読み出し、現処理対象動きベクトル検出単位・ペアの各現処理対象動きベクトル検出単位の動きベクトル予測値を算出する。
【0014】
このようなフレーム間予測処理装置1によれば、アドレス通知部2により、MBAFF識別タイプとコーディングタイプとに基づいて、処理対象の画像がMBAFFであるとき、現処理対象動きベクトル検出単位・ペアの境界の外部に存在する領域を参照して動き補償をする場合、現処理対象動きベクトル検出単位・ペアのコーディングタイプと領域の参照先のコーディングタイプとに応じて領域の参照先の動きベクトルが格納されているメモリのアドレスが通知される。また、予測値算出部3により、通知されたアドレスに基づいて、メモリの参照先の動きベクトルが読み出され、現処理対象動きベクトル検出単位・ペアの各現処理対象動きベクトル検出単位の動きベクトル予測値が算出される。
【0015】
また、本発明では、上記課題を解決するために、基本処理単位の動きベクトル検出単位毎に、入力画像について所定の参照画像からの動き補償を行って生成した予測誤差を圧縮符号化する画像符号化装置において、処理対象の画像がフレームのみまたはフィールドのみで構成されている非MBAFF(Macro Block Adaptive Field/Frame)か、動きベクトル検出単位・ペア毎にフレーム予測/フィールド予測を選択的に適用可能なMBAFFかを識別するMBAFF識別タイプと、前記画像における隣接する現処理対象動きベクトル検出単位・ペア毎に、前記現処理対象動きベクトル検出単位・ペアがフレームで構成されているかフィールドで構成されているかを識別するコーディングタイプとに基づいて、前記処理対象の画像が前記MBAFFであるとき、前記現処理対象動きベクトル検出単位・ペアの境界の外部に存在する領域を参照して動き補償をする場合、前記現処理対象動きベクトル検出単位・ペアの前記コーディングタイプと前記領域の前記参照先の前記コーディングタイプとに応じて前記領域の前記参照先の動きベクトルが格納されているメモリのアドレスを通知するアドレス通知部と、通知された前記アドレスに基づいて、前記メモリの前記参照先の前記動きベクトルを読み出し、前記現処理対象動きベクトル検出単位・ペアの各現処理対象動きベクトル検出単位の動きベクトル予測値を算出し、算出した前記各現処理対象動きベクトル検出単位の前記動きベクトル予測値と、前記各現処理対象動きベクトル検出単位について検出された前記動きベクトルとの予測差分値を算出して符号化対象とするフレーム間予測処理部と、を有することを特徴とする画像符号化装置が提供される。
【0016】
このような画像符号化装置によれば、MBAFFであり、かつ、現処理対象マクロブロック・ペアの境界の外部に存在する領域を参照して動き補償をする場合、アドレス通知部により、現処理対象マクロブロック・ペアのコーディングタイプと領域の参照先のコーディングタイプとに応じて領域の参照先の動きベクトルが格納されているメモリのアドレスが通知される。そして、フレーム間予測処理部により、通知されたアドレスに基づいて、メモリの参照先の動きベクトルが読み出され、現処理対象マクロブロック・ペアの各現処理対象マクロブロックの動きベクトル予測値が算出され、算出した各現処理対象マクロブロックの動きベクトル予測値と、各現処理対象マクロブロックについて検出された動きベクトルとの予測差分値が算出される。算出した予測差分値は、符号化対象として、以降の処理において符号化される。
【0017】
また、本発明では、上記課題を解決するために、基本処理単位の動きベクトル検出単位ごとに、入力画像について所定の参照画像からの動き補償を行って生成した予測誤差を圧縮符号化した画像符号化信号を入力し、元の動画像を復元する画像復号化装置において、処理対象の画像がフレームのみまたはフィールドのみで構成されている非MBAFF(Macro Block Adaptive Field/Frame)か、動きベクトル検出単位・ペア毎にフレーム予測/フィールド予測を選択的に適用可能なMBAFFかを識別するMBAFF識別タイプと、前記画像における隣接する現処理対象動きベクトル検出単位・ペア毎に、前記現処理対象動きベクトル検出単位・ペアがフレームで構成されているかフィールドで構成されているかを識別するコーディングタイプとに基づいて、前記処理対象の画像が前記MBAFFであるとき、前記現処理対象動きベクトル検出単位・ペアの境界の外部に存在する領域を参照して動き補償をする場合、前記現処理対象動きベクトル検出単位・ペアの前記コーディングタイプと前記領域の前記参照先の前記コーディングタイプとに応じて前記領域の前記参照先の動きベクトルが格納されているメモリのアドレスを通知するアドレス通知部と、通知された前記アドレスに基づいて、前記メモリの前記参照先の前記動きベクトルを読み出し、前記現処理対象動きベクトル検出単位・ペアの各現処理対象動きベクトル検出単位の動きベクトル予測値を算出し、算出した前記各現処理対象動きベクトル検出単位の前記動きベクトル予測値と復号化された予測差分値とを用いて前記各現処理対象動きベクトル検出単位の前記動きベクトルを復号化するフレーム間予測部と、を有することを特徴とする画像復号化装置が提供される。
【0018】
このような画像復号化装置によれば、MBAFFであり、かつ、現処理対象マクロブロック・ペアの境界の外部に存在する領域を参照して動き補償をする場合、アドレス通知部により、現処理対象マクロブロック・ペアのコーディングタイプと領域の参照先のコーディングタイプとに応じて領域の参照先の動きベクトルが格納されているメモリのアドレスが通知される。そして、フレーム間予測処理部により、通知されたアドレスに基づいて、メモリの参照先の動きベクトルが読み出され、現処理対象マクロブロック・ペアの各現処理対象マクロブロックの動きベクトル予測値が算出される。そして、算出した各現処理対象マクロブロックの動きベクトル予測値と、予測差分値とから動きベクトルが生成される。
【発明の効果】
【0019】
本発明では、処理対象の画像がMBAFFであるとき、アドレス通知部が、現処理対象マクロブロック・ペアの境界の外部に存在する領域を参照して動き補償をする場合、現処理対象マクロブロック・ペアのコーディングタイプと領域の参照先のコーディングタイプとに応じて領域の参照先の動きベクトルが格納されているメモリのアドレスを通知するようにしたので、境界の外に存在する領域の探索を、非MBAFFと同じ時間で行うことができる。これにより、処理時間の短縮を図ることができる。
【0020】
特に、参照画像記憶部、アドレス算出部、参照画像格納部をさらに設けた場合、フレーム間予測処理において参照される動きベクトルデータが格納されているアドレスを自動的に算出し、データを読み出すことができる。このため、マクロブロックのブロックサイズによらずどこからでも読み出すことができるように、最も小さい分割単位に合わせてマクロブロックに対応する全領域に動きベクトルデータを展開する必要がなくなる。この結果、全領域に動きベクトルデータを展開するために要していた処理時間を省くことができ、全体の処理時間を短くすることができる。
【発明を実施するための最良の形態】
【0021】
以下、本発明の実施の形態を、図面を参照して説明する。まず、本発明の概要について説明し、その後、実施の形態の具体的な内容を説明する。なお、以下の説明では、画素サイズを省略し、たとえば、16×16画素サイズは、16×16と表記する。また、マクロブロックと同様に、所定の画素サイズのサブマクロブロックを「サブMB(画素サイズ)」と表記する。
【0022】
図1は、本発明の概要を示す図である。図1に示すフレーム間予測処理装置1は、画像を所定のブロックサイズのマクロブロックに分割し、順次画像処理を行う画像符号化装置、及び画像復号化装置に適用される。ブロックサイズは、画像の変化や形状の細かさなど、必要に応じて、複数用意されたブロックサイズから任意に選択することができる。ブロックサイズの決定処理については公知であるので、ここでは言及しない。なお、以下の説明では、特に、16×16のマクロブロックを基本マクロブロックと呼ぶこととする。
【0023】
フレーム間予測処理装置1は、以下の機能を有する。
アドレス通知部2は、予測値算出部3からの動きベクトル検出単位指定により動作する。
【0024】
このアドレス通知部2は、処理対象の画像がフレームのみまたはフィールドのみで構成されている非MBAFFか、動きベクトル検出単位・ペア毎にフレーム予測/フィールド予測を選択的に適用可能なMBAFFかを識別するMBAFF識別タイプと、画像における隣接する現処理対象動きベクトル検出単位・ペア毎に、現処理対象動きベクトル検出単位・ペアがフレームで構成されているかフィールドで構成されているかを識別するコーディングタイプとに基づいて、処理対象の画像がMBAFFであるとき、現処理対象動きベクトル検出単位・ペアの境界の外部に存在する領域を参照して動き補償をする場合、現処理対象動きベクトル検出単位・ペアのコーディングタイプと領域の参照先のコーディングタイプとに応じて領域の参照先の動きベクトルが格納されているメモリのアドレスを通知する。詳細は後述するが、参照先を探し出すためにたとえばテーブルなどを予め用意しておき、このテーブルに基づいてアドレスを導出するようにしてもよい。
【0025】
予測値算出部3が、通知されたアドレスに基づいて、メモリの参照先の動きベクトルを読み出し、現処理対象動きベクトル検出単位・ペアの各現処理対象動きベクトル検出単位の動きベクトル予測値を算出する。
【0026】
このようなフレーム間予測処理装置によれば、アドレス通知部2により、MBAFF識別タイプとコーディングタイプとに基づいて、処理対象の画像がMBAFFであるとき、現処理対象動きベクトル検出単位・ペアの境界の外部に存在する領域を参照して動き補償をする場合、現処理対象動きベクトル検出単位・ペアのコーディングタイプと領域の参照先のコーディングタイプとに応じて領域の参照先の動きベクトルが格納されているメモリのアドレスが通知される。また、予測値算出部3により、通知されたアドレスに基づいて、メモリの参照先の動きベクトルが読み出され、現処理対象動きベクトル検出単位・ペアの各現処理対象動きベクトル検出単位の動きベクトル予測値が算出される。
【0027】
以下、実施の形態を、H.264に基づく符号化処理を行う画像符号化装置と復号化処理を行う画像復号化装置とに適用した場合を例に図面を参照して詳細に説明する。
H.264では、16×16の基本マクロブロックに加え、16×8、8×16、及び8×8の4種類のマクロブロックが選択可能となっている。さらに、8×8サイズのマクロブロックについては、8×8、8×4、4×8、4×4の4種類のサブブロック分割を指定することもできる。基本的なアルゴリズムは、符号化処理では、フレームを基本処理単位のマクロブロックに分割し、マクロブロックごとに、フレーム内の空間的冗長性を利用したフレーム内予測と、フレーム間の時間的冗長性を利用したフレーム間予測とを適宜切り替えて、入力画像の符号化を行う。復号化処理では、その逆動作が行われる。なお、H.264では、両方向の参照フレームを用いることができるが、以下では、片方向の場合で説明する。両方向の場合には、両方向のMVを格納するための領域が増えるが、処理は片方向と同様に行われる。
【0028】
以下、説明を分かり易くするため、第1の実施の形態にて非MBAFFについて説明し、第2の実施の形態にてMBAFFについて説明する。
<第1の実施の形態>
図2は、実施の形態の画像符号化装置の構成を示したブロック図である。
【0029】
画像符号化装置100は、MB(マクロブロック)分割部101、動きベクトル検出部102、過去のフレームバッファ103、フレーム間予測部104、フレーム内予測部105、現フレームバッファ106、予測モード選択部107、減算器108、直交変換量子化部109、エントロピー符号化部110、逆量子化逆直交変換部111、加算器112、デブロッキングフィルタ113、及びフレームバッファ管理部114を有している。
【0030】
このような画像符号化装置100では、入力画像は、MB分割部101によって所定の大きさのマクロブロックに分割される。動きベクトル検出部102は、入力したMB単位の画像信号と、過去のフレームバッファ103に格納される参照画像とを用いて、対象マクロブロックのMVを検出する。MVは、通常、周辺領域との相関が高いので、フレーム間予測部104では、周辺領域のMVを予測値として、周辺のMVに基づいてMVPを算出し、MVとの間のMVDを算出する。フレーム内予測部105は、現フレームバッファ106のフレーム内予測を行う。予測モード選択部107は、フレーム間予測部104とフレーム内予測部105の予測誤差を比較するなどして、当該マクロブロックを最も効率よく符号化することができる符号化モードを選択し、符号化モード情報を生成する。この符号化モード情報も、符号化対象情報として、エントロピー符号化部110へ受け渡される。符号化モード情報には、マクロブロックを分割した分割マクロブロックのサイズと、分割マクロブロックをさらに分割したサブマクロブロックのサイズが含まれる。
【0031】
予測モード選択部107としてフレーム内予測部105が選択される場合は、MB分割部101を経由したマクロブロックの入力画像がそのまま直交変換量子化部109へ出力され、直交変換と量子化が施される。こうして生成された直交変数係数データは、エントロピー符号化部110へ受け渡される。また、この直交変換係数データは、逆量子化逆直交変換部111によってデコードされ、現フレームバッファ106に書き込まれる。
【0032】
予測モード選択部107としてフレーム間予測部104が選択される場合は、フレーム間予測部104が算出したMVDが符号化対象として選択され、エントロピー符号化部110へ受け渡される。また、予測モード選択部107経由でMVPに基づく予測画像が減算器108へ出力される。減算器108では、マクロブック単位の入力画像と、予測画像との差分が算出され、直交変換量子化部109へ出力される。この出力は、逆量子化逆直交変換部111によってデコードされ、加算器112によって予測モード選択部107からの予測画像を加算した後、現フレームバッファ106に書き込まれる。
【0033】
エントロピー符号化部110は、符号化対象データのエントロピー符号化を行い、画像圧縮符号化信号として出力する。また、現フレームバッファ106に格納される参照画像は、デブロッキングフィルタ113によりマクロブロック境界が平滑化され、フレームバッファ管理部114を経由して、過去のフレームバッファ103に格納される。
【0034】
次に、画像復号化装置について説明する。
図3は、実施の形態の画像復号化装置の構成を示したブロック図である。
画像復号化装置200は、エントロピー復号化部201、逆量子化逆直交変換部202、加算器203、現フレームバッファ204、フレーム内予測部205、予測モード選択部206、デブロッキングフィルタ207、フレームバッファ管理部208、過去のフレームバッファ209、及びフレーム間予測部210、を具備し、図2に示した画像符号化装置100が生成した画像圧縮符号化信号を復号する。
【0035】
画像圧縮符号化信号は、エントロピー復号化部201によってエントロピー復号が施された後、逆量子化逆直交変換部202によって逆量子化と逆直交変換が施される。フレーム間予測部104によって符号化されている場合は、MVDの形式で符号化されている動きベクトルデータを復号する。予測モード選択部206は、逆量子化逆直交変換部202によって復元された符号化モード情報に基づき、フレーム内予測部205またはフレーム間予測部210を選択する。
【0036】
予測モード選択部206としてフレーム内予測部205が選択される場合は、逆量子化逆直交変換部202によって復元された画像が現フレームバッファ204に書き込まれる。
【0037】
予測モード選択部206としてフレーム間予測部210が選択される場合は、MVDの形式で復号された動きベクトルを、各動きベクトル適用単位領域、すなわち、分割マクロブロックの領域ごとに、各動きベクトル適用単位領域で使用された動きベクトルデータ(MV)へ復号する。復号されたMVに基づいて予測画像が復元され、予測モード選択部206経由で加算器203に入力する。そして、逆量子化逆直交変換部202により復号された予測誤差と加算されることによって、画像が復号され、現フレームバッファ204に格納される。
【0038】
現フレームバッファ204に格納された画像データは、デブロッキングフィルタ207、フレームバッファ管理部208を経由して、過去のフレームバッファ209に格納される。
【0039】
次に、上記の画像復号化装置のフレーム間予測部210における動きベクトルの復号について説明する。
図4は、H.264におけるマクロブロックのブロックサイズを示した図である。なお、以下では、図4中紙面上側を「上」、下側を「下」、左側を「左」、右側を「右」という。また、図4中、点線の矢印は処理の順番を示している。
【0040】
マクロブロック11は、基本の16×16画素サイズのマクロブロックである。以下、所定の画素サイズのマクロブロックを「MB(画素サイズ)」と表記する。たとえば、マクロブロック11は、MB(16×16)11と表す。
【0041】
MB(16×8)12は、MB(16×16)11を横方向に2分割した形状の16×8画素サイズ、MB(8×16)13は、MB(16×16)11を縦方向に2分割した形状の8×16画素サイズ、MB(8×8)14は、MB(16×16)11を4等分した形状の8×8画素サイズのマクロブロックである。なお、マクロブロック間の処理順は図に示したように、MB(16×8)12は上から下、MB(8×16)13は左から右、MB(8×8)14は、左上、右上、左下、右下の順に処理を行う。
【0042】
さらに、H.264では、MB(8×8)14のマクロブロックをさらに分割したサブマクロブロック分割を指定することもできる。マクロブロックと同様に、所定の画素サイズのサブマクロブロックを「サブMB(画素サイズ)」と表記する。サブMB(8×4)15aは8×4画素サイズ、サブMB(4×8)15bは4×8画素サイズ、サブMB(4×4)15cは4×4画素サイズで構成される。サブマクロブロック内の処理順は、図に示したように、同一形状のマクロブロックと同じになる。
【0043】
図5は、本実施の形態の画像復号化装置のフレーム間予測における動きベクトル生成処理を示した機能ブロック図である。
フレーム間予測部210は、対象マクロブロックと隣接マクロブロックのMVを格納するメモリ211、MVP生成部212、アドレス変換部213、MV生成部214、隣接MB[A]格納部215、及び隣接MB[BCD]格納部216を具備し、対象マクロブロックのMVを生成する。以下、現処理対象のマクロブロック部分(Part)をCu(Current Part)とする。処理対象のCuの隣接マクロブロックは、Cuの左隣を隣接MB[A]、真上を隣接MB[B]、右上を隣接MB[C]、及び左上を隣接MB[D]とする。また、隣接MB[BCD]は、隣接MB[B]、隣接MB[C]、及び隣接MB[D]をまとめて示す場合の表記とする。
【0044】
メモリ211には、対象マクロブロックのMVと、対象マクロブロックのMVPの生成時に参照する隣接マクロブロックのMVが格納される。詳細は後述する。以下、MVが格納されるMV格納領域を代表MV格納領域、そのMVを代表MVと呼ぶこととする。
【0045】
MVP生成部212は、隣接マクロブロックを指定して、アドレス変換部213から、隣接マクロブロックの代表MVが格納される代表MV格納領域のメモリ211におけるアドレスを取得する。そして、代表MVを読み出し、代表MVからMVPを算出する。MVP算出には、種々の方法があるが、ここでは、隣接マクロブロックのMVの中間値をMVPとする。隣接MB[A]のMVをMVA、隣接MB[B]のMVをMVB、隣接MB[C]のMVをMVC、及び隣接MB[D]のMVをMVDとすると、CuのMVPは、
MVP=Median(MVA,MVB,MVC) ・・・(1)
と表すことができる。なお、画面端などでMVCが存在しない場合、MVDを使用する。
【0046】
中間値の生成式は、3値x,y,zを用いて、
Median(x,y,z)=x+y+z−Min(x,Min(y,z))
−Max(x,Max(y,z)) ・・・(2)
によって表すことができる。Min(x,y)は、小さい方の値をとることを表し、Max(x,y)は、大きい方の値をとることを表す。
【0047】
アドレス変換部213は、隣接マクロブロックのサイズ(MBサイズとサブMBサイズ)から、その代表MV格納領域のアドレスに変換する。
MV生成部214は、MVP生成部212によって算出されたMVPと復号されたMVDとからMVを復元する。MVは、
MV=MVP+MVD ・・・(3)
によって算出することができる。算出されたMVは、この対象マクロブロックに対応するメモリ211内の代表MV格納領域に書き込む。
【0048】
隣接MB[A]格納部215は、以降のマクロブロック処理で参照される隣接MB[A]に相当する対象マクロブロックのMVをメモリ211から読み出し、メモリ211に用意された隣接MB[A]格納領域に設定する。
【0049】
隣接MB[BCD]格納部216は、以降のマクロブロック処理で参照される隣接MB[B],MB[C],MB[D]に相当する対象マクロブロックのMVをメモリ211から読み出し、メモリ211に用意された隣接MB[BCD]格納領域に設定する。
【0050】
以下、このような構成のフレーム間予測部210の動作及びフレーム間予測方法について、処理対象の画像がフレーム構成である場合を例にとって説明する。
<フレーム構成>
フレーム構成と、メモリ211内のMV格納領域について説明する。
【0051】
図6は、本発明の実施の形態のMV格納領域とフレーム構成との関係を示した図である。
フレーム300は、基本マクロブロックであるMB(16×16)301に分割されてフレーム間予測処理が行われる。マクロブロックのブロックサイズは、必要に応じて可変に設定することもできる。
【0052】
メモリ211は、Cu310内のMVを格納するブロック内データ格納領域と、隣接MB[A]320のMVと、隣接MB[BCD]331,332のMVとを格納する隣接ブロックデータ格納領域とを有する。
【0053】
Cu310内については、マクロブロックの最小単位であるサブMB(4×4)によって、Cu310が占める領域を16に分割し、分割されたそれぞれのブロックに対応付けて、16のMV格納領域が確保される。
【0054】
隣接MB[A]320については、Cu310の左に隣接する4段のサブMB(4×4)に対応する4つのMV格納領域が確保される。隣接MB[A]格納部215は、Cu310のMV生成が終了すると、Cu310に関するMVが格納されるMV格納領域から、最も右の4段のサブMB(4×4)に対応するMVを読み出し、そのデータを隣接MB[A]320に格納する。
【0055】
隣接MB[BCD]331,332については、少なくとも、隣接MB[B]、隣接MB[C]、及び隣接MB[D]を含む、Cu310が属するフレーム行の上側に隣接するサブMB(4×4)に対応するMV格納領域と、Cu310が属するフレーム行の最下段のサブMB(4×4)に対応するMV格納領域が確保される。隣接MB[BCD]格納部216では、Cu310のMV生成処理が終了すると、Cu310に関するMVが格納されるMV格納領域の最下段のサブMB(4×4)を隣接MB[BCD]332に格納する。したがって、処理対象のフレーム行が下に移動した場合には、隣接MB[BCD]332に格納されるMVは、処理対象のCu310の上側の隣接する隣接マクロブロックのデータになる。
【0056】
上記の構成のメモリ211のMV格納領域に格納されるMVは、Cuが移動するごとに順次更新されていく。たとえば、処理対象がCu310の右隣のマクロブロック311に移ると、Cu310のMVを格納する領域は、新たにCuとなるマクロブロック311のMVを格納する領域になる。また、隣接MB[A]320には、Cu310の最も右側のブロックのMVが格納される。隣接MB[BCD]331,332も同様に書き換わる。
【0057】
ここで、説明のため、基本マクロブロックを最小単位の4×4で分割した領域に対し、便宜的に番号を割り振る。図7は、16×16のマクロブロックと、ブロック番号の関係を示した図である。
【0058】
図に示したように、基本マクロブロックであるMB(16×16)340を、最小単位の4×4で分割した16ブロックについて、MB(8×8)の4つの領域に分割し、左上、右上、左下、右下と順に番号を割り振る。さらにMB(8×8)を4つの領域に分割したサブMB(4×4)のブロックについても左上、右上、左下、右下の順に番号を割り振る。具体的には、左上のMB(8×8)のサブMB(4×4)について、左上、右上、左下、右下の順にb0、b1、b2、b3を割り振る。次に、右上のMB(8×8)のサブMB(4×4)について、左上、右上、左下、右下の順にb4からb7を割り振る。同様に、左下のMB(8×8)のサブMB(4×4)にb8からb11を、右下のMB(8×8)のサブMB(4×4)にb12からb15を割り振る。
【0059】
次に、本発明の実施の形態のMV生成処理と、メモリ211へのMV格納処理について説明する。MVP生成部212は、参照する隣接マクロブロックのMVが格納されるメモリ211のアドレスをアドレス変換部213より取得する。そして、取得したアドレスからMVを読み出し、式(1)によりMVPを算出する。続いて、MV生成部214が、式(3)により、算出されたMVPと復号されたMVDからMVを生成し、メモリ211の代表MV格納領域に書き込む。ここでは、処理対象のマクロブロックの左上の4×4のマクロブロックを代表MV格納領域とする。
【0060】
図8は、本発明の実施の形態のMB(16×16)の場合のMV生成処理と格納処理を示した図である。(A)は、代表MVの生成、(B)は、MVの書き込みシーケンスを示している。
【0061】
MB(16×16)のCu400は、Cu400に隣接する隣接MB[A]のb5、隣接MB[B]のb10、隣接MB[C]のb10、及び隣接MB[D]のb15のMVを読み出し、式(1)に基づいてMVPを算出する。そして、MVPと、復号されたMVDを用いて、式(3)によりMVを生成する。これをMV0とする。MV0は、Cu400の左上のb0(401)に格納される。
【0062】
格納処理を(B)のシーケンス図で見ると、EN信号により、MV0は、WAD=0のb0に書き込まれる。このMVが以降のMVP生成処理で参照される場合には、アドレス変換部213が格納アドレスを自動的に算出するので、メモリ211にMVを展開する必要はなく、書き込みは1ブロック分で終了する。したがって、16ブロック分の書き込みを行っていた従来と比較し、処理時間を大幅に短縮することができる。
【0063】
図9は、本発明の実施の形態のMB(16×8)の場合のMV生成処理と格納処理を示した図である。(A)は、代表MVの生成、(B)は、MVの書き込みシーケンスを示している。
【0064】
MB(16×8)の上側のCu0(411)は、Cu0(411)に隣接する隣接MB[A]のb5、隣接MB[B]のb10、隣接MB[C]のb10、及び隣接MB[D]のb15のMVを読み出してMVPを算出し、MV0を生成する。MV0は、Cu0(411)の左上のb0(412)に格納される。続いて、下側のCu1(413)に対し、Cu1(413)に隣接する隣接MB[A]のb13、Cu0(411)のb2、及び隣接MB[D]のb15のMVを読み出してMVPを算出し、MV1を生成する。なお、図のXはMVが存在しない。MV1は、Cu1(413)の左上のb8(414)に格納される。
【0065】
格納処理を(B)のシーケンス図で見ると、EN信号により、MV0はWAD=0のb0に書き込まれ、MV1はWAD=8のb8に書き込まれる。書き込みは2ブロック分で終了する。
【0066】
図10は、本発明の実施の形態のMB(8×16)の場合のMV生成処理と格納処理を示した図である。(A)は、代表MVの生成、(B)は、MVの書き込みシーケンスを示している。
【0067】
MB(8×16)の左側のCu0(421)は、Cu0(421)に隣接する隣接MB[A]のb5、隣接MB[B]のb10、隣接MB[C]のb14、及び隣接MB[D]のb15のMVを読み出してMVPを算出し、MV0を生成する。MV0は、Cu0(421)の左上のb0(422)に格納される。続いて、右側のCu1(423)に対し、Cu0(421)のb1、Cu1(423)の隣接MB[B]のb14、隣接MB[C]のb10、及び隣接MB[D]のb11のMVを読み出してMVPを算出し、MV1を生成する。MV1は、Cu1(423)の左上のb4(424)に格納される。
【0068】
格納処理を(B)のシーケンス図で見ると、EN信号により、MV0はWAD=0のb0に書き込まれ、MV1はWAD=4のb4に書き込まれる。書き込みは2ブロック分で終了する。
【0069】
図11は、本発明の実施の形態のMB(8×8)の場合のMV生成処理と格納処理を示した図である。(A)は、代表MVの生成、(B)は、MVの書き込みシーケンスを示している。
【0070】
MB(8×8)の左上のCu0(431)は、Cu0(431)に隣接する隣接MB[A]のb5、隣接MB[B]のb10、隣接MB[C]のb14、及び隣接MB[D]のb15のMVを読み出してMVPを算出し、MV0を生成する。MV0は、Cu0(431)の左上のb0(432)に格納される。右上のCu1(433)に対し、Cu0(431)のb1、Cu1(423)の隣接MB[B]のb14、隣接MB[C]のb10、及び隣接MB[D]のb11のMVを読み出してMVPを算出し、MV1を生成する。MV1は、Cu1(433)の左上のb4(434)に格納される。左下のCu2(435)に対し、Cu2(426)に隣接する隣接MB[A]のb13、Cu0(431)のb2、Cu1(432)のb6、及び隣接MB[B]のb7のMVを読み出してMVPを算出し、MV2を生成する。MV2は、Cu2(435)の左上のb8(436)に格納される。右下のCu3(437)に対し、Cu2(435)のb9、Cu1(433)のb6、及びCu0(431)のMVを読み出してMVPを算出し、MV3を生成する。MV3は、Cu3(437)の左上のb12(438)に格納される。
【0071】
格納処理を(B)のシーケンス図で見ると、EN信号により、MV0はWAD=0のb0、MV1はWAD=4のb4、MV2はWAD=8のb8、及びMV3はWAD=12のb12に書き込まれる。書き込みは4ブロック分で終了する。
【0072】
図12及び図13は、本発明の実施の形態のサブマクロブロック分割の場合のMV生成処理と格納処理を示した図である。図12の(A)は、サブマクロブロック分割、(B−1)は、サブマクロブロック0から2までの代表MVの生成処理を示している。図13の(B−2)は、サブマクロブロック3の代表MVの生成、(C)は、MVの書き込みシーケンスを示している。
【0073】
図12の(A)は、MB(8×8)をさらに分割したサブマクロブロック分割の一例を示した図である。左上のMB(8×8)は、8×8のSB0(441)の1ブロックで構成される。右上のMB(8×8)は、8×4のSB1−0(451)と、SB1−1(453)の2ブロックで構成される。左下のMB(8×8)は、4×8のSB2−0(461)と、SB2−1(463)の2ブロックで構成される。右下のMB(8×8)は、4×4のSB3−0(471)、SB3−1(472)、SB3−2(473)、及びSB3−3(474)の4つのブロックで構成される。
【0074】
各サブマクロブロックのMV生成処理について説明する。
SB0(441)は、隣接マクロブロックから読み出したMVに基づいてMV0を生成し、SB0(441)の左上のb0(442)に格納する。SB1−0(451)は、隣接マクロブロックから読み出したMVに基づいてMV1を生成し、SB1−0の左上のb4(452)に格納する。SB1−1(453)も同様にしてMV2を生成し、SB1−1(453)の左上のb6(454)に格納する。SB2−0(461)について生成されるMV3は、b8(462)に格納され、SB2−1(463)について生成されるMV4は、b9(464)に格納される。
【0075】
図13を用いて説明する。
最小単位のサブマクロブロックで構成されるSB3−0(471)、SB3−1(472)、SB3−2(473)、及びSB3−3(474)について生成されたMVは、それぞれのサブマクロブロック(b12,b13,b14,b15)に格納される。
【0076】
格納処理を(C)のシーケンス図で見ると、EN信号により、MV0はWAD=0のb0、MV1はWAD=4のb4、MV2はWAD=6のb6、MV3はWAD=8のb8、MV4はWAD=9のb9、MV5はWAD=12のb12、MV6はWAD=13のb13、MV7はWAD=14のb14、及びMV8はWAD=15のb15に書き込まれる。書き込みは9ブロック分で終了する。
【0077】
以上のように、本発明の実施の形態のMV生成では、生成されたMVは、MVが生成されたマクロブロック範囲を代表するMV格納領域(ここでは、左上のブロックに相当するMV格納領域)にのみ書き込みが行われる。図から明らかなように、MB(8×8)までは、最大4ブロックの書き込みで処理が終了する。16ブロックの書き込みが行われるのは、すべてのブロックが4×4の場合のみであり、多くの場合、より少ない書き込みブロック数で処理が終了する。これにより、従来のMV処理では、16ブロックに対応する全てのMV格納領域に対して行われていた格納処理時間を大幅に短縮することができる。
【0078】
以上の処理手順が実行されることにより、図6に示したように、現在処理中のCu310と、その隣接MB[A]320、及び隣接MB[BCD]331,332の動きベクトルデータが格納される。
【0079】
次に、アドレス変換部213によるアドレス変換処理について説明する。
アドレス変換部213では、MVP生成部212が指示した隣接マクロブロックの代表MV格納領域を指示するアドレスに変換し、MVP生成部212へアドレスを通知する。MVP生成部212からは、参照する隣接マクロブロック(4×4)を指示する情報が入力される。たとえば、16×16の基本マクロブロックは、識別番号が付与されており、その識別番号と図7に示したb0からb15のブロック番号などから隣接マクロブロックを指示する指示情報を生成し、アドレス変換部213へ引き渡す。アドレス変換部213では、指定された隣接マクロブロックのMBサイズ及びサブMBサイズと、代表MV格納領域とを対応付けたアドレス変換テーブルを用意しておき、アドレス変換テーブルに基づいてアドレスを導出する。
【0080】
本発明の実施の形態では、図6に示したように、Cu310内の処理マクロブロックで参照するMVが、Cu310の外部のMVである場合には、隣接MB[A]320、及び隣接MB[BCD]331,332に対応付けられたMV格納領域からデータを読み出す必要がある。たとえ処理マクロブロックの形状が同じであっても、配置される場所に応じて参照するMVが外部であるか内部であるかは異なってしまう。そこで、最初に、参照されるMVが内部の場合について説明し、続いて、隣接MB[A]320、及び隣接MB[BCD]331,332に参照されるMVが格納されている場合について説明する。
【0081】
まず、内部のMVを参照する場合について説明する。以下の説明では、実際には、外部のMVを参照する場合であっても、内部と同などに処理できるとする。すなわち、すべてのマクロブロックのMVが、図6に示したCu310と同様に格納されているとして説明する。
【0082】
図14及び図15は、本発明の実施の形態のアドレス変換テーブルの機能を示した図である。図14は、隣接マクロブロックのMBサイズが16×16と16×8の場合である。図15は、隣接マクロブロックのMBサイズが8×16と8×8の場合と、サブMBサイズが8×4、4×8、及び4×4の場合とを示している。
【0083】
図14に示した隣接マクロブロックが、MB(16×16)の場合は、b0からb15が指定される可能性がある。これに対し、図8で説明したように、代表MVは、b0に対応するMV格納領域に格納されている。したがって、指示された隣接マクロブロックが16×16の場合は、このマクロブロックの代表MV格納領域であるb0に相当するMV格納領域を指示するアドレスに変換し、MVP生成部212へ通知する。なお、隣接マクロブロックは、既に処理が終了したマクロブロックであり、ブロックサイズなどは既知である。たとえば、この情報を保存しておけば、指定された隣接マクロブロックのサイズを知ることができる。
【0084】
同様に、隣接マクロブロックがMB(16×8)であって、MB(16×16)範囲の上側に位置する場合は、b0からb7が指定される可能性がある。この場合の代表MV格納領域は、図9に示したようにb0になる。したがって、指示された隣接マクロブロックが16×8で、b0からb7が指定された場合、代表MV格納領域であるb0に相当するMV格納領域を指示するアドレスに変換し、MVP生成部212へ通知する。
【0085】
なお、図示していないが、隣接マクロブロックが16×8で、b8からb15が指定された場合は、基本マクロブロック範囲で下側のMB(16×8)であるので、代表MV格納領域は、図9に示したように、b8になる。そこで、この場合は、b8に相当するMV格納領域を指示するアドレスに変換し、MVP生成部212へ通知する。
【0086】
図15で説明する。
図15に示した隣接マクロブロックがMB(8×16)であって、MB(16×16)範囲の左上に位置する場合は、b0,b1,b2,b3,b8,b9,b10,b11が指定される。図10に示したように、代表MV格納領域は、b0に相当するMV格納領域であるので、そこを指示するアドレスに変換し、MVP生成部212へ通知する。また、MB(16×8)の場合と同様に、隣接マクロブロックが8×16で、上記以外のb4,b5,b6,b7,b12,b13,b14,b15が指定された場合は、代表MV格納領域は、図10に示したように、b4に対応するMV格納領域になる。
【0087】
基本マクロブロック範囲で左上に位置するMB(8×8)の場合は、隣接マクロブロックとしてb0,b1,b2,b3が指定される。図11に示したように、代表MV格納領域は、b0に相当するMV格納領域であるので、そこを指示するアドレスに変換し、MVP生成部212へ通知する。また、他と同様に、隣接マクロブロックが8×16で、b4,b5,b6,b7が指定された場合の代表MV格納領域はb4、b8,b9,b10,b11が指定された場合の代表MV格納領域はb8、そしてb12,b13,b14,b15が指定された場合の代表MV格納領域はb12になる。それぞれの指定ブロックに対応するMV格納領域を指示するアドレスに変換し、MVP生成部212に通知する。
【0088】
以下、サブマクロブロック構成の場合について説明する。簡単のため、それぞれ左上のMB(8×8)に属する1つのサブマクロブロックを例にとり説明する。上記と同様に、他のサブマクロブロックについても、サイズと指定ブロックとにより、代表MV格納領域を一意に特定することができる。
【0089】
基本マクロブロック単位で左上に位置するMB(8×8)を横方向に2分割した上側のサブMB(8×4)の場合、隣接マクロブロックとしてb0とb1が指定される。したがって、MBサイズが8×8、サブMBサイズが8×4、そしてb0またはb1が指定された場合は、代表MV格納領域としてb0に対応するMV格納領域のアドレスを通知する。
【0090】
基本マクロブロック単位で左上に位置するMB(8×8)を縦方向に2分割した左側のサブMB(8×4)の場合、隣接マクロブロックとしてb0とb2が指定される。したがって、MBサイズが8×8、サブMBサイズが4×8、そしてb0またはb2が指定された場合は、代表MV格納領域としてb0に対応するMV格納領域のアドレスを通知する。
【0091】
基本マクロブロック単位で左上に位置するMB(8×8)を4分割した左上のサブMB(4×4)の場合、隣接マクロブロックとしてb0が指定される。したがって、MBサイズが8×8、サブMBサイズが4×4、そしてb0が指定された場合は、代表MV格納領域としてb0に対応するMV格納領域のアドレスを通知する。
【0092】
以上のように、代表MV格納領域は、隣接マクロブロックのMBサイズとサブMBサイズ、及び指定ブロック(b0〜b15)と、代表MV格納領域のアドレスとを対応付けた変換テーブルによって導出することができる。これにより、MVP生成部212によってMV生成部214が代表MV格納領域にのみに格納されたMVを読み出すことができる。
【0093】
なお、図14及び図15には、変換テーブル例を示さなかったが、上記のように隣接マクロブロックのMBサイズとサブMBサイズ、及び指定ブロック(b0〜b15)と、代表MV格納領域のアドレスとが対応付けられ、隣接マクロブロックのサイズとブロック指定をアドレスが導出できるものであれば、どのような形式であってもよい。
【0094】
以下、参照するMVがCu外にある場合について説明する。たとえば、上記の処理マクロブロックが16×16の場合、参照するMVは、すべて隣接MB[A]320と、隣接MB[BCD]331,332に対応するMV格納領域に格納されている。
【0095】
まず、隣接MB[A]及び隣接MB[BCD]について、どの領域が代表MV格納領域となるのかを説明する。
図16は、本発明の実施の形態における隣接マクロブロックMB[A]のMV格納処理を示した図である。
【0096】
Cu501は、隣接MB[A](A0,A1,A2,A3)を参照する現処理マクロブロックであり、マクロブロック502は、Cu501の前に処理対象であったマクロブロックである。隣接MB[A]格納部215は、マクロブロック502のMV生成処理によって生成された代表MVを読み出し、隣接MB[A](A0,A1,A2,A3)に格納する。このとき、水平方向に代表MVが複数存在する場合は、最も右に位置するマクロブロックに対し生成された代表MVを選択し、隣接MB[A]に格納する。たとえば、8×16のマクロブロックが左右に並ぶ場合、A0に対応するマクロブロックのb0とb4に対応するMV格納領域にそれぞれ代表MVが格納されている。この場合、b4に対応する代表MVが選択され、A0に格納される。
【0097】
図17は、本発明の実施の形態における隣接マクロブロックMB[BCD]のMV格納処理を示した図である。
Cu501は、隣接MB[BCD](N0,N1,N2,N3,N4,N5)を参照する現処理マクロブロックである。マクロブロック503,504,505は、既にMV生成処理が終了したマクロブロックである。隣接MB[BCD]格納部216は、たとえば、マクロブロック503のMV生成処理によって生成された代表MVを読み出し、隣接MB[BCD](N1,N2,N3,N4)に格納する。N0は、マクロブロック504のMV生成処理後に、N5は、マクロブロック505のMV生成処理後に、同様に代表MVが設定される。このとき、垂直方向に代表MVが複数存在する場合、最も下に位置するマクロブロックの代表MVを選択し、隣接MB[BCD]に格納する。たとえば、16×8のマクロブロックが上下に並ぶ場合、N1に対応するマクロブロックb0とb8に対応するMV格納領域に、それぞれの代表MVが格納されている。この場合、b8に対応する代表MVが選択され、N1に格納される。
【0098】
ブロックサイズごとに代表MVが格納されるアドレスが異なるので、以下、ブロックサイズごとのMV格納処理について説明する。
図18から図20は、本発明の実施の形態の隣接MBの代表MV格納領域を示している。
【0099】
図18(A)は、隣接MB(16×16)の代表MV格納領域を示している。
MV生成対象のマクロブロックが、MB(16×16)510の場合、代表MV0は、b0に格納される。隣接MB[A]格納部215では、b0に格納される代表MV0を読み出し、b0を水平移動した位置に対応するMB[A]のA0(511)に格納する。また、隣接MB[BCD]格納部216では、b0に格納される代表MV0を、b0を垂直移動した位置に対応するMB[BCD]のN1(512)に格納する。
【0100】
図18(B)は、隣接MB(16×8)の代表MV格納領域を示している。
MV生成対象のマクロブロックが、MB(16×8)520の場合、2つの代表MVが生成され、代表MV0はb0、代表MV8はb8に格納される。隣接MB[A]格納部215では、b0に格納される代表MV0を読み出し、b0を水平移動した位置に対応するMB[A]のA0(521)に格納するとともに、同様にして、MV8をA2(522)に格納する。また、隣接MB[BCD]格納部216では、2つの代表MVのうち、下に位置するb8に格納される代表MV8を、b0を垂直移動した位置に対応するMB[BCD]のN1(523)に格納する。
【0101】
図19(C)は、隣接MB(8×16)の代表MV格納領域を示している。
MV生成対象のマクロブロックが、MB(8×16)530の場合、2つの代表MVが生成され、代表MV0はb0、代表MV4はb4に格納される。隣接MB[A]格納部215では、b0とb4のうち、右側に格納されるb4の代表MV4を読み出し、b4を水平移動した位置に対応するMB[A]のA0(531)に格納する。また、隣接MB[BCD]格納部216では、b0に格納されるMV0を、b0を垂直移動した位置に対応するMB[BCD]のN1(532)に格納し、b4に格納されるMV4を、b4を垂直移動した位置に対応するMB[BCD]のN3(533)に格納する。
【0102】
図19(D)は、隣接MB(8×8)の代表MV格納領域を示している。
MV生成対象のマクロブロックが、MB(8×8)540の場合、4つの代表MVが生成され、代表MV0はb0、代表MV4はb4、代表MV8はb8、そして代表MV12はb12に格納される。隣接MB[A]格納部215では、b0とb4のうち、右側に位置するb4の代表MV4を読み出し、A0(541)に格納する。また、b8とb12のうち、右側に位置するb12の代表MV12を選択し、A2(542)に格納する。隣接MB[BCD]格納部216では、b0とb8のうち、下に位置するb8を選択し、その代表MV8を、MB[BCD]のN1(543)に格納する。また、b4とb12のうち、b12を選択し、MB[BCD]のN3(544)に格納する。
【0103】
図20(E)は、隣接MB(4×4)の代表MV格納領域を示している。
MV生成対象のマクロブロックが、サブMB(4×4)550の場合、MV0からMV15の16の代表MVが生成される。代表MVは、それぞれ対応するブロック番号に格納される。隣接MB[A]格納部215では、代表MVのうち、最も右側に位置するMV5,MV7,MV13,MV15を選択し、それぞれMB[A]のA0,A1,A2,A3に格納する。隣接MB[BCD]格納部216では、代表MVのうち、下に位置するMV10,MV11,MV14,MV15を選択し、MB[BCD]のN1,N2,N3,N4に格納する。なお、詳細は省略するが、MB(8×4),MB(4×8)についても同様の処理が行われる。
【0104】
以上のように、隣接MB[A]格納部215と、隣接MB[BCD]格納手段によって、隣接MB[A]及び隣接MB[BCD]の所定の領域に代表MVが格納される。
次に、MVP生成部212が、隣接MB[A]または隣接MB[BCD]に格納される外部のMVを参照する場合について説明する。
【0105】
MVP生成部212から、参照する隣接マクロブロック(4×4)を指示する情報が入力されると、アドレス変換部213は、指示された隣接マクロブロックが、隣接MB[A]格納領域320、または隣接MB[BCD]格納領域331,332にあるのかどうかを判定する。ない場合は、上記の図14、図15に示した変換テーブルを用いてアドレスを算出する。隣接MB[A]格納領域320、または隣接MB[BCD]格納領域331,332にある場合は、以下に説明する図21から図24の変換テーブルを用いてアドレス算出を行う。
【0106】
図21及び図22は、本発明の実施の形態の隣接MB[A]格納領域を参照する場合のアドレス変換テーブルの機能を示した図である。図21は、隣接MB[A]のMVを生成した隣接マクロブロックが、MB(16×16)、MB(16×8)、MB(8×16)、及びMB(8×8)の場合を示した図である。図22は、隣接MB[A]のMVを生成した隣接マクロブロックが、サブMB(8×4)、サブMB(4×8)、及びサブMB(4×4)の場合を示した図である。
【0107】
隣接マクロブロックのMBサイズが16×16の場合、A0に対応するMV格納領域のみにMV0が格納されている。隣接MB[A]として、A0,A1,A2,A3が指定される可能性があるが、いずれの場合もA0に対応するMV格納領域のアドレスに変換する。これにより、隣接MB[A]のMBサイズが16×16の場合は、常に、MV0を読み出すことができる。
【0108】
隣接マクロブロックのMBサイズが16×8の場合、A0に対応するMV格納領域にMV0、A2に対応するMV格納領域にMV8が格納されている。隣接MB[A]として、A0,A1が指定された場合には、A0に対応するMV格納領域のアドレスに変換する。また、A2,A3が指定された場合には、A2に対応するMV格納領域のアドレスに変換する。これにより、隣接MB[A]のMBサイズが16×8の場合は、A0またはA1が指定されるとMV0、A2またはA3が指定されるとMV2を読み出すことができる。
【0109】
隣接マクロブロックのMBサイズが8×16の場合、A0に対応するMV格納領域にMV4が格納されている。隣接MB[A]として、A0,A1,A2、またはA3が指定された場合は、A0に対応するMV格納領域のアドレスに変換する。これにより、隣接MB[A]のMBサイズが8×16の場合は、常に、MV0を読み出すことができる。
【0110】
隣接マクロブロックのMBサイズが8×8の場合、A0に対応するMV格納領域にMV4、A2に対応するMV格納領域にMV12が格納されている。隣接MB[A]として、A0,A1が指定された場合には、A0に対応するMV格納領域のアドレスに変換する。また、A2,A3が指定された場合には、A2に対応するMV格納領域のアドレスに変換する。これにより、隣接MB[A]のMBサイズが8×8の場合は、A0またはA1が指定されるとMV4、A2またはA3が指定されるとMV12を読み出すことができる。
【0111】
図22により説明する。図22は、サブブロック分割の場合の隣接MB[A]のアドレス変換を示している。なお、基本マクロブロック範囲における左半分がどのような構成であっても、隣接MB[A]に代表MVとして格納される値は同じであるので、図では左半分を省略している。
【0112】
隣接マクロブロックのMBサイズが8×4の場合、A0に対応するMV格納領域にMV4、A1に対応するMV格納領域にMV6、A2に対応するMV格納領域にMV12、そしてA3に対応するMV格納領域にMV14が格納されている。この場合は、隣接MB[A]として指定されたA0,A1,A2、またはA3に対応するMV格納領域のアドレスに変換する。
【0113】
隣接マクロブロックのMBサイズが4×8の場合、A0に対応するMV格納領域にMV5、A2に対応するMV格納領域にMV13が格納されている。この場合は、隣接MB[A]として、A0,A1が指定された場合には、A0に対応するMV格納領域のアドレスに変換する。また、A2,A3が指定された場合には、A2に対応するMV格納領域のアドレスに変換する。
【0114】
隣接マクロブロックのMBサイズが4×4の場合、A0に対応するMV格納領域にMV6、A1に対応するMV格納領域にMV7、A2に対応するMV格納領域にMV13、そしてA3に対応するMV格納領域にMV15が格納されている。この場合は、隣接MB[A]として指定されたA0,A1,A2、またはA3に対応するMV格納領域のアドレスに変換する。
【0115】
このように、アドレス変換部213では、隣接MB[A]が指定されると、図21及び図22に示したアドレス変換を行って、指定された隣接MB[A]の代表MV格納領域のアドレスに変換し、MVP生成部212へ提供する。
【0116】
次に、隣接MB[BCD]に関するアドレス変換について説明する。
図23及び図24は、本発明の実施の形態の隣接MB[BCD]格納領域を参照する場合のアドレス変換テーブルの機能を示した図である。図23は、隣接MB[BCD]のMVを生成した隣接マクロブロックが、MB(16×16)、MB(16×8)、MB(8×16)、及びMB(8×8)の場合を示した図である。図24は、隣接MB[BCD]のMVを生成した隣接マクロブロックが、サブMB(8×4)、サブMB(4×8)、及びサブMB(4×4)の場合を示した図である。
【0117】
隣接マクロブロックのMBサイズが16×16の場合、N1に対応するMV格納領域のみにMV0が格納されている。隣接MB[BCD]として、N1,N2,N3,N4が指定されるが、いずれの場合もN1に対応するMV格納領域のアドレスに変換する。これにより、隣接MB[BCD]のMBサイズが16×16の場合は、常に、MV0を読み出すことができる。
【0118】
隣接マクロブロックのMBサイズが16×8の場合、N1に対応するMV格納領域にMV8が格納されている。隣接MB[BCD]として、N1,N2,N3、またはN4が指定された場合は、N1に対応するMV格納領域のアドレスに変換する。これにより、隣接MB[BCD]のMBサイズが16×8の場合は、常に、MV8を読み出すことができる。
【0119】
隣接マクロブロックのMBサイズが8×16の場合、N1に対応するMV格納領域にMV0、N3に対応するMV格納領域にMV4が格納されている。隣接MB[BCD]として、N1,N2が指定された場合には、N1に対応するMV格納領域のアドレスに変換する。また、N3,N4が指定された場合には、N3に対応するMV格納領域のアドレスに変換する。これにより、隣接MB[BCD]のMBサイズが8×16の場合は、N1またはN2が指定されるとMV0、N3またはN4が指定されるとMV4を読み出すことができる。
【0120】
隣接マクロブロックのMBサイズが8×8の場合、N1に対応するMV格納領域にMV8、N3に対応するMV格納領域にMV12が格納されている。隣接MB[BCD]として、N1,N2が指定された場合には、N1に対応するMV格納領域のアドレスに変換する。また、N3,N4が指定された場合には、N3に対応するMV格納領域のアドレスに変換する。これにより、隣接MB[BCD]のMBサイズが8×8の場合は、N1またはN2が指定されるとMV8、N3またはN4が指定されるとMV12を読み出すことができる。
【0121】
図24により説明する。図24は、サブブロック分割の場合の隣接MB[BCD]のアドレス変換を示している。なお、基本マクロブロック範囲における上半分がどのような構成であっても、隣接MB[BCD]に代表MVとして格納される値は同じであるので、図では上半分を省略している。
【0122】
隣接マクロブロックのMBサイズが8×4の場合、N1に対応するMV格納領域にMV8、及びN3に対応するMV格納領域にMV12が格納されている。この場合は、隣接MB[BCD]として、N1,N2が指定された場合には、N1に対応するMV格納領域のアドレスに変換する。また、N3,N4が指定された場合には、N3に対応するMV格納領域のアドレスに変換する。
【0123】
隣接マクロブロックのMBサイズが4×8の場合、N1に対応するMV格納領域にMV8、N2に対応するMV格納領域にMV9、N3に対応するMV格納領域にMV12、そしてN4に対応するMV格納領域にMV13が格納されている。この場合は、隣接MB[BCD]として指定されたN1,N2,N3、またはN4に対応するMV格納領域のアドレスに変換する。
【0124】
隣接マクロブロックのMBサイズが4×4の場合、N1に対応するMV格納領域にMV10、N2に対応するMV格納領域にMV11、N3に対応するMV格納領域にMV14、そしてN4に対応するMV格納領域にMV15が格納されている。この場合は、隣接MB[BCD]として指定されたN1,N2,N3、またはN4に対応するMV格納領域のアドレスに変換する。
【0125】
このように、アドレス変換部213では、隣接MB[BCD]が指定されると、図23及び図24に示したアドレス変換を行って、指定された隣接MB[BCD]の代表MV格納領域のアドレスに変換し、MVP生成部212へ提供する。
【0126】
以上説明したように、本発明の実施の形態では、アドレス変換部213によってMVP生成部212によるMV参照時には、参照されるMVが格納されるアドレスを算出するので、参照用のMVをメモリに展開しておく必要がなくなり、不要なデータの格納サイクルをなくすことができる。この結果、MV処理の処理時間を短縮することができる。
【0127】
たとえば、MBサイズが16×16の場合、従来のMV処理では、MVの格納に16サイクル、隣接MB[A]の格納に4サイクル、及び隣接MB[BCD]の格納に4サイクルの計24サイクルが必要であった。これに対し、本実施の形態では、MVの格納に1サイクル、隣接MB[A]の格納に1サイクル、及び隣接MB[BCD]の格納に1サイクルの計3サイクルで処理が終了する。したがって、最大21サイクル削減することができる。
【0128】
また、MBサイズが8×8の場合、従来のMV処理では、16×16と同様に計24サイクルが必要であった。これに対し、本実施の形態では、MVの格納に8サイクル、隣接MB[A]の格納に2サイクル、及び隣接MB[BCD]の格納に2サイクルの計12サイクルで処理が終了する。したがって、最大12サイクル削減することができる。
【0129】
サイクル数の削減は、1マイクロブロックのMBサイズが大きいほど、また、処理対象の画面サイズが大きいほど、効果が大きくなる。
<フィールド構成>
処理対象の画像がフィールド構成である場合についてもトップ・フィールド、ボトム・フィールドに対応するライン毎に前述した処理を行うことで、本発明をフレーム構成に適用した場合と同様の効果が得られる。
【0130】
<第2の実施の形態>
次に、第2の実施の形態の画像復号化装置200のフレーム間予測部210における動きベクトルの復号化について説明する。
【0131】
以下、第2の実施の形態の画像復号化装置について説明するが、第1の実施の形態の画像復号化装置との相違点について説明し、同様の部分については、説明を省略する。
第2の実施の形態の画像復号化装置は、MBAFFに対応する点で第1の実施の形態の画像復号化装置と異なっている。
【0132】
以下、現処理対象のMB(16×16)のマクロブロックのペアを「対象マクロブロック・ペア」といい、マクロブロック・ペアに隣接するマクロブロックのペアを「隣接マクロブロック・ペア」という。また、第2の実施の形態では、Cuの符号の語尾に「a」を付したものを各ペアのトップ側とし、語尾に「b」を付したものを各ペアのボトム側とする。
【0133】
本実施の形態ではMVP生成部212が対象マクロブロック・ペアのMVを、フレーム/フィールドの種別にかかわらず、そのまま必要なデータを格納する。
図25は、MV格納領域とフレーム構成との関係を示した図であり、図25(a)は、トップ側のMV格納領域とフレーム構成との関係を示した図であり、図25(b)は、ボトム側のMV格納領域とフレーム構成との関係を示した図である。
【0134】
本実施の形態では、隣接MB[A]格納部215、及び隣接MB[BCD]格納部216(対象マクロブロックの格納位置)は、トップ/ボトムとも共通で利用する。
本実施の形態のメモリ211は、Cu310a、310b内のMVを格納するブロック内データ格納領域と、隣接MB[A]320のMVと、隣接MB[BCD]331a,331b,332a,332bのMVとを格納する隣接ブロックデータ格納領域とを有する。
【0135】
隣接MB[A]320については、Cu310a,310bそれぞれの左に隣接する4段のサブMB(4×4)に対応する4つ(計8つ)のMV格納領域が確保される。隣接MB[A]格納部215は、Cu310a,310bそれぞれのMV生成が終了すると、Cu310a,310bに関するMVが格納されるMV格納領域から、それぞれ最も右の4段のサブMB(4×4)に対応するMVを読み出し、そのデータを隣接MB[A]320に格納する。この処理については後述する。
【0136】
隣接MB[BCD]331a,331bについては、少なくとも、隣接MB[B]、隣接MB[C]、及び隣接MB[D]を含む、Cu310a,310bの上に隣接する隣接マクロブロック・ペアのトップ側、ボトム側の各最下段に位置するサブMB(4×4)に対応するMV格納領域が確保される。
【0137】
隣接MB[BCD]332a,332bについても、Cu310a,310bが属するフレーム行の各最下段のサブMB(4×4)に対応するMV格納領域が確保される。
隣接MB[BCD]格納部216では、Cu310a,310bのMV生成処理が終了すると、Cu310a,310bに関するMVが格納されるMV格納領域の最下段のサブMB(4×4)を隣接MB[BCD]332に格納する。
【0138】
ここで、図25(b)に示すように、アドレス変換部213によってMVP生成部212によるMV参照時には、参照されるMVが格納されるアドレスを算出するので、本実施の形態では、格納される領域が、従来に比べCu310aの斜線部分(b0,b1,b2,b3,b4,b6,b8,b9,b12)だけ少ない。
【0139】
図26は、第2の実施の形態の対象マクロブロック・ペアの格納処理を示す図である。
図26において、まず、Cu310aのサブMB(4×4)(T5,T7,T13,T15)と、サブMB(4×4)(T10,T11,T14,T15)とを取り出し、MV格納領域に確保する(ステップS1)。
【0140】
そして、Cu310bのサブMB(4×4)(B5,B7,B13,B15)と、サブMB(4×4)(B10,B11,B14,B15)とをMV格納領域に確保する(ステップS2)。
【0141】
そして、ステップS1、及びステップS2にて得られた集合から(T5,T7,T13,T15,B5,B7,B13,B15)を、この順番に並べて隣接MB[A]320に格納する(ステップS3)。また、ステップS1、及びステップS2にて得られた集合からサブMB(4×4)(T10,T11,T14,T15)、及びサブMB(4×4)(B10,B11,B14,B15)をひとまとめにして隣接MB[BCD]331a,331bまたは隣接MB[BCD]332a,332bに格納する(ステップS4,S5)。
【0142】
次に、本実施の形態の隣接MB[A]及び隣接MB[BCD]の位置について説明する。
図27は、MBAFFの隣接MB[A]及び隣接MB[BCD]の位置を示す図である。なお、図27中、たとえば「A(top)」は、隣接MB[A]となる隣接マクロブロック・ペアのトップ側を示し、「A(bot)」は、ボトム側を示している。
【0143】
図27(a)に示すように、MBAFFでは、Cu310aの隣接MB[A]として、Cu310aの左に隣接するサブMB(4×4)(AT5,AT7,AT13,AT15)と、ボトム側であるCu310bの左に隣接するサブMB(4×4)(AB5,AB7,AB13,AB15)とが確保される。また、図27(b)に示すように、Cu310bの隣接MB[A]として、Cu310aの場合と同様に、Cu310aの左に隣接するサブMB(4×4)(AT5,AT7,AT13,AT15)と、ボトム側であるCu310bの左に隣接するサブMB(4×4)(AB5,AB7,AB13,AB15)とが確保される。
【0144】
また、Cu310aの隣接MB[BCD]としては、Cu310aの上に隣接する隣接マクロブロック・ペアのトップ側の最下段に位置するサブMB(4×4)(BT10,BT11,BT14,BT15)と、BT10の左側に隣接するサブMB(4×4)DT15と、BT15の右側に隣接するCT10と、Cu310aの上に隣接する(BB10,BB11,BB14,BB15)と、BB10の左側に隣接するDB15とBB15の右側に隣接するサブMB(4×4)CB10とが確保される。
【0145】
また、Cu310bの隣接MB[BCD]としては、Cu310aの最下段に位置するサブMB(4×4)(ET10,ET11,ET14,ET15)と、ET10の左側に隣接するサブMB(4×4)AT15と、Cu310aの上に隣接する(BB10,BB11,BB14,BB15)と、BB10の左側に隣接するDB15とBB15の右側に隣接するサブMB(4×4)CB10とが確保される。
【0146】
次に、隣接MB[BCD]用の位置の条件について詳しく説明する。
図28〜図31は、隣接MB[BCD]の位置を示す図である。
図28は、対象マクロブロック・ペアと参照する隣接マクロブロック・ペアとがともにフレーム・ペアである場合を示す図である。この場合において図28(a)は、対象マクロブロック・ペアのトップ側における隣接MB[BCD]用位置の条件を示す図であり、図28(b)は、対象マクロブロック・ペアのボトム側における隣接MB[BCD]用位置の条件を示す図である。
【0147】
対象マクロブロック・ペアのトップ側における隣接MB[BCD]用位置は、Cu310aの上に隣接する隣接マクロブロック・ペアのボトム側の最下段に位置するサブMB(4×4)(BB10,BB11,BB14,BB15)と、BB10の左側に隣接するサブMB(4×4)DB15とサブMB(4×4)BB15の右側に隣接するサブMB(4×4)CB10となる。また、対象マクロブロックのボトム側における隣接MB[BCD]用位置は、Cu310aの最下段に位置するサブMB(4×4)(ET10,ET11,ET14,ET15)となる。
【0148】
図29は、対象マクロブロック・ペアと参照する隣接マクロブロック・ペアとがともにフィールド・ペアである場合を示す図である。この場合において図29(a)は、対象マクロブロック・ペアのトップ側における隣接MB[BCD]用位置の条件を示す図であり、図29(b)は、対象マクロブロック・ペアのボトム側における隣接MB[BCD]用位置の条件を示す図である。
【0149】
対象マクロブロック・ペアのトップ側における隣接MB[BCD]用位置は、Cu310aの上に隣接する隣接マクロブロック・ペアのトップ側の最下段に位置するサブMB(4×4)(BT10,BT11,BT14,BT15)と、BT10の左側に隣接するサブMB(4×4)DT15と、BT15の右側に隣接するCT10となる。また、対象マクロブロック・ペアのボトム側における隣接MB[BCD]用位置は、Cu310aの上に隣接する隣接マクロブロック・ペアのトップ側の最下段に位置するサブMB(4×4)(BT10,BT11,BT14,BT15)となる。
【0150】
図30は、対象マクロブロック・ペアがフレーム・ペアであり、参照する隣接マクロブロック・ペアがフィールド・ペアである場合を示す図である。この場合において図30(a)は、対象マクロブロック・ペアのトップ側における隣接MB[BCD]用位置の条件を示す図であり、図30(b)は、対象マクロブロック・ペアのボトム側における隣接MB[BCD]用位置の条件を示す図である。
【0151】
この場合は、図29に示す場合と同様であるため説明を省略する。
図31は、対象マクロブロック・ペアがフィールド・ペアであり、参照する隣接マクロブロック・ペアがフレーム・ペアである場合を示す図である。この場合において図31(a)は、対象マクロブロック・ペアのトップ側における隣接MB[BCD]用位置の条件を示す図であり、図31(b)は、対象マクロブロック・ペアのボトム側における隣接MB[BCD]用位置の条件を示す図である。
【0152】
対象マクロブロック・ペアのトップ側における隣接MB[BCD]用位置は、Cu310aの上に隣接するサブMB(4×4)(BB10,BB11,BB14,BB15)と、BB10の左側に隣接するDB15とBB15の右側に隣接するサブMB(4×4)CB10となる。また、対象マクロブロック・ペアのトップ側における隣接MB[BCD]用位置も同様となる。
【0153】
図32は、図27に示すMV格納領域の隣接MB[A]位置の条件を示す図である。
図32(a)、及び図32(b)に示すように、対象マクロブロック・ペア、参照する隣接マクロブロック・ペアがそれぞれフレーム・ペア同士またはフィールド・ペア同士である場合は、第1の実施の形態と同様の対応関係になる。
【0154】
一方、図32(c)に示すように、対象マクロブロック・ペアがフレーム・ペアであり、隣接マクロブロック・ペアがフィールド・ペアである場合、Cu310aのサブMB(4×4)(ET0,ET2)は、それぞれ隣接MB[A]502aのサブMB(4×4)AT5を参照する。Cu310aのサブMB(4×4)(ET8,ET10)は、それぞれ隣接MB[A]502aのサブMB(4×4)AT7を参照する。Cu310bのサブMB(4×4)(EB0,EB2)は、それぞれ隣接MB[A]502aのサブMB(4×4)AT13を参照する。Cu310bのサブMB(4×4)(EB8,EB10)はそれぞれ、隣接MB[A]502aのサブMB(4×4)AT15を参照する。また、図32(d)に示すように、対象マクロブロック・ペアがフィールド・ペアであり、隣接マクロブロック・ペアがフレーム・ペアである場合、Cu310a,310bのサブMB(4×4)(ET0,EB0)は、それぞれ隣接MB[A]502aのサブMB(4×4)AT5を参照する。Cu310a,310bのサブMB(4×4)(ET2,EB2)は、それぞれ隣接MB[A]502aのサブMB(4×4)AT13を参照する。Cu310a,310bのサブMB(4×4)(ET8,EB8)は、それぞれ隣接MB[A]502bのサブMB(4×4)AB5を参照する。Cu310a,310bのサブMB(4×4)(ET10,EB10)はそれぞれ、隣接MB[A]502bのサブMB(4×4)AB13を参照する。
【0155】
図33は、隣接MB[D]位置の条件を示す図である。
図33(a)、及び図33(b)に示すように、対象マクロブロック・ペア、参照する隣接マクロブロック・ペアがそれぞれフレーム・ペア同士またはフィールド・ペア同士である場合は、第1の実施の形態と同様の対応関係になる。
【0156】
一方、図33(c)に示すように、対象マクロブロック・ペアがフレーム・ペアであり、隣接マクロブロック・ペアがフィールド・ペアである場合、Cu310aのサブMB(4×4)(ET2,ET8)は、それぞれ隣接MB[A]502bのサブMB(4×4)AB5を参照する。Cu310aのサブMB(4×4)ET10、及びCu310bのサブMB(4×4)EB0は、それぞれ隣接MB[A]502bのサブMB(4×4)AB7を参照する。Cu310bのサブMB(4×4)(EB2,EB8)は、それぞれ隣接MB[A]502bのサブMB(4×4)AB13を参照する。Cu310bのサブMB(4×4)ET10は、隣接MB[A]502bのサブMB(4×4)AB15を参照する。また、図33(d)に示すように、対象マクロブロック・ペアがフィールド・ペアであり、隣接マクロブロック・ペアがフレーム・ペアである場合、Cu310a,310bのサブMB(4×4)(ET2,EB2)は、それぞれ隣接MB[A]502aのサブMB(4×4)AT7を参照する。Cu310a,310bのサブMB(4×4)(ET8,EB8)は、それぞれ隣接MB[A]502aのサブMB(4×4)AT15を参照する。Cu310a,310bのサブMB(4×4)(ET10,EB10)は、それぞれ隣接MB[A]502bのサブMB(4×4)AB7を参照する。Cu310bのサブMB(4×4)(EB0)は、隣接MB[A]502bのサブMB(4×4)AB15を参照する。
【0157】
次に、MBAFFにおけるアドレス変換部によるアドレス変換処理について説明する。
なお、内部のMVを参照する場合については、第1の実施の形態と同様であるため、以下では外部のMVを参照する場合について説明する。
【0158】
図34は、第2の実施の形態のアドレス変換部を示す図である。
第2の実施の形態のアドレス変換部213aは、内部のMVを参照する場合において用いるCuMB内参照変換テーブルTa1と、非MBAFFにおいて参照するMVがCu外にある場合において用いるCuMB外参照非MBAFF用変換テーブルTa2と、MBAFFにおいて参照するMVがCu外にある場合において用いるCuMB外参照MBAFF用変換テーブルTa3とを有している。
【0159】
ここで、CuMB内参照変換テーブルTa1とCuMB外参照非MBAFF用変換テーブルTa2とは、第1の実施の形態のアドレス変換部213が備えているものである。すなわち、アドレス変換部213aはアドレス変換部213に比べ、対応する隣接マクロブロックのサイズ(MBサイズとサブMBサイズ)から、その代表MV格納領域のアドレスに変換するCuMB外参照MBAFF用変換テーブルTa3をさらに有している。
【0160】
アドレス変換部213aは、入力されたピクチャ単位でMBAFFか非MBAFFかを判別し、非MBAFFの場合は、CuMB内参照変換テーブルTa1とCuMB外参照非MBAFF用変換テーブルTa2とを用いて処理を行う。また、MBAFFの場合は、CuMB内参照変換テーブルTa1とCuMB外参照MBAFF用変換テーブルTa3とを用いて処理を行う。
【0161】
ここで、CuMB外参照MBAFF用変換テーブルTa3を用いて処理を行う場合、アドレス変換部213aは、入力された対象マクロブロックがフィールド構造であるかフレーム構造であるかのコーディングタイプを判別するためのMBFIELDフラグと、隣接MB[A]、及び隣接MB[BCD]の属する各隣接マクロブロックのコーディングタイプを判別する周辺MB判別用フラグと、対象マクロブロックがフィールド構造の場合、フィールド種別(トップ・フィールドまたはボトム・フィールド)を判別するTop/Bottomフラグとに基づいて、処理を行う。
【0162】
図35は、MBAFFにおけるアドレス変換を示す図である。なお、図35では対象マクロブロックが、MB(16×8)の場合を示している。
アドレス変換部213aは、MBAFFにおいても、非MBAFFの場合と同様に処理を行う。具体的には、まず、図35(a)に示すように、隣接MB[A]、隣接MB[B]、隣接MB[C]、及び隣接MB[D]の周辺位置をサブMB(4×4)にて考慮し、次に図35(b)に示すように、周辺の分割を考慮し、次に図35(c)に示すように管理されているアドレスを考慮して、代表MV格納領域から代表MVを指示するアドレスに変換し、MVP生成部212へ通知する。但し、MBAFFでは、対象マクロブロック・ペアの上側、及び左側に隣接するマクロブロック・ペアの組み合わせによって、周辺位置の取り方が非MBAFFとは異なる場合が存在する。
【0163】
以下、MBAFFにおける対象マクロブロック・ペアと、対象マクロブロック・ペアの左側に隣接するマクロブロック(以下、単に「左隣接マクロブロック」という)とのフレーム/フィールドの組み合わせによるMV生成処理を各パターンについて説明する。
【0164】
なお、以下では説明を分かり易くするため、マクロブロック・ペア毎ではなくマクロブロック毎のパターンにて説明する。
図36、及び図37は、対象マクロブロックおよび左隣接マクロブロックが、それぞれフレームである場合の隣接MBの位置を示す図である。なお、図36において、1つの図に画像600の符号を付し、他の図においては符号を省略している(図37〜図47についても同様)。また、図37の画像600中、塗りつぶしパターンの部分は、フレームにおける偶数ラインを示しており、偶数ラインに挟まれた部分は奇数ラインを示している。また、図36中、対象マクロブロックのサブMB(4×4)内の斜線部は、ラインの位置を示している(図37〜図47についても同様)。
【0165】
図36、及び図37に示す隣接MB[A]、及び隣接MB[BCD]の位置は、非MBAFFの場合と同様である。すなわち、たとえば図36(b)に示すCu310a中のCuのMVは、隣接MB[A]502aのサブMB(4×4)(AT7)、Cu310aのサブMB(4×4)(ET0)、Cu310aのサブMB(4×4)(ET1)、及びCu502aのサブMB(4×4)(AT5)の各MVを読み出し、前述した式(1)に基づいてMVPを算出する。そして、MVPと、復号されたMVDを用いて、前述した式(3)によりMVを生成する。これをMV8とする。なお、図36(a)の場合の隣接MB[B]、及び隣接MB[c]の読み出し位置は、対象マクロブロック、及び参照マクロブロックの上側に位置するマクロブロックのパターン(フレーム/フィールド)によって異なる。これについては後述する。
【0166】
図38、及び図39は、対象マクロブロックおよび左隣接マクロブロックが、それぞれフィールドである場合の隣接MBの位置を示す図である。図38の画像600中、上側がトップ・フィールドを示し、下側(塗りつぶしパターンの部分)は、ボトム・フィールドを示している。
【0167】
図36、及び図37の場合と異なるのは、図39(a)に示す場合である。図39(a)の場合の隣接MB[BCD]の読み出し位置は、対象マクロブロック、及び対象マクロブロックの上側に位置する隣接マクロブロックのパターン(フレーム/フィールド)によって異なる。
【0168】
図40、及び図41は、対象マクロブロックがフレームであり、左隣接マクロブロックがフィールドである場合の隣接MBの位置を示す図である。
たとえば図40(b)の場合、対象マクロブロック(フレーム)の5ライン目に対応するサブMB(4×4)の左隣接マクロブロック(フィールド)の隣接MB[A]の位置は、奇数ラインの3ライン目であるため、隣接MB[A]として、このラインに属するサブMB(4×4)(AT5)のMVを読み出す。また、対象マクロブロックの5ライン目に対応する左隣接マクロブロックの隣接MB[D]の位置は、偶数ラインの2ライン目であるため、隣接MB[D]として、このラインに属するサブMB(4×4)(AB5)のMVを読み出す。図41についても同様である。
【0169】
図42、及び図43は、サブMB(4×4)の対象マクロブロックがフィールドであり、左隣接マクロブロックがフレームである場合の隣接MBの位置を示す図である。
考え方としては図40、及び図41と同様の考え方となる。たとえば図42(b)の場合、対象マクロブロック(フィールド)の5ライン目(奇数ラインの5ライン目)のサブMB(4×4)に対応する左隣接マクロブロック(フレーム)の隣接MB[A]の位置は、対象マクロブロックの上から数えて9ライン目であるため、隣接MB[A]として、このラインに属するサブMB(4×4)(AT13)のMVを読み出す。また、対象マクロブロック(フィールド)の4ライン目(奇数ラインの4ライン目)に対応するフィールドの隣接MB[D]の位置は、対象マクロブロックの上から数えて7ライン目であるため、隣接MB[D]として、このラインに属するサブMB(4×4)(AT7)のMVを読み出す。図43についても同様である。
【0170】
次に、MBAFFにおける対象マクロブロックと、対象マクロブロックの上側に隣接するマクロブロック(以下、単に「上隣接マクロブロック」という)とのフレーム/フィールドの組み合わせによる各パターンについて説明する。
【0171】
図44は、サブMB(4×4)の対象マクロブロック、上隣接マクロブロックが、それぞれフレームである場合の隣接MBの位置を示す図である。
たとえば図44(a)に示す場合は、隣接MB[B]503bのサブMB(4×4)(BB10)、隣接MB[B]503bのサブMB(4×4)(BB11)、及び隣接MB[D]504bのサブMB(4×4)(DB15)のMVを読み出し、式(1)に基づいてMVPを算出する。そして、MVPと、復号されたMVDを用いて、式(3)によりMVを生成する。
【0172】
図45は、サブMB(4×4)の対象マクロブロックがフレームであり、上隣接マクロブロックがフィールドである場合の隣接MBの位置を示す図である。
この場合も図44に示す位置と同様である。
【0173】
図46は、サブMB(4×4)の対象マクロブロックがフィールドであり、上隣接マクロブロックがフレームである場合の隣接MBの位置を示す図である。
図46(a)の場合、すなわちCuがトップ・フィールドに存在する場合については、隣接MB[B]503bのサブMB(4×4)(BB10)、隣接MB[B]503bのサブMB(4×4)(BB11)、及び隣接MB[D]504aのサブMB(4×4)(DB15)のMVを読み出す。
【0174】
また、図46(b)の場合、すなわちCuがボトム・フィールドに存在する場合については、隣接MB[B]503bのサブMB(4×4)(BB10)、隣接MB[B]503bのサブMB(4×4)(BB11)、及び隣接MB[D]504bのサブMB(4×4)(DB15)のMVを読み出す。
【0175】
図47は、サブMB(4×4)の対象マクロブロック、上隣接マクロブロックが、それぞれフィールドである場合の隣接MBの位置を示す図である。
図47(a)の場合、すなわちCuがトップ・フィールドに存在する場合については、隣接MB[B]503aのサブMB(4×4)(BT10)、隣接MB[B]503aのサブMB(4×4)(BT11)、及び隣接MB[D]504aのサブMB(4×4)(DT15)のMVを読み出す。
【0176】
また、図47(b)の場合、すなわちCuがボトム・フィールドに存在する場合については、隣接MB[B]503bのサブMB(4×4)(BB10)、隣接MB[B]503bのサブMB(4×4)(BB11)、及び隣接MB[D]504bのサブMB(4×4)(DB15)のMVを読み出す。
【0177】
次に、CuMB外参照MBAFF用変換テーブルTa3の内容について詳しく説明する。
図48、及び図49は、MB(4×4)の場合の対象マクロブロック・ペア、上隣接マクロブロック、及び左隣接マクロブロックがともにフレーム・ペアである場合の隣接MBの位置を示す図であり、図50、及び図51は、MB(4×4)の場合の対象マクロブロック・ペア、上隣接マクロブロック、及び左隣接マクロブロックがともにフィールド・ペアである場合の隣接MBの位置を示す図であり、図52、及び図53は、MB(4×4)の場合の対象マクロブロック・ペアがフレーム・ペアであり、上隣接マクロブロック、及び左隣接マクロブロックがともにフィールド・ペアである場合の隣接MBの位置を示す図であり、図54、及び図55は、MB(4×4)の場合の対象マクロブロック・ペアがフィールド・ペアであり、上隣接マクロブロック、及び左隣接マクロブロックがともにフレーム・ペアである場合の隣接MBの位置を示す図である。
【0178】
なお、各図において、対象マクロブロックの代表MVの位置をそれぞれb0〜b15を用いて示している。また、図中「X」は、Cが無効の場合を示している。また、各図において、1つの図にCu310a,310bの符号を付し、他の図においては符号を省略している。
【0179】
図48〜図55にそれぞれ示すように、アドレス変換部213aは、参照するMVが、対象マクロブロック・ペア内に存在する場合は、CuMB内参照変換テーブルTa1を使用して変換を行い、参照するMVが、対象マクロブロック・ペア内に存在する場合は、CuMB外参照MBAFF用変換テーブルTa3を使用して変換を行う。
【0180】
この第2の実施の形態の画像復号化装置200によれば、第1の実施の形態の画像復号化装置200と同様の効果が得られる。
そして、第2の実施の形態の画像復号化装置200によれば、MBAFFで参照するMVがCu外にある場合(隣接MB[A]、及び隣接MB[BCD]が対象マクロブロック外を指定する場合)、MBFIELDフラグと、周辺MB判別用フラグと、Top/Bottomフラグとに基づいて、CuMB外参照MBAFF用変換テーブルTa3を使用して処理を行うことによりMVの探索を、非MBAFFと同じ時間で行うことができる。
【0181】
また、参照するMVがCu内にある場合(隣接MB[A]、及び隣接MB[BCD]が対象マクロブロック内を指定する場合)、非MBAFFと共通のCuMB内参照変換テーブルTa1を使用することで、図25(b)に示したように、Cu310aの斜線部分(b0,b1,b2,b3,b4,b6,b8,b9,b12)9MV分のメモリ211に格納する領域を削減することができる。よって、メモリ211の回路規模の縮小を図ることができる。
【0182】
以上、本発明のフレーム間予測処理装置、画像符号化装置、及び画像復号化装置を、図示の実施の形態に基づいて説明したが、本発明はこれに限定されるものではなく、各部の構成は、同様の機能を有する任意の構成のものに置換することができる。また、本発明に、他の任意の構成物や工程が付加されていてもよい。
【0183】
また、本発明は、前述した各実施の形態のうちの、任意の2以上の構成(特徴)を組み合わせたものであってもよい。
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、フレーム間予測処理装置が有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、たとえば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリなどが挙げられる。磁気記録装置としては、たとえば、ハードディスク装置(HDD)、フレキシブルディスク(FD)、磁気テープなどが挙げられる。光ディスクとしては、たとえば、DVD(Digital Versatile Disc)、DVD−RAM(Random Access Memory)、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(ReWritable)などが挙げられる。光磁気記録媒体としては、たとえば、MO(Magneto-Optical disk)などが挙げられる。
【0184】
プログラムを流通させる場合には、たとえば、そのプログラムが記録されたDVD、CD−ROMなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【0185】
フレーム間予測処理プログラムを実行するコンピュータは、たとえば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送される毎に、逐次、受け取ったプログラムに従った処理を実行することもできる。
【図面の簡単な説明】
【0186】
【図1】本発明の概要を示す図である。
【図2】第1の実施の形態の画像符号化装置の構成を示したブロック図である。
【図3】第1の実施の形態の画像復号化装置の構成を示したブロック図である。
【図4】H.264におけるマクロブロックのブロックサイズを示した図である。
【図5】第1の実施の形態の画像復号化装置のフレーム間予測における動きベクトル生成処理を示した機能ブロック図である。
【図6】第1の実施の形態のMV格納領域とフレーム構成との関係を示した図である。
【図7】16×16のマクロブロックと、ブロック番号の関係を示した図である。
【図8】第1の実施の形態のMB(16×16)の場合のMV生成処理と格納処理を示した図である。
【図9】第1の実施の形態のMB(16×8)の場合のMV生成処理と格納処理を示した図である。
【図10】第1の実施の形態のMB(8×16)の場合のMV生成処理と格納処理を示した図である。
【図11】第1の実施の形態のMB(8×8)の場合のMV生成処理と格納処理を示した図である。
【図12】第1の実施の形態のサブマクロブロック分割の場合のMV生成処理と格納処理を示した図(サブマクロブロック分割と代表MV生成処理)である。
【図13】第1の実施の形態のサブマクロブロック分割の場合のMV生成処理と格納処理を示した図(代表MVの生成と書き込みシーケンス)である。
【図14】第1の実施の形態のアドレス変換テーブルの機能を示した図である。
【図15】第1の実施の形態のアドレス変換テーブルの機能を示した図である。
【図16】第1の実施の形態における隣接マクロブロックMB[A]のMV格納処理を示した図である。
【図17】第1の実施の形態における隣接マクロブロックMB[BCD]のMV格納処理を示した図である。
【図18】第1の実施の形態の隣接MB(MB(16×16)とMB(16×8))の代表MV格納領域を示している。
【図19】第1の実施の形態の隣接MB(MB(8×16)とMB(8×8))の代表MV格納領域を示している。
【図20】第1の実施の形態の隣接MB(MB(4×4))の代表MV格納領域を示している。
【図21】第1の実施の形態の隣接MB[A]格納領域を参照する場合のアドレス変換テーブルの機能を示した図である。
【図22】第1の実施の形態の隣接MB[A]格納領域を参照する場合のアドレス変換テーブルの機能を示した図である。
【図23】第1の実施の形態の隣接MB[BCD]格納領域を参照する場合のアドレス変換テーブルの機能を示した図である。
【図24】第1の実施の形態の隣接MB[BCD]格納領域を参照する場合のアドレス変換テーブルの機能を示した図である。
【図25】第2の実施の形態のMV格納領域とフレーム構成との関係を示した図である。
【図26】第2の実施の形態の対象マクロブロック・ペアの格納処理を示す図である。
【図27】MBAFFの隣接MB[A]及び隣接MB[BCD]の位置を示す図である。
【図28】隣接MB[BCD]の位置を示す図である。
【図29】隣接MB[BCD]の位置を示す図である。
【図30】隣接MB[BCD]の位置を示す図である。
【図31】隣接MB[BCD]の位置を示す図である。
【図32】図27に示すMV格納領域の隣接MB[A]位置の条件を示す図である。
【図33】隣接MB[D]位置の条件を示す図である。
【図34】第2の実施の形態のアドレス変換部を示す図である。
【図35】MBAFFにおけるアドレス変換を示す図である。
【図36】隣接MBの位置を示す図である。
【図37】隣接MBの位置を示す図である。
【図38】隣接MBの位置を示す図である。
【図39】隣接MBの位置を示す図である。
【図40】隣接MBの位置を示す図である。
【図41】隣接MBの位置を示す図である。
【図42】隣接MBの位置を示す図である。
【図43】隣接MBの位置を示す図である。
【図44】隣接MBの位置を示す図である。
【図45】隣接MBの位置を示す図である。
【図46】隣接MBの位置を示す図である。
【図47】隣接MBの位置を示す図である。
【図48】隣接MBの位置を示す図である。
【図49】隣接MBの位置を示す図である。
【図50】隣接MBの位置を示す図である。
【図51】隣接MBの位置を示す図である。
【図52】隣接MBの位置を示す図である。
【図53】隣接MBの位置を示す図である。
【図54】隣接MBの位置を示す図である。
【図55】隣接MBの位置を示す図である。
【図56】符号化タイプ別のマクロブロックの処理順について説明するための図である。
【符号の説明】
【0187】
1 フレーム間予測処理装置
2 アドレス通知部
3 予測値算出部
100 画像符号化装置
104、210 フレーム間予測部
200 画像復号化装置
211 メモリ
212 MVP生成部
213、213a アドレス変換部
214 MV生成部
215 隣接MB[A]格納部
216 隣接MB[BCD]格納部
310、310a、310b Cu
Ta1 CuMB内参照変換テーブル
Ta2 CuMB外参照非MBAFF用変換テーブル
Ta3 CuMB外参照MBAFF用変換テーブル

【出願人】 【識別番号】000005223
【氏名又は名称】富士通株式会社
【出願日】 平成18年8月18日(2006.8.18)
【代理人】 【識別番号】100092152
【弁理士】
【氏名又は名称】服部 毅巖


【公開番号】 特開2008−48289(P2008−48289A)
【公開日】 平成20年2月28日(2008.2.28)
【出願番号】 特願2006−223564(P2006−223564)