(57)【要約】【課題】従来は動きベクトル探索のために用いる画素データのメモリからの読み出し位置が複雑で、ブロック単位が適応的に変化されると常に同じアクセスタイムを得ることが困難であり、また、フレームメモリへのアクセスに無駄が生じる。【解決手段】参照画像キャッシュメモリ１００は、水平方向のブロック数が一画面分の画像信号の水平方向のブロック数と同じで、かつ、垂直方向のブロック数が探索範囲の垂直方向のブロック数よりも大きなブロック範囲の信号の記憶容量を備えている。キャッシュメモリ１００から探索範囲の参照画像信号を読み出して参照画像バッファ４０７に書き込み、動きベクトル探索に供すると共に、探索範囲の中心ブロックからラスタ順で所定のブロック数だけ先行した位置のブロックの参照画像信号を参照画像フレームメモリ４０５から読み出してキャッシュメモリ１００に書き込む。【選択図】図１
2007243366.tif 000002
【特許請求の範囲】
【請求項１】
入力された符号化対象の画像信号を一画面分蓄積する第１のメモリと、前記第１のメモリから所定画素数のブロック毎に読み出された前記符号化対象の画像信号を一時蓄積する第１のバッファと、前記符号化対象の画像信号に対して時間的に前又は後に表示される参照画像信号を一画面分蓄積する第２のメモリと、前記第２のメモリから読み出された、前記ブロックに対応する位置のブロックを包含する所定の探索範囲の前記参照画像信号を一時蓄積する第２のバッファと、前記第１のバッファからの前記符号化対象の画像信号のブロックと前記第２のバッファからの前記所定の探索範囲の参照画像信号とに基づいて、前記ブロックとマッチングする前記探索範囲内のブロック位置との相対位置関係を示す動きベクトルを探索する探索手段とを備えた動きベクトル探索装置であって、
前記第２のメモリと前記第２のバッファとの間に設けられており、水平方向のブロック数が前記一画面分の画像信号の水平方向のブロック数と同じで、かつ、垂直方向のブロック数が前記探索範囲の垂直方向のブロック数よりも大きなブロック範囲の信号の記憶容量を備えたキャッシュメモリと、
前記第２のメモリから前記探索範囲の中心ブロックからラスタ順で所定のブロック数だけ先行した位置のブロックの参照画像信号を読み出して前記キャッシュメモリに書き込むと共に、前記キャッシュメモリから前記第２のメモリ内の前記探索範囲に対応した範囲の参照画像信号を読み出して前記第２のバッファに供給することを、前記探索範囲及び読み出し範囲をそれぞれ１ブロックずつ巡回的にずらしながら繰り返す書き込み及び読み出し制御手段と
を有することを特徴とする動きベクトル探索装置。
【請求項２】
前記キャッシュメモリは、
前記ブロックを構成する所定画素数のうち、予め設定された画素数ずつに分割された前記参照画像信号をそれぞれ記憶する複数のバンクメモリと、
前記第２のメモリからの前記参照画像信号を、前記複数のバンクメモリに振り分けて蓄積させるセレクタと
を少なくとも有し、前記セレクタは、前記複数のバンクメモリから同時に読み出した前記参照画像信号の複数の画素が、所望のフィールド／フレーム構造の画像信号を構成する画素からなるように、前記振り分け動作を行うことを特徴とする請求項１記載の動きベクトル探索装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は動きベクトル探索装置に係り、特にフィールド／フレーム構造の画像信号を参照して予測符号化する画像高能率符号化装置で用いる動きベクトル探索装置に関する。
【背景技術】
【０００２】
一般に、動画像の伝送や記録において高能率画像符号化方式は必要不可欠なものとなっている。例えば、デジタル放送ではＭＰＥＧ−２Ｖｉｄｅｏ（ISO/IEC13818-2）方式が採用されている。更に、近年では、Ｈ.２６４／ＭＰＥＧ−４ＡＶＣ（ITU-T Rec.H.264|ISO/IEC14496-10 MPEG-4 Part 10:Advanced Video Coding）方式が、放送や蓄積メディアに採用され、携帯端末用の低レート符号化や従来方式以上の高画質符号化方式として注目されている。しかし、その符号化装置及び復号化装置は、従来以上に複雑な信号処理が要求されるため、ハードウェア負荷が増大し課題となっている。
【０００３】
以下では、本発明に係るＨ.２６４／ＭＰＥＧ−４  ＡＶＣの符号化装置における画面間予測符号化部で使用されるフィールド／フレーム構造によるマクロブロック参照方法について説明する。
【０００４】
Ｈ.２６４／ＭＰＥＧ−４ＡＶＣ符号化方式では、表１の（１−１）〜（１−４）に示すように入力画像フォーマットによりピクチャ構造のフィールド／フレーム適応符号化および、マクロブロック構造のフィールド／フレーム適応符号化を組み合わせた４種類の符号化が利用できる。
【０００５】
【表１】
2007243366.tif 000003
特に、入力画像フォーマットが飛び越し走査である場合には、２つのフィールドを１つのフレームとして扱う「フレーム・ピクチャ」と、２つのフィールドを独立した２つのピクチャ（画面）として扱う「フィールド・ピクチャ」とを、ピクチャごとに切り替えて使用するピクチャＡＦＦ（Picture-AFF: Picture-Adaptive Frame-Field Coding）と呼ばれる機能がある。
【０００６】
図８（ａ）は、「フレーム・ピクチャ」の画面を模式的に示した図で、白ラインとグレーラインで示される２つのフィールドのラインが交互に合わせられ「フレーム・ピクチャ」を構成する様子を示している。また、図８（ｂ）は２つのフィールド（第１フィールドと第２フィールド）をそれぞれ別のピクチャとして構成する「フィールド・ピクチャ」の画面を模式的に示した図である。
【０００７】
さらに、前記「フレーム・ピクチャ」が選択された場合には、マクロブロック（１６画素×１６ラインの矩形域）と呼ばれる符号化単位を縦に２つ組み合わせて、内部をフレーム符号化とフィールド符号化とに切り替えて使用するＭＢ−ＡＦＦ（Macroblock-Adaptive Frame-Field Coding）と呼ばれる機能がある。
【０００８】
図９（ａ）は、画面２００をマクロブロック（１６画素×１６ラインの矩形域）毎に区切り、そのうち縦方向に隣接する２つのマクロブロック２０１とマクロブロック２０２を組み合わせた様子を模式的に示している。この縦に組み合わされた２つのマクロブロック内の３２本のラインは第１フィールドのラインと、第２フィールドのラインとが交互に配置された、飛び越し走査をしている。
【０００９】
図９（ｂ）は白ラインで示す第１フィールドのラインと、グレーラインで示す第２フィールドのラインとが交互に配置されたマクロブロック２０３と２０４を用いるフレーム符号化を模式的に示している。また、図９（ｃ）は白ラインで示す第１フィールドの１６本のラインで構成されるマクロブロック２０５と、グレーラインで示す第２フィールドのラインで構成されるマクロブロック２０６とに分けるフィールド符号化を模式的に示している。これらの詳細は非特許文献１に記載されている。
【００１０】
また、動き補償を行う単位として、上記フィールド・フレーム構造による方法で作られたマクロブロックを、図１０（ａ）に示すような１６画素×１６ラインをそのまま用いる方法と、１６画素×８ラインまたは８画素×１６ラインに分割して用いる方法と、８画素×８ラインに分割したのち図１０（ｂ）に示すように、８画素×８ラインのまま用いるか、さらに内部を８画素×４ライン、４画素×８ラインまたは４画素×４ラインに分割して用いることができる。これら詳細は、前記非特許文献１の１１４〜１１５ページに記載されている。
【００１１】
これら機能は符号化効率の向上に大きく寄与しているが、処理が複雑になり多くのハードウェア負荷が要求される。この画面間予測符号化では、参照する画像上からブロック内の各画素値と誤差の少ない領域を切り出して予測画像としている。誤差の少ない領域は、画面間のブロックマッチングにより探索され、その位置を示すベクトル値が符号化される。この探索には、様々な方向の画像データを取得する必要があり、符号化集積回路の外部に接続されたフレームメモリへのアクセスが多発する。この結果、アクセススピードの遅い集積回路外部からのデータ取得による処理時間の増大や、外部アクセスに伴う消費電力の増大などの問題に繋がる。
【００１２】
そこで、ベクトルの探索範囲内にある画素データを一旦符号化集積回路の内部バッファに蓄えてからベクトル探索を行うことで、ベクトル探索中は外部メモリヘアクセスする必要を無くす、内部バッファ回路を採用する方法が一般に用いられている。
【００１３】
外部メモリへのアクセス回数を低減するための構成例を図１１に示す。図１１において、２つのフレームメモリ・コントローラ４０２、４０６と、カレント画像バッファ４０３と、参照画像バッファ４０７と、動きベクトル探索器４０８とは集積回路に内蔵されているものとする。また、カレント画像フレームメモリ４０１及び参照画像フレームメモリ４０５は集積回路の外部に接続されている。これは、一般にフレームメモリのような大規模な回路を集積回路に内蔵することが困難であるためである。
【００１４】
上述の図１１の動きベクトル探索回路を集積回路に置き換えた構成を図１２に示す。同図中、図１１と同一構成部分には同一符号を付してある。図１２に示す動きベクトル探索回路は、動きベクトル集積回路５００と、それに接続されたカレント画像フレームメモリ４０１及び参照画像フレームメモリ４０５とにより構成される。動きベクトル集積回路５００は、図１１に示した２つのフレームメモリ・コントローラ４０２、４０６と、カレント画像バッファ４０３と、参照画像バッファ４０７と、動きベクトル探索器４０８とからなる。
【００１５】
次に、図１１の回路動作を説明する。図１１の入力端子４００からは、符号化対象画面のデジタル信号が入力され、カレント画像フレームメモリ４０１に一画面分蓄積される。フレームメモリ・コントローラ４０２は、符号化対象のマクロブロックデータをカレント画像フレームメモリ４０１から読み出し、カレント画像バッファ４０３に蓄積する。これと並行して、入力端子４０４から、符号化対象画面のデジタル信号に対して、時間的に前又は後に表示される参照画面のデジタル信号が入力され、参照画像フレームメモリ４０５に一画面分蓄積される。フレームメモリ・コントローラ４０６は、参照領域のデータを参照画像フレームメモリ４０５から読み出し、参照画像バッファ４０７に蓄積する。
【００１６】
動きベクトル探索器４０８は、参照画像バッファ４０７に蓄積された参照領域画像に対して、カレント画像バッファ４０３に蓄積された符号化対象マクロブロックとマッチングする領域を探索して動きベクトル量を求め、出力端子４０９から動きベクトル値を出力する。
【００１７】
１つの符号化対象マクロブロックにつき上記動作を行い、ベクトル値が出力されると、フレームメモリ・コントローラ４０２及び４０６は、符号化対象のマクロブロックを画面の左から右へ移動しながら、各符号化マクロブロックについて上記と同様の動作を繰り返し、右端の符号化対象のマクロブロックについての上記の動きベクトル値の出力が終わると、１つ下の左端のマクロブロックを符号化対象とするように移動（ラスタ順）するようにマクロブロックデータをフレームメモリから読み出す。この動作を繰り返すことで、ラスタ順に符号化対象マクロブロック毎のベクトル値を１画面について求める。
【００１８】
上述のように、外部のカレント画像フレームメモリ４０１及び参照画像フレームメモリ４０５と、動きベクトル探索器４０８の間に、カレント画像バッファ４０３及び参照画像バッファ４０７を設けることにより、動きベクトル探索器４０８は外部のカレント画像フレームメモリ４０１及び参照画像フレームメモリ４０５に頻繁にアクセスすることなく動きベクトル量を求めることができる。
【００１９】
上記構成の一例として、動きベクトルを探索する装置が従来開示されている（例えば、特許文献１参照）。まず、この装置の通常の動作を説明する。参照画面フレームメモリに蓄積されている図１３（ａ）に示す画面６００の画像データから、カレント画像バッファに蓄積されているマクロブロックと同じ画面内位置にあるマクロブロック６０１を探索中心とした探索領域６０２を参照画面フレームメモリから読み出し、参照画面バッファに蓄積する。
【００２０】
動きベクトル探索器は、探索領域６０２の内部からカレント画像バッファに蓄積されているマクロブロックとの間で画素毎の差分の絶対値和が最小となる領域を求め、マクロブロック６０１からの水平方向および垂直方向の移動量をベクトル値として求め出力する。
【００２１】
ところで、図１３（ｂ）に示すように探索中心マクロブロック６０３が画面右端に到達した場合には、探索領域６０４の部分領域６０５が画面６００の外部となるためフレームメモリからの読み出しが行われない。逆に、図１３（ｃ）に示すように、画面右端から１マクロブロック下の画面左端へ探索中心マクロブロック６０６が移動した場合には、探索領域６０７の部分領域６０８のデータが一度にフレームメモリから読み出されることになる。
【００２２】
前記特許文献１による方法は上記問題を鑑みて、読み出し動作の不均一を解消することを目的としている。すなわち、この特許文献１記載の方法では、図１３（ｄ）に示すように、探索中心マクロブロック６０９が画面６００の右端に近づき、探索領域６１０の右端の部分領域６１１が画面６００からはみ出した場合には、部分領域６１１のデータとして左端の領域６１２のデータを読み込んでおき、探索中心が左端に移動したときに一度にフレームメモリから読み出す必要を無くし、フレームメモリへのアクセスが時間的に集中することなく均等化できることを特徴としている。この動作により、フレームメモリへのアクセス回数の削減だけでなく、アクセスの時間的集中が回避される。
【００２３】
【非特許文献１】大久保榮  監修、「Ｈ.２６４／ＡＶＣ教科書」、（株）インプレス、２００４年（ＩＳＢＮ４−８４４３−１９８３−３）の９３〜９４ページ及び１５８〜１６１ページ
【特許文献１】特開平１０−２２４７９７号公報
【発明の開示】
【発明が解決しようとする課題】
【００２４】
ところで、ブロックマッチングによるベクトル値探索では、画素をずらしながらブロック位置を移動させるために、画素データの読み出し動作が頻発する。この結果、アクセス時間の遅いフレームメモリから参照画像の画素データを読み出す際の待ち時間が探索処理のサイクル数に多大な影響を及ぼすことと、符号化集積回路の外部への頻繁なアクセスは消費電力の増大を招くことが問題となっている。
【００２５】
一般に、符号化集積回路の内部にバッファ回路を内蔵することで前記問題に対処しているが、前述のように、Ｈ.２６４／ＭＰＥＧ−４ＡＶＣでは符号化効率改善のために信号処理が従来の数倍も複雑なものとなり、ハードウェア回路の一層の高速化や低消費電力化が求められている。
【００２６】
前述した従来のバッファ回路による方法では、探索範囲内の画素データを蓄積する際、探索中心マクロブロックの位置が移動する度に、探索範囲外になった領域の画素データのみを捨て、旧探索領域と新探索領域とで重複している領域の画素データは保存しておき、新たに探索額域になった部分領域の画素データのみをフレームメモリから読み出す方式を採用している。
【００２７】
この様子を図１４により説明する。図１４（ａ）で画面７００内のマクロブロック７０１を新たな探索中心位置としたときの探索範囲を太枠７０２で示している。このとき、バッファに蓄積されていた画素データの内のグレー領域７０３は新たな探索範囲に含まれないため破棄される。一方、新たに探索範囲に加えられた斜線領域７０４はフレームメモリから読み込まれる。
【００２８】
ところで、図１４（ａ）の新たにフレームメモリから読み込まれる斜線領域７０４の中の図１４（ｂ）に示す斜線領域７０５は、探索中心位置がマクロブロック７０１の１つ上の位置にあったときに、フレームメモリから一度読み込まれていたものである。すなわち、探索中心位置が移動する際に一旦破棄された画素データを再度読み込む必要があり、フレームメモリへのアクセスに無駄が生じるという問題がある。特に、前述したＨ.２６４／ＭＰＥＧ−４ＡＶＣのＭＢ−ＡＦＦでは、ベクトルの探索中心マクロブロック位置が、ラスタ順ではなくジグザグに移動するため、一層アクセスの無駄が多くなる。
【００２９】
また、従来はバッファ内の画素データを、画面イメージと一致するように格納している。しかし、前述の図１０で示したようにＨ.２６４／ＭＰＥＧ−４ＡＶＣでは、１６画素×１６ラインのマクロブロックをフィールド／フレーム構造で、４画素×４ライン、８画素×４ラインまたは、４画素×８ラインまで分割してベクトル探索を行う可能性がある。このため、従来の画素データ格納順では画素データ読み出し位置が複雑になり、ブロック単位が適応的に変化されると常に同じアクセスタイムを得ることが困難になる。このため、符号化に要する処理時間が均一でなくなるという問題がある。
【００３０】
本発明は以上の点に鑑みてなされたもので、符号化集積回路から外部メモリへのアクセス回数を従来以上に削減し、ベクトル探索時のフィールド／フレーム構造やブロックサイズの適応的な切り替えにも柔軟に対応できる動きベクトル探索装置を提供することを目的とする。
【課題を解決するための手段】
【００３１】
上記目的を達成するため、第１の発明は、入力された符号化対象の画像信号を一画面分蓄積する第１のメモリと、第１のメモリから所定画素数のブロック毎に読み出された符号化対象の画像信号を一時蓄積する第１のバッファと、符号化対象の画像信号に対して時間的に前又は後に表示される参照画像信号を一画面分蓄積する第２のメモリと、第２のメモリから読み出された、ブロックに対応する位置のブロックを包含する所定の探索範囲の参照画像信号を一時蓄積する第２のバッファと、第１のバッファからの符号化対象の画像信号のブロックと第２のバッファからの所定の探索範囲の参照画像信号とに基づいて、ブロックとマッチングする探索範囲内のブロック位置との相対位置関係を示す動きベクトルを探索する探索手段とを備えた動きベクトル探索装置であって、第２のメモリと第２のバッファとの間に設けられており、水平方向のブロック数が一画面分の画像信号の水平方向のブロック数と同じで、かつ、垂直方向のブロック数が探索範囲の垂直方向のブロック数よりも大きなブロック範囲の信号の記憶容量を備えたキャッシュメモリと、第２のメモリから探索範囲の中心ブロックからラスタ順で所定のブロック数だけ先行した位置のブロックの参照画像信号を読み出してキャッシュメモリに書き込むと共に、キャッシュメモリから第２のメモリ内の探索範囲に対応した範囲の参照画像信号を読み出して第２のバッファに供給することを、探索範囲及び読み出し範囲をそれぞれ１ブロックずつ巡回的にずらしながら繰り返す書き込み及び読み出し制御手段とを有することを特徴とする。
【００３２】
この発明では、符号化対象の画像信号のブロックと所定の探索範囲の参照画像信号とに基づいて、ブロックとマッチングする探索範囲内のブロック位置との相対位置関係を示す動きベクトルを探索する際に、水平方向のブロック数が一画面分の画像信号の水平方向のブロック数と同じで、かつ、垂直方向のブロック数が探索範囲の垂直方向のブロック数よりも大きなブロック範囲の信号の記憶容量を備えたキャッシュメモリから探索範囲の参照画像信号を読み出して動きベクトル探索に供すると共に、探索範囲の中心ブロックからラスタ順で所定のブロック数だけ先行した位置のブロックの参照画像信号を第２のメモリから読み出してキャッシュメモリに書き込むようにしたため、第２のメモリの探索範囲の参照画像信号の重複読み出しを回避することができる。垂直ブロック数をベクトル探索範囲より大きくする理由は、ベクトルの探索中心位置がラスタ順だけではなく、ジグザグに移動することがあるためである。
【００３３】
ここで、キャッシュメモリは第１及び第２のバッファと動きベクトルの探索手段と共に集積回路内部に設けることができ、この場合は、集積回路内部の回路規模は増加するが、代わりに外部の第２のメモリのアクセス回数が１回の動きベクトル探索につき１ブロックのみで済み、システム全体での電力消費を抑制できるというメリットがある。これは、集積回路内部の消費電力に比べて、集積回路から外部の第２のメモリへのアクセスに必要な電力の方が遥かに多いためである。また、集積回路から外部の第２のメモリへのアクセスタイムに比べ、集積回路内部で完結する処理の方が高速に動作できる点でも一層有利である。
【００３４】
また、上記の目的を達成するため、第２の発明は、第１の発明のキャッシュメモリを、ブロックを構成する所定画素数のうち、予め設定された画素数ずつに分割された参照画像信号をそれぞれ記憶する複数のバンクメモリと、第２のメモリからの参照画像信号を、複数のバンクメモリに振り分けて蓄積させるセレクタとを少なくとも有し、セレクタは、複数のバンクメモリから同時に読み出した参照画像信号の複数の画素が、所望のフィールド／フレーム構造の画像信号を構成する画素からなるように、振り分け動作を行う構成としたものである。この発明では、複雑なブロック構成のデータをキャッシュメモリから容易に並列に読み出すことが可能となり、後段のバッファメモリに対しても有効に機能させることができる。
【発明の効果】
【００３５】
本発明によれば、参照画像信号記憶用メモリとバッファとの間にキャッシュメモリを設けることにより、水平方向と垂直方向の両方向において参照画像信号記憶用メモリの読み出しの重複を回避し、１回の動きベクトル探索を行うときの画像符号化集積回路の外部に設けられた参照画像信号記憶用メモリへのアクセス回数を従来に比べて削減することができるため、信号処理の高速化及び低消費電力化を効果的に図れる。
【００３６】
また、本発明によれば、キャッシュメモリを複数のバンクメモリを設け、それらに参照画像信号を所定画素単位で振り分けて蓄積させる構成とすることにより、複雑なブロック構成のデータを複数のバンクメモリから並列に容易に読み出すことができるため、Ｈ.２６４／ＭＰＥＧ−４ＡＶＣの大きな特徴である、様々な異なるサイズの符号化ブロック単位を適応的に切り替える場合においても、柔軟に対応でき、信号処理時間の均一化を図ることができる。
【発明を実施するための最良の形態】
【００３７】
次に、本発明の一実施の形態について図面と共に説明する。図１は本発明になる動きベクトル探索装置の一実施の形態のブロック図を示す。同図中、図１１と同一回路ブロックには同一符号を付し、その説明を省略する。図１に示すように、本実施の形態は、図１１に示した従来の動きベクトル探索装置と比較すると、参照画像フレームメモリ４０５と参照画像バッファ４０７との間に参照画像キャッシュメモリ１００を挿入した点に特徴がある。参照画像フレームメモリ４０５と参照画像キャッシュメモリ１００とは、後述するように、メモリコントローラ４１０により書き込み／読み出し制御される。
【００３８】
カレント画像フレームメモリ４０１側ではなく、参照画像フレームメモリ４０５側に上記のキャッシュメモリ１００を設けたのは、動きベクトルは、符号化対象のカレント画像の一つのマクロブロック（ＭＢ）とマッチングする位置を参照画像の探索範囲の複数のＭＢの中から求めるから、アクセス回数はカレント画像フレームメモリ４０１よりも参照画像フレームメモリ４０５の方が多く、また、カレントＭＢの位置は予め分かっている（固定である）のに対し、参照画像の方は探索範囲のどこをアクセスするか予め分からないので、すべてのデータを用意しておかなければならないためである。
【００３９】
次に、図１の参照画像キャッシュメモリ１００の動作を、図２と図３を用いて説明する。なお、以下の説明で、探索中心及び探索範囲とは動きベクトル探索の中心及び範囲を示すものとする。図２は図１の参照画像フレームメモリ４０５内に蓄積されている画面イメージを示しており、図３は参照画像フレームメモリ４０５から読み出されたマクロブロックデータを参照画像キャッシュメモリ１００内に配置したイメージを模式的に示した図を示す。図２と図３の細線で区切られた領域は１６画素×１６ラインのマクロブロックを表している。
【００４０】
図３から分かるように、本実施の形態の参照画像キャッシュメモリ１００の水平方向メモリサイズは、参照画像の水平方向のマクロブロック数と同じサイズにすることを特徴としている。また、参照画像キャッシュメモリ１００の垂直方向のメモリサイズは、垂直方向のベクトル探索範囲よりも大きいブロック数であることを特徴としているが、本実施の形態においては、動きベクトルの探索範囲よりも１マクロブロック分大きなサイズとしている。垂直方向のメモリサイズを垂直方向の動きベクトル探索範囲より大きくする理由は、動きベクトルの探索中心位置がラスタ順だけではなく、ジグザグに移動することがあるためである。例えば、図９（ｂ）又は（ｃ）の構造を実現するため、図９（ａ）に示すように上下（垂直）方向にカレントマクロブロックが移動した後、横へ１つ移動して、また上下に移動というジグザグに移動する場合、動きベクトル探索範囲もジグザグに移動するためである。
【００４１】
始めに、参照画像フレームメモリ４０５における図２（ａ）の探索中心マクロブロック１１０ａの位置が探索中心であり、範囲１１１ａを探索範囲とする。また、参照画像キャッシュメモリ１００には、図２（ａ）の探索中心マクロブロック１１０ａに対応して図３（ａ）の探索中心マクロブロック１２０ａが配置されており、図２（ａ）の探索範囲１１１ａに対応する領域が図３（ａ）の探索範囲１２１ａとなる。
【００４２】
このとき、メモリコントローラ４１０により探索範囲１２１ａの各マクロブロックの画素データが読み出されて後段に接続された図１の参照画像バッファ４０７へ転送され、動きベクトル探索に供される。また、この参照画像キャッシュメモリ１００の画素データの読み出しの直前に、あるいは読み出しと並行して、メモリコントローラ４１０により参照画像フレームメモリ４０５から読み出され参照画像キャッシュメモリ１００に転送された画素データが、参照画像キャッシュメモリ１００の図３（ａ）の探索範囲１２１ａの右下に隣接するマクロブロック１２２ａの位置に書き込まれる。この書き込み画素データは、図２（ａ）の探索範囲１１１ａの右下に隣接するマクロブロック（すなわち、探索範囲を包含し、かつ、探索範囲を追い越すことのない、ラスタ順で固定長分（ここでは１２マクロブロック）だけ先行したマクロブロック）１１２ａの画素データである。
【００４３】
図１の動きベクトル探索器４０８で動きベクトルの探索が終了すると、参照画像フレームメモリ４０５内の探索中心マクロブロックは、ラスタ順で水平方向に一マクロブロック分移動して、図２（ａ）の１１０ａから同図（ｂ）の１１０ｂになる。これに伴い、参照画像キャッシュメモリ１００も図３（ｂ）の探索中心マクロブロック１２０ｂに移動する。この結果、探索範囲は図２（ｂ）の探索範囲１１１ｂと図３（ｂ）の探索範囲１２１ｂとなる。
【００４４】
この結果、参照画像キャッシュメモリ１００の探索範囲１２１ｂの各マクロブロックの画素データが読み出されて図１の参照画像バッファ４０７へ転送され、動きベクトル探索に供される。また、このとき、参照画像フレームメモリ４０５の図２（ｂ）に示すマクロブロック１１２ｂの画素データが読み出され、参照画像キャッシュメモリ１００の図３（ｂ）のマクロブロック１２２ｂの位置に書き込まれる。この書き込み画素データは、図２（ｂ）の探索中心マクロブロック１１０ｂに対して、ラスタ順で固定長分（１２マクロブロック分）だけ先行したマクロブロック１１２ｂの画素データである。また、参照画像キャッシュメモリ１００の図３（ｂ）の画素データ書き込みマクロブロックの位置も、探索中心マクロブロック１２０ｂに対して、ラスタ順で固定長分（１２マクロブロック分）だけ先行したマクロブロックの位置となる。
【００４５】
更に、図２（ｃ）に示すように、探索中心マクロブロック１１０ｃに探索中心が移動すると、探索範囲は１１１ｃ、参照画像フレームメモリ４０５から読み出される画素データは、探索中心マクロブロック１１０ｃに対して、ラスタ順で固定長分（１２マクロブロック分）だけ先行したマクロブロック１１２ｃとなり、これに対応して参照画像キャッシュメモリ１００では探索中心マクロブロックが図３（ｃ）の１２０ｃ、探索範囲が図３（ｃ）の１２１ｃ、書き込みマクロブロックが探索中心マクロブロック１１２ｃに対して、ラスタ順で固定長分（１２マクロブロック分）だけ先行したマクロブロック１２２ｃとなる。この動作は、探索中心マクロブロックが画面右端に近づく場合を説明するものである。
【００４６】
次に、探索中心マクロブロックが右端に到達して１マクロブロック分下の左端に折り返した場合の様子を図２（ｄ）に示す。これに対応して、参照画像キャッシュメモリ１００では、探索中心マクロブロックが図３（ｄ）に示す１２０ｄとなり、書き込みマクロブロックが同図（ｄ）の１２２ｄとなる。
【００４７】
ここで、参照画像キャッシュメモリ１００での探索範囲は、探索中心マクロブロック１２０ｄを探索範囲の中心位置とすると図３（ｄ）に示す探索範囲１２１ｄとなるが、その範囲の下側が参照画像キャッシュメモリ１００の記憶領域からはみ出しており、画素データが無いが、この部分の画素データは探索範囲を上側に折り返した図３（ｄ）に示す探索範囲１２３ｄで示される領域に含まれる位置に存在しているので、この部分を合わせて画素データを読み出すことで、図２（ｄ）の探索範囲１１１ｄに相当する画素データを後段に接続された図１の参照画像バッファ４０７は得ることができる。
【００４８】
また、図２（ｅ）に示すように、参照画像フレームメモリ４０５の探索中心マクロブロックが１１０ｅに移動した場合、その探索範囲は１１１ｅとなり、また、読み出しマクロブロックは探索中心マクロブロック１１０ｅに対して、ラスタ順で固定長分（１２マクロブロック分）だけ先行したマクロブロック１１２ｅとなる。この場合、参照画像キャッシュメモリ１００は、図３（ｅ）に示すように、探索中心マクロブロックが１２０ｅとなり、書き込みマクロブロックが探索中心マクロブロック１２０ｅに対して、ラスタ順で固定長分（１２マクロブロック分）だけ先行した１２２ｅとなる。ただし、図２（ｅ）の読み出しマクロブロック１１２ｅは垂直方向に折り返しているので、書き込みマクロブロック１２２ｅは読み出しマクロブロック１１２ｅと時間的に異なる参照画像フレームの画素データである。
【００４９】
また、図３（ｅ）において、破線１２４ｅは参照画像フレームが次の処理順のフレームに変わった境界位置を示している。ここで探索範囲は、図３（ｅ）の探索範囲１２１ｅとなり、その範囲の下側が参照画像キャッシュメモリ１００の記憶領域からはみ出しており画素データが無いが、この部分の画素データは探索範囲を上側に折り返した図３（ｅ）に示す探索範囲１２３ｅで示される領域に存在しているので、この部分を合わせて読み出すことで、図２（ｅ）の探索範囲１１１ｅに相当する画素データを後段に接続された図１の参照画像バッファ４０７は得ることができる。この動作は、探索中心マクロブロックが画面右下端に近づく場合を説明するものである。
【００５０】
更に、図２（ｆ）に示すように、参照画像フレームメモリ４０５の探索中心マクロブロックが１１０ｆに移動した場合、その探索範囲は同図（ｆ）に示す探索範囲１１１ｆとなり、読み出しマクロブロックは同図（ｆ）に示す１１２ｆとなる。この場合、参照画像キャッシュメモリ１００は、図３（ｆ）に示すように、探索中心マクロブロックが１２０ｆとなり、探索範囲が１２１ｆ、書き込みマクロブロックが１２２ｆとなる。
【００５１】
このとき、探索範囲１２１ｆの上側が参照画像キャッシュメモリ１００の記憶領域からはみ出しており画素データが無いが、この部分の画素データは探索範囲を下側に折り返した探索範囲１２３ｆで示される領域に存在しているので、この部分を合わせて読み出すことで、図２（ｆ）の探索範囲１１１ｆに相当する画素データを後段に接続された図１の参照画像バッファ４０７は得ることができる。ただし、図３（ｆ）において、フレームの境界位置を示す破線１２４ｆよりも下側の画素データは、次の時間のフレームの画素データなので参照しない。この動作は、探索中心マクロブロックが画面右下端にある場合を説明するものである。
【００５２】
最後に、図２（ｇ）に示すように、参照画像フレームメモリ４０５の探索中心マクロブロックが１１０ｇに移動した場合、その探索範囲は同図（ｇ）に示す探索範囲１１１ｇとなり、読み出しマクロブロックは探索中心マクロブロック１１０ｇに対して、ラスタ順で固定長分（１２マクロブロック分）だけ先行した同図（ｇ）に示す１１２ｇとなる。この場合、参照画像キャッシュメモリ１００は、図３（ｇ）に示すように、探索中心マクロブロックが１２０ｇとなり、探索範囲が１２１ｇ、書き込みマクロブロックが探索中心マクロブロック１２０ｇに対して、ラスタ順で固定長分（１２マクロブロック分）だけ先行した１２２ｇとなる。ただし、フレームの境界位置を示す図３（ｇ）の破線１２４ｇよりも上側の画素データは、処理順的に前のフレームの画素データなので参照しない。この動作は、探索中心マクロブロックが次の処理順のフレームの画面左上端に移動した場合を説明するものである。このように、探索範囲は参照画像キャッシュメモリ１００内において巡回的に移動する。
【００５３】
上述の動作説明は、図１の参照画像フレームメモリ４０５の読み出しと、参照画像キャッシュメモリ１００の書き込み及び探索範囲の位相関係について、その一部を示しているのみであるが、様々な位相関係についても容易に想像することができる。また、本実施の形態ではラスタ順に探索マクロブロックが移動するフレーム構造で説明したが、ジグザグに移動するフィールド構造でも同様に考えればよい。
【００５４】
以上、説明したように、本実施の形態では、水平方向サイズを参照画像の水平方向ブロックサイズと同一とし、かつ、垂直方向サイズを探索範囲の垂直方向ブロック数より大きく設定したことを特徴とする参照画像キャッシュメモリ１００を設け、動きベクトルの探索動作に合わせて、一定の時間間隔毎に１マクロブロックずつ参照画像フレームメモリ４０５から画素データを参照画像キャッシュメモリ１００に書き込むだけで、過不足なくベクトル探索動作が可能となる。
【００５５】
また、本実施の形態によれば、水平方向と垂直方向の両方向において参照画像キャッシュメモリ１００からのデータ読み出しの重複が回避されるため、画像符号化集積回路の外部メモリである参照画像フレームメモリ４０５へのアクセス回数が減り、信号処理の高速化及び低消費電力化を効果的に図れる。
【００５６】
更に、本実施の形態では、参照画像キャッシュメモリ１００が付加されたことで、集積回路内部の回路規模は増加するが、代わりに外部メモリである参照画像フレームメモリ４０５のアクセス回数が１回の動きベクトル探索につき１マクロブロックのみで済み、システム全体での電力消費を抑制できるというメリットがある。これは、集積回路内部の消費電力に比べて、集積回路から外部回路へのアクセスに必要な電力の方が遥かに多いためである。また、集積回路から外部回路へのアクセスタイムに比べ、集積回路内部で完結する処理の方が高速に動作できる点でも一層有利である。
【００５７】
次に、参照画像キャッシュメモリについて更に詳細に説明する。図４は本発明になる動きベクトル探索装置に用い得る参照画像キャッシュメモリの一実施の形態の構成図を示す。図４の構成の参照画像キャッシュメモリは、図１の本発明になる動きベクトル探索装置の参照画像キャッシュメモリ１００として用いることができる。
【００５８】
図４の入力端子１５０には、図１の参照画像フレームメモリ４０５からの画素データがマクロブロック単位で入力され、セレクタ１５１に供給される。セレクタ１５１の出力側には４つのバンクメモリ１５２〜１５５が接続されており、入力された画素データのマクロブロック内位置に従って、画素データを蓄積するバンクメモリを選択する。
【００５９】
ここで、画素データのマクロブロック内位置と蓄積されるバンクメモリの関係を図５と図６を用いて説明する。図５は水平方向１６画素、垂直方向１６ラインの１つのマクロブロックを示しており、水平方向の４画素を１つの長方形で表現している。従って、図５は水平方向に４個の長方形と垂直方向に１６個の長方形により、１６画素×１６ラインの１つのマクロブロックの画素データを示している。
【００６０】
また、図５において、各長方形内に記された1つのアルファベットと２桁の数字からなる３桁の記号は、書き込む４つのバンクメモリ１５２〜１５５の識別子であり、図６に示すように４つのバンクＡ〜Ｄに図４のセレクタ１５１により振り分けられる。ここで、バンクＡ、Ｂ、Ｃ及びＤは、図４のバンクメモリ１５２、１５３、１５４及び１５５に相当する。
【００６１】
これら４つのバンクメモリ１５２〜１５５（バンクＡ〜Ｄ）の合計容量は、前述の実施の形態で説明したように、水平方向ブロック数を参照画像の水平方向ブロック数と同一とし、かつ、垂直方向ブロック数を探索範囲の垂直方向ブロック数より大きく設定されているものとする。また、図６に示すように、１アドレスにつき８画素のデータ（３２ビット）を割り付け、１つのバンクメモリから一度に８画素分のデータが読み出されるものとする。
【００６２】
また、４つのバンクメモリ１５２〜１５５からは，前述のようにフィールド／フレーム構造の８画素×４ラインまたは４画素×８ラインを単位としたブロックで画素データが読み出される。ただし、図５の太線で示す４画素×４ラインを読み出し位置の境界とするものとし、任意の１画素単位で読み出しブロック位置の起点を指定することはできないものとする。
【００６３】
ここで、ブロックサイズを８画素×４ラインと４画素×８ラインの２種類に限定した理由は、参照画像キャッシュメモリ１００の後段の参照画像バッファ４０７で４画素×４ラインのような小さなブロックを上記の２種類のブロックから切り出して利用することが可能であり、むしろ読み出しブロックサイズの種類を増やすことによる読み出し制御が複雑になるデメリットの方が大きいためである。
【００６４】
一例として、図７（ａ）は図５のＡ００を起点としてフレーム構造４画素×８ラインを読み出す場合のバンクメモリ内位置を示しており、図７（ｂ）は図５のＡ００を起点としてフィールド構造４画素×８ラインを読み出す場合のバンクメモリ内位置を示している。また、図７（ｃ）は図５のＡ００を起点としてフレーム構造８画素×４ラインを読み出す場合のバンクメモリ内位置を示しており、図７（ｄ）は図５のＡ００を起点としてフィールド構造８画素×４ラインを読み出す場合のバンクメモリ内位置を示している。
【００６５】
図７（ａ）〜（ｄ）のいずれの構造の画素データを読み出す場合も、図６に示した画素データを割り振られて蓄積している４つのバンクメモリ１５２〜１５５（バンクＡ〜Ｄ）に対して、読み出しアドレスを同時に（ただし、同じアドレスではなく、図７（ａ）〜（ｄ）の画素データにより異なる）、並列に１回発行するだけで（つまり、１回のデータ読み出しを行うことだけで）、読み出し動作が完了する。
【００６６】
例えば、図７（ａ）に示すフレーム構造４画素×８ラインを読み出す場合は、バンクメモリ１５２に対しては、図６に示すＡ００、Ａ０１を格納している１アドレスを指定し、バンクメモリ１５３に対しては、図６に示すＢ００、Ｂ０１を格納している１アドレスを指定し、バンクメモリ１５４に対しては、図６に示すＣ２０、Ｃ２１を格納している１アドレスを指定し、バンクメモリ１５５に対しては、図６に示すＤ２０、Ｄ２１を格納している１アドレスを指定して、同時に読み出しを１回行うだけで、読み出し動作が完了することになる。図７（ｂ）〜（ｄ）の場合も同様である。
【００６７】
再び図４に戻って説明するに、バンクメモリ１５２〜１５５から同時に、かつ、並列に読み出された画素データは、並べ替え器１５６に入力され、例えば図７（ａ）〜（ｄ）のいずれかのようにデータ順を並べ替えてフィールド／フレーム構造の８画素×４ラインまたは４画素×８ラインのブロックを作成する。並べ替え器１５６で作成されたブロックデータは、出力端子１５７から出力され、図１の参照画像バッファ４０７へ供給される。
【００６８】
このように、本実施の形態によれば、Ｈ.２６４／ＭＰＥＧ−４ＡＶＣの大きな特徴である、図１０と共に説明した様々な異なるサイズの符号化ブロック単位を適応的に切り替える場合においても、最小単位である４画素×４ラインのサイズを含めて、４画素×８ライン、８画素×４ラインの画素データを一度の読み出しで取得でき、８画素×８ラインの画素データは２度の読み出しで取得でき、更にそれらがフレーム構造であってもフィールド構造であっても、同じアクセス時間で取得でき、信号処理時間の均一化が図れ、よって極めて効果的なベクトル探索を行える。
【００６９】
なお、本実施の形態で使用した画面内のマクロブロック数は、説明を簡単にするために便宜上用いたものであり、本発明による動きベクトル探索装置が対象とする画面内マクロブロック数を限定するものではない。また、Ｈ.２６４／ＭＰＥＧ−４ＡＶＣでは、複数の画面を参照画像として選択することが可能であるが、その場合には参照画像フレームメモリと本発明による参照画像キャッシュメモリおよび参照画像バッファの回路を、使用される参照画像の枚数に応じて複数用意すればよいことが容易に想像できる。
【図面の簡単な説明】
【００７０】
【図１】本発明の動きベクトル探索装置の一実施の形態のブロック図である。
【図２】図１の参照画像フレームメモリ内に蓄積されている画面イメージを模式的に示す図である。
【図３】図１の参照画像フレームメモリから読み出されたマクロブロックデータを参照画像キャッシュメモリ内に配置したイメージを模式的に示した図である。
【図４】図１中の参照画像キャッシュメモリの位置実施の形態の構成を示すブロック図である。
【図５】マクロブロック内のデータのバンク書き込み先の一例を示す図である。
【図６】バンクメモリ内のデータ配置を説明する図である。
【図７】バンクメモリからのデータ読み出しを説明する図である。
【図８】ピクチャＡＦＦを説明する模式図である。
【図９】ＭＢ−ＡＦＦを説明する模式図である。
【図１０】マクロブロックタイプを説明する模式図である。
【図１１】従来の動きベクトル探索装置の一例を示すブロック図である。
【図１２】従来の動きベクトル探索装置を集積回路で表現した場合の接続図である。
【図１３】従来装置において、バッファメモリに蓄積される画素データの説明図である。
【図１４】従来装置の画素データ蓄積法の問題点を説明する図である。
【符号の説明】
【００７１】
１００  参照画像キャッシュメモリ
１５０、４００、４０４  入力端子
１１０ａ〜１１０ｇ、１２０ａ〜１２０ｇ  探索中心マクロブロック
１１１ａ〜１１１ｇ、１２１ａ〜１２１ｇ、１２３ｄ、１２３ｅ、１２３ｆ  探索領域
１１２ａ〜１１２ｇ  フレームメモリ読み出しマクロブロック
１２２ａ〜１２２ｇ  キャッシュメモリ書き込みマクロブロック
１２４ｅ、１２４ｆ、１２２ｇ  フレーム境界
１５１  セレクタ
１５２、１５３、１５４、１５５  バンクメモリ
１５６  並べ替え器
４０１  カレント画像フレームメモリ
４０２  フレームメモリ・コントローラ
４０３  カレント画像バッファ
４０５  参照画像フレームメモリ
４０７  参照画像バッファ
４０８  動きベクトル探索器
４１０  メモリコントローラ
１５７、４０９  出力端子
５００  動きベクトル集積回路
【図１】
2007243366.tif 000004
【図２】
2007243366.tif 000005
【図３】
2007243366.tif 000006
【図４】
2007243366.tif 000007
【図５】
2007243366.tif 000008
【図６】
2007243366.tif 000009
【図７】
2007243366.tif 000010
【図８】
2007243366.tif 000011
【図９】
2007243366.tif 000012
【図１０】
2007243366.tif 000013
【図１１】
2007243366.tif 000014
【図１２】
2007243366.tif 000015
【図１３】
2007243366.tif 000016
【図１４】
2007243366.tif 000017