JP6301401B2 - ビデオコード化のためのサブ画素の値を補間するための適応サポート - Google Patents

ビデオコード化のためのサブ画素の値を補間するための適応サポート Download PDF

Info

Publication number
JP6301401B2
JP6301401B2 JP2016131619A JP2016131619A JP6301401B2 JP 6301401 B2 JP6301401 B2 JP 6301401B2 JP 2016131619 A JP2016131619 A JP 2016131619A JP 2016131619 A JP2016131619 A JP 2016131619A JP 6301401 B2 JP6301401 B2 JP 6301401B2
Authority
JP
Japan
Prior art keywords
integer pixel
sub
full
filter
positions
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.)
Active
Application number
JP2016131619A
Other languages
English (en)
Other versions
JP2016201814A (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 JP2016201814A publication Critical patent/JP2016201814A/ja
Application granted granted Critical
Publication of JP6301401B2 publication Critical patent/JP6301401B2/ja
Active 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/196Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters
    • H04N19/197Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters including determination of the initial value of an encoding parameter
    • 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
    • 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/117Filters, e.g. for pre-processing or post-processing
    • 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/15Data rate or code amount at the encoder output by monitoring actual compressed data size at the memory before deciding storage at the transmission buffer
    • 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/154Measured or subjectively estimated visual quality after decoding, e.g. measurement of distortion
    • 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/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/182Methods 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 a pixel
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation

Landscapes

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

Description

本出願は、その内容全体が参照により本明細書に組み込まれる、2010年12月10日に出願された米国仮出願第61/422,051号の利益を主張する。
本開示は、ビデオコード化の分野に関し、例えば、ビデオデータをコード化及び復号することに関する。
デジタルビデオ機能は、デジタルテレビジョン、デジタルダイレクトブロードキャストシステム、無線電話ハンドセットなどのワイヤレス通信機器、ワイヤレスブロードキャストシステム、携帯情報端末(PDA)、ラップトップ又はデスクトップコンピュータ、デジタルカメラ、デジタル記録機器、ビデオゲーム機器、ビデオゲームコンソールなどを含む、広範囲にわたる機器に組み込まれ得る。デジタルビデオ機器は、デジタルビデオをより効率的に送信及び受信するために、MPEG−2、MPEG−4、又はH.264/MPEG−4、Part10、Advanced Video Coding(AVC)などのビデオ圧縮技法を実装する。ビデオ圧縮技法は、ビデオシーケンスに固有の冗長性を低減又は除去するために空間的予測及び時間的予測を実行する。
本開示では、ビデオコード化及び/又は復号プロセスのインター予測段階中にエンコーダ及びデコーダによって適用され得るフィルタ処理技法について説明する。説明するフィルタ処理技法は、分数画素補間(fractional pixel interpolation)中に使用される予測データの精度を向上させ得、場合によっては、コード化利得を増加させ得る。本開示には、フル画素位置の様々な組合せに補間フィルタを適用することに基づいてサブ画素位置についての値を補間する技法を含む、幾つかの態様がある。補間フィルタが適用される値は、一般に「サポート」と呼ばれる。これらの技法はまた、例えば、前にコード化されたフレーム又はフレームの現在のコード化などのファクタに基づいて、サブ画素位置のための補間フィルタを適用すべきサポートを選択することを含む。
一態様では、ビデオデータをコード化する方法は、参照サンプルのフル整数画素位置についての値を受信することを備える。本方法はまた、フル整数画素位置のうちの1つの第1のサブ整数画素についての値を計算するために、フル整数画素位置についての値の第1のセットに補間フィルタを適用することを含む。更に、本方法はまた、フル整数画素位置のうちの1つの第2の異なるサブ整数画素についての値を計算するために、フル整数画素位置についての値の第2の異なるセットに補間フィルタを適用することを含む。本方法は、第1のサブ整数画素と第2のサブ整数画素とのうちの一方を指す動きベクトルを使用して画素のブロックをコード化することを更に備える。
別の態様では、機器は、参照サンプルのフル整数画素位置についての値を受信するように構成されたビデオコーダを備える。ビデオコーダはまた、フル整数画素位置のうちの1つの第1のサブ整数画素についての値を計算するために、フル整数画素位置についての値の第1のセットに補間フィルタを適用するように構成される。同様に、ビデオコーダは、フル整数画素位置のうちの1つの第2の異なるサブ整数画素についての値を計算するために、フル整数画素位置についての値の第2の異なるセットに補間フィルタを適用するように構成される。ビデオコーダは、第1のサブ整数画素と第2のサブ整数画素とのうちの一方を指す動きベクトルを使用して画素のブロックをコード化するように更に構成される。
別の態様では、コンピュータ可読媒体は、ビデオコード化機器中で実行されたときに機器にビデオブロックをコード化させる命令を備える。特に、命令は、参照サンプルのフル整数画素位置についての値を受信することと、フル整数画素位置のうちの1つの第1のサブ整数画素についての値を計算するために、フル整数画素位置についての値の第1のセットに補間フィルタを適用することとを機器に行わせる。命令はまた、フル整数画素位置のうちの1つの第2の異なるサブ整数画素についての値を計算するために、フル整数画素位置についての値の第2の異なるセットに補間フィルタを適用することを機器に行わせる。命令は更に、第1のサブ整数画素と第2のサブ整数画素とのうちの一方を指す動きベクトルを使用して画素のブロックをコード化することを機器に行わせる。
別の態様では、参照サンプルのフル整数画素位置についての値を受信するための手段を備える機器が提供される。本機器は、フル整数画素位置のうちの1つの第1のサブ整数画素についての値を計算するために、フル整数画素位置についての値の第1のセットに補間フィルタを適用するための手段を更に備える。また、本機器は、フル整数画素位置のうちの1つの第2の異なるサブ整数画素についての値を計算するために、フル整数画素位置についての値の第2の異なるセットに補間フィルタを適用するための手段と、第1のサブ整数画素と第2のサブ整数画素とのうちの一方を指す動きベクトルを使用して画素のブロックをコード化するための手段とを備える。
更に別の態様では、ビデオデータを復号する方法は、フル画素位置を備える参照サンプルを受信することを備える。本方法はまた、参照サンプルのサブ整数画素についての値を補間するために使用される参照サンプルのフル整数画素位置のセットの指標を受信することを含む。更に、本方法はまた、参照サンプルのサブ整数画素の値を計算するために、フル整数画素位置のセットに補間フィルタを適用することを含む。本方法は、サブ整数画素の計算された値に対する画素のブロックを復号することを更に備える。
別の態様では、機器が、フル整数画素位置を備える参照サンプルを受信するように構成されたビデオデコーダを備える。ビデオデコーダはまた、参照サンプルのサブ整数画素についての値を補間するために使用される参照サンプルのフル整数画素位置のセットの指標を受信するように構成される。同様に、ビデオデコーダは、参照サンプルのサブ整数画素の値を計算するために、フル整数画素位置のセットに補間フィルタを適用するように構成される。ビデオデコーダは、サブ整数画素の計算された値に対する画素のブロックを復号するように更に構成される。
別の態様では、コンピュータ可読媒体が、ビデオコード化機器中で実行されたときに機器にビデオブロックをコード化させる命令を備える。特に、命令は、フル整数画素位置を備える参照サンプルを受信することと、参照サンプルのサブ整数画素についての値を補間するために使用される参照サンプルのフル整数画素位置のセットの指標を受信することとを機器に行わせる。命令はまた、参照サンプルのサブ整数画素の値を計算するために、フル整数画素位置のセットに補間フィルタを適用することを機器に行わせる。命令は、サブ整数画素の計算された値に対する画素のブロックを復号することを機器に更に行わせる。
別の態様では、機器が、フル画素位置を備える参照サンプルを受信するための手段と、参照サンプルのサブ整数画素についての値を補間するために使用すべき参照サンプルのフル整数画素位置のセットの指標を受信するための手段とを備える。本機器は、フル整数画素位置のセットを使用して参照サンプルのサブ整数画素の値を計算するための手段を更に備える。本機器は、サブ整数画素の計算された値に対する画素のブロックを復号するための手段を更に含む。
本開示で説明する技法は、ハードウェア、ソフトウェア、ファームウェア、又はそれらの任意の組合せで実装され得る。ソフトウェアで実行された場合、ソフトウェアは、マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、又はデジタル信号プロセッサ(DSP)、又は他の等価の集積若しくはディスクリート論理回路など、1つ以上のプロセッサを指すことがあるプロセッサで実行され得る。本技法を実行する命令を備えるソフトウェアは、最初にコンピュータ可読媒体に記憶され、プロセッサによってロードされ、実行され得る。
従って、本開示はまた、プロセッサに、本開示で説明する様々な技法のいずれかを実行させる命令を備えるコンピュータ可読媒体を企図する。場合によっては、コンピュータ可読媒体はコンピュータプログラム製品の一部を形成し得、コンピュータプログラム製品は、製造業者に販売され得、及び/又は機器中で使用され得る。コンピュータプログラム製品はコンピュータ可読媒体を含み得、場合によってはパッケージング材料をも含み得る。
本開示はまた、情報を搬送する電磁信号に適用され得る。例えば、電磁信号は、参照サンプルのサブ整数画素についての値を補間するために使用されるフル画素サポートに関係する情報を備え得る。幾つかの例では、信号は、本明細書で説明する技法を実装する機器から発生されるか、又はその機器によって送信され得る。他の例では、本開示は、本明細書で説明する技法を実施する機器において受信され得る信号に適用され得る。
本開示の1つ以上の態様の詳細を添付の図面及び以下の説明に記載する。本開示で説明する技法の他の特徴、目的、及び利点は、これらの説明及び図面、並びに特許請求の範囲から明らかになろう。
本開示の技法のうちの1つ又は複数を実施するために使用され得るビデオコード化及び復号システムの一例を示すブロック図。 図1のビデオエンコーダの一例を更に詳細に示すブロック図。 予測データに関連する整数画素位置と、補間予測データに関連するサブ画素位置との一例を示す概念図。 サブ整数画素位置に対する対角6画素フィルタサポートの一例を示す概念図。 サブ整数画素位置に対するx字形(x−shaped)12画素フィルタサポートの一例を示す概念図。 3つの水平サブ画素位置と3つの垂直サブ画素位置とに対する12画素フィルタサポートの一例を示す概念図。 サブ画素位置に対する12画素フィルタサポートの一例を示す概念図。 サブ整数画素位置に対する方形(square−shaped)4画素フィルタサポートの一例を示す概念図。 サブ整数画素位置に対する矩形(rectangular−shaped)6画素フィルタサポートの一例を示す概念図。 図1のビデオデコーダの一例を更に詳細に示すブロック図。 本開示に一致する画素フィルタサポートを利用するビデオエンコーダの例示的な動作を示す流れ図。 本開示に一致する画素フィルタサポートを利用するビデオエンコーダの別の例示的な動作を示す流れ図。 本開示に一致するサブ整数画素のためのフィルタサポートを決定する例示的な方法を示す流れ図。 本開示に一致するサブ整数画素のためのフィルタサポートを決定する別の例示的な方法を示す流れ図。 本開示に一致するフィルタサポートを利用するビデオデコーダの例示的な動作を示す流れ図。 本開示に一致するフィルタサポートを利用するビデオデコーダの別の例示的な動作を示す流れ図。
本開示では、ビデオコード化及び/又は復号プロセスのインター予測段階中にエンコーダとデコーダとによって適用され得るフィルタ処理技法について説明する。説明するフィルタ処理技法は、分数画素補間中に使用される予測データの精度を向上させ得、場合によっては、コード化利得を増加させ得る。本開示では、「サブ画素」「サブ整数画素」「分数画素」及び「サブペル」という用語を互換的に使用する。本開示には、任意の数のフル画素位置の任意の組合せに基づいてサブ画素位置を補間する技法と、前にコード化されたフレーム又はフレームの現在のコード化に基づいてサブ画素位置のための補間フィルタのためのサポートを選択するための技法とを含む、幾つかの態様がある。これら及び他の技法について以下で詳細に説明する。
ブロックベースのインターコード化は、ビデオシーケンスの連続するコード化単位のビデオブロック間の時間的冗長性を低減又は除去するために時間的予測を利用するコード化技法である。コード化単位は、ビデオフレーム、ビデオフレームのスライス、ピクチャのグループ、又は符号化ビデオブロックの別の定義された単位を備え得る。インターコード化の場合、ビデオエンコーダは、2つ以上の隣接するコード化単位のビデオブロック間の動きを推定するために動き推定及び動き補償を実行する。動き推定のための技法を使用して、ビデオエンコーダは、1つ以上の参照フレーム又は他のコード化単位中の対応する予測ビデオブロックに対するビデオブロックの変位を示し得る動きベクトルを生成する。動き補償のための技法を使用して、ビデオエンコーダは、1つ以上の参照フレーム又は他のコード化単位から予測ビデオブロックを生成するために動きベクトルを使用し得る。動き補償の後、ビデオエンコーダは、コード化されている元のビデオブロックから予測ビデオブロックを減算することによって残差ビデオブロックを計算し得る。
ビデオエンコーダはまた、残差ブロックの通信に関連するビットレートを更に低減するために、変換、量子化及びエントロピーコード化プロセスを適用し得る。変換技法は、離散コサイン変換(DCT)又は概念的に同様のプロセスを備え得る。代替的に、ウェーブレット変換、整数変換、又は他のタイプの変換が使用され得る。DCTプロセスでは、一例として、画素値のセットが、周波数領域における画素値のエネルギーを表し得る変換係数(transform coefficient)に変換され得る。ビデオエンコーダはまた、変換係数を量子化し得、それは、概して、対応する変換係数に関連するビット数を低減するプロセスを伴い得る。エントロピーコード化は、ビットストリームへの出力のためにデータをまとめて圧縮する1つ以上のプロセスを含み得、圧縮データは、例えば、一連のコード化モード、動き情報、コード化ブロックパターン、及び量子化された変換係数を含み得る。エントロピーコード化の例には、限定はしないが、コンテンツ適応型可変長コード化(CAVLC:content adaptive variable length coding)及びコンテキスト適応型バイナリ算術コード化(CABAC:context adaptive binary arithmetic coding)がある。
コード化ビデオブロックは、予測ブロックを作成又は識別するために使用され得る予測情報と、元のブロックを再現するために予測ブロックに適用され得るデータの残差ブロックとによって表され得る。予測情報は、予測データブロックを識別するために使用される1つ以上の動きベクトルを備え得る。動きベクトルを使用して、デコーダは、残差ブロックをコード化するために使用された予測ブロックを再構成することが可能であり得る。従って、残差ブロックのセットと動きベクトルのセット(場合によっては幾つかの追加のシンタックス)とが与えられれば、デコーダは、最初に符号化されたビデオフレームを再構成することができる。連続ビデオフレーム又は他のタイプのコード化単位がしばしば類似しているので、動き推定及び動き補償に基づくインターコード化は、過大なデータ損失なしに比較的高い圧縮量を達成することができる。符号化ビデオシーケンスは、残差データのブロック、(インター予測コード化されたときの)動きベクトル、イントラ予測のためのイントラ予測モードの指標、及び場合によっては、シンタックスのタイプなどの他のデータを備え得る。
インターコード化において達成され得る圧縮レベルのための予測精度を改善するために、サブ整数画素補間技法が開発されている。この場合、ビデオブロックをコード化するために使用される、動き補償中に生成される予測データは、サブ整数画素に対応し得、サブ整数画素の値は、動きベクトルが参照する基準ビデオフレーム又は他のコード化単位のビデオブロックのフル画素についての値から補間され得る。ビデオエンコーダは、補間技法を使用して、例えば、サポート、例えば、フル整数画素についての値及び/又は他のサブ整数画素位置の前にコード化された値のセットに補間フィルタを適用することによって、サブ整数画素位置についての値を計算し得る。サブ整数画素位置は、様々な例において、1/2画素、1/4画素、1/8画素、1/16画素、又は他の解像度など、様々な程度の解像度を有し得る。従って、ビデオエンコーダは、動き推定中に、サブ画素精度を有する動きベクトルを計算し得る。
図1は、本開示の技法のうちの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及び通信チャネル15を介して宛先機器16に送信され得る。モデム23は、信号変調のために設計された様々なミキサ、フィルタ、増幅器又は他の構成要素を含み得る。送信機24は、増幅器、フィルタ、及び1つ以上のアンテナを含む、データを送信するために設計された回路を含み得る。
宛先機器16の受信機26は通信チャネル15を介して情報を受信し、モデム27はその情報を復調する。送信機24と同様に、受信機26は、増幅器、フィルタ、及び1つ以上のアンテナを含む、データを受信するために設計された回路を含み得る。幾つかの例では、送信機24及び/又は受信機26は、受信回路と送信回路の両方を含む単一のトランシーバ構成要素内に組み込まれ得る。モデム27は、信号復調のために設計された様々なミキサ、フィルタ、増幅器又は他の構成要素を含み得る。幾つかの例では、モデム23及び27は、変調と復調の両方を実行するための構成要素を含み得る。
また、ビデオエンコーダ22によって実行されるビデオコード化プロセスは、動き推定と動き補償とを含み得るインター予測コード化中に本明細書で説明する技法のうちの1つ又は複数を実施し得る。ビデオデコーダ28によって実行されるビデオ復号プロセスはまた、復号プロセスの動き補償段階中にそのような技法を実行し得る。「コーダ」という用語は、本明細書では、ビデオ符号化又はビデオ復号を実行する専用コンピュータ機器又は装置を指すために使用される。「コーダ」という用語は、一般に、任意のビデオエンコーダ、ビデオデコーダ、又は複合エンコーダ/デコーダ(コーデック)を指す。「コード化」という用語は、コード化又は復号を指す。表示装置30は、復号されたビデオデータをユーザに対して表示し、陰極線管(CRT)、液晶ディスプレイ(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)などの他のプロトコルに準拠し得る。
ビデオエンコーダ22及びビデオデコーダ28はそれぞれ、1つ以上のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ディスクリート論理、ソフトウェア、ハードウェア、ファームウェア、又はそれらの任意の組合せとして実施され得る。本開示の技法のいずれか又は全てがソフトウェアで実施されるとき、実施する機器は、ソフトウェアのための命令を記憶及び/又は実行するためのハードウェア、例えば、命令を記憶するためのメモリと命令を実行するための1つ以上の処理ユニットとを更に含み得る。ビデオエンコーダ22及びビデオデコーダ28の各々は1つ以上のエンコーダ又はデコーダ中に含まれ得、そのいずれかはコード化機能及び復号機能を与える複合コーデックの一部としてそれぞれモバイル機器、加入者機器、ブロードキャスト機器、サーバなどに統合され得る。
ビデオシーケンスは、一般に、ビデオピクチャとも呼ばれる一連のビデオフレームを含む。ビデオエンコーダ22は、ビデオデータをコード化するために、個々のビデオフレーム内のビデオブロック上で動作する。ビデオブロックは、固定サイズ又は可変サイズを有し得、指定のコード化規格に応じてサイズが異なり得る。各ビデオフレームは一連のスライスを含む。ITU−T H.264規格では、例えば、各スライスは一連のマクロブロックを含み得、それらのマクロブロックはサブブロックに構成され得る。H.264規格は、ルーマ成分については16×16、8×8、又は4×4、及びクロマ成分については8×8など、様々なブロックサイズのイントラ予測をサポートし、ルーマ成分については16×16、16×8、8×16、8×8、8×4、4×8及び4×4、及びクロマ成分については対応するスケーリングされたサイズなど、様々なブロックサイズのインター予測をサポートする。ビデオブロックは、画素データのブロック、又は、例えば離散コサイン変換(DCT)若しくは概念的に同様の変換プロセスなどの変換プロセスの後の変換係数のブロックを備え得る。
小さいビデオブロックほど、より良い解像度が得られ、複数の高い詳細レベルを含むビデオフレームの複数の位置に対して使用され得る。一般に、マクロブロック及び様々なサブブロックはビデオブロックであると見なされ得る。更に、スライスは、マクロブロック及び/又はサブブロックなど、一連のビデオブロックであると見なされ得る。各スライスはビデオフレームの単独で復号可能な単位であり得る。代替的に、フレーム自体が復号可能な単位であり得るか、又はフレームの他の部分が復号可能な単位として定義され得る。「コード化単位」という用語は、フレーム全体、フレームのスライス、ビデオデータのブロック、又は使用されるコード化技法に従って定義される別の単独で復号可能な単位など、ビデオフレームの単独で復号可能な任意の単位を指す。
ビデオブロックをコード化するために、ビデオエンコーダ22は、イントラ予測又はインター予測を実行して、予測ブロックを生成する。ビデオエンコーダ22は、コード化されるべき元のビデオブロックから予測ブロックを減算して、残差ブロックを生成する。従って、残差ブロックは、コード化されているブロックと予測ブロックとの間の画素ごとの差を表し得る。ビデオエンコーダ22は、残差ブロックに対して変換を実行して、変換係数のブロックを生成し得る。イントラベース又はインターベースの予測コード化技法及び変換技法の後、ビデオエンコーダ22は変換係数を量子化し得る。量子化は、概して、係数を表すために使用されるデータ量をできるだけ低減するように係数を量子化するプロセスを指す。量子化の後、コンテキスト適応型可変長コード化(CAVLC)又はコンテキスト適応型バイナリ算術コード化(CABAC)など、エントロピーコード化方法に従ってエントロピーコード化が実行され得る。ビデオエンコーダ22によって実行されるコード化プロセスのさらなる詳細について、図2に関して以下で説明する。
高効率ビデオコード化(HEVC)と現在呼ばれる、新しいビデオコード化規格を開発するための取り組みが現在進行中である。この今度の規格はH.265とも呼ばれる。この規格化の取り組みは、HEVCテストモデル(HM:HEVC Test Model)と呼ばれるビデオコード化機器のモデルに基づく。HMは、例えば、ITU−T H.264/AVCによる機器に勝るビデオコード化機器の幾つかの能力を仮定する。例えば、H.264は9つのイントラ予測コード化モードを提供するが、HMは33個ものイントラ予測コード化モードを提供する。
HMは、ビデオデータのブロックをコード化単位(CU:coding unit)と称する。ビットストリーム内のシンタックスデータが、画素の数に関して最大のコード化単位である最大コード化単位(LCU:largest coding unit)を定義し得る。概して、CUは、CUがサイズの差異を有しないことを除いて、H.264のマクロブロックと同様の目的を有する。従って、CUは、サブCUに分割され得る。概して、本開示におけるCUへの言及は、ピクチャの最大コード化単位又はLCUのサブCUを指すことがある。LCUはサブCUに分割され得、各サブCUはサブCUに分割され得る。ビットストリームのためのシンタックスデータは、CU深さと呼ばれる、LCUが分割され得る最大回数を定義し得る。それに応じて、ビットストリームは最小コード化単位(SCU:smallest coding unit)をも定義し得る。本開示ではまた、CU、予測単位(PU:prediction unit)、又は変換単位(TU:transform unit)のいずれかを指すために「ブロック」という用語を使用する。
LCUは4分木データ構造に関連付けられ得る。概して、4分木データ構造はCUごとに1つのノードを含み、ルートノードはLCUに対応する。CUが4つのサブCUに分割された場合、CUに対応するノードは4つのリーフノードを含み、リーフノードの各々はサブCUのうちの1つに対応する。4分木データ構造の各ノードは、対応するCUのシンタックスデータを与え得る。例えば、4分木のノードは、そのノードに対応するCUがサブCUに分割されるかどうかを示す分割フラグを含み得る。CUのシンタックス要素は、再帰的に定義され得、CUがサブCUに分割されるかどうかに依存し得る。
分割されないCUは、1つ以上の予測単位(PU)を含み得る。概して、PUは、対応するCUの全部又は一部分を表し、そのPUの参照サンプルを取り出すためのデータを含む。例えば、PUがイントラモードコード化されるとき、PUは、PUのイントラ予測モードを記述するデータを含み得る。別の例として、PUがインターモードコード化されるとき、PUは、PUの動きベクトルを定義するデータを含み得る。動きベクトルを定義するデータは、例えば、動きベクトルの水平成分、動きベクトルの垂直成分、動きベクトルの解像度(例えば、1/4画素精度又は1/8画素精度)、動きベクトルが指す参照フレーム、及び/又は動きベクトルの参照リスト(例えば、リスト0又はリスト1)を記述し得る。また、(1つ以上の)PUを定義するCUについてのデータは、例えば、1つ以上のPUへのCUの区分について記述し得る。区分モードは、CUがコード化されないか、イントラ予測モードコード化されるか、又はインター予測モードコード化されるかとの間で異なり得る。
1つ以上のPUを有するCUは、1つ以上の変換単位(TU)をも含み得る。PUを使用した予測の後に、ビデオエンコーダは、PUに対応するCUの部分の残差値を計算し得る。残差値は、変換、走査、及び量子化され得る。TUは、必ずしもPUのサイズに制限されるとは限らない。従って、TUは、同じCUの対応するPUよりも大きいことも小さいこともある。幾つかの例では、TUの最大サイズは、対応するCUのサイズに対応し得る。
上記のように、イントラ予測は、あるピクチャの現在のCUのPUを、同じピクチャの前にコード化されたCUから予測することを含む。より詳細には、ビデオエンコーダは、特定のイントラ予測モードを使用して、あるピクチャの現在のCUをイントラ予測し得る。HMエンコーダは、最高33個のイントラ予測モードで構成され得る。従って、方向性イントラ予測モードと方向性変換との間の1対1のマッピングをサポートするために、HMエンコーダ及びデコーダは、サポートされる各変換サイズについて66個の行列を記憶する必要があろう。更に、全ての33個のイントラ予測モードがサポートされるブロックサイズは、相対的に大きいブロック、例えば、32×32画素、64×64画素、又はより一層大きい画素になり得る。
宛先機器16において、ビデオデコーダ28がコード化ビデオデータを受信する。ビデオデコーダ28は、量子化係数を得るために、CAVLC又はCABACなど、エントロピーコード化方法に従って、受信したビデオデータをエントロピー復号する。ビデオデコーダ28は、逆量子化(inverse quantization)(逆量子化(de−quantization))機能及び逆変換機能を適用して、画素領域中で残差ブロックを再構成する。ビデオデコーダ28はまた、コード化ビデオデータ中に含まれる(例えば、コード化モード、動きベクトル、フィルタ係数を定義するシンタックスなどの)制御情報又はシンタックス情報に基づいて予測ブロックを生成する。ビデオデコーダ28は、予測ブロックと再構成された残差ブロックとの合計を計算して、表示のための再構成されたビデオブロックを生成し得る。ビデオデコーダ28によって実行される例示的な復号プロセスのさらなる詳細について、図10に関して以下で説明する。
本明細書で説明するように、Yが輝度を表し得、Cb及びCrが3次元YCbCr色空間のクロミナンスの2つの異なる値を表し得る。各画素位置は、実際に、3次元色空間の3つの画素値を定義し得る。但し、本開示の技法は、簡単のために1次元に対する予測に関する。技法について1次元の画素値に関して説明する限り、同様の技法が他の次元に拡張され得る。
本開示の技法によれば、ビデオエンコーダ22及びビデオデコーダ28は、動き補償中に1つ以上の補間フィルタ処理技法を使用し得る。特に、本開示の一態様によれば、ビデオエンコーダ22及び/又はビデオデコーダ28は画素のブロックを取得し得、画素のブロックは、画素のブロック内の整数画素位置に対応する整数画素値を含む。ビデオエンコーダ22及び/又はビデオデコーダ28は、整数画素値に基づいて画素のブロックに関連するサブ画素位置についての値を計算し得、サブ画素値を計算することは、フィルタサポートの様々なセットに補間フィルタを適用することを備え、フィルタサポートのセットの各々は、画素のブロック中の1つ以上の整数画素位置のセットに対応する。ビデオエンコーダ22及び/又はビデオデコーダ28はまた、画素のブロックをコード化又は復号するために、サブ画素値のうちの少なくとも幾つかに基づいて予測ブロックを生成し得る。
本開示の態様によれば、ビデオエンコーダ22及び/又はビデオデコーダ28は、フル整数画素位置の任意の組合せを備えるフィルタサポートに補間フィルタを適用し得る。ビデオエンコーダ22は、フル整数画素位置に関連する幾つかの(例えば、15個の)異なるサブ画素位置についてのフィルタ係数の複数のセットを決定し、フィルタ係数の15個のセットを符号化ビットストリームの一部として別の機器に出力し得る。このようにして、フィルタ係数の複数のセットは、全ての15個の1/2画素及び1/4画素位置についての全てのフィルタ係数を定義し得る。幾つかの例では、フル整数画素位置に関連する各1/2画素及び1/4画素についてのフィルタ係数のセットは、一意であり得る。他の例では、フル整数画素位置に関連するハーフペル及び1/4ペルについてのフィルタ係数のセットの一部又は全部は、同じであり得る。
宛先機器16のビデオデコーダ28は、コード化ビデオビットストリームの一部としてフィルタ係数の1つ以上のセットを受信し、フィルタ係数の1つ以上のセットに基づいて、15個の異なるサブ画素位置に対応するフィルタ係数の15個のセットを生成し得る。ビデオデコーダ28はまた、フィルタ係数の複数のセットのうちの1つに基づいてビデオ復号のためのサブペル値を生成し得、補間予測データは、15個の異なるサブ画素位置のうちの1つに対応し、補間予測データに基づいて1つ以上のビデオブロックを復号する。
本開示の別の態様によれば、ビデオエンコーダ22は、参照サンプルの複数のフル整数画素位置についての値を受信し、複数のフル整数画素位置のうちの1つの第1のサブ整数画素についての値を計算するために複数のフル整数画素位置についての値の第1のセットに補間フィルタを適用し、フル整数画素位置のうちの1つの第2の異なるサブ整数画素についての値を計算するために、複数のフル整数画素位置についての値の第2の異なるセットに同じ補間フィルタを適用し、第1のサブ整数画素と第2のサブ整数画素とのうちの一方を指す動きベクトルを使用して画素の現在のブロックをコード化し得る。幾つかの例では、補間フィルタは第1の補間フィルタであり、ビデオエンコーダ22は更に、複数のフル整数画素位置のうちの1つの第3のサブ整数画素についての値を計算するために複数のフル整数画素位置についての値の第3のセットに第2の異なる補間フィルタを適用し得る。他の例では、サブ整数画素位置についての追加の値を計算するために複数のフル整数画素位置についての値の追加のフィルタ又はセットが使用される。
ビデオエンコーダ22は、第1のサブ整数画素についての値を計算するために使用される補間フィルタの指標を与え得る。指標は、サポートの明示的指標を備え得る。代替的に、ビデオエンコーダ22及びビデオデコーダ28がサポートのセットで事前構成されたとき、指標はインデックス又は他の識別子に対応し得る。指標は、予測単位レベル、コード化単位レベル、フレームレベル、スライスレベル、又はシーケンスレベルのうちの1つにおいて与えられ得、各レベルは画素の現在のブロックに関係する。幾つかの例では、指標は、シーケンスパラメータセット(SPS)又はピクチャパラメータセット(PPS)において与えられ得る。ビデオエンコーダ22は、指標を符号化ビットストリームの一部として別の機器に出力し得る。幾つかの例では、補間フィルタは、ITU−T H.264補間フィルタ、(例えば、補間フィルタのセットから選択された)固定補間フィルタ、又は適応補間フィルタである。その上、ビデオエンコーダ22は、上記で説明した技法と同様の技法を使用してフル画素のサブ整数画素の各々についてのサポートの指標を与え得る。
補間フィルタは、分離可能フィルタ又は非分離可能フィルタであり得る。非分離可能フィルタは、中間フィルタ処理ステップを実行することなしにサブペルを直接生成するようにフィルタサポートが変更され得る、補間フィルタである。対照的に、分離可能フィルタは、フィルタ処理が別のフィルタ処理ステップに依存し得るフィルタである。例えば、双一次フィルタ処理では、第1のサブペル位置についての値を生成するために、最初にフィルタが水平方向に適用され得る。次いで、第2のサブペル位置についての値を生成するために、フィルタは転置され、第1のサブペル位置にわたって垂直方向に適用され得る。
別の例では、方法は、複数のフル整数画素位置を備える参照サンプルを受信することと、参照サンプルのサブ整数画素についての値を補間するために使用される参照サンプルのフル整数画素位置のセットの指標を受信することと、参照サンプルのサブ整数画素の値を計算するために、フル整数画素位置のセットに補間フィルタを適用することと、サブ整数画素の計算された値に対する画素の現在のブロックを復号することとを備え得る。
図2は、図1のビデオエンコーダ22の一例を更に詳細に示すブロック図である。ビデオエンコーダ22は、本開示に一致するインター予測技法を実行し得る。ビデオエンコーダ22は、本明細書では「コーダ」と呼ぶ専用ビデオコンピュータ機器又は装置の一例である。図2に示すように、ビデオエンコーダ22は、機器20のビデオエンコーダ22に対応する。但し、他の例では、ビデオエンコーダ22は、異なる機器に対応し得る。さらなる例では、他のユニット(例えば、他のエンコーダ/デコーダ(CODEC)など)も、ビデオエンコーダ22と同様の技法を実行することができる。
ビデオエンコーダ22は、ビデオフレーム内のブロックのイントラコード化及びインターコード化を実行し得るが、説明を簡単にするために、イントラコード化構成要素は図2に示していない。イントラコード化は、所与のビデオフレーム内のビデオの空間的冗長性を低減又は除去するために空間的予測に依拠する。インターコード化は、ビデオシーケンスの隣接フレーム内のビデオの時間的冗長性を低減又は除去するために時間的予測に依拠する。イントラモード(Iモード)は、空間ベースの圧縮モードを指すことがある。予測(Pモード)又は双方向性(Bモード)などのインターモードは、時間ベースの圧縮モードを指すことがある。本開示の技法はインターコード化中に適用され、従って、説明を簡単で容易にするために、空間予測ユニットなどのイントラコード化ユニットは図2に示していない。
図2に示すように、ビデオエンコーダ22は、コード化されるべきビデオフレーム内のビデオブロックを受信する。図2の例では、ビデオエンコーダ22は、予測コード化ユニット(MCU)32と、メモリ34と、加算器48と、変換ユニット38と、量子化ユニット40と、エントロピーコード化ユニット46とを含む。ビデオブロック再構成のために、ビデオエンコーダ22はまた、逆量子化ユニット42と、逆変換ユニット44と、加算器51とを含む。幾つかの例では、再構成されたビデオからブロッキネスアーティファクトを除去するためにブロック境界をフィルタ処理するデブロッキングフィルタも含まれ得る。所望される場合、デブロッキングフィルタは、一般に、加算器51の出力をフィルタ処理するであろう。一例では、図2に示すように、変換ユニット38は機能ブロックであり、HEVCの観点から「TU」でないことがある。
予測ユニット32は、動き推定(ME)ユニット35と、動き補償(MC)ユニット37とを含み得る。1つ以上の補間フィルタ39(本明細書では「フィルタ39」と呼ぶ)は、本開示によれば、予測ユニット32中に含められ得、動き推定及び/又は動き補償の一部として補間を実行するために、MEユニット35とMCユニット37の一方又は両方によって起動され得る。サブ画素についての値が、隣接するフル画素についての値及び/又は隣接するサブ画素についての前に計算された値に基づいて計算される他の技法が含まれ得る。フィルタ39は、実際は、本明細書で説明するように、多数の様々なタイプの補間及び補間タイプフィルタ処理を可能にする複数の様々なフィルタを表し得る。従って、予測ユニット32は複数の補間又は補間のようなフィルタを含み得る。コード化プロセス中に、ビデオエンコーダ22は、コード化されるべき(図2で「ビデオブロック」と標示される)ビデオブロックを受信し、予測ユニット32は、インター予測コード化を実行して(図2で「予測ブロック」と標示される)予測ブロックを生成する。特に、MEユニット35は、メモリ34中の予測ブロックを識別するために動き推定を実行し得、MCユニット37は、予測ブロックを生成するために動き補償を実行し得る。
動き推定は、一般に、ビデオブロックの動きを推定する、動きベクトルを生成するプロセスと考えられる。動きベクトルは、例えば、現在のフレーム(又は、他のコード化単位)内のコード化されるべきブロックに対する、予測フレーム又は参照フレーム(又は、他のコード化単位、例えばスライス)内の予測ブロックの変位を示し得る。本開示の技法によれば、動きベクトルは、サブ整数画素精度を有し得る。例えば、動きベクトルの水平成分と垂直成分の両方は、それぞれのフル整数成分とサブ整数成分とを有し得る。参照フレーム(又は、参照フレームの部分)は、時間的に、現在のビデオブロックが属するビデオフレーム(又は、ビデオフレームの部分)より前に、又はその後に配置され得る。動き補償は、一般に、メモリ34から予測ブロックを取り込み又は生成するプロセスと考えられ、それは、動き推定によって決定された動きベクトルに基づいて予測データを補間するか、又は場合によっては生成することを含み得る。
MEユニット35は、コード化されるべきビデオブロックを1つ以上の参照フレーム(例えば、前のフレーム及び/又は後続のフレーム)の参照ブロックと比較することによって、そのビデオブロックのための動きベクトルを計算する。参照フレームについてのデータは、メモリ34に記憶され得る。MEユニット35は、分数画素、分数ペル、サブ整数、又はサブ画素動き推定と呼ばれることがある分数画素精度を用いて動き推定を実行し得る。従って、分数画素、分数ペル、サブ整数、及びサブ画素動き推定という用語は、互換的に使用され得る。分数画素動き推定では、MEユニット35は、整数画素位置以外の位置への変位を示す動きベクトルを計算し得る。従って、動きベクトルは、分数画素精度、例えば、1/2画素精度、1/4画素精度、1/8画素精度、又は他の分数画素精度を有し得る。このようにして、分数画素動き推定により、予測ユニット32は、整数画素(又は、フル画素)位置よりも高い精度を用いて動きを推定することが可能になり、従って、予測ユニット32は、より正確な予測ブロックを生成し得る。分数画素動き推定は、1/2画素精度、1/4画素精度、1/8画素精度、又は任意のより微細なサブ画素精度を有し得る。MEユニット35は、動き推定プロセス中に任意の必要な補間のために(1又は複数の)フィルタ39を起動し得る。幾つかの例では、メモリ34は、サブ整数画素についての補間値を記憶し得、その補間値は、例えば、(1つ又は複数の)フィルタ39を使用して加算器51によって計算され得る。例えば、加算器51は、メモリ34に記憶されるべき再構成されたブロックに、(1つ又は複数の)フィルタ39を適用し得る。
分数画素動き補償を実行するために、MCユニット37は、(補間フィルタ処理と呼ばれることがある)補間を実行して、(本明細書ではサブ画素値又は分数画素値と呼ぶ)サブ画素解像度におけるデータを生成し得る。MCユニット37は、この補間のために(1つ又は複数の)フィルタ39を起動し得る。予測ユニット32は、本明細書で説明する技法を使用して補間(又は、整数画素の補間様フィルタ処理)を実行し得る。このようにして、予測ユニット32は、参照ブロックのサブ整数画素位置についての値を計算し得、次いで、その値は、ビデオデータの予測ブロックを生成するために使用され得る。
コード化されるべきビデオブロックのための動きベクトルがMEユニット35によって計算されると、MCユニット37は、その動きベクトルに関連する予測ビデオブロックを生成する。MCユニット37は、MCユニット35によって決定された動きベクトルに基づいて、メモリ34から予測ブロックを取り込み得る。分数画素精度をもつ動きベクトルの場合、MCユニット37は、そのようなデータをサブ画素解像度に対して補間するために、例えば、このプロセスのために(1つ又は複数の)フィルタ39を起動して、メモリ34からのデータをフィルタ処理し得る。場合によっては、そのようなデータをサブ画素解像度に対して補間するために使用されるフィルタ係数に対応するフル整数画素位置は、コード化ビットストリームに含めるための、エントロピーコード化ユニット46への1つ以上の補間シンタックス要素として示され得る。同様に、サブ画素予測データを生成するために使用された補間フィルタ処理技法又はモードも、コード化ビットストリームに含めるための、エントロピーコード化ユニット46への1つ以上の補間シンタックス要素として示され得る。
予測ユニット32が予測ブロックを生成すると、ビデオエンコーダ22は、コード化されている元のビデオブロックから予測ブロックを減算することによって(図2で「残差ブロック」と標示される)残差ビデオブロックを形成する。加算器48は、この減算演算を実行する1つ以上の構成要素を表す。変換ユニット38は、離散コサイン変換(DCT)又は概念的に同様の変換など、変換を残差ブロックに適用し、残差変換ブロック係数を備えるビデオブロックを生成する。変換ユニット38は、例えば、概念的にDCTと同様である、H.264規格によって定義された変換など、他の変換を実行し得る。そのような変換は、例えば、(カルーネンレーベ定理変換(Karhunen−Loeve theorem transform)などの)方向性変換、ウェーブレット変換、整数変換、サブバンド変換、又は他のタイプの変換を含み得る。いずれの場合も、変換ユニット38は、変換を残差ブロックに適用し、残差変換係数のブロックを生成する。変換は、残差情報を画素領域から周波数領域に変換し得る。
量子化ユニット40は、ビットレートを更に低減するために残差変換係数を量子化する。量子化プロセスは、係数の一部又は全部に関連するビット深さを低減し得る。量子化の後、エントロピーコード化ユニット46が量子化変換係数をエントロピーコード化する。例えば、エントロピーコード化ユニット46は、CAVLC、CABAC、又は別のエントロピーコード化方法を実行し得る。
エントロピーコード化ユニット46はまた、ビデオエンコーダ22の予測ユニット32又は他の構成要素から得られた1つ以上の動きベクトル及びサポート情報をコード化し得る。1つ以上の予測シンタックス要素は、コード化モード、1つ以上の動きベクトルについてのデータ(例えば、水平及び垂直成分、参照リスト識別子、リストインデックス、及び/又は動きベクトル解像度シグナリング情報)、サブ画素データを生成するために使用された補間技法の指標、フィルタ係数のセット又はサブセット、フィルタサポートとして使用されるフル整数画素位置又はサブ整数画素位置のセット、又は予測ブロックの生成に関連する他の情報を含み得る。エントロピーコード化ユニット46によるエントロピーコード化の後、コード化されたビデオ及びシンタックス要素は、別の機器に送信されるか、又は後で送信するか若しくは取り出すために(例えば、メモリ34中に)アーカイブされ得る。
逆量子化ユニット42及び逆変換ユニット44は、それぞれ逆量子化及び逆変換を適用して、例えば、参照ブロックとして後で使用するために、画素領域中で残差ブロックを再構成する。(図2で「再構成された残差ブロック」と標示される)再構成された残差ブロックは、変換ユニット38に与えられる残差ブロックの再構成されたバージョンを表し得る。再構成された残差ブロックは、量子化演算及び逆量子化演算によって生じた細部の損失により、加算器48によって生成された残差ブロックとは異なり得る。加算器51は、再構成された残差ブロックを、予測ユニット32によって生成された動き補償された予測ブロックに加算して、メモリ34に記憶するための再構成されたビデオブロックを生成する。再構成されたビデオブロックは、後続のビデオフレーム又は後続のコード化単位中のブロックをその後コード化するために使用され得る参照ブロックとして予測ユニット32によって使用され得る。
上記で説明したように、予測ユニット32は、分数画素(又は、サブ画素)精度を用いて動き推定を実行し得る。予測ユニット32は、分数画素動き推定を使用するとき、本開示で説明する補間演算を使用してサブ画素解像度(例えば、サブ画素値又は分数画素値)におけるデータを生成し得る。言い換えれば、補間演算は、整数画素位置間の位置における値を計算するために使用され得る。整数画素位置間の距離の1/2に配置されるサブ画素位置は1/2画素(1/2ペル)位置と呼ばれることがあり、整数画素位置と1/2画素位置との間の距離の1/2に配置されるサブ画素位置は1/4画素(1/4ペル)位置と呼ばれることがあり、整数画素位置(又は、1/2画素位置)と1/4画素位置との間の距離の1/2に配置されるサブ画素位置は1/8画素(1/8ペル)位置などと呼ばれる。
本開示の技法によれば、同じフル画素の2つのサブ整数画素についての値を計算するために、補間フィルタ39のうちの同じ補間フィルタがサポートの2つ以上の異なるセットに適用され得る。以下でより詳細に説明するように、予測ユニット32は、例えば、フル画素の第1のサブ整数画素についての値を計算するために、サポートの第1のセットにフィルタ39のうちの1つを適用し、同じフル画素の第2のサブ整数画素についての値を計算するために、サポートの第2の異なるセットに同じ補間フィルタを適用し得る。その上、サポートのセットは、様々な形状、例えば、線形(水平、垂直、左上から右下に傾斜する対角、右上から左下に傾斜する対角など)、フル画素において交差するX字形、円形(例えば、フル画素の周りの円形形状の画素)、行列(例えば、フル画素の複数の行における2つ以上の画素)、又は他の形状を有し得る。
このようにして、ビデオエンコーダ22は、参照サンプルの複数のフル整数画素位置についての値を受信し、複数のフル整数画素位置のうちの1つの第1のサブ整数画素についての値を計算するために複数のフル整数画素位置についての値の第1のセットに補間フィルタを適用し、フル整数画素位置のうちの1つの第2の異なるサブ整数画素についての値を計算するために、複数のフル整数画素位置についての値の第2の異なるセットに同じ補間フィルタを適用し、第1のサブ整数画素と第2のサブ整数画素とのうちの一方を指す動きベクトルを使用して画素の現在のブロックをコード化するように構成されたビデオエンコーダの一例を表す。
図3は、予測データに関連する整数画素(又は、フル画素)位置と、補間予測データに関連するサブ画素(又は、分数画素)位置とを示す概念図である。図3の概念図では、異なるボックスが、フレーム又はフレームのブロック内の画素及びサブ画素位置を表す。(実線のボックス中の)数字付き大文字は整数画素位置を表し、(点線のボックス中の)小文字はサブ画素位置を表す。特に、画素位置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に関連する1/2ペル及び1/4ペル画素位置を表す。以下でより詳細に説明するように、例えば、サポートの異なるセットに同じ補間フィルタを適用することによって、サブ画素a〜oのうちの2つ以上についての値を計算するために、同じ補間フィルタが使用され得る。
整数画素位置は、ビデオデータが最初に生成されたとき、フォトダイオードなどの物理的センサ要素に関連し得る。フォトダイオードは、センサの位置における光源の強度を測定し、画素強度値を整数画素位置に関連付け得る。この場合も、各整数画素位置は、15個の(又は場合によってはより多い又はより少ない)サブ画素位置の関連するセットを有し得る。整数画素位置に関連するサブ画素位置の数は所望の精度に依存し得る。図3に示す例では、所望の精度は1/4画素精度であり、その場合、整数画素位置の各々は、15個の異なるサブ画素位置に関係する。より多い又はより少ないサブ画素位置は、所望の精度に基づいて各整数画素位置に関連し得る。1/2画素精度の場合、例えば、各整数画素位置は、3つのサブ画素位置に対応し得る。別の例として、整数画素位置の各々は、1/8画素精度の場合、63個のサブ画素位置に対応し得る。各画素位置は、1つ以上の画素値、例えば、1つ以上の輝度及びクロミナンス値を定義し得る。
図3の例では、整数画素「C3」に関連するサブ画素位置が、1/4画素精度について示されている。画素C3に関連する15個のサブ画素位置は、「a」、「b」、「c」、「d」、「e」、「f」、「g」、「h」、「i」、「j」、「k」、「l」、「m」、「n」、及び「o」と標示される。他の整数画素位置に関連する(以下で更に詳細に説明する画素位置C3に関連する15個の異なる部分位置のうちの1つ以上を生成するために使用されるもの以外の)他の部分位置の殆んどは、簡単のために示さない。サブ画素位置「b」、「h」及び「j」は1/2画素位置と呼ばれることがあり、サブ画素位置「a」、「c」、「d」、「e」、「f」、「g」、「i」、「k」、「l」、「m」、「n」、及び「o」は1/4画素位置と呼ばれることがある。
ビデオエンコーダ40の予測ユニット32は、MC処理ユニット37による補間フィルタ処理を使用してサブ画素位置「a」〜「o」の画素値を決定し得る。予測ユニット32は、36タップ補間フィルタを使用してサブ画素位置「a」〜「o」についての画素値を決定し得る。予測ユニット32は、サブ画素位置の各々について36個のフル整数画素位置全てに補間フィルタを適用し得る。他の例では、フル整数画素位置のサブセットは、サブ画素位置についての値を補間するためのフィルタサポートとして使用される。
一例では、ビデオエンコーダ40の予測ユニット32は、ITU−T H.264規格に一致する補間フィルタを使用するMCU37によって補間フィルタ処理を使用して、サブ画素位置についての画素値「a」〜「o」を決定し得る。ITU−T H.264規格に一致して、例えば、予測ユニット32は、ウィーナーフィルタ(Wiener filter)などの6タップ補間フィルタを使用して、1/2画素位置についての画素値を決定し得る。H.264規格の場合、6タップ補間フィルタのためのフィルタ係数は一般に[1,−5,20,20,−5,1]であるが、他の係数が使用され得る。予測ユニット32は、6つのフル整数画素位置の任意のセットに補間フィルタを適用し得る。一例では、1/2画素位置「b」の場合、6タップフィルタのタップは、B3、B4、C3、C4、D3、及びD4に対応し得る。他の例では、1/2画素位置「b」の場合の6タップフィルタのタップは、6つのフル整数画素位置の別のセットであり得る。同様に、一例では、1/2画素位置「h」の場合、6タップフィルタのタップは、C2、C3、C4、D2、D3、及びD4に対応し得る。例えば、サブ画素位置「j」についての画素値は、式(1)又は式(2)を使用して計算され得る。
j = ((A1 - 5*B2 +20*C3 + 20*D4 - 5*E5 + F6) + 16)/32 (1)
j = ((A6 - 5*B5 +20*C4 + 20*D3 - 5*E2 + F1) + 16)/32 (2)
上記の式1及び式2は、フル整数画素位置の値が6タップフィルタの異なる係数にどのように関連し得るかの一例を示す。他の例では、フル整数画素位置の値は、6タップフィルタの異なる係数に対応し得る。一例では、サブ画素位置に最も近い、サブ画素位置についてのフィルタサポートにおけるフル整数画素位置は、フィルタ中でより高く重み付けされた係数を与えられるが、サブ画素位置からより遠いフル整数画素位置は、より低い重みを与えられる。他の例では、どのフル整数画素位置がどの係数に対応するかを決定するための他の方法が使用される。
同じフルペル(フル画素)の異なるサブペルは、異なるサポートを使用して計算され得る。例えば、幾つかのサブ画素位置(上記で説明したフル画素位置C3に関連する「b」及び「h」など)は、フル整数画素位置の同じ又は異なるサブセットを用いて計算され得るが、サブ画素位置は、他のサブ画素位置に基づいて決定され得る。例えば、フル画素位置C3にも関連する1/2画素位置「j」は、サブ画素位置に依存する双一次補間フィルタを使用して計算され得る。1/2画素位置「j」の場合、6タップフィルタのタップは、位置C1〜C6とD1〜D6との間で水平に、又は、位置A3〜F3とA4〜F4との間で垂直に補間されたそれら自体に対応する。1/2画素位置「j」は、例えば、式(3)又は式(4)のうちの1つに従って、1/2画素位置の予め補間された画素値を使用する6タップフィルタを用いて計算され得る。
j = ((aa - 5*bb +20*b + 20*hh - 5*ii + jj) + 16)/32 (3)
j = ((cc - 5*dd +20*h + 20*ee - 5*ff + gg) + 16)/32 (4)
但し、(図3に示すように)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は、双一次補間フィルタと、周囲の整数画素位置及び1/2画素位置の画素値とを使用して、1/4画素位置「a」、「c」、「d」、「e」、「f」、「g」、「i」、「k」、「l」、「m」、「n」及び「o」における幾つかの画素値を決定し得る。例えば、予測ユニット32は、C3の画素値と「b」の画素値とを使用して、サブ画素位置「a」に関連する画素値を決定し、「b」の画素値とC4の画素値とを使用して、サブ画素位置「c」に関連する画素値を決定し得、以下同様である。
サブ画素位置において補間データを生成するためにMCユニット37によって適用される実際のフィルタには、多種多様な実装形態があり得る。一例として、予測ユニット32は、以下で説明する適応補間フィルタ処理(AIF)を使用して、補間値を定義し得る。ITU−T SG16/Q.6/VCEG(Video Coding Expert Group)委員会は、H.264よりも高いコード化効率を提供するコード化技術、特にAIFを調査している。AIFは、特に高い解像度(例えば、720i/p又は1080i/p)をもつビデオシーケンス上で、H.264規格で使用される補間フィルタ処理よりも大きいコード化利得を提供する。AIFでは、サブ画素位置ごとの補間フィルタは、予測誤差エネルギーを最小限に抑えることによって、ビデオフレームごとに分析的に計算される。これは、エイリアシング、量子化誤差及び動き推定誤差、カメラノイズ、又は元のビデオフレーム及び参照ビデオフレーム中に含まれる他のアーティファクトに対処するのに役立つ。次いで、フレームごとに分析的に導出された適応フィルタ係数は、予測され、量子化され、コード化され、ビデオビットストリームで送られ得る。本開示の技法の一部は、AIF方式ならびに多くの他の補間方式内で動作することができる。
多くの様々なタイプのAIF方式が、本開示の態様に一致する。例えば、第1の方式は2次元の分離不可能なAIF(NS−AIF)であり、第2の方式は分離可能なAIF(S−AIF)であり、第3の方式は方向フィルタをもつAIF(D−AIF)である。これらのAIF方式の各々は、異なる補間技法及びサポートを使用するが、全ての3つのAIF方式は、同様の分析プロセスを使用してフィルタ係数を導出し得、以下に一例として分離不可能なAIFを使用して説明する。任意の所与のサブ画素位置のための異なるフル整数画素位置の場合に、これらのAIF方式のいずれかが使用され得る。
Figure 0006301401
但し、i,j=0...5であり、SPは、図3に示す15個のサブ画素位置(「a」〜「o」)のうちの1つを表す。15個のサブ画素位置のうちの6つ、即ち「a」、「b」、「c」、「d」、「h」及び「l」は1次元(1D)サブ画素位置であり、予測ユニット32は6タップ補間フィルタを使用してそのようなデータを補間し得ることに留意されたい。サブ画素位置「a」、「b」、「c」、「d」、「h」及び「l」は、2つの整数画素位置間の水平線又は垂直線に配置されるという点で1Dである。また、参照フレーム中の整数画素位置(図3のA1〜F6)における予測画素が、画素値Pi,j、但しi,j=0...5をとると仮定する。即ち、A1は値P0,0をとり、...、A6は値P5,0をとり、...、F1は値P5,0をとり、...、F6は値P5,5をとる。次いで、サブ画素位置SPにおける補間値pSP、SP∈{a,...,o}は、以下の式を使用して予測ユニット32によって計算され得る。
Figure 0006301401
x,yを位置(x,y)における現在のビデオフレーム中の画素値とする。
Figure 0006301401
例えば、6タップフィルタの場合、FO=6/2−1=2である。サブ画素位置SPごとに、現在のフレーム中の実際の画素値と補間値との間の予測誤差エネルギー(eSP2が、サブ画素位置SPに対応する動きベクトル精度を有する全ての画素に対して、予測ユニット32によって蓄積され得る。予測誤差エネルギー(eSP2は、以下の式を使用して予測ユニット32によって計算され得る。
Figure 0006301401
Figure 0006301401
式の数は、この場合、現在のサブ画素位置SPに使用されるフィルタ係数の数に等しい。各サブ画素位置に対して、予測ユニット32は、6×6のタップ1D補間フィルタ(例えば、1D6タップフィルタ)を使用し得る。他の例では、予測ユニット32は、異なるタップ補間フィルタ(例えば、1D12タップフィルタ)を使用し得る。1D6タップフィルタの場合、6つの式のシステムは、MCユニット37によって解決され得る。
Figure 0006301401
(1つ又は複数の)フィルタ39は、予測データを生成するためにMCユニット37によって使用され得る1つのフィルタ又は多くの様々なフィルタのセットを表し得る。
従って、AIFフィルタを導出し、適用する1つの例示的なプロセスは、予測ユニット32によって実行され得る以下のステップを有し得る。
1.コード化されるべきあらゆるビデオブロックについて動きベクトル(mvx,mvy)を推定する。動き推定中に、固定補間フィルタ(例えば、H.264/AVCの補間プロセス)が適用され得る。
Figure 0006301401
3.新しい動きベクトルを推定する。この動き推定プロセス中に、ステップ2で計算された適応補間フィルタが適用され得る。適応補間フィルタを使用して、(エイリアシング、カメラノイズなどによって生じた)動き推定誤差が低減され得、より良い動き予測が達成される。
上記のように、異なるAIF方式が同じ分析プロセスを使用し得る。異なる方式間の差は、大部分、補間フィルタが分離可能であるか分離不可能であるかにかかわらず、使用される一意のフィルタ係数の数と、(サブ画素位置の少なくとも一部分を補間するために使用される整数画素位置などの)使用されるフィルタサポートとにある。これらの方式の各々では、フル整数画素位置の異なるセットが、異なるサブ画素位置について使用され得る。
NS−AIFの場合、例えば、予測ユニット32のMCユニット37は、6つの係数を必要とする(各タップが整数画素位置と対応するので6位置フィルタとも呼ばれる)1D6タップ補間フィルタを使用して、1Dサブ画素位置「a」、「b」、「c」、「d」、「h」、及び「l」を補間し得る。サブ画素を補間するために使用される6位置フィルタの6つの係数はそれぞれ、図3に示した整数画素位置のうちの1つに対応する。例えば、サブ画素位置「a」の場合、係数に対応する6つの整数画素位置は、C1、C2、C3、C4、C5、及びC6であり得る。他の例では、フル整数画素位置の任意の6つのメンバーサブセットは、サブ画素位置「a」についての値を計算するために使用され得る。これらの整数画素位置は補間フィルタの「フィルタサポート」の例を表す。幾つかの例では、フィルタサポートは、他のサブ整数画素についての前に計算された値を含み得る。
別のAIF方式、即ち、S−AIFでは、予測ユニット32は、NS−AIFで使用される分離不可能な補間フィルタの代わりに、フル整数画素位置の任意のサブセットを使用する分離可能補間フィルタを使用し得る。例えば、1Dサブ画素位置の場合、予測ユニット32(例えば、予測ユニット32のMCユニット37)は、サブ画素位置に応じて、水平方向フィルタのみ、垂直方向フィルタのみ、対角フィルタ(図4及び図5参照)のみ、組み合わされた水平及び垂直方向フィルタ(図5参照)のみ、矩形フィルタ(図7及び図8参照)のみ、又はフィルタサポートの任意の他の組合せを適用する。一例では、対角フィルタは、6位置(又は6タップ)フィルタを備える。予測ユニット32は、フィルタサポートとして整数画素位置A1、B2、C3、D4、E5、及びF6(図4参照)を用いてサブ画素位置「e」、「j」、及び「o」に対して対角フィルタを適用し、フィルタサポートとして整数画素位置A3、B3、C3、D3、E3及びF3(図6参照)を用いて、サブ画素位置「d」、「h」、及び「l」に対して垂直方向フィルタを適用する。残りのサブ画素位置、即ち、2Dサブ画素位置に対して、予測ユニット32は、対角フィルタ処理、その後に垂直フィルタ処理を適用するか、又は垂直フィルタ処理、その後に対角フィルタ処理を適用し得る。この場合も、分離可能な対角フィルタ及び垂直フィルタのために使用されるフィルタ係数は、適応補間フィルタ処理を対象とする例において上記の式(7)に従って計算され得る。他の例では、フィルタサポートの任意のサブセット及び形状が、サブ画素位置についての値を計算するために使用され得る。
予測ユニット32のMCユニット37は、本明細書で説明する補間技法のうちの1つ以上を使用し得、その補間技法は、サブ画素位置についての値の補間中にコード化利得を増加させ、及び/又はサブ画素位置を補間するために使用されるフィルタサポートの可変性を増加させ得る。本開示は、(対角サポート、又は放射形状をもつ12画素フィルタサポートなど)補間のために使用され得るフィルタサポートのセットの他の例について以下で更に詳細に説明する。更に、補間フィルタ間で選択するための技法、フィルタサポートを選択するための技法、及びフィルタ係数を予測コード化するための技法についても説明する。
図4は、サブ整数画素位置に関する対角6画素フィルタサポートを示す概念図である。本開示によれば、MCユニット37は、影付き整数画素値に基づいてサブ画素位置「a」〜「o」のいずれかについてのサブ画素値を計算し得る。この場合、サブ画素値のいずれかを計算することは、図4に示すサブ画素位置に関連するフル整数画素位置と対角である6つの(又は場合によってはより多くの)整数画素位置のセットに対応するフィルタサポート位置の対角アレイを使用する補間フィルタを適用することを備える。フィルタサポート位置は陰影付きで大文字を用いて示し、サブ画素位置は点線と小文字のボックスとして示す。MCユニット37は、このようにして、ビデオブロック中の画素のサブセットのみに対して画素を補間し得、サブ画素値を補間することに基づいて予測ブロックを生成し得る。他の例では、MCユニット37は、このようにして、ビデオブロックのあらゆる画素に対して画素を補間し得る。
6位置フィルタサポートは、この例では対角形状を有する。しかしながら、他の例では、任意の他の6位置フィルタサポートは、任意の他の形状を有することができる。サブ画素位置を通して対角になる6つ以上の整数画素位置のセットを図4に陰影付きで示す。フィルタサポートは、サブ画素位置を囲む4つの整数位置のうちの2つの整数位置C3及びD4、ならびにC3及びD4を通る対角線に沿った4つの整数画素位置A1、B2、E5、及びF6を含み得る。そのようなフィルタ処理は、ビデオエンコーダ22(図2)によるビデオコード化プロセス中に、又はビデオデコーダ28(図10)によるビデオ復号プロセス中に、動き補償の一部を形成し得る。ビデオコード化プロセス中に、予測ユニット32は、予測シンタックス要素の一部として係数値の複数のセットをエントロピーコード化ユニット46にフォワーディングし得る。
図4に示すように、サブ画素位置を囲む6つ以上の整数画素位置のセットは、対角形状を有する。別の例では、フィルタサポートは、サブ画素位置を囲む4つの整数位置のうちの2つの整数位置C4及びD3、並びにC4及びD3を通る対角線に沿った4つの整数画素位置A6、B5、E2、及びF1を含み得る。幾つかの例では、サブ画素位置「a」〜「o」のサブセットのみが、対角フィルタサポートを使用して決定される。他の例では、サブ画素位置「a」〜「o」の全てが、対角フィルタサポートを使用して決定される。
エントロピーコード化ユニット46は、係数値のセットをコード化し、コード化ビットストリームの一部として補間フィルタの係数値を出力し得、次いで、符号化ビットストリームは別の機器に送信され得る。図4に示す各異なるサブ画素位置に関して定義された係数値の複数のセットの各々は、6つ以上の整数画素位置に対して異なる重み付けを定義し得る。エントロピーコード化ユニット46はまた、フィルタサポートのセットをコード化し、符号化ビットストリームの一部としてフィルタサポートのセットを出力し得、次いで、コード化ビットストリームは別の機器に送信され得る。サブ整数画素位置の異なるセットは、フィルタサポートの異なるセットを有し得る。更に、フィルタサポートの異なるセットは、同じ又は異なる補間フィルタに適用され得る。
図5は、サブ整数画素位置に関するx字形12画素フィルタサポートを示す概念図である。本開示によれば、MCユニット37は、影付き整数画素値に基づいてサブ画素位置「a」〜「o」のいずれかについてのサブ画素値を計算し得る。この場合、サブ画素値のいずれかを計算することは、図5に示すサブ画素位置を囲む4つのフル整数画素位置と対角である12個の(又は場合によってはより多くの)整数画素位置のセットに対応するフィルタサポート位置のx字形アレイを定義する補間フィルタを適用することを備える。フィルタサポート位置は陰影付きで大文字を用いて示し、サブ画素位置は点線と小文字のボックスとして示す。MCユニット37は、このようにして、ビデオブロック中の画素のサブセットのみに対して画素を補間し得、サブ画素値を補間することに基づいて予測ブロックを生成し得る。他の例では、MCユニット37は、このようにして、ビデオブロックのあらゆる画素に対して画素を補間し得る。
12個の位置フィルタサポートは、x字形を有する。しかしながら、他の例では、サブ画素位置のいずれかについての任意の他の12個の位置フィルタサポートは、任意の他の形状を有することができる。サブ画素位置を通してx字形になる12個以上の整数画素位置のセットを図5に陰影付きで示す。フィルタサポートは、サブ画素位置を囲む4つの整数位置C3、C4、D3、及びD4と、C3及びD4を通る対角線に沿った4つの整数画素位置A1、B2、E5、及びF6と、C4及びD3を通る対角線に沿った4つの整数画素位置A6、B5、E2、及びF1とを含み得る。そのようなフィルタ処理は、ビデオエンコーダ22(図2)によるビデオコード化プロセス中に、又はビデオデコーダ28(図10)によるビデオ復号プロセス中に、動き補償の一部を形成し得る。ビデオ符号化プロセス中に、予測ユニット32は、予測シンタックス要素の一部として係数値の複数のセットをエントロピーコード化ユニット46に転送し得る。
幾つかの例では、サブ画素位置「a」〜「o」のサブセットのみが、x字形フィルタサポートを使用して決定される。他の例では、サブ画素位置「a」〜「o」の全てが、x字形フィルタサポートを使用して決定される。
エントロピーコード化ユニット46は、係数値のセットをコード化し、コード化ビットストリームの一部として補間フィルタの係数値を出力し得、次いで、符号化ビットストリームは別の機器に送信され得る。図5に示す各異なるサブ画素位置に関して定義された係数値の複数のセットの各々は、12個以上の整数画素位置に対して異なる重み付けを定義し得る。エントロピーコード化ユニット46はまた、フィルタサポートのセットをコード化し、コード化ビットストリームの一部としてフィルタサポートのセットを出力し得、次いで、符号化ビットストリームは別の機器に送信され得る。
図6は、少なくとも1つのサブ画素位置に関する十字形12画素フィルタサポートを示す概念図である。本開示によれば、MCユニット37は、影付き整数画素値に基づいて、フル画素位置に関連する任意のサブ画素位置についてのサブ画素値を計算し得る。この場合、サブ画素値のいずれかを計算することは、12個の(又は場合によってはより多くの)整数画素位置のセットに対応するフィルタサポート位置のt字形アレイを定義する補間フィルタを適用することを備え、整数画素位置のセットは、サブ画素位置を囲む4つのフル整数画素位置(例えば、C3、C4、D3、及びD4)、及び垂直整数画素位置(例えば、A3、B3、E3、及びF3)、並びに水平整数画素位置(例えば、C1、C2、C5、及びC6)を含み得る。フィルタサポート位置は陰影付きで大文字を用いて示し、幾つかのサブ画素位置は点線と小文字のボックスとして示す。MCユニット37は、このようにして、ビデオブロック中の画素のサブセットのみに対して画素を補間し得、サブ画素値を補間することに基づいて予測ブロックを生成し得る。他の例では、MCユニット37は、このようにして、ビデオブロックのあらゆる画素に対して画素を補間し得る。
図6に示すように、3つの水平サブ画素位置「a」、「b」、及び「c」と、3つの垂直サブ画素位置「d」、「h」、及び「l」とは、12画素フィルタサポートを用いて予測され得る。しかしながら、他の例では、フル画素位置(図6に示すC3など)に関連する任意のサブ画素位置は、図6に示す12画素フィルタサポートを使用して予測され得る。
同様に、エントロピーコード化ユニット46は、係数値のセットをコード化し、コード化ビットストリームの一部として補間フィルタの係数値を出力し得、次いで、符号化ビットストリームは別の機器に送信され得る。図5に示す各異なるサブ画素位置に関して定義された係数値の複数のセットの各々は、12個以上の整数画素位置に対して異なる重み付けを定義し得る。エントロピーコード化ユニット46はまた、フィルタサポートのセットをコード化し、符号化ビットストリームの一部としてフィルタサポートのセットを出力し得、次いで、符号化ビットストリームは別の機器に送信され得る。
図7は、サブ画素位置に関する円形(放射形とも呼ばれる)12画素フィルタサポートを示す概念図である。上記で説明した異なるフィルタサポートの例と同様に、MCユニット37は、影付き整数画素値に基づいて、任意のサブ画素位置についてのサブ画素値を計算し得る。この場合、サブ画素値を計算することは、図7に示すように、サブ画素位置を囲む12個の(又は場合によっては、より多い又はより少ない)整数画素位置のセットに対応するフィルタサポート位置の2次元アレイを定義する補間フィルタを適用することを備える。フィルタサポート位置は陰影付きで大文字を用いて示し、サブ画素位置は点線と小文字のボックスとして示す。MCユニット37は、このようにして、ビデオブロックの任意の画素に対して画素を補間し得、補間されたサブ画素値に基づいて予測ブロックを生成し得る。12位置フィルタサポートは、放射形状を有し、NS−AIFで使用される36位置フィルタサポートと同様の周波数応答を有するが、補間の複雑さは低減されている。
サブ画素位置を囲む、12個以上の整数画素位置のセットは、図4に陰影付きで示されており、15個のハーフペル値及びクォーターペル値を囲む4つの整数画素位置C3、C4、D3及びD4、ならびに4つの整数画素位置を囲む8つの整数画素位置B3、B4、C2、C5、D2、D5、E3及びE4を含み得る。図7に示すフィルタサポート位置の2次元アレイ中のフィルタサポート位置の各々は、サブ画素位置に対する2つの整数画素位置内にある。そのようなフィルタ処理は、ビデオエンコーダ22(図2)によるビデオコード化プロセス中に、又はビデオデコーダ28(図16)によるビデオ復号プロセス中に、動き補償の一部を形成し得る。ビデオコード化プロセス中に、予測ユニット32は、予測シンタックス要素の一部として係数値の複数のセットをエントロピーコード化ユニット46に転送する。
図4に示したように、サブ画素位置を囲む12個の整数画素位置のセットは、放射形状を有し、補間フィルタ(例えば、図2の(1つ以上の)フィルタ39)によって定義されたサブペル値に空間的に最も近い整数画素位置のセットを備え得る。他の例では、図7に示す放射形状は、例えば、左側又は右側に1つのフル画素だけシフトされ得る。更に他の例では、フル整数画素位置の任意の数の任意のセットが、補間フィルタを用いてサブペル位置を予測するために使用される。
図8は、少なくとも1つのサブ整数画素位置に関する方形4画素フィルタサポートを示す概念図である。本開示によれば、MCユニット37は、影付き整数画素値に基づいて、フル画素位置に関連する任意のサブ画素位置についてのサブ画素値を計算し得る。この場合、サブ画素値のいずれかを計算することは、4つの整数画素位置のセットに対応するフィルタサポート位置の方形アレイを定義する補間フィルタを適用することを備える。図8に示した例では、4つの整数画素位置は、サブ画素位置を囲む4つのフル整数画素位置、即ち、C3、C4、D3、及びD4を含む。フィルタサポート位置は陰影付きで大文字を用いて示し、幾つかのサブ画素位置は点線と小文字のボックスとして示す。
MCユニット37は、このようにして、ビデオブロック中の画素のサブセットのみに対して画素を補間し得、サブ画素値を補間することに基づいて予測ブロックを生成し得る。他の例では、MCユニット37は、このようにして、ビデオブロックのあらゆる画素に対して画素を補間し得る。MCユニット37は、これらの4つの整数画素位置を使用してサブ画素位置を予測するために任意の適切なタイプの補間フィルタを使用し得る。他の例では、MCユニット37は、4つのフル整数画素位置の任意のセットを使用してサブ画素位置を補間し得る。
図9は、サブ整数画素位置に関する矩形6画素フィルタサポートを示す概念図である。この例では、MCユニット37は、影付き整数画素値に基づいて、フル画素位置に関連する任意のサブ画素位置についてのサブ画素値を計算し得る。フィルタサポート位置は陰影付きで大文字を用いて示し、幾つかのサブ画素位置は点線と小文字のボックスとして示す。この場合、サブ画素値のいずれかを計算することは、6つの整数画素位置のセットに対応するフィルタサポート位置の矩形アレイを定義する補間フィルタを適用することを備える。図8に示した例では、6つの整数画素位置は、サブ画素位置を囲む4つのフル整数画素位置、ならびにサブ画素位置を囲む4つのフル整数画素位置に隣接する2つのさらなるフル整数画素位置を含む。図9では、サブ画素位置「f」が予測されるので、フィルタサポートは、サブ画素「f」の周りに配置された4つのフル画素位置C3、C4、D3、及びD4、ならびに隣接するフル画素位置B3及びB4を含む。
他の例では、隣接するフル画素位置は、C2及びD2、C5及びD5、又はE3及びE4を含み得る。他の例では、MCユニット37は、6つのフル整数画素位置の任意のセットを使用してサブ画素位置を補間し得る。任意の好適な6タップ補間フィルタは、サブ整数画素位置を予測するために使用され得る。
エントロピーコード化ユニット46は、係数値のセットをコード化し、符号化ビットストリームの一部として補間フィルタの係数値を出力し得、次いで、符号化ビットストリームは別の機器に送信され得る。図9に示す各異なるサブ画素位置に関して定義された係数値の複数のセットの各々は、12個以上の整数画素位置に対して異なる重み付けを定義し得る。エントロピーコード化ユニット46はまた、フィルタサポートのセットをコード化し、コード化ビットストリームの一部としてフィルタサポートのセットを出力し得、次いで、符号化ビットストリームは別の機器に送信され得る。
再び図3を参照すると、単一の予測単位内のサブ整数画素位置の異なるセットは、同じ画像フレームからのフィルタサポートの異なるセットに同じ補間フィルタを適用していることがある。更に、同じ又は異なる補間フィルタは、単一の予測単位内のフィルタサポートの異なるセットに適用され得る。例えば、サブ画素位置「e」は、図4に示したように6つの対角サポートを使用して予測され得る。サブ画素「e」についてのフィルタサポートは、フル整数画素位置A1、B2、C3、D4、E5、及びF6を含み得る。サブ画素「e」のために使用される補間フィルタは、6タップウィーナーフィルタであり得る。同じ予測単位内で、サブ画素位置「j」は、図5に示したようにx字形を有する12個のフル整数画素位置のセットを使用して予測され得る。サブ画素「j」についてのフィルタサポートは、フル整数画素位置A1、A6、B2、B5、C3、C4、D3、D4、E2、E5、F1、及びF6を含み得る。サブ画素「e」のために使用される補間フィルタは、12タップウィーナーフィルタ(twelve−tap Wiener filter)であり得る。
更に、サブ整数画素位置「h」は、図6に示したように十字形サポートを使用して予測され得る。サブ画素「h」についてのフィルタサポートは、A3、B3、C1、C2、C3、C4、C5、C6、D3、D4、E3、及びF3を含む12個のフル整数画素位置を含み得る。サブ画素「h」を予測するために使用される補間フィルタは、12タップ分離可能又は非分離可能フィルタであり得る。別のサブペル位置「k」は、図7に示したように予測され得る。サブ画素「k」についての円形のフィルタサポートは、B3、B4、C2、C3、C4、C5、D2、D3、D4、D5、E3、及びE4を含む12個のフル整数画素位置を含み得る。サブ画素「h」を予測するために使用される補間フィルタは、12タップフィルタであり得る。
更に、図8に示したように、サブ整数画素位置「m」は、サブ画素「m」に最も近い4つのフル整数画素位置を使用して予測され得る。サブ画素「m」のためのC3、C4、D3、及びD4を含むフィルタサポートを用いた4タップ補間フィルタが使用され得る。別の例として、サブ整数画素位置「f」は、図9に示すように矩形サポートを使用して予測され得る。サブ画素「f」についてのフィルタサポートは、B3、B4、C3、C4、D3、及びD4を含む6つのフル整数画素位置を含み得る。サブ画素「f」を予測するために使用される補間フィルタは、12タップ分離可能又は非分離可能フィルタであり得る。
予測単位のためのサブ画素位置を予測するために使用されるフィルタサポートの異なるセットのわずか数例について上記で説明した。本明細書で説明するように、サブ画素位置「e」、「j」、「h」、「k」、「m」、及び「f」はそれぞれ、異なるフィルタサポートを使用して予測される。これらのサブ画素位置のうちの幾つかは、同じ補間フィルタを使用して予測され得る。例えば、サブ画素「e」及び「f」は両方とも、6タップウィーナーフィルタ(six−tap Wiener filter)を使用して予測され得る。他のサブ画素位置は、他のサブ画素位置とは異なる補間フィルタを使用して予測され得る。
他の例では、幾つかのフル整数画素位置は、サブ画素位置の値を計算することにおいて繰り返され得る。例えば、1D6タップ補間フィルタ(1D 6−tap interpolation filter)が使用されている場合、サブ画素位置についてのサポートは、6つ未満のフル整数画素位置のセットを備え得る。そのような例では、フル整数画素位置のうちの1つ又は複数が繰り返される。一例では、サブ画素位置に最も近いそれらのフル整数画素位置は、繰り返されるフル整数画素位置である。同様に、一例では、1/2画素位置「e」の場合、6タップフィルタのタップは、B3、C3、C4、D3、及びD4に対応し得る。例えば、サブ画素位置「e」についての画素値は、式(8)を使用して計算され得る。
e = ((B3 - 5*C4 +20*C3 + 20*C3 - 5*D3 + D4) + 16)/32 (8)
これらの特定の例で説明したように、サブペル位置は、別のサブペル位置に依存しない。しかしながら、他の例では、サブペル位置は、別のサブペル位置に依存し得る。各サブ画素位置についてのフィルタサポートの任意の組合せ及び補間フィルタの任意の選定を含む、多くの他の例が考えられる。他の多くのフィルタサイズ及び形状が、サブペルフィルタ処理に応じて使用され得る。
図10は、本明細書で説明する方法でコード化されたビデオシーケンスを復号し得るビデオデコーダ28の一例を示すブロック図である。ビデオデコーダ28は、本明細書では「コーダ」と呼ぶ専用ビデオコンピュータ機器又は装置の一例である。図10に示すように、ビデオデコーダ28は、機器20のビデオデコーダ28に対応する。但し、他の例では、ビデオデコーダ28は、異なる機器に対応し得る。さらなる例では、他のユニット(例えば、他のエンコーダ/デコーダ(CODEC)など)も、ビデオデコーダ28と同様の技法を実行することができる。
ビデオデコーダ28は、量子化係数及び予測シンタックス要素を生成するために、受信したビットストリームをエントロピー復号するエントロピー復号ユニット52を含む。予測シンタックス要素は、コード化モード、1つ以上の動きベクトル、サブ画素データを生成するために使用される補間技法を識別する情報、補間フィルタ処理中に使用するための係数、及び/又は予測ブロックの生成に関連する他の情報を含み得る。
予測シンタックス要素、例えば、係数は、予測ユニット55に転送される。固定フィルタの係数に対して又は互いに対して係数をコード化するために予測が使用された場合、係数予測及び逆量子化ユニット53は、実際の係数を定義するためにシンタックス要素を復号することができる。また、量子化が予測シンタックスのいずれかに適用された場合、係数予測及び逆量子化ユニット53は、そのような量子化を除去することもできる。例えば、フィルタ係数は、本開示に従って予測コード化され、量子化され得、この場合、係数予測及び逆量子化ユニット53は、そのような係数を予測的に復号し、逆量子化するためにビデオデコーダ28によって使用され得る。
予測ユニット55は、ビデオエンコーダ22の予測ユニット32に関して上記で詳細に説明したのと殆んど同じ方法で、メモリ62に記憶された予測シンタックス要素と1つ以上の前に復号されたブロックとに基づいて、予測データを生成し得る。特に、予測ユニット55は、動き補償中に本開示の補間フィルタ処理技法のうちの1つ以上を実行して、1/4画素精度などの特定の精度で予測ブロックを生成し得る。従って、本開示の技法のうちの1つ又は複数は、予測ブロックを生成する際にビデオデコーダ28によって使用され得る。予測ユニット55は、本開示の補間及び補間様フィルタ処理技法のために使用されるフィルタを備える動き補償ユニットを含み得る。動き補償構成要素は、説明を簡単で容易にするために図10に示していない。
逆量子化ユニット56は、量子化された係数を逆量子化(inverse quantize)、即ち、逆量子化(dequantize)する。逆量子化プロセスは、H.264復号、又は任意の他の復号規格のために定義されたプロセスであり得る。逆変換ユニット58は、画素領域における残差ブロックを生成するために、変換係数に、逆変換、例えば、逆DCT又は概念的に同様の逆変換プロセスを適用する。加算器64は、残差ブロックを、予測ユニット55によって生成された対応する予測ブロックと加算して、ビデオエンコーダ22によってコード化された元のブロックの再構成されたバージョンを形成する。必要に応じて、ブロックノイズを除去するために、デブロッキングフィルタを適用して、復号ブロックをフィルタ処理し得る。次いで、復号ビデオブロックはメモリ62に記憶され、メモリ62は、その後の動き補償のために参照ブロックを与え、(図1の機器28などの)表示装置を駆動するために復号ビデオをも生成する。
本開示の補間フィルタ処理技法を使用して、ビデオデコーダ28は、任意のサイズ又は形状のフィルタサポートを有する補間フィルタを使用してサブ画素位置についての画素値を計算し得る。一例では、ビデオデコーダ28は、36位置フィルタサポート(即ち、図3に示す2D6×6フィルタサポート)を使用してサブ画素についての画素値を計算するためにNS−AIF技法を使用する。別の例として、S−AIFは、補間フィルタ処理のためのフィルタサポートとして、分離可能整数画素位置を使用し得る。更に別の例では、D−AIFは、6位置フィルタサポート又は12位置対角フィルタサポートのいずれかを有する補間フィルタを使用してサブ画素位置を計算する。サブ画素位置を計算するために、任意のITU−T H.264補間フィルタなど、他の補間フィルタが使用され得る。次に、サブ画素位置をコード化又は復号するために、既知の、又は後で企図される任意の好適な補間フィルタが使用され得る。更に、ビデオデコーダ28は、固定補間フィルタ、交換補間フィルタ、又は適応補間フィルタである補間フィルタ、若しくはそれらの組合せを使用し得る。補間フィルタは、更に分離可能又は非分離可能であり得る。一例では、ビデオデコーダ28は、(例えば、ビデオエンコーダ22からの)受信したビットストリームにおいて適用すべきフィルタの指標、及びフィルタを適用すべきフィルタサポートのセットの指標を受信し得る。
場合によっては、フィルタサポートは、所与のサブ画素とのそれの可能性のある相関に基づいて選定され得る。例えば、D−AIFに記載の対角フィルタサポートを使用することの1つの欠点は、フィルタ処理で使用される整数画素位置が、補間されるべき現在の位置からはるかに離れているということである。補間されるべき現在の位置とフィルタサポートとして使用される画素の位置との間の距離が増加するにつれて、空間画素相関は減少する。従って、D−AIFで使用される対角フィルタサポートは、正確な予測を形成することにあまり適していない。
D−AIFによって提供される同じ低複雑度を維持しながら、補間されるべき位置とのより高い相関をもつ画素(即ち、補間されるべき位置により近い、又は補間されるべき位置からより短い距離の画素位置)を使用してより良い予測を行うために、フィルタサポートのより好適なセットがサブ画素に対して使用され得る(例えば、図8に示した4位置フィルタサポートは、補間のために使用され得る)。本開示で説明する4位置フィルタサポートで使用される整数画素位置は、サブ画素位置を囲む4つの整数画素位置即ち、整数画素位置C3、C4、D3、及びD4を含み、4つの整数画素位置は、サブ画素位置のコーナーの近くに配置されるので、「コーナー」整数画素位置と呼ばれることがある。コーナー整数画素位置に加えて、図9に示したように、コーナー整数画素位置に直接隣接する1つ以上の整数画素位置も、フィルタサポートで使用され得る。コーナー整数画素位置に直接隣接する整数画素位置は、コーナー整数画素位置のすぐ上(上部又は北の方向)又は、すぐ下(下部又は南の方向)の整数画素位置及び、コーナー整数画素位置のすぐ左(又は西)、又は、すぐ右(又は東)の整数画素位置を含み得る。これらの特定の例では、これらの整数画素位置の全ては、補間されるべきサブ画素の2つの整数画素位置内に配置される。
しかしながら、本開示の技法によるフィルタサポートは、追加の整数画素位置を含み得る。例えば、フィルタサポートは、補間されるべきサブ画素位置の、放射形状を形成する3つの整数画素位置内に配置された整数画素位置を含み得る。更に、フィルタサポートは、サブ画素位置の4つ以上の整数画素位置内に配置された整数画素位置を含み得る。幾つかの例では、フィルタサポートは、所与のコード化ブロック中にフル整数画素位置の任意のサブセットを含み得る。
1/4画素位置又はより微細な解像度でも、少なくとも2つの整数画素位置内に配置された整数画素位置に基づいて補間され得る。また、フィルタサポートは、サブ画素位置とのフル整数画素位置の相関に基づいて選定され得る。このように、本開示のフィルタサポート技法は、補間されるべき位置とのより高い相関をもつ整数画素を使用して、より良い補間予測を行う。更に、任意のサブペルは、そのサブペルが依存する別のサブペルを予測又は復号する必要なしに予測又は復号され得る。
図11は、本開示に一致する画素フィルタサポートを利用するビデオエンコーダの例示的な動作を示す流れ図である。図11の技法について図2のビデオエンコーダ22の観点から説明するが、他の機器でも同様の技法を実行し得る。ビデオエンコーダ22は、参照サンプルの複数のフル整数画素位置についての値を受信する(102)。
ビデオエンコーダ22は、複数のフル整数画素位置のうちの1つの第1のサブ整数画素についての値を計算するために、複数のフル整数画素位置についての値の第1のセットに補間フィルタを適用する(104)。ビデオエンコーダ22は、フル整数画素位置のうちの1つの第2の異なるサブ整数画素についての値を計算するために、複数のフル整数画素位置についての値の第2の異なるセットに同じ補間フィルタを適用する(106)。これらの計算された値に基づいて、ビデオエンコーダ22は、第1のサブ整数画素と第2のサブ整数画素とのうちの一方を指す動きベクトルを使用して画素の現在のブロックをコード化し得る。図11に関して説明したビデオエンコーダ22の例示的な動作と同様の技法について、図12及び図13において更に説明する。
図12は、本開示に一致する画素フィルタサポートを利用するビデオエンコーダの別の例示的な動作を示す流れ図である。図12の技法について図2のビデオエンコーダ22の観点から説明するが、他の機器でも同様の技法を実行し得る。図示のように、図12では、予測ユニット32のMCユニット37は、整数画素位置に対応する整数画素値を含む画素のブロックをメモリ34から得る(112)。各サブ画素位置について、エンコーダ22は、画素のブロック中でフル整数画素位置のサブセットを備えるフィルタサポートを決定する(114)。フィルタサポートを決定するための方法について、図12及び図13に関して以下で説明する。フィルタサポートを決定するための方法は、ビデオエンコーダ22など、使用されているエンコーダの特定の特性に依存し得る。
(1つ以上の)フィルタ39は、サブ画素位置を囲む任意の数のフル整数画素位置を備えるフィルタサポートのセットに基づいてサブ画素値を計算する(116)。上記でより詳細に説明したように、フィルタサポートは任意の可能なサブ画素補間を生成するために使用され得る。
フィルタサポートが決定されると、MCユニット37は、次いで、計算されたサブ画素値に基づいて予測ブロックを生成する(118)。特に、MCユニット37は、補間サブ画素値を備える補間予測ブロックを生成し、出力し得る。加算器48は、次いで、例えば、コード化されているビデオブロックから補間予測ブロックを減算することによって、補間予測ブロックに基づいて現在のビデオブロックをコード化(120)して、残差ブロックを生成する。次いで、残差ブロックは、それぞれ変換ユニット38及び量子化ユニット40によって変換及び量子化される。エントロピーコード化ユニット46によるエントロピーコード化の後、ビデオエンコーダ22は、コード化ビデオビットストリームとフィルタ情報とを出力する(122)。フィルタ情報は、本明細書で説明するように、各サブ画素位置をコード化するためにどんなフィルタサポートが使用されたかの指標を備え得る。フィルタ情報はまた、特定のサブ画素位置のためにどんな補間フィルタが使用されたかの指標を含み得る。フィルタ情報は、コード化単位ごとに1回出力され、又は場合によっては、コード化単位の様々なエリアが様々なタイプのサブペル補間を使用するならば、コード化単位ごとに数回出力され得る。
図13は、本開示に一致するサブ整数画素のためのフィルタサポートを決定する例示的な方法を示す流れ図である。図13の技法について図2のビデオエンコーダ22の観点から説明するが、他の機器でも同様の技法を実行し得る。ビデオエンコーダ22は、画素のブロック中のサブ画素位置ごとにどのフィルタサポートを使用すべきかを決定するために、マルチパス技法を採用し得る。
図13に示すように、ビデオエンコーダ22は、フル整数画素位置の第1のセットを使用して補間されるサブ画素位置に基づいて、画素のブロックについての第1の動きベクトルを計算する(132)。例えば、従来の動き推定方法を使用して、フレームについて動きベクトルが計算され得る。上記で説明したように、サブペル位置を予測するために、任意の形状又は数のフル整数画素位置が使用され得る。ビデオエンコーダ22は、第1の動きベクトルについての第1の誤差値を計算する(134)。一例では、エンコーダ22は、サブペル位置についての予測の平均2乗誤差を使用して第1の誤差値を計算し得る。
ビデオエンコーダ22は、フル整数画素位置の第2のセットを使用して補間されるサブ画素位置に基づいて、画素のブロックについての第2の動きベクトルを計算する(136)。フル整数画素位置の第1のセットは、フル整数画素位置の第2のセットとは異なり得る。ビデオエンコーダ22は、第2の動きベクトルについての第2の誤差値を計算する(138)。同様に、第2の誤差値は、平均2乗誤差計算を使用して計算され得る。
第1の誤差値と第2の誤差値との比較に基づいて、エンコーダ22は、フル整数画素位置の第1のセットと第2のセットとのうちの一方を選択する(140)。例えば、フル整数画素位置のセットが、サブ画素位置についてのより小さい誤りを生じるために、フル整数画素位置のそのセットは、サブ画素位置についてのフィルタサポートとして選択され得る。図13に示す技法は、画素のブロック中のサブ画素位置ごとに適用され得る。他の例では、図13に示す技法は、単一のサブ画素位置についての画素のブロック当たり1回適用され得る。
一例では、この決定は、サブ画素ごとに行われ得る。更に、この例示的な方法は、複数の異なる補間フィルタの各々について実行され得る。そのような例では、フィルタサポート及び補間フィルタは、最小誤りを与えることなど、所与のファクタのために選定され得る。
あるサブペル、例えば、サブペル「b」を指す全てのブロックについて、エンコーダ22は、フル整数画素位置の複数のセットを使用してサブペル「b」を予測する。次いで、エンコーダ22は、サブペル「b」の様々な予測について平均2乗誤差を計算し、最小誤りを与えるサブペル「b」の予測に対応するフル整数画素位置のセットを選択し得る。ビデオエンコーダ22は、サブ画素位置ごとに、このプロセスを繰り返し得る。他の例では、ビデオエンコーダ22は、同様の状況にあるサブ画素位置にフィルタサポートの同様のセットを適用する。
図14は、本開示に一致するサブ整数画素のためのフィルタサポートを決定する別の例示的な方法を示す流れ図である。この例では、第1の前にコード化されたフレーム中のサブ画素位置ごとにフィルタサポートを決定する(152)。一例では、フィルタサポートは、図13に関して説明したように第1のフレームについて決定される。ビデオエンコーダ22は、フィルタサポートのセットが、先行するフレーム中の対応するサブ画素に適用されたとき、第2の後続のフレーム中の各サブ画素にフィルタサポートの同じセットを適用する(154)。例示的な方法は、マルチパス技法を実行することを回避する。
サブペル位置についてのフィルタサポートを選択する他の方法は、サブ画素位置を囲む任意の数のフル整数画素位置のサブセットを選択することを含み得る。フル整数画素位置は、予測されるべきサブ画素位置の位置、サブ画素位置とのフル整数画素位置の相関、又はサブ画素位置へのフル整数画素位置の近接度を含む、任意の数のファクタに基づいて選択され得る。
図3及び図7に示すように、サブ画素値についてのフィルタサポートの幾つかの例示的なセットは、サブ画素位置を囲む12個以上の位置を備えるフィルタサポートのセットに基づき得る。別の例では、図4〜図7及び図9に示すように、(1つ又は複数の)フィルタ39は、サブ画素位置に関連するフル整数画素位置を含む6つ以上の位置を備えるフィルタサポートのセットに基づいて、サブ画素値を計算する。更に別の例では、図8に示したように、(1つ又は複数の)フィルタ39は、サブ画素位置を囲む4つのフル整数画素位置を備えるフィルタサポートのセットに基づいて、サブ画素値を計算する。
図15は、本開示に一致するフィルタサポートを利用するビデオデコーダの例示的な動作を示す流れ図である。従って、図15のプロセスは、図11のコード化プロセスとは逆の復号プロセスと考えられ得る。図14について図10のビデオデコーダ28の観点から説明するが、他の機器でも同様の技法を実行し得る。
ビデオデコーダ28は、複数のフル整数画素位置を備える参照サンプルを受信する(172)。一例では、ビデオデコーダ28は、ビデオエンコーダ22などのビデオエンコーダから参照サンプルを受信する。ビデオデコーダ28は、参照サンプルのフル整数画素位置のセットの指標を受信する(174)。フル整数画素位置のセットは、参照サンプルのサブ整数画素についての値を補間するために使用されていることがある。
参照サンプルのサブ整数画素の値を計算するために、ビデオエンコーダ28が、フル整数画素位置のセットに補間フィルタを適用する(176)。ビデオデコーダ28はまた、サブ整数画素の計算された値に対する画素の現在のブロックを復号する(178)。図15に関して説明したビデオデコーダ28の例示的な動作と同様の技法について、図16において更に説明する。
図16は、本開示に一致するフィルタサポートを利用するビデオデコーダの別の例示的な動作を示す流れ図である。従って、図16のプロセスは、図12のコード化プロセスとは逆の復号プロセスと考えられ得る。図14について図10のビデオデコーダ28の観点から説明するが、他の機器でも同様の技法を実行し得る。
図14に示すように、ビデオデコーダ28は、符号化ビデオブロックとフィルタ情報とを受信する(202)。エントロピー復号ユニット52は、この受信情報をエントロピー復号し得る。予測ユニット55は、本開示の技法に従って補間動き補償を実行する。特に、予測ユニット55は、整数画素位置に対応する整数画素値を含む画素のブロックをメモリ62から得る(204)。予測ユニット55は、受信した動きベクトルを使用して、補間をどのように実行するかを決定し得る。
動きベクトルに基づいて、予測ユニット55は、フィルタサポートのセットと補間フィルタのタイプとに基づいてサブ画素を計算する(206)。幾つかの例では、補間フィルタのタイプは、幾つかのサブ画素位置について同じままである。一例では、画素の現在のブロックをコード化するために使用されるフル整数画素位置のセットの指標は、画素の現在のブロックの予測単位レベル、コード化単位レベル、フレームレベル、スライスレベル、又はシーケンスレベルのうちの少なくとも1つでデコーダ28に与えられる。このようにして、予測ユニット55は、補間を使用して予測ブロックを生成する(208)。加算器64を呼び出して予測ブロックを残差ブロックに加算(210)することによって、予測ブロックを使用して残差ビデオブロックを復号する。サブ画素位置についてのフィルタサポートの異なるセットの使用を含む、本明細書で説明する補間の様々な態様は、従来の技法よりも良好な品質の補間データを与えることによってビデオコード化を改善し得る。
本開示で説明する技法は、ハードウェア、ソフトウェア、ファームウェア、又はそれらの任意の組合せで実装され得る。ユニット又は構成要素として説明する特徴は、集積論理機器に一緒に、又はディスクリートであるが相互運用可能な論理機器として別々に実装され得る。ソフトウェアで実装した場合、本技法は、実行されたときに、上記で説明した方法のうちの1つ又は複数を実行する命令を備えるコンピュータ可読媒体によって少なくとも部分的に実現され得る。コンピュータ可読媒体は、パッケージング材料を含む、コンピュータプログラム製品の一部を形成し得る。コンピュータ可読媒体は、シンクロナスダイナミックランダムアクセスメモリ(SDRAM)などのランダムアクセスメモリ(RAM)、読取り専用メモリ(ROM)、不揮発性ランダムアクセスメモリ(NVRAM)、電気的消去可能プログラマブル読取り専用メモリ(EEPROM(登録商標))、フラッシュメモリ、磁気又は光学データ記憶媒体などを備え得る。本技法は、追加又は代替として、命令又はデータ構造の形態でコードを搬送又は通信し、コンピュータによってアクセス、読取り、及び/又は実行され得るコンピュータ可読通信媒体によって、少なくとも部分的に実現され得る。
コードは、1つ以上のデジタル信号プロセッサ(DSP)などの1つ以上のプロセッサ、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブル論理アレイ(FPGA)、あるいは他の等価な集積回路又はディスクリート論理回路によって実行され得る。従って、本明細書で使用する「プロセッサ」という用語は、前述の構造、又は本明細書で説明した技法の実装に好適な他の構造のいずれかを指し得る。更に、幾つかの態様では、本明細書で説明した機能は、コード化及び復号のために構成された専用のソフトウェアユニット又はハードウェアユニット内に提供され得、あるいは複合ビデオエンコーダ/デコーダ(コーデック)に組み込まれ得る。ユニットとしての様々な機能の図は、図示した機器の様々な機能的態様を強調するものであり、そのようなユニットが別々のハードウェア又はソフトウェア構成要素によって実現されなければならないことを必ずしも暗示するわけではない。そうではなく、1つ以上のユニットに関連する機能は、共通又は別個のハードウェア又はソフトウェア構成要素内に組み込まれ得る。
本開示の様々な例について説明した。これら及び他の例は以下の特許請求の範囲内に入る。
以下に本件出願当初の特許請求の範囲に記載された発明を付記する。
[1] ビデオデータを符号化する方法であって、参照サンプルのフル整数画素位置についての値を受信することと、前記フル整数画素位置のうちの1つの第1のサブ整数画素についての値を計算するために、前記フル整数画素位置についての前記値の第1のセットに補間フィルタを適用することと、前記フル整数画素位置のうちの前記1つの第2の異なるサブ整数画素についての値を計算するために、前記フル整数画素位置についての前記値の第2の異なるセットに前記補間フィルタを適用することと、前記第1のサブ整数画素と前記第2のサブ整数画素とのうちの一方を指す動きベクトルを使用して画素のブロックを符号化することと、を備える方法。
[2] 前記補間フィルタが第1の補間フィルタであり、前記フル整数画素位置のうちの前記1つの第3のサブ整数画素についての値を計算するために、前記フル整数画素位置についての値の第3のセットに第2の異なる補間フィルタを適用することを更に備える、[1]に記載の方法。
[3] 前記第1のサブ整数画素についての前記値を計算するために使用される前記補間フィルタの指標を与えることを更に備える、[1]に記載の方法。
[4] 画素の前記ブロックを符号化するために使用される前記フル整数画素位置のセットの指標を与えることを更に含み、前記セットが前記第1のセットと前記第2のセットとのうちの一方に対応する、[1]に記載の方法。
[5] 前記複数のフル整数画素位置のうちの前記1つに対応する予測単位の予測単位ヘッダ、前記予測単位を備えるコード化単位のコード化単位ヘッダ、前記コード化単位を備えるフレーム単位のフレームヘッダ、前記フレーム単位を備えるスライス単位のスライスヘッダ、又は前記フレーム単位を備えるシーケンス単位のシーケンスヘッダのうちの少なくとも1つにおける画素の前記ブロックを符号化するために使用される前記フル整数画素位置の前記セットの前記指標を与えることを更に備える、[4]に記載の方法。
[6] 整数画素位置の複数のセットから前記フル整数画素位置の前記セットを選択することであって、前記セットへのインデックスが、前記第1のサブ整数画素位置と前記第2のサブ整数画素位置とのうちの一方についての前記値を計算するために使用される前記フル整数画素位置の前記セットを示すように、前記フル整数画素位置の前記セットの前記指標が前記インデックスを識別する、選択することを更に備える、[4]に記載の方法。
[7] 前記フル整数画素位置についての前記値の前記第1のセットが、前記フル整数画素位置のうちの4つのフル整数画素位置の前記値、即ち、前記第1のサブ整数画素に関連する前記複数のフル整数画素位置のうちの前記1つのほぼ付近に位置するフル整数画素位置の前記値と、前記第1のサブ整数画素に関連する前記複数のフル整数画素位置のうちの前記1つのほぼ付近の対角方向の1つに位置するフル整数画素位置の前記値と、前記第1のサブ整数画素に関連する前記複数のフル整数画素位置のうちの前記1つのほぼ付近の水平方向の1つに位置するフル整数画素位置の前記値と、前記第1のサブ整数画素に関連する前記複数のフル整数画素位置のうちの前記1つのほぼ付近の垂直方向の1つに位置するフル整数画素位置の前記値とのうちの少なくとも1つを備える、[1]に記載の方法。
[8] 前記第1のサブ整数画素についての前記値が第1の値を備え、前記方法が、前記第1のサブ整数画素のための第2の値を計算するために前記フル整数画素位置についての値の第2のセットに前記補間フィルタを適用することと、前記第1の値と前記第2の値との各々のための誤差値を決定することと、少なくとも前記第1の値と前記第2の値との間の前記誤差値に基づいて、前記フル整数画素位置についての値の前記第1のセットと、前記フル整数画素位置についての値の前記第2のセットとのうちの一方を選択することと
を更に備える、[1]に記載の方法。
[9] データをコード化するための装置であって、参照サンプルのフル整数画素位置についての値を受信することと、前記フル整数画素位置のうちの1つの第1のサブ整数画素についての値を計算するために、前記フル整数画素位置についての前記値の第1のセットに補間フィルタを適用することと、前記フル整数画素位置のうちの前記1つの第2の異なるサブ整数画素についての値を計算するために、前記フル整数画素位置についての前記値の第2の異なるセットに前記補間フィルタを適用することと、前記第1のサブ整数画素と前記第2のサブ整数画素とのうちの一方を指す動きベクトルを使用して画素のブロックをコード化することとを行うように構成されたビデオエンコーダを備える、装置。
[10] 前記補間フィルタが第1の補間フィルタを備え、前記ビデオエンコーダが、前記フル整数画素位置のうちの1つの第3のサブ整数画素についての値を計算するために、前記フル整数画素位置についての値の第3のセットに第2の異なる補間フィルタを適用するように更に構成された、[9]に記載の装置。
[11] 前記ビデオエンコーダが、前記第1のサブ整数画素についての前記値を計算するために使用される前記補間フィルタの指標を与えるように構成された、[9]に記載の装置。
[12] 前記ビデオエンコーダが、画素の前記ブロックをコード化するために使用される前記フル整数画素位置のセットの指標を与えるように更に構成され、前記セットが前記第1のセットと前記第2のセットとのうちの一方に対応する、[9]に記載の装置。
[13] 画素の前記ブロックをコード化するために使用される前記フル整数画素位置の前記セットの前記指標が、前記フル整数画素位置のうちの前記1つに対応する予測単位の予測単位ヘッダ、前記予測単位を備えるコード化単位のコード化単位ヘッダ、前記コード化単位を備えるフレーム単位のフレームヘッダ、前記フレーム単位を備えるスライス単位のスライスヘッダ、又は前記フレーム単位を備えるシーケンス単位のシーケンスヘッダのうちの少なくとも1つにおいて与えられる、[12]に記載の装置。
[14] 前記ビデオエンコーダが、整数画素位置の複数のセットから前記フル整数画素位置の前記セットを選択するように更に構成され、前記セットへのインデックスが、前記第1のサブ整数画素位置と前記第2のサブ整数画素位置とのうちの一方についての前記値を計算するために使用される前記フル整数画素位置の前記セットを示すように、前記フル整数画素位置の前記セットの前記指標が前記インデックスを識別する、[9]に記載の装置。
[15] 前記フル整数画素位置についての前記値の前記第1のセットが、前記フル整数画素位置のうちの4つのフル整数画素位置の前記値、即ち、前記第1のサブ整数画素に関連する前記フル整数画素位置のうちの前記1つのほぼ付近に位置するフル整数画素位置の前記値と、前記第1のサブ整数画素に関連する前記フル整数画素位置のうちの前記1つのほぼ付近の対角方向の1つに位置するフル整数画素位置の前記値と、前記第1のサブ整数画素に関連する前記フル整数画素位置のうちの前記1つのほぼ付近の水平方向の1つに位置するフル整数画素位置の前記値と、前記第1のサブ整数画素に関連する前記フル整数画素位置のうちの前記1つのほぼ付近の垂直方向の1つに位置するフル整数画素位置の前記値とのうちの少なくとも1つを備える、[9]に記載の装置。
[16] 前記第1のサブ整数画素についての前記値が第1の値を備え、前記ビデオエンコーダが、前記第1のサブ整数画素のための第2の値を計算するために前記フル整数画素位置についての値の第2のセットに前記補間フィルタを適用することと、誤差値又は前記第1の値と前記第2の値との各々を決定することと、少なくとも前記第1の値と前記第2の値との間の前記誤差値に基づいて、前記フル整数画素位置についての値の前記第1のセットと、前記フル整数画素位置についての値の前記第2のセットとのうちの一方を選択することとを行うように更に構成された、[9]に記載の装置。
[17] 実行されたとき、参照サンプルのフル整数画素位置についての値を受信することと、前記フル整数画素位置のうちの1つの第1のサブ整数画素についての値を計算するために、前記フル整数画素位置についての前記値の第1のセットに補間フィルタを適用することと、前記フル整数画素位置のうちの前記1つの第2の異なるサブ整数画素についての値を計算するために、前記フル整数画素位置についての前記値の第2の異なるセットに前記補間フィルタを適用することと、前記第1のサブ整数画素と前記第2のサブ整数画素とのうちの一方を指す動きベクトルを使用して画素のブロックを符号化することと、をビデオコード化装置のプロセッサに行わせる命令を記憶したコンピュータ可読記憶媒体を備えるコンピュータプログラム製品。
[18] 前記補間フィルタが第1の補間フィルタであり、前記命令が、前記フル整数画素位置のうちの1つの第3のサブ整数画素についての値を計算するために、前記フル整数画素位置についての値の第3のセットに第2の異なる補間フィルタを適用することを前記ビデオコード化装置に更に行わせる、[17]に記載のコンピュータ可読記憶媒体。
[19] 前記命令は、画素の前記ブロックを符号化するために使用される前記フル整数画素位置のセットの指標を与えることを前記ビデオコード化装置に更に行わせ、前記セットが前記第1のセット又は前記第2のセットのうちの一方に対応する、[17]に記載のコンピュータ可読記憶媒体。
[20] 画素の前記ブロックを符号化するために使用される前記フル整数画素位置の前記セットの前記指標が、前記フル整数画素位置のうちの前記1つに対応する予測単位の予測単位ヘッダ、前記予測単位を備えるコード化単位のコード化単位ヘッダ、前記コード化単位を備えるフレーム単位のフレームヘッダ、前記フレーム単位を備えるスライス単位のスライスヘッダ、又は前記フレーム単位を備えるシーケンス単位のシーケンスヘッダのうちの少なくとも1つにおいて与えられる、[19]に記載のコンピュータ可読記憶媒体。
[21] 前記フル整数画素位置についての前記値の前記第1のセットが、前記フル整数画素位置のうちの4つのフル整数画素位置の前記値、即ち、前記第1のサブ整数画素に関連する前記フル整数画素位置のうちの前記1つのほぼ付近に位置するフル整数画素位置の前記値と、前記第1のサブ整数画素に関連する前記フル整数画素位置のうちの前記1つのほぼ付近の対角方向の1つに位置するフル整数画素位置の前記値と、前記第1のサブ整数画素に関連する前記フル整数画素位置のうちの前記1つのほぼ付近の水平方向の1つに位置するフル整数画素位置の前記値と、前記第1のサブ整数画素に関連する前記フル整数画素位置のうちの前記1つのほぼ付近の垂直方向の1つに位置するフル整数画素位置の前記値とのうちの少なくとも1つを備える、[17]に記載のコンピュータ可読記憶媒体。
[22] 参照サンプルのフル整数画素位置についての値を受信するための手段と、前記フル整数画素位置のうちの1つの第1のサブ整数画素についての値を計算するために、前記フル整数画素位置についての前記値の第1のセットに補間フィルタを適用するための手段と、前記フル整数画素位置のうちの前記1つの第2の異なるサブ整数画素についての値を計算するために、前記フル整数画素位置についての前記値の第2の異なるセットに前記補間フィルタを適用するための手段と、前記第1のサブ整数画素と前記第2のサブ整数画素とのうちの一方を指す動きベクトルを使用して画素のブロックをコード化するための手段と
を備える装置。
[23] 前記補間フィルタが第1の補間フィルタであり、前記装置が、前記フル整数画素位置のうちの前記1つの第3のサブ整数画素についての値を計算するために、前記フル整数画素位置についての値の第3のセットに第2の異なる補間フィルタを適用するための手段を更に備える、[22]に記載の装置。
[24] 画素の前記ブロックを符号化するために使用される前記フル整数画素位置のセットの指標を与えるための手段を更に備え、前記セットが前記第1のセットと前記第2のセットとのうちの一方に対応し、画素の前記ブロックを符号化するために使用される前記フル整数画素位置の前記セットの前記指標が、前記フル整数画素位置のうちの前記1つに対応する予測単位の予測単位ヘッダ、前記予測単位を備えるコード化単位のコード化単位ヘッダ、前記コード化単位を備えるフレーム単位のフレームヘッダ、前記フレーム単位を備えるスライス単位のスライスヘッダ、又は前記フレーム単位を備えるシーケンス単位のシーケンスヘッダのうちの少なくとも1つにおいて与えられる、[22]に記載の装置。
[25] 画素の前記ブロックを符号化するために使用される前記フル整数画素位置のセットの指標を与えるための手段であって、前記セットが前記第1のセットと前記第2のセットとのうちの一方に対応する、与えるための手段と、整数画素位置の複数のセットから前記フル整数画素位置の前記セットを選択するための手段と、を更に備え、前記複数のセットへのインデックスが、前記第1のサブ整数画素位置と前記第2のサブ整数画素位置とのうちの一方についての前記値を計算するために使用される前記フル整数画素位置の前記セットを示すように、前記フル整数画素位置の前記セットの前記指標が前記インデックスを識別する、[22]に記載の装置。
[26] ビデオデータを復号する方法であって、フル整数画素位置を備える参照サンプルを受信することと、前記参照サンプルのサブ整数画素についての値を補間するために使用される前記参照サンプルの前記フル整数画素位置のセットの指標を受信することと、前記参照サンプルの前記サブ整数画素の前記値を計算するために、前記フル整数画素位置の前記セットに補間フィルタを適用することと、前記サブ整数画素の前記計算された値に対する画素のブロックを復号することと
を備える方法。
[27] 前記指標が第1の指標であり、前記フル整数画素位置の前記セットがフル整数画素位置の第1のセットであり、前記サブ整数画素が第1のサブ整数画素であり、前記参照サンプルの第2のサブ整数画素についての値を補間するために使用される前記参照サンプルの前記フル整数画素位置の第2のセットの指標を受信することと、前記参照サンプルの前記第2のサブ整数画素の前記値を計算するために、前記フル整数画素位置の前記第2のセットに前記補間フィルタを適用することと、前記第2のサブ整数画素の前記計算された値に対する画素の第2のブロックを復号することと、を更に備える、[26]に記載の方法。
[28] 前記第2のサブ整数画素の前記値を計算するために、前記フル整数画素位置の前記第2のセットに前記補間フィルタを適用することが、前記第1のサブ整数画素の前記値を計算することとは無関係に前記第2のサブ整数画素の前記値を計算することを更に備える、[27]に記載の方法。
[29] 前記参照サンプルの前記フル整数画素位置のセットの指標を受信することが、前記複数のフル整数画素位置のうちの前記1つに対応する予測単位の予測単位ヘッダ、前記予測単位を備えるコード化単位のコード化単位ヘッダ、前記コード化単位を備えるフレーム単位のフレームヘッダ、前記フレーム単位を備えるスライス単位のスライスヘッダ、又は前記フレーム単位を備えるシーケンス単位のシーケンスヘッダのうちの少なくとも1つにおいて前記指標を受信することを更に備える、[26]に記載の方法。
[30] 前記参照サンプルの前記第1のサブ整数画素の前記値を計算するために、前記フル整数画素位置の前記第1のセットに前記補間フィルタを適用することが、第1の補間フィルタを適用することを更に備え、前記参照サンプルの前記第2のサブ整数画素の前記値を計算するために、前記フル整数画素位置の前記第2のセットに前記補間フィルタを適用することが、第2の異なる補間フィルタを適用することを更に備える、[26]に記載の方法。
[31] 複数のセットへのインデックスが、前記参照サンプルのサブ整数画素についての前記値を計算するために使用される前記フル整数画素位置の前記セットを示すように、前記フル整数画素位置の前記セットの前記指標が前記インデックスを識別する、[26]に記載の方法。
[32] 前記フル整数画素位置についての前記値の前記セットが、前記フル整数画素位置のうちの4つのフル整数画素位置の前記値、即ち、前記第1のサブ整数画素に関連する前記フル整数画素位置のうちの前記1つのほぼ付近に位置するフル整数画素位置の前記値と、前記第1のサブ整数画素に関連する前記フル整数画素位置のうちの前記1つのほぼ付近の対角方向の1つに位置するフル整数画素位置の前記値と、前記第1のサブ整数画素に関連する前記フル整数画素位置のうちの前記1つのほぼ付近の水平方向の1つに位置するフル整数画素位置の前記値と、前記第1のサブ整数画素に関連する前記フル整数画素位置のうちの前記1つのほぼ付近の垂直方向の1つに位置するフル整数画素位置の前記値とのうちの少なくとも1つを備える、[26]に記載の方法。
[33] 前記参照サンプルの前記サブ整数画素の前記値を計算することが、前に復号された画素のブロックに少なくとも部分的に基づいて前記参照サンプルの前記サブ整数画素の前記値を計算することを更に備える、[26]に記載の方法。
[34] データを復号するための装置であって、フル整数画素位置を備える参照サンプルを受信することと、前記参照サンプルのサブ整数画素についての値を補間するために使用される前記参照サンプルの前記フル整数画素位置のセットの指標を受信することと、前記参照サンプルの前記サブ整数画素の前記値を計算するために、前記フル整数画素位置の前記セットに補間フィルタを適用することと、前記サブ整数画素の前記計算された値に対する画素のブロックを復号することとを行うように構成されたビデオデコーダを備える、装置。
[35] 前記指標が第1の指標であり、前記フル整数画素位置の前記セットがフル整数画素位置の第1のセットであり、前記サブ整数画素が第1のサブ整数画素であり、前記ビデオデコーダが、前記参照サンプルの第2のサブ整数画素についての値を補間するために使用される前記参照サンプルの前記フル整数画素位置の第2のセットの指標を受信することと、前記参照サンプルの前記第2のサブ整数画素の前記値を計算するために、前記フル整数画素位置の前記第2のセットに前記補間フィルタを適用することと、前記第2のサブ整数画素の前記計算された値に対する画素の第2のブロックを復号することとを行うように更に構成された、[34]に記載の装置。
[36] 前記ビデオデコーダが、前記第1のサブ整数画素の前記値を計算することとは無関係に前記第2のサブ整数画素の前記値を計算するように更に構成された、[35]に記載の装置。
[37] 前記参照サンプルの前記第1のサブ整数画素の前記値を計算するために、前記フル整数画素位置の前記第1のセットに前記補間フィルタを適用することが、第1の補間フィルタを適用することを更に備え、前記参照サンプルの前記第2のサブ整数画素の前記値を計算するために、前記フル整数画素位置の前記第2のセットに前記補間フィルタを適用することが、第2の異なる補間フィルタを適用することを更に備える、[35]に記載の装置。
[38] 前記ビデオデコーダが、前記複数のフル整数画素位置のうちの前記1つに対応する予測単位の予測単位ヘッダ、前記予測単位を備えるコード化単位のコード化単位ヘッダ、前記コード化単位を備えるフレーム単位のフレームヘッダ、前記フレーム単位を備えるスライス単位のスライスヘッダ、又は前記フレーム単位を備えるシーケンス単位のシーケンスヘッダのうちの少なくとも1つにおいて前記参照サンプルの前記フル整数画素位置の前記セットの前記指標を受信するように更に構成された、[34]に記載の装置。
[39] 複数のセットへのインデックスが、前記参照サンプルのサブ整数画素についての前記値を計算するために使用される前記フル整数画素位置の前記セットを示すように、前記フル整数画素位置の前記セットの前記指標が前記インデックスを識別する、[34]に記載の装置。
[40] 前記フル整数画素位置についての前記値の前記セットが、前記フル整数画素位置のうちの4つのフル整数画素位置の前記値、即ち、前記第1のサブ整数画素に関連する前記フル整数画素位置のうちの前記1つのほぼ付近に位置するフル整数画素位置の前記値と、前記第1のサブ整数画素に関連する前記フル整数画素位置のうちの前記1つのほぼ付近の対角方向の1つに位置するフル整数画素位置の前記値と、前記第1のサブ整数画素に関連する前記フル整数画素位置のうちの前記1つのほぼ付近の水平方向の1つに位置するフル整数画素位置の前記値と、前記第1のサブ整数画素に関連する前記フル整数画素位置のうちの前記1つのほぼ付近の垂直方向の1つに位置するフル整数画素位置の前記値とのうちの少なくとも1つを備える、[34]に記載の装置。
[41] 前記ビデオデコーダが、前に復号された画素のブロックに少なくとも部分的に基づいて前記参照サンプルの前記サブ整数画素の前記値を計算するように更に構成された、[34]に記載の装置。
[42] 実行されたとき、フル整数画素位置を備える参照サンプルを受信することと、前記参照サンプルのサブ整数画素についての値を補間するために使用される前記参照サンプルの前記フル整数画素位置のセットの指標を受信することと、前記参照サンプルの前記サブ整数画素の前記値を計算するために、前記フル整数画素位置の前記セットに補間フィルタを適用することと、前記サブ整数画素の前記計算された値に対する画素のブロックを復号することと
をビデオ復号装置のプロセッサに行わせる命令を記憶したコンピュータ可読記憶媒体を備えるコンピュータプログラム製品。
[43] 前記指標が第1の指標であり、前記フル整数画素位置の前記セットがフル整数画素位置の第1のセットであり、前記サブ整数画素が第1のサブ整数画素であり、前記命令が、前記参照サンプルの第2のサブ整数画素についての値を補間するために使用される前記参照サンプルの前記フル整数画素位置の第2のセットの指標を受信することと、前記参照サンプルの前記第2のサブ整数画素の前記値を計算するために、前記フル整数画素位置の前記第2のセットに前記補間フィルタを適用することと、前記第2のサブ整数画素の前記計算された値に対する画素の第2のブロックを復号することとをビデオコード化装置に更に行わせる、[42]に記載のコンピュータ可読記憶媒体。
[44] 前記参照サンプルの前記フル整数画素位置のセットの指標を受信することが、前記複数のフル整数画素位置のうちの前記1つに対応する予測単位の予測単位ヘッダ、前記予測単位を備えるコード化単位のコード化単位ヘッダ、前記コード化単位を備えるフレーム単位のフレームヘッダ、前記フレーム単位を備えるスライス単位のスライスヘッダ、又は前記フレーム単位を備えるシーケンス単位のシーケンスヘッダのうちの少なくとも1つにおいて前記指標を受信することを更に備える、[42]に記載のコンピュータ可読記憶媒体。
[45] 前記参照サンプルの前記第1のサブ整数画素の前記値を計算するために、前記フル整数画素位置の前記第1のセットに前記補間フィルタを適用することが、第1の補間フィルタを適用することを更に備え、前記参照サンプルの前記第2のサブ整数画素の前記値を計算するために、前記フル整数画素位置の前記第2のセットに前記補間フィルタを適用することが、第2の異なる補間フィルタを適用することを更に備える、[43]に記載のコンピュータ可読記憶媒体。
[46] 前記フル整数画素位置についての前記値の前記セットが、前記フル整数画素位置のうちの4つのフル整数画素位置の前記値、即ち、前記第1のサブ整数画素に関連する前記フル整数画素位置のうちの前記1つのほぼ付近に位置するフル整数画素位置の前記値と、前記第1のサブ整数画素に関連する前記フル整数画素位置のうちの前記1つのほぼ付近の対角方向の1つに位置するフル整数画素位置の前記値と、前記第1のサブ整数画素に関連する前記フル整数画素位置のうちの前記1つのほぼ付近の水平方向の1つに位置するフル整数画素位置の前記値と、前記第1のサブ整数画素に関連する前記フル整数画素位置のうちの前記1つのほぼ付近の垂直方向の1つに位置するフル整数画素位置の前記値とのうちの少なくとも1つを備える、[42]に記載のコンピュータ可読記憶媒体。
[47] フル整数画素位置を備える参照サンプルを受信するための手段と、前記参照サンプルのサブ整数画素についての値を補間するために使用される前記参照サンプルの前記フル整数画素位置のセットの指標を受信するための手段と、前記参照サンプルの前記サブ整数画素の前記値を計算するために、前記フル整数画素位置の前記セットに補間フィルタを適用するための手段と、前記サブ整数画素の前記計算された値に対する画素のブロックを復号するための手段と
を備える装置。
[48] 前記指標が第1の指標であり、前記フル整数画素位置の前記セットがフル整数画素位置の第1のセットであり、前記サブ整数画素が第1のサブ整数画素であり、前記参照サンプルの第2のサブ整数画素についての値を補間するために使用される前記参照サンプルの前記フル整数画素位置の第2のセットの指標を受信するための手段と、前記参照サンプルの前記第2のサブ整数画素の前記値を計算するために、前記フル整数画素位置の前記第2のセットに補間フィルタを適用するための手段と、前記第2のサブ整数画素の前記計算された値に対する画素の第2のブロックを復号するための手段と
を更に備える、[47]に記載の装置。
[49] 複数のセットへのインデックスが、前記参照サンプルのサブ整数画素についての前記値を計算するために使用される前記フル整数画素位置の前記セットを示すように、前記フル整数画素位置の前記セットの前記指標が前記インデックスを識別する、[47]に記載の装置。
[50] 前記フル整数画素位置についての前記値の前記セットが、前記フル整数画素位置のうちの4つのフル整数画素位置の前記値、即ち、前記第1のサブ整数画素に関連する前記フル整数画素位置のうちの前記1つのほぼ付近に位置するフル整数画素位置の前記値と、前記第1のサブ整数画素に関連する前記フル整数画素位置のうちの前記1つのほぼ付近の対角方向の1つに位置するフル整数画素位置の前記値と、前記第1のサブ整数画素に関連する前記フル整数画素位置のうちの前記1つのほぼ付近の水平方向の1つに位置するフル整数画素位置の前記値と、前記第1のサブ整数画素に関連する前記フル整数画素位置のうちの前記1つのほぼ付近の垂直方向の1つに位置するフル整数画素位置の前記値とのうちの少なくとも1つを備える、[47]に記載の装置。

Claims (36)

  1. ビデオデータを復号する方法であって、
    予測ブロックのそれぞれのサンプルごとに、
    ビデオデコーダが、前記それぞれのサンプルのサブ整数画素位置を決定することと、前記それぞれのサンプルの前記サブ整数画素位置は、フル整数画素に関連する合計15個の異なるサブ整数画素位置のうちの1つであり、前記フル整数画素に関連する前記15個の異なるサブ整数画素位置の各それぞれのサブ整数画素位置は、フィルタサポートの異なるそれぞれのセットを有し、フィルタサポートのそれぞれのセットは、フル整数画素のそれぞれのセットであり、
    前記ビデオデコーダが、前記それぞれのサンプルの前記サブ整数画素位置のためのフィルタサポートの前記セットと、補間フィルタとに基づいて、前記それぞれのサンプルを補間することと
    前記ビデオデコーダが、元のブロックを再現するため前記予測ブロックに残差ブロックを適用することと
    を備える方法。
  2. 前記フル整数画素に関連する前記サブ整数画素位置のそれぞれのサブ整数画素位置ごとに、前記それぞれのサブ整数画素位置のためのフィルタサポートの前記セットは、水平又は垂直な形状を有する、請求項1に記載の方法。
  3. 前記フル整数画素に関連する前記サブ整数画素位置の各々は、異なる補間フィルタを使用する、請求項1に記載の方法。
  4. 前記ビデオデコーダが、前記予測ブロックのそれぞれのサンプルごとに、前記それぞれのサンプルの前記サブ整数画素位置のためのフィルタサポートの前記セットを、前に符号化されたフレームに基づいて選択すること
    をさらに備える、請求項1に記載の方法。
  5. ビデオデータを復号するための機器であって、
    前記ビデオデータを記憶するように構成されたメモリと、
    1つ以上のプロセッサと
    を備え、前記1つ以上のプロセッサは、
    予測ブロックのそれぞれのサンプルごとに、
    前記それぞれのサンプルのサブ整数画素位置を決定することと、前記それぞれのサンプルの前記サブ整数画素位置は、フル整数画素に関連する合計15個の異なるサブ整数画素位置のうちの1つであり、前記フル整数画素に関連する前記15個の異なるサブ整数画素位置の各それぞれのサブ整数画素位置は、フィルタサポートの異なるそれぞれのセットを有し、フィルタサポートのそれぞれのセットは、フル整数画素のそれぞれのセットであり、
    前記サブ整数画素位置のためのフィルタサポートの前記セットと、補間フィルタとに基づいて、前記それぞれのサンプルを補間することと、
    元のブロックを再現するために前記予測ブロックに残差ブロックを適用することと
    を行うように構成される、機器。
  6. 前記フル整数画素に関連する前記サブ整数画素位置のそれぞれのサブ整数画素位置ごとに、前記それぞれのサブ整数画素位置のためのフィルタサポートの前記セットは、水平又は垂直な形状を有する、請求項に記載の機器。
  7. 前記フル整数画素に関連する前記サブ整数画素位置の各々は、異なる補間フィルタを使用する、請求項に記載の機器。
  8. 前記1つ以上のプロセッサは、
    前記予測ブロックのそれぞれのサンプルごとに、前記それぞれのサンプルの前記サブ整数画素位置のためのフィルタサポートの前記セットを、前に符号化されたフレームに基づいて選択すること
    を行うように構成される、請求項に記載の機器。
  9. ビデオデータを復号するための機器であって、
    予測ブロックのそれぞれのサンプルごとに、
    前記それぞれのサンプルのサブ整数画素位置を決定するための手段と、前記それぞれのサンプルの前記サブ整数画素位置は、フル整数画素に関連する合計15個の異なるサブ整数画素位置のうちの1つであり、前記フル整数画素に関連する前記15個の異なるサブ整数画素位置の各それぞれのサブ整数画素位置は、フィルタサポートの異なるそれぞれのセットを有し、フィルタサポートのそれぞれのセットは、フル整数画素のそれぞれのセットであり、
    前記それぞれのサンプルの前記サブ整数画素位置のためのフィルタサポートの前記セットと、補間フィルタとに基づいて、前記それぞれのサンプルを補間するための手段と、
    元のブロックを再現するために前記予測ブロックに残差ブロックを適用するための手段と
    を備える機器。
  10. 前記フル整数画素に関連する前記サブ整数画素位置のそれぞれのサブ整数画素位置ごとに、前記それぞれのサブ整数画素位置のためのフィルタサポートの前記セットは、水平又は垂直な形状を有する、請求項に記載の機器。
  11. 前記フル整数画素に関連する前記サブ整数画素位置の各々は、異なる補間フィルタを使用する、請求項に記載の機器。
  12. 前記予測ブロックのそれぞれのサンプルごとに、前記それぞれのサンプルの前記サブ整数画素位置のためのフィルタサポートの前記セットを、前に符号化されたフレームに基づいて選択するための手段
    をさらに備える、請求項に記載の機器。
  13. 命令を記憶したコンピュータ可読記憶媒体であって、前記命令は、実行されると、ビデオ復号機器のプロセッサに、
    予測ブロックのそれぞれのサンプルごとに、
    前記それぞれのサンプルのサブ整数画素位置を決定することと、前記それぞれのサンプルの前記サブ整数画素位置は、フル整数画素に関連する合計15個の異なるサブ整数画素位置のうちの1つであり、前記フル整数画素に関連する前記15個の異なるサブ整数画素位置の各それぞれのサブ整数画素位置は、フィルタサポートの異なるそれぞれのセットを有し、フィルタサポートのそれぞれのセットは、フル整数画素のそれぞれのセットであり、
    前記それぞれのサンプルの前記サブ整数画素位置のためのフィルタサポートのセットと、補間フィルタとに基づいて、前記それぞれのサンプルを補間することと、
    元のブロックを再現するために前記予測ブロックに残差ブロックを適用すること
    を実行させる、コンピュータ可読記憶媒体。
  14. 前記フル整数画素に関連する前記サブ整数画素位置のそれぞれのサブ整数画素位置ごとに、前記それぞれのサブ整数画素位置のためのフィルタサポートの前記セットは、水平又は垂直な形状を有する、請求項13に記載のコンピュータ可読記憶媒体。
  15. 前記フル整数画素に関連する前記サブ整数画素位置の各々は、異なる補間フィルタを使用する、請求項13に記載のコンピュータ可読記憶媒体。
  16. 前記命令は、前記プロセッサに、
    前記予測ブロックのそれぞれのサンプルごとに、前記それぞれのサンプルの前記サブ整数画素位置のためのフィルタサポートの前記セットを、前に符号化されたフレームに基づいて選択すること
    をさらに行わせる、請求項13に記載のコンピュータ可読記憶媒体。
  17. 前記方法は、ワイヤレス通信機器で実行可能であり、前記ワイヤレス通信機器は、
    ビデオデータを記憶するように構成されたメモリと、
    前記メモリに記憶された前記ビデオデータを処理するために命令を実行するように構成されたプロセッサと、
    前記ビデオデータの符号化された表現を受信するように構成された受信機と
    を備える、請求項1に記載の方法。
  18. 前記ワイヤレス通信機器は、セルラー電話であり、前記ビデオデータの前記符号化された表現は、前記受信機によって受信され、セルラー方式通信規格に従って変調される、請求項17に記載の方法。
  19. 前記機器は、ワイヤレス通信機器であり、
    前記ビデオデータの符号化された表現を受信するように構成された受信機
    を更に備える、請求項5に記載の機器。
  20. 前記ワイヤレス通信機器は、セルラー電話であり、前記ビデオデータの前記符号化された表現は、前記受信機によって受信され、セルラー方式通信規格に従って変調される、請求項19に記載の機器。
  21. ビデオデータを符号化する方法であって、
    予測ブロックのそれぞれのサンプルごとに
    ビデオエンコーダが、前記それぞれのサンプルのサブ整数画素位置を決定することと、前記それぞれのサンプルの前記サブ整数画素位置は、フル整数画素に関連する合計15個の異なるサブ整数画素位置のうちの1つであり、前記フル整数画素に関連する前記15個の異なるサブ整数画素位置の各それぞれのサブ整数画素位置は、フィルタサポートの異なるそれぞれのセットを有し、フィルタサポートの各それぞれのセットは、フル整数画素値のそれぞれのセットであり、
    前記ビデオエンコーダが、前記それぞれのサンプルの前記サブ整数画素位置のためのフィルタサポートの前記セットと、補間フィルタとに基づいて、前記それぞれのサンプルを補間することと、
    前記ビデオエンコーダが、残差ブロックを生成するために符号化されているビデオブロックから前記予測ブロックを減算することと
    を備える方法。
  22. 前記フル整数画素に関連する前記サブ整数画素位置のそれぞれのサブ整数画素位置ごとに、前記それぞれのサブ整数画素位置のためのフィルタサポートの前記セットは、水平又は垂直な形状を有する、請求項21に記載の方法。
  23. 前記フル整数画素に関連する前記サブ整数画素位置の各々は、異なる補間フィルタを使用する、請求項21に記載の方法。
  24. 前記ビデオエンコーダが、前記予測ブロックのそれぞれのサンプルごとに、前記それぞれのサンプルの前記サブ整数画素位置のためのフィルタサポートの前記セットを、前に符号化されたフレームに基づいて選択すること
    を更に備える、請求項21に記載の方法。
  25. ビデオデータを符号化するための機器であって、
    前記ビデオデータを記憶するように構成されるメモリと、
    1つ以上のプロセッサと、
    を備え、前記1つ以上のプロセッサは、
    予測ブロックのそれぞれのサンプルごとに、
    前記それぞれのサンプルのサブ整数画素位置を決定することと、前記それぞれのサンプルの前記サブ整数画素位置は、フル整数画素に関連する合計15個の異なるサブ整数画素位置のうちの1つであり、前記フル整数画素に関連する前記15個の異なるサブ整数画素位置の各それぞれのサブ整数画素位置は、フィルタサポートの異なるそれぞれのセットを有し、フィルタサポートの各それぞれのセットは、フル整数画素値のそれぞれのセットであり、
    前記それぞれのサンプルの前記サブ整数画素位置のためのフィルタサポートの前記セットと、補間フィルタとに基づいて、前記それぞれのサンプルを補間することと、
    残差ブロックを生成するために符号化されているビデオブロックから前記予測ブロックを減算することと
    を行うように構成される、機器。
  26. 前記フル整数画素に関連する前記サブ整数画素位置のそれぞれのサブ整数画素位置ごとに、前記それぞれのサブ整数画素位置のためのフィルタサポートの前記セットは、水平又は垂直な形状を有する、請求項25に記載の機器。
  27. 前記フル整数画素に関連する前記サブ整数画素位置の各々は、異なる補間フィルタを使用する、請求項25に記載の機器。
  28. 前記1つ以上のプロセッサが、
    前記予測ブロックのそれぞれのサンプルごとに、前記それぞれのサンプルの前記サブ整数画素位置のためのフィルタサポートの前記セットを、前に符号化されたフレームに基づいて選択する
    ように構成される、請求項25に記載の機器。
  29. ビデオデータを符号化するための機器であって、
    予測ブロックのそれぞれのサンプルごとに、
    前記それぞれのサンプルのサブ整数画素位置を決定するための手段と、前記それぞれのサンプルの前記サブ整数画素位置は、フル整数画素に関連する合計15個の異なるサブ整数画素位置のうちの1つであり、前記フル整数画素に関連する前記15個の異なるサブ整数画素位置の各それぞれのサブ整数画素位置は、フィルタサポートの異なるそれぞれのセットを有し、フィルタサポートの各それぞれのセットは、フル整数画素値のそれぞれのセットであり、
    前記それぞれのサンプルの前記サブ整数画素位置のためのフィルタサポートのセットと、補間フィルタとに基づいて、前記それぞれのサンプルを補間するための手段と、
    残差ブロックを生成するために符号化されているビデオブロックから前記予測ブロックを減算するための手段と
    を備える機器。
  30. 前記フル整数画素に関連する前記サブ整数画素位置のそれぞれのサブ整数画素位置ごとに、前記それぞれのサブ整数画素位置のためのフィルタサポートの前記セットは、水平又は垂直な形状を有する、請求項29に記載の機器。
  31. 前記フル整数画素に関連する前記サブ整数画素位置の各々は、異なる補間フィルタを使用する、請求項29に記載の機器。
  32. 前記予測ブロックのそれぞれのサンプルごとに、前記それぞれのサンプルの前記サブ整数画素位置のためのフィルタサポートの前記セットを、前に符号化されたフレームに基づいて選択するための手段
    を更に備える、請求項29に記載の機器。
  33. 命令を記憶したコンピュータ可読記憶媒体であって、前記命令は、実行されると、ビデオ符号化機器のプロセッサに、
    予測ブロックのそれぞれのサンプルごとに、
    前記それぞれのサンプルのサブ整数画素位置を決定することと、前記それぞれのサンプルの前記サブ整数画素位置は、フル整数画素に関連する合計15個の異なるサブ整数画素位置のうちの1つであり、前記フル整数画素に関連する前記15個の異なるサブ整数画素位置の各それぞれのサブ整数画素位置は、フィルタサポートの異なるそれぞれのセットを有し、フィルタサポートの各それぞれのセットは、フル整数画素値のそれぞれのセットであり、
    前記それぞれのサンプルの前記サブ整数画素位置のためのフィルタサポートのセットと、補間フィルタとに基づいて、前記それぞれのサンプルを補間することと、
    残差ブロックを生成するために符号化されているビデオブロックから前記予測ブロックを減算することと、
    を実行させる、コンピュータ可読記憶媒体。
  34. 前記フル整数画素に関連する前記サブ整数画素位置のそれぞれのサブ整数画素位置ごとに、前記それぞれのサブ整数画素位置のためのフィルタサポートの前記セットは、水平又は垂直な形状を有する、請求項33に記載のコンピュータ可読記憶媒体。
  35. 前記フル整数画素に関連する前記サブ整数画素位置の各々は、異なる補間フィルタを使用する、請求項33に記載のコンピュータ可読記憶媒体。
  36. 前記命令は、前記プロセッサに、
    前記予測ブロックのそれぞれのサンプルごとに、前記それぞれのサンプルの前記サブ整数画素位置のためのフィルタサポートの前記セットを、前に符号化されたフレームに基づいて選択すること
    を更に実行させる、請求項35に記載のコンピュータ可読記憶媒体。
JP2016131619A 2010-12-10 2016-07-01 ビデオコード化のためのサブ画素の値を補間するための適応サポート Active JP6301401B2 (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US42205110P 2010-12-10 2010-12-10
US61/422,051 2010-12-10
US13/311,755 US10045046B2 (en) 2010-12-10 2011-12-06 Adaptive support for interpolating values of sub-pixels for video coding
US13/311,755 2011-12-06

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2014207232A Division JP6254063B2 (ja) 2010-12-10 2014-10-08 ビデオコード化のためのサブ画素の値を補間するための適応サポート

Publications (2)

Publication Number Publication Date
JP2016201814A JP2016201814A (ja) 2016-12-01
JP6301401B2 true JP6301401B2 (ja) 2018-03-28

Family

ID=46199372

Family Applications (3)

Application Number Title Priority Date Filing Date
JP2013543309A Pending JP2014502800A (ja) 2010-12-10 2011-12-07 ビデオコード化のためのサブ画素の値を補間するための適応サポート
JP2014207232A Active JP6254063B2 (ja) 2010-12-10 2014-10-08 ビデオコード化のためのサブ画素の値を補間するための適応サポート
JP2016131619A Active JP6301401B2 (ja) 2010-12-10 2016-07-01 ビデオコード化のためのサブ画素の値を補間するための適応サポート

Family Applications Before (2)

Application Number Title Priority Date Filing Date
JP2013543309A Pending JP2014502800A (ja) 2010-12-10 2011-12-07 ビデオコード化のためのサブ画素の値を補間するための適応サポート
JP2014207232A Active JP6254063B2 (ja) 2010-12-10 2014-10-08 ビデオコード化のためのサブ画素の値を補間するための適応サポート

Country Status (15)

Country Link
US (1) US10045046B2 (ja)
EP (2) EP2649800A1 (ja)
JP (3) JP2014502800A (ja)
KR (2) KR101528989B1 (ja)
CN (2) CN103250414B (ja)
AU (1) AU2011338449B2 (ja)
BR (1) BR112013014415B1 (ja)
CA (1) CA2820061C (ja)
HK (1) HK1221101A1 (ja)
IL (1) IL226438B (ja)
MY (1) MY180273A (ja)
RU (1) RU2564245C2 (ja)
SG (1) SG190847A1 (ja)
UA (1) UA109923C2 (ja)
WO (1) WO2012078748A1 (ja)

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10045046B2 (en) 2010-12-10 2018-08-07 Qualcomm Incorporated Adaptive support for interpolating values of sub-pixels for video coding
US20120163460A1 (en) * 2010-12-23 2012-06-28 Qualcomm Incorporated Sub-pixel interpolation for video coding
WO2013109867A1 (en) * 2012-01-19 2013-07-25 Futurewei Technologies, Inc. Simplification of mode dependent intra smoothing
GB2501535A (en) * 2012-04-26 2013-10-30 Sony Corp Chrominance Processing in High Efficiency Video Codecs
CN102665080B (zh) * 2012-05-08 2015-05-13 开曼群岛威睿电通股份有限公司 用于移动补偿的电子装置及移动补偿方法
US10136144B2 (en) * 2012-05-21 2018-11-20 Mediatek Singapore Pte. Ltd. Method and apparatus of inter-layer filtering for scalable video coding
US10257541B2 (en) * 2013-12-20 2019-04-09 Lg Electronics Inc. Method and apparatus for encoding and decoding video signal using adaptive sampling
US9942560B2 (en) 2014-01-08 2018-04-10 Microsoft Technology Licensing, Llc Encoding screen capture data
US9749642B2 (en) 2014-01-08 2017-08-29 Microsoft Technology Licensing, Llc Selection of motion vector precision
US9774881B2 (en) 2014-01-08 2017-09-26 Microsoft Technology Licensing, Llc Representing motion vectors in an encoded bitstream
WO2016072722A1 (ko) * 2014-11-04 2016-05-12 삼성전자 주식회사 영상 특성을 반영한 보간 필터를 이용하는 비디오 부호화 방법 및 장치, 비디오 복호화 방법 및 장치
CN104683819A (zh) * 2015-01-31 2015-06-03 北京大学 一种自适应环路滤波方法及装置
US10291932B2 (en) 2015-03-06 2019-05-14 Qualcomm Incorporated Method and apparatus for low complexity quarter pel generation in motion search
JP6101722B2 (ja) 2015-03-10 2017-03-22 富士重工業株式会社 車室前部用支持体
US20160345018A1 (en) * 2015-05-19 2016-11-24 Microsoft Technology Licensing, Llc Video encoding and decoding
US10764574B2 (en) 2015-07-01 2020-09-01 Panasonic Intellectual Property Management Co., Ltd. Encoding method, decoding method, encoding apparatus, decoding apparatus, and encoding and decoding apparatus
US10341659B2 (en) * 2016-10-05 2019-07-02 Qualcomm Incorporated Systems and methods of switching interpolation filters
CN107959855B (zh) * 2016-10-16 2020-02-14 华为技术有限公司 运动补偿预测方法和设备
CN111201791B (zh) * 2017-11-07 2022-05-24 华为技术有限公司 用于视频编码的帧间预测装置和方法的插值滤波器
JP7154957B2 (ja) 2017-11-08 2022-10-18 キヤノンメディカルシステムズ株式会社 磁気共鳴イメージング装置および電力供給方法
CN109961199A (zh) * 2017-12-25 2019-07-02 北京京东尚科信息技术有限公司 一种分析数据波动的方法和装置
CN112042199B (zh) * 2018-02-14 2024-06-25 华为技术有限公司 自适应插值滤波器
US10638137B2 (en) * 2018-03-07 2020-04-28 Tencent America LLC Method and apparatus for video coding
BR112020019740A2 (pt) * 2018-03-29 2021-02-17 Huawei Technologies Co., Ltd. aparelho e método de processamento de imagem
US11722673B2 (en) * 2018-06-11 2023-08-08 Samsung Eleotronics Co., Ltd. Encoding method and apparatus therefor, and decoding method and apparatus therefor
CN108833916B (zh) * 2018-06-20 2021-09-24 腾讯科技(深圳)有限公司 视频编码、解码方法、装置、存储介质和计算机设备
BR112021000657A2 (pt) * 2018-12-21 2021-04-13 Huawei Technologies Co., Ltd. Método e aparelho de filtragem de interpolação para codificação preditiva, codificador, decodificador e produto de programa de computador
AU2020240048B2 (en) * 2019-03-18 2022-12-22 Tencent America LLC Method and apparatus for video coding

Family Cites Families (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020172288A1 (en) 2001-03-08 2002-11-21 Nyeongku Kwon Device and method for performing half-pixel accuracy fast search in video coding
GB2379820A (en) 2001-09-17 2003-03-19 Nokia Corp Interpolating values for sub-pixels
US6950469B2 (en) * 2001-09-17 2005-09-27 Nokia Corporation Method for sub-pixel value interpolation
MXPA04006814A (es) * 2002-01-14 2004-12-06 Nokia Corp Filtros dinamicos de codificacion.
AU2003246987A1 (en) * 2002-07-09 2004-01-23 Nokia Corporation Method and system for selecting interpolation filter type in video coding
KR100472476B1 (ko) 2002-08-31 2005-03-10 삼성전자주식회사 움직임 보상을 위한 보간 방법 및 그 장치
EP1578137A2 (en) 2004-03-17 2005-09-21 Matsushita Electric Industrial Co., Ltd. Moving picture coding apparatus with multistep interpolation process
JP2008503960A (ja) 2004-06-23 2008-02-07 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ ピクセル補間
US7653132B2 (en) * 2004-12-21 2010-01-26 Stmicroelectronics, Inc. Method and system for fast implementation of subpixel interpolation
US7623575B2 (en) 2005-01-05 2009-11-24 Lsi Corporation Method and apparatus for sub-pixel motion compensation
JP2008536414A (ja) * 2005-04-13 2008-09-04 ゴットフリート・ヴィルヘルム・ライプニッツ・ウニヴェルジテート・ハノーヴァー ビデオの拡張された符号化方法及び装置
US8208564B2 (en) * 2005-06-24 2012-06-26 Ntt Docomo, Inc. Method and apparatus for video encoding and decoding using adaptive interpolation
JP5044415B2 (ja) 2005-11-30 2012-10-10 株式会社東芝 画像符号化/画像復号化方法及び画像符号化/画像復号化装置
KR100772390B1 (ko) 2006-01-23 2007-11-01 삼성전자주식회사 방향 보간 방법 및 그 장치와, 그 보간 방법이 적용된부호화 및 복호화 방법과 그 장치 및 복호화 장치
JP2007201880A (ja) 2006-01-27 2007-08-09 Victor Co Of Japan Ltd 画像符号化装置および画像復号装置
CN1889691A (zh) 2006-07-19 2007-01-03 四川长虹电器股份有限公司 一种像素插值方法
US8509316B2 (en) 2007-01-09 2013-08-13 Core Wireless Licensing, S.a.r.l. Adaptive interpolation filters for video coding
CN100563322C (zh) 2007-02-07 2009-11-25 扬智科技股份有限公司 滤波动态补偿的非反馈插值器
EP1983759A1 (en) 2007-04-19 2008-10-22 Matsushita Electric Industrial Co., Ltd. Estimation of separable adaptive interpolation filters for hybrid video coding
MX2010003531A (es) 2007-10-05 2010-04-14 Nokia Corp Codificacion de video con filtros direccionales de interpolacion adaptable alineados a pixeles.
CN101453646B (zh) 2007-12-04 2012-02-22 华为技术有限公司 图像插值方法、装置及插值系数的获取方法
KR20090094595A (ko) 2008-03-03 2009-09-08 삼성전자주식회사 복수 참조에 의한 움직임 예측을 이용한 부호화 방법 및장치, 그리고 복수 참조에 의한 움직임 예측을 이용한복호화 방법 및 장치
US8462842B2 (en) 2008-04-10 2013-06-11 Qualcomm, Incorporated Symmetry for interpolation filtering of sub-pixel positions in video coding
US9077971B2 (en) 2008-04-10 2015-07-07 Qualcomm Incorporated Interpolation-like filtering of integer-pixel positions in video coding
US8831086B2 (en) 2008-04-10 2014-09-09 Qualcomm Incorporated Prediction techniques for interpolation in video coding
US8705622B2 (en) * 2008-04-10 2014-04-22 Qualcomm Incorporated Interpolation filter support for sub-pixel resolution in video coding
US20090257499A1 (en) 2008-04-10 2009-10-15 Qualcomm Incorporated Advanced interpolation techniques for motion compensation in video coding
US8804831B2 (en) 2008-04-10 2014-08-12 Qualcomm Incorporated Offsets at sub-pixel resolution
US9967590B2 (en) 2008-04-10 2018-05-08 Qualcomm Incorporated Rate-distortion defined interpolation for video coding based on fixed filter or adaptive filter
US8811484B2 (en) 2008-07-07 2014-08-19 Qualcomm Incorporated Video encoding by filter selection
EP2157799A1 (en) * 2008-08-18 2010-02-24 Panasonic Corporation Interpolation filter with local adaptation based on block edges in the reference frame
US8750378B2 (en) 2008-09-23 2014-06-10 Qualcomm Incorporated Offset calculation in switched interpolation filters
US9078007B2 (en) 2008-10-03 2015-07-07 Qualcomm Incorporated Digital video coding with interpolation filters and offsets
US8634456B2 (en) 2008-10-03 2014-01-21 Qualcomm Incorporated Video coding with large macroblocks
US8831087B2 (en) 2008-10-06 2014-09-09 Qualcomm Incorporated Efficient prediction mode selection
WO2010063881A1 (en) 2008-12-03 2010-06-10 Nokia Corporation Flexible interpolation filter structures for video coding
US10045046B2 (en) 2010-12-10 2018-08-07 Qualcomm Incorporated Adaptive support for interpolating values of sub-pixels for video coding

Also Published As

Publication number Publication date
RU2564245C2 (ru) 2015-09-27
IL226438B (en) 2019-05-30
JP6254063B2 (ja) 2017-12-27
US10045046B2 (en) 2018-08-07
CN103250414A (zh) 2013-08-14
MY180273A (en) 2020-11-26
KR101528989B1 (ko) 2015-06-15
UA109923C2 (uk) 2015-10-26
US20120147967A1 (en) 2012-06-14
CN105704492A (zh) 2016-06-22
AU2011338449B2 (en) 2015-03-12
CN103250414B (zh) 2017-03-08
RU2013131778A (ru) 2015-01-20
HK1221101A1 (zh) 2017-05-19
KR101784668B1 (ko) 2017-10-12
BR112013014415B1 (pt) 2022-02-15
WO2012078748A1 (en) 2012-06-14
BR112013014415A2 (pt) 2016-09-27
EP3203740A1 (en) 2017-08-09
JP2014502800A (ja) 2014-02-03
JP2016201814A (ja) 2016-12-01
KR20130086390A (ko) 2013-08-01
EP2649800A1 (en) 2013-10-16
CN105704492B (zh) 2019-09-27
KR20140140120A (ko) 2014-12-08
JP2015046907A (ja) 2015-03-12
AU2011338449A1 (en) 2013-06-20
IL226438A0 (en) 2013-07-31
CA2820061C (en) 2019-12-03
SG190847A1 (en) 2013-07-31
CA2820061A1 (en) 2012-06-14

Similar Documents

Publication Publication Date Title
JP6301401B2 (ja) ビデオコード化のためのサブ画素の値を補間するための適応サポート
KR101202633B1 (ko) 고정된 필터 또는 적응형 필터에 기초한 비디오 코딩을 위한 레이트 왜곡 정의된 보간
KR101202632B1 (ko) 비디오 코딩에서의 보간을 위한 예측 기술
KR101242958B1 (ko) 비디오 코딩에서의 서브-픽셀 해상도를 위한 보간 필터 서포트
KR101250115B1 (ko) 비디오 코딩에서의 서브-픽셀 포지션들의 보간 필터링을 위한 대칭
KR101214021B1 (ko) 비디오 코딩에서의 정수-픽셀 포지션들의 보간형 필터링
KR101469338B1 (ko) 혼합된 탭 필터들

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20161019

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170711

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170718

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20171018

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20171124

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180228

R150 Certificate of patent or registration of utility model

Ref document number: 6301401

Country of ref document: JP

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250