JP4885486B2 - 画像の符号化および復号化 - Google Patents

画像の符号化および復号化 Download PDF

Info

Publication number
JP4885486B2
JP4885486B2 JP2005185817A JP2005185817A JP4885486B2 JP 4885486 B2 JP4885486 B2 JP 4885486B2 JP 2005185817 A JP2005185817 A JP 2005185817A JP 2005185817 A JP2005185817 A JP 2005185817A JP 4885486 B2 JP4885486 B2 JP 4885486B2
Authority
JP
Japan
Prior art keywords
image
tile
pixel
search
pixels
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 - Fee Related
Application number
JP2005185817A
Other languages
English (en)
Other versions
JP2006014343A (ja
JP2006014343A5 (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.)
Apple Inc
Original Assignee
Apple 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 Apple Inc filed Critical Apple Inc
Publication of JP2006014343A publication Critical patent/JP2006014343A/ja
Publication of JP2006014343A5 publication Critical patent/JP2006014343A5/ja
Application granted granted Critical
Publication of JP4885486B2 publication Critical patent/JP4885486B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • 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/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • 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/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/107Selection of coding mode or of prediction mode between spatial and temporal predictive coding, e.g. picture refresh
    • 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/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • 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/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • H04N19/147Data rate or code amount at the encoder output according to 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/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/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/19Methods 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 using optimisation based on Lagrange multipliers
    • 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/192Methods 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 the adaptation method, adaptation tool or adaptation type being iterative or recursive
    • 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/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/523Motion estimation or motion compensation with sub-pixel accuracy
    • 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/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/533Motion estimation using multistep search, e.g. 2D-log search or one-at-a-time search [OTS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Image Analysis (AREA)

Description

本発明は、画像を符号化および復号化するための方法に関する。
ビデオ・コーデックは、ビデオ・データ・ストリームを符号化(すなわち、圧縮)および復号化(すなわち、解凍)してストリームのサイズを低減して高速な伝送速度とより小さい記憶空間を確保するように設計された圧縮アルゴリズムである。損失が大きい現在のビデオ・コーデックはビデオ・ストリームのバイナリ・データを圧縮してビデオ品質を維持しようと努めている。
ビデオ・ストリームは、通常、ビデオ・フレームのシーケンスによって形成される。ビデオ・エンコーダは、各フレームを各々が16×16ピクセル・セットであるいくつかのマクロブロックに分割することが多い。ビデオ・エンコーダは、通常、フレーム内符号化またはフレーム間符号化を用いてビデオ・フレームまたはビデオ・フレーム内のマクロブロックを符号化する。フレーム内符号化されたフレームまたはマクロブロックは、他のフレーム内の他のフレームまたはマクロブロックとは独立して符号化されたフレームまたはマクロブロックである。
フレーム間符号化されたフレームまたはマクロブロックは、他のフレーム内の1つまたは複数の他のフレームまたはマクロブロックを参照して符号化されたフレームまたはマクロブロックである。ブロック間符号化は、通常、時間がかかる。これは符号化が特定のフレームのマクロブロックまたはマクロブロック内のパーティションを別の基準フレームのマクロブロックまたはマクロブロック内のパーティションと比較しなければならないためである。
したがって、当技術分野で、より効率的なブロック間符号化方法が必要である。理想的には、そのような符号化方法によって符号化および復号化の演算が高速になる。
いくつかの実施形態では、ビデオ・シーケンス内の第2の画像を参照して第1の画像内の第1のピクセル・セットを符号化するための方法が提供される。この方法は、第2の画像内の第1の検索ウィンドウ内で、第1の画像内の第1のピクセル・セットに最もよく一致する第2の画像内の第1の特定の部分を検索して識別する。第2の画像内の第1の検索ウィンドウ内で、この方法は、第1の特定の部分に対応する第1のロケーションを識別する。次に、この方法は、第1のロケーションの近くに画定された第2の画像内の第2の検索ウィンドウ内で、第1の画像内の第1のピクセル・セットに最もよく一致する第2の画像内の第2の特定の部分を検索して識別する。
いくつかの実施形態では、ビデオ・シーケンス内の画像をブロック間符号化するための方法が提供される。ビデオ・シーケンス内の各画像は、各々が少なくとも1つの画像値(例えば、輝度値)を有するいくつかの整数ピクセル・ロケーションを有する。この方法は、第2の画像を参照して符号化する第1の画像を選択する。次にこの方法は、第1の画像内のピクセル・セットに一致する第2の画像内の非整数ピクセル・ロケーションのセットを識別する。この識別は、第2の画像内のいくつかの整数ピクセル・ロケーションの画像値から第2の画像内の非整数ピクセル・ロケーションに関連する画像値を補間する処理を必然的に伴う。この方法は、第2の画像を参照して第3の画像を符号化する際に使用するために非整数ピクセル・ロケーションの補間された画像値を記憶する。
いくつかの実施形態では、ビデオ・シーケンス内の画像をブロック間復号化するための方法が提供される。ビデオ・シーケンス内の各画像は、各々が少なくとも1つの画像値(例えば、輝度値)を有するいくつかの整数ピクセル・ロケーションを有する。この方法は、第2の画像を参照して復号化する第1の画像を選択する。次にこの方法は、第1の画像内のピクセル・セットに対応する第2の画像内の非整数ピクセル・ロケーションのセットを識別する。この方法は、次に、第2の画像内のいくつかの整数ピクセル・ロケーションの画像値から第2の画像内の非整数ピクセル・ロケーションに関連する画像値を補間する。この方法は、第2の画像を参照して第3の画像を復号化する際に使用するために非整数ピクセル・ロケーションの補間された画像値を記憶する。
いくつかの実施形態では、ビデオ画像のシーケンス内の第2の画像を参照して第1の画像内の第1の部分をブロック間処理するための方法が提供される。この方法は、第2の画像をタイルのセットに分割し、タイルを第1の非キャッシュ・メモリ記憶域に記憶する。第1の画像内の第1の部分を第2の画像内の一部に一致させるためにタイルのサブセットが必要な時はいつでも、この方法は、第1の非キャッシュ・メモリ記憶域からタイルのサブセットを取り出してこの取り出されたタイルのサブセットを第2のキャッシュ・メモリ記憶域に記憶して、第1の部分と取り出されたタイルのサブセットの一部である第2の画像の部分とを高速で比較する。取り出されたタイルのサブセットはタイルのセット全体よりも小さい。
いくつかの実施形態で、この方法は、第1の部分に一致する第2の画像内の一部を識別するために検索する、タイルのサブセットに対応する第2の画像内のロケーションを識別する時に、タイルのサブセットを取り出して第2のキャッシュ・メモリ記憶域に記憶する必要があると判断する。いくつかの実施形態では、キャッシュ・メモリ記憶域はコンピュータのランダム・アクセス・メモリであるが、非キャッシュ・メモリ記憶域はコンピュータの不揮発性記憶装置である。また、ブロック間処理方法は、いくつかの実施形態ではブロック間符号化方法であるが、別の実施形態では、ブロック間復号化方法である。さらに、いくつかの実施形態では、タイルのセットは少なくとも2つの水平方向に隣接したタイルと少なくとも2つの垂直方向に隣接したタイルとを含む。
いくつかの実施形態では、第1のピクセル・セットに一致する可能性がある第2の画像の一部を検査するパターンを各々定義する検索パターンのセットから第1の検索パターンを選択して第1のビデオ画像内の第1のピクセル・セットを符号化するブロック間符号化方法が提供される。この符号化方法は、判定基準のセットに基づいて検索パターンのセット内の第1の検索パターンを適応的に選択する。いくつかの実施形態の判定基準のセットはビデオ画像の媒体のタイプを含む。
(図面の簡単な説明)
本発明の新規な特徴を添付の特許請求の範囲に記載する。しかし、説明のために、本発明のいくつかの実施形態を以下の図面で示している。
図1は、符号化プロセスを簡単化するために種々の新規な刈り込み技法を使用するエンコーダの処理のフローを示す概念図である。
図2は、2段階動作の動き推定演算を実行して、1つまたは2つの基準フレームとカレント・フレームとの間のマクロブロックの動作を指定する動きベクトルを識別するプロセスを示す図である。
図3は、いくつかの実施形態が、第1の検索ウィンドウをカレント・フレーム内のマクロブロックのロケーションに対応する基準フレームのロケーションの近くに配置する方法を示す図である。
図4は、カレント・フレーム・マクロブロックに関連する予測動きベクトルに基づいて第1の検索ウィンドウのロケーションを識別する1つの方法を示す図である。
図5は、第1の検索ウィンドウ内の複数の開始ポイントの一例を示す図である。
図6は、第2段階の検索ウィンドウの一例を示す図である。
図7は、カレント・フレーム・マクロブロックのピクセルのパーティション・セットに最もよく一致する基準フレーム内のピクセルのパーティション・セットを識別するために実行される微細動き推定プロセスを示す図である。
図8は、いくつかのロケーション・ポイントを有する検索ウィンドウを示す概念図である。
図9は、多重ピクセル・レベルの基準フレーム・マクロブロックのピクセルのパーティションを検索するプロセスを示す概念図である。
図10は、いくつかの可能なパーティション(すなわち、ブロック)サイズを示す概念図である。
図11は、異なるピクセル・レベルのいくつかの検索ロケーションを示す概念図である。
図12は、基準フレーム内のサブピクセル・ロケーションと位置合わせされたカレント・フレーム・マクロブロックの概念図である。
図13は、同じフレームをポイントする動きベクトルを含むいくつかのフレームの概念図である。
図14は、ピクセル・セットに関するデータ(例えば、整数、非整数)をキャッシュに記憶する方法の概念図である。
図15は、検索ウィンドウ内の低密度検索パターンを示す図である。
図16は、検索ウィンドウ内の高密度検索パターンを示す図である。
図17は、垂直方向に偏った検索パターンの一例を示す図である。
図18は、水平方向に偏った検索パターンの一例を示す図である。
図19は、動き推定方法のサブセットを選択的に検査してRDコストを計算するために必要なサブセットを識別するプロセスを示す図である。
図20は、本発明のいくつかの実施形態が実施されるコンピュータ・システムを示す図である。
以下の本発明の詳細な説明で、本発明のさまざまな詳細、例、および実施形態を提示し、説明する。しかし、本発明は提示された実施形態に限定されず、また本発明は説明した特定の詳細および例示なしで実施することができることは当業者には明らかであろう。
I.概要
本発明のいくつかの実施形態では、新規なブロック間符号化および復号化プロセスが提供される。これらの新規なプロセスは、(1)多段動き推定プロセスと、(2)基準フレームの非整数ピクセル・ロケーション値をキャッシュする補間キャッシング・プロセスと、(3)基準フレームのタイルのサブセットをキャッシュするタイル・キャッシング・プロセスと、(4)基準フレーム内の検索に用いる検索パターンを適応的に選択する動き推定プロセスとを含む。
A.多段動き推定
いくつかの実施形態の多段動き推定プロセスは、ビデオ・シーケンス内の第2の画像を参照して第1の画像内の第1のピクセル・セットを符号化する。動き推定プロセスは、第2の画像内の第1の検索ウィンドウ内で、第1の画像内の第1のピクセル・セットに最もよく一致する第2の画像内の第1の特定の部分を検索して識別する。第2の画像内の第1の検索ウィンドウ内で、動き推定プロセスは、第1の特定の部分に対応する第1のロケーションを識別する。次に、動き推定プロセスは、第1のロケーションの近くに画定された第2の画像内の第2の検索ウィンドウ内で、第1の画像内の第1のピクセル・セットに最もよく一致する第2の画像内の第2の特定の部分を検索して識別する。いくつかの実施形態では、第1の検索は粗動き推定プロセスで、第2の検索は微細動き推定プロセスである。さらに、いくつかの実施形態では、微細動き推定プロセスは可変ブロック・サイズを検索する。
B.補間キャッシュ
本発明のいくつかの実施形態のエンコーダはビデオ・シーケンス内の画像をブロック間符号化する。ビデオ・シーケンス内の各画像はいくつかの整数ピクセル・ロケーションを有し、各整数ピクセル・ロケーションは少なくとも1つの画像値(例えば、輝度値)を有する。エンコーダは、第2の画像を参照して符号化する第1の画像を選択する。次いでエンコーダは、第1の画像内のピクセル・セットに一致する第2の画像内の非整数ピクセル・ロケーションのセットを識別する。この識別は、第2の画像内のいくつかの整数ピクセル・ロケーションの画像値から第2の画像内の非整数ピクセル・ロケーションに関連する画像値を補間する処理を必然的に伴う。エンコーダは、第2の画像を参照して第3の画像を符号化する際に使用するために非整数ピクセル・ロケーションの補間された画像値を補間キャッシュ内に記憶する。
本発明のいくつかの実施形態のデコーダも同様の補間キャッシュを使用する。特に、デコーダは、第2の画像を参照して復号化する第1の画像を選択する。次いでデコーダは、第1の画像内のピクセル・セットに対応する第2の画像内の非整数ピクセル・ロケーションのセットを識別する。デコーダは、次に、第2の画像内のいくつかの整数ピクセル・ロケーションの画像値から第2の画像内の非整数ピクセル・ロケーションに関連する画像値を補間する。デコーダは、第2の画像を参照して第3の画像を復号化する際に使用するために非整数ピクセル・ロケーションの補間された画像値を記憶する。
C.タイル・キャッシング・プロセス
いくつかの実施形態は、ビデオ画像のシーケンス内の第2の画像を参照して第1の画像内の第1の部分を処理するブロック間プロセスにタイル・キャッシング・プロセスを使用する。キャッシング・プロセスは、第2の画像をタイルのセットに分割し、タイルを第1の非キャッシュ・メモリ記憶域に記憶する。第1の画像内の第1の部分を第2の画像内の一部に一致させるためにタイルのサブセットが必要な時はいつでも、キャッシング・プロセスは、第1の非キャッシュ・メモリ記憶域からタイルのサブセットを取り出して、この取り出されたタイルのサブセットを第2のキャッシュ・メモリ記憶域に記憶して、第1の部分と取り出されたタイルのサブセットの一部である第2の画像の部分とを高速で比較する。取り出されたタイルのサブセットはタイルのセット全体よりも小さい。
いくつかの実施形態で、キャッシング・プロセスは、第1の部分に一致する第2の画像内の一部を識別するために検索する、タイルのサブセットに対応する第2の画像内のロケーションを識別する時に、タイルのサブセットを取り出して第2のキャッシュ・メモリ記憶域に記憶する必要があると判断する。いくつかの実施形態では、キャッシュ・メモリ記憶域はコンピュータのランダム・アクセス・メモリであるが、非キャッシュ・メモリ記憶域はコンピュータの不揮発性記憶装置である。また、ブロック間プロセスは、いくつかの実施形態ではブロック間符号化プロセスであるが、別の実施形態では、ブロック間復号化プロセスである。さらに、いくつかの実施形態では、タイルのセットは少なくとも2つの水平方向に隣接したタイルと少なくとも2つの垂直方向に隣接したタイルとを含む。
D.適応検索パターン
本発明のいくつかの実施形態の動き推定プロセスは、第1のピクセル・セットに一致する可能性がある第2の画像の一部を検査するパターンを各々定義する検索パターンのセットから第1の検索パターンを選択して第1のビデオ画像内の第1のピクセル・セットを符号化する。動き推定プロセスは、判定基準のセットに基づいて検索パターンのセット内の第1の検索パターンを適応的に選択する。いくつかの実施形態の判定基準のセットはビデオ画像の媒体のタイプを含む。
上記の新規なブロック間符号化および復号化プロセスについて説明する前に、本発明のブロック間符号化プロセスを含む符号化プロセスの全体のフローについて以下に説明する。
II.全体フロー
図1は符号化プロセスを簡単化するために種々の新規な刈り込み技法を使用するエンコーダの処理の流れを概念図で示すプロセス100を示す。いくつかの実施形態では、本章の刈り込み技法のすべてを使用するわけではない。また、いくつかの実施形態は、II章で後述するこれらの刈り込み技法を多段動き推定演算と併用する。
図1に示すように、プロセス100はインタブロックとしてのマクロブロックの符号化を見送るか否かを決定するステップ(105)から開始する。いくつかの実施形態では、ある状況の下でプロセスはブロック間符号化を見送る。これらの状況は、各フレームをイントラブロックとして符号化する処理を必要とするデバッグ・モードにエンコーダを設定する処理、いくつかのマクロブロックをイントラブロックとして符号化する処理を必要とするイントラブロック・リフレッシュの指定、ブロック内符号化が最終的に選択されるという認識、ブロック内符号化されているマクロブロックの数が少なすぎるという認識、またはマクロブロックをイントラブロックとして符号化することが必要な何か別の指定を含む。
プロセス100が、マクロブロックをインタブロックとして符号化する必要がないと判断すると、プロセスは110に進む。110で、プロセスはマクロブロックをイントラブロックとして符号化する。ブロック内符号化を実行する種々の新規な方法は、弁理士整理番号APLE.P0078(「Intrablock Encoding Application」)を有する「ビデオ・データを符号化するための符号化タイプおよび予測モードの選択」(Selecting Encoding Types and Predictive Modes for Encoding Video Data)という名称の米国特許出願に記載されている。この米国特許出願は参照により本明細書に組み込むものとする。
プロセスがマクロブロックをイントラブロックとして(110で)符号化すると、プロセスは150に進み、符号化方法を指定する。この場合、プロセスは110でそのイントラコーディングの結果を指定する。これはフローのこのパス内でプロセス100が探索した唯一の符号化方法であるからである。150の後で、プロセス100は終了する。
別の方法としては、プロセス100がブロック間符号化を見送るべき(すなわち、切り詰める)でないと(105で)決定した場合、プロセスはマクロブロックのスキップ・モード符号化を(115で)実行し、必要に応じて、マクロブロックの直接モード符号化を実行する。スキップ・モード符号化で、マクロブロックはスキップされたマクロブロックとして符号化される。デコーダ側では、このマクロブロックは周囲のマクロブロックおよび/または周囲のマクロブロック内のパーティションの動きベクトルを参照して復号化される。スキップ・モード符号化は、さらに、弁理士整理番号APLE.P0073(「Pruning Application」)を有する「ビデオ符号化時の刈り込み」(Pruning During Video Encoding)という名称の共願の米国特許出願に記載されている。この米国特許出願は参照により本明細書に組み込むものとする。直接モード符号化は、直接モード符号化では、マクロブロックのテクスチャ・データの一部が量子化され、符号化ビット・ストリーム内で送信されるという点を除き、スキップ・モード符号化と同様である。いくつかの実施形態では、直接モード符号化はマクロブロックのBモード符号化として実行される。また、いくつかの実施形態は、Pモード符号化の際に直接モード符号化を実行する。
115の後で、プロセス100は、スキップ・モード符号化が115で最良の符号化方法であったか否かを(120で)判定する。これは明らかに、115で直接モード符号化が実行されなかった時には最良の符号化方法である。他方、115で直接モード符号化が実行され、この符号化が結果的にスキップ・モード符号化より優れた方法の時には、プロセスは135に進んでインターコーディングを実行する。これについては後述する。
ただし、プロセスが、スキップ・モード符号化が115で最良の結果であったと(120で)判定した時には、プロセスはスキップ・モード符号化が符号化を終了するのに十分優れていたか否かを(125で)判定する。そのような判定の1つの方法が上記組み込まれた「Pruning Application」に記載されている。
スキップ・モード符号化が十分に優れているとプロセスが(125で)判定した場合、プロセス100は130に進み、スキップ・モード符号化方法を廃棄するか否かを決定する。いくつかの実施形態は、レート・ディストーション・コスト(RDコスト)と呼ばれる符号化コストに基づいて方法を判定する。II章で詳述するように、符号化方法のRDコストは、多くの場合、符号化されたマクロブロックの歪を表し、その符号化方法で生成される実際のビット数をカウントする。スキップ・モード方法はRDコストが大きいことがあるがそれでも魅力的な方法である。これは、そのような方法がきわめて小さいレート・コストを有し、そのような小さいレート・コストは全RDコストを大幅にゆがめて、劣った方法を最良の方法と思わせるためである。
したがって、125でスキップ・モード符号化方法を選択した後でも、プロセス100はスキップ・モード方法を除去するか否かを(125で)判定する。いくつかの実施形態では、この判定の基準は、現在のマクロブロックのスキップ・モード符号化の歪が現在のマクロブロックの隣接マクロブロックの最大歪の2倍より大きいか否かである。
プロセスが、スキップ・モード方法を除去しないと(130で)決定した場合、プロセスは符号化方法を指定する。この場合、プロセスはスキップ・モード符号化方法の結果を指定する。150の後で、プロセス100は終了する。他方、プロセス100が、スキップ・モード符号化方法を除去すると(130で)決定した場合、135に進む。スキップ・モード方法が符号化を終了させるのに十分優れてはいないと(125で)判定した場合も、プロセスは135に進む。
135で、プロセスは種々のブロック間符号化を検査する。いくつかの実施形態では、プロセス100は種々のマクロブロックとサブマクロブロック符号化(例えば、16×16、8×16、16×8、8×8、8×4、4×8、および4×4BモードおよびPモード符号化)を探索することがある。これについてはII章で詳述する。ただし、上記組み込まれた「Pruning Application」に記載されているように、いくつかの実施形態は、マクロブロックまたはサブマクロブロック符号化モードのいくつかの探索および/または分析を切り詰め(すなわち、見送り)、ブロック間符号化プロセスを高速化する。
135でブロック間符号化を実行した後、プロセスはマクロブロックのブロック間符号化がマクロブロックのブロック内符号化を見送るほど優れているか否かを(140で)判定する。別の実施形態ではこの判定方法が異なる。これらの手法のいくつかについてII章で詳述する。
プロセス100が、ブロック内符号化を実行すると(140で)決定すると、145に進み、この符号化を実行する。上記のように、このプロセスのブロック内符号化のいくつかの新規な特徴は上記組み込まれた「Intrablock Encoding Application」に記載されている。145の後で、プロセスは150に進む。プロセスはブロック内符号化を見送ると(140で)決定した場合も、150に進む。
上記のように、プロセスはマクロブロックの符号化方法を(150で)指定する。プロセス100が150の前にその動作中に複数の符号化方法を識別すると、プロセスはこれらの方法の1つを(150で)選択する。いくつかの実施形態では、プロセス100は最良のRDコストを有する方法を選択する。RDコストのいくつかの例を以下に示す。150の後で、プロセスは終了する。
III.ブロック間符号化
A.多段動き推定
上記のように、いくつかの実施形態は、多段動き推定演算を図1に示すプロセス100と併用する。いくつかの実施形態では、多段動き推定演算はマクロブロックをブロック間符号化する時に実行される。以下に述べるように、いくつかの多段動き推定演算は粗動き推定と微細動き推定とを含む。いくつかの実施形態では、プロセス100は初期の粗動き推定演算の後に実行される。しかし、初期の粗動き推定演算は、また、プロセス100中に(例えば、ステップ105とステップ115との間のステップ140で)実行できることは当業者には明らかであろう。
1.全体フロー
図2は、1つまたは2つの基準フレームとカレント・フレームとの間のマクロブロックの動きを指定する動きベクトルを識別する多段動き推定演算を実行するプロセスを示す図である。本発明の多段動き推定演算の説明を分かりにくくしないために、単一の基準フレーム内のカレント・フレーム・マクロブロックの位置を発見する処理に関してプロセス200を以下に説明する。しかし、このプロセスはしばしば2つの基準フレームを探索してマクロブロックの最良の動き推定符号化を識別することは当業者には明らかであろう。
このプロセスの第1段階は、基準フレーム内のカレント・フレーム・マクロブロックの位置の粗近似を識別する粗検索(例えば、粗動き推定)である。第2段階は、基準フレーム内のカレント・フレーム・マクロブロックの位置のより高精度の近似を識別するより微細検索(例えば、微細動き推定)である。
プロセスは最初、カレント・フレーム・マクロブロックに最もよく一致するマクロブロックの基準フレームの第1の検索を(210で)実行する。第1の検索は基準フレーム内の第1の検索ウィンドウ内で実行される。別の実施形態は第1の検索ウィンドウの位置を異なって識別する。例えば、図3に示すように、いくつかの実施形態は、第1の検索ウィンドウ300をカレント・フレーム内のマクロブロック330のロケーション320に対応する基準フレームのロケーション310の近くに配置する。
別の実施形態は、第1の検索ウィンドウを基準フレーム内のカレント・フレーム・マクロブロックの指定のロケーションに配置する。図4は、カレント・フレーム・マクロブロックに関連する予測動きベクトルに基づいて第1の検索ウィンドウのロケーションを識別する1つの方法を示す図である。図4はカレント・フレーム400内のカレント・フレーム・マクロブロック410を示す。この図はまた、カレント・フレーム・マクロブロック410に関連する予測動きベクトル420を示す。この予測動きベクトル420は、カレント・フレーム内のカレント・フレーム・マクロブロック410に隣接するマクロブロックの動きベクトルに基づいて計算できる。図4に示すように、予測動きベクトル420は基準フレーム430内のロケーション440に対応するカレント・フレーム400内のロケーション・ポイント460をポイントする。したがって、図4にさらに示すように、いくつかの実施形態は、基準フレーム430内の第1の検索ウィンドウ450をロケーション・ポイント440の近くに配置する。
プロセス200は、カレント・フレーム・マクロブロックが基準フレーム内に出現してから動いた量を指定する動きベクトルを識別しようとして第1の検索ウィンドウ内で粗検索を(210で)実行する。プロセスは、カレント・フレーム・マクロブロックに最もよく一致する第1の検索ウィンドウ内で基準フレーム・マクロブロックを検索することでこの動きベクトルを識別できる。プロセスは、検索ウィンドウ内のすべての基準フレーム・マクロブロックを参照するわけではなく、ある種の所定のパラメータの範囲にあるマクロブロックを決定するのに十分なだけ参照する。
プロセスが十分な基準フレーム・マクロブロックを識別すると、この粗検索で遭遇する最良の基準フレーム・マクロブロックを(210で)識別する。次いで、プロセスは識別された最良の基準フレーム・マクロブロックを(210で)用いて基準フレーム内のカレント・フレーム・マクロブロックのロケーションの粗近似を示す動きベクトルを指定する。
210の後で、プロセスは第1の検索ウィンドウ内で粗検索を十分に繰り返したか否かを(220で)判定する。いくつかの実施形態は、このウィンドウ内で1回の検索しか実行しない。そのような実施形態では、プロセス200は220で判定する必要がなく、その代わりに、210から直接230に進む。あるいは、他の実施形態は、このウィンドウ内で、複数の異なるポイントで開始する複数の検索を実行する。
プロセス200が、第1の検索ウィンドウ内で、別の粗検索を実行すると(220で)決定した場合、プロセスは210に戻って、マクロブロックに関して210で実行された他の以前の粗検索とは異なるロケーションで開始する別の検索(このウィンドウ内の)を実行する。
図5は、第1の検索ウィンドウ内の複数の開始ポイントの一例を示す図である。特に、この図は第1の検索ウィンドウ500内の4つの開始ポイント510〜540を示す。各開始ポイント510〜540は異なる基準フレーム・マクロブロックを識別する検索を実行する。いくつかの実施形態では、異なる開始ポイントが同じ基準フレーム・マクロブロックを識別してもよい。
プロセスが第1の検索ウィンドウ内で粗検索を十分に繰り返したと(220で)判定した場合、210までの1つまたは複数の繰り返しで識別した最良の可能な粗い段階の方法を(230で)識別する。図6に示すように、この方法は、基準フレーム内のロケーション630に対応するカレント・フレーム内のマクロブロック410のロケーション610を識別する動きベクトル620を識別する。
次に、プロセスはカレント・フレーム・マクロブロックに一致する基準フレーム・マクロブロックの第2の微細動き推定検索を(240で)実行する。第2の検索は基準フレームの第2の検索ウィンドウ内で実行される。いくつかの実施形態では、この第2の検索ウィンドウは210の粗い第1段階の検索で使用した第1の検索ウィンドウよりも小さい。また、いくつかの実施形態では、第2の検索ウィンドウは、第1段階の検索によって(すなわち、230で選択された動きベクトルによって)生成された動きベクトルによって識別された基準フレーム内の位置の近くに画定される。図6はそのような第2段階の検索ウィンドウの一例を示す図である。特に、この図は、第1の検索で指定されたロケーション・ポイント630の近くの第2の検索ウィンドウ640を示している。
いくつかの実施形態では、第2の検索段階で(240で)使用した検索プロセスは第1の検索段階で使用した検索プロセスよりもはるかに徹底している。例えば、いくつかの実施形態は、第2段階ではレート・ディストーション最適化を利用する詳細なサブマクロブロック検索を使用するが、第1の検索段階ではより簡単な3ステップの検索を使用する。
240の第2の検索段階の最後に、プロセス200は、カレント・フレーム・マクロブロックが基準フレーム内に出現してから動いた量を指定する動きベクトルを提供する。240の後で、プロセスは終了する。
2.微細動き推定
図7は、カレント・フレーム・マクロブロックのピクセルのパーティション・セットに最もよく一致する基準フレーム内のピクセルのパーティション・セットを識別するために実行される微細動き推定プロセス700を示す図である。いくつかの実施形態では、プロセス700はプロセス200の第2の検索(240)中に実施される。
この図に示すように、プロセス700は検索ウィンドウ内でロケーション・ポイントを(705で)選択する。いくつかの実施形態では、検索ウィンドウは最初はプロセス200の230で識別された微細基準フレーム・マクロブロックの近くに画定される。
図8は、いくつかのロケーション・ポイントを有する検索ウィンドウ800を示す概念図である。この図に示すように、検索ウィンドウ800は、9つのロケーション・ポイント805〜845を含む。いくつかの実施形態では、これらのロケーション・ポイント805〜845はランダムに生成できる。別の実施形態では、これらのロケーション・ポイント805〜845は判定基準のセットによって事前に規定されている。これらのロケーション・ポイント805〜845の各々は整数ピクセル・レベルの基準フレーム・マクロブロックに対応する。さらに、図8は、ハーフおよびクォータ・ピクセル・レベルのロケーション・ポイントなどの非整数ピクセル・レベル(すなわち、サブピクセル・レベル)のロケーション・ポイントを示す。これらのサブピクセル・レベルのロケーション・ポイントの使用法について図9を参照しながら詳述する。
次に、カレント・フレーム・マクロブロック内のピクセルの各々の可能なパーティションについて、プロセス700は選択されたロケーション・ポイントの特定のピクセルのパーティションがカレント・フレーム・マクロブロックのピクセルのパーティションにどの程度一致するか(710で)検査する。図10は、いくつかの可能なパーティション(すなわち、ブロック)サイズを示す概念図である。特に、この図は、各ブロック・サイズが特定のピクセル・ブロックを表す9つの可能なブロック・サイズを示す。例えば、ブロック・サイズ1は16×16のピクセル・アレイを含むピクセル・ブロックを表す。ブロック・サイズ2は16×8のピクセル・アレイを含むピクセル・ブロックを表す。この図は9つのブロック・サイズしか示していないが、プロセス700は他のピクセル構成のブロック・サイズを検索することができる。いくつかの実施形態は、これらのブロック・サイズをすべて検索するが、別の実施形態は、これらのブロック・サイズの一部しか検索しない。
検査が(710で)実行されると、プロセス700は各ブロック・サイズの基準フレーム・マクロブロックの最良のロケーションを(715で)更新する。プロセス700は、別のロケーション・ポイントがあるか否かを(720で)判定する。ある場合、プロセス700は705に進んで別のロケーション・ポイントを選択し、ステップ710〜720をもう1回繰り返す。
プロセス700がもうロケーション・ポイントはないと(720で)判定すると、プロセス700はあるブロック・サイズの検索結果が良好であるか否かを(725で)判定する。いくつかの実施形態では、更新されたロケーションを有するブロック・サイズが一定の判定基準(例えば、一定のしきい値より下のSAD)を満たしていれば、検索結果は良好である。いくつかの実施形態では、特定のブロック・サイズに関連するコストと最小のコストを有するブロック・サイズに関連するコストとの差がしきい値を超えている場合、検索結果は良好ではない。いくつかの実施形態では、しきい値は検索中に動的に定義される。プロセス700があるブロック・サイズの検索結果が良好ではないと(725で)判定すると、プロセス700は以降のどの検索でもこれらのブロック・サイズを(730で)除外する。
これらのブロック・サイズを(730で)除外した後、またはすべての検索結果が良好であると(725で)判定した後で、プロセス700は別の検索を(735で)実行する。この検索中、各ブロック・サイズについて、プロセス700はカレント・フレーム・マクロブロックのパーティションに最もよく一致する基準フレーム内のピクセルのパーティションを検索する。この検索は、サブピクセル・レベルでのピクセルのパーティションの検索を含む。このサブピクセル・レベル検索について以下に詳述する。(735の)検索の後で、プロセス700は終了する。
3.サブピクセル・レベルでの検索
図9は、多重ピクセル・レベルの基準フレーム・マクロブロックのピクセルのパーティションを検索するプロセス900を示す概念図である。いくつかの実施形態では、プロセス900はプロセス700の検索735中に実行される。この図に示すように、プロセス900は、カレント・フレーム・マクロブロックのピクセルのパーティションを(905で)選択する(すなわち、ブロック・サイズを選択する)。プロセス900は905までを数回繰り返す。905までの繰り返しで、いくつかの実施形態のプロセスは、図10に示す数字指定に基づいて730で順次廃棄されなかったパーティション(すなわち、ブロック)を繰り返し選択する。例えば、730でどのパーティションも廃棄されなかった場合、プロセス900はブロック1〜9を順次選択する。
905の後、プロセス900は検索の初期ピクセル解像度(例えば、ピクセル・レベル)を(910で)定義する(すなわち、検索の粒度を定義する)。例えば、プロセス900は最初、ピクセル解像度を整数ピクセルで1ロケーションおき(すなわち、整数のピクセル・レベル解像度の半分の解像度)と定義できる。次に、プロセス900は、検索ロケーションを、カレント・フレーム・マクロブロックの選択されたパーティションのこれまでに識別されたうち最良のロケーションと(915で)定義する。この最良と識別されたロケーションは、図7のプロセス700のピクセル・レベル検索中に識別でき、または、以下に詳述するように、図9のプロセス900のピクセル解像度検索のいずれかの実行中に識別できる。
730で廃棄されなかった特定のカレント・フレーム・パーティションの各々について、プロセス900は、(920で)(1)定義されたピクセル・レベル解像度(すなわち、検索の粒度)で915で識別された検索ロケーション近くの基準フレーム・パーティションを検査し、(2)カレント・フレーム・パーティションに最もよく一致する特定の検査済の基準フレーム・パーティションを識別する。
次いで、730で廃棄されなかった特定のカレント・フレーム・パーティションの各々について、プロセス900は、(925で)特定のカレント・フレーム・パーティションの920で識別された特定のカレント・フレーム・パーティションが特定のカレント・フレーム・パーティションの以前に識別された最高の一致よりもよい一致であるか否かを判定する。そうである場合、プロセスは920で識別された特定の基準フレーム・パーティションのロケーションを特定のカレント・フレーム・パーティションの最良のロケーションとして(925で)定義する。
次に、プロセス900は、選択されたパーティションの最大ピクセル・レベル解像度で基準フレームを検査したか否かを(930で)判定する。そうでない場合、プロセス900はピクセル・レベル解像度を次のピクセル・レベル解像度(例えば、半分、4分の1)に(935で)増やし、915に戻る。これについては前述の通りである。したがって、ステップ915〜935の以降の繰り返しで、プロセス900はサブピクセル・レベル(例えば、半分、4分の1)でカレント・フレーム・マクロブロックのパーティションを検査する。
プロセス900が、選択されたパーティションの最大ピクセル・レベル解像度で基準フレームを検査したと(930で)判定した場合、プロセス900は、730で廃棄されなかったすべてのカレント・フレーム・パーティションを検査したか否かを(940で)判定する。そうでない場合、プロセス900は905に戻って次のカレント・フレーム・パーティションを選択し、このパーティションについてステップ910〜935を繰り返す。プロセス900は、730で廃棄されなかったすべてのピクセルのパーティションを検査したと(940で)判定すると、終了する。
図11は、異なるピクセル・レベルのいくつかの検索ロケーションを示す概念図である。特に、この図は、4つの整数ピクセル・レベルロケーション825〜830と840〜845とによって区切られた検索領域860を示す。いくつかの実施形態では、この区切られた検索領域860は、図8に示すように、検索ウィンドウ800内にある。
区切られた検索領域860内には5つのハーフ・ピクセル・レベル・ロケーションがある。さらに、この区切られた検索領域860内には、16のクォータ・ピクセル・レベル・ロケーションがある。別の実施形態では、これより多い、または少ない整数および非整数のロケーションを含む別の区切られた検索領域を指定できる。いくつかの実施形態は、プロセス900が検索ロケーションをロケーション850と(915で)定義している時には、920での検索時にこの区切られた検索領域860の内部および周囲を検索できる。
いくつかの実施形態では、上記のステップのいくつかの繰り返しが実行される。上記のように、いくつかの実施形態は、ピクセル・レベルごとに別途検索を行う。ただし、いくつかの実施形態では、異なるピクセル・レベルでいくつかのブロック・サイズを検索ロケーションごとに同時に検索できる(すなわち、すべてのブロック・サイズについて整数、ハーフおよびクォータ・ピクセル・レベルで同時に各ロケーションについて検索できる)ことは当業者には明らかであろう。サブピクセル・レベルはハーフおよびクォータ・ピクセル・レベルとして説明しているが、サブピクセル・レベルは任意の非整数ピクセル・レベルでよいことは当業者には明らかであろう。
さらに、プロセス700は、あるブロック・サイズの検索結果が良好か否かを(725で)判定すると記述している。いくつかの実施形態では、この判定725は、プロセス900中に行ってもよい。さらに、この判定725はプロセス700および900の異なるステップ中に実行してもよいことは当業者には明らかであろう。例えば、各ブロック・サイズの最良のロケーションを見つけた後でそのような判定プロセス725を実行してもよい。
さらに、いくつかの実施形態は、プロセス700中に735で検索を実行しない。また、上記プロセス700および900は基準フレーム・マクロブロックの検索を実行すると記述してあるが、プロセス700および900を用いて他のタイプのピクセル・アレイ(例えば、16×8のサブマクロブロック)を検索できることは当業者には明らかであろう。
B.キャッシュ補間値
図12は、基準フレーム内のいくつかのピクセルおよびサブピクセル・ロケーションを示す概念図である。これらのサブピクセル・ロケーションはハーフおよびクォータ・ピクセル・ロケーションを含む。この図に詳細に示すように、カレント・フレーム・マクロブロック1200はクォータ・サブピクセル・ロケーション1205と位置合わせされている(すなわち、カレント・フレーム・マクロブロック内のピクセル・ロケーションは基準フレーム内のクォータ・サブピクセル・ロケーションと揃っている)。
上記のように、エンコーダは、いくつかの実施形態の動き推定演算中に、基準フレーム内のサブピクセル・ロケーションと位置合わせされた(すなわち、ピクセル・ロケーションと位置合わせされていない)マクロブロックまたはマクロブロック・パーティションを検査する。いくつかの実施形態のデコーダは、また、場合によっては、基準フレームからサブピクセル・ロケーションと位置合わせされた(すなわち、ピクセル・ロケーションと位置合わせされていない)マクロブロックまたはマクロブロック・パーティションを取り出す必要がある。
サブピクセル・ロケーションと位置合わせされたマクロブロックまたはマクロブロック・パーティションの検査および取り出しを行うには、エンコーダまたはデコーダが、復号化演算時のカレント・フレーム内のピクセル・ロケーションに対応し、符号化演算時にカレント・フレーム内のピクセル・ロケーションと比較する必要があるサブピクセル・ロケーションの基準フレームの画像値(例えば、輝度値)を生成することが必要である。
いくつかの実施形態では、サブピクセル・ロケーションに対応する画像値の生成は、隣接するピクセル・ロケーションの画像値から画像値を補間する(すなわち、ピクセル・ロケーションの画像値からサブピクセル・ロケーションの画像値を抽出する)処理を必然的に伴う。多くの場合、サブピクセル・ロケーションの画像値の補間は2つの最も近い隣接したピクセル・ロケーションの画像値を単に計算する以上の処理を必然的に伴う困難な演算(例えば、計算が高価な演算)である。したがって、いくつかの実施形態は、サブピクセル・ロケーションの補間された画像値をキャッシュに記憶する。この画像値は、別のカレント・フレーム・パーティションの以降の検索がサブピクセル・ロケーションの上記の補間された画像値を検査しようとする時には容易に取り出すことができる。いくつかの実施形態はすべての補間された値をキャッシュに記憶するが、別の実施形態は補間された値の一部しかキャッシュに記憶しない。
符号化および/または復号化演算中、カレント・フレーム・マクロブロックのセットの多くの動きベクトルが同じ基準フレームをポイントする。例えば、図13に示すように、フレーム1310はフレーム1305および1325を参照して定義された動きベクトルを有する。さらに、両方のフレーム1315および1320はフレーム1305を参照して定義された動きベクトルを有する。したがって、ある実施形態の場合には、他の複数のフレームを符号化、または復号化するために基準フレームを使用できる。この結果、基準フレームについて補間されたすべての、またはいくつかのサブピクセル値をキャッシュに入れることが必要である。これは、サブピクセル値が他のフレームの符号化に使用できるためである。
C.キャッシュ・タイリング
図14は、基準フレームをキャッシュに記憶するための方法を示す概念図である。いくつかの実施形態では、この方法は上記の補間演算と併用される。この図に示すように、基準フレーム1305はいくつかのタイル1430に分割される。いくつかの実施形態では、フレーム1305は複数のタイルの列と複数のタイルの行とを含むように分割される。
図14はさらに基準フレーム内のピクセル・ロケーションと位置合わせされたまたはされていないピクセル・ブロック1450を示す。ピクセル・ブロック1450は符号化演算時に(すなわち、動き推定時に)検査されるかまたは復号化演算時に取り出される基準フレームの一部を表す。
図14に示すように、タイル1430a〜1430dの一部はピクセル・ブロック1450を検査または取り出すために必要である。したがって、符号化または復号化演算時にピクセル・ブロック(ピクセル・ブロック1450など)の検査を容易にするために、いくつかの実施形態では、基準フレーム1305をそのタイルに関してキャッシュに入れる。言い換えれば、基準フレーム1305全体にわたるピクセルの行(例えば、ピクセル・ブロック1450を含むピクセル行1401〜1425)をキャッシュに入れる代わりに、いくつかの実施形態では、基準フレーム内のタイルをキャッシュに入れるだけである。
特定のピクセル・ブロックの分析のためにタイルのセットが必要な時には、これらの実施形態のエンコーダまたはデコーダは特定のピクセル・ブロックが重なっているすべてのタイルがキャッシュに入っているか否かを判定する。そうである場合、エンコーダまたはデコーダはキャッシュに入っているタイルを用いて特定のピクセル・ブロックを処理する。そうでない場合、エンコーダまたはデコーダは、(1)非キャッシュ記憶域から所望のタイル(すなわち特定のピクセル・ブロックと重なるが現在キャッシュに入っていないタイル)を取り出し、(2)これらのタイルをキャッシュに記憶し、次に、(3)これらのタイルを用いて特定のピクセル・ブロックを処理する。例えば、ピクセル・ブロック1450を処理しようとする場合、エンコーダまたはデコーダはこのブロックがタイル1430a〜1430dに重なっていると判定する。したがって、エンコーダまたはデコーダはこれらのタイル1430a〜1430dをキャッシュに入れ(まだ入っていない場合)、次に、これらのタイルを用いてブロック1450を処理する。
いくつかの実施形態では、キャッシュ記憶域は符号化または復号化演算を実行するためのコンピュータ・システムのプロセッサのキャッシュである。別の実施形態では、キャッシュ記憶域は符号化または復号化演算を実行するためのコンピュータ・システムの揮発性メモリ(例えば、ランダム・アクセス・メモリ)の専用の領域である。また、図14はキャッシュ処理のための正方形のタイルを示しているが、いくつかの実施形態では、そのタイルに長方形などの他の形状を用いてもよい。
D.動き推定のための適応検索パターン
いくつかの実施形態は、上記の多段動き推定演算中に異なる検索判定基準を用いて検索を実行する。いくつかの実施形態は、検索を実行する際に固定検索パターンを使用する。別の実施形態では、異なる検索パターンを使用してもよい。例えば、いくつかの実施形態は、ある種の判定基準に基づいて検索パターンを適応的に選択する。
1つの例は、低密度および高密度検索パターンの間の選択である。図15は、検索ウィンドウ1500内の低密度検索パターンを示す。この図は、パターンが検索のために指定するロケーションを表す黒い円で検索パターンを示している。図15に示すように、検索パターンは、検査できる49個の潜在的なマクロブロック・ロケーション(黒と白の円で識別される)から検索のために16個のロケーションだけを指定する。図16は、検索ウィンドウ1500内の高密度検索パターンを示す。この図の検索パターンは、検査できる49個の潜在的なマクロブロック・ロケーション(黒と白の円で識別される)から検索のために25個のロケーションを指定する。
いくつかの実施形態は、所望の符号化結果に基づいて図15および図16に示す検索パターンから適応的に選択を行う。例えば、いくつかの実施形態は、高解像度符号化(例えば、HDテレビジョン符号化)には図16に示す高密度パターンを使用し、別の実施形態は、ネットを通じて搬送されるストリーミング・リアルタイム・ビデオのために図15に示す低密度パターンを使用する。
あるいは、いくつかの実施形態は、垂直検索の動きを強調する検索パターンを使用し、別の実施形態は、水平検索の動きを強調する検索パターンを使用する。図17は、予測されたマクロブロック・ロケーション付近に中心がある検索ウィンドウ内の検索パターンの一例を示す。この検索パターンは垂直方向に偏っている。探索できるロケーションの数が限られているので、図17に示すパターンは、エンコーダの限られた検索予算を使って検索ウィンドウ1500の中心にある予測されたマクロブロック・ロケーションの近くの垂直列にあるロケーションを検査する。
図18は、予測されたマクロブロック・ロケーション付近に中心がある検索ウィンドウ内の検索パターンの一例を示す。この検索パターンは水平方向に偏っている。探索できるロケーションの数が限られているので、図18に示すパターンは、エンコーダの限られた検索予算を使って検索ウィンドウ1500の中心にある予測されたマクロブロック・ロケーションの近くの水平行にあるロケーションを検査する。
いくつかの実施形態は、隣接マクロブロックのベクトルに基づいて、図17および図18に示す2つのパターンのうちから適応的に選択を行う。それらの大半またはすべてが特定の方向(例えば、垂直または水平方向)を指す場合、これらの実施形態は図17または図18に示すパターンを選択する。いくつかの実施形態は一方の方向(例えば、y軸)の動きベクトルの絶対値が他方の方向(例えば、x軸)の動きベクトルの絶対値より大きいか否かを判定することで、隣接するマクロブロックの動きベクトルが特定の方向を指すか否かを判定する。いくつかの実施形態は、隣接するマクロブロックの動きベクトルの方向だけでなく、これらのベクタの大きさも考慮する。いくつかの実施形態は、検索パターンを適応的に選択する際に、画像のセットの動きフィールド(例えば、画像のセットが特定の方向の動きを示すか否か)も考慮する。
E.RDコスト計算
上記のように、本発明のいくつかの実施形態は、動き推定演算中にレート・ディストーション(「RD」)コストなどの特定のマクロブロックのコストを計算する。動き推定中にすべての可能なモードについてレート・ディストーション・コストを生成することは計算処理の負荷が高い。このコストが、多くの場合、生成される実際のビットの歪と数の測定を必然的に伴うとするとこれは正しい。したがって、いくつかの実施形態では、すべての可能なモードについてRDコストを計算することはない。その代わりに、これらの実施形態は、動き推定方法をランク付けし、上位N個の動き推定方法を選択し、次いで選択した方法のRDコストを計算することで可能なモードの数を減らす。
図19は、本発明のいくつかの実施形態のプロセス1900を示す。このプロセスはRDコストを計算する必要がある動き推定方法を識別するために、動き推定方法のサブセットを選択的に検査する。いくつかの実施形態では、このプロセスが開始する前にいくつかの符号化方法が計算されている。別の実施形態は、このプロセスを符号化方法と併用する。
最初、プロセス1900は、最小から最大推定誤差に基づいて符号化方法を(1910で)ランク付けする。いくつかの実施形態では、各符号化方法は動きベクトルだけでなく推定誤差も生成する。別の実施形態は別のメトリック計算を用いて誤差を量子化する。例えば、いくつかの実施形態は、平均絶対差(「MAD」)測定基準評価(metric score)を使用するが、絶対差の総和(「SAD」)測定基準評価を使用する実施形態もある。後者の方法は上記組み込まれた「Pruning Application」に記載されている。さらに別の実施形態では、複数の測定基準評価の組み合わせを使用する。
次に、プロセスはランク付けされたリストの上位N個の符号化方法を(1920で)選択する。いくつかの実施形態では、Nの値は事前定義された数で、別の実施形態では、動的に生成される数である。次いで、プロセスは選択した上位N個の結果のRDコストを(1930で)計算し、最も低いRDコストを備えた符号化方法を(1940で)選択し、終了する。
いくつかの実施形態は、符号化方法のRDコストを下式で表す。
RdCost=歪コスト+(λ×NB)
ただし、λは重み付け係数、NBは符号化のために生成されたビット数である。RdCostは送信するデータの量とそのデータに関連する歪の量を定量化する。
単一のRDコストを計算する代わりに、いくつかの実施形態では、RDコストを因子に分解するだけでなく符号化方法が生成された所与のモードを復号化する複雑さも因子に分解するコストを(2330で)計算する。このコストは下式で表される。
複合RD=RdCost+α(cf)
ただし、RdCostは上記の指定された等式で計算され、αは復号化の複雑さに関連する重要な因子で、cfはデータ上で実行される復号化の量を定量化する複雑さの因子である。
1930の後で、プロセスは1930で計算された最小コストに至った動き推定方法を(1940で)選択し、終了する。最初に初期測定基準評価で動き推定演算をランク付けし、最小初期測定基準評価でこれらの符号化方法のコスト・メトリックに対して定量化のみを実行することで、プロセス1900は可能な限り高速に受け入れられる結果を確実に見つけるようにする。
IV.コンピュータ・システム
図20は、本発明のいくつかの実施形態が実施されるコンピュータ・システムを示す概念図である。コンピュータ・システム2000は、バス2005と、プロセッサ2010と、システム・メモリ2015と、読み出し専用メモリ2020と、永久記憶装置2025と、入力装置2030と、出力装置2035とを含む。
バス2005は、コンピュータ・システム2000の内部装置間の通信をサポートするすべてのシステム、周辺装置、およびチップセット・バスを集合的に表す。例えば、バス2005は、プロセッサ2010を通信可能に読み出し専用メモリ2020と、システム・メモリ2015と、永久記憶装置2025とに接続する。
これらの種々のメモリ・ユニットから、プロセッサ2010は本発明のプロセスを実行するために、実行する命令と、処理するデータとを取り出す。読み出し専用メモリ(ROM)2020は、プロセッサ2010とコンピュータ・システムの他のモジュールが必要とする静的データと命令とを記憶する。他方、永久記憶装置2025は、読み出し/書き込みメモリ素子である。この素子はコンピュータ・システム2000がオフになっても命令およびデータを記憶する不揮発性記憶装置である。本発明のいくつかの実施形態は、永久記憶装置2025として、大容量記憶装置(磁気または光ディスクとそれに対応するディスク・ドライブなど)を使用する。別の実施形態は、永久記憶装置として、着脱式記憶装置(フロッピー・ディスクまたはzip(登録商標)ディスクとそれに対応するディスク・ドライブなど)を使用する。
永久記憶装置2025のように、システム・メモリ2015は読み出し/書き込みメモリ素子である。ただし、記憶装置2025とは違って、システム・メモリはランダム・アクセス・メモリのような揮発性読み出し/書き込みメモリである。システム・メモリはプロセッサが実行時に必要とする命令とデータの一部を記憶する。いくつかの実施形態では、本発明のプロセスは、システム・メモリ2015、永久記憶装置2025、および/または読み出し専用メモリ2020に記憶される。
バス2005はまた入力および出力装置2030および2035に接続する。ユーザは入力装置を用いてコンピュータ・システムに情報を伝え、コマンドを選択する。入力装置2030は英数字キーボードおよびカーソル制御装置を含む。出力装置2035はコンピュータ・システムによって生成される画像を表示する。出力装置はプリンタと陰極線管(CRT)または液晶ディスプレイ(LCD)などの表示装置を含む。
最後に、図20に示すように、バス2005はまたネットワーク・アダプタ(図示せず)を介してコンピュータ2000をネットワーク2065に結合する。こうして、コンピュータはコンピュータのネットワーク(ローカル・エリア・ネットワーク(「LAN」)、ワイド・エリア・ネットワーク(「WAN」)、もしくはイントラネットなど)またはネットワークのネットワーク(インターネットなど)の一部になる。コンピュータ・システム2000のいずれかまたはすべての構成要素を本発明と併用することができる。ただし、任意のその他のシステム構成も本発明と併用できることは当業者には明らかであろう。
多数の特定の詳細を参照しながら本発明を説明してきたが、通常の当業者であれば、本発明の精神から逸脱することなしに、本発明を他の特定の形態で実施することができることを理解することができるだろう。例えば、本発明の多くの実施形態をマクロブロックを参照しながら説明してきたが、通常の当業者であれば、これらの実施形態は、ピクセル値の任意の他のアレイと一緒に使用することができることを理解することができるだろう。
符号化プロセスを簡単化するために種々の新規な刈り込み技法を使用するエンコーダの処理のフローを示す概念図である。 2段階動作の動き推定演算を実行して、1つまたは2つの基準フレームとカレント・フレームとの間のマクロブロックの動作を指定する動きベクトルを識別するプロセスを示す図である。 いくつかの実施形態が、第1の検索ウィンドウをカレント・フレーム内のマクロブロックのロケーションに対応する基準フレームのロケーションの近くに配置する方法を示す図である。 カレント・フレーム・マクロブロックに関連する予測動きベクトルに基づいて第1の検索ウィンドウのロケーションを識別する1つの方法を示す図である。 第1の検索ウィンドウ内の複数の開始ポイントの一例を示す図である。 第2段階の検索ウィンドウの一例を示す図である。 カレント・フレーム・マクロブロックのピクセルのパーティション・セットに最もよく一致する基準フレーム内のピクセルのパーティション・セットを識別するために実行される微細動き推定プロセスを示す図である。 いくつかのロケーション・ポイントを有する検索ウィンドウを示す概念図である。 多重ピクセル・レベルの基準フレーム・マクロブロックのピクセルのパーティションを検索するプロセスを示す概念図である。 いくつかの可能なパーティション(すなわち、ブロック)サイズを示す概念図である。 異なるピクセル・レベルのいくつかの検索ロケーションを示す概念図である。 基準フレーム内のサブピクセル・ロケーションと位置合わせされたカレント・フレーム・マクロブロックの概念図である。 同じフレームをポイントする動きベクトルを含むいくつかのフレームの概念図である。 ピクセル・セットに関するデータ(例えば、整数、非整数)をキャッシュに記憶する方法の概念図である。 検索ウィンドウ内の低密度検索パターンを示す図である。 検索ウィンドウ内の高密度検索パターンを示す図である。 垂直方向に偏った検索パターンの一例を示す図である。 水平方向に偏った検索パターンの一例を示す図である。 動き推定方法のサブセットを選択的に検査してRDコストを計算するために必要なサブセットを識別するプロセスを示す図である。 本発明のいくつかの実施形態が実施されるコンピュータ・システムを示す図である。
符号の説明
100 プロセス
105、110、115,120,125,130,135,140,145,150 200,210,220,230、240,300、310,320,330、410,420,440,450,460、500,510,520,530,540、610,620,630,640,700,705、710、715,720,725,730,735 ステップ



Claims (18)

  1. 第1画像および第2画像を有するストリームの処理方法であって、
    前記第1画像を、相互に重なり合わない複数の行及び列のタイルを有する1つのタイル・セットに分割するステップと、
    前記タイル・セットを非キャッシュ・メモリ記憶域に記憶するステップと、
    前記第2画像内の第2ピクセル・セットと前記第1画像内の第1ピクセル・セット比較するために前記記憶されたタイル・セットの特定のタイル・サブセットであって前記第1画像のタイルの行を全部は含まず列も全部は含まない当該特定のタイル・サブセットが必要な時に、前記非キャッシュ・メモリ記憶域から前記特定のタイル・サブセットを取り出すステップと、
    前記第2画像内の前記第2ピクセル・セットと前記第1画像内の第3ピクセル・セット比較するために、前記特定のタイル・サブセットをキャッシュ・メモリ記憶域内に記憶するステップと、
    を有し、
    前記第1ピクセル・セットは前記特定のタイル・サブセットの各タイルの一部分と重なり、前記第3ピクセル・セットも前記特定のタイル・サブセットの一部に対応することを特徴とする方法。
  2. 前記第2画像内の前記第2ピクセル・セットに一致する前記第1画像内のピクセル・セットを識別するために検索すべき、前記第1画像内のロケーションが識別されたとき、前記特定のタイル・サブセットを取り出して前記キャッシュ・メモリ記憶域に記憶すべきであると判断するステップをさらに有し、
    前記識別されたロケーションが前記特定のタイル・サブセットに対応することを特徴とする請求項1に記載の方法。
  3. 前記キャッシュ・メモリ記憶域はコンピュータのランダム・アクセス・メモリであることを特徴とする請求項1に記載の方法。
  4. 前記キャッシュ・メモリ記憶域はコンピュータの揮発性記憶装置であることを特徴とする請求項1に記載の方法。
  5. 前記処理方法は符号化方法であることを特徴とする請求項1に記載の方法。
  6. 前記処理方法は復号化方法であることを特徴とする請求項1に記載の方法。
  7. 前記タイル・セットは少なくとも2つの水平方向に隣接したタイルと少なくとも2つの垂直方向に隣接したタイルとを有することを特徴とする請求項1に記載の方法。
  8. 前記特定のタイル・サブセットは前記キャッシュ・メモリ記憶域に順次記憶されることを特徴とする請求項1に記載の方法。
  9. 相互に重なり合わない複数の行及び列のタイルを有する特定のタイル群であって各タイルがピクセル・グループを含む当該特定のタイル群に関連づけられた画像の処理方法であって、
    1回目の処理工程中に前記画像内のピクセル・セットを識別するステップと、
    識別された前記ピクセル・セットに関連づけられた、前記画像のタイルの行を全部は含まず列も全部は含まないタイル・セットを識別するステップと、
    識別された前記タイル・セットのそれぞれのタイルについて、2回目の前記処理工程で使用するため、当該識別されたタイル・セットに関連づけられた前記ピクセル・グループをキャッシュに格納するステップと、を有し、
    前記識別されたピクセル・セットは前記識別されたタイル・セットの各タイルの一部分と重なることを特徴とする方法。
  10. 前記識別されたピクセル・セットに関連づけられた前記タイル・セットを識別する前記ステップは、前記識別されたタイル・セットに関連した前記ピクセル・グループを非キャッシュ記憶域に格納するステップを有することを特徴とする請求項9記載の方法。
  11. 前記2回目の前記処理工程中に前記画像内のもう1つのピクセル・セットを識別するステップをさらに有することを特徴とする請求項9記載の方法。
  12. 前記もう1つのピクセル・セットは、前記1回目の前記処理工程中に識別された前記ピクセル・セット内の少なくとも1つのピクセルを有することを特徴とする請求項11記載の方法。
  13. 前記識別された前記ピクセル・セット及び前記もう1つのピクセル・セットのうちの少なくとも1つ、少なくとも1つの非整数ピクセルを有することを特徴とする請求項11記載の方法。
  14. 前記非整数ピクセルは補間処理から導出されたものであることを特徴とする請求項13記載の方法。
  15. 前記処理方法は復号化処理を含むことを特徴とする請求項9記載の方法。
  16. 前記処理方法は符号化処理を含むことを特徴とする請求項9記載の方法。
  17. 少なくとも1つのプロセッサによって実行可能なコンピュータプログラムを格納するコンピュータ可読媒体であって、前記コンピュータプログラムは請求項1乃至16のいずれか1項に記載のステップを実行するための命令を有することを特徴とするコンピュータ可読媒体。
  18. 請求項1乃至16のいずれか1項に記載のステップを実行するための手段を備えることを特徴とするコンピュータシステム。
JP2005185817A 2004-06-27 2005-06-24 画像の符号化および復号化 Expired - Fee Related JP4885486B2 (ja)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
US58344704P 2004-06-27 2004-06-27
US60/583,447 2004-06-27
US64391705P 2005-01-09 2005-01-09
US60/643,917 2005-01-09
US11/119,414 2005-04-28
US11/119,414 US20050286777A1 (en) 2004-06-27 2005-04-28 Encoding and decoding images

Related Child Applications (2)

Application Number Title Priority Date Filing Date
JP2010269154A Division JP2011091838A (ja) 2004-06-27 2010-12-02 画像の符号化および復号化
JP2011088548A Division JP5836625B2 (ja) 2004-06-27 2011-04-12 画像の符号化および復号化

Publications (3)

Publication Number Publication Date
JP2006014343A JP2006014343A (ja) 2006-01-12
JP2006014343A5 JP2006014343A5 (ja) 2008-11-13
JP4885486B2 true JP4885486B2 (ja) 2012-02-29

Family

ID=34942452

Family Applications (4)

Application Number Title Priority Date Filing Date
JP2005185817A Expired - Fee Related JP4885486B2 (ja) 2004-06-27 2005-06-24 画像の符号化および復号化
JP2010269154A Pending JP2011091838A (ja) 2004-06-27 2010-12-02 画像の符号化および復号化
JP2011088548A Expired - Fee Related JP5836625B2 (ja) 2004-06-27 2011-04-12 画像の符号化および復号化
JP2014078921A Pending JP2014150568A (ja) 2004-06-27 2014-04-07 画像の符号化および復号化

Family Applications After (3)

Application Number Title Priority Date Filing Date
JP2010269154A Pending JP2011091838A (ja) 2004-06-27 2010-12-02 画像の符号化および復号化
JP2011088548A Expired - Fee Related JP5836625B2 (ja) 2004-06-27 2011-04-12 画像の符号化および復号化
JP2014078921A Pending JP2014150568A (ja) 2004-06-27 2014-04-07 画像の符号化および復号化

Country Status (6)

Country Link
US (2) US20050286777A1 (ja)
EP (1) EP1610561A3 (ja)
JP (4) JP4885486B2 (ja)
CN (1) CN102497558B (ja)
TW (1) TWI265735B (ja)
WO (1) WO2006004667A2 (ja)

Families Citing this family (63)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6765964B1 (en) 2000-12-06 2004-07-20 Realnetworks, Inc. System and method for intracoding video data
US7742525B1 (en) 2002-07-14 2010-06-22 Apple Inc. Adaptive motion estimation
US9314691B2 (en) 2002-12-10 2016-04-19 Sony Computer Entertainment America Llc System and method for compressing video frames or portions thereof based on feedback information from a client device
US9108107B2 (en) * 2002-12-10 2015-08-18 Sony Computer Entertainment America Llc Hosting and broadcasting virtual events using streaming interactive video
US9077991B2 (en) 2002-12-10 2015-07-07 Sony Computer Entertainment America Llc System and method for utilizing forward error correction with video compression
US8964830B2 (en) * 2002-12-10 2015-02-24 Ol2, Inc. System and method for multi-stream video compression using multiple encoding formats
US10201760B2 (en) 2002-12-10 2019-02-12 Sony Interactive Entertainment America Llc System and method for compressing video based on detected intraframe motion
US20090118019A1 (en) 2002-12-10 2009-05-07 Onlive, Inc. System for streaming databases serving real-time applications used through streaming interactive video
US9138644B2 (en) 2002-12-10 2015-09-22 Sony Computer Entertainment America Llc System and method for accelerated machine switching
US7792188B2 (en) 2004-06-27 2010-09-07 Apple Inc. Selecting encoding types and predictive modes for encoding video data
US8111752B2 (en) 2004-06-27 2012-02-07 Apple Inc. Encoding mode pruning during video encoding
AR049593A1 (es) * 2004-07-20 2006-08-16 Qualcomm Inc Metodo y aparato para predecir el vector de movimiento en compresion de video temporal.
US7697610B2 (en) * 2004-09-13 2010-04-13 Microsoft Corporation Variable block size early termination for video coding
US7983341B2 (en) * 2005-02-24 2011-07-19 Ericsson Television Inc. Statistical content block matching scheme for pre-processing in encoding and transcoding
EP1908295A2 (en) * 2005-07-28 2008-04-09 Thomson Licensing Method and apparatus for video motion process optimization using a hierarchical cache
US8888592B1 (en) 2009-06-01 2014-11-18 Sony Computer Entertainment America Llc Voice overlay
TWI326433B (en) * 2006-09-19 2010-06-21 Ind Tech Res Inst Method for saving interpolation data
KR100842557B1 (ko) * 2006-10-20 2008-07-01 삼성전자주식회사 동영상 처리 장치에서 메모리 액세스 방법
US9794561B2 (en) * 2006-11-21 2017-10-17 Vixs Systems, Inc. Motion refinement engine with selectable partitionings for use in video encoding and methods for use therewith
US8218636B2 (en) 2006-11-21 2012-07-10 Vixs Systems, Inc. Motion refinement engine with a plurality of cost calculation methods for use in video encoding and methods for use therewith
US9204149B2 (en) 2006-11-21 2015-12-01 Vixs Systems, Inc. Motion refinement engine with shared memory for use in video encoding and methods for use therewith
US8265136B2 (en) * 2007-02-20 2012-09-11 Vixs Systems, Inc. Motion refinement engine for use in video encoding in accordance with a plurality of sub-pixel resolutions and methods for use therewith
FR2919412A1 (fr) * 2007-07-24 2009-01-30 Thomson Licensing Sas Procede et dispositif de reconstruction d'une image.
US8184696B1 (en) * 2007-09-11 2012-05-22 Xilinx, Inc. Method and apparatus for an adaptive systolic array structure
US8165209B2 (en) * 2007-09-24 2012-04-24 General Instrument Corporation Method and apparatus for providing a fast motion estimation process
RU2506709C2 (ru) * 2007-12-05 2014-02-10 Ол2, Инк. Основанная на фрагментах система и способ сжатия видео
US8968087B1 (en) 2009-06-01 2015-03-03 Sony Computer Entertainment America Llc Video game overlay
US8613673B2 (en) 2008-12-15 2013-12-24 Sony Computer Entertainment America Llc Intelligent game loading
US8147339B1 (en) 2007-12-15 2012-04-03 Gaikai Inc. Systems and methods of serving game video
CN101645964B (zh) * 2008-08-08 2013-06-05 深圳富泰宏精密工业有限公司 移动终端及其快速显示图形的方法
WO2010036995A1 (en) * 2008-09-29 2010-04-01 Dolby Laboratories Licensing Corporation Deriving new motion vectors from existing motion vectors
US8926435B2 (en) 2008-12-15 2015-01-06 Sony Computer Entertainment America Llc Dual-mode program execution
US8320454B2 (en) * 2009-02-12 2012-11-27 Ceva D.S.P. Ltd. Fast sub-pixel motion estimation
CA3159686C (en) 2009-05-29 2023-09-05 Mitsubishi Electric Corporation Image encoding device, image decoding device, image encoding method, and image decoding method
US8506402B2 (en) 2009-06-01 2013-08-13 Sony Computer Entertainment America Llc Game execution environments
US8462852B2 (en) * 2009-10-20 2013-06-11 Intel Corporation Methods and apparatus for adaptively choosing a search range for motion estimation
US9654792B2 (en) 2009-07-03 2017-05-16 Intel Corporation Methods and systems for motion vector derivation at a video decoder
US8917769B2 (en) * 2009-07-03 2014-12-23 Intel Corporation Methods and systems to estimate motion based on reconstructed reference frames at a video decoder
US20110002387A1 (en) * 2009-07-03 2011-01-06 Yi-Jen Chiu Techniques for motion estimation
WO2011094871A1 (en) * 2010-02-05 2011-08-11 Sensio Technologies Inc. Method and apparatus of frame interpolation
NO332189B1 (no) 2010-02-17 2012-07-23 Cisco Systems Int Sarl Fremgangsmate for videokoding
US8712173B2 (en) * 2010-03-12 2014-04-29 Mediatek Singapore Pte. Ltd. Methods for processing 2Nx2N block with N being positive integer greater than four under intra-prediction mode and related processing circuits thereof
JP5479225B2 (ja) * 2010-05-27 2014-04-23 キヤノン株式会社 画像処理装置、画像処理方法及びプログラム
US8560331B1 (en) 2010-08-02 2013-10-15 Sony Computer Entertainment America Llc Audio acceleration
KR101956639B1 (ko) 2010-09-13 2019-03-11 소니 인터랙티브 엔터테인먼트 아메리카 엘엘씨 비디오 서버 및 게임 서버를 포함하는 컴퓨터 게임 시스템에서 컴퓨터 게임을 제공하는 방법 및 시스템
KR102126910B1 (ko) 2010-09-13 2020-06-25 소니 인터랙티브 엔터테인먼트 아메리카 엘엘씨 부가기능의 관리
JP5721851B2 (ja) 2010-12-21 2015-05-20 インテル・コーポレーション Dmvd処理のシステムおよび方法の改善
US9143799B2 (en) * 2011-05-27 2015-09-22 Cisco Technology, Inc. Method, apparatus and computer program product for image motion prediction
WO2013069974A1 (ko) * 2011-11-08 2013-05-16 주식회사 케이티 영상의 부호화 방법 및 장치, 그리고 영상의 복호화 방법 및 장치
US20140071146A1 (en) * 2012-09-07 2014-03-13 Texas Instruments Incorporated Methods and systems for multimedia data processing
US10631005B2 (en) * 2014-04-21 2020-04-21 Qualcomm Incorporated System and method for coding in block prediction mode for display stream compression (DSC)
US10757437B2 (en) * 2014-07-17 2020-08-25 Apple Inc. Motion estimation in block processing pipelines
US9769494B2 (en) 2014-08-01 2017-09-19 Ati Technologies Ulc Adaptive search window positioning for video encoding
JP6390275B2 (ja) 2014-09-01 2018-09-19 株式会社ソシオネクスト 符号化回路、符号化方法
CN105791866B (zh) * 2014-12-24 2018-10-30 北京数码视讯科技股份有限公司 视频编码中间数据获取方法、设备及系统
CN104811716B (zh) * 2015-04-29 2018-09-25 深圳市振华微电子有限公司 宏块搜索方法
EP3314894B1 (en) * 2015-06-25 2024-03-20 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Refinement of a low-pel resolution motion estimation vector
CN106101701B (zh) * 2016-08-08 2019-05-14 传线网络科技(上海)有限公司 基于h.264的帧间编码模式选择方法及装置
US10999602B2 (en) 2016-12-23 2021-05-04 Apple Inc. Sphere projected motion estimation/compensation and mode decision
US11259046B2 (en) * 2017-02-15 2022-02-22 Apple Inc. Processing of equirectangular object data to compensate for distortion by spherical projections
CN110557642B (zh) * 2018-06-04 2023-05-12 华为技术有限公司 一种视频帧编码运动搜索方法及图像编码器
CN110662087B (zh) 2018-06-30 2021-05-11 华为技术有限公司 点云编解码方法和编解码器
CN110800301A (zh) * 2018-09-30 2020-02-14 深圳市大疆创新科技有限公司 编码设备的控制方法、装置及存储介质

Family Cites Families (77)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US811752A (en) * 1904-10-06 1906-02-06 Gen Electric Steam or gas turbine.
US5060285A (en) * 1989-05-19 1991-10-22 Gte Laboratories Incorporated Hierarchical variable block size address-vector quantization using inter-block correlation
JPH04150284A (ja) * 1990-10-09 1992-05-22 Olympus Optical Co Ltd 動ベクトル検出方法およびその装置
JP3006107B2 (ja) * 1991-02-25 2000-02-07 三菱電機株式会社 動き補償予測回路
US5200820A (en) * 1991-04-26 1993-04-06 Bell Communications Research, Inc. Block-matching motion estimator for video coder
JP2636622B2 (ja) * 1992-03-13 1997-07-30 松下電器産業株式会社 ビデオ信号の符号化方法及び復号化方法ならびにビデオ信号の符号化装置及び復号化装置
JPH06189291A (ja) * 1992-12-21 1994-07-08 Sharp Corp 画像の動き検出装置
WO1994018799A1 (en) * 1993-02-03 1994-08-18 Qualcomm Incorporated Interframe video encoding and decoding system
US5508744A (en) * 1993-03-12 1996-04-16 Thomson Consumer Electronics, Inc. Video signal compression with removal of non-correlated motion vectors
ATE165487T1 (de) * 1993-09-08 1998-05-15 Thomson Multimedia Sa Verfahren und vorrichtung zur bewegungsschätzung mittels blockzusammenpassung
JP3598526B2 (ja) * 1993-12-29 2004-12-08 ソニー株式会社 動きベクトル検出方法及び画像データの符号化方法
FR2719398B1 (fr) * 1994-04-27 1996-07-19 Sgs Thomson Microelectronics Dispositif et procédé d'adressage d'une mémoire cache d'un circuit de compression d'images mobiles.
US5676767A (en) * 1994-06-30 1997-10-14 Sensormatic Electronics Corporation Continuous process and reel-to-reel transport apparatus for transverse magnetic field annealing of amorphous material used in an EAS marker
US5706059A (en) * 1994-11-30 1998-01-06 National Semiconductor Corp. Motion estimation using a hierarchical search
US5757668A (en) * 1995-05-24 1998-05-26 Motorola Inc. Device, method and digital video encoder of complexity scalable block-matching motion estimation utilizing adaptive threshold termination
US5577181A (en) * 1995-06-07 1996-11-19 E-Systems, Inc. Method for autonomous determination of tie points in imagery
US5731850A (en) * 1995-06-07 1998-03-24 Maturi; Gregory V. Hybrid hierarchial/full-search MPEG encoder motion estimation
US5929940A (en) * 1995-10-25 1999-07-27 U.S. Philips Corporation Method and device for estimating motion between images, system for encoding segmented images
US6192081B1 (en) * 1995-10-26 2001-02-20 Sarnoff Corporation Apparatus and method for selecting a coding mode in a block-based coding system
JP3994445B2 (ja) * 1995-12-05 2007-10-17 ソニー株式会社 動きベクトル検出装置及び動きベクトル検出方法
JP3175914B2 (ja) * 1995-12-25 2001-06-11 日本電信電話株式会社 画像符号化方法および画像符号化装置
KR100226684B1 (ko) * 1996-03-22 1999-10-15 전주범 반화소 움직임 추정장치
US5912676A (en) * 1996-06-14 1999-06-15 Lsi Logic Corporation MPEG decoder frame memory interface which is reconfigurable for different frame store architectures
JP3455635B2 (ja) * 1996-09-17 2003-10-14 株式会社東芝 動きベクトル検出装置
JP4294743B2 (ja) * 1996-12-13 2009-07-15 富士通株式会社 動きベクトル探索装置および動画像符号化装置
JPH10336668A (ja) * 1997-06-02 1998-12-18 Sharp Corp 動きベクトル検出装置
US6212237B1 (en) * 1997-06-17 2001-04-03 Nippon Telegraph And Telephone Corporation Motion vector search methods, motion vector search apparatus, and storage media storing a motion vector search program
US6462791B1 (en) * 1997-06-30 2002-10-08 Intel Corporation Constrained motion estimation and compensation for packet loss resiliency in standard based codec
EP0896300B1 (en) * 1997-08-07 2002-01-30 Matsushita Electric Industrial Co., Ltd. Device and method for motion vector detection
US6014181A (en) * 1997-10-13 2000-01-11 Sharp Laboratories Of America, Inc. Adaptive step-size motion estimation based on statistical sum of absolute differences
JPH11182444A (ja) * 1997-10-17 1999-07-06 Takumina:Kk ソレノイド駆動ポンプの制御回路
WO1999041912A2 (en) * 1998-02-13 1999-08-19 Koninklijke Philips Electronics N.V. Method and arrangement for video coding
JPH11328369A (ja) * 1998-05-15 1999-11-30 Nec Corp キャッシュシステム
KR100325253B1 (ko) * 1998-05-19 2002-03-04 미야즈 준이치롯 움직임벡터 검색방법 및 장치
US6128047A (en) * 1998-05-20 2000-10-03 Sony Corporation Motion estimation process and system using sparse search block-matching and integral projection
US6081209A (en) * 1998-11-12 2000-06-27 Hewlett-Packard Company Search system for use in compression
US6363117B1 (en) * 1998-12-31 2002-03-26 Sony Corporation Video compression using fast block motion estimation
GB2348559B (en) 1999-03-31 2001-06-06 Samsung Electronics Co Ltd High speed motion estimating method for real time moving image coding and apparatus therefor
FR2796778B1 (fr) * 1999-07-20 2001-10-19 Canon Kk Procede et dispositif de compression par bloc de donnees numeriques
US6529634B1 (en) * 1999-11-08 2003-03-04 Qualcomm, Inc. Contrast sensitive variance based adaptive block size DCT image compression
JP2001251632A (ja) * 1999-12-27 2001-09-14 Toshiba Corp 動きベクトル検出方法および装置並びに動きベクトル検出プログラム
US6483876B1 (en) * 1999-12-28 2002-11-19 Sony Corporation Methods and apparatus for reduction of prediction modes in motion estimation
EP1279293A1 (en) * 2000-01-21 2003-01-29 Nokia Corporation A motion estimation method and a system for a video coder
KR100619377B1 (ko) * 2000-02-22 2006-09-08 주식회사 팬택앤큐리텔 움직임 추정 방법 및 장치
US6567469B1 (en) * 2000-03-23 2003-05-20 Koninklijke Philips Electronics N.V. Motion estimation algorithm suitable for H.261 videoconferencing applications
US6876703B2 (en) * 2000-05-11 2005-04-05 Ub Video Inc. Method and apparatus for video coding
US6842483B1 (en) * 2000-09-11 2005-01-11 The Hong Kong University Of Science And Technology Device, method and digital video encoder for block-matching motion estimation
KR100727910B1 (ko) * 2000-10-11 2007-06-13 삼성전자주식회사 하이브리드형 고속 움직임 추정 방법 및 그 장치
US6668020B2 (en) * 2000-11-04 2003-12-23 Vivotek Inc. Method for motion estimation in video coding
US20020131500A1 (en) * 2001-02-01 2002-09-19 Gandhi Bhavan R. Method for determining a motion vector for a video signal
EP1294194B8 (en) * 2001-09-10 2010-08-04 Texas Instruments Incorporated Apparatus and method for motion vector estimation
JP4923368B2 (ja) * 2001-09-17 2012-04-25 富士通株式会社 追跡型動きベクトル探索方法及び装置
JP2003169338A (ja) * 2001-09-18 2003-06-13 Matsushita Electric Ind Co Ltd 動きベクトル検出方法及び装置並びに方法プログラムを記録した媒体
KR100833228B1 (ko) * 2002-02-21 2008-05-28 삼성전자주식회사 고정 연산량을 갖는 동영상 부호화 방법 및 그 장치
KR100492127B1 (ko) * 2002-02-23 2005-06-01 삼성전자주식회사 적응형 움직임 추정장치 및 추정 방법
KR101108661B1 (ko) * 2002-03-15 2012-01-25 노키아 코포레이션 비디오 시퀀스에서의 움직임 부호화 방법
JP2003284091A (ja) * 2002-03-25 2003-10-03 Toshiba Corp 動画像符号化方法及び動画像符号化装置
JP4120301B2 (ja) * 2002-04-25 2008-07-16 ソニー株式会社 画像処理装置およびその方法
US7170937B2 (en) * 2002-05-01 2007-01-30 Texas Instruments Incorporated Complexity-scalable intra-frame prediction technique
JP2003324743A (ja) * 2002-05-08 2003-11-14 Canon Inc 動きベクトル探索装置及び動きベクトル探索方法
JP4318019B2 (ja) * 2002-05-28 2009-08-19 ソニー株式会社 画像処理装置および方法、記録媒体、並びにプログラム
US7742525B1 (en) * 2002-07-14 2010-06-22 Apple Inc. Adaptive motion estimation
US7239721B1 (en) * 2002-07-14 2007-07-03 Apple Inc. Adaptive motion estimation
FR2844131B1 (fr) * 2002-09-03 2004-11-12 St Microelectronics Sa Procede et dispositif d'interpolation d'images avec compensation du mouvement
JP3977716B2 (ja) * 2002-09-20 2007-09-19 株式会社東芝 動画像符号化/復号化方法及び装置
US6646578B1 (en) * 2002-11-22 2003-11-11 Ub Video Inc. Context adaptive variable length decoding system and method
GB2395778A (en) * 2002-11-29 2004-06-02 Sony Uk Ltd Face detection
HUP0301368A3 (en) * 2003-05-20 2005-09-28 Amt Advanced Multimedia Techno Method and equipment for compressing motion picture data
US7280597B2 (en) * 2003-06-24 2007-10-09 Mitsubishi Electric Research Laboratories, Inc. System and method for determining coding modes, DCT types and quantizers for video coding
JP2005020294A (ja) * 2003-06-25 2005-01-20 Sony Corp ブロック歪低減装置
US7646437B1 (en) * 2003-09-03 2010-01-12 Apple Inc. Look-ahead system and method for pan and zoom detection in video sequences
KR100596706B1 (ko) * 2003-12-01 2006-07-04 삼성전자주식회사 스케일러블 비디오 코딩 및 디코딩 방법, 이를 위한 장치
KR20050061762A (ko) * 2003-12-18 2005-06-23 학교법인 대양학원 부호화 모드 결정방법, 움직임 추정방법 및 부호화 장치
JP4127818B2 (ja) * 2003-12-24 2008-07-30 株式会社東芝 動画像符号化方法及びその装置
US7469070B2 (en) * 2004-02-09 2008-12-23 Lsi Corporation Method for selection of contexts for arithmetic coding of reference picture and motion vector residual bitstream syntax elements
US8467447B2 (en) * 2004-05-07 2013-06-18 International Business Machines Corporation Method and apparatus to determine prediction modes to achieve fast video encoding
US7792188B2 (en) * 2004-06-27 2010-09-07 Apple Inc. Selecting encoding types and predictive modes for encoding video data

Also Published As

Publication number Publication date
JP2006014343A (ja) 2006-01-12
US20130297875A1 (en) 2013-11-07
JP5836625B2 (ja) 2015-12-24
CN102497558A (zh) 2012-06-13
EP1610561A2 (en) 2005-12-28
WO2006004667A3 (en) 2007-07-19
EP1610561A3 (en) 2010-07-21
CN102497558B (zh) 2015-03-04
WO2006004667A2 (en) 2006-01-12
US20050286777A1 (en) 2005-12-29
JP2011160470A (ja) 2011-08-18
TW200610413A (en) 2006-03-16
TWI265735B (en) 2006-11-01
JP2011091838A (ja) 2011-05-06
WO2006004667A9 (en) 2006-04-20
JP2014150568A (ja) 2014-08-21
WO2006004667A8 (en) 2007-09-27

Similar Documents

Publication Publication Date Title
JP4885486B2 (ja) 画像の符号化および復号化
KR101208863B1 (ko) 비디오 데이터의 인코딩을 위한 인코딩 유형 및 예측 모드 선택
CN1750656B (zh) 编码和解码图像
US7924918B2 (en) Temporal prediction in video coding
KR101621358B1 (ko) Hevc 부호화 장치 및 그 인트라 예측 모드 결정 방법
JP2006014343A5 (ja)
JP4735375B2 (ja) 画像処理装置及び動画像符号化方法。
US20050276330A1 (en) Method and apparatus for sub-pixel motion estimation which reduces bit precision
US20210127134A1 (en) Encoding method and device therefor, and decoding method and device therefor
KR20090100279A (ko) 이미지 데이터 스트림의 생성을 위한 방법 및 디바이스, 현재의 이미지를 이미지 데이터 스트림으로부터 재구성하기위한 방법 및 디바이스, 이미지 데이터 스트림 및 이미지 데이터 스트림을 지니는 저장 매체
US8059722B2 (en) Method and device for choosing a mode of coding
TWI411305B (zh) 動態參照訊框選擇方法和系統
JP4429996B2 (ja) 動画像符号化プログラム、動画像符号化方法および動画像符号化装置
CN113794883B (zh) 一种编解码方法、装置及其设备
KR100780124B1 (ko) 이미지들의 인코딩 및 디코딩
JP2012120108A (ja) 補間画像生成装置及びプログラム、並びに、動画像復号装置及びプログラム

Legal Events

Date Code Title Description
RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20071218

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20071227

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20071227

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080619

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080930

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20100617

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20100621

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20100621

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100906

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101202

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101220

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110318

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110324

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110412

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111021

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

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

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

Free format text: PAYMENT UNTIL: 20141216

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

LAPS Cancellation because of no payment of annual fees