説明

ブロックマッチング処理回路およびブロックマッチング処理方法

【課題】消費電力を大幅に低減したブロックマッチング処理回路を提供する。
【解決手段】ブロックマッチング処理回路は、2入力信号の差分絶対値を求める演算器と、演算器の全演算結果を順次階層的に加算する加算器回路と、加算器回路の出力結果を累算する第1および第2の累算器と、第1および第2の累算器から時系列的に出力される累算結果をそれぞれ分割する1対2分配器および1対4分配器と、1対2分配器の出力結果を格納する第1のレジスタと、第1のレジスタの値を加算する加算器と、加算器の出力結果を格納する第2のレジスタと、1対4分配器の出力結果を格納する第3のレジスタと、第3のレジスタの値を加算する加算器と、加算器の出力結果を格納する第4のレジスタと、第4のレジスタの値を加算する加算器と、加算器の出力結果を格納する第5のレジスタと、を含み、第1〜第5のレジスタが、差分絶対値和を出力する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は動画像情報のブロックマッチング処理回路およびブロックマッチング処理方法に関するものである。
【背景技術】
【0002】
従来から、膨大な動画像情報の信号処理に関する手法について多面的角度から検討されている。例えば、MPEG2、H.264/AVCに準拠する動画像符号化の信号処理量は、動き補償予測(MC)における動きベクトル検出(ME)処理が突出して多い。この動きベクトル検出処理は、時系列的に離隔した二つの画像間の動きに着目した動きベクトル検出に帰着する。
【0003】
図1を参照して、MPEG2に準拠する全探索法を用いた動きベクトル検出処理を説明する。
図1aに示す現フレーム画像(現画像)内の符号化対象マクロブロック(ブロックサイズ:16画素×16画素)に対して、図1bに示す参照フレーム画像(再生画像)内の照合マクロブロックを、探索領域の全範囲について探索する。なお、以降の説明では、符号化対象マクロブロックの画素をa〜a15、照合マクロブロックの画素をb〜b15にて表す。
この場合、動きベクトル検出処理をする回路(動きベクトル検出回路)を1個準備すればよいことになる。
【0004】
しかしながら、H.264/AVCでは、よりきめ細かな動きベクトル検出を行うため、符号化対象マクロブロックのブロックサイズを、16画素×16画素より小さく、かつ複数種類準備している。具体的には、図2(a)〜図2(g)に示すように、符号化対象マクロブロックは、16画素×16画素を1個、16画素×8画素を2個、8画素×16画素を2個、8画素×8画素を4個、8画素×4画素を8個、4画素×8画素を8個、4画素×4画素を16個である。したがって、符号化対象マクロブロックの種類は7種類、符号化対象マクロブロックの数は合計41個である(非特許文献1参照)。
また、ブロック毎に動きベクトル検出処理を実施するため、H.264/AVCでは動きベクトル検出回路が41個必要となる。MPEG2では動きベクトル検出回路が1個であったのに対して、H.264/AVCの動きベクトル検出回路では、回路規模が大幅に(約40倍)増加する上、動きベクトル検出回路の消費電力も大幅に(約40倍)増加する。
【0005】
動きベクトル検出アルゴリズムでは、1つの符号化対象マクロブロックに対して、探索領域内の全ての照合マクロブロックとの差分絶対値和(あるいは積和)の演算値Dを求めるブロックマッチング処理と、得られたDのうち最小のD(MinD)を決定する最小値決定処理と、で構成される。Dは再生画像の画質を評価する指標で、小さい値であれば、画質がよいとされている。
以下、演算値Dを求めるために、ブロックマッチング処理を実行するブロックマッチング処理回路について説明する。
【0006】
図3aに示す16画素×16画素信号処理回路200aは、現フレーム画像内の符号化対象マクロブロックの画素(図2(a))と、参照フレーム画像内で選定された探索領域内の照合マクロブロック(図示せず)の対応する画素と、の差分絶対値をマクロブロック内の全画素に対して求める。次に、求めた全差分絶対値を加算することにより、差分絶対値和の和信号Aを出力する。以下、具体的に説明する。
【0007】
16画素×16画素信号処理回路200aは、16個の演算器1と、15個の加算器21〜24からなる加算器回路2と、累算器3と、レジスタ5と、を含む。
演算器1は、2入力信号の差分絶対値を求める回路である。2入力信号とは、例えば、符号化対象マクロブロック内の1行1列目の画素aと、この画素aに対応する照合マクロブロック内の1行1列目の画素bである。
加算器回路2は、演算器1の全演算結果を順次階層的に加算する回路である。例えば、ある加算器21が、画素aと画素bとの差分絶対値と、画素aと画素bとの差分絶対値と、を加算する。この加算器21による加算値と、別の加算器21による加算値と、を加算器22が加算する。この加算器22による加算値と、別の加算器22による加算値と、を加算器23が加算する。この加算器23による加算値と、別の加算器23による加算値と、を加算器24が加算する。
累算器3は、加算器回路2の出力結果を15回累算する回路である。すなわち、図2(a)に示す1行目の画素同士の差分絶対値和から16行目の画素同士の差分絶対値和までを累算する回路である。
レジスタ5は、累算器3の出力結果を格納する記憶回路である。
【0008】
なお、16画素×16画素信号処理回路200aは、パイプライン処理を行う。すなわち、8個の加算器21が、符号化対象マクロブロック内の1行目の画素a〜a15と、照合マクロブロック内の対応する1行目の画素b〜b15と、のそれぞれの差分絶対値を加算しているとき、16個の演算器1は、符号化対象マクロブロック内の2行目の画素a〜a15と、照合マクロブロック内の対応する2行目の画素b〜b15と、のそれぞれの差分絶対値を求める。同様に、1個の加算器24が、符号化対象マクロブロック内の1行目の画素a〜a15と、照合マクロブロック内の対応する1行目の画素b〜b15と、のそれぞれの差分絶対値を加算しているとき、2個の加算器23は、符号化対象マクロブロック内の2行目の画素a〜a15と、照合マクロブロック内の対応する2行目の画素b〜b15と、のそれぞれの差分絶対値を加算し、4個の加算器22は、符号化対象マクロブロック内の3行目の画素a〜a15と、照合マクロブロック内の対応する3行目の画素b〜b15と、のそれぞれの差分絶対値を加算し、8個の加算器21は、符号化対象マクロブロック内の4行目の画素a〜a15と、照合マクロブロック内の対応する4行目の画素b〜b15と、のそれぞれの差分絶対値を加算し、16個の演算器1は、符号化対象マクロブロック内の5行目の画素a〜a15と、照合マクロブロック内の対応する5行目の画素b〜b15と、のそれぞれの差分絶対値を求める。
【0009】
同様に、図3bに示す16画素×8画素信号処理回路200bは、符号化対象マクロブロックの全画素(図2(b))と、照合マクロブロック(図示せず)の対応する全画素と、に対する差分絶対値和の和信号B1、B2を出力する。16画素×8画素信号処理回路200bは、16個の演算器1と、15個の加算器21〜24からなる加算器回路2と、累算器3と、レジスタ5と、を含む。従来のブロックマッチング処理回路では、この16画素×8画素信号処理回路200bを2個必要とする。
【0010】
同様に、図3cに示す8画素×16画素信号処理回路200cは、符号化対象マクロブロックの全画素(図2(c))と、照合マクロブロック(図示せず)の対応する全画素と、に対する差分絶対値和の和信号C1、C2を出力する。8画素×16画素信号処理回路200cは、8個の演算器1と、7個の加算器21〜23からなる加算器回路2と、累算器3と、レジスタ5と、を含む。従来のブロックマッチング処理回路では、この8画素×16画素信号処理回路200cを2個必要とする。
なお、和信号C1は、符号化対象マクロブロックの左側の画素a〜aおよび照合マクロブロックの対応する左側の画素b〜bに対応し、和信号C2は、符号化対象マクロブロックの右側の画素a〜a15および照合マクロブロックの対応する左側の画素b〜b15に対応する。
【0011】
同様に、図3dに示す8画素×8画素信号処理回路200dは、符号化対象マクロブロックの全画素(図2(d))と、照合マクロブロック(図示せず)の対応する全画素と、に対する差分絶対値和の和信号D1〜D4を出力する。8画素×8画素信号処理回路200dは、8個の演算器1と、7個の加算器21〜23からなる加算器回路2と、累算器3と、レジスタ5と、を含む。従来のブロックマッチング処理回路では、この8画素×8画素信号処理回路200dを4個必要とする。
なお、和信号D1、D2は、符号化対象マクロブロックの左側の画素a〜aおよび照合マクロブロックの対応する左側の画素b〜bに対応し、和信号D3、D4は、符号化対象マクロブロックの右側の画素a〜a15および照合マクロブロックの対応する左側の画素b〜b15に対応する。
【0012】
同様に、図3eに示す8画素×4画素信号処理回路200eは、符号化対象マクロブロックの全画素(図2(e))と、照合マクロブロック(図示せず)の対応する全画素と、に対する差分絶対値和の和信号E1〜E8を出力する。8画素×4画素信号処理回路200eは、8個の演算器1と、7個の加算器21〜23からなる加算器回路2と、累算器3と、レジスタ5と、を含む。従来のブロックマッチング処理回路では、この8画素×4画素信号処理回路200eを8個必要とする。
なお、和信号E1〜E4は、符号化対象マクロブロックの左側の画素a〜aおよび照合マクロブロックの対応する左側の画素b〜bに対応し、和信号E5〜E8は、符号化対象マクロブロックの右側の画素a〜a15および照合マクロブロックの対応する左側の画素b〜b15に対応する。
【0013】
同様に、図3fに示す4画素×8画素信号処理回路200fは、符号化対象マクロブロックの全画素(図2(f))と、照合マクロブロック(図示せず)の対応する全画素と、に対する差分絶対値和の和信号F1〜F8を出力する。4画素×8画素信号処理回路200fは、4個の演算器1と、3個の加算器21、22からなる加算器回路2と、累算器3と、レジスタ5と、を含む。従来のブロックマッチング処理回路では、この4画素×8画素信号処理回路200fを8個必要とする。
なお、和信号F1、F2は、符号化対象マクロブロックの左側の画素a〜aおよび照合マクロブロックの対応する左側の画素b〜bに対応し、和信号F3、F4は、符号化対象マクロブロックの中央左側の画素a〜aおよび照合マクロブロックの対応する中央左側の画素b〜bに対応し、和信号F5、F6は、符号化対象マクロブロックの中央右側の画素a〜a11および照合マクロブロックの対応する中央右側の画素b〜b11に対応し、和信号F7、F8は、符号化対象マクロブロックの右側の画素a12〜a15および照合マクロブロックの対応する右側の画素b12〜b15に対応する。
【0014】
同様に、図3gに示す4画素×4画素信号処理回路200gは、符号化対象マクロブロックの全画素(図2(g))と、照合マクロブロック(図示せず)の対応する全画素と、に対する差分絶対値和の和信号G1〜G16を出力する。4画素×4画素信号処理回路200gは、4個の演算器1と、3個の加算器21、22からなる加算器回路2と、累算器3と、レジスタ5と、を含む。従来のブロックマッチング処理回路では、この4画素×4画素信号処理回路200gを16個必要とする。
なお、和信号G1〜G4は、符号化対象マクロブロックの左側の画素a〜aおよび照合マクロブロックの対応する左側の画素b〜bに対応し、和信号G5〜G8は、符号化対象マクロブロックの中央左側の画素a〜aおよび照合マクロブロックの対応する中央左側の画素b〜bに対応し、和信号G9〜G12は、符号化対象マクロブロックの中央右側の画素a〜a11および照合マクロブロックの対応する中央右側の画素b〜b11に対応し、和信号G13〜G16は、符号化対象マクロブロックの右側の画素a12〜a15および照合マクロブロックの対応する右側の画素b12〜b15に対応する。
【0015】
以上の通り、7種類の符号化対象ブロックに対して、7種類の信号処理回路が必要であり、回路数は合計で41個となる。
【先行技術文献】
【非特許文献】
【0016】
【非特許文献1】H.264/AVC教科書 大久保栄監修 株式会社インプレスR&D
【発明の概要】
【発明が解決しようとする課題】
【0017】
CMOS論理ゲートが動作しているとき、この論理ゲート1個が消費するする電力p(W)は近似的に下式で与えられる。
p≒C・f・V
ここで、Cは該論理ゲートの負荷容量、fは入力信号の周波数、Vは供給電圧である。なお、Cの値は論理ゲート毎に異なる。多数の論理ゲートで構成される半導体集積回路の消費電力(すなわち、ブロックマッチング処理回路1個の消費電力)Pは各論理ゲートが消費する電力の総和である。
例えば、図3に示した従来のブロックマッチング処理回路をCMOS論理ゲートで構成すると、V=1V、f=2GHz動作の時、ブロックマッチング処理回路1個の消費電力Pは689.3mWとなる。
【0018】
本発明の目的は、上述した従来技術の課題を解決し、高速処理を指向しながら、消費電力を大幅に低減したブロックマッチング処理回路およびブロックマッチング処理方法を提供することにある。
【課題を解決するための手段】
【0019】
本発明の要旨は、以下のとおりである。
(1)現フレーム画像内で設定されたn画素×n画素の符号化対象マクロブロックの画素と、前記画素に対応する参照フレーム画像内で選定された探索領域内の照合マクロブロックの画素と、の差分絶対値を、符号化対象マクロブロックの全画素に対して加算し、差分絶対値和を求めるためのブロックマッチング処理回路において、前記ブロックマッチング処理回路は、
2入力信号の差分絶対値を求めるn個の演算器と、
(n−1)個の加算器からなり、前記演算器の全演算結果を順次階層的に加算する加算器回路と、
前記加算器回路の出力結果を累算する第1の累算器および第2の累算器と、
前記第1の累算器から時系列的に出力される累算結果を2つに分割する1対2分配器と、
前記1対2分配器の出力結果を格納する第1のレジスタと、
前記第1のレジスタの値を加算する加算器と、
前記加算器の出力結果を格納する第2のレジスタと、

