(57)【特許請求の範囲】
【請求項１】
１フレームの画像情報を水平方向ｎ画素及び垂直方向ｍ画素からなる複数のブロックに分割すると共に、フレーム間の動きベクトルに基づいて前記画像情報を前記ブロック毎に動き補償するに際し、フレーム単位の画像情報を記憶したフレームメモリから前記分割により生成されたブロック内の水平方向ｎ画素単位で前記画像情報を読み出して前記動きベクトルに基づく水平方向のシフト画素数ＳＦだけ前記画像情報をシフトさせるブロック画像シフト装置において、
前記フレームメモリに記憶された画像情報を１ブロック分記憶するブロックバッファと、
前記シフト画素数ＳＦを記憶するシフト画素数記憶手段と、
前記フレームメモリから第１のブロックＢＫ１内のｎ画素単位で読み出された画像情報のうち前記動きベクトルの水平方向成分の向きに向かって後端側からＳＦ画素分だけ書き込み禁止にした状態で、前記ｎ画素単位で読み出された画像情報をシフトさせずに前記ブロックバッファに書き込むと共に、前記フレームメモリから前記第１のブロックＢＫ１に前記動きベクトルの水平方向成分の向きに隣接する第２のブロックＢ２内のｎ画素単位で読み出された画像情報のうち前記動きベクトルの水平方向成分の向きに向かって先頭側から（ｎ−ＳＦ）画素分を書き込み禁止にした状態で、前記ｎ画素単位の画像情報をシフトさせずに前記ブロックバッファに書き込み、読み出す画素のアドレスを前記動きベクトルの水平方向成分の向きに前記シフト画素数ＳＦだけシフトさせて前記ブロックバッファから前記ブロックの画像情報を画素単位で読み出すリード／ライト制御手段と
を備えたことを特徴とするブロック画像シフト装置。
【請求項２】
１フレームの画像情報を水平方向ｎ画素及び垂直方向ｍ画素からなる複数のブロックに分割すると共にフレーム間の動きベクトルを前記各ブロック毎に検出することによってフレーム間符号化された画像情報を、前記動きベクトルに基づいて動き補償して復号する画像復号器において、
既に復号されたフレームの画像情報を記憶するフレームメモリと、
前記フレームメモリに記憶された画像情報を１ブロック分記憶するブロックバッファと、
前記動きベクトルに基づき水平方向にシフトさせるシフト画素数ＳＦを記憶すると共に、前記フレームメモリから前記分割により生成された第１のブロックＢＫ１内のｎ画素単位で読み出された画像情報のうち前記動きベクトルの水平方向成分の向きに向かって後端側からＳＦ画素分だけ書き込み禁止にした状態で、前記ｎ画素単位で読み出された画像情報をシフトさせずに前記ブロックバッファに書き込み、且つ前記フレームメモリから前記第１のブロックＢＫ１に前記動きベクトルの水平方向成分の向きに隣接する第２のブロックＢ２内のｎ画素単位で読み出された画像情報のうち前記動きベクトルの水平方向成分の向きに向かって先頭側から（ｎ−ＳＦ）画素分を書き込み禁止にした状態で、前記ｎ画素単位の画像情報をシフトさせずに前記ブロックバッファに書き込み、読み出し時に読み出しアドレスを前記動きベクトルの水平方向成分の向きに前記シフト画素数ＳＦだけシフトさせて画素単位で前記画像情報を読み出すことにより、前記画像情報を前記動き量だけシフトさせるブロック画像シフト手段と
を備えたことを特徴とする画像復号器。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
この発明は、Ｈ．２６１、ＭＰＥＧ（Moving Picture Coding Experts Groupe）１，２等の画像圧縮符号化／復号方式における動き補償処理に使用されるブロック画像シフト装置及び画像復号器に関する。
【０００２】
【従来の技術】
ディジタル通信ネットワークや情報記憶媒体の進歩に伴って、Ｈ．２６１，ＭＰＥＧ１，ＭＰＥＧ２等の種々のディジタル画像圧縮方式が提案され、標準化されている。
これらの方式における符号化されたビットストリームは、ＭＰＥＧ１を例にとると、図４に示すように、シーケンス層、ＧＯＰ（Groupe of Pictures）層、ピクチャ層、スライス層、マクロブロック層、ブロック層の６つの階層から構成される。なお、ＭＰＥＧ２の場合もほぼ同様の階層構造を採るが、ＧＯＰ層はオプションとなり、その中のピクチャ層の並びも特に規定されないのとなる。ＭＰＥＧの特定ピクチャでは、前後の画面データに基づいて１枚の画面データが符号化されるので、１画面だけで完結した情報とはならない。このため、何枚かの画面データを一まとまりにしたＧＯＰを単位としてランダムアクセスを可能にしている。
【０００３】
ＧＯＰは、Ｉ，Ｐ，Ｂの３種類のピクチャの組み合わせにより構成される。各ピクチャは、１フレーム分の画像データに相当し、図５に示すように、フレーム間予測の有無及びその予測の方向によりタイプ分けされる。Ｉ（Intra ）ピクチャはフレーム内符号化画像、Ｐ（Predictive）ピクチャはフレーム間順方向予測符号化画像、Ｂ（Bidirectionally predictive）ピクチャはフレーム間両方向予測符号化画像である。フレーム間予測には、フレーム間の動き量（動きベクトル）に応じた動き補償予測が行われる。なお、ＭＰＥＧ２では、上述した１フレーム単位に代え１フィールド単位の画像データを扱うこともあり得る。各ピクチャは、更に複数のスライスに分割され、各スライスは複数のマクロブロック（ＭＢ）に分割される。このマクロブロックは、輝度信号（Ｙ）を構成する４個のブロック（ＢＫ）と色差信号（Ｃｂ，Ｃｒ）の２個のＢＫからなる。ＢＫとは８×８画素からなりこれがＭＰＥＧにおけるＤＣＴの単位である。なお、ＭＰＥＧ２では、プロファイルによっては上述したものと異なるＭＢ構造を採ることもあり得る。
【０００４】
Ｈ．２６１及びＭＰＥＧ１，２では、ＭＢ毎に動きベクトルが与えられ、ＭＢ単位で動き補償予測が行われる。図６及び図７は、ＭＰＥＧコーデックにおけるメモリインターフェースの部分で、動き補償処理に使用されるブロック画像シフト回路の概要を説明するための図である。本来、ＭＰＥＧの動きベクトルは１／２画素単位であり、当然端数が生じ得るが、その場合には、９画素から内挿により８画素を作りこれを用いて処理するようになっており、実際には、図６の回路に更に付加回路がつくが、最終的には１画素単位の処理となるため、この明細書においてはこれら内挿処理等のための付加回路構成の説明は省略する。
いま、色差信号を例にとると、図６に示すように、フレームメモリ１に記憶された復号済みの１フレームの画像情報は、８×８画素のブロック（ＢＫ）を処理単位として、動きベクトルＭＶに基づくシフト画素数ＳＦだけシフトされてブロックバッファ２に格納される。ブロックバッファ２へは、８画素（＝６４ｂｉｔ）を単位として画像情報が書き込まれ、１画素（＝８ｂｉｔ）を単位として画像情報が読み出される。画像情報をブロックバッファ２へ書き込む際、書き込み単位の画像情報を高速にシフトさせるためには、図７に示すように、８つの８ｔｏ１セレクタ３1 ，３2 ，…，３8 からなるデータセレクタ３が必要になる。
【０００５】
【発明が解決しようとする課題】
このように従来のブロック画像シフト回路では、ｎ×ｍ画素からなるブロックをｎ画素単位で高速にシフトさせてブロックバッファに書き込むためにｎｔｏ１セレクタをｎ個必要とし、セレクタのハードウェア規模が大きくなってしまうという問題がある。
【０００６】
この発明は、このような問題点に鑑みされたもので、小さなハードウェア規模でｎ×ｍ画素からなるブロックをｎ画素単位で高速にシフトさせることができるブロック画像シフト装置及び画像復号器を提供することを目的とする。
【０００７】
【課題を解決するための手段】
この発明のブロック画像シフト装置は、１フレームの画像情報を水平方向ｎ画素及び垂直方向ｍ画素からなる複数のブロックに分割すると共に、フレーム間の動きベクトルに基づいて前記画像情報を前記ブロック毎に動き補償するに際し、フレーム単位の画像情報を記憶したフレームメモリから前記分割により生成されたブロック内の水平方向ｎ画素単位で前記画像情報を読み出して前記動きベクトルに基づく水平方向のシフト画素数ＳＦだけ前記画像情報をシフトさせるブロック画像シフト装置において、前記フレームメモリに記憶された画像情報を１ブロック分記憶するブロックバッファと、前記シフト画素数ＳＦを記憶するシフト画素数記憶手段と、前記フレームメモリから第１のブロックＢＫ１内のｎ画素単位で読み出された画像情報のうち前記動きベクトルの水平方向成分の向きに向かって後端側からＳＦ画素分だけ書き込み禁止にした状態で、前記ｎ画素単位で読み出された画像情報をシフトさせずに前記ブロックバッファに書き込むと共に、前記フレームメモリから前記第１のブロックＢＫ１に前記動きベクトルの水平方向成分の向きに隣接する第２のブロックＢ２内のｎ画素単位で読み出された画像情報のうち前記動きベクトルの水平方向成分の向きに向かって先頭側から（ｎ−ＳＦ）画素分を書き込み禁止にした状態で、前記ｎ画素単位の画像情報をシフトさせずに前記ブロックバッファに書き込み、読み出す画素のアドレスを前記動きベクトルの水平方向成分の向きに前記シフト画素数ＳＦだけシフトさせて前記ブロックバッファから前記ブロックの画像情報を画素単位で読み出すリード／ライト制御手段とを備えたことを特徴とする。
【０００８】
また、この発明の画像復号器は、１フレームの画像情報を水平方向ｎ画素及び垂直方向ｍ画素からなる複数のブロックに分割すると共にフレーム間の動きベクトルを前記各ブロック毎に検出することによってフレーム間符号化された画像情報を、前記動きベクトルに基づいて動き補償して復号する画像復号器において、既に復号されたフレームの画像情報を記憶するフレームメモリと、前記フレームメモリに記憶された画像情報を１ブロック分記憶するブロックバッファと、前記動きベクトルに基づき水平方向にシフトさせるシフト画素数ＳＦを記憶すると共に、前記フレームメモリから前記分割により生成された第１のブロックＢＫ１内のｎ画素単位で読み出された画像情報のうち前記動きベクトルの水平方向成分の向きに向かって後端側からＳＦ画素分だけ書き込み禁止にした状態で、前記ｎ画素単位で読み出された画像情報をシフトさせずに前記ブロックバッファに書き込み、且つ前記フレームメモリから前記第１のブロックＢＫ１に前記動きベクトルの水平方向成分の向きに隣接する第２のブロックＢ２内のｎ画素単位で読み出された画像情報のうち前記動きベクトルの水平方向成分の向きに向かって先頭側から（ｎ−ＳＦ）画素分を書き込み禁止にした状態で、前記ｎ画素単位の画像情報をシフトさせずに前記ブロックバッファに書き込み、読み出し時に読み出しアドレスを前記動きベクトルの水平方向成分の向きに前記シフト画素数ＳＦだけシフトさせて画素単位で前記画像情報を読み出すことにより、前記画像情報を前記動き量だけシフトさせるブロック画像シフト手段と備えたことを特徴とする。
【０００９】
【作用】
この発明のブロック画像シフト装置及び画像復号器によれば、フレームメモリからｎ画素単位で読み出された画像情報をシフト画素数だけ書き込み禁止にした状態でシフトさせずにブロックバッファに書き込み、ブロックバッファから画素を読み出す際にそのアドレスをシフト画素数だけシフトさせて画像情報を画素単位で読み出すようにしているので、画像情報のシフト操作はアドレス操作によって行うことができ、データセレクタの規模、ひいてはハードウェアの規模を削減することができる。
【００１０】
【実施例】
以下、図面を参照して、この発明の実施例について説明する。
図１は、この発明の一実施例に係るＭＰＥＧ１，２用の画像デコーダを示すブロック図である。
ＭＰＥＧのフォーマットで伝送又は記録媒体から読み出された符号化信号のビットストリームは、図示しない入力バッファでビットレートを調整され、ＶＬＣ（Variable length code）デコーダ１１で１フレーム毎に可変長復号化され、逆量子化部１２で量子化特性と量子化マトリクスによって決定される値で逆量子化されてＢＫ毎のＤＣ（Discrete cosine ）係数が求められる。更にＤＣ係数は、逆ＤＣＴ（Discrete cosine transform ）部１３で逆コサイン変換される。Ｉピクチャの場合、逆コサイン変換された画像情報がそのまま復号信号としてスイッチ１４を介して出力される。Ｐ，Ｂピクチャの場合は、逆ＤＣＴ部１３の出力は差分画像であり、加算器１５に供給されて、動き補償された予測画像と加算される。
【００１１】
一方、復号された画像情報は、フレームメモリ１６または１９に記憶される。フレームメモリ１６または１９に格納された画像情報は、動き補償予測部１７，２０及び両方向予測部１８で前方／後方予測及び両方向予測に供される。スイッチ２１は、逆ＤＣＴされたピクチャのタイプに応じて予測方向を切替える。
【００１２】
図２は、動き補償予測部１７に使用されるブロック画像シフト回路の構成を示すブロック図であり、動き補償予測部２０もこれと同様の構成であり、両方向予測部１８はこれら動き補償予測部１７，２０の予測出力の平均を出力するようになっている。
このブロック画像シフト回路は、フレームメモリ１６から読み出されたＢＫの画像情報を記憶するブロックバッファ３１と、このブロックバッファ３１をリード／ライト制御するリード／ライト制御部３２とから構成される。この例では、ブロックバッファ３１のバッファサイズが８×８画素に設定されている。ブロックバッファ３１の水平方向に延びる列をｒｏｗ、垂直方向に延びる行をｃｏｌｕｍｎとする。１画素は例えば１ｗｏｒｄ（＝８ｂｉｔ）で構成され、フレームメモリ１６からは、８ｗｏｒｄ（＝６４ｂｉｔ）からなる１ｒｏｗ分の画像情報が一度に読み出され、ブロックバッファ３１に書き込まれる。
【００１３】
動きベクトルＭＶに基づくシフト画素数ＳＦは、ライトイネーブル（ＷＥ）マスクパターン生成部４１に供給されている。ＷＥマスクパターン生成部４１は、フレームメモリ１６から読み出された１ｒｏｗ分の画像情報のうちシフト画素数ＳＦに相当する画素の情報をブロックバッファ３１に書き込み禁止とするように、マスクパターンを生成する。ＡＮＤゲート４２1 ，４２2 ，…，４２8 は、このマスクパターンによってブロックバッファ３１に与えられるＷＥ信号をマスクする。
また、シフト画素数ＳＦは、シフト画素数レジスタ４３に格納され、ブロックバッファ３１の全てのｃｏｌｕｍｎに対するアクセスが終了するまで保持される。
読み出し時のｒｏｗアドレスは、加算器４４に供給され、ここでシフト画素数レジスタ４３に格納されているシフト画素数ＳＦと加算されて、ｒｏｗアドレスデコーダ４５のアドレスとして与えられる。ブロックバッファ３１からは、ｃｏｌｕｍｎアドレスによって指定されたｃｏｌｕｍｎの画像情報が１ｒｏｗ分読み出される。ｒｏｗアドレスデコーダ４５は、１ｒｏｗ分の画像情報のうち指定されたアドレスの画素の情報をリードデータとして選択し出力する。
【００１４】
いま、例えば右シフト方向を＋とし、−７〜＋７の範囲でシフト画素数ＳＦを設定すると、シフト画素数ＳＦは４ｂｉｔで表され、ＬＳＢが０のとき右詰めシフト、１のとき左詰めシフトとなる。
図３は、動きベクトルＭＶに基づき、ＳＦ＝＋３（００１１）に設定された例を示す図である。この場合、フレームメモリ１６のＢＫ１とＢＫ２とから２回に分けてブロックバッファ３１に画像情報が書き込まれる。
１回目のアクセスでは、ＢＫ１の８画素の画像情報ｒｏｗ１がフレームメモリ１６から読み出され、ブロックバッファ３１に書き込まれるが、ＳＦ＝＋３（００１１）が与えられているので、画像情報ｒｏｗ１のうち、左から３画素分は、ＷＥマスクパターンによって書き込み禁止となる。
２回目のアクセスでは、先にアクセスした画像情報と同一ｃｏｌｕｍｎのＢＫ２の８画素の画像情報ｒｏｗ２がフレームメモリ１６から読み出され、ブロックバッファ３１に書き込まれるが、このとき、シフト画素数ＳＦは、ＭＳＢのみ反転され、ＳＦ＝−５（１０１１）が与えられる。このため、画像情報ｒｏｗ２のうち、右から５画素分は、ＷＥマスクパターンによって書き込み禁止となる。
この結果、ブロックバッファ３１には、図３に示すように、ＢＫ１の５つの画素が右側、ＢＫ２の３つの画素が左側に配置された状態で画像情報が格納されることになる。なお、この一連のバッファライト時においては、シフト画素数ＳＦのＭＳＢのみを変化させればよいので、シフト画素レジスタ４３には、シフト画素数ＳＦの下位３ビットのみを格納しておき、シフト画素数ＳＦのＭＳＢのみをライトサイクルに応じて変化させればよい。
【００１５】
ブロックバッファ３１のリード時は、図３に示すように、リードアドレスが加算器４４によって３画素分シフトする。加算器４４の出力ビット数を３ｂｉｔに設定すれば、加算器４４の出力は、（ｒｏｗアドレス＋ＳＦ）ｍｏｄ８で表されることになる。このため、ブロックバッファ３１に格納された画像情報の右側の５画素分と左側の３画素分の位置が入れ替わり、結局、３画素分右にシフトされた画像情報が読み出されることになる。
【００１６】
このように、この実施例によれば、ブロックバッファ３１へのライト時に画像情報をシフトさせずに、シフト画素数分マスクしてそのまま格納し、読み出し時に読み出しアドレスをシフトさせるようにしているので、８ｔｏ１セレクタが省略でき、回路規模を大幅に小さくすることができる。
【００１７】
なお、以上の実施例では、ブロックバッファ３１のサイズを８×８画素としたが、一般的にはｎ×ｍ画素のマクロブロックサイズにこの発明を適用可能である。
また、Ｈ．２６１やＭＰＥＧの場合、画像符号化器には、以上の実施例で述べたような画像復号器がローカルデコーダとして内蔵されているので、このローカルデコーダ部分にこの発明の画像復号器を用いることができる。
【００１８】
【発明の効果】
以上述べたように、この発明によれば、フレームメモリからｎ画素単位で読み出された画像情報をシフト画素数に応じ所定画素分だけ書き込み禁止にした状態でシフトさせずにブロックバッファに書き込み、ブロックバッファから画素を読み出す際にそのアドレスをシフト画素数だけシフトさせて画像情報を画素単位で読み出すようにしているので、画像情報のシフト操作はアドレス操作によって行うことができ、データセレクタの数を削減してハードウェアの規模を小さくすることができる。
【図面の簡単な説明】
【図１】  この発明の一実施例に係るＭＰＥＧ画像デコーダのブロック図である。
【図２】  同画像デコーダにおける動き補償予測部のブロック画像シフト回路のブロック図である。
【図３】  同ブロック画像シフト回路の動作を説明するための図である。
【図４】  ＭＰＥＧのデータ構造を説明するための図である。
【図５】  同ピクチャタイプとその予測方向を説明するための図である。
【図６】  従来のブロック画像シフト回路を説明するための図である。
【図７】  同ブロック画像シフト回路の要部のブロック図である。
【符号の説明】
１，１６，１９…フレームメモリ、２，３１…ブロックバッファ、３…データセレクタ、３1 〜３8 ，４５…ｒｏｗアドレスデコーダ、１１…ＶＬＣデコーダ、１２…逆量子化部、１３…逆ＤＣＴ部、１４，２１…スイッチ、１５，４４…加算器、１７，２０…動き補償予測部、１８…両方向予測部、３２…リード／ライト制御部、４１…ＷＥマスクパターン生成部、４２1 〜４２8 …ＡＮＤゲート、４３…シフト画素数レジスタ。
【図１】
0003744018.tif 000002
【図２】
0003744018.tif 000003
【図３】
0003744018.tif 000004
【図４】
0003744018.tif 000005
【図５】
0003744018.tif 000006
【図６】
0003744018.tif 000007
【図７】
0003744018.tif 000008