JP4662636B2 - 動き推定とブロックマッチング・パターンの改良 - Google Patents

動き推定とブロックマッチング・パターンの改良 Download PDF

Info

Publication number
JP4662636B2
JP4662636B2 JP2000586105A JP2000586105A JP4662636B2 JP 4662636 B2 JP4662636 B2 JP 4662636B2 JP 2000586105 A JP2000586105 A JP 2000586105A JP 2000586105 A JP2000586105 A JP 2000586105A JP 4662636 B2 JP4662636 B2 JP 4662636B2
Authority
JP
Japan
Prior art keywords
block
search
target
motion vector
motion
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
Application number
JP2000586105A
Other languages
English (en)
Other versions
JP2002532026A (ja
JP2002532026A5 (ja
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.)
Microsoft Corp
Original Assignee
Microsoft Corp
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 Microsoft Corp filed Critical Microsoft Corp
Publication of JP2002532026A publication Critical patent/JP2002532026A/ja
Publication of JP2002532026A5 publication Critical patent/JP2002532026A5/ja
Application granted granted Critical
Publication of JP4662636B2 publication Critical patent/JP4662636B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime 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/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/567Motion estimation based on rate distortion criteria
    • 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/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/56Motion estimation with initialisation of the vector search, e.g. estimating a good candidate to initiate a search

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Television Systems (AREA)
  • Image Analysis (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Ultra Sonic Daignosis Equipment (AREA)

Description

【0001】
(技術分野)
本発明はビデオ符号化に関し、具体的には、ビデオ符号化アプリケーションで動き推定を行うための改良方法に関する。
【0002】
(発明の背景)
アナログビデオ信号をベースとするフル・モーション・ビデオ・ディスプレイは、長期間にわたってテレビジョンの形で利用されてきた。近年、コンピュータの処理能力が進歩し、コンピュータが手ごろな値段で入手可能になったことに伴い、デジタル・ビデオ信号をベースとするフル・モーション・ビデオ・ディスプレイが幅広く利用されるになっている。デジタル・ビデオ・システムは、従来のアナログ・ビデオ・システムに比べると、フル・モーション・ビデオ・シーケンスの創作、変更、伝送、保管、およびプレイ(再生)の面で大幅に向上している。
【0003】
デジタル・ビデオ・ディスプレイは、30Hzから75Hzまでの範囲の周波数で連続的にプレイまたはレンダリング(rendering)される画像フレーム(image frame)を非常に多数含んでいる。各画像フレームは、特定のシステムのディスプレイ解像度に基づくピクセル配列(array of pixels)から形成された静止画像(still image)になっている。いくつかの例を挙げると、VHSベースのシステムでは、ディスプレイ解像度が320x480ピクセルに、NTSCベースのシステムでは、ディスプレイ解像度が720x486ピクセルに、開発段階にある高精細テレビジョン(high-definition televisionHDTV)ベースのシステムでは、ディスプレイ解像度が1360x1024ピクセルになっている。
【0004】
ビデオ・シーケンスに含まれる生(raw未処理)デジタル情報量は非常に大量である。このような大量のビデオ情報を保管し、伝送することは、従来のパーソナル・コンピュータ機器では実現不可能である。たとえば、320x480ピクセル解像度を有する相対的に低解像度のVHS画像フォーマットをデジタル化した場合を考えてみる。この解像度で、持続時間が2時間のモーション・ピクチャ(動画)の全長は、100ギガ・バイトのデジタル・ビデオ情報に相当している。これに比べて、従来のコンパクト光ディスクは容量が0.6ギガ・バイトであり、磁気ハードディスクは容量が1−2ギガ・バイトであり、開発段階にあるコンパクト光ディスクは容量が最大8ギガ・バイトである。
【0005】
このような大量のデジタル・ビデオ情報を保管または伝送するときの制約を解消するために、さまざまなビデオ圧縮標準またはプロセスが確立されており、その中には、MPEG−1、MPEG−2、およびH.26Xが含まれている。これらのビデオ圧縮手法は、時間的またはインターフレーム(フレーム間)相関(temporal or interframe correlation)と呼ばれる、連続する画像フレーム間の類似性を利用してインターフレーム圧縮を得ており、そこではフレーム間の変化を符号化(エンコード)するために動きデータ(motion data)と誤差信号が使用されている。
【0006】
さらに、従来のビデオ圧縮手法は、空間的またはイントラフレーム(フレーム内)相関(spatial or intraframe correlation)と呼ばれる、画像フレーム内の類似性を利用してイントラフレーム圧縮を得ており、そこでは画像フレーム内の画像サンプルが圧縮されている。イントラフレーム圧縮は、離散コサイン変換(discrete cosine transformDCT)符号化のように、静止画像を符号化する従来のプロセスに基づいている。このタイプの符号化は、「テクスチャ(texture)」または「変換(transform)符号化とも呼ばれている。ここで「テクスチャ」とは、広い意味では、色差(chrominanceクロミナンス)値と輝度(luminanceルミナンス)値の配列(アレイ)やアルファ(不透明)値の配列のように、画像サンプル値の2次元配列のことである。また、ここで言う「変換」という用語は、符号化プロセスの過程で画像サンプルがどのように空間的周波数成分に変換されるかを表している。ここで使用している「変換」という用語は、ある種のインターフレーム圧縮手法でシーン変化を推定するために使用される幾何的変換(geometric transform)とは区別しておく必要がある。
【0007】
インターフレーム圧縮では、動き推定(motion estimation)と動き補償(motion compensation)を利用して、フレーム間のシーン変化を推定しているのが代表的である。動き推定とは、フレーム間の画像サンプル(たとえば、ピクセル)の動きを推定するプロセスである。動き推定を使用して、符号器(encoder−エンコーダ)は、あるフレーム内のピクセルのブロックを別のフレーム内の対応するピクセルと突き合わせることを試みる。最も類似するブロックが所与のサーチ・エリアで見つかると、対応するピクセルのピクセル・ロケーションの置換が近似化され、動きベクトル(motion vector)のような動きデータとして表される。動き補償とは、予測画像(predicted image)を決定し、その予測画像とオリジナル画像との誤差を計算するプロセスである。動き補償を使用して、符号器は動きデータを画像に適用し、予測画像を計算する。予測画像と入力画像との差分は、誤差信号と呼ばれている。誤差信号は、画像サンプル値間の差分を表す値の配列にすぎないため、この誤差信号は、画像サンプルをイントラフレーム符号化するときに使用されるのと同じテクスチャ符号化手法を使用して圧縮することができる。
【0008】
具体的実装方法に違いがあるとしても、MPEG−1、MPEG−2、およびH.26Xビデオ圧縮標準には類似する面がいくつかある。以下ではMPEG−2ビデオ圧縮標準が説明されているが、その説明は全体的には他のビデオ標準にも当てはまるものである。
【0009】
MPEG−2では、ビデオ画像内のピクセルの四角ブロックまたは配列に基づいてインターフレーム圧縮とイントラフレーム圧縮を得ている。ビデオ画像は、16x16ピクセルの寸法をもつマクロブロック(macroblock)と呼ばれる、画像サンプル・ブロックに分割されている。MPEG−2では、マクロブロックは、4つの輝度ブロック(各ブロックは8x8輝度(Y)サンプルからなる)と2つの色差ブロック(CbとCrごとに8x8サンプル・ブロック)を含んでいる。
【0010】
MPEG−2では、インターフレーム符号化はマクロブロックについて行われている。MPEG−2符号器は、動き推定と動き補償を行って動きベクトルとブロック誤差信号を計算している。画像フレームN内の各々のブロックMごとに、つぎに続くビデオ・フレームN+1に、または直前の画像フレームN−1の画像に渡って(つまり、双方向に)サーチが行われ、最も類似するそれぞれのブロックMN+1またはMN−1を特定している。最も類似するブロックのブロックMに対する位置が、動きベクトル(DX,DY)を使用して符号化される。そのあと、動きベクトルは予測サンプル値のブロックを計算するために使用される。これらの予測サンプル値はブロックMと比較され、ブロック誤差信号が求められる。誤差信号は、離散コサイン変換(DCT)符号化などの、テクスチャ符号化手法を使用して圧縮される。
【0011】
オブジェクト・ベースのビデオ符号化手法は、従来のフレーム・ベース符号化標準の改良版として提案されたものである。オブジェクト・ベース符号化では、任意形状画像フィーチャは、「セグメンテーション(segmentation)」と呼ばれる手法を使用してビデオ・シーケンス内のフレームから分離されている。ビデオ・オブジェクト、つまり、「セグメント」は独立に符号化されている。オブジェクト・ベース符号化によると、連続フレーム内のビデオ・オブジェクト間のインターフレーム相関が大きくなるので、圧縮レートを向上することができる。また、オブジェクト・ベース符号化は、ビデオ・シーケンス内のオブジェクトにアクセスし、それをトラッキング(追跡)していく必要のある種々のアプリケーションで利用すると、便利である。
【0012】
MPEG−4標準用に提案されているオブジェクト・ベースのビデオ符号化手法では、ビデオ・オブジェクトの形状、動きおよびテクスチャは独立に符号化されている。オブジェクトの形状は、ビデオ・フレーム内の任意形状オブジェクトの境界(boundary)を定義している1つのバイナリ(binary)またはアルファ(alpha)マスクで表されている。オブジェクトの動きは、長方形フレームから分離されたオブジェクトの任意形状画像に適用されることを除けば、MPEG−2の動きデータに類似している。動き推定と動き補償は、フレーム全体ではなく、「ビデオ・オブジェクト・プレーン」のブロックに対して行われる。ビデオ・オブジェクト・プレーン(video object plane)とは、シングル・フレーム内のオブジェクトの形状画像を表す名前である。
【0013】
ビデオ・オブジェクトのテクスチャは、オブジェクトの形状の内側に位置するビデオ・オブジェクト・プレーン内の画像サンプル情報である。オブジェクトの画像サンプルと誤差信号のテクスチャ符号化は、フレーム・ベース符号化で行われるのと類似のテクスチャ符号化手法を使用して行われる。たとえば、セグメント化画像は、マクロブロックから形成された境界長方形(bounding rectangle)内にはめ込むことが可能である。境界長方形で形成された長方形画像は、透明マクロブロックは符号化の必要がないことを除けば、長方形フレームと同じように圧縮することができる。部分的に透明なブロックは、サンプル値を有するそのオブジェクトの形状境界(boundary)外側を「パディング(padding埋め込み)」と呼ばれる技法でそのブロックのその部分を満たしたあと符号化されている。
【0014】
フレーム・ベース符号化とオブジェクト・ベース符号化のどちらの場合も、動き推定のプロセスは、符号化プロセスのスピードとビデオ品質の両面で符号化システムの重要な部分となっている。H263とMPEG−4のどちらの符号化標準も、マクロブロックについて動き推定を行っている。動き推定プロセスの目標は、動き補償のあと誤差信号が最小となるようなマクロブロックを、参照ピクチャ(reference picture−参照画像)の中から見つけることである。誤差信号を最小化することによって、符号器は、マクロブロックの符号化に必要なビット数を最小限にすることを試みる。しかし、誤差信号を符号化することのほかに、符号器は、マクロブロック・ヘッダと動きベクトルも符号化しなければならない。誤差信号を最小化することは、その誤差信号の符号化に必要なビット数が最小限化するかも知れないが、マクロブロック全体の符号化が最大限に効率化されるとは限らない。
【0015】
(発明の概要)
本発明は、動き推定を行うための改良方法を提供している。本発明の一側面は、ブロックに関する動きパラメータ(たとえば、動きベクトル)を選択するために動きと誤差の結合データ(combined motion and error data)の測定量を使用して、ことによって符号化効率を向上する、動き推定を行う方法である。この修正探索基準(modified search criteria)は、誤差信号と同様にブロックに関する動きパラメータに関連付けられたオーバー・ヘッドを考慮に入れている。
【0016】
一実施形態による符号器(encoder)では、動き推定プロセスにおいてピクセルの合致する(マッチング)ブロックを見つける探索基準として、動きと誤差信号データ結合された測定量を使用している。ブロック・マッチング方式を使用して、符号器は、ソース・フレーム内のソース・ブロックに対応するマッチング・ブロックを、ターゲット・フレームの中から探し出している。この探索の目的は、ソース・ブロックに対する動きと誤差信号の結合符号化オーバー・ヘッドを最小限にするピクセル・ブロックをターゲット・フレームの中から見つけることである。この修正探索基準を使用することで、符号器はより良い符号化効率を実行することができる。
【0017】
本発明の別の側面は、マッチング・プロセスで効率のよい探索パス(search path)を選択することによって符号化スピードを向上する、ピクセル・ブロックマッチングを行う方法が提供される。具体的には、この方法によれば、ブロック・マッチング・プロセスで使用される探索順序(search order)は、望みの開始ポイント(desired starting point)(たとえば、予測ポイント)に近いピクセルが、その望みの開始ポイントから遠く離れた個所にあるピクセルよりも先に探索されるような順序になっている。
【0018】
MPEG−4符号化標準用に設計された実施形態では、上記アプローチが使用されて、望みの開始ポイントに近いブロックが最初に探索されるようにターゲット・フレーム内のブロックの探索順序をシフトしている。MPEG−4のような符号化標準では、動きベクトル・サイズを制限する制約があり、そのことが探索開始ポイントと言えない結果に至らしめるため、探索パスを最適化する必要性が生じている。その探索の開始ポイントが最適でないのは、動きベクトルがサイズで制限されていることから派生する理由に起因している。その探索順序をシフトさせることは、最適開始ポイントとは言えないという問題を解消する。
【0019】
最後に、本発明の別の側面によれば、ピクセル・ブロックに対する動きパラメータを計算するために必要な探索量を低減する探索パスと探索基準を使用して、ブロックマッチングを行う方法が提供されている。この方法の一実施形態は、スパイラル探索パス(spiral search path)を使用し、その概要を上述した修正探索基準が使用されている。この修正探索基準の属性に基づいて、符号器は、探索エリア内のすべてのターゲット・ブロックを探索せずに、修正探索基準を最小限とするターゲット・ブロックを見つけたかどうかを判断することができる。したがって、このアプローチによると、ブロック・マッチング・プロセスでの探索が高速化されるので、符号器のパフォーマンスが向上することになる。
【0020】
本発明のその他の特徴と利点は、本発明の実施形態を詳述している以下の説明と添付図面に示されているとおりである。
【0021】
(詳細な説明)
(序論)
以下の最初のセクションでは、ビデオ符号器(エンコーダ)と復号器(デコーダ)の説明が記載されている。そのあとに続くセクションでは、本発明による符号器がどのように実現されているかが説明されている。この実施形態による符号器は、ピクセルのブロック(たとえば、ビデオ符号化標準MPEG−4とH263に定義されているマクロブロック)を符号化することを特に目的としている。予測フレームに対するマクロブロックの各々は、ヘッダパラメータ、動きベクトル、およびテクスチャ符号化誤差信号を含んでいる。この実施形態による符号器は、ブロック・マッチング・プロセスでマッチング(合致する)ブロックを探索するとき、動きと誤差の結合データの測定量を使用することによって符号化効率を向上している。このアプローチによると、特定の動きパラメータに関連付けられた符号化オーバー・ヘッドの全体像が考慮されるので、符号化効率が向上されている。また、この実施形態による符号器は、改良修正探索パターンを使用し、動きベクトルを見つけるために必要な探索量を低減するので、高速化されている。
【0022】
本発明は、以下に説明されている符号器の具体的実施形態と共に、フレーム・ベースのビデオ符号化にも、ブロック・ベースのビデオ符号化にも適用される。オブジェクト・ベースの符号器と復号器は、フレーム・ベースの符号器と復号器がもつ特徴のすべてを備えているので、以下の説明は、フレーム・ベースの符号化方式でも、オブジェクト・ベースの符号化方式でも、本発明がどのように実現されるかを理解するのに十分な基礎を提供している。
【0023】
(例示する符号器と復号器の説明)
図1は、オブジェクト・ベースのビデオ符号器の実施形態を示すブロック図である。符号器への入力30は、各フレーム内のビデオ・オブジェクト、各ビデオ・オブジェクトの形状、および境界長方形(bounding rectangle)を表している画像(イメージ)を含んでいる。形状情報は、符号器がテクスチャ・データまたは動きデータを符号化する前に利用可能になっている。フレーム・ベースの符号化がオブジェクト・ベースの符号化と異なるのは、フレーム全体が形状情報なしで符号化され、入力30が一連の画像フレームからなっている点である。
【0024】
形状符号化モジュール32は、その境界長方形を含むオブジェクトの定義を受け取り、境界長方形をマクロブロックの整数倍数に延長する。オブジェクトの形状情報は、マスクまたは「アルファ・プレーン(alpha plane)」を含んでいる。形状符号化モジュール32はこのマスクを読み取り、たとえば、従来のチェーン符号化(chain coding)手法を使用してオブジェクトの輪郭(contour)を符号化することによってマスクを圧縮する。
【0025】
動き推定モジュール34は、その境界長方形を含むオブジェクトと以前に再構築された画像36とを読み取り、あるフレームから別のフレームへのオブジェクトの動きを予測するために使用される動き推定データを計算する。動き推定モジュール34は、現オブジェクト画像内の各々のマクロブロックごとに再構築画像内の最も類似するマクロブロックを探し出し、各々のマクロブロックごとに動きベクトルを計算する。動き推定モジュール34からの動きデータの具体的フォーマットは、使用される動き推定手法に応じて変化させることが可能である。以下に説明している実施形態では、各々のマクロブロックごとに動きベクトルがあり、これは、現行MPEGとH26Xのフォーマットに準拠している。
【0026】
動き補償モジュール38は、動き推定モジュールによって計算された動きベクトルと以前に再構築された画像36を読み取り、現フレームの予測画像を計算する。予測画像内の各ピクセルは、動きベクトルがそこに置かれている、マクロブロックの動きベクトルを使用して、以前に再構築された画像36内の対応するピクセルを見つけることによって構築される。そのあと、符号器は、入力30の中で指定されている、入力画像ブロック内の画像サンプル値と、動き補償モジュール38で計算されたときの、予測画像ブロック内の対応するサンプル値との差分を求め、マクロブロックの誤差信号を決定する。
【0027】
テクスチャ符号化モジュール40は、インターフレーム(フレーム間)符号化オブジェクトについては、この誤差信号を圧縮し、イントラフレーム(フレーム内)符号化オブジェクトについては、入力データストリーム30からのオブジェクトに対する画像サンプル値を圧縮する。テクスチャ符号化モジュール40からのフィードバック路42は、誤差信号を表している。符号器は、誤差信号ブロックと、動き補償モジュールからの予測画像マクロブロックとを併用して、以前に再構築イメージ(画像)36を計算する。
【0028】
テクスチャ符号化モジュール40は、イントラフレームのブロックとオブジェクトに対する誤差信号データを、各種の静止画像圧縮手法のいずれかを使用して符号化する。圧縮手法の例としては、DCTやウェーブレット(wavelet)のほかに、従来の画像圧縮方法がある。
【0029】
圧縮ビデオ・シーケンスのビット・ストリームは、形状符号化モジュール、動き推定モジュール、およびテクスチャ符号化モジュールからの形状、動きおよびテクスチャ符号化情報を含んでいる。マルチプレクサ44はこのデータを結合し、正しいシンタックス(系統的配列)になるようにフォーマッティングし、それをバッファ46に出力する。
【0030】
符号器はハードウェアでも、ソフトウェアでも実現できるが、ソフトウェアで実現されることが最も多い。ソフトウェアで実現する場合には、符号器内のモジュールは、コンピュータのメモリに格納され、プロセッサで実行されるソフトウェア命令と、メモリに格納されたビデオ・データとを表している。ソフトウェアによる符号器(エンコーダ)は、従来の種々コンピュータ読取可能媒体に格納し、配布することができる。ハードウェアで実現する場合には、符号器内のモジュールはデジタル・ロジック、好ましくは、集積回路に実装されている。符号器がもつ機能のいくつかは、ホストコンピュータから処理負担を解放するように、コンピュータ周辺装置内に特定目的デジタル・ロジック・デバイスの形で、最適化することができる。
【0031】
図2は、オブジェクト・ベースのビデオ符号化手法のための復号器(デコーダ)を示すブロック図である。デ・マルチプレクサ60は、圧縮ビデオ・シーケンスを表しているビット・ストリーム62を受け取り、形状、動きおよびオブジェクト・ベースに基づくオブジェクト上のテクスチャ符号化データに分離する。デ・マルチプレクサは、各マクロブックの動きベクトルをシングル可変長符号から再構築する動きベクトル復号器も含んでいる。
【0032】
形状復号化モジュール64は、処理される現オブジェクト用の形状または輪郭を復号化する。これを行うために、このモジュールは、図1の符号器で使用されている形状符号化方法の逆の方法を実装している形状復号器を採用している。その結果として生成された形状データは、オブジェクトの形状を表しているバイナリ・アルファ・プレーンまたはグレー・スケール・アルファ・プレーンのように、マスクになっている。
【0033】
動き復号化モジュール66は、ビット・ストリームに含まれる動き情報を復号する。復号された動き情報には、入力ビット・ストリーム内のエントロピー符号から再構築される各マクロブロック用の動きベクトルが含まれている。動き復号化モジュール66は、この動き情報を動き補償モジュール68に渡し、動き補償モジュール68はその動きデータを使用して、以前に再構築されたオブジェクト・データ70の中から予測画像サンプルを探し出す。
【0034】
テクスチャ復号化モジュール74は、インターフレーム符号化テクスチャ・データの誤差信号と、イントラフレーム・テクスチャ・データのカラー値の配列とを復号し、この情報をモジュール72に渡し、再構築画像の計算と累算が行われる。インターフレーム符号化オブジェクトの場合は、このモジュール72は誤差信号データを、動き補償モジュールからの予測画像出力に適用し、現フレームに対する再構築オブジェクトが計算される。イントラフレーム符号化オブジェクトの場合は、テクスチャ復号化モジュール74は、オブジェクトの画像サンプル値を復号化し、再構築オブジェクトを再構築オブジェクト・モジュール72の中に置いておく。以前に再構築されたオブジェクトは一時的にオブジェクト・メモリ70に格納しておき、他のフレームのオブジェクトを構築するために使用される。
【0035】
符号器と同じように、復号器はハードウェアでも、ソフトウェアでも、あるいはその組み合わせでも実現することができる。ソフトウェアで実現する場合には、復号器内のモジュールは、コンピュータのメモリに格納され、プロセッサで実行されるソフトウェア命令になっている。ソフトウェアの復号器(デコーダ)は、従来の種々コンピュータ読取可能媒体に格納し、配布することができる。ハードウェアで実現する場合には、復号器のモジュールはデジタル・ロジック、好ましくは、集積回路に実装されている。復号器がもつ機能のいくつかを、ホストコンピュータから処理負担を解放するように、コンピュータ周辺装置内に特定目的デジタル・ロジック・デバイスの形で、最適化することができる。
【0036】
(動き推定とブロックマッチング・パターンの改善)
符号器の実施形態を詳細に説明する前に、動き推定プロセスの例を説明することから始めることにする。図3は、単純なビデオ・シーケンスにおけるソース・フレームとターゲット・フレーム300、302の例である。各フレームは、フォアグラウンド(前景)オブジェクト(動いているヘッド304)とバックグランド(背景)オブジェクト306(たとえば、バックグランドの静止ハウスとツリー)を含んでいる。動き推定のプロセスは、ターゲット・フレームに対するソース・フレーム内のピクセルの動きを近似化する。これを行うために、符号器内の動き推定器(motion estimator)は、ソース・フレーム内のソース・ピクセル・ブロック308とターゲット・フレーム内の探索エリア310を選択する。ターゲット画像内の探索パスをたどっていきながら、動き推定器は、ソース・ブロック内のピクセル値を、探索エリア310内の領域の対応するロケーションに置かれているピクセル値とマッチング(突き合わせ)する。探索パス上の各ステップで、動き推定器は誤差信号を計算する。この誤差信号は、ソース・ブロック内のピクセル値と、探索エリア内の対応するロケーションに置かれたピクセル値との差分測定量を示している。この誤差信号は、絶対差分の和(sum of absolute differences SAD)として計算されるのが代表的である。このプロセスはブロック・マッチング(block matching−ブロック突き合わせ)とも呼ばれているが、これはソース・ブロックに最も緊密に合致するピクセル・ブロックが探索で探し出されるからである。
【0037】
マッチング・ブロックを特定したあと、動き推定器は、各ソース・ピクセルとターゲット・フレーム内の対応するピクセル・ロケーションとの間の動きを定義している動きパラメータを使用して、ソース・フレーム内のピクセルの動きを近似化する(見積もる)。動きパラメータは、各ピクセルについても、ピクセル・ブロックについても符号化することができる。ケースによっては、動きパラメータは、ソース・フレームからターゲット・フレームへのピクセルまたはピクセル・ブロックを記述している幾何変換(たとえば、アフィン変換(affine transform)または透視変換(perspective transform)の係数になっている場合がある。これらの係数は、あるピクセル・ブロックに対する参照ポイントの動きを記述している、一連の動きベクトルとして符号化することができる。そのあと、復号器は、参照ポイントから動き係数を導き出す。別のアプローチによる方法では、ソース・ブロックに含まれる全ピクセルの平行移動の動き(translation motion)を記述しているシングル(単一の)動きベクトルが、ソース・フレーム内のピクセル・ブロックごとに選択される。
【0038】
符号器と復号器のどちらも、動きパラメータを同じ方法で使用してソース画像内の各ピクセルについて予測ピクセルを計算する。予測ピクセルはソースピクセルに完全に合致していないので、符号器のコンポーネントである動き補償器は、予測ピクセルと、それに対応するソースピクセルとの差分として誤差信号を計算する。ソース・フレームに含まれる各ピクセルの実際のピクセル値を符号化するのではなく、符号器は、動きパラメータ、ターゲット・フレーム内のピクセル、および動き補償コンポーネントで計算された誤差信号を符号化する。
【0039】
符号器の実施形態によると、ターゲット・エリア内のマッチング・ピクセルブロックを選択するために修正選択基準を使用することによって、インター符号化(inter-coded)ビデオ画像の符号化効率と品質を向上している。この修正選択基準は、インターフレーム・ブロックに対する動きと誤差信号の結合された測定量である。符号器の実施形態によれば、MPEG−4およびH263符号化標準と同じブロック・サイズとブロック・フォーマットを使用しており、これらのブロックはマクロブロックと呼ばれている。
【0040】
ハイ・レベルでは、動きと誤差信号の結合測定量は、次式で表すことができる。
COMBINED_MEASURE=A*Bits(動きベクトル)+SD
【0041】
上記において、Aは、動きベクトル(Bits)の符号化に必要なビット数の測定量を調整するためのパラメータ、SDは差分の和である。符号器の実施形態では、SDは差分の絶対値の和である。パラメータAは2つの問題を取り扱っている。第一に、このパラメータは、符号化される画像に対して使用される量子化ステップ(quantization step)に依存する重み付けコンポーネントを含んでいる。動きベクトルと誤差信号は異なる単位で表されているので、この重み付けコンポーネントは、単位に差異があるとき、量子化ステップの関数としてその差異の調整を行っている。第二に、パラメータAは、符号化されるビデオ・クリップ(video clip)のビット数を低減するように計算される定数を含んでいる。この定数は、インターフレーム・マクロブロックの符号化に必要なビット数を最小限にする定数の値を見つけることをビデオ・クリップに対して実験することによって選択されている。
【0042】
その概要を上述した実施形態の詳細によると、動きと誤差信号の結合データの測定量は、修正された絶対差分の和として表すことができる。
修正SAD=K*Qs*Bits(動きベクトル)+SAD
【0043】
上記において、Kは、ビデオ・クリップに対するインタフレーム・ビット数を低減するように最適化された定数、Qsは、量子化ステップを調整するフレーム単位のパラメータ、Bitsは、符号化されるソース・イメージ内のピクセル・ブロックに対する動きベクトルの符号化に必要なビット数の測定量、SADは、ソース・ブロックの画像サンプルと、ターゲット・ブロック内の対応するロケーションに置かれた画像サンプル値との差分の絶対値の和である。動きベクトルは、ターゲット・ブロックがソース・ブロックに対して置かれている相対的ロケーションを定義している。
【0044】
実験で明らかになったことは、修正SADの上式によると、SADだけに基づくブロックマッチングに比べて、インターフレーム・マクロブロックの符号化オーバー・ヘッドが低減されることである。具体的には、修正SADによると、動きビデオ・シーンが少ないときのパフォーマンスが向上する(つまり、SADは相対的に小さくなる傾向がある)。
【0045】
ブロックマッチングを行うための新基準は、ターゲット・エリア内にマッチング・ブロックを探し出すために使用されている。この探索はターゲット・フレームの探索エリア内の開始ロケーションから始まり、探索パスに沿って進められていく。探索パス上の各ステップで、動き推定モジュールは動きと誤差信号の結合データの測定量を査定する。単純化のために、この量は結合探索基準(Combined Search Criteria CSC)と呼ぶことにする。探索の目的は、探索エリアに置かれているターゲット・ピクセルブロックに対するCSC値を最小限にすることである。
【0046】
探索を始める前に、符号器は探索開始ロケーションを選択する。好ましくは、開始ロケーションは、動きベクトルは近隣ブロックについて計算されるということに基づいて選択される。近隣ブロックの動きは着目するブロックに類似する傾向があるので、近隣動きベクトルに基づく開始ポイントは、探索エリア内のマッチング・ブロック付近で次の探索を開始する可能性がある。図4は、近隣マクロブロック404−410で囲まれた現マクロブロック400とその動きベクトル414−420を示す図である。動き推定モジュールは、現ブロックの予測子(predictor)を計算することによって開始ロケーションを計算する。予測子は、左ブロック410、上ブロック416そして上右ブロック418のXとYの動きベクトル・コンポーネントのメディアン(median)として計算される。これら候補ブロックのXコンポーネントのメディアンはXコンポーネントの予測子であり、これらブロックのYコンポーネントのメディアンはYコンポーネントの予測子である。
【0047】
開始ロケーションを計算したあと、動き推定モジュールは探索パスに沿ってステップして行き、探索パス上のステップに位置しているターゲット・ブロックに対するCSCを評価する。具体的には、符号器の実施形態では、スパイラル探索パス(spiral search path)が使用されており、そこでは、各探索ステップは開始ロケーションから離れるように移動していく。図5は、図3に示す探索エリア500の拡張バージョンにおけるスパイラル探索パスの例を示す図である。最初のターゲット・ブロック502は開始ロケーションのほぼ中央に置かれており、これは予測子動きベクトル504によって定義されている。ドット(たとえば、506、508)は、スパイラル探索パス上のステップの例である。
【0048】
図6は、符号器の実施形態におけるスパイラル探索パスのステップの例を示す詳細図である。各番号は、探索パスの1ステップに対応している。探索パスの開始ポイントは、多くの場合、動きベクトル予測子によって定義されたロケーションになっている。
【0049】
好ましくは、探索パスのステップは、開始ロケーションからの距離が離れて行く順序になっている。以下で詳しく説明するように、このような順序にすると、ブロック・マッチング・プロセスが探索エリアで全数探索(exhaustive search)を行うことなくマッチング・ブロックを特定できるので、探索が最適化されることになる。符号器の実施形態は、MPEG−4符号化標準に準拠する設計になっている。MPEG−4では、動きベクトルのサイズに制約があるため、動きベクトル予測子は、スパイラル探索に都合のよい開始ポイントを表しているとは限らないことがある。
【0050】
上記問題を分かりやすく説明するために、図6に示す例を検討することにする。なお、そこでは、破線の動きベクトル600は探索を行うのに望ましい開始ロケーションを表し、実線の動きベクトル602はMPEG−4標準で動きベクトルのサイズに制約があることに起因する動きベクトルを表している。動きベクトル予測子600で示されたポイントから探索を開始するのではなく、探索は制約された動きベクトル602で示されたポイントから開始せざるを得ない。
【0051】
この制約を解消する1つの方法は、ターゲット・エリアにおけるロケーションの探索順序を、望ましい開始ポイント(たとえば、動きベクトル予測子のポイント)からのロケーション別にソートする(並べ換える)ことである。しかし、この方法によると、動き推定のための処理オーバー・ヘッドが増加することになる。
【0052】
もう1つの方法は、符号器の実施形態で使用されているもので、最も一致しているものに近い可能性のあるブロックが最初に探索されるように探索順序をシャッフル(shuffle)またはシフトすることである。具体的には、符号器は、予測子ポイントに近いターゲット・ブロックが最初に探索されるように探索順序をシャッフルする。
【0053】
このアプローチによる方法を理解しやすくするために、図6に示す例を検討することにする。ブロック・マッチング・プロセスのオリジナル探索順序は、{1、2、3、...、48}になっている。
【0054】
シフトされた探索順序は、{15、16、17、18、...、48、14、13、12、...、1}である。
【0055】
この実施形態では、シフトされた探索順序は2つのステップで計算される。すなわち、最初に、望ましいスパイラル探索センタ(つまり、望ましい開始ポイント)と予測ポイントとの距離が計算される。ここで、予測ポイントが望ましい開始ポイントとは異なるロケーションにあるのは、動きベクトル・サイズに制約があるためである。つぎに、この距離に対する、新しい事前計算開始ポイントがルックアップされる。このルック・アップ(look up)オペレーション(目的地の方角に向ける操作)の結果として、探索順序における新しい開始インデックス(たとえば、上記の例では15)が得られる。
【0056】
この探索順序の調整(修正)は、スパイラル探索の望ましい開始ポイントが予測ポイントとは異なっている場合に行われる特殊ケースである。望ましい開始ポイントは、動きベクトル・サイズが制約されることなく、上述したように、近隣動きベクトルのXコンポーネントとYコンポーネントのメディアンを見つけることによって計算される。予測ポイントは、符号化標準で動きベクトル・サイズが制限されていることを除けば、同じように計算される。その結果、動きベクトル・サイズの制約が予測ポイントを計算するために使用される動きベクトルのサイズに縮小を生じさせた場合、望ましい開始ポイントと予測ポイントは、異なったものになる。
【0057】
この実施形態では、事前計算された開始ポイントがテーブル内に格納されている。すなわち、最初のステップで計算された距離が与えられ、シフトされた探索順序の最初のブロックに対する開始インデックスが、このテーブルから得られるようになっている。上に示した例では、開始インデックスは、1から48の範囲から選択される数値になっており、この場合、各インデックスはスパイラル探索順序の探索ポイントに対応している。
【0058】
この実施形態におけるテーブルの定義は、次式で表すことができる。
新開始インデックス=F(d);
ここで、dはステップ1で計算された距離である。
【0059】
距離dが与えられているとき、関数F(d)からはインデックスyが戻され、各インデックスiがi>yであるときは、インデックスiに対する探索ロケーションのスパイラル探索センタP0と座標Pとの距離は、常に(d1)より大か、等しく、各インデックスiがi<yであるときは、PとP0との距離は常に(d1)より小か、等しくなるようになっている。
【0060】
表現の仕方を変えると、テーブルは次のように定義されている。
F(d)=y;i>yのとき、Distance(P0,P)≧(d1);
および、 i<yのとき、Distance(P0,P)<(d1)
【0061】
この新探索順序は、元の順序による場合よりも早期に望ましい開始ポイントに最も近いポイントを探索することができる。この代替アプローチによると、望ましい開始ポイントが予測ポイントと異なるとき、その開始ポイントからの距離別に探索順序をソートするという、余分の処理オーバー・ヘッドが回避されることになる。
【0062】
符号器の実施形態によれば、結合探索基準(たとえば、修正SAD)をスパイラル探索と併用することによって、動き推定プロセスのスピードを向上させる。CSCの1つの属性は、探索パスの終わりに達しなくても、ブロック・マッチング・プロセスが探索を終了できることである。この属性は、探索プロセスが次のような特徴をもっている結果である。
1)CSCは動きベクトルのサイズを取り入れている。
2)スパイラル探索パスは各ステップに比例して動きベクトルのサイズを大きくして行く。
この特徴を分かりやすく説明するために、CSCの次式を検討することにする。
COMBINED_MEASURE=A*Bits(動きベクトル)+SD
【0063】
スパイラル・センタから離れて行くステップの数が増加すると、動きベクトルの符号化に必要なビット数も増加して行く。
各ステップでのCSCの最小値は次の通りである。
CSCmin=A*Bits(動きベクトル)
【0064】
この結果は、SDの値がゼロになる場合を生じさせる。動きベクトルの符号化に必要なビット数はスパイラル探索パスのステップに比例して増加していくことから、CSCの最小値もステップごとに増加して行く。
【0065】
CSCmin(i+1)≧CSC(i)、ただし、iはスパイラル探索パスのステップである。
【0066】
スパイラル探索には上述した属性をもっているため、ブロック・マッチング・プロセスは、現CSCminがそのポイント(CSCstored)までに見つかった最小CSCよりか、等しくなっているポイントで探索を終了することができる。具体的には、ポイントsのCSCminが次のように存在していれば、
【0067】
CSCmin(s)≧CSCstored
探索パスにおけるsより大きいすべてのiについては、
すべてのiが>sのときCSC(i)≧CSCmin(s)≧CSCstoredとなる。
【0068】
変数CSCstoredは、スパイラル探索パスでそれまでに探索した探索ポイントのいずれに対しても、CSCの最小の値を有する。この特徴を利用するために、この実施形態の符号器では、それまでに見つかったCSCの最小値の情報を得て、それを現ステップのCSCminと比較する。現探索ポイントのCSCminがCSCstoredより大か、等しければ、探索は中止され、CSC値の最小値を生じさせた探索ポイントが使用される。
【0069】
図7は、この実施形態による符号器のオペレーションを示すフロー図である。この図には、符号効率と符号化スピードを向上する、上述した特徴が具現化されている。図7に示すように、符号器は探索開始ポイントを計算することから開始する(ステップ700)。このステップでは、符号器は、上述したように近隣ブロックの動きベクトルから動きベクトル予測子を計算する。予測動きベクトルが、MPEG−4符号化標準における動きベクトル・サイズの制約のために制限されていれば(判定ステップ702)、符号器は探索順序をシフトする。具体的には、符号器は、実際の予測ポイントの近くに置かれたターゲット・ブロックが、動きベクトル・サイズの制約を原因とする予測ポイントのロケーションの近くに置かれているブロックよりも先に評価されるように探索順序をシフトする(ステップ704)。
【0070】
つぎに、符号器は、ステップ704で決定された探索順序にしたがってブロック・マッチング・プロセスを開始する。探索パス上の各ターゲット・ブロックについて、符号器は、ソース・ブロック内のサンプル値とターゲット・ブロックの差分の絶対値の和(SAD)を計算する(ステップ706)。つぎに、符号器は、修正SADと名付けた動きベクトルと誤差信号の結合データの測定量を計算する(ステップ708)。この実施形態では、この量は修正SADと呼ばれ、最小修正SADと現ブロックのSADを結合したものであり、この場合、ブロックの最小修正SADは次のように計算される。
修正SADmin=K*Qs*Bits(動きベクトル)その結果、
修正SAD=修正SADmin+SAD
この修正SADの計算の詳細は図8に示されている。
【0071】
SADが小さくなっている(たとえば、動きシーンが少ない)アプリケーションでは、探索は、現ブロックの最小修正SADが、格納された修正SAD値よりも大か、等しいとき中止させることができる。探索を続けるかどうかを決定するために、符号器は、現ターゲット・ブロックの現最小修正SADを、格納された修正SAD値と比較する(ステップ710)。現修正SADminがそれまでに見つかった最小SADよりも小であれば、符号器は、格納された修正SAD値を更新し(ステップ712)、探索パスの次のポイントへ進む(ステップ714)。初期時には、格納された修正SAD値は、最初に探索されるブロックの修正SADにセットされる。探索パスの後続するターゲット・ブロックでは、格納された修正SAD値は、現修正SADが以前に格納された値よりも小であれば、現修正SADにセットされる。図7に示すように、探索は、現ブロックの修正SADがそれまでに見つかった修正SADの最低値より大であれば中止される。
【0072】
図8は、図7に示す方法を採用している動き推定器(motion estimator)800の実施形態を示すブロック図である。動きベクトル予測器(motion vector predictor)802は予測動きベクトルを計算することを表している。これは近隣ブロックの動きベクトルを受け取り、現ブロックの予測動きベクトルを計算する。探索パス・コントロール(search path control)804はこの予測動きベクトルを使用して、ターゲット・フレームの探索エリアにある、マッチング・ブロックを探索する開始ポイントを決定する。探索パス・コントロールへの入力TARGETとSOURCEはターゲット画像とソース画像である。ソース画像内の各ソース・ブロックについて、探索パス・コントロールはターゲット画像内の探索開始ロケーション、およびターゲット画像内のターゲット・ブロックの探索順序とロケーションを計算する。探索順序は、予測動きベクトルで特定されたポイントからスパイラル・パスをたどって行く。予測動きベクトルのサイズが、動きベクトルのサイズに制約があるために制限されていれば、探索パス・コントロールは、シフトされた探索順序を上述したように選択する。
【0073】
減算器(subtractor)806は、探索パスで指示された通りに、ソース・ブロック内のピクセル値と現ターゲット・ブロック内のピクセル値との差分を、計算される。SAD累算器(accumulator)808は差分を加算し、現ブロックの和を累算する。
【0074】
動き推定器は、探索パス上の現在位置の動きベクトルに基づく動きベクトル・ビット数に起因するオーバー・ヘッドを査定する。探索の各ステップは、それに関連付けらた動きベクトルを有している。この動きベクトルのサイズが分かっていれば、動き推定器は、現ステップの動きベクトルに起因するビット数を計算することができる。そのあと、動きベクトルのオーバー・ヘッド(たとえば、動きベクトルの符号化に必要なビット数)を定数Kと量子化ステップQsによって調整する。乗算器810は、現ステップの最小修正SADをBits(動きベクトル)*K*Qsとして計算する。
【0075】
現ブロックの最小修正SAD値(修正SADmin)は、上述したように探索をそのまま続けるかどうかを判断するために使用できる。具体的には、比較器812は、現ブロックの修正SADminを格納された修正SAD値と比較する。修正SADminが格納値より大か、等しければ、動き推定器は探索を中止し、SAD値が最小であるターゲット・ブロックを使用して現マクロブロックの動きベクトルを計算することができる。
【0076】
動き推定器は、各ターゲット・ブロックの修正SADを、最小修正SAD(K*Qs*Bits(動きベクトル))と現ブロックのSADの和として計算する。そのあと、動き推定器は、それまでに見つかった最小修正SAD(修正SADstored)を、その最低値を生じたターゲット・ブロックの動きベクトルと一緒に記録しておく。図8に示す第2比較器816は、各ターゲット・ブロックが評価されたあと探索で見つかった最低修正SAD値を更新するプロセスを表している。探索が終了すると、最低修正SAD値をもつターゲット・ブロックに関連する動きベクトルは、マクロブロックに対して符号化される。
【0077】
(コンピュータ・システムの概要説明)
図9と以下の説明は、本発明を実現するのに適しているコンピューティング環境の概要を要約して説明したものである。本発明または本発明のいくつかの側面はハードウェア・デバイスで実現することが可能であるが、上述してきた符号器(エンコーダ)と復号器(デコーダ)は、プログラム・モジュール構造の、コンピュータ実行可能命令で実現されている。プログラム・モジュールには、タスクを実行し、上述したデータタイプを実装しているルーチン、プログラム、オブジェクト、コンポーネント、およびデータ構造が含まれている。
【0078】
図9は、デスクトップ・コンピュータの代表的な構成を示しているが、本発明はその他のコンピュータ・システム構成で実現することも可能であり、その中には、ハンドヘルド・デバイス、マルチ・プロセッサ・システム、マイクロ・プロセッサ・ベースまたはプログラマブル・コンシューマ・エレクトロニクス、ミニ・コンピュータ、メインフレーム・コンピュータなどが含まれている。また、本発明は、通信ネットワークを通してリンクされているリモート処理デバイスによってタスクが実行されるような、分散コンピューティング環境で使用することも可能である。分散コンピューティング環境では、プログラム・モジュールは、ローカルとリモートの両方のメモリ・ストレージ・デバイスに置いておくことができる。
【0079】
図9は、本発明の動作環境として働くコンピュータ・システムの例を示す図である。コンピュータ・システムは、処理ユニット921、システム・メモリ922、およびシステム・メモリを含む種々のシステム・コンポーネントを処理ユニット921に相互接続するシステム・バス923を内蔵しているパーソナル・コンピュータ920を含んでいる。システム・バスは、PCI、VESA、マイクロチャネル(Microchannel MCA)、ISA、EISAなどのバス・アーキテクチャを使用している、数種類のバス構造のいずれでも構成することが可能であり、その中には、そのいくつかを挙げると、メモリ・バスやメモリ・コントローラ、周辺バス、およびローカル・バスが含まれている。システム・メモリとしては、リード・オンリ・メモリ(read only memory ROM)924およびランダム・アクセス・メモリ(random access memory RAM)925が含まれている。スタートアップ時のように、パーソナル・コンピュータ920内のエレメント間で情報を転送するときそれを支援する基本ルーチンを含んでいる基本入出力システム(basic input/output system BIOS)926は、ROM924に格納されている。パーソナル・コンピュータ920は、さらに、ハード・ディスク・ドライブ927、たとえば、取外し可能ディスク929との間で読み書きを行う磁気ディスク・ドライブ928および、たとえば、CD−ROMディスク928を読み取ったり、他の光ディスク媒体との間で読み書きを行ったりする光ディスク・ドライブ928を搭載している。ハード・ディスク・ドライブ927、磁気ディスク・ドライブ928、および光ディスク・ドライブ930は、それぞれハードディスク・ドライブ・インターフェース932、磁気ディスク・ドライブ・インタフェース933、および光ドライブ・インターフェース934を介してシステム・バス923に接続されている。これらのドライブとそれぞれに関連するコンピュータ読取可能媒体は、データ、データ構造、コンピュータ実行可能命令(ダイナミック・リンク・ライブラリや実行可能ファイルなどのプログラムコード)などを、パーソナル・コンピュータ920のために保管しておく不揮発性ストレージとなっている。上記のコンピュータ読取可能媒体の説明個所では、ハード・ディスク、取り外し可能磁気ディスクおよびCDだけが示されているが、その中には、磁気カセット、フラッシュ・メモリ・カード、デジタル・ビデオ・ディスク、ベルヌーイ(Bernoulli)カートリッジなどのように、コンピュータで読み取り可能である、他のタイプの媒体を含めることも可能である。
【0080】
これらのドライブとRAM925にはいくつかのプログラム・モジュールを格納しておくことが可能であり、その中には、オペレーティング・システム935、1つまたは2つ以上のアプリケーション・プログラム936、その他のプログラム・モジュール937、プログラム・データ938が含まれている。ユーザは、キーボード940およびマウス942などのポインティング・デバイスを通して、コマンドと情報をパーソナル・コンピュータ920に入力することができる。他の入力デバイス(図示せず)としては、マイクロホン、ジョイスティック、ゲームパッド、サテライト・ディッシュ、スキャナなどがある。上記およびその他の入力デバイスは、システム・バスに結合されているシリアル・ポート・インタフェース946を通して処理ユニット921に接続されていることが多いが、パラレルポートやゲームポート、ユニバーサル・シリアルバス(universal serial busUSB)などの、他の・インターフェースを介して接続することもできる。モニタ947や他のタイプのディスプレイ・デバイスも、ディスプレイ・コントローラやビデオ・アダプタ948などの・インターフェースを介してシステム・バス923に接続されている。モニタのほかに、パーソナル・コンピュータは、スピーカやプリンタなどの、他の周辺出力デバイス(図示せず)を搭載しているのが代表的である。
【0081】
パーソナル・コンピュータ920は、リモート・コンピュータ949などの、1つまたは2つ以上のリモート・コンピュータとの論理的コネクションを使用して、ネットワーキング環境で動作させることができる。リモート・コンピュータ949は、サーバ、ルータ、ピアデバイスまたは他の共通ネットワーク・ノードにすることが可能であり、図9にはメモリ・ストレージ・デバイス950だけが示されているが、パーソナル・コンピュータ920に関連して上述したエレメントの多くまたは全部を搭載しているのが代表的である。図9に示す論理的コネクションとしては、ローカル・エリア・ネットワーク(local area network LAN)951と広域ネットワーク(wide area network WAN)952がある。このようなネットワーキング環境は、オフィス、エンタープライズ・ワイド(企業内)コンピュータ・ネットワーク、イントラネット(intranet)およびインターネット(the Internet)では日常的になっている。
【0082】
LANネットワーキング環境で使用されるときは、パーソナル・コンピュータ920は、ネットワーク・インタフェースまたはアダプタ953を通してローカルネットワーク951に接続されている。WANネットワーキング環境で使用されるときは、パーソナル・コンピュータ920は、インターネットなどの広域ネットワーク952を利用した通信を確立するためのモデム952や他の手段を搭載しているのが代表的である。モデム954は内蔵することも、外付けにすることも可能であるが、シリアル・ポート・インタフェース946を介してシステム・バス923に接続されている。ネットワーキング環境では、パーソナル・コンピュータ920に関連して説明したプログラム・モジュールまたはその一部は、リモートのメモリ・ストレージ・デバイスに格納しておくことができる。図示のネットワーク・コネクションは単なる例であり、コンピュータ間のコミュニケーションリンクを確立する他の手段を使用することも可能である。
【0083】
(結論)
以上、特定の実施形態を例にして本発明を説明してきたが、本発明の範囲はこれらの特定実施形態に限定されるものではない。たとえば、上述した実施形態では、マクロブロックに対する動きベクトルと誤差信号の結合測定量は、動きベクトルの符号化に使用されるビット数に重みを付ける特定の式を使用して計算されている。しかし、動きベクトルと誤差信号のオーバー・ヘッドがどのように測定されるかは、実施形態によって異なるものである。
【0084】
上述したスパイラル検索パスには、符号器を高速化するという利点があるが、このアプローチは、本発明のどの実施形態においても使用されるとは限らない。同様に、探索順序をシフトするアプローチは、動きベクトル・サイズに制約があるためにブロック・マッチング・プロセスの最適開始ロケーションが得られない場合にのみ使用することが可能である。しかし、探索パスを選択し、および/または探索順序をシフトさせると、動きベクトルと誤差信号の結合オーバー・ヘッドを低減化する可能性が大であるブロックが探索されるという利点がある。
【0085】
本発明は多数の形態で実現することが可能であるので、当然に理解されるように、上述した実施形態は本発明の一例にすぎず、本発明を限定するものではない。むしろ、本発明の範囲は請求項に明確化されている通りである。したがって、これらの特許請求の範囲と精神に属するものはすべて本発明に係わるものである。
【図面の簡単な説明】
【図1】 ビデオ符号器(コーダ)を示すブロック図である。
【図2】 ビデオ復号器(デコーダ)を示すブロック図である。
【図3】 ビデオ符号化のために使用される動き推定プロセスの理解を容易にするために、ソース・フレームとターゲット・フレームの例を示す図である。
【図4】 マクロブロックの動きベクトルがどのように予測されるかを示すために、マクロブロックの例と、ビデオ・フレーム内でそれらのブロックと関連づけられている動きベクトルを示す図である。
【図5】 ブロックマッチングで使用されるスパイラル探索パターンの理解を容易にするために、図3に示すもののように、ターゲット・フレーム内の拡張探索エリアを示す図である。
【図6】 より最適な開始ロケーションからシフトされている開始ロケーションが発生源であるスパイラル探索パターンを示す図である。
【図7】 動きベクトルと誤差信号の結合データの測定量をブロック・マッチング・プロセスで探索基準として使用する、符号器の一実施形態のオペレーションを示すフロー図である。
【図8】 修正された差分計算の和をブロック・マッチング・プロセスで探索基準として使用する動き推定器を示す図である。
【図9】 本発明をソフトウェアで実現するときの動作環境の働きをするコンピュータ・システムを示すブロック図である。

Claims (13)

  1. ビデオ符号化アプリケーションで動き推定を行う方法であって、該方法は、
    a) ソース・フレーム内の選択されたソース・ブロックのロケーションに対して、ターゲット・フレーム内の複数のターゲット・ブロックの中でマッチング・ブロックの探索(サーチ)を開始する開始ロケーションを見つけるステップと、
    b) 前記ソース・フレームからの前記ソース・ブロック内のピクセル・ロケーションにあるピクセル値と、前記ターゲット・フレーム内の前記複数のターゲット・ブロックの第1のターゲット・ブロック中の対応するピクセル・ロケーションにあるピクセル値との間の誤差信号データを計算するステップであって、前記第1のターゲット・ブロックは、前記開始ロケーションに置かれているステップと、
    c) 前記開始ロケーションに置かれている前記第1のターゲット・ブロックに対する動きベクトルデータと前記誤差信号データとから結合探索基準の測定量を計算するステップと、
    d) 前記ターゲット・フレーム内でスパイラル・パスに沿って探索中の前記複数のターゲット・ブロックの一つまたは複数の後続ターゲット・ブロックの各々に対し、
    前記後続ターゲット・ブロックに関連付けられた前記動きベクトルデータを符号化するために必要とされるビット数の測定量を計算するステップと、
    前記動きベクトルデータを符号化するために必要とされるビット数の前記測定量と最小結合探索基準測定量とを比較して、前記マッチング・ブロックの前記探索を終了するかどうかを決定するステップと、
    前記動きベクトルデータを符号化するために必要とされるビット数の前記測定量が、前記最小結合探索基準測定量より大である場合は、前記最小結合探索基準測定量に関連付けられた前記ターゲット・ブロックの前記動きベクトルデータを、前記ソース・ブロックの符号化に使用される前記動きベクトルデータとして選択するステップと、
    さもなければ、前記後続のブロックに対しステップbおよびステップcを繰り返し、前記最小結合探索基準測定量を維持するステップと
    を含むことを特徴とする方法。
  2. 請求項1に記載の方法において、前記結合探索基準測定量は、前記結合探索基準測定量に関連付けられた前記ターゲット・ブロックに対する前記動きベクトルデータの符号化に必要なビット数の測定量を算入することを特徴とする方法。
  3. 請求項2に記載の方法において、前記結合探索基準測定量は、
    Kは符号化されるビデオ・シーケンスについて選択された定数、
    Qsは量子化ステップ、
    Bits(動きベクトル)は前記動きベクトルデータの符号化に必要なビット数の前記測定量、および
    SADは、前記ソース・ブロック内の前記ピクセル値と、前記結合探索基準測定量に関連付けられた前記ターゲット・ブロック内の対応するピクセル値との差分の絶対値の総和として表された誤差信号データ、とした際に、
    K*Qs*Bits(動きベクトル)+SAD
    で表されることを特徴とする方法。
  4. 請求項1に記載の方法において、前記開始ロケーションは、前記ソース・フレームに含まれる前記ソース・ブロックの近隣ブロックについて以前に計算された動きベクトルから計算されることを特徴とする方法。
  5. 請求項1に記載の方法において、前記スパイラル探索パスは、前記ターゲット・フレーム内のブロック・ロケーションの順序付けられたシーケンスを含み、前記開始ロケーションの後の後続するブロック・ロケーションは、開始ロケーションからの距離が増加する位置に置かれていることを特徴とする方法。
  6. 請求項1に記載の方法において、さらに、
    前記ソース・フレーム内の前記ソース・ブロックに隣接するブロックの少なくとも1つの動きベクトルから前記開始ロケーションを予測するステップと、
    前記予測開始ロケーションが最大動きベクトル・サイズによって制限されていないときは、第1のスパイラル探索パスを使用し、
    前記予測開始ロケーションが最大動きベクトル・サイズによって制限されているときは、前記第1のスパイラル探索パスのシフトされた探索順序を使用するステップと
    を含むことを特徴とする方法。
  7. 請求項1に記載の方法において、さらに、
    前記ソース・フレームからセグメント化された任意形状のオブジェクトにオーバーラップするソース・ブロックについて、前記ステップa〜dを繰り返すステップを含むことを特徴とする方法。
  8. 請求項1に記載の方法において、さらに、
    前記ソース・フレーム内のソース・ブロックについて、前記ステップa〜dを繰り返すステップを含むことを特徴とする方法。
  9. ビデオ・シーケンスにおける動き推定のためのブロック・マッチングの方法を実行する命令が格納されているコンピュータ読取可能媒体であって、前記方法は、
    ソース・フレームのソース・ブロックについて、ターゲット・フレームの複数のターゲット・ブロックの中からマッチングするターゲット・ブロックを探索するステップであって、探索される各々のターゲット・ブロックについて、
    前記探索されるターゲット・ブロックに対する動きベクトルデータを符号化するために必要とされるビット数の第1の測定量を計算するステップ、
    前記動きベクトルデータと誤差信号データとの単位の差異を調整するように、量子化ステップのサイズに依存する量子化係数で前記ビット数の第1の測定量を重み付けするステップ、および
    前記探索されるターゲット・ブロックの探索基準の第2の測定量を、前記重み付けされたビット数の第1の測定量に少なくとも部分的に基づいて計算するステップ
    を含む探索ステップと、
    前記探索されるターゲット・ブロックに対するそれぞれの第2の測定量に基づいて前記マッチングするターゲット・ブロックを選択するステップと
    を含み、
    前記複数のターゲット・ブロックが探索される際の順序をスパイラル探索パターンが制御し、
    探索される各々のターゲット・ブロックの第2の測定量は、前記探索されるターゲット・ブロックと前記ソース・ブロックとの間の誤差信号データにも少なくとも部分的に基づき、探索される各々のターゲット・ブロックについて、前記探索ステップは、さらに、
    前記探索されるターゲット・ブロックの前記重み付けされたビット数の第1の測定量が、以前に探索されたターゲット・ブロックの最良な第2の測定量を超えていれば、前記探索を終了させるステップを含むことを特徴とするコンピュータ読取可能媒体。
  10. 請求項に記載のコンピュータ読取可能媒体において、探索される各々のターゲット・ブロックの前記第2の測定量は、前記探索されるターゲット・ブロックと前記ソース・ブロックとの間の誤差信号データにも、少なくとも部分的に基づいていることを特徴とするコンピュータ読取可能媒体。
  11. 請求項に記載のコンピュータ読取可能媒体において、探索される各々のターゲット・ブロックについて、前記探索ステップは、さらに、
    定数によりビット数の前記第1の測定量を重み付けするステップを含み、前記定数は、ビデオ・シーケンス全体にわたって符号化コストを低減するように最適化されていることを特徴とするコンピュータ読取可能媒体。
  12. 請求項に記載のコンピュータ読取可能媒体において、前記方法は、さらに、
    前記スパイラル探索パターンをシャッフルして、動きベクトル・サイズの制約に対して調整するステップを含むことを特徴とするコンピュータ読取可能媒体。
  13. ビデオ・エンコーダであって、
    ソース・フレーム内のソース・ブロックに対するターゲット・フレーム内の複数のターゲット・ブロックの中のマッチング・ブロックをスパイラル探索パスに沿って探索する手段であって、前記ターゲット・フレーム内の前記複数のターゲット・ブロックのうちの一つまたは複数のターゲット・ブロックに対する動きベクトルデータと誤差信号データとから結合探索基準測定量を計算する手段を含み、現在のターゲット・ブロックに対する前記動きベクトルデータを符号化するために必要とされるビット数の測定量が、前記ターゲット・フレーム内の以前のターゲット・ブロックの中の最良の結合探索基準測定量を超えた場合にスパイラル探索を停止し、探索の停止後に、前記最良の結合探索基準測定量に基づいて、前記ターゲット・フレーム内の前記複数のターゲット・ブロックの中から前記マッチング・ブロックを選択する、探索手段、および
    前記ソース・ブロックを、選択されたマッチング・ブロックの動きベクトルデータに少なくとも部分的に基づいて、符号化する手段
    を備えることを特徴とするビデオ・エンコーダ。
