(57)【要約】【課題】  動き検出の際、フレームメモリから頻繁にデータを転送するため、バス帯域が圧迫され、処理性能が悪化する。【解決手段】  動き補償部６０は、フレームメモリ８０から転送した画素データを保持するために、ＳＲＡＭ６６とは別に、先読み用ＳＲＡＭ６４を有する。動きベクトル検出部６２は、フレームメモリ８０に保持された参照画像の所定の探索範囲の内、参照頻度の高い画素領域のデータをあらかじめフレームメモリ８０から先読み用ＳＲＡＭ６４に転送する。一方、動きベクトル検出部６２は、動きベクトルの探索の際に参照する必要のある画素データを探索の都度、フレームメモリ８０からＳＲＡＭ６６に転送する。動きベクトル検出部６２は、先読み用ＳＲＡＭ６４と通常のＳＲＡＭ６６とを切り替えて参照し、動き探索を進める。【選択図】        図３
2006270683.tif 000002
【特許請求の範囲】
【請求項１】
動画像のフレームを符号化する符号化装置であって、
符号化対象フレームの対象ブロックの動き検出をする際に参照する参照フレームを保持するフレームメモリと、
前記フレームメモリに保持された前記参照フレームを参照して、動き探索を繰り返して前記対象ブロックの動き検出を行う動き検出部とを含み、
前記動き検出部は、前記参照フレーム内の画素データの内、動き探索の際に参照する頻度の高い画素データをあらかじめ前記フレームメモリから転送して保持する先読み用メモリを有することを特徴とする符号化装置。
【請求項２】
前記先読み用メモリは、前記動き検出部と同一の集積回路内に設けられたことを特徴とする請求項１に記載の符号化装置。
【請求項３】
前記動き検出部は、前記先読み用メモリとは別に、参照する画素データをフレームメモリから動き探索の度に転送して保持する通常メモリを有し、前記動き検出部は、前記先読み用メモリに保持されていない参照画素については、前記通常メモリに保持して参照することを特徴とする請求項１または２に記載の符号化装置。
【請求項４】
前記先読み用メモリは、その記憶領域が複数のタイルに分割され、タイル単位でデータ更新が可能に構成されており、
前記動き検出部は、対象ブロックの動き検出を開始する際に、少なくとも一部のタイルに格納された、前回の対象ブロックの動き探索で参照された画素データを破棄しないで今回の対象ブロックの動き探索に再利用することを特徴とする請求項１から３のいずれかに記載の符号化装置。
【請求項５】
前記フレームメモリからあらかじめ前記先読み用メモリに転送される前記参照する頻度の高い画素データは、前記対象ブロックの位置を中心とする周辺領域の画素データであることを特徴とする請求項１から４のいずれかに記載の符号化装置。
【請求項６】
前記フレームメモリからあらかじめ前記先読み用メモリに転送される前記参照する頻度の高い画素データは、前記対象ブロックの周囲の他のブロックについての動き検出により得られた予測ブロックに対応する領域の画素データであることを特徴とする請求項１から４のいずれかに記載の符号化装置。
【請求項７】
前記フレームメモリからあらかじめ前記先読み用メモリに転送される前記参照する頻度の高い画素データは、前記動画像の過去または未来のフレームにおいて前記対象ブロックと対応する位置にある参照ブロックについての動き検出により予測される領域の画素データであることを特徴とする請求項１から４のいずれかに記載の符号化装置。
【請求項８】
前記フレームメモリからあらかじめ前記先読み用メモリに転送される前記参照する頻度の高い画素データが占める領域のサイズは、前記対象ブロックによって異なる値に設定されることを特徴とする請求項５から７のいずれかに記載の符号化装置。
【請求項９】
動画像の符号化対象フレームの対象ブロックの動き検出をする際に参照する参照フレームを保持するフレームメモリから、前記参照フレーム内の動き探索範囲の画素データの内、参照頻度の高い画素データをあらかじめ転送して先読み用メモリに保持し、動き探索の際に参照する画素データが前記先読み用メモリにある場合は、前記先読み用メモリに保持された画素データを参照し、そうでない場合は、前記フレームメモリに保持された画素データを参照することにより、動き探索を行うことを特徴とする符号化方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、動画像を符号化する符号化装置および方法に関する。
【背景技術】
【０００２】
ブロードバンドネットワークが急速に発展しており、高品質な動画像を利用したサービスに期待が集まっている。また、ＤＶＤなど大容量の記録媒体が利用されており、高画質の画像を楽しむユーザ層が広がっている。動画像を通信回線で伝送したり、記録媒体に蓄積するために不可欠な技術として圧縮符号化がある。動画像圧縮符号化技術の国際標準として、ＭＰＥＧ４の規格やＨ．２６４／ＡＶＣ規格がある。また、１つのストリームにおいて高画質のストリームと低画質のストリームを併せもつＳＶＣ（Scalable Video Codec）のような次世代画像圧縮技術がある。
【０００３】
動画像の圧縮符号化および復号では、フレームメモリに動画像のフレームを蓄積し、フレームメモリを参照して、動き補償が行われるため、フレームメモリからのデータ転送が頻繁に行われる。特により高画質の動画を生成するために、動き探索を小数画素単位で行うことがあり、動き補償で扱うデータ量は増えており、メモリ帯域幅が処理のボトルネックとなりやすい。特許文献１には、フレームメモリのバンド幅の使用効率を改善することのできるディジタル画像復号装置が開示されている。
【特許文献１】特開平１１−２９８９０３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
動画像の圧縮符号化の際、符号化対象フレームの対象マクロブロックの動き検出をするために、参照フレームの所定の探索範囲内の画素領域をフレームメモリから読み出し、その画素領域内で対象マクロブロックとマッチングするマクロブロックを探索する。動き検出では、探索を繰り返して対象マクロブロックと適合する参照フレームのマクロブロックを見つけるため、フレームメモリからの読み出し回数が多くなり、データ転送量も増え、フレームメモリの転送帯域幅を圧迫する。フレームメモリへのアクセスがボトルネックとなって、圧縮符号化の処理速度が低下するという問題が生じる。
【０００５】
本発明はこうした状況に鑑みてなされたもので、その目的は、フレームメモリへのアクセスを減らして、符号化の処理効率を高めることのできる動画像の符号化技術を提供することにある。
【課題を解決するための手段】
【０００６】
上記課題を解決するために、本発明のある態様の符号化装置は、動画像のフレームを符号化する符号化装置であって、符号化対象フレームの対象ブロックの動き検出をする際に参照する参照フレームを保持するフレームメモリと、前記フレームメモリに保持された前記参照フレームを参照して、動き探索を繰り返して前記対象ブロックの動き検出を行う動き検出部とを含む。前記動き検出部は、前記参照フレーム内の画素データの内、動き探索の際に参照する頻度の高い画素データをあらかじめ前記フレームメモリから転送して保持する先読み用メモリを有する。
【０００７】
「参照する頻度の高い画素データ」とは、たとえば、動き探索が繰り返して行われる際に、所定の回数以上、繰り返し参照される可能性がある領域内の画素データである。
【０００８】
この態様によると、フレームメモリからのデータ転送量を減らすことができる。
【０００９】
本発明の別の態様は、符号化方法である。この方法は、動画像の符号化対象フレームの対象ブロックの動き検出をする際に参照する参照フレームを保持するフレームメモリから、前記参照フレーム内の動き探索範囲の画素データの内、参照頻度の高い画素データをあらかじめ転送して先読み用メモリに保持し、動き探索の際に参照する画素データが前記先読み用メモリにある場合は、前記先読み用メモリに保持された画素データを参照し、そうでない場合は、前記フレームメモリに保持された画素データを参照することにより、動き探索を行う。
【００１０】
なお、以上の構成要素の任意の組み合わせ、本発明の表現を方法、装置、システム、記録媒体、コンピュータプログラムなどの間で変換したものもまた、本発明の態様として有効である。
【発明の効果】
【００１１】
本発明によれば、動画像の符号化の処理効率を向上することができる。
【発明を実施するための最良の形態】
【００１２】
図１は、実施の形態に係る符号化装置１００の構成図である。これらの構成は、ハードウエア的には、任意のコンピュータのＣＰＵ、メモリ、その他のＬＳＩで実現でき、ソフトウエア的にはメモリにロードされた画像符号化機能のあるプログラムなどによって実現されるが、ここではそれらの連携によって実現される機能ブロックを描いている。したがって、これらの機能ブロックがハードウエアのみ、ソフトウエアのみ、またはそれらの組み合わせによっていろいろな形で実現できることは、当業者には理解されるところである。
【００１３】
本実施の形態の符号化装置１００は、ＩＳＯ／ＩＥＣ標準であるＭＰＥＧシリーズの規格、ＩＴＵ−Ｔ標準であるＨ．２６ｘシリーズの規格、もしくは両方の標準化グループにより開発された最新技術の動画像圧縮符号化標準であるＨ．２６４／ＡＶＣの規格に準拠して動画像の符号化を行う。
【００１４】
ＭＰＥＧシリーズの規格では、フレーム内符号化を行う画像フレームをＩ（Intra）フレーム、過去のフレームを参照画像として順方向のフレーム間予測符号化を行う画像フレームをＰ（Predictive）フレーム、過去と未来のフレームを参照画像として双方向のフレーム間予測符号化を行う画像フレームをＢフレームという。
【００１５】
一方、Ｈ．２６４／ＡＶＣでは、参照画像として利用できるフレームは、時間の先後を問わず、過去の２枚のフレームを参照画像としてもよく、未来の２枚のフレームを参照画像としてもよい。また、参照画像として利用できるフレームの枚数も問わず、３枚以上のフレームを参照画像として用いることもできる。したがって、ＭＰＥＧ−１／２／４では、Ｂフレームは双方向予測（Bi-directional prediction）フレームのことを指していたが、Ｈ．２６４／ＡＶＣでは、Ｂフレームは、参照画像の時間の先後は問わないため、双予測（Bi-predictive prediction）フレームのことを指すことに留意する。
【００１６】
なお、本願明細書では、フレームとピクチャを同じ意味で用いており、Ｉフレーム、Ｐフレーム、Ｂフレームは、それぞれＩピクチャ、Ｐピクチャ、Ｂピクチャとも呼ばれている。
【００１７】
符号化装置１００は、フレーム単位で動画像の入力を受け取り、動画像を符号化し、符号化ストリームを出力する。入力された動画フレームはフレームメモリ８０に格納される。
【００１８】
動き補償部６０は、フレームメモリ８０に格納されている過去または未来の画像フレームを参照画像として利用し、ＰフレームまたはＢフレームのマクロブロック毎に動き補償を行い、動きベクトルと予測画像を生成する。動き補償部６０は、符号化対象のＰフレームまたはＢフレームの画像と予測画像の差分を取り、差分画像をＤＣＴ部２０に供給する。また、動き補償部６０は、生成した動きベクトルを可変長符号化部９０に供給する。
【００１９】
ＤＣＴ部２０は、動き補償部６０から供給された画像を離散コサイン変換（ＤＣＴ）し、得られたＤＣＴ係数を量子化部３０に与える。
【００２０】
量子化部３０は、ＤＣＴ係数を量子化し、可変長符号化部９０に与える。可変長符号化部９０は、動き補償部６０から与えられた動きベクトルとともに差分画像の量子化されたＤＣＴ係数を可変長符号化し、符号化ストリームを生成する。可変長符号化部９０は、符号化ストリームを生成する際、符号化されたフレームを時間順序に並べ替える処理を行う。
【００２１】
ＰフレームもしくはＢフレームの符号化処理の場合は、上述のように動き補償部６０が動作するが、Ｉフレームの符号化処理の場合は、動き補償部６０は動作せず、ここでは図示しないが、Ｉフレームはフレーム内予測が行われた後、ＤＣＴ部２０に供給される。
【００２２】
本実施の形態の動き補償部６０は、動きベクトルの探索範囲の先読みを行う。まず、比較のために動き補償部６０の一般的な構成を説明し、その後、先読みを行う動き補償部６０の構成を説明する。
【００２３】
図２は、動き補償部６０の一般的な構成を説明する図である。フレームメモリ８０と動き補償部６０は、ＳＢＵＳ８２により接続されている。動き補償部６０は、アドレスを指定してフレームメモリ８０にデータを要求し、フレームメモリ８０からＳＢＵＳ８２を介して伝送されるデータを受け取る。
【００２４】
動き補償部６０は、ＳＲＡＭ６６、動きベクトル検出部６２、および動き補償予測部６８を有する。動きベクトル検出部６２は、フレームメモリ８０に保持された参照画像の所定の探索範囲内の画素データをＳＲＡＭ６６に転送する。
【００２５】
フレームメモリ８０は、一例として大容量のＳＤＲＡＭで構成され、ＳＢＵＳ８２を介してアクセスされる。一方、ＳＲＡＭ６６は、動きベクトル検出部６２と同一の集積回路内に形成されており、動きベクトル検出部６２から高速にアクセスすることが可能である。ＳＲＡＭ６６はフレームメモリ８０に比べて容量が限られており、フレームメモリ８０に対する高速なキャッシュメモリとして機能する。ＳＲＡＭ６６はデータ転送が高速であるから、動きベクトル検出部６２がＳＲＡＭ６６内の画素領域を頻繁に参照して、動き探索するのに適している。なお、読み出しポート数を増やすために、一般的には複数枚のＳＲＡＭ６６が設けられる。
【００２６】
動きベクトル検出部６２は、ＳＲＡＭ６６に転送された画素データを参照して動きベクトルの検出を行う。動きベクトル検出部６２は、対象マクロブロックに対して誤差の最も小さい予測マクロブロックを参照画像から検出し、対象マクロブロックから予測マクロブロックへの動きを示す動きベクトルを求める。動き検出は、対象マクロブロックとマッチングする参照画像における参照マクロブロックを整数画素単位または小数画素単位で探すことにより行われるため、探索は通常、画素領域内で複数回にわたって繰り返し行われ、その複数回の探索の中で対象マクロブロックと最も適合する参照マクロブロックが予測マクロブロックとして選択される。
【００２７】
動き補償予測部６８は、動きベクトルを用いて対象マクロブロックを動き補償して、予測画像を生成し、符号化対象画像と予測画像の差分画像をＤＣＴ部２０に出力する。
【００２８】
動きベクトルの探索方法として、探索方向を求めながら繰り返し探索を行う追跡法や勾配法を利用した場合、各回の探索で参照する範囲の画素データが、探索の度にフレームメモリ８０からＳＲＡＭ６６に転送される。たとえば、縦横１６画素のマクロブロックの探索を６回繰り返して、対象マクロブロックにマッチングする予測マクロブロックを探し当てたとする。この場合、１回の探索では、マクロブロックの周囲の画素も含めて縦横２１画素の画素領域がＳＲＡＭ６６に転送される。それが６回繰り返されると、１つの対象マクロブロックに対して動きベクトルを探索するのに要するデータ転送量は、２１×２１×６＝２６４６バイトとなる。ただし、１画素の情報量を簡単のため１バイトとした。追跡法や勾配法では、データ転送量は探索回数に応じて変動する。
【００２９】
また、別の動きベクトルの探索方法として、探索範囲を決めてその中のすべてのマクロブロックを一つずつ取り上げ、対象マクロブロックとの間でマッチングを計算し、最もマッチングするマクロブロックを予測マクロブロックとして求める全探索法がある。全探索法を利用した場合、あらかじめ決められている探索範囲内のすべての画素データがフレームメモリ８０からＳＲＡＭ６６に転送される。この場合、動きベクトル検出部６２は、ＳＲＡＭ６６に転送された画素領域内で動きベクトルの探索を行う。全探索法の場合、データ転送は１回だけである。たとえば、縦横１６画素の対象マクロブロックに対して探索範囲が±１６画素である場合、全探索範囲は縦横４８画素になり、１つの対象マクロブロックに対して動きベクトルを探索するのに要するデータ転送量は、４８×４８＝２３０４バイトとなる。
【００３０】
追跡法や勾配法の場合、１回のデータ転送量は少ないが、探索精度を上げるために探索回数を増やす必要があり、探索回数に比例してデータ転送量が増え、フレームメモリ８０からＳＲＡＭ６６へのデータ転送が動き検出処理のボトルネックとなって処理性能が低下する。全探索法では、データ転送は１回で済むが、全探索範囲の画素データをフレームメモリ８０からＳＲＡＭ６６に転送するため、データ転送に時間がかかり、やはり処理性能に影響する。
【００３１】
また、追跡法や勾配法では、参照画像内で参照するマクロブロックの位置を整数画素単位もしくは小数画素精度で変えながら、１回の探索毎にフレームメモリ８０から参照する画素データを転送するが、そのうちの大部分はそれ以前の探索時に参照した画素データと重複しており、探索の度に参照する画素データをあらためて転送するのは無駄が多い。また、全探索法では、全探索範囲の画素データをフレームメモリ８０からＳＲＡＭ６６に転送するため、参照する確率が極端に低い探索範囲の画素データまで転送することになり、やはりデータ転送に無駄がある。
【００３２】
このように、動きベクトルの検出の際に、一般的にフレームメモリ８０からＳＲＡＭ６６へのデータ転送に無駄が生じやすく、ＳＢＵＳ８２の帯域幅を圧迫し、符号化処理のボトルネックとなりやすい。このような問題意識のもと、本出願人は、フレームメモリ８０からのデータ転送に関して改良の余地があることを認識するに至った。以下、フレームメモリ８０からのデータ転送を改良するためのいくつかの動き補償部６０の構成とその動作を説明する。
【００３３】
図３は、動き補償部６０の構成を説明する図である。図２の一般的な構成と共通する構成要素については同符号を付して説明を省略する。
【００３４】
動き補償部６０は、フレームメモリ８０から転送した画素データを保持するために、通常のＳＲＡＭ６６とは別に、先読み用ＳＲＡＭ６４を有する。動きベクトル検出部６２は、フレームメモリ８０に保持された参照画像の所定の探索範囲の内、参照頻度の高い画素領域のデータをあらかじめフレームメモリ８０から先読み用ＳＲＡＭ６４に転送する。一方、動きベクトル検出部６２は、動きベクトルの探索の際に参照する必要のある画素データを探索の都度、フレームメモリ８０からＳＲＡＭ６６に転送する。ただし、既に先読み用ＳＲＡＭ６４に保持されている画素データについてはフレームメモリ８０からＳＲＡＭ６６への転送は行われず、先読み用ＳＲＡＭ６４に保持された画素データが優先的に利用される。
【００３５】
動きベクトル検出部６２は、対象マクロブロックについての各回の探索で参照する画素データが先読み用ＳＲＡＭ６４内にあれば、先読み用ＳＲＡＭ６４から画素データを読み取り、先読み用ＳＲＡＭ６４になければ、参照したい画素データをフレームメモリ８０からＳＲＡＭ６６に転送して利用する。
【００３６】
動きベクトル検出部６２は、次の新しい対象マクロブロックに対して動きベクトルの探索を開始する際、新しい対象マクロブロックの動き探索において参照頻度の高い画素データをあらかじめフレームメモリ８０から先読み用ＳＲＡＭ６４に転送し、先読み用ＳＲＡＭ６４に保持されるデータを更新する。
【００３７】
動きベクトル検出部６２は、先読み用ＳＲＡＭ６４とＳＲＡＭ６６とを切り替えて参照することにより、フレームメモリ８０から重複したデータを繰り返し転送することを防ぎ、フレームメモリ８０からのデータ転送量を減らすことができる。たとえば、先読み用ＳＲＡＭ６４が縦横４０画素の画素領域を先読みデータとして保持するとして、動き探索において、縦横１６画素のマクロブロックの探索を６回繰り返したとする。仮に、６回の探索で参照する画素がすべて先読み用ＳＲＡＭ６４内にあったとすれば、データ転送量は、先読み用ＳＲＡＭ６４への１回のデータ転送だけで済み、１つの対象マクロブロックに対して動きベクトルを探索するのに要するデータ転送量は、４０×４０＝１６００バイトとなる。
【００３８】
このように、動きベクトル検出部６２は、対象マクロブロックの動きベクトルの探索で複数回参照される可能性の高い画素データを前もってフレームメモリ８０から読み出し、先読み用ＳＲＡＭ６４に転送するが、先読み用ＳＲＡＭ６４に転送すべきデータは次のような判断基準で決定する。
【００３９】
（１）周囲のマクロブロックの動きベクトルに基づいて決定
対象マクロブロックの周囲のマクロブロックで既に動きベクトルを検出済みのものがある場合、動きベクトル検出部６２は、その周囲のマクロブロックの動きベクトルが示す予測マクロブロックおよびその周辺の画素領域を、対象マクロブロックの動き探索でも繰り返し参照される可能性が高いと判断し、先読み用ＳＲＡＭ６４にあらかじめ転送する。
【００４０】
（２）画面全体の動きベクトルに基づいて決定
画面のスクロールなどにより画面全体が動いている場合、動きベクトル検出部６２は、スクロールにより予想される移動先の画素領域が高い参照頻度をもつと判断し、先読み用ＳＲＡＭ６４にあらかじめ転送する。
【００４１】
（３）過去または未来のフレームにおける同じ位置のマクロブロックの動きベクトルに基づいて決定
動きベクトル検出部６２は、過去または未来のフレームにおいて、対象マクロブロックと同じ位置にある参照マクロブロックの動きベクトルから、対象マクロブロックの動き探索で参照される頻度の高い画素領域を予測し、先読み用ＳＲＡＭ６４に転送する。
【００４２】
これは、画像の動きに時間軸方向の相関があり、時間の先後のフレームの動きベクトルから、符号化対象フレームの対象マクロブロックの動きをある程度予測できる場合に特に有効である。たとえば、線形動きモデルにしたがう場合は、動きを線形予測して探索範囲を絞り込むことができる。
【００４３】
ここで、対象マクロブロックと参照マクロブロックは、必ずしも画像上で同一位置になくてもよい。たとえば、画面のスクロールなどにより、画素の位置が変わることもあるため、対象マクロブロックと参照マクロブロックが画像上の位置は異なっていても、対応関係にあることもある。そのような場合は、対象マクロブロックに対応する参照マクロブロックの動きベクトルから、対象マクロブロックの動き探索において参照される頻度の高い画素領域を予測すればよい。
【００４４】
（４）対象マクロブロックを中心とした周辺領域に固定
動きベクトル検出部６２は、対象マクロブロックを中心として、上下左右に所定の画素数だけ広げた範囲が動き探索で繰り返し参照される可能性が高いと判断し、先読み用ＳＲＡＭ６４に転送する。動きがあまり激しくない場合は、対象マクロブロックを中心とする狭い範囲でマッチングが取れる確率が高いからである。対象マクロブロックを中心とする上下左右の画素幅は、画像サイズすなわち解像度に応じて調整する。
【００４５】
（５）前回までのパスで判明した探索範囲に基づいて決定
符号化が複数のパスにわたって行われる場合、動きベクトル検出部６２は、前回までのパスで判明した探索範囲を今回のパスでも繰り返し探索される可能性が高いと判断し、先読み用ＳＲＡＭ６４に転送する。
【００４６】
先読み用ＳＲＡＭ６４にあらかじめ転送する画素データが占める領域のサイズは可変にしてもよい。動き量の大小や動き探索に要求される精度などの要因により、探索すべき画素領域の大きさを動的に変えることが必要となることがある。また、符号化装置１００を実装する機器の設計上の制約などにより、先読み用ＳＲＡＭ６４の容量には制限が設けられることがあったり、機器によってはＳＲＡＭの追加が可能なものもあるから、先読みする画素データの領域サイズは、先読み用ＳＲＡＭ６４の容量制限や使用制限に応じて適宜変えられるように構成することも必要となる。先読みするデータのサイズは次のような基準で決定される。
【００４７】
（１）周囲のマクロブロックの動きベクトルに基づいて、探索範囲の大きさやばらつき具合を判断し、先読みするデータのサイズを決める。
（２）画面のスクロールなど画像全体の動きベクトルに基づいて、先読みするデータのサイズを決める。
（３）過去または未来のフレームにおける同じ位置のマクロブロックの動きベクトルに基づいて、探索範囲の大きさを判断し、先読みするデータのサイズを決める。
（４）外部からの入力情報、たとえば、撮影モードなどを用いて、動きの激しい動画像であるかどうかなどを判断し、先読みするデータのサイズを決める。
【００４８】
図４は、動き補償部６０の別の構成を説明する図である。この構成では、先読み用ＳＲＡＭ６５の記憶領域が複数のタイルに分割されており、タイル単位でデータの更新が可能である。動きベクトル検出部６２は、フレームメモリ８０に保持された参照画像の内、参照頻度の高い画素領域を先読み用ＳＲＡＭ６４の各タイルに転送する。
【００４９】
動きベクトル検出部６２は、次の新しい対象マクロブロックに対する動きベクトルの探索を開始する際に、先読み用ＳＲＡＭ６５のデータを更新するが、図４の構成では、このデータ更新をタイル単位で行う。
【００５０】
前回の対象マクロブロックと今回の対象マクロブロックの間に関連性がある場合、両マクロブロックの探索範囲は重複することが多く、参照頻度の高い画素領域も共通する場合が多い。そこで、動きベクトル検出部６２は、前回の対象マクロブロックの動き探索で参照された画素データの内、今回の対象マクロブロックの動き探索でも参照頻度の高いデータは破棄しないで、先読み用ＳＲＡＭ６４内にタイル単位でそのまま残し、今回の対象マクロブロックの動き探索に再利用する。
【００５１】
動きベクトル検出部６２は、前回の対象マクロブロックの動き探索では参照頻度が高い画素データであったが、今回の対象マクロブロックの動き探索では参照頻度が高くない画素データついては、タイル単位で先読み用ＳＲＡＭ６４から破棄し、データが破棄されたタイルには、今回の対象マクロブロックの動き探索で参照頻度が高い画素データをフレームメモリ８０から転送して保持する。
【００５２】
フレームメモリ８０は、画像上の画素位置と記憶領域における位置とが対応しているが、先読み用ＳＲＡＭ６５は、タイル単位でデータを入れ替えるため、先読み用ＳＲＡＭ６５内では、画像上の画素位置と記憶領域における位置との間にフレームメモリのような対応関係はない。そこで、画像上の画素位置と記憶領域における位置の対応関係を格納する対応テーブルを設けておく。
【００５３】
アドレス変換部６７は、動きベクトル検出部６２から画素位置を指定する参照アドレスを受け取ると、この対応テーブルを参照して、動きベクトル検出部６２からの参照アドレスを先読み用ＳＲＡＭ６５の実際の格納先を指す実アドレスに変換し、先読み用ＳＲＡＭ６５に実アドレスを供給する。先読み用ＳＲＡＭ６４は、アドレス変換部６７から指定された実アドレスに格納された画素データを動きベクトル検出部６２に出力する。
【００５４】
タイル単位でデータ更新が可能な先読み用ＳＲＡＭ６５を用いることにより、連続して処理する２つの対象マクロブロック間で、探索範囲に重複がある場合、重複した範囲の画素データは破棄せずに、次の対象マクロブロックでも再利用することができ、フレームメモリ８０からのデータ転送量をさらに削減し、ＳＢＵＳ８２の帯域幅の消費を抑えることができる。
【００５５】
図５は、動き補償部６０のさらに別の構成を説明する図である。この構成では、第１先読み用ＳＲＡＭ６４ａと第２先読み用ＳＲＡＭ６４ｂとを設ける。第１先読み用ＳＲＡＭ６４ａは、現在処理中の対象マクロブロックにおいて参照頻度の高い画素データをあらかじめ転送しておくために用いられ、第２先読み用ＳＲＡＭ６４ｂは、次に処理する対象マクロブロックにおいて参照頻度の高い画素データをあらかじめ転送しておくために用いられる。
【００５６】
これにより、次の対象マクロブロックの処理を開始するときには、既に第２先読み用ＳＲＡＭ６４ｂに画素データが先読みされているため、動きベクトルの探索を直ちに始めることができる。また、現在の対象マクロブロックの動き探索の結果にもとづいて、次の対象マクロブロックで先読みする画素データを決め、第２先読み用ＳＲＡＭ６４ｂに転送したり、現在の対象マクロブロックについての先読みデータの内、次の対象マクロブロックでも利用するデータがあれば、そのデータを第１先読み用ＳＲＡＭ６４ａから第２先読み用ＳＲＡＭ６４ｂにコピーすることもできる。
【００５７】
以上、本発明を実施の形態をもとに説明した。実施の形態は例示であり、それらの各構成要素や各処理プロセスの組み合わせにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
【００５８】
上記の説明では、先読み用ＳＲＡＭ６４と通常のＳＲＡＭ６６とを物理的に別々に設けたが、１つのＳＲＡＭを論理的に先読み用のメモリ領域と通常のメモリ領域とに分けてそれぞれの機能をもたせてもよい。
【図面の簡単な説明】
【００５９】
【図１】実施の形態に係る符号化装置の構成図である。
【図２】図１の動き補償部の一般的な構成を説明する図である。
【図３】図１の動き補償部の構成を説明する図である。
【図４】図１の動き補償部の別の構成を説明する図である。
【図５】図１の動き補償部のさらに別の構成を説明する図である。
【符号の説明】
【００６０】
２０  ＤＣＴ部、  ３０  量子化部、  ６０  動き補償部、  ６２  動きベクトル検出部、  ６４、６５  先読み用ＳＲＡＭ、  ６６  ＳＲＡＭ、  ６７  アドレス変換部、  ６８  動き補償予測部、  ８０  フレームメモリ、  ８２  ＳＢＵＳ、  ９０  可変長符号化部、  １００  符号化装置。
【図１】
2006270683.tif 000003
【図２】
2006270683.tif 000004
【図３】
2006270683.tif 000005
【図４】
2006270683.tif 000006
【図５】
2006270683.tif 000007