JP2012505565A - 切替え補間フィルタにおけるオフセット計算 - Google Patents

切替え補間フィルタにおけるオフセット計算 Download PDF

Info

Publication number
JP2012505565A
JP2012505565A JP2011529159A JP2011529159A JP2012505565A JP 2012505565 A JP2012505565 A JP 2012505565A JP 2011529159 A JP2011529159 A JP 2011529159A JP 2011529159 A JP2011529159 A JP 2011529159A JP 2012505565 A JP2012505565 A JP 2012505565A
Authority
JP
Japan
Prior art keywords
offset
block
rate distortion
values
predicted
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.)
Granted
Application number
JP2011529159A
Other languages
English (en)
Other versions
JP5730770B2 (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.)
Qualcomm Inc
Original Assignee
Qualcomm 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 Qualcomm Inc filed Critical Qualcomm Inc
Publication of JP2012505565A publication Critical patent/JP2012505565A/ja
Application granted granted Critical
Publication of JP5730770B2 publication Critical patent/JP5730770B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding
    • 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/172Methods 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 picture, frame or field
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • 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/577Motion compensation with bidirectional frame interpolation, i.e. using B-pictures
    • 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)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

本開示は、ビデオ・コーディング中に予測ビデオ・ブロックにオフセットを加算するための技法について説明する。一例では、ビデオ・ブロックを符号化する方法は、参照データの第1のリスト内の第1の参照ビデオ・ユニットに基づいて予測値の第1のブロックを補間し、参照データの第2のリスト内の第2の参照ビデオ・ユニットに基づいて予測値の第2のブロックを補間することと、サブ整数ピクセル位置について、第1のブロックと現在のビデオ・ブロックとに基づいて第1のオフセット値を計算し、第1のオフセット値と第2のブロックとに基づいて第2のオフセット値を計算することと、予測値の第1のブロックと予測値の第2のブロックと第1のオフセット値と第2のオフセット値とに基づいてオフセット値の最終ブロックを判断することと、オフセット値の最終ブロックに基づいて現在のビデオ・ブロックを符号化することとを含む。

Description

