説明

画像処理装置

【課題】例えば動きベクトルの検出のように、所定単位で画像データを処理する場合に、その画像データを1回のアクセスで取得でき、その処理の高速化を図ること。
【解決手段】この発明は、画像上の画像データを16×16画素のマクロブロック単位に分割し、さらにマクロブロックを4×4画素のサブブロック単位に分割し、サブブロック単位で動画像の動きベクトルを検出する画像処理装置に適用できる。ローカルメモリ42は、8個のバンク(0)〜(7)を有し、その各バンクは4画素の画像データが一度に読み書きできるようになっている。アクセス制御部43は、所定のアクセスモードに従って、8個のバンク(0)〜(7)にサブブロック単位でアクセスする場合に、8個のバンクまたはそのうちの4個のバンクに一度にアクセスする。これにより任意の位置の4×4画素のアクセスが1 回のアクセスで読み書きが可能となる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像処理装置に関し、特に、所定の画像上の画像データを16×16画素のマクロブロック単位に分割し、さらにそのマクロブロックを4×4画素のブロック単位に分割し、ブロック単位で動画像の動きベクトルを検出する画像処理装置に適用して好適なものである。
【背景技術】
【0002】
この種の画像処理装置では、動いている物体は時間の経過とともに画面内で少しずつ位置を変えるので、現フレームの画像と前後の参照フレーム画像との水平方向および垂直方向における位置の変化を示す2次元ベクトルである動きベクトルを検出している。
また、例えば特許文献1には、水平(NX−MX+1)×垂直(NY−MY+1)画素の動きベクトル探索範囲に内接する水平KX×垂直KY画素の部分探索範囲の集合であって、動きベクトル探索範囲の四隅を含まない各部分探索範囲の集合の探索に必要な参照領域内の画素から各部分探索範囲を構成することにより、動きベクトルの探索に要する時間を短縮する方法が開示されている。
【0003】
ここで、動きベクトルを探索するためには、現在の画像と参照画像とを16×16画素からなるマクロブロック単位で比較する必要があるため、フレームメモリに格納された画像データをアクセス速度の速いローカルメモリに移すことにより、処理時間を短縮することが行われている。
【特許文献1】特開平10−75455号公報
【発明の開示】
【発明が解決しようとする課題】
【0004】
ところで、H.264等の動画圧縮では、動きベクトルの検出を行う際に、4×4画素が最小単位(サブブロック単位)となる。この場合に、1画素を8ビット(1バイト)のデータとすると、4×4画素では16バイトのデータが必要になる。しかし、その16バイトの画像データを、ローカルメモリに対して一度に読み書きすることができないという難点があった。
そこで、本発明の目的は、上記の点に鑑み、例えば動きベクトルの検出のように、所定単位で画像データを処理する場合に、その任意の位置の4x4画像データを1回のアクセスで取得することを可能とし、その処理の高速化が図れる画像処理装置を提供することにある。
【課題を解決するための手段】
【0005】
上記の課題を解決し本発明の目的を達成するために、各発明は、以下のような構成からなる。
第1の発明は、所定の画像上の画像データをマクロブロック単位に分割し、さらに前記マクロブロックをサブブロック単位に分割し、それらの単位で画像データの処理を行う画像処理装置であって、複数のバンクを有し、その各バンクは前記サブブロックの大きさに応じた最小単位の画像データが任意の位置から一度に読み書きできるようになっている記憶手段と、所定のアクセスモードに従って、前記複数のバンクに前記サブブロック単位でアクセスする場合に、前記複数のバンクのうちの所定のバンクに一度にアクセスするアクセス制御手段と、を備えている。
【0006】
第2の発明は、所定の画像上の画像データを16×16画素のマクロブロック単位に分割し、さらに前記マクロブロックを4×4画素のサブブロック単位に分割し、前記サブブ
ロック単位で動画像の動きベクトルを検出する画像処理装置であって、8個のバンクを有し、その各バンクは4画素の画像データが一度に読み書きできるようになっている記憶手段と、所定のアクセスモードに従って、前記8個のバンクに前記サブブロック単位でアクセスする場合に、前記8個のバンクのうちの所定のバンクに一度にアクセスするアクセス制御手段と、を備えている。
【0007】
第3の発明は、第2の発明において、前記アクセス制御手段は、前記8個のバンクから前記サブブロック単位で画像データを読み出す場合に、前記8個のバンクまたはその8個のバンクのうちの所定の4個のバンクから画像データを一度に読み出し、前記8個のバンクから画像データを読み出した場合にはそのうちの必要な画像データのみを選択的に出力することにより任意位置の4×4画素のデータを読み出し可能とする。
【0008】
第4の発明は、第1〜第3の発明において、前記アクセス制御手段が前記バンクから前記サブブロック単位で画像データを読み出して処理する場合に、前記サブブロックが前記画像上の所定の境界を含むか否かを検出する境界検出手段と、前記境界検出手段が前記境界を含むことを検出した場合には、前記サブブロック内であって前記境界の外側に位置する画像データを、前記サブブロック内であって前記境界の内側に属する所定の画像データに置き換える画像データ置換手段と、さらに備えている。
【0009】
このような構成からなる本発明によれば、例えば動きベクトルの検出のように、所定単位で画像データを処理する場合に、その画像データを1回のアクセスで取得することができ、その処理の高速化が図れる。
また、本発明によれば、例えば4×4画素のブロックをアクセスして境界値補償を行う場合に、その補償のための処理時間が短縮できる。
【発明を実施するための最良の形態】
【0010】
以下、本発明の実施形態について、図面を参照して説明する。
(第1実施形態)
本発明の画像処理装置の第1実施形態の構成について、図1を参照して説明する。
この第1実施形態は、所定の画像上の画像データを16×16画素のマクロブロック単位に分割し、さらにそのマクロブロックを4×4画素のサブブロック単位に分割し、サブブロック単位で動画像の動きベクトルを検出する画像処理装置に適用したものである。
【0011】
このために、この第1実施形態は、図1に示すように、画像入力部1と、画像メモリ2と、アクセス制御部3と、画像処理部4と、CPU(中央処理装置)5とを備え、画像入力部1、アクセス制御部3、画像処理部4、およびCPU5はそれぞれバス6に接続されている。
画像入力部1は、現画像データを入力し、画像メモリ2へデータを書き込むことができるようになっている。画像メモリ2は、現画像データおよび参照画像データを記憶するメモリであって、例えば所定の異なる3つの参照画像データを記憶するために3つのフレームメモリ21〜23を備えている。またフレームメモリ20は現画像でデータを記憶するためにある。フレームメモリアクセス制御部3は、フレームメモリ20〜23に現画像データおよび参照画像データをそれぞれ読み書きする際に、そのアクセス制御を行う。
【0012】
画像処理部4は、画像入力部1からフレームメモリ20に格納される現画像データと、フレームメモリ21〜23に記憶される参照画像データとを用いて、後述のように動きベクトルを検出するようになっている。このため、画像処理部4は、動きベクトル検出部41と、ローカルメモリ42と、アクセス制御部43と、を備えている。
CPU5は、画像処理を行う際に、所定の手順によって各部を制御するようになっている。
【0013】
次に、このように構成される第1実施形態の各部の詳細について、図面を参照して説明する。
まず、アクセス制御部43が、フレームメモリ21〜23へアクセスするための構成について、図1〜図3を参照して説明する。
この例では、図2に示すように、1画像をマクロブロックに分割し、その各マクロブロックの位置を番号(領域)0〜15で示すための仮想座標24を用意している。そして、ローカルメモリ42には、探索範囲に必要な参照画像データが格納される。その格納場所は、図2のように指定される。ローカルメモリ42の構造は、図2に示すように、マクロブロックMB0〜MB15の画像データがマクロブロック単位で16個分格納できるようになっている。
【0014】
ここで、マクロブロックは16×16画素で構成されるものとし、1画素分の画像データに1バイト分が割り当てられているものとすると、各マクロブロックMB0〜MB15の画像データは256バイトとなる。マクロブロックMB0〜MB15は、フレームメモリ21〜23の対応する位置のマクロブロックがコピーされる。
そして、アクセス制御部43は、仮想座標24上のマクロブロック番号0〜15と、フレームメモリ21〜23に対応するマクロブロックMB0〜MB15の格納領域とを関連づけた(対応させた)テーブル31〜33と、セレクタ34とを含んでいる(図2および図3参照)。セレクタ34は、所望のフレーム(フレームメモリ21〜23)を選択するために、アドレス(選択信号)に従って、そのフレームに対応するテーブル31〜33を選択するようになっている。
【0015】
このため、アクセス制御部43では、テーブル31が選択されると、図2に示すように、仮想座標24上のマクロブロック番号「5」の画像データを格納する場合には、テーブル31を参照することにより、フレームメモリ21のマクロブロックMB0の格納領域にアクセスして、その格納領域の画像データをローカルメモリ42の所定位置に書き込む。このように、テーブル31を参照することにより、図3に示すように、仮想座標35上の各領域にフレームメモリ21のマクロブロックMB0〜MB15の所望の画像データを書き込む。このようにしてフレームメモリ21の画像データは、ローカルメモリ42に書き込まれる。
このような構成によれば、複数のフレーム(画面)を参照する画像処理が必要な場合には、画面の切り替えがテーブルの切り替えによってハードウエアで単純化できる。
【0016】
次に、アクセス制御部43が、ローカルメモリ42から、4×4画素のブロック単位で画像データを取得する場合のアクセス方法について説明する。
図2に示すように、4×4画素のブロックの画素位置を、仮想座標24のxy座標上で特定できるようにするために、(0,0)から(63,63)までの座標が用意されている。そして、図4に示すように、その座標空間からローカルメモリ42の物理アドレスへの変換を行うようになっている。図4は、通常の1×16のアクセスエリアから書き込んだ画像データを、4×4画素のアクセスエリアから読み出す場合のアドレス変換を示している。このようにして座標アドレスからローカルメモリ42の物理アドレスへと変換している。
【0017】
ここで、図4(A)は、1×16画素のデータをローカルメモリ42に書き込む、1×16のアクセスモードの場合のアドレスの指定を示す。そのアドレスは、図示のように、17ビットで表現され、そのうちの6ビットがX座標(X0〜X5)を表すのに使用され、そのうちの6ビットがY座標(Y0〜Y5)を表すのに使用される。また、そのうちの1ビットは、1×16のアクセスモードの選択に使用され、そのモードを選択するときには0となる。
【0018】
また図4(B)は、4×4画素のデータをローカルメモリ42から読み出す、4×4のアクセスモードの場合のアドレスの指定を示す。そのアドレスは、図示のように、17ビットで表現され、そのうちの6ビットがX座標(X0〜X5)を表すのに使用され、そのうちの6ビットがY座標(Y0〜Y5)を表すのに使用される。また、そのうちの1ビットは、4×4のアクセスモードの選択に使用され、そのモードを選択するときには1となる。
【0019】
次に、図1に示す画像処理部4の具体的な構成について説明する。
画像入力部1に入力された現画像データがフレームメモリ20に格納される。動きベクトル検出部41は、フレームメモリ20から対象マクロブロックのデータを取得する。アクセス制御部43は、対象マクロブロック周辺の動きベクトル探索範囲の参照データをフレームメモリ21〜23から取得し、ローカルメモリ42へ格納する。
【0020】
動きベクトル検出部41は、ローカルメモリ42に格納された参照画像データと動きベクトル検出部41に格納された現画像データを用いて、4×4画素のブロック単位で動画像の動きベクトルを検出する。
ローカルメモリ42は、8つのバンク(0)〜(7)からなり、その各バンク(0)〜(7)には、4×4画素からなるブロックに応じて4画素(4バイト)単位の画像データが一度に読み書きできるようになっている(図7参照)。図5は、ローカルメモリ42のアドレスに対するバンク(0)〜(7)の割り当て(配置)の一例を示す。図5において、各数字はバンクの番号(0)〜(7)を表し、実線で囲まれた各領域は16×16画素のマクロブロックに対応する。
【0021】
アクセス制御部43は、フレームメモリ21〜23に格納される参照画像データのうちの1つをローカルメモリ42のバンク(0)〜(7)に書き込んだり、ローカルメモリ42に書き込まれた画像データを読み出したりするアクセス制御を行う。このアクセス制御には、例えば、座標位置からローカルメモリ42への物理アドレスへの変換は図6の座標アドレスメモリマップが使用される。
【0022】
図6に示すメモリマップは、アドレスが「0」〜「1000」番地のときには、アクセスモードが1×16となって、1×16画素の単位でアクセスすることを可能である。従って、これを16回使用することにより1マクロブロック分の画像データを書き込むことができる。
一方、アドレスが例えば「11000」〜「12000」番地のときには、アクセスモードが4×4(0)となって、4×4画素の単位(サブブロック単位)でアクセスすることを意味する。そのアクセスの開始位置が11000の場合は図4のアドレス変換表によりX=1、Y=0の座標位置を4×4画素の左上隅とした4×4画像データを取得するためのアドレスとなる。
【0023】
次に、このような構成からなる画像処理部4の動作例について説明する。
いま、ローカルメモリ42の8つのバンク(0)〜(7)には、図6に示す1×16のアクセスモードを使用して、例えばフレームメモリ21の動きベクトル探索範囲の画像データが格納されているものとする。
そして、ローカルメモリ42の8つのバンク(0)〜(7)に格納される画像データを4×4画素の単位(サブブロック単位)で読み出す場合について説明する。
【0024】
この場合には、例えば、X=0、Y=0の4×4画素がアクセスされた場合、図6に示す4×4(0)のアクセスモードが指定される。アクセス制御部43は、図5の破線aで示す4つのバンク(0)、(4)、(2)、(6)の画像データを一度に読み出し、この
読み出された16バイトの画像データは動きベクトル検出部41に供給される。動きベクトル検出部41は、その画像データを用いて現画像データと比較を行う。順次座標を変えて現画像データと似た画像を検出して、そこの座標から動きベクトルを検出する。
【0025】
ところで、図7に示すように、X=0、Y=0のアクセスにおいて4×4(0)のアクセスモードであっても、破線aで囲まれるようにバンク(0)、(4)、(2)、(6)のみの画像データで足りる場合と、X=1、Y=0のアクセスにおいて4×4(1)のアクセスモードは破線bで囲まれるようにバンク(0)、(4)、(2)、(6)の他にバンク(1)、(5)、(3)、(7)の画像データが必要な場合がある。図5の破線cで囲まれる場合も同様である。
【0026】
このような場合には、その破線b、cで囲まれる異なる8つのバンクの画像データを一度に読み出すので、読み出した画像データは32バイトになるが、必要なデータは4×4画素に対応する16バイトである。そこで、アクセス制御部43は、読み出した32バイトの画像データのうちから、必要な16バイトの画像データを所定の手順で選択し、この選択した画像データを動きベクトル検出部41に供給する。
【0027】
このように、アクセス制御部43は、図6のマップに示すような4×4のアクセスモードに従って、8つのバンク(0)〜(7)のうちの4つのバンクあるいは8つのバンクの画像データを読み出す。しかし、ローカルメモリ42の8つのバンク(0)〜(7)は、図5に示すように一定のルールに従って配置されている。このため、4つのバンクあるいは8つのバンクの画像データを読み出すときに、バンクの番号が重なることがない(図5の破線c、および図7の破線a、b参照)。このため、4つのバンクあるいは8つのバンクの画像データを一度に読み出すことができる。
従って、第1実施形態によれば、動画像の動きベクトルを検出する場合に、その必要な画像データを1回のアクセスで取得することができ、その処理の高速化が図れる。
【0028】
(第2実施形態)
次に、本発明の画像処理装置の第2実施形態について説明する。
この第2実施形態は、図1に示す第1実施形態の構成を基本に、動画像処理の際の画像の境界処理の機能を追加し、その機能をアクセス制御部43に持たせるようにしたものである。
【0029】
このため、第2実施例に係るアクセス制御部は、4×4画素のブロック単位で画像データをローカルメモリ42のバンク(0)〜(7)から読み出して処理する場合に、そのブロックが画像上の予め設定されている境界を含むか否かを検出する機能を備えている。
さらに、アクセス制御部は、その境界を含むことを検出した場合には、ブロック内であってその境界の外側に位置する(属する)画像データを、ブロック内であってその境界の内側に属する所定の画像データに置き換える機能を備えている。
【0030】
次に、このような画像境界の画像データの補償について、図8および図9を参照して説明する。
いま、ローカルメモリ42から読み出したX、Yの座標上の4×4画素のブロックに含まれる画像データの内容が、図8(A)に示すような場合であって、そのブロックが縦方向と横方向で示す実線によって予め設定されている境界91、92を含む場合について説明する。
【0031】
ここで、図8(A)に示す4×4画素の画像データの内容は、境界の内側の各数値が画像データの値を示し、境界の外側の×印は無意味な画像データを示している。また、4×4画素の画素位置を特定するには、図8(C)に示すような画素位置(アドレス)からな
る表を用いるものとする。
図8(A)に示す画像データは図8(B)に示すように補償されるが、その補償の手順を図9(A)〜(D)を参照して説明する。
【0032】
図9(A)はY方向の補償前の状態を示し、図8(A)における各画素位置0〜15の画像データは図示のようになる。同図からわかるように、画素位置0〜8および画素位置12が無意味な画像データであり、これを補償する必要がある。そこで、Y方向の補償では、図9(B)に示すように、境界92に接する画素位置9〜11の画像データ「0」、「1」、および「2」を用いて、境界92に接する画素位置1〜3および画素位置5〜7をそれぞれ補償する。
【0033】
このようなY方向の補償が終了するとX方向の補償を行うが、X方向の補償前は図9(C)に示すようになり、これは図9(B)と同様である。X方向の補償では、図9(D)に示すように、境界91に接する画素位置1、5、9、および13の画像データ「0」、「0」、「0」、および「4」を用いて、境界91に接する画素位置0、4、8、および12を補償する。ここで、画素位置0、4を補償する画像データ「0」、「0」は、Y方向の補償で得られた画像データである。
このように、第2実施形態では、ローカルメモリ42から4×4画素のブロックをアクセスするたびに、上記の境界検出を行い、それが検出されたときに境界値補償を行うようにしたので、その補償のための処理時間が短縮される。
【図面の簡単な説明】
【0034】
【図1】本発明の第1実施形態の構成を示すブロック図である。
【図2】フレームメモリへのアクセスを説明する図である。
【図3】テーブルの選択を説明する説明図である。
【図4】アドレス変換の一例を示す図である。
【図5】ローカルメモリのバンクの配置例を説明する図である。
【図6】アクセス制御部が使用するアドレスマップの一例を示す図である。
【図7】ローカルメモリのバンクから4×4画素の画像データを読み出す場合の説明図である。
【図8】本発明の第2実施形態に係る境界補償を説明する図である。
【図9】その境界補償の手順を説明する図である。
【符号の説明】
【0035】
1・・・画像入力部、2・・・画像メモリ、3・・・アクセス制御部、4・・・画像処理部、5・・・CPU、41・・・動きベクトル検出部、42・・・ローカルメモリ、43・・・アクセス制御部、91、92・・・境界

