JPH09182088A - 動き検出システムに於けるマトリックス配列データ処理方法 - Google Patents

動き検出システムに於けるマトリックス配列データ処理方法

Info

Publication number
JPH09182088A
JPH09182088A JP8325689A JP32568996A JPH09182088A JP H09182088 A JPH09182088 A JP H09182088A JP 8325689 A JP8325689 A JP 8325689A JP 32568996 A JP32568996 A JP 32568996A JP H09182088 A JPH09182088 A JP H09182088A
Authority
JP
Japan
Prior art keywords
array
block
blocks
arrays
band
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.)
Pending
Application number
JP8325689A
Other languages
English (en)
Inventor
Alain Pirson
ピルソン アラン
Mohamed Daoudi
ダウディ モハメド
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Vantiva SA
Original Assignee
Thomson Multimedia SA
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Thomson Multimedia SA filed Critical Thomson Multimedia SA
Publication of JPH09182088A publication Critical patent/JPH09182088A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/223Analysis of motion using block-matching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/28Indexing scheme for image data processing or generation, in general involving image processing hardware
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10016Video; Image sequence

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Processing Or Creating Images (AREA)

Abstract

(57)【要約】 【課題】本発明は、シストリック配列へのデータの供給
を最適化することを目的とする。 【解決手段】 動き検出システムに於てマトリックス配
列でデータを処理する方法は、配列の各々が現在の画像
の画素ブロックに対して歪みを計算し、該現在の画像の
少なくとも2つの隣接ブロックに対して該計算を行うよ
うに少なくとも2つの配列を直列に配置し、それらのブ
ロックの全体に対応する参照ウィンドウを該配列の第1
の配列に画素のバンドとして供給し該直列の配列内を配
列から配列へと伝播させ、配列に供給されたバンドの最
後の部分が第1の配列に割り当てられたブロックのウィ
ンドウの一部に対応するようにブロックを配列に割り当
てかつ配列へのバンドの供給の方向を決めることを特徴
とする。本発明は特に、画像圧縮の分野に適用される。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、動き検出システム
に於て、マトリックス配列でデータを処理する方法に関
する。本発明による方法は、特に、動き補償を行うテレ
ビ画像符号化器で用いられる。マトリックス配列による
複数ブロック並列処理に関する「動き検出方法及び装
置」と題された特許出願と、本発明は共に出願されるも
のである。
【0002】
【従来の技術】画像圧縮システムの多くは、画素のブロ
ックについて処理を行うことを基本にしている。MPE
G2(Motion Picture Expert Group )に於ては、画像
は8x8画素のブロックに分割され、4つのブロックが
纏められて16x16画素のマクロブロックを形成す
る。ブロック或いはマクロブロックに対して種々の処理
が行われ、画像間或いは画像内での冗長性を削減する。
動き検出は、そのような処理の一つである。この処理に
おいては、過去或いは未来の画像に関して、現在の画像
の一部分が移動する際の動きを検出する。このようにし
て、動きを表現する一つ或いは複数の動きベクトルが求
められる。これらの動きベクトルを用いて、過去或いは
未来の画像に基づき現在の画像を予測することが出来
る。この予測と現在の画像との差を検出し、後段の圧縮
においてはこの差を用いる。現状では動きベクトルは、
所謂「画像間」及び「両方向」画像に対して用いられる
が、伝送エラーの影響を削減するために所謂「画像内」
画像に用いてもよい。
【0003】動き検出は一般に、各マクロブロックに対
して行われる。過去の画像を用いる代わりに、符号化器
に格納された参照画像を用いることも可能であり、この
参照画像は復号化器で復号化された画像に対応する(即
ち、圧縮による情報損失を含んだ画像である)。参照画
像での最良のマクロブロックを決定するためには、現在
のマクロブロックを参照画像の各マクロブロックと比較
することが行われる。マクロブロックが参照画像内で取
りうる各位置に対して誤差関数Errを計算し、これを
比較の際の基準として用いる。関数Errの最小値を与
える位置が、動きベクトルを決定する。動きベクトルの
精度は、利用可能な演算能力や、動きベクトル符号化の
ために確保される帯域によって異なる。1画素以下の精
度は、画素間内挿を行うことで達成できる。動きベクト
ルの大きさが制限されている場合には、適当な大きさの
探索ウィンドウが、現在のマクロブロック位置の周りに
配置される。
【0004】動きベクトルの計算には膨大な計算を必要
とし、その計算量は、望まれる精度、画像の解像度、動
きベクトルの頻度等の増大と共に増加する。従来用いら
れる誤差関数は、 であり、ここでi及びjはマクロブロック内の位置、m
及びnは動きベクトルの座標位置を示し、またa及びb
は各々、現在のマクロブロック画素の輝度値及びウィン
ドウ或いは探索画像の移動されたマクロブロック画素の
輝度値を示す。
【0005】関数Dは例えばD(x,y)=|x−y|
である。
【0006】
【発明が解決しようとする課題】シストリック配列に基
づいた動き検出プロセッサ及びコプロセッサが、1994年
8 月19日にトムソンコンシューマーエレクトロニクスが
出願した仏国特許出願に示されている。シストリック配
列は、現在の画素のブロックと、過去或いは未来の画像
に於ける探索ウィンドウの同じ大きさのブロックとの間
の歪みを評価する回路である。シストリック配列は、現
在のブロックを格納する格納要素を有し、これら現在の
ブロックが参照ウィンドウにおける同一の大きさのブロ
ックと比較される。参照画像のブロックは、シストリッ
ク配列に画素のバンドとして供給され、配列内部を一列
毎に伝播していく。
【0007】コプロセッサの種々のシストリック配列
が、様々な動作モードにおいて用いられる。特に、直列
接続の複数のシストリック配列を、異なった現在のブロ
ックを処理するように構成することが出来る。本発明の
目的は、シストリック配列へのデータの供給を最適化す
ることである。
【0008】
【課題を解決するための手段】本発明に於ては、動き検
出システムに於てマトリックス配列でデータを処理する
方法は、配列の各々が現在の画像の画素ブロックに対し
て歪みを計算し、該現在の画像の少なくとも2つの隣接
ブロックに対して該計算を行うように少なくとも2つの
配列を直列に配置し、それらのブロックの全体に対応す
る参照ウィンドウを該配列の第1の配列に画素のバンド
として供給し該直列の配列内を配列から配列へと伝播さ
せ、配列に供給されたバンドの最後の部分が第1の配列
に割り当てられたブロックのウィンドウの一部に対応す
るようにブロックを配列に割り当てかつ配列へのバンド
の供給の方向を決めることを特徴とする。
【0009】ある実施例においては、参照ウィンドウ
は、現在のブロックの位置を略中心としており、従って
隣接する2つのブロックのウィンドウは1ブロックだけ
ずれている。ある実施例においては、異なったウィンド
ウは同一の大きさを有し、異なった配列によって計算さ
れた歪みの最初の結果が同時に得られるように、配列へ
のブロックの割り当て及び配列へのバンドの供給方向が
決定される。
【0010】ある実施例においては、水平方向に隣接す
る第1のブロックと第2のブロックは各々、この順番で
直列に配置された第1の配列及び第2の配列によって処
理され、第2のブロックに対するウィンドウに一致する
バンドの部分が最初に供給されるように画素のバンドは
第1の配列の方向から供給される。ある実施例において
は、画素のバンドの終端があるブロックを処理している
配列では考慮する必要のない参照ウィンドウ部分に対応
するときであっても、該ウィンドウ部分に対応するデー
タから求めた計算結果を考慮することで、該配列が処理
するブロックに通常に対応する参照ウィンドウを広げ
る。
【0011】本発明の他の特徴及び利点は、添付の図面
に示される限定を意図しない実施例を説明することによ
って、明らかになるであろう。
【0012】
【発明の実施の形態】本発明の動き検出プロセッサの一
例を、まず最初に説明する。更に、各動きベクトルに対
する誤差を計算する要素であるコプロセッサを、より重
点的に説明する。MPEG標準の画像圧縮に於ける動き
ベクトルに関する更なる情報については、「Informatio
n technology, Generic coding of moving pictures an
d associated audio」1993年11月のH.262 勧告ISO/IEC1
3818-2(ビデオ)委員会草案を参照されたい。
【0013】動き検出プロセッサを用いることで、MP
EG標準の要求に応じた様々なタイプの動きベクトルを
計算することが可能である。即ち、フレーム或いは画像
に対するベクトル、過去の画像から現在の画像へのベク
トル(前向きベクトル)或いは未来の画像から現在の画
像へのベクトル(後向きベクトル)等を計算することが
出来る。そこで説明を簡潔にするために、過去の画像か
ら現在の画像へのベクトル(前向きベクトル)を例とし
て用いる。勿論、本発明はここに示される実施例に限定
されるものではない。
【0014】図1は、動き検出プロセッサ101を機能
的に示す。プロセッサ101は、RISC(Reduced In
struction Set Computer)コントローラ102、シスト
リック配列コプロセッサ103、画像を読み込むための
3つの独立な入力ポート104、105、及び106、
動きベクトルを出力する出力ポート107、更にローカ
ルRAM及びローカルROM(各々108及び109で
参照される)。
【0015】複数の独立な入力ポートを設けることで、
それだけの数の独立ビデオ源に対応できる。変形例に於
ては、各入力ポートには、階層的動き検出を実現するた
めにサブサンプリング回路が設けられる。上記の種々の
要素はデータバス111を介して通信し、このデータバ
ス111は他の要素及び外部DRAMメモリ110に接
続される。メモリ管理ユニット112は、ローカルメモ
リ間のデータ転送を行う。画像(参照画像或いは現在の
画像)に対応するデータは、DRAMメモリ110に転
送される。このデータはその後読み出され、処理に間に
合うようにコプロセッサ103に渡される。コプロセッ
サ103によって計算された動きベクトルは、バッファ
メモリMVBUF114を介してDRAMメモリ110
に送られる。それらのベクトルは、適宜都合の良いとき
に読み出され、出力ポート107から送出される。
【0016】プロセッサ101はまたマイクロプロセッ
サインターフェース115を備えており、これはコード
及び計算パラメータを読み込んで、RISCコントロー
ラ102をプログラムして設定するために用いられる。
DRAMメモリ110に格納された動きベクトルはま
た、インターフェース115を介してアクセスすること
が出来る。
【0017】ユニットMAX−AVR113は、各画像
に対して平均動きベクトルと最大動きベクトルを計算す
る。RISCコントローラ102は、この実施例におい
ては、64個のレジスタと64ワードのデータメモリを
含む19ビットのプロセッサである。コントローラ10
2の役割は、プロセッサ101の様々なユニットからの
要求を処理し、それらのユニットを適宜動作させること
である。
【0018】RISCコントローラ102はローカルR
AM108とローカルROM109に接続され、ローカ
ルROM109は共通使用のルーチンを格納する。コプ
ロセッサ103は複数のシストリック配列を含み、これ
らの配列はプログラムされた設定に応じて並列或いは直
列に動作する。以下に於て、まず単一のシストリック配
列の動作について説明する。この説明によって、本実施
例に於ては8つの配列を統合したコプロセッサ103の
動作をより良く理解できるであろう。
【0019】図2(A)は、シストリック配列に於ける
情報の流れの最も単純な場合を示す。この配列の基本的
機能は、現在の画素ブロックと参照ウィンドウの内容と
を比較することである。現在のブロックは、シストリッ
ク配列201に格納される。可能な全ての位置に対し
て、誤差関数Errが計算される。要素202は、一つ
の現在のブロックに対して、探索ウィンドウから抽出さ
れる複数の異なったブロックに関する複数の誤差関数の
値を基にして、最も適切なベクトルを一つ決定する。こ
の要素については、後に詳しく説明する。
【0020】図2(B)は、シストリック配列に供給さ
れるバンドを決定する処理を示す。各バンドは複数のピ
クセル行からなり、この行の数は配列の並びの数(本実
施例では4)に一致する。第1のバンドは、参照ウィン
ドウの最初の4つの行を含む。この第1のバンドの処理
が終了すると、処理は次のバンドに対して続行される。
この次のバンドは、第1のバンドの最後の3つの行と、
第1のバンドの直後の行を含む。従って各バンドは、直
前のバンドに対して1行だけずれることになる。
【0021】各バンドは、シストリック配列に一列毎に
供給される。これにより各バンドと同じ数の行を有する
現在のブロックは、各バンドの同一サイズの全てのブロ
ックと比較される。最終的には、現在のブロックは、参
照ウィンドウの同一サイズの全ブロックと比較されるこ
とになる。誤差関数の値がその数分だけ計算されて、要
素202に伝送される。
【0022】2つのバンドは、画素1行だけ異なること
に注意すべきである。この冗長性を後の処理で利用し
て、メモリ10からのデータの読み出し量を制限する。
図3は、4行5列のシストリック配列を示す。この配列
は、所謂「S」セルと、バッファBと、加算器Add
と、バイパスセル301と、最終バイパスセル302を
含む。
【0023】Sセルは、|a−b|の計算を行う。ここ
でa及びbは各々、現在のブロックの画素値と、参照ウ
ィンドウの画素値である。同一行の各Sセルの出力は、
次のSセルの入力にバッファBにより接続される。バッ
ファBはまた、各行の第1のSセルの前に配置される。
画素値bは、同一行に於てあるバッファから次のバッフ
ァへと、各サイクル毎に伝播する。Sセルが計算を実行
する間、バッファは値bを保持する。
【0024】各Sセルはまた、演算|a−b|の結果を
転送する出力Cを有する。出力Cは、同様にバッファB
に結合される。同一列のバッファBの全ては、一つの加
算器Addに接続される。従って、列の数と同じ数だけ
の加算器が存在する。加算器の出力は、直列に接続され
た3つのバッファBによって次の加算器の入力に接続さ
れる。選択された動作モードに応じて、これら3つのバ
ッファの最後のバッファを、バイパスセル301により
短絡する。
【0025】最終バイパスセルは、インターレースでな
い通常の動作に於ては各サイクル毎に誤差関数の値を送
出し、インターレースモードに於ては2サイクル毎に誤
差関数の値を送出する。後者の場合には、この最終バイ
パスセル302に組み込まれた加算器が、連続する2つ
の誤差関数同士を加算する。変形例においては、加算器
Addは、3入力のキャリー保持加算器として実現され
る。
【0026】図4は、Sセルの機能をより詳細に示す。
Sセルは、入力401と、入力401に直接につながる
出力402と、2つの入力を処理する計算ユニット40
3を含み、この2つの入力のうちの一つは入力401に
接続され、もう一方はマルチプレクサ404の出力に接
続されることによって、選択線405によりバッファ4
06の内容かバッファ407の内容の何れかを選択する
ことが出来る。バッファ406及び407の入力は、セ
ルの入力401に接続される。
【0027】これら2つのバッファの各々は、現在のブ
ロックの画素値を含む。それらの値は、入力401から
適宜読み込まれる。バッファの制御回路は通常のもので
あるので、詳細な説明はしない。2つのバッファが並列
に存在していることによって、例えば、単一のシストリ
ック配列に2つの現在ブロックを同時に格納することが
出来る。従って、参照ウィンドウのある位置に対して、
2つの比較を行うことが出来る。DRAMメモリ10及
びコプロセッサ3の間を転送されるデータ量を、このよ
うにして削減することが出来る。
【0028】各Sセルに2つのバッファを設けることに
よって更に、所謂インターレース動作を行うことが可能
となり、これによって、シストリック配列の行数に対し
て現在のブロックの行数を2倍にすることが出来る。こ
の動作については、後ほど説明する。計算ユニットは、
その入力に与えられた2つの値の差の絶対値を出力す
る。
【0029】この実施例に於て、参照ウィンドウの画素
値bはSセルの間のバッファBに格納され、一方、現在
のブロックの画素値aはSセルのバッファに格納される
ことに注意すべきである。また、Sセルが生成した中間
結果を加算していく機能は、Sセルの各列の下にある加
算器が実行することに注意すべきである。
【0030】シストリック配列の通常動作(非インター
レース動作)を、図5の単純な例を用いて説明する。こ
の例に於ては、シストリック配列は1つの行と8つの列
からなる。行数がこれより多い配列の動作は略同様であ
り、各Sセルの出力結果(出力S)が加算器と同一のタ
イミングで提供される。通常動作においては、2つのバ
ッファだけが、列の終わりの各加算器の間に必要とな
る。例を簡潔にするために、第3のバッファ及びバイパ
スセルは図示されない。
【0031】画素値aは、配列に既に格納されている。
値bは、各サイクル毎に配列の入力に供給される。表1
に、複数のサイクルに渡っての出力Cの様子を示す。
【0032】
【表1】
【0033】サイクル0の間に、値b0が、配列の入力
に於ける第1のバッファB(参照番号501)に格納さ
れる。サイクル1になって始めて、第1のSセルの結果
が、出力C0のバッファ502に格納される。サイクル
1の間に、値b0が同様に第2のバッファB503に格
納される。配列の動作の任意の時点において、参照ウィ
ンドウ内の現在ブロック(この例では8画素の行)の位
置に対応する差の絶対値の総和が、最後の加算器の出力
から得られる必要がある。参照ウィンドウの第1行に対
して加算器レベルで加算されるべき結果が、この表にお
いては太文字で示される。
【0034】この加算機能を考えることによって、加算
器間のバッファ504の遅れの適切な値を決定すること
が出来る。加算器のレベルに於て結果の伝播が適切に行
われるためには、2サイクルの遅れが必要であることが
容易にわかる。これによって、何故2つのバッファが加
算器間に設けられているのが説明される。各バッファ
は、1サイクルの遅れをもたらす。別の言い方をすれ
ば、最初の2つの加算器の間のバッファ504及び50
5は、バッファ501及び502による遅れを相殺す
る。
【0035】15番目のサイクルの終わりに、現在のブ
ロックの第1の位置に対する関数Errの値が、配列の
出力506に与えられる。このように動作するとき、各
Sセルに格納される2つの値aのうちで、一つだけが用
いられることに注意すべきである。変形例においては、
現在のブロックの画素値を格納する唯一つのバッファ
が、各Sセルに設けられる。
【0036】図6及び表2は、所謂インターレースモー
ドにおけるシストリック配列の動作を示す。このモード
を用いることによって、シストリック配列の行数の2倍
の行数を含む現在ブロックに対して、誤差関数を求める
ことが可能になる。各Sセルに付加的なバッファを加
え、また各加算器の間にも付加的なバッファを加えるこ
とで、これを実現することが出来る。
【0037】図6は図5と同様であるが、付加的なバッ
ファが各加算器の間に挿入されることが異なる。更に、
各Sセルは、図4に示される2つの内部バッファを含
む。偶数サイクルの間は、各Sセルの第1のバッファの
内容が対応する計算ユニットに選択供給され、奇数サイ
クルの間は、第2のバッファの内容が用いられる。2倍
の大きさの現在ブロックは、垂直に重ねられた2つのサ
ブブロックa及びa’に分離される。第1のサブブロッ
クaは、各Sセルの第1のバッファに格納され、第2の
サブブロックa’は、各Sセルの第2のバッファに格納
される。
【0038】参照ウィンドウのバンドは、同じように2
倍の数の行を含む。上部サブバンドbと下部サブバンド
b’が含まれる。偶数サイクルの間は、サブバンドbの
列がシストリック配列の入力に供給され、奇数サイクル
の間は、サブバンドb’の列が供給される。表2に、各
サイクル終了時の出力Cの様子を示す。前と同様に、サ
ブブロックに対応する誤差関数を求めるために加算すべ
き中間結果を、太字で示す。
【0039】2つのサブブロックと2つのサブバンドと
を交代させることによって、非インターレース動作の場
合と比較して、加算器の出力に現われるある位置に対応
する誤差の和と、次の加算器の入力に対応する中間結果
との間に1サイクルの更なる遅れが現われる。このため
に、各加算器の間に第3のバッファが挿入される。図6
の配列の最後の加算器601は、一方が加算器602の
第1の入力に接続され、他方がバッファ603に接続さ
れる。バッファ603の出力は、加算器602の第2の
入力に接続される。
【0040】サブブロックに対応する誤差関数は、(配
列が正しく初期化されたなら)各サイクルにおいて加算
器601の出力に供給される。サブブロックa’に対応
する誤差関数値は、サブブロックaに対応するものに対
して1サイクル遅れることが、表2に示される。これら
2つの値が、完全なブロックa+a’に対応する誤差関
数値を求めるために、加算される必要がある。第1のサ
イクルの間に、aに対応する値がバッファ603に格納
される。次のサイクルにおいて、ブロックa’に対応す
る値が、加算器601の出力に供給される。加算器60
2が加算を実行する。従って2サイクル毎に、加算器6
02の出力に正しい結果が現われることになる。
【0041】この所謂インターレースモードの動作は極
めて有用であり、何故なら、画素のバンドをコプロセッ
サに伝送するデータバスの大きさを削減することが可能
になるからである。変形例において、シストリック配列
は、配列の行数のN倍の行数からなる現在ブロックを処
理するように設計され、ここでNは2より大きな整数で
ある。この場合、必要なだけのバッファが各Sセルに用
意される。
【0042】
【表2】
【0043】図7は、本実施例の第1の変形例によるコ
プロセッサの概略を示す。この変形例においては、コプ
ロセッサは、10個の先読み先出しスタック(FIFO
スタック)701乃至710を含み、これらはデータバ
ス11に並列に接続される。1つのFIFOあたりのデ
ータワード数によって、探索ウィンドウの画素の列数が
決定される。スタック701乃至710の出力は、スイ
ッチ回路712に接続され、このスイッチ回路712は
10個の入力と8個の出力714乃至721を有する。
【0044】回路712によって、10個のFIFOの
任意の一つの出力を、回路の8個の出力の任意の一つに
繋げる事ができる。各FIFOは、探索ウィンドウの1
行の全てを含む。ある時点で出力に結合される8個のF
IFOは、処理される探索ウィンドウのバンドの行に対
応する。結合されてない2つのFIFOには、メモリ1
0に格納されたデータが、データバスを介して読み込ま
れる。読み込まれるデータは、現在処理されるバンドと
は異なる探索ウィンドウの行に対応するものである。
【0045】例えば、探索ウィンドウの8行L1乃至L
8からなる第1のバンドが、FIFO701乃至708
に格納されるとする。これら8行の処理中に、行L9が
FIFO709に読み込まれる。第1のバンドの処理が
終了すると,FIFO701に格納される行L1は無用
になる。実際のところ、第2のバンドは行L2乃至L9
を含む。従って、バンドの全体がFIFOに格納されて
いるので、この第2のバンドの処理はアイドル時間中に
開始される。「クロスオーバー」型のスイッチ回路80
2は、シストリック配列722乃至725に供給する前
に、格納された行の順番を正しい順に並べ直す。
【0046】バンドが8個の行を含む場合には、9個の
FIFOがあれば、上述の動作のためには十分である。
10番目のFIFOは、4行からなる2つのバンドを並
列に処理する場合等に用いられる。本変形例において
は、4行16列の4つのシストリック配列722乃至7
25が、スイッチ回路の出力に結合される。習慣に従っ
て、出力714が8行のバンドの一番上の行に対応し、
出力721が一番下の行に対応するものとする。第1及
び第3の配列(722及び724)が、4つの上部出力
714乃至717に結合され、一方、第2及び第4の配
列(723及び725)が、4つの下部出力718乃至
721に結合される。
【0047】上述の構成によって、異なったサイズの現
在ブロックを、柔軟な形で処理することが出来る。4つ
の配列は実際、異なった形に考えることが出来る。即
ち、4x8要素の8個の配列であり、4x16要素の各
配列は4x8要素の現在ブロックを2つ処理する;8x
8要素の4個の配列;8x16要素の2個の配列;及び
16x16要素の2個の配列。
【0048】後者の場合、配列はインターレースモード
で動作し、16個ではなく8個の出力のみが使用でき
る。8個の出力は、参照ウィンドウの上部バンドの8つ
の画素列と、下部バンドの8つの画素列を交互に送出す
る。当然ながら、(次の行を読み込むためのFIFOは
除いて)8個ではなく16個のFIFOを用いることが
考えられる。
【0049】前述のように、FIFOの深さが参照ウィ
ンドウの幅を決定する。4x8要素のFIFOを用いる
場合、FIFOをペアにグループ化して、各FIFOの
ペアに2倍の長さ分の画素行を格納することが出来る。
図7には更に、4x16要素の各配列の出力において、
動作モードに応じて計算結果をグループ化する様子が矢
印で示される。
【0050】図8は、第2の変形例を示す。9つのFI
FO(参照番号801として纏められる)がスイッチ回
路802に出力を供給する。この例においてコプロセッ
サは、4x8要素の8つのシストリック配列803乃至
810を含む。実際のところ、図8の2つの接続された
4x8配列は、図7の1つの4x16配列に等価であ
る。図8は、4x8要素の8つの現在ブロックが並列に
処理される際の各配列からの計算結果の流れを、より分
かり易く示す。上部配列803及び804を例として説
明する。配列803の出力の最終結果(即ち誤差関数の
値)が、配列804に直接に伝送される。4x8の8つ
の現在ブロックであるか8x8の4つの現在ブロックで
あるかに応じて、配列803の出力の結果が後の処理で
必要であるか否かが決まる。4x8の8つの現在ブロッ
クを処理する場合、この結果は、配列803で処理され
る現在ブロックに対して動きベクトルを求めるために必
要である。
【0051】本変形例においては、セルMは、4x8要
素の配列の各々に対応付けられる。各セルMは、ブロッ
クに対応する全ての誤差値から、配列の一つによる誤差
関数出力の最小値を決定し、対応する動きベクトルの座
標値をメモリに保持する。結果は専用データバス811
を介して通信される。配列803及び804、807及
び808の出力は各々が、2入力のマルチプレクサの入
力に接続され、その出力は対応するセルMの入力に接続
される。それらの配列の各々の出力は更に、2入力加算
器の入力に接続され、加算器の他方の出力は、すぐ下に
ある配列からの出力を受け取る。配列803、804、
807、及び808は、各々、配列805、806、8
09、及び810からの出力を受け取る。
【0052】プロセッサが4x8画素の8つの現在ブロ
ックを処理するとき、各配列の出力は対応するセルMに
直接に接続される。各セルMは、誤差関数の最小値及び
動きベクトルを自己充足的なやり方で求める。結果とし
て8つの個別のベクトルが得られる。配列803、80
5、807、及び809の誤差関数出力値は、直列に後
続する配列には転送されない。
【0053】プロセッサが8x8画素の4つの現在ブロ
ックを処理するとき、マルチプレクサは切り替えられ
て、同一のブロックを処理する2つの配列が計算した誤
差関数値の和が、それら2つの配列に対応する一つのセ
ルMに供給される。例えば配列803に対応するセルM
は、配列803及び805が処理する8x8のブロック
に対応する誤差関数値を基にして、計算を行う。一つの
ベクトルが結果として得られる。前段落の場合と同様
に、配列の第1列からの誤差関数値は、第2列には転送
されない。
【0054】プロセッサが8x16画素の2つのブロッ
クを処理する場合、配列804及び808に対応するセ
ルMだけが用いられる。4x8の配列の対、803及び
804、805及び806、807及び808、更に8
09及び810は、単に4x16の大きさの連続的な配
列を形成するものと見做される。例えば配列804に対
応する加算器は、配列804及び806からの誤差値を
加算する。配列803及び805が計算した誤差関数値
は、配列804及び806が計算した誤差関数値に含ま
れるものであり、配列803と804の間及び配列80
5と806の間の結合を介して後ろの配列に転送され
る。
【0055】この原理は、インターレースモードの場合
も同じである。簡単に言えば、一つ或いは複数のセルM
は、各ブロックに対して一つずつ、計2つの動きベクト
ルを格納する。図1のコントローラ2が、選択された動
作モードに応じて、マルチプレクサの切り換えを指示す
る。
【0056】図9は、2つの現在ブロックが処理される
際の2つの参照ウィンドウの配置を示す。それらの現在
ブロックは、参照番号1及び2で示される。X1Min
及びX1Maxは、ブロック1に対応する参照ウィンド
ウの横軸座標を示し、X2Min及びX2Maxは、ブ
ロック2に対応するウィンドウの横軸座標を示す。ブロ
ック1及び2の位置は、この例においては、ウィンドウ
の略中間にある。2つのウィンドウは、横軸座標X2M
in及びX1Maxの間にある部分を全て共有すること
が分かる。
【0057】シストリックコプロセッサを用いることに
よって、ブロック1及び2に関する計算をするために、
横軸座標X1Min及びX2Maxの間にある画素を唯
一度転送するだけで処理が可能になる。前述のように、
(例えば2つの配列803及び804のような)直列の
2つのシストリック配列は、2つの別のブロックを処理
することが出来る。画素データは、ある配列から次の配
列へと明確な形で受け渡されるのに対して、第1の配列
が計算した誤差関数値は、単純に次の配列に転送される
わけではない。第1及び第2の配列に対応する2つのセ
ルMは、それら2つの配列の各々に対応する誤差関数値
を別々に格納する。
【0058】図10は、直列の2つのシストリック配列
に画素データを供給するときの配置の第1の例を示す。
横軸座標X1Min及びX2Maxの間に位置する画素
の上部バンドが図に示される。A及びBは、現在ブロッ
クと比較される2つの参照ウィンドウの第1のブロック
の位置を示し、データが配列に供給される様子を示す。
【0059】ブロック1を第1のシストリック配列(例
えば配列803)で処理して、ブロック2を第2の配列
(例えば804)で処理することが自然にみえる。従っ
てこの配置は、現在画像におけるブロック1及び2の自
然な配置に一致する。更に、一つのブロック1或いは2
の大きさに対して2倍の大きさのブロックを、(別の動
作モードにおいて)2つの配列が直列に処理する場合に
も、この配置は全く自然である。
【0060】しかしながらこの配置は、図11に示され
以下に説明される発明の方法に関しては不利である。表
1を見れば分かるように、8画素の長さの配列の場合、
第1の参照ブロックの最後の列に対しては、サイクル1
5になって初めて計算が実行される。図10の配置で考
えた場合、ブロックA及びブロック1に対する計算はサ
イクル15の後に終了する。ブロック2及びBに対応す
る計算は、ブロックBが第1の配列を通過したサイクル
17において初めて開始される。
【0061】従って、第1の配列からの(ブロックAに
対応する)最初の有効な結果は、第2の配列からの(ブ
ロックBに対応する)最初の有効な結果とは同時には得
られないことが分かる。従って2つの配列の各々からの
結果を並び変える管理が必要になり、システムがより複
雑になる。
【0062】更に、図10のブロックCが完全に第1の
配列内に入るまで、配列内でバンドを通過させる必要が
ある。従って、2 x (X2Max - X1Min + X2Min - X1Min)
だけのサイクルが、全バンドを処理するために必要にな
る。ブロックCが第2の配列に入っていく間、第1の配
列は不要な計算をすることになり、また逆に、ブロック
Bの画素の最初の列が第1の配列を通過してくるまで、
第2の配列は不要の計算をすることになる。変形例にお
いては、バンドを一つずつ間隙なくシストリック配列に
挿入して、画像の全てのバンドを連続的に処理すること
によって、この問題の影響を最大限に抑さえる。
【0063】図11は、本発明による方法の一例を示
す。現在画像とは逆の配置で2つのブロック1及び2が
格納される。この例では、ブロック2は第1の配列に格
納され、ブロック1は次の配列に格納される。従って、
ブロックAは第2の配列で処理されるのと同時にブロッ
クBは第1の配列で処理され、同じバンドに対する結果
は両方のブロックに対して同時かつ並列に得られる。ブ
ロックAの画素の最初の列が第2の配列に到達していな
い間は、2つの配列が実行する計算は、(前のバンドの
計算が終了する直前ではあるけれども)不要なものであ
る。しかしながら、ブロックCは第1の配列でのみ処理
されるので、ブロックCがこの第1の配列を完全に通過
するまで待つ必要がない。従って連続的にバンドを供給
することを考えた場合、バンド毎、或いは画像毎に、一
つのブロック(16サイクル)分に対応する処理時間の
節約になる。
【0064】本発明の変形例においては、ブロックAに
対応する画素に関するものであっても、第1の配列から
送出される結果は全て用いられる。従って、ブロック2
の位置に関して参照ウィンドウが非対称になる。この非
対象性が問題でないかぎりは(検出された動きベクトル
の最大振幅は正方向と負方向とで等しい大きさとならな
いが)、このような構成は全体の計算時間を増加するこ
となく参照フィールドを広げることが出来る。この構成
は、バンドの先頭に適用すると同様に、終端にも適用す
ることが出来る。しかしながらこの場合、2つのブロッ
クに対する結果が同時に得られるという利点は失われ
る。
【0065】図10の配置に対してブロック1及び2を
逆にすることは、図10の配置をそのままにして、画素
のバンドを逆方向にして供給することと同じである。即
ち、横座標X2Maxの画素から開始して、横座標X1
Minの画素で終了する。この場合、現在のブロック1
及び2の各々において、画素を逆転しておく。この実施
例は図12に示される。
【0066】本発明は、此処に説明されたシストリック
配列の例に限定されることなく、動き検出のためのほか
の配列にも適用することが出来る。更に、2つ以上の配
列を直列に配置することが出来る。
【図面の簡単な説明】
【図1】動き検出プロセッサの機能的構造を示す図であ
る。
【図2】(A)及び(B)は、実施例に従って用いる比
較手法を概略的に示す図である。
【図3】動きベクトルの計算に用いられるシストリック
配列の機能的構造を示す図である。
【図4】図3のシストリック配列の所謂Sセルの機能的
構造を示す図である。
【図5】非インターレースモードでの動作を示す単純化
されたシストリック配列の機能的構造を示す図である。
【図6】インターレースモードでの動作を示す単純化さ
れたシストリック配列の機能的構造を示す図である。
【図7】第1の変形例によるコプロセッサの機能的構造
を示す図である。
【図8】第2の変形例によるコプロセッサの機能的構造
を示す図である。
【図9】2つの隣接する現在ブロックに対応する2つの
参照ウィンドウの配置を示す図である。
【図10】直列に配置された2つのシストリック配列に
データを供給する第1の例を示す図である。
【図11】本発明の第1の実施例に従って直列に配置さ
れた2つのシストリック配列にデータを供給する様子を
示す図である。
【図12】本発明の第2の実施例に従って直列に配置さ
れた2つのシストリック配列にデータを供給する様子を
示す図である。
【符号の説明】
101 プロセッサ 102 RISCコントローラ 103 シストリック配列コプロセッサ 104、105、106 入力ポート 107 出力ポート 108 ローカルRAM 109 ローカルROM 110 外部DRAMメモリ 111 データバス 112 メモリ管理ユニット 113 MAX−AVRユニット 114 バッファメモリ 115 マイクロプロセッサインターフェース 201 シストリック配列 202 ベクトル検出要素 301 バイパスセル 302 最終バイパスセル 401 入力 402 出力 403 計算ユニット 404 マルチプレクサ 405 選択線 406、407 バッファ 501、502、503、504、505 バッファ 506 配列出力 601、602 加算器 603 バッファ 701、710 FIFO 712 スイッチ回路 714、715、716、717、718、719、7
20、721 出力 722、723、724、725 シストリック配列 801 FIFO 802 スイッチ回路 803、804、805、806、807、808、8
09、810 シストリック配列 811 専用データバス S セル B バッファ Add 加算器

Claims (5)

    【特許請求の範囲】
  1. 【請求項1】 配列(803、804)の各々が現在の
    画像の画素ブロック(1、2)に対して歪み(Err)
    を計算し、 該現在の画像の少なくとも2つの隣接ブロック(1、
    2)に対して該計算を行うように少なくとも2つの配列
    (803、804)を直列に配置し、 それらのブロックの全体に対応する参照ウィンドウを該
    配列の第1の配列(803)に画素のバンドとして供給
    し該直列の配列内を配列から配列へと伝播させ、 配列に供給されたバンドの最後の部分(C或いはA)が
    第1の配列(803)に割り当てられたブロック(2或
    いは1)のウィンドウの一部に対応するようにブロック
    (1、2)を配列に割り当てかつ配列へのバンドの供給
    の方向を決めることを特徴とする動き検出システムに於
    てマトリックス配列でデータを処理する方法。
  2. 【請求項2】 参照ウィンドウは現在のブロックの位置
    を略中心としており、隣接する2つのブロックのウィン
    ドウは1ブロックだけずれていることを特徴とする請求
    項1記載の方法。
  3. 【請求項3】 異なったウィンドウは同一の大きさを有
    し、異なった配列によって実行された歪み計算の最初の
    結果を同時に得られるように、配列へのブロック(1、
    2)の割り当て及び配列へのバンドの供給方向を決定す
    ることを特徴とする請求項2記載の方法。
  4. 【請求項4】 水平方向に隣接する第1のブロック
    (1)と第2のブロック(2)を各々、この順番で直列
    に配置された第1の配列(803)及び第2の配列(8
    04)によって処理し、第2のブロック(2)に対応す
    るウィンドウのバンドの部分が最初に供給されるように
    画素のバンドを第1の配列の方向から供給することを特
    徴とする請求項2又は3記載の方法。
  5. 【請求項5】 画素のバンドの終端が、あるブロックを
    処理している配列では考慮する必要のない参照ウィンド
    ウの部分に対応するときであっても、該ウィンドウ部分
    に対応するデータから求めた計算結果を考慮すること
    で、該配列が処理するブロックに通常に対応する参照ウ
    ィンドウを広げることを特徴とする請求項1乃至4いず
    れか一項記載の方法。
