(57)【要約】      （修正有）【課題】シーケンスパラメータセット（ＳＰＳ：sequence parameter set）中でビデオシーケンスのコード化プロパティを示すための技法を提供する。【解決手段】ビデオデコーダによって、コード化ビデオシーケンスを受信することと、１つまたは複数のコーディングツールイネーブルビットとしてコード化ビデオシーケンスについての予約済みビットシンタックス要素の１つまたは複数のビットを復号することと、を含む。ここで、予約済みビットシンタックス要素は、プロファイルおよびレベル情報を含むシンタックス構造の一部であり、１つまたは複数のコーディングツールイネーブルビットは、ビデオシーケンスを復号する際にビデオデコーダによる使用のために１つまたは複数のコーディングツールがイネーブルにされているかどうかを示す。いくつかの例では、シンタックス構造は、ｐｒｏｆｉｌｅ＿ｔｉｅｒ＿ｌｅｖｅｌシンタックス構造である。【選択図】図４
2018125863.tif 000002
【特許請求の範囲】
【請求項１】
ビデオデータを復号する方法であって、
ビデオデコーダによって、コード化ビデオシーケンスを受信することと、
１つまたは複数のコーディングツールイネーブルビットとして前記コード化ビデオシーケンスについての予約済みビットシンタックス要素の１つまたは複数のビットを復号することと、ここで、前記予約済みビットシンタックス要素は、プロファイルおよびレベル情報を含むシンタックス構造の一部であり、前記１つまたは複数のコーディングツールイネーブルビットは、前記コード化ビデオシーケンスを復号する際に前記ビデオデコーダによる使用のために１つまたは複数のコーディングツールがイネーブルにされているかどうかを示す、
を備える方法。
【請求項２】
前記シンタックス構造は、高効率ビデオコーディング（ＨＥＶＣ）規格に準拠するｐｒｏｆｉｌｅ＿ｔｉｅｒ＿ｌｅｖｅｌシンタックス構造であり、前記予約済みビットシンタックス要素は、前記ｐｒｏｆｉｌｅ＿ｔｉｅｒ＿ｌｅｖｅｌシンタックス構造のｇｅｎｅｒａｌ＿ｒｅｓｅｒｖｅｄ＿ｚｅｒｏ＿１６ｂｉｔｓ予約済みビットシンタックス要素である、請求項１に記載の方法。
【請求項３】
前記ｐｒｏｆｉｌｅ＿ｔｉｅｒ＿ｌｅｖｅｌシンタックス構造は、前記コード化ビデオシーケンスの複数のレイヤに適用可能な情報を含むビデオパラメータセット（ＶＰＳ）中に含まれる、請求項２に記載の方法。
【請求項４】
前記１つまたは複数のコーディングツールイネーブルビットは、ビデオパラメータセット（ＶＰＳ）シンタックス情報とシーケンスパラメータセット（ＳＰＳ）シンタックス情報とを含む、パラメータセット中の前記シンタックス構造外の他のシンタックス要素として含まれない、請求項１に記載の方法。
【請求項５】
前記１つまたは複数のコーディングツールイネーブルビットは、前記コード化ビデオシーケンス、前記コード化ビデオシーケンスのビットストリーム、あるいは前記コード化ビデオシーケンスのエレメンタリストリームまたはオペレーションポイントについて、明示的重み付け予測がイネーブルにされているかどうか、タイルがイネーブルにされているかどうか、ウエーブフロントがイネーブルにされているかどうか、時間動きベクトル予測がイネーブルにされているかどうか、あるいはスケーリングリストデータが存在し、前記コード化ビデオシーケンス、ビットストリーム、またはエレメンタリストリームのために使用されるかどうかのうちの１つまたは複数を示す、請求項１に記載の方法。
【請求項６】
前記１つまたは複数のコーディングツールイネーブルビットは、タイルがイネーブルにされている場合、任意のタイルが単独で復号可能かどうかをさらに示す、請求項５に記載の方法。
【請求項７】
前記１つまたは複数のコーディングツールイネーブルビットは、前記コード化ビデオシーケンスのビットストリームが８ビットのビット深度を有するかどうかを示す、請求項１に記載の方法。
【請求項８】
前記１つまたは複数のビットは、前記予約済みビットシンタックス要素の一部として、ｇｅｎｅｒａｌ＿ｎｏ＿ｗｅｉｇｈｔｅｄ＿ｐｒｅｄｉｃｔｉｏｎ＿ｆｌａｇフラグとｇｅｎｅｒａｌ＿ｎｏ＿ｔｉｌｅｓ＿ｆｌａｇフラグとを含む、請求項１に記載の方法。
【請求項９】
前記１つまたは複数のコーディングツールイネーブルビットは、ビデオパラメータセット（ＶＰＳ）シンタックス情報中に含まれず、ｐｒｏｆｉｌｅ＿ｔｉｅｒ＿ｌｅｖｅｌシンタックス構造のｇｅｎｅｒａｌ＿ｒｅｓｅｒｖｅｄ＿ｚｅｒｏ＿１６ｂｉｔｓ予約済みビットシンタックス要素の一部として含まれる、請求項１に記載の方法。
【請求項１０】
前記１つまたは複数のコーディングツールイネーブルビットが前記ビデオデコーダによる使用のためにイネーブルにされていることを示す１つまたは複数のコーディングツールを使用して、前記コード化ビデオシーケンスを復号すること
をさらに備える、請求項１に記載の方法。
【請求項１１】
ビデオデータを符号化する方法であって、
符号化されるべきビデオシーケンスを決定することと、
ビデオエンコーダによって、前記ビデオシーケンスを符号化することと、
１つまたは複数のコーディングツールイネーブルビットとして前記符号化ビデオシーケンスについての予約済みビットシンタックス要素の１つまたは複数のビットを符号化することと、ここで、前記予約済みビットシンタックス要素は、プロファイルおよびレベル情報を含むシンタックス構造の一部であり、前記１つまたは複数のコーディングツールイネーブルビットは、前記ビデオシーケンスを符号化する際に前記ビデオエンコーダによる使用のために１つまたは複数のコーディングツールがイネーブルにされているかどうかを示す、
を備える方法。
【請求項１２】
前記シンタックス構造は、高効率ビデオコーディング（ＨＥＶＣ）規格に準拠するｐｒｏｆｉｌｅ＿ｔｉｅｒ＿ｌｅｖｅｌシンタックス構造であり、前記予約済みビットシンタックス要素は、前記ｐｒｏｆｉｌｅ＿ｔｉｅｒ＿ｌｅｖｅｌシンタックス構造のｇｅｎｅｒａｌ＿ｒｅｓｅｒｖｅｄ＿ｚｅｒｏ＿１６ｂｉｔｓ予約済みビットシンタックス要素である、請求項１１に記載の方法。
【請求項１３】
前記ｐｒｏｆｉｌｅ＿ｔｉｅｒ＿ｌｅｖｅｌシンタックス構造は、前記符号化ビデオシーケンスの複数のレイヤに適用可能な情報を含むビデオパラメータセット（ＶＰＳ）中に含まれる、請求項１２に記載の方法。
【請求項１４】
前記１つまたは複数のコーディングツールイネーブルビットは、ビデオパラメータセット（ＶＰＳ）シンタックス情報とシーケンスパラメータセット（ＳＰＳ）シンタックス情報とを含む、パラメータセット中の前記シンタックス構造外の他のシンタックス要素として含まれない、請求項１１に記載の方法。
【請求項１５】
前記１つまたは複数のコーディングツールイネーブルビットは、前記符号化ビデオシーケンス、前記符号化ビデオシーケンスのビットストリーム、または前記符号化ビデオシーケンスのエレメンタリストリームについて、明示的重み付け予測がイネーブルにされているかどうか、タイルがイネーブルにされているかどうか、ウエーブフロントがイネーブルにされているかどうか、時間動きベクトル予測がイネーブルにされているかどうか、あるいはスケーリングリストデータが存在し、前記コード化ビデオシーケンス、ビットストリーム、またはエレメンタリストリームのために使用されるかどうかのうちの１つまたは複数を示す、請求項１１に記載の方法。
【請求項１６】
前記１つまたは複数のコーディングツールイネーブルビットは、タイルがイネーブルにされている場合、任意のタイルが単独で符号化可能かどうかをさらに示す、請求項１５に記載の方法。
【請求項１７】
前記１つまたは複数のコーディングツールイネーブルビットは、前記符号化ビデオシーケンスのビットストリームが８ビットのビット深度を有するかどうかを示す、請求項１１に記載の方法。
【請求項１８】
前記１つまたは複数のビットは、前記予約済みビットシンタックス要素の一部として、ｇｅｎｅｒａｌ＿ｎｏ＿ｗｅｉｇｈｔｅｄ＿ｐｒｅｄｉｃｔｉｏｎ＿ｆｌａｇフラグとｇｅｎｅｒａｌ＿ｎｏ＿ｔｉｌｅｓ＿ｆｌａｇフラグとを含む、請求項１１に記載の方法。
【請求項１９】
前記１つまたは複数のコーディングツールイネーブルビットは、ビデオパラメータセット（ＶＰＳ）シンタックス情報中に含まれず、ｐｒｏｆｉｌｅ＿ｔｉｅｒ＿ｌｅｖｅｌシンタックス構造のｇｅｎｅｒａｌ＿ｒｅｓｅｒｖｅｄ＿ｚｅｒｏ＿１６ｂｉｔｓ予約済みビットシンタックス要素の一部として含まれる、請求項１１に記載の方法。
【請求項２０】
前記ビデオシーケンスを符号化することは、前記１つまたは複数のコーディングツールのサブセットを使用して前記ビデオシーケンスを符号化することをさらに備え、
前記予約済みビットシンタックス要素の前記１つまたは複数のビットを符号化することは、前記１つまたは複数のコーディングツールイネーブルビットが、前記１つまたは複数のコーディングツールの前記サブセットがイネーブルにされていることを示すように、前記１つまたは複数のコーディングツールイネーブルビットを符号化することを備える、請求項１１に記載の方法。
【請求項２１】
ビデオデータをコーディングするためのデバイスであって、
コーディングされるべきビデオシーケンスを決定することと、
前記ビデオシーケンスをコーディングすることと、
１つまたは複数のコーディングツールイネーブルビットとして前記コード化ビデオシーケンスについての予約済みビットシンタックス要素の１つまたは複数のビットをコーディングすることと、ここで、前記予約済みビットシンタックス要素は、プロファイルおよびレベル情報を含むシンタックス構造の一部であり、前記１つまたは複数のコーディングツールイネーブルビットは、前記ビデオシーケンスをコーディングする際に前記ビデオコーダによる使用のために１つまたは複数のコーディングツールがイネーブルにされているかどうかを示す、
を行うように構成されたビデオコーダを備えるデバイス。
【請求項２２】
前記シンタックス構造は、高効率ビデオコーディング（ＨＥＶＣ）規格に準拠するｐｒｏｆｉｌｅ＿ｔｉｅｒ＿ｌｅｖｅｌシンタックス構造であり、前記予約済みビットシンタックス要素は、前記ｐｒｏｆｉｌｅ＿ｔｉｅｒ＿ｌｅｖｅｌシンタックス構造のｇｅｎｅｒａｌ＿ｒｅｓｅｒｖｅｄ＿ｚｅｒｏ＿１６ｂｉｔｓ予約済みビットシンタックス要素である、請求項２１に記載のデバイス。
【請求項２３】
前記ｐｒｏｆｉｌｅ＿ｔｉｅｒ＿ｌｅｖｅｌシンタックス構造は、前記コード化ビデオシーケンスの複数のレイヤに適用可能な情報を含むビデオパラメータセット（ＶＰＳ）中に含まれる、請求項２２に記載のデバイス。
【請求項２４】
前記１つまたは複数のコーディングツールイネーブルビットは、ビデオパラメータセット（ＶＰＳ）シンタックス情報とシーケンスパラメータセット（ＳＰＳ）シンタックス情報とを含む、パラメータセット中の前記シンタックス構造外の他のシンタックス要素として含まれない、請求項２１に記載のデバイス。
【請求項２５】
前記１つまたは複数のコーディングツールイネーブルビットは、前記コード化ビデオシーケンス、前記コード化ビデオシーケンスのビットストリーム、または前記コード化ビデオシーケンスのエレメンタリストリームについて、明示的重み付け予測がイネーブルにされているかどうか、タイルがイネーブルにされているかどうか、ウエーブフロントがイネーブルにされているかどうか、時間動きベクトル予測がイネーブルにされているかどうか、あるいはスケーリングリストデータが存在し、前記コード化ビデオシーケンス、ビットストリーム、またはエレメンタリストリームのために使用されるかどうかのうちの１つまたは複数を示す、請求項２１に記載のデバイス。
【請求項２６】
コンピュータ可読記憶媒体であって、実行されたとき、ビデオデータをコーディングするためのデバイスのプロセッサに、
コーディングされるべきビデオシーケンスを決定することと、
前記ビデオシーケンスをコーディングすることと、
１つまたは複数のコーディングツールイネーブルビットとして前記コード化ビデオシーケンスについての予約済みビットシンタックス要素の１つまたは複数のビットをコーディングすることと、ここで、前記予約済みビットシンタックス要素は、プロファイルおよびレベル情報を含むシンタックス構造の一部であり、前記１つまたは複数のコーディングツールイネーブルビットは、前記ビデオシーケンスをコーディングする際に前記ビデオコーダによる使用のために１つまたは複数のコーディングツールがイネーブルにされているかどうかを示す、
を行わせる命令を記憶したコンピュータ可読記憶媒体。
【請求項２７】
前記シンタックス構造は、高効率ビデオコーディング（ＨＥＶＣ）規格に準拠するｐｒｏｆｉｌｅ＿ｔｉｅｒ＿ｌｅｖｅｌシンタックス構造であり、前記予約済みビットシンタックス要素は、前記ｐｒｏｆｉｌｅ＿ｔｉｅｒ＿ｌｅｖｅｌシンタックス構造のｇｅｎｅｒａｌ＿ｒｅｓｅｒｖｅｄ＿ｚｅｒｏ＿１６ｂｉｔｓ予約済みビットシンタックス要素である、請求項２６に記載のコンピュータ可読記憶媒体。
【請求項２８】
前記１つまたは複数のコーディングツールイネーブルビットは、ビデオパラメータセット（ＶＰＳ）シンタックス情報とシーケンスパラメータセット（ＳＰＳ）シンタックス情報とを含む、パラメータセット中の前記シンタックス構造外の他のシンタックス要素として含まれない、請求項２６に記載のコンピュータ可読記憶媒体。
【請求項２９】
前記１つまたは複数のコーディングツールイネーブルビットは、前記コード化ビデオシーケンス、前記コード化ビデオシーケンスのビットストリーム、または前記コード化ビデオシーケンスのエレメンタリストリームについて、明示的重み付け予測がイネーブルにされているかどうか、タイルがイネーブルにされているかどうか、ウエーブフロントがイネーブルにされているかどうか、時間動きベクトル予測がイネーブルにされているかどうか、あるいはスケーリングリストデータが存在し、前記コード化ビデオシーケンス、ビットストリーム、またはエレメンタリストリームのために使用されるかどうかのうちの１つまたは複数を示す、請求項２６に記載のコンピュータ可読記憶媒体。
【請求項３０】
前記１つまたは複数のコーディングツールイネーブルビットは、タイルがイネーブルにされている場合、任意のタイルが単独でコード化可能かどうかをさらに示す、請求項２６に記載のコンピュータ可読記憶媒体。
【発明の詳細な説明】
【優先権の主張】
【０００１】
本出願は、その内容全体が参照により本明細書に組み込まれる、２０１２年１０月４日に出願された米国仮出願第６１／７０９，９２２号の優先権を主張する。
【技術分野】
【０００２】
本開示は、ビデオコーディングに関する。
【背景技術】
【０００３】
[0003]デジタルビデオ機能は、デジタルテレビジョン、デジタルダイレクトブロードキャストシステム、ワイヤレスブロードキャストシステム、携帯情報端末（ＰＤＡ）、ラップトップまたはデスクトップコンピュータ、タブレットコンピュータ、電子ブックリーダ、デジタルカメラ、デジタル記録デバイス、デジタルメディアプレーヤ、ビデオゲームデバイス、ビデオゲームコンソール、セルラーまたは衛星無線電話、いわゆる「スマートフォン」、ビデオ遠隔会議デバイス、ビデオストリーミングデバイスなどを含む、広範囲にわたるデバイスに組み込まれ得る。デジタルビデオデバイスは、ＭＰＥＧ−２、ＭＰＥＧ−４、ＩＴＵ−Ｔ  Ｈ．２６３、ＩＴＵ−Ｔ  Ｈ．２６４／ＭＰＥＧ−４、Ｐａｒｔ  １０、アドバンストビデオコーディング（ＡＶＣ）、現在開発中の高効率ビデオコーディング（ＨＥＶＣ）規格によって定義された規格、およびそのような規格の拡張に記載されているビデオコーディング技法のような、ビデオコーディング技法を実装する。ＨＥＶＣは、インターレースビデオの指示のためのフィールド指示補足エンハンスメント情報（ＳＥＩ：supplemental enhancement information）メッセージと、フレームパッキング立体３Ｄビデオの指示のためのフレームパッキング配置（ＦＰＡ：frame packing arrangement）ＳＥＩメッセージとの仕様を含む。ビデオデバイスは、そのようなビデオコーディング技法を実装することによって、デジタルビデオ情報をより効率的に送信、受信、符号化、復号、および／または記憶し得る。
【０００４】
[0004]ビデオコーディング技法は、ビデオシーケンスに固有の冗長性を低減または除去するための空間的（イントラピクチャ）予測および／または時間的（インターピクチャ）予測を含む。ブロックベースのビデオコーディングの場合、ビデオスライス（たとえば、ビデオフレームまたはビデオフレームの一部分）が、ツリーブロック、コーディングユニット（ＣＵ）および／またはコーディングノードと呼ばれることもあるビデオブロックに区分され得る。ピクチャのイントラコーディングされた（Ｉ）スライス中のビデオブロックは、同じピクチャ中の近隣ブロック中の参照サンプルに対する空間的予測を使用して符号化される。ピクチャのインターコーディングされた（ＰまたはＢ）スライス中のビデオブロックは、同じピクチャ中の近隣ブロック中の参照サンプルに対する空間的予測、または他の参照ピクチャ中の参照サンプルに対する時間的予測を使用し得る。ピクチャはフレームと呼ばれることがあり、参照ピクチャは参照フレームと呼ばれることがある。
【０００５】
[0005]空間的予測または時間的予測は、コーディングされるべきブロックの予測ブロックを生じる。残差データは、コーディングされるべき元のブロックと予測ブロックとの間のピクセル差分を表す。インターコーディングブロックは、予測ブロックを形成する参照サンプルのブロックを指す動きベクトル、およびコーディングブロックと予測ブロックとの間の差分を示す残差データに従って符号化される。イントラコーディングブロックは、イントラコーディングモードと残差データとに従って符号化される。さらなる圧縮のために、残差データは、ピクセル領域から変換領域に変換されて残差変換係数をもたらすことができ、その残差変換係数は、次いで量子化することができる。量子化変換係数は、最初に２次元アレイで構成され、変換係数の１次元ベクトルを生成するために走査することができ、なお一層の圧縮を達成するためにエントロピーコーディングを適用することができる。
【発明の概要】
【０００６】
[0006]概して、本開示は、シーケンスパラメータセット（ＳＰＳ：sequence parameter set）中でビデオシーケンスのコード化プロパティを示すための技法について説明する。より詳細には、本開示は、シーケンスパラメータセット中に提示されるプロファイル、ティア（tier）およびレベルシンタックス構造を再使用することによるための技法について説明する。
【０００７】
[0007]一例では、ビデオデータを復号するための方法は、ビデオデコーダによって、コード化ビデオシーケンスを受信することと、１つまたは複数のコーディングツールイネーブルビットとしてコード化ビデオシーケンスについての予約済みビットシンタックス要素の１つまたは複数のビットを復号することと、を含み、予約済みビットシンタックス要素は、プロファイルおよびレベル情報を含むシンタックス構造の一部であり、１つまたは複数のコーディングツールイネーブルビットは、コード化ビデオシーケンスを復号する際にビデオデコーダによる使用のために１つまたは複数のコーディングツールがイネーブルにされているかどうかを示す。
【０００８】
[0008]別の例では、ビデオデータを符号化する方法は、符号化されるべきビデオシーケンスを決定することと、ビデオエンコーダによって、ビデオシーケンスを符号化することとを含む。本方法は、１つまたは複数のコーディングツールイネーブルビットとして符号化ビデオシーケンスについての予約済みビットシンタックス要素の１つまたは複数のビットを符号化すること、を含み、予約済みビットシンタックス要素は、プロファイルおよびレベル情報を含むシンタックス構造の一部であり、１つまたは複数のコーディングツールイネーブルビットは、ビデオシーケンスを符号化する際にビデオエンコーダによる使用のために１つまたは複数のコーディングツールがイネーブルにされているかどうかを示す。
【０００９】
[0009]別の例では、デバイスは、コーディングされるべきビデオシーケンスを決定することと、ビデオシーケンスをコーディングすることと、１つまたは複数のコーディングツールイネーブルビットとしてコード化ビデオシーケンスについての予約済みビットシンタックス要素の１つまたは複数のビットをコーディングすることと、を行うように構成されたビデオコーダを含み、予約済みビットシンタックス要素は、プロファイルおよびレベル情報を含むシンタックス構造の一部であり、１つまたは複数のコーディングツールイネーブルビットは、ビデオシーケンスをコーディングする際にビデオコーダによる使用のために１つまたは複数のコーディングツールがイネーブルにされているどうかを示す。
【００１０】
[0010]別の例では、デバイスは、コーディングされるべきビデオシーケンスを決定するための手段と、ビデオシーケンスをコーディングするための手段とを含む。本デバイスは、１つまたは複数のコーディングツールイネーブルビットとしてコード化ビデオシーケンスについての予約済みビットシンタックス要素の１つまたは複数のビットをコーディングするための手段をさらに含み、予約済みビットシンタックス要素は、プロファイルおよびレベル情報を含むシンタックス構造の一部であり、１つまたは複数のコーディングツールイネーブルビットは、ビデオシーケンスをコーディングする際にビデオコーダによる使用のために１つまたは複数のコーディングツールがイネーブルにされているかどうかを示す。
【００１１】
[0011]別の例では、コンピュータ可読記憶媒体は、実行されたとき、ビデオデータをコーディングするためのデバイスのプロセッサに、コーディングされるべきビデオシーケンスを決定することと、ビデオシーケンスをコーディングすることと、１つまたは複数のコーディングツールイネーブルビットとしてコード化ビデオシーケンスについての予約済みビットシンタックス要素の１つまたは複数のビットをコーディングすることと、を行わせる命令で符号化され、予約済みビットシンタックス要素は、プロファイルおよびレベル情報を含むシンタックス構造の一部であり、１つまたは複数のコーディングツールイネーブルビットは、ビデオシーケンスをコーディングする際にビデオコーダによる使用のために１つまたは複数のコーディングツールがイネーブルにされているかどうかを示す。
【００１２】
[0012]いくつかの例では、シンタックス構造は、高効率ビデオコーディング（ＨＥＶＣ：high efficiency video coding）規格に準拠するｐｒｏｆｉｌｅ＿ｔｉｅｒ＿ｌｅｖｅｌシンタックス構造である。さらに、いくつかの例では、予約済みビットシンタックス要素は、ｐｒｏｆｉｌｅ＿ｔｉｅｒ＿ｌｅｖｅｌシンタックス構造のｇｅｎｅｒａｌ＿ｒｅｓｅｒｖｅｄ＿ｚｅｒｏ＿１６ｂｉｔｓ予約済みビットシンタックス要素である。
【００１３】
[0013]別の例では、１つまたは複数のコーディングツールイネーブルビットは、ビデオパラメータセット（ＶＰＳ：video parameter set）シンタックス情報とシーケンスパラメータセット（ＳＰＳ：video parameter set）シンタックス情報とを含む、パラメータセット中のシンタックス構造外の他のシンタックス要素として含まれない。
【００１４】
[0014]１つまたは複数の例の詳細は、添付の図面および以下の説明に記載されている。他の特徴、目的、および利点は、その説明および図面、ならびに特許請求の範囲から明らかになろう。
【図面の簡単な説明】
【００１５】
【図１】本開示で説明する技法による、いくつかのコード化プロパティを示すための技法を利用し得る例示的なビデオ符号化および復号システムを示すブロック図。
【図２】本開示で説明する技法を実装し得る例示的なビデオエンコーダを示すブロック図。
【図３】本開示で説明する技法を実装し得る例示的なビデオデコーダを示すブロック図。
【図４】本開示で説明する技法による、ビデオシーケンスを復号する例示的な方法を示すフローチャート。
【図５】本開示で説明する技法による、ビデオシーケンスを符号化する例示的な方法を示すフローチャート。
【発明を実施するための形態】
【００１６】
[0020]概して、本開示は、シーケンスパラメータセット（ＳＰＳ）中で１つまたは複数のコード化プロパティを示すための技法について説明する。より詳細には、本開示の技法は、ビデオシーケンスのコード化プロパティを示すためにプロファイル、ティア、およびレベルシンタックス構造を使用する。ｐｒｏｆｉｌｅ＿ｔｉｅｒ＿ｌｅｖｅｌシンタックス構造は、高効率ビデオコーディング（ＨＥＶＣ）規格などのビデオ規格によるビデオコーディングではＳＰＳまたはビデオパラメータセット（ＶＰＳ）中でシグナリングされ得る。本明細書で説明する技法は、ｐｒｏｆｉｌｅ＿ｔｉｅｒ＿ｌｅｖｅｌシンタックス構造を理解するように設計されたトランスポート規格のビデオプロパティへの軽量アクセスを改善する。
【００１７】
[0021]ＨＥＶＣなどのいくつかの規格は、シンタックス構造に関連するビデオデータを解釈および／またはコーディングする際に使用されるシンタックス要素を含むｐｒｏｆｉｌｅ＿ｔｉｅｒ＿ｌｅｖｅｌシンタックス構造を定義する。プロファイル、ティア、およびレベルは、同様の機能要件をもつ様々なアプリケーションにわたって相互運用可能な方法で、ＨＥＶＣなどの規格を実装するためのコンフォーマンスポイント（conformance point）を指定する。さらに、ビデオデータをコーディングするために使用される他のビデオプロパティを示すシンタックス要素またはフラグは、ＳＰＳまたはビデオパラメータセット（ＶＰＳ）中の他の場所など、ｐｒｏｆｉｌｅ＿ｔｉｅｒ＿ｌｅｖｅｌシンタックス構造外のシンタックス構造中に含まれ得る。これらのシンタックス要素またはフラグは、様々なコーディングツールがビデオデータのために使用イネーブルにされているかどうかを示し得る。
【００１８】
[0022]たとえば、国際標準化機構（ＩＳＯ）ベースメディアファイルフォーマット、ＭＰＥＧ−２システム、ハイパーテキスト転送プロトコル（ＨＴＴＰ：Hypertext Transfer Protocol）を介した動的適応ストリーミング（ＤＡＳＨ：Dynamic Adaptive Streaming over HTTP）、およびリアルタイムトランスポートプロトコル（ＲＴＰ：real-time transport protocol）を含む、いくつかのビデオデバイスのために使用されるトランスポート規格は、ｐｒｏｆｉｌｅ＿ｔｉｅｒ＿ｌｅｖｅｌシンタックス構造の少なくとも最初の数ビットを理解するように設計され得る。ただし、ｐｒｏｆｉｌｅ＿ｔｉｅｒ＿ｌｅｖｅｌシンタックス構造のほかに、ＳＰＳまたはＶＰＳ中に含まれる他の追加情報はアクセスしにくい。したがって、本開示のいくつかの技法は、通常ならば、ＳＰＳまたはＶＰＳのアクセスしにくい部分中に含まれたであろう様々なコーディングツールがイネーブルにされているかどうかを示すためにフラグを与えるために、ｐｒｏｆｉｌｅ＿ｔｉｅｒ＿ｌｅｖｅｌシンタックス構造の１つまたは複数のビットを使用する。いくつかの例では、１つまたは複数のコーディングイネーブルツールビットは、プロファイルおよびレベル情報を含むシンタックス構造の一部であるか、またはそれに連続するリザーブビットシンタックス要素中にコード化され得る。シンタックス構造は、ｐｒｏｆｉｌｅ＿ｔｉｅｒ＿ｌｅｖｅｌシンタックス構造であり得、パラメータセット中に置かれ得る。
【００１９】
[0023]ＨＥＶＣ  Ｗｏｒｋｉｎｇ  Ｄｒａｆｔ  ８（本明細書では「ＷＤ８」と呼ぶ）などのＨＥＶＣのドラフトは、将来の目的のためにビットを予約するｇｅｎｅｒａｌ＿ｒｅｓｅｒｖｅｄ＿ｚｅｒｏ＿１６ｂｉｔｓシンタックス要素を含む。本開示における技法は、様々なコーディングツールがイネーブルにされているかどうかを示すためにフラグを与えるためにｐｒｏｆｉｌｅ＿ｔｉｅｒ＿ｌｅｖｅｌシンタックス構造中の予約済みビットのいくつかを使用する。コーディングツールの例には、コード化ビデオシーケンス、ビットストリーム、またはエレメンタリストリームのために明示的重み付け予測（デフォルト値（１／２，１／２）（１，０）または（０，１）を除く）および／またはタイル（tile）がイネーブルにされているかを含む。シグナリングされ得る追加の例示的なコーディングツールには、ウエーブフロント（wavefront:波面）がイネーブルにされているかどうか、時間動きベクトル予測（ＴＭＶＰ）がイネーブルにされているかどうか、スケーリングリストデータが存在しているかどうか、または現在のビットストリームが８ビットであるかどうか、を含む。これらの技法は、所与のプロファイル、ティア、およびレベル内のコーデック間により多くの差別化を与える。言い換えれば、所与のプロファイル／ティア／レベル内で、本開示の技法は、いくつかのコーディングツールがイネーブル（使用可能）にされているかどうかを示すために、コーディングツールイネーブルビットとして予約済みビットの１つまたは複数のビットを使用することができる。いくつかの例では、１つまたは複数のフラグ、ｇｅｎｅｒａｌ＿ｎｏ＿ｗｅｉｇｈｔｅｄ＿ｐｒｅｄｉｃｔｉｏｎ＿ｆｌａｇフラグおよびｇｅｎｅｒａｌ＿ｎｏ＿ｔｉｌｅｓ＿ｆｌａｇフラグも、シンタックス要素の一部として含まれ得る。さらに、コーディングツールの上記の指示のすべては互いに無関係であり得る。
【００２０】
[0024]ｐｒｏｆｉｌｅ＿ｔｉｅｒ＿ｌｅｖｅｌシンタックス構造中にいくつかのコーディングツールについてのシンタックス要素を含めることによって、それらがＳＰＳ中に概して存在する必要がなくなる。これらの技法を使用すると、シンタックス要素は、ｐｒｏｆｉｌｅ＿ｔｉｅｒ＿ｌｅｖｅｌシンタックス構造の最初のいくつかのバイト中にあり得る。したがって、ｐｒｏｆｉｌｅ＿ｔｉｅｒ＿ｌｅｖｅｌシンタックス構造の少なくとも最初の数ビットを理解するように設計されたトランスポート規格を使用するビデオデバイスは、関連するビデオデータのためにいくつかのコーディングツールがイネーブルにされているかどうかを決定することが可能であり得る。
【００２１】
[0025]ｐｒｏｆｉｌｅ＿ｔｉｅｒ＿ｌｅｖｅｌシンタックス構造は、ＳＰＳ中に、または代替的に、ＶＰＳ中にあり得る。ＳＰＳは、ビデオデータの各レイヤに必要とされ、その結果、複数のＳＰＳがコーディングされ、送信される。対照的に、ＶＰＳは、ビデオデータのすべてのレイヤについて１回だけ送られる。したがって、ＳＰＳ中ではなくＶＰＳ中にｐｒｏｆｉｌｅ＿ｔｉｅｒ＿ｌｅｖｅｌシンタックス構造を含めると、送られる全体的なビット数が低減する。
【００２２】
[0026]図１は、本開示で説明する技法による、いくつかのコード化プロパティを示すための技法を利用し得る例示的なビデオ符号化および復号システム１０を示すブロック図である。図１に示すように、システム１０は、宛先デバイス１４によって後で復号されるべき符号化ビデオデータを提供するソースデバイス１２を含む。特に、ソースデバイス１２は、ストレージデバイス３４であり得るコンピュータ可読媒体１６を介してビデオデータを宛先デバイス１４に与える。ソースデバイス１２および宛先デバイス１４は、デジタルテレビジョン、デジタルダイレクトブロードキャストシステム、ワイヤレスブロードキャストシステム、携帯情報端末（ＰＤＡ）、ラップトップまたはデスクトップコンピュータ、タブレットコンピュータ、電子ブックリーダ、デジタルカメラ、デジタル記録デバイス、デジタルメディアプレーヤ、ビデオゲームデバイス、ビデオゲームコンソール、セルラーまたは衛星無線電話、いわゆる「スマートフォン」、ビデオ遠隔会議デバイス、ビデオストリーミングデバイスなどを含む、広範囲にわたるデバイスのいずれかを備え得る。場合によっては、ソースデバイス１２および宛先デバイス１４は、ワイヤレス通信のために装備され得る。
【００２３】
[0027]ソースデバイス１２および宛先デバイス１４などのデジタルビデオデバイスは、ＭＰＥＧ−２、ＭＰＥＧ−４、ＩＴＵ−Ｔ  Ｈ．２６３、ＩＴＵ−Ｔ  Ｈ．２６４／ＭＰＥＧ−４，Ｐａｒｔ  １０、アドバンストビデオコーディング（ＡＶＣ：Advanced Video Coding）、ＨＥＶＣ規格によって定義された規格、およびそのような規格の拡張に記載されているビデオコーディング技法など、ビデオコーディング技法を実装する。ビデオデバイスは、そのようなビデオコーディング技法を実装することによって、デジタルビデオ情報をより効率的に送信、受信、符号化、復号、および／または記憶し得る。
【００２４】
[0028]宛先デバイス１４は、コンピュータ可読媒体１６を介して復号されるべき符号化ビデオデータを受信し得る。コンピュータ可読媒体１６は、ソースデバイス１２から宛先デバイス１４に符号化ビデオデータを移動させることができる任意のタイプの媒体またはデバイスを備え得る。一例では、コンピュータ可読媒体１６は、ソースデバイス１２が、符号化ビデオデータを宛先デバイス１４にリアルタイムで直接送信することを可能にするための通信媒体を備え得る。符号化ビデオデータは、ワイヤレス通信プロトコルなどの通信規格に従って変調され、宛先デバイス１４に送信され得る。通信媒体は、無線周波数（ＲＦ）スペクトルあるいは１つまたは複数の物理伝送線路など、任意のワイヤレスまたはワイヤード通信媒体を備え得る。通信媒体は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはインターネットなどのグローバルネットワークなど、パケットベースネットワークの一部を形成し得る。通信媒体は、ソースデバイス１２から宛先デバイス１４への通信を可能にするために有用であり得るルータ、スイッチ、基地局、または任意の他の機器を含み得る。
【００２５】
[0029]代替的に、符号化データは、出力インターフェース２２からストレージデバイス３４に出力され得る。同様に、符号化データは、入力インターフェースによってストレージデバイス３４からアクセスされ得る。ストレージデバイス３４は、ハードドライブ、ブルーレイ（登録商標）ディスク、ＤＶＤ、ＣＤ−ＲＯＭ、フラッシュメモリ、揮発性または不揮発性メモリ、あるいは符号化ビデオデータを記憶するための任意の他の好適なデジタル記憶媒体など、様々な分散されたまたはローカルにアクセスされるデータ記憶媒体のいずれかを含み得る。さらなる一例では、ストレージデバイス３４は、ソースデバイス１２によって生成された符号化ビデオを保持し得るファイルサーバまたは別の中間ストレージデバイスに対応し得る。宛先デバイス１４は、ストリーミングまたはダウンロードを介してストレージデバイス３４から、記憶されたビデオデータにアクセスし得る。ファイルサーバは、符号化ビデオデータを記憶し、その符号化ビデオデータを宛先デバイス１４に送信することが可能な任意のタイプのサーバであり得る。例示的なファイルサーバは、（たとえば、ウェブサイトのための）ウェブサーバ、ＦＴＰサーバ、ネットワーク接続ストレージ（ＮＡＳ）デバイス、またはローカルディスクドライブを含む。宛先デバイス１４は、インターネット接続を含む、任意の標準のデータ接続を介して符号化ビデオデータにアクセスし得る。これは、ファイルサーバに記憶された符号化ビデオデータにアクセスするのに好適であるワイヤレスチャネル（たとえば、Ｗｉ−Ｆｉ（登録商標）接続）、ワイヤード接続（たとえば、ＤＳＬ、ケーブルモデムなど）、または両方の組合せを含み得る。ストレージデバイス３４からの符号化ビデオデータの送信は、ストリーミング送信、ダウンロード送信、または両方の組合せであり得る。
【００２６】
[0030]本開示の技法は、必ずしもワイヤレス適用例または設定に限定されるとは限らない。本技法は、オーバージエアテレビジョン放送、ケーブルテレビジョン送信、衛星テレビジョン送信、動的適応ストリーミングオーバーＨＴＴＰ（ＤＡＳＨ）などのインターネットストリーミングビデオ送信、データ記憶媒体上に符号化されたデジタルビデオ、データ記憶媒体に記憶されたデジタルビデオの復号、または他の適用例など、様々なマルチメディア適用例のいずれかをサポートするビデオコーディングに適用され得る。
【００２７】
[0031]ソースデバイス１２および宛先デバイス１４は、たとえば、ｐｒｏｆｉｌｅ＿ｔｉｅｒ＿ｌｅｖｅｌシンタックス構造の少なくとも最初の数ビット中に埋め込まれたコードまたはシンタックス要素を解釈し理解するように設計され得る、国際標準化機構（ＩＳＯ）ベースメディアファイルフォーマット、ＭＰＥＧ−２システム、ＤＡＳＨ、およびリアルタイムトランスポートプロトコル（ＲＴＰ）を含むトランスポート規格を使用するように構成され得る。ただし、シーケンスパラメータセットまたはビデオパラメータセット中の他の追加情報は、いくつかのデバイスにとってアクセスしにくい。したがって、いくつかのＨＥＶＣ設計は、ビデオプロパティへの軽量（lightweight）アクセスをサポートしない。
【００２８】
[0032]図１の例では、ソースデバイス１２は、ビデオソース１８と、ビデオエンコーダ２０と、出力インターフェース２２とを含む。宛先デバイス１４は、入力インターフェース２８と、ビデオデコーダ３０と、ディスプレイデバイス３２とを含む。本開示によれば、ソースデバイス１２のビデオエンコーダ２０は、プロファイル、ティア、およびレベルシンタックス構造中のビットを再使用することによってシーケンスパラメータセットでコード化プロパティを示すための技法を適用するように構成され得る。したがって、ビデオコーディングプロパティを示すためにＳＰＳまたはＶＰＳ中の他の場所で提示されるシンタックス要素および／またはシンタックス構造を使用する代わりに、またはそれに加えて、プロファイル、ティア、およびレベルシンタックス構造の、たとえば、ｇｅｎｅｒａｌ＿ｒｅｓｅｒｖｅｄ＿ｚｅｒｏ＿１６ｂｉｔｓ中のビットのうちの１つまたは複数が、本開示で説明するように、ビデオコーディングプロパティのうちの１つまたは複数を示すために使用され得る。
【００２９】
[0033]様々な例では、ソースデバイスおよび宛先デバイスは、他の構成要素または構成を含み得る。たとえば、ソースデバイス１２は、外部カメラなどの外部ビデオソース１８からビデオデータを受信し得る。同様に、宛先デバイス１４は、内蔵ディスプレイデバイスを含むのではなく、外部ディスプレイデバイスとインターフェースし得る。
【００３０】
[0034]図１の図示のシステム１０は一例にすぎない。プロファイル、ティア、およびレベルシンタックス構造を再使用することによってシーケンスパラメータセットでビデオコーディングプロパティを示すための技法は、任意のデジタルビデオ符号化および／または復号デバイスによって実行され得る。概して、本開示の技法はビデオ符号化デバイスによって実行されるが、本技法は、一般に「コーデック」と呼ばれるビデオエンコーダ／デコーダによっても実行され得る。さらに、本開示の技法は、ビデオプリプロセッサによっても実行され得る。ソースデバイス１２および宛先デバイス１４は、ソースデバイス１２が宛先デバイス１４に送信するためのコード化ビデオデータを生成するようなコーディングデバイスの例にすぎない。いくつかの例では、デバイス１２、１４は、デバイス１２、１４の各々がビデオ符号化構成要素とビデオ復号構成要素とを含むように、実質的に対称的に動作し得る。したがって、システム１０は、たとえば、ビデオストリーミング、ビデオ再生、ビデオブロードキャストまたはビデオ電話のための、ビデオデバイス１２とビデオデバイス１４との間の一方向または双方向のビデオ送信をサポートすることができる。
【００３１】
[0035]ソースデバイス１２のビデオソース１８は、ビデオカメラなどのビデオキャプチャデバイス、以前にキャプチャされたビデオを含むビデオアーカイブ、および／またはビデオコンテンツプロバイダからビデオを受信するためのビデオフィードインターフェースを含み得る。さらなる代替として、ビデオソース１８は、ソースビデオとしてのコンピュータグラフィックスベースのデータ、またはライブビデオとアーカイブビデオとコンピュータ生成ビデオとの組合せを生成し得る。場合によっては、ビデオソース１８がビデオカメラである場合、ソースデバイス１２および宛先デバイス１４は、いわゆるカメラ付き携帯電話またはビデオ電話を形成することができる。ただし、上述のように、本開示で説明する技法は、概してビデオコーディングに適用可能であり得、ワイヤレスおよび／またはワイヤード適用例に適用され得る。各場合において、キャプチャされたビデオ、以前にキャプチャされたビデオ、またはコンピュータ生成ビデオは、ビデオエンコーダ２０によって符号化され得る。符号化ビデオ情報は、次いで、出力インターフェース２２によってコンピュータ可読媒体１６またはストレージデバイス３４上に出力され得る。
【００３２】
[0036]コンピュータ可読媒体１６は、ワイヤレスブロードキャストもしくはワイヤードネットワーク送信などの一時的媒体、またはハードディスク、フラッシュドライブ、コンパクトディスク、デジタルビデオディスク、Ｂｌｕ−ｒａｙ（登録商標）ディスク、または他のコンピュータ可読媒体などの記憶媒体（すなわち、非一時的記憶媒体）を含み得る。いくつかの例では、ネットワークサーバは、ソースデバイス１２から符号化ビデオデータを受信し、たとえば、ネットワーク送信を介して、その符号化ビデオデータを宛先デバイス１４に与え得る。同様に、ディスクスタンピング設備などの媒体製造設備のコンピューティングデバイスは、ソースデバイス１２から符号化ビデオデータを受信し、その符号化ビデオデータを含むディスクを生成し得る。したがって、様々な例では、コンピュータ可読媒体１６は、様々な形態の１つまたは複数のコンピュータ可読媒体を含むと理解され得る。
【００３３】
[0037]宛先デバイス１４の入力インターフェース２８は、コンピュータ可読媒体１６から情報を受信する。コンピュータ可読媒体１６の情報は、ビデオエンコーダ２０によって定義され、またビデオデコーダ３０によって使用される、ブロックおよび他のコード化ユニット、たとえば、ＧＯＰの特性および／または処理を記述するシンタックス要素を含む、シンタックス情報を含み得る。ディスプレイデバイス３２は、復号ビデオデータをユーザに対して表示し、陰極線管（ＣＲＴ）、液晶ディスプレイ（ＬＣＤ）、プラズマディスプレイ、有機発光ダイオード（ＯＬＥＤ）ディスプレイ、または別のタイプのディスプレイデバイスなどの、様々なディスプレイデバイスのいずれかを備え得る。
【００３４】
[0038]ビデオエンコーダ２０およびビデオデコーダ３０は、現在開発中の高効率ビデオコーディング（ＨＥＶＣ）規格などのビデオコーディング規格に従って動作し得、ＨＥＶＣテストモデル（ＨＭ）に準拠し得る。ＨＥＶＣは、インターレースビデオの指示のためのフィールド指示ＳＥＩメッセージと、フレームパッキング立体３Ｄビデオの指示のためのフレームパッキング配置（ＦＰＡ）ＳＥＩメッセージとの仕様を含む。ＨＥＶＣが、現在、ＩＴＵ−Ｔ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ（ＶＣＥＧ）とＩＳＯ／ＩＥＣ  Ｍｏｔｉｏｎ  Ｐｉｃｔｕｒｅ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ（ＭＰＥＧ）とのＪｏｉｎｔ  Ｃｏｌｌａｂｏｒａｔｉｏｎ  Ｔｅａｍ  ｏｎ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ（ＪＣＴ−ＶＣ）によって開発されている。ＨＥＶＣの最近のワーキングドラフト（ＷＤ）は、Ｗｏｒｋｉｎｇ  Ｄｒａｆｔ  ８（以下では「ＨＥＶＣ  ＷＤ８」と呼ぶ）である。ｈｔｔｐ：／／ｐｈｅｎｉｘ．ｉｎｔ−ｅｖｒｙ．ｆｒ／ｊｃｔ／ｄｏｃ＿ｅｎｄ＿ｕｓｅｒ／ｄｏｃｕｍｅｎｔｓ／１０＿Ｓｔｏｃｋｈｏｌｍ／ｗｇ１１／ＪＣＴＶＣ−Ｊ１００３−ｖ８．ｚｉｐからの、２０１３年９月１２日時点で入手可能な、Ｂｒｏｓｓら、Ｈｉｇｈ  Ｅｆｆｉｃｉｅｎｃｙ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ（ＨＥＶＣ）Ｔｅｘｔ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ  Ｄｒａｆｔ  ８、２０１２年７月、Ｓｔｏｃｋｈｏｌｍ。本開示で説明する技法は、ＨＥＶＣ規格に関して説明されるが、本開示の態様は、そのように限定されず、他のビデオコーディング規格および所有権を主張できるビデオコーディング技法に拡張され得る。
【００３５】
[0039]代替的に、ビデオエンコーダ２０およびビデオデコーダ３０は、他のプロプライエタリ規格または業界規格に従って動作し得る。別の規格の例は、代替的に、ＭＰＥＧ−４，Ｐａｒｔ  １０、アドバンストビデオコーディング（ＡＶＣ）と呼ばれる（ＩＳＯ／ＩＥＣ  ＭＰＥＧ−４  ＡＶＣとしても知られる）ＩＴＵ−Ｔ  Ｈ．２６４規格またはそのような規格の拡張である。それに従ってビデオエンコーダ２０およびビデオデコーダ３０が動作し得る他のビデオコーディング規格には、ＭＰＥＧ−２システム、ＤＡＳＨ、およびＲＰＴがある。それに従ってビデオエンコーダ２０およびビデオデコーダ３０が動作し得るビデオコーディング規格の他の例には、ＩＴＵ−Ｔ  Ｈ．２６１、ＩＳＯ／ＩＥＣ
ＭＰＥＧ−１  Ｖｉｓｕａｌ、ＩＴＵ−Ｔ  Ｈ．２６２またはＩＳＯ／ＩＥＣ  ＭＰＥＧ−２  Ｖｉｓｕａｌ、ＩＴＵ−Ｔ  Ｈ．２６３、ＩＳＯ／ＩＥＣ  ＭＰＥＧ−４  Ｖｉｓｕａｌならびにそれのスケーラブルビデオコーディング（ＳＶＣ）拡張およびマルチビュービデオコーディング（ＭＶＣ）拡張を含むＩＴＵ−Ｔ  Ｈ．２６４がある。いくつかの例では、ビデオエンコーダ２０およびビデオデコーダ３０は、２つ以上の規格に従って動作するように構成され得る。ただし、本開示の技法は、特定のコーディング規格に限定されないが、特に、ＨＥＶＣビデオコーディングプロセスにおいて有用であり得る。
【００３６】
[0040]いくつかの態様では、ビデオエンコーダ２０およびビデオデコーダ３０は、それぞれオーディオエンコーダおよびオーディオデコーダと統合され得、適切なＭＵＸ−ＤＥＭＵＸユニット、または他のハードウェアおよびソフトウェアを含んで、共通のデータストリームまたは別個のデータストリーム中のオーディオとビデオの両方の符号化を処理することができる。適用可能な場合、ＭＵＸ−ＤＥＭＵＸユニットは、ＩＴＵ  Ｈ．２２３マルチプレクサプロトコル、またはユーザデータグラムプロトコル（ＵＤＰ）などの他のプロトコルに準拠することができる。
【００３７】
[0041]ＩＴＵ−Ｔ  Ｈ．２６４／ＭＰＥＧ−４（ＡＶＣ）規格は、Ｊｏｉｎｔ  Ｖｉｄｅｏ  Ｔｅａｍ（ＪＶＴ）として知られる共同パートナーシップの成果として、ＩＳＯ／ＩＥＣ  Ｍｏｖｉｎｇ  Ｐｉｃｔｕｒｅ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ（ＭＰＥＧ）とともにＩＴＵ−Ｔ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ（ＶＣＥＧ）によって策定された。いくつかの態様では、本開示で説明する技法は、一般にＨ．２６４規格に準拠するデバイスに適用することができる。Ｈ．２６４規格は、ＩＴＵ−Ｔ研究グループによる２００５年３月付けのＩＴＵ−Ｔ勧告Ｈ．２６４「Ａｄｖａｎｃｅｄ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ  ｆｏｒ  ｇｅｎｅｒｉｃ  ａｕｄｉｏｖｉｓｕａｌ  ｓｅｒｖｉｃｅｓ」に記載されており、本明細書ではＨ．２６４規格またはＨ．２６４仕様、あるいはＨ．２６４／ＡＶＣ規格または仕様と呼ぶ。Ｊｏｉｎｔ  Ｖｉｄｅｏ  Ｔｅａｍ（ＪＶＴ）はＨ．２６４／ＭＰＥＧ−４  ＡＶＣへの拡張に取り組み続けている。
【００３８】
[0042]ビデオエンコーダ２０およびビデオデコーダ３０はそれぞれ、１つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、ディスクリート論理、ソフトウェア、ハードウェア、ファームウェアなど、様々な好適なエンコーダ回路のいずれか、あるいはそれらの任意の組合せとして実装され得る。本技法が部分的にソフトウェアで実装されるとき、デバイスは、好適な非時間的コンピュータ可読媒体にソフトウェアの命令を記憶し、１つまたは複数のプロセッサを使用してその命令をハードウェアで実行して、本開示の技法を実行し得る。ビデオエンコーダ２０およびビデオデコーダ３０の各々は１つまたは複数のエンコーダまたはデコーダ中に含まれ得、そのいずれも、それぞれのデバイスにおいて複合エンコーダ／デコーダ（コーデック）の一部として統合され得る。
【００３９】
[0043]ＪＣＴ−ＶＣは、ＨＥＶＣ規格のさらなる開発に取り組んでいる。ＨＥＶＣ規格化の取り組みは、ＨＥＶＣテストモデル（ＨＭ）と呼ばれるビデオコーディングデバイスの発展的モデルに基づく。ＨＭは、たとえば、ＩＴＵ−Ｔ  Ｈ．２６４／ＡＶＣに従う既存のデバイスに対してビデオコーディングデバイスのいくつかの追加の能力を仮定する。たとえば、Ｈ．２６４は９つのイントラ予測符号化モードを提供するが、ＨＭは３３個ものイントラ予測符号化モードを提供し得る。
【００４０】
[0044]一般に、ＨＭの作業モデルは、ビデオフレームまたはピクチャが、ルーマとクロマの両方のサンプルを含む一連のツリーブロックまたは最大コーディングユニット（ＬＣＵ）に分割され得ることを記載する。次回のＨＥＶＣ規格はまた、ＬＣＵを「コーディングツリーユニット」と称する。ビットストリーム内のシンタックスデータが、ピクセルの数に関して最大コーディングユニットであるＬＣＵのサイズを定義し得る。スライスは、コーディング順序でいくつかの連続するツリーブロックを含む。ビデオフレームまたはピクチャは、１つまたは複数のスライスに区分され得る。各ツリーブロックは、４分木に従ってコーディングユニット（ＣＵ）に分割され得る。一般に、４分木データ構造はＣＵごとに１つのノードを含み、ルートノードはツリーブロックに対応する。ＣＵが４つのサブＣＵに分割された場合、ＣＵに対応するノードは４つのリーフノードを含み、リーフノードの各々はサブＣＵのうちの１つに対応する。
【００４１】
[0045]４分木データ構造の各ノードは、対応するＣＵのシンタックスデータを与え得る。たとえば、４分木のノードは、そのノードに対応するＣＵがサブＣＵに分割されるかどうかを示す分割フラグを含み得る。ＣＵのシンタックス要素は、再帰的に定義され得、ＣＵがサブＣＵに分割されるかどうかに依存し得る。ＣＵがさらに分割されない場合、そのＣＵはリーフＣＵと呼ばれる。本開示では、元のリーフＣＵの明示的分割が存在しない場合でも、リーフＣＵの４つのサブＣＵをリーフＣＵとも呼ぶ。たとえば、１６×１６サイズのＣＵがさらに分割されない場合、この１６×１６ＣＵが決して分割されなくても、４つの８×８サブＣＵをリーフＣＵとも呼ぶ。
【００４２】
[0046]ＣＵは、ＣＵがサイズ差異を有さないことを除いて、Ｈ．２６４規格のマクロブロックと同様の目的を有する。たとえば、ツリーブロックは、４つの子ノード（サブＣＵとも呼ばれる）に分割され得、各子ノードは、今度は親ノードとなり、別の４つの子ノードに分割され得る。４分木のリーフノードと呼ばれる、最後の分割されていない子ノードは、リーフＣＵとも呼ばれるコーディングノードを備える。コーディングビットストリームに関連するシンタックスデータは、最大ＣＵ深さと呼ばれる、ツリーブロックが分割され得る最大回数を定義し得、コーディングノードの最小サイズも定義し得る。それに応じて、ビットストリームは最小コーディングユニット（ＳＣＵ：smallest coding unit）をも定義し得る。本開示では、ＨＥＶＣのコンテキストにおけるＣＵ、ＰＵ、またはＴＵ、あるいは他の規格のコンテキストにおける同様のデータ構造（たとえば、Ｈ．２６４／ＡＶＣにおけるマクロブロックおよびそれのサブブロック）のいずれかを指すために「ブロック」という用語を使用する。
【００４３】
[0047]ＣＵは、コーディングノードと、コーディングノードに関連する予測ユニット（ＰＵ：prediction unit）および変換ユニット（ＴＵ：transform unit）とを含む。ＣＵのサイズは、コーディングノードのサイズに対応し、形状が方形でなければならない。ＣＵのサイズは、８×８ピクセルから最大６４×６４以上のピクセルを有するツリーブロックのサイズまでに及び得る。各ＣＵは、１つまたは複数のＰＵと、１つまたは複数のＴＵとを含み得る。ＣＵに関連するシンタックスデータは、たとえば、ＣＵを１つまたは複数のＰＵに区分することを記述し得る。区分モードは、ＣＵが、スキップモード符号化またはダイレクトモード符号化されるか、イントラ予測モード符号化されるか、あるいはインター予測モード符号化されるかによって異なり得る。ＰＵは、形状が非方形になるように区分され得る。ＣＵに関連するシンタックスデータは、たとえば、４分木に従って、ＣＵを１つまたは複数のＴＵに区分することも記述し得る。ＴＵは、形状が正方形または非正方形（たとえば、矩形）であり得る。
【００４４】
[0048]ＨＥＶＣ規格は、ＣＵごとに異なり得るＴＵに従った変換を可能にする。ＴＵは、一般に、区分されたＬＣＵについて定義された所与のＣＵ内のＰＵのサイズに基づいてサイズ決定されるが、常にそうであるとは限らない。ＴＵは、一般にＰＵと同じサイズであるかまたはＰＵよりも小さい。いくつかの例では、ＣＵに対応する残差サンプルは、「残差４分木」（ＲＱＴ：residual quad tree）として知られる４分木構造を使用して、より小さいユニットに再分割され得る。ＲＱＴのリーフノードは変換ユニット（ＴＵ）と呼ばれることがある。ＴＵに関連するピクセル差分値は、量子化され得る変換係数を生成するために変換され得る。
【００４５】
[0049]リーフＣＵは、１つまたは複数の予測ユニット（ＰＵ）を含むことができる。一般に、ＰＵは、対応するＣＵの全部または一部に対応する空間的エリアを表し、そのＰＵ用の参照サンプルを取り出すためのデータを含むことができる。その上、ＰＵは、予測に関係するデータを含む。たとえば、ＰＵがイントラモード符号化されるとき、ＰＵのデータは、ＰＵに対応するＴＵのイントラ予測モードを記述するデータを含み得る、残差４分木（ＲＱＴ）中に含まれ得る。別の例として、ＰＵがインターモード符号化されるとき、ＰＵは、ＰＵのための１つまたは複数の動きベクトルを定義するデータを含み得る。ＰＵの動きベクトルを定義するデータは、たとえば、動きベクトルの水平成分、動きベクトルの垂直成分、動きベクトルの解像度（たとえば、１／４ピクセル精度もしくは１／８ピクセル精度）、動きベクトルが指す参照ピクチャ、および／または動きベクトルの参照ピクチャリスト（たとえば、リスト０、リスト１、もしくはリストＣ）を記述し得る。
【００４６】
[0050]１つまたは複数のＰＵを有するリーフＣＵはまた、１つまたは複数の変換ユニット（ＴＵ）を含み得る。変換ユニットは、上記で説明したように、（ＴＵ４分木構造とも呼ばれる）ＲＱＴを使用して指定され得る。たとえば、分割フラグは、リーフＣＵが４つの変換ユニットに分割されるかどうかを示し得る。次いで、各変換ユニットは、さらに、さらなるサブＴＵに分割され得る。ＴＵがさらに分割されないとき、そのＴＵはリーフＴＵと呼ばれ得る。概して、イントラコーディングの場合、リーフＣＵに属するすべてのリーフＴＵは同じイントラ予測モードを共有する。すなわち、概して、リーフＣＵのすべてのＴＵの予測値を計算するために同じイントラ予測モードが適用される。イントラコーディングの場合、ビデオエンコーダは、イントラ予測モードを使用して各リーフＴＵの残差値を、ＴＵに対応するＣＵの一部と元のブロックとの間の差分として計算し得る。ＴＵは、必ずしもＰＵのサイズに制限されるとは限らない。したがって、ＴＵはＰＵよりも大きくまたは小さくなり得る。イントラコーディングの場合、ＰＵは、同じＣＵについて対応するリーフＴＵとコロケートされ得る。いくつかの例では、リーフＴＵの最大サイズは、対応するリーフＣＵのサイズに対応し得る。
【００４７】
[0051]さらに、リーフＣＵのＴＵはまた、残差４分木（ＲＱＴ）と呼ばれる、それぞれの４分木データ構造に関連付けられ得る。すなわち、リーフＣＵは、リーフＣＵがどのようにＴＵに区分されるかを示す４分木を含み得る。ＴＵ４分木のルートノードは概してリーフＣＵに対応し、ＣＵ４分木のルートノードは概してツリーブロック（またはＬＣＵ）に対応する。分割されないＲＱＴのＴＵはリーフＴＵと呼ばれる。概して、本開示では、特に明記しない限り、リーフＣＵおよびリーフＴＵに言及するためにそれぞれＣＵおよびＴＵという用語を使用する。
【００４８】
[0052]ビデオシーケンスは、一般に、一連のビデオフレームまたはピクチャを含む。ピクチャグループ（ＧＯＰ）は、概して、ビデオピクチャのうちの一連の１つまたは複数を備える。ＧＯＰは、ＧＯＰ中に含まれるいくつかのピクチャを記述するシンタックスデータを、ＧＯＰのヘッダ中、ピクチャのうちの１つまたは複数のヘッダ中、または他の場所に含み得る。ピクチャの各スライスは、それぞれのスライスの符号化モードを記述するスライスシンタックスデータを含み得る。ビデオエンコーダ２０は、一般に、ビデオデータを符号化するために個々のビデオスライス内のビデオブロックに対して動作する。ビデオブロックは、ＣＵ内のコーディングノードに対応し得る。ビデオブロックは、サイズを固定することも変更することもでき、指定のコーディング規格に応じてサイズが異なることがある。
【００４９】
[0053]一例として、ＨＭは、様々なＰＵサイズでの予測をサポートする。特定のＣＵのサイズが２Ｎ×２Ｎであると仮定すると、ＨＭは、２Ｎ×２ＮまたはＮ×ＮのＰＵサイズでのイントラ予測をサポートし、２Ｎ×２Ｎ、２Ｎ×Ｎ、Ｎ×２Ｎ、またはＮ×Ｎの対称的なＰＵサイズでのインター予測をサポートする。ＨＭはまた、２Ｎ×ｎＵ、２Ｎ×ｎＤ、ｎＬ×２Ｎ、およびｎＲ×２ＮのＰＵサイズでのインター予測のための非対称区分をサポートする。非対称区分では、ＣＵの一方向は区分されないが、他の方向は２５％と７５％とに区分される。２５％の区分に対応するＣＵの部分は、「ｎ」とその後ろに付く「Ｕｐ」、「Ｄｏｗｎ」、「Ｌｅｆｔ」、または「Ｒｉｇｈｔ」という表示によって示される。したがって、たとえば、「２Ｎ×ｎＵ」は、上部の２Ｎ×０．５Ｎ  ＰＵと下部の２Ｎ×１．５Ｎ  ＰＵとで水平方向に区分された２Ｎ×２Ｎ  ＣＵを指す。
【００５０】
[0054]本開示では、「Ｎ×Ｎ（NxN）」および「Ｎ×Ｎ（N by N）」は、垂直寸法および水平寸法に関するビデオブロックのピクセル寸法、たとえば、１６×１６（16x16）ピクセルまたは１６×１６（16 by 16）ピクセルを指すために互換的に使用され得る。一般に、１６×１６ブロックは、垂直方向に１６ピクセルを有し（ｙ＝１６）、水平方向に１６ピクセルを有する（ｘ＝１６）。同様に、Ｎ×Ｎブロックは、一般に、垂直方向にＮピクセルを有し、水平方向にＮピクセルを有し、ここでＮは非負整数値を表す。ブロック内のピクセルは行と列で構成することができる。その上、ブロックは、必ずしも、水平方向において垂直方向と同じ数のピクセルを有する必要があるとは限らない。たとえば、ブロックはＮ×Ｍピクセルを備えてよく、ただし、Ｍは必ずしもＮに等しいとは限らない。
【００５１】
[0055]ＣＵのＰＵを使用したイントラ予測コーディングまたはインター予測コーディングの後、ビデオエンコーダ２０は、ＣＵのＴＵのための残差データを計算し得る。ＰＵは、（ピクセル領域とも呼ばれる）空間領域において予測ピクセルデータを生成する方法またはモードを記述するシンタックスデータを備え得、ＴＵは、変換、たとえば、残差ビデオデータへの離散コサイン変換（ＤＣＴ）、整数変換、ウェーブレット変換、または概念的に同様の変換の適用後に、変換領域において係数を備え得る。残差データは、符号化されていないピクチャのピクセルと、ＰＵに対応する予測値との間のピクセル差分に対応し得る。ビデオエンコーダ２０は、ＣＵのための残差データを含むＴＵを形成し、次いで、ＴＵを変換して、ＣＵの変換係数を生成し得る。
【００５２】
[0056]変換係数を生成するための任意の変換の後に、ビデオエンコーダ２０は、変換係数の量子化を実行し得る。量子化は、概して、さらなる圧縮を提供する、係数を表すために使用されるデータの量をできるだけ低減するために変換係数を量子化するプロセスを指す。量子化プロセスは、係数の一部または全部に関連するビット深度を低減し得る。たとえば、量子化中にｎビット値がｍビット値に切り捨てられ得、ただし、ｎはｍよりも大きい。
【００５３】
[0057]量子化の後に、ビデオエンコーダは、変換係数を走査して、量子化変換係数を含む２次元行列から１次元ベクトルを生成し得る。走査は、より高いエネルギー（したがってより低い周波数）の係数をアレイの前方に配置し、より低いエネルギー（したがってより高い周波数）の係数をアレイの後方に配置するように設計され得る。いくつかの例では、ビデオエンコーダ２０は、エントロピー符号化され得るシリアル化ベクトルを生成するために、量子化変換係数を走査するためにあらかじめ定義された走査順序を利用し得る。他の例では、ビデオエンコーダ２０は適応走査を実行し得る。量子化変換係数を走査して１次元ベクトルを形成した後に、ビデオエンコーダ２０は、たとえば、コンテキスト適応型可変長コーディング（ＣＡＶＬＣ：context-adaptive variable length coding）、コンテキスト適応型バイナリ算術コーディング（ＣＡＢＡＣ：context-adaptive binary arithmetic coding）、シンタックスベースコンテキスト適応型バイナリ算術コーディング（ＳＢＡＣ：syntax-based context-adaptive binary arithmetic coding）、確率間隔区分エントロピー（ＰＩＰＥ：Probability Interval Partitioning Entropy）コーディング、または別のエントロピー符号化方法に従って１次元ベクトルをエントロピー符号化し得る。ビデオエンコーダ２０はまた、ビデオデータを復号する際にビデオデコーダ３０が使用するための符号化ビデオデータに関連するシンタックス要素をエントロピー符号化し得る。
【００５４】
[0058]ＣＡＢＡＣを実行するために、ビデオエンコーダ２０は、送信されるべきシンボルに、コンテキストモデル内のコンテキストを割り当て得る。コンテキストは、たとえば、シンボルの隣接値が非０であるか否かに関係し得る。ＣＡＶＬＣを実行するために、ビデオエンコーダ２０は、送信されるべきシンボルのための可変長コードを選択し得る。ＶＬＣにおけるコードワードは、比較的短いコードが優勢シンボルに対応し、より長いコードが劣勢シンボルに対応するように構成され得る。このようにして、ＶＬＣの使用は、たとえば、送信されるべき各シンボルのために等長コードワードを使用するよりも、ビット節約を達成し得る。確率決定は、シンボルに割り当てられるコンテキストに基づき得る。
【００５５】
[0059]ビデオエンコーダ２０は、さらに、ブロックベースのシンタックスデータ、フレームベースのシンタックスデータ、およびＧＯＰベースのシンタックスデータなどのシンタックスデータを、たとえば、フレームヘッダ、ブロックヘッダ、スライスヘッダ、またはＧＯＰヘッダ中でビデオデコーダ３０に送り得る。ＧＯＰシンタックスデータは、それぞれのＧＯＰ中のいくつかのフレームを記述し得、フレームシンタックスデータは、対応するフレームを符号化するために使用される符号化／予測モードを示し得る。
【００５６】
[0060]ビデオエンコーダ２０およびビデオデコーダ３０はそれぞれ、適用可能なとき、１つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、ディスクリート論理回路、ソフトウェア、ハードウェア、ファームウェア、またはそれらの任意の組合せなど、様々な好適なエンコーダまたはデコーダ回路のいずれかとして実装され得る。ビデオエンコーダ２０およびビデオデコーダ３０の各々は１つまたは複数のエンコーダまたはデコーダ中に含まれ得、そのいずれも複合ビデオエンコーダ／デコーダ（コーデック）の一部として統合され得る。ビデオエンコーダ２０および／またはビデオデコーダ３０を含むデバイスは、集積回路、マイクロプロセッサ、および／またはセルラー電話などのワイヤレス通信デバイスを備え得る。
【００５７】
[0061]ＨＥＶＣなどのいくつかの規格は、ｐｒｏｆｉｌｅ＿ｔｉｅｒ＿ｌｅｖｅｌシンタックス構造を定義する。プロファイル、ティア、およびレベルは、同様の機能要件をもつ様々なアプリケーションにわたって相互運用可能な方法で、ＨＥＶＣなどの規格を実装するためのコンフォーマンスポイントを指定する。プロファイルは、準拠したビットストリームを生成するために使用され得るコーディングツールまたはアルゴリズムのセットを定義する。レベルは、たとえば、デコーダ処理負荷能力およびメモリ能力に対応するビットストリームのいくつかのパラメータに制約を加える。レベル制限は、最大サンプルレート、最大ピクチャサイズ、最大ビットレート、最小圧縮比、ならびに復号ピクチャバッファ（ＤＰＢ：decoded picture buffer）およびコード化ピクチャバッファ（ＣＰＢ：coded picture buffer）の容量に関して確立される。いくつかのレベルは、メインティア（Main Tier）および高ティア（High Tier）の指定された２つのティアを有する。
【００５８】
[0062]ソースデバイス１２、宛先デバイス１４、およびコンピュータ可読媒体１６のうちの１つまたは複数は、少なくともｐｒｏｆｉｌｅ＿ｔｉｅｒ＿ｌｅｖｅｌシンタックス構造を理解するように設計された１つまたは複数のトランスポート規格を実装し得る。そのようなトランスポート規格は、たとえば、ＩＳＯベースメディアファイルフォーマット、ＭＰＥＧ−２システム、ＤＡＳＨ、およびリアルタイム転送プロトコル（ＲＴＰ）であり得る。本明細書で説明する技法に従って、ビデオエンコーダ２０およびは、ビデオシーケンスを符号化し、たとえば、コード化ビデオシーケンスのためのｐｒｏｆｉｌｅ＿ｔｉｅｒ＿ｌｅｖｅｌシンタックス構造のためのｇｅｎｅｒａｌ＿ｒｅｓｅｒｖｅｄ＿ｚｅｒｏ＿１６ｂｉｔｓ中のビットのうちの１つが、コーデックプロパティうちの１つまたは複数を示すなど、予約済みビットシンタックス要素の１つまたは複数のビットを符号化するように構成され得る。いくつかの態様では、これらの１つまたは複数のビットは、１つまたは複数のコーディングツールイネーブルビットとして働き得る。１つまたは複数のコーディングツールイネーブルビットは、ビデオエンコーダ２０および／またはビデオデコーダ３０による使用のために１つまたは複数のコーディングツールがイネーブルにされているかどうかを示す。さらに、ビデオデコーダ３０は、１つまたは複数のコーディングツールイネーブルビットとして、たとえば、コード化ビデオシーケンスのためのｐｒｏｆｉｌｅ＿ｔｉｅｒ＿ｌｅｖｅｌシンタックス構造のためのｇｅｎｅｒａｌ＿ｒｅｓｅｒｖｅｄ＿ｚｅｒｏ＿１６ｂｉｔｓ中のビットのうちの１つなど、予約済みビットシンタックス要素の１つまたは複数のビットを復号するように構成され得る。
【００５９】
[0063]いくつかの態様では、１つまたは複数のコーディングツールイネーブルビットは、ビデオデコーダ３０による使用のために１つまたは複数のコーディングツールがイネーブルにされているかどうかを示す。ビデオデコーダ３０による使用のためにイネーブルにされているとして示された１つまたは複数のコーディングツールイネーブルビットによって示された１つまたは複数のコーディングツールを使用して、ビデオデコーダ３０は、符号化ビデオシーケンスを復号し得る。すなわち、ビデオデコーダ３０は、コード化ビデオデータを復号するためにイネーブルにされたコーディングツールを使用し得る。いくつかの例では、１つまたは複数のコーディングツールイネーブルビットは、ｐｒｏｆｉｌｅ＿ｔｉｅｒ＿ｌｅｖｅｌシンタックス構造中のｇｅｎｅｒａｌ＿ｒｅｓｅｒｖｅｄ＿ｚｅｒｏ＿１６ｂｉｔｓ予約済みビットシンタックス要素の１つまたは複数のビットとしてコーディングされる。１つまたは複数のコーディングツールイネーブルビットは、コード化ビデオシーケンス、ビットストリーム、またはエレメンタリストリームのために明示的重み付け予測（デフォルト値（１／２，１／２）（１，０）または（０，１）ではない）がイネーブルにされているかどうか、コード化ビデオシーケンス、ビットストリーム、またはエレメンタリストリームのためにタイルがイネーブルにされているかどうか、コード化ビデオシーケンス、ビットストリーム、またはエレメンタリストリームのためにウエーブフロント処理がイネーブルにされているかどうか、コード化ビデオシーケンス、ビットストリーム、またはエレメンタリストリームに時間動きベクトル予測がイネーブルにされているかどうか、スケーリングリストデータが存在し、コード化ビデオシーケンス、ビットストリーム、またはエレメンタリストリームのために使用されるかどうか、ならびに現在のビットストリームが８ビットであるかどうか、のコーデックプロパティのうちの１つまたは複数を示し得る。現在のビットストリームが８ビットであることを示すことにより、ビデオデコーダ３０は、ビットストリームが他のビット深度ではなく、８ビットの深度を有すると決定することが可能になる。
【００６０】
[0064]コード化ビデオシーケンス、ビットストリーム、またはエレメンタリストリームのためにタイルがイネーブルにされているかどうかを１つまたは複数のコーディングツールイネーブルビットが示す例では、１つまたは複数のコーディングツールイネーブルビットは、さらにまたは代替として、タイルが単独で復号可能にされているかどうかを示し得る。タイルは、ＨＥＶＣの並列処理能力を補助し得るビデオデータのピクチャの矩形領域である。ピクチャは、何らかの共有ヘッダ情報で符号化される単独で復号可能な領域であるタイルに区分され得る。いくつかの例では、タイルはまた、ビデオピクチャのローカル領域への空間ランダムアクセスのために使用され得る。ピクチャの１つの例示的なタイル構成は、ピクチャを、各タイル中にほぼ等しい数のコーディングツリーユニットをもつ複数の矩形領域にセグメント化することを含む。
【００６１】
[0065]いくつかの例では、１つまたは複数のコーディングツールイネーブルビットは、ウエイブフロントがイネーブルにされているかどうかを示す。本明細書では、ウエーブフロントは、概して、ウエーブフロント並列処理（ＷＰＰ：wavefront parallel processing）を指す。ＷＰＰがイネーブルにされているとき、ビデオデータのスライスはコーディングツリーユニット（ＣＴＵ：coding tree unit）の行（row）に分割される。第１の行は、典型的な方法で処理され得、第２の行は、第１の行中で２つだけＣＴＵが処理された後に処理され得、第３の行は、第２の行中で２つだけＣＴＵが処理された後に処理が開始され得、以下同様である。各行中のエントロピーコーダのコンテキストモデルは、２ＣＴＵ処理ラグで前の行中のコンテキストモデルから推論され得る。タイルはピクチャレベルに作用するのに対し、ウエーブフロント並列処理はスライスレベルに作用するので、ウエーブフロント並列処理は、タイルよりも比較的精細である並列処理の形態を与え得る。
【００６２】
[0066]本開示の技法によれば、１つまたは複数のフラグ、ｇｅｎｅｒａｌ＿ｎｏ＿ｗｅｉｇｈｔｅｄ＿ｐｒｅｄｉｃｔｉｏｎ＿ｆｌａｇフラグおよびｇｅｎｅｒａｌ＿ｎｏ＿ｔｉｌｅｓ＿ｆｌａｇフラグは、予約済みビットシンタックス要素の一部として含まれ得る。１に等しいｇｅｎｅｒａｌ＿ｎｏ＿ｗｅｉｇｈｔｅｄ＿ｐｒｅｄｉｃｔｉｏｎ＿ｆｌａｇフラグは、コード化ビデオシーケンス中で、ピクチャが重み付け予測を用いてコーディングされず、シンタックス要素ｗｅｉｇｈｔｅｄ＿ｐｒｅｄ＿ｆｌａｇおよびｗｅｉｇｈｔｅｄ＿ｂｉｐｒｅｄ＿ｆｌａｇが、ピクチャパラメータセット（ＰＰＳ：picture parameter set）中で０に等しくなるべきであることを示す。０に等しいフラグｇｅｎｅｒａｌ＿ｎｏ＿ｗｅｉｇｈｔｅｄ＿ｐｒｅｄｉｃｔｉｏｎ＿ｆｌａｇは、コード化ビデオシーケンス中で、重み付け予測が使用され得ることを示す。１に等しいフラグｇｅｎｅｒａｌ＿ｎｏ＿ｔｉｌｅｓ＿ｆｌａｇは、コード化ビデオシーケンス中の各ピクチャに対し、各ピクチャ中の１つのタイルが使用され、シンタックス要素ｔｉｌｅｓ＿ｅｎａｂｌｅｄ＿ｆｌａｇがＰＰＳ中で０に等しくなるべきであることを示す。０に等しいフラグｇｅｎｅｒａｌ＿ｎｏ＿ｔｉｌｅｓ＿ｆｌａｇは、ピクチャ中に２つ以上のタイルがあり得ることを示す。
【００６３】
[0067]図２は、プロファイル、ティア、およびレベルシンタックス構造を使用することによってシーケンスパラメータセットでコード化プロパティを示すための技法を実装し得るビデオエンコーダ２０の一例を示すブロック図である。ビデオエンコーダ２０は、ビデオスライス内のビデオブロックのイントラコーディングおよびインターコーディングを実行し得る。イントラコーディングは、所与のビデオフレームまたはピクチャ内のビデオの空間的冗長性を低減または除去するために空間的予測に依拠する。インターコーディングは、ビデオシーケンスの隣接フレームまたはピクチャ内のビデオの時間的冗長性を低減または除去するために時間的予測に依拠する。イントラ（Ｉ）モードは、いくつかの空間ベースのコーディングモードのいずれかを指し得る。単方向予測（Ｐモード）または双方向予測（Ｂモード）などのインターモードは、いくつかの時間ベースのコーディングモードのいずれかを指し得る。
【００６４】
[0068]図２に示されるように、ビデオエンコーダ２０は、符号化されるべきビデオフレーム内の現在のビデオブロックを受信する。図２の例では、ビデオエンコーダ２０は、モード選択ユニット４０と、参照フレームメモリ６４と、加算器５０と、変換処理ユニット５２と、量子化ユニット５４と、エントロピー符号化ユニット５６とを含む。モード選択ユニット４０は、今度は、動き補償ユニット４４と、動き推定ユニット４２と、イントラ予測ユニット４６と、区分ユニット４８とを含む。ビデオブロックの復元のために、ビデオエンコーダ２０はまた、逆量子化ユニット５８と、逆変換ユニット６０と、加算器６２とを含む。復元されたビデオからブロッキネスアーティファクトを除去するためにブロック境界をフィルタリングする、デブロッキングフィルタも含まれ得る。所望される場合、デブロッキングフィルタは一般に、加算器６２の出力をフィルタリングすることになる。また、デブロッキングフィルタに加えて追加のフィルタ（ループ内またはループ後）が使用され得る。そのようなフィルタは、簡潔のために示されていないが、所望される場合、（ループ内フィルタとして）加算器５０の出力をフィルタ処理し得る。
【００６５】
[0069]符号化プロセス中に、ビデオエンコーダ２０はコーディングされるべきビデオフレームまたはスライスを受信する。フレームまたはスライスは複数のビデオブロックに分割され得る。動き推定ユニット４２および動き補償ユニット４４は、時間的な予測を行うために、１つまたは複数の参照フレーム中の１つまたは複数のブロックに対する受信されたビデオブロックのインター予測コーディングを実行する。イントラ予測ユニット４６は代替的に、空間的な予測を行うために、コーディングされるべきブロックと同じフレームまたはスライス中の１つまたは複数の隣接ブロックに対して受信されたビデオブロックのイントラ予測コーディングを実行し得る。ビデオエンコーダ２０は、たとえば、ビデオデータのブロックごとに適切なコーディングモードを選択するために、複数のコーディングパスを実行し得る。
【００６６】
[0070]その上、区分ユニット４８は、以前のコーディングパスにおける以前の区分方式の評価に基づいて、ビデオデータのブロックをサブブロックに区分し得る。たとえば、区分ユニット４８は、初めにフレームまたはスライスをＬＣＵに区分し、レートひずみ分析（たとえば、レートひずみ最適化）に基づいてＬＣＵの各々をサブＣＵに区分し得る。モード選択ユニット４０は、さらに、ＬＣＵをサブＣＵに区分することを示す４分木データ構造を生成し得る。４分木のリーフノードＣＵは、１つまたは複数のＰＵと、１つまたは複数のＴＵとを含み得る。
【００６７】
[0071]モード選択ユニット４０は、たとえば、誤差結果に基づいて、コーディングモード、すなわち、イントラまたはインターのうちの１つを選択することができ、残差ブロックデータを生成するために、得られたイントラコーディングされたブロックまたはインターコーディングされたブロックを加算器５０に与え、参照フレームとして使用するための符号化されたブロックを復元するために、得られたイントラコーディングされたブロックまたはインターコーディングされたブロックを加算器６２に与える。モード選択ユニット４０はまた、動きベクトル、イントラモードインジケータ、パーティション情報、および他のそのようなシンタックス情報などのシンタックス要素をエントロピー符号化ユニット５６に与える。
【００６８】
[0072]動き推定ユニット４２と動き補償ユニット４４とは、高度に統合され得るが、概念的な目的のために別々に示してある。動き推定ユニット４２によって実行される動き推定は、ビデオブロックの動きを推定する動きベクトルを生成するプロセスである。動きベクトルは、たとえば、現在のフレーム（または他のコード化ユニット）内でコーディングされている現在のブロックに対する参照フレーム（または他のコード化ユニット）内の予測ブロックに対する現在のビデオフレームまたはピクチャ内のビデオブロックのＰＵの変位を示し得る。予測ブロックは、絶対値差分和（ＳＡＤ）、２乗差分和（ＳＳＤ）、または他の差分尺度によって決定され得るピクセル差分に関して、コーディングされるブロックに精密に一致することがわかるブロックである。いくつかの例では、ビデオエンコーダ２０は、参照フレームメモリ６４に記憶された参照ピクチャのサブ整数ピクセル位置の値を計算し得る。たとえば、ビデオエンコーダ２０は、参照ピクチャの１／４ピクセル位置、１／８ピクセル位置、または他の分数ピクセル位置の値を補間し得る。したがって、動き推定ユニット４２は、フルピクセル位置と分数ピクセル位置とに対する動き探索を実行し、分数ピクセル精度で動きベクトルを出力し得る。
【００６９】
[0073]動き推定ユニット４２は、ＰＵの位置を参照ピクチャの予測ブロックの位置と比較することによって、インターコード化スライス中のビデオブロックのＰＵについての動きベクトルを計算する。参照ピクチャは、第１の参照ピクチャリスト（リスト０）または第２の参照ピクチャリスト（リスト１）から選択され得、それらの参照ピクチャリストの各々は、参照フレームメモリ６４に記憶された１つまたは複数の参照ピクチャを識別する。動き推定ユニット４２は、計算された動きベクトルをエントロピー符号化ユニット５６と動き補償ユニット４４とに送る。
【００７０】
[0074]動き補償ユニット４４によって実行される動き補償は、動き推定ユニット４２によって決定された動きベクトルに基づいて予測ブロックをフェッチまたは生成することに関与し得る。この場合も、いくつかの例では、動き推定ユニット４２と動き補償ユニット４４とは機能的に統合され得る。現在のビデオブロックのＰＵのための動きベクトルを受信すると、動き補償ユニット４４は、参照ピクチャリストのうちの１つにおいて動きベクトルが指す予測ブロックの位置を特定し得る。加算器５０は、以下で説明するように、コーディングされている現在のビデオブロックのピクセル値から予測ブロックのピクセル値を減算し、ピクセル差分値を形成することによって、残差ビデオブロックを形成する。概して、動き推定ユニット４２はルーマ成分に対して動き推定を実行し、動き補償ユニット４４は、クロマ成分とルーマ成分の両方のためにルーマ成分に基づいて計算された動きベクトルを使用する。モード選択ユニット４０はまた、ビデオスライスのビデオブロックを復号する際にビデオデコーダ３０が使用するためのビデオブロックとビデオスライスとに関連するシンタックス要素を生成し得る。
【００７１】
[0075]イントラ予測ユニット４６は、上記で説明したように、動き推定ユニット４２と動き補償ユニット４４とによって実行されるインター予測の代替として、現在ブロックをイントラ予測し得る。特に、イントラ予測ユニット４６は、現在ブロックを符号化するために使用すべきイントラ予測モードを決定し得る。いくつかの例では、イントラ予測ユニット４６は、たとえば、別個の符号化パス中に、様々なイントラ予測モードを使用して現在ブロックを符号化し得、イントラ予測ユニット４６（または、いくつかの例では、モード選択ユニット４０）は、テストされたモードから使用するのに適切なイントラ予測モードを選択し得る。
【００７２】
[0076]たとえば、イントラ予測ユニット４６は、様々なテストされたイントラ予測モードのためのレートひずみ分析を使用してレートひずみ値を計算し、テストされたモードの中で最良のレートひずみ特性を有するイントラ予測モードを選択し得る。レートひずみ分析は、概して、符号化ブロックと、符号化ブロックを生成するために符号化された元の符号化されていないブロックとの間のひずみ（または誤差）の量、ならびに符号化ブロックを生成するために使用されるビットレート（すなわち、ビット数）を決定する。イントラ予測ユニット４６は、どのイントラ予測モードがブロックについて最良のレートひずみ値を呈するかを決定するために、様々な符号化ブロックのひずみおよびレートから比率を計算し得る。
【００７３】
[0077]ブロック用のイントラ予測モードを選択した後、イントラ予測ユニット４６は、ブロック用に選択されたイントラ予測モードを示す情報を、エントロピー符号化ユニット５６に提供することができる。エントロピー符号化ユニット５６は、選択されたイントラ予測モードを示す情報を符号化することができる。ビデオエンコーダ２０は、（コードワードマッピングテーブルとも呼ばれる）複数のイントラ予測モードインデックステーブルおよび複数の修正されたイントラ予測モードインデックステーブルと、様々なブロック用の符号化コンテキストの定義と、最確イントラ予測モードの指示とを含む送信されたビットストリーム構成データの中に、コンテキストの各々について使用する、イントラ予測モードインデックステーブルと修正されたイントラ予測モードインデックステーブルとを含めることができる。
【００７４】
[0078]ビデオエンコーダ２０は、コーディングされている元のビデオブロックから、モード選択ユニット４０からの予測データを減算することによって、残差ビデオブロックを形成する。加算器５０は、この減算演算を実行する１つまたは複数の構成要素を表す。変換処理ユニット５２は、離散コサイン変換（ＤＣＴ）または概念的に同様の変換などの変換を残差ブロックに適用し、残差変換係数値を備えるビデオブロックを生成する。変換処理ユニット５２は、ＤＣＴと概念的に同様である他の変換を実行し得る。ウェーブレット変換、整数変換、サブバンド変換または他のタイプの変換も使用され得る。いずれの場合も、変換処理ユニット５２は、変換を残差ブロックに適用し、残差変換係数のブロックを生成する。変換は、残差情報をピクセル値領域から周波数領域などの変換領域に変換し得る。変換処理ユニット５２は、得られた変換係数を量子化ユニット５４に送り得る。量子化ユニット５４は、ビットレートをさらに低減するために変換係数を量子化する。量子化プロセスは、係数の一部または全部に関連するビット深度を低減し得る。量子化の程度は、量子化パラメータを調整することによって変更され得る。いくつかの例では、量子化ユニット５４は、次いで、量子化変換係数を含む行列の走査を実行し得る。代替的に、エントロピー符号化ユニット５６が走査を実行し得る。
【００７５】
[0079]量子化の後、エントロピー符号化ユニット５６は、量子化変換係数をエントロピーコーディングする。たとえば、エントロピー符号化ユニット５６は、コンテキスト適応型可変長コーディング（ＣＡＶＬＣ）、コンテキスト適応型バイナリ算術コーディング（ＣＡＢＡＣ）、シンタックスベースコンテキスト適応型バイナリ算術コーディング（ＳＢＡＣ）、確率間隔区分エントロピー（ＰＩＰＥ）コーディングまたは別のエントロピーコーディング技法を実行し得る。コンテキストベースエントロピーコーディングの場合、コンテキストは隣接ブロックに基づき得る。エントロピー符号化ユニット５６によるエントロピーコーディングの後、符号化ビットストリームは、別のデバイス（たとえば、ビデオデコーダ３０）に送信されるか、または後で送信するかもしくは取り出すためにアーカイブすることができる。
【００７６】
[0080]逆量子化ユニット５８および逆変換ユニット６０は、それぞれ逆量子化および逆変換を適用して、たとえば参照ブロックとして後で使用するために、ピクセル領域中で残差ブロックを再構成する。動き補償ユニット４４は、残差ブロックを参照フレームメモリ６４のフレームのうちの１つの予測ブロックに加算することによって参照ブロックを計算し得る。動き補償ユニット４４はまた、再構成された残差ブロックに１つまたは複数の補間フィルタを適用して、動き推定において使用するサブ整数ピクセル値を計算し得る。加算器６２は、再構成された残差ブロックを、動き補償ユニット４４によって生成された動き補償予測ブロックに加算して、参照フレームメモリ６４に記憶するための再構成されたビデオブロックを生成する。再構成されたビデオブロックは、後続のビデオフレーム中のブロックをインターコーディングするために動き推定ユニット４２および動き補償ユニット４４によって参照ブロックとして使用され得る。
【００７７】
[0081]図２のビデオエンコーダ２０は、符号化されるべきビデオシーケンスを決定することと、ビデオシーケンスを符号化することと、１つまたは複数のコーディングツールイネーブルビットとして符号化ビデオシーケンスについての予約済みビットシンタックス要素の１つまたは複数のビットを符号化することと、を行うように構成されたビデオエンコーダの一例を示し、ここで、１つまたは複数のコーディングツールイネーブルビットは、ビデオエンコーダによる使用のために１つまたは複数のコーディングツールがイネーブルにされているかどうかを示す。たとえば、特定のコーディングツールがイネーブルにされている場合、符号化ビデオシーケンスは、特定のコーディングツールを使用して復号され得る。いくつかの例では、予約済みビットシンタックス要素は、ｐｒｏｆｉｌｅ＿ｔｉｅｒ＿ｌｅｖｅｌシンタックス構造の一部である。ｐｒｏｆｉｌｅ＿ｔｉｅｒ＿ｌｅｖｅｌシンタックス構造は、ｇｅｎｅｒａｌ＿ｒｅｓｅｒｖｅｄ＿ｚｅｒｏ＿１６ｂｉｔｓ予約済みビットシンタックス構造を含む。ｇｅｎｅｒａｌ＿ｒｅｓｅｒｖｅｄ＿ｚｅｒｏ＿１６ｂｉｔｓ予約済みビットシンタックス構造中のビットのうちの少なくともいくつかは、コーディングツールイネーブルビットとして使用され得る。したがって、コーディングツールイネーブルビットは、必ずしもＳＰＳまたはＶＰＳ中の他の場所でシグナリングされる必要がない。代わりに、コーディングツールイネーブルビットは、通常ならば使用されなかったであろうｇｅｎｅｒａｌ＿ｒｅｓｅｒｖｅｄ＿ｚｅｒｏ＿１６ｂｉｔｓ予約済みビットシンタックス構造中のビットを使用することによって提示され、それによって、ビデオコーディングプロパティの効率的なシグナリングをサポートし得る。ｐｒｏｆｉｌｅ＿ｔｉｅｒ＿ｌｅｖｅｌシンタックス構造は、符号化ビデオシーケンスの複数のレイヤに適用可能な情報を含むビデオパラメータセット（ＶＰＳ）中に含まれ得る。他の例では、ｐｒｏｆｉｌｅ＿ｔｉｅｒ＿ｌｅｖｅｌシンタックス構造は、シーケンスパラメータセット（ＳＰＳ）シンタックス情報中に含まれ得る。
【００７８】
[0082]ビデオエンコーダ２０は、１つまたは複数のエンコーダデコーダ（コーデック）プロパティを示すために１つまたは複数のコーディングツールイネーブルビットを符号化し得る。たとえば、１つまたは複数のコーディングツールイネーブルビットは、符号化ビデオシーケンス、符号化ビデオシーケンスのビットストリーム、または符号化ビデオシーケンスのエレメンタリストリームについて、明示的重み付け予測がイネーブルにされているかどうか、タイルがイネーブルにされているかどうか、ウエーブフロントがイネーブルにされているかどうか、時間動きベクトル予測がイネーブルにされているかどうか、あるいはスケーリングリストデータが存在し、コード化ビデオシーケンス、ビットストリーム、またはエレメンタリストリームのために使用されるかどうかのうちの１つまたは複数を示し得る。１つまたは複数のコーディングツールイネーブルビット中でタイルがイネーブルにされているかどうかを示すフラグをビデオエンコーダ２０が符号化する一例では、１つまたは複数のコーディングツールイネーブルビットは、タイルが単独で符号化可能であるかどうかをさらに示し得る。別の例では、ビデオエンコーダ２０は、タイルがイネーブルにされているかどうかを示すフラグを直接符号化することなしにタイルが単独で符号化可能であるかどうかを示すフラグを符号化する。いくつかの例では、ビデオエンコーダ２０は、符号化ビデオシーケンスのビットストリームが８ビットのビット深度を有するかどうかを示すために１つまたは複数のコーディングツールイネーブルビットを符号化する。ビデオエンコーダ２０はまた、予約済みビットシンタックス要素の一部としてｇｅｎｅｒａｌ＿ｎｏ＿ｗｅｉｇｈｔｅｄ＿ｐｒｅｄｉｃｔｉｏｎ＿ｆｌａｇフラグとｇｅｎｅｒａｌ＿ｎｏ＿ｔｉｌｅｓ＿ｆｌａｇフラグとを含む１つまたは複数のビットを符号化し得る。上記で説明した指示のすべては互いに無関係であり得る。
【００７９】
[0083]ビデオエンコーダ２０は、ｇｅｎｅｒａｌ＿ｒｅｓｅｒｖｅｄ＿ｚｅｒｏ＿１６ｂｉｔｓ予約済みビットシンタックス構造の一部として１つまたは複数のコーディングツールイネーブルビットを符号化し得る。いくつかの例では、ビデオエンコーダ２０は、シーケンスパラメータセット（ＳＰＳ）に１つまたは複数のコーディングツールイネーブルビットを符号化する。他の例では、ビデオエンコーダ２０は、コード化ビデオシーケンスの複数のレイヤに適用可能な情報を含むビデオパラメータセット（ＶＰＳ）の一部として１つまたは複数のコーディングツールイネーブルビットを符号化する。
【００８０】
[0084]符号化ビデオシーケンスのための予約済みビットシンタックス構造の一部として１つまたは複数のコーディングツールイネーブルビットを符号化することを通して、ビデオエンコーダ２０は、符号化ビデオシーケンスのビデオプロパティへの軽量アクセスを可能にする。したがって、ｐｒｏｆｉｌｅ＿ｔｉｅｒ＿ｌｅｖｅｌシンタックス構造を理解することができるトランスポートプロトコルを使用するデバイスは、符号化ビデオプロパティにアクセスすることが可能であり得る。
【００８１】
[0085]図３は、プロファイル、ティア、およびレベルシンタックス構造を再使用することによってシーケンスパラメータセットでコード化プロパティを示すための技法を実装し得るビデオデコーダ３０の一例を示すブロック図である。図３の例では、ビデオデコーダ３０は、エントロピー復号ユニット７０と、動き補償ユニット７２と、イントラ予測ユニット７４と、逆量子化ユニット７６と、逆変換ユニット７８と、参照フレームメモリ８２と、加算器８０とを含む。ビデオデコーダ３０は、いくつかの例では、ビデオエンコーダ２０に関して説明した符号化パスとは概して逆の復号パスを実行し得る（図２）。動き補償ユニット７２は、エントロピー復号ユニット７０から受信された動きベクトルに基づいて予測データを生成し得、イントラ予測ユニット７４は、エントロピー復号ユニット７０から受信されたイントラ予測モードインジケータに基づいて予測データを生成し得る。
【００８２】
[0086]復号プロセス中に、ビデオデコーダ３０は、ビデオエンコーダ２０から、符号化ビデオスライスのビデオブロックと、関連するシンタックス要素とを表す符号化ビデオビットストリームを受信する。ビデオデコーダ３０のエントロピー復号ユニット７０は、量子化係数、動きベクトルまたはイントラ予測モードインジケータ、および他のシンタックス要素を生成するためにビットストリームをエントロピー復号する。エントロピー復号ユニット７０は、動きベクトルｔｏと他の予測シンタックス要素とを動き補償ユニット７２に転送する。ビデオデコーダ３０は、ビデオスライスレベルおよび／またはビデオブロックレベルでシンタックス要素を受信し得る。
【００８３】
[0087]ビデオスライスがイントラコード化（Ｉ）スライスとしてコーディングされるとき、イントラ予測ユニット７４は、シグナリングされたイントラ予測モードと、現在フレームまたはピクチャの、前に復号されたブロックからのデータとに基づいて、現在ビデオスライスのビデオブロックのための予測データを生成し得る。ビデオフレームがインターコーディングされた（すなわち、Ｂ、ＰまたはＧＰＢ）スライスとしてコーディングされるとき、動き補償ユニット７２は、エントロピー復号ユニット７０から受信された動きベクトルと他のシンタックス要素とに基づいて、現在のビデオスライスのビデオブロックのための予測ブロックを生成する。予測ブロックは、参照ピクチャリストの１つの中の参照ピクチャの１つから生成され得る。ビデオデコーダ３０は、参照フレームメモリ８２に記憶された参照ピクチャに基づいて、デフォルトの構成技法を使用して、参照フレームリスト、すなわち、リスト０およびリスト１を構成し得る。動き補償ユニット７２は、動きベクトルと他のシンタックス要素とを解析することによって現在ビデオスライスのビデオブロックについての予測情報を決定し、予測情報を使用して、復号されている現在ビデオブロックのための予測ブロックを生成する。たとえば、動き補償ユニット７２は、ビデオスライスのビデオブロックをコーディングするために使用される予測モード（たとえば、イントラまたはインター予測）と、インター予測スライスタイプ（たとえば、Ｂスライス、Ｐスライス、またはＧＰＢスライス）と、スライスの参照ピクチャリストのうちの１つまたは複数についての構成情報と、スライスの各インター符号化ビデオブロックについての動きベクトルと、スライスの各インターコーディングビデオブロックについてのインター予測ステータスと、現在ビデオスライス中のビデオブロックを復号するための他の情報とを決定するために、受信されたシンタックス要素のいくつかを使用する。
【００８４】
[0088]動き補償ユニット７２はまた、補間フィルタに基づいて補間を実行し得る。動き補償ユニット７２は、ビデオブロックの符号化中にビデオエンコーダ２０によって使用された補間フィルタを使用して、参照ブロックのサブ整数ピクセルの補間値を計算し得る。この場合、動き補償ユニット７２は、受信されたシンタックス要素からビデオエンコーダ２０によって使用された補間フィルタを決定し、その補間フィルタを使用して予測ブロックを生成し得る。
【００８５】
[0089]逆量子化ユニット７６は、ビットストリーム中で与えられ、エントロピー復号ユニット７０によって復号された量子化変換係数を逆量子化（inverse quantize）、すなわち、逆量子化（de-quantize）する。逆量子化プロセスは、ビデオスライス中の各ビデオブロックについてビデオデコーダ３０によって計算される量子化パラメータＱＰＹを使用して量子化の程度を決定し、同様に、適用すべき逆量子化の程度を決定することを含み得る。
【００８６】
[0090]逆変換ユニット７８は、逆変換、たとえば、逆ＤＣＴ、逆整数変換、または概念的に同様の逆変換処理を変換係数に適用して、ピクセル領域において残差ブロックを生成する。
【００８７】
[0091]動き補償ユニット７２が、動きベクトルと他のシンタックス要素とに基づいて現在ビデオブロックのための予測ブロックを生成した後、ビデオデコーダ３０は、逆変換ユニット７８からの残差ブロックを動き補償ユニット７２によって生成された対応する予測ブロックと加算することによって、復号されたビデオブロックを形成する。加算器８０は、この加算演算を実行する１つまたは複数の構成要素を表す。所望される場合、ブロッキネスアーティファクトを除去するために、復号ブロックをフィルタ処理するためにデブロッキングフィルタも適用され得る。ピクセル遷移を平滑化するか、またはさもなければビデオ品質を改善するために、（コーディングループ内またはコーディングループ後の）他のループフィルタも使用され得る。所与のフレームまたはピクチャの復号されたビデオブロックは、次いで、その後の動き補償のために使用される参照ピクチャを記憶する参照フレームメモリ８２に記憶される。参照フレームメモリ８２はまた、図１のディスプレイデバイス３２などのディスプレイデバイス上での後の表示のために、復号されたビデオを記憶する。
【００８８】
[0092]図３のビデオデコーダ３０は、コード化ビデオシーケンスを受信することと、１つまたは複数のコーディングツールイネーブルビットとしてコード化ビデオシーケンスについての予約済みビットシンタックス要素の１つまたは複数のビットを復号することと、を行うように構成されたビデオデコーダの一例を表し、ここで、１つまたは複数のコーディングツールイネーブルビットは、ビデオデコーダによる使用のために１つまたは複数のコーディングツールがイネーブルにされているかどうかを示す。いくつかの例では、予約済みビットシンタックス要素は、ｐｒｏｆｉｌｅ＿ｔｉｅｒ＿ｌｅｖｅｌシンタックス構造の一部である。ｐｒｏｆｉｌｅ＿ｔｉｅｒ＿ｌｅｖｅｌシンタックス構造は、符号化ビデオシーケンスの複数のレイヤに適用可能な情報を含むビデオパラメータセット（ＶＰＳ）中に含まれ得る。他の例では、ｐｒｏｆｉｌｅ＿ｔｉｅｒ＿ｌｅｖｅｌシンタックス構造は、シーケンスパラメータセット（ＳＰＳ）シンタックス情報中に含まれ得る。
【００８９】
[0093]ビデオデコーダ３０は、１つまたは複数のエンコーダデコーダ（コーデック）プロパティを決定するために１つまたは複数のコーディングツールイネーブルビットを復号し得る。たとえば、１つまたは複数のコーディングツールイネーブルビットは、符号化ビデオシーケンス、符号化ビデオシーケンスのビットストリーム、または符号化ビデオシーケンスのエレメンタリストリームについて、明示的重み付け予測がイネーブルにされているかどうか、タイルがイネーブルにされているかどうか、ウエーブフロントがイネーブルにされているかどうか、時間動きベクトル予測がイネーブルにされているかどうか、あるいはスケーリングリストデータが存在し、コード化ビデオシーケンス、ビットストリーム、またはエレメンタリストリームのために使用されるかどうかのうちの１つまたは複数を示し得る。１つまたは複数のコーディングツールイネーブルビット中でタイルがイネーブルにされているかどうかを示すフラグをビデオデコーダ３０が復号する一例では、１つまたは複数のコーディングツールイネーブルビットは、タイルが単独で符号化可能かどうかをさらに示し得る。別の例では、ビデオデコーダ３０は、タイルがイネーブルにされているかどうかを示すフラグを直接復号することなしにタイルが単独で符号化可能かどうかを示すフラグを復号する。いくつかの例では、ビデオデコーダ３０は、符号化ビデオシーケンスのビットストリームが８ビットのビット深度を有するかどうかを示すために１つまたは複数のコーディングツールイネーブルビットを復号する。ビデオデコーダ３０はまた、予約済みビットシンタックス要素の一部としてｇｅｎｅｒａｌ＿ｎｏ＿ｗｅｉｇｈｔｅｄ＿ｐｒｅｄｉｃｔｉｏｎ＿ｆｌａｇフラグとｇｅｎｅｒａｌ＿ｎｏ＿ｔｉｌｅｓ＿ｆｌａｇフラグとを復号し得る。上記で説明した指示のすべては互いに無関係であり得る。ビデオデコーダ３０は、１つまたは複数のコーディングツールイネーブルビットに基づいてビデオシーケンスを復号し得る。たとえば、ビデオデコーダ３０は、復号された１つまたは複数のコーディングツールイネーブルビットによってイネーブルにされていると示された１つまたは複数のコーディングツールを使用して符号化ビデオシーケンスを復号する。
【００９０】
[0094]ビデオデコーダ３０は、ｇｅｎｅｒａｌ＿ｒｅｓｅｒｖｅｄ＿ｚｅｒｏ＿１６ｂｉｔｓ予約済みビットシンタックス構造の一部として１つまたは複数のコーディングツールイネーブルビットを復号し得る。いくつかの例では、ビデオデコーダ３０は、シーケンスパラメータセット（ＳＰＳ）から１つまたは複数のコーディングツールイネーブルビットを復号する。他の例では、ビデオデコーダ３０は、コード化ビデオシーケンスの複数のレイヤに適用可能な情報を含むビデオパラメータセット（ＶＰＳ）の一部として１つまたは複数のコーディングツールイネーブルビットを復号する。
【００９１】
[0095]ビデオデコーダ３０は、予約済みビットシンタックス構造の一部として１つまたは複数のコーディングツールイネーブルビットを復号することを通して、符号化ビデオシーケンスのビデオプロパティへの軽量アクセスを有し得る。したがって、ｐｒｏｆｉｌｅ＿ｔｉｅｒ＿ｌｅｖｅｌシンタックス構造を理解することができるトランスポートプロトコルを使用するデバイスは、符号化ビデオプロパティにアクセスすることが可能であり得る。たとえば、ビデオプロパティへの軽量アクセスを有するビデオデコーダ３０は、ビットストリーム上で可変長コーディングなどのコーディングを実行することなしに、ビットストリームから１つまたは複数のコーディングイネーブルツールビットを抽出することが可能であり得る。１つまたは複数のコーディングイネーブルツールビットがＶＰＳ中にコーディングされる一例では、１つまたは複数のコーディングイネーブルツールビットがビットストリームの最初の４バイト内にあり得る。１つまたは複数のコーディングイネーブルツールビットがＳＰＳ中にコーディングされる一例では、１つまたは複数のコーディングイネーブルツールビットがＳＰＳ  ＮＡＬユニットを含むパケットの最初の４バイト内にあり得る。最初の４バイトは、固定長コーディングされ得、ビットストリーム中の他のバイトよりも比較的パースしやすいことがある。
【００９２】
[0096]図４は、本開示で説明する技法による、ビデオシーケンスを復号する例示的な方法を示すフローチャートである。図４の方法は、図１および図３のビデオデコーダ３０など、本明細書で説明する任意のビデオ復号デバイスによって実行され得る。例示的な方法は、ビデオデコーダ３０などのビデオデコーダによってコード化ビデオシーケンスを受信することを含む（１００）。ビデオシーケンスは、たとえば、ビデオデコーダ３０においてビットストリーム中で受信され得る。
【００９３】
[0097]本方法は、１つまたは複数のコーディングツールイネーブルビットとしてコード化ビデオシーケンスについての予約済みビットシンタックス要素の１つまたは複数のビットを復号すること、をさらに含み、予約済みビットシンタックス要素は、プロファイルおよびレベル情報を含むシンタックス構造の一部であり、１つまたは複数のコーディングツールイネーブルビットは、ビデオデコーダによる使用のために１つまたは複数のコーディングツールがイネーブルにされているかどうかを示す（１０２）。プロファイルおよびレベル情報を含むシンタックス構造は、ｐｒｏｆｉｌｅ＿ｔｉｅｒ＿ｌｅｖｅｌシンタックス構造であり得る。たとえば、予約済みビットシンタックス要素は、プロファイルおよびレベル情報を含むビットに連続する複数のビットを有する。すなわち、コード化ビデオシーケンスのビットストリーム中で、１つまたは複数のコーディングイネーブルツールビットを含む、予約済みビットシンタックス要素のビットは、プロファイルおよびレベル情報を示す１つまたは複数のビットに連続する。別の例では、予約済みビットシンタックス要素は、プロファイル、ティア、およびレベル情報を含むビットに連続する複数のビットを有する。
【００９４】
[0098]いくつかの例では、予約済みビットシンタックス要素は、プロファイルおよびレベル情報のいくつかの連続バイト内のコード化ビデオシーケンスのバイストリーム中に存在するシンタックス構造の一部である。たとえば、１つまたは複数のコーディングツールの使用可能性（enablement）を示す１つまたは複数のコーディングツールイネーブルビットは、プロファイル、ティア、またはレベル情報を搬送するために使用されるビットの数バイト前に置かれ得る。別の例では、１つまたは複数のコーディングツールの使用可能性を示す１つまたは複数のコーディングツールイネーブルビットは、プロファイル、ティア、またはレベル情報を搬送するために使用されるビットの数バイト後に置かれ得る。
【００９５】
[0099]また別の例では、予約済みビットシンタックス要素ならびにプロファイルおよびレベル情報を含むシンタックス構造は、１つまたは複数のコーディングイネーブルツールビットならびにプロファイル、ティア、およびレベル情報のみを含み得る。
【００９６】
[0100]本方法は、１つまたは複数のコーディングツールイネーブルビットがビデオデコーダによる使用のためにイネーブルされていることを示す１つまたは複数のコーディングツールを使用して、コード化ビデオシーケンスを復号することをさらに含み得る。
【００９７】
[0101]一例では、予約済みビットシンタックス要素は、ｐｒｏｆｉｌｅ＿ｔｉｅｒ＿ｌｅｖｅｌシンタックス構造の一部である。ｐｒｏｆｉｌｅ＿ｔｉｅｒ＿ｌｅｖｅｌシンタックス構造は、ＨＥＶＣコーディング規格に準拠し得る。シンタックス要素は、ｇｅｎｅｒａｌ＿ｒｅｓｅｒｖｅｄ＿ｚｅｒｏ＿１６ｂｉｔｓシンタックス要素であり得る。以下の表１に、プロファイル、ティア、およびレベルシンタックス構造の一例を与える。
【表１】
2018125863.tif 000003
【００９８】
[0102]シンタックス要素ｇｅｎｅｒａｌ＿ｐｒｏｆｉｌｅ＿ｓｐａｃｅは、両端値を含む０〜３１の範囲内のｉのすべての値についてｇｅｎｅｒａｌ＿ｐｒｏｆｉｌｅ＿ｉｄｃとｇｅｎｅｒａｌ＿ｐｒｏｆｉｌｅ＿ｃｏｍｐａｔｉｂｉｌｉｔｙ＿ｆｌａｇ［ｉ］との解釈についてのコンテキストを指定する。ｇｅｎｅｒａｌ＿ｐｒｏｆｉｌｅ＿ｓｐａｃｅの値は、ＨＥＶＣ勧告／インターナショナル規格に準拠するビットストリームでは０に等しくなるべきである。たとえば、ｇｅｎｅｒａｌ＿ｐｒｏｆｉｌｅ＿ｓｐａｃｅの値は、本開示の技法およびＨＥＶＣ  ＷＤ８に準拠するビットストリームでは０に等しくなるべきである。ｇｅｎｅｒａｌ＿ｐｒｏｆｉｌｅ＿ｓｐａｃｅの他の値は、ＩＴＵ−ＴおよびＩＳＯ／ＩＥＣによる将来の使用のために予約済みであり得る。いくつかの例では、ｇｅｎｅｒａｌ＿ｐｒｏｆｉｌｅ＿ｓｐａｃｅが０に等しくない場合、ビデオデコーダ３０はコード化ビデオシーケンスを無視すべきである。
【００９９】
[0103]シンタックス要素ｇｅｎｅｒａｌ＿ｔｉｅｒ＿ｆｌａｇは、ＨＥＶＣ  ＷＤ８の添付書類Ａ（Annex A）において指定されているようにｇｅｎｅｒａｌ＿ｌｅｖｅｌ＿ｉｄｃの解釈についてのティアコンテキストを指定する。
【０１００】
[0104]シンタックス要素ｇｅｎｅｒａｌ＿ｐｒｏｆｉｌｅ＿ｉｄｃは、ｇｅｎｅｒａｌ＿ｐｒｏｆｉｌｅ＿ｓｐａｃｅが０に等しくなるとき、添付書類Ａにおいて指定されているようにコード化ビデオシーケンスが準拠するプロファイルを示す。ＨＥＶＣ規格は、ビットストリームが添付書類Ａにおいて指定されるもの以外のｇｅｎｅｒａｌ＿ｐｒｏｆｉｌｅ＿ｉｄｃの値を含むべきでないことを示す。ｇｅｎｅｒａｌ＿ｐｒｏｆｉｌｅ＿ｉｄｃの他の値は、ＩＴＵ−Ｔおよび／またはＩＳＯ／ＩＥＣによる将来の使用のために予約済みである。
【０１０１】
[0105]１に等しいシンタックス要素ｇｅｎｅｒａｌ＿ｐｒｏｆｉｌｅ＿ｃｏｍｐａｔｉｂｉｌｉｔｙ＿ｆｌａｇ［ｉ］は、ｇｅｎｅｒａｌ＿ｐｒｏｆｉｌｅ＿ｓｐａｃｅが０に等しくなるとき、添付書類Ａにおいて指定されているようにコード化ビデオシーケンスがｉに等しいｇｅｎｅｒａｌ＿ｐｒｏｆｉｌｅ＿ｉｄｃによって示されるプロファイルに準拠することを示す。ｇｅｎｅｒａｌ＿ｐｒｏｆｉｌｅ＿ｓｐａｃｅが０に等しくなるとき、ｇｅｎｅｒａｌ＿ｐｒｏｆｉｌｅ＿ｃｏｍｐａｔｉｂｉｌｉｔｙ＿ｆｌａｇ［ｇｅｎｅｒａｌ＿ｐｒｏｆｉｌｅ＿ｉｄｃ］は１に等しくなる。ｇｅｎｅｒａｌ＿ｐｒｏｆｉｌｅ＿ｃｏｍｐａｔｉｂｉｌｉｔｙ＿ｆｌａｇ［ｉ］の値は、添付書類Ａにおいてｇｅｎｅｒａｌ＿ｐｒｏｆｉｌｅ＿ｉｄｃの許容値として指定されていないｉの任意の値について０に等しくなる。
【０１０２】
[0106]シンタックス要素ｇｅｎｅｒａｌ＿ｒｅｓｅｒｖｅｄ＿ｚｅｒｏ＿１６ｂｉｔｓは、この勧告／国際規格に準拠するビットストリームでは０に等しくなるべきである。ｇｅｎｅｒａｌ＿ｒｅｓｅｒｖｅｄ＿ｚｅｒｏ＿１６ｂｉｔｓの他の値は、ＩＴＵ−ＴおよびＩＳＯ／ＩＥＣによる将来の使用のために予約済みである。デコーダは、ｇｅｎｅｒａｌ＿ｒｅｓｅｒｖｅｄ＿ｚｅｒｏ＿１６ｂｉｔｓの値を無視すべきである。
【０１０３】
[0107]ＩＳＯベースメディアファイルフォーマット、ＭＰＥＧ−２システム、ＨＴＴＰを介した動的適応ストリーミング（ＤＡＳＨ）、リアルタイムトランスポートプロトコル（ＲＴＰ）を含むトランスポート規格は、ｐｒｏｆｉｌｅ＿ｔｉｅｒ＿ｌｅｖｅｌシンタックス構造の少なくとも最初の数ビットを理解するように設計され得る。ただし、シーケンスパラメータセットまたはビデオパラメータセット中の他の追加情報はアクセスしにくい。したがって、現在のＨＥＶＣ設計は、ビデオプロパティへの軽量アクセスをサポートしない。
【０１０４】
[0108]本開示の技法に従ってコーディングされたビットストリームは、ビデオプロパティへの軽量アクセスをサポートする。いくつかの例では、１つまたは複数のコーディングツールイネーブルビットは、１つまたは複数のエンコーダデコーダ（コーデック）プロパティを示すためにｇｅｎｅｒａｌ＿ｒｅｓｅｒｖｅｄ＿ｚｅｒｏ＿１６ｂｉｔｓで提示される。たとえば、ビデオデコーダ３０は、ビットストリーム中でコード化プロパティを受信し、プロパティを決定するためにシンタックス要素を復号する。いくつかの例では、コーデックプロパティを示すためにシンタックス要素のビットのすべてよりも少ないビットが使用される。
【０１０５】
[0109]本明細書で説明する技法によれば、コード化ビデオシーケンス、ビットストリーム、またはエレメンタリストリームのために明示的重み付け予測（デフォルト値（１／２，１／２）（１，０）または（０，１）ではない）がイネーブルにされているかどうか、コード化ビデオシーケンス、ビットストリーム、またはエレメンタリストリームのためにタイルがイネーブルにされているかどうかのコーデックプロパティのうちの１つまたは複数を示すためにｇｅｎｅｒａｌ＿ｒｅｓｅｒｖｅｄ＿ｚｅｒｏ＿１６ｂｉｔｓ中のビットのうちの１つが使用され得る。代替的に、または追加として、ｇｅｎｅｒａｌ＿ｒｅｓｅｒｖｅｄ＿ｚｅｒｏ＿１６ｂｉｔｓ中のビットは、タイルが単独で復号可能にされているどうか、コード化ビデオシーケンス、ビットストリーム、またはエレメンタリストリームのためにウエーブフロントがイネーブルにされているかどうか、コード化ビデオシーケンス、ビットストリーム、またはエレメンタリストリームのために時間動きベクトル予測がイネーブルにされているかどうか、スケーリングリストデータが存在し、コード化ビデオシーケンス、ビットストリーム、またはエレメンタリストリームのために使用されるかどうか、ならびに現在のビットストリームが８ビットであるかどうかを示し得る。いくつかの例では、上記の指示のすべては、互いに無関係であるか、または互いと組み合わせて使用され得る。いくつかの例では、１つまたは複数のコーデックプロパティを搬送するためにシンタックス要素のただ１つのビットが使用される。たとえば、スケーリングリストデータが存在するかどうかをシグナリングするためにｇｅｎｅｒａｌ＿ｒｅｓｅｒｖｅｄ＿ｚｅｒｏ＿１６ｂｉｔｓの単一ビットが使用される。他の例では、１つまたは複数のコーデックプロパティを搬送するために２つ以上のビットが使用される。
【０１０６】
[0110]以下の表２に、プロファイル、ティア、およびレベルシンタックス要素の例示的なシンタックスを与える。
【表２−１】
2018125863.tif 000004
【表２−２】
2018125863.tif 000005
【０１０７】
[0111]１に等しいシンタックス要素ｇｅｎｅｒａｌ＿ｎｏ＿ｗｅｉｇｈｔｅｄ＿ｐｒｅｄｉｃｔｉｏｎ＿ｆｌａｇは、コード化ビデオシーケンス中で、ピクチャが重み付け予測を用いてコーディングされず、シンタックス要素ｗｅｉｇｈｔｅｄ＿ｐｒｅｄ＿ｆｌａｇおよびｗｅｉｇｈｔｅｄ＿ｂｉｐｒｅｄ＿ｆｌａｇが、ピクチャパラメータセット（ＰＰＳ）中で０に等しくなるべきであることを示す。０に等しいシンタックス要素ｇｅｎｅｒａｌ＿ｎｏ＿ｗｅｉｇｈｔｅｄ＿ｐｒｅｄｉｃｔｉｏｎ＿ｆｌａｇは、コード化ビデオシーケンス中で、重み付け予測が使用され得ることを示す。
【０１０８】
[0112]１に等しいシンタックス要素ｇｅｎｅｒａｌ＿ｎｏ＿ｔｉｌｅｓ＿ｆｌａｇは、各ピクチャ中の１つのタイルが、コード化ビデオシーケンス中の各ピクチャについて使用され、シンタックス要素ｔｉｌｅｓ＿ｅｎａｂｌｅｄ＿ｆｌａｇはピクチャパラメータセット中で０に等しくなるべきであることを示す。ｇｅｎｅｒａｌ＿ｎｏ＿ｔｉｌｅｓ＿ｆｌａｇが０に等しいとき、フラグは、ピクチャ中に２つ以上のタイルがあり得ることを示す。
【０１０９】
[0113]１に等しいシンタックス要素ｇｅｎｅｒａｌ＿ｎｏ＿ｔｉｌｅ＿ｄｅｐｅｄｅｎｃｙ＿ｆｌａｇは、２つ以上のタイルが使用されるとき、タイル間に相互関係がなく、ピクチャパラメータセット中のシンタックス要素ｌｏｏｐ＿ｆｉｌｔｅｒ＿ａｃｒｏｓｓ＿ｔｉｌｅｓ＿ｅｎａｂｌｅｄ＿ｆｌａｇが０に等しくなるべきであることを示す。ｇｅｎｅｒａｌ＿ｎｏ＿ｔｉｌｅ＿ｄｅｐｅｄｅｎｃｙ＿ｆｌａｇが０に等しいとき、フラグは、２つ以上のタイルが使用されるとき、タイル間に相互関係があり得ることを示す。
【０１１０】
[0114]シンタックス要素ｇｅｎｅｒａｌ＿ｎｏ＿ｔｉｌｅｓ＿ｆｌａｇが１に等しいとき、シンタックス要素ｇｅｎｅｒａｌ＿ｎｏ＿ｔｉｌｅ＿ｄｅｐｅｄｅｎｃｙ＿ｆｌａｇは０になるように予約される。
【０１１１】
[0115]１に等しいシンタックス要素ｇｅｎｅｒａｌ＿ｎｏ＿ｔｍｖｐ＿ｆｌａｇは、時間動きベクトル予測がコード化ビデオシーケンス全体のためにディセーブル（disable）になっておらず、シーケンスパラメータセット（ＳＰＳ）中でｓｐｓ＿ｔｅｍｐｏｒａｌ＿ｍｖｐ＿ｅｎａｂｌｅ＿ｆｌａｇが０に等しくなることを示す。０に等しいシンタックス要素ｇｅｎｅｒａｌ＿ｎｏ＿ｔｍｖｐ＿ｆｌａｇは、時間動きベクトル予測がイネーブルにされ得ないことを示す。
【０１１２】
[0116]１に等しいシンタックス要素ｇｅｎｅｒａｌ＿ｎｏ＿ｓｃａｌｉｎｇ＿ｌｉｓｔ＿ｆｌａｇは、コード化ビデオシーケンス全体の任意のピクチャの変換係数のスケーリングプロセスのためにスケーリングリストが使用されず、シンタックス要素ｓｃａｌｉｎｇ＿ｌｉｓｔ＿ｅｎａｂｌｅ＿ｆｌａｇが１に等しくなるべきであることを示す。シンタックス要素ｇｅｎｅｒａｌ＿ｎｏ＿ｓｃａｌｉｎｇ＿ｌｉｓｔ＿ｆｌａｇを０に等しく設定することは、スケーリングリストが使用され得ることを示す。
【０１１３】
[0117]１に等しいシンタックス要素ｇｅｎｅｒａｌ＿ｂｉｔ＿ｄｅｐｔｈ＿ｈｉｇｈｅｒ＿８＿ｆｌａｇは、コード化ビデオシーケンス全体のピクチャのために８に等しいビット深度のみが使用されることを示し、０に等しいｇｅｎｅｒａｌ＿ｂｉｔ＿ｄｅｐｔｈ＿ｈｉｇｈｅｒ＿８＿ｆｌａｇは、コード化ビデオシーケンス中でピクチャのためにより高い（さらにはより低い）ビット深度が使用され得ることを示す。
【０１１４】
[0118]上記で説明したシンタックス要素ｇｅｎｅｒａｌ＿ｎｏ＿ｗｅｉｇｈｔｅｄ＿ｐｒｅｄｉｃｔｉｏｎ＿ｆｌａｇ、ｇｅｎｅｒａｌ＿ｎｏ＿ｔｉｌｅｓ＿ｆｌａｇ、ｇｅｎｅｒａｌ＿ｎｏ＿ｔｉｌｅ＿ｄｅｐｅｄｅｎｃｙ＿ｆｌａｇ、ｇｅｎｅｒａｌ＿ｎｏ＿ｔｍｖｐ＿ｆｌａｇ、ｇｅｎｅｒａｌ＿ｎｏ＿ｓｃａｌｉｎｇ＿ｌｉｓｔ＿ｆｌａｇおよびｇｅｎｅｒａｌ＿ｂｉｔ＿ｄｅｐｔｈ＿ｈｉｇｈｅｒ＿８＿ｆｌａｇのうちの１つまたは複数は、予約済みビットシンタックス要素の１つまたは複数のビットの一部としてコーディングされ得る。ビデオデコーダ３０は、符号化ビデオストリームを復号する際に使用するためのフラグの値を決定するために、予約済みビットシンタックス要素の１つまたは複数のビットを復号し得る。このようにして、シグナリングされたコーデックプロパティは、コード化ビデオシーケンス、コード化ビデオシーケンスのビットストリーム、またはコード化ビデオシーケンスのエレメンタリストリームについて、明示的重み付け予測がイネーブルにされているかどうか、タイルがイネーブルにされているかどうか、ウエーブフロントがイネーブルにされているかどうか、時間動きベクトル予測がイネーブルにされているかどうか、あるいはスケーリングリストデータが存在し、コード化ビデオシーケンス、ビットストリーム、またはエレメンタリストリームのために使用されるかどうかのうちの１つまたは複数を示し得る。いくつかの例では、シグナリングされたコーデックプロパティは、イネーブルにされている場合、任意のタイルが単独で復号可能にされているかどうかをさらに示す。
【０１１５】
[0119]いくつかの例では、ｐｒｏｆｉｌｅ＿ｔｉｅｒ＿ｌｅｖｅｌシンタックス構造は、コード化ビデオシーケンスの複数のレイヤに適用可能な情報を含むビデオパラメータセット（ＶＰＳ）中に含まれる。いくつかの例では、１つまたは複数のコーディングツールイネーブルビットは、シーケンスパラメータセット（ＳＰＳ）シンタックス情報中に含まれず、ｇｅｎｅｒａｌ＿ｒｅｓｅｒｖｅｄ＿ｚｅｒｏ＿１６ｂｉｔｓ予約済みビットシンタックス要素の一部として含まれる。いくつかの例では、予約済みビットシンタックス要素は、ｇｅｎｅｒａｌ＿ｒｅｓｅｒｖｅｄ＿ｚｅｒｏ＿１６ｂｉｔｓである。いくつかの例では、１つまたは複数のビットは、予約済みビットシンタックス要素の一部としてｇｅｎｅｒａｌ＿ｎｏ＿ｗｅｉｇｈｔｅｄ＿ｐｒｅｄｉｃｔｉｏｎ＿ｆｌａｇフラグとｇｅｎｅｒａｌ＿ｎｏ＿ｔｉｌｅｓ＿ｆｌａｇフラグとを含み得る。いくつかの例では、１つまたは複数のコーディングツールイネーブルビットは、ビデオパラメータセット（ＶＰＳ）シンタックス情報とシーケンスパラメータセット（ＳＰＳ）シンタックス情報とを含む、パラメータセット中のシンタックス構造外の他のシンタックス要素として含まれない。
【０１１６】
[0120]以下の表３に、ｐｒｏｆｉｌｅ＿ｔｉｅｒ＿ｌｅｖｅｌシンタックス要素についての代替例を示す。この例では、どのツールがイネーブルにされているか、またはディセーブルにされているかを示すシーケンスパラメータセット中のフラグは、現在の位置から除去されるが、ｇｅｎｅｒａｌ＿ｒｅｓｅｒｖｅｄ＿ｚｅｒｏ＿１６ｂｉｔｓの一部として追加され得る。代替として、シーケンスパラメータセット中のフラグの選択された１つまたは複数のフラグのみが除去され、ｇｅｎｅｒａｌ＿ｒｅｓｅｒｖｅｄ＿ｚｅｒｏ＿１６ｂｉｔｓの一部として含まれる。代替的に、シーケンスパラメータセットから除去されたそれらのフラグは、ｇｅｎｅｒａｌ＿ｎｏ＿ｗｅｉｇｈｔｅｄ＿ｐｒｅｄｉｃｔｉｏｎ＿ｆｌａｇ、ｇｅｎｅｒａｌ＿ｎｏ＿ｔｉｌｅｓ＿ｆｌａｇなどの他のフラグとともに、ｇｅｎｅｒａｌ＿ｒｅｓｅｒｖｅｄ＿ｚｅｒｏ＿１６ｂｉｔｓの一部として共存し得る。たとえば、通常はＳＰＳまたはＶＰＳ中の他の場所でシグナリングされたであろう１つまたは複数のフラグは、ｇｅｎｅｒａｌ＿ｒｅｓｅｒｖｅｄ＿ｚｅｒｏ＿１６ｂｉｔｓに追加され、通常はそれらがＳＰＳまたはＶＰＳ中でシグナリングされたであろう場所にそれらを維持するか、あるいはそこから除去し得る。
【０１１７】
[0121]ｐｒｏｆｉｌｅ＿ｔｉｅｒ＿ｌｅｖｅｌのこの例は、ｓｃａｌｉｎｇ＿ｌｉｓｔ＿ｅｎａｂｌｅ＿ｆｌａｇ、ａｍｐ＿ｅｎａｂｌｅｄ＿ｆｌａｇ、ｓａｍｐｌｅ＿ａｄａｐｔｉｖｅ＿ｏｆｆｓｅｔ＿ｅｎａｂｌｅｄ＿ｆｌａｇ、ｓｐｓ＿ｔｅｍｐｏｒａｌ＿ｍｖｐ＿ｅｎａｂｌｅ＿ｆｌａｇ、およびｐｃｍ＿ｅｎａｂｌｅｄ＿ｆｌａｇのシンタックス要素を含む。
【表３−１】
2018125863.tif 000006
【表３−２】
2018125863.tif 000007
【０１１８】
[0122]以下の表４に、例示的なシーケンスパラメータセットローバイトシーケンスペイロード（ＲＢＳＰ：raw byte sequence payload）シンタックスを与える。このｓｅｑ＿ｐａｒａｍｅｔｅｒ＿ｓｅｔ＿ｒｂｓｐ（）シンタックスの例では、いくつかのシンタックス要素がＨＥＶＣ  ＷＤ８における同様の例から除去されている。これらは、ｐｃｍ＿ｅｎａｂｌｅｄ＿ｆｌａｇ、ｓｃａｌｉｎｇ＿ｌｉｓｔ＿ｅｎａｂｌｅ＿ｆｌａｇ、ａｍｐ＿ｅｎａｂｌｅｄ＿ｆｌａｇ、ｓａｍｐｌｅ＿ａｄａｐｔｉｖｅ＿ｏｆｆｓｅｔ＿ｅｎａｂｌｅｄ＿ｆｌａｇ、およびｓｐｓ＿ｔｅｍｐｏｒａｌ＿ｍｖｐ＿ｅｎａｂｌｅ＿ｆｌａｇを含む。これらのフラグは、現在、ｐｒｏｆｉｌｅ＿ｔｉｅｒ＿ｌｅｖｅｌシンタックス構造のｇｅｎｅｒａｌ＿ｒｅｓｅｒｖｅｄ＿ｚｅｒｏ＿１６ｂｉｔｓ予約済みビット中に提示され得、ビットスチーム中の他の場所にそのような情報を複製する必要がないので、それらは、ＲＢＳＰシンタックスから除去され得る。これらの削除されたシンタックス要素は、この例ではそれらがｓｅｑ＿ｐａｒａｍｅｔｅｒ＿ｓｅｔ＿ｒｂｓｐ（）中に含まれないことを示すために取消し線を用いて表４中に含まれている。
【表４−１】
2018125863.tif 000008
【表４−２】
2018125863.tif 000009
【表４−３】
2018125863.tif 000010
【０１１９】
[0123]図５は、本開示で説明する技法による、ビデオシーケンスを符号化する例示的な方法を示すフローチャートである。図５の方法は、図１および図２のビデオデコーダ２０など、本明細書で説明する任意のビデオ符号化デバイスによって実行され得る。例示的な方法は、符号化されるべきビデオシーケンスを決定することを含む（２００）。ビデオエンコーダ２０は、たとえば、ビデオソース１８からのビットストリーム中でビデオシーケンスを受信し得る。
【０１２０】
[0124]本方法はまた、ビデオエンコーダによって、ビデオシーケンスを符号化することを含み得る（２０２）。たとえば、ビデオエンコーダ２０は、１つまたは複数のコーディングツールを使用してビデオシーケンスを符号化し得る。本方法は、１つまたは複数のコーディングツールイネーブルビットとして符号化ビデオシーケンスについての予約済みビットシンタックス要素の１つまたは複数のビットを符号化すること、をさらに含み、予約済みビットシンタックス要素は、プロファイルおよびレベル情報を含むシンタックス構造の一部であり、１つまたは複数のコーディングツールイネーブルビットは、ビデオエンコーダによる使用のために１つまたは複数のコーディングツールがイネーブルにされているかどうかを示す（２０４）。プロファイルおよびレベル情報を含むシンタックス構造は、ｐｒｏｆｉｌｅ＿ｔｉｅｒ＿ｌｅｖｅｌシンタックス構造であり得る。たとえば、予約済みビットシンタックス要素は、プロファイルおよびレベル情報を含むビットに連続する複数のビットを有する。すなわち、コード化ビデオシーケンスのビットストリーム中で、１つまたは複数のコーディングイネーブルツールビットを含む、予約済みビットシンタックス要素のビットは、プロファイルおよびレベル情報を示す１つまたは複数のビットに連続する。別の例では、予約済みビットシンタックス要素は、プロファイル、ティア、およびレベル情報を含むビットに連続する複数のビットを有する。
【０１２１】
[0125]ビデオエンコーダ２０は、コード化プロパティをシグナリングするためにシンタックス要素を符号化する。いくつかの例では、１つまたは複数のコーディングツールイネーブルビットは、１つまたは複数のエンコーダデコーダ（コーデック）プロパティを示す。いくつかの例では、ビデオシーケンスを符号化することは、１つまたは複数のコーディングツールのサブセットを使用してビデオシーケンスを符号化することをさらに含む。予約済みビットシンタックス要素の１つまたは複数のビットを符号化することは、１つまたは複数のコーディングツールイネーブルビットが、１つまたは複数のコーディングツールのサブセットがイネーブルにされていることを示すように、１つまたは複数のコーディングツールイネーブルビットを符号化することをさらに含み得る。ビデオエンコーダ２０は、ビデオシーケンスを符号化するためにビデオエンコーダ２０が使用しなかった１つまたは複数のコーディングツールのいずれかに関連する１つまたは複数のコーディングツールイネーブルビットを、当該１つまたは複数のコーディングツールがディセーブルにされていることを示すために、符号化する。予約済みビットシンタックス要素は、ＨＥＶＣ  ＷＤ８における将来の使用のための予約済みであるビットのセット、ｇｅｎｅｒａｌ＿ｒｅｓｅｒｖｅｄ＿ｚｅｒｏ＿１６ｂｉｔｓであり得る。
【０１２２】
[0126]予約済みビットシンタックス要素は、ｐｒｏｆｉｌｅ＿ｔｉｅｒ＿ｌｅｖｅｌシンタックス構造の一部であり得る。ｐｒｏｆｉｌｅ＿ｔｉｅｒ＿ｌｅｖｅｌシンタックス構造は、ＳＰＳ中に、または代替的に、ＶＰＳ中にある。たとえば、シンタックス構造は、ＨＥＶＣ規格に準拠するｐｒｏｆｉｌｅ＿ｔｉｅｒ＿ｌｅｖｅｌシンタックス構造であり得、予約済みビットシンタックス要素は、ｐｒｏｆｉｌｅ＿ｔｉｅｒ＿ｌｅｖｅｌシンタックス構造のｇｅｎｅｒａｌ＿ｒｅｓｅｒｖｅｄ＿ｚｅｒｏ＿１６ｂｉｔｓ予約済みビットシンタックス要素であり得る。
【０１２３】
[0127]ｐｒｏｆｉｌｅ＿ｔｉｅｒ＿ｌｅｖｅｌシンタックス構造は、符号化ビデオシーケンスの複数のレイヤに適用可能な情報を含むビデオパラメータセット（ＶＰＳ）中に含まれ得る。代替例では、ビデオエンコーダ２０は、シーケンスパラメータセット（ＳＰＳ）シンタックス情報中にある１つまたは複数のコーディングツールイネーブルビットを含み得る。他の例では、１つまたは複数のコーディングツールイネーブルビットは、ＳＰＳシンタックス情報中に含まれないが、ｇｅｎｅｒａｌ＿ｒｅｓｅｒｖｅｄ＿ｚｅｒｏ＿１６ｂｉｔｓ予約済みビットシンタックス要素の一部として含まれる。ＳＰＳは、ビデオデータの各レイヤに必要とされ、その結果、複数のＳＰＳがコーディングされ、送信される。
【０１２４】
対照的に、ＶＰＳは、ビデオデータのすべてのレイヤについて１回だけ送られる。したがって、ＳＰＳ中ではなくＶＰＳ中にｐｒｏｆｉｌｅ＿ｔｉｅｒ＿ｌｅｖｅｌシンタックス構造を含めると、送られる全体的なビット数が低減する。言い換えれば、本開示の一例では、（ビデオデータのレイヤごとに）各ＳＰＳ中にｐｒｏｆｉｌｅ＿ｔｉｅｒ＿ｌｅｖｅｌシンタックス構造を含める必要はない。代わりに、単一のＶＰＳ中の単一のｐｒｏｆｉｌｅ＿ｔｉｅｒ＿ｌｅｖｅｌシンタックス構造が与えられ得る。一例では、ｐｒｏｆｉｌｅ＿ｔｉｅｒ＿ｌｅｖｅｌシンタックス構造は、コード化ビデオシーケンスの複数のレイヤに適用可能な情報を含むＶＰＳ中に含まれる。いくつかの例では、１つまたは複数のコーディングツールイネーブルビットは、ビデオパラメータセット（ＶＰＳ）シンタックス情報とシーケンスパラメータセット（ＳＰＳ）シンタックス情報とを含む、パラメータセット中のシンタックス構造外の他のシンタックス要素として含まれない。すなわち、１つまたは複数のコーディングツールイネーブルビットは、シンタックス構造の外で繰り返されない。
【０１２５】
[0128]１つまたは複数のコーディングツールイネーブルビットは、符号化ビデオシーケンス、符号化ビデオシーケンスのビットストリーム、または符号化ビデオシーケンスのエレメンタリストリーム、あるいはコード化ビデオシーケンスのオペレーションポイントについて、明示的重み付け予測がイネーブルにされているかどうか、タイルがイネーブルにされているかどうか、ウエーブフロントがイネーブルにされているかどうか、時間動きベクトル予測がイネーブルにされているかどうか、あるいはスケーリングリストデータが存在し、コード化ビデオシーケンス、ビットストリーム、またはエレメンタリストリームのために使用されるかどうかのうちの１つまたは複数を示し得る。１つまたは複数のコーディングツールイネーブルビットは、タイルがイネーブルにされている場合、任意のタイルが単独でコード化可能であることをさらに示し得る。いくつかの例では、１つまたは複数のコーディングツールイネーブルビットは、符号化ビデオシーケンスのビットストリームが８ビットのビット深度を有するかどうかを示す。
【０１２６】
[0129]シグナリングされたコーデックプロパティは、ビットストリームが８ビットであるかどうかを示し得る。他の例では、シグナリングされたコーデックプロパティは、時間動きベクトル予測がイネーブルにされていないことを示す。いくつかの例では、ｇｅｎｅｒａｌ＿ｒｅｓｅｒｖｅｄ＿ｚｅｒｏ＿１６ｂｉｔｓシンタックス要素は、ｐｒｏｆｉｌｅ＿ｔｉｅｒ＿ｌｅｖｅｌシンタックス構造の一部である。
【０１２７】
[0130]いくつかの例では、シーケンスパラメータセットシンタックス情報中の１つまたは複数のフラグは、シーケンスパラメータセットシンタックス情報中に含まれず、ｇｅｎｅｒａｌ＿ｒｅｓｅｒｖｅｄ＿ｚｅｒｏ＿１６ｂｉｔｓシンタックス要素の一部として含まれる。別の例では、シーケンスパラメータセットシンタックス情報中の１つまたは複数のフラグは、ビデオパラメータセットシンタックス情報中に含まれず、ｇｅｎｅｒａｌ＿ｒｅｓｅｒｖｅｄ＿ｚｅｒｏ＿１６ｂｉｔｓシンタックス要素の一部として含まれる。シーケンスパラメータセットシンタックス情報中でどのツールがイネーブルにされているか、またはディセーブルにされているか示す１つまたは複数のフラグは、ｇｅｎｅｒａｌ＿ｒｅｓｅｒｖｅｄ＿ｚｅｒｏ＿１６ｂｉｔｓシンタックス要素の一部として含まれ得る。一例では、１つまたは複数のフラグ、ｇｅｎｅｒａｌ＿ｎｏ＿ｗｅｉｇｈｔｅｄ＿ｐｒｅｄｉｃｔｉｏｎ＿ｆｌａｇフラグおよびｇｅｎｅｒａｌ＿ｎｏ＿ｔｉｌｅｓ＿ｆｌａｇフラグは、ｇｅｎｅｒａｌ＿ｒｅｓｅｒｖｅｄ＿ｚｅｒｏ＿１６ｂｉｔｓシンタックス要素の一部として含まれる。
【０１２８】
[0131]このようにして、ビデオエンコーダ２０は、いくつかのビデオプロパティが、ｐｒｏｆｉｌｅ＿ｔｉｅｒ＿ｌｅｖｅｌシンタックス構造を理解するように設計されたトランスポート規格を使用してデバイスによってアクセスされ得るように、ビデオシーケンスを符号化し得る。
【０１２９】
[0132]本明細書で説明する様々な例では、ｇｅｎｅｒａｌ＿ｒｅｓｅｒｖｅｄ＿ｚｅｒｏ＿１６ｂｉｔｓ予約済みビット中で利用可能な任意のビット数（たとえば、最高１６ビットの予約済みビット総数）が、選択されたコーディングツールまたは他のビデオプロパティのフラグのために使用され得る。たとえば、ビデオエンコーダ２０が、本開示の技法によるフラグを用いてシグナリングされ得る８つのコーディングツールを使用する場合、ビデオエンコーダ２０は、ｐｒｏｆｉｌｅ＿ｔｉｅｒ＿ｌｅｖｅｌシンタックス構造の８ビットを符号化し得る。他の例では、ｇｅｎｅｒａｌ＿ｒｅｓｅｒｖｅｄ＿ｚｅｒｏ＿１６ｂｉｔｓ予約済みビットの最初のｎ個のビットは、ｎ個のフラグを示すために使用され得、ここにおいて、ｎは、両端値を含む０と１６との間の整数。他の例では、ｎ個のビットは、必ずしも最初のｎ個のビットであるとは限らないことがある。さらに、フラグのために使用されるｎ個のビットは、連続することも、連続しないこともある。
【０１３０】
[0133]例によっては、本明細書で説明された技法のうちいずれかの、いくつかの行為またはイベントは、異なる順番で実行される可能性があり、追加され、統合され、または完全に除外され得る（たとえば、すべての説明された行為またはイベントが、本技法の実施のために必要であるとは限らない）ことを認識されたい。さらに、いくつかの例では、行為またはイベントは、連続的にではなく、同時に、たとえば、マルチスレッド処理、割込み処理、または複数のプロセッサを通じて実行され得る。
【０１３１】
[0134]１つまたは複数の例では、説明された機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。ソフトウェアで実装される場合、機能は、１つまたは複数の命令またはコードとしてコンピュータ可読媒体上に記憶されるか、あるいはコンピュータ可読媒体を介して送信され、ハードウェアベースの処理ユニットによって実行され得る。コンピュータ可読媒体は、たとえば、通信プロトコルに従って、ある場所から別の場所へのコンピュータプログラムの転送を可能にする任意の媒体を含むデータ記憶媒体または通信媒体などの有形媒体に対応するコンピュータ可読記憶媒体を含み得る。このようにして、コンピュータ可読媒体は、概して、（１）非一時的である有形コンピュータ可読記憶媒体、あるいは（２）信号または搬送波などの通信媒体に対応し得る。データ記憶媒体は、本開示で説明した技法の実装のための命令、コードおよび／またはデータ構造を取り出すために１つまたは複数のコンピュータあるいは１つまたは複数のプロセッサによってアクセスされ得る任意の利用可能な媒体であり得る。コンピュータプログラム製品は、コンピュータ可読媒体を含み得る。
【０１３２】
[0135]限定ではなく例として、そのようなコンピュータ可読記憶媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ（登録商標）、ＣＤ−ＲＯＭまたは他の光ディスクストレージ、磁気ディスクストレージ、または他の磁気ストレージデバイス、フラッシュメモリ、あるいは命令またはデータ構造の形態の所望のプログラムコードを記憶するために使用され得、コンピュータによってアクセスされ得る、任意の他の媒体を備えることができる。また、いかなる接続もコンピュータ可読媒体と適切に呼ばれる。たとえば、命令が、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者回線（ＤＳＬ）、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、ＤＳＬ、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。ただし、コンピュータ可読記憶媒体およびデータ記憶媒体は、接続、搬送波、信号、または他の一時的媒体を含まないが、代わりに非一時的有形記憶媒体を対象とすることを理解されたい。本明細書で使用するディスク（disk）およびディスク（disc）は、コンパクトディスク（disc）（ＣＤ）、レーザディスク（登録商標）（disc）、光ディスク（disc）、デジタル多用途ディスク（disc）（ＤＶＤ）、フロッピー（登録商標）ディスク（disk）およびブルーレイディスク（disc）を含み、ディスク（disk）は、通常、データを磁気的に再生し、ディスク（disc）は、データをレーザで光学的に再生する。上記の組合せもコンピュータ可読媒体の範囲内に含めるべきである。
【０１３３】
[0136]命令は、１つまたは複数のデジタル信号プロセッサ（ＤＳＰ）などの１つまたは複数のプロセッサ、汎用マイクロプロセッサ、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブル論理アレイ（ＦＰＧＡ）、あるいは他の等価な集積回路またはディスクリート論理回路によって実行され得る。したがって、本明細書で使用する「プロセッサ」という用語は、前述の構造、または本明細書で説明する技法の実装に好適な他の構造のいずれかを指す。さらに、いくつかの態様では、本明細書で説明した機能は、符号化および復号のために構成された専用のハードウェアおよび／またはソフトウェアモジュール内に与えられ得、あるいは複合コーデックに組み込まれ得る。また、本技法は、１つまたは複数の回路または論理要素中に十分に実装され得る。
【０１３４】
[0137]本開示の技法は、ワイヤレスハンドセット、集積回路（ＩＣ）、またはＩＣのセット（たとえば、チップセット）を含む、多種多様なデバイスまたは装置において実装され得る。本開示では、開示する技法を実行するように構成されたデバイスの機能的態様を強調するために様々な構成要素、モジュール、またはユニットについて説明したが、それらの構成要素、モジュール、またはユニットを、必ずしも異なるハードウェアユニットによって実現する必要があるとは限らない。むしろ、上記で説明したように、様々なユニットが、好適なソフトウェアおよび／またはファームウェアとともに、上記で説明した１つまたは複数のプロセッサを含めて、コーデックハードウェアユニットにおいて組み合わせられるか、または相互動作ハードウェアユニットの集合によって与えられ得る。
【０１３５】
[0138]様々な例について説明してきた。これらおよび他の例は以下の特許請求の範囲内に入る。
【図１】
2018125863.tif 000011
【図２】
2018125863.tif 000012
【図３】
2018125863.tif 000013
【図４】
2018125863.tif 000014
【図５】
2018125863.tif 000015
【手続補正書】
【提出日】平成30年3月28日(2018.3.28)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ビデオデータを復号する方法であって、
ビデオデコーダによって、コード化ビデオシーケンスを受信することと、
１つまたは複数のコーディングツールイネーブルビットとして前記コード化ビデオシーケンスについての１つまたは複数のビットを復号することと、ここで、前記１つまたは複数のビットは、プロファイルおよびレベルシンタックス構造の一部であり、前記１つまたは複数のコーディングツールイネーブルビットは、前記コード化ビデオシーケンスを復号する際に前記ビデオデコーダによる使用のために１つまたは複数のコーディングツールがイネーブルにされているかどうかを示す、
を備え、
前記１つまたは複数のコーディングツールイネーブルビットは、前記コード化ビデオシーケンス中で重み付け予測が使用されるかどうかを示す第１のビットと、前記コード化ビデオシーケンス中の各ピクチャについて１つのタイルが使用されるか、２つ以上のタイルが使用されるかを示す第２のビットとのうちの少なくとも１つを含み、
前記第１のビットは、重み付け予測がイネーブルにされているかどうかを示すピクチャパラメータセット（ＰＰＳ）中のフラグの値を示し、前記第２のビットは、タイルがイネーブルにされているかどうかを示す前記ＰＰＳ中のフラグの値を示す、方法。
【請求項２】
ビデオデータを符号化する方法であって、
符号化されるべきビデオシーケンスを決定することと、
ビデオエンコーダによって、前記ビデオシーケンスを符号化することと、
１つまたは複数のコーディングツールイネーブルビットとして前記符号化ビデオシーケンスについての１つまたは複数のビットを符号化することと、ここで、前記１つまたは複数のビットは、プロファイルおよびレベルシンタックス構造の一部であり、前記１つまたは複数のコーディングツールイネーブルビットは、前記ビデオシーケンスを符号化する際に前記ビデオエンコーダによる使用のために１つまたは複数のコーディングツールがイネーブルにされているかどうかを示す、
を備え、
前記１つまたは複数のコーディングツールイネーブルビットは、前記符号化ビデオシーケンス中で重み付け予測が使用されるかどうかを示す第１のビットと、前記符号化ビデオシーケンス中の各ピクチャについて、１つのタイルが使用されるか、または２つ以上のタイルが使用されるかを示す第２のビットとのうちの少なくとも１つを含み、
前記第１のビットは、重み付け予測がイネーブルにされているかどうかを示すピクチャパラメータセット（ＰＰＳ）中のフラグの値を示し、前記第２のビットは、タイルがイネーブルにされているかどうかを示す前記ＰＰＳ中のフラグの値を示す、方法。
【請求項３】
前記プロファイルおよびレベルシンタックス構造は、高効率ビデオコーディング（ＨＥＶＣ）規格に準拠するｐｒｏｆｉｌｅ＿ｔｉｅｒ＿ｌｅｖｅｌシンタックス構造であり、前記１つまたは複数のビットは、前記ｐｒｏｆｉｌｅ＿ｔｉｅｒ＿ｌｅｖｅｌシンタックス構造の予約済みビットシンタックス要素中に含まれる、請求項１に記載の方法。
【請求項４】
前記１つまたは複数のビットは、高効率ビデオコーディング（ＨＥＶＣ）規格に準拠するｐｒｏｆｉｌｅ＿ｔｉｅｒ＿ｌｅｖｅｌシンタックス構造の一部である、請求項１に記載の方法。
【請求項５】
前記１つまたは複数のコーディングツールイネーブルビットは、前記コード化ビデオシーケンス、前記コード化ビデオシーケンスのビットストリーム、あるいは前記コード化ビデオシーケンスのエレメンタリストリームまたはオペレーションポイントについて、明示的重み付け予測がイネーブルにされているかどうか、タイルがイネーブルにされているかどうか、ウエーブフロントがイネーブルにされているかどうか、時間動きベクトル予測がイネーブルにされているかどうか、あるいはスケーリングリストデータが存在し、前記コード化ビデオシーケンス、ビットストリーム、またはエレメンタリストリームのために使用されるかどうかのうちの１つまたは複数を示す、請求項１に記載の方法。
【請求項６】
前記１つまたは複数のコーディングツールイネーブルビットは、タイルがイネーブルにされている場合、任意のタイルが単独で復号可能かどうかをさらに示す、請求項５に記載の方法。
【請求項７】
前記１つまたは複数のコーディングツールイネーブルビットは、前記コード化ビデオシーケンスのビットストリームが８ビットのビット深度を有するかどうかを示す、請求項１に記載の方法。
【請求項８】
前記１つまたは複数のビットは、予約済みビットシンタックス要素中に含まれ、前記１つまたは複数のビットは、前記予約済みビットシンタックス要素の一部として、前記コード化ビデオシーケンス中で重み付け予測が使用されるか否かを示すｇｅｎｅｒａｌ＿ｎｏ＿ｗｅｉｇｈｔｅｄ＿ｐｒｅｄｉｃｔｉｏｎ＿ｆｌａｇフラグと、前記コード化ビデオシーケンス中の各ピクチャについて、１つのタイルが使用されるか、２つ以上のタイルが使用されるかを示すｇｅｎｅｒａｌ＿ｎｏ＿ｔｉｌｅｓ＿ｆｌａｇフラグとを含む、請求項１に記載の方法。
【請求項９】
前記１つまたは複数のビットは、高効率ビデオコーディング（ＨＥＶＣ）規格に準拠するｐｒｏｆｉｌｅ＿ｔｉｅｒ＿ｌｅｖｅｌシンタックス構造の一部である、請求項１に記載の方法。
【請求項１０】
前記１つまたは複数のコーディングツールイネーブルビットが前記ビデオデコーダによる使用のためにイネーブルにされていることを示す１つまたは複数のコーディングツールを使用して、前記コード化ビデオシーケンスを復号すること
をさらに備える、請求項１に記載の方法。
【請求項１１】
前記ビデオシーケンスを符号化することは、前記１つまたは複数のコーディングツールのサブセットを使用して前記ビデオシーケンスを符号化することをさらに備え、
前記１つまたは複数のビットを符号化することは、予約済みビットシンタックス要素の１つまたは複数のビットを符号化することを備え、
前記予約済みビットシンタックス要素の前記１つまたは複数のビットを符号化することは、前記１つまたは複数のコーディングツールイネーブルビットが、前記１つまたは複数のコーディングツールの前記サブセットがイネーブルにされていることを示すように、前記１つまたは複数のコーディングツールイネーブルビットを符号化することを備える、請求項２に記載の方法。
【請求項１２】
ビデオデータを復号するためのデバイスであって、前記デバイスはビデオデコーダを備え、前記ビデオデコーダは、
コード化ビデオシーケンスを受信することと、
１つまたは複数のコーディングツールイネーブルビットとして前記コード化ビデオシーケンスについての１つまたは複数のビットを復号することと、ここで、前記１つまたは複数のビットは、プロファイルおよびレベルシンタックス構造の一部であり、前記１つまたは複数のコーディングツールイネーブルビットは、前記コード化ビデオシーケンスを復号する際に前記ビデオデコーダによる使用のために１つまたは複数のコーディングツールがイネーブルにされているかどうかを示す、
を行うように構成され、
前記１つまたは複数のコーディングツールイネーブルビットは、前記コード化ビデオシーケンス中で重み付け予測が使用されるかどうかを示す第１のビットと、前記コード化ビデオシーケンス中の各ピクチャについて１つのタイルが使用されるか、または２つ以上のタイルが使用されるかを示す第２のビットとのうちの少なくとも１つを含み、
前記第１のビットは、重み付け予測がイネーブルにされているかどうかを示すピクチャパラメータセット（ＰＰＳ）中のフラグの値を示し、前記第２のビットは、タイルがイネーブルにされているかどうかを示す前記ＰＰＳ中のフラグの値を示す、デバイス。
【請求項１３】
ビデオデータを符号化するためのデバイスであって、前記デバイスはビデオエンコーダを備え、前記ビデオエンコーダは、
符号化されるべきビデオシーケンスを決定することと、
前記ビデオシーケンスを符号化することと、
１つまたは複数のコーディングツールイネーブルビットとして前記符号化ビデオシーケンスについての１つまたは複数のビットを符号化することと、ここで、前記１つまたは複数のビットは、プロファイルおよびレベルシンタックス構造の一部であり、前記１つまたは複数のコーディングツールイネーブルビットは、前記ビデオシーケンスを復号する際に前記ビデオエンコーダによる使用のために１つまたは複数のコーディングツールがイネーブルにされているかどうかを示す、
を行うように構成され、
前記１つまたは複数のコーディングツールイネーブルビットは、前記符号化ビデオシーケンス中で重み付け予測が使用されるかどうかを示す第１のビットと、前記符号化ビデオシーケンス中の各ピクチャについて、１つのタイルが使用されるか、または２つ以上のタイルが使用されるかを示す第２のビットとのうちの少なくとも１つを含み、
前記第１のビットは、重み付け予測がイネーブルにされているかどうかを示すピクチャパラメータセット（ＰＰＳ）中のフラグの値を示し、前記第２のビットは、タイルがイネーブルにされているかどうかを示す前記ＰＰＳ中のフラグの値を示す、デバイス。
【請求項１４】
コンピュータ可読記憶媒体であって、実行されたとき、ビデオデータをコーディングするためのデバイスのプロセッサに、請求項１、３−１０のいずれか１つの方法を行わせる命令を記憶したコンピュータ可読記憶媒体。
【請求項１５】
前記プロファイルおよびレベルシンタックス構造は、高効率ビデオコーディング（ＨＥＶＣ）規格に準拠するｐｒｏｆｉｌｅ＿ｔｉｅｒ＿ｌｅｖｅｌシンタックス構造であり、前記１つまたは複数のビットは、前記ｐｒｏｆｉｌｅ＿ｔｉｅｒ＿ｌｅｖｅｌシンタックス構造の予約済みビットシンタックス要素中に含まれる、請求項２に記載の方法。
【請求項１６】
前記１つまたは複数のビットは、高効率ビデオコーディング（ＨＥＶＣ）規格に準拠するｐｒｏｆｉｌｅ＿ｔｉｅｒ＿ｌｅｖｅｌシンタックス構造の一部である、請求項２に記載の方法。
【請求項１７】
前記１つまたは複数のコーディングツールイネーブルビットは、前記符号化ビデオシーケンス、前記符号化ビデオシーケンスのビットストリーム、あるいは前記符号化ビデオシーケンスのエレメンタリストリームまたはオペレーションポイントについて、明示的重み付け予測がイネーブルにされているかどうか、タイルがイネーブルにされているかどうか、ウエーブフロントがイネーブルにされているかどうか、時間動きベクトル予測がイネーブルにされているかどうか、あるいはスケーリングリストデータが存在し、前記符号化ビデオシーケンス、ビットストリーム、またはエレメンタリストリームのために使用されるかどうかのうちの１つまたは複数を示す、請求項２に記載の方法。
【請求項１８】
前記１つまたは複数のコーディングツールイネーブルビットは、タイルがイネーブルにされている場合、任意のタイルが単独で符号化可能かどうかをさらに示す、請求項１７に記載の方法。
【請求項１９】
前記１つまたは複数のコーディングツールイネーブルビットは、前記符号化ビデオシーケンスのビットストリームが８ビットのビット深度を有するかどうかを示す、請求項２に記載の方法。
【請求項２０】
前記１つまたは複数のビットは、予約済みビットシンタックス要素中に含まれ、前記１つまたは複数のビットは、前記予約済みビットシンタックス要素の一部として、前記符号化ビデオシーケンス中で重み付け予測が使用されるか否かを示すｇｅｎｅｒａｌ＿ｎｏ＿ｗｅｉｇｈｔｅｄ＿ｐｒｅｄｉｃｔｉｏｎ＿ｆｌａｇフラグと、前記符号化ビデオシーケンス中の各ピクチャについて１つのタイルが使用されるか、または２つ以上のタイルが使用されるかを示すｇｅｎｅｒａｌ＿ｎｏ＿ｔｉｌｅｓ＿ｆｌａｇフラグとを含む、請求項２に記載の方法。
【請求項２１】
前記１つまたは複数のビットは、高効率ビデオコーディング（ＨＥＶＣ）規格に準拠するｐｒｏｆｉｌｅ＿ｔｉｅｒ＿ｌｅｖｅｌシンタックス構造の一部である、請求項２に記載の方法。
【請求項２２】
コンピュータ可読記憶媒体であって、実行されたとき、ビデオデータを符号化するためのデバイスのプロセッサに、請求項２、１１、１５−２１のいずれか１つの方法を行わせる命令を記憶したコンピュータ可読記憶媒体。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０１３５
【補正方法】変更
【補正の内容】
【０１３５】
[0138]様々な例について説明してきた。これらおよび他の例は以下の特許請求の範囲内に入る。
以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
［Ｃ１］
ビデオデータを復号する方法であって、
ビデオデコーダによって、コード化ビデオシーケンスを受信することと、
１つまたは複数のコーディングツールイネーブルビットとして前記コード化ビデオシーケンスについての予約済みビットシンタックス要素の１つまたは複数のビットを復号することと、ここで、前記予約済みビットシンタックス要素は、プロファイルおよびレベル情報を含むシンタックス構造の一部であり、前記１つまたは複数のコーディングツールイネーブルビットは、前記コード化ビデオシーケンスを復号する際に前記ビデオデコーダによる使用のために１つまたは複数のコーディングツールがイネーブルにされているかどうかを示す、
を備える方法。
［Ｃ２］
前記シンタックス構造は、高効率ビデオコーディング（ＨＥＶＣ）規格に準拠するｐｒｏｆｉｌｅ＿ｔｉｅｒ＿ｌｅｖｅｌシンタックス構造であり、前記予約済みビットシンタックス要素は、前記ｐｒｏｆｉｌｅ＿ｔｉｅｒ＿ｌｅｖｅｌシンタックス構造のｇｅｎｅｒａｌ＿ｒｅｓｅｒｖｅｄ＿ｚｅｒｏ＿１６ｂｉｔｓ予約済みビットシンタックス要素である、Ｃ１に記載の方法。
［Ｃ３］
前記ｐｒｏｆｉｌｅ＿ｔｉｅｒ＿ｌｅｖｅｌシンタックス構造は、前記コード化ビデオシーケンスの複数のレイヤに適用可能な情報を含むビデオパラメータセット（ＶＰＳ）中に含まれる、Ｃ２に記載の方法。
［Ｃ４］
前記１つまたは複数のコーディングツールイネーブルビットは、ビデオパラメータセット（ＶＰＳ）シンタックス情報とシーケンスパラメータセット（ＳＰＳ）シンタックス情報とを含む、パラメータセット中の前記シンタックス構造外の他のシンタックス要素として含まれない、Ｃ１に記載の方法。
［Ｃ５］
前記１つまたは複数のコーディングツールイネーブルビットは、前記コード化ビデオシーケンス、前記コード化ビデオシーケンスのビットストリーム、あるいは前記コード化ビデオシーケンスのエレメンタリストリームまたはオペレーションポイントについて、明示的重み付け予測がイネーブルにされているかどうか、タイルがイネーブルにされているかどうか、ウエーブフロントがイネーブルにされているかどうか、時間動きベクトル予測がイネーブルにされているかどうか、あるいはスケーリングリストデータが存在し、前記コード化ビデオシーケンス、ビットストリーム、またはエレメンタリストリームのために使用されるかどうかのうちの１つまたは複数を示す、Ｃ１に記載の方法。
［Ｃ６］
前記１つまたは複数のコーディングツールイネーブルビットは、タイルがイネーブルにされている場合、任意のタイルが単独で復号可能かどうかをさらに示す、Ｃ５に記載の方法。
［Ｃ７］
前記１つまたは複数のコーディングツールイネーブルビットは、前記コード化ビデオシーケンスのビットストリームが８ビットのビット深度を有するかどうかを示す、Ｃ１に記載の方法。
［Ｃ８］
前記１つまたは複数のビットは、前記予約済みビットシンタックス要素の一部として、ｇｅｎｅｒａｌ＿ｎｏ＿ｗｅｉｇｈｔｅｄ＿ｐｒｅｄｉｃｔｉｏｎ＿ｆｌａｇフラグとｇｅｎｅｒａｌ＿ｎｏ＿ｔｉｌｅｓ＿ｆｌａｇフラグとを含む、Ｃ１に記載の方法。
［Ｃ９］
前記１つまたは複数のコーディングツールイネーブルビットは、ビデオパラメータセット（ＶＰＳ）シンタックス情報中に含まれず、ｐｒｏｆｉｌｅ＿ｔｉｅｒ＿ｌｅｖｅｌシンタックス構造のｇｅｎｅｒａｌ＿ｒｅｓｅｒｖｅｄ＿ｚｅｒｏ＿１６ｂｉｔｓ予約済みビットシンタックス要素の一部として含まれる、Ｃ１に記載の方法。
［Ｃ１０］
前記１つまたは複数のコーディングツールイネーブルビットが前記ビデオデコーダによる使用のためにイネーブルにされていることを示す１つまたは複数のコーディングツールを使用して、前記コード化ビデオシーケンスを復号すること
をさらに備える、Ｃ１に記載の方法。
［Ｃ１１］
ビデオデータを符号化する方法であって、
符号化されるべきビデオシーケンスを決定することと、
ビデオエンコーダによって、前記ビデオシーケンスを符号化することと、
１つまたは複数のコーディングツールイネーブルビットとして前記符号化ビデオシーケンスについての予約済みビットシンタックス要素の１つまたは複数のビットを符号化することと、ここで、前記予約済みビットシンタックス要素は、プロファイルおよびレベル情報を含むシンタックス構造の一部であり、前記１つまたは複数のコーディングツールイネーブルビットは、前記ビデオシーケンスを符号化する際に前記ビデオエンコーダによる使用のために１つまたは複数のコーディングツールがイネーブルにされているかどうかを示す、
を備える方法。
［Ｃ１２］
前記シンタックス構造は、高効率ビデオコーディング（ＨＥＶＣ）規格に準拠するｐｒｏｆｉｌｅ＿ｔｉｅｒ＿ｌｅｖｅｌシンタックス構造であり、前記予約済みビットシンタックス要素は、前記ｐｒｏｆｉｌｅ＿ｔｉｅｒ＿ｌｅｖｅｌシンタックス構造のｇｅｎｅｒａｌ＿ｒｅｓｅｒｖｅｄ＿ｚｅｒｏ＿１６ｂｉｔｓ予約済みビットシンタックス要素である、Ｃ１１に記載の方法。
［Ｃ１３］
前記ｐｒｏｆｉｌｅ＿ｔｉｅｒ＿ｌｅｖｅｌシンタックス構造は、前記符号化ビデオシーケンスの複数のレイヤに適用可能な情報を含むビデオパラメータセット（ＶＰＳ）中に含まれる、Ｃ１２に記載の方法。
［Ｃ１４］
前記１つまたは複数のコーディングツールイネーブルビットは、ビデオパラメータセット（ＶＰＳ）シンタックス情報とシーケンスパラメータセット（ＳＰＳ）シンタックス情報とを含む、パラメータセット中の前記シンタックス構造外の他のシンタックス要素として含まれない、Ｃ１１に記載の方法。
［Ｃ１５］
前記１つまたは複数のコーディングツールイネーブルビットは、前記符号化ビデオシーケンス、前記符号化ビデオシーケンスのビットストリーム、または前記符号化ビデオシーケンスのエレメンタリストリームについて、明示的重み付け予測がイネーブルにされているかどうか、タイルがイネーブルにされているかどうか、ウエーブフロントがイネーブルにされているかどうか、時間動きベクトル予測がイネーブルにされているかどうか、あるいはスケーリングリストデータが存在し、前記コード化ビデオシーケンス、ビットストリーム、またはエレメンタリストリームのために使用されるかどうかのうちの１つまたは複数を示す、Ｃ１１に記載の方法。
［Ｃ１６］
前記１つまたは複数のコーディングツールイネーブルビットは、タイルがイネーブルにされている場合、任意のタイルが単独で符号化可能かどうかをさらに示す、Ｃ１５に記載の方法。
［Ｃ１７］
前記１つまたは複数のコーディングツールイネーブルビットは、前記符号化ビデオシーケンスのビットストリームが８ビットのビット深度を有するかどうかを示す、Ｃ１１に記載の方法。
［Ｃ１８］
前記１つまたは複数のビットは、前記予約済みビットシンタックス要素の一部として、ｇｅｎｅｒａｌ＿ｎｏ＿ｗｅｉｇｈｔｅｄ＿ｐｒｅｄｉｃｔｉｏｎ＿ｆｌａｇフラグとｇｅｎｅｒａｌ＿ｎｏ＿ｔｉｌｅｓ＿ｆｌａｇフラグとを含む、Ｃ１１に記載の方法。
［Ｃ１９］
前記１つまたは複数のコーディングツールイネーブルビットは、ビデオパラメータセット（ＶＰＳ）シンタックス情報中に含まれず、ｐｒｏｆｉｌｅ＿ｔｉｅｒ＿ｌｅｖｅｌシンタックス構造のｇｅｎｅｒａｌ＿ｒｅｓｅｒｖｅｄ＿ｚｅｒｏ＿１６ｂｉｔｓ予約済みビットシンタックス要素の一部として含まれる、Ｃ１１に記載の方法。
［Ｃ２０］
前記ビデオシーケンスを符号化することは、前記１つまたは複数のコーディングツールのサブセットを使用して前記ビデオシーケンスを符号化することをさらに備え、
前記予約済みビットシンタックス要素の前記１つまたは複数のビットを符号化することは、前記１つまたは複数のコーディングツールイネーブルビットが、前記１つまたは複数のコーディングツールの前記サブセットがイネーブルにされていることを示すように、前記１つまたは複数のコーディングツールイネーブルビットを符号化することを備える、Ｃ１１に記載の方法。
［Ｃ２１］
ビデオデータをコーディングするためのデバイスであって、
コーディングされるべきビデオシーケンスを決定することと、
前記ビデオシーケンスをコーディングすることと、
１つまたは複数のコーディングツールイネーブルビットとして前記コード化ビデオシーケンスについての予約済みビットシンタックス要素の１つまたは複数のビットをコーディングすることと、ここで、前記予約済みビットシンタックス要素は、プロファイルおよびレベル情報を含むシンタックス構造の一部であり、前記１つまたは複数のコーディングツールイネーブルビットは、前記ビデオシーケンスをコーディングする際に前記ビデオコーダによる使用のために１つまたは複数のコーディングツールがイネーブルにされているかどうかを示す、
を行うように構成されたビデオコーダを備えるデバイス。
［Ｃ２２］
前記シンタックス構造は、高効率ビデオコーディング（ＨＥＶＣ）規格に準拠するｐｒｏｆｉｌｅ＿ｔｉｅｒ＿ｌｅｖｅｌシンタックス構造であり、前記予約済みビットシンタックス要素は、前記ｐｒｏｆｉｌｅ＿ｔｉｅｒ＿ｌｅｖｅｌシンタックス構造のｇｅｎｅｒａｌ＿ｒｅｓｅｒｖｅｄ＿ｚｅｒｏ＿１６ｂｉｔｓ予約済みビットシンタックス要素である、Ｃ２１に記載のデバイス。
［Ｃ２３］
前記ｐｒｏｆｉｌｅ＿ｔｉｅｒ＿ｌｅｖｅｌシンタックス構造は、前記コード化ビデオシーケンスの複数のレイヤに適用可能な情報を含むビデオパラメータセット（ＶＰＳ）中に含まれる、Ｃ２２に記載のデバイス。
［Ｃ２４］
前記１つまたは複数のコーディングツールイネーブルビットは、ビデオパラメータセット（ＶＰＳ）シンタックス情報とシーケンスパラメータセット（ＳＰＳ）シンタックス情報とを含む、パラメータセット中の前記シンタックス構造外の他のシンタックス要素として含まれない、Ｃ２１に記載のデバイス。
［Ｃ２５］
前記１つまたは複数のコーディングツールイネーブルビットは、前記コード化ビデオシーケンス、前記コード化ビデオシーケンスのビットストリーム、または前記コード化ビデオシーケンスのエレメンタリストリームについて、明示的重み付け予測がイネーブルにされているかどうか、タイルがイネーブルにされているかどうか、ウエーブフロントがイネーブルにされているかどうか、時間動きベクトル予測がイネーブルにされているかどうか、あるいはスケーリングリストデータが存在し、前記コード化ビデオシーケンス、ビットストリーム、またはエレメンタリストリームのために使用されるかどうかのうちの１つまたは複数を示す、Ｃ２１に記載のデバイス。
［Ｃ２６］
コンピュータ可読記憶媒体であって、実行されたとき、ビデオデータをコーディングするためのデバイスのプロセッサに、
コーディングされるべきビデオシーケンスを決定することと、
前記ビデオシーケンスをコーディングすることと、
１つまたは複数のコーディングツールイネーブルビットとして前記コード化ビデオシーケンスについての予約済みビットシンタックス要素の１つまたは複数のビットをコーディングすることと、ここで、前記予約済みビットシンタックス要素は、プロファイルおよびレベル情報を含むシンタックス構造の一部であり、前記１つまたは複数のコーディングツールイネーブルビットは、前記ビデオシーケンスをコーディングする際に前記ビデオコーダによる使用のために１つまたは複数のコーディングツールがイネーブルにされているかどうかを示す、
を行わせる命令を記憶したコンピュータ可読記憶媒体。
［Ｃ２７］
前記シンタックス構造は、高効率ビデオコーディング（ＨＥＶＣ）規格に準拠するｐｒｏｆｉｌｅ＿ｔｉｅｒ＿ｌｅｖｅｌシンタックス構造であり、前記予約済みビットシンタックス要素は、前記ｐｒｏｆｉｌｅ＿ｔｉｅｒ＿ｌｅｖｅｌシンタックス構造のｇｅｎｅｒａｌ＿ｒｅｓｅｒｖｅｄ＿ｚｅｒｏ＿１６ｂｉｔｓ予約済みビットシンタックス要素である、Ｃ２６に記載のコンピュータ可読記憶媒体。
［Ｃ２８］
前記１つまたは複数のコーディングツールイネーブルビットは、ビデオパラメータセット（ＶＰＳ）シンタックス情報とシーケンスパラメータセット（ＳＰＳ）シンタックス情報とを含む、パラメータセット中の前記シンタックス構造外の他のシンタックス要素として含まれない、Ｃ２６に記載のコンピュータ可読記憶媒体。
［Ｃ２９］
前記１つまたは複数のコーディングツールイネーブルビットは、前記コード化ビデオシーケンス、前記コード化ビデオシーケンスのビットストリーム、または前記コード化ビデオシーケンスのエレメンタリストリームについて、明示的重み付け予測がイネーブルにされているかどうか、タイルがイネーブルにされているかどうか、ウエーブフロントがイネーブルにされているかどうか、時間動きベクトル予測がイネーブルにされているかどうか、あるいはスケーリングリストデータが存在し、前記コード化ビデオシーケンス、ビットストリーム、またはエレメンタリストリームのために使用されるかどうかのうちの１つまたは複数を示す、Ｃ２６に記載のコンピュータ可読記憶媒体。
［Ｃ３０］
前記１つまたは複数のコーディングツールイネーブルビットは、タイルがイネーブルにされている場合、任意のタイルが単独でコード化可能かどうかをさらに示す、Ｃ２６に記載のコンピュータ可読記憶媒体。
【外国語明細書】
2018125863000001.pdf