JP4358990B2 - 動き推定システムおよび方法 - Google Patents
動き推定システムおよび方法 Download PDFInfo
- Publication number
- JP4358990B2 JP4358990B2 JP2000543926A JP2000543926A JP4358990B2 JP 4358990 B2 JP4358990 B2 JP 4358990B2 JP 2000543926 A JP2000543926 A JP 2000543926A JP 2000543926 A JP2000543926 A JP 2000543926A JP 4358990 B2 JP4358990 B2 JP 4358990B2
- Authority
- JP
- Japan
- Prior art keywords
- region
- picture
- candidate
- search space
- current
- 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
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods 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/43—Hardware specially adapted for motion estimation or compensation
- H04N19/433—Hardware specially adapted for motion estimation or compensation characterised by techniques for memory access
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Image Analysis (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Description
(関連特許出願の相互参照)
(発明の背景)
1.発明の分野
本発明は概して、デジタルピクチャのエンコーディングシーケンスに関し、より詳細には、デジタルピクチャのシーケンスをエンコーディングする間に行われる動き推定動作に関する。
【0002】
2.従来技術の説明
以下の従来技術についての説明では、最初に総括的にデジタルピクチャの圧縮について、次いで現在実施されている動き推定について、そして最後に現在の技術の問題点について議論する。
【0003】
デジタルピクチャの圧縮
デジタルピクチャはもともとは、コンンピュータシステムのメモリにおいて、ピクチャエレメントまたはピクセルのアレイとして表される。各ピクセルは、ピクチャにおける1つの点を表す。ピクセル自体はデータのアイテムであり、このデータのアイテムの内容が、ピクセルにより表される点がデジタルピクチャにおいてどのように見えるかを決定する。デジタルピクチャの品質はもちろん、ピクチャ中のピクセル数とピクセル中のビット数とに依存する。ピクチャ中のピクセル数が多いほど、解像度が良くなり、各ピクセル内のビット数が多いほど、各ピクセルはピクセルにより表される画像内の点についてより多くの情報を格納することができる。例えば、ピクセル内のビット数が多いほど、ピクセルはより多くの色の差異を表現することができる。
【0004】
上記のような理由のため、高品質なデジタルピクチャを表示するためにもともとは用いられたピクセルのアレイは、非常に大型であり、かつ大量のメモリを必要とする。特に問題なのは、該当するデジタルピクチャが、適切な順序でかつ適切なタイミングで見られると動画を構成するピクチャのシーケンスの一部である場合のアレイのサイズである。ピクチャのシーケンスを表示する装置は、それらを格納するだけでなく、動画についてのタイミング要求を満たすようそれらを十分に高速に読み出しかつ表示しなければならない。
【0005】
このタイミングおよび格納の問題は、デジタルピクチャのシーケンスを限られた帯域を有する媒体を用いて格納量が限られている受信器に分配する場合、特に深刻となる。この問題が当てはまる例としては、デジタルテレビ、テレビ会議、およびテレビ電話がある。これらのアプリケーションでは、ピクチャのシーケンスを、テレビ放送チャンネルもしくはケーブルテレビチャンネル、電話線、またはコンピュータネットワークを用いて、ピクチャを格納するためのメモリ量が限られている、テレビジョンセット、テレビ電話、またはパーソナルコンピュータのような、比較的低コストな消費者のデバイスに送信しなければならない。これらのアプリケーションはしたがって、デジタルピクチャを圧縮することによりピクチャを送信する際に必要な帯域および/またはそのピクチャを送信先に格納するために必要な格納量を低減する何らかの方法が見付けられた場合にのみ、経済的に実施可能である。
【0006】
この技術分野においては、デジタルピクチャのシーケンスを圧縮するための多くの異なる技術が開発された。これらの技術の1つとしては、デジタルビデオを圧縮するためのMPEG−2規格がある。MPEG−2規格については、1996年11月にURLのhttp://www.cdrevolution.com/text/mpeginfo.htm.のアドレスにおいて閲覧可能であった「Background Information on MPEG−1 and MPEG−2 Television Compression」において説明されている。これらの技術の全ては、デジタルピクチャのシーケンスが冗長情報を大量に含んでいる点を利用したものである。1つのタイプの冗長性は、空間的なものである:任意のピクチャにおいて、空間的に互いに接近したピクセルは、類似の特性を有する傾向がある。こういった理由のため、ピクチャを空間的に隣接するピクセルの領域のセットとして表現することがしばしば可能となる。領域はもちろんオーバーラップし得る。領域が矩形の場合、それをブロックと呼ぶ。ピクチャの所与の領域がピクチャの別の領域に大きく類似するがその別の領域と同一ではない場合、その所与の領域におけるピクセルを、その所与の領域を別の領域と所与の領域との間の差として記述する表現と取り替えることができる。
【0007】
ピクチャのシーケンスにおける別のタイプの冗長性は、時間的なものである;シーケンス内の所与のピクチャがシーケンス内の先行または後続ピクチャに外観が大きく類似することはごく頻繁におこる;したがって、所与のピクチャ内の領域と先行または後続するピクチャ(本明細書中、これを「基準」ピクチャと呼ぶ)の中の領域との間の「差」を表す所与のピクチャの表現を作成し、この表現をピクセルのアレイとしての表現の代わりに用いることにより、所与のピクチャを圧縮することが可能となる。
【0008】
図1は、所与のピクチャと基準ピクチャとの間の差を表すための1つの方法を示す。デジタル基準ピクチャ101は、メモリにおいてピクセル105のアレイとして表現される。このピクチャは、ブロック103にさらに分割される。ブロック103の各々は典型的には、16×16ピクセルの正方形である。基準ピクチャ101内のオブジェクト107は、隣接する4つのブロック103(すなわち、ブロック103(m、n)、(m+1、n)、(m、n+1)、および(m+1、n+1))内に含まれる。ここで、mおよびnは、ブロックの左上隅部のxおよびy座標を示す。所与のピクチャ109において、オブジェクト107は、異なる位置(すなわち、ブロック103(b、s)、(b+1、s)、(b、s+1)および(b+1、s+1))にあるが、それ以外の点ではオブジェクト107は、基準ピクチャ101におけるのと同じ外観を実質的に有する。そういった理由のため、オブジェクト107は、所与のピクチャ109の圧縮表現において、基準イメージ101内のオブジェクト107との差として記述され得る。差としては、以下の2種類の差、すなわち、
所与のピクチャ109におけるオブジェクト107の位置変化および
所与のピクチャ109におけるオブジェクト107の外観における任意の変化がある。第1の種類の差は、基準ピクチャ101におけるオブジェクト107の位置からピクチャ109におけるオブジェクト107へのオフセットを用いて記述され得る。第2の種類の差は、基準ピクチャ101におけるオブジェクト107の外観とピクチャ109におけるオブジェクト107の外観との差を用いて記述され得る。この外観の変化は、オブジェクト107に入射する照度の変化またはx軸、y軸もしくはピクチャ平面に垂直なz軸周りでの回転によるオブジェクトのひずみもしくはせん断変形などの要因により生じ得る。
【0009】
先程説明したような圧縮技術を使用すると、市販のデジタルテレビ、デジタル通信会議、およびデジタルテレビ電話に典型的な帯域およびメモリ制約条件を満足するのに十分に小さいデジタルピクチャのシーケンスの圧縮された表現を作成することが可能になる。本明細書中、デジタルピクチャのピクセル表現からデジタルピクチャの圧縮表現を製作することを、ピクチャを「エンコードする」という。
【0010】
「ハイブリッドな」ビデオコーディング方法において、時間的な冗長性は典型的には、1つ以上の「基準ピクチャ」内のデータからエンコード中のピクチャ(すなわち、「現在の」ピクチャ)内のブロックデータを予測することにより除去される。エンコーダエンジン(すなわち、プロセッサ上で実行するエンコーディングソフトウェアまたはマイクロコード)が現在のピクチャを圧縮している時点では、このような基準ピクチャは既に圧縮された後であり、恐らく送信もされた後である。しかし、これらの基準ピクチャは、後続のピクチャを圧縮する際に基準ピクチャとして用いられる予定であるため、エンコーダエンジンがこのような基準ピクチャを圧縮している間、エンコーダエンジンは、後で検索および基準ピクチャとして使用可能なよう、これらの基準ピクチャを再構成およびメモリ内に保有する。エンコーダエンジンは、メモリ内の圧縮された基準ピクチャを再構成することにより、エンコーダエンジンによりエンコードされたピクチャをデコードすることが可能な「デコーダエンジン」をシミュレートする。これは、デコーダエンジンはデジタルピクチャ用の受信器の一部であり、オリジナルのピクチャへのアクセスを有しておらず、圧縮の結果の信号損失(すなわち劣化)を本来的に示す再構成されたピクチャのみにアクセスを有するためである。
【0011】
動き推定およびブロックマッチング規準
ビデオ信号は高速な動きを示すことができるため、動き推定/補償技術を用いて、基準ピクチャ内の異なる空間オフセットにおける同一サイズのブロックによって現在のピクチャにおけるブロックのデータを予測することを可能とすることにより、時間的冗長性を活用することが最大限に達成される。ブロックに基づいた動き推定/補償技術では、最適ではないのだがコスト的に効率の良いマルチメディアシステムにおける実用面での理由のため、並進運動のみを仮定する。すなわち、ブロックは移動はしたが回転はしなかったものと仮定する。したがって、ブロックに基づいた動き推定/補償方法は、最もハイブリッドなビデオコーディング方法の一部であり、MPEG−1[1]、MPEG−2[2]、H.261[3]、およびH.263[4]などの全ての既存のビデオコーディング規格のキー的要素である。動き推定は、現在のピクチャにおいて現在エンコーディングされている「現在のブロック」に最もよく適合する基準ピクチャ内のブロックを見付けるプロセスである。現在のピクチャに最もよく適合する基準ピクチャ内のブロックは、「予測因子」と呼ばれる。なぜならば、このブロックは、予測因子ブロックに対する現在のブロックの動きおよびピクセル値を予測するからである。
【0012】
一例としては、多くの既存のビデオコーディング規格の場合のようにブロックサイズが16×16ピクセルで、基準ピクチャ内の対応する「探索空間」(すなわち、エンコーエィングエンジンが予測因子を探す基準ピクチャの一部分)が64×48に等しいサイズである場合、動き推定のジョブは、探索空間において現在のブロックにとって最適な予測因子である連続した16×16のブロックを見付けることである。したがって、1617(すなわち、49×33)個の「候補ブロック」、すなわち、探索空間において、現在のブロックについての予測因子の候補である16×16のブロックがある。予測因子は、現在のブロックと各候補とをマッチングさせることにより、候補の中から選択される。現在のブロックと最もよく適合する候補が予測因子である。
【0013】
動き推定の上記の部分を「ブロックマッチング」と呼ぶ。ブロックマッチングは、マッチング規準を用いて行われる。典型的なマッチング規準は、ピクセル誤差絶対値の和(SAE)およびピクセル誤差の2乗和(SSE)である。誤差および差という言葉は、当業者にとっては同じ文脈中において同じ意味として用いられる点に留意されたい。したがって、SADおよびSAEは、同一のブロックマッチング計算を指す。同様に、SSDおよびSSEは同じである。
【0014】
例えば、探索空間における各オフセット(u、v)についてのSSEは、以下のように定義される。
【0015】
【数1】
ここで、Pcurrは現在のピクチャにおいて動き推定を用いて予測されるブロックであり、Prefは基準ピクチャの探索空間における候補ブロックであり、Pcurrからベクトル(u、v)分だけ変位している。この実施例において64×48の探索空間が現在のブロックと同心であると仮定すると、候補ブロックのオフセット範囲は、水平方向に−24から+24、垂直方向に−16から+16となる。しかし、これはもちろん、本明細書中開示されている本発明の必要条件ではない。
【0016】
例えば、探索空間における各オフセット(u、v)についてのSAEは、以下のように定義される:
【0017】
【数2】
マッチング規準を全体的に最小化する候補ブロックが、最もよく適合するブロックとして選択され、その最もよく適合するブロックに対応する現在のブロックの座標からの変位が現在のブロックの「動きベクトル」となる。この動きベクトルは、エンコーダエンジンにより生成された圧縮ビデオストリームから完全に復元できるようエンコードされ、これにより、現在のピクチャの再構成の際に、規格に対応したデコーダエンジンは動き補償を行うことができる。したがって、動き推定の出力は、現在のブロックの動きベクトルであり、これは、予測因子の対応する隅部の座標から現在のブロックの左上隅部分の座標への変位を示すものである。
【0018】
デジタル化されたビデオシーケンスにおいて、各ピクチャは3つの情報面からなる。1つの面は輝度であり、2つの面はクロミナンスである。動き推定は典型的には、輝度領域において行われるのに対し、動き補償は、ピクチャを再構成するために3つの面全てについて行われなければならない。各情報面は、8ビットの数値(すなわちバイト)からなる。典型的には、輝度面の寸法は、ピクチャの解像度と等しく、各ピクセルは独自の8ビットの輝度表現を有する。
【0019】
例えば、SSEは、各候補について、256の減算、256の平方動作(すなわち、乗算)、および255の加算を必要とする。SAEでは、上記の乗算動作を絶対値と取り換える。計算複雑性がより低いマッチング規準は、予測能力が劣るため、実際に用いられることはめったにない。したがって、動き推定は、SAEまたはSSEマッチング規準を用いても、計算集約型の動作である。さらに、現在のピクチャにおける各ブロックについて、規準ピクチャにおいて考慮される候補ブロックのそれぞれについてマッチング規準を計算しなければならない。CCIR601解像度(720×480)と等しいサイズのピクチャは、個別に動き推定を受ける1350個のオーバラップしていない16×16のブロックを有する。64×48のサイズの探索空間(すなわち、1617個の候補ブロック)について、各候補ブロックを考慮する動き推定システムを有するエンコーダエンジンは、ピクチャを1秒当たり30ピクチャのレートでエンコードしながら、ブロックマッチング規準をピクチャ当たり約2,182,950(1350×1617)回計算しなければならない。したがって、動き推定は典型的には、ハイブリッドビデオコーディング方法のうち最も計算集約型の要素である。
【0020】
上述した全探索動き推定方法は、マッチング規準に対して全体的に最小のスコアを生成する予測因子ブロックが探索空間に配置されることを保証するが、大量の計算能力を必要とする。この方法は、高コストなエンコーダエンジンをまかなうことができるならばうまく働く。しかし、エンコーダエンジンがテレビ電話のような一般消費者システムの一部である場合、問題が生じる。このコストによる制約により、低コストなデジタル信号プロセッサ(DSP)またはRISCプロセッサのような比較的低コストなプロセッサを用いてエンコーダエンジンを実現することが要求され、その一方で全探索の動き推定方法の要求はその低コストプロセッサの能力を超える。このような状況では、いわゆる「高速」動き推定方法を用いなければならない。
【0021】
高速動き推定方法
高速動き推定方法の目的は、現在のブロックと比較される候補ブロックの数を低減することである。これらの方法の欠点は、現在のブロックと実際に最もよく適合する候補が予測因子として選択される保証が無いということである。この方法の最終結果は、計算サイクルが低減されることにより、ピクチャの質の低下もしくは圧縮度の低下またはその両方が発生することである。提案される方法は、以下のように分類することができる。
1.探索空間において、予測因子としてみなされる候補ブロックの数をヒューリスティックスを用いて低減する方法。このような方法の例としては、対数探索および3段階探索方法がある。
2.ブロックマッチング規準を計算する際のピクセル数と、考慮される候補ブロックの数とを同時に低減する階層型探索方法。これらの方法は、水平および垂直方向に2倍の間引きまたはローパスフィルタリングを行うことにより、現在および基準のピクチャの解像度を連続的に低下させる。ブロックのマッチングは、利用可能な最低解像度で行われ、その結果は、次に高い解像度にマッピングされ、マッピングされた最もよく適合するブロックの周囲に位置する、変位した限られた数のブロック候補が考慮される。
3.現在のブロックに近接するブロックの動きベクトルを用いて候補ブロックを配置する方法。
【0022】
前半の2つの方法のさらなる詳細については、V.BhaskaranおよびK.KonstantinidesによるKluwer Academic Press、1995の「Image and Video Compression Standards」と、K.R.RaoおよびJ.J.HwangによるPrentice Hall Press、1996の「Techniques & Standards for Image、Video、and Audio Coding」とを参照されたい。3番目の方法の例については、Junavit Chalidabhongse、Sungook KimおよびC.−C.Jay KuoによるProceedings、Visual Communications and Image Processing ’96、International Society for Optical Engineering、vol.2727、pp.645−656の「Fast Motion Vector Estimation for Video Coding Based on Multiresolution−Spatio−Temporal Correlations」を参照されたい。
【0023】
この3段階動き推定方法は例えば、探索空間を間引きサンプリングすることにより候補ブロック数を低減する。+/−7の範囲の動きベクトルについては、この3段階方法では3段階を1セットとして進行する。各段階において、前段階での候補予測因子のセットにおいて発見された最もよく適合する規準スコアに従って、探索空間の位置を連続的に微調整し、残りの考慮中の候補ブロックのウィンドウサイズを連続的に低減する。第1の段階では最初に、原点の候補を含む基準ピクチャにおいて現在のブロックの原点から+/−4の範囲の空間的に対応するオフセットで9個の候補を調べる。すなわち、考慮される9個の予測因子の座標は、(0、0)、(4、0)、(−4、0)、(0、4)、(0、−4)、(4、4)、(4、−4)、(−4、−4)、および(−4、4)である。最小マッチング規準値を有するオフセットは次に、新しい原点の周囲の+/−2のオフセットにおいて別の8個の候補を調べるための原点として用いられる。最後に、第2段階で発見された最もよく適合するものが、+/−1のオフセットにおける別の8個の候補の新しい原点として用いられる。第3の段階の最後に発見された変位は、現在のブロックの予測因子として働く。全てにおいて、この方法は典型的には、25個の異なるオフセット(第1段階について9個のオフセット、第2段階について8個のオフセット、および第3段階について8個のオフセット)における候補についてマッチング規準を計算することを必要とする。この方法は、探索空間のサイズに依存する点に留意されたい。探索空間が+/−15の範囲の動きベクトルをサポートするために拡張された場合は、考慮されるオフセット数は65個に増加する。これは、探索空間を水平および垂直方向に4つおきに間引きサンプリングすることにより、第1段階は49個のオフセットからなるためである。
【0024】
別の高速動き推定方法は、上記の3段階方法と同じ原理で動作する。この対数探索では、+/−7の動きベクトル範囲での上記3段階探索と同じオフセットを用いて探索空間の粗い間引きサンプリング〜細かい間引きサンプリングを行う。しかし、+/−15の動きベクトル範囲については、この対数探索では、探索空間の間引きサンプリングが+/−8、+/−4、+/−2、+/−1のオフセットにおいて行われる4つの段階が必要となる。+/−15の動きベクトル範囲についてこの方法を用いて調べた候補位置は33個未満であるが、この方法の成績は、良くない。なぜならば、この方法では、探索空間の局所的最小値を反映する予測因子を発見する可能性がより大きいからである。
【0025】
現在のブロックに近接するブロックを用いる技術のための出発地点を形成する洞察としては、現在のブロックに密接に関連する領域が、現在のブロックと同じ様式で移動する可能性が非常に高いことがある。したがって、密接に関連する領域におけるブロックの動きベクトルが分かっている場合、その現在のブロックはその動きベクトルを有している可能性が高い。従って、これらの関連するブロックのうちの1つからの動きベクトルを用いて規準ピクチャ内に現在のブロックに対する候補ブロックを配置することは道理に適っている。候補ブロックとは単に、関連するブロックからの動きベクトルが候補ブロックに適用されると、現在のブロックとなるような基準ピクチャ内の位置を有する、基準ピクチャ内のブロックのことである。さらなる洞察としては、デジタルピクチャにおいて、別のブロックに関連するブロックはその別のブロックにごく近接して配置されやすいことである。この近接化は、以前にエンコードされたピクチャにおけるブロックまたは現在のピクチャにおけるブロックのどちらにも関連し得る。したがって、現在のブロックにごく近接するブロックを用いて配置された候補ブロックを用いて予測因子の探索を開始するだけで、現在のブロックの予測因子を発見するために比較されなければならないブロックの数を実質的に低減することがしばしば可能となる。このようなブロックは、以下において「近接」ブロックと呼ばれる。
【0026】
Chalidabhongseらの参照文献の技術では、現在のピクチャおよび現在のピクチャに先行するピクチャにおける近接ブロックを用いて最適な候補を発見し、その最適な候補をさらなる高精度化を行うための出発地点として用いる。このさらなる高精度化では、最適な候補の周囲の8つの点を探索し、その探索で発見された最適な候補をさらなる8つの点で用いるといった具合のことを、マッチング結果が閾値未満に達するまで継続する。この技術に関する別の変更例が示されており、上記参照文献ではまた、階層型探索においてこの技術をいかにして用いるかについて開示している。
【0027】
公知の動き推定技術の問題点
上述した高速動き推定技術は全て、候補ブロック数と最適な予測因子が見つかる可能性との間の望ましくないトレードオフを生じる。さらに、どの高速動き技術においても、一般消費者向けに構成されたデジタルシステムではメモリに厳しい制約が有り、その結果探索空間のサイズも厳しく制約されるという点を考慮に入れていない。詳細には、一般消費者向けに構成されたデジタルシステムでは、DSP内部のRAMに含まれるデータ上で最も効率良く動作するデジタル信号プロセッサ(DSP)を用いる。その結果、探索空間全体をDSP内部のRAMに転送することができた場合、探索が最も効率良く行われる。このように探索空間のサイズには制約があるため、探索技術は、探索空間が予測因子を含む可能性が非常に大きいことを保証しなければならない。上述した方法では、探索空間においてブロックのサブセットのみを候補として考慮しているため、探索空間が含まれている探索空間またはメモリを効率的に使用できていない。その上、上述した方法において候補を調べる範囲を効率的に増やすための唯一の方法は、DSP内部のRAM量を増やすことである。したがって、上記の方法は、一般消費者向けに構成されたシステムにおいて用いられた場合、必然的に劣った動き推定を発生させる。
【0028】
一度に1つの候補ブロックを、DSP外部のメモリからDSPデータRAM内部に転送するのは実際的ではない点に留意されたい。なぜならば、隣接する候補ブロックは共通して15または16ものカラム(またはロウ)を有し得、さらにはそのような転送はリアルタイムシステムに深刻な遅延を課すからである。したがって、所与の動作でできるだけ多くの面積の探索空間をDSPデータRAM内部へ転送する方がより効率的である。上記の問題は、階層型探索方法の場合に特に深刻になる。上記の方法では、現在のピクチャおよび基準ピクチャのマルチ解像バージョンのために、さらなるメモリを必要とする。上記の方法ではまた、基準ピクチャの異なる解像度のデータを格納および検索するために、外部メモリへの多重アクセスを必要とする。
【0029】
本明細書中に開示する技術の目的は、現在のブロックに対して予測因子ブロックを配置する方法を提供することにより、上述した動き推定についての問題を解消することである。この方法は、メモリの効率的な使用を必要とするエンコーディングシステムに特に良く適応されている。
【0030】
(発明の要旨)
上記目的は、現在のブロックに近接するブロックから動きベクトルを取り、その動きベクトルを現在のブロックに適用して候補ブロックを基準ピクチャ内に配置し、そしてその候補ブロックを用いて探索空間の一部を規定することにより達成される。上記のように規定された探索空間は概して、ブロック比較を行うために用いられるプロセッサの内部RAMにその全体がロードされるのに十分に小さいが、プロセッサの内部RAMの外部メモリへの単純な射影に限定されない。
【0031】
本発明の別の局面は、現在の最適な候補上にセンタリングされた非矩形探索空間を用いて予測因子ブロックの探索をさらに精製し、近接するブロックの数および位置を動的に変化させて、予測因子の探索を限定するための改良された技術を含む。これらの近接するブロックの動きベクトルを用いて、近接するブロックについての動きベクトルの利用可能性と、プロセッササイクルの利用可能性と、以前に決定された動きベクトルの数値とによって示されるように候補ブロックを配置する。
【0032】
本発明のさらに別の目的および利点は、以下の詳細な説明および図面を読めば、本発明が関連する技術分野の当業者にとって明らかである。
【0033】
(詳細な説明)
図面中、参照番号は、少なくとも3桁である。右側の2桁は図面中の参照番号であり、これらの左側の桁は、その参照符号により示されるアイテムが初出する図面番号である。例えば、参照番号が203のアイテムは、図2に初出する。
【0034】
以下の詳細な説明は、まず、好適な実施形態において、候補ブロックがどのように選択されるかを説明し、次に、この技術に従って選択された候補ブロックが、どのように新たな技術に要求される探索空間を予測するために使用され得るかを示す。
【0035】
(本技術の好適な実施形態:図2)
好適な実施形態において、先ほど説明した技術は、現在のブロックについての予測因子を2フェーズ探索する際に使用される。第1フェーズが、予測因子が探索されるエリアを局限し、第2フェーズが、予め規定された2次元探索空間(この空間の形状は、予め規定されるかまたは第1フェーズの結果によって決定される)内での探索の精度を高める。この探索は、適切な予測因子が見つかるとすぐに、いずれかのフェーズにおいて終了する。第1フェーズは、4個以上の近接ブロックおよび現在のブロックの位置を使用して、基準ピクチャ内に、対応する候補ブロックを配置する。近接ブロックは2つの特性を有する。すなわち、
・近接ブロックは、現在のブロックに、特に近く近接している。
・近接ブロックが動きベクトルを有する場合、その動きベクトルは既に計算されている。
現在のブロックについての予測因子であると考えられる程度に十分に近い、現在のブロックと適合する候補ブロックが見つかった場合、探索は第1フェーズにおいて終了する。このような候補ブロックが見つからない場合、第1フェーズにおいて見つかった最適候補のまわりを徐々に拡張するらせんを形成する順序で、基準ピクチャにおける候補ブロックを用いて探索が続行される。十分に近い適合するブロックが見つかった場合、または、第2フェーズの探索空間内の全候補ブロックが現在のブロックと比較された場合のいずれかの場合に、探索は終了する。好適な実施形態において、同時に観察した場合、候補ブロックは、ダイヤモンド形状を形成し、このダイヤモンドの中央に、第1フェーズからの最良の候補が位置する。
【0036】
近接ブロックを使用して候補ブロックを配置することの利点は、第1フェーズにおいて使用される近接ブロックについての動きベクトルが、第1フェーズの開始よりも前に既知である点にある。結果的に、これらの動きベクトルを使用して、第1フェーズについての探索空間を決定し得、この探索空間は、第1フェーズの開始前に、DSPの内部DRAMにプリロードされ得る。さらに、第1フェーズによって提供される最良の候補ブロックは、第1フェーズについての探索空間内に存在し、且つ、第2フェーズについての所定のサイズのダイヤモンド形状の中心として使用されるので、第1フェーズについての探索空間は、探索空間内のブロックの任意のブロック上に中心を有するダイヤモンド形状を取り囲むより大きな矩形の探索空間へと拡張され得、この拡張された探索空間は、第1フェーズの開始前に、DSPの内部DRAMにプリロードされ得る。
【0037】
(フェーズ1:図2および図6)
図2は、探索の第1フェーズについて初めに考慮される近接ブロック202を示す。以下に詳細に説明するように、より多くの近接ブロックが使用され得るか、または、他のブロックが図2の近接ブロックの代わりに用いられ得る。現在のブロック203および近接ブロック202を用いて、基準ピクチャ101の探索空間219内の、現在のピクチャ201の現在のブロック203についての予測因子が見つけられる。好適な実施形態において、現在のピクチャ201のエンコーディングは、ラスタスキャンの順序で行われる。つまり、現在のピクチャのブロックは行にエンコードされ、各行内のブロックは左から右へとエンコードされ、行はピクチャの上端から下端へと処理される。したがって、現在のブロックを含む行より上の行に含まれるブロックが既にエンコードされており、同様に、現在のブロックの行内の現在のブロックの左側のブロックがエンコードされている。これらのブロックは既にエンコードされているので、それらが有し得るいずれの動きベクトルも既に利用可能である。好適な実施形態において、5個の候補ブロックが、最小4個の近接ブロックおよび現在のブロックを用いて見つけられ得る。第1フェーズにおける使用のためにまず考慮された4個の近接ブロックは、エンコードされる最後のピクチャ220の1つのブロック、および現在のピクチャ201の3つのブロックである。エンコードされる最後のピクチャ220の1つのブロックは、現在のブロックが現在のピクチャ201内に有するのと同じxy座標をピクチャ220内に有する。本明細書中、現在のブロックと同じ座標を有する異なるピクチャ内のブロックを、「空間的に対応する」ブロックと呼ぶ。現在のピクチャ201内の3つの近接ブロックは、現在のブロック203に「隣接する」3つのブロックであり、既に動きベクトルを有し得る。本明細書中、「隣接する」とは、少なくとも、現在のブロックの縁または角に接触する角を有することを意味する。したがって、5つの候補ブロックを配置するために使用されるブロックは、以下の通りである。
1.基準ピクチャの空間的対応ブロック(RPSCB)227を配置するために使用される、現在のブロック(CB)203。(RPSCB227は、現在のブロック203と同じxy座標を有する基準ピクチャ101内のブロックであり、言い換えると、基準ピクチャ101内のブロックであって、これに対して現在のブロック203が動きベクトル(0,0)を有するブロックである。)
2.現在のブロック203と同じxy座標を有する最後にエンコードされたピクチャ220内の、最終ピクチャの空間的対応ブロック(LPSCB)221。
3.現在のピクチャ内の、西側の隣接ブロック(WAB)205。
4.北側の隣接ブロック(NAB)207。
5.北東側の隣接ブロック(NEAB)209。
【0038】
好適な実施形態において、現在のピクチャ201およびエンコードされた最後のピクチャ220はそれぞれ、ピクチャ内の各ブロックへのエントリを有する、関連するルックアップテーブルを有する。動きベクトルがブロックについて計算された場合、ブロックへのエントリは、ブロックの動きベクトルを含む。動きベクトルが計算されなかった場合、エントリはヌル値を含む。例えば、図2において、現在のピクチャ201はルックアップテーブル210を有し、このテーブル210内には近接ブロック202についての動きベクトルについてのエントリが含まれる。エントリ213は、近接ブロック207についての動きベクトルを有する。これは、北側の隣接動きベクトル(NAMV)である。エントリ215は、近接ブロック209についての動きベクトルを有する。これは、北東側の隣接動きベクトル(NEAMV)である。エントリ217は、近接ブロック205についての動きベクトルを有する。これは、西側の隣接動きベクトル(WAMV)である。同様に、エンコードされた最後のピクチャ220についてのルックアップテーブル218内に、近接ブロック221についての動きベクトルエントリ229がある。これは、LPSCB動きベクトル(LPSCBMV)である。
【0039】
上記5つの近接ブロックについての動きベクトルを用いて、5個の候補ブロックを基準ピクチャ101内に配置する。候補ブロックの1つは、基準ピクチャ101内のRPSCBブロック227である。残り4個の候補ブロックは、現在のピクチャ201またはエンコードされた最後のピクチャ220内の近接ブロックの1つについての動きベクトルを、基準ピクチャ101内のブロック227のxy座標(i,j)に適用することにより配置される。したがって、候補ブロック225は、動きベクトル(a,b)を座標(i,j)に適用して、候補ブロック225について座標(i+a,j+b)を得ることにより、近接ブロック205からの動きベクトル(a,b)217を用いて配置される。ブロック227に対して動きベクトル(0,0)を有する、現在のピクチャ201内のブロックは、当然現在のブロック203である。したがって、5個の候補ブロックは次のように説明し得る。
1.基準ピクチャ101のRPSCBブロック227。
2.動きベクトル217をRPSCB227の座標(i,j)に適用することにより得られたオフセットにおける候補ブロック。
3.動きベクトル213を座標(i,j)に適用することにより得られたオフセットにおける候補ブロック。
4.動きベクトル215を座標(i,j)に適用することにより得られたオフセットにおける候補ブロック。
5.動きベクトル229を座標(i,j)に適用することにより得られたオフセットにおける候補ブロック。
【0040】
RPSCB227に対する現在のブロック203の動きベクトルは、当然(0,0)であり、実際に、現在のブロック203がRPSCB227に対してごくわずか動いた場合または全く動かなかった場合に、現在のブロック203はRPSCB227に適合する。
【0041】
上記についての詳細は、図6に示され得る。図6は、ハイブリッド動き推定技術の好適な実施形態の両フェーズについてのフローチャート601である。この技術は、3つの閾値を含む。3つの閾値の由来を以下に説明する。直後の説明ににおいて、本発明者らは、フェーズ1 603についてのみ取り扱う。この説明において、丸括弧内の参照番号はフローチャート601内のブロックを示す。START HME604で始めると、第1のステップは、現在のブロック203をRPSCB227と比較することにより、RPSCB227に対する現在のブロック203の動きについてテストする(605)。この比較が、適合基準が第1の閾値を下回るような、現在のブロック203とRPSCB227との適合を示した場合、現在のピクチャと基準ピクチャ101との間には、現在のブロック203に対する動きはほとんどまたは全くないという、非常に高い可能性が存在する(607)。この場合、RPSCB227は現在のブロック203についての予測因子であり、他の候補を試験する必要がない。したがって、矢印608によって示すように、この方法はすぐにステップ619へと進み、その後621において終了する。
【0042】
適合基準が第1の閾値を下回らない場合、残り4個の近接ブロック205、207、209、および221についての動きベクトルを用いて、探索空間219内に候補ブロック225を配置する(609)。各候補ブロック225は、その後、上で説明したように現在のブロック203と比較され、最良の適合ブロックが、つまり、最も低い適合基準スコアを有するブロックが、予測因子として選択される(611)。この予測因子が、第2の閾値よりも小さな適合基準スコアを有する場合(613)、この予測因子は、現在のブロック203についての予測因子として選択され、矢印615によって示されるように、この方法は、上述のように、ブロック619および621を介して終了する。さもなければ、この方法は、フェーズ2 623を続ける(矢印617)。フェーズ2について、以下により詳細に説明する。
【0043】
(LPSCB221から、候補ブロックを配置する)
エンコードされた最後のピクチャ220は、必ずしも基準ピクチャである必要はない。例えば、連続する双方向(B型)ピクチャがMPEGビデオデコーディング規格で伝送される場合、エンコードされた最後のピクチャはBピクチャであり得、したがって基準ピクチャではない。また、エンコードされた最後のピクチャは、必ずしも、現在のピクチャよりも先に表示されるピクチャである必要はない。例えば、MPEGビデオデコーディング規格では、予測されたピクチャ(P型)は、Bピクチャよりも先に伝送されるが、Bピクチャよりも後に表示される。この場合、Pピクチャが基準である。MPEGビデオデコーディング規格は、ISO/IEC International Standard IS 11172−2、“Information technology−Coding of moving pictures and associated audio for digital storage media at up to about 1.5 Mbits/s−Part 2: Video”(1993)、およびITU−T Recommendation H.262 (1995)、“Generic coding of moving pictures and associated audio: video” (ISO/IEC 13818−2)に、詳細に説明されている。以下に詳細に示すように、最後のピクチャ220内の近接ブロック221から得られる候補は、ブロック221の動きベクトルから直接得られ得るか、または、時間領域で、その動きベクトルのXY座標を比例的にスケーリングすることにより「計算」され得る。
【0044】
(エンコードされた最後のピクチャ内の動きベクトルからオフセットされた候補ブロックの計算)
以下の説明はまず、エンコードされたビデオ画像のシーケンス内で起こり得るピクチャ間の時間関係について説明し、その後、これらの時間関係が、LPSCB221が近接ブロックである候補ブロック225を判定するために使用される動きベクトルの計算に、どのように影響するかを説明する。
【0045】
デジタルビデオシーケンスは、シーンがフィールド(インターレースされたピクチャ)またはフレーム(プログレッシブピクチャ)の連続するピクチャとして捕捉されるカメラにおいて発生する。ピクチャは、カメラによって、特定のピクチャレートで捕捉される。例えば、NTSCカメラは、約60ヘルツでフィールドを捕捉する。カメラからのピクチャがアナログフォーマットである場合、これらのピクチャはデジタル化され、エンコーダエンジンによって、要求された空間解像度へと空間的にスケーリングされる。一旦デジタルフォーマットになると、時間の基準は、各ピクチャと関係付けられて、他のピクチャと関連してそれが捕捉された時間の経過を追跡し、したがって、それらの「表示順序」の維持を容易にする。したがって、カメラによって生成される通常のシーケンスは、P1,P2,P3,P4,P5,...Pk(下付記号はピクチャの表示順序を示す)によって示される。
【0046】
テレビ電話アプリケーションで用いられるような、マルチメディアシステムにおけるリアルタイム型の費用効果が高いエンコーダエンジンは、処理能力が制限されているので、エンコーダエンジンは、カメラがピクチャを出力する速度よりも遅い速度でピクチャをエンコードし得る。さらに、エンコーダエンジンの「速度制御」構成要素は、その計算負荷またはその「出力バッファ」の満杯度に基づいて、ピクチャのエンコーディングを動的に控え得る。その結果、圧縮および伝送されたピクチャシーケンスから得られる実際のピクチャのセットは、エンコーダエンジンが捨てねばならないピクチャに対応するギャップを有し得る。例えば、圧縮されたピクチャシーケンスは、可能性としては、P1,P5,P8,P11,P14,...Pkであり得る。というのは、
1.エンコーダエンジンは、毎秒10ピクチャで動作するように設計(企図)されており、
2.シーケンスの最初のピクチャは、動き推定によって提供される優れたデータ低減能力の恩恵を受けないので、シーケンスの最初のピクチャが「出力バッファ」をあふれさせるからである。
つまり、この例において、エンコーダエンジンは、3つのピクチャ毎に圧縮を行うように設計されているが、P1は圧縮された形態でビット数が多くなるので、エンコーダエンジンは、P2からP4までを無視する必要がある。その後、P5が到着するまでに、エンコーダエンジンの「出力バッファ」は、P5の圧縮が可能になるように十分に排出される。
【0047】
さらに、多くのエンコーディングスキームにおいて、全てのエンコードされたピクチャが基準ピクチャであるわけではない。これらのスキームにおいて、このようなエンコードされた非基準ピクチャは、基準ピクチャの間に挿入される。このようなスキームは、計算能力のより小さな、規格に対応したデコーダエンジンによって、時間的なピクチャスケーラビィリティ(つまり、ピクチャドロッピング)を可能にするか、および/または、圧縮されたデジタルビデオストリーム内のランダムアクセスを可能にする。最後に、ピクチャがエンコードされる順序は、それらピクチャの表示順序と異なり得る。ここでの例はMPEGであり、MPEGは、ピクチャが未来の基準ピクチャを参照できるようにすることにより、高度な動きのあるビデオシーケンスのより効率的な圧縮を達成する。エンコーダエンジンがピクチャをエンコードする順序は、ピクチャの「伝送順序」である。
【0048】
以下のケースは、エンコードされた最後のピクチャ中の、空間的に対応するブロックの動きベクトルからの候補ブロックの変位の計算を例示する。この計算は、
1.寄与した動きベクトルの座標(x,y)、ならびに
2.・基準ピクチャ、
・エンコードされた最後のピクチャ、および
・現在のピクチャ
の時間関係
に依存する。
【0049】
全てのピクチャは、エンコーダエンジンに提供された、表示順(Pa,Pb,Pc,Pd,Pe,....Pi,Pj,Pk,....)を有するシーケンスの一部であると仮定する。ここで、時間関係は、a<b<c<d<e<....i<j<k...であることを意味する。以下の説明を一般化するために、本発明者らは、下付文字k、m、およびvを、k<m<vの「表示順」条件で、しかし、ピクチャ間の時間的相違(つまり、どれだけの時間的隔たりが存在するか)への制約なしに用いる。
【0050】
以下のケースの全てにおいて、計算された変位(newX,newY)の結果、そのエリアのいずれかの部分が、許可された探索空間の境界を越えて(つまり、許容された動きベクトルの範囲外に)はみ出した候補ブロックが得られる場合、この候補ブロックは無視されるか、または、下で説明する「境界条件」に照らして適格な別の候補ブロックと交換される。
【0051】
以下の各ケースにおいて、前の伝送されたピクチャの2つの時間関係が要求されるので、計算は、3番目に圧縮されるピクチャ(つまり、「伝送順」で3番目のピクチャ)にのみ適用可能である。
【0052】
ケース1−表示順=伝送順;
エンコードされた最後のピクチャは「過去の」基準ピクチャでもある
表示順のピクチャ; Pk,Pm,Pv
ピクチャの伝送順序
−現在のピクチャ; Pk,Pm,Pv (表示順と同じ)
現在のピクチャの前に
エンコードされた最後のピクチャ; _,Pk,Pm
現在のピクチャについての基準ピクチャ; _,Pk,Pm
このとき、ピクチャPvについて:
【0053】
【数3】
ここで、「floor」関数が意味する切り捨て操作の前に0.5を加えることによって最も近い整数へ丸められる。このケースは、H.261およびH.263ビデオコーディングにおいて典型的である。詳細については、ITU−T Recommendation H.261 (1993):“Video codec for audiovisual services at p×64kbits/s”、およびDraft ITU−T Recommendation H.263 (199?):“Video codec for low bitrate communications”を参照。
【0054】
ケース2−表示順=伝送順;
エンコードされた最後のピクチャおよび現在のピクチャが、同じ「過去の」基準ピクチャを使用する
表示順のピクチャ; Pk,Pm,Pv
ピクチャの伝送順序
−現在のピクチャ; Pk,Pm,Pv (表示順と同じ)
現在のピクチャの前に
エンコードされた最後のピクチャ; _,Pk,Pm
現在のピクチャについての基準ピクチャ; _,Pk,Pk
このとき、ピクチャPvについて:
【0055】
【数4】
ビデオエンコーダエンジンの仕様およびシンタックスによって許容される場合、このケースは、規格に対応したデコーダエンジンが、「後方への」時間的スケーラビリティについて、PmまたはPvのいずれかを落とすことを可能にする。
【0056】
ケース3−表示順および伝送順が異なる;
エンコードされた最後のピクチャおよび現在のピクチャが、同じ「未来の」基準ピクチャを使用する
表示順のピクチャ; Pk,Pm,Pv
ピクチャの伝送順序
−現在のピクチャ; Pv,Pk,Pm
現在のピクチャの前に
エンコードされた最後のピクチャ; _,Pv,Pk
現在のピクチャについての基準ピクチャ; _,Pv,Pv
このとき、ピクチャPmについて:
【0057】
【数5】
ビデオエンコーダエンジンの仕様およびシンタックスによって許容される場合、このケースは、シーンの変化を示す高度な動きのあるビデオを圧縮するのに有用である。
【0058】
ケース4−表示順および伝送順が異なる;
PkがPvに対して「過去」の基準ピクチャであり、PvがPmに対して「未 来」の基準ピクチャであることを除いては、エンコードされた最後のピクチャは基準ピクチャでもある
表示順のピクチャ; Pk,Pm,Pv
ピクチャの伝送順序
−現在のピクチャ; Pk,Pv,Pm
現在のピクチャの前に
エンコードされた最後のピクチャ; _,Pk,Pv
現在のピクチャについての基準ピクチャ; _,Pk,Pv
このとき、ピクチャPmについて:
【0059】
【数6】
ビデオエンコーダエンジンの仕様およびシンタックスによって許容される場合、このケースは、規格に対応したデコーダエンジンが、「後方への」時間的スケーラビリティについて、PmもしくはPmおよびPvの両方のいずれかを落とす(ドロッピングする)ことを可能にする。
【0060】
ケース5−表示順および伝送順が異なる;
PvがPkに対して「未来」の基準ピクチャであり、PkがPmに対して「過去」の基準ピクチャであることを除いては、エンコードされた最後のピクチャは基準ピクチャでもある
表示順のピクチャ; Pk,Pm,Pv
ピクチャの伝送順序
−現在のピクチャ; Pv,Pk,Pm
現在のピクチャの前に
エンコードされた最後のピクチャ; _,Pv,Pk
現在のピクチャについての基準ピクチャ; _,Pv,Pk
このとき、ピクチャPmについて:
【0061】
【数7】
(フェーズ1において他の近接ブロックを使用する:図3および図4)
図3に示すように、北西側の隣接ブロック301は、他の近接ブロック202と同様の様態で、候補ブロック225の配置するために、フェーズ1において使用され得る。ブロック301は、6番目の候補ブロックを配置するために使用され得るか、または、近接ブロック205、207、または209のうち1つの近接ブロックの代わりに使用され得るかのいずれかである。後者の場合、エンコーダエンジンは、どの隣接ブロックが、現在のピクチャ201における動きベクトルの既に決定された各ブロックについての予測因子についての動きベクトルを提供したかを記録しておき、この情報を使用して、4個の隣接ブロック(北西側、北側、北東側、西側)のうちの、どの3個の隣接ブロックが、それらの動きベクトルが、現在のブロックについての予測因子として寄与するように用いられるべきかを判定する。不十分な動き推定能力(つまり、見つかった最良マッチング誤差が受け入れられない)のために、他のブロック205、207、または209の1つがピクチャ内(つまりピクチャの右端部分)に無い場合、もしくは、残りの3つの隣接ブロックの1つ(または1つ以上)に動きベクトルが存在しない場合に、北西側のブロックは、代わりのブロックとしても機能する。
【0062】
ハイブリッド動き推定(HME)法の「フェーズ1」の間に使用される近接ブロック202のセットは、さらに、ブロック227、221、205、207、209、301に制限されない。図4に示すように、動き推定が既に行われた現在のピクチャにおける近接ブロックからの動きベクトルを用いることにより、追加候補225が獲得され得る。これらの追加近接ブロックを、図4の、斜線領域401内の6個のブロックとして示す。HME法の「フェーズ1」において使用され得る近接ブロックの数に対する制約は、DSP型エンコーディングエンジンの計算能力、および、HMEのフェーズ2のブロックマッチング計算のためにプロセッササイクルを残しておく必要性によって課せられる。近接ブロックが現在のブロックに近いほど、同様の並進運動を示す可能性が高くなる。したがって、好適な追加近接ブロックは、西側、北西側、北側、および北東側のブロックに隣接するブロックである。これらの追加ブロックを斜線領域401として示す。エンコーダエンジンが余剰のプロセッササイクルを有する場合、または、既にフェーズ1において使用されている近接ブロックのどれもが候補ブロックを提供できない場合、斜線で示すブロックは、HME法の「フェーズ1」において、近接ブロックとして使用され得る。
【0063】
(ハイブリッド動き推定のフェーズ2:図5および図6)
「フェーズ1」において見つかった最良の適合基準スコアがThreshold2を超える場合、探索空間のどこかに、現在のブロックに対するより良い適合が存在し得ると仮定する。したがって、ハイブリッド動き推定法は「フェーズ2」へと続く。「フェーズ2」において、フェーズ1によって配置された予測因子(ここで、Predphase1と呼ぶ)を中心とする領域内で、より良好な予測因子が探される。
【0064】
現在のブロックに対するより良い予測因子が、Predphase1の位置のごく近くに存在するという仮定の下で、HME法を「フェーズ2」に進める。テレビ電話システム等の低帯域幅のアプリケーションについて、HME法は、(矩形の領域ではなく)ダイヤモンド形状の領域またはエリア505上で、より良い候補ブロックを探す。図5は、「1」から「21」までの番号が付されたブロックから構成された領域505、および、探索空間201における、領域505のPredphase1 501との関係を示す。図5において、番号「1」のブロックとして示した探索エリアの中心は、16×16個のPredphase1ブロック501を示す。しかし、実際には、残りのブロックが中心から1ピクセル分変位しているのだが、らせん順探索の説明を単純化するために、これら残りのブロックも16×16中心ブロックと同じサイズで示す。図5における寸法によって示すように、中心ブロックを除く全てのブロックが、16×16ブロックではなく、1ピクセル分の変位を示す。
【0065】
「フェーズ2」の間に、矩形領域503がPredphase1上にセンタリングされた場合であっても、最良の適合基準スコアを示す候補ブロックは、矩形領域503によって制限されたダイヤモンド形状領域505内に見つかる傾向にある。その結果、HME法は、ダイヤモンド形状領域の外側に変位した候補ブロックを省略することにより、追加計算を節約する。節約された計算は、その後、ダイヤモンド形状領域を拡大するために使用され、可能性としてよりよい適合基準スコアに至り得る追加候補ブロックを考慮することを可能にする。さらに、ダイヤモンド形状領域は、図5に示すように、垂直方向の位置よりも、水平方向の候補変位を考慮して設計される。なぜなら、家庭における通常の家庭用テレビ電話のピクチャは、カメラをパンすること(つまり、居間の中で家族のメンバーを撮影するためにパンすること)が原因で、水平方向のような動きを示す傾向にあるからである。
【0066】
HME法の「フェーズ2」において、ダイヤモンド形状領域内でのらせん探索は、好適には、増加する番号ラベルで示されるような特定の順序で行われて、計算がさらに最小化される。候補ブロックがPredphase1 501に近づくほど、Predphase1 501におけるスコアより良い適合基準スコアを有する可能性が高くなる。したがって、候補ブロックは、(Predphase1 501から離れて)反時計回り(あるいは時計回り)のらせんの、外側に向かう順に考慮される。
【0067】
Predphase1 501よりも良い予測因子を配置するために使用される方法を、図6のフェーズ2 623に示す。ステップ625において、ダイヤモンド形状領域505が設定され、その後、現在のブロック629との適合についての適合基準スコアが十分に低い(つまり、好適な実施形態において、threshold3よりも低い)候補が見つかるまで、または、ダイヤモンド505内の全候補を調べ終わるまで、ブロック627、629、631、637から構成されたループが実行される。前者(ブロック631および矢印633)の場合、候補ブロックは予測因子であり、この方法は、ステップ619および621を経て終了する。後者(ブロック637および矢印641)の場合、適合基準について最小スコアを有するフェーズ2候補ブロックが予測因子であり、この方法は、ブロック643、645、および621を経て終了する。
【0068】
ダイヤモンド505はPredphase1 501上にセンタリングされるので、Predphase1 501からの、ブロック2〜21の変位のルックアップテーブルによって設けられ得、フェーズ2の間に調べられる候補のアドレスは、このルックアップテーブルを用いて計算され得る。図2における、ダイヤモンド形状領域の外側の矩形503の斜線領域は、「フェーズ2」の間は使用されないが、実際上の理由から、「フェーズ2」の実行のためにDSPデータRAM内に存在することが必要な有効領域は、完全な22×22矩形領域503(484バイト)である。16×16ブロックを超えて要求される有効エリアは、各方向に3ピクセル分ずつ拡張したエリアである。このDeltaは、以下に説明する、「フェーズ1」について要求される探索空間エリアの計算に組み込まれる。あるいは、このデータ転送は、「フェーズ1」の間にPredphase1 501が判定された直後に、早急に処理され得る。一連のステップを用いて最終結果を「目指す」高速動き推定法(上述)との差異として、HME法のさらなる新規性は、ターゲット(Predphase1)上にマッピングされた非矩形探索エリア、およびこの縮小された探索エリア内でのらせん順探索を用いる。
【0069】
(フェーズ2のための、他の動作モード)
より能力の高いプロセッサおよび/または余剰のDSPデータRAMを使用する場合、HME法の「フェーズ2」についての探索エリアは、図2に示す特定の領域サイズまたは形状に制限されずに、さらなる変位により増大し得る。
【0070】
HME法で使用されるプロセッササイクルの数は、満足できる予測因子がどれだけ素早く見つかるかに応じて変化するので、本発明の異なる動作モードにおいて、フェーズ2探索空間領域のサイズは、余剰なプロセッササイクルに基づいて動的に変更され得る。
【0071】
別の異なる動作モードにおいて、この領域の形状は、
1.現在のブロックに対するPredphase1 501の位置、ならびに動きベクトルがPredphase1 501に寄与するブロックの相対位置、または
2.現在のブロックに対する、「フェーズ1」における候補ブロックの組の大まかな配向
に基づいて、予め規定された形状のセットから動的に選択されるか、または、カスタマイズされる。したがって、候補ブロックの組の大まかな配向のY成分がX成分よりもかなり大きな場合、垂直方向にバイアスされたダイヤモンド形状領域が使用される。したがって、本発明のさらなる特徴は、ダイヤモンド形状領域の歪みおよび配向を動的に調節し得ることである。しかし、「フェーズ2」探索空間領域の形状を動的に計算するために、「フェーズ2」探索順序のための形状およびその関連するルックアップテーブルを、予め規定された形状の小さなセットから選択する動作のモードが好ましい。予め規定された形状の、ある特定の有用なセットは、4個のダイヤモンド形状のエントリ(水平方向にバイアスされたエントリ、別の垂直方向にバイアスされたエントリ、および2つの対角方向にバイアスされたエントリ(一方は45度に配向され、他方は135度に配向される))からなる。
【0072】
(Threshold1、Threshold2、およびThreshold3の決定)
一般に、Threshold1>Threshold2>Threshold3である。この理由の1つは、一般に、プロセッサが予測因子を見つけるためにより多くのサイクルを費やすにつれ、予測因子と現在のブロックとの間の適合はより良くなることである。別の理由は、動きベクトルが、圧縮されたビデオストリームに要求されるシンタックスおよび意味的規則によって特定されるように、現在のブロックについての動きベクトルの大きさと、現在のピクチャ内の以前にエンコードされたブロックの動きベクトルの大きさとの間の、大きさの差としてエンコードされることである。結果的に、大きさの差が大きくなるにしたがい、ブロックの圧縮表現において、大きさを示すために、より多くのビットが要求される。
【0073】
各閾値は、固定された成分に、動的に決定されたΔ値を加えることにより計算される。16×16個のブロックおよびSAEマッチング基準を使用し、112Kbsのデータレートを有する好適な実施形態において、
Threshold1=512+Δ1
Threshold2=512+Δ2
Threshold3=512+Δ3
(Δ1>Δ2>Δ3)である。Δの値は、次のように決定される。
【0074】
Δ1:この値はエンコーダの速度制御機構によって制御される。毎秒15フレームのQCIF解像度ピクチャ(つまり176×144)について、1280の最大値を有し得る。
【0075】
Δ2:0.25(Δ1−Δ3)
Δ3:f(ピクチャ解像度、ピクチャレート、データレート、およびDSPサイクル)。ここで、Δ3の値は、インターバル[0,512]に亘って変化し得る。
112Kbsデータレートで、Threshold1は、[512,1024]に亘って変化し得る。
【0076】
(境界条件)
圧縮されたいくつかのブロックについて、1つ以上の近接ブロックは、使用可能な動きベクトルを有さないことがある。このようなケースは、近接ブロックが現在のピクチャの境界の外側にある場合、または、不十分な動き推定能力のために、動きベクトルが存在しない場合(つまり、見つかった最良マッチング誤差が受け入れられず、指定されたブロックが動き推定されずに圧縮された場合)に起こる。近接ブロックによって特定された候補ブロックのいずれかの部分が、許可された探索空間の境界の外側に存在する場合、同様の状況が起こる。これらの状況の3つ全てにおいて、上述し、且つ図3および図4において説明したように、置換近接ブロックが使用される。
【0077】
以下は、候補ブロックが未確定である他の状態からなる。
【0078】
・現在のブロックは、現在のピクチャの第1の「行のブロック」(つまり、MPEGにおける第1のスライス、またはH.263におけるGOB)内にあり、現在のピクチャは、動き推定が行われる第1のピクチャである。
【0079】
・現在のブロックは、並列処理環境においてプロセッサに送信されたピクチャのあるセクション内の、第1の「行のブロック」内にある。つまり、ピクチャはセクションに分割され、各セクションは「ブロックの行」の連続するセットであり、エンコーダエンジンは、各セクション上でHME法を並列に独立して実行する複数のプロセッサ(例えば、Texas Instrument DSP TMS320C80)を有する。
このような場合、未確定の動きベクトルが、それぞれ(0,0)に設定されるか、または、ハイブリッド動き推定法が、従来の高速動き推定法を用いて、これらのブロック上で動き推定を行う。
【0080】
(HME法のための、探索空間219の要求される部分の動的計算:図7〜図12)
明らかに、方法601のフェーズ1のために、基準ピクチャ101の、DSPの内部RAM内に存在する必要のある部分は、フェーズ1において使用されている候補ブロックを含む部分である。候補ブロックの位置は、近接ブロックの動きベクトルから計算し得、これらの位置は、フェーズ1の前に既知である。その結果、本明細書中で「要求される部分」と呼ぶ、探索空間219の、候補ブロックを含む部分を、フェーズ1より前に決定し得、また、フェーズ1より前にDSPの内部RAMにロードし得る。さらに、フェーズ2に要求される探索空間の部分は、また、候補ブロックの位置から計算し得、その結果、両フェーズについて要求される部分は、内部RAMにロードされ得る。
【0081】
図12は、ビデオピクチャ符号化システム1201のブロック図であり、DSP1223とシステム1201の残りの部分との関係を示す。システム1201は、ビデオカメラ1203からアナログイメージを受け取る。これらのアナログイメージは、A/D変換器1205においてデジタル表現に変換され、デジタル化されたピクチャデータを、FIFOメモリ1217を介してルーティングすることにより、外部RAM1207に入力され、コントロールロジック1218によって制御される。コントロールロジック1218はまた、外部RAM1207およびDSP1223の動作を調整する。外部RAM1207は、2つのピンポン型のピクチャバッファ1208および1210を含み、このうち一方は、目下エンコードされつつある現在のピクチャ201を常に含み、他方は、カメラ1203から、エンコードされる次のピクチャ1209を受け取っている。外部RAM1207は、バッファ1212内に、現在のピクチャ201をエンコードするために必要なデジタル基準ピクチャの再構成された表現をさらに含む。現在のピクチャが圧縮されると、そのデコードされた表現は、1212において再構成される。現在のピクチャは、次のピクチャの圧縮のために、基準ピクチャとして使用されることが決められている。1212における再構成は、エンコードされたデジタルピクチャを、エンコードしたのと同様にデコードすることにより行われる。探索空間219を有する再構成された基準ピクチャ101を示す。出力バッファ1211は、それがエンコードされた状態の、圧縮された表現での現在のピクチャ201を受け取り、システムの残りの部分に対してエンコードされたピクチャを出力する。出力バッファは、出力されずに残っている圧縮されたフォーマットの、エンコードされた最後のピクチャの部分を含み得る。
【0082】
外部RAM1207のさらなる部分が、現在のピクチャ201をエンコードする際にDSP1223によって使用されるデータを含む。HME法601において使用される閾値1213と、現在のピクチャ201およびエンコードされた最後のピクチャ220についての動きベクトルのルックアップテーブル210および218とが、このデータに含まれる。外部RAM1207は、DSP1223がエンコーディング動作を行う場合に実行するプログラムコード1215を最終的に含む。
【0083】
DSP1223は、3つの主要な構成要素(DSPハードウェア1227、命令RAM1229、およびデータRAM1231)を有する。DSPハードウェア1227は、処理演算を実際に実行する回路を含み、命令RAM1229は、DSPプログラムコード1215の、実行中の動作にDSP1223が目下必要とする部分を含み、データRAM1231は、実行中の動作において、DSP1223によって目下使用中または生成中のデータを含む。DSP1223は、バスインターフェース(BI)1225を介して、アドレスバス1219およびデータバス1221に接続される。アドレスバス1219およびデータバス1221は、外部RAM1207に接続される。したがって、DSP1223は、RAM1207からデータを読み出し、且つRAM1207にデータを書き込み得る。しかし、RAM1207からの読み出しおよびRAM1207への書き込みは、データRAM1231からの読み出しおよびデータRAM1231への書き込みよりもかなり遅い。その結果、DSP1223を使用する最も効率的な方法は、DSP1223によって実行される特定の一連の演算に要求される全てのデータを、その一連の演算の開始前に、データRAM1231にロードすることである。より詳細には、HME法601を実行するための、DSP1223の効率的な使用は、現在のブロック203、探索空間1219の要求された部分、ルックアップテーブル210および218、ならびに閾値1213が、HME法601の開始よりも前に、DSP1223にロードされることを要求する。
【0084】
図7は、要求された部分701、ならびに、要求された部分701の、探索空間219および5個の候補ブロック225(1...5)との関係を示す。候補ブロック225(1)は、現在のブロック203に空間的に対応する、基準ピクチャのブロック227である。残りの候補ブロックを配置するために使用される動きベクトルを、ブロックの丸括弧内に書き込んだ。部分701を確立する際の第1のステップは、全ての候補ブロックが部分701に含まれる必要のある場合に必要な境界を決定することである。通常、隣接ブロックの動きベクトルは高い相関関係を有するので、全ての候補ブロックを含む部分701は、DSPデータRAMに収まる程度に十分小さな、基準ピクチャ101の探索空間219内の単一のエリアである。このような場合、図7に示すように、外部RAM1207から内部データRAM1231へと要求された部分701を移動するのに、一回の転送で済む。しかし、候補ブロックの間の相違が大きいことが原因で、計算された探索空間エリアが大きい場合、単一の矩形であり、且つ、内部DSPデータRAMに収まる程度に十分小さな部分701は存在し得ない。この場合、収まる程度に十分小さな要求された部分701は、探索空間219の、2個以上の、連続しない、ひょっとしたら重なり合っているかもしれない矩形セクションから構成される。この場合、各矩形セクションは、外部メモリから内部DSPデータRAMへと別個に転送する必要がある。以下、全ての候補を含む探索空間219において、2個の最小サイズの矩形を配置する方法について説明する。ほとんど全てのケースにおいて、2個の最小サイズの矩形は、DSPの内部RAMに同時に収まる程度に十分小さい。
【0085】
探索空間エリア計算法の、パート2の結果のあり得る例を、図8〜図11に示す。図8において、探索空間の、未使用の垂直矩形セクションは、探索空間の上端から下端へと延びる。このようなセクションをセクションVと呼ぶ。要求された矩形領域B 803の左側に対する、要求された矩形領域A 801の右側の位置は変動し得る。矩形領域は、交差するか、バラバラにされるか(つまり、これら領域の間に、別の未使用の垂直矩形セクションが存在し得る)、または、図示のように、一致した辺を有する。したがって、3個までの未使用垂直矩形セクションが存在し得る(1つは領域Aの左、1つは領域の間、もう1つは領域Bの右)。セクションNW、NE、NE、およびSEは、サイズが変動する。セクションNW、NE、NE、およびSEのいずれかは存在しないことがあり得る。候補ブロックRPSCB227は、常に、2個の要求された領域801および803の一方によって取り囲まれる。
【0086】
同様に、計算された探索空間エリアは、1個以上の未使用水平矩形セクションになり得る。図9は、探索空間の左側から右側へと延びるセクションH1およびH2を示す。図9はまた、要求された領域801および803が互いに関連し得る、つまり、要求された領域801および803が交差部905を有する、多くの様態のうちの1つを示す。要求された領域801および803が互いに関連し得る他の2つの様態を、図10および図11に示す。
【0087】
(探索空間219の要求された部分701を計算する方法)
要求された部分701は、HME法のフェーズ1の間に、ある手法を用いて計算される。この手法では、まず、単一の矩形から構成された、要求された部分701を計算し、単一の矩形がDSPの内部RAMに収まらないほど大きな場合は、2つの最小の矩形の要求された領域801および803から構成された要求された部分701を計算する。
【0088】
パート1−単一矩形エリア計算法
1.各フェーズ1候補ブロック225を見つけ、探索空間219にマッピングする。候補ブロック225の座標が、その左上隅に対応する(つまり、動きベクトルがブロックの左上隅を指す)ことを思い出されたい。
【0089】
2.候補225のX成分およびY成分の極値を見つける。
【0090】
3.以下に示す1組の式を用いて、候補225の境界を形成する矩形領域の範囲を見つける。
【0091】
new_X_min = min_X−Delta
new_X_max =
max_X + X_block_dimension + Delta
new_Y_min = min_Y−Delta
new_Y_max =
max_Y + Y_block_dimension + Delta
図7は、これらの式の項が、要求された部分701にどのように関係するかを示す。Deltaは、HME法のフェーズ2において使用されるエリア503を収容するために、要求された部分701に追加される余分な量である。要求された部分701が探索空間219の境界または基準ピクチャ101の周囲の外側にはみ出さないように、Deltaは、必要な場合には、適切に切り取られる(値が減少される)。好適な実施形態において、Delta=3である。
【0092】
4.得られた、要求された部分701が、内部DSPデータRAMに収まる程度に十分小さい場合、矩形領域をDSPデータRAMに転送する旨の要求が発送され、要求された部分701を計算する方法は、この時点で終了する。そうでない場合、この方法は以下に示すように継続する。
【0093】
パート2−2個の矩形エリアについての、候補ブロッククラスタリング法
パート2は、静的クラスタリング法と同様である。しかし、サンプルを集合体にまとめる従来の方法は、サンプルの、集合体の重心への距離に依存する。サンプルは点であり、集合体はそれらの重心(集合体の構成要素(つまりサンプル)の平均)によって表現される。本発明者らのサンプルは、矩形領域に集める必要のあるブロック(2−Dエリア)であり、必ずしも、最小総面積の要求された部分701となる2つの矩形エリアを形成しないので、この平均化の効果は望ましくない。
【0094】
5.大きく離れた2つの候補ブロック225(B1およびB2)を見つけ、それらを初期ガイドに指定して、残りのフェーズ1候補ブロック225を集める。この時点で、B1およびB2は、探索空間の、2つの別個の矩形領域801および803(R1およびR2)として機能する。探索空間は、大きくなって、残りのフェーズ1候補ブロック225を組み込む。好適な実施形態において、5個のフェーズ1候補ブロック225があるので、2つの矩形領域のうちの一方に、3つの候補をマッピングする必要がある。各候補ブロック225は、左上隅の座標によって規定される。矩形領域801および803の各々は、その面積ならびに各領域に集められた候補のX成分およびY成分の極値から構成された4つの隅によって規定される。つまり、矩形領域の左上隅は(Xmin,Ymin)に位置し、右下隅は(Xmax,Ymax)に位置し、左下隅は(Xmin,Ymax)に位置し、右上隅は(Xmax,Ymin)に位置する。
【0095】
6.残りの(つまり、マッピングされていない)候補ブロック225それぞれから、B1およびB2への距離を計測する。これは、R1およびR2が、当初は、それぞれB1およびB2に相当する点であるからである。
【0096】
7.矩形領域への最小距離を示す候補は、その領域に集められる。しかし、複数の候補が、所与の矩形領域への同じ最小距離を示す場合、各候補は、それぞれの矩形領域に集められる。
【0097】
8.修正された矩形領域の4隅の座標は、吸収された候補のXおよびY成分を、矩形領域の前の極値と比較することにより計算される。修正された矩形領域の面積が計算される。R1およびR2の一方または両方が、ステップ7に依存して修正され得る。
【0098】
9.いずれかの候補が、2つの矩形領域の一方にマッピングされずに残った場合、ステップ10へと続く。そうでない場合は、終了する。
【0099】
10.残りの候補Biの各々について:
BiがR1に追加される場合に得られる面積を計算する。
【0100】
BiがR2に追加される場合に得られる面積を計算する。
【0101】
11.矩形領域に集められることによってその矩形領域に加えられる増加面積が最小である候補ブロックが、その矩形領域に集められる。しかし、複数の候補ブロックが同じ最小増加面積を示す場合、各々がそれぞれの矩形領域に集められる。
【0102】
12.修正された矩形領域の4隅は、吸収された候補のXおよびY成分を、矩形領域の前の極値と比較することにより計算される。修正された矩形領域の新たな面積が保存される。R1およびR2の一方または両方が、ステップ11に依存して修正され得る。
【0103】
13.候補のいずれかが、2つの矩形領域の一方にマッピングされずに残った場合、ステップ10へ進む。
【0104】
14.ステップ3の式を適用することにより、R1およびR2によって境界が定められた探索空間エリアの矩形領域は、それぞれ、各方向に延びる。
【0105】
パート2は、最も小さな総面積(つまり、DSPデータRAMに転送するのに要求される最小データ量)となる要求された探索空間エリアの2つの矩形領域の計算を保証する。この保証を提供しない本発明の異なる態様において、矩形領域の増加面積ではなく、候補と矩形エリアの最も近い隅との距離が、クラスタリングの基準として使用される。単純であるが、最小総面積を生成する可能性がより低い本発明の第3の異なる態様において、ステップ7からステップ13は、1つのステップに置き換えられる。すなわち、残りの候補の各々は、B1およびB2の最も近い方にマッピングされるというステップである。探索空間の複数の矩形領域を連続的に転送する必要がある場合、(0,0)オフセットを含む領域が、常に最初に転送される。
【0106】
あまり一般的ではないが、HME法のいくつかのインプリメンテーション(つまり、極めて大きな探索領域)は、外部メモリから内部DSPデータRAMへと3回以上転送することを要求する。このような場合、探索空間の複数の矩形セクションを運ぶために、連続して転送を行う必要がある。最悪の場合、矩形領域の集合体が内部DSPデータRAMに収まらない場合、残りの候補のために要求される探索空間は、探索空間のサブセットの候補についてマッチング基準の計算を行う間に、内部データRAMに転送され得る。本明細書中、ちょうど説明した要求された部分701を計算する方法は、候補ブロックを配置するために使用される近接ブロックの動きベクトルの大きさに対していかなる制限も課さないことに留意されたい。
【0107】
上記の説明から明らかなように、上述の、探索空間219の要求された部分701の面積を計算する方法は、DSPの内部DRAMと共に使用することに限定されず、探索空間のいくつかの部分を、比較を行っているプロセッサによりアクセス可能なメモリへと移動させるのが有利ないかなる状況においても使用し得る。
【0108】
(結論)
上記の「詳細な説明」は、「詳細な説明」に開示された動き検出の技術が関連する分野の当業者に、本発明者らが現在知っている、本発明の技術の実行のベストモードを開示した。本発明の技術が関連する分野の当業者にすぐにわかるように、本発明の技術の、他の多くのインプリメンテーションが可能である。正確なインプリメンテーションは、当然、使用されるエンコーディングスキームおよびエンコーディングを行うのに使用されるハードウェアに依存する。所与のインプリメンテーションにおいて本方法についての閾値を決定する様態は、エンコーディングスキーム、ハードウェア、およびエンコーディングが行われるアプリケーションの種類に依存する。
【0109】
他の変形例は以下を含む。ブロックの時間的予測は、必ずしも、基準ピクチャ内の同じサイズのブロックから得る必要はない。したがって、ブロックのいくつかの部分(例えば、4分の1の部分)は、基準ピクチャ内の等しい寸法のサブブロックから時間的に予測され得る。さらに、現在のブロックについての予測因子は、必ずしも、単一の基準ピクチャから得る必要はなく、いくつかの基準ピクチャから得られた予測因子から最良の予測因子を選択することにより生成され得る。あるいは、予測因子は、例えば、荷重平均を用いることにより、基準ピクチャからの予測因子を組み合わせることによって生成され得る。さらに、エンコーダエンジンは、元のピクチャ、または、それらをエンコーディングしたものから再構成されたピクチャのいずれかである基準ピクチャを用い得る。しかし、規格に対応したデコーダエンジンがピクチャの展開および再構成の間に生成するのと等価なデジタルエラー信号を生成するためには、エンコーダエンジンは、再構成されたバージョンの基準ピクチャを用いる必要がある。さらに、予測因子を見つけるために比較される領域は、形状が矩形である必要はなく、動的に近接ブロックを選択し、探索の第2のフェーズにおいて使用されるエリアを形成する情報は、インプリメンテーションによって異なる。
【0110】
「詳細な説明」は、動き推定技術のインプリメンテーションを1つしか記載しておらず、動き推定技術の原理を組み込んだ他の多くのインプリメンテーションが可能であるので、「詳細な説明」は、あらゆる点で例示的であり、制限的ではないと理解する必要があり、本明細書中に開示された本発明の範囲は、「詳細な説明」から決定されるのではなく、特許法によって許可される最大限の範囲で解釈された請求の範囲から決定されることは明らかである。
【図面の簡単な説明】
【図1】 デジタルピクチャエンコーディングの概要を提供する図である。
【図2】 好適な実施形態において用いられる近接ブロックおよび候補ブロックを示す図である。
【図3】 現在のピクチャにおける近接ブロックを示す図である。
【図4】 現在のピクチャにおけるさらなる近接ブロックを示す図である。
【図5】 HME方法の第2フェーズにおける候補ブロックを示す図である。
【図6】 HME方法の好適な実施形態のフローチャートである。
【図7】 探索空間の必要部分を示す図である。
【図8】 必要部分の計算を示す第1の図である。
【図9】 必要部分の計算を示す第2の図である。
【図10】 必要部分の計算を示す第3の図である。
【図11】 必要部分の計算を示す第4の図である。
【図12】 好適な実施形態が実現されるエンコーディングシステムの関連部分のブロック図である。
Claims (24)
- デジタル表現された複数のピクチャのシーケンスの基準ピクチャに含まれる複数の候補領域のうちの1つが予測因子領域として考慮されるべきか否かを決定する方法であって、該予測因子領域は、該デジタル表現された複数のピクチャのシーケンスの現在のピクチャにおける現在の領域の値を予測するために使用され、
該デジタル表現された複数のピクチャのシーケンスは複数のピクチャを含み、該複数のピクチャのうち特定の時刻における1つが該現在のピクチャとして定義されており、
該現在のピクチャは複数の領域を含み、該現在のピクチャの該複数の領域のうち該特定の時刻における1つが該現在の領域として定義されており、
該方法は、
該現在の領域に近接する複数の近接領域であって、該現在のピクチャ内の領域およびエンコードされた最後のピクチャ内の領域を含む複数の近接領域に対して、それぞれが所定のベクトル値を有する複数の動きベクトルを決定する工程と、
該複数の近接領域に対して各動きベクトルの該所定のベクトル値を該基準ピクチャ内の領域の空間的位置に加算することにより、該複数の候補領域を生成する工程であって、各動きベクトルの該所定のベクトル値と該基準ピクチャ内の該領域の空間的位置とを加算した結果として、該複数の候補領域のそれぞれに対する空間的位置を生じさせ、該基準ピクチャ内の該領域の空間的位置は、該現在のピクチャ内の該現在の領域の空間的位置と同一である、工程と、
該複数の候補領域のそれぞれにおけるピクセル情報と該現在の領域におけるピクセル情報とを比較することにより、該複数の候補領域のそれぞれに対して適合基準スコアを決定する工程と、
最も低い適合基準スコアを有する候補領域を該予測因子領域として割り当てる工程と
を含み、
該複数の候補領域を生成する該工程は、該基準ピクチャと、該エンコードされた最後のピクチャと、該現在のピクチャとの間の時間的な関係に基づいて、該所定のベクトル値を時間的に後方にスケーリングすることによって、該エンコードされた最後のピクチャ内に含まれる近接領域ピクチャに対応する候補領域を生成する工程を含み、
該基準ピクチャ、該エンコードされた最後のピクチャ、該現在のピクチャの表示順序と、該基準ピクチャ、該エンコードされた最後のピクチャ、該現在のピクチャの伝送順序との間には相違があり、該表示順序に関して、該基準ピクチャは、該現在のピクチャに対して過去の基準ピクチャであり、該現在のピクチャは、該エンコードされた最後のピクチャに対して過去のピクチャであり、
該方法は、デコーダエンジンによって該エンコードされた最後のピクチャおよび該現在のピクチャの両方を落とす時間的スケーラビリティを可能にする、方法。 - 前記エンコードされた最後のピクチャ内の前記近接領域は、該エンコードされた最後のピクチャにおいて、前記現在のピクチャにおける前記現在の領域の位置と同じ空間的位置にある、請求項1に記載の方法。
- 前記複数の候補領域のそれぞれに対して空間的領域を割り当て、該割り当てられた空間的領域のそれぞれに対して座標を定義し、該複数の候補領域のうちの一対の候補領域であって、該一対の候補領域に割り当てられた該空間的領域に対して定義された座標が、他のどの一対の候補領域よりも大きな探索空間を定義する極値を定義する一対の候補領域を決定することによって、前記決定工程において決定された前記複数の候補領域を用いて探索空間を計算する工程
をさらに含む、請求項1に記載の方法。 - 前記探索空間をプロセッサの内部にあるコンピュータ読み取り可能な格納媒体にローディングする工程をさらに含み、
該プロセッサは、該コンピュータ読み取り可能な格納媒体に配置される該候補領域におけるピクセル情報と該現在の領域におけるピクセル情報とを比較する、請求項3に記載の方法。 - 前記探索空間を計算する前記工程は、複数の探索空間を計算することを含む、請求項3に記載の方法。
- 前記複数の探索空間を計算する前記工程は、
前記空間的領域に等しい初期探索空間であって、前記より大きな探索空間を定義する極値を定義する座標を有するように決定された前記一対の候補領域に対して定義された前記座標に等しい座標を有する初期探索空間を定義することと、
該初期探索空間のそれぞれに対して該複数の候補領域のうちの1つの候補領域であって、他の候補領域の空間的領域の座標と該初期探索空間の座標との距離に比べて該初期探索空間の座標から最小の距離である座標を有する空間的領域を有する候補領域を決定することと、
該初期探索空間のそれぞれに対して該初期探索空間の空間的領域の座標の極値によって定義される空間的領域を有する新たな探索空間を定義することであって、該候補領域の該空間的領域は、該最小の距離である座標を有する空間的領域を有している、ことと、
該新たな探索空間が該複数の候補領域の空間的領域を含む空間的領域を有するまで、該初期探索空間のそれぞれに対して該複数の候補領域のうちの1つを決定する工程と該新たな探索空間を定義する工程とを繰り返すことと
を含む、請求項5に記載の方法。 - 前記複数の候補領域を用いて決定された前記予測因子領域におけるピクセル情報と前記現在の領域におけるピクセル情報との間の適合が、第1の閾値を満足するほど近くない場合には、該複数の候補領域のうちのいくつかを用いて決定された該予測因子領域上にセンタリングされた該探索空間における領域と該現在の領域とを比較することにより該予測因子領域を発見し、そうでない場合には、該複数の候補領域のうちのいくつかを用いて決定された該予測因子領域を該予測因子領域にする工程をさらに含む、請求項1に記載の方法。
- 前記複数の候補領域のうちのいくつかを用いて決定された予測因子領域上にセンタリングされた前記探索空間における領域を比較する前記工程において、該探索空間は非矩形である、請求項7に記載の方法。
- 前記複数の候補領域のうちのいくつかを用いて決定された予測因子領域上にセンタリングされた前記探索空間における領域を比較する前記工程において、該領域は、該複数の候補領域のうちの該いくつか以外の該複数の候補領域のうちのいくつかを用いて決定される該予測因子領域からの距離が増大する順に前記現在の領域と比較される、請求項8に記載の方法。
- 前記領域は、第2の事前に決定された閾値を満足するほど十分に近い前記現在の領域と適合するものが発見されるまで比較される、請求項9に記載の方法。
- 前記第2の閾値を満足するために必要な前記適合は、前記第1の閾値を満足するために必要な適合よりも近い、請求項10に記載の方法。
- 計算を行うためのプロセッササイクルの割当てにおいて利用可能なプロセッササイクル数に応じて、前記予測因子領域上にセンタリングされた前記探索空間を動的にサイジングする工程をさらに含む、請求項8に記載の方法。
- 前記現在の領域に対する前記少なくとも1つの別の候補領域の位置に応じて、前記探索空間を動的に形成する工程をさらに含む、請求項8に記載の方法。
- 前記現在の領域が前記現在のピクチャにおいて有する空間的位置と同じ空間的位置を前記基準ピクチャにおいて有する前記基準ピクチャ内の領域を第1の候補領域として選択する工程と、
前記第1の候補領域内のピクセル情報と前記現在の領域内のピクセル情報との間の適合が第3の閾値を満足するほど近くない場合には、前記複数の候補領域についての工程を進め、そうでない場合には、該第1の候補領域を前記予測因子領域にする工程と
をさらに含む、請求項10に記載の方法。 - 前記第3の閾値は、前記第1の閾値よりも大きく、該第1の閾値は前記第2の閾値よりも大きい、請求項14に記載の方法。
- 前記複数の候補領域のそれぞれは、矩形である、請求項1に記載の方法。
- コンピュータプロセッサに請求項1に記載の方法を実行させるためのプログラムを記録したコンピュータ読み取り可能な格納媒体。
- デジタル表現された複数のピクチャのシーケンスの基準ピクチャにおける探索空間の部分を規定する方法であって、複数の候補領域の中から予測因子領域に対して探索が該探索空間の部分内で行われ、該予測因子領域は、該デジタル表現された複数のピクチャのシーケンスの現在のピクチャにおける現在の領域の値を予測するために使用され、
該デジタル表現された複数のピクチャのシーケンスは複数のピクチャを含み、該複数のピクチャのうち特定の時刻における1つが該現在のピクチャとして定義されており、
該現在のピクチャは複数の領域を含み、該現在のピクチャの該複数の領域のうち該特定の時刻における1つが該現在の領域として定義されており、
該方法は、
該現在の領域に近接し、かつ、それぞれが所定の値を有する動きベクトルを含む該現在のピクチャ内の該複数の領域の各領域およびエンコードされた最後のピクチャにおける領域に対して、
該複数の近接領域に対して各動きベクトルの該所定のベクトル値を該基準ピクチャ内の領域の空間的位置に加算することにより、該複数の候補領域を生成する工程であって、各動きベクトルの該所定のベクトル値と該基準ピクチャ内の該領域の空間的位置とを加算した結果として、該複数の候補領域のそれぞれに対する空間的位置を生じさせ、該基準ピクチャ内の該領域の空間的位置は、該現在のピクチャ内の該現在の領域の空間的位置と同一である、工程と、
該複数の候補領域を用いて該探索空間の部分を規定する工程と
を含み、
該複数の候補領域を生成する該工程は、該基準ピクチャと、該エンコードされた最後のピクチャと、該現在のピクチャとの間の時間的な関係に基づいて、該所定のベクトル値を時間的に後方にスケーリングすることによって、該エンコードされた最後のピクチャ内に含まれる近接領域に対応する候補領域を生成する工程を含み、
該基準ピクチャ、該エンコードされた最後のピクチャ、該現在のピクチャの表示順序と、該基準ピクチャ、該エンコードされた最後のピクチャ、該現在のピクチャの伝送順序との間には相違があり、該表示順序に関して、該基準ピクチャは、該現在のピクチャに対して過去の基準ピクチャであり、該現在のピクチャは、該エンコードされた最後のピクチャに対して過去のピクチャであり、
該方法は、デコーダエンジンによって該エンコードされた最後のピクチャおよび該現在のピクチャの両方を落とす時間的スケーラビリティを可能にする、方法。 - 前記動きベクトルの前記所定の値は、任意の大きさを有し得る、請求項18に記載の方法。
- 前記探索空間の部分が該複数の候補領域の全てを含むように、前記複数の候補領域を用いて該探索空間の部分を決定する工程をさらに含む、請求項18に記載の方法。
- コンピュータ読み取り可能な格納媒体に配置される前記候補領域におけるピクセル情報と前記現在の領域におけるピクセル情報との比較を実行するプロセッサの内部にあるコンピュータ読み取り格納媒体に前記探索空間の部分をローディングする工程をさらに含む、請求項18に記載の方法
- 前記探索空間の部分を計算する前記工程は、該探索空間の複数の部分を計算することを含む、請求項20に記載の方法。
- 前記探索空間の複数の部分を計算する前記工程は、
前記空間的領域に等しい初期探索空間であって、前記より大きな探索空間を定義する極値を定義する座標を有するように決定された前記一対の候補領域に対して定義された前記座標に等しい座標を有する初期探索空間を定義することと、
該初期探索空間のそれぞれに対して該複数の候補領域のうちの1つの候補領域であって、他の候補領域の空間的領域の座標と該初期探索空間の座標との距離に比べて該初期探索空間の座標から最小の距離である座標を有する空間的領域を有する候補領域を決定することと、
該初期探索空間のそれぞれに対して該初期探索空間の空間的領域の座標の極値によって定義される空間的領域を有する新たな探索空間を定義することであって、該候補領域の該空間的領域は、該最小の距離である座標を有する空間的領域を有している、ことと、
該新たな探索空間が該複数の候補領域の空間的領域を含む空間的領域を有するまで、該初期探索空間のそれぞれに対して該複数の候補領域のうちの1つを決定する工程と該新たな探索空間を定義する工程とを繰り返すことと
を含む、請求項22に記載の方法。 - 前記探索空間の複数の部分のうち1つは、前記現在の領域が前記現在のピクチャにおいて有する空間的位置と同じ空間的位置を前記基準ピクチャにおいて有する該基準ピクチャ内の領域を有し、
該探索空間の複数の部分は、該現在の領域が該現在のピクチャにおいて有する空間的位置と同じ空間的位置を該基準ピクチャにおいて有する該基準ピクチャ内
の領域を含む該探索空間の複数の部分のうちの1つから、前記プロセッサの内
部にある前記コンピュータ読み取り格納媒体に別個にロードされる、請求項22に記載の方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/061,625 US6195389B1 (en) | 1998-04-16 | 1998-04-16 | Motion estimation system and methods |
US09/061,625 | 1998-04-16 | ||
PCT/US1999/008341 WO1999053438A2 (en) | 1998-04-16 | 1999-04-16 | Motion estimation system and method |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006067681A Division JP4410206B2 (ja) | 1998-04-16 | 2006-03-13 | 動き推定システムおよび方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2002511687A JP2002511687A (ja) | 2002-04-16 |
JP4358990B2 true JP4358990B2 (ja) | 2009-11-04 |
Family
ID=22037021
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000543926A Expired - Lifetime JP4358990B2 (ja) | 1998-04-16 | 1999-04-16 | 動き推定システムおよび方法 |
JP2006067681A Expired - Lifetime JP4410206B2 (ja) | 1998-04-16 | 2006-03-13 | 動き推定システムおよび方法 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006067681A Expired - Lifetime JP4410206B2 (ja) | 1998-04-16 | 2006-03-13 | 動き推定システムおよび方法 |
Country Status (6)
Country | Link |
---|---|
US (1) | US6195389B1 (ja) |
EP (1) | EP1072017B1 (ja) |
JP (2) | JP4358990B2 (ja) |
BR (1) | BR9909574A (ja) |
DE (2) | DE69920429T2 (ja) |
WO (1) | WO1999053438A2 (ja) |
Families Citing this family (72)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100607390B1 (ko) * | 1998-08-18 | 2006-08-02 | 지멘스 악티엔게젤샤프트 | 이미지 전체 모션 벡터를 이용하여 디지털화된 이미지를코딩하기 위한 방법 및 장치 |
EP1110176B1 (en) * | 1998-09-07 | 2002-12-18 | THOMSON multimedia | Methof of motion estimation for transmission cost reduction of motion vectors |
US6411652B1 (en) * | 1998-10-23 | 2002-06-25 | International Business Machines Corp. | Motion estimation |
US6418166B1 (en) * | 1998-11-30 | 2002-07-09 | Microsoft Corporation | Motion estimation and block matching pattern |
WO2001010135A1 (en) * | 1999-07-29 | 2001-02-08 | Mitsubishi Denki Kabushiki Kaisha | Moving vector detecting method |
US6473460B1 (en) * | 2000-03-31 | 2002-10-29 | Matsushita Electric Industrial Co., Ltd. | Method and apparatus for calculating motion vectors |
US6876703B2 (en) * | 2000-05-11 | 2005-04-05 | Ub Video Inc. | Method and apparatus for video coding |
CN100504925C (zh) * | 2000-05-18 | 2009-06-24 | Nxp股份有限公司 | 用于检测图像间的运动的方法和装置以及图像显示装置 |
US20020136302A1 (en) * | 2001-03-21 | 2002-09-26 | Naiqian Lu | Cascade window searching method and apparatus |
US6891890B1 (en) * | 2001-04-24 | 2005-05-10 | Vweb Corporation | Multi-phase motion estimation system and method |
US6934332B1 (en) | 2001-04-24 | 2005-08-23 | Vweb Corporation | Motion estimation using predetermined pixel patterns and subpatterns |
US6813315B1 (en) | 2001-04-24 | 2004-11-02 | Vweb Corporation | Motion estimation using multiple search windows |
JP2002325258A (ja) * | 2001-04-25 | 2002-11-08 | Nec Corp | 画像符号化装置及びそれに用いる画像符号化方法 |
US7801215B2 (en) * | 2001-07-24 | 2010-09-21 | Sasken Communication Technologies Limited | Motion estimation technique for digital video encoding applications |
DE60141961D1 (de) * | 2001-09-10 | 2010-06-10 | Texas Instruments Inc | Verfahren und Vorrichtung zur Bewegungsvektorenabschätzung |
US6774904B2 (en) * | 2002-01-04 | 2004-08-10 | Hewlett-Packard Development Company, L.P. | Operating system independent method and apparatus for graphical remote access having improved latency |
US7038696B2 (en) * | 2002-01-04 | 2006-05-02 | Hewlett-Packard Development Company | Method and apparatus for implementing color graphics on a remote computer |
KR100492127B1 (ko) * | 2002-02-23 | 2005-06-01 | 삼성전자주식회사 | 적응형 움직임 추정장치 및 추정 방법 |
US7321626B2 (en) * | 2002-03-08 | 2008-01-22 | Sharp Laboratories Of America, Inc. | System and method for predictive motion estimation using a global motion predictor |
US7602848B2 (en) * | 2002-03-26 | 2009-10-13 | General Instrument Corporation | Methods and apparatus for efficient global motion compensation encoding and associated decoding |
US20030198295A1 (en) * | 2002-04-12 | 2003-10-23 | Liang-Gee Chen | Global elimination algorithm for motion estimation and the hardware architecture thereof |
DE10225434B4 (de) * | 2002-06-07 | 2004-12-30 | Siemens Ag | Verfahren und Vorrichtung zur Videocodierung |
US7817717B2 (en) * | 2002-06-18 | 2010-10-19 | Qualcomm Incorporated | Motion estimation techniques for video encoding |
US7515634B2 (en) * | 2002-06-28 | 2009-04-07 | Qualcomm Incorporated | Computationally constrained video encoding |
US7224731B2 (en) * | 2002-06-28 | 2007-05-29 | Microsoft Corporation | Motion estimation/compensation for screen capture video |
WO2004008775A1 (ja) | 2002-07-15 | 2004-01-22 | Hitachi, Ltd. | 動画像符号化方法及び復号化方法 |
KR100543443B1 (ko) * | 2003-01-14 | 2006-01-23 | 삼성전자주식회사 | 동영상 압축을 위한 내장형 메모리 장치 |
US7792194B2 (en) * | 2003-04-10 | 2010-09-07 | Lefan Zhong | MPEG artifacts post-processed filtering architecture |
US9330060B1 (en) | 2003-04-15 | 2016-05-03 | Nvidia Corporation | Method and device for encoding and decoding video image data |
US8660182B2 (en) * | 2003-06-09 | 2014-02-25 | Nvidia Corporation | MPEG motion estimation based on dual start points |
US7145950B2 (en) * | 2003-07-14 | 2006-12-05 | Primax Electronics Ltd. | Method of motion vector determination in digital video compression |
US7440500B2 (en) * | 2003-07-15 | 2008-10-21 | Lsi Logic Corporation | Supporting motion vectors outside picture boundaries in motion estimation process |
KR100987764B1 (ko) * | 2003-09-04 | 2010-10-13 | 경희대학교 산학협력단 | 영상 데이터의 예측 부호화를 위한 참조 데이터 유닛 결정방법 및 그 장치 |
KR20050026661A (ko) * | 2003-09-09 | 2005-03-15 | 엘지전자 주식회사 | 디지탈 동영상 해상도 감축을 위한 움직임 벡터 설정방법 |
JP4515886B2 (ja) * | 2003-10-28 | 2010-08-04 | パナソニック株式会社 | 面内予測符号化方法 |
KR20050045746A (ko) * | 2003-11-12 | 2005-05-17 | 삼성전자주식회사 | 계층 구조의 가변 블록 크기를 이용한 움직임 추정 방법및 장치 |
KR100999091B1 (ko) * | 2003-11-17 | 2010-12-07 | 삼성전자주식회사 | 임의 크기의 가변 블록을 이용한 영상 압축 방법 및 장치 |
DE10356090B3 (de) * | 2003-12-01 | 2005-04-21 | Siemens Ag | Verfahren zur rechnergestützten Ermittlung von Bildbereichen in einem digitalisierten Bild |
US8514944B2 (en) * | 2004-06-18 | 2013-08-20 | Broadcom Corporation | Reducing motion compensation memory bandwidth through memory utilization |
US7817157B2 (en) | 2004-08-23 | 2010-10-19 | Hewlett-Packard Company, L.P. | Method and apparatus for capturing slices of video data |
WO2006050651A1 (en) | 2004-09-29 | 2006-05-18 | Tencent Technology (Shenzhen) Company Limited | Method for performing motion estimation |
JP4032049B2 (ja) * | 2004-10-18 | 2008-01-16 | 株式会社東芝 | 動きベクトル検出方法及びその装置 |
US20060233258A1 (en) * | 2005-04-15 | 2006-10-19 | Microsoft Corporation | Scalable motion estimation |
JP2007088922A (ja) * | 2005-09-22 | 2007-04-05 | Sanyo Electric Co Ltd | 符号化装置と符号化方法 |
US8731071B1 (en) | 2005-12-15 | 2014-05-20 | Nvidia Corporation | System for performing finite input response (FIR) filtering in motion estimation |
US8724702B1 (en) | 2006-03-29 | 2014-05-13 | Nvidia Corporation | Methods and systems for motion estimation used in video coding |
JP4757080B2 (ja) * | 2006-04-03 | 2011-08-24 | パナソニック株式会社 | 動き検出装置、動き検出方法、動き検出集積回路および画像符号化装置 |
US8494052B2 (en) * | 2006-04-07 | 2013-07-23 | Microsoft Corporation | Dynamic selection of motion estimation search ranges and extended motion vector ranges |
US8155195B2 (en) * | 2006-04-07 | 2012-04-10 | Microsoft Corporation | Switching distortion metrics during motion estimation |
JP4158121B2 (ja) * | 2006-05-18 | 2008-10-01 | コニカミノルタビジネステクノロジーズ株式会社 | メモリ管理方法 |
US20070268964A1 (en) * | 2006-05-22 | 2007-11-22 | Microsoft Corporation | Unit co-location-based motion estimation |
US8660380B2 (en) * | 2006-08-25 | 2014-02-25 | Nvidia Corporation | Method and system for performing two-dimensional transform on data value array with reduced power consumption |
EP2090113A4 (en) * | 2006-11-07 | 2014-08-20 | Samsung Electronics Co Ltd | METHOD AND DEVICE FOR VIDEO CODING AND DECODING BASED ON MOTION ESTIMATION |
CN101543043B (zh) * | 2007-02-20 | 2011-05-18 | 索尼株式会社 | 图像显示装置、视频信号处理器和视频信号处理方法 |
US8756482B2 (en) * | 2007-05-25 | 2014-06-17 | Nvidia Corporation | Efficient encoding/decoding of a sequence of data frames |
US20080291209A1 (en) * | 2007-05-25 | 2008-11-27 | Nvidia Corporation | Encoding Multi-media Signals |
US9118927B2 (en) * | 2007-06-13 | 2015-08-25 | Nvidia Corporation | Sub-pixel interpolation and its application in motion compensated encoding of a video signal |
US8873625B2 (en) * | 2007-07-18 | 2014-10-28 | Nvidia Corporation | Enhanced compression in representing non-frame-edge blocks of image frames |
KR20090095012A (ko) * | 2008-03-04 | 2009-09-09 | 삼성전자주식회사 | 연속적인 움직임 추정을 이용한 영상 부호화, 복호화 방법및 장치 |
EP2104356A1 (en) * | 2008-03-18 | 2009-09-23 | Deutsche Thomson OHG | Method and device for generating an image data stream, method and device for reconstructing a current image from an image data stream, image data stream and storage medium carrying an image data stream |
US8982952B2 (en) * | 2008-06-02 | 2015-03-17 | Broadcom Corporation | Method and system for using motion vector confidence to determine a fine motion estimation patch priority list for a scalable coder |
US20100074336A1 (en) * | 2008-09-25 | 2010-03-25 | Mina Goor | Fractional motion estimation engine |
US8666181B2 (en) * | 2008-12-10 | 2014-03-04 | Nvidia Corporation | Adaptive multiple engine image motion detection system and method |
KR20120016991A (ko) * | 2010-08-17 | 2012-02-27 | 오수미 | 인터 프리딕션 방법 |
KR101210894B1 (ko) * | 2011-08-29 | 2012-12-11 | 주식회사 아이벡스피티홀딩스 | 머지 모드 움직임 정보 복호화 장치 |
US9460495B2 (en) * | 2012-04-06 | 2016-10-04 | Microsoft Technology Licensing, Llc | Joint video stabilization and rolling shutter correction on a generic platform |
US9621921B2 (en) | 2012-04-16 | 2017-04-11 | Qualcomm Incorporated | Coefficient groups and coefficient coding for coefficient scans |
US9774881B2 (en) * | 2014-01-08 | 2017-09-26 | Microsoft Technology Licensing, Llc | Representing motion vectors in an encoded bitstream |
US9749642B2 (en) | 2014-01-08 | 2017-08-29 | Microsoft Technology Licensing, Llc | Selection of motion vector precision |
US10504235B2 (en) * | 2016-12-27 | 2019-12-10 | Inuitive Ltd. | Method for generating three dimensional images |
CN109996081B (zh) | 2017-12-31 | 2023-09-12 | 华为技术有限公司 | 图像预测方法、装置以及编解码器 |
US10715812B2 (en) * | 2018-07-13 | 2020-07-14 | Tencent America LLC | Method and apparatus for video coding |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE3685589T2 (de) | 1986-03-19 | 1993-02-04 | British Broadcasting Corp | Videosignal-verarbeitung fuer bandbreitenverringerung. |
JPH03256485A (ja) | 1990-03-06 | 1991-11-15 | Victor Co Of Japan Ltd | 動きベクトル検出回路 |
ATE148607T1 (de) * | 1991-09-30 | 1997-02-15 | Philips Electronics Nv | Bewegungsvektorschätzung, bewegungsbildkodierung- und -speicherung |
GB2292040B (en) | 1992-03-24 | 1996-04-10 | Sony Uk Ltd | Motion analysis of moving images |
US5297030A (en) | 1992-04-08 | 1994-03-22 | Ncr Corporation | Method using bill and coin images on a touch screen for processing payment for merchandise items |
US5889236A (en) | 1992-06-08 | 1999-03-30 | Synaptics Incorporated | Pressure sensitive scrollbar feature |
GB9215102D0 (en) | 1992-07-16 | 1992-08-26 | Philips Electronics Uk Ltd | Tracking moving objects |
FI92896C (fi) | 1992-12-31 | 1995-01-10 | Salon Televisiotehdas Oy | Menetelmä liikkeen estimoimiseksi videosignaalista sekä liike-estimaattori |
EP0609022A3 (en) | 1993-01-25 | 1995-08-23 | Matsushita Electric Ind Co Ltd | Image coding apparatus. |
US5537155A (en) | 1994-04-29 | 1996-07-16 | Motorola, Inc. | Method for estimating motion in a video sequence |
US5633657A (en) | 1994-10-11 | 1997-05-27 | Falcon; Fernando D. | Mouse driver arrangement for providing advanced scrolling capabilities to a conventional mouse |
KR0171143B1 (ko) | 1995-03-20 | 1999-03-20 | 배순훈 | 육각그리드에서의 삼각구조 형성 장치 |
US5699129A (en) | 1995-10-17 | 1997-12-16 | Zapex Technologies, Inc. | Method and apparatus for motion vector determination range expansion |
DE19541457C1 (de) | 1995-11-07 | 1997-07-03 | Siemens Ag | Verfahren zur Codierung eines Videodatenstroms einer aus Bildblöcken bestehenden Videosequenz |
KR0181069B1 (ko) * | 1995-11-08 | 1999-05-01 | 배순훈 | 움직임 추정장치 |
US5786819A (en) | 1996-06-11 | 1998-07-28 | Xerox Corporation | One button searching of long lists |
JP3019787B2 (ja) | 1996-09-20 | 2000-03-13 | 日本電気株式会社 | 動きベクトル検出装置 |
GB2317525B (en) | 1996-09-20 | 2000-11-08 | Nokia Mobile Phones Ltd | A video coding system |
-
1998
- 1998-04-16 US US09/061,625 patent/US6195389B1/en not_active Expired - Lifetime
-
1999
- 1999-04-16 DE DE69920429T patent/DE69920429T2/de not_active Expired - Lifetime
- 1999-04-16 DE DE1072017T patent/DE1072017T1/de active Pending
- 1999-04-16 BR BR9909574-2A patent/BR9909574A/pt not_active Application Discontinuation
- 1999-04-16 WO PCT/US1999/008341 patent/WO1999053438A2/en active IP Right Grant
- 1999-04-16 JP JP2000543926A patent/JP4358990B2/ja not_active Expired - Lifetime
- 1999-04-16 EP EP99918599A patent/EP1072017B1/en not_active Expired - Lifetime
-
2006
- 2006-03-13 JP JP2006067681A patent/JP4410206B2/ja not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
DE1072017T1 (de) | 2001-07-05 |
WO1999053438A2 (en) | 1999-10-21 |
WO1999053438A3 (en) | 2000-01-13 |
DE69920429D1 (de) | 2004-10-28 |
BR9909574A (pt) | 2001-11-13 |
JP2002511687A (ja) | 2002-04-16 |
JP4410206B2 (ja) | 2010-02-03 |
EP1072017A1 (en) | 2001-01-31 |
EP1072017B1 (en) | 2004-09-22 |
JP2006217644A (ja) | 2006-08-17 |
DE69920429T2 (de) | 2005-09-29 |
US6195389B1 (en) | 2001-02-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4358990B2 (ja) | 動き推定システムおよび方法 | |
KR100294999B1 (ko) | 디지탈비디오데이타스트림의시간적인압축방법및탐색프로세서 | |
TWI572196B (zh) | 用於次世代視訊編碼之投射式內插預測產生之技術 | |
RU2251820C2 (ru) | Экстраполяция вектора движения для перекодировки видеопоследовательности | |
JP5717815B2 (ja) | ピクセルバッファリング | |
US6996174B2 (en) | MPEG video decoder with integrated scaling and display functions | |
EP0849953B1 (en) | System and method for performing motion compensation using a skewed tile storage format for improved efficiency | |
JP4344472B2 (ja) | 情報ストリームデコーダへの計算リソース割当 | |
US8218638B2 (en) | Method and system for optical flow based motion vector estimation for picture rate up-conversion | |
KR100239260B1 (ko) | 화상 디코딩 장치 | |
US6442206B1 (en) | Anti-flicker logic for MPEG video decoder with integrated scaling and display functions | |
US20100208799A1 (en) | Method for decoding image block | |
JP4764807B2 (ja) | 動きベクトル検出装置および動きベクトル検出方法 | |
JPH0837662A (ja) | 画像符号化復号化装置 | |
JPH09247679A (ja) | スケーラブルmpeg2適合ビデオ・エンコーダ | |
JPH07193823A (ja) | 映像データ・ブロック変換システム | |
JP2016514378A (ja) | 高効率次世代ビデオコーディングのためのコンテンツ適応双方向性又は機能性予測マルチパスピクチャ | |
EP1430724A1 (en) | Motion estimation and/or compensation | |
JP2011147189A (ja) | トランスコード装置及びトランスコード方法 | |
JPH09233477A (ja) | 動きベクトル生成方法 | |
US20080031335A1 (en) | Motion Detection Device | |
US6016163A (en) | Methods and apparatus for comparing blocks of pixels | |
KR100984953B1 (ko) | 데이터 검색 방법과 장치 및 이를 포함하는 비디오 재생장치 | |
KR100926752B1 (ko) | 동영상 부호화를 위한 미세 움직임 추정 방법 및 장치 | |
KR100397055B1 (ko) | 저전송율 영상통신을 위한 움직임 예측기 구조 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040127 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20040426 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20040621 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040727 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050310 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20050608 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20050616 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050912 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20051111 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060313 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20060324 |
|
A912 | Re-examination (zenchi) completed and case transferred to appeal board |
Free format text: JAPANESE INTERMEDIATE CODE: A912 Effective date: 20060512 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20090325 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20090331 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090629 |
|
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: 20090807 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120814 Year of fee payment: 3 |
|
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: 20130814 Year of fee payment: 4 |
|
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 |
|
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 |