JP8325689A 1995-12-06 1996-12-05 動き検出システムに於けるマトリックス配列データ処理方法 Pending JPH09182088A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR9514432 1995-12-06
FR9514432A FR2742248B1 (fr) 1995-12-06 1995-12-06 Procede de traitement de donnees dans des reseaux matriciels dans un systeme d'estimation de mouvement

Publications (1)

Publication Number Publication Date
JPH09182088A true JPH09182088A (ja) 1997-07-11

Family

ID=9485205

Family Applications (1)

Application Number Title Priority Date Filing Date
JP8325689A Pending JPH09182088A (ja) 1995-12-06 1996-12-05 動き検出システムに於けるマトリックス配列データ処理方法

Country Status (6)

Country Link
US (1) US5870500A (ja)
EP (1) EP0778544B1 (ja)
JP (1) JPH09182088A (ja)
CN (1) CN1115880C (ja)
DE (1) DE69609931T2 (ja)
FR (1) FR2742248B1 (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3226020B2 (ja) * 1997-05-28 2001-11-05 日本電気株式会社 動きベクトル検出装置
JP3540142B2 (ja) * 1998-01-30 2004-07-07 株式会社東芝 動きベクトル検出回路および動きベクトル検出方法
US6400764B1 (en) * 1999-04-06 2002-06-04 Koninklijke Philips Electronics N. V. Motion estimation method featuring orthogonal-sum concurrent multi matching
US7233998B2 (en) * 2001-03-22 2007-06-19 Sony Computer Entertainment Inc. Computer architecture and software cells for broadband networks
JP4164257B2 (ja) * 2001-12-06 2008-10-15 キヤノン株式会社 画像処理装置、画像処理方法、プログラム、及び記憶媒体
JP2004005287A (ja) * 2002-06-03 2004-01-08 Hitachi Ltd コプロセッサを搭載したプロセッサシステム
US7817717B2 (en) * 2002-06-18 2010-10-19 Qualcomm Incorporated Motion estimation techniques for video encoding
JP3934568B2 (ja) * 2003-03-04 2007-06-20 松下電器産業株式会社 動画符号化方法および装置
CN100356780C (zh) * 2005-02-03 2007-12-19 清华大学 用于压缩视频信号解码的图像存储方法
TWI277010B (en) * 2005-09-08 2007-03-21 Quanta Comp Inc Motion vector estimation system and method
KR100856411B1 (ko) * 2006-12-01 2008-09-04 삼성전자주식회사 조도 보상 방법 및 그 장치와 그 방법을 기록한 컴퓨터로 읽을 수 있는 기록매체

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04207788A (ja) * 1990-11-30 1992-07-29 Sony Corp 画像信号符号化装置及び方法
US5198901A (en) * 1991-09-23 1993-03-30 Matsushita Electric Corporation Of America Derivation and use of motion vectors in a differential pulse code modulation system
JPH0595540A (ja) * 1991-09-30 1993-04-16 Sony Corp 動画像符号化装置
US5594813A (en) * 1992-02-19 1997-01-14 Integrated Information Technology, Inc. Programmable architecture and methods for motion estimation
WO1993023816A1 (en) * 1992-05-18 1993-11-25 Silicon Engines Inc. System and method for cross correlation with application to video motion vector estimation
JPH06205388A (ja) * 1992-12-28 1994-07-22 Canon Inc 画像符号化装置
DE69327040T2 (de) * 1993-02-22 2000-04-13 Ind Tech Res Inst Blockübereinstimmungsarchitektur mit mehreren Modulen
US5467413A (en) * 1993-05-20 1995-11-14 Radius Inc. Method and apparatus for vector quantization for real-time playback on low cost personal computers
JP3153404B2 (ja) * 1994-02-02 2001-04-09 松下電器産業株式会社 ディジタルビデオ・ビットストリームコーダ
TW321748B (ja) * 1994-02-23 1997-12-01 Rca Thomson Licensing Corp
FR2723796B1 (fr) * 1994-08-19 1996-11-29 Thomson Consumer Electronics Dispositif d'estimation de mouvement
US5596369A (en) * 1995-01-24 1997-01-21 Lsi Logic Corporation Statistically derived method and system for decoding MPEG motion compensation and transform coded video data

Also Published As

Publication number Publication date
DE69609931D1 (de) 2000-09-28
FR2742248A1 (fr) 1997-06-13
DE69609931T2 (de) 2001-03-29
FR2742248B1 (fr) 1998-01-23
CN1115880C (zh) 2003-07-23
US5870500A (en) 1999-02-09
EP0778544A1 (fr) 1997-06-11
CN1156384A (zh) 1997-08-06
EP0778544B1 (fr) 2000-08-23

Similar Documents

Publication Publication Date Title
US8594198B2 (en) Method of implementing intra prediction computation applied to H.264 digital video coding and device
US6690730B2 (en) Motion estimator
JP3101691B2 (ja) 二次元動画像の連続するピクセルを表わすデータ信号を処理するための方法および回路
US7126991B1 (en) Method for programmable motion estimation in a SIMD processor
US8441492B2 (en) Methods and apparatus for image processing at pixel rate
JPH04294469A (ja) 相関装置
US8509567B2 (en) Half pixel interpolator for video motion estimation accelerator
JPH09182088A (ja) 動き検出システムに於けるマトリックス配列データ処理方法
US5717615A (en) Method for selecting motion vectors and image processing device implementing the said method
EP0613293B1 (en) Multiple module block matching architecture
US6985528B2 (en) Apparatus and method for encoding and decoding moving picture using wavelet transformation and motion estimation
JP3676237B2 (ja) データ処理装置及び演算器
KR100437177B1 (ko) 이동량추정장치
CN101951521B (zh) 针对扩展可变块的视频图像运动估计方法
US20040247032A1 (en) Motion vector detection device and motion vector detection method
US7015975B2 (en) Image processing device with a processing unit that processes image data in units of one scan line
US6968011B2 (en) Motion vector detecting device improved in detection speed of motion vectors and system employing the same devices
Campos et al. Integer-pixel motion estimation H. 264/AVC accelerator architecture with optimal memory management
JP4101645B2 (ja) 動きベクトル検出装置,動きベクトル検出方法,プログラム,および記録媒体
US6668087B1 (en) Filter arithmetic device
KR100225690B1 (ko) 상관도 연산장치, 병렬상관도 연산장치 및 상관도연산방법
WO2023188110A1 (ja) 画像処理装置、撮像装置及び画像処理方法
JP4217408B2 (ja) フィルタ処理装置
Lai et al. A flexible high-throughput VLSI architecture with 2-D data-reuse for full-search motion estimation
JPH01265684A (ja) 動き補償フレーム間予測符号化および復号化装置

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070403

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20070702

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20070705

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20071001

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20071106

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20080205

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20080208

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20080701