【特許請求の範囲】
【請求項1】
所定の画像上の画像データをマクロブロック単位に分割し、さらに前記マクロブロックをサブブロック単位に分割し、それらの単位で画像データの処理を行う画像処理装置であって、
複数のバンクを有し、その各バンクは前記サブブロックの大きさに応じた最小単位の画像データが任意の位置から一度に読み書きできるようになっている記憶手段と、
所定のアクセスモードに従って、前記複数のバンクに前記サブブロック単位でアクセスする場合に、前記複数のバンクのうちの所定のバンクに一度にアクセスするアクセス制御手段と、
を備えることを特徴とする画像処理装置。
【請求項2】
所定の画像上の画像データを16×16画素のマクロブロック単位に分割し、さらに前記マクロブロックを4×4画素のサブブロック単位に分割し、前記サブブロック単位で動画像の動きベクトルを検出する画像処理装置であって、
8個のバンクを有し、その各バンクは4画素の画像データが一度に読み書きできるようになっている記憶手段と、
所定のアクセスモードに従って、前記8個のバンクに前記サブブロック単位でアクセスする場合に、前記8個のバンクのうちの所定のバンクに一度にアクセスするアクセス制御手段と、
を備えることを特徴とする画像処理装置。
【請求項3】
前記アクセス制御手段は、前記8個のバンクから前記サブブロック単位で画像データを読み出す場合に、前記8個のバンクまたはその8個のバンクのうちの所定の4個のバンクから画像データを一度に読み出し、前記8個のバンクから画像データを読み出した場合にはそのうちの必要な画像データのみを選択的に出力することにより任意位置の4×4画素のデータを読み出し可能とすることを特徴とする請求項2に記載の画像処理装置。
【請求項4】
前記アクセス制御手段が前記バンクから前記サブブロック単位で画像データを読み出して処理する場合に、前記サブブロックが前記画像上の所定の境界を含むか否かを検出する境界検出手段と、
前記境界検出手段が前記境界を含むことを検出した場合には、前記サブブロック内であって前記境界の外側に位置する画像データを、前記サブブロック内であって前記境界の内側に属する所定の画像データに置き換える画像データ置換手段と、
をさらに備えることを特徴とする請求項1乃至請求項3のうちの何れかに記載の画像処理装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate


【公開番号】特開2008−278442(P2008−278442A)
【公開日】平成20年11月13日(2008.11.13)
【国際特許分類】
【出願番号】特願2007−189153(P2007−189153)
【出願日】平成19年7月20日(2007.7.20)
【出願人】(000002369)セイコーエプソン株式会社 (51,324)
【Fターム(参考)】