IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ クゥアルコム・インコーポレイテッドの特許一覧

特許7513641切替え可能フィルタを用いる参照ピクチャリサンプリング
<>
  • 特許-切替え可能フィルタを用いる参照ピクチャリサンプリング 図1
  • 特許-切替え可能フィルタを用いる参照ピクチャリサンプリング 図2A
  • 特許-切替え可能フィルタを用いる参照ピクチャリサンプリング 図2B
  • 特許-切替え可能フィルタを用いる参照ピクチャリサンプリング 図3
  • 特許-切替え可能フィルタを用いる参照ピクチャリサンプリング 図4
  • 特許-切替え可能フィルタを用いる参照ピクチャリサンプリング 図5
  • 特許-切替え可能フィルタを用いる参照ピクチャリサンプリング 図6
  • 特許-切替え可能フィルタを用いる参照ピクチャリサンプリング 図7
  • 特許-切替え可能フィルタを用いる参照ピクチャリサンプリング 図8
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-07-01
(45)【発行日】2024-07-09
(54)【発明の名称】切替え可能フィルタを用いる参照ピクチャリサンプリング
(51)【国際特許分類】
   H04N 19/117 20140101AFI20240702BHJP
   H04N 19/172 20140101ALI20240702BHJP
   H04N 19/136 20140101ALI20240702BHJP
   H04N 19/59 20140101ALI20240702BHJP
【FI】
H04N19/117
H04N19/172
H04N19/136
H04N19/59
【請求項の数】 16
(21)【出願番号】P 2021577584
(86)(22)【出願日】2020-06-26
(65)【公表番号】
(43)【公表日】2022-09-09
(86)【国際出願番号】 US2020039824
(87)【国際公開番号】W WO2021007048
(87)【国際公開日】2021-01-14
【審査請求日】2023-05-26
(31)【優先権主張番号】62/872,225
(32)【優先日】2019-07-09
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】16/912,660
(32)【優先日】2020-06-25
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】595020643
【氏名又は名称】クゥアルコム・インコーポレイテッド
【氏名又は名称原語表記】QUALCOMM INCORPORATED
(74)【代理人】
【識別番号】110003708
【氏名又は名称】弁理士法人鈴榮特許綜合事務所
(74)【代理人】
【識別番号】100108855
【弁理士】
【氏名又は名称】蔵田 昌俊
(74)【代理人】
【識別番号】100158805
【弁理士】
【氏名又は名称】井関 守三
(74)【代理人】
【識別番号】100112807
【弁理士】
【氏名又は名称】岡田 貴志
(72)【発明者】
【氏名】セレジン、バディム
(72)【発明者】
【氏名】コバン、ムハンメド・ゼイド
【審査官】山内 裕史
(56)【参考文献】
【文献】特表2013-516908(JP,A)
【文献】Byeongdoo Choi, et.al.,AHG8: Signaling and Filtering for Reference Picture Resampling,Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11 15th Meeting: Gothenburg, SE, 3-12 July 2019,JVET-O0332,2019年06月26日,p1,7,8
【文献】Anastasia Henkel, et.al.,Non-CE4: Switched half-pel interpolation filter,Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11 14th Meeting: Geneva, CH, 19-27 March 2019,JVET-N0309-v3,2019年03月25日,p1,2
(58)【調査した分野】(Int.Cl.,DB名)
H04N 19/00 - 19/98
(57)【特許請求の範囲】
【請求項1】
ビデオデータを処理する方法であって、
現在のピクチャと参照ピクチャとを取得することと、
前記現在のピクチャの現在のブロックのためのフィルタインデックス情報を識別することと、
前記現在のピクチャの第1のピクチャサイズ値と前記参照ピクチャの第2のピクチャサイズ値とが異なると決定することと、
前記現在のピクチャの前記第1のピクチャサイズ値と前記参照ピクチャの前記第2のピクチャサイズ値とが異なると前記決定することに基づいて、異なる補間フィルタ間で選択するために前記フィルタインデックス情報によって識別される現在のフィルタインデックスの代わりにデフォルトフィルタインデックスを使用して、参照ピクチャリサンプリングプロセスを実施することと、
を備える方法。
【請求項2】
前記現在のブロックとともに前記フィルタインデックス情報によって識別される前記現在のフィルタインデックスを記憶することと、
前記現在のフィルタインデックスが前記フィルタインデックス情報によって識別されることに基づいて、後続のブロックのための動きベクトル候補導出において前記現在のフィルタインデックスを使用することと、
をさらに備える、請求項1に記載の方法。
【請求項3】
前記デフォルトフィルタインデックスを作成するために前記現在のフィルタインデックスを使用せずに前記参照ピクチャリサンプリングプロセスが実施されるときに元の値を置き換えるために前記現在のフィルタインデックスのためのデフォルト値を割り当てることと、
前記参照ピクチャリサンプリングプロセス後に前記現在のフィルタインデックスの前記元の値を割り当てることと、
をさらに備え、前記現在のフィルタインデックスのための前記デフォルト値は、特に、前記異なる補間フィルタ間で切り替えることが前記参照ピクチャリサンプリングプロセスの一部として適用されないことを示す、請求項1に記載の方法。
【請求項4】
前記異なる補間フィルタ間はハーフペル補間フィルタである、請求項1に記載の方法。
【請求項5】
前記フィルタインデックス情報は、ネイバーブロック情報を備え、前記現在のフィルタインデックスは、マージモード動きベクトル候補リスト導出中に前記ネイバーブロック情報から導出される、請求項1に記載の方法。
【請求項6】
前記フィルタインデックス情報は、適応動きベクトル解像度(AMVR)モードシグナリングを備え、前記現在のフィルタインデックスは、前記AMVRモードシグナリングを通じてシグナリングされる、請求項1に記載の方法。
【請求項7】
前記参照ピクチャリサンプリングプロセスは、補間プロセスを含む、請求項1に記載の方法。
【請求項8】
前記現在のフィルタインデックスが前記参照ピクチャリサンプリングプロセスにおいて使用されないという決定に応答して、現在のフィルタインデックス値がシグナリングされない、請求項1に記載の方法。
【請求項9】
前記現在のフィルタインデックスは、フィルタのセットから選択されるフィルタを示し、フィルタの前記セットのサブセットは、前記参照ピクチャリサンプリングプロセスを実施するために使用され、フィルタの前記セットの残りの部分は、参照ピクチャリサンプリングのために使用可能でな
特に、フィルタの前記セットの前記残りの部分からの前記フィルタの選択が禁止されることを示すシンタックス要素を使用して、前記フィルタが選択される、請求項1に記載の方法。
【請求項10】
間のためのフィルタの第1のグループと、リサンプリングのためのフィルタの第2のグループとを識別すること、ここにおいて、前記現在のフィルタインデックスは、フィルタの前記第2のグループからのフィルタを示す
をさらに備える、請求項1に記載の方法。
【請求項11】
第2の現在のピクチャと第2の参照ピクチャとを取得することと、
前記第2の現在のピクチャの第3のピクチャサイズ値と前記第2の参照ピクチャの第4のピクチャサイズ値とが同じサイズ値であると決定することと、
前記第2の現在のピクチャの前記第3のピクチャサイズ値と前記第2の参照ピクチャの前記第4のピクチャサイズ値とが前記同じサイズ値であると決定することに基づいて、第2の選択されたフィルタを使用して第2の現在のブロックのための第2のリサンプリングプロセスを実施することと、ここにおいて、前記第2の選択されたフィルタは、フィルタの前記第1のグループからのものである、
をさらに備える、または、
選択されたフィルタインデックス値のためのルックアップ演算によって、フィルタインデックスから前記現在のフィルタインデックスを取得すること、をさらに備え、
前記選択されたフィルタインデックス値は、フィルタの前記第2のグループに関連付けられ、
前記選択されたフィルタインデックス値とフィルタの前記第2のグループとの間の関連付けは、前記第1のピクチャサイズ値と前記第2のピクチャサイズ値とが異なると決定することに基づく、請求項10に記載の方法。
【請求項12】
フィルタの前記第1のグループとフィルタの前記第2のグループとの各フィルタは、関連するフィルタインデックスによって識別され、前記関連するフィルタインデックスは、補間のためのフィルタセットまたはリサンプリングのためのフィルタセットからの関連するインデックス値を示す、または、
前記現在のピクチャの前記第1のピクチャサイズ値と前記参照ピクチャの前記第2のピクチャサイズ値とが異なると決定することは、
現在のピクチャの幅が参照ピクチャの幅とは異なること、および、
在のピクチャの高さが参照ピクチャの高さとは異なること、
のうちの少なくとも1つを決定することを備える、請求項10に記載の方法。
【請求項13】
前記現在のピクチャと前記参照ピクチャとを備える符号化されたビデオビットストリームを生成すること、および、任意で、復号デバイスに前記符号化されたビデオビットストリームを送ること、前記符号化されたビデオビットストリームはシグナリング情報とともに送られ、前記シグナリング情報は、前記デフォルトフィルタインデックスを備える、または、前記符号化されたビデオビットストリームを記憶すること、
をさらに備える、または、
前記現在のピクチャと前記参照ピクチャとを備える符号化されたビデオビットストリームを取得することと、
前記符号化されたビデオビットストリームに関連するシグナリング情報を識別することと、前記シグナリング情報は、前記フィルタインデックス情報を備え、
前記符号化されたビデオビットストリームから前記現在のピクチャの前記現在のブロックを復号することと、
をさらに備え、前記符号化されたビデオビットストリームから前記現在のピクチャの前記現在のブロックを復号することは、特に、前記デフォルトフィルタインデックスに基づいて前記現在のブロックを再構築することを備える、請求項1に記載の方法。
【請求項14】
ビデオデータを処理するための装置であって、
命令を記憶する1つまたは複数のメモリユニットと、
前記命令を実行する1つまたは複数のプロセッサと、を備え、前記1つまたは複数のプロセッサによる前記命令の実行は、前記1つまたは複数のプロセッサに、
現在のピクチャと参照ピクチャとを取得することと、
前記現在のピクチャの現在のブロックのためのフィルタインデックス情報を識別することと、
前記現在のピクチャの第1のピクチャサイズ値と前記参照ピクチャの第2のピクチャサイズ値とが異なると決定することと、
前記現在のピクチャの前記第1のピクチャサイズ値と前記参照ピクチャの前記第2のピクチャサイズ値とが異なるとの決定に基づいて、異なる補間フィルタ間で選択するために前記フィルタインデックス情報によって識別される現在のフィルタインデックスの代わりにデフォルトフィルタインデックスを使用して参照ピクチャリサンプリングプロセスを実施することと、
を行わせる、装置。
【請求項15】
前記1つまたは複数のプロセッサによる前記命令の前記実行は、前記1つまたは複数のプロセッサに、請求項2乃至13のいずれか一項に記載の方法を実行することをさらに行わせる、請求項14に記載の装置。
【請求項16】
前記装置がモバイルデバイスである、または、
前記装置は、前記ビデオデータを表示するように構成されるディスプレイまたは前記ビデオデータの1つまたは複数のビデオフレームをキャプチャするように構成されたカメラを含む、請求項14に記載の装置。
【発明の詳細な説明】
【技術分野】
【0001】
[0001]本出願は、ビデオコーディングおよび圧縮に関する。より詳細には、本出願は、切替え可能フィルタを用いる参照ピクチャリサンプリングを提供するシステムおよび方法に関する。
【背景技術】
【0002】
[0002]多くのデバイスおよびシステムは、ビデオデータが消費のために処理および出力されることを可能にする。デジタルビデオデータは、消費者およびビデオプロバイダの需要を満たすための大量のデータを含む。たとえば、ビデオデータの消費者は、高い忠実度、解像度、フレームレートなどを伴う、最高の品質のビデオを望む。その結果、これらの需要を満たすために必要とされる大量のビデオデータは、ビデオデータを処理および記憶する通信ネットワークおよびデバイスに負担をかける。
【0003】
[0003]様々なビデオコーディング技法が、ビデオデータを圧縮するために使用され得る。ビデオコーディングは、1つまたは複数のビデオコーディング規格に従って実施される。たとえば、ビデオコーディング規格は、高効率ビデオコーディング(HEVC)、アドバンストビデオコーディング(AVC)、ムービングピクチャエクスパーツグループ(MPEG)2パート2コーディング、VP9、Alliance of Open Media(AOMedia) Video 1(AV1)、エッセンシャルビデオコーディング(EVC)などを含む。ビデオコーディングは、概してビデオ画像またはシーケンス中に存在する冗長を利用する予測方法(たとえば、インター予測、イントラ予測など)を利用する。ビデオコーディング技法の重要な目標は、ビデオ品質に対する劣化を回避するかまたは最小限に抑えながら、より低いビットレートを使用する形式にビデオデータを圧縮することである。常に発展しつつあるビデオサービスが利用可能になるとともに、より良いコーディング効率をもつ符号化技法が必要とされる。
【発明の概要】
【0004】
[0004]本明細書では、改善されたビデオ処理技法を提供するためのシステムおよび方法について説明する。ビデオ処理のいくつかの例は、ビデオデータを効率的に符号化および復号するために、予測を用いたビデオ圧縮技法を使用する。たとえば、ビデオエンコーダは、現在のブロック中のピクセル値を予測ブロック(たとえば、符号化されていないまたは前に復号されたブロック)と比較することによって符号化されている現在のブロックに対して予測を実施することができる。(残差とも呼ばれる)予測誤差は、現在のブロックと予測ブロックとの間の差として決定され得る。1つまたは複数の他のピクチャからの1つまたは複数のブロックを使用してピクチャ中のブロックに対して(インター予測と呼ばれる)予測を実施するときに、現在のブロックに対する予測ブロックのロケーションを示すために動きベクトルが使用され得る。
ビデオエンコーダは、変換係数を生成するために、予測誤差に変換(たとえば、離散コサイン変換(DCT)または他の好適な変換)を適用することができる。変換の後に、ビデオエンコーダは変換係数を量子化することができる。量子化変換係数と動きベクトルとは、シンタックス要素を使用して表され、制御情報とともに、ビデオシーケンスのコード化表現を形成し得る。場合によっては、ビデオエンコーダは、シンタックス要素をエントロピーコーディングすることができ、これは、シンタックス要素を表すために必要とされるビット数をさらに低減することができる。
【0005】
[0005]いくつかの例では、サンプルレート変換がビデオデータに適用され得る。サンプルレート変換は、リサンプリング、ダウンサンプリング、アップサンプリング、補間、および/または他のサンプルレート変換技法を含むことができる。たとえば、補間は、補間技法の中でも区分定数補間、線形補間、多項式補間およびスプライン補間を含むことができる。リサンプリングは、ダウンサンプリング、アップサンプリング、および/もしくはダウンサンプリングとアップサンプリングとの組合せ、または異なるサンプリングレートで新しいサンプルを取得することを含むことができる。
【0006】
[0006]いくつかの例では、動き予測は、ブロック単位の動きデータシグナリングを簡略化するためにインター予測ブロックマージ技法を用いて向上され得る。補間タスクは、ピクチャ間(たとえば、現在のピクチャと参照ピクチャとの間)のオブジェクトの変位が画像のためのピクセルグリッドとは無関係であるのでそのようなコンテキストで使用される。したがって、分数精度(たとえば、画像中のピクセル間の配置を推定すること)が動きをより正確にキャプチャするために使用され得る。補間フィルタは、特に、参照ピクチャと処理されている現在のピクチャとが同じサイズを共有するときに分数精度を実装するためにビデオ処理において使用され得る。補間フィルタは、分数位置における画像値を推定するために画像データをフィルタ処理するために使用され、この分数位置データは、予測または他の画像処理動作とともに使用され得る。
【0007】
[0007]リサンプリングは、いくつかのサンプル(たとえば、あるグリッド中のピクセル)をもつ画像を取り出し、元のサンプルからのデータを維持しながらサンプルを修正すること(たとえば、異なるグリッド上に新しいピクセルを作成すること)を指す。上記のように、リサンプリングは、より低い解像度のグリッドからのピクセルがより高い解像度のグリッド中のピクセルを作成するために使用されるアップサンプリングならびにより高い解像度のグリッドからのピクセルがより低い解像度のグリッド中のピクセルを生成するために使用されるダウンサンプリングを含むことができる。上記で説明された動き予測および動きベクトルのコンテキストでは、比較されている参照ピクチャと現在のピクチャとが異なるサイズのものであるとき、参照ピクチャリサンプリングは、分数精度を用いて画像を生成することの一部としてピクセルグリッドを標準化するために使用され得る。画像処理システムが、現在のピクチャとは異なるサイズをもつ参照ピクチャを可能にするように構成されるとき、フィルタインデックスによって示されるフィルタは、参照ピクチャリサンプリングを用いる分数精度(たとえば、参照ピクチャが現在のピクチャとは異なるサイズであるときの分数精度)のためにではなく、補間フィルタ処理(たとえば、参照が現在のピクチャと同じサイズであるときの分数精度)のために画像を処理するのに好適であり得る。いくつかのシステムでは、たとえば、分数精度のために使用される平滑化フィルタは、参照ピクチャと現在のピクチャとが同じサイズであるときに補間を用いて良好な結果を生成することができるが、参照ピクチャが現在のピクチャとは異なるピクセルグリッド(たとえば、異なるサイズ)を有する参照ピクチャリサンプリングとともに使用されるときに不十分な結果を作成することがある。本明細書で説明される例は、適切なフィルタ値を識別し、符号化および復号デバイスの動作中に改善された符号化および復号結果を生成することによって復号および符号化デバイスの動作を改善する。
【0008】
[0008]様々な例では、そのような改善は、現在のピクチャの現在のブロックのためのフィルタインデックス情報を識別し、現在のピクチャの第1のピクチャサイズ値と参照ピクチャの第2のピクチャサイズ値とが異なると決定することによって実装され得る(たとえば、参照ピクチャリサンプリングが使用される場合)。このコンテキストでは、例は、フィルタインデックス情報によって識別される現在のフィルタインデックスの代わりに(たとえば、現在のフィルタインデックスを使用せずに)デフォルトフィルタインデックスを使用してリサンプリングプロセスを実施する。
【0009】
[0009]1つの例示的な例では、ビデオデータを処理するための装置が提供される。本装置は、メモリと、回路中に実装された1つまたは複数のプロセッサとを含む。1つまたは複数のプロセッサは、現在のピクチャと参照ピクチャとを取得するように構成される。プロセッサはまた、現在のピクチャの現在のブロックのためのフィルタインデックス情報を識別し、現在のピクチャの第1のピクチャサイズ値と参照ピクチャの第2のピクチャサイズ値とが異なると決定するように構成される。現在のピクチャの第1のピクチャサイズ値と参照ピクチャの第2のピクチャサイズ値とが異なるとの決定に基づいて、1つまたは複数のプロセッサは、フィルタインデックス情報によって識別される現在のフィルタインデックスの代わりにデフォルトフィルタインデックスを使用してサンプルレート変換プロセスを実施することができる。
【0010】
[0010]別の例では、ビデオデータを処理する方法が提供される。本方法は、現在のピクチャと参照ピクチャとを取得することを含む。本方法は、現在のピクチャの現在のブロックのためのフィルタインデックス情報を識別することと、現在のピクチャの第1のピクチャサイズ値と参照ピクチャの第2のピクチャサイズ値とが異なると決定することとをさらに含む。本方法は、現在のピクチャの第1のピクチャサイズ値と参照ピクチャの第2のピクチャサイズ値とが異なるとの決定に基づいて、フィルタインデックス情報によって識別される現在のフィルタインデックスの代わりにデフォルトフィルタインデックスを使用してサンプルレート変換プロセスを実施することを含む。
【0011】
[0011]別の例では、命令を記憶するコンピュータ可読記憶媒体であって、命令は、実行されたとき、ビデオデータを処理するためのデバイスの1つまたは複数のプロセッサに、現在のピクチャと参照ピクチャとを取得することと、現在のピクチャの現在のブロックのためのフィルタインデックス情報を識別することと、現在のピクチャの第1のピクチャサイズ値と参照ピクチャの第2のピクチャサイズ値とが異なると決定することと、現在のピクチャの第1のピクチャサイズ値と参照ピクチャの第2のピクチャサイズ値とが異なるとの決定に基づいて、フィルタインデックス情報によって識別される現在のフィルタインデックスの代わりにデフォルトフィルタインデックスを使用してサンプルレート変換プロセスを実施することと、を行わせるコンピュータ可読記憶媒体。
【0012】
[0012]別の例では、ビデオデータを処理するための装置が提供される。本装置は、現在のピクチャと参照ピクチャとを取得するための手段と、現在のピクチャの現在のブロックのためのフィルタインデックス情報を識別するための手段と、現在のピクチャの第1のピクチャサイズ値と参照ピクチャの第2のピクチャサイズ値とが異なると決定するための手段と、現在のピクチャの第1のピクチャサイズ値と参照ピクチャの第2のピクチャサイズ値とが異なるとの決定に基づいて、フィルタインデックス情報によって識別される現在のフィルタインデックスの代わりにデフォルトフィルタインデックスを使用してサンプルレート変換プロセスを実施するための手段と、を含む。
【0013】
[0013]いくつかの例では、方法、装置、およびコンピュータ可読記憶媒体中に記憶された命令は、現在のピクチャと参照ピクチャとを取得することと、現在のピクチャの現在のブロックのためのフィルタインデックス情報を識別することと、現在のピクチャの第1のピクチャサイズ値と参照ピクチャの第2のピクチャサイズ値とが異なると決定することと、現在のピクチャの第1のピクチャサイズ値と参照ピクチャの第2のピクチャサイズ値とが異なるとの決定に基づいて、フィルタインデックス情報によって識別される現在のフィルタインデックスを使用せずにサンプルレート変換プロセスを実施することと、を含む。
【0014】
[0014]いくつかの例では、方法、装置、およびコンピュータ可読記憶媒体中に記憶された命令は、現在のピクチャと参照ピクチャとを取得することと、現在のピクチャの現在のブロックのためのフィルタインデックス情報を識別することと、現在のピクチャの第1のピクチャサイズ値と参照ピクチャの第2のピクチャサイズ値とが異なると決定することと、現在のピクチャの第1のピクチャサイズ値と参照ピクチャの第2のピクチャサイズ値とが異なるとの決定に基づいて、フィルタインデックス情報によって識別される現在のフィルタインデックスの代わりにデフォルトインデックス値を使用してサンプルレート変換プロセスを実施することと、を含む。
【0015】
[0015]場合によっては、上記で説明された方法、装置、およびコンピュータ可読記憶媒体中に記憶された命令は、現在のブロックとともにフィルタインデックス情報によって識別される現在のフィルタインデックスを記憶することと、現在のフィルタインデックスがフィルタインデックス情報によって識別されることに基づいて後続のブロックのための動きベクトル候補導出において現在のフィルタインデックスを使用することと、を含む。
【0016】
[0016]場合によっては、上記で説明された方法、装置、およびコンピュータ可読記憶媒体中に記憶された命令は、デフォルトフィルタインデックスを作成するために現在のフィルタインデックスを使用せずにサンプルレート変換プロセスが実施されるときに元の値を暫定的に置き換えるために、現在のフィルタインデックスのためのデフォルト値を割り当てることと、サンプルレート変換プロセス後に現在のフィルタインデックスの元の値を割り当てることと、を含む。場合によっては、現在のフィルタインデックスのためのデフォルト値は、代替的な切替え可能フィルタ処理がサンプルレート変換プロセスの一部として適用されないことを示す。
【0017】
[0017]場合によっては、フィルタインデックス情報は、ネイバーブロック情報を備え、ここで、現在のフィルタインデックスは、マージモード動きベクトル候補リスト導出中にネイバーブロック情報から導出される。場合によっては、フィルタインデックス情報は、適応動きベクトル解像度(AMVR:adaptive motion vector resolution)モードシグナリングを備え、現在のフィルタインデックスは、AMVRモードシグナリングを通じて(though)シグナリングされる。場合によっては、サンプルレート変換プロセスは、動き補償プロセスである。場合によっては、サンプルレート変換プロセスは、リサンプリングプロセスである。場合によっては、サンプルレート変換プロセスは、補間プロセスである。
【0018】
[0018]場合によっては、上記で説明された方法、装置、およびコンピュータ可読記憶媒体中に記憶された命令は、現在のピクチャの現在のブロックのインター予測のために参照ピクチャを使用して動作する。場合によっては、上記で説明された方法、装置、およびコンピュータ可読記憶媒体中に記憶された命令は、現在のフィルタインデックスがサンプルレート変換プロセスのために使用されないと決定することと、現在のフィルタインデックスがサンプルレート変換プロセスのために使用されないと決定することに応答して現在のフィルタインデックスの値をデフォルト値と置き換えることとを含む。場合によっては、上記で説明された方法、装置、およびコンピュータ可読記憶媒体中に記憶された命令は、代替的な切替え可能フィルタが適用されないと決定するためにデフォルト値を処理することを含む。いくつかの例では、代替的な切替え可能フィルタは、平滑化フィルタである。
【0019】
[0019]場合によっては、現在のフィルタインデックスがサンプルレート変換プロセスにおいて使用されないという決定に応答して、現在のフィルタインデックス値がシグナリングされない。場合によっては、現在のフィルタインデックスは、フィルタのセットから選択され、ここで、フィルタのセットのサブセットは、サンプルレート変換プロセスを実施するために使用され、フィルタのセットの残りの部分は、サンプルレート変換のために使用可能でない。場合によっては、フィルタのセットの残りの部分からの現在のフィルタインデックスの選択が禁止されることを示すシンタックス要素を使用して現在のフィルタインデックスが選択される。
【0020】
[0020]場合によっては、サンプルレート変換プロセスは、リサンプリングプロセスを含む。そのような場合、上記で説明された方法、装置、およびコンピュータ可読記憶媒体中に記憶された命令は、補間のためのフィルタの第1のグループとリサンプリングのためのフィルタの第2のグループとを識別すること、を含み、ここで、現在のフィルタインデックスは、フィルタの第2のグループからのものである。
【0021】
[0021]場合によっては、上記で説明された方法、装置、およびコンピュータ可読記憶媒体中に記憶された命令は、第2の現在のピクチャと第2の参照ピクチャとを取得することと、第2の現在のピクチャの第3のピクチャサイズ値と第2の参照ピクチャの第4のピクチャサイズ値とが同じサイズ値であると決定することと、第2の現在のピクチャの第3のピクチャサイズ値と第2の参照ピクチャの第4のピクチャサイズ値とが同じサイズ値であると決定することに基づいて、第2の選択されたフィルタを使用して第2の現在のブロックのための第2のリサンプリングプロセスを実施することと、ここで、第2の選択されたフィルタは、フィルタの第1のグループからのものである、を含む。
【0022】
[0022]場合によっては、フィルタの第1のグループとフィルタの第2のグループとの各フィルタは、関連するフィルタインデックスによって識別される。関連するフィルタインデックスは、補間のためのフィルタセットまたはリサンプリングのためのフィルタセットからの関連するインデックス値を示す。
【0023】
[0023]場合によっては、上記で説明された方法、装置、およびコンピュータ可読記憶媒体中に記憶された命令は、選択されたフィルタインデックス値のためのルックアップ演算によってフィルタインデックスから現在のフィルタインデックスを取得すること、ここで、選択されたフィルタインデックス値は、フィルタの第2のグループに関連付けられ、選択されたフィルタインデックス値とフィルタの第2のグループとの間の関連付けは、第1のピクチャサイズ値と第2のピクチャサイズ値とが異なると決定することに基づく、を含む。
【0024】
[0024]場合によっては、説明された方法、装置、およびコンピュータ可読記憶媒体中に記憶された命令は、動作し、ここで、現在のピクチャの第1のピクチャサイズ値と参照ピクチャの第2のピクチャサイズ値とが異なると決定することは、現在のピクチャの幅が参照ピクチャの幅とは異なることと、現在のピクチャの高さが参照ピクチャの高さとは異なることとのうちの少なくとも1つを決定することを備える。
【0025】
[0025]場合によっては、上記で説明された方法、装置、およびコンピュータ可読記憶媒体中に記憶された命令は、現在のピクチャと参照ピクチャとを備える符号化されたビデオビットストリームを生成することを含む。いくつかの例では、上記で説明された方法、装置、およびコンピュータ可読記憶媒体中に記憶された命令は、復号デバイスに符号化されたビデオビットストリームを送ることを含む。符号化されたビデオビットストリームはシグナリング情報とともに送られ得る。シグナリング情報は、デフォルトフィルタインデックスを備える。いくつかの例では、上記で説明された方法、装置、およびコンピュータ可読記憶媒体中に記憶された命令は、符号化されたビデオビットストリームを記憶することを含む。
【0026】
[0026]場合によっては、上記で説明された方法、装置、およびコンピュータ可読記憶媒体中に記憶された命令は、現在のピクチャと参照ピクチャとを備える符号化されたビデオビットストリームを取得することと、符号化されたビデオビットストリームに関連するシグナリング情報を識別することと、シグナリング情報は、フィルタインデックス情報を備え、符号化されたビデオビットストリームから現在のピクチャの現在のブロックを復号することと、を含む。いくつかの例では、符号化されたビデオビットストリームから現在のピクチャの現在のブロックを復号することは、デフォルトフィルタインデックスに基づいて現在のブロックを再構築することを備える。
【0027】
[0027]いくつかの態様では、ビデオデータを処理するための装置は、復号デバイスもしくは装置および/または符号化デバイスもしくは装置を含むことができる。ビデオデータを処理するための装置は、カメラ、モバイルデバイス(たとえば、携帯電話またはいわゆる「スマートフォン」または他のモバイルデバイス)、ウェアラブルデバイス、エクステンデッドリアリティデバイス(たとえば、仮想現実(VR)デバイス、拡張現実(AR)デバイス、または複合現実(MR)デバイス)、パーソナルコンピュータ、ラップトップコンピュータ、サーバコンピュータ、または他のデバイスであり得る。いくつかの態様では、ビデオデータを処理するための装置は、1つまたは複数の画像をキャプチャするための1つまたは複数のカメラを含む。いくつかの態様では、ビデオデータを処理するための装置は、1つまたは複数の画像、通知、および/または他の表示可能なデータを表示するためのディスプレイを含む。
【0028】
[0028]方法、装置、およびコンピュータ可読媒体のいずれかに関係する上記で説明された態様は、個々に、または任意の好適な組合せで使用され得る。
【0029】
[0029]本発明の概要は、請求される主題の主要なまたは本質的な特徴を識別するものではなく、請求される主題の範囲を決定するために独立して使用されるものでもない。本主題は、本特許の明細書全体、いずれかまたはすべての図面、および各請求項の適切な部分を参照することによって理解されたい。
【0030】
[0030]上記のことは、他の特徴および実施形態とともに、以下の明細書、特許請求の範囲、および添付の図面を参照すると、より明らかになろう。
【0031】
[0031]本出願の例示的な実施形態は、以下の図を参照しながら以下で詳細に説明される。
【図面の簡単な説明】
【0032】
図1】[0032]いくつかの例による、符号化デバイスおよび復号デバイスを含むシステムの一例を示すブロック図。
図2A】[0033]いくつかの例による、マージモードのための例示的な空間隣接動きベクトル候補を示す概念図。
図2B】[0034]いくつかの例による、高度動きベクトル予測(AMVP)モードのための例示的な空間隣接動きベクトル候補を示す概念図。
図3】[0035]ビデオデータを処理するための技法を示す流れ図。
図4】[0036]いくつかの例による、参照ピクチャリサンプリングの態様を示す図。
図5】[0037]いくつかの例による、参照ピクチャリサンプリングのための方法の態様を示す流れ図。
図6】[0038]いくつかの例による、参照ピクチャリサンプリングの態様を示す流れ図。
図7】[0039]いくつかの例による、例示的なビデオ符号化デバイスを示すブロック図。
図8】[0040]いくつかの例による、例示的なビデオ復号デバイスを示すブロック図。
【発明を実施するための形態】
【0033】
[0041]本開示のいくつかの態様および実施形態が以下で提供される。当業者に明らかであるように、これらの態様および実施形態のうちのいくつかは独立して適用され得、それらのうちのいくつかは組み合わせて適用され得る。以下の説明では、説明の目的で、本出願の実施形態の完全な理解を与えるために具体的な詳細が記載される。ただし、様々な実施形態は、これらの具体的な詳細なしに実施され得ることが明らかであろう。図および説明は限定するものではない。
【0034】
[0042]以下の説明は、例示的な実施形態のみを与えるものであり、本開示の範囲、適用性、または構成を限定するものではない。そうではなく、例示的な実施形態の以下の説明は、例示的な実施形態を実装することを可能にする説明を当業者に与える。添付の特許請求の範囲に記載されるように、本出願の趣旨および範囲から逸脱することなく、要素の機能および構成において様々な変更が行われ得ることを理解されたい。
【0035】
[0043]ビデオコーディングデバイスは、ビデオデータを効率的に符号化および復号するためのビデオ圧縮技法を実装する。ビデオ圧縮技法は、ビデオシーケンスに固有の冗長を低減または除去するために、空間予測(たとえば、イントラフレーム予測またはイントラ予測)、時間予測(たとえば、インターフレーム予測またはインター予測)、(ビデオデータの異なるレイヤにわたるレイヤ間予測、および/または他の予測技法を含む、異なる予測モードを適用することを含み得る。ビデオエンコーダは、元のビデオシーケンスの各ピクチャを(以下でより詳細に説明される)ビデオブロックまたはコーディングユニットと呼ばれる矩形領域に区分することができる。これらのビデオブロックは、特定の予測モードを使用して符号化され得る。
【0036】
[0044]ビデオブロックは、1つまたは複数のやり方で、より小さいブロックの1つまたは複数のグループに分割され得る。ブロックは、コーディングツリーブロック、予測ブロック、変換ブロック、および/または他の好適なブロックを含むことができる。概して「ブロック」への言及は、別段に規定されていない限り、そのようなビデオブロック(たとえば、当業者によって理解されるように、コーディングツリーブロック、コーディングブロック、予測ブロック、変換ブロック、または他の適切なブロックもしくはサブブロック)を指すことがある。さらに、これらのブロックの各々はまた、本明細書では、互換的に「ユニット」(たとえば、コーディングツリーユニット(CTU)、コーディングユニット、予測ユニット(PU)、変換ユニット(TU)など)と呼ばれることがある。いくつかの場合には、ユニットは、ビットストリーム中で符号化されるコーディング論理ユニットを示し得、ブロックは、プロセスがターゲットであるビデオフレームバッファの一部分を示し得る。
【0037】
[0045]インター予測モードの場合、ビデオエンコーダは、参照フレームまたは参照ピクチャと呼ばれる、別の時間ロケーション中にあるフレーム(またはピクチャ)中で符号化されているブロックと同様のブロックを探索することができる。ビデオエンコーダは、その探索を、符号化されるべきブロックからのある空間変位に制限し得る。最良マッチが、水平変位成分と垂直変位成分とを含む2次元(2D)動きベクトルを使用して特定され得る。イントラ予測モードの場合、ビデオエンコーダは、同じピクチャ内の前に符号化された隣接ブロックからのデータに基づいて、空間予測技法を使用して、予測されたブロックを形成し得る。
【0038】
[0046]ビデオエンコーダは予測誤差を決定し得る。たとえば、予測は、符号化されているブロック中のピクセル値と予測されたブロック中のピクセル値との間の差分として決定され得る。予測誤差は残差と呼ばれることもある。ビデオエンコーダはまた、変換係数を生成するために、予測誤差に変換(たとえば、離散コサイン変換(DCT)または他の好適な変換)を適用し得る。変換の後に、ビデオエンコーダは変換係数を量子化し得る。量子化変換係数と動きベクトルとは、シンタックス要素を使用して表され、制御情報とともに、ビデオシーケンスのコード化表現を形成し得る。いくつかの事例では、ビデオエンコーダはシンタックス要素をエントロピーコーディングし、それにより、さらに、それらの表現のために必要とされるビット数を低減し得る。
【0039】
[0047]ビデオデコーダは、上記で説明されたシンタックス要素および制御情報を使用して、現在のフレームを復号するための予測データ(たとえば、予測ブロック)を構築し得る。たとえば、ビデオデコーダは、予測されたブロックと圧縮された予測誤差とを加え得る。ビデオデコーダは、量子化係数を使用して変換基底関数を重み付けすることによって、圧縮された予測誤差を決定し得る。再構築されたフレームと元のフレームとの間の差分は、再構築誤差と呼ばれる。
【0040】
[0048]いくつかの例では、サンプルレート変換がビデオデータに適用され得る。サンプルレート変換は、リサンプリング、ダウンサンプリング、アップサンプリング、補間、および/または他のサンプルレート変換技法を含むことができる。たとえば、補間は、補間技法の中でも区分定数補間(piecewise constant interpolation)、線形補間(linear interpolation)、多項式補間(polynomial interpolation)およびスプライン補間(spline interpolation)を含むことができる。リサンプリングは、ダウンサンプリング、アップサンプリング、および/もしくはダウンサンプリングとアップサンプリングとの組合せ、または異なるサンプリングレートで新しいサンプルを取得することを含むことができる。
【0041】
[0049]いくつかのシステムでは、動き予測は、ブロック単位の動きデータシグナリングを簡略化するためにインター予測ブロックマージ技法を用いて向上され得る。補間タスクは、ピクチャ間のオブジェクトの変位が画像のためのピクセルグリッドとは無関係であるのでそのようなコンテキストで使用される。したがって、分数精度(たとえば、画像中のピクセル間の配置を推定すること)は、動きをより正確にキャプチャするために使用される。この分数精度によって、前に復号されたブロックからの動きデータの推測が可能になり得る。補間および分数参照ピクチャサンプルの場合、高精度は、フィルタ処理を改善することができる。例示的なシステムは、1/4ピクセル精度、1/8ピクセル精度、1/16ピクセル精度、またはシステムに応じて他のそのような精度をもつ動きベクトルをサポートすることができる。いくつかの例では、ルーマおよびクロマ成分は、同じシステム中で異なる分数精度を有することができる。補間フィルタは、このコンテキストでは画像を処理するために使用され得る。さらに、複数の異なる補間フィルタが、異なる状況において(たとえば、動きベクトル値に基づいて)使用され得る。本明細書では、利用可能である異なる補間フィルタ間で選択することを補間フィルタスイッチングと呼ぶ。
【0042】
[0050]リサンプリングは、1つの画像からピクセル値を取り出し、ピクセル値からデータを「リサンプリングして」、新しい画像のための新しいピクセル値を生成することを指す。上記で説明されたように、リサンプリングは、より高い解像度の画像からのピクセル値がより低い解像度で画像を生成するために使用されるダウンサンプリング、ならびにより低い解像度の画像からのピクセル値がより高い解像度で画像を生成するために使用されるアップサンプリングを含むことができる。上記で説明された動き予測のコンテキストでは、異なるサイズ(たとえば、解像度)をもつ参照画像と現在の画像とは、動きベクトルを生成し、動き予測を実施するために使用され得る。リサンプリングは、参照ピクチャと現在のピクチャとの間のスケーリング差を管理するためにそのような状況で使用され得る。さらに、参照ピクチャと現在のピクチャとが同じサイズでないとき、リサンプリングを用いない補間フィルタ処理に好適だが、参照ピクチャリサンプリングを用いる補間フィルタ処理に好適でないフィルタがフィルタインデックスによって示され得る。
いくつかの画像処理システムでは、たとえば、補間のために使用される平滑化フィルタは、参照ピクチャリサンプリングのために使用されるときに不十分な結果を作成することがある。本明細書で説明される例は、適切なフィルタ値を識別し、符号化および復号デバイスの動作中に改善された符号化および復号結果を生成することによって復号および符号化デバイスの動作を改善する。一例では、この改善は、現在のピクチャの現在のブロックのためのフィルタインデックス情報を識別し、(たとえば、参照ピクチャリサンプリングが使用される)現在のピクチャの第1のピクチャサイズ値と参照ピクチャの第2のピクチャサイズ値とが異なると決定することによって実装される。このコンテキストでは、例は、フィルタインデックス情報によって識別される現在のフィルタインデックスの代わりに(たとえば、現在のフィルタインデックスを使用せずに)デフォルトフィルタインデックスを使用してリサンプリングプロセスを実施する。様々な例の追加の態様について以下で説明する。
【0043】
[0051]本明細書で説明される技法は、既存のビデオコーデック(たとえば、高効率ビデオコーディング(HEVC)、アドバンストビデオコーディング(AVC)、または他の好適な既存のビデオコーデック)のいずれかに適用され得るか、ならびに/あるいは、たとえば、汎用ビデオコーディング(VVC)、共同探査モデル(JEM)、および/または開発中のもしくは開発されることになる他のビデオコーディング規格など、任意の開発されているビデオコーディング規格および/または将来のビデオコーディング規格のための効率的なコーディングツールであり得る。
【0044】
[0052]図1は、符号化デバイス104と復号デバイス112とを含むシステム100の一例を示すブロック図である。符号化デバイス104はソースデバイスの一部であり得、復号デバイス112は受信デバイスの一部であり得る。ソースデバイスおよび/または受信デバイスは、モバイルもしくは固定電話ハンドセット(たとえば、スマートフォン、セルラー電話など)、デスクトップコンピュータ、ラップトップもしくはノートブックコンピュータ、タブレットコンピュータ、セットトップボックス、テレビジョン、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲームコンソール、ビデオストリーミングデバイス、インターネットプロトコル(IP)カメラ、または任意の他の好適な電子デバイスなど、電子デバイスを含み得る。いくつかの例では、ソースデバイスおよび受信デバイスは、ワイヤレス通信のための1つまたは複数のワイヤレストランシーバを含み得る。本明細書で説明されるコーディング技法は、(たとえば、インターネットを介した)ストリーミングビデオ送信、テレビジョン放送もしくは送信、データ記憶媒体上に記憶するためのデジタルビデオの符号化、データ記憶媒体上に記憶されたデジタルビデオの復号、または他の適用例を含む、様々なマルチメディア適用例におけるビデオコーディングに適用可能である。いくつかの例では、システム100は、ビデオ会議、ビデオストリーミング、ビデオ再生、ビデオブロードキャスティング、ゲーム、および/またはビデオテレフォニーなどの適用例をサポートするために、一方向または双方向のビデオ送信をサポートすることができる。
【0045】
[0053]符号化デバイス104(またはエンコーダ)は、符号化ビデオビットストリームを生成するためにビデオコーディング規格またはプロトコルを使用してビデオデータを符号化するために使用され得る。ビデオコーディング規格の例は、ITU-T H.261、ISO/IEC MPEG-1 Visual、ITU-T H.262またはISO/IEC MPEG-2 Visual、ITU-T H.263、ISO/IEC MPEG-4 Visual、そのスケーラブルビデオコーディング(SVC)拡張とマルチビュービデオコーディング(MVC)拡張とを含む(ISO/IEC MPEG-4 AVCとしても知られる)ITU-T H.264、および高効率ビデオコーディング(HEVC)またはITU-T H.265を含む。範囲およびスクリーンコンテンツコーディング拡張、3Dビデオコーディング(3D-HEVC)ならびにマルチビュー拡張(MV-HEVC)ならびにスケーラブル拡張(SHVC)を含む、マルチレイヤビデオコーディングに対処するHEVCへの様々な拡張が存在する。HEVCおよびそれの拡張は、ITU-Tビデオコーディングエキスパートグループ(VCEG)およびISO/IECモーションピクチャエキスパートグループ(MPEG)の共同コラボレーションチームオンビデオコーディング(JCT-VC)ならびに共同コラボレーションチームオン3Dビデオコーディング拡張開発(JCT-3V)によって開発された。MPEGとITU-T VCEGとはまた、次世代のビデオコーディング規格のための新しいコーディングツールを調査するために共同調査ビデオチーム(JVET)を編成した。参照ソフトウェアは、JEM(共同調査モデル)と呼ばれる。JVETによって開発されている新しいビデオコーディング規格は、汎用ビデオコーディング(VVC)と呼ばれる。
【0046】
[0054]HEVCは、ITU-T Video Coding Experts Group(VCEG)とISO/IEC Motion Picture Experts Group(MPEG)(2013)とのJoint Collaboration Team on Video Coding(JCT-VC)によって確定された。共同ビデオエキスパートチーム(JVET)、MPEGとITU-T研究グループ16のVCEGとによって形成されたコラボレーティブチームは、新しいVVCビデオコーディング規格に取り組んでいる。VVCの目的は、(たとえば、特に、360°全方向没入型マルチメディア、高ダイナミックレンジ(HDR)ビデオなど)より高品質のビデオサービスおよび新生のアプリケーションの展開を助ける、既存のHEVC規格を超える圧縮性能における顕著な改善を提供することである。
【0047】
[0055]本明細書で説明される多くの実施形態は、JEMモデル、VVC、HEVC規格、および/またはそれらの拡張を使用する例を提供する。しかしながら、上記のように、本明細書で説明される技法およびシステムは、AVC、MPEG、JPEG(または静止画像のための他のコーディング規格)、それらの拡張、あるいはすでに利用可能であるか、またはまだ利用可能ではないか、もしくは開発されていない他の好適なコーディング規格など、他のコーディング規格にも適用可能であり得る。したがって、本明細書で説明される技法およびシステムは、特定のビデオコーディング規格を参照しながら説明され得るが、当業者は、説明がその特定の規格にのみ適用されると解釈されるべきではないことを諒解されよう。
【0048】
[0056]図1を参照すると、ビデオソース102は、符号化デバイス104にビデオデータを与え得る。ビデオソース102は、ソースデバイスの一部であり得るか、またはソースデバイス以外のデバイスの一部であり得る。ビデオソース102は、ビデオキャプチャデバイス(たとえば、ビデオカメラ、カメラフォン、ビデオフォンなど)、記憶されたビデオを含んでいるビデオアーカイブ、ビデオデータを与えるビデオサーバもしくはコンテンツプロバイダ、ビデオサーバもしくはコンテンツプロバイダからビデオを受信するビデオフィードインターフェース、コンピュータグラフィックスビデオデータを生成するためのコンピュータグラフィックスシステム、そのようなソースの組合せ、または任意の他の好適なビデオソースを含み得る。
【0049】
[0057]ビデオソース102からのビデオデータは、1つまたは複数の入力ピクチャまたはフレームを含み得る。ピクチャまたはフレームは、いくつかの場合には、ビデオの一部である静止画像である。いくつかの例では、ビデオソース102からのデータは、ビデオの一部でない静止画像であり得る。符号化デバイス104のエンコーダエンジン106(またはエンコーダ)は、符号化されたビデオビットストリームを生成するためにビデオデータを符号化する。いくつかの例では、符号化ビデオビットストリーム(または「ビデオビットストリーム」または「ビットストリーム」)は、一連の1つまたは複数のコード化ビデオシーケンスである。コード化ビデオシーケンス(CVS)は、ベースレイヤ中の、いくつかのプロパティをもつランダムアクセスポイントピクチャを有するアクセスユニット(AU)で始まり、ベースレイヤ中の、いくつかのプロパティをもつランダムアクセスポイントピクチャを有する次のAUまでの、次のAUを含まない一連のAUを含む。たとえば、CVSを開始するランダムアクセスポイントピクチャのいくつかのプロパティは、1に等しいRASLフラグ(たとえば、NoRaslOutputFlag)を含み得る。他の場合、(0に等しいRASLフラグをもつ)ランダムアクセスポイントピクチャはCVSを開始しない。アクセスユニット(AU)は、1つまたは複数のコード化ピクチャと、同じ出力時間を共有するコード化ピクチャに対応する制御情報とを含む。ピクチャのコード化スライスは、ビットストリームレベルにおいて、ネットワークアブストラクションレイヤ(NAL)ユニットと呼ばれるデータユニット中にカプセル化される。たとえば、HEVCビデオビットストリームは、NALユニットを含む1つまたは複数のCVSを含み得る。NALユニットの各々はNALユニットヘッダを有する。一例では、ヘッダは、(マルチレイヤ拡張を除いて)H.264/AVCでは1バイトであり、HEVCでは2バイトである。NALユニットヘッダ中のシンタックス要素は、指定されたビットをとり、したがって、特にトランスポートストリーム、リアルタイムトランスポート(RTP)プロトコル、ファイルフォーマットなど、すべての種類のシステムおよびトランスポートレイヤに可視である。
【0050】
[0058]ビデオコーディングレイヤ(VCL)NALユニットと非VCL NALユニットとを含む、NALユニットの2つのクラスがHEVC規格に存在する。VCL NALユニットは、コード化ピクチャデータの(以下で説明される)1つのスライスまたはスライスセグメントを含み、非VCL NALユニットは、1つまたは複数のコード化ピクチャに関係する制御情報を含む。いくつかの場合には、NALユニットはパケットと呼ばれることがある。HEVC AUは、コード化ピクチャデータを含んでいるVCL NALユニットと、(もしあれば)コード化ピクチャデータに対応する非VCL NALユニットとを含む。
【0051】
[0059]NALユニットは、ビデオ中のピクチャのコード化表現など、ビデオデータのコード化表現を形成するビットのシーケンス(たとえば、符号化ビデオビットストリーム、ビットストリームのCVSなど)を含んでいることがある。エンコーダエンジン106は、各ピクチャを複数のスライスに区分することによってピクチャのコード化表現を生成する。スライスは、スライス中の情報が、同じピクチャ内の他のスライスからのデータへの依存性なしにコーディングされるように、他のスライスから独立している。スライスは、独立しているスライスセグメントを含む1つまたは複数のスライスセグメントと、存在する場合、前のスライスセグメントに依存する1つまたは複数の依存するスライスセグメントとを含む。スライスは、次いで、ルーマサンプルおよびクロマサンプルのコーディングツリーブロック(CTB)に区分される。ルーマサンプルのCTBおよびクロマサンプルの1つまたは複数のCTBは、サンプルのためのシンタックスとともに、コーディングツリーユニット(CTU)と呼ばれる。CTUは、HEVC符号化のための基本処理ユニットである。CTUは、様々なサイズの複数のコーディングユニット(CU)にスプリットされ得る。CUは、コーディングブロック(CB)と呼ばれるルーマおよびクロマサンプルアレイを含んでいる。
【0052】
[0060]ルーマおよびクロマCBは、予測ブロック(PB)にさらにスプリットされ得る。PBは、(利用可能なとき、または使用のために有効にされたとき)インター予測またはイントラブロックコピー予測のために同じ動きパラメータを使用するルーマ成分またはクロマ成分のサンプルのブロックである。ルーマPBおよび1つまたは複数のクロマPBは、関連するシンタックスとともに、予測ユニット(PU)を形成する。インター予測の場合、動きパラメータのセット(たとえば、1つまたは複数の動きベクトル、参照インデックスなど)は、PUごとにビットストリーム中でシグナリングされ、ルーマPBおよび1つまたは複数のクロマPBのインター予測のために使用される。動きパラメータは動き情報と呼ばれることもある。CBはまた、1つまたは複数の変換ブロック(TB)に区分され得る。TBは、予測残差信号をコーディングするために同じ2次元変換が適用される色成分のサンプルの正方形ブロックを表現する。変換ユニット(TU)は、ルーマおよびクロマサンプルのTBと、対応するシンタックス要素とを表現する。
【0053】
[0061]CUのサイズは、コーディングモードのサイズに対応し、形状が正方形であり得る。たとえば、CUのサイズは、8×8サンプル、16×16サンプル、32×32サンプル、64×64サンプル、または対応するCTUのサイズまでの任意の他の適切なサイズであり得る。「N×N」という句は、本明細書では、垂直寸法および水平寸法に関するビデオブロックのピクセル寸法(たとえば、8ピクセル×8ピクセル)を指すために使用される。ブロック中のピクセルは行および列に配置され得る。いくつかの実施形態では、ブロックは、水平方向において垂直方向と同じ数のピクセルを有するとは限らない。CUに関連するシンタックスデータは、たとえば、1つまたは複数のPUへのCUの区分を記述し得る。区分モードは、CUがイントラ予測モード符号化されるか、それともインター予測モード符号化されるかの間で異なる場合がある。PUは、形状が非正方形に区分され得る。CUに関連付けられるシンタックスデータは、たとえば、CTUに従う1つまたは複数のTUへのCUの区分をも記述し得る。TUは、形状が正方形または非正方形であり得る。
【0054】
[0062]HEVC規格によれば、変換は、変換ユニット(TU)を使用して実施され得る。TUは、異なるCUでは異なり得る。TUは、所与のCU内のPUのサイズに基づいてサイズ決定され得る。TUは、PUと同じサイズであるか、またはPUよりも小さいことがある。いくつかの例では、CUに対応する残差サンプルは、残差4分木(RQT)として知られる4分木構造を使用して、より小さいユニットに再分割され得る。RQTのリーフノードはTUに対応し得る。TUに関連するピクセル差分値は、変換係数を作り出すために変換され得る。変換係数は、次いで、エンコーダエンジン106によって量子化され得る。
【0055】
[0063]ビデオデータのピクチャがCUに区分されると、エンコーダエンジン106は、予測モードを使用して各PUを予測する。予測ユニットまたは予測ブロックは、次いで、(以下で説明される)残差を得るために元のビデオデータから減算される。CUごとに、シンタックスデータを使用してビットストリーム内で予測モードがシグナリングされ得る。予測モードは、イントラ予測(もしくはピクチャ内予測)またはインター予測(もしくはピクチャ間予測)を含み得る。イントラ予測は、ピクチャ内の空間的に隣接するサンプル間の相関を利用する。たとえば、イントラ予測を使用して、各PUは、たとえば、PUに関する平均値を見つけるためのDC予測、平坦面をPUに適合させるための平面予測、隣接データから外挿するための方向予測、または任意の他の好適なタイプの予測を使用して、同じピクチャ中の隣接画像データから予測される。インター予測は、画像サンプルのブロックについての動き補償予測を導出するためにピクチャ間の時間相関を使用する。たとえば、インター予測を使用して、各PUは、(出力順序において現在ピクチャの前または後の)1つまたは複数の参照ピクチャ中の画像データからの動き補償予測を使用して予測される。ピクチャ間予測を使用してピクチャエリアをコーディングすべきなのか、ピクチャ内予測を使用してピクチャエリアをコーディングすべきなのかの決定は、たとえば、CUレベルにおいて行われ得る。
【0056】
[0064]いくつかの例では、ピクチャの1つまたは複数のスライスは、スライスタイプを割り当てられる。スライスタイプは、Iスライスと、Pスライスと、Bスライスとを含む。Iスライス(フレーム内、独立して復号可能)は、イントラ予測によってのみコーディングされるピクチャのスライスであり、したがって、Iスライスは、スライスの任意の予測ユニットまたは予測ブロックを予測するためにフレーム内のデータのみを必要とするので、独立して復号可能である。Pスライス(単方向予測されるフレーム)は、イントラ予測を用いて、および単方向インター予測を用いてコーディングされ得るピクチャのスライスである。Pスライス内の各予測ユニットまたは予測ブロックは、イントラ予測またはインター予測のいずれかを用いてコーディングされる。インター予測が適用されるとき、予測ユニットまたは予測ブロックは、1つの参照ピクチャによってのみ予測され、したがって、参照サンプルは、1つのフレームの1つの参照領域からのみのものである。Bスライス(双方向予測フレーム)は、イントラ予測を用いて、およびインター予測(たとえば、双予測または単予測のいずれか)を用いてコーディングされ得るピクチャのスライスである。Bスライスの予測ユニットまたは予測ブロックは、2つの参照ピクチャから双方向予測され得、ここで、各ピクチャが1つの参照領域を導き、双方向予測されたブロックの予測信号を作り出すために、2つの参照領域のサンプルセットが(たとえば、等しい重みを用いて、または異なる重みを用いて)重み付けされる。上記で説明されたように、1つのピクチャのスライスが独立してコーディングされる。いくつかの場合には、ピクチャは、ただ1つのスライスとしてコーディングされ得る。
【0057】
[0065]上記のように、ピクチャ内予測は、ピクチャ内の空間的に隣接するサンプル間の相関を利用する。ピクチャ間予測は、画像サンプルのブロックについての動き補償予測を導出するためにピクチャ間の時間相関を使用する。並進運動モデルを使用して、前に復号されたピクチャ(参照ピクチャ)中のブロックの位置は、動きベクトル(Δx,Δy)によって示され、Δxは、現在ブロックの位置に対する参照ブロックの水平変位を指定し、Δyはその垂直変位を指定する。いくつかの場合には、動きベクトル(Δx,Δy)は、(整数精度とも呼ばれる)整数サンプル精度であり得、その場合、動きベクトルは、参照フレームの整数ペルグリッド(または整数ピクセルサンプリンググリッド)を指す。いくつかの場合には、動きベクトル(Δx,Δy)は、参照フレームの整数ペルグリッドに制限されることなしに、基礎をなすオブジェクトの移動をより正確にキャプチャするために、(分数ペル精度または非整数精度とも呼ばれる)分数サンプル精度のものであり得る。動きベクトルの精度は、動きベクトルの量子化レベルによって表され得る。たとえば、量子化レベルは、整数精度(たとえば、1ピクセル)または分数ペル精度(たとえば、1/4ピクセル、1/2ピクセル、または他のサブピクセル値)であり得る。対応する動きベクトルが分数サンプル精度を有するとき、予測信号を導出するために、参照ピクチャに補間が適用される。たとえば、整数位置において利用可能なサンプルは、分数位置における値を推定するために、(たとえば、1つまたは複数の補間フィルタを使用して)フィルタ処理され得る。前に復号された参照ピクチャは、参照ピクチャリストへの参照インデックス(refIdx)によって示される。動きベクトルおよび参照インデックスは、動きパラメータと呼ばれることがある。単予測と双予測とを含む、2つの種類のピクチャ間予測が実施され得る。
【0058】
[0066]双予測を使用するインター予測の場合、動きパラメータの2つのセット(Δx0、Δy0、refIdx0、および、Δx1、Δy1、refIdx1)が、(同じ参照ピクチャから、または場合によっては異なる参照ピクチャから)2つの動き補償予測を生成するために使用される。たとえば、双予測の場合、各予測ブロックは、2つの動き補償予測信号を使用し、B予測ユニットを生成する。2つの動き補償予測は、次いで、最終の動き補償予測を得るために組み合わせられる。たとえば、2つの動き補償予測は、平均化によって組み合わせられ得る。別の例では、重み付け予測が使用され得、その場合、異なる重みが、各動き補償予測に適用され得る。双予測において使用され得る参照ピクチャは、リスト0およびリスト1として示される、2つの別個のリストに記憶される。動きパラメータは、動き推定プロセスを使用してエンコーダにおいて導出され得る。
【0059】
[0067]単予測を使用するインター予測の場合、動きパラメータ(Δx0,Δy0,refIdx0)の1つのセットが、参照ピクチャから動き補償予測を生成するために使用される。たとえば、単予測の場合、各予測ブロックは、高々1つの動き補償予測信号を使用し、P予測ユニットを生成する。
【0060】
[0068]PUは、予測プロセスに関係するデータ(たとえば、動きパラメータまたは他の好適なデータ)を含み得る。たとえば、PUがイントラ予測を使用して符号化されるとき、PUは、PUのためのイントラ予測モードを記述するデータを含み得る。別の例として、PUがインター予測を使用して符号化されるとき、PUは、PUのための動きベクトルを定義するデータを含み得る。PUのための動きベクトルを定義するデータは、たとえば、動きベクトルの水平成分(Δx)、動きベクトルの垂直成分(Δy)、動きベクトルの解像度(たとえば、整数精度、1/4ピクセル精度、または1/8ピクセル精度)、動きベクトルが指す参照ピクチャ、参照インデックス、動きベクトルのための参照ピクチャリスト(たとえば、リスト0、リスト1、またはリストC)、またはそれらの任意の組合せを記述し得る。
【0061】
[0069]符号化デバイス104は、次いで、変換および量子化を実施し得る。たとえば、予測の後に、エンコーダエンジン106は、PUに対応する残差値を計算し得る。残差値は、コーディングされているピクセルの現在ブロック(PU)と、現在ブロックを予測するために使用される予測ブロック(たとえば、現在ブロックの予測されたバージョン)との間のピクセル差分値を備え得る。たとえば、(たとえば、インター予測またはイントラ予測を使用して)予測ブロックを生成した後に、エンコーダエンジン106は、現在ブロックから、予測ユニットによって作り出された予測ブロックを減算することによって、残差ブロックを生成することができる。残差ブロックは、現在ブロックのピクセル値と予測ブロックのピクセル値との間の差分を定量化するピクセル差分値のセットを含む。いくつかの例では、残差ブロックは、2次元ブロックフォーマット(たとえば、ピクセル値の2次元行列またはアレイ)で表され得る。そのような例では、残差ブロックはピクセル値の2次元表現である。
【0062】
[0070]予測が実施された後に残存し得るいずれの残差データも、離散コサイン変換、離散サイン変換、整数変換、ウェーブレット変換、他の好適な変換関数、またはそれらの任意の組合せに基づき得るブロック変換を使用して変換される。いくつかの場合には、1つまたは複数のブロック変換(たとえば、サイズ32×32、16×16、8×8、4×4、または他の好適なサイズ)が各CUにおける残差データに適用され得る。いくつかの実施形態では、エンコーダエンジン106によって実装される変換および量子化プロセスのためにTUが使用され得る。1つまたは複数のPUを有する所与のCUは、1つまたは複数のTUをも含み得る。以下でさらに詳細に説明されるように、残差値は、ブロック変換を使用して変換係数に変換され得、次いで、エントロピーコーディングのためのシリアル化変換係数を作り出すために、TUを使用して量子化および走査され得る。
【0063】
[0071]いくつかの実施形態では、CUのPUを使用したイントラ予測コーディングまたはインター予測コーディングの後に、エンコーダエンジン106は、CUのTUのための残差データを計算し得る。PUは、空間領域(またはピクセル領域)においてピクセルデータを備え得る。TUは、ブロック変換の適用の後に変換領域において係数を備え得る。前記のように、残差データは、符号化されていないピクチャのピクセルとPUに対応する予測値との間のピクセル差分値に対応し得る。エンコーダエンジン106は、CUのための残差データを含むTUを形成し得、次いで、CUのための変換係数を作り出すためにTUを変換し得る。
【0064】
[0072]エンコーダエンジン106は、変換係数の量子化を実施し得る。量子化は、係数を表すために使用されるデータの量を低減するために変換係数を量子化することによって、さらなる圧縮を与える。たとえば、量子化は、係数の一部または全部に関連するビット深度を低減し得る。一例では、nビット値をもつ係数は、量子化中にmビット値に切り捨てられ得、nはmよりも大きい。
【0065】
[0073]量子化が実施されると、コード化ビデオビットストリームは、量子化変換係数と、予測情報(たとえば、予測モード、動きベクトル、ブロックベクトルなど)と、区分情報と、他のシンタックスデータなどの任意の他の好適なデータとを含む。コード化ビデオビットストリームの異なる要素は、次いで、エンコーダエンジン106によってエントロピー符号化され得る。いくつかの例では、エンコーダエンジン106は、エントロピー符号化され得るシリアル化ベクトルを作り出すために、量子化変換係数を走査するためにあらかじめ定義された走査順序を利用し得る。いくつかの例では、エンコーダエンジン106は適応型走査を実施し得る。ベクトル(たとえば、1次元ベクトル)を形成するために量子化変換係数を走査した後に、エンコーダエンジン106は、ベクトルをエントロピー符号化し得る。たとえば、エンコーダエンジン106は、コンテキスト適応型可変長コーディング、コンテキスト適応型バイナリ算術コーディング、シンタックスベースコンテキスト適応型バイナリ算術コーディング、確率間隔区分エントロピーコーディング、または別の好適なエントロピー符号化技法を使用し得る。
【0066】
[0074]符号化デバイス104の出力部110は、通信リンク120を介して受信デバイスの復号デバイス112に、符号化ビデオビットストリームデータを構成するNALユニットを送り得る。復号デバイス112の入力部114はNALユニットを受信し得る。通信リンク120は、ワイヤレスネットワーク、ワイヤードネットワーク、またはワイヤードネットワークとワイヤレスネットワークとの組合せによって与えられるチャネルを含み得る。ワイヤレスネットワークは、任意のワイヤレスインターフェースまたはワイヤレスインターフェースの組合せを含み得、任意の好適なワイヤレスネットワーク(たとえば、インターネットまたは他のワイドエリアネットワーク、パケットベースネットワーク、WiFi(登録商標)、無線周波数(RF)、UWB、WiFi-Direct、セルラー、ロングタームエボリューション(LTE(登録商標))、WiMax(登録商標)など)を含み得る。ワイヤードネットワークは、任意のワイヤードインターフェース(たとえば、ファイバー、イーサネット(登録商標)、電力線イーサネット、同軸ケーブルを介したイーサネット、デジタル信号線(DSL)など)を含み得る。ワイヤードおよび/またはワイヤレスネットワークは、基地局、ルータ、アクセスポイント、ブリッジ、ゲートウェイ、スイッチなど、様々な機器を使用して実装され得る。符号化ビデオビットストリームデータは、ワイヤレス通信プロトコルなどの通信規格に従って変調され、受信デバイスに送信され得る。
【0067】
[0075]いくつかの例では、符号化デバイス104は、符号化ビデオビットストリームデータを記憶装置108に記憶し得る。出力部110は、エンコーダエンジン106から、または記憶装置108から符号化ビデオビットストリームデータを取り出し得る。記憶装置108は、様々な分散されたまたはローカルにアクセスされるデータ記憶媒体のいずれかを含み得る。たとえば、記憶装置108は、ハードドライブ、記憶ディスク、フラッシュメモリ、揮発性もしくは不揮発性メモリ、または符号化ビデオデータを記憶するための任意の他の好適なデジタル記憶媒体を含み得る。
【0068】
[0076]復号デバイス112の入力部114は、符号化ビデオビットストリームデータを受信し、ビデオビットストリームデータをデコーダエンジン116に、またはデコーダエンジン116による後の使用のために記憶装置118に与え得る。デコーダエンジン116は、(たとえば、エントロピーデコーダを使用して)エントロピー復号し、符号化ビデオデータを構成する1つまたは複数のコード化ビデオシーケンスの要素を抽出することによって、符号化ビデオビットストリームデータを復号し得る。デコーダエンジン116は、次いで、符号化ビデオビットストリームデータを再スケーリングし、符号化ビデオビットストリームデータに対して逆変換を実施し得る。残差データが、次いで、デコーダエンジン116の予測段階にパスされる。デコーダエンジン116は、次いで、ピクセルのブロック(たとえば、PU)を予測する。いくつかの例では、逆変換の出力(残差データ)に予測が加算される。
【0069】
[0077]復号デバイス112は、復号ビデオをビデオ宛先デバイス122に出力し得、ビデオ宛先デバイス122は、復号ビデオデータをコンテンツの消費者に表示するためのディスプレイまたは他の出力デバイスを含み得る。いくつかの態様では、ビデオ宛先デバイス122は、復号デバイス112を含む受信デバイスの一部であり得る。いくつかの態様では、ビデオ宛先デバイス122は、受信デバイス以外の別個のデバイスの一部であり得る。
【0070】
[0078]いくつかの実施形態では、ビデオ符号化デバイス104および/またはビデオ復号デバイス112は、それぞれオーディオ符号化デバイスおよびオーディオ復号デバイスと統合され得る。ビデオ符号化デバイス104および/またはビデオ復号デバイス112はまた、1つもしくは複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ディスクリート論理、ソフトウェア、ハードウェア、ファームウェア、またはそれらの任意の組合せなど、上記で説明されたコーディング技法を実装するために必要である他のハードウェアまたはソフトウェアを含み得る。ビデオ符号化デバイス104およびビデオ復号デバイス112は、それぞれのデバイスにおいて複合エンコーダ/デコーダ(コーデック)の一部として統合され得る。符号化デバイス104の具体的な詳細の一例は、図7を参照しながら以下で説明される。復号デバイス112の具体的な詳細の一例は、図8を参照しながら以下で説明される。
【0071】
[0079]HEVC規格に対する拡張は、MV-HEVCと呼ばれるマルチビュービデオコーディング拡張と、SHVCと呼ばれるスケーラブルビデオコーディング拡張とを含む。MV-HEVC拡張およびSHVC拡張は、階層化コーディングの概念を共有し、異なるレイヤが符号化ビデオビットストリーム中に含まれる。コード化ビデオシーケンス中の各レイヤは、一意のレイヤ識別子(ID)によってアドレス指定される。レイヤIDは、NALユニットがそれに関連するレイヤを識別するために、NALユニットのヘッダ中に存在し得る。MV-HEVCでは、異なるレイヤは、ビデオビットストリーム中の同じシーンの異なるビューを表すことができる。SHVCでは、異なる空間解像度(またはピクチャ解像度)で、または異なる再構築忠実度でビデオビットストリームを表す異なるスケーラブルレイヤが与えられる。スケーラブルレイヤは、(レイヤID=0である)ベースレイヤと(レイヤID=1、2、...nである)1つまたは複数のエンハンスメントレイヤとを含み得る。ベースレイヤは、HEVCの第1のバージョンのプロファイルに適合し得、ビットストリーム中の利用可能な最下位レイヤを表す。エンハンスメントレイヤは、ベースレイヤと比較して、増加された空間解像度、時間解像度もしくはフレームレート、および/または再構築忠実度(もしくは品質)を有する。エンハンスメントレイヤは、階層的に編成されており、下位レイヤに依存すること(または依存しないこと)がある。いくつかの例では、単一規格コーデックを使用して、異なるレイヤがコーディングされ得る(たとえば、HEVC、SHVC、または他のコーディング規格を使用して、すべてのレイヤが符号化される)。いくつかの例では、多規格コーデックを使用して、異なるレイヤがコーディングされ得る。たとえば、ベースレイヤは、AVCを使用してコーディングされ得るが、1つまたは複数のエンハンスメントレイヤは、HEVC規格に対するSHVC拡張および/またはMV-HEVC拡張を使用してコーディングされ得る。
【0072】
[0080]概して、レイヤは、VCL NALユニットのセットと非VCL NALユニットの対応するセットとを含む。NALユニットは、特定のレイヤID値を割り当てられる。レイヤは、レイヤが下位レイヤに依存することがあるという意味で、階層的であり得る。レイヤセットは、自己完結型であるビットストリーム内で表されるレイヤのセットを指し、これは、レイヤセット内のレイヤが、復号プロセスにおいてレイヤセット中の他のレイヤに依存し得るが、復号のために任意の他のレイヤに依存しないことを意味する。したがって、レイヤセット中のレイヤは、ビデオコンテンツを表すことができる独立したビットストリームを形成することができる。レイヤセット中のレイヤのセットは、サブビットストリーム抽出プロセスの動作によって別のビットストリームから取得され得る。レイヤセットは、いくつかのパラメータに従ってデコーダが動作することを希望するときに復号されることになるレイヤのセットに対応し得る。
【0073】
[0081]前に説明されたように、HEVCビットストリームは、VCL NALユニットと非VCL NALユニットとを含む、NALユニットのグループを含む。VCL NALユニットは、コード化ビデオビットストリームを形成するコード化ピクチャデータを含む。たとえば、コード化ビデオビットストリームを形成するビットのシーケンスは、VCL NALユニット中に存在する。非VCL NALユニットは、他の情報に加えて、符号化ビデオビットストリームに関係する高レベル情報をもつパラメータセットを含んでいることがある。たとえば、パラメータセットは、ビデオパラメータセット(VPS)と、シーケンスパラメータセット(SPS)と、ピクチャパラメータセット(PPS)とを含み得る。パラメータセットの目標の例は、ビットレート効率と、エラーレジリエンシーと、システムレイヤインターフェースを与えることとを含む。各スライスは、復号デバイス112がそのスライスを復号するために使用し得る情報にアクセスするために、単一のアクティブなPPS、SPS、およびVPSを参照する。VPS識別子(ID)と、SPS IDと、PPS IDとを含むIDが、パラメータセットごとにコーディングされ得る。SPSは、SPS IDとVPS IDとを含む。PPSは、PPS IDとSPS IDとを含む。各スライスヘッダはPPS IDを含む。IDを使用して、アクティブなパラメータセットが所与のスライスについて識別され得る。
【0074】
[0082]PPSは、所与のピクチャ中のすべてのスライスに適用される情報を含む。このため、ピクチャ中のすべてのスライスは、同じPPSを指す。異なるピクチャ中のスライスも、同じPPSを指すことがある。SPSは、同じコード化ビデオシーケンス(CVS)またはビットストリーム中のすべてのピクチャに適用される情報を含む。前に説明されたように、コード化ビデオシーケンスは、(上記で説明された)ベースレイヤ中の、いくつかのプロパティをもつランダムアクセスポイントピクチャ(たとえば、瞬時復号参照(IDR:instantaneous decode reference)ピクチャもしくは切断リンクアクセス(BLA:broken link access)ピクチャ)、または他の適切なランダムアクセスポイントピクチャ)で開始し、ベースレイヤ中の、いくつかのプロパティをもつランダムアクセスポイントピクチャを有する次のアクセスユニット(AU)までの、次のAU(またはビットストリームの終端)を含まない、一連のAUである。SPS中の情報は、コード化ビデオシーケンス内でピクチャごとに変化しないことがある。コード化ビデオシーケンス中のピクチャは、同じSPSを使用し得る。VPSは、コード化ビデオシーケンスまたはビットストリーム内のすべてのレイヤに適用される情報を含む。VPSは、コード化ビデオシーケンス全体に適用されるシンタックス要素をもつシンタックス構造を含む。いくつかの実施形態では、VPS、SPS、またはPPSは、符号化ビットストリームとともに帯域内で送信され得る。いくつかの実施形態では、VPS、SPS、またはPPSは、コード化ビデオデータを含んでいるNALユニットとは別個の送信において帯域外で送信され得る。
【0075】
[0083]ビデオビットストリームは、補足エンハンスメント情報(SEI)メッセージをも含むことができる。たとえば、SEI NALユニットはビデオビットストリームの一部であり得る。いくつかの場合には、SEIメッセージは、復号プロセスによって必要とされない情報を含んでいることがある。たとえば、SEIメッセージ中の情報は、ビットストリームのビデオピクチャを復号するためのデコーダにとって必須でないことがあるが、デコーダは、ピクチャの表示または処理(たとえば、復号された出力)を改善するためにその情報を使用であることができる。SEIメッセージ中の情報は埋込みメタデータであり得る。1つの例示的な例では、SEIメッセージ中の情報は、コンテンツの視認性を改善するためにデコーダ側エンティティによって使用され得る。いくつかの事例では、いくつかの適用例規格は、適用例規格に準拠するすべてのデバイスに品質の改善がもたらされ得るように、ビットストリーム中のそのようなSEIメッセージの存在(たとえば、多くの他の例に加えて、フレームパッキングSEIメッセージがビデオのあらゆるフレームのために搬送される、フレーム互換平面立体視3DTVビデオフォーマットのためのフレームパッキングSEIメッセージの搬送、リカバリポイントSEIメッセージの処理、DVBにおけるパンスキャンスキャン矩形SEIメッセージの使用)を規定し得る。
【0076】
[0084]いくつかの実施形態では、ビデオ符号化デバイス104および/またはビデオ復号デバイス112は、それぞれオーディオ符号化デバイスおよびオーディオ復号デバイスと統合され得る。ビデオ符号化デバイス104および/またはビデオ復号デバイス112はまた、1つもしくは複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ディスクリート論理、ソフトウェア、ハードウェア、ファームウェア、またはそれらの任意の組合せなど、上記で説明されたコーディング技法を実装するために必要である他のハードウェアまたはソフトウェアを含み得る。ビデオ符号化デバイス104およびビデオ復号デバイス112は、それぞれのデバイスにおいて複合エンコーダ/デコーダ(コーデック)の一部として統合され得る。符号化デバイス104の具体的な詳細の一例は、図7を参照しながら以下で説明される。復号デバイス112の具体的な詳細の一例は、図8を参照しながら以下で説明される。
【0077】
[0085]図1に示されている例示的なシステムは、本明細書で使用され得る1つの例示的な例である。本明細書で説明される技法を使用してビデオデータを処理するための技法は、任意のデジタルビデオ符号化および/または復号デバイスによって実施され得る。概して、本開示の技法はビデオ符号化デバイスまたはビデオ復号デバイスによって実施されるが、本技法は、一般に「コーデック」と呼ばれる複合ビデオエンコーダ/デコーダによっても実施され得る。さらに、本開示の技法はまた、ビデオプリプロセッサによって実施され得る。ソースデバイスおよび受信デバイスは、ソースデバイスが受信デバイスに送信するためのコード化ビデオデータを生成するような、コーディングデバイスの例にすぎない。いくつかの例では、ソースデバイスおよび受信デバイスは、デバイスの各々がビデオ符号化構成要素とビデオ復号構成要素とを含むように、実質的に対称的に動作し得る。したがって、例示的なシステムは、たとえば、ビデオストリーミング、ビデオ再生、ビデオブロードキャスティング、またはビデオテレフォニーのための、ビデオデバイス間の一方向または双方向のビデオ送信をサポートし得る。
【0078】
[0086]上記で説明したように、各ブロックについて、(本明細書では動きパラメータとも呼ばれる)動き情報のセットが利用可能であり得る。動き情報のセットは、前方予測方向および後方予測方向のための動き情報を含んでいる。前方予測方向および後方予測方向は、双方向予測モードの2つの予測方向であり、その場合、「前方」および「後方」という用語は、必ずしも幾何学的意味を有するとは限らない。代わりに、「前方」および「後方」は、現在ピクチャの参照ピクチャリスト0(RefPicList0またはL0)および参照ピクチャリスト1(RefPicList1またはL1)に対応する。いくつかの例では、ピクチャまたはスライスについて1つの参照ピクチャリストのみが利用可能であるとき、RefPicList0のみが利用可能であり、スライスの各ブロックの動き情報は常に前方である。
【0079】
[0087]いくつかの場合には、動きベクトルが、その参照インデックスとともに、コーディングプロセス(たとえば、動き補償)において使用される。関連する参照インデックスをもつそのような動きベクトルは、動き情報の単予測セットとして示される。各予測方向について、動き情報は、参照インデックスと動きベクトルとを含んでいることがある。いくつかの場合には、簡単のために、動きベクトル自体は、それが、関連する参照インデックスを有すると仮定されるように言及され得る。参照インデックスは、現在参照ピクチャリスト(RefPicList0またはRefPicList1)中の参照ピクチャを識別するために使用される。動きベクトルは、現在ピクチャにおける座標位置から、参照インデックスによって識別される参照ピクチャにおける座標へのオフセットを与える水平成分と垂直成分とを有する。たとえば、参照インデックスは、現在ピクチャ中のブロックのために使用されるべきである特定の参照ピクチャを示すことができ、動きベクトルは、参照ピクチャ中で、最も良く一致したブロック(現在ブロックに最も良く一致するブロック)が参照ピクチャ中のどこにあるかを示すことができる。
【0080】
[0088]ビデオコーディング規格において、ピクチャの表示順序を識別するためにピクチャ順序カウント(POC)が使用され得る。1つのコード化ビデオシーケンス内の2つのピクチャが同じPOC値を有し得る場合があるが、一般に、それはコード化ビデオシーケンス内で起こらない。複数のコード化ビデオシーケンスがビットストリーム中に存在するとき、POCの同じ値をもつピクチャは、復号順序に関して互いに近いことがある。ピクチャのPOC値は、参照ピクチャリスト構築と、HEVCの場合のような参照ピクチャセットの導出と、動きベクトルスケーリングとのために使用され得る。
【0081】
[0089]H.264/AVCでは、各インターマクロブロック(MB)は、1つの16×16MB区分と、2つの16×8MB区分と、2つの8×16MB区分と、4つの8×8MB区分とを含む、4つの異なる方法で区分され得る。1つのMB中の異なるMB区分は、各方向について異なる参照インデックス値(RefPicList0またはRefPicList1)を有し得る。場合によっては、MBが4つの8×8MB区分へと区分されないとき、MBは、各MB区分について各方向に1つの動きベクトルしか有することができない。場合によっては、MBが4つの8×8MB区分へと区分されるとき、各8×8MB区分は、サブブロックにさらに区分され得、その場合、各サブブロックは、各方向に異なる動きベクトルを有することができる。いくつかの例では、1つの8×8サブブロックと、2つの8×4サブブロックと、2つの4×8サブブロックと、4つの4×4サブブロックとを含むサブブロックを8×8MBの区分から得るために、4つの異なる方法がある。各サブブロックは、各方向に異なる動きベクトルを有することができる。したがって、動きベクトルは、サブブロックよりも高いに等しいレベルにおいて存在する。
【0082】
[0090]AVCでは、時間直接モードは、Bスライス中のスキップおよび/または直接モードについてMBレベルまたはMB区分レベルのいずれかにおいて有効にされ得る。各MB区分について、動きベクトルを導出するために、現在のブロックのRefPicList1[0]中の現在のMB区分とコロケートされるブロックの動きベクトルが使用される。コロケートされたブロック中の各動きベクトルは、POC距離に基づいてスケーリングされる。
【0083】
[0091]空間直接モードはまた、AVCで実施され得る。たとえば、AVCでは、直接モードはまた、空間ネイバーから動き情報を予測することができる。
【0084】
[0092]HEVCでは、スライス中の最大コーディングユニットはコーディングツリーブロック(CTB)と呼ばれる。CTBは4分木を含んでおり、そのノードはコーディングユニットである。CTBのサイズは、HEVCメインプロファイルにおいて16×16から64×64にわたることができる。場合によっては、8×8のCTBサイズがサポートされ得る。コーディングユニット(CU)は、CTBの同じサイズであり、8×8程度に小さくなり得る。場合によっては、各コーディングユニットは1つのモードでコーディングされる。CUがインターコーディングされるとき、CUは、2つもしくは4つの予測ユニット(PU)にさらに区分され得るか、または、さらなる区分が適用されないとき、ただ1つのPUになり得る。1つのCUの中に2つのPUが存在するとき、それらは半分のサイズの長方形、またはCUの1/4もしくは3/4のサイズを有する2つの長方形であり得る。
【0085】
[0093]CUがインターコーディングされるとき、PUごとに動き情報の1つのセットが存在する。さらに、各PUは、動き情報のセットを導出するために一意のインター予測モードでコーディングされる。
【0086】
[0094]HEVCにおける動き予測の場合、予測ユニット(PU)のためのマージモードと高度動きベクトル予測(AMVP)モードとを含む、2つのインター予測モードがある。スキップは、マージの特殊な場合と見なされる。AMVPモードまたはマージモードのいずれかでは、動きベクトル(MV)候補リストが、複数の動きベクトル予測子について維持される。現在のPUの、動きベクトル、ならびにマージモードにおける参照インデックスは、MV候補リストから1つの候補をとることによって生成される。いくつかの例では、以下で説明されるように、1つまたは複数の記憶された局所照明補償(LIC)フラグが、MV候補リスト中に記憶された動きベクトルとともに含まれ得る。
【0087】
[0095]MV候補リストがブロックの動き予測(および適用可能な場合、照明補償)のために使用される例では、MV候補リストは、符号化デバイスと復号デバイスとによって別個に構築され得る。たとえば、MV候補リストは、ブロックを符号化するときに符号化デバイスによって生成され得、ブロックを復号するときに復号デバイスによって生成され得る。MV候補リスト中の動き情報候補に関係する情報(たとえば、1つもしくは複数の動きベクトルに関係する情報、場合によってはMV候補リスト中に記憶され得る1つもしくは複数のLICフラグに関係する情報、および/または他の情報)は、符号化デバイスと復号デバイスとの間でシグナリングされ得る。たとえば、マージモードでは、記憶された動き情報候補へのインデックス値が、(たとえば、ピクチャパラメータセット(PPS)、シーケンスパラメータセット(SPS)、ビデオパラメータセット(VPS)などのシンタックス構造、スライスヘッダ、ビデオビットストリーム中でもしくはビデオビットストリームとは別個に送られる補足エンハンスメント情報(SEI)メッセージ、および/または他のシグナリング中で)符号化デバイスから復号デバイスにシグナリングされ得る。復号デバイスは、MV候補リストを構築し、動き補償予測のために使用するために、構築されたMV候補リストから1つまたは複数の動き情報候補を取得するために、シグナリングされた参照またはインデックスを使用することができる。たとえば、復号デバイス112は、MV候補リストを構築し、ブロックの動き予測のために、インデックス付けされたロケーションからの動きベクトル(および、場合によっては、LICフラグ)を使用し得る。AMVPモードの場合、参照またはインデックスに加えて、差分または残差値もデルタとしてシグナリングされ得る。たとえば、AMVPモードの場合、復号デバイスは、1つまたは複数のMV候補リストを構築し、ブロックの動き補償予測を実施する際に、シグナリングされたインデックス値を使用して取得された1つまたは複数の動き情報候補に、デルタ値を適用することができる。
【0088】
[0096]いくつかの例では、MV候補リストは、マージモードのための最高5つの候補とAMVPモードのための2つの候補とを含んでいる。他の例では、異なる数の候補が、マージモードおよび/またはAMVPモードのためのMV候補リスト中に含まれ得る。マージ候補は、動き情報のセットを含んでいることがある。たとえば、動き情報のセットは、両方の参照ピクチャリスト(リスト0およびリスト1)に対応する動きベクトルと、参照インデックスとを含むことができる。マージ候補がマージインデックスによって識別される場合、現在ブロックの予測のために参照ピクチャが使用され、ならびに関連する動きベクトルが決定される。しかしながら、リスト0またはリスト1のいずれかからの各々の潜在的な予測方向に対するAMVPモードのもとでは、AMVP候補が動きベクトルのみを含んでいるので、MVPインデックスとともに参照インデックスがMV候補リストに明示的にシグナリングされる必要がある。AMVPモードでは、予測される動きベクトルはさらに改良され得る。
【0089】
[0097]上記でわかるように、マージ候補は動き情報のフルセットに対応し、AMVP候補は、特定の予測方向および参照インデックスのためのただ1つの動きベクトルを含んでいる。両方のモードのための候補は、同じ空間および時間隣接ブロックから同様に導出される。
【0090】
[0098]いくつかの例では、マージモードは、インター予測PUが、空間的に隣接する動きデータ位置と2つの時間的にコロケートされた動きデータ位置のうちの1つとのグループから選択される動きデータ位置を含むインター予測PUから、1つまたは複数の同じ動きベクトルと、予測方向と、1つまたは複数の参照ピクチャインデックスとを継承することを可能にする。AMVPモードの場合、PUの1つまたは複数の動きベクトルは、エンコーダおよび/またはデコーダによって構築されたAMVP候補リストからの1つまたは複数の動きベクトル予測子(MVP)に対して叙述的にコーディングされ得る。いくつかの事例では、PUの単一方向インター予測の場合、エンコーダおよび/またはデコーダは、単一のAMVP候補リストを生成することができる。いくつかの事例では、PUの双方向予測の場合、エンコーダおよび/またはデコーダは、1つが前方予測方向からの空間および時間隣接PUの動きデータを使用し、1つが後方予測方向からの空間および時間隣接PUの動きデータを使用する、2つのAMVP候補リストを生成することができる。
【0091】
[0099]両方のモードのための候補は、空間および/または時間隣接ブロックから導出され得る。たとえば、図2Aおよび図2Bは、HEVCにおける空間隣接候補を示す概念図を含む。
【0092】
[0100]図2Aは、マージモードのための空間隣接動きベクトル(MV)候補を示す。図2Bは、AMVPモードのための空間隣接動きベクトル(MV)候補を示す。空間MV候補は、特定のPU(PU0)について、隣接ブロックから導出されるが、ブロックから候補を生成する方法は、マージモードおよびAMVPモードについて異なる。
【0093】
[0101]マージモードでは、エンコーダおよび/またはデコーダは、様々な動きデータ位置からマージング候補を考慮することによって、マージング候補リストを形成することができる。たとえば、図2Aに示されているように、最高4つの空間MV候補が、図2Aにおいて番号0~4で示されている空間的に隣接する動きデータ位置に関して導出され得る。MV候補は、番号0~4によって示されている順序で、マージング候補リスト中で順序付けられ得る。たとえば、位置および順序は、左位置(0)と、上位置(1)と、右上位置(2)と、左下位置(3)と、左上位置(4)とを含むことができる。
【0094】
[0102]図2Bに示されているAVMPモードでは、隣接ブロックは、2つのグループ、すなわち、ブロック0および1を含む左グループと、ブロック2、3、および4を含む上グループとに分割される。各グループについて、シグナリングされた参照インデックスによって示された参照ピクチャと同じ参照ピクチャを参照する隣接ブロック中の潜在的候補は、グループの最終候補を形成するために選定されるべき最高優先度を有する。すべての隣接ブロックが、同じ参照ピクチャを指す動きベクトルを含んでいるとは限らない可能性がある。したがって、そのような候補が見つけられ得ない場合、第1の利用可能な候補は、最終候補を形成するためにスケーリングされることになり、したがって、時間距離差分が補償され得る。
【0095】
[0103]本明細書で説明されるいくつかの例は、上記のように、適応動きベクトル解像度(AMVR)モードを使用することができる。AMVRは、画像処理中に動きベクトルの範囲または解像度を適応的に調整することを指す。AMVRの使用により、動きベクトル差のコーディングにおける異なるレベルの精度が可能になり、これは、改善されたコーディング効率を可能にし、分数サンプルユニット(たとえば、任意の解像度レベルにおけるハーフペルまたは他のそのような分数サンプル)の使用を伴うことができる。いくつかの実装形態では、均一な分数サンプルユニット、整数サンプルユニットなどが、範囲全体で使用され得るか、またはサンプルユニットの範囲が領域に従って適応的に設定され得る。前者は、線形AMVRと呼ばれることがあり、後者は、非線形AMVRと呼ばれることがある。AMVRモードの使用は、現在の画像の動き補償処理において使用するための(たとえば、ビデオビットストリーム中でシンタックス要素を使用した)フィルタインデックス値の明示的なシグナリングをさらに伴うことができる。
【0096】
[0104]上記で説明されたコンテキストでは、参照ピクチャリサンプリング(RPR)は、符号化または復号されている現在のピクチャのピクチャサイズとは異なるピクチャサイズをもつ参照ピクチャを使用可能にするために使用され得るリサンプリングプロセスである。参照ピクチャが、現在のピクチャとは異なるサイズを有するとき、ピクチャリサンプリングプロセスは、他のピクチャのサイズに一致するためにピクチャのうちの1つのアップサンプリングまたはダウンサンプリングバージョン(たとえば、現在のピクチャサイズに一致するために参照ピクチャをアップサンプリングまたはダウンサンプリングすること)を与えるために呼び出され得る。このリサンプリングは、いくつかの例では、H.265/HEVC規格のスケーラブル拡張(SHVC)において使用される空間スケーラビリティのための動作と同様であり得る。RPRプロセスは、異なるサイズを有する単一のレイヤのピクチャに適用され得、および/または異なるサイズを有する異なるレイヤのピクチャに適用され得る。異なるレイヤから異なるサイズのピクチャにRPRを適用することの例示的な例について、図3に関して以下で説明する。
【0097】
[0105]図3は、異なるスケーリング値(たとえば、異なるサイズ)にあるシステム中のピクチャデータの態様を示す図である。ピクチャまたはピクチャのためのデータ(たとえば、アクセスユニット)は、レイヤ中に構造化され得る。各レイヤは、異なるサイズ(たとえば、解像度)をもつピクチャフレームのためのものであり得る。図3に示される1つのそのような例は、2つのレイヤを含み、他の様々な例は、他の数のレイヤ(たとえば、3つのレイヤ、4つのレイヤなど)を使用することができる。上記のように、単一のレイヤ内のピクチャは、異なるサイズを有することができ、その場合、RPRプロセスが実施され得る。図3の例では、3つのピクチャのためのデータが示されており、各ピクチャは、2つの異なるピクチャサイズに関連付けられる。第1のピクチャは、第1のピクチャサイズにおいてレイヤ1ユニット314に関連付けられ、第2のピクチャサイズにおいてレイヤ0ユニット312に関連付けられる。同様に、第2のピクチャは、第1のピクチャサイズにおいてレイヤ1ユニット324に関連付けられ、第2のピクチャサイズにおいてレイヤ0ユニット322に関連付けられ、第3のピクチャは、第1のピクチャサイズにおいてレイヤ1ユニット334に関連付けられ、第2のピクチャサイズにおいてレイヤ0ユニット332に関連付けられる。シグナリング中に、参照ピクチャリストは、現在のピクチャを処理する際に使用するための参照ピクチャを識別するために構築され得る。いくつかの例では、(たとえば、第1の解像度にある)1つのレイヤからのピクチャが、(たとえば、第2の解像度にある)第2のレイヤにおける現在のピクチャのための参照ピクチャとして使用され得る。別の例では、単一のレイヤは、上記のように、異なるサイズのピクチャを有し得る。
【0098】
[0106]RPRでは、異なるサイズのピクチャ(またはピクチャのブロック)(たとえば、単一のレイヤからのピクチャまたは異なるレイヤからのピクチャ)が、現在のピクチャのブロックのための参照ピクチャとして使用され得る。そのような参照ピクチャは、(たとえば、図8のフィルタユニット91などのフィルタユニットのための図8のピクチャメモリ92などのメモリまたは参照ピクチャ記憶装置を使用して)復号ピクチャバッファ(DPB)中に記憶され得る。参照ピクチャサンプリングツールが、現在のピクチャを処理するための参照ピクチャから必要な参照データを生成するために使用され得る。いくつかの例では、この参照ピクチャサンプリングツールは、フィルタユニット(たとえば、図8のフィルタユニット91)の一部であり得、または他の例では、本明細書で説明される符号化または復号のためのデバイスの任意の態様の一部であり得る。
【0099】
[0107]図4は、本明細書で説明される例による、参照ピクチャリサンプリングのさらなる態様を示す図である。図4は、参照ピクチャ410と現在のピクチャ420とを含む。参照ピクチャ410は、第1の水平グリッド間隔414と第1の垂直グリッド間隔412とを有する。現在のピクチャ420は、第1の水平グリッド間隔414とは異なる第2の水平グリッド間隔424を有する。現在のピクチャはまた、第1の垂直グリッド間隔412とは異なる第2の垂直グリッド間隔422を有する。第1のグリッド間隔412および414は、たとえば、第1のレイヤに関連付けられ得、第2のグリッド間隔422および424は、第2のレイヤに関連付けられ得る。参照ピクチャ410は、ビデオストリーム中の第2のレイヤからの現在のピクチャ420と連続する第1のレイヤピクチャであり得、参照ピクチャ410は、予測動作の一部として現在のピクチャ420のための参照ピクチャとして選択される。
【0100】
[0108]参照ピクチャ410と現在のピクチャ420とはそれぞれ、参照ピクチャ410のピクセル418および419と現在のピクチャ420のピクセル428とを含むピクセルのグリッドを含む。各ピクセルは、ピクセルの赤色、緑色、および青色の部分の色値などの関連データを有することができる。各色は、各ピクセルにおいてデータ値を有することになる。各ピクチャのための各ピクセルは、ピクチャのためのグリッド中の整数位置(たとえば、サイズまたはスケーリング値)に関連付けられ得る。1つのピクセルから別のピクセルを直接指す標準動きベクトル430は、ピクセルの整数位置を使用することができる。しかしながら、分数精度によって、上記で説明されたように、動きベクトル430がピクセル間を指すことが可能になり得る。ハーフペル精度によって、たとえば、動きベクトル430が、ピクセル419と418との間の中程(half way)を指すことが可能になる可能性がある。クォーターペル精度によって、動きベクトル430が、ピクセル間の3つの異なる位置(たとえば、1/4、1/2、および3/4)を指すこと、ならびにピクセルの整数位置を直接指すことが可能になる。
【0101】
[0109]AMVRによって、上記で説明されたように、動きベクトルプリセッション(precession、歳差運動)を異なる分数精度レベルに適応的に設定することが可能になる。AMVRモードを使用する画像処理が実装されるとき、MV精度は、(たとえば、MVが、分数精度なしで、グリッド間隔412、414、422、および424についてのみグリッドポイントにある)整数ペル精度で、または(たとえば、MVが、グリッド間隔412、414、422、および424について分数精度レベルでグリッドポイント間を指すことを可能にする)実装されるAMVRモードによってサポートされる任意の分数精度レベルで適応的に選択され得る。システムが解像度のレベル(たとえば、グリッド間隔レベルの整数解像度またはグリッド間隔間の精度のための分数解像度)を適応的に決定することを可能にすることは、改善されたコーディング効率を可能にする。この改善されたコーディング効率は、本明細書の様々な例について説明するように、シグナリングのために、現在のピクチャのためのフィルタインデックスをさらに明示的に示すことができる追加のシンタックス要素を使用することができる。
【0102】
[0110](たとえば、分数精度を使用した動きベクトルからの)イントラピクセルデータを含む予想される動きまたは他の変化を与えられるピクセル位置における(たとえば、赤色、緑色、および青色のための)データ値を選択するために補間が使用される。処理(たとえば、復号または符号化)中に、各ピクセルに対してまたは各ピクセルの各サンプル(たとえば、ルーマサンプルおよび/もしくはクロマサンプル)に対して処理が実施される。補間とRPRによる任意のリサンプリング補償とを含むフィルタ処理が、ビデオデータ処理中に現在のピクチャ420のためのピクセルまたはサンプル値を生成するために各ピクセルまたは各ピクセルの各サンプルに対して実施される。別の例中で、補間およびリサンプリングフィルタ処理は、1つのフィルタ処理プロセスにマージされ得る。各ピクセルまたはサンプルは、処理中に取り付けられたスケーリング値および動きベクトルを有することになる。上記で説明されたように、異なる状況(たとえば、動きベクトル430の異なる値または参照ピクチャ410と現在のピクチャ420との間での異なるスケーリング値)の下で、異なるフィルタが使用され得る。
【0103】
[0111]下記の表1は、異なるハーフペル補間フィルタ間での補間フィルタスイッチングのためのフィルタインデックスをもつフィルタ係数の例示的な表を与える。
【0104】
【表1】
【0105】
[0112]表1は、1/16分数精度位置でのフィルタ処理のための補間フィルタ係数の表を示す。分数精度位置(たとえば、0位置が非分数または整数位置である、第1の列中の分数サンプル位置1~15)に応じて、異なるフィルタ係数(たとえば、分数位置に対応する行からの係数)が使用され得る。さらに、ハーフペル位置(たとえば、表1の1/16分数精度中の分数サンプル位置8)において、2つの補間フィルタが利用可能であり、このレベルのフィルタの間で切り替えるためにシグナリングが使用され得る。ハーフペルレベルでの補間フィルタスイッチング(たとえば、フィルタインデックス値1と2との間で選択すること)について表1によって2つのフィルタが記載されているが、他の例は、スイッチングのために3つ以上のフィルタを使用することができるか、または、任意の分数位置でのスイッチングのために追加のフィルタを含むことができる。補間フィルタスイッチングのための追加のフィルタの追加は、追加のシグナリングおよび処理リソースを犠牲にして画像処理中に分数精度を増加させることができる。
【0106】
[0113]すべての目的のためにその全体が参照により本明細書に組み込まれるJVET-N0279およびJVET-O0242において、RPRが提案されている。提案では、現在のピクチャ(たとえば、現在符号化または復号されているピクチャ)と参照ピクチャとが、上記で説明されたように、異なる解像度(たとえば、サイズ、グリッド間隔、スケーリング値など)を有し得る。そのような場合、動き補償中に、補間フィルタ位相を調整することによって補間フィルタ処理を実施するときに解像度の差が考慮される。たとえば、リアルタイムビデオ通信中に、イントラ予測されたピクチャ(Iピクチャ)を挿入することなしにコーディングされたビデオシーケンス内で解像度の変化を可能にすることは、ビデオデータを動的チャネル状態またはユーザ選好にシームレスに適応させることができるだけでなく、Iピクチャによって生じる効果を除去することもできる。適応型解像度の変化が発生するとき、現在のピクチャは、異なるサイズの参照ピクチャから予測され得る。参照ピクチャリサンプリング(またはスケーリング)プロセスの例示的な例について以下で説明する。
【0107】
[0114]すべての目的のためにその全体が参照により本明細書に組み込まれるJVET-O0057では、切替え可能な補間フィルタの概念がVVCに提案された。本明細書では、1つまたは複数の補間フィルタが切り替えられ得る。たとえば、フィルタインデックスは、ブロックのために別の補間フィルタが使用されることを示すために(たとえば、デコーダによって)シグナリングまたは推測され得る。フィルタインデックスは、(たとえば、明示的にまたはハーフペルAMVRモードシグナリングを通して)ブロック単位でシグナリングされ得る。たとえば、ハーフペルAMVRを用いるシステムでは、ビットストリーム中でシグナリングされるシンタックス要素は、シンタックス要素(たとえば、表1の特定のフィルタインデックス値を示すシンタックス要素)に関連する現在のブロックを処理するために使用されることになるフィルタインデックスを明示的に示すことができる。ハーフペル以外の分数精度を使用するAMVRを用いる例では、同様のシグナリングが、AMVR実装形態の特定の解像度オプションに構成されたシンタックス要素を使用することができる。
【0108】
[0115]他の実装形態では、フィルタインデックスは、使用されることになるフィルタインデックスを明確に示すビットストリーム中のシンタックス要素を介して明示的にシグナリングされる必要がない。明示的なシグナリングを用いないそのような他の例では、フィルタインデックスは、図2Aおよび図2Bに関して上記で説明されたマージモードなどのマージ様のモード(merge-like mode)で動きベクトル候補を通して(たとえば、デコーダによって)推測され得る。
【0109】
[0116]1つの例示的な例では、(たとえば、フィルタ長、カットオフ周波数、遷移帯域、または、リップルの量などの)異なる特性をもつ合計N個のフィルタが定義され得る。各ブロックについて、N個のフィルタのサブセットが定義され得、サブセット中の選定されたフィルタのインデックスが、(たとえば、表1に示すようにフラグまたはフィルタインデックス値を使用して)デコーダに明示的にまたは暗黙的にシグナリングされ得る。サブセットは、いくつかの基準(たとえば、前にコーディングされたブロック中でのフィルタのヒット率、動きベクトル値、スケーリング値など)に基づいてブロックごとに変更され得る。
【0110】
[0117]補間フィルタのスイッチングが発生するとき、フィルタインデックスによって示されるフィルタは、補間目的に好適であり得るが、ピクチャリサンプリング目的(および、場合によっては、他のサンプルレート変換プロセス)のために有用でないことがある。たとえば、平滑化フィルタは、良好なリサンプリングフィルタでないことがある。異なるフィルタ間でのスイッチング(たとえば、補間フィルタスイッチング)により、画像処理動作は、フィルタ処理されているピクセルの特性(たとえば、現在のピクチャと関連する参照ピクチャとの中のピクセルのための関連する動きベクトルとスケーリング値と)に応じて画像間での安定性を作成することが可能になる。たとえば、フィルタインデックスは、異なるフィルタのためのフィルタインデックス値を有することができる。いくつかの例では、使用されることになるフィルタは、インデックス中のどのフィルタが使用されることになるのか(たとえば、補間フィルタ間のスイッチング)を示すために(たとえば、フラグを使用して)シグナリングされる。別の例では、使用されることになるフィルタは、空間候補(たとえば、参照ピクチャ)から来ることができ、ここで、フィルタインデックスは、動きベクトルデータと一緒に記憶され、現在のピクチャとともに使用する参照ピクチャから伝搬される。
【0111】
[0118]本明細書では、上記で識別された問題ならびに他の問題に対処する方法、装置、およびコンピュータ可読媒体について説明する。いくつかの例では、以下でより詳細に説明されるように、現在のピクチャサイズと参照ピクチャサイズとが同じサイズであるのかどうかを識別するために、条件検査が実施され得る。条件検査は、以下で詳細に説明されるように、異なるレベルで実施され得る。
【0112】
[0119]図5は、ビデオデータを処理するための方法500を示す流れ図である。いくつかの例では、方法500は、メモリと1つまたは複数のプロセッサとを含むデバイスによって実施される。いくつかの例では、方法500は、デバイス104などの符号化デバイスによって実施され得る。いくつかの例では、方法500は、デバイス112などの復号デバイスによって実施され得る。いくつかの例では、方法500は、命令が1つまたは複数のプロセッサによって実行されるときに1つまたは複数のプロセッサに方法500を実施させるコンピュータ可読記憶装置中に記憶された命令として具体化される。
【0113】
[0120]動作505において、方法500は、現在のピクチャと参照ピクチャとを取得することを含む。上記で説明されたように、様々な例では、現在のピクチャと参照ピクチャとは、様々な方法(たとえば、様々なユニット、スライスなど)で分割および編成され得る
[0121]方法500の動作510は、現在のピクチャの現在のブロックのためのフィルタインデックス情報を識別することを含む。異なる例では、このフィルタインデックス情報は、隣接ブロックから推測され得るか、またはAMVRの部分としてシグナリングされ得る。いくつかの例では、フィルタインデックス情報は、AMVRモードシグナリングデータを備え、ここで、現在のフィルタインデックスは、AMVRモードシグナリングを通じてシグナリングされる。いくつかの例では、フィルタインデックス情報は、ネイバーブロック情報を備え、現在のフィルタインデックスは、次いで、マージモード動きベクトル候補リスト導出中にネイバーブロック情報から導出される。フィルタインデックス情報は、フィルタインデックスまたはフィルタインデックス値などの動き情報を含む。マージモードでは、このフィルタインデックス情報は、ネイバーブロックから伝搬または暗示され得る。AMVRモードの場合、フィルタインデックス情報は、AMVRシグナリングを使用して明示的にシグナリングされ得る。
【0114】
[0122]方法500の動作515は、現在のピクチャの第1のピクチャサイズ値と参照ピクチャの第2のピクチャサイズ値とが異なると決定することを含む。いくつかの例では、この決定は、幅および高さの比較を伴うことができる。他の例では、任意の他のそのような比較が使用され得る。一例では、現在のピクチャの第1のピクチャサイズ値と参照ピクチャの第2のピクチャサイズ値とが異なると決定することは、現在のピクチャの幅が参照ピクチャの幅とは異なることと、現在のピクチャの高さが参照ピクチャの高さとは異なることとのうちの少なくとも1つを決定することを備える。このピクチャサイズ検査は、フィルタインデックスを変更するための条件として機能することができる。ピクチャサイズ検査およびフィルタインデックスの関連する変更に応じて、元のインデックス値(たとえば、ピクチャサイズ検査によって示された場合に置き換えられる前の現在のインデックス値)の伝搬が、(たとえば、元のインデックス値を記憶し、伝搬ステップのためにそれを置き換えることによって、またはデフォルト値が元のインデックス値を置き換えない場合にそれを保つことによって)構成され得る。
【0115】
[0123]動作520において、方法500は、フィルタインデックス情報によって識別される現在のフィルタインデックスの代わりにデフォルトフィルタインデックスを使用してサンプルレート変換プロセスを実施することを含む。いくつかの例では、サンプルレート変換プロセスは、リサンプリングプロセスを含む。たとえば、動作520は、フィルタインデックス情報によって識別される現在のフィルタインデックスの代わりにデフォルトフィルタインデックスを使用してリサンプリングプロセスを実施することを含む。いくつかの例では、サンプルレート変換プロセスは、補間プロセスを含む。実施することは、現在のピクチャの第1のピクチャサイズ値と参照ピクチャの第2のピクチャサイズ値とが異なると決定することに基づき得る。様々な例では、サンプルレート変換プロセス(たとえば、リサンプリングプロセス)は、現在のピクチャと参照ピクチャとが異なるサイズ値を有するときに現在のフィルタインデックスを使用せずに実施される。いくつかのそのような例では、現在のフィルタインデックスのためのデフォルト値は、デバイスによって解釈されるか、または代替的な切替え可能フィルタ処理がサンプルレート変換プロセス(たとえば、リサンプリングプロセス)の一部として適用されないという指示を含む。
【0116】
[0124]様々な例では、導出されたフィルタインデックス(たとえば、シグナリングまたは導出によって示される現在のインデックス)の場合、値は、ブロックと一緒のままでおり、システムによって処理される後続のブロックに使用(たとえば、伝搬)され得る。そのような例では、デフォルトフィルタインデックス値が現在のピクチャのために使用される(たとえば、代替的な切替え可能フィルタが使用されない)場合、デフォルトフィルタインデックス値は、現在のピクチャから伝搬されないが、元の値は、記憶され得るか、またはデフォルト値は、後続のピクチャへの伝搬のための使用の後に元の値と置き換えられ得る。
【0117】
[0125]いくつかの例では、本方法は、現在のブロックとともにフィルタインデックス情報によって識別される現在のフィルタインデックスを記憶することと、現在のフィルタインデックスがフィルタインデックス情報によって識別されることに基づいて後続のブロックのための動きベクトル候補導出において現在のフィルタインデックスを使用することとを行うための動作をさらに伴うことができる。いくつかの例では、

本方法は、デフォルトフィルタインデックスを作成するために現在のフィルタインデックスを使用せずにサンプルレート変換プロセス(たとえば、リサンプリングプロセス)が実施されるときに元の値を暫定的に置き換えるために現在のフィルタインデックスのためのデフォルト値を割り当てることと、サンプルレート変換プロセス(たとえば、リサンプリングプロセス)後に現在のフィルタインデックスの元の値を割り当てることとを行う動作をさらに伴うことができる。オリジナルのこの再割当てにより、現在のフィルタインデックス値が現在のピクチャのために使用されない場合でも現在のフィルタインデックス値(たとえば、元の値)を後続のピクチャに伝搬することが可能になる。
【0118】
[0126]いくつかのそのよう例は、現在のフィルタインデックスがサンプルレート変換プロセス(たとえば、リサンプリングプロセス)のために使用されないと決定することと、現在のフィルタインデックスがサンプルレート変換プロセス(たとえば、リサンプリングプロセス)のために使用されないと決定することに応答して現在のフィルタインデックスの値をデフォルト値と置き換えることとを行うことによって動作することができる。同様に、いくつかのそのようなもの例は、代替的な切替え可能フィルタが適用されないと決定するためにデフォルト値を処理することによって動作する。
【0119】
[0127]いくつかの例は、動作することができ、ここで、現在のフィルタインデックスがサンプルレート変換プロセス(たとえば、リサンプリングプロセス)において使用されないという決定に応答して現在のフィルタインデックス値がシグナリングされない。いくつかの例は、動作することができ、ここで、現在のフィルタインデックスは、フィルタのセットから選択され、その場合、フィルタのセットのサブセットは、サンプルレート変換プロセス(たとえば、リサンプリングプロセス)を実施するために使用され、フィルタのセットの残りの部分は、サンプルレート変換のために使用可能でない(たとえば、リサンプリングのために使用可能でない)。いくつかのそのような例は、動作し、ここで、フィルタのセットの残りの部分からの現在のフィルタインデックスの選択が禁止されることを示すシンタックス要素を使用して現在のフィルタインデックスが選択される。
【0120】
[0128]方法500は、次いで、復号または符号化動作の一部として必要に応じて繰り返され得る。いくつかの動作では、方法500は、いくつかの反復では(たとえば、参照ピクチャが現在のピクチャと同じサイズであるときなどにリサンプリングまたは他のサンプルレート変換プロセスが関与しない補間では)使用されないことになる。上記のように、サンプルレート変換プロセスは、いくつかの例では、リサンプリングプロセスを含む。方法500の動作は、補間のためのフィルタの第1のグループとリサンプリングのためのフィルタの第2のグループとを識別すること、ここで、現在のフィルタインデックスは、フィルタの第2のグループからのものである、をさらに含むことができる。方法500の動作は、第2の現在のピクチャと第2の参照ピクチャとを取得することと、第2の現在のピクチャの第3のピクチャサイズ値と第2の参照ピクチャの第4のピクチャサイズ値とが同じサイズ値であると決定することとさらに含むことができる。第2の現在のピクチャの第3のピクチャサイズ値と第2の参照ピクチャの第4のピクチャサイズ値とが同じサイズ値であると決定することに基づいて、方法500の動作は、第2の選択されたフィルタを使用して第2の現在のブロックのための第2のリサンプリングプロセスを実施すること、ここで、第2の選択されたフィルタは、フィルタの第1のグループからのものである、を含むことができる。いくつかのそのような例では、フィルタの第1のグループとフィルタの第2のグループとの各フィルタは、関連するフィルタインデックスによって識別され、関連するフィルタインデックスは、補間のためのフィルタセットまたはリサンプリングのためのフィルタセットからの関連するインデックス値を示す。いくつかのそのような例は、選択されたフィルタインデックス値のためのルックアップ演算によってフィルタインデックスから現在のフィルタインデックスを取得すること、ここで、選択されたフィルタインデックス値は、フィルタの第2のグループに関連付けられる、ここで、選択されたフィルタインデックス値とフィルタの第2のグループとの間の関連付けは、第1のピクチャサイズ値と第2のピクチャサイズ値とが異なると決定することに基づく、をさらに含む。
【0121】
[0129]いくつかの例では、現在のピクチャの幅が参照ピクチャの幅とは異なるか、または現在のピクチャの高さが参照ピクチャの高さとは異なるとき、現在のフィルタインデックスは、リサンプリングプロセス中に使用されない(たとえば、無視されるか、またはリサンプリングプロセスもしくは他のサンプルレート変換プロセスが現在のフィルタインデックスの値に依存しない)。導出またはシグナリングされたフィルタインデックスは、現在のブロックと一緒に記憶されることができ、次のブロックでの動きベクトル候補導出プロセスにおいて使用される。導出またはシグナリングされたフィルタインデックスが使用されないと決定されたとき、フィルタインデックスのためのデフォルト値は、リサンプリングプロセス中に一時的に割り当てられ得、一方、導出またはシグナリングされたフィルタインデックス値が、リサンプリングプロセス後に不変に保たれる。この場合、デフォルト値は、代替的な切替え可能フィルタが適用されないことを示すことができる。
【0122】
[0130]いくつかのそのような例では、フィルタインデックスは、上記で説明されたように、マージモードでは動きベクトル候補リスト導出プロセス中にネイバーブロックから導出される。他の例では、フィルタインデックスは、AMVRモードを通してシグナリングされる。いくつかの例では、サンプルレート変換プロセスは、動き補償プロセスである。いくつかのそのような例では、参照ピクチャは、現在のピクチャの現在のブロックのインター予測のために使用される参照ピクチャである。
【0123】
[0131]いくつかの例では、導出またはシグナリングされたフィルタインデックスが使用されないと決定されたとき、フィルタインデックス値は、デフォルト値と置き換えられ得る。いくつかのそのような例では、デフォルト値は、代替的な切替え可能フィルタが適用されないことを示し、ここで、一例では、代替フィルタは、平滑化フィルタであり得る。いくつかの他の例では、フィルタインデックスがリサンプリングプロセス(または他のサンプルレート変換プロセス)において使用されないと決定されたとき、フィルタインデックス値はシグナリングされない。
【0124】
[0132]いくつかの実装形態では、本明細書で説明されるプロセス(または方法)は、図1に示されているシステム100など、コンピューティングデバイスまたは装置によって実施され得る。たとえば、プロセスは、図1および図7に示されている符号化デバイス104によって、別のビデオソース側デバイスもしくはビデオ送信デバイスによって、図1および図8に示されている復号デバイス112によって、ならびに/または、プレーヤデバイス、ディスプレイ、もしくは任意の他のクライアント側デバイスなど、別のクライアント側デバイスによって実施され得る。いくつかの場合には、コンピューティングデバイスまたは装置は、本明細書で説明されるプロセスのステップを行うように構成されたデバイスのプロセッサ、マイクロプロセッサ、マイクロコンピュータ、または他の構成要素を含み得る。いくつかの例では、コンピューティングデバイスまたは装置は、ビデオフレームを含むビデオデータ(たとえば、ビデオシーケンス)をキャプチャするように構成されたカメラを含み得る。いくつかの例では、ビデオデータをキャプチャするカメラまたは他のキャプチャデバイスは、コンピューティングデバイスとは別個であり、その場合、コンピューティングデバイスは、キャプチャされたビデオデータを受信または取得する。コンピューティングデバイスは、ビデオデータを通信するように構成されたネットワークインターフェースをさらに含み得る。ネットワークインターフェースは、インターネットプロトコル(IP)ベースのデータまたは他のタイプのデータを通信するように構成され得る。いくつかの例では、コンピューティングデバイスまたは装置は、ビデオビットストリームのピクチャのサンプルなど、出力ビデオコンテンツを表示するためのディスプレイを含み得る。
【0125】
[0133]図6は、方法600として図6に示される、いくつかの例による、参照ピクチャリサンプリングの態様を示すフローチャートである。方法600は、上記で説明されたVVC、JEM、または他のビデオコーディング規格手順による処理手順などの画像またはビデオ処理手順の一部として実施され得る。
【0126】
[0134]方法600の実装の一部としてのビデオ処理中に、動作602は、現在のピクチャを識別することを含む。現在のピクチャドは、処理されている画像(たとえば、ビデオ)のセットの画像に関連するデータを識別するために上記で説明されたように、POCを使用して、または任意の他の動作を使用して識別され得る。
【0127】
[0135]動作602において識別される現在のピクチャの処理について、参照ピクチャが動作604において識別される。この識別情報の一部として、(たとえば、DPBからの)1つまたは複数の参照ピクチャまたは参照ピクチャ候補が、上記でおよび下記で詳細に説明するように、(たとえば、POCを使用して)参照ピクチャリストのために選択され得る。実装形態に応じて、個々の参照ピクチャは、次いで、現在のピクチャの処理態様において使用するために参照ピクチャリストから選択され得る。いくつかの実装形態では、現在のピクチャの異なる部分を処理するために異なる参照ピクチャが使用され得るが、処理中に、個々の参照ピクチャからのデータ(たとえば、参照ピクチャ410を使用して動きベクトル430などの動きベクトルを作成するために使用される画像データ)が使用される。
【0128】
[0136]さらに、方法600によるビデオ処理中に、ビデオ処理の一部として様々な異なるモードが使用され得る。これらは、AMVRおよびマージモードなど、上記で説明された動き予測のための異なるモードを含むことができる。異なる実装形態では、これらのモードは、個々の画像、画像の部分、または画像のグループの処理中に変更することができる。
【0129】
[0137]異なる処理モードは、様々な方法で現在のピクチャを処理する際に使用されることになるフィルタについての情報をシグナリングすることができる。たとえば、本明細書で説明されるように、AMVRは、現在の画像を処理する際に使用されることになるフィルタに関する情報を識別するフィルタインデックス値を示すシンタックス要素を明示的にシグナリングすることができる。対照的に、マージモードは、他のピクチャ(たとえば、隣接ピクチャ、参照ピクチャなど)からフィルタインデックス情報を導出することによって明示的なフィルタインデックスのシグナリングなしに動作することができる。動作608において、フィルタインデックス情報を識別するための適切な動作が決定され、処理動作は、フィルタインデックス情報を収集するための適切な動作に進む。明示的なフィルタインデックスのシグナリングが使用される場合、動作610において、明示的なシグナリングのシンタックス要素が、フィルタインデックス情報(たとえば、フィルタインデックスの値)を収集するためにパースされる。明示的なフィルタインデックスのシグナリングが使用されない場合、動作612において、フィルタインデックス情報が導出される(たとえば、隣接する画像または画像部分から伝搬される)。
【0130】
[0138]動作610においてまたは動作612において、フィルタインデックス情報が収集されると、動作614において現在のフィルタインデックス値を設定するためにフィルタインデックス情報が使用される。たとえば、表1を使用する実装形態では、フィルタインデックス値は、フィルタインデックス情報に基づいてハーフペル分数インデックス位置に関連する2つのフィルタインデックス値のうちの1つに設定され得る。
【0131】
[0139]動作616は、条件検査を含み、これは、リサンプリングが使用されるのかどうかに応じて適切なフィルタを選択するために使用される。条件検査は、現在のピクチャと動作604において識別される参照ピクチャとのサイズを比較することに関与する。本明細書で説明されるように、この条件検査は、水平サイズ、垂直サイズ、解像度値、または現在のピクチャと参照ピクチャとのサイズに関連する任意の他のそのような情報を比較することを伴うことができる。いくつかの例では、条件検査(たとえば、参照ピクチャと現在のピクチャとサイズまたはスケーリングを比較すること)はブロック単位で実施され得る。たとえば、条件検査は、ブロックを含んでいる現在のピクチャと参照インデックスによってブロック中に示される参照ピクチャとが同じピクチャサイズを有するのかどうか、またはそれらが同じサイズを有しないのかをチェックするために実施され得る。いくつかの例では、条件検査は、スライス、タイル、サブピクチャ、またはブロックレベルの他のグループに対して実施され得る。たとえば、条件検査は、インター予測のために利用可能な任意の参照ピクチャと現在のピクチャとが同じサイズを有するのかどうかをチェックすることができる。
【0132】
[0140]いくつかの例では、条件は、たとえば、異なるピクチャサイズを有する可能性が可能であるのかどうかをチェックするためにシーケンスレベルでチェックされ得る。一例では、ピクチャのリサンプリングが適用され得るのかどうかは、(たとえば、PPS、SPS、および/またはVPS中のフラグによって)パラメータセット中に示され得る。
【0133】
[0141]場合によっては、ピクチャサイズが(たとえば、現在のピクチャと参照ピクチャとの両方について)導出されるとき、サイズは、復号されたピクチャのサイズまたはクロップされた(cropped)ピクチャのサイズであり得る。たとえば、適合ウィンドウは、ビットストリーム中でシグナリングされ得、復号されたピクチャをクロップされたピクチャのサイズにクロップするためにデコーダまたはメディアプレーヤによって適用され得る。場合によっては、条件検査のためのピクチャサイズは、復号されたピクチャのサイズと様々なオフセット(たとえば、左側のオフセット、右側のオフセット、上側のオフセット、および/または下側のオフセット)に基づいて導出され得る。復号されたピクチャのサイズおよび/またはオフセットは、パラメータセット(たとえば、PPS、SPS、および/もしくはVPS)または(たとえば、SEIメッセージ、スライスヘッダ、もしくは他のシグナリング機構中の)他の場所でシグナリングされ得る。この場合、リサンプリングのためのスケーリング比は、現在のピクチャのピクチャサイズと、適用されたオフセットをもつ参照ピクチャのサイズとについて考慮して導出され得る。いくつかの実装形態では、オフセットは、HEVC規格において(たとえば、スケーラブル拡張において)使用されるスケーリングオフセットと同様であり得る。現在のピクチャと参照ピクチャとのためのこのスケーリング比および/またはサイズ値は、次いで、現在のピクチャを処理する際にどのフィルタが適用されるのかを決定する際に使用され得る。本明細書で説明される技法は、現在のピクチャのサイズと参照ピクチャのサイズとが同じサイズであるのかどうかをチェックする任意の方法を使用することができる。
【0134】
[0142]動作616の結果に応じて、現在の画像は、次いで、様々な方法で(たとえば、異なるフィルタを使用して)処理され得る。現在のピクチャと参照ピクチャとが同じサイズとして識別される場合、動作618において、(たとえば、上記でシグナリングまたは導出された)現在のインデックス値が、現在の画像を処理する際に使用される。
【0135】
[0143]現在のピクチャと参照ピクチャとが同じサイズでないとき、動作620において、動作614において設定された現在のフィルタインデックス値が無視される。これは、参照ピクチャのリサンプリングを伴うフィルタ処理のためのシステム内に設定されるデフォルトフィルタ値、またはこのチェック条件が真である場合の動作のためのデフォルトフィルタループの使用を伴い得る。いくつかの例では、チェック条件が真である(たとえば、現在のピクチャと参照ピクチャまたは双予測における1つまたは両方の参照ピクチャとのピクチャサイズが異なる)と識別される場合、切替え可能な補間フィルタの使用が、SPSのシーケンスレベル、PPSシグナリングを通したピクチャレベル、スライスおよび/もしくはタイルレベル、ならびに/またはブロックレベルで無効化(ディセーブル、使用不可)され得る。切替え可能な補間フィルタ処理(たとえば、切替え可能な補間フィルタ処理がシステム内で使用されるときに設定された現在のフィルタインデックス値の使用)のこの無効化は、動作614において設定された切替え可能な補間フィルタの代わりに(for)、デフォルトフィルタまたは任意の置換フィルタの選択と見なされ得る。
【0136】
[0144]どのフィルタが選択されるのかにかかわらず、現在のピクチャは、動作622において選択されたフィルタを使用して処理される。この処理は、現在の画像の異なる部分をフィルタ処理するコーディングループの一部であり得、したがって、実装形態に応じて、方法600の動作は、様々な方法で繰り返され、ループされて、異なるフィルタを使用して現在の画像または現在の画像の部分を処理し得る。方法600の例では、動作624は、この情報が必要な場合に後続のブロックでの使用のために利用可能であるように現在のフィルタインデックス値を伝搬することを含む。これは、明示的なシグナリングを生成することを伴うことができるか、または(たとえば、現在のピクチャもしくは現在のピクチャの部分が、処理されている後続の現在のピクチャに対し隣接もしくは参照ピクチャになるとき)フィルタインデックス値を導出するための動作612の後続の反復中にアクセスされ得るように現在のフィルタインデックス値を記憶することを伴うことができる。方法600は、次いで、終了することができ、ビデオストリームの処理のためにループされ得る。(たとえば、切替え可能な補間フィルタ処理のための構造がSPSのシーケンスレベル、PPSシグナリングを通したピクチャレベル、スライスおよび/もしくはタイルレベル、ならびに/またはブロックレベルで無効化(使用不可)にされた状態で)切替え可能な補間フィルタ処理の使用がどのように使用されるのかに応じて、方法600は、追加の繰返しのまたは介在する動作を用いて実装され得ることが明らかになるであろう。さらに、いくつかのモードまたは処理動作中に、切替え可能な補間フィルタ処理(たとえば、切替え可能な補間フィルタ処理を用いた表1の単一の1/4ペルまたはハーフペルインデックス値以外の他の値の選択)は使用されないことがあり、したがって、方法600は、それが同じビデオの他の部分のために使用されるときにビデオを処理する部分のために使用されないことがある。
【0137】
[0145]場合によっては、切替え可能な補間フィルタの使用がブロックレベルで使用不可にされるとき(たとえば、チェック条件が真であると識別されるとき)、フィルタインデックスを示すシンタックス要素(たとえば、異なるハーフペル補間が暗黙的に暗示されるハーフペルAMVRモードシグナリング)はブロックのためにシグナリングされない。そのような場合、異なる補間フィルタを示すためのハーフペルAMVRの切替え可能なフィルタ処理、たとえば、フィルタインデックス、に関連するシンタックス要素は、ピクチャサイズの検査(たとえば、現在のピクチャのサイズと参照ピクチャのサイズとが同じサイズであるのかどうか)が条件とされる。
【0138】
[0146] 場合によっては、切替え可能な補間フィルタの使用がブロックレベルで使用不可にされるとき(たとえば、チェック条件が真であると識別されるとき)、フィルタインデックスまたは(例として、たとえば、ハーフペルAMVRシグナリングを通した、またはマージモードもしくは他のマージ様の(merge-like)モードでの)異なるフィルタの使用が、シグナリングされるかまたは隣接ブロックから推測される場合、フィルタインデックスは、修正され、ネイバーブロックから導出された動きベクトル候補のためのデフォルトフィルタインデックス値に設定される。一例では、デフォルトフィルタは、切替え可能なフィルタが適用されないことを示し得る。様々な例によれば、選択されたフィルタは、明示的にまたは暗黙的に示され得る。いくつかの例では、明示的なシンタックス要素は、AMVRモードシグナリングを介してシグナリングされる。他の例では、フィルタは、ネイバーブロックまたは参照ブロックから暗示されるか、導出されるか、または伝搬される。切替え可能な補間フィルタ処理が使用不可にされていることにより、(たとえば、明示的にまたは暗黙的に)シグナリングされるフィルタインデックスが使用されないとき、デフォルトフィルタインデックス値が使用され得る。このデフォルトフィルタは、切替え可能なフィルタ処理が(たとえば、それが許可されないときに切替え可能な補間フィルタ処理を使用不可にするためのプロセスの一部として)使用されないことを示すことができる。
【0139】
[0147]場合によっては、切替え可能な補間フィルタの使用がブロックレベルで使用不可にされるとき(チェック条件が真であると識別されるとき)、フィルタインデックス(または、たとえば、ハーフペルAMVRシグナリングを通した異なるフィルタの使用)が、たとえば、マージモードまたは他のマージ様の(merge-like)モードにおいて、隣接ブロックから推測される場合、フィルタインデックス(または、たとえば、ハーフペルAMVRモードを通した暗黙的なシグナリング)が、ネイバーブロックから導出されるが、リサンプリングプロセス中、導出されたフィルタインデックスは、無視され、切替え可能なフィルタ処理が使用されなければならないことを示し得る場合であっても、リサンプリングフィルタが適用される。現在のブロックのための導出されたフィルタインデックスは、ブロックと一緒に記憶され得、(現在のブロックの後の)後続のブロックのために使用され得、その場合、フィルタインデックスが伝搬する。
【0140】
[0148]いくつかの例では、フィルタのセット(たとえば、表1の2つのハーフペルフィルタ)から1つのフィルタが選択され得る場合に上記の考えを拡大すると、フィルタのサブセットのみが、リサンプリングのために使用され得、リサンプリングするために使用可能でない他のフィルタは、選定されることから制限されるか(一例では、そのような選択を示すシンタックス要素は、ピクチャサイズが異なるとの条件に基づいて禁止され得る)、またはリサンプリングプロセスが実施されるときにそのような選択が無視される。
【0141】
[0149]いくつかの例では、フィルタの2つのグループまたはセットが与えられ得、ここで、フィルタの1つのグループは、補間のために(たとえば、動作618において選択されたフィルタを使用して動作622を処理するために)使用され、フィルタの別のグループは、リサンプリングする(たとえば、動作620において選択されたフィルタを使用して動作622を処理する)ために使用される。そのような例では、フィルタのスイッチングが示される場合、フィルタは、ピクチャサイズが異なる、すなわち、リサンプリングが実施されるとの条件に基づいてグループから選択される。たとえば、フィルタインデックスは、フィルタのセット(またはグループ)からのそのフィルタインデックスをもつフィルタを使用することを示すことができ、ここで、セット(またはグループ)は、ブロックに対して補間のみが実施されるのか、リサンプリングのみが実施されるのかに基づいて識別される。
【0142】
[0150]より詳細な例では、(interpolationSetとして示される)補間のためのフィルタセットと(resamplingSetとして示される)リサンプリングのための別のフィルタセットとがあると仮定する。フィルタセットは、1つのフィルタまたは2つ以上のフィルタを有し得る(フィルタセットのサイズは、1以上であり得る)。ブロックにおいて使用されることになるfilterIndexの値をもつフィルタインデックスが選択され得る。ブロックにおいて使用されるフィルタは、インデックスfilterIndexをもつフィルタをルックアップすることによってフィルタセットから取得される。フィルタは、interpolationSetまたはresamplingSetのセットのいずれかから来ることができ、フィルタセットは、現在のピクチャと参照ピクチャとのサイズが同じであるのかどうかの条件に基づいて識別される。現在のピクチャと参照ピクチャとのサイズが同じである場合(その場合、リサンプリングは必要とされない)、フィルタセットは、interpolationSetとして識別される。現在のピクチャと参照ピクチャとのサイズが異なる場合(その場合、リサンプリングが実施される)、フィルタセットは、resamplingSetとして識別される。この技法の利点は、フィルタインデックスのシグナリングとフィルタインデックスの推測とを変更する必要がない(たとえば、フィルタインデックス値は、補間またはリサンプリングされるネイバーブロックの間を伝搬することができる)ということであり、最後のフィルタのみが、ピクチャサイズ条件に基づいてセットから選択される。
【0143】
[0151]次に、参照ピクチャリサンプリング(またはスケーリング)RPRプロセスの例示的な例について説明する。上記のように、(たとえば、コーディングされたビデオシーケンス(CVS)内で)解像度の変化があるとき、ピクチャは、それの参照ピクチャのうちの1つまたは複数とは異なるサイズを有し得る。RPR処理は、すべての動きベクトルをそれらの対応する参照ピクチャのグリッドの代わりに現在のピクチャのグリッドに正規化するために実施され得る。そのようなプロセスは、設計を一貫して保ち、解像度の変化を動きベクトル予測プロセスに透過的にさせるために有益であり得る。そうでない場合、異なるサイズをもつ参照ピクチャを指す隣接動きベクトルは、異なるスケールにより空間動きベクトル予測のために直接使用されないことがある。
【0144】
[0152]解像度の変化が起こるとき、動き補償予測を行いながら動きベクトルと参照ブロックとの両方がスケーリングされ得る。場合によっては、スケーリング範囲は、[1/8,2]に限定される(たとえば、アップスケールは1:8に限定され、ダウンスケールは2:1に限定される)。ここで、アップスケール(またはアップサンプリング)は、参照ピクチャが現在のピクチャよりも小さい事例を指し、一方、ダウンスケール(またはダウンサンプリング)は、参照ピクチャが現在のピクチャよりも大きい事例を指す。スケーリングプロセスについては、以下でより詳細に説明する。
【0145】
[0153]ルーマブロックの場合、スケーリングファクタとそれらの固定小数点表現は、以下のように定義され得る。
【0146】
【数1】
【0147】
[0154]RPRプロセスは、(1)現在のブロックの左上隅のピクセルを参照ピクチャにマッピングすることと、(2)現在のブロックの他のピクセルの参照ロケーションをアドレス指定するために水平および垂直ステップサイズを使用することとを含む2つの部分を含むことができる。場合によっては、現在のブロックの左上隅のピクセルの座標が(x,y)である場合、1/16ペルの単位で動きベクトル(mvX,mvY)によって指される参照ピクチャ中のサブペルロケーション(x’,y’)が指定され、ここで、参照ピクチャ中の水平ロケーションは、以下の通りである。
【0148】
【数2】
【0149】
[0155]x’は、10個の小数ビットだけを保つようにさらにスケールダウンされる。
【0150】
【数3】
【0151】
[0156]同様に、参照ピクチャ中の垂直ロケーションは、以下の通りである。
【0152】
【数4】
【0153】
[0157]y’は、以下までさらにスケールダウンされる。
【0154】
【数5】
【0155】
[0158]この時点で、現在のブロックの左上隅のピクセルの参照ロケーションは、(x’,y’)にある。他の参照サブペル/ペルロケーションは、水平および垂直ステップサイズを用いて(x’,y’)に対して計算され得る。それらのステップサイズは、次のように上記の水平および垂直スケーリングファクタから1/1024ペル精度(または他のペル精度)で導出され得る。
【0156】
【数6】
【0157】
[0159]一例では、現在のブロック中のピクセルが左上隅のピクセル(またはサンプル)からi列およびj行離れている場合、それの対応する参照ピクセルの水平および垂直座標は、以下によって導出される。
【0158】
【数7】
【0159】
[0160]サブペル補間では、x’iおよびy’jは、次のようにフルペル部分と分数ペル部分とに分割される必要があり得、ここで、参照ブロックをアドレス指定するためのフルペル部分は、以下に等しくなる。
【0160】
【数8】
【0161】
[0161]補間フィルタを選択するために使用される分数ペル部分は、以下に等しくなる。
【0162】
【数9】
【0163】
[0162]参照ピクチャ内でのフルペルおよび分数ペルのロケーションが決定されると、既存の動き補償補間器がいかなる追加の変更もなしに使用され得る。フルペルのロケーションは、参照ピクチャから参照ブロックパッチをフェッチするために使用されることになり、分数ペルロケーションは、適切な補間フィルタを選択するために使用されることになる。
【0164】
[0163]次に、クロマブロックのためのRPRプロセスの一例について説明する。たとえば、クロマフォーマットが4:2:0であるとき、クロマ動きベクトルは、1/32ペル精度を有する。この例では、クロマ動きベクトルとクロマ参照ブロックとのスケーリングプロセスは、クロマフォーマットに関連する調整が導入されることを除きルーマブロックのためのものと同様である。
【0165】
[0164]現在のクロマブロックの左上隅のピクセルの座標が(xc,yc)であるとき、参照クロマピクチャ中で最初の水平および垂直ロケーションは次のようになる。
【0166】
【数10】
【0167】
[0165]ここで、mvXおよびmvYは、元のルーマ動きベクトルであるが、ここで、次のように、1/32ペル精度を用いて、xc’とyc’とが、1/1024ペル精度を保つためにさらにスケールダウンされることを検査されなければならない。
【0168】
【数11】
【0169】
[0166]関連するルーマ式と比較して、右上シフトは、1つの追加のビットだけ増加される。
【0170】
[0167]使用されるステップサイズは、ルーマの場合と同じである。左上隅のピクセルに対して(i,j)にあるクロマピクセルの場合、それの参照ピクセルの水平および垂直座標は、以下によって導出される。
【0171】
【数12】
【0172】
[0168]サブペル補間では、
【0173】
【数13】
【0174】
および
【0175】
【数14】
【0176】
はやはり、フルペル部分と分数ペル部分とに分割され、参照ブロックをアドレス指定するためのフルペル部分は、以下に等しくなる。
【0177】
【数15】
【0178】
[0169]補間フィルタを選択するために使用される分数ペル部分は、以下に等しくなる。
【0179】
【数16】
【0180】
[0170]プロセスは、論理流れ図に関して説明され得、その動作は、ハードウェア、コンピュータ命令、またはそれらの組合せにおいて実施され得る動作のシーケンスを表現する。コンピュータ命令のコンテキストでは、動作は、1つまたは複数のプロセッサによって実行されたとき、具陳された動作を実施する1つまたは複数のコンピュータ可読記憶媒体に記憶されたコンピュータ実行可能命令を表す。概して、コンピュータ実行可能命令は、特定の機能を実施するか、または特定のデータタイプを実装する、ルーチン、プログラム、オブジェクト、構成要素、データ構造などを含む。動作が説明される順序は、限定として解釈されるものではなく、任意の数の説明される動作は、プロセスを実装するために任意の順序でおよび/または並行して組み合わせられ得る。
【0181】
[0171]さらに、プロセスは、実行可能命令で構成された1つもしくは複数のコンピュータシステムの制御下で実施され得、まとめて1つもしくは複数のプロセッサ上で、ハードウェアによって、またはそれらの組合せで実行するコード(たとえば、実行可能命令、1つもしくは複数のコンピュータプログラム、または1つもしくは複数のアプリケーション)として実装され得る。上述のように、コードは、たとえば、1つまたは複数のプロセッサによって実行可能な複数の命令を備えるコンピュータプログラムの形態で、コンピュータ可読または機械可読記憶媒体に記憶され得る。コンピュータ可読または機械可読記憶媒体は非一時的であり得る。
【0182】
[0172]本明細書で説明されたコーディング技法は、例示的なビデオ符号化および復号システム(たとえば、システム100)において実装され得る。いくつかの例では、システムは、宛先デバイスによって後で復号されるべき符号化ビデオデータを与えるソースデバイスを含む。特に、ソースデバイスは、コンピュータ可読媒体を介してビデオデータを宛先デバイスに与える。ソースデバイスおよび宛先デバイスは、デスクトップコンピュータ、ノートブック(すなわち、ラップトップ)コンピュータ、タブレットコンピュータ、セットトップボックス、いわゆる「スマート」フォンなどの電話ハンドセット、いわゆる「スマート」パッド、テレビジョン、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲームコンソール、ビデオストリーミングデバイスなどを含む、広範囲にわたるデバイスのいずれかを備え得る。いくつかの場合には、ソースデバイスおよび宛先デバイスはワイヤレス通信のために装備され得る。
【0183】
[0173]宛先デバイスは、コンピュータ可読媒体を介して復号されるべき符号化ビデオデータを受信し得る。コンピュータ可読媒体は、ソースデバイスから宛先デバイスに符号化ビデオデータを移動することが可能な任意のタイプの媒体またはデバイスを備え得る。一例では、コンピュータ可読媒体は、ソースデバイスが符号化ビデオデータを宛先デバイスにリアルタイムで直接送信することを可能にするための通信媒体を備え得る。符号化ビデオデータは、ワイヤレス通信プロトコルなどの通信規格に従って変調され、宛先デバイスに送信され得る。通信媒体は、無線周波数(RF)スペクトルまたは1つもしくは複数の物理伝送線路など、任意のワイヤレスまたはワイヤード通信媒体を備え得る。通信媒体は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはインターネットなどのグローバルネットワークなど、パケットベースネットワークの一部を形成し得る。通信媒体は、ソースデバイスから宛先デバイスへの通信を促進するために有用であり得る、ルータ、スイッチ、基地局、または任意の他の機器を含み得る。
【0184】
[0174]いくつかの例では、符号化データは、出力インターフェースから記憶デバイスに出力され得る。同様に、符号化データは、入力インターフェースによって記憶デバイスからアクセスされ得る。記憶デバイスは、ハードドライブ、Blu-ray(登録商標)ディスク、DVD、CD-ROM、フラッシュメモリ、揮発性もしくは不揮発性メモリ、または符号化ビデオデータを記憶するための任意の他の好適なデジタル記憶媒体など、様々な分散されたまたはローカルにアクセスされるデータ記憶媒体のいずれかを含み得る。さらなる一例では、記憶デバイスは、ソースデバイスによって生成された符号化ビデオを記憶し得るファイルサーバまたは別の中間記憶デバイスに対応し得る。宛先デバイスは、ストリーミングまたはダウンロードを介して記憶デバイスから記憶されたビデオデータにアクセスし得る。ファイルサーバは、符号化ビデオデータを記憶することと、その符号化ビデオデータを宛先デバイスに送信することとが可能な任意のタイプのサーバであり得る。例示的なファイルサーバは、(たとえば、ウェブサイトのための)ウェブサーバ、FTPサーバ、ネットワーク接続ストレージ(NAS)デバイス、またはローカルディスクドライブを含む。宛先デバイスは、インターネット接続を含む、任意の標準のデータ接続を通して符号化ビデオデータにアクセスし得る。この宛先デバイスは、ワイヤレスチャネル(たとえば、Wi-Fi(登録商標)接続)、ワイヤード接続(たとえば、DSL、ケーブルモデムなど)、または、ファイルサーバに記憶された符号化ビデオデータにアクセスするのに適した、両方の組合せを含み得る。ストレージデバイスからの符号化ビデオデータの送信は、ストリーミング送信、ダウンロード送信、またはそれらの組合せであり得る。
【0185】
[0175]一例では、ソースデバイスは、ビデオソースと、ビデオエンコーダと、出力インターフェースとを含む。宛先デバイスは、入力インターフェースと、ビデオデコーダと、ディスプレイデバイスとを含み得る。ソースデバイスのビデオエンコーダは、本明細書で開示される技法を適用するように構成され得る。他の例では、ソースデバイスおよび宛先デバイスは、他の構成要素または構成を含み得る。たとえば、ソースデバイスは、外部カメラなどの外部ビデオソースからビデオデータを受信し得る。同様に、宛先デバイスは、一体型ディスプレイデバイスを含むのではなく、外部ディスプレイデバイスとインターフェースし得る。
【0186】
[0176]上記の例示的なシステムは一例にすぎない。ビデオデータを並行して処理するための技法は、任意のデジタルビデオ符号化および/または復号デバイスによって実施され得る。概して、本開示の技法はビデオ符号化デバイスによって実施されるが、本技法は、一般に「コーデック」と呼ばれるビデオエンコーダ/デコーダによっても実施され得る。その上、本開示の技法はビデオプリプロセッサによっても実施され得る。ソースデバイスおよび宛先デバイスは、ソースデバイスが宛先デバイスに送信するためのコード化ビデオデータを生成するような、コーディングデバイスの例にすぎない。いくつかの例では、ソースデバイスおよび宛先デバイスは、デバイスの各々がビデオ符号化構成要素とビデオ復号構成要素とを含むように、実質的に対称的に動作し得る。したがって、例示的なシステムは、たとえば、ビデオストリーミング、ビデオ再生、ビデオブロードキャスティング、またはビデオテレフォニーのための、ビデオデバイス間の一方向または双方向のビデオ送信をサポートし得る。
【0187】
[0177]ビデオソースは、ビデオカメラなどのビデオキャプチャデバイス、前にキャプチャされたビデオを含んでいるビデオアーカイブ、および/またはビデオコンテンツプロバイダからビデオを受信するためのビデオフィードインターフェースを含み得る。さらなる代替として、ビデオソースは、ソースビデオとしてのコンピュータグラフィックスベースのデータ、またはライブビデオとアーカイブビデオとコンピュータ生成ビデオとの組合せを生成し得る。いくつかの場合には、ビデオソースがビデオカメラである場合、ソースデバイスおよび宛先デバイスは、いわゆるカメラフォンまたはビデオフォンを形成し得る。ただし、上述のように、本開示で説明される技法は、概してビデオコーディングに適用可能であり得、ワイヤレスおよび/またはワイヤード適用例に適用され得る。各場合において、キャプチャされたビデオ、プリキャプチャされたビデオ、またはコンピュータ生成ビデオは、ビデオエンコーダによって符号化され得る。符号化ビデオ情報は、次いで、出力インターフェースによってコンピュータ可読媒体上に出力され得る。
【0188】
[0178]述べられたように、コンピュータ可読媒体は、ワイヤレスブロードキャストもしくはワイヤードネットワーク送信などの一時媒体、またはハードディスク、フラッシュドライブ、コンパクトディスク、デジタルビデオディスク、Blu-rayディスク、もしくは他のコンピュータ可読媒体などの記憶媒体(すなわち、非一時的記憶媒体)を含み得る。いくつかの例では、ネットワークサーバ(図示せず)は、たとえば、ネットワーク送信を介して、ソースデバイスから符号化ビデオデータを受信し、その符号化ビデオデータを宛先デバイスに与え得る。同様に、ディスクスタンピング設備など、媒体製造設備のコンピューティングデバイスは、ソースデバイスから符号化ビデオデータを受信し、その符号化ビデオデータを含んでいるディスクを作り出し得る。したがって、コンピュータ可読媒体は、様々な例において、様々な形態の1つまたは複数のコンピュータ可読媒体を含むことが理解され得る。
【0189】
[0179]宛先デバイスの入力インターフェースはコンピュータ可読媒体から情報を受信する。コンピュータ可読媒体の情報は、ビデオエンコーダによって定義され、またビデオデコーダによって使用される、ブロックおよび他のコード化ユニット、たとえば、ピクチャグループ(GOP)の特性および/または処理を記述するシンタックス要素を含む、シンタックス情報を含み得る。ディスプレイデバイスは、復号ビデオデータをユーザに対して表示し、陰極線管(CRT)、液晶ディスプレイ(LCD)、プラズマディスプレイ、有機発光ダイオード(OLED)ディスプレイ、または別のタイプのディスプレイデバイスなど、様々なディスプレイデバイスのいずれかを備え得る。本出願の様々な実施形態が説明された。
【0190】
[0180]符号化デバイス104および復号デバイス112の具体的な詳細が、それぞれ図7および図8に示されている。図7は、本開示で説明される技法のうちの1つまたは複数を実装し得る例示的な符号化デバイス104を示すブロック図である。符号化デバイス104は、たとえば、本明細書で説明されるシンタックス構造(たとえば、VPS、SPS、PPS、または他のシンタックス要素のシンタックス構造)を生成し得る。符号化デバイス104は、ビデオスライス内のビデオブロックのイントラ予測コーディングおよびインター予測コーディングを実施し得る。前に説明されたように、イントラコーディングは、所与のビデオフレームまたはピクチャ内の空間冗長性を低減または除去するために、空間予測に少なくとも部分的に依拠する。インターコーディングは、ビデオシーケンスの隣接フレームまたは周囲のフレーム内の時間冗長性を低減または除去するために、時間予測に少なくとも部分的に依拠する。イントラモード(Iモード)は、いくつかの空間ベースの圧縮モードのいずれかを指すことがある。単方向予測(Pモード)または双予測(Bモード)などのインターモードは、いくつかの時間ベースの圧縮モードのいずれかを指すことがある。
【0191】
[0181]符号化デバイス104は、区分ユニット35と、予測処理ユニット41と、フィルタユニット63と、ピクチャメモリ64と、加算器50と、変換処理ユニット52と、量子化ユニット54と、エントロピー符号化ユニット56とを含む。予測処理ユニット41は、動き推定ユニット42と、動き補償ユニット44と、イントラ予測処理ユニット46とを含む。ビデオブロック再構築のために、符号化デバイス104はまた、逆量子化ユニット58と、逆変換処理ユニット60と、加算器62とを含む。フィルタユニット63は、デブロッキングフィルタ、適応ループフィルタ(ALF)、およびサンプル適応オフセット(SAO)フィルタなど、1つまたは複数のループフィルタを表現するものとする。フィルタユニット63は、図7では、ループ内フィルタであるとして示されているが、他の構成では、フィルタユニット63はループ後フィルタとして実装され得る。後処理デバイス57は、符号化デバイス104によって生成された符号化ビデオデータに対して追加の処理を実施し得る。本開示の技法は、いくつかの事例では、符号化デバイス104によって実装され得る。しかしながら、他の事例では、本開示の技法のうちの1つまたは複数は、後処理デバイス57によって実装され得る。
【0192】
[0182]図7に示されているように、符号化デバイス104はビデオデータを受信し、区分ユニット35はデータをビデオブロックに区分する。区分はまた、たとえば、LCUおよびCUの4分木構造に従って、スライス、スライスセグメント、タイル、または他のより大きいユニットへの区分、ならびにビデオブロック区分を含み得る。符号化デバイス104は、概して、符号化されるべきビデオスライス内のビデオブロックを符号化する構成要素を示す。スライスは、複数のビデオブロックに(および場合によっては、タイルと呼ばれるビデオブロックのセットに)分割され得る。予測処理ユニット41は、誤差結果(たとえば、コーディングレートおよびひずみレベルなど)に基づいて現在のビデオブロックについて、複数のイントラ予測コーディングモードのうちの1つ、または複数のインター予測コーディングモードのうちの1つなど、複数の可能なコーディングモードのうちの1つを選択し得る。予測処理ユニット41は、得られたイントラコード化ブロックまたはインターコード化ブロックを、残差ブロックデータを生成するために加算器50に与え、参照ピクチャとして使用するための符号化ブロックを再構築するために加算器62に与え得る。
【0193】
[0183]予測処理ユニット41内のイントラ予測処理ユニット46は、空間圧縮を行うために、コーディングされるべき現在のブロックと同じフレームまたはスライス中の1つまたは複数の隣接ブロックに対して現在のビデオブロックのイントラ予測コーディングを実施し得る。予測処理ユニット41内の動き推定ユニット42および動き補償ユニット44は、時間圧縮を行うために、1つまたは複数の参照ピクチャ中の1つまたは複数の予測ブロックに対して現在のビデオブロックのインター予測コーディングを実施する。
【0194】
[0184]動き推定ユニット42は、ビデオシーケンスに対する所定のパターンに従って、ビデオスライスのためのインター予測モードを決定するように構成され得る。所定のパターンは、シーケンス中のビデオスライスを、Pスライス、Bスライス、またはGPBスライスに指定し得る。動き推定ユニット42と動き補償ユニット44とは、高度に統合され得るが、概念的な目的のために別個に示されている。動き推定ユニット42によって実施される動き推定は、ビデオブロックについての動きを推定する動きベクトルを生成するプロセスである。動きベクトルは、たとえば、参照ピクチャ内の予測ブロックに対する、現在のビデオフレームまたはピクチャ内のビデオブロックの予測ユニット(PU)の変位を示し得る。
【0195】
[0185]予測ブロックは、絶対差分和(SAD)、2乗差分和(SSD)、または他の差分メトリックによって決定され得るピクセル差分に関して、コーディングされるべきビデオブロックのPUにぴったり一致することがわかるブロックである。いくつかの例では、符号化デバイス104は、ピクチャメモリ64に記憶された参照ピクチャのサブ整数ピクセル位置についての値を計算し得る。たとえば、符号化デバイス104は、参照ピクチャの1/4ピクセル位置、1/8ピクセル位置、または他の分数ピクセル位置の値を補間し得る。したがって、動き推定ユニット42は、フルピクセル位置および分数ピクセル位置に対して動き探索を実施し、分数ピクセル精度で動きベクトルを出力し得る。
【0196】
[0186]動き推定ユニット42は、PUの位置を参照ピクチャの予測ブロックの位置と比較することによって、インターコード化スライス中のビデオブロックのPUについての動きベクトルを計算する。参照ピクチャは、第1の参照ピクチャリスト(リスト0)または第2の参照ピクチャリスト(リスト1)から選択され得、それらの各々は、ピクチャメモリ64に記憶された1つまたは複数の参照ピクチャを識別する。動き推定ユニット42は、計算された動きベクトルをエントロピー符号化ユニット56と動き補償ユニット44とに送る。
【0197】
[0187]動き補償ユニット44によって実施される動き補償は、動き推定によって決定された動きベクトルに基づいて予測ブロックをフェッチまたは生成すること、場合によっては、サブピクセル精度への補間を実施することを伴い得る。現在のビデオブロックのPUのための動きベクトルを受信すると、動き補償ユニット44は、動きベクトルが参照ピクチャリストにおいて指す予測ブロックの位置を特定し得る。符号化デバイス104は、コーディングされている現在のビデオブロックのピクセル値から予測ブロックのピクセル値を減算し、ピクセル差分値を形成することによって、残差ビデオブロックを形成する。ピクセル差分値は、ブロックのための残差データを形成し、ルーマ差分成分とクロマ差分成分の両方を含み得る。加算器50は、この減算演算を実施する1つまたは複数の構成要素を表現する。動き補償ユニット44はまた、ビデオスライスのビデオブロックを復号する際に復号デバイス112が使用するための、ビデオブロックとビデオスライスとに関連するシンタックス要素を生成し得る。
【0198】
[0188]イントラ予測処理ユニット46は、上記で説明されたように、動き推定ユニット42と動き補償ユニット44とによって実施されるインター予測の代替として、現在ブロックをイントラ予測し得る。特に、イントラ予測処理ユニット46は、現在ブロックを符号化するために使用すべきイントラ予測モードを決定し得る。いくつかの例では、イントラ予測処理ユニット46は、たとえば、別個の符号化パス中に様々なイントラ予測モードを使用して現在ブロックを符号化し得、イントラ予測ユニット処理46は、テストされたモードから使用するのに適切なイントラ予測モードを選択し得る。たとえば、イントラ予測処理ユニット46は、様々なテストされたイントラ予測モードのためにレートひずみ分析を使用してレートひずみ値を計算し得、テストされたモードの中で最良のレートひずみ特性を有するイントラ予測モードを選択し得る。レートひずみ分析は、概して、符号化ブロックと、符号化ブロックを作り出すために符号化されたブロックと元の符号化されていないブロックとの間のひずみ(または誤差)の量、ならびに符号化ブロックを作り出すために使用されるビットレート(すなわち、ビット数)を決定する。イントラ予測処理ユニット46は、どのイントラ予測モードがブロックについて最良のレートひずみ値を呈するかを決定するために、様々な符号化ブロックのためのひずみおよびレートから比を計算し得る。
【0199】
[0189]いずれの場合も、ブロックのためのイントラ予測モードを選択した後に、イントラ予測処理ユニット46は、ブロックのための選択されたイントラ予測モードを示す情報をエントロピー符号化ユニット56に与え得る。エントロピー符号化ユニット56は、選択されたイントラ予測モードを示す情報を符号化し得る。符号化デバイス104は、様々なブロックのための符号化コンテキストの構成データ定義、ならびにコンテキストの各々について使用すべき、最確イントラ予測モード、イントラ予測モードインデックステーブル、および修正されたイントラ予測モードインデックステーブルの指示を送信ビットストリーム中に含め得る。ビットストリーム構成データは、複数のイントラ予測モードインデックステーブルと、(コードワードマッピングテーブルとも呼ばれる)複数の修正されたイントラ予測モードインデックステーブルとを含み得る。
【0200】
[0190]予測処理ユニット41が、インター予測またはイントラ予測のいずれかを介して、現在のビデオブロックのための予測ブロックを生成した後、符号化デバイス104は、現在のビデオブロックから予測ブロックを減算することによって残差ビデオブロックを形成する。残差ブロック中の残差ビデオデータは、1つまたは複数のTU中に含まれ、変換処理ユニット52に適用され得る。変換処理ユニット52は、離散コサイン変換(DCT)または概念的に同様の変換などの変換を使用して、残差ビデオデータを残差変換係数に変換する。変換処理ユニット52は、残差ビデオデータをピクセル領域から周波数領域などの変換領域に変換し得る。
【0201】
[0191]変換処理ユニット52は、得られた変換係数を量子化ユニット54に送り得る。量子化ユニット54は、ビットレートをさらに低減するために、変換係数を量子化する。量子化プロセスは、係数の一部または全部に関連するビット深度を低減し得る。量子化の程度は、量子化パラメータを調整することによって修正され得る。いくつかの例では、量子化ユニット54は、次いで、量子化変換係数を含む行列の走査を実施し得る。代替的に、エントロピー符号化ユニット56が走査を実施し得る。
【0202】
[0192]量子化の後に、エントロピー符号化ユニット56は、量子化変換係数をエントロピー符号化する。たとえば、エントロピー符号化ユニット56は、コンテキスト適応型可変長コーディング(CAVLC)、コンテキスト適応型バイナリ算術コーディング(CABAC)、シンタックスベースコンテキスト適応型バイナリ算術コーディング(SBAC)、確率間隔区分エントロピー(PIPE)コーディングまたは別のエントロピー符号化技法を実施し得る。エントロピー符号化ユニット56によるエントロピー符号化の後に、符号化ビットストリームは復号デバイス112に送信されるか、または復号デバイス112が後で送信するかもしくは取り出すためにアーカイブされ得る。エントロピー符号化ユニット56はまた、コーディングされている現在のビデオスライスのための動きベクトルと他のシンタックス要素とをエントロピー符号化し得る。
【0203】
[0193]逆量子化ユニット58および逆変換処理ユニット60は、参照ピクチャの参照ブロックとして後で使用するためにピクセル領域において残差ブロックを再構築するために、それぞれ逆量子化および逆変換を適用する。動き補償ユニット44は、残差ブロックを参照ピクチャリスト内の参照ピクチャのうちの1つの予測ブロックに加算することによって参照ブロックを計算し得る。動き補償ユニット44はまた、動き推定において使用するためのサブ整数ピクセル値を計算するために、再構築された残差ブロックに1つまたは複数の補間フィルタを適用し得る。加算器62は、ピクチャメモリ64に記憶するための参照ブロックを作り出すために、再構築された残差ブロックを動き補償ユニット44によって作り出された動き補償予測ブロックに加算する。参照ブロックは、後続のビデオフレームまたはピクチャ中のブロックをインター予測するために、動き推定ユニット42および動き補償ユニット44によって参照ブロックとして使用され得る。
【0204】
[0194]このようにして、図7の符号化デバイス104は、図5に関して上記で説明された方法500を含む、本明細書で説明される技法のうちのいずれかを実施するように構成されたビデオエンコーダの一例を表す。いくつかの場合には、本開示の技法のうちのいくつかは、後処理デバイス57によっても実装され得る。
【0205】
[0195]図7は、例示的な復号デバイス112を示すブロック図である。復号デバイス112は、エントロピー復号ユニット80と、予測処理ユニット81と、逆量子化ユニット86と、逆変換処理ユニット88と、加算器90と、フィルタユニット91と、ピクチャメモリ92とを含む。予測処理ユニット81は、動き補償ユニット82と、イントラ予測処理ユニット84とを含む。復号デバイス112は、いくつかの例では、図7からの符号化デバイス104に関して説明された符号化パスとは概して逆の復号パスを実施し得る。
【0206】
[0196]復号プロセス中に、復号デバイス112は、符号化デバイス104によって送られた、符号化ビデオスライスのビデオブロックと、関連するシンタックス要素とを表す符号化ビデオビットストリームを受信する。いくつかの実施形態では、復号デバイス112は、符号化デバイス104から符号化ビデオビットストリームを受信し得る。いくつかの実施形態では、復号デバイス112は、サーバ、メディアアウェアネットワーク要素(MANE)、ビデオエディタ/スプライサ、または上記で説明された技法のうちの1つまたは複数を実装するように構成された他のそのようなデバイスなど、ネットワークエンティティ79から符号化ビデオビットストリームを受信し得る。ネットワークエンティティ79は、符号化デバイス104を含むことも、含まないこともある。本開示で説明される技法のうちのいくつかは、ネットワークエンティティ79が符号化ビデオビットストリームを復号デバイス112に送信するより前に、ネットワークエンティティ79によって実装され得る。いくつかのビデオ復号システムでは、ネットワークエンティティ79および復号デバイス112は別個のデバイスの部分であり得るが、他の事例では、ネットワークエンティティ79に関して説明される機能は、復号デバイス112を備える同じデバイスによって実施され得る。
【0207】
[0197]復号デバイス112のエントロピー復号ユニット80は、量子化係数と、動きベクトルと、他のシンタックス要素とを生成するためにビットストリームをエントロピー復号する。エントロピー復号ユニット80は、動きベクトルと他のシンタックス要素とを予測処理ユニット81に転送する。復号デバイス112は、ビデオスライスレベルおよび/またはビデオブロックレベルのシンタックス要素を受信し得る。エントロピー復号ユニット80は、VPS、SPS、およびPPSなど、または複数のパラメータセット中の固定長シンタックス要素と可変長シンタックス要素の両方を処理し、パースし得る。
【0208】
[0198]ビデオスライスがイントラコード化(I)スライスとしてコーディングされたとき、予測処理ユニット81のイントラ予測処理ユニット84は、シグナリングされたイントラ予測モードと、現在のフレームまたはピクチャの前に復号されたブロックからのデータとに基づいて、現在のビデオスライスのビデオブロックのための予測データを生成し得る。ビデオフレームがインターコード化(すなわち、B、PまたはGPB)スライスとしてコーディングされたとき、予測処理ユニット81の動き補償ユニット82は、エントロピー復号ユニット80から受信された動きベクトルおよび他のシンタックス要素に基づいて、現在のビデオスライスのビデオブロックのための予測ブロックを作り出す。予測ブロックは、参照ピクチャリスト内の参照ピクチャのうちの1つから作り出され得る。復号デバイス112は、ピクチャメモリ92に記憶された参照ピクチャに基づいて、デフォルトの構築技法を使用して、参照フレームリスト、すなわち、リスト0とリスト1とを構築し得る。
【0209】
[0199]動き補償ユニット82は、動きベクトルと他のシンタックス要素とをパースすることによって現在のビデオスライスのビデオブロックのための予測情報を決定し、復号されている現在のビデオブロックのための予測ブロックを作り出すために、その予測情報を使用する。たとえば、動き補償ユニット82は、ビデオスライスのビデオブロックをコーディングするために使用される予測モード(たとえば、イントラまたはインター予測)と、インター予測スライスタイプ(たとえば、Bスライス、Pスライス、またはGPBスライス)と、スライスのための1つまたは複数の参照ピクチャリストのための構築情報と、スライスの各インター符号化ビデオブロックのための動きベクトルと、スライスの各インターコード化ビデオブロックのためのインター予測ステータスと、現在のビデオスライス中のビデオブロックを復号するための他の情報とを決定するために、パラメータセット中の1つまたは複数のシンタックス要素を使用し得る。
【0210】
[0200]動き補償ユニット82はまた、補間フィルタに基づいて補間を実施し得る。動き補償ユニット82は、参照ブロックのサブ整数ピクセルのための補間値を計算するために、ビデオブロックの符号化中に符号化デバイス104によって使用された補間フィルタを使用し得る。この場合、動き補償ユニット82は、受信されたシンタックス要素から符号化デバイス104によって使用された補間フィルタを決定し得、予測ブロックを作り出すためにその補間フィルタを使用し得る。
【0211】
[0201]逆量子化ユニット86は、ビットストリーム中で与えられ、エントロピー復号ユニット80によって復号された量子化変換係数を逆量子化、すなわち、量子化解除する。逆量子化プロセスは、量子化の程度を決定し、同様に、適用されるべきである逆量子化の程度を決定するための、ビデオスライス中のビデオブロックごとに符号化デバイス104によって計算される量子化パラメータの使用を含み得る。逆変換処理ユニット88は、ピクセル領域における残差ブロックを作り出すために、逆変換(たとえば、逆DCTまたは他の好適な逆変換)、逆整数変換、または概念的に同様の逆変換プロセスを変換係数に適用する。
【0212】
[0202]動き補償ユニット82が、動きベクトルおよび他のシンタックス要素に基づいて現在のビデオブロックのための予測ブロックを生成した後に、復号デバイス112は、逆変換処理ユニット88からの残差ブロックを動き補償ユニット82によって生成された対応する予測ブロックと加算することによって、復号ビデオブロックを形成する。加算器90は、この加算演算を実施する1つまたは複数の構成要素を表現する。所望される場合、(コーディングループ内またはコーディングループ後のいずれかの)ループフィルタも、ピクセル遷移を平滑化するために、またはさもなければビデオ品質を改善するために使用され得る。フィルタユニット91は、デブロッキングフィルタ、適応ループフィルタ(ALF)、およびサンプル適応オフセット(SAO)フィルタなど、1つまたは複数のループフィルタを表現するものとする。図8では、フィルタユニット91はループ内フィルタであるとして示されているが、他の構成では、フィルタユニット91はループ後フィルタとして実装され得る。所与のフレームまたはピクチャ中の復号ビデオブロックは、次いで、後続の動き補償のために使用される参照ピクチャを記憶するピクチャメモリ92に記憶される。ピクチャメモリ92はまた、図1に示されているビデオ宛先デバイス122など、ディスプレイデバイス上で後で提示するために復号ビデオを記憶する。
【0213】
[0203]このようにして、図8の復号デバイス112は、図3に関して上記で説明された方法300を含む、本明細書で説明される技法のうちのいずれかを実施するように構成されたビデオデコーダの一例を表す。
【0214】
[0204]本開示の技法は、必ずしもワイヤレス適用例または設定に限定されるとは限らない。本技法は、オーバージエアテレビジョン放送、ケーブルテレビジョン送信、衛星テレビジョン送信、動的適応ストリーミングオーバーHTTP(DASH)などのインターネットストリーミングビデオ送信、データ記憶媒体上に符号化されたデジタルビデオ、データ記憶媒体に記憶されたデジタルビデオの復号、または他の適用例など、様々なマルチメディア適用例のいずれかをサポートするビデオコーディングに適用され得る。いくつかの例では、システムは、ビデオストリーミング、ビデオ再生、ビデオブロードキャスティング、および/またはビデオテレフォニーなどの適用例をサポートするために、一方向または双方向のビデオ送信をサポートするように構成され得る。
【0215】
[0205]本明細書で使用される「コンピュータ可読媒体」という用語は、限定はしないが、ポータブルまたは非ポータブル記憶デバイス、光記憶デバイス、ならびに(1つまたは複数の)命令および/またはデータを記憶、含有、または担持することが可能な様々な他の媒体を含む。コンピュータ可読媒体は、データがそこに記憶され得る非一時的媒体を含み得、それは、ワイヤレスにまたはワイヤード接続を介して伝搬する搬送波および/または一時的電子信号を含まない。非一時的媒体の例は、限定はしないが、磁気ディスクまたはテープ、コンパクトディスク(CD)またはデジタル多用途ディスク(DVD)などの光記憶媒体、フラッシュメモリ、メモリまたはメモリデバイスを含み得る。コンピュータ可読媒体は、プロシージャ、関数、サブプログラム、プログラム、ルーチン、サブルーチン、モジュール、ソフトウェアパッケージ、クラス、または命令、データ構造、もしくはプログラムステートメントの任意の組合せを表し得るコードおよび/または機械実行可能命令をその上に記憶していることがある。コードセグメントは、情報、データ、引数、パラメータ、またはメモリ内容をパスおよび/または受信することによって、別のコードセグメントまたはハードウェア回路に結合され得る。情報、引数、パラメータ、データなどは、メモリ共有、メッセージパッシング、トークンパッシング、ネットワーク送信などを含む、任意の好適な手段を介してパス、転送、または送信され得る。
【0216】
[0206]いくつかの実施形態では、コンピュータ可読記憶デバイス、媒体、およびメモリは、ビットストリーム等を含有するケーブル信号またはワイヤレス信号を含むことができる。ただし、言及される場合、非一時的なコンピュータ可読記憶媒体は、エネルギー、搬送波信号、電磁波、および信号自体などの媒体を明示的に除外する。
【0217】
[0207]具体的な詳細は、本明細書において提供される実施形態および例の完全な理解を提供するために、上記の説明において提供されている。しかしながら、実施形態はこれらの具体的な詳細なしに実施されてもよいことが、当業者によって理解されるであろう。解説を分かりやすくするために、いくつかの場合において、本技術は、デバイス、デバイス構成要素、ソフトウェア、またはハードウェアとソフトウェアとの組合せにおいて具現化される方法におけるステップまたはルーチンを備える機能的ブロックを含む、個々の機能的ブロックを含むものとして提示され得る。図に示されているおよび/または本明細書で説明される構成要素以外の追加の構成要素が使用され得る。たとえば、回路、システム、ネットワーク、プロセス、および他の構成要素は、実施形態を不必要な詳細で不明瞭にしないように、ブロック図の形式において構成要素として示され得る。他の場合において、周知の回路、プロセス、アルゴリズム、構造、および技法は、実施形態を不明瞭にすることを回避するために、不必要な詳細なしで図示され得る。
【0218】
[0208]個々の実施形態は、フローチャート、フロー図、データフロー図、構造図、またはブロック図として描かれるプロセスまたは方法として上述され得る。フローチャートは、動作を逐次的なプロセスとして説明し得るが、動作の多くは、並行してまたは同時に実施され得る。さらに、動作の順序は並べ替えられ得る。それの動作が完了されるとき、プロセスは終了されるが、図中に含まれない追加のステップを有し得る。プロセスは、方法、機能、手続き、サブルーチン、サブプログラム等に対応し得る。プロセスが機能に対応する場合、その終了は、呼出関数またはメイン関数への関数の戻り値に対応し得る。
【0219】
[0209]上述した例によるプロセスおよび方法は、記憶されている、またはさもなければコンピュータ可読媒体から利用可能である、コンピュータ実行可能な命令を使用して実装され得る。そのような命令は、たとえば、汎用コンピュータ、専用コンピュータ、もしくは処理デバイスに、一定の機能もしくは機能のグループを実行させる、またはさもなければ、汎用コンピュータ、専用コンピュータ、もしくは処理デバイスを一定の機能もしくは機能のグループを実施するように構成する、命令およびデータを含むことができる。使用されるコンピュータリソースの部分は、ネットワーク上でアクセス可能とすることができる。コンピュータ実行可能命令は、たとえば、バイナリ、アセンブリ言語などの中間フォーマット命令、ファームウェア、ソースコードなどであり得る。説明される例による方法期間中の命令、使用される情報、および/または作成される情報を記憶するために使用され得るコンピュータ可読媒体の例は、磁気ディスクまたは光ディスク、フラッシュメモリ、不揮発性メモリを備えたUSBデバイス、ネットワーク接続された記憶デバイス等を含む。
【0220】
[0210]これらの開示によるプロセスおよび方法を実装するデバイスは、ハードウェア、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、ハードウェア記述言語、またはそれらの任意の組合せを含むことができ、様々なフォームファクタのいずれかをとることができる。ソフトウェア、ファームウェア、ミドルウェア、またはマイクロコードにおいて実装される場合、必要なタスクを実施するためのプログラムコードまたはコードセグメント(たとえば、コンピュータプログラム製品)は、コンピュータ可読媒体または機械可読媒体に記憶され得る。プロセッサは、必要なタスクを実施し得る。フォームファクタの典型的な例は、ラップトップコンピュータ、スマートフォン、携帯電話、タブレットデバイスまたは他の小型フォームファクタパーソナルコンピュータ、携帯情報端末、ラックマウントデバイス、スタンドアロンデバイス等を含む。本明細書において説明される機能性は、周辺機器またはアドインカードにおいても具体化され得る。そのような機能性は、さらなる例として、異なるチップの中の回路基板または単一デバイス内で実行される異なるプロセス上でも実装され得る。
【0221】
[0211]命令、そのような命令を伝達するための媒体、それらを実行するためのコンピューティングリソース、およびそのようなコンピューティングリソースをサポートするための他の構造は、本開示において説明される機能を提供するための例示的な手段である。
【0222】
[0212]上記の説明では、本出願の態様がそれの特定の実施形態を参照しながら説明されたが、本出願はそれに限定されないことを、当業者は認識されよう。したがって、本出願の例示的な実施形態が本明細書で詳細に説明されているが、従来技術によって限定される場合を除いて、発明的概念が、場合によっては様々に具体化および採用され得、添付の特許請求の範囲が、そのような変形形態を含むように解釈されるものであることを理解されたい。上記で説明された適用例の様々な特徴および態様は、個々にまたは一緒に使用され得る。さらに、実施形態は、本明細書のより広い趣旨および範囲から逸脱せずに、本明細書において説明される環境およびアプリケーションを超える、任意の数の環境およびアプリケーションにおいて利用され得る。したがって、本明細書および図面は、制限的なものというよりもむしろ例示的なものとして考慮されるべきである。例示の目的のために、方法は、特定の順序で説明された。代替実施形態では、方法は、説明された順序とは異なる順序で実施され得ることを諒解されたい。
【0223】
[0213]本明細書で使用される、よりも小さい(「<」)、および、よりも大きい(「>」)のシンボルまたは専門用語は、本明細書の範囲から逸脱することなく、それぞれ、よりも小さいかまたはそれに等しい(「≦」)、および、よりも大きいかまたはそれに等しい(「≧」)のシンボルと置き換えられ得ることを、当業者は諒解されよう。
【0224】
[0214]構成要素が、ある動作を実施する「ように構成されて」いるものとして説明される場合、そのような構成は、たとえば、動作を実施するように電子回路または他のハードウェアを設計することによって、動作を実施するようにプログラマブル電子回路(たとえば、マイクロプロセッサ、または他の好適な電子回路)をプログラムすることによって、またはそれらの任意の組合せによって、達成され得る。
【0225】
[0215]「に結合される」という句は、直接的にもしくは間接的に別の構成要素に物理的に接続される任意の構成要素、および/または、直接的もしくは間接的に別の構成要素と通信する(たとえば、有線接続もしくはワイヤレス接続、および/または他の適切な通信インターフェース上で、他の構成要素に接続された)任意の構成要素を指す。
【0226】
[0216]セット「のうちの少なくとも1つ」、および/またはセットのうちの「1つもしくは複数」を具陳するクレームの文言または他の文言は、セットのうちの1つのメンバーまたは(任意の組合せにおける)セットのうちの複数のメンバーがクレームを満たすことを示す。たとえば、「AおよびBのうちの少なくとも1つ」または「AもしくはBのうちの少なくとも1つ」を具陳する特許請求の範囲の文言は、A、B、またはAおよびBを意味する。別の例では、「A、B、およびCのうちの少なくとも1つ」または「A、B、もしくはCのうちの少なくとも1つ」を具陳する特許請求の範囲の文言は、A、B、C、またはAおよびB、またはAおよびC、またはBおよびC、またはAおよびBおよびCを意味する。文言セットの「うちの少なくとも1つ」および/またはセットのうちの「1つもしくは複数」は、セットにリストされている項目にセットを限定しない。たとえば、「AおよびBのうちの少なくとも1つ」または「AもしくはBのうちの少なくとも1つ」を具陳するクレームの文言は、A、B、またはAおよびBを意味することができ、さらに、AおよびBのセットにリストされていない項目を含むことができる。
【0227】
[0217]本明細書において開示される実施形態に関連して説明される、様々な例示的な論理ブロック、モジュール、回路、およびアルゴリズムステップは、電子ハードウェア、コンピュータソフトウェア、ファームウェア、または、これらの組合せとして実装され得る。ハードウェアとソフトウェアとのこの互換性を明確に例示するために、様々な例示的な構成要素、ブロック、モジュール、回路、およびステップは、一般に、それらの機能性の観点から上述されている。そのような機能性がハードウェアとして実装されるか、またはソフトウェアとして実装されるかは、特定の適用例およびシステム全体に課される設計制約条件に依存する。熟練した技術者は、説明された機能性を特定の適用例ごとに様々な手法で実装し得るが、そのような実装上の決定は、本出願の範囲からの逸脱を引き起こすものとして解釈されるべきではない。
【0228】
[0218]本明細書において説明される技法は、電子ハードウェア、コンピュータソフトウェア、ファームウェア、または、これらの任意の組合せにおいても実装され得る。そのような技法は、汎用コンピュータ、ワイヤレス通信デバイスハンドセット、またはワイヤレス通信デバイスハンドセットおよび他のデバイスにおける適用を含む複数の用途を有する集積回路デバイスなど、様々なデバイスのいずれかにおいて実装され得る。モジュールまたは構成要素として説明された特徴は、集積論理デバイスに一緒に、または個別であるが相互運用可能な論理デバイスとして別個に実装され得る。ソフトウェアで実装された場合、本技法は、実行されたとき、上記で説明された方法のうちの1つまたは複数を実施する命令を含むプログラムコードを備えるコンピュータ可読データ記憶媒体によって、少なくとも部分的に実現され得る。コンピュータ可読データ記憶媒体は、パッケージングマテリアルを含み得る、コンピュータプログラム製品の一部を形成し得る。コンピュータ可読媒体は、同期型ダイナミックランダムアクセスメモリ(SDRAM)などのランダムアクセスメモリ(RAM)、読取り専用メモリ(ROM)、不揮発性ランダムアクセスメモリ(NVRAM)、電気消去可能プログラマブル読取り専用メモリ(EEPROM(登録商標))、フラッシュメモリ、磁気または光学データ記憶媒体など、メモリまたはデータ記憶媒体を備え得る。本技法は、追加または代替として、伝搬信号または電波など、命令またはデータ構造の形態でプログラムコードを搬送または伝達し、コンピュータによってアクセスされ、読み取られ、および/または実行され得るコンピュータ可読通信媒体によって、少なくとも部分的に実現され得る。
【0229】
[0219]プログラムコードは、1つまたは複数のデジタル信号プロセッサ(DSP)、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブル論理アレイ(FPGA)、または他の等価の集積回路もしくはディスクリート論理回路など、1つまたは複数のプロセッサを含み得るプロセッサによって実行され得る。そのようなプロセッサは、本開示で説明された技法のいずれかを実施するように構成され得る。汎用プロセッサはマイクロプロセッサであり得るが、代替として、プロセッサは、任意の従来のプロセッサ、コントローラ、マイクロコントローラ、または状態機械であり得る。プロセッサは、コンピューティングデバイスの組合せ、たとえば、DSPとマイクロプロセッサとの組合せ、複数のマイクロプロセッサ、DSPコアを併用する1つもしくは複数のマイクロプロセッサ、または、任意の他のそのような構成としても実装され得る。したがって、本明細書において使用されるような「プロセッサ」という用語は、前述の構造のいずれか、前述の構造の任意の組合せ、または、本明細書において説明される技法の実装に適した任意の他の構造もしくは装置を指し得る。さらに、いくつかの態様では、本明細書で説明された機能は、符号化および復号のために構成された専用のソフトウェアモジュールまたはハードウェアモジュール内に提供され得、あるいは複合ビデオエンコーダ/デコーダ(コーデック)に組み込まれ得る。
【0230】
[0220]本開示の例示的な例は、以下を含む。
【0231】
[0221]例1:ビデオデータを処理する方法であって、ビデオデータの現在のピクチャを取得することと、現在のピクチャのサイズが少なくとも1つの参照ピクチャのサイズとは異なると決定することと、現在のピクチャのサイズが少なくとも1つの参照ピクチャのサイズとは異なることに基づいて切替え可能な補間フィルタ処理の使用が使用不可(ディセーブル)にされると決定することと、現在のピクチャのサイズが少なくとも1つの参照ピクチャのサイズとは異なることに基づいて少なくとも1つの参照ピクチャの参照ピクチャリサンプリングを実施することと、を備える方法。
【0232】
[0222]例2。サイズを決定することがブロック単位で実施される、例1に記載の方法。
【0233】
[0223]例3。サイズを決定することがスライス単位で実施される、例1に記載の方法。
【0234】
[0224]例4。サイズを決定することがタイル単位で実施される、例1に記載の方法。
【0235】
[0225]例5。サイズを決定することがサブピクチャ単位で実施される、例1に記載の方法。
【0236】
[0226]例6。サイズを決定することがシーケンス単位で実施される、例1に記載の方法。
【0237】
[0227]例7。現在のピクチャのサイズが、現在のピクチャの復号されたピクチャサイズである、例1から6のいずれか1つに記載の方法。
【0238】
[0228]例8。現在のピクチャのサイズが、1つまたは複数の適合ウィンドウを適用した後の現在のピクチャのクロップされたピクチャサイズである、例1から6のいずれか1つに記載の方法。
【0239】
[0229]例9。参照ピクチャのサイズが、現在のピクチャの復号されたピクチャサイズと1つまたは複数のオフセットとに基づいて決定される、例1から8のいずれか1つに記載の方法。
【0240】
[0230]例10。現在のピクチャのサイズと適用されたオフセットをもつ参照ピクチャのサイズとに基づいて参照ピクチャリサンプリングを実施するためのスケーリング比を決定することをさらに備える、例1から9のいずれか1つに記載の方法。
【0241】
[0231]例11。切替え可能な補間フィルタ処理に関連する1つまたは複数のシンタックス要素は、切替え可能な補間フィルタ処理がブロックレベルで使用不可にされていることに基づいて、符号化されたビデオビットストリームを用いてブロックのためにシグナリングされない、例1から10のいずれか1つに記載の方法。
【0242】
[0232]例12。切替え可能な補間フィルタ処理に関連する1つまたは複数のシンタックス要素は、現在のピクチャのブロックのためのフィルタインデックスを示すシンタックス要素を含む、例11に記載の方法。
【0243】
[0233]例13。切替え可能な補間フィルタ処理がブロックレベルで使用不可にされていとき、およびブロックのためのフィルタインデックスがブロックの1つまたは複数の隣接ブロックから推測されるとき、フィルタインデックスは、修正され、ブロックの隣接ブロックから導出された動きベクトル候補のためのデフォルトフィルタインデックスに設定される、例1から12のいずれか1つに記載の方法。
【0244】
[0234]例14。デフォルトフィルタインデックスは、切替え可能な補間フィルタ処理が適用されないことを示す、例13に記載の方法。
【0245】
[0235]例15。デフォルトフィルタインデックスは、ブロックのために無視され、1つまたは複数の後続のブロックのための使用のためにブロックと一緒に記憶される、例13または14のいずれか1つに記載の方法。
【0246】
[0236]例16。現在のピクチャを含む符号化されたビデオビットストリームを生成することをさらに備える、例1から15のいずれか1つに記載の方法。
【0247】
[0237]例17。現在のピクチャを復号することをさらに備える、例1から15のいずれか1つに記載の方法。
【0248】
[0238]例18。ビデオデータを記憶するように構成されたメモリと、例1から17のいずれかに従ってビデオデータを処理するように構成されたプロセッサとを備える装置。
【0249】
[0239]例19。装置がエンコーダを含む、例18に記載の装置。
【0250】
[0240]例20。装置がデコーダを含む、例18に記載の装置。
【0251】
[0241]例21。装置がモバイルデバイスである、例18から20のいずれか1つに記載の装置。
【0252】
[0242]例22。ビデオデータを表示するように構成されたディスプレイをさらに備える、例18から21のいずれか1つに記載の装置。
【0253】
[0243]例23。1つまたは複数のピクチャをキャプチャするように構成されたカメラをさらに備える、例18から22のいずれか1つに記載の装置。
【0254】
[0244]例24。プロセッサによって実行されたとき、例1から17のいずれかに記載の方法を実施する命令を記憶したコンピュータ可読媒体。
【0255】
[0245]例24。ビデオデータを処理する方法であって、ビデオデータの現在のピクチャを取得することと、現在のピクチャのサイズが少なくとも1つの参照ピクチャのサイズとは異なるのかどうかを決定することと、フィルタをフィルタの第1のセットから選択すべきかまたはフィルタの第2のセットから選択すべきかを示すフィルタインデックスを取得することと、フィルタの第1のセットは、1つまたは複数の補間フィルタを含み、第2のセットは、少なくとも1つの参照ピクチャの参照ピクチャリサンプリングを実施するための1つまたは複数のフィルタを含み、現在のピクチャのサイズが少なくとも1つの参照ピクチャのサイズと異なるかどうかに基づいて、フィルタをフィルタの第1のセットから選択すべきかフィルタの第2のセットから選択すべきかを決定することとを備える方法。
【0256】
[0246]例25。現在のピクチャのサイズと少なくとも1つの参照ピクチャのサイズとが同じサイズであると決定することと、現在のピクチャのサイズと少なくとも1つの参照ピクチャのサイズとが同じサイズであると決定することに基づいて、フィルタの第1のセットからフィルタを選択することとをさらに備える、例24に記載の方法。
【0257】
[0247]例26。現在のピクチャのサイズが少なくとも1つの参照ピクチャのサイズとは異なると決定することと、現在のピクチャのサイズが少なくとも1つの参照ピクチャのサイズとは異なると決定することに基づいて、フィルタの第2のセットからフィルタを選択することとをさらに備える、例24に記載の方法。
【0258】
[0248]例27。ビデオデータを記憶するように構成されたメモリと、例24から26のいずれかに従ってビデオデータを処理するように構成されたプロセッサとを備える装置。
【0259】
[0249]例28。装置がエンコーダを含む、例27に記載の装置。
【0260】
[0250]例29。装置がデコーダを含む、例27に記載の装置。
【0261】
[0251]例30。装置がモバイルデバイスである、例27から29のいずれか1つに記載の装置。
【0262】
[0252]例31。ビデオデータを表示するように構成されたディスプレイをさらに備える、例27から30のいずれか1つに記載の装置。
【0263】
[0253]例32。1つまたは複数のピクチャをキャプチャするように構成されたカメラをさらに備える、例27から31のいずれか1つに記載の装置。
【0264】
[0254]例33。プロセッサによって実行されたとき、例24から26のいずれかに記載の方法を実施する命令を記憶したコンピュータ可読媒体。
【0265】
[0255]例34。ビデオデータを処理するための装置であって、命令を記憶する1つまたは複数のメモリユニットと、命令を実行する1つまたは複数のプロセッサと、を備え、1つまたは複数のプロセッサによる命令の実行は、1つまたは複数のプロセッサに、現在のピクチャと参照ピクチャとを取得することと、現在のピクチャの現在のブロックのためのフィルタインデックス情報を識別することと、現在のピクチャの第1のピクチャサイズ値と参照ピクチャの第2のピクチャサイズ値とが異なると決定することと、現在のピクチャの第1のピクチャサイズ値と参照ピクチャの第2のピクチャサイズ値とが異なるとの決定に基づいて、フィルタインデックス情報によって識別される現在のフィルタインデックスを使用せずにリサンプリングプロセスを実施することとを行わせる、装置。
【0266】
[0256]例35。ビデオデータを処理するための装置であって、命令を記憶する1つまたは複数のメモリユニットと、命令を実行する1つまたは複数のプロセッサと、を備え、1つまたは複数のプロセッサによる命令の実行は、1つまたは複数のプロセッサに、現在のピクチャと参照ピクチャとを取得することと、現在のピクチャの現在のブロックのためのフィルタインデックス情報を識別することと、現在のピクチャの第1のピクチャサイズ値と参照ピクチャの第2のピクチャサイズ値とが異なると決定することと、現在のピクチャの第1のピクチャサイズ値と参照ピクチャの第2のピクチャサイズ値とが異なるとの決定に基づいて、フィルタインデックス情報によって識別される現在のフィルタインデックスの代わりにデフォルトフィルタインデックス(たとえば、デフォルトインデックス値)を使用してサンプルレート変換プロセスを実施することとを行わせる、装置。
【0267】
[0257]例36。1つまたは複数のプロセッサによる命令の実行は、1つまたは複数のプロセッサに、現在のブロックとともにフィルタインデックス情報によって識別される現在のフィルタインデックスを記憶することと、現在のフィルタインデックスがフィルタインデックス情報によって識別されることに基づいて、後続のブロックのための動きベクトル候補導出において現在のフィルタインデックスを使用することと、をさらに行わせる、例34または35のいずれか1つに記載の装置。
【0268】
[0258]例37。1つまたは複数のプロセッサによる命令の実行は、1つまたは複数のプロセッサに、デフォルトフィルタインデックスを作成するために現在のフィルタインデックスを使用せずにサンプルレート変換プロセスが実施されるときに元の値を暫定的に置き換えるために現在のフィルタインデックスのためのデフォルト値を割り当てることと、サンプルレート変換プロセス後に、現在のフィルタインデックスの元の値を割り当てることと、をさらに行わせる、例34または35のいずれか1つに記載の装置。
【0269】
[0259]例38。現在のフィルタインデックスのためのデフォルト値は、代替的な切替え可能フィルタ処理がリサンプリングプロセスの一部として適用されないことを示す、例37に記載の装置。
【0270】
[0260]例39。フィルタインデックス情報は、ネイバーブロック情報を備え、現在のフィルタインデックスは、マージモード動きベクトル候補リスト導出中にネイバーブロック情報から導出される、例34から38のいずれか1つに記載の装置。
【0271】
[0261]例40。フィルタインデックス情報は、適応動きベクトル解像度(AMVR)モードシグナリングを備え、現在のフィルタインデックスは、AMVRモードシグナリングを通じてシグナリングされる、例34から39のいずれか1つに記載の装置。
【0272】
[0262]例41。サンプルレート変換プロセスは、動き補償プロセスである、例34から40のいずれか1つに記載の装置。
【0273】
[0263]例42。サンプルレート変換プロセスは、リサンプリングプロセスを含む、例34から41のいずれか1つに記載の装置。
【0274】
[0264]例43。サンプルレート変換プロセスは、補間プロセスを含む、例34から42のいずれか1つに記載の装置。
【0275】
[0265]例44。1つまたは複数のプロセッサによる命令の実行は、1つまたは複数のプロセッサに、現在のピクチャの現在のブロックのインター予測のために参照ピクチャを使用することをさらに行わせる、例34から43のいずれか1つに記載の装置。
【0276】
[0266]例45。1つまたは複数のプロセッサによる命令の実行は、1つまたは複数のプロセッサに、現在のフィルタインデックスがサンプルレート変換プロセスのために使用されないと決定することと、現在のフィルタインデックスがサンプルレート変換プロセスのために使用されないと決定することに応答して、現在のフィルタインデックスの値をデフォルト値と置き換えることと、をさらに行わせる、例34から44のいずれか1つに記載の装置。
【0277】
[0267]例46。1つまたは複数のプロセッサによる命令の実行は、1つまたは複数のプロセッサに、代替的な切替え可能フィルタが適用されないと決定するために、デフォルト値を処理することをさらに行わせる、例34から45のいずれか1つに記載の装置。
【0278】
[0268]例47。代替的な切替え可能フィルタは、平滑化フィルタである、例46に記載の装置。
【0279】
[0269]例48。現在のフィルタインデックスがサンプルレート変換プロセスにおいて使用されないという決定に応答して、現在のフィルタインデックス値がシグナリングされない、例34から47のいずれか1つに記載の装置。
【0280】
[0270]例49。現在のフィルタインデックスは、フィルタのセットから選択され、フィルタのセットのサブセットは、サンプルレート変換プロセスを実施するために使用され、フィルタのセットの残りの部分は、サンプルレート変換のために使用可能でない、例34から48のいずれか1つに記載の装置。
【0281】
[0271]例50。フィルタのセットの残りの部分からの現在のフィルタインデックスの選択が禁止されることを示すシンタックス要素を使用して現在のフィルタインデックスが選択される、例49のいずれか1つに記載の装置。
【0282】
[0272]例51。サンプルレート変換プロセスは、リサンプリングプロセスを含み、1つまたは複数のプロセッサによる命令の実行は、1つまたは複数のプロセッサに、補間のためのフィルタの第1のグループとリサンプリングのためのフィルタの第2のグループとを識別すること、ここにおいて、現在のフィルタインデックスは、フィルタの第2のグループからのものである、をさらに行わせる、例34から50のいずれか1つに記載の装置。
【0283】
[0273]例52。1つまたは複数のプロセッサによる命令の実行は、1つまたは複数のプロセッサに、第2の現在のピクチャと第2の参照ピクチャとを取得することと、第2の現在のピクチャの第3のピクチャサイズ値と第2の参照ピクチャの第4のピクチャサイズ値とが同じサイズ値であると決定することと、第2の現在のピクチャの第3のピクチャサイズ値と第2の参照ピクチャの第4のピクチャサイズ値とが同じサイズ値であると決定することに基づいて、第2の選択されたフィルタを使用して第2の現在のブロックのための第2のリサンプリングプロセスを実施することと、ここにおいて、第2の選択されたフィルタは、フィルタの第1のグループからのものである、をさらに行わせる、例51に記載の装置。
【0284】
[0274]例53。フィルタの第1のグループとフィルタの第2のグループとの各フィルタは、関連するフィルタインデックスによって識別され、関連するフィルタインデックスは、補間のためのフィルタセットまたはリサンプリングのためのフィルタセットからの関連するインデックス値を示す、例51または52のいずれか1つに記載の装置。
【0285】
[0275]例54。1つまたは複数のプロセッサによる命令の実行は、1つまたは複数のプロセッサに、選択されたフィルタインデックス値のためのルックアップ演算によって、フィルタインデックスから現在のフィルタインデックスを取得すること、ここにおいて、選択されたフィルタインデックス値は、フィルタの第2のグループに関連付けられ、選択されたフィルタインデックス値とフィルタの第2のグループとの間の関連付けは、第1のピクチャサイズ値と第2のピクチャサイズ値とが異なると決定することに基づく、をさらに行わせる、例51から53のいずれか1つに記載の装置。
【0286】
[0276]例55。現在のピクチャの第1のピクチャサイズ値と参照ピクチャの第2のピクチャサイズ値とが異なると決定することは、現在のピクチャの幅が参照ピクチャの幅とは異なることと、現在のピクチャの高さが参照ピクチャの高さとは異なることとのうちの少なくとも1つを決定することを備える、例34から54のいずれか1つに記載の装置。
【0287】
[0277]例56。1つまたは複数のプロセッサによる命令の実行は、1つまたは複数のプロセッサに、現在のピクチャと参照ピクチャとを備える符号化されたビデオビットストリームを生成することをさらに行わせる、例34から55のいずれか1つに記載の装置。
【0288】
[0278]例57。1つまたは複数のプロセッサによる命令の実行は、1つまたは複数のプロセッサに、復号デバイスに符号化されたビデオビットストリームを送ること、符号化されたビデオビットストリームはシグナリング情報とともに送られ、シグナリング情報は、デフォルトフィルタインデックスを備える、をさらに行わせる、例56に記載の装置。
【0289】
[0279]例58。1つまたは複数のプロセッサによる命令の実行は、1つまたは複数のプロセッサに、符号化されたビデオビットストリームを記憶することをさらに行わせる、例56または57のいずれか1つに記載の装置。
【0290】
[0280]例59。1つまたは複数のプロセッサによる命令の実行は、1つまたは複数のプロセッサに、現在のピクチャと参照ピクチャとを備える符号化されたビデオビットストリームを取得することと、符号化されたビデオビットストリームに関連するシグナリング情報を識別することと、シグナリング情報は、フィルタインデックス情報を備え、符号化されたビデオビットストリームから現在のピクチャの現在のブロックを復号することと、をさらに行わせる、例56から58のいずれか1つに記載の装置。
【0291】
[0281]例60。符号化されたビデオビットストリームから現在のピクチャの現在のブロックを復号することは、デフォルトフィルタインデックスに基づいて現在のブロックを再構築することを備える、例34から55のいずれか1つに記載の装置。
【0292】
[0282]例61。装置がモバイルデバイスである、例34から60のいずれか1つに記載の装置。
【0293】
[0283]例62。装置は、ビデオデータを表示するように構成されたディスプレイを含む、例34から61のいずれか1つに記載の装置。
【0294】
[0284]例63。装置は、ビデオデータの1つまたは複数のビデオフレームをキャプチャするように構成されたカメラを含む、例34から62のいずれか1つに記載の装置。
【0295】
[0285]例64。上記の例34から63のいずれか1つに記載の方法。
【0296】
[0286]例65。デバイスによって実行されたとき、デバイスに、上記の例34から63のいずれかによる動作を実施させる命令を備える非一時的コンピュータ可読記憶媒体。
【0297】
[0287]例66。上記の例34から63による任意の動作を実施するための手段を含む装置。
以下に本願の出願当初の特許請求の範囲に記載された発明を付記する。
[C1]
ビデオデータを処理する方法であって、
現在のピクチャと参照ピクチャとを取得することと、
前記現在のピクチャの現在のブロックのためのフィルタインデックス情報を識別することと、
前記現在のピクチャの第1のピクチャサイズ値と前記参照ピクチャの第2のピクチャサイズ値とが異なると決定することと、
前記現在のピクチャの前記第1のピクチャサイズ値と前記参照ピクチャの前記第2のピクチャサイズ値とが異なると前記決定することに基づいて、前記フィルタインデックス情報によって識別される現在のフィルタインデックスの代わりにデフォルトフィルタインデックスを使用して、サンプルレート変換プロセスを実施することと、
を備える方法。
[C2]
前記現在のブロックとともに前記フィルタインデックス情報によって識別される前記現在のフィルタインデックスを記憶することと、
前記現在のフィルタインデックスが前記フィルタインデックス情報によって識別されることに基づいて、後続のブロックのための動きベクトル候補導出において前記現在のフィルタインデックスを使用することと、
をさらに備える、C1に記載の方法。
[C3]
前記デフォルトフィルタインデックスを作成するために前記現在のフィルタインデックスを使用せずに前記サンプルレート変換プロセスが実施されるときに元の値を暫定的に置き換えるために前記現在のフィルタインデックスのためのデフォルト値を割り当てることと、
前記サンプルレート変換プロセス後に前記現在のフィルタインデックスの前記元の値を割り当てることと、
をさらに備える、C1に記載の方法。
[C4]
前記現在のフィルタインデックスのための前記デフォルト値は、代替的な切替え可能フィルタ処理が前記サンプルレート変換プロセスの一部として適用されないことを示す、C3に記載の方法。
[C5]
前記フィルタインデックス情報は、ネイバーブロック情報を備え、前記現在のフィルタインデックスは、マージモード動きベクトル候補リスト導出中に前記ネイバーブロック情報から導出される、C1に記載の方法。
[C6]
前記フィルタインデックス情報は、適応動きベクトル解像度(AMVR)モードシグナリングを備え、前記現在のフィルタインデックスは、前記AMVRモードシグナリングを通じてしてシグナリングされる、C1に記載の方法。
[C7]
前記サンプルレート変換プロセスは、動き補償プロセスである、C1に記載の方法。
[C8]
前記サンプルレート変換プロセスは、リサンプリングプロセスを含む、C1に記載の方法。
[C9]
前記サンプルレート変換プロセスは、補間プロセスを含む、C1に記載の方法。
[C10]
前記現在のピクチャの前記現在のブロックのインター予測のために前記参照ピクチャを使用することをさらに備える、C1に記載の方法。
[C11]
前記現在のフィルタインデックスが前記サンプルレート変換プロセスのために使用されないと決定することと、
前記現在のフィルタインデックスが前記サンプルレート変換プロセスのために使用されないと前記決定することに応答して、前記現在のフィルタインデックスの値をデフォルト値と置き換えることと、
をさらに備える、C1に記載の方法。
[C12]
代替的な切替え可能フィルタが適用されないと決定するために、前記デフォルト値を処理することをさらに備える、C11に記載の方法。
[C13]
前記代替的な切替え可能フィルタは、平滑化フィルタである、C12に記載の方法。
[C14]
前記現在のフィルタインデックスが前記サンプルレート変換プロセスにおいて使用されないという決定に応答して、現在のフィルタインデックス値がシグナリングされない、C1に記載の方法。
[C15]
前記現在のフィルタインデックスは、フィルタのセットから選択され、フィルタの前記セットのサブセットは、前記サンプルレート変換プロセスを実施するために使用され、フィルタの前記セットの残りの部分は、サンプルレート変換のために使用可能でない、C1に記載の方法。
[C16]
フィルタの前記セットの前記残りの部分からの前記現在のフィルタインデックスの選択が禁止されることを示すシンタックス要素を使用して、前記現在のフィルタインデックスが選択される、C15に記載の方法。
[C17]
前記サンプルレート変換プロセスは、リサンプリングプロセスを含み、
補間のためのフィルタの第1のグループと、リサンプリングのためのフィルタの第2のグループとを識別すること、ここにおいて、前記現在のフィルタインデックスは、フィルタの前記第2のグループからのものである、
をさらに備える、C1に記載の方法。
[C18]
第2の現在のピクチャと第2の参照ピクチャとを取得することと、
前記第2の現在のピクチャの第3のピクチャサイズ値と前記第2の参照ピクチャの第4のピクチャサイズ値とが同じサイズ値であると決定することと、
前記第2の現在のピクチャの前記第3のピクチャサイズ値と前記第2の参照ピクチャの前記第4のピクチャサイズ値とが前記同じサイズ値であると決定することに基づいて、第2の選択されたフィルタを使用して第2の現在のブロックのための第2のリサンプリングプロセスを実施することと、ここにおいて、前記第2の選択されたフィルタは、フィルタの前記第1のグループからのものである、
をさらに備える、C17に記載の方法。
[C19]
フィルタの前記第1のグループとフィルタの前記第2のグループとの各フィルタは、関連するフィルタインデックスによって識別され、前記関連するフィルタインデックスは、補間のためのフィルタセットまたはリサンプリングのためのフィルタセットからの関連するインデックス値を示す、C17に記載の方法。
[C20]
選択されたフィルタインデックス値のためのルックアップ演算によって、フィルタインデックスから前記現在のフィルタインデックスを取得すること、をさらに備え、
前記選択されたフィルタインデックス値は、フィルタの前記第2のグループに関連付けられ、
前記選択されたフィルタインデックス値とフィルタの前記第2のグループとの間の関連付けは、前記第1のピクチャサイズ値と前記第2のピクチャサイズ値とが異なると決定することに基づく、
C17に記載の方法。
[C21]
前記現在のピクチャの前記第1のピクチャサイズ値と前記参照ピクチャの前記第2のピクチャサイズ値とが異なると決定することは、
現在のピクチャの幅が参照ピクチャの幅とは異なること、および、
現在のピクチャの高さが参照ピクチャの高さとは異なること、
のうちの少なくとも1つを決定することを備える、C1に記載の方法。
[C22]
前記現在のピクチャと前記参照ピクチャとを備える符号化されたビデオビットストリームを生成すること、
をさらに備える、C1に記載の方法。
[C23]
復号デバイスに前記符号化されたビデオビットストリームを送ること、前記符号化されたビデオビットストリームはシグナリング情報とともに送られ、前記シグナリング情報は、前記デフォルトフィルタインデックスを備える、
をさらに備える、C22に記載の方法。
[C24]
前記符号化されたビデオビットストリームを記憶すること、
をさらに備える、C22に記載の方法。
[C25]
前記現在のピクチャと前記参照ピクチャとを備える符号化されたビデオビットストリームを取得することと、
前記符号化されたビデオビットストリームに関連するシグナリング情報を識別することと、前記シグナリング情報は、前記フィルタインデックス情報を備え、
前記符号化されたビデオビットストリームから前記現在のピクチャの前記現在のブロックを復号することと、
をさらに備える、C1に記載の方法。
[C26]
前記符号化されたビデオビットストリームから前記現在のピクチャの前記現在のブロックを復号することは、前記デフォルトフィルタインデックスに基づいて前記現在のブロックを再構築することを備える、C25に記載の方法。
[C27]
ビデオデータを処理するための装置であって、
命令を記憶する1つまたは複数のメモリユニットと、
前記命令を実行する1つまたは複数のプロセッサと、を備え、前記1つまたは複数のプロセッサによる前記命令の実行は、前記1つまたは複数のプロセッサに、
現在のピクチャと参照ピクチャとを取得することと、
前記現在のピクチャの現在のブロックのためのフィルタインデックス情報を識別することと、
前記現在のピクチャの第1のピクチャサイズ値と前記参照ピクチャの第2のピクチャサイズ値とが異なると決定することと、
前記現在のピクチャの前記第1のピクチャサイズ値と前記参照ピクチャの前記第2のピクチャサイズ値とが異なるとの決定に基づいて、前記フィルタインデックス情報によって識別される現在のフィルタインデックスの代わりにデフォルトフィルタインデックスを使用してサンプルレート変換プロセスを実施することと、
を行わせる、装置。
[C28]
前記1つまたは複数のプロセッサによる前記命令の前記実行は、前記1つまたは複数のプロセッサに、
前記現在のブロックとともに前記フィルタインデックス情報によって識別される前記現在のフィルタインデックスを記憶することと、
前記現在のフィルタインデックスが前記フィルタインデックス情報によって識別されることに基づいて、後続のブロックのための動きベクトル候補導出において前記現在のフィルタインデックスを使用することと、
をさらに行わせる、C27に記載の装置。
[C29]
前記1つまたは複数のプロセッサによる前記命令の前記実行は、前記1つまたは複数のプロセッサに、
前記デフォルトフィルタインデックスを作成するために前記現在のフィルタインデックスを使用せずに前記サンプルレート変換プロセスが実施されるときに元の値を暫定的に置き換えるために前記現在のフィルタインデックスのためのデフォルト値を割り当てることと、
前記サンプルレート変換プロセス後に前記現在のフィルタインデックスの前記元の値を割り当てることと、
をさらに行わせる、C27に記載の装置。
[C30]
前記現在のフィルタインデックスのための前記デフォルト値は、代替的な切替え可能フィルタ処理が前記サンプルレート変換プロセスの一部として適用されないことを示す、C29に記載の装置。
[C31]
前記フィルタインデックス情報は、ネイバーブロック情報を備え、前記現在のフィルタインデックスは、マージモード動きベクトル候補リスト導出中に前記ネイバーブロック情報から導出される、C27に記載の装置。
[C32]
前記フィルタインデックス情報は、適応動きベクトル解像度(AMVR)モードシグナリングを備え、前記現在のフィルタインデックスは、前記AMVRモードシグナリングを通じてシグナリングされる、C27に記載の装置。
[C33]
前記サンプルレート変換プロセスは、動き補償プロセスである、C27に記載の装置。
[C34]
前記サンプルレート変換プロセスは、リサンプリングプロセスを含む、C27に記載の装置。
[C35]
前記サンプルレート変換プロセスは、補間プロセスを含む、C27に記載の装置。
[C36]
前記1つまたは複数のプロセッサによる前記命令の前記実行は、前記1つまたは複数のプロセッサに、前記現在のピクチャの前記現在のブロックのインター予測のために前記参照ピクチャを使用することをさらに行わせる、C27に記載の装置。
[C37]
前記1つまたは複数のプロセッサによる前記命令の前記実行は、前記1つまたは複数のプロセッサに、
前記現在のフィルタインデックスが前記サンプルレート変換プロセスのために使用されないと決定することと、
前記現在のフィルタインデックスが前記サンプルレート変換プロセスのために使用されないと前記決定することに応答して、前記現在のフィルタインデックスの値をデフォルト値と置き換えることと、
をさらに行わせる、C27に記載の装置。
[C38]
前記1つまたは複数のプロセッサによる前記命令の前記実行は、前記1つまたは複数のプロセッサに、代替的な切替え可能フィルタが適用されないと決定するために、前記デフォルト値を処理することをさらに行わせる、C37に記載の装置。
[C39]
前記代替的な切替え可能フィルタは、平滑化フィルタである、C38に記載の装置。
[C40]
前記現在のフィルタインデックスが前記サンプルレート変換プロセスにおいて使用されないという決定に応答して、現在のフィルタインデックス値がシグナリングされない、C27に記載の装置。
[C41]
前記現在のフィルタインデックスは、フィルタのセットから選択され、フィルタの前記セットのサブセットは、前記サンプルレート変換プロセスを実施するために使用され、フィルタの前記セットの残りの部分は、サンプルレート変換のために使用可能でない、C27に記載の装置。
[C42]
フィルタの前記セットの前記残りの部分からの前記現在のフィルタインデックスの選択が禁止されることを示すシンタックス要素を使用して、前記現在のフィルタインデックスが選択される、C41に記載の装置。
[C43]
前記サンプルレート変換プロセスは、リサンプリングプロセスを含み、
前記1つまたは複数のプロセッサによる前記命令の前記実行は、前記1つまたは複数のプロセッサに、
補間のためのフィルタの第1のグループと、リサンプリングのためのフィルタの第2のグループとを識別すること、ここにおいて、前記現在のフィルタインデックスは、フィルタの前記第2のグループからのものである、
をさらに行わせる、C27に記載の装置。
[C44]
前記1つまたは複数のプロセッサによる前記命令の前記実行は、前記1つまたは複数のプロセッサに、
第2の現在のピクチャと第2の参照ピクチャとを取得することと、
前記第2の現在のピクチャの第3のピクチャサイズ値と前記第2の参照ピクチャの第4のピクチャサイズ値とが同じサイズ値であると決定することと、
前記第2の現在のピクチャの前記第3のピクチャサイズ値と前記第2の参照ピクチャの前記第4のピクチャサイズ値とが前記同じサイズ値であると決定することに基づいて、第2の選択されたフィルタを使用して第2の現在のブロックのための第2のリサンプリングプロセスを実施することと、ここにおいて、前記第2の選択されたフィルタは、フィルタの前記第1のグループからのものである、
をさらに行わせる、C43に記載の装置。
[C45]
フィルタの前記第1のグループとフィルタの前記第2のグループとの各フィルタは、関連するフィルタインデックスによって識別され、前記関連するフィルタインデックスは、補間のためのフィルタセットまたはリサンプリングのためのフィルタセットからの関連するインデックス値を示す、C43に記載の装置。
[C46]
前記1つまたは複数のプロセッサによる前記命令の前記実行は、前記1つまたは複数のプロセッサに、
選択されたフィルタインデックス値のためのルックアップ演算によって、フィルタインデックスから前記現在のフィルタインデックスを取得すること、をさらに行わせ、
前記選択されたフィルタインデックス値は、フィルタの第2のグループに関連付けられ、
前記選択されたフィルタインデックス値とフィルタの前記第2のグループとの間の関連付けは、前記第1のピクチャサイズ値と前記第2のピクチャサイズ値とが異なると決定することに基づく、
C27に記載の装置。
[C47]
前記現在のピクチャの前記第1のピクチャサイズ値と前記参照ピクチャの前記第2のピクチャサイズ値とが異なると決定することは、
現在のピクチャの幅が参照ピクチャの幅とは異なること、および、
現在のピクチャの高さが参照ピクチャの高さとは異なること、
のうちの少なくとも1つを決定することを備える、C27に記載の装置。
[C48]
前記1つまたは複数のプロセッサによる前記命令の実行は、前記1つまたは複数のプロセッサに、
前記現在のピクチャと前記参照ピクチャとを備える符号化されたビデオビットストリームを生成すること、
を行わせる、C27に記載の装置。
[C49]
前記1つまたは複数のプロセッサによる前記命令の実行は、前記1つまたは複数のプロセッサに、
復号デバイスに前記符号化されたビデオビットストリームを送ること、前記符号化されたビデオビットストリームはシグナリング情報とともに送られ、前記シグナリング情報は、前記デフォルトフィルタインデックスを備える、
を行わせる、C48に記載の装置。
[C50]
前記1つまたは複数のプロセッサによる前記命令の実行は、前記1つまたは複数のプロセッサに、
前記符号化されたビデオビットストリームを記憶すること、
を行わせる、C48に記載の装置。
[C51]
前記1つまたは複数のプロセッサによる前記命令の実行は、前記1つまたは複数のプロセッサに、
前記現在のピクチャと前記参照ピクチャとを備える符号化されたビデオビットストリームを取得することと、
前記符号化されたビデオビットストリームに関連するシグナリング情報を識別することと、前記シグナリング情報は、前記フィルタインデックス情報を備え、
前記符号化されたビデオビットストリームから前記現在のピクチャの前記現在のブロックを復号することと、
を行わせる、C27に記載の装置。
[C52]
前記符号化されたビデオビットストリームから前記現在のピクチャの前記現在のブロックを復号することは、前記デフォルトフィルタインデックスに基づいて前記現在のブロックを再構築することを備える、C51に記載の装置。
[C53]
前記装置がモバイルデバイスである、C27に記載の装置。
[C54]
前記装置は、前記ビデオデータを表示するように構成されるディスプレイを含む、C27に記載の装置。
[C55]
前記装置は、前記ビデオデータの1つまたは複数のビデオフレームをキャプチャするように構成されたカメラを含む、C27に記載の装置。
図1
図2A
図2B
図3
図4
図5
図6
図7
図8