JP2012514429A - 差分モーションベクトルの進歩的な空間フィルタリングを伴う多重候補モーション推定 - Google Patents

差分モーションベクトルの進歩的な空間フィルタリングを伴う多重候補モーション推定 Download PDF

Info

Publication number
JP2012514429A
JP2012514429A JP2011544546A JP2011544546A JP2012514429A JP 2012514429 A JP2012514429 A JP 2012514429A JP 2011544546 A JP2011544546 A JP 2011544546A JP 2011544546 A JP2011544546 A JP 2011544546A JP 2012514429 A JP2012514429 A JP 2012514429A
Authority
JP
Japan
Prior art keywords
candidate motion
motion vector
macroblock
motion vectors
candidate
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
JP2011544546A
Other languages
English (en)
Inventor
エル.シュミット マイケル
ダブリュー.ツァン ヴィッキー
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.)
Advanced Micro Devices Inc
Original Assignee
Advanced Micro Devices Inc
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 Advanced Micro Devices Inc filed Critical Advanced Micro Devices Inc
Publication of JP2012514429A publication Critical patent/JP2012514429A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/196Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/196Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters
    • H04N19/198Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters including smoothing of a sequence of encoding parameters, e.g. by averaging, by choice of the maximum, minimum or median value
    • 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
    • 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/436Methods 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 using parallelised computational arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/53Multi-resolution motion estimation; Hierarchical motion estimation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

【解決手段】
実施形態は、ビデオイメージのマクロブロックに対する幾つかの候補モーションベクトルのリストを決定しそして多重計算パスを介してそれらを保持する並列処理システム内で実行されるモーション推定方法を含む。全ての候補モーションベクトルは潜在的な近隣予測因子として用いられ、その結果、差分ベクトルの最良の組み合わせが候補リストのトップに上がる。単純にマクロブロックのペアの間での代わりに、8つまでの近隣マクログロックの間でモーションベクトルを比較するプロセスの間、差分モーションベクトルの多くの組み合わせが考慮される。モーション推定システムは、高度に並列的なGPUプラットフォーム上でのような多数の計算エンジンを用いるように構成される。このことは、パス毎に1つを除いてマクロブロックの間での従属性を有していないことによって達成される。これにより、パス毎の計算の数を極めて大きくすることができる。
【選択図】図2

Description