本開示は、デジタルビデオ・コーディングに関し、より詳細には、ビデオ・コーディングにおいて使用される予測データにオフセットを適用する技法に関する。
本出願は、その内容全体が参照により本明細書に組み込まれる、2008年9月23日に出願された米国仮出願第61/099,509号の利益を主張する。
デジタルビデオ機能は、デジタルテレビ、デジタル直接ブロードキャスト・システム、ワイヤレス・ブロードキャスト・システム、携帯情報端末(PDA)、ラップトップまたはデスクトップ・コンピュータ、デジタルカメラ、デジタル記録デバイス、ビデオゲームデバイス、ビデオゲーム機、セルラー電話または衛星無線電話などを含む、広範囲にわたるデバイスに組み込むことができる。デジタルビデオ・デバイスは、MPEG−2、MPEG−4、またはITU−T H.264/MPEG−4、Part10、Advanced Video Coding(AVC)によって定義された規格に記載されたビデオ圧縮技法などのビデオ圧縮技法を実装して、デジタルビデオ情報をより効率的に送信および受信する。ビデオ圧縮技法では、ビデオ・シーケンスに固有の冗長性を低減または除去するために空間的予測および/または時間的予測を実行することができる。
ブロックベースのインター・コーディングは、時間的予測を利用して、ビデオ・シーケンスの連続したコード化ユニットのビデオ・ブロック間の時間冗長性を低減または除去する非常に有用なコーディング技法である。コード化ユニットは、ビデオ・フレーム、ビデオ・フレームのスライス、ピクチャのグループ、またはビデオ・ブロックの別の定義されたユニットを備えることができる。インター・コーディングの場合、ビデオ・エンコーダは、動き推定および動き補償を実行して、2つ以上の隣接するコード化ユニットの対応するビデオ・ブロックの移動を追跡する。動き推定は、1つまたは複数の参照フレームまたは他のコード化ユニット中の対応する予測ビデオ・ブロックに対するビデオ・ブロックの変位を示す動きベクトルを発生する。動き補償は、動きベクトルを使用して、参照フレームまたは他のコード化ユニットから予測ビデオ・ブロックを発生する。動き補償の後、コーディングされている元のビデオ・ブロックから予測ビデオ・ブロックを減算することによって、残差ビデオ・ブロックが形成される。
ビデオ・エンコーダはまた、残差ブロックの通信に関連するビットレートをさらに低減するために、変換、量子化およびエントロピー・コーディング・プロセスを適用することができる。変換技法は、離散コサイン変換(DCT)または概念的に同様のプロセスを備えることができる。代替的に、ウェーブレット変換、整数変換、または他のタイプの変換を使用することができる。DCTプロセスでは、一例として、ピクセル値のセットが、周波数領域におけるピクセル値のエネルギーを表すことができる変換係数に変換される。量子化は、変換係数に適用され、一般に、任意の所与の変換係数に関連するビット数を制限するプロセスを必要とする。エントロピー・コーディングは、一連の量子化された変換係数を一括して圧縮する1つまたは複数のプロセスを備える。エントロピー・コーディングの例には、限定はしないが、コンテンツ適応型可変長コーディング(CAVLC)およびコンテキスト適応型バイナリ算術コーディング(CABAC)がある。
コード化ビデオ・ブロックは、予測ブロックを生成または識別するために使用できる予測情報と、コーディングされているブロックと予測ブロックとの間の差を示す残差データブロックとによって表される。予測情報は、予測データブロックを識別するために使用される1つまたは複数の動きベクトルを備えることができる。動きベクトルが与えられれば、デコーダは、残差をコーディングするために使用された予測ブロックを再構成することができる。したがって、残差ブロックのセットおよび動きベクトルのセット(場合によっては、いくつかの追加のシンタックス)が与えられれば、デコーダは、最初に符号化されたビデオ・フレームを再構成することが可能である。連続したビデオ・フレームまたは他のタイプのコード化ユニットはしばしば極めて類似しているので、動き推定および動き補償に基づくインター・コーディングは極めて良好な圧縮を達成することができる。符号化ビデオ・シーケンスは、残差データのブロック、動きベクトル、場合によっては他のタイプのシンタックスを備えることができる。
インター・コーディングにおいて達成できる圧縮のレベルを改善するために補間技法および外挿技法が開発された。この場合、ビデオ・ブロックをコーディングするために使用される、動き補償中に発生された予測データを、動き推定に使用されるビデオ・フレームまたは他のコード化ユニットのビデオ・ブロックのピクセルから補間または外挿することができる。補間または外挿は、予測ハーフ・ピクセル値(ハーフペル)および予測クォーター・ピクセル値(クォーターペル)を発生するためにしばしば実行される。そのような補間または外挿は、しばしば、予測フレームの実際のビデオ・ブロックまたはビデオ・コーディングにおいて使用される他のコード化ユニットよりもさらに、コーディングされているビデオ・ブロックに類似している予測ブロックを発生する。
本開示では、ビデオ・コーディングの動き補償プロセス中に双方向予測ビデオ・ブロックにオフセットを加算するために、エンコーダおよびデコーダによって実行される技法について説明する。本開示の一態様によれば、エンコーダは、各コード化ユニットについて複数のオフセット値を発生し、コード化ユニットのビデオ・ブロックをコーディングするために使用される予測データにオフセット値を適用することができる。特に、エンコーダは、整数ピクセル・ロケーションと、異なるサブ整数ピクセル・ロケーションとについて、異なるオフセット値を定義することができる。その予測データに関連するピクセル・ロケーションに基づいて、対応する予測データに適切なオフセット値を適用することができる。サブ整数ピクセル・ロケーションは、整数ピクセル・ロケーションにおけるデータに基づいて補間または外挿される、補間または外挿データに対応し得る。様々なピクセル・ロケーション(整数およびサブ整数ピクセル・ロケーション)における様々なオフセットを考慮することによって、得られたオフセット双方向予測データは、元の予測データよりも良好な圧縮を行うことができる。このようにして、本開示の技法はビデオ品質を改善することができる。たとえば、予測データへのオフセットの加算は、ビデオ・シーケンスのフレーム間の照明変化中、たとえば、閃光、暗くなる空、または他のタイプのフレーム間の照明変化などの間のコーディングを改善することができる。
一例では、本開示は、現在のビデオ・ブロックを符号化するための方法を提供する。本方法は、エンコーダを介して、参照データの第1のリスト内の第1の参照ビデオ・ユニットに基づいてサブ整数ピクセル位置に関連する予測値の第1のブロックを補間し、参照データの第2のリスト内の第2の参照ビデオ・ユニットに基づいてサブ整数ピクセル位置に関連する予測値の第2のブロックを補間することを備える。本方法は、エンコーダを介して、サブ整数ピクセル位置について、予測値の第1のブロックと現在のビデオ・ブロックとに基づいて第1のオフセット値を計算し、第1のオフセット値と予測値の第2のブロックとに基づいて第2のオフセット値を計算することをさらに備える。本方法は、エンコーダを介して、予測値の第1のブロックと予測値の第2のブロックと第1のオフセット値と第2のオフセット値とに基づいて、オフセット値の最終ブロックを判断することをさらに備える。本方法は、エンコーダを介して、オフセット値の最終ブロックに基づいて現在のビデオ・ブロックを符号化することをさらに備える。
別の例では、本開示は、ビデオデータを符号化する装置を提供する。本装置は、参照データの第1のリスト内の第1の参照ビデオ・ユニットに基づいてサブ整数ピクセル位置に関連する予測値の第1のブロックを補間し、参照データの第2のリスト内の第2の参照ビデオ・ユニットに基づいてサブ整数ピクセル位置に関連する予測値の第2のブロックを補間するビデオ・エンコーダを備える。本装置は、サブ整数ピクセル位置について、予測値の第1のブロックと現在のビデオ・ブロックとに基づいて第1のオフセット値を計算し、第1のオフセット値と予測値の第2のブロックとに基づいて第2のオフセット値を計算するビデオ・エンコーダをさらに備える。本装置は、予測値の第1のブロックと予測値の第2のブロックと第1のオフセット値と第2のオフセット値とに基づいて、オフセット値の最終ブロックを判断するビデオ・エンコーダをさらに備える。本装置は、オフセット値の最終ブロックに基づいて現在のビデオ・ブロックを符号化するビデオ・エンコーダをさらに備える。
さらに別の例では、本開示は、実行時に、ビデオ・エンコーダ内のプロセッサに、参照データの第1のリスト内の第1の参照ビデオ・ユニットに基づいてサブ整数ピクセル位置に関連する予測値の第1のブロックを補間させ、参照データの第2のリスト内の第2の参照ビデオ・ユニットに基づいてサブ整数ピクセル位置に関連する予測値の第2のブロックを補間させる、コンピュータ可読媒体上に符号化された命令を備えるコンピュータ可読媒体を提供する。コンピュータ可読媒体は、プロセッサに、サブ整数ピクセル位置について、予測値の第1のブロックと現在のビデオ・ブロックとに基づいて第1のオフセット値を計算させ、第1のオフセット値と予測値の第2のブロックとに基づいて第2のオフセット値を計算させる命令をさらに備える。コンピュータ可読媒体は、プロセッサに、予測値の第1のブロックと予測値の第2のブロックと第1のオフセット値と第2のオフセット値とに基づいて、オフセット値の最終ブロックを判断させる命令をさらに備える。コンピュータ可読媒体は、プロセッサに、オフセット値の最終ブロックに基づいて現在のビデオ・ブロックを符号化させる命令をさらに備える。
さらに別の例では、本開示は、ビデオデータを符号化する装置を提供する。本装置は、参照データの第1のリスト内の第1の参照ビデオ・ユニットに基づいてサブ整数ピクセル位置に関連する予測値の第1のブロックを補間し、参照データの第2のリスト内の第2の参照ビデオ・ユニットに基づいてサブ整数ピクセル位置に関連する予測値の第2のブロックを補間するための手段を備える。本装置は、サブ整数ピクセル位置について、予測値の第1のブロックと現在のビデオ・ブロックとに基づいて第1のオフセット値を計算し、第1のオフセット値と予測値の第2のブロックとに基づいて第2のオフセット値を計算するための手段をさらに備える。本装置は、予測値の第1のブロックと予測値の第2のブロックと第1のオフセット値と第2のオフセット値とに基づいて、オフセット値の最終ブロックを判断するための手段をさらに備える。本装置は、オフセット値の最終ブロックに基づいて現在のビデオ・ブロックを符号化するための手段をさらに備える。
さらに別の例では、本開示は、エンコーダを介して、オフセットを使用せずに、シーケンス・フィルタを使用して現在のフレームを第1のパスとして符号化することを備えるビデオ符号化方法を提供する。id=0をもつすべての参照フレームが現在のフレームから同数のフレームだけ分離されている場合、エンコーダを介して、ピクチャ順序コンテンツ(POC)重み付け参照フレームに対して、オフセットを使用せずに、シーケンス・フィルタを使用して現在のフレームをPOCパスとして符号化する。POCパスのレートひずみ特性が、第1のパスのレートひずみ特性よりも低いレートひずみコスト値を規定する場合、符号化のためにPOC重み付け参照フレームを使用し、POCパスのレートひずみ特性を変数として記憶する。第1のパスのレートひずみ特性が、POCパスのレートひずみ特性よりも低いレートひずみコスト値を規定する場合、第1のパスのレートひずみ特性を変数として記憶する。id=0をもつすべての参照フレームが現在のフレームから同数のフレームだけ分離されていない場合、第1のパスのレートひずみ特性を変数として記憶する。本方法は、エンコーダを介して、現在のフレームに対してフレーム・フィルタとオフセットとを計算することと、エンコーダを介して、計算されたフレーム・フィルタとオフセットとを使用して現在のフレームを第2のパスとして符号化することとをさらに備える。第2のパスのレートひずみ特性が、変数に記憶されたレートひずみ特性よりも低いレートひずみコスト値を規定する場合、第2のパスのレートひずみ特性を変数として記憶し、量子化ステップを1だけ増加させ、計算されたフレーム・フィルタとオフセットとを使用して現在のフレームを第3のパスとして符号化する。第2のパスのレートひずみ特性が、変数に記憶されたレートひずみ特性よりも低いレートひずみコスト値を規定しない場合、量子化ステップを1だけ増加させ、オフセットを使用せずに、シーケンス・フィルタを使用して現在のフレームを第3のパスとして符号化する。第3のパスのレートひずみ特性が、変数に記憶されたレートひずみ特性よりも低いレートひずみコスト値を規定する場合、第3のパスの符号化をビット・ストリームに加算する。第3のパスのレートひずみ特性が、変数に記憶されたレートひずみ特性よりも低いレートひずみコスト値を規定しない場合、変数の符号化をビット・ストリームに加算する。本方法は、エンコーダを介して、次のフレームを符号化するためにシーケンス・フィルタを計算することをさらに備える。
さらに別の例では、本開示は、ビデオデータを符号化する装置を提供し、本装置は、オフセットを使用せずに、シーケンス・フィルタを使用して現在のフレームを第1のパスとして符号化するビデオ・エンコーダを備える。id=0をもつすべての参照フレームが現在のフレームから同数のフレームだけ分離されている場合、ビデオ・エンコーダは、ピクチャ順序コンテンツ(POC)重み付け参照フレームに対して、オフセットを使用せずに、シーケンス・フィルタを使用して現在のフレームをPOCパスとして符号化する。POCパスのレートひずみ特性が、第1のパスのレートひずみ特性よりも低いレートひずみコスト値を規定する場合、ビデオ・エンコーダは、符号化するためにPOC重み付け参照フレームを使用し、POCパスのレートひずみ特性を変数として記憶する。第1のパスのレートひずみ特性が、POCパスのレートひずみ特性よりも低いレートひずみコスト値を規定する場合、ビデオ・エンコーダは第1のパスのレートひずみ特性を変数として記憶する。id=0をもつすべての参照フレームが現在のフレームから同数のフレームだけ分離されていない場合、ビデオ・エンコーダは第1のパスのレートひずみ特性を変数として記憶する。ビデオ・エンコーダは、現在のフレームに対してフレーム・フィルタとオフセットとを計算し、ビデオ・エンコーダは、計算されたフレーム・フィルタとオフセットとを使用して現在のフレームを第2のパスとして符号化する。第2のパスのレートひずみ特性が、変数に記憶されたレートひずみ特性よりも低いレートひずみコスト値を規定する場合、ビデオ・エンコーダは、第2のパスのレートひずみ特性を変数として記憶し、ビデオ・エンコーダは、量子化ステップを1だけ増加させ、計算されたフレーム・フィルタとオフセットとを使用して現在のフレームを第3のパスとして符号化する。第2のパスのレートひずみ特性が、変数に記憶されたレートひずみ特性よりも低いレートひずみコスト値を規定しない場合、ビデオ・エンコーダは、量子化ステップを1だけ増加させ、オフセットを使用せずに、シーケンス・フィルタを使用して現在のフレームを第3のパスとして符号化する。第3のパスのレートひずみ特性が、変数に記憶されたレートひずみ特性よりも低いレートひずみコスト値を規定する場合、ビデオ・エンコーダは第3のパスの符号化をビット・ストリームに加算する。第3のパスのレートひずみ特性が、変数に記憶されたレートひずみ特性よりも低いレートひずみコスト値を規定しない場合、ビデオ・エンコーダは変数の符号化をビット・ストリームに加算する。ビデオ・エンコーダは、次のフレームを符号化するためにシーケンス・フィルタを計算する。
さらに別の例では、本開示は、実行時に、ビデオ・エンコーダ内のプロセッサに、オフセットを使用せずに、シーケンス・フィルタを使用して現在のフレームを第1のパスとして符号化させる、コンピュータ可読媒体上に符号化された命令を備えるコンピュータ可読媒体を提供する。id=0をもつすべての参照フレームが現在のフレームから同数のフレームだけ分離されている場合、命令は、プロセッサに、ピクチャ順序コンテンツ(POC)重み付け参照フレームに対して、オフセットを使用せずに、シーケンス・フィルタを使用して現在のフレームをPOCパスとして符号化させる。POCパスのレートひずみ特性が、第1のパスのレートひずみ特性よりも低いレートひずみコスト値を規定する場合、命令は、プロセッサに、符号化するためにPOC重み付け参照フレームを使用させ、命令は、プロセッサに、POCパスのレートひずみ特性を変数として記憶させる。第1のパスのレートひずみ特性が、POCパスのレートひずみ特性よりも低いレートひずみコスト値を規定する場合、命令は、プロセッサに、第1のパスのレートひずみ特性を変数として記憶させる。id=0をもつすべての参照フレームが現在のフレームから同数のフレームだけ分離されていない場合、命令は、プロセッサに、第1のパスのレートひずみ特性を変数として記憶させる。命令は、プロセッサに、現在のフレームに対してフレーム・フィルタとオフセットとを計算させ、命令は、プロセッサに、計算されたフレーム・フィルタとオフセットとを使用して現在のフレームを第2のパスとして符号化させる。第2のパスのレートひずみ特性が、変数に記憶されたレートひずみ特性よりも低いレートひずみコスト値を規定する場合、命令は、プロセッサに、第2のパスのレートひずみ特性を変数として記憶させ、命令は、プロセッサに、量子化ステップを1だけ増加させ、計算されたフレーム・フィルタとオフセットとを使用して現在のフレームを第3のパスとして符号化させる。第2のパスのレートひずみ特性が、変数に記憶されたレートひずみ特性よりも低いレートひずみコスト値を規定しない場合、命令は、プロセッサに、量子化ステップを1だけ増加させ、オフセットを使用せずに、シーケンス・フィルタを使用して現在のフレームを第3のパスとして符号化させる。第3のパスのレートひずみ特性が、変数に記憶されたレートひずみ特性よりも低いレートひずみコスト値を規定する場合、命令は、プロセッサに、第3のパスの符号化をビット・ストリームに加算させる。第3のパスのレートひずみ特性が、変数に記憶されたレートひずみ特性よりも低いレートひずみコスト値を規定しない場合、命令は、プロセッサに、変数の符号化をビット・ストリームに加算させる。命令は、プロセッサに、次のフレームを符号化するためにシーケンス・フィルタを計算させる。
さらに別の例では、本開示は、ビデオデータを符号化する装置を提供する。本装置は、エンコーダを介して、オフセットを使用せずに、シーケンス・フィルタを使用して現在のフレームを第1のパスとして符号化するための手段を備える。本装置は、id=0をもつすべての参照フレームが現在のフレームから同数のフレームだけ分離されている場合、エンコーダを介して、ピクチャ順序コンテンツ(POC)重み付け参照フレームに対して、オフセットを使用せずに、シーケンス・フィルタを使用して現在のフレームをPOCパスとして符号化するための手段を備える。本装置は、POCパスのレートひずみ特性が、第1のパスのレートひずみ特性よりも低いレートひずみコスト値を規定する場合、符号化のためにPOC重み付け参照フレームを使用するための手段と、POCパスのレートひずみ特性を変数として記憶するための手段とを備える。本装置は、第1のパスのレートひずみ特性が、POCパスのレートひずみ特性よりも低いレートひずみコスト値を規定する場合、第1のパスのレートひずみ特性を変数として記憶するための手段を備える。本装置は、id=0をもつすべての参照フレームが現在のフレームから同数のフレームだけ分離されていない場合、第1のパスのレートひずみ特性を変数として記憶するための手段を備える。本装置は、エンコーダを介して、現在のフレームに対してフレーム・フィルタとオフセットとを計算するための手段と、エンコーダを介して、計算されたフレーム・フィルタとオフセットとを使用して現在のフレームを第2のパスとして符号化するための手段とをさらに備える。本装置は、第2のパスのレートひずみ特性が、変数に記憶されたレートひずみ特性よりも低いレートひずみコスト値を規定する場合、第2のパスのレートひずみ特性を変数として記憶するための手段を備える。本装置は、量子化ステップを1だけ増加させ、計算されたフレーム・フィルタとオフセットとを使用して現在のフレームを第3のパスとして符号化するための手段をさらに備える。本装置は、第2のパスのレートひずみ特性が、変数に記憶されたレートひずみ特性よりも低いレートひずみコスト値を規定しない場合、量子化ステップを1だけ増加させ、オフセットを使用せずに、シーケンス・フィルタを使用して現在のフレームを第3のパスとして符号化するための手段を備える。本装置は、第3のパスのレートひずみ特性が、変数に記憶されたレートひずみ特性よりも低いレートひずみコスト値を規定する場合、第3のパスの符号化をビット・ストリームに加算するための手段を備える。本装置は、第3のパスのレートひずみ特性が、変数に記憶されたレートひずみ特性よりも低いレートひずみコスト値を規定しない場合、変数の符号化をビット・ストリームに加算するための手段を備える。本装置は、エンコーダを介して、次のフレームを符号化するためにシーケンス・フィルタを計算するための手段をさらに備える。
本開示の1つまたは複数の態様の詳細について添付の図面および以下の説明において述べる。本開示で説明する技法の他の特徴、目的、および利点は、これらの説明および図面、ならびに特許請求の範囲から明らかになろう。
ビデオ符号化および復号システムを示す例示的なブロック図。 本開示に一致するビデオ・エンコーダの例を示すブロック図。 本開示に一致するビデオ・デコーダの一例を示すブロック図。 予測ビデオ・ブロックのピクセルを備えることができる整数ピクセルおよび様々なサブ整数ピクセルを示す概念図。 本開示に一致するビデオ・エンコーダによってビデオ・ブロックを符号化する例示的な方法を示すフローチャート。 本開示に一致するBスライスの最適なレートひずみを達成するためにフィルタとオフセットとの構成を最適化する方法を示すフローチャート。 本開示に一致するBスライスの最適なレートひずみを達成するためにフィルタとオフセットとの構成を最適化する方法を示すフローチャート。 本開示に一致するBスライスの最適なレートひずみを達成するためにフィルタとオフセットとの構成を最適化する方法を示すフローチャート。
本開示では、ビデオ・コーディングの動き補償プロセス中に双方向予測ビデオ・ブロックにオフセットを加算するために、エンコーダおよびデコーダによって実行される技法について説明する。双方向予測ビデオ・ブロックは、双方向符号化ブロックの符号化または復号において使用される予測ブロックを指す。双方向予測ビデオ・ブロックは、予測データの2つの異なるセットを識別する少なくとも2つの異なる動きベクトルに基づいて発生される。本開示は、双方向予測ビデオ・ブロックにオフセットを導入するか、またはさもなければ加算する技法を提供する。
本開示の一態様によれば、エンコーダは、各コード化ユニットについて複数のオフセット値を発生し、コード化ユニットのビデオ・ブロックをコーディングするために使用される予測データにオフセット値を適用することができる。特に、エンコーダは、整数ピクセル・ロケーションと、異なるサブ整数ピクセル・ロケーションとについて、異なるオフセット値を定義することができる。その予測データに関連するピクセル・ロケーションに基づいて、対応する予測データに適切なオフセット値を適用することができる。サブ整数ピクセル・ロケーションは、整数ピクセル・ロケーションにおけるデータに基づいて補間または外挿される、補間または外挿データに対応し得る。異なるピクセル・ロケーション(整数およびサブ整数ピクセル・ロケーション)における異なるオフセットを考慮することによって、得られたオフセット双方向予測データは、元の予測データよりも良好な圧縮を行うことができる。このようにして、本開示の技法はビデオ品質を改善することができる。たとえば、予測データへのオフセットの加算は、ビデオ・シーケンスのフレーム間の照明変化中、たとえば、閃光、暗くなる空、または他のタイプのフレーム間の照明変化などの間のコーディングを改善することができる。
ITU−T H.264規格は、クォーター・ピクセル解像度に対するサブ整数ピクセルの部分補間をサポートする。この場合、あらゆる整数ピクセル・ロケーションについて15個の可能なサブ整数ピクセル・ロケーションが存在する。単方向インターモード予測(Pモード)の場合、コード化ユニットの各可能な整数およびサブ整数ピクセル・ロケーションについて16個の異なるオフセット値を発生することができる。上記のように、コード化ユニットは、ビデオ・フレーム、ビデオ・フレームのスライス、またはビデオ・ブロックの単独で復号可能な別のユニットを備えることができる。オフセット値は、整数ピクセル・ロケーションについての1つのオフセット値と、異なるサブ整数ピクセル・ロケーションについてのいくつかのオフセット値とを含むことができる。たとえば、補間データについて15個の異なるサブ整数ロケーションを可能にするITU−T H.264規格に一致して、オフセット値は、同様に、15個の異なるサブ整数ピクセル・ロケーションについての15個の異なるオフセット値を含むことができる。
本開示の技法によれば、双方向インターモード予測(Bモード)の場合、コード化ユニットの各可能な整数およびサブ整数ピクセル・ロケーションについて32個の異なるオフセット値を発生することができる。すなわち、第1の参照フレームに基づいて各可能な整数およびサブ整数ピクセル・ロケーションについて16個の異なるオフセット値を発生し、第2の参照フレームに基づいて各可能な整数およびサブ整数ピクセル・ロケーションについて16個の異なるオフセット値を発生することができる。したがって、各可能な整数およびサブ整数ピクセル・ロケーションは、2つのオフセット、すなわち、第1の参照フレームに基づく第1のオフセットと、第2の参照フレームに基づく第2のオフセットとを有する。以下でより詳細に説明するように、その2つのオフセットを組み合わせて単一のオフセット値を形成する。その予測データに関連するピクセル・ロケーションに基づいて、いかなる予測データにも単一のオフセット値を適用することができる。特に、予測ビデオ・ブロックのピクセル値を調整するためにオフセット値を適用することができ、そのようなピクセル値調整を行うために使用されるオフセット値は、その予測ビデオ・ブロックに関連するロケーション(たとえば、整数ロケーション、またはいくつかの可能なサブピクセル・ロケーションのうちの1つ)に依存し得る。以下に示すように、「コード化ユニット」という用語は、使用されるコーディング技法に従って定義される、フレーム全体、フレームのスライス、または別の単独で復号可能なユニットなどの任意の単独で復号可能なビデオ・フレームのユニットを指す。本開示の技法は、すべてのコード化ユニットに適用可能である。
各コード化ユニットについて、異なるオフセット値をビット・ストリームの一部として符号化することができる。たとえば、双方向予測コード化ユニットの場合、32個の異なるオフセット値をビット・ストリームの一部として符号化することができる。デコーダは、各コード化ユニットについて、エンコーダによって規定された異なるオフセット値を受信することができる。したがって、デコーダは、予測データを発生し、次いで、予測データとオフセット値とに基づいてオフセット予測データを再構成することができる。デコーダは、予測データとオフセット値とに基づいて発生されたオフセット予測データに基づいて、コード化ユニットのビデオデータ、たとえば、ビデオ・ブロックを復号することができる。符号化の場合と同様に、予測データへのオフセットの加算は、照明変化または他のビデオエフェクト中にビデオ品質を改善することによって、ビデオ復号を改善することができる。
図1は、本開示の技法を実装することができるビデオ符号化および復号システム10の一例を示すブロック図である。図1に示すように、システム10は、通信チャネル15を介して符号化ビデオを宛先デバイス16に送信するソース・デバイス12を含む。ソース・デバイス12および宛先デバイス16は、広範囲のデバイスのいずれかを備えることができる。場合によっては、ソース・デバイス12および宛先デバイス16は、いわゆるセルラー電話または衛星無線電話のワイヤレス・ハンドセットなどのワイヤレス通信デバイス、または通信チャネル15を介してビデオ情報を伝達することができ、その場合、通信チャネル15がワイヤレスである任意のワイヤレスデバイスを備える。ただし、動き補償中の予測データへのオフセットの加算に関係する本開示の技法は、必ずしもワイヤレスアプリケーションまたは設定に限定されるわけではない。
図1の例では、ソース・デバイス12は、ビデオソース20と、ビデオ・エンコーダ22と、変調器/復調器(モデム)23と、送信機24とを含むことができる。宛先デバイス16は、受信機26と、モデム27と、ビデオ・デコーダ28と、ディスプレイ・デバイス30とを含むことができる。本開示によれば、ソース・デバイス12のビデオ・エンコーダ22は、ビデオ符号化プロセスの一部として本開示のオフセット技法のうちの1つまたは複数を適用するように構成できる。同様に、宛先デバイス16のビデオ・デコーダ28は、ビデオ復号プロセスの一部として本開示のオフセット技法のうちの1つまたは複数を適用するように構成できる。
図1の図示のシステム10は、ビデオ符号化および復号システムの一例にすぎない。本開示のオフセット技法は、サブピクセル解像度に対する動き補償補間をサポートする任意の符号化デバイスによって実行できる。ソース・デバイス12および宛先デバイス16は、ソース・デバイス12が宛先デバイス16に送信するためのコード化ビデオデータを発生するような、コーディングデバイスの例にすぎない。デバイス12、16の各々がビデオ符号化構成要素および復号構成要素を含むので、デバイス12、16は、実質的に対称的に動作することができる。したがって、システム10は、たとえば、ビデオ・ストリーミング、ビデオ再生、ビデオ・ブロードキャストまたはビデオ電話のためのビデオ・デバイス12とビデオ・デバイス16との間の一方向または双方向のビデオ送信をサポートすることができる。
ソース・デバイス12のビデオソース20は、ビデオカメラ、あらかじめキャプチャされたビデオを含んでいるビデオアーカイブ、またはビデオ・コンテンツ・プロバイダからのビデオ・フィードなど、ビデオキャプチャ・デバイスを含むことができる。さらなる代替として、ビデオソース20はソースビデオとしてのコンピュータ・グラフィックベースのデータ、またはライブビデオとアーカイブされたビデオとコンピュータ発生ビデオとの組合せを発生することができる。場合によっては、ビデオソース20がビデオカメラである場合、ソース・デバイス12および宛先デバイス16は、いわゆるカメラ付き携帯電話またはビデオ電話を形成することができる。各場合において、キャプチャされたビデオ、あらかじめキャプチャされたビデオ、またはコンピュータ発生ビデオをビデオ・エンコーダ22によって符号化することができる。次いで、符号化ビデオ情報は、たとえば、符号分割多元接続(CDMA)または別の通信規格などの通信規格に従ってモデム23によって変調され、送信機24を介して宛先デバイス16に送信される。モデム23は、信号変調のために設計された様々なミキサ、フィルタ、増幅器または他の構成要素を含むことができる。送信機24は、増幅器、フィルタ、および1つまたは複数のアンテナを含む、データを送信するために設計された回路を含むことができる。
宛先デバイス16の受信機26はチャネル15を介して情報を受信し、モデム27は情報を復調する。この場合も、ビデオ符号化プロセスは、動き補償中に予測データにオフセットを加算するために、本明細書で説明する技法のうちの1つまたは複数を実装することができる。ビデオ・デコーダ28によって実行されるビデオ復号プロセスはまた、復号プロセスのその動き補償段階中にそのような技法を実行することができる。チャネル15を介して通信される情報は、同じくビデオ・デコーダ28によって使用される、ビデオ・エンコーダ22によって規定されたオフセット情報を含むことができる。ディスプレイ・デバイス30は、復号ビデオデータをユーザに対して表示し、陰極線管、液晶ディスプレイ(LCD)、プラズマディスプレイ、有機発光ダイオード(OLED)ディスプレイ、または別のタイプのディスプレイ・デバイスなど、様々なディスプレイ・デバイスのいずれかを備えることができる。
図1の例では、通信チャネル15は、無線周波数(RF)スペクトルまたは1つもしくは複数の物理的伝送線路など、任意のワイヤレスまたはワイヤード通信媒体、あるいはワイヤレスおよびワイヤード媒体の任意の組合せを備えることができる。通信チャネル15は、ローカルエリア・ネットワーク、ワイドエリア・ネットワーク、またはインターネットなどのグローバル・ネットワークなど、パケット・ベースのネットワークの一部を形成することができる。通信チャネル15は、一般にビデオデータをソース・デバイス12から宛先デバイス16に送信するのに好適な任意の通信媒体、または様々な通信媒体の集合体を表す。通信チャネル15は、ソース・デバイス12から宛先デバイス16への通信を可能にするのに有用なルータ、スイッチ、基地局、または任意の他の機器を含むことができる。
ビデオ・エンコーダ22およびビデオ・デコーダ28は、代替的にMPEG−4、Part10、Advanced Video Coding(AVC)として説明されるITU−T H.264規格など、ビデオ圧縮規格に従って動作することができる。ただし、本開示の技法は、いかなる特定のコーディング規格にも限定されない。図1には示されていないが、いくつかの態様では、ビデオ・エンコーダ22およびビデオ・デコーダ28は、それぞれオーディオ・エンコーダおよびデコーダと統合でき、適切なMUX−DEMUXユニットまたは他のハードウェアおよびソフトウェアを含み、共通のデータストリームまたは別個のデータストリーム中のオーディオとビデオの両方の符号化を処理することができる。適用可能な場合、MUX−DEMUXユニットはITU H.223マルチプレクサプロトコル、またはユーザデータグラムプロトコル(UDP)など他のプロトコルに準拠することができる。
ITU−T H.264/MPEG−4(AVC)規格は、Joint Video Team(JVT)として知られる共同パートナーシップの成果として、ISO/IECのMoving Picture Experts Group(MPEG)とともにITU−TのVideo Coding Experts Group(VCEG)によって公式化された。いくつかの態様では、本開示で説明する技法は、一般にH.264規格に準拠するデバイスに適用することができる。H.264規格は、ITU−T研究グループによる2005年3月付けのITU−T勧告H.264「Advanced Video Coding for generic audiovisual services」に記載されており、本明細書ではH.264規格またはH.264仕様、あるいはH.264/AVC規格または仕様と呼ぶ。Joint Video Team(JVT)はH.264/MPEG−4 AVCへの拡張の取り組みを続けている。
ビデオ・エンコーダ22およびビデオ・デコーダ28はそれぞれ、1つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールド・プログラマブル・ゲートアレイ(FPGA)、ディスクリート論理、ソフトウェア、ハードウェア、ファームウェア、またはそれらの任意の組合せとして実装できる。ビデオ・エンコーダ22およびビデオ・デコーダ28の各々を1つまたは複数のエンコーダまたはデコーダ中に含めることができ、そのいずれかは複合エンコーダ/デコーダ(コーデック)の一部としてそれぞれモバイルデバイス、加入者デバイス、ブロードキャストデバイス、サーバなどに統合できる。
ビデオ・シーケンスは、一般に一連のビデオ・フレームを含む。ビデオ・エンコーダ22は、ビデオデータを符号化するために、個々のビデオ・フレーム内のビデオ・ブロック上で動作する。ビデオ・ブロックは、サイズを固定することも変更することもでき、指定のコーディング規格に応じてサイズが異なることがある。各ビデオ・フレームは一連のスライスを含む。各スライスは一連のマクロブロックを含むことができ、それらはサブブロック中に配置することができる。一例として、ITU−T H.264規格は、ルーマ成分については16×16、8×8または4×4、およびクロマ成分については8×8など、様々なブロックサイズのイントラ予測をサポートし、ならびにルーマ成分については16×16、16×8、8×16、8×8、8×4、4×8および4×4、およびクロマ成分については対応するスケーリングされたサイズなど、様々なブロックサイズのインター予測をサポートする。ビデオ・ブロックは、ピクセルデータのブロック、または、たとえば離散コサイン変換もしくは概念的に同様の変換プロセスなどの変換プロセスの後の変換係数のブロックを備えることができる。
ビデオ・ブロックは、小さいほどより良い解像度が得られ、高い詳細レベルを含むビデオ・フレームの位置決めに使用することができる。一般に、マクロブロックおよび様々なサブブロックをビデオ・ブロックであると考えることができる。さらに、スライスは、マクロブロックおよび/またはサブブロックなど一連のビデオ・ブロックであると考えることができる。各スライスはビデオ・フレームの単独で復号可能な単位とすることができる。代替的に、フレーム自体を復号可能なユニットとすることができるか、またはフレームの他の部分を復号可能なユニットとして定義することができる。「コード化ユニット」という用語は、フレーム全体、フレームのスライス、または使用されるコーディング技法に従って定義される別の単独で復号可能なユニットなど、ビデオ・フレームの単独で復号可能な任意のユニットを指す。本開示の技法は、すべてのコード化ユニットに適用可能である。
(異なる整数およびサブ整数ピクセル・ロケーションについてオフセット値を規定するための補間および本開示の技法を含む)インターベース予測コーディングの後、および(H.264/AVCまたは離散コサイン変換DCTにおいて使用される4×4または8×8整数変換などの)任意の変換の後、量子化を実行することができる。量子化は、一般に、係数を表すために使用されるデータ量をできるだけ低減するように係数を量子化するプロセスを指す。量子化プロセスは、係数の一部または全部に関連するビット深度を低減することができる。たとえば、量子化中に16ビット値を15ビット値まで丸めることができる。量子化の後、たとえば、コンテンツ適応型可変長コーディング(CAVLC)、コンテキスト適応型バイナリ算術コーディング(CABAC)、または別のエントロピー・コーディング方法に従ってエントロピー・コーディングを実行することができる。
本開示の技法によれば、ビデオ・エンコーダ22は、フレームなどのビデオデータのコード化ユニット、またはスライスなどのフレームの単独で復号可能な部分について複数のオフセット値を計算することができる。異なるオフセット値は、ビデオ・ブロックに関連する複数の異なる整数およびサブ整数ピクセル・ロケーションに関連する。サブ整数ピクセル・ロケーションは、一般に整数ピクセル・ロケーションにおけるデータに基づいて補間または外挿される、補間または外挿データのロケーションを規定することができる。ビデオ・エンコーダ22は、予測ビデオ・ブロックにオフセット値を適用してオフセット予測ビデオ・ブロックを発生し、そのオフセット予測ビデオ・ブロックに基づいてコード化ユニットのビデオ・ブロックを符号化することができる。ビデオ・エンコーダ22はまた、コード化ユニットのコード化ビデオ・ブロックを含むコード化ビット・ストリームの一部としてオフセット値を符号化し、ソース・デバイス12の送信機24は、コード化ビット・ストリームを宛先デバイス16の受信機26に送信することができる。特に、ビデオ・エンコーダ22は、双方向予測ビデオ・ブロックのピクセルを調整することによってオフセット値を適用し、オフセット予測ビデオ・ブロックに基づいて残差を発生することによって、オフセット予測ビデオ・ブロックに基づいてビデオ・ブロックを符号化することができる。たとえば、適切なオフセット予測ビデオ・ブロックからコーディングすべきブロックを減算することによって、残差を発生することができる。予測ビデオ・ブロックのロケーションに基づいてオフセット予測ビデオ・ブロックのピクセル値にオフセットを加算するので、特に閃光または背景照明変化中にコーディング効率を改善することができる。この場合、特に、コーディングされているブロックと(オフセットなしの)予測ブロックとの間の差が、主にそれぞれのピクセルのすべてについて同じ光度だけ異なるとき、オフセット予測ブロックが、コーディングされているブロックをより正確に整合させるように、オフセットの加算は予測ブロックのピクセル値をバイアスすることができる。
宛先デバイス16では、ビデオ・デコーダ28は、ビデオデータの各コード化ユニットについての複数のオフセット値を受信する。ビデオ・デコーダ28は、予測ビデオ・ブロックにオフセット値を適用してオフセット予測ビデオ・ブロックを発生し、そのオフセット予測ビデオ・ブロックに基づいてコード化ユニットのビデオ・ブロックを復号する。このようにして、符号化プロセスの一部としてビデオ・エンコーダ22においてオフセット値を規定し、適用し、符号化ビット・ストリームの一部としてソース・デバイス12から宛先デバイス16に通信する。次いで、ビデオ・シーケンスを再構成するために、復号プロセスの一部としてビデオ・デコーダ28において予測データにオフセット値を適用する。この場合、予測データへのオフセットは、ビデオ再構成中に作成され、使用される。
図2は、本開示に一致するオフセット技法を実行することができるビデオ・エンコーダ50の例を示すブロック図である。ビデオ・エンコーダ50は、本明細書では「コーダ」と呼ぶ専用ビデオコンピュータデバイスまたは装置の一例である。ビデオ・エンコーダ50は、ソース・デバイス12のビデオ・エンコーダ22、または異なるデバイスのビデオ・エンコーダに対応することがある。ビデオ・エンコーダ50はビデオ・フレーム内のブロックのイントラコーディングおよびインター・コーディングを実行することができるが、説明を簡単にするために、イントラコーディング構成要素は図2に示していない。イントラコーディングは空間的予測を利用して、所与のビデオ・フレーム内のビデオの空間的冗長性を低減または除去する。インター・コーディングは時間的予測を利用して、ビデオ・シーケンスの隣接フレーム内のビデオの時間的冗長性を低減または除去する。イントラモード(Iモード)は空間ベースの圧縮モードを指し、予測(Pモード)または双方向(Bモード)などのインターモードは、時間ベースの圧縮モードを指す。Bモードを使用して符号化されるユニットは、2つのフレームを参照して符号化される。H.264では、Bフレームまたは他のユニットは、2つの時間的に前のフレームを参照して符号化され得る。たとえば、符号化すべき現在のユニットがフレームN内に存在する場合、現在のユニットを符号化するために、フレームN−1およびN−2が参照フレームとして使用され得る。他のコーディング規格、たとえばMPEG−2では、フレームN中に存在する現在のユニットを符号化するために、少なくとも1つの時間的に後のフレーム(たとえば、フレームN+1)と、少なくとも1つの時間的に前のフレーム(たとえば、フレームN−1)とが使用され得る。本開示の技法は双方向インター・コーディング中に適用され、したがって、説明を簡単で容易にするために、空間予測ユニットなどのイントラ・コーディング・ユニットは図2に示していない。
図2に示すように、ビデオ・エンコーダ50は、符号化すべきビデオ・フレーム内のビデオ・ブロックを受信する。図2の例では、ビデオ・エンコーダ50は、予測ユニット32と、メモリ34と、加算器48と、変換ユニット38と、量子化ユニット40と、エントロピー・コーディング・ユニット46とを含む。ビデオ・ブロック再構成のために、ビデオ・エンコーダ50はまた、逆量子化ユニット42と、逆変換ユニット44と、加算器51とを含む。再構成されたビデオからブロッキネス・アーティファクトを除去するためにブロック境界をフィルタ処理するデブロッキングフィルタ(図示せず)を含めることもできる。必要な場合、デブロッキング・フィルタは一般に、加算器51の出力をフィルタ処理するであろう。
予測ユニット32は、動き推定(ME)ユニット35と、動き補償(MC)ユニット37とを含むことができる。本開示によれば、フィルタ39は、予測ユニット32中に含めることができ、動き推定および/または動き補償の一部として補間または補間様フィルタ処理を実行するために、MEユニット35とMCユニット37の一方または両方によって起動できる。フィルタ39は、実際は、本明細書で説明するように、多数の様々なタイプの補間および補間タイプフィルタ処理を可能にする複数の様々なフィルタを表すことができる。したがって、予測ユニット32は複数の補間または補間様フィルタを含むことができる。符号化プロセス中に、ビデオ・エンコーダ50は、コーディングすべき(図2で「ビデオ・ブロック」と標示される)ビデオ・ブロックを受信し、予測ユニット32は、インター予測コーディングを実行して(図2で「予測ブロック」と標示される)予測ブロックを発生する。特に、MEユニット35は、動き推定を実行してメモリ34中の予測ブロックを識別し、MCユニット37は、動き補償を実行して予測ブロックを発生することができる。
動き推定は一般に、ビデオ・ブロックの動きを推定する動きベクトルを発生するプロセスと考えられる。動きベクトルは、たとえば、現在のフレーム(または、他のコード化ユニット)内のコーディングすべきブロックに対する、予測フレームまたは参照フレーム(または、他のコード化ユニット、たとえばスライス)内の予測ブロックの変位を示すことができる。双方向予測の場合、2つの動きベクトル、すなわち、第1の予測または参照フレーム内の予測ブロックの変位を示す1つの動きベクトルと、第2の予測または参照フレーム内の予測ブロックの変位を示す別の動きベクトルとが発生される。双方向予測では、2つの参照フレーム(または、2つのフレームの部分)は、現在のビデオ・ブロックが属するビデオ・フレーム(または、ビデオ・フレームの部分)より時間的に前に、またはその後に配置されることがある。動き補償は一般に、メモリ34から予測ブロックをフェッチまたは発生するプロセス、あるいは、場合によっては、動き推定によって判断された動きベクトルに基づいて、フィルタ処理された予測データを補間するかまたはさもなければ発生するプロセスと考えられる。
MEユニット35は、コーディングすべきビデオ・ブロックを2つの参照フレーム(たとえば、2つの前のフレーム、前のフレームと後のフレーム、または2つの後のフレーム)のビデオ・ブロックに比較することによって、そのビデオ・ブロックに適した動きベクトルを選択する。MEユニット35は、部分ピクセル、部分ペル、またはサブピクセル動き推定と呼ばれることがある部分ピクセル精度を用いて動き推定を実行することができる。したがって、部分ピクセル、部分ペル、およびサブピクセル動き推定という用語は、互換的に使用できる。部分ピクセル動き推定では、MEユニット35は、整数ピクセル・ロケーション以外のロケーションへの変位を示す動きベクトルを選択することができる。このようにして、部分ピクセル動き推定により、予測ユニット32は、整数ピクセル(または、フルピクセル)ロケーションよりも高い精度を用いて動きを追跡し、したがって、より正確な予測ブロックを発生することが可能になる。部分ピクセル動き推定は、ハーフ・ピクセル精度、クォーター・ピクセル精度、8分の1ピクセル精度または任意のより微細な精度を有することができる。MEユニット35は、動き推定プロセス中に任意の必要な補間のために(1つまたは複数の)フィルタ39を起動することができる。
部分ピクセル動き補償を実行するために、MCユニット37は、補間(補間フィルタ処理と呼ばれることがある)を実行して、サブピクセル解像度(サブピクセル値または部分ピクセル値と本明細書では呼ぶ)におけるデータを発生することができる。MCユニット37は、この補間のために(1つまたは複数の)フィルタ39を起動することができる。予測ユニット32は、本明細書で説明する技法を使用して補間(または、整数ピクセルの補間様フィルタ処理)を実行することができる。
コーディングすべきビデオ・ブロックのための(第1の参照フレームに基づく)第1の動きベクトルがMEユニット35によって選択されると、MCユニット37は、その動きベクトルに関連する予測ビデオ・ブロックを発生する。MCユニット37は、MCユニット37によって判断された第1の動きベクトルに基づいて、メモリ34から予測ブロックをフェッチすることができる。部分ピクセル精度をもつ動きベクトルの場合、MCユニット37は、そのようなデータをサブピクセル解像度に対して補間するために、たとえば、このプロセスのために(1つまたは複数の)フィルタ39を起動して、メモリ34からのデータをフィルタ処理する。場合によっては、サブピクセル予測データを発生するために使用された補間フィルタ処理技法またはモードは、コード化ビット・ストリームに含めるための、エントロピー・コーディング・ユニット46への1つまたは複数の補間シンタックス要素として示されることがある。
双方向インター・コーディングでは、このプロセスは、第2の参照フレームに基づく第2の動きベクトルに対して反復される。MCユニット37は、第2の動きベクトルに関連する予測ビデオ・ブロックを発生する。MCユニット37は、MEユニット35によって判断された第2の動きベクトルに基づいて、メモリ34から予測ブロックをフェッチすることができる。部分ピクセル精度をもつ動きベクトルの場合、MCユニット37は、そのようなデータをサブピクセル解像度に対して補間するために、たとえば、このプロセスのために(1つまたは複数の)フィルタ39を起動して、メモリ34からのデータをフィルタ処理する。場合によっては、サブピクセル予測データを発生するために使用された補間フィルタ処理技法またはモードは、コード化ビット・ストリームに含めるための、エントロピー・コーディング・ユニット46への1つまたは複数の補間シンタックス要素として示されることがある。フィルタ選択については、以下でより詳細に説明する。
双方向インター・コーディングでは、予測ユニット32が2つの予測ブロックを発生した後、ビデオ・エンコーダ50は、その2つの予測ブロックからのデータを組み合わせて単一の予測ブロックを生成する。それらの組合せ中に、予測ブロックの各々は異なって重み付けされ得る。たとえば、フレームNのコード化ユニットが、参照フレームN−1からの第1の予測ブロックと参照フレームN−2からの第2の予測ブロックとを使用する場合、フレームN−1よりもフレームNから時間的に多く削除されているフレームN−2を考慮するために、参照フレームN−1からの第1の予測ブロックは、2つの予測ブロックの組合せ中に参照フレームN−2からの第2の予測ブロックよりも重く重み付けされ得る。
以下でより詳細に説明するように、MCユニット37は、各整数およびサブピクセル位置についてDCオフセットを計算することができる。オフセット値は、同じくビデオ符号化中に遭遇されるシーン変化、閃光、照明変化などにとって極めて有用となり得る、対応するビデオ・ブロックのピクセル値のすべてを上方または下方にバイアスするために使用される絶対値または符号付き値を備えることができる。本開示のオフセット技法は、ルーマ・ブロック、クロマ・ブロック、またはその両方に対して適用することができる。ビデオ・ブロックの各タイプ(たとえば、ルーマ・ブロックおよびクロマ・ブロック)に関連する各整数およびサブ整数ピクセル・ロケーションについて、異なるオフセットを規定することができる。さらに、各特定のサイズにおける各ブロック、各ブロックの区分または下位区分に異なるオフセットを割り当てることができる。「オフセット」および「DCオフセット」という用語は、本開示では互換的に使用される。
オフセット値が規定されると、MCユニット37は、予測データとオフセットとに基づいてビデオデータをコーディングするために第2のコーディングパスを実行することができる。特に、MCユニット37は、元の予測ビデオ・ブロックにオフセット値を適用してオフセット予測ビデオ・ブロックを発生し、そのオフセット予測ビデオ・ブロックに基づいてコード化ユニットのビデオ・ブロックを符号化することができる。予測ブロックのピクセル・ロケーション(整数ロケーション、または複数の可能なサブ整数ピクセル・ロケーションのうちの1つ)に従って、ロケーション・ベースの方法で予測ブロックのピクセル値にオフセットを加算することによって、予測ブロックは、コーディングされているブロックにより類似することになり、コーディング効率を改善することができる。その上、異なるピクセル・ロケーションについてオフセット値を異なって定義するので、本開示の技法は、異なるタイプの補間に関連するデータのコーディングの間のセグメンテーションを達成する能力を与えることができる。
MCユニット37がオフセット予測データ(たとえば、補間データまたは整数ベースデータとすることができるオフセット予測ビデオ・ブロック)を発生した後、ビデオ・エンコーダ50は、コーディングされている元のビデオ・ブロックからオフセット予測ブロックを減算することによって(図2で「残差ブロック」と標示される)残差ビデオ・ブロックを形成する。加算器48は、この減算演算を実行する1つまたは複数の構成要素を表す。変換ユニット38は、離散コサイン変換(DCT)または概念的に同様の変換などの変換を残差ブロックに適用し、残差変換ブロック係数を備えるビデオ・ブロックを生成する。変換ユニット38は、たとえば、概念的にDCTと同様である、H.264規格によって定義される変換などの他の変換を実行することができる。ウェーブレット変換、整数変換、サブバンド変換または他のタイプの変換をも使用することができる。いずれの場合も、変換ユニット38は、変換を残差ブロックに適用し、残差変換係数のブロックを生成する。変換は、残差情報をピクセル領域から周波数領域に変換することができる。
量子化ユニット40は、ビットレートをさらに低減するために残差変換係数を量子化する。量子化プロセスは、係数の一部または全部に関連するビット深度を低減することができる。たとえば、量子化中に16ビット値を15ビット値まで丸めることができる。さらに、量子化ユニット40はまた、異なるオフセットのそれぞれの整数および分数部分に所望のビット数を割り振るために本開示の技法を使用して、異なるオフセットを量子化することができる。特に、量子化ユニット40は、オフセット値の各々に対して、所与のオフセット値の整数部分に第1のビット数を割り当て、所与のオフセット値の分数部分に第2のビット数を割り当てることができ、第1および第2のビット数は、整数部分の絶対値に基づいて判断される。エントロピー・コーディング・ユニット46は、第2のビット数とは異なって第1のビット数を符号化することができる。
量子化の後、エントロピー・コーディング・ユニット46が量子化変換係数をエントロピー・コーディングする。たとえば、エントロピー・コーディング・ユニット46は、CAVLC、CABAC、または別のエントロピー・コーディング方法を実行することができる。エントロピー・コーディング・ユニット46はまた、ビデオ・エンコーダ50の予測ユニット32または他の構成要素から得られた1つまたは複数の予測シンタックス要素をコーディングすることができる。1つまたは複数の予測シンタックス要素は、コーディングモード、1つまたは複数の動きベクトル、サブピクセルデータを発生するために使用された補間技法、フィルタ係数のセットまたはサブセット、あるいは予測ブロックの発生に関連する他の情報を含むことができる。係数予測および量子化ユニット41は、フィルタ係数などの予測シンタックスを予測符号化し、量子化することができる。エントロピー・コーディング・ユニット46によるエントロピー・コーディングの後、符号化ビデオとシンタックス要素とを、別のデバイスに送信するか、あるいは後で送信または検索するためにアーカイブすることができる。コード化ビット・ストリームは、エントロピーコード化残差ブロックと、そのようなブロックについての動きベクトルと、コード化ユニット内の異なる整数およびサブ整数ピクセル・ロケーションにおける複数の異なるオフセットを識別するオフセット値を含む他のシンタックスとを含むことができる。
逆量子化ユニット42および逆変換ユニット44は、それぞれ逆量子化および逆変換を適用して、たとえば参照ブロックとして後で使用するために、ピクセル領域中で残差ブロックを再構成する。(図2で「再構成された残差ブロック」と標示される)再構成された残差ブロックは、変換ユニット38に与えられる残差ブロックの再構成されたバージョンを表すことができる。再構成された残差ブロックは、量子化演算および逆量子化演算によって生じた細部の損失により、加算器48によって発生された残差ブロックとは異なることがある。加算器51は、再構成された残差ブロックを、予測ユニット32によって生成された動き補償された予測ブロックに加算して、メモリ34に記憶するための再構成されたビデオ・ブロックを生成する。再構成されたビデオ・ブロックは、後続のビデオ・フレームまたは後続のコード化ユニット中のブロックをその後コーディングするために使用され得る参照ブロックとして予測ユニット32によって使用され得る。
上記で説明したように、予測ユニット32は、部分ピクセル(または、サブピクセル)精度を用いて動き推定を実行することができる。予測ユニット32は、部分ピクセル動き推定を使用するとき、本開示で説明する補間演算を使用してサブピクセル解像度(たとえば、サブピクセル値または部分ピクセル値)におけるデータを発生することができる。言い換えれば、補間演算を使用して、整数ピクセル位置間の位置における値を計算する。整数ピクセル位置間の距離の半分に配置されるサブピクセル位置をハーフ・ピクセル(ハーフペル)位置と呼び、整数ピクセル位置とハーフ・ピクセル位置との間の距離の半分に配置されるサブピクセル位置をクォーター・ピクセル(クォーターペル)位置と呼び、整数ピクセル位置(または、ハーフ・ピクセル位置)とクォーター・ピクセル位置との間の距離の半分に配置されるサブピクセル位置を8分の1ピクセル(8分の1ペル)位置と呼び、以下同様である。
図3は、本明細書で説明する方法で符号化されたビデオ・シーケンスを復号するビデオ・デコーダ60の例を示すブロック図である。ビデオ・デコーダ60は、復号中に本開示のオフセット技法を実行する動き補償ユニット55を含む。特に、復号側で、動き補償ユニット55は、たとえば、整数ピクセル・ロケーションおよび1つまたは複数の非整数ピクセル・ロケーションについて異なるオフセットを規定する、コード化ユニットに対する複数のオフセット値を識別するエントロピー復号ユニット52からシンタックス要素を受信することができる。動き補償ユニット55は、エントロピー復号ユニット52から受信した動きベクトルに基づいて予測データを発生し、(予測データのピクセル・ロケーションに基づいて)適切なオフセットをそのような予測データに加算してオフセット予測データを発生することができる。非整数ロケーションについてのオフセット値のうちの対応する1つを予測データに適用してオフセット予測データを発生することができる場合には、予測データは補間データとすることができる。このオフセット予測データに基づいて、ビデオデータ(たとえば、再構成された残差ビデオ・ブロック)を復号することができる。特に、デコーダ60は、オフセット予測データを残差ビデオ・ブロックと組み合わせて、最初に符号化されたビデオ・ブロックを発生することができる。
エントロピー復号ユニット52は、受信したビット・ストリームをエントロピー復号して、(図3で「量子化係数」と標示される)量子化係数とシンタックス(たとえば、図3で「オフセット値」および「動きベクトル」と標示される、コード化ユニットについての動きベクトルおよび複数のオフセット値)とを発生する。シンタックスは、エントロピー・コーディング・ユニット52から動き補償ユニット55にフォワーディングされる。逆量子化ユニット56は、量子化されたブロック係数を逆量子化(inverse quantize)、すなわち逆量子化(de-quantize)する。逆量子化プロセスは、H.264復号によって定義された従来のプロセスとすることができる。逆変換ユニット58は、ピクセル領域における残差ブロックを生成するために、逆変換、たとえば逆DCTまたは概念的に同様の逆変換プロセスを変換係数に適用する。動き補償ユニット55は、動き補償ブロックを生成し、場合によっては、シンタックス中に含まれることもある補間フィルタ係数の1つまたは複数のセットに基づいて補間を実行する。動き補償ユニット55が動きベクトルに基づいて予測ブロックを発生した後、各予測ブロックに適したオフセットを予測ブロックに加算して、エンコーダによって実行された元の符号化において使用されたオフセット予測ブロックを発生することができる。
加算器64は、残差ブロックを、動き補償ユニット55によって発生された対応するオフセット予測ブロックと加算することによって、残差ブロックを復号して、復号ブロックを形成する。必要に応じて、ブロッキネス・アーティファクトを除去するために、デブロッキング・フィルタを適用して、復号ブロックをフィルタ処理することもできる。次いで、復号ビデオ・ブロックは参照フレームストア62に記憶され、参照フレームストア62は参照ブロックをその後の動き補償に供給し、ドライブ・ディスプレイ・デバイス(図1のデバイス28など)に対して復号ビデオをも生成する。
この場合も、本開示の技法は、補間によって規定された整数および異なるサブ整数ピクセル・ロケーションについて異なるオフセットが使用される、動き補償双方向予測データへのオフセットの適用に関する。エンコーダは、本開示の技法を使用して異なるオフセット値を規定および適用し、デコーダは、エンコーダによって規定および使用されたその同じオフセット値を識別するために、エンコーダから送信されたシンタックス要素を解釈する。適切なオフセットは予測データのピクセル値に適用され、適切なオフセットは、そのような予測データに対して規定されたピクセル・ロケーション、たとえば、整数ピクセル・ロケーション、またはいくつかの可能な非整数ピクセル・ロケーションのうちの1つに基づいて選択される。
図4は、予測データに関連する整数ピクセル(または、フルピクセル)位置と、補間予測データに関連するサブピクセル(または、部分ピクセル)位置とを示す概念図である。図4の概念図では、異なるボックスが、フレームまたはフレームのブロック内のピクセルおよびサブピクセル・ロケーションまたは位置を表す。(実線のボックス中の)大文字は整数ピクセル・ロケーションを表し、(点線のボックス中の)小文字はサブピクセル・ロケーションを表す。特に、ピクセル・ロケーションA1〜A6、B1〜B6、C1〜C6、D1〜D6、E1〜E6およびF1〜F6は、フレーム、スライスまたは他のコード化ユニット内の整数ピクセル・ロケーションの6×6アレイを表す。サブピクセル・ロケーション「a」〜「o」は、整数ピクセルC3に関連する15個のサブピクセル・ロケーション、たとえば、整数ピクセル・ロケーションC3とC4とD3とD4との間のサブピクセル・ロケーションを表す。サブピクセル・ロケーション「a」〜「o」は、整数ピクセルC3に関連する15個のサブピクセル・ロケーション、たとえば、整数ピクセル・ロケーションC3とC4とD3とD4との間のサブピクセル・ロケーションを表す。サブピクセル・ロケーション「a」〜「o」は、整数ピクセルC3に関連するあらゆるハーフペルおよびクォーターペルピクセル・ロケーションを表す。同様に、サブピクセル・ロケーション「a′」〜「o′」は、整数ピクセルE5に関連する15個のサブピクセル・ロケーション、たとえば、整数ピクセル・ロケーションE5とE6とF5とF6との間のサブピクセル・ロケーションを表す。同様のサブピクセル・ロケーションが、あらゆる整数ピクセル・ロケーションに対して存在する。(ピクセルC3に関連する15個の異なる部分ロケーションのうちの1つまたは複数を発生するために使用される、上述のもの以外の)他の部分ロケーションのほとんどは、簡単のために示さない。
整数ピクセル・ロケーションは、ビデオデータが最初に生成されたとき、フォトダイオードなどの物理的センサ要素に関連することがある。フォトダイオードは、センサのロケーションにおける光源の強度を測定し、ピクセル強度値を整数ピクセル・ロケーションに関連付けることができる。この場合も、各整数ピクセル・ロケーションは、15個の(または場合によってはより多くの)サブピクセル・ロケーションの関連するセットを有することができる。整数ピクセル・ロケーションに関連するサブピクセル・ロケーションの数は、所望の精度に依存することがある。図4に示す例では、所望の精度はクォーター・ピクセル精度であり、その場合、整数ピクセル・ロケーションの各々が15個の異なるサブピクセル位置と対応する。より多いまたはより少ないサブピクセル位置は、所望の精度に基づいて各整数ピクセル・ロケーションに関連することができる。ハーフ・ピクセル精度の場合、たとえば、各整数ピクセル・ロケーションは、3つのサブピクセル位置と対応することがある。別の例として、整数ピクセル・ロケーションの各々は、8分の1のピクセル精度の場合、63個のサブピクセル位置と対応することがある。各ピクセル・ロケーションは、1つまたは複数のピクセル値、たとえば、1つまたは複数の輝度およびクロミナンス値を定義することができる。
Yが輝度を表し、CbおよびCrが3次元YCbCr色空間のクロミナンスの2つの異なる値を表すことができる。各ピクセル・ロケーションは実際に、3次元色空間の3つのピクセル値を定義することができる。ただし、本開示の技法は、簡単のために1次元に対する予測に関する。技法について1次元のピクセル値に関して説明する限り、同様の技法を他の次元に拡張することができる。
各ピクセルは、そのピクセルがビデオ・ブロックを規定するようにビデオ・ブロックの右上ピクセルに対応することができる。補間または外挿の場合、ビデオ・ブロックのピクセルの各々は、それぞれのサブ整数ピクセルから同じ空間距離を有する異なる整数ピクセルに関して同様に補間または外挿できる。
ITU H.264/AVC規格では、たとえば、ハーフ・ピクセル位置におけるルーマ信号を得るために、係数[1,−5,20,20,−5,1]をもつ6タップ・ウィーナー・フィルタ(Wiener filter)が一般に使用される。次いで、クォーター・ピクセル・ロケーションにおけるルーマ信号を得るために、双一次フィルタが使用される。双一次フィルタはまた、H.264/AVCでは最高1/8ピクセル精度を有し得るクロマ成分に対する部分ピクセル補間において使用され得る。
ITU−T H.264規格に一致して、たとえば、予測ユニット32は、ウィーナーフィルタなどの6タップ補間フィルタを使用して、ハーフ・ピクセル・ロケーションのピクセル値を判断することができる。H.264規格の場合、6タップ補間フィルタのためのフィルタ係数は一般に[1,−5,20,20,−5,1]であるが、他の係数が使用され 得る。予測ユニット32は最初に水平方向で、次いで垂直方向で補間フィルタを適用することができ、または、その逆も同様である。ハーフ・ピクセル位置「b」および「h」の場合、各タップはそれぞれ、水平方向および垂直方向の整数ピクセル位置に対応することができる。特に、ハーフ・ピクセル位置「b」の場合、6タップフィルタのタップは、C1、C2、C3、C4、C5、およびC6に対応する。同様に、ハーフ・ピクセル位置「h」の場合、6タップ・フィルタのタップは、A3、B3、C3、D3、E3、およびF3に対応する。たとえば、サブピクセル位置「b」および「h」のピクセル値を、式(1)および式(2)を使用して計算することができる。
Figure 2012505565
ハーフ・ピクセル位置「j」の場合、6タップフィルタのタップは、位置C1〜C6とD1〜D6との間で水平に、または、位置A3〜F3とA4〜F4との間で垂直に補間されたそれら自体に対応する。ハーフ・ピクセル・ロケーション「j」を、たとえば、式(3)または式(4)のうちの1つに従って、ハーフ・ピクセル位置のあらかじめ補間されたピクセル値を使用する6タップ・フィルタを用いて計算することができる。
Figure 2012505565
ただし、(図4に示すように)aaはA3とA4との間の補間に対応し、bbはB3とB4との間の補間に対応し、bはC3とC4との間の補間に対応し、hhはD3とD4との間の補間に対応し、iiはE3とE4との間の補間に対応し、jjはF3とF4との間に補間に対応する。式4では、ccはC1とD1との間の補間に対応し、ddはC2とD2との間の補間に対応し、hはC3とD3との間の補間に対応し、eeはC4とD4との間の補間に対応し、ffはC5とD5との間の補間に対応し、ggはC6とD6との間の補間に対応する。
H.264規格に一致して、予測ユニット32は、双一次補間フィルタと、周囲の整数ピクセル・ロケーションおよびハーフ・ピクセル・ロケーションのピクセル値とを使用して、クォーター・ピクセル・ロケーション「a」、「c」、「d」、「e」、「f」、「g」、「i」、「k」、「l」、「m」、「n」および「o」におけるピクセル値を判断することができる。たとえば、予測ユニット32は、C3のピクセル値と「b」のピクセル値とを使用して、サブピクセル位置「a」に関連するピクセル値を判断し、「b」のピクセル値とC4のピクセル値とを使用して、サブピクセル位置「c」に関連するピクセル値を判断し、以下同様である。
図4は、参照データの第1のリスト内の第1の参照ビデオ・ユニットの概念図である。図4に関して上記で説明した技法は、参照データの第1のリスト内の第1の参照ビデオ・ユニットに基づいて、サブ整数ピクセル位置に関連する予測値の第1のブロックを生じる。上記で説明したように、双方向インター・コーディングでは、第2の参照ユニットはまた、符号化すべき現在のブロックについて予測ビデオ・ユニットを形成する必要がある。図4に関して上記で説明したのと同様の方法で、参照データの第2のリスト内の第2の参照ビデオ・ユニットは、サブ整数ピクセル位置に関連する予測値の第2のブロックを発生するために使用される。第1および第2のリストは、異なる参照フレーム、異なるフレームからの異なるスライス、同じ参照フレームからの異なるスライス、1つもしくは複数の前または後続のフレームのデータの異なる部分、あるいは場合によっては、各々が1つもしくは複数のフレーム、スライスまたは他のコード化ユニットからのデータを含むデータの異なるセットを備えることができる。
動き推定後、コーディング・レートとビデオ品質とのバランスをとるために、たとえば、レートひずみモデルを使用して、所与のビデオ・ブロックについての最良の動きベクトルを識別することができる。予測ビデオ・ブロックは、所与のブロックについての最良の動きベクトルを使用して、動き補償中に形成される。上記で説明したように、予測ユニット32が2つの予測ブロックを発生した後、ビデオ・エンコーダ50は、その2つの予測ブロックを組み合わせて単一の予測ブロックを生成する。それらの組合せ中に、予測ブロックの各々は異なって重み付けされ得る。たとえば、フレームNのコード化ユニットが参照フレームN−1からの予測ブロックと参照フレームN−2からの予測ブロックとを使用する場合、フレームN−1よりもフレームNから時間的に多く削除されているフレームN−2を考慮するために、参照フレームN−1は、2つの予測ブロックの組合せ中に参照フレームN−2よりも重く重み付けされ得る。上記で概説したように、残差ビデオ・ブロックは、元のビデオ・ブロックから予測ビデオ・ブロックを減算することによって形成される。次いで、残差ブロックに対して変換を適用し、変換係数を量子化し、エントロピー・コーディングして、ビットレートをさらに低減する。
本開示の技法は、双方向予測ビデオ・ユニットにオフセットを加算することを含む。以下でより詳細に説明するように、各サブペル位置について、参照データの第1のリスト内の第1の参照ビデオ・ユニットに基づいて、第1のオフセット値を計算する。次いで、各サブペル位置について、参照データの第2のリスト内の第2の参照ビデオ・ユニットに基づいて、第2のオフセット値を計算する。ただし、第2のオフセット値の計算は、前に計算された第1のオフセット値を使用する。第1および第2のオフセット値を計算することにより、クォーターペル精度の場合、32個のオフセット値、すなわち、サブペルおよび整数ピクセル位置当たり2つのオフセット、すなわち第1のオフセットおよび第2のオフセットが生じる。各位置について最終オフセット値を判断するために、第1のオフセット値を第1の予測ブロックからの位置の第1の予測と組み合わせ、第2のオフセットを第2の予測ブロックからの位置の第2の予測と組み合わせ、重み付けを使用しなければ、その結果を2で除算する。
異なるオフセットが異なる整数およびサブ整数ピクセル・ロケーションについて規定されるという点で、オフセットの値はロケーション固有とすることができる。ピクセル「b」および「b′」は整数ピクセルC3およびE5に関して同じサブ整数ピクセル・ロケーションを規定するので、ピクセル「b」および「b′」によって識別されるビデオ・ブロックに関連するオフセットは同じとすることができる。ただし、ピクセル「c」および「d′」は整数ピクセルC3およびE5に関して異なるサブ整数ピクセル・ロケーションを規定するので、ピクセル「c」および「d′」によって識別されるビデオ・ブロックに関連するオフセットは異なるとすることができる。16個の異なるピクセル・ロケーション「C3」、「a」、「b」、「c」、「d」、「e」、「f」、「g」、「h」、「i」、「j」、「k」、「l」、「m」、「n」、および「o」の各々は、異なるオフセットを規定することができる。その上、これらの異なるオフセットはまた、それぞれ16個の異なるピクセル・ロケーションの「E5」、「a′」、「b′」、「c′」、「d′」、「e′」、「f′」、「g′」、「h′」、「i′」、「j′」、「k′」、「l′」、「m′」、「n′」、および「o′」の各々に適用することができる。オフセットは、オフセット予測ブロックを発生するために、本質的に予測ブロックのあらゆるピクセル値を上方または下方にバイアスする符号付き値を規定することができる。同じく、オフセットを使用してバイアスすることは、ビデオ・シーケンスの異なるフレーム間の照明変化をキャプチャすることに役立つことがある。
オフセットは、すべての対応する予測ピクセルの平均に対する、同じサンプルロケーション(整数または特定のサブ整数ロケーション)を有するコード化ユニットのすべてのピクセルの平均の間の差を備えるので、それらはDCオフセットと呼ばれることがある。すなわち、ブロックのピクセルの各々が同様に、同じ程度だけバイアスされるので、オフセットは、たとえば、DCT計算から生じる変換されたデータのDC値の変化を生じ、DC値は、変換計算から生じる行列の左上の値である。これは、DC値がブロックのピクセル値の平均を表すからである。したがって、ピクセルを特定の値だけバイアスすることによって、変換計算から生じるDC値は同様にバイアスされる。したがって、いくつかの例では、ブロックの各ピクセルにDCオフセットを適用するのではなく、変換計算から生じるDC値にDCオフセットを適用することができる。
いくつかの例では、整数およびサブ整数ピクセル・ロケーションの各々は、異なるオフセット値を割り当てられることがある。動きベクトルによって参照されるピクセルまたはサブピクセルに対応するオフセット値は、ブロックの各ピクセルに適用される。具体的な例として、ピクセル・ロケーション「e」、「f」、「g」、「i」、「k」、「m」、「n」、および「o」について、オフセット値{1,6,4,5,7,3,8,2}をそれぞれ割り当てて、1〜8の間の範囲にあるオフセット値をピクセルおよびサブピクセル・ロケーションに割り当てることができる。すなわち、オフセット値マッピングは、{C3−>null,a−>null,b−>null,c−>null,d−>null,e−>1,f−>6,g−>4,h−>null,i−>5,j−>null,k−>7,l−>null,m−>3,n−>8,o−>2}とすることができる。
別の例では、オフセット値は、参照フレームのピクセルの平均値と現在のフレームのピクセルの平均値との間の差を備えることができる。そのような差をDCframeと呼び、一例では、0<DCframe<1.5のとき、絶対値1をもつオフセットを(最も近い整数に丸められた)10*DCframeピクセル位置に割り当てる。たとえば、DCframeが0.83に等しい場合、絶対値1をもつオフセットを16個のピクセル・ロケーションのうちの8個に割り当てる。
別の例として、参照ブロックのピクセルの平均値と現在ブロックのピクセルの平均値との間の差をDCmbと表す。さらに、DCminを、少なくともマクロブロックのしきい値数に割り当てられたDCmbの最小値とし、DCmaxを、少なくともマクロブロックのしきい値数に割り当てられたDCmbの最大値とする。一例では、DCframe>1.5のとき、ピクセル値の各々は、DCminとDCmaxとの間の範囲にあるオフセット値を割り当てられる。
同じく、図4に、大文字をもつ実線のボックス中の(フルピクセルとも呼ばれる)整数ピクセル・サンプルを示す。所与の整数ピクセル・サンプルについて、15個のサブピクセル位置があり得、それらのサブピクセル位置は、図4では整数ピクセル・サンプル「C3」について示され、「a」〜「o」と標示される。H.264/AVCによれば、MCユニット37は、最初に1次元6タップ・ウィーナー・フィルタを使用して、ハーフ・ピクセル位置「b」、「h」、および「j」を計算することができる。補間フィルタは、最初に水平方向において適用され、次いで垂直方向において適用され得、またはその逆も同様である。次いで、MCユニット37は、双一次フィルタとすでに計算されたハーフピクセル・サンプルとを使用して、残りのクォーター・ピクセル位置をフィルタ処理することができる。
補間データを発生するために適用される実際のフィルタは、多種多様な実装形態によって異なることがある。一例として、固定、所定の補間フィルタのいくつかのセットを適用し、最良の予測データを生じるセットを選択することができる。いくつかの例では、本開示で説明するように、補間フィルタは、1つまたは複数の参照フレームについての履歴補間データに基づいて選択できる。本開示によれば、コーディング中に使用すべき参照フレームから任意の補間予測データを発生した後であるが、動き推定がコーディングすべき現在のフレームに対して実行される前に、オフセットの加算が行われる。
MCユニット37は、オフセットを用いた切替え補間フィルタ(SIFO)方式を使用することができる。MCユニット37は、たとえば、補間フィルタ係数の複数の異なるあらかじめ規定されたセットによってそれぞれ規定できる複数の固定補間フィルタ39から選択することができる。補間フィルタの選択は、各コード化ユニット・レベル(たとえば、フレーム・レベルまたはスライス・レベル)について、あるいは各サブピクセル位置(サンプルレベル)について実行できる。さらに、本開示によれば、DCオフセットはまた、予測後に加算され、DCオフセットはまた、本開示で説明するように、各可能な整数または部分ピクセル・ロケーションについて規定できる。
したがって、MCユニット37は、補間データのいくつかの可能な代替案を規定するために固定補間フィルタ39の異なるセットを使用することができる。例として、MCユニット37は、標準的なITU−T H.264フィルタ・セットか、H.264/AVCに基づくが(1/2ピクセル位置についての中間丸め、および1/4のピクセル位置についてのバイアスされた丸めなしの)より高い精度をもつフィルタ・セットか、またはカスタマイズされた補間フィルタのセットを使用することができる。カスタマイズされた補間フィルタのセットは、トレーニング・ビデオ・シーケンスのセットを使用することによって、あらかじめ規定できる。
最良の予測(すなわち、より小さい予測誤差エネルギー)を提供するフィルタ・セットは、MCユニット37によって選択できる。すなわち、動き補償フィルタ処理された参照と予測されているブロックとの間の誤差を最小限に抑えるために、各サブピクセル位置についてフィルタを選択することができる。一例では、リスト0からのサブピクセル位置、たとえば、sub_pos[0]と、リスト1からのサブピクセル位置、たとえば、sub_pos[1]との組合せについて累積される誤差を、以下の擬似コードに従って計算することができる。
Figure 2012505565
上式で、項「predF[i]」および「predB[j]」は、フィルタiおよびjに対応する前方予測および後方予測であり、項「wbp_weight[list][fw][bw][comp]」は、重み付け予測中で使用される重みを表し、項「wp_offset[list][ref][comp]」は重み付け予測中のオフセットであり、項「img−>bipred_rounding」はBスライス中の丸めを制御する。重み付け予測が使用されないとき、第1のステートメントは以下まで簡略化される。
Figure 2012505565
例として、MCユニット37は、固定補間フィルタ39のセットから第1のフィルタ「i」、たとえばフィルタF1を選択し、前方予測ためのサブピクセル予測データ、すなわち、predF[F1]を発生する。次いで、MCユニット37は、固定補間フィルタ39のセットから第2のフィルタ「j」、たとえばフィルタF2を選択し、後方予測のためのサブピクセル予測データ、すなわち、predB[F2]を発生する。上記で提示した擬似コードによって表される技法によれば、累積された誤差値AccErrorB[F1][F2][sub_pos[0]][sub_pos[1]]は、前方予測のためのサブピクセル予測データと後方予測のためのサブピクセル予測データとを使用して計算される。MCユニット37は、フィルタF1とフィルタF2との組合せの累積された誤差値を記憶する。次いで、MCユニット37は、前方予測および後方予測のためのサブピクセル予測データを発生するために、固定補間フィルタ39のセットから別の2つのフィルタを選択する。前述のように、累積された誤差値は計算され、記憶される。MCユニット37は、固定補間フィルタのセットの各組合せについて誤差値を累積し記憶するこのプロセスを続けることができる。いくつかの例では、MCユニット37は、サブピクセル位置の各々について、デフォルトフィルタ、たとえば、標準的なITU−T H.264フィルタ・セットを選択することができる。一例では、MCユニット37は、少なくとも1つの組合せの累積された誤差値がしきい値誤差値を下回った場合、所定の数のフィルタの組合せについてプロセスを続けることができる。MCユニット37が固定補間フィルタ39のセットについて様々な累積された誤差値を計算し、記憶した後、MCユニット37は、各サブピクセル位置についてフィルタを選択するプロセスを開始する。
一例では、フィルタ39の各組合せについて予測誤差を累積した後、MCユニット37は、レートひずみコストを計算して、固定補間フィルタ39の各セットについてフィルタ係数サイド情報を符号化する。たとえば、MCユニット37は、レートおよびひずみに応じて固定補間フィルタの各セットについてのフィルタ係数を符号化するためのコストを判断するために、コスト関数を使用することができる。いくつかの例では、ビットにおけるコストにスケーリングファクタを乗算することができる。フィルタの各セットについてのコストが計算された後、フィルタの各セットについてのコストおよび累積された誤差値を互いと比較し、最低誤差を生じるフィルタのセットと比較し、最低コストを選択することができる。
フィルタが選択され、予測データがMCユニット37によって発生または補間された後、DCオフセットが、補間(または非補間)データに関連するサンプルロケーションに基づいて予測データに適用できる。特に、本開示は、異なる整数またはサブ整数ピクセル・ロケーションについて異なるDCオフセットの使用を提供する。同じく、図4に示す例示的なデータでは、これは、16個の異なるピクセル・ロケーション「C3」、「a」、「b」、「c」、「d」、「e」、「f」、「g」、「h」、「i」、「j」、「k」、「l」、「m」、「n」、および「o」の各々は、それ自体の異なるオフセットを規定することができることを意味する。したがって、16個の可能な整数およびサブ整数ロケーションについて、16個の異なるオフセットがあり得る。その上、これらの異なるオフセットはまた、それぞれ16個の異なるピクセル・ロケーションの「E5」、「a′」、「b′」、「c′」、「d′」、「e′」、「f′」、「g′」、「h′」、「i′」、「j′」、「k′」、「l′」、「m′」、「n′」、および「o′」の各々に適用することができる。
予測データのピクセルにDCオフセットを加算することは、異なるビデオ・フレーム間の照明変化の影響をキャプチャするのに役立つことができる。照明変化は、ビデオ・シーケンス中の閃光または暗くなる空のようなものによって生じることがある。H.264/AVCは、オフセットを予測ピクセル値に加算することを可能にする重み付け予測を使用する。ただし、H.264/AVC重み付け予測によって規定されたDCオフセットはフレーム・レベルでのみ可能になり、それは、ビデオ・ブロックの予測データが補間されるかどうかにかかわらず、所与のフレームについてただ1つのオフセット値が規定されることを意味する。言い換えれば、フレーム・レベルのオフセットについて、同じフレーム中のすべてのピクセルが同じDCオフセットを有する。
本開示によれば、場合によっては、DCオフセットは、補間データおよび非補間データに関連する異なるサンプル位置について異なって規定できる。したがって、異なるDCオフセットは、図4に示す15個のサブピクセル位置(「a」、「b」、「c」、「d」、「e」、「f」、「g」、「h」、「i」、「j」、「k」、「l」、「m」、「n」、および「o」)の各々について規定でき、別のDCオフセットは、整数ピクセル位置について規定できる。サンプルベースDCオフセットがクォーターペル精度に使用されたとき、合計16個のDCオフセットが、デコーダのためのビデオビット・ストリーム中のシンタックス要素としてコーディングされ、送信され得る。サンプルベースDCオフセットを適用することによって、MCユニット37は、単純であるが、有効な動きセグメンテーションツールを提供することができる。一例として、ビデオ・フレームは、暗くなる空を静止背景として、移動物体を前景として含んでいることがある。この場合、背景および前景は、異なる度合いの照明変化を有することがあり、所与のビデオ・ブロックを識別するピクセルのロケーションによって定義されたロケーション固有のDCオフセット値を使用することによって、動き補償ユニット37は、そのようなロケーション固有のDCオフセット値なしに達成され得るよりも効率的な方法で、前景および背景の異なる度合いの照明変化をキャプチャすることが可能である。
上述のように、本開示の技法は、双方向予測ビデオ・ブロックにオフセットを加算することを含む。双方向予測ビデオ・ブロックが参照データの2つの異なるリストからの2つの異なる参照ビデオ・ユニットを使用するので、2つの異なるDCオフセットを、異なる参照フレームに関連する各整数およびサブ整数ロケーションについて計算することができる。ただし、望ましい第1のオフセットを、参照データの第1のリスト内の第1の参照ビデオ・ユニットに基づいて各整数およびサブ整数ロケーションについて計算した場合、および望ましい第2のオフセットを、参照データの第2のリスト内の第2の参照ビデオ・ユニットに基づいて各整数およびサブ整数ロケーションについて計算した場合、第1および第2の望ましいオフセットを組み合わせても、必ずしも望ましいオフセットを生じないであろう。たとえば、第1および第2のオフセットの組合せは、望ましいオフセットよりも大きいオフセットを生じることがある。本開示の技法に従って、各整数およびサブ整数ロケーションについて2つの異なるオフセットを一緒に計算して、望ましいオフセットを生成することができる。最初に、1つのリスト、たとえばリスト0についてのオフセットを計算し、次いで、別のリスト、たとえばリスト1についてのオフセットを、他のリスト、たとえばリスト0からの前に判断されたオフセットを考慮に入れることによって計算する。
第1のDCオフセットのセットは、リスト0中の最も近い参照フレームについて計算できる。各サブピクセル位置sub_pos[0]について、DCオフセットを、サブピクセル位置sub_pos[0]に対応する動きベクトル精度を有する現在のフレーム中のすべてのピクセルの平均と、それらの双予測補間値の平均との間の差として計算することができる。リスト0中のフレーム0についてのサブピクセルオフセットの計算に使用される誤差は、以下の擬似コードに記載されている「AccFrameOffsetF[ref_frame[0]]」中に累積される。
Figure 2012505565
上式で、「tmp」は予測誤差である。変数「filterF」は、前方予測のためのサブピクセル予測データを発生するために選択されたフィルタのインデックスを記憶する。このようにして、累積最適化オフセットは、第1のリスト、たとえばリスト0について計算される。
上記で計算されたオフセット、すなわち、「AccFrameOffsetF[ref_frame[0]]」が、第1のリスト、たとえばリスト0中の最も近接したフレーム中の補間ピクセルに適用された後、他方、または第2のリスト、たとえばリスト1中の最も近接した参照フレームについてオフセットを計算する。上述のように、第1のリスト、たとえばリスト0についての累積オフセットは、第2のリスト、たとえばリスト1についてのオフセットを判断するために使用される。第2のリストについてのオフセットの判断は、以下の擬似コードにおいて示される。
Figure 2012505565
上式で、「tmp」は予測誤差であり、「offsetF」は、第1のリストについて判断された最適化オフセットであり、「predF」は第1のリストからの予測であり、「predB」は第2のリストからの予測であり、「w0」は、重み係数、たとえば第1のリストのための第1の重みであり、「w1」は、重み係数、たとえば第2のリストのための第2の重みであり、AccFrameOffsetB[bw_ref_idx]は、累積された誤差である。第1のオフセット値および第2のオフセット値のうちの少なくとも1つに重みを適用することによって、このプロシージャは、予測の重みを考慮に入れ、もしあれば、Bスライスにおいて使用された丸めを考慮に入れる。この時点で、各整数およびサブ整数ロケーションについて、一緒に判断される2つのオフセット、すなわち、第1のオフセット(「offsetF」)、たとえば前方オフセットと、第1のオフセットを使用して計算される第2のオフセット(「offsetB」)、たとえば後方オフセットとがある。このようにして、15個のサブペル位置を有する各整数位置について、32個のオフセットを計算する。
次に、以下の擬似コードによって示されるように、予測される所与のピクセルについて、所与のピクセル位置の最終オフセット値を計算することにおいて使用される予測誤差(「tmp」)を、第1のリストからの予測(「predF」)、たとえば前方予測と、第1のオフセット(「offsetF」)、たとえば前方オフセットと、第2のリストからの予測(「predB」)、たとえば後方予測と、第2のオフセット(「offsetB」)、たとえば後方オフセットとを組み合わせることによって判断し、次いで、その結果を除算して予測誤差を生成する。
Figure 2012505565
上式で、「tmp」は予測誤差であり、「offsetF」は、第1のリストについて判断された最適化オフセットであり、「predF」は第1のリストからの予測であり、「offsetB」は、第2のリストについて判断された最適化オフセットであり、「predB」は第2のリストからの予測であり、「w0」は第1の重みであり、「w1」は第2の重みであり、「denom」は正規化項であり、「AccFrameOffsetB[bw_ref_idx]」は、各整数またはサブ整数ピクセル位置についての累積された予測誤差であり、「AccFrameOffsetBCount[bw_ref_idx]」は、誤差に対する新しい寄与が累積されるたびに増分されるカウンタである。上記の擬似コード中の「if」ルーチンは、すべてのマクロブロックを通して反復するループの一部であり、以下で説明する最終オフセット値の計算はそのループ後に起こる場合があることも留意されたい。さらに、カウンタ「AccFrameOffsetBCount[bw_ref_idx]」は、たとえばループの前に、0に初期化できる。上記でわかるように、最も簡単な場合では、他の項に加えて、第1のオフセット予測和を生成するための、第1のリストからの予測(「predF」)、たとえば前方予測と、第1のオフセット(「offsetF」)、たとえば前方オフセットとを、第2のオフセット予測和を生成するための、第2のリストからの予測(「predB」)、たとえば後方予測と、第2のオフセット(「offsetB」)、たとえば後方オフセットとともに組み合わせることによって予測誤差「tmp」を判断する。第1のオフセット予測和に、第1の重み、たとえばw0を乗算し、第2のオフセット予測和に、第2の重み、たとえばw1を乗算することができる。第1の重み付けオフセット予測和と第2の重み付けオフセット予測和とを合計して、最終重み付けオフセット予測和を生成することができる。次いで、この最終重み付けオフセット予測和を、2または正規化項、たとえばdenomで除算することができる。ただし、分母(「denom」)は、2に等しくなくてもよく、代わりに別の正規化項とすることもできる。
予測誤差が、所与のピクセル位置についての「AccFrameOffsetB[bw_ref_idx]」中に累積された後、次いで、以下の擬似コードで示すように、そのピクセル位置についての最終オフセット値を計算する。
Figure 2012505565
上記でわかるように、AccFrameOffsetB[bw_ref_idx]中に累積された予測誤差を誤差への寄与の数AccFrameOffsetBCount[bw_ref_idx]で除算することによって、最終オフセット値Offset[bw_ref_idx]を計算して、各サブ整数ピクセル位置についての最終オフセット値を生成する。すべての誤差が累積され、その累積された誤差が、誤差に対する寄与の数で除算されるという点で、このプロセスは本質的にピクセル位置当たりの平均誤差を計算する。寄与の数は、動きベクトルが指しているピクセル位置に依存するので、寄与の数は、すべてのピクセル位置について同じというわけではないことに留意されたい。最終オフセット値(「Offset[bw_ref_idx]」)が異なる参照フレームに関連する各整数およびサブ整数ロケーションについて計算された後に、最終オフセット値のこのブロックは、デコーダに送信されるビット・ストリーム中で符号化できる。たとえば、16個の最終オフセット値のブロックは「P」フレームについて符号化でき、32個の最終オフセット値のブロックは双予測フレームについて符号化できる。
予測誤差がすべてのサブピクセル位置からの寄与を組み合わせるということを除いて、フレームDCオフセットは同様に計算される。ピクセルが整数位置であるか、または補間されたかとは無関係に、フレームDCオフセットは、フレーム中のすべてのピクセルに適用できるオフセットである。フレームDCオフセットは、0よりも大きいインデックスを有する参照フレーム、すなわち、符号化されているフレームに最も近い参照フレームではない参照フレームのオフセットを補償するために使用される。
さらに、コード化ユニットのビデオ・ブロックが、たとえば、双方向予測のために、複数の異なる参照フレームを使用するとき、異なる参照フレームに関連する各整数およびサブ整数ロケーションについて異なるDCオフセットを計算し、送信することができる。場合によっては、ある参照フレームは単一のフレームベースのDCオフセットを備え、他の参照フレームは、いくつかのロケーション固有のDCオフセットを有することがある。いくつかの方式では、コーディングされている現在のフレームに時間距離が最も近い参照フレームに関してのみ、ロケーション固有のDCオフセットを使用し、他の参照フレームのすべてについては、単一のフレームベースのDCオフセットを使用することができる。
DCオフセットをコーディングするために、フレーム当たり1ビットを使用して、単一のフレームベースのDCオフセットが使用されるかどうか、または、いくつかのロケーション固有のDCオフセットが使用されるかどうかを示すことができる。DCオフセットが整数精度のみを有する場合、これらのオフセットの値を、符号付き指数ゴロム符号を使用してコーディングすることができる。DCオフセットが分数精度を有する場合、整数オフセットの値は、符号付き指数ゴロム符号を使用してコーディングでき、非整数オフセットの値は、符号付き指数ゴロム符号によって規定された、整数オフセットに対する残差を使用してコーディングできる。
たとえば、オフセットのコーディングは、最初に整数オフセットをコーディングし、次いで各部分オフセットをコーディングすることによって行われる。この場合、整数オフセットおよび部分オフセットを別様にコーディングする。整数オフセットは、符号付き指数ゴロム符号を使用してコーディングできる。整数オフセットの絶対値に応じて、部分オフセットを整数オフセットとは別様に量子化することができる。たとえば、整数オフセットが大きい絶対値を有するとき、より粗いレベルの量子化を部分オフセットに対して適用することができる。量子化の後、固定長符号を使用して部分オフセットをコーディングすることができる。
ビデオ・エンコーダは、オフセット値の各々に対して、第1のビット数を所与のオフセット値の整数部分に割り当て、第2のビット数を所与のオフセット値の分数部分に割り当てる量子化ユニット(たとえば、ビデオ・エンコーダ50のユニット40)を含むことができ、第1および第2のビット数は、整数部分の絶対値に基づいて判断される。いずれの場合も、ビデオ・エンコーダ50は、第2のビット数とは異なって第1のビット数を符号化することができる。
上記のように、DCオフセット値は、各コード化ユニットのビット・ストリームの一部としてコーディングできる。したがって、デコーダ側で、デコーダは、単に任意の発生された予測ビデオ・ブロックのピクセルに適切なDCオフセット値を適用することができる。デコーダによって使用されるDCオフセット値は、各予測ビデオ・ブロックに関連する固有の整数またはサブ整数ピクセル・ロケーションについてのシンタックス要素中で規定できる。たとえば、コード化ユニットのヘッダ中のシンタックス要素は、そのコード化ユニットについて複数のオフセット値の各々を指定するためのフラグまたは値を含むことができる。「オフセット」および「DCオフセット」という用語は、本開示では互換的に使用される。同じそれぞれのピクセル・ロケーションごとに全オフセットが規定される限り、たとえば、整数ロケーションについて1つのオフセットが規定され、可能なサブピクセル・ロケーションごとにいくつかの異なるオフセットが規定される限り、オフセットはDCオフセットと呼ばれる。
図5は、本開示によるビデオ・エンコーダによってビデオ・ブロックを符号化する例示的な方法を示すフローチャートである。最初に、ビデオ・エンコーダ22の予測ユニット32は、予測値の2つのブロックを補間する、すなわち、参照データの第1のリスト、たとえばリスト0内の第1の参照ビデオ・ユニットに基づいてサブ整数ピクセル位置に関連する予測値の第1のブロックを補間し、参照データの第2のリスト、たとえばリスト1内の第2の参照ビデオ・ユニットに基づいてサブ整数ピクセル位置に関連する予測値の第2のブロックを補間する(100)。いくつかの例では、第1の値と第2の値とを補間することは固定補間フィルタによって実行される。別の例では、第1のオフセット値および第2のオフセット値は、整数ピクセル・ロケーションについての1つのオフセット値と、異なるサブ整数ピクセル・ロケーションについてのいくつかのオフセット値とを含む。いくつかの例では、第1のオフセット値および第2のオフセット値は、15個の異なるサブ整数ピクセル・ロケーションについての15個の異なるオフセット値を含む。
予測値の第1および第2のブロックが補間された後、動き補償ユニット37は、サブ整数ピクセル位置について、予測値の第1のブロックと現在のビデオ・ブロックとに基づいて第1のオフセット値を計算し、第1のオフセット値と予測値の第2のブロックとに基づいて第2のオフセット値を計算する(102)。
第1および第2のオフセット値が計算された後、予測ユニット32は、予測値の第1のブロックと、予測値の第2のブロックと、第1のオフセット値と、第2のオフセット値とに基づいて、オフセット値の最終ブロックを判断する(104)。いくつかの例では、第1のオフセット値と第2のオフセット値とに基づいてオフセット値の最終ブロックを判断することは、第1のオフセット値と第2のオフセット値の少なくとも一方または両方に重みを適用することを含む。
別の例では、オフセット値の最終ブロックを判断することは、オフセット予測和を生成するために予測値の第1のブロックと予測値の第2のブロックと第1のオフセット値と第2のオフセット値とを合計することと、予測誤差を生成するためにオフセット予測和を2で除算することと、各サブ整数ピクセル位置について予測誤差を累積することと、各サブ整数ピクセル位置についての最終オフセット値を生成するために、各サブ整数ピクセル位置についての累積された予測誤差を予測誤差に対する寄与の数で除算することとを含む。
いくつかの例では、オフセット値の最終ブロックを判断することは、第1のオフセット予測和を生成するために予測値の第1のブロックと第1のオフセット値とを加算することと、第2のオフセット予測和を生成するために予測値の第2のブロックと第2のオフセット値とを加算することと、第1の重み付けオフセット予測和を生成するために第1のオフセット予測和に第1の重みを乗算し、第2の重み付けオフセット予測和を生成するために第2のオフセット予測和に第2の重みを乗算することと、最終重み付けオフセット予測和を生成するために第1の重み付けオフセット予測和と第2の重み付けオフセット予測和とを加算することと、予測誤差を生成するために最終重み付けオフセット予測和を正規化項で除算することと、各サブ整数ピクセル位置について予測誤差を累積することと、各サブ整数ピクセル位置についての最終オフセット値を生成するために、各サブ整数ピクセル位置についての累積された予測誤差を予測誤差に対する寄与の数で除算することとを含む。
オフセット値の最終ブロックを判断した後、ビデオ・エンコーダ22は、オフセット値の最終ブロックに基づいて現在のビデオ・ブロックを符号化する(106)。いくつかの例では、ビデオ・エンコーダ22は、コーディングされた現在のビデオ・ブロックを含むことができるコード化ビット・ストリームの一部として、第1のオフセット値と第2のオフセット値とを符号化する。一例では、第1のオフセット値と第2のオフセット値とを符号化することは、第1のオフセット値および第2のオフセット値の各々、すなわち、所与の整数またはサブ整数ピクセル・ロケーションについての最終オフセット値について、オフセット値の最終ブロックのオフセット値の整数部分に第1のビット数を割り当てることと、オフセット値の最終ブロックのオフセット値の分数部分に第2のビット数を割り当てることとを含み、第1および第2のビット数は、整数部分の絶対値に基づいて判断される。別の例では、本方法は、コード化ビット・ストリームをソース・デバイス12から宛先デバイス16に送信することをさらに含む。
いくつかの例では、オフセット値の最終ブロックは、整数ピクセル・ロケーションについての1つのオフセット値と、異なるサブ整数ピクセル・ロケーションについてのいくつかのオフセット値とを含むことができる。別の例では、オフセット値の最終ブロックは、15個の異なるサブ整数ピクセル・ロケーションについての15個の異なるオフセット値を含むことができる。
本開示の技法はまた、Bスライスの望ましいレートひずみを達成するためにフィルタとオフセットとの構成を判断することを対象とする。直下で提示する擬似コードに、Bスライスの最良のレートひずみ特性を得る組合せを発見するために、ビデオ・エンコーダ22によって使用されるフィルタとオフセットとの構成を略述する。
a.パス1:シーケンス・フィルタ、0個のサブピクセルおよび0個のフレームオフセットを使用することによってフレームを符号化する。
b.idx=0をもつ参照フレームが現在のフレームから同じ距離を有する場合
POCパス:POC重み付け参照フレームに対してシーケンス・フィルタ、0個のサブピクセルおよび0個のフレーム・オフセットを使用することによって、フレームを符号化する。
パス1の結果とPOCパスの結果とを比較する。
POCパスがより良好である場合
以後、POC重み付け参照フレームを使用する。
Best=POCパスの結果
他の場合
Best=パス1の結果
他の場合
Best=パス1の結果
c.現在のフレームに対してフレーム・フィルタ、サブピクセルおよびフレーム・オフセットを計算する。
d.パス2:フレーム・フィルタ、サブピクセルおよびフレーム・オフセットを使用することによってフレームを符号化する。
e.パス2符号化がBestよりも良好である場合
Best=パス2の結果
パス3:量子化ステップを1だけ増加させ、フレーム・フィルタ、サブピクセルおよびフレーム・オフセットを使用することによってフレームを符号化する。
他の場合
パス3:量子化ステップを1だけ増加させ、シーケンス・フィルタ、0個のサブピクセルおよび0個のフレーム・オフセットを使用することによってフレームを符号化する。
f.パス3符号化がBestよりも良好である場合
パス3符号化をビット・ストリームに加算する。
他の場合
Bestにおける符号化をビット・ストリームに加算する。
g.(次のフレームを符号化するために)シーケンス・フィルタを計算する。
図6A〜図6Cは、直上で提示した擬似コードに基づいて、Bスライスの望ましいレートひずみを達成するためにフィルタとオフセットとの構成を判断する例示的な方法を示すフローチャートである。擬似コードおよび図6A〜図6Cについて一緒に説明する。上記で提示した擬似コード中のステップは、明快のために列挙したものであることに留意されたい。異なるステップを追加のステップにさらに分割し、複数のステップを組み合わせることができる。上記でわかるように、擬似コードのステップaにおいて、オフセットではなく、シーケンス・フィルタを使用して、フレームを符号化する(200)。符号化されているフレームに関して最適化されるために計算されるフレーム・フィルタとは異なり、シーケンス・フィルタは、過去のフレームのサブセットを使用することによって計算される。フレーム・フィルタの計算のために動きベクトルが必要であるので、フレーム・フィルタは、1つのコーディングパスの後にのみ計算できる。ただし、シーケンス・フィルタは、過去のフレームを使用して計算されるので、第1のコーディングパスに適用できる。シーケンス・フィルタは、過去のフレーム、すなわち、すでに符号化されたフレームに対して計算される。フレーム・フィルタについて説明したのと同様にして、各サブピクセル位置について独立して2乗誤差が配列変数中に累積される。しかしながら、最も最近符号化されたフレームの寄与を加算する前に、配列変数の成分をスケールダウンすることができる。より古いフレームの寄与をスケールダウンすることにより、エンコーダは、より最近の寄与により重く重み付けすることによって過去を「忘れる」ことが可能になる。たとえば、配列変数の成分をスケーリングファクタ2で除算することができるが、他のスケーリングファクタを使用してシステムの「記憶」を増加または減少させることができる。ステップbにおいて、id(「idx」)=0をもつすべての参照フレームが現在のフレームから同じ距離を有する場合(202における「はい」決定)、すなわち、同数のフレームが現在のフレームから参照フレームを分離する場合、ビデオ・エンコーダ22はピクチャ順序コンテンツ(POC)パスを実行する。POCパスから、前方参照フレームと後方参照フレームとが、符号化されているフレームから異なる距離を有するかどうかを推測することが可能である。次いで、距離に反比例するように寄与に重み付けすることが可能である。重み付け予測では、これらの重みは「暗黙的」と呼ばれる。たとえば、フレームP1 B1 B2 P2 B3 B4 P3のシーケンスをコーディングするとき、双予測フレームB2は、参照フレームP1よりも参照フレームP2により近く、したがってP2の寄与は2/3に重み付けでき、P1の寄与は1/3に重み付けできる。POC重み付け参照フレームに対して、オフセットなしに、シーケンス・フィルタを使用して、現在のフレームをPOCパスにおいて符号化する(204)。
ステップbを続けると、次いで、パス1のレートひずみコスト値結果とPOCパスのレートひずみコスト値結果とを比較し、POCパスがより低いレートひずみ値を与える場合(206における「はい」決定)、POC重み付け参照フレームを使用し(208)、変数「Best」をPOCパスの結果に設定する(210)。ただし、パス1の結果がPOCパスの結果よりも低いレートひずみコスト値を規定する場合(206における「いいえ」決定)、変数「Best」をパス1の結果に設定する(212)。ただし、ステップbの開始において、id(「idx」)=0をもつ参照フレームが現在のフレームから同じ距離を有しない場合(202における「いいえ」決定)、変数「Best」をパス1の結果に設定する(212)。
次にステップcを参照すると、ビデオ・エンコーダ22が、現在のフレームについてフレーム・フィルタとサブピクセルおよびフレーム・オフセットとを計算する(214)。ステップdにおいて、ビデオ・エンコーダ22が、ステップcにおいて計算されたフレーム・フィルタとサブピクセルおよびフレーム・オフセットとを使用して現在のフレームを符号化する、第2のパスまたはパス2を実行する(216)。
ステップeにおいて、パス2からの符号化が、現在の変数「Best」中の値よりも低いレートひずみ値を生じた場合(218における「はい」決定)、変数「Best」をパス2符号化の結果に設定する(220)。次いで、量子化ステップを1だけ増加させ、ビデオ・エンコーダ22がフレーム・フィルタ、サブピクセルおよびフレーム・オフセットを使用してフレームを符号化するように、パス3を実行する(222)。ただし、パス2からの符号化が、現在の変数「Best」中の値よりも低いレートひずみ値を規定しない場合(218における「いいえ」決定)、量子化ステップを1だけ増加させ、ビデオ・エンコーダ22がサブピクセルおよびフレーム・オフセットを使用せずにシーケンス・フィルタを使用してフレームを符号化するように、パス3を実行する(224)。
パス3を実行した後、ステップfにおいて、パス3符号化の結果を、変数「Best」に記憶された結果と比較する。パス3において使用された符号化が、「Best」に記憶された値よりも低いレートひずみ値を生じた場合(226における「はい」決定)、パス3において使用されたフィルタおよびオフセット構成をビット・ストリームに加算する(228)。パス3において使用された符号化が、「Best」に記憶された値よりも低いレートひずみ値を生じなかった場合(226における「いいえ」決定)、変数「Best」に記憶された結果を生成するために使用されたフィルタおよびオフセット構成をビット・ストリームに加算する(230)。最後に、ステップgにおいて、次のフレームを符号化するためにシーケンス・フィルタを計算する(232)。したがって、上述のようにして、ビデオ・エンコーダ22は、Bスライスの最良のレートひずみを生じるフィルタおよびオフセットの組合せを選択することが可能である。
同様に、本開示の技法はまた、Pスライスの望ましいレートひずみを達成するためにフィルタとオフセットとの構成を判断することを対象とする。直下で提示する擬似コードに、Pスライスの最良のレートひずみ特性を得る組合せを発見するために、ビデオ・エンコーダ22によって使用されるフィルタとオフセットとの構成を略述する。
a.第1のパスについてサブピクセルおよびフレーム・オフセットを計算する。
b.パス1:第1のパスについてシーケンス・フィルタ、サブピクセルおよびフレーム・オフセットを使用することによってフレームを符号化する。
c.現在のフレームに対してフレーム・フィルタ、サブピクセルおよびフレーム・オフセットを計算する。
d.パス2:フレーム・フィルタ、サブピクセルおよびフレーム・オフセットを使用することによってフレームを符号化する。
e.パス1の結果とパス2の結果とを比較する。
f.最良のものの符号化をビット・ストリームに加算する。
g.(次のフレームを符号化するために)シーケンス・フィルタを計算する。
上記で提示した擬似コード中のステップは、明快のために列挙したものであることに留意されたい。異なるステップを追加のステップにさらに分割し、複数のステップを組み合わせることができる。上記でわかるように、擬似コードのステップaにおいて、第1のパスについてサブピクセルおよびフレーム・オフセットを計算する。ステップbにおいて、第1のパス中で、シーケンス・フィルタ、サブピクセルおよびフレーム・オフセットを使用してフレームを符号化する。次いで、ステップcにおいて、現在のフレームに対して、フレーム・フィルタとサブピクセルおよびフレーム・オフセットとを計算する。
ステップdにおいて、ビデオ・エンコーダ22が、フレーム・フィルタとサブピクセルおよびフレーム・オフセットとを使用してフレームを符号化する第2のパスまたはパス2を実行する。ステップeにおいて、パス1の結果とパス2の結果とを比較する。ステップfにおいて、パス1において使用された符号化がより低いレートひずみ値を生じた場合、パス1において使用されたフィルタおよびオフセット構成をビット・ストリームに加算する。ただし、パス2において使用された符号化がより低いレートひずみ値を生じた場合、パス2において使用されたフィルタおよびオフセット構成をビット・ストリームに加算する。最後に、ステップgにおいて、次のフレームを符号化するためにシーケンス・フィルタを計算する。このようにして、上述の方法で、ビデオ・エンコーダ22は、Pスライスの最良のレートひずみを生じるフィルタおよびオフセットの組合せを選択することが可能である。
本開示の技法は、ワイヤレス・ハンドセット、集積回路(IC)またはICのセット(すなわち、チップセット)を含む、多種多様なデバイスまたは装置で実現できる。機能的態様を強調するために与えられた任意の構成要素、モジュールまたはユニットについて説明したが、異なるハードウェアユニットによる実現を必ずしも必要とするわけではない。
本開示で説明する技法は、少なくとも部分的に、ハードウェア、ソフトウェア、ファームウェア、またはその任意の組合せで実装できる。たとえば、説明する技法の様々な態様は、1つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールド・プログラマブル・ゲートアレイ(FPGA)、あるいは他の等価集積回路または個別論理回路、ならびにそのような構成要素の任意の組合せを含む1つまたは複数のプロセッサ内で実装できる。「プロセッサ」または「処理回路」という用語は、一般に、単独で、あるいは他の論理回路または他の等価回路との組合せで上記の論理回路のいずれかを指すことがある。
そのようなハードウェア、ソフトウェア、およびファームウェアは、本開示で説明した様々な動作および関数をサポートするために、同じデバイス内で、または別々のデバイス内で実装できる。さらに、説明したユニット、モジュール、または構成要素のいずれも、個別であるが相互運用可能な論理デバイスとして、一緒に、または別々に実装できる。モジュールまたはユニットとしての様々なフィーチャの図は、様々な機能的態様を強調するものであり、そのようなモジュールまたはユニットが、必ずしも別々のハードウェアまたはソフトウェア構成要素によって実現されなければならないことを暗示しない。そうではなく、1つまたは複数のモジュールあるいはユニットに関連する機能は、別々のハードウェアまたはソフトウェア構成要素によって実行されるか、あるいは共通または別々のハードウェアもしくはソフトウェア構成要素内に組み込まれることがある。
ソフトウェアで実装する場合、機能は、1つまたは複数の命令またはコードとしてコンピュータ可読媒体上に記憶するか、あるいはコンピュータ可読媒体を介して送信することができる。コンピュータ可読媒体は、ある場所から別の場所へのコンピュータプログラムの転送を可能にする任意の媒体を含む、コンピュータ記憶媒体と通信媒体の両方を含む。記憶媒体は、コンピュータによってアクセスできる任意の利用可能な媒体とすることができる。限定ではなく例として、そのようなコンピュータ可読媒体は、RAM、ROM、EEPROM、CD−ROM、あるいは他の光ディスクストレージ、磁気ディスクストレージまたは他の磁気記憶デバイス、もしくは命令またはデータ構造の形態の所望のプログラムコードを搬送または記憶するために使用でき、コンピュータによってアクセスできる任意の他の媒体を備えることができる。また、いかなる接続もコンピュータ可読媒体と適切に呼ばれる。たとえば、ソフトウェアが、同軸ケーブル、光ファイバケーブル、ツイストペア、デジタル加入者回線(DSL)、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバケーブル、ツイストペア、DSL、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。本明細書で使用するディスク(disk)およびディスク(disc)は、コンパクトディスク(disc)(CD)、レーザディスク(disc)、光ディスク(disc)、デジタル多用途ディスク(disc)(DVD)、フロッピー(登録商標)ディスク(disk)およびブルーレイディスク(disc)を含み、ディスク(disk)は、通常、データを磁気的に再生し、ディスク(disc)は、データをレーザで光学的に再生する。上記の組合せもコンピュータ可読媒体の範囲内に含めるべきである。
様々な例について説明した。これらおよび他の例は以下の特許請求の範囲の範囲内にある。