前記第2の累算器から時系列的に出力される累算結果を4つに分割する1対4分配器と、
前記1対4分配器の出力結果を格納する第3のレジスタと、
前記第3のレジスタの値を加算する加算器と、
前記加算器の出力結果を格納する第4のレジスタと、
前記第4のレジスタの値を加算する加算器と、
前記加算器の出力結果を格納する第5のレジスタと、
を含み、
前記第1〜第5のレジスタが、前記差分絶対値和を出力することを特徴とするブロックマッチング処理回路。
【0020】
(2)上記(1)に記載のブロックマッチング処理回路におけるブロックマッチング処理方法であって、
2入力信号の差分絶対値を求めるステップと、
前記差分絶対値を順次階層的に加算するステップと、
前記加算結果を累算するステップと、
時系列的に出力される第1の累算結果を2つに分割するステップと、
前記1対2分配結果を第1のレジスタに格納するステップと、
前記格納値を加算するステップと、
前記加算結果を第2のレジスタに格納するステップと、
時系列的に出力される第2の累算結果を4つに分割するステップと、
前記1対4分配結果を格納する第3のレジスタにステップと、
前記格納値を加算するステップと、
前記加算結果を第4のレジスタに格納するステップと、
前記格納値を加算するステップと、
前記加算結果を第5のレジスタに格納するステップと、
を含み、
前記第1〜第5のレジスタが、前記差分絶対値和を出力することを特徴とするブロックマッチング処理方法。
【0021】
(3)上記(1)に記載のブロックマッチング処理回路を用い、参照フレーム画像内の探索点を決定するアルゴリズムであって、
(2p+1)画素×(2p+1)画素の探索領域内の全探索点のうち(pは自然数)、前記探索領域内の中心に位置する中心探索点から上下左右に帯状に伸びる4本の第1の帯状探索点領域と、前記第1の帯状探索点領域を、前記中心探索点を中心に所定角度回転させた第2の帯状探索点領域と、からなる帯状探索点領域を設定し、
前記帯状探索点領域のうち、符号化対象マクロブロックの左に位置するマクロブロックの動きベクトルMVβと、上に位置するマクロブロックの動きベクトルMVγと、の角度差θに従い、探索対象帯状探索点領域を設定し、
前記探索対象帯状探索点領域内の全探索点のうち、前記中心探索点から、探索削減点を所定の規則に従って間引き、探索点を決定する、
ことを特徴とするアルゴリズム。
【発明の効果】
【0022】
本発明により、高速処理を指向しながら、消費電力を大幅に低減したブロックマッチング処理回路およびブロックマッチング処理方法を提供することができる。
【図面の簡単な説明】
【0023】
【図1a】MPEG2に準拠する全探索法を用いた動きベクトル検出処理を説明するための現フレーム画像を示す図である。
【図1b】MPEG2に準拠する全探索法を用いた動きベクトル検出処理を説明するための参照フレーム画像を示す図である。
【図2】符号化対象マクロブロックの例を示す図である。
【図3a】従来のブロックマッチング処理回路の構成を示す模式図である。
【図3b】従来のブロックマッチング処理回路の構成を示す模式図である。
【図3c】従来のブロックマッチング処理回路の構成を示す模式図である。
【図3d】従来のブロックマッチング処理回路の構成を示す模式図である。
【図3e】従来のブロックマッチング処理回路の構成を示す模式図である。
【図3f】従来のブロックマッチング処理回路の構成を示す模式図である。
【図3g】従来のブロックマッチング処理回路の構成を示す模式図である。
【図4】本発明のブロックマッチング処理回路の構成を示す模式図である。
【図5】本発明のブロックマッチング処理回路に用いられるのに好適なアルゴリズムを説明するための図である。
【図6】本発明のブロックマッチング処理回路に用いられるのに好適なアルゴリズムを説明するための図である。
【図7】本発明のブロックマッチング処理回路に用いられるのに好適なアルゴリズムを説明するための図である。
【発明を実施するための形態】
【0024】
図4を参照して、本発明のブロックマッチング処理回路を説明する。
ブロックマッチング処理回路100は、16個の演算器1と、15個の加算器21〜24からなる加算器回路2と、1個の第1の累算器31と、6個の第2の累算器32、33と、1個の1対2分配器42と、6個の1対4分配器44と、2個の第1のレジスタ51、52と、24個の第3のレジスタ53〜56と、13個の加算器6と、1個の第2のレジスタ71と、12個の第4のレジスタ72、73と、2個の加算器8と、2個の第5のレジスタ9と、を含む。
【0025】
演算器1は、2入力信号の差分絶対値を求める回路である。2入力信号とは、例えば、符号化対象マクロブロック内の1行1列目の画素aと、この画素aに対応する照合マクロブロック内の1行1列目の画素bである。
【0026】
加算器回路2は、演算器1の全演算結果を順次階層的に加算する回路である。例えば、ある加算器21が、画素aと画素bとの差分絶対値と、画素aと画素bとの差分絶対値と、を加算する。この加算器21による加算値と、別の加算器21による加算値と、を加算器22が加算する。この加算器22による加算値と、別の加算器22による加算値と、を加算器23が加算する。この加算器23による加算値と、別の加算器23による加算値と、を加算器24が加算する。ここで、4個の加算器22の加算値と、2個の加算器23の加算値と、1個の加算器24の加算値と、の合計7つの加算値が、加算器回路2の出力結果となる。
なお、ブロックマッチング処理回路100は、上述した従来の回路と同様、パイプライン処理を行う。
【0027】
第1の累算器31および第2の累算器32、33は、加算器回路2の出力結果を15回累算する回路である。すなわち、図2に示す1行目の画素同士の差分絶対値和から16行目の画素同士の差分絶対値和までを累算する回路である。
【0028】
1対2分配器42は、第1の累算器31から時系列的に出力される累算結果を2つに分割し、第1のレジスタ51、52に供給する回路である。
同様に、1対4分配器44は、第2の累算器32、33から時系列的に出力される累算結果を4つに分割し、第3のレジスタ53〜56に供給する回路である。
【0029】
(回路10a)
回路10aの第1のレジスタ51、52は、1対2分配器42の出力結果を格納する記憶回路である。第1のレジスタ51は、図2(a)に示す16画素×16画素の符号化対象マクロブロックの全画素の差分絶対値和のうち、1行目から8行目までの16画素×8画素の差分絶対値和を格納し、第1のレジスタ52は、9行目から16行目までの16画素×8画素の差分絶対値和を格納する。それゆえ、第1のレジスタ51は、和信号B1(16画素×8画素の符号化対象マクロブロックの画素(図2(b))と、照合マクロブロック(図示せず)の対応する画素と、に対する差分絶対値和)を出力し、同様に、第1のレジスタ52は、和信号B2を出力する。
加算器6は、第1のレジスタ51、52の値を加算する。
第2のレジスタ71は、加算器6の出力結果を格納する記憶回路である。それゆえ、第2のレジスタ71は、和信号A(16画素×16画素の符号化対象マクロブロックの全画素(図2(a))と、照合マクロブロック(図示せず)の対応する全画素と、に対する差分絶対値和)を出力する。
【0030】
(回路10b)
回路10bの第3のレジスタ53〜56は、1対4分配器43の出力結果を格納する記憶回路である。第3のレジスタ53は、図2(c)に示す8画素×16画素の符号化対象マクロブロックの画素の差分絶対値和のうち、1行目から4行目までの8画素×4画素の差分絶対値和を格納し、第3のレジスタ54は、5行目から8行目までの8画素×4画素の差分絶対値和を格納し、第3のレジスタ55は、9行目から12行目までの8画素×4画素の差分絶対値和を格納し、第3のレジスタ56は、13行目から16行目までの8画素×4画素の差分絶対値和を格納する。それゆえ、第3のレジスタ53は、和信号E1(8画素×4画素の符号化対象マクロブロックの画素(図2(e))と、照合マクロブロック(図示せず)の対応する画素と、に対する差分絶対値和)を出力し、第3のレジスタ54は、和信号E2を出力し、第3のレジスタ55は、和信号E3を出力し、第3のレジスタ56は、和信号E4を出力する。
加算器6は、第3のレジスタ53、54の値あるいは、第3のレジスタ55、56の値を加算する。
第4のレジスタ72、73は、加算器6の出力結果を格納する記憶回路である。それゆえ、第4のレジスタ72は、和信号D1(8画素×8画素の符号化対象マクロブロックの画素(図2(d))と、照合マクロブロック(図示せず)の対応する画素と、に対する差分絶対値和)を出力し、第4のレジスタ73は、和信号D2を出力する。
加算器8は、第4のレジスタ72、73の値を加算する。
第5のレジスタ9は、加算器8の出力結果を格納する記憶回路である。それゆえ、第5のレジスタ9は、和信号C1(8画素×16画素の符号化対象マクロブロックの画素(図2(c))と、照合マクロブロック(図示せず)の対応する画素と、に対する差分絶対値和)を出力する。
【0031】
(回路10c)
回路10cは、回路10bと同様の構成要素からなり、各レジスタの出力は以下の通りである。
第3のレジスタ53は、和信号E5を出力し、第3のレジスタ54は、和信号E6を出力し、第3のレジスタ55は、和信号E7を出力し、第3のレジスタ56は、和信号E8を出力する。
第4のレジスタ72は、和信号D3を出力し、第4のレジスタ73は、和信号D4を出力する。
第5のレジスタ9は、和信号C2を出力する。
【0032】
(回路10d)
回路10dの第3のレジスタ53〜56は、1対4分配器44の出力結果を格納する記憶回路である。第3のレジスタ53は、4画素×16画素の符号化対象マクロブロックの画素の差分絶対値和のうち、1行目から4行目までの4画素×4画素の差分絶対値和を格納し、第3のレジスタ54は、5行目から8行目までの4画素×4画素の差分絶対値和を格納し、第3のレジスタ55は、9行目から12行目までの4画素×4画素の差分絶対値和を格納し、第3のレジスタ56は、13行目から16行目までの4画素×4画素の差分絶対値和を格納する。それゆえ、第3のレジスタ53は、和信号G1(4画素×4画素の符号化対象マクロブロックの画素(図2(g))と、照合マクロブロック(図示せず)の対応する画素と、に対する差分絶対値和)を出力し、第3のレジスタ54は、和信号G2を出力し、第3のレジスタ55は、和信号G3を出力し、第3のレジスタ56は、和信号G4を出力する。
加算器6は、第3のレジスタ53、54の値あるいは、第3のレジスタ55、56の値を加算する。
第4のレジスタ72、73は、加算器6の出力結果を格納する記憶回路である。それゆえ、第4のレジスタ72は、和信号F1(4画素×8画素の符号化対象マクロブロックの画素(図2(f))と、照合マクロブロック(図示せず)の対応する画素と、に対する差分絶対値和)を出力し、第4のレジスタ73は、和信号F2を出力する。
【0033】
(回路10e)
回路10eは、回路10dと同様の構成要素からなり、各レジスタの出力は以下の通りである。
第3のレジスタ53は、和信号G5を出力し、第3のレジスタ54は、和信号G6を出力し、第3のレジスタ55は、和信号G7を出力し、第3のレジスタ56は、和信号G8を出力する。
第4のレジスタ72は、和信号F3を出力し、第4のレジスタ73は、和信号F4を出力する。
【0034】
(回路10f)
回路10fは、回路10dと同様の構成要素からなり、各レジスタの出力は以下の通りである。
第3のレジスタ53は、和信号G9を出力し、第3のレジスタ54は、和信号G10を出力し、第3のレジスタ55は、和信号G11を出力し、第3のレジスタ56は、和信号G12を出力する。
第4のレジスタ72は、和信号F5を出力し、第4のレジスタ73は、和信号F6を出力する。
【0035】
(回路10g)
回路10gは、回路10dと同様の構成要素からなり、各レジスタの出力は以下の通りである。
第3のレジスタ53は、和信号G13を出力し、第3のレジスタ54は、和信号G14を出力し、第3のレジスタ55は、和信号G15を出力し、第3のレジスタ56は、和信号G16を出力する。
第4のレジスタ72は、和信号F7を出力し、第4のレジスタ73は、和信号F8を出力する。
【0036】
図4では、符号化対象マクロブロックが16画素×16画素の場合について説明したが、本発明はこれに限定されることはない。符号化対象マクロブロックがn画素×n画素の場合は、n個の演算器1と、(n−1)個の加算器からなる加算器回路2とを用いる。
【0037】
また、図4では、演算器1は、2入力信号の差分絶対値を求める回路として説明したが、演算器1は、2入力信号の積を求める回路とすることもできる。この場合、ブロックマッチング処理回路100の出力は、差分絶対値和の代わりに積和となる。
【0038】
従来は、上述したように、41個の信号処理回路が必要であった。これに対して、本発明では、図4に示した1個のブロックマッチング処理回路100により、全ての符号化対象マクロブロックのブロックマッチング処理を同時に実行するので、本発明では、回路規模を従来の回路規模の1/40以下に小型化できる。
また、図4に示した本発明のブロックマッチング処理回路をCMOS論理ゲートで構成すると、V=1V、f=2GHz動作の時、本発明のブロックマッチング処理回路1個の消費電力Pは80.3mWとなり、従来のブロックマッチング処理回路のPの1/8.58に低消費電力化できる。従来と本発明のブロックマッチング処理回路1個当たりの消費電力Pを表1に示す。
【0039】
【表1】