開示される実施形態は、概してビデオ圧縮技術に関し、更に特定的には並列処理システムを用いるモーション推定及び補償のための方法及びシステムに関する。
本出願は、タイトルが「差分モーションベクトルの進歩的な空間フィルタリングを伴う多重候補モーション推定」で2008年12月31日出願の米国出願番号12/347,932の利益を宣言する。
ビデオシステムにおいて伝送されるデータの量を低減するために、ビデオデータはしばしば符号化スキーム(coding scheme)によって圧縮される。ビデオコーデック(video codec)は、デジタルビデオのためにビデオ圧縮及び/又は復元を可能にするデバイス又はファームウエア/ソフトウエアプログラムである。モーションを伴うビデオの分野においては、多数の画素が1つのフレームから次のフレームへ変化するので、ビデオ圧縮スキームは、変化しつつある多数の画素に遅れをとらないように、より多くのデータを送る必要がある。高周波数細部変化の極端な場合には、ビデオ品質は劣化するかもしれない。ビデオ品質を維持し、更に送信されるデータの量を低減するために、種々の圧縮技術が開発されてきた。例えば、MPEGベースのビデオ圧縮は、典型的には、マクロブロックと称される隣接画素の正方形群上で動作する。画素のこれらのブロックは、1つのフレームから次のフレームへと比較され、そしてビデオ圧縮コーデックはそれらブロック内での差分のみを送信する。モーションを有していないビデオの分野は、従って極めて少ない送信データを必要とする。
ビデオ圧縮システムにおいては、効率的な符号化を可能にするために、予測技術もまた用いられる。MPEGビデオにおいて用いられる時間予測技術は、モーション推定に基いている。モーション推定は、連続するビデオフレームは多くの場合フレーム内での目標物の動きに起因する変化を除いて相似するであろうという前提に基いている。モーション推定プロセスにおいては、モーションベクトルが重要な要素である。モーションベクトルは、復号化された画像(picture)内の座標から参照画像と称される他の画像内の座標へのオフセットを提供する相互予測(inter prediction)のために用いられる二次元ベクトルである。モーションベクトルは、ある画像内のマクロブロックを、参照画像内におけるこのマクロブロック(又は類似のマクロブロック)の位置に基いて表すために用いられる。一般に、モーション推定は、1つの二次元イメージから他のイメージへの変換を通常はビデオシーケンス内の隣接フレームから記述するモーションベクトルを決定するプロセスである。モーションベクトルは、全体のイメージ(グローバルモーション推定)又は長方形ブロック、任意の形状のパッチ若しくは単なる個別の画素のような特定の部分に関連するであろう。モーションベクトルは、並進モデル(translational model)又は実際のビデオカメラのモーションを近似することができる他のモデルによって表され得る。
モーションベクトルをイメージに適用して次のイメージへの変換を合成することはモーション補償と称される。モーション推定とモーション補償の組み合わせは、MPEG1、2及び4の規格の他、多くの他のビデオコーデックによって用いられるビデオ圧縮方法の重要な部分である。
上述したように、ビデオコーデックの設計は、一般的に、ビデオフレームのシーケンスにおける多くの画素は著しい量では変化することがなく、あるいはそれらが変化する場合それらはそれらの隣接画素に対して空間的に又は時間的にそれでもなお類似しているという統計上の事実に基いている。モーションベクトルの使用は時間的な類似性を活用し(複数画素の1つのブロックはフレームからフレームへと同じままである)、またモーションベクトルを差動符号化することは、空間的な類似性を活用する(あるフレーム内の複数画素の1つのブロックはその近隣と同じモーションを有する)。MPEG−2及びH.264のようなコーデックは、差動符号化を利用することによってモーションベクトルの空間的類似性を活用する。図1は現在の既知の方法に従い近隣の複数のマクロブロック上で実行される空間フィルタリングの概念を示している。図1において、各ブロック102は、多数の行へと組織化された16×16画素の1つのマクロブロックを表している。処理の間、近隣の複数のブロックはペア毎に互いに比較され、また各ブロックをそれに隣接する単一又は複数のブロックと比較するためには少なくとも2つのパスが必要である。各ブロックはその2つの隣のブロックの各々と比較される。従って、マクロブロック2に対しては、図1に矢印で示されるように、マクロブロック1に対する第1の比較が実行され、そしてマクロブロック3に対する第2の比較が実行される。イメージ内のマクロブロックの全てのセットの処理は、既知の空間フィルタリングスキームに従って、奇数・偶数ペア上で進行し、次いで偶数・奇数ペア上で進行する。従って、図1のフレーム構造例に対しては、画像フレームブロックの左端に対して相対的に、処理は以下のように進行する。
第1のパス:1−2、3−4、5−6、7−8、…、46−47、48−49、50−51、52−53、…、91−92、93−94、95−96、97−98、…
第2のパス:2−3、4−5、6−7、…、47−48、49−50、51−52、…、92−93、94−95、96−97、…
モーション検出システムにおけるこの現行の空間フィルタリング方法は、2つ以上の連続する直列のパスを実行するので、各パスに対して余分な処理オーバヘッド(processing overhead)を消費する。この方法は、ある程度の並列処理を利用するではあろうが、一般的には、多重計算パスを介してのビデオイメージのマクロブロックのための幾つかの候補モーションベクトルに対してデータを保たないので、最新の多重プロセッサ設計を完全に活用することができない。
そこで、より高い品質のビデオ及び低減された処理オーバヘッドでのより低いビットレートを提供するために、現行のグラフィックス処理ユニットの並列処理能力を完全に利用するモーション推定システムが望まれている。
添付図面の図において実施形態は例示のために示されており限定のためではなく、図面において同様の参照符号は同様の要素を示す。
図1は現在の既知の方法に従い近隣の複数のマクロブロック上で実行される空間フィルタリング方法を示す図である。 図2は実施形態の下でモーション推定コンポーネントの実施形態を実装する符号器パイプラインのブロック図である。 図3は実施形態の下でモーション推定プロセスが実行されるイメージ又はイメージ断片に対する一連のマクロブロックの例を示す図である。 図4は実施形態の下でマクロブロックに対するモーションベクトルを決定する主たるステップを示すフローチャートである。 図5は実施形態の下で各マクロブロックに対する候補モーションベクトルを計算する方法を示す図である。 図6は実施形態の下で候補モーションベクトルを比較してマクロブロックに対する最良のモーションベクトルを決定する方法を示すフローチャートである。 図7は実施形態の下でモーションベクトル間の差分を微調整する方法を示すフローチャートである。
ここに説明される本発明の実施形態は、上述した従来の方法の問題の解決法を提供する。以下の説明においては種々の例が例示のために供されるが、限定を意図したものではない。実施形態は、ソフトウエア又はハードウエア符号器パイプラインに組み込まれるモーション推定コンポーネントを含み、このモーション推定コンポーネントは、より低いビットレート(より高い圧縮比)で符号器が同一の又は同様のビデオ品質の相対的レベルを維持することを可能にする。モーション推定コンポーネントは、現在知られている符号器において用いられている他の方法よりも少ない計算を実行しながらより低いビットレートを得る。
MPEGベースのビデオ圧縮システムにおいては、フレーム上で独立に符号化される最小の長方形は、マクロブロックと称され、そして1秒の1/30の周期を有する各フレームを伴って16×16画素のサイズを有している。特定のシステムは、16×16画素の全体フレームを統計的に解析して、ゼロ又は破棄されることになる極めて小さいアクティビティ(activity)から拡がっているアクティビティのレベルを決定する(このことは空間的アクティビティに対してのみ真実である)。標準的な圧縮システムは、一般に、比較的小さなアクティビティを呈する画素を破棄する。フルモーションビデオに対して、この種の解析は、知覚的に有意でない情報は破棄され且つ圧縮されたイメージが元の圧縮されていないバージョンと同じに見えるように人間の知覚が欠損データを補充することを当てにしている圧縮を実行するのには通常は適切である。一般的には、どのようなコーデックであっても、ビデオシーケンス内での所与の一連のフレームに対して、ある程度変化する品質を与え得る。典型的には、品質は、フレーム毎ベースでビットレート及び品質を設定するビットレート制御メカニズム(ビットレート割り当て)を介して制御される。
一般的な設計目標は、デジタルビデオデータを符号化することが可能な最も低いビットレートを用いることである。設計の複雑性を過度に高めることなしに、かつての標準よりも実質的に低いビットレートで良好なビデオ品質を提供するために、ビデオ圧縮のためのH.264標準が開発された(例えばMPEG−2、H.263、又はMPEG−4パート2のビットレートの半分以下)。H.264(MPEG−4パート10又はMPEG−4AVCとしても知られている)仕様は、ビデオ圧縮のための標準になってきており、ビデオを古い標準よりも更に効率的に圧縮することを可能にし且つ多種多様なネットワーク環境に対する応用のための更なる柔軟性を提供することを可能にするという多くの特徴を含んでいる。これらの特徴は、大きくて16×16から小さくて4×4のブロックサイズを伴う可変ブロックサイズモーション補償(モーション推定)を含んでおり、動いている領域の正確な断片化及びマクロブロック毎に多重モーションベクトルを使用する能力を可能にしている。
この説明の目的のために、「H.264」は、MPEG−4パート10又はMPEG−4AVC(進歩的ビデオ符号化(Advanced Video Coding))としても知られるビデオ圧縮のための標準を参照する。H.264は、ISO/IEC動画専門家グループ(Moving Picture Experts Group)(MPEG)と共にITU−Tビデオ符号化専門家グループ(Video Coding Experts Group)(VCEG)によって展開されるブロック指向モーション推定ベースのコーデック(block-oriented motion-estimation-based codecs)の1つである。
H.264コーデックのような多くの現行のビデオコーデックは、イメージ内の近隣のマクロブロックの間での時間的及び空間的な類似性を活用するために差分符号化の形態を利用する。符号化システムの実施形態は、図1に示されるような近隣のマクロブロックに対して実行される現行の空間的フィルタリング技術を凌駕する改善を提供する。図2は実施形態の下でモーション推定コンポーネントの実施形態を実装する符号器パイプラインのブロック図である。モーション推定コンポーネントは、高度に並列的な計算環境における多重処理エンジンの使用を通して多重近隣マクロブロックに対する反復的な比較ステップ及びスコアリングステップを実行することにより各マクロブロックに対する最良のモーションベクトルを探し出すことによって、ビデオ品質を最大化するように構成される。
図2のシステム200は、入力ビデオフレーム202を受信すると共に符号化ビデオビットストリーム216を生成する符号器パイプラインの実施形態である。入力ビデオフレーム202は、モーション推定コンポーネント204及び内部予測ユニット(intra-prediction unit)206へ入力される。これらのコンポーネントの出力は次いでオリジナル入力ビデオフレームと結合されて、正離散コサイン変換(fDCT)モジュールのような変換プロセス(T)、及び量子化プロセス(Q)を通過する。量子化されたデータは次いで、逆量子化プロセス(Q−1)及びiDCTのような逆変換プロセス(T−1)を介して処理される。逆変換されたデータは次いで、内部予測ユニット206及び随意的インループ非ブロック化フィルタ(optional in-loop deblocking filter)210のためにモーション推定出力と結合され、参照フレーム208を生成する。ビットレート制御ユニット212は量子化(Q)プロセスに対する制御を提供し、ビットレート制御ユニット212はまた、出力ビットストリーム216を生成する可逆(lossless)エントロピ符号化モジュール214からの入力を取り込む。ビットレート制御ユニット212は、圧縮されていないビデオデータ202をソースから受信し、そして標準H.264符号化のような符号化方法に従って圧縮化されたビデオ信号216を生成する。レート制御器コンポーネントは、符号器パラメータを動的に調節して、ビットレートパラメータによって指定される目標ビットレートを獲得する。レート制御器は、ビデオシーケンス内の各領域、個々の画像、画像の群、及び/又はサブ画像にビットの割当量(a budget of bits)を配分する。
1つの実施形態においては、モーション推定コンポーネント204は、大きな処理ステップ又はパス内で複数の近隣計算の間に従属関係がなんら要求されない方法で、提議されている近隣モーションベクトル(proposed neighboring motion vectors)のフィルタリング及び解析を実行する方法を実装している。このことは、マクロブロック毎の個別の計算エンジンの使用を容易にする。そのような計算エンジンは、グラフィックス処理ユニット(GPU)内の個々のシェーダ(shader)プロセッサ又はモーション推定のための専用のハードウエア回路であってよい。従って、図2のシステムは、多重中央処理ユニット(CPU)コア、多重GPUコア、又はハイブリッド多重コアCPU/GPUシステムを含むシステムのような並列プロセッサ計算環境において実装され得る。モーション推定コンポーネントの実施形態はまた、GPUシェーダシステム内においても用いられ得る。一般に、シェーダは一連のソフトウエア命令であり、主として描画効果(rendering effects)を実行するためにグラフィック資源によって用いられる。シェーダは、同時に大きなセットの要素に変換を適合させるため、例えば場面の区域内の各画素又はモデルの全ての頂点に対して変換を適合させるために書かれている。このようにシェーダは、本多重コアGPUシステムにおけるような並列処理に特に適している。
コンポーネント204によって実行されるモーション推定方法は、幾つかの候補モーションベクトルのリストを決定し、そして多重計算パスを介してそれらを保持する。この方法は、最初のパス内の単一の最良のコストスコア(cost score)がそのマクロブロックに対する結果を早々に独占してしまうことを回避する。全ての候補モーションベクトルは潜在的な近隣予測因子(neighboring predictors)として用いられ、その結果、差分ベクトルの最良の組み合わせが候補リストのトップに上がる。マクロブロックのペアの間でとは対照的に、8つまでの近隣マクログロックの間でモーションベクトルを比較するプロセスの間、差分モーションベクトルの多くの組み合わせが考慮される。モーション推定システムは、高度に並列的なGPUプラットフォーム上でのような多数の計算エンジンを用いるように構成される。このことは、パス毎に1つを除いてマクロブロックの間での従属性を有していないことによって達成される。これにより、パス毎の計算の数を極めて大きくすることができる。
1つの実施形態においては、多重並列プロセッサを用いる多重パスプロセスが一連のマクロブロックに対して実行されて、最良のモーションベクトルが決定される。図1に示されるようにマクロブロックの個々のペアを比較することの代わりに、当該方法は、単一のマクロブロックの可能性のある幾つかの直近の近隣、例えば8つまでの近隣に対する差分を比較する。図3は、実施形態の下でモーション推定プロセスが実行されるイメージ又はイメージ断片(image fragment)に対する一連のマクロブロック例を示している。図3のイメージ断片は多数のマクロブロックを含んでおり、それらは16×16ブロック又はそれよりも小さくてよい。図3のビデオイメージパターンに対しては、多くのマクロブロックは8つまでの近隣を有している。従って、例としてマクロブロック47に対しては、図3に矢印で示されるように、差分比較は8つの近隣1、2、3、46、48、91、92、及び93に対して実行される。
図4は実施形態の下でマクロブロックに対するモーションベクトルを決定する主たるステップを示すフローチャートである。1つの実施形態では、プロセスは3つのパスで進行し、ここでは、ブロック402の第1のパスは、ビデオイメージの多数のマクロブロックの各マクロブロックに対して候補モーションベクトルをおおまかに決定し、そして並べ替える(sorts)。ブロック404の第2のパスは、各候補モーションベクトルを近隣モーションベクトルと比較し、そして最良のモーションベクトルが決定されるまで反復スコアリングプロセス(iterative scoring process)を実行する。ブロック406の第3のパスは、複数のマクロブロックモーションベクトルの間での任意の差分を微調整する空間フィルタリングステップを実行することを備えた随意的なステップである。これらのパスの各々のための詳細な処理ステップは、以下のフローチャートにおいて説明される。
図5は実施形態の下に各マクロブロックに対して候補モーションベクトルを計算する方法を示している。ブロック502においては、各マクロブロックに対する1つ以上の候補モーションベクトル(CMV)が計算される。候補モーションベクトルは、数ある既知の従来の方法の1つを用いて計算することができる。このプロセスの例は4つの候補、及び最小差分絶対値和(SAD)プロセスを用いて提供されるであろうが、任意の類似の計量(metric)が用いられてもよい。
モーション推定プロセスにおけるブロック整合のためのSAD計量は、元のブロック内の各画素と比較のために用いられているブロック内の対応する画素との間の差の絶対値を取ることによって機能する。これらの差は合算されて、類似性の単純な計量、即ち差分イメージ(difference image)のLノルムを生成する。代替的な実施形態では、差分絶対値の二乗和(SSAD)のような他の計量が用いられてよい。他の可能な計量は変換差分絶対値和(sum of absolute transformed difference)(SATD)であり、これは、元のブロック内の画素と比較のために用いられているブロック内の対応する画素との間の差の周波数変換、通常はアダマール変換(Hadamard transform)(SAHD)を取ることによって機能する。変換それ自身は、多くの場合マクロブロック全体よりもむしろ小さいブロックのものである。例えば、完全16×16変換よりもむしろ一連の4×4ブロックが変換されてよい。一般に、SATDはその増大された複雑性に起因してSADよりも時間がかかるが、客観的計量及び主観的計量の両方の観点からすると、より正確に品質を予測することが可能であるという利点を有している。
1つの実施形態においては、各マクロブロックに対するCMVを計算するために階層的検索方法が用いられる。当該ブロックの周りに1つのボックス区域(box area)が定義され、そしてボックス区域は次いで多重領域(multiple regions)へと分割される。プロセスは次いで、各領域をそれがあたかも注目の領域であるかのように検索する。1つの例においては、4つの領域が定義され、そして4つのCMV値が決定される。これらの値はCMV、CMV、CMV、及びCMVで示される。この方法においては、各次元における2分の1のような定義された比率で区域がダウンサンプリングされる。従って、領域のサイズが100×100である場合には、ダウンサンプリング動作は、100×100の領域内での16×16ブロックの検索の代わりに、25×25の領域内での4×4ブロックの検索を生み出す。
各マクロブロックはCMV1−4のようなCMVのリストを有することになる。各マクロブロックに対する候補モーションベクトルのリストは、次いでブロック504において、コストの順で並べ替えられる(sorted by cost)。最小のコストが一般的には最良の候補を生み出す。1つの実施形態においては、コストは以下の式によって計算される。
Cost=SAD+λ(dMV)
上式において、dMVは予測されるモーションベクトルからの差分を伴う差分モーションベクトルである。予測されるモーションベクトルは0,0又は何らかの他のモーションベクトルであってよい。ラムダ(λ)ファクタは、その値がシステムの要求に応じて選択され得る正規化ファクタである。
図5のブロック506に示されるように、最低コスト(最良の)候補が次のパスのための予測因子として用いられる。即ち、最低コストCMVがコスト式内のdMV値と置き換わる。非選択の候補はブロック508において将来の使用のために保持され、そしてプロセスの第1のパスの出力は、ブロック510に示されるように、SAD及びコストを伴う並べ替えられたリストである。
図6は実施形態の下で候補モーションベクトルを比較してマクロブロックに対する最良のモーションベクトルを決定する方法を示すフローチャートである。ブロック602に示されるように、各候補モーションベクトルのその8つの近隣の各々との比較を実行することによってプロセスは開始し、例えば図3においては、単一のマクロブロック47はその8つの近隣1、2、3、46、48、91、92、及び93の各々と比較される。端の周囲では、幾つかのマクロブロックはより少ない近隣を有しているであろうから、これらのマクロブロックに対する比較ステップは、8つの近隣よりも少ないものを伴うであろう。比較ステップは、各近隣マクロブロックの並べ替えられたリスト内で候補モーションベクトルのリスト全体を照査し、そしてそのコストを例えば上記コスト式を用いることによって計算する。パス1プロセスからの最良のCMVは、コスト式における差分モーションベクトルに対して参照として置換され、従ってこのプロセスにおいては、Cost=SAD+λ(CMVbest)である。第2のパスの比較ステップは、複数のCMVの間での類似性の程度を本質的に決定する。CMV値が同一である場合には、比較されたマクロブロック間でビットが変化させられることはない。候補モーションベクトルは、あるブロックから8つの周囲のブロックの各々までの可能な差分である差分モーションベクトル(dMV)の群から選択される。
ブロック604においては、各近隣のリスト内の単一の最小CMVに対するスコアが増加させられる。単純な実装においては、各近隣のリスト内の単一の最小コストCMVは、そのスコアに追加されるスコアリング値1を得る。つまり、単一のマクロブロックに対する計算は、その8つの近隣の各々における1つのCMVに1スコアリングポイントを加える。代替的には、重み付けされたスコアが各リスト内の多重CMVに加えられる。
1つの実施形態においては、ブロック604に対して、最高スコアのCMVが変化するたびに、パス毎の変化の回数がいつ少ないかの表示を提供するために変化の総数が累積され得るように、フラグがセットされてよく(又は何らかの共有可能なグローバルカウンタがインクリメントされてよく)、その結果、過剰なパスは使用されない。代替的には、幾つかの固定された数のパスが、試験、利用可能な時間、品質設定、等に基いて用いられ得る。
全てのスコアリングが完了した後、各マクロブロックに対するCMVのリストは、リストのトップに位置する最高スコアと共にブロック606で記憶される。尚、最高スコアは最低コストとは異なる。一般的に、並べ替えるステップは、幾つかのマクロブロックに対する「最良の」モーションベクトルを変化させてよい。最良はスコアリング計算に対して用いられるから、幾つかの新たな最良CMVが存在することがある。ブロック608では、最適な結果に到達したか否かが決定される。1つの実施形態においては、このことは、更なる反復が有意な改善を付加しない相対的均衡点(relative equilibrium point)を規定する。そのような最適結果を決定するために、漸進的改善値(incremental improvement value)が規定されてよい。最適結果に到達していない場合には、最適結果又は最適に近い結果が相対的均衡に到達するまでプロセスはブロック602から繰り返す。最高スコア及び記憶されたCMVは次いで、各マクロブロックに対する最終的な結果としてのモーションベクトルとしてブロック610でセットされる。
図7は実施形態の下でモーションベクトル間の差分を微調整する方法を示すフローチャートである。ブロック702に示されるように、候補モーションベクトルのリストから最良のモーションベクトルが決定される。この最良のモーションベクトルは、一般的には、空間的に同様であることに関して全ての近隣が有益であると見出すであろうモーションベクトルを代表する。ブロック704では、プロセスは、ベクトル間の差分を微調整する空間フィルタリングステップ(SFODMV)を実行する。このことは、係数ビットにおけるいくらか小さな増加でゼロに低減され得る小さな差分を調整することに役立つ。このステップは、システムの品質及び性能の設定に応じて随意的なものであると考えられてよく、幾つかの場合には、そのような微調整は不要である。
概して、図5〜7に示されるビデオイメージの各マクロブロックに対して最良のモーションベクトルを計算する全体的なモーション推定プロセスは、従来の方法よりも低いビットレートでより良好なイメージを生成する。方法は、幾つかの候補モーションベクトルのリストを含み、そして多重計算パスを介してそれらを保持し、これにより、最初のパス内の単一の最良のSADがそのマクロブロックに対する結果を早々に独占してしまうことを回避する。また、全ての候補モーションベクトルは潜在的な近隣予測因子(neighboring predictors)として用いられ、その結果、差分ベクトルの最良の組み合わせがリストのトップに上がる。更に、差分モーションベクトルの多くの組み合わせが試みられるが、マクロブロックの個々のペアを単に比較することの代わりに、プロセスは、差分を全部で8つの可能な直近の近隣と比較する。
実施形態においては、全ての可能な近隣は、たとえ特定のコーデックがそのような近隣を予測因子として支持していないであろうとしても、照査される。これが行われる理由は、逆方向予測因子(inverse predictor)が有効であろうし、また予測因子の方向は、イメージ全体に対して平均における最小のdMVを決定することを試みる場合にほとんど差をもたらさないところにある。
1つの実施形態においては、方法は、高度に並列的なGPUプラットフォームのような多数のコンピュータエンジンを用いるコンピュータプラットフォーム内に実装される。これにより、方法が比較的多数の必要な計算を妥当な時間内で実行することが可能になる。このことは、概して、パス毎の1つを除きマクロブロック間に従属性を有していないことによって達成される。パス毎の計算の回数は多いであろうが、マクロブロック間には従属性はない。
使用されるプロセッサの数は、システムの制約及びビデオストリーム圧縮アプリケーションの要求に依存する。例えば典型的な場合には、10,000マクロブロックを処理するために約5,000スレッドが同時に用いられてよい。このことは、160の個別プロセッサを有し且つ式160(4(N))を介して決定されるシステムによってもたらすことができ、ここで4は1つの群内の1つのプロセッサ上で同時に処理されるスレッドの数を表し、またN(=2、4、又は8)はメモリ待ち時間を克服するように同時にスケジューリングされ得る群の数を表している。
説明されているモーション推定プロセスにおいては、提議された複数の近隣モーションベクトルのフィルタリング及び解析は、たとえ「最良の」提議されたベクトルが同一でなかったとしても、2つのベクトルを同一にすることを試みる。このことは、幾らかの割合の場合に、ベクトルを同一にすることによって節約されるビットは、それよりも僅かに大きい圧縮すべき残留データを有することによるビット損失よりも多いであろうから、ビデオ品質を改善し且つ/又はビットレートを低下させることに役立つ。この種のフィルタリングは、CPU上で行われるシーケンシャルブロック処理よりもむしろ、GPUシェーダモデルの計算において全てのブロックが並列的に考慮され且つ比較されるGPU処理に極めて適している。しかし、この概念はCPU、GPU及び専用のハードウエア符号器に適用可能である。用いられる特定のフィルタリングは、使用中の実際のコーデックに基いて選択されてよい。
概して、ここに説明される実施形態は、ビデオ符号器においてモーション推定を実行する方法に向けられており、方法は、ビデオイメージの各マクロブロックに対する1つ以上の候補モーションベクトルを計算して候補モーションベクトルのリストを形成することと、各候補モーションベクトルに対するコストを計算することと、最低コストから最高コストまでのコストで候補モーションベクトルのリストを並べ替えることと、最低コスト候補モーションベクトルを当該コスト計算の基本として用いて第1のマクロブロックの計算された候補モーションベクトルを複数の近隣マクロブロックの計算された候補モーションベクトルと比較することと、各マクロブロックに対する各候補モーションベクトルにベーススコアを割り当て、各マクロブロックに対する最低コスト候補モーションベクトルが増加させられたベーススコアを受け取るようにすることと、それぞれの候補モーションベクトルのベーススコア又は増加させられたベーススコアを、近隣マクロブロック内の候補モーションベクトルとのその類似性に依存するポイントで増加させることとを備えている。反復プロセスを通して、方法は、最低スコアから最高スコアまでのスコアに基き候補モーションベクトルのリストを再並び替えして候補モーションベクトルの新たなリストを作成し、候補モーションベクトルの新たなリストの各候補モーションベクトルを複数の近隣マクロブロックの計算された候補モーションベクトルと再比較し、そして候補モーションベクトルを再スコアリングして最高スコアリング候補モーションベクトルを決定し、更に規定された最小スレッショルドを最高スコアリング候補ベクトルの変化の回数が下回るまでこれらのステップを繰り返す。方法はまた、各マクロブロックに対するモーションベクトルに空間フィルタリングステップを実行してマクロブロックに対するモーションベクトルの間での小さな差を調整する。方法は、多重プロセッサシステムの専用の処理エンジンが、それぞれのマスクブロックの1つ以上の候補モーションベクトルを計算するステップを実行する多重プロセッサ計算環境において実行されてよい。
ここに説明されるモーション推定プロセスの実施形態は、内部予測ブロック206及び関連する回路が含まれる図2の回路に対するような標準的な予測MPEGスキームに適用することができる。ビデオストリームを処理する場合、MPEG符号器は3種類の符号化されたフレームを生成する。第1の種類のフレームは「I」フレーム又は内部符号化フレーム(intra-coded frame)と称される。これは最も単純な種類のフレームであり、そして静止画像の符号化された表現である。一般的にIフレームに対してはモーション推定処理は実行されず、それらの目的は、次の一連のフレームを復号化するための開始点を復号器に提供することである。第2の種類のフレームは「P」フレーム又は予測されたフレームと称される。復号化に際して、Pフレームは、複数の先行するPフレーム又はIフレームに含まれる情報から生成される。第3の種類のフレームは「B」フレーム又は双方向性フレームであり、最もありふれた種類のものである。Bフレームは前方及び後方の両方へ予測されるものであり、そして最後の及びその次のP又はIフレームから構成される。Pフレーム及びBフレームは両方ともフレーム間符号化フレーム(inter-coded frames)である。コーデック符号器は、ストリームをIBBP…のシーケンスのように符号化することがある。デジタルビデオ伝送においては、Bフレームはしばしば用いられない。この場合、シーケンスは、Iフレームとこれらに続く幾つかのPフレームとのみから構成されてよい。
実施形態はH.264標準に関連して説明されてきたが、他の同様の標準もまた図2の符号器回路のための基準として用いられてよいことに留意されたい。実施形態はまた、大きくて16×16及び小さくて4×4のようなブロックサイズ、あるいは16×8、8×16、8×8、8×4、及び4×8のような中間サイズを伴う可変ブロックサイズモーションシステムに向けられてもよい。
実施形態は符号変換(transcoding)システムにおいて用いられ得る。符号変換は、1つのデジタル的に符号化されたフォーマットの他のフォーマットへの直接的なデジタル―デジタル変換である。符号変換は、コンテンツ適合の多くの分野において見出すことができ、そして互換性のない又は旧式のデータをより適切なフォーマットへ変換するためにしばしば用いられる。符号変換はまた、例えば歌曲をCDフォーマットからコンピュータ及びMP3プレーヤでの再生のためのMP3フォーマットへ変換する場合のように、異なる再生デバイスにおける使用のための異なる種類のデジタルメディア上でコンテンツをアーカイブし又は配布するためにも用いられる。符号変換は更に、携帯電話コンテンツ適合の分野においても標準的に用いられる。この場合、携帯デバイス及びそれらの能力の多様性(diversity)に起因して符号変換が必要である。この多様性は、ソースコンテンツが目標デバイス上で適切に再生することを確実にするために、コンテンツ適合の中間状態を必要とする。
モーション推定システム及びプロセスの実施形態は、GPUシェーダのようなGPUコンポーネントに向けられているが、方法は、何らかの形態の並列計算を実装している任意の計算デバイス上で用いられ得る。また、処理システムに対して専用の又は集積化されたグラフィックス描画デバイスであるGPUデバイス又はビジュアル処理ユニット(VPU)を備えたグラフィックスシステムを参照して実施形態が説明されてきたが、そのような実施形態は、並列で用いられる他の多くの種類のビデオ生成エンジンに対しても用いられ得ることに留意されたい。そのようなビデオ生成エンジンは、デジタルプロジェクタのようなディスクリートビデオジェネレータの形態で実装されてよく、あるいは個別のIC(集積回路)デバイスの形態で提供される電子回路又はビデオベースのコンピュータシステムのためのアドオン(add-on)カードとして提供される電子回路であってよい。1つの実施形態においては、GPU制御システムを含むシステムは、パーソナルコンピュータ、ワークステーション、携帯型計算デバイス、デジタルテレビジョン、メディア再生デバイス、高機能(smart)通信デバイス、及びゲーム機、又は任意の他の類似の処理デバイスからなる群から選択される計算デバイスを備えている。
ここに説明されるシステム及び/又はコンポーネントは、1つ以上の電子回路として実装されてよい。ここに説明されるそのような回路は、製造プロセス及びマスクワークの制御を通して実装されてよく、これらは次いで関連する回路を製造するために使用されてよい。当業者に知られるそのような製造プロセス制御及びマスク生成は、例えばVerilog、VHDL、又は他のハードウエア記述言語での命令を含むコンピュータ可読媒体上のコンピュータ命令の記憶を含んでいる。
ここに説明されるシステムの種々の側面は、任意の種類の回路内にプログラムされる機能性として実装されてよく、そのような回路は、プログラム可能論理デバイス(「PLD」)、例えばフィールドプログラム可能ゲートアレイ(「FPGA」)、プログラム可能アレイ論理(「PAL」)デバイス、電気的にプログラム可能な論理デバイス及びメモリデバイス、並びに標準的なセルベースのデバイスの他に、特定用途向け集積回路を含む。種々の側面を実装するための幾つかの他の可能性は、メモリデバイス、メモリ(例えばEEPROM)を伴うマイクロコントローラ、組み込み型マイクロプロセッサ、ファームウエア、ソフトウエア、等を含む。また、ビデオストリームマイグレーション(migration)システムの種々の側面は、ソフトウエアベースの回路エミュレーション、個別論理(シーケンシャル及び組み合わせの)、特別注文デバイス、ファジー(ニューラル)論理、量子デバイス、及び上述のデバイス種類の任意の混成を有するマイクロプロセッサ内で具現化され得る。基本となるデバイス技術は、種々のコンポーネント種類、例えば相補型金属酸化物半導体(「CMOS」)のような金属酸化物半導体電界効果トランジスタ(「MOSFET」)技術、エミッタ結合論理(「ECL」)のようなバイポーラ技術、ポリマー技術(例えば、シリコン共役ポリマー(silicon-conjugated polymer)構造及び金属共役ポリマー金属(metal-conjugated polymer-metal)構造)、アナログ及びデジタル混合、等において提供され得る。
ここに開示される種々の機能は、ハードウエア、ファームウエアの任意の数の組み合わせを用いて、且つ/又は種々の機械可読媒体又はコンピュータ可読媒体において具現化されるデータ及び/又は命令として、それらの挙動、レジスタ転送、論理コンポーネント、及び/又は他の特性に関して説明され得ることにも留意されたい。そのようなフォーマットされたデータ及び/又は命令が具現化され得るコンピュータ可読媒体は、限定はされないが、種々の形態にある不揮発性記憶媒体(例えば、光学的な、磁気的な、又は半導体の記憶媒体)、及びワイヤレスな、光学的な、若しくは有線の信号媒体又はそれらの任意の組み合わせを介してそのようにフォーマットされたデータ及び/又は命令を転送するために用いられ得る搬送波を含む。そのようなフォーマットされたデータ及び/又は命令の搬送波による転送の例は、限定はされないが、1つ以上のデータ転送プロトコル(例えば、HTTP、FTP、SMPT、等)によるインターネット及び/又は他のコンピュータネットワークを介した転送(アップロード、ダウンロード、eメール、等)を含む。加えて、実施形態は、ビデオ符号化を可能にするアプリケーション(例えばビデオ編集ソフトウエア、コンテンツ作成ソフトウエア、等)を備えていてよい。そのようなアプリケーションは、汎用プロセッサ及び/又は専用プロセッサ(例えばCPU及び/又はGPUあるいはそれらの組み合わせ)をプログラムしてここに説明される本発明の種々の側面を実装する命令を含んでいてよい。そのようなアプリケーションは、ここに説明される方法で作成された符号化されたビデオデータを生成してよい。
明細書及び特許請求の範囲を通して、「備える(comprise)」、「備えている(comprising)」等の語は、文脈が明らかに別のものを必要としていない限り、排他的又は網羅的な意味とは対照的な包括的な意味、即ち、「限定されないが、〜を含んでいる(including, but not limited to)」の意味で解釈されるべきである。単数又は複数を使用する語はまた、複数又は単数をそれぞれ含む。また、「ここに」、「以下に」、「上記の、上述の」、「以下の」という語及び類似の意味の語は、この出願のいずれか特定の部分ではなくこの出願を全体として参照している。「又は、若しくは、あるいは(or)」の語が、2つ又はそれより多い項目のリストを参照して用いられている場合、当該語は、当該語の以下の解釈、即ちリスト内の任意の項目、リスト内の全ての項目、及びリスト内の項目の任意の組み合わせの全てを網羅する。
モーション推定方法及びシステムの例示された実施形態の上記説明は、網羅的であることを意図されておらず、あるいは開示される厳密な形態又は指示に本発明を限定することを意図されていない。グラフィック処理ユニット又はASICの具体的な実施形態、及びそのための例が例示を目的としてここに説明されるが、関連分野を含む当業者が認識するであろうように、種々の均等な修正が、開示される方法及び構造の範囲内で可能である。
上述の種々の実施形態の要素及び作用(acts)は、更なる実施形態を提供するために組み合わされ得る。これらの及び他の変更は、上述の詳細な説明を考慮して、開示されるシステムに対してなされ得る。
一般に、以下の特許請求の範囲では、使用される用語は、開示される方法を明細書及び特許請求の範囲に開示される特定の実施形態に限定するように解釈されるべきではない一方で、特許請求の範囲の下で動作する全ての動作及びプロセスを含むように解釈されるべきである。従って、開示される構造及び方法は開示によって限定されるものではなく、その代わり、記載されている方法の範囲はもっぱら特許請求の範囲によって決定されることになる。
開示される実施形態の特定の側面が特定の請求項の形態で以下に提供されるが、発明者は、方法論の種々の側面を任意の数の請求項の形態で検討している。例えば、1つの側面のみが機械可読媒体において具現化されるものとして記載されているかもしれないが、他の側面も同様に機械可読媒体において具現化され得る。従って、発明者は、本出願の出願後に追加的な請求項を加えて他の側面に対するそのような追加的な請求項の形態を追求する権利を留保する。