Claims (45)

  1. 現在のビデオ・ブロックを符号化するためのビデオ符号化方法であって、
    エンコーダを介して、参照データの第1のリスト内の第1の参照ビデオ・ユニットに基づいてサブ整数ピクセル位置に関連する予測値の第1のブロックを補間し、参照データの第2のリスト内の第2の参照ビデオ・ユニットに基づいて前記サブ整数ピクセル位置に関連する予測値の第2のブロックを補間することと、
    エンコーダを介して、サブ整数ピクセル位置について、予測値の前記第1のブロックと前記現在のビデオ・ブロックとに基づいて第1のオフセット値を計算し、前記第1のオフセット値と予測値の前記第2のブロックとに基づいて第2のオフセット値を計算することと、
    エンコーダを介して、予測値の前記第1のブロックと予測値の前記第2のブロックと前記第1のオフセット値と前記第2のオフセット値とに基づいて、オフセット値の最終ブロックを判断することと、
    エンコーダを介して、オフセット値の前記最終ブロックに基づいて前記現在のビデオ・ブロックを符号化することと、
    を備えるビデオ符号化方法。
  2. 予測値の前記第1のブロックを補間し、予測値の前記第2のブロックを補間することが、固定補間フィルタによって実行される請求項1に記載の方法。
  3. オフセット値の最終ブロックを判断することが、
    前記第1のオフセット値および前記第2のオフセット値のうちの少なくとも1つに重みを適用すること、
    を備える請求項1に記載の方法。
  4. オフセット値の最終ブロックを判断することが、
    オフセット予測和を生成するために、予測値の前記第1のブロックと予測値の前記第2のブロックと前記第1のオフセット値と前記第2のオフセット値とを合計することと、
    予測誤差を生成するために前記オフセット予測和を2で除算することと、
    各サブ整数ピクセル位置について前記予測誤差を累積することと、
    各サブ整数ピクセル位置についての最終オフセット値を生成するために、各サブ整数ピクセル位置についての前記累積された予測誤差を前記予測誤差に対する寄与の数で除算することと、
    を備える請求項1に記載の方法。
  5. オフセット値の最終ブロックを判断することが、
    第1のオフセット予測和を生成するために、予測値の前記第1のブロックと前記第1のオフセット値とを加算することと、
    第2のオフセット予測和を生成するために、予測値の前記第2のブロックと前記第2のオフセット値とを加算することと、
    第1の重み付けオフセット予測和を生成するために前記第1のオフセット予測和に第1の重みを乗算し、第2の重み付けオフセット予測和を生成するために前記第2のオフセット予測和に第2の重みを乗算することと、
    最終重み付けオフセット予測和を生成するために、前記第1の重み付けオフセット予測和と前記第2の重み付けオフセット予測和とを加算することと、
    予測誤差を生成するために前記最終重み付けオフセット予測和を正規化項で除算することと、
    各サブ整数ピクセル位置について前記予測誤差を累積することと、
    各サブ整数ピクセル位置についての最終オフセット値を生成するために、各サブ整数ピクセル位置についての前記累積された予測誤差を前記予測誤差に対する寄与の数で除算することと、
    を備える請求項1に記載の方法。
  6. 前記コーディングされた現在のビデオ・ブロックを含むコード化ビット・ストリームの一部としてオフセット値の前記最終ブロックを符号化することをさらに備える請求項1に記載の方法。
  7. 前記コード化ビット・ストリームをソース・デバイスから宛先デバイスに送信することをさらに備える請求項6に記載の方法。
  8. オフセット値の前記最終ブロックを符号化することが、オフセット値の前記最終ブロックのオフセット値の整数部分に第1のビット数を割り当てることと、オフセット値の前記最終ブロックの前記オフセット値の分数部分に第2のビット数を割り当てることとを備え、前記第1のビット数および前記第2のビット数が、前記整数部分の絶対値に基づいて判断される請求項6に記載の方法。
  9. オフセット値の前記最終ブロックが、整数ピクセル・ロケーションについての1つのオフセット値と、異なるサブ整数ピクセル・ロケーションについてのいくつかのオフセット値とを含む請求項6に記載の方法。
  10. オフセット値の前記最終ブロックが、15個の異なるサブ整数ピクセル・ロケーションについての15個の異なるオフセット値を含む請求項9に記載の方法。
  11. ビデオデータを符号化する装置であって、
    参照データの第1のリスト内の第1の参照ビデオ・ユニットに基づいてサブ整数ピクセル位置に関連する予測値の第1のブロックを補間し、参照データの第2のリスト内の第2の参照ビデオ・ユニットに基づいて前記サブ整数ピクセル位置に関連する予測値の第2のブロックを補間することと、
    サブ整数ピクセル位置について、予測値の前記第1のブロックと前記現在のビデオ・ブロックとに基づいて第1のオフセット値を計算し、前記第1のオフセット値と予測値の前記第2のブロックとに基づいて第2のオフセット値を計算することと、
    予測値の前記第1のブロックと予測値の前記第2のブロックと前記第1のオフセット値と前記第2のオフセット値とに基づいて、オフセット値の最終ブロックを判断することと、
    オフセット値の前記最終ブロックに基づいて前記現在のビデオ・ブロックを符号化することと、
    を行うビデオ・エンコーダを備える装置。
  12. 前記ビデオ・エンコーダが、予測値の前記第1のブロックと予測値の前記第2のブロックとを補間する少なくとも1つの固定補間フィルタを備える請求項11に記載の装置。
  13. オフセット値の前記最終ブロックを判断するために、前記ビデオ・エンコーダが、前記第1のオフセット値および前記第2のオフセット値のうちの少なくとも1つに重みを適用する請求項11に記載の装置。
  14. オフセット値の前記最終ブロックを判断するために、前記ビデオ・エンコーダが、オフセット予測和を生成するために予測値の前記第1のブロックと予測値の前記第2のブロックと前記第1のオフセット値と前記第2のオフセット値とを合計することと、予測誤差を生成するために前記オフセット予測和を2で除算することと、各サブ整数ピクセル位置について前記予測誤差を累積することと、各サブ整数ピクセル位置についての最終オフセット値を生成するために、各サブ整数ピクセル位置についての前記累積された予測誤差を前記予測誤差に対する寄与の数で除算することとを行う、請求項11に記載の装置。
  15. オフセット値の前記最終ブロックを判断するために、前記ビデオ・エンコーダが、
    第1のオフセット予測和を生成するために、予測値の前記第1のブロックと前記第1のオフセット値とを加算することと、
    第2のオフセット予測和を生成するために、予測値の前記第2のブロックと前記第2のオフセット値とを加算することと、
    第1の重み付けオフセット予測和を生成するために前記第1のオフセット予測和に第1の重みを乗算し、第2の重み付けオフセット予測和を生成するために前記第2のオフセット予測和に第2の重みを乗算することと、
    最終重み付けオフセット予測和を生成するために、前記第1の重み付けオフセット予測和と前記第2の重み付けオフセット予測和とを加算することと、
    予測誤差を生成するために前記最終重み付けオフセット予測和を正規化項で除算することと、
    各サブ整数ピクセル位置について前記予測誤差を累積することと、
    各サブ整数ピクセル位置についての最終オフセット値を生成するために、各サブ整数ピクセル位置についての前記累積された予測誤差を前記予測誤差に対する寄与の数で除算することと、
    を行う、請求項11に記載の装置。
  16. 前記ビデオ・エンコーダが、前記コーディングされた現在のビデオ・ブロックを含むコード化ビット・ストリームの一部としてオフセット値の前記最終ブロックを符号化する請求項11に記載の装置。
  17. 前記ビデオ・エンコーダが、オフセット値の前記最終ブロックのオフセット値の整数部分に第1のビット数を割り当て、オフセット値の前記最終ブロックのオフセット値の分数部分に第2のビット数を割り当て、前記第1のビット数および前記第2のビット数が、前記整数部分の絶対値に基づいて判断される請求項16に記載の装置。
  18. オフセット値の前記最終ブロックが、整数ピクセル・ロケーションについての1つのオフセット値と、異なるサブ整数ピクセル・ロケーションについてのいくつかのオフセット値とを含む請求項16に記載の装置。
  19. オフセット値の前記最終ブロックが、15個の異なるサブ整数ピクセル・ロケーションについての15個の異なるオフセット値を含む請求項18に記載の装置。
  20. 前記ビデオ・エンコーダがワイヤレス通信デバイスの一部を形成する請求項11に記載の装置。
  21. 前記ビデオ・エンコーダが集積回路デバイスを備える請求項11に記載の装置。
  22. 実行時に、ビデオ・エンコーダ内のプロセッサに、
    参照データの第1のリスト内の第1の参照ビデオ・ユニットに基づいてサブ整数ピクセル位置に関連する予測値の第1のブロックを補間させ、参照データの第2のリスト内の第2の参照ビデオ・ユニットに基づいて前記サブ整数ピクセル位置に関連する予測値の第2のブロックを補間させ、
    サブ整数ピクセル位置について、予測値の前記第1のブロックと前記現在のビデオ・ブロックとに基づいて第1のオフセット値を計算させ、前記第1のオフセット値と予測値の前記第2のブロックとに基づいて第2のオフセット値を計算させ、
    予測値の前記第1のブロックと予測値の前記第2のブロックと前記第1のオフセット値と前記第2のオフセット値とに基づいて、オフセット値の最終ブロックを判断させ、
    オフセット値の前記最終ブロックに基づいて前記現在のビデオ・ブロックを符号化させる、コンピュータ可読媒体上に符号化された命令を備えるコンピュータ可読媒体。
  23. 前記プロセッサに、予測値の前記第1のブロックと予測値の前記第2のブロックとを補間させる前記命令が、前記プロセッサに、固定補間フィルタのセットから補間フィルタのセットを選択させる命令を備える請求項22に記載のコンピュータ可読媒体。
  24. プロセッサに、オフセット値の最終ブロックを判断させる前記命令が、プロセッサに、前記第1のオフセット値および前記第2のオフセット値のうちの少なくとも1つに重みを適用させる命令を備える請求項22に記載のコンピュータ可読媒体。
  25. プロセッサに、オフセット値の最終ブロックを判断させる前記命令が、プロセッサに、
    オフセット予測和を生成するために、予測値の前記第1のブロックと予測値の前記第2のブロックと前記第1のオフセット値と前記第2のオフセット値とを合計させ、
    予測誤差を生成するために前記オフセット予測和を2で除算させ、
    各サブ整数ピクセル位置について前記予測誤差を累積させ、
    各サブ整数ピクセル位置についての最終オフセット値を生成するために、各サブ整数ピクセル位置についての前記累積された予測誤差を前記予測誤差に対する寄与の数で除算させる命令を備える請求項22に記載のコンピュータ可読媒体。
  26. プロセッサに、オフセット値の最終ブロックを判断させる前記命令が、プロセッサに、
    第1のオフセット予測和を生成するために、予測値の前記第1のブロックと前記第1のオフセット値とを加算させ、
    第2のオフセット予測和を生成するために、予測値の前記第2のブロックと前記第2のオフセット値とを加算させ、
    第1の重み付けオフセット予測和を生成するために前記第1のオフセット予測和に第1の重みを乗算させ、第2の重み付けオフセット予測和を生成するために前記第2のオフセット予測和に第2の重みを乗算させ、
    最終重み付けオフセット予測和を生成するために、前記第1の重み付けオフセット予測和と前記第2の重み付けオフセット予測和とを加算させ、
    予測誤差を生成するために前記最終重み付けオフセット予測和を正規化項で除算させ、
    各サブ整数ピクセル位置について前記予測誤差を累積させ、
    各サブ整数ピクセル位置についての最終オフセット値を生成するために、各サブ整数ピクセル位置についての前記累積された予測誤差を前記予測誤差に対する寄与の数で除算させる命令を備える請求項22に記載のコンピュータ可読媒体。
  27. プロセッサに、オフセット値の最終ブロックを判断させる前記命令が、プロセッサに、
    前記コーディングされた現在のビデオ・ブロックを含むコード化ビット・ストリームの一部として、オフセット値の前記最終ブロックを符号化させる命令を備える請求項22に記載のコンピュータ可読媒体。
  28. ソース・デバイスから宛先デバイスへの前記コード化ビット・ストリームの送信を行わせる命令をさらに備える請求項27に記載のコンピュータ可読媒体。
  29. プロセッサにオフセット値の前記最終ブロックを符号化させる前記命令が、プロセッサに、オフセット値の前記最終ブロックのオフセット値の整数部分に第1のビット数を割り当てさせ、オフセット値の前記最終ブロックの前記オフセット値の分数部分に第2のビット数を割り当てさせる命令を備え、前記第1のビット数および前記第2のビット数が、前記整数部分の絶対値に基づいて判断される請求項27に記載のコンピュータ可読媒体。
  30. オフセット値の前記最終ブロックが、整数ピクセル・ロケーションについての1つのオフセット値と、異なるサブ整数ピクセル・ロケーションについてのいくつかのオフセット値とを含む請求項27に記載のコンピュータ可読媒体。
  31. 少なくとも1つの最終オフセット値が、15個の異なるサブ整数ピクセル・ロケーションについての15個の異なるオフセット値を含む請求項30に記載のコンピュータ可読媒体。
  32. ビデオデータを符号化する装置であって、
    参照データの第1のリスト内の第1の参照ビデオ・ユニットに基づいてサブ整数ピクセル位置に関連する予測値の第1のブロックを補間し、参照データの第2のリスト内の第2の参照ビデオ・ユニットに基づいて前記サブ整数ピクセル位置に関連する予測値の第2のブロックを補間するための手段と、
    サブ整数ピクセル位置について、予測値の前記第1のブロックと前記現在のビデオ・ブロックとに基づいて第1のオフセット値を計算し、前記第1のオフセット値と予測値の前記第2のブロックとに基づいて第2のオフセット値を計算するための手段と、
    予測値の前記第1のブロックと予測値の前記第2のブロックと前記第1のオフセット値と前記第2のオフセット値とに基づいて、オフセット値の最終ブロックを判断するための手段と、
    オフセット値の前記最終ブロックに基づいて前記現在のビデオ・ブロックを符号化するための手段と
    を備える装置。
  33. 予測値の前記第1のブロックを補間し、予測値の前記第2のブロックを補間するための前記手段が、固定補間フィルタによって実行される請求項32に記載の装置。
  34. オフセット値の最終ブロックを判断するための前記手段が、
    前記第1のオフセット値および前記第2のオフセット値のうちの少なくとも1つに重みを適用するための手段
    を備える請求項32に記載の装置。
  35. オフセット値の最終ブロックを判断するための前記手段が、
    オフセット予測和を生成するために、予測値の前記第1のブロックと予測値の前記第2のブロックと前記第1のオフセット値と前記第2のオフセット値とを合計するための手段と、
    予測誤差を生成するために前記オフセット予測和を2で除算するための手段と、
    各サブ整数ピクセル位置について前記予測誤差を累積するための手段と、
    各サブ整数ピクセル位置についての最終オフセット値を生成するために、各サブ整数ピクセル位置についての前記累積された予測誤差を前記予測誤差に対する寄与の数で除算するための手段と
    を備える請求項32に記載の装置。
  36. オフセット値の最終ブロックを判断するための前記手段が、
    第1のオフセット予測和を生成するために、予測値の前記第1のブロックと前記第1のオフセット値とを加算するための手段と、
    第2のオフセット予測和を生成するために、予測値の前記第2のブロックと前記第2のオフセット値とを加算するための手段と、
    第1の重み付けオフセット予測和を生成するために前記第1のオフセット予測和に第1の重みを乗算し、第2の重み付けオフセット予測和を生成するために前記第2のオフセット予測和に第2の重みを乗算するための手段と、
    最終重み付けオフセット予測和を生成するために、前記第1の重み付けオフセット予測和と前記第2の重み付けオフセット予測和とを加算するための手段と、
    予測誤差を生成するために前記最終重み付けオフセット予測和を正規化項で除算するための手段と、
    各サブ整数ピクセル位置について前記予測誤差を累積するための手段と、
    各サブ整数ピクセル位置についての最終オフセット値を生成するために、各サブ整数ピクセル位置についての前記累積された予測誤差を前記予測誤差に対する寄与の数で除算するための手段と、
    を備える請求項32に記載の装置。
  37. 前記コーディングされた現在のビデオ・ブロックを含むコード化ビット・ストリームの一部としてオフセット値の前記最終ブロックを符号化するための手段をさらに備える請求項32に記載の装置。
  38. 前記コード化ビット・ストリームをソース・デバイスから宛先デバイスに送信するための手段をさらに備える請求項37に記載の装置。
  39. オフセット値の前記最終ブロックを符号化するための前記手段が、オフセット値の前記最終ブロックのオフセット値の整数部分に第1のビット数を割り当て、オフセット値の前記最終ブロックの前記オフセット値の分数部分に第2のビット数を割り当てるための手段を備え、前記第1のビット数および前記第2のビット数が、前記整数部分の絶対値に基づいて判断される請求項37に記載の装置。
  40. オフセット値の前記最終ブロックが、整数ピクセル・ロケーションについての1つのオフセット値と、異なるサブ整数ピクセル・ロケーションについてのいくつかのオフセット値とを含む請求項37に記載の装置。
  41. オフセット値の前記最終ブロックが、15個の異なるサブ整数ピクセル・ロケーションについての15個の異なるオフセット値を含む請求項40に記載の装置。
  42. ビデオ符号化方法であって、
    エンコーダを介して、オフセットを使用せずに、シーケンス・フィルタを使用して現在のフレームを第1のパスとして符号化することと、
    id=0をもつすべての参照フレームが前記現在のフレームから同数のフレームだけ分離されている場合、
    エンコーダを介して、ピクチャ順序コンテンツ(POC)重み付け参照フレームに対して、オフセットを使用せずに、シーケンス・フィルタを使用して前記現在のフレームをPOCパスとして符号化することと、
    前記POCパスのレートひずみ特性が前記第1のパスのレートひずみ特性よりも低いレートひずみコスト値を規定する場合、
    符号化のために前記POC重み付け参照フレームを使用することと、
    前記POCパスの前記レートひずみ特性を変数として記憶することと、
    前記第1のパスの前記レートひずみ特性が、前記POCパスの前記レートひずみ特性よりも低いレートひずみコスト値を規定する場合、前記第1のパスの前記レートひずみ特性を前記変数として記憶することと、
    id=0をもつすべての参照フレームが前記現在のフレームから同数のフレームだけ分離されていない場合、前記第1のパスの前記レートひずみ特性を前記変数として記憶することと、
    エンコーダを介して、前記現在のフレームに対してフレーム・フィルタとオフセットとを計算することと、
    エンコーダを介して、計算された前記フレーム・フィルタとオフセットとを使用して前記現在のフレームを第2のパスとして符号化することと、
    前記第2のパスのレートひずみ特性が、前記変数に記憶された前記レートひずみ特性よりも低いレートひずみコスト値を規定する場合、
    前記第2のパスの前記レートひずみ特性を前記変数として記憶することと、
    量子化ステップを1だけ増加させ、計算された前記フレーム・フィルタとオフセットとを使用して、前記現在のフレームを第3のパスとして符号化することと、
    前記第2のパスの前記レートひずみ特性が、前記変数に記憶された前記レートひずみ特性よりも低いレートひずみコスト値を規定しない場合、前記量子化ステップを1だけ増加させ、オフセットを使用せずに、前記シーケンス・フィルタを使用して前記現在のフレームを前記第3のパスとして符号化することと、
    前記第3のパスのレートひずみ特性が、前記変数に記憶された前記レートひずみ特性よりも低いレートひずみコスト値を規定する場合、前記第3のパスの前記符号化を前記ビット・ストリームに加算することと、
    前記第3のパスの前記レートひずみ特性が、前記変数に記憶された前記レートひずみ特性よりも低いレートひずみコスト値を規定しない場合、前記変数の前記符号化を前記ビット・ストリームに加算することと、
    エンコーダを介して、次のフレームを符号化するためにシーケンス・フィルタを計算することと、
    を備えるビデオ符号化方法。
  43. ビデオデータを符号化する装置であって、
    オフセットを使用せずに、シーケンス・フィルタを使用して現在のフレームを第1のパスとして符号化することと、
    id=0をもつすべての参照フレームが前記現在のフレームから同数のフレームだけ分離されている場合、
    ピクチャ順序コンテンツ(POC)重み付け参照フレームに対して、オフセットを使用せずに、シーケンス・フィルタを使用して前記現在のフレームをPOCパスとして符号化することと、
    前記POCパスのレートひずみ特性が前記第1のパスのレートひずみ特性よりも低いレートひずみコスト値を規定する場合、
    符号化するために前記POC重み付け参照フレームを使用することと、
    前記POCパスの前記レートひずみ特性を変数として記憶することと、
    前記第1のパスの前記レートひずみ特性が、前記POCパスの前記レートひずみ特性よりも低いレートひずみコスト値を規定する場合、前記第1のパスの前記レートひずみ特性を前記変数として記憶することと、
    id=0をもつすべての参照フレームが前記現在のフレームから同数のフレームだけ分離されていない場合、前記第1のパスの前記レートひずみ特性を前記変数として記憶することと、
    前記現在のフレームに対してフレーム・フィルタとオフセットとを計算することと、
    計算された前記フレーム・フィルタとオフセットとを使用して前記現在のフレームを第2のパスとして符号化することと、
    前記第2のパスのレートひずみ特性が、前記変数に記憶された前記レートひずみ特性よりも低いレートひずみコスト値を規定する場合、
    前記第2のパスの前記レートひずみ特性を前記変数として記憶することと、
    量子化ステップを1だけ増加させ、計算された前記フレーム・フィルタとオフセットとを使用して、前記現在のフレームを第3のパスとして符号化することと、
    前記第2のパスの前記レートひずみ特性が、前記変数に記憶された前記レートひずみ特性よりも低いレートひずみコスト値を規定しない場合、前記量子化ステップを1だけ増加させ、オフセットを使用せずに、前記シーケンス・フィルタを使用して前記現在のフレームを前記第3のパスとして符号化することと、
    前記第3のパスのレートひずみ特性が、前記変数に記憶された前記レートひずみ特性よりも低いレートひずみコスト値を規定する場合、前記第3のパスの前記符号化を前記ビット・ストリームに加算することと、
    前記第3のパスの前記レートひずみ特性が、前記変数に記憶された前記レートひずみ特性よりも低いレートひずみコスト値を規定しない場合、前記変数の前記符号化を前記ビット・ストリームに加算することと、
    次のフレームを符号化するためにシーケンス・フィルタを計算することと、
    を行うビデオ・エンコーダを備える装置。
  44. 実行時に、ビデオ・エンコーダ内のプロセッサに、
    オフセットを使用せずに、シーケンス・フィルタを使用して現在のフレームを第1のパスとして符号化させ、
    id=0をもつすべての参照フレームが前記現在のフレームから同数のフレームだけ分離されている場合、
    ピクチャ順序コンテンツ(POC)重み付け参照フレームに対して、オフセットを使用せずに、シーケンス・フィルタを使用して前記現在のフレームをPOCパスとして符号化させ、
    前記POCパスのレートひずみ特性が前記第1のパスのレートひずみ特性よりも低いレートひずみコスト値を規定する場合、
    符号化するために前記POC重み付け参照フレームを使用させ、
    前記POCパスの前記レートひずみ特性を変数として記憶させ、
    前記第1のパスの前記レートひずみ特性が、前記POCパスの前記レートひずみ特性よりも低いレートひずみコスト値を規定する場合、前記第1のパスの前記レートひずみ特性を前記変数として記憶させ、
    id=0をもつすべての参照フレームが前記現在のフレームから同数のフレームだけ分離されていない場合、前記第1のパスの前記レートひずみ特性を前記変数として記憶させ、
    前記現在のフレームに対してフレーム・フィルタとオフセットとを計算させ、
    計算された前記フレーム・フィルタとオフセットとを使用して前記現在のフレームを第2のパスとして符号化させ、
    前記第2のパスのレートひずみ特性が、前記変数に記憶された前記レートひずみ特性よりも低いレートひずみコスト値を規定する場合、
    前記第2のパスの前記レートひずみ特性を前記変数として記憶させ、
    量子化ステップを1だけ増加させ、計算された前記フレーム・フィルタとオフセットとを使用して、前記現在のフレームを第3のパスとして符号化させ、
    前記第2のパスの前記レートひずみ特性が、前記変数に記憶された前記レートひずみ特性よりも低いレートひずみコスト値を規定しない場合、前記量子化ステップを1だけ増加させ、オフセットを使用せずに、前記シーケンス・フィルタを使用して前記現在のフレームを前記第3のパスとして符号化させ、
    前記第3のパスのレートひずみ特性が、前記変数に記憶された前記レートひずみ特性よりも低いレートひずみコスト値を規定する場合、前記第3のパスの前記符号化を前記ビット・ストリームに加算させ、
    前記第3のパスの前記レートひずみ特性が、前記変数に記憶された前記レートひずみ特性よりも低いレートひずみコスト値を規定しない場合、前記変数の前記符号化を前記ビット・ストリームに加算させ、
    次のフレームを符号化するためにシーケンス・フィルタを計算させる、コンピュータ可読媒体上に符号化された命令を備えるコンピュータ可読媒体。
  45. ビデオデータを符号化する装置であって、
    エンコーダを介して、オフセットを使用せずに、シーケンス・フィルタを使用して現在のフレームを第1のパスとして符号化するための手段と、
    id=0をもつすべての参照フレームが前記現在のフレームから同数のフレームだけ分離されている場合、
    エンコーダを介して、ピクチャ順序コンテンツ(POC)重み付け参照フレームに対して、オフセットを使用せずに、シーケンス・フィルタを使用して前記現在のフレームをPOCパスとして符号化するための手段と、
    前記POCパスのレートひずみ特性が前記第1のパスのレートひずみ特性よりも低いレートひずみコスト値を規定する場合、
    符号化のために前記POC重み付け参照フレームを使用するための手段と、
    前記POCパスの前記レートひずみ特性を変数として記憶するための手段と、
    前記第1のパスの前記レートひずみ特性が、前記POCパスの前記レートひずみ特性よりも低いレートひずみコスト値を規定する場合、前記第1のパスの前記レートひずみ特性を前記変数として記憶するための手段と、
    id=0をもつすべての参照フレームが前記現在のフレームから同数のフレームだけ分離されていない場合、前記第1のパスの前記レートひずみ特性を前記変数として記憶するための手段と、
    エンコーダを介して、前記現在のフレームに対してフレーム・フィルタとオフセットとを計算するための手段と、
    エンコーダを介して、計算された前記フレーム・フィルタとオフセットとを使用して前記現在のフレームを第2のパスとして符号化するための手段と、
    前記第2のパスのレートひずみ特性が、前記変数に記憶された前記レートひずみ特性よりも低いレートひずみコスト値を規定する場合、
    前記第2のパスの前記レートひずみ特性を前記変数として記憶するための手段と、
    量子化ステップを1だけ増加させ、計算された前記フレーム・フィルタとオフセットとを使用して、前記現在のフレームを第3のパスとして符号化するための手段と、
    前記第2のパスの前記レートひずみ特性が、前記変数に記憶された前記レートひずみ特性よりも低いレートひずみコスト値を規定しない場合、前記量子化ステップを1だけ増加させ、オフセットを使用せずに、前記シーケンス・フィルタを使用して前記現在のフレームを前記第3のパスとして符号化するための手段と、
    前記第3のパスのレートひずみ特性が、前記変数に記憶された前記レートひずみ特性よりも低いレートひずみコスト値を規定する場合、前記第3のパスの前記符号化を前記ビット・ストリームに加算するための手段と、
    前記第3のパスの前記レートひずみ特性が、前記変数に記憶された前記レートひずみ特性よりも低いレートひずみコスト値を規定しない場合、前記変数の前記符号化を前記ビット・ストリームに加算するための手段と、
    エンコーダを介して、次のフレームを符号化するためにシーケンス・フィルタを計算するための手段と、
    を備える装置。
