JP5607236B2 - 混合タップフィルタ - Google Patents

混合タップフィルタ Download PDF

Info

Publication number
JP5607236B2
JP5607236B2 JP2013505024A JP2013505024A JP5607236B2 JP 5607236 B2 JP5607236 B2 JP 5607236B2 JP 2013505024 A JP2013505024 A JP 2013505024A JP 2013505024 A JP2013505024 A JP 2013505024A JP 5607236 B2 JP5607236 B2 JP 5607236B2
Authority
JP
Japan
Prior art keywords
filter
pixel
sub
subpixel
interpolation filter
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
JP2013505024A
Other languages
English (en)
Other versions
JP2013524731A (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 JP2013524731A publication Critical patent/JP2013524731A/ja
Application granted granted Critical
Publication of JP5607236B2 publication Critical patent/JP5607236B2/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
    • 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/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/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • H04N19/139Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
    • 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
    • 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
    • H04N19/82Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation involving filtering within a prediction loop

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Description

本出願は、各々の内容全体が参照により本明細書に組み込まれる、2010年4月12日に出願された米国仮出願第61/323,250号、2010年6月2日に出願された米国仮出願第61/350,743号、及び2010年7月2日に出願された米国仮出願第61/361,188号の利益を主張する。
本開示は、デジタルビデオ符号化及び復号に関し、より詳細には、ビデオ符号化及び復号において使用される予測データを生成するために適用されるフィルタ処理技法に関する。
デジタルビデオ機能は、デジタルテレビジョン、デジタルダイレクトブロードキャストシステム、ワイヤレスブロードキャストシステム、携帯情報端末(PDA)、ラップトップ又はデスクトップコンピュータ、タブレットコンピュータ、デジタルカメラ、デジタル記録機器、ビデオゲーム機器、ビデオゲームコンソール、セルラー電話又は衛星無線電話、スマートフォンなどを含む、広範囲にわたる機器に組み込まれ得る。デジタルビデオ機器は、デジタルビデオ情報をより効率的に送信及び受信するために、MPEG−2、MPEG−4、又はITU−T H.264/MPEG−4、Part10、Advanced Video Coding(AVC)によって定義された規格に記載されているビデオ圧縮技法など、ビデオ圧縮技法を実装する。ビデオ圧縮技法は、ビデオシーケンスに固有の冗長性を低減又は除去するために空間的予測及び/又は時間的予測を実行し得る。
ブロックベースのインター符号化は、ビデオシーケンスの連続する符号化ユニットのビデオブロック間の時間的冗長性を低減又は除去するために時間的予測を利用する、非常に有用な符号化技法である。符号化ユニットは、ビデオフレーム、ビデオフレームのスライス、ピクチャのグループ、又は符号化ビデオブロックの別の定義されたユニットを備え得る。インター符号化の場合、ビデオエンコーダは、2つ以上の隣接する符号化ユニットの対応するビデオブロックの移動を追跡するために動き推定及び動き補償を実行する。動き推定は、1つ以上の参照フレーム又は他の符号化ユニット中の対応する予測ビデオブロックに対するビデオブロックの変位を示す、動きベクトルを生成する。動き補償は、その動きベクトルを使用して、1つ以上の参照フレーム又は他の符号化ユニットから予測ビデオブロックを生成する。動き補償の後、符号化されている元のビデオブロックから予測ビデオブロックを減算することによって、残差ビデオブロックが形成される。
ビデオエンコーダはまた、残差ブロックの通信に関連するビットレートを更に低減するために、変換、量子化及びエントロピー符号化プロセスを適用し得る。変換技法は、離散コサイン変換(DCT)又は概念的に同様のプロセスを備え得る。代替的に、ウェーブレット変換、整数変換、又は他のタイプの変換が使用され得る。DCTプロセスでは、一例として、ピクセル値のセットが、周波数領域におけるピクセル値のエネルギーを表し得る変換係数(transform coefficient)に変換される。量子化は、変換係数に適用され、一般に、所与の変換係数に関連するビット数を低減するプロセスを伴う。エントロピー符号化は、一連の符号化モード、動き情報、符号化ブロックパターン、及び量子化変換係数をまとめて圧縮する1つ以上のプロセスを備える。エントロピー符号化の例には、限定はしないが、コンテンツ適応型可変長符号化(CAVLC:content adaptive variable length coding)及びコンテキスト適応型バイナリ算術符号化(CABAC:context adaptive binary arithmetic coding)がある。
符号化ビデオブロックは、予測ブロックを生成又は識別するために使用され得る予測情報と、符号化されているブロックと予測ブロックとの間の差を示す残差データブロックとによって表され得る。予測情報は、予測データブロックを識別するために使用される1つ以上の動きベクトルを備え得る。動きベクトルが与えられれば、デコーダは、残差を符号化するために使用された予測ブロックを再構成することができる。従って、残差ブロックのセットと動きベクトルのセット(場合によっては幾つかの追加のシンタックス)とが与えられれば、デコーダは、最初に符号化されたビデオフレームを再構成することができる。連続するビデオフレーム又は他のタイプの符号化ユニットはしばしば極めて類似しているので、動き推定及び動き補償に基づくインター符号化は極めて良好な圧縮を達成することができる。符号化ビデオシーケンスは、残差データブロック、動きベクトル、場合によっては他のタイプのシンタックスを備え得る。
インター符号化において達成され得る圧縮レベルを改善するために、補間技法が開発されている。この場合、ビデオブロックを符号化するために使用される、動き補償中に生成された予測データは、動き推定において使用されるビデオフレーム又は他の符号化ユニットのビデオブロックのピクセルから補間され得る。補間は、予測1/2ピクセル(1/2ペル)値と予測1/4ピクセル(1/4ペル)値とを生成するためにしばしば実行される。1/2ペル値と1/4ペル値とはサブピクセルロケーションに関連する。ビデオシーケンス中の分数移動をキャプチャするために、分数動きベクトルを使用して、ビデオブロックをサブピクセル解像度で識別し、それによって、整数ビデオブロックよりも符号化されているビデオブロックに類似している予測ブロックを与え得る。
概して、本開示では、ビデオ符号化及び/又は復号プロセスの予測段階中にエンコーダ及びデコーダによって適用されるフィルタ処理技法について説明する。説明するフィルタ処理技法の態様は、分数補間中に使用される予測データの精度を向上させ得、場合によっては、ピクセル(画素)の整数ブロックの予測データを改善し得る。本開示には、幾つかのサブピクセル位置を指す幾つかの動きベクトルのための相対的に長いフィルタと、他のサブピクセル位置を指す動きベクトルのための相対的に短いフィルタとを使用することを含む、幾つかの態様がある。
補間目的のための良好な周波数応答をもつフィルタを設計するために、相対的に長いフィルタ(例えば、6個の代わりに8個の係数又はタップ)を使用することが望ましいことがある。そのようなより長いフィルタは、ビデオコーダの圧縮効率を改善することができるが、計算量が大きくなる。計算量の大きい増加なしにより長いフィルタを用いてより良い性能の利益を得るために、本開示で説明する技法は、長いフィルタと短いフィルタとの混合の使用を含む。例えば、動きベクトルが、単一のフィルタ処理が必要とされる位置を指す場合、8タップフィルタが使用され得る。2つのフィルタ処理演算が必要とされる位置の場合、6タップフィルタが使用され得る。従って、最悪計算量は、依然として、H.264規格の場合と同じである、6タップフィルタを用いた2つのフィルタ処理演算によって制限されるが、8タップフィルタの使用は、H.264規格と比較して改善された予測データを生成し得る。
本開示の他の態様は、使用されるフィルタのタイプ、場合によっては使用されるフィルタ係数を搬送するために、ビットストリーム中の情報を符号化するための技法に関する。本開示のこれら及び他の態様は以下の説明から明らかになろう。
一例では、本開示は、ピクセルのブロック内の整数ピクセル位置に対応する整数ピクセル値を含む前記ピクセルのブロックを取得することと、フィルタサポート位置に対応するフィルタ係数の第1の1次元アレイを定義する第1の補間フィルタを適用すること含み、第1のサブピクセル位置の第1のサブピクセル値を計算することと、水平フィルタサポート位置に対応するフィルタ係数の第2の1次元アレイを定義する第2の補間フィルタを適用することを含み、第2のサブピクセル位置の第2のサブピクセル値を計算することと、少なくとも第1のサブピクセル値と第2のサブピクセル値とに基づいて予測ブロックを生成することとを含み、前記第2のサブピクセル値を計算することは垂直フィルタサポート位置に対応するフィルタ係数の第3の1次元アレイを定義する第3の補間フィルタを適用することとを含み、第1の1次元アレイが、第2の1次元アレイよりも多いフィルタ係数を有し、第1の1次元アレイが、第3の1次元アレイよりも多いフィルタ係数を備える、方法を提供する。
別の例では、本開示は、ピクセルのブロック内の整数ピクセル位置に対応する整数ピクセル値を含む前記ピクセルのブロックを取得することと、第1のサブピクセル値と第2のサブピクセル値とを計算することと、少なくとも第1のサブピクセル値と第2のサブピクセル値とに基づいて予測ブロックを生成することとを行うように構成される予測ユニットを備え、第1のサブピクセル値が、フィルタサポート位置に対応するフィルタ係数の第1の1次元アレイを定義する第1の補間フィルタを適用することによって計算され、第2のサブピクセル値が、水平フィルタサポート位置に対応するフィルタ係数の第2の1次元アレイを定義する第2の補間フィルタを適用し、垂直フィルタサポート位置に対応するフィルタ係数の第3の1次元アレイを定義する第3の補間フィルタを適用することによって計算され、第1の1次元アレイが、第2の1次元アレイよりも多いフィルタ係数を有し、第1の1次元アレイが、第3の1次元アレイよりも多いフィルタ係数を有する、装置を提供する。
別の例では、本開示は、ピクセルのブロック内の整数ピクセル位置に対応する整数ピクセル値を含む前記ピクセルのブロックを取得するための手段と、第1のサブピクセル位置の第1のサブピクセル値を計算するための手段と、第2のサブピクセル位置の第2のサブピクセル値を計算するための手段と、少なくとも第1のサブピクセル値と第2のサブピクセル値とに基づいて予測ブロックを生成するための手段と具備し、第1のサブピクセル値を計算することが、フィルタサポート位置に対応するフィルタ係数の第1の1次元アレイを定義する第1の補間フィルタを適用することを含み、第2のサブピクセル値を計算することが、水平フィルタサポート位置に対応するフィルタ係数の第2の1次元アレイを定義する第2の補間フィルタを適用することと、垂直フィルタサポート位置に対応するフィルタ係数の第3の1次元アレイを定義する第3の補間フィルタを適用することとを含み、第1の1次元アレイが、第2の1次元アレイよりも多いフィルタ係数を有し、第1の1次元アレイが、第3の1次元アレイよりも多いフィルタ係数を有する、装置を提供する。
本開示で説明する技法は、ハードウェア、ソフトウェア、ファームウェア、又はそれらの任意の組合せで実装され得る。ソフトウェアで実装する場合、ソフトウェアは、マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、又はデジタル信号プロセッサ(DSP)など、1つ以上のプロセッサで実行され得る。本技法を実行するソフトウェアは、最初にコンピュータ可読媒体に記憶され、プロセッサにロードされ、実行され得る。
従って、本開示はまた、1つ以上のプロセッサによって実行されたとき、ピクセルのブロック内の整数ピクセル位置に対応する整数ピクセル値を含む前記ピクセルのブロックを取得することと、第1のサブピクセル位置の第1のサブピクセル値を計算することと、第2のサブピクセル位置の第2のサブピクセル値を計算することと、少なくとも第1のサブピクセル値と第2のサブピクセル値とに基づいて予測ブロックを生成することとを1つ以上のプロセッサに行わせる、1つ以上の命令を有形に記憶し、第1のサブピクセル値を計算することが、フィルタサポート位置に対応するフィルタ係数の第1の1次元アレイを定義する第1の補間フィルタを適用することを含み、第2のサブピクセル値を計算することが、水平フィルタサポート位置に対応するフィルタ係数の第2の1次元アレイを定義する第2の補間フィルタを適用することと、垂直フィルタサポート位置に対応するフィルタ係数の第3の1次元アレイを定義する第3の補間フィルタを適用することとを含み、第1の1次元アレイが、第2の1次元アレイよりも多いフィルタ係数を有し、第1の1次元アレイが、第3の1次元アレイよりも多いフィルタ係数を有する、非一時的コンピュータ可読記憶媒体を意図する。
本開示の1つ以上の態様の詳細は、添付の図面及び下記の説明に記載されている。本開示で説明する技法の他の特徴、目的、及び利点は、これらの説明及び図面、ならびに特許請求の範囲から明らかになろう。
本開示の技法を実装し得る1つの例示的なビデオ符号化及び復号システムを示すブロック図。 本開示に一致するフィルタ処理技法を実行し得るビデオエンコーダの一例を示すブロック図。 予測データに関連する整数ピクセル位置と、補間予測データに関連するサブピクセル位置とを示す概念図。 予測データに関連する整数ピクセル位置と、補間予測データに関連する垂直サブピクセル位置及び水平サブピクセル位置とを示す概念図。 予測データに関連する整数ピクセル位置と、補間予測データに関連する非垂直及び非水平サブピクセル2Lサブピクセル位置とを示す概念図。 サブピクセルロケーションに対する、係数対称性をもつ水平8ピクセルフィルタサポートを示す概念図。 サブピクセルロケーションに対する、係数対称性をもたない水平8ピクセルフィルタサポートを示す概念図。 サブピクセルロケーションに対する、係数対称性をもつ垂直8ピクセルフィルタサポートを示す概念図。 サブピクセルロケーションに対する、係数対称性をもたない垂直8ピクセルフィルタサポートを示す概念図。 本明細書で説明する方法で符号化されたビデオシーケンスを復号し得るビデオデコーダの一例を示すブロック図。 本開示に一致するフィルタシグナリングのための技法を示すための流れ図。 本開示に一致するフィルタシグナリングのための技法を示すための流れ図。 本開示に一致するフィルタシグナリングのための技法を示すための流れ図。 本開示に一致するフィルタシグナリングのための技法を示すための流れ図。 本開示に一致する補間フィルタ処理のための技法を示すための流れ図。
本開示では、ビデオ符号化及び/又は復号プロセスの予測段階中にエンコーダ及びデコーダによって適用されるフィルタ処理技法について説明する。説明するフィルタ処理技法は、分数補間中に使用される予測データの精度を改善し得、場合によっては、ピクセルの整数ブロックの予測データを改善し得る。本開示には、幾つかのサブピクセル位置を指す幾つかの動きベクトルのための相対的に長いフィルタと、他のサブピクセル位置を指す動きベクトルのための相対的に短いフィルタとの使用を含む、幾つかの態様がある。より長いフィルタは、概して、タップとも呼ばれる、より多い数のフィルタ係数をもつ補間フィルタを指し、より短いフィルタは、概して、より少ないタップをもつ補間フィルタを指す。概して、「より長いフィルタ」及び「より短いフィルタ」という句は、より長いフィルタがより短いフィルタよりも長く、より短いフィルタがより長いフィルタよりも短いことを意味する相対語である。但し、より長いフィルタがより短いフィルタよりも長く、より短いフィルタがより長いフィルタよりも短い限り、これらのフレーズは、場合によっては特定の長さを必要としない。例えば、8タップフィルタと6タップフィルタとを参照する場合は、8タップフィルタはより長いフィルタとなり、6タップフィルタはより短いフィルタとなる。しかしながら、8タップフィルタと10タップフィルタとを参照する場合は、8タップフィルタはより短いフィルタとなる。
より多いタップをもつフィルタは、概して、より少ないタップをもつフィルタと比較して、補間目的のためのより良好な周波数応答を与える。例えば、8個のタップをもつフィルタは、概して、6個のタップをもつフィルタよりも良好な周波数応答を生成する。より短いフィルタと比較して、より長いフィルタは、ビデオコーダの圧縮効率を改善し得るが、計算量が大きくなる。計算量の大きい増加なしにより長いフィルタを用いてより良い性能の利益を得るために、本開示の態様は、長いフィルタと短いフィルタとの混合の使用を含む。例えば、動きベクトルが、単一のフィルタ処理演算が必要とされるサブピクセルロケーションを指す場合、8タップフィルタが使用され得る。2つのフィルタ処理演算が必要とされるサブピクセルロケーションの場合、2つの6タップフィルタなど、より短いフィルタが使用され得る。従って、より短いフィルタとより長いフィルタとの間のタップの数の差が大きすぎない限り、最悪計算量は、依然として、一般に、より短いフィルタを用いた2つのフィルタ処理演算によって制限される。
図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つ以上のビデオ圧縮規格に従って動作し得るか、又は次世代ビデオ圧縮規格に従って動作し得る。但し、本開示の技法は、いかなる特定のビデオ符号化規格にも限定されない。図1には示されていないが、幾つかの態様では、ビデオエンコーダ22及びビデオデコーダ28は、それぞれオーディオエンコーダ及びデコーダと統合され得、適切なMUX−DEMUXユニット、又は他のハードウェア及びソフトウェアを含んで、共通のデータストリーム又は別個のデータストリーム中のオーディオとビデオの両方の符号化を処理し得る。適用可能な場合、MUX−DEMUXユニットはITU H.223マルチプレクサプロトコル、又はユーザデータグラムプロトコル(UDP)などの他のプロトコルに準拠し得る。
ビデオエンコーダ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、及びクロマ成分については対応するスケーリングされたサイズなど、様々なブロックサイズのインター予測をサポートする。ビデオブロックは、ピクセルデータのブロック、又は、例えば離散コサイン変換(DCT)若しくは概念的に同様の変換プロセスなどの変換プロセスの後の変換係数のブロックを備え得る。
より小さいビデオブロックは、より良好な解像度を与えることができ、高い詳細レベルを含むビデオフレームのロケーションに対して使用され得る。概して、マクロブロック及び様々なサブブロックはビデオブロックであると見なされ得る。更に、スライスは、マクロブロック及び/又はサブブロックなど、一連のビデオブロックであると見なされ得る。各スライスはビデオフレームの単独で復号可能なユニットであり得る。代替的に、フレーム自体が復号可能なユニットであり得るか、又はフレームの他の部分が復号可能なユニットとして定義され得る。「符号化ユニット」という用語は、フレーム全体、フレームのスライス、又は使用される符号化技法に従って定義される別の単独で復号可能なユニットなど、ビデオフレームの単独で復号可能な任意のユニットを指す。
ビデオブロックを符号化するために、ビデオエンコーダ22は、イントラ予測又はインター予測を実行して、予測ブロックを生成する。ビデオエンコーダ22は、符号化されるべき元のビデオブロックから予測ブロックを減算して、残差ブロックを生成する。従って、残差ブロックは、符号化されているブロックと予測ブロックとの間の差を示す。ビデオエンコーダ22は、残差ブロックに対して変換を実行して、変換係数のブロックを生成し得る。イントラベース又はインターベースの予測符号化技法及び変換技法の後、ビデオエンコーダ22は量子化を実行する。量子化は、概して、係数を表すために使用されるデータ量をできるだけ低減するように係数を量子化するプロセスを指す。量子化の後、コンテキスト適応型可変長符号化(CAVLC)又はコンテキスト適応型バイナリ算術符号化(CABAC)など、エントロピー符号化方法に従ってエントロピー符号化が実行され得る。ビデオエンコーダ22によって実行される符号化プロセスの各ステップのそれ以上の詳細について、図2において以下でより詳細に説明する。
宛先機器16において、ビデオデコーダ28が符号化ビデオデータを受信する。ビデオデコーダ28は、量子化係数を得るために、CAVLC又はCABACなど、エントロピー符号化方法に従って、受信したビデオデータをエントロピー復号する。ビデオデコーダ28は、逆量子化(inverse quantization)(逆量子化(de-quantization))機能及び逆変換機能を適用して、ピクセル領域中で残差ブロックを再構成する。ビデオデコーダ28はまた、符号化ビデオデータ中に含まれる(例えば、符号化モード、動きベクトル、フィルタ係数を定義するシンタックスなどの)制御情報又はシンタックス情報に基づいて予測ブロックを生成する。ビデオデコーダ28は、予測ブロックを再構成された残差ブロックと加算して、表示のための再構成されたビデオブロックを生成する。ビデオデコーダ28によって実行される復号プロセスの各ステップのそれ以上の詳細について、図10に関して以下でより詳細に説明する。
本開示の態様によれば、ビデオエンコーダ22及びビデオデコーダ28は、動き補償中に1つ以上の補間フィルタ処理技法を使用し得る。特に、本開示の一態様によれば、ビデオエンコーダ22及び/又はビデオデコーダ28は、整数ピクセル位置に対応する整数ピクセル値を含んでいるピクセルのブロックを取得し得、ピクセルのブロックのサブピクセル値を決定するためにより長いフィルタとより短いピクセルとの混合を使用し得る。
図2は、本開示に一致するフィルタ処理技法を実行し得るビデオエンコーダ50の一例を示すブロック図である。ビデオエンコーダ50は、本明細書では「コーダ」と呼ぶ専用ビデオコンピュータ機器又は装置の一例である。ビデオエンコーダ50は、機器20のビデオエンコーダ22、又は異なる機器のビデオエンコーダに対応し得る。ビデオエンコーダ50は、ビデオフレーム内のブロックのイントラ符号化及びインター符号化を実行し得るが、説明を簡単にするために、イントラ符号化構成要素は図2に示していない。イントラ符号化は、所与のビデオフレーム内のビデオの空間的冗長性を低減又は除去するために空間的予測を利用する。インター符号化は、ビデオシーケンスの隣接フレーム内のビデオの時間的冗長性を低減又は除去するために時間的予測を利用する。イントラモード(Iモード)は空間ベースの圧縮モードを指すことがあり、予測(Pモード)又は双方向(Bモード)などのインターモードは、時間ベースの圧縮モードを指すことがある。本開示の技法はインター符号化中に適用し、従って、説明を簡単で容易にするために、空間予測ユニットなどのイントラ符号化ユニットは図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は複数の補間又は補間のようなフィルタを含み得る。更に、フィルタユニット39は、複数のサブピクセルロケーションのための複数のフィルタインデックスを含み得る。フィルタインデックスは、ビットパターン及びサブピクセルロケーションを特定の補間フィルタに関連付ける。符号化プロセス中に、ビデオエンコーダ50は、符号化されるべき(図2で「ビデオブロック」と標示される)ビデオブロックを受信し、予測ユニット32は、インター予測符号化を実行して(図2で「予測ブロック」と標示される)予測ブロックを生成する。特に、MEユニット35は、メモリ34中の予測ブロックを識別するために動き推定を実行し得、MCユニット37は、予測ブロックを生成するために動き補償を実行し得る。
動き推定は、一般に、ビデオブロックの動きを推定する、動きベクトルを生成するプロセスと考えられる。動きベクトルは、例えば、現在のフレーム(又は、他の符号化ユニット)内の符号化されるべきブロックに対する、予測フレーム又は参照フレーム(又は、他の符号化ユニット、例えばスライス)内の予測ブロックの変位を示し得る。参照フレーム(又は、参照フレームの部分)は、時間的に、現在のビデオブロックが属するビデオフレーム(又は、ビデオフレームの部分)より前に、又はその後に配置され得る。動き補償は、一般に、メモリ34から予測ブロックをフェッチ又は生成するプロセス、或いは、動き推定によって決定された動きベクトルに基づいて、フィルタ処理された予測データを補間するか、又は場合によっては生成するプロセスと考えられる。
MEユニット35は、符号化されるべきビデオブロックを1つ以上の参照フレーム(例えば、前のフレーム及び/又は後続のフレーム)のビデオブロックと比較することによって、そのビデオブロックに適した動きベクトルを選択する。MEユニット35は、分数ピクセル、分数ペル、又はサブピクセル動き推定と呼ばれることがある分数ピクセル精度を用いて動き推定を実行し得る。従って、分数ピクセル、分数ペル、及びサブピクセル動き推定という用語は、互換的に使用され得る。分数ピクセル動き推定では、MEユニット35は、整数ピクセルロケーション以外のロケーションへの変位を示す動きベクトルを選択し得る。このようにして、分数ピクセル動き推定により、予測ユニット32は、整数ピクセル(又は、フルピクセル)ロケーションよりも高い精度を用いて動きを追跡し、従って、より正確な予測ブロックを生成することが可能になる。分数ピクセル動き推定は、1/2ピクセル精度、1/4ピクセル精度、1/8ピクセル精度又は任意のより微細な精度を有し得る。MEユニット35は、動き推定プロセス中に任意の必要な補間のために(1つ又は複数の)フィルタ39を起動し得る。
分数ピクセル動き補償を実行するために、MCユニット37は、(補間フィルタ処理と呼ばれることがある)補間を実行して、(本明細書ではサブピクセル値又は分数ピクセル値と呼ぶ)サブピクセル解像度におけるデータを生成し得る。MCユニット37は、この補間のために(1つ又は複数の)フィルタ39を起動し得る。予測ユニット32は、本明細書で説明する技法を使用して補間(又は、整数ピクセルの補間様フィルタ処理)を実行し得る。
符号化されるべきビデオブロックのための動きベクトルがMEユニット35によって選択されると、MCユニット37は、その動きベクトルに関連する予測ビデオブロックを生成する。MCユニット37は、MCユニット35によって決定された動きベクトルに基づいて、メモリ34から予測ブロックをフェッチし得る。分数ピクセル精度をもつ動きベクトルの場合、MCユニット37は、そのようなデータをサブピクセル解像度に対して補間するために、例えば、このプロセスのために(1つ又は複数の)フィルタ39を起動して、メモリ34からのデータをフィルタ処理する。場合によっては、サブピクセル予測データを生成するために使用された補間フィルタ処理技法又はモードは、符号化ビットストリームに含めるための、エントロピー符号化ユニット46への1つ以上の補間シンタックス要素として示されることがある。
予測ユニット32が予測ブロックを生成すると、ビデオエンコーダ50は、符号化されている元のビデオブロックから予測ブロックを減算することによって(図2で「残差ブロック」と標示される)残差ビデオブロックを形成する。加算器48は、この減算演算を実行する1つ以上の構成要素を表す。変換ユニット38は、離散コサイン変換(DCT)又は概念的に同様の変換などの変換を残差ブロックに適用し、残差変換ブロック係数を備えるビデオブロックを生成する。変換ユニット38は、例えば、概念的にDCTと同様である、H.264規格によって定義された変換など、他の変換を実行し得る。ウェーブレット変換、整数変換、サブバンド変換又は他のタイプの変換も使用され得る。いずれの場合も、変換ユニット38は、変換を残差ブロックに適用し、残差変換係数のブロックを生成する。変換は、残差情報をピクセル領域から周波数領域に変換し得る。
量子化ユニット40は、ビットレートを更に低減するために残差変換係数を量子化する。量子化プロセスは、係数の一部又は全部に関連するビット深度を低減し得る。量子化の後、エントロピー符号化ユニット46が量子化変換係数をエントロピー符号化する。例えば、エントロピー符号化ユニット46は、CAVLC、CABAC、又は別のエントロピー符号化方法を実行し得る。
エントロピー符号化ユニット46はまた、ビデオエンコーダ50の予測ユニット32又は他の構成要素から得られた1つ以上の予測シンタックス要素を符号化し得る。1つ以上の予測シンタックス要素は、符号化モード、1つ以上の動きベクトル、サブピクセルデータを生成するために使用された補間技法、フィルタ係数のセット又はサブセット、或いは予測ブロックの生成に関連する他の情報を含み得る。係数予測及び量子化ユニット41は、本開示の幾つかの態様によれば、フィルタ係数などの予測シンタックスを予測符号化し、量子化し得る。エントロピー符号化ユニット46によるエントロピー符号化の後、符号化ビデオとシンタックス要素は、別の機器に送信されるか、或いは後で送信又は検索するためにアーカイブされ得る。
逆量子化ユニット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ペル)位置などと呼ばれる。
図3は、予測データに関連する整数ピクセル(又は、フルピクセル)位置と、補間予測データに関連するサブピクセル(又は、分数ピクセル)位置とを示す概念図である。図3の概念図では、異なるボックスが、フレーム又はフレームのブロック内のピクセル及びサブピクセルロケーション又は位置を表す。(実線のボックス中の)大文字は整数ピクセルロケーションを表し、(点線のボックス中の)小文字はサブピクセルロケーションを表す。特に、ピクセルロケーションA1〜A6、B1〜B6、C1〜C6、D1〜D6、E1〜E6及びF1〜F6は、フレーム、スライス、又は他の符号化ユニット内の整数ピクセルロケーションの6×6アレイを表す。また、本開示で後述する例とともに使用されるべき追加の整数ピクセルロケーションG3及びH3が図3に示されている。サブピクセルロケーション「a」〜「o」は、整数ピクセルC3に関連する15個のサブピクセルロケーション、例えば、整数ピクセルロケーションC3とC4とD3とD4との間のサブピクセルロケーションを表す。同様のサブピクセルロケーションが、あらゆる整数ピクセルロケーションに対して存在し得る。サブピクセルロケーション「a」〜「o」は、整数ピクセルC3に関連するあらゆる1/2ペル及び1/4ペルピクセルロケーションを表す。
整数ピクセルロケーションは、ビデオデータが最初に生成されたとき、フォトダイオードなどの物理的センサ要素に関連し得る。フォトダイオードは、センサのロケーションにおける光源の強度を測定し、ピクセル強度値を整数ピクセルロケーションに関連付け得る。この場合も、各整数ピクセルロケーションは、15個の(又は場合によってはより多くの)サブピクセルロケーションの関連するセットを有し得る。整数ピクセルロケーションに関連するサブピクセルロケーションの数は所望の精度に依存し得る。図3に示す例では、所望の精度は1/4ピクセル精度であり、その場合、整数ピクセルロケーションの各々は、15個の異なるサブピクセル位置と対応する。より多い又はより少ないサブピクセル位置は、所望の精度に基づいて各整数ピクセルロケーションに関連し得る。1/2ピクセル精度の場合、例えば、各整数ピクセルロケーションは、3つのサブピクセル位置と対応し得る。別の例として、整数ピクセルロケーションの各々は、1/8ピクセル精度の場合、63個のサブピクセル位置と対応し得る。各ピクセルロケーションは、1つ以上のピクセル値、例えば、1つ以上の輝度及びクロミナンス値を定義し得る。
Yが輝度を表し得、Cb及びCrが3次元YCbCr色空間のクロミナンスの2つの異なる値を表し得る。各ピクセルロケーションは、実際に、3次元色空間の3つのピクセル値を定義し得る。但し、本開示の技法は、簡単のために1次元に関する予測を指すことがある。技法について1次元のピクセル値に関して説明する限り、同様の技法が他の次元に拡張され得る。場合によっては、クロミナンス値は予測より前にサブサンプリングされるが、人間の視覚はピクセル色よりもピクセル強度により反応するので、予測は、一般に、サブサンプリングなしに輝度空間中で行われる。
図3の例では、整数ピクセル「C3」に関連する、サブピクセル位置とも呼ばれる、サブピクセルロケーションが1/4ピクセル精度について示されている。ピクセルC3に関連する15個のサブピクセル位置は、「a」、「b」、「c」、「d」、「e」、「f」、「g」、「h」、「i」、「j」、「k」、「l」、「m」、「n」、及び「o」と標示される。他の整数ピクセルロケーションに関連する他の分数ロケーションの大部分は、簡単のために図示していない。サブピクセルロケーション「b」、「h」及び「j」は1/2ピクセルロケーションと呼ばれることがあり、サブピクセルロケーション「a」、「c」、「d」、「e」、「f」、「g」、「i」、「k」、「l」、「m」、及び「o」は1/4ピクセルロケーションと呼ばれることがある。更に、本開示では、整数ピクセルと同じ水平軸に沿って配向されたサブピクセル位置は、水平サブピクセルと呼ばれることがある。サブピクセル「a」、「b」、及び「c」は水平サブピクセルの例である。整数ピクセルと同じ垂直軸の上に配向されたサブピクセルは、垂直サブピクセルと呼ばれることがある。サブピクセル「d」、「h」、及び「l」は、垂直サブピクセルの例である。本開示の態様は、単一の線形補間フィルタを使用して水平サブピクセルと垂直サブピクセルとのピクセル値を決定することを含み、従って、本開示では、水平サブピクセルと垂直サブピクセルとをまとめて1Lサブピクセルと呼ぶことがある。図4は、整数ピクセル(C1〜C6、A3、B3、C3、D3、E3、及びF3)のグループに対する1Lサブピクセル(a、b、c、d、h、l)を示す概念図である。
本開示の態様は、水平方向に適用される線形補間フィルタと垂直方向に適用される線形補間フィルタとの2つの線形補間フィルタを使用して、サブピクセル「e」、「f」、「g」、「i」、「j」、「k」、「m」、「n」、及び「o」などの非垂直、非水平サブピクセルのピクセル値を決定することを含む。従って、本開示では、サブピクセル「e」、「f」、「g」、「i」、「j」、「k」、「m」、「n」、及び「o」などの非垂直、非水平サブピクセルを2Lサブピクセルと呼ぶことがある。図5は、整数ピクセル(C1〜C6、A3、B3、C3、D3、E3、及びF3)のグループに対する2Lサブピクセル(e、f、g、i、j、k、m、n、o)を示す概念図である。
図6は、サブピクセル位置「b」に対する8つの水平線形ピクセルサポート位置C0〜C7を、係数対称性を示す陰影付きで示す概念図である。この場合、係数対称性は、フィルタサポート位置C0〜C7の係数のセット全体を定義するために、C0、C1、C2及びC3の4つのフィルタ係数のみがあればよいことを意味する。C0はC7と対称であり、C1はC6と対称であり、C2はC5と対称であり、C3はC4と対称である。従って、サブピクセル位置「b」を補間するために必要とされる8つの係数のセットを定義するために、符号化ビデオビットストリームの一部として4つの係数のみを通信するか、又はフィルタユニット39によって記憶すればよい。残りの係数は、通信された係数に基づいてデコーダにおいて生成され得る。特に、デコーダは、対称性が適用することを知るようにプログラムされ得、対称性は、通信された係数に基づいて残りの係数をどのように生成すべきかを定義することができる。
図7は、サブピクセルに対する8つの水平線形ピクセルサポート位置を、係数対称性の欠如を示す陰影付きで示す概念図である。従って、サブピクセル位置「a」に関するフィルタサポートのための係数のセットを定義するために、全ての8つの係数が必要とされる。しかしながら、ピクセル対称性は、サブピクセル位置「a」に関するこれらの同じ係数が、サブピクセル位置「c」のフィルタサポートを導出するためにも使用され得ることを意味する。サブピクセル位置「a」に関するフィルタサポートのための8つの係数が1次元アレイと見なされた場合、サブピクセル「a」の値を決定したときのC7の係数はサブピクセル「c」の値を決定したときのC0の係数であり得、C6の係数はC1の係数であり得るなどのように、サブピクセル「c」のための8つの係数はアレイを反転することによって発見され得る。従って、例えば、適応補間フィルタ処理(AIF:adaptive interpolation filtering)を使用する場合、フィルタ係数はビデオエンコーダ22において計算され、サブピクセル位置「a」及び「c」を補間するために必要とされる8つの係数の2つの異なるセットを定義するために、ビットストリーム中で8つの係数のみをビデオデコーダ28に通信すればよい。
図8は、サブピクセル「h」に対する8つの垂直線形ピクセルサポート位置G3、A3、B3、C3、D3、E3、F3、及びH3を、係数対称性を示す陰影付きで示す概念図である。この場合、係数対称性は、フィルタサポート位置G3、A3、B3、C3、D3、E3、F3、及びH3の係数のセット全体を定義するために、G3、A3、B3及びC3の4つのフィルタ係数のみがあればよいことを意味する。G3はH3と対称であり、A3はF3と対称であり、B3はE3と対称であり、C3はD3と対称である。対称性により、G3に関連する係数をH3とともに使用したり、A3に関連する係数をF3とともに使用したりすることなどが可能である。従って、例えば、AIFを使用する場合、サブピクセル位置「h」を補間するために必要とされる8つの係数のセットを定義するために、符号化ビデオビットストリームの一部として4つの係数のみを通信すればよい。
図9は、サブピクセルに対する8つの垂直線形ピクセルサポート位置を、係数対称性の欠如を示す陰影付きで示す概念図である。従って、サブピクセル位置「d」に関するフィルタサポートのための係数のセットを定義するために、全ての8つの係数が必要とされる。しかしながら、図7に関して上記したように、ピクセル対称性は、サブピクセル位置「d」に関するこれらの同じ係数が、サブピクセル位置「l」のフィルタサポートを導出するためにも使用され得ることを意味する。従って、例えば、AIFを使用する場合、サブピクセル位置「d」及び「l」を補間するために必要とされる8つの係数の2つの異なるセットを定義するために、ビットストリーム中で8つの係数のみをビデオデコーダ28に通信すればよい。
ビデオエンコーダ40の予測ユニット32は、フィルタ処理ユニット39による補間フィルタ処理を使用してサブピクセルロケーション「a」〜「o」のピクセル値を決定し得る。1/2ピクセル位置「b」及び「h」の場合、タップとも呼ばれる各フィルタ係数は、それぞれ水平方向及び垂直方向の整数ピクセル位置に対応し得る。特に、1/2ピクセル位置「b」の場合、8タップフィルタのタップは、C0、C1、C2、C3、C4、C5、C6、及びC7に対応する。サブピクセル位置C0及びC7は、図3に示されていないが、例えば、図6及び図7に見られ得る。同様に、1/2ピクセル位置「h」の場合、8タップフィルタのタップは、G3、A3、B3、C3、D3、E3、F3、及びH3に対応する。例えば、サブピクセル位置「b」及び「h」のピクセル値は、式(1)及び式(2)を使用して計算され得る。
b = ((-3*C0 + 12*C1 - 39*C2 + 158*C3 + 158*C4 - 39*C5 + 12*C6 - 3*C7) + 128)/256 (1)
h = ((-3*G3 + 12*A3 - 39*B3 + 158*C3 + 158*D3 - 39*E3 + 12*F3 - 3*H3) + 128)/256 (2)
幾つかの実装形態では、256による除算は、8ビットの右シフトによって実装され得る。位置「b」の場合と同様に、1/4ピクセル位置「a」及び「c」の場合、8タップフィルタのタップは、C0、C1、C2、C3、C4、C5、C6、及びC7に対応し得るが、位置「b」の場合とは異なり、フィルタ係数は非対称であり、位置「b」の場合とは異なり得る。例えば、サブピクセル位置「a」及び「c」のピクセル値は、式(3)及び式(4)を使用して計算され得る。
a = ((-3*C0 + 12*C1 - 37*C2 + 229*C3 + 71*C4 - 21*C5 + 6*C6 - C7) + 128)/256 (3)
c = ((-C0 + 6*C1 - 21*C2 + 71*C3 + 229*C4 - 37*C5 + 12*C6 - 3*C7) + 128)/256 (4)
幾つかの実装形態では、256による除算は、8ビットの右シフトによって実装され得る。位置「h」の場合と同様に、1/4ピクセル位置「d」及び「l」の場合、8タップフィルタのタップは、G3、A3、B3、C3、D3、E3、F3、及びH3に対応し得るが、位置「h」の場合とは異なり、フィルタ係数は非対称であり、位置「h」の場合とは異なり得る。例えば、サブピクセル位置「d」及び「l」のピクセル値は、式(5)及び式(6)を使用して計算され得る。
d = ((-3*G3 + 12*A3 - 37*B3 + 229*C3 + 71*D3 - 21*E3 + 6*F3 - H3) + 128)/256 (5)
l = ((-G3 + 6*A3 - 21*B3 + 71*C3 + 229*D3 - 37*E3 + 12*F3 - 3*H3) + 128)/256 (6)
幾つかの実装形態では、256による除算は、8ビットの右シフトによって実装され得る。上記の式(1)〜式(6)について与えられた例示的な係数は、概して、水平サブピクセルと垂直サブピクセルの両方について同じ係数を使用するが、水平サブピクセルの係数と垂直サブピクセルの係数が同じである必要はない。例えば、式(1)と式(2)、式(3)と式(5)、及び式(4)と式(6)はそれぞれ、上記の例において同じ係数を有するが、幾つかの実装形態では、各々は異なる係数を有し得る。
ビデオエンコーダ40の予測ユニット32は、フィルタ処理ユニット39による補間フィルタ処理を使用して、2Lサブピクセルロケーション「e」、「f」、「g」、「i」、「j」、「k」、「m」、「n」、及び「o」のピクセル値を決定し得る。2Lサブピクセル位置について、水平フィルタ処理の後に垂直フィルタ処理が行われ、又はその逆も同様である。第1のフィルタ処理演算は中間値を決定し、第2のフィルタ処理演算は、中間値を利用して、サブピクセルロケーションのピクセル値を決定する。例えば、「j」の値を決定するために、以下の式を使用して、「aa」、「bb」、「b」、「hh」、「ii」、及び「jj」の中間値を決定するために、6タップ水平フィルタが使用され得る。
aa = ((8*A1 - 40*A2 + 160*A3 + 160*A4 - 40*A5 + 8*A6) + 128)/256 (7)
bb = ((8*B1 - 40*B2 + 160*B3 + 160*B4 - 40*B5 + 8*B6) + 128)/256 (8)
b = ((8*C1 - 40*C2 + 160*C3 + 160*C4 - 40*C5 + 8*C6) + 128)/256 (9)
hh = ((8*D1 - 40*D2 + 160*D3 + 160*D4 - 40*D5 + 8*D6) + 128)/256 (10)
ii = ((8*E1 - 40*E2 + 160*E3 + 160*E4 - 40*E5 + 8*E6) + 128)/256 (11)
jj = ((8*F1 - 40*F2 + 160*F3 + 160*F4 - 40*F5 + 8*F6) + 128)/ (12)
幾つかの実装形態では、256による除算は、8ビットの右シフトによって実装され得る。6タップ垂直フィルタを上記の中間値に適用すると、「j」の値は、以下の式を使用して決定され得る。
j = ((8*aa - 40*bb + 160*c3 + 160*hh - 40*ii + 8*jj) + 128)/256. (13)
幾つかの実装形態では、256による除算は、8ビットの右シフトによって実装され得る。代替的に、6タップ垂直フィルタは、「cc」、「dd」、「h」、「ee」、「ff」、及び「gg」の中間値を発見するために使用され得、6タップ水平フィルタは、「j」のピクセル値を決定するためにそれらの中間値に適用され得る。
サブピクセル「j」について上記で説明したプロシージャと同様に、中間値を決定するために垂直フィルタ処理演算を最初に実行し、次いで、垂直フィルタ処理によって決定された中間値に6タップ水平フィルタを適用することによって、又は中間値を決定するために水平フィルタ処理演算を最初に実行し、次いで、水平フィルタ処理によって決定された中間値に6タップ垂直フィルタを適用することによって、サブピクセルロケーション「e」、「f」、「g」、「i」、「k」、「m」、「n」、及び「o」のピクセル値が決定され得る。サブピクセル「j」について上記で例として使用された水平フィルタと垂直フィルタの両方が対称係数を使用するが、他の2Dサブピクセル値のピクセル値を決定するために使用される水平フィルタ又は垂直フィルタの一方又は両方が対称的でないことがある。例えば、例示的な一実装形態では、サブピクセルロケーション「e」、「g」、「m」、及び「o」の水平フィルタと垂直フィルタの両方が非対称係数を使用し得る。サブピクセルロケーション「f」及び「n」は、対称係数をもつ水平フィルタと非対称係数をもつ垂直フィルタとを使用し得、サブピクセルロケーション「i」及び「k」は、非対称係数をもつ水平フィルタと対称係数をもつ垂直フィルタとを使用し得る。
サブピクセルロケーションにおいて補間データを生成するためにフィルタ処理ユニット39によって適用される実際のフィルタには、多種多様な実装形態があり得る。一例として、予測ユニット32はAIFを利用し得、フィルタ係数は、ビデオエンコーダ22によって計算され、ビットストリーム中でビデオデコーダ28に送信される。別の例として、予測ユニット32は交換フィルタ処理を利用し得、複数のフィルタがビデオエンコーダ22とビデオデコーダ28の両方によって知られており、使用されるべき特定のフィルタはビットストリーム中でビデオエンコーダ22からビデオデコーダ28にシグナリングされる。交換フィルタ処理の一例では、ビデオエンコーダ22及びビデオデコーダ28は、各サブピクセル位置について4つの一意のフィルタを記憶し得、サブピクセル位置に対して使用されるべき特定のフィルタは、2ビットを使用してビデオエンコーダ22からビデオデコーダ28にシグナリングされ得る。
予測ユニット32は、水平方向及び垂直方向において分離可能な補間フィルタを使用し得る。1Lサブピクセル位置について、予測ユニット32(例えば、予測ユニット32のMCユニット37)は、サブピクセルロケーションに応じて水平方向フィルタのみ又は垂直方向フィルタのみを適用する。一例では、水平方向フィルタ及び垂直方向フィルタは8位置(又は8タップ)フィルタを備える。予測ユニット32は、フィルタサポートとして整数ピクセル位置C0、C1、C2、C3、C4、C5、C6、及びC7(C0及びC7は図3に図示せず)を用いて、サブピクセル位置「a」、「b」、及び「c」に対して水平方向フィルタを適用し、フィルタサポートとして整数ピクセル位置G3、A3、B3、C3、D3、E3、F3、及びH3(図3参照)を用いて、サブピクセル位置「d」、「h」、及び「l」に対して垂直方向フィルタを適用する。残りのサブピクセル位置、即ち、2Lサブピクセル位置について、予測ユニット32は、最初に水平フィルタ処理を適用し、その後に垂直フィルタ処理を適用するか、又は最初に垂直フィルタ処理を適用し、その後に水平フィルタ処理を適用する。2Lサブピクセル位置に対して使用される水平フィルタ及び垂直フィルタは、それぞれ6タップフィルタであり得る。
本開示では、例として8タップフィルタと6タップフィルタとを使用するが、他のフィルタ長も使用され得、本開示の範囲内であることに留意することが重要である。例えば、6タップフィルタが1Lサブピクセルロケーションの値を決定するために使用され得、4タップフィルタが2Lサブピクセルロケーションの値を決定するために使用されるか、又は10タップフィルタが1Lサブピクセルロケーションの値を決定するために使用され得、8タップフィルタ又は6タップフィルタが2Lサブピクセルロケーションの値を決定するために使用される。
図10は、本明細書で説明する方法で符号化されたビデオシーケンスを復号し得るビデオデコーダの一例を示すブロック図である。ビデオデコーダ60は、本明細書では「コーダ」と呼ぶ専用ビデオコンピュータ機器又は装置の一例である。ビデオデコーダ60は、量子化係数及び予測シンタックス要素を生成するために、受信したビットストリームをエントロピー復号するエントロピー復号ユニット52を含む。予測シンタックス要素は、符号化モード、1つ以上の動きベクトル、サブピクセルデータを生成するために使用される補間技法を識別する情報、補間フィルタ処理中に使用するための係数、及び/又は予測ブロックの生成に関連する他の情報を含み得る。
予測シンタックス要素、例えば、係数は、予測ユニット55に転送される。固定フィルタの係数に対して又は互いに対して係数を符号化するために予測が使用された場合、係数予測及び逆量子化ユニット53は、実際の係数を定義するためにシンタックス要素を復号することができる。また、量子化が予測シンタックスのいずれかに適用された場合、係数予測及び逆量子化ユニット53は、そのような量子化を除去することもできる。例えば、フィルタ係数は、本開示に従って予測符号化され、量子化され得、この場合、係数予測及び逆量子化ユニット53は、そのような係数を予測的に復号し、逆量子化するためにビデオデコーダ60によって使用され得る。
予測ユニット55は、ビデオエンコーダ50の予測ユニット32に関して上記で詳細に説明したのと殆んど同じ方法で、メモリ62に記憶された予測シンタックス要素と1つ以上の前に復号されたブロックとに基づいて、予測データを生成し得る。特に、予測ユニット55は、動き補償中に本開示の補間フィルタ処理技法のうちの1つ又は複数を実行して、1/4ピクセル精度などの特定の精度で予測ブロックを生成し得る。従って、本開示の技法のうちの1つ又は複数は、予測ブロックを生成する際にビデオデコーダ60によって使用され得る。予測ユニット55は、本開示の補間及び補間のようなフィルタ処理技法のために使用されるフィルタを備える動き補償ユニットを含み得る。動き補償構成要素は、説明を簡単で容易にするために図10に示していない。
逆量子化ユニット56は、量子化された係数を逆量子化(inverse quantize)、即ち、逆量子化(de-quantize)する。逆量子化プロセスは、H.264復号のために定義されたプロセスであり得る。逆変換ユニット58は、ピクセル領域における残差ブロックを生成するために、変換係数に、逆変換、例えば、逆DCT又は概念的に同様の逆変換プロセスを適用する。加算器64は、残差ブロックを、予測ユニット55によって生成された対応する予測ブロックと加算して、ビデオエンコーダ50によって符号化された元のブロックの再構成されたバージョンを形成する。必要に応じて、ブロッキネスアーティファクトを除去するために、デブロッキングフィルタを適用して、復号ブロックをフィルタ処理することもある。次いで、復号ビデオブロックは参照フレームストア62に記憶され、参照フレームストア62は、その後の動き補償のために参照ブロックを与え、(図1の機器28などの)表示装置を駆動するために復号ビデオをも生成する。
例えば、予測ユニット55によって使用される特定の補間フィルタは、ソース機器12から符号化ビデオビットストリーム中で受信された予測シンタックス要素に基づいて決定され得る。図11は、ビットストリーム中で受信されたシンタックス要素に基づいて補間フィルタを決定するための方法を示す。図11の方法は、例えば、Pスライスのサブピクセルロケーションのフィルタを決定するために使用され得る。ビデオデコーダ60は、ソース機器12から符号化ビットストリームを受信する。フレームヘッダ又はスライスヘッダ内のシンタックス要素などの符号化ユニットのシンタックス要素から、予測ユニット55は、制限セットを識別するビットを読み取る(1101)。制限セットは、予測ユニット55に対して、その符号化ユニットのサブピクセルロケーションに対してフィルタインデックスのどのセットを使用すべきかを識別する。各サブピクセルロケーションがそれ自体のフィルタインデックスを有し得るか、又はサブピクセルロケーションのグループがフィルタインデックスを共有し得る。フィルタインデックスは、特定のフィルタをビットの特定のパターンに関連付ける。例えば、フィルタ選択をシグナリング(信号伝達)するためにサブピクセルロケーション当たり2ビットを使用する場合、ビットパターン00は第1のフィルタに対応し、ビットパターン01は第2のフィルタに対応し、ビットパターン10は第3のフィルタに対応し、ビットパターン11は第4のフィルタに対応し得る。各サブピクセルロケーションは、それ自体の一意のフィルタインデックスと一意のフィルタとを有し得るので、ビットパターン00は、例えば、サブピクセルロケーション「e」の場合と、例えば、サブピクセルロケーション「j」の場合とで異なるフィルタに対応し得る。
図11の例では、3つの制限セットを使用する。符号化ユニットのヘッダが、第1の制限セットが使用されるべき予測ユニット55への信号を含んでいる場合(1102)、符号化ユニットのために決定された全てのサブピクセル値に対して、各サブピクセル値の水平フィルタと垂直フィルタの両方が垂直シグナリングビットと水平シグナリングビットとを使用して別々にシグナリングされ得る。従って、垂直シグナリングビット及び水平シグナリングビットに対してそれぞれ2ビットを使用する場合、1Lサブピクセル位置のフィルタは、合計2ビットを使用してシグナリングされ、2L位置のフィルタは、垂直シグナリングビットに対して2ビットと、水平シグナリングビットに対して2ビットとの、合計4ビットを使用してシグナリングされる。
ロケーション「a」、「b」、及び「c」以外のサブピクセルロケーションの場合、ビットストリーム中の2つの垂直シグナリングビットは、使用されるべき4つの垂直フィルタのうちの1つを識別する(1103)。ロケーション「a」、「b」、及び「c」の場合、ビットストリーム中に垂直シグナリングビットが存在し得ず、垂直フィルタは選択され得ない。本開示によれば、サブピクセルロケーション「d」、「h」、及び「l」のために選択された垂直フィルタは、「e」、「f」、「g」、「i」、「j」、「k」、「m」、「n」、及び「o」のために選択された垂直フィルタよりも長くなり得る。例えば、サブピクセルロケーション「d」、「h」、及び「l」のために選択された垂直フィルタは、8タップフィルタを備え得、サブピクセルロケーション「e」、「f」、「g」、「i」、「j」、「k」、「m」、「n」、及び「o」のために選択された垂直フィルタは、6タップフィルタを備え得る。
ロケーション「d」、「h」、及び「l」以外のサブピクセルロケーションの場合、2つの水平シグナリングビットは、使用されるべき4つの垂直フィルタのうちの1つを識別する(1104)。ロケーション「d」、「h」、及び「l」の場合、ビットストリーム中にシグナリングビットが存在し得ず、水平フィルタは選択され得ない。本開示によれば、サブピクセルロケーション「a」、「b」、及び「c」のために選択された水平フィルタは、「e」、「f」、「g」、「i」、「j」、「k」、「m」、「n」、及び「o」のために選択された水平フィルタよりも長くなり得る。例えば、サブピクセルロケーション「a」、「b」及び「c」のために選択された水平フィルタは、8タップフィルタを備え得、サブピクセルロケーション「e」、「f」、「g」、「i」、「j」、「k」、「m」、「n」、及び「o」のために選択された水平フィルタは、6タップフィルタを備え得る。
水平フィルタ及び垂直フィルタが選択されると、これらのフィルタは、上記で説明したように、サブピクセルロケーションの値を決定するために使用され得る。サブピクセルがロケーション「a」、「b」、又は「c」に位置する場合、式1、式3、及び式4に関して上記で説明したように、そのサブピクセル値を決定するために単一の水平フィルタが使用され得る。サブピクセルが「d」、「h」、又は「l」に位置する場合、式2、式5、及び式6に関して上記で説明したように、そのサブピクセル値を決定するために単一の垂直フィルタが使用され得る。サブピクセルが「e」、「f」、「g」、「i」、「j」、「k」、「m」、「n」、又は「o」に位置する場合、式7〜式13に関して上記で説明したように、サブピクセルロケーションの値を決定するために垂直フィルタと水平フィルタの両方が使用され得る。
符号化ユニットのヘッダが、第2の制限セットが使用されるべき予測ユニット55への信号を含んでいる場合(1107)、符号化ユニットのために決定された全てのサブピクセル値に対して、各サブピクセル値の水平フィルタと垂直フィルタの両方がサブピクセルロケーション当たり2つのシグナリングビットを使用して一緒にシグナリングされ得る。シグナリングビットに基づいて、1つのフィルタ又はフィルタのペアを選択する(1108)。サブピクセルロケーション「a」、「b」、又は「c」の場合、2つのシグナリングビットは、その特定のサブピクセルロケーションに関連する4つの水平フィルタのうちの1つを識別するために使用され得る。サブピクセルロケーション「d」、「h」、又は「l」の場合、2つのシグナリングビットは、その特定のサブピクセルロケーションに関連する4つの垂直フィルタのうちの1つを識別するために使用され得る。サブピクセルロケーション「e」、「f」、「g」、「i」、「j」、「k」、「m」、「n」、又は「o」の場合、2つのシグナリングビットは、水平フィルタと垂直フィルタとの4つのペアのうちの1つを識別するために使用され得る。従って、制限セット1は、合計16個の水平垂直の組合せについて、2つの水平シグナリングビットが4つの水平フィルタのうちの1つを識別することを可能にし、2つの垂直シグナリングビットが4つの垂直フィルタのうちの1つを識別することを可能にするが、制限セット2は、4つの水平垂直の組合せのみを可能にする。しかしながら、制限セット2は、フィルタ選択をシグナリングするために必要とされるビットの総数を低減する。シグナリングビットによって識別されたフィルタ又はフィルタの組合せに基づいて、上記で説明したのと同様にしてサブピクセルロケーションの値を決定する(1109)。符号化ユニットのヘッダが、第3の制限セットが使用されるべき予測ユニット55への信号を含んでいる場合(1111)、符号化ユニットのために決定された全てのサブピクセル値に対して、サブピクセルロケーションに関連するシグナリングビットには基づかずに、サブピクセルロケーションのみに基づいて固定フィルタ又はフィルタの組合せを使用する(1112)。例えば、サブピクセルロケーション「a」、「b」、及び「c」がそれぞれ4つの可能な対応する水平フィルタを有することができる制限セット1及び2の場合とは異なり、制限セット3の場合、サブピクセルロケーション「a」、「b」、及び「c」は、それぞれ1つの対応する水平フィルタを有する。サブピクセルロケーション「d」、「h」、及び「l」がそれぞれ4つの可能な対応する垂直フィルタを有することができる制限セット1及び2の場合とは異なり、制限セット3の場合、サブピクセルロケーション「d」、「h」、及び「l」は、それぞれ1つの対応する垂直フィルタを有する。サブピクセルロケーション「e」、「f」、「g」、「i」、「j」、「k」、「m」、「n」、又は「o」がそれぞれ16個及び4個の可能な水平垂直フィルタの組合せを有する制限セット1及び2の場合とは異なり、制限セット3の場合、サブピクセルロケーション「e」、「f」、「g」、「i」、「j」、「k」、「m」、「n」、又は「o」は、それぞれ単一の水平垂直フィルタの組合せを有する。制限セット3は利用可能なフィルタを低減し得ると同時に、制限セット3は、フィルタ選択をシグナリングするために必要とされるビットの総数をも低減し得る。
図12は、ビットストリーム中で受信されたシンタックス要素に基づいて補間フィルタを決定するための方法を示す。図12の方法は、例えば、Bスライスのサブピクセルロケーションのフィルタを決定するために使用され得る。Pスライスの3つの制限セットを含む図11とは異なり、図12の例では、2つの制限セットのみを含む。制限セット1は、図11に関して説明したように、符号化効率を改善するためにBスライスを使用するときに除外され得る。Bスライスは、一般に、Pスライスよりも少ないビットを用いて符号化される。Pスライス及びBスライスの場合と同じ制限セットを使用することにより、各分数ピクセル位置の補間フィルタの選択をシグナリングするために同数のビットが使用され得るが、補間フィルタをシグナリングするオーバーヘッドは、全体的なビットの割合として、Pスライスの場合よりもBスライスの場合のほうがはるかに高くなり得る。このより高いオーバーヘッドにより、Bスライスの場合、レート歪みトレードオフは、Pスライスの場合ほど好都合でないことがある。従って、幾つかの実装形態では、制限セット1は、Bスライスに対して使用されないことがある。
符号化ユニットのヘッダが、第2の制限セットがBスライスに対して使用されるべき予測ユニット55への信号を含んでいる場合(1207)、符号化ユニットのために決定された全てのサブピクセル値に対して、各サブピクセル値の水平フィルタと垂直フィルタの両方がサブピクセルロケーション当たり2つのシグナリングビットを使用して一緒にシグナリングされ得る。シグナリングビットに基づいて、1つのフィルタ又はフィルタのペアを選択する(1208)。サブピクセルロケーション「a」、「b」、又は「c」の場合、2つのシグナリングビットは、その特定のサブピクセルロケーションに関連する4つの水平フィルタのうちの1つを識別するために使用され得る。サブピクセルロケーション「d」、「h」、又は「l」の場合、2つのシグナリングビットは、その特定のサブピクセルロケーションに関連する4つの垂直フィルタのうちの1つを識別するために使用され得る。サブピクセルロケーション「e」、「f」、「g」、「i」、「j」、「k」、「m」、「n」、又は「o」の場合、2つのシグナリングビットは、水平フィルタと垂直フィルタとの4つのペアのうちの1つを識別するために使用され得る。シグナリングビットによって識別されたフィルタ又はフィルタの組合せに基づいて、上記で説明したのと同様にしてサブピクセルロケーションの値を決定する(1209)。符号化ユニットのヘッダが、第3の制限セットが使用されるべき予測ユニット55への信号を含んでいる場合(1211)、符号化ユニットのために決定された全てのサブピクセル値に対して、サブピクセルロケーションに関連するシグナリングビットには基づかずに、サブピクセルロケーションのみに基づいて固定フィルタ又はフィルタの組合せを使用する(1212)。例えば、サブピクセルロケーション「a」、「b」、及び「c」がそれぞれ4つの可能な対応する水平フィルタを有することができる制限セット2の場合とは異なり、制限セット3の場合、サブピクセルロケーション「a」、「b」、及び「c」は、それぞれ1つの対応する水平フィルタを有する。サブピクセルロケーション「d」、「h」、及び「l」がそれぞれ4つの可能な対応する垂直フィルタを有することができる制限セット2の場合とは異なり、制限セット3の場合、サブピクセルロケーション「d」、「h」、及び「l」は、それぞれ1つの対応する垂直フィルタを有する。サブピクセルロケーション「e」、「f」、「g」、「i」、「j」、「k」、「m」、「n」、又は「o」がそれぞれ4つの可能な水平垂直フィルタの組合せを有することができる制限セット2の場合とは異なり、制限セット3の場合、サブピクセルロケーション「e」、「f」、「g」、「i」、「j」、「k」、「m」、「n」、又は「o」は、それぞれ単一の水平垂直フィルタの組合せを有する。制限セット3は、制限セット2と比較して利用可能なフィルタを低減し得ると同時に、フィルタ選択をシグナリングするために必要とされるビットの総数をも低減する。
図13は、ビットストリーム中で受信されたシンタックス要素に基づいて補間フィルタを決定するための方法を示す流れ図である。図13の方法は、図11に関連してPスライスについて説明した方法の変更である。符号化ユニットのヘッダが、第1の制限セットが使用され得る予測ユニット55への信号を含んでいる場合(1302)、符号化ユニットのために決定された全てのサブピクセル値に対して、ビットストリーム中でフラグも送信され得る。フラグは、そのサブピクセルロケーションに対して前に使用された同じフィルタ選択を使用するように、又は異なるフィルタを使用するように予測ユニット55に伝える1ビット信号である。特定のサブピクセルロケーションに対して前のフィルタが使用されるべきであることをフラグが示す場合(1314、はい)、その特定のサブピクセルロケーションに対して最も最近使用された水平フィルタ、垂直フィルタ、又は水平フィルタと垂直フィルタとの組合せを再び使用して、特定のサブピクセルロケーションの値を決定する(1315)。同じフィルタが使用されるべきであることをフラグが示す場合、水平フィルタ及び/又は垂直フィルタをシグナリングするために場合によっては使用される2又は4ビットは送信される必要がなく、送信されるビットが低減することになる。しかしながら、特定のサブピクセルロケーションに対して異なるフィルタが使用されるべきであることをフラグが示す場合(1314、いいえ)、サブピクセルロケーションの水平フィルタと垂直フィルタの両方は、図11に関連して上記で説明したように、垂直シグナリングビットと水平シグナリングビットとを使用して別々にシグナリングされ得る。
ロケーション「a」、「b」、及び「c」以外のサブピクセルロケーションの場合、ビットストリーム中の2つの垂直シグナリングビットは、使用されるべき4つの垂直フィルタのうちの1つを識別する(1303)。ロケーション「a」、「b」、及び「c」の場合、ビットストリーム中に垂直シグナリングビットが存在し得ず、垂直フィルタは選択され得ない。本開示によれば、サブピクセルロケーション「d」、「h」、及び「l」のために選択された垂直フィルタは、「e」、「f」、「g」、「i」、「j」、「k」、「m」、「n」、及び「o」のために選択された垂直フィルタよりも長くなり得る。例えば、サブピクセルロケーション「d」、「h」、及び「l」のために選択された垂直フィルタは、8タップフィルタを備え得、サブピクセルロケーション「e」、「f」、「g」、「i」、「j」、「k」、「m」、「n」、及び「o」のために選択された垂直フィルタは、6タップフィルタを備え得る。
ロケーション「d」、「h」、及び「l」以外のサブピクセルロケーションの場合、2つの水平シグナリングビットは、使用されるべき4つの垂直フィルタのうちの1つを識別する(1304)。ロケーション「d」、「h」、及び「l」の場合、ビットストリーム中に水平シグナリングビットが存在し得ず、水平フィルタは選択されない。本開示によれば、サブピクセルロケーション「a」、「b」、及び「c」のために選択された水平フィルタは、「e」、「f」、「g」、「i」、「j」、「k」、「m」、「n」、及び「o」のために選択された水平フィルタよりも長くなり得る。例えば、サブピクセルロケーション「a」、「b」、及び「c」のために選択された水平フィルタは、8タップフィルタを備え得、サブピクセルロケーション「e」、「f」、「g」、「i」、「j」、「k」、「m」、「n」、及び「o」のために選択された水平フィルタは、6タップフィルタを備え得る。
水平フィルタ及び垂直フィルタが選択されると、これらのフィルタは、上記で説明したように、サブピクセルロケーションの値を決定するために適用され得る。サブピクセルがロケーション「a」、「b」、又は「c」に位置する場合、そのサブピクセル値を決定するために単一の水平フィルタが使用され得る。サブピクセルが「d」、「h」、又は「l」に位置する場合、そのサブピクセル値を決定するために単一の垂直フィルタが使用され得る。サブピクセルが「e」、「f」、「g」、「i」、「j」、「k」、「m」、「n」、又は「o」に位置する場合、サブピクセルロケーションの値を決定するために垂直フィルタと水平フィルタの両方が使用され得る。
符号化ユニットのヘッダが、第3の制限セットが使用され得る予測ユニット55への信号を含んでいる場合(1311)、符号化ユニットのために決定された全てのサブピクセル値に対して、サブピクセルロケーションに関連するシグナリングビットには基づかずに、サブピクセルロケーションのみに基づいて固定フィルタ又はフィルタの組合せを選択する(1312)。例えば、サブピクセルロケーション「a」、「b」、及び「c」がそれぞれ4つの可能な対応する水平フィルタを有することができる制限セット1及び2の場合とは異なり、制限セット3の場合、サブピクセルロケーション「a」、「b」、及び「c」は、それぞれ1つの対応する水平フィルタを有する。サブピクセルロケーション「d」、「h」、及び「l」がそれぞれ4つの可能な対応する垂直フィルタを有することができる制限セット1及び2の場合とは異なり、制限セット3の場合、サブピクセルロケーション「d」、「h」、及び「l」は、それぞれ1つの対応する垂直フィルタを有する。サブピクセルロケーション「e」、「f」、「g」、「i」、「j」、「k」、「m」、「n」、又は「o」がそれぞれ16個及び4個の可能な水平垂直フィルタの組合せを有する制限セット1の場合とは異なり、制限セット3の場合、サブピクセルロケーション「e」、「f」、「g」、「i」、「j」、「k」、「m」、「n」、又は「o」は、それぞれ単一の水平垂直フィルタの組合せを有する。制限セット3は、利用可能なフィルタを低減し得ると同時に、フィルタ選択をシグナリングするために必要とされるビットの総数をも低減する。
図14は、ビットストリーム中で受信されたシンタックス要素に基づいて補間フィルタを決定するための方法を示す流れ図である。図14の方法は、図12に関連してBスライスについて説明した方法の変更を備え得る。符号化ユニットのヘッダが、第2の制限セットが使用され得る予測ユニット55への信号を含んでいる場合(1407)、符号化ユニットのために決定された全てのサブピクセル値に対して、ビットストリーム中でフラグが送信され得る。フラグは、そのサブピクセルロケーションに対して前に使用された同じフィルタ選択を使用するように、又は異なるフィルタを使用するように予測ユニット55に伝える1ビット信号である。特定のサブピクセルロケーションに対して前のフィルタが使用されるべきであることをフラグが示す場合(1414、はい)、その特定のサブピクセルロケーションに対して最も最近使用された水平フィルタ、垂直フィルタ、又は水平フィルタと垂直フィルタとの組合せを再び使用して、特定のサブピクセルロケーションの値を決定する(1415)。しかしながら、特定のサブピクセルロケーションに対して異なるフィルタが使用されるべきであることをフラグが示す場合(1414、いいえ)、サブピクセルロケーションの水平フィルタと垂直フィルタの両方は、図12に関連して上記で説明したように、シグナリングビットを使用してシグナリングされ得る。
シグナリングビットに基づいて、1つのフィルタ又はフィルタのペアを選択する(1408)。サブピクセルロケーション「a」、「b」、又は「c」の場合、2つのシグナリングビットは、その特定のサブピクセルロケーションに関連する4つの水平フィルタのうちの1つを識別するために使用され得る。サブピクセルロケーション「d」、「h」、又は「l」の場合、2つのシグナリングビットは、その特定のサブピクセルロケーションに関連する4つの垂直フィルタのうちの1つを識別するために使用され得る。サブピクセルロケーション「e」、「f」、「g」、「i」、「j」、「k」、「m」、「n」、又は「o」の場合、2つのシグナリングビットは、水平フィルタと垂直フィルタとの4つのペアのうちの1つを識別するために使用され得る。シグナリングビットによって識別されたフィルタ又はフィルタの組合せに基づいて、上記で説明したのと同様にしてサブピクセルロケーションの値を決定する(1409)。
符号化ユニットのヘッダが、第3の制限セットが使用され得る予測ユニット55への信号を含んでいる場合(1411)、符号化ユニットのために決定された全てのサブピクセル値に対して、サブピクセルロケーションに関連するシグナリングビットには基づかずに、サブピクセルロケーションのみに基づいて固定フィルタ又はフィルタの組合せを使用する(1412)。例えば、サブピクセルロケーション「a」、「b」、及び「c」がそれぞれ4つの可能な対応する水平フィルタを有することができる制限セット2の場合とは異なり、制限セット3の場合、サブピクセルロケーション「a」、「b」、及び「c」は、それぞれ1つの対応する水平フィルタを有する。サブピクセルロケーション「d」、「h」、及び「l」がそれぞれ4つの可能な対応する垂直フィルタを有することができる制限セット2の場合とは異なり、制限セット3の場合、サブピクセルロケーション「d」、「h」、及び「l」は、それぞれ1つの対応する垂直フィルタを有する。サブピクセルロケーション「e」、「f」、「g」、「i」、「j」、「k」、「m」、「n」、又は「o」がそれぞれ4つの可能な水平垂直フィルタの組合せを有することができる制限セット2の場合とは異なり、制限セット3の場合、サブピクセルロケーション「e」、「f」、「g」、「i」、「j」、「k」、「m」、「n」、又は「o」は、それぞれ単一の水平垂直フィルタの組合せを有する。制限セット3は、制限セット2と比較して利用可能なフィルタを低減し得ると同時に、フィルタ選択をシグナリングするために必要とされるビットの総数をも低減する。
本開示によれば、図11、図12、図13、及び図14の例では、サブピクセルロケーション「a」、「b」、及び「c」のために選択された水平フィルタならびにサブピクセルロケーション「d」、「h」、及び「l」のために選択された垂直フィルタは、「e」、「f」、「g」、「i」、「j」、「k」、「m」、「n」、及び「o」のために選択された水平フィルタならびに垂直フィルタよりも長くなり得る。更に、図11、図12、図13、及び図14の例では、概して、4つのフィルタのうちの1つを選択するために2つのシグナリングビットを使用することについて説明しているが、より多い又はより少ないシグナリングビットも使用され得る。例えば、1つのシグナリングビットが2つのフィルタのうちの1つを選択するために使用され得るか、又は3つのシグナリングビットが8つの可能なフィルタのうちの1つを選択するために使用され得る。
本開示では、概して、1/4ピクセル動きベクトル精度に基づいて、1L位置のより長いフィルタと2L位置のより短いフィルタとを使用するための技法について説明したが、本開示の技法は、1/8ピクセル精度及び1/2ピクセル精度などの他の動きベクトル精度にも適用され得る。例えば、1/8ピクセル精度を使用するとき、7個の水平ピクセル位置及び7個の垂直ピクセル位置(即ち、14個の1L位置)と、49個の2L位置とがあり得る。
更に、幾つかの実装形態では、動きベクトル精度は、1/4ピクセル精度と1/8ピクセル精度との間などで、符号化中に適応的に切り替えられ得る。そのような実装形態では、本開示の技法は、1/4ピクセルロケーションと1/8ピクセルロケーションの両方において適用され得る。他の実装形態では、本開示の技法は、例えば、1/4ピクセルロケーションのみに適用され得、固定の、非切替え可能フィルタを使用するなどの異なるフィルタ選択技法は、1/8ピクセルロケーションにおいて使用される。固定の、非切替え可能フィルタが1/8ピクセルロケーションに対して使用される例では、フィルタ選択は、1/4ピクセルロケーションについてはデコーダにシグナリングされ得るが、1/8ピクセル位置についてはシグナリングされ得ない。
更に、図11〜図14の例及び本開示における他の例について、概して2L位置の分離可能フィルタを使用して説明したが、幾つかの実装形態では、2L位置のシグナリングビットは、1つ以上の非分離可能フィルタを識別するために使用され得ることが企図される。一例として、制限セット2について上記で説明した2つのシグナリングビットは、2つの非分離可能フィルタと2つの分離可能フィルタとを含む4つのフィルタ間で選択するために使用され得る。
図15は、本開示の態様を実装する方法を示すフローチャートである。図15の技法は、例えば、図1、図2、及び図10に示された機器によって実行され得る。図1のビデオエンコーダ22とビデオデコーダ28の両方と図10のビデオデコーダ60とを含む、他の機器は、図15の方法の態様をも実行し得るが、図15の方法について図2の観点から説明する。予測ユニット32のMCユニット37は、ピクセルのブロック内の整数ピクセル位置に対応する整数ピクセル値を含むメモリ34からピクセルのブロックを取得する(1501)。フィルタ処理ユニット39は、ピクセルのブロックに関連するサブピクセル位置に対応するサブピクセル値を計算する。フィルタ処理ユニット39は、フィルタサポート位置に対応するフィルタ係数の第1の1次元アレイを定義する第1の補間フィルタを適用することによって、整数ピクセル位置との共通の垂直軸又は整数ピクセル位置との共通の水平軸のいずれかの上のサブピクセル位置(例えば、図4の1Lサブピクセル位置参照)について、第1のサブピクセル値を計算する(1502)。例えば、第1の補間フィルタは、8タップフィルタを備え得、第1の補間フィルタのフィルタサポート位置は、整数ピクセル位置のセットに対応する。フィルタ処理ユニット39は、水平フィルタサポート位置に対応するフィルタ係数の第2の1次元アレイを定義する第2の補間フィルタを適用することと、垂直フィルタサポート位置に対応するフィルタ係数の第3の1次元アレイを定義する第3の補間フィルタを適用することとによって第2のサブピクセル値を計算する(1503)。第2のサブピクセル値は、整数ピクセル位置との共通の垂直軸の上になく、整数ピクセル位置との共通の水平軸の上にないサブピクセル位置(例えば、図5の2Lサブピクセル位置参照)に対応する。例えば、第2及び第3の補間フィルタは、それぞれ6タップフィルタであり得る。本開示の一態様によれば、第1の1次元アレイは、第2の1次元アレイよりも多いフィルタ係数を含み、第3の1次元アレイよりも多いフィルタ係数を含む。
第1のサブピクセル値及び第2のサブピクセル値などのサブピクセル値に基づいて、MCユニット37は、予測ブロックを生成する(1504)。特に、MCユニット37は、ビデオ符号化プロセスの一部として、補間サブピクセル値をもつ補間予測ブロックを生成し、出力し得る。予測ユニット32はまた、その予測ブロックを用いて、サブピクセル位置に対して使用されるべき特定の補間フィルタを識別するシグナリングビットを出力する(1505)。シグナリングビットは、第2の補間フィルタと第3の補間フィルタとを別々に識別し得るか、又は第2の補間フィルタと第3の補間フィルタとの組合せを識別し得る。予測ユニット32はまた、サブピクセル位置に対して使用されるべき補間フィルタがサブピクセル位置に対して前に使用された補間フィルタであることを示すフラグを出力する(1506)。
本開示の技法は、ワイヤレスハンドセット、及び集積回路(IC)又はICのセット(即ち、チップセット)を含む、多種多様な機器又は装置において実装され得る。機能的態様を強調するために与えられた任意の構成要素、モジュール又はユニットについて説明したが、異なるハードウェアユニットによる実現を必ずしも必要とするとは限らない。
従って、本明細書で説明する技法は、ハードウェア、ソフトウェア、ファームウェア、又はそれらの任意の組合せで実装され得る。ハードウェアで実装する場合、モジュール、ユニット又は構成要素として説明した特徴は、集積論理装置に一緒に、又は個別であるが相互運用可能な論理装置として別々に実装され得る。ソフトウェアで実装する場合、これらの技法は、プロセッサで実行されると、上記で説明した方法の1つ又は複数を実行する命令を備えるコンピュータ可読媒体に少なくとも部分的によって実現され得る。コンピュータ可読媒体は、非一時的コンピュータ可読記憶媒体を備え得、パッケージング材料を含むことがあるコンピュータプログラム製品の一部を形成し得る。コンピュータ可読記憶媒体は、同期型ダイナミックランダムアクセスメモリ(SDRAM)などのランダムアクセスメモリ(RAM)、読取り専用メモリ(ROM)、不揮発性ランダムアクセスメモリ(NVRAM)、電気消去可能プログラマブル読取り専用メモリ(EEPROM)、フラッシュメモリ、磁気又は光学データ記憶媒体などを備え得る。本技法は、追加又は代替として、命令又はデータ構造の形態でコードを搬送又は通信し、コンピュータによってアクセス、読取り、及び/又は実行され得るコンピュータ可読通信媒体によって、少なくとも部分的に実現され得る。
コードは、1つ以上のデジタル信号プロセッサ(DSP)などの1つ以上のプロセッサ、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブル論理アレイ(FPGA)、又は他の等価な集積回路又はディスクリート論理回路によって実行され得る。従って、本明細書で使用する「プロセッサ」という用語は、前述の構造、又は本明細書で説明する技法の実装に好適な他の構造のいずれかを指す。更に、幾つかの態様では、本明細書で説明した機能は、符号化及び復号のために構成された専用のソフトウェアモジュール又はハードウェアモジュール内に提供され得、或いは複合ビデオコーデックに組み込まれ得る。また、本技法は、1つ以上の回路又は論理要素中に十分に実装され得る。
本開示の様々な態様について説明した。これら及び他の態様は以下の特許請求の範囲内に入る。

Claims (37)

  1. 複数のピクセルの1つのブロックの第1のサブピクセル位置の第1のサブピクセル値を計算することと、前記第1のサブピクセル位置は、複数の整数ピクセル位置と共通の垂直軸又は複数の整数ピクセル位置と共通の水平軸のいずれかの上にあり、前記複数のピクセルの1つのブロックは、前記複数のピクセルの1つのブロック内の整数ピクセル位置に対応する整数ピクセル値を含み、前記第1のサブピクセル値を計算することは、複数のフィルタサポート位置に対応する複数のフィルタ係数の第1の1次元アレイを定義する第1の補間フィルタを適用することを含み、前記第1のサブピクセル値は、1つのピクセル位置および複数の整数ピクセル位置に対応する前記複数のフィルタサポート位置に対応する、
    前記複数のピクセルの1つのブロックの第2のサブピクセル位置の第2のサブピクセル値を計算することと、前記第2のサブピクセル位置は、複数の整数ピクセル位置と共通の垂直軸の上になく、複数の整数ピクセル位置と共通の水平軸の上になく、前記第2のサブピクセル値を計算することは、複数の水平フィルタサポート位置に対応する複数のフィルタ係数の第2の1次元アレイを定義する第2の補間フィルタを適用することと、複数の垂直フィルタサポート位置に対応する複数のフィルタ係数の第3の1次元アレイを定義する第3の補間フィルタを適用することとを含み、
    前記第2のサブピクセル位置が、1/4ピクセル位置であり、
    前記第1の1次元アレイが、前記第2の1次元アレイよりも多いフィルタ係数を有し、
    前記第1の1次元アレイが、前記第3の1次元アレイよりも多いフィルタ係数を有する、
    少なくとも前記第1のサブピクセル値と前記第2のサブピクセル値とに基づいて予測ブロックを生成することと、を含む、
    ビデオ信号を予測する方法。
  2. 前記第1の補間フィルタが8タップフィルタを備え、
    前記第2の補間フィルタが6タップフィルタを備え、
    前記第3の補間フィルタが6タップフィルタを備える、請求項1に記載の方法。
  3. 前記第1の補間フィルタの複数のフィルタサポート位置が1セットの複数の整数ピクセル位置に対応する、請求項1に記載の方法。
  4. 前記方法がビデオ符号化プロセスの一部を形成し、
    複数のシグナリングビットを符号化すること、を更に備え、前記シグナリングビットが、1つのサブピクセル位置に対して使用されるべき1つの特定の補間フィルタを識別する、請求項1に記載の方法。
  5. 前記シグナリングビットが、前記第2の補間フィルタと前記第3の補間フィルタとを別々に識別する、請求項に記載の方法。
  6. 前記シグナリングビットが、前記第2の補間フィルタと前記第3の補間フィルタとを備える組合せを識別する、請求項に記載の方法。
  7. 前記方法がビデオ符号化プロセスの一部を形成し、
    フラグを符号化すること、を更に含み、前記フラグは、1つのサブピクセル位置に対して使用されるべき1つの補間フィルタが前記サブピクセル位置に対して前に使用された1つの補間フィルタであることを示す、請求項1に記載の方法。
  8. 前記方法がビデオ復号プロセスの一部を形成し、
    複数のシグナリングビットを復号すること、を更に備え、前記シグナリングビットが、1つのサブピクセル位置に対して使用されるべき1つの特定の補間フィルタを識別する、請求項1に記載の方法。
  9. 複数のピクセルの1つのブロックを記憶するように構成されるメモリと、前記複数のピクセルの1つのブロックは前記複数のピクセルの1つのブロック内の複数の整数ピクセル位置に対応する複数の整数ピクセル値を含む、
    前記メモリに結合され、
    前記複数のピクセルの1つのブロックの1つの第1のサブピクセル位置の第1のサブピクセル値と前記複数のピクセルの1つのブロックの1つの第2のサブピクセル位置の1つの第2のサブピクセル値とを計算し、前記第1のサブピクセル値は、複数の整数ピクセル位置と共通の垂直軸又は複数の整数ピクセル位置と共通の水平軸のいずれかの上の1つのサブピクセル位置に対応し、前記第2のサブピクセル値が、複数の整数ピクセル位置と共通の垂直軸の上になく、複数の整数ピクセル位置と共通の水平軸の上にない1つのサブピクセル位置に対応する、
    少なくとも前記第1のサブピクセル値と前記第2のサブピクセル値とに基づいて予測ブロックを生成するように構成されたプロセッサを備え
    記第2のサブピクセル位置が、1/4ピクセル位置であり、
    前記第1のサブピクセル値が、複数の整数ピクセル位置に対応する複数のフィルタサポート位置に対応する複数のフィルタ係数の第1の1次元アレイを定義する1つの第1の補間フィルタを適用することによって計算され、
    前記第2のサブピクセル値が、複数の水平整数ピクセル位置に対応する複数の水平フィルタサポート位置に対応する複数のフィルタ係数の第2の1次元アレイを定義する1つの第2の補間フィルタを適用複数の垂直整数ピクセル位置に対応する複数の垂直フィルタサポート位置に対応する複数のフィルタ係数の第3の1次元アレイを定義する第3の補間フィルタを適用することによって計算され、
    前記第1の1次元アレイが、前記第2の1次元アレイよりも多いフィルタ係数を備え、
    前記第1の1次元アレイが、前記第3の1次元アレイよりも多いフィルタ係数を備える、ビデオ信号を予測するための装置。
  10. 前記第1の補間フィルタが8タップフィルタを備え、
    前記第2の補間フィルタが6タップフィルタを備え、
    前記第3の補間フィルタが6タップフィルタを備える、請求項に記載の装置。
  11. 前記第1の補間フィルタの複数のフィルタサポート位置が1セットの複数の整数ピクセル位置に対応する、請求項に記載の装置。
  12. 前記プロセッサが、複数のシグナリングビットを生成するように更に構成され、前記シグナリングビットが、1つのサブピクセル位置に対して使用されるべき1つの特定の補間フィルタを識別する、請求項に記載の装置。
  13. 前記シグナリングビットが、前記第2の補間フィルタと前記第3の補間フィルタとを別々に識別する、請求項12に記載の装置。
  14. 前記シグナリングビットが、前記第2の補間フィルタと前記第3の補間フィルタとを備える組合せを識別する、請求項12に記載の装置。
  15. 前記プロセッサが、送信のためのフラグを生成するように更に構成され、前記フラグは、1つのサブピクセル位置に対して使用されるべき1つの補間フィルタが前記サブピクセル位置に対して前に使用された前記補間フィルタであることを示す、請求項に記載の装置。
  16. 前記プロセッサが、複数のシグナリングビットを復号するように更に構成され、前記シグナリングビットが、1つのサブピクセル位置に対して使用されるべき1つの特定の補間フィルタを識別する、請求項に記載の装置。
  17. 前記プロセッサ1つのフラグを復号するように更に構成され、前記フラグは、1つのサブピクセル位置に対して使用されるべき1つの補間フィルタが前記サブピクセル位置に対して前に使用された1つの補間フィルタであることを示す、請求項に記載の装置。
  18. 前記プロセッサがビデオ符号化装置の構成要素である、請求項に記載の装置。
  19. 前記プロセッサがビデオ復号装置の構成要素である、請求項に記載の装置。
  20. 複数のピクセルの1つのブロックの1つの第1のサブピクセル位置の1つの第1のサブピクセル値を計算するための手段と、前記第1のサブピクセル位置は、複数の整数ピクセル位置と共通の垂直軸又は複数の整数ピクセル位置と共通の水平軸のいずれかの上にあり、前記複数のピクセルの1つのブロックは、前記複数のピクセルの1つのブロック内の複数の整数ピクセル位置に対応する複数の整数ピクセル値を含み、前記第1のサブピクセル値を計算することは、複数の整数ピクセル位置に対応する複数のフィルタサポート位置に対応する複数のフィルタ係数の1つの第1の1次元アレイを定義する1つの第1の補間フィルタを適用することを含み
    前記複数のピクセルの1つのブロックの1つの第2のサブピクセル位置の1つの第2のサブピクセル値を計算するための手段と、前記第2のサブピクセル位置は、複数の整数ピクセル位置と共通の垂直軸の上になく、複数の整数ピクセル位置と共通の水平軸の上になく、前記第2のサブピクセル値を計算することは、複数の水平整数ピクセル位置に対応する複数の水平フィルタサポート位置に対応する複数のフィルタ係数の1つの第2の1次元アレイを定義する1つの第2の補間フィルタを適用することと、複数の垂直整数ピクセル位置に対応する複数の垂直フィルタサポート位置に対応する複数のフィルタ係数の1つの第3の1次元アレイを定義する1つの第3の補間フィルタを適用することとを含み
    少なくとも前記第1のサブピクセル値と前記第2のサブピクセル値とに基づいて1つの予測ブロックを生成するための手段と、を具備し
    記第2のサブピクセル位置が、1/4ピクセル位置であり、
    前記第1の1次元アレイが、前記第2の1次元アレイよりも多いフィルタ係数を備え、
    前記第1の1次元アレイが、前記第3の1次元アレイよりも多いフィルタ係数を備える、ビデオ信号を予測するための装置。
  21. 前記第1の補間フィルタが8タップフィルタを備え、
    前記第2の補間フィルタが6タップフィルタを備え、
    前記第3の補間フィルタが6タップフィルタを備える、請求項20に記載の装置。
  22. 前記第1の補間フィルタの複数のフィルタサポート位置が1セットの複数の整数ピクセル位置に対応する、請求項20に記載の装置。
  23. 複数のシグナリングビットを復号化するための手段を更に含み、前記シグナリングビットが、1つのサブピクセル位置に対して使用されるべき1つの特定の補間フィルタを識別する、請求項20に記載の装置。
  24. 前記シグナリングビットが、前記第2の補間フィルタと前記第3の補間フィルタとを別々に識別する、請求項23に記載の装置。
  25. 前記シグナリングビットが、前記第2の補間フィルタと前記第3の補間フィルタとを備える組合せを識別する、請求項23に記載の装置。
  26. フラグを符号化する手段を更に備え、前記フラグは、1つのサブピクセル位置に対して使用されるべき1つの補間フィルタが前記サブピクセル位置に対して前に使用され1つの間フィルタであることを示す、請求項20に記載の装置。
  27. 複数のシグナリングビットを復号化するための手段を更に備え、前記シグナリングビットは1つのサブピクセル位置に対して使用されるべき1つの特定の補間フィルタを識別する、請求項20に記載の装置。
  28. フラグを復号するための手段を更に備え、前記フラグは1つのサブピクセル位置に対して使用されるべき1つの補間フィルタが前記サブピクセル位置に対して前に使用された1つの補間フィルタであることを示する、請求項20に記載の装置。
  29. 1つ以上のプロセッサによって実行されたとき、
    複数のピクセルの1つのブロックの1つの第1のサブピクセル位置の1つの第1のサブピクセル値を計算することと、前記第1のサブピクセル位置は、複数の整数ピクセル位置と共通の垂直軸又は複数の整数ピクセル位置と共通の水平軸のいずれかの上にあり、前記複数のピクセルの1つのブロックは、前記複数のピクセルの1つのブロック内の複数の整数ピクセル位置に対応する複数の整数ピクセル値を含み、前記第1のサブピクセル値を計算することは、複数の整数ピクセル位置に対応する複数のフィルタサポート位置に対応する複数のフィルタ係数の1つの第1の1次元アレイを定義する1つの第1の補間フィルタを適用することを含み
    前記複数のピクセルの1つのブロックの1つの第2のサブピクセル位置の1つの第2のサブピクセル値を計算することと、前記第2のサブピクセル位置は、複数の整数ピクセル位置と共通の垂直軸の上になく、複数の整数ピクセル位置と共通の水平軸の上になく、前記第2のサブピクセル値を計算することは、複数の水平整数ピクセル位置に対応する複数の水平フィルタサポート位置に対応する複数のフィルタ係数の1つの第2の1次元アレイを定義する1つの第2の補間フィルタを適用することと、複数の垂直整数ピクセル位置に対応する複数の垂直フィルタサポート位置に対応する複数のフィルタ係数の1つの第3の1次元アレイを定義する1つの第3の補間フィルタを適用することとを含み
    少なくとも前記第1のサブピクセル値と前記第2のサブピクセル値とに基づいて1つの予測ブロックを生成することと、を前記1つ以上のプロセッサに行わせる、1つ以上の命令を有形に記憶し
    記第2のサブピクセル位置が、1/4ピクセル位置であり、
    前記第1の1次元アレイが、前記第2の1次元アレイよりも多いフィルタ係数を備え、
    前記第1の1次元アレイが、前記第3の1次元アレイよりも多いフィルタ係数を備える、コンピュータ可読記憶媒体。
  30. 前記第1の補間フィルタが8タップフィルタを備え、
    前記第2の補間フィルタが6タップフィルタを備え、
    前記第3の補間フィルタが6タップフィルタを備える、請求項29に記載のコンピュータ可読記憶媒体。
  31. 前記第1の補間フィルタの複数のフィルタサポート位置が1セットの複数の整数ピクセル位置に対応する、請求項29に記載のコンピュータ可読記憶媒体。
  32. 前記1つ以上のプロセッサによって実行されたとき、
    前記プロセッサに複数のシグナリングビットを符号化させる1つ以上の追加の命令を記憶し、前記シグナリングビットは1つのサブピクセル位置に対して使用されるべき1つの特定の補間フィルタを識別する、請求項29に記載のコンピュータ可読記憶媒体。
  33. 前記シグナリングビットが、前記第2の補間フィルタと前記第3の補間フィルタとを別々に識別する、請求項32に記載のコンピュータ可読記憶媒体。
  34. 前記シグナリングビットが、前記第2の補間フィルタと前記第3の補間フィルタとを備える組合せを識別する、請求項32に記載のコンピュータ可読記憶媒体。
  35. 前記1つ以上のプロセッサによって実行されたとき、
    前記プロセッサに1つのフラグを符号化させる1つ以上の追加の命令を記憶し、前記フラグは1つのサブピクセル位置に対して使用されるべき1つの補間フィルタが前記サブピクセル位置に対して前に使用され1つの間フィルタであることを示す、請求項29に記載のコンピュータ可読記憶媒体。
  36. 前記1つ以上のプロセッサによって実行されたとき、
    前記プロセッサに複数のシグナリングビットを復号化させる1つ以上の追加の命令を記憶し、前記シグナリングビットは1つのサブピクセル位置に対して使用されるべき1つの特定の補間フィルタを識別する、請求項29に記載のコンピュータ可読記憶媒体。
  37. 前記1つ以上のプロセッサによって実行されたとき、
    前記プロセッサに1つのフラグを復号化させる1つ以上の追加の命令を記憶し、前記フラグは1つのサブピクセル位置に対して使用されるべき1つの補間フィルタが前記サブピクセル位置に対して前に使用され1つの間フィルタであることを示す、請求項29に記載のコンピュータ可読記憶媒体。
JP2013505024A 2010-04-12 2011-04-11 混合タップフィルタ Active JP5607236B2 (ja)

Applications Claiming Priority (9)

Application Number Priority Date Filing Date Title
US32325010P 2010-04-12 2010-04-12
US61/323,250 2010-04-12
US35074310P 2010-06-02 2010-06-02
US61/350,743 2010-06-02
US36118810P 2010-07-02 2010-07-02
US61/361,188 2010-07-02
US13/012,583 2011-01-24
US13/012,583 US9219921B2 (en) 2010-04-12 2011-01-24 Mixed tap filters
PCT/US2011/031998 WO2011130187A1 (en) 2010-04-12 2011-04-11 Mixed tap filters

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2014130725A Division JP2014222902A (ja) 2010-04-12 2014-06-25 混合タップフィルタ

Publications (2)

Publication Number Publication Date
JP2013524731A JP2013524731A (ja) 2013-06-17
JP5607236B2 true JP5607236B2 (ja) 2014-10-15

Family

ID=44760908

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2013505024A Active JP5607236B2 (ja) 2010-04-12 2011-04-11 混合タップフィルタ
JP2014130725A Pending JP2014222902A (ja) 2010-04-12 2014-06-25 混合タップフィルタ

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2014130725A Pending JP2014222902A (ja) 2010-04-12 2014-06-25 混合タップフィルタ

Country Status (17)

Country Link
US (1) US9219921B2 (ja)
EP (2) EP4060989A1 (ja)
JP (2) JP5607236B2 (ja)
KR (1) KR101469338B1 (ja)
CN (1) CN102835108B (ja)
AU (1) AU2011240766B2 (ja)
BR (1) BR112012026153A2 (ja)
CA (1) CA2795204C (ja)
HK (1) HK1177078A1 (ja)
IL (1) IL222338A (ja)
MX (1) MX2012011882A (ja)
MY (1) MY154574A (ja)
RU (1) RU2543953C2 (ja)
SG (1) SG184313A1 (ja)
TW (1) TWI437888B (ja)
WO (1) WO2011130187A1 (ja)
ZA (1) ZA201208137B (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120134425A1 (en) * 2010-11-29 2012-05-31 Faouzi Kossentini Method and System for Adaptive Interpolation in Digital Video Coding
US9172972B2 (en) 2011-01-05 2015-10-27 Qualcomm Incorporated Low complexity interpolation filtering with adaptive tap size
US9313519B2 (en) 2011-03-11 2016-04-12 Google Technology Holdings LLC Interpolation filter selection using prediction unit (PU) size
US9264725B2 (en) 2011-06-24 2016-02-16 Google Inc. Selection of phase offsets for interpolation filters for motion compensation
JP5727673B2 (ja) 2011-07-01 2015-06-03 モトローラ モビリティ エルエルシーMotorola Mobility Llc 時間予測のためのジョイントサブピクセル補間フィルタ
US20140078394A1 (en) * 2012-09-17 2014-03-20 General Instrument Corporation Selective use of chroma interpolation filters in luma interpolation process
US11122262B2 (en) 2014-06-27 2021-09-14 Samsung Electronics Co., Ltd. System and method for motion compensation in video coding
US10009622B1 (en) 2015-12-15 2018-06-26 Google Llc Video coding with degradation of residuals
KR20180042899A (ko) * 2016-10-19 2018-04-27 디지털인사이트 주식회사 적응적 보간 필터를 사용하는 비디오 코딩 방법 및 장치
US10841610B2 (en) * 2017-10-23 2020-11-17 Avago Technologies International Sales Pte. Limited Block size dependent interpolation filter selection and mapping
GB2574380A (en) * 2018-05-30 2019-12-11 Realvnc Ltd Processing image data

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6421698B1 (en) * 1998-11-04 2002-07-16 Teleman Multimedia, Inc. Multipurpose processor for motion estimation, pixel processing, and general processing
US6950469B2 (en) * 2001-09-17 2005-09-27 Nokia Corporation Method for sub-pixel value interpolation
WO2003030556A1 (en) 2001-09-18 2003-04-10 Matsushita Electric Industrial Co., Ltd. Image encoding method and image decoding method
BR0304545A (pt) * 2002-01-14 2004-11-03 Nokia Corp Método de codificação das imagens em uma sequência de vìdeo digital para fornecer os dados de vìdeo codificados, codificador de vìdeo, método de decodificação dos dados indicativos de uma sequência de vìdeo digital, decodificador de vìdeo, e, sistema de decodificação de vìdeo
JP3861698B2 (ja) * 2002-01-23 2006-12-20 ソニー株式会社 画像情報符号化装置及び方法、画像情報復号装置及び方法、並びにプログラム
US7620109B2 (en) 2002-04-10 2009-11-17 Microsoft Corporation Sub-pixel interpolation in motion estimation and compensation
US20040076333A1 (en) 2002-10-22 2004-04-22 Huipin Zhang Adaptive interpolation filter system for motion compensated predictive video coding
EP1617672A1 (en) 2004-07-13 2006-01-18 Matsushita Electric Industrial Co., Ltd. Motion estimator/compensator including a 16-bit 1/8 pel interpolation filter
US7623575B2 (en) 2005-01-05 2009-11-24 Lsi Corporation Method and apparatus for sub-pixel motion compensation
KR20080044874A (ko) 2005-08-15 2008-05-21 노키아 코포레이션 비디오 코딩 시의 갱신 연산을 위한 서브 픽셀 보간 방법및 장치
US20080075165A1 (en) 2006-09-26 2008-03-27 Nokia Corporation Adaptive interpolation filters for video coding
CN101632306B (zh) 2006-12-01 2014-03-19 法国电信公司 用于运动补偿预测视频编码和解码的自适应内插方法和系统
EP2127391A2 (en) * 2007-01-09 2009-12-02 Nokia Corporation Adaptive interpolation filters for video coding
US9118927B2 (en) 2007-06-13 2015-08-25 Nvidia Corporation Sub-pixel interpolation and its application in motion compensated encoding of a video signal
US8416861B2 (en) * 2007-10-14 2013-04-09 Nokia Corporation Fixed-point implementation of an adaptive image filter with high coding efficiency
EP2106136A1 (en) 2008-03-28 2009-09-30 Sony Corporation Motion compensated temporal interpolation for frame rate conversion of video signals
US8462842B2 (en) 2008-04-10 2013-06-11 Qualcomm, Incorporated Symmetry for interpolation filtering of sub-pixel positions in video coding
US8804831B2 (en) 2008-04-10 2014-08-12 Qualcomm Incorporated Offsets at sub-pixel resolution
US8705622B2 (en) 2008-04-10 2014-04-22 Qualcomm Incorporated Interpolation filter support for sub-pixel resolution in video coding
US9077971B2 (en) 2008-04-10 2015-07-07 Qualcomm Incorporated Interpolation-like filtering of integer-pixel positions in video coding
US20090257499A1 (en) 2008-04-10 2009-10-15 Qualcomm Incorporated Advanced interpolation techniques for motion compensation in video coding
JP4977094B2 (ja) 2008-06-25 2012-07-18 株式会社東芝 画像符号化方法
US9078007B2 (en) 2008-10-03 2015-07-07 Qualcomm Incorporated Digital video coding with interpolation filters and offsets
JP5158003B2 (ja) 2009-04-14 2013-03-06 ソニー株式会社 画像符号化装置と画像符号化方法およびコンピュータ・プログラム

Also Published As

Publication number Publication date
US20110249737A1 (en) 2011-10-13
CN102835108A (zh) 2012-12-19
TW201220854A (en) 2012-05-16
WO2011130187A1 (en) 2011-10-20
JP2013524731A (ja) 2013-06-17
CA2795204A1 (en) 2011-10-20
SG184313A1 (en) 2012-11-29
IL222338A (en) 2016-06-30
ZA201208137B (en) 2013-06-26
IL222338A0 (en) 2012-12-31
MY154574A (en) 2015-06-30
RU2012147772A (ru) 2014-05-27
BR112012026153A2 (pt) 2020-08-18
AU2011240766A1 (en) 2012-11-01
KR20130029077A (ko) 2013-03-21
EP4060989A1 (en) 2022-09-21
CN102835108B (zh) 2015-07-01
HK1177078A1 (en) 2013-08-09
TWI437888B (zh) 2014-05-11
RU2543953C2 (ru) 2015-03-10
CA2795204C (en) 2015-12-08
US9219921B2 (en) 2015-12-22
KR101469338B1 (ko) 2014-12-24
EP2559249A1 (en) 2013-02-20
MX2012011882A (es) 2012-11-30
JP2014222902A (ja) 2014-11-27
AU2011240766B2 (en) 2014-02-13

Similar Documents

Publication Publication Date Title
JP5607236B2 (ja) 混合タップフィルタ
JP6301401B2 (ja) ビデオコード化のためのサブ画素の値を補間するための適応サポート
JP5619725B2 (ja) ビデオコーディングにおけるサブピクセル解像度のための補間フィルタサポート
TWI542222B (zh) 用於基於固定濾波器或適應性濾波器用於視訊編碼之由率失真定義之內插之方法、裝置、器件及電腦可讀儲存媒體
JP5180366B2 (ja) ビデオコーディングにおけるサブピクセル位置の補間フィルタリングに対する対称性
EP2586207B1 (en) Inclusion of switched interpolation filter coefficients in a compressed bit-stream
JP5575747B2 (ja) 動き補償プロセスにおいて予測ブロックを発生する方法、装置、およびコンピュータ可読記憶媒体
JP5766878B2 (ja) 低減解像度ピクセル補間
JP2011517237A (ja) ビデオ・コーディングにおける補間のための予測技法

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20131001

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20140106

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20140114

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140130

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20140225

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140625

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

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20140703

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140827

R150 Certificate of patent or registration of utility model

Ref document number: 5607236

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

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