Claims (27)

  1. ビデオ符号器においてモーション推定を実行する方法であって、
    ビデオイメージの各マクロブロックに対する1つ以上の候補モーションベクトルを計算して候補モーションベクトルのリストを形成することと、
    各候補モーションベクトルに対するコストを計算することと、
    最低コストから最高コストまでのコストで候補モーションベクトルの前記リストを並べ替えることと、
    最低コスト候補モーションベクトルを当該コスト計算の基本として用いて第1のマクロブロックの前記計算された候補モーションベクトルを複数の近隣マクロブロックの前記計算された候補モーションベクトルと比較することとを備えた方法。
  2. 各マクロブロックに対する各候補モーションベクトルにベーススコアを割り当て、各マクロブロックに対する最低コスト候補モーションベクトルが増加させられたベーススコアを受け取るようにすることと、
    それぞれの候補モーションベクトルの前記ベーススコア又は増加させられたベーススコアを、近隣マクロブロック内の候補モーションベクトルとのその類似性に依存するポイントで増加させることとを備えた請求項1の方法。
  3. 前記複数の近隣マクロブロックは2乃至8のマクロブロックを備えている請求項2の方法。
  4. 最高スコアから最低スコアまでのスコアに基き候補モーションベクトルの前記リストを再並び替えして候補モーションベクトルの新たなリストを作成することと、
    候補モーションベクトルの前記新たなリストの各候補モーションベクトルを前記複数の近隣マクロブロックの前記計算された候補モーションベクトルと再比較することと、
    前記候補モーションベクトルを再スコアリングして最高スコアリング候補モーションベクトルを決定することとを更に備えた請求項2の方法。
  5. 再並び替えすること、再比較すること、及び再スコアリングすることの前記ステップは、規定された最小スレッショルドを前記最高スコアリング候補ベクトルの変化の回数が下回るまで反復的に繰り返される請求項4の方法。
  6. 前記最高スコアリング候補ベクトルの変化の回数をトラックするためのフラグ値を設定することを更に備えた請求項5の方法。
  7. 前記規定された最小スレッショルドは、最大フラグ値、反復の規定された回数、及び前記回数の反復を実行するための処理時間の最大量からなる群から選択される請求項6の方法。
  8. 各マクロブロックに対してそれぞれのマクロブロックに対するモーションベクトルとなるべき前記最高スコアリング候補モーションベクトルを規定することを更に備えた請求項5の方法。
  9. 各マクロブロックに対するモーションベクトルに空間フィルタリングステップを実行して前記マクロブロックに対する前記モーションベクトルの間での小さな差を調整することを更に備えた請求項8の方法。
  10. 前記空間フィルタリングステップは前記モーションベクトルの1つ以上の係数ビットを潜在的に増加させることによって前記モーションベクトル間の前記差をゼロに低減する請求項9の方法。
  11. 前記コストは正規化値を乗ぜられた差分モーションベクトルと合算される計量値を利用して計算される請求項10の方法。
  12. 前記計量は差分絶対値和(SAD)、差分絶対値の二乗和(SSAD)、又は変換差分和(SATD)の1つである請求項11の方法。
  13. 多重プロセッサシステムの専用の処理エンジンが、それぞれのマスクブロックの1つ以上の候補モーションベクトルを計算するステップを実行する請求項1の方法。
  14. 前記多重プロセッサシステムは多重コア中央処理ユニット(CPU)、多重コアグラフィカル処理ユニット(GPU)、又はハイブリッドCPU/GPUシステムの1つを備えている請求項13の方法。
  15. 前記多重プロセッサシステムはGPUシェーダシステムを備えている請求項14の方法。
  16. ビデオ符号化パイプラインにおける使用のためのモーション推定システムであって、
    ビデオイメージの各マクロブロックに対して1つ以上の候補モーションベクトルを計算して候補モーションベクトルのリストを形成する第1の回路と、
    各候補モーションベクトルに対するコストを計算すると共に最低コストから最高コストまでのコストで候補モーションベクトルの前記リストを並べ替える第2の回路と、
    最低コスト候補モーションベクトルを当該コスト計算の基本として用いて第1のマクロブロックの前記計算された候補モーションベクトルを複数の近隣マクロブロックであって2乃至8のマクロブロックを備えている複数の近隣マクロブロックの前記計算された候補モーションベクトルと比較する比較回路と、
    各マクロブロックに対する各候補モーションベクトルにベーススコアを割り当て、各マクロブロックに対する最低コスト候補モーションベクトルが増加させられたベーススコアを受け取るようにすると共に、それぞれの候補モーションベクトルの前記ベーススコア又は増加させられたベーススコアを、近隣マクロブロック内の候補モーションベクトルとのその類似性に依存するポイントで増加させるスコアラ回路とを備えたモーション推定システム。
  17. 各マクロブロックに対する最良の候補モーションベクトルは反復処理方法を通して決定され、上記反復処理方法においては、規定された最小スレッショルドを最高スコアリング候補ベクトルの変化の回数が下回るまで、最高スコアから最低スコアまでのスコアに基き候補モーションベクトルの前記リストは再並び替えされて候補モーションベクトルの新たなリストを作成し、候補モーションベクトルの前記新たなリストの各候補モーションベクトルは前記複数の近隣マクロブロックの前記計算された候補モーションベクトルと再比較され、候補モーションベクトルは再スコアリングされて最高スコアリング候補モーションベクトルを決定する請求項16のモーション推定システム。
  18. 前記最高スコアリング候補ベクトルの変化の前記回数をトラッキングすると共に変化の前記回数がいつ規定されたスレッショルド値を超えるかを決定するグローバルカウンタを更に備えた請求項17のモーション推定システム。
  19. 各マクロブロックに対するモーションベクトルに空間フィルタリングステップを実行して前記マクロブロックに対する前記モーションベクトルの間での小さな差を調整する空間フィルタ回路を更に備えた請求項18のモーション推定システム。
  20. 前記ビデオ符号器パイプラインは多重プロセッサシステムの一部分を備えており、前記第1の回路及び前記第2の回路はそれぞれのマスクブロックの1つ以上の候補モーションベクトルを計算する前記多重プロセッサシステムの専用の処理エンジンの一部を備えている請求項16のモーション推定システム。
  21. 前記多重プロセッサシステムは多重コア中央処理ユニット(CPU)、多重コアグラフィカル処理ユニット(GPU)、又はハイブリッドCPU/GPUシステムの1つを備えている請求項20のモーション推定システム。
  22. 前記多重プロセッサシステムはGPUシェーダシステムを備えている請求項14のモーション推定システム。
  23. 多重プロセッサ計算システム内のビデオ符号器においてモーション推定を実行する方法であって、
    各処理エンジンは単一のそれぞれのマクロブロックに専用である複数の処理エンジン内でビデオイメージの各マクロブロックに対する複数の候補モーションベクトルのコストを計算して候補モーションベクトルのリストを形成することと、
    第1のマクロブロックの計算された候補モーションベクトルを8つまでの近隣マクロブロックの計算された候補モーションベクトルと比較して各候補モーションベクトルに対する相対スコアを生成することと、
    最高スコアリング候補モーションを用いて1つ以上の後続のコスト計算ステップにおける各マクロブロックに対する候補モーションベクトルのコストを決定することと、
    各マクロブロックに対して最良の候補モーションベクトルが決定されるまで前記候補モーションベクトルを反復的に比較及び再スコアリングすることとを備えた方法。
  24. 前記最良の候補モーションベクトルは規定されたスレッショルドに到達した後の最高のスコアを伴う候補モーションベクトルである請求項23の方法。
  25. 各マクロブロックに対する前記最良のモーションベクトルに空間フィルタリングステップを実行して前記マクロブロックに対するモーションベクトルの間での小さな差を調整することを更に備えた請求項23の方法。
  26. 前記多重プロセッサシステムは多重コア中央処理ユニット(CPU)、多重コアグラフィカル処理ユニット(GPU)、又はハイブリッドCPU/GPUシステムの1つを備えている請求項23の方法。
  27. 前記多重プロセッサシステムはGPUシェーダシステムを備えている請求項26の方法。