JP2011529159A 2008-09-23 2009-09-22 切替え補間フィルタにおけるオフセット計算 Expired - Fee Related JP5730770B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US9950908P 2008-09-23 2008-09-23
US61/099,509 2008-09-23
US12/509,235 2009-07-24
US12/509,235 US8750378B2 (en) 2008-09-23 2009-07-24 Offset calculation in switched interpolation filters
PCT/US2009/057831 WO2010039492A2 (en) 2008-09-23 2009-09-22 Offset calculation in switched interpolation filters

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2013041958A Division JP5646668B2 (ja) 2008-09-23 2013-03-04 切替え補間フィルタにおけるオフセット計算

Publications (2)

Publication Number Publication Date
JP2012505565A true JP2012505565A (ja) 2012-03-01
JP5730770B2 JP5730770B2 (ja) 2015-06-10

Family

ID=42037650

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2011529159A Expired - Fee Related JP5730770B2 (ja) 2008-09-23 2009-09-22 切替え補間フィルタにおけるオフセット計算
JP2013041958A Expired - Fee Related JP5646668B2 (ja) 2008-09-23 2013-03-04 切替え補間フィルタにおけるオフセット計算

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2013041958A Expired - Fee Related JP5646668B2 (ja) 2008-09-23 2013-03-04 切替え補間フィルタにおけるオフセット計算

