(57)【特許請求の範囲】
【請求項１】
ビデオコーディングのための方法であって、前記方法は、
１つまたは複数のｓｅｉ＿ｍｅｓｓａｇｅ（）シンタックス構造を含んでいる少なくとも１つのビットストリームパーティションネスティング補足エンハンスメント情報（ＳＥＩ）メッセージ構造を備えるローバイトシーケンスペイロード（ＲＢＳＰ）を備える、ＳＥＩネットワークアブストラクションレイヤ（ＮＡＬ）ユニットを処理することと、
前記少なくとも１つのビットストリームパーティションネスティングＳＥＩメッセージ構造内に、または前記少なくとも１つのビットストリームパーティションネスティングＳＥＩメッセージ構造から、ｎｕｍ＿ｓｅｉｓ＿ｉｎ＿ｂｓｐ＿ｍｉｎｕｓ１シンタックス要素をコーディングすることと、前記ｎｕｍ＿ｓｅｉｓ＿ｉｎ＿ｂｓｐ＿ｍｉｎｕｓ１シンタックス要素＋１は、前記少なくとも１つのビットストリームパーティションネスティングＳＥＩメッセージ構造内に含まれている前記１つまたは複数のｓｅｉ＿ｍｅｓｓａｇｅ（）シンタックス構造の数を指定し、前記ｎｕｍ＿ｓｅｉｓ＿ｉｎ＿ｂｓｐ＿ｍｉｎｕｓ１シンタックス要素は、前記１つまたは複数のｓｅｉ＿ｍｅｓｓａｇｅ（）シンタックス構造とは異なる、を備える、方法。
【請求項２】
前記少なくとも１つのビットストリームパーティションネスティングＳＥＩメッセージ構造内に含まれている前記１つまたは複数のｓｅｉ＿ｍｅｓｓａｇｅ（）シンタックス構造の前記数は、前記少なくとも１つのビットストリームパーティションネスティングＳＥＩメッセージ構造内に含まれている前記１つまたは複数のｓｅｉ＿ｍｅｓｓａｇｅ（）シンタックス構造のカウントを備える、請求項１に記載の方法。
【請求項３】
前記シンタックス要素をコーディングすることが、前記シンタックス要素を復号することを備え、ここにおいて、前記方法が、前記復号されたシンタックス要素に基づいて、前記少なくとも１つのビットストリームパーティションネスティングＳＥＩメッセージ構造内に備えられる前記１つまたは複数のｓｅｉ＿ｍｅｓｓａｇｅ（）シンタックス構造の前記数を決定することをさらに備える、請求項１に記載の方法。
【請求項４】
前記少なくとも１つのビットストリームパーティションネスティングＳＥＩメッセージ構造内に備えられる前記１つまたは複数のｓｅｉ＿ｍｅｓｓａｇｅ（）シンタックス構造の前記決定された数に基づいて、前記少なくとも１つのビットストリームパーティションネスティングＳＥＩメッセージ構造を構文解析することをさらに備える、請求項３に記載の方法。
【請求項５】
前記シンタックス要素が、前記少なくとも１つのビットストリームパーティションネスティングＳＥＩメッセージ構造から復号される、請求項３に記載の方法。
【請求項６】
前記シンタックス要素をコーディングすることが、前記シンタックス要素を符号化することを備え、ここにおいて、前記方法が、前記シンタックス要素を符号化することより前に、前記少なくとも１つのビットストリームパーティションネスティングＳＥＩメッセージ構造内に備えられる前記１つまたは複数のｓｅｉ＿ｍｅｓｓａｇｅ（）シンタックス構造の前記数を決定することをさらに備える、請求項１に記載の方法。
【請求項７】
前記シンタックス要素が、前記少なくとも１つのビットストリームパーティションネスティングＳＥＩメッセージ構造中に符号化される、請求項６に記載の方法。
【請求項８】
ビデオコーディングのためのデバイスであって、前記デバイスは、
ビデオデータを記憶するように構成されたメモリと、
前記メモリと通信しているプロセッサとを備え、前記プロセッサは、
前記ビデオデータに関連する補足エンハンスメント情報（ＳＥＩ）ネットワークアブストラクションレイヤ（ＮＡＬ）ユニットを処理することと、ここにおいて、前記ＳＥＩ
ＮＡＬユニットが、１つまたは複数のｓｅｉ＿ｍｅｓｓａｇｅ（）構造を含んでいる少なくとも１つのビットストリームパーティションネスティングＳＥＩメッセージ構造を備えるローバイトシーケンスペイロード（ＲＢＳＰ）を備える、
前記少なくとも１つのビットストリームパーティションネスティングＳＥＩメッセージ構造内に、または前記少なくとも１つのビットストリームパーティションネスティングＳＥＩメッセージ構造から、ｎｕｍ＿ｓｅｉｓ＿ｉｎ＿ｂｓｐ＿ｍｉｎｕｓ１シンタックス要素をコーディングすることと、前記ｎｕｍ＿ｓｅｉｓ＿ｉｎ＿ｂｓｐ＿ｍｉｎｕｓ１シンタックス要素＋１は、前記少なくとも１つのビットストリームパーティションネスティングＳＥＩメッセージ構造内に含まれている前記１つまたは複数のｓｅｉ＿ｍｅｓｓａｇｅ（）シンタックス構造の数を指定し、前記ｎｕｍ＿ｓｅｉｓ＿ｉｎ＿ｂｓｐ＿ｍｉｎｕｓ１シンタックス要素は、前記１つまたは複数のｓｅｉ＿ｍｅｓｓａｇｅ（）シンタックス構造とは異なる、を行うように構成された、デバイス。
【請求項９】
前記少なくとも１つのビットストリームパーティションネスティングＳＥＩメッセージ構造内に含まれている前記１つまたは複数のｓｅｉ＿ｍｅｓｓａｇｅ（）シンタックス構造の前記数は、前記少なくとも１つのビットストリームパーティションネスティングＳＥＩメッセージ構造内に含まれている前記１つまたは複数のｓｅｉ＿ｍｅｓｓａｇｅ（）シンタックス構造のカウントを備える、請求項８に記載のデバイス。
【請求項１０】
前記プロセッサが、前記シンタックス要素を復号することと、前記復号されたシンタックス要素に基づいて、前記少なくとも１つのビットストリームパーティションネスティングＳＥＩメッセージ構造内に備えられる前記１つまたは複数のｓｅｉ＿ｍｅｓｓａｇｅ（）シンタックス構造の前記数を決定することとを行うようにさらに構成された、請求項８に記載のデバイス。
【請求項１１】
前記プロセッサが、前記少なくとも１つのビットストリームパーティションネスティングＳＥＩメッセージ構造内に備えられる前記１つまたは複数のｓｅｉ＿ｍｅｓｓａｇｅ（）シンタックス構造の前記決定された数に基づいて、前記少なくとも１つのビットストリームパーティションネスティングＳＥＩメッセージ構造を構文解析するようにさらに構成された、請求項１０に記載のデバイス。
【請求項１２】
前記プロセッサが、前記少なくとも１つのビットストリームパーティションネスティングＳＥＩメッセージ構造から前記シンタックス要素を復号するようにさらに構成された、請求項１０に記載のデバイス。
【請求項１３】
前記プロセッサが、前記シンタックス要素を符号化することと、前記シンタックス要素を符号化することより前に、前記少なくとも１つのビットストリームパーティションネスティングＳＥＩメッセージ構造内に備えられる前記１つまたは複数のｓｅｉ＿ｍｅｓｓａｇｅ（）シンタックス構造の前記数を決定することとを行うようにさらに構成された、請求項８に記載のデバイス。
【請求項１４】
前記プロセッサが、前記少なくとも１つのビットストリームパーティションネスティングＳＥＩメッセージ構造中に前記シンタックス要素を符号化するようにさらに構成された、請求項１３に記載のデバイス。
【請求項１５】
前記ビデオデータを表示するように構成されたディスプレイをさらに備える、請求項８に記載のデバイス。
【請求項１６】
前記デバイスが、
集積回路、
マイクロプロセッサ、または
ワイヤレス通信デバイスのうちの少なくとも１つを備える、請求項８に記載のデバイス。
【請求項１７】
ビデオコーディングのためのデバイスであって、前記デバイスは、
ビデオデータに関連する補足エンハンスメント情報（ＳＥＩ）ネットワークアブストラクションレイヤ（ＮＡＬ）ユニットを処理するための手段と、ここにおいて、前記ＳＥＩ
ＮＡＬユニットが、１つまたは複数のｓｅｉ＿ｍｅｓｓａｇｅ（）構造を含んでいる少なくとも１つのビットストリームパーティションネスティングＳＥＩメッセージ構造を備えるローバイトシーケンスペイロード（ＲＢＳＰ）を備える、
前記少なくとも１つのビットストリームパーティションネスティングＳＥＩメッセージ構造内に、または前記少なくとも１つのビットストリームパーティションネスティングＳＥＩメッセージ構造から、ｎｕｍ＿ｓｅｉｓ＿ｉｎ＿ｂｓｐ＿ｍｉｎｕｓ１シンタックス要素をコーディングするための手段と、前記ｎｕｍ＿ｓｅｉｓ＿ｉｎ＿ｂｓｐ＿ｍｉｎｕｓ１シンタックス要素＋１は、前記少なくとも１つのビットストリームパーティションネスティングＳＥＩメッセージ構造内に含まれている前記１つまたは複数のｓｅｉ＿ｍｅｓｓａｇｅ（）シンタックス構造の数を指定し、前記ｎｕｍ＿ｓｅｉｓ＿ｉｎ＿ｂｓｐ＿ｍｉｎｕｓ１シンタックス要素は、前記１つまたは複数のｓｅｉ＿ｍｅｓｓａｇｅ（）シンタックス構造とは異なる、を備える、デバイス。
【請求項１８】
前記少なくとも１つのビットストリームパーティションネスティングＳＥＩメッセージ構造内に含まれている前記１つまたは複数のｓｅｉ＿ｍｅｓｓａｇｅ（）シンタックス構造の数は、前記少なくとも１つのビットストリームパーティションネスティングＳＥＩメッセージ構造内に含まれている前記１つまたは複数のｓｅｉ＿ｍｅｓｓａｇｅ（）シンタックス構造のカウントを備える、請求項１７に記載のデバイス。
【請求項１９】
前記シンタックス要素をコーディングするための前記手段が、前記シンタックス要素を復号するための手段を備え、ここにおいて、前記デバイスが、前記復号されたシンタックス要素に基づいて、前記少なくとも１つのビットストリームパーティションネスティングＳＥＩメッセージ構造内に備えられる前記１つまたは複数のｓｅｉ＿ｍｅｓｓａｇｅ（）シンタックス構造の前記数を決定するための手段をさらに備える、請求項１７に記載のデバイス。
【請求項２０】
前記少なくとも１つのビットストリームパーティションネスティングＳＥＩメッセージ構造内に備えられる前記１つまたは複数のｓｅｉ＿ｍｅｓｓａｇｅ（）シンタックス構造の前記決定された数に基づいて、前記少なくとも１つのビットストリームパーティションネスティングＳＥＩメッセージ構造を構文解析するための手段をさらに備える、請求項１９に記載のデバイス。
【請求項２１】
前記シンタックス要素を復号するための手段が、前記少なくとも１つのビットストリームパーティションネスティングＳＥＩメッセージ構造から前記シンタックス要素を復号する、請求項１９に記載のデバイス。
【請求項２２】
前記シンタックス要素をコーディングするための前記手段が、前記シンタックス要素を符号化するための手段を備え、ここにおいて、前記デバイスが、前記シンタックス要素を符号化することより前に、前記少なくとも１つのビットストリームパーティションネスティングＳＥＩメッセージ構造内に備えられる前記１つまたは複数のｓｅｉ＿ｍｅｓｓａｇｅ（）シンタックス構造の前記数を決定するための手段をさらに備える、請求項１７に記載のデバイス。
【請求項２３】
前記シンタックス要素を符号化するための前記手段が、前記少なくとも１つのビットストリームパーティションネスティングＳＥＩメッセージ構造中に前記シンタックス要素を符号化する、請求項２２に記載のデバイス。
【請求項２４】
実行されたとき、１つまたは複数のプロセッサに、
１つまたは複数のｓｅｉ＿ｍｅｓｓａｇｅ（）構造を含んでいる少なくとも１つのビットストリームパーティションネスティング補足エンハンスメント情報（ＳＥＩ）メッセージ構造を備えるローバイトシーケンスペイロード（ＲＢＳＰ）を備える、ＳＥＩネットワークアブストラクションレイヤ（ＮＡＬ）ユニットを処理することと、
前記少なくとも１つのビットストリームパーティションネスティングＳＥＩメッセージ構造内に、または前記少なくとも１つのビットストリームパーティションネスティングＳＥＩメッセージ構造から、ｎｕｍ＿ｓｅｉｓ＿ｉｎ＿ｂｓｐ＿ｍｉｎｕｓ１シンタックス要素をコーディングすることと、前記ｎｕｍ＿ｓｅｉｓ＿ｉｎ＿ｂｓｐ＿ｍｉｎｕｓ１シンタックス要素＋１は、前記少なくとも１つのビットストリームパーティションネスティングＳＥＩメッセージ構造内に含まれている前記１つまたは複数のｓｅｉ＿ｍｅｓｓａｇｅ（）シンタックス構造の数を指定し、前記ｎｕｍ＿ｓｅｉｓ＿ｉｎ＿ｂｓｐ＿ｍｉｎｕｓ１シンタックス要素は、前記１つまたは複数のｓｅｉ＿ｍｅｓｓａｇｅ（）シンタックス構造とは異なる、を行わせる命令を記憶した非一時的コンピュータ可読媒体。
【請求項２５】
前記少なくとも１つのビットストリームパーティションネスティングＳＥＩメッセージ構造内に含まれている前記１つまたは複数のｓｅｉ＿ｍｅｓｓａｇｅ（）シンタックス構造の前記数は、前記少なくとも１つのビットストリームパーティションネスティングＳＥＩメッセージ構造内に含まれている前記１つまたは複数のｓｅｉ＿ｍｅｓｓａｇｅ（）シンタックス構造のカウントを備える、請求項２４に記載の非一時的コンピュータ可読媒体。
【請求項２６】
前記１つまたは複数のプロセッサに、前記シンタックス要素をコーディングすることを行わせる前記命令が、前記１つまたは複数のプロセッサに、前記シンタックス要素を復号することを行わせる命令を備え、ここにおいて、前記非一時的コンピュータ可読媒体が、前記１つまたは複数のプロセッサに、前記復号されたシンタックス要素に基づいて、前記少なくとも１つのビットストリームパーティションネスティングＳＥＩメッセージ構造内に備えられる前記１つまたは複数のｓｅｉ＿ｍｅｓｓａｇｅ（）シンタックス構造の前記数を決定することを行わせる命令をさらに備える、請求項２４に記載の非一時的コンピュータ可読媒体。
【請求項２７】
前記１つまたは複数のプロセッサに、前記少なくとも１つのビットストリームパーティションネスティングＳＥＩメッセージ構造内に備えられる前記１つまたは複数のｓｅｉ＿ｍｅｓｓａｇｅ（）シンタックス構造の前記決定された数に基づいて、前記少なくとも１つのビットストリームパーティションネスティングＳＥＩメッセージ構造を構文解析することを行わせる命令をさらに備える、請求項２６に記載の非一時的コンピュータ可読媒体。
【請求項２８】
前記１つまたは複数のプロセッサに、前記シンタックス要素を復号することを行わせる前記命令が、前記少なくとも１つのビットストリームパーティションネスティングＳＥＩメッセージ構造から前記シンタックス要素を復号するための命令を備える、請求項２６に記載の非一時的コンピュータ可読媒体。
【請求項２９】
前記１つまたは複数のプロセッサに、前記シンタックス要素をコーディングすることを行わせる前記命令が、前記１つまたは複数のプロセッサに、前記シンタックス要素を符号化することを行わせる命令を備え、ここにおいて、前記非一時的コンピュータ可読媒体が、前記１つまたは複数のプロセッサに、前記シンタックス要素を符号化することより前に、前記少なくとも１つのビットストリームパーティションネスティングＳＥＩメッセージ構造内に備えられる前記１つまたは複数のｓｅｉ＿ｍｅｓｓａｇｅ（）シンタックス構造の前記数を決定することを行わせる命令をさらに備える、請求項２４に記載の非一時的コンピュータ可読媒体。
【請求項３０】
前記１つまたは複数のプロセッサに、前記シンタックス要素を符号化することを行わせる前記命令が、前記少なくとも１つのビットストリームパーティションネスティングＳＥＩメッセージ構造中に前記シンタックス要素を符号化するための命令を備える、請求項２９に記載の非一時的コンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
[0001]  本開示は、一般に、ビデオコーディング（video coding）および圧縮（compression）に関し、より詳細には、ネスティング補足エンハンスメント情報（ＳＥＩ：supplemental enhancement information）メッセージ構造（message structure）の構文解析（parsing）を改善することに関する。
【背景技術】
【０００２】
[0002]  デジタルビデオ機能は、デジタルテレビジョン、デジタルダイレクトブロードキャストシステム、ワイヤレスブロードキャストシステム、携帯情報端末（ＰＤＡ）、ラップトップまたはデスクトップコンピュータ、タブレットコンピュータ、電子ブックリーダー、デジタルカメラ、デジタル記録デバイス、デジタルメディアプレーヤ、ビデオゲームデバイス、ビデオゲームコンソール、セルラーまたは衛星無線電話、いわゆる「スマートフォン」、ビデオ遠隔会議デバイス、ビデオストリーミングデバイスなどを含む、広範囲にわたるデバイスに組み込まれ得る。デジタルビデオデバイスは、１つまたは複数のビデオコーディング技法を実装する。ビデオデバイスは、そのようなビデオコーディング技法を実装することによって、デジタルビデオ情報をより効率的に送信、受信、符号化、復号、および／または記憶し得る。
【０００３】
[0003]  ビデオコーディング技法は、限定はしないが、ＩＴＵ−Ｔ  Ｈ．２６１、ＩＳＯ／ＩＥＣ  ＭＰＥＧ−１  Ｖｉｓｕａｌ、ＩＴＵ−Ｔ  Ｈ．２６２またはＩＳＯ／ＩＥＣ  ＭＰＥＧ−２  Ｖｉｓｕａｌ、ＩＴＵ−Ｔ  Ｈ．２６３、ＩＳＯ／ＩＥＣ  ＭＰＥＧ−４  Ｖｉｓｕａｌ、およびＩＴＵ−Ｔ  Ｈ．２６４またはＩＳＯ／ＩＥＣ  ＭＰＥＧ−４アドバンストビデオコーディング（ＡＶＣ：Advanced Video Coding）（それのスケーラブルビデオコーディング（ＳＶＣ：Scalable Video Coding）拡張およびマルチビュービデオコーディング（ＭＶＣ：Multiview Video Coding）拡張を含む）によって定義された規格、ならびに比較的新しい高効率ビデオコーディング（ＨＥＶＣ：High Efficiency Video Coding）規格に記載されているビデオコーディング技法を含む。ＨＥＶＣ規格は、国際電気通信連合の電気通信標準化部門（ＩＴＵ−Ｔ）のビデオコーディングエキスパートグループ（ＶＣＥＧ）と、国際標準化機構（ＩＳＯ）および国際電気標準会議（ＩＥＣ）によって形成されるムービングピクチャエキスパートグループ（ＭＰＥＧ）とのジョイントコラボレーションチームオンビデオコーディング（ＪＣＴ−ＶＣ）によって、最近ファイナライズされた。ＨＥＶＣ  ＷＤと呼ばれる、ＨＥＶＣ仕様の最新のワーキングドラフト（ＷＤ）は、phenix.it-sudparis.eu/jct/doc_end_user/documents/17_Valencia/wg11/JCTVC-Q1003-v1.zipから入手可能である。また、ＨＥＶＣのマルチビュー拡張、すなわちＭＶ−ＨＥＶＣがＪＣＴ−３Ｖによって開発されている。以下でＭＶ−ＨＥＶＣ  ＷＤ３の最近のワーキングドラフトは、phenix.it-sudparis.eu/jct2/doc_end_user/documents/8_Valencia/wg11/JCT3V-H1002-v5.zipから入手可能である。ＳＨＶＣと称するＨＥＶＣのスケーラブル拡張も、ＪＣＴ−ＶＣによって開発されている。以下でＳＨＶＣ  ＷＤ２と呼ばれる、ＳＨＶＣの最近のワーキングドラフトは、http://phenix.it-sudparis.eu/jct/doc_end_user/documents/17_Valencia/wg11/JCTVC-Q1008-v2.zipから入手可能である。
【０００４】
[0004]  ビデオコーディング技法は、ビデオシーケンスに固有の冗長性を低減または除去するための空間（ピクチャ内）予測および／または時間（ピクチャ間）予測を含む。ブロックベースのビデオコーディングでは、ビデオスライス（たとえば、ビデオフレームまたはビデオフレームの一部分）が、ツリーブロック、コーディングユニット（ＣＵ：coding unit）および／またはコーディングノードと呼ばれることもあるビデオブロックに区分され得る。ピクチャのイントラコード化（Ｉ）スライス中のビデオブロックは、同じピクチャ中の隣接ブロック中の参照サンプルに対する空間予測を使用して符号化（encode）される。ピクチャのインターコード化（ＰまたはＢ）スライス中のビデオブロックは、同じピクチャの中の隣接ブロック中の参照サンプルに対する空間予測、または他の参照ピクチャ中の参照サンプルに対する時間予測を使用し得る。ピクチャはフレームと呼ばれることがあり、参照ピクチャは参照フレームと呼ばれることがある。
【０００５】
[0005]  空間予測または時間予測は、コーディングされるべきブロックのための予測ブロックを生じる。残差データは、コーディングされるべき元のブロックと予測ブロックとの間のピクセル差分を表す。インターコード化ブロックは、予測ブロックを形成する参照サンプルのブロックを指す動きベクトル、およびコード化ブロックと予測ブロッ
クとの間の差分を示す残差データに従って符号化される。イントラコード化ブロックは、イントラコーディングモードと残差データとに従って符号化される。さらなる圧縮のために、残差データは、ピクセル領域から変換領域に変換され、残差変換係数が生じ得、その残差変換係数は、次いで量子化され得る。最初に２次元アレイで構成される量子化変換係数は、変換係数の１次元ベクトルを生成するために走査され得、なお一層の圧縮を達成するためにエントロピーコーディングが適用され得る。
【発明の概要】
【０００６】
[0006]  概して、本開示は、ネスティング補足エンハンスメント情報（ＳＥＩ：Supplemental Enhancement Information）メッセージ構造の構文解析を改善することに関係する技法について説明する。以下で説明する様々な技法は、ネスティングＳＥＩメッセージ構造（nesting SEI message structure）の構文解析中の構文解析エラー（parsing error）を低減するかまたはなくすための方法およびデバイスを提供する。
【０００７】
[0007]  一実施形態では、ビデオコーディングのための方法が開示される。本方法は、１つまたは複数のＳＥＩメッセージ構造（SEI message structure）を備えるローバイトシーケンスペイロード（ＲＢＳＰ：raw byte sequence payload）を備える、ＳＥＩネットワークアブストラクションレイヤ（ＮＡＬ：Network Abstraction Layer）ユニットを処理することと、ここにおいて、１つまたは複数のＳＥＩメッセージ構造が、１つまたは複数のＳＥＩメッセージを有する少なくとも１つのネスティングＳＥＩメッセージ構造を備える、少なくとも１つのネスティングＳＥＩメッセージ構造内に備えられるＳＥＩメッセージの数を示すシンタックス要素（syntax element）をコーディング（coding）することとを備える。
【０００８】
[0008]  別の実施形態では、ビデオコーディングのためのデバイスが開示される。本デバイスは、ビデオデータを記憶するように構成されたメモリと、メモリと通信しているプロセッサとを備える。プロセッサは、ビデオデータに関連するＳＥＩ  ＮＡＬユニット（SEI NAL unit）を処理することと、ここにおいて、ＳＥＩ  ＮＡＬユニットが、１つまたは複数のＳＥＩメッセージ構造を備えるＲＢＳＰを備え、ここにおいて、１つまたは複数のＳＥＩメッセージ構造が、１つまたは複数のＳＥＩメッセージを有する少なくとも１つのネスティングＳＥＩメッセージ構造を備える、少なくとも１つのネスティングＳＥＩメッセージ構造内に備えられるＳＥＩメッセージの数を示すシンタックス要素をコーディングすることとを行うように構成される。
【０００９】
[0009]  別の実施形態では、ビデオコーディングのためのデバイスが開示される。本デバイスは、ビデオデータに関連するＳＥＩ  ＮＡＬユニットを処理するための手段と、ここにおいて、ＳＥＩ  ＮＡＬユニットが、１つまたは複数のＳＥＩメッセージ構造を備えるＲＢＳＰを備え、ここにおいて、１つまたは複数のＳＥＩメッセージ構造が、１つまたは複数のＳＥＩメッセージを有する少なくとも１つのネスティングＳＥＩメッセージ構造を備える、少なくとも１つのネスティングＳＥＩメッセージ構造内に備えられるＳＥＩメッセージの数を示すシンタックス要素をコーディング（coding）するための手段とを備える。
【００１０】
[0010]  別の実施形態では、非一時的コンピュータ可読媒体（non-transitory computer-readable medium）が開示される。本非一時的コンピュータ可読媒体は、実行されたとき、１つまたは複数のプロセッサに、１つまたは複数のＳＥＩメッセージ構造を備えるＲＢＳＰを備える、ＳＥＩ  ＮＡＬユニットを処理することと、ここにおいて、１つまたは複数のＳＥＩメッセージ構造が、１つまたは複数のＳＥＩメッセージを有する少なくとも１つのネスティングＳＥＩメッセージ構造を備える、少なくとも１つのネスティングＳＥＩメッセージ構造内に備えられるＳＥＩメッセージの数を示すシンタックス要素をコーディングすることとを行わせる命令を記憶している。
【００１１】
[0011]  これらの実施形態の各々では、少なくとも１つのネスティングＳＥＩメッセージ構造は、スケーラブルネスティングＳＥＩメッセージ構造（scalable nesting SEI message structure）またはビットストリームパーティションネスティングＳＥＩメッセージ構造（bitstream partition nesting SEI message structure）のうちの１つを備え得る。
【００１２】
[0012]  追加または代替として、これらの実施形態の各々では、シンタックス要素をコーディングすることが、シンタックス要素を復号（decoding）することを備え得、少なくとも１つのネスティングＳＥＩメッセージ構造内に備えられるＳＥＩメッセージの数は、（たとえば、方法、プロセッサ、手段、および／または命令によって）復号されたシンタックス要素（decoded syntax element）に基づいて決定され得る。
【００１３】
[0013]  追加または代替として、これらの実施形態の各々では、少なくとも１つのネスティングＳＥＩメッセージ構造は、（たとえば、方法、プロセッサ、手段、および／または命令によって）少なくとも１つのネスティングＳＥＩメッセージ構造内に備えられるＳＥＩメッセージの決定された数に基づいて構文解析され得る。
【００１４】
[0014]  追加または代替として、これらの実施形態の各々では、シンタックス要素は、少なくとも１つのネスティングＳＥＩメッセージ構造から復号され得る。
【００１５】
[0015]  追加または代替として、これらの実施形態の各々では、シンタックス要素をコーディングすることが、シンタックス要素を符号化（encoding）することを備え得、少なくとも１つのネスティングＳＥＩメッセージ構造内に備えられるＳＥＩメッセージの数は、（たとえば、方法、プロセッサ、手段、および／または命令によって）シンタックス要素を符号化することより前に決定され得る。
【００１６】
[0016]  追加または代替として、これらの実施形態の各々では、シンタックス要素は、少なくとも１つのネスティングＳＥＩメッセージ構造中に符号化される。
【００１７】
[0017]  １つまたは複数の例の詳細を添付の図面および以下の説明に記載する。添付の図面および以下の説明は、本明細書で説明する発明的概念の全範囲を限定するものではない。他の特徴、目的、および利点は、説明および図面、ならびに特許請求の範囲から明らかになろう。
【００１８】
[0018]  図面全体にわたって、参照される要素間の対応を示すために参照番号が再使用されることがある。図面は、本明細書で説明する例示的な実施形態を図示するために提供され、本開示の範囲を限定するものではない。
【図面の簡単な説明】
【００１９】
【図１】[0019]  本開示で説明する態様による技法を利用し得る例示的なビデオ符号化および復号システムを示すブロック図。
【図２Ａ】[0020]  本開示で説明する態様による技法を実装し得るビデオエンコーダの一例を示すブロック図。
【図２Ｂ】[0021]  本開示で説明する態様による技法を実装し得るビデオエンコーダの一例を示すブロック図。
【図３Ａ】[0022]  本開示で説明する態様による技法を実装し得るビデオデコーダの一例を示すブロック図。
【図３Ｂ】[0023]  本開示で説明する態様による技法を実装し得るビデオデコーダの一例を示すブロック図。
【図４】[0024]  本開示で説明する態様による補足エンハンスメント情報（ＳＥＩ）ネットワークアブストラクションレイヤ（ＮＡＬ）ユニットの構造を示す図。
【図５】[0025]  本開示で説明する態様によるビデオコーディングプロセスの一部分の一例を示すブロック図。
【図６】[0026]  本開示で説明する態様によるビデオ復号プロセスの一部分の一例を示すブロック図。
【図７】[0027]  本開示で説明する態様によるビデオ符号化プロセスの一部分の一例を示すブロック図。
【図８】[0028]  本開示で説明する態様によるビデオ符号化プロセスの一部分の一例を示すブロック図。
【発明を実施するための形態】
【００２０】
[0029]  概して、本開示は、高効率ビデオコーディング（ＨＥＶＣ）など、アドバンストビデオコーデックのコンテキストにおける、マルチレイヤ（またはマルチビュー）コーディングのためのネスティング補足エンハンスメント情報（ＳＥＩ）メッセージに関する。より詳細には、本開示で説明する技法は、ＨＥＶＣのマルチビュー拡張およびスケーラブル拡張、すなわち、それぞれＭＶ−ＨＥＶＣおよびＳＨＶＣにおける、ネスティングＳＥＩメッセージ構造の構文解析中の構文解析エラーを低減するかまたはなくすためのシステム、装置、および方法に関する。
【００２１】
[0030]  ＳＥＩ  ＮＡＬユニットがローバイトシーケンスペイロード（ＲＢＳＰ）構造を備え得、ＲＢＳＰ構造は１つまたは複数のＳＥＩメッセージ構造を備え得る。ＲＢＳＰ構造中に備えられ得る、異なるタイプのＳＥＩメッセージ構造がある。これらのタイプは、１つまたは複数のＳＥＩメッセージを含んでいることがある、ネスティングＳＥＩメッセージ構造を含む。たとえば、スケーラブルネスティングＳＥＩメッセージ構造およびビットストリームパーティションネスティングＳＥＩメッセージ構造は、２つのそのようなタイプのネスティングＳＥＩメッセージ構造である。
【００２２】
[0031]  スケーラブルネスティングＳＥＩメッセージ構造およびビットストリームパーティションネスティングＳＥＩメッセージ構造のための従来のシンタックス構造（syntax structure）に基づいて、デコーダは、ＲＢＳＰ構造のトレーリングビット（trailing bit）中の、１の値を有する第１のビットの位置にバイト位置が等しくなるまで、ネスティングＳＥＩメッセージ構造内のＳＥＩメッセージを構文解析する。したがって、ネスティングＳＥＩメッセージ構造が、ＲＢＳＰ構造内の他のデータ（すなわち、ＲＢＳＰトレーリングビット以外のデータ）に先行した場合、これらの従来のシンタックス構造を実装するデコーダは、ネスティングＳＥＩメッセージ構造内のＳＥＩメッセージとして他のデータを構文解析することを試み、構文解析エラーを生じる。
【００２３】
[0032]  本明細書で開示する実施形態は、デコーダが、ＲＢＳＰトレーリングビットではなく、ネスティングＳＥＩメッセージ構造内のＳＥＩメッセージの数に基づいて、ＳＥＩメッセージを構文解析し得るように、ネスティングＳＥＩメッセージのための従来のシンタックス構造（たとえば、スケーラブルネスティングＳＥＩメッセージ構造および／またはビットストリームパーティションネスティングＳＥＩメッセージ構造）を変更することによって、ネスティングＳＥＩメッセージ構造に関係するこれらの構文解析エラーを防ぐ。たとえば、ネスティングＳＥＩメッセージ構造内のＳＥＩメッセージの数の指示が、ネスティングＳＥＩメッセージ構造内にシンタックス要素として符号化され得る。このシンタックス要素は、次いで、その数のＳＥＩメッセージのみが構文解析されることを保証するために、復号中に使用され得る。
【００２４】
[0033]  いくつかの実施形態について、ＨＥＶＣおよび／またはＨ．２６４規格のコンテキストにおいて本明細書で説明するが、本明細書で開示するシステムおよび方法が任意の好適なビデオコーディング規格に適用可能であり得ることを、当業者は諒解されよう。たとえば、本明細書で開示する実施形態は、以下の規格、すなわち、国際電気通信連合（ＩＴＵ）電気通信標準化部門（ＩＴＵ−Ｔ）Ｈ．２６１、国際標準化機構／国際電気標準会議（ＩＳＯ／ＩＥＣ）ＭＰＥＧ−１  Ｖｉｓｕａｌ、ＩＴＵ−Ｔ  Ｈ．２６２またはＩＳＯ／ＩＥＣ  ＭＰＥＧ−２  Ｖｉｓｕａｌ、ＩＴＵ−Ｔ  Ｈ．２６３、ＩＳＯ／ＩＥＣ  ＭＰＥＧ−４  Ｖｉｓｕａｌ、およびそれのスケーラブル拡張とマルチビュー拡張とを含む（ＩＳＯ／ＩＥＣ  ＭＰＥＧ−４  ＡＶＣとしても知られる）ＩＴＵ−Ｔ  Ｈ．２６４のうちの１つまたは複数に適用可能であり得る。また、本開示で説明する技法は、将来において開発される規格の一部になり得る。言い換えれば、本開示で説明する技法は、前に開発されたビデオコーディング規格、現在開発中のビデオコーディング規格、および次のビデオコーディング規格に適用可能であり得る。
【００２５】
[0034]  ＨＥＶＣは、概して、多くの点で、前のビデオコーディング規格のフレームワークに従う。ＨＥＶＣにおける予測のユニットは、いくつかの前のビデオコーディング規格における予測のユニット（たとえば、マクロブロック（macroblock））とは異なる。事実上、いくつかの前のビデオコーディング規格において理解されているようなマクロブロックの概念は、ＨＥＶＣでは存在しない。マクロブロックは、考えられる利益の中でも、高いフレキシビリティを与え得る、４分木方式に基づく階層構造と置き換えられる。たとえば、ＨＥＶＣ方式内で、３つのタイプのブロック、コーディングユニット（ＣＵ）、予測ユニット（ＰＵ：Prediction Unit）、および変換ユニット（ＴＵ：Transform Unit）が定義される。ＣＵは領域スプリッティングの基本ユニットを指すことがある。ＣＵはマクロブロックの概念に類似すると見なされ得るが、ＨＥＶＣは、ＣＵの最大サイズを制限せず、コンテンツ適応性を改善するために４つの等しいサイズのＣＵへの再帰的スプリッティングを可能にし得る。ＰＵはインター／イントラ予測の基本ユニットと見なされ得、単一のＰＵは、不規則な画像パターンを効果的にコーディングするために、複数の任意の形状パーティションを含んでいることがある。ＴＵは変換の基本ユニットと見なされ得る。ＴＵは、ＰＵとは無関係に定義され得るが、ＴＵのサイズは、ＴＵが属するＣＵのサイズに制限され得る。３つの異なる概念へのブロック構造のこの分離は、各ユニットがユニットのそれぞれの役割に従って最適化されることを可能にし得、それによりコーディング効率が改善され得る。
【００２６】
[0035]  単に説明の目的で、本明細書で開示するいくつかの実施形態について、ビデオデータの２つのレイヤ（たとえば、ベースレイヤなどの下位レイヤ、およびエンハンスメントレイヤなどの上位レイヤ）を含む例を用いて説明する。ビデオデータの「レイヤ」は、概して、ビュー、フレームレート、解像度などの少なくとも１つの共通の特性を有するピクチャのシーケンスを指すことがある。たとえば、レイヤは、マルチビュービデオデータの特定のビュー（たとえば、パースペクティブ）に関連するビデオデータを含み得る。別の例として、レイヤは、スケーラブルビデオデータの特定のレイヤに関連するビデオデータを含み得る。したがって、本開示は、ビデオデータのレイヤおよびビューを互換的に指すことがある。すなわち、ビデオデータのビューはビデオデータのレイヤと呼ばれることがあり、ビデオデータのレイヤはビデオデータのビューと呼ばれることがある。さらに、（マルチレイヤビデオコーダまたはマルチレイヤエンコーダデコーダとも呼ばれる）マルチレイヤコーデックは、マルチビューコーデックまたはスケーラブルコーデック（たとえば、ＭＶ−ＨＥＶＣ、３Ｄ−ＨＥＶＣ、ＳＨＶＣ、または別のマルチレイヤコーディング技法を使用するビデオデータを符号化および／または復号するように構成されたコーデック）を共同で指すことがある。ビデオ符号化およびビデオ復号は両方とも、一般にビデオコーディングと呼ばれることがある。そのような例は、複数のベースレイヤおよび／またはエンハンスメントレイヤを含む構成に適用可能であり得ることを理解されたい。さらに、説明を簡単にするために、以下の開示は、いくつかの実施形態に関して「フレーム（）」または「ブロック」という用語を含む。ただし、これらの用語は限定的なものではない。たとえば、以下で説明する技法は、ブロック（たとえば、ＣＵ、ＰＵ、ＴＵ、マクロブロックなど）、スライス、フレームなど、任意の好適なビデオユニットとともに使用され得る。
【００２７】
ビデオコーディング規格（Video Coding Standards）
[0036]  ビデオ画像、ＴＶ画像、静止画像、あるいはビデオレコーダまたはコンピュータによって生成された画像など、デジタル画像は、水平ラインおよび垂直ラインで構成されたピクセルまたはサンプルからなり得る。単一の画像中のピクセルの数は一般に数万個である。各ピクセルは、一般に、ルミナンス情報とクロミナンス情報とを含んでいる。圧縮がなければ、画像エンコーダから画像デコーダに搬送されるべき情報の甚だしい量は、リアルタイム画像送信を不可能にするであろう。送信されるべき情報の量を低減するために、ＪＰＥＧ、ＭＰＥＧおよびＨ．２６３規格など、いくつかの異なる圧縮方法が開発された。
【００２８】
[0037]  ビデオコーディング規格は、ＩＴＵ−Ｔ  Ｈ．２６１、ＩＳＯ／ＩＥＣ  ＭＰＥＧ−１  Ｖｉｓｕａｌ、ＩＴＵ−Ｔ  Ｈ．２６２またはＩＳＯ／ＩＥＣ  ＭＰＥＧ−２  Ｖｉｓｕａｌ、ＩＴＵ−Ｔ  Ｈ．２６３、ＩＳＯ／ＩＥＣ  ＭＰＥＧ−４  Ｖｉｓｕａｌ、ならびにそれぞれＳＶＣおよびＭＶＣと称する、それのスケーラブルおよびマルチビューコーディング拡張を含む、（ＩＳＯ／ＩＥＣ  ＭＰＥＧ−４  ＡＶＣとしても知られる）ＩＴＵ−Ｔ  Ｈ．２６４を含む。
【００２９】
[0038]  さらに、ＨＥＶＣが、ＩＴＵ−Ｔビデオコーディングエキスパートグループ（ＶＣＥＧ）とＩＳＯ／ＩＥＣモーションピクチャエキスパートグループ（ＭＰＥＧ）とのジョイントコラボレーションチームオンビデオコーディング（ＪＣＴ−ＶＣ）によって開発されている。ＨＥＶＣのマルチビュー拡張すなわちＭＶ−ＨＥＶＣ、およびＳＨＶＣと称されるＨＥＶＣのスケーラブル拡張も、それぞれＪＣＴ−３Ｖ（ＩＴＵ−Ｔ／ＩＳＯ／ＩＥＣジョイントコラボレーティブチームオン３Ｄビデオコーディング拡張開発）およびＪＣＴ−ＶＣによって開発されている。
【００３０】
ビデオコーディングシステム（Video Coding System）
[0039]  添付の図面を参照しながら新規のシステム、装置、および方法の様々な態様について以下でより十分に説明する。しかしながら、本開示は、多くの異なる形態で実施され得、本開示全体にわたって提示する任意の特定の構造または機能に限定されるものと解釈すべきではない。むしろ、これらの態様は、本開示が周到で完全になり、本開示の範囲を当業者に十分に伝えるために与えられる。本明細書の教示に基づいて、本開示の範囲は、本開示の他の態様とは無関係に実装されるにせよ、本開示の他の態様と組み合わせられるにせよ、本明細書で開示する新規のシステム、装置、および方法のいかなる態様をもカバーするものであることを、当業者は諒解されたい。たとえば、本明細書に記載の態様をいくつ使用しても、装置は実装され得、または方法は実施され得る。さらに、本開示の範囲は、本明細書に記載された本開示の様々な態様に加えてまたはそれらの態様以外に、他の構造、機能、または構造および機能を使用して実施されるそのような装置または方法を包含するものである。本明細書で開示する任意の態様が請求項の１つまたは複数の要素によって実施され得ることを理解されたい。
【００３１】
[0040]  本明細書では特定の態様について説明するが、これらの態様の多くの変形および置換は本開示の範囲内に入る。好適な態様のいくつかの利益および利点が説明されるが、本開示の範囲は特定の利益、使用、または目的に限定されるものではない。むしろ、本開示の態様は、様々なワイヤレス技術、システム構成、ネットワーク、および伝送プロトコルに広く適用可能であるものとし、それらのうちのいくつかを例として、図および好適な態様についての以下の説明において示す。発明を実施するための形態および図面は、本開示を限定するものではなく説明するものにすぎず、本開示の範囲は添付の特許請求の範囲およびそれの均等物によって定義される。
【００３２】
[0041]  図１は、（たとえば、ネスティングＳＥＩメッセージ構造内に備えられるＳＥＩメッセージの数を示すシンタックス要素を、ネスティングＳＥＩメッセージ構造中にコーディングすること、および／またはＳＥＩメッセージを構文解析するためにシンタックス要素を使用することによって）本明細書の他の場所で説明するＳＥＩメッセージの構文解析中の構文解析エラーをなくすかまたは低減するための技法を利用し得る、例示的なビデオコーディングシステム１０を示すブロック図である。本明細書で使用し説明する「ビデオコーダ（video coder）」という用語は、ビデオエンコーダとビデオデコーダの両方を総称的に指す。本開示では、「ビデオコーディング（video coding）」または「コーディング（coding）」という用語は、ビデオ符号化とビデオ復号とを総称的に指すことがある。
【００３３】
[0042]  図１に示されるように、ビデオコーディングシステム１０は、ソースデバイス１２と宛先デバイス１４とを含む。ソースデバイス１２は、符号化ビデオデータを生成する。宛先デバイス１４は、ソースデバイス１２によって生成された符号化ビデオデータを復号し得る。ソースデバイス１２は、コンピュータ可読記憶媒体または他の通信チャネルを含み得る通信チャネル１６を介してビデオデータを宛先デバイス１４に与えることができる。図１の例では、ソースデバイス１２および宛先デバイス１４は、別個のデバイスを構成する。しかしながら、ソースデバイス１２および宛先デバイス１４は、同じデバイス（図示せず）の一部であり得ることに留意されたい。
【００３４】
[0043]  ソースデバイス１２および宛先デバイス１４は、デスクトップコンピュータ、ノートブック（たとえば、ラップトップ）コンピュータ、タブレットコンピュータ、セットトップボックス、電話ハンドセット、いわゆる「スマート」フォンおよび／またはいわゆる「スマート」パッドなどのワイヤレス通信デバイス、テレビジョン、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲームコンソール、車内コンピュータ、ビデオストリーミングデバイス、アイウェアなど、エンティティ（たとえば、人間、動物、および／または別の被制御デバイス）によって（に）装着可能な（または着脱自在に取付け可能な）デバイス、ならびに／あるいはウェアラブルコンピューティングデバイス、エンティティ内で消費、摂取、または配置され得るデバイスまたは装置などを含む、広範囲にわたるデバイスをそれぞれ含み得る。ソースデバイス１２および宛先デバイス１４は、ワイヤレス通信（たとえば、セルラー通信、ローカルおよび／またはワイドエリア通信、ピアツーピア通信、ニアフィールド通信など）のために装備され得る。
【００３５】
[0044]  宛先デバイス１４は、復号されるべき符号化ビデオデータを、通信チャネル１６を介して受信し得る。通信チャネル１６は、ソースデバイス１２から宛先デバイス１４に符号化ビデオデータを移動すること（すなわち、通信することまたは送信すること）が可能なタイプの媒体またはデバイスを備え得る。たとえば、通信チャネル１６は、ソースデバイス１２が、符号化ビデオデータをリアルタイムで宛先デバイス１４に直接送信することを可能にするための通信媒体を備え得る。符号化ビデオデータは、ワイヤレス通信プロトコルなどの通信規格に従って変調され、宛先デバイス１４に送信され得る。通信媒体は、無線周波数（ＲＦ）スペクトルまたは１つまたは複数の物理伝送線路など、ワイヤレスまたはワイヤード通信媒体を備え得る。通信媒体は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはインターネットなどのグローバルネットワークなど、パケットベースネットワークの一部を形成し得る。通信媒体は、ルータ、スイッチ、基地局、またはソースデバイス１２から宛先デバイス１４への通信を可能にするために有用であり得る他の機器を含み得る。
【００３６】
[0045]  本開示のいくつかの実施形態では、符号化データは、出力インターフェース２２からストレージデバイスに出力され得る。そのような例では、チャネル１６は、ソースデバイス１２によって生成された符号化ビデオデータを記憶するストレージデバイスまたはコンピュータ可読記憶媒体に対応し得る。たとえば、宛先デバイス１４は、ディスクアクセスまたはカードアクセスを介してコンピュータ可読記憶媒体にアクセスし得る。同様に、符号化データは入力インターフェース２８によってコンピュータ可読記憶媒体からアクセスされ得る。コンピュータ可読記憶媒体は、ハードドライブ、Ｂｌｕ−ｒａｙ（登録商標）ディスク、ＤＶＤ、ＣＤ−ＲＯＭ、フラッシュメモリ、揮発性または不揮発性メモリ、あるいはビデオデータを記憶するための他のデジタル記憶媒体など、様々な分散されたまたはローカルにアクセスされるデータ記憶媒体のいずれかを含み得る。コンピュータ可読記憶媒体は、ソースデバイス１２によって生成された符号化ビデオを記憶し得るファイルサーバまたは別の中間ストレージデバイスに対応し得る。宛先デバイス１４は、ストリーミングまたはダウンロードを介して、コンピュータ可読記憶媒体から、記憶されたビデオデータにアクセスし得る。ファイルサーバは、符号化ビデオデータを記憶することと、その符号化ビデオデータを宛先デバイス１４に送信することとが可能なタイプのサーバであり得る。例示的ファイルサーバは、ウェブサーバ（たとえば、ウェブサイト用）、ファイル転送プロトコル（ＦＴＰ）サーバ、ネットワーク接続ストレージ（ＮＡＳ）デバイス、またはローカルディスクドライブを含む。宛先デバイス１４は、インターネット接続を含む標準のデータ接続を介して、符号化ビデオデータにアクセスし得る。これは、ファイルサーバに記憶された符号化ビデオデータにアクセスするのに好適であるワイヤレスチャネル（たとえば、ワイヤレスローカルエリアネットワーク（ＷＬＡＮ）接続）、ワイヤード接続（たとえば、デジタル加入者線（ＤＳＬ）、ケーブルモデムなど）、またはその両方の組合せを含み得る。コンピュータ可読記憶媒体からの符号化ビデオデータの送信は、ストリーミング送信、ダウンロード送信、またはその両方の組合せであり得る。
【００３７】
[0046]  本開示の技法は、ワイヤレス適用例または設定に加えて適用例または設定を適用することができる。本技法は、オーバージエアテレビジョン放送、ケーブルテレビジョン送信、衛星テレビジョン送信、動的適応ストリーミングオーバーハイパーテキスト転送プロトコル（ＨＴＴＰ）などのインターネットストリーミングビデオ送信、データ記憶媒体上に符号化されたデジタルビデオ、データ記憶媒体に記憶されたデジタルビデオの復号、または他の適用例など、様々なマルチメディア適用例のａをサポートするビデオコーディングに適用され得る。いくつかの実施形態では、システム１０は、ビデオストリーミング、ビデオ再生、ビデオブロードキャスティング、および／またはビデオテレフォニーなどの適用例をサポートするために、一方向または双方向ビデオ送信をサポートするように構成され得る。
【００３８】
[0047]  図１では、ソースデバイス１２は、ビデオソース１８と、ビデオエンコーダ２０と、出力インターフェース２２とを含む。宛先デバイス１４は、入力インターフェース２８と、ビデオデコーダ３０と、ディスプレイデバイス３２とを含む。ソースデバイス１２のビデオエンコーダ２０は、複数の規格（たとえば、ＨＥＶＣ）または規格拡張に準拠するビデオデータを含むビットストリームをコーディングするための技法を適用するように構成され得る。本開示の他の実施形態では、ソースデバイス１２および宛先デバイス１４は、他の構成要素または構成を含み得る。たとえば、ソースデバイス１２は、外部カメラなど、ビデオソース１８の「外部（external）」のビデオソース（すなわち、ビデオソース１８以外のソース）から、ビデオデータを受信し得る。同様に、宛先デバイス１４は、ディスプレイデバイス３２などの一体型ディスプレイデバイスを含むのではなく、外部ディスプレイデバイスとインターフェースし得る。
【００３９】
[0048]  ソースデバイス１２のビデオソース１８は、ビデオカメラなどのビデオキャプチャデバイス、以前にキャプチャされたビデオを含んでいるビデオアーカイブ、および／またはビデオコンテンツプロバイダからビデオを受信するためのビデオフィードインターフェースを含み得る。ビデオソース１８は、ソースビデオとしてのコンピュータグラフィックスベースのデータ、あるいはライブビデオ、アーカイブビデオ、および／またはコンピュータ生成ビデオの組合せを生成し得る。いくつかの実施形態では、ビデオソース１８がビデオカメラであることに基づいて、ソースデバイス１２および宛先デバイス１４は、いわゆる「カメラフォン」または「ビデオフォン」を形成し得る。キャプチャされたビデオ、プリキャプチャされたビデオ、および／またはコンピュータ生成ビデオは、ビデオエンコーダ２０によって符号化され得る。符号化ビデオ情報は、上記で説明したように、出力インターフェース２２によって、コンピュータ可読記憶媒体を含み得る通信チャネル１６に出力され得る。
【００４０】
[0049]  コンピュータ可読記憶媒体は、ワイヤレスブロードキャストまたはワイヤードネットワーク送信などの一時媒体、あるいはハードディスク、フラッシュドライブ、コンパクトディスク、デジタルビデオディスク、Ｂｌｕ−ｒａｙディスク、または他のコンピュータ可読媒体などの記憶媒体（たとえば、非一時的記憶媒体）を含み得る。ネットワークサーバ（図示せず）は、（たとえば、ネットワーク送信を介して）ソースデバイス１２から符号化ビデオデータを受信し、その符号化ビデオデータを宛先デバイス１４に与え得る。ディスクスタンピング設備など、媒体製造設備のコンピューティングデバイスは、ソースデバイス１２から符号化ビデオデータを受信し、その符号化ビデオデータを含んでいるディスクを生成し得る。したがって、通信チャネル１６は、様々な形態の１つまたは複数のコンピュータ可読記憶媒体を含むものと理解され得る。
【００４１】
[0050]  宛先デバイス１４の入力インターフェース２８は、通信チャネル１６を介して（たとえば、通信チャネル１６から、または通信チャネル１６上で）情報を受信することができる。通信チャネル１６を介して受信された情報は、ビデオエンコーダ２０によって定義され、ビデオデコーダ３０によって使用され得る、ブロックおよび／または他のコード化ユニット（たとえば、ピクチャのグループ（ＧＯＰ：group of picture））の特性および／または処理を記述するシンタックス要素を含む、シンタックス情報を含み得る。ディスプレイデバイス３２は、復号されたビデオデータを、たとえば、ユーザに対して表示し、陰極線管（ＣＲＴ）、液晶ディスプレイ（ＬＣＤ）、プラズマディスプレイ、有機発光ダイオード（ＯＬＥＤ）ディスプレイ、または別のタイプのディスプレイデバイスなど、様々なディスプレイデバイスのいずれかを含み得る。
【００４２】
[0051]  ビデオエンコーダ２０および／またはビデオデコーダ３０は、ＨＥＶＣ規格などのビデオコーディング規格に従って動作し得、ＨＥＶＣテストモデル（ＨＭ：HEVC Test Model）に準拠し得る。代替的に、ビデオエンコーダ２０およびビデオデコーダ３０は、代替的にＭＰＥＧ−４，Ｐａｒｔ１０，アドバンストビデオコーディング（ＡＶＣ）と呼ばれるＩＴＵ−Ｔ  Ｈ．２６４規格など、他のプロプライエタリ規格または業界規格、あるいはそのような規格の拡張に従って動作し得る。ただし、本開示の技法は、いかなる特定のコーディング規格にも限定されない。ビデオコーディング規格の他の例には、ＭＰＥＧ−２およびＩＴＵ−Ｔ  Ｈ．２６３がある。
【００４３】
[0052]  図１には示されていないが、いくつかの態様では、ビデオエンコーダ２０およびビデオデコーダ３０は、それぞれ、オーディオエンコーダおよびオーディオデコーダと統合され得、共通のデータストリーム中または別個のデータストリーム中のオーディオとビデオの両方の符号化を処理するために、適切なＭＵＸ−ＤＥＭＵＸユニット、あるいは他のハードウェアおよび／またはソフトウェアを含み得る。適用可能な場合、ＭＵＸ−ＤＥＭＵＸユニットは、ＩＴＵ  Ｈ．２２３マルチプレクサプロトコル、またはユーザデータグラムプロトコル（ＵＤＰ）などの他のプロトコルに準拠し得る。
【００４４】
[0053]  図１は一例にすぎず、（たとえば、ネスティングＳＥＩメッセージ構造中にコーディングされた、ＳＥＩメッセージの数を示すシンタックス要素を利用することによって）本明細書の他の場所で説明するＳＥＩメッセージの構文解析中の構文解析エラーをなくすかまたは低減するための技法は、符号化デバイスと復号デバイスとの間のデータ通信を必ずしも含むとは限らないビデオコーディング設定（たとえば、ビデオ符号化またはビデオ復号）に適用され得る。他の例では、データがローカルメモリから取り出されること、ネットワークを介してストリーミングされることなどが行われ得る。符号化デバイスがデータを符号化し、メモリに記憶し得、および／または復号デバイスがメモリからデータを取り出し、復号し得る。多くの例では、符号化および復号は、互いに通信しないが、メモリにデータを符号化し、および／またはメモリからデータを取り出して復号するだけであるデバイスによって実行される。
【００４５】
[0054]  ビデオエンコーダ２０およびビデオデコーダ３０はそれぞれ、１つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、ディスクリート論理、ソフトウェア、ハードウェア、ファームウェアまたはそれらの任意の組合せなど、様々な好適なエンコーダ回路のいずれかとして実装され得る。本技法が部分的にソフトウェアで実装されるとき、デバイスは、ソフトウェアのための命令を非一時的コンピュータ可読媒体に記憶し、本開示の技法を実行するために１つまたは複数のプロセッサを使用してハードウェアでその命令を実行し得る。ビデオエンコーダ２０およびビデオデコーダ３０の各々は１つまたは複数のエンコーダまたはデコーダ中に含まれ得、そのいずれも、それぞれのデバイスにおいて複合エンコーダ／デコーダ（コーデック）の一部として統合され得る。ビデオエンコーダ２０および／またはビデオデコーダ３０を含むデバイスは、集積回路、マイクロプロセッサ、および／またはセルラー電話などのワイヤレス通信デバイスを備え得る。
【００４６】
[0055]  ＪＣＴ−ＶＣは、ＨＥＶＣ規格の開発に取り組み続けている。ＨＥＶＣ規格化の取り組みは、ＨＥＶＣテストモデル（ＨＭ）と呼ばれるビデオコーディングデバイスの発展的モデルに基づく。ＨＭは、たとえば、ＩＴＵ−Ｔ  Ｈ．２６４／ＡＶＣに従う既存のデバイスに対してビデオコーディングデバイスのいくつかの追加の能力を仮定する。たとえば、Ｈ．２６４は９つのイントラ予測符号化モードを提供するが、ＨＭは３３個ものイントラ予測符号化モードを提供し得る。
【００４７】
[0056]  概して、ＨＭのワーキングモデルは、ビデオフレームまたはピクチャが、ルーマサンプルとクロマサンプルの両方を含む一連のツリーブロックまたは最大コーディングユニット（ＬＣＵ：largest coding unit）に分割され得ることを記載している。ビットストリーム内のシンタックスデータが、ピクセルの数に関して最大コーディングユニットであるＬＣＵのサイズを定義し得る。スライスは、コーディング順序でいくつかの連続するツリーブロックを含む。ビデオフレームまたはピクチャは、１つまたは複数のスライスに区分され得る。各ツリーブロックは、４分木に従ってコーディングユニット（ＣＵ）にスプリットされ得る。概して、４分木データ構造はＣＵごとに１つのノードを含み、ルートノードはツリーブロックに対応する。ＣＵが４つのサブＣＵにスプリットされた場合、ＣＵに対応するノードは４つのリーフノードを含み、リーフノードの各々はサブＣＵのうちの１つに対応する。
【００４８】
[0057]  ４分木データ構造の各ノードは、対応するＣＵのためのシンタックスデータを与え得る。たとえば、４分木のノードは、そのノードに対応するＣＵがサブＣＵにスプリットされるかどうかを示すスプリットフラグを含み得る。ＣＵのためのシンタックス要素は、再帰的に定義され得、ＣＵがサブＣＵにスプリットされるかどうかに依存し得る。ＣＵがさらにスプリットされない場合、そのＣＵはリーフＣＵと呼ばれる。本開示では、元のリーフＣＵの明示的スプリッティングが存在しない場合でも、リーフＣＵの４つのサブＣＵをリーフＣＵとも呼ぶ。たとえば、１６×１６サイズのＣＵがさらにスプリットされない場合、その１６×１６ＣＵが決してスプリットされなくても、４つの８×８サブＣＵはリーフＣＵとも呼ばれる。
【００４９】
[0058]  ＣＵは、ＣＵがサイズ差異を有しないことを除いて、Ｈ．２６４規格のマクロブロックと同様の目的を有する。たとえば、ツリーブロックは、（サブＣＵとも呼ばれる）４つの子ノードにスプリットされ得、各子ノードは、今度は親ノードとなり、別の４つの子ノードにスプリットされ得る。４分木のリーフノードと呼ばれる、最後のスプリットされていない子ノードは、リーフＣＵとも呼ばれるコーディングノードを備える。コード化ビットストリームに関連するシンタックスデータは、最大ＣＵ深さと呼ばれる、ツリーブロックがスプリットされ得る最大回数を定義し得、また、コーディングノードの最小サイズを定義し得る。それに応じて、ビットストリームは最小コーディングユニット（ＳＣＵ：smallest coding unit）をも定義し得る。本開示では、ＨＥＶＣのコンテキストにおけるＣＵ、ＰＵ、またはＴＵ、あるいは他の規格のコンテキストにおける同様のデータ構造（たとえば、Ｈ．２６４／ＡＶＣにおけるマクロブロックおよびそれのサブブロック）のいずれかを指すために「ブロック（block）」という用語を使用する。
【００５０】
[0059]  ＣＵは、コーディングノードと、コーディングノードに関連する予測ユニット（ＰＵ）および変換ユニット（ＴＵ）とを含む。ＣＵのサイズは、コーディングノードのサイズに対応し、形状が正方形でなければならない。ＣＵのサイズは、８×８ピクセルから最大６４×６４以上のピクセルをもつツリーブロックのサイズまでに及び得る。各ＣＵは、１つまたは複数のＰＵと、１つまたは複数のＴＵとを含んでいることがある。ＣＵに関連するシンタックスデータは、たとえば、ＣＵを１つまたは複数のＰＵに区分することを記述し得る。区分モードは、ＣＵが、スキップモード符号化またはダイレクトモード符号化されるか、イントラ予測モード符号化されるか、あるいはインター予測モード符号化されるかの間で異なり得る。ＰＵは、形状が非正方形になるように区分され得る。ＣＵに関連するシンタックスデータは、たとえば、４分木に従ってＣＵを１つまたは複数のＴＵに区分することも記述し得る。ＴＵは、形状が正方形または非正方形（たとえば、矩形）であり得る。
【００５１】
[0060]  ＨＥＶＣ規格は、ＣＵごとに異なり得るＴＵに従う変換を可能にする。ＴＵは、一般に、区分されたＬＣＵについて定義された所与のＣＵ内のＰＵのサイズに基づいてサイズ決定されるが、常にそうであるとは限らない。ＴＵは、一般にＰＵと同じサイズであるかまたはＰＵよりも小さい。いくつかの例では、ＣＵに対応する残差サンプルは、「残差４分木」（ＲＱＴ：residual quad tree）と呼ばれる４分木構造を使用して、より小さいユニットに再分割され得る。ＲＱＴのリーフノードは変換ユニット（ＴＵ）と呼ばれることがある。ＴＵに関連するピクセル差分値は、変換係数を生成するために変換され得、その変換係数は量子化され得る。
【００５２】
[0061]  リーフＣＵは、１つまたは複数の予測ユニット（ＰＵ）を含み得る。概して、ＰＵは、対応するＣＵの全部または一部分に対応する空間エリアを表し、そのＰＵの参照サンプルを取り出すためのデータを含み得る。その上、ＰＵは、予測に関係するデータを含む。たとえば、ＰＵがイントラモード符号化されるとき、ＰＵについてのデータは、ＰＵに対応するＴＵについてのイントラ予測モードを記述するデータを含み得る残差４分木（ＲＱＴ）中に含まれ得る。別の例として、ＰＵがインターモード符号化されるとき、ＰＵは、ＰＵのための１つまたは複数の動きベクトルを定義するデータを含み得る。ＰＵの動きベクトルを定義するデータは、たとえば、動きベクトルの水平成分、動きベクトルの垂直成分、動きベクトルの解像度（たとえば、１／４ピクセル精度もしくは１／８ピクセル精度）、動きベクトルが指す参照ピクチャ、および／または動きベクトルの参照ピクチャリスト（たとえば、リスト０、リスト１、もしくはリストＣ）を記述し得る。
【００５３】
[0062]  １つまたは複数のＰＵを有するリーフＣＵはまた、１つまたは複数の変換ユニット（ＴＵ）を含み得る。変換ユニットは、上記で説明したように、（ＴＵ４分木構造とも呼ばれる）ＲＱＴを使用して指定され得る。たとえば、スプリットフラグは、リーフＣＵが４つの変換ユニットにスプリットされるかどうかを示し得る。次いで、各変換ユニットは、さらなるサブＴＵにさらにスプリットされ得る。ＴＵがさらにスプリットされないとき、そのＴＵはリーフＴＵと呼ばれることがある。概して、イントラコーディングでは、リーフＣＵに属するすべてのリーフＴＵは同じイントラ予測モードを共有する。すなわち、概して、リーフＣＵのすべてのＴＵの予測値を計算するために同じイントラ予測モードが適用される。イントラコーディングでは、ビデオエンコーダは、イントラ予測モードを使用して各リーフＴＵの残差値を、ＴＵに対応するＣＵの一部と元のブロックとの間の差分として計算し得る。ＴＵは、必ずしもＰＵのサイズに制限されるとは限らない。したがって、ＴＵは、ＰＵよりも大きいことも小さいこともある。イントラコーディングでは、ＰＵは、同じＣＵの対応するリーフＴＵとコロケートされ得る。いくつかの例では、リーフＴＵの最大サイズは、対応するリーフＣＵのサイズに対応し得る。
【００５４】
[0063]  その上、リーフＣＵのＴＵはまた、残差４分木（ＲＱＴ）と呼ばれる、それぞれの４分木データ構造に関連付けられ得る。すなわち、リーフＣＵは、リーフＣＵがどのようにＴＵに区分されるかを示す４分木を含み得る。ＴＵ４分木のルートノードは概してリーフＣＵに対応し、ＣＵ４分木のルートノードは概してツリーブロック（またはＬＣＵ）に対応する。スプリットされないＲＱＴのＴＵはリーフＴＵと呼ばれる。概して、本開示では、特に明記しない限り、リーフＣＵおよびリーフＴＵに言及するためにそれぞれＣＵおよびＴＵという用語を使用する。
【００５５】
[0064]  ビデオシーケンスは、一般に、一連のビデオフレームまたはピクチャを含む。ピクチャのグループ（ＧＯＰ）は、概して、ビデオピクチャのうちの一連の１つまたは複数を備える。ＧＯＰは、ＧＯＰ中に含まれるいくつかのピクチャを記述するシンタックスデータを、ＧＯＰのヘッダ中、ピクチャのうちの１つまたは複数のヘッダ中、または他の場所に含み得る。ピクチャの各スライスは、それぞれのスライスのための符号化モードを記述するスライスシンタックスデータを含み得る。ビデオエンコーダ２０は、一般に、ビデオデータを符号化するために個々のビデオスライス内のビデオブロックに対して動作する。ビデオブロックはＣＵ内のコーディングノードに対応し得る。ビデオブロックは、固定サイズまたは変動サイズを有し得、指定されたコーディング規格に応じてサイズが異なり得る。
【００５６】
[0065]  一例として、ＨＭは、様々なＰＵサイズでの予測をサポートする。特定のＣＵのサイズが２Ｎ×２Ｎであると仮定すると、ＨＭは、２Ｎ×２ＮまたはＮ×ＮのＰＵサイズでのイントラ予測と、２Ｎ×２Ｎ、２Ｎ×Ｎ、Ｎ×２Ｎ、またはＮ×Ｎの対称ＰＵサイズでのインター予測とをサポートする。ＨＭはまた、２Ｎ×ｎＵ、２Ｎ×ｎＤ、ｎＬ×２Ｎ、およびｎＲ×２ＮのＰＵサイズでのインター予測のための非対称区分をサポートする。非対称区分では、ＣＵの一方向は区分されないが、他の方向は２５％と７５％とに区分される。２５％の区分に対応するＣＵの部分は、「ｎ」とその後ろに付く「Ｕｐ」、「Ｄｏｗｎ」、「Ｌｅｆｔ」、または「Ｒｉｇｈｔ」という表示によって示される。したがって、たとえば、「２Ｎ×ｎＵ」は、上部の２Ｎ×０．５Ｎ  ＰＵと下部の２Ｎ×１．５Ｎ  ＰＵとで水平方向に区分された２Ｎ×２Ｎ  ＣＵを指す。
【００５７】
[0066]  本開示では、「Ｎ×Ｎ（NxN）」および「Ｎ×Ｎ（N by N）」は、垂直寸法および水平寸法に関するビデオブロックのピクセル寸法、たとえば、１６×１６（16x16）ピクセルまたは１６×１６（16 by 16）ピクセルを指すために互換的に使用され得る。概して、１６×１６ブロックは、垂直方向に１６ピクセルを有し（ｙ＝１６）、水平方向に１６ピクセルを有する（ｘ＝１６）。同様に、Ｎ×Ｎブロックは、概して、垂直方向にＮピクセルを有し、水平方向にＮピクセルを有し、ここで、Ｎは非負整数値を表す。ブロック中のピクセルは行および列に配列され得る。その上、ブロックは、必ずしも、水平方向において垂直方向と同じ数のピクセルを有する必要があるとは限らない。たとえば、ブロックは、ＮｘＭピクセルを備え得、ここで、Ｍは、必ずしもＮに等しいとは限らない。
【００５８】
[0067]  ＣＵのＰＵを使用したイントラ予測コーディングまたはインター予測コーディングの後に、ビデオエンコーダ２０は、ＣＵのＴＵのための残差データを計算し得る。ＰＵは、（ピクセル領域とも呼ばれる）空間領域において予測ピクセルデータを生成する方法またはモードを記述するシンタックスデータを備え得、ＴＵは、変換、たとえば、残差ビデオデータへの離散サイン変換（ＤＳＴ）、離散コサイン変換（ＤＣＴ）、整数変換、ウェーブレット変換、または概念的に同様の変換の適用後に、変換領域において係数を備え得る。残差データは、符号化されていないピクチャのピクセルと、ＰＵに対応する予測値との間のピクセル差分に対応し得る。ビデオエンコーダ２０は、ＣＵのための残差データを含むＴＵを形成し、次いで、ＣＵのための変換係数を生成するためにＴＵを変換し得る。
【００５９】
[0068]  変換係数を生成するための任意の変換の後に、ビデオエンコーダ２０は変換係数の量子化を実行し得る。量子化は、それの最も広い通常の意味を有することが意図された広義の用語である。一実施形態では、量子化は、係数を表すために使用されるデータの量をできるだけ低減するために変換係数が量子化され、さらなる圧縮を行うプロセスを指す。量子化プロセスは、係数の一部または全部に関連するビット深度を低減し得る。たとえば、量子化中にｎビット値がｍビット値に切り捨てられ得、ここで、ｎはｍよりも大きい。
【００６０】
[0069]  量子化の後に、ビデオエンコーダ２０は、変換係数を走査し、量子化変換係数を含む２次元行列から１次元ベクトルを生成し得る。走査は、アレイの前部により高いエネルギー（したがって、より低い周波数）係数を配置し、アレイの後部により低いエネルギー（したがって、より高い周波数）係数を配置するように設計され得る。いくつかの例では、ビデオエンコーダ２０は、エントロピー符号化され得るシリアル化ベクトル（serialized vector）を生成するために、量子化変換係数を走査するためにあらかじめ定義された走査順序を利用し得る。他の例では、ビデオエンコーダ２０は適応型走査を実行し得る。１次元ベクトルを形成するために量子化変換係数を走査した後に、ビデオエンコーダ２０は、たとえば、コンテキスト適応型可変長コーディング（ＣＡＶＬＣ：context-adaptive variable length coding）、コンテキスト適応型バイナリ算術コーディング（ＣＡＢＡＣ：context-adaptive binary arithmetic coding）、シンタックスベースコンテキスト適応型バイナリ算術コーディング（ＳＢＡＣ：syntax-based context-adaptive binary arithmetic coding）、確率間隔区分エントロピー（ＰＩＰＥ：Probability Interval Partitioning Entropy）コーディング、または別のエントロピー符号化方法に従って１次元ベクトルをエントロピー符号化し得る。ビデオエンコーダ２０はまた、ビデオデータを復号する際にビデオデコーダ３０が使用するための符号化ビデオデータに関連するシンタックス要素をエントロピー符号化し得る。
【００６１】
[0070]  ＣＡＢＡＣを実行するために、ビデオエンコーダ２０は、コンテキストモデル内のコンテキストを、送信されるべきシンボルに割り当て得る。コンテキストは、たとえば、シンボルの隣接値が非０であるか否かに関係し得る。ＣＡＶＬＣを実行するために、ビデオエンコーダ２０は、送信されるべきシンボルのための可変長コードを選択し得る。ＶＬＣ中のコードワードは、比較的より短いコードが優勢シンボルに対応し、より長いコードが劣勢シンボルに対応するように構成され得る。このようにして、ＶＬＣの使用は、たとえば、送信されるべき各シンボルのために等長コードワード（equal-length codeword）を使用するよりも、ビット節約を達成し得る。確率決定は、シンボルに割り当てられたコンテキストに基づき得る。
【００６２】
[0071]  ビデオエンコーダ２０はさらに、ブロックベースのシンタックスデータ、フレームベースのシンタックスデータ、およびＧＯＰベースのシンタックスデータなどのシンタックスデータを、たとえば、フレームヘッダ、ブロックヘッダ、スライスヘッダ、またはＧＯＰヘッダ中でビデオデコーダ３０に送り得る。ＧＯＰシンタックスデータは、それぞれのＧＯＰ中のフレームの数を記述し得、フレームシンタックスデータは、対応するフレームを符号化するために使用される符号化／予測モードを示し得る。
【００６３】
ビデオエンコーダ（Video Encoder）
[0072]  図２Ａは、本開示で説明する態様による技法を実装し得るビデオエンコーダ２０の一例を示すブロック図である。ビデオエンコーダ２０は、ＨＥＶＣの場合など、ビデオビットストリームのシングルレイヤを処理するように構成され得る。さらに、ビデオエンコーダ２０は、限定はしないが、本明細書の他の場所でより詳細に説明するＳＥＩメッセージ中の構文解析エラー（parsing error）を防ぐかまたは低減する方法と、関係するプロセスとを含む、本開示の技法のいずれかまたはすべてを実行するように構成され得る。一例として、レイヤ間予測ユニット６６が（提供されたとき）、本開示で説明する技法のいずれかまたはすべてを実行するように構成され得る。ただし、本開示の態様はそのように限定されない。いくつかの例では、本開示で説明する技法は、ビデオエンコーダ２０の様々な構成要素間で共有され得る。いくつかの例では、追加または代替として、プロセッサ（図示せず）が、本開示で説明する技法のいずれかまたはすべてを実行するように構成され得る。
【００６４】
[0073]  説明の目的で、本開示は、ＨＥＶＣコーディングのコンテキストにおいてビデオエンコーダ２０について説明する。ただし、本開示の技法は、他のコーディング規格または方法に適用可能であり得る。図２Ａのビデオエンコーダ２０はコーデックのシングルレイヤを示している。しかしながら、図２Ｂに関してさらに説明するように、ビデオエンコーダ２０の一部または全部はマルチレイヤコーデックに従う処理のために複製され得る。
【００６５】
[0074]  ビデオエンコーダ２０は、ビデオスライス内のビデオブロックの（イントラコーディング、インターコーディングまたはレイヤ間コーディングとも呼ばれる）イントラ予測、インター予測、およびレイヤ間予測を実行し得る。イントラコーディングは、所与のビデオフレームまたはピクチャ内のビデオの空間冗長性を低減または除去するために空間予測に依拠する。インターコーディングは、ビデオシーケンスの隣接フレームまたはピクチャ内のビデオの時間冗長性を低減または除去するために時間予測に依拠する。レイヤ間コーディングは、同じビデオコーディングシーケンス内の異なる（１つまたは複数の）レイヤ内のビデオに基づく予測に依拠する。イントラモード（Ｉモード）は、いくつかの空間ベースのコーディングモードのいずれかを指すことがある。単方向予測（Ｐモード）または双方向予測（Ｂモード）などのインターモードは、いくつかの時間ベースのコーディングモードのいずれかを指すことがある。
【００６６】
[0075]  図２Ａに示されているように、ビデオエンコーダ２０は、符号化されるべきビデオフレーム内の現在ビデオブロックを受信する。図２Ａの例では、ビデオエンコーダ２０は、モード選択ユニット４０と、参照フレームメモリ６４と、加算器５０と、変換処理ユニット５２と、量子化ユニット５４と、エントロピー符号化ユニット５６とを含む。モード選択ユニット４０は、動き補償ユニット４４と、動き推定ユニット４２と、イントラ予測ユニット４６と、レイヤ間予測ユニット６６と、パーティションユニット４８とを含む。参照フレームメモリ６４は復号ピクチャバッファを含み得る。復号ピクチャバッファは、それの通常の意味を有する広義の用語であり、いくつかの実施形態では、参照フレームのビデオコーデック管理型データ構造を指す。
【００６７】
[0076]  ビデオブロック再構成のために、ビデオエンコーダ２０はまた、逆量子化ユニット５８と、逆変換ユニット６０と、加算器６２とを含む。再構成されたビデオからブロッキネスアーティファクト（blockiness artifact）を除去するためにブロック境界をフィルタ処理するためのデブロッキングフィルタ（図２Ａに図示せず）も含まれ得る。所望される場合、デブロッキングフィルタは、一般に、加算器６２の出力をフィルタ処理することになる。（ループ中またはループ後の）追加のフィルタもデブロッキングフィルタに加えて使用され得る。そのようなフィルタは、簡潔のために示されていないが、所望される場合、（ループ内フィルタとして）加算器５０の出力をフィルタ処理し得る。
【００６８】
[0077]  符号化プロセス中に、ビデオエンコーダ２０は、コーディングされるべきビデオフレームまたはスライスを受信する。フレームまたはスライスは複数のビデオブロックに分割され得る。動き推定ユニット４２および動き補償ユニット４４は、時間予測を行うために、１つまたは複数の参照フレーム中の１つまたは複数のブロックに対する受信されたビデオブロックのインター予測コーディングを実行する。イントラ予測ユニット４６は、代替的に、空間予測を行うために、コーディングされるべきブロックと同じフレームまたはスライス中の１つまたは複数の隣接ブロックに対する受信されたビデオブロックのイントラ予測コーディングを実行し得る。ビデオエンコーダ２０は、たとえば、ビデオデータのブロックごとに適切なコーディングモードを選択するために、複数のコーディングパスを実行し得る。
【００６９】
[0078]  その上、パーティションユニット４８は、前のコーディングパスにおける前の区分方式の評価に基づいて、ビデオデータのブロックをサブブロックに区分し得る。たとえば、パーティションユニット４８は、最初にフレームまたはスライスをＬＣＵに区分し、レートひずみ分析（たとえば、レートひずみ最適化など）に基づいてＬＣＵの各々をサブＣＵに区分し得る。モード選択ユニット４０は、さらに、サブＣＵへのＬＣＵの区分を示す４分木データ構造を生成し得る。４分木のリーフノードＣＵは、１つまたは複数のＰＵと１つまたは複数のＴＵとを含み得る。
【００７０】
[0079]  モード選択ユニット４０は、たとえば、誤差結果に基づいてコーディングモード、すなわち、イントラ、インター、またはレイヤ間予測モードのうちの１つを選択し、得られたイントラ、インター、またはレイヤ間コーディングされたブロックを、残差ブロックデータを生成するために加算器５０に与え、参照フレームとして使用するための符号化ブロックを再構成するために加算器６２に与え得る。モード選択ユニット４０はまた、動きベクトル、イントラモードインジケータ、パーティション情報、および他のそのようなシンタックス情報など、シンタックス要素をエントロピー符号化ユニット５６に与える。
【００７１】
[0080]  動き推定ユニット４２と動き補償ユニット４４とは、高度に統合され得るが、概念的な目的のために別々に示されている。動き推定ユニット４２によって実行される動き推定は、ビデオブロックの動きを推定する動きベクトルを生成するプロセスである。動きベクトルは、たとえば、現在フレーム（または他のコード化ユニット）内でコーディングされている現在ブロックに対する参照フレーム（または他のコード化ユニット）内の予測ブロックに対する現在ビデオフレームまたはピクチャ内のビデオブロックのＰＵの変位を示し得る。予測ブロックは、絶対差分和（ＳＡＤ：sum of absolute difference）、２乗差分和（ＳＳＤ：sum of square difference）、または他の差分メトリックによって決定され得るピクセル差分に関して、コーディングされるべきブロックにぴったり一致することがわかるブロックである。いくつかの例では、ビデオエンコーダ２０は、参照フレームメモリ６４に記憶された参照ピクチャのサブ整数ピクセル位置の値を計算し得る。たとえば、ビデオエンコーダ２０は、参照ピクチャの１／４ピクセル位置、１／８ピクセル位置、または他の分数ピクセル位置の値を補間し得る。したがって、動き推定ユニット４２は、フルピクセル位置と分数ピクセル位置とに対する動き探索を実行し、分数ピクセル精度（fractional pixel precision）で動きベクトルを出力し得る。
【００７２】
[0081]  動き推定ユニット４２は、ＰＵの位置を参照ピクチャの予測ブロックの位置と比較することによって、インターコード化スライス中のビデオブロックのＰＵのための動きベクトルを計算する。参照ピクチャは、第１の参照ピクチャリスト（リスト０）または第２の参照ピクチャリスト（リスト１）から選択され得、それらの参照ピクチャリストの各々は、参照フレームメモリ６４に記憶された１つまたは複数の参照ピクチャを識別する。動き推定ユニット４２は、計算された動きベクトルをエントロピー符号化ユニット５６と動き補償ユニット４４とに送る。
【００７３】
[0082]  動き補償ユニット４４によって実行される動き補償は、動き推定ユニット４２によって決定された動きベクトルに基づいて予測ブロックをフェッチまたは生成することを伴い得る。動き推定ユニット４２および動き補償ユニット４４は、いくつかの例では、機能的に統合され得る。現在ビデオブロックのＰＵのための動きベクトルを受信すると、動き補償ユニット４４は、動きベクトルが参照ピクチャリストのうちの１つにおいて指す予測ブロックの位置を特定し得る。加算器５０は、以下で説明するように、コーディングされている現在ビデオブロックのピクセル値から予測ブロックのピクセル値を減算し、ピクセル差分値を形成することによって、残差ビデオブロックを形成する。いくつかの実施形態では、動き推定ユニット４２はルーマ成分に対して動き推定を実行することができ、動き補償ユニット４４は、クロマ成分とルーマ成分の両方のためにルーマ成分に基づいて計算された動きベクトルを使用することができる。モード選択ユニット４０は、ビデオスライスのビデオブロックを復号する際にビデオデコーダ３０が使用するためのビデオブロックとビデオスライスとに関連するシンタックス要素を生成し得る。
【００７４】
[0083]  イントラ予測ユニット４６は、上記で説明したように、動き推定ユニット４２と動き補償ユニット４４とによって実行されるインター予測の代替として、現在ブロックをイントラ予測または計算し得る。特に、イントラ予測ユニット４６は、現在ブロックを符号化するために使用すべきイントラ予測モードを決定し得る。いくつかの例では、イントラ予測ユニット４６は、（たとえば、別個の符号化パス中に、）様々なイントラ予測モードを使用して現在ブロックを符号化し得、イントラ予測ユニット４６（または、いくつかの例では、モード選択ユニット４０）は、テストされたモードから使用するのに適切なイントラ予測モードを選択し得る。
【００７５】
[0084]  たとえば、イントラ予測ユニット４６は、様々なテストされたイントラ予測モードのためのレートひずみ分析を使用してレートひずみ値を計算し、テストされたモードの中で最良のレートひずみ特性を有するイントラ予測モードを選択し得る。レートひずみ分析は、概して、符号化ブロックと、符号化ブロックを生成するために符号化された元の符号化されていないブロックとの間のひずみ（または誤差）の量、ならびに符号化ブロックを生成するために使用されるビットレート（すなわち、ビット数）を決定する。イントラ予測ユニット４６は、どのイントラ予測モードがブロックについて最良のレートひずみ値を呈するかを決定するために、様々な符号化ブロックのためのひずみおよびレートから比を計算し得る。
【００７６】
[0085]  ブロックのためのイントラ予測モードを選択した後に、イントラ予測ユニット４６は、ブロックのための選択されたイントラ予測モードを示す情報をエントロピー符号化ユニット５６に与え得る。エントロピー符号化ユニット５６は、選択されたイントラ予測モードを示す情報を符号化し得る。ビデオエンコーダ２０は、複数のイントラ予測モードインデックステーブルおよび複数の変更されたイントラ予測モードインデックステーブル（コードワードマッピングテーブルとも呼ばれる）と、様々なブロックの符号化コンテキストの定義と、コンテキストの各々について使用すべき、最確イントラ予測モード、イントラ予測モードインデックステーブル、および変更されたイントラ予測モードインデックステーブルの指示とを含み得る構成データを送信ビットストリーム中に含め得る。
【００７７】
[0086]  ビデオエンコーダ２０はレイヤ間予測ユニット６６を含み得る。レイヤ間予測ユニット６６は、ＳＶＣにおいて利用可能である１つまたは複数の異なるレイヤ（たとえば、ベースレイヤまたは参照レイヤ）を使用して、現在ブロック（たとえば、エンハンスメントレイヤ中の現在ブロック）を予測するように構成される。そのような予測はレイヤ間予測と呼ばれることがある。レイヤ間予測ユニット６６は、レイヤ間冗長性を低減するために予測方法を利用し、それによって、コーディング効率を改善し、計算リソース要件を低減する。レイヤ間予測のいくつかの例としては、レイヤ間イントラ予測、レイヤ間動き予測、およびレイヤ間残差予測がある。レイヤ間イントラ予測は、エンハンスメントレイヤ中の現在ブロックを予測するために、ベースレイヤ中のコロケートブロックの再構成を使用する。レイヤ間動き予測は、エンハンスメントレイヤ中の動作を予測するために、ベースレイヤの動き情報を使用する。レイヤ間残差予測は、エンハンスメントレイヤの残差を予測するために、ベースレイヤの残差を使用する。ベースレイヤとエンハンスメントレイヤとが異なる空間解像度を有するとき、時間スケーリング関数を使用する空間動きベクトルスケーリングおよび／またはレイヤ間位置マッピングが、以下でより詳細に説明するように、レイヤ間予測ユニット６６によって実行され得る。
【００７８】
[0087]  ビデオエンコーダ２０は、コーディングされている元のビデオブロックから、モード選択ユニット４０からの予測データを減算することによって残差ビデオブロックを形成する。加算器５０は、この減算演算を実行する１つまたは複数の構成要素を表す。変換処理ユニット５２は、離散コサイン変換（ＤＣＴ）または概念的に同様の変換などの変換を残差ブロックに適用し、残差変換係数値を備えるビデオブロックを生成する。変換処理ユニット５２は、ＤＣＴと概念的に同様である他の変換を実行し得る。たとえば、離散サイン変換（ＤＳＴ）、ウェーブレット変換、整数変換、サブバンド変換または他のタイプの変換も使用され得る。
【００７９】
[0088]  変換処理ユニット５２は、変換を残差ブロックに適用し、残差変換係数のブロックを生成することができる。変換は、残差情報をピクセル値領域から周波数領域などの変換領域に変換し得る。変換処理ユニット５２は、得られた変換係数を量子化ユニット５４に送り得る。量子化ユニット５４は、ビットレートをさらに低減するために変換係数を量子化する。量子化プロセスは、係数の一部または全部に関連するビット深度を低減し得る。量子化の程度は、量子化パラメータを調整することによって変更され得る。いくつかの例では、量子化ユニット５４は、次いで、量子化変換係数を含む行列の走査を実行し得る。代替的に、エントロピー符号化ユニット５６が走査を実行し得る。
【００８０】
[0089]  量子化の後に、エントロピー符号化ユニット５６は、量子化変換係数をエントロピー符号化する。たとえば、エントロピー符号化ユニット５６は、コンテキスト適応型可変長コーディング（ＣＡＶＬＣ）、コンテキスト適応型バイナリ算術コーディング（ＣＡＢＡＣ）、シンタックスベースコンテキスト適応型バイナリ算術コーディング（ＳＢＡＣ）、確率間隔区分エントロピー（ＰＩＰＥ）コーディングまたは別のエントロピーコーディング技法を実行し得る。コンテキストベースエントロピーコーディングの場合、コンテキストは隣接ブロックに基づき得る。エントロピー符号化ユニット５６によるエントロピーコーディングの後に、符号化ビットストリームは、別のデバイス（たとえば、ビデオデコーダ３０）に送信されるか、あるいは後で送信するかまたは取り出すためにアーカイブされ得る。
【００８１】
[0090]  逆量子化ユニット５８および逆変換ユニット６０は、（たとえば、参照ブロックとして後で使用するために）ピクセル領域において残差ブロックを再構成するために、それぞれ逆量子化および逆変換を適用する。動き補償ユニット４４は、残差ブロックを参照フレームメモリ６４のフレームのうちの１つの予測ブロックに加算することによって参照ブロックを計算し得る。動き補償ユニット４４はまた、動き推定において使用するためのサブ整数ピクセル値を計算するために、再構成された残差ブロックに１つまたは複数の補間フィルタを適用し得る。加算器６２は、参照フレームメモリ６４に記憶するための再構成されたビデオブロックを生成するために、再構成された残差ブロックを、動き補償ユニット４４によって生成された動き補償予測ブロックに加算する。再構成されたビデオブロックは、後続のビデオフレーム中のブロックをインターコーディングするために動き推定ユニット４２および動き補償ユニット４４によって参照ブロックとして使用され得る。
【００８２】
マルチレイヤビデオエンコーダ（Multi-Layer Video Encoder）
[0091]  図２Ｂは、本開示で説明する態様による技法を実装し得る（単にビデオエンコーダ２１とも呼ばれる）マルチレイヤビデオエンコーダ２１の一例を示すブロック図である。ビデオエンコーダ２１は、ＳＨＶＣ、３Ｄ−ＨＥＶＣ、および／またはＭＶ−ＨＥＶＣの場合など、マルチレイヤビデオフレームを処理するように構成され得る。さらに、ビデオエンコーダ２１は、限定はしないが、（たとえば、ＳＥＩメッセージの数を示すシンタックス要素を、ネスティングＳＥＩメッセージ構造中にコーディングすることによって）本明細書の他の場所で説明するＳＥＩメッセージの構文解析中の構文解析エラーをなくすかまたは低減するための方法を含む、本開示の技法のいずれかまたはすべてを実行するように構成され得る。
【００８３】
[0092]  ビデオエンコーダ２１はビデオエンコーダ２０Ａとビデオエンコーダ２０Ｂとを含み、それらの各々は図２Ａのビデオエンコーダ２０として構成され得、ビデオエンコーダ２０に関して上記で説明した機能を実行し得る。さらに、参照番号の再利用によって示されるように、ビデオエンコーダ２０Ａおよび２０Ｂは、ビデオエンコーダ２０中に含まれる同じまたは同様のシステムとサブシステムとのうちの少なくともいくつかを含み得る。ビデオエンコーダ２１は、２つのビデオエンコーダ２０Ａおよび２０Ｂを含むものとして示されているが、ビデオエンコーダ２１は、そのようなものとして限定されず、任意の数のビデオエンコーダレイヤを含み得る。いくつかの実施形態では、ビデオエンコーダ２１はアクセスユニット（access unit）中の各ピクチャまたはフレームについてビデオエンコーダ２０を含み得る。たとえば、５つのピクチャを含むアクセスユニットは、５つのエンコーダレイヤを含むビデオエンコーダによって処理または符号化され得る。いくつかの実施形態では、ビデオエンコーダ２１は、アクセスユニット中のフレームよりも多くのエンコーダレイヤを含み得る。いくつかのそのような場合では、ビデオエンコーダレイヤのうちのいくつかは、いくつかのアクセスユニットを処理するときに非アクティブであり得る。
【００８４】
[0093]  ビデオエンコーダ２０Ａおよび２０Ｂに加えて、ビデオエンコーダ２１はリサンプリングユニット９０を含み得る。リサンプリングユニット９０は、場合によっては、たとえば、エンハンスメントレイヤを作成するために、受信されたビデオフレームのベースレイヤをアップサンプリングし得る。リサンプリングユニット９０は、フレームの受信されたベースレイヤに関連する特定の情報をアップサンプリングするが、他の情報をアップサンプリングしないことがある。たとえば、リサンプリングユニット９０は、ベースレイヤの空間サイズまたはピクセルの数をアップサンプリングし得るが、スライスの数またはピクチャ順序カウントは一定のままであり得る。場合によっては、リサンプリングユニット９０は、受信されたビデオを処理しないことがあるか、および／または随意であり得る。たとえば、場合によっては、モード選択ユニット４０がアップサンプリングを実行し得る。いくつかの実施形態では、リサンプリングユニット９０は、レイヤをアップサンプリングすることと、スライス境界ルールおよび／またはラスタ走査ルールのセットに準拠するために１つまたは複数のスライスを再編成、再定義、変更、または調整することとを行うように構成される。アクセスユニット中のベースレイヤまたは下位レイヤをアップサンプリングするものとして主に説明したが、場合によっては、リサンプリングユニット９０はレイヤをダウンサンプリングし得る。たとえば、ビデオのストリーミング中に帯域幅が低減された場合、フレームは、アップサンプリングされるのではなく、ダウンサンプリングされ得る。リサンプリングユニット９０は、クロッピングおよび／またはパディング演算をも実行するようにさらに構成され得る。
【００８５】
[0094]  リサンプリングユニット９０は、下位レイヤエンコーダ（たとえば、ビデオエンコーダ２０Ａ）の復号ピクチャバッファ１１４からピクチャまたはフレーム（またはピクチャに関連するピクチャ情報）を受信し、ピクチャ（または受信されたピクチャ情報）をアップサンプリングするように構成され得る。このアップサンプリングされたピクチャは、次いで、下位レイヤエンコーダと同じアクセスユニット中のピクチャを符号化するように構成された上位レイヤエンコーダ（たとえば、ビデオエンコーダ２０Ｂ）のモード選択ユニット４０に与えられ得る。場合によっては、上位レイヤエンコーダは、下位レイヤエンコーダから除去された１つのレイヤである。他の場合には、図２Ｂのレイヤ０ビデオエンコーダとレイヤ１エンコーダとの間に１つまたは複数の上位レイヤエンコーダがあり得る。
【００８６】
[0095]  場合によっては、リサンプリングユニット９０は省略またはバイパスされ得る。そのような場合、ビデオエンコーダ２０Ａの復号ピクチャバッファ６４からのピクチャは、直接、または少なくともリサンプリングユニット９０に与えられることなしに、ビデオエンコーダ２０Ｂのモード選択ユニット４０に与えられ得る。たとえば、ビデオエンコーダ２０Ｂに与えられたビデオデータと、ビデオエンコーダ２０Ａの復号ピクチャバッファ６４からの参照ピクチャとが同じサイズまたは解像度である場合、参照ピクチャは、リサンプリングなしにビデオエンコーダ２０Ｂに与えられ得る。
【００８７】
[0096]  いくつかの実施形態では、ビデオエンコーダ２１は、ビデオエンコーダ２０Ａにビデオデータを与える前に、ダウンサンプリングユニット９４を使用して下位レイヤエンコーダに与えられるべきビデオデータをダウンサンプリングする。代替的に、ダウンサンプリングユニット９４は、ビデオデータをアップサンプリングまたはダウンサンプリングすることが可能なリサンプリングユニット９０であり得る。また他の実施形態では、ダウンサンプリングユニット９４は省略され得る。
【００８８】
[0097]  図２Ｂに示されているように、ビデオエンコーダ２１は、マルチプレクサ９８、またはｍｕｘをさらに含み得る。ｍｕｘ９８は、ビデオエンコーダ２１から合成ビットストリームを出力することができる。合成ビットストリームは、ビデオエンコーダ２０Ａおよび２０Ｂの各々からビットストリームを取ることと、所与の時間において出力されるビットストリームを交替することとによって、作成され得る。場合によっては、２つの（または、３つ以上のビデオエンコーダレイヤの場合には、より多くの）ビットストリームからのビットが一度に１ビットずつ交替され得るが、多くの場合、ビットストリームは別様に合成され得る。たとえば、出力ビットストリームは、選択されたビットストリームを一度に１ブロックずつ交替することによって作成され得る。別の例では、出力ビットストリームは、ビデオエンコーダ２０Ａおよび２０Ｂの各々から非１：１比のブロックを出力することによって作成され得る。たとえば、ビデオエンコーダ２０Ａから出力された各ブロックについて、２つのブロックがビデオエンコーダ２０Ｂから出力され得る。いくつかの実施形態では、ｍｕｘ９８からの出力ストリームはプリプログラムされ得る。他の実施形態では、ｍｕｘ９８は、ソースデバイス１２上のプロセッサからなど、ビデオエンコーダ２１の外部のシステムから受信された制御信号に基づいて、ビデオエンコーダ２０Ａおよび２０Ｂからのビットストリームを合成し得る。制御信号は、ビデオソース１８からのビデオの解像度またはビットレートに基づいて、チャネル１６の帯域幅に基づいて、ユーザに関連するサブスクリプション（たとえば、有料サブスクリプション対無料サブスクリプション）に基づいて、またはビデオエンコーダ２１から望まれる解像度出力を決定するための他のファクタに基づいて生成され得る。
【００８９】
ビデオデコーダ（Video Decoder）
[0098]  図３Ａは、本開示で説明する態様による技法を実装し得るビデオデコーダ３０の一例を示すブロック図である。ビデオデコーダ３０は、ＨＥＶＣの場合など、ビデオビットストリームのシングルレイヤを処理するように構成され得る。さらに、ビデオデコーダ３０は、限定はしないが、本明細書の他の場所で説明するＳＥＩメッセージの構文解析中の構文解析エラーをなくすかまたは低減する方法を含む、本開示の技法のいずれかまたはすべてを実行するように構成され得る。一例として、レイヤ間予測ユニット７５が、限定はしないが、（たとえば、ネスティングＳＥＩメッセージ（nesting SEI message）内の、ＳＥＩメッセージの数を示すシンタックス要素を利用することによって）本明細書の他の場所で説明するＳＥＩメッセージの構文解析中の構文解析エラーをなくすかまたは低減するための方法を含む、本開示で説明する技法のいずれかまたはすべてを実行するように構成され得る。ただし、本開示の態様はそのように限定されない。いくつかの例では、これらの技法は、ビデオデコーダ３０の様々な構成要素間で共有され得る。いくつかの例では、追加または代替として、プロセッサ（図示せず）が、これらのいずれかまたはすべてを実行するように構成され得る。
【００９０】
[0099]  説明の目的で、本開示は、ＨＥＶＣコーディングのコンテキストにおいてビデオデコーダ３０について説明する。ただし、限定はしないが、本明細書の他の場所で説明するＳＥＩメッセージの構文解析中の構文解析エラーをなくすかまたは低減するための方法を含む、本開示の技法は、他のコーディング規格または方法に適用可能であり得る。図３Ａのビデオデコーダ３０はコーデックのシングルレイヤを示している。しかしながら、図３Ｂに関してさらに説明するように、ビデオデコーダ３０の一部または全部はマルチレイヤコーデックに従う処理のために複製され得る。
【００９１】
[00100]  図３Ａの例では、ビデオデコーダ３０は、エントロピー復号ユニット７０と、動き補償ユニット７２と、イントラ予測ユニット７４と、レイヤ間予測ユニット７５と、逆量子化ユニット７６と、逆変換ユニット７８と、参照フレームメモリ８２と、加算器８０とを含む。いくつかの実施形態では、動き補償ユニット７２および／またはイントラ予測ユニット７４がレイヤ間予測を実行するように構成され得、その場合、レイヤ間予測ユニット７５は省略され得る。ビデオデコーダ３０は、いくつかの例では、図２Ａ中のビデオエンコーダ２０に関して説明した符号化パスとは概して逆の復号パスを実行し得る。動き補償ユニット７２は、エントロピー復号ユニット７０から受信された動きベクトルに基づいて予測データを生成し得、イントラ予測ユニット７４は、エントロピー復号ユニット７０から受信されたイントラ予測モードインジケータに基づいて予測データを生成し得る。参照フレームメモリ８２は復号ピクチャバッファを含み得る。復号ピクチャバッファは、それの通常の意味を有する広義の用語であり、いくつかの実施形態では、参照フレームのビデオコーデック管理型データ構造を指す。
【００９２】
[00101]  復号プロセス中に、ビデオデコーダ３０は、ビデオエンコーダ２０から、符号化ビデオスライスのビデオブロックと、関連するシンタックス要素とを表す符号化ビデオビットストリームを受信する。ビデオデコーダ３０のエントロピー復号ユニット７０は、量子化係数と、動きベクトルまたはイントラ予測モードインジケータと、他のシンタックス要素とを生成するために、ビットストリームをエントロピー復号する。エントロピー復号ユニット７０は、動きベクトルと他の予測シンタックス要素とを動き補償ユニット７２に転送する。ビデオデコーダ３０は、ビデオスライスレベルおよび／またはビデオブロックレベルでシンタックス要素を受信し得る。
【００９３】
[00102]  ビデオスライスがイントラコード化（Ｉ）スライスとしてコーディングされるとき、イントラ予測ユニット７４は、シグナリングされたイントラ予測モードと、現在フレームまたはピクチャの、前に復号されたブロックからのデータとに基づいて、現在ビデオスライスのビデオブロックのための予測データを生成し得る。ビデオフレームがインターコード化（たとえば、Ｂ、Ｐ、またはＧＰＢ）スライスとしてコーディングされるとき、動き補償ユニット７２は、エントロピー復号ユニット７０から受信された動きベクトルと他のシンタックス要素とに基づいて、現在ビデオスライスのビデオブロックのための予測ブロックを生成する。予測ブロックは、参照ピクチャリストのうちの１つ内の参照ピクチャのうちの１つから生成され得る。ビデオデコーダ３０は、参照フレームメモリ８２に記憶された参照ピクチャに基づいて、デフォルト構成技法を使用して、参照フレームリスト、すなわち、リスト０とリスト１とを構成し得る。
【００９４】
[00103]  動き補償ユニット７２は、動きベクトルと他のシンタックス要素とを構文解析することによって現在ビデオスライスのビデオブロックのための予測情報を決定し、復号されている現在ビデオブロックのための予測ブロックを生成するために、その予測情報を使用する。たとえば、動き補償ユニット７２は、ビデオスライスのビデオブロックをコーディングするために使用される予測モード（たとえば、イントラまたはインター予測）と、インター予測スライスタイプ（たとえば、Ｂスライス、Ｐスライス、またはＧＰＢスライス）と、スライスのための参照ピクチャリストのうちの１つまたは複数のための構成情報と、スライスの各インター符号化ビデオブロックのための動きベクトルと、スライスの各インターコード化ビデオブロックのためのインター予測ステータスと、現在ビデオスライス中のビデオブロックを復号するための他の情報と、を決定するために、受信されたシンタックス要素のうちのいくつかを使用する。
【００９５】
[00104]  動き補償ユニット７２はまた、補間フィルタに基づいて補間を実行し得る。動き補償ユニット７２は、参照ブロックのサブ整数ピクセルの補間値を計算するために、ビデオブロックの符号化中にビデオエンコーダ２０によって使用された補間フィルタを使用し得る。この場合、動き補償ユニット７２は、受信されたシンタックス要素からビデオエンコーダ２０によって使用された補間フィルタを決定し、予測ブロックを生成するために、その補間フィルタを使用し得る。
【００９６】
[00105]  ビデオデコーダ３０はレイヤ間予測ユニット７５をも含み得る。レイヤ間予測ユニット７５は、ＳＶＣにおいて利用可能である１つまたは複数の異なるレイヤ（たとえば、ベースレイヤまたは参照レイヤ）を使用して、現在ブロック（たとえば、エンハンスメントレイヤ中の現在ブロック）を予測するように構成される。そのような予測はレイヤ間予測と呼ばれることがある。レイヤ間予測ユニット７５は、レイヤ間冗長性を低減するために予測方法を利用し、それによって、コーディング効率を改善し、計算リソース要件を低減する。レイヤ間予測のいくつかの例としては、レイヤ間イントラ予測、レイヤ間動き予測、およびレイヤ間残差予測がある。レイヤ間イントラ予測は、エンハンスメントレイヤ中の現在ブロックを予測するために、ベースレイヤ中のコロケートブロック（co-located block）の再構成を使用する。レイヤ間動き予測は、エンハンスメントレイヤ中の動作を予測するために、ベースレイヤの動き情報を使用する。レイヤ間残差予測は、エンハンスメントレイヤの残差を予測するために、ベースレイヤの残差を使用する。ベースレイヤとエンハンスメントレイヤとが異なる空間解像度を有するとき、空間動きベクトルスケーリングおよび／またはレイヤ間位置マッピングが、以下でより詳細に説明するように、時間スケーリング関数を使用してレイヤ間予測ユニット７５によって実行され得る。
【００９７】
[00106]  逆量子化ユニット７６は、ビットストリーム中で与えられ、エントロピー復号ユニット７０によって復号された、量子化変換係数を逆量子化（inverse quantize）（たとえば、逆量子化（de-quantize））する。逆量子化プロセスは、量子化の程度を決定し、同様に、適用されるべき逆量子化の程度を決定するための、ビデオスライス中の各ビデオブロックについてビデオデコーダ３０によって計算される量子化パラメータＱＰＹの使用を含み得る。
【００９８】
[00107]  逆変換ユニット７８は、ピクセル領域において残差ブロックを生成するために、逆変換（たとえば、逆ＤＣＴ、逆ＤＳＴ、逆整数変換、または概念的に同様の逆変換プロセス）を変換係数に適用する。
【００９９】
[00108]  動き補償ユニット７２が、動きベクトルと他のシンタックス要素とに基づいて現在ビデオブロックのための予測ブロックを生成した後、ビデオデコーダ３０は、逆変換ユニット７８からの残差ブロックを動き補償ユニット７２によって生成された対応する予測ブロックと加算することによって、復号されたビデオブロックを形成する。加算器９０は、この加算演算を実行する１つまたは複数の構成要素を表す。所望される場合、ブロッキネスアーティファクト（blockiness artifact）を除去するために、復号されたブロックをフィルタ処理するためにデブロッキングフィルタも適用され得る。ピクセル遷移を平滑化するために、または場合によってはビデオ品質を改善するために、他のループフィルタも（コーディングループ中またはコーディングループ後のいずれかで）使用され得る。所与のフレームまたはピクチャ中の復号されたビデオブロックは、次いで、その後の動き補償のために使用される参照ピクチャを記憶する参照フレームメモリ８２に記憶される。参照フレームメモリ８２はまた、図１のディスプレイデバイス３２などのディスプレイデバイス上での後の提示のために、復号されたビデオを記憶する。
【０１００】
マルチレイヤビデオデコーダ（Multi-Layer Video Decoder）
[00109]  図３Ｂは、本開示で説明する態様による技法を実装し得る（単にビデオデコーダ３１とも呼ばれる）マルチレイヤビデオデコーダ３１の一例を示すブロック図である。ビデオデコーダ３１は、ＳＨＶＣ、３Ｄ−ＨＥＶＣ、および／またはＭＶ−ＨＥＶＣの場合など、マルチレイヤビデオフレームを処理するように構成され得る。さらに、ビデオデコーダ３１は、本開示の技法のいずれかまたはすべてを実行するように構成され得る。
【０１０１】
[00110]  ビデオデコーダ３１はビデオデコーダ３０Ａとビデオデコーダ３０Ｂとを含み、それらの各々は図３Ａのビデオデコーダ３０として構成され得、ビデオデコーダ３０に関して上記で説明した機能を実行し得る。さらに、参照番号の再利用によって示されるように、ビデオデコーダ３０Ａおよび３０Ｂは、ビデオデコーダ３０中に含まれるのと同じまたは同様のシステムとサブシステムとのうちの少なくともいくつかを含み得る。ビデオデコーダ３１は、２つのビデオデコーダ３０Ａおよび３０Ｂを含むものとして示されているが、ビデオデコーダ３１は、そのようなものとして限定されず、任意の数のビデオデコーダレイヤを含み得る。いくつかの実施形態では、ビデオデコーダ３１はアクセスユニット中の各ピクチャまたはフレームについてビデオデコーダ３０を含み得る。たとえば、５つのピクチャを含むアクセスユニットは、５つのデコーダレイヤを含むビデオデコーダによって処理または復号され得る。いくつかの実施形態では、ビデオデコーダ３１は、アクセスユニット中のフレームよりも多くのデコーダレイヤを含み得る。いくつかのそのような場合では、ビデオデコーダレイヤのうちのいくつかは、いくつかのアクセスユニットを処理するときに非アクティブであり得る。
【０１０２】
[00111]  ビデオデコーダ３０Ａおよび３０Ｂに加えて、ビデオデコーダ３１はアップサンプリングユニット９２を含み得る。いくつかの実施形態では、アップサンプリングユニット９２は、フレームまたはアクセスユニットのための参照ピクチャリストに追加されるべきエンハンストレイヤを作成するために、受信されたビデオフレームのベースレイヤをアップサンプリングし得る。このエンハンストレイヤは参照フレームメモリ８２に（たとえば、それの復号ピクチャバッファなどに）記憶され得る。いくつかの実施形態では、アップサンプリングユニット９２は、図２Ｂのリサンプリングユニット９０に関して説明した実施形態の一部または全部を含むことができる。いくつかの実施形態では、アップサンプリングユニット９２は、レイヤをアップサンプリングすることと、スライス境界ルールおよび／またはラスタ走査ルールのセットに準拠するために１つまたは複数のスライスを再編成、再定義、変更、または調整することとを行うように構成される。場合によっては、アップサンプリングユニット９２は、受信されたビデオフレームのレイヤをアップサンプリングおよび／またはダウンサンプリングするように構成されたリサンプリングユニットであり得る。
【０１０３】
[00112]  アップサンプリングユニット９２は、下位レイヤデコーダ（たとえば、ビデオデコーダ３０Ａ）の復号ピクチャバッファ８２からピクチャまたはフレーム（またはピクチャに関連するピクチャ情報）を受信し、ピクチャ（または受信されたピクチャ情報）をアップサンプリングするように構成され得る。このアップサンプリングされたピクチャは、次いで、下位レイヤデコーダと同じアクセスユニット中のピクチャを復号するように構成された上位レイヤデコーダ（たとえば、ビデオデコーダ３０Ｂ）のモード選択ユニット７１に与えられ得る。場合によっては、上位レイヤデコーダは、下位レイヤデコーダから除去された１つのレイヤである。他の場合には、図３Ｂのレイヤ０デコーダとレイヤ１デコーダとの間に１つまたは複数の上位レイヤデコーダがあり得る。
【０１０４】
[00113]  場合によっては、アップサンプリングユニット９２は省略またはバイパスされ得る。そのような場合、ビデオデコーダ３０Ａの復号ピクチャバッファ８２からのピクチャは、直接、または少なくともアップサンプリングユニット９２に与えられることなしに、ビデオデコーダ３０Ｂのモード選択ユニット７１に与えられ得る。たとえば、ビデオデコーダ３０Ｂに与えられたビデオデータと、ビデオデコーダ３０Ａの復号ピクチャバッファ８２からの参照ピクチャとが同じサイズまたは解像度である場合、参照ピクチャは、アップサンプリングなしにビデオデコーダ３０Ｂに与えられ得る。さらに、いくつかの実施形態では、アップサンプリングユニット９２は、ビデオデコーダ３０Ａの復号ピクチャバッファ８２から受信された参照ピクチャをアップサンプリングまたはダウンサンプリングするように構成されたリサンプリングユニット９０であり得る。
【０１０５】
[00114]  図３Ｂに示されているように、ビデオデコーダ３１は、デマルチプレクサ９９、またはｄｅｍｕｘをさらに含み得る。ｄｅｍｕｘ９９は符号化ビデオビットストリームを複数のビットストリームにスプリットすることができ、ｄｅｍｕｘ９９によって出力された各ビットストリームは異なるビデオデコーダ３０Ａおよび３０Ｂに与えられる。複数のビットストリームは、ビットストリームを受信することによって作成され得、ビデオデコーダ３０Ａおよび３０Ｂの各々は、所与の時間においてビットストリームの一部分を受信する。場合によっては、ｄｅｍｕｘ９９において受信されるビットストリームからのビットは、ビデオデコーダの各々（たとえば、図３Ｂの例ではビデオデコーダ３０Ａおよび３０Ｂ）の間で一度に１ビットずつ交替され得るが、多くの場合、ビットストリームは別様に分割される。たとえば、ビットストリームは、一度に１ブロックずつビットストリームを受信するビデオデコーダを交替することによって分割され得る。別の例では、ビットストリームは、非１：１比のブロックによって、ビデオデコーダ３０Ａおよび３０Ｂの各々に分割され得る。たとえば、ビデオデコーダ３０Ａに与えられる各ブロックについて、２つのブロックがビデオデコーダ３０Ｂに与えられ得る。いくつかの実施形態では、ｄｅｍｕｘ９９によるビットストリームの分割はプリプログラムされ得る。他の実施形態では、ｄｅｍｕｘ９９は、宛先デバイス１４上のプロセッサからなど、ビデオデコーダ３１の外部のシステムから受信された制御信号に基づいてビットストリームを分割し得る。制御信号は、入力インターフェース２８からのビデオの解像度またはビットレートに基づいて、チャネル１６の帯域幅に基づいて、ユーザに関連するサブスクリプション（たとえば、有料サブスクリプション対無料サブスクリプション）に基づいて、またはビデオデコーダ３１によって取得可能な解像度を決定するための他のファクタに基づいて生成され得る。
【０１０６】
補足エンハンスメント情報（ＳＥＩ）メッセージ（Supplemental Enhancement Information (SEI) Messages）
[00115]  ＨＥＶＣ規格によれば、コード化ビデオデータ（coded video data）は、ネットワークアブストラクションレイヤ（ＮＡＬ：Network Abstraction Layer）ユニットと呼ばれるデータユニット（data unit）のシーケンスに編成され、これは、アクセスユニット（access unit）に形成される。アクセスユニットは、同じ出力時間に対応するピクチャをまとめて表す、１つまたは複数のＮＡＬユニットのセットを備える。アクセスユニット中の１つまたは複数のＮＡＬユニットは、同じ出力時間に対応するピクチャをまとめて構成する１つまたは複数のビデオコーディングレイヤ（ＶＣＬ：video coding layer）ＮＡＬユニットと、０個またはそれ以上の非ＶＣＬ  ＮＡＬユニット（すなわち、ＶＣＬ  ＮＡＬユニットでないＮＡＬユニット）とのセットを備える。ＶＣＬ  ＮＡＬユニットは、コード化ビデオデータ（coded video data）のスライスセグメント（slice segment）を搬送する。非ＶＣＬ  ＮＡＬユニットは一般に、制御情報を含んでいる。アクセスユニット中に存在し得る１つのタイプの非ＶＣＬ  ＮＡＬユニットは、補足エンハンスメント情報（ＳＥＩ）ＮＡＬユニットであり、これは、復号されたビデオ信号のために概して必要でないが、復号されたビデオ信号のユーザビリティ（usability）を向上させ得る補足データ（supplemental data）（たとえば、タイミング情報）を含んでいる。ＳＥＩ  ＮＡＬユニットは、以下で説明するＳＥＩメッセージ構造を有するＳＥＩメッセージを含んでいる。ＳＥＩメッセージは、たとえば、ピクチャ出力タイミング（picture output timing）、表示（displaying）、色空間の解釈（interpretation of color space）、および／またはフレーミングパッキング（framing packing）に関連する情報を与え得る、コード化ビデオデータに関連する様々なタイプのメタデータ（metadata）を含み得る。
【０１０７】
[00116]  ＳＥＩ  ＮＡＬユニットは、１つまたは複数のＳＥＩメッセージ構造を備え得る。一例による、ＳＥＩ  ＮＡＬユニットの全体的構造が、図４に示されている。開示する技法の理解に有用でない構造の部分は省略されている。そのような省略は図４中で省略記号によって識別される。
【０１０８】
[00117]  ＳＥＩ  ＮＡＬユニット４１０は、ａｎＲＢＳＰ、たとえば、ｓｅｉ＿ｒｂｓｐ（）構造４２０（ｓｅｉ＿ｒｂｓｐ（）構造４２０はＳＥＩ  ＲＢＳＰ４２０とも呼ばれる）を備える。次に、ｓｅｉ＿ｒｂｓｐ（）構造４２０は、（２つの構造４３０Ａおよび４３０Ｂとして示されている）１つまたは複数のｓｅｉ＿ｍｅｓｓａｇｅ（）構造４３０を備え得る。２つのｓｅｉ＿ｍｅｓｓａｇｅ（）構造４３０Ａおよび４３０Ｂが示されているが、ｓｅｉ＿ｒｂｓｐ（）４２０は、１つのｓｅｉ＿ｍｅｓｓａｇｅ（）構造４３０あるいは３つまたはそれ以上のｓｅｉ＿ｍｅｓｓａｇｅ（）構造４３０を含む、任意の数のｓｅｉ＿ｍｅｓｓａｇｅ（）構造４３０を備え得ることを理解されたい。
【０１０９】
[00118]  各ｓｅｉ＿ｍｅｓｓａｇｅ（）構造４３０は、（それぞれ、ｓｅｉ＿ｍｅｓｓａｇｅ（）構造４３０Ａおよび４３０Ｂについて、４４０Ａおよび４４０Ｂとして示されている）ｓｅｉ＿ｐａｙｌｏａｄ構造４４０を備える。ｓｅｉ＿ｍｅｓｓａｇｅ（）構造４３０のシンタックス構造は、ｓｅｉ＿ｐａｙｌｏａｄ構造４４０中に含まれており、図４中で（それぞれ、ｓｅｉ＿ｐａｙｌｏａｄ構造４４０Ａおよび４４０Ｂについて、４４２Ａおよび４４２Ｂとして示されている）ｘｘｘ（ｐａｙｌｏａｄＳｉｚｅ）構造４４２として表される。随意に、各ｓｅｉ＿ｐａｙｌｏａｄ構造４４０は、ＳＥＩ＿ｍｅｓｓａｇｅ（）構造４３０の将来の拡張性のために使用され得る、（それぞれ、ｓｅｉ＿ｐａｙｌｏａｄ構造４４０Ａおよび４４０Ｂについて、４４４Ａおよび４４４Ｂとして示されている）ペイロード拡張（payload extension）４４４をも備え得る。
【０１１０】
[00119]  いくつかのＳＥＩメッセージ構造は、ネスティングＳＥＩメッセージ構造である。ネスティングＳＥＩメッセージ構造は、１つまたは複数のＳＥＩメッセージを含んでいることがある。たとえば、ｓｅｉ＿ｍｅｓｓａｇｅ（）構造４３０Ａは、ｓｅｉ＿ｍｅｓｓａｇｅ（）構造４３０Ａ内にネスティングされた複数のＳＥＩメッセージを備え得る。ネスティングＳＥＩメッセージ構造中に含まれている各ＳＥＩメッセージは、ネスティングＳＥＩメッセージ構造によって指定されているように、レイヤのセット、動作点、出力レイヤセット、および／またはビットストリームパーティションに適用可能である。
【０１１１】
[00120]  従来の慣例、たとえばＨＥＶＣ仕様の現在のドラフト、ＨＥＶＣバージョン１は、１つのタイプのネスティングＳＥＩメッセージ構造、すなわち、スケーラブルネスティングＳＥＩメッセージ構造を指定する。さらに、マルチレイヤ（またはマルチビュー）拡張の現在のドラフトは、別のタイプのネスティングＳＥＩメッセージ構造、すなわち、ビットストリームパーティションネスティングＳＥＩメッセージ構造を指定する。単数形または複数形の「ネスティングＳＥＩメッセージ構造」および「ネスティングＳＥＩ構造」という用語は、本明細書では、スケーラブルネスティングＳＥＩメッセージ構造と、ビットストリームパーティションネスティングＳＥＩメッセージ構造とを総称して指すために使用される。
【０１１２】
[00121]  スケーラブルネスティングＳＥＩメッセージ構造のための現在の（すなわち、従来の）シンタックス構造が、以下の表に示されている。開示する技法の理解に有用でないシンタックス構造の部分は省略されている。そのような省略は以下で省略記号によって識別される。
【０１１３】
【表１】
0006400741.tif 000002
【０１１４】
[00122]  ビットストリームパーティションネスティングＳＥＩメッセージ構造の現在のシンタックス構造が、以下の表に示されている。
【０１１５】
【表２】
0006400741.tif 000003
【０１１６】
[00123]  上記のように、スケーラブルネスティングＳＥＩメッセージ構造とビットストリームパーティションネスティングＳＥＩメッセージ構造の両方のためのシンタックス構造は、「ｄｏ  ｓｅｉ＿ｍｅｓｓａｇｅ（）  ｗｈｉｌｅ（ｍｏｒｅ＿ｒｂｓｐ＿ｄａｔａ（））」のｄｏ−ｗｈｉｌｅシンタックスを備える。
【０１１７】
[00124]  このｄｏ−ｗｈｉｌｅシンタックスは、１つまたは複数のＳＥＩメッセージがネスティングＳＥＩメッセージ構造中にネスティングされることを可能にするが、これらの従来のシンタックス構造のｄｏ−ｗｈｉｌｅシンタックスは著しい欠点を有する。詳細には、ｄｏ−ｗｈｉｌｅシンタックスの条件として設定される関数「ｍｏｒｅ＿ｒｂｓｐ＿ｄａｔａ（）」は、ネスティングＳＥＩメッセージ構造を備えるＳＥＩ  ＲＢＳＰ中の現在のバイト位置が、その特定のＳＥＩ  ＲＢＳＰ（たとえば、図４のＳＥＩ  ＲＢＳＰ４２０）中の１の値を有する最後の（すなわち、最下位の、右端の）ビットの位置に等しくなるまで、「１」の値（すなわち、ＴＲＵＥ）を返す。ＳＥＩ  ＲＢＳＰシンタックス中の１の値を有するこの最後のビットは、１の値を有するｒｂｓｐ＿ｔｒａｉｌｉｎｇ＿ｂｉｔｓ（）シンタックス構造４５０中の第１のビットに対応する。図４に示されているように、ｒｂｓｐ＿ｔｒａｉｌｉｎｇ＿ｂｉｔｓ（）シンタックス構造４５０は、ＳＥＩ  ＲＢＳＰ４２０の最後に存在する。したがって、ＳＥＩ  ＮＡＬユニットがネスティングＳＥＩメッセージ構造を備え、ネスティングＳＥＩメッセージ構造がＳＥＩ  ＮＡＬユニット内の他のデータ（すなわち、ＲＢＳＰトレーリングビット（trailing bit）以外のデータ）に先行する場合、ネスティングＳＥＩメッセージ構造のｄｏ−ｗｈｉｌｅシンタックスは、関数ｓｅｉ＿ｍｅｓｓａｇｅ（）を使用して上記他のデータを処理し、ＳＥＩ  ＮＡＬユニットの構文解析エラーを生じる。
【０１１８】
[00125]  たとえば、図４を参照すると、ｓｅｉ＿ｐａｙｌｏａｄ構造４４０Ａが、構造４４２ＡとしてネスティングＳＥＩメッセージ構造を備える場合、デコーダは、ネスティングされたＳＥＩメッセージのｄｏ−ｗｈｉｌｅシンタックスに基づいて、ｓｅｉ＿ｒｂｓｐ構造４２０の最後のＲＢＳＰトレーリングビット（すなわち、ｒｂｓｐ＿ｔｒａｉｌｉｎｇ＿ｂｉｔｓ（）４５０）に達するまで、ｓｅｉ＿ｒｂｓｐ構造４２０を処理する。したがって、構造４４２Ａのｄｏ−ｗｈｉｌｅシンタックスは、関数「ｓｅｉ＿ｍｅｓｓａｇｅ（）」に従って、もしあれば、ｓｅｉ＿ｐａｙｌｏａｄ構造４４０Ａのペイロード拡張、ならびにｓｅｉ＿ｍｅｓｓａｇｅ構造４３０Ｂを処理し、構文解析エラーを生じる。
【０１１９】
[00126]  したがって、ビットストリームが、現在の方式に従ってネスティングＳＥＩメッセージ構造（たとえば、スケーラブルネスティングＳＥＩメッセージ構造またはビットストリームパーティションネスティングＳＥＩメッセージ構造のいずれか）を備えるＳＥＩ  ＮＡＬユニットを含む場合、および以下のいずれかが真である場合、ビットストリームは適切に構文解析されないことがあり、したがって、準拠しないビットストリームである。
【０１２０】
[00127]  （１）ＳＥＩ  ＮＡＬユニットが、復号順序において、ネスティングＳＥＩメッセージ構造を含んでいるｓｅｉ＿ｐａｙｌｏａｄ構造に後続するＳＥＩメッセージを備える、あるいは
[00128]  （２）ネスティングＳＥＩメッセージ構造を含んでいるｓｅｉ＿ｐａｙｌｏａｄ構造が、ペイロード拡張データ（たとえば、以下のシンタックス要素、すなわち、ｒｅｓｅｒｖｅｄ＿ｐａｙｌｏａｄ＿ｅｘｔｅｎｓｉｏｎ＿ｄａｔａ、ｐａｙｌｏａｄ＿ｂｉｔ＿ｅｑｕａｌ＿ｔｏ＿ｏｎｅ、またはｐａｙｌｏａｄ＿ｂｉｔ＿ｅｑｕａｌ＿ｔｏ＿ｚｅｒｏのいずれか）を備える。
【０１２１】
[00129]  ネスティングＳＥＩメッセージ構造（たとえば、スケーラブルネスティングＳＥＩメッセージ構造および／またはビットストリームパーティションネスティングＳＥＩメッセージ構造）の現在のシンタックス構造中のこれらの欠点の結果として、ネスティングＳＥＩメッセージ構造は、ｓｅｉ＿ｐａｙｌｏａｄ構造中で与えられる拡張機構を使用して拡張されないことがある。したがって、次に、ネスティングＳＥＩメッセージ構造の現在のシンタックス構造におけるこれらの欠点に対処する方法について説明する。これらのそれぞれの例示的な実施形態の様々な特徴は、独立して、または互いに組み合わせて適用され得る。
【０１２２】
[00130]  本開示の様々な実施形態では、ネスティングＳＥＩメッセージ構造中に含まれているｓｅｉ＿ｍｅｓｓａｇｅｓ（）の数は、ビデオエンコーダ（たとえば、ビデオエンコーダ２１のビデオエンコーダ２０）によってシグナリングされ、ビデオデコーダ（たとえば、ビデオデコーダ３０またはビデオデコーダ３１）によって受信され得、ネスティングＳＥＩメッセージ構造のシンタックス構造は、たとえばビデオデコーダによって、その数に基づいて構文解析され得る。たとえば、スケーラブルネスティングＳＥＩメッセージ構造のシンタックス構造およびビットストリームパーティションネスティングＳＥＩメッセージ構造のシンタックス構造の一方または両方は、上記で説明したように、関数「ｍｏｒｅ＿ｒｂｓｐ＿ｄａｔａ（）」が１の値を返す限り、関数「ｓｅｉ＿ｍｅｓｓａｇｅ（）」を呼び出すｄｏ−ｗｈｉｌｅシンタックスを、シグナリングされた回数関数「ｓｅｉ＿ｍｅｓｓａｇｅ（）」を呼び出す（すなわち、関数「ｓｅｉ＿ｍｅｓｓａｇｅ（）」の実行または実施を命令する）シンタックスと置き換えることによって、変更され得る。
【０１２３】
[00131]  たとえば本開示によれば、スケーラブルネスティングＳＥＩメッセージ構造のシンタックス構造は、以下の表に示されているように変更され得る。この場合も、開示する技法の理解に有用でないシンタックス構造の部分は省略されている。そのような省略は以下で省略記号によって識別される。
【０１２４】
【表３】
0006400741.tif 000004
【０１２５】
[00132]  同様に、ビットストリームパーティションネスティングＳＥＩメッセージ構造のシンタックス構造は、以下の表に示されているように変更され得る。
【０１２６】
【表４】
0006400741.tif 000005
【０１２７】
[00133]  詳細には、上記の表１に示されているスケーラブルネスティングＳＥＩメッセージ構造の現在のシンタックス構造中のライン０９〜１１は、表３において、変数（すなわち、シンタックス要素）「ｎｕｍ＿ｓｅｉｓ＿ｉｎ＿ｓｃａｌａｂｌｅ＿ｍｉｎｕｓ１」によって指定された数に基づいて関数「ｓｅｉ＿ｍｅｓｓａｇｅ（）」を呼び出すシンタックス構造（syntax structure）と置き換えられている。同様に、表２に示されているビットストリームパーティションネスティングＳＥＩメッセージ構造の現在のシンタックス構造中のライン０５〜０７は、表４において、変数「ｎｕｍ＿ｓｅｉｓ＿ｉｎ＿ｂｓｐ＿ｍｉｎｕｓ１」に記憶された数に基づいて関数「ｓｅｉ＿ｍｅｓｓａｇｅ（）」を呼び出すシンタックス構造と置き換えられている。
【０１２８】
[00134]  変数「ｎｕｍ＿ｓｅｉｓ＿ｉｎ＿ｓｃａｌａｂｌｅ＿ｍｉｎｕｓ１」によって指定された数は、スケーラブルネスティングＳＥＩメッセージ構造中に含まれているｓｅｉ＿ｍｅｓｓａｇｅ構造の数よりも１小さい。同様に、変数「ｎｕｍ＿ｓｅｉｓ＿ｉｎ＿ｂｓｐ＿ｍｉｎｕｓ１」によって指定された数は、ビットストリームパーティションネスティングＳＥＩメッセージ構造中に含まれているｓｅｉ＿ｍｅｓｓａｇｅ構造の数よりも１小さい。より詳細には、「ｎｕｍ＿ｓｅｉｓ＿ｉｎ＿ｂｓｐ＿ｍｉｎｕｓ１」＋１は、ｂｓｐ＿ｎｅｓｔｉｎｇ（）シンタックス構造中に含まれている、ｓｅｉ＿ｍｅｓｓａｇｅ（）構造の数を指定する。言い換えれば、各シンタックス要素によって指定された数よりも１大きい数が、それぞれのネスティングＳＥＩメッセージ構造のシンタックス構造中に含まれているｓｅｉ＿ｍｅｓｓａｇｅ構造の数を示す。変数「ｎｕｍ＿ｓｅｉｓ＿ｉｎ＿ｓｃａｌａｂｌｅ＿ｍｉｎｕｓ１」および「ｎｕｍ＿ｓｅｉｓ＿ｉｎ＿ｂｓｐ＿ｍｉｎｕｓ１」は、整数、または数を表すことが可能な他のデータタイプであり得ることを理解されたい。
【０１２９】
[00135]  表３と表４の両方では、置換された構造は、それぞれ「ｎｕｍ＿ｓｅｉｓ＿ｉｎ＿ｓｃａｌａｂｌｅ＿ｍｉｎｕｓ１」によって指定された数よりも１大きい数（すなわち、「ｎｕｍ＿ｓｅｉｓ＿ｉｎ＿ｓｃａｌａｂｌｅ＿ｍｉｎｕｓ１」＋１）に等しい回数、および「ｎｕｍ＿ｓｅｉｓ＿ｉｎ＿ｂｓｐ＿ｍｉｎｕｓ１」中の数よりも１大きい数（すなわち、「ｎｕｍ＿ｓｅｉｓ＿ｉｎ＿ｂｓｐ＿ｍｉｎｕｓ１」）に等しい回数、命令「ｓｅｉ＿ｍｅｓｓａｇｅ（）」を通って反復する「ｆｏｒ」ループを備える。シグナリングされた回数１つまたは複数の命令のセットを通って反復する他のタイプの構造が、示された「ｆｏｒ」ループの代わりに使用され得ることを理解されたい。また、「ｆｏｒ」ループは、たとえば、開始反復（starting iteration）を１だけ増加させること（すなわち、「ｉ＝０」の代わりに「ｉ＝１」）、または小なりイコール（less-than-or-equal）演算子を小なり（less-than）演算と置き換えること（すなわち、「ｉ≦ｎｕｍ＿ｓｅｉｓ＿ｉｎ＿ｓｃａｌａｂｌｅ＿ｍｉｎｕｓ１」の代わりに「ｉ＜ｎｕｍ＿ｓｅｉｓ＿ｉｎ＿ｓｃａｌａｂｌｅ」、および「ｉ≦ｎｕｍ＿ｓｅｉｓ＿ｉｎ＿ｂｓｐ＿ｍｉｎｕｓ１」の代わりに「ｉ＜ｎｕｍ＿ｓｅｉｓ＿ｉｎ＿ｂｓｐ」）によって、それぞれのネスティングＳＥＩメッセージ構造中のｓｅｉ＿ｍｅｓｓａｇｅ構造の数よりも１小さい数の代わりに、それぞれのネスティングＳＥＩメッセージ構造中のｓｅｉ＿ｍｅｓｓａｇｅ構造の数を使用するように変更され得ることを理解されたい。
【０１３０】
[00136]  様々な実施形態では、ｎｕｍ＿ｓｅｉｓ＿ｉｎ＿ｓｃａｌａｂｌｅ＿ｍｉｎｕｓ１の値および／またはｎｕｍ＿ｓｅｉｓ＿ｉｎ＿ｂｓｐ＿ｍｉｎｕｓ１の値は、両端値を含む、０〜１５の範囲に制約され得る。ただし、ｎｕｍ＿ｓｅｉｓ＿ｉｎ＿ｓｃａｌａｂｌｅ＿ｍｉｎｕｓ１の値および／またはｎｕｍ＿ｓｅｉｓ＿ｉｎ＿ｂｓｐ＿ｍｉｎｕｓ１の値は、異なる範囲および／または互いに異なる範囲に制約されるか、あるいはまったく制限されないことがあることを理解されたい。これらの値のうちの１つまたは複数が、値の範囲に制約されるとき、その制約はエンコーダまたはデコーダのいずれかにおいて、あるいはエンコーダとデコーダの両方において課され得る。たとえば、ビデオエンコーダ２０は、所定の数を超えるＳＥＩメッセージがＳＥＩ  ＮＡＬユニットのネスティングＳＥＩメッセージ構造に追加されるのを防ぎ得る。
【０１３１】
[00137]  変更されたネスティングＳＥＩメッセージシンタックス構造の場合、ネスティングＳＥＩメッセージ構造は、上記で説明した現在の（すなわち、従来の）ネスティングＳＥＩメッセージ構造の制限を受けない。詳細には、ネスティングＳＥＩメッセージ構造は、ＳＥＩ  ＮＡＬユニット中の最後のＳＥＩメッセージ構造であるようにもはや制約されず、（たとえば、ｒｅｓｅｒｖｅｄ＿ｐａｙｌｏａｄ＿ｅｘｔｅｎｓｉｏｎ＿ｄａｔａシンタックス要素を使用して）拡張され得る。
【０１３２】
[00138]  図５に、本開示の様々な実施形態による、ビデオコーディングのための例示的なプロセス５００を示す。ステップ５１０において開始するプロセス５００は、ビデオエンコーダ２０、ビデオエンコーダ２１、ビデオデコーダ３０、および／またはビデオデコーダ３１、あるいは任意の他の構成要素によって実装され得る。ステップ５２０において、ＳＥＩ  ＮＡＬユニットを処理する。ＳＥＩ  ＮＡＬユニットは、１つまたは複数のＳＥＩメッセージ構造を備えるＲＢＳＰを備え得る。これらのＳＥＩメッセージ構造のうちの１つまたは複数は、１つまたは複数のＳＥＩメッセージを備えるように構成された少なくとも１つのネスティングＳＥＩメッセージ構造を備える。ステップ５３０において、少なくとも１つのネスティングＳＥＩメッセージ構造内に備えられるＳＥＩメッセージの数を示すシンタックス要素をコーディングする。このコーディングは、（たとえば、図６中のステップ６５０に関して説明するように）シンタックス要素を復号すること、または（たとえば、図７中のステップ７７０に関して説明するように）シンタックス要素を符号化することを備え得る。さらに、ステップ５３０は、ステップ５２０における処理の一部として、またはそれとは別に実行され得る。プロセス５００は、ステップ５８０において終了する。
【０１３３】
[00139]  図６に、本開示の様々な実施形態による、ビデオ復号において使用されるための例示的なプロセス６００を示す。ステップ６１０において開始するプロセス６００は、ビデオデコーダ３０、および／またはビデオデコーダ３１、あるいは任意の他の構成要素によって実装され得る。便宜上、プロセス６００について、ビデオデコーダ３０によって実行されるとして説明する。ステップ６２０において、ＳＥＩメッセージ構造を受信する。ステップ６３０において、ＳＥＩメッセージ構造がネスティングＳＥＩメッセージ構造（たとえば、スケーラブルネスティングＳＥＩメッセージ構造および／またはビットストリームパーティションネスティングＳＥＩメッセージ構造）であるのか非ネスティングＳＥＩメッセージ構造であるのかが決定される。ステップ６３０は、１つの特定のタイプのネスティングＳＥＩメッセージ構造（たとえば、スケーラブルネスティングＳＥＩメッセージ構造またはビットストリームパーティションネスティングＳＥＩメッセージ構造のいずれか）のみ、あるいは複数のタイプのネスティングＳＥＩメッセージ構造（たとえば、スケーラブルネスティングＳＥＩメッセージ構造とビットストリームパーティションネスティングＳＥＩメッセージ構造の両方）について実行され得ることを理解されたい。
【０１３４】
[00140]  ステップ６３０において、ＳＥＩメッセージ構造が非ネスティングＳＥＩメッセージ構造であると決定された場合、ステップ６４０において、ＳＥＩメッセージ構造を従来通り（すなわち、ＨＥＶＣ仕様の現在のドラフトに示されているように）構文解析し、プロセス６００はステップ６８０において終了する。
【０１３５】
[00141]  一方、ステップ６３０において、ＳＥＩメッセージ構造がネスティングＳＥＩメッセージ構造であると決定された場合、ステップ６５０において、ネスティングＳＥＩメッセージ構造中の（１つまたは複数の）ＳＥＩメッセージの数を決定する。たとえば、この数は、ネスティングＳＥＩメッセージ構造を符号化したビデオエンコーダ（たとえば、ビデオエンコーダ２０またはビデオエンコーダ２１）によって、ＳＥＩメッセージ構造または他の構造中に組み込まれていることがあり、その場合、ビデオデコーダ３０は、ネスティングＳＥＩメッセージ構造または他の構造中のその数のコード化位置からその数の値を抽出することによって、この数を決定する。代替的に、ネスティングＳＥＩメッセージ構造中の（１つまたは複数の）ＳＥＩメッセージの数は、（たとえば、何らかの外部手段によって与えられる）別の様式で、ビデオエンコーダによってシグナリングされ得る。いずれの場合も、ネスティングＳＥＩメッセージ構造中の（１つまたは複数の）ＳＥＩメッセージのシグナリングされた数は、（１つまたは複数の）ＳＥＩメッセージの実際の数、または（１つまたは複数の）ＳＥＩメッセージの数−１（たとえば、スケーラブルネスティングＳＥＩメッセージのための変数「ｎｕｍ＿ｓｅｉｓ＿ｉｎ＿ｓｃａｌａｂｌｅ＿ｍｉｎｕｓ１」、またはビットストリームパーティションネスティングＳＥＩメッセージのための変数「ｎｕｍ＿ｓｅｉｓ＿ｉｎ＿ｂｓｐ＿ｍｉｎｕｓ１」）であり得る。
【０１３６】
[00142]  ステップ６６０において、ネスティングＳＥＩメッセージ構造中の決定された数の（１つまたは複数の）ＳＥＩメッセージが構文解析されたかどうかが決定される。ネスティングＳＥＩメッセージ構造中の決定された数の（１つまたは複数の）ＳＥＩメッセージが構文解析されなかった場合、ステップ６７０において次のＳＥＩメッセージを構文解析し、次いでプロセス６００はステップ６６０に戻る。一方、ネスティングＳＥＩメッセージ構造中の決定された数の（１つまたは複数の）ＳＥＩメッセージが構文解析された場合、プロセス６００はステップ６８０において終了する。ステップ６６０とステップ６７０とによって形成されるこのループは、上記で説明したように、表３のライン１０〜１１と、表４のライン０６〜０７とによって示された「ｆｏｒループ」を使用して実装され得る。代替的に、ステップ６６０とステップ６７０とによって形成されるループは、異なるタイプのループ構造を使用して実装され得る。
【０１３７】
[00143]  図７に、本開示の様々な実施形態による、ビデオ符号化において使用されるためのプロセス７００を示す。ステップ７１０において開始するプロセス７００は、ビデオエンコーダ２０、および／またはビデオエンコーダ２１、あるいは任意の他の構成要素によって実装され得る。ステップ７２０において、ＳＥＩメッセージ構造を生成するために、１つまたは複数のＳＥＩメッセージを受信する。ステップ７３０において、生成されるべきＳＥＩメッセージ構造がネスティングＳＥＩメッセージ構造（たとえば、スケーラブルネスティングＳＥＩメッセージ構造および／またはビットストリームパーティションネスティングＳＥＩメッセージ構造）であるかどうかが決定される。ステップ７３０は、１つの特定のタイプのネスティングＳＥＩメッセージ構造（たとえば、スケーラブルネスティングＳＥＩメッセージ構造またはビットストリームパーティションネスティングＳＥＩメッセージ構造のいずれか）のみ、あるいは複数のタイプのネスティングＳＥＩメッセージ構造（たとえば、スケーラブルネスティングＳＥＩメッセージ構造とビットストリームパーティションネスティングＳＥＩメッセージ構造の両方）について実行され得ることを理解されたい。
【０１３８】
[00144]  ステップ７３０において、ＳＥＩメッセージ構造が非ネスティングＳＥＩメッセージ構造であると決定された場合、ステップ７４０において、受信されたＳＥＩメッセージを従来通り（すなわち、ＨＥＶＣ仕様の現在のドラフトに示されているように）ＳＥＩメッセージ構造に追加し、プロセス７００はステップ７８０において終了する。
【０１３９】
[00145]  一方、ステップ７３０において、ＳＥＩメッセージ構造がネスティングＳＥＩメッセージ構造であると決定された場合、ステップ７５０において、（たとえば、計数、構文解析などによって）ネスティングＳＥＩメッセージ構造内に含まれるべき（１つまたは複数の）ＳＥＩメッセージの数を決定する。たとえば、ビデオエンコーダは、ビデオエンコーダがＳＥＩメッセージ構造に（１つまたは複数の）ＳＥＩメッセージを追加している間、（１つまたは複数の）ＳＥＩメッセージの数を計数し得るか、またはＳＥＩメッセージ構造に任意の（１つまたは複数の）ＳＥＩメッセージを追加することより前に（１つまたは複数の）ＳＥＩメッセージの数を計数し得る。いずれの場合も、ステップ７６０において表されるように、（１つまたは複数の）ＳＥＩメッセージを、ネスティングＳＥＩメッセージ構造に追加する（たとえば、ネスティングＳＥＩメッセージ構造内にコーディングする）。
【０１４０】
[00146]  ステップ７７０において、ステップ７５０において決定された（１つまたは複数の）ＳＥＩメッセージの数を、ネスティングＳＥＩメッセージ構造または他の構造中に組み込む（たとえば、その構造中にコーディングする）。代替的に、（１つまたは複数の）ＳＥＩメッセージの数は、別の様式でシグナリングされ得る。いずれの場合も、ネスティングＳＥＩメッセージ構造中の（１つまたは複数の）ＳＥＩメッセージのシグナリングされた数は、（１つまたは複数の）ＳＥＩメッセージの実際の数、または（１つまたは複数の）ＳＥＩメッセージの数−１（たとえば、スケーラブルネスティングＳＥＩメッセージのための変数「ｎｕｍ＿ｓｅｉｓ＿ｉｎ＿ｓｃａｌａｂｌｅ＿ｍｉｎｕｓ１」、またはビットストリームパーティションネスティングＳＥＩメッセージのための「変数ｎｕｍ＿ｓｅｉｓ＿ｉｎ＿ｂｓｐ＿ｍｉｎｕｓ１」）であり得る。プロセス７００は、ステップ７８０において終了する。
【０１４１】
[00147]  様々な実施形態では、ネスティングＳＥＩメッセージ構造（たとえば、スケーラブルネスティングＳＥＩメッセージ構造および／またはビットストリームパーティションネスティングＳＥＩメッセージ構造）が、ＳＥＩ  ＮＡＬユニット中の最後のＳＥＩメッセージ構造であるように制約されるように、制約が追加される。この制約は、上記で説明した、本開示の他の実施形態の（１つまたは複数の）特徴と組み合わせて、または代替として、使用され得る。
【０１４２】
[00148]  たとえば、ビデオエンコーダ２０および／またはビデオエンコーダ２１は、ネスティングＳＥＩメッセージ構造が、ｓｅｉ＿ｒｂｓｐ構造４２０中の他のデータ（すなわち、ＲＢＳＰトレーリングビット構造４５０以外のデータ）に先行する位置において、ＳＥＩ  ＮＡＬユニットに追加されるのを防ぎ得る。言い換えれば、ビデオエンコーダ２０は、ネスティングＳＥＩメッセージ構造がＳＥＩ  ＮＡＬユニットに追加される場合、そのネスティングＳＥＩメッセージ構造がＳＥＩ  ＮＡＬユニット中の他のＳＥＩメッセージ構造の後に追加されることを保証し得る。
【０１４３】
[00149]  さらに、ビデオエンコーダ２０および／またはビデオエンコーダ２１は、ＳＥＩ  ＮＡＬユニットが２つのネスティングＳＥＩメッセージ構造を備える状況を回避するために、単一のＳＥＩ  ＮＡＬユニットへの２つまたはそれ以上のネスティングＳＥＩメッセージ構造の追加を防ぎ得る。そのような状況では、ネスティングＳＥＩメッセージ構造のうちの１つは、上記で説明したように、必ず、他のデータ（すなわち、２つまたはそれ以上のネスティングＳＥＩメッセージのうちの別のネスティングＳＥＩメッセージ）に先行し、構文解析エラーを生じるであろう。
【０１４４】
[00150]  図８に、本開示の様々な実施形態による、ビデオ符号化において使用されるためのプロセス８００を示す。ステップ８１０において開始するプロセス８００は、ビデオエンコーダ２０、および／またはビデオエンコーダ２１、あるいは任意の他の構成要素によって実装され得る。ステップ８２０において、ＳＥＩ  ＮＡＬユニットを生成するために、１つまたは複数のＳＥＩメッセージ構造を受信する。ステップ８３０において、ＳＥＩ  ＮＡＬユニット中に組み込まれるべき（１つまたは複数の）ＳＥＩメッセージ構造がネスティングＳＥＩメッセージ構造（たとえば、スケーラブルネスティングＳＥＩメッセージ構造および／またはビットストリームパーティションネスティングＳＥＩメッセージ構造）を含むかどうかが決定される。ステップ８３０は、１つの特定のタイプのネスティングＳＥＩメッセージ構造（たとえば、スケーラブルネスティングＳＥＩメッセージ構造またはビットストリームパーティションネスティングＳＥＩメッセージ構造のいずれか）のみ、あるいは複数のタイプのネスティングＳＥＩメッセージ構造（たとえば、スケーラブルネスティングＳＥＩメッセージ構造とビットストリームパーティションネスティングＳＥＩメッセージ構造の両方）について実行され得ることを理解されたい。
【０１４５】
[00151]  ステップ８３０において、ＳＥＩ  ＮＡＬユニット中に組み込まれるべき（１つまたは複数の）ＳＥＩメッセージ構造がネスティングＳＥＩメッセージを含まないと決定された場合、ステップ８４０において、受信された（１つまたは複数の）ＳＥＩメッセージ構造を従来通り（すなわち、ＨＥＶＣ仕様の現在のドラフトに示されているように）ＳＥＩ  ＮＡＬユニットに追加し、プロセス８００はステップ８８０において終了する。
【０１４６】
[00152]  一方、ステップ８３０において、ＳＥＩ  ＮＡＬユニット中に組み込まれるべき（１つまたは複数の）ＳＥＩメッセージ構造がネスティングＳＥＩメッセージ構造を含むと決定された場合、ステップ８２０において受信された（１つまたは複数の）ＳＥＩメッセージ構造は、ネスティングＳＥＩメッセージ構造が（１つまたは複数の）ＳＥＩメッセージ構造のすべてのうちの最後であるように、順序付けられる。たとえば、４つのＳＥＩメッセージ構造、Ａ、Ｂ、Ｃ、およびＤがステップ８２０において受信され、構造ＣはネスティングＳＥＩメッセージ構造であり、Ａ、Ｂ、およびＤは非ネスティングＳＥＩメッセージ構造である場合、ネスティングＳＥＩメッセージ構造Ｃが最後であるように、構造が順序付けられる（たとえば、Ａ−Ｂ−Ｄ−Ｃ、Ｂ−Ａ−Ｄ−Ｃ、Ｂ−Ｄ−Ａ−Ｃなど）。非ネスティングＳＥＩメッセージ構造、Ａ、Ｂ、およびＤの順序は、構造Ａ、Ｂ、およびＤがそれぞれ順序において構造Ｃに先行する限り、任意の様式で（たとえば、非ネスティングＳＥＩメッセージ構造が受信された順序で、ランダムに、他の条件またはパラメータに従ってなど）決定され得る。
【０１４７】
[00153]  ステップ８２０において受信された（１つまたは複数の）ＳＥＩメッセージ構造の順序（order）を、ステップ８５０において決定した後、ステップ８６０において、決定された順序において（１つまたは複数の）ＳＥＩメッセージ構造をＳＥＩ  ＮＡＬユニット中に組み込む。順序は、ＳＥＩ  ＮＡＬユニットに（１つまたは複数の）ＳＥＩメッセージ構造のいずれかを追加することより前に決定され得ることを理解されたい。代替的に、（１つまたは複数の）ＳＥＩメッセージ構造がＳＥＩ  ＮＡＬユニットに追加されているとき、たとえば、非ネスティングＳＥＩメッセージ構造が受信された順序において非ネスティングＳＥＩメッセージ構造を加えること、ただし、遭遇したとき、すべての他のＳＥＩメッセージ構造が追加された後に追加されるべき、ネスティングＳＥＩメッセージ構造を記憶することによって、順序は決定され得る。プロセス８００は、ステップ８８０において終了する。
【０１４８】
ＳＥＩメッセージの構文解析においてペイロードサイズ情報を使用すること（Using Payload Size Information in the Parsing of SEI Messages）
[00154]  ＳＥＩメッセージ構造（たとえば、図４中のｓｅｉ＿ｍｅｓｓａｇｅ（）４３０Ａまたは４３０Ｂ）は、ＳＥＩメッセージ構造のペイロード（たとえば、図４中のｓｅｉ＿ｐａｙｌｏａｄ（）４４０Ａまたは４４０Ｂ）中にＲＢＳＰバイトの数を示す変数「ｐａｙｌｏａｄＳｉｚｅ」を備える。存在するとき、「ｐａｙｌｏａｄＳｉｚｅ」において表されるこの数は、ペイロード拡張（payload extension）（たとえば、図４中の４４４Ａまたは４４４Ｂ）中のバイト（byte）を含む、ペイロードのバイトのすべてを含む。
【０１４９】
[00155]  しかしながら、いくつかのＳＥＩメッセージシンタックス構造は、ｒｅｃｏｖｅｒｙ＿ｐｏｉｎｔ（）など、特定のＳＥＩメッセージシンタックス構造内にすべてのｐａｙｌｏａｄＳｉｚｅバイトを含む。これにより、ペイロード拡張が存在する余地は残らない。ＨＥＶＣのために現在定義されており、このカテゴリーの下に入るＳＥＩメッセージシンタックス構造は、フィラーペイロードＳＥＩメッセージ（filler payload SEI message）、ユーザデータ登録済み（user data registered）、ユーザデータ未登録（user data unregistered）、予約済みＳＥＩメッセージ（reserved SEI message）、およびビデオパラメータセット（ＶＰＳ）リライティングＳＥＩメッセージ（Video Parameter Set (VPS) rewriting SEI message）である。
【０１５０】
[00156]  上記例に応じて、本明細書で説明した技法のうちのいずれかのいくつかの行為またはイベントが、異なるシーケンスで実行され得、追加、マージ、または完全に除外され得る（たとえば、すべての説明した行為またはイベントが本技法の実施のために必要であるとは限らない）ことを認識されたい。その上、いくつかの例では、行為またはイベントは、連続的にではなく、たとえば、マルチスレッド処理、割込み処理、または複数のプロセッサを通して同時に実行され得る。
【０１５１】
[00157]  本明細書で開示する情報および信号は、多種多様な技術および技法のいずれかを使用して表され得る。たとえば、上記の説明全体にわたって言及され得るデータ、命令、コマンド、情報、信号、ビット、シンボル、およびチップは、電圧、電流、電磁波、磁界または磁性粒子、光場または光学粒子、あるいはそれらの任意の組合せによって表され得る。
【０１５２】
[00158]  本明細書で開示する実施形態に関して説明した様々な例示的な論理ブロック、モジュール、回路、およびアルゴリズムステップは、電子ハードウェア、コンピュータソフトウェア、またはその両方の組合せとして実装され得る。ハードウェアとソフトウェアのこの互換性を明確に示すために、様々な例示的な構成要素、ブロック、モジュール、回路、およびステップについて、上記では概してそれらの機能に関して説明した。そのような機能がハードウェアとして実装されるか、ソフトウェアとして実装されるかは、特定の適用例および全体的なシステムに課される設計制約に依存する。当業者は、説明した機能を特定の適用例ごとに様々な方法で実装し得るが、そのような実装の決定は、本開示の範囲からの逸脱を生じるものと解釈されるべきではない。
【０１５３】
[00159]  本明細書で説明した技法は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。そのような技法は、汎用コンピュータ、ワイヤレス通信デバイスハンドセット、またはワイヤレス通信デバイスハンドセットおよび他のデバイスにおける適用例を含む複数の用途を有する集積回路デバイスなど、様々なデバイスのいずれかにおいて実装され得る。モジュールまたは構成要素として説明する任意の機能は、集積論理デバイスに一緒に、または個別であるが相互運用可能な論理デバイスとして別々に実装され得る。ソフトウェアで実装された場合、本技法は、実行されたとき、上記で説明した方法のうちの１つまたは複数を実行する命令を含むプログラムコードを備えるコンピュータ可読データ記憶媒体によって、少なくとも部分的に実現され得る。コンピュータ可読データ記憶媒体は、パッケージング材料を含むことがあるコンピュータプログラム製品の一部を形成し得る。コンピュータ可読媒体は、同期ダイナミックランダムアクセスメモリ（ＳＤＲＡＭ）などのランダムアクセスメモリ（ＲＡＭ）、読取り専用メモリ（ＲＯＭ）、不揮発性ランダムアクセスメモリ（ＮＶＲＡＭ）、電気消去可能プログラマブル読取り専用メモリ（ＥＥＰＲＯＭ（登録商標））、フラッシュメモリ、磁気または光学データ記憶媒体など、メモリまたはデータ記憶媒体を備え得る。本技法は、追加または代替として、伝搬信号または電波など、命令またはデータ構造の形態でプログラムコードを搬送または伝達し、コンピュータによってアクセスされ、読み取られ、および／または実行され得るコンピュータ可読通信媒体によって、少なくとも部分的に実現され得る。
【０１５４】
[00160]  プログラムコードは、１つまたは複数のデジタル信号プロセッサ（ＤＳＰ）、汎用マイクロプロセッサ、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブル論理アレイ（ＦＰＧＡ）、または他の等価の集積回路またはディスクリート論理回路など、１つまたは複数のプロセッサを含み得るプロセッサによって実行され得る。そのようなプロセッサは、本開示で説明した技法のいずれかを実行するように構成され得る。汎用プロセッサはマイクロプロセッサであり得るが、代替として、プロセッサは、任意の従来のプロセッサ、コントローラ、マイクロコントローラ、または状態機械であり得る。プロセッサはまた、コンピューティングデバイスの組合せ、たとえば、ＤＳＰとマイクロプロセッサとの組合せ、複数のマイクロプロセッサ、ＤＳＰコアと連携する１つまたは複数のマイクロプロセッサ、あるいは任意の他のそのような構成として実装され得る。したがって、本明細書で使用する「プロセッサ」という用語は、上記の構造、上記の構造の任意の組合せ、または本明細書で説明した技法の実装に好適な他の構造または装置のいずれかを指すことがある。さらに、いくつかの態様では、本明細書で説明した機能は、符号化および復号のために構成された専用のソフトウェアモジュールまたはハードウェアモジュール内に提供され得、あるいは複合ビデオエンコーダ／デコーダ（コーデック）に組み込まれ得る。
【０１５５】
[00161]  本開示の様々な実施形態について説明した。これらおよび他の実施形態は以下の特許請求の範囲内に入る。
以下に本願の出願当初の特許請求の範囲に記載された発明を付記する。
［Ｃ１］
ビデオコーディングのための方法であって、前記方法は、
１つまたは複数の補足エンハンスメント情報（ＳＥＩ）メッセージ構造を備えるローバイトシーケンスペイロード（ＲＢＳＰ）を備える、ＳＥＩネットワークアブストラクションレイヤ（ＮＡＬ）ユニットを処理することと、ここにおいて、前記１つまたは複数のＳＥＩメッセージ構造が、１つまたは複数のＳＥＩメッセージを有する少なくとも１つのネスティングＳＥＩメッセージ構造を備える、
前記少なくとも１つのネスティングＳＥＩメッセージ構造内に備えられるＳＥＩメッセージの数を示すシンタックス要素をコーディングすることとを備える、方法。
［Ｃ２］
前記少なくとも１つのネスティングＳＥＩメッセージ構造が、スケーラブルネスティングＳＥＩメッセージ構造またはビットストリームパーティションネスティングＳＥＩメッセージ構造のうちの１つを備える、Ｃ１に記載の方法。
［Ｃ３］
前記シンタックス要素をコーディングすることが、前記シンタックス要素を復号することを備え、ここにおいて、前記方法が、前記復号されたシンタックス要素に基づいて、前記少なくとも１つのネスティングＳＥＩメッセージ構造内に備えられるＳＥＩメッセージの前記数を決定することをさらに備える、Ｃ１に記載の方法。
［Ｃ４］
前記少なくとも１つのネスティングＳＥＩメッセージ構造内に備えられるＳＥＩメッセージの前記決定された数に基づいて、前記少なくとも１つのネスティングＳＥＩメッセージ構造を構文解析することをさらに備える、Ｃ３に記載の方法。
［Ｃ５］
前記シンタックス要素が、前記少なくとも１つのネスティングＳＥＩメッセージ構造から復号される、Ｃ３に記載の方法。
［Ｃ６］
前記シンタックス要素をコーディングすることが、前記シンタックス要素を符号化することを備え、ここにおいて、前記方法が、前記シンタックス要素を符号化することより前に、前記少なくとも１つのネスティングＳＥＩメッセージ構造内に備えられるＳＥＩメッセージの前記数を決定することをさらに備える、Ｃ１に記載の方法。
［Ｃ７］
前記シンタックス要素が、前記少なくとも１つのネスティングＳＥＩメッセージ構造中に符号化される、Ｃ６に記載の方法。
［Ｃ８］
ビデオコーディングのためのデバイスであって、前記デバイスは、
ビデオデータを記憶するように構成されたメモリと、
前記メモリと通信しているプロセッサとを備え、前記プロセッサは、
前記ビデオデータに関連する補足エンハンスメント情報（ＳＥＩ）ネットワークアブストラクションレイヤ（ＮＡＬ）ユニットを処理することと、ここにおいて、前記ＳＥＩ
ＮＡＬユニットが、１つまたは複数のＳＥＩメッセージ構造を備えるローバイトシーケンスペイロード（ＲＢＳＰ）を備え、ここにおいて、前記１つまたは複数のＳＥＩメッセージ構造が、１つまたは複数のＳＥＩメッセージを有する少なくとも１つのネスティングＳＥＩメッセージ構造を備える、
前記少なくとも１つのネスティングＳＥＩメッセージ構造内に備えられるＳＥＩメッセージの数を示すシンタックス要素をコーディングすることとを行うように構成された、デバイス。
［Ｃ９］
前記少なくとも１つのネスティングＳＥＩメッセージ構造が、スケーラブルネスティングＳＥＩメッセージ構造またはビットストリームパーティションネスティングＳＥＩメッセージ構造のうちの１つを備える、Ｃ８に記載のデバイス。
［Ｃ１０］
前記プロセッサが、前記シンタックス要素を復号することと、前記復号されたシンタックス要素に基づいて、前記少なくとも１つのネスティングＳＥＩメッセージ構造内に備えられるＳＥＩメッセージの前記数を決定することとを行うようにさらに構成された、Ｃ８に記載のデバイス。
［Ｃ１１］
前記プロセッサが、前記少なくとも１つのネスティングＳＥＩメッセージ構造内に備えられるＳＥＩメッセージの前記決定された数に基づいて、前記少なくとも１つのネスティングＳＥＩメッセージ構造を構文解析するようにさらに構成された、Ｃ１０に記載のデバイス。
［Ｃ１２］
前記プロセッサが、前記少なくとも１つのネスティングＳＥＩメッセージ構造から前記シンタックス要素を復号するようにさらに構成された、Ｃ１０に記載のデバイス。
［Ｃ１３］
前記プロセッサが、前記シンタックス要素を符号化することと、前記シンタックス要素を符号化することより前に、前記少なくとも１つのネスティングＳＥＩメッセージ構造内に備えられるＳＥＩメッセージの前記数を決定することとを行うようにさらに構成された、Ｃ８に記載のデバイス。
［Ｃ１４］
前記プロセッサが、前記少なくとも１つのネスティングＳＥＩメッセージ構造中に前記シンタックス要素を符号化するようにさらに構成された、Ｃ１３に記載のデバイス。
［Ｃ１５］
前記ビデオデータを表示するように構成されたディスプレイをさらに備える、Ｃ８に記載のデバイス。
［Ｃ１６］
前記デバイスが、
集積回路、
マイクロプロセッサ、または
ワイヤレス通信デバイスのうちの少なくとも１つを備える、Ｃ８に記載のデバイス。
［Ｃ１７］
ビデオコーディングのためのデバイスであって、前記デバイスは、
ビデオデータに関連する補足エンハンスメント情報（ＳＥＩ）ネットワークアブストラクションレイヤ（ＮＡＬ）ユニットを処理するための手段と、ここにおいて、前記ＳＥＩ
ＮＡＬユニットが、１つまたは複数のＳＥＩメッセージ構造を備えるローバイトシーケンスペイロード（ＲＢＳＰ）を備え、ここにおいて、前記１つまたは複数のＳＥＩメッセージ構造が、１つまたは複数のＳＥＩメッセージを有する少なくとも１つのネスティングＳＥＩメッセージ構造を備える、
前記少なくとも１つのネスティングＳＥＩメッセージ構造内に備えられるＳＥＩメッセージの数を示すシンタックス要素をコーディングするための手段とを備える、デバイス。
［Ｃ１８］
前記少なくとも１つのネスティングＳＥＩメッセージ構造が、スケーラブルネスティングＳＥＩメッセージ構造またはビットストリームパーティションネスティングＳＥＩメッセージ構造のうちの１つを備える、Ｃ１７に記載のデバイス。
［Ｃ１９］
前記シンタックス要素をコーディングするための前記手段が、前記シンタックス要素を復号するための手段を備え、ここにおいて、前記デバイスが、前記復号されたシンタックス要素に基づいて、前記少なくとも１つのネスティングＳＥＩメッセージ構造内に備えられるＳＥＩメッセージの前記数を決定するための手段をさらに備える、Ｃ１７に記載のデバイス。
［Ｃ２０］
前記少なくとも１つのネスティングＳＥＩメッセージ構造内に備えられるＳＥＩメッセージの前記決定された数に基づいて、前記少なくとも１つのネスティングＳＥＩメッセージ構造を構文解析するための手段をさらに備える、Ｃ１９に記載のデバイス。
［Ｃ２１］
前記シンタックス要素を復号するための手段が、前記少なくとも１つのネスティングＳＥＩメッセージ構造から前記シンタックス要素を復号する、Ｃ１９に記載のデバイス。
［Ｃ２２］
前記シンタックス要素をコーディングするための前記手段が、前記シンタックス要素を符号化するための手段を備え、ここにおいて、前記デバイスが、前記シンタックス要素を符号化することより前に、前記少なくとも１つのネスティングＳＥＩメッセージ構造内に備えられるＳＥＩメッセージの前記数を決定するための手段をさらに備える、Ｃ１７に記載のデバイス。
［Ｃ２３］
前記シンタックス要素を符号化するための前記手段が、前記少なくとも１つのネスティングＳＥＩメッセージ構造中に前記シンタックス要素を符号化する、Ｃ２２に記載のデバイス。
［Ｃ２４］
実行されたとき、１つまたは複数のプロセッサに、
１つまたは複数の補足エンハンスメント情報（ＳＥＩ）メッセージ構造を備えるローバイトシーケンスペイロード（ＲＢＳＰ）を備える、ＳＥＩネットワークアブストラクションレイヤ（ＮＡＬ）ユニットを処理することと、ここにおいて、前記１つまたは複数のＳＥＩメッセージ構造が、１つまたは複数のＳＥＩメッセージを有する少なくとも１つのネスティングＳＥＩメッセージ構造を備える、
前記少なくとも１つのネスティングＳＥＩメッセージ構造内に備えられるＳＥＩメッセージの数を示すシンタックス要素をコーディングすることとを行わせる命令を記憶した非一時的コンピュータ可読媒体。
［Ｃ２５］
前記少なくとも１つのネスティングＳＥＩメッセージ構造が、スケーラブルネスティングＳＥＩメッセージ構造またはビットストリームパーティションネスティングＳＥＩメッセージ構造のうちの１つを備える、Ｃ２４に記載の非一時的コンピュータ可読媒体。
［Ｃ２６］
前記１つまたは複数のプロセッサに、前記シンタックス要素をコーディングすることを行わせる前記命令が、前記１つまたは複数のプロセッサに、前記シンタックス要素を復号することを行わせる命令を備え、ここにおいて、前記非一時的コンピュータ可読媒体が、前記１つまたは複数のプロセッサに、前記復号されたシンタックス要素に基づいて、前記少なくとも１つのネスティングＳＥＩメッセージ構造内に備えられるＳＥＩメッセージの前記数を決定することを行わせる命令をさらに備える、Ｃ２４に記載の非一時的コンピュータ可読媒体。
［Ｃ２７］
前記１つまたは複数のプロセッサに、前記少なくとも１つのネスティングＳＥＩメッセージ構造内に備えられるＳＥＩメッセージの前記決定された数に基づいて、前記少なくとも１つのネスティングＳＥＩメッセージ構造を構文解析することを行わせる命令をさらに備える、Ｃ２６に記載の非一時的コンピュータ可読媒体。
［Ｃ２８］
前記１つまたは複数のプロセッサに、前記シンタックス要素を復号することを行わせる前記命令が、前記少なくとも１つのネスティングＳＥＩメッセージ構造から前記シンタックス要素を復号するための命令を備える、Ｃ２６に記載の非一時的コンピュータ可読媒体。
［Ｃ２９］
前記１つまたは複数のプロセッサに、前記シンタックス要素をコーディングすることを行わせる前記命令が、前記１つまたは複数のプロセッサに、前記シンタックス要素を符号化することを行わせる命令を備え、ここにおいて、前記非一時的コンピュータ可読媒体が、前記１つまたは複数のプロセッサに、前記シンタックス要素を符号化することより前に、前記少なくとも１つのネスティングＳＥＩメッセージ構造内に備えられるＳＥＩメッセージの前記数を決定することを行わせる命令をさらに備える、Ｃ２４に記載の非一時的コンピュータ可読媒体。
［Ｃ３０］
前記１つまたは複数のプロセッサに、前記シンタックス要素を符号化することを行わせる前記命令が、前記少なくとも１つのネスティングＳＥＩメッセージ構造中に前記シンタックス要素を符号化するための命令を備える、Ｃ２９に記載の非一時的コンピュータ可読媒体。
【図１】
0006400741.tif 000006
【図２Ａ】
0006400741.tif 000007
【図２Ｂ】
0006400741.tif 000008
【図３Ａ】
0006400741.tif 000009
【図３Ｂ】
0006400741.tif 000010
【図４】
0006400741.tif 000011
【図５】
0006400741.tif 000012
【図６】
0006400741.tif 000013
【図７】
0006400741.tif 000014
【図８】
0006400741.tif 000015