【0040】
以下、本発明のブロックマッチング処理回路およびブロックマッチング処理方法に用いられるのに好適なアルゴリズム(帯状探索窓(Stick-shaped Search Window (SSW))ブロックマッチングアルゴリズム(Proc. of the IEEE 10th International Conference on Signal Processing (ICSP2010), pp.1117-1120))について説明する。
図5(a)に示す現フレーム画像内の符号化対象マクロブロックに対して、図5(b)に示す参照フレーム画像内で選定された探索領域(2p+1)を探索する(pは自然数)。ここで、探索領域の全範囲を探索すると、探索点の数Nは、
=(2p+1)
であり、p=192画素の場合、N=148,996となり膨大な値となる。それゆえ、探索点を中心に8本の帯状探索点領域を設定し、この帯状探索点領域内を探索する。
【0041】
図6を参照して、さらに詳細に説明する。
図6(a)に示すように、探索領域101内の中心に位置する中心探索点102から上下左右に帯状に伸びる4本の第1の帯状探索点領域103a〜103dと、この第1の帯状探索点領域103a〜103dを、中心探索点102を中心に時計回りに所定角度、図示例では45°回転させた第2の帯状探索点領域103e〜103gと、の総計8本の帯状探索点領域を設定する。なお、所定角度とは、45°の他15°、30°等とすることができる。
各帯状探索点領域103a〜103gには、p個の探索点が存在するので、探索点の数Nは、
=8p+1である。
【0042】
次に、図6(b)を参照して、各帯状探索点領域103a〜103g内の全探索点のうち、探索削減点を所定条件に従い間引くことを検討する。図示例では、探索点間隔(探索削減点(間引かれる探索点))を、1、2、・・・、k(k≦(2p)1/2)としている。すなわち、中心探索点102から離れるほど探索点間隔kが大きくなるように設定する。
各帯状探索点領域103a〜103g内の探索点の数Nは、
≒8k+1≒8(2p)1/2
である。
探索削減点を間引く方法は、上述した方法に限定されず、画質の低下を最小限に抑制しながら処理量を最小にするように最適化することができる。
【0043】
次に、探索方向を決定して帯状探索点領域を削減することを検討する。
図7(a)に、現フレーム画像内の符号化対象マクロブロックαと、符号化対象マクロブロックの左に位置し、探索済みのマクロブロックβと、上に位置し、探索済みのマクロブロックγと、を示す。マクロブロックβの動きベクトルMVβと、マクロブロックγの動きベクトルMVγとの角度差θに対応して、帯状探索点領域の数rを決定し、探索対象帯状探索点領域を設定する。すなわち、角度差θが小さい場合、探索方向を狭い範囲に限定し、帯状探索点領域の数rを削減する。一例を以下に示す。
0°<θ≦45°:r=3
45°<θ≦90°:r=5
90°<θ≦135°:r=7
135°<θ≦180°:r=8
なお、帯状探点索領域の方向も動きベクトルMVβ、MVγの方向を含む領域に設定する。
図7(b)は、に0°<θ≦45°の場合、8本の帯状探索点領域103a〜103gのうち、探索対象帯状探索点領域を3本の帯状探索点領域103b、103e、103fに設定した例を示す。このとき、各帯状探索点領域103b、103e、103f内の探索点の数Nは、
=rN/8≒r(2p)1/2
であり、N/Nは、r=3、p=192画素の場合
/N≒r(2p)1/2/4p≒0.0399%
となり、探索点数は大幅に削減される。
【0044】
なお、8本の帯状探索点領域103a〜103gの探索削減点を間引いた後、帯状探索点領域の数rを削減した例を説明したが、本発明は、この工程の順序に限定されることはない。すなわち、帯状探索点領域の数rを削減した後、探索削減点を間引いてもよい。
【実施例1】
【0045】
以下、本発明のブロックマッチング処理に関する実施例を説明する。
H.264/AVCを用いて評価した動きベクトル検出の速度と画質の一例を表2に示す。用いたテスト画像はRiverbed、Intersection、Whale Show、 Tractorの4種類、用いた動きベクトル検出アルゴリズムは全探索法および上述した最新の高速動きベクトル検出アルゴリズム(Stick-shaped Search Window (SSW))である。Nは1探索点(つまり、1つの符号化対象マクロブロック)当たりの平均差分演算回数で、このNをブロックマッチング処理速度の指標とすることができる。Rsnは再生画像の平均ピーク信号/雑音で、このRsnを再生画像の画質の指標とすることができる。
SSWのNは、Riverbedで44,666回、Intersectionで10,850回、Whale Showで25,793回、Tractorで20,190回、である。これらの値は全探索法のNのそれぞれ0.0963%、0.0368%、0.0590%、0.0662%、である。探索点数の大幅な削減により、SSWのNが全探索法のNの1/1,000以下に削減され、ブロックマッチング処理速度が1,000倍以上に高速化されていることがわかる。一方、SSWのRsnは、最も画質がよいとされる全探索法のRsnとほぼ同一である。このことから、SSWは全探索法と遜色のない画質を補償していることを示している。
【0046】
【表2】