JP2000586105A 1998-11-30 1999-11-30 動き推定とブロックマッチング・パターンの改良 Expired - Lifetime JP4662636B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/201,279 1998-11-30
US09/201,279 US6418166B1 (en) 1998-11-30 1998-11-30 Motion estimation and block matching pattern
PCT/US1999/028396 WO2000033580A1 (en) 1998-11-30 1999-11-30 Improved motion estimation and block matching pattern

Publications (3)

Publication Number Publication Date
JP2002532026A JP2002532026A (ja) 2002-09-24
JP2002532026A5 JP2002532026A5 (ja) 2007-01-11
JP4662636B2 true JP4662636B2 (ja) 2011-03-30

Family

ID=22745216

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000586105A Expired - Lifetime JP4662636B2 (ja) 1998-11-30 1999-11-30 動き推定とブロックマッチング・パターンの改良

Country Status (6)

Country Link
US (1) US6418166B1 (ja)
EP (2) EP1147668B1 (ja)
JP (1) JP4662636B2 (ja)
AT (2) ATE460047T1 (ja)
DE (2) DE69942107D1 (ja)
WO (1) WO2000033580A1 (ja)

Families Citing this family (154)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6499060B1 (en) 1999-03-12 2002-12-24 Microsoft Corporation Media coding for loss recovery with remotely predicted data units
US6735249B1 (en) * 1999-08-11 2004-05-11 Nokia Corporation Apparatus, and associated method, for forming a compressed motion vector field utilizing predictive motion coding
JP4596718B2 (ja) * 1999-08-11 2010-12-15 ノキア コーポレイション 適応動きベクトル場符号化
KR100601618B1 (ko) * 1999-08-27 2006-07-14 삼성전자주식회사 계층적 움직임 추정기를 위한 최적의 데이터 공급장치 및 그방법
US7269785B1 (en) * 1999-12-30 2007-09-11 Genesis Microchip Inc. Digital manipulation of video in digital video player
US6567469B1 (en) * 2000-03-23 2003-05-20 Koninklijke Philips Electronics N.V. Motion estimation algorithm suitable for H.261 videoconferencing applications
WO2001091448A2 (en) * 2000-05-19 2001-11-29 Koninklijke Philips Electronics N.V. Method system and apparatus_for motion estimation using block matching
TW550953B (en) * 2000-06-16 2003-09-01 Intel Corp Method of performing motion estimation
GB2372848B (en) * 2001-02-20 2004-10-27 Advanced Risc Mach Ltd Data processing using a coprocessor
KR20040035593A (ko) * 2001-03-07 2004-04-29 피티에스 코포레이션 모션 매칭을 위한 국부적 제약
US6934336B2 (en) * 2001-07-26 2005-08-23 Matsushita Electric Industrial Co., Ltd. Area expansion apparatus, area expansion method, and area expansion program
US8275047B2 (en) * 2001-09-20 2012-09-25 Xilinx, Inc. Method and device for block-based conditional motion compensation
FR2830159A1 (fr) * 2001-09-24 2003-03-28 Thomson Licensing Sa Procede de codage selon la norme mpeg
JP3823804B2 (ja) * 2001-10-22 2006-09-20 ソニー株式会社 信号処理方法及び装置、信号処理プログラム、並びに記録媒体
CN101448162B (zh) * 2001-12-17 2013-01-02 微软公司 处理视频图像的方法
US7092584B2 (en) * 2002-01-04 2006-08-15 Time Warner Entertainment Company Lp Registration of separations
EP1347649A1 (en) * 2002-03-18 2003-09-24 Lg Electronics Inc. B picture mode determining method and apparatus in video coding system
EP1361541B1 (en) * 2002-04-09 2011-06-22 STMicroelectronics Srl Process and device for global motion estimation in a sequence of images, for instance for optical mice
US7620109B2 (en) * 2002-04-10 2009-11-17 Microsoft Corporation Sub-pixel interpolation in motion estimation and compensation
US7305034B2 (en) * 2002-04-10 2007-12-04 Microsoft Corporation Rounding control for multi-stage interpolation
US7110459B2 (en) * 2002-04-10 2006-09-19 Microsoft Corporation Approximate bicubic filter
US7116831B2 (en) * 2002-04-10 2006-10-03 Microsoft Corporation Chrominance motion vector rounding
US7817717B2 (en) 2002-06-18 2010-10-19 Qualcomm Incorporated Motion estimation techniques for video encoding
US7224731B2 (en) * 2002-06-28 2007-05-29 Microsoft Corporation Motion estimation/compensation for screen capture video
US7379496B2 (en) * 2002-09-04 2008-05-27 Microsoft Corporation Multi-resolution video coding and decoding
US6757434B2 (en) * 2002-11-12 2004-06-29 Nokia Corporation Region-of-interest tracking method and device for wavelet-based video coding
FR2852773A1 (fr) * 2003-03-20 2004-09-24 France Telecom Procedes et dispositifs de codage et de decodage d'une sequence d'images par decomposition mouvement/texture et codage par ondelettes
US9330060B1 (en) 2003-04-15 2016-05-03 Nvidia Corporation Method and device for encoding and decoding video image data
US8824553B2 (en) * 2003-05-12 2014-09-02 Google Inc. Video compression method
US7336707B2 (en) * 2003-06-06 2008-02-26 Samsung Electronics Co., Ltd. Method and apparatus for detecting improper area for motion compensation in video signal
US8660182B2 (en) * 2003-06-09 2014-02-25 Nvidia Corporation MPEG motion estimation based on dual start points
US7602851B2 (en) * 2003-07-18 2009-10-13 Microsoft Corporation Intelligent differential quantization of video coding
US7426308B2 (en) * 2003-07-18 2008-09-16 Microsoft Corporation Intraframe and interframe interlace coding and decoding
US10554985B2 (en) 2003-07-18 2020-02-04 Microsoft Technology Licensing, Llc DC coefficient signaling at small quantization step sizes
US7580584B2 (en) * 2003-07-18 2009-08-25 Microsoft Corporation Adaptive multiple quantization
US20050013498A1 (en) 2003-07-18 2005-01-20 Microsoft Corporation Coding of motion vector information
US7738554B2 (en) 2003-07-18 2010-06-15 Microsoft Corporation DC coefficient signaling at small quantization step sizes
US8218624B2 (en) * 2003-07-18 2012-07-10 Microsoft Corporation Fractional quantization step sizes for high bit rates
KR100594056B1 (ko) * 2003-09-01 2006-07-03 삼성전자주식회사 효율적인 비트율 제어를 위한 h.263/mpeg 비디오인코더 및 그 제어 방법
US7724827B2 (en) * 2003-09-07 2010-05-25 Microsoft Corporation Multi-layer run level encoding and decoding
US8064520B2 (en) 2003-09-07 2011-11-22 Microsoft Corporation Advanced bi-directional predictive coding of interlaced video
US7567617B2 (en) 2003-09-07 2009-07-28 Microsoft Corporation Predicting motion vectors for fields of forward-predicted interlaced video frames
US7822123B2 (en) * 2004-10-06 2010-10-26 Microsoft Corporation Efficient repeat padding for hybrid video sequence with arbitrary video resolution
US7317839B2 (en) * 2003-09-07 2008-01-08 Microsoft Corporation Chroma motion vector derivation for interlaced forward-predicted fields
US7526025B2 (en) * 2003-10-24 2009-04-28 Sony Corporation Lifting-based implementations of orthonormal spatio-temporal transformations
US20050117639A1 (en) * 2003-10-24 2005-06-02 Turaga Deepak S. Optimal spatio-temporal transformations for reduction of quantization noise propagation effects
US20070127575A1 (en) * 2003-11-11 2007-06-07 Cheng-Tsai Ho Method and related apparatus for motion estimation
TWI227641B (en) * 2003-11-11 2005-02-01 Mediatek Inc Method and related apparatus for motion estimation
CN100353768C (zh) * 2003-11-26 2007-12-05 联发科技股份有限公司 在视频压缩系统中进行运动估测的方法及相关装置
US7649539B2 (en) * 2004-03-10 2010-01-19 Microsoft Corporation Image formats for video capture, processing and display
JP2005303576A (ja) * 2004-04-09 2005-10-27 Sony Corp 画像信号処理装置および方法、記録媒体、プログラム、並びにビデオカメラ
US20050238102A1 (en) * 2004-04-23 2005-10-27 Samsung Electronics Co., Ltd. Hierarchical motion estimation apparatus and method
US7801383B2 (en) * 2004-05-15 2010-09-21 Microsoft Corporation Embedded scalar quantizers with arbitrary dead-zone ratios
KR20050114751A (ko) * 2004-06-01 2005-12-06 경희대학교 산학협력단 예측 부호화/복호화 장치 및 예측 부호화/복호화 방법
US7953152B1 (en) 2004-06-28 2011-05-31 Google Inc. Video compression and encoding method
US20060002472A1 (en) * 2004-06-30 2006-01-05 Mehta Kalpesh D Various methods and apparatuses for motion estimation
US8442108B2 (en) * 2004-07-12 2013-05-14 Microsoft Corporation Adaptive updates in motion-compensated temporal filtering
US8340177B2 (en) * 2004-07-12 2012-12-25 Microsoft Corporation Embedded base layer codec for 3D sub-band coding
US8374238B2 (en) * 2004-07-13 2013-02-12 Microsoft Corporation Spatial scalability in 3D sub-band decoding of SDMCTF-encoded video
US9743078B2 (en) * 2004-07-30 2017-08-22 Euclid Discoveries, Llc Standards-compliant model-based video encoding and decoding
US9578345B2 (en) 2005-03-31 2017-02-21 Euclid Discoveries, Llc Model-based video encoding and decoding
US9532069B2 (en) 2004-07-30 2016-12-27 Euclid Discoveries, Llc Video compression repository and model reuse
JP2006074474A (ja) * 2004-09-02 2006-03-16 Toshiba Corp 動画像符号化装置、動画像符号化方法および動画像符号化プログラム
US7839933B2 (en) * 2004-10-06 2010-11-23 Microsoft Corporation Adaptive vertical macroblock alignment for mixed frame video sequences
US9071847B2 (en) * 2004-10-06 2015-06-30 Microsoft Technology Licensing, Llc Variable coding resolution in video codec
US8243820B2 (en) * 2004-10-06 2012-08-14 Microsoft Corporation Decoding variable coded resolution video with native range/resolution post-processing operation
US20060120612A1 (en) * 2004-12-08 2006-06-08 Sharath Manjunath Motion estimation techniques for video encoding
TWI288353B (en) * 2004-12-24 2007-10-11 Lite On Semiconductor Corp Motion detection method
US8634413B2 (en) 2004-12-30 2014-01-21 Microsoft Corporation Use of frame caching to improve packet loss recovery
TW200633539A (en) * 2005-03-09 2006-09-16 Pixart Imaging Inc Estimation method of motion vector based on distance weighted searching sequence
US20060233258A1 (en) * 2005-04-15 2006-10-19 Microsoft Corporation Scalable motion estimation
US8422546B2 (en) * 2005-05-25 2013-04-16 Microsoft Corporation Adaptive video encoding using a perceptual model
US7808478B2 (en) * 2005-08-22 2010-10-05 Samsung Electronics Co., Ltd. Autonomous handheld device having a drawing tool
US7809214B2 (en) * 2005-08-22 2010-10-05 Samsung Electronics Co., Ltd. Device and a method for identifying movement patterns
KR100714698B1 (ko) * 2005-08-29 2007-05-07 삼성전자주식회사 향상된 움직임 추정 방법, 상기 방법을 이용한 비디오인코딩 방법 및 장치
US8761259B2 (en) * 2005-09-22 2014-06-24 Qualcomm Incorporated Multi-dimensional neighboring block prediction for video encoding
US8731071B1 (en) 2005-12-15 2014-05-20 Nvidia Corporation System for performing finite input response (FIR) filtering in motion estimation
TWI305109B (en) * 2005-12-30 2009-01-01 Altek Corp Method for processing motion image
US7956930B2 (en) 2006-01-06 2011-06-07 Microsoft Corporation Resampling and picture resizing operations for multi-resolution video coding and decoding
US8724702B1 (en) 2006-03-29 2014-05-13 Nvidia Corporation Methods and systems for motion estimation used in video coding
US8503536B2 (en) 2006-04-07 2013-08-06 Microsoft Corporation Quantization adjustments for DC shift artifacts
US8155195B2 (en) * 2006-04-07 2012-04-10 Microsoft Corporation Switching distortion metrics during motion estimation
US8059721B2 (en) 2006-04-07 2011-11-15 Microsoft Corporation Estimating sample-domain distortion in the transform domain with rounding compensation
US8494052B2 (en) * 2006-04-07 2013-07-23 Microsoft Corporation Dynamic selection of motion estimation search ranges and extended motion vector ranges
US8130828B2 (en) 2006-04-07 2012-03-06 Microsoft Corporation Adjusting quantization to preserve non-zero AC coefficients
US7995649B2 (en) 2006-04-07 2011-08-09 Microsoft Corporation Quantization adjustment based on texture level
US7974340B2 (en) 2006-04-07 2011-07-05 Microsoft Corporation Adaptive B-picture quantization control
US8711925B2 (en) 2006-05-05 2014-04-29 Microsoft Corporation Flexible quantization
US8880571B2 (en) * 2006-05-05 2014-11-04 Microsoft Corporation High dynamic range data format conversions for digital media
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
US8238424B2 (en) 2007-02-09 2012-08-07 Microsoft Corporation Complexity-based adaptive preprocessing for multiple-pass video compression
US8054886B2 (en) 2007-02-21 2011-11-08 Microsoft Corporation Signaling and use of chroma sample positioning information
US8107571B2 (en) * 2007-03-20 2012-01-31 Microsoft Corporation Parameterized filters and signaling techniques
US8498335B2 (en) 2007-03-26 2013-07-30 Microsoft Corporation Adaptive deadzone size adjustment in quantization
US8243797B2 (en) 2007-03-30 2012-08-14 Microsoft Corporation Regions of interest for quality adjustments
US8442337B2 (en) 2007-04-18 2013-05-14 Microsoft Corporation Encoding adjustments for animation content
US8488676B2 (en) * 2007-05-14 2013-07-16 Himax Technologies Limited Motion estimation method
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
US8331438B2 (en) 2007-06-05 2012-12-11 Microsoft Corporation Adaptive selection of picture-level quantization parameters for predicted video pictures
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
US8144780B2 (en) * 2007-09-24 2012-03-27 Microsoft Corporation Detecting visual gestural patterns
US8953673B2 (en) * 2008-02-29 2015-02-10 Microsoft Corporation Scalable video coding and decoding with sample bit depth and chroma high-pass residual layers
US8711948B2 (en) * 2008-03-21 2014-04-29 Microsoft Corporation Motion-compensated prediction of inter-layer residuals
US8189933B2 (en) 2008-03-31 2012-05-29 Microsoft Corporation Classifying and controlling encoding quality for textured, dark smooth and smooth video content
JP5189678B2 (ja) * 2008-04-22 2013-04-24 コア ロジック,インコーポレイテッド 動画像の手ぶれ補正装置及び方法
US8897359B2 (en) 2008-06-03 2014-11-25 Microsoft Corporation Adaptive quantization for enhancement layer video coding
US9571856B2 (en) 2008-08-25 2017-02-14 Microsoft Technology Licensing, Llc Conversion operations in scalable video encoding and decoding
US8213503B2 (en) 2008-09-05 2012-07-03 Microsoft Corporation Skip modes for inter-layer residual video coding and decoding
US8325796B2 (en) 2008-09-11 2012-12-04 Google Inc. System and method for video coding using adaptive segmentation
US8326075B2 (en) 2008-09-11 2012-12-04 Google Inc. System and method for video encoding using adaptive loop filter
US8311111B2 (en) * 2008-09-11 2012-11-13 Google Inc. System and method for decoding using parallel processing
JP5206273B2 (ja) * 2008-09-25 2013-06-12 沖電気工業株式会社 画像符号化装置、画像符号化システム
US8666181B2 (en) * 2008-12-10 2014-03-04 Nvidia Corporation Adaptive multiple engine image motion detection system and method
US8498493B1 (en) 2009-06-02 2013-07-30 Imagination Technologies Limited Directional cross hair search system and method for determining a preferred motion vector
US8811473B2 (en) * 2009-07-07 2014-08-19 Panasonic Corporation Moving picture decoding device, moving picture decoding method, moving picture decoding system, integrated circuit, and program
US8179474B2 (en) * 2009-09-02 2012-05-15 Sony Corporation Fast iterative motion estimation method on gradually changing images
US8488007B2 (en) * 2010-01-19 2013-07-16 Sony Corporation Method to estimate segmented motion
US8285079B2 (en) * 2010-03-19 2012-10-09 Sony Corporation Method for highly accurate estimation of motion using phase correlation
US9172967B2 (en) 2010-10-05 2015-10-27 Google Technology Holdings LLC Coding and decoding utilizing adaptive context model selection with zigzag scan
US8938001B1 (en) 2011-04-05 2015-01-20 Google Inc. Apparatus and method for coding using combinations
US8780971B1 (en) 2011-04-07 2014-07-15 Google, Inc. System and method of encoding using selectable loop filters
US9154799B2 (en) 2011-04-07 2015-10-06 Google Inc. Encoding and decoding motion via image segmentation
US8781004B1 (en) 2011-04-07 2014-07-15 Google Inc. System and method for encoding video using variable loop filter
US8780996B2 (en) 2011-04-07 2014-07-15 Google, Inc. System and method for encoding and decoding video data
WO2013002554A2 (ko) 2011-06-28 2013-01-03 삼성전자 주식회사 픽셀 분류에 따른 오프셋 조정을 이용하는 비디오 부호화 방법 및 그 장치, 비디오 복호화 방법 및 그 장치
CN105100808B (zh) * 2011-06-28 2018-06-15 三星电子株式会社 用于使用帧内预测进行图像编码和解码的方法和设备
US8891616B1 (en) 2011-07-27 2014-11-18 Google Inc. Method and apparatus for entropy encoding based on encoding cost
PL2744204T3 (pl) * 2011-09-14 2019-03-29 Samsung Electronics Co., Ltd. Sposób dekodowania jednostki predykcji (pu) w oparciu o jej rozmiar
US8885706B2 (en) 2011-09-16 2014-11-11 Google Inc. Apparatus and methodology for a video codec system with noise reduction capability
TWI493977B (zh) * 2011-09-20 2015-07-21 Hannstar Display Corp 影像搜尋模組及其方法
US9247257B1 (en) 2011-11-30 2016-01-26 Google Inc. Segmentation based entropy encoding and decoding
US9262670B2 (en) 2012-02-10 2016-02-16 Google Inc. Adaptive region of interest
US9131073B1 (en) 2012-03-02 2015-09-08 Google Inc. Motion estimation aided noise reduction
US11039138B1 (en) 2012-03-08 2021-06-15 Google Llc Adaptive coding of prediction modes using probability distributions
US9774856B1 (en) 2012-07-02 2017-09-26 Google Inc. Adaptive stochastic entropy coding
US9344729B1 (en) 2012-07-11 2016-05-17 Google Inc. Selective prediction signal filtering
US9509998B1 (en) 2013-04-04 2016-11-29 Google Inc. Conditional predictive multi-symbol run-length coding
US11425395B2 (en) 2013-08-20 2022-08-23 Google Llc Encoding and decoding using tiling
US9392288B2 (en) 2013-10-17 2016-07-12 Google Inc. Video coding using scatter-based scan tables
US9179151B2 (en) 2013-10-18 2015-11-03 Google Inc. Spatial proximity context entropy coding
US9774881B2 (en) 2014-01-08 2017-09-26 Microsoft Technology Licensing, Llc Representing motion vectors in an encoded bitstream
US9942560B2 (en) 2014-01-08 2018-04-10 Microsoft Technology Licensing, Llc Encoding screen capture data
US9749642B2 (en) 2014-01-08 2017-08-29 Microsoft Technology Licensing, Llc Selection of motion vector precision
WO2015138008A1 (en) 2014-03-10 2015-09-17 Euclid Discoveries, Llc Continuous block tracking for temporal prediction in video encoding
US10097851B2 (en) 2014-03-10 2018-10-09 Euclid Discoveries, Llc Perceptual optimization for model-based video encoding
US10091507B2 (en) 2014-03-10 2018-10-02 Euclid Discoveries, Llc Perceptual optimization for model-based video encoding
CN105338281B (zh) * 2014-06-27 2018-07-31 阿里巴巴集团控股有限公司 一种视频显示方法和装置
US10102613B2 (en) 2014-09-25 2018-10-16 Google Llc Frequency-domain denoising
TWI613914B (zh) * 2016-11-30 2018-02-01 聖約翰科技大學 影音傳送系統及其影音接收系統
CN112738529B (zh) * 2020-12-23 2023-07-07 北京百度网讯科技有限公司 帧间预测方法、装置、设备、存储介质以及程序产品
CN115529459B (zh) * 2022-10-10 2024-02-02 格兰菲智能科技有限公司 中心点搜索方法、装置、计算机设备、存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63209286A (ja) * 1987-02-25 1988-08-30 Nippon Telegr & Teleph Corp <Ntt> 動き補償符号化における動きベクトル評価方法
JPS63267080A (ja) * 1987-04-24 1988-11-04 Nippon Telegr & Teleph Corp <Ntt> 映像信号伝送方式
JPH05219499A (ja) * 1991-09-30 1993-08-27 Philips Gloeilampenfab:Nv 動きベクトル推定、動画符号化および蓄積方法
JPH06233279A (ja) * 1993-02-01 1994-08-19 Matsushita Electric Ind Co Ltd 動き補償符号化装置
JPH10136375A (ja) * 1996-10-30 1998-05-22 Hitachi Ltd 動画像の動き補償方法

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5379351A (en) 1992-02-19 1995-01-03 Integrated Information Technology, Inc. Video compression/decompression processing and processors
JP2521145B2 (ja) 1989-02-20 1996-07-31 日本ビクター株式会社 動き補償予測符号化復号化方式
AU660020B2 (en) 1991-05-24 1995-06-08 British Broadcasting Corporation, The Video image processing
US5428396A (en) 1991-08-03 1995-06-27 Sony Corporation Variable length coding/decoding method for motion vectors
US5592226A (en) 1994-01-26 1997-01-07 Btg Usa Inc. Method and apparatus for video data compression using temporally adaptive motion interpolation
US5684538A (en) * 1994-08-18 1997-11-04 Hitachi, Ltd. System and method for performing video coding/decoding using motion compensation
DE69619002T2 (de) 1995-03-10 2002-11-21 Toshiba Kawasaki Kk Bildkodierungs-/-dekodierungsvorrichtung
KR0171118B1 (ko) * 1995-03-20 1999-03-20 배순훈 비디오신호 부호화 장치
DE19521992A1 (de) * 1995-06-20 1997-01-02 Bosch Gmbh Robert Verfahren zur Erzeugung eines Stroms von Bilddaten für die Übertragung eines Bildes und Verfahren zur Auswertung eines Stroms von Bilddaten
US5764805A (en) 1995-10-25 1998-06-09 David Sarnoff Research Center, Inc. Low bit rate video encoder using overlapping block motion compensation and zerotree wavelet coding
US5768537A (en) * 1996-02-22 1998-06-16 International Business Machines Corporation Scalable MPEG2 compliant video encoder
US5847776A (en) 1996-06-24 1998-12-08 Vdonet Corporation Ltd. Method for entropy constrained motion estimation and coding of motion vectors with increased search range
EP0825778A3 (en) 1996-08-22 1998-06-10 Cirrus Logic, Inc. Method for motion estimation
US6195389B1 (en) * 1998-04-16 2001-02-27 Scientific-Atlanta, Inc. Motion estimation system and methods

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63209286A (ja) * 1987-02-25 1988-08-30 Nippon Telegr & Teleph Corp <Ntt> 動き補償符号化における動きベクトル評価方法
JPS63267080A (ja) * 1987-04-24 1988-11-04 Nippon Telegr & Teleph Corp <Ntt> 映像信号伝送方式
JPH05219499A (ja) * 1991-09-30 1993-08-27 Philips Gloeilampenfab:Nv 動きベクトル推定、動画符号化および蓄積方法
JPH06233279A (ja) * 1993-02-01 1994-08-19 Matsushita Electric Ind Co Ltd 動き補償符号化装置
JPH10136375A (ja) * 1996-10-30 1998-05-22 Hitachi Ltd 動画像の動き補償方法

