(57)【要約】【課題】例えば動きベクトルの検出のように、所定単位で画像データを処理する場合に、その画像データを１回のアクセスで取得でき、その処理の高速化を図ること。【解決手段】この発明は、画像上の画像データを１６×１６画素のマクロブロック単位に分割し、さらにマクロブロックを４×４画素のサブブロック単位に分割し、サブブロック単位で動画像の動きベクトルを検出する画像処理装置に適用できる。ローカルメモリ４２は、８個のバンク（０）〜（７）を有し、その各バンクは４画素の画像データが一度に読み書きできるようになっている。アクセス制御部４３は、所定のアクセスモードに従って、８個のバンク（０）〜（７）にサブブロック単位でアクセスする場合に、８個のバンクまたはそのうちの４個のバンクに一度にアクセスする。これにより任意の位置の４×４画素のアクセスが1 回のアクセスで読み書きが可能となる。【選択図】図１
2008278442.tif 000002
【特許請求の範囲】
【請求項１】
所定の画像上の画像データをマクロブロック単位に分割し、さらに前記マクロブロックをサブブロック単位に分割し、それらの単位で画像データの処理を行う画像処理装置であって、
複数のバンクを有し、その各バンクは前記サブブロックの大きさに応じた最小単位の画像データが任意の位置から一度に読み書きできるようになっている記憶手段と、
所定のアクセスモードに従って、前記複数のバンクに前記サブブロック単位でアクセスする場合に、前記複数のバンクのうちの所定のバンクに一度にアクセスするアクセス制御手段と、
を備えることを特徴とする画像処理装置。
【請求項２】
所定の画像上の画像データを１６×１６画素のマクロブロック単位に分割し、さらに前記マクロブロックを４×４画素のサブブロック単位に分割し、前記サブブロック単位で動画像の動きベクトルを検出する画像処理装置であって、
８個のバンクを有し、その各バンクは４画素の画像データが一度に読み書きできるようになっている記憶手段と、
所定のアクセスモードに従って、前記８個のバンクに前記サブブロック単位でアクセスする場合に、前記８個のバンクのうちの所定のバンクに一度にアクセスするアクセス制御手段と、
を備えることを特徴とする画像処理装置。
【請求項３】
前記アクセス制御手段は、前記８個のバンクから前記サブブロック単位で画像データを読み出す場合に、前記８個のバンクまたはその８個のバンクのうちの所定の４個のバンクから画像データを一度に読み出し、前記８個のバンクから画像データを読み出した場合にはそのうちの必要な画像データのみを選択的に出力することにより任意位置の４×４画素のデータを読み出し可能とすることを特徴とする請求項２に記載の画像処理装置。
【請求項４】
前記アクセス制御手段が前記バンクから前記サブブロック単位で画像データを読み出して処理する場合に、前記サブブロックが前記画像上の所定の境界を含むか否かを検出する境界検出手段と、
前記境界検出手段が前記境界を含むことを検出した場合には、前記サブブロック内であって前記境界の外側に位置する画像データを、前記サブブロック内であって前記境界の内側に属する所定の画像データに置き換える画像データ置換手段と、
をさらに備えることを特徴とする請求項１乃至請求項３のうちの何れかに記載の画像処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置に関し、特に、所定の画像上の画像データを１６×１６画素のマクロブロック単位に分割し、さらにそのマクロブロックを４×４画素のブロック単位に分割し、ブロック単位で動画像の動きベクトルを検出する画像処理装置に適用して好適なものである。
【背景技術】
【０００２】
この種の画像処理装置では、動いている物体は時間の経過とともに画面内で少しずつ位置を変えるので、現フレームの画像と前後の参照フレーム画像との水平方向および垂直方向における位置の変化を示す２次元ベクトルである動きベクトルを検出している。
また、例えば特許文献１には、水平（ＮＸ−ＭＸ＋１）×垂直（ＮＹ−ＭＹ＋１）画素の動きベクトル探索範囲に内接する水平ＫＸ×垂直ＫＹ画素の部分探索範囲の集合であって、動きベクトル探索範囲の四隅を含まない各部分探索範囲の集合の探索に必要な参照領域内の画素から各部分探索範囲を構成することにより、動きベクトルの探索に要する時間を短縮する方法が開示されている。
【０００３】
ここで、動きベクトルを探索するためには、現在の画像と参照画像とを１６×１６画素からなるマクロブロック単位で比較する必要があるため、フレームメモリに格納された画像データをアクセス速度の速いローカルメモリに移すことにより、処理時間を短縮することが行われている。
【特許文献１】特開平１０−７５４５５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ところで、Ｈ．２６４等の動画圧縮では、動きベクトルの検出を行う際に、４×４画素が最小単位（サブブロック単位）となる。この場合に、１画素を８ビット（１バイト）のデータとすると、４×４画素では１６バイトのデータが必要になる。しかし、その１６バイトの画像データを、ローカルメモリに対して一度に読み書きすることができないという難点があった。
そこで、本発明の目的は、上記の点に鑑み、例えば動きベクトルの検出のように、所定単位で画像データを処理する場合に、その任意の位置の４ｘ４画像データを１回のアクセスで取得することを可能とし、その処理の高速化が図れる画像処理装置を提供することにある。
【課題を解決するための手段】
【０００５】
上記の課題を解決し本発明の目的を達成するために、各発明は、以下のような構成からなる。
第１の発明は、所定の画像上の画像データをマクロブロック単位に分割し、さらに前記マクロブロックをサブブロック単位に分割し、それらの単位で画像データの処理を行う画像処理装置であって、複数のバンクを有し、その各バンクは前記サブブロックの大きさに応じた最小単位の画像データが任意の位置から一度に読み書きできるようになっている記憶手段と、所定のアクセスモードに従って、前記複数のバンクに前記サブブロック単位でアクセスする場合に、前記複数のバンクのうちの所定のバンクに一度にアクセスするアクセス制御手段と、を備えている。
【０００６】
第２の発明は、所定の画像上の画像データを１６×１６画素のマクロブロック単位に分割し、さらに前記マクロブロックを４×４画素のサブブロック単位に分割し、前記サブブ
ロック単位で動画像の動きベクトルを検出する画像処理装置であって、８個のバンクを有し、その各バンクは４画素の画像データが一度に読み書きできるようになっている記憶手段と、所定のアクセスモードに従って、前記８個のバンクに前記サブブロック単位でアクセスする場合に、前記８個のバンクのうちの所定のバンクに一度にアクセスするアクセス制御手段と、を備えている。
【０００７】
第３の発明は、第２の発明において、前記アクセス制御手段は、前記８個のバンクから前記サブブロック単位で画像データを読み出す場合に、前記８個のバンクまたはその８個のバンクのうちの所定の４個のバンクから画像データを一度に読み出し、前記８個のバンクから画像データを読み出した場合にはそのうちの必要な画像データのみを選択的に出力することにより任意位置の４×４画素のデータを読み出し可能とする。
【０００８】
第４の発明は、第１〜第３の発明において、前記アクセス制御手段が前記バンクから前記サブブロック単位で画像データを読み出して処理する場合に、前記サブブロックが前記画像上の所定の境界を含むか否かを検出する境界検出手段と、前記境界検出手段が前記境界を含むことを検出した場合には、前記サブブロック内であって前記境界の外側に位置する画像データを、前記サブブロック内であって前記境界の内側に属する所定の画像データに置き換える画像データ置換手段と、さらに備えている。
【０００９】
このような構成からなる本発明によれば、例えば動きベクトルの検出のように、所定単位で画像データを処理する場合に、その画像データを１回のアクセスで取得することができ、その処理の高速化が図れる。
また、本発明によれば、例えば４×４画素のブロックをアクセスして境界値補償を行う場合に、その補償のための処理時間が短縮できる。
【発明を実施するための最良の形態】
【００１０】
以下、本発明の実施形態について、図面を参照して説明する。
（第１実施形態）
本発明の画像処理装置の第１実施形態の構成について、図１を参照して説明する。
この第１実施形態は、所定の画像上の画像データを１６×１６画素のマクロブロック単位に分割し、さらにそのマクロブロックを４×４画素のサブブロック単位に分割し、サブブロック単位で動画像の動きベクトルを検出する画像処理装置に適用したものである。
【００１１】
このために、この第１実施形態は、図１に示すように、画像入力部１と、画像メモリ２と、アクセス制御部３と、画像処理部４と、ＣＰＵ（中央処理装置）５とを備え、画像入力部１、アクセス制御部３、画像処理部４、およびＣＰＵ５はそれぞれバス６に接続されている。
画像入力部１は、現画像データを入力し、画像メモリ２へデータを書き込むことができるようになっている。画像メモリ２は、現画像データおよび参照画像データを記憶するメモリであって、例えば所定の異なる３つの参照画像データを記憶するために３つのフレームメモリ２１〜２３を備えている。またフレームメモリ２０は現画像でデータを記憶するためにある。フレームメモリアクセス制御部３は、フレームメモリ２０〜２３に現画像データおよび参照画像データをそれぞれ読み書きする際に、そのアクセス制御を行う。
【００１２】
画像処理部４は、画像入力部１からフレームメモリ２０に格納される現画像データと、フレームメモリ２１〜２３に記憶される参照画像データとを用いて、後述のように動きベクトルを検出するようになっている。このため、画像処理部４は、動きベクトル検出部４１と、ローカルメモリ４２と、アクセス制御部４３と、を備えている。
ＣＰＵ５は、画像処理を行う際に、所定の手順によって各部を制御するようになっている。
【００１３】
次に、このように構成される第１実施形態の各部の詳細について、図面を参照して説明する。
まず、アクセス制御部４３が、フレームメモリ２１〜２３へアクセスするための構成について、図１〜図３を参照して説明する。
この例では、図２に示すように、１画像をマクロブロックに分割し、その各マクロブロックの位置を番号（領域）０〜１５で示すための仮想座標２４を用意している。そして、ローカルメモリ４２には、探索範囲に必要な参照画像データが格納される。その格納場所は、図２のように指定される。ローカルメモリ４２の構造は、図２に示すように、マクロブロックＭＢ０〜ＭＢ１５の画像データがマクロブロック単位で１６個分格納できるようになっている。
【００１４】
ここで、マクロブロックは１６×１６画素で構成されるものとし、１画素分の画像データに１バイト分が割り当てられているものとすると、各マクロブロックＭＢ０〜ＭＢ１５の画像データは２５６バイトとなる。マクロブロックＭＢ０〜ＭＢ１５は、フレームメモリ２１〜２３の対応する位置のマクロブロックがコピーされる。
そして、アクセス制御部４３は、仮想座標２４上のマクロブロック番号０〜１５と、フレームメモリ２１〜２３に対応するマクロブロックＭＢ０〜ＭＢ１５の格納領域とを関連づけた（対応させた）テーブル３１〜３３と、セレクタ３４とを含んでいる（図２および図３参照）。セレクタ３４は、所望のフレーム（フレームメモリ２１〜２３）を選択するために、アドレス（選択信号）に従って、そのフレームに対応するテーブル３１〜３３を選択するようになっている。
【００１５】
このため、アクセス制御部４３では、テーブル３１が選択されると、図２に示すように、仮想座標２４上のマクロブロック番号「５」の画像データを格納する場合には、テーブル３１を参照することにより、フレームメモリ２１のマクロブロックＭＢ０の格納領域にアクセスして、その格納領域の画像データをローカルメモリ４２の所定位置に書き込む。このように、テーブル３１を参照することにより、図３に示すように、仮想座標３５上の各領域にフレームメモリ２１のマクロブロックＭＢ０〜ＭＢ１５の所望の画像データを書き込む。このようにしてフレームメモリ２１の画像データは、ローカルメモリ４２に書き込まれる。
このような構成によれば、複数のフレーム（画面）を参照する画像処理が必要な場合には、画面の切り替えがテーブルの切り替えによってハードウエアで単純化できる。
【００１６】
次に、アクセス制御部４３が、ローカルメモリ４２から、４×４画素のブロック単位で画像データを取得する場合のアクセス方法について説明する。
図２に示すように、４×４画素のブロックの画素位置を、仮想座標２４のｘｙ座標上で特定できるようにするために、（０，０）から（６３，６３）までの座標が用意されている。そして、図４に示すように、その座標空間からローカルメモリ４２の物理アドレスへの変換を行うようになっている。図４は、通常の１×１６のアクセスエリアから書き込んだ画像データを、４×４画素のアクセスエリアから読み出す場合のアドレス変換を示している。このようにして座標アドレスからローカルメモリ４２の物理アドレスへと変換している。
【００１７】
ここで、図４（Ａ）は、１×１６画素のデータをローカルメモリ４２に書き込む、１×１６のアクセスモードの場合のアドレスの指定を示す。そのアドレスは、図示のように、１７ビットで表現され、そのうちの６ビットがＸ座標（Ｘ０〜Ｘ５）を表すのに使用され、そのうちの６ビットがＹ座標（Ｙ０〜Ｙ５）を表すのに使用される。また、そのうちの１ビットは、１×１６のアクセスモードの選択に使用され、そのモードを選択するときには０となる。
【００１８】
また図４（Ｂ）は、４×４画素のデータをローカルメモリ４２から読み出す、４×４のアクセスモードの場合のアドレスの指定を示す。そのアドレスは、図示のように、１７ビットで表現され、そのうちの６ビットがＸ座標（Ｘ０〜Ｘ５）を表すのに使用され、そのうちの６ビットがＹ座標（Ｙ０〜Ｙ５）を表すのに使用される。また、そのうちの１ビットは、４×４のアクセスモードの選択に使用され、そのモードを選択するときには１となる。
【００１９】
次に、図１に示す画像処理部４の具体的な構成について説明する。
画像入力部１に入力された現画像データがフレームメモリ２０に格納される。動きベクトル検出部４１は、フレームメモリ２０から対象マクロブロックのデータを取得する。アクセス制御部４３は、対象マクロブロック周辺の動きベクトル探索範囲の参照データをフレームメモリ２１〜２３から取得し、ローカルメモリ４２へ格納する。
【００２０】
動きベクトル検出部４１は、ローカルメモリ４２に格納された参照画像データと動きベクトル検出部４１に格納された現画像データを用いて、４×４画素のブロック単位で動画像の動きベクトルを検出する。
ローカルメモリ４２は、８つのバンク（０）〜（７）からなり、その各バンク（０）〜（７）には、４×４画素からなるブロックに応じて４画素（４バイト）単位の画像データが一度に読み書きできるようになっている（図７参照）。図５は、ローカルメモリ４２のアドレスに対するバンク（０）〜（７）の割り当て（配置）の一例を示す。図５において、各数字はバンクの番号（０）〜（７）を表し、実線で囲まれた各領域は１６×１６画素のマクロブロックに対応する。
【００２１】
アクセス制御部４３は、フレームメモリ２１〜２３に格納される参照画像データのうちの１つをローカルメモリ４２のバンク（０）〜（７）に書き込んだり、ローカルメモリ４２に書き込まれた画像データを読み出したりするアクセス制御を行う。このアクセス制御には、例えば、座標位置からローカルメモリ４２への物理アドレスへの変換は図６の座標アドレスメモリマップが使用される。
【００２２】
図６に示すメモリマップは、アドレスが「０」〜「１０００」番地のときには、アクセスモードが１×１６となって、１×１６画素の単位でアクセスすることを可能である。従って、これを１６回使用することにより１マクロブロック分の画像データを書き込むことができる。
一方、アドレスが例えば「１１０００」〜「１２０００」番地のときには、アクセスモードが４×４（０）となって、４×４画素の単位（サブブロック単位）でアクセスすることを意味する。そのアクセスの開始位置が１１０００の場合は図４のアドレス変換表によりＸ＝１、Ｙ＝０の座標位置を４×４画素の左上隅とした４×４画像データを取得するためのアドレスとなる。
【００２３】
次に、このような構成からなる画像処理部４の動作例について説明する。
いま、ローカルメモリ４２の８つのバンク（０）〜（７）には、図６に示す１×１６のアクセスモードを使用して、例えばフレームメモリ２１の動きベクトル探索範囲の画像データが格納されているものとする。
そして、ローカルメモリ４２の８つのバンク（０）〜（７）に格納される画像データを４×４画素の単位（サブブロック単位）で読み出す場合について説明する。
【００２４】
この場合には、例えば、Ｘ＝０、Ｙ＝０の４×４画素がアクセスされた場合、図６に示す４×４（０）のアクセスモードが指定される。アクセス制御部４３は、図５の破線ａで示す４つのバンク（０）、（４）、（２）、（６）の画像データを一度に読み出し、この
読み出された１６バイトの画像データは動きベクトル検出部４１に供給される。動きベクトル検出部４１は、その画像データを用いて現画像データと比較を行う。順次座標を変えて現画像データと似た画像を検出して、そこの座標から動きベクトルを検出する。
【００２５】
ところで、図７に示すように、Ｘ＝０、Ｙ＝０のアクセスにおいて４×４（０）のアクセスモードであっても、破線ａで囲まれるようにバンク（０）、（４）、（２）、（６）のみの画像データで足りる場合と、Ｘ＝１、Ｙ＝０のアクセスにおいて４×４（１）のアクセスモードは破線ｂで囲まれるようにバンク（０）、（４）、（２）、（６）の他にバンク（１）、（５）、（３）、（７）の画像データが必要な場合がある。図５の破線ｃで囲まれる場合も同様である。
【００２６】
このような場合には、その破線ｂ、ｃで囲まれる異なる８つのバンクの画像データを一度に読み出すので、読み出した画像データは３２バイトになるが、必要なデータは４×４画素に対応する１６バイトである。そこで、アクセス制御部４３は、読み出した３２バイトの画像データのうちから、必要な１６バイトの画像データを所定の手順で選択し、この選択した画像データを動きベクトル検出部４１に供給する。
【００２７】
このように、アクセス制御部４３は、図６のマップに示すような４×４のアクセスモードに従って、８つのバンク（０）〜（７）のうちの４つのバンクあるいは８つのバンクの画像データを読み出す。しかし、ローカルメモリ４２の８つのバンク（０）〜（７）は、図５に示すように一定のルールに従って配置されている。このため、４つのバンクあるいは８つのバンクの画像データを読み出すときに、バンクの番号が重なることがない（図５の破線ｃ、および図７の破線ａ、ｂ参照）。このため、４つのバンクあるいは８つのバンクの画像データを一度に読み出すことができる。
従って、第１実施形態によれば、動画像の動きベクトルを検出する場合に、その必要な画像データを１回のアクセスで取得することができ、その処理の高速化が図れる。
【００２８】
（第２実施形態）
次に、本発明の画像処理装置の第２実施形態について説明する。
この第２実施形態は、図１に示す第１実施形態の構成を基本に、動画像処理の際の画像の境界処理の機能を追加し、その機能をアクセス制御部４３に持たせるようにしたものである。
【００２９】
このため、第２実施例に係るアクセス制御部は、４×４画素のブロック単位で画像データをローカルメモリ４２のバンク（０）〜（７）から読み出して処理する場合に、そのブロックが画像上の予め設定されている境界を含むか否かを検出する機能を備えている。
さらに、アクセス制御部は、その境界を含むことを検出した場合には、ブロック内であってその境界の外側に位置する（属する）画像データを、ブロック内であってその境界の内側に属する所定の画像データに置き換える機能を備えている。
【００３０】
次に、このような画像境界の画像データの補償について、図８および図９を参照して説明する。
いま、ローカルメモリ４２から読み出したＸ、Ｙの座標上の４×４画素のブロックに含まれる画像データの内容が、図８（Ａ）に示すような場合であって、そのブロックが縦方向と横方向で示す実線によって予め設定されている境界９１、９２を含む場合について説明する。
【００３１】
ここで、図８（Ａ）に示す４×４画素の画像データの内容は、境界の内側の各数値が画像データの値を示し、境界の外側の×印は無意味な画像データを示している。また、４×４画素の画素位置を特定するには、図８（Ｃ）に示すような画素位置（アドレス）からな
る表を用いるものとする。
図８（Ａ）に示す画像データは図８（Ｂ）に示すように補償されるが、その補償の手順を図９（Ａ）〜（Ｄ）を参照して説明する。
【００３２】
図９（Ａ）はＹ方向の補償前の状態を示し、図８（Ａ）における各画素位置０〜１５の画像データは図示のようになる。同図からわかるように、画素位置０〜８および画素位置１２が無意味な画像データであり、これを補償する必要がある。そこで、Ｙ方向の補償では、図９（Ｂ）に示すように、境界９２に接する画素位置９〜１１の画像データ「０」、「１」、および「２」を用いて、境界９２に接する画素位置１〜３および画素位置５〜７をそれぞれ補償する。
【００３３】
このようなＹ方向の補償が終了するとＸ方向の補償を行うが、Ｘ方向の補償前は図９（Ｃ）に示すようになり、これは図９（Ｂ）と同様である。Ｘ方向の補償では、図９（Ｄ）に示すように、境界９１に接する画素位置１、５、９、および１３の画像データ「０」、「０」、「０」、および「４」を用いて、境界９１に接する画素位置０、４、８、および１２を補償する。ここで、画素位置０、４を補償する画像データ「０」、「０」は、Ｙ方向の補償で得られた画像データである。
このように、第２実施形態では、ローカルメモリ４２から４×４画素のブロックをアクセスするたびに、上記の境界検出を行い、それが検出されたときに境界値補償を行うようにしたので、その補償のための処理時間が短縮される。
【図面の簡単な説明】
【００３４】
【図１】本発明の第１実施形態の構成を示すブロック図である。
【図２】フレームメモリへのアクセスを説明する図である。
【図３】テーブルの選択を説明する説明図である。
【図４】アドレス変換の一例を示す図である。
【図５】ローカルメモリのバンクの配置例を説明する図である。
【図６】アクセス制御部が使用するアドレスマップの一例を示す図である。
【図７】ローカルメモリのバンクから４×４画素の画像データを読み出す場合の説明図である。
【図８】本発明の第２実施形態に係る境界補償を説明する図である。
【図９】その境界補償の手順を説明する図である。
【符号の説明】
【００３５】
１・・・画像入力部、２・・・画像メモリ、３・・・アクセス制御部、４・・・画像処理部、５・・・ＣＰＵ、４１・・・動きベクトル検出部、４２・・・ローカルメモリ、４３・・・アクセス制御部、９１、９２・・・境界
【図１】
2008278442.tif 000003
【図２】
2008278442.tif 000004
【図３】
2008278442.tif 000005
【図４】
2008278442.tif 000006
【図５】
2008278442.tif 000007
【図６】
2008278442.tif 000008
【図７】
2008278442.tif 000009
【図８】
2008278442.tif 000010
【図９】
2008278442.tif 000011