【実施例2】
【0047】
以下、本発明のブロックマッチング処理回路に関する実施例を説明する。
ケース(1)
スーパーハイビジョン(SHV)画像の動きベクトルをH.264/AVCと全探索法を用いて検出する。テスト画像としてWhale Showを用い、ブロックマッチング処理回路として図3に示した従来の処理回路を用いる。この場合、V=1V、f=2GHz動作の時、必要な従来の処理回路の数Nは1、424個となる。従って、総消費電力(ブロックマッチング処理回路N個の消費電力)Pは981.6Wと極めて高くなる。それゆえ、図3に示した従来のブロックマッチング処理回路のSHV画像符号化装置への適用ならびにその実用化はほぼ不可能といえる。
ケース(2)
本発明のブロックマッチング処理回路を用いて、ケース(1)と同じ処理をする。処理回路の数Nは、この場合も、1、424個である。一方、V=1V、f=2GHz動作の時、本発明の処理回路1個あたりのPは80.3Wと少ないので、Pは総消費電力114.4Wとなり、ケース(1)のPの1/8.58に低減できることが分かる。
ケース(3)
スーパーハイビジョン(SHV)画像の動きベクトルをH.264/AVC、SSW、および図4に示した本発明の処理回路を用いて検出する。この場合、V=1V、f=320MHz動作の時、必要な本発明のブロックマッチング処理回路の数Nは6個ですむ。これは、前述したように、SSWのNが全探索法のNと比べ、大幅に削減されたため、クロック周波数が低い処理回路を用いることを可能とし、かつ、かつ処理回路の数を大幅に削減が可能となった。従って、本発明の処理回路1個あたりのPが10.35mWであるから、総消費電力Pはわずか62.1mWとなる。これはケース(1)つまり、全探索法と従来のブロックマッチング処理回路を用いた場合のP(981.6W)の1/15,800以下、ケース(2)つまり、全探索法と本発明のブロックマッチング処理回路を用いた場合のP(114.4W)の1/1,840以下、に低減できることが分かる。また、ブロックマッチング処理回路のNをケース(1)、ケース(2)の1/237に低減できることが分かる。さらに、本発明の処理回路は従来の回路規模の1/40以下であるから、ケース(3)の総回路規模はケース(1)、ケース(2)の1/9,480以下に小型化できることが分かる。
従って、本発明のSSW、本発明のブロックマッチング処理回路のSHV画像符号化装置への適用ならびにその実用化が十分に可能な値である。Vを1Vに固定したときのケース(1)〜(3)のブロックマッチング処理回路数N、ブロックマッチング処理回路N個の総消費電力Pを表3に示す。
【0048】
【表3】

