[0020]概して、本開示は、メディアデータについてのMoving Picture Experts Group(MPEG)−2システムレベルデータに関する技法について説明する。MPEG−2システムは、概して、単一のデータストリームを形成するために2つ以上のデータストリームをどのように一緒に多重化するかを記述する。本開示は、マルチレイヤビデオデータについてのMPEG−2システムデータに関する技法について説明する。より詳細には、本開示は、MPEG−2システムデータストリームのマルチレイヤビデオデータを記述するために使用され得る階層拡張記述子について説明する。たとえば、階層拡張記述子は、空間スケーラビリティ、ピーク信号対雑音比(PSNR)スケーラビリティ、クロミナンスビット深度スケーラビリティなど、複数の可能なスケーラビリティ次元のいずれかについてのデータが存在するかどうかを示し得る。デバイスは、多重分離またはサブビットストリーム抽出を正しく実行するためにこのデータを使用し得る。
[0021]本開示はまた、MPEG−2システムの高効率ビデオコーディング(HEVC)ビデオ記述子に対する変更について説明する。特に、これらの技法によれば、HEVCビデオ記述子は、HEVC拡張記述子がHEVCビデオ記述子の一部として存在するかどうかを示すHEVC拡張存在シンタックス要素(たとえば、フラグ)を含み得る。HEVC拡張記述子は、HEVCビデオデータのための動作点を記述するデータ、たとえば、プロファイル、ティア、およびレベルインジケータ、フレームパッキング情報、時間スケーラビリティ情報、動作点の特定のレイヤが出力の対象とされるのかどうか、ビットレート情報、フレームレート情報を含み得る。
[0022]本開示の技法は、概して、ビデオコーディング規格の拡張(たとえば、ITU−T H.265とも呼ばれる、高効率ビデオコーディング(HEVC)規格の拡張)に従ってコーディングされたビデオデータの搬送(たとえば、トランスポート)を対象とする。そのような拡張は、マルチビュー拡張、3次元拡張、および/またはスケーラブル拡張を含み得る。したがって、本開示の技法は、マルチビューHEVC(MV−HEVC)、3次元HEVC(3D−HEVC)、およびスケーラブルHEVC(SHVC)に適用され得る。
[0023]マルチレイヤビデオデータ、たとえば、マルチビュービデオデータおよび/または複数のスケーラブルレイヤをもつビデオデータは、指定された動作点を含み得る。概して、動作点は、マルチレイヤビデオデータのレイヤのフルセットのうちのレイヤ(たとえば、ビュー)のサブセットを記述する。動作点はまた、ターゲット出力レイヤ、すなわち、データが出力されるべきレイヤを識別し得る。いくつかの事例では、レイヤのデータは、参照レイヤとして使用するためだけに動作点中に含まれ得、したがって、そのようなレイヤは、ターゲット出力レイヤと見なされないことがある。
[0024]スケーラブル次元の1つのタイプは時間次元である。たとえば、時間スケーラビリティでは、ビデオデータのセットは、様々なフレームレートまたは再生速度、たとえば、15フレーム毎秒(FPS)、30FPS、60FPS、および120FPSをサポートし得る。所与の時間レベルは、そのレベルと下位のレベルとにあるすべてのピクチャを含み得る。たとえば、前の例を続けると、0の時間レベルは、15FPSに対応し得、1の時間レベルは、時間レベル0のピクチャならびに30FPSをサポートするために時間レベル1にあるピクチャを含み得、2の時間レベルは、時間レベル0および1のピクチャならびに60FPSをサポートするために時間レベル2にあるピクチャを含み得、以下同様である。時間識別子またはTemporalIDは、特定のピクチャが属する時間レベルを表すようにシグナリングされ得る。
[0025]宛先デバイスは、復号され、最終的にユーザに提示(たとえば、表示)されるべき動作点のうちの1つを選択するために、ビットストリーム中に含まれる動作点記述子を使用し得る。受信時にビューの全部のデータをビデオデコーダに渡すのではなく、宛先デバイスは、選択された動作点のビューのみをビデオデコーダに送り得る。このようにして、宛先デバイスは、復号されないビューのデータを廃棄し得る。宛先デバイスは、ビットストリームの動作点のうち、最高品質をサポートする動作点に基づいておよび/またはネットワーク帯域幅の利用可能な量に基づいて動作点を選択し得る。追加または代替として、中間ネットワークデバイスは、たとえば、帯域幅をより良く利用するために、要求された動作点に対応しないビューについてのデータを破棄し、抽出されたデータを宛先デバイスに転送し得る。
[0026]ビデオデータはまた、プロファイル、レイヤおよびティアによって記述され得る。「プロファイル」は、適用可能なビデオコーディング規格によって指定されるビットストリームシンタックス全体のサブセットである。「レベル」は、たとえば、ピクチャの解像度、ビットレート、およびブロック処理レートに関連するデコーダメモリおよび計算などの、デコーダリソース消費の制限に対応する。
[0027]ビデオコーディング規格は、ITU−T H.261と、ISO/IEC MPEG−1 Visualと、ITU−T H.262またはISO/IEC MPEG−2 Visualと、ITU−T H.263と、ISO/IEC MPEG−4 Visualと、そのスケーラブルビデオコーディング(SVC)拡張およびマルチビュービデオコーディング(MVC)拡張を含む(ISO/IEC MPEG−4 AVCとしても知られる)ITU−T H.264とを含む。
[0028]最近、新しいビデオコーディング規格、すなわち高効率ビデオコーディング(HEVC)の設計が、ITU−T Video Coding Experts Group(VCEG)およびISO/IEC Motion Picture Experts Group(MPEG)のJoint Collaboration Team on Video Coding(JCT−VC)によって確定された。以下でHEVC WDと呼ぶ、HEVCドラフト仕様が、http://phenix.int−evry.fr/jct/doc_end_user/documents/14_Vienna/wg11/JCTVC−N1003−v1.zipから入手可能である。また、HEVCのマルチビュー拡張、すなわちMV−HEVCがJCT−3Vによって開発されている。以下でMV−HEVC WD5と呼ぶ、MV−HEVCのワーキングドラフト(WD)は、http://phenix.it−sudparis.eu/jct2/doc_end_user/documents/5_Vienna/wg11/JCT3V−E1004−v6.zipから入手可能である。SHVCと称するHEVCのスケーラブル拡張も、JCT−VCによって開発されている。以下でSHVC WD3と呼ばれる、SHVCの最近のワーキングドラフト(WD)は、http://phenix.it−sudparis.eu/jct/doc_end_user/documents/14_Vienna/wg11/JCTVC−N1008−v3.zipから入手可能である。
[0029]HEVCの範囲拡張のワーキングドラフト(WD)は、http://phenix.int−evry.fr/jct/doc_end_user/documents/14_Vienna/wg11/JCTVC−N1005−v3.zipから入手可能である。HEVCの3D拡張、すなわち3D−HEVCのワーキングドラフト(WD)は、http://phenix.int−evry.fr/jct2/doc_end_user/documents/5_Vienna/wg11/JCT3V−E1001−v3.zipから入手可能である。
[0030]MPEG−2システム(Moving Pictures Experts Group)技術は、ビデオデータをトランスポートするために採用され得る。MPEG−2システムは、MPEG−2 TSと呼ばれることがある。MPEG−2 TSの仕様は、ITU−T H.264/AVC(Advanced Video Coding)およびAVC拡張のサポートを提供するITU−T勧告H.222.0、2012年6月バージョンである。
[0031]最近、HEVCについてのMPEG−2 TSの改正が開発された。HEVCについてのMPEG−2 TSの改正を記載する1つの文献は、2013年7月のMPEG文献w13656中の「Text of ISO/IEC13818−1:2013/Final Draft Amendment3−Transport of HEVC video over MPEG−2 Systems」である。
[0032]MPEG−2システム仕様には、デジタル送信または記憶に好適な単一のデータストリームを形成するために、圧縮マルチメディア(ビデオおよびオーディオ)データストリームが他のデータとともにどのように多重化され得るかが記載されている。MPEG−2システムは、プログラム(program)(「プログラム(programme)」とつづられることもある)の単一の、デジタル的にコーディングされた(場合によってはMPEG圧縮された)構成要素であるエレメンタリストリームについて記載する。たとえば、プログラムのコーディングされたビデオまたはオーディオ部分はエレメンタリストリームであり得る。エレメンタリストリームは、第一に、プログラムストリームまたはトランスポートストリームに多重化される前に、パケット化エレメンタリストリーム(PES)に変換される。同じプログラム内では、1つのエレメンタリストリームに属するPESパケットを別のものと区別するためにstream_idシンタックス要素が使用される。
[0033]プログラムストリームとトランスポートストリームとは、異なるアプリケーションをターゲットにする2つの代替多重化である。プログラムストリームは、デジタルストレージサービスからの単一のプログラムの記憶および表示のためにバイアスされ、プログラムストリームは、誤りが起こりやすいので、誤りのない環境での使用を目的とする。プログラムストリームは、それに属するエレメンタリストリームを含み、通常、可変長のパケットをもつパケットを含んでいる。プログラムストリームでは、寄与しているエレメンタリストリームから導出されたPESパケットが「パック」に編成される。パックは、パックヘッダと、随意のシステムヘッダと、寄与しているエレメンタリストリームのいずれかから取られる任意の数のPESパケットとを任意の順序で含む。システムヘッダは、プログラムストリームの最大データレート、寄与しているビデオおよびオーディオエレメンタリストリームの数、さらなるタイミング情報など、プログラムストリームの特性の概要を含んでいる。デコーダは、デコーダがプログラムストリームを復号することが可能であるか否かを決定するために、システムヘッダ中に含まれている情報を使用し得る。
[0034]トランスポートストリームは、潜在的に誤りを起こしやすいチャネルを介したいくつかのプログラムの同時配信を目的とする。それは、単一のトランスポートストリームが多くの独立したプログラムに適応することができるように、ブロードキャストなどのマルチプログラムアプリケーションのために考案された多重化である。
[0035]トランスポートストリームは、トランスポートパケットの連続を含み、トランスポートパケットの各々は、188バイトの長さがある。短い、固定長パケットの使用は、トランスポートストリームはプログラムストリームよりも誤りが起こりにくいことを意味する。さらに、各長さ188バイトのトランスポートパケットは、リードソロモン符号化などの標準誤り防止プロセスを通してそれを処理することによって追加の誤り保護を容易に与えられる。トランスポートストリームの誤り耐性の改善は、たとえば、ブロードキャスト環境において発見されるべき、誤りを起こしやすいチャネルを克服する可能性がより高いことを意味する。
[0036]トランスポートストリームは、それの誤り耐性の向上と多くの同時プログラムを搬送する能力との点で2つの多重化のうち明らかにより良いものであるように見えることがある。ただし、トランスポートストリームは、プログラムストリームよりもさらに高度な多重化であり、したがって、作成および多重分離を行うのがより困難である。
[0037]トランスポートパケットの最初のバイトは同期バイトであり、0x47(すなわち、16進値の47または0100 0111)である。単一のトランスポートストリームは、各々が多くのパケット化エレメンタリストリームを備える多くの異なるプログラムを搬送し得る。1つのエレメンタリストリームのデータを含んでいるトランスポートパケットを、他のエレメンタリストリームのデータを搬送しているものと区別するために、13ビットパケット識別子(PID)フィールドが使用される。各エレメンタリストリームが一意のPID値を与えられることを保証することは、マルチプレクサの責任である。トランスポートパケットの最後のバイトは連続性カウントフィールドである。それは、同じエレメンタリストリームに属する連続するトランスポートパケットの間に増分される。これにより、デコーダが、トランスポートパケットの損失または利得を検出し、そうでない場合そのようなイベントから生じ得る誤りをうまくいけば隠匿することが可能になる。
[0038]トランスポートパケットがどのエレメンタリストリームに属するかをPID値が明らかにするが、デコーダはまた、どのエレメンタリストリームがどのプログラムに属するかを決定することが可能でなければならない。プログラム固有情報は、プログラムと構成要素エレメンタリストリームとの関係を明示的に指定するために使用される。プログラム固有情報は、プログラムマップテーブル(PMT:program map table)、プログラムストリームマップ(PSM:program stream map)、プログラム関連付けテーブル(PAT:program association table)、ネットワーク情報テーブル(NIT:network information table)、および/または限定アクセステーブル(CAT:conditional access table)を含み得る。
[0039]トランスポートストリーム中で搬送されるあらゆるプログラムは、それに関連するプログラムマップテーブルを有する。このテーブルは、プログラムとプログラムを形成するエレメンタリストリームとに関する詳細を与える。たとえば、PID33をもつビデオと、PID57をもつ英語のオーディオと、PID60をもつ中国語のオーディオとを含んでいる、番号3をもつプログラムがあり得る。PMTが2つ以上のプログラムを含むことが許可される。基本プログラムマップテーブルは、MPEG−2システム仕様内で指定された多くの記述子のうちのいくつかで装飾され得る。記述子は、プログラムまたはそれの構成要素エレメンタリストリームに関するさらなる情報を搬送する。記述子は、たとえば、ビデオ符号化パラメータ、オーディオ符号化パラメータ、言語識別情報、パンアンドスキャン情報、限定アクセス詳細、著作権情報などを含み得る。放送事業者または他のユーザは、必要な場合、追加のプライベート記述子を定義し得る。ビデオに関する構成要素エレメンタリストリーム中には、階層的コード化ビデオ、オーディオ、およびプライベートストリームの構成要素を含んでいるプログラム要素を識別する情報を与える階層記述子もある。
[0040]PSMは、プログラムストリーム中のエレメンタリストリームと、互いのそれらの関係の説明とを与える。トランスポートストリーム中で搬送されるとき、この構造は、MPEG−2システム仕様に従って変更されないことになる。PSMは、stream_id値が0xBC(16進値BCまたは1011 1100)であるときにPESパケットとして存在する。
[0041]トランスポートストリーム中で利用可能なすべてのプログラムの完全なリストは、プログラム関連付けテーブル中に維持される。このテーブルは、PID値0を常に有するので、容易に発見され得る。各プログラムは、それのプログラムマップテーブルを含んでいるトランスポートパケットのPID値とともにリストされる。上述の同じ例を使用して、プログラム番号3のエレメンタリストリームを指定するPMTはPID1001を有し、別のPMTは別のPID1002を有する。情報のこのセットは、PAT中に含まれる。
[0042]PAT中に指定されるプログラム番号0は特殊な意味を有する。このプログラムは、ネットワーク情報テーブルへの順路をポイントするために使用される。NITは、随意である。存在するとき、NITは、チャネル周波数、衛星トランスポンダ詳細、変調特性、サービス発信者、サービス名称、および利用可能な代替ネットワークの詳細など、トランスポートストリームを搬送する物理ネットワークに関する情報を与えることを目的とする。
[0043]トランスポートストリーム内のいずれかのエレメンタリストリームがスクランブルされた場合、限定アクセステーブルは、MPEG−2システム仕様に従って存在しなければならない。CATは、使用中の(1つまたは複数の)スクランブリングシステムの詳細を与え、限定アクセス管理および資格情報を含んでいるトランスポートパケットのPID値を与える。この情報のフォーマットは、MPEG−2システム仕様内で規定されていない。
[0044]MPEG−2 TSでは、階層記述子は、異なるエレメンタリストリーム中でサブビットストリームの階層をシグナリングするように設計されている。階層記述子は、階層的コード化ビデオ、オーディオ、およびプライベートストリームの構成要素を含んでいるプログラム要素を識別する情報を与える。MPEG−2システム仕様の表2−49を以下に再現する。
[0045]MPEG−2システムの表2−49のシンタックス要素についてのセマンティクスを以下に与える。
[0046]temporal_scalability_flag−1ビットフラグは、「0」に設定されると、関連するプログラム要素が、hierarchy_embedded_layer_indexによって参照されるプログラム要素から生じるビットストリームのフレームレートを拡張することを示す。このフラグの「1」の値は予約済みである。
[0047]spatial_scalability_flag−1ビットフラグは、「0」に設定されると、関連するプログラム要素が、hierarchy_embedded_layer_indexによって参照されるプログラム要素から生じるビットストリームの空間解像度を拡張することを示す。このフラグの「1」の値は予約済みである。
[0048]quality_scalability_flag−1ビットフラグは、「0」に設定されると、関連するプログラム要素が、hierarchy_embedded_layer_indexによって参照されるプログラム要素から生じるビットストリームのSNR品質または忠実度を拡張することを示す。このフラグの「1」の値は予約済みである。
[0049]hierarchy_type−関連する階層レイヤとそれの階層埋め込み済みレイヤの階層関係が表2−50において定義されている。スケーラビリティが2つ以上の次元に適用される場合、このフィールドは、「8」の値(「合成スケーラビリティ」)に設定されることになり、フラグtemporal_scalability_flag、spatial_scalability_flagおよびquality_scalability_flagはそれに応じて設定されることになる。MVCビデオサブビットストリームの場合、このフィールドは、「9」の値(「MVCビデオサブビットストリーム」)に設定されることになり、フラグtemporal_scalability_flag、spatial_scalability_flagおよびquality_scalability_flagは、「1」に設定されることになる。MVCベースビューサブビットストリームの場合、このフィールドは、「15」の値に設定されることになり、フラグtemporal_scalability_flag、spatial_scalability_flagおよびquality_scalability_flagは、「1」に設定されることになる。
[0050]hierarchy_layer_index−hierarchy_layer_indexは、コーディングレイヤ階層のテーブルにおいて関連するプログラム要素の一意のインデックスを定義する6ビットフィールドである。インデックスは、シングルプログラム定義内で一意になることになる。Rec.ITU−T H.264|ISO/IEC14496−10の付属書類Gにおいて規定されている1つまたは複数のプロファイルに準拠するAVCビデオストリームのビデオサブビットストリームの場合、これは、同じアクセスユニットのビデオサブビットストリームの関連するSVC依存性表現がhierarchy_layer_indexの昇順で再アセンブルされた場合にビットストリーム順序が正しくなるように割り当てられるプログラム要素インデックスである。Rec.ITU−T H.264|ISO/IEC14496−10の付属書類Hにおいて規定されている1つまたは複数のプロファイルに準拠するAVCビデオストリームのMVCビデオサブビットストリームの場合、これは、同じアクセスユニットのMVCビデオサブビットストリームの関連するMVCビュー構成要素サブセットがhierarchy_layer_indexの昇順で再アセンブルされた場合にビットストリーム順序が正しくなるように割り当てられるプログラム要素インデックスである。
[0051]tref_present_flag−1ビットフラグは、「0」に設定されると、TREFフィールドが関連するエレメンタリストリーム中のPESパケットヘッダ中に存在し得ることを示す。このフラグの「1」の値は予約済みである。
[0052]hierarchy_embedded_layer_index−hierarchy_embedded_layer_indexは、復号順序でこのhierarchy_descriptorに関連するエレメンタリストリームの復号の前にアクセスされ、存在する必要があるプログラム要素のhierarchy_layer_indexを定義する6ビットフィールドである。hierarchy_type値が15である場合、このフィールドは未定義になる。
[0053]hierarchy_channel−hierarchy_channelは、送信チャネルの順序セットにおいて関連するプログラム要素のための意図されたチャネル番号を示す6ビットフィールドである。最もロバストな送信チャネルは、全体的な送信階層定義に関して、このフィールドの最低値によって定義される。所与のhierarchy_channelは、いくつかのプログラム要素に同時に割り当てられ得る。
[0054]MPEG−2システム仕様の表2−50を以下に再現する。
[0055]MPEG−2 TSでは、SVC拡張記述子とMVC拡張記述子との2つの記述子が、それぞれSVCとMVCとのためのサブビットリームの特性をシグナリングするように設計されている。SVCおよびMVCは、ITU−T H.264/AVCのスケーラブルビデオコーディングおよびマルチビュービデオコーディング拡張である。さらに、MPEG−2 TSでは、動作点の特性を記述するMVC動作点記述子がある。3つの記述子のシンタックスおよびセマンティクスを以下に与える。
[0056]以下の表2−96に、MPEG−2システムのSVC拡張記述子のためのシンタックス要素を示す。Rec.ITU T H.264|ISO/IEC14496−10の付属書類Gにおいて規定されている1つまたは複数のプロファイルに準拠するAVCビデオストリームのビデオサブビットストリームの場合、表2−96のSVC拡張記述子は、(最大)関連するビデオサブビットストリームを再アセンブルすることから生じるAVCビデオストリームに関する情報を与え、関連するビデオサブビットストリームのスケーラビリティおよび再アセンブリに関する情報を与える。Rec.ITU−T H.264|ISO/IEC 14496−10の付属書類Gにおいて規定されている1つまたは複数のプロファイルに準拠するAVCビデオストリームのビデオサブビットストリームのいずれかに関連する1つのSVC拡張記述子があり得る。
[0057]MPEG−2システム仕様による表2−96のシンタックス要素についてのセマンティクスを以下に与える。
[0058]width−この16ビットフィールドは、再アセンブルされたAVCビデオストリームのピクセル単位での最大画像幅解像度を示す。
[0059]height−この16ビットフィールドは、再アセンブルされたAVCビデオストリームのピクセル単位での最大画像高さ解像度を示す。
[0060]frame_rate−この16ビットフィールドは、再アセンブルされたAVCビデオストリームのフレーム/256秒単位での最大フレームレートを示す。
[0061]average_bitrate−この16ビットフィールドは、再アセンブルされたAVCビデオストリームのキロビット毎秒単位での平均ビットレートを示す。
[0062]maximum_bitrate−この16ビットフィールドは、再アセンブルされたAVCビデオストリームのキロビット毎秒単位での最大ビットレートを示す。
[0063]dependency_id−この3ビットフィールドは、ビデオサブビットストリームに関連するdependency_idの値を示す。
[0064]quality_id_start−この4ビットフィールドは、関連するビデオサブビットストリーム中に含まれているすべてのネットワークアブストラクションレイヤ(NAL)ユニットのNALユニットヘッダシンタックス要素のquality_idの最小値を示す。
[0065]quality_id_end−この4ビットフィールドは、関連するビデオサブビットストリーム中に含まれているすべてのNALユニットのNALユニットヘッダシンタックス要素のquality_idの最大値を示す。
[0066]temporal_id_start−この3ビットフィールドは、関連するビデオサブビットストリーム中に含まれているすべてのNALユニットのNALユニットヘッダシンタックス要素のtemporal_idの最小値を示す。
[0067]temporal_id_end−この3ビットフィールドは、関連するビデオサブビットストリーム中に含まれているすべてのNALユニットのNALユニットヘッダシンタックス要素のtemporal_idの最大値を示す。
[0068]no_sei_nal_unit_present−この1ビットフラグは、「1」に設定されると、SEI NALユニットが関連するビデオサブビットストリーム中に存在しないことを示す。no_sei_nal_unit_presentフラグが、すべてのSVCビデオサブビットストリームについて「1」に設定され、SVCのAVCビデオサブビットストリームについて「1」に設定されていないか、または存在しない場合、存在する場合は任意のSEI NALユニットがSVCのAVCビデオサブビットストリーム中に含まれる。すべてのビデオサブビットストリームについてSVC拡張記述子がない場合、SEI NALユニットは、SVCビデオサブビットストリームのいずれかのSVC依存表現中に存在し得、アクセスユニットが再アセンブルする前にRec.ITU−T H.264|ISO/IEC 14496−10において規定されているようにアクセスユニット内でNALユニットの順序に並べ替えることを必要とし得る。
[0069]以下の表2−97は、MPEG−2システム仕様のMVC拡張記述子についてのシンタックスを与える。Rec.ITU−T H.264|ISO/IEC14496−10の付属書類Hにおいて規定されている1つまたは複数のプロファイルに準拠するAVCビデオストリームのMVCビデオサブビットストリームの場合、MVC拡張記述子は、(最大)関連するMVCビデオサブビットストリームを再アセンブルすることから生じるAVCビデオストリームに関する情報を与え、含まれているMVCビデオサブビットストリームに関する情報と関連するMVCビデオサブビットストリームの再アセンブリについてのと情報を与える。Rec.ITU−T H.264|ISO/IEC 14496 10の付属書類Hにおいて規定されている1つまたは複数のプロファイルに準拠するAVCビデオストリームの(stream_typeが0x20に等しい)MVCビデオサブビットストリームのいずれかに関連する1つのMVC拡張記述子があり得る。MVCビデオサブビットストリームがMVCベースビューサブビットストリームであるとき、MVC拡張記述子は、0x1Bに等しいstream_typeについて、関連するPMTまたはPSM中に存在することになる。
[0070]MPEG−2システム仕様による表2−97のシンタックス要素についてのセマンティクスを以下に与える。
[0071]average_bitrate−この16ビットフィールドは、再アセンブルされたAVCビデオストリームのキロビット毎秒単位での平均ビットレートを示す。0に設定されたときに、平均ビットレートは示されない。
[0072]maximum_bitrate−この16ビットフィールドは、再アセンブルされたAVCビデオストリームのキロビット毎秒単位での最大ビットレートを示す。0に設定されたときに、最大ビットレートは示されない。
[0073]view_order_index_min−この10ビットフィールドは、関連するMVCビデオサブビットストリーム中に含まれているすべてのNALユニットのビュー順序インデックスの最小値を示す。
[0074]view_order_index_max−この10ビットフィールドは、関連するMVCビデオサブビットストリーム中に含まれているすべてのNALユニットのビュー順序インデックスの最大値を示す。
[0075]temporal_id_start−この3ビットフィールドは、関連するMVCビデオサブビットストリーム中に含まれているすべてのNALユニットのNALユニットヘッダシンタックス要素のtemporal_idの最小値を示す。
[0076]temporal_id_end−この3ビットフィールドは、関連するMVCビデオサブビットストリーム中に含まれているすべてのNALユニットのNALユニットヘッダシンタックス要素のtemporal_idの最大値を示す。
[0077]no_sei_nal_unit_present−この1ビットフラグは、「1」に設定されると、SEI NALユニットが関連するビデオサブビットストリーム中に存在しないことを示す。no_sei_nal_unit_presentフラグが、すべてのMVCビデオサブビットストリームについて「1」に設定され、MVCのAVCビデオサブビットストリームについて「1」に設定されていないか、または存在しない場合、存在する場合、任意のSEI NALユニットがMVCのAVCビデオサブビットストリーム中に含まれる。すべてのMVCビデオサブビットストリームについてMVC拡張記述子がない場合、SEI NALユニットは、MVCビデオサブビットストリームのいずれかのMVCビュー構成要素サブセット中に存在し得、アクセスユニットが再アセンブルする前にRec.ITU−T H.264|ISO/IEC 14496−10において規定されているようにアクセスユニット内でNALユニットの順序に並べ替えることを必要とし得る。
[0078]no_prefix_nal_unit_present−この1ビットフラグは、「1」に設定されると、プレフィックスNALユニットがMVCのAVCビデオサブビットストリームまたはMVCビデオサブビットストリームのいずれかの中に存在しないことを示す。このビットが「0」に設定されると、プレフィックスNALユニットがMVCのAVCビデオサブビットストリーム中にのみ存在することを示す。
[0079]以下の表2−100は、MPEG−2システム仕様のMVC動作点記述子についてのシンタックスを与える。MVC動作点記述子(表2−100を参照)は、各々が1つまたは複数のMVCビデオサブビットストリームのセットによって構成される1つまたは複数の動作点のためのプロファイルおよびレベルを示す方法を与える。存在する場合、MVC動作点記述子は、program_map_section中のprogram_info_lengthフィールドの直後のデータ要素のグループ中に含まれることになる。MVC動作点記述子がプログラム記述内に存在する場合、同じプログラム中に存在するMVCビデオサブビットストリームごとに少なくとも1つの階層記述子が存在することになる。MPEG−2システム仕様によれば、異なるプロファイルを示すために、プロファイルごとに1つのMVC動作点記述子が使用される。
[0080]MPEG−2システム仕様による表2−100のシンタックス要素についてのセマンティクスを以下に与える。
[0081]profile_idc−この8ビットフィールドは、Rec.ITU−T H.264|ISO/IEC 14496−10において規定されているように、MVCビットストリームについてこの記述子内で記述されるすべての動作点のプロファイルを示す。
[0082]constraint_set0_flag、constraint_set1_flag、constraint_set2_flag、constraint_set3_flag、constraint_set4_flag、constraint_set5_flag−これらのフィールドは、Rec.ITU−T H.264|ISO/IEC 14496−10において規定されているこれらのフィールドについてのセマンティクスに従ってコーディングされることになる。
[0083]AVC_compatible_flags−AVC_compatible_flagsのセマンティクスは、Rec.ITU−T H.264|ISO/IEC 14496−10において規定されているように、シーケンスパラメータセット中のconstraint_set2フラグとlevel_idcフィールドとの間の2ビットに対して定義されるフィールドのセマンティクスに正確に等しくなる。
[0084]level_count−この8ビットフィールドは、動作点が記述されるレベルの数を示す。
[0085]level_idc−この8ビットフィールドは、Rec.ITU−T H.264|ISO/IEC 14496−10において規定されているように、データ要素の以下のグループによって記述される動作点のためのMVCビットストリームのレベルを示す。
[0086]operation_points_count−この8ビットフィールドは、データ要素の以下のグループ中に含まれるリストによって記述される動作点の数を示す。
[0087]applicable_temporal_id−この3ビットフィールドは、再アセンブルされたAVCビデオストリーム中のVCL NALユニットのtemporal_idの最高値を示す。
[0088]num_target_output_views−この8ビットフィールドは、関連する動作点のための出力の対象とされるビューの数の値を示す。
[0089]ES_count−この8ビットフィールドは、データ要素の以下のグループ中に含まれるES_reference値の数を示す。データ要素の以下のグループ中で示されるエレメンタリストリームは一緒に、MVCビデオビットストリームの動作点を形成する。値0xffは予約済みである。
[0090]ES_reference−この6ビットフィールドは、ビデオサブビットストリームを識別する階層記述子中に存在する階層レイヤインデックス値を示す。単一の動作点のためのプロファイルおよびレベル、たとえば、MVCビデオビットストリーム全体は、AVCビデオ記述子を使用してシグナリングされ得る。その上、MVCは、異なるプロファイルおよび/またはレベルを必要とすることができる異なるビューサブセットを復号することを可能にする。MVC動作点記述子の仕様は、複数の動作点のための異なるプロファイルおよびレベルの指示をサポートする。
[0091]以下の表X−1は、MPEG−2システム仕様によるHEVCビデオ記述子についてのシンタックスを与える。HEVCビデオストリームの場合、HEVCビデオ記述子は、そのHEVCビデオストリームの、プロファイルおよびレベルパラメータなどのコーディングパラメータを識別するための基本情報を与える。HEVC時間ビデオサブビットストリームまたはHEVC時間ビデオサブセットの場合、HEVCビデオ記述子は、それが適用されるエレメンタリストリーム中に含まれている関連するHEVC最高時間サブレイヤ表現などの情報を与える。
[0092]MPEG−2システム仕様による表X−1のシンタックス要素についてのセマンティクスを以下に与える。
[0093]profile_space、tier_flag、profile_idc、profile_compatibility_indication、progressive_source_flag、interlaced_source_flag、non_packed_constraint_flag、frame_only_constraint_flag、reserved_zero_44bits、level_idc−HEVCビデオ記述子が、HEVCビデオストリームまたはHEVC完全時間表現に適用されるとき、これらのフィールドは、対応するHEVCビデオストリームまたはHEVC完全時間表現について、それぞれ、general_profile_space、general_tier_flag、general_profile_idc、general_profile_compatibility_flag[i]、general_progressive_source_flag、general_interlaced_source_flag、general_non_packed_constraint_flag、general_frame_only_constraint_flag、general_reserved_zero_44bits、general_level_idcについてRec.ITU−T H.265|ISO/IEC 23008−2において規定されているセマンティクスに従ってコーディングされたることになり、HEVCビデオ記述子が関連付けられるHEVCビデオストリームまたはHEVC完全時間表現全体は、これらのフィールドによってシグナリングされる情報に準拠することになる。
[0094]HEVCビデオ記述子は、対応するHEVC最高時間サブレイヤ表現がHEVC完全時間表現でないHEVC時間ビデオサブビットストリームまたはHEVC時間ビデオサブセットに適用されるとき、これらのフィールドは、対応するHEVC最高時間サブレイヤ表現について、それぞれ、sub_layer_profile_space、sub_layer_tier_flag、sub_layer_profile_idc、sub_layer_profile_compatibility_flag[i]、sub_layer_progressive_source_flag、sub_layer_interlaced_source_flag、sub_layer_non_packed_constraint_flag、sub_layer_frame_only_constraint_flag、sub_layer_reserved_zero_44bits、sub_layer_level_idcについてRec.ITU−T H.265|ISO/IEC 23008−2において規定セマンティクスに従ってコーディングされることになり、HEVCビデオ記述子が関連付けられるHEVC最高時間サブレイヤ表現全体は、これらのフィールドによってシグナリングされる情報に準拠することになる。
[0095]HEVCビデオストリーム中の1つまたは複数のシーケンスにおいて、レベルは、HEVCビデオ記述子中でシグナリングされるレベルよりも低くなり得、一方、HEVCビデオ記述子中でシグナリングされるプロファイルのサブセットであるプロファイルも生じ得る。ただし、HEVCビデオストリーム全体において、存在する場合、HEVCビデオ記述子中でシグナリングされるプロファイル中に含まれる、ビットストリームシンタックス全体のサブセットのみが使用されることになる。HEVCビデオストリーム中のシーケンスパラメータセットが異なるプロファイルをシグナリンスし、追加の制約がシグナリングされない場合、ストリームは、ストリーム全体が、もしあれば、どのプロファイルに準拠するかを決定する審査を必要とし得る。HEVCビデオ記述子が、単一のプロファイルに準拠しないHEVCビデオストリームに関連付けられるべきである場合、HEVCビデオストリームは、2つ以上のサブストリームに区分されるべきであり、したがって、HEVCビデオ記述子は、そのようなサブストリームごとに単一のプロファイルをシグナリングすることができる。
[0096]temporal_layer_subset_flag−この1ビットフラグは、「1」に設定されると、時間レイヤのサブセットを記述するシンタックス要素がこの記述子中に含まれることを示す。このフィールドは、HEVC時間ビデオサブセットについて、およびHEVC時間ビデオサブビットストリームについて1に設定されることになる。「0」に設定されると、シンタックス要素temporal_id_minおよびtemporal_id_maxは、この記述子中に含まれない。
[0097]HEVC_still_present_flag−この1ビットフィールドは、「1」に設定されると、HEVCビデオストリームまたはHEVC最高時間サブレイヤ表現がHEVC静止ピクチャを含み得ることを示す。「0」に設定されると、関連するHEVCビデオストリームはHEVC静止ピクチャを含んでいないことになる。Rec.ITU−T H.265|ISO/IEC 23008−2によれば、IDRピクチャが常に0に等しいTemporalId値に関連付けられ、したがって、HEVCビデオ記述子が、HEVC時間ビデオサブセットに適用される場合、HEVC静止ピクチャは、関連するHEVC時間ビデオサブビットストリーム中にのみ存在することができる。
[0098]HEVC_24_hour_picture_present_flag−この1ビットフラグは、「1」に設定されると、関連するHEVCビデオストリームまたはHEVC最高時間サブレイヤ表現がHEVC24時間ピクチャを含み得ることを示す。HEVC24時間ピクチャの定義については、2.1.97を参照されたい。このフラグが「0」に設定される場合、関連するHEVCビデオストリームは、いかなるHEVC24時間ピクチャをも含んでいないことになる。
[0099]temporal_id_min−この3ビットフィールドは、関連するエレメンタリストリーム中のすべてのHEVCアクセスユニットの、Rec.ITU−T H.265|ISO/IEC 23008−2において規定されているTemporalIdの最小値を示す。
[0100]temporal_id_max−この3ビットフィールドは、関連するエレメンタリストリーム中のすべてのHEVCアクセスユニットの、Rec.ITU−T H.265|ISO/IEC 23008−2において規定されているTemporalIdの最大値を示す。
[0101]本開示は、HEVC規格の拡張に従って符号化されたビデオデータをトランスポートしようと試みるときに遭遇し得るいくつかの問題を認識する。すなわち、MPEG−2システム仕様におけるHEVC拡張ビットストリームのサポートがない。階層記述子は直線的にレイヤを拡張するために使用され得、1つのレイヤが1つの直接依存レイヤしか有することができないことを意味する。しかしながら、現在、MPEG−2システムにおいて複数の直接依存レイヤをシグナリングする方法はない。さらに、hierarchy_typeによってシグナリングされるスケーラビリティのタイプは制限され、現在の設計は十分に一般的でない。さらに、MVC拡張記述子、SVC拡張記述子およびMVC動作点記述子は、系統的に設計されておらず、HEVCまたはH.264/AVCの先の他のビデオコーディング規格の拡張にとって意味がないことがある。
[0102]図1は、ビデオコーディング規格の拡張に従ってコーディングされたビデオデータをトランスポートするための技法を利用し得る例示的なビデオ符号化および復号システム10を示すブロック図である。図1に示すように、システム10は、宛先デバイス14によって後で復号されるべき符号化ビデオデータを提供するソースデバイス12を含む。特に、ソースデバイス12は、コンピュータ可読媒体16を介してビデオデータを宛先デバイス14に提供する。ソースデバイス12および宛先デバイス14は、デスクトップコンピュータ、ノートブック(すなわち、ラップトップ)コンピュータ、タブレットコンピュータ、セットトップボックス、いわゆる「スマート」フォンなどの電話ハンドセット、タブレット、テレビジョン、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲームコンソール、ビデオストリーミングデバイスなどを含む、広範囲にわたるデバイスのいずれかを備え得る。場合によっては、ソースデバイス12および宛先デバイス14は、ワイヤレス通信に対する機能を備え得る。
[0103]宛先デバイス14は、コンピュータ可読媒体16を介して、復号されるべき符号化ビデオデータを受信し得る。コンピュータ可読媒体16は、符号化ビデオデータをソースデバイス12から宛先デバイス14に移動することが可能な、任意のタイプの媒体またはデバイスを備え得る。一例では、コンピュータ可読媒体16は、ソースデバイス12が符号化ビデオデータを宛先デバイス14にリアルタイムで直接送信するのを可能にするための通信媒体を備え得る。符号化ビデオデータは、ワイヤレス通信プロトコルなどの通信規格に従って変調され、宛先デバイス14に送信され得る。通信媒体は、無線周波(RF)スペクトルあるいは1つもしくは複数の物理伝送線路など、任意のワイヤレスまたはワイヤード通信媒体を備え得る。通信媒体は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはインターネットなどのグローバルネットワークなどのパケットベースのネットワークの一部を形成し得る。通信媒体は、ソースデバイス12から宛先デバイス14への通信を容易にするために有用であり得る、ルータ、スイッチ、基地局、または任意の他の機器を含み得る。
[0104]いくつかの例では、符号化データは、出力インターフェース22からストレージデバイスへ出力され得る。同様に、符号化データは、ストレージデバイスから入力インターフェースによってアクセスされ得る。ストレージデバイスは、ハードドライブ、Blue−rayディスク、DVD、CD−ROM、フラッシュメモリ、揮発性もしくは不揮発性のメモリ、または符号化ビデオデータを記憶するための任意の他の適切なデジタル記憶媒体など、様々な分散されたまたはローカルにアクセスされるデータ記憶媒体のいずれをも含み得る。さらなる例では、ストレージデバイスは、ソースデバイス12によって生成された符号化ビデオを記憶することができるファイルサーバまたは別の中間ストレージデバイスに対応し得る。宛先デバイス14は、ストリーミングまたはダウンロードを介して、ストレージデバイスから記憶されたビデオデータにアクセスし得る。ファイルサーバは、符号化ビデオデータを記憶し、その符号化ビデオデータを宛先デバイス14に送信することが可能な任意のタイプのサーバであり得る。例示的なファイルサーバは、(たとえば、ウェブサイト用の)ウェブサーバ、FTPサーバ、ネットワークアタッチドストレージ(NAS)デバイス、またはローカルディスクドライブを含む。宛先デバイス14は、インターネット接続を含む任意の標準的なデータ接続を通じて、符号化ビデオデータにアクセスし得る。これは、ワイヤレスチャネル(たとえば、Wi−Fi(登録商標)接続)、ワイヤード接続(たとえば、DSL、ケーブルモデムなど)、または、ファイルサーバに記憶された符号化ビデオデータにアクセスするのに適した、両方の組合せを含み得る。ストレージデバイスからの符号化ビデオデータの送信は、ストリーミング送信、ダウンロード送信、またはそれらの組合せであり得る。
[0105]本開示の技法は、ワイヤレスの適用例または設定に必ずしも限定されるとは限らない。本技法は、無線テレビジョンブロードキャスト、ケーブルテレビジョン送信、衛星テレビジョン送信、HTTP上の動的適応ストリーミング(DASH:dynamic adaptive streaming over HTTP)などのインターネットストリーミングビデオ送信、データ記憶媒体上に符号化されたデジタルビデオ、データ記憶媒体上に記憶されたデジタルビデオの復号、または他の応用例など、様々なマルチメディア応用のいずれかをサポートするビデオコーディングに適用され得る。いくつかの例では、システム10は、ビデオストリーミング、ビデオ再生、ビデオブロードキャスト、および/もしくはビデオ電話などの応用をサポートするために一方向または両方向のビデオ送信をサポートするように構成され得る。
[0106]図1の例では、ソースデバイス12は、ビデオソース18と、ビデオエンコーダ20と、マルチプレクサ21と、出力インターフェース22とを含む。宛先デバイス14は、入力インターフェース28と、デマルチプレクサ29と、ビデオデコーダ30と、ディスプレイデバイス32とを含む。本開示によれば、ソースデバイス12のマルチプレクサ21は、ビデオコーディング規格の拡張に従ってコーディングされたビデオデータをトランスポートするための技法を適用するように構成され得、一方、デマルチプレクサ29は、処理のためにそのようなデータを受信し、処理されたビデオデータを、たとえば、ビデオデコーダ30に転送し得る。他の例では、ソースデバイスおよび宛先デバイスは、他の構成要素または構成を含み得る。たとえば、ソースデバイス12は、外部カメラなどの外部のビデオソース18からビデオデータを受信し得る。同様に、宛先デバイス14は、内蔵ディスプレイデバイスを含むのではなく、外部ディスプレイデバイスとインターフェースし得る。
[0107]図1の図示のシステム10は一例にすぎない。ビデオコーディング規格の拡張に従ってコーディングされたビデオデータをトランスポートするための技法は、任意のデジタルビデオ符号化および/または復号デバイスによって実行され得る。一般に、本開示の技法は、ビデオ符号化デバイスによって実行されるが、これらの技法は、通常は「コーデック」と呼ばれるビデオエンコーダ/デコーダによっても実行され得る。その上、本開示の技法は、ビデオプリプロセッサによっても実行され得る。ソースデバイス12および宛先デバイス14は、ソースデバイス12が、宛先デバイス14に送信するためのコーディングされたビデオデータを生成するコーディングデバイスの例にすぎない。いくつかの例では、デバイス12、14は、デバイス12、14の各々がビデオ符号化構成要素と復号構成要素とを含むように、実質的に対称的な方式で動作し得る。したがって、システム10は、たとえば、ビデオストリーミング、ビデオ再生、ビデオ放送、もしくはビデオ電話のためのビデオデバイス12とビデオデバイス14の間の一方向または双方向のビデオ送信をサポートし得る。
[0108]ソースデバイス12のビデオソース18は、ビデオカメラなどのビデオキャプチャデバイス、前にキャプチャされたビデオを含んでいるビデオアーカイブ、および/またはビデオコンテンツプロバイダからビデオを受信するためのビデオフィードインターフェースを含み得る。さらなる代わりとして、ビデオソース18は、ソースビデオとしてコンピュータグラフィックスベースのデータ、または、ライブビデオ、アーカイブされたビデオ、およびコンピュータ生成のビデオの組合せを生成し得る。場合によっては、ビデオソース18がビデオカメラである場合、ソースデバイス12および宛先デバイス14は、いわゆるカメラ付き電話またはビデオ付き電話を形成し得る。しかしながら、上記で述べたように、本開示で説明する技法は、一般にビデオコーディングに適用可能であり、ワイヤレスおよび/またはワイヤード用途に適用され得る。各場合において、キャプチャされたビデオ、以前にキャプチャされたビデオ、またはコンピュータ生成ビデオは、ビデオエンコーダ20によって符号化され得る。次いで、符号化ビデオ情報は、出力インターフェース22によってコンピュータ可読媒体16に出力され得る。
[0109]コンピュータ可読媒体16は、ワイヤレスブロードキャストまたはワイヤードネットワーク送信などの一時媒体、あるいはハードディスク、フラッシュドライブ、コンパクトディスク、デジタルビデオディスク、Blu−ray(登録商標)ディスク、または他のコンピュータ可読媒体などの記憶媒体(すなわち、非一時的記憶媒体)を含み得る。いくつかの例では、ネットワークサーバ(図示せず)は、ソースデバイス12から符号化ビデオデータを受信し、たとえば、ネットワーク送信を介して、その符号化ビデオデータを宛先デバイス14に与え得る。同様に、ディスクスタンピング設備など、媒体製造設備のコンピューティングデバイスは、ソースデバイス12から符号化ビデオデータを受信し、その符号化ビデオデータを含んでいるディスクを生成し得る。したがって、コンピュータ可読媒体16は、様々な例において、様々な形態の1つまたは複数のコンピュータ可読媒体を含むことが理解されよう。
[0110]宛先デバイス14の入力インターフェース28は、コンピュータ可読媒体16から情報を受信する。コンピュータ可読媒体16の情報は、ビデオエンコーダ20によって定義されビデオデコーダ30によっても使用される、ブロックおよび他のコード化ユニット、たとえば、ピクチャグループ(GOP)の特性および/または処理を記述するシンタックス要素を含む、シンタックス情報を含み得る。ディスプレイデバイス32は、ユーザに復号ビデオデータを表示し、陰極線管(CRT)、液晶ディスプレイ(LCD)、プラズマディスプレイ、有機発光ダイオード(OLED)ディスプレイ、または別のタイプのディスプレイデバイスなど、様々なディスプレイデバイスのいずれかを備え得る。
[0111]ビデオエンコーダ20およびビデオデコーダ30は、高効率ビデオコーディング(HEVC)規格などのビデオコーディング規格に従って動作し得、HEVCテストモデル(HM)に準拠し得る。代替的に、ビデオエンコーダ20およびビデオデコーダ30は、代替的にMPEG−4,Part10,アドバンストビデオコーディング(AVC)と呼ばれるITU−T H.264規格など、他のプロプライエタリ規格または業界規格、またはそのような規格の拡張に従って動作し得る。ただし、本開示の技法は、いかなる特定のコーディング規格にも限定されない。ビデオコーディング規格の他の例としては、MPEG−2およびITU−T H.263がある。
[0112]ITU−T H.264/MPEG−4(AVC)規格は、ジョイントビデオチーム(JVT)として知られる共同パートナーシップの成果として、ISO/IECムービングピクチャエキスパートグループ(MPEG)とともにITU−Tビデオコーディングエキスパートグループ(VCEG)によって策定された。いくつかの態様では、本開示で説明する技法は、H.264規格に概して準拠するデバイスに適用され得る。H.264規格は、ITU−T Study Groupによる2005年3月付のITU−T勧告H.264、Advanced Video Coding for generic audiovisual servicesに記載されており、本明細書ではH.264規格もしくはH.264仕様、またはH.264/AVC規格もしくは仕様と呼ばれることがある。ジョイントビデオチーム(JVT)は、H.264/MPEG−4 AVCへの拡張に取り組み続けている。
[0113]ビデオエンコーダ20およびビデオデコーダ30は、それぞれ、1つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ディスクリート論理、ソフトウェア、ハードウェア、ファームウェアまたはそれらの任意の組合せなど、様々な好適なエンコーダ回路のいずれかとして実装され得る。本技法がソフトウェアで部分的に実装されるとき、デバイスは、好適な非一時的コンピュータ可読媒体にソフトウェアのための命令を記憶し、本開示の技法を実行するために1つまたは複数のプロセッサを使用してハードウェアで命令を実行し得る。ビデオエンコーダ20およびビデオデコーダ30の各々は、1つもしくは複数のエンコーダまたはデコーダの中に含まれ得、そのいずれかが、それぞれのデバイスにおいて複合エンコーダ/デコーダ(コーデック)の一部として統合され得る。
[0114]JCT−VCは、HEVC規格の開発に取り組んでいる。HEVC規格化の取り組みは、HEVCテストモデル(HM)と呼ばれるビデオコーディングデバイスの発展的モデルに基づく。HMは、たとえば、ITU−T H.264/AVCに従う既存のデバイスに対してビデオコーディングデバイスのいくつかの追加の機能を仮定する。たとえば、H.264は、9つのイントラ予測符号化モードを提供するが、HMは、33ものイントラ予測符号化モードを提供し得る。
[0115]概して、HMの作業モデルは、ビデオフレームまたはピクチャが、ルーマサンプルとクロマサンプルの両方を含む一連のツリーブロックまたは(「コーディングツリーユニット」とも呼ばれる)最大コーディングユニット(LCU)に分割され得ることを記述する。ビットストリーム内のシンタックスデータは、ピクセルの数の点で最大のコーディングユニットであるLCUにとってのサイズを定義し得る。スライスは、コーディング順序でいくつかの連続するツリーブロックを含む。ビデオフレームまたはピクチャは、1つまたは複数のスライスに区分され得る。各ツリーブロックは、4分木に従って、コーディングユニット(CU)に分割され得る。概して、4分木データ構造はCUごとに1つのノードを含み、ルートノードはツリーブロックに対応する。CUが4つのサブCUに分割される場合、CUに対応するノードは4つのリーフノードを含み、その各々はサブCUのうちの1つに対応する。
[0116]4分木データ構造の各ノードは、対応するCUのためのシンタックスデータを与え得る。たとえば、4分木中のノードは、そのノードに対応するCUがサブCUに分割されるかどうかを示すスプリットフラグを含み得る。CUのためのシンタックス要素は、再帰的に定義され得、CUがサブCUに分割されるかどうかに依存し得る。CUがさらに分割されない場合、そのCUはリーフCUと呼ばれる。本開示では、元のリーフCUの明示的分割が存在しない場合でも、リーフCUの4つのサブCUはリーフCUとも呼ばれる。たとえば、16×16サイズのCUがさらに分割されない場合、この16×16CUが決して分割されなくても、4つの8×8サブCUをリーフCUとも呼ぶ。
[0117]CUは、CUがサイズ差異を有しないことを除いて、H.264規格のマクロブロックと同様の目的を有する。たとえば、ツリーブロックは、(サブCUとも呼ばれる)4つの子ノードに分割され得、各子ノードは、今度は親ノードとなり、別の4つの子ノードに分割され得る。4分木のリーフノードと呼ばれる、最後の分割されていない子ノードは、リーフCUとも呼ばれるコーディングノードを備える。コーディングされたビットストリームに関連するシンタックスデータは、最大CU深度と呼ばれる、ツリーブロックが分割され得る最大回数を定義し得、また、コーディングノードの最小サイズを定義し得る。したがって、ビットストリームはまた、最小コーディングユニット(SCU:smallest coding unit)を定義し得る。本開示は、「ブロック」という用語を、HEVCのコンテキストにおいてCU、PU、またはTUのうちのいずれか、または他の規格のコンテキストにおいて類似のデータ構造(たとえば、H.264/AVCのマクロブロックおよびそのサブブロック)を参照するために使用する。
[0118]CUは、コーディングノードと、コーディングノードに関連付けられた予測ユニット(PU)および変換ユニット(TU)とを含む。CUのサイズは、コーディングノードのサイズに対応し、形状が正方形でなければならない。CUのサイズは、8×8ピクセルから最大64×64ピクセル以上をもつツリーブロックのサイズにまでわたり得る。各CUは、1つまたは複数のPUと、1つまたは複数のTUとを含み得る。CUに関連するシンタックスデータは、たとえば、CUの1つまたは複数のPUへの区分を記述し得る。区分モードは、CUがスキップであるのか、または直接モード符号化されるのか、イントラ予測モード符号化されるのか、またはインター予測モード符号化されるのかの間で異なり得る。PUは、形状が非正方形に区分され得る。CUに関連するシンタックスデータはまた、たとえば、4分木に従うCUの1つまたは複数のTUへの区分を記述し得る。TUは、形状が正方形または非正方形(たとえば、矩形)であり得る。
[0119]HEVC規格は、CUごとに異なり得る、TUに従う変換を可能にする。TUは、通常、区分されたLCUのために定義された、所与のCU内のPUのサイズに基づいてサイズ決定されるが、これは常にそうであるとは限らない。TUは、一般に、PUと同じサイズであるか、またはPUよりも小さい。いくつかの例では、CUに対応する残差サンプルは、「残差4分木」(RQT:residual quad tree)と呼ばれる4分木構造を使用して、より小さいユニットに再分割され得る。RQTのリーフノードは変換ユニット(TU)と呼ばれ得る。TUに関連するピクセル差分値は、変換係数を生成するために変換され、その変換係数は量子化され得る。
[0120]リーフCUは、1つまたは複数の予測ユニット(PU)を含み得る。概して、PUは、対応するCUのすべてまたは一部分に対応する空間エリアを表し、そのPUの参照サンプルを取り出すためのデータを含み得る。その上、PUは、予測に関係するデータを含む。たとえば、PUがイントラモードで符号化されるとき、PUに関するデータは、残差4分木(RQT)に含まれ、残差4分木は、PUに対応するTUに関するイントラ予測モードを記述するデータを含め得る。別の例として、PUがインターモードで符号化されるとき、PUは、PUのための1つまたは複数の動きベクトルを定義するデータを含み得る。PUのための動きベクトルを定義するデータは、たとえば、動きベクトルの水平成分、動きベクトルの垂直成分、動きベクトルに関する解像度(たとえば、1/4ピクセル精度または1/8ピクセル精度)、動きベクトルが指す参照ピクチャ、および/または動きベクトルの参照ピクチャリスト(たとえば、リスト0、リスト1、またはリストC)を記述し得る。
[0121]1つまたは複数のPUを有するリーフCUは、1つまたは複数の変換ユニット(TU)をも含み得る。変換ユニットは、上記で説明したように、(TU4分木構造とも呼ばれる)RQTを使用して指定され得る。たとえば、分割フラグは、リーフCUが4つの変換ユニットに分割されるかどうかを示し得る。次いで、各変換ユニットは、さらなるサブTUにさらに分割され得る。TUがさらに分割されないとき、そのTUはリーフTUと呼ばれることがある。概して、イントラコーディングの場合、リーフCUに属するすべてのリーフTUは同じイントラ予測モードを共有する。すなわち、同じイントラ予測モードが、概して、リーフCUのすべてのTUのための予測値を計算するために適用される。イントラコーディングの場合、ビデオエンコーダは、イントラ予測モードを使用して各リーフTUの残差値を、TUに対応するCUの部分と元のブロックとの間の差分として計算し得る。TUは、必ずしもPUのサイズに制限されるとは限らない。したがって、TUは、PUよりも大きいことも小さいこともある。イントラコーディングの場合、PUは、同じCUの対応するリーフTUとコロケートされ得る。いくつかの例では、リーフTUの最大サイズは、対応するリーフCUのサイズに対応し得る。
[0122]その上、リーフCUのTUはまた、残差4分木(RQT)と呼ばれる、それぞれの4分木データ構造に関連し得る。すなわち、リーフCUは、リーフCUがどのようにTUに区分されるかを示す4分木を含み得る。TU4分木のルートノードは一般にリーフCUに対応し、CU4分木のルートノードは一般にツリーブロック(またはLCU)に対応する。分割されないRQTのTUはリーフTUと呼ばれる。概して、本開示では、別段に明記されていない限り、リーフCUおよびリーフTUに言及するためにそれぞれCUおよびTUという用語を使用する。
[0123]ビデオシーケンスは、通常、一連のビデオフレームまたはピクチャを含む。ピクチャグループ(GOP)は、一般に、ビデオピクチャのうちの一連の1つまたは複数を備える。GOPは、GOPに含まれるいくつかのピクチャを記述するシンタックスデータを、GOPのヘッダ中、ピクチャのうちの1つもしくは複数のヘッダ中、または他の場所に含み得る。ピクチャの各スライスは、それぞれのスライスの符号化モードを記述するスライスシンタックスデータを含み得る。ビデオエンコーダ20は、一般に、ビデオデータを符号化するために、個々のビデオスライス内のビデオブロックに作用する。ビデオブロックは、CU内のコーディングノードに対応し得る。ビデオブロックは、固定されたサイズまたは変化するサイズを有することができ、規定されたコーディング規格に従ってサイズが異なり得る。
[0124]一例として、HMは、様々なPUサイズでの予測をサポートする。特定のCUのサイズが2N×2Nであると仮定すると、HMは、2N×2NまたはN×NのPUサイズでのイントラ予測と、2N×2N、2N×N、N×2N、またはN×Nの対称PUサイズでのインター予測とをサポートする。HMは、また、2N×nU、2N×nD、nL×2N、およびnR×2NのPUサイズでのインター予測のための、非対称な区分をサポートする。非対称な区分では、CUの一方向は区分されず、他の方向は25%および75%に区分される。CUのうちで25%区分に対応する部分は、「n」とそれに続く「Up(上)」、「Down(下)」、「Left(左)」、または「Right(右)」の表示とによって示される。したがって、たとえば、「2N×nU」は、上部で2N×0.5N PU、および下部で2N×1.5N PUに水平に区分される2N×2N CUを指す。
[0125]本開示では、「N×N(NxN)」および「N×N(N by N)」は、垂直寸法および水平寸法の観点からビデオブロックのピクセル寸法、たとえば、16×16(16x16)ピクセルまたは16×16(16 by 16)ピクセルを指すために互換的に使用され得る。概して、16×16ブロックは、垂直方向に16ピクセル(y=16)、および水平方向に16ピクセル(x=16)を有する。同様に、N×Nブロックは、概して、垂直方向にNピクセル、および水平方向にNピクセルを有し、ここでNは、非負の整数値を表す。ブロック中のピクセルは、行および列に配列され得る。さらに、ブロックは、必ずしも、水平方向において垂直方向と同じ数のピクセルを有するとは限らない。たとえば、ブロックはN×Mピクセルを備え得、この場合、Mは必ずしもNに等しいとは限らない。
[0126]CUのPUを使用したイントラ予測コーディングまたはインター予測コーディングに続いて、ビデオエンコーダ20は、CUのTUのための残差データを計算し得る。PUは、空間領域(ピクセル領域とも呼ばれる)において予測ピクセルデータを生成する方法またはモードを記述するシンタックスデータを備え、TUは、変換、たとえば、残差ビデオデータへの離散コサイン変換(DCT)、整数変換、ウェーブレット変換、または概念的に同様の変換の適用後に、変換領域において係数を備え得る。残差データは、符号化されていないピクチャのピクセルと、PUに対応する予測値との間のピクセル差分に対応し得る。ビデオエンコーダ20は、CUのための残差データを含むTUを形成し、次いで、CUのための変換係数を生成するために、TUを変換し得る。
[0127]変換係数を生成するための任意の変換の後で、ビデオエンコーダ20は、変換係数の量子化を実行し得る。量子化は、概して、係数を表すために使用されるデータの量をできるだけ低減するために変換係数が量子化され、さらなる圧縮を行うプロセスを指す。量子化プロセスは、係数の一部または全部に関連付けられたビット深度を低減し得る。たとえば、nビット値は、量子化中にmビット値に切り捨てられ得、ここで、nはmよりも大きい。
[0128]量子化の後に、ビデオエンコーダは、変換係数を走査し、量子化された変換係数を含む2次元行列から1次元ベクトルを生成し得る。走査は、アレイの前部により高いエネルギー(したがって、より低い周波数)係数を配置し、アレイの後部により低いエネルギー(したがって、より高い周波数)係数を配置するように設計され得る。いくつかの例では、ビデオエンコーダ20は、エントロピー符号化され得るシリアル化ベクトルを生成するために、量子化変換係数を走査するために所定の走査順序を利用し得る。他の例では、ビデオエンコーダ20は適応走査を実施し得る。量子化変換係数を走査して1次元ベクトルを形成した後に、ビデオエンコーダ20は、たとえば、コンテキスト適応型可変長コーディング(CAVLC:context-adaptive variable length coding)、コンテキスト適応型バイナリ算術コーディング(CABAC:context-adaptive binary arithmetic coding)、シンタックスベースコンテキスト適応型バイナリ算術コーディング(SBAC:syntax-based context-adaptive binary arithmetic coding)、確率間隔区分エントロピー(PIPE:Probability Interval Partitioning Entropy)コーディング、または別のエントロピー符号化方法に従って、1次元ベクトルをエントロピー符号化し得る。ビデオエンコーダ20はまた、ビデオデータを復号する際のビデオデコーダ30による使用のために、符号化ビデオデータに関連付けられたシンタックス要素をエントロピー符号化し得る。
[0129]CABACを実施するために、ビデオエンコーダ20は、コンテキストモデル内のコンテキストを、送信されるべきシンボルに割り当て得る。コンテキストは、たとえば、シンボルの隣接する値がゼロ以外であるか否かに関係し得る。CAVLCを実施するために、ビデオエンコーダ20は、送信されるべきシンボルのための可変長コードを選択し得る。VLC中のコードワードは、比較的より短いコードが優勢シンボルに対応し、より長いコードが劣勢シンボルに対応するように構成され得る。このようにして、VLCの使用は、たとえば、送信されるべき各シンボルのための等長コードワードを使用することに勝るビット節約を達成し得る。確率決定は、シンボルに割り当てられたコンテキストに基づき得る。
[0130]本開示は、HEVC拡張ビットストリームの搬送のための技法について説明する。すなわち、本開示の技法によれば、マルチプレクサ21および/またはデマルチプレクサ29は、HEVCまたは他のまだ開発されていないビデオコーディング規格などのビデオコーディング規格の拡張に従ってコーディングされたビデオデータをトランスポートすること(すなわち、ビデオデータを送信または受信すること)を行うように構成され得る。概して、マルチプレクサ21は、たとえば、MPEG−2システムおよび本開示の技法に実質的に従って、ビットストリームを形成するために、符号化されたビデオデータをカプセル化し得、一方、デマルチプレクサ29は、カプセル化されたデータ、たとえば、HEVCなどのビデオコーディング規格の拡張に従って符号化されたビデオデータを受信し、カプセル化解除し得る。
[0131]本開示は、HEVCレイヤ(エレメンタリストリーム)についてのデータをシグナリングするために使用され得る階層拡張記述子を提案する。マルチプレクサ21は、階層拡張記述子を形成するように構成され得、一方、デマルチプレクサ29は、たとえば、ビデオデコーダ30によって使用され得る形態にビデオデータをアセンブルするために、受信されたビデオデータを処理するために階層拡張記述子を使用し得る。図1の例には示されていないが、中間デバイスはまた、たとえば、サブビットストリーム抽出を実行するために、階層拡張記述子を使用し得る。たとえば、メディアアウェアネットワーク要素(MANE:media aware network element)は、階層拡張記述子を使用してサブビットストリーム抽出を実行し得る。階層拡張記述子は、以下の項目の情報のうちの1つまたは複数を含み得る。
a. 各々が1つの特定のスケーラブル次元の拡張を示す一連のスケーラビリティビット。
i. このビットは、現在、時間スケーラビリティに割り当てられておらず、時間サブレイヤのアセンブルは階層記述子によって達成される。
ii. 代替的に、時間スケーラビリティは、スケーラビリティビットの一部としてシグナリングされ得る。
b. このサブビットストリームに対応するTemporalId、ここにおいて、TemporalIdは、完全な復号可能なビットストリームを形成するために依存レイヤがアセンブルされた後の最高のTemporalIdである。
i. 代替的に、TemporalId範囲(最低のTemporalIdおよび最高のTemporalId)が指定される。
c. 現在のエレメンタリストリームへのインデックス。
d. 現在のエレメンタリストリームのレイヤ識別子。
i. 代替的に、多重レイヤ識別子が指定され得、そのようなサブビットストリームは、複数のレイヤを含んでいるエレメンタリストリームに対応する。
e. 1つまたは複数のレイヤおよび1つまたは複数のレイヤのうちの1つに対応する各エレメンタリストリームへのインデックス。
f. 代替的に、階層拡張記述子は、各可能なTemporalIdと組み合わせて各レイヤについての上述の情報を含み得る。
[0132]一例として、階層拡張記述子は、各々が特定のタイプのスケーラビリティ次元に対応するビットのセットを含み得る。各ビットの値は、そのスケーラビリティ次元がビットストリーム中に存在するかどうかを示し得る。このようにして、階層拡張記述子は、様々なタイプの複数のスケーラビリティ次元のいずれか(たとえば、空間、PSNR、クロマビット深度、色フォーマット、色域フォーマットなど)についてビデオデータが存在するかどうかを表すデータを含み得る。したがって、階層拡張記述子は、同じベースレイヤに異なるスケーラビリティ次元に準拠する2つ以上のエンハンスメントレイヤがあることを示すために使用され得る。いくつかの例では、時間スケーラビリティデータは、階層拡張記述子とは別個のものであり得る。たとえば、階層記述子は、時間スケーラビリティのための時間サブレイヤを示し得、階層拡張記述子は、他のスケーラビリティ次元についてのデータを示し得る。
[0133]追加または代替として、マルチプレクサ21および/またはデマルチプレクサ29は、MPEG−2システム仕様の階層記述子の拡張のシンタックス要素をコーディングするように構成され得る。拡張部分は、他の参照エレメンタリストリームにインデックスをシグナリングし得る。
[0134]本開示はまた、マルチプレクサ21および/またはデマルチプレクサ29がコーディング(それぞれ、符号化または復号)し得るHEVC拡張記述子について説明する。HEVC拡張記述子は、サービスプロバイダによって利用可能で、推奨される動作点を形成するためにエレメンタリストリームがどのように組み合わせられ得るかを記述し得る。HEVC拡張記述子は、いくつかの例では、HEVC記述子中に条件付きで存在し得る。本開示の技法によれば、マルチプレクサ21およびデマルチプレクサ29は、HEVC拡張記述子が存在するかどうかを示すHEVC記述子のシンタックス要素をコーディングするように構成され得る。動作点ごとに、以下のいくつかの情報のうちの1つまたは複数が、存在するとき、HEVC拡張記述子中でシグナリングされ得る。
a. ターゲット出力レイヤに属するレイヤ。
i. 追加または代替として、ターゲット出力レイヤの数のみが存在する。
ii. 追加または代替として、すべてのエレメンタリストリームへのインデックス値がシグナリングされる。
b. 各動作点についてのプロファイル、レベル、およびティア情報。
c. ビットレート情報。
d. フレームレート情報。
e. 最高のTemporalId。
f. 1)すべてのターゲット出力レイヤの最高の空間解像度、2)最高のターゲット出力レイヤの空間解像度または3)各ターゲット出力レイヤの空間解像度などの空間解像度情報。
g. 1)すべてのターゲット出力レイヤの最高のビット深度、2)最高のターゲット出力レイヤのビット深度、または3)各ターゲット出力レイヤのビット深度などのビット深度情報。
h. 1)すべてのターゲット出力レイヤの最高の色フォーマット、2)最高のターゲット出力レイヤの色フォーマット、または3)各ターゲット出力レイヤの色フォーマットなどの色フォーマット(たとえば、4:0:0、4:2:0、4:2:2、または4:4:4)。
i. 1)すべてのターゲット出力レイヤの最高の色域フォーマット、2)最高のターゲット出力レイヤの色域フォーマット、または3)各ターゲット出力レイヤの色域フォーマットなどの色域フォーマット(たとえば、BT709またはBT2020)。
j. 時間サブレイヤアップ切替えがエレメンタリストリームの各アクセスユニットにおいて可能であるかどうかを示すフラグ。
[0135]本開示の様々な技法のためのシンタックスおよびセマンティクスについて以下で説明し、ここで、イタリック体のテキストは、MPEG−2システム仕様への追加を表す。
[0136]HEVCビデオサブビットストリーム:ビデオサブビットストリームは、nuh_layer_idの同じ値に関連するすべてのVCL NALユニットになるように定義され、Rec.ITU−T H.265|ISO/IEC 23008−2において定義されている復号順序のRec.ITU−T H.265|ISO/IEC 23008−2付属書類A、G.11またはH.11andすべて関連する非VCL NALユニットにおいて定義されている1つまたは複数のプロファイルに準拠するHEVCビデオストリーム。0に等しいnuh_layer_idから始まり任意の値のnuh_layer_idまでのnuh_layer_idの連続順序でビデオサブビットストリームを再アセンブルすることがHEVCビデオストリームを生じる。ビデオサブビットストリームは、Rec.ITU−T H.265|ISO/IEC 23008−2の付属書類Bにおいて定義されているHEVCバイトストリームフォーマットを有することになる。
[0137]HEVC拡張ビデオストリーム:Rec.ITU−T H.265|ISO/IEC 23008−2 G.11またはH.11において定義されている1つまたは複数のプロファイルに確認するビデオビットストリーム。
[0138]HEVCビデオシーケンス(システム):Rec.ITU−T H.265|ISO/IEC 23008−2において定義されているコード化ビデオシーケンス。
[0139](たとえば、以下の表2−49による)階層拡張記述子は、階層的コード化ビデオ、オーディオ、およびプライベートストリームの構成要素を含んでいるプログラム要素を識別する情報を与える。
[0140]階層拡張記述子についての例示的なセマンティクスを以下に与える。
[0141]階層拡張記述子は、存在するとき、異なるエレメンタリストリーム中に存在するレイヤの依存を指定するために使用される。しかしながら、時間サブレイヤのアグリゲーションは、ISO/IEC 13818−1の改定3中に指定されているように階層記述子によって実現される。
[0142]extension_dimension_bits−0に等しいnuh_layer_idをもつレイヤのプログラム要素から生じるベースレイヤからの関連するプログラム要素の可能な拡張を示す16ビットフィールド。
[0143]エンハンスメント次元へのビットの割当ては、以下の通りであり得る。
[0144]1に等しいi番目のビットは、対応するエンハンスメント次元が存在することを示し得る。
[0145]hierarchy_layer_index−hierarchy_layer_indexは、コーディングレイヤ階層のテーブルにおいて関連するプログラム要素の一意のインデックスを定義する6ビットフィールドである。インデックスは、シングルプログラム定義内で一意になることになる。Rec.ITU T H.265|ISO/IEC23008−2の付属書類GまたはHにおいて規定されている1つまたは複数のプロファイルに準拠するHEVCビデオストリームのビデオサブビットストリームの場合、これは、同じアクセスユニットのビデオサブビットストリームの関連する依存レイヤがhierarchy_layer_indexの昇順で再アセンブルされた場合にビットストリーム順序が正しくなるように割り当てられるプログラム要素インデックスである。
[0146]tref_present_flag−1ビットフラグは、「0」に設定されると、TREFフィールドが関連するエレメンタリストリーム中のPESパケットヘッダ中に存在し得ることを示す。このフラグの「1」の値は予約済みである。
[0147]nuh_layer_id−6ビットフィールドは、このhierarchy_extension_descriptor()に関連するエレメンタリストリーム中のNALユニットの最高のnuh_layer_idを指定する。
[0148]temporal_id−3ビットフィールドは、このhierarchy_extension_descriptor()に関連するエレメンタリストリーム中のNALユニットの最高のTemporalIdを指定する。
[0149]num_embedded_layers−アクセスされ、復号順序でこのhierarchy_extension_descriptor()に関連するエレメンタリストリームの復号の前に存在する必要がある直接依存プログラム要素の数を指定する6ビットフィールド。
[0150]hierarchy_ext_embedded_layer_index−hierarchy_ext_embedded_layer_indexは、アクセスされ、復号順序でこのhierarchy_extension_descriptorに関連するエレメンタリストリームの復号の前に存在する必要があるプログラム要素のhierarchy_layer_indexを定義する6ビットフィールドである。hierarchy_type値が15である場合、このフィールドは未定義になる。
[0151]hierarchy_channel−hierarchy_channelは、送信チャネルの順序セットにおいて関連するプログラム要素のための意図されたチャネル番号を示す6ビットフィールドである。最もロバストな送信チャネルは、全体的な送信階層定義に関して、このフィールドの最低値によって定義される。所与のhierarchy_channelは、いくつかのプログラム要素に同時に割り当てられ得る。
[0152]追加または代替として、複数のレイヤは、1つのエレメンタリストリーム中に存在し得る。エレメンタリストリーム中の複数のレイヤがサポートされるとき、階層拡張記述子は、次のように設計され、追加は、イタリック体のテキストで強調され、削除は、[削除:””]によって表される。
[0153]この例では、64layer_present_flagsが、MPEG−2システムの階層拡張記述子に追加され、nuh_layer_id要素が、MPEG−2システムの階層拡張記述子から除去されている。layer_present_flagについてのセマンティクスは、次のように定義され得る。
[0154]layer_present_flag−1ビットフィールドは、値「1」を割り当てられると、iに等しいnuh_layer_idをもつレイヤのNALユニットが、hierarchy_layer_indexのエレメンタリストリームへのインデックスをもつエレメンタリストリーム中に存在することを示す。layer_present_flagビットのセットは、各々が、複数のエンハンスメントレイヤの各々に対応する複数のスケーラビリティビットの一例を表し、ここにおいて、スケーラビリティビットの各々の値は、それぞれのエンハンスメントレイヤが、階層拡張記述子に対応するエレメンタリストリーム中に含まれるかどうかを示す。
[0155]追加または代替として、ある範囲の時間サブレイヤをもつ複数のレイヤが、1つのエレメンタリストリーム中に存在し得る。それがサポートされるとき、階層拡張記述子は、次のように設計され得、追加は、イタリック体のテキストを使用して強調される。
[0156]この例では、前の例に対して、min_temporal_idおよびmax_temporal_idシンタックス要素がさらに追加されている。これらのシンタックス要素についてのセマンティクスは、次のようになり得る。
[0157]min_temporal_id−このhierarchy_extension_descriptor()に関連するエレメンタリストリーム中のNALユニットの最低のTemporalIdを指定する3ビットフィールド。
[0158]max_temporal_id−このhierarchy_extension_descriptor()に関連するエレメンタリストリーム中のNALユニットの最高のTemporalIdを指定する3ビットフィールド。
[0159]HEVCビデオストリームの場合、HEVCビデオ記述子は、そのHEVCビデオストリームの、プロファイルおよびレベルパラメータなどのコーディングパラメータを識別するための基本情報を与える。HEVC時間ビデオサブビットストリームまたはHEVC時間ビデオサブセットの場合、HEVCビデオ記述子は、それが適用されるエレメンタリストリーム中に含まれている関連するHEVC最高時間サブレイヤ表現などの情報を与える。表X−1のシンタックスを以下に示し、ここで、イタリック体のテキストは、MPEG−2システムに対する追加を表す。
[0160]表X−1についてのセマンティクスは、次のように定義され得る。
[0161]profile_space、tier_flag、profile_idc、profile_compatibility_indication、progressive_source_flag、interlaced_source_flag、non_packed_constraint_flag、frame_only_constraint_flag、reserved_zero_44bits、level_idc−HEVCビデオ記述子が、HEVCビデオストリームまたはHEVC完全時間表現に適用されるとき、これらのフィールドは、対応するHEVCビデオストリームまたはHEVC完全時間表現について、それぞれ、general_profile_space、general_tier_flag、general_profile_idc、general_profile_compatibility_flag[i]、general_progressive_source_flag、general_interlaced_source_flag、general_non_packed_constraint_flag、general_frame_only_constraint_flag、general_reserved_zero_44bits、general_level_idcについてRec.ITU−T H.265|ISO/IEC 23008−2において規定されているセマンティクスに従ってコーディングされることになり、HEVCビデオ記述子が関連付けられるHEVCビデオストリームまたはHEVC完全時間表現全体は、これらのフィールドによってシグナリングされる情報に準拠することになる。
[0162]HEVCビデオ記述子は、対応するHEVC最高時間サブレイヤ表現がHEVC完全時間表現でないHEVC時間ビデオサブビットストリームまたはHEVC時間ビデオサブセットに適用されるとき、これらのフィールドは、対応するHEVC最高時間サブレイヤ表現について、それぞれ、sub_layer_profile_space、sub_layer_tier_flag、sub_layer_profile_idc、sub_layer_profile_compatibility_flag[i]、sub_layer_progressive_source_flag、sub_layer_interlaced_source_flag、sub_layer_non_packed_constraint_flag、sub_layer_frame_only_constraint_flag、sub_layer_reserved_zero_44bits、sub_layer_level_idcについてRec.ITU−T H.265|ISO/IEC 23008−2において規定されるセマンティクスに従ってコーディングされることになり、HEVCビデオ記述子が関連付けられるHEVC最高時間サブレイヤ表現全体は、これらのフィールドによってシグナリングされる情報に準拠することになる。
[0163]HEVCビデオストリーム中の1つまたは複数のシーケンスにおいて、レベルは、HEVCビデオ記述子中でシグナリングされるレベルよりも低くなり得、一方、HEVCビデオ記述子中でシグナリングされるプロファイルのサブセットであるプロファイルも生じ得る。ただし、HEVCビデオストリーム全体において、存在する場合、HEVCビデオ記述子中でシグナリングされるプロファイル中に含まれる、ビットストリームシンタックス全体のサブセットのみが使用されることになる。HEVCビデオストリーム中のシーケンスパラメータセットが異なるプロファイルをシグナリングし、追加の制約がシグナリングされない場合、ストリームは、ストリーム全体が、もしあれば、どのプロファイルに準拠するかを決定する審査を必要とし得る。HEVCビデオ記述子が、単一のプロファイルに準拠しないHEVCビデオストリームに関連付けられるべきである場合、HEVCビデオストリームは、2つ以上のサブストリームに区分されるべきであり、したがって、HEVCビデオ記述子は、そのようなサブストリームごとに単一のプロファイルをシグナリングすることができる。
[0164]temporal_layer_subset_flag−この1ビットフラグは、「1」に設定されると、時間レイヤのサブセットを記述するシンタックス要素がこの記述子中に含まれることを示す。このフィールドは、HEVC時間ビデオサブセットについて、およびHEVC時間ビデオサブビットストリームについて1に設定されることになる。「0」に設定されると、シンタックス要素temporal_id_minおよびtemporal_id_maxは、この記述子中に含まれない。
[0165]HEVC_still_present_flag−この1ビットフィールドは、「1」に設定されると、HEVCビデオストリームまたはHEVC最高時間サブレイヤ表現がHEVC静止ピクチャを含み得ることを示す。「0」に設定されると、関連するHEVCビデオストリームはHEVC静止ピクチャを含んでいないことになる。Rec.ITU−T H.265|ISO/IEC 23008−2によれば、IDRピクチャが常に0に等しいTemporalId値に関連付けられ、したがって、HEVCビデオ記述子が、HEVC時間ビデオサブセットに適用される場合、HEVC静止ピクチャは、関連するHEVC時間ビデオサブビットストリーム中にのみ存在することができる。
[0166]HEVC_24_hour_picture_present_flag−この1ビットフラグは、「1」に設定されると、関連するHEVCビデオストリームまたはHEVC最高時間サブレイヤ表現がHEVC24時間ピクチャを含み得ることを示す。HEVC24時間ピクチャの定義については、2.1.97を参照されたい。このフラグが「0」に設定される場合、関連するHEVCビデオストリームは、いかなるHEVC24時間ピクチャをも含んでいないことになる。
[0167]temporal_id_min−この3ビットフィールドは、関連するエレメンタリストリーム中のすべてのHEVCアクセスユニットの、Rec.ITU−T H.265|ISO/IEC 23008−2において規定されているTemporalIdの最小値を示す。
[0168]temporal_id_max−この3ビットフィールドは、関連するエレメンタリストリーム中のすべてのHEVCアクセスユニットの、Rec.ITU−T H.265|ISO/IEC 23008−2において規定されているTemporalIdの最大値を示す。
[0169]hevc_extension_present_flag−この1ビットフラグは、「1」に設定されると、HEVC拡張記述子がHEVC記述子の一部として存在することを示す。「0」に設定されると、HEVC拡張記述子は存在しない。hevc_extension_present_flagは、HEVCビデオ記述子のHEVC拡張存在シンタックス要素の一例を表し、ここで、HEVC拡張存在シンタックス要素は、HEVC記述子の一部としてHEVC拡張記述子が存在するかどうかを示す。
[0170]追加または代替として、HEVC拡張記述子は、PMTおよびPSMなどの他の場所中に存在し得る。
[0171]表Xの以下のHEVC拡張記述子が、MPEG−2システム仕様に追加され得、マルチプレクサ21およびデマルチプレクサ29は、HEVC拡張記述子のデータをそれに応じてコーディングするように構成され得る。
[0172]表Xのシンタックス要素についてのセマンティクスは、次のように定義され得る。
[0173]num_operation_points−8ビットフィールドは、この記述子中の指定された動作点の数を指定する。
[0174]profile_space−2ビットフィールドは、両端値を含む0〜31の範囲内のiのすべての値についてprofile_idcの解釈についてのコンテキストを指定する。profile_spaceには、Rec.ITU T H.265|ISO/IEC 23008−2の付属書類Aまたは項G.11あるいは項H.11中に指定されている値以外の値は割り当てられないことになる。profile_idcの他の値は、ITU−T|ISO/IECによる将来の使用のために予約済みである。
[0175]tier_flag−1ビットフィールドは、Rec.ITU T H.265|ISO/IEC 23008−2の付属書類Aまたは項G.11あるいは項H.11中に指定されているようにlevel_idcの解釈についてのティアコンテキストを指定する。
[0176]profile_idc−5ビットフィールドは、profile_spaceが0に等しくなると、Rec.ITU T H.265|ISO/IEC 23008−2の付属書類Aオア中に指定されているようにCVSが準拠するプロファイルを示す。profile_idcには、Rec.ITU T H.265|ISO/IEC 23008−2の付属書類AまたはG.11またはH.11中に指定されている値以外の値は割り当てられないことになる。profile_idcの他の値は、ITU−T|ISO/IECによる将来の使用のために予約済みである。
[0177]profile_compatibility_indication、progressive_source_flag、interlaced_source_flag、non_packed_constraint_flag、frame_only_constraint_flag、reserved_zero_44bits、level_idc−HEVC拡張ビデオ記述子が、HEVC拡張ビデオストリームに適用されるとき、これらのフィールドは、対応するHEVCビデオストリームまたはHEVC拡張ビデオストリームまたはHEVC完全時間表現について、それぞれ、general_profile_space、general_tier_flag、general_profile_idc、general_profile_compatibility_flag[i]、general_progressive_source_flag、general_interlaced_source_flag、general_non_packed_constraint_flag、general_frame_only_constraint_flag、general_reserved_zero_44bits、general_level_idcについてRec.ITU−T H.265|ISO/IEC 23008−2において規定されているセマンティクスに従ってコーディングされることになり、HEVCビデオ記述子が関連付けられるHEVCビデオストリームまたはHEVC完全時間表現全体は、これらのフィールドによってシグナリングされる情報に準拠することになる。
[0178]level_idc−8ビットフィールドは、Rec.ITU T H.265|ISO/IEC 23008−2の付属書類A、G.11またはH.11中に指定されているようにCVSが準拠するレベルを示す。level_idcには、Rec.ITU T H.265|ISO/IEC 23008−2の付属書類A、G.11またはH.11中に指定されている値以外のlevel_idcの値は割り当てられないことになる。level_idcの他の値は、ITU−T|ISO/IECによる将来の使用のために予約済みである。
[0179]reserved_zero−5bits−値「0」の予約された5ビットフィールド。
[0180]max_temporal_id−3ビットフィールドは、i番目の動作点中のレイヤのNALユニットの最高のTemporalIdを指定する。
[0181]hevc_output_layer_flag−1ビットフィールドは、値「1」が割り当てられると、iに等しいnuh_layer_idをもつレイヤが、出力レイヤセットに属し、i番目の動作点が復号されるときに出力のために必要とされることを示す。値「0」が割り当てられると、iに等しいnuh_layer_idをもつレイヤは出力レイヤセットに属しない。i番目のhevc_output_layer_flagが「1」に等しくなるとき、i番目のhevc_layer_present_flagの値は「1」に等しくなることになる。
[0182]average_bitrate−16ビットフィールドは、i番目の動作点に対応するHEVC拡張ビデオストリームのキロビット毎秒単位での平均ビットレートを示す。
[0183]maximum_bitrate−16ビットフィールドは、i番目の動作点に対応するHEVC拡張ビデオストリームのキロビット毎秒単位での最大ビットレートを示す。
[0184]frame_rate−16ビットフィールドは、i番目の動作点に対応するHEVC拡張ビデオストリームのフレーム/256秒単位での最大フレームレートを示す。
[0185]追加または代替として、nuh_layer_id値は、出力レイヤセットのレイヤごとに直接存在する。
[0186]追加または代替として、各々が動作点中に存在するレイヤを示すフラグの異なるループがさらにシグナリングされる。
[0187]hevc_layer_present_flag−1ビットフィールドは、値「1」を割り当てられると、iに等しいnuh_layer_idをもつレイヤのNALユニットが、この記述子において定義されているi番目の動作点に対応するHEVC拡張ビデオストリーム中に存在することを示す。値「0」が割り当てられると、それは、iに等しいnuh_layer_idをもつレイヤのNALユニットが存在しないことを示す。
[0188]追加または代替として、存在するレイヤがシグナリングされないとき、復号されるべきレイヤの数がシグナリングされ得る。
[0189]マルチプレクサ21、デマルチプレクサ29、ビデオエンコーダ20およびビデオデコーダ30はそれぞれ、適用可能なとき、1つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、離散論理回路、ソフトウェア、ハードウェア、ファームウェア、またはそれらの任意の組合せなどの、様々な好適なエンコーダまたはデコーダ回路のいずれかとして実装され得る。ビデオエンコーダ20およびビデオデコーダ30の各々は、1つまたは複数のエンコーダまたはデコーダ中に含まれ得、そのいずれも複合ビデオエンコーダ/デコーダ(コーデック)の一部として統合され得る。ビデオエンコーダ20および/またはビデオデコーダ30を含むデバイスは、集積回路、マイクロプロセッサ、および/または携帯電話のようなワイヤレス通信デバイスを備え得る。
[0190]このようにしてマルチプレクサ21は、ビデオコーディング規格の拡張に従ってコーディングされたエンハンスメントレイヤとエンハンスメントレイヤが依存する2つ以上の参照レイヤとを含むビデオデータを記憶するためのメモリと、ここにおいて、2つ以上の参照レイヤが、第1のスケーラビリティ次元に準拠する第1の参照レイヤと、第2のスケーラビリティ次元に準拠する第2の参照レイヤとを含む、ここにおいて、第1のスケーラビリティ次元が第2のスケーラビリティ次元とは異なる、階層拡張記述子を符号化することを行うように構成された1つまたは複数のプロセッサと、ここにおいて、階層拡張記述子が、エンハンスメントレイヤが依存する2つ以上の参照レイヤを表すデータを含む、を含むデバイスの一例を表す。
[0191]同様に、デマルチプレクサ29は、ビデオコーディング規格の拡張に従ってコーディングされたビデオデータのエンハンスメントレイヤを記憶するためのメモリと、エンハンスメントレイヤを含むエレメンタリストリームのための階層拡張記述子を復号することと、ここにおいて、階層拡張記述子は、エンハンスメントレイヤが依存する2つ以上の参照レイヤを表すデータを含む、ここにおいて、2つ以上の参照レイヤが、第1のスケーラビリティ次元に準拠する第1の参照レイヤと、第2のスケーラビリティ次元に準拠する第2の参照レイヤとを含む、ここにおいて、第1のスケーラビリティ次元が第2のスケーラビリティ次元とは異なる、2つ以上の参照レイヤを表すデータに少なくとも部分的に基づいてビデオデータを処理することとを行うように構成された1つまたは複数のプロセッサとを含むデバイスの一例を表す。
[0192]図2は、ビデオコーディング規格の拡張に従ってコーディングされたビデオデータをトランスポートするための技法を実装し得るビデオエンコーダ20の一例を示すブロック図である。ビデオデータは、ベースレイヤに複数の(たとえば、2つ以上の)エンハンスメントレイヤを含み得、ここで、エンハンスメントレイヤは、異なるスケーラビリティ次元に対応し得る。ビデオエンコーダ20は、ビデオスライス内のビデオブロックのイントラコーディングとインターコーディングとを実行し得る。イントラコーディングは、所与のビデオフレームまたはピクチャ内のビデオの空間的冗長性を低減または除去するために空間的予測に依拠する。インターコーディングは、ビデオシーケンスまたは参照レイヤ(たとえば、参照ビュー)のフレームまたはピクチャ内のビデオの冗長性を低減または除去するために時間的予測またはレイヤ間予測に依拠する。イントラモード(Iモード)は、いくつかの空間ベースコーディングモードのいずれかを指すことがある。単方向予測(Pモード)または双予測(Bモード)などのインターモードは、いくつかの時間ベースコーディングモードのいずれかを指すことがある。
[0193]図2に示されているように、ビデオエンコーダ20は、符号化されるべきビデオフレーム内の現在ビデオブロックを受信する。図2の例では、ビデオエンコーダ20は、モード選択ユニット40と、参照ピクチャメモリ64と、加算器50と、変換処理ユニット52と、量子化ユニット54と、エントロピー符号化ユニット56とを含む。モード選択ユニット40は、動き補償ユニット44と、動き推定ユニット42と、イントラ予測ユニット46と、パーティションユニット48とを含む。ビデオブロック再構築のために、ビデオエンコーダ20はまた、逆量子化ユニット58と、逆変換ユニット60と、加算器62とを含む。再構築されたビデオからブロッキネスアーティファクトを除去するためにブロック境界をフィルタリングするための、デブロッキングフィルタ(図2に示されず)も含まれ得る。所望される場合、デブロッキングフィルタは、通常、加算器62の出力をフィルタ処理することになる。デブロッキングフィルタに加えて、(ループ内またはループ後の)追加のフィルタも使用され得る。そのようなフィルタは、簡約のために図示されないが、必要な場合、加算器50の出力を(インループフィルタとして)フィルタリングし得る。
[0194]符号化プロセス中に、ビデオエンコーダ20は、コーディングされるべきビデオフレームまたはスライスを受信する。フレームまたはスライスは、複数のビデオブロックに分割され得る。動き推定ユニット42および動き補償ユニット44は、時間的予測を行うために、1つまたは複数の参照フレーム中の1つまたは複数のブロックに対する受信されたビデオブロックのインター予測コーディングを実行する。イントラ予測ユニット46は、代替的に、空間予測を行うために、コーディングされるべきブロックと同じフレームまたはスライス中の1つまたは複数の近隣ブロックに対する受信されたビデオブロックのイントラ予測コーディングを実行し得る。ビデオエンコーダ20は、たとえば、ビデオデータの各ブロックに適切なコーディングモードを選択するために、複数のコーディングパスを実施し得る。
[0195]その上、分割ユニット48は、前のコーディングパスでの前の区分化方式の評価に基づいて、ビデオデータのブロックを、サブブロックに区分し得る。たとえば、区分ユニット48は、最初は、レートひずみ分析(たとえば、レートひずみ最適化)に基づいて、フレームまたはスライスをLCUに区分し、LCUの各々をサブCUに区分し得る。モード選択ユニット40は、さらに、LCUのサブCUへの区分を示す4分木データ構造を生成し得る。4分木のリーフノードCUは、1つまたは複数のPUと、1つまたは複数のTUとを含み得る。
[0196]モード選択ユニット40は、たとえば誤差結果に基づいて、コーディングモード、すなわち、イントラまたはインターのうちの1つを選択し得、残差ブロックデータを生成するために、得られたイントラ予測ブロックまたはインター予測ブロックを加算器50に与え、参照フレーム中で使用するための符号化ブロックを再構成するために、得られたイントラ予測ブロックまたはインター予測ブロックを加算器62に与える。モード選択ユニット40はまた、動きベクトル、イントラモードインジケータ、パーティション情報、および他のそのようなシンタックス情報など、シンタックス要素をエントロピー符号化ユニット56に与える。
[0197]動き推定ユニット42および動き補償ユニット44は、高度に統合され得るが、概念上の目的から別々に図示されている。動き推定ユニット42によって実行される動き推定は、ビデオブロックに関する動きを推定する動きベクトルを生成するプロセスである。動きベクトルは、たとえば、現在フレーム(または他のコード化ユニット)内でコーディングされている現在ブロックに対する参照フレーム(または他のコード化ユニット)内の予測ブロックに対する現在ビデオフレームまたはピクチャ内のビデオブロックのPUの変位を示し得る。予測ブロックは、絶対差の合計(SAD:sum of absolute difference)、二乗差の合計(SSD:sum of square difference)、または他の差分基準によって決定され得るピクセル差に関する、コーディングされるべきブロックとよく一致することがわかったブロックである。いくつかの例では、ビデオエンコーダ20は、参照ピクチャメモリ64に記憶された参照ピクチャのサブ整数ピクセル位置の値を計算し得る。たとえば、ビデオエンコーダ20は、参照ピクチャの、4分の1ピクセル位置、8分の1ピクセル位置、または他の分数のピクセル位置の値を補間し得る。したがって、動き推定ユニット42は、完全なピクセル位置および分数ピクセル位置に対して動き探索を実行し、分数ピクセル精度で動きベクトルを出力し得る。
[0198]動き推定ユニット42は、PUの位置を参照ピクチャの予測ブロックの位置と比較することによって、インターコード化スライス中のビデオブロックに関するPUの動きベクトルを計算する。参照ピクチャは、第1の参照ピクチャリスト(リスト0)または第2の参照ピクチャリスト(リスト1)から選択され得、それらの参照ピクチャリストの各々は、参照ピクチャメモリ64に記憶された1つまたは複数の参照ピクチャを識別する。動き推定ユニット42は、計算された動きベクトルをエントロピー符号化ユニット56と動き補償ユニット44とに送る。
[0199]動き補償ユニット44によって実行される動き補償は、動き推定ユニット42によって決定された動きベクトルに基づいて予測ブロックをフェッチまたは生成することに関与し得る。同様に、動き推定ユニット42および動き補償ユニット44は、いくつかの例では、機能的に統合され得る。現在ビデオブロックのPUのための動きベクトルを受信すると、動き補償ユニット44は、動きベクトルが参照ピクチャリストのうちの1つにおいてそれを指す予測ブロックの位置を特定し得る。加算器50は、下で論じるように、コーディングされている現在ビデオブロックのピクセル値から予測ブロックのピクセル値を減算し、ピクセル差分値を形成することによって、残差ビデオブロックを形成する。一般に、動き推定ユニット42は、ルーマ成分に対して動き推定を実行し、動き補償ユニット44は、クロマ成分とルーマ成分の両方に関して、ルーマ成分に基づいて計算された動きベクトルを使用する。モード選択ユニット40は、また、ビデオデコーダ30によるビデオスライスのビデオブロックの復号での使用のために、ビデオブロックおよびビデオスライスと関連したシンタックス要素を生成する。
[0200]代替的に、動き推定ユニット42は、依存レイヤ中のピクチャのブロックに対してレイヤ間(たとえば、ビュー間)予測を実行し得る。たとえば、動き推定ユニット42は、従属ビュー中のピクチャのビュー間予測を実行するときに視差動きベクトルを計算するように構成され得る。他の例では、動き補償ユニット44は、レイヤ間予測を実行するとき、たとえば、エンハンスメントレイヤ中のブロックが拡張されているベースレイヤ中のブロックと同じまたは実質的に同じ位置にあるスケーラビリティ次元にエンハンスメントレイヤが対応するとき、ブロックの0動きベクトル予測を実行し得る。そのようなスケーラビリティ次元は、たとえば、クロマビット深度、色フォーマット、色域、PSNRなどを含み得る。
[0201]イントラ予測ユニット46は、上記で説明したように、動き推定ユニット42と動き補償ユニット44とによって実施されるインター予測の代替として、現在ブロックをイントラ予測し得る。特に、イントラ予測ユニット46は、現在ブロックを符号化するために使用すべきイントラ予測モードを決定し得る。いくつかの例では、イントラ予測ユニット46は、たとえば、別個の符号化パス中に様々なイントラ予測モードを使用して現在ブロックを符号化し、イントラ予測ユニット46(または、いくつかの例では、モード選択ユニット40)は、使用するのに適切なイントラ予測モードを、テストされたモードから選択し得る。
[0202]たとえば、イントラ予測ユニット46は、様々なテストされたイントラ予測モードのためのレートひずみ分析を使用してレートひずみ値を計算し、テストされたモードの中で最良のレートひずみ特性を有するイントラ予測モードを選択し得る。レートひずみ分析は、概して、符号化されたブロックと、符号化されたブロックを生成するために符号化された元の符号化されていないブロックとの間のひずみ(または誤差)の量、ならびに符号化されたブロックを生成するために使用されるビットレート(すなわち、ビット数)を決定する。イントラ予測ユニット46は、どのイントラ予測モードがブロックについて最良のレートひずみ値を呈するかを決定するために、様々な符号化されたブロックのひずみおよびレートから比を計算し得る。
[0203]イントラ予測ユニット46は、ブロックに関するイントラ予測モードを選択した後、ブロックに関して選択されたイントラ予測モードを示す情報を、エントロピー符号化ユニット56に提供し得る。エントロピー符号化ユニット56は、選択されたイントラ予測モードを示す情報を符号化し得る。ビデオエンコーダ20は、送信されるビットストリーム中に構成データを含む場合があり、構成データは、コンテキストの各々に関して使用する、複数のイントラ予測モードのインデックステーブルおよび複数の修正されたイントラ予測モードのインデックステーブル(コードワードマッピングテーブルとも呼ばれる)と、様々なブロックに関する符号化コンテキストの定義と、最も起こりそうなイントラ予測モードの表示と、イントラ予測モードのインデックステーブルと、修正されたイントラ予測モードのインデックステーブルとを含み得る。
[0204]ビデオエンコーダ20は、モード選択ユニット40からの予測データを、コーディングされている元のビデオブロックから減算することによって、残差ビデオブロックを形成する。合計器50は、この減算演算を実行する、1つまたは複数の構成要素を表す。変換処理ユニット52は、離散コサイン変換(DCT)または概念的に類似する変換などの変換を残差ブロックに適用し、残差変換係数値を備えるビデオブロックを生成する。変換処理ユニット52は、DCTと概念的に同様である他の変換を実施し得る。ウェーブレット変換、整数変換、サブバンド変換または他のタイプ変換も使用され得る。
[0205]いずれの場合でも、変換処理ユニット52は、変換を残差ブロックに適用し、残差変換係数のブロックを生成する。変換は、ピクセル値領域からの残差情報を、周波数領域などの変換領域に転換し得る。変換処理ユニット52は、得られた変換係数を量子化ユニット54に送り得る。量子化ユニット54は、ビットレートをさらに低減させるために変換係数を量子化する。量子化プロセスは、係数の一部または全部に関連付けられたビット深度を低減し得る。量子化プロセスは「スケーリング」プロセスと呼ばれることもあり、したがって、量子化変換係数は「スケーリングされた変換係数」と呼ばれることもある。量子化(またはスケーリング)の程度は、量子化パラメータを調整することによって変更され得る。いくつかの例では、エントロピー符号化ユニット56は、次いで、量子化変換係数を含む行列の走査を実行し得る。
[0206]量子化に続いて、エントロピー符号化ユニット56は、スキャンされた量子化変換係数をエントロピーコーディングする。たとえば、エントロピー符号化ユニット56は、コンテキスト適応型可変長コーディング(CAVLC)、コンテキスト適応型バイナリ算術コーディング(CABAC)、シンタックスベースコンテキスト適応型バイナリ算術コーディング(SBAC)、確率間隔区分エントロピー(PIPE)コーディングまたは別のエントロピーコーディング技法を実行し得る。コンテキストベースのエントロピーコーディングの場合、コンテキストは、隣接ブロックに基づき得る。エントロピー符号化ユニット56によるエントロピーコーディングに続いて、符号化されたビットストリームは、別のデバイス(たとえば、ビデオデコーダ30)に送信され、または後の送信もしくは取出のためにアーカイブされ得る。
[0207]逆量子化ユニット58および逆変換ユニット60は、たとえば、参照ブロックとして後で使用できるように、ピクセル領域で残差ブロックを再構築するために、それぞれ、逆量子化と、逆変換とを適用する。動き補償ユニット44は、残差ブロックを参照ピクチャメモリ64のフレームのうちの1つの予測ブロックに加算することによって参照ブロックを計算し得る。動き補償ユニット44はまた、再構成された残差ブロックに1つまたは複数の補間フィルタを適用して、動き推定において使用するためのサブ整数ピクセル値を計算し得る。加算器62は、再構成された残差ブロックを、動き補償ユニット44によって生成された動き補償予測ブロックに加算して、参照ピクチャメモリ64に記憶するための再構成されたビデオブロックを生成する。再構成されたビデオブロックは、動き推定ユニット42および動き補償ユニット44によって、後続のビデオフレーム中のブロックをインターコーディングするために参照ブロックとして使用され得る。
[0208]図3は、ビデオコーディング規格の拡張に従ってコーディングされたビデオデータをトランスポートするための技法を実装し得るビデオデコーダ30の一例を示すブロック図である。図3の例では、ビデオデコーダ30は、エントロピー復号ユニット70と、動き補償ユニット72と、イントラ予測ユニット74と、逆量子化ユニット76と、逆変換ユニット78と、参照ピクチャメモリ82と、加算器80とを含む。ビデオデコーダ30は、いくつかの例では、ビデオエンコーダ20(図2)に関して説明した符号化パスとは概して逆の復号パスを実施し得る。動き補償ユニット72は、エントロピー復号ユニット70から受信された動きベクトルに基づいて、予測データを生成し得、イントラ予測ユニット74は、エントロピー復号ユニット70から受信されたイントラ予測モードインジケータに基づいて、予測データを生成し得る。
[0209]復号プロセスの間、ビデオデコーダ30は、符号化ビデオスライスのビデオブロックおよび関連付けられたシンタックス要素を表す符号化ビットストリームをビデオエンコーダ20から受信する。ビデオデコーダ30のエントロピー復号ユニット70は、量子化された係数と、動きベクトルまたはイントラ予測モードインジケータと、他のシンタックス要素とを生成するために、ビットストリームをエントロピー復号する。エントロピー復号ユニット70は、動きベクトルと他のシンタックス要素とを動き補償ユニット72に転送する。ビデオデコーダ30は、ビデオスライスレベルおよび/またはビデオブロックレベルでシンタックス要素を受信し得る。
[0210]ビデオスライスがイントラコード化(I)スライスとしてコーディングされるとき、イントラ予測ユニット74は、シグナリングされたイントラ予測モードと、現在フレームまたはピクチャの、前に復号されたブロックからのデータとに基づいて、現在ビデオスライスのビデオブロックのための予測データを生成し得る。ビデオフレームがインターコード化(すなわち、B、P、またはGPB)スライスとしてコーディングされるとき、動き補償ユニット72は、エントロピー復号ユニット70から受信された動きベクトルと他のシンタックス要素とに基づいて、現在ビデオスライスのビデオブロックに関する予測ブロックを生成する。予測ブロックは、参照ピクチャリストのうちの1つの中の参照ピクチャのうちの1つから生成され得る。ビデオデコーダ30は、参照ピクチャメモリ82に記憶された参照ピクチャに基づくデフォルトの構成技法を使用して参照フレームリストのリスト0およびリスト1を構成し得る。
[0211]動き補償ユニット72は、動きベクトルと他のシンタックス要素とをパースすることによって現在ビデオスライスのビデオブロックについての予測情報を決定し、復号されている現在ビデオブロックのための予測ブロックを生成するために予測情報を使用する。たとえば、動き補償ユニット72は、ビデオスライスのビデオブロックをコーディングするために使用される予測モード(たとえば、イントラ予測またはインター予測)と、インター予測スライスタイプ(たとえば、Bスライス、Pスライス、またはGPBスライス)と、スライスの参照ピクチャリストのうちの1つまたは複数のための構成情報と、スライスの各インター符号化ビデオブロックのための動きベクトルと、スライスの各インターコード化ビデオブロックのためのインター予測ステータスと、現在ビデオスライス中のビデオブロックを復号するための他の情報とを決定するために、受信されたシンタックス要素のいくつかを使用する。
[0212]動き補償ユニット72はまた、補間フィルタに基づいて補間を実行し得る。動き補償ユニット72は、参照ブロックのサブ整数ピクセルのための補間された値を計算するために、ビデオブロックの符号化中にビデオエンコーダ20によって使用された補間フィルタを使用し得る。この場合、動き補償ユニット72は、受信されたシンタックス要素からビデオエンコーダ20によって使用された補間フィルタを決定し、その補間フィルタを使用して予測ブロックを生成し得る。
[0213]いくつかの例では、動き補償ユニット72は、レイヤ間予測を実行するとき、たとえば、エンハンスメントレイヤ中のブロックが拡張されているベースレイヤ中のブロックと同じまたは実質的に同じ位置にあるスケーラビリティ次元にエンハンスメントレイヤが対応するとき、ブロックの0動きベクトル予測を実行し得る。そのようなスケーラビリティ次元は、たとえば、クロマビット深度、色フォーマット、色域、PSNRなどを含み得る。代替的に、動き補償ユニット72は、1つまたは複数の参照ビュー(たとえば、ベースビュー)から従属ビューのブロックを予測するために視差動きベクトルを使用し得る。ビューがレイヤの一例であることを理解されたい。すなわち、エンハンスメントレイヤがビューであるとき、スケーラビリティ次元は、(たとえば、閲覧者に3次元効果を生成するためのデータを与えるために)ビュー次元に対応し得る。
[0214]逆量子化ユニット76は、ビットストリーム内で提供され、エントロピー復号ユニット70によって復号された、量子化変換係数を逆量子化(inverse quantize)、すなわち、逆量子化(de-quantize)する。逆量子化プロセスは、量子化の程度を決定し、同様に、適用されるべき逆量子化の程度を決定するための、ビデオスライス中の各ビデオブロックに関してビデオデコーダ30によって計算される量子化パラメータQPYの使用を含み得る。逆変換ユニット78は、ピクセル領域において残差ブロックを生成するために、逆変換、たとえば、逆DCT、逆整数変換、または概念的に同様の逆変換プロセスを変換係数に適用する。
[0215]動き補償ユニット72が、動きベクトルおよび他のシンタックス要素に基づいて現在のビデオブロックのための予測ブロックを生成した後、ビデオデコーダ30は、逆変換ユニット78からの残差ブロックを動き補償ユニット72によって生成された対応する予測ブロックと加算することによって、復号されたビデオブロックを形成する。加算器80は、この加算演算を実施する1つまたは複数の構成要素を表す。所望される場合、ブロッキネスアーティファクトを削除するために、復号ブロックをフィルタ処理するためのデブロッキングフィルタも適用され得る。他のループフィルタ(コーディングループの中、またはコーディングループの後のいずれかにおける)も、ピクセルの遷移を平滑化し、または場合によってはビデオ品質を改善するために使用され得る。その後、所与のフレームまたはピクチャ内の復号されたビデオブロックは、参照ピクチャメモリ82内に記憶され、参照ピクチャメモリ82は、後続の動き補償のために使用される参照ピクチャを記憶する。参照ピクチャメモリ82はまた、図1のディスプレイデバイス32などのディスプレイデバイス上で後で提示するために復号ビデオを記憶する。
[0216]図4は、オーディオ/ビデオ(A/V)ソースデバイス120がオーディオおよびビデオデータをA/V宛先デバイス140にトランスポートする例示的なシステム100を示すブロック図である。図4のシステム100は、ビデオ通信会議システム、サーバ/クライアントシステム、放送事業者/受信機システム、またはA/Vソースデバイス120などのソースデバイスからA/V宛先デバイス140などの宛先デバイスにビデオデータが送られる任意の他のシステムに対応し得る。いくつかの例では、A/Vソースデバイス120およびA/V宛先デバイス140は双方向情報交換を実行し得る。すなわち、A/Vソースデバイス120およびA/V宛先デバイス140は、オーディオおよびビデオデータの符号化と復号(および、送信と受信)の両方が可能であり得る。いくつかの例では、オーディオエンコーダ126は、ボコーダとも呼ばれるボイスエンコーダを備え得る。
[0217]A/Vソースデバイス120は、図4の例では、オーディオソース122とビデオソース124とを備える。オーディオソース122は、たとえば、オーディオエンコーダ126によって符号化されるべき、キャプチャされたオーディオデータを表す電気信号を生成するマイクロフォンを備え得る。代替的に、オーディオソース122は、前に記録されたオーディオデータを記憶する記憶媒体、コンピュータシンセサイザなどのオーディオデータ生成器、またはオーディオデータの任意の他のソースを備え得る。ビデオソース124は、ビデオエンコーダ128によって符号化されるべきビデオデータを生成するビデオカメラ、前に記録されたビデオデータで符号化された記憶媒体、ビデオデータ生成ユニット、またはビデオデータの任意の他のソースを備え得る。
[0218]未加工オーディオおよびビデオデータは、アナログまたはデジタルデータを備え得る。アナログデータは、オーディオエンコーダ126および/またはビデオエンコーダ128によって符号化される前にデジタル化され得る。オーディオソース122は、通話参加者が話している間、通話参加者からオーディオデータを取得し得、同時に、ビデオソース124は、通話参加者のビデオデータを取得し得る。他の例では、オーディオソース122は、記憶されたオーディオデータを備えるコンピュータ可読記憶媒体を備え得、ビデオソース124は、記憶されたビデオデータを備えるコンピュータ可読記憶媒体を備え得る。このようにして、本開示で説明する技法は、ライブ、ストリーミング、リアルタイムオーディオおよびビデオデータ、またはアーカイブされた、あらかじめ記録されたオーディオおよびビデオデータに適用され得る。
[0219]ビデオフレームに対応するオーディオフレームは、概して、ビデオフレーム内に含まれているビデオソース124によってキャプチャされたビデオデータと同時に、オーディオソース122によってキャプチャされたオーディオデータを含むオーディオフレームである。たとえば、通話参加者が概して話すことによってオーディオデータを生成する間、オーディオソース122はオーディオデータをキャプチャし、同時に、すなわちオーディオソース122がオーディオデータをキャプチャしている間、ビデオソース124は通話参加者のビデオデータをキャプチャする。したがって、オーディオフレームは、1つまたは複数の特定のビデオフレームに時間的に対応し得る。したがって、ビデオフレームに対応するオーディオフレームは、一般に、オーディオデータとビデオデータとが同時にキャプチャされる状況、およびオーディオフレームとビデオフレームとが、それぞれ、同時にキャプチャされたオーディオデータとビデオデータとを備える状況に対応する。
[0220]いくつかの例では、オーディオエンコーダ126は、符号化オーディオフレームのオーディオデータが記録された時間を表す、各符号化オーディオフレームにおけるタイムスタンプを符号化し得、同様に、ビデオエンコーダ128は、符号化ビデオフレームのビデオデータが記録された時間を表す、各符号化ビデオフレームにおけるタイムスタンプを符号化し得る。そのような例では、ビデオフレームに対応するオーディオフレームは、タイムスタンプを備えるオーディオフレームと、同じタイムスタンプを備えるビデオフレームとを備え得る。A/Vソースデバイス120は、オーディオエンコーダ126および/またはビデオエンコーダ128がそこからタイムスタンプを生成し得るか、あるいはオーディオソース122およびビデオソース124がオーディオおよびビデオデータをそれぞれタイムスタンプに関連付けるために使用し得る、内部クロックを含み得る。
[0221]いくつかの例では、オーディオソース122は、オーディオデータが記録された時間に対応するデータをオーディオエンコーダ126に送り得、ビデオソース124は、ビデオデータが記録された時間に対応するデータをビデオエンコーダ128に送り得る。いくつかの例では、オーディオエンコーダ126は、必ずしもオーディオデータが記録された絶対時刻を示すことなしに、符号化オーディオデータの相対的時間順序を示すために、符号化オーディオデータ中のシーケンス識別子を符号化し得、同様に、ビデオエンコーダ128も、符号化ビデオデータの相対的時間順序を示すためにシーケンス識別子を使用し得る。同様に、いくつかの例では、シーケンス識別子は、タイムスタンプにマッピングされるか、または他の方法でタイムスタンプと相関させられ得る。
[0222]本開示の技法は、概して、符号化マルチメディア(たとえば、オーディオおよびビデオ)データのトランスポートと、トランスポートされたマルチメディアデータの受信ならびに後続の解釈および復号とを対象とする。本開示の技法は、特にマルチビュービデオコーディング(MVC)データ、すなわち複数のビューを備えるビデオデータのトランスポートに適用可能である。図4の例に示すように、ビデオソース124はシーンの複数のビューをビデオエンコーダ128に与え得る。MVCは、立体視または自動立体視3次元ディスプレイなど、3次元ディスプレイによって使用されるべき3次元ビデオデータを生成するために有用であり得る。
[0223]A/Vソースデバイス120は、A/V宛先デバイス140に「サービス」を提供し得る。サービスは、概して、MVCデータの利用可能なビューのサブセットに対応する。たとえば、MVCデータは、0から7まで順序付けられた8つのビューについて利用可能であり得る。あるサービスは、2つのビューを有するステレオビデオに対応し得るが、別のサービスは4つのビューに対応し得、さらに別のサービスは8つのビューすべてに対応し得る。概して、サービスは、利用可能なビューの任意の組合せ(すなわち、任意のサブセット)に対応する。サービスはまた、利用可能なビューならびにオーディオデータの組合せに対応し得る。A/Vソースデバイス120が、A/Vソースデバイス120によって提供されるサービスごとに動作点記述子をさらに与え得るように、動作点がサービスに対応し得る。
[0224]A/Vソースデバイス120は、本開示の技法に従って、ビューのサブセットに対応するサービスを提供することができる。概して、ビューは、「view_id」とも呼ばれるビュー識別子によって表される。ビュー識別子は、概して、ビューを識別するために使用され得るシンタックス要素を備える。ビューが符号化されるとき、MVCエンコーダはビューのview_idを与える。view_idは、MVCデコーダによってビュー間予測(inter-view prediction)のために使用されるか、または他のユニットによって他の目的、たとえばレンダリングのために使用され得る。
[0225]ビュー間予測は、フレームのMVCビデオデータを、共通の時間ロケーションにおける1つまたは複数のフレームを参照して、異なるビューの符号化フレームとして符号化するための技法である。概して、MVCビデオデータの符号化フレームは、空間的に、時間的に、および/または共通の時間ロケーションにおける他のビューのフレームを参照して、予測符号化され得る。したがって、他のビューがそこから予測される参照ビューは、概して、参照ビューを復号するときに、復号された参照ビューが参照のために使用され得るように、参照ビューが参照として働くビューの前に復号される。復号順序は必ずしもview_idの順序に対応しない。したがって、ビューの復号順序はビュー順序インデックスを使用して記述される。ビュー順序インデックスは、アクセスユニット中の対応するビュー構成要素の復号順序を示すインデックスである。
[0226]各個のデータストリームは(オーディオかビデオかにかかわらず)エレメンタリストリームと呼ばれる。エレメンタリストリームは、デジタル的にコーディングされた(場合によっては圧縮された)プログラムの単一の構成要素である。たとえば、プログラムのコーディングされたビデオまたはオーディオ部分はエレメンタリストリームであり得る。エレメンタリストリームは、プログラムストリームまたはトランスポートストリームに多重化される前に、パケット化エレメンタリストリーム(PES)に変換され得る。同じプログラム内では、1つのエレメンタリストリームに属するPESパケットを他のものから区別するためにストリームIDが使用される。エレメンタリストリームの基本データ単位はパケット化されたエレメンタリストリーム(PES)パケットである。したがって、MVCビデオデータの各ビューはそれぞれのエレメンタリストリームに対応する。同様に、オーディオデータは1つまたは複数のそれぞれのエレメンタリストリームに対応する。
[0227]MVCコード化ビデオシーケンスは、各々がエレメンタリストリームであるいくつかのサブビットストリームに分離され得る。各サブビットストリームは、MVC view_idサブセットを使用して識別され得る。各MVC view_idサブセットの概念に基づいて、MVCビデオサブビットストリームが定義される。MVCビデオサブビットストリームは、MVC view_idサブセットに記載されているビューのNALユニットを含んでいる。プログラムストリームは、概して、エレメンタリストリームのものであるNALユニットのみを含んでいる。それはまた、2つのエレメンタリストリームが同じビューを含んでいることができないように設計されている。
[0228]図4の例では、マルチプレクサ130は、ビデオエンコーダ128からビデオデータを備えるエレメンタリストリームを受信し、オーディオエンコーダ126からオーディオデータを備えるエレメンタリストリームを受信する。いくつかの例では、ビデオエンコーダ128およびオーディオエンコーダ126は各々、符号化データからPESパケットを形成するためのパケッタイザを含み得る。他の例では、ビデオエンコーダ128およびオーディオエンコーダ126はそれぞれ、符号化データからPESパケットを形成するためのそれぞれのパケッタイザとインターフェースし得る。さらに他の例では、マルチプレクサ130は、符号化オーディオデータと符号化ビデオデータとからPESパケットを形成するためのパケッタイザを含み得る。
[0229]本開示で使用する「プログラム」は、オーディオデータとビデオデータとの組合せ、たとえば、A/Vソースデバイス120のサービスによって配信されたオーディオエレメンタリストリームと利用可能なビューのサブセットとを備え得る。各PESパケットは、PESパケットが属するエレメンタリストリームを識別するstream_idを含む。マルチプレクサ130は、エレメンタリストリームを構成プログラムストリームまたはトランスポートストリームにアセンブルすることを担当する。プログラムストリームとトランスポートストリームとは、異なるアプリケーションをターゲットにする2つの代替多重である。
[0230]概して、プログラムストリームは1つのプログラムのデータを含み、トランスポートストリームは1つまたは複数のプログラムのデータを含み得る。マルチプレクサ130は、提供されているサービス、ストリームが渡される媒体、送られるべきプログラムの数、または他の考慮事項に基づいて、プログラムストリームまたはトランスポートストリームのいずれかあるいは両方を符号化し得る。たとえば、記憶媒体中のビデオデータが符号化されるべきであるときは、マルチプレクサ130はプログラムストリームを形成する可能性がより高くなり得、ビデオデータがネットワークを介してストリーミングされるか、ブロードキャストされるか、またはビデオテレフォニーの一部として送られるべきであるときは、マルチプレクサ130はトランスポートストリームを使用する可能性がより高くなり得る。
[0231]マルチプレクサ130は、デジタルストレージサービスからの単一のプログラムの記憶および表示のためにプログラムストリームを使用することのほうを優先してバイアスされ得る。プログラムストリームはむしろ誤りが起こりやすいので、プログラムストリームは、誤りのない環境、または誤りがより起こりにくい環境での使用を対象とする。プログラムストリームは、それに属するエレメンタリストリームを備えるにすぎず、通常、可変長さのパケットを含んでいる。プログラムストリームでは、寄与しているエレメンタリストリームから導出されたPESパケットが「パック」に編成される。パックは、パックヘッダと、随意のシステムヘッダと、寄与しているエレメンタリストリームのいずれかから取られる任意の数のPESパケットとを任意の順序で備える。システムヘッダは、プログラムストリームの最大データレート、寄与しているビデオおよびオーディオエレメンタリストリームの数、さらなるタイミング情報、または他の情報など、プログラムストリームの特性の概要を含んでいる。デコーダは、デコーダがプログラムストリームを復号することが可能か否かを決定するために、システムヘッダ中に含まれている情報を使用し得る。
[0232]マルチプレクサ130は、潜在的に誤りを起こしやすいチャネルを介した複数のプログラムの同時配信のためにトランスポートストリームを使用し得る。トランスポートストリームは、単一のトランスポートストリームが多くの独立したプログラムに適応することができるように、ブロードキャストなどのマルチプログラムアプリケーションのために考案された多重である。トランスポートストリームは、トランスポートパケットの各々が長さ188バイトである、トランスポートパケットの連続を備え得る。短い、固定長パケットの使用により、トランスポートストリームはプログラムストリームよりも誤りが起こりにくくなる。さらに、各長さ188バイトのトランスポートパケットは、リードソロモン符号化などの標準誤り防止プロセスを通してパケットを処理することによって追加の誤り保護を与えられ得る。トランスポートストリームの誤り耐性の改善は、たとえば、ブロードキャスト環境において発見されるべき、誤りを起こしやすいチャネルを克服する可能性がより高いことを意味する。
[0233]トランスポートストリームは、その誤り耐性の向上と多くの同時プログラムを搬送する能力とにより、プログラムストリームよりも良好であるように見えることがある。ただし、トランスポートストリームは、プログラムストリームよりもさらに高度な多重であり、したがって、プログラムストリームよりも作成がより困難であり、多重分離がより複雑である。トランスポートパケットの最初のバイトは、0x47の値(16進値47、2進値「01000111」、10進値71)を有する同期バイトであり得る。単一のトランスポートストリームは多くの異なるプログラムを搬送し得、各プログラムは多くのパケット化エレメンタリストリームを備える。マルチプレクサ130は、1つのエレメンタリストリームのデータを含んでいるトランスポートパケットを、他のエレメンタリストリームのデータを搬送しているものと区別するために13ビットパケット識別子(PID)フィールドを使用し得る。各エレメンタリストリームが一意のPID値を与えられることを保証することは、マルチプレクサの責任である。トランスポートパケットの最後のバイトは連続性カウントフィールドであり得る。マルチプレクサ130は、同じエレメンタリストリームに属する連続するトランスポートパケット間で連続性カウントフィールドの値を増分する。これは、A/V宛先デバイス140など、宛先デバイスのデコーダまたは他のユニットがトランスポートパケットの損失または利得を検出し、他の場合はそのようなイベントから生じ得る誤りを願わくは隠匿することを可能にする。
[0234]マルチプレクサ130は、オーディオエンコーダ126とビデオエンコーダ128とからプログラムのエレメンタリストリームのPESパケットを受信し、PESパケットから対応するネットワークアブストラクションレイヤ(NAL)ユニットを形成する。H.264/AVC(Advanced Video Coding)の例では、コード化ビデオセグメントは、ビデオテレフォニー、ストレージ、ブロードキャスト、またはストリーミングなどの適用例に対処する「ネットワークフレンドリーな」ビデオ表現を与えるNALユニットに編成される。NALユニットは、ビデオコーディングレイヤ(VCL)NALユニットと非VCL NALユニットとに分類され得る。VCLユニットは、コア圧縮エンジンを含んでおり、ブロック、マクロブロック、および/またはスライスレベルを備え得る。他のNALユニットは非VCL NALユニットである。
[0235]マルチプレクサ130は、NALが属するプログラムを識別するヘッダ、ならびにペイロード、たとえば、オーディオデータ、ビデオデータ、あるいはNALユニットが対応するトランスポートまたはプログラムストリームを記述するデータを備えるNALユニットを形成し得る。たとえば、H.264/AVCでは、NALユニットは1バイトのヘッダと変動するサイズのペイロードとを含む。一例では、NALユニットヘッダは、priority_id要素と、temporal_id要素と、anchor_pic_flag要素と、view_id要素と、non_idr_flag要素と、inter_view_flag要素とを備える。従来のMVCでは、4バイトのMVC NALユニットヘッダとNALユニットペイロードとを含む、プレフィックスNALユニットとMVCコード化スライスNALユニットとを除いて、H.264によって定義されたNALユニットが保持される。
[0236]NALヘッダのpriority_id要素は、単純なワンパス(one-path)ビットストリーム適合プロセスのために使用され得る。temporal_id要素は、異なる時間レベルが異なるフレームレートに対応する場合、対応するNALユニットの時間レベルを指定するために使用され得る。
[0237]anchor_pic_flag要素は、ピクチャがアンカーピクチャであるか非アンカーピクチャであるかを示し得る。アンカーピクチャと出力順序(すなわち、表示順序)でそれに続くすべてのピクチャとは、復号順序(すなわち、ビットストリーム順序)で前のピクチャを復号することなしに正しく復号され得、したがってランダムアクセスポイントとして使用され得る。アンカーピクチャと非アンカーピクチャとは異なる依存性を有することができ、その両方はシーケンスパラメータセット中でシグナリングされる。他のフラグについては、本章の以下のセクションで説明され、使用される。そのようなアンカーピクチャは、開いたGOP(Group Of Pictures)アクセスポイントと呼ばれることもあり、non_idr_flag要素が0に等しいとき、閉じたGOPアクセスポイントもサポートされる。non_idr_flag要素は、ピクチャが瞬時デコーダリフレッシュ(IDR:instantaneous decoder refresh)であるかビューIDR(V−IDR)ピクチャであるかを示す。概して、IDRピクチャと出力順序またはビットストリーム順序でそれに続くすべてのピクチャとは、復号順序または表示順序のいずれかで前のピクチャを復号することなしに正しく復号され得る。
[0238]view_id要素は、MVCデコーダ内でデータ対話性のために、たとえば、ビュー間予測のために、およびデコーダ外で、たとえば、レンダリングのために使用され得る、ビューを識別するために使用され得るシンタックス情報を備え得る。inter_view_flag要素は、対応するNALユニットが他のビューによってビュー間予測のために使用されるかどうかを指定し得る。AVCに準拠し得る、ベースビューの4バイトNALユニットヘッダ情報を搬送するために、MVCにおいてプレフィックスNALユニットが定義される。MVCのコンテキストにおいて、ベースビューアクセスユニットは、ビューの現在時間インスタンスのVCL NALユニット、ならびにNALユニットヘッドのみを含んでいるプレフィックスNALユニットを含む。H.264/AVCデコーダはプレフィックスNALユニットを無視し得る。
[0239]そのペイロード中にビデオデータを含むNALユニットは、様々なグラニュラリティレベルのビデオデータを備え得る。たとえば、NALユニットは、ビデオデータのブロック、マクロブロック、複数のマクロブロック、ビデオデータのスライス、またはビデオデータのフレーム全体を備え得る。マルチプレクサ130は、ビデオエンコーダ128から符号化ビデオデータをエレメンタリストリームのPESパケットの形態で受信し得る。マルチプレクサ130は、stream_idを、たとえば、データベース中の、あるいはプログラムマップテーブル(PMT)またはプログラムストリームマップ(PSM)など、他のデータ構造中の対応するプログラムにマッピングすることによって、各エレメンタリストリームを対応するプログラムに関連付け得る。
[0240]マルチプレクサ130はまた、複数のNALユニットからアクセスユニットをアセンブルし得る。概して、アクセスユニットは、ビデオデータのフレームを表すための1つまたは複数のNALユニット、そのフレームに対応するオーディオデータが利用可能なとき、そのようなオーディオデータも備え得る。アクセスユニットは、概して、1つの出力時間インスタンスにわたるすべてのNALユニット、たとえば1つの時間インスタンスにわたるすべてのオーディオおよびビデオデータを含む。たとえば、各ビューが120フレーム毎秒(fps)のフレームレートを有する場合、各時間インスタンスは0.05秒の時間間隔に対応し得る。この時間間隔中に、同じアクセスユニット(同じ時間インスタンス)のすべてのビューの固有のフレームは同時にレンダリングされ得る。H.264/AVCに対応する例では、アクセスユニットは、1次コード化ピクチャとして提示され得る、1つの時間インスタンス中のコード化ピクチャを備え得る。したがって、アクセスユニットは、共通の時間インスタンスのすべてのオーディオおよびビデオフレーム、たとえば、時間Xに対応するすべてのビューを備え得る。本開示はまた、特定のビューの符号化ピクチャを「ビュー構成要素」と呼ぶ。すなわち、ビュー構成要素は、特定の時間における特定のビューの符号化ピクチャ(またはフレーム)を備え得る。したがって、アクセスユニットは、共通の時間インスタンスのすべてのビュー構成要素を備えるものと定義され得る。アクセスユニットの復号順序は、必ずしも出力または表示順序と同じである必要はない。
[0241]マルチプレクサ130はまた、プログラムに関するデータをNALユニット中に埋め込み得る。たとえば、マルチプレクサ130は、プログラムマップテーブル(PMT)またはプログラムストリームマップ(PSM)を備えるNALユニットを作成し得る。概して、PMTはトランスポートストリームを記述するために使用され、PSMはプログラムストリームを記述するために使用される。図2の例に関して以下でより詳細に説明するように、マルチプレクサ130は、オーディオエンコーダ126とビデオエンコーダ128とから受信されたエレメンタリストリームをプログラムに関連付け、それに応じてそれぞれのトランスポートストリームおよび/またはプログラムストリームに関連付けるデータストレージユニットを備えるかあるいはそれと対話し得る。
[0242]多くのビデオコーディング規格の場合と同様に、H.264/AVCおよびHEVCは、誤りのないビットストリームのシンタックスと、セマンティクスと、復号プロセスとを定義し、そのいずれも特定のプロファイルまたはレベルに準拠する。これらの規格は、エンコーダを指定しないが、エンコーダは、生成されたビットストリームがデコーダの規格に準拠することを保証することを課される。ビデオコーディング規格のコンテキストでは、「プロファイル」は、アルゴリズム、機能、またはツール、およびそれらに適用される制約のサブセットに対応する。たとえば、H.264規格によって定義される「プロファイル」は、H.264規格によって指定されたビットストリームシンタックス全体のサブセットである。「レベル」は、たとえば、ピクチャの解像度、ビットレート、およびマクロブロック(MB)処理レートに関係するデコーダメモリおよび計算など、デコーダリソース消費の制限に対応する。
[0243]H.264規格は、たとえば、所与のプロファイルのシンタックスによって課される限界内で、復号ピクチャの指定されたサイズなど、ビットストリーム中のシンタックス要素がとる値に応じて、エンコーダおよびデコーダのパフォーマンスの大きい変動を必要とする可能性が依然としてあることを認識している。H.264規格は、多くの適用例において、特定のプロファイル内でシンタックスのすべての仮定的使用を処理することが可能なデコーダを実装することが現実的でもなく、経済的でもないことをさらに認める。したがって、H.264規格は、ビットストリーム中のシンタックス要素の値に課された制約の規定されたセットとして「レベル」を定義する。これらの制約は、値に関する単純な制限であり得る。代替的に、これらの制約は、値の演算の組合せ(たとえば、ピクチャの幅×ピクチャの高さ×毎秒復号されるピクチャの数)に関する制約の形態をとり得る。H.264規格は、個々の実装形態が、サポートされるプロファイルごとに異なるレベルをサポートし得ることをさらに規定する。
[0244]プロファイルに準拠するデコーダは、通常、プロファイル中で定義されたすべての機能をサポートする。たとえば、コーディング機能として、Bピクチャコーディングは、H.264/AVCのベースラインプロファイルではサポートされないが、H.264/AVCの他のプロファイルではサポートされる。レベルに準拠するデコーダは、レベルにおいて定義された制限を超えてリソースを必要としない任意のビットストリームを復号することが可能である必要がある。プロファイルおよびレベルの定義は、解釈可能性のために役立ち得る。たとえば、ビデオ送信中に、プロファイル定義とレベル定義のペアが全送信セッションについてネゴシエートされ、同意され得る。より具体的には、H.264/AVCでは、レベルは、たとえば、処理される必要があるマクロブロックの数に関する制限と、復号されたピクチャバッファ(DPB)のサイズと、コーディングされたピクチャバッファ(CPB)のサイズと、垂直方向の動きベクトルの範囲と、2つの連続するMBごとの動きベクトルの最大数と、Bブロックが8×8ピクセル未満のサブマクロブロックパーティションを有することができるかどうかとを定義し得る。このようにして、デコーダは、デコーダがビットストリームを適切に復号することが可能であるかどうかを決定し得る。
[0245]パラメータセットは、一般に、シーケンスパラメータセット(SPS)中のシーケンスレイヤヘッダ情報とピクチャパラメータセット(PPS)中のまれに変化するピクチャレイヤヘッダ情報とを含む。パラメータセットがある場合、このまれに変化する情報をシーケンスごとまたはピクチャごとに繰り返す必要はなく、したがってコーディング効率が改善され得る。さらに、パラメータセットの使用はヘッダ情報の帯域外送信を可能にし、誤り耐性を達成するための冗長送信の必要を回避し得る。帯域外送信では、他のNALユニットとは異なるチャネル上でパラメータセットNALユニットが送信される。
[0246]MPEG−2システム規格は、「記述子」によってシステムの拡張を可能にする。PMTとPSMの両方は、1つまたは複数の記述子が挿入され得る記述子ループを含む。概して、記述子は、プログラムおよび/またはプログラム要素の定義を拡張するために使用され得るデータ構造を備え得る。本開示は、本開示の技法を実行するための動作点記述子について説明する。概して、本開示の動作点記述子は、動作点のレンダリング能力と、復号能力と、ビットレートとを記述することによって、従来のMVC拡張記述子を拡張する。A/V宛先デバイス140などの宛先デバイスは、復号されるべきビットストリームの動作点のうちの1つを選択するために、動作点ごとに動作点記述子を使用し得る。
[0247]各PMTまたはPSMは、動作点の特性を記述する動作点記述子を含み得る。たとえば、ソースデバイス120は、宛先デバイス140(たとえば、クライアントデバイス)のレンダリング能力を記述するレンダリング能力値を与えるために動作点記述子を与え得る。宛先デバイス140が動作点のビデオデータを適切にレンダリング(たとえば、表示)するために、宛先デバイス140は、レンダリング能力値によってシグナリングされたレンダリング能力を満たす必要がある。レンダリング能力値は、たとえば、表示されるべきビューの数(たとえば、レンダリングの対象となるビューの数)および/またはビューのビデオデータのフレームレートを記述し得る。したがって、宛先デバイス140は、宛先デバイス140のビデオ出力144が、動作点記述子によって指定されたフレームレートで、動作点のその数のビューを表示することができるとき、レンダリング能力が満たされると決定し得る。
[0248]マルチプレクサ130が、受信したデータからNALユニットおよび/またはアクセスユニットをアセンブルした後、マルチプレクサ130はユニットを出力のために出力インターフェース132に渡す。出力インターフェース132は、たとえば、送信機、トランシーバ、たとえば、オプティカルドライブ、磁気メディアドライブ(たとえば、フロッピー(登録商標)ドライブ)など、コンピュータ可読媒体にデータを書き込むためのデバイス、ユニバーサルシリアルバス(USB)ポート、ネットワークインターフェース、または他の出力インターフェースを備え得る。出力インターフェース132は、NALユニットまたはアクセスユニットを、たとえば、送信信号、磁気メディア、光メディア、メモリ、フラッシュドライブ、または他のコンピュータ可読媒体など、コンピュータ可読媒体134に出力する。
[0249]最終的に、入力インターフェース136はコンピュータ可読媒体134からデータを取り出す。入力インターフェース136は、たとえば、オプティカルドライブ、磁気メディアドライブ、USBポート、受信機、トランシーバ、または他のコンピュータ可読媒体インターフェースを備え得る。入力インターフェース136は、NALユニットまたはアクセスユニットをデマルチプレクサ138に与え得る。デマルチプレクサ138は、トランスポートストリームまたはプログラムストリームを構成PESストリームに多重分離し、符号化データを取り出すためにPESストリームをパケット化解除し、たとえば、ストリームのPESパケットヘッダによって示されるように、符号化データがオーディオまたはビデオストリームの一部であるかどうかに応じて、符号化データをオーディオデコーダ146またはビデオデコーダ148に送り得る。オーディオデコーダ146は、符号化オーディオデータを復号し、復号オーディオデータをオーディオ出力142に送り、ビデオデコーダ148は、符号化ビデオデータを復号し、ストリームの複数のビューを含み得る復号ビデオデータをビデオ出力144に送る。ビデオ出力144は、シーンの複数のビュー、たとえばシーンの各ビューを同時に提示する立体視または自動立体視ディスプレイを使用するディスプレイを備え得る。
[0250]特に、デマルチプレクサ138は、受信したビットストリームの動作点を選択し得る。たとえば、デマルチプレクサ138は、A/V宛先デバイス140によって使用されるべき適切な動作点を選択するために、ビットストリームの動作点の特性を比較し得る。概して、デマルチプレクサ138は、ビデオデコーダ148によって復号され得る、ユーザにとって最高品質の閲覧エクスペリエンスを与える動作点の1つを選択しようと試み得る。たとえば、デマルチプレクサ138は、ビデオデコーダ148のレンダリング能力および復号能力を、ビットストリームの動作点記述子によってシグナリングされた、示唆されたレンダリング能力および復号能力と比較し得る。デマルチプレクサ138が決定するオブザ動作点はビデオデコーダ148によって適切に復号され得、デマルチプレクサ138は最高品質ビデオデータ(たとえば、最高フレームレートおよび/またはビットレート)を与える動作点を選択し得る。他の例では、デマルチプレクサ138は、たとえば、電力消費量など、他の考慮事項に基づいて、サポートされる動作点の1つを選択し得る。
[0251]概して、システム100は、図1のシステム10に実質的に対応し得る。同様に、マルチプレクサ130は、図1のマルチプレクサ21に実質的に対応し得、デマルチプレクサ138は、図1のデマルチプレクサ29に実質的に対応し得、システム100の他の同様に名前がつけられた構成要素は、図1の同様に名前がつけられた構成要素に実質的に対応し得る。したがって、マルチプレクサ130およびデマルチプレクサ138は、本開示で説明する様々な技法のいずれかを、単独でまたは任意の組合せで実行するように構成され得る。
[0252]したがって、マルチプレクサ21、マルチプレクサ130、デマルチプレクサ29、および/またはデマルチプレクサ138は、ビデオコーディング規格に従ってコーディングされたビデオデータを含むエレメンタリストリームのレイヤのための階層拡張記述子をコーディングすることと、ここにおいて、階層拡張記述子は、ビデオコーディング規格の少なくとも1つの拡張を表すデータを含む、少なくとも1つの拡張を表すデータに少なくとも部分的に基づいてエレメンタリストリームのビデオデータを処理することとを行うように構成され得る。
[0253]階層拡張記述子は、ベースレイヤに従属し、異なるスケーラビリティ次元に対応する2つ以上のエンハンスメントレイヤを表すデータを含み得る。すなわち、2つ以上のエンハンスメントレイヤは、第1のスケーラビリティ次元に準拠する第1のエンハンスメントレイヤと第2のスケーラビリティ次元に準拠する第2のエンハンスメントレイヤとを含み得、ここで、第1のスケーラビリティ次元は、第2のスケーラビリティ次元とは異なる。マルチプレクサ130は、複数の可能なスケーラビリティ次元のうちのどれにエンハンスメントレイヤデータが存在するのかを示す情報のセット(たとえば、上記で説明した例示的な表のextension_dimension_bits)を含めるために階層拡張記述子を生成し得、ここで、エンハンスメントレイヤデータは、ベースレイヤ(すなわち、0に等しいnuh_layer_idをもつレイヤ)に関連付けられ得る。
[0254]このようにしてマルチプレクサ130は、ビデオコーディング規格の拡張に従ってコーディングされたエンハンスメントレイヤとエンハンスメントレイヤが依存する2つ以上の参照レイヤとを含むビデオデータを記憶するためのメモリと、ここにおいて、2つ以上の参照レイヤが、第1のスケーラビリティ次元に準拠する第1の参照レイヤと、第2のスケーラビリティ次元に準拠する第2の参照レイヤとを含む、ここにおいて、第1のスケーラビリティ次元が第2のスケーラビリティ次元とは異なる、階層拡張記述子を符号化することを行うように構成された1つまたは複数のプロセッサと、ここにおいて、階層拡張記述子が、エンハンスメントレイヤが依存する2つ以上の参照レイヤを表すデータを含む、を含むデバイスの一例を表す。
[0255]デマルチプレクサ138は、ビデオデータを適切に多重分離するために、様々なエンハンスメントレイヤが存在するかどうかを決定するために階層拡張記述子を使用し得る。したがって、デマルチプレクサ138は、ビデオコーディング規格の拡張に従ってコーディングされたビデオデータのエンハンスメントレイヤを記憶するためのメモリと、エンハンスメントレイヤを含むエレメンタリストリームのための階層拡張記述子を復号することと、ここにおいて、階層拡張記述子は、エンハンスメントレイヤが依存する2つ以上の参照レイヤを表すデータを含む、ここにおいて、2つ以上の参照レイヤが、第1のスケーラビリティ次元に準拠する第1の参照レイヤと、第2のスケーラビリティ次元に準拠する第2の参照レイヤとを含む、ここにおいて、第1のスケーラビリティ次元が第2のスケーラビリティ次元とは異なる、2つ以上の参照レイヤを表すデータに少なくとも部分的に基づいてビデオデータを処理することとを行うように構成された1つまたは複数のプロセッサとを含むデバイスの一例を表す。
[0256]さらに、マルチプレクサ130は、HEVC拡張記述子が存在するかどうかを示すシンタックス要素を含むHEVCビデオ記述子を生成し得る。HEVCベースレイヤが1つまたは複数のエンハンスメントレイヤを使用して拡張されるとき、マルチプレクサ130は、HEVC拡張記述子を生成し得、同様に、HEVC拡張記述子が存在することを示す値にシンタックス要素を設定し得る。HEVC拡張記述子は、上記の表XのHEVC拡張記述子に準拠し得る。
[0257]追加または代替として、マルチプレクサ21、マルチプレクサ130、デマルチプレクサ29、および/またはデマルチプレクサ138は、1つまたは複数の追加の参照エレメンタリストリームへのインデックスを含む第1のエレメンタリストリームのための階層記述子をコーディングすること、インデックスに少なくとも部分的に基づいて第1のエレメンタリストリームのビデオデータを処理することとを行うように構成され得る。
[0258]追加または代替として、マルチプレクサ21、マルチプレクサ130、デマルチプレクサ29、および/またはデマルチプレクサ138は、2つ以上の動作点を形成するために2つ以上のエレメンタリストリームがどのように組み合わせられ得るかを示すデータコーディングすることと、データを使用してエレメンタリストリームのうちの2つ以上のビデオデータを処理することとを行うように構成され得る。
[0259]図5は、本開示の技法による、ビデオデータを処理するための例示的な方法を示すフローチャートである。図5の方法について、図4のビデオエンコーダ128およびマルチプレクサ130に関して説明する。ただし、図1のビデオエンコーダ21およびマルチプレクサ21などの他のデバイスが図5の方法を実行するように構成され得ることを理解されたい。
[0260]最初に、ビデオエンコーダ128は、ベースレイヤのビデオデータを符号化する(150)。ベースレイヤのビデオデータは、たとえば、HEVCまたは別のビデオコーディング規格に準拠し得る。ビデオエンコーダ128は、次いで、1つまたは複数のエンハンスメントレイヤのビデオデータを符号化し得る(152)。エンハンスメントレイヤのビデオデータは、上記で説明したように、様々な異なるスケーラビリティ次元に対応し得る。すなわち、ビデオエンコーダ128は、異なるスケーラビリティ次元に対応する2つ以上のエンハンスメントレイヤが同じベースレイヤに従属するようにエンハンスメントレイヤを符号化し得る。
[0261]ビデオエンコーダ128は、次いで、ビデオデータのための動作点を形成し得る(154)。各動作点は、ビデオデータの様々なレイヤのすべてまたはサブセットを含み得る。特に、各動作点は、ベースレイヤと様々なエンハンスメントレイヤの任意の組合せとを含み得る。さらに、ビデオエンコーダ128は、動作点のいくつかのレイヤのみを出力の対象とされるものに指定し得る。
[0262]ビデオエンコーダ128は、マルチプレクサ130に符号化ビデオデータ(ベースレイヤおよびエンハンスメントレイヤ)を与え得る。マルチプレクサ130は、ベースレイヤおよびエンハンスメントレイヤを多重化し得る(156)。すなわち、マルチプレクサ130は、各エレメンタリストリームが特定のレイヤに対応する複数のエレメンタリストリームを受信し、エレメンタリストリームを単一のビットストリームにアセンブルし得る。
[0263]マルチプレクサ130はまた、時間スケーラビリティデータを含むHEVCビデオ記述子を符号化し得る(158)。たとえば、HEVCビデオ記述子は、時間レイヤサブセットがビデオデータ中に含まれるかどうかを示す時間レイヤサブセットシンタックス要素(たとえば、フラグ)を含み得る。時間レイヤサブセットは、概して、異なるフレームレートで再生され得るビデオデータのサブセットに対応する。たとえば、フルビデオデータは、240フレーム毎秒(fps)でビデオデータを含み得るが、ビデオデータはまた、120fps、60fps、30fps、および15fpsでの再生をサポートし得る。時間レイヤ情報を示すために、マルチプレクサ130は、最小時間識別子シンタックス要素と最大時間レイヤ識別子シンタックス要素との値をシグナリングし得る。HEVCビデオ記述子はまた、HEVC拡張記述子が存在するかどうかを示すHEVC拡張存在シンタックス要素を含み得る。
[0264]マルチプレクサ130はまた、他のスケーラビリティデータ、すなわち、時間スケーラビリティ以外のスケーラビリティ次元についてのスケーラビリティデータを含む階層拡張記述子を符号化し得る(160)。たとえば、そのような他のスケーラビリティ次元は、PSNR、クロマビット深度、色フォーマット、色域、空間解像度などを含み得る。階層拡張記述子は、複数のエンハンスメントレイヤのうちのどれがベースレイヤについてのビデオデータ中に存在するかを概して示す、上記で説明したextension_dimension_bitsシンタックス要素を含み得る。
[0265]マルチプレクサ130は、さらに、動作点データを含むHEVC拡張記述子を符号化し得る(162)。すなわち、エンハンスメントレイヤがビデオデータ中に存在するとマルチプレクサ130が決定したと仮定すると、マルチプレクサ130は、HEVC拡張記述子が存在することを示すようにHEVC拡張存在シンタックス要素の値を設定し、さらに、HEVC拡張記述子を符号化し得る。HEVC拡張記述子は、レイヤのうちのどれがビデオデータの様々な動作点の各々のための出力の対象とされるのかを示すデータを含み得る。
[0266]このようにして、図5の方法は、ビデオコーディング規格に従ってコーディングされたベースレイヤとベースレイヤに従属する2つ以上のエンハンスメントレイヤとを含むビデオデータを受信することと、ここにおいて、2つ以上のエンハンスメントレイヤが、第1のスケーラビリティ次元に準拠する第1のエンハンスメントレイヤと、第2のスケーラビリティ次元に準拠する第2のエンハンスメントレイヤとを含む、ここにおいて、第1のスケーラビリティ次元が第2のスケーラビリティ次元とは異なる、階層拡張記述子を符号化することと、ここにおいて、階層拡張記述子が、ベースレイヤに従属する2つ以上のエンハンスメントレイヤを表すデータを含む、を備えるビデオデータを処理するための方法の一例を表す。
[0267]図6は、本開示の技法による、ビデオデータを処理するための例示的な方法を示すフローチャートである。説明のために、図6の例示的な方法について、図4のデマルチプレクサ138およびビデオデコーダ148に関して説明する。ただし、図1のデマルチプレクサ29およびビデオデコーダ30などの他のデバイスが図6の技法を実行するように構成され得ることを理解されたい。
[0268]最初に、デマルチプレクサ138は、処理され、最終的に、表示されるべきビデオデータの動作点を決定し得る(180)。たとえば、デマルチプレクサ138は、動作点を決定(たとえば、選択)したいという要求をユーザから受信する、および/または動作点を決定(たとえば、選択)するために宛先デバイス140の復号およびレンダリング能力を決定し得る。
[0269]デマルチプレクサ138は、次いで、時間スケーラビリティデータを含むHEVCビデオ記述子を復号し得る(182)。デマルチプレクサ138は、たとえば、ビデオデータのフレームレートを低減したバージョンを達成するために、ビデオデータのフルセットを使用すべきか、またはビデオデータのサブセットを使用すべきかを決定し得る。たとえば、ビデオ出力144のディスプレイデバイスは、フルフレームレートでビデオデータを表示することが可能でないことがあり、したがって、デマルチプレクサ138は、ディスプレイデバイスが表示することが可能であるフレームレートのために必要とされるビデオデータのみを抽出し得る。HEVCビデオ記述子はまた、HEVC拡張記述子が存在するかどうか示すHEVC拡張存在シンタックス要素を含み得る。
[0270]HEVC拡張記述子が存在することをHEVC拡張存在シンタックス要素が示すと仮定すると、デマルチプレクサ138は、動作点データを含み得るHEVC拡張記述子を復号し得る(184)。動作点データは、たとえば、レイヤのうちのどれが各動作点中に含まれるのか、ならびに、レイヤのうちのどれが各動作点のための出力の対象とされるのかを示し得る。このようにして、デマルチプレクサ138は、どのレイヤが抽出され、ビデオデコーダ148に送られるべきか、およびどのレイヤが省略され得るかを決定し得る。
[0271]デマルチプレクサ186は、さらに、他のスケーラビリティデータ、すなわち、時間スケーラビリティ以外のスケーラビリティ次元についてのスケーラビリティデータを含む階層拡張記述子を復号し得る(186)。たとえば、そのような他のスケーラビリティ次元は、PSNR、クロマビット深度、色フォーマット、色域、空間解像度などを含み得る。階層拡張記述子は、複数のエンハンスメントレイヤのうちのどれがベースレイヤについてのビデオデータ中に存在するかを概して示す、上記で説明したextension_dimension_bitsシンタックス要素を含み得る。選択された動作点およびHEVC拡張記述子の動作点データとともにこのデータを使用して、デマルチプレクサ138は、どのスケーラビリティレイヤが存在し、出力されるべきかを決定し得、したがって、デマルチプレクサ138は、ビットストリームを対応するエレメンタリストリームに適切に多重分離することができる。
[0272]デマルチプレクサ138が、ビットストリームを決定された動作点のためのベースレイヤとエンハンスメントレイヤとのための対応するエレメンタリストリームに多重分離した後(188)、デマルチプレクサ138は、ビデオデコーダ148に、決定された動作点のためのエレメンタリストリームのビデオデータを与える。ビデオデコーダ148は、次いで、ベースレイヤを復号し(190)、エンハンスメントレイヤを復号し得る(192)。
[0273]このようにして、図6の方法は、ビデオコーディング規格に従ってコーディングされたビデオデータを含むベースレイヤのための階層拡張記述子を復号することと、ここにおいて、階層拡張記述子は、ベースレイヤに従属する2つ以上のエンハンスメントレイヤを表すデータを含む、ここにおいて、2つ以上のエンハンスメントレイヤが、第1のスケーラビリティ次元に準拠する第1のエンハンスメントレイヤと、第2のスケーラビリティ次元に準拠する第2のエンハンスメントレイヤとを含む、ここにおいて、第1のスケーラビリティ次元が第2のスケーラビリティ次元とは異なる、2つ以上のエンハンスメントレイヤを表すデータに少なくとも部分的に基づいてビデオデータを処理することとを含む方法の一例を表す。
[0274]例によっては、本明細書で説明された技法のうちのいずれかの、いくつかの動作またはイベントは、異なる順序で実行され得、追加、統合、または完全に除外され得る(たとえば、すべての説明された動作またはイベントが、本技法の実施のために必要であるとは限らない)ことを認識されたい。その上、いくつかの例では、行為またはイベントは、連続的にではなく、たとえば、マルチスレッド処理、割込み処理、または複数のプロセッサを通して同時に実施され得る。
[0275]1つまたは複数の例において、前述の機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。ソフトウェアで実施される場合、機能は、コンピュータ可読媒体上の1つもしくは複数の命令またはコード上に記憶され、あるいはこれを介して伝送され、ハードウェアベースの処理ユニットによって実行され得る。コンピュータ可読媒体は、データ記憶媒体などの有形の媒体に対応するコンピュータ可読記憶媒体、または、たとえば、通信プロトコルに従う、ある場所から別の場所へのコンピュータプログラムの転送を容易にする任意の媒体を含む通信媒体を含み得る。このようにして、コンピュータ可読媒体は、一般に、(1)非一時的である有形のコンピュータ可読記憶媒体、または(2)信号もしくはキャリア波のような通信媒体に対応し得る。データ記憶媒体は、本開示で説明する技法の実装のための命令、コードおよび/またはデータ構造を取り出すために1つもしくは複数のコンピュータまたは1つもしくは複数のプロセッサによってアクセスされ得る、任意の利用可能な媒体であり得る。コンピュータプログラム製品は、コンピュータ可読媒体を含み得る。
[0276]限定ではなく例として、そのようなコンピュータ可読記憶媒体は、RAM、ROM、EEPROM(登録商標)、CD−ROMもしくは他の光ディスクストレージ、磁気ディスクストレージ、もしくは他の磁気記憶デバイス、フラッシュメモリ、または命令もしくはデータ構造の形態の所望のプログラムコードを記憶するために使用され得、コンピュータによってアクセスされ得る任意の他の媒体を備えることができる。また、任意の接続が、コンピュータ可読媒体と適切に呼ばれる。たとえば、命令が、ウェブサイト、サーバ、または他の遠隔ソースから、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者回線(DSL)、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、DSL、または赤外線、無線、マイクロ波などのワイヤレス技術は、媒体の定義に含まれる。しかしながら、コンピュータ可読記憶媒体およびデータ記憶媒体は、接続、搬送波、信号、または他の一時的媒体を含むのではなく、非一時的な有形の記憶媒体を対象とすることを理解されたい。本明細書で使用するディスク(disk)およびディスク(disc)は、コンパクトディスク(disc)(CD)、レーザーディスク(登録商標)(disc)、光ディスク(disc)、デジタル多用途ディスク(disc)(DVD)、フロッピーディスク(disk)、およびBlu−rayディスク(disc)を含み、ディスク(disk)は、通常、データを磁気的に再生し、ディスク(disc)は、データをレーザーで光学的に再生する。上記の組合せも、コンピュータ可読媒体の範囲の中に含まれるべきである。
[0277]命令は、1つもしくは複数のデジタル信号プロセッサ(DSP)、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、あるいは他の同等の集積回路またはディスクリート論理回路などの1つもしくは複数のプロセッサによって実行され得る。したがって、本明細書で使用される「プロセッサ」という用語は、前述の構造、または、本明細書で説明する技法の実装に好適な他の構造のいずれかを指すことがある。加えて、いくつかの態様では、本明細書で説明した機能は、符号化および復号のために構成されるか、または複合コーデックに組み込まれる、専用のハードウェアモジュールおよび/もしくはソフトウェアモジュール内で提供され得る。また、本技法は、1つもしくは複数の回路または論理要素で十分に実装され得る。
[0278]本開示の技法は、ワイヤレスハンドセット、集積回路(IC)もしくはICのセット(たとえば、チップセット)を含む、多種多様なデバイスまたは装置で実装され得る。本開示では、開示する技法を実行するように構成されたデバイスの機能的態様を強調するために様々な構成要素、モジュール、またはユニットについて説明したが、それらの構成要素、モジュール、またはユニットを、必ずしも異なるハードウェアユニットによって実現する必要があるとは限らない。そうではなく、上記で説明したように、様々なユニットは、コーデックハードウェアユニット中で組み合わせられるか、または上記で説明した1つもしくは複数のプロセッサを含む、適切なソフトウェアおよび/またはファームウェアとともに相互動作可能なハードウェアユニットの集合によって提供され得る。
[0279]様々な例が、説明された。これらおよび他の例は、以下の特許請求の範囲に含まれる。
以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
[C1]
ビデオデータを処理する方法であって、
ビデオコーディング規格の拡張に従ってコーディングされたエンハンスメントレイヤビデオデータを含むエレメンタリストリームのための階層拡張記述子を復号することと、ここにおいて、前記階層拡張記述子は、前記エンハンスメントレイヤが依存する2つ以上の参照レイヤを表すデータを含む、ここにおいて、前記2つ以上の参照レイヤが、第1のスケーラビリティ次元に準拠する第1の参照レイヤと、第2のスケーラビリティ次元に準拠する第2の参照レイヤとを含む、ここにおいて、前記第1のスケーラビリティ次元が前記第2のスケーラビリティ次元とは異なる、
前記2つ以上の参照レイヤを表す前記データに少なくとも部分的に基づいて前記ビデオデータを処理することと
を備える方法。
[C2]
前記階層拡張記述子を復号することは、各々が、複数のエンハンスメントレイヤの各々に対応する複数のスケーラビリティビットを復号することを備える、ここにおいて、前記スケーラビリティビットの各々の値は、前記それぞれのエンハンスメントレイヤが前記エレメンタリストリーム中に含まれるかどうかを示す、C1に記載の方法。
[C3]
高効率ビデオコーディング(HEVC)ビデオ記述子のHEVC拡張存在シンタックス要素の値を復号すること、ここにおいて、前記HEVC拡張存在シンタックス要素は、HEVC記述子の一部としてHEVC拡張記述子が存在するかどうかを示す、をさらに備える、C1に記載の方法。
[C4]
複数の動作点の各々について、前記動作点のための出力のために必要とされるレイヤを表す高効率ビデオコーディング(HEVC)拡張記述子の情報を復号することをさらに備える、C1に記載の方法。
[C5]
前記エンハンスメントレイヤの時間サブレイヤを表すデータを含む階層記述子を復号すること、ここにおいて、前記階層拡張記述子が、前記エンハンスメントレイヤの時間サブレイヤを表すデータを含まない、をさらに備える、C1に記載の方法。
[C6]
前記階層拡張記述子を復号することは、前記ビデオデータが複数のレイヤを含んでいるときに複数のレイヤ識別子を復号することを備える、C1に記載の方法。
[C7]
前記階層拡張記述子を復号することが、1つまたは複数のレイヤと、前記1つまたは複数のレイヤのうちの1つに対応するエレメンタリストリームのためのインデックスとを示す情報を復号することを備える、C1に記載の方法。
[C8]
前記ビデオコーディング規格が、高効率ビデオコーディング(HEVC)を備える、ここにおいて、前記拡張が、マルチビューHEVC(MV−HEVC)と、3次元HEVC(3D−HEVC)と、スケーラブルHEVC(SHVC)とのうちの1つを備える、C1に記載の方法。
[C9]
前記スケーラビリティ次元が、ピーク信号対雑音比(PSNR)スケーラビリティ次元、クロマビット深度スケーラビリティ次元、色フォーマットスケーラビリティ次元、色域フォーマットスケーラビリティ次元、または空間解像度スケーラビリティ次元のうちの少なくとも1つを備える、C1に記載の方法。
[C10]
前記階層拡張記述子をコーディングすることが、MPEG−2システム規格に実質的に従って前記階層拡張記述子の一部をコーディングすることを備える、C1に記載の方法。
[C11]
処理することが、前記2つ以上の参照レイヤを表す前記データに少なくとも部分的に基づいて前記エンハンスメントレイヤと前記参照レイヤとを多重分離することを備える、C1に記載の方法。
[C12]
処理することが、
出力されるべき、前記エンハンスメントレイヤを含む動作点を決定することと、
前記決定された動作点に基づいて出力されるべきである前記第1の参照レイヤまたは前記第2の参照レイヤのうちの少なくとも1つを決定することと、
前記2つ以上の参照レイヤを表す前記データと前記決定された動作点とに少なくとも部分的に基づいてサブビットストリーム抽出を実行することと
を備える、C1に記載の方法。
[C13]
ビデオデータを処理するためのデバイスであって、
ビデオコーディング規格の拡張に従ってコーディングされたビデオデータのエンハンスメントレイヤを記憶するためのメモリと、
前記エンハンスメントレイヤを含むエレメンタリストリームのための階層拡張記述子を復号することと、ここにおいて、前記階層拡張記述子は、前記エンハンスメントレイヤが依存する2つ以上の参照レイヤを表すデータを含む、ここにおいて、前記2つ以上の参照レイヤが、第1のスケーラビリティ次元に準拠する第1の参照レイヤと、第2のスケーラビリティ次元に準拠する第2の参照レイヤとを含む、ここにおいて、前記第1のスケーラビリティ次元が前記第2のスケーラビリティ次元とは異なる、前記2つ以上の参照レイヤを表す前記データに少なくとも部分的に基づいて前記ビデオデータを処理することとを行うように構成された1つまたは複数のプロセッサと
を備えるデバイス。
[C14]
前記1つまたは複数のプロセッサは、各々が、複数のエンハンスメントレイヤの各々に対応する複数のスケーラビリティビットを復号することを行うように構成された、ここにおいて、前記スケーラビリティビットの各々の値は、前記それぞれのエンハンスメントレイヤが前記エレメンタリストリーム中に含まれるかどうかを示す、C13に記載のデバイス。
[C15]
前記1つまたは複数のプロセッサが、高効率ビデオコーディング(HEVC)ビデオ記述子のHEVC拡張存在シンタックス要素の値を復号すること、ここにおいて、前記HEVC拡張存在シンタックス要素は、HEVC記述子の一部としてHEVC拡張記述子が存在するかどうかを示す、を行うように構成された、C13に記載のデバイス。
[C16]
前記1つまたは複数のプロセッサが、複数の動作点の各々について、前記動作点のための出力のために必要とされるレイヤを表す高効率ビデオコーディング(HEVC)拡張記述子の情報を復号することを行うように構成された、C13に記載のデバイス。
[C17]
前記1つまたは複数のプロセッサが、前記エンハンスメントレイヤの時間サブレイヤを表すデータを含む階層記述子を復号すること、ここにおいて、前記階層拡張記述子が、前記エンハンスメントレイヤの時間サブレイヤを表すデータを含まない、を行うように構成された、C13に記載のデバイス。
[C18]
前記1つまたは複数のプロセッサは、前記ビデオデータが複数のレイヤを含んでいるときに複数のレイヤ識別子を復号することを行うように構成された、C13に記載のデバイス。
[C19]
前記1つまたは複数のプロセッサが、1つまたは複数のレイヤと、前記1つまたは複数のレイヤのうちの1つに対応するエレメンタリストリームのためのインデックスとを示す情報を復号することを行うように構成された、C13に記載のデバイス。
[C20]
前記1つまたは複数のプロセッサが、前記2つ以上の参照レイヤを表す前記データに少なくとも部分的に基づいて前記エンハンスメントレイヤと前記参照レイヤとを多重分離することを行うように構成された、C13に記載のデバイス。
[C21]
前記デバイスが、
集積回路、
マイクロプロセッサ、または
ワイヤレス通信デバイス
のうちの少なくとも1つを備える、C13に記載のデバイス。
[C22]
ビデオデータを処理するためのデバイスであって、
ビデオコーディング規格の拡張に従ってコーディングされたエンハンスメントレイヤビデオデータを含むエレメンタリストリームのための階層拡張記述子を復号するための手段と、ここにおいて、前記階層拡張記述子は、前記エンハンスメントレイヤが依存する2つ以上の参照レイヤを表すデータを含む、ここにおいて、前記2つ以上の参照レイヤが、第1のスケーラビリティ次元に準拠する第1の参照レイヤと、第2のスケーラビリティ次元に準拠する第2の参照レイヤとを含む、ここにおいて、前記第1のスケーラビリティ次元が前記第2のスケーラビリティ次元とは異なる、
前記2つ以上の参照レイヤを表す前記データに少なくとも部分的に基づいて前記ビデオデータを処理するための手段と
を備える、デバイス。
[C23]
実行されたときに、プロセッサに、
ビデオコーディング規格の拡張に従ってコーディングされたエンハンスメントレイヤビデオデータを含むエレメンタリストリームのための階層拡張記述子を復号することと、ここにおいて、前記階層拡張記述子は、前記エンハンスメントレイヤが依存する2つ以上の参照レイヤを表すデータを含む、ここにおいて、前記2つ以上の参照レイヤが、第1のスケーラビリティ次元に準拠する第1の参照レイヤと、第2のスケーラビリティ次元に準拠する第2の参照レイヤとを含む、ここにおいて、前記第1のスケーラビリティ次元が前記第2のスケーラビリティ次元とは異なる、
前記2つ以上の参照レイヤを表す前記データに少なくとも部分的に基づいて前記ビデオデータを処理することと
を行わせる命令を記憶したコンピュータ可読記憶媒体。
[C24]
前記階層拡張記述子を復号することを前記プロセッサに行わせる前記命令は、各々が、複数のエンハンスメントレイヤの各々に対応する複数のスケーラビリティビットを復号することを前記プロセッサに行わせる命令を備える、ここにおいて、前記スケーラビリティビットの各々の値は、前記それぞれのエンハンスメントレイヤが前記エレメンタリストリーム中に含まれるかどうかを示す、C23に記載のコンピュータ可読記憶媒体。
[C25]
高効率ビデオコーディング(HEVC)ビデオ記述子のHEVC拡張存在シンタックス要素の値を復号すること、ここにおいて、前記HEVC拡張存在シンタックス要素は、HEVC記述子の一部としてHEVC拡張記述子が存在するかどうかを示す、を前記プロセッサに行わせる命令をさらに備える、C23に記載のコンピュータ可読記憶媒体。
[C26]
複数の動作点の各々について、前記動作点のための出力のために必要とされるレイヤを表す高効率ビデオコーディング(HEVC)拡張記述子の情報を復号することを前記プロセッサに行わせる命令をさらに備える、C23に記載のコンピュータ可読記憶媒体。
[C27]
前記エンハンスメントレイヤの時間サブレイヤを表すデータを含む階層記述子を復号すること、ここにおいて、前記階層拡張記述子が、前記エンハンスメントレイヤの時間サブレイヤを表すデータを含まない、を前記プロセッサに行わせる命令をさらに備える、C23に記載のコンピュータ可読記憶媒体。
[C28]
前記階層拡張記述子を復号することを前記プロセッサに行わせる前記命令が、前記ビデオデータが複数のレイヤを含んでいるときに複数のレイヤ識別子を復号することを前記プロセッサに行わせる命令を備える、C23に記載のコンピュータ可読記憶媒体。
[C29]
前記階層拡張記述子を復号することを前記プロセッサに行わせる前記命令が、1つまたは複数のレイヤと、前記1つまたは複数のレイヤのうちの1つに対応するエレメンタリストリームのためのインデックスとを示す情報を復号することを前記プロセッサに行わせる命令を備える、C23に記載のコンピュータ可読記憶媒体。
[C30]
処理することを前記プロセッサに行わせる前記命令が、前記2つ以上の参照レイヤを表す前記データに少なくとも部分的に基づいて前記エンハンスメントレイヤと前記参照レイヤとを多重分離することを前記プロセッサに行わせる命令を備える、C23に記載のコンピュータ可読記憶媒体。
[C31]
ビデオデータを処理する方法であって、
ビデオコーディング規格の拡張に従ってコーディングされたエンハンスメントレイヤと前記エンハンスメントレイヤが依存する2つ以上の参照レイヤとを含むビデオデータを受信することと、ここにおいて、前記2つ以上の参照レイヤが、第1のスケーラビリティ次元に準拠する第1の参照レイヤと、第2のスケーラビリティ次元に準拠する第2の参照レイヤとを含む、ここにおいて、前記第1のスケーラビリティ次元が前記第2のスケーラビリティ次元とは異なる、
階層拡張記述子を符号化することと、ここにおいて、前記階層拡張記述子が、前記エンハンスメントレイヤが依存する前記2つ以上の参照レイヤを表すデータを含む、
を備える方法。
[C32]
ビデオデータを処理するためのデバイスであって、
ビデオコーディング規格の拡張に従ってコーディングされたエンハンスメントレイヤと前記エンハンスメントレイヤが依存する2つ以上の参照レイヤとを含むビデオデータを記憶するためのメモリと、ここにおいて、前記2つ以上の参照レイヤが、第1のスケーラビリティ次元に準拠する第1の参照レイヤと、第2のスケーラビリティ次元に準拠する第2の参照レイヤとを含む、ここにおいて、前記第1のスケーラビリティ次元が前記第2のスケーラビリティ次元とは異なる、
階層拡張記述子を符号化することを行うように構成された1つまたは複数のプロセッサと、ここにおいて、前記階層拡張記述子が、前記エンハンスメントレイヤが依存する前記2つ以上の参照レイヤを表すデータを含む、
を備えるデバイス。