[0021]概して、本開示は、メディアデータについてのMoving Picture Experts Group(MPEG)−2システムレベルデータに関する技法について説明する。MPEG−2システムは、概して、単一のデータストリームを形成するために2つ以上のデータストリームをどのように一緒に多重化するかを記述する。本開示は、マルチレイヤビデオデータについてのMPEG−2システムデータに関する技法について説明する。より詳細には、本開示は、階層化されたHEVCビットストリームのレイヤ間の依存情報をシグナリングするために使用され得るMPEG−2トランスポートストリーム(TS)記述子について説明する(たとえば、いくつかの既存の技法に関する改善であり得る階層化されたHEVCビットストリームのレイヤ間の依存(または関係)について説明する)。HEVC規格文書は、ITU−T H.265, Series H:Audiovisual and Multimedia Systems, Infrastructure of audiovisual services − Coding of moving video, High efficiency video coding、国際電気通信連合(ITU)の電気通信標準化部門、2015年4月として公開されている。
[0022]本開示の技法は、概して、ビデオコーディング規格の拡張(たとえば、ITU−T H.265とも呼ばれる、高効率ビデオコーディング(HEVC)規格、HEVC規格の拡張)に従ってコーディングされたビデオデータの搬送(たとえば、トランスポート)を対象とする。そのような拡張は、マルチビュー拡張、3次元拡張、および/またはスケーラブル拡張を含み得る。したがって、本開示の技法は、マルチビューHEVC(MV−HEVC)、3次元HEVC(3D−HEVC)、およびスケーラブルHEVC(SHVC)に適用され得る。
[0023]マルチレイヤビデオデータ、たとえば、マルチビュービデオデータおよび/または複数のスケーラブルレイヤをもつビデオデータは、指定された動作点を含み得る。概して、動作点は、マルチレイヤビデオデータのレイヤのフルセットのうちのレイヤ(たとえば、ビュー(views))のサブセットを含む。動作点はまた、ターゲット出力レイヤ、すなわち、データが出力されるべきレイヤを識別し得る。いくつかの事例では、レイヤのデータは、参照レイヤとして使用するためだけに動作点中に含まれ得、したがって、そのようなレイヤは、ターゲット出力レイヤと見なされないことがある。
[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)という名前の新しいビデオコーディング規格、MV−HEVCという名前のHEVCに対するマルチビュー拡張、およびSHVCという名前のHEVCに対するスケーラブル拡張の設計が、ITU−T Video Coding Experts Group(VCEG)およびISO/IEC Motion Picture Experts Group(MPEG)のJoint Collaboration Team on Video Coding(JCT−VC)によって確定された。
[0029]ITU−T SG16 WP3とISO/IEC JTC1/SC29/WG11とのJCT−VC、第18回会合:日本、札幌、2014年6月30日〜7月9日についての「Draft high efficiency video coding(HEVC)version 2,combined format range extensions(RExt),scalability(SHVC),and multi−view(MV−HEVC)extensions」と題する最新のHEVCドラフト仕様(JCTVC−R1013_v6)は、phenix.int−evry.fr/jct/doc_end_user/documents/18_Sapporo/wg11/JCTVC−R1013−v6.zipから入手可能である。
[0030]ITU−T SG16 WP3とISO/IEC JTC1/SC29/WG11とのJoint Collaborative Team on 3D Video Coding Extensions、第9回会合:日本、札幌、2014年7月3日〜9日についての「MV−HECV Draft Text 9」と題する最新のMV−HEVCドラフト仕様(JCT3V−I1002−v7)は、phenix.int−evry.fr/jct3v/doc_end_user/documents/9_Sapporo/wg11/JCT3V−I1002−v7.zipから入手可能である。
[0031] ITU−T SG16 WP3とISO/IEC JTC1/SC29/WG11とのJCT−VC、第18回会合:日本、札幌、2014年6月30日〜7月9日についての「High efficiency video coding(HEVC)scalable extension Draft 7」と題するSHVCドラフト仕様(JCTVC−R1008v7)は、phenix.int−evry.fr/jct/doc_end_user/documents/18_Sapporo/wg11/JCTVC−R1008−v7.zipから入手可能である。
[0032]MPEG−2システム(Moving Pictures Experts Group)技術は、ビデオデータをトランスポートするために採用され得る。MPEG−2システムは、MPEG−2 TSと呼ばれることがある。MPEG−2 TSの最新の仕様は、www.itu.int/rec/T−REC−H.222.0−201206−I/enから有料で入手可能なITU−T勧告H.222.0、2012年6月版である。本仕様は、AVCおよびAVC拡張のサポートを行う。
[0033]HEVCについてのMPEG−2 TSの改正が開発された。最新の文書は、MPEG文書w13656、2013年7月中の「Text of ISO/IEC13818−1:2013/Final Draft Amendment 3−Transport of HEVC video over MPEG−2 Systems」である。最近、階層化されたHEVCの搬送についてのMPEG−2 TSの改正が開始された。最新の文書は、MPEG文書w14562、2014年7月中の「Text of ISO/IEC13818−1:2013/Study of PDAM 7−Carriage of Layered HEVC」であり、本文書ではL−HEVC TSドラフトと呼ぶことにする。HEVC拡張の搬送のためのMPEG−2 TSの設計の一例は、2014年1月8日に出願された米国仮特許出願番号第61/925,191号に記載されており、参照により本明細書に組み込まれる。HEVC拡張の搬送のためのMPEG−2 TSの設計の別の例は、2014年7月16日に出願された米国仮特許出願番号第62/025,432号に記載されている。
[0034]MPEG−2システム仕様には、デジタル送信または記憶に好適な単一のデータストリームを形成するために、圧縮マルチメディア(ビデオおよび/またはオーディオ)データストリームが他のデータとともにどのように多重化され得るかが記載されている。MPEG−2システムは、プログラム(program)(「プログラム(programme)」とつづられることもある)の単一の、デジタル的にコーディングされた(場合によってはMPEG圧縮された)構成要素であるエレメンタリストリームについて記載する。たとえば、プログラムのコーディングされたビデオまたはオーディオ部分はエレメンタリストリームであり得る。エレメンタリストリームは、第一に、プログラムストリームまたはトランスポートストリームに多重化される前に、パケット化エレメンタリストリーム(PES)に変換される。同じプログラム内では、1つのエレメンタリストリームに属するPESパケットを別のものと区別するためにstream_idシンタックス要素が使用される。
[0035]プログラムストリームとトランスポートストリームとは、異なるアプリケーションをターゲットにする2つの代替多重化である。プログラムストリームは、デジタルストレージサービスからの単一のプログラムの記憶および表示のためにバイアスされ、プログラムストリームは、誤りが起こりやすいので、誤りのない環境での使用を目的とする。プログラムストリームは、それに属するエレメンタリストリームを含み、通常、可変長のパケットをもつパケットを含んでいる。プログラムストリームでは、寄与しているエレメンタリストリームから導出されたPESパケットが「パック(packs)」に編成される。パックは、パックヘッダと、随意のシステムヘッダと、寄与しているエレメンタリストリームのいずれかから取られる任意の数のPESパケットとを任意の順序で含む。システムヘッダは、プログラムストリームの最大データレート、寄与しているビデオおよびオーディオエレメンタリストリームの数、さらなるタイミング情報など、プログラムストリームの特性の概要を含んでいる。デコーダは、デコーダがプログラムストリームを復号することが可能であるか否かを決定するために、システムヘッダ中に含まれている情報を使用し得る。
[0036]トランスポートストリームは、潜在的に誤りを起こしやすいチャネルを介したいくつかのプログラムの同時配信を目的とする。それは、単一のトランスポートストリームが多くの独立したプログラムに適応することができるように、ブロードキャストなどのマルチプログラムアプリケーションのために考案された多重化である。
[0037]トランスポートストリームは、トランスポートパケットの連続を含み、トランスポートパケットの各々は、188バイトの長さがある。短い、固定長パケットの使用は、トランスポートストリームはプログラムストリームよりも誤りが起こりにくいことを意味する。さらに、各長さ188バイトのトランスポートパケットは、リードソロモン符号化などの標準誤り防止プロセスを通してそれを処理することによって追加の誤り保護を容易に与えられる。トランスポートストリームの誤り耐性の改善は、たとえば、ブロードキャスト環境において発見されるべき、誤りを起こしやすいチャネルを克服する可能性がより高いことを意味する。
[0038]トランスポートストリームは、それの誤り耐性の向上と多くの同時プログラムを搬送する能力との点で2つの多重化のうち明らかにより良いものであるように見えることがある。ただし、トランスポートストリームは、プログラムストリームよりもさらに高度な多重化であり、したがって、作成および多重分離を行うのがより困難である。
[0039]トランスポートパケットの最初のバイトは同期バイトであり、0x47(すなわち、16進値の47または0100 0111)である。単一のトランスポートストリームは、各々が多くのパケット化エレメンタリストリームを備える多くの異なるプログラムを搬送し得る。1つのエレメンタリストリームのデータを含んでいるトランスポートパケットを、他のエレメンタリストリームのデータを搬送しているものと区別するために、13ビットパケット識別子(PID)フィールドが使用される。各エレメンタリストリームが一意のPID値を与えられることを保証することは、マルチプレクサの責任である。トランスポートパケットの最後のバイトは連続性カウントフィールドである。それは、同じエレメンタリストリームに属する連続するトランスポートパケットの間に増分される。これにより、デコーダが、トランスポートパケットの損失または利得を検出し、そうでない場合そのようなイベントから生じ得る誤りをうまくいけば隠匿することが可能になる。
[0040]トランスポートパケットがどのエレメンタリストリームに属するかをPID値が明らかにするが、デコーダはまた、どのエレメンタリストリームがどのプログラムに属するかを決定することが必要であり得る。プログラム固有情報は、プログラムと構成要素エレメンタリストリームとの関係を明示的に指定するために使用される。プログラム固有情報は、プログラムマップテーブル(PMT:program map table)、プログラムストリームマップ(PSM:program stream map)、プログラム関連付けテーブル(PAT:program association table)、ネットワーク情報テーブル(NIT:network information table)、および/または限定アクセステーブル(CAT:conditional access table)を含み得る。
[0041]トランスポートストリーム中で搬送されるあらゆるプログラムは、それに関連するプログラムマップテーブルを有する。このテーブルは、プログラムとプログラムを形成するエレメンタリストリームとに関する詳細を与える。たとえば、PID33をもつビデオと、PID57をもつ英語のオーディオと、PID60をもつ中国語のオーディオとを含んでいる、番号3をもつプログラムがあり得る。PMTが2つ以上のプログラムを含むことが許可される。基本プログラムマップテーブルは、MPEG−2システム仕様内で指定された多くの記述子のうちのいくつかで装飾され得る。記述子は、プログラムまたはそれの構成要素エレメンタリストリームに関するさらなる情報を搬送する。記述子は、たとえば、ビデオ符号化パラメータ、オーディオ符号化パラメータ、言語識別情報、パンアンドスキャン情報、限定アクセス詳細、著作権情報などを含み得る。放送事業者または他のユーザは、必要な場合、追加のプライベート記述子を定義し得る。ビデオに関する構成要素エレメンタリストリーム中には、階層的コード化ビデオ、オーディオ、およびプライベートストリームの構成要素を含んでいるプログラム要素を識別する情報を与える階層記述子もある。
[0042]PSMは、プログラムストリーム中のエレメンタリストリームと、互いのそれらの関係の説明とを与える。トランスポートストリーム中で搬送されるとき、この構造は、MPEG−2システム仕様に従って変更されないことになる。PSMは、stream_id値が0xBC(16進値BCまたは1011 1100)であるときにPESパケットとして存在する。
[0043]トランスポートストリーム中で利用可能なすべてのプログラムの完全なリストは、プログラム関連付けテーブル中に維持される。このテーブルは、PID値0を常に有するので、容易に発見され得る。各プログラムは、それのプログラムマップテーブルを含んでいるトランスポートパケットのPID値とともにリストされる。上述の同じ例を使用して、プログラム番号3のエレメンタリストリームを指定するPMTはPID1001を有し、別のPMTは別のPID1002を有する。情報のこのセットは、PAT中に含まれる。
[0044]PAT中に指定されるプログラム番号0は特殊な意味を有する。このプログラムは、ネットワーク情報テーブルへの順路をポイントするために使用される。NITは、随意である。存在するとき、NITは、チャネル周波数、衛星トランスポンダ詳細、変調特性、サービス発信者、サービス名称、および利用可能な代替ネットワークの詳細など、トランスポートストリームを搬送する物理ネットワークに関する情報を与えることを目的とする。
[0045]トランスポートストリーム内のいずれかのエレメンタリストリームがスクランブルされた場合、限定アクセステーブルは、MPEG−2システム仕様に従って存在しなければならない。CATは、使用中の(1つまたは複数の)スクランブリングシステムの詳細を与え、限定アクセス管理および資格情報を含んでいるトランスポートパケットのPID値を与える。この情報のフォーマットは、MPEG−2システム仕様内で規定されていない。
[0046]MPEG−2 TSでは、階層記述子は、異なるエレメンタリストリーム中でサブビットストリームの階層をシグナリングするように設計されている。階層記述子は、階層的コード化ビデオ、オーディオ、およびプライベートストリームの構成要素を含んでいるプログラム要素を識別する情報を与える。MPEG−2システム仕様の表2−49を以下に再現する。より詳細に説明するように、いくつかの例では、本開示は、改善された階層記述子と、直下に示す表2−49の更新とについて説明する。改善された階層記述子についての更新された表2−49については、以下でさらにより詳細に説明する。
[0047]MPEG−2システムの表2−49のシンタックス要素についてのセマンティクス(semantics)を以下に与える。
[0048]temporal_scalability_flag−1ビットフラグは、「0」に設定されると、関連するプログラム要素が、hierarchy_embedded_layer_indexによって参照されるプログラム要素から生じるビットストリームのフレームレートを拡張することを示す。このフラグの「1」の値は予約済みである。
[0049]spatial_scalability_flag−1ビットフラグは、「0」に設定されると、関連するプログラム要素が、hierarchy_embedded_layer_indexによって参照されるプログラム要素から生じるビットストリームの空間解像度(spatial resolution)を拡張することを示す。このフラグの「1」の値は予約済みである。
[0050]quality_scalability_flag−1ビットフラグは、「0」に設定されると、関連するプログラム要素が、hierarchy_embedded_layer_indexによって参照されるプログラム要素から生じるビットストリームのSNR品質または忠実度(fidelity)を拡張することを示す。このフラグの「1」の値は予約済みである。
[0051]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」に設定されることになる。
[0052]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の昇順で再アセンブルされた場合にビットストリーム順序が正しくなるように割り当てられるプログラム要素インデックスである。
[0053]tref_present_flag−1ビットフラグは、「0」に設定されると、TREFフィールドが関連するエレメンタリストリーム中のPESパケットヘッダ中に存在し得ることを示す。このフラグの「1」の値は予約済みである。
[0054]hierarchy_embedded_layer_index−hierarchy_embedded_layer_indexは、復号順序でこのhierarchy_descriptorに関連するエレメンタリストリームの復号の前にアクセスされ、存在する必要があるプログラム要素のhierarchy_layer_indexを定義する6ビットフィールドである。hierarchy_type値が15である場合、このフィールドは未定義になる。
[0055]hierarchy_channel−hierarchy_channelは、送信チャネルの順序セットにおいて関連するプログラム要素のための意図されたチャネル番号を示す6ビットフィールドである。最もロバスト(robust)な送信チャネルは、全体的な送信階層定義に関して、このフィールドの最低値によって定義される。所与のhierarchy_channelは、いくつかのプログラム要素に同時に割り当てられ得る。
[0056]MPEG−2システム仕様の表2−50を直下に再現する。いくつかの例では、本開示は、表2−50の更新について改善された階層記述子の説明の一部として説明する。更新された表2−50については、以下でさらにより詳細に説明する。
[0057]MPEG−2 TSでは、SVC拡張記述子とMVC拡張記述子との2つの記述子が、それぞれSVCとMVCとのためのサブビットストリームの特性をシグナリングするように設計されている。SVCおよびMVCは、ITU−T H.264/AVCのスケーラブルビデオコーディングおよびマルチビュービデオコーディング拡張である。さらに、MPEG−2 TSでは、動作点の特性を記述するMVC動作点記述子がある。3つの記述子のシンタックスおよびセマンティクスを以下に与える。
[0058]以下の表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拡張記述子があり得る。
[0059]MPEG−2システム仕様による表2−96のシンタックス要素についてのセマンティクスを以下に与える。
[0060]width−この16ビットフィールドは、再アセンブルされたAVCビデオストリームのピクセル単位での最大画像幅解像度を示す。
[0061]height−この16ビットフィールドは、再アセンブルされたAVCビデオストリームのピクセル単位での最大画像高さ解像度を示す。
[0062]frame_rate−この16ビットフィールドは、再アセンブルされたAVCビデオストリームのフレーム/256秒単位での最大フレームレートを示す。
[0063]average_bitrate−この16ビットフィールドは、再アセンブルされたAVCビデオストリームのキロビット毎秒単位での平均ビットレートを示す。
[0064]maximum_bitrate−この16ビットフィールドは、再アセンブルされたAVCビデオストリームのキロビット毎秒単位での最大ビットレートを示す。
[0065]dependency_id−この3ビットフィールドは、ビデオサブビットストリームに関連するdependency_idの値を示す。
[0066]quality_id_start−この4ビットフィールドは、関連するビデオサブビットストリーム中に含まれているすべてのNALユニットのNALユニットヘッダシンタックス要素のquality_idの最小値を示す。
[0067]quality_id_end−この4ビットフィールドは、関連するビデオサブビットストリーム中に含まれているすべてのNALユニットのNALユニットヘッダシンタックス要素のquality_idの最大値を示す。
[0068]temporal_id_start−この3ビットフィールドは、関連するビデオサブビットストリーム中に含まれているすべてのNALユニットのNALユニットヘッダシンタックス要素のtemporal_idの最小値を示す。
[0069]temporal_id_end−この3ビットフィールドは、関連するビデオサブビットストリーム中に含まれているすべてのNALユニットのNALユニットヘッダシンタックス要素のtemporal_idの最大値を示す。
[0070]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ユニットの順序に並べ替えることを必要とし得る。
[0071]以下の表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中に存在することになる。
[0072]MPEG−2システム仕様による表2−97のシンタックス要素についてのセマンティクスを以下に与える。
[0073]average_bitrate−この16ビットフィールドは、再アセンブルされたAVCビデオストリームのキロビット毎秒単位での平均ビットレートを示す。0に設定されたときに、平均ビットレートは示されない。
[0074]maximum_bitrate−この16ビットフィールドは、再アセンブルされたAVCビデオストリームのキロビット毎秒単位での最大ビットレートを示す。0に設定されたときに、最大ビットレートは示されない。
[0075]view_order_index_min−この10ビットフィールドは、関連するMVCビデオサブビットストリーム中に含まれているすべてのNALユニットのビュー順序インデックスの最小値を示す。
[0076]view_order_index_max−この10ビットフィールドは、関連するMVCビデオサブビットストリーム中に含まれているすべてのNALユニットのビュー順序インデックスの最大値を示す。
[0077]temporal_id_start−この3ビットフィールドは、関連するMVCビデオサブビットストリーム中に含まれているすべてのNALユニットのNALユニットヘッダシンタックス要素のtemporal_idの最小値を示す。
[0078]temporal_id_end−この3ビットフィールドは、関連するMVCビデオサブビットストリーム中に含まれているすべてのNALユニットのNALユニットヘッダシンタックス要素のtemporal_idの最大値を示す。
[0079]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ユニットの順序に並べ替えることを必要とし得る。
[0080]no_prefix_nal_unit_present−この1ビットフラグは、「1」に設定されると、プレフィックスNALユニットがMVCのAVCビデオサブビットストリームまたはMVCビデオサブビットストリームのいずれかの中に存在しないことを示す。このビットが「0」に設定されると、プレフィックスNALユニットがMVCのAVCビデオサブビットストリーム中にのみ存在することを示す。
[0081]以下の表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動作点記述子が使用される。
[0082]MPEG−2システム仕様による表2−100のシンタックス要素についてのセマンティクスを以下に与える。
[0083]profile_idc−この8ビットフィールドは、Rec.ITU−T H.264|ISO/IEC 14496−10において規定されているように、MVCビットストリームについてこの記述子内で記述されるすべての動作点のプロファイルを示す。
[0084]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において規定されているこれらのフィールドについてのセマンティクスに従ってコーディングされることになる。
[0085]AVC_compatible_flags−AVC_compatible_flagsのセマンティクスは、Rec.ITU−T H.264|ISO/IEC 14496−10において規定されているように、シーケンスパラメータセット中のconstraint_set2フラグとlevel_idcフィールドとの間の2ビットに対して定義されるフィールドのセマンティクスに正確に等しくなる。
[0086]level_count−この8ビットフィールドは、動作点が記述されるレベルの数を示す。
[0087]level_idc−この8ビットフィールドは、Rec.ITU−T H.264|ISO/IEC 14496−10において規定されているように、データ要素の以下のグループによって記述される動作点のためのMVCビットストリームのレベルを示す。
[0088]operation_points_count−この8ビットフィールドは、データ要素の以下のグループ中に含まれるリストによって記述される動作点の数を示す。
[0089]applicable_temporal_id−この3ビットフィールドは、再アセンブルされたAVCビデオストリーム中のVCL NALユニットのtemporal_idの最高値を示す。
[0090]num_target_output_views−この8ビットフィールドは、関連する動作点のための出力の対象とされるビューの数の値を示す。
[0091]ES_count−この8ビットフィールドは、データ要素の以下のグループ中に含まれるES_reference値の数を示す。データ要素の以下のグループ中で示されるエレメンタリストリームは一緒に、MVCビデオビットストリームの動作点を形成する。値0xffは予約済みである。
[0092]ES_reference−この6ビットフィールドは、ビデオサブビットストリームを識別する階層記述子中に存在する階層レイヤインデックス値を示す。単一の動作点のためのプロファイルおよびレベル、たとえば、MVCビデオビットストリーム全体は、AVCビデオ記述子を使用してシグナリングされ得る。その上、MVCは、異なるプロファイルおよび/またはレベルを必要とすることができる異なるビューサブセットを復号することを可能にする。MVC動作点記述子の仕様は、複数の動作点のための異なるプロファイルおよびレベルの指示をサポートする。
[0093]以下の表Amd7−1は、MPEG−2システム仕様によるHEVCビデオ記述子についてのシンタックスを与える。HEVCビデオストリームの場合、HEVCビデオ記述子は、そのHEVCビデオストリームの、プロファイルおよびレベルパラメータなどのコーディングパラメータを識別するための基本情報を与える。HEVC時間ビデオサブビットストリームまたはHEVC時間ビデオサブセットの場合、HEVCビデオ記述子は、それが適用されるエレメンタリストリーム中に含まれている関連するHEVC最高時間サブレイヤ表現などの情報を与える。
[0094]L−HEVC TSドラフトでは、プロファイル、ティア、およびレベル(PTL)情報および動作点情報は、HEVC拡張記述子およびHEVC動作点記述子中でシグナリングされる。
[0095]MPEG−2システム仕様による表X−1のシンタックス要素についてのセマンティクスを以下に与える。
[0096]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完全時間表現全体は、これらのフィールドによってシグナリングされる情報に準拠することになる。
[0097]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最高時間サブレイヤ表現全体は、これらのフィールドによってシグナリングされる情報に準拠することになる。
[0098]HEVCビデオストリーム中の1つまたは複数のシーケンスにおいて、レベルは、HEVCビデオ記述子中でシグナリングされるレベルよりも低くなり得、一方、HEVCビデオ記述子中でシグナリングされるプロファイルのサブセットであるプロファイルも生じ得る。ただし、HEVCビデオストリーム全体において、存在する場合、HEVCビデオ記述子中でシグナリングされるプロファイル中に含まれる、ビットストリームシンタックス全体のサブセットのみが使用されることになる。HEVCビデオストリーム中のシーケンスパラメータセットが異なるプロファイルをシグナリンスし、追加の制約がシグナリングされない場合、ストリームは、ストリーム全体が、もしあれば、どのプロファイルに準拠するかを決定する審査を必要とし得る。HEVCビデオ記述子が、単一のプロファイルに準拠しないHEVCビデオストリームに関連付けられるべきである場合、HEVCビデオストリームは、2つ以上のサブストリームに区分されるべきであり、したがって、HEVCビデオ記述子は、そのようなサブストリームごとに単一のプロファイルをシグナリングすることができる。
[0099]temporal_layer_subset_flag−この1ビットフラグは、「1」に設定されると、時間レイヤのサブセットを記述するシンタックス要素がこの記述子中に含まれることを示す。このフィールドは、HEVC時間ビデオサブセットについて、およびHEVC時間ビデオサブビットストリームについて1に設定されることになる。「0」に設定されると、シンタックス要素temporal_id_minおよびtemporal_id_maxは、この記述子中に含まれない。
[0100]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時間ビデオサブビットストリーム中にのみ存在することができる。
[0101]HEVC_24_hour_picture_present_flag−この1ビットフラグは、「1」に設定されると、関連するHEVCビデオストリームまたはHEVC最高時間サブレイヤ表現がHEVC24時間ピクチャを含み得ることを示す。HEVC24時間ピクチャの定義については、2.1.97を参照されたい。このフラグが「0」に設定される場合、関連するHEVCビデオストリームは、いかなるHEVC24時間ピクチャをも含んでいないことになる。
[0102]temporal_id_min−この3ビットフィールドは、関連するエレメンタリストリーム中のすべてのHEVCアクセスユニットの、Rec.ITU−T H.265|ISO/IEC 23008−2において規定されているTemporalIdの最小値を示す。
[0103]temporal_id_max−この3ビットフィールドは、関連するエレメンタリストリーム中のすべてのHEVCアクセスユニットの、Rec.ITU−T H.265|ISO/IEC 23008−2において規定されているTemporalIdの最大値を示す。
[0104]2015年7月15日に出願された、Hendryら、「TRANSPORT STREAM FOR CARRIAGE OF VIDEO CODING EXTENSIONS」の米国特許出願番号第14/800,498号は、HEVC拡張の搬送のためのMPEG−2 TSの設計に関する詳細について記載している。
[0105]本開示の技法は、以下で説明する問題など、階層化されたHEVCビットストリームのレイヤ間の依存情報のために使用される記述子をシグナリングするための既存の技法に関するいくつかの問題を克服するために使用され得る。
[0106]本開示は、階層記述子と階層拡張記述子との機能の重複を認識する。ISO/IEC13818−1:2013/PDAM7の研究テキストでは、依存情報のシグナリングのための2つの記述子、すなわち、階層記述子と階層拡張記述子とがある。2つの記述子は、どちらも依存の空間、品質、およびマルチビュータイプを記述することが可能であるなど、重複する機能を有する。L−HEVC TSドラフトでは、両方の記述子が、存在し、同じエレメンタリストリームに関連付けられる可能性がある。これは、混乱をもたらし、規格の実装に不要な複雑さを追加することになる。
[0107]階層記述子と階層拡張記述子とは、重複する機能を有するが、それらだけで、それらのどちらも、SHVCおよびMV−HEVC中のすべて可能なレイヤ間依存タイプを記述するために使用されないことがある。階層記述子は、補助ピクチャの依存を記述することが可能でなく、一方、階層拡張記述子は、時間依存を記述することが可能でない。
[0108]本開示はまた、いつ階層拡張記述子が存在しなければならないのかについて欠落した(missing)記述があることを認識する。ISO/IEC13818−1:2013/PDAM7の研究テキストでは、階層記述子または階層拡張記述子の存在は必須ではない。以下に、いつ階層記述子が存在しなければならないのかを記述するが、いつ階層拡張記述子が存在しなければならないのかについての記述はない
ITU−T Rec.H.222.0|ISO/IEC13818−1プログラムが2つ以上のHEVCビデオ時間サブセット、または2つ以上のHEVC時間ビデオサブビットストリームおよび少なくとも1つのHEVCビデオ時間サブセットまたは少なくとも1つのHEVC拡張サブパーティションを含むとき、2.6.7において定義されている1つまたは複数の階層記述子は、0x24、0x25、または0x27〜0x2Aに等しいストリームタイプをもつすべての関連するエレメンタリストリームについて存在しなければならない。階層記述子は、すべてのHEVC時間ビデオサブビットストリーム、HEVCビデオ時間サブセットおよびHEVCサブパーティションの依存を示すために使用されなければならない。
[0109]さらに、本開示は、階層記述子も階層拡張記述子も存在しないときにエレメンタリストリーム参照の欠落した記述があることを認識する。動作点のシグナリングについて、エレメンタリストリームへの参照は、階層記述子と階層拡張記述子との中でシグナリングされるhierarchy_layer_indexの値を使用して行われる。階層記述子と階層拡張記述子とのいずれもプログラム中に存在しないとき、動作点シグナリングのためのエレメンタリストリームへの参照がどのように解決されるのかについての記述はない。
[0110]本開示はまた、プロファイル、ティア、およびレベル(PTL)情報のシグナリングに関する問題があることを認識する。第9回JCT3Vおよび第18回JCT−VC会合では、階層化されたHEVCビットストリーム(すなわち、SHVCまたはMV−HEVC)中の各レイヤについてPTL情報がシグナリングされるべきであると合意した。したがって、PTL情報のすべてのシンタックスとセマンティクスとは、レイヤのために設計されている。一方、L−HEVC TSドラフトでは、各動作点中に含まれる各レイヤについてではなく各動作点についてPTL情報のシグナリングがシグナリングされる。L−HEVC TSドラフトでのシグナリングは、PTL情報についての異なるシンタックスおよびセマンティクスを指定しないが、単に、SHVC/MV−HEVCドラフト仕様において定義されているPTL情報のシンタックスおよびセマンティックを参照するので、そのようなシグナリングは、正しくない。
[0111]本開示は、さらに、PTL情報をシグナリングすることについての非効率があることを認識する。階層化されたHEVCビットストリーム中のレイヤは、1つまたは複数の動作点の一部であり得る。PTL情報が動作点内のレイヤに関連付けられるべきであることを考慮すると、PTL構造がHEVC拡張記述子またはHEVC動作点のいずれかを使用してシグナリングされる場合、同じPTL構造が繰り返しシグナリングされる可能性がある。したがって、同じ情報のシグナリングを繰り返すことを回避することによって、PTL情報をシグナリングすることについての効率が改善されるべきである。
[0112]さらに、本開示は、動作点シグナリングにおいてある情報が欠落していることを認識する。HEVC拡張記述子またはHEVC動作点記述子のいずれかでの現在の動作点シグナリングは、関連する出力レイヤセットおよび区分方式の指示などの重要な情報がない。情報のこれらの2つの部分は、各動作点中のエレメンタリストリームのための適用可能なHRDパラメータを決定するために重要である。Rec.ITU−T H.265|ISO/IEC23008−2の付属書類Fにおいて指定されているように、パーティションのための適用可能なHRDパラメータは、bsp_hrd_idxの値によって決定され、これは、ターゲット出力レイヤセット(TargetOlsIdx)、区分方式(TargetPsIdx)、最高時間id(HighestTid)、配信スケジュールインデックス(SchedSelCombIdx)へのインデックスならびにパーティション(partitionIdx)へのインデックスによってインデックス付けされる。階層化されたHEVCビットストリームのトランスポートでは、HighestTidは、動作点の適用可能な/最大の時間idに基づいて割り当てられ、SchedSelCombIdxは、HEVCタイミングとHRD記述子とに記述されているSchedSelIdxに基づいて割り当てられ、partitionIdxは、サブパーティションのインデックスに基づいて割り当てられる。ただし、TargetOlsIdxおよびTargetPsIdxを割り当てるために使用され得るISO/IEC13818−1:2013/PDAM7の研究テキスト内の任意の記述子中でシグナリング/導出される値はない。
[0113]本開示はまた、プログラムについての欠落したプロファイル、欠落したティア、および/または欠落したレベル情報の可能性があることを認識する。L−HEVC TSドラフトの従属節2.17.4中でのエレメンタリストリームのアグリゲーションについての記述によれば、HEVC拡張記述子とHEVC動作点記述子との存在は必須ではない。HEVC拡張記述子もHEVC動作点記述子も存在しないとき、プログラム中にエレメンタリストリームに関連するPTL情報はない。PTL情報の存在は、2つの理由で重要である。第1に、PTL情報は、システムネゴシエーション目的のために有用である。PTL情報がトランスポートレベルで利用可能でないとき、システムエンティティ(たとえば、配信システムの中央のスマートミドルボックス)は、コーデックレベルまでルックダウンすることを強制され(すなわち、システムエンティティは、コーデックレベルからPTL情報を決定するために、トランスポートレベルからPTL情報を決定するために必要なリソースよりも多くのリソースを利用および/または消費しなければならず)、これは、負担である。第2に、HRDパラメータが存在しないとき、バッファモデルによってPTL情報が必要とされ得る。
[0114]以下に、本開示による例について説明する。例示的技法は、一緒に、または別々に実装され得る。いくつかの例では、例示的な技法は、上記で説明した問題に対処し得る。ただし、上記で説明した問題に対処することは必要ではない。たとえば、本開示で説明する技法は、上記で説明した問題に対処すること、または必ずしも本開示で説明する利点を与えることに限定されると見なすべきではない。上記で説明した問題および潜在的な利点は、コンテキストのために、理解を手助けするために与えたものにすぎず、要件と見なすべきではない。
[0115]本開示のいくつかの方法の概要を以下に与え、いくつかの例示的な技法の詳細な実装形態をさらに以下で与える。これらの例示的な技法のうちのいくつかは単独で適用され得、それらのうちのいくつかは組み合わせて適用され得る。
[0116]いくつかの例では、既存のHEVC拡張記述子とHEVC動作点記述子とは1つの記述子(すなわち、単一の記述子)にマージされ得、この単一の記述子は名前「HEVC動作点記述子」を再使用し得る。このHEVC動作点記述子は、以下の構成要素を有し得る。
a. PTL構造のリスト。リスト中のPTL構造は、インデックスによって参照され、動作点のレイヤに関連付けられなければならない。
b. 動作点のリスト。各動作点は、以下の情報を含む
i. 関連する出力レイヤセット
ii. 関連する区分方式
iii. 最高時間サブレイヤ
iv. 動作点を構成するエレメンタリストリームのリスト(すなわち、サブパーティション)
v. 出力レイヤの数
vi. 動作点の各エレメンタリストリーム中に含まれているレイヤのPTLとのマッピング
vii. フレームレート情報
[0117]ITU−T Rec.H.222.0|ISO/IEC13818−1プログラム内のエレメンタリストリーム間の依存が利用可能である(たとえば、階層記述子または階層拡張記述子中でシグナリングされる)とき、動作点を構成するエレメンタリストリームのリスト(すなわち、サブパーティション)は、エレメンタリストリームの最小数のみを含み得る。利用可能な依存情報を使用することによって、動作点を構成するエレメンタリストリームのリストはポピュレートされ(populated)得る。
[0118]ITU−T Rec.H.222.0|ISO/IEC13818−1プログラム内のエレメンタリストリーム間の依存が利用可能である(たとえば、階層記述子または階層拡張記述子中でシグナリングされる)とき、動作点を構成するエレメンタリストリームのリスト(すなわち、サブパーティション)は、動作点を構成するエレメンタリストリームの完全なリストを含む必要があり得る。
[0119]一例では、動作点中で出力レイヤの数をシグナリングするのではなく、動作点中に含まれるの各レイヤについて、レイヤが出力レイヤであるか否かを示すためにフラグがシグナリングされる。代替的に、各レイヤについて出力レイヤの数と(それぞれのレイヤが出力レイヤであるかどうかを示す)フラグ指示との両方がシグナリングされ得る。
[0120]ITU−T Rec.H.222.0|ISO/IEC13818−1プログラムのために2つ以上のHEVC動作点記述子が存在するとき、以下が適用され得る。第1に、(n+1)番目のHEVC動作点記述子中でシグナリングされるPTL情報のリスト、ここで、nは、1から開始する、は、n番目のHEVC動作点記述子中でシグナリングされるPTL情報のリストの継続であり得る。第2に、(n+1)番目のHEVC動作点記述子中でシグナリングされる動作点のリスト、ここで、nは、1で開始する、は、n番目のHEVC動作点記述子中でシグナリングされる動作点のリストの継続であり得る。言い換えれば、シグナリングされる2つ以上の連続するHEVC動作点記述子からの情報は、単一の記述子を形成するために連結され得る。すなわち、同様の情報は、2つ以上の別個のHEVC動作点記述子中でシグナリングされ得、この情報は、情報のすべてが単一の記述子中でシグナリングされたかのように連結され得る。
[0121]本明細書で説明するHEVC動作点記述子は、プログラムレベルの記述子であり得る(すなわち、プログラムマップテーブル中でシンタックス要素program_info_lengthフィールドの直後に来る他の記述子とともにシグナリングされ得る)。代替的に、HEVC動作点記述子は、エレメンタリストリームレベルの記述子であり得る(すなわち、プログラムマップテーブル中でシンタックス要素ES_info_lengthフィールドの直後に来る他の記述子とともにシグナリングされ得る)。
[0122]プログラムが、0x27、0x28、0x29または0x2Aに等しいstream_typeをもつ1つまたは複数のエレメンタリストリームを有するとき、HEVC動作点記述子の存在は必須であり得る。同様に、HEVCビデオ記述子の存在は、0x24および0x25に等しいstream_typeをもつ各エレメンタリストリームに必須であり得る。
[0123]いくつかの例では、階層拡張記述子は、時間依存/拡張を記述することをサポートするように変更され得る。この目的のために、L−HEVC TSドラフト中の表amd7−4−拡張次元ビットのセマンティクス中の予約された値のうちの1つは時間拡張のために割り振られる。
[0124]いくつかの例では、階層記述子は、補助レイヤ拡張をサポートするように変更される。この目的のために、以下が適用され得る。
a. 補助拡張を示すためにhierarchy_descriptorのシンタックステーブル中の予約されたフラグのうちの1つを使用する。
b. 補助拡張を示すために、表2−50−hierarchy_typeフィールド値中の予約された値のうちの1つを割り当てる。
[0125]いくつかの例では、階層記述子と階層拡張記述子との重複する使用を回避するために、以下が利用され得る。
a. HEVCコード化ピクチャを搬送する各エレメンタリストリームについて、1つの記述子(いくつかの例では、正確に1つ)、階層記述子または階層拡張記述子のいずれか、が存在し、エレメンタリストリームに関連付けられ得る(いくつかの例では、そうでなければならない)。
b. 0に等しいlayerIdをもつピクチャを含んでいる各エレメンタリストリームについて、階層記述子が存在し、エレメンタリストリームに関連付けられ得る(いくつかの例では、そうでなければならない)。
c. 0に等しいlayerIdをもつピクチャを含んでいない、0に等しくないlayerIdをもつピクチャを含んでいる各エレメンタリストリームについて、階層拡張記述子が存在し、エレメンタリストリームに関連付けられ得る(いくつかの例では、そうでなければならない(すなわち、そうである必要がある))。
[0126]図1は、ビデオコーディング規格の拡張に従ってコーディングされたビデオデータをトランスポートするための技法を利用し得る例示的なビデオ符号化および復号システム10を示すブロック図である。図1に示すように、システム10は、宛先デバイス14によって後で復号されるべき符号化ビデオデータを提供するソースデバイス12を含む。特に、ソースデバイス12は、コンピュータ可読媒体16を介してビデオデータを宛先デバイス14に提供する。ソースデバイス12および宛先デバイス14は、デスクトップコンピュータ、ノートブック(すなわち、ラップトップ)コンピュータ、タブレットコンピュータ、セットトップボックス、いわゆる「スマート」フォンなどの電話ハンドセット、タブレット、テレビジョン、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲームコンソール、ビデオストリーミングデバイスなどを含む、広範囲にわたるデバイスのいずれかを備え得る。場合によっては、ソースデバイス12および宛先デバイス14は、ワイヤレス通信に対する機能を備え得る。
[0127]宛先デバイス14は、コンピュータ可読媒体16を介して、復号されるべき符号化ビデオデータを受信し得る。コンピュータ可読媒体16は、符号化ビデオデータをソースデバイス12から宛先デバイス14に移動することが可能な、任意のタイプの媒体またはデバイスを備え得る。一例では、コンピュータ可読媒体16は、ソースデバイス12が符号化ビデオデータを宛先デバイス14にリアルタイムで直接送信するのを可能にするための通信媒体を備え得る。符号化ビデオデータは、ワイヤレス通信プロトコルなどの通信規格に従って変調され、宛先デバイス14に送信され得る。通信媒体は、無線周波(RF)スペクトルあるいは1つもしくは複数の物理伝送線路など、任意のワイヤレスまたはワイヤード通信媒体を備え得る。通信媒体は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはインターネットなどのグローバルネットワークなどのパケットベースのネットワークの一部を形成し得る。通信媒体は、ソースデバイス12から宛先デバイス14への通信を容易にするために有用であり得る、ルータ、スイッチ、基地局、または任意の他の機器を含み得る。
[0128]いくつかの例では、符号化データは、出力インターフェース22からストレージデバイスへ出力され得る。同様に、符号化データは、ストレージデバイスから入力インターフェースによってアクセスされ得る。ストレージデバイスは、ハードドライブ、Blue−rayディスク、DVD、CD−ROM、フラッシュメモリ、揮発性もしくは不揮発性のメモリ、または符号化ビデオデータを記憶するための任意の他の適切なデジタル記憶媒体など、様々な分散されたまたはローカルにアクセスされるデータ記憶媒体のいずれをも含み得る。さらなる例では、ストレージデバイスは、ソースデバイス12によって生成された符号化ビデオを記憶することができるファイルサーバまたは別の中間ストレージデバイスに対応し得る。宛先デバイス14は、ストリーミングまたはダウンロードを介して、ストレージデバイスから記憶されたビデオデータにアクセスし得る。ファイルサーバは、符号化ビデオデータを記憶し、その符号化ビデオデータを宛先デバイス14に送信することが可能な任意のタイプのサーバであり得る。例示的なファイルサーバは、(たとえば、ウェブサイト用の)ウェブサーバ、FTPサーバ、ネットワークアタッチドストレージ(NAS)デバイス、またはローカルディスクドライブを含む。宛先デバイス14は、インターネット接続を含む任意の標準的なデータ接続を通じて、符号化ビデオデータにアクセスし得る。これは、ワイヤレスチャネル(たとえば、Wi−Fi(登録商標)接続)、ワイヤード接続(たとえば、DSL、ケーブルモデムなど)、または、ファイルサーバに記憶された符号化ビデオデータにアクセスするのに適した、両方の組合せを含み得る。ストレージデバイスからの符号化ビデオデータの送信は、ストリーミング送信、ダウンロード送信、またはそれらの組合せであり得る。
[0129]本開示の技法は、ワイヤレスの適用例または設定に必ずしも限定されるとは限らない。本技法は、無線テレビジョンブロードキャスト、ケーブルテレビジョン送信、衛星テレビジョン送信、HTTP上の動的適応ストリーミング(DASH:dynamic adaptive streaming over HTTP)などのインターネットストリーミングビデオ送信、データ記憶媒体上に符号化されたデジタルビデオ、データ記憶媒体上に記憶されたデジタルビデオの復号、または他の応用例など、様々なマルチメディア応用のいずれかをサポートするビデオコーディングに適用され得る。いくつかの例では、システム10は、ビデオストリーミング、ビデオ再生、ビデオブロードキャスト、および/もしくはビデオ電話などの応用をサポートするために一方向または両方向のビデオ送信をサポートするように構成され得る。
[0130]図1の例では、ソースデバイス12は、ビデオソース18と、ビデオエンコーダ20と、マルチプレクサ21と、出力インターフェース22とを含む。宛先デバイス14は、入力インターフェース28と、デマルチプレクサ29と、ビデオデコーダ30と、ディスプレイデバイス32とを含む。本開示によれば、ソースデバイス12のマルチプレクサ21は、ビデオコーディング規格の拡張に従ってコーディングされたビデオデータをトランスポートするための技法を適用するように構成され得、一方、デマルチプレクサ29は、処理のためにそのようなデータを受信し、処理されたビデオデータを、たとえば、ビデオデコーダ30に転送し得る。他の例では、ソースデバイスおよび宛先デバイスは、他の構成要素または構成を含み得る。たとえば、ソースデバイス12は、外部カメラなどの外部のビデオソース18からビデオデータを受信し得る。同様に、宛先デバイス14は、内蔵ディスプレイデバイスを含むのではなく、外部ディスプレイデバイスとインターフェースし得る。
[0131]図1の図示のシステム10は一例にすぎない。ビデオコーディング規格の拡張に従ってコーディングされたビデオデータをトランスポートするための技法は、任意のデジタルビデオ符号化および/または復号デバイスによって実行され得る。一般に、本開示の技法は、ビデオ符号化デバイスによって実行されるが、これらの技法は、通常は「コーデック」と呼ばれるビデオエンコーダ/デコーダによっても実行され得る。その上、本開示の技法は、ビデオプリプロセッサによっても実行され得る。ソースデバイス12および宛先デバイス14は、ソースデバイス12が、宛先デバイス14に送信するためのコーディングされたビデオデータを生成するコーディングデバイスの例にすぎない。いくつかの例では、デバイス12、14は、デバイス12、14の各々がビデオ符号化構成要素と復号構成要素とを含むように、実質的に対称的な方式で動作し得る。したがって、システム10は、たとえば、ビデオストリーミング、ビデオ再生、ビデオ放送、もしくはビデオ電話のためのビデオデバイス12とビデオデバイス14の間の一方向または双方向のビデオ送信をサポートし得る。
[0132]ソースデバイス12のビデオソース18は、ビデオカメラなどのビデオキャプチャデバイス、前にキャプチャされたビデオを含んでいるビデオアーカイブ、および/またはビデオコンテンツプロバイダからビデオを受信するためのビデオフィードインターフェースを含み得る。さらなる代わりとして、ビデオソース18は、ソースビデオとしてコンピュータグラフィックスベースのデータ、または、ライブビデオ、アーカイブされたビデオ、およびコンピュータ生成のビデオの組合せを生成し得る。場合によっては、ビデオソース18がビデオカメラである場合、ソースデバイス12および宛先デバイス14は、いわゆるカメラ付き電話またはビデオ付き電話を形成し得る。しかしながら、上記で述べたように、本開示で説明する技法は、一般にビデオコーディングに適用可能であり、ワイヤレスおよび/またはワイヤード用途に適用され得る。各場合において、キャプチャされたビデオ、以前にキャプチャされたビデオ、またはコンピュータ生成ビデオは、ビデオエンコーダ20によって符号化され得る。次いで、符号化ビデオ情報は、出力インターフェース22によってコンピュータ可読媒体16に出力され得る。
[0133]コンピュータ可読媒体16は、ワイヤレスブロードキャストまたはワイヤードネットワーク送信などの一時媒体、あるいはハードディスク、フラッシュドライブ、コンパクトディスク、デジタルビデオディスク、Blu−ray(登録商標)ディスク、または他のコンピュータ可読媒体などの記憶媒体(すなわち、非一時的記憶媒体)を含み得る。いくつかの例では、ネットワークサーバ(図示せず)は、ソースデバイス12から符号化ビデオデータを受信し、たとえば、ネットワーク送信を介して、その符号化ビデオデータを宛先デバイス14に与え得る。同様に、ディスクスタンピング設備など、媒体製造設備のコンピューティングデバイスは、ソースデバイス12から符号化ビデオデータを受信し、その符号化ビデオデータを含んでいるディスクを生成し得る。したがって、コンピュータ可読媒体16は、様々な例において、様々な形態の1つまたは複数のコンピュータ可読媒体を含むことが理解されよう。
[0134]宛先デバイス14の入力インターフェース28は、コンピュータ可読媒体16から情報を受信する。コンピュータ可読媒体16の情報は、ビデオエンコーダ20によって定義されビデオデコーダ30によっても使用される、ブロックおよび他のコード化ユニット、たとえば、GOPの特性および/または処理を記述するシンタックス要素を含む、シンタックス情報を含み得る。ディスプレイデバイス32は、ユーザに復号ビデオデータを表示し、陰極線管(CRT)、液晶ディスプレイ(LCD)、プラズマディスプレイ、有機発光ダイオード(OLED)ディスプレイ、または別のタイプのディスプレイデバイスなど、様々なディスプレイデバイスのいずれかを備え得る。
[0135]ビデオエンコーダ20およびビデオデコーダ30は、現在開発中の高効率ビデオコーディング(HEVC)規格などのビデオコーディング規格に従って動作し得、HEVCテストモデル(HM)に準拠し得る。代替的に、ビデオエンコーダ20およびビデオデコーダ30は、代替的にMPEG−4、Part10、アドバンストビデオコーディング(AVC)と呼ばれるITU−T H.264規格など、他のプロプライエタリ規格または業界規格、またはそのような規格の拡張に従って動作し得る。ただし、本開示の技法は、いかなる特定のコーディング規格にも限定されない。ビデオコーディング規格の他の例としては、MPEG−2およびITU−T H.263がある。図1には示されていないが、いくつかの態様では、ビデオエンコーダ20およびビデオデコーダ30は、それぞれ、オーディオエンコーダおよびオーディオデコーダと統合され得、共通のデータストリームまたは別個のデータストリーム中のオーディオとビデオの両方の符号化を処理するために、適切なMUX−DEMUXユニット、または他のハードウェアおよびソフトウェアを含み得る。適用可能な場合、MUX−DEMUXユニットはITU H.223マルチプレクサプロトコル、またはユーザデータグラムプロトコル(UDP)などの他のプロトコルに準拠し得る。
[0136]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への拡張に取り組み続けている。
[0137]ビデオエンコーダ20およびビデオデコーダ30は、それぞれ、1つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ディスクリート論理、ソフトウェア、ハードウェア、ファームウェアまたはそれらの任意の組合せなど、様々な好適なエンコーダ回路のいずれかとして実装され得る。本技法がソフトウェアで部分的に実装されるとき、デバイスは、好適な非一時的コンピュータ可読媒体にソフトウェアのための命令を記憶し、本開示の技法を実行するために1つまたは複数のプロセッサを使用してハードウェアで命令を実行し得る。ビデオエンコーダ20およびビデオデコーダ30の各々は、1つもしくは複数のエンコーダまたはデコーダの中に含まれ得、そのいずれかが、それぞれのデバイスにおいて複合エンコーダ/デコーダ(コーデック)の一部として統合され得る。
[0138]JCT−VCは、HEVC規格を開発し、HEVC規格の拡張に取り組み続けている。HEVC規格化の取り組みは、HEVCテストモデル(HM)と呼ばれるビデオコーディングデバイスの発展的モデルに基づく。HMは、たとえば、ITU−T H.264/AVCに従う既存のデバイスに対してビデオコーディングデバイスのいくつかの追加の機能を仮定する。たとえば、H.264は、9つのイントラ予測符号化モードを提供するが、HMは、33もの(35もあり得る)イントラ予測符号化モードを提供し得る。
[0139]概して、HMの作業モデルは、ビデオフレームまたはピクチャが、ルーマ(luma)サンプルとクロマ(chroma)サンプルの両方を含む一連のツリーブロックまたは(「コーディングツリーユニット」とも呼ばれる)最大コーディングユニット(LCU)に分割され得ることを記述する。ビットストリーム内のシンタックスデータは、ピクセルの数の点で最大のコーディングユニットであるLCUにとってのサイズを定義し得る。スライスは、コーディング順序でいくつかの連続するツリーブロックを含む。ビデオフレームまたはピクチャは、1つまたは複数のスライスに区分され得る。各ツリーブロックは、4分木(quadtree)に従って、コーディングユニット(CU)に分割され得る。概して、4分木データ構造はCUごとに1つのノードを含み、ルートノードはツリーブロックに対応する。CUが4つのサブCUに分割される場合、CUに対応するノードは4つのリーフノード(leaf nodes)を含み、その各々はサブCUのうちの1つに対応する。
[0140]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とも呼ぶ。
[0141]CUは、CUがサイズ差異を有しないことを除いて、H.264規格のマクロブロックと同様の目的を有する。たとえば、ツリーブロックは、(サブCUとも呼ばれる)4つの子ノードに分割され得、各子ノードは、今度は親ノードとなり、別の4つの子ノードに分割され得る。4分木のリーフノードと呼ばれる、最後の分割されていない子ノードは、リーフCUとも呼ばれるコーディングノードを備える。コーディングされたビットストリームに関連するシンタックスデータは、最大CU深度と呼ばれる、ツリーブロックが分割され得る最大回数を定義し得、また、コーディングノードの最小サイズを定義し得る。したがって、ビットストリームはまた、最小コーディングユニット(SCU:smallest coding unit)を定義し得る。本開示は、「ブロック」という用語を、HEVCのコンテキストにおいてCU、PU、またはTUのうちのいずれか、または他の規格のコンテキストにおいて類似のデータ構造(たとえば、H.264/AVCのマクロブロックおよびそのサブブロック)を参照するために使用する。
[0142]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は、形状が正方形または非正方形(たとえば、矩形)であり得る。
[0143]HEVC規格は、CUごとに異なり得る、TUに従う変換を可能にする。TUは、通常、区分されたLCUのために定義された、所与のCU内のPUのサイズに基づいてサイズ決定されるが、これは常にそうであるとは限らない。TUは、一般に、PUと同じサイズであるか、またはPUよりも小さい。いくつかの例では、CUに対応する残差サンプルは、「残差4分木」(RQT:residual quad tree)と呼ばれる4分木構造を使用して、より小さいユニットに再分割され得る。RQTのリーフノードは変換ユニット(TU)と呼ばれ得る。TUに関連するピクセル差分値は、変換係数を生成するために変換され、その変換係数は量子化され得る。
[0144]ビデオエンコーダ20は、CUのルーマ残差ブロックと、Cb残差ブロックと、Cr残差ブロックとを、1つまたは複数のルーマ変換ブロック、Cb変換ブロック、およびCr変換ブロックに分解するために、4分木区分を使用し得る。変換ブロックは、同じ変換が適用されるサンプルの矩形ブロックであり得る。CUの変換ユニット(TU)は、ルーマサンプルの変換ブロック、クロマサンプルの2つの対応する変換ブロック、および変換ブロックサンプルを変換するために使用されるシンタックス構造であり得る。したがって、CUの各TUは、ルーマ変換ブロック、Cb変換ブロック、およびCr変換ブロックに関連付けられ得る。TUに関連付けられたルーマ変換ブロックはCUのルーマ残差ブロックのサブブロックであり得る。Cb変換ブロックは、CUのCb残差ブロックのサブブロックであり得る。Cr変換ブロックは、CUのCr残差ブロックのサブブロックであり得る。モノクロームピクチャまたは3つの別々の色平面を有するピクチャでは、TUは、単一の変換ブロックと、その変換ブロックのサンプルを変換するために使用されるシンタックス構造とを備え得る。
[0145]リーフ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)を記述し得る。
[0146]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とコロケートされ(collocated)得る。いくつかの例では、リーフTUの最大サイズは、対応するリーフCUのサイズに対応し得る。
[0147]その上、リーフCUのTUはまた、残差4分木(RQT)と呼ばれる、それぞれの4分木データ構造に関連し得る。すなわち、リーフCUは、リーフCUがどのようにTUに区分されるかを示す4分木を含み得る。TU4分木のルートノードは一般にリーフCUに対応し、CU4分木のルートノードは一般にツリーブロック(またはLCU)に対応する。分割されないRQTのTUはリーフTUと呼ばれる。概して、本開示では、別段に明記されていない限り、リーフCUおよびリーフTUに言及するためにそれぞれCUおよびTUという用語を使用する。
[0148]ビデオシーケンスは、通常、一連のビデオフレームまたはピクチャを含む。ピクチャグループ(GOP)は、一般に、ビデオピクチャのうちの一連の1つまたは複数を備える。GOPは、GOPに含まれるいくつかのピクチャを記述するシンタックスデータを、GOPのヘッダ中、ピクチャのうちの1つもしくは複数のヘッダ中、または他の場所に含み得る。ピクチャの各スライスは、それぞれのスライスの符号化モードを記述するスライスシンタックスデータを含み得る。ビデオエンコーダ20は、一般に、ビデオデータを符号化するために、個々のビデオスライス内のビデオブロックに作用する。ビデオブロックは、CU内のコーディングノードに対応し得る。ビデオブロックは、固定されたサイズまたは変化するサイズを有することができ、規定されたコーディング規格に従ってサイズが異なり得る。
[0149]一例として、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を指す。
[0150]本開示では、「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に等しいとは限らない。
[0151]CUのPUを使用したイントラ予測コーディングまたはインター予測コーディングに続いて、ビデオエンコーダ20は、CUのTUのための残差データを計算し得る。PUは、空間領域(ピクセル領域とも呼ばれる)において予測ピクセルデータを生成する方法またはモードを記述するシンタックスデータを備え、TUは、変換、たとえば、残差ビデオデータへの離散コサイン変換(DCT)、整数変換、ウェーブレット変換、または概念的に同様の変換の適用後に、変換領域において係数を備え得る。残差データは、符号化されていないピクチャのピクセルと、PUに対応する予測値との間のピクセル差分に対応し得る。ビデオエンコーダ20は、CUのための残差データを含むTUを形成し、次いで、CUのための変換係数を生成するために、TUを変換し得る。
[0152]変換係数を生成するための任意の変換の後で、ビデオエンコーダ20は、変換係数の量子化を実行し得る。量子化は、概して、係数を表すために使用されるデータの量をできるだけ低減するために変換係数が量子化され、さらなる圧縮を行うプロセスを指す。量子化プロセスは、係数の一部または全部に関連付けられたビット深度を低減し得る。たとえば、nビット値は、量子化中にmビット値に切り捨てられ得、ここで、nはmよりも大きい。
[0153]量子化の後に、ビデオエンコーダは、変換係数を走査し、量子化された変換係数を含む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による使用のために、符号化ビデオデータに関連付けられたシンタックス要素をエントロピー符号化し得る。
[0154]CABACを実施するために、ビデオエンコーダ20は、コンテキストモデル内のコンテキストを、送信されるべきシンボルに割り当て得る。コンテキストは、たとえば、シンボルの隣接する値がゼロ以外であるか否かに関係し得る。CAVLCを実施するために、ビデオエンコーダ20は、送信されるべきシンボルのための可変長コードを選択し得る。VLC中のコードワードは、比較的より短いコードが優勢シンボルに対応し、より長いコードが劣勢シンボルに対応するように構成され得る。このようにして、VLCの使用は、たとえば、送信されるべき各シンボルのための等長コードワードを使用することに勝るビット節約を達成し得る。確率決定は、シンボルに割り当てられたコンテキストに基づき得る。
[0155]本開示は、HEVC拡張ビットストリームの搬送のための技法について説明する。すなわち、本開示の技法によれば、マルチプレクサ21および/またはデマルチプレクサ29は、HEVC、HEVC規格の拡張(たとえば、SHVCまたはMV−HEVC)、または他のまだ開発されていないビデオコーディング規格などのビデオコーディング規格の拡張に従ってコーディングされたビデオデータをトランスポートすること(すなわち、ビデオデータを送信または受信すること)を行うように構成され得る。概して、マルチプレクサ21は、たとえば、MPEG−2システムおよび本開示の技法に実質的に従って、ビットストリームを形成するために、符号化されたビデオデータをカプセル化し得、一方、デマルチプレクサ29は、カプセル化されたデータ、たとえば、ビデオコーディング規格の拡張に従って符号化されたビデオデータを受信し、カプセル化解除し得る。
[0156]いくつかの例では、マルチプレクサ21とデマルチプレクサ29とは、上記で説明したように、表Amd7−1の動作点記述子の修正されたバージョンをコーディングするように構成され得る。「提案された表Amd7−1−HEVC動作点記述子」と標示された以下の表は、現在の表Amd7−1への変更の一例を表す。以下で説明するHEVC動作点記述子は、本開示のいくつかの技法を実行するために使用され得る。以下の表中のイタリック体のテキストは、上記のように、現在の表Amd7−1に対する追加を強調する。
[0157]本表の追加されたシンタックス要素についての例示的なセマンティクスについて以下で説明する。他のシンタックス要素についてのセマンティクスは、L−HEVC TSの場合と同じままであり得る。
[0158]num_profile_tier_level−この記述子中でシグナリングされるプロファイル、ティアおよびレベル構造の数を指定する8ビットフィールド。
[0159]profile_space[ptlIdx]、tier_flag[ptlIdx]、profile_idc[ptlIdx]、profile_compatibility_indication[ptlIdx]、progressive_source_flag[ptlIdx]、interlaced_source_flag[ptlIdx]、non_packed_constraint_flag[ptlIdx]、frame_only_constraint_flag[ptlIdx]、reserved_zero_44bits[ptlIdx]、level_idc[ptlIdx]−これらのフィールドは、この記述子内に記述される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、level_idcについてRec.ITU−T H.265|ISO/IEC23008−2において定義されているセマンティクスに従ってコーディングされなければならない。
[0160]ptlIdxおよびopIdxの値はどちらも、プログラムの第1のHEVC動作点について0に等しく初期化される。
[0161]num_operation_points−この8ビットフィールドは、この記述子に記述された動作点の数を示す。
[0162]target_ols[opIdx]−この記述子において定義されているopIdx番目の動作点に関連する出力レイヤセットを指定する8ビットフィールド。
[0163]target_partitioning_scheme[opIdx]−この記述子において定義されているopIdx番目の動作点に関連する出力レイヤセットの区分方式を指定する8ビットフィールド。
[0164]max_temporal_id[opIdx]−この記述子において定義されているopIdx番目の動作点に属するNALユニットの最大のTemporalIdを指定する3ビットフィールド。
[0165]es_count[opIdx]−データ要素の以下のグループ中に含まれるes_reference値の数を示す8ビットフィールド。データ要素の以下のグループ中で示される順位リストによるエレメンタリストリームのアグリゲーションは、HEVC動作点を形成する。値0xffは予約済みである。
[0166]prepend_dependencies[opIdx][j]−1に設定されたとき、階層記述子中のシンタックス要素hierarchy_embedded_layer_indexによってシグナリングされるエレメンタリストリームと後続のシンタックス要素es_reference[opIdx][j]によって指定される階層レイヤインデックス値をもつhierarchy_extension_descriptorとが、es_reference[opIdx][j]によってシグナリングされるエレメンタリストリームの前にターゲット動作点のためのエレメンタリストリームのリストに追加されなければならないことを示す1ビットフラグ。hierarchy_embedded_layer_indexによってシグナリングされるエレメンタリストリームが、階層記述子によってシグナリングされるさらなる依存を有する場合、これらの依存は、再帰的方法でESリストに追加されなければならない。シンタックス要素ES_reference[opIdx][j]によって参照されるエレメンタリストリームのいずれかのための階層記述子と階層拡張記述子とが存在しないとき、prepend_dependencies[opIdx][j]の値は1に等しくなってはならない。
[0167]ES_reference[opIdx][j]−エレメンタリストリームを識別する階層記述子中に存在する階層レイヤインデックス値を指定する6ビットフィールド。
[0168]num_target_output_layers[opIdx]−この6ビットフィールドは、この記述子において定義されているoptIdx番目の動作点のための出力の対象とされる、レイヤの数の値を指定する。
[0169]num_layers[opIdx]−この記述子において定義されているoptIdx番目の動作点中に含まれるレイヤの数を指定する6ビットフィールド。
[0170]output_layer_flag[opIdx][j]−1ビットフィールドは、値「1」が割り当てられると、この記述子において定義されているopIdx番目の動作点のj番目のレイヤが出力レイヤであることを示す。そうでない場合、値「0」が割り当てられると、この記述子において定義されているopIdx番目の動作点のj番目のレイヤが出力レイヤでないことを示す。
[0171]ptl_ref_idx[opIdx][j]−この記述子において定義されているoptIdx番目の動作点のj番目のレイヤに割り当てられるプロファイル、ティアおよびレベルへのインデックスを指定する8ビットフィールド。
[0172]constant_frame_rate_info_idc[opIdx]−以下に指定するシンタックス要素frame_rate_indicatorと組み合わせて、この記述子において定義されている関連するopIdx番目の動作点のフレームレートがどのように決定されるのかを指定する2ビットフィールド。0の値は、フレームレートが動作点について指定されていないことと、シンタックス要素frame_rate_indicatorが動作点についてこの記述子中に存在しないこととを示す。
[0173]frame_rate_indicator[opIdx]−constant_frame_rate_info_idc[opIdx]が1に等しい場合、この12ビットフィールドは、この記述子において定義されているi番目の動作点における2つのピクチャ間の時間的な距離について、HEVCタイミングとHRD記述子とにおいて指定されているように、一定の数のチックを示す。それ以外の場合、constant_frame_rate_info_idc[opIdx]が2に等しい場合、この12ビットフィールドは、フレーム毎秒で測定される動作点のフレームレートを示す。それ以外の場合、constant_frame_rate_info_idc[opIdx]が3に等しい場合、この12ビットフィールドは、1.001秒当たりのフレーム数で測定される動作点のフレームレートを示す。
[0174]したがって、提案された表Amd7−1による記述子は、プロファイル、ティア、およびレベル(PTL)構造のセットと、動作点の各々のレイヤの各々をPTL構造のうちの対応する1つに関連付けるデータとを含む記述子の一例を表す。すなわち、「for(i=0;i<num_profile_tier_level;i++,ptlIdx++)」ループに記載の要素は、プロファイル、ティア、およびレベル(PTL)構造のセットの一例を表し、一方、「for(j=0;j<num_layers[opIdx];j++」ループに記載の要素は、動作点の各々のレイヤの各々をPTL構造のうちの対応する1つに関連付けるデータの例を表す。
[0175]提案された表Amd7−1による記述子はまた、動作点の各々のためのターゲット出力レイヤセットシンタックス要素の値を含む記述子、ここにおいて、ターゲット出力レイヤセットシンタックス要素は、対応する動作点に関連するターゲット出力レイヤセットを指定する、の一例を表す。すなわち、動作点の各々のためのターゲット出力レイヤセットシンタックス要素の値は、対応する動作点に関連するターゲット出力レイヤセットを指定するので、target_ols[opIdx]シンタックス要素は、これらの値の例を表す。
[0176]したがって、デマルチプレクサ29は、ビットストリームの各動作点のためのPTL構造を決定するために、ビットストリームから記述子を抽出し得る。すなわち、デマルチプレクサ29は、プロファイル、ティア、およびレベル情報の様々なセットを決定するために、profile_idc[ptlIdx]、tier_flag[ptlIdx]、およびlevel_idc[ptlIdx]シンタックス要素など、「for(i=0;i<num_profile_tier_level;i++,ptlIdx++)()」の各々の内のデータを抽出し得る。これらのセットの各々は、順番にインデックス付けされた、デマルチプレクサ29がインスタンス化(instantiate)し得る単一のPTLデータ構造に対応し得る。デマルチプレクサ29は、さらに、各動作点の各レイヤを繰返し処理し、ptl_ref_idx[opIdx][j]シンタックス要素に基づいてPTLデータ構造のいずれが各動作点の各レイヤに対応するのかを決定し得る。すなわち、「opIdx」は、動作点へのインデックスを表し、「j」は、動作点のレイヤへのインデックスを表す。したがって、ptl_ref_idx[opIdx][j]シンタックス要素の値は、opIdx番目の動作点のj番目のレイヤが対応するPTLデータ構造のうちの1つを表す。
[0177]さらに、デマルチプレクサ29は、動作点の各々のためのターゲット出力レイヤセットを決定し得る。すなわち、動作点の各々について、デマルチプレクサ29は、target_ols[opIdx]の値を取り出し得、これは、「opIdx」によって表される動作点のためのターゲット出力レイヤセットを表す。
[0178]本開示はまた、例について説明し、ここで、依存(場合によっては、レイヤの依存)を記述するなど、HEVCレイヤ(エレメンタリストリーム)についてのデータをシグナリングするために使用され得る階層記述子および階層拡張記述子。たとえば、本開示の階層記述子と階層拡張記述子とは、既存の階層記述子と階層拡張記述子とは異なり得る。したがって、本開示が「階層拡張記述子」または「階層記述子」という用語を使用するとき、記述からそのような記述子の前のバージョンに言及していると明らかでない限り、本開示は、そのような記述子の更新版に言及している。いくつかの例では、これらの変更された階層拡張記述子または階層記述子のいずれかまたは両方は、上記で説明したように、提案された表Amd7−1のHEVC動作点記述子とマージされ得る。
[0179]したがって、デマルチプレクサ29は、上記で説明したように、たとえば、階層記述子および/または階層拡張記述子を使用してエレメンタリストリーム間の依存を決定するように構成され得る。
[0180]マルチプレクサ21は、HEVC動作点記述子、階層記述子および/または階層拡張記述子を形成するように構成され得、一方、デマルチプレクサ29は、たとえば、ビデオデコーダ30によって使用され得る形態にビデオデータをアセンブルするために、受信されたビデオデータを処理するためにHEVC動作点記述子、階層記述子および/または階層拡張記述子を使用し得る。図1の例には示されていないが、中間デバイスはまた、たとえば、サブビットストリーム抽出を実行するために、これらの記述子を使用し得る。たとえば、メディアアウェアネットワーク要素(MANE:media aware network element)は、HEVC動作点記述子、階層記述子、および/または階層拡張記述子を使用してサブビットストリーム抽出を実行し得る。
[0181]マルチプレクサ21、デマルチプレクサ29、ビデオエンコーダ20およびビデオデコーダ30はそれぞれ、適用可能なとき、1つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、離散論理回路、ソフトウェア、ハードウェア、ファームウェア、またはそれらの任意の組合せなどの、様々な好適なエンコーダまたはデコーダ回路のいずれかとして実装され得る。ビデオエンコーダ20およびビデオデコーダ30の各々は、1つまたは複数のエンコーダまたはデコーダ中に含まれ得、そのいずれも複合ビデオエンコーダ/デコーダ(コーデック)の一部として統合され得る。ビデオエンコーダ20および/またはビデオデコーダ30を含むデバイスは、集積回路、マイクロプロセッサ、および/または携帯電話のようなワイヤレス通信デバイスを備え得る。
[0182]このようにして、デマルチプレクサ29は、ビットストリームから抽出されたデータを記憶するためのメモリと、ビットストリームから記述子を抽出することと、ここにおいて、ビットストリームは、記述子とは別個の、動作点についてのビデオデータのレイヤを含み、したがって、各動作点は、ビデオデータのレイヤのうちの1つまたは複数を含む、ここにおいて、記述子は、プロファイル、ティア、およびレベル(PTL)構造のセットと、動作点の各々のレイヤの各々をPTL構造のうちの対応する1つに関連付けるデータとを含む、動作点のうちの1つのレイヤが対応するPTL構造に少なくとも部分的に基づいてビットストリームから動作点のうちの1つについてのビデオデータを抽出することと、ビデオデコーダに抽出されたビデオデータを与えることとを行うように構成された1つまたは複数の処理ユニットとを含むデバイスの一例を表す。
[0183]図2は、ビデオコーディング規格の拡張に従ってコーディングされたビデオデータをトランスポートするための技法を実装し得るビデオエンコーダ20の一例を示すブロック図である。ビデオデータは、ベースレイヤに複数の(たとえば、2つ以上の)エンハンスメントレイヤを含み得、ここで、エンハンスメントレイヤは、異なるスケーラビリティ次元に対応し得る。ビデオエンコーダ20は、ビデオスライス内のビデオブロックのイントラコーディングとインターコーディングとを実行し得る。イントラコーディングは、所与のビデオフレームまたはピクチャ内のビデオの空間的冗長性を低減または除去するために空間的予測に依拠する。インターコーディングは、ビデオシーケンスまたは参照レイヤ(たとえば、参照ビュー)のフレームまたはピクチャ内のビデオの冗長性を低減または除去するために時間的予測またはレイヤ間予測に依拠する。イントラモード(Iモード)は、いくつかの空間ベースコーディングモードのいずれかを指すことがある。単方向予測(Pモード)または双予測(Bモード)などのインターモードは、いくつかの時間ベースコーディングモードのいずれかを指すことがある。
[0184]図2に示されているように、ビデオエンコーダ20は、符号化されるべきビデオフレーム内の現在ビデオブロックを受信する。図2の例では、ビデオエンコーダ20は、モード選択ユニット40と、参照ピクチャメモリ64と、加算器50と、変換処理ユニット52と、量子化ユニット54と、エントロピー符号化ユニット56とを含む。モード選択ユニット40は、動き補償ユニット44と、動き推定ユニット42と、イントラ予測ユニット46と、パーティションユニット48とを含む。ビデオブロック再構築のために、ビデオエンコーダ20はまた、逆量子化ユニット58と、逆変換ユニット60と、加算器62とを含む。再構築されたビデオからブロッキネスアーティファクト(blockiness artifacts)を除去するためにブロック境界をフィルタリングするための、デブロッキングフィルタ(図2に示されず)も含まれ得る。所望される場合、デブロッキングフィルタは、通常、加算器62の出力をフィルタ処理することになる。デブロッキングフィルタに加えて、(ループ内またはループ後の)追加のフィルタも使用され得る。そのようなフィルタは、簡約のために図示されないが、必要な場合、加算器50の出力を(インループフィルタとして)フィルタリングし得る。
[0185]符号化プロセス中に、ビデオエンコーダ20は、コーディングされるべきビデオフレームまたはスライスを受信する。フレームまたはスライスは、複数のビデオブロックに分割され得る。動き推定ユニット42および動き補償ユニット44は、時間的予測を行うために、1つまたは複数の参照フレーム中の1つまたは複数のブロックに対する受信されたビデオブロックのインター予測コーディングを実行する。イントラ予測ユニット46は、代替的に、空間予測を行うために、コーディングされるべきブロックと同じフレームまたはスライス中の1つまたは複数の近隣ブロックに対する受信されたビデオブロックのイントラ予測コーディングを実行し得る。ビデオエンコーダ20は、たとえば、ビデオデータの各ブロックに適切なコーディングモードを選択するために、複数のコーディングパスを実施し得る。
[0186]その上、分割ユニット48は、前のコーディングパスでの前の区分化方式の評価に基づいて、ビデオデータのブロックを、サブブロックに区分し得る。たとえば、区分ユニット48は、最初は、レートひずみ分析(たとえば、レートひずみ最適化)に基づいて、フレームまたはスライスをLCUに区分し、LCUの各々をサブCUに区分し得る。モード選択ユニット40は、さらに、LCUのサブCUへの区分を示す4分木データ構造を生成し得る。4分木のリーフノードCUは、1つまたは複数のPUと、1つまたは複数のTUとを含み得る。
[0187]モード選択ユニット40は、たとえば誤差結果に基づいて、コーディングモード、すなわち、イントラまたはインターのうちの1つを選択し得、残差ブロックデータを生成するために、得られたイントラ予測ブロックまたはインター予測ブロックを加算器50に与え、参照フレーム中で使用するための符号化ブロックを再構成するために、得られたイントラ予測ブロックまたはインター予測ブロックを加算器62に与える。モード選択ユニット40はまた、動きベクトル、イントラモードインジケータ、パーティション情報、および他のそのようなシンタックス情報など、シンタックス要素をエントロピー符号化ユニット56に与える。
[0188]動き推定ユニット42および動き補償ユニット44は、高度に統合され得るが、概念上の目的から別々に図示されている。動き推定ユニット42によって実行される動き推定は、ビデオブロックに関する動きを推定する動きベクトルを生成するプロセスである。動きベクトルは、たとえば、現在フレーム(または他のコード化ユニット)内でコーディングされている現在ブロックに対する参照フレーム(または他のコード化ユニット)内の予測ブロックに対する現在ビデオフレームまたはピクチャ内のビデオブロックのPUの変位を示し得る。予測ブロックは、絶対差の合計(SAD:sum of absolute difference)、二乗差の合計(SSD:sum of square difference)、または他の差分基準によって決定され得るピクセル差に関する、コーディングされるべきブロックとよく一致することがわかったブロックである。いくつかの例では、ビデオエンコーダ20は、参照ピクチャメモリ64に記憶された参照ピクチャのサブ整数ピクセル位置の値を計算し得る。たとえば、ビデオエンコーダ20は、参照ピクチャの、4分の1ピクセル位置、8分の1ピクセル位置、または他の分数のピクセル位置の値を補間し得る。したがって、動き推定ユニット42は、完全なピクセル位置および分数ピクセル位置に対して動き探索を実行し、分数ピクセル精度で動きベクトルを出力し得る。
[0189]動き推定ユニット42は、PUの位置を参照ピクチャの予測ブロックの位置と比較することによって、インターコード化スライス中のビデオブロックに関するPUの動きベクトルを計算する。参照ピクチャは、第1の参照ピクチャリスト(リスト0)または第2の参照ピクチャリスト(リスト1)から選択され得、それらの参照ピクチャリストの各々は、参照ピクチャメモリ64に記憶された1つまたは複数の参照ピクチャを識別する。動き推定ユニット42は、計算された動きベクトルをエントロピー符号化ユニット56と動き補償ユニット44とに送る。
[0190]動き補償ユニット44によって実行される動き補償は、動き推定ユニット42によって決定された動きベクトルに基づいて予測ブロックをフェッチまたは生成することに関与し得る。同様に、動き推定ユニット42および動き補償ユニット44は、いくつかの例では、機能的に統合され得る。現在ビデオブロックのPUのための動きベクトルを受信すると、動き補償ユニット44は、動きベクトルが参照ピクチャリストのうちの1つにおいてそれを指す予測ブロックの位置を特定し得る。加算器50は、下で論じるように、コーディングされている現在ビデオブロックのピクセル値から予測ブロックのピクセル値を減算し、ピクセル差分値を形成することによって、残差ビデオブロックを形成する。一般に、動き推定ユニット42は、ルーマ成分に対して動き推定を実行し、動き補償ユニット44は、クロマ成分とルーマ成分の両方に関して、ルーマ成分に基づいて計算された動きベクトルを使用する。モード選択ユニット40は、また、ビデオデコーダ30によるビデオスライスのビデオブロックの復号での使用のために、ビデオブロックおよびビデオスライスと関連したシンタックス要素を生成する。
[0191]代替的に、動き推定ユニット42は、依存レイヤ中のピクチャのブロックに対してレイヤ間(たとえば、ビュー間)予測を実行し得る。たとえば、動き推定ユニット42は、従属ビュー中のピクチャのビュー間予測を実行するときに視差動きベクトルを計算するように構成され得る。他の例では、動き補償ユニット44は、レイヤ間予測を実行するとき、たとえば、エンハンスメントレイヤ中のブロックが拡張されているベースレイヤ中のブロックと同じまたは実質的に同じ位置にあるスケーラビリティ次元にエンハンスメントレイヤが対応するとき、ブロックの0動きベクトル予測を実行し得る。そのようなスケーラビリティ次元は、たとえば、クロマビット深度、色フォーマット、色域、PSNRなどを含み得る。
[0192]イントラ予測ユニット46は、上記で説明したように、動き推定ユニット42と動き補償ユニット44とによって実施されるインター予測の代替として、現在ブロックをイントラ予測し得る。特に、イントラ予測ユニット46は、現在ブロックを符号化するために使用すべきイントラ予測モードを決定し得る。いくつかの例では、イントラ予測ユニット46は、たとえば、別個の符号化パス中に様々なイントラ予測モードを使用して現在ブロックを符号化し、イントラ予測ユニット46(または、いくつかの例では、モード選択ユニット40)は、使用するのに適切なイントラ予測モードを、テストされたモードから選択し得る。
[0193]たとえば、イントラ予測ユニット46は、様々なテストされたイントラ予測モードのためのレートひずみ分析を使用してレートひずみ値を計算し、テストされたモードの中で最良のレートひずみ特性を有するイントラ予測モードを選択し得る。レートひずみ分析は、概して、符号化されたブロックと、符号化されたブロックを生成するために符号化された元の符号化されていないブロックとの間のひずみ(または誤差)の量、ならびに符号化されたブロックを生成するために使用されるビットレート(すなわち、ビット数)を決定する。イントラ予測ユニット46は、どのイントラ予測モードがブロックについて最良のレートひずみ値を呈するかを決定するために、様々な符号化されたブロックのひずみおよびレートから比を計算し得る。
[0194]イントラ予測ユニット46は、ブロックに関するイントラ予測モードを選択した後、ブロックに関して選択されたイントラ予測モードを示す情報を、エントロピー符号化ユニット56に提供し得る。エントロピー符号化ユニット56は、選択されたイントラ予測モードを示す情報を符号化し得る。ビデオエンコーダ20は、送信されるビットストリーム中に構成データを含む場合があり、構成データは、コンテキストの各々に関して使用する、複数のイントラ予測モードのインデックステーブルおよび複数の修正されたイントラ予測モードのインデックステーブル(コードワードマッピングテーブルとも呼ばれる)と、様々なブロックに関する符号化コンテキストの定義と、最も起こりそうなイントラ予測モードの表示と、イントラ予測モードのインデックステーブルと、修正されたイントラ予測モードのインデックステーブルとを含み得る。
[0195]ビデオエンコーダ20は、モード選択ユニット40からの予測データを、コーディングされている元のビデオブロックから減算することによって、残差ビデオブロックを形成する。合計器50は、この減算演算を実行する、1つまたは複数の構成要素を表す。変換処理ユニット52は、離散コサイン変換(DCT)または概念的に類似する変換などの変換を残差ブロックに適用し、残差変換係数値を備えるビデオブロックを生成する。変換処理ユニット52は、DCTと概念的に同様である他の変換を実施し得る。ウェーブレット変換、整数変換、サブバンド変換または他のタイプ変換も使用され得る。
[0196]いずれの場合でも、変換処理ユニット52は、変換を残差ブロックに適用し、残差変換係数のブロックを生成する。変換は、ピクセル値領域からの残差情報を、周波数領域などの変換領域に転換し得る。変換処理ユニット52は、得られた変換係数を量子化ユニット54に送り得る。量子化ユニット54は、ビットレートをさらに低減させるために変換係数を量子化する。量子化プロセスは、係数の一部または全部に関連付けられたビット深度を低減し得る。量子化プロセスは「スケーリング」プロセスと呼ばれることもあり、したがって、量子化変換係数は「スケーリングされた変換係数」と呼ばれることもある。量子化(またはスケーリング)の程度は、量子化パラメータを調整することによって変更され得る。いくつかの例では、エントロピー符号化ユニット56は、次いで、量子化変換係数を含む行列の走査を実行し得る。
[0197]量子化に続いて、エントロピー符号化ユニット56は、スキャンされた量子化変換係数をエントロピーコーディングする。たとえば、エントロピー符号化ユニット56は、コンテキスト適応型可変長コーディング(CAVLC)、コンテキスト適応型バイナリ算術コーディング(CABAC)、シンタックスベースコンテキスト適応型バイナリ算術コーディング(SBAC)、確率間隔区分エントロピー(PIPE)コーディングまたは別のエントロピーコーディング技法を実行し得る。コンテキストベースのエントロピーコーディングの場合、コンテキストは、隣接ブロックに基づき得る。エントロピー符号化ユニット56によるエントロピーコーディングに続いて、符号化されたビットストリームは、別のデバイス(たとえば、ビデオデコーダ30)に送信され、または後の送信もしくは取出のためにアーカイブされ得る。
[0198]逆量子化ユニット58および逆変換ユニット60は、たとえば、参照ブロックとして後で使用できるように、ピクセル領域で残差ブロックを再構築するために、それぞれ、逆量子化と、逆変換とを適用する。動き補償ユニット44は、残差ブロックを参照ピクチャメモリ64のフレームのうちの1つの予測ブロックに加算することによって参照ブロックを計算し得る。動き補償ユニット44はまた、再構成された残差ブロックに1つまたは複数の補間フィルタを適用して、動き推定において使用するためのサブ整数ピクセル値を計算し得る。加算器62は、再構成された残差ブロックを、動き補償ユニット44によって生成された動き補償予測ブロックに加算して、参照ピクチャメモリ64に記憶するための再構成されたビデオブロックを生成する。再構成されたビデオブロックは、動き推定ユニット42および動き補償ユニット44によって、後続のビデオフレーム中のブロックをインターコーディングするために参照ブロックとして使用され得る。
[0199]図3は、ビデオコーディング規格の拡張に従ってコーディングされたビデオデータをトランスポートするための技法を実装し得るビデオデコーダ30の一例を示すブロック図である。図3の例では、ビデオデコーダ30は、エントロピー復号ユニット70と、動き補償ユニット72と、イントラ予測ユニット74と、逆量子化ユニット76と、逆変換ユニット78と、参照ピクチャメモリ82と、加算器80とを含む。ビデオデコーダ30は、いくつかの例では、ビデオエンコーダ20(図2)に関して説明した符号化パスとは概して逆の復号パスを実施し得る。動き補償ユニット72は、エントロピー復号ユニット70から受信された動きベクトルに基づいて、予測データを生成し得、イントラ予測ユニット74は、エントロピー復号ユニット70から受信されたイントラ予測モードインジケータに基づいて、予測データを生成し得る。
[0200]復号プロセスの間、ビデオデコーダ30は、符号化ビデオスライスのビデオブロックおよび関連付けられたシンタックス要素を表す符号化ビットストリームをビデオエンコーダ20から受信する。ビデオデコーダ30のエントロピー復号ユニット70は、量子化された係数と、動きベクトルまたはイントラ予測モードインジケータと、他のシンタックス要素とを生成するために、ビットストリームをエントロピー復号する。エントロピー復号ユニット70は、動きベクトルと他のシンタックス要素とを動き補償ユニット72に転送する。ビデオデコーダ30は、ビデオスライスレベルおよび/またはビデオブロックレベルでシンタックス要素を受信し得る。
[0201]ビデオスライスがイントラコード化(I)スライスとしてコーディングされるとき、イントラ予測ユニット74は、シグナリングされたイントラ予測モードと、現在フレームまたはピクチャの、前に復号されたブロックからのデータとに基づいて、現在ビデオスライスのビデオブロックのための予測データを生成し得る。ビデオフレームがインターコード化(すなわち、BまたはP)スライスとしてコーディングされるとき、動き補償ユニット72は、エントロピー復号ユニット70から受信された動きベクトルと他のシンタックス要素とに基づいて、現在ビデオスライスのビデオブロックに関する予測ブロックを生成する。予測ブロックは、参照ピクチャリストのうちの1つの中の参照ピクチャのうちの1つから生成され得る。ビデオデコーダ30は、参照ピクチャメモリ82に記憶された参照ピクチャに基づくデフォルトの構成技法を使用して参照フレームリストのリスト0およびリスト1を構成し得る。
[0202]動き補償ユニット72は、動きベクトルと他のシンタックス要素とをパースすることによって現在ビデオスライスのビデオブロックについての予測情報を決定し、復号されている現在ビデオブロックのための予測ブロックを生成するために予測情報を使用する。たとえば、動き補償ユニット72は、ビデオスライスのビデオブロックをコーディングするために使用される予測モード(たとえば、イントラ予測またはインター予測)と、インター予測スライスタイプ(たとえば、BスライスまたはPスライス)と、スライスの参照ピクチャリストのうちの1つまたは複数のための構成情報と、スライスの各インター符号化ビデオブロックのための動きベクトルと、スライスの各インターコード化ビデオブロックのためのインター予測ステータスと、現在ビデオスライス中のビデオブロックを復号するための他の情報とを決定するために、受信されたシンタックス要素のいくつかを使用する。
[0203]動き補償ユニット72はまた、補間フィルタに基づいて補間を実行し得る。動き補償ユニット72は、参照ブロックのサブ整数ピクセルのための補間された値を計算するために、ビデオブロックの符号化中にビデオエンコーダ20によって使用された補間フィルタを使用し得る。この場合、動き補償ユニット72は、受信されたシンタックス要素からビデオエンコーダ20によって使用された補間フィルタを決定し、その補間フィルタを使用して予測ブロックを生成し得る。
[0204]いくつかの例では、動き補償ユニット72は、レイヤ間予測を実行するとき、たとえば、エンハンスメントレイヤ中のブロックが拡張されているベースレイヤ中のブロックと同じまたは実質的に同じ位置にあるスケーラビリティ次元にエンハンスメントレイヤが対応するとき、ブロックの0動きベクトル予測を実行し得る。そのようなスケーラビリティ次元は、たとえば、クロマビット深度、色フォーマット、色域、PSNRなどを含み得る。代替的に、動き補償ユニット72は、1つまたは複数の参照ビュー(たとえば、ベースビュー)から従属ビューのブロックを予測するために視差動きベクトルを使用し得る。ビューがレイヤの一例であることを理解されたい。すなわち、エンハンスメントレイヤがビューであるとき、スケーラビリティ次元は、(たとえば、閲覧者に3次元効果を生成するためのデータを与えるために)ビュー次元に対応し得る。
[0205]逆量子化ユニット76は、ビットストリーム内で提供され、エントロピー復号ユニット70によって復号された、量子化変換係数を逆量子化(inverse quantize)、すなわち、逆量子化(de-quantize)する。逆量子化プロセスは、量子化の程度を決定し、同様に、適用されるべき逆量子化の程度を決定するための、ビデオスライス中の各ビデオブロックに関してビデオデコーダ30によって計算される量子化パラメータQPYの使用を含み得る。逆変換ユニット78は、ピクセル領域において残差ブロックを生成するために、逆変換、たとえば、逆DCT、逆整数変換、または概念的に同様の逆変換プロセスを変換係数に適用する。
[0206]動き補償ユニット72が、動きベクトルおよび他のシンタックス要素に基づいて現在のビデオブロックのための予測ブロックを生成した後、ビデオデコーダ30は、逆変換ユニット78からの残差ブロックを動き補償ユニット72によって生成された対応する予測ブロックと加算することによって、復号されたビデオブロックを形成する。加算器80は、この加算演算を実施する1つまたは複数の構成要素を表す。所望される場合、ブロッキネスアーティファクトを削除するために、復号ブロックをフィルタ処理するためのデブロッキングフィルタも適用され得る。他のループフィルタ(コーディングループの中、またはコーディングループの後のいずれかにおける)も、ピクセルの遷移を平滑化し、または場合によってはビデオ品質を改善するために使用され得る。その後、所与のフレームまたはピクチャ内の復号されたビデオブロックは、参照ピクチャメモリ82内に記憶され、参照ピクチャメモリ82は、後続の動き補償のために使用される参照ピクチャを記憶する。参照ピクチャメモリ82はまた、図1のディスプレイデバイス32などのディスプレイデバイス上で後で提示するために復号ビデオを記憶する。
[0207]図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は、ボコーダとも呼ばれるボイスエンコーダを備え得る。
[0208]A/Vソースデバイス120は、図4の例では、オーディオソース122とビデオソース124とを備える。オーディオソース122は、たとえば、オーディオエンコーダ126によって符号化されるべき、キャプチャされたオーディオデータを表す電気信号を生成するマイクロフォンを備え得る。代替的に、オーディオソース122は、前に記録されたオーディオデータを記憶する記憶媒体、コンピュータシンセサイザなどのオーディオデータ生成器、またはオーディオデータの任意の他のソースを備え得る。ビデオソース124は、ビデオエンコーダ128によって符号化されるべきビデオデータを生成するビデオカメラ、前に記録されたビデオデータで符号化された記憶媒体、ビデオデータ生成ユニット、またはビデオデータの任意の他のソースを備え得る。
[0209]「生」(すなわち、コーディングされていないキャプチャまたは収集されたデータ)オーディオおよびビデオデータは、アナログまたはデジタルデータを備え得る。アナログデータは、オーディオエンコーダ126および/またはビデオエンコーダ128によって符号化される前にデジタル化され得る。オーディオソース122は、通話参加者が話している間、通話参加者からオーディオデータを取得し得、同時に、ビデオソース124は、通話参加者のビデオデータを取得し得る。他の例では、オーディオソース122は、記憶されたオーディオデータを備えるコンピュータ可読記憶媒体を備え得、ビデオソース124は、記憶されたビデオデータを備えるコンピュータ可読記憶媒体を備え得る。このようにして、本開示で説明する技法は、ライブ、ストリーミング、リアルタイムオーディオおよびビデオデータ、またはアーカイブされた、あらかじめ記録されたオーディオおよびビデオデータに適用され得る。
[0210]ビデオフレームに対応するオーディオフレームは、概して、ビデオフレーム内に含まれているビデオソース124によってキャプチャされたビデオデータと同時に、オーディオソース122によってキャプチャされたオーディオデータを含むオーディオフレームである。たとえば、通話参加者が概して話すことによってオーディオデータを生成する間、オーディオソース122はオーディオデータをキャプチャし、同時に、すなわちオーディオソース122がオーディオデータをキャプチャしている間、ビデオソース124は通話参加者のビデオデータをキャプチャする。したがって、オーディオフレームは、1つまたは複数の特定のビデオフレームに時間的に対応し得る。したがって、ビデオフレームに対応するオーディオフレームは、一般に、オーディオデータとビデオデータとが同時にキャプチャされる状況、およびオーディオフレームとビデオフレームとが、それぞれ、同時にキャプチャされたオーディオデータとビデオデータとを備える状況に対応する。
[0211]いくつかの例では、オーディオエンコーダ126は、符号化オーディオフレームのオーディオデータが記録された時間を表す、各符号化オーディオフレームにおけるタイムスタンプを符号化し得、同様に、ビデオエンコーダ128は、符号化ビデオフレームのビデオデータが記録された時間を表す、各符号化ビデオフレームにおけるタイムスタンプを符号化し得る。そのような例では、ビデオフレームに対応するオーディオフレームは、タイムスタンプを備えるオーディオフレームと、同じタイムスタンプを備えるビデオフレームとを備え得る。A/Vソースデバイス120は、オーディオエンコーダ126および/またはビデオエンコーダ128がそこからタイムスタンプを生成し得るか、あるいはオーディオソース122およびビデオソース124がオーディオおよびビデオデータをそれぞれタイムスタンプに関連付けるために使用し得る、内部クロックを含み得る。
[0212]いくつかの例では、オーディオソース122は、オーディオデータが記録された時間に対応するデータをオーディオエンコーダ126に送り得、ビデオソース124は、ビデオデータが記録された時間に対応するデータをビデオエンコーダ128に送り得る。いくつかの例では、オーディオエンコーダ126は、必ずしもオーディオデータが記録された絶対時刻を示すことなしに、符号化オーディオデータの相対的時間順序を示すために、符号化オーディオデータ中のシーケンス識別子を符号化し得、同様に、ビデオエンコーダ128も、符号化ビデオデータの相対的時間順序を示すためにシーケンス識別子を使用し得る。同様に、いくつかの例では、シーケンス識別子は、タイムスタンプにマッピングされるか、または他の方法でタイムスタンプと相関させられ得る。
[0213]本開示の技法は、概して、符号化マルチメディア(たとえば、オーディオおよび/またはビデオ)データのトランスポートと、トランスポートされたマルチメディアデータの受信ならびに後続の解釈および復号とを対象とする。本開示の技法は、特にマルチビュービデオコーディング(MVC)データ、すなわち複数のビューを備えるビデオデータのトランスポートに適用可能である。図4の例に示すように、ビデオソース124はシーンの複数のビューをビデオエンコーダ128に与え得る。マルチビューコーディングは、立体視または自動立体視3次元ディスプレイなど、3次元ディスプレイによって使用されるべき3次元ビデオデータを生成するために有用であり得る。
[0214]A/Vソースデバイス120は、A/V宛先デバイス140に「サービス」を提供し得る。サービスは、概して、マルチビューデータの利用可能なビューのサブセットに対応する。たとえば、マルチビューデータは、0から7まで順序付けられた8つのビューについて利用可能であり得る。あるサービスは、2つのビューを有するステレオビデオに対応し得るが、別のサービスは4つのビューに対応し得、さらに別のサービスは8つのビューすべてに対応し得る。概して、サービスは、利用可能なビューの任意の組合せ(すなわち、任意のサブセット)に対応する。サービスはまた、利用可能なビューならびにオーディオデータの組合せに対応し得る。A/Vソースデバイス120が、A/Vソースデバイス120によって提供されるサービスごとに動作点記述子をさらに与え得るように、動作点がサービスに対応し得る。
[0215]A/Vソースデバイス120は、本開示の技法に従って、ビューのサブセットに対応するサービスを提供することができる。概して、ビューは、「view_id」とも呼ばれるビュー識別子によって表される。ビュー識別子は、概して、ビューを識別するために使用され得るシンタックス要素を備える。ビューが符号化されるとき、MVCエンコーダはビューのview_idを与える。view_idは、MVCデコーダによってビュー間予測(inter-view prediction)のために使用されるか、または他のユニットによって他の目的、たとえばレンダリングのために使用され得る。
[0216]ビュー間予測は、フレームのMVCビデオデータを、共通の時間ロケーションにおける1つまたは複数のフレームを参照して、異なるビューの符号化フレームとして符号化するための技法である。概して、MVCビデオデータの符号化フレームは、空間的に、時間的に、および/または共通の時間ロケーションにおける他のビューのフレームを参照して、予測符号化され得る。したがって、他のビューがそこから予測される参照ビューは、概して、参照ビューを復号するときに、復号された参照ビューが参照のために使用され得るように、参照ビューが参照として働くビューの前に復号される。復号順序は必ずしもview_idの順序に対応しない。したがって、ビューの復号順序はビュー順序インデックスを使用して記述される。ビュー順序インデックスは、アクセスユニット中の対応するビュー構成要素の復号順序を示すインデックスである。
[0217]各個のデータストリームは(オーディオかビデオかにかかわらず)エレメンタリストリームと呼ばれる。エレメンタリストリームは、デジタル的にコーディングされた(場合によっては圧縮された)プログラムの単一の構成要素である。たとえば、プログラムのコーディングされたビデオ部分またはコーディングされたオーディオ部分はエレメンタリストリームであり得る。エレメンタリストリームは、プログラムストリームまたはトランスポートストリームに多重化される前に、パケット化エレメンタリストリーム(PES)に変換され得る。同じプログラム内では、1つのエレメンタリストリームに属するPESパケットを別のものから区別するためにストリームIDが使用される。エレメンタリストリームの基本データ単位はパケット化されたエレメンタリストリーム(PES)パケットである。したがって、MVCビデオデータの各ビューはそれぞれのエレメンタリストリームに対応する。同様に、オーディオデータは1つまたは複数のそれぞれのエレメンタリストリームに対応する。
[0218]MVCコード化ビデオシーケンスは、各々がエレメンタリストリームであるいくつかのサブビットストリームに分離され得る。各サブビットストリームは、MVC view_idサブセットを使用して識別され得る。各MVC view_idサブセットの概念に基づいて、MVCビデオサブビットストリームが定義される。MVCビデオサブビットストリームは、MVC view_idサブセットに記載されているビューのNALユニットを含んでいる。プログラムストリームは、概して、エレメンタリストリームのものであるNALユニットのみを含んでいる。それはまた、2つのエレメンタリストリームが同じビューを含んでいることができないように設計されている。
[0219]図4の例では、マルチプレクサ130は、ビデオエンコーダ128からビデオデータを備えるエレメンタリストリームを受信し、オーディオエンコーダ126からオーディオデータを備えるエレメンタリストリームを受信する。いくつかの例では、ビデオエンコーダ128およびオーディオエンコーダ126は各々、符号化データからPESパケットを形成するためのパケッタイザ(packetizers)を含み得る。他の例では、ビデオエンコーダ128およびオーディオエンコーダ126はそれぞれ、符号化データからPESパケットを形成するためのそれぞれのパケッタイザとインターフェースし得る。さらに他の例では、マルチプレクサ130は、符号化オーディオデータと符号化ビデオデータとからPESパケットを形成するためのパケッタイザを含み得る。
[0220]本開示で使用する「プログラム」は、オーディオデータとビデオデータとの組合せ、たとえば、A/Vソースデバイス120のサービスによって配信されたオーディオエレメンタリストリームと利用可能なビューのサブセットとを備え得る。各PESパケットは、PESパケットが属するエレメンタリストリームを識別するstream_idを含む。マルチプレクサ130は、エレメンタリストリームを構成プログラムストリームまたはトランスポートストリームにアセンブルすることを担当する。プログラムストリームとトランスポートストリームとは、異なるアプリケーションをターゲットにする2つの代替多重である。
[0221]概して、プログラムストリームは1つのプログラムのデータを含み、トランスポートストリームは1つまたは複数のプログラムのデータを含み得る。マルチプレクサ130は、提供されているサービス、ストリームが渡される媒体、送られるべきプログラムの数、または他の考慮事項に基づいて、プログラムストリームまたはトランスポートストリームのいずれかあるいは両方を符号化し得る。たとえば、記憶媒体中のビデオデータが符号化されるべきであるときは、マルチプレクサ130はプログラムストリームを形成する可能性がより高くなり得、ビデオデータがネットワークを介してストリーミングされるか、ブロードキャストされるか、またはビデオテレフォニーの一部として送られるべきであるときは、マルチプレクサ130はトランスポートストリームを使用する可能性がより高くなり得る。
[0222]マルチプレクサ130は、デジタルストレージサービスからの単一のプログラムの記憶および表示のためにプログラムストリームを使用することのほうを優先してバイアスされ得る。プログラムストリームはむしろ誤りが起こりやすいので、プログラムストリームは、誤りのない環境、または誤りがより起こりにくい環境での使用を対象とする。プログラムストリームは、それに属するエレメンタリストリームを備えるにすぎず、通常、可変長さのパケットを含んでいる。プログラムストリームでは、寄与しているエレメンタリストリームから導出されたPESパケットが「パック」に編成される。パックは、パックヘッダと、随意のシステムヘッダと、寄与しているエレメンタリストリームのいずれかから取られる任意の数のPESパケットとを任意の順序で備える。システムヘッダは、プログラムストリームの最大データレート、寄与しているビデオおよびオーディオエレメンタリストリームの数、さらなるタイミング情報、または他の情報など、プログラムストリームの特性の概要を含んでいる。デコーダは、デコーダがプログラムストリームを復号することが可能か否かを決定するために、システムヘッダ中に含まれている情報を使用し得る。
[0223]マルチプレクサ130は、潜在的に誤りを起こしやすいチャネルを介した複数のプログラムの同時配信のためにトランスポートストリームを使用し得る。トランスポートストリームは、単一のトランスポートストリームが多くの独立したプログラムに適応することができるように、ブロードキャストなどのマルチプログラムアプリケーションのために考案された多重である。トランスポートストリームは、トランスポートパケットの各々が長さ188バイトである、トランスポートパケットの連続を備え得る。短い、固定長パケットの使用により、トランスポートストリームはプログラムストリームよりも誤りが起こりにくくなる。さらに、各長さ188バイトのトランスポートパケットは、リードソロモン符号化などの標準誤り防止プロセスを通してパケットを処理することによって追加の誤り保護を与えられ得る。トランスポートストリームの誤り耐性の改善は、たとえば、ブロードキャスト環境において発見されるべき、誤りを起こしやすいチャネルを克服する可能性がより高いことを意味する。
[0224]トランスポートストリームは、その誤り耐性の向上と多くの同時プログラムを搬送する能力とにより、プログラムストリームよりも良好であるように見えることがある。ただし、トランスポートストリームは、プログラムストリームよりもさらに高度な多重であり、したがって、プログラムストリームよりも作成がより困難であり、多重分離がより複雑である。トランスポートパケットの最初のバイトは、0x47の値(16進値47、2進値「01000111」、10進値71)を有する同期バイトであり得る。単一のトランスポートストリームは多くの異なるプログラムを搬送し得、各プログラムは多くのパケット化エレメンタリストリームを備える。マルチプレクサ130は、1つのエレメンタリストリームのデータを含んでいるトランスポートパケットを、他のエレメンタリストリームのデータを搬送しているものと区別するために13ビットパケット識別子(PID)フィールドを使用し得る。各エレメンタリストリームが一意のPID値を与えられることを保証することは、マルチプレクサの責任である。トランスポートパケットの最後のバイトは連続性カウントフィールドであり得る。マルチプレクサ130は、同じエレメンタリストリームに属する連続するトランスポートパケット間で連続性カウントフィールドの値を増分する。これは、A/V宛先デバイス140など、宛先デバイスのデコーダまたは他のユニットがトランスポートパケットの損失または利得を検出し、他の場合はそのようなイベントから生じ得る誤りを願わくは隠匿することを可能にする。
[0225]マルチプレクサ130は、オーディオエンコーダ126とビデオエンコーダ128とからプログラムのエレメンタリストリームのPESパケットを受信し、PESパケットから対応するネットワークアブストラクションレイヤ(NAL)ユニットを形成する。H.264/AVC(Advanced Video Coding)の例では、コード化ビデオセグメントは、ビデオテレフォニー、ストレージ、ブロードキャスト、またはストリーミングなどの適用例に対処する「ネットワークフレンドリーな」ビデオ表現を与えるNALユニットに編成される。NALユニットは、ビデオコーディングレイヤ(VCL)NALユニットと非VCL NALユニットとに分類され得る。VCLユニットは、コア圧縮エンジンを含んでおり、ブロック、マクロブロック、および/またはスライスレベルを備え得る。他のNALユニットは非VCL NALユニットである。
[0226]マルチプレクサ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ユニットが保持される。
[0227]NALヘッダのpriority_id要素は、単純なワンパス(one-path)ビットストリーム適合プロセスのために使用され得る。temporal_id要素は、異なる時間レベルが異なるフレームレートに対応する場合、対応するNALユニットの時間レベルを指定するために使用され得る。
[0228]anchor_pic_flag要素は、ピクチャがアンカーピクチャであるか非アンカーピクチャであるかを示し得る。アンカーピクチャと出力順序(すなわち、表示順序)でそれに続くすべてのピクチャとは、復号順序(すなわち、ビットストリーム順序)で前のピクチャを復号することなしに正しく復号され得、したがってランダムアクセスポイントとして使用され得る。アンカーピクチャと非アンカーピクチャとは異なる依存性を有することができ、その両方はシーケンスパラメータセット中でシグナリングされる。他のフラグについては、本章の以下のセクションで説明され、使用される。そのようなアンカーピクチャは、開いたGOP(Group Of Pictures)アクセスポイントと呼ばれることもあり、non_idr_flag要素が0に等しいとき、閉じたGOPアクセスポイントもサポートされる。non_idr_flag要素は、ピクチャが瞬時デコーダリフレッシュ(IDR:instantaneous decoder refresh)であるかビューIDR(V−IDR)ピクチャであるかを示す。概して、IDRピクチャと出力順序またはビットストリーム順序でそれに続くすべてのピクチャとは、復号順序または表示順序のいずれかで前のピクチャを復号することなしに正しく復号され得る。
[0229]view_id要素は、MVCデコーダ内でデータ対話性のために、たとえば、ビュー間予測のために、およびデコーダ外で、たとえば、レンダリングのために使用され得る、ビューを識別するために使用され得るシンタックス情報を備え得る。inter_view_flag要素は、対応するNALユニットが他のビューによってビュー間予測のために使用されるかどうかを指定し得る。AVCに準拠し得る、ベースビューの4バイトNALユニットヘッダ情報を搬送するために、MVCにおいてプレフィックスNALユニットが定義される。MVCのコンテキストにおいて、ベースビューアクセスユニットは、ビューの現在時間インスタンスのVCL NALユニット、ならびにNALユニットヘッドのみを含んでいるプレフィックスNALユニットを含む。H.264/AVCデコーダはプレフィックスNALユニットを無視し得る。
[0230]そのペイロード中にビデオデータを含むNALユニットは、様々なグラニュラリティレベルのビデオデータを備え得る。たとえば、NALユニットは、ビデオデータのブロック、マクロブロック、複数のマクロブロック、ビデオデータのスライス、またはビデオデータのフレーム全体を備え得る。マルチプレクサ130は、ビデオエンコーダ128から符号化ビデオデータをエレメンタリストリームのPESパケットの形態で受信し得る。マルチプレクサ130は、stream_idを、たとえば、データベース中の、あるいはプログラムマップテーブル(PMT)またはプログラムストリームマップ(PSM)など、他のデータ構造中の対応するプログラムにマッピングすることによって、各エレメンタリストリームを対応するプログラムに関連付け得る。
[0231]マルチプレクサ130はまた、複数のNALユニットからアクセスユニットをアセンブルし得る。概して、アクセスユニットは、ビデオデータのフレームを表すための1つまたは複数のNALユニット、そのフレームに対応するオーディオデータが利用可能なとき、そのようなオーディオデータも備え得る。アクセスユニットは、概して、1つの出力時間インスタンスにわたるすべてのNALユニット、たとえば1つの時間インスタンスにわたるすべてのオーディオおよびビデオデータを含む。たとえば、各ビューが120フレーム毎秒(fps)のフレームレートを有する場合、各時間インスタンスは0.05秒の時間間隔に対応し得る。この時間間隔中に、同じアクセスユニット(同じ時間インスタンス)のすべてのビューの固有のフレームは同時にレンダリングされ得る。H.264/AVCに対応する例では、アクセスユニットは、1次コード化ピクチャとして提示され得る、1つの時間インスタンス中のコード化ピクチャを備え得る。したがって、アクセスユニットは、共通の時間インスタンスのすべてのオーディオおよびビデオフレーム、たとえば、時間Xに対応するすべてのビューを備え得る。本開示はまた、特定のビューの符号化ピクチャを「ビュー構成要素」と呼ぶ。すなわち、ビュー構成要素は、特定の時間における特定のビューの符号化ピクチャ(またはフレーム)を備え得る。したがって、アクセスユニットは、共通の時間インスタンスのすべてのビュー構成要素を備えるものと定義され得る。アクセスユニットの復号順序は、必ずしも出力または表示順序と同じである必要はない。
[0232]マルチプレクサ130はまた、プログラムに関するデータをNALユニット中に埋め込み得る。たとえば、マルチプレクサ130は、プログラムマップテーブル(PMT)またはプログラムストリームマップ(PSM)を備えるNALユニットを作成し得る。概して、PMTはトランスポートストリームを記述するために使用され、PSMはプログラムストリームを記述するために使用される。図2の例に関して以下でより詳細に説明するように、マルチプレクサ130は、オーディオエンコーダ126とビデオエンコーダ128とから受信されたエレメンタリストリームをプログラムに関連付け、それに応じてそれぞれのトランスポートストリームおよび/またはプログラムストリームに関連付けるデータストレージユニットを備えるかあるいはそれと対話し得る。
[0233]多くのビデオコーディング規格の場合と同様に、H.264/AVCおよびHEVCは、誤りのないビットストリームのシンタックスと、セマンティクスと、復号プロセスとを定義し、そのいずれも特定のプロファイルまたはレベルに準拠する。これらの規格は、エンコーダを指定しないが、エンコーダは、生成されたビットストリームがデコーダの規格に準拠することを保証することを課される。ビデオコーディング規格のコンテキストでは、「プロファイル」は、アルゴリズム、機能、またはツール、およびそれらに適用される制約のサブセットに対応する。たとえば、H.264規格によって定義される「プロファイル」は、H.264規格によって指定されたビットストリームシンタックス全体のサブセットである。「レベル」は、たとえば、ピクチャの解像度、ビットレート、およびマクロブロック(MB)処理レートに関係するデコーダメモリおよび計算など、デコーダリソース消費の制限に対応する。
[0234]H.264規格は、たとえば、所与のプロファイルのシンタックスによって課される限界内で、復号ピクチャの指定されたサイズなど、ビットストリーム中のシンタックス要素がとる値に応じて、エンコーダおよびデコーダのパフォーマンスの大きい変動を必要とする可能性が依然としてあることを認識している。H.264規格は、多くの適用例において、特定のプロファイル内でシンタックスのすべての仮定的使用を処理することが可能なデコーダを実装することが現実的でもなく、経済的でもないことをさらに認める。したがって、H.264規格は、ビットストリーム中のシンタックス要素の値に課された制約の規定されたセットとして「レベル」を定義する。これらの制約は、値に関する単純な制限であり得る。代替的に、これらの制約は、値の演算の組合せ(たとえば、ピクチャの幅×ピクチャの高さ×毎秒復号されるピクチャの数)に関する制約の形態をとり得る。H.264規格は、個々の実装形態が、サポートされるプロファイルごとに異なるレベルをサポートし得ることをさらに規定する。
[0235]プロファイルに準拠するデコーダは、通常、プロファイル中で定義されたすべての機能をサポートする。たとえば、コーディング機能として、Bピクチャコーディングは、H.264/AVCのベースラインプロファイルではサポートされないが、H.264/AVCの他のプロファイルではサポートされる。レベルに準拠するデコーダは、レベルにおいて定義された制限を超えてリソースを必要としない任意のビットストリームを復号することが可能である必要がある。プロファイルおよびレベルの定義は、解釈可能性のために役立ち得る。たとえば、ビデオ送信中に、プロファイル定義とレベル定義のペアが全送信セッションについてネゴシエートされ、同意され得る。より具体的には、H.264/AVCでは、レベルは、たとえば、処理される必要があるマクロブロックの数に関する制限と、復号されたピクチャバッファ(DPB)のサイズと、コーディングされたピクチャバッファ(CPB)のサイズと、垂直方向の動きベクトルの範囲と、2つの連続するMBごとの動きベクトルの最大数と、Bブロックが8×8ピクセル未満のサブマクロブロックパーティションを有することができるかどうかとを定義し得る。このようにして、デコーダは、デコーダがビットストリームを適切に復号することが可能であるかどうかを決定し得る。
[0236]パラメータセットは、一般に、シーケンスパラメータセット(SPS)中のシーケンスレイヤヘッダ情報とピクチャパラメータセット(PPS)中のまれに変化するピクチャレイヤヘッダ情報とを含む。パラメータセットがある場合、このまれに変化する情報をシーケンスごとまたはピクチャごとに繰り返す必要はなく、したがってコーディング効率が改善され得る。さらに、パラメータセットの使用はヘッダ情報の帯域外送信を可能にし、誤り耐性を達成するための冗長送信の必要を回避し得る。帯域外送信では、他のNALユニットとは異なるチャネル上でパラメータセットNALユニットが送信される。
[0237]MPEG−2システム規格は、「記述子」によってシステムの拡張を可能にする。PMTとPSMの両方は、1つまたは複数の記述子が挿入され得る記述子ループを含む。概して、記述子は、プログラムおよび/またはプログラム要素の定義を拡張するために使用され得るデータ構造を備え得る。本開示は、本開示の技法を実行するための動作点記述子について説明する。概して、本開示の動作点記述子は、動作点のレンダリング能力と、復号能力と、ビットレートとを記述することによって、従来のMVC拡張記述子を拡張する。A/V宛先デバイス140などの宛先デバイスは、復号されるべきビットストリームの動作点のうちの1つを選択するために、動作点ごとに動作点記述子を使用し得る。
[0238]各PMTまたはPSMは、動作点の特性を記述する動作点記述子を含み得る。たとえば、ソースデバイス120は、クライアント/宛先デバイス140のレンダリング能力を記述するレンダリング能力値を与えるために動作点記述子を与え得る。クライアントデバイス140が動作点のビデオデータを適切にレンダリング(たとえば、表示)するために、クライアントデバイス140は、レンダリング能力値によってシグナリングされたレンダリング能力を満たす必要がある。レンダリング能力値は、たとえば、表示されるべきビューの数(たとえば、レンダリングの対象となるビューの数)および/またはビューのビデオデータのフレームレートを記述し得る。したがって、クライアントデバイス140は、クライアントデバイス140のビデオ出力144が、動作点記述子によって指定されたフレームレートで、動作点のその数のビューを表示することができるとき、レンダリング能力が満たされると決定し得る。
[0239]マルチプレクサ30が、受信したデータからNALユニットおよび/またはアクセスユニットをアセンブルした後、マルチプレクサ30はユニットを出力のために出力インターフェース132に渡す。出力インターフェース132は、たとえば、送信機、トランシーバ、たとえば、オプティカルドライブ、磁気メディアドライブ(たとえば、フロッピー(登録商標)ドライブ)など、コンピュータ可読媒体にデータを書き込むためのデバイス、ユニバーサルシリアルバス(USB)ポート、ネットワークインターフェース、または他の出力インターフェースを備え得る。出力インターフェース132は、NALユニットまたはアクセスユニットを、たとえば、送信チャネル、磁気メディア、光メディア、メモリ、フラッシュドライブ、または他のコンピュータ可読媒体など、コンピュータ可読媒体134に出力する。
[0240]最終的に、入力インターフェース136はコンピュータ可読媒体134からデータを取り出す。入力インターフェース136は、たとえば、オプティカルドライブ、磁気メディアドライブ、USBポート、受信機、トランシーバ、または他のコンピュータ可読媒体インターフェースを備え得る。入力インターフェース136は、NALユニットまたはアクセスユニットをデマルチプレクサ138に与え得る。デマルチプレクサ138は、トランスポートストリームまたはプログラムストリームを構成PESストリームに多重分離し、符号化データを取り出すためにPESストリームをパケット化解除し、たとえば、ストリームのPESパケットヘッダによって示されるように、符号化データがオーディオまたはビデオストリームの一部であるかどうかに応じて、符号化データをオーディオデコーダ146またはビデオデコーダ148に送り得る。オーディオデコーダ146は、符号化オーディオデータを復号し、復号オーディオデータをオーディオ出力142に送り、ビデオデコーダ148は、符号化ビデオデータを復号し、ストリームの複数のビューを含み得る復号ビデオデータをビデオ出力144に送る。ビデオ出力144は、シーンの複数のビュー、たとえばシーンの各ビューを同時に提示する立体視または自動立体視ディスプレイを使用するディスプレイを備え得る。
[0241]特に、デマルチプレクサ138は、受信したビットストリームの動作点を選択し得る。たとえば、デマルチプレクサ138は、A/V宛先デバイス140によって使用されるべき適切な動作点を選択するために、ビットストリームの動作点の特性を比較し得る。概して、デマルチプレクサ138は、ビデオデコーダ148によって復号され得る、ユーザにとって最高品質の閲覧エクスペリエンスを与える動作点の1つを選択しようと試み得る。たとえば、デマルチプレクサ138は、ビデオデコーダ148のレンダリング能力および復号能力を、ビットストリームの動作点記述子によってシグナリングされた、示唆されたレンダリング能力および復号能力と比較し得る。デマルチプレクサ138が決定するオブザ動作点はビデオデコーダ148によって適切に復号され得、デマルチプレクサ138は最高品質ビデオデータ(たとえば、最高フレームレートおよび/またはビットレート)を与える動作点を選択し得る。他の例では、デマルチプレクサ138は、たとえば、電力消費量など、他の考慮事項に基づいて、サポートされる動作点の1つを選択し得る。
[0242]概して、システム100は、図1のシステム10に実質的に対応し得る。同様に、マルチプレクサ130は、図1のマルチプレクサ21に実質的に対応し得、デマルチプレクサ138は、図1のデマルチプレクサ29に実質的に対応し得、システム100の他の同様に名前がつけられた構成要素は、図1の同様に名前がつけられた構成要素に実質的に対応し得る。したがって、マルチプレクサ130およびデマルチプレクサ138は、本開示で説明する様々な技法のいずれかを、単独でまたは任意の組合せで実行するように構成され得る。
[0243]以下に、いくつかの例示的な使用事例について説明する。階層記述子と階層拡張記述子との使用を以下の例に示す。図5は、4つのエレメンタリストリーム中で搬送されるL−HEVCビットストリームを示す一例を示す概念図である。たとえば、図5に示すように4つのエレメンタリストリーム中で搬送されるL−HEVCビットストリームを含んでいるプログラムを仮定すると、各エレメンタリストリームについての依存情報は、次のようにシグナリングされる。
a. esAがベースレイヤエレメンタリストリームであることを記述するために、esAのための階層記述子が存在しなければならない。
b. esBがesAへの時間依存を有することを記述するために、esBのための階層記述子が存在しなければならない。
c. esCがesAへのレイヤ依存を有することを記述するために、esCのための階層拡張記述子が存在しなければならない。
d. 以下を記述するために、esDのための階層拡張記述子が存在しなければならない。
i. esDがesBへのレイヤ依存を有する。
ii. esDが、esCへの時間依存を有する。
[0244]階層記述子と階層拡張記述子との重複する使用を回避することの一代替としてまたはそれに追加して、以下が利用され得る。
a. HEVCコード化ピクチャを搬送する各エレメンタリストリームについて、1つ(たとえば、正確に1つ)の記述子、階層記述子または階層拡張記述子のいずれか、が存在し、エレメンタリストリームに関連付けられ得る(一例では、そうでなければならない)。
b. エレメンタリストリームが正確に1つの他の参照エレメンタリストリームへの依存(たとえば、時間、空間、マルチビューなど)を有する場合、階層記述子が存在し、エレメンタリストリームに関連付けられ得る(一例では、そうでなければならない)。現在のエレメンタリストリームの参照エレメンタリストリームは、現在のエレメンタリストリームによる直接依存するエレメンタリストリームである。
c. エレメンタリストリームが2つ以上の参照エレメンタリストリームへの依存を有する場合、階層拡張記述子が存在し、エレメンタリストリームに関連付けられ得る(一例では、そうでなければならない)。
[0245]図6は、エレメンタリストリーム間の依存の別の例である。図5と同様に、4つのエレメンタリストリーム中で搬送されるL−HEVCビットストリームが示されている。図5に示した依存構造についてのこの代替または追加の例における階層記述子と階層拡張記述子との使用は、次の通りである。
a. esAがベースレイヤエレメンタリストリームであることを記述するために、esAのための階層記述子が存在しなければならない。
b. esBがesAへの時間依存を有することを記述するために、esBのための階層記述子が存在しなければならない。
c. esCがesAへのレイヤ依存を有することを記述するために、esCのための階層記述子が存在しなければならない。
d. 以下を記述するために、esDのための階層拡張記述子が存在しなければならない。
iii. esDがesBへのレイヤ依存を有する
iv. esDが、esCへの時間依存を有する。
[0246]図6中の所与の依存構造について、この代替における階層記述子と階層拡張記述子との使用は、次の通りである。
a. esAがベースレイヤエレメンタリストリームであることを記述するために、esAのための階層記述子が存在しなければならない。
b. esBがesAへの時間依存を有することを記述するために、esBのための階層記述子が存在しなければならない。
c. esCがesBへのレイヤ依存を有することを記述するために、esCのための階層記述子が存在しなければならない。
d. esDがesCへのレイヤ依存を有することを記述するために、esDのための階層記述子が存在しなければならない。
e. esEがesDへの時間依存を有することを記述するために、esEのための階層記述子が存在しなければならない。
[0247]図7に、依存構造の別の例を示す。図7(場合によっては、図6)中の所与の依存構造について、この代替における階層記述子と階層拡張記述子との使用は、次の通りである。
a. esAがベースレイヤエレメンタリストリームであることを記述するために、esAのための階層記述子が存在しなければならない。
b. esBがesAへの時間依存を有することを記述するために、esBのための階層記述子が存在しなければならない。
c. esCが単独でコーディングされたエレメンタリストリームであることを記述するために、esCのための階層記述子が存在しなければならない。
d. esDがesCへの時間依存を有することを記述するために、esDのための階層記述子が存在しなければならない。
e. 以下を記述するために、esEのための階層拡張記述子が存在しなければならない。
i. esEがesCへのレイヤ依存を有する。
ii. esEがesAへのレイヤ依存を有する。
f. 以下を記述するために、esFのための階層拡張記述子が存在しなければならない。
iii. esFが、esEへの時間依存を有する。
iv. esFがesDへのレイヤ依存を有する。
v. esFがesBへのレイヤ依存を有する。
[0248]階層記述子と階層拡張記述子との重複する使用を回避するための第2の代替または追加の例では、以下が利用され得る。
a. エレメンタリストリームが時間依存を有する場合、階層記述子が存在し、エレメンタリストリームに関連付けられなければならない。
b. エレメンタリストリームが正確に1つの他の参照エレメンタリストリームへのレイヤ依存(たとえば、空間、マルチビュー、品質)を有する場合、階層記述子が存在し、エレメンタリストリームに関連付けられなければならない。
c. エレメンタリストリームが2つ以上の参照エレメンタリストリームへのレイヤ依存を有する場合、階層拡張記述子が存在し、エレメンタリストリームに関連付けられなければならない。
[0249]図5(および場合によっては、図6または図7)に示した依存構造についてのこの代替または追加の例における階層記述子と階層拡張記述子との使用は、次の通りである。
a. esAがベースレイヤエレメンタリストリームであることを記述するために、esAのための階層記述子が存在しなければならない。
b. esBがesAへの時間依存を有することを記述するために、esBのための階層記述子が存在しなければならない。
c. esCがesAへのレイヤ依存を有することを記述するために、esCのための階層記述子が存在しなければならない。
d. esDがesCへの時間依存を有し、esDがesBへのレイヤ依存を有することを記述するために、esDのための2つの階層記述子が存在しなければならない。
[0250]図7(場合によっては、図5または図6)に示す依存構造についてのこの代替における階層記述子と階層拡張記述子との使用は、次の通りである。
a. esAがベースレイヤエレメンタリストリームであることを記述するために、esAのための階層記述子が存在しなければならない。
b. esBがesAへの時間依存を有することを記述するために、esBのための階層記述子が存在しなければならない。
c. esCが単独でコーディングされたエレメンタリストリームであることを記述するために、esCのための階層記述子が存在しなければならない。
d. esDがesCへの時間依存を有することを記述するために、esDのための階層記述子が存在しなければならない。
e. 以下を記述するために、esEのための階層拡張記述子が存在しなければならない。
v. esEがesCへのレイヤ依存を有する。
vi. esEがesAへのレイヤ依存を有する。
f. esFがesEへの時間依存を有することを記述するために、esFのための階層記述子が存在しなければならない。
g. 以下を記述するために、esFのための階層拡張記述子が存在しなければならない。
vii. esFがesDへのレイヤ依存を有する。
viii. esFがesBへのレイヤ依存を有する。
[0251]階層記述子と階層拡張記述子との重複する使用を回避することの第3の代替または追加の例では、階層記述子のみが使用されなければならず、階層拡張記述子は除去され得ることが提案されている。
[0252]図5(場合によっては、図6または図7)に示した依存構造についてのこの代替における階層記述子の使用は、次の通りである。
a. esAがベースレイヤエレメンタリストリームであることを記述するために、esAのための階層記述子が存在しなければならない。
b. esBがesAへの時間依存を有することを記述するために、esBのための階層記述子が存在しなければならない。
c. esCがesAへのレイヤ依存を有することを記述するために、esCのための階層記述子が存在しなければならない。
d. esDがesCへの時間依存を有することを記述するために、esDのための階層記述子が存在しなければならない。
e. esDがesBへのレイヤ依存を有することを記述するために、esDのための階層記述子が存在しなければならない。
[0253]階層記述子または階層拡張記述子またはその両方の存在時に、以下の2つのオプションが提案されている。
a. オプション1:HEVCコード化ピクチャを含んでいる各エレメンタリストリームについて、依存情報を含んでいる少なくとも1つの記述子が存在しなければならない。
b. オプション2:
i. プログラムが、ストリームタイプが同じ、HEVCコード化ピクチャの2つ以上のエレメンタリストリームを含んでいるときのみ、依存情報を含んでいる記述子の存在が必須である。
ii. 依存情報を含んでいる記述子がプログラム中に存在しないとき、HEVCコード化ピクチャを含んでいるプログラム中の各エレメンタリストリームについて、エレメンタリストリームの各々のためのhierarchy_layer_indexの値は、エレメンタリストリームの第1のものに値0が与えられ、エレメンタリストリームの第2のものに値1が与えられ、エレメンタリストリームのn番目のものに値n−1が与えられるように導出される。
[0254]図5(場合によっては、図6または図7)に示した依存構造のための第2の代替または追加の例の例における階層記述子と階層拡張記述子との使用は、階層記述子または階層拡張記述子のいずれかを必要としない。エレメンタリストリームの各々は異なるタイプのものであるので、次のように推論され得るので、依存情報のための記述子をシグナリングする必要がない。
a. esAは、ベースレイヤエレメンタリストリームである
b. esBは、esAへの時間依存を有する
c. esCは、esAへのマルチビュー依存を有する
d. esDは、esCにマルチビュー依存とesBへの時間依存との両方を有する。
[0255]さらに、プログラムマップテーブル中のそれらのエレメンタリストリームの順序は、esA、esB、esCおよびesCである。
[0256]最後に、各エレメンタリストリームのhierarchy_layer_indexの値は、esAのhierarchy_layer_indexは0に等しく、esBのhierarchy_layer_indexは1に等しく、esCのhierarchy_layer_indexは2に等しく、esDのhierarchy_layer_indexは4に等しくなるように導出される。
[0257]この以下のものは、上記で説明した1つまたは複数の例示的な技法の実装形態のための例である。上記の提案を実装するために示唆されるテキストを与える。
[0258]階層拡張記述子を改善するために、extension_dimension_bitsのセマンティックを次のように更新する。イタリック体のテキストは、MPEG−2TS規格の更新を表す。
[0259]extension_dimension_bits−0に等しいnuh_layer_idをもつレイヤのプログラム要素から生じるベースレイヤからの関連するプログラム要素の可能な拡張を示す16ビットフィールド。
エンハンスメント次元へのビットの割当ては、表Amd7−4中の以下の通りである。
[0260]時間拡張のために割り当てられたビットへのインデックスの値は予約された値(たとえば、5〜15)のいずれかであり得ることに留意されたい。
[0261]階層記述子の改善のために、階層記述子中での補助レイヤ拡張のサポートのための例の実装のために以下の変更が提案されている。更新された部分はグレーに強調表示されており、[[]]は削除を示すことに留意されたい。
項2.6.6
表2−49を以下で置き換える
項2.6.7
置き換え前:
temporal_scalability_flag−1ビットフラグは、「0」に設定されると、関連するプログラム要素が、hierarchy_embedded_layer_indexによって参照されるプログラム要素から生じるビットストリームのフレームレートを拡張することを示す。このフラグの「1」の値は予約済みである。
spatial_scalability_flag−1ビットフラグは、「0」に設定されると、関連するプログラム要素が、hierarchy_embedded_layer_indexによって参照されるプログラム要素から生じるビットストリームの空間解像度を拡張することを示す。このフラグの「1」の値は予約済みである。
quality_scalability_flag−1ビットフラグは、「0」に設定されると、関連するプログラム要素が、hierarchy_embedded_layer_indexによって参照されるプログラム要素から生じるビットストリームのSNR品質または忠実度を拡張することを示す。このフラグの「1」の値は予約済みである。
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」に設定されることになる。MVCDビデオサブビットストリームの場合、このフィールドは、「9」の値(「MVCDビデオサブビットストリーム」)に設定されることになり、フラグtemporal_scalability_flag、spatial_scalability_flag、およびquality_scalability_flagは、「1」に設定されることになる。MVCDベースビューサブビットストリームの場合、このフィールドは、「15」の値に設定されることになり、フラグtemporal_scalability_flag、spatial_scalability_flagおよびquality_scalability_flagは、「1」に設定されることになる。
入替え後:
no_view_scalability_flag−1ビットフラグは、「0」に設定されると、関連するプログラム要素が、hierarchy_embedded_layer_indexによって参照されるプログラム要素から生じるビットストリームのビューの数を拡張することを示す。このフラグの「1」の値は予約済みである。
no_temporal_scalability_flag−1ビットフラグは、「0」に設定されると、関連するプログラム要素が、hierarchy_embedded_layer_indexによって参照されるプログラム要素から生じるビットストリームのフレームレートを拡張することを示す。このフラグの「1」の値は予約済みである。
no_spatial_scalability_flag−1ビットフラグは、「0」に設定されると、関連するプログラム要素が、hierarchy_embedded_layer_indexによって参照されるプログラム要素から生じるビットストリームの空間解像度を拡張することを示す。このフラグの「1」の値は予約済みである。
no_quality_scalability_flag−1ビットフラグは、「0」に設定されると、関連するプログラム要素が、hierarchy_embedded_layer_indexによって参照されるプログラム要素から生じるビットストリームのSNR品質または忠実度を拡張することを示す。このフラグの「1」の値は予約済みである。
hierarchy_type−関連する階層レイヤとそれの階層埋め込み済みレイヤの階層関係が表2−50において定義されている。スケーラビリティが2つ以上の次元において適用される場合、このフィールドは、「8」の値(「合成スケーラビリティ」)に設定されることになり、フラグno_view_scalability_flag、no_temporal_scalability_flag、no_spatial_scalability_flagおよびno_quality_scalability_flagはそれに応じて設定されることになる。MVCビデオサブビットストリームの場合、このフィールドは、「9」の値(「MVCビデオサブビットストリーム」)に設定されることになり、フラグno_view_scalability_flag、no_temporal_scalability_flag、no_spatial_scalability_flagおよびno_quality_scalability_flagは、「1」に設定されることになる。MVCベースビューサブビットストリームの場合、このフィールドは、「15」の値に設定されることになり、フラグno_view_scalability_flag、no_temporal_scalability_flag、no_spatial_scalability_flag、[[および]]no_quality_scalability_flagは、「1」に設定されることになり、no_auxiliary_flagは、「1」に設定されることになる。MVCDビデオサブビットストリームの場合、このフィールドは、「9」の値(「MVCDビデオサブビットストリーム」)に設定されることになり、フラグno_view_scalability_flag、no_temporal_scalability_flag、no_spatial_scalability_flagおよびno_quality_scalability_flagは、「1」に設定されることになる。MVCDベースビューサブビットストリームの場合、このフィールドは、「15」の値に設定されることになり、フラグno_view_scalability_flag、no_temporal_scalability_flag、no_spatial_scalability_flag、[[および]]no_quality_scalability_flagは、「1」に設定されることになり、no_auxiliary_flagは、「1」に設定されることになる。
no_auxiliary_flag−1ビットフラグは、「0」に設定されると、関連するプログラム要素が、hierarchy_embedded_layer_indexによって参照されるプログラム要素から生じる補助拡張を与えることを示す。このフラグの「1」の値は予約済みである。
表2−50において値15についての説明を、次のように置き換える。
[0262]階層記述子と階層拡張記述子との提案された使用のために、階層記述子と階層拡張記述子との重複する使用を回避する実装形態のために以下の変更が提案されている。
[0263]L−HEVC TSドラフトのセクション2.17.1の箇条書きリストの終わりに以下を追加する。
a. 0x24および0x25に等しいstream_typeをもつエレメンタリストリームごとに1つの階層記述子が存在しなければならない。
b. 0x27、0x28、0x29および0x2Aに等しいstream_typeをもつエレメンタリストリームごとに1つの階層拡張記述子が存在しなければならない。
[0264]重複することを回避する実装形態のために以下の変更が提案されている。
[0265]L−HEVC TSドラフトのセクション2.17.1の箇条書きリストの終わりに以下を追加する。
a. 0x24および0x25に等しいstream_typeをもつエレメンタリストリームごとに1つの階層記述子が存在しなければならない。
b. 0x27、0x28、0x29および0x2Aに等しいstream_typeをもつ各エレメンタリストリームについて、以下が適用される。
i. エレメンタリストリームが正確に1つの他のエレメンタリストリームを拡張する場合、1つの階層記述子を提示しなければならない。
ii. そうでない場合、1つの階層拡張記述子を提示しなければならない
[0266]階層記述子と階層拡張記述子との提案された使用の第2の代替または追加の例について、次に説明する。重複することを回避する実装形態のために以下の変更が提案されている。
[0267]L−HEVC TSドラフトのセクション2.17.1の箇条書きリストの終わりに以下を追加する。
a. 0x24に等しいstream_typeをもつエレメンタリストリームについて、15に等しいhierarchy_typeをもつ1つの階層記述子を提示しなければならない。
b. 0x25、0x28および0x29に等しいstream_typeをもつ各エレメンタリストリームについて、3に等しいhierarchy_typeをもつ1つの階層記述子が存在しなければならない。
c. 0x27、0x28、0x29および0x2Aに等しいstream_typeをもつ各エレメンタリストリームについて、以下が適用される。
i. エレメンタリストリームが正確に1つの他のエレメンタリストリームを拡張する場合、3に等しくないhierarchy_typeをもつ1つの階層記述子を提示しなければならない。
ii. そうでない場合、1つの階層拡張記述子を提示しなければならない
[0268]階層記述子と階層拡張記述子との提案された使用の第3の代替または追加。重複することを回避する実装形態のために以下の変更が提案されている。
[0269]L−HEVC TSドラフトのセクション2.17.1の箇条書きリストの終わりに以下を追加する。
a. 0x24および0x25に等しいstream_typeをもつ各エレメンタリストリームについて、1つの階層記述子を提示しなければならない。
b. 0x27、0x28、0x29または0x2Aに等しいstream_typeをもつ各エレメンタリストリームについて、1つまたは複数の階層記述子を提示しなければならない。
[0270]追加または代替として、HEVCビデオ記述子は、0x24および0x25に等しいstream_typeをもつ各エレメンタリストリームに必須であり得る。同様に、ITU−T Rec.H.222.0|ISO/IEC13818−1プログラムが、0x27、0x28、0x29または0x2Aに等しいstream_typeをもつ1つまたは複数のエレメンタリストリームを含むとき、少なくとも1つのHEVC動作点記述子は、プログラムに関連するプログラムマップテーブル中に必須であり得る。
[0271]図8は、ビデオデータの複数のレイヤの一例を示す概念図である。動作点情報がHEVC動作点記述子、たとえば、上記で説明した提案された表Amd7−1のHEVC動作点記述子とともにシグナリングされ得る一例について、図8のビデオデータに関して説明する。図8は、5つのエレメンタリストリームに区分された、階層化されたHEVCビットストリームの5つのレイヤを有するプログラムの一例を表す。各エレメンタリストリームの依存は、図8にレイヤ間の矢印によって示した通りである。依存は、いくつかの例では、階層拡張記述子のデータによって記述され得る。
[0272]限られた数のバイトを記述子が有することができるので、動作点のシグナリングは、以下に示すように、2つのHEVC動作点記述子に分割され得る。第1のHEVC動作点記述子は、この例では、最初の3つのPTL構造と最初の2つの動作点とについての情報を含んでいるが、第2のHEVC動作点記述子は、次の2つのPTL構造と次の2つの動作点とについての情報を含んでいる。
[0273]ビットを節約するために、いくつかの動作点について、prepand_dependencies[opIdx]の値が1に等しく設定され、動作点のエレメンタリストリームのリストが、階層拡張記述子中でシグナリングされる依存情報に基づいて導出され得ることに留意されたい。
[0274]図9は、本開示の技法による例示的な方法を示す流れ図である。この例では、図9の方法を、図1のデマルチプレクサ29に関して説明する。ただし、他のデバイスが、図4のデマルチプレクサ138またはソースデバイスと宛先デバイスとの間に位置するメディアアウェアネットワーク要素(MANE)など、図9の方法を実行するように構成され得ることを理解されたい。さらに、逆方法は、図1のマルチプレクサ21または図4のマルチプレクサ130などのマルチプレクサによって実行され得る。
[0275]最初に、この例では、デマルチプレクサ29は、ビットストリームから、提案された表Amd7−1に従ってHEVC動作点記述子などの記述子を抽出する(150)。デマルチプレクサ29は、次いで、記述子から1つまたは複数のプロファイル、ティア、およびレベル(PTL)構造を取り出す(152)。たとえば、PTL構造は、上記で説明した提案された表Amd7−1の「for(i=0;i<num_profile_tier_level;i++,ptlIdx++)」ループのデータに対応し得る。
[0276]デマルチプレクサ29は、エレメンタリストリーム(すなわち、レイヤ)間の依存を決定し得る(154)。依存は、HEVC動作点記述子中で、または別個の記述子中でシグナリングされ得る。たとえば、デマルチプレクサ29は、上記で説明したように、依存を示す情報を含む(たとえば、表2−49に従って)階層記述子または階層拡張記述子を抽出し得る。
[0277]デマルチプレクサ29はまた、PTL構造のうちのどれが複数の動作点の各々の各レイヤに対応するのかを決定する(156)。たとえば、デマルチプレクサ29は、上記で説明した提案された表Amd7−1の「for(j=0;j<num_layers[opIdx];j++)」ループからこの対応を決定し得る。
[0278]いくつかの例では、デマルチプレクサ29は、PTL構造の各々のPTL情報、たとえば、profile_idc[ptlIdx]、tier_flag[ptlIdx]、およびlevel_idc[ptlIdx]の値を決定するためにPTL構造を繰返し処理し得る。デマルチプレクサ29は、記述子中でシグナリングされるPTL構造の各々(すなわち、ptlIdx値のうちの1つに対応するPTL構造の各々)を表すデータ構造を形成し得る。デマルチプレクサ29は、さらにレイヤのうちの対応する1つのためのプロファイル、ティア、およびレベル情報を決定するために、レイヤのうちの対応する1つをPTL構造のうちの1つにマッピングする動作点の各々のレイヤの各々のためのPTL参照インデックスの値を取り出し得る。たとえば、提案された表Amd7−1のptl_ref_idx[opIdx][j]は、動作点「opIdx」のレイヤ「j」をPTL構造のうちの1つにマッピングする値を有するシンタックス要素の一例を表す。
[0279]さらに、デマルチプレクサ29は、動作点の各々のための出力レイヤセットを決定し得る(158)。たとえば、デマルチプレクサ29は、上記で説明した提案された表Amd7−1のtarget_ols[opIdx]シンタックス要素から、レイヤのうちのどれが動作点の各々のための出力レイヤセット中に含まれるのかを決定し得る。一例では、デマルチプレクサ29は、記述子から動作点の各々のためのtarget_ols[opIdx]シンタックス要素の値を取り出し、これが、対応する動作点に関連付けられたターゲット出力レイヤセットを指定する。
[0280]記述子についての情報に基づいて、デマルチプレクサ29は、動作点を選択する(160)。たとえば、デマルチプレクサ29は、ビデオデコーダ30によって復号され得る動作点のうちの1つを決定し得る。動作点は、動作点のビデオデータが対応するプロファイル、ティア、およびレベル要素をビデオデコーダがサポートするとき、ビデオデコーダによって復号され得る。したがって、ビデオデコーダ30が、記述子からのPTL情報によって示される動作点の少なくともプロファイル、ティア、およびレベルをサポートする場合、デマルチプレクサ29は動作点を選択し得る。デマルチプレクサ29は、さらに、たとえば、動作点のための記述子の出力レイヤセット情報によって示される、出力レイヤセット中のいくつかのターゲット出力レイヤなどの他の特性に選択の基礎をおき得る。特に、デマルチプレクサ29は、ディスプレイデバイス32が動作点のためのターゲット出力レイヤの数に等しいいくつかのビューをレンダリングすることができるかどうかを決定し得る。復号および表示され得る複数の動作点がある場合、デマルチプレクサ29は、表示され得る最大数のビューをも含む最高のプロファイル、ティア、およびレベルをもつ動作点を選択し得る。追加または代替として、デマルチプレクサ29は、選択されるべき動作点を示す入力をユーザから受信し得る。
[0281]このようにして、一例では、デマルチプレクサ29は、ビデオデコーダがサポートするビデオコーディング規格の1つまたは複数のプロファイルと、ビデオデコーダがサポートするビデオコーディング規格の1つまたは複数のティアと、ビデオデコーダがサポートする1つまたは複数のティア内の1つまたは複数のレベルとを決定し、次いで、動作点のうちの1つのレイヤが対応するPTL構造によって示されるように、動作点のうちの1つのレイヤの各々が、ビデオデコーダがサポートするプロファイルのうちの1つを有し、動作点のうちの1つのレイヤの各々が、ビデオデコーダがサポートするティアのうちの1つを有し、動作点のうちの1つのレイヤの各々が、ビデオデコーダがサポートするレベルのうちの1つを有するように動作点のうちの1つを選択し得る。
[0282]デマルチプレクサ29は、次いで、選択された動作点に対応するエレメンタリストリームを抽出し得る(162)。抽出されるべきエレメンタリストリームは、ターゲット出力レイヤセットの各々についてのデータを含むエレメンタリストリームならびに(たとえば、時間および/またはビュー間予測についての)ターゲット出力レイヤセットが依存するデータを含むエレメンタリストリームを含み得る。デマルチプレクサ29は、次いで、ビデオデコーダ30に抽出されたエレメンタリストリームを送り得る(164)。
[0283]このようにして、図9の方法は、ビットストリームから記述子を抽出することと、ここにおいて、ビットストリームは、記述子とは別個の、動作点についてのビデオデータのレイヤを含み、したがって、各動作点は、ビデオデータのレイヤのうちの1つまたは複数を含む、ここにおいて、記述子は、プロファイル、ティア、およびレベル(PTL)構造のセットと、動作点の各々のレイヤの各々をPTL構造のうちの対応する1つに関連付けるデータとを含む、動作点のうちの1つのレイヤが対応するPTL構造に少なくとも部分的に基づいてビットストリームから動作点のうちの1つについてのビデオデータを抽出することと、ビデオデコーダに抽出されたビデオデータを与えることとを含む方法の一例を表す。
[0284]例によっては、本明細書で説明された技法のうちのいずれかの、いくつかの動作またはイベントは、異なる順序で実行され得、追加、統合、または完全に除外され得る(たとえば、すべての説明された動作またはイベントが、本技法の実施のために必要であるとは限らない)ことを認識されたい。その上、いくつかの例では、行為またはイベントは、連続的にではなく、たとえば、マルチスレッド処理、割込み処理、または複数のプロセッサを通して同時に実施され得る。
[0285]1つまたは複数の例において、前述の機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。ソフトウェアで実施される場合、機能は、コンピュータ可読媒体上の1つもしくは複数の命令またはコード上に記憶され、あるいはこれを介して伝送され、ハードウェアベースの処理ユニットによって実行され得る。コンピュータ可読媒体は、データ記憶媒体などの有形の媒体に対応するコンピュータ可読記憶媒体、または、たとえば、通信プロトコルに従う、ある場所から別の場所へのコンピュータプログラムの転送を容易にする任意の媒体を含む通信媒体を含み得る。このようにして、コンピュータ可読媒体は、一般に、(1)非一時的である有形のコンピュータ可読記憶媒体、または(2)信号もしくはキャリア波のような通信媒体に対応し得る。データ記憶媒体は、本開示で説明する技法の実装のための命令、コードおよび/またはデータ構造を取り出すために1つもしくは複数のコンピュータまたは1つもしくは複数のプロセッサによってアクセスされ得る、任意の利用可能な媒体であり得る。コンピュータプログラム製品は、コンピュータ可読媒体を含み得る。
[0286]限定ではなく例として、そのようなコンピュータ可読記憶媒体は、RAM、ROM、EEPROM(登録商標)、CD−ROMもしくは他の光ディスクストレージ、磁気ディスクストレージ、もしくは他の磁気記憶デバイス、フラッシュメモリ、または命令もしくはデータ構造の形態の所望のプログラムコードを記憶するために使用され得、コンピュータによってアクセスされ得る任意の他の媒体を備えることができる。また、任意の接続が、コンピュータ可読媒体と適切に呼ばれる。たとえば、命令が、ウェブサイト、サーバ、または他の遠隔ソースから、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者回線(DSL)、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、DSL、または赤外線、無線、マイクロ波などのワイヤレス技術は、媒体の定義に含まれる。しかしながら、コンピュータ可読記憶媒体およびデータ記憶媒体は、接続、搬送波、信号、または他の一時的媒体を含むのではなく、非一時的な有形の記憶媒体を対象とすることを理解されたい。本明細書で使用するディスク(disk)およびディスク(disc)は、コンパクトディスク(disc)(CD)、レーザーディスク(登録商標)(disc)、光ディスク(disc)、デジタル多用途ディスク(disc)(DVD)、フロッピーディスク(disk)、およびBlu−rayディスク(disc)を含み、ディスク(disk)は、通常、データを磁気的に再生し、ディスク(disc)は、データをレーザーで光学的に再生する。上記の組合せも、コンピュータ可読媒体の範囲の中に含まれるべきである。
[0287]命令は、1つもしくは複数のデジタル信号プロセッサ(DSP)、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、あるいは他の同等の集積回路またはディスクリート論理回路などの1つもしくは複数のプロセッサによって実行され得る。したがって、本明細書で使用される「プロセッサ」という用語は、前述の構造、または、本明細書で説明する技法の実装に好適な他の構造のいずれかを指すことがある。加えて、いくつかの態様では、本明細書で説明した機能は、符号化および復号のために構成されるか、または複合コーデックに組み込まれる、専用のハードウェアモジュールおよび/もしくはソフトウェアモジュール内で提供され得る。また、本技法は、1つもしくは複数の回路または論理要素で十分に実装され得る。
[0288]本開示の技法は、ワイヤレスハンドセット、集積回路(IC)もしくはICのセット(たとえば、チップセット)を含む、多種多様なデバイスまたは装置で実装され得る。本開示では、開示する技法を実行するように構成されたデバイスの機能的態様を強調するために様々な構成要素、モジュール、またはユニットについて説明したが、それらの構成要素、モジュール、またはユニットを、必ずしも異なるハードウェアユニットによって実現する必要があるとは限らない。そうではなく、上記で説明したように、様々なユニットは、コーデックハードウェアユニット中で組み合わせられるか、または上記で説明した1つもしくは複数のプロセッサを含む、適切なソフトウェアおよび/またはファームウェアとともに相互動作可能なハードウェアユニットの集合によって提供され得る。
[0289]様々な例が、説明された。これらおよび他の例は、以下の特許請求の範囲に含まれる。
以下に本願の出願当初の特許請求の範囲に記載された発明を付記する。
[C1]
ビデオデータを含むビットストリームを処理する方法であって、
前記ビットストリームから記述子を抽出することと、ここにおいて、前記ビットストリームが、前記記述子とは別個の、動作点についてのビデオデータのレイヤを含み、したがって、各動作点が、ビデオデータの前記レイヤのうちの1つまたは複数を含む、ここにおいて、前記記述子が、プロファイル、ティア、およびレベル(PTL)構造のセットと、前記動作点の各々の前記レイヤの各々を前記PTL構造のうちの対応する1つに関連付けるデータとを含む、
前記動作点のうちの1つの前記レイヤが対応する前記PTL構造に少なくとも部分的に基づいて前記ビットストリームから前記動作点のうちの前記1つについてのビデオデータを抽出することと、
ビデオデコーダに前記抽出されたビデオデータを与えることと
を備える方法。
[C2]
前記ビデオデータを抽出することが、
前記ビデオデコーダがサポートするビデオコーディング規格の1つまたは複数のプロファイルと、前記ビデオデコーダがサポートする前記ビデオコーディング規格の1つまたは複数のティアと、前記ビデオデコーダがサポートする前記1つまたは複数のティア内の1つまたは複数のレベルとを決定することと、
前記動作点のうちの前記1つの前記レイヤが対応する前記PTL構造によって示されるように、前記動作点のうちの選択された1つの前記レイヤの各々が、前記ビデオデコーダがサポートする前記プロファイルのうちの1つを有し、前記動作点のうちの前記選択された1つの前記レイヤの各々が、前記ビデオデコーダがサポートする前記ティアのうちの1つを有し、前記動作点のうちの前記選択された1つの前記レイヤの各々が、前記ビデオデコーダがサポートする前記レベルのうちの1つを有するように前記動作点のうちの前記1つを選択することと
を備える、C1に記載の方法。
[C3]
前記PTL構造の各々についての少なくともプロファイル情報と、ティア情報と、レベル情報とを決定するために前記PTL構造を繰返し処理することと、
前記動作点の各々の前記レイヤの各々について、前記記述子から、前記レイヤのうちの対応する1つについての前記プロファイル、ティア、およびレベル情報を決定するために、前記レイヤのうちの前記対応する1つを前記PTL構造のうちの1つにマッピングするPTL参照インデックスの値を取り出すことと
をさらに備える、C1に記載の方法。
[C4]
前記PTL構造の各々が、general_profile_space値、general_tier_flag値、複数のgeneral_profile_idc値、i番目の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値、およびlevel_idc値を表すデータを含む、C1に記載の方法。
[C5]
前記記述子が、動作点のリストについての情報を含む、前記情報が、前記対応する動作点のための関連する出力レイヤセットと、前記対応する動作点のための関連する区分方式と、前記対応する動作点のための最高時間サブレイヤと、前記対応する動作点を構成するエレメンタリストリームのリストと、前記対応する動作点のための出力レイヤの数と、前記動作点の各エレメンタリストリーム中に含まれているレイヤの前記PTL構造へのマッピングと、前記対応する動作点についてのフレームレート情報とを含む、C1に記載の方法。
[C6]
前記ビデオデータを抽出することが、
前記記述子のデータに基づいて前記動作点のうちの前記1つのための出力レイヤセットを決定することと、
前記ビットストリームから前記出力レイヤセットの各レイヤを抽出することと、
前記ビットストリームから前記出力レイヤセットの前記レイヤが依存するレイヤを抽出することと
を備える、C1に記載の方法。
[C7]
前記出力レイヤセットを決定することが、前記記述子から、前記動作点の各々のためのターゲット出力レイヤセットシンタックス要素の値を取り出すことを備える、ここにおいて、前記ターゲット出力レイヤセットシンタックス要素が、前記対応する動作点に関連する前記ターゲット出力レイヤセットを指定する、C6に記載の方法。
[C8]
前記出力レイヤセットを決定することが、前記記述子から、前記レイヤの各々のためのフラグの値を取り出すことを備える、ここにおいて、前記フラグが、前記対応するレイヤが出力レイヤであるかどうかを示す、C6に記載の方法。
[C9]
前記ビットストリームから少なくとも1つのエレメンタリストリームのための1つまたは複数の参照エレメンタリストリームを示す情報を抽出することをさらに備える、C1に記載の方法。
[C10]
前記1つまたは複数の参照エレメンタリストリームの前記ビデオデータが、1つまたは複数の時間レイヤの第1のセットにビデオデータを備える、ここにおいて、前記少なくとも1つのエレメンタリストリームの前記ビデオデータが、前記第1のセットの前記時間レイヤよりも高い時間レイヤのビデオデータを備える、C9に記載の方法。
[C11]
拡張次元ビットシンタックス要素のビットの値を処理すること、ここにおいて、前記拡張次元ビットシンタックス要素の少なくとも1つのビットが、前記少なくとも1つのエレメンタリストリームの前記ビデオデータが時間拡張を表すことを示す値を有する、をさらに備える、C10に記載の方法。
[C12]
前記記述子のhierarchy_typeシンタックス要素の値を処理すること、ここにおいて、前記値が、前記現在のエレメンタリストリームの前記ビデオデータと前記1つまたは複数の参照エレメンタリストリームとの間の拡張のためのタイプが補助タイプであることを示す、をさらに備える、C10に記載の方法。
[C13]
前記記述子を抽出することが、前記ビットストリームから複数の記述子を抽出することを備える、前記記述子の各々が、前記ビットストリーム中で連続しており、PTL構造のそれぞれのセットと、前記動作点の各々の前記レイヤの各々を前記PTL構造のうちの対応する1つに関連付けるデータとを含む、C1に記載の方法。
[C14]
前記記述子が、プログラムレベルの記述子を備える、C1に記載の方法。
[C15]
前記記述子が、エレメンタリストリームレベルの記述子を備える、C1に記載の方法。
[C16]
前記記述子を抽出することが、前記ビットストリームのプログラムマップテーブルのprogram_info_lengthフィールドの直後にくる記述子のグループを抽出することを備える、C1に記載の方法。
[C17]
前記記述子を抽出することが、前記ビットストリームのプログラムマップテーブルのES_info_lengthフィールドの直後にくる記述子のグループを抽出することを備える、C1に記載の方法。
[C18]
前記ビットストリームのプログラムの1つまたは複数のエレメンタリストリームのためのストリームタイプに基づいて前記記述子が前記ビットストリーム中に含まれるかどうかを決定することをさらに備える、C1に記載の方法。
[C19]
前記ビットストリームのプログラムの少なくとも1つのエレメンタリストリームのためのストリームタイプが、0x27、0x28、0x29、または0x2Aの値を有するとき、前記記述子が前記ビットストリーム中に含まれると決定することをさらに備える、C1に記載の方法。
[C20]
ビデオデータを含むビットストリームを処理するためのデバイスであって、
前記ビットストリームから抽出されたデータを記憶するためのメモリと、
前記ビットストリームから記述子を抽出することと、ここにおいて、前記ビットストリームが、前記記述子とは別個の、動作点についてのビデオデータのレイヤを含み、したがって、各動作点が、ビデオデータの前記レイヤのうちの1つまたは複数を含む、ここにおいて、前記記述子が、プロファイル、ティア、およびレベル(PTL)構造のセットと、前記動作点の各々の前記レイヤの各々を前記PTL構造のうちの対応する1つに関連付けるデータとを含む、
前記動作点のうちの1つの前記レイヤが対応する前記PTL構造に少なくとも部分的に基づいて前記ビットストリームから前記動作点のうちの前記1つについてのビデオデータを抽出することと、
ビデオデコーダに前記抽出されたビデオデータを与えることと
を行うように構成された1つまたは複数の処理ユニットと
を備えるデバイス。
[C21]
前記1つまたは複数の処理ユニットが、
前記ビデオデコーダがサポートするビデオコーディング規格の1つまたは複数のプロファイルと、前記ビデオデコーダがサポートする前記ビデオコーディング規格の1つまたは複数のティアと、前記ビデオデコーダがサポートする前記1つまたは複数のティア内の1つまたは複数のレベルとを決定することと、
前記動作点のうちの前記1つの前記レイヤが対応する前記PTL構造によって示されるように、前記動作点のうちの前記1つの前記レイヤの各々が、前記ビデオデコーダがサポートする前記プロファイルのうちの1つを有し、前記動作点のうちの前記1つの前記レイヤの各々が、前記ビデオデコーダがサポートする前記ティアのうちの1つを有し、前記動作点のうちの前記1つの前記レイヤの各々が、前記ビデオデコーダがサポートする前記レベルのうちの1つを有するように前記動作点のうちの前記1つを選択することと
を行うようにさらに構成された、C20に記載のデバイス。
[C22]
前記1つまたは複数の処理ユニットが、
前記PTL構造の各々についての少なくともプロファイル情報と、ティア情報と、レベル情報とを決定するために前記PTL構造を繰返し処理することと、
前記動作点の各々の前記レイヤの各々について、前記記述子から、前記レイヤのうちの対応する1つについての前記プロファイル、ティア、およびレベル情報を決定するために、前記レイヤのうちの前記対応する1つを前記PTL構造のうちの1つにマッピングするPTL参照インデックスの値を取り出すことと
を行うようにさらに構成された、C20に記載のデバイス。
[C23]
前記記述子が、動作点のリストについての情報を含む、前記情報が、前記対応する動作点のための関連する出力レイヤセットと、前記対応する動作点のための関連する区分方式と、前記対応する動作点のための最高時間サブレイヤと、前記対応する動作点を構成するエレメンタリストリームのリストと、前記対応する動作点のための出力レイヤの数と、前記動作点の各エレメンタリストリーム中に含まれているレイヤの前記PTL構造へのマッピングと、前記対応する動作点についてのフレームレート情報とを含む、C20に記載のデバイス。
[C24]
前記1つまたは複数の処理ユニットが、
前記記述子のデータに基づいて前記動作点のうちの前記1つのための出力レイヤセットを決定することと、
前記ビットストリームから前記出力レイヤセットの各レイヤを抽出することと、
前記ビットストリームから前記出力レイヤセットの前記レイヤが依存するレイヤを抽出することと
を行うようにさらに構成された、C20に記載のデバイス。
[C25]
前記出力レイヤセットを決定するために、前記1つまたは複数のプロセッサが、前記記述子から、前記動作点の各々のためのターゲット出力レイヤセットシンタックス要素の値を取り出すこと、ここにおいて、前記ターゲット出力レイヤセットシンタックス要素が、前記対応する動作点に関連する前記ターゲット出力レイヤセットを指定する、を行うように構成された、C24に記載のデバイス。
[C26]
前記出力レイヤセットを決定するために、前記1つまたは複数のプロセッサが、前記記述子から、前記レイヤの各々のためのフラグの値を取り出すこと、ここにおいて、前記フラグが、前記対応するレイヤが出力レイヤであるかどうかを示す、を行うように構成された、C24に記載のデバイス。
[C27]
前記1つまたは複数の処理ユニットが、前記ビットストリームから少なくとも1つのエレメンタリストリームのための1つまたは複数の参照エレメンタリストリームを示す情報を抽出するようにさらに構成された、C20に記載のデバイス。
[C28]
前記1つまたは複数の処理ユニットが、前記ビットストリームから複数の記述子を抽出すること、前記記述子の各々が、前記ビットストリーム中で連続しており、PTL構造のそれぞれのセットと、前記動作点の各々の前記レイヤの各々を前記PTL構造のうちの対応する1つに関連付けるデータとを含む、を行うように構成された、C20に記載のデバイス。
[C29]
前記記述子が、プログラムレベルの記述子を備える、C20に記載のデバイス。
[C30]
前記記述子が、エレメンタリストリームレベルの記述子を備える、C20に記載のデバイス。
[C31]
前記1つまたは複数の処理ユニットが、前記ビットストリームのプログラムマップテーブルのprogram_info_lengthフィールドの直後にくる記述子のグループを抽出するように構成された、C20に記載のデバイス。
[C32]
前記1つまたは複数の処理ユニットが、前記ビットストリームのプログラムマップテーブルのES_info_lengthフィールドの直後にくる記述子のグループを抽出するように構成された、C20に記載のデバイス。
[C33]
前記1つまたは複数の処理ユニットが、前記ビットストリームのプログラムの1つまたは複数のエレメンタリストリームのためのストリームタイプに基づいて前記記述子が前記ビットストリーム中に含まれるかどうかを決定するように構成された、C20に記載のデバイス。
[C34]
前記1つまたは複数の処理ユニットが、前記ビットストリームのプログラムの少なくとも1つのエレメンタリストリームのためのストリームタイプが、0x27、0x28、0x29、または0x2Aの値を有するとき、前記記述子が前記ビットストリーム中に含まれると決定するように構成された、C20に記載のデバイス。
[C35]
ビデオデータを処理するためのデバイスであって、
前記ビットストリームから記述子を抽出するための手段と、ここにおいて、前記ビットストリームが、前記記述子とは別個の、動作点についてのビデオデータのレイヤを含み、したがって、各動作点が、ビデオデータの前記レイヤのうちの1つまたは複数を含む、ここにおいて、前記記述子が、プロファイル、ティア、およびレベル(PTL)構造のセットと、前記動作点の各々の前記レイヤの各々を前記PTL構造のうちの対応する1つに関連付けるデータとを含む、
前記動作点のうちの1つの前記レイヤが対応する前記PTL構造に少なくとも部分的に基づいて前記ビットストリームから前記動作点のうちの前記1つについてのビデオデータを抽出するための手段と、
ビデオデコーダに前記抽出されたビデオデータを与えるための手段と
を備えるデバイス。
[C36]
前記ビデオデータを抽出するための前記手段が、
前記ビデオデコーダがサポートするビデオコーディング規格の1つまたは複数のプロファイルと、前記ビデオデコーダがサポートする前記ビデオコーディング規格の1つまたは複数のティアと、前記ビデオデコーダがサポートする前記1つまたは複数のティア内の1つまたは複数のレベルとを決定するための手段と、
前記動作点のうちの前記1つの前記レイヤが対応する前記PTL構造によって示されるように、前記動作点のうちの前記1つの前記レイヤの各々が、前記ビデオデコーダがサポートする前記プロファイルのうちの1つを有し、前記動作点のうちの前記1つの前記レイヤの各々が、前記ビデオデコーダがサポートする前記ティアのうちの1つを有し、前記動作点のうちの前記1つの前記レイヤの各々が、前記ビデオデコーダがサポートする前記レベルのうちの1つを有するように前記動作点のうちの前記1つを選択するための手段と
を備える、C35に記載のデバイス。
[C37]
前記PTL構造の各々についての少なくともプロファイル情報と、ティア情報と、レベル情報とを決定するために前記PTL構造を繰返し処理することと、
前記記述子から、前記動作点の各々の前記レイヤの各々について、前記レイヤのうちの対応する1つについての前記プロファイル、ティア、およびレベル情報を決定するために、前記レイヤのうちの前記対応する1つを前記PTL構造のうちの1つにマッピングするPTL参照インデックスの値を取り出すための手段と
をさらに備える、C35に記載のデバイス。
[C38]
前記記述子が、動作点のリストについての情報を含む、前記情報が、前記対応する動作点のための関連する出力レイヤセットと、前記対応する動作点のための関連する区分方式と、前記対応する動作点のための最高時間サブレイヤと、前記対応する動作点を構成するエレメンタリストリームのリストと、前記対応する動作点のための出力レイヤの数と、前記動作点の各エレメンタリストリーム中に含まれているレイヤの前記PTL構造へのマッピングと、前記対応する動作点についてのフレームレート情報とを含む、C35に記載のデバイス。
[C39]
前記ビデオデータを抽出するための前記手段が、
前記記述子のデータに基づいて前記動作点のうちの前記1つのための出力レイヤセットを決定するための手段と、
前記ビットストリームから前記出力レイヤセットの各レイヤを抽出するための手段と、
前記ビットストリームから前記出力レイヤセットの前記レイヤが依存するレイヤを抽出するための手段と
を備える、C35に記載のデバイス。
[C40]
前記出力レイヤセットを決定するための前記手段が、前記記述子から、前記動作点の各々のためのターゲット出力レイヤセットシンタックス要素の値を取り出すための手段を備える、ここにおいて、前記ターゲット出力レイヤセットシンタックス要素が、前記対応する動作点に関連する前記ターゲット出力レイヤセットを指定する、C35に記載のデバイス。
[C41]
前記出力レイヤセットを決定するための前記手段が、前記記述子から、前記レイヤの各々のためのフラグの値を取り出すための手段を備える、ここにおいて、前記フラグが、前記対応するレイヤが出力レイヤであるかどうかを示す、C40に記載のデバイス。
[C42]
前記ビットストリームから少なくとも1つのエレメンタリストリームのための1つまたは複数の参照エレメンタリストリームを示す情報を抽出するための手段をさらに備える、C35に記載のデバイス。
[C43]
前記記述子を抽出するための前記手段が、前記ビットストリームから複数の記述子を抽出するための手段を備える、前記記述子の各々が、前記ビットストリーム中で連続しており、PTL構造のそれぞれのセットと、前記動作点の各々の前記レイヤの各々を前記PTL構造のうちの対応する1つに関連付けるデータとを含む、C35に記載のデバイス。
[C44]
前記記述子を抽出するための前記手段が、前記ビットストリームのプログラムマップテーブルのprogram_info_lengthフィールドの直後にくる記述子のグループを抽出することを備える、C35に記載のデバイス。
[C45]
前記記述子を抽出するための前記手段が、前記ビットストリームのプログラムマップテーブルのES_info_lengthフィールドの直後にくる記述子のグループを抽出するための手段を備える、C35に記載のデバイス。
[C46]
前記ビットストリームのプログラムの1つまたは複数のエレメンタリストリームのためのストリームタイプに基づいて前記記述子が前記ビットストリーム中に含まれるかどうかを決定するための手段をさらに備える、C35に記載のデバイス。
[C47]
前記ビットストリームのプログラムの少なくとも1つのエレメンタリストリームのためのストリームタイプが、0x27、0x28、0x29、または0x2Aの値を有するとき、前記記述子が前記ビットストリーム中に含まれると決定するための手段をさらに備える、C35に記載のデバイス。
[C48]
実行されたときに、プロセッサに、
ビデオデータを含むビットストリームから記述子を抽出することと、ここにおいて、前記ビットストリームが、前記記述子とは別個の、動作点についてのビデオデータのレイヤを含み、したがって、各動作点が、ビデオデータの前記レイヤのうちの1つまたは複数を含む、ここにおいて、前記記述子が、プロファイル、ティア、およびレベル(PTL)構造のセットと、前記動作点の各々の前記レイヤの各々を前記PTL構造のうちの対応する1つに関連付けるデータとを含む、
前記動作点のうちの1つの前記レイヤが対応する前記PTL構造に少なくとも部分的に基づいて前記ビットストリームから前記動作点のうちの前記1つについてのビデオデータを抽出することと、
ビデオデコーダに前記抽出されたビデオデータを与えることと
を行わせる命令を記憶したコンピュータ可読記憶媒体。
[C49]
前記プロセッサに前記ビデオデータを抽出することを行わせる前記命令が、前記プロセッサに、
前記ビデオデコーダがサポートするビデオコーディング規格の1つまたは複数のプロファイルと、前記ビデオデコーダがサポートする前記ビデオコーディング規格の1つまたは複数のティアと、前記ビデオデコーダがサポートする前記1つまたは複数のティア内の1つまたは複数のレベルとを決定することと、
前記動作点のうちの前記1つの前記レイヤが対応する前記PTL構造によって示されるように、前記動作点のうちの前記1つの前記レイヤの各々が、前記ビデオデコーダがサポートする前記プロファイルのうちの1つを有し、前記動作点のうちの前記1つの前記レイヤの各々が、前記ビデオデコーダがサポートする前記ティアのうちの1つを有し、前記動作点のうちの前記1つの前記レイヤの各々が、前記ビデオデコーダがサポートする前記レベルのうちの1つを有するように前記動作点のうちの前記1つを選択することと
を行わせる命令を備える、C48に記載のコンピュータ可読記憶媒体。
[C50]
前記プロセッサに、
前記PTL構造の各々についての少なくともプロファイル情報と、ティア情報と、レベル情報とを決定するために前記PTL構造を繰返し処理することと、
前記動作点の各々の前記レイヤの各々について、前記記述子から、前記レイヤのうちの対応する1つについての前記プロファイル、ティア、およびレベル情報を決定するために、前記レイヤのうちの前記対応する1つを前記PTL構造のうちの1つにマッピングするPTL参照インデックスの値を取り出すことと
を行わせる命令をさらに備える、C48に記載のコンピュータ可読記憶媒体。
[C51]
前記記述子が、動作点のリストについての情報を含む、前記情報が、前記対応する動作点のための関連する出力レイヤセットと、前記対応する動作点のための関連する区分方式と、前記対応する動作点のための最高時間サブレイヤと、前記対応する動作点を構成するエレメンタリストリームのリストと、前記対応する動作点のための出力レイヤの数と、前記動作点の各エレメンタリストリーム中に含まれているレイヤの前記PTL構造へのマッピングと、前記対応する動作点についてのフレームレート情報とを含む、C48に記載のコンピュータ可読記憶媒体。
[C52]
前記プロセッサに前記ビデオデータを抽出することを行わせる前記命令が、前記プロセッサに、
前記記述子のデータに基づいて前記動作点のうちの前記1つのための出力レイヤセットを決定することと、
前記ビットストリームから前記出力レイヤセットの各レイヤを抽出することと、
前記ビットストリームから前記出力レイヤセットの前記レイヤが依存するレイヤを抽出することと
を行わせる命令を備える、C48に記載のコンピュータ可読記憶媒体。
[C53]
前記プロセッサに前記出力レイヤセットを決定することを行わせる前記命令が、前記プロセッサに、前記記述子から、前記動作点の各々のためのターゲット出力レイヤセットシンタックス要素の値を取り出すこと、ここにおいて、前記ターゲット出力レイヤセットシンタックス要素が、前記対応する動作点に関連する前記ターゲット出力レイヤセットを指定する、を行わせる命令を備える、C52に記載のコンピュータ可読記憶媒体。
[C54]
前記プロセッサに前記出力レイヤセットを決定することを行わせる前記命令が、前記プロセッサに、前記記述子から、前記レイヤの各々のためのフラグの値を取り出すこと、ここにおいて、前記フラグが、前記対応するレイヤが出力レイヤであるかどうかを示す、を行わせる命令を備える、C52に記載のコンピュータ可読記憶媒体。
[C55]
前記プロセッサに、前記ビットストリームから少なくとも1つのエレメンタリストリームのための1つまたは複数の参照エレメンタリストリームを示す情報を抽出することを行わせる命令をさらに備える、C48に記載のコンピュータ可読記憶媒体。
[C56]
前記プロセッサに前記記述子を抽出することを行わせる前記命令が、前記プロセッサに、前記ビットストリームから複数の記述子を抽出することを行わせる命令を備える、前記記述子の各々が、前記ビットストリーム中で連続しており、PTL構造のそれぞれのセットと、前記動作点の各々の前記レイヤの各々を前記PTL構造のうちの対応する1つに関連付けるデータとを含む、C48に記載のコンピュータ可読記憶媒体。
[C57]
前記プロセッサに前記記述子を抽出することを行わせる前記命令が、前記プロセッサに、前記ビットストリームのプログラムマップテーブルのprogram_info_lengthフィールドの直後にくる記述子のグループを抽出することを行わせる命令を備える、C48に記載のコンピュータ可読記憶媒体。
[C58]
前記プロセッサに前記記述子を抽出することを行わせる前記命令が、前記プロセッサに、前記ビットストリームのプログラムマップテーブルのES_info_lengthフィールドの直後にくる記述子のグループを抽出することを行わせる命令を備える、C48に記載のコンピュータ可読記憶媒体。
[C59]
前記プロセッサに、前記ビットストリームのプログラムの1つまたは複数のエレメンタリストリームのためのストリームタイプに基づいて前記記述子が前記ビットストリーム中に含まれるかどうかを決定することを行わせる命令をさらに備える、C48に記載のコンピュータ可読記憶媒体。
[C60]
前記プロセッサに、前記ビットストリームのプログラムの少なくとも1つのエレメンタリストリームのためのストリームタイプが、値0x27、0x28、0x29、または0x2Aを有するとき、前記記述子が前記ビットストリーム中に含まれると決定することを行わせる命令をさらに備える、C48に記載のコンピュータ可読記憶媒体。