【符号の説明】
【0049】
1 演算器
2 加算器回路
21 加算器
22 加算器
23 加算器
24 加算器
3 累算器
31 第1の累算器
32 第2の累算器
33 第2の累算器
42 1対2分配器
44 1対4分配器
5 レジスタ
51 第1のレジスタ
52 第1のレジスタ
53 第3のレジスタ
54 第3のレジスタ
55 第3のレジスタ
56 第3のレジスタ
6 加算器
71 第2のレジスタ
72 第4のレジスタ
73 第4のレジスタ
8 加算器
9 第5のレジスタ
10 回路
100 ブロックマッチング処理回路
101 探索領域
102 中心探索点
103 帯状探索点領域
200a 16画素×16画素信号処理回路
200b 16画素×8画素信号処理回路
200c 8画素×16画素信号処理回路
200d 8画素×8画素信号処理回路
200e 8画素×4画素信号処理回路
200f 4画素×8画素信号処理回路
200g 4画素×4画素信号処理回路

【特許請求の範囲】
【請求項1】
現フレーム画像内で設定されたn画素×n画素の符号化対象マクロブロックの画素と、前記画素に対応する参照フレーム画像内で選定された探索領域内の照合マクロブロックの画素と、の差分絶対値を、符号化対象マクロブロックの全画素に対して加算し、差分絶対値和を求めるためのブロックマッチング処理回路において、前記ブロックマッチング処理回路は、
2入力信号の差分絶対値を求めるn個の演算器と、
(n−1)個の加算器からなり、前記演算器の全演算結果を順次階層的に加算する加算器回路と、
前記加算器回路の出力結果を累算する第1の累算器および第2の累算器と、
前記第1の累算器から時系列的に出力される累算結果を2つに分割する1対2分配器と、
前記1対2分配器の出力結果を格納する第1のレジスタと、
前記第1のレジスタの値を加算する加算器と、
前記加算器の出力結果を格納する第2のレジスタと、

前記第2の累算器から時系列的に出力される累算結果を4つに分割する1対4分配器と、
前記1対4分配器の出力結果を格納する第3のレジスタと、
前記第3のレジスタの値を加算する加算器と、
前記加算器の出力結果を格納する第4のレジスタと、
前記第4のレジスタの値を加算する加算器と、
前記加算器の出力結果を格納する第5のレジスタと、
を含み、
前記第1〜第5のレジスタが、前記差分絶対値和を出力することを特徴とするブロックマッチング処理回路。
【請求項2】
請求項1に記載のブロックマッチング処理回路におけるブロックマッチング処理方法であって、
2入力信号の差分絶対値を求めるステップと、
前記差分絶対値を順次階層的に加算するステップと、
前記加算結果を累算するステップと、
時系列的に出力される第1の累算結果を2つに分割するステップと、
前記1対2分配結果を第1のレジスタに格納するステップと、
前記格納値を加算するステップと、
前記加算結果を第2のレジスタに格納するステップと、
時系列的に出力される第2の累算結果を4つに分割するステップと、
前記1対4分配結果を格納する第3のレジスタにステップと、
前記格納値を加算するステップと、
前記加算結果を第4のレジスタに格納するステップと、
前記格納値を加算するステップと、
前記加算結果を第5のレジスタに格納するステップと、
を含み、
前記第1〜第5のレジスタが、前記差分絶対値和を出力することを特徴とするブロックマッチング処理方法。
【請求項3】
請求項1に記載のブロックマッチング処理回路を用い、参照フレーム画像内の探索点を決定するアルゴリズムであって、
(2p+1)画素×(2p+1)画素の探索領域内の全探索点のうち(pは自然数)、前記探索領域内の中心に位置する中心探索点から上下左右に帯状に伸びる4本の第1の帯状探索点領域と、前記第1の帯状探索点領域を、前記中心探索点を中心に所定角度回転させた第2の帯状探索点領域と、からなる帯状探索点領域を設定し、
前記帯状探索点領域のうち、符号化対象マクロブロックの左に位置するマクロブロックの動きベクトルMVβと、上に位置するマクロブロックの動きベクトルMVγと、の角度差θに従い、探索対象帯状探索点領域を設定し、
前記探索対象帯状探索点領域内の全探索点のうち、前記中心探索点から、探索削減点を所定の規則に従って間引き、探索点を決定する、
ことを特徴とするアルゴリズム。


【図1a】
image rotate

【図1b】
image rotate

【図2】
image rotate

【図3a】
image rotate

【図3b】
image rotate

【図3c】
image rotate

【図3d】
image rotate

【図3e】
image rotate

【図3f】
image rotate

【図3g】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate


【公開番号】特開2013−26966(P2013−26966A)
【公開日】平成25年2月4日(2013.2.4)
【国際特許分類】
【出願番号】特願2011−162127(P2011−162127)
【出願日】平成23年7月25日(2011.7.25)
【出願人】(599011687)学校法人 中央大学 (110)
【Fターム(参考)】