Country Status (7)

Country Link
US (1) US8750378B2 (ja)
EP (1) EP2342898A2 (ja)
JP (2) JP5730770B2 (ja)
KR (1) KR101313956B1 (ja)
CN (1) CN102265619B (ja)
TW (1) TW201026077A (ja)
WO (1) WO2010039492A2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPWO2011086836A1 (ja) * 2010-01-12 2013-05-16 シャープ株式会社 符号化装置、復号装置、および、データ構造

Families Citing this family (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9654792B2 (en) 2009-07-03 2017-05-16 Intel Corporation Methods and systems for motion vector derivation at a video decoder
US9507827B1 (en) * 2010-03-25 2016-11-29 Excalibur Ip, Llc Encoding and accessing position data
KR101847072B1 (ko) * 2010-04-05 2018-04-09 삼성전자주식회사 영상 부호화 방법 및 장치, 비디오 복호화 방법 및 장치
JP5784596B2 (ja) * 2010-05-13 2015-09-24 シャープ株式会社 予測画像生成装置、動画像復号装置、及び、動画像符号化装置
US8976856B2 (en) * 2010-09-30 2015-03-10 Apple Inc. Optimized deblocking filters
US9532059B2 (en) 2010-10-05 2016-12-27 Google Technology Holdings LLC Method and apparatus for spatial scalability for video coding
US20120134425A1 (en) * 2010-11-29 2012-05-31 Faouzi Kossentini Method and System for Adaptive Interpolation in Digital Video Coding
US10045046B2 (en) * 2010-12-10 2018-08-07 Qualcomm Incorporated Adaptive support for interpolating values of sub-pixels for video coding
EP4250732B1 (en) 2011-01-07 2024-03-20 Nokia Technologies Oy Motion prediction in video coding
BR112013017490A2 (pt) * 2011-01-07 2017-10-24 Samsung Electronics Co Ltd método de previsão de vídeo, aparelho de previsão de vídeo, e mídia de gravação legível por computador
US8693547B2 (en) * 2011-04-06 2014-04-08 Google Inc. Apparatus and method for coding using motion vector segmentation
US9008170B2 (en) 2011-05-10 2015-04-14 Qualcomm Incorporated Offset type and coefficients signaling method for sample adaptive offset
JP5768491B2 (ja) * 2011-05-17 2015-08-26 ソニー株式会社 画像処理装置および方法、プログラム、並びに記録媒体
US8989256B2 (en) 2011-05-25 2015-03-24 Google Inc. Method and apparatus for using segmentation-based coding of prediction information
WO2012176910A1 (ja) 2011-06-23 2012-12-27 シャープ株式会社 オフセット復号装置、オフセット符号化装置、画像フィルタ装置、および、データ構造
AU2012277160B2 (en) * 2011-06-27 2016-12-15 Sun Patent Trust Image encoding method, image decoding method, image encoding device, image decoding device, and image encoding/decoding device
BR112014007494B1 (pt) 2011-09-29 2022-05-31 Sharp Kabushiki Kaisha Dispositivo de decodificação de imagem, método de decodificação de imagem, e dispositivo de codificação de imagem
CN108650508B (zh) * 2011-09-29 2022-07-29 夏普株式会社 图像解码装置、图像解码方法、图像编码装置及图像编码方法
LT3197164T (lt) * 2011-10-17 2021-02-10 Kabushiki Kaisha Toshiba Dekodavimo aparatas ir dekodavimo būdas
US10027982B2 (en) * 2011-10-19 2018-07-17 Microsoft Technology Licensing, Llc Segmented-block coding
JP2013102297A (ja) 2011-11-07 2013-05-23 Canon Inc 画像符号化方法、画像符号化装置及びプログラム、画像復号方法、画像復号装置及びプログラム
JP5871628B2 (ja) * 2011-11-07 2016-03-01 キヤノン株式会社 画像符号化装置、画像符号化方法及びプログラム、画像復号装置、画像復号方法及びプログラム
US9247257B1 (en) 2011-11-30 2016-01-26 Google Inc. Segmentation based entropy encoding and decoding
CN110830797B (zh) * 2012-01-18 2023-09-15 韩国电子通信研究院 视频解码装置、视频编码装置和传输比特流的方法
US9094681B1 (en) 2012-02-28 2015-07-28 Google Inc. Adaptive segmentation
US9332276B1 (en) 2012-08-09 2016-05-03 Google Inc. Variable-sized super block based direct prediction mode
US9380298B1 (en) 2012-08-10 2016-06-28 Google Inc. Object-based intra-prediction
US9571858B2 (en) * 2013-07-19 2017-02-14 Futurewei Technologies, Inc. Method and apparatus of derivation for a binary partition pattern
US11463689B2 (en) 2015-06-18 2022-10-04 Qualcomm Incorporated Intra prediction and intra mode coding
US20160373770A1 (en) * 2015-06-18 2016-12-22 Qualcomm Incorporated Intra prediction and intra mode coding
US10841593B2 (en) 2015-06-18 2020-11-17 Qualcomm Incorporated Intra prediction and intra mode coding
KR102402671B1 (ko) 2015-09-09 2022-05-26 삼성전자주식회사 보간 필터의 연산 복잡도를 조절할 수 있는 영상 처리 장치, 영상 보간 방법 및 영상 부호화 방법
US10116957B2 (en) * 2016-09-15 2018-10-30 Google Inc. Dual filter type for motion compensated prediction in video coding
CN116170584A (zh) * 2017-01-16 2023-05-26 世宗大学校产学协力团 影像编码/解码方法
US10455253B1 (en) * 2017-02-28 2019-10-22 Google Llc Single direction long interpolation filter
BR112020008896A2 (pt) * 2017-11-07 2020-10-20 Huawei Technologies Co., Ltd. filtro de interpolação para um aparelho e método de interpredição para codificação de vídeo
US11277644B2 (en) 2018-07-02 2022-03-15 Qualcomm Incorporated Combining mode dependent intra smoothing (MDIS) with intra interpolation filter switching
US11303885B2 (en) 2018-10-25 2022-04-12 Qualcomm Incorporated Wide-angle intra prediction smoothing and interpolation
MX2021005170A (es) * 2018-12-31 2021-07-15 Panasonic Ip Corp America Dispositivo de codificacion, dispositivo de decodificacion, metodo de codificacion y metodo de decodificacion.
JP7176094B2 (ja) * 2019-03-11 2022-11-21 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 符号化装置及び符号化方法

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6052148A (en) * 1996-09-13 2000-04-18 Nec Corporation Video and audio data compression system
US6950469B2 (en) * 2001-09-17 2005-09-27 Nokia Corporation Method for sub-pixel value interpolation
US7349473B2 (en) * 2002-07-09 2008-03-25 Nokia Corporation Method and system for selecting interpolation filter type in video coding
US7496234B2 (en) * 2003-06-20 2009-02-24 Microsoft Corporation System and method for seamless multiplexing of embedded bitstreams
MXPA05013727A (es) * 2003-06-25 2006-07-06 Thomson Licensing Metodo y aparato para el calculo de prediccion ponderada con el uso de diferencial de cuadro desplazado.
NO319629B1 (no) 2003-11-28 2005-09-05 Tandberg Telecom As Fremgangsmate for korrigering av interpolerte pikselverdier
NO320114B1 (no) 2003-12-05 2005-10-24 Tandberg Telecom As Forbedret utregning av interpolerte pixelverdier
FR2881898A1 (fr) * 2005-02-10 2006-08-11 Thomson Licensing Sa Procede et dispositif de codage d'une image video en mode inter ou intra
EP2127391A2 (en) 2007-01-09 2009-12-02 Nokia Corporation Adaptive interpolation filters for video coding
US20080298702A1 (en) * 2007-06-04 2008-12-04 Aricent Inc. Fixed rate JPEG encoding

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
JPN7012003631; Karczewicz,M.,Ye,Y., and Chen,P.: 'Switched Interpolation Filter with Offset' ITU TELECOMMUNICATIONSTANDARDIZATION SECTOR STUDY PERIOD 2005-2008 Q6/16 STUDY GROUP 16 - CONTRIBUTI , 200804 *
JPN7012003632; Motta,G.,Ye,Y., and Karczewicz,M: 'Improved Filter Selection for B-slices in E-AIF' ITU - Telecommunications Standardization SectorSTUDY GROUP 16 Question 6Video Coding Experts Group ( , 20080712 *
JPN7013003876; Karczewicz,M.,Ye,Y., and Chen,P.,: 'Switched Interpolation Filter with Offset' ITU TELECOMMUNICATION STANDARDIZATION SECTOR STUDY GROUP 16 QUESTION 6 VCEG-AI35 , 20080716, P.1-2 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPWO2011086836A1 (ja) * 2010-01-12 2013-05-16 シャープ株式会社 符号化装置、復号装置、および、データ構造

Also Published As

Publication number Publication date
CN102265619A (zh) 2011-11-30
WO2010039492A3 (en) 2011-12-22
KR20110074565A (ko) 2011-06-30
CN102265619B (zh) 2014-06-18
JP5730770B2 (ja) 2015-06-10
EP2342898A2 (en) 2011-07-13
KR101313956B1 (ko) 2013-10-01
WO2010039492A2 (en) 2010-04-08
TW201026077A (en) 2010-07-01
JP2013168949A (ja) 2013-08-29
JP5646668B2 (ja) 2014-12-24
US8750378B2 (en) 2014-06-10
US20100074332A1 (en) 2010-03-25

Similar Documents

Publication Publication Date Title
JP5646668B2 (ja) 切替え補間フィルタにおけるオフセット計算
US8804831B2 (en) Offsets at sub-pixel resolution
JP5536034B2 (ja) 固定フィルタまたは適応フィルタに基づくビデオ・コーディングのためのレートひずみ定義補間
JP5619725B2 (ja) ビデオコーディングにおけるサブピクセル解像度のための補間フィルタサポート
JP5547198B2 (ja) 補間フィルタおよびオフセットを用いたデジタルビデオコーディング
JP5180366B2 (ja) ビデオコーディングにおけるサブピクセル位置の補間フィルタリングに対する対称性
JP5575747B2 (ja) 動き補償プロセスにおいて予測ブロックを発生する方法、装置、およびコンピュータ可読記憶媒体
JP2011517237A (ja) ビデオ・コーディングにおける補間のための予測技法
KR101469338B1 (ko) 혼합된 탭 필터들
WO2008149327A2 (en) Method and apparatus for motion-compensated video signal prediction
RU2477576C2 (ru) Поддержка интерполяционного фильтра для субпиксельного разрешения в видеокодировании

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120904

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20121204

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20121211

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20130204

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20130212

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130304

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20130521

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130924

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20131003

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20131022

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20140122

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20140129

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20140311

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20140318

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20140516

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150205

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150408

R150 Certificate of patent or registration of utility model

Ref document number: 5730770

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees