JPH0879761A - 動き予測装置および動きベクトルを計算する装置 - Google Patents

動き予測装置および動きベクトルを計算する装置

Info

Publication number
JPH0879761A
JPH0879761A JP7210855A JP21085595A JPH0879761A JP H0879761 A JPH0879761 A JP H0879761A JP 7210855 A JP7210855 A JP 7210855A JP 21085595 A JP21085595 A JP 21085595A JP H0879761 A JPH0879761 A JP H0879761A
Authority
JP
Japan
Prior art keywords
buffer
values
storage means
network
block
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
JP7210855A
Other languages
English (en)
Inventor
Jean-Michel Bard
バル ジャン−ミシェル
Alain Pirson
ピルソン アラン
Phillppe Paul
ポール フィリップ
Fathy Yassa
ヤッサ ファジー
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.)
Technicolor 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 JPH0879761A publication Critical patent/JPH0879761A/ja
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/43Hardware specially adapted for motion estimation or compensation
    • 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
    • G06T7/231Analysis of motion using block-matching using full search

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (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)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

(57)【要約】 【課題】 動きベクトルを求めるためのブロックマッチ
ングプロセッサを提供すること 【解決手段】誤差関数の計算手段と、動き予測されるブ
ロックを表す値の記憶手段と、参照窓のブロックを表す
値の記憶手段と、N個の計算素子の列に対して、同時に
誤差関数の値の総和をとるM個の加算手段とを有し、こ
こでNは列の数を表し、Mは行(走査線)の数を表す。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、動きを予測し、画
素ブロックに基づいて画像圧縮システムの動きベクトル
を決定する動き予測装置および動きベクトルを計算する
装置に関する。本発明による装置はたとえば、テレビ画
像の圧縮、および現在または今後に対するMPEG(モ
ーションピクチャエキスパートグループ)の圧縮標準に
基づくシステムに用いられる。
【0002】
【従来の技術】多くの画像圧縮システムは、画素ブロッ
クを処理する。MPEGの場合、画像は8×8画素のブ
ロックに分割され、4つのブロックが組み合わされて1
6×16画素のマクロブロックになる。ブロックまたは
マクロブロックに種々の処理が行われ、画像間および各
画像内での冗長性が低減される。これらの処理の内の1
つが動き予測である。この処理は、以前のまたは今後の
画像に関する現在の画像の一部の置換を予測することで
ある。置換を決定する1つ以上の動きベクトルが求めら
れ、これらの動きベクトルにより、以前のまたは今後の
画像に基づいて現在の画像の予測を行うことができる。
この予測画像と現在の画像との差分を求め、今後の画像
の圧縮を決定するのはこの差分である。今日動きベクト
ルはいわゆる”相互”および”両方向”の画像に用いら
れるが、起こりうる送信誤りの影響を低減することを目
的として、”フレーム内符号化”画像に用いることもで
きる。
【0003】一般に動き予測は各マクロブロックに対し
て実施される。以下のこの説明では、説明を簡単にする
ために、各マクロブロックに対する単一の動きベクトル
を考察する。このベクトルは現在の画像のマクロブロッ
クに対する以前の画像から求められる。以前の画像の代
わりに、コーダに記憶された参照画像を用いることもで
き、この画像はデコーダによりデコードされた画像(つ
まり圧縮による情報の損失を考慮した画像である)に相
当する。
【0004】参照画像の”最良の”マクロブロックを求
める技術は、現在のマクロブロックを参照画像の同様の
大きさのブロックと比較することである。比較基準とし
て、参照画像のマクロブロックのそれぞれの可能性のあ
る位置に対して計算された誤差関数Errを定義する。
Err関数に対して最小の値を与える位置により、置換
ベクトルを求める。このベクトルの精度は、利用可能な
計算能力および動きベクトルのコード化のために確保さ
れたパスバンドに依存して変化する。画素の何分の1か
の精度を相互画素補間により達成することができる。動
きベクトルが長さの点で制限されるのであれば、適切な
大きさのサーチ窓は、現在のマクロブロックにより決定
された位置の周囲に置かれる。
【0005】動きベクトルの計算は強力な計算資源を必
要とし、前記計算資源は、要求精度、画像の解像度、そ
れらの周波数等とともに増加する。
【0006】通常用いられる誤差関数は次の式である。
【0007】
【数1】
【0008】ここでiおよびjは、マクロブロック内の
位置を示し、mおよびnは、動きベクトルの座標であ
り、aおよびbは、それぞれ現在のマクロブロックの画
素の輝度値、および窓またはサーチ画像の変移したマク
ロブロックの輝度値である。
【0009】関数Dをたとえば D(x,y)=|x-y| とする
ことができる。
【0010】MPEG標準に適合する画像圧縮での動き
ベクトルの利用に関してもっと多くの情報が必要であれ
ば、"Information Technology, Generic coding of mov
ingpictures and associated audio, Recommendation
H.262 ISO/IEC 13818-2(Video) committee Draft of No
vember 1993" を参照すると良い。
【0011】
【発明が解決しようとする課題】本発明の課題は、複数
の有利なアーキテクチャを有する”ブロックマッチング
プロセッサ”を提供することである。
【0012】本発明の別の課題は、上述の装置を利用す
る画像圧縮システムの動きベクトルを計算する装置を提
供することである。
【0013】
【課題を解決するための手段】本発明の課題は、本発明
によると2つの値の間の誤差関数のN列×M行の計算手
段を有し、動き予測されるブロックを表わす値のN×M
個の第1記憶手段と、参照窓のブロックを表す値のN×
M個の第2記憶手段と、N個の計算素子の列に対して、
同時に誤差関数の値の総和をとるM個の加算手段とを有
し、前記第1記憶手段の内の1つと第2記憶手段の内の
1つが前記計算手段の内の1つに接続されている、画像
圧縮システムでのブロックに基づくブロックマッチング
による動き予測装置により達成される。
【0014】本発明の実施例では前記装置は、直列に接
続されたM個のバッファ(B)から構成されるN本の行
のネットワークを有し、このネットワークにおいて参照
窓のバンドは、列毎に伝搬される。
【0015】本発明の実施例では各バッファの出力側
は、誤差関数の計算手段の入力側に接続されている。
【0016】本発明の実施例では計算手段は、バッファ
から出力された値と、動き予測されるブロックを表す値
とから誤差関数を計算する。
【0017】本発明の実施例では各計算手段の計算結果
は、バッファに記憶される。
【0018】本発明の実施例では、加算器により所与の
列のバッファに記憶された全ての結果の総和をとる。
【0019】本発明の実施例では列に対する加算結果
は、ネットワークの参照窓のブロックの伝搬を考慮した
遅延で、次の列の加算器に供給される。
【0020】本発明の実施例では前記遅延は、加算器間
に直列に接続されたバッファにより生じる。
【0021】本発明の実施例では動き予測されるブロッ
クを表す値の記憶手段は、2つの画素値を記憶し、これ
らの2つの値の内の1つが誤差関数の計算手段にマルチ
プレクサを介して供給される。
【0022】本発明の実施例ではインタレースモードに
おいて、前記2つの画素値は、所与ブロックの2つの下
側のサブブロックおよび上側のサブブロックを表し、ネ
ットワークの入力側に供給される値は、参照窓の上側の
サブバンドと下側のサブバンドを交互に表す値である。
【0023】本発明の実施例では前記装置は、これら2
つのサブブロックに対応する誤差関数の値の総和をとる
加算手段を有する。
【0024】本発明の実施例ではインタレースモードで
は、加算器の間に1計算サイクルの付加的な遅延が挿入
される。
【0025】本発明の実施例では誤差関数は、距離関数
である。
【0026】本発明の実施例ではバッファの各行は、参
照窓の行の記憶手段から供給される。
【0027】本発明の実施例では前記記憶手段は、FI
FO(先入れ先出し)のメモリスタックである。
【0028】本発明の実施例では、少なくともN+1個
の行の記憶手段があり、前記手段の内のN個がバッファ
のN本の行に接続されるとき、他の付随する記憶手段
は、行の前記N個の記憶手段に記憶された参照窓のバン
ドと、処理が直ぐ次に続くバンドとの間で異なる行に対
応する値がロードされる。
【0029】本発明の実施例では、行の記憶手段とバッ
ファから構成されるネットワークとの間のスイッチング
回路を有し、前記スイッチング回路により、行の記憶手
段を適切なバッファの行に接続する。
【0030】本発明の別の課題は、入力手段と、出力手
段と、メモリと協働する制御手段と、現在の画像の一部
および参照画像の一部の記憶手段と、前記記憶手段のア
ドレス手段と、現在の画像の一部と参照画像の一部との
誤差関数の計算手段と、前記制御手段とのインターフェ
ース手段とを有する動きベクトルを計算する装置により
達成される。
【0031】本発明の実施例では入力手段は、データバ
スを介して、画像を表すデータを前記記憶手段にロード
するのに用いられるポートである。
【0032】本発明の実施例では前記データは、読み出
されて誤差関数の計算手段に供給される。
【0033】本発明の実施例では、制御手段をプログラ
ムする手段が設けられている。
【0034】本発明の実施例では誤差関数の計算手段
は、N×M個のセルから構成されるシストリックネット
ワークが設けられている。
【0035】本発明の実施例では、少なくともN個のメ
モリから構成されるバンクを介してデータを供給され
る。
【0036】
【発明の実施の形態】本発明を添付図面を参照して詳細
に説明する。本発明による装置により、MPEG標準の
要求に関して種々のタイプの動きベクトル、つまりフレ
ームまたは画像に対するベクトル、以前の画像から現在
の画像へのベクトルまたは今後の画像から現在の画像へ
のベクトル(それぞれ”前向きベクトル”および”後向
きベクトル”として公知である)を計算することができ
る。以下の説明では、明瞭にするために前向きベクトル
の実施例を取り上げるが、明らかに本発明はこの実施例
に限定されない。
【0037】図1に、動き予測プロセッサ101のアー
キテクチャを示す。プロセッサ101はRISCコント
ローラ102(RISC="Reduced Instruction Setc
omputer ”)と、圧縮用ネットワークコプロセッサ10
3と、画像をロードするための3つの独立した入力ポー
ト104、105、106と、動きベクトルを出力する
出力ポート107と、ローカルRAM108およびロー
カルROM109とを有する。
【0038】いくつかの独立した入力ポートを設けるこ
とにより、同一の数の独立したビデオソースを処理する
ことができる。変形例では各入力ポートに、階層化動き
予測を実施するためのサブサンプリング回路を設ける。
【0039】上述の種々のサブアセンブリは、接続され
たデータバス111を介して、特に外部DRAMメモリ
110と通信する。メモリ管理ユニット112は、ロー
カルメモリ間のデータの移動を制御する。画像に相当す
るデータ(参照データまたは現在のデータ)は、ダイナ
ミックメモリ110を通過する。それからそれらは再読
み出しされ、適切な時間にコプロセッサ103に供給さ
れる。コプロセッサ103により計算された動きベクト
ルは、バッファメモリMV BUFF114を介してダ
イナミックメモリ110に送出される。適切な時間にこ
れらのベクトルは再読み出しされ、出力ポート107を
介して送出される。
【0040】プロセッサ101にはさらに、コードをダ
ウンロードしてパラメータを計算することにより、RI
SCコントローラ102をプログラムして実施形態を整
えるためのマイクロプロセッサインターフェース115
が設けられている。ダイナミックメモリ110に記憶さ
れた動きベクトルにも、インターフェース115を介し
てアクセスすることができる。
【0041】ユニットMAX−AVR113は、各画像
に対する平均の動きベクトルと、最大の動きベクトルを
計算する。
【0042】本実施例では、RISCコントローラ10
2は62個のレジスタと64個のワードデータメモリと
を有する19ビットのプロセッサである。コントローラ
102の目的は、プロセッサ101の種々のユニットか
らの要求を処理し、適切な時間にそれらを実施すること
である。
【0043】RISCコントローラ102は、ローカル
RAM108およびローカルROM109に接続され、
後者は定期的に用いられるルーチンを含んでいる。
【0044】以下の説明では、最初に単一のシストリッ
クネットワークの動作を説明する。このことにより、こ
れらのネットワークの内の8つに関連するコプロセッサ
103の動作をより良く理解することができる。
【0045】図2のaにシストリックネットワークでの
情報の流れを示す。そのネットワークの基本機能は、現
在の画素ブロックを参照窓の内容と比較することであ
る。現在のブロックはシストリックネットワーク201
に記憶される。参照窓はバンド毎にネットッワークに送
出される。誤差関数Errは、それぞれの可能性のある
位置に対して計算される。構成要素202により、誤差
関数の最小の値と対応する動きベクトルを求める。
【0046】図2のbに圧縮ネットッワークに送出され
るバンドを求める方法を示す。各バンドには、ネットワ
ークの行数に相当する数(本実施の形態では4本)のた
くさんの画素から構成される行がある。第1バンドは参
照窓の4本の最初の行を含む。第1バンドが完全に処理
された時処理は、第1バンドの内の最後から3本の行
と、第1バンドに直ぐに続く行とを含む次のバンドで継
続される。換言すると、各バンドは前のバンドに対して
1行だけシフトされる。
【0047】各バンドは、列毎にシストリックネットワ
ークに供給される。各バンドと同じ行数の現在のブロッ
クは、各バンドの同一の大きさの全てのブロックと比較
される。結局現在のブロックは、参照窓の同一の大きさ
の全てのブロックと比較される。
【0048】2つのバンドは、画素の1行だけ異なるこ
とに注意すべきである。本発明の冗長性は、メモリ11
0からのデータのローディングを制限するために以下の
ことを利用する。
【0049】図3に4本の行と5本の列から構成される
シストリックネットワークを示す。このネットワーク
は、いわゆるSセル、バッファB、加算器Add、バイ
パスセル301、最後のバイパスセル302を有する。
【0050】Sセルは、計算|a-b| を実施し、ここでa
およびbは、それぞれ現在のブロックの画素の値と参照
窓の画素の値である。所定の行の各Sセルの出力側は、
バッファBを介して次のSセルの入力側に接続されてい
る。バッファBは、行の各第1Sセルの前にも設けられ
ている。bの画素の値は、所定の線路上を各サイクルの
間に、1方のバッファから後続のバッファに移動する。
バッファは、Sセルが計算を実施する間、bの値を保持
する。
【0051】さらに各Sセルは、演算|a-b| の結果を供
給する出力側cを有する。出力側cは他のバッファBに
接続されている。(注:図3では全てのバッファは、同
一の機能を持たないがBとラベリングする。)所定の列
の全てのそのようなバッファは、同一の加算器Addに
接続されている。したがって列と同じ数の加算器が設け
られている。
【0052】加算器の出力側は、直列の3つのバッファ
Bを介して次の加算器の入力側に接続されている。演算
の選択方法として、これら3つのバッファの内の最後の
バッファを、バイパスセル301によりバイパスしまた
はバイパスしないことができる。
【0053】最後のバイパスセル302は、通常のノン
インタレース動作の各サイクルでの誤差関数の値、また
はインタレースモードでの2サイクル毎の誤差関数の値
のいずれかを供給する。後者の場合、この最後のバイパ
スセル302に一体とされた加算器により、誤差関数の
2つの連続する値を加算する。
【0054】変形例として、加算器Addを”3つの入
力側を有するキャリセーブ加算器”の形態にすることが
できる。
【0055】図4に、Sセルの機能をより詳細に示す。
Sセルには、入力側401、入力側401に直接接続さ
れた出力側402、2つの入力側を有する計算ユニット
403があり、前記計算ユニット403の一方の入力側
は、(Sセルの)入力側401に接続され、他方の入力
側は、バッファ406の内容またはバッファ407の内
容のいずれかを選択線405により選択するマルチプレ
クサ404の出力側に接続されている。バッファ40
6、407の入力側も、セルの入力側401に接続され
ている。
【0056】各2個のバッファ406、407は、現在
のブロックの画素値を記憶している。これらの値は、適
切な時間に入力側401を介してロードされる。バッフ
ァ制御回路は基本的なものであり、詳細な説明は省略す
る。並列の2個のバッファを設けることにより、とりわ
け単一のシストリックネットワークで2つの現在のブロ
ックを同時に記憶することができる。このように参照窓
の所定位置に対して2つの比較を実施することができ、
そのことによりダイナミックメモリ110とコプロセッ
サ103の間のデータの移動量が低減される。
【0057】各Sセルに2つのバッファを設けることに
より、さらにシストリックネットワークの行数に対して
現在のブロックの行数が2倍になるいわゆる”インタレ
ース”動作が可能になる。この動作は後で説明する。
【0058】計算ユニット403は、入力側の2つの値
の差分の絶対値を供給する。
【0059】この実施例では、参照窓のbの画素値がS
セル間のバッファBに記憶されるのに対して、現在のブ
ロックの画素値aはSセルのバッファに記憶されること
に注意すべきである。
【0060】Sセルにより出力された中間結果の総和を
とる機能は、専らSセルの各列の下側にある加算器によ
り実施される。
【0061】シストリックネットワークの通常動作(ノ
ンインタレース動作)を図5を参照して説明する。図5
は1本の行と8本の列とを有するシストリックネットワ
ークを示す。もっと多くの数の行を持つネットワーク動
作は全く類似のものであり、各Sセルの出力側の結果
(Sの出力)は、同時に加算器に供給される。通常動作
では、列の最後の各加算器の間に2個のバッファBがあ
れば良い。明瞭にするため、第3バッファおよびバイパ
スセルは図に示さない。
【0062】画素値aは、既にネットワークに記憶され
ている。bの値は各サイクルでネットワークの入力側に
供給される。表1は、多くのサイクルにわたる出力cの
展開を示す。
【0063】
【表1】
【0064】サイクル0の間に、b0の値はネットワー
クの入力側のバッファB501に記憶される。サイクル
1になって初めて計算結果|b0-a0| が第1Sセルを介し
て、出力側c0にあるバッファ502に供給されて記憶
される。サイクル1の間に値b0は、第2バッファB5
03にも記憶される。
【0065】ネットワークの動作中のある時間に、参照
窓の現在のブロックの与えられた位置(8画素から構成
される行)に対応する差分の絶対値の加算値が最後の加
算器の出力側に出力される。参照窓の第1行に対する加
算器で加算すべき結果を、表に肉太文字で示す。
【0066】総和機能は、加算器の間にバッファ50
4、505により挿入される遅延に影響を与える。加算
器への結果の伝搬を正確に達成するために、2サイクル
の遅延を挿入しなければならないことは容易に分かる。
このために各加算器の間に2個のバッファが設けられて
いる。各バッファは、1サイクルの遅延を挿入する。換
言すると2つの最初の加算器の間の2つのバッファ50
4、505は、バッファ501、502により挿入され
た遅延を打ち消す。
【0067】15サイクルの最後に、現在のブロックの
第1の可能性のある位置に対する誤差関数Errの値
が、ネットワークの出力側506に出力される。
【0068】この動作の間には、各Sセルに記憶された
2つの値の内の1つだけが用いられることに注意すべき
である。変形例では、現在のブロックの画素値の1個の
記憶バッファが、各Sセルに用いられる。
【0069】図6および図7は、シストリックネットワ
ークのいわゆる”インタレース”動作を示す。この方法
により、シストリックネットワークの行数の2倍の行数
を持つ現在のブロックに対して、誤差関数を求めること
ができる。単純に各Sセルの別のバッファと、各加算器
の間の別のバッファとを付加することにより、このこと
が達成される。
【0070】図6は、各組の加算器の間に追加のバッフ
ァが挿入されていることを除いて図5と同じである。さ
らに各Sセルには、図4に示すように2つの内部バッフ
ァがある。偶数サイクルの間に、各Sセルの第1バッフ
ァの内容が対応する計算ユニットにマルチプレクスされ
るのに対して、奇数サイクルの間には第2バッファの内
容が用いられる。
【0071】2倍の大きさの現在のブロックは、垂直に
並べられた2つのサブブロックaおよびa´に分割され
る。第1サブブロックaは、各Sセルの第1バッファに
記憶されるのに対して、第2サブブロックa´は、各S
セルの第2バッファに記憶される。
【0072】同様に参照窓のバンドは、行の2倍の数の
行を有している。それには上側のサブバンドbと下側の
サブバンドb´がある。偶数サイクルの間に、サブバン
ドbの列がシストリックネットワークの入力側に出力さ
れるのに対して、奇数サイクルの間にはb´の列が出力
される。
【0073】表2は各サイクルの後の出力cの状態を示
す。前述のとおり肉太文字は、サブブロックに対して誤
差関数を設定するために加算すべき中間結果を示す。
【0074】ノンインタレース動作と比較すると、2つ
のサブブロック間および2つのサブバンド間のこの別の
構成により、与えられた位置に対応する累算された誤り
の加算器の出力と、次の加算器の入力に対応する中間結
果との間に1サイクルの付加的な遅延を挿入する。この
ため第3バッファが各組の加算器の間に挿入される。
【0075】図6のネットワークの最後の加算器601
は、加算器602の第1入力側とバッファ603との両
方に接続され、前記バッファ603の出力側は、加算器
602の第2入力側に接続されている。
【0076】サブブロックに対応する誤差関数は、(ネ
ットワークが一度正確に開始されると)各サイクルで加
算器601の出力側に供給される。表2にサブブロック
a´に対応する誤差関数値が、サブブロックaに対応す
る誤差関数値より1サイクル遅らせられていることを示
す。完全なブロックa+a´に対応する誤差関数値を得
るためには、2つの値を加算しなければならない。第1
サイクルの間にaに対応する値はバッファ603に記憶
される。次のサイクルでa´に対応する値が加算器60
1の出力側に出力される。加算器602は加算値を計算
する。有効な結果は、2サイクル毎に加算器602の出
力側に出力される。
【0077】ネットワークの行数を低減し、ローカルメ
モリの数を低減することができる(以下を参照のこと)
という点で、この”インタレース”動作モードは非常に
興味深い。
【0078】変形例では、ネットワークの行数のN倍の
行数の現在のブロックを処理するように、シストリック
ネットワークが構成され、ここでNは2より大きな整数
である。
【0079】
【表2】
【0080】図7に本発明の第1変形例のコプロセッサ
を図示する。この変形例では、コプロセッサには、デー
タバス11上に並列に接続された10個のFIFOメモ
リスタック701〜710がある。スタック当りのデー
タのワード数により、サーチ窓の画素の列数が決まる。
メモリスタック701〜710の出力側は、10の入力
側と8つの出力側714〜721を有するスイッチング
回路712に接続されている。
【0081】回路712により、10個のFIFOメモ
リスタック(以下FIFOと呼称する)の任意の出力側
を回路の任意の8つの出力側に接続することができる。
各FIFOにはサーチ窓の完全な行が含まれる。8個の
FIFOが、処理されるサーチ窓のバンドの行に対応す
る所定の時間に1つの出力側に接続される。
【0082】接続されていない2つの付随するFIFO
は、メモリ710に記憶されえたデータから順番にデー
タバスを介してロードされる。現在処理しているバンド
と異なるサーチ窓の行に対応するデータが付加FIFO
にロード処理される。
【0083】たとえばFIFO701〜708に、サー
チ窓の8本の行L1〜L8から構成される第1バンドが
含まれていると仮定する。これらの8本の行の処理期間
中に、行L9はFIFO709にロードされる。第1バ
ンドの処理が完了すると、FIFO701に記憶された
行L1は不要になる。第2バンドには行L2〜L9が含
まれる。したがって完全なバンドがFIFOにあるの
で、休止時間を設けることなくこの第2バンドの処理を
開始することができる。記憶された正確な行の順番にス
イッチング回路を再設定して、シストリックネットワー
ク722〜725に供給しなければならない。
【0084】バンドに8本の行がある場合、上述の動作
には9個のFIFOで十分である。10番目のFIFO
は、たとえば4本の行から構成される2つのバンドを並
列処理する場合に用いられる。
【0085】この変形例では、4本の行および16の列
から構成される4つのシストリックネットワーク722
〜725は、それぞれスイッチング回路の出力側に接続
されている。慣例により、出力側714は、8本の行か
ら構成されるバンドの上側の行を示すのに対して、出力
側721は下側の行を示すものとする。第1ネットワー
ク722および第3ネットワーク724は、4本の上側
の出力側714〜717に接続されているのに対して、
第2ネットワーク723および第4ネットワーク725
は、4本の下側の出力側718〜721に接続されてい
る。
【0086】上述の構成により、異なる大きさの現在の
ブロックを柔軟に処理することができる。本質的に4つ
のネットワークを別々の方法で考察することができる。
【0087】・ 8つの4×16ネットワーク(各4×
16ネットワークは4×8の画素から成る2つの現在の
ブロックを処理する。) ・ 4つの8×8ネットワーク ・ 2つの8×16ネットワーク ・ 2つの16×16ネットワーク 最後の方法の場合、インタレースモードでのネットワー
ク動作では、8つの出力だけを利用することができる
(16ではない)。8つの出力は参照窓の上側のバンド
の8つの画素および下側のバンドの8つの画素の列に交
互に供給される。
【0088】当然8個のFIFOの代わりに16個のF
IFO(次の行のロードに必要なFIFOは含まない)
を用いることができる。
【0089】前述のようにFIFOメモリスタックの容
量により、参照窓の幅を決定する。4×8のネットワー
クを用いる場合、FIFOを2つのグループとし、各組
のFIFOに2倍の長さの画素の行と等しい値を記憶さ
せることができる。
【0090】さらに図7に、動作方法に応じて計算結果
が各4×16ネットワークの出力側でグループ化される
方法を矢印で示す。
【0091】図8に本実施の形態の第2変形例を示す。
9本のFIFO(参照番号801の部分でグループ化さ
れている)によりスイッチング回路802が供給され
る。この実施の形態のコプロセッサには、8つの4×8
シストリックネットワーク803〜810がある。実
際、図8のカスコード接続された2つの4×8ネットワ
ークは、図7の4×16ネットワークと等価である。8
つの4×8の現在のブロックを並列処理する場合の各ネ
ットワークの計算結果の道筋を図8に明瞭に示す。2つ
の上側のネットワーク803、804の例を上げる。ネ
ットワーク803の出力側の最終結果(つまり誤差関数
の値)は、ネットワーク804に直接送出される。8つ
の4×8画素の現在のブロックまたは4つの8×8画素
の現在のブロックのいずれを用いるかに依存して、ネッ
トワーク803の出力側の結果を後続の処理に利用でき
るか否かが決まる。8つの4×8画素の現在のブロック
を用いる場合、ネットワーク803により処理される現
在のブロックの動きベクトルを求めるのにこの結果が必
要である。
【0092】この変形例では、セルMが各4×8ネット
ワークと協働する。各セルMにより、ネットワークの内
の1つの出力側で誤差関数の最小値を求め、対応する動
きベクトルの座標を記憶する。その結果は、所定のデー
タバス811を介して送出される。
【0093】ネットワーク803、804、807、お
よび808の出力側は、それぞれマルチプレクサの入力
側に接続されており、前記マルチプレクサの出力側は、
協働セルMの入力側に接続されている。これらの同様の
ネットワークのそれぞれの出力側は、さらに2入力加算
器の入力側に接続され、前記2入力加算器は、他方の入
力側で直ぐ下のネットワークの出力を受信する。ネット
ワーク803、804、807、および808に対し
て、前記直ぐ下のネットワークの出力は、ネットワーク
805、806、809、および810の各出力であ
る。
【0094】プロセッサに8つの現在のブロックを処理
させる場合、各ネットワークの出力側は、協働するセル
Mに直接接続される。それから各セルMにより、誤差関
数の最小値と動きベクトルが決定される。このことによ
り、8つの別個のベクトルが生じる。
【0095】プロセッサに4つの8×8画素のブロック
を処理させる場合、2つのスーパーインポーズされるネ
ットワークと協働するセルMの内の1つが同一のブロッ
クで動作するように、マルチプレクサはこれら2つのネ
ットワークにより計算された誤差関数の値の加算値を受
信する。この加算値を受信するセルによって求められた
ベクトルだけが後に考慮される。
【0096】マルチプレクサのスイッチングは、図1の
コントローラ102により制御される。
【0097】
【発明の効果】本発明により、複数の有利なアーキテク
チャを有する”ブロックマッチングプロセッサ”を提供
し、上述の装置を利用する画像圧縮システムの動きベク
トルを計算するための装置を提供することができる。
【図面の簡単な説明】
【図1】本発明の実施の形態による動き予測プロセッサ
の概念的なブロック図である。
【図2】本実施の形態に用いられる圧縮方法を表す図で
ある。
【図3】本実施の形態によるシストリックネットワーク
の概念的なブロック図である。
【図4】図3のシストリックネットワークのいわゆるセ
ル”S”の概念的なブロック図である。
【図5】本発明においてノンインタレースモードでの動
作を示すのに用いられる簡単なシストリックネットワー
クの概念的なブロック図である。
【図6】本発明においてインタレースモードでの動作を
示すのに用いられる簡単なシストリックネットワークの
概念的なブロック図である。
【図7】本発明の第1変形例のコプロセッサの概念的な
ブロック図である。
【図8】本発明の第2変形例のブロック図である。
【符号の説明】
201 シストリックネットワーク 403 計算ユニット 404 マルチプレクサ 406 バッファ 407 バッファ S セル B バッファ
───────────────────────────────────────────────────── フロントページの続き (72)発明者 アラン ピルソン フランス国 モアラン アレー ド サヴ ォワ 122 (72)発明者 フィリップ ポール フランス国 エイバン アヴニュ ド ポ ワサ 12 (72)発明者 ファジー ヤッサ スイス国 トロワネ シュマン ド ドリ ズ 6デ

