JP4570700B2 - 動ベクトル検出装置 - Google Patents
動ベクトル検出装置 Download PDFInfo
- Publication number
- JP4570700B2 JP4570700B2 JP35700596A JP35700596A JP4570700B2 JP 4570700 B2 JP4570700 B2 JP 4570700B2 JP 35700596 A JP35700596 A JP 35700596A JP 35700596 A JP35700596 A JP 35700596A JP 4570700 B2 JP4570700 B2 JP 4570700B2
- Authority
- JP
- Japan
- Prior art keywords
- pixel
- motion vector
- integer
- accuracy
- value
- 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 - Lifetime
Links
Images
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Description
【発明の属する技術分野】
本発明は動ベクトル検出装置に関し、特に、整数画素精度の動ベクトルと半画素精度の動ベクトルとの両方を検出する動ベクトル検出装置に用いて好適なものである。
【0002】
【従来の技術】
動画像信号の符号化においては、情報量を高能率圧縮するために、動画像信号のフレーム間の相関性の高さに着目してフレーム間の差分を符号化する方法(フレーム間符号化)が採用されることが多い。すなわち、差分をとる対象フレームが存在しない最初のフレームについては1画面をそのまま符号化するが、それ以降のフレームについては、符号化した情報を更に復号した1つ前のフレーム(参照フレーム)との差分をとり、その差分を符号化するという方法である。
【0003】
しかし、この方法では、全てのフレームについて1画面をそのまま符号化する場合に比べれば情報量を少なくできるが、差分をとるフレーム間で画面に動きがあった部分については、差分値が大きくなることがあり、情報量の圧縮という点に関してはまだまだ十分とは言えない。そこで、このような場合も考慮して更に効率的に情報量を圧縮するために、動き補償という方法(動き補償フレーム間符号化)が用いられる。
【0004】
動き補償を用いないフレーム間符号化においては、フレーム間の差分は、比較される両フレームの空間座標が互いに同一の箇所でとられる。これに対して動き補償を用いる場合は、両フレームの空間座標は必ずしも同一である必要はなく、画面の動きを考慮し、フレーム間の差分がより小さくなるような参照フレームの箇所との間で差分がとられる。このときの符号化対象箇所の座標と参照フレーム内の差分をとる箇所の座標とのずれを表すのが動ベクトルである。これを図面を用いて説明する。
【0005】
図4は、動き補償フレーム間予測および動ベクトルの説明図である。図4において、401は参照フレーム、402は符号化対象フレームであり、白抜きの星☆だけが動いていて背景は全く動いていない様子が示されている。符号化対象フレーム402は、動き補償フレーム間符号化を行うにあたって複数の小さなブロックに分割され、このブロック単位で符号化が行われる。
【0006】
例えば、動画像通信の符号化標準であるITU−T勧告H.261やH.263、動画像蓄積の符号化標準であるMPEG1やMPEG2、MPEG4では、マクロブロックと呼ばれる縦横16画素の単位に分割して符号化される。403は符号化対象フレーム402を複数のマクロブロックに分割した様子を示すものである。
【0007】
今、符号化対象フレーム403の分割された複数のマクロブロックのうち、白抜きの星☆がある403aのブロックに注目する。404は401と同じ参照フレームであるが、ここでマクロブロック403aと同じ座標のブロックは、404aのブロックとなる。しかし、これらのフレーム間では動きが発生しているので、マクロブロック403aとの差分をとるにあたってその差分値が最も小さくなるのは404bに位置するブロックである。このとき、ブロック404aの座標とブロック404bの座標とのずれを表す404cが動ベクトルとなる。
【0008】
情報の圧縮という点に関しては、符号化対象フレーム内のマクロブロック403aと参照フレーム内のブロック404aとの差分を符号化するよりも、符号化対象フレーム内のマクロブロック403aと参照フレーム内のブロック404bとの差分および動ベクトル404cを符号化した方が効率が良い。
【0009】
この動ベクトルを検出する方法として、よく用いられる方法の1つにブロックマッチング法がある。これは、符号化対象ブロックの位置を中心にして動ベクトルを検出するための探索範囲をあらかじめ設定し、その探索範囲内の全ての候補ベクトルに対するブロックについて符号化対象ブロックの各画素との差分の絶対値の合計を算出し、その合計値が最小となった候補ブロックを参照ブロック(図4のブロック404bに相当)として採用するという方法である。これを図面を用いて説明する。
【0010】
図5は、ブロックマッチング法の説明図であり、説明の簡略化のため、符号化対象ブロックは縦横2画素、探索範囲は符号化対象ブロックを中心にして上下左右とも+2画素の範囲としている。図5において、501は符号化対象フレーム内の符号化対象ブロック位置を示し、502は1フレーム前の参照フレーム内の探索範囲を示している。503〜527は探索範囲502内の全ての候補ベクトルに対するブロックである。また、○内の数字は、画素番号を示している。
【0011】
この例の場合、符号化対象ブロック501と探索範囲502内の各候補ブロック503〜527との間で対応する位置の画素間の差分絶対値の合計を算出する。左上の候補ブロック503を例にとると、
|a15-b1|+|a16-b2|+|a21-b7|+|a22-b8|
を算出することになる。ここで、a** は符号化対象画素の値、b** は参照画素の値であり、**が図5の画素番号に対応している。同様の演算を他の候補ブロック504〜527についても行い、その結果が最小であったブロックを参照ブロックとして採用する。
【0012】
さらに、H.263やMPEG1、2、4では、縦横の画素間のデータを補間することで半画素精度のデータを生成し、この補間データを含めて参照フレームのデータとして、半画素精度で動ベクトルを採用することも可能である。これを図面を用いて説明する。
【0013】
図6は、半画素精度の動ベクトルの説明図であり、説明の簡略化のため、符号化対象ブロックを縦横4画素としている。図6において、601は参照フレームであり、この中の各画素のうち、丸印(白抜きの丸、黒塗りの丸、斜線を施した丸の全て)は元の画素(整数画素)を示している。これに対して、三角印(白抜きの三角、斜線を施した三角の全て)は上記整数画素を用いて補間によって生成された半画素を示している。
【0014】
602は符号化対象ブロックの位置を示し、この中の黒塗りの丸が符号化対象の整数画素位置を示している。このとき、603が整数画素精度の動ベクトルを求めた場合の参照ブロックの一例であり、斜線を施した丸が参照画素である。また、604は半画素精度の動ベクトルを求めた場合の参照ブロックの一例であり、斜線を施した三角が参照画素である。
【0015】
図6から分かるように、半画素精度の動ベクトルを採用する場合については、参照フレーム601内の画素の数が整数画素精度の動ベクトルを採用する場合に比べて非常に多くなり、候補ベクトルの数も非常に多くなってしまう。そのため、それら全ての候補ベクトルに対するブロックについて符号化対象ブロック間で差分絶対値を計算していると、計算時間が莫大なものとなってしまう。そこで、通常は、最初に整数画素精度の動ベクトルを検出し、次のそのとき求めた整数画素精度の参照ブロックを中心にして縦横±0.5画素の範囲を設定し、その範囲についてのみ同様の動ベクトル検出を行う。これを図面を用いて説明する。
【0016】
図7は、半画素精度の動ベクトルの検出方法の説明図である。ここでは、例えば図5で説明したような処理によって、509のブロックが整数画素精度の参照ブロックとして選ばれたものとする。図7において、701は上記選択された整数画素精度の参照ブロック509とそれを囲む周辺の整数画素データとから半画素データを補間して生成した半画素精度の探索範囲を示している。702〜710は上記半画素精度の探索範囲701内の全ての候補ベクトルに対するブロックである。また、○内のアルファベットは、半画素番号を示している。
【0017】
この例の場合、図5の符号化対象ブロック501と半画素精度の探索範囲701内の各候補ブロック702〜710との間で対応する位置の画素間の差分絶対値の合計を算出する。そして、その合計値が最小であった候補ブロックを半画素精度の動ベクトルによる参照ブロックとして採用する。すなわち、半画素精度の動ベクトルを求める方法は、符号化対象ブロック501ではなく、最初に求めた整数画素精度の参照ブロック509を原点にした縦横±0.5画素の探索範囲のブロックマッチング法ということができる。
【0018】
【発明が解決しようとする課題】
上記に挙げた種々の符号化方式のうち、H.263やMPEG4は最近になって標準化が成されたばかりであり、これらを応用した製品はまだ数多く存在しないのが現状である。したがって、整数画素精度の動ベクトルと半画素精度の動ベクトルとの両方を求めることが可能な装置をどのように構成するかは、今後の課題とも言える。
【0019】
特に、H.263やMPEG4では、MPEG1あるいはMPEG2とは異なり、縦横の画素数が176×144のQCIF(Quater Common Intermediate Format )を単位として符号化を行うので、処理の高速化については従来ほど考慮しなくても良い。
【0020】
そこで本発明は、このようなH.263やMPEG4の応用化に先駆けて、処理の高速化よりも装置のコンパクト化に重点をおき、整数画素精度の動ベクトルと半画素精度の動ベクトルとをより簡単な構成で求めることが可能な動ベクトル検出装置を提供することを目的とする。
【0021】
【課題を解決するための手段】
本発明のベクトル検出装置は、符号化の方式がH.263またはMPEG4のシステムにおいて用いる動ベクトル検出装置であって、整数画素精度の動ベクトルを求めるための探索範囲内の画素値から、各画素間のデータを補間することで半画素精度の画素値を生成する半画素補間手段と、上記半画素補間手段により生成された半画素精度の画素値か上記整数画素精度の画素値かの何れかを選択する選択手段と、上記選択手段により選択された整数画素精度あるいは半画素精度の何れかの画素値と符号化対象ブロック内の画素値とを用いて動ベクトルを検出する動ベクトル検出手段と、上記選択手段および上記動ベクトル検出手段を所定の制御信号により制御する制御手段とを備え、上記半画素補間手段は、上記整数画素精度の動ベクトルを求めるための探索範囲内の画素値を保持しておき、上記動ベクトル検出手段で検出された整数画素精度の動ベクトルに基づいて、上記保持した前記整数画素精度の動ベクトルを求めるための探索範囲内の画素値における該動ベクトルに対応する参照ブロック内の画素値とその周辺の画素値とから上記半画素精度の画素値を補間生成することを特徴とする。
本発明の他の特徴とするところは、上記動ベクトル検出手段は、上記符号化対象ブロック内の各画素値と、上記選択手段により選択された整数画素精度あるいは半画素精度の探索範囲中で参照ブロックの候補となるブロック内の各画素値との差分絶対値を計算する各画素毎の差分絶対値計算手段と、上記各画素毎の差分絶対値計算手段に対して上記整数画素精度の各画素値が入力されるように遅延処理を施すか、上記半画素精度の各画素値が入力されるように遅延処理を施すかを切り換える切り換え手段と、上記切り換え手段の切り換えにより得られる整数画素精度あるいは半画素精度の各画素値を用いて上記差分絶対値計算手段により求められた各画素毎の差分絶対値を合算する合算手段と、上記合算手段による計算結果に基づいて上記参照ブロックを決定し、動ベクトルを求める動ベクトル発生手段とを備え、上記切り換え手段が上記制御手段より与えられる所定の制御信号により制御されることを特徴とする。
【0025】
本発明は上記技術手段より成るので、動ベクトル検出手段に入力する探索範囲の画素値として整数画素精度の画素値を選択するか半画素精度の画素値を選択するかを選択手段により切り換えて、1つの動ベクトル検出手段を使い回すことにより、1つの動ベクトル検出手段で整数画素精度の動ベクトルと半画素精度の動ベクトルとの両方を求めることが可能となる。
【0026】
【発明の実施の形態】
以下、本発明の一実施形態を図面に基づいて説明する。
図1は、本実施形態による動ベクトル検出装置の要部構成を示すブロック図である。図1において、101はマルチプレクサ、102は整数/半画素精度動ベクトル検出部、103は整数画素精度探索データ用メモリ、104は半画素補間部、105a,105bはフレームメモリ、106a,106b,106cは読み出し部、107は制御回路である。
【0027】
符号化対象フレームの画像は、第1のフレームメモリ105aに格納され、その中から第1の読み出し部106aより出力されるアドレスに従って符号化対象ブロックの各画素値(以下、符号化対象ブロックデータ)が読み出されて、整数/半画素精度動ベクトル検出部102に供給される。
【0028】
また、上記符号化対象フレームより1フレーム前の参照フレームの画像は、第2のフレームメモリ105bに格納され、その中から第2の読み出し部106bより出力されるアドレスに従って整数画素精度の探索範囲内の各画素値(以下、整数画素精度探索データ)が読み出されて、マルチプレクサ101および整数画素精度探索データ用メモリ103に供給される。
【0029】
マルチプレクサ101は、制御回路107から与えられる所定のコントロール信号に従って、第2のフレームメモリ105bから読み出された整数画素精度探索データか半画素補間部104から出力された半画素精度探索データかの何れかを選択して整数/半画素精度動ベクトル検出部102に供給する。
【0030】
整数/半画素精度動ベクトル検出部102は、制御回路107から与えられる所定のコントロール信号に従って、第1のフレームメモリ105aから読み出された符号化対象ブロックデータと、マルチプレクサ101から出力された整数画素精度探索データあるいは半画素精度探索データとの間でブロックマッチング法による動ベクトル検出処理を行う。
【0031】
半画素補間部104は、整数画素精度探索データ用メモリ103から読み出される整数画素精度探索データを用いて半画素データを補間生成する。上記整数画素精度探索データ用メモリ103からどの部分の整数画素データを読み出すかは、第3の読み出し部106cからのアドレスに従って制御される。第3の読み出し部106cは、整数/半画素精度動ベクトル検出部102で求められた整数画素精度の動ベクトルに対応する参照ブロックとその周辺の整数画素データとを読み出すように制御する。
【0032】
以下に、上記のように構成した本実施形態による動ベクトル検出装置の大まかな動作について説明する。
【0033】
まず、整数画素精度の動ベクトルを検出するために、符号化対象ブロックデータと整数画素精度探索データとが整数/半画素精度動ベクトル検出部102に入力される。ここで、マルチプレクサ101においては、第2のフレームメモリ105bからの整数画素精度探索データと半画素補間部104からの半画素精度探索データとの何れかの選択で前者が選択され、整数/半画素精度動ベクトル検出部102に入力される。このとき、整数画素精度探索データは整数画素精度探索データ用メモリ103にも入力され、その全てが保持される。
【0034】
上記整数/半画素精度動ベクトル検出部102では、整数画素精度の動ベクトルがブロックマッチング法により決定される。ここで求められた動ベクトルの値は、外部に出力されるとともに第3の読み出し部106cに入力され、これによって整数画素精度探索データ用メモリ103の中から上記決定された整数画素精度動ベクトルに対応する参照ブロックの探索データとその周辺画素の探索データとが読み出され、半画素補間部104に入力される。
【0035】
半画素補間部104では、入力された整数画素精度の探索データを用いて半画素データが補間生成される。そして、この生成された半画素精度探索データはマルチプレクサ101に入力される。今回は、半画素精度の動ベクトルを検出するために、マルチプレクサ101において、第2のフレームメモリ105bからの整数画素精度探索データと半画素補間部104からの半画素精度探索データとの何れかの選択で後者が選択され、整数/半画素精度動ベクトル検出部102に入力される。
【0036】
整数/半画素精度動ベクトル検出部102では、あらかじめ入力された符号化対象ブロックデータと上記マルチプレクサ101で選択された半画素精度探索データとを用いて、上述した縦横±0.5画素の探索範囲のブロックマッチング法により半画素精度の動ベクトルが決定され、外部に出力される。
【0037】
この一連の動作の中で、制御回路107は、整数画素精度の動ベクトルを求めるときはマルチプレクサ101で上側の入力を選択するように制御し、半画素精度の動ベクトルを求めるときはマルチプレクサ101で下側の入力を選択するように制御する。また、整数画素精度の動ベクトルを求めるか半画素精度の動ベクトルを求めるかに応じて、後述する整数/半画素精度動ベクトル検出部102内のマルチプレクサの切り換え動作を制御する。
【0038】
次に、上記整数/半画素精度動ベクトル検出部102の内部構成について、図面を参照しながら説明する。
図2は、整数/半画素精度動ベクトル検出部102の構成を示す図である。なお、説明の簡略化のために、符号化対象ブロックは縦横4画素、整数画素精度動ベクトルの探索範囲は符号化対象ブロックを中心にして縦横±4画素の範囲であるものとする。
【0039】
図2において、201は差分絶対値計算回路、202は合算回路、203は最小値決定/動ベクトル発生回路である。
上記差分絶対値計算回路201の内部において、11a,11bは画素毎の差分絶対値計算回路(以下、PDCという)、12a,12bはマルチプレクサ(以下、MPXという)、13はシフトレジスタ(以下、SRという)、14は8つのシフトレジスタが直列に接続された8段シフトレジスタ、15は3つのシフトレジスタが直列に接続された3段シフトレジスタである。
【0040】
点線で囲んだ21aは上記PDC11a、MPX12a、SR13の3つを組み合わせた回路ブロックであり、21b,21cの点線で囲んだブロックも同様に構成されている。また、一点鎖線で囲んだ22aは上述の構成を全て含んだ回路ブロックであり、22b,22cの一点鎖線で囲んだブロックも同様に構成されている。
【0041】
このように、上から3行の回路ブロック22a〜22cは全て同様に構成されているが、一番下の行だけは、3つの回路ブロック21a〜21cと1つのPDC11bのみにより構成されており、8段シフトレジスタ14、MPX12bおよび3段シフトレジスタ15は含まれていない。
【0042】
以上の構成によれば、PDCは各行に4個、4行全部で16個備えられているが、これらのPDCの位置は、実際の画面上の符号化対象ブロック(縦横4画素)の画素の位置に対応している。なお、以下の説明において“PDC11”と記すときは、16個のPDCの全てを指しているものとする。また、“MPX12”と記すときは、差分絶対値計算回路201内の全てのマルチプレクサを指しているものとする。
【0043】
さらに、上記PDC11の内部構成を図3に示す。図3において、301〜303はシフトレジスタ(SR)、304は計算回路である。第1のSR301は、第1のフレームメモリ105aから読み出された符号化対象ブロックデータの1画素分を保持する。第3のSR303は、前段から送られてくる探索データの1画素分を保持する。
【0044】
計算回路304は、上記第1のSR301に保持された1画素分の符号化対象ブロックデータAと、第3のSR303に保持された1画素分の探索データBとの差分絶対値|A−B|を計算し、その計算結果は第2のSR302に保持される。第2のSR302に保持された1画素分の差分絶対値は合算回路202に出力され、第3のSR303に保持された前段からの探索データBは、上記差分絶対値が出力されるのと同じタイミングで次段に出力される。
【0045】
各PDC11が図3のように構成されているので、差分絶対値計算回路201内の各行では、入力された探索データが右から左へと順に送られていく。また、上から2行目以降の一番左にあるPDC11aから出力された探索データは、それぞれその上の行に送られる。
【0046】
本実施形態においては、整数画素精度の探索範囲が横方向に12画素であるのに対して、探索範囲内の各候補ブロックの大きさ(符号化対象ブロックと同じ大きさ)は横方向に4画素で探索範囲より8画素少ない。そのため、3つの回路ブロック22a〜22c内に設けた8段シフトレジスタ14は、候補ブロック内の画素値として使わない各行8画素分の探索データを格納(遅延)するものとして機能する。
【0047】
また、半画素精度の探索範囲は、各整数画素データ間に上記半画素補間部104で補間生成された半画素データが更に増えているので、3つの回路ブロック22a〜22c内に設けたSR13および3段シフトレジスタ15は、半画素精度の動ベクトルを求めるときに候補ブロック内の画素値として使わない探索データを格納(遅延)するものとして機能する。
【0048】
また、MPX12aは、各回路ブロック21a〜21c内のPDC11aの前段に夫々設けられ、前段のPDCからの出力とSR13からの出力とのどちらかを選択出力するようになっている。MPX12bは、8段シフトレジスタ14の前段に設けられ、3段シフトレジスタ15からの出力と下の行の一番左にあるPDC11aからの出力とのどちらかを選択出力するようになっている。
【0049】
以上に述べた各MPX12は、図1の制御回路107から与えられるコントロール信号に応じて切り換えられるようになっており、整数画素精度の動ベクトルを求めるときは全て下側の入力が選択される。一方、半画素精度の動ベクトルを求めるときは全て上側の入力が選択される。
【0050】
これにより、整数画素精度の動ベクトルを求めるときは、16個のPDCが3個の8段シフトレジスタ14を途中に介しながら直列に接続され、探索データが右下のPDC11bから左上のPDC11aへと順に送られていくことになる。
一方、半画素精度の動ベクトルを求めるときは、16個のPDCが全てのシフトレジスタ13,14,15を途中に介しながら直列に接続され、探索データが右下のPDC11bから左上のPDC11aへと順に送られていくことになる。
【0051】
合算回路202は、16個のPDC11内で計算された各画素毎の差分絶対値の合計を求め、その結果を最小値決定/動ベクトル発生回路203に供給する。
最小値決定/動ベクトル発生回路203は、合算回路202から各候補ブロックごとに与えられる差分絶対値の合計値の中から最小のものを決定し、その合計値が最小の候補ブロックを参照ブロックとして採用して動ベクトルを発生する。
【0052】
次に、上記のように構成した本実施形態による整数/半画素精度動ベクトル検出部102の動作について詳しく説明する。
まず、図1に示した第1のフレームメモリ105aから符号化対象ブロックデータが整数/半画素精度動ベクトル検出部102内の差分絶対値計算回路201に入力され、各画素のデータがそれぞれ対応するPDC11中の第1のSR301に保持される。この符号化対象ブロックデータは、同一のブロックの処理期間中はそのまま第1のSR301に保持される。
【0053】
なお、第1のフレームメモリ105aからの符号化対象ブロックデータの入力は、以下に述べる探索範囲のデータの入力において、最初のデータが図2の一番左上のPDC11aに到着するまでに完了していれば良い。
【0054】
次に、差分絶対値計算回路201に探索範囲のデータが入力されるが、最初に整数画素精度の動ベクトルを求めるために、第2のフレームメモリ105bから整数画素精度の探索データが入力される。ここでは、縦横4画素の符号化対象ブロックに対して縦横±4画素を探索するので、整数画素精度探索データの大きさは縦横12画素となる。
【0055】
また、図2における全てのMPX12では、図1の制御回路107からのコントロール信号に従って下側の入力を選択する。これにより、一点鎖線で囲んだ各回路ブロック22a〜22c内のPDC11bより前段のシフトレジスタは8段になる。さらに、点線で囲んだ各回路ブロック21a〜21c内にあるPDC間のSR13は通過しなくなる。
【0056】
このため、最下行を除く各行の探索データのパスでは、各PDC11内にある第3のSR303を併せて12段のシフトレジスタが直列に結ばれることになる。また、最下行の探索データのパスでは、各PDC11内にある第3のSR303によって4段のシフトレジスタが直列に結ばれることになる。
【0057】
各行間では直下の行の出力が直上の行の入力に接続されており、最下行の入力側から整数画素精度の探索データをラスタスキャン順に入力すると、最初のデータ(探索範囲の左上にあるデータ)が一番左上のPDC11aに到着した時点で、左上の候補ブロック(図5で言うところの候補ブロック503に相当)のデータが各PDC11に入力されたことになる。
【0058】
このとき、各PDC11内の計算回路304で符号化対象ブロックデータと整数画素精度探索データとの差分絶対値が各画素ごとに計算され、その結果が第2のSR302に保持される。これらの差分絶対値は合算回路202に入力されて合算されることにより、差分絶対値の合計を得る。こうして得られた差分絶対値の合計は、最小値決定/動ベクトル発生回路203に入力され、図示しない内部のレジスタに保持される。
【0059】
次に、最下行の入力側から次の探索データを1画素分入力すると、各PDC11には次の候補ブロック(図5で言うところの候補ブロック504に相当)のデータが入力されたことになる。この場合も同様にして、差分絶対値の合計が算出され、それが最小値決定/動ベクトル発生回路203に入力される。最小値決定/動ベクトル発生回路203では、今回入力された差分絶対値の合計と、前回図示しない内部のレジスタに保持された差分絶対値の合計とを大小比較し、値の小さい方を上記レジスタに保持し直す。
【0060】
以下同様にして、最下行の入力側から探索データを順次入力していき、各候補ブロックごとに差分絶対値の合計を求めていく。ところで、最初の候補ブロックのデータが各PDC11に入力されたときから数えて、9画素分の探索データを入力すると、水平位置が同じ9個の候補ブロック(図5で言うところの候補ブロック503〜507に相当。ただし、図5では探索範囲が本例と異なるので、候補ブロックは5個となっている)が各PDC11に順に入力される。
【0061】
続く3画素分の探索データを入力したときには差分絶対値の合計の計算には無関係になるが、更にそれに続く9画素分の探索データを順に入力すると、先に入力された9個の候補ブロックから水平位置が1画素下がった9個の候補ブロック(図5で言うところの候補ブロック508〜512に相当。ただし、図5では探索範囲が本例と異なるので、候補ブロックは5個となっている)が各PDC11に順に入力される。このように整数画素精度探索データを順次入力していくことで、全ての候補ブロックの探索データが各PDC11に順に入力される。
【0062】
このとき、最小値決定/動ベクトル発生回路203は、上述したような大小比較およびレジスタへの更新記憶の処理を各候補ブロックについて差分絶対値の合計が計算されるごとに行うことにより、最終的に各候補ブロックの中で最小の差分絶対値の合計を有する候補ブロックを参照ブロックとして決定する。そして、その決定した参照ブロックに対応する動ベクトルを発生して、整数画素精度の動ベクトルとして外部に出力する。
【0063】
次に、半画素精度の動ベクトルを求めるために、差分絶対値計算回路201の最下行の入力側から半画素精度の探索データをラスタスキャン順に入力する。半画素精度の動ベクトルを求める場合には、縦横4画素の符号化対象ブロックデータ(整数画素データ)に対して、その上下左右の各画素間に半画素データが補間されるので、半画素精度探索データの大きさは縦横9画素となる。
【0064】
この場合は、全てのMPX12は上側の入力を選択する。この意味するところを、図7を用いて説明する。
まず、各PDC11間にSR13が挿入される。これは、図7の702〜710に示したように、半画素精度探索範囲701内の各候補ブロックのデータとして1画素おきの画素値が用いられることに対応するものである。
【0065】
例えば、符号化対象ブロック501と半画素精度の探索範囲701内の候補ブロック702とについて差分絶対値を計算する場合、
|15−a|+|16−c|+|21−i|+|22−k|
を算出することになる。ここで、数字は符号化対象ブロック501内の対応する画素番号の画素値、アルファベットは候補ブロック702内の対応する半画素番号の画素値を示している。
【0066】
上記の式から分かるように、候補ブロック702内の画素値は横方向に対してはa,cのように1画素おきに用いられる。しかし、半画素精度探索データは差分絶対値計算回路201にa,b,cの順に入力される。そこで、各PDC11間に1個のSR13を挿入することで、各PDC11に半画素精度探索データをa,cのように1画素おきに入力できるようにしている。
【0067】
また、全てのMPX12が上側の入力を選択することで、一点鎖線で囲んだ各回路ブロック22a〜22c内のPDC11bより前段のシフトレジスタは11段になる。このため、最下行を除く各行の探索データのパスでは、各PDC11内にある第3のSR303、各PDC11間に挿入されたSR13を併せて18段のシフトレジスタが直列に結ばれることになり、半画素精度探索データの2行分のデータ数に等しくなる。
【0068】
再び図7において、例えば符号化対象ブロック501と候補ブロック702とで差分絶対値を計算する場合を考えると、候補ブロック702内の画素値は縦方向に対してはaの行,iの行のように1行おきに用いられるが、半画素精度探索データは差分絶対値計算回路201にaの行、fの行、iの行の順に入力され、aの行、iの行の順ではない。そこで、行間に1行分のシフトレジスタを挿入することで、すなわち、1行あたりのシフトレジスタの数を2行分にすることで、各行のPDC11a,11bに半画素精度探索データをaの行、iの行のように1行おきに入力できるようにしている。
【0069】
これにより、最初の候補ブロックのデータが各PDC11に入力されたときから数えて、3画素分の探索データを入力すると、水平位置が同じ3個の候補ブロック(図7で言うところの候補ブロック702〜704に相当)が各PDC11に順に入力される。
【0070】
続く15画素分の探索データを入力したときには差分絶対値の合計の計算には無関係になるが、更にそれに続く3画素分の探索データを順に入力すると、先に入力された3個の候補ブロックから水平位置が1画素下がった3個の候補ブロック(図7で言うところの候補ブロック705〜707に相当)が各PDC11に順に入力される。このように半画素精度探索データを順次入力していくことで、全ての候補ブロックの探索データが各PDC11に順に入力される。
【0071】
このとき、最小値決定/動ベクトル発生回路203は、上述したような大小比較およびレジスタへの更新記憶の処理を各候補ブロックについて差分絶対値の合計が計算されるごとに行うことにより、最終的に各候補ブロックの中で最小の差分絶対値の合計を有する候補ブロックを参照ブロックとして決定する。そして、その決定した参照ブロックに対応する動ベクトルを発生して、半画素精度の動ベクトルとして外部に出力する。
【0072】
以上詳しく述べたように、本実施形態によれば、整数画素精度の動ベクトル検出部と半画素精度の動ベクトル検出部とを別々に持たず、1つの動ベクトル検出部で整数画素精度と半画素精度の動ベクトルを検出することができる。
【0073】
本実施形態の動ベクトル検出装置は、H.261やMPEG1、2の符号化方式のシステムにも適用可能であるが、H.263やMPEG4の符号化方式のシステムに適用した場合に特に有利である。それは、従来例で述べたように、H.261やMPEG1、2の符号化方式ではデータ量の多い画像データをそのまま符号化するため、符号化処理に時間がかかる。そのため、整数画素精度の動ベクトル検出部と半画素精度の動ベクトル検出部とを別々に持ち、パイプライン的に処理することによって処理時間を短くする必要がある。
【0074】
これに対して、H.263やMPEG4では、通信についての共通中間フォーマットであるCIFに対して縦横の画素数を1/2に間引いたデータ量の少ないQCIFを単位として符号化を行うので、パイプライン処理によって符号化処理の高速化を図る必要性に乏しい。したがって、本実施形態のように、1つの整数/半画素精度動ベクトル検出部102を整数画素精度と半画素精度とで使い回すようにしても、全体の符号化処理時間がそれほど長くなることはない。
【0075】
なお、以上の実施形態では、説明の簡略化のために符号化対象ブロックが縦横4画素で、整数画素精度の探索範囲が符号化対象ブロックを中心にして縦横±4画素の範囲の場合について述べたが、本発明はこれに限定されない。従来例で述べたように、H.263やMPEG4では実際には符号化対象ブロックは縦横16画素で構成されるので、PDC、MPXおよびSR等をその数に応じて構成すれば良い。
【0076】
また、本実施形態において、半画素精度動ベクトルの検出の探索範囲を広げたい場合は、一点鎖線で囲んだ各回路ブロック22a〜22c内の3段シフトレジスタ15の段数を、0.5画素の拡張に対して1段増やすことで対応することが可能である。
【0077】
なお、本発明においては図1で示した構成の他に、他の実施形態として図8に示す構成をとっても良いものである。
すなわち、図8において図1と異なるところは、整数画素精度探索データ用メモリ103および第3の読み出し部106cがないことであり、第2の読み出し部106bにおいて第2のフレームメモリ105bを整数/半画素精度それぞれの場合に応じて読み出せばよいものである。その他の構成は図1と同じであるので、説明は省略する。
【0078】
【発明の効果】
本発明は上述したように、符号化の方式がH.263またはMPEG4のシステムにおいて、整数画素精度の探索範囲内の画素値か、これらの画素値から生成された半画素精度の画素値かの何れかを選択する選択手段と、選択手段により選択された何れかの画素値を用いて動ベクトルを検出する動ベクトル検出手段とを設けたので、1つの動ベクトル検出手段を用いて、整数画素精度の動ベクトルと半画素精度の動ベクトルとを求めることができるようになり、上記2種類の動ベクトルをより簡単な構成で求めることができる。
【図面の簡単な説明】
【図1】本発明による動ベクトル検出装置の一実施形態を示す要部構成図である。
【図2】図1に示した整数/半画素精度動ベクトル検出部の構成図である。
【図3】図2に示した画素毎の差分絶対値計算回路(PDC)の構成図である。
【図4】動き補償フレーム間予測および動ベクトルを説明するための図である。
【図5】動ベクトルを検出する方法の1つであるブロックマッチング法を説明するための図である。
【図6】半画素精度の動ベクトルを説明するための図である。
【図7】半画素精度の動ベクトルを検出する方法を説明するための図である。
【図8】他の実施形態による動ベクトル検出装置の要部構成図である。
【符号の説明】
11a,11b PDC
12a,12b MPX
13 SR
14 8段シフトレジスタ
15 3段シフトレジスタ
101 マルチプレクサ
102 整数/半画素精度動ベクトル検出部
103 整数画素精度探索データ用メモリ
104 半画素補間部
105a,105b フレームメモリ
106a〜106c 読み出し部
107 制御回路
201 差分絶対値計算回路
202 合算回路
203 最小値決定/動ベクトル発生回路
301〜303 SR
304 計算回路
Claims (2)
- 符号化の方式がH.263またはMPEG4のシステムにおいて用いる動ベクトル検出装置であって、
整数画素精度の動ベクトルを求めるための探索範囲内の画素値から、各画素間のデータを補間することで半画素精度の画素値を生成する半画素補間手段と、
上記半画素補間手段により生成された半画素精度の画素値か上記整数画素精度の画素値かの何れかを選択する選択手段と、
上記選択手段により選択された整数画素精度あるいは半画素精度の何れかの画素値と符号化対象ブロック内の画素値とを用いて動ベクトルを検出する動ベクトル検出手段と、
上記選択手段および上記動ベクトル検出手段を所定の制御信号により制御する制御手段とを備え、
上記半画素補間手段は、上記整数画素精度の動ベクトルを求めるための探索範囲内の画素値を保持しておき、上記動ベクトル検出手段で検出された整数画素精度の動ベクトルに基づいて、上記保持した前記整数画素精度の動ベクトルを求めるための探索範囲内の画素値における該動ベクトルに対応する参照ブロック内の画素値とその周辺の画素値とから上記半画素精度の画素値を補間生成することを特徴とする動ベクトル検出装置。 - 上記動ベクトル検出手段は、
上記符号化対象ブロック内の各画素値と、上記選択手段により選択された整数画素精度あるいは半画素精度の探索範囲中で参照ブロックの候補となるブロック内の各画素値との差分絶対値を計算する各画素毎の差分絶対値計算手段と、
上記各画素毎の差分絶対値計算手段に対して上記整数画素精度の各画素値が入力されるように遅延処理を施すか、上記半画素精度の各画素値が入力されるように遅延処理を施すかを切り換える切り換え手段と、
上記切り換え手段の切り換えにより得られる整数画素精度あるいは半画素精度の各画素値を用いて上記差分絶対値計算手段により求められた各画素毎の差分絶対値を合算する合算手段と、
上記合算手段による計算結果に基づいて上記参照ブロックを決定し、動ベクトルを求める動ベクトル発生手段とを備え、
上記切り換え手段が上記制御手段より与えられる所定の制御信号により制御されることを特徴とする請求項1に記載の動ベクトル検出装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP35700596A JP4570700B2 (ja) | 1996-12-26 | 1996-12-26 | 動ベクトル検出装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP35700596A JP4570700B2 (ja) | 1996-12-26 | 1996-12-26 | 動ベクトル検出装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH10191358A JPH10191358A (ja) | 1998-07-21 |
JP4570700B2 true JP4570700B2 (ja) | 2010-10-27 |
Family
ID=18451890
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP35700596A Expired - Lifetime JP4570700B2 (ja) | 1996-12-26 | 1996-12-26 | 動ベクトル検出装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4570700B2 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113099231B (zh) * | 2021-03-23 | 2022-12-20 | 北京百度网讯科技有限公司 | 确定亚像素插值位置的方法、装置、电子设备和存储介质 |
-
1996
- 1996-12-26 JP JP35700596A patent/JP4570700B2/ja not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
JPH10191358A (ja) | 1998-07-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6263025B1 (en) | Motion vector detecting apparatus | |
KR100413153B1 (ko) | 화상 부호화 장치, 화상 복호화 장치 및 기록 매체 | |
KR100905880B1 (ko) | 움직임 추정 방법 및 장치와, 인코딩 방법 및 인코더 | |
JPH0568155B2 (ja) | ||
KR0182058B1 (ko) | 움직임 추정을 위한 다중 해상도 순환 탐색 장치 및 그 방법 | |
JPH0795591A (ja) | ディジタル画像信号処理装置 | |
JP4570700B2 (ja) | 動ベクトル検出装置 | |
JP3175914B2 (ja) | 画像符号化方法および画像符号化装置 | |
JP4228705B2 (ja) | 動きベクトル探索方法および装置 | |
JP3513277B2 (ja) | 映像符号化装置及び映像復号化装置 | |
JP3968161B2 (ja) | 動ベクトル検出装置および記録媒体 | |
US20090148067A1 (en) | Image processing method and related apparatus for performing image processing operation according to image blocks in horizontal direction | |
JP2007151169A (ja) | 動ベクトル検出装置および記録媒体 | |
JPH08242454A (ja) | グローバル動きパラメタ検出方法 | |
KR100926440B1 (ko) | 영상부호화를 위한 블록 매칭 움직임 추정 장치 | |
US6125141A (en) | Device and method for detecting motion vectors | |
US6968011B2 (en) | Motion vector detecting device improved in detection speed of motion vectors and system employing the same devices | |
JP3698501B2 (ja) | 動きベクトル検出装置 | |
JPH10229564A (ja) | 画像符号化装置、画像復号化装置および画像符号化方法、画像復号化方法 | |
JPH1042300A (ja) | 動きベクトル検出装置 | |
JP3585628B2 (ja) | 動きベクトル検出装置 | |
JP2866321B2 (ja) | 動きベクトル探索方法および装置 | |
JP3334317B2 (ja) | 画像照合方法および装置 | |
JPH08140101A (ja) | 動き検出方法及び動き検出装置及び画像送信装置 | |
KR100420471B1 (ko) | 대상물영상의부호화방법및부호화장치 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20031209 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20061030 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20061107 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070129 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070522 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070822 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20070918 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080116 |
|
A911 | Transfer of reconsideration by examiner before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20080130 |
|
A912 | Removal of reconsideration by examiner before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A912 Effective date: 20080425 |
|
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: 20100811 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130820 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130820 Year of fee payment: 3 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
EXPY | Cancellation because of completion of term |