JP2011544546A 2008-12-31 2009-12-23 差分モーションベクトルの進歩的な空間フィルタリングを伴う多重候補モーション推定 Pending JP2012514429A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/347,932 US20100166073A1 (en) 2008-12-31 2008-12-31 Multiple-Candidate Motion Estimation With Advanced Spatial Filtering of Differential Motion Vectors
US12/347,932 2008-12-31
PCT/US2009/069507 WO2010078212A1 (en) 2008-12-31 2009-12-23 Multiple-candidate motion estimation with advanced spatial filtering of differential motion vectors

Publications (1)

Publication Number Publication Date
JP2012514429A true JP2012514429A (ja) 2012-06-21

Family

ID=42102406

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011544546A Pending JP2012514429A (ja) 2008-12-31 2009-12-23 差分モーションベクトルの進歩的な空間フィルタリングを伴う多重候補モーション推定

Country Status (6)

Country Link
US (1) US20100166073A1 (ja)
EP (1) EP2382786A1 (ja)
JP (1) JP2012514429A (ja)
KR (1) KR20110107827A (ja)
CN (1) CN102342102A (ja)
WO (1) WO2010078212A1 (ja)

Families Citing this family (62)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8761253B2 (en) * 2008-05-28 2014-06-24 Nvidia Corporation Intra prediction mode search scheme
US8831099B2 (en) * 2008-12-17 2014-09-09 Nvidia Corporation Selecting a macroblock encoding mode by using raw data to compute intra cost
US20100158105A1 (en) * 2008-12-19 2010-06-24 Nvidia Corporation Post-processing encoding system and method
US9432674B2 (en) * 2009-02-02 2016-08-30 Nvidia Corporation Dual stage intra-prediction video encoding system and method
US20110206132A1 (en) * 2010-02-19 2011-08-25 Lazar Bivolarsky Data Compression for Video
US9313526B2 (en) 2010-02-19 2016-04-12 Skype Data compression for video
US9819358B2 (en) * 2010-02-19 2017-11-14 Skype Entropy encoding based on observed frequency
US9609342B2 (en) * 2010-02-19 2017-03-28 Skype Compression for frames of a video signal using selected candidate blocks
US20110206118A1 (en) * 2010-02-19 2011-08-25 Lazar Bivolarsky Data Compression for Video
KR20120016991A (ko) * 2010-08-17 2012-02-27 오수미 인터 프리딕션 방법
WO2012042719A1 (ja) * 2010-09-30 2012-04-05 三菱電機株式会社 動画像符号化装置、動画像復号装置、動画像符号化方法及び動画像復号方法
FR2966679A1 (fr) * 2010-10-25 2012-04-27 France Telecom Procedes et dispositifs de codage et de decodage d'au moins une image a partir d'un epitome, signal et programme d'ordinateur correspondants
US9473789B2 (en) 2010-12-14 2016-10-18 M&K Holdings Inc. Apparatus for decoding a moving picture
CN107071459B (zh) 2010-12-14 2020-01-03 M&K控股株式会社 用于编码运动画面的设备
TR201904717T4 (tr) * 2010-12-17 2019-05-21 Mitsubishi Electric Corp Hareketli görüntü kodlama cihazı, hareketi görüntü kod çözme cihazı, hareketli görüntü kodlama yöntem ve hareketli görüntü kod çözme yöntemi.
GB2486726B (en) * 2010-12-23 2017-11-29 British Broadcasting Corp Compression of pictures
US20130128983A1 (en) * 2010-12-27 2013-05-23 Toshiyasu Sugio Image coding method and image decoding method
US9049455B2 (en) 2010-12-28 2015-06-02 Panasonic Intellectual Property Corporation Of America Image coding method of coding a current picture with prediction using one or both of a first reference picture list including a first current reference picture for a current block and a second reference picture list including a second current reference picture for the current block
CN102611881B (zh) * 2011-01-19 2014-06-25 华为技术有限公司 参考运动矢量获取方法、模块及编、解码装置
TWI466550B (zh) * 2011-02-23 2014-12-21 Novatek Microelectronics Corp 多媒體裝置及其移動偵測方法
US9143795B2 (en) 2011-04-11 2015-09-22 Texas Instruments Incorporated Parallel motion estimation in video coding
CN105187838A (zh) * 2011-05-31 2015-12-23 Jvc建伍株式会社 动图像解码装置、动图像解码方法、接收装置及接收方法
TWI628950B (zh) 2011-06-27 2018-07-01 三星電子股份有限公司 影像解碼裝置
CN105430390B (zh) * 2011-06-30 2017-04-12 Jvc建伍株式会社 图像解码装置、图像解码方法、接收装置及接收方法
KR20130030181A (ko) 2011-09-16 2013-03-26 한국전자통신연구원 움직임 벡터 예측기를 이용한 움직임 벡터 부호화/복호화 방법 및 장치
CN103096050B (zh) * 2011-11-04 2016-08-03 华为技术有限公司 视频图像编解码的方法及装置
KR20130050149A (ko) * 2011-11-07 2013-05-15 오수미 인터 모드에서의 예측 블록 생성 방법
KR20130050406A (ko) 2011-11-07 2013-05-16 오수미 머지 모드에서의 움직임 정보 생성 방법
CN109996082B (zh) * 2011-11-08 2022-01-25 韩国电子通信研究院 用于共享候选者列表的方法和装置
CN103139556B (zh) * 2011-11-23 2016-12-28 华为技术有限公司 视频图像编解码的方法及装置
KR101707463B1 (ko) * 2011-12-29 2017-02-16 인텔 코포레이션 가변 깊이 압축
WO2013111551A1 (ja) * 2012-01-27 2013-08-01 パナソニック株式会社 動画像符号化方法、動画像符号化装置、動画像復号方法、および、動画像復号装置
KR101932916B1 (ko) * 2012-06-28 2018-12-27 삼성전자 주식회사 모션 추정 시스템 및 그 방법, 디스플레이 컨트롤러, 및 전자 장치
US10171836B2 (en) 2012-10-07 2019-01-01 Lg Electronics Inc. Method and device for processing video signal
CN102946536B (zh) * 2012-10-09 2015-09-30 华为技术有限公司 候选矢量列表构建的方法及装置
CN105493500A (zh) * 2013-03-30 2016-04-13 安徽广行领视通信科技有限公司 用于解码可变质量视频位流的方法和设备
WO2015058397A1 (en) 2013-10-25 2015-04-30 Microsoft Technology Licensing, Llc Representing blocks with hash values in video and image coding and decoding
KR20160075705A (ko) 2013-10-25 2016-06-29 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 비디오 및 이미지 코딩에서의 해시 기반 블록 매칭
CN105556971B (zh) 2014-03-04 2019-07-30 微软技术许可有限责任公司 针对帧内块复制预测中的块翻动和跳跃模式的编码器侧判定
KR102185245B1 (ko) 2014-03-04 2020-12-01 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 해시 기반 블록 매칭을 위한 해시 테이블 구성 및 이용가능성 검사
KR20150113714A (ko) * 2014-03-31 2015-10-08 인텔렉추얼디스커버리 주식회사 깊이 정보를 이용한 움직임 병합 후보 부호화/복호화 방법 및 장치
KR20150113715A (ko) * 2014-03-31 2015-10-08 인텔렉추얼디스커버리 주식회사 깊이 정보를 이용한 움직임 정보 유도방법 및 장치, 움직임 병합 후보 유도방법 및 장치
CN105706450B (zh) 2014-06-23 2019-07-16 微软技术许可有限责任公司 根据基于散列的块匹配的结果的编码器决定
US10123036B2 (en) * 2014-06-27 2018-11-06 Microsoft Technology Licensing, Llc Motion vector selection for video encoding
US10757437B2 (en) 2014-07-17 2020-08-25 Apple Inc. Motion estimation in block processing pipelines
US9762919B2 (en) 2014-08-28 2017-09-12 Apple Inc. Chroma cache architecture in block processing pipelines
JP6462119B2 (ja) 2014-09-30 2019-01-30 マイクロソフト テクノロジー ライセンシング,エルエルシー コンピューティングデバイス
CA2958255A1 (en) * 2015-01-29 2016-08-04 Ecole De Technologie Superieure Method and apparatus for video intermodal transcoding
CN105338354B (zh) * 2015-09-29 2019-04-05 北京奇艺世纪科技有限公司 一种运动向量估计方法和装置
US10390039B2 (en) 2016-08-31 2019-08-20 Microsoft Technology Licensing, Llc Motion estimation for screen remoting scenarios
US11095877B2 (en) 2016-11-30 2021-08-17 Microsoft Technology Licensing, Llc Local hash-based motion estimation for screen remoting scenarios
US20180184107A1 (en) * 2016-12-28 2018-06-28 Novatek Microelectronics Corp. Motion estimation method and motion estimation apparatus
US10523961B2 (en) 2017-08-03 2019-12-31 Samsung Electronics Co., Ltd. Motion estimation method and apparatus for plurality of frames
RU2656785C1 (ru) * 2017-08-03 2018-06-06 Самсунг Электроникс Ко., Лтд. Оценка движения путем трехмерного рекурсивного поиска (3drs) в реальном времени для преобразования частоты кадров (frc)
CN109495738B (zh) * 2017-09-12 2023-02-07 华为技术有限公司 一种运动信息的编解码方法和装置
US10169843B1 (en) * 2017-11-20 2019-01-01 Advanced Micro Devices, Inc. Temporal foveated rendering using motion estimation
EP3769527A1 (en) * 2018-03-26 2021-01-27 Huawei Technologies Co., Ltd. A video image encoder, a video image decoder and corresponding methods for motion information coding
WO2019199071A1 (ko) * 2018-04-13 2019-10-17 엘지전자 주식회사 영상 코딩 시스템에서 인터 예측에 따른 영상 디코딩 방법 및 장치
WO2019203513A1 (ko) * 2018-04-16 2019-10-24 엘지전자 주식회사 영상 코딩 시스템에서 dmvd 를 이용한 인터 예측에 따른 영상 디코딩 방법 및 장치
CN110662037B (zh) 2018-06-29 2022-06-28 北京字节跳动网络技术有限公司 运动信息共享的限制
US11202085B1 (en) 2020-06-12 2021-12-14 Microsoft Technology Licensing, Llc Low-cost hash table construction and hash-based block matching for variable-size blocks
US20230094825A1 (en) * 2021-09-28 2023-03-30 Qualcomm Incorporated Motion vector difference sign prediction for video coding

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04345288A (ja) * 1991-05-22 1992-12-01 Olympus Optical Co Ltd 動ベクトル検出方法及びその装置
US20030163281A1 (en) * 2002-02-23 2003-08-28 Samsung Electronics Co., Ltd. Adaptive motion estimation apparatus and method
JP2004180044A (ja) * 2002-11-28 2004-06-24 Shibasoku:Kk 動きベクトル処理方法及び動きベクトル処理回路

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7145950B2 (en) * 2003-07-14 2006-12-05 Primax Electronics Ltd. Method of motion vector determination in digital video compression
KR100579542B1 (ko) * 2003-07-29 2006-05-15 삼성전자주식회사 블럭 간의 상관성을 고려한 움직임 추정 장치 및 방법
US8000392B1 (en) * 2004-02-27 2011-08-16 Vbrick Systems, Inc. Phase correlation based motion estimation in hybrid video compression
KR100631768B1 (ko) * 2004-04-14 2006-10-09 삼성전자주식회사 비디오 코딩에서 프레임간 예측방법 및 비디오 인코더와,비디오 디코딩방법 및 비디오 디코더
US8588513B2 (en) * 2005-07-18 2013-11-19 Broadcom Corporation Method and system for motion compensation
EP1755342A1 (en) * 2005-08-19 2007-02-21 Thomson Licensing Method and apparatus for iteratively calculating a set of global motion parameters for a picture sequence from block motion vectors
TWI271106B (en) * 2005-10-25 2007-01-11 Novatek Microelectronics Corp Apparatus and method for motion estimation supporting multiple video compression standards
EP1960967B1 (en) * 2005-12-15 2013-03-13 Analog Devices, Inc. Motion estimation using prediction guided decimated search
US8160150B2 (en) * 2007-04-10 2012-04-17 Texas Instruments Incorporated Method and system for rate distortion optimization
KR100939917B1 (ko) * 2008-03-07 2010-02-03 에스케이 텔레콤주식회사 움직임 예측을 통한 부호화 시스템 및 움직임 예측을 통한부호화 방법
US20100020877A1 (en) * 2008-07-23 2010-01-28 The Hong Kong University Of Science And Technology Multiple reference frame motion estimation in video coding

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04345288A (ja) * 1991-05-22 1992-12-01 Olympus Optical Co Ltd 動ベクトル検出方法及びその装置
US20030163281A1 (en) * 2002-02-23 2003-08-28 Samsung Electronics Co., Ltd. Adaptive motion estimation apparatus and method
JP2004180044A (ja) * 2002-11-28 2004-06-24 Shibasoku:Kk 動きベクトル処理方法及び動きベクトル処理回路

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
JPN5012005354; FRIEDERICH MOMBERS ET AL.: 'IMAGE: A LOW COST, LOW POWER VIDEO PROCESSOR FOR HIGH QUALITY MOTION ESTIMATION IN MPEG-2 ENCODING' IEEE TRANSACTIONS ON CONSUMER ELECTRONICS Vol.44, No.3, 199808, pp.774-783, IEEE *
JPN5012005355; GWO GIUN(CHRIS) LEE ET AL.: 'ALGORITHM/ARCHITECTURE CO-DESIGN OF 3-D SPATIO-TEMPORAL MOTION ESTIMATION FOR VIDEO CODING' IEEE TRANSACTIONS ON MULTIMEDIA Vol.9, No.3, 200704, pp.455-465, IEEE *

Also Published As

Publication number Publication date
US20100166073A1 (en) 2010-07-01
WO2010078212A1 (en) 2010-07-08
CN102342102A (zh) 2012-02-01
KR20110107827A (ko) 2011-10-04
EP2382786A1 (en) 2011-11-02

Similar Documents

Publication Publication Date Title
JP2012514429A (ja) 差分モーションベクトルの進歩的な空間フィルタリングを伴う多重候補モーション推定
US20150172687A1 (en) Multiple-candidate motion estimation with advanced spatial filtering of differential motion vectors
US10397575B2 (en) Image coding apparatus, image coding method, and program, and image decoding apparatus, image decoding method, and program
US10291925B2 (en) Techniques for hardware video encoding
CN101584215B (zh) 综合空时预测
CN104038763A (zh) 图像编码装置及方法,和图像解码装置及方法
US9596467B2 (en) Motion estimation device for predicting a vector by referring to motion vectors of adjacent blocks, motion estimation method and storage medium of motion estimation program
CN104754337A (zh) 视频编码方法
JP6585776B2 (ja) 処理方法
TWI510050B (zh) 量化控制裝置及方法,以及量化控制程式
JP2012129791A (ja) 画像符号化装置
US8811474B2 (en) Encoder and encoding method using coded block pattern estimation
TW201320769A (zh) 圖像編碼方法、圖像解碼方法、圖像編碼裝置、圖像解碼裝置、圖像編碼程式及圖像解碼程式
Jubran et al. Sequence-level reference frames in video coding
JP4222046B2 (ja) 信号処理装置および方法、記録媒体、並びにプログラム
JP2008072608A (ja) 画像符号化装置及び画像符号化方法
WO2013065524A1 (ja) 画像符号化装置
KR20070092481A (ko) H.264 동영상 부호화기의 적응적 고속 움직임 추정 방법
CN116320443A (zh) 视频图像处理方法、装置、计算机设备和存储介质
JP5276957B2 (ja) 動画像符号化方法及び装置
JP2009272672A (ja) 動画像符号化方法および動画像符号化装置
JP2003230150A (ja) 動画像符号化方法、この方法のプログラム、このプログラムを記録した記録媒体

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20121029

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20140409