Claims (23)

    【特許請求の範囲】
  1. 【請求項1】 ブロックに基づいて画像圧縮システムに
    おけるブロックマッチングによる動き予測装置におい
    て、 2つの値の間の誤差関数のN列×M行の計算手段を有
    し、 動き予測されるブロックを表わす値のN×M個の第1記
    憶手段と、 参照窓のブロックを表す値のN×M個の第2記憶手段
    と、 N個の計算素子の列に対して、同時に誤差関数の値の総
    和をとるM個の加算手段とを有し、前記第1記憶手段の
    内の1つと第2記憶手段の内の1つが前記計算手段の内
    の1つに接続されていることを特徴とする動き予測装
    置。
  2. 【請求項2】 直列に接続されたM個のバッファから構
    成されるN本の行のネットワークを有し、参照窓のバン
    ドはこのネットワークで列ごとに伝搬される請求項1に
    記載の装置。
  3. 【請求項3】 前記各バッファの出力側は誤差関数の計
    算手段の入力側に接続されている請求項2に記載の装
    置。
  4. 【請求項4】 前記計算手段は、バッファの出力側の値
    と動き予測されるブロックを表す値とから誤差関数を計
    算する請求項3に記載の装置。
  5. 【請求項5】 前記各計算手段の計算結果がバッファに
    記憶される請求項4に記載の装置。
  6. 【請求項6】 加算器により所与の列のバッファに記憶
    された全ての結果の総和をとる請求項5に記載の装置。
  7. 【請求項7】 列に対する加算結果は、ネットワークの
    参照窓のブロックの伝搬を考慮した遅延で、次の列の加
    算器に供給される請求項6に記載の装置。
  8. 【請求項8】 前記遅延は、加算器間に直列に接続され
    たバッファにより生じる請求項7に記載の装置。
  9. 【請求項9】 動き予測されるブロックを表す値の記憶
    手段は、2つの画素値を記憶し、これらの2つの値の内
    の1つが誤差関数の計算手段にマルチプレクサを介して
    供給される請求項1に記載の装置。
  10. 【請求項10】 インタレースモードにおいて、前記2
    つの画素値は、所与のブロックの2つの下側のサブブロ
    ックおよび上側のサブブロックを表し、ネットワークの
    入力側に供給される値は、参照窓の上側のサブバンドと
    下側のサブバンドを交互に表す値である請求項9に記載
    の装置。
  11. 【請求項11】 これら2つのサブブロックに対応する
    誤差関数の値の総和をとる加算手段を有する請求項10
    に記載の装置。
  12. 【請求項12】 インタレースモードでは、加算器の間
    に1計算サイクルの付加的な遅延が挿入される請求項1
    0に記載の装置。
  13. 【請求項13】 誤差関数は距離関数である請求項1に
    記載の装置。
  14. 【請求項14】 前記バッファの各行は、参照窓の行の
    記憶手段から供給される請求項13に記載の装置。
  15. 【請求項15】 前記記憶手段は、先入れ先出し方式の
    メモリスタックである請求項14に記載の装置。
  16. 【請求項16】 少なくともN+1個の行の記憶手段が
    あり、前記手段の内のN個がバッファのN本の行に接続
    されるとき、他の付随する記憶手段は、行の前記N個の
    記憶手段に記憶された参照窓のバンドと、処理が直ぐ次
    に続くバンドとの間で異なる行に対応する値がロードさ
    れる請求項14に記載の装置。
  17. 【請求項17】 行の記憶手段とバッファから構成され
    るネットワークとの間のスイッチング回路を有し、前記
    スイッチング回路により、行の記憶手段を適切なバッフ
    ァの行に接続する請求項16に記載の装置。
  18. 【請求項18】 入力手段と、出力手段と、メモリと協
    働する制御手段と、現在の画像の一部および参照画像の
    一部の記憶手段と、前記記憶手段のアドレス手段と、現
    在の画像の一部と参照画像の一部との誤差関数の計算手
    段と、前記制御手段とのインターフェース手段とを有す
    ることを特徴とする請求項1項から17項に記載の装置
    を利用する画像圧縮システムの動きベクトルを計算する
    装置。
  19. 【請求項19】 前記入力手段は、データバスを介し
    て、画像を表すデータを前記記憶手段にロードするのに
    用いられるポートである請求項18に記載の装置。
  20. 【請求項20】 前記データは読み出しされて前記誤差
    関数の計算手段に供給される請求項18に記載の装置。
  21. 【請求項21】 前記制御手段をプログラムする手段を
    有する請求項20に記載の装置。
  22. 【請求項22】 前記誤差関数の計算手段は、N×M個
    のセルから構成されるシストリックネットワークを有す
    る請求項21に記載の装置。
  23. 【請求項23】 前記シストリックネットワークは、少
    なくともN個のメモリから構成されるバンクを介してデ
    ータを供給される請求項22に記載の装置。
