(57)【要約】    【課題】動きベクトル検出の際に、外部メモリと内部メモリとの間で行われているデータ転送を効率的に行う。    【解決手段】動画像符号化装置１は、動画像圧縮器２と、ＳＤＲＡＭ等の外部ＲＡＭ３とが外部バス４を介し接続され、動画像圧縮器２は、ＣＰＵ１１と、内部ＲＡＭ１２と、内部ＲＡＭ１２と外部ＲＡＭ３との間でＤＭＡ転送等を行うメモリコントローラ１３とがローカルバス１４を介し接続され構成されている。ＣＰＵ１１が、動き補償ＭＣ、動き推定ＭＥ、量子化Ｑなどの動画像圧縮符号化の各処理を内部ＲＡＭ１２にデータを記憶して処理する。動きベクトル検出の際は、メモリコントローラ１３が、外部ＲＡＭ３から内部ＲＡＭ１２へ、動きベクトル検出に新たに必要とされる差分データのみをＤＭＡ転送して動きベクトルを検出する。  【選択図】    図１
2006340139.tif 000002
【特許請求の範囲】
【請求項１】
動き補償予測符号化により参照画像を参照して動きベクトルを検出し、検出した動きベクトルを用いて入力動画像を圧縮符号化する動画像符号化装置であって、
前記参照画像を記憶する外部メモリと、
前記外部メモリに記憶された前記参照画像から現在の動きベクトル探索範囲のデータと次の動きベクトル探索範囲のデータとの間の差分データを取り出して転送するメモリ制御手段と、
前記メモリ制御手段から前記差分データを入力して、受信した前記差分データにより現在の動きベクトル探索範囲のデータを更新して次の動きベクトル探索範囲のデータとして記憶する内部メモリと、
前記内部メモリに保存された前記次の動きベクトル探索範囲のデータを用いて次の動きベクトルを検出して前記入力動画像を圧縮符号化する符号化手段と、
を有する動画像符号化装置。
【請求項２】
前記内部メモリは、
動きベクトル探索範囲のデータを２次元的に格納して記憶しており、前記メモリ制御手段から前記差分データを入力して、受信した前記差分データにより現在の動きベクトル探索範囲のデータを更新する際、現在の動きベクトル探索範囲のデータのうち次の動きベクトル探索範囲のデータとして使用されないデータの格納位置に、１画素分アドレスを後方にずらして格納する、請求項１記載の動画像符号化装置。
【請求項３】
動き補償予測符号化により参照画像を参照して動きベクトルを検出し、検出した動きベクトルを用いて入力動画像を圧縮符号化する際の動画像符号化方法であって、
外部メモリに記憶された前記参照画像から現在の動きベクトル探索範囲のデータと次の動きベクトル探索範囲のデータとの間の差分データを取り出して内部メモリに転送し、その差分データにより現在の動きベクトル探索範囲のデータを更新して次の動きベクトル探索範囲のデータとして記憶させて、前記内部メモリに保存された次の動きベクトル探索範囲のデータを用いて次の動きベクトルを検出して入力動画像を圧縮符号化する、動画像符号化方法。
【請求項４】
動き補償予測符号化により参照画像を参照して動きベクトルを検出し、検出した動きベクトルを用いて入力動画像を圧縮符号化させることを、コンピュータに実行させるための動画像符号化用プログラムであって、
外部メモリに記憶された参照画像から現在の動きベクトル探索範囲のデータと次の動きベクトル探索範囲のデータとの間の差分データを取り出して前記内部メモリに転送させ、その差分データにより現在の動きベクトル探索範囲のデータを更新して次の動きベクトル探索範囲のデータとして記憶させ、
前記内部メモリに保存された前記次の動きベクトル探索範囲のデータを用いて次の動きベクトルを検出して前記入力動画像を圧縮符号化させる、
ことをコンピュータに実行させるための動画像符号化用プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、動画像符号化装置、動画像符号化方法、および動画像符号化用プログラムに関し、特に、過去に符号化されたフレームの局所復号画像から、動きベクトルを用いて予測画像の取得を行う、いわゆる動き補償を行う画像符号化において使用される動きベクトルを検出時のメモリ使用効率を向上させた動画像符号化装置、動画像符号化方法、および動画像符号化用プログラムに関する。
【背景技術】
【０００２】
動画像の高能率符号化方式の代表的なものとして、ＩＴＵ（国際電気通信連合  電気通信標準化部門）のＨ．２６１、Ｈ．２６３、ＩＳＯ（国際標準化機構）のＭＰＥＧ（Ｍｏｖｉｎｇ  Ｐｉｃｔｕｒｅ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ）−１、ＭＰＥＧ−２、ＭＰＥＧ−４などがある。これらの符号化方式では、動きベクトル検出：ＭＥ（Motion Estimation）、離散コサイン変換：ＤＣＴ(Discrete Cosine Transform)、量子化：Ｑ（quantization）、可変長符号化：ＶＬＣ（variable-length coding）という流れで符号化を行う。この動画像符号化方式に共通の技術として、動きベクトルの検出がある。動きベクトルの検出は、フレームメモリに記憶された画像データを、例えば、１６画素×１６画素などで構成されるマクロブロック単位で読み出し、その動きベクトルを検出する。ここで、動きベクトル検出時においては、各フレームの画像データを、Ｉピクチャ（フレーム内符号化）、Ｐピクチャ（前方予測符号化）、またはＢピクチャ（両方向予測符号化）のうちの何れかとして処理する。
【０００３】
ここで、動きベクトルの検出は、画像データの画像サイズや探索領域の大きさに比例して画像データ量および演算量が増え、演算回路規模や消費電力の増大を招いてしまうため、例えば、外部メモリに画像データおよび参照データの画像データを格納しておき、動きベクトルを検出する際に、現在符号化の対象となっているフレームにおける１６画素×１６ラインのマクロマクロブロックデータと、参照データにおける探索領域の画像データとを内部メモリに転送して、内部メモリにおいてパターンマッチング（ブロックマッチング）等をすることによりマクロブロックの動きベクトルを検出して、なるべく外部メモリへのアクセス回数を減少させるようにした従来技術がある。（例えば、特許文献１参照）。
【特許文献１】特開２００４−２３６３２１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかし、前述の特許文献１に記載の動画像符号化装置では、動きベクトルを検出する際、符号化対象である現在のマクロブロックと、動きベクトル探索領域の参照データをメモリコントローラにより外部メモリから内部メモリへ転送して、極力、内部メモリでデータ処理して、外部メモリへのアクセス回数を減らしているものの、動きベクトル探索領域の参照データを更新するたびに、動きベクトル探索領域の参照データ全てを外部メモリから内部メモリへ転送しなければならず、依然、データ転送効率が悪く、消費電力が大きい、という問題があった。
【０００５】
特に、ＣＰＵなどのプロセッサの動作クロックが上がり、メモリ動作スピードとの差が大きくなって、外部メモリアクセスが頻繁に発生すると、外部メモリアクセスによるウエイトサイクルが入るので、高精細な映像のように規模の大きいデータを扱う処理では、プロセッサの実効性能が低下する、という問題もある。
【０００６】
また、動き補償予測符号化では、動きベクトル検出処理の割合が大きく、動きベクトル検出処理時には頻繁に外部モリへのアクセスを行うことから、符号化処理全体の速度の低下を招くことにもなる。
【０００７】
本発明は、このような課題に着目してなされたもので、動きベクトル検出の際に、外部メモリと内部メモリとの間で行われているデータ転送を効率的に行って、消費電力の増大、プロセッサの実効性能の低下、および符号化処理全体の速度の低下を防止することができる動画像符号化装置、動画像符号化方法、および動画像符号化用プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記課題を解決するため、本発明は、動き補償予測符号化により参照画像を参照して動きベクトルを検出し、検出した動きベクトルを用いて入力動画像を圧縮符号化する際、外部メモリに記憶された前記参照画像から現在の動きベクトル探索範囲のデータと次の動きベクトル探索範囲のデータとの間の差分データを取り出して内部メモリに転送し、その差分データにより現在の動きベクトル探索範囲のデータを更新して次の動きベクトル探索範囲のデータとして記憶させて、前記内部メモリに保存された次の動きベクトル探索範囲のデータを用いて次の動きベクトルを検出して入力動画像を圧縮符号化する、ようにしたものである。
【発明の効果】
【０００９】
本発明によれば、動きベクトルを用いて入力動画像を圧縮符号化する際、外部メモリに記憶された参照画像から現在の動きベクトル探索範囲のデータと次の動きベクトル探索範囲のデータとの間の差分データを取り出して内部メモリに転送すればよいため、動きベクトル検出の際のデータ転送を効率的に行うことができ、消費電力の増大、プロセッサの実効性能の低下、および符号化処理全体の速度の低下を防止することができる。
【発明を実施するための最良の形態】
【００１０】
以下、図面に基づき本発明の実施形態について説明する。
【００１１】
図１は、本発明の実施の形態に係る動画像符号化装置の構成例を示すブロック図である。
【００１２】
図１おいて、本実施の形態の動画像符号化装置１は、動画像圧縮器２と、ＳＤＲＡＭ等の外部ＲＡＭ３とが外部バス４を介し接続され構成されている。動画像圧縮器２は、システムオンチップ等で構成され、動画像圧縮化器２の機能等を果たすＣＰＵ１１と、ＣＰＵ１１が動画像符号化処理の際、ワーキングバッファ（メインメモリ）としてデータを保持する内部ＲＡＭ１２と、内部ＲＡＭ１２と外部ＲＡＭ３との間でデータのＤＭＡ転送等を行うメモリコントローラ１３とがローカルバス１４を介し接続され構成されている。
【００１３】
図２は、図１に示す実施の形態の動画像符号化装置の機能をハードウエア的に示した構成例を示すブロック図である。
【００１４】
図２において、この動画像符号化装置１の機能をハードウエア的に説明しておくと、動画像符号化装置１は、フレームメモリ２１と、減算器２２と、ＤＣＴ部２３と、量子化部（Ｑ）２４と、逆量子化部（ＩＱ）２５と、逆ＤＣＴ部２６と、加算器２７と、フレームメモリ２８と、動き補償部（ＭＣ）２９、動き推定部（ＭＥ）３０と、可変長符号化部（ＶＬＣ）３１とから構成されることにな、これらの各構成要素の機能を、図１に示す動画像符号化装置１が達成することになる。つまり、図１に示す動画像符号化装置１におけるＣＰＵ１１が、図示されていないプログラムを実行等することにより内部ＲＡＭ１２を使用して、減算器２２や、ＤＣＴ部２３、量子化部（Ｑ）２４、逆量子化部（ＩＱ）２５、逆ＤＣＴ部２６、加算器２７、動き補償部（ＭＣ）２９、動き推定部（ＭＥ）３０、可変長符号化部（ＶＬＣ）３１等の処理を実行する一方、外部ＲＡＭ３および内部ＲＡＭ１２が、フレームメモリ２１およびフレームメモリ２８として機能することになる。なお、メモリコントローラ１３は、主に、外部ＲＡＭ３と内部ＲＡＭ１２との間のデータ転送を行っているので、図２において対応する構成は示していない。
【００１５】
次に、本実施の形態の動作を説明する。
【００１６】
図１に示すように、動画像圧縮器２上で動画像データを動きベクトルを検出して圧縮処理を行う場合、メモリコントローラ１３は、動きベクトル探索時、外部メモリ３に格納された画像データおよび参照データから、それぞれ動きベクトル検出対象のマクロブロックデータと、動きベクトルを探索する領域の動きベクトル探索領域データとを内部ＲＡＭ１２に後述するようにＤＭＡ転送して格納して、ＣＰＵ１１が動きベクトルの検出を行う。なお、本実施の形態では、動きベクトル検出対象のマクロブロックデータは、１６×１６画素からなり、動きベクトル探索領域データは、参照データにおいてそのマクロブロックデータを中心として上下左右２マクロブロック分とった５×５マクロブロックデータとする。
【００１７】
ここで、従来は、動きベクトル検出の際、常に、参照データからマクロブロック２５個分の動きベクトル探索領域（参照ブロック）データを外部ＲＡＭ３から外部バス４を介して内部ＲＡＭ１２へ移動させていた。そのため、消費電力が大きいと共に、プロセッサの実効性能および符号化処理全体の速度の低下を招き、効率が悪かった。
【００１８】
しかし、本実施の形態では、後述するように、動きベクトル検出の際、メモリコントローラ１３が今回参照する参照ブロックデータと、その前に参照した参照ブロックデータとの差分データとの間の差分データを２次元的に外部ＲＡＭ３から内部ＲＡＭ１２へＤＭＡ転送し、かつ、内部ＲＡＭ１２では、今回使用されないブロックデータの格納位置に１画素ずつずらしたアドレスにその差分データを格納している。このような本実施の形態による２次元的なデータ転送技術は、近年発売されているプロセッサに採用されていてデジタル信号処理などに有効であり、メモリアドレス上では１次元的に配列されているデータを２次元的にブロック転送する技術である。
【００１９】
図３は、マクロブロッデータ♯２２の動きベクトル検出時、メモリコントローラ１３により外部ＲＡＭ３から内部ＲＡＭ１２へ２次元的に転送される参照ブロックデータを示す図である。
【００２０】
つまり、図３に示すように、外部ＲＡＭ３には、例えば、０番目〜９８番目までの９９個の１６×１６画素のマクロブロックからなるＱＣＩＦサイズ（１７６×１４４画素）の参照フレームデータ３０が格納されている。ここで、図３では、０番目〜２１番目のマクロブロックデータ♯０〜♯２１について動きベクトルの検出が終了し、続いて２２番目のマクロブロックデータ♯２２について動きベクトル検出のために、メモリコントローラ１３が外部ＲＡＭ３から内部ＲＡＭ１２へＤＭＡ転送する参照ブロックデータを示している。なお、この場合には、符号化対象の画像データから動きベクトル検出対象の２２番目のマクロブロックデータ♯２２も転送される。
【００２１】
その際、内部ＲＡＭ１２には、前回動きベクトルを求めたマクロブロックデータ♯２１を中心とした５×５の参照ブロックデータ３１が格納されているので、メモリコントローラ１３は、前回のマクロブロックデータ♯２１を中心とした５×５の参照ブロックデータと、今回のマクロブロックデータ♯２２を中心とした５×５の参照ブロックデータ３１との間の差分データ、すなわち今回はマクロブロックデータ♯２２を中心とした５×５の参照ブロックデータ３１全てを外部ＲＡＭ３から内部ＲＡＭ１２へＤＭＡ転送する。
【００２２】
すると、ＣＰＵ１１は、画像データにおけるマクロブロックデータ♯２２の動きベクトルを算出するため、参照フレームデータ３０におけるマクロブロックデータ♯２２を中心とする５×５のマクロブロックからなる参照ブロックデータ３１を参照してマッチング計算を行い、マクロブロックデータ♯２２を中心にその周囲２マクロブロック分の範囲、すなわちマクロブロック２５個分を探索して移動する。この場合、１画素（ピクセル）＝１Ｂｙｔｅのデータサイズとすると１６×１６×２５＝６４００Ｂｙｔｅ分のデータの移動が必要となる。
【００２３】
なお、動きベクトル検出時には、対象マクロブロック外側のブロックを参照する必要があるので、図３において、“Ｐ”というブロックは、０番目〜９８番目までの対象マクロブロック（１６×１６画素）を参照するため、０番目〜９８番目までの対象マクロブロックを内挿や外挿によりパディング（追加）したパディング領域のマクロブロックのことである。この時、パディングされたマクロブロック♯Ｐは、例えば、隣接するマクロブロックと同じ値を持つことになる。
【００２４】
なお、図３に示す場合、内部ＲＡＭ１２へＤＭＡ転送された５×５のマクロブロック２５個分の参照ブロックデータ３１は、内部ＲＡＭ１２にて図３に示すように２次元的に配列され、連続したシーケンスなアドレスが与えられて格納されることになる。
【００２５】
図４は、マクロブロックデータ♯２３の動きベクトル検出時、メモリコントローラ１３により外部ＲＡＭ３から内部ＲＡＭ１２へ２次元的に転送される参照ブロックデータを示す図である。
【００２６】
ここで、マクロブロックデータ♯２３の動きベクトル検出の際、内部ＲＡＭ１２には、前回のマクロブロックデータ♯２２を中心とした５×５の参照ブロックデータが格納されているので、今回メモリコントローラ１３によって外部バス４を介し内部ＲＡＭ１２へＤＭＡ転送される参照ブロックデータ４１は、前回のマクロブロックデータ♯２２を中心とした５×５の参照ブロックデータ３１と、今回のマクロブロックデータ♯２３を中心とした５×５の参照ブロックデータ４１との間の差分データ、すなわち図４上最も左側のパディングしたマクロブロックデータＰを１列目としてカウントした６列目のマクロブロックデータ♯３，♯１４，♯２５，♯３６，♯４７からなる１列分のブロックデータ４２となる。
【００２７】
すると、内部ＲＡＭ１２では、前回転送された動きベクトル探索範囲のマクロブロック３１のうち１列目の５個のマクロブロックＰからなる参照ブロックデータは捨てて、そこに６列目のマクロブロックデータ♯３，♯１４，♯２５，♯３６，♯４７からなる１列分のマクロブロックデータ４２を格納する。これにより、内部ＲＡＭ１２では、６列目のマクロブロックデータ♯３，♯１４，♯２５，♯３６，♯４７からなる１列分のマクロブロックデータ４２と、前回転送された動きベクトル探索範囲のマクロブロック３１のうち２〜５列目のマクロブロックデータ４３とをあわせて、マクロブロックデータ♯２３についての動きベクトル探索用の５×５マクロブロック分の参照ブロックデータ４１を構成することになる。
【００２８】
その際、図４に示すように、内部ＲＡＭ１２では、６列目のマクロブロックデータ♯３，♯１４，♯２５，♯３６，♯４７からなる１列分のマクロブロックデータ４２を、前回転送された動きベクトル探索範囲のマクロブロックデータ４３のうち５列目のマクロブロックデータ♯２，♯１３，♯２４，♯３５，♯４６からなるマクロブロックデータの次（図４上右隣）ではなく、前回転送された動きベクトル探索範囲のマクロブロック４２のうち今回不要とされる１列目のマクロブロック♯Ｐ，♯Ｐ，♯Ｐ，♯Ｐ，♯Ｐからなるマクロブロックデータの位置で、かつ、１画素分アドレスを後方（図上、下方向）にずらして格納する。
【００２９】
これは、６列目のマクロブロックデータ♯３，♯１４，♯２５，♯３６，♯４７からなる１列分のマクロブロックデータ４１を、前回の動きベクトル探索範囲のマクロブロック４１のうち今回使用されない１列目のマクロブロックデータ♯Ｐ，♯Ｐ，♯Ｐ，♯Ｐ，♯Ｐからなるマクロブロックデータの位置（図上最も左隣）に格納することにより、前回動きベクトル検出に使用された参照ブロックデータのうち、今回も動きベクトル検出に使用された参照ブロックデータは、格納位置もアドレスも変更されずに格納されるからである。
【００３０】
また、このように６列目のマクロブロックデータ♯３，♯１４，♯２５，♯３６，♯４７からなる１列分のマクロブロックデータ４２それぞれを、１６画素、すなわち１ラインにわたり１画素分アドレスを後方（図上、下方向）にずらして格納しているので、ブロックデータ４２とブロックデータ４３とからなる参照ブロックデータ４１の読み出しアドレスは、シーケンスにつながるからである。
【００３１】
図５は、マクロブロックデータ♯２２の動きベクトル検出時、内部ＲＡＭ１２に格納された参照ブロックデータ３１の読み出しアドレスがシーケンスにつながることを説明する図である。
【００３２】
図５では、図３に示す参照ブロックデータ３１を構成する各画素に読み出し順に対応した番号を割り振っている。参照ブロックデータ３１は、図３に示すように、マクロブロックデータ♯２２の動きベクトル検出時の参照ブロックデータであるので、その最も左上端の参照ブロックデータ♯Ｐの１行目の左端の画素から順に図上右側方向に、読み出し順位が振られることになる。
【００３３】
その結果、図５に示すように、参照マクロブロックデータ♯Ｐの１行目の１６個の画素には、０〜１５の読み出し順位が振られ、最も右端の参照マクロブロックデータ♯２の１行目の画素には、６４〜７９の読み出し順位が振られることになる。
【００３４】
参照ブロックデータ３１における１行目の画素について読み出し順位が振られると、次は、２行目の画素に読み出し順位を振るため、最も左端の参照マクロブロックデータ♯Ｐの２行目に戻る。２行目の画素の画素も同様に、左端の画素から順に図上右方向に振られ、９０〜１５９の読み出し順位が振られることになる。このようなことを繰り返していくと、図５に示していないが、図３に示す参照マクロブロックデータ４６の１６行目の画素には、６３８４〜６３９９の読み出し順位が振られて、この読み出し順位の順に読み出しアドレスがシーケンスに並ぶことになる。
【００３５】
図６は、マクロブロックデータ♯２３の動きベクトル検出時、内部ＲＡＭ１２に格納された参照ブロックデータ４１の読み出しアドレスがシーケンスにつながることを説明する図である。
【００３６】
この場合、マクロブロックデータ♯２３の動きベクトル検出時であるので、本実施の形態では、内部ＲＡＭ１２には、更新された最も左端のマクロブロックデータ♯３の１行目の画素は、１６画素分、すなわち図上１ライン分にわたり１画素分後方（図上、下方）にシフトして格納されるので、マクロブロックデータ♯３の１行目の各画素には、８０〜９５の読み出し順位が振られることになる。
【００３７】
そのため、ＣＰＵ１１は、マクロブロックデータ♯２３について動きベクトルを算出する際、最も読み出し順位が小さい２列目のマクロブロックＰの１行目の読み出し順位１６のデータから順に読み出していき、最も右端のマクロブロック２の１行目の読み出し順位７９のデータが読み出されると、次に読み出し順位８０のデータ、すなわち左端のマクロブロック２の１行目のデータから読み出されることになり、シーケンスなアドレスで順に参照ブロックデータ４１の画素を読み出していくことになる。
【００３８】
このように、本実施の形態によれば、次の動きベクトルを検出する際には、現在の動きベクトル探索範囲のマクロブロックと、次の動きベクトル探索範囲のマクロブロックとの差分データを外部ＲＡＭ３から読み出し内部ＲＡＭ１２に２次元的にＤＭＡ転送等し、内部ＲＡＭ１２では、更新された差分データのみを、図４に示すように１６画素、すなわち１ラインにわたり１画素分ずらして格納しているので、ＣＰＵ１１上からは、内部ＲＡＭ１２に保存されているマクロブロック領域にアクセスする時は、従来のように毎回５×５のマクロブロックを転送している場合と同様に、リニアにマクロブロックが並んでいるように見え、アドレス変換の必要もなくなる。
【００３９】
図７は、本実施の形態によりマクロブロック２２を中心とする５×５の最初の動きベクトル探索範囲のマクロブロック３１から、マクロブロック３２を中心とする５×５の動きベクトル探索範囲のマクロブロックまでの動きベクトル探索の際、内部ＲＡＭ１２における参照マクロブロックの遷移を示す図である。
【００４０】
まず、１回目のマクロブロックデータ♯２２の動きベクトル検出の際は、メモリコントローラ１３は、上述したように、マクロブロックデータ♯２２を中心とした２５個分の参照ブロックデータ３１を外部ＲＡＭ３から内部ＲＡＭ１２へＤＭＡ転送等で移動させる。次の２回目のマクロブロックデータ♯２３の動きベクトル検出の際は、前のマクロブロックデータ♯２２を中心とした参照ブロックデータと、今回のマクロブロックデータ♯２３を中心とした参照ブロックデータとの間の差分データ、すなわち６列目のマクロブロックデータ♯３，♯１４，♯２５，♯３６，♯４７は、参照ブロックデータ４１における今回更新される１列目の位置に、１ラインにわたり１画素ずつずらしたアドレスに格納される。
【００４１】
３回目のマクロブロックデータ♯２４の動きベクトル計算時には、前回のマクロブロックデータ♯２３を中心とした参照ブロックデータと、今回のマクロブロックデータ♯２４を中心とした参照ブロックデータとの間の差分データ、すなわち参照フレームデータ３０における７列目のマクロブロックデータ♯３，♯１４，♯２５，♯３６，♯４７が、参照ブロックデータ７１における今回更新される２列目の位置に、１ラインにわたり１画素ずつずらしたアドレスに格納される。次の４回目のマクロブロックデータ♯２５の動きベクトル計算時には、参照フレームデータ３０における８列目のマクロブロックデータ♯５，♯１６，♯２７，♯３８，♯４９が、参照ブロックデータ７２における今回更新される３列目の位置に、１ラインにわたり１画素ずつずらしたアドレスに格納される。
【００４２】
６回目のマクロブロックデータ♯２７の動きベクトル計算時には、参照フレームデータ３０における１０行目の１列分のマクロブロックデータ♯７，♯１８，♯２９，♯４０，♯５１は、参照ブロックデータ７４における今回更新される５列目の位置に、１ラインにわたり１画素ずつずらしたアドレスに格納される。このときの５×５の参照ブロックデータ７４は、全て１画素分ずれて格納されることになる。
【００４３】
７回目のマクロブロックデータ♯２８の動きベクトル計算時には、参照フレームデータ３０における１１列目のマクロブロックデータ♯８，♯１９，♯３０，♯４１，♯５２は、参照ブロックデータ７５における今回更新される１列目の位置に、１ラインにわたり２画素ずつずらしたアドレス、すなわち相対的には、１０列目のマクロブロックデータ♯７，♯１８，♯２９，♯４０，♯５１などの格納位置よりさらに１画素ずらされて、シーケンスな読み出しアドレスとなるように格納される。
【００４４】
そして、１１回目のマクロブロックデータ♯３２の動きベクトル計算時には、参照フレームデータ３０における１５行目の１列分のマクロブロックデータ♯Ｐ，♯Ｐ，♯Ｐ，♯Ｐ，♯Ｐは、参照ブロックデータ７９における今回更新される５列目の位置に、１ラインにわたり２画素ずつずらしたアドレスに格納することになる。その結果、このときの５×５の参照ブロックデータ７９は、全て２画素分ずれて格納されることになる。
【００４５】
そのため、内部ＲＡＭ１２では、マクロブロックデータ♯３２までは１回の動きベクトル計算時に１列、すなわちマクロブロック５個分のデータ更新だけですむことになる。一列のデータ転送量は１６×１６×５＝１２８０Ｂｙｔｅであるので、従来のように動きベクトル探索範囲全体のデータ、すなわち５×５マクロブロックデータ分のデータ転送量１６×１６×５×５＝６４００Ｂｙｔｅを転送するより、５１２０Ｂｙｔｅのデータ転送量の削減が見込めることになる。
【００４６】
本実施の形態では、内部ＲＡＭ１２における参照ブロックデータの以上のような更新処理を、外部ＲＡＭ３に格納されたＱＣＩＦサイズの参照フレームデータ３０全てについて行う。
【００４７】
このように、本実施の形態では、動きベクトル検出の際、メモリコントローラ１３は、前回の動きベクトル検出に使用した参照ブロックデータと、今回の動きベクトルの検出に使用する参照ブロックデータとの間の差分データを内部ＲＡＭ１２へ２次元的にＤＭＡ転送し、内部ＲＡＭ１２では、１６画素分、すなわち図上１ライン分にわたり１画素分後方（図上、下方）にシフトしてその差分データを格納するようにしたので、動きベクトル検出時における外部ＲＡＭ３と動画像圧縮機２との間における外部バス４を介したデータ転送量が減少することになり、外部ＲＡＭ３へのアクセス量が減少すると共に、外部バス４におけるバス占有帯域を減少させることができる。
【００４８】
その結果、動画像符号化装置１を搭載したチップの電力消費量を減少することができると共に、外部ＲＡＭ３へのアクセスによるウエイトサイクルを減らし、動きベクトル検出の高速化を行うことができ、消費電力の削減、ＣＰＵ１１の実効性能の低下、および符号化処理全体の速度の低下を防止して、符号化／復号化処理全体の高速化を実現することができる。
【００４９】
なお、本実施の形態では、図３等に示すように本来の参照ブロックデータだけでなく、内挿や外挿入によるパディングしたマクロブロックデータ♯Ｐまで外部ＲＡＭ３から内部ＲＡＭ１２へ転送するように説明したが、本発明では、これに限らず、外部ＲＡＭ３ではパディングを実行せず、ＣＰＵ１１が内部ＲＡＭ１２にて転送された周囲の画素からパディングを行うようにして、パディングしたマクロブロックデータ♯Ｐは、内部ＲＡＭ１２へ転送しないようにしても良い。このようにすれば、データの転送量がパディングしたマクロブロックデータ♯Ｐの転送分さらに減少するので、さらにデータ効率が向上することになる。
【００５０】
また、本実施の形態における参照フレームデータ３０の大きさであるＱＣＩＦサイズや、動きベクトルを求める単位（マクロブロックデータの大きさ）は１６×１６画素、参照ブロックデータ３１等の大きさである５×５参照マクロブロックデータ等は、あくまで一例であり、本発明では、これらの大きさに、何ら限定されるものではない。例えば、参照フレームデータの大きさが、ＣＩＦサイズであっても良く、また、動きベクトルを求める単位は１６×８画素、参照ブロックデータ等の大きさである５×１０参照マクロブロックデータであっても勿論かまわない。
【図面の簡単な説明】
【００５１】
【図１】本発明の実施の形態に係る動画像符号化装置の構成例を示すブロック図である。
【図２】図１に示す実施の形態の動画像符号化装置の機能をハードウエア的に示した構成例を示すブロック図である。
【図３】マクロブロックデータ♯２２の動きベクトル検出時、メモリコントローラにより外部ＲＡＭから内部ＲＡＭへ２次元的に転送される参照ブロックデータを示す図である。
【図４】マクロブロックデータ♯２３の動きベクトル検出時、メモリコントローラにより外部ＲＡＭから内部ＲＡＭへ２次元的に転送される参照ブロックデータを示す図である。
【図５】マクロブロックデータ♯２２の動きベクトル検出時、内部ＲＡＭに格納されたマクロブロックデータの読み出しアドレスがシーケンスにつながることを説明する図である。
【図６】マクロブロックデータ♯２３の動きベクトル検出時、内部ＲＡＭに格納されたマクロブロックデータの読み出しアドレスがシーケンスにつながることを説明する図である。
【図７】内部ＲＡＭにおける参照マクロブロックデータ♯の遷移を示す図である。
【符号の説明】
【００５２】
１  動画像符号化装置
２  動画像圧縮器
３  外部ＲＡＭ（外部メモリ）
４  外部バス
１１  ＣＰＵ（符号化手段）
１２  内部ＲＡＭ（内部メモリ）
１３  メモリコントローラ（メモリ制御手段）
１４  ローカルバス１４
【図１】
2006340139.tif 000003
【図２】
2006340139.tif 000004
【図３】
2006340139.tif 000005
【図４】
2006340139.tif 000006
【図５】
2006340139.tif 000007
【図６】
2006340139.tif 000008
【図７】
2006340139.tif 000009