(57)【要約】【課題】従来の映像圧縮符号化装置では、画面間予測処理において、記憶容量不足により参照画像を複数枚使用できず、インタレース映像の動きの無い画像領域において大きな画質劣化を招いたり、参照画像を複数枚使用する場合でも、探索範囲の垂直方向範囲を十分に確保できず、動きの大きな映像において大きな画質劣化を招くなどの問題があった。【解決手段】画面間予測を用いて映像データの圧縮符号化を行う映像圧縮符号化装置において、入力画像１５０についての動き検出を実行する際に参照される参照画像について、参照画像の枚数および動き検出に使用される参照画像上の探索範囲の大きさの少なくとも一方を制御する。【選択図】図１
2011097488.tif 000002
【特許請求の範囲】
【請求項１】
画面間予測を用いて映像データの圧縮符号化を行う映像圧縮符号化装置であって、
前記圧縮符号化を行う画像における動き検出において参照される参照画像についての制御であり、前記画面間予測における動き検出の結果である動きベクトルの大きさに応じて、前記画面間予測において参照される参照画像の枚数と前記参照画像における探索範囲の大きさとの少なくとも一方を制御する制御手段を有することを特徴とする映像圧縮符号化装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、映像データを圧縮符号化する映像圧縮符号化装置に関し、特に、画面間予測（フレーム間予測）を用いた符号化方式に関する。
【背景技術】
【０００２】
近年、ブロードバンドネットワークの発達による動画配信コンテンツの増加や高精細映像ディスプレイの普及等の状況下において、ＭＰＥＧ（Moving  Picture  Expert  Group）等の映像圧縮符号化技術は必要不可欠な技術となっている。
【０００３】
一般的な映像圧縮符号化技術において、符号化処理とは、処理対象画像をより少ないデータ量のストリームに変換する処理である。一方、復号化処理とは、符号化処理の結果であるストリームから、元の画像を復元する処理である。ＭＰＥＧ方式の符号化処理においては、圧縮効率を高めるために、予測技術を用いた符号化を行う。予測方式としては、画面間予測（フレーム間予測とも言われる）と画面内予測の二つが存在する。これらのうち、特に画面間予測は符号化効率が高く、高画質化に大きく寄与する。
【０００４】
画面間予測は、処理対象画像の前後の、参照画像と言われる複数フレームを用いて、処理対象画像に対する予測画像を作成し、作成した予測画像と処理対象画像との差分を伝送することで、画像データの情報量を削減する予測方式である。予測画像は、参照画像上から処理対象画像と最も良く似た部分を探し、抜き出すことで作成される。この参照画像上から処理対象画像と最も良く似た部分を探し出す処理は、具体的には、映像中の物体の動きを追う処理（すなわち、動き量を求める処理）であるため、動き検出処理などと呼ばれる。
【０００５】
画面間予測においては、動き検出処理および予測画像作成処理のために参照画像データと呼ばれるデータが必要になる。一般的に、ＭＰＥＧ方式では処理対象画像をマクロブロックと呼ばれる所定サイズの画素ブロックに分割し、マクロブロックごとに順次、予測画像の作成を行う。このとき、各マクロブロックの予測画像は、処理対象画像におけるマクロブロックの位置に対応する参照画像上での位置を中心とした探索範囲と言われる領域内から検出されるため、マクロブロックごとに探索範囲分の参照画像データが必要となる。
【０００６】
特に最新の映像圧縮符号化技術の標準規格であるＭＰＥＧ４−ＡＶＣ（MPEG-4  Part  10  Advanced  Video  Coding）／Ｈ．２４６では、画面間予測において複数枚の参照画像を用いて予測画像を作成することで高画質化を実現しているため、使用する参照画像の枚数に比例した探索範囲分の参照画像データを必要とする。
【０００７】
また、一般的に、参照画像データは映像圧縮符号化装置内のフレームバッファと言われる記憶領域に格納される。フレームバッファは数メガから数十メガバイトの記憶容量を必要とするためＤＲＡＭ（Dynamic  Random  Access  Memory）などの大容量メモリで構成される場合が多い。そのため、画面間予測を処理する画面間予測処理部とフレームバッファとは別々のＩＣ（Integrated  Circuit）チップに構成されるのが一般的であり、フレームバッファと画面間予測処理部との間のデータ転送帯域の不足がしばしば問題となる。特に高精細映像用の映像圧縮符号化装置においては上記問題が顕在化する。そのため、特許文献１に記載されているように、画面間予測処理部と同一のチップ内に参照画像データをマクロブロックライン単位でキャッシュするための参照画像バッファを持たせ、次のマクロブロックの画面間予測に必要となる参照画像データをあらかじめ読み込んでおくという方法が一般的に採用される。この方法は先読み処理などと言われるが、この先読み処理によって画面間予測に必要なデータ転送帯域を削減することは、一般的によく行われている手法である。なお、「マクロブロックライン」とは、参照画像を水平方向に分割した帯状の画像であって、その垂直方向の幅がマクロブロックの垂直方向の幅と同一幅である画像を言う。
【０００８】
図８は、従来の高精細映像用の映像圧縮符号化装置の構成例を示す図である。従来における映像圧縮符号化装置９００は、画面間予測処理部９０１と、符号化処理部１０２と、外部メモリ制御部１０３と、参照画像バッファ１１１と、参照画像バッファ制御部９１２と、外部メモリ（フレームバッファ）１２０とによって構成される。
【０００９】
画面間予測処理部９０１は、画面間予測による予測画像を生成する機能を有する。具体的には、参照画像バッファ１１１より読出した参照画像と処理対象画像である入力画像１５０とを用いて動き検出処理を行い、入力画像１５０に対する予測画像を生成する。
【００１０】
符号化処理部１０２は、生成された予測画像と入力画像１５０との差分である差分画像に対して符号化処理を施し、ストリーム（符号化データ）１５１を生成する機能を有する。より具体的には、符号化処理部１０２は、差分画像に対して直交変換処理、量子化処理を行い、さらに可変長符号化処理を施してストリーム１５１を生成する。また、符号化処理部１０２は、量子化処理後のデータに対し、逆量子化処理、逆直交変換処理を行って差分画像を復元し、予測画像に、復元された差分画像を加算することで再構成画像を生成し、外部メモリ制御部１０３を介して外部メモリ１２０へ出力する。
【００１１】
参照画像バッファ１１１は、参照画像データをマクロブロックライン単位でキャッシュするためのメモリである。また、参照画像バッファ１１１は、画面間予測処理部９０１での予測処理に使用する参照画像の枚数に応じたメモリ数を備える。
【００１２】
参照画像バッファ制御部１１２は、参照画像バッファ１１１を制御する機能を有する。具体的には、参照画像バッファ制御部１１２は、参照画像を格納している外部メモリ１２０から、参照画像の一部データである参照画像データを読出し、参照画像バッファ１１１を構成するメモリの任意のアドレスへ書込む制御を行う。
【００１３】
外部メモリ１２０は、参照画像を格納するフレームバッファである。また、外部メモリ１２０は、符号化処理部１０２から出力された再構成画像を記憶する。この外部メモリ１２０に記憶された再構成画像は、参照画像として、外部メモリ制御部１０３を介して参照画像バッファ１１１へ出力される。
【先行技術文献】
【特許文献】
【００１４】
【特許文献１】特開２００９−１５２７１０号公報
【発明の概要】
【発明が解決しようとする課題】
【００１５】
従来の映像圧縮符号化装置においては、図８に示すように、参照画像バッファ１１１を備えることによって高精細映像の圧縮符号化処理におけるデータ転送帯域不足の問題を解決することができた。しかし、参照画像バッファ１１１に必要な記憶容量は特に探索範囲の垂直方向範囲に比例し、かつ、参照画像１枚あたり数メガビットの記憶容量を必要とする。また、高画質化のためには予測画像生成の際に複数の参照画像を用いる必要があるため、参照画像バッファ１１１は非常に大きな記憶容量が必要である。この点については、特に、参照画像バッファ１１１の記憶容量を制限しなければならない状況下において大きな問題となる。なぜなら、記憶容量一定の状況下においては、参照画像枚数と探索範囲の垂直方向の大きさとはトレードオフの関係となるからである。以下、この点について、より具体的に説明する。
【００１６】
図９は、映像圧縮符号化装置９００において、１枚の参照画像を用いた動き検出処理について説明する図である。図９において、画像７０１は圧縮符号化を行う処理対象画像である。また、画像７０２は処理対象画像７０１を圧縮符号化処理する際に使用される参照画像である。
【００１７】
処理対象画像７０１のマクロブロック７１１について動き検出処理を行う場合、参照画像７０２における探索範囲は、処理対象画像７０１におけるマクロブロック７１１の位置に対応する参照画像７０２上での位置（図中の破線部分）を中心とした領域７３２となる。この時、参照画像バッファ１１１は、探索範囲７３２を含む参照画像データ７２２を保持する。ここで、画面間予測処理部９０１は、探索範囲７３２からマクロブロック７１１の動き量７４２を求めることによって予測画像を生成する。しかしながら、このように１枚の参照画像を用いて生成された予測画像は、特にインタレース映像の動きの無い画像領域において大きな画質劣化を招くという問題があった。
【００１８】
次に、参照画像を２枚用いて動き検出処理を行う場合について説明する。図１０は、映像圧縮符号化装置９００において、２枚の参照画像を用いた動き検出処理について説明する図である。図１０において、画像８０１は処理対象画像であり、画像８０２、８０３は参照画像である。
【００１９】
処理対象画像８０１のマクロブロック８１１について動き検出処理を行う場合、参照画像８０２における探索範囲は、処理対象画像８０１におけるマクロブロック８１１の位置に対応する参照画像８０２上での位置（図中の破線部分）を中心とした領域８３２となり、参照画像８０３における探索範囲は、処理対象画像８０１におけるマクロブロック８１１の位置に対応する参照画像８０３上での位置（図中の破線部分）を中心とした領域８３３となる。そして、この時、参照画像バッファ１１１は、探索範囲８３２を含む参照画像データ８２２、および探索範囲８３３を含む参照画像データ８２３を保持する（図中の網掛け部分）。また、画面間予測処理部９０１は、探索範囲８３２、８３３からマクロブロック８１１の動き量８４２、８４３を求め、それぞれの動き量に対応した予測画像を生成する。そして、より精度の高い予測画像を採用して符号化処理を行う。以上のように２枚の参照画像を用いて生成された予測画像は、インタレース映像においても高画質を達成できる。しかし、参照画像バッファ１１１の記憶容量の制限により、探索範囲の垂直方向を十分に確保できず、動きの大きな映像において大きな画質劣化を招くという問題があった。
【００２０】
映像圧縮符号化装置においては、一般的に、ＩＣチップのコストに大きな制約があって記憶容量を抑えなければならない場合や、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）のように記憶容量に制限があるデバイスを用いて高精細映像用の映像圧縮符号化装置を実現する場合がある。このような場合、上述したように、従来の映像圧縮符号化装置では記憶容量不足により参照画像を複数枚使用できず、インタレース映像の動きの無い画像領域において大きな画質劣化を招くという問題がある。また、参照画像を複数枚使用できる場合でも、探索範囲の垂直方向を十分に確保できず、動きの大きな映像において大きな画質劣化を招くなど、高画質化の観点から大きな問題があった。
【課題を解決するための手段】
【００２１】
上記の課題を解決するために、本発明は、画面間予測を用いて映像データの圧縮符号化を行う映像圧縮符号化装置であって、前記圧縮符号化を行う画像における動き検出において参照される参照画像についての制御であり、前記画面間予測における動き検出の結果である動きベクトルの大きさに応じて、前記画面間予測において参照される参照画像の枚数と前記参照画像における探索範囲の大きさとの少なくとも一方を制御する制御手段（例えば、図１の参照画像バッファ制御部１１２）を有することを特徴とする映像圧縮符号化装置を提案する。
【００２２】
この構成によれば、映像データの圧縮符号化処理の画面間予測において使用される参照画像の枚数および参照画像における探索範囲の大きさを動的に変更することが可能となる。よって、限られた記憶容量であっても、圧縮映像データの高画質化が可能となる。
【発明の効果】
【００２３】
以上のように、本発明によれば、映像圧縮符号化装置において限られた記憶容量であっても、圧縮映像データの高画質化が可能である。
【図面の簡単な説明】
【００２４】
【図１】本発明の映像圧縮符号化装置の構成例を示す図である。
【図２】参照画像バッファ制御部１１２の具体的構成の一例を示すブロック図である。
【図３】映像圧縮符号化装置における処理の流れを示すフロー図である。
【図４】参照画像バッファ１１１における参照画像データの保持状態を示す図である。
【図５】参照画像バッファ１１１における参照画像データの保持状態を具体的に示す図である。
【図６】参照画像枚数を２枚から１枚へと切り替える場合の参照画像バッファ１１１の制御方法について説明する図である。
【図７】参照画像枚数を１枚から２枚へと切り替える場合の参照画像バッファ１１１の制御方法について説明する図である。
【図８】従来の高精細映像用の映像圧縮符号化装置の構成例を示す図である。
【図９】従来の映像圧縮符号化装置において、１枚の参照画像を用いた動き検出処理について説明する図である。
【図１０】従来の映像圧縮符号化装置において、２枚の参照画像を用いた動き検出処理について説明する図である。
【発明を実施するための形態】
【００２５】
以下、本発明の実施形態について、図面を参照しながら説明する。なお、以下の説明において参照する各図では、他の図と同等部分は同一符号によって示す。
【００２６】
（映像圧縮符号化装置の構成）
図１は、本実施形態に係る映像圧縮符号化装置の構成例を示す図である。図１において、映像圧縮符号化装置１００は、画面間予測処理部１０１と、符号化処理部１０２と、外部メモリ制御部１０３と、参照画像バッファ１１１と、参照画像バッファ制御部１１２と、外部メモリ（フレームバッファ）１２０とを含んで構成される。
【００２７】
ここで、画面間予測処理部１０１と参照画像バッファ制御部１１２以外の機能については、図８に示す従来の映像圧縮符号化装置９００における機能と同様であり、特許文献１に記載されているように当業者にとっては周知の技術である。このため、それらの機能については、ここでの詳細な説明は省略する。
【００２８】
本実施形態に係る映像圧縮符号化装置１００の特徴は、画面間予測処理部１０１が出力する動き情報に基づいて、参照画像バッファ１１１が保持する参照画像枚数および探索範囲の垂直方向の大きさを、参照画像バッファ制御部１１２が動的に制御する点にある。以下、この点について詳細に説明する。
【００２９】
（参照画像バッファ制御部１１２の具体的構成）
図２は、参照画像バッファ制御部１１２の具体的構成の一例を示すブロック図である。参照画像バッファ制御部１１２は、動き情報統計値算出部２０１と、参照枚数決定部２０２と、制御部２０３と、を有する。
【００３０】
動き情報統計値算出部２０１は、画面間予測処理部１０１から出力される入力画像１５０の垂直方向動き情報２５０を受信して統計値を算出し、この統計値を統計情報２５４として参照枚数決定部２０２へ出力する。ここで、「垂直方向動き情報」とは、入力画像１５０の垂直方向の動きの大きさを反映できる情報であり、具体的には、例えば動きベクトル（ＭＶｘ，ＭＶｙ）の垂直方向成分ＭＶｙを示す情報である。
【００３１】
参照枚数決定部２０２は、動き情報統計値算出部２０１が出力する統計情報２５４を用いて参照画像枚数を決定し、参照枚数情報２５５として制御部２０３に出力する。統計情報２５４は、具体的には、例えば、所定期間Ｔにおける動きベクトルの垂直方向成分の絶対値ａｂｓ（ＭＶｙ）が特定の閾値以上となっている割合を示す情報であるとする。すると、参照枚数決定部２０２は、この統計情報２５４が示す割合が所定値より大きい値であれば参照画像枚数を減らし、所定値未満であれば参照画像枚数を増やす等して、採用すべき参照画像枚数を決定する。また、参照枚数決定部２０２は、統計情報２５４が示す割合が所定値である場合には何ら処理を実行しない（つまり、参照画像枚数を変更しない）、もしくは、参照画像枚数を、画面間予測処理部１０１にて参照している参照画像枚数と同じ枚数に決定する等となっていてもよい。なお、参照画像枚数を削減することで探索範囲の垂直方向を大きくすることが可能となり、動きの大きな映像についても高画質化を実現できる。
【００３２】
制御部２０３は、参照枚数決定部２０２から出力される参照枚数情報２５５を受信して、外部メモリ制御部１０３への参照画像データ読出しのための制御信号２５１と、参照画像バッファ１１１への参照画像データ書込みのための制御信号２５２とを出力することで、参照画像バッファ１１１のバッファ状態を制御する。制御信号２５１の具体例としては、例えば外部メモリ１２０への読出しアドレスや読出しリクエスト信号などが挙げられる。また、制御信号２５２の具体例としては、例えば参照画像バッファ１１１への書込みアドレスや書込みリクエスト信号などが挙げられる。
【００３３】
また、制御部２０３は、画面間予測処理部１０１へ参照画像バッファ状態情報２５３を出力することで、画面間予測処理部１０１へ参照画像バッファ１１１の状態を通知する。参照画像バッファ状態情報２５３の具体例としては、例えば参照枚数情報２５５、参照画像バッファ１１１の各メモリへの参照画像データ割当て情報などが挙げられる。制御部２０３による参照画像バッファ１１１の制御方法については、後に詳述する。
【００３４】
また、画面間予測処理部１０１は、参照画像バッファ状態情報２５３に基づいて参照画像バッファ１１１の参照画像データ読出しアドレスの切り替え、および参照画像枚数に応じた動き検出処理の動作切り替えを行い、予測画像を生成する。この点については、後に詳述する。
【００３５】
なお、上述した各構成の機能は、映像圧縮符号化装置１００の図示しないＣＰＵ（Central  Processing  Unit）がメモリ等の記録媒体に記憶されているプログラムを読出して実行することにより実現される機能である（もしくは、例えばＦＰＧＡ（Field Programmable Gate Array）においてシーケンサロジックをカスタム設計することにより実現される場合等もある）。また、垂直方向の動き情報２５０、参照画像バッファ状態情報２５３、統計情報２５４、参照枚数情報２５５は、映像圧縮符号化装置１００のメモリ等の記録媒体に記憶され、必要に応じて適宜メモリ上のワーク領域に読出されてＣＰＵによって処理されるデータである。また、図１中の参照画像バッファ１１１、外部メモリ１２０は、図示しない映像圧縮符号化装置１００内の記録媒体に設けられたデータ記憶領域である。なお、参照画像を複数枚使用した画面間予測処理を許容するために、参照画像バッファ１１１は、例えば、許容する最大参照画像枚数と同数のメモリを備えている。
【００３６】
（映像圧縮符号化装置における処理の流れ）
ここで、図３を用いて、本実施形態に係る映像圧縮符号化装置１００における処理の流れについて説明する。図３は、映像圧縮符号化装置１００における処理の流れを示すフロー図である。
【００３７】
画面間予測処理部１０１において、入力画像１５０における所定のマクロブロックについて画面間予測処理が実行される（ステップＳ１０２）。
【００３８】
動き情報統計値算出部２０１において、画面間予測処理部１０１から出力される入力画像１５０の垂直方向動き情報２５０（例えば、動きベクトルの垂直方向成分）に基づいて、統計情報２５４が生成される（ステップＳ１０４）。
【００３９】
参照枚数決定部２０２において、ステップＳ１０４において生成された統計情報２５４に基づいて参照画像枚数が決定され、参照枚数情報２５５が生成される（ステップＳ１０６）。
【００４０】
ステップＳ１０６において決定された参照画像枚数に従って、制御部２０３から画面間予測処理部１０１に対して、参照画像バッファ状態情報２５３が出力される。さらに、制御部２０３から外部メモリ制御部１０３に対して参照画像データ読出しのための制御信号２５１が出力され、参照画像バッファ１１１に対して参照画像データ書込みのための制御信号２５２が出力される（ステップＳ１０８）。
【００４１】
外部メモリ１０３、参照画像バッファ１１１に対して出力された制御信号２５１、２５２に基づいて、適切な参照画像データが、外部メモリ１２０から参照画像バッファ１１１に読込まれる（ステップＳ１１０）。
【００４２】
符号化処理を終了するまで、ステップＳ１０２に戻って、上記の処理を繰り返す（ステップＳ１１２）。
【００４３】
なお、ステップＳ１０８における参照画像バッファ状態情報２５３および制御信号２５１、２５２は、参照画像枚数が変更となった場合にのみ出力されるようになっていてもよい。すなわち、参照枚数決定部２０２において決定された参照画像枚数が、それまでの参照画像枚数と異なる場合にのみ、制御部２０３から、参照画像バッファ状態情報２５３等が出力されるようになっていてもよい。この場合、参照画像バッファ状態情報２５３等が制御部２０３から出力されない間は、参照画像枚数を変更することなく画面間予測処理が継続される。そして、参照画像バッファ状態情報２５３等が制御部２０３から出力された場合には、ステップＳ１１０において読込まれる参照画像データが変更となる。
【００４４】
（参照画像バッファ制御部１１２の動作）
次に、参照画像バッファ制御部１１２の動作について、図４乃至図７を用いて詳細に説明する。なお、以下では、特に、図３のステップＳ１１０における参照画像データの読込み処理について説明する。
【００４５】
また、本実施形態に係る参照画像バッファ制御部１１２の動作についての理解を容易とするために、まず、図４および図５を用いて、参照画像バッファ１１１における参照画像データの保持方法について、一般的な方法を説明する。本例においては、参照画像バッファ１１１の最大記憶容量は６マクロブロックライン分であり、最大参照画像枚数は２枚であることを前提として説明する。
【００４６】
（参照画像バッファ１１１における参照画像データの保持方法）
図４は、参照画像バッファ１１１における参照画像データの保持状態を示す図である。図４（ａ）は、参照画像が１枚である場合の参照画像バッファ１１１における参照画像データの保持状態を示す。上述したように、参照画像バッファ１１１の最大記憶容量は６マクロブロックライン分であるので、参照画像バッファ１１１に確保可能な最大マクロブロックライン数は５ラインである。つまり、図４（ａ）の場合、参照画像３０２のデータのうち、入力画像１５０におけるマクロブロックの位置に対応する参照画像３０２上のブロック３５１の属するマクロブロックライン３０２ｎ２を中心に図中の上側に２ライン（３０２ｎ、３０２ｎ１）、下側に２ライン（３０２ｎ３、３０２ｎ４）で合計５マクロブロックライン分の参照画像データ３０３が参照画像バッファ１１１に保持される。すなわち、参照画像データ３０３は、参照画像３０２上のＮ番目のマクロブロックライン３０２ｎから、（Ｎ＋４）番目のマクロブロックライン３０２ｎ４までのデータで構成される。なお、この時、ブロック３５１は、（Ｎ＋２）番目のマクロブロックライン３０２ｎ２上に存在することになる。
【００４７】
また、同図中の参照画像３０２における探索範囲３０４は、同図中の太線の領域である。すなわち、探索範囲３０４は、ブロック３５１を中心に垂直方向±２マクロブロックを上限とした領域となる。そして、ブロック３５１において動き検出処理がなされている間に、参照画像バッファ制御部１１２は、参照画像バッファ１１１に新たな参照画像データ３０５を格納しておくための制御を行う。この新たな参照画像データ３０５とは、次のマクロブロックにおける動き検出処理の際に参照される参照画像データである。ＭＰＥＧ方式では参照画像の左から右へと順次マクロブロックごとに符号化処理がされていくため、参照画像データ３０５を先に読出しておく。つまり、動き検出処理に用いられる時よりも前の時点で参照画像データ３０５をあらかじめ読出しておくことで、探索範囲を次の位置にスムーズに移行することが可能となる。これは、一般的に、参照画像データの先読みと呼ばれる手法である。
【００４８】
また、図４（ｂ）は、参照画像が２枚である場合の参照画像バッファ１１１における参照画像データの保持状態を示す。上述したように、参照画像バッファ１１１の最大記憶容量は６マクロブロックライン分であり、最大参照画像枚数は２枚である。すなわち、参照画像バッファ１１１は２枚のメモリを有し、各メモリはそれぞれ３マクロブロックライン分の記憶容量を持っている。また、２枚の参照画像における参照画像データは同時に動き検出に利用されるため、この２枚のメモリ上に（すなわち、メモリによって実現される記憶領域に）それぞれ読出しておく必要がある。よって、図４（ｂ）の場合、２枚の参照画像３１２、３２２のデータのうち、入力画像１５０におけるマクロブロックの位置に対応する参照画像３０２上のブロック３６１、３７１を中心に、それぞれ、３マクロブロックライン分の参照画像データ３１３、３２３が各メモリ上に読出されて保持される。
【００４９】
参照画像データ３１３は、具体的には、参照画像３１２上のＮ番目のマクロブロックライン３１２ｎから、（Ｎ＋２）番目のマクロブロックライン３１２ｎ２までのデータで構成される。参照画像データ３２３は、参照画像３２２上のＮ番目のマクロブロックライン３２２ｎから、（Ｎ＋２）番目のマクロブロックライン３２２ｎ２までのデータで構成される。また、ブロック３６１、３７１は、それぞれ、（Ｎ＋１）番目のマクロブロックライン３１２ｎ１、３２２ｎ１上に存在することになる。
【００５０】
また、参照画像３１２、３２２における探索範囲３１４、３２４は、それぞれ、ブロック３６１、３７１を中心に垂直方向±１マクロブロックを上限とした領域となる。そして、ブロック３６１、３７１において動き検出処理がなされている間に、参照画像バッファ制御部１１２は、新たな参照画像データ３１５、３２５を参照画像バッファ１１１に先読みされて書込まれる。
【００５１】
次に、図５を用いて、参照画像バッファ１１１における参照画像データの保持方法について具体的に説明する。図５は、参照画像バッファ１１１における参照画像データの保持状態を具体的に示す図である。
【００５２】
上述したように、参照画像バッファ１１１の最大記憶容量は６マクロブロックライン分であり、最大参照画像枚数は２枚であるので、参照画像バッファ１１１は、３マクロブロックライン分の記憶容量のメモリを２つ備えるのが好適である。以下、本例においては、参照画像バッファ１１１は、３マクロブロックライン分の記憶容量の２つのメモリ４０１、４０２を備えているものとして説明する。
【００５３】
また、各メモリ４０１、４０２において、１マクロブロックライン分のメモリ単位であるメモリバンクごとに制御される。メモリ４０１は、メモリバンクＢ０、Ｂ１、Ｂ２により構成され、メモリ４０２は、メモリバンクＢ３、Ｂ４、Ｂ５により構成される。
【００５４】
図５（ａ）は、図４（ａ）に示したように参照画像が１枚である場合の参照画像バッファ１１１の状態の詳細を示す図である。また、図５（ｂ）は、図４（ｂ）に示したように参照画像が２枚である場合の参照画像バッファ１１１の状態の詳細を示す図である。
【００５５】
図５（ａ）に示すように、参照画像が１枚である場合、２枚のメモリ４０１、４０２を組み合わせて６マクロブロックライン分の記憶容量を持つ１つのメモリとして運用される。すなわち、メモリ４０１、４０２によって５マクロブロックライン３０２ｎ〜３０２ｎ４のデータが保持される。具体的には、メモリ４０１のメモリバンクＢ０、Ｂ１、Ｂ２に、それぞれ、マクロブロックライン３０２ｎ、３０２ｎ１、３０２ｎ２のデータが保持され、メモリ４０２のメモリバンクＢ３、Ｂ４に、それぞれ、マクロブロックライン３０２ｎ３、３０２ｎ４のデータが保持される。
【００５６】
そして、参照画像バッファ１１１に参照画像データ３０５を先読みする処理は、具体的には、以下のようにして実行される。すなわち、古いデータとして参照画像３０２の（Ｎ−２）番目のマクロブロックライン３０２ｎ２’のデータを保持しているメモリ４０２のメモリバンクＢ４のメモリ空間が開放され、そこに先読み参照画像データ３０５が書込まれる。また、図５（ａ）には図示しないが、メモリバンクＢ４へ（Ｎ＋４）番目のマクロブロックライン３０２ｎ４のデータがすべて書込まれた後は、古いデータである（Ｎ−１）番目のマクロブロックライン３０２ｎ１’ のデータを保持しているメモリ４０２のメモリバンクＢ５のメモリ空間が開放され、そこに（Ｎ＋５）番目のマクロブロックラインのデータが順次書込まれていく。以上の処理が繰り返されることで、探索範囲３０４が必要とする参照画像データ３０３は参照画像バッファ１１１に供給され続ける。
【００５７】
また、図５（ｂ）に示すように、参照画像が２枚である場合、２枚のメモリ４０１、４０２は、それぞれ３マクロブロックライン分の記憶容量を持つ独立した２つのメモリとして運用される。すなわち、メモリ４０１には、３マクロブロックライン３１２ｎ〜３１２ｎ２のデータが保持され、メモリ４０２には、３マクロブロックライン３２２ｎ〜３２２ｎ２のデータが保持される。具体的には、メモリ４０１のメモリバンクＢ０、Ｂ１、Ｂ２に、それぞれ、マクロブロックライン３１２ｎ、３１２ｎ１、３１２ｎ２のデータが保持され、メモリ４０２のメモリバンクＢ３、Ｂ４、Ｂ５に、それぞれ、マクロブロックライン３２２ｎ、３２２ｎ１、３２２ｎ２のデータが保持される。
【００５８】
そして、参照画像データ３１５を参照画像バッファ１１１に先読みする処理は、具体的には、以下のようにして実行される。すなわち、古いデータとして参照画像３１２の（Ｎ−１）番目のマクロブロックライン３１２ｎ１’のデータを保持しているメモリ４０１のメモリバンクＢ２のメモリ空間が開放され、そこに先読み参照画像データ３１５が書込まれる。また、図５（ｂ）には図示しないが、メモリバンクＢ２へ（Ｎ＋２）番目のマクロブロックライン３１２ｎ２のデータがすべて書込まれた後は、Ｎ番目のマクロブロックライン３１２ｎのデータを保持しているメモリバンクＢ０のメモリ空間が開放され、そこに（Ｎ＋３）番目のマクロブロックラインのデータが順次書込まれていく。以上の処理が繰り返されることで、探索範囲３１４が必要とする参照画像データ３１３は参照画像バッファ１１１に供給され続ける。
【００５９】
同様に、参照画像データ３２５を参照画像バッファ１１１に先読みする処理は、具体的には、以下のようにして実行される。参照画像３２２の（Ｎ−１）番目のマクロブロックライン３２２ｎ１’のデータを保持しているメモリ４０１のメモリバンクＢ５のメモリ空間が開放され、そこに先読み参照画像データ３２５が書込まれる。また、図５（ｂ）には図示しないが、メモリバンクＢ５へ（Ｎ＋２）番目のマクロブロックライン３２２ｎ２のデータがすべて書込まれた後は、Ｎ番目のマクロブロックライン３２２ｎのデータを保持しているメモリバンクＢ３のメモリ空間が開放され、そこに（Ｎ＋３）番目のマクロブロックラインのデータが順次書込まれていく。
【００６０】
なお、以上説明した参照画像バッファ１１１における参照画像データの保持方法は、従来の映像圧縮符号化装置においても一般的に採用されている手法である。
【００６１】
（参照画像バッファ１１１の制御方法の具体例）
次に、動き検出において参照する参照画像の枚数を動的に切り替えるための参照画像バッファ１１１の制御方法について、図６および図７を用いて説明する。図６は、参照画像枚数を２枚から１枚へと切り替える制御方法について説明する図である。また、図７は、参照画像枚数を１枚から２枚へと切り替える制御方法について説明する図である。
【００６２】
（参照画像枚数２枚から１枚への切替え）
まず、図６を用いて参照画像枚数を２枚から１枚へと切り替えるための制御方法について説明する。すなわち、以下に説明するのは、上述した図５（ｂ）の状態から図５（ａ）の状態に切り替えるための制御方法である。
【００６３】
図６（ａ）は、図５（ｂ）が示す参照画像バッファ１１１の状態と同じ状態を示している。すなわち、図６（ａ）に示す状態においては、メモリ４０１のメモリバンクＢ０〜Ｂ２に参照画像３１２のＮ〜（Ｎ＋２）番目のマクロブロックライン３１２ｎ、３１２ｎ１、３１２ｎ２のデータが書込まれている。また、メモリ４０２のメモリバンクＢ３〜Ｂ５には参照画像３２２のＮ〜（Ｎ＋２）番目のマクロブロックライン３２２ｎ、３２２ｎ１、３２２ｎ２のデータが書込まれている。
【００６４】
そして、動き検出処理の進行に伴い、メモリバンクＢ２へ、参照画像３１２の（Ｎ＋２）番目のマクロブロックライン３１２ｎ２のデータの参照画像データ３１５以降のデータが書込まれていき、同時に、メモリバンクＢ５へ、参照画像３２２の（Ｎ＋２）番目のマクロブロックライン３２２ｎ２のデータの参照画像データ３２５以降のデータが書込まれていく。
【００６５】
また、図６（ｂ）に示すように、これらのデータの書込みが完了すると、参照画像３２２のＮ番目のマクロブロックライン３２２ｎのデータが書込まれていたメモリ４０２のメモリバンクＢ３へ、参照画像３１２の（Ｎ＋３）番目のマクロブロックライン３１２ｎ３のデータが書込まれていく。この後、後述するようにメモリバンクＢ３に続けてメモリバンクＢ４に、参照画像３１２の（Ｎ＋４）番目のマクロブロックライン３１２ｎ４のデータが書込まれていくが、メモリバンクＢ３、Ｂ４へのデータ書込み速度は、参照画像１枚に切り替えた時（すなわち、図６（ｅ）の状態となった時）のデータ書込み速度（言い換えれば、探索範囲３１４・３１５の進行速度、動き検出処理の処理速度、ブロック３６１・３７１の進行速度、と言うこともできる。図６の説明において、以下同じ。）よりも速いことが好ましい。特に、２倍以上であれば、より好適である。その理由は、以下の通りである。
【００６６】
すなわち、この後、図６（ｅ）に示すように、探索範囲３１４は垂直方向に拡大され、この時、メモリバンクＢ３、Ｂ４に書込まれたデータは拡大された探索範囲３１４の一部を構成する。よって、メモリバンクＢ３、Ｂ４への参照画像３１２のデータ書込みが、図６（ｃ）〜（ｄ）に示すように探索範囲３１４がメモリバンクＢ１〜Ｂ３を移行している間に完了するようになっていれば、探索範囲３１４が拡大する場合にも、動き検出処理を待ち時間なくスムーズに継続することができるからである。
【００６７】
また、図６（ｃ）に示すように、参照画像３１２のブロック３６１が（Ｎ＋２）番目のマクロブロックライン３１２ｎ２上に移行した段階で、参照画像枚数は１枚に切り替わる。ただし、この段階では、探索範囲の垂直方向はブロック３６１の±１マクロブロック分を維持する。そして、図６（ｃ）〜（ｄ）に示すように、動き検出処理の進行に伴い、参照画像３２２の（Ｎ＋１）番目のマクロブロックライン３２２ｎ１のデータが書込まれていたメモリ４０２のメモリバンクＢ４へ、参照画像３１２の（Ｎ＋４）番目のマクロブロックライン３１２ｎ４のデータが書込まれていく。なお、上述したように、このメモリバンクＢ４へのデータ書込み速度は、参照画像１枚の時のデータ書込み速度の２倍以上とするのが好ましい。
【００６８】
そして、図６（ｅ）に示すように、ブロック３６１が（Ｎ＋３）番目のマクロブロックライン３１２ｎ３上に移行した段階で、探索範囲３１４の垂直方向はブロック３６１の±２マクロブロック分へと拡大される。すなわち、この段階で、参照画像枚数の２枚から１枚への切り替えが完了したことになる。
【００６９】
また、この後は、参照画像３２２の（Ｎ＋２）番目のマクロブロックライン３２２ｎ２のデータが書込まれていたメモリバンクＢ５へ、参照画像３１２の（Ｎ＋５）番目のマクロブロックライン３１２ｎ５のデータが書込まれていく。このメモリバンクＢ５へのデータ書込み速度は、参照画像１枚の時のデータ書込み速度と同じであればよい。なお、（ｅ）において、探索範囲３１４およびブロック３６１は、図４および図５における探索範囲３０４およびブロック３５１に該当する。
【００７０】
以上説明したように、参照画像バッファ１１１の参照画像データの書込み先と書込み速度の制御、およびこれと連携した探索範囲の制御により、参照画像枚数を２枚から１枚へとスムーズに切り替えることが可能となる。
【００７１】
（参照画像枚数１枚から２枚への切替え）
次に、図７を用いて参照画像枚数を１枚から２枚へと切り替えるための制御方法について説明する。すなわち、以下に説明するのは、上述した図５（ａ）の状態から図５（ｂ）の状態に切り替えるための制御方法である。
【００７２】
図７（ａ）は、図５（ａ）が示す参照画像バッファ１１１の状態と同様の状態を示している。ただし、図７（ａ）に示す状態においては、メモリ４０１、４０２のメモリバンクＢ０〜Ｂ５に渡って、参照画像３１２のＮ〜（Ｎ＋５）番目のマクロブロックライン３１２ｎ〜３１２ｎ５のデータが書込まれている。また、ブロック３５１は参照画像３０２の（Ｎ＋３）番目のマクロブロックライン３１２ｎ３上に存在し、探索範囲３０４は（Ｎ＋１）〜（Ｎ＋５）番目のマクロブロックライン３１２ｎ１〜３１２ｎ５のデータの一部によって構成されている。
【００７３】
そして、動き検出処理の進行に伴い、メモリバンクＢ５へ、参照画像３１２の（Ｎ＋５）番目のマクロブロックライン３１２ｎ５のデータの参照画像データ３１５以降のデータが書込まれていく。図７（ｂ）に示すように、メモリバンクＢ５へのデータの書込みが完了すると、参照画像３１２の（Ｎ＋１）番目のマクロブロックライン３１２ｎ１のデータが書込まれていたメモリバンクＢ１へ、参照画像３２２の（Ｎ＋４）番目のマクロブロックライン３２２ｎ４のデータの参照画像データ３２５以降のデータが書込まれていく。この後、後述するようにメモリバンクＢ１に続けてメモリバンクＢ２に、参照画像３２２の（Ｎ＋５）番目のマクロブロック３２２ｎ５のデータが書込まれていくが、メモリバンクＢ１、Ｂ２へのデータ書込み速度は参照画像１枚の時のデータ書込み速度（言い換えれば、探索範囲３０４の進行速度、動き検出処理の処理速度、ブロック３５１の進行速度、と言うこともできる。図７の説明において、以下同じ。）よりも速いことが好ましい。特に、前者が後者の２倍以上であれば、より好適である。その理由は、以下の通りである。
【００７４】
すなわち、この後、図７（ｅ）に示すように、探索範囲３０４は、２枚の参照画像の探索範囲３１４、３２４となり、メモリバンクＢ１、Ｂ２に書込まれたデータが探索範囲３２４の一部を構成することになる。よって、メモリバンクＢ１、Ｂ２への参照画像３２２のデータ書込みが、探索範囲３０４がメモリバンクＢ３〜Ｂ５を移行している間に完了するようになっていれば、参照画像枚数が１枚から２枚になる場合にも、動き検出処理を待ち時間なくスムーズに継続することができるからである。
【００７５】
また、図７（ｃ）に示すように、参照画像３１２のブロック３５１が（Ｎ＋４）番目のマクロブロックライン３１２ｎ４上に移行した段階で、探索範囲３０４の垂直方向はブロック３５１の±１マクロブロック分へと切り替わる。ただし、この段階では、参照画像枚数は1枚を維持する。そして、動き検出処理の進行に伴い、参照画像３１２の（Ｎ＋２）番目のマクロブロックライン３１２ｎ２のデータが書込まれていたメモリバンクＢ２へ、参照画像３２２の（Ｎ＋５）番目のマクロブロックライン３２２ｎ５のデータが書込まれていく。なお、上述したように、このメモリバンクＢ２へのデータ書込み速度は、好ましくは参照画像１枚の時のデータ書込み速度の２倍以上とする。
【００７６】
また、図７（ｄ）に示すように、メモリバンクＢ２へのデータ書込みが完了すると、参照画像３１２のＮ番目のマクロブロックライン３１２ｎのデータが書込まれていたメモリバンクＢ０へ、参照画像３２２の（Ｎ＋６）番目のマクロブロックライン３２２ｎ６のデータが書込まれていく。同時に、参照画像３１２の（Ｎ＋３）番目のマクロブロックライン３１２ｎ３のデータが書込まれていたメモリバンクＢ３へ、参照画像３１２の（Ｎ＋６）番目のマクロブロックライン３１２ｎ６のデータが書込まれていく。このメモリバンクＢ０、Ｂ３へのデータ書込み速度は、参照画像１枚の時のデータ書込み速度と同じであればよい。
【００７７】
そして、図７（ｅ）に示すように、ブロック３５１が参照画像３１２の（Ｎ＋５）番目のマクロブロックライン３１２ｎ５上に移行した段階で、参照画像枚数は１枚から２枚へと切り替わる。すなわち、この時、探索範囲は、ブロック３６１を中心とする探索範囲３１４と、ブロック３７１を中心とする探索範囲３２４の２つとなる。この段階で、参照画像枚数の１枚から２枚への切り替えが完了したことになる。
【００７８】
なお、図５（ｂ）の例ではメモリ４０１に参照画像３１２のデータが保持され、メモリ４０２に参照画像３２２のデータが保持されているのに対し、図７（ｅ）の例ではメモリ４０１に参照画像３２２のデータが保持され、メモリ４０２に参照画像３１２のデータが保持されるようになっているが、特段の問題は生じない。なぜならば、先に説明した参照画像バッファ状態情報２５３によって、参照画像バッファ１１１を構成する各メモリへの参照画像データの割当てに関する情報が画面間予測処理部１０１へ通知されるからである。
【００７９】
以上説明したように、参照画像バッファ１１１の参照画像データの書込み先と書込み速度の制御、およびこれと連携した探索範囲の制御により、参照画像枚数を１枚から２枚へとスムーズに切り替えることが可能となる。
【００８０】
また、このように参照画像バッファ制御部１１２によって参照画像枚数が変更されると、制御部２０３から画面間予測処理部１０１へ参照画像バッファ状態情報２５３が出力される。これにより、画面間予測処理部１０１は、参照画像バッファ制御部１１２の参照画像枚数の決定に応じて、入力画像１５０の動き検出処理において用いる参照画像の枚数を変更する。
【００８１】
（他の実施形態）
上記実施形態においては、参照画像バッファ制御部１１２においては、参照画像の枚数を決定しているが、これに代えて、参照画像における探索範囲の垂直方向の大きさを決定するようになっていてもよい。なぜならば、画面間予測処理部１０１においては、この決定された記憶容量が一定である場合、参照画像の枚数と、参照画像における探索範囲の垂直方向の大きさはトレードオフの関係であり、いずれか一方が決定されれば他方が決定されるからである。
【００８２】
（まとめ）
以上のように、本発明によれば、映像圧縮符号化装置において、限られた記憶容量であっても圧縮映像データの高画質化が可能である。
【００８３】
（請求項に関する付記）
本発明については、請求項の記載に関して、以下の態様が考えられる。
（請求項２）
前記制御手段は、
前記動き検出に関する情報に基づいて、その統計値である統計情報を生成する統計情報生成手段（例えば、図２の動き情報統計値算出部２０１）と、
前記統計情報に基づいて前記参照画像の枚数と前記参照画像における探索範囲の大きさとの少なくとも一方を決定する関連情報決定手段（例えば、図２の参照枚数決定部２０２）と、
前記関連情報決定手段における決定に基づいて、前記参照画像についての制御を行う参照画像制御手段（例えば、図２の制御部２０３）と、
を有することを特徴とする請求項１に記載の映像圧縮符号化装置。
【００８４】
この構成によれば、映像データの圧縮符号化処理の画面間予測において使用される参照画像の枚数および参照画像における探索範囲の大きさを動的に変更することが可能となる。よって、限られた記憶容量であっても、圧縮映像データの高画質化が可能となる。
（請求項３）
前記参照画像を用いて前記動き検出を実行して、前記動き検出に関する情報を出力する画面間予測処理手段（例えば、図１の画面間予測処理部１０１）と、
前記参照画像を保持する参照画像保持手段（例えば、図１の外部メモリ１２０）と、
前記参照画像の一部のデータであり、前記動き検出に使用されるデータである参照画像データを、前記参照画像保持手段から取得して保持する参照画像データ保持手段（例えば、図１の参照画像バッファ１１１）と、をさらに有し、
前記制御手段は、前記画面間予測処理手段、前記参照画像保持手段、および前記参照画像データ保持手段を制御することによって、前記参照画像についての制御を行うことを特徴とする請求項１又は２に記載の映像圧縮符号化装置。
【００８５】
この構成によれば、映像データの圧縮符号化処理の画面間予測において使用される参照画像の枚数および参照画像における探索範囲の大きさを動的に変更することが可能となる。よって、限られた記憶容量であっても、圧縮映像データの高画質化が可能となる。
（請求項４）
前記制御手段は、前記参照画像についての制御を行う際に、前記参照画像保持手段から前記参照画像データ保持手段への前記参照画像データの出力速度を制御することを特徴とする請求項３に記載の映像圧縮符号化装置。
【００８６】
この構成によれば、参照画像枚数等が変更となった際に参照画像データの記憶バッファへの書込み速度が変化するため、動き検出を待ち時間なくスムーズに継続することができる。
（請求項５）
画面間予測を用いて映像データの圧縮符号化を行う映像圧縮符号化装置において実行される映像圧縮符号化方法であって、
前記圧縮符号化を行う画像における動き検出において参照される参照画像についての制御であり、前記画面間予測における動き検出の結果である動きベクトルの大きさに応じて、前記画面間予測において参照される参照画像の枚数と前記参照画像における探索範囲の大きさとの少なくとも一方を制御する制御ステップ（例えば、図３のステップＳ１０４〜Ｓ１０８）を有することを特徴とする映像圧縮符号化方法。
【００８７】
この構成によれば、映像データの圧縮符号化処理の画面間予測において使用される参照画像の枚数および参照画像における探索範囲の大きさを動的に変更することが可能となる。よって、限られた記憶容量であっても、圧縮映像データの高画質化が可能となる。
（請求項６）
画面間予測を用いて映像データの圧縮符号化を行う映像圧縮符号化装置において実行される映像圧縮符号化方法であって、
前記動き検出に関する情報に基づいて、その統計値である統計情報を生成する統計情報生成ステップ（例えば、図３のステップＳ１０４）と、
前記統計情報に基づいて前記参照画像の枚数と前記参照画像における探索範囲の大きさとの少なくとも一方を決定する関連情報決定ステップ（例えば、図３のステップＳ１０６）と、
前記関連情報決定ステップにおける決定に基づいて、前記参照画像についての制御を行う参照画像制御ステップ（例えば、図３のステップＳ１０８）と、
を有することを特徴とする映像圧縮符号化方法。
【００８８】
この構成によれば、映像データの圧縮符号化処理の画面間予測において使用される参照画像の枚数および参照画像における探索範囲の大きさを動的に変更することが可能となる。よって、限られた記憶容量であっても、圧縮映像データの高画質化が可能となる。
【符号の説明】
【００８９】
１００  映像圧縮符号化装置
１０１  画面間予測処理部
１０２  符号化処理部
１０３  外部メモリ制御部
１１１  参照画像バッファ
１１２  参照画像バッファ制御部
１２０  外部メモリ
２０１  動き情報統計値算出部
２０２  参照枚数決定部
２０３  制御部
３０２、３１２、３２２  参照画像
３０２ｎ、３０２ｎ１、３０２ｎ２、３０２ｎ３、３０２ｎ４  マクロブロックライン
３１２ｎ、３１２ｎ１、３１２ｎ２、３１２ｎ３、３１２ｎ４、３１２ｎ５、３１２ｎ６  マクロブロックライン
３２２ｎ、３２２ｎ１、３２２ｎ２、３２２ｎ４、３２２ｎ５、３２２ｎ６  マクロブロックライン
３０３、３１３、３２３  参照画像データ
３０４、３１４、３２４  探索範囲
３５１、３６１、３７１  マクロブロックに対応する参照画像上のブロック
４０１、４０２  メモリ
Ｂ０、Ｂ１、Ｂ２、Ｂ３、Ｂ４、Ｂ５、Ｂ６  メモリバンク
７０１  処理対象画像
７０２  参照画像
７１１  マクロブロック
７２２  参照画像データ
７３２  探索範囲
７４２  動き量
８０１  処理対象画像
８０２、８０３  参照画像
８１１  マクロブロック
８２２、８２３  参照画像データ
８３２、８３３  探索範囲
８４２、８４２  動き量
【図１】
2011097488.tif 000003
【図２】
2011097488.tif 000004
【図３】
2011097488.tif 000005
【図４】
2011097488.tif 000006
【図５】
2011097488.tif 000007
【図６】
2011097488.tif 000008
【図７】
2011097488.tif 000009
【図８】
2011097488.tif 000010
【図９】
2011097488.tif 000011
【図１０】
2011097488.tif 000012