(57)【特許請求の範囲】
【請求項１】
動画像の各画面を符号化単位である符号化ブロックに分割し、前記符号化ブロックを動き補償単位である動き補償ブロックに分割し、符号化対象の動き補償ブロックに対して過去または未来の画像を参照画像として動きベクトルを取得し、取得した動きベクトルに基づく予測画像と前記符号化対象の動き補償ブロックとの差分を符号化する動画像符号化装置であって、
列アドレス及び行アドレスでアドレスを特定し、同一の行アドレスをもつ列アドレスに対して連続的に画像データの読み出しおよび書き込みが可能な記憶手段と、
前記記憶手段から前記符号化ブロックの画像データ、及び前記参照画像の画像データを読み出してローカルメモリに記憶し、当該ローカルメモリに記憶された各画像データを用いて前記動きベクトルを探索する動きベクトル探索手段と、
前記符号化ブロックの画像データを、前記記憶手段の１アドレスに対して、画面上で連続する水平Ｎ画素（Ｎは自然数）及び垂直１画素からなる複数の画素単位で格納する第１のデータ格納手段と、
前記参照画像の画像データを、前記記憶手段の１アドレスに対して、画面上で連続する水平Ｐ画素（Ｐは自然数）及び垂直Ｑ画素（Ｑは自然数）からなる複数の画素単位で格納する第２のデータ格納手段
とを具備し、
前記動きベクトル探索手段は、画素精度の粗い動きベクトル探索と前記画素精度を上げた詳細な動きベクトル探索とを含む階層探索を行うものであって、
前記画素精度の粗い動きベクトル探索を行うとき、前記符号化ブロックの縮小処理された画像データと、前記参照画像の縮小処理された画像データとを前記ローカルメモリに記憶して、前記符号化ブロックと相関の高い参照画像を探索して一次動きベクトルを決定し、
前記詳細な動きベクトル探索を行うとき、前記一次動きベクトルの値に基づいて、前記参照画像の画像データを、開始水平座標及び水平画素数が前記Ｐの倍数となり開始垂直座標及び垂直画素数が前記Ｑの倍数となるブロック単位で前記記憶手段から読み出して前記ローカルメモリに記憶して前記動きベクトル探索に用いる
ことを特徴とする動画像符号化装置。
【請求項２】
前記動きベクトル探索手段は、前記画素精度の粗い動きベクトル探索のときの画素精度が、水平画素精度が前記Ｐの倍数と垂直画素精度が前記Ｑの倍数のうち少なくとも一方を満たすことを特徴とする請求項１に記載の動画像符号化装置。
【請求項３】
前記Ｎは１６であり、前記Ｐ及び前記Ｑはそれぞれ４であることを特徴とする請求項１又は２に記載の動画像符号化装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、動画像の符号化する動画像符号化装置に関する。
【背景技術】
【０００２】
被写体を撮影して得られる動画像を圧縮符号化して記録媒体に記録するカメラ一体型動画像記録装置、いわゆるデジタルビデオカメラが、よく知られている。近年は、ランダムアクセス性などの利便性が高いため、記録媒体が従来の磁気テープからディスク媒体や半導体メモリなどに変更されている。しかし、これらのランダムアクセス記憶媒体は、一般にテープ媒体に比べ記憶容量が少ないので、動画像をより高能率に圧縮符号化する必要がある。
【０００３】
また、高画質への期待から、より情報量の多いハイビジョン映像を扱うデジタルビデオカメラが製品化され、ここでも、より高能率な圧縮符号化が望まれている。
【０００４】
動画像圧縮方式として、ＭＰＥＧ方式（ＭＰＥＧ２及びＭＰＥＧ４）が提案され、その後、より圧縮率の高いＨ．２６４が提案された。Ｈ．２６４は、ＭＰＥＧ２やＭＰＥＧ４などの従来の符号化方式に比べて符号化や復号化により多くの演算量を必要とするが、高い符号化効率を実現できる。
【０００５】
Ｈ．２６４で、符号化効率を上げる工夫の一つにマクロブロック・パーティションがある。これは、符号化単位であるマクロブロック（符号化ブロック）をさらにブロック分割してマクロブロック・パーティション（動き補償ブロック）を形成し、動き補償ブロック単位で動き補償をおこなうものである。これにより、より緻密な動き補償が可能になる。
【０００６】
以上説明したように、符号化する画像の画素数の増大と、動き補償ブロックの細分化によって、動画像符号化装置のフレームメモリに要求されるバスレートは非常に高いものとなる。
【０００７】
このような背景の下、特許文献１には、高速なメモリアクセスを可能にするフレームメモリへの格納方法が記載されている。具体的には、フレームメモリの１アドレスに画面上で一方向に連続する画素データを１ワードとして格納し、フレームメモリの連続するアドレスへは、前記１ワードに格納する方向とは直交する方向に連続するように配置する。一般的なＤＲＡＭでは、ある一定の範囲内では列アドレス方向にオーバーヘッドなく連続的にアクセスが可能であり、これを利用して、高速なメモリアクセスを実現する。
【特許文献１】特開平８−１２３９５３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかし、基本的に、フレームメモリのバスレートを上げるためにフレームメモリのバス幅が広くなってきている。動き補償ブロックが細分化されると、フレームメモリの１アドレスに格納する画素数が、動き補償ブロックの水平画素数よりも多くなる。これらの結果、特許文献１記載の方法では、必要のない画素データにアクセスしてしまう機会が増え、メモリアクセス効率が低下してしまう。
【０００９】
本発明は、このような不都合を解消する動画像符号化装置を提示することを目的とする。
【課題を解決するための手段】
【００１０】
本発明に係る動画像符号化装置は、動画像の各画面を符号化単位である符号化ブロックに分割し、前記符号化ブロックを動き補償単位である動き補償ブロックに分割し、符号化対象の動き補償ブロックに対して過去または未来の画像を参照画像として動きベクトルを取得し、取得した動きベクトルに基づく予測画像と前記符号化対象の動き補償ブロックとの差分を符号化する動画像符号化装置であって、列アドレス及び行アドレスでアドレスを特定し、同一の行アドレスをもつ列アドレスに対して連続的に画像データの読み出しおよび書き込みが可能な記憶手段と、前記記憶手段から前記符号化ブロックの画像データ、及び前記参照画像の画像データを読み出してローカルメモリに記憶し、当該ローカルメモリに記憶された各画像データを用いて前記動きベクトルを探索する動きベクトル探索手段と、前記符号化ブロックの画像データを、前記記憶手段の１アドレスに対して、画面上で連続する水平Ｎ画素（Ｎは自然数）及び垂直１画素からなる複数の画素単位で格納する第１のデータ格納手段と、前記参照画像の画像データを、前記記憶手段の１アドレスに対して、画面上で連続する水平Ｐ画素（Ｐは自然数）及び垂直Ｑ画素（Ｑは自然数）からなる複数の画素単位で格納する第２のデータ格納手段とを具備し、前記動きベクトル探索手段は、画素精度の粗い動きベクトル探索と前記画素精度を上げた詳細な動きベクトル探索とを含む階層探索を行うものであって、前記画素精度の粗い動きベクトル探索を行うとき、前記符号化ブロックの縮小処理された画像データと、前記参照画像の縮小処理された画像データとを前記ローカルメモリに記憶して、前記符号化ブロックと相関の高い参照画像を探索して一次動きベクトルを決定し、前記詳細な動きベクトル探索を行うとき、前記一次動きベクトルの値に基づいて、前記参照画像の画像データを、開始水平座標及び水平画素数が前記Ｐの倍数となり開始垂直座標及び垂直画素数が前記Ｑの倍数となるブロック単位で前記記憶手段から読み出して前記ローカルメモリに記憶して前記動きベクトル探索に用いることを特徴とする。
【発明の効果】
【００１１】
本発明によれば、記憶手段へのアクセス効率を上げることができる。これにより、動作速度を低く抑えることができ、消費電力を低減できる。
【発明を実施するための最良の形態】
【００１２】
以下、図面を参照して、本発明の実施例を詳細に説明する。
【実施例１】
【００１３】
図１は、本発明の実施例１である動画像符号化装置の概略構成ブロック図を示す。本実施例の動画像符号化装置では、動画像の各画面を分割して得られる符号化ブロックを更に、動き補償単位である動き補償ブロックに分割する。そして、符号化対象の動き補償ブロックに対して過去または未来の画像を参照画像として動きベクトルを取得し、取得した動きベクトルに基づき予測画像と符号化対象の動き補償ブロックとの差分を符号化する。このような符号化構成において、本実施例は、符号化前の画像データと前記参照画像の画像データのフレームメモリへの格納方法に特徴を有するものである。
【００１４】
撮像部１０は、撮影レンズ１０ａ、当該撮影レンズによる光学像を画像信号に変換する撮像素子１０ｂ、及び撮像素子から出力されるアナログ画像信号を、動画像を示す一定形式の画像データに変換するカメラ信号処理回路１０ｃからなる。撮像部１０のカメラ信号処理回路１０ｃから出力される画像データは、フレーム単位で順番にフレームメモリ１２に格納される。フレームメモリ１２は、複数フレームを記憶可能である。
【００１５】
本実施例では、フレームメモリ１２は、４バンクの同期ＤＲＡＭからなり、データバスのビット幅は１２８ビットであるとする。データバスの１２８ビット幅は、例えば、同一のアドレス線をつないだ６４ビット幅の同期ＤＲＡＭを２つ使うことと等価である。また、ＤＤＲ同期ＤＲＡＭの場合、動作クロックの立ち上がりエッジでデータにアクセスすると考えると、実際のビット幅の２倍のビット幅と考えてよい。従って、３２ビット幅のＤＤＲ同期ＤＲＡＭを２つ使う場合も、１２８ビット幅として考えてよい。
【００１６】
一般に、同期ＤＲＡＭは、行アドレスと列アドレスによってデータ記憶場所が特定される。同一行アドレスであれば、オーバーヘッドなく複数の列アドレスのデータに連続的にアクセスすることが可能である。画像信号の場合、テレビジョン信号と同じ形式、すなわち、フィールド単位のラスタスキャンでフレームメモリに格納される。このとき、同期ＤＲＡＭの１アドレスには、図２に示すように、画像の水平方向に連続する１６画素のデータを割り当て、水平６４画素、垂直３２画素ごとにバンクを切り替えて格納していく。
【００１７】
フレームメモリ１２に記憶されるフレーム画像データは、例えば、第フレーム、第１フレーム、第２フレーム、・・・というように、符号化のフレーム順で読み出される。動画像の符号化方式には、フレーム内の画像データのみで符号化する「イントラ符号化」と、フレーム間予測を使って符号化する「インター符号化」がある。インター符号化には、動き補償の単位（ＭＣブロック）に対して１枚の参照フレームから予測して符号化するＰピクチャと、ＭＣブロックに対して２枚までの参照フレームから予測して符号化するピクチャとがある。イントラ符号化を行うピクチャはＩピクチャと呼ばれる。符号化するフレームの順番が入力フレームの順番と異なるのは、時間的に未来のフレームからの予測（後方予測）を可能にするためである。
【００１８】
イントラ符号化の動作を説明する。Ｉピクチャに対しては、画面内予測回路１４が、フレームメモリ１２から符号化単位となる符号化ブロックの画像データを順に読み出す。符号化ブロックの大きさは、水平１６画素、垂直１６画素とする。符号化対象の画像データは、図２に示すようなデータ構成でフレームメモリ１２に格納されている。即ち、カメラ信号処理回路１０ｃが、特許請求の範囲の第１のデータ格納手段として、フレームメモリ１２の１アドレスに画面上で連続する水平Ｎ画素（Ｎは自然数で、ここでは、Ｎ＝１６）、垂直１画素の複数の画素データを格納する。符号化ブロックの水平画素数は、Ｎの１倍になるが、Ｎの倍数であればよい。符号化対象画像データのアクセスは、水平垂直ともに１６画素単位になるので、１つの符号化ブロックの画像データは、フレームメモリ１２の同一バンク、同一行アドレスに格納されている。従って、画面内予測回路１４は、不要なデータを読み込まずに済む。
【００１９】
画面内予測回路１４は、符号化対象ブロックと同一のフレームの再構成画像から生成される複数の予測画像データと符号化対象ブロックの画像データとをブロックマッチングする。そして、最も相関の高い予測画像データをイントラ予測画像データとして選択し、スイッチ１６に出力する。イントラ符号化に対して、スイッチ１６は画面内予測回路１４の出力を選択し、減算器１８にはイントラ予測画像データが供給される。減算器１８には更に、フレームメモリ１２から符号化対象ブロックの画像データが供給される。減算器１８は、フレームメモリ１２からの符号化対象ブロックの画像データからスイッチ１６からのイントラ予測画像の画像データを減算し、画素毎の差分値を整数変換回路２０に出力する。
【００２０】
整数変換回路２０は、減算器１８からの画素値の差分情報を整数変換する。量子化回路２２は、整数変換回路２０から出力される変換係数データを量子化する。エントロピー符号化回路２４は、量子化回路２２からの量子化された変換係数データをエントロピー符号化する。記録処理回路２６は、エントロピー符号化回路２４からの符号データを記録処理して記録媒体２８に記録する。
【００２１】
エントロピー符号化回路２４はまた、発生符号量の情報を符号量制御回路３０に出力する。符号量制御回路３０は、エントロピー符号化回路２４からの発生符号量の情報に従い、１フレーム内等の一定範囲内で発生符号量が所定値になるように、量子化回路２２における量子化係数を制御する。
【００２２】
量子化回路２２の出力は、局所復号化のために、逆量子化回路３２にも供給される。逆量子化回路３２は、量子化回路２２の出力データを逆量子化し、逆整数変換回路３４は、逆量子化回路３２の出力を逆整数変換する。加算器３６は、逆整数変換回路３４の出力データに、スイッチ１６からの予測画像データを加算する。加算器３６の出力画像データは、ローカルで復号化された再構成画像を示す。加算器３６から出力される再構成画像の画像データは、画面内予測回路１４に供給され、先に説明したようにイントラ予測画像の生成に使用される。また、加算器３６の出力データはループ内フィルタ３８にも供給される。ループ内フィルタ３８は、加算器３６からの再構成画像の符号化歪みを低減する。ループ内フィルタ３８の出力画像データは、後述するインター符号化の際に用いる参照画像データとしてフレームメモリ１２に格納される。
【００２３】
ループ内フィルタ３８から出力される参照画像データをフレームメモリ１２へ書き込むとき、フレームメモリ１２の１アドレスには画面上で連続する水平４画素、垂直４画素の画像データを格納し、水平３２画素、垂直６４画素ごとにバンクを切り替える。ループ内フィルタ３８は、フレームメモリ１２の１アドレスに画面上で連続する水平にＰ画素（Ｐは自然数で、ここでは、Ｐ＝４）、垂直にＱ画素（Ｑは自然数で、ここでは、Ｑ＝４）の画素データを格納する第２のデータ格納手段として機能する。図３は、フレームメモリ１２のデータ書込み位置例を示す。再構成画像の画像データは、符号化対象ブロックと同じ単位、すなわち、水平垂直ともに１６画素単位でフレームメモリ１２に書き込まれるので、無駄なアクセスは発生しない。
【００２４】
インター符号化の動作を説明する。本実施例では、探索する動きベクトルの画素精度が粗い探索から段階的に画素精度を上げて所望の画素精度の動きベクトルを探索する階層探索を採用する。動きベクトル一次探索回路４０が粗い探索を担当し、その探索の水平画素精度が前記Ｐの倍数になるか、垂直画素精度が前記Ｑの倍数になるかの少なくとも一方を満たす。
【００２５】
具体的に説明すると、動きベクトル一次探索回路４０は、符号化対象ブロックの予め縮小処理された画像データ、即ち、画素を間引かれた画像データをフレームメモリ１２から読み出し、内部のローカルメモリへ記憶する。ここでは、画像の縮小率を水平４分の１、垂直４分の１としている。したがって、縮小処理された画像においては、水平４画素、垂直４画素が符号化ブロックの大きさとなる。縮小処理は、例えば、カメラ信号処理回路１０ｃが、出力画像データをフレームメモリ１２に書き込む際に同時に実行する。又は、動きベクトル一次探索回路４０が、フレームメモリ１２から符号化対象ブロックの画像データを読み出し、縮小処理して内部のローカルメモリに格納してもよい。
【００２６】
動きベクトル一次探索回路４０はまた、動きベクトル探索範囲の、縮小処理された画像データをフレームメモリ１２から読み出し、内部のローカルメモリに記憶する。ここでは、探索範囲は、符号化対象ブロックを中心として、水平、垂直ともに、縮小処理後の画像で±８画素の範囲であるとする。したがって、探索範囲は、図４に示すように、水平、垂直ともに２０画素の矩形となる。なお、図４で、黒丸は水平、垂直ともに４の倍数の座標、即ち開始水平座標、開始垂直座標をもつ画素を示す。
【００２７】
動きベクトル探索範囲の、縮小処理された画像データは、カメラ信号処理回路１０ｃが生成してフレームメモリ１２に書き込んだものである。又は、ループ内フィルタ３８が、参照画像データをフレームメモリ１２に書き込む時、同時に縮小処理を施した参照画像データをフレームメモリ１２に書き込むようにしてもよい。縮小処理された画像データは、フレームメモリ１２に図３に示す構成で格納されており、符号化ブロック、および、参照画像データの矩形領域は、無駄なアクセスを発生させることなく、読み出すことができる。
【００２８】
動きベクトル一次探索回路４０は、内部のローカルメモリに記憶されている探索範囲の画像データのなかで、符号化ブロックとの相関が高いブロックを探索し、一次動きベクトルを決定し、動き予測回路４２に供給する。
【００２９】
動き予測回路４２は、動きベクトル一次探索回路４０により決定された一次動きベクトルを中心として、動きベクトルを詳細に探索する。まず、動き予測回路４２は、符号化ブロックの画像データをフレームメモリ１２から読み出し、内部のローカルメモリに記憶する。この符号化ブロックのサイズは、水平１６画素、垂直１６画素である。フレームメモリ１２には、画像データが図２に示すように格納されているので、この画像データをオーバーヘッドなく読み出すことができる。
【００３０】
動き予測回路４２は、動きベクトルを動き補償ブロックごとに探索する。図５は、動き補償ブロックの大きさの例を示す。図５に示すように、動き補償ブロックは複数種類あり、符号化ブロックごとに選択可能である。動き補償ブロックのサイズは、一般的には参照画像のサイズ（水平Ｐ画素、垂直Ｑ画素）に対して、水平画素数がＰの倍数、垂直画素数がＱの倍数である。ここでは、４×４ブロックの場合を例にとって説明する。通常、小さなブロックほどフレームメモリ１２へのアクセス効率が低下する傾向にある。水平、垂直ともに±４画素の範囲で動きを探索するものとすると、図６から分かるように、必要な参照画像データは、水平１２画素、垂直１２画素の範囲となる。
【００３１】
一次動きベクトルは任意の値を取り得る。しかし、縮小画像データを用いて決定した動きベクトルである。ここでは、縮小画像の縮小率を水平、垂直ともに４分の１としているので、縮小前の原画像の座標に換算するには、一次動きベクトルの値を水平、垂直ともに４倍する必要がある。したがって、詳細探索のために必要な参照画像データの矩形領域は、図６に示すように、矩形の左上の水平座標、垂直座標が４の倍数になる。図６で、黒丸は水平、垂直ともに４の倍数の座標、即ち、開始水平座標、開始垂直座標の画素を示す。また、矩形の大きさは、上述のように水平画素数及び垂直画素数ともに４の倍数となっている。
【００３２】
参照画像データは、フレームメモリ１２に図３に示すように格納されているので、オーバーヘッドなしで連続して読み出せる。動き予測回路４２は、探索範囲分の参照画像データをフレームメモリ１２から読み出し、内部のローカルメモリへ記憶する。そして、内部のローカルメモリに記憶されている符号化ブロックから動き補償ブロックとの相関が高いブロックを探索する。上述のような動きベクトルの詳細探索を動き補償ブロックの数だけ繰り返し、符号化ブロックごとの動き予測画像データをスイッチ１６に出力する。
【００３３】
インター符号化の場合、スイッチ１６は、動き予測回路４２の出力（インター予測画像）側に切り替えられる。減算器１８は、符号化対象の画像データと予測画像データとの差分、即ち、差分画像データを算出する。以後の動作は、イントラ符号化の場合と同じであるので、詳細な説明を省略する。
【００３４】
システム制御装置４４は、動作モード及び操作装置４６のユーザ操作に従い、以上の各部の動作を制御する。
【図面の簡単な説明】
【００３５】
【図１】本発明の一実施例の概略構成ブロック図である。
【図２】同期ＤＲＡＭへのデータ書き込み配置例である。
【図３】ループ内フィルタ３８の出力画像データのフレームメモリ１２のへのデータ書込み位置例である。
【図４】動きベクトル一次探索の探索範囲を説明する模式図である。
【図５】動き補償ブロックのサイズ例である。
【図６】動きベクトルの詳細探索の探索範囲を説明する模式図である。
【符号の説明】
【００３６】
１０  撮像部
１０ａ  撮影レンズ
１０ｂ  撮像素子
１０ｃ  カメラ信号処理回路
１２  フレームメモリ
１４  画面内予測回路
１６  スイッチ
１８  減算器
２０  整数変換回路
２２  量子化回路
２４  エントロピー符号化回路
２６  記録処理回路
２８  記録媒体
３０  符号量制御回路
３２  逆量子化回路
３４  逆整数変換回路
３６  加算器
３８  ループ内フィルタ
４０  動きベクトル一次探索回路
４２  動き予測回路
４４  システム制御回路
４６  操作装置
【図１】
0005053774.tif 000002
【図２】
0005053774.tif 000003
【図３】
0005053774.tif 000004
【図４】
0005053774.tif 000005
【図５】
0005053774.tif 000006
【図６】
0005053774.tif 000007