JP5766878B2 - 低減解像度ピクセル補間 - Google Patents

低減解像度ピクセル補間 Download PDF

Info

Publication number
JP5766878B2
JP5766878B2 JP2014519172A JP2014519172A JP5766878B2 JP 5766878 B2 JP5766878 B2 JP 5766878B2 JP 2014519172 A JP2014519172 A JP 2014519172A JP 2014519172 A JP2014519172 A JP 2014519172A JP 5766878 B2 JP5766878 B2 JP 5766878B2
Authority
JP
Japan
Prior art keywords
value
pixel value
coding device
video coding
video
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2014519172A
Other languages
English (en)
Other versions
JP2014521257A (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 JP2014521257A publication Critical patent/JP2014521257A/ja
Application granted granted Critical
Publication of JP5766878B2 publication Critical patent/JP5766878B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/59Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial sub-sampling or interpolation, e.g. alteration of picture size or resolution
    • 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/156Availability of hardware or computational resources, e.g. encoding based on power-saving criteria
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/184Methods 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 bits, e.g. of the compressed video stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/43Hardware specially adapted for motion estimation or compensation

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

本出願は、各々の内容全体が参照により本明細書に組み込まれる、2011年7月1日に出願された米国仮出願第61/504,149号、2011年7月8日に出願された米国仮出願第61/506,016号、2011年7月9日に出願された米国仮出願第61/506,059号、2011年7月13日に出願された米国仮出願第61/507,564号、および2011年10月19日に出願された米国仮出願第61/549,131号に対する優先権を主張する。
本開示は、ビデオコーディングに関する。
デジタルビデオ機能は、デジタルテレビジョン、デジタルダイレクトブロードキャストシステム、ワイヤレスブロードキャストシステム、携帯情報端末(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ペル値とはサブピクセルロケーションに関連する。ビデオシーケンス中の分数移動(fractional movement)をキャプチャするために、分数動きベクトル(fractional motion vectors)を使用して、ビデオブロックをサブピクセル解像度で識別し、それによって、整数ビデオブロックよりもコーディングされているビデオブロックに類似している予測ブロックを与え得る。
本開示では、ビデオ符号化および/または復号プロセスの予測段階中にエンコーダおよびデコーダによって適用されるフィルタ処理技法について説明する。ピクセルデータは、一般に、一連のピクセル値(たとえば、ルミナンス値および/またはクロミナンス値)として表される。これらのピクセル値は、しばしば8ビット値または10ビット値のいずれかであるが、他のビット深度も使用され得る。補間フィルタ処理は、一般に、ピクセル値を使用して一連の乗算演算および加算演算を実行することを伴う。これらの乗算演算および加算演算により、いくつかの事例では、10ビットピクセル値を用いた補間フィルタ処理は、17ビットである中間値を生じる。しかしながら、レジスタおよび他のコンピュータ構成要素は一般に16ビットまたは32ビットの単位で動作するので、17ビット値は望ましくないことがある。これらの中間値は17ビットであり得るが、これらの17ビット値によってカバーされる値の範囲は依然として16ビットのみであり得る。したがって、本開示では、中間値のビット深度を低減するために中間ピクセル値にオフセットを適用するための技法について説明する。その場合、中間値は、低減されたビット深度で記憶され得る。将来の計算のために取り出されたとき、オフセットは、より低い精度値が記憶されても、より高い精度値を使用してその計算が実行されるように、中間値に再加算され得る。したがって、本開示の技法は、いくつかの事例では、効率的に記憶され得る中間値を維持すると同時に、中間値のビット深度を低減することに関連する精度の損失を最小限に抑えることによって、コーディングシステムの効率を改善し得る。
一例では、方法は、ピクセルのブロックを取得することであって、ピクセルのブロックが、ピクセルのブロック内の整数ピクセル位置に対応する整数ピクセル値を含む、取得することと、第1の中間ピクセル値を生成するために整数ピクセル値のグループに第1のフィルタ処理演算を適用することと、第2の中間ピクセル値を生成するために第1の中間ピクセル値に第1のオフセットを加算することであって、第1のオフセットを加算することにより、第2の中間値が、第1の中間ピクセル値よりも小さいビット深度を有する、加算することと、第2の中間ピクセル値を記憶することと、第2の中間ピクセル値を取り出すことと、取り出された第2の中間値に第2のオフセットを加算することと、サブピクセルロケーションの第1のピクセル値を計算するために、加算された第2のオフセットをもつ取り出された第2の中間ピクセル値を備える中間ピクセル値のグループに第2のフィルタ処理演算を適用することと、サブピクセルロケーションの少なくとも第1のピクセル値に基づいて予測ブロックを生成することとを含む。
別の例では、ビデオコーディングデバイスは、ピクセルのブロックを取得することであって、ピクセルのブロックが、ピクセルのブロック内の整数ピクセル位置に対応する整数ピクセル値を含む、取得することと、第1の中間ピクセル値を生成するために整数ピクセル値のグループに第1のフィルタ処理演算を適用することと、第2の中間ピクセル値を生成するために第1の中間ピクセル値に第1のオフセットを加算することであって、第1のオフセットを加算することにより、第2の中間値が、第1の中間ピクセル値よりも小さいビット深度を有する、加算することと、第2の中間ピクセル値を記憶することと、第2の中間ピクセル値を取り出すことと、取り出された第2の中間値に第2のオフセットを加算することと、サブピクセルロケーションの第1のピクセル値を計算するために、加算された第2のオフセットをもつ取り出された第2の中間ピクセル値を備える中間ピクセル値のグループに第2のフィルタ処理演算を適用することと、サブピクセルロケーションの少なくとも第1のピクセル値に基づいて予測ブロックを生成することとを行うように構成されたビデオコーダを含む。
別の例では、装置は、ピクセルのブロックを取得するための手段であって、ピクセルのブロックが、ピクセルのブロック内の整数ピクセル位置に対応する整数ピクセル値を含む、取得するための手段と、第1の中間ピクセル値を生成するために整数ピクセル値のグループに第1のフィルタ処理演算を適用するための手段と、第2の中間ピクセル値を生成するために第1の中間ピクセル値に第1のオフセットを加算するための手段であって、第1のオフセットを適用することにより、第2の中間値が、第1の中間ピクセル値よりも小さいビット深度を有する、加算するための手段と、第2の中間ピクセル値を記憶するための手段と、第2の中間ピクセル値を取り出すための手段と、取り出された第2の中間値に第2のオフセットを加算するための手段と、サブピクセルロケーションの第1のピクセル値を計算するために、加算された第2のオフセットをもつ取り出された第2の中間ピクセル値を備える中間ピクセル値のグループに第2のフィルタ処理演算を適用するための手段と、サブピクセルロケーションの少なくとも第1のピクセル値に基づいて予測ブロックを生成するための手段とを含む。
別の例では、コンピュータ可読記憶媒体は、実行されると、1つまたは複数のプロセッサに、ピクセルのブロックを取得することであって、ピクセルのブロックが、ピクセルのブロック内の整数ピクセル位置に対応する整数ピクセル値を含む、取得することと、第1の中間ピクセル値を生成するために整数ピクセル値のグループに第1のフィルタ処理演算を適用することと、第2の中間ピクセル値を生成するために第1の中間ピクセル値に第1のオフセットを加算することであって、第1のオフセットを適用することにより、第2の中間値が、第1の中間ピクセル値よりも小さいビット深度を有する、加算することと、第2の中間ピクセル値を記憶することと、第2の中間ピクセル値を取り出すことと、取り出された第2の中間値に第2のオフセットを加算することと、サブピクセルロケーションの第1のピクセル値を計算するために、加算された第2のオフセットをもつ取り出された第2の中間ピクセル値を備える中間ピクセル値のグループに第2のフィルタ処理演算を適用することと、サブピクセルロケーションの少なくとも第1のピクセル値に基づいて予測ブロックを生成することとを行わせる命令を記憶する。
本開示の1つまたは複数の態様の詳細について添付の図面および以下の説明において述べる。本開示で説明する技法の他の特徴、目的、および利点は、これらの説明および図面、ならびに特許請求の範囲から明らかになろう。
本開示の技法を実装し得る1つの例示的なビデオ符号化および復号システムを示すブロック図。 本開示に一致するフィルタ処理技法を実行し得るビデオエンコーダの一例を示すブロック図。 予測データに関連する整数ピクセル位置と、補間予測データに関連するサブピクセル位置とを示す概念図。 予測データに関連する整数ピクセル位置と、補間予測データに関連する垂直サブピクセル位置および水平サブピクセル位置とを示す概念図。 予測データに関連する整数ピクセル位置と、補間予測データに関連する非垂直および非水平サブピクセル2Lサブピクセル位置とを示す概念図。 サブピクセルロケーションに対する、係数対称性をもつ水平8ピクセルフィルタサポートを示す概念図。 サブピクセルロケーションに対する、係数対称性をもたない水平8ピクセルフィルタサポートを示す概念図。 サブピクセルロケーションに対する、係数対称性をもつ垂直8ピクセルフィルタサポートを示す概念図。 サブピクセルロケーションに対する、係数対称性をもたない垂直8ピクセルフィルタサポートを示す概念図。 本明細書で説明する方法で符号化されたビデオシーケンスを復号し得るビデオデコーダの一例を示すブロック図。 本開示の技法を示す流れ図。 予測データに関連する整数ピクセル位置と、補間予測データに関連するサブピクセル位置とを示す概念図。 予測データに関連する整数ピクセル位置と、補間予測データに関連するサブピクセル位置とを示す概念図。
詳細な説明
本開示では、ビデオ符号化および/または復号プロセスの予測段階中にエンコーダおよびデコーダによって適用されるフィルタ処理技法について説明する。ピクセルデータは、一般に、一連のピクセル値(たとえば、ルミナンス値および/またはクロミナンス値)として表される。これらのピクセル値は、しばしば8ビット値または10ビット値のいずれかであるが、他のビット深度も使用され得る。補間フィルタ処理は、一般に、ピクセル値を使用して一連の乗算演算および加算演算を実行することを伴う。これらの乗算演算および加算演算により、いくつかの事例では、10ビットピクセル値を用いた補間フィルタ処理は、17ビットである中間値を生じる。しかしながら、レジスタおよび他のコンピュータ構成要素は一般に16ビットまたは32ビットの単位で動作するので、17ビット値は望ましくないことがある。これらの中間値は17ビットであり得るが、本開示では、これらの17ビット値を、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つまたは複数のビデオ圧縮規格に従って動作し得るか、または次世代ビデオ圧縮規格に従って動作し得る。ただし、本開示の技法は、いかなる特定のビデオコーディング規格にも限定されない。図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は、精度の損失が最小となる16ビットに中間値が低減されるように、10ビット値に対して補間フィルタ処理を実行し、17ビット値にオフセットを適用し得る。オフセットを適用することは、たとえば、丸め係数を加算することと、中間値に対して右シフト演算を実行することとを含み得る。
図2は、本開示に一致するフィルタ処理技法を実行し得るビデオエンコーダ50の一例を示すブロック図である。ビデオエンコーダ50は、本明細書では「コーダ」と呼ぶ専用ビデオコンピュータデバイスまたは装置の一例である。ビデオエンコーダ50は、デバイス20のビデオエンコーダ22、または異なるデバイスのビデオエンコーダに対応し得る。ビデオエンコーダ50は、ビデオフレーム内のブロックのイントラコーディングおよびインターコーディングを実行し得るが、説明を簡単にするために、イントラコーディング構成要素は図2に示していない。イントラコーディングは、所与のビデオフレーム内のビデオの空間的冗長性を低減または除去するために空間的予測に依拠する。インターコーディングは、ビデオシーケンスの隣接フレーム内のビデオの時間的冗長性を低減または除去するために時間的予測に依拠する。イントラモードは空間ベースの圧縮モードを指すことがあり、予測(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中に含められ得、動き推定および/または動き補償の一部として補間または補間様(interpolation-like)フィルタ処理を実行するために、MEモジュール35とMCモジュール37の一方または両方によって起動され得る。フィルタモジュール39は、実際は、本明細書で説明するように、多数の様々なタイプの補間および補間タイプフィルタ処理を可能にする複数の様々なフィルタを表し得る。したがって、予測モジュール32は複数の補間または補間様フィルタを含み得る。さらに、フィルタモジュール39は、複数のサブピクセルロケーションのための複数のフィルタインデックスを含み得る。フィルタインデックスは、ビットパターンおよびサブピクセルロケーションを特定の補間フィルタに関連付ける。符号化プロセス中に、ビデオエンコーダ50は、(図2に「ビデオブロック」と標示された)コーディングされるべきビデオブロックを受信し、予測モジュール32は、インター予測コーディングを実行して(図2に「予測ブロック」と標示された)予測ブロックを生成する。特に、MEモジュール35は、メモリ34中の予測ブロックを識別するために動き推定を実行し得、MCモジュール37は、予測ブロックを生成するために動き補償を実行し得る。
動き推定は、一般に、ビデオブロックの動きを推定する、動きベクトルを生成するプロセスと考えられる。動きベクトルは、たとえば、現在のフレーム(または、他のコード化ユニット)内のコーディングされるべきブロックに対する、予測フレームまたは参照フレーム(または、他のコード化ユニット、たとえばスライス)内の予測ブロックの変位を示し得る。参照フレーム(または、参照フレームの部分)は、時間的に、現在のビデオブロックが属するビデオフレーム(または、ビデオフレームの部分)より前に、またはその後に配置され得る。動き補償は、一般に、メモリ34から予測ブロックをフェッチまたは生成するプロセス、あるいは、動き推定によって判断された動きベクトルに基づいて、フィルタ処理された予測データを補間するか、または場合によっては生成するプロセスと考えられる。
MEモジュール35は、コーディングされるべきビデオブロックを1つまたは複数の参照フレーム(たとえば、前のフレームおよび/または後続のフレーム)のビデオブロックと比較することによって、そのビデオブロックに適した動きベクトルを選択する。MEモジュール35は、分数ピクセル(fractional pixel)、分数ペル(fractional pel)、またはサブピクセル動き推定と呼ばれることがある分数ピクセル精度を用いて動き推定を実行し得る。したがって、分数ピクセル、分数ペル、およびサブピクセル動き推定という用語は、互換的に使用され得る。分数ピクセル動き推定では、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が、分数ピクセル動き推定を使用するとき、予測モジュール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)を使用して計算され得る。
Figure 0005766878
Figure 0005766878
位置「b」の場合と同様に、1/4ピクセル位置「a」および「c」の場合、8タップフィルタのタップは、C0、C1、C2、C3、C4、C5、C6、およびC7に対応し得るが、位置「b」の場合とは異なり、フィルタ係数は非対称であり、位置「b」の場合とは異なり得る。たとえば、サブピクセル位置「a」および「c」のピクセル値は、式(3)および式(4)を使用して計算され得る。
Figure 0005766878
Figure 0005766878
位置「h」の場合と同様に、1/4ピクセル位置「d」および「l」の場合、8タップフィルタのタップは、G3、A3、B3、C3、D3、E3、F3、およびH3に対応し得るが、位置「h」の場合とは異なり、フィルタ係数は非対称であり、位置「h」の場合とは異なり得る。たとえば、サブピクセル位置「d」および「l」のピクセル値は、式(5)および式(6)を使用して計算され得る。
Figure 0005766878
Figure 0005766878
上記の式(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」の中間値を判断するために、8タップ水平フィルタが使用され得る。
Figure 0005766878
Figure 0005766878
Figure 0005766878
Figure 0005766878
Figure 0005766878
Figure 0005766878
Figure 0005766878
Figure 0005766878
式(7)〜式(14)で実行された乗算演算および加算演算により、「aa」、「bb」、「b」、「hh」、「ii」、「jj」、「kk」、および「ll」の中間値は、いくつかの事例では、17ビット値であり得る。たとえば、「aa」、「bb」、「b」、「hh」、「ii」、「jj」、「kk」、および「ll」が0から1023にわたる10ビット値である場合、上記の例示的な係数を使用すると、式(7)〜式(14)は、正のフィルタ係数を乗算したピクセル値が1023であり、負のフィルタ係数を乗算したピクセル値が0である状況において、90024もの高い値を生じることがある。ただし、式(7)〜式(14)によって生成された17ビット値は、16ビット範囲の値のみをカバーし得る。したがって、本開示の技法は、中間値を16ビット値に低減するために17ビット値にオフセットを加算することを含む。オフセットは、右シフト演算を使用して適用され得る。さらに、オフセットは、16ビットに低減されたときに式(7)〜式(14)の値を切り上げさせる丸め係数を含み得る。
上記で判断された16ビット中間値に8タップ垂直フィルタを適用することによって、以下の式を使用して「j」の値を判断することができる。
Figure 0005766878
式(15)で実行された乗算演算および加算演算により、jの値は21ビット値であり得る。したがって、21ビット値を10ビット値に低減するために、本開示の技法は、中間値を10ビット値に低減するために、21ビット値に対して右シフト演算を実行することを含む。式(15)のオフセット値は、10ビットに低減されたときに式15の値を切り上げさせる丸め項を含み得る。
上記の例では、最初に水平フィルタ処理が適用され、その後に垂直フィルタ処理が適用される技法について説明した。ただし、いくつかの実装形態では、最初に垂直フィルタ処理が適用され、その後に水平フィルタ処理が適用され得る。たとえば、図3に示されていない2つの追加の値に加えて、「cc」、「dd」、「h」、「ee」、「ff」、および「gg」の中間値を見つけるために、8タップ垂直フィルタが使用され得、「j」のピクセル値を判断するために、それらの中間値に8タップ水平フィルタが適用され得る。
サブピクセル「j」について上記で説明した手順と同様に、中間値を判断するために最初に水平フィルタ処理演算を実行し、次いでそれらの中間値に垂直フィルタを適用することによって、または中間値を判断するために最初に垂直フィルタ処理演算を実行し、次いで、垂直フィルタ処理によって判断された中間値に水平フィルタを適用することによって、サブピクセルロケーション「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タップフィルタであり得る。
図10は、本明細書で説明する方法で符号化されたビデオシーケンスを復号し得るビデオデコーダの一例を示すブロック図である。ビデオデコーダ60は、本明細書では「コーダ」と呼ぶ専用ビデオコンピュータデバイスまたは装置の一例である。ビデオデコーダ60は、量子化係数および予測シンタックス要素を生成するために、受信したビットストリームをエントロピー復号するエントロピー復号モジュール52を含む。予測シンタックス要素は、コーディングモード、1つまたは複数の動きベクトル、サブピクセルデータを生成するために使用される補間技法を識別する情報、補間フィルタ処理中に使用するための係数、および/または予測ブロックの生成に関連する他の情報を含み得る。
予測シンタックス要素、たとえば、係数は、予測モジュール55に転送される。固定フィルタの係数に対してまたは互いに対して係数をコーディングするために予測が使用された場合、係数予測および逆量子化モジュール53は、実際の係数を定義するためにシンタックス要素を復号することができる。また、量子化が予測シンタックスのいずれかに適用された場合、係数予測および逆量子化モジュール53は、そのような量子化を除去することもできる。たとえば、フィルタ係数は、本開示に従って予測コーディングされ、量子化され得、この場合、係数予測および逆量子化モジュール53は、そのような係数を予測的に復号し、逆量子化するためにビデオデコーダ60によって使用され得る。
予測モジュール5は、ビデオエンコーダ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などの)ディスプレイデバイスを駆動するために復号ビデオをも生成する。
図11は、本開示の技法を示す流れ図である。図11の技法は、たとえば、ビデオエンコーダ50の予測モジュール32またはビデオデコーダ60の予測モジュール55によって実行され得る。予測モジュールは、ピクセルのブロック内の整数ピクセル位置に対応する整数ピクセル値を含むピクセルのブロックを取得する(1101)。予測モジュールは、第1の中間ピクセル値を生成するために整数ピクセル値のグループに第1のフィルタ処理演算を適用する(1102)。整数ピクセル値のグループは、たとえば、10ビット値であり得る。予測モジュールは、第2の中間ピクセル値を生成するために前記中間ピクセル値に第1のオフセットを適用する(1103)。第1の中間ピクセル値は、たとえば、17ビット値であり得、第1のオフセットは、第1の中間ピクセル値を16ビットの第2の中間ピクセル値に低減し得る。予測モジュールは第2の中間ピクセル値を記憶する(1104)。第2の中間ピクセル値が16ビットであるので、第2の中間ピクセル値は、たとえば、16ビットレジスタに効率的に記憶され得る。予測モジュールは第2の中間ピクセル値を取り出す(1105)。予測モジュールは、取り出された第2の中間値に第2のオフセットを加算し得る。予測モジュールは、サブピクセルロケーションの第1のピクセル値を計算するために、加算された第2のオフセット値をもつ取り出された第2の中間ピクセル値に第2のフィルタ処理演算を適用する(1107)。予測モジュールは、サブピクセルロケーションの少なくとも第1のピクセル値に基づいて予測ブロックを生成する(1108)。
図12および図13は、予測データに関連する整数ピクセル位置と、補間予測データに関連するサブピクセル位置とを示す概念図である。図12および図13は、本開示で説明する技法の例を示す。これらの技法は、たとえば、ビデオエンコーダ50、ビデオデコーダ60、または他のタイプのビデオコーダによって実行され得る。図12では、影つきブロック内の大文字Ai,jで標示された位置は、ルーマサンプルの所与の2次元アレイrefPicLXL内のフルサンプルロケーションにおけるルーマサンプルを表す。図12では、整数サンプルが、大文字をもつ影つきブロックとして示され、分数サンプル位置が、1/4サンプルルーマ補間のための小文字をもつ影なしブロックとして示されている。
これらのサンプルは、予測されたルーマサンプル値predSampleLXL[xL,yL]を生成するために使用され得る。ルーマサンプルの所与のアレイrefPicLXL内の対応するルーマサンプルAi,jの各々についてのロケーション(xAi,j,yAi,j)は、次のように導出され得る。
Figure 0005766878
Figure 0005766878
上式で、(xIntL,yIntL)はフルサンプルユニット中のルーマロケーションである。
変数shift1、shift2、shift3、offset1およびoffset2は、次のように導出され得る。
・変数shift1はBitDepthY−8に等しく設定され得る。変数shift2はBitDepthY−2に等しく設定され得、変数shift3は14−BitDepthYに等しく設定され得る。BitDepthYは8+bit_depth_luma_minus8に等しく設定され得、bit_depth_luma_minus8+8はルーマアレイのサンプルのビット深度を指定する。
・変数shift1が0に等しい場合、変数offset1は0に等しく設定される。そうでない場合、変数offset1は1<<(shift1−1)に等しく設定され得る。
・変数offset2は1<<(shift2−1)に等しく設定され得る。
フルサンプルロケーション(xAi,j,yAi,j)におけるルーマサンプルAi,jを仮定すれば、分数サンプル位置におけるルーマサンプル「a0,0」〜「r0,0」は、以下のルールによって導出され得る。a0,0、b0,0、c0,0、d0,0、h0,0、およびn0,0と標示されたサンプルは、最も近い整数位置サンプルに8タップフィルタを適用し、フィルタ処理された値をクリッピングすることによって導出され得る。
Figure 0005766878
Figure 0005766878
Figure 0005766878
Figure 0005766878
Figure 0005766878
Figure 0005766878
0,0、f0,0、g0,0、i0,0、j0,0、k0,0、p0,0、q0,0およびr0,0と標示されたサンプルは、d1i,0、h1i,0およびn1i,0として示される中間値を最初に計算することによって導出され得、垂直方向において、最も近い整数位置サンプルに8タップフィルタを適用することによって、i=−3..4である。
Figure 0005766878
Figure 0005766878
Figure 0005766878
最終予測値e0,0、f0,0、g0,0、i0,0、j0,0、k0,0、p0,0、q0,0およびr0,0は、中間値d1i,0、h1i,0およびn1i,0に8タップフィルタを適用することによって導出され得、水平方向においてi=−3..4である。
Figure 0005766878
Figure 0005766878
Figure 0005766878
Figure 0005766878
Figure 0005766878
Figure 0005766878
Figure 0005766878
Figure 0005766878
Figure 0005766878
影なしブロック内の小文字で標示された位置は、1/4ペルサンプル分数ロケーションにおけるルーマサンプルを表す。分数サンプルユニット(xFracL,yFracL)中のルーマロケーションオフセットは、フルサンプルロケーションおよび分数サンプルロケーションにおける生成されたルーマサンプルのうちのどれが、予測されたルーマサンプル値predSampleLXL[xL,yL]に割り当てられるかを指定する。predSampleLXL[xL,yL]の値は出力であり得る。
本開示の技法はクロマサンプル補間プロセスにも適用され得る。そのようなプロセスへの例示的な入力は以下の通りである。
フルサンプルユニット(xIntC,yIntC)中のクロマロケーション、
分数サンプルユニット(xFracC,yFracC)中のクロマロケーション、
クロマ参照サンプルアレイrefPicLXC
このプロセスの出力は、予測されたクロマサンプル値predSampleLXC[xC,yC]であり得る。
図13に、1/8サンプルクロマ補間のための整数サンプル(大文字をもつ影つきブロック)と分数サンプル位置(小文字をもつ影なしブロック)とを示す。図13では、影つきブロック内の大文字Bi,jで標示された位置は、クロマサンプルの所与の2次元アレイrefPicLXC内のフルサンプルロケーションにおけるクロマサンプルを表す。これらのサンプルは、予測されたクロマサンプル値predSampleLXC[xC,yC]を生成するために使用され得る。クロマサンプルの所与のアレイrefPicLXC内の対応するクロマサンプルBi,jの各々についてのロケーション(xBi,j,yBi,j)は、次のように導出される。
Figure 0005766878
Figure 0005766878
変数shift1、shift2、shift3、offset1およびoffset2は、次のように導出される。
変数shift1はBitDepthC−8に等しく設定され、変数shift2はBitDepthC−2に等しく設定され、変数shift3は14−BitDepthCに等しく設定される。
変数shift1が0に等しい場合、変数offset1は0に等しく設定され、そうでない場合、変数offset1は1<<(shift1−1)に等しく設定される。
変数offset2は1<<(shift2−1)に等しく設定される。
フルサンプルロケーション(xBi,j,yBi,j)におけるクロマサンプルBi,jを仮定すれば、分数サンプル位置におけるクロマサンプル「ab0,0」〜「hh0,0」は、以下のルールによって導出される。
ab0,0、ac0,0、ad0,0、ae0,0、af0,0、ag0,0、およびah0,0と標示されたサンプルは、最も近い整数位置サンプルに4タップフィルタを適用し、フィルタ処理された値をクリッピングすることによって導出され得る。
Figure 0005766878
Figure 0005766878
Figure 0005766878
Figure 0005766878
Figure 0005766878
Figure 0005766878
Figure 0005766878
ba0,0、ca0,0、da0,0、ea0,0、fa0,0、ga0,0、およびha0,0と標示されたサンプルは、最も近い整数位置サンプルに4タップフィルタを適用し、フィルタ処理された値をクリッピングすることによって導出され得る。
Figure 0005766878
Figure 0005766878
Figure 0005766878
Figure 0005766878
Figure 0005766878
Figure 0005766878
Figure 0005766878
それぞれ、b、c、d、e、f、gおよびhによって置き換えられているXについてのXb0,0、Xc0,0、Xd0,0、Xe0,0、Xf0,0、Xg0,0およびXh0,0と標示されたサンプルは、bai,0、cai,0、dai,0、eai,0、fai,0、gai,0およびhai,0として示される中間値を最初に計算することによって導出され得、垂直方向において、最も近い整数位置サンプルに4タップフィルタを適用することによって、i=−1..2である。
Figure 0005766878
Figure 0005766878
Figure 0005766878
Figure 0005766878
Figure 0005766878
Figure 0005766878
Figure 0005766878
それぞれ、b、c、d、e、f、gおよびhによって置き換えられているXについての最終予測値Xb0,0、Xc0,0、Xd0,0、Xe0,0、Xf0,0、Xg0,0およびXh0,0は、中間値Xai,0に4タップフィルタを適用することによって導出され得、水平方向においてi=−1..2である。
Figure 0005766878
Figure 0005766878
Figure 0005766878
Figure 0005766878
Figure 0005766878
Figure 0005766878
Figure 0005766878
本開示の技法によれば、e0,0、f0,0、g0,0、i0,0、j0,0、k0,0、p0,0、q0,0およびr0,0を補間するために、予測モジュールが、2段補間フィルタ処理(すなわち、垂直方向における1つのフィルタ処理演算および水平方向における1つのフィルタ処理演算)を実行し得る。中間値をより効率的に記憶するために、2段間で判断された中間値を16ビットに保つことが望ましいことがある。説明のために、第1段補間フィルタ処理は以下の通りであると仮定する。
Figure 0005766878
上式で、C1〜C8は補間フィルタ係数を表し、A1〜A8はフルサンプル値を表す。現在のHEVC補間フィルタは、一般に、係数−1、4、−11、40、40、−11、4、−1がC1〜C8のために使用されるときに7ビット利得を生成する。他の係数も使用され、他の係数は、同様に7ビット利得を生じ得る。入力値が10ビット値について0〜1023の正値を有するので、フィルタ処理された係数値は正値のほうへバイアスされる。本開示の技法は、ダイナミックレンジを限定し、また、同時にその値を16ビット値にし得る。これを達成する1つの方法は、潜在的にコーディング利得に影響を及ぼすことなしに、その値を16ビット範囲に入れるために、丸めを用いて中間値を1だけ右シフトすることである。本実装形態が16ビット値の使用を必要とする場合、これらの16ビット範囲値は、以下の擬似コードによって示されるように、その値を符号付き16ビット値に適合させるためにオフセットによってシフトされ得る。
Figure 0005766878
この例では、xは16ビット範囲を有するが、xの値は16ビットよりも大きくなり得る(たとえば17ビット)。17ビットx値を16ビットにするために、x値が16ビット値として記憶され得るように、x値から適切なオフセット(上式中のoffset2)が減算され得る。後で、x値が再利用されようとしているとき、このオフセットは、元の値を取得するためにxに再加算され得る。x値の範囲はxの最大値と最小値との差によって定義される。したがって、最大値が17ビット値である場合でも、最大値と最小値との間の値の範囲は16ビットのみであり得る。
このようにして、オフセットの値は、17ビット値を16ビット値に低減するのに十分な値であり得る。オフセットは非規範的であり得、これは、コーディング規格またはビットストリーム構成を顧慮せずにコーディングデバイスによって特定のオフセットが実装され得ることを意味する。同じ符号化ビデオデータを復号するとき、1つのビデオデコーダは、たとえば、第2のビデオデコーダとは異なるオフセット値を使用し得る。
フィルタ処理された値はシフト量だけシフトされるので、第2段フィルタ処理では、第2段のシフト量はシフト量だけ低減され得、それらの対応する丸めオフセットは、それに応じて調整され得る。
データが17ビットであり、範囲が16ビットであるとき、オフセットを要求することなしに精度を16ビットに保つための別の代替案は、追加のビットだけ右にシフトすることである。したがって、上記の、紹介された、丸めオフセットを用いるまたは用いない1だけの右シフトは、丸めを用いるまたは用いない2だけの右シフトによって置き換えられ得る。フィルタ処理の順序は、最初に垂直、その後に水平であり、またはその逆も同様であり得る。第1段フィルタ処理の後に、右シフトがない中間値が16ビットをオーバーフローすることがある2Dフィルタ処理事例の場合、現在中間値は2だけ右シフトされる。したがって、第2段は、この追加のシフトを補償するために右シフトが1減るであろう。この説明はすべて、入力サンプルが事実上10ビットである事例(bitdepth+bitincrement)についてである。
本開示の技法は、高精度双予測を使用した補間にも適用され得る。そのような場合、各予測方向について、水平フィルタ処理の後に垂直フィルタ処理(またはその逆)が実行され、2段フィルタ処理の出力は、最後の2つの予測の最終平均化まで、より高い精度に保たれる。第1段フィルタ処理の後にデータを16ビットに保つために、フィルタ処理されたデータは、(丸めを用いてまたは用いずに)2ビットだけ右シフトされ得る。第2段の後に、データは、最後の16ビット値を達成するために7ビットだけ右シフトされ得る。ダウンシフトは、丸めを用いてまたは用いずに行われ得る。これは、第1段において1ビットシフトが適用され、第2段において7ビットシフトが適用され、17ビットデータを16ビット整数値に移動するためにオフセットが使用された、上記で説明した事例の代替案である。最後に、2つの予測方向は、それらを合計し、丸めを用いて4だけダウンシフトすることによって平均化され得る。
また、8ビット入力データの場合、双予測事例について、16ビットよりも大きいデータ値を有する問題が起こり得る。そのような場合、フィルタ処理の第1段の後に、オフセット(または右シフト演算)を適用する必要がないことがあるが、第2段フィルタ処理の後に、データは6ビットだけダウンシフトされ得る。最終結果は、16ビット範囲をもつ17ビット値であり得る。上記で説明したように、記憶のためにそれらを16ビット値に低減するために、17ビット値にオフセットが加算され得る。取り出された計算または将来の計算のとき、オフセットは、それらを元の17ビット値に戻すために16ビット値に再加算され得る。いくつかの事例では、オフセットを使用する代わりに、中間値が、(丸めオフセットを用いてまたは用いずに)7ビットだけダウンシフトされ得る。10ビット事例(それらを合計し、丸めを用いて4だけダウンシフトする)の場合のように、2つの予測方向にわたる同様の種類の平均化が実行され得る。
中間データ値を16ビット範囲内に保つための別の方法は、第1段フィルタ処理の後に、次のようにフィルタ処理された結果を右シフトすることであり得る。
Figure 0005766878
Figure 0005766878
ただし、丸めオフセットがない。次いで、第2段フィルタ処理の場合、結果を16ビット範囲内に保つために、丸めオフセットを使用せずに6の代わりに7だけ値が右シフトされる。同様の引数(arguments)がクロマに対して成り立つ(hold)。クロマサンプルの2Dフィルタ処理の場合、クロマ補間フィルタについての最大利得は27+46=73である。これは、
Figure 0005766878
フィルタである。したがって、10ビット入力の場合、最大値は1023*73であろう。この値を16ビット範囲値に低下させるための1つの方法は、丸めオフセットを用いてまたは用いずに1だけ右シフトすることである。代替的に、それは、丸めを用いてまたは用いずに2だけの右シフトによって16ビット値に低下させられ得る。この追加の右シフトは、第2段フィルタ処理の後に1だけ少なくシフトすることによって補償される。
クロマ双予測事例は、上記で説明したルーマ事例と同様であり得る。各リスト予測値について16ビット値を有するために、第2段フィルタ処理の後に、サンプル値は1つの追加のビットだけシフトされ得、したがって、7ビットになる。この追加のビットシフトは双予測平均化段において補償される。
双予測が使用されるとき、最終予測サンプルを形成するために様々な種類の予測を混合する可能性があり得る。たとえば、一方の予測は1D双予測を使用して実行され得るが、他方の予測は2D双予測を使用して実行され得る。2D双予測値を16ビット値に保つための追加の1ビットシフトの導入では、2D双予測および1D双予測の解像度は異なる。1D双予測は、1つの追加のビット精度を有する(4ビット利得(6ビットフィルタ利得−2ビット右シフト)がある)。2D双予測は、2Dフィルタ処理−2ビット右シフト−7ビット右シフト=3ビット利得からの6+6利得を有する。すべての利得を等しく保つために、それらが2D双予測事例と同様の3ビット利得を有するように1つの追加のビットだけダウンシフトすることが有効であり得る。したがって、(10ビット入力について)2の代わりに3だけの右シフトによって1D双予測サンプルが取得されることになる。同様の事例が8ビット入力サンプルに適用される。そのような事例では、1D双予測サンプルは1ビットだけシフトされ得る。
本開示の技法は、ワイヤレスハンドセット、および集積回路(IC)またはICのセット(すなわち、チップセット)を含む、多種多様なデバイスまたは装置において実装され得る。機能的態様を強調するために与えられた任意の構成要素、モジュールまたはユニットについて説明したが、異なるハードウェアユニットによる実現を必ずしも必要とするとは限らない。
したがって、本明細書で説明する技法は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。ハードウェアで実装する場合、モジュール、ユニットまたは構成要素として説明した特徴は、集積論理デバイスに一緒に、または個別であるが相互運用可能な論理デバイスとして別々に実装され得る。ソフトウェアで実装する場合、これらの技法は、プロセッサで実行されると、上記で説明した方法の1つまたは複数を実行する命令を備えるコンピュータ可読媒体に少なくとも部分的によって実現され得る。コンピュータ可読媒体は、非一時的コンピュータ可読記憶媒体を備え得、パッケージング材料を含むことがあるコンピュータプログラム製品の一部を形成し得る。コンピュータ可読記憶媒体は、同期型ダイナミックランダムアクセスメモリ(SDRAM)などのランダムアクセスメモリ(RAM)、読取り専用メモリ(ROM)、不揮発性ランダムアクセスメモリ(NVRAM)、電気消去可能プログラマブル読取り専用メモリ(EEPROM)、フラッシュメモリ、磁気または光学データ記憶媒体などを備え得る。本技法は、追加または代替として、命令またはデータ構造の形態でコードを搬送または通信し、コンピュータによってアクセス、読取り、および/または実行され得るコンピュータ可読通信媒体によって、少なくとも部分的に実現され得る。
コードは、1つまたは複数のデジタル信号プロセッサ(DSP)などの1つまたは複数のプロセッサ、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブル論理アレイ(FPGA)、または他の等価な集積回路またはディスクリート論理回路によって実行され得る。したがって、本明細書で使用する「プロセッサ」という用語は、前述の構造、または本明細書で説明する技法の実装に好適な他の構造のいずれかを指す。さらに、いくつかの態様では、本明細書で説明した機能は、符号化および復号のために構成された専用のソフトウェアモジュールまたはハードウェアモジュール内に提供され得、あるいは複合ビデオコーデックに組み込まれ得る。また、本技法は、1つまたは複数の回路または論理要素中に十分に実装され得る。
本開示の様々な態様について説明した。これらおよび他の態様は以下の特許請求の範囲内に入る。
以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
[1]ピクセルのブロックをコーディングする方法であって、
ピクセルのブロックを取得することであって、ピクセルの前記ブロックが、ピクセルの前記ブロック内の整数ピクセル位置に対応する整数ピクセル値を含む、取得することと、
第1の中間ピクセル値を生成するために整数ピクセル値のグループに第1のフィルタ処理演算を適用することと、
第2の中間ピクセル値を生成するために前記第1の中間ピクセル値に第1のオフセットを加算することであって、前記第1のオフセットを加算することにより、前記第2の中間値が、前記第1の中間ピクセル値よりも小さいビット深度を有する、加算することと、
前記第2の中間ピクセル値を記憶することと、
前記第2の中間ピクセル値を取り出すことと、
前記取り出された第2の中間値に第2のオフセットを加算することと、
サブピクセルロケーションの第1のピクセル値を計算するために、前記加算された第2のオフセットをもつ前記取り出された第2の中間ピクセル値を備える中間ピクセル値のグループに第2のフィルタ処理演算を適用することと、
前記サブピクセルロケーションの少なくとも前記第1のピクセル値に基づいて予測ブロックを生成することと
を備える、方法。
[2]前記取り出された第2の中間値に前記第2のオフセットを加算することにより、前記第1の中間値が生じる、[1]に記載の方法。
[3]前記第1のオフセットを適用することが、1ビット右シフト演算を実行することを備える、[1]に記載の方法。
[4]前記第2のオフセットを適用することは、大きさが前記第1のオフセットに等しい、[1]に記載の方法。
[5]前記第1の中間ピクセル値が17ビット値である、[1]に記載の方法。
[6]前記第2の中間ピクセル値が16ビット値である、[1]に記載の方法。
[7]前記第1のピクセル値が17ビット値である、[1]に記載の方法。
[8]前記第1のピクセル値のビット深度を10ビットに低減すること
をさらに備える、[7]に記載の方法。
[9]整数ピクセル値の前記グループが10ビット値である、[1]に記載の方法。
[10]前記方法がビデオデコーダによって実行される、[1]の任意の組合せに記載の方法。
[11]前記方法がビデオエンコーダによって実行される、[1]の任意の組合せに記載の方法。
[12]ピクセルのブロックをコーディングするためのビデオコーディングデバイスであって、
ピクセルのブロックを取得することであって、ピクセルの前記ブロックが、ピクセルの前記ブロック内の整数ピクセル位置に対応する整数ピクセル値を含む、取得することと、
第1の中間ピクセル値を生成するために整数ピクセル値のグループに第1のフィルタ処理演算を適用することと、
第2の中間ピクセル値を生成するために前記第1の中間ピクセル値に第1のオフセットを加算することであって、前記第1のオフセットを加算することにより、前記第2の中間値が、前記第1の中間ピクセル値よりも小さいビット深度を有する、加算することと、
前記第2の中間ピクセル値を記憶することと、
前記第2の中間ピクセル値を取り出すことと、
前記取り出された第2の中間値に第2のオフセットを加算することと、
サブピクセルロケーションの第1のピクセル値を計算するために、前記加算された第2のオフセットをもつ前記取り出された第2の中間ピクセル値を備える中間ピクセル値のグループに第2のフィルタ処理演算を適用することと、
前記サブピクセルロケーションの少なくとも前記第1のピクセル値に基づいて予測ブロックを生成することと
を行うように構成されたビデオプロセッサ
を備える、ビデオコーディングデバイス。
[13]前記取り出された第2の中間値に前記第2のオフセットを加算することにより、前記第1の中間値が生じる、[12]に記載のビデオコーディングデバイス。
[14]前記第1のオフセットを適用することが、1ビット右シフト演算を実行することを備える、[12]に記載のビデオコーディングデバイス。
[15]前記第2のオフセットを適用することは、大きさが前記第1のオフセットに等しい、[12]に記載のビデオコーディングデバイス。
[16]前記第1の中間ピクセル値が17ビット値である、[12]に記載のビデオコーディングデバイス。
[17]前記第2の中間ピクセル値が16ビット値である、[12]に記載のビデオコーディングデバイス。
[18]前記第1のピクセル値が17ビット値である、[12]に記載のビデオコーディングデバイス。
[19]前記ビデオコーダが、前記第1のピクセル値のビット深度を10ビットに低減するようにさらに構成された、[18]に記載のビデオコーディングデバイス。
[20]整数ピクセル値の前記グループが10ビット値である、[12]に記載のビデオコーディングデバイス。
[21]前記ビデオコーダがビデオデコーダを備える、[12]に記載のビデオコーディングデバイス。
[22]前記ビデオコーダがビデオエンコーダを備える、[12]に記載のビデオコーディングデバイス。
[23]前記ビデオコーディングデバイスが、
集積回路と、
マイクロプロセッサと、
前記ビデオコーダを含むワイヤレス通信デバイスと
のうちの少なくとも1つを備える、[12]に記載のビデオコーディングデバイス。
[24]ピクセルのブロックをコーディングするための装置であって、
ピクセルのブロックを取得するための手段であって、ピクセルの前記ブロックが、ピクセルの前記ブロック内の整数ピクセル位置に対応する整数ピクセル値を含む、取得するための手段と、
第1の中間ピクセル値を生成するために整数ピクセル値のグループに第1のフィルタ処理演算を適用するための手段と、
第2の中間ピクセル値を生成するために前記第1の中間ピクセル値に第1のオフセットを加算するための手段であって、前記第1のオフセットを適用することにより、前記第2の中間値が、前記第1の中間ピクセル値よりも小さいビット深度を有する、加算するための手段と、
前記第2の中間ピクセル値を記憶するための手段と、
前記第2の中間ピクセル値を取り出すための手段と、
前記取り出された第2の中間値に第2のオフセットを加算するための手段と、
サブピクセルロケーションの第1のピクセル値を計算するために、前記加算された第2のオフセットをもつ前記取り出された第2の中間ピクセル値を備える中間ピクセル値のグループに第2のフィルタ処理演算を適用するための手段と、
前記サブピクセルロケーションの少なくとも前記第1のピクセル値に基づいて予測ブロックを生成するための手段と
を備える、装置。
[25]実行されたとき、1つまたは複数のプロセッサに、
ピクセルのブロックを取得することであって、ピクセルの前記ブロックが、ピクセルの前記ブロック内の整数ピクセル位置に対応する整数ピクセル値を含む、取得することと、
第1の中間ピクセル値を生成するために整数ピクセル値のグループに第1のフィルタ処理演算を適用することと、
第2の中間ピクセル値を生成するために前記第1の中間ピクセル値に第1のオフセットを加算することであって、前記第1のオフセットを適用することにより、前記第2の中間値が、前記第1の中間ピクセル値よりも小さいビット深度を有する、加算することと、
前記第2の中間ピクセル値を記憶することと、
前記第2の中間ピクセル値を取り出すことと、
前記取り出された第2の中間値に第2のオフセットを加算することと、
サブピクセルロケーションの第1のピクセル値を計算するために、前記加算された第2のオフセットをもつ前記取り出された第2の中間ピクセル値を備える中間ピクセル値のグループに第2のフィルタ処理演算を適用することと、
前記サブピクセルロケーションの少なくとも前記第1のピクセル値に基づいて予測ブロックを生成することと
を行わせる命令を記憶するコンピュータ可読記憶媒体。

Claims (25)

  1. ビデオコーディングデバイスがピクセルのブロックをコーディングする方法であって、
    前記ビデオコーディングデバイスがピクセルのブロックを取得することであって、ピクセルの前記ブロックが、ピクセルの前記ブロック内の整数ピクセル位置に対応する整数ピクセル値を含む、前記ビデオコーディングデバイスが取得することと、
    前記ビデオコーディングデバイスが、第1のビット深度を有する第1の中間ピクセル値を生成するために、ピクセルの前記ブロックに関連する整数ピクセル値のグループに、前記ビデオコーディングデバイスが第1の補間フィルタ処理演算を適用することであって、前記第1の中間ピクセル値は第2のビット深度に関連する値の範囲内に制限され、前記第2のビット深度は前記第1のビット深度に関連するビット深度の値よりも小さいビット深度の値を備える前記ビデオコーディングデバイスが適用することと、
    前記ビデオコーディングデバイスが少なくとも部分的に右シフト演算を実行することによって、前記ビデオコーディングデバイスが第2の中間ピクセル値を生成するために前記第1の中間ピクセル値に、前記ビデオコーディングデバイスが第1のオフセットを加算することであって、前記ビデオコーディングデバイスが前記第1のオフセットを加算することにより、前記第2の中間ピクセル値が、前記第2のビット深度に関連する値の前記範囲内の値になる、前記ビデオコーディングデバイスが加算することと、
    前記ビデオコーディングデバイスが前記第2の中間ピクセル値を記憶することと、
    前記ビデオコーディングデバイスが前記第2の中間ピクセル値を取り出すことと、
    前記ビデオコーディングデバイスが取り出した第2の中間ピクセル値に、前記ビデオコーディングデバイスが第2のオフセットを加算することと、
    前記ビデオコーディングデバイスがサブピクセルロケーションの第1のピクセル値を計算するために、前記ビデオコーディングデバイスが加算した第2のオフセットをもつ、前記ビデオコーディングデバイスが取り出した第2の中間ピクセル値を備える中間ピクセル値のグループに、前記ビデオコーディングデバイスが第2の補間フィルタ処理演算を適用することと、
    前記ビデオコーディングデバイスが、前記サブピクセルロケーションの少なくとも前記第1のピクセル値に基づいて予測ブロックを生成することと
    を備える、方法。
  2. 前記ビデオコーディングデバイスが取り出した第2の中間ピクセル値に、前記ビデオコーディングデバイスが前記第2のオフセットを加算することにより、前記第1の中間ピクセル値が生じる、請求項1に記載の方法。
  3. 前記ビデオコーディングデバイスが右シフト演算を実行することが、前記ビデオコーディングデバイスが1ビット右シフト演算を実行することを備える、請求項1に記載の方法。
  4. 記第2のオフセットは、大きさが前記第1のオフセットに等しい、請求項1に記載の方法。
  5. 前記第1の中間ピクセル値の前記第1のビット深度が17ビットに等しい、請求項1に記載の方法。
  6. 前記第2の中間ピクセル値の前記第2のビット深度が16ビットに等しい、請求項1に記載の方法。
  7. 前記第1のピクセル値が17ビットのビット深度を有する、請求項1に記載の方法。
  8. 前記ビデオコーディングデバイスが前記第1のピクセル値の前記ビット深度を10ビットに低減すること
    をさらに備える、請求項7に記載の方法。
  9. 整数ピクセル値の前記グループの各整数ピクセル値が10ビット整数値である、請求項1に記載の方法。
  10. 前記ビデオコーディングデバイスがビデオデコーダを備える、請求項1に記載の方法。
  11. 前記ビデオコーディングデバイスがビデオエンコーダを備える、請求項1に記載の方法。
  12. ピクセルのブロックをコーディングするためのビデオコーディングデバイスであって、前記ビデオコーディングデバイスが、
    ビデオデータを記憶するように構成されたメモリと、
    ピクセルのブロックを取得することであって、ピクセルの前記ブロックが、ピクセルの前記ブロック内の整数ピクセル位置に対応する整数ピクセル値を含む、取得することと、
    1のビット深度を有する第1の中間ピクセル値を生成するために、ピクセルの前記ブロックに関連する整数ピクセル値のグループに第1の補間フィルタ処理演算を適用することであって、前記第1の中間ピクセル値は第2のビット深度に関連する値の範囲内に制限され、前記第2のビット深度は前記第1のビット深度に関連するビット深度の値よりも小さいビット深度の値を備える、適用することと、
    少なくとも部分的に右シフト演算を実行することによって第2の中間ピクセル値を生成するために前記第1の中間ピクセル値に第1のオフセットを加算することであって、前記第1のオフセットを加算することにより、前記第2の中間ピクセル値が、前記第2のビット深度に関連する値の前記範囲内の値になる、加算することと、
    前記第2の中間ピクセル値を記憶することと、
    前記第2の中間ピクセル値を取り出すことと、
    前記取り出された第2の中間ピクセル値に第2のオフセットを加算することと、
    サブピクセルロケーションの第1のピクセル値を計算するために、前記加算された第2のオフセットをもつ前記取り出された第2の中間ピクセル値を備える中間ピクセル値のグループに第2の補間フィルタ処理演算を適用することと、
    前記サブピクセルロケーションの少なくとも前記第1のピクセル値に基づいて予測ブロックを生成することと
    を行うように構成されたビデオプロセッサ
    を備える、ビデオコーディングデバイス。
  13. 前記加算により前記第1の中間ピクセル値が生じるように、前記ビデオプロセッサは、前記取り出された第2の中間ピクセル値に前記第2のオフセットを加算するように構成される、請求項12に記載のビデオコーディングデバイス。
  14. 前記ビデオプロセッサは、1ビット右シフト演算を実行するようにさらに構成される、請求項12に記載のビデオコーディングデバイス。
  15. 前記第2のオフセットは、大きさが前記第1のオフセットに等しい、請求項12に記載のビデオコーディングデバイス。
  16. 前記第1の中間ピクセル値の前記第1のビット深度が17ビットに等しい、請求項12に記載のビデオコーディングデバイス。
  17. 前記第2の中間ピクセル値の前記第2のビット深度が16ビットに等しい、請求項12に記載のビデオコーディングデバイス。
  18. 前記第1のピクセル値が17ビットのビット深度を有する、請求項12に記載のビデオコーディングデバイス。
  19. 前記ビデオプロセッサが、前記第1のピクセル値の前記ビット深度を10ビットに低減するようにさらに構成された、請求項18に記載のビデオコーディングデバイス。
  20. 整数ピクセル値の前記グループの各整数ピクセル値が10ビット整数値である、請求項12に記載のビデオコーディングデバイス。
  21. 前記ビデオプロセッサがビデオデコーダを備える、請求項12に記載のビデオコーディングデバイス。
  22. 前記ビデオプロセッサがビデオエンコーダを備える、請求項12に記載のビデオコーディングデバイス。
  23. 前記ビデオコーディングデバイスが
    イクロプロセッサと、
    前記ビデオプロセッサを含むワイヤレス通信デバイスと
    のうちの少なくとも1つを備える、請求項12に記載のビデオコーディングデバイス。
  24. ピクセルのブロックをコーディングするための装置であって、
    ピクセルのブロックを取得するための手段であって、ピクセルの前記ブロックが、ピクセルの前記ブロック内の整数ピクセル位置に対応する整数ピクセル値を含む、取得するための手段と、
    1のビット深度を有する第1の中間ピクセル値を生成するために、ピクセルの前記ブロックに関連する整数ピクセル値のグループに第1の補間フィルタ処理演算を適用するための手段であって、前記第1の中間ピクセル値は第2のビット深度に関連する値の範囲内に制限され、前記第2のビット深度は前記第1のビット深度に関連するビット深度の値よりも小さいビット深度の値を備える、適用するための手段と、
    少なくとも部分的に右シフト演算を実行することによって第2の中間ピクセル値を生成するために前記第1の中間ピクセル値に第1のオフセットを加算するための手段であって、前記第1のオフセット加算することにより、前記第2の中間ピクセル値が、前記第2のビット深度に関連する値の前記範囲内の値になる、加算するための手段と、
    前記第2の中間ピクセル値を記憶するための手段と、
    前記第2の中間ピクセル値を取り出すための手段と、
    前記取り出された第2の中間ピクセル値に第2のオフセットを加算するための手段と、
    サブピクセルロケーションの第1のピクセル値を計算するために、前記加算された第2のオフセットをもつ前記取り出された第2の中間ピクセル値を備える中間ピクセル値のグループに第2の補間フィルタ処理演算を適用するための手段と、
    前記サブピクセルロケーションの少なくとも前記第1のピクセル値に基づいて予測ブロックを生成するための手段と
    を備える、装置。
  25. 実行されたとき、1つまたは複数のプロセッサに、
    ピクセルのブロックを取得することであって、ピクセルの前記ブロックが、ピクセルの前記ブロック内の整数ピクセル位置に対応する整数ピクセル値を含む、取得することと、
    1のビット深度を有する第1の中間ピクセル値を生成するために、ピクセルの前記ブロックに関連する整数ピクセル値のグループに第1の補間フィルタ処理演算を適用することであって、前記第1の中間ピクセル値は第2のビット深度に関連する値の範囲内に制限され、前記第2のビット深度は前記第1のビット深度に関連するビット深度の値よりも小さいビット深度の値を備える、適用することと、
    少なくとも部分的に右シフト演算を実行することによって第2の中間ピクセル値を生成するために前記第1の中間ピクセル値に第1のオフセットを加算することであって、前記第1のオフセット加算することにより、前記第2の中間ピクセル値が、前記第2のビット深度に関連する値の前記範囲内の値になる、加算することと、
    前記第2の中間ピクセル値を記憶することと、
    前記第2の中間ピクセル値を取り出すことと、
    前記取り出された第2の中間ピクセル値に第2のオフセットを加算することと、
    サブピクセルロケーションの第1のピクセル値を計算するために、前記加算された第2のオフセットをもつ前記取り出された第2の中間ピクセル値を備える中間ピクセル値のグループに第2の補間フィルタ処理演算を適用することと、
    前記サブピクセルロケーションの少なくとも前記第1のピクセル値に基づいて予測ブロックを生成することと
    を行わせる命令を記憶するコンピュータ可読記憶媒体。
JP2014519172A 2011-07-01 2012-06-29 低減解像度ピクセル補間 Expired - Fee Related JP5766878B2 (ja)

Applications Claiming Priority (13)

Application Number Priority Date Filing Date Title
US201161504149P 2011-07-01 2011-07-01
US61/504,149 2011-07-01
US201161506016P 2011-07-08 2011-07-08
US61/506,016 2011-07-08
US201161506059P 2011-07-09 2011-07-09
US61/506,059 2011-07-09
US201161507564P 2011-07-13 2011-07-13
US61/507,564 2011-07-13
US201161549131P 2011-10-19 2011-10-19
US61/549,131 2011-10-19
US13/536,484 2012-06-28
US13/536,484 US9055304B2 (en) 2011-07-01 2012-06-28 Reduced resolution pixel interpolation
PCT/US2012/045044 WO2013006473A1 (en) 2011-07-01 2012-06-29 Reduced resolution pixel interpolation

Publications (2)

Publication Number Publication Date
JP2014521257A JP2014521257A (ja) 2014-08-25
JP5766878B2 true JP5766878B2 (ja) 2015-08-19

Family

ID=46465324

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014519172A Expired - Fee Related JP5766878B2 (ja) 2011-07-01 2012-06-29 低減解像度ピクセル補間

Country Status (5)

Country Link
US (1) US9055304B2 (ja)
EP (1) EP2727345A1 (ja)
JP (1) JP5766878B2 (ja)
KR (1) KR101646856B1 (ja)
WO (1) WO2013006473A1 (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5882450B2 (ja) * 2011-08-31 2016-03-09 メディアテック インコーポレイテッド 制約付きフィルタ係数を有する適応ループフィルタの方法及び装置
CN107071436A (zh) * 2011-11-08 2017-08-18 株式会社Kt 对视频信号进行解码的方法
TWI597968B (zh) * 2012-12-21 2017-09-01 杜比實驗室特許公司 在高位元深度視訊的可適性編碼中,高精度升取樣
GB2513111A (en) * 2013-04-08 2014-10-22 Sony Corp Data encoding and decoding
KR102357142B1 (ko) 2017-11-07 2022-02-08 후아웨이 테크놀러지 컴퍼니 리미티드 비디오 코딩을 위한 인터 예측 장치 및 방법을 위한 보간 필터
DE102019002951A1 (de) 2018-04-25 2019-10-31 Avago Technologies International Sales Pte. Limited Pixelspeicherung für graphische Bildspeicher
US10922848B2 (en) * 2018-04-25 2021-02-16 Avago Technologies International Sales Pte. Limited Pixel storage for graphical frame buffers
WO2020156517A1 (en) 2019-01-31 2020-08-06 Beijing Bytedance Network Technology Co., Ltd. Fast algorithms for symmetric motion vector difference coding mode
KR20210121021A (ko) * 2019-01-31 2021-10-07 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 어파인 모드 적응적 움직임 벡터 해상도 코딩 문맥

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6965644B2 (en) 1992-02-19 2005-11-15 8×8, Inc. Programmable architecture and methods for motion estimation
JP2636622B2 (ja) * 1992-03-13 1997-07-30 松下電器産業株式会社 ビデオ信号の符号化方法及び復号化方法ならびにビデオ信号の符号化装置及び復号化装置
JP2947015B2 (ja) * 1993-03-31 1999-09-13 松下電器産業株式会社 色変換装置及び色変換方法
US6125201A (en) * 1997-06-25 2000-09-26 Andrew Michael Zador Method, apparatus and system for compressing data
JP4682410B2 (ja) * 2000-10-12 2011-05-11 ソニー株式会社 画像処理装置及び画像処理方法
US7929610B2 (en) * 2001-03-26 2011-04-19 Sharp Kabushiki Kaisha Methods and systems for reducing blocking artifacts with reduced complexity for spatially-scalable video coding
US7620109B2 (en) * 2002-04-10 2009-11-17 Microsoft Corporation Sub-pixel interpolation in motion estimation and compensation
US7715477B2 (en) * 2002-05-29 2010-05-11 Diego Garrido Classifying image areas of a video signal
JP2005318297A (ja) 2004-04-28 2005-11-10 Toshiba Corp 動画像符号化・復号方法及び装置
EP1771009A1 (en) * 2004-06-08 2007-04-04 Matsushita Electric Industrial Co., Ltd. Image encoding device, image decoding device, and integrated circuit used therein
US7953152B1 (en) 2004-06-28 2011-05-31 Google Inc. Video compression and encoding method
US7161507B2 (en) * 2004-08-20 2007-01-09 1St Works Corporation Fast, practically optimal entropy coding
WO2007114368A1 (ja) * 2006-03-30 2007-10-11 Kabushiki Kaisha Toshiba 画像符号化装置及び方法並びに画像復号化装置及び方法
JP4793070B2 (ja) * 2006-04-12 2011-10-12 ソニー株式会社 動きベクトル探索方法及び装置
CN101589625B (zh) * 2006-10-25 2011-09-21 弗劳恩霍夫应用研究促进协会 质量可缩放编码
US20080120676A1 (en) * 2006-11-22 2008-05-22 Horizon Semiconductors Ltd. Integrated circuit, an encoder/decoder architecture, and a method for processing a media stream
RU2461977C2 (ru) * 2006-12-18 2012-09-20 Конинклейке Филипс Электроникс Н.В. Сжатие и снятие сжатия изображения
CN102084653B (zh) * 2007-06-29 2013-05-08 弗劳恩霍夫应用研究促进协会 支持像素值细化可缩放性的可缩放视频编码
JP2009089332A (ja) * 2007-10-03 2009-04-23 Sony Corp 動き予測方法及び動き予測装置
US8208560B2 (en) * 2007-10-15 2012-06-26 Intel Corporation Bit depth enhancement for scalable video coding
US20090257499A1 (en) 2008-04-10 2009-10-15 Qualcomm Incorporated Advanced interpolation techniques for motion compensation in video coding
US9078007B2 (en) * 2008-10-03 2015-07-07 Qualcomm Incorporated Digital video coding with interpolation filters and offsets
WO2010050089A1 (ja) * 2008-10-29 2010-05-06 パナソニック株式会社 動画像圧縮符号化における符号化処理方法及び符号化処理装置
US9179161B2 (en) * 2009-05-20 2015-11-03 Nissim Nissimyan Video encoding
US9106933B1 (en) * 2010-05-18 2015-08-11 Google Inc. Apparatus and method for encoding video using different second-stage transform
US8842723B2 (en) * 2011-01-03 2014-09-23 Apple Inc. Video coding system using implied reference frames
US8767817B1 (en) * 2011-04-07 2014-07-01 Google Inc. Apparatus and method for coding using parameterized equation
US9521434B2 (en) * 2011-06-09 2016-12-13 Qualcomm Incorporated Internal bit depth increase in video coding

Also Published As

Publication number Publication date
CN103650495A (zh) 2014-03-19
KR101646856B1 (ko) 2016-08-08
EP2727345A1 (en) 2014-05-07
US9055304B2 (en) 2015-06-09
US20130010865A1 (en) 2013-01-10
JP2014521257A (ja) 2014-08-25
WO2013006473A1 (en) 2013-01-10
KR20140030317A (ko) 2014-03-11

Similar Documents

Publication Publication Date Title
JP5766878B2 (ja) 低減解像度ピクセル補間
JP5619725B2 (ja) ビデオコーディングにおけるサブピクセル解像度のための補間フィルタサポート
JP5654087B2 (ja) ビデオ符号化における動き補償のための高度補間技術
KR101202632B1 (ko) 비디오 코딩에서의 보간을 위한 예측 기술
KR101202633B1 (ko) 고정된 필터 또는 적응형 필터에 기초한 비디오 코딩을 위한 레이트 왜곡 정의된 보간
CA2820061C (en) Adaptive support for interpolating values of sub-pixels for video coding
JP5180366B2 (ja) ビデオコーディングにおけるサブピクセル位置の補間フィルタリングに対する対称性
JP5607236B2 (ja) 混合タップフィルタ
JP5575747B2 (ja) 動き補償プロセスにおいて予測ブロックを発生する方法、装置、およびコンピュータ可読記憶媒体

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150106

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150323

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150617

R150 Certificate of patent or registration of utility model

Ref document number: 5766878

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees