【文献】
Bin Li, et al.,Non-SCCE1: Unification of intra BC and inter modes,Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11 18th Meeting: Sapporo, JP, JCTVC-R0100,2014年 6月20日,pp. 1-27
(58)【調査した分野】(Int.Cl.,DB名)
前記IBCシンタックス要素がcurr_pic_as_ref_enabled_flagシンタックス要素を備え、前記IBCモードが前記スライスに有効であると決定するために前記IBCシンタックス要素を解析することが、前記curr_pic_as_ref_enabled_flagシンタックス要素の値が1に等しいと決定することを備える、請求項1または3に記載の方法。
前記スライスタイプシンタックス要素がslice_typeシンタックス要素を備え、前記スライスがIスライスであると決定するために前記スライスに関連付けられた前記スライスタイプシンタックス要素を解析することが、前記slice_typeシンタックス要素の値が2に等しいと決定することを備える、請求項3に記載の方法。
前記IBCシンタックス要素がcurr_pic_as_ref_enabled_flagシンタックス要素を備え、前記IBCモードが前記スライスに有効であると決定するために前記IBCシンタックス要素を解析するための前記手段が、前記curr_pic_as_ref_enabled_flagシンタックス要素の値が1に等しいと決定するための手段を備える、請求項7に記載の装置。
前記スライスタイプシンタックス要素がslice_typeシンタックス要素を備え、前記スライスがIスライスであると決定するために前記スライスに関連付けられた前記スライスタイプシンタックス要素を解析するための前記手段が、前記slice_typeシンタックス要素の値が2に等しいと決定するための手段を備える、請求項9に記載の装置。
【発明を実施するための形態】
【0013】
[0019]ビデオシーケンスは、一般に、ピクチャのシーケンスとして表される。通常、ブロックベースのコーディング技法は、個々のピクチャの各々をコーディングするために使用される。すなわち、各ピクチャはブロックに分割され、ブロックの各々は個別にコーディングされる。ビデオデータのブロックをコーディングすることは、概して、ブロック用の(for)予測値を形成することと、元のブロックと予測値との間の差分を表す残差値をコーディングすることとを伴う。具体的には、ビデオデータの元のブロックはピクセル値の行列を含み、予測値は予測ピクセル値の行列を含む。残差値は、元のブロックのピクセル値と予測ピクセル値との間のピクセルごとの差分に対応し、その結果(such that)、予測値に残差値を加算することが、元の値を近似する。
【0014】
[0020]ビデオデータのブロックのための予測技法は、一般に、イントラ予測またはインター予測として分類される。イントラ予測、すなわち空間予測は、概して、予測されているブロックと同じピクチャ内の前にコーディングされたブロックの一部である隣接ピクセル値からブロックを予測することを伴う。インター予測、すなわち時間予測は、概して、前にコーディングされたピクチャ(たとえば、フレームまたはスライス)のピクセル値からブロックを予測することを伴う。
【0015】
[0021]リモートデスクトップ、リモートゲーミング、ワイヤレスディスプレイ、自動車のインフォテインメント、クラウドコンピューティングなどの多くのアプリケーションが、日常生活におけるルーチンになっている。これらのアプリケーションにおけるビデオコンテンツは、通常、自然のコンテンツ、テキスト、人工グラフィックス、および他のコンテンツの組合せである。テキスト領域および人工グラフィックス領域では、(文字、アイコン、シンボルなどの)反復パターンがしばしば存在する。
【0016】
[0022](イントラBCまたはIBCと短縮される)イントラブロックコピーと呼ばれる場合があり、時々イントラ動き補償(イントラMCまたはIMC)とも呼ばれる、同じピクチャ内のビデオデータの予測ブロックからのビデオデータのブロックのイントラ予測は、ビデオコーダが冗長性を除去し、イントラフレームコーディング効率を向上させることを可能にすることができる技法である。通常のイントラ予測コーディングでは、ビデオコーダ(たとえば、ビデオエンコーダおよびビデオデコーダ)は、現在ビデオブロックの予測のために、同じピクチャ内のビデオデータの現在ブロックの真上もしくは真下(directly above or below)、または現在ブロックに対して水平方向に一直線上にある、前に復元された(reconstructed)ビデオデータのブロックを使用する。言い換えれば、ビデオデータのピクチャまたはフレームが2−Dグリッドに組み付けられた(is imposed)場合、ビデオデータの各ブロックは、x値およびy値の一意の(unique)範囲を占有する。したがって、いくつかのビデオコーダは、x値が同じである(すなわち、現在ビデオブロックに対して垂直方向に一直線上にある)セット、またはy値が同じである(すなわち、現在ビデオブロックに対して水平方向に一直線上にある)セットのみを共有する、同じピクチャ内の前にコーディングされたビデオデータのブロックに基づいて、ビデオデータの現在ブロックを予測することができる。
【0017】
[0023]同じフレームまたは同じピクチャ内にあるが、ビデオデータの現在ブロックの真上もしくはすぐ左(directly above or to the left)(またはすぐ右もしくは真下)とは限らないビデオデータの前に復元されたブロックから現在ビデオブロックを予測することは、ビデオコーダにとって有利な場合がある。予測セット内により多くのビデオブロックを含めることにより、ビデオコーダは、現在ビデオブロックのより正確な予測を実現することができ、それにより、コーディング効率が向上する。
【0018】
[0024]概して、本開示は、IBCモードと呼ばれる場合がある、同じピクチャ内のビデオデータの予測ブロックからビデオデータのブロックをイントラ予測するためのモードを含む、ビデオデータをコーディングするための技法を記載する。本開示のIBC技法は、ビデオデータの現在ブロックのためのビデオデータの予測ブロックを識別することを含む場合がある(may)。ビデオデータの予測ブロックは、たとえば、ビデオデータの現在ブロックと同じピクチャ内のビデオデータの復元ブロックに対応する場合がある。ビデオデータの予測ブロックは、ピクチャ内にある対象領域(intended region)内からの場合がある。対象領域は、IBC予測領域と呼ばれる場合もある。対象領域は、たとえば、ビデオデータの現在ブロックの上、右上、左上、および/または左の領域に対応する場合がある。ビデオデータの予測ブロックは、現在ビデオブロックのすぐ上またはすぐ左のいずれかであると限定されるものではなく、その結果、現在ブロックに対して予測ブロックを識別するために使用されるベクトルは、必ずしも1次元ベクトルとは限らない。代わりに、ビデオデータの予測ブロックを識別または決定するために、ビデオコーダは、ビデオデータの現在ブロックに対する水平変位成分および垂直変位成分を含む2次元ベクトルを定義する1つまたは複数のシンタックス要素をコーディングすることができる。2次元ベクトルは、ブロックベクトル、オフセットベクトル、または動きベクトルと呼ばれる場合があり、たとえば、現在ベクトルの左上隅に対する(relative to)予測ブロックを識別するために使用される場合がある。
【0019】
[0025]本開示は、既存のビデオコーディング技法を改善することができ、より具体的には、既存のIBC関連ビデオコーディング技法を改善することができる技法を記載する。本開示の技法は、いくつかのコーディングシナリオでは、たとえば、スライスレベルでIBCを有効にすることにより、IBCの使用のより精細な制御を可能にすることができる。提案された技法は、任意のビット深度、クロマサンプリングフォーマットなどとともに使用される場合がある。
【0020】
[0026]本明細書で使用する「ビデオコーダ」という用語は、ビデオエンコーダとビデオデコーダの両方を総称的に指す。本開示では、「ビデオコーディング」または「コーディング」という用語は、ビデオ符号化またはビデオ復号を総称的に指す場合がある。したがって、別段に明記されていない限り、コーディングに関して記載される技法は、ビデオエンコーダまたはビデオデコーダのいずれかによって実施される場合があることが想定されるべきである。本出願のいくつかの部分では、ビデオ復号またはビデオデコーダに関して、ある特定の(certain)技法が記載される場合がある。しかしながら、そのような技法はビデオ符号化に適用可能ではなく、ビデオエンコーダによって実施されない場合があると想定されるべきではない。そのような技法は、たとえば、ビデオデータをどのように符号化するべきかを決定することの一部として実施される場合があるか、またはビデオエンコーダにおけるビデオ復号ループの一部として実施される場合がある。
【0021】
[0027]本開示で使用されるように、現在ブロックという用語は、すでにコーディングされているか、またはさらに(yet)コーディングされるべきブロックとは反対に、現在コーディングされているブロックを指す。同様に、現在コーディングユニット、予測ユニット、または変換ユニットは、現在コーディングされている、変換ユニット、予測ユニット、またはコーディングユニットを指す。
【0022】
[0028]
図1は、本開示に記載される技法を利用することができる、例示的なビデオ符号化および復号システム10を示すブロック図である。
図1に示されたように、システム10は、宛先デバイス14によって後で復号されるべき符号化ビデオデータを生成するソースデバイス12を含む。ソースデバイス12および宛先デバイス14は、デスクトップコンピュータ、ノートブック(すなわち、ラップトップ)コンピュータ、タブレットコンピュータ、セットトップボックス、いわゆる「スマート」フォン、いわゆる「スマート」パッドなどの電話ハンドセット、テレビジョン、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲームコンソール、ビデオストリーミングデバイスなどを含む、広範囲のデバイスのいずれかを備える場合がある。場合によっては、ソースデバイス12および宛先デバイス14は、ワイヤレス通信に対応する場合がある。
【0023】
[0029]宛先デバイス14は、リンク16を介して、復号されるべき符号化ビデオデータを受信することができる。リンク16は、ソースデバイス12から宛先デバイス14に符号化ビデオデータを移動することが可能な任意のタイプの媒体またはデバイスを備える場合がある。一例では、リンク16は、ソースデバイス12がリアルタイムで符号化ビデオデータを宛先デバイス14に直接送信することを可能にする通信媒体を備える場合がある。符号化ビデオデータは、ワイヤレス通信プロトコルなどの通信規格に従って変調され、宛先デバイス14に送信される場合がある。通信媒体は、無線周波数(RF)スペクトルまたは1つもしくは複数の物理伝送線路などの、任意のワイヤレスまたは有線の通信媒体を備える場合がある。通信媒体は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはインターネットなどのグローバルネットワークなどのパケットベースネットワークの一部を形成する場合がある。通信媒体には、ルータ、スイッチ、基地局、または、ソースデバイス12から宛先デバイス14への通信を容易にするために有用であり得る任意の他の機器が含まれる場合がある。
【0024】
[0030]代替として、符号化データは、出力インターフェース22からストレージデバイス26に出力される場合がある。同様に、符号化データは、入力インターフェースによってストレージデバイス26からアクセスされる場合がある。ストレージデバイス26には、ハードドライブ、Blu−ray(登録商標)ディスク、DVD、CD−ROM、フラッシュメモリ、揮発性メモリもしくは不揮発性メモリ、または符号化ビデオデータを記憶するための任意の他の適切なデジタル記憶媒体などの、様々な分散された、またはローカルにアクセスされるデータ記憶媒体のいずれかが含まれる場合がある。さらなる一例では、ストレージデバイス26は、ソースデバイス12によって生成された符号化ビデオを保持することができるファイルサーバまたは別の中間ストレージデバイスに対応する場合がある。宛先デバイス14は、ストリーミングまたはダウンロードを介して、ストレージデバイス26から記憶されたビデオデータにアクセすることができる。ファイルサーバは、符号化ビデオデータを記憶すること、および宛先デバイス14にその符号化ビデオデータを送信することが可能な任意のタイプのサーバであり得る。例示的なファイルサーバには、(たとえば、ウェブサイト用の)ウェブサーバ、FTPサーバ、ネットワーク接続ストレージ(NAS)デバイス、またはローカルディスクドライブが含まれる。宛先デバイス14は、インターネット接続を含む任意の標準的なデータ接続を介して、符号化ビデオデータにアクセスすることができる。これは、ファイルサーバに記憶された符号化ビデオデータにアクセスすることに適した、ワイヤレスチャネル(たとえば、Wi−Fi(登録商標)接続)、有線接続(たとえば、DSL、ケーブルモデムなど)、または両方の組合せを含む場合がある。記憶デバイス26からの符号化ビデオデータの送信は、ストリーミング送信、ダウンロード送信、または両方の組合せであり得る。
【0025】
[0031]本開示の技法は、必ずしもワイヤレスの用途または設定に限定されるとは限らない。本技法は、オーバージエアテレビジョン放送、ケーブルテレビジョン送信、衛星テレビジョン送信、たとえばインターネットを介したストリーミングビデオ送信、データ記憶媒体に記憶するためのデジタルビデオの符号化、データ記憶媒体に記憶されたデジタルビデオの復号、または他の用途などの様々なマルチメディア用途のいずれかをサポートするビデオコーディングに適用される場合がある。いくつかの例では、システム10は、ビデオストリーミング、ビデオ再生、ビデオブロードキャスト、および/またはビデオ電話などの用途をサポートするために、一方向または双方向のビデオ送信をサポートするように構成される場合がある。
【0026】
[0032]
図1の例では、ソースデバイス12は、ビデオソース18と、ビデオエンコーダ20と、出力インターフェース22とを含む。場合によっては、出力インターフェース22は、変調器/復調器(モデム)および/または送信機を含む場合がある。ソースデバイス12では、ビデオソース18は、ビデオキャプチャデバイス、たとえば、ビデオカメラ、以前キャプチャされたビデオを含んでいるビデオアーカイブ、ビデオコンテンツプロバイダからビデオを受信するビデオフィードインターフェース、および/もしくは、ソースビデオとしてコンピュータグラフィックスデータを生成するためのコンピュータグラフィックスシステムなどのソース、またはそのようなソースの組合せを含む場合がある。一例として、ビデオソース18がビデオカメラである場合、ソースデバイス12および宛先デバイス14は、いわゆるカメラ付き携帯電話またはビデオ付き携帯電話を形成する場合がある。しかしながら、本開示に記載される技法は、概して、ビデオコーディングに適用可能な場合があり、ワイヤレスおよび/または有線の用途に適用される場合がある。
【0027】
[0033]キャプチャされたビデオ、プリキャプチャされたビデオ、またはコンピュータ生成されたビデオは、ビデオエンコーダ20によって符号化される場合がある。符号化ビデオデータは、ソースデバイス12の出力インターフェース22を介して、宛先デバイス14に直接送信される場合がある。符号化ビデオデータは、同じく(または代替として)、復号および/または再生のために宛先デバイス14または他のデバイスが後でアクセスするために、ストレージデバイス26に記憶される場合がある。
【0028】
[0034]宛先デバイス14は、入力インターフェース28と、ビデオデコーダ30と、ディスプレイデバイス32とを含む。場合によっては、入力インターフェース28は、受信機および/またはモデムを含む場合がある。宛先デバイス14の入力インターフェース28は、リンク16を介して符号化ビデオデータを受信する。リンク16を介して通信されるか、またはストレージデバイス26上で提供される符号化ビデオデータは、ビデオデータを復号する際に、ビデオデコーダ30などのビデオデコーダが使用するための、ビデオエンコーダ20によって生成された様々なシンタックス要素を含む場合がある。そのようなシンタックス要素は、通信媒体上で送信される符号化ビデオデータとともに含められるか、記憶媒体上に記憶されるか、またはファイルサーバに記憶される場合がある。
【0029】
[0035]ディスプレイデバイス32は、宛先デバイス14と統合されるか、または宛先デバイス14の外部にある場合がある。いくつかの例では、宛先デバイス14は、一体型ディスプレイデバイスを含む場合があり、外部ディスプレイデバイスとインターフェースするように構成される場合もある。他の例では、宛先デバイス14はディスプレイデバイスであり得る。一般に、ディスプレイデバイス32は、復号ビデオデータをユーザに表示し、液晶ディスプレイ(LCD)、プラズマディスプレイ、有機発光ダイオード(OLED)ディスプレイ、または別のタイプのディスプレイデバイスなどの、様々なディスプレイデバイスのいずれかを備える場合がある。
【0030】
[0036]ビデオエンコーダ20およびビデオデコーダ30は、最近確定された(recently finalized)高効率ビデオコーディング(HEVC)規格などのビデオ圧縮規格に従って動作することができる。代替として、ビデオエンコーダ20およびビデオデコーダ30は、MPEG−4、Part 10、アドバンストビデオコーディング(AVC)と代替的に呼ばれるITU−T H.264規格などの他のプロプライエタリ規格もしくは業界規格、またはそのような規格の拡張に従って動作することができる。しかしながら、本開示の技法は、いかなる特定のコーディング規格にも限定されない。ビデオ圧縮規格の他の例には、MPEG−2およびITU−T H.263が含まれる。
【0031】
[0037]3D、マルチビュー、スケーラブル、およびスクリーンのコンテンツ用の拡張などの、HEVCに対する様々な拡張は、現在開発中である。加えて、HEVCに対する範囲拡張、すなわち、HEVC−RExtも、JCT−VCによって開発されている。これ以降RExt WD7と呼ばれる、範囲拡張の最近のワーキングドラフト(WD)は、http://phenix.int−evry.fr/jct/doc_end_user/documents/17_Valencia/wg11/JCTVC−Q1005−v4.zipから入手可能である。
【0032】
[0038]本開示では、JCTVC−Q1003に記載のHEVC仕様テキストは、しばしば、HEVCバージョン1と呼ばれる。本開示の技法は、説明を簡単にするために、HEVC用語を利用する場合がある。しかしながら、本開示の技法はHEVCに限定されると想定されるべきではなく、実際には、本開示の技法は、HEVCの拡張を含むHEVCの後継規格(successor standards)、ならびに次世代の規格に実装される場合があることが明確に考えられる。
【0033】
[0039]
図1には示されていないが、いくつかの態様では、ビデオエンコーダ20およびビデオデコーダ30は、各々、オーディオエンコーダおよびデコーダと統合される場合があり、共通のデータストリームまたは個別のデータストリーム内のオーディオとビデオの両方の符号化を扱うために、適切なMUX−DEMUXユニット、または他のハードウェアおよびソフトウェアを含む場合がある。適用可能な場合、いくつかの例では、MUX−DEMUXユニットは、ITU H.223マルチプレクサプロトコル、またはユーザデータグラムプロトコル(UDP)などの他のプロトコルに準拠する場合がある。
【0034】
[0040]ビデオエンコーダ20およびビデオデコーダ30は、各々、1つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、個別論理、ソフトウェア、ハードウェア、ファームウェア、またはそれらの任意の組合せなどの、様々な適切なエンコーダ回路のいずれかとして実装される場合がある。本技法がソフトウェアに部分的に実装されるとき、デバイスは、本開示の技法を実施するために、適切な非一時的コンピュータ可読媒体にソフトウェア用の命令を記憶し、1つまたは複数のプロセッサを使用してハードウェア内で命令を実行することができる。ビデオエンコーダ20およびビデオデコーダ30の各々は、1つまたは複数のエンコーダまたはデコーダに含まれる場合があり、それらのいずれも、それぞれのデバイスにおいて複合エンコーダ/デコーダ(コーデック)の一部として統合される場合がある。
【0035】
[0041]上記で紹介されたように、JCT−VCは、HEVC規格、ITU−T H.265の開発を最近確定した。HEVCは、たとえば、ITU−T H.264/AVCに従う既存のデバイスに対して、ビデオコーディングデバイスのいくつかの追加機能を可能にする。たとえば、H.264は9つのイントラ予測符号化モードを提供するが、HEVCは35個ものイントラ予測符号化モードをサポートする。
【0036】
[0042]HEVCおよび他のビデオコーディング仕様では、ビデオシーケンスは、通常、一連のピクチャを含む。ピクチャは、「フレーム」と呼ばれる場合もある。ピクチャは、S
L、S
Cb、およびS
Crと表記される3つのサンプルアレイを含む場合がある。S
Lは、ルーマサンプルの2次元アレイ(すなわち、ブロック)である。S
Cbは、Cbクロミナンスサンプルの2次元アレイである。S
Crは、Crクロミナンスサンプルの2次元アレイである。クロミナンスサンプルは、本明細書では「クロマ」サンプルと呼ばれる場合もある。他の事例では、ピクチャは、モノクロームの場合があり、ルーマサンプルのアレイのみを含む場合がある。
【0037】
[0043]ピクチャの符号化表現を生成するために、ビデオエンコーダ20は、コーディングツリーユニット(CTU)のセットを生成することができる。CTUの各々は、ルーマサンプルのコーディングツリーブロックと、クロマサンプルの2つの対応するコーディングツリーブロックと、それらのコーディングツリーブロックのサンプルをコーディングするために使用されるシンタックス構造とを備える場合がある。モノクロームピクチャまたは3つの別々の色平面を有するピクチャでは、CTUは、単一のコーディングツリーブロックと、そのコーディングツリーブロックのサンプルをコーディングするために使用されるシンタックス構造とを備える場合がある。コーディングツリーブロックは、サンプルのN×Nブロックであり得る。CTUは、「ツリーブロック」または「最大コーディングユニット」(LCU)と呼ばれる場合もある。HEVCのCTUは、H.264/AVCなどの他の規格のマクロブロックに大まかに類似する場合がある。しかしながら、CTUは、必ずしも特定のサイズに限定されるとは限らず、1つまたは複数のコーディングユニット(CU)を含む場合がある。スライスは、ラスタ走査順序で連続的に順序付けられた整数個のCTUを含む場合がある。
【0038】
[0044]コード化CTUを生成するために、ビデオエンコーダ20は、CTUのコーディングツリーブロックに対して4分木区分化を再帰的に実施して、コーディングツリーブロックをコーディングブロックに分割することができ、したがって「コーディングツリーユニット」と呼ばれる。コーディングブロックは、サンプルのN×Nブロックであり得る。CUは、ルーマサンプルアレイと、Cbサンプルアレイと、Crサンプルアレイとを有するピクチャの、ルーマサンプルのコーディングブロックと、クロマサンプルの2つの対応するコーディングブロックと、それらのコーディングブロックのサンプルをコーディングするために使用されるシンタックス構造とを備える場合がある。モノクロームピクチャまたは3つの別々の色平面を有するピクチャでは、CUは、単一のコーディングブロックと、そのコーディングブロックのサンプルをコーディングするために使用されるシンタックス構造とを備える場合がある。
【0039】
[0045]ビデオエンコーダ20は、CUのコーディングブロックを1つまたは複数の予測ブロックに区分化することができる。予測ブロックは、同じ予測が適用されるサンプルの矩形(すなわち、正方形または非正方形)ブロックである。CUの予測ユニット(PU)は、ルーマサンプルの予測ブロックと、クロマサンプルの2つの対応する予測ブロックと、それらの予測ブロックを予測するために使用されるシンタックス構造とを備える場合がある。モノクロームピクチャまたは3つの別々の色平面を有するピクチャでは、PUは、単一の予測ブロックと、その予測ブロックを予測するために使用されるシンタックス構造とを備える場合がある。ビデオエンコーダ20は、CUの各PUのルーマ予測ブロック、Cb予測ブロック、およびCr予測ブロックのための予測ルーマブロック、予測Cbブロック、および予測Crブロックを生成することができる。
【0040】
[0046]ビデオエンコーダ20は、イントラ予測またはインター予測を使用して、PUのための予測ブロックを生成することができる。ビデオエンコーダ20がイントラ予測を使用してPUの予測ブロックを生成する場合、ビデオエンコーダ20は、PUに関連付けられたピクチャの復号サンプルに基づいて、PUの予測ブロックを生成することができる。ビデオエンコーダ20がインター予測を使用してPUの予測ブロックを生成する場合、ビデオエンコーダ20は、PUに関連付けられたピクチャ以外の1つまたは複数のピクチャの復号サンプルに基づいて、PUの予測ブロックを生成することができる。
【0041】
[0047]ビデオエンコーダ20がCUの1つまたは複数のPUのための予測ルーマブロックと、予測Cbブロックと、予測Crブロックとを生成した後、ビデオエンコーダ20は、CUのためのルーマ残差ブロックを生成することができる。CUのルーマ残差ブロックの中の各サンプルは、CUの予測ルーマブロックのうちの1つの中のルーマサンプルと、CUの元のルーマコーディングブロックの中の対応するサンプルとの間の差分を示す。加えて、ビデオエンコーダ20は、CUのためのCb残差ブロックを生成することができる。CUのCb残差ブロックの中の各サンプルは、CUの予測Cbブロックのうちの1つの中のCbサンプルと、CUの元のCbコーディングブロックの中の対応するサンプルとの間の差分を示すことができる。ビデオエンコーダ20は、CUのためのCr残差ブロックを生成することもできる。CUのCr残差ブロックの中の各サンプルは、CUの予測Crブロックのうちの1つの中のCrサンプルと、CUの元のCrコーディングブロックの中の対応するサンプルとの間の差分を示すことができる。
【0042】
[0048]さらに、ビデオエンコーダ20は、4分木区分化を使用して、CUのルーマ残差ブロック、Cb残差ブロック、およびCr残差ブロックを、1つまたは複数のルーマ変換ブロック、Cb変換ブロック、およびCr変換ブロックに分解することができる。変換ブロックは、同じ変換が適用されるサンプルの矩形(たとえば、正方形または非正方形)ブロックである。CUの変換ユニット(TU)は、ルーマサンプルの変換ブロックと、クロマサンプルの2つの対応する変換ブロックと、それらの変換ブロックサンプルを変換するために使用されるシンタックス構造とを備える場合がある。したがって、CUの各TUは、ルーマ変換ブロック、Cb変換ブロック、およびCr変換ブロックに関連付けられる場合がある。TUに関連付けられたルーマ変換ブロックは、CUのルーマ残差ブロックのサブブロックであり得る。Cb変換ブロックは、CUのCb残差ブロックのサブブロックであり得る。Cr変換ブロックは、CUのCr残差ブロックのサブブロックであり得る。モノクロームピクチャまたは3つの別々の色平面を有するピクチャでは、TUは、単一の変換ブロックと、その変換ブロックのサンプルを変換するために使用されるシンタックス構造とを備える場合がある。
【0043】
[0049]ビデオエンコーダ20は、TUのルーマ変換ブロックに1つまたは複数の変換を適用して、TUのためのルーマ係数ブロックを生成することができる。係数ブロックは、変換係数の2次元アレイであり得る。変換係数は、スカラー量であり得る。ビデオエンコーダ20は、TUのCb変換ブロックに1つまたは複数の変換を適用して、TUのためのCb係数ブロックを生成することができる。ビデオエンコーダ20は、TUのCr変換ブロックに1つまたは複数の変換を適用して、TUのためのCr係数ブロックを生成することができる。
【0044】
[0050]係数ブロック(たとえば、ルーマ係数ブロック、Cb係数ブロック、またはCr係数ブロック)を生成した後、ビデオエンコーダ20は、係数ブロックを量子化することができる。量子化は、一般に、変換係数を表すために使用されるデータの量をできるだけ低減するために変換係数が量子化され、さらなる圧縮を実現するプロセスを指す。ビデオエンコーダ20が係数ブロックを量子化した後、ビデオエンコーダ20は、量子化変換係数を示すシンタックス要素をエントロピー符号化することができる。たとえば、ビデオエンコーダ20は、量子化変換係数を示すシンタックス要素に対してコンテキスト適応型バイナリ算術コーディング(CABAC)を実施することができる。
【0045】
[0051]ビデオエンコーダ20は、コード化ピクチャおよび関連データの表現を形成するビットのシーケンスを含むビットストリームを出力することができる。ビットストリームは、NALユニットのシーケンスを備える場合がある。NALユニットは、NALユニット内のデータのタイプの指示と、必要に応じてエミュレーション防止ビットが点在したRBSPの形態でそのデータを含んでいるバイトとを含んでいる、シンタックス構造である。NALユニットの各々は、NALユニットヘッダを含み、RBSPをカプセル化する。NALユニットヘッダは、NALユニットタイプコードを指示するシンタックス要素を含む場合がある。NALユニットのNALユニットヘッダによって指定されるNALユニットタイプコードは、NALユニットのタイプを示す。RBSPは、NALユニット内にカプセル化された整数個のバイトを含んでいるシンタックス構造であり得る。場合によっては、RBSPはゼロビットを含む。
【0046】
[0052]様々なタイプのNALユニットは、様々なタイプのRBSPをカプセル化することができる。たとえば、第1のタイプのNALユニットはPPS用のRBSPをカプセル化することができ、第2のタイプのNALユニットはコード化スライス用のRBSPをカプセル化することができ、第3のタイプのNALユニットはSEIメッセージ用のRBSPをカプセル化することができ、以下同様である。(パラメータセットおよびSEIメッセージ用のRBSPとは対照的に)ビデオコーディングデータ用のRBSPをカプセル化するNALユニットは、VCL NALユニットと呼ばれる場合がある。
【0047】
[0053]ビデオデコーダ30は、ビデオエンコーダ20によって生成されたビットストリームを受信することができる。加えて、ビデオデコーダ30は、ビットストリームを解析して、ビットストリームからシンタックス要素を取得することができる。ビデオデコーダ30は、ビットストリームから取得されたシンタックス要素に少なくとも部分的に基づいて、ビデオデータのピクチャを復元することができる。ビデオデータを復元するプロセスは、概して、ビデオエンコーダ20によって実施されたプロセスの逆であり得る。加えて、ビデオデコーダ30は、現在CUのTUに関連付けられた係数ブロックを逆量子化することができる。ビデオデコーダ30は、係数ブロックに対して逆変換を実施して、現在CUのTUに関連付けられた変換ブロックを復元することができる。ビデオデコーダ30は、現在CUのPUのための予測ブロックのサンプルを現在CUのTUの変換ブロックの対応するサンプルに加算することにより、現在CUのコーディングブロックを復元することができる。ピクチャのCUごとにコーディングブロックを復元することにより、ビデオデコーダ30はピクチャを復元することができる。
【0048】
[0054]最近、動きを伴うテキストおよびグラフィックスなどのスクリーンコンテンツ材料のための新しいコーディングツールの調査が必要とされ、スクリーンコンテンツのためのコーディング効率を改善する技術が提案されている。いくつかのコーディングシナリオでは、新規の専用コーディングツールを用いてスクリーンコンテンツの特性を活用することにより、コーディング効率における改善が取得される場合があるという証拠があるので、スクリーンコンテンツコーディング(SCC)のための固有のツールを含む、高効率ビデオコーディング(HEVC)規格の場合によっては開発中の将来の拡張を目標として、提案の募集(CfP)が発行されている。このCfPの使用事例および要件は、MPEG文書N14174に記載されている。第17回JCT−VC会合中に、SCC試験モデル(SCM)が確立された。SCCの最近のワーキングドラフト(WD)は、http://phenix.int−evry.fr/jct/doc_end_user/documents/20_Geneva/wg11/JCTVC−T1005−v2.zipから入手可能である。
【0049】
[0055]現在のSCCでは、現在ピクチャを参照ピクチャリストに追加することにより、IBCシグナリングはインター予測シグナリングと統合される(unified)。現在スライスを復号する前に、ビデオデコーダ30は、現在ピクチャを長期参照ピクチャとしてマークする。次いで、現在ピクチャの復号が完了した後、現在ピクチャは短期参照ピクチャに変換して戻される(is converted back)。マージ/AMVPシグナリング、AMVP導出、およびMVDコーディングを含むシグナリングおよびコーディング方法は、IBCモードの場合の(for)動きベクトルが整数動きベクトルであることが必要とされることが異なるが、インターケースにおけるのと同じである。IBCブロックは、対応する参照ピクチャを確認することにより、従来のインターブロックから差別化することができる。現在ピクチャのみが参照ピクチャとして使用される場合、現在ブロックはIBCブロックである。そうでない場合、現在ブロックはインターブロックである。SPSレベルシンタックス要素curr_pic_as_ref_enabled_flagは、現在ピクチャのすでにコーディングされた部分が現在ピクチャのコーディングブロック用の参照ピクチャとして使用できるかどうかを示すために使用される場合がある。言い換えれば、ビデオデコーダ30は、シンタックス要素curr_pic_as_ref_enabled_flagを受信し、シンタックス要素curr_pic_as_ref_enabled_flagが1に等しいことに応答して、ビデオデコーダ30は、IBCを使用してSPSに関連付けられたスライスのいくつかのブロックを復号することができる(may)。
【0050】
[0056]
図2は、本開示による同じピクチャ内のビデオデータの予測ブロックからビデオデータのブロックをイントラ予測するためのモードに従って、たとえば、本開示の技法によるIBCモードに従って、現在ピクチャ103内のビデオデータ102の現在ブロックを予測するための例示的な技法を示す概念図である。
図2は、現在ピクチャ103内の予測ブロックビデオブロック104を示す。ビデオコーダ、たとえば、ビデオエンコーダ20および/またはビデオデコーダ30は、予測ビデオブロック104を使用して、本開示の技法によるIBCモードに従って現在ビデオブロック102を予測することができる。
【0051】
[0057]ビデオエンコーダ20は、ビデオデータの前に復元されたブロックのセットから、現在ビデオブロック102を予測するための予測ビデオブロック104を選択する。ビデオエンコーダ20は、符号化ビデオビットストリームにも含まれるビデオデータを逆量子化および逆変換し、得られた残差ブロックをビデオデータの復元ブロックを予測するために使用される予測ブロックと加算することにより、ビデオデータのブロックを復元する。
図2の例では、「対象エリア」または「ラスタエリア」と呼ばれる場合もある、ピクチャ103内の対象領域108は、前に復元されたビデオブロックのセットを含む。ビデオエンコーダ20は、以下でより詳細に記載されるように、様々な方法で、ピクチャ103内の対象領域108を定義することができる。ビデオエンコーダ20は、対象領域108内の様々なビデオブロックに基づいて現在ビデオブロック102を予測およびコーディングする相対的な効率および確度の分析に基づいて、対象領域108内のビデオブロックの中から予測ビデオブロック104を選択して、現在ビデオブロック102を予測することができる。
【0052】
[0058]ビデオエンコーダ20は、現在ビデオブロック102に対する予測ビデオブロック104の位置または変位を表す2次元ベクトル106を決定する。2次元ブロックベクトル106は、それぞれ、現在ビデオブロック102に対する予測ビデオブロック104の水平変位および垂直変位を表す、水平変位成分112および垂直変位成分110を含む。ビデオエンコーダ20は、2次元ブロックベクトル106を識別または画定する、たとえば、水平変位成分112および垂直変位成分110を画定する1つまたは複数のシンタックス要素を、符号化ビデオビットストリームに含めることができる。ビデオデコーダ30は、1つまたは複数のシンタックス要素を復号して2次元ブロックベクトル106を決定し、決定されたベクトルを使用して現在ビデオブロック102用の予測ビデオブロック104を識別することができる。
【0053】
[0059]いくつかの例では、2次元ブロックベクトル106の空間解像度は、整数ピクセル解像度であり得る、たとえば、整数ピクセル解像度を有するように制約することができる。そのような例では、水平変位成分112および垂直変位成分110の空間解像度は、整数ピクセル解像度であり得る。そのような例では、ビデオエンコーダ20およびビデオデコーダ30は、予測ビデオブロック104のピクセル値を補間して、現在ビデオブロック102用の予測器を決定する必要はない。
【0054】
[0060]他の例では、水平変位成分112および垂直変位成分110の一方または両方の解像度は、サブピクセルであり得る。たとえば、成分110および成分112の一方は整数ピクセル解像度を有する場合があり、他方はサブピクセル解像度を有する。いくつかの例では、水平変位成分112と垂直変位成分110の両方の解像度はサブピクセルであり得るが、水平変位成分112および垂直変位成分110は異なる解像度を有する場合がある。
【0055】
[0061]いくつかの例では、ビデオデコーダ、たとえば、ビデオエンコーダ20および/またはビデオデコーダ30は、特定のレベル、たとえば、ブロックレベル、スライスレベル、またはピクチャレベルの適応に基づいて、水平変位成分112および垂直変位成分110の解像度を適応させる。たとえば、ビデオエンコーダ20は、スライスレベルにおいて、たとえば、スライスヘッダ内で、水平変位成分112および垂直変位成分110の解像度が整数ピクセル解像度であるか否かを示すフラグをシグナリングすることができる。水平変位成分112および垂直変位成分110の解像度が整数ピクセル解像度ではないことをフラグが示す場合、ビデオデコーダ30は、解像度がサブピクセル解像度であると推論することができる。いくつかの例では、必ずしもフラグであるとは限らない1つまたは複数のシンタックス要素は、水平変位成分112および/または垂直変位成分110の包括的な解像度または個別の解像度を示すために、ビデオデータのスライスまたは他のユニットごとに送信される場合がある。
【0056】
[0062]さらに他の例では、フラグまたはシンタックス要素の代わりに、ビデオエンコーダ20は、解像度コンテキスト情報に基づいて水平変位成分112および/または垂直変位成分110の解像度を設定することができ、ビデオデコーダ30は、解像度コンテキスト情報から水平変位成分112および/または垂直変位成分110の解像度を推論することができる。解像度コンテキスト情報は、例として、現在ビデオブロック102を含むピクチャまたはピクチャのシーケンスのための色空間(たとえば、YUV、RGBなど)、固有の色フォーマット(たとえば、4:4:4、4:2:2、4:2:0など)、フレームサイズ、フレームレート、または量子化パラメータ(QP)を含む場合がある。少なくともいくつかの例では、ビデオコーダは、前にコーディングされたフレームまたはピクチャに関する情報に基づいて、水平変位成分112および/または垂直変位成分110の解像度を決定することができる。このようにして、水平変位成分112の解像度および垂直変位成分110についての解像度は、あらかじめ定義もしくシグナリングされる場合があるか、他のサイド情報(たとえば、解像度コンテキスト情報)から推論される場合があるか、またはすでにコーディングされたフレームに基づく場合がある。
【0057】
[0063]現在ビデオブロック102は、CU、またはCUのPUであり得る。いくつかの例では、ビデオコーダ、たとえば、ビデオエンコーダ20および/またはビデオデコーダ30は、IBCに従って予測されたCUをいくつかのPUに分割することができる。そのような例では、ビデオコーダは、CUのPUの各々について、それぞれの(たとえば、異なる)2次元ベクトル106を決定することができる。たとえば、ビデオコーダは、2N×2N CUを2つの2N×N PU、2つのN×2N PU、または4つのN×N PUに分割することができる。他の例として、ビデオコーダは、2N×2N CUを((N/2)×N+(3N/2)×N)PU、((3N/2)×N+(N/2)×N)PU、(N×(N/2)+N×(3N/2))PU、(N×(3N/2)+N×(N/2))PU、4つの(N/2)×2N PU、または4つの2N×(N/2)PUに分割することができる。いくつかの例では、ビデオコーダは、2N×2N PUを使用して2N×2N CUを予測することができる。
【0058】
[0064]現在ビデオブロック102は、ルーマビデオブロック、またはルーマビデオブロックに対応するクロマビデオブロックであり得る。いくつかの例では、ビデオエンコーダ20は、ルーマビデオブロック用の2次元ベクトル106を定義する1つまたは複数のシンタックス要素を、符号化ビデオビットストリーム内に符号化することのみできる。そのような例では、ビデオデコーダ30は、ルーマブロック用にシグナリングされた2次元ベクトルに基づいて、ルーマブロックに対応する1つまたは複数のクロマブロックの各々について2次元ベクトル106を導出することができる。
【0059】
[0065]色フォーマット、たとえば、色サンプリングフォーマットまたはクロマサンプリングフォーマットに応じて、ビデオコーダは、ルーマビデオブロックに対して対応するクロマビデオブロックをダウンサンプリングすることができる。色フォーマット4:4:4はダウンサンプリングを含まず、クロマブロックが水平方向および垂直方向にルーマブロックと同じ数のサンプルを含むことを意味する。色フォーマット4:2:2は、水平方向にダウンサンプリングされ、その結果、ルーマブロックに対してクロマブロック内で水平方向に半分の数のサンプルがあることを意味する。色フォーマット4:2:0は、水平方向および垂直方向にダウンサンプリングされ、その結果、ルーマブロックに対してクロマブロック内で水平方向および垂直方向に半分の数のサンプルがあることを意味する。
【0060】
[0066]ビデオコーダが、クロマビデオブロック用のベクトル106を、対応するルーマブロック用のベクトル106に基づいて決定する例では、ビデオコーダはルーマベクトルを修正する必要があり得る。たとえば、ルーマベクトル106が、水平変位成分112および/または垂直変位成分110が奇数のピクセルである整数解像度を有し、色フォーマットが4:2:2または4:2:0である場合、変換ルーマベクトルは、対応するクロマブロック内の整数ピクセル位置を指さない場合がある。そのような例では、ビデオコーダは、クロマベクトルとして使用するためにルーマベクトルをスケーリングして、対応するクロマブロックを予測することができる。いくつかの例では、ビデオエンコーダ20は、対象領域108を画定するか、または変換ベクトルをスケーリングすることができ、その結果、クロマブロックを予測するために使用される変換ルーマベクトル106は、復元されていないか、またはループ内フィルタリングされた予測クロマブロックを指さない場合がある。本開示では、クロマブロック用のベクトルのスケーリングが明示的に述べられていない場合、そのようなスケーリングが行われないと想定されるべきではない。本開示に記載された例において明示的に記載されていない場合でも、クロマブロック用のベクトルのスケーリングは行われる場合がある(が、必ずしもあらゆるケースで行われるとは限らない場合がある)。
【0061】
[0067]本開示は、IBC用のIスライスを可能にするための技法を記載する。HEVCに対するSCC拡張の現在のドラフトテキスト仕様(current draft text specification)では、IBCが有効であるとき(たとえば、シンタックス要素curr_pic_as_ref_enabled_flagが1に等しいとき)、Iスライスを使用することができない(cannot be used)。具体的には、curr_pic_as_ref_enabled_flagが1に等しいとき、slice_typeシンタックス要素の値は2に等しくなることができず、0、1、および2のslice_typeの値は、それぞれ、Bスライス、Pスライス、およびIスライスに対応する。これにより、いくつかの潜在的な欠点がもたらされる。たとえば、(参照用に現在ピクチャを含むいかなるピクチャも使用せずにコーディングされた)従来のイントラコード化スライスは、slice_typeシンタックス要素を介してシグナリングすることができず(cannot be signaled)、このことは、いくつかのシナリオでは、たとえば、下記に記載されるように何らかのシグナリングオーバーヘッドを省く(save)ために有用であり得る。
【0062】
[0068]本開示は、IBCが有効であるときでもIスライスの使用を可能にするための技法を記載する。IBCが有効であるときにIスライスの使用を可能にすると、いくつかの例では、(IBCが有効であることを示す)curr_pic_as_ref_enabled_flagが1に等しいときでも、slice_typeシンタックス要素の値が(所与のスライスのコーディングタイプがIスライスであることを示す)2に等しくなることが可能になる(allow)。そのような場合、Iスライスは、参照用に現在ピクチャを含むいかなるピクチャも使用せずにコーディングされ、すべてのコード化ブロックにノーマルイントラ予測モードを使用してコーディングされた、従来のイントラコード化スライスである。言い換えれば、従来のIスライスのブロックはインター予測またはIBCを使用してコーディングされず、従来のIスライスに使用される唯一のコーディングモードはイントラモードである。
【0063】
[0069]ビデオエンコーダ20は、たとえば、ビデオデータのスライスをIスライスとして符号化し、IBCモードがスライスに有効であることを示す値を有するIBCシンタックス要素(たとえば、curr_pic_as_ref_enabled_flag)を生成するように構成されることにより、そのような機能を実装するように構成される場合がある。ビデオエンコーダ20は、スライスタイプシンタックス要素(たとえば、slice_type)をさらに生成し、スライスがIスライスであることを示す値にそのシンタックス要素を設定することができる。ビデオエンコーダ20は、たとえば、SPSにIBCシンタックス要素を含め、および/またはスライスヘッダにスライスタイプシンタックス要素を含めることができる。
【0064】
[0070]ビデオデコーダ30は、たとえば、ビデオデータのスライスを受信し、IBCシンタックス要素(たとえば、curr_pic_as_ref_enabled_flag)を解析して(parse)、IBCモードがスライスに有効であると決定するように(to determine)構成されることにより、そのような機能を実装するように構成される場合がある。たとえば、ビデオデコーダ30が、curr_pic_as_ref_enabled_flagの値が1に等しいと決定した場合、ビデオデコーダ30は、IBCモードが有効であると決定することができるが、curr_pic_as_ref_enabled_flagが0に等しい場合、ビデオデコーダ30は、IBCモードが無効であると決定することができる。ビデオデコーダ30は、スライスに関連付けられたスライスタイプシンタックス要素を解析して(parse)、スライスがIスライスであり、Iスライスとして復号されるべきと決定すること(to determine)ができる。スライスをIスライスとして復号するために、ビデオデコーダ30は、イントラ予測のみを使用して、インター予測モードを使用することも、IBCモードを使用することもなしにスライスのブロックを復号することができる。
【0065】
[0071]代替として、本開示は別のスライスタイプを導入することを提案する。たとえば、現在ピクチャを除きいかなる他の参照ピクチャももたないIBCモードの使用を示すために、IBCスライスが使用される場合がある。言い換えれば、IBCスライスの場合、ビデオコーダは、イントラモードまたはIBCモードを使用するが、インターモードを使用せずに、IBCスライスのブロックをコーディングすることができる。そのような例では、シンタックス要素slice_typeの値は、0、1、2、または3に等しくなることができ、IBCスライスを指定する3の値が新しく可能になる。下記の表1に示されたように、他の値のセマンティクスは、変更されないままであり得る。slice_typeがIBCスライスに設定されると、PスライスおよびBスライス用のインターモードのための何らかの(some)シグナリングが回避される場合がある。たとえば、スライスがIBCスライスであるとビデオデコーダ30が決定した場合、CUヘッダ内のcu_skip_flagシンタックス要素、pred_mode_flagシンタックス要素などの情報、スライスヘッダ内の参照ピクチャ管理情報、および他のそのような情報は、符号化ビデオデータのビットストリームに含まれる必要はない。
【0067】
[0072]上記で紹介された技法によれば、ビデオデコーダ30は、ビデオデータのスライスを受信し、ビデオデータのスライスに関連付けられたスライスタイプシンタックス要素を解析するように構成される場合がある。スライスがIBCスライスであることを示す値(たとえば、3に等しいslice_type)をスライスタイプシンタックス要素が有することに応答して、ビデオデコーダ30は、スライスをIBCスライスとして復号することができ、このことは、IBCモードを使用してスライスのいくつかのブロックを復号すること、および/またはイントラモードを使用してスライスのいくつかのブロックを復号することを含む場合がある。ビデオデコーダ30は、Iスライス(たとえば、2に等しいslice_type)、Pスライス(1に等しいslice_type)、またはBスライス(0に等しいslice_type)として他のスライスを復号することができる。他のタイプのスライスを復号することは、IBCスライスとして復号されるスライスの場合受信されないいくつかの異なるシンタックス要素を受信することを伴う場合があり、同様に、IBCスライスを復号することは、他のスライスの場合受信されないいくつかの異なるシンタックス要素を受信することを伴う場合がある。
【0068】
[0073]本開示はまた、スライスレベルIBC制御フラグのための技法を記載する。既存の技法の場合、IBCが有効であるかどうかは、単に、SPSフラグ、curr_pic_as_ref_enabled_flagによって制御される(すなわち、IBCの有効化は、SPSフラグ、curr_pic_as_ref_enabled_flagに基づいて決定される)。たとえば、スライスレベルにおいてIBCのより精細な制御を可能にすることは、いくつかの潜在的な利点を有する場合がある。一例として、スライスレベルIBC制御は、現在スライス内のブロックが参照として現在ピクチャを使用することができるかどうかを指定することができる。IBCモードは、ループ内フィルタリングの前にサンプルのさらなる記憶を要求する場合がある。スライスレベルにおいてIBCが無効であるとき、スマートデコーダは、これらの追加サンプルを記憶することを回避することができ、それにより、平均帯域幅および平均電力使用量が削減される。別の例として、スライスレベルIBC制御により、IBCを使用しないスライスが、時間参照ピクチャにより多くの参照インデックスを割り振らせることが可能になり、それにより、いくつかのシナリオにおいて潜在的に改善されたコーディング効率のための重み付け予測において、より多くの重みがシグナリングされることが可能になる。
【0069】
[0074]次に、スライスレベルIBC制御を可能にするための技法がより詳細に記載される。ビデオエンコーダ20は、IBCが有効である(たとえば、curr_pic_as_ref_enabled_flagが1に等しい)とき、スライスヘッダ内で、スライスレベルIBC制御フラグ、たとえば、slice_curr_pic_as_ref_enabled_flagをシグナリングすることができる。加えて、ビデオデコーダ30は、シグナリングされない場合、slice_curr_pic_as_ref_enabled_flagの値が0に等しいと推論する(すなわち、明示的なシグナリングの受信なしに決定する)ことができる。スライスレベル制御フラグは、PスライスおよびBスライスの場合のみシグナリングされ、Iスライスの場合0の値を有すると推論される場合がある。このスライスレベルIBCフラグは、たとえば、現在ピクチャがスライスのブロックを予測するための参照ピクチャとして使用されるかどうかを示すことができる。他の実装形態では、スライスレベルIBCフラグは、現在ピクチャが自己参照のために現在ピクチャ用の参照ピクチャリストに追加されるかどうかを示すことができ、その場合、現在ピクチャは、スライスのブロックを予測するための参照ピクチャとしての使用に利用可能であるが、いくつかのスライスの場合、実際には予測に使用されない場合がある。加えて、slice_curr_pic_as_ref_enabled_flagが無効である(すなわち、その値が0に等しいと明示的にシグナリングされるか、または0に等しいと推論される、場合、ビデオデコーダ30は、その特定の(particular)スライスにIBCモードを使用せず、(IBC用のIスライスを可能にすることに関して上述されたように)Iスライスタイプのシグナリングを可能にすることができる。
【0070】
[0075]slice_curr_pic_as_ref_enabled_flagシンタックス要素についてのセマンティクスは以下の通りであり得る。
1に等しいslice_curr_pic_as_ref_enabled_flagは、現在スライスを復号するとき、現在ピクチャが現在ピクチャの参照ピクチャリストに含まれる場合があることを明示する(specifies)。0に等しいslice_curr_pic_as_ref_enabled_flagは、現在スライスを復号するとき、現在ピクチャが現在ピクチャの参照リストに決して含まれないことを明示する。存在しないとき、slice_curr_pic_as_ref_enabled_flagの値は0に等しいと推論される。
【0071】
[0076]一般に、slice_curr_pic_as_ref_enabled_flagは、スライスヘッダレベルより下のシンタックス構造、セマンティクス、および復号プロセスにおいて、たとえば、参照ピクチャリスト構築、DPB管理などにおいて、slice_curr_pic_as_ref_enabled_flagの後のスライスヘッダシンタックス内のcurr_pic_as_ref_enabled_flagに取って代わる(replace)ことができる。シンタックス要素curr_pic_as_ref_enabled_flagは、slice_curr_pic_as_ref_enabled_flagのシグナリング用のゲートフラグ(gating flag)として扱うことができる。たとえば、NumPicTotalCurrの値は、スライスレベル制御フラグslice_curr_pic_as_ref_enabled_flagに基づいて導出される場合がある。
【0072】
[0077]加えて、(上述されたようにIスライスを可能にするための技法が適用されないとき)以下の条件が適用される場合がある。
−現在ピクチャがBLAピクチャまたはCRAピクチャであるとき、NumPicTotalCurrの値はslice_curr_pic_ref_enabled_flagに等しくなければならない。
【0073】
[0078]別の代替では、ビデオデコーダ30は、明示的なシグナリングなしにslice_curr_pic_ref_enabled_flagの値を導出するように構成される場合がある。導出の一部として、ビデオデコーダ30は、スライスヘッダ内でシグナリングされる参照ピクチャの最大数(RefPicList0およびRefPicList1の場合、それぞれ、num_ref_idx_l0_active_minus1およびnum_ref_idx_l1_active_minus1)まで、参照ピクチャリストRefPicList0およびRefPicList1を確認することができ、参照ピクチャが現在ピクチャに等しくない場合、ビデオデコーダ30は、0であるようにslice_curr_pic_as_ref_enabled_flagを導出することができる。そうでない場合、ビデオデコーダ30は、1に等しいようにslice_curr_pic_as_ref_enabled_flagを導出することができる。導出されたフラグは、たとえば、復号プロセスおよび他の関連する使用法において、シグナリングされたスライスレベルIBCフラグの代わりに使用される場合がある。
【0074】
[0079]上述されたスライスレベルIBC制御フラグを実装するために、ビデオデコーダ30は、ビデオデータのスライスを受信し、スライスレベルシンタックス要素(たとえば、slice_curr_pic_as_ref_enabled_flag)を解析して、IBCモードがスライスに有効であると決定するように構成される場合がある。ビデオデコーダ30は、ビデオデータのスライス用の参照ピクチャリストを構築するように構成される場合があり、参照ピクチャリストに含まれるピクチャの数(a number of pictures)は、スライスレベルシンタックス要素が、IBCが有効であると示すか、または、IBCが無効であると示すかに依存する場合がある。ビデオデコーダ30は、スライスレベルシンタックス要素を解析して、スライスがPスライスまたはBスライスのうちの1つであると決定することに応答して、IBCモードがスライスに有効であると決定することができる。Iスライスであると決定されたスライスの場合、ビデオデコーダ30は、IBCモードが無効であることを示す(to indicate)スライスレベルシンタックス要素の値を推論する(infer)ことができる。ビデオデコーダ30は、ビデオデータのスライス用の参照ピクチャリストを構築し、IBCモードが有効であることをスライスレベルシンタックス要素が示すことに応答して、スライスを含んでいるピクチャを参照ピクチャリストに追加することができる。
【0075】
[0080]本開示はまた、スライスレベルIBC制御フラグおよびslice_typeの使用に対する(on)潜在的な制約を記載する。下記で紹介される制約または態様のいずれも、単独で、または、本セクションもしくは本開示内の他のセクションにおける1つもしくは複数の他の制約と組み合わせて適用することができる。
【0076】
[0081]いくつかの例では、ビットストリーム適合性(bitstream conformance)は、以下の要件を有する場合がある。
・currPicのみが参照に利用可能であるとき、PスライスおよびBスライスの場合、slice_curr_pic_as_ref_enabled_flagの値は0に等しくてはならない(shall not be)。
・nal_unit_typeが、両端値を含むBLA_W_LPからRSV_IRAP_VCL23までの範囲内の値を有する(すなわち、ピクチャがIRAPピクチャである)とき、PスライスおよびBスライスの場合、slice_curr_pic_as_ref_enabled_flagの値は0に等しくてはならない。RefPicList0は、現在ピクチャのみを指す1つまたは複数の項目(entries)を含んでいなければならない(shall)。
・代替として、currPicのみが参照に利用可能であるとき(すなわち、現在ピクチャであるただ1つの参照ピクチャをDPBが含んでいるとき)、PスライスおよびBスライスの場合、slice_curr_pic_as_ref_enabled_flagはシグナリングされてはならない(shall not be)。
【0077】
[0082]次に、復号プロセスに対する変更が説明される。復号プロセスは、
下線付きのテキストで示されたように変更される場合がある。示された変更は、個別または一緒に適用される場合がある。
現在ピクチャ内の少なくとも1つのスライスが1に等しいslice_curr_pic_as_ref_enabled_flag
を有するとき、DPB内のピクチャ記憶バッファは現在ピクチャ用に割り振られ、現在ピクチャは「長期参照に使用される」としてマークされる。
節8.4、8.5、8.6、および8.7におけるプロセスは、すべてのシンタックス構造レイヤにおけるシンタックス要素を使用する復号プロセスを指定する。ピクチャのコード化スライスがピクチャのコーディングツリーユニットごとにスライスセグメントデータを含んでいなければならないことがビットストリーム適合性の要件であり、その結果、スライスへのピクチャの分割、スライスセグメントへのスライスの分割、およびコーディングツリーユニットへのスライスセグメントの分割は、各々、ピクチャの区分化を形成する。
現在ピクチャ内の少なくとも1つのスライスが1に等しい
slice_curr_pic_as_ref_enabled_flag
を有するとき、ループ内フィルタリング(in-loop filtering)の前の現在ピクチャの復号サンプル値は、現在ピクチャ用に割り振られたピクチャ記憶バッファに記憶される。
注記2−
現在ピクチャ内の少なくとも1つのスライスが1に等しい
slice_curr_pic_as_ref_enabled_flag
を有するとき、DPBの一部としてカウントされない1つの追加ピクチャ記憶バッファは、ループ内フィルタリングの後の現在ピクチャのサンプル値の記憶に必要とされる。
【0078】
[0083]本開示はまた、コロケートピクチャの制約(collocated picture constraint)を記載する。現在のWDでは、現在ピクチャをコロケートピクチャとして使用することができないという制約が存在する。この制約の理由は、コロケートピクチャが現在ピクチャであった場合、動き予測に使用されるべきコロケートブロックにさらに割り当てられた動きフィールドは存在しないだろうということである。
【0079】
[0084]この制約は、たとえば、現在ピクチャの処理より前に現在ピクチャの動きフィールドを初期化することにより、取り除くことができる。たとえば、現在ピクチャは、すべてのブロックをイントラコード化として有して(having)、初期化することができ(can be initialized)、動きフィールド情報(motion field information)がないことを意味する。代替として、動きフィールドはデフォルトの動きフィールドを用いて初期化することができ、デフォルトの動きフィールドは、エンコーダとデコーダの両方の場合、たとえば、RefPicList0もしくはRefPicList1、または両方に関連付けられた少なくとも1つの方向間(inter direction)のゼロモーション(ゼロ参照インデックスを有する(with)ゼロモーションベクトル)として知られている。加えて、スライスに割り当てられたデフォルトの動きフィールドは、スライスタイプに依存することができる。たとえば、Iスライスの場合、そのスライス内のすべてのブロックはイントラモードを用いて初期化され、Pスライスの場合、RefPicList0関連の動きフィールドはゼロモーションに設定され、Bスライスの場合、ゼロモーションはRefPicList0およびRefPicList1に関連付けられた両方向に割り当てられる。
【0080】
[0085]加えて、(現在ピクチャをコロケートピクチャとして使用することができない)上述された制約は、エンコーダ制約またはビットストリーム制約の形式で指定され、それらはいくつかのエンコーダによって破られる場合があり、ビットストリームを潜在的に破壊する。
【0081】
[0086]本開示は、たとえば、制約を満たさないシンタックス要素の値をビットストリーム内でシグナリングすることができないようにシンタックスを修正することにより、この制約をより厳密にするための技法を記載する。
【0082】
[0087]最初に、スライスが参照ピクチャ(a reference picture(s))として現在ピクチャのみを有する場合、現在ピクチャをコロケートピクチャとして使用することができないので、スライスヘッダ内でシグナリングされるTMVP有効フラグは無効にされなければならない。2つ以上の参照ピクチャが存在することができ、それらのすべては現在ピクチャであり得る。
【0083】
[0088]代替として、TMVP有効フラグのシグナリングは、スライス内で使用される参照ピクチャの数(たとえば、num_ref_idx_l0_active_minus1およびnum_ref_idx_l1_active_minus1)のシグナリングの後に移動および配置することができ、すべての参照ピクチャが現在ピクチャであるかどうかを決定するために確認を行うことができる。すべての参照ピクチャが現在ピクチャである場合、TMVP有効フラグはシグナリングされず、無効である(すなわち、0に等しい)と導出される。
【0084】
[0089]別の代替では、すべての参照ピクチャが現在ピクチャであるかどうかを導出する代わりに、そのようなケースを示すために、スライス内でフラグをシグナリングすることができる。
【0085】
[0090]加えて、collocated_ref_idxのシグナリングの場合、現在ピクチャを指す(pointing to)参照インデックスは、collocated_ref_idxによって参照されることから除外することができ、collocated_ref_idxの値は、所望のコロケートピクチャの前に存在する現在参照ピクチャを指す参照インデックスの数だけ(by)減らされる。同様にして、解析後、解析されたcollocated_ref_idxは、シグナリングされたcollocated_ref_idxより前の現在参照ピクチャを指す参照インデックスの数だけ増やされる。
【0086】
[0091]一例によれば、RefPicList={Pic0,Curr,Pic1,Curr,Pic2}と仮定する。
Pic0をコロケートピクチャのようにするために、collocated_ref_idx=0がシグナリングされる。
Pic1をコロケートピクチャのようにするために、collocated_ref_idx=1がシグナリングされ、collocated_ref_idxが1だけ増やされ、collocated_ref_idxを2に等しくする。
Pic2をコロケートピクチャのようにするために、collocated_ref_idx=2がシグナリングされ、collocated_ref_idxが2だけ増やされ、collocated_ref_idxを4に等しくする。
【0087】
[0092]たとえば、所望のcollocated_ref_idxがNに等しいと仮定すると、符号化部分は以下の擬似コードとして実装されることができる。
【0089】
[0093]たとえば、復号部分は以下の擬似コードとして実装されることができ、collocated_ref_idxは更新されるべき解析された値である。
【0091】
[0094]与えられた例では、collocated_ref_idxの値はデコーダによって増やされるだろう(will)ので、collocated_ref_idxは現在ピクチャ(Curr)に等しくなることができず、したがって、現在ピクチャがコロケートピクチャになることが不可能になる。
【0092】
[0095]加えて、collocated_ref_idxがシグナリングされる条件は、collocated_ref_idxがただ1つの値を有することができるケースを除外するように修正されることができる。この場合、RefPicList0およびRefPiclList1に含まれる参照ピクチャの数は、(本明細書ではnumCurrRef0およびnumCurrRef1と表記されて)カウントされることができ、参照ピクチャの数(たとえば、num_ref_idx_l0_active_minus1およびnum_ref_idx_l1_active_minus1)は、RefPicList0およびRefPicList1用の現在ピクチャに等しい参照インデックスの数だけ削減されることができる。参照インデックスのこの修正された数は、復号プロセスにおいて、たとえば、collocated_ref_idxをシグナリングする際に、スライスヘッダ内の参照インデックスのシグナリングされる数の代わりに使用することができる。
【0093】
[0096]たとえば、実装形態は以下のように実現することができる。
【0095】
コロケート参照インデックス(collocated reference index)は、可能なコロケートインデックスの数が、たとえば1を超えるときのみシグナリングされる。
【0097】
[0097]
下線付きの部分は、現在のドラフトテキスト仕様の先頭に(on top the current draft text specification)追加される。
例:RefPicList0={Curr,Pic0,Curr}
num_ref_idx_l0_active_minus1は2に等しいようにシグナリングされ、(参照ピクチャリスト内に2つの現在参照ピクチャが存在するので)numCurrRef0は2に等しい。
num_ref_idx_l0_active_minus1−numCurrRef0は0に等しく、collocated_ref_idxはシグナリングされないが、0に等しいと推論され、しかしながら、実際の値(real value)は1である(ゼロインデックスは現在ピクチャを指す)。
【0098】
[0098]0と推論された後、上述されたコロケートインデックスの修正が使用され、
【0100】
これは、最初の参照ピクチャが参照ピクチャリスト内の現在ピクチャに等しいことに起因して1の増分(one increment)が行われるので、collocated_ref_idxを1に等しいように生成する。
【0101】
[0099]この例では、collocated_ref_idxのシグナリングは、現在のドラフトテキスト仕様と比較して省かれ、collocated_ref_idxはシグナリングされるが、1に等しいことが必要とされる。コロケートピクチャの制約およびコロケート参照インデックスのシグナリングに関して本明細書に記載されたいかなる技法も、単独で、または任意の組合せで使用される場合がある。
【0102】
[0100]本開示はまた、アクティブな参照ピクチャの数に基づいてリスト修正を無効にするための技法を記載する。現在のWDでは、ref_pic_list_modificationプロセスは、NumPicTotalCurr>1およびlists_modification_present_flag=1であるときに起動される(be invoked)場合がある。本開示は、num_ref_idx_l0_active_minus1=0であり(すなわち、スライスを復号するために使用される場合がある参照ピクチャリスト0用の最大参照インデックスが0に等しく)、スライスレベルIBC制御フラグに関して上述されたスライスレベルIBC制御フラグが1に等しいとき、リスト修正情報(list modification information)が冗長であり、推論できる(can be inferred)ことを提案する。言い換えれば、いくつかの実装形態では、リスト修正プロセスを必要とせずにIBCモードが有効であるとき、現在ピクチャは参照ピクチャリストに常に追加される場合がある。
【0103】
[0101]本開示は、num_ref_idx_l0_active_minus1=0およびslice_curr_pic_as_ref_enabled_flag=1であるとき、リスト修正情報をシグナリングしないための技法を記載する。リスト修正プロセスは、RefPicList0内の最初の項目としてcurPicを含むと推論される場合がある。言い換えれば、いくつかの実装形態では、リスト修正プロセスを必要とせずにIBCモードが有効であるとき、現在ピクチャは参照ピクチャリストに常に追加される場合がある。
【0104】
[0102]たとえば、IBCがIBCスライスに対して有効であるとビデオエンコーダ20が決定した場合、スライス用の参照ピクチャリスト内の参照ピクチャのみが、そのスライスを含む現在ピクチャである。したがって、ビデオデータのスライス用の参照ピクチャリスト内の参照ピクチャの数が1に等しいと決定することに応答して、および、IBCモードがスライスに有効であることに応答して、ビデオエンコーダ20は、参照ピクチャリスト修正を無効にし、スライス用の参照ピクチャリスト修正情報(reference picture list modification information)を符号化ビットストリームに含めないように構成される場合がある。同様に、ビデオデコーダ30は、ビデオデータのスライス用の参照ピクチャリスト内の参照ピクチャの数を示すシンタックス要素(たとえば、num_ref_idx_l0_active_minus1)を受信するように構成される場合があり、ビデオデータのスライス用の参照ピクチャリスト内の参照ピクチャの数を示すシンタックス要素が1に等しい(たとえば、num_ref_idx_l0_active_minus1が0に等しい)ことに応答して、および、IBCモードがスライスに有効であること(たとえば、slice_curr_pic_as_ref_enabled_flag=1および/またはcurr_pic_as_ref_enabled_flag=1)に応答して、ビデオデコーダ30は参照ピクチャリスト修正を無効にすることができる。ビデオデコーダ30は、たとえば、参照ピクチャリスト修正情報を受信せずに参照ピクチャリストを構築することにより、参照ピクチャリスト修正を無効にすることができる。一例では、参照ピクチャリスト修正を無効にすることは、参照ピクチャリスト修正情報に関連する情報(たとえば、シンタックス要素)がビットストリーム内でシグナリングされず、したがって、潜在的に圧縮を改善し、デコーダ側の複雑さを低減することを意味する場合がある。
【0105】
[0103]上記の例はRefPicList0に関して記載されているが、それはRefPicList1にも同様に等しく適用可能であることを諒解されたい。
【0107】
[0104]第1の例示的な実装形態では、num_ref_idx_l0_active_minus1=0であり(すなわち、スライスを復号するために使用される場合がある参照ピクチャリスト0用の最大参照インデックスが1に等しく)、現在のドラフト仕様に記載の(as in)SPSレベルIBC制御フラグ(curr_pic_as_ref_enabled_flag)が1に等しいとき、リスト修正はシグナリングされない場合がある。リスト修正プロセスは、RefPicList0内の最初の項目としてcurPicを含むと推論される。
【0108】
[0105]上記はRefPicList1にも拡張することができる。
【0110】
[0106]本開示はまた、後処理としてループ内フィルタリングを実装するための技法を記載する。言い換えれば、いくつかのコーディングシナリオにおいてループ内フィルタリングとして適用されるフィルタは、他のコーディングシナリオではループ後フィルタとして適用される場合がある。IBCモードが使用されるとき、IBC予測に使用される現在ピクチャの参照サンプルはフィルタリングされない。言い換えれば、デブロッキングフィルタおよびSAOなどのループ内フィルタは、IBC参照サンプルに適用されない場合がある。しかしながら、ループ内フィルタは、通常の(regular)予測用の復元サンプルにはまだ適用される場合がある。これらの技法は、複数の(multiple)理由で、全体的なコーディング効率およびデバイス性能を改善することができる。一例として、フィルタリングはグラフィカルコンテンツ用の良好な予測器(good predictor)ではない場合があり、したがって、フィルタリングに関連する計算の複雑さにより、いくつかのタイプのビデオコンテンツには最小の恩恵しかもたらさないか、またはまったく恩恵をもたらさない場合がある。別の例として、(IBCモードおよび通常のインターモードの場合)現在ピクチャ用のフィルタリングされていないサンプルとフィルタリングされたサンプルとを記憶する必要性に起因して、ループ内フィルタリングは、サンプルを読み書きする(writing and reading)ための帯域幅を増大させ、必要な記憶容量を増大させる場合がある。
【0111】
[0107]一例では、ビデオデコーダ30は、ピクチャが出力または表示されるときのみループ内フィルタを適用し、IBCモードと通常のインターモードの両方には、参照ピクチャに関連付けられたフィルタリングされていないピクセルを使用することができる。そのような例の場合、ビデオデコーダ30は、IBCモードを使用してビデオデータのブロックを復元し、ブロックを含むピクチャを出力するように構成される場合があり、出力されたピクチャ内のブロックは、1つまたは複数のループフィルタを使用してフィルタリングされる。しかしながら、ビデオデコーダ30は、将来ブロック用の参照ピクチャとして、フィルタリングされていないバージョンのブロックを有するピクチャを記憶することができる。
【0112】
[0108]フィルタリングされていないピクセルのみが記憶される必要があるので、これにより帯域幅が削減される場があり、フィルタによって取り除かれる場合がある詳細を保存することにより、グラフィカルコンテンツに対する(for)予測をより良好にすることができる。しかしながら、ループ内フィルタは、表示用に出力されるピクチャにはまだ適用される場合がある。
【0113】
[0109]出力ピクチャに適用されるフィルタまたはポストフィルタとしてループ内フィルタが使用されるべきかどうかを導出するために、IBC制御フラグまたは新しいフラグを使用することができる。たとえば、ビデオデコーダ30は、IBCモードが有効であると決定することに応答して、ループフィルタ演算がインループまたはポストループに適用されるべきかどうかを示すシンタックス要素を受信するように構成される場合がある。加えて、新しいフラグは、IBCモードが使用中であるときにシグナリングすることができる。そのようなフラグは、たとえば、ビットストリーム内に存在しないとき、0に等しいように導出される場合がある。
【0114】
[0110]別の例では、IBCモードは、フィルタリングされた画像が利用可能であるとき、フィルタリングされた(たとえば、デブロックフィルタリングされた、SAOフィルタリングされた、またはALFフィルタリングされた)サンプルを使用することができる。フィルタの場合、フィルタリングされているブロックの外側のいくつかのピクセルは、必要とされるが、利用可能ではない場合がある。そのような外側のピクセルが利用可能である、すなわち、すでに復元されているとき、フィルタリングされたピクセルは、IBCモードにおける予測に使用される場合がある。フィルタリングに必要とされる少なくとも1つのピクセルが利用可能ではない場合、フィルタリングされていないサンプルがIBC予測に使用される。この場合、IBC予測用に記憶されるべきフィルタリングされていないピクセルの量は削減されるので、帯域幅が削減される場合がある。代替として、IBCはフィルタリングされたサンプルのみを参照することができ、この場合、フィルタリングされていないサンプル(たとえば、まだ復元されていない少なくとも1つのピクセルを必要とするサンプル)は、IBC予測用に記憶されることを必要とされない場合がある。この制限は、たとえば予測ブロックを導出するために使用されるMVがそのようなサンプルを含むべきではないという、エンコーダまたはビットストリームの制約によって達成されることができる。
【0115】
[0111]上記の例では、IBC予測に使用されるべきフィルタリングされたピクセルまたはフィルタリングされていないピクセルに対する確認は、隣接CU(neighbor CU)を予測に使用することができるので、複雑であり得る。導出プロセスを簡略化するために、現在ブロックを含んでいる現在CTUのフィルタリングされていないサンプルは、IBC予測に使用することができ、現在CTUの外側に位置するフィルタリングされたサンプルは、利用可能な場合、IBC予測に使用される。この場合、現在CTUサンプルはキャッシュに記憶されることができ、エンコーダ20またはデコーダ30の外部メモリに記憶される必要がないので、フィルタリングされていないピクセルの記憶に関連する帯域幅は削減される場合がある。
【0116】
[0112]IBC予測用のフィルタリングされたサンプルまたはフィルタリングされていないサンプルの間の選択が適用されるかどうかを示すために、フラグを導入することができる。このフラグは、IBCモードが使用されるときにシグナリングし、ビットストリーム内に存在しない場合無効であるように導出されることができる。
【0117】
[0113]代替として、IBC予測用のフィルタリングされたサンプルまたはフィルタリングされていないサンプルの間の選択を示すシグナリングは、(CTU、スライス、タイルの単位の)遅延の観点から行われる可能性がある。たとえば、遅延値より前のブロックからのIBC予測は、フィルタリングされたサンプルのみを使用することができ、遅延値より後のブロックからのIBC予測は、フィルタリングされていないサンプルを使用することができる。上記の例において記載された態様は、単独で、または他の記載された方法との任意の組合せで使用することができる。
【0118】
[0114]本開示は、帯域幅の削減をもたらすことができる技法を記載する。IBCモードの既存の実装形態の場合、ビデオデコーダは予測サンプルをフィルタリングしない。そのため、IBCが有効である場合、フィルタリングされたサンプルに加えて、余分のフィルタリングされていないサンプルも記憶される必要があり、少なくともIBCモードが使用される場合2倍になる記憶帯域幅がもたらされる。
【0119】
[0115]本開示の技法によれば、フィルタリングされていないサンプルによって引き起こされる帯域幅の増加を削減するために、フィルタリングされていないサンプルを記憶する代わりに、ビデオデコーダ30は、フィルタリングされたサンプルとフィルタリングされていないサンプルとの間の差分を記憶することができる。フィルタ演算(たとえば、デブロック、SAO)は小さい値の変化のみを引き起こすので、フィルタリングされたサンプルとフィルタリングされていないサンプルとの間の差分は、記憶するために十分なビット深度を必要としない場合があり、それにより、IBCモードともに使用するためのフィルタリングされたサンプルとフィルタリングされていないサンプルの両方を記憶するために必要な記憶帯域幅を削減する助けになる場合がある。さらに、ネイバ(neighbors)からの予測のような、一例ではロスレス圧縮(lossless compression)であり得る、いくつかの圧縮方式、および可変長コーディングは、帯域幅および記憶空間をさらに削減するために適用することができる。そのような実装形態では、ビデオデコーダ30は、ビデオデータの復元ブロックに対してループフィルタリング演算を実施してフィルタリングされた復元ブロックを生成し、フィルタリングされた復元ブロックと復元ブロックとの間の差分を示す差分値を記憶し、記憶された差分値に少なくとも部分的に基づいてブロックを予測するように構成される場合がある。
【0120】
[0116]本開示はまた、予測サンプルにフィルタリングを適用するための技法を記載する。上記のセクションに述べられたように、IBCモードについての現在の設計では、予測サンプルは、(SAOまたはデブロッキング前の(pre- SAO or de-blocking))、現在ピクチャのフィルタリングされていない復元サンプルである。これらのフィルタリングされていないサンプルは、表示するために送られたフィルタリングされたサンプルに加えて記憶される必要がある。このセクションでは、フィルタリングされていないサンプルをさらに記憶する必要を回避するために、いくつかの方法が提案される。
【0121】
[0117]本開示の第1の技法によれば、ビデオコーダ(たとえば、ビデオエンコーダ20またはビデオデコーダ30)は、復元サンプルの代わりに予測サンプルにSAOおよびデブロッキングを適用することができる。例示的な実装形態が下記に提供される。例示的な実装形態は、現在の設計を本開示で提案された設計の一例と比較する。
現在の設計:Final Recon=Filtered(Pred+Residue)
提案された設計:Final Recon=Filtered(Pred)+Residue
ここで、
Filtered:SAOおよびデブロッキングのいずれかまたは両方のプロセスを表す
Pred:フィルタリングされていない予測サンプルを表す
[0118]上述された第1の技法に関して、ビデオコーダは、任意のモード(たとえば、インター、IBC、イントラ)の予測サンプルにSAOおよびデブロッキングを適用することができる。第2の技法によれば、ビデオコーダは、IBCモードの予測サンプルにSAOおよびデブロッキングを適用するための上述された技法を適用することができる。この技法は、JCTVC−T0045に記載された技法に加えて適用される場合がある。T0045では、フィルタリングは、参照としてIBCに使用することができるCTUに対して無効とされる。これは、客観的および主観的な品質劣化をもたらす場合がある。したがって、本開示は、IBCモードの場合のみに予測サンプルにフィルタリングを適用するための技法を紹介する。
【0122】
[0119]次に、例示的な実装形態が記載される。本開示は、IBCモードの場合に復元サンプルの代わりに予測サンプルにSAOおよびデブロッキングを適用するための技法を記載する。さらに、IBC用の参照エリアとしてCTUが使用されるべき場合、ビットストリーム内でフラグがシグナリングされる場合があり、その場合、フラグは、そのCTUに対してループ内後処理(デブロッキングおよびSAO)をオフに切替え、このようにして、さらなる記憶を回避する。
現在の設計:Final Recon=Filtered(Pred+Residue)
提案された設計:IBCモードの場合のFinal Recon=Filtered(Pred)+Residue
IBCモードではない場合のFinal Recon=Filtered(Pred+Residue)
ここで、
Filtered:SAOおよびデブロッキングのいずれかまたは両方のプロセスを表す
Pred:フィルタリングされていない予測サンプルを表す
[0120]上述されたように予測サンプルにフィルタリングを適用することの一部として、ビデオデコーダ30は、ビデオデータのブロックのための予測ブロックを決定し、予測ブロックをフィルタリングしてフィルタリングされた予測ブロックを生成し、フィルタリングされた予測ブロックに残差データを加算して復元ブロックを生成するように構成される場合がある。予測ブロックをフィルタリングするために、ビデオデコーダ30は、SAOフィルタリング、デブロックフィルタリング、またはALFフィルタリングのうちの1つまたは複数を実施することができる。ビデオデコーダ30は、ビデオデータのブロックがIBCモードを使用してコーディングされることに応答して、予測ブロックをフィルタリングしてフィルタリングされた予測ブロックを生成することができる。IBCモード以外のコーディングモードでコーディングされたビデオデータの第2のブロックの場合、ビデオデコーダ30は、第2のブロックのための第2の予測ブロックに残差データを加算して第2の復元ブロックを生成し、第2の復元ブロックをフィルタリングすることができる。
【0123】
[0121]
図3は、本開示に記載された技法を実装することができる、例示的なビデオエンコーダ20を示すブロック図である。ビデオエンコーダ20は、ビデオスライス内のビデオブロックのイントラコーディングとインターコーディングとを実施することができる。イントラコーディングは、空間予測に依拠して、所与のビデオフレームまたはピクチャ内のビデオにおける空間冗長性を低減または削除する。インターコーディングは、時間予測に依拠して、ビデオシーケンスの隣接するフレームまたはピクチャ内のビデオにおける時間冗長性を低減または除去する。イントラモード(Iモード)は、いくつかの空間ベースの圧縮モードのいずれかを指す場合がある。単方向予測(Pモード)または双予測(Bモード)などのインターモードは、いくつかの時間ベースの圧縮モードのいずれかを指す場合がある。
【0124】
[0122]
図3の例では、ビデオエンコーダ20は、ビデオデータメモリ33と、区分化ユニット35と、予測処理ユニット41と、加算器50と、変換処理ユニット52と、量子化ユニット54と、エントロピー符号化ユニット56とを含む。予測処理ユニット41は、動き推定ユニット(MEU)42と、動き補償ユニット(MCU)44と、イントラ予測処理ユニット46と、IBCユニット48とを含む。説明を簡単にするために、
図3では別々に示されているが、MEU42、MCU44、イントラ予測処理ユニット46、およびIBCユニット48は、実際には高度に統合される場合があることを理解されたい。ビデオブロック復元のために、ビデオエンコーダ20はまた、逆量子化ユニット58と、逆変換処理ユニット60と、加算器62と、フィルタユニット64と、復号ピクチャバッファ(DPB)ユニット66とを含む。
【0125】
[0123]
図3に示されたように、ビデオエンコーダ20は、ビデオデータを受信し、受信されたビデオデータをビデオデータメモリ33に記憶する。ビデオデータメモリ33は、ビデオエンコーダ20の構成要素によって符号化されるべきビデオデータを記憶することができる。ビデオデータメモリ33に記憶されたビデオデータは、たとえば、ビデオソース18から取得される場合がある。DPB66は、たとえば、イントラコーディングモードまたはインターコーディングモードで、ビデオエンコーダ20がビデオデータを符号化する際に使用するための、参照ビデオデータを記憶する参照ピクチャメモリであり得る。ビデオデータメモリ33およびDPB66は、同期DRAM(SDRAM)を含むダイナミックランダムアクセスメモリ(DRAM)、磁気抵抗RAM(MRAM)、抵抗性RAM(RRAM(登録商標))、または他のタイプのメモリデバイスなどの、様々なメモリデバイスのいずれかによって形成される場合がある。ビデオデータメモリ33およびDPB66は、同じメモリデバイスまたは別個のメモリデバイスによって提供される場合がある。様々な例では、ビデオデータメモリ33は、ビデオエンコーダ20の他の構成要素とともにオンチップであるか、またはそれらの構成要素に対してオフチップであり得る。
【0126】
[0124]区分化ユニット35は、ビデオデータメモリ33からビデオデータを取り出し、予測処理ユニット41と連携して、ビデオデータをビデオブロックに区分化する。この区分化はまた、たとえば、LCUおよびCUの4分木構造に従って、スライス、タイル、または他のより大きいユニットへの区分化、ならびにビデオブロックの区分化を含む場合がある。説明を簡単にするために別々に示されているが、区分化ユニット35および予測処理ユニット41は高度に統合される場合があり、区分化ユニット35と予測処理ユニット41の両方は、ビデオのピクチャをどのように区分化するかを決定するプロセスの態様を実施することができる。ビデオエンコーダ20は、概して、符号化されるべきビデオスライス内のビデオブロックを符号化する構成要素を示す。スライスは、複数のビデオブロックに(場合によっては、タイルと呼ばれるビデオブロックのセットに)分割される場合がある。予測処理ユニット41は、誤差結果(たとえばコーディングレートおよびひずみレベル)に基づいて現在ビデオブロックのために、複数のイントラコーディングモードのうちの1つ、または複数のインターコーディングモードのうちの1つなどの、複数の可能なコーディングモードのうちの1つを選択することができる。予測処理ユニット41は、得られたイントラコード化ブロックまたはインターコード化ブロックを、加算器50に供給して残差ブロックデータを生成し、加算器62に供給して参照ピクチャとして使用するための符号化ブロックを復元することができる。
【0127】
[0125]予測処理ユニット41内のイントラ予測処理ユニット46は、空間圧縮を実現するために、コーディングされるべき現在ブロックと同じフレームまたはスライス内の1つまたは複数の隣接ブロックに対する現在ビデオブロックのイントラ予測コーディングを実施することができる。予測処理ユニット41内の動き推定ユニット42および動き補償ユニット44は、時間圧縮を実現するために、1つまたは複数の参照ピクチャの中の1つまたは複数の予測ブロックに対する現在ビデオブロックのインター予測コーディングを実施する。動き推定ユニット42によって実施される動き推定は、ビデオブロックについての動きを推定する動きベクトルを生成するプロセスである。動きベクトルは、たとえば、参照ピクチャ内の予測ブロックに対する現在ビデオフレームまたはピクチャ内のビデオブロックのPUの変位を示すことができる。
【0128】
[0126]予測ブロックは、絶対差分和(SAD)、2乗差分和(SSD)、または他の差分メトリックによって決定される場合があるピクセル差分に関して、コーディングされるべきビデオブロックのPUにぴったり一致することがわかるブロックである。いくつかの例では、ビデオエンコーダ20は、DPB66に記憶された参照ピクチャのサブ整数ピクセル位置についての値を計算することができる。たとえば、ビデオエンコーダ20は、参照ピクチャの1/4ピクセル位置、1/8ピクセル位置、または他の分数ピクセル位置の値を補間することができる。したがって、動き推定ユニット42は、フルピクセル位置および分数ピクセル位置に対して動き探索を実施し、分数ピクセル精度で動きベクトルを出力することができる。
【0129】
[0127]動き推定ユニット42は、PUの位置を参照ピクチャの予測ブロックの位置と比較することにより、インターコード化スライス内のビデオブロックのPU用の動きベクトルを計算する。参照ピクチャは、第1の参照ピクチャリスト(リスト0)または第2の参照ピクチャリスト(リスト1)から選択される場合があり、それらの各々は、DPB66に記憶された1つまたは複数の参照ピクチャを識別する。動き推定ユニット42は、計算された動きベクトルをエントロピー符号化ユニット56および動き補償ユニット44に送る。
【0130】
[0128]動き補償ユニット44によって実施される動き補償は、動き推定によって決定された動きベクトルに基づいて予測ブロックをフェッチまたは生成すること、場合によっては、サブピクセル精度への補間を実施することを伴う場合がある。現在ビデオブロックのPU用の動きベクトルを受信すると、動き補償ユニット44は、参照ピクチャリストのうちの1つにおいて動きベクトルが指す予測ブロックの位置を特定することができる。ビデオエンコーダ20は、コーディングされている現在ビデオブロックのピクセル値から予測ブロックのピクセル値を減算し、ピクセル差分値を形成することにより、残差ビデオブロックを形成する。ピクセル差分値は、ブロック用の残差データを形成し、ルーマ差分成分とクロマ差分成分の両方を含む場合がある。加算器50は、この減算演算を実施する1つまたは複数の構成要素を表す。動き補償ユニット44はまた、ビデオスライスのビデオブロックを復号する際にビデオデコーダ30が使用するための、ビデオブロックおよびビデオスライスに関連付けられたシンタックス要素を生成することができる。
【0131】
[0129]いくつかの例では、IBCユニット48は、動き推定ユニット42および動き補償ユニット44に関して上述された方式と同様の方式で2次元ベクトルを生成し、予測ブロックを取り込むことができるが、予測ブロックは現在ブロックと同じピクチャまたはフレーム内に位置する。他の例では、IBCユニット48は、動き推定ユニット42および動き補償ユニット44を使用して、全体的または部分的に、本明細書に記載された技法によるIBC予測用のそのような機能を実施することができる。いずれの場合も、IBCの場合、予測ブロックは、ピクセル差分に関して、コーディングされるべきブロックにぴったり一致することがわかるブロックであり、ピクセル差分は、SAD、SSD、または他の差分メトリックによって決定される場合があり、ブロックの識別は、サブ整数ピクセル位置についての値の計算を含む場合がある。
【0132】
[0130]予測処理ユニット41が、イントラ予測、インター予測、またはIBCを介して、現在ビデオブロックのための予測ブロックを生成した後、ビデオエンコーダ20は、現在ビデオブロックから予測ブロックを減算することにより残差ビデオブロックを形成する。残差ブロック内の残差ビデオデータは、1つまたは複数のTUに含まれ、変換処理ユニット52に適用される場合がある。変換処理ユニット52は、離散コサイン変換(DCT)または概念的に同様の変換などの変換を使用して、残差ビデオデータを残差変換係数に変換する。変換処理ユニット52は、ピクセル領域から周波数領域などの変換領域に残差ビデオデータを変換することができる。
【0133】
[0131]変換処理ユニット52は、得られた変換係数を量子化ユニット54に送ることができる。量子化ユニット54は、変換係数を量子化して、ビットレートをさらに削減する。量子化プロセスは、係数の一部またはすべてに関連付けられたビット深度を低減することができる。量子化の程度は、量子化パラメータを調整することによって修正される場合がある。いくつかの例では、量子化ユニット54は、次いで、量子化変換係数を含む行列の走査を実施することができる。代替として、エントロピー符号化ユニット56が走査を実施する場合がある。
【0134】
[0132]量子化に続いて、エントロピー符号化ユニット56は、量子化変換係数をエントロピー符号化する。たとえば、エントロピー符号化ユニット56は、コンテキスト適応型可変長コーディング(CAVLC)、コンテキスト適応型バイナリ算術コーディング(CABAC)、シンタックスベースコンテキスト適応型バイナリ算術コーディング(SBAC)、確率間隔区分化エントロピー(PIPE)コーディング、または別のエントロピー符号化の方法もしくは技法を実施することができる。エントロピー符号化ユニット56によるエントロピー符号化に続いて、符号化ビットストリームは、ビデオデコーダ30に送信されるか、またはビデオデコーダ30が後で送信するかもしくは取り出すためにアーカイブされる場合がある。エントロピー符号化ユニット56はまた、コーディングされている現在ビデオスライス用の動きベクトルと他のシンタックス要素とをエントロピー符号化することができる。
【0135】
[0133]逆量子化ユニット58および逆変換処理ユニット60は、それぞれ、逆量子化および逆変換を適用して、参照ピクチャの参照ブロックとして後で使用するためのピクセル領域内の残差ブロックを復元する。動き補償ユニット44は、参照ピクチャリストのうちの1つの中の参照ピクチャのうちの1つの予測ブロックに残差ブロックを加算することにより、参照ブロックを計算することができる。動き補償ユニット44はまた、復元残差ブロックに1つまたは複数の補間フィルタを適用して、動き推定において使用するためのサブ整数ピクセル値を計算することができる。加算器62は、動き補償ユニット44によって生成された動き補償予測ブロックに復元残差ブロックを加算して、復元ビデオブロックを生成する。
【0136】
[0134]フィルタユニット64は、復元ブロック(たとえば、加算器62の出力)をフィルタリングし、参照ブロックとして使用するために、フィルタリングされた復元ブロックをDPB66に記憶する。参照ブロックは、後続のビデオフレームまたはピクチャ内のブロックをインター予測するために、動き推定ユニット42および動き補償ユニット44によって参照ブロックとして使用される場合がある。フィルタユニット64は、デブロッキングフィルタリング、サンプル適応オフセット(SAO)フィルタリング、適応ループフィルタリング(ALF)、または他のタイプのループフィルタリングのうちの1つまたは複数を適用することができる。フィルタユニット64は、フィルタブロック境界にデブロッキングフィルタリングを適用して、復元ビデオからブロッキネスアーティファクト(blockiness artifacts)を除去することができ、他のタイプのフィルタリングを適用して、全体的なコーディング品質を改善することができる。追加のループフィルタ(インループまたはポストループ)が使用される場合もある。
【0137】
[0135]ビデオエンコーダ20は、本開示の技法を実施することができるビデオエンコーダの、唯一ではないが、1つの例を表す。ビデオエンコーダ20、たとえば、IBCユニット48は、たとえば、ビデオデータのスライスをIスライスとして符号化することができる。ビデオエンコーダ20は、たとえば、コード化ビデオシーケンス用のいくつかのコーディングパスを実施し、スライスをIスライスとしてコーディングすることが、望ましいレートひずみトレードオフなどの望ましいコーディング特性をもたらすと決定することができる。スライスの場合、ビデオエンコーダ20、たとえば、IBCユニット48およびエントロピー符号化ユニット56はまた、IBCモードがスライスに有効であることを示すために、IBCシンタックス要素を生成することができる。スライスの場合、ビデオエンコーダ20、たとえば、IBCユニット48は、IBCモードを使用してスライスの少なくとも1つのブロックを符号化することができ、ビデオエンコーダ20、たとえば、イントラ予測処理ユニット46は、イントラモードを使用してスライスの少なくとも1つのブロックを符号化することができる。ビデオエンコーダ20、たとえば、エントロピー符号化ユニット56は、SPS内にIBCシンタックス要素を含めることができる。ビデオデータのスライス用の参照ピクチャリスト内の参照ピクチャの数が1に等しいと決定することに応答して、および、IBCモードがスライスに有効であることに応答して、ビデオエンコーダ20、たとえば、予測処理ユニット41は、参照ピクチャリスト修正を無効にすることができる。参照ピクチャリスト修正を無効にすることの一部として、ビデオエンコーダ20は、符号化ビットストリーム内にスライス用の参照ピクチャリスト修正情報を含めない場合がある。
【0138】
[0136]
図4は、本開示に記載された技法を実装することができる、例示的なビデオデコーダ30を示すブロック図である。
図4の例では、ビデオデコーダ30は、ビデオデータメモリ78と、エントロピー復号ユニット80と、予測処理ユニット81と、逆量子化ユニット86と、逆変換処理ユニット88と、加算器90と、フィルタユニット92と、DPB94とを含む。予測処理ユニット81は、動き補償ユニット82と、イントラ予測処理ユニット84と、IBCユニット85とを含む。ビデオデコーダ30は、いくつかの例では、
図3からのビデオエンコーダ20に関して記載された符号化パスとは全体的に逆の復号パスを実施することができる。
【0139】
[0137]復号プロセス中に、ビデオデコーダ30は、ビデオエンコーダ20から、符号化ビデオスライスのビデオブロックと、関連付けられたシンタックス要素とを表す、符号化ビデオビットストリームを受信する。ビデオデコーダ30は、受信された符号化ビデオビットストリームをビデオデータメモリ78に記憶する。ビデオデータメモリ78は、ビデオデコーダ30の構成要素によって復号されるべき、符号化ビデオビットストリームなどのビデオデータを記憶することができる。ビデオデータメモリ78に記憶されたビデオデータは、たとえば、リンク16を介して、ストレージデバイス26から、または、カメラなどのローカルビデオソースから、または、物理データ記憶媒体にアクセスすることによって取得される場合がある。ビデオデータメモリ78は、符号化ビデオビットストリームからの符号化ビデオデータを記憶するコード化ピクチャバッファ(CPB)を形成することができる。DPB94は、たとえば、イントラコーディングモードまたはインターコーディングモードで、ビデオデコーダ30がビデオデータを復号する際に使用するための参照ビデオデータを記憶する参照ピクチャメモリであり得る。ビデオデータメモリ78およびDPB94は、DRAM、SDRAM、MRAM、RRAM、または他のタイプのメモリデバイスなどの、様々なメモリデバイスのいずれかによって形成される場合がある。ビデオデータメモリ78およびDPB94は、同じメモリデバイスまたは別個のメモリデバイスによって提供される場合がある。様々な例では、ビデオデータメモリ78は、ビデオデコーダ30の他の構成要素とともにオンチップであるか、またはそのような構成要素に対してオフチップであり得る。
【0140】
[0138]ビデオデコーダ30のエントロピー復号ユニット80は、ビデオデータメモリ78に記憶されたビデオデータをエントロピー復号して、量子化係数と、動きベクトルと、他のシンタックス要素とを生成する。エントロピー復号ユニット80は、動きベクトルと他のシンタックス要素とを予測処理ユニット81に転送する。ビデオデコーダ30は、ビデオスライスレベルおよび/またはビデオブロックレベルで、シンタックス要素を受信することができる。
【0141】
[0139]ビデオスライスがイントラコード化(I)スライスとしてコーディングされたとき、予測処理ユニット81のイントラ予測処理ユニット84は、シグナリングされたイントラ予測モード、および現在フレームまたはピクチャの前に復号されたブロックからのデータに基づいて、現在ビデオスライスのビデオブロックのための予測データを生成することができる。ビデオフレームがインターコード化としてコーディングされるとき、予測処理ユニット81の動き補償ユニット82は、エントロピー復号ユニット80から受信された動きベクトルおよび他のシンタックス要素に基づいて、現在ビデオスライスのビデオブロックのための予測ブロックを生成する。予測ブロックは、参照ピクチャリストのうちの1つの中の参照ピクチャのうちの1つから生成される場合がある。ビデオデコーダ30は、DPB94に記憶された参照ピクチャに基づいて、デフォルトの構築技法を使用して、参照フレームリスト、リスト0およびリスト1を構築することができる。
【0142】
[0140]動き補償ユニット82および/またはIBCユニット85は、動きベクトルおよび他のシンタックス要素を解析することにより現在ビデオスライスのビデオブロックについての予測情報を決定し、予測情報を使用して、復号されている現在ビデオブロックのための予測ブロックを生成する。たとえば、動き補償ユニット82は、現在ビデオスライス内のビデオブロックを復号するために、受信されたシンタックス要素のうちのいくつかを使用して、ビデオスライスのビデオブロックをコーディングするために使用される予測モード(たとえば、イントラ予測またはインター予測またはIBC)と、スライス用の参照ピクチャリストのうちの1つまたは複数についての構成情報と、スライスのインターコード化ビデオブロックごとの動きベクトルと、スライスのインターコード化ビデオブロックごとのインター予測ステータスと、他の情報とを決定する。
【0143】
[0141]動き補償ユニット82および/またはIBCユニット85はまた、補間フィルタに基づいて補間を実施することができる。動き補償ユニット82および/またはIBCユニット85は、ビデオブロックの符号化中にビデオエンコーダ20によって使用されるような補間フィルタを使用して、参照ブロックのサブ整数ピクセルについての補間された値を計算することができる。この場合、動き補償ユニット82および/またはIBCユニット85は、受信されたシンタックス要素からビデオエンコーダ20によって使用された補間フィルタを決定し、補間フィルタを使用して予測ブロックを生成することができる。
【0144】
[0142]逆量子化ユニット86は、ビットストリーム内で供給され、エントロピー復号ユニット80によって復号された量子化変換係数を逆量子化、すなわち、量子化解除する。逆量子化処理は、量子化の程度を決定し、同様に、適用されるべき逆量子化の程度を決定するための、ビデオスライス内のビデオブロックごとにビデオエンコーダ20によって計算された量子化パラメータの使用を含む場合がある。逆変換処理ユニット88は、ピクセル領域において残差ブロックを生成するために、逆変換、たとえば、逆DCT、逆整数変換、または概念的に同様の逆変換プロセスを変換係数に適用する。
【0145】
[0143]予測処理ユニットが、たとえば、イントラ予測またはインター予測を使用して現在ビデオブロックのための予測ブロックを生成した後、ビデオデコーダ30は、逆変換処理ユニット88からの残差ブロックを動き補償ユニット82によって生成された対応する予測ブロックと加算することにより、復元ビデオブロックを形成する。加算器90は、この加算演算を実施する1つまたは複数の構成要素を表す。フィルタユニット92は、たとえば、デブロッキングフィルタリング、SAOフィルタリング、ALFフィルタリング、または他のタイプのフィルタリングのうちの1つまたは複数を使用して、復元ビデオブロックをフィルタリングする。ピクセル遷移を平滑化するために、または場合によってはビデオ品質を改善するために、(コーディングループ中またはコーディングループ後のいずれかに)他のループフィルタが使用される場合もある。所与のフレームまたはピクチャ内の復号ビデオブロックは、次いでDPB94に記憶され、DPB94は、その後の動き補償に使用される参照ピクチャを記憶する。DPB94は、
図1のディスプレイデバイス32など、ディスプレイデバイス上に後で提示するための(for later presentation)復号ビデオを記憶する追加メモリの一部であり得るか、または追加メモリとは別個であり得る。
【0146】
[0144]ビデオデコーダ30は、本開示の技法を実施することができるビデオデコーダの、唯一ではないが、1つの例を表す。ビデオデコーダ30、たとえば、ビデオデータメモリ78およびエントロピー復号ユニット80は、ビデオデータのスライスを受信することができる。ビデオデコーダ30、たとえば、エントロピー復号ユニット80および予測処理ユニット81は、IBCシンタックス要素を解析して、IBCモードがスライスに有効であると決定することができる。ビデオデコーダ30、たとえば、エントロピー復号ユニット80および予測処理ユニット81は、スライスに関連付けられたスライスタイプシンタックス要素を解析して、スライスがIスライスであると決定することができる。ビデオデコーダ30、たとえば、イントラ予測処理ユニット84およびIBCユニット85は、スライスをIスライスとして復号することができる。スライスをIスライスとして復号するために、ビデオデコーダ30は、イントラ予測のみを使用して、インター予測モードまたはIBCモードを使用せずに、スライスのブロックを復号することができる。ビデオデコーダ30、たとえば、エントロピー復号ユニット80は、SPS内でIBCシンタックス要素を受信することができる。スライスの少なくとも1つのブロックに対してIBCを実施するために、ビデオデコーダ30、たとえば、IBCユニット85は、スライスを備える現在ピクチャを参照ピクチャとして使用することができる。
【0147】
[0145]ビデオデコーダ30、たとえば、予測処理ユニットおよびDPB94は、たとえば、ビデオデータのスライス用の参照ピクチャリストを構築することができる。参照ピクチャリストに含まれるピクチャの数は、IBCが有効にされることに依存する場合がある。ビデオデコーダ30、たとえば、予測処理ユニット81は、ビデオデータのスライス用の参照ピクチャリストを構築することができる。IBCモードが有効であることに応答して、ビデオデコーダ30、たとえば、予測処理ユニットおよびDPB94は、スライスを含んでいるピクチャを参照ピクチャリストに追加することができる。
【0148】
[0146]ビデオデコーダ30、たとえば、エントロピー復号ユニット80および予測処理ユニット81は、ビデオデータのスライス用の参照ピクチャリスト内の参照ピクチャの数を示すシンタックス要素を受信することができる。ビデオデータのスライス用の参照ピクチャリスト内の参照ピクチャの数を示すシンタックス要素が1に等しいことに応答して、および、IBCモードがスライスに有効であることに応答して、ビデオデコーダ30、たとえば、予測処理ユニットおよびDPB94は、参照ピクチャリスト内の第1の項目としてスライスを備える現在ピクチャを含む、ビデオデータのスライス用の参照ピクチャリストを構築することができる。
【0149】
[0147]ビデオデコーダ30、たとえば、エントロピー復号ユニット80および予測処理ユニット81は、ビデオデータのスライス用の参照ピクチャリスト内の参照ピクチャの数を示すシンタックス要素を受信することができる。ビデオデータのスライス用の参照ピクチャリスト内の参照ピクチャの数を示すシンタックス要素が1に等しいことに応答して、および、IBCモードがスライスに有効であることに応答して、ビデオデコーダ30、たとえば、予測処理ユニット81は、参照ピクチャリスト修正を無効にすることができる。参照ピクチャリスト修正を無効にすることの一部として、ビデオデコーダ30、たとえば、予測処理ユニット81は、参照ピクチャリスト修正情報を受信せずに、参照ピクチャリストを構築することができる。
【0150】
[0148]
図5は、本開示の技法による、ビデオデータを符号化する方法を示すフローチャートである。
図5は、一般的なビデオエンコーダに関して記載される。
図5の例では、ビデオエンコーダは、ビデオデータのスライスをIスライスとして符号化する(150)。スライスの場合、ビデオエンコーダはまた、IBCモードがスライスに有効であることを示すために、IBCシンタックス要素を生成する(152)。スライスの場合、ビデオエンコーダは、IBCモードを使用してスライスの少なくとも1つのブロックを符号化することができ、イントラモードを使用してスライスの少なくとも1つのブロックを符号化することもできる。ビデオエンコーダは、スライスに関連付けられた、SPSに含めるためのIBCシンタックス要素を生成することができる。ビデオデータのスライス用の参照ピクチャリスト内の参照ピクチャの数が1に等しいと決定することに応答して、および、IBCモードがスライスに有効であることに応答して、ビデオエンコーダは、参照ピクチャリスト修正を無効にすることができる。参照ピクチャリスト修正を無効にすることの一部として、ビデオエンコーダは、符号化ビットストリーム内にスライス用の参照ピクチャリスト修正情報を含めない場合がある。
【0151】
[0149]
図6は、本開示の技法による、ビデオデータを符号化する方法を示すフローチャートである。
図6は、一般的なビデオデコーダに関して記載される。一般的なビデオデコーダは、たとえば、ビデオデコーダ30に対応する場合があるが、本開示の技法は、いかなる特定のタイプのビデオデコーダにも限定されない。ビデオデコーダは、ビデオデータのスライスを受信する(160)。ビデオデコーダは、IBCモードがスライスに有効であると決定するために、IBCシンタックス要素を解析する(162)。ビデオデコーダは、スライスがIスライスであると決定するために、スライスに関連付けられたスライスタイプシンタックス要素を解析する(164)。ビデオデコーダは、スライスをIスライスとして復号する(166)。スライスをIスライスとして復号するために、ビデオデコーダは、たとえば、イントラ予測コーディングモードを使用してスライスのすべてのブロックを復号することができる。ビデオデコーダは、SPS内でIBCシンタックス要素を受信することができる。スライスをIスライスとして復号するために、ビデオデコーダは、イントラ予測のみを使用してスライスのブロックを復号する。言い換えれば、スライスをIスライスとして復号するために、ビデオデコーダは、インター予測モードを使用することも、IBCモードを使用することもなしに、スライスのブロックを復号する。
【0152】
[0150]IBCシンタックス要素は、たとえば、上述されたcurr_pic_as_ref_enabled_flagの場合があり、IBCシンタックス要素を解析してIBCモードがスライスに有効であると決定するために、ビデオデコーダは、curr_pic_as_ref_enabled_flagの値を1に等しいように決定することができる。スライスタイプシンタックス要素は、たとえば、上述されたslice_typeシンタックス要素の場合があり、スライスに関連付けられたスライスタイプシンタックス要素を解析してスライスがIスライスであると決定するために、ビデオデコーダは、slice_typeシンタックス要素の値を2に等しいように決定することができる。
【0153】
[0151]
図6の例によれば、ビデオデコーダはまた、ビデオデータの第2のスライスを受信し、ビデオデータの第2のスライス用の参照ピクチャリスト内の参照ピクチャの数を示すシンタックス要素を受信し、ビデオデータの第2のスライス用の参照ピクチャリスト内の参照ピクチャの数を示すシンタックス要素が1に等しいことに応答して、および、IBCモードが第2のスライスに有効であることに応答して、ビデオデコーダは、スライスを備える現在ピクチャを含む、ビデオデータの第2のスライス用の参照ピクチャリストを構築することができる。別の例では、ビデオデコーダは、ビデオデータの第2のスライスを受信し、ビデオデータの第2のスライス用の参照ピクチャリストを構築し、IBCモードが有効であることに応答して、第2のスライスを含んでいるピクチャを参照ピクチャリストに追加することができる。
【0154】
[0152]
図7は、本開示の技法による、ビデオデータを符号化する方法を示すフローチャートである。
図7は、一般的なビデオデコーダに関して記載される。
図7の技法は、
図6の技法と連携して使用される場合があるか、または単独で使用される場合がある。一般的なビデオデコーダは、たとえば、ビデオデコーダ30に対応する場合があるが、本開示の技法は、いかなる特定のタイプのビデオデコーダにも限定されない。ビデオデコーダは、ビデオデータのスライスを受信する(170)。ビデオデコーダは、ビデオデータのスライス用の参照ピクチャリスト内の参照ピクチャの数を示すシンタックス要素を受信する(172)。ビデオデータのスライス用の参照ピクチャリスト内の参照ピクチャの数を示すシンタックス要素が1に等しいことに応答して、および、IBCモードが第2のスライスに有効であることに応答して、ビデオデコーダは、第2のスライス用の参照ピクチャリストに対する参照ピクチャリスト修正を無効にする(174)。参照ピクチャリスト修正を無効にするために、ビデオデコーダは、たとえば、参照ピクチャリスト修正情報を受信せずに参照ピクチャリストを構築し、参照ピクチャリスト内の第1の項目としてスライスを備える現在ピクチャを追加することができる。
【0155】
[0153]1つまたは複数の例では、記載された機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せに実装される場合がある。ソフトウェアに実装される場合、機能は1つまたは複数の命令またはコードとして、コンピュータ可読媒体上に記憶されるか、またはコンピュータ可読媒体を介して送信され、ハードウェアベースの処理ユニットによって実行される場合がある。コンピュータ可読媒体は、データ記憶媒体などの有形媒体に対応するコンピュータ可読記憶媒体、または、たとえば、通信プロトコルに従ってある場所から別の場所へのコンピュータプログラムの転送を容易にする任意の媒体を含む通信媒体を含む場合がある。このようにして、コンピュータ可読媒体は、概して、(1)非一時的である有形コンピュータ可読記憶媒体、または(2)信号もしくは搬送波などの通信媒体に対応する場合がある。データ記憶媒体は、本開示に記載された技法の実装用の命令、コード、および/またはデータ構造を取り出すために、1つもしくは複数のコンピュータまたは1つもしくは複数のプロセッサによってアクセスすることができる、任意の利用可能な媒体であり得る。コンピュータプログラム製品は、コンピュータ可読媒体を含む場合がある。
【0156】
[0154]限定ではなく例として、そのようなコンピュータ可読記憶媒体は、RAM、ROM、EEPROM(登録商標)、CD−ROMもしくは他の光ディスクストレージ、磁気ディスクストレージもしくは他の磁気ストレージデバイス、フラッシュメモリ、または、命令もしくはデータ構造の形態の所望のプログラムコードを記憶するために使用することができ、コンピュータによってアクセスすることができる任意の他の媒体を備えることができる。また、いかなる接続もコンピュータ可読媒体と適切に呼ばれる。たとえば、命令が、同軸ケーブル、光ファイバケーブル、ツイストペア、デジタル加入者回線(DSL)、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバケーブル、ツイストペア、DSL、または赤外線、無線、およびマイクロ波などのワイヤレス技術は媒体の定義に含まれる。しかしながら、コンピュータ可読記憶媒体およびデータ記憶媒体は、接続、搬送波、信号、または他の一時媒体を含まないが、代わりに、非一時的有形記憶媒体を対象とすることを理解されたい。本明細書で使用するディスク(disk)およびディスク(disc)は、コンパクトディスク(disc)(CD)、レーザーディスク(登録商標)(disc)、光ディスク(disc)、デジタル多用途ディスク(disc)(DVD)、フロッピー(登録商標)ディスク(disk)、およびBlu−rayディスク(disc)を含み、ディスク(disk)は、通常、データを磁気的に再生し、ディスク(disc)は、データをレーザーで光学的に再生する。上記の組合せもコンピュータ可読媒体の範囲に含まれるべきである。
【0157】
[0155]命令は、1つまたは複数のデジタル信号プロセッサ(DSP)、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブル論理アレイ(FPGA)、または他の等価な集積回路もしくは個別論理回路などの、固定機能および/またはプログラマブル処理回路を含む、1つまたは複数のプロセッサによって実行される場合がある。したがって、本明細書で使用する「プロセッサ」という用語は、前述の構造、または本明細書に記載された技法の実装に適した任意の他の構造のいずれかを指す場合がある。加えて、いくつかの態様では、本明細書に記載された機能は、符号化および復号のために構成された専用のハードウェアおよび/もしくはソフトウェアのモジュール内で提供されるか、または複合コーデックに組み込まれる場合がある。また、本技法は、1つまたは複数の回路または論理要素内に十分に実装される可能性がある。
【0158】
[0156]本開示の技法は、ワイヤレスハンドセット、集積回路(IC)またはICのセット(たとえば、チップセット)を含む、多種多様なデバイスまたは装置に実装される場合がある。本開示では、開示された技法を実施するように構成されたデバイスの機能的態様を強調するために、様々な構成要素、モジュール、またはユニットが記載されたが、それらは、必ずしも異なるハードウェアユニットによって実現される必要があるとは限らない。むしろ、上述されたように、様々なユニットは、適切なソフトウェアおよび/またはファームウェアとともに、上述された1つまたは複数のプロセッサを含めて、コーデックハードウェアユニット内で組み合わされるか、または相互動作可能なハードウェアユニットの集合によって提供される場合がある。
【0159】
[0157]様々な例が記載された。これらおよび他の例は以下の特許請求の範囲内にある。
以下に、本願の出願当初の特許請求の範囲に記載された発明を付記する。
[C1]
ビデオデータを復号するための方法であって、
前記ビデオデータのスライスを受信することと、
イントラブロックコピー(IBC)モードが前記スライスに有効であると決定するために、IBCシンタックス要素を解析することと、
前記スライスがIスライスであると決定するために、前記スライスに関連付けられたスライスタイプシンタックス要素を解析することと、
前記スライスをIスライスとして復号することと
を備え、前記スライスをIスライスとして復号することが、少なくとも1つのイントラ予測コーディングモードを使用して前記スライスのすべてのブロックを復号することを備える、方法。
[C2]
シーケンスパラメータセット(SPS)内で前記IBCシンタックス要素を受信すること
をさらに備える、C1に記載の方法。
[C3]
前記スライスをIスライスとして復号することが、イントラ予測のみを使用して前記スライスのブロックを復号することを備える、C1に記載の方法。
[C4]
前記スライスをIスライスとして復号することが、インター予測モードを使用することも、前記IBCモードを使用することもなしに、前記スライスのブロックを復号することを備える、C1に記載の方法。
[C5]
前記IBCシンタックス要素がcurr_pic_as_ref_enabled_flagシンタックス要素を備え、前記IBCモードが前記スライスに有効であると決定するために前記IBCシンタックス要素を解析することが、前記curr_pic_as_ref_enabled_flagシンタックス要素の値が1に等しいと決定することを備える、C1に記載の方法。
[C6]
前記スライスタイプシンタックス要素がslice_typeシンタックス要素を備え、前記スライスがIスライスであると決定するために前記スライスに関連付けられた前記スライスタイプシンタックス要素を解析することが、前記slice_typeシンタックス要素の値が2に等しいと決定することを備える、C1に記載の方法。
[C7]
前記ビデオデータの第2のスライスを受信することと、
前記ビデオデータの前記第2のスライス用の参照ピクチャリスト内の参照ピクチャの数を示すシンタックス要素を受信することと、
前記ビデオデータの前記第2のスライス用の前記参照ピクチャリスト内の参照ピクチャの前記数を示す前記シンタックス要素が1に等しいことに応答して、および、前記IBCモードが前記第2のスライスに有効であることに応答して、前記第2のスライス用の前記参照ピクチャリストに対する参照ピクチャリスト修正を無効にすることと
をさらに備える、C1に記載の方法。
[C8]
参照ピクチャリスト修正を無効にすることが、
参照ピクチャリスト修正情報を受信せずに、前記参照ピクチャリストを構築することと、
前記参照ピクチャリスト内の第1の項目として、前記第2のスライスを備える現在ピクチャを追加することと
を備える、C7に記載の方法。
[C9]
前記ビデオデータの第2のスライスを受信することと、
前記ビデオデータの前記第2のスライス用の参照ピクチャリスト内の参照ピクチャの数を示すシンタックス要素を受信することと、
前記ビデオデータの前記第2のスライス用の前記参照ピクチャリスト内の参照ピクチャの前記数を示す前記シンタックス要素が1に等しいことに応答して、および、前記IBCモードが前記第2のスライスに有効であることに応答して、前記スライスを備える現在ピクチャを含む、前記ビデオデータの前記第2のスライス用の参照ピクチャリストを構築することと
をさらに備える、C1に記載の方法。
[C10]
前記ビデオデータの第2のスライスを受信することと、
前記ビデオデータの前記第2のスライス用の参照ピクチャリストを構築することと、 IBCモードが有効であることに応答して、前記第2のスライスを含んでいる前記ピクチャを前記参照ピクチャリストに追加することと
をさらに備える、C1に記載の方法。
[C11]
ビデオデータを復号するためのデバイスであって、
前記ビデオデータを記憶するように構成されたメモリと、
1つまたは複数のプロセッサとを備え、前記1つまたは複数のプロセッサが、
前記ビデオデータのスライスを受信することと、
イントラブロックコピー(IBC)モードが前記スライスに有効であると決定するために、IBCシンタックス要素を解析することと、
前記スライスがIスライスであると決定するために、前記スライスに関連付けられたスライスタイプシンタックス要素を解析することと、
前記スライスをIスライスとして復号することと
を行うように構成され、前記スライスをIスライスとして復号するために、前記1つまたは複数のプロセッサが、少なくとも1つのイントラ予測コーディングモードを使用して前記スライスのすべてのブロックを復号するように構成される、デバイス。
[C12]
前記1つまたは複数のプロセッサが、
シーケンスパラメータセット(SPS)内で前記IBCシンタックス要素を受信すること
を行うようにさらに構成される、C11に記載のデバイス。
[C13]
前記スライスをIスライスとして復号するために、前記1つまたは複数のプロセッサが、イントラ予測のみを使用して前記スライスのブロックを復号するようにさらに構成される、C11に記載のデバイス。
[C14]
前記スライスをIスライスとして復号するために、前記1つまたは複数のプロセッサが、インター予測モードを使用することも、前記IBCモードを使用することもなしに、前記スライスのブロックを復号するようにさらに構成される、C11に記載のデバイス。
[C15]
前記IBCシンタックス要素がcurr_pic_as_ref_enabled_flagシンタックス要素を備え、前記IBCシンタックス要素を解析して、前記IBCモードが前記スライスに有効であると決定するために、前記1つまたは複数のプロセッサが、前記curr_pic_as_ref_enabled_flagシンタックス要素の値が1に等しいと決定するようにさらに構成される、C11に記載のデバイス。
[C16]
前記スライスタイプシンタックス要素がslice_typeシンタックス要素を備え、前記スライスに関連付けられた前記スライスタイプシンタックス要素を解析して、前記スライスがIスライスであると決定するために、前記1つまたは複数のプロセッサが、前記slice_typeシンタックス要素の値が2に等しいと決定するようにさらに構成される、C11に記載のデバイス。
[C17]
前記1つまたは複数のプロセッサが、
前記ビデオデータの第2のスライスを受信することと、
前記ビデオデータの前記第2のスライス用の参照ピクチャリスト内の参照ピクチャの数を示すシンタックス要素を受信することと、
前記ビデオデータの前記第2のスライス用の前記参照ピクチャリスト内の参照ピクチャの前記数を示す前記シンタックス要素が1に等しいことに応答して、および、前記IBCモードが前記第2のスライスに有効であることに応答して、前記第2のスライス用の前記参照ピクチャリストに対する参照ピクチャリスト修正を無効にすることと
を行うようにさらに構成される、C11に記載のデバイス。
[C18]
参照ピクチャリスト修正を無効にするために、前記1つまたは複数のプロセッサが、 参照ピクチャリスト修正情報を受信せずに、前記参照ピクチャリストを構築することと、
前記参照ピクチャリスト内の第1の項目として、前記第2のスライスを備える現在ピクチャを追加することと
を行うようにさらに構成される、C17に記載のデバイス。
[C19]
前記1つまたは複数のプロセッサが、
前記ビデオデータの第2のスライスを受信することと、
前記ビデオデータの前記第2のスライス用の参照ピクチャリスト内の参照ピクチャの数を示すシンタックス要素を受信することと、
前記ビデオデータの前記第2のスライス用の前記参照ピクチャリスト内の参照ピクチャの前記数を示す前記シンタックス要素が1に等しいことに応答して、および、前記IBCモードが前記第2のスライスに有効であることに応答して、前記スライスを備える現在ピクチャを含む、前記ビデオデータの前記第2のスライス用の参照ピクチャリストを構築することと
を行うようにさらに構成される、C11に記載のデバイス。
[C20]
前記1つまたは複数のプロセッサが、
前記ビデオデータの第2のスライスを受信することと、
前記ビデオデータの前記第2のスライス用の参照ピクチャリストを構築することと、 IBCモードが有効であることに応答して、前記第2のスライスを含んでいる前記ピクチャを前記参照ピクチャリストに追加することと
を行うようにさらに構成される、C11に記載のデバイス。
[C21]
前記デバイスが、
集積回路、
マイクロプロセッサ、または
符号化ビデオデータを受信するように構成された受信機を備えるワイヤレス通信デバイス
のうちの少なくとも1つを備える、C11に記載のデバイス。
[C22]
ビデオデータを復号するための装置であって、
前記ビデオデータのスライスを受信するための手段と、
イントラブロックコピー(IBC)モードが前記スライスに有効であると決定するために、IBCシンタックス要素を解析するための手段と、
前記スライスがIスライスであると決定するために、前記スライスに関連付けられたスライスタイプシンタックス要素を解析するための手段と、
前記スライスをIスライスとして復号するための手段と
を備え、ここにおいて、前記スライスをIスライスとして復号するための前記手段が、少なくとも1つのイントラ予測コーディングモードを使用して前記スライスのすべてのブロックを復号するための手段を備える、装置。
[C23]
前記スライスをIスライスとして復号するための前記手段が、インター予測モードを使用することも、前記IBCモードを使用することもなしに、前記スライスのブロックを復号するための手段を備える、C22に記載の装置。
[C24]
前記IBCシンタックス要素がcurr_pic_as_ref_enabled_flagシンタックス要素を備え、前記IBCモードが前記スライスに有効であると決定するために前記IBCシンタックス要素を解析するための前記手段が、前記curr_pic_as_ref_enabled_flagシンタックス要素の値が1に等しいと決定するための手段を備える、C22に記載の装置。
[C25]
前記スライスタイプシンタックス要素がslice_typeシンタックス要素を備え、前記スライスがIスライスであると決定するために前記スライスに関連付けられた前記スライスタイプシンタックス要素を解析するための前記手段が、前記slice_typeシンタックス要素の値が2に等しいと決定するための手段を備える、C22に記載の装置。
[C26]
前記ビデオデータの第2のスライスを受信するための手段と、
前記ビデオデータの前記第2のスライス用の参照ピクチャリスト内の参照ピクチャの数を示すシンタックス要素を受信するための手段と、
前記ビデオデータの前記第2のスライス用の前記参照ピクチャリスト内の参照ピクチャの前記数を示す前記シンタックス要素が1に等しいことに応答して、および、前記IBCモードが前記第2のスライスに有効であることに応答して、前記スライスを備える現在ピクチャを含む、前記ビデオデータの前記第2のスライス用の参照ピクチャリストを構築するための手段と
をさらに備える、C27に記載の装置。
[C27]
1つまたは複数のプロセッサによって実行されると、
前記ビデオデータのスライスを受信することと、
イントラブロックコピー(IBC)モードが前記スライスに有効であると決定するために、IBCシンタックス要素を解析することと、
前記スライスがIスライスであると決定するために、前記スライスに関連付けられたスライスタイプシンタックス要素を解析することと、
前記スライスをIスライスとして復号することと、ここにおいて、前記スライスをIスライスとして復号するために、前記1つまたは複数のプロセッサが、少なくとも1つのイントラ予測コーディングモードを使用して前記スライスのすべてのブロックを復号する、 を前記1つまたは複数のプロセッサに行わせる命令を記憶するコンピュータ可読記憶媒体。
[C28]
前記スライスをIスライスとして復号するために、前記命令が、インター予測モードを使用することも、前記IBCモードを使用することもなしに、前記スライスのブロックを復号することを前記1つまたは複数のプロセッサに行わせる、C27に記載のコンピュータ可読記憶媒体。
[C29]
前記IBCシンタックス要素がcurr_pic_as_ref_enabled_flagシンタックス要素を備え、前記IBCシンタックス要素を解析して、前記IBCモードが前記スライスに有効であると決定するために、前記命令が、前記curr_pic_as_ref_enabled_flagシンタックス要素の値が1に等しいと決定することを前記1つまたは複数のプロセッサに行わせる、C27に記載のコンピュータ可読記憶媒体。
[C30]
前記ビデオデータの第2のスライスを受信することと、
前記ビデオデータの前記第2のスライス用の参照ピクチャリスト内の参照ピクチャの数を示すシンタックス要素を受信することと、
前記ビデオデータの前記第2のスライス用の前記参照ピクチャリスト内の参照ピクチャの前記数を示す前記シンタックス要素が1に等しいことに応答して、および、前記IBCモードが前記第2のスライスに有効であることに応答して、前記スライスを備える現在ピクチャを含む、前記ビデオデータの前記第2のスライス用の参照ピクチャリストを構築することと
を前記1つまたは複数のプロセッサに行わせる命令をさらに記憶する、C27に記載のコンピュータ可読記憶媒体。