JP4160855B2 - ブロックマッチング画像処理装置 - Google Patents
ブロックマッチング画像処理装置 Download PDFInfo
- Publication number
- JP4160855B2 JP4160855B2 JP2003146167A JP2003146167A JP4160855B2 JP 4160855 B2 JP4160855 B2 JP 4160855B2 JP 2003146167 A JP2003146167 A JP 2003146167A JP 2003146167 A JP2003146167 A JP 2003146167A JP 4160855 B2 JP4160855 B2 JP 4160855B2
- Authority
- JP
- Japan
- Prior art keywords
- pixel
- reference image
- pixels
- block matching
- sad
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Description
【発明の属する技術分野】
本発明は、高速に動きベクトルを検出するブロックマッチング技術に関し、特に、回路規模が小さく、高速にブロックマッチング処理を行なうことが可能なブロックマッチング画像処理装置に関する。
【0002】
【従来の技術】
近年、MPEG(Moving Picture Experts Group)などの動画像圧縮伸長の符号化技術が盛んに研究されており、特に、精度の高い動きベクトルを検出することが圧縮率を向上させるために重要となる。
【0003】
従来、動きベクトルを検出するためのブロックマッチングの方法として、階層的探索法が用いられている。階層的探索法は、2画素精度のブロックマッチング、1画素精度のブロックマッチングおよび半画素精度のブロックマッチングの3段階で行なうことが多い。これに関連する技術として、特開平10−191358号公報および特開平8−149483号公報に開示された発明がある。
【0004】
特開平10−191358号公報に開示された動きベクトル検出装置においては、整数画素精度の探索範囲内の画素値か、これらの画素値から生成された半画素精度の画素値かの何れかを選択する選択手段と、選択手段により選択された何れかの画素値を用いて動きベクトルを検出する動きベクトル検出手段とが設けられる。これにより、1つの動きベクトル検出手段を用いて、整数画素精度の動きベクトルと半画素精度の動きベクトルとを求めることができるようになり、2種類の動きベクトルをより簡単な構成で求めることができるようになる。
【0005】
また、特開平8−149483号公報に開示された動きベクトル探索装置においては、現符号化ブロックを前符号化ブロックからの整数画素と1/2画素とを用いて予測するための動きベクトルを探索するに際して、前符号化フレームの各位置に対する候補ブロックのディストーションを算出するプロセッサエレメントを整数画素のディストーションの算出と、1/2画素のディストーションの算出とに使用する構成を有するものである。
【0006】
【特許文献1】
特開平10−191358号公報
【0007】
【特許文献2】
特開平8−149483号公報
【0008】
【発明が解決しようとする課題】
1画素精度のブロックマッチングと半画素精度のブロックマッチングとを異なる回路で行なう画像処理装置においては、ブロックマッチングのための回路規模が大きくなるといった問題点があった。
【0009】
また、特開平10−191358号公報、特開平8−149483号公報などに開示された発明のように、1画素精度のブロックマッチングと半画素精度のブロックマッチングとを同一回路で1画素ずつ処理するブロックマッチング画像処理装置においては、画面サイズが大きくなり1秒間のフレーム枚数が増えると、ブロックマッチングの処理速度が追いつかないといった問題点があった。
【0010】
本発明は、上記問題点を解決するためになされたものであり、その目的は、小さな回路規模で並列処理を実現でき、ブロックマッチングを高速に行なうことが可能なブロックマッチング画像処理装置を提供することである。
【0011】
【課題を解決するための手段】
本発明のある局面に従えば、同一のマクロブロックと参照画像内の複数の領域との半画素精度のブロックマッチングを並列に行なうブロックマッチング画像処理装置であって、参照画像内の一方向に1つおきの画素が順次入力され、参照画像内の第1の領域の画素と、マクロブロック内の対応する画素との差分絶対値和を演算すると共に、参照画像内の一方向に1つおきの画素をシフトアウトするための第1の演算手段と、参照画像内の一方向に1つおきの画素とは異なる一方向に1つおきの画素が順次入力され、参照画像内の第1の領域とは異なる第2の領域の画素と、マクロブロック内の対応する画素との差分絶対値和を演算するための第2の演算手段と、第1の演算手段からシフトアウトされた画素が順次入力され、参照画像内の第1の領域および第2の領域とは異なる第3の領域の画素と、マクロブロック内の対応する画素との差分絶対値和を演算するための第3の演算手段とを含む。
【0013】
本発明の別の局面に従えば、同一のマクロブロックと参照画像内の複数の領域との1画素精度または半画素精度のブロックマッチングを並列に行なうブロックマッチング画像処理装置であって、参照画像内の一方向に連続した画素または参照画像内の一方向に1つおきの画素が順次入力され、参照画像内の第1の領域の画素と、マクロブロック内の対応する画素との差分絶対値和を演算すると共に、参照画像内の一方向に連続した画素または参照画像内の一方向に1つおきの画素をシフトアウトするための第1の演算手段と、第1の演算手段によってシフトアウトされた画素および参照画像内の一方向に1つおきの画素とは異なる一方向に1つおきの画素のいずれかを選択的に出力するための第1の選択手段と、第1の選択手段から出力された画素が順次入力され、参照画像内の第1の領域とは異なる第2の領域の画素と、マクロブロック内の対応する画素との差分絶対値和を演算すると共に、第1の選択手段から出力された画素をシフトアウトするための第2の演算手段と、第1の演算手段によってシフトアウトされた画素および第2の演算手段によってシフトアウトされた画素のいずれかを選択的に出力するための第2の選択手段と、第2の選択手段から出力された画素が順次入力され、参照画像内の前記第1の領域および第2の領域とは異なる第3の領域の画素と、マクロブロック内の対応する画素との差分絶対値和を演算するための第3の演算手段とを含む。
【0014】
【発明の実施の形態】
(第1の実施の形態)
本発明の第1の実施の形態におけるブロックマッチング画像処理装置は、1画素精度のブロックマッチングを行なう画像処理装置であり、並列度が3のブロックマッチング画像処理装置に関するものである。
【0015】
図1は、本発明の第1の実施の形態におけるブロックマッチング画像処理装置の概略構成を示すブロック図である。このブロックマッチング画像処理装置100は、SAD(差分絶対値和)演算を行なう第1SAD演算部110、第2SAD演算部120および第3SAD演算部130と、選択信号103に応じて第2SAD演算部120からシフトアウトされた第2SAD演算部参照画像出力122および第3SAD演算部130からシフトアウトされた第3SAD演算部参照画像出力132のいずれかを選択して第1SAD演算部110へ出力するセレクタ160と、選択信号104に応じて第3SAD演算部130からシフトアウトされた第3SAD演算部参照画像出力132および第2参照画像入力141のいずれかを選択して第2SAD演算部120へ出力するセレクタ170とを含む。
【0016】
第1SAD演算部110、第2SAD演算部120および第3SAD演算部130は、クロック101に同期して演算処理を行なう。
【0017】
第3SAD演算部130は、第1参照画像入力140と現画像入力102との差分絶対値和を演算し、その演算結果を第3SAD演算部演算結果152として外部へ出力すると共に、第1参照画像入力140を第3SAD演算部参照画像出力132としてセレクタ170へシフトアウトする。
【0018】
第2SAD演算部120は、セレクタ170から出力された第2SAD演算部参照画像入力121と現画像入力102との差分絶対値和を演算し、その演算結果を第2SAD演算部演算結果151として外部へ出力すると共に、第2SAD演算部参照画像入力121を第2SAD演算部参照画像出力122としてセレクタ160へシフトアウトする。1画素精度のブロックマッチングの場合、セレクタ170は選択信号104に応じて、常に第3SAD演算部参照画像出力132を選択し、第2SAD演算部参照画像入力121として第2SAD演算部120へ出力する。
【0019】
第1SAD演算部110は、セレクタ160から出力された第1SAD演算部参照画像入力111と現画像入力102との差分絶対値和を演算し、その演算結果を第1SAD演算部演算結果150として外部へ出力すると共に、第1SAD演算部参照画像入力111を第1SAD演算部参照画像出力112として外部へシフトアウトする。1画素精度のブロックマッチングの場合、セレクタ160は選択信号103に応じて、常に第2SAD演算部参照画像出力122を選択し、第1SAD演算部参照画像入力111として第1SAD演算部110へ出力する。
【0020】
図2は、図1に示す第1SAD演算部110、第2SAD演算部120および第3SAD演算部130の構成例を示すブロック図である。なお、図2においては、第1SAD演算部110、第2SAD演算部120および第3SAD演算部130を総称して、SAD演算部200と呼ぶことにする。
【0021】
SAD演算部200は、参照画像入力201を保持するフリップフロップ(以下、FFと略す。)210と、FF210によって保持される参照画像出力202と現画像入力102との差分を演算する減算器211と、減算器211からの減算器出力220の絶対値を演算する絶対値演算器212と、絶対値演算器212からの絶対値演算器出力221とSAD演算結果205とを加算する加算器213と、加算器213からの加算器出力222を保持してSAD演算結果205として出力するFF214とを含む。
【0022】
なお、参照画像入力201は、図1に示す第1SAD演算部参照画像入力111、第2SAD演算部参照画像入力121および第1参照画像入力140に相当する。また、参照画像出力202は、図1に示す第1SAD演算部参照画像出力112、第2SAD演算部参照画像出力122および第3SAD演算部参照画像出力132に相当する。さらには、SAD演算結果205は、図1に示す第1SAD演算部演算結果150、第2SAD演算部演算結果151および第3SAD演算部演算結果152に相当する。
【0023】
FF210は、クロック101の立上りで参照画像入力201を保持し、参照画像出力202としてシフトアウトする。減算器211は、参照画像出力202から現画像入力102を減算し、減算結果を減算器出力220として絶対値演算部212へ出力する。
【0024】
絶対値演算器212は、減算器211からの減算器出力220の絶対値を演算し、その絶対値を絶対値演算器出力221として加算器213へ出力する。加算器213は、絶対値演算器212からの絶対値演算器出力221とFF214からのSAD演算結果205とを加算し、加算結果を加算器出力222としてFF214へ出力する。
【0025】
FF214は、クロック101の立上りで加算器出力222を保持し、SAD演算結果205として出力する。このように、SAD演算結果205として、現画像入力102と参照画像出力202との差分絶対値が累積加算された結果が出力される。
【0026】
図3は、現画像の1MB(マクロブロック)の画素配置イメージを示す図である。c(i,j)(i=0,1,2,…,15、j=0,1,2,…,15)は、現画像300の各画素であり、水平方向に16画素、垂直方向に16画素ずつある。したがって、1MBの現画像300の画素数は、256画素となる。
【0027】
図4は、1画素精度のブロックマッチングにおいて、水平方向に±1画素、垂直方向に±1画素の範囲で探索する場合の参照画像の画素配置イメージを示す図である。r(i,j)(i=0,1,2,…,17、j=0,1,2,…,17)は、ブロックマッチングにおける探索範囲となる参照画像301の各画素であり、水平方向に18画素、垂直方向に18画素ずつある。したがって、参照画像301の画素数は、324画素となる。
【0028】
1画素精度のブロックマッチング画像処理においては、現画像300の256画素と、参照画像301の中の水平方向16画素、垂直方向16画素の256画素との差分絶対値和が演算され、最小の差分絶対値和となる位置を示すベクトルが求められる。なお、位置を示すベクトルを抽出する処理は、本発明と直接的には関係しないので、その詳細な説明は省略する。
【0029】
現画像300には垂直方向に16画素、水平方向に16画素の256画素があり、参照画像301には垂直方向に18画素、水平方向に18画素の324画素があるため、差分絶対値和の演算対象となる位置が9個ある。
【0030】
図5〜13は、1画素精度のブロックマッチングの演算対象となる9個の位置を示す図である。図5に示す領域310が1番目のブロックマッチングの対象位置となり、その位置の画像と現画像300とのブロックマッチングが行なわれる。同様にして、図6〜13に示す領域311〜318が2番目〜9番目のブロックマッチングの対象位置となり、それぞれの位置の画像と現画像300とのブロックマッチングが行なわれる。
【0031】
図5〜13に示す9個の位置の画像の差分絶対値和を3並列で演算処理する場合、同一水平上に並んだ第1の領域310、第2の領域311および第3の領域312に対応する差分絶対値和が並列に演算される。同様にして、第4の領域313、第5の領域314および第6の領域315に対応する差分絶対値和が並列に演算され、第7の領域316、第8の領域317および第9の領域318に対応する差分絶対値和が並列に演算される。
【0032】
図14は、本発明の第1の実施の形態におけるブロックマッチング画像処理装置が、第1の領域310、第2の領域311および第3の領域312に対応する差分絶対値和を演算するときの手順を説明するための図である。
【0033】
サイクルNにおいて、第3のSAD演算部130は、第1参照画像入力140として画素r(0,0)を入力する。
【0034】
サイクルN+1において、第3SAD演算部130は、第1参照画像入力140として画素r(0,1)を入力すると共に、第3SAD演算部参照画像出力132として画素r(0,0)を第2SAD演算部120へ出力する。
【0035】
サイクルN+2において、第3SAD演算部130は、第1参照画像入力140として画素r(0,2)を入力すると共に、第3SAD演算部参照画像出力132として画素r(0,1)を第2SAD演算部120へ出力する。このとき、第2SAD演算部120は、第2SAD演算部参照画像出力122として画素r(0,0)を第1SAD演算部110へ出力する。
【0036】
サイクルN+3において、第3SAD演算部130は、第1参照画像入力140として画素r(0,3)を入力すると共に、第3SAD演算部参照画像出力132として画素r(0,2)を第2SAD演算部120へ出力する。第2SAD演算部120は、第2SAD演算部参照画像出力122として画素r(0,1)を第1SAD演算部110へ出力する。また、第1SAD演算部120は、第1SAD演算部参照画像出力112として画素r(0,0)を出力する。
【0037】
このサイクルN+3において、第1SAD演算部110は、現画像の画素c(0,0)と参照画像の画素r(0,0)との差分絶対値和を演算する。第2SAD演算部120は、現画像の画素c(0,0)と参照画像の画素r(0,1)との差分絶対値和を演算する。第3SAD演算部130は、現画像の画素c(0,0)と参照画像の画素r(0,2)との差分絶対値和を演算する。
【0038】
サイクルN+4において、第3SAD演算部130は、第1参照画像入力140として画素r(0,4)を入力すると共に、第3SAD演算部参照画像出力132として画素r(0,3)を第2SAD演算部120へ出力する。第2SAD演算部120は、第2SAD演算部参照画像出力122として画素r(0,2)を第1SAD演算部110へ出力する。また、第1SAD演算部110は、第1SAD演算部参照画像出力112として画素r(0,1)を出力する。
【0039】
このサイクルN+4において、第1SAD演算部110は、現画像の画素c(0,1)と参照画像の画素r(0,1)との差分絶対値和を演算すると共に、前サイクルN+3において求められた演算結果(SAD演算結果1回目)を第1SAD演算部演算結果150として出力する。第2SAD演算部120は、現画像の画素c(0,1)と参照画像の画素r(0,2)との差分絶対値和を演算すると共に、前サイクルN+3において求められた演算結果(SAD演算結果1回目)を第2SAD演算部演算結果151として出力する。第3SAD演算部130は、現画像の画素c(0,1)と参照画像の画素r(0,3)との差分絶対値和を演算すると共に、前サイクルN+3において求められた演算結果(SAD演算結果1回目)を第3SAD演算部演算結果152として出力する。
【0040】
以上の処理を順次繰返すことにより、サイクルN+4〜N+19において、第1SAD演算部110は、第1の領域310の水平方向の画素r(0,0)〜r(0,15)に対応する差分絶対値和を順次出力する。第2SAD演算部120は、第2の領域311の水平方向の画素r(0,1)〜r(0,16)に対応する差分絶対値和を順次出力する。第3SAD演算部130は、第3の領域312の水平方向の画素r(0,2)〜(0,17)に対応する差分絶対値和を順次出力する。
【0041】
また、サイクルN+22〜N+37において、第1SAD演算部110は、第1の領域310の水平方向の画素r(1,0)〜r(1,15)に対応する差分絶対値和を順次出力する。第2SAD演算部120は、第2の領域311の水平方向の画素r(1,1)〜r(1,16)に対応する差分絶対値和を順次出力する。第3SAD演算部130は、第3の領域312の水平方向の画素r(1,2)〜(1,17)に対応する差分絶対値和を順次出力する。
【0042】
さらに、サイクルN+274〜N+289において、第1SAD演算部110は、第1の領域310の水平方向の画素r(15,0)〜r(15,15)に対応する差分絶対値和を順次出力する。第2SAD演算部120は、第2の領域311の水平方向の画素r(15,1)〜r(15,16)に対応する差分絶対値和を順次出力する。第3SAD演算部130は、第3の領域312の水平方向の画素r(15,2)〜(15,17)に対応する差分絶対値和を順次出力する。
【0043】
このようにして、図4に示す参照画像301の画素r(0,0),r(0,1),…,r(0,17),r(1,0),…,r(1,17),…,r(15,0),…,r(15,17)が水平方向に1画素ずつブロックマッチング画像処理装置100に入力されると、サイクルN+289において、第1SAD演算部110は、図5に示す第1の領域310の256個の画素の差分絶対値和の演算結果を第1SAD演算部演算結果150として出力する。第2SAD演算部120は、図6に示す第2の領域311の256個の画素の差分絶対値和の演算結果を第2SAD演算部演算結果151として出力する。第3SAD演算部130は、図7に示す第3の領域312の256個の画素の差分絶対値和の演算結果を第3SAD演算部演算結果152として出力する。
【0044】
なお、同様にして、図8〜10に示す第4の領域313〜第6の領域315の差分絶対値和が並列に演算され、図11〜13に示す第7の領域316〜第9の領域318の差分絶対値和が並列に演算される。
【0045】
以上説明したように、本実施の形態におけるブロックマッチング画像処理装置によれば、参照画像301の中の9個の領域に対応する差分絶対値和を演算する際、3つの領域に対応する差分絶対値和を並列に演算するようにしたので、1画素精度のブロックマッチングを高速に行なうことが可能となった。また、図1および図2に示すように、小さな回路規模でこのような並列処理を行なうことができ、低消費電力化を図ることが可能となった。
【0046】
なお、図1と同様の方法によって、5以上の奇数個のSAD演算部200を並列に接続するようにすれば、1画素精度のブロックマッチング画像処理をN(Nは3以上の奇数)並列で行なえるようになり、さらにブロックマッチングの処理速度を向上させることが可能となる。
【0047】
また、本実施の形態においては、水平方向に差分絶対値和の演算を行なっているが、垂直方向に差分絶対値和を演算するようにしても同様の効果を得ることが可能である。
【0048】
(第2の実施の形態)
本発明の第1の実施の形態におけるブロックマッチング画像処理装置においては、1画素精度のブロックマッチングを3並列で処理するものであった。本発明の第2の実施の形態においては、半画素精度のブロックマッチングを3並列で処理するものである。なお、本実施の形態におけるブロックマッチング画像処理装置の概略構成およびSAD演算部の構成例は、図1に示すブロックマッチング画像処理装置の概略構成および図2に示すSAD演算部200の構成例と同様である。したがって、重複する構成および機能の詳細な説明は繰返さない。
【0049】
半画素精度のブロックマッチングの場合、セレクタ170は選択信号104に応じて、常に第2参照画像入力141を選択し、第2SAD演算部参照画像入力121として第2SAD演算部120へ出力する。また、セレクタ160は選択信号103に応じて、常に第3SAD演算部参照画像出力132を選択し、第1SAD演算部参照画像入力111として第1SAD演算部110へ出力する。
【0050】
図15は、半画素精度のブロックマッチングにおいて、水平方向に±0.5画素、垂直方向に±0.5画素の範囲で探索する場合の参照画像の画素配置イメージを示す図である。r(i,j)(i=0,1,2,…,32、j=0,1,2,…,32)は、ブロックマッチングにおける探索範囲となる参照画像400の各画素であり、水平方向に33画素、垂直方向に33画素ずつある。したがって、参照画像400の画素数は、1089画素となる。
【0051】
半画素精度のブロックマッチング画像処理においては、現画像300の256画素と、参照画像400の中の水平方向16画素、垂直方向16画素の256画素との差分絶対値和が演算され、最小の差分絶対値和となる位置を示すベクトルが求められる。なお、位置を示すベクトルを抽出する処理は、本発明と直接的には関係しないので、その詳細な説明は省略する。
【0052】
現画像300には垂直方向に16画素、水平方向に16画素の256画素がある。また、参照画像400には半画素精度の位置にある画素が、垂直方向に18画素、水平方向に18画素の324画素があるため、差分絶対値和の演算対象となる位置が9個ある。
【0053】
図16は、半画素精度のブロックマッチングの演算対象となる9個の位置のうち1番目の対象位置を示す図である。図16に示す領域410が1番目のブロックマッチングの対象位置となり、半画素精度の位置にある256個の画素r(i,j)(i=0,2,4,…,30、j=0,2,4,…,30)が差分絶対値和の演算対象となる。
【0054】
図17は、半画素精度のブロックマッチングの演算対象となる9個の位置のうち2番目の対象位置を示す図である。図17に示す領域411が2番目のブロックマッチングの対象位置となり、半画素精度の位置にある256個の画素r(i,j)(i=0,2,4,…,30、j=1,3,5,…,31)が差分絶対値和の演算対象となる。
【0055】
図18は、半画素精度のブロックマッチングの演算対象となる9個の位置のうち3番目の対象位置を示す図である。図18に示す領域412が3番目のブロックマッチングの対象位置となり、半画素精度の位置にある256個の画素r(i,j)(i=0,2,4,…,30、j=2,4,6,…,32)が差分絶対値和の演算対象となる。
【0056】
図19は、半画素精度のブロックマッチングの演算対象となる9個の位置のうち4番目の対象位置を示す図である。図19に示す領域413が4番目のブロックマッチングの対象位置となり、半画素精度の位置にある256個の画素r(i,j)(i=1,3,5,…,31、j=0,2,4,…,30)が差分絶対値和の演算対象となる。
【0057】
図20は、半画素精度のブロックマッチングの演算対象となる9個の位置のうち5番目の対象位置を示す図である。図20に示す領域414が5番目のブロックマッチングの対象位置となり、半画素精度の位置にある256個の画素r(i,j)(i=1,3,5,…,31、j=1,3,5,…,31)が差分絶対値和の演算対象となる。
【0058】
図21は、半画素精度のブロックマッチングの演算対象となる9個の位置のうち6番目の対象位置を示す図である。図21に示す領域415が6番目のブロックマッチングの対象位置となり、半画素精度の位置にある256個の画素r(i,j)(i=1,3,5,…,31、j=2,4,6,…,32)が差分絶対値和の演算対象となる。
【0059】
図22は、半画素精度のブロックマッチングの演算対象となる9個の位置のうち7番目の対象位置を示す図である。図22に示す領域416が7番目のブロックマッチングの対象位置となり、半画素精度の位置にある256個の画素r(i,j)(i=2,4,6,…,32、j=0,2,4,…,30)が差分絶対値和の演算対象となる。
【0060】
図23は、半画素精度のブロックマッチングの演算対象となる9個の位置のうち8番目の対象位置を示す図である。図23に示す領域417が8番目のブロックマッチングの対象位置となり、半画素精度の位置にある256個の画素r(i,j)(i=2,4,6,…,32、j=1,3,5,…,31)が差分絶対値和の演算対象となる。
【0061】
図24は、半画素精度のブロックマッチングの演算対象となる9個の位置のうち9番目の対象位置を示す図である。図24に示す領域418が9番目のブロックマッチングの対象位置となり、半画素精度の位置にある256個の画素r(i,j)(i=2,4,6,…,32、j=2,4,6,…,32)が差分絶対値和の演算対象となる。
【0062】
図16〜24に示す9個の位置の画像の差分絶対値和を3並列で演算処理する場合、同一水平上に並んだ第1の領域410、第2の領域411および第3の領域412に対応する差分絶対値和が並列に演算される。同様にして、第4の領域413、第5の領域414および第6の領域415に対応する差分絶対値和が並列に演算され、第7の領域416、第8の領域417および第9の領域418に対応する差分絶対値和が並列に演算される。
【0063】
図25は、本発明の第2の実施の形態におけるブロックマッチング画像処理装置が、第1の領域410、第2の領域411および第3の領域412に対応する差分絶対値和を演算するときの手順を説明するための図である。
【0064】
サイクルNにおいて、第3のSAD演算部130は、第1参照画像入力140として画素r(0,0)を入力する。
【0065】
サイクルN+1において、第3SAD演算部130は、第1参照画像入力140として画素r(0,2)を入力すると共に、第3SAD演算部参照画像出力132として画素r(0,0)を第1SAD演算部110へ出力する。このとき、第2SAD演算部120は、第2参照画像入力141として画素r(0,1)を入力する。
【0066】
サイクルN+2において、第3SAD演算部130は、第1参照画像入力140として画素r(0,4)を入力すると共に、第3SAD演算部参照画像出力132として画素r(0,2)を第1SAD演算部110へ出力する。第1SAD演算部110は、第1SAD演算部参照画像入力111として画素r(0,2)を入力すると共に、第1SAD演算部参照画像出力112として画素r(0,0)を出力する。また、第2SAD演算部120は、第2参照画像入力141として画素r(0,3)を入力すると共に、第2SAD演算部参照画像出力122として画素r(0,1)を出力する。
【0067】
このサイクルN+2において、第1SAD演算部110は、現画像の画素c(0,0)と参照画像の画素r(0,0)との差分絶対値和を演算する。第2SAD演算部120は、現画像の画素c(0,0)と参照画像の画素r(0,1)との差分絶対値和を演算する。第3SAD演算部130は、現画像の画素c(0,0)と参照画像の画素r(0,2)との差分絶対値和を演算する。
【0068】
サイクルN+3において、第3SAD演算部130は、第1参照画像入力140として画素r(0,6)を入力すると共に、第3SAD演算部参照画像出力132として画素r(0,4)を第1SAD演算部110へ出力する。第1SAD演算部110は、第1SAD演算部参照画像入力111として画素r(0,4)を入力すると共に、第1SAD演算部参照画像出力112として画素r(0,2)を出力する。また、第2SAD演算部120は、第2参照画像入力141として画素r(0,5)を入力すると共に、第2SAD演算部参照画像出力122として画素r(0,3)を出力する。
【0069】
このサイクルN+3において、第1SAD演算部110は、現画像の画素c(0,1)と参照画像の画素r(0,2)との差分絶対値和を演算すると共に、前サイクルN+2において求められた演算結果(SAD演算結果1回目)を第1SAD演算部演算結果150として出力する。第2SAD演算部120は、現画像の画素c(0,1)と参照画像の画素r(0,3)との差分絶対値和を演算すると共に、前サイクルN+2において求められた演算結果(SAD演算結果1回目)を第2演算部演算結果151として出力する。第3SAD演算部130は、現画像の画素c(0,1)と参照画像の画素r(0,4)との差分絶対値和を演算すると共に、前サイクルN+2において求められた演算結果(SAD演算結果1回目)を第3演算部演算結果152として出力する。
【0070】
以上の処理を順次繰返すことにより、サイクルN+3〜N+18において、第1SAD演算部110は、第1の領域410の水平方向の画素r(0,0),r(0,2)〜r(0,28),r(0,30)に対応する差分絶対値和を順次出力する。第2SAD演算部120は、第2の領域411の水平方向の画素r(0,1),r(0,3)〜r(0,29),r(0,31)に対応する差分絶対値和を順次出力する。第3SAD演算部130は、第3の領域412の水平方向の画素r(0,2),r(0,4)〜r(0,30),(0,32)に対応する差分絶対値和を順次出力する。
【0071】
また、サイクルN+20〜N+35において、第1SAD演算部110は、第1の領域410の水平方向の画素r(2,0),r(2,2)〜r(2,28),r(2,30)に対応する差分絶対値和を順次出力する。第2SAD演算部120は、第2の領域411の水平方向の画素r(2,1),r(2,3)〜r(2,29),r(2,31)に対応する差分絶対値和を順次出力する。第3SAD演算部130は、第3の領域412の水平方向の画素r(2,2),r(2,4)〜r(2,30),(2,32)に対応する差分絶対値和を順次出力する。
【0072】
さらに、サイクルN+258〜N+273において、第1SAD演算部110は、第1の領域410の水平方向の画素r(30,0),r(30,2)〜r(30,28),r(30,30)に対応する差分絶対値和を順次出力する。第2SAD演算部120は、第2の領域411の水平方向の画素r(30,1),r(30,3)〜r(30,29),r(30,31)に対応する差分絶対値和を順次出力する。第3SAD演算部130は、第3の領域412の水平方向の画素r(30,2),r(30,4)〜r(30,30),(30,32)に対応する差分絶対値和を順次出力する。
【0073】
このようにして、図15に示す参照画像400の画素r(0,0),r(0,2),…,r(0,32),r(2,0),…,r(2,32),…,r(30,0),…,r(30,32)が第1の参照画像入力140として水平方向に1画素ずつブロックマッチング画像処理装置100に入力され、画素r(0,1),r(0,3),…,r(0,31),r(2,1),…,r(2,31),…,r(30,1),…,r(30,31)が第2の参照画像入力141として水平方向に1画素ずつブロックマッチング画像処理装置100に入力されると、サイクルN+273において、第1SAD演算部110は、図16に示す第1の領域410の256個の画素の差分絶対値和の演算結果を第1SAD演算部演算結果150として出力する。第2SAD演算部120は、図17に示す第2の領域411の256個の画素の差分絶対値和の演算結果を第2SAD演算部演算結果151として出力する。第3SAD演算部130は、図18に示す第3の領域412の256個の画素の差分絶対値和の演算結果を第3SAD演算部演算結果152として出力する。
【0074】
なお、同様にして、図19〜21に示す第4の領域413〜第6の領域415の差分絶対値和が並列に演算され、図22〜24に示す第7の領域416〜第9の領域418の差分絶対値和が並列に演算される。
【0075】
以上説明したように、本実施の形態におけるブロックマッチング画像処理装置においては、参照画像301の中の9個の領域に対応する差分絶対値和を演算する際、3つの領域に対応する差分絶対値和を並列に演算するようにしたので、半画素精度のブロックマッチングを高速に行なうことが可能となった。また、図1および図2に示すように、小さな回路規模でこのような並列処理を行なうことができ、低消費電力化を図ることが可能となった。
【0076】
なお、図1と同様の方法によって、5以上の奇数個のSAD演算部200を並列に接続するようにすれば、半画素精度のブロックマッチング画像処理をN(Nは3以上の奇数)並列で行なえるようになり、さらにブロックマッチングの処理速度を向上させることが可能となる。
【0077】
また、本実施の形態においては、水平方向に差分絶対値和の演算を行なっているが、垂直方向に差分絶対値和を演算するようにしても同様の効果を得ることが可能である。
【0078】
今回開示された実施の形態は、すべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【0079】
【発明の効果】
本発明のある局面によれば、第1の演算手段、第2の演算手段および第3の演算手段が、第1の領域に対応する差分絶対値和、第2の領域に対応する差分絶対値和および第3の領域に対応する差分絶対値和を演算するので、半画素精度のブロックマッチングを並列に行なうことができ、半画素精度のブロックマッチングを高速に行なうことが可能となった。
【0081】
本発明の別の局面によれば、第1の選択手段および第2の選択手段による選択に応じて、第1の演算手段、第2の演算手段および第3の演算手段が、第1の領域に対応する差分絶対値和、第2の領域に対応する差分絶対値和および第3の領域に対応する差分絶対値和を演算するので、1画素精度のブロックマッチングおよび半画素精度のブロックマッチングのいずれかを適宜選択することができ、小さな回路規模で1画素精度のブロックマッチングおよび半画素精度のブロックマッチングに対応することが可能となった。
【図面の簡単な説明】
【図1】 本発明の第1の実施の形態におけるブロックマッチング画像処理装置の概略構成を示すブロック図である。
【図2】 図1に示す第1SAD演算部110、第2SAD演算部120および第3SAD演算部130の構成例を示すブロック図である。
【図3】 現画像の1MBの画素配置イメージを示す図である。
【図4】 1画素精度のブロックマッチングにおいて、水平方向に±1画素、垂直方向に±1画素の範囲で探索する場合の参照画像の画素配置イメージを示す図である。
【図5】 1画素精度のブロックマッチングの演算対象となる9個の位置のうち1個目の位置を示す図である。
【図6】 1画素精度のブロックマッチングの演算対象となる9個の位置のうち2個目の位置を示す図である。
【図7】 1画素精度のブロックマッチングの演算対象となる9個の位置のうち3個目の位置を示す図である。
【図8】 1画素精度のブロックマッチングの演算対象となる9個の位置のうち4個目の位置を示す図である。
【図9】 1画素精度のブロックマッチングの演算対象となる9個の位置のうち5個目の位置を示す図である。
【図10】 1画素精度のブロックマッチングの演算対象となる9個の位置のうち6個目の位置を示す図である。
【図11】 1画素精度のブロックマッチングの演算対象となる9個の位置のうち7個目の位置を示す図である。
【図12】 1画素精度のブロックマッチングの演算対象となる9個の位置のうち8個目の位置を示す図である。
【図13】 1画素精度のブロックマッチングの演算対象となる9個の位置のうち9個目の位置を示す図である。
【図14】 本発明の第1の実施の形態におけるブロックマッチング画像処理装置が、第1の領域310、第2の領域311および第3の領域312に対応する差分絶対値和を演算するときの手順を説明するための図である。
【図15】 半画素精度のブロックマッチングにおいて、水平方向に±0.5画素、垂直方向に±0.5画素の範囲で探索する場合の参照画像の画素配置イメージを示す図である。
【図16】 半画素精度のブロックマッチングの演算対象となる9個の位置のうち1番目の対象位置を示す図である。
【図17】 半画素精度のブロックマッチングの演算対象となる9個の位置のうち2番目の対象位置を示す図である。
【図18】 半画素精度のブロックマッチングの演算対象となる9個の位置のうち3番目の対象位置を示す図である。
【図19】 半画素精度のブロックマッチングの演算対象となる9個の位置のうち4番目の対象位置を示す図である。
【図20】 半画素精度のブロックマッチングの演算対象となる9個の位置のうち5番目の対象位置を示す図である。
【図21】 半画素精度のブロックマッチングの演算対象となる9個の位置のうち6番目の対象位置を示す図である。
【図22】 半画素精度のブロックマッチングの演算対象となる9個の位置のうち7番目の対象位置を示す図である。
【図23】 半画素精度のブロックマッチングの演算対象となる9個の位置のうち8番目の対象位置を示す図である。
【図24】 半画素精度のブロックマッチングの演算対象となる9個の位置のうち9番目の対象位置を示す図である。
【図25】 本発明の第2の実施の形態におけるブロックマッチング画像処理装置が、第1の領域410、第2の領域411および第3の領域412に対応する差分絶対値和を演算するときの手順を説明するための図である。
【符号の説明】
100 ブロックマッチング画像処理装置、101 クロック、102 現画像入力、103,104 選択信号、110 第1SAD演算部、111 第1SAD演算部参照画像入力、112 第1SAD演算部参照画像出力、120 第2SAD演算部、121 第2SAD演算部参照画像入力、122 第2SAD演算部参照画像出力、130 第3SAD演算部、132 第3SAD演算部参照画像出力、140 第1参照画像入力、141 第2参照画像入力、150第1SAD演算部演算結果、151 第2SAD演算部演算結果、152 第3SAD演算部演算結果、200 SAD演算部、201 参照画像入力、202 参照画像出力、205 SAD演算結果、210,214 FF、211 減算器、212 絶対値演算器、213 加算器、220 減算器出力、221絶対値演算器出力、222 加算器出力。
Claims (4)
- 同一のマクロブロックと参照画像内の複数の領域との半画素精度のブロックマッチングを並列に行なうブロックマッチング画像処理装置であって、
前記参照画像内の一方向に1つおきの画素が順次入力され、前記参照画像内の第1の領域の画素と、前記マクロブロック内の対応する画素との差分絶対値和を演算すると共に、前記参照画像内の一方向に1つおきの画素をシフトアウトするための第1の演算手段と、
前記参照画像内の前記一方向に1つおきの画素とは異なる一方向に1つおきの画素が順次入力され、前記参照画像内の前記第1の領域とは異なる第2の領域の画素と、前記マクロブロック内の対応する画素との差分絶対値和を演算するための第2の演算手段と、
前記第1の演算手段からシフトアウトされた画素が順次入力され、前記参照画像内の前記第1の領域および前記第2の領域とは異なる第3の領域の画素と、前記マクロブロック内の対応する画素との差分絶対値和を演算するための第3の演算手段とを含む、ブロックマッチング画像処理装置。 - 同一のマクロブロックと参照画像内の複数の領域との1画素精度または半画素精度のブロックマッチングを並列に行なうブロックマッチング画像処理装置であって、
前記参照画像内の一方向に連続した画素または前記参照画像内の一方向に1つおきの画素が順次入力され、前記参照画像内の第1の領域の画素と、前記マクロブロック内の対応する画素との差分絶対値和を演算すると共に、前記参照画像内の一方向に連続した画素または前記参照画像内の一方向に1つおきの画素をシフトアウトするための第1の演算手段と、
前記第1の演算手段によってシフトアウトされた画素および前記参照画像内の前記一方向に1つおきの画素とは異なる一方向に1つおきの画素のいずれかを選択的に出力するための第1の選択手段と、
前記第1の選択手段から出力された画素が順次入力され、前記参照画像内の前記第1の領域とは異なる第2の領域の画素と、前記マクロブロック内の対応する画素との差分絶対値和を演算すると共に、前記第1の選択手段から出力された画素をシフトアウトするための第2の演算手段と、
前記第1の演算手段によってシフトアウトされた画素および前記第2の演算手段によってシフトアウトされた画素のいずれかを選択的に出力するための第2の選択手段と、
前記第2の選択手段から出力された画素が順次入力され、前記参照画像内の前記第1の領域および前記第2の領域とは異なる第3の領域の画素と、前記マクロブロック内の対応する画素との差分絶対値和を演算するための第3の演算手段とを含む、ブロックマッチング画像処理装置。 - 1画素精度のブロックマッチングを行なう場合、前記第1の選択手段は、前記第1の演算手段によってシフトアウトされた画素を選択して出力し、前記第2の選択手段は、前記第2の演算手段によってシフトアウトされた画素を選択して出力する、請求項2記載のブロックマッチング画像処理装置。
- 半画素精度のブロックマッチングを行なう場合、前記第1の選択手段は、前記参照画像内の前記一方向に1つおきの画素とは異なる一方向に1つおきの画素を選択して出力し、前記第2の選択手段は、前記第1の演算手段によってシフトアウトされた画素を選択して出力する、請求項2記載のブロックマッチング画像処理装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003146167A JP4160855B2 (ja) | 2003-05-23 | 2003-05-23 | ブロックマッチング画像処理装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003146167A JP4160855B2 (ja) | 2003-05-23 | 2003-05-23 | ブロックマッチング画像処理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004350114A JP2004350114A (ja) | 2004-12-09 |
JP4160855B2 true JP4160855B2 (ja) | 2008-10-08 |
Family
ID=33533097
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003146167A Expired - Fee Related JP4160855B2 (ja) | 2003-05-23 | 2003-05-23 | ブロックマッチング画像処理装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4160855B2 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE112016002009T5 (de) * | 2015-06-03 | 2018-01-18 | Olympus Corporation | Berechnungsgerät, Berechnungsverfahren und Programm |
-
2003
- 2003-05-23 JP JP2003146167A patent/JP4160855B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2004350114A (ja) | 2004-12-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101578052B1 (ko) | 움직임 추정 장치 및 이를 구비하는 동영상 부호화 장치 | |
JP2010288110A (ja) | 画像処理装置および画像処理方法 | |
KR100226684B1 (ko) | 반화소 움직임 추정장치 | |
JP4793070B2 (ja) | 動きベクトル探索方法及び装置 | |
Vayalil et al. | A residue number system hardware design of fast-search variable-motion-estimation accelerator for HEVC/H. 265 | |
Biswas et al. | Efficient architecture of adaptive rood pattern search technique for fast motion estimation | |
Akin et al. | An adaptive bilateral motion estimation algorithm and its hardware architecture | |
JP4160855B2 (ja) | ブロックマッチング画像処理装置 | |
Kovačević et al. | Block-matching correlation motion estimation for frame-rate up-conversion | |
JP2006215657A (ja) | 動きベクトル検出方法、動きベクトル検出装置、動きベクトル検出プログラム及びプログラム記録媒体 | |
JP5353719B2 (ja) | 動画像符号化装置、動画像符号化方法、動画像符号化プログラム | |
US8917770B2 (en) | Motion estimation apparatus and motion estimation method | |
JP2934146B2 (ja) | 動画像圧縮におけるブロック・マッチング方法と装置 | |
Jeong | Fast sub-pixel motion estimation having lower complexity | |
JP3903358B2 (ja) | 動きベクトルの評価方法および装置 | |
KR100926440B1 (ko) | 영상부호화를 위한 블록 매칭 움직임 추정 장치 | |
Ismail et al. | An efficient adaptive high speed manipulation architecture for fast variable padding frequency domain motion estimation | |
JP2007097028A (ja) | 動きベクトル検出方法および動きベクトル検出回路 | |
JP2768644B2 (ja) | 動きベクトル探索方法および探索装置 | |
JP2000102015A (ja) | 動きベクトル検出装置及び動きベクトル検出方法 | |
JP2988836B2 (ja) | 動きベクトル探索方法 | |
JP2901848B2 (ja) | ベクトル相関検出回路 | |
JP3052711B2 (ja) | 動きベクトル検出回路 | |
JP2005064655A (ja) | 動きベクトル検出方法及び動きベクトル検出装置 | |
JP3589483B2 (ja) | データ処理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20060421 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20080424 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080507 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080625 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20080715 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20080718 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110725 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110725 Year of fee payment: 3 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313111 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110725 Year of fee payment: 3 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120725 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120725 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130725 Year of fee payment: 5 |
|
LAPS | Cancellation because of no payment of annual fees |