JP7210855A 1994-08-19 1995-08-18 動き予測装置および動きベクトルを計算する装置 Pending JPH0879761A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR9410158A FR2723796B1 (fr) 1994-08-19 1994-08-19 Dispositif d'estimation de mouvement
FR9410158 1994-08-19

Publications (1)

Publication Number Publication Date
JPH0879761A true JPH0879761A (ja) 1996-03-22

Family

ID=9466402

Family Applications (1)

Application Number Title Priority Date Filing Date
JP7210855A Pending JPH0879761A (ja) 1994-08-19 1995-08-18 動き予測装置および動きベクトルを計算する装置

Country Status (9)

Country Link
US (1) US5745605A (ja)
EP (1) EP0702327B1 (ja)
JP (1) JPH0879761A (ja)
KR (1) KR100437177B1 (ja)
CN (1) CN1110209C (ja)
BR (1) BR9503709A (ja)
DE (1) DE69534380D1 (ja)
FR (1) FR2723796B1 (ja)
MY (1) MY122561A (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2742248B1 (fr) * 1995-12-06 1998-01-23 Thomson Multimedia Sa Procede de traitement de donnees dans des reseaux matriciels dans un systeme d'estimation de mouvement
US5953458A (en) * 1995-12-06 1999-09-14 Thomson Multimedia S.A. Method and device for motion estimation
US6115837A (en) * 1998-07-29 2000-09-05 Neomagic Corp. Dual-column syndrome generation for DVD error correction using an embedded DRAM
CN100356780C (zh) * 2005-02-03 2007-12-19 清华大学 用于压缩视频信号解码的图像存储方法
US20070150697A1 (en) * 2005-05-10 2007-06-28 Telairity Semiconductor, Inc. Vector processor with multi-pipe vector block matching
US20060259737A1 (en) * 2005-05-10 2006-11-16 Telairity Semiconductor, Inc. Vector processor with special purpose registers and high speed memory access

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3721074A1 (de) * 1986-12-24 1988-07-07 Licentia Gmbh Schaltungsanordnung zur verschiebungsvektorsuche in der digitalen bildanalyse
US4897720A (en) * 1988-03-14 1990-01-30 Bell Communications Research, Inc. Circuit implementation of block matching algorithm
FR2638924B1 (fr) * 1988-11-09 1991-01-25 Artieri Alain Procede et circuit de traitement par bloc de signal bidimensionnel d'images animees
US4902849A (en) * 1989-02-06 1990-02-20 Phillips Petroleum Company Dehydrogenation process
GB8909498D0 (en) * 1989-04-26 1989-06-14 British Telecomm Motion estimator
JPH0385884A (ja) * 1989-08-29 1991-04-11 Sony Corp 画像の動き検出回路
US4937666A (en) * 1989-12-04 1990-06-26 Bell Communications Research, Inc. Circuit implementation of block matching algorithm with fractional precision
KR0160618B1 (ko) * 1992-10-27 1999-01-15 윤종용 실시간 움직임 추정장치 및 그 방법
DE69327040T2 (de) * 1993-02-22 2000-04-13 Ind Tech Res Inst Blockübereinstimmungsarchitektur mit mehreren Modulen

Also Published As

Publication number Publication date
KR100437177B1 (ko) 2004-10-20
FR2723796A1 (fr) 1996-02-23
KR960009753A (ko) 1996-03-22
EP0702327A1 (fr) 1996-03-20
DE69534380D1 (de) 2005-09-22
US5745605A (en) 1998-04-28
MY122561A (en) 2006-04-29
FR2723796B1 (fr) 1996-11-29
CN1119815A (zh) 1996-04-03
EP0702327B1 (fr) 2005-08-17
BR9503709A (pt) 1996-05-28
CN1110209C (zh) 2003-05-28

Similar Documents

Publication Publication Date Title
US5719642A (en) Full-search block matching motion estimation processor
US5130797A (en) Digital signal processing system for parallel processing of subsampled data
JP3159713B2 (ja) デジタル化ビデオシーケンス符号器における運動推定回路
EP0644492A1 (en) Apparatus for adaptively processing video signals
JP3101691B2 (ja) 二次元動画像の連続するピクセルを表わすデータ信号を処理するための方法および回路
EP0710028A2 (en) Image decoding apparatus
US6223193B1 (en) Macroblock variance estimator for MPEG-2 video encoder
US5717615A (en) Method for selecting motion vectors and image processing device implementing the said method
GB2378345A (en) Method for scanning a reference macroblock window in a search area
JPH07115646A (ja) 画像処理装置
US5870500A (en) Method for processing data in matrix arrays in a motion estimation system
EP0848558B1 (en) Motion vector determining apparatus and method
JP3401823B2 (ja) 画像コーデック用プロセッサ
JPH0879761A (ja) 動き予測装置および動きベクトルを計算する装置
US20020021842A1 (en) Circuit and method for performing a two-dimensional transform during the processing of an image
Baglietto et al. Parallel implementation of the full search block matching algorithm for motion estimation
Baek et al. A fast array architecture for block matching algorithm
EP0825781A2 (en) Image processor
JP3545004B2 (ja) 演算回路
US6941025B2 (en) Simultaneous vertical spatial filtering and chroma conversion in video images
KR0178302B1 (ko) 양방향 병렬 파이프라인 구조에 근거한 탐색 이동 예측처리기
JPH01265684A (ja) 動き補償フレーム間予測符号化および復号化装置
US5917478A (en) Memory allocation method and apparatus for compression and decoding picture data
KR100225690B1 (ko) 상관도 연산장치, 병렬상관도 연산장치 및 상관도연산방법
US20030086497A1 (en) Motion vector detecting device improved in detection speed of motion vectors and system employing the same devices

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050210

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20050506

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20050511

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050808

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20060217