Also Published As

Publication number Publication date
EP1147668A1 (en) 2001-10-24
JP2002532026A (ja) 2002-09-24
ATE460047T1 (de) 2010-03-15
DE69942107D1 (de) 2010-04-15
EP1389016A3 (en) 2006-05-10
DE69923232D1 (de) 2005-02-17
EP1389016A2 (en) 2004-02-11
EP1147668B1 (en) 2005-01-12
ATE287180T1 (de) 2005-01-15
US6418166B1 (en) 2002-07-09
EP1389016B1 (en) 2010-03-03
DE69923232T2 (de) 2005-06-23
WO2000033580A1 (en) 2000-06-08

Similar Documents

Publication Publication Date Title
JP4662636B2 (ja) 動き推定とブロックマッチング・パターンの改良
US6983018B1 (en) Efficient motion vector coding for video compression
US6735345B2 (en) Efficient macroblock header coding for video compression
JP4198206B2 (ja) 動き依存予測を使用したビデオ情報の圧縮方法と装置
JP3689334B2 (ja) ビデオシーケンス内の複数のビデオフレームを復号化する方法
US20150172687A1 (en) Multiple-candidate motion estimation with advanced spatial filtering of differential motion vectors
JP2003219428A (ja) 動画像符号化装置
JP2008072608A (ja) 画像符号化装置及び画像符号化方法
JPH07264594A (ja) 動画像の動き補償予測符号化方法
KR100316767B1 (ko) 객체의 형태 묘사를 위한 계층적 점진형 부호화 및/또는 복호화 방법
JP2001112009A (ja) 動画像符号化装置および復号装置
JP2005012527A (ja) 符号化装置、符号化プログラムおよび符号化方法
JPH11215505A (ja) 動画像符号化装置及び動画像符号化方法

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20061115

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20061115

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20061115

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090710

RD13 Notification of appointment of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7433

Effective date: 20090909

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20090909

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20091008

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20091016

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20091110

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20091117

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20091210

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20091217

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100112

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100205

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20100506

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20100513

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20100607

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20100614

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20100705

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20100712

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100805

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100903

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101201

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20101224

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: 20110104

R150 Certificate of patent or registration of utility model

Ref document number: 4662636

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140114

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term