JP2014522187A - ビデオコーディングにおける様々な次元に対するコーディングパラメータセット - Google Patents

ビデオコーディングにおける様々な次元に対するコーディングパラメータセット Download PDF

Info

Publication number
JP2014522187A
JP2014522187A JP2014524033A JP2014524033A JP2014522187A JP 2014522187 A JP2014522187 A JP 2014522187A JP 2014524033 A JP2014524033 A JP 2014524033A JP 2014524033 A JP2014524033 A JP 2014524033A JP 2014522187 A JP2014522187 A JP 2014522187A
Authority
JP
Japan
Prior art keywords
video
dimension
value
coding
enabled
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2014524033A
Other languages
English (en)
Other versions
JP5869126B2 (ja
Inventor
チェン、イン
カークゼウィックズ、マルタ
ワン、イェ―クイ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Qualcomm Inc filed Critical Qualcomm Inc
Publication of JP2014522187A publication Critical patent/JP2014522187A/ja
Application granted granted Critical
Publication of JP5869126B2 publication Critical patent/JP5869126B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/40Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video transcoding, i.e. partial or full decoding of a coded input stream followed by re-encoding of the decoded output stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/10Processing, recording or transmission of stereoscopic or multi-view image signals
    • H04N13/106Processing image signals
    • H04N13/161Encoding, multiplexing or demultiplexing different image signal components
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/186Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a colour or a chrominance component
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • H04N19/37Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability with arrangements for assigning different transmission priorities to video input data or to video coded data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • H04N19/39Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability involving multiple description coding [MDC], i.e. with separate layers being structured as independently decodable descriptions of input picture data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • H04N21/234309Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements by transcoding between formats or standards, e.g. from MPEG-2 to MPEG-4 or from Quicktime to Realvideo
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • H04N21/234354Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements by altering signal-to-noise ratio parameters, e.g. requantization
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • H04N21/234363Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements by altering the spatial resolution, e.g. for clients with a lower screen resolution
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • H04N21/234381Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements by altering the temporal resolution, e.g. decreasing the frame rate by frame skipping
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • H04N21/23439Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements for generating different versions

Abstract

一例では、ビデオデータをコーディングするためのデバイスは、ビットストリームのために、複数のビデオコーディング次元のうちのいずれがそのビットストリームに対してイネーブルされているかを表す情報をコーディングし、イネーブルされたビデオコーディング次元の各々の値に従ってコーディングされたビデオデータを備えるネットワーク抽象化レイヤ(NAL)ユニットのNALユニットヘッダにおいて、イネーブルされていないビデオコーディング次元の値をコーディングすることなく、イネーブルされたビデオコーディング次元の各々の値をコーディングするように構成される、ビデオコーダを含む。このようにして、NALユニットヘッダは可変の長さを有し得るが、それでも、NALユニットが対応するスケーラブルな次元の情報を提供する。

Description

優先権の主張
本出願は、その各々の全体が参照により本明細書に組み込まれる、2011年8月1日に出願された米国仮出願第61/513,996号、2011年9月27日に出願された米国仮出願第61/539,925号、2011年11月8日に出願された米国仮出願第61/557,300号、および2011年11月23日に出願された米国仮出願第61/563,359号の利益を主張する。
本開示は、ビデオコーディングに関する。
[0003]デジタルビデオ機能は、デジタルテレビジョン、デジタルダイレクトブロードキャストシステム、ワイヤレスブロードキャストシステム、携帯情報端末(PDA)、ラップトップまたはデスクトップコンピュータ、タブレットコンピュータ、電子ブックリーダ、デジタルカメラ、デジタル記録デバイス、デジタルメディアプレーヤ、ビデオゲームデバイス、ビデオゲームコンソール、セルラーまたは衛星無線電話、いわゆる「スマートフォン」、ビデオ遠隔会議デバイス、ビデオストリーミングデバイスなどを含む、広範囲にわたるデバイスに組み込まれ得る。デジタルビデオデバイスは、MPEG−2、MPEG−4、ITU−T H.263、ITU−T H.264/MPEG−4,Part10,Advanced Video Coding(AVC)、現在開発中のHigh Efficiency Video Coding(HEVC)規格によって定義された規格、およびそのような規格の拡張に記載されているビデオコーディング技法のような、ビデオコーディング技法を実装する。ビデオデバイスは、そのようなビデオコーディング技法を実装することによって、デジタルビデオ情報をより効率的に送信、受信、符号化、復号、および/または記憶し得る。
[0004]ビデオコーディング技法は、ビデオシーケンスに固有の冗長性を低減または除去するための空間的(イントラピクチャ)予測および/または時間的(インターピクチャ)予測を含む。ブロックベースのビデオコーディングの場合、ビデオスライス(たとえば、ビデオフレームまたはビデオフレームの一部分)が、ツリーブロック、コーディングユニット(CU)および/またはコーディングノードと呼ばれることもあるビデオブロックに区分され得る。ピクチャのイントラコーディングされた(I)スライス中のビデオブロックは、同じピクチャ中の近隣ブロック中の参照サンプルに対する空間的予測を使用して符号化される。ピクチャのインターコーディングされた(PまたはB)スライス中のビデオブロックは、同じピクチャ中の近隣ブロック中の参照サンプルに対する空間的予測、または他の参照ピクチャ中の参照サンプルに対する時間的予測を使用し得る。ピクチャはフレームと呼ばれることがあり、参照ピクチャは参照フレームと呼ばれることがある。
[0005]空間的予測または時間的予測は、コーディングされるべきブロックの予測ブロックを生じる。残差データは、コーディングされるべき元のブロックと予測ブロックとの間のピクセル差分を表す。インターコーディングされたブロックは、予測ブロックを形成する参照サンプルのブロックを指す動きベクトルと、コーディングされたブロックと予測ブロックとの間の差分を示す残差データとに従って符号化される。イントラコーディングされたブロックは、イントラコーディングモードと残差データとに従って符号化される。さらなる圧縮のために、残差データは、ピクセル領域から変換領域に変換されてよく、次いで量子化され得る残差変換係数が得られる。最初は2次元アレイで構成される、量子化された変換係数は、変換係数の1次元ベクトルを生成するために走査されてよく、なお一層の圧縮を達成するためにエントロピーコーディングが適用されてよい。
[0006]全般に、本開示は、ビデオデータの様々なスケーラブルな次元の特性をシグナリングするための技法を説明する。ビデオデータは、空間分解能、フレームレート(時間的な)、ビュー(たとえば、3次元(3D)ビデオ再生をサポートするための)、カラービット深度、クロマサンプリングフォーマット、品質、または他のそのような次元のような、様々な異なる次元においてスケーリングされ得る。一般に、ビデオデータのスケーラブルな次元は、1つまたは複数の要素を含み得る。たとえば、ビュー次元は、2次元ビデオに対しては単一のビュー、立体ビデオに対しては2つのビュー、またはマルチビューに対してはN個のビュー(Nは2よりも大きな整数)を含み得る。別の例として、時間次元は、基本フレームレート(たとえば、毎秒15フレーム(15fps))をサポートするためのピクチャの第1のレイヤと、より高いフレームレート(たとえば、30fps、60fps、および120fps)をサポートするための1つまたは複数のより高次のレイヤとを含み得る。本開示の技法は全般に、ビットストリーム、またはそのサブビットストリームが、特定の次元のための複数のレイヤを含むかどうかということと、含む場合は、その次元のための特性の値を、たとえばネットワーク抽象化レイヤ(NAL)ユニットヘッダにおいてシグナリングすることに関し、このことは、様々な次元の値の各々のためのビットの数をコーディングすることを含み得る。このようにして、本開示の技法は、NALユニットヘッダ中の1つのスケーラブルな次元に関連する各シンタックス要素に対して常に固定長の値を使用する代わりに、ビットストリームの異なるコーディングされたビデオシーケンスに対して変化し得る情報と、ビットストリームのコーディングされたビデオシーケンス内で変化しない情報とに基づいて、各シンタックス要素の長さを割り当てることを可能にし得る。
[0007]一例では、ビデオデータをコーディングする方法は、ビットストリームのために、複数のビデオコーディング次元のうちのいずれがそのビットストリームに対してイネーブルされるかを表す情報をコーディングすることと、イネーブルされるビデオコーディング次元の各々の値に従ってコーディングされたビデオデータを備えるネットワーク抽象化レイヤ(NAL)ユニットのNALユニットヘッダにおいて、イネーブルされないビデオコーディング次元を表すシンタックス要素の値をコーディングすることなく、イネーブルされるビデオコーディング次元を表すシンタックス要素の値をコーディングすることと、を含む。
[0008]別の例では、ビデオデータをコーディングするためのデバイスは、ビットストリームのために、複数のビデオコーディング次元のうちのいずれがそのビットストリームに対してイネーブルされるかを表す情報をコーディングし、イネーブルされるビデオコーディング次元の各々の値に従ってコーディングされたビデオデータを備えるネットワーク抽象化レイヤ(NAL)ユニットのNALユニットヘッダにおいて、イネーブルされないビデオコーディング次元を表すシンタックス要素の値をコーディングすることなく、イネーブルされるビデオコーディング次元を表すシンタックス要素の値をコーディングするように構成される、ビデオコーダを含む。
[0009]別の例では、ビデオデータをコーディングするためのデバイスは、ビットストリームのために、複数のビデオコーディング次元のうちのいずれがそのビットストリームに対してイネーブルされるかを表す情報をコーディングする手段と、有効なビデオコーディング次元の各々の値に従ってコーディングされたビデオデータを備えるネットワーク抽象化レイヤ(NAL)ユニットのNALユニットヘッダにおいて、イネーブルされないビデオコーディング次元を表すシンタックス要素の値をコーディングすることなく、イネーブルされるビデオコーディング次元を表すシンタックス要素の値をコーディングする手段と、を含む。
[0010]別の例では、コンピュータ可読記憶媒体は命令によって符号化され、その命令は実行されると、プロセッサに、ビットストリームのために、複数のビデオコーディング次元のうちのいずれがそのビットストリームに対してイネーブルされるかを表す情報をコーディングさせ、イネーブルされるビデオコーディング次元の各々の値に従ってコーディングされたビデオデータを備えるネットワーク抽象化レイヤ(NAL)ユニットのNALユニットヘッダにおいて、イネーブルされないビデオコーディング次元を表すシンタックス要素の値をコーディングすることなく、イネーブルされるビデオコーディング次元を表すシンタックス要素の値をコーディングさせる。
[0011]1つまたは複数の例の詳細は、添付の図面および以下の説明に記載されている。他の特徴、目的、および利点は、その説明および図面、ならびに特許請求の範囲から明らかになろう。
ビデオデータのスケーラブルな次元の特性をシグナリングするための技法を利用し得る例示的なビデオ符号化および復号システムを示すブロック図。 ビデオデータのスケーラブルな次元の特性をシグナリングするための技法を実施し得るビデオエンコーダの例を示すブロック図。 ビデオデータのスケーラブルな次元の特性をシグナリングするための技法を実施し得るビデオデコーダの例を示すブロック図。 ビデオデータのスケーラブルな次元の特性をシグナリングするための本開示の技法を実行し得るデバイスの別のセットを含むシステムを示すブロック図。 本開示の技法の様々な例による、NALユニットヘッダの例を示す概念図。 本開示の技法の様々な例による、NALユニットヘッダの例を示す概念図。 ビデオデータのスケーラブルな次元の特性をシグナリングするための例示的な方法を示すフローチャート。 ビデオデータのスケーラブルな次元のシグナリングされた特性を使用するための例示的な方法を示すフローチャート。 ビデオデータのスケーラブルな次元の特性をシグナリングし、シグナリングされた特性を使用するための、別の例示的な方法を示すフローチャート。
[0020]全般に、本開示は、ビデオデータの様々な次元の特性をシグナリングするための技法を説明する。次元は、ビデオコーディング次元、または簡潔にするために単に「次元」と本明細書では呼ばれ得る。ビデオデータは、空間分解能、フレームレート(時間的な)、ビュー(たとえば、3次元(3D)ビデオ再生をサポートするための)、カラービット深度、クロマサンプリングフォーマット、または他のそのような次元のような、様々な異なる次元でスケーリングされ得る。したがって、ビデオコーディング次元は、「スケーラブルなビデオコーディング次元」または単に「スケーラブルな次元」とも呼ばれ得る。
[0021]ビデオデータのスケーラブルな次元は、1つまたは複数の要素を含み得る。たとえば、ビュー次元は、2次元ビデオに対しては単一のビュー、立体ビデオに対しては2つのビュー、またはマルチビューに対してはN個のビュー(Nは2よりも大きな整数)を含み得る。別の例として、時間次元は、基本フレームレート(たとえば、毎秒15フレーム(15fps))をサポートするためのピクチャの第1のレイヤと、より高いフレームレート(たとえば、30fps、60fps、および120fps)をサポートするための1つまたは複数のより高次のレイヤとを含み得る。本開示の技法は全般に、ビットストリーム、またはそのサブビットストリームが、特定の次元のための複数の要素(たとえば、複数の層)を含むかどうかということと、含む場合、その次元の特性の値を、たとえば、ネットワーク抽象化レイヤ(NAL)ユニットヘッダにおいてシグナリングすることに関する。
[0022]本開示の技法は、様々なオーディオ、ビデオ、または他のメディアコーディング規格に関して実施され得る。例として、本開示の技法は、来たるHigh Efficiency Video Coding(HEVC)規格の技法に関して論じられる。しかしながら、これらの技法は、他のコーディング規格に対しても実施され得ることを理解されたい。HEVC Working Draft 7またはWD7と呼ばれる来たるHEVC規格の最近の草案は、文書HCTVC−I1003、Bross他、「High Efficiency Video Coding(HEVC) Text Specification Draft 7」、ITU−T SG16 WP3とISO/IEC JTC1/SC29/WG11のJoint Collaborative Team on Video Coding (JCT−VC)、第9回会合:ジュネーブ、スイス、2012年4月27日〜2012年5月7日に記載されおり、この文書は、2012年7月30日現在、http://phenix.it−sudparis.eu/jct/doc_end_user/documents/9_Geneva/wg11/JCTVC−I1003−v9.zipからダウンロード可能である。ビデオコーディング規格の他の例は、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、およびITU−T H.264(ISO/IEC MPEG−4 AVCとしても知られている)を含む。ビデオコーディング規格はまた、様々な拡張を使用して拡張され得る。たとえば、ITU−T H.264/AVCは、スケーラブルビデオコーディング(SVC)拡張とマルチビュービデオコーディング(MVC)拡張とを含む。
[0023]上で述べられたように、本開示の技法は、様々なスケーラブルな次元の特性をNALユニットヘッダにおいてシグナリングするために使用され得る。NALユニットは一般に、ビデオコーディングレイヤ(VCL)データまたは非VCLデータのような、より下位のレイヤのデータをカプセル化する。VCLデータは一般に、ビデオエンコーダによって符号化されビデオデコーダによって復号される、コーディングされたビデオデータを含む。非VCLデータは、復号に必要ではないシグナリングを含み得るが、宛先デバイスに対しては有用であり得る。たとえば、非VCLデータは、supplemental enhancement information(SEI)メッセージを含み得る。
[0024]比較のために、ITU−T H.264/AVC(本明細書では「H.264/AVC」とも呼ばれる)のMVC拡張におけるNALユニットヘッダは、NALユニットタイプとnal_ref_idcシンタックス要素とを含む、1バイトのNALユニットヘッダを含む。加えて、MVC NALユニットヘッダは、NALユニットタイプがプレフィックスNALユニットまたはノーマルMVC NALユニットである場合、MVC NALユニットヘッダ拡張を含み得る。MVCのNALユニットヘッダ拡張は、NALユニットがclosed−GOPランダムアクセスポイントのために使用され得るIDR/V−IDRピクチャに属するかどうかを示すためのnor_idr_flagと、単一パスへの適合のために使用され得るpriority_idと、現在属しているビューのビュー識別子を示すためのview_idと、現在のNALユニットの時間的なレベルを示すためのtemporal_idと、NALユニットがopen−GOPランダムアクセスポイントのために使用され得るアンカーピクチャに属するかどうかを示すためのanchor_pic_flagと、他のビュー中のNALユニットのためにビュー間予測が使用されるかどうかを示すためのinter_view_flagとを含む。MVCにおけるプレフィックスNALユニットは、NALユニットヘッダと、そのMVC NALユニットヘッダ拡張とを含む。
[0025]やはり比較のために、H.264/AVCのSVC拡張におけるNALユニットヘッダは、NALユニットヘッダ拡張に追加されるシンタックス要素を含んでよく、これはH.264/AVCの従来の1バイトのNALユニットヘッダを4バイトへと拡張し、priority_idと、temporal_idと、dependency_idと、quality_idとを含む、複数の次元においてVCL NALユニットの特性を表す。H.264/AVCのSVC拡張では、dependency_idは、空間スケーラビリティ、またはCoarse Grain Scalable(CGS)に関連し、quality_idは、信号対雑音比(SNR)/品質のスケーラビリティを示す。Priority_idは、対応するNALユニットの優先度識別子に関連し、temporal_idは、対応するNALユニットの時間識別子を規定する(これは、時間スケーラビリティ、たとえば変化するフレームレートをサポートするために使用され得る)。
[0026]またやはり比較のために、HEVCにおけるVCL NALユニットは、H.264/AVCにおけるNALユニットヘッダよりも長いNALユニットヘッダを含むが、HEVC WD7 NALユニットヘッダの最初のバイトは現在、H.264/AVCのNALユニットヘッダと同じである。HEVC WD7 NALユニットヘッダはまた、temporal_idとoutput_flagシンタックス要素とを含む。
[0027]上で示されるように、H.264/AVC、SVC、MVC、およびHEVCの様々なNALユニットヘッダは、様々なスケーラブルな次元をサポートするための、シンタックス要素の様々なセットを含む。HEVCは最終的に、H.264/AVCのSVC拡張およびMVC拡張の次元のような、複数の異なるスケーラブルな次元をサポートするように構成され得る。本開示は、様々なスケーラブルな次元に対する異なるHEVC拡張をサポートしようとすると、様々な問題が起こり得ることを認める。たとえば、異なる拡張では、異なるタイプのNALユニットヘッダ拡張が必要とされ得る。様々な異なるタイプのNALユニットヘッダ拡張を提供することによって、HEVCの最終的な仕様は、複数のNALユニットヘッダ拡張シンタックステーブルを有することになる可能性があり、これは、ビデオデータの処理に関してデバイスの複雑さを高め得る。
[0028]あるいは、HEVCの最終的な仕様は、すべての可能性のあるシンタックス要素をサポートするために、最大の数のビットを有するNALユニットヘッダを規定する可能性がある。NALユニットヘッダが固有の固定長の設計を有する場合、多くのシンタックス要素はデフォルト値(たとえば、0)に設定されることがあり、シンタックス要素のいくつかのみが設定された値を有することがあり、これはビットの浪費である。言い換えると、すべての可能性のあるスケーラブルな次元を同時にサポートするのに十分なビットを有するNALユニットヘッダは、いくつかのスケーラブルな次元が使用されない場合、オーバーヘッドにおけるビットの浪費につながり得る。
[0029]本開示は、ビデオデータのスケーラブルな次元の特性をシグナリングすることに関する、様々な技法を説明する。本開示は、たとえば、NALユニットヘッダが可変長を有することを認めることによって、様々なスケーラブルな次元を効率的にサポートすることができる、NALユニットヘッダをコーディングするためのいくつかの技法を説明する。たとえば、次元範囲パラメータセットは、1つまたは複数のスケーラブルな次元のうちのいずれがビットストリームに対してアクティブである(すなわち、イネーブルされる)か、を示すことができ、さらに、アクティブかつスケーラブルな次元の値をコーディングするために使用されるビットの数を示すデータを提供することができる。したがって、NALユニットヘッダは、アクティブかつスケーラブルな次元のシンタックス要素を含んでよく、アクティブではないスケーラブルな次元のシンタックス要素(たとえば、1つのみの可能な値を有し、シーケンスパラメータセット(SPS)のような別個のデータ構造において代わりにシグナリングされ得る)を省略する。このようにして、スケーラブルであることがイネーブルされない次元(たとえば、1つの値がシグナリングされ、変更されずに保たれる次元)に対して、値は、NALユニットヘッダにおいてシグナリングされる必要はない。その上、値マッピングテーブルに対するインデックスは、アクティブかつスケーラブルな次元の中の値にインデックス値をマッピングすることができるので、アクティブである様々なスケーラブルな次元の特性をシグナリングするために、より少数のビットがNALユニットヘッダにおいて使用され得る。
[0030]別の例では、NALユニットヘッダマップは、NALユニットヘッダ中のフィールドのレイアウトを規定することができる。すなわち、NALユニットヘッダマップは、上で説明された次元範囲パラメータセットの代わりに使用され得る。NALユニットヘッダマップは、NALユニットヘッダマップパラメータセットまたはシーケンスパラメータセット(SPS)に含まれ得る。1つのNALユニットヘッダマップは、ビットストリーム全体に適用可能であり得る。この例のNALユニットヘッダマップを使用することで、追加のスケーラブルな次元を加えるために使用され得るさらなる拡張が、既存の規格および既存の拡張と後方互換性を有することが確実になり得る。この例の技法はまた、たとえば、次元範囲パラメータセットおよびSPSにNALユニットヘッダ拡張を含めるのを避けることによって、NALユニットヘッダおよびSPSが解析され得ることを確実にし得る。さらに、この例のNALユニットヘッダは、HEVC WD7で規定されるように、開始コードを模擬するデータを含めるのを避けることができる。その上、これらの技法は、SVCおよびMVCのpriority_id値と同様に、NALユニットヘッダ中に優先度識別子(priority_id)を含めることに関連するいくつかの利益を活かすことができる。
[0031]図1は、ビデオデータのスケーラブルな次元の特性をシグナリングするための技法を利用し得る例示的なビデオ符号化および復号システム10を示すブロック図である。図1に示されるように、システム10は、宛先デバイス14によって後で復号されるべき符号化されたビデオデータを与えるソースデバイス12を含む。特に、ソースデバイス12は、コンピュータ可読媒体16を介してビデオデータを宛先デバイス14に与える。ソースデバイス12および宛先デバイス14は、デスクトップコンピュータ、ノートブック(すなわち、ラップトップ)コンピュータ、タブレットコンピュータ、セットトップボックス、いわゆる「スマート」フォンなどの電話ハンドセット、いわゆる「スマート」パッド、テレビジョン、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲームコンソール、ビデオストリーミングデバイスなどを含む、広範囲にわたるデバイスのいずれかを備え得る。場合によっては、ソースデバイス12および宛先デバイス14は、ワイヤレス通信に対応し得る。
[0032]宛先デバイス14は、コンピュータ可読媒体16を介して復号されるべき符号化されたビデオデータを受信し得る。コンピュータ可読媒体16は、ソースデバイス12から宛先デバイス14に符号化されたビデオデータを移動させることができる任意のタイプの媒体またはデバイスを備え得る。一例では、コンピュータ可読媒体16は、ソースデバイス12が、符号化されたビデオデータをリアルタイムで宛先デバイス14に直接送信することを可能にするための通信媒体を備え得る。符号化されたビデオデータは、ワイヤレス通信プロトコルなどの通信規格に従って変調され、宛先デバイス14に送信され得る。通信媒体は、無線周波数(RF)スペクトルあるいは1つまたは複数の物理伝送線路のような、任意のワイヤレスまたは有線通信媒体を備え得る。通信媒体は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはインターネットなどのグローバルネットワークのような、パケットベースネットワークの一部を形成し得る。通信媒体は、ソースデバイス12から宛先デバイス14への通信を支援するのに有用であり得る、ルータ、スイッチ、基地局、または任意の他の機器を含み得る。
[0033]いくつかの例では、符号化されたデータは、出力インターフェース22からストレージデバイスに出力され得る。同様に、符号化されたデータは、入力インターフェースによってストレージデバイスからアクセスされ得る。ストレージデバイスは、ハードドライブ、ブルーレイ(登録商標)ディスク、DVD、CD−ROM、フラッシュメモリ、揮発性または不揮発性メモリ、あるいは、符号化されたビデオデータを記憶するための任意の他の適切なデジタル記憶媒体のような、様々な分散されたまたはローカルにアクセスされるデータ記憶媒体のいずれかを含み得る。さらなる一例では、ストレージデバイスは、ファイルサーバ、またはソースデバイス12によって生成された符号化されたビデオを記憶し得る別の中間ストレージデバイスに対応し得る。宛先デバイス14は、ストリーミングまたはダウンロードを介して、ストレージデバイスから、記憶されたビデオデータにアクセスし得る。ファイルサーバは、符号化されたビデオデータを記憶し、その符号化されたビデオデータを宛先デバイス14に送信することができる任意のタイプのサーバであり得る。例示的なファイルサーバは、(たとえば、ウェブサイトのための)ウェブサーバ、FTPサーバ、ネットワーク接続ストレージ(NAS)デバイス、またはローカルディスクドライブを含む。宛先デバイス14は、インターネット接続を含む、任意の標準のデータ接続を介して符号化されたビデオデータにアクセスすることができる。これは、ファイルサーバに記憶された符号化されたビデオデータにアクセスするのに適切なワイヤレスチャネル(たとえば、Wi−Fi接続)、有線接続(たとえば、DSL、ケーブルモデムなど)、または両方の組合せを含み得る。ストレージデバイスからの符号化されたビデオデータの送信は、ストリーミング送信、ダウンロード送信、またはそれらの組合せであり得る。
[0034]本開示の技法は、必ずしもワイヤレス適用例または設定に限定されるとは限らない。本技法は、オーバージエアテレビジョン放送、ケーブルテレビジョン送信、衛星テレビジョン送信、dynamic adaptive streaming over HTTP(DASH)などのインターネットストリーミングビデオ送信、データ記憶媒体上に符号化されたデジタルビデオ、データ記憶媒体に記憶されたデジタルビデオの復号、または他の適用例など、種々のマルチメディア適用例のいずれかをサポートするビデオコーディングに適用され得る。いくつかの例では、システム10は、ビデオストリーミング、ビデオ再生、ビデオブロードキャスティング、および/またはビデオ電話などの適用例をサポートするために、一方向または双方向のビデオ送信をサポートするように構成され得る。
[0035]図1の例では、ソースデバイス12は、ビデオソース18と、ビデオエンコーダ20と、出力インターフェース22とを含む。宛先デバイス14は、入力インターフェース28と、ビデオデコーダ30と、ディスプレイデバイス32とを含む。本開示によれば、ソースデバイス12のビデオエンコーダ20は、ビデオデータのスケーラブルな次元の特性をシグナリングするための技法を適用するように構成され得る。他の例では、ソースデバイスおよび宛先デバイスは、他のコンポーネントまたは構成を含み得る。たとえば、ソースデバイス12は、外部カメラなどの外部ビデオソース18からビデオデータを受信し得る。同様に、宛先デバイス14は、内蔵ディスプレイデバイスを含むのではなく、外部ディスプレイデバイスとインターフェースし得る。
[0036]図1の示されるシステム10は一例にすぎない。ビデオデータのスケーラブルな次元の特性をシグナリングするための技法は、任意のデジタルビデオ符号化および/または復号デバイスによって実行され得る。一般に、本開示の技法はビデオ符号化デバイスによって実行されるが、本技法は、一般に「コーデック」と呼ばれるビデオエンコーダ/デコーダによっても実行され得る。その上、本開示の技法はまた、ビデオプリプロセッサによって実行され得る。ソースデバイス12および宛先デバイス14は、ソースデバイス12が宛先デバイス14に送信するためのコーディングされたビデオデータを生成するような、コーディングデバイスの例にすぎない。いくつかの例では、デバイス12、14は、デバイス12、14の各々がビデオ符号化コンポーネントとビデオ復号コンポーネントとを含むように、実質的に対称的に動作し得る。したがって、システム10は、たとえば、ビデオストリーミング、ビデオ再生、ビデオブロードキャストまたはビデオ電話のための、ビデオデバイス12とビデオデバイス14との間の一方向または双方向のビデオ送信をサポートすることができる。
[0037]ソースデバイス12のビデオソース18は、ビデオカメラなどのビデオキャプチャデバイス、以前にキャプチャされたビデオを含んでいるビデオアーカイブ、および/またはビデオコンテンツプロバイダからビデオを受信するためのビデオフィードインターフェースを含み得る。さらなる代替として、ビデオソース18は、ソースビデオとしてのコンピュータグラフィックスベースのデータ、またはライブビデオとアーカイブされたビデオとコンピュータにより生成されたビデオとの組合せを生成し得る。場合によっては、ビデオソース18がビデオカメラである場合、ソースデバイス12および宛先デバイス14は、いわゆるカメラ付き携帯電話またはビデオ電話を形成することができる。しかしながら、上述のように、本開示で説明される技法は、全般にビデオコーディングに適用可能であってよく、ワイヤレスおよび/または有線の適用例に適用可能であってよい。各々の場合において、キャプチャされたビデオ、以前にキャプチャされたビデオ、またはコンピュータにより生成されたビデオは、ビデオエンコーダ20によって符号化され得る。符号化されたビデオ情報は、次いで、出力インターフェース22によってコンピュータ可読媒体16上に出力され得る。
[0038]コンピュータ可読媒体16は、ワイヤレスブロードキャストまたは有線ネットワーク送信などの一時媒体、あるいはハードディスク、フラッシュドライブ、コンパクトディスク、デジタルビデオディスク、ブルーレイディスク、または他のコンピュータ可読媒体などの記憶媒体(すなわち、非一時的記憶媒体)を含み得る。いくつかの例では、ネットワークサーバ(図示せず)は、たとえば、ネットワーク送信を介して、ソースデバイス12から符号化されたビデオデータを受信し、宛先デバイス14に符号化されたビデオデータを与え得る。同様に、ディスクスタンピング設備など、媒体製造設備のコンピューティングデバイスは、ソースデバイス12から符号化されたビデオデータを受信し、その符号化されたビデオデータを含んでいるディスクを生成し得る。したがって、コンピュータ可読媒体16は、様々な例において、様々な形態の1つまたは複数のコンピュータ可読媒体を含むことが理解されよう。
[0039]宛先デバイス14の入力インターフェース28は、コンピュータ可読媒体16から情報を受信する。コンピュータ可読媒体16の情報は、ビデオエンコーダ20によって定義され、またビデオデコーダ30によって使用される、ブロックおよび他のコーディングされたユニット、たとえば、GOPの特性および/または処理を記述するシンタックス要素を含む、シンタックス情報を含み得る。ディスプレイデバイス32は、復号されたビデオデータをユーザに対して表示し、陰極線管(CRT)、液晶ディスプレイ(LCD)、プラズマディスプレイ、有機発光ダイオード(OLED)ディスプレイ、または別のタイプのディスプレイデバイスのような、様々なディスプレイデバイスのいずれかを備え得る。
[0040]ビデオエンコーダ20およびビデオデコーダ30は、現在開発中のHigh Efficiency Video Coding(HEVC)規格などのビデオコーディング規格に従って動作することができ、HEVC Test Model(HM)に準拠することができる。代替的に、ビデオエンコーダ20およびビデオデコーダ30は、代替的にMPEG−4、Part 10、Advanced Video Coding(AVC)と呼ばれるITU−T H.264規格など、他のプロプライエタリ規格または業界規格、あるいはそのような規格の拡張に従って動作し得る。しかしながら、本開示の技法は、いかなる特定のコーディング規格にも限定されない。ビデオコーディング規格の他の例には、MPEG−2およびITU−T H.263がある。図1には示されていないが、いくつかの態様では、ビデオエンコーダ20およびビデオデコーダ30は、それぞれオーディオエンコーダおよびオーディオデコーダと統合されてよく、適切なMUX−DEMUXユニット、または他のハードウェアおよびソフトウェアを含んで、共通のデータストリームまたは別個のデータストリーム中のオーディオとビデオの両方の符号化を処理することができる。適用可能な場合、MUX−DEMUXユニットは、ITU H.223マルチプレクサプロトコル、またはユーザデータグラムプロトコル(UDP)などの他のプロトコルに準拠することができる。
[0041]ITU−T H.264/MPEG−4(AVC)規格は、Joint Video Team(JVT)として知られる共同パートナーシップの成果として、ISO/IEC Moving Picture Experts Group(MPEG)とともにITU−T Video Coding Experts Group(VCEG)によって策定された。いくつかの態様では、本開示で説明される技法は、一般にH.264規格に準拠するデバイスに適用され得る。H.264規格は、ITU−T研究グループによる2005年3月付けのITU−T勧告H.264「Advanced Video Coding for generic audiovisual services」に記載されており、本明細書ではH.264規格またはH.264仕様、あるいはH.264/AVC規格または仕様と呼ばれ得る。Joint Video Team(JVT)はH.264/MPEG−4 AVCへの拡張に取り組み続けている。
[0042]ビデオエンコーダ20およびビデオデコーダ30は各々、1つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ディスクリート論理、ソフトウェア、ハードウェア、ファームウェアなど、種々の適切なエンコーダ回路のいずれか、またはそれらの任意の組合せとして実装され得る。本技法が部分的にソフトウェアで実装される場合、デバイスは、適切な非一時的コンピュータ可読媒体にソフトウェアの命令を記憶し、1つまたは複数のプロセッサを使用してその命令をハードウェアで実行して、本開示の技法を実行し得る。ビデオエンコーダ20およびビデオデコーダ30の各々は1つまたは複数のエンコーダまたはデコーダ中に含まれてよく、そのいずれも、それぞれのデバイスにおいて複合エンコーダ/デコーダ(コーデック)の一部として統合されてよい。
[0043]JCT−VCは、HEVC規格の開発に取り組んでいる。HEVC規格化の取り組みは、HEVC Test Model(HM)と呼ばれるビデオコーディングデバイスの発展的モデルに基づく。HMは、たとえば、ITU−T H.264/AVCに従う既存のデバイスに対してビデオコーディングデバイスのいくつかの追加の能力を仮定する。たとえば、H.264は9つのイントラ予測符号化モードを提供するが、HMは33個ものイントラ予測符号化モードを提供し得る。
[0044]一般に、HMの作業モデルは、ビデオフレームまたはピクチャが、ルーマサンプルとクロマサンプルの両方を含む一連のツリーブロックまたは最大コーディングユニット(LCU)に分割され得ることを記載している。ビットストリーム内のシンタックスデータが、ピクセルの数に関して最大コーディングユニットであるLCUのサイズを定義し得る。スライスは、コーディング順序でいくつかの連続的なツリーブロックを含む。ビデオフレームまたはピクチャは、1つまたは複数のスライスに区分され得る。各ツリーブロックは、4分木に従ってコーディングユニット(CU)に分割され得る。一般に、4分木データ構造はCUごとに1つのノードを含み、ルートノードはツリーブロックに対応する。CUが4つのサブCUに分割された場合、CUに対応するノードは4つのリーフノードを含み、リーフノードの各々はサブCUのうちの1つに対応する。
[0045]4分木データ構造の各ノードは、対応するCUのシンタックスデータを与え得る。たとえば、4分木のノードは、そのノードに対応するCUがサブCUに分割されるかどうかを示す分割フラグを含み得る。CUのシンタックス要素は、再帰的に定義されてよく、CUがサブCUに分割されるかどうかに依存し得る。CUがさらに分割されない場合、そのCUはリーフCUと呼ばれる。本開示では、元のリーフCUの明示的な分割が存在しない場合でも、リーフCUの4つのサブCUをリーフCUとも呼ぶ。たとえば、16×16サイズのCUがさらに分割されない場合、この16×16のCUが決して分割されなくても、4つの8×8のサブCUをリーフCUとも呼ぶ。
[0046]CUは、CUがサイズの差異を有さないことを除いて、H.264規格のマクロブロックと同様の目的を有する。たとえば、ツリーブロックは、4つの子ノード(サブCUとも呼ばれる)に分割されてよく、各子ノードは、今度は親ノードとなり、別の4つの子ノードに分割されてよい。4分木のリーフノードと呼ばれる、最後の分割されていない子ノードは、リーフCUとも呼ばれるコーディングノードを備える。コーディングされたビットストリームに関連するシンタックスデータは、最大CU深さと呼ばれる、ツリーブロックが分割され得る最大回数を定義することができ、また、コーディングノードの最小サイズを定義することができる。それに応じて、ビットストリームは最小コーディングユニット(SCU)も定義することができる。本開示では、HEVCの状況におけるCU、PU、またはTU、あるいは他の規格の状況における同様のデータ構造(たとえば、H.264/AVCにおけるマクロブロックおよびそれのサブブロック)のいずれかを指すために「ブロック」という用語を使用する。
[0047]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は、形状が正方形または非正方形(たとえば、矩形)であり得る。
[0048]HEVC規格は、CUごとに異なり得るTUに従った変換を可能にする。TUは、一般に、区分されたLCUについて定義された所与のCU内のPUのサイズに基づいてサイズ決定されるが、常にそうであるとは限らない。TUは、一般にPUと同じサイズであるかまたはPUよりも小さい。いくつかの例では、CUに対応する残差サンプルは、「残差4分木」(RQT:residual quad tree)として知られる4分木構造を使用して、より小さいユニットに再分割され得る。RQTのリーフノードは、変換ユニット(TU)と呼ばれることがある。TUに関連するピクセル差分値は、変換係数を生成するように変換されてよく、その変換係数は量子化され得る。
[0049]リーフCUは、1つまたは複数の予測ユニット(PU)を含み得る。一般に、PUは、対応するCUの全部または一部分に対応する空間的エリアを表し、そのPUの参照サンプルを取り出すためのデータを含み得る。その上、PUは、予測に関係するデータを含む。たとえば、PUがイントラモード符号化されるとき、PUのデータは、PUに対応するTUのイントラ予測モードを記述するデータを含み得る、残差4分木(RQT)中に含まれ得る。別の例として、PUがインターモード符号化されるとき、PUは、PUのための1つまたは複数の動きベクトルを定義するデータを含み得る。PUの動きベクトルを定義するデータは、たとえば、動きベクトルの水平成分、動きベクトルの垂直成分、動きベクトルの解像度(たとえば、1/4ピクセル精度もしくは1/8ピクセル精度)、動きベクトルが指す参照ピクチャ、および/または動きベクトルの参照ピクチャリスト(たとえば、リスト0、リスト1、もしくはリストC)を記述し得る。
[0050]1つまたは複数のPUを有するリーフCUはまた、1つまたは複数の変換ユニット(TU)を含み得る。変換ユニットは、上で論じられたように、(TU4分木構造とも呼ばれる)RQTを使用して指定され得る。たとえば、分割フラグは、リーフCUが4つの変換ユニットに分割されるかどうかを示し得る。次いで、各変換ユニットはさらに、さらなるサブTUに分割され得る。TUがさらに分割されないとき、そのTUはリーフTUと呼ばれ得る。一般に、イントラコーディングの場合、リーフCUに属するすべてのリーフTUは同じイントラ予測モードを共有する。すなわち、一般に、リーフCUのすべてのTUの予測値を計算するために同じイントラ予測モードが適用される。イントラコーディングの場合、ビデオエンコーダは、イントラ予測モードを使用して、各リーフTUの残差値を、TUに対応するCUの一部と元のブロックとの間の差分として計算し得る。TUは、必ずしもPUのサイズに制限されるとは限らない。したがって、TUはPUよりも大きくまたは小さくなり得る。イントラコーディングの場合、PUは、同じCUのための対応するリーフTUと同じ位置にあり得る。いくつかの例では、リーフTUの最大サイズは、対応するリーフCUのサイズに対応し得る。
[0051]その上、リーフCUのTUはまた、残差4分木(RQT)と呼ばれる、それぞれの4分木データ構造に関連付けられ得る。すなわち、リーフCUは、リーフCUがどのようにTUに区分されるかを示す4分木を含み得る。TU4分木のルートノードは一般にリーフCUに対応し、CU4分木のルートノードは一般にツリーブロック(またはLCU)に対応する。分割されないRQTのTUはリーフTUと呼ばれる。一般に、本開示では、別段明記しない限り、リーフCUおよびリーフTUに言及するためにそれぞれCUおよびTUという用語を使用する。
[0052]ビデオシーケンスは、一般に、一連のビデオフレームまたはピクチャを含む。ピクチャグループ(GOP)は、一般に、ビデオピクチャのうちの一連の1つまたは複数を備える。GOPは、GOP中に含まれるいくつかのピクチャを記述するシンタックスデータを、GOPのヘッダ中、ピクチャのうちの1つまたは複数のヘッダ中、または他の場所に含み得る。各ピクチャのスライスは、それぞれのスライスの符号化モードを記述するスライスシンタックスデータを含み得る。ビデオエンコーダ20は、一般に、ビデオデータを符号化するために、個々のビデオスライス内のビデオブロックに対して動作する。ビデオブロックは、CU内のコーディングノードに対応し得る。ビデオブロックは、固定のサイズまたは可変のサイズを有してよく、指定のコーディング規格に応じてサイズが異なり得る。
[0053]一例として、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%とに区分される。25%の区分に対応するCUの部分は、「n」とその後ろに付く「Up」、「Down」、「Left」、または「Right」という表示によって示される。したがって、たとえば、「2N×nU」は、上部の2N×0.5N PUと下部の2N×1.5N PUとで水平方向に区分された2N×2N CUを指す。
[0054]本開示では、「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に等しいとは限らない。
[0055]CUのPUを使用したイントラ予測コーディングまたはインター予測コーディングの後、ビデオエンコーダ20は、CUのTUのための残差データを計算し得る。PUは、(ピクセル領域とも呼ばれる)空間領域において予測ピクセルデータを生成する方法またはモードを記述するシンタックスデータを備えてよく、TUは、変換、たとえば、残差ビデオデータへの離散コサイン変換(DCT)、整数変換、ウェーブレット変換、または概念的に同様の変換の適用後の、変換領域にける係数を備え得る。残差データは、符号化されていないピクチャのピクセルと、PUに対応する予測値との間のピクセル差分に対応し得る。ビデオエンコーダ20は、CUのための残差データを含むTUを形成し、次いで、TUを変換して、CUの変換係数を生成し得る。
[0056]変換係数を生成するための任意の変換の後に、ビデオエンコーダ20は、変換係数の量子化を実行し得る。量子化は、一般に、さらなる圧縮を実現する、係数を表すために使用されるデータの量をできるだけ低減するために変換係数が量子化される処理を指す。量子化処理は、係数の一部または全部に関連するビット深度を低減し得る。たとえば、量子化中にnビット値がmビット値へと切り捨てられてよく、ただし、nはmよりも大きい。
[0057]量子化の後に、ビデオエンコーダは、変換係数を走査することができ、量子化された変換係数を含む2次元行列から1次元ベクトルを生成する。走査は、より高いエネルギー(したがってより低い周波数)の係数をアレイの前方に配置し、より低いエネルギー(したがってより高い周波数)の係数をアレイの後方に配置するように設計され得る。いくつかの例では、ビデオエンコーダ20は、あらかじめ定義された走査順序を利用して、量子化された変換係数を走査し、エントロピー符号化され得る直列化されたベクトルを生成し得る。他の例では、ビデオエンコーダ20は適応走査を実行し得る。量子化された変換係数を走査して1次元ベクトルを形成した後に、ビデオエンコーダ20は、たとえば、コンテキスト適応可変長コーディング(CAVLC)、コンテキスト適応バイナリ算術コーディング(CABAC)、シンタックスベースコンテキスト適応バイナリ算術コーディング(SBAC)、確率間隔区分エントロピー(PIPE)コーディング、または別のエントロピー符号化方法に従って、1次元ベクトルをエントロピー符号化し得る。ビデオエンコーダ20はまた、ビデオデータを復号する際にビデオデコーダ30が使用するための符号化されたビデオデータに関連するシンタックス要素をエントロピー符号化し得る。
[0058]CABACを実行するために、ビデオエンコーダ20は、送信されるべきシンボルに、コンテキストモデル内のコンテキストを割り当て得る。コンテキストは、たとえば、シンボルの隣接値が0ではないかどうかに関係し得る。CAVLCを実行するために、ビデオエンコーダ20は、送信されるべきシンボルに対して可変長コードを選択し得る。VLCにおけるコードワードは、比較的短いコードが優勢(more probable)シンボルに対応し、より長いコードが劣勢(less probable)シンボルに対応するように構成され得る。このようにして、VLCの使用は、たとえば、送信されるべき各シンボルに対して等長のコードワードを使用する場合よりも、ビットの節約を達成し得る。確率の決定は、シンボルに割り当てられるコンテキストに基づき得る。
[0059]全般に、本開示は、ソースデバイス12、宛先デバイス14、ビデオエンコーダ20、ビデオデコーダ30、または、ビデオデータの処理、転送、記憶、もしくは取り出し(retrieval)に関与する他のデバイスによって実行され得る、様々な技法を説明する。説明のために、本開示の技法は、ビデオエンコーダ20およびビデオデコーダ30に関して説明される。しかしながら、ビデオプリプロセシングユニットもしくはビデオポストプロセシングユニット、カプセル化器、カプセル化解除器、マルチプレクサ、デマルチプレクサ、メディア認識ネットワーク要素(MANE)、または、ビデオデータの処理に関連する他のデバイスのような他のデバイスも、これらの技法のいずれかまたはすべてによって構成され得る。様々な技法が、単独で、または任意の組合せで一緒に実行され得る。
[0060]本開示は、ビデオエンコーダ20およびビデオデコーダ30によってコーディングされ得る、次元範囲パラメータセットを導入する。次元範囲パラメータセットは、あるビットストリームに対して、各々のスケーラブルな次元のスケーラビリティレベルの範囲を規定することができる。たとえば、次元範囲パラメータセットは、空間次元、時間次元、SNR/品質次元、ビュー次元、カラービット深度次元、クロマサンプルフォーマット次元または他のそのようなスケーラブルな次元のいずれかまたはすべての範囲を規定することができる。次元範囲パラメータセットは、ビットストリーム全体に適用可能であり得る。言い換えると、ビデオエンコーダ20は、符号化されたビデオデータが次元範囲パラメータセットにおいてシグナリングされるデータに従うように、ビットストリームのすべてのビデオデータを符号化することができるが、ビデオデコーダ30は、次元範囲パラメータセットにおいてシグナリングされるデータに少なくとも一部基づいて、ビットストリームのすべてのコーディングされたビデオデータを復号することができる。
[0061]特定のスケーラブルな次元に属するNALユニットの特性は、次元範囲パラメータセットのデータによって示されるように、ビットストリーム中で変化してもしなくてもよい。たとえば、スケーラブルな次元の特定の特性が変化せず、ビットストリームがその特定のスケーラブルな次元においてスケーラブルではない場合、その特性は、NALユニットヘッダにおいてシグナリングされる必要はない。
[0062]次元範囲パラメータセットによって示されるように、スケーラブルな次元の特性が変化できN個の可能な値を有し得る場合、そのスケーラブルな次元の特性を表すために、特定の数のビットがNALユニットヘッダ内で割り当てられ得る。たとえば、Nを整数とすると、ceil(log2(N))個のビットが、特性を表すためにNALユニットヘッダ内で割り当てられてよく、ceil(X)はXの「シーリング(最高限度)」、または(返される値が整数ではないとすると、次の最も近い整数への)切り上げ値を返す。
[0063]NALユニットヘッダ中のすべての可能な次元のすべての特性を、特性セットとして、ビデオエンコーダ20は一緒にシグナリングすることができ、ビデオデコーダ30は一緒に取り出す(retrieval)ことができる。特性セットは、すべての次元のすべての特性にマッピングされ得る。
[0064]次元の特性は変化し得る。いくつかの例では、スケーラブルな次元の現実の値をシグナリングするのではなく、ビデオエンコーダ20およびビデオデコーダ30は、スケーラブルな次元の現実の値のインデックス値をコーディングし得る。たとえば、ビュー次元のビューのview_id値をシグナリングするのではなく、ビデオエンコーダ20およびビデオデコーダ30はビュー順序インデックス値をコーディングし、ビュー順序インデックス値は、別個のマッピングテーブルによって、それぞれのview_id値にマッピングされ得る。別の例として、ビットストリームのビット深度スケーラブル次元は、8ビット、10ビット、および12ビットの信号を含み得る。そのようなカラービット深度のためにNALユニットヘッダにおいて「8」、「10」、および「12」をシグナリングするのではなく、ビデオエンコーダ20およびビデオデコーダ30は、値「0」、「1」、および「2」を使用することができ、これらが再び、それぞれ「8」、「10」、および「12」にマッピングされ得る。したがって、ビデオエンコーダ20およびビデオデコーダ30は、ビットストリームのための値マッピングテーブルに対するインデックスをコーディングするように構成され得る。値マッピングテーブルに対するインデックスは、次元範囲パラメータセットの一部を形成することができ、データの別個のセットとしてコーディングされ得る。そのようなマッピングテーブルは、特定のコーディングされたビデオシーケンス、またはビットストリーム全体に適用可能であり得る。
[0065]本開示はまた、サブビットストリーム拡張に適用可能であり得る技法を説明する。ビットストリームが1つまたは複数のスケーラブルな次元を含む場合、いくつかの宛先デバイスは、特定の次元の様々なレベルを要求することができるが、他の宛先デバイスは、特定の次元の単一のレベル、たとえば基本レベルのみを要求してよい。ネットワーク内のメディアアウェアネットワーク要素(MANE:media-aware network element)(図1には示されないが、一般に、接続16に沿ったデバイスに対応し得る)は、サブビットストリーム拡張を実行して、要求されたデータを様々な宛先デバイスに提供することができる。
[0066]たとえば、ビュー次元は複数の異なるビューを含み得る。1つの宛先デバイスは、多視点3次元再生(multi-perspective three-dimensional playback)が可能であり得るので、すべての利用可能なビューを要求することができる。それに従って、MANEは、すべての利用可能なビューを含むサブビットストリーム(またはフルビットストリーム)をこの宛先デバイスに提供することができる。別の宛先デバイスは、ステレオスコピック3次元再生(stereoscopic there-dimensional playback)のみが可能であり得るので、宛先デバイスは2つのビューのみを要求する。したがって、すべてのビューをこの宛先デバイスに送信するのではなく、MANEは、2つのビューのみを有するサブビットストリームを抽出し、このサブビットストリームを宛先デバイスに送信することができる。
[0067]本開示の技法によれば、MANEのようなサブビットストリーム抽出を実行するデバイスは、抽出されたサブビットストリーム中のNALユニットのNALユニットヘッダが、フルビットストリーム中の対応するNALユニットの元のNALユニットヘッダよりも使用するビットが少なくなるように、次元範囲パラメータセットと、与えられれば値マッピングテーブルに対するインデックスとを調整することができる。たとえば、宛先デバイスがステレオスコピック3次元再生のみが可能であり、たとえばview_id 32および159にマッピングされるビュー順序インデックス「1」および「7」を有するビューを受信する上記の場合、MANEは、ビュー順序インデックスの値をそれぞれ「0」および「1」にするように調整し、ビュー順序インデックス「0」をview_id 32にマッピングし、ビュー順序インデックス「1」をview_id 159にマッピングするように、マッピングテーブルを調整することができる。
[0068]以下の表1は、次元範囲パラメータセットに対するシンタックスの例示的なセットを提供する。
Figure 2014522187
[0069]表1の様々なシンタックス要素の例示的な意味が、以下で説明される。Dim_parameter_set_idは、次元範囲パラメータセットの識別情報を示し得る。いくつかの例では、レイヤ化された(スケーラブルな)コーディングされたビデオシーケンス全体の復号の間、1つのみの次元パラメータセットが、アクティブになることが許される。複数のコーディングされたビデオシーケンスが同じdim_parameter_set_idを共有する場合、次元範囲パラメータは、ビットストリーム中の複数のコーディングされたビデオシーケンスのために使用され得る。次元範囲パラメータセットは、シーケンスパラメータセットよりも、パラメータセット階層においてより高い層にあり得る。さらに、対応する次元範囲パラメータセットを識別するデータが、SPSにおいてコーディングされ得る。
[0070]Temporal_level_cnt_bitは、temporal_level_cntをシグナリングするために使用されるビットの数を示すことができ、これは以下の表2に関して説明される。いくつかの例では、この値が0に等しい場合、時間スケーラビリティはサポートされず、各VCL NALユニットは、0に等しいtemporal_idを有すると推測される。temporal_level_cnt(以下の表2に関して説明される)の値によって示されるような、このコーディングされるビデオシーケンスでサポートされる時間レベルの数/カウントは、両端を含めて0から(2<<temporal_level_cnt_bit−1)にわたってよく、「<<」はビットごとの左シフトの演算子を表す。
[0071]Chroma_format_cnt_bitは、chroma_format_cntをシグナリングするために使用されるビットの数を示すことができ、これは以下の表2に関して説明される。いくつかの例では、この値が0に等しい場合、クロマサンプルフォーマットのスケーラビリティはサポートされず、各VCL NALユニットは、プロファイルに応じて、4−2−0または4−4−4のサンプリングフォーマットを有すると推測される。chroma_format_cnt(以下の表2に関して説明される)の値によって示される、このコーディングされるビデオシーケンスでサポートされるクロマサンプルフォーマットの数/カウントは、両端を含めて0から(2<<chroma_format_cnt_bit−1)にわたる。
[0072]Bit_depth_cnt_bitは、bit_depth_cntをシグナリングするために使用されるビットの数を示すことができ、これは以下の表2に関して説明される。いくつかの例では、bit_depth_cnt_bitの値が0に等しい場合、カラービット深度のスケーラビリティはサポートされず、各VCL NALユニットは、プロファイルに応じて、8ビットまたは10ビットまたは12ビットとしてコーディングされると推測される。bit_depth_cntの値によって示される、このコーディングされるビデオシーケンスにおいてサポートされるビット深度の数/カウントは、両端を含めて0から(2<<bit_depth_cnt−1)にわたり得る。
[0073]Dependency_cnt_bitは、dependency_layer_cntをシグナリングするために使用されるビットの数を示すことができ、これは以下の表2に関して説明される。いくつかの例では、dependency_cnt_bitの値が0に等しい場合、時間スケーラビリティまたはCGSはサポートされず、各VCL NALユニットは、0に等しいdependency_idを有すると推測される。このコーディングされるビデオシーケンスにおいてサポートされる依存性レイヤの数/カウントは、両端を含めて0から(2<<dependency_layer_cnt_bit−1)にわたり得る。
[0074]Quality_cnt_bitは、quality_level_cntをシグナリングするために使用されるビットの数を示すことができ、これは以下の表2に関して説明される。いくつかの例では、quality_cnt_bitの値が0に等しい場合、品質/SNRのスケーラビリティはサポートされず、各VCL NALユニットは、0に等しいquality_idを有すると推測される。このコーディングされるビデオシーケンスにおいてサポートされる品質レベルの数/カウントは、両端を含めて0から(2<<quality_cnt_bit−1)にわたり得る。
[0075]View_cnt_bitは、view_cntをシグナリングするために使用されるビットの数を示すことができ、これは以下の表2に関して説明される。いくつかの例では、view_cnt_bitの値が0に等しい場合、1つのみのビューがサポートされ、各VCL NALユニットは、0に等しいview_idとビュー順序インデックスとを有すると推測される。このコーディングされるビデオシーケンスにおいてサポートされるビューの数/カウントは、両端を含めて0から(2<<view_cnt_bit−1)にわたり得る。
[0076]0に等しいDepth_present_cnt_bitは、深度データがビットストリームに含まれないことを示し得る。depth_present_cnt_bitの値が1に等しいことは、深度VCL NALユニットがビットストリームに含まれることを示すことができ、NALユニットがテクスチャビュー成分か深度ビュー成分かを示す1ビットが、NALユニットヘッダ中にあり得る。
[0077]上の表1は、要素dim_cnt_table()を含む。下の表2は、表1のdim_cnt_table()のシンタックス要素のセットの一例を表す。一般に、表1に関して上で論じられるシンタックス要素の値によって示されるような、表2のあるシンタックス要素のみを、ビデオエンコーダ20はシグナリングし、ビデオデコーダ30は受信することができる。
Figure 2014522187
[0078]表2の様々なシンタックス要素の例示的な意味が、以下で論じられる。Temporal_level_cntは、コーディングされたビデオシーケンスにおいてサポートされる時間レベルの数を規定することができる。temporal_level_cntの値は、存在しない場合は1であると推測され得る。temporal_level_cntが存在するかどうかは、表1のtemporal_level_cnt_bitの値に基づいて決定され得る。
[0079]Chroma_format_cntは、コーディングされたビデオシーケンスにおいてサポートされる異なるクロマサンプルフォーマットの数を規定することができる。chroma_format_cntの値は、存在しない場合は1であると推測され得る。chroma_format_cntが存在するかどうかは、表1のchroma_format_cnt_bitの値に基づいて決定され得る。
[0080]Bit_depth_cntは、コーディングされたビデオシーケンスにおいてサポートされる異なるカラービット深度の数を規定することができる。bit_depth_cntの値は、存在しない場合は1であると推測され得る。bit_depth_cntが存在するかどうかは、表1のbit_depth_cnt_bitの値に基づいて決定され得る。
[0081]Dependency_layer_cntは、コーディングされたビデオシーケンスにおいてサポートされる依存性レベルの数を規定することができる。dependency_layer_cntの値は、存在しない場合は1であると推測され得る。dependency_layer_cntが存在するかどうかは、表1のdependency_layer_cnt_bitの値に基づいて決定され得る。
[0082]Quality_level_cntは、コーディングされたビデオシーケンスの各々の依存性レイヤにおいてサポートされる品質レベルの最大の数を規定することができる。たとえば、1つのquarter common intermediate format(qcif)レイヤは、3つの品質レイヤを含んでよく、別のcommon intermediate format(cif)レイヤは、1つの品質レイヤを含んでよく、quality_cntは、この場合3に設定され得る。quality_level_cntの値は、存在しない場合は1であると推測され得る。quality_level_cntが存在するかどうかは、表1のquality_cnt_bitの値に基づいて決定され得る。
[0083]View_cntは、コーディングされたビデオシーケンスに含まれるビューの数を規定することができる。view_cntの値は、存在しない場合は1であると推測され得る。view_cntが存在するかどうかは、表1のview_cnt_bitの値に基づいて決定され得る。
[0084]Depth_present_cntは、マルチビュープラス深度フォーマットが関係する限り、ビュー成分中のサブビュー成分の異なるタイプの数を規定することができる。depth_present_cntの値は、存在しない場合は1であると推測され得る。depth_present_cntが存在するかどうかは、表1のdepth_present_cnt_bitの値に基づいて決定され得る。これらの技法の概念はさらに、各々のビュー成分の1つまたは複数の補助的なピクチャ、またさらにはレイヤ化された深度を含む、任意の3Dビデオフォーマットに対して拡張され得る。
[0085]いくつかの例では、上で説明されたシンタックス要素は、ルミナンス(ルーマ)成分またはクロミナンス(クロマ)成分のような、特定の成分に対して特有であり得る。その上、ビット深度値のような、別個の値が、ルーマとクロマに対してシグナリングされ得る。
[0086]上の表2に示されるような、スケーラブルな次元のシンタックス要素は、一般に2つのカテゴリのうちの1つに対応する。たとえば、tamporal_id、quality_id、およびdependency_idを含み得る第1のカテゴリでは、シグナリングされるインデックス値と、対応するスケーラブルな次元の値とは同等である。たとえば、temporal_level_cntが3である場合、temporal_idの値は、すべてのVCL NALユニットにおいて、両端を含めて0から2にわたり得る。
[0087]たとえば、ビュー次元およびカラービット深度次元を含み得る、他のカテゴリでは、view_idおよびbit_depthのような厳密な特性の値は通常、インデックスよりも多くのビットを使用する。たとえば、view_cntは3に等しく設定されてよく、3つのビューがview_idの値4、6、8を有してよく、NALユニットにおいて4、6、および8がシグナリングされるべきである場合、最大で4ビットが必要であり得る。一方、0、1、2のみがシグナリングされるべきである場合、2ビットのみが必要である。よって、値マッピングテーブルに対するインデックスは、このカテゴリに属するスケーラブルな次元に対して、インデックス値(より効率的である)から実際の特性(アプリケーションにとってより意味がある)を決定するためにシグナリングされ得る。以下の表3は、値マッピングテーブルに対するインデックスのシンタックスの例を表す。
Figure 2014522187
[0088]表3の値マッピングテーブルに対するインデックスの例示的な意味が、以下で説明される。Chroma_format_idc[i]は、iに等しいクロマインデックスを有するVCL NALユニットにおける、ルーマサンプリングに対するクロマサンプリングを規定することができる。chroma_format_idcの値は、両端を含めて0から3の範囲にあり得る。chroma_format_idcが存在しない場合、chroma_format_idcの値は、1に等しいと推測され得る(4−2−0クロマフォーマット)。chroma_format_idcの値は、表4に示されるように、クロマフォーマットにマッピングされ得る。
Figure 2014522187
[0089]再び表3を参照すると、bit_depth_minus8[i]プラス8は、iに等しいビット深度インデックスを有するVCL NALユニット中の、色成分のサンプルのビット深度を規定することができる。View_id[i]は、iに等しいビューインデックスを有するNALユニットのビュー識別子を規定することができる。
[0090]あるいは、各次元において、カウントが1より大きい場合、値のみがシグナリングされ得る。カウントが1である場合、0インデックスに対応する値は、明示的にシグナリングされるのではなく、プロファイルによって推測され得る。以下の表5は、この例のシンタックスデータの例示的なセットを提供し、値は、カウントが1より大きい場合にのみ、シグナリングされる。
Figure 2014522187
[0091]以下の表6は、本開示の技法による、シーケンスパラメータセット(SPS)のシンタックスの例示的なセットを提供する。いくつかのシンタックス要素は、HEVC WD7のSPSと同じままであり得る。これらのシンタックス要素の意味も、HEVC WD7のSPSと同じままであり得る。表6の例の追加されたまたは修正されたシンタックス要素の意味の例が、以下で説明される。
Figure 2014522187
[0092]表6のSPSの例では、HEVC WD7のSPSに対して追加または修正されたシンタックス要素は、dim_parameter_set_idと、chroma_format_idxと、sps_view_extension()と、bit_depth_idxとを含む。関数function_chroma_idc(profile_idc)は、次のように定義され得る。すなわち、function_chroma_idc(profile_idc)は、そのようなprofile_idcがデフォルトのクロマサンプルフォーマット、たとえば4−2−0を有する場合、0を返し、それ以外の場合1を返す。関数function_view(profile_idc)は、次のように定義され得る。すなわち、function_view(profile_idc)は、そのようなprofile_idcが複数のビューコーディングに関連する場合、0を返し、それ以外の場合1を返す。Sps_view_extension()シンタックステーブルは、ビュー依存性と、マルチビュービデオコーディングまたは3Dビデオに関連する他の情報とを含み得る。関数function_bit_depth(profile_idc)は、次のように定義され得る。すなわち、function_bit_depth(profile_idc)は、そのようなprofile_idcが8ビットよりも大きなビット深度によってコーディングされる場合、0を返し、それ以外の場合1を返す。
[0093]以下の表7は、本開示の技法による、ネットワーク抽象化レイヤ(NAL)ユニットヘッダのシンタックスの例示的なセットを提供する。いくつかのシンタックス要素は、HEVC WD7のNALユニットヘッダと同じままであり得る。これらのシンタックス要素の意味も、HEVC WD7のNALユニットヘッダと同じままであり得る。表7の例の追加されたまたは修正されたシンタックス要素の意味の例が、以下で説明される。
Figure 2014522187
[0094]表7のNALユニットヘッダの例では、HEVC WD7に対して追加または修正されたシンタックス要素は、nalUnitScalableCharSetとreserved_bits、さらには、m、r、およびnalUnitHeaderBytesの計算を含む。NalUnitScalableCharSetは、NALユニットのスケーラブルな特性セットを規定することができる。nalUnitScalableCharSet中のビットは、たとえば、表1の次元範囲パラメータセットに基づいて、異なる次元に分離され得る。
[0095]一例では、ビデオエンコーダ20およびビデオデコーダ30は、mの値を以下のように計算することができる。
m= temporal_level_cnt_bit (2)+ chroma_format_cnt_bit (0) +
bit_depth_cnt_bit(0) + dependency_cnt_bit (1) + quality_cnt_plus1_bit (0) + view_cnt_plut1_bit(1)
[0096]この例では、mは4ビットに等しい。この例のビットストリームは、たとえば各ビューに対して異なる空間レイヤを有するステレオスコピック(2つのビューの)コンテンツを表すことができ、ビットストリームは最大で3つの時間レイヤを有し得る。
[0097]別の例では、ビデオエンコーダ20およびビデオデコーダ30は、mの値を以下のように計算することができる。
m= temporal_level_cnt_bit (3)+ chroma_format_cnt_bit (0) +
bit_depth_cnt_bit(0) + dependency_cnt_bit (0) + quality_cnt_plus1_bit (0) + view_cnt_plut1_bit(1)
[0098]この例では、mは4ビットに等しい。これは、たとえば、時間スケーラビリティを伴う7つのビューを有する、通常のマルチビューデータのビットストリームを表し得る。
[0099]別の例では、ビデオエンコーダ20およびビデオデコーダ30は、mの値を以下のように計算することができる。
m= temporal_level_cnt_bit (1)+ chroma_format_cnt_bit (0) +
bit_depth_cnt_bit(1) + dependency_cnt_bit (0) + quality_cnt_plus1_bit (0) + view_cnt_plut1_bit(0)
[0100]この例は、IBPBP(IはIフレームに対応し、BはBフレームに対応し、PはPフレームに対応する)でコーディングされるビットストリームを表すことができ、ビット深度のスケーラビリティは8ビットから10ビットである。この例では、mは2ビットに等しい。
[0101]次元範囲パラメータセットは、NALユニットヘッダ中のそれぞれのシンタックス要素を、より高機能なまたはより高度な特性へとマッピングすることを含んでよく、この特性は、それぞれのシンタックス要素によって直接伝えられないことがある。たとえば、ビュー順序インデックスまたは同様の代表的なシンタックス要素は、NALユニットヘッダ中に存在し得るが、view_id情報はNALユニットヘッダ中に存在しないことがあり、ビュー順序インデックス値のview_id値へのマッピングは、異なるシーケンスでは変化し得る。そのようなマッピングは、NALユニットヘッダ中のシンタックス要素以外の情報を伝えることができ、たとえばview_id値に基づいて、より高度な適合を実現することができる。一般に、特定の次元のインデックスは、値マッピングテーブルに対するインデックス(たとえば、表3と表5のいずれかのdim_index_2_value_table)において定義されるように、iの値に対応し得る。すなわち、スケーラブルな次元のインデックス「idx」は、値マッピングテーブルに対するインデックスにおいてシグナリングされるような、スケーラブルな次元のi番目の値に対応し得る。このテーブルはまた、値シンタックスマッピングテーブルに対するインデックスと呼ばれ得る。
[0102]いくつかの例では、本開示の技法は、統一されたNALユニットヘッダという改善された設計に関する。たとえば、NALユニットヘッダマップが、上で説明された次元範囲パラメータセットの代わりにコーディングされ得る。NALユニットヘッダマップは、NALユニットヘッダマップパラメータセット(NPS)またはシーケンスパラメータセット(SPS)においてコーディングされ得る。NALユニットヘッダマップでは、各々のスケーラビリティ次元またはビュー次元、たとえば、空間スケーラビリティ次元、時間スケーラビリティ次元、品質スケーラビリティ次元、またはビュースケーラビリティ次元は、NALユニットヘッダ中のシンタックス要素に対応し得る。その上、様々なスケーラビリティ次元のシンタックス要素は、NALユニットヘッダに対する規定された長さを有し得る。すなわち、シンタックスデータは、スケーラビリティ次元に対応するNALユニットヘッダ中のシンタックス要素に対する長さを定義することができる。
[0103]特定のスケーラブルな次元の値がコーディングされたビデオシーケンス全体(たとえば、全体のビットストリーム)に対して変化しない場合、スケーラブルな次元に対応するシンタックス要素の長さは、NALユニットヘッダにおいてゼロ(0)ビットとして定義されてよく、これは、シンタックス要素がNALユニットヘッダ中に存在しないことを意味するので、デフォルト値が、対応するビットストリーム中のすべてのNALユニットのスケーラブルな次元に対して導かれ得る。
[0104]いくつかの例では、NALユニットヘッダ中のシンタックス要素は、より小型の方式でシグナリングされ得る。たとえば、シンタックス要素のM個の可能な値があるが、値がNビットを占め得る場合(ここで、Nは、たとえば1<<ceil(log2(M+1))よりもはるかに大きい)、NALユニットヘッダ中のシンタックス要素のシグナリングはさらに、インスタンス、すなわちシンタックス要素の値に対するインデックスのみをシグナリングすることによって、最適化され得る。たとえば、H.264/AVCのマルチビュー拡張におけるview_idは通常、10ビットを使用する。しかしながら、ビューの選択されたセットが、たとえば、45、50、55、および60として、view_id値のインスタンスを有する場合、2ビットのビューインデックス(view_idxs)が、それぞれ、たとえばビュー「00」、「01」、「10」、および「11」を表すために使用され得る。その上、シンタックスデータはビューインデックスとview_idとの間のマッピングを定義する。
[0105]NPS NALユニットおよびSPS NALユニットのNALユニットヘッダは、以下の表12のNALユニットシンタックスにおいて示されるように、1バイトに固定されてよく、nal_ref_flagは1に等しく設定されてよい。nal_unit_typeは、NSP NALユニットに対しては10に等しくてよく、nal_unit_typeは、SPS NALユニットに対しては5に等しくてよい。他のタイプのNALユニットは、様々なNALユニットのタイプを使用することができる。あるいは、いくつかの例では、VCL NALユニットのみが、たとえば表12に示されるように、拡張NALユニットヘッダを含み、一方、非VCL NALユニットは、1バイトのNALユニットヘッダを含み得る。
[0106]以下の表8は、上の表1の次元範囲パラメータセットの代替として、本開示の技法による、ネットワーク抽象化レイヤ(NAL)ユニットヘッダマップパラメータセット(NPS)のシンタックスの例示的なセットを提供する。表8の例のシンタックス要素の意味の例が、以下で説明される。
Figure 2014522187
[0107]表8の例示的なNALユニットヘッダマップパラメータセットシンタックスにおいて、nal_unit_header_map_id、temporal_id_len、dependency_id_len、quality_id_len、およびview_idx_lenの記述子が、HEVC WD7に対して修正される。加えて、表8の例示的なNALユニットヘッダマップパラメータセットシンタックスは、シンタックス要素priority_id_lenと、reserved_flags_lenと、priority_map()と、条件付きで信号view_idx2id_table()とを加える。NALユニットヘッダマップパラメータシンタックスの他のシンタックス要素は、HEVC WD7と同じままであり得る。NALユニットヘッダマップパラメータセット(NPS)は一般に、NALユニットヘッダマップを規定することができる。いくつかの例では、各々のコーディングされたビデオシーケンスにおいて、ただ1つのNALユニットヘッダがアクティブであり得る。すなわち、いくつかの例では、1つだけのNALユニットヘッダマップが、特定のビットストリームに適用される。
[0108]Nal_unit_header_map_idは、NALユニットヘッダマップパラメータセットの識別情報を規定することができる。上で述べられたように、いくつかの例では、各々のコーディングされたビデオシーケンスにおいて、ただ1つのNALユニットヘッダマップがアクティブであり得る。代替的な例では、nal_unit_header_map_idは存在せず、各々のコーディングされたビデオシーケンスは、コーディングされたビデオシーケンス中の最初のNALユニットとして、1つのNALユニットヘッダマップNALユニットを含み得る。
[0109]Priority_id_lenは、NALユニットヘッダ中のpriority_idシンタックス要素と、優先度マップシンタックス構造中のpriority_id[i]とを表すために使用されるビットの数を規定することができる。いくつかの例では、priority_id_lenが0に等しい場合、各VCL NALユニットは、0に等しいpriority_idを有すると推測され得る。NALユニットヘッダマップパラメータセットを参照する、コーディングされたビデオシーケンス中でサポートされる優先度レイヤの数は、両端を含めて1から(2<<priority_id_len)の範囲にあり得る。
[0110]Temporal_id_lenは、NALユニットヘッダ中のtemporal_idシンタックス要素を表すために使用されるビットの数を規定することができる。いくつかの例では、temporal_id_lenとimplicit_temporal_id_lenの両方が0に等しい場合、時間スケーラビリティはサポートされず、各VCL NALユニットは、0に等しいtemporal_idを有すると推測され得る。NALユニットヘッダマップパラメータセットを参照する、コーディングされたビデオシーケンス中でサポートされる時間レイヤの数は、(temporal_id_lenが0より大きい場合)両端を含めて1から(2<<temporal_id_len)の範囲にあってよく、または、(implicit_temporal_id_lenが0より大きい場合)両端を含めて1から(2<<implicit_temporal_id_len)の範囲にあってよい。いくつかの例では、temporal_id_lenとimplicit_temporal_id_lenの少なくとも1つは0に等しい。
[0111]Dependency_id_lenは、NALユニットヘッダ中のdependency_idシンタックス要素を表すために使用されるビットの数を規定することができる。いくつかの例では、dependency_id_lenとimplicit_dependency_id_lenの両方が0に等しい場合、空間スケーラビリティまたは粗粒度のスケーラビリティはサポートされず、各VCL NALユニットは、0に等しいdependency_idを有すると推測され得る。NALユニットヘッダマップパラメータセットを参照する、コーディングされたビデオシーケンス中でサポートされる依存性レイヤの数は、(dependency_id_lenが0より大きい場合)両端を含めて1から(2<<dependency_id_len)の範囲にあってよく、または、(implicit_dependency_id_lenが0より大きい場合)両端を含めて1から(2<<implicit_dependency_id_len)の範囲にあってよい。いくつかの例では、dependency_id_lenとimplicit_dependency_id_lenの少なくとも1つは0に等しい。
[0112]Quality_id_lenは、NALユニットヘッダ中のquality_idシンタックス要素を表すために使用されるビットの数を規定することができる。いくつかの例では、quality_id_lenとimplicit_quality_id_lenの両方が0に等しい場合、品質/SNRのスケーラビリティはサポートされず、各VCL NALユニットは、0に等しいquality_idを有すると推測され得る。NALユニットヘッダマップパラメータセットを参照する、コーディングされたビデオシーケンス中でサポートされる品質レイヤの数は、(quality_id_lenが0より大きい場合)両端を含めて1から(2<<quality_id_len)の範囲にあってよく、または、(implicit_quality_id_lenが0より大きい場合)両端を含めて1から(2<<implicit_quality_id_len)の範囲にあってよい。いくつかの例では、quality_id_lenとimplicit_quality_id_lenの少なくとも1つは0に等しい。
[0113]View_idx_lenは、view_idxシンタックス要素を表すために使用されるビットの数を規定することができる。いくつかの例では、view_cnt_lenおよびimplicit_view_id_lenの両方が0に等しい場合、1つのみのビューがサポートされ、各VCL NALユニットは、両方が0に等しいview_idとビュー順序インデックスとを有すると推測される。NALユニットヘッダマップパラメータセットを参照する、コーディングされたビデオシーケンス中でサポートされるビューの数は、(view_idx_lenが0より大きい場合)両端を含めて1から(2<<view_idx_len)の範囲にあってよく、または、(implicit_view_idx_lenが0より大きい場合)両端を含めて1から(2<<implicit_view_id_len)の範囲にあってよい。いくつかの例では、view_idx_lenとimplicit_view_idx_lenの少なくとも1つは0に等しい。
[0114]Reserved_flags_lenは、reserved_flagsシンタックス要素を表すために使用されるビットの数を規定することができる。reserved_flagsが1つまたは複数のシンタックス要素に割り当てられる場合、reserved_flags_lenは、それに従って修正されてよく、新しい1つまたは複数のシンタックス要素のための長さシンタックス要素は、NPSにおいてシグナリングされ得る。
[0115]0に等しいNps_extension_flagは、nps_extension_data_flagシンタックス要素がNALユニットヘッダマップパラメータセットRBSPシンタックス構造中に存在することを規定することができる。Nps_extension_flagは、これらの例示的な技法に従うと、ビットストリーム中で0に等しくてよい。nps_extension_flagの1という値は、ITU−T|ISO/IECによる将来の使用のために確保されていてよい。拡張が採用されビデオデコーダによってサポートされない限り、ビデオデコーダは、NALユニットヘッダマップパラメータセットNALユニット中のnps_extension_flagの値1の後の、すべてのデータを無視するように構成され得る。
[0116]Nps_extension_data_flagは、任意の値を有し得る。このことは、本開示の技法によれば、プロファイルへの一致に現在は影響しない。
[0117]表8に示されるように、いくつかの例では、priority map()シンタックス要素がシグナリングされ得る。以下の表9は、表8のpriority map()のためのシンタックスデータの例示的なセットを提供する。表9のシンタックス要素の意味が、以下で説明される。一般に、優先度マップシンタックス構造は、各々のpriority_id値に対して、temporal_id値の範囲と、dependency_id値の範囲と、quality_id値の範囲と、view_idx値の数とのうちの、1つまたは複数を規定する。
Figure 2014522187
[0118]Num_priority_idsは、NALユニットヘッダマップパラメータセットを参照する、コーディングされたビデオシーケンス中のpriority_id値の数を規定することができる。num_priority_idsを表すために使用されるビットの数は、priority_id_lenに等しくてよい。
[0119]Implicit_temporal_id_lenは、temporal_id[i]シンタックス要素を表すために使用されるビットの数を規定することができる。いくつかの例では、implicit_temporal_id_lenの値は、存在しない場合、0に等しいと推測され得る。
[0120]Implicit_dependency_id_lenは、dependency_id[i]シンタックス要素を表すために使用されるビットの数を規定することができる。いくつかの例では、priority_map()シンタックス構造が存在しない場合、implicit_dependency_id_lenの値は、0に等しいと推測され得る。
[0121]Implicit_quality_id_lenは、quality_id[i]シンタックス要素を表すために使用されるビットの数を規定することができる。いくつかの例では、priority_map()シンタックス構造が存在しない場合、implicit_quality_id_lenの値は、0に等しいと推測され得る。
[0122]Implicit_view_id_lenは、view_id[i]シンタックス要素を表すために使用されるビットの数を規定することができる。いくつかの例では、priority_map()シンタックス構造が存在しない場合、implicit_view_id_lenの値は、0に等しいと推測され得る。
[0123]Priority_id[i]は、temporal_id値の範囲、dependency_id値の範囲、quality_id値の範囲、およびview_id値の範囲のうちの1つまたは複数が以下のシンタックス要素によって規定される、i番目のpriority_id値を規定することができる。priority_id[i]を表すために使用されるビットの数は、priority_id_lenであってよい。
[0124]T_id_low_range[i]およびt_id_high_range[i]は、i番目のpriority_idに対応するtemporal_id値の範囲を規定することができる。temporal_id値の範囲は、両端を含めてt_id_low_range[i]からt_id_high_range[i]−1であってよい。これらのシンタックス要素を表すために使用されるビットの数は、implicit_temporal_id_lenであってよい。いくつかの例では、この範囲は、存在しない場合、0から0であると推測され得る。
[0125]D_id_low_range[i]およびd_id_high_range[i]は、i番目のpriority_idに対応するdependency_id値の範囲を規定することができる。dependency_id値の範囲は、両端を含めてd_id_low_range[i]からd_id_high_range[i]−1であってよい。これらの2つのシンタックス要素を表すために使用されるビットの数は、implicit_dependency_id_lenであってよい。いくつかの例では、この範囲は、存在しない場合、0から0であると推測され得る。
[0126]Q_id_low_range[i]およびq_id_high_range[i]は、i番目のpriority_idに対応するquality_id値の範囲を規定することができる。quality_id値の範囲は、両端を含めてq_id_low_range[i]からq_id_high_range[i]−1であってよい。これらの2つのシンタックス要素を表すために使用されるビットの数は、implicit_quality_id_lenであってよい。いくつかの例では、この範囲は、存在しない場合、0から0であると推測され得る。
[0127]ビデオエンコーダ20およびビデオデコーダ30は、次のように変数DQRange[i]を導出することができる。

DQRange[i] = [ d_id_low_range[i]*maxQlayer + q_id_low_range[i], d_id_high_range[i]*maxQlayer + q_id_high_range[i] ] (1)

ここで、maxQlayerは、NALユニットヘッダマップパラメータセットを参照する、すべてのコーディングされたビデオシーケンスのquality_idの最大値である。
[0128]いくつかの例では、任意の2つのpriority_id値に対して、他のスケーラビリティ次元範囲が同じであれば、2つのpriority_id値のDQ範囲は重複しない。
[0129]Num_views_for_priority_minus1[i]は、i番目のpriority_idに対応するview_idx値の数を規定することができる。num_views_for_priority_minus1の値は、両端を含めて0から((1<<implicit_view_id_len)−1)の範囲にあり得る。
[0130]View_idx[i][j]は、i番目のpriority_id値に対応する、j番目のビュー順序インデックスを規定することができる。view_id[i][j]を表すために使用されるビットの数は、implicit_view_idx_lenであってよい。いくつかの例では、view_idx[i][j]の値は、存在しない場合、0に等しいと推測され得る。
[0131]表8に示されるように、いくつかの場合には、ビューIDテーブルに対するビューインデックス(view_idx2id_table())は、NALユニットヘッダマップパラメータセットにおいてシグナリングされ得る。ビューIDテーブルに対するビューインデックスに対するシンタックスの例示的なセットは、以下の表10に示される。ビューIDテーブルに対するビューインデックスの例示的な意味は、以下で説明される。一般に、ビューIDテーブルに対するビューインデックスは、ビュー識別子の値への、各々のビューインデックス値のマッピングを規定する。ビューインデックス値は、NALユニットヘッダ中でシグナリングされてよく、対応するビュー識別子は、ビューIDテーブルに対するビューインデックスにおいて規定されたデータから決定され得る。
Figure 2014522187
[0132]View_cntは、NALユニットヘッダマップパラメータセットを参照する、コーディングされたビデオシーケンスに含まれるビューの最大の数を規定することができる。view_cntを表すために使用されるビットの数は、view_idx_lenに等しくてよい。
[0133]View_id[i]は、iに等しいビューインデックスを有する、NALユニットのビュー識別子を規定することができる。
[0134]以下の表11は、本開示の技法による、シーケンスパラメータセット(SPS)のシンタックスデータの例示的なセットを示す。HEVC WD7に対して追加または変更されたシンタックス要素の意味が、以下で論じられる。この例示的なSPSの他のシンタックス要素は詳しく論じられず、変更されないシンタックス要素の意味は、たとえばHEVC WD7において定義されたものと同じままであり得る。
Figure 2014522187
[0135]表11の例では、SPSは、追加のシンタックス要素「nal_unit_header_map_id」を含む。上で述べられたように、示されず省略記号(ellipses)によって表されるものを含む、他のシンタックス要素の意味は、たとえばHEVC WD7において定義されたものから変更されないままでよい。この例では、nal_unit_header_map_idは、シーケンスパラメータセットによって参照される、NALユニットヘッダマップパラメータセットの識別子を規定することができる。したがって、SPSは、SPSに対応するシーケンスのコーディングの間に使用される、NALユニットヘッダマップを識別することができる。
[0136]以下の表12は、NALユニットのシンタックス要素の例示的なセットを示す。やはり、いくつかのシンタックス要素が、HEVC WD7に対して追加または変更され、それらのシンタックス要素の例示的な意味が以下で説明される。HEVC WD7に対して変更されない他のシンタックス要素は、HEVC WD7において定義された意味を保ってよい。
Figure 2014522187
Figure 2014522187
[0137]この例では、NALユニットヘッダが、0x000000、0x000001、0x000002、または0x000003に等しい連続的な3バイトを含まないものとなるように、制約が定められ得る。priority_idの意味は、priority_idを表すために使用されるビットの数がpriority_id_lenであり得ることを除き、たとえば表8による対応するnal_unit_header_mapにおいて規定されるような、SVCにおける同じシンタックス要素と同様であり得る。temporal_idの意味は、temporal_idを表すために使用されるビットの数がtemporal_id_lenであり得ることを除き、たとえば表8による対応するnal_unit_header_mapにおいて規定されるような、HEVC WD7の場合と同じであり得る。
[0138]この例では、reserved_one_bitは、1に等しいものとする。reserved_one_bitの値0は、関連するコーディング規格、たとえばHEVCのさらなる拡張によって規定され得る。ビデオデコーダ30のようなデコーダは、reserved_one_bitの値を無視するように構成され得る。
[0139]dependency_idの意味は、dependency_idを表すために使用されるビットの数がdependency_id_lenであり得ることを除き、たとえば表8による対応するnal_unit_header_mapにおいて規定されるような、SVCの場合と同じシンタックス要素であり得る。quality_idの意味は、quality_idを表すために使用されるビットの数がquality_id_lenであり得ることを除き、たとえば表8による対応するnal_unit_header_mapにおいて規定されるような、SVCにおける同じシンタックス要素と同じであり得る。View_idxは、ビューのビュー順序インデックスを規定することができる。view_idxの意味は、view_idxを表すために使用されるビットの数がview_idx_lenであり得ることを除き、たとえば表8による対応するnal_unit_header_mapにおいて規定されるような、MVCにおけるビュー順序インデックスと同じであり得る。
[0140]いくつかの例では、reserved_flagsの各ビットは1に等しくてよい。reserved_flagsの他の値は、関連するコーディング規格、たとえばHEVCのさらなる拡張によって規定され得る。ビデオデコーダ30のようなデコーダは、reserved_flagsの値を無視するように構成され得る。reserved_flagsを表すために使用されるビットの数は、たとえば表8による対応するnal_unit_header_mapにおいて規定されるような、reserved_flags_lenであってよい。いくつかの例では、reserved_bitsの各ビットは1に等しくてよい。reserved_bitsの他の値は、今後の規格、または、HEVCの拡張のような規格の拡張によって規定され得る。ビデオデコーダ30のようなデコーダは、reserved_bitsの値を無視するように構成され得る。reserved_bitsを表すために使用されるビットの数は、(((m+7>>3)<<3)−m)であり得る。
[0141]上で説明された技法の代替として、implicit_temporal_id_len、implicit_dependency_id_len、implicit_quality_id_len、およびimplicit_view_idx_lenは存在しなくてよく(すなわち、シグナリングされなくてよく)、他のシンタックス要素は、仕様におけるpriority_id、temporal_id、dependency_id、およびquality_idのシンタックス要素の最大値に応じて、固定長でシグナリングされてよく、または、ue(v)、すなわち、符号のない整数指数ゴロム(Exp−Golomb)ビットストリングによってシグナリングされ得る。
[0142]いくつかの例では、表9の優先度マップは、以下の表13の優先度マップにより置き換えられてよい。
Figure 2014522187
[0143]表13の優先度マップのシンタックス要素とその意味は、全般に表9のそれらと同じままであり得る。しかしながら、特定の優先度IDに対するビューの数のビューインデックスをシグナリングするのではなく、表13の優先度マップは、v_idx_low_range[i]とv_idx_high_range[i]とを提供する。この例では、v_idx_low_range[i]およびv_idx_high_range[i]は、i番目のpriority_idに対応するview_idx値の範囲を規定する。temporal_id値の範囲は、両端を含めてv_idx_low_range[i]からv_idx_high_range[i]−1であってよい。これらの2つの範囲の値を表すために使用されるビットの数は、implicit_view_idx_lenであってよい。この範囲は、存在しない場合、0から0であると推測され得る。
[0144]いくつかの例では、特定のシンタックス要素(たとえば、temporal_id)に対する低い範囲と高い範囲とをシグナリングする代わりに、範囲の高い側(または低い側)のみ、たとえばtemporal_id_highをシグナリングすることが可能である。したがって、ビデオコーダは、範囲のシグナリングされない部分の値、たとえばtemporal_id_lowに対してゼロを推測するように構成され得る。
[0145]いくつかの例では、priority_id、temporal_id、dependency_id、quality_id、およびview_idxのいずれも、NALユニットヘッダにおいて明示的にシグナリングされない。代わりに、これらのシンタックスの1つまたは複数は、implicit_id_table()という名称のシンタックス構造において暗黙的にシグナリングされてよく、implicit_id_table()は、priority_map()シンタックス構造を置き換え得る。implicit_id_table()の例が表14に示され、シンタックス要素の意味の例が以下で与えられる。
Figure 2014522187
[0146]表14の例示的なシンタックス構造は、priority_id値の数を規定し、また、各々のpriority_id値に対して、temporal_id値の範囲と、dependency_id値の範囲と、quality_id値の範囲と、view_idx値の数とのうちの、1つまたは複数を規定する。Implicit_priority_id_lenは、num_priority_idとpriority_id[i]シンタックス要素とを表すために使用されるビットの数を規定することができる。implicit_priority_id_lenの値は、存在しない場合、0に等しいと推測され得る。Num_priority_idsは、priority_id[i]シンタックス要素の数を規定することができる。num_priority_idsを表すために使用されるビットの数は、implicit_priority_id_lenに等しくてよい。Implicit_temporal_id_lenは、temporal_id[i]シンタックス要素を表すために使用されるビットの数を規定することができる。implicit_temporal_id_lenの値は、存在しない場合、0に等しいと推測され得る。
[0147]Implicit_dependency_id_lenは、dependency_id[i]シンタックス要素を表すために使用されるビットの数を規定することができる。priority_map()シンタックス構造が存在しない場合、implicit_dependency_id_lenの値は、0に等しいと推測され得る。Implicit_quality_id_lenは、quality_id[i]シンタックス要素を表すために使用されるビットの数を規定することができる。priority_map()シンタックス構造が存在しない場合、implicit_quality_id_lenの値は、0に等しいと推測され得る。Implicit_view_idx_lenは、view_id[i]シンタックス要素を表すために使用されるビットの数を規定することができる。priority_map()シンタックス構造が存在しない場合、implicit_view_idx_lenの値は、0に等しいと推測され得る。
[0148]Priority_id[i]は、temporal_id値の範囲、dependency_id値の範囲、quality_id値の範囲、およびview_id値の範囲のうちの1つまたは複数が、t_id_low_range[i]、t_id_high_range[i]、d_id_low_range[i]、d_id_high_range[i]、q_id_low_range[i]、およびq_id_high_range[i]というシンタックス要素によって規定される、i番目のpriority_id値を規定することができる。priority_id[i]を表すために使用されるビットの数は、implicit_priority_id_lenであってよい。あるいは、priority_id[i]は存在しなくてよく、priority_id[i]は、iに等しい、または、iの関数としての何らかの他の値であると推測され得る。
[0149]T_id_low_range[i]およびt_id_high_range[i]は、i番目のpriority_idに対応するtemporal_id値の範囲を規定することができる。temporal_id値の範囲は、両端を含めてt_id_low_range[i]からt_id_high_range[i]−1であってよい。これらのシンタックス要素を表すために使用されるビットの数は、implicit_temporal_id_lenであってよい。この範囲は、存在しない場合、0から0であると推測され得る。
[0150]D_id_low_range[i]およびd_id_high_range[i]は、i番目のpriority_idに対応するdependency_id値の範囲を規定することができる。dependency_id値の範囲は、両端を含めてd_id_low_range[i]からd_id_high_range[i]−1であってよい。これらの2つのシンタックス要素を表すために使用されるビットの数は、implicit_dependency_id_lenであってよい。この範囲は、存在しない場合、0から0であると推測され得る。
[0151]Q_id_low_range[i]およびq_id_high_range[i]は、i番目のpriority_idに対応するquality_id値の範囲を規定することができる。quality_id値の範囲は、両端を含めてq_id_low_range[i]からq_id_high_range[i]−1であってよい。これらの2つのシンタックス要素を表すために使用されるビットの数は、implicit_quality_id_lenであってよい。この範囲は、存在しない場合、0から0であると推測され得る。
[0152]変数DQRange[i]は、次のように導出され得る。
DQRange[i] = [ d_id_low_range[i]*maxQlayer + q_id_low_range[i],
d_id_high_range[i]*maxQlayer + q_id_high_range[i] ],
ここで、maxQlayerは、NALユニットヘッダマップパラメータセットを参照する、すべてのコーディングされたビデオシーケンスのquality_idの最大値である。
[0153]任意の2つのpriority_id値に対して、他のスケーラビリティ次元範囲が同じである場合、それらのDQ範囲は、DQ範囲が重複しないように設定され得る。
[0154]Num_views_for_priority_minus1[i]は、i番目のpriority_idに対応するview_idx値の数を規定することができる。num_views_for_priority_minus1の値は、両端を含めて0から((1<<implicit_view_id_len)−1)の範囲にあり得る。View_idx[i][j]は、i番目のpriority_id値に対応する、j番目のビュー順序インデックスを規定することができる。view_id[i][j]を表すために使用されるビットの数は、implicit_view_idx_lenであってよい。view_idx[i][j]の値は、存在しない場合、0に等しいと推測され得る。
[0155]したがって、一例では、ビデオエンコーダ20およびビデオデコーダ30(またはソースデバイス12および宛先デバイス14の他の要素)は、表1〜7のいずれかまたはすべてに従ってシンタックスデータをコーディングして、ビットストリームのために、複数のビデオコーディング次元のうちのいずれがそのビットストリームに対して有効かを表す情報をコーディングし、有効なビデオコーディング次元の各々の値に従ってコーディングされたビデオデータを備えるネットワーク抽象化レイヤ(NAL)ユニットのNALユニットヘッダにおいて、有効ではないビデオコーディング次元の値をコーディングすることなく、有効なビデオコーディング次元の各々の値をコーディングするように構成され得る。
[0156]あるいは、別の例では、ビデオエンコーダ20およびビデオデコーダ30(またはソースデバイス12および宛先デバイス14の他の要素)は、表8〜14のいずれかまたはすべてに従ってシンタックスデータをコーディングして、ビットストリームのために、複数のビデオコーディング次元のうちのいずれがそのビットストリームに対して有効かを表す情報をコーディングし、有効なビデオコーディング次元の各々の値に従ってコーディングされたビデオデータを備えるネットワーク抽象化レイヤ(NAL)ユニットのNALユニットヘッダにおいて、有効ではないビデオコーディング次元の値をコーディングすることなく、有効なビデオコーディング次元の各々の値をコーディングするように構成され得る。
[0157]さらに他の例では、表1〜14の様々な態様は、これらの例のハイブリッドを形成するように任意の組合せで組み合わされて、ビットストリームのために、複数のビデオコーディング次元のうちのいずれがそのビットストリームに対して有効かを表す情報をコーディングし、有効なビデオコーディング次元の各々の値に従ってコーディングされたビデオデータを備えるネットワーク抽象化レイヤ(NAL)ユニットのNALユニットヘッダにおいて、有効ではないビデオコーディング次元の値をコーディングすることなく、有効なビデオコーディング次元の各々の値をコーディングすることができる。
[0158]ビデオエンコーダ20およびビデオデコーダ30は各々、適用可能なとき、1つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ディスクリート論理回路、ソフトウェア、ハードウェア、ファームウェアなど、様々な好適なエンコーダまたはデコーダ回路のいずれか、あるいはそれらの任意の組合せとして実装され得る。ビデオエンコーダ20およびビデオデコーダ30の各々は1つまたは複数のエンコーダまたはデコーダ中に含まれてよく、そのいずれも、複合ビデオエンコーダ/デコーダ(コーデック)の一部として統合されてよい。ビデオエンコーダ20および/またはビデオデコーダ30を含むデバイスは、集積回路、マイクロプロセッサ、および/またはセルラー電話などのワイヤレス通信デバイスを備え得る。
[0159]図2は、ビデオデータのスケーラブルな次元の特性をシグナリングするための技法を実施し得るビデオエンコーダ20の例を示すブロック図である。ビデオエンコーダ20は、ビデオスライス内のビデオブロックのイントラコーディングとインターコーディングとを実行し得る。イントラコーディングは、空間的予測を利用して、所与のビデオフレームまたはピクチャ内のビデオの空間的冗長性を低減または除去する。インターコーディングは、時間的予測を利用して、ビデオシーケンスの隣接フレームまたはピクチャ内のビデオの時間的冗長性を低減または除去する。イントラモード(Iモード)は、いくつかの空間ベースのコーディングモードのいずれかを指し得る。単方向予測(Pモード)または双方向予測(Bモード)などのインターモードは、いくつかの時間ベースのコーディングモードのいずれかを指し得る。
[0160]図2に示されるように、ビデオエンコーダ20は、符号化されるべきビデオフレーム内の現在のビデオブロックを受信する。図2の例では、ビデオエンコーダ20は、モード選択ユニット40と、参照フレームメモリ64と、加算器50と、変換処理ユニット52と、量子化ユニット54と、エントロピーコーディングユニット56とを含む。モード選択ユニット40は、今度は、動き補償ユニット44と、動き推定ユニット42と、イントラ予測ユニット46と、区分ユニット48とを含む。ビデオブロックの復元のために、ビデオエンコーダ20はまた、逆量子化ユニット58と、逆変換ユニット60と、加算器62とを含む。復元されたビデオからブロッキネスアーティファクトを除去するためにブロック境界をフィルタリングする、デブロッキングフィルタ(図2に図示せず)も含まれ得る。所望される場合、デブロッキングフィルタは一般に、加算器62の出力をフィルタリングすることになる。また、デブロッキングフィルタに加えて追加のフィルタ(ループ内またはループ後)が使用され得る。そのようなフィルタは、簡潔のために示されていないが、所望される場合、(ループ内フィルタとして)加算器50の出力をフィルタリングし得る。
[0161]符号化処理中に、ビデオエンコーダ20はコーディングされるべきビデオフレームまたはスライスを受信する。フレームまたはスライスは、複数のビデオブロックに分割され得る。動き推定ユニット42および動き補償ユニット44は、時間的な予測を行うために、1つまたは複数の参照フレーム中の1つまたは複数のブロックに対する受信されたビデオブロックのインター予測コーディングを実行する。イントラ予測ユニット46は代替的に、空間的な予測を行うために、コーディングされるべきブロックと同じフレームまたはスライス中の1つまたは複数の隣接ブロックに対して受信されたビデオブロックのイントラ予測コーディングを実行し得る。ビデオエンコーダ20は、たとえば、ビデオデータのブロックごとに適切なコーディングモードを選択するために、複数のコーディングパスを実行し得る。
[0162]その上、区分ユニット48は、以前のコーディングパスにおける以前の区分方式の評価に基づいて、ビデオデータのブロックをサブブロックに区分し得る。たとえば、区分ユニット48は、初めにフレームまたはスライスをLCUに区分し、レートひずみ分析(たとえば、レートひずみ最適化)に基づいてLCUの各々をサブCUに区分し得る。モード選択ユニット40は、さらに、LCUをサブCUに区分することを示す4分木データ構造を生成し得る。4分木のリーフノードCUは、1つまたは複数のPUと、1つまたは複数のTUとを含み得る。
[0163]モード選択ユニット40は、たとえば、誤差結果に基づいて、コーディングモード、すなわち、イントラまたはインターのうちの1つを選択することができ、残差ブロックデータを生成するために、得られたイントラコーディングされたブロックまたはインターコーディングされたブロックを加算器50に与え、参照フレームとして使用するための符号化されたブロックを復元するために、得られたイントラコーディングされたブロックまたはインターコーディングされたブロックを加算器62に与える。モード選択ユニット40はまた、動きベクトル、イントラモードインジケータ、区分情報、および他のそのようなシンタックス情報のような、シンタックス要素をエントロピーコーディングユニット56に与える。
[0164]動き推定ユニット42と動き補償ユニット44とは、高度に統合され得るが、概念的な目的のために別々に示されている。動き推定ユニット42によって実行される動き推定は、ビデオブロックの動きを推定する動きベクトルを生成する処理である。動きベクトルは、たとえば、現在のフレーム(または他のコーディングされたユニット)内でコーディングされている現在のブロックに対する参照フレーム(または他のコーディングされたユニット)内の予測ブロックに対する現在のビデオフレームまたはピクチャ内のビデオブロックのPUの変位を示し得る。予測ブロックは、絶対値差分和(SAD)、2乗差分和(SSD)、または他の差分尺度によって決定され得るピクセル差分に関して、コーディングされるブロックに精密に一致することがわかるブロックである。いくつかの例では、ビデオエンコーダ20は、参照フレームメモリ64に記憶された参照ピクチャのサブ整数ピクセル位置の値を計算し得る。たとえば、ビデオエンコーダ20は、参照ピクチャの1/4ピクセル位置、1/8ピクセル位置、または他の分数ピクセル位置の値を補間し得る。したがって、動き推定ユニット42は、フルピクセル位置と分数ピクセル位置とに対する動き探索を実行し、分数ピクセル精度で動きベクトルを出力し得る。
[0165]動き推定ユニット42は、PUの位置を参照ピクチャの予測ブロックの位置と比較することによって、インターコーディングされたスライスにおけるビデオブロックのPUのための動きベクトルを計算する。参照ピクチャは、第1の参照ピクチャリスト(リスト0)または第2の参照ピクチャリスト(リスト1)から選択されてよく、その各々は、参照フレームメモリ64に記憶された1つまたは複数の参照ピクチャを識別する。動き推定ユニット42は、計算された動きベクトルをエントロピー符号化ユニット56と動き補償ユニット44とに送る。
[0166]動き補償ユニット44によって実行される動き補償は、動き推定ユニット42によって決定された動きベクトルに基づいて予測ブロックをフェッチまたは生成することを含み得る。この場合も、いくつかの例では、動き推定ユニット42と動き補償ユニット44とは機能的に統合され得る。現在のビデオブロックのPUのための動きベクトルを受信すると、動き補償ユニット44は、参照ピクチャリストのうちの1つにおいて動きベクトルが指す予測ブロックの位置を特定し得る。加算器50は、以下で論じられるように、コーディングされている現在のビデオブロックのピクセル値から予測ブロックのピクセル値を減算し、ピクセル差分値を形成することによって、残差ビデオブロックを形成する。一般に、動き推定ユニット42はルーマ成分に対して動き推定を実行し、動き補償ユニット44は、クロマ成分とルーマ成分の両方のためにルーマ成分に基づいて計算された動きベクトルを使用する。モード選択ユニット40はまた、ビデオスライスのビデオブロックを復号する際にビデオデコーダ30が使用するための、ビデオブロックとビデオスライスとに関連するシンタックス要素を生成し得る。
[0167]イントラ予測ユニット46は、上で説明されたように、動き推定ユニット42と動き補償ユニット44とによって実行されるインター予測の代替として、現在のブロックをイントラ予測し得る。特に、イントラ予測ユニット46は、現在のブロックを符号化するために使用すべきイントラ予測モードを決定し得る。いくつかの例では、イントラ予測ユニット46は、たとえば、別個の符号化パスの間に、様々なイントラ予測モードを使用して現在ブロックを符号化することができ、イントラ予測ユニット46(または、いくつかの例では、モード選択ユニット40)は、テストされたモードから、使用するのに適切なイントラ予測モードを選択することができる。
[0168]たとえば、イントラ予測ユニット46は、様々なテストされたイントラ予測モードに対するレートひずみ分析を使用してレートひずみ値を計算し、テストされたモードの中で最良のレートひずみ特性を有するイントラ予測モードを選択し得る。レートひずみ分析は、一般に、符号化されたブロックと、符号化されたブロックを生成するために符号化された元の符号化されていないブロックとの間のひずみ(または誤差)の量、ならびに符号化されたブロックを生成するために使用されるビットレート(すなわち、ビット数)を決定する。イントラ予測ユニット46は、どのイントラ予測モードがブロックについて最良のレートひずみ値を示すかを決定するために、様々な符号化されたブロックのひずみおよびレートから比率を計算し得る。
[0169]ブロックのイントラ予測モードを選択した後に、イントラ予測ユニット46は、エントロピーコーディングユニット56にブロックのための選択されたイントラ予測モードを示す情報を与え得る。エントロピーコーディングユニット56は、選択されたイントラ予測モードを示す情報を符号化し得る。ビデオエンコーダ20は、送信ビットストリーム中に、複数のイントラ予測モードインデックステーブルおよび複数の修正されたイントラ予測モードインデックステーブル(コードワードマッピングテーブルとも呼ばれる)と、様々なブロックの符号化コンテキストの定義と、各コンテキストについて使用すべき、最も可能性の高いイントラ予測モード、イントラ予測モードインデックステーブル、および修正されたイントラ予測モードインデックステーブルの指示とを含み得る、構成データを含み得る。
[0170]ビデオエンコーダ20は、コーディングされている元のビデオブロックから、モード選択ユニット40からの予測データを減算することによって残差ビデオブロックを形成する。加算器50は、この減算演算を実行する1つまたは複数のコンポーネントを表す。変換処理ユニット52は、離散コサイン変換(DCT)または概念的に同様の変換などの変換を残差ブロックに適用し、残差変換係数値を備えるビデオブロックを生成する。変換処理ユニット52は、DCTと概念的に同様である他の変換を実行し得る。ウェーブレット変換、整数変換、サブバンド変換または他のタイプの変換も使用され得る。いずれの場合も、変換処理ユニット52は、変換を残差ブロックに適用し、残差変換係数のブロックを生成する。変換は、残差情報をピクセル値領域から周波数領域などの変換領域に変換し得る。変換処理ユニット52は、得られた変換係数を量子化ユニット54に送信し得る。量子化ユニット54は、ビットレートをさらに低減するために変換係数を量子化する。量子化処理は、係数の一部または全部に関連するビット深度を低減し得る。量子化の程度は、量子化パラメータを調整することによって修正され得る。いくつかの例では、量子化ユニット54は、次いで、量子化された変換係数を含む行列の走査を実行し得る。代替的に、エントロピー符号化ユニット56が走査を実行し得る。
[0171]量子化の後に、エントロピーコーディングユニット56は量子化された変換係数をエントロピーコーディングする。たとえば、エントロピーコーディングユニット56は、コンテキスト適応可変長コーディング(CAVLC)、コンテキスト適応バイナリ算術コーディング(CABAC)、シンタックスベースコンテキスト適応バイナリ算術コーディング(SBAC)、確率間隔区分エントロピー(PIPE)コーディングまたは別のエントロピーコーディング技法を実行し得る。コンテキストベースのエントロピーコーディングの場合、コンテキストは隣接ブロックに基づき得る。エントロピーコーディングユニット56によるエントロピーコーディングの後に、符号化されたビットストリームは、別のデバイス(たとえば、ビデオデコーダ30)に送信されてよく、あるいは、後の送信または取り出しのためにアーカイブされてよい。
[0172]逆量子化ユニット58および逆変換ユニット60は、それぞれ逆量子化と逆変換とを適用し、たとえば、参照ブロックとして後で使用するために、ピクセル領域中で残差ブロックを復元する。動き補償ユニット44は、残差ブロックを参照フレームメモリ64のフレームのうちの1つの予測ブロックに加算することによって参照ブロックを計算し得る。動き補償ユニット44はまた、復元された残差ブロックに1つまたは複数の補間フィルタを適用して、動き推定において使用するサブ整数ピクセル値を計算し得る。加算器62は、復元された残差ブロックを、動き補償ユニット44によって生成された動き補償予測ブロックに加算して、参照フレームメモリ64に記憶するための復元されたビデオブロックを生成する。復元されたビデオブロックは、後続のビデオフレーム中のブロックをインターコーディングするために、動き推定ユニット42および動き補償ユニット44によって参照ブロックとして使用され得る。
[0173]加えて、ビデオエンコーダ20は、1つまたは複数の様々なスケーラブルなビデオコーディング次元を有するビデオデータをコーディングするように構成され得る。たとえば、ビデオエンコーダ20は、様々なビュー、品質レイヤ(たとえば、信号対雑音比(SNR)レイヤ)、優先度レイヤ、空間分解能レイヤ、時間レイヤ、カラービット深度レイヤ、クロマサンプルフォーマットレイヤ、依存性レイヤ、または他のそのようなスケーラブルな次元をコーディングするように構成され得る。一般に、スケーラブルな次元は、1つの値(たとえば、ビデオデータはその次元ではスケーリングされない)と値の範囲とのいずれかを有する。一般性を失うことなく、あるスケーラブルな次元に対する値の範囲において「低い」値が、範囲中のより高い値をコーディングするための基礎として使用されると仮定する。したがって、基本レイヤ(たとえば、基本ビュー、基本品質レイヤ、基本スケーラブルレイヤなど)が、スケーラブルな次元の1つまたは複数のより高層のレイヤをコーディングする時、基準として使用され得る。
[0174]例として、マルチビュービデオコーディングでは、基本レイヤ(たとえば、基本ビュー)は、2次元のビデオ表示のために、さらには、次元に沿ったより高層のレイヤのための基準として使用され得る。言い換えると、基本ビューは、ビュー内コーディングされてよく、すなわち、他のビューを何ら参照することなくコーディングされてよい。他のビューは、ビュー間コーディングされてよく、たとえば、基本ビューのような別のビューに対してコーディングされてよい。このようにして、ビデオデータを含むビットストリームは、単一のビューレイヤのみ(すなわち、あるビュー次元に対して単一の値)を含んでよく、または複数のビューレイヤ(すなわち、あるビュー次元に対して複数の可能性のある値)を含んでよい。
[0175]ビュー間予測を実行するために、ビデオエンコーダ20は、現在のピクチャと同じ時間的な位置を有する、以前にコーディングされたビューの1つまたは複数のピクチャに対して、特定のビューの現在のピクチャのブロックを予測することができる。すなわち、現在のピクチャおよび参照ピクチャは各々、最終的にアクセスユニット内にカプセル化される場合、同じアクセスユニット内でカプセル化され得る。したがって、現在のピクチャおよび参照ピクチャは、最終的に表示される場合、実質的に同時に表示され得る。その上、現在のピクチャおよび参照ピクチャは、同一の相対的なピクチャ順序カウント(POC)値を有し得る。
[0176]より具体的には、ビュー間予測は、現在のビューにおける現在のピクチャの現在のブロックに対して、1つまたは複数の視差ベクトルを計算することを伴い得る。視差ベクトルは一般に、以前にコーディングされたビューの基準ピクチャにおける、精密に一致するブロックの位置を表し得る。動き推定ユニット42は、以前にコーディングされたビューの参照ピクチャにおける、この精密に一致するブロックの探索を実行するように構成され得る。したがって、いくつかの例では、動き推定ユニット42は、「動き/視差推定ユニット」と呼ばれ得る。視差ベクトルは全般に、視差ベクトルが異なるビューの参照ピクチャに対する変位を表すということを除き、視差ベクトルと同様の方式で機能し得る。その上、異なるビューは、互いに対して水平方向に移動されたカメラの視点に対応するので、視差ベクトルは通常、水平方向のオフセットのみを表す。
[0177]別の例として、空間分解能次元(spatial resolution dimension)に対して、ビデオエンコーダ20は、2つ以上のレイヤ、すなわち、1つの基本レイヤ、1つ以上のエンハンスメントレイヤとを使用して、元の空間分解能を有するピクチャをコーディングするように構成され得る。基本レイヤのピクチャは、元の空間分解能よりも低い分解能を有してよく、エンハンスメントレイヤのピクチャは、基本レイヤピクチャの分解能を上げるためのデータを含み得る。たとえば、元の空間分解能は、1080pに相当し得る。この例では、480pの空間分解能を有するピクチャを含む基本レイヤと、720pの空間分解能を達成するための第1のエンハンスメントレイヤと、1080pの空間分解能を達成するための第2のエンハンスメントレイヤという、3つのレイヤがあり得る。
[0178]ビデオエンコーダ20は、あらゆる他のレイヤに対して独立に、基本レイヤのビデオデータをコーディングすることができる。ビデオエンコーダ20は次いで、下層のレイヤ、たとえば基本レイヤまたはより下層のエンハンスメントレイヤに対して、エンハンスメントレイヤのビデオデータをコーディングすることができる。元のデータからこれらのレイヤを生成するために、ビデオエンコーダ20はまず、元のピクチャの空間分解能を縮小し(decimate)、サブサンプリングし、または低減して、基本レイヤのピクチャを生成することができる。ビデオエンコーダ20は次いで、上で説明されたようなピクチャ内コーディング技法またはピクチャ間(たとえば、時間的)コーディング技法を使用して、基本レイヤのピクチャをコーディングすることができる。
[0179]ビデオエンコーダ20は次いで、基本レイヤのピクチャを復号しアップサンプリング(たとえば、補間)して、次のエンハンスメントレイヤにおける空間分解能を有するピクチャを生成することができる。ビデオエンコーダ20はまた、元のピクチャの分解能を下げて、このエンハンスメントレイヤの空間分解能を有するピクチャを生成することができる。ビデオエンコーダ20は次いで、分解能が下げられたピクチャとアップサンプリングされた基本レイヤのピクチャとのピクセルごとの差を計算して、エンハンスメントレイヤのための残差データを生成することができ、ビデオエンコーダ20はこの残差データを、変換し、量子化し、エントロピー符号化することができる。ビデオエンコーダ20はこの処理を繰り返すことができ、コーディングされるべきすべてのエンハンスメントレイヤに対して、直近にコーディングされたエンハンスメントレイヤを基本レイヤとして扱う。同様に、ビデオエンコーダ20は、様々な他のスケーラブルな次元に対して、様々な他のレイヤにおけるピクチャを符号化することができる。
[0180]さらに別の例として、ビデオエンコーダ20は、スケーラブルな時間次元を有するビデオデータをコーディングすることができる。一般に、ビデオエンコーダ20は、時間識別子がピクチャの属する時間レイヤを表すために使用され得るように、時間識別子をピクチャに割り当てることができる。その上、ビデオエンコーダ20は、ある特定の時間レイヤにおいて、ビデオデータがその時間レイヤまたはより下層の時間レイヤにおける他のビデオデータのみに対して予測されるように、ビデオデータをコーディングすることができる。このようにして、サブビットストリームの抽出を実行して、フルビットストリームのフレームレートに対して、下げられたフレームレートのためのサブビットストリームを抽出することができ、サブビットストリームは適切に復号可能であり、それは、抽出されないビデオデータは、抽出されたサブビットストリームに対する基準として使用されないからである。
[0181]ビデオエンコーダ20は、複数のスケーラブルな次元に従ってビデオデータを符号化することができる。一般に、ビデオエンコーダ20は最終的に、スケーラブルな次元の各々の特定の共通部分に対応する、NALユニットのセットを生成する。たとえば、特定のビットストリームに対して、時間次元がスケーラブルであり、空間分解能次元がスケーラブルであり、他の次元は固定されていると仮定する。さらに、時間次元には4つの時間レイヤがあり、空間分解能次元には3つの空間分解能レイヤがあると仮定する。したがって、各アクセスユニットは、すべての3つの空間分解能に対するNALユニットを含み得る。このようにして、サブビットストリームは、特定の時間レイヤまでアクセスユニットを抽出することによって、かつ/または、特定の空間分解能レイヤまでそれらのアクセスユニットからNALユニットを抽出することによって、抽出され得る。
[0182]別の例として、特定のビットストリームに対して、ビュー次元がスケーラブルであり、空間分解能次元がスケーラブルであり、他の次元は固定されていると仮定する。さらに、ビュー次元には8つのビューがあり、空間分解能次元には3つの空間分解能レイヤがあると仮定する。したがって、各アクセスユニットは、24個のピクチャ、すなわち、8つのビューおよびこれらの8つのビューの各々に対する3つの空間分解能に対する、NALユニットを含み得る。この例では、サブビットストリームは、どのビューを取り出す(retrieve)べきかということと、これらのビューのいずれの空間分解能を取り出す(retrieve)べきかということとを決定し、決定されたビューのビュー識別子と決定された空間分解能とを有するNALユニットを抽出することによって、抽出され得る。
[0183]より一般的には、ビットストリームのための、イネーブルされたスケーラブルな次元の数をNとし、Nは整数である。イネーブルされたスケーラブルな次元の各々D1、D2、…DNに対して、レイヤの範囲を1〜MaxKとし、ここで1<=K<=である。次いで、ビットストリームに対して、ピクチャの総数は、Max1×Max2×…×MaxN、すなわち
Figure 2014522187
であり得る。スケーラブルな次元の各々は、ある特定のピクチャにおいて交わることがあり、この特定のピクチャに対して、対応するアクセスユニットにおいて1つまたは複数のNALユニットがあり得る。本開示の技法によれば、NALユニットの各々は、ピクチャのうちのいずれにNALユニットが対応するかを示すデータを含み得る。その上、NALユニットは、非スケーラブルな次元に対するデータを含む必要はない。したがって、全体でP個の可能性のあるスケーラブルな次元があり得るが、NがPより小さければ、NALユニットは、(P−N)個のイネーブルされていないスケーラブルな次元の値を含めることなく、N個のイネーブルされたスケーラブルな次元の値を示すために、N個のイネーブルされたスケーラブルな次元のデータを含めるだけでよい。その上、ビデオエンコーダ20は、スケーラブルな次元のうちのいずれがアクティブであるかということと、いくつかの場合には、アクティブかつスケーラブルな次元の各々のデータを表すために使用されるNALユニットヘッダ中のビットの数とを示すために、次元範囲パラメータセットまたはNALユニットヘッダマップパラメータセットをコーディングすることができる。
[0184]したがって、8つのビューおよび3つの空間スケーラビリティレイヤがある上の例を再び参照すると、ビデオエンコーダ20は、3ビットをNALユニットヘッダのビュー識別子部分に割り当て、2ビットをNALユニットヘッダの空間スケーラビリティレイヤ部分に割り当てることができる。これらの5ビットは一緒に、NALユニットが対応するビューと、NALユニットが対応する空間スケーラビリティレイヤの両方を示すことができる。たとえば、「00010」は基本ビュー「000」と空間スケーラビリティレイヤの第1のエンハンスメントレイヤ「10」とに対応してよく、一方「11100」は、8つのビュー「111」と空間スケーラビリティレイヤの基本レイヤ「00」とに対応してよい。一般に、特定の有効かつスケーラブルな次元に対してN個の可能な値があると仮定すると、ビデオエンコーダ20は、NALユニットヘッダ中でceil(log2(N))を割り当てることができ、ceil(X)は、次の最高の整数値に切り上げられたXの値を返す。したがって、Xが整数値である場合、ceil(X)はXを返し、一方XがA.Bと表される有理数であるとき、ceil(X)は(A+1)を返す。
[0185]ビデオエンコーダ20は、外部のソース、たとえばユーザまたは構成データから、イネーブルされた(「アクティブ」とも呼ばれる)スケーラブルな次元の数の定義を受信することができる。加えて、この定義はまた、イネーブルされたスケーラブルな次元の各々に対する可能性のある値の範囲を示す情報を含み得る。したがって、ビデオエンコーダ20は、これらの受信された定義に基づいて、様々なスケーラブルな次元に対して、NALユニットヘッダにおいて使用されるべきビットの数を割り当てることができる。ビデオエンコーダ20は次いで、これらの割り当てに基づいて、次元範囲パラメータセットまたはNALユニットヘッダマップパラメータセットを構築し、また、割り当てられたビットに基づいてNALユニットヘッダをコーディングすることができる。
[0186]加えて、特定のスケーラブルな次元の値が1だけアトミックに(atomically)増えない場合(たとえば、view_idの場合)、ビデオエンコーダ20は、スケーラブルな次元の値にインデックス値をマッピングする、マッピングテーブルをコーディングすることができる。たとえば、1、18、46、169、200、250、385、および399というview_idを有するビットストリームに対して、8つのビューがあると仮定する。ビデオエンコーダ20は、0、1、2、3、4、5、6、および7というビューインデックスをこれらのview_id値にマッピングし、それに従ってマッピングテーブルをコーディングすることができる。このようにして、ビデオエンコーダ20は、view_idを直接コーディングするのではなく、ビューインデックスを示すNALユニットヘッダをコーディングすることができる。ビデオデコーダ30のようなデコーダは、ビューインデックスに基づいて、NALユニットのview_idを決定するために、マッピングテーブルを参照することができる。
[0187]このようにして、図2のビデオエンコーダ20は、ビットストリームのために、複数のビデオコーディング次元のうちのいずれがそのビットストリームに対してイネーブルされたかを表す情報をコーディングし、イネーブルされたビデオコーディング次元の各々の値に従ってコーディングされたビデオデータを備えるネットワーク抽象化レイヤ(NAL)ユニットのNALユニットヘッダにおいて、イネーブルされないビデオコーディング次元を表すシンタックス要素の値をコーディングすることなく、イネーブルされたビデオコーディング次元を表すシンタックス要素の値をコーディングするように構成される、ビデオエンコーダの例を表す。
[0188]図3は、ビデオデータのスケーラブルな次元の特性をシグナリングするための技法を実施し得るビデオデコーダ30の例を示すブロック図である。図3の例では、ビデオデコーダ30は、エントロピー復号ユニット70と、動き補償ユニット72と、イントラ予測ユニット74と、逆量子化ユニット76と、逆変換ユニット78と、参照フレームメモリ82と、加算器80とを含む。ビデオデコーダ30は、いくつかの例では、ビデオエンコーダ20(図2)に関して説明された符号化パスとは全般に逆の復号パスを実行し得る。動き補償ユニット72は、エントロピー復号ユニット70から受信された動きベクトルに基づいて予測データを生成することができ、イントラ予測ユニット74は、エントロピー復号ユニット70から受信されたイントラ予測モードインジケータに基づいて予測データを生成することができる。
[0189]復号処理中に、ビデオデコーダ30は、ビデオエンコーダ20から、符号化されたビデオスライスのビデオブロックと、関連するシンタックス要素とを表す、符号化されたビデオビットストリームを受信する。ビデオデコーダ30のエントロピー復号ユニット70は、量子化された係数と、動きベクトルまたはイントラ予測モードインジケータと、他のシンタックス要素とを生成するために、ビットストリームをエントロピー復号する。エントロピー復号ユニット70は、動きベクトルと他の予測シンタックス要素とを動き補償ユニット72に転送する。ビデオデコーダ30は、ビデオスライスレベルおよび/またはビデオブロックレベルでシンタックス要素を受信し得る。
[0190]ビデオスライスがイントラコーディングされた(I)スライスとしてコーディングされるとき、イントラ予測ユニット74は、シグナリングされたイントラ予測モードと、現在のフレームまたはピクチャの以前に復号されたブロックからのデータとに基づいて、現在のビデオスライスのビデオブロックのための予測データを生成し得る。ビデオフレームがインターコーディングされた(すなわち、B、PまたはGPB)スライスとしてコーディングされるとき、動き補償ユニット72は、エントロピー復号ユニット70から受信された動きベクトルと他のシンタックス要素とに基づいて、現在のビデオスライスのビデオブロックのための予測ブロックを生成する。予測ブロックは、参照ピクチャリストの1つの中の参照ピクチャの1つから生成され得る。ビデオデコーダ30は、参照フレームメモリ92に記憶された参照ピクチャに基づいて、デフォルトの構築技法を使用して、参照フレームリスト、すなわち、リスト0とリスト1とを構築し得る。
[0191]動き補償ユニット72は、動きベクトルと他のシンタックス要素とを解析することによって現在のビデオスライスのビデオブロックのための予測情報を決定し、その予測情報を使用して、復号されている現在のビデオブロックの予測ブロックを生成する。たとえば、動き補償ユニット72は、ビデオスライスのビデオブロックをコーディングするために使用される予測モード(たとえば、イントラまたはインター予測)と、インター予測スライスタイプ(たとえば、Bスライス、Pスライス、またはGPBスライス)と、スライスの参照ピクチャリストのうちの1つまたは複数の構築情報と、スライスの各々のインター符号化されたビデオブロックの動きベクトルと、スライスの各々のインターコーディングされたビデオブロックのインター予測ステータスと、現在のビデオスライス中のビデオブロックを復号するための他の情報とを決定するために、受信されたシンタックス要素のいくつかを使用する。
[0192]動き補償ユニット72はまた、補間フィルタに基づいて補間を実行し得る。動き補償ユニット72は、ビデオブロックの符号化中にビデオエンコーダ20によって使用された補間フィルタを使用して、参照ブロックのサブ整数ピクセルのための補間された値を計算し得る。この場合、動き補償ユニット72は、受信されたシンタックス要素からビデオエンコーダ20によって使用された補間フィルタを決定し、その補間フィルタを使用して予測ブロックを生成し得る。
[0193]逆量子化ユニット76は、ビットストリーム中で与えられエントロピー復号ユニット80によって復号された、量子化された変換係数を、逆量子化(inverse quantize)、すなわち、逆量子化(de-quantize)する。逆量子化処理は、量子化の程度を判定し、同様に、適用されるべき逆量子化の程度を決定するための、ビデオスライス中のビデオブロックごとにビデオエンコーダ30によって計算される量子化パラメータQPYの使用を含み得る。
[0194]逆変換ユニット78は、逆変換、たとえば、逆DCT、逆整数変換、または概念的に同様の逆変換処理を変換係数に適用して、ピクセル領域において残差ブロックを生成する。
[0195]動き補償ユニット82が、動きベクトルと他のシンタックス要素とに基づいて現在のビデオブロックのための予測ブロックを生成した後、ビデオデコーダ30は、逆変換ユニット78からの残差ブロックを動き補償ユニット82によって生成された対応する予測ブロックと加算することによって、復号されたビデオブロックを形成する。加算器90は、この加算演算を実行する1つまたは複数のコンポーネントを表す。所望される場合、ブロッキネスアーティファクトを除去するために、復号ブロックをフィルタリングするためのデブロッキングフィルタも適用され得る。ピクセル遷移を平滑化し、または他の方法でビデオ品質を改善するために、(コーディングループ内またはコーディングループ後の)他のループフィルタも使用され得る。所与のフレームまたはピクチャの復号されたビデオブロックは、次いで、その後の動き補償のために使用される参照ピクチャを記憶する参照ピクチャメモリ92に記憶される。参照フレームメモリ82はまた、図1のディスプレイデバイス32などのディスプレイデバイス上で後で表示するために、復号されたビデオを記憶する。
[0196]ビデオデコーダ30はまた、1つまたは複数のスケーラブルな次元に従ってコーディングされるビデオデータを復号するように構成され得る。たとえば、ビデオデコーダ30は、様々なビュー、品質レイヤ(たとえば、信号対雑音比(SNR)レイヤ)、優先度レイヤ、空間分解能レイヤ、時間レイヤ、カラービット深度レイヤ、クロマサンプルフォーマットレイヤ、依存性レイヤ、または他のそのようなスケーラブルな次元を有するビデオデータを復号することができる。一般に、ビデオデコーダ30は、レイヤを符号化するために使用されるのと全般に反対の方式で、これらのレイヤを復号することができる。
[0197]その上、ビデオデコーダ30(またはビデオデコーダ30に通信可能に結合される別のユニット)は、NALユニットヘッダデータを使用して、特定のNALユニットのビデオデータが対応する1つまたは複数のレイヤを決定することができる。たとえば、ビットストリームが、ビュー次元、空間分解能次元、および時間次元に関してスケーラブルである場合、ビデオデコーダ30は、本開示の技法に従って、NALユニットヘッダからのNALユニットのデータに対する、ビューと、空間分解能レイヤと、時間識別子とを決定することができる。ビデオデータが対応するレイヤの決定は、ビデオデータの解析および/または復号がどのように実行されるかに影響し得る。たとえば、NALユニットがマルチビュービデオデータの基本ビューに対応する場合、ビデオデコーダ30は、NALユニットのビデオデータがビュー間コーディングされるかどうかを決定することを試みる必要はない。
[0198]さらに、NALユニットヘッダを解釈するために、ビデオデコーダ30は、次元範囲パラメータセットまたはNALユニットヘッダマップパラメータセットにおいてシグナリングされるシンタックスデータのような、他のシンタックスデータを参照し得る。そのようなシンタックスデータは、複数のスケーラブルな次元のうちのいずれがイネーブルされるかということと、イネーブルされるスケーラブルな次元の各々に割り当てられるNALユニットヘッダ中のビットの数とを示し得る。このようにして、ビデオデコーダ30がビット「0101101」を受信し、最初の3ビットがビューインデックスを特定し、次の2ビットが空間分解能レイヤを特定し、最後の2ビットが時間レイヤを特定することを、シンタックスデータが示す場合、ビデオデコーダ30は、ビューインデックスは「010」(たとえば、2)であり、空間分解能レイヤは「11」(たとえば、3)であり、時間レイヤは「01」(たとえば、1)であると決定することができる。いくつかの場合には、これらの値は、マッピングテーブルに対するインデックスとして機能することができ、マッピングテーブルは、インデックスを、対応する次元の実際の値にマッピングすることができる。したがって、ビデオデコーダ30はさらに、マッピングテーブルを使用して、インデックスから実際の値を決定することができる。
[0199]このようにして、図3のビデオデコーダ30は、ビットストリームのために、複数のビデオコーディング次元のうちのいずれがそのビットストリームに対してイネーブルされているかを表す情報をコーディングし、イネーブルされたビデオコーディング次元の各々の値に従ってコーディングされたビデオデータを備えるネットワーク抽象化レイヤ(NAL)ユニットのNALユニットヘッダにおいて、イネーブルされていないビデオコーディング次元を表すシンタックス要素の値をコーディングすることなく、イネーブルされたビデオコーディング次元を表すシンタックス要素の値をコーディングするように構成される、ビデオデコーダの例を表す。
[0200]図4は、ビデオデータのスケーラブルな次元の特性をシグナリングするための本開示の技法を実行し得るデバイスの別のセットを含むシステム100を示すブロック図である。システム100は、コンテンツ準備デバイス120と、サーバデバイス160と、クライアントデバイス140と、メディア認識ネットワーク要素(MANE)172とを含む。いくつかの例では、コンテンツ準備デバイス120およびサーバデバイス160は、同じサービスに対応し得るが、図4では説明のために別々に示される。この例では、コンテンツ準備デバイス120は、オーディオソース122と、ビデオソース124と、オーディオエンコーダ126と、ビデオエンコーダ128と、カプセル化ユニット130と、出力インターフェース132とを含む。ビデオソース124は、ビデオソース18(図1)に実質的に対応し得るが、ビデオエンコーダ128は、ビデオエンコーダ20(図1および図2)に実質的に対応し得る。
[0201]ネットワーク170Aおよびネットワーク170Bは、ネットワーク通信のための、1つまたは複数のデバイスのネットワークを表す。一般に、ネットワーク170A、170Bは、ネットワーク通信データを送信するための、ルータ、ハブ、スイッチ、ゲートウェイ、ファイアーウォールなどのような、1つまたは複数のネットワークデバイスを含む。いくつかの例では、ネットワーク170Aおよびネットワーク170Bは、同じネットワーク、たとえばインターネットを表し得る。他の例では、ネットワーク170Aおよびネットワーク170Bは、異なるネットワークを表し得る。たとえば、ネットワーク170Aはインターネットを表してよく、ネットワーク170Bはコンテンツ配信ネットワークを表してよい。この例では、MANE 172は、ネットワーク170Aとネットワーク170Bとの間に存在する。MANE 172は、ネットワーク170Aとネットワーク170Bとの間のMANE 172を通過するネットワーク通信において、メディアデータを認識し処理するように構成され得る。
[0202]一般に、オーディオソース122およびビデオソース124は、それぞれ、互いに対応するオーディオデータとビデオデータとを提供することができる。たとえば、オーディオソース122はマイクロフォンを備えてよく、ビデオソース124はビデオカメラを備えてよく、オーディオソース122は、ビデオソース124がビデオデータをキャプチャするのと実質的に同時にオーディオデータをキャプチャすることができる。あるいは、オーディオソース122およびビデオソース124はそれぞれ、オーディオデータとビデオデータとを生成する、コンピュータ生成ソースに対応し得る。いずれの場合でも、コンテンツ準備デバイス120は、互いに対応する、すなわち実質的に同時に一緒に再生されるべき、オーディオデータとビデオデータとを示すシンタックスデータ、たとえばタイムスタンプを提供することができる。オーディオエンコーダ126は、種々のオーディオコーディング技法のいずれかを使用して、オーディオソース122から受信されたオーディオデータを符号化し、符号化されたオーディオデータをカプセル化ユニット130に提供することができる。同様に、ビデオエンコーダ128は、符号化されたビデオデータをカプセル化ユニット130に提供することができる。符号化されたビデオデータは、1つまたは複数の様々なスケーラブルな次元のデータを含み得る。
[0203]この例では、カプセル化ユニット130は、1つまたは複数のスケーラブルな次元のデータを含むNALユニットヘッダのコーディングに関連する、本開示の様々な技法を実行することができる。たとえば、カプセル化ユニット130は、ビデオエンコーダ128からのビデオデータのコーディングされたスライスを、NALユニットへとカプセル化することができる。その上、カプセル化ユニット130は、NALユニットの各々に対して、1つまたは複数のスケーラブルな次元の値を決定し、これらの値を表すデータを含むNALユニットヘッダを生成することができる。さらに、カプセル化ユニット130は、複数のスケーラブルな次元のうちのいずれがカプセル化されたオーディオデータとビデオデータとを含むビットストリームに対して有効かを示し、有効かつスケーラブルな次元の各々に割り当てられたNALユニットヘッダ内で割り当てられたビットを示す、次元範囲パラメータセットまたはNALユニットヘッダマップパラメータセットのような、高水準のシンタックスデータを生成することができる。カプセル化ユニット130はまた、オーディオエンコーダ126から受信された、符号化されたオーディオデータをカプセル化することができる。カプセル化ユニット130はさらに、オーディオデータまたはビデオデータを含むNALユニットを、それぞれのアクセスユニットへカプセル化することができる。
[0204]オーディオデータとビデオデータとをカプセル化した後、カプセル化ユニット130は、カプセル化されたデータを出力インターフェース132に提供することができる。出力インターフェース132は、記憶インターフェース、ネットワークインターフェース、またはデータを出力するための他のインターフェースを備え得る。出力インターフェース132によって提供されるデータは、サーバデバイス160に配信され、コーディングされたメディアデータ162として記憶され得る。サーバデバイス160はまた、たとえば、クライアントデバイス140から受信されたネットワーク要求に応答して、コーディングされたメディアデータ162の複数の部分を取り出すための、メディア検索(retrieval)ユニット164を含む。ネットワークインターフェース166は、この例では、ネットワーク170Aを介して、要求されたメディアデータをクライアントデバイス140に提供する。ネットワークインターフェース166は、有線ネットワークインターフェースまたはワイヤレスネットワークインターフェースを備え得る。
[0205]クライアントデバイス140は、ネットワークインターフェース154と、検索アプリケーション152と、カプセル化解除ユニット150と、オーディオデコーダ146と、ビデオデコーダ148と、オーディオ出力142と、ビデオ出力144とを含む。オーディオ出力142は、1つまたは複数のスピーカーを備えてよく、ビデオ出力144は、3次元ビデオデータを表示するように構成され得る1つまたは複数のディスプレイを備え得る。たとえば、ビデオ出力144は、1つまたは複数の立体視ディスプレイまたはオートステレオスコピックディスプレイを備え得る。オーディオ出力142は、様々なタイプのオーディオ出力も可能であり得る。たとえば、オーディオ出力142は、様々な組合せで複数のスピーカーを含み得る(たとえば、2スピーカーステレオ、4以上のスピーカーのサラウンドサウンド、センタースピーカーを有しもしくは有さない、および/または、サブウーファー(subwoofer)を有しもしくは有さない)。このようにして、オーディオ出力142およびビデオ出力144は、様々な出力特性を有し得る。たとえば、ビデオ出力144は、様々なレンダリング特性を有し得る。
[0206]オーディオデコーダ146は一般に、符号化されたオーディオデータを復号できるが、ビデオデコーダ148は一般に、符号化されたビデオデータを復号できる。クライアントデバイス140は、実質的に同時に提示されるべきオーディオデータおよびビデオデータが、オーディオ出力142およびビデオ出力144による提示のために利用可能となるように、オーディオデコーダ146とビデオデコーダ148との間の復号処理を調整することができる。オーディオデコーダ146は何らかの復号能力を有してよく、一方ビデオデコーダ148は何らかの復号能力(すなわち、何らかの復号特性)を有してよい。たとえば、ビデオデコーダ148は、特定のビデオコーディング規格、または、ビデオコーディング規格の特定のプロファイルもしくはプロファイルのレベルに従い得る。すなわち、ビデオデコーダ148は、何らかのビデオコーディング技法を使用することが可能であり得るが、他のビデオコーディング技法を使用することは可能ではないことがある。
[0207]一般に、ネットワークインターフェース154は、ネットワーク170Bを介してメディアデータを受信し、受信されたデータを検索アプリケーション152に提供する。たとえば、検索アプリケーション152は、たとえばdynamic adaptive streaming over HTTP(DASH)に従って、メディアデータを取り出し処理するように構成されるウェブブラウザを備え得る。検索アプリケーション152は、オーディオデコーダ146、ビデオデコーダ148、オーディオ出力142、およびビデオ出力144の復号能力とレンダリング能力とをそれぞれ定義する情報によって構成され得る。したがって、検索アプリケーション152は、オーディオデコーダ146、ビデオデコーダ148、オーディオ出力142、およびビデオ出力144の能力に基づいて、メディアデータを選択することができる。たとえば、ビデオ出力144がステレオスコピックビデオ表示のみが可能である場合、検索アプリケーション152は、3つ以上のビューを有するメディアデータの検索を避けることができる。このようにして、検索アプリケーション152は、使用できないデータ、たとえば3つ以上のビューを有するメディアデータの検索を避けることができ、これによって、不十分な帯域幅リソースを節減し、3つ以上のビューを含むビットストリームを不必要に解析し復号するのを避けることができる。
[0208]そのようなビットストリームを取得するために、検索アプリケーション152は、オーディオデコーダ146、ビデオデコーダ148、オーディオ出力142、およびビデオ出力144の特性を示すデータをMANE 172に提供することができる。上の例を続けると、検索アプリケーション152は、ビデオ出力144がステレオスコピックビデオデータの出力のみが可能であることを示すデータを、MANE 172に与えることができる。したがって、MANE 172がクライアントデバイス140によって要求されたビットストリームを受信し、ビットストリームが3つ以上のビューを含む場合、MANE 172は、クライアントデバイス140のために、2つのビューしか有さないサブビットストリームを抽出することができる。
[0209]言い換えると、サブビットストリーム抽出処理の間、次元中にある範囲の値を有するいくつかのNALユニットが、たとえばMANE 172によって、除去され得る。したがって、上で論じられたように、MANE 172は、いくつかの次元に対する調整された数のビットを含む、データ構造174Bによって表される、新たな次元範囲パラメータセット(または新たなNALユニットヘッダパラメータセット)を生成することができる。次元範囲パラメータセットの例に関して、dim_cnt_tableならびにdim_index_2_value_tableも、元の次元範囲パラメータセットに対して調整され得る。その上、nalUnitScalableCharSetへとグループ化される現実の空ではないシンタックス要素は変更されるか、または特定の要素を表すために使用されるビットの数が減らされ得る。
[0210]その上、本開示の技法によれば、MANE 172は、特定のビットストリームに対するイネーブルされたスケーラブルな次元を表すデータ構造174Aを受信することができる。たとえば、データ構造174Aが、スケーラブルな次元の中でもとりわけ、ビュー次元がイネーブルされ、その上、8つのビューのデータがビットストリーム中に存在するということを示すと仮定する。しかしながら、上の例を続けると、クライアントデバイス140は、ステレオスコピックビデオ表示のみが可能であり得る。したがって、MANE 172は、2つのビューしか有さないサブビットストリームを抽出することができる。その上、MANE 172は、抽出されたサブビットストリームの特性を示す修正されたデータ構造174Bを形成するように、データ構造174Aを修正することができる。
[0211]たとえば、抽出されたサブビットストリームの2つのビューがビューインデックス「2」と「6」とを有する場合、MANE 172は、それぞれ代わりに「0」と「1」という値を有するようにビューインデックスを調整することができる。マッピングテーブルがデータ構造174Aにおいて提供される場合、MANE 172はさらに、新たなインデックス値を適切なビュー識別子(または他のスケーラブルな次元の他のデータ)にマッピングするように、マッピングテーブルを調整することができる。さらに、サブビットストリームのNALユニットに対して、MANE 172は、たとえば、フルビットストリームに対して範囲が狭められたスケーラブルな次元の不必要なビットを除去することによって、または、抽出されたサブビットストリームに対してイネーブルされていないスケーラブルな次元に対し、NALユニットヘッダからシグナリングデータ全体を除去することによって、NALユニットヘッダがフルビットストリームの元のNALユニットヘッダよりも短くなる(たとえば、より少数のビットを含む)ように、NALユニットヘッダを変更することができる。
[0212]修正されたデータ構造174Bを作成しサブビットストリームを抽出した後で、MANE 172は、修正されたデータ構造174Bと抽出されたサブビットストリームとを、ネットワーク170Bを介してクライアントデバイス140に提供することができる。クライアントデバイス140は、有線ネットワークインターフェースまたはワイヤレスネットワークインターフェースを備え得るネットワークインターフェース154を介して、修正されたデータ構造174Bと抽出されたサブビットストリームとを受信することができる。
[0213]このようにして、MANE 172は、第1のNALユニットを備えるビットストリームのサブビットストリームを抽出することと、サブビットストリームは第1のNALユニットのビデオデータの少なくとも一部分を含む第2のNAユニットを備え、サブビットストリームのために、複数のビデオコーディング次元のうちのいずれがサブビットストリームに対してイネーブルされているかを表す情報をコーディングすることと、第2のNALユニットの変更されたNALユニットヘッダにおいて、イネーブルされていないビデオコーディング次元の値をコーディングすることなく、サブビットストリームに対してイネーブルされたビデオコーディング次元の各々の値をコーディングすることと、変更されたNALユニットヘッダは、第1のNALユニットのNALユニットヘッダのビット長よりも短いビット長を有する、を行うように構成される、デバイスの例を表す。
[0214]MANE 172は、これらの技法を実行するように構成される制御ユニットを含み得る。制御ユニットは、ハードウェア、ソフトウェア、ファームウェア、またはこれらの組合せで実装され得る。ソフトウェアおよび/またはファームウェアで実装される場合、1つまたは複数のプロセッサによって実行され得る命令を記憶するための1つまたは複数のプロセッサおよびメモリのような、必須のハードウェアも設けられると推定される。同様に、コンテンツ準備デバイス120、サーバデバイス160、およびクライアントデバイス140の要素も、ハードウェア、ソフトウェア、ファームウェア、またはこれらの任意の組合せで実装されてよく、やはり、ソフトウェアまたはファームウェアが使用される場合にそれらを実行するために、必須のハードウェアが設けられると推測される。
[0215]図5Aおよび図5Bは、本開示の技法の様々な例による、NALユニットヘッダの例を示す概念図である。図5Aおよび図5Bは全般に、NALユニットヘッダに含まれ得るスケーラビリティまたはビューの次元識別子のセット(すなわち、スケーラブルな次元の識別子)の例を表す。図5Aは、temporal_id 182と、chroma_format_idx 184と、bit_depth_idx 186と、dependency_id 188と、quality_id 190と、view_idx 192と、texture_depth_idx 194とを含む、例示的なNALユニットヘッダ180を示す。一般に、temporal_id 182、chroma_format_idx 184、bit_depth_idx 186、dependency_id 188、quality_id 190、view_idx 192、およびtexture_depth_idx 194のいずれかまたはすべての値は、対応する次元がスケーラブルなものとして有効かどうかに基づいて、シグナリングされ得る。
[0216]さらに、temporal_id 182、chroma_format_idx 184、bit_depth_idx 186、dependency_id 188、quality_id 190、view_idx 192、およびtexture_depth_idx 194のいずれかまたはすべてに割り当てられるビットの数は、たとえば上で論じられた表1に従って、次元範囲パラメータセット中で示され得る。このようにして、NALユニットヘッダ180は、表1の次元範囲パラメータセットに従って構築された、NALユニットヘッダの例を表す。したがって、temporal_id 182、chroma_format_idx 184、bit_depth_idx 186、dependency_id 188、quality_id 190、view_idx 192、およびtexture_depth_idx 194の値は、存在する場合、NALユニットヘッダ180によってカプセル化されるNALユニットに対応するこれらの様々な次元の共通部分に基づいて、割り当てられ得る。イネーブルされないスケーラブルな次元(すなわち、ビットストリーム中に1つの可能な値しか有さないスケーラブルな次元)に対して、データは、NALユニット180のNALユニットヘッダにおいてシグナリングされる必要はない。たとえば、ビットストリームに対して1ビットの深度しかない場合、bit_depth_idx 186に対してデータは提供されなくてよい。
[0217]図5Bは、priority_id 202と、temporal_id 204と、dependency_id 206と、quality_id 208と、view_idx 210とを含む、別の例示的なNALユニットヘッダ200を示す。このようにして、NALユニットヘッダ200は、表8のNALユニットヘッダマップパラメータセットに従って構築された、NALユニットヘッダの例を表す。NALユニットヘッダ200は、他の部分についてはNALユニットヘッダ180に実質的に従う。当然、NALユニットヘッダ200のシンタックス要素は、NALユニットヘッダ180に含まれてよく、同様に、NALユニットヘッダ180のシンタックス要素は、様々な例において、上の表のシンタックスおよび意味に対する適切な変更を伴って、NALユニットヘッダ200に含まれてよい。
[0218]NALユニットヘッダは、様々な異なる状況に対して設計され得る。以下に、いくつかの例が与えられる。しかしながら、他の例も、本開示の技法を使用して、想起され提示され得ることを理解されたい。
[0219]一例では、スケーラブルなビデオビットストリームは、Quarter Video Graphics Array(QVGA)からVideo Graphics Array(VGA)までの空間スケーラビリティを有するが、依存性レイヤは3つの時間レイヤを有する。そのような場合、3ビットが、NALユニットヘッダ中でスケーラビリティ次元および/またはビュー次元をシグナリングするために使用され得る。たとえば、2ビットが、temporal_id 204を表すために割り当てられてよく、1ビットが、dependency_id 206を表すために割り当てられてよく、quality_ID 208とview_IDX 210とを表すためのビットは割り当てられなくてよい。
[0220]別の例では、ステレオスコピックビットストリームは各ビューに対して2つの空間レイヤを有してよく、ビューの各々は3つの時間レイヤを有し得る。そのような場合、全体で4ビットがNALユニットヘッダを表すために使用されてよく、そのうち2ビットがtemporal_id 204を表すためのものであり、1ビットがdependency_id 188を表すためのものであり、1ビットがview_idx 210を表すためのものであり、0ビットがquality_id 208を表すためのものである。
[0221]別の例では、マルチビュービットストリームは、各々が2つの品質レイヤを有する8つのビューを含み得る。ビットストリームはまた、16というGOPサイズ(すなわち、4つの時間レイヤ)を有する階層的B予測構造によってコーディングされ得る。この例では、全体で7ビットが、NALユニットヘッダにおいてスケーラビリティ次元および/またはビュー次元をシグナリングするために使用されてよく、そのうち3ビットがtemporal_id 204のためであり、0ビットがdependency_id 206のためであり、1ビットがquality_id 208のためであり、3ビットがview_idx 210のためである。
[0222]図6は、ビデオデータのスケーラブルな次元の特性をシグナリングするための例示的な方法を示すフローチャートである。図6の方法は、例示のためにビデオエンコーダ20に関して説明される。しかしながら、ソースデバイス12(図1)の他のユニットまたはコンテンツ準備デバイス120および/もしくはサーバデバイス160(図4)のコンポーネントのような他のデバイスが、図6の方法を実行するように構成され得ることを理解されたい。同様に、MANE 172(図4)は、図6の方法のある態様を実行するように構成され得る。その上、図6の方法のあるステップは、省略されてよく、または異なる順次的な順序で実行されてよく、または並列に実行されてよく、他のステップが追加されてよいことを、理解されたい。
[0223]この例では、ビデオエンコーダ20は、ビットストリームへと符号化され形成されるべきビデオデータに対する、1つまたは複数のスケーラブルな次元をイネーブルにする(250)。たとえば、ビデオエンコーダ20は、優先度次元、空間分解能次元、時間次元、品質次元(たとえば、信号対雑音比(SNR)次元)、ビュー次元、カラービット深度次元、クロマサンプルフォーマット次元、および/または依存性次元のうちの1つまたは複数のような、1つまたは複数のスケーラブルな次元を使用して、受信されたビデオデータがコーディングされるべきであるという指示を、外部のソース(たとえば、ユーザ)から受け取ることができる。
[0224]ビデオエンコーダ20は次いで、イネーブルされたスケーラブルな次元に対する値の範囲を決定することができる(252)。たとえば、ビデオエンコーダ20は、各次元に対して符号化されるべきレイヤの数を決定することができる。例として、受信されたビデオデータがV個のビューを有し、Vが整数である場合、ビデオエンコーダ20は、V個の値がビュー次元の範囲において必要であると決定することができる。別の例として、空間分解能次元がイネーブルされ、1つの基本レイヤおよび2つのエンハンスメントレイヤという3つのレイヤがあるべきである場合、ビデオエンコーダ20は、3つの値が空間分解能次元の範囲において必要であると判定することができる。一般に、各次元に対して、ビデオエンコーダ20は、その次元内のレイヤ(またはビュー)を識別するための、次元中の値の範囲を決定することができる。
[0225]ビデオエンコーダ20は次いで、決定された範囲に基づいて、イネーブルされたスケーラブルな次元のNALユニットヘッダにビットを割り当てることができる(254)。たとえば、Nをイネーブルされた次元の数とし、RKを次元Kの範囲のサイズを表すものとし、1≦K≦Nである。次元Kの値を表すために必要なビットの数を計算するために、ビデオエンコーダ20は、ceil(log2(RK))を計算することができる。したがって、決定された範囲に基づいて、イネーブルされたスケーラブルな次元のNALユニットヘッダにおいて必要とされるビットの総数を計算するために、ビデオエンコーダ20は、
Figure 2014522187
を計算することができ、ここでceil(X)は、X以上の最大の整数に切り上げられるXの値を返す。すなわち、Xが整数である場合、整数(X)をXに返し、一方XがA.Bとして表される整数ではない有理数である場合、ceil(X)は(A+1)を返す。このようにして、これらの値の合計は、各次元に対する値の決定された範囲に基づいて、イネーブルされた次元のNALユニットヘッダにおいて使用されるべきビットの総数を表し得る。
[0226]ビデオエンコーダ20は次いで、NALユニットヘッダに対するビットの割り当てを示すデータ構造をコーディングすることができる(256)。たとえば、ビデオエンコーダ20は、上で説明されたように、表1に従って次元範囲パラメータセットをコーディングすることができ、または表8に従ってNALユニットヘッダマップをコーディングすることができる。データ構造は、固有の独立のデータ構造を形成することができ、または、シーケンスパラメータセット(SPS)のような別のデータ構造に含まれてよい。いずれの場合でも、データ構造は一般に、有効な次元の各々に対するNALユニットヘッダ中のビットの数を示し得る。さらに、データ構造が0ビットをNALユニットヘッダ中の特定の次元に割り当てる場合、次元は、スケーラビリティがイネーブルされていないと決定され得る。言い換えると、0ビットがNALユニットヘッダにおいて割り当てられる次元は、対応するビットストリームに対してスケーラブルではないことがある。このようにして、データ構造はまた、スケーラブルな次元のいずれのスケーラビリティがイネーブルされているかの指示を提供する。
[0227]いくつかの例では、次元のレイヤの値は、1だけアトミックに増えないことがある。たとえば、ビュー次元のビュー識別子(view_id)は、必ずしも、1という値だけ増えるとは限らない。別の例として、たとえばカラービット深度のビット深度値は、8ビット、10ビット、および12ビットの値を含み得る。したがって、上で論じられたような値の範囲を決定する時、範囲は、次元におけるレベルの実際の値に対する、インデックス値の範囲を含み得る。インデックス値は次いで、マッピングテーブルによって実際の値にマッピングされてよく、マッピングテーブルは、上記のコーディングされたデータ構造に含まれてよく、または別個のデータ構造として提供されてよい。マッピングテーブルは、単独で、または任意の組合せで、表3、表5、表9、表10、または表13のいずれかまたはすべてのシンタックスと意味(セマンティック)とに対応してよく、これらのテーブルの組合せは、1つのテーブルまたは複数の別個のテーブルとしてシグナリングされ得る。
[0228]ビデオエンコーダ20は次いで、イネーブルされたスケーラブルな次元の共通部分に対するビデオデータのスライスをコーディングすることができる(258)。たとえば、ビデオエンコーダ20が、ビュー次元と、空間分解能次元と、時間次元とをイネーブルにした場合、ビデオエンコーダ20は、基本ビューのスライスと、0という時間識別子を有する空間分解能次元の基本レイヤとをコーディングすることを開始することができる。一般に、ステップ258においてコーディングされたスライスは、ビットストリームの任意に選択されたいずれのスライスをも表し得る。スライスのコーディングは一般に、イネーブルな次元に基づいてスライスをコーディングすることを伴う。したがって、ビュー次元のスケーラビリティがイネーブルであり、スライスが基本ビューではない場合、ビデオエンコーダ20は、ビュー間予測を使用してスライスをコーディングすることができる。別の例として、空間分解能のスケーラビリティがイネーブルであり、スライスが基本レイヤではない場合、ビデオエンコーダ20は、レイヤ間予測を使用してスライスをコーディングすることができる。複数のスケーラブルな次元がイネーブルである場合、ビデオエンコーダ20は、スライスが基本レイヤ(または基本ビュー)において生じない次元のいずれに対して、イネーブルされたスケーラブルな次元のいずれかまたはすべてのためのレイヤ間予測を使用してスライスをコーディングすることができる。
[0229]ビデオエンコーダ20は次いで、コーディングされたスライスをNALユニットにカプセル化することができる(260)。特に、ビデオエンコーダ20は、スライスのためのイネーブルされたスケーラブルな次元の値を示す、スライスのNALユニットヘッダをコーディングすることができる(262)。特に、ビデオエンコーダ20は、各々のスケーラブルな次元のレイヤまたはビューのいずれに、コーディングされたスライスが対応するかに基づいて、NALユニットヘッダのビット値を決定する。たとえば、ビュー次元および空間分解能次元がイネーブルされ、8つのビューおよび3つの空間分解能レイヤがあり、最近コーディングされたスライスが、ビューインデックス「010」が割り当てられたビューと空間分解能インデックス「11」が割り当てられた空間分解能レイヤとに対応する場合、ビデオエンコーダ20は、NALユニットヘッダにおいて「01011」をコーディングし、イネーブルされたスケーラブルな次元の値を示すことができる。
[0230]このようにして、図6の方法は、ビットストリームのために、複数のビデオコーディング次元のうちのいずれがそのビットストリームに対してイネーブルされているかを表す情報をコーディングすることと、イネーブルされたビデオコーディング次元の各々の値に従ってコーディングされたビデオデータを備えるネットワーク抽象化レイヤ(NAL)ユニットのNALユニットヘッダにおいて、イネーブルされていないビデオコーディング次元を表すシンタックス要素の値をコーディングすることなく、イネーブルされたビデオコーディング次元を表すシンタックス要素の値をコーディングすることと、を含む方法の例を表す。
[0231]図7は、ビデオデータのスケーラブルな次元のシグナリングされた特性を使用するための例示的な方法を示すフローチャートである。図7の方法は、例示のためにビデオデコーダ30に関して説明される。しかしながら、宛先デバイス14(図1)の他のユニットまたはサーバデバイス160もしくはクライアントデバイス140(図4)のコンポーネントのような他のデバイスが、図7の方法を実行するように構成され得ることを理解されたい。同様に、MANE 172(図4)は、図7の方法のある態様を実行するように構成され得る。その上、図7の方法のあるステップは、省略されてよく、または異なる順次的な順序で実行されてよく、または並列に実行されてよく、他のステップが追加されてよいことを、理解されたい。
[0232]この例では、ビデオデコーダ30は、ビットストリームのNALユニットに対するビットの割り当てを示す、データ構造を受信する(280)。たとえば、ビデオデコーダ30は、次元範囲パラメータセットまたはNALユニットヘッダマップパラメータセットを受信することができ、これらは、独立のデータ構造としてシグナリングされてよく、または、シーケンスパラメータセットのような別のデータ構造内でシグナリングされてよい。加えて、ビデオデコーダ30はまた、値マッピングテーブルに対するインデックスのような、インデックス値をスケーラブルな次元の実際の値にマッピングするマッピングテーブルを受信することができる。
[0233]一般に、データ構造中でシグナリングされるNALユニットに対するビットの割り当ては、複数のスケーラブルな次元のうちのいずれがビットストリームに対してイネーブルされているかということの指示を与えることができる。すなわち、ビデオデコーダ30は、1つまたは複数のビットがNALユニットヘッダにおいて割り当てられるスケーラブルな次元のスケーラビリティがイネーブルであると、決定することができる。ビデオデコーダ30は、0ビットがNALユニットヘッダにおいて割り当てられる他の次元がイネーブルされていないと、決定することができる。したがって、ビデオデコーダ30は、ビットストリーム中のNALユニットに対する、イネーブルされていないスケーラブルな次元のデフォルト値を推測することができる。
[0234]ビデオデコーダ30は次いで、コーディングされたビデオデータのスライスを含むNALユニットを受信することができる(282)。このNALユニットは、ビットストリームのいずれの任意のNALユニットをも表し得る。ビデオデコーダ30は、イネーブルされたスケーラブルな次元の値を示す、NALユニットヘッダを復号することができる(284)。すなわち、ビデオデコーダ30は、NALユニットヘッダに対するビットの割り当てを示すデータ構造を使用して、受信されたNALユニットのNALユニットヘッダの値を解釈することができる。その上、マッピングテーブルが受信された場合、ビデオデコーダ30は、マッピングテーブルを使用して、対応するスケーラブルな次元の実際の値に対する、NALユニットヘッダ中のインデックス値をさらに解釈することができる。
[0235]ビデオデコーダ30は次いで、NALユニットをカプセル化解除して、NALユニットからコーディングされたスライスを取り出すことができる(286)。ビデオデコーダ30は次いで、NALユニットヘッダから決定されたように、イネーブルされたスケーラブルな次元の値に基づいて、スライスを復号することができる(288)。これらの値に基づいてスライスを復号することは、たとえば、スライスが各々のイネーブルされたスケーラブルな次元のいずれのレイヤ(またはビュー)に対応するかを決定することと、必要であれば、レイヤ間予測を使用してスライスを復号することとを含み得る。その上、レイヤ間予測が様々なスケーラブルな次元の1つまたは複数に対して利用可能かどうかに応じて、シンタックスデータの様々なセットが、スライスに対してシグナリングされ得る。たとえば、スライスが特定のスケーラブルな次元の基本レイヤに対応する場合、ビデオデコーダ30は、対応するスケーラブルな次元のレイヤ間予測のための参照レイヤを示す、シンタックス要素を受信しないように構成され得る。
[0236]このようにして、図7の方法も、ビットストリームのために、複数のビデオコーディング次元のうちのいずれがそのビットストリームに対してイネーブルであるかを表す情報をコーディングすることと、イネーブルされたビデオコーディング次元の各々の値に従ってコーディングされたビデオデータを備えるネットワーク抽象化レイヤ(NAL)ユニットのNALユニットヘッダにおいて、イネーブルされてないビデオコーディング次元を表すシンタックス要素の値をコーディングすることなく、イネーブルされたビデオコーディング次元を表すシンタックス要素の値をコーディングすることと、を含む方法の例を表す。
[0237]図8は、ビデオデータのスケーラブルな次元の特性をシグナリングし、シグナリングされた特性を使用するための、別の例示的な方法を示すフローチャートである。図8の例は、MANE(たとえば、図4のMANE 172)およびクライアントデバイス(たとえば、図4のクライアントデバイス140)に関して説明される。他のデバイスが図8の方法の様々なステップを実行するように構成され得ることを、理解されたい。その上、ステップは、異なる順序で、または並列に実行されてよく、いくつかのステップは省略されてよく、一方他のステップが追加されてよい。
[0238]この例では、クライアントデバイス140は最初に、イネーブルされた利用可能かつスケーラブルな次元のサブセットを有するビデオデータを要求する(300)。この要求は、クライアントデバイス140の、たとえば、ビデオデコーダ148およびビデオ出力144のコーディング能力およびレンダリング能力に基づき得る。要求は、サポートされるコーディング能力およびレンダリング能力の指示を表すことができ、特定のビットストリームに対するイネーブルされたスケーラブルな次元の特定のセットに対する明示的な要求を必ずしも表さないことがある。
[0239]MANE 172は、たとえばサーバデバイス160から、要求を受信し(302)、複数のスケーラブルな次元を有するビットストリームを受信する(304)ことができる。ビットストリームを受信することは、ビットストリームの一部分を受信することに対応してよく、このステップでビットストリーム全体を受信することには必ずしも対応しないことがある。ビットストリームは、ビットストリームに対するイネーブルされたスケーラブルな次元を示すデータ構造、ならびに、イネーブルされたスケーラブルな次元のNALユニットヘッダにおいてシグナリングされる値に対するビットの割り当てを含み得る。やはり、MANE 172によるこのデータ構造の受信は、図4の矢印174Aによって表される。MANE 172は次いで、クライアントデバイス140から受信された要求に基づいて抽出されるべきサブビットストリームに基づいて、データ構造を変更することができる(306)。マッピングテーブルが提供される場合、MANE 172はさらに、マッピングテーブルを変更することができる。
[0240]たとえば、ビットストリームが8つのビューを含むが、クライアントデバイス140がステレオスコピック3D再生しかサポートしない場合、MANE 172は、抽出されるべきサブビットストリームが8つすべてではなく2つのビューのみを含むべきであると、決定することができる。特定のNALユニットに対応するビューを識別するために、元のデータ構造が3ビットをNALユニットヘッダに割り当てていた場合、MANE 172は代わりに、ビュー識別子(またはビューインデックス)のために、NALユニットヘッダ中で1ビットのみを割り当てることができる。加えて、マッピングテーブルがビューインデックスをビュー識別子にマッピングした場合、MANE 172は、マッピングテーブルを変更して、抽出されたサブビットストリームに含まれるべき2つのみのビューのマッピングを反映することができる。
[0241]MANE 172は次いで、変更されたデータ構造をクライアントデバイス140に送信することができる(308)。やはり、変更されたデータ構造をクライアントデバイス140に送信することは、図4の矢印174Bによって表される。クライアントデバイス140は、今度は変更されたデータ構造を受信することができる(310)。
[0242]続いて、MANE 172は、ビットストリームからNALユニットを抽出することができる(312)。抽出されたNALユニットは、イネーブルされたスケーラブルな次元のすべての値を有し得る。しかしながら、MANE 172は、要求に基づいて、クライアントデバイス140に送信されるべき、サブビットストリームのNALユニットを変更することができる(314)。たとえば、MANE 172は、クライアントデバイス140によってサポートされないスケーラブルな次元の値を示すデータを、NALユニットヘッダから除去することができる。MANE 172は、クライアントデバイスによってサポートされない、または必要とされない、スケーラブルな次元のレイヤのNALユニットを、クライアントデバイス140に送信しなくてよい。代わりに、MANE 172は、クライアントデバイス140によって要求されるデータを含むNALユニットのみを抽出し、必要に応じてNALユニットヘッダを変更することができる。
[0243]例として、元のビットストリームが8つのビューのデータを含んでいたが、クライアントデバイス140が2つのビューしか要求しなかった場合、MANE 172は、クライアントデバイス140に送信されるべき2つのビューに対応するNALユニットのみを抽出することができる。さらに、MANE 172は、NALユニットヘッダを変更して、これらのNALユニットのビュー識別子(またはビューインデックス)の変更を反映することができる。たとえば、クライアントデバイス140に対して選択された2つのビューの元のNALユニットが、「010」および「110」というビューインデックス値を含んでいたと仮定する。MANE 172は、これらの値を、それぞれ、変更されたデータ構造のビット割り当てに基づいて、また変更されたマッピングテーブルに基づいて、「0」および「1」に変更することができる。
[0244]MANE 172は次いで、変更されたNALユニットをクライアントデバイス140に送信することができる(316)。クライアントデバイス140は、今度は、変更されたNALユニットを受信し(318)、変更されたNALユニットを復号する(320)ことができる。変更されたNALユニットを復号することは一般に、図7で説明された処理に対応し得る。したがって、本開示の技法によれば、クライアントデバイス140から見ると、サブビットストリームを処理することは全般に、ビットストリームを処理することとは必ずしも異ならない。
[0245]このようにして、図8の方法も、ビットストリームのために、複数のビデオコーディング次元のうちのいずれがそのビットストリームに対してイネーブルかを表す情報をコーディングすることと、イネーブルされたビデオコーディング次元の各々の値に従ってコーディングされたビデオデータを備えるネットワーク抽象化レイヤ(NAL)ユニットのNALユニットヘッダにおいて、イネーブルされていないビデオコーディング次元を表すシンタックス要素の値をコーディングすることなく、イネーブルされたビデオコーディング次元を表すシンタックス要素の値をコーディングすることと、を含む方法の例を表す。MANE 172とクライアントデバイス140の両方が、そのような情報と値とをコーディングするデバイスを表す。
[0246]例によっては、本明細書で説明された技法のうちいずれかの、いくつかの行為またはイベントは、異なる順番で実行されてよく、追加され、統合され、または完全に除外され得る(たとえば、すべての説明された行為またはイベントが、本技法の実施のために必要であるとは限らない)ことを認識されたい。さらに、いくつかの例では、行為またはイベントは、連続的にではなく、同時に、たとえば、マルチスレッド処理、割込み処理、または複数のプロセッサを通じて実行され得る。
[0247]1つまたは複数の例では、説明された機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。ソフトウェアで実装される場合、機能は、1つまたは複数の命令またはコードとしてコンピュータ可読媒体上に記憶されてよく、あるいは、コンピュータ可読媒体を介して送信され、ハードウェアベースの処理ユニットによって実行されてよい。コンピュータ可読媒体は、たとえば、通信プロトコルに従って、ある場所から別の場所へのコンピュータプログラムの転送を支援する、任意の媒体を含むデータ記憶媒体または通信媒体などの有形媒体に対応するコンピュータ可読記憶媒体を含み得る。このようにして、コンピュータ可読媒体は、一般に、(1)非一時的である有形コンピュータ可読記憶媒体、あるいは(2)信号または搬送波などの通信媒体に対応し得る。データ記憶媒体は、本開示で説明された技法の実装のための命令、コードおよび/またはデータ構造を取り出すために1つまたは複数のコンピュータあるいは1つまたは複数のプロセッサによってアクセスされ得る、任意の利用可能な媒体であり得る。コンピュータプログラム製品は、コンピュータ可読媒体を含み得る。
[0248]限定ではなく例として、そのようなコンピュータ可読記憶媒体は、RAM、ROM、EEPROM、CD−ROMまたは他の光ディスクストレージ、磁気ディスクストレージ、または他の磁気ストレージデバイス、フラッシュメモリ、あるいは、命令またはデータ構造の形態の所望のプログラムコードを記憶するために使用されコンピュータによってアクセスされ得る、任意の他の媒体を備え得る。同様に、いかなる接続も適切にコンピュータ可読媒体と呼ばれる。たとえば、命令が、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者回線(DSL)、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、DSL、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。しかしながら、コンピュータ可読記憶媒体およびデータ記憶媒体は、接続、搬送波、信号、または他の一時的媒体を含まないが、代わりに非一時的有形記憶媒体を対象とすることを理解されたい。本明細書で使用するディスク(disk)およびディスク(disc)は、コンパクトディスク(disc)(CD)、レーザディスク(disc)、光ディスク(disc)、デジタル多用途ディスク(disc)(DVD)、フロッピー(登録商標)ディスク(disk)およびブルーレイディスク(disc)を含み、ディスク(disk)は、通常、データを磁気的に再生し、ディスク(disc)は、データをレーザで光学的に再生する。上記の組合せもコンピュータ可読媒体の範囲内に含めるべきである。
[0249]命令は、1つまたは複数のデジタル信号プロセッサ(DSP)などの1つまたは複数のプロセッサ、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブル論理アレイ(FPGA)、あるいは他の等価な集積回路またはディスクリート論理回路によって実行され得る。したがって、本明細書で使用される「プロセッサ」という用語は、前述の構造、または本明細書で説明される技法の実装に適切な他の構造のいずれかを指し得る。加えて、いくつかの態様では、本明細書で説明された機能は、符号化および復号のために構成された専用のハードウェアおよび/またはソフトウェアモジュール内で与えられてよく、あるいは複合コーデックに組み込まれてよい。また、本技法は、1つまたは複数の回路または論理要素中で完全に実装され得る。
[0250]本開示の技法は、ワイヤレスハンドセット、集積回路(IC)、またはICのセット(たとえば、チップセット)を含む、多種多様なデバイスまたは装置において実装され得る。本開示では、開示される技法を実行するように構成されたデバイスの機能的態様を強調するために、様々なコンポーネント、モジュール、またはユニットが説明されたが、それらのコンポーネント、モジュール、またはユニットを、必ずしも異なるハードウェアユニットによって実現する必要があるとは限らない。むしろ、上で説明されたように、様々なユニットが、適切なソフトウェアおよび/またはファームウェアとともに、上で説明された1つまたは複数のプロセッサを含めて、コーデックハードウェアユニットにおいて組み合わせられてよく、または相互動作するハードウェアユニットの集合によって与えられてよい。
[0251]様々な例が説明された。これらおよび他の例は、以下の特許請求の範囲内に入る。
本出願は、2011年8月1日に出願された米国仮出願第61/513,996号、2011年9月27日に出願された米国仮出願第61/539,925号、2011年11月8日に出願された米国仮出願第61/557,300号、および2011年11月23日に出願された米国仮出願第61/563,359号の利益を主張する。

Claims (48)

  1. ビデオデータをコーディングする方法であって、
    ビットストリームのために、複数のビデオコーディング次元のうちのいずれが前記ビットストリームに対してイネーブルされているかを表す情報をコーディングすることと、
    前記イネーブルされたビデオコーディング次元の各々の値に従ってコーディングされたビデオデータを備える、ネットワーク抽象化レイヤ(NAL)ユニットのNALユニットヘッダにおいて、イネーブルされていない前記ビデオコーディング次元を表すシンタックス要素の値をコーディングすることなく、前記イネーブルされたビデオコーディング次元を表すシンタックス要素の値をコーディングすることと、
    を備える方法。
  2. 前記イネーブルされたビデオコーディング次元の各々の前記値をコーディングすることは、
    前記イネーブルされたビデオコーディング次元の各々に対して、前記それぞれの値をコーディングするために使用される前記シンタックス要素のビットのそれぞれの数を決定することと、
    前記決定されたそれぞれのビットの数に基づいて、前記イネーブルされたビデオコーディング次元の前記シンタックス要素の前記値をコーディングすることと、
    を備える、請求項1に記載の方法。
  3. 前記ビットストリームのすべてのビデオデータに対して、イネーブルされていない前記ビデオコーディング次元のデフォルト値を推定することをさらに備える、請求項2に記載の方法。
  4. 前記複数のビデオコーディング次元は、複数のスケーラブルなビデオコーディング次元を備え、前記複数のスケーラブルなビデオコーディング次元は、優先度次元、空間次元、時間次元、信号対雑音比(SNR)次元、品質次元、ビュー次元、カラービット深度次元、クロミナンス(クロマ)サンプルフォーマット次元、および依存性次元のうちの1つまたは複数を備える、請求項2に記載の方法。
  5. 前記複数のビデオコーディング次元のうちのいずれがイネーブルされているかを表す前記情報をコーディングすることは、次元範囲パラメータセットをコーディングすることを備える、請求項2に記載の方法。
  6. 前記次元範囲パラメータセットに対応する、シーケンスパラメータセットの次元範囲パラメータセット識別子要素の値をコーディングすることをさらに備える、請求項5に記載の方法。
  7. 前記複数のビデオコーディング次元のうちのいずれがイネーブルされているかを表す前記情報をコーディングすることは、NALユニットヘッダマップをコーディングすることを備える、請求項2に記載の方法。
  8. 前記NALユニットヘッダ中のビットと前記イネーブルされたビデオコーディング次元中のビットとの対応を表す情報をコーディングすることをさらに備える、請求項2に記載の方法。
  9. 前記イネーブルされたビデオコーディング次元の1つまたは複数の前記値は、前記それぞれのイネーブルされたビデオコーディング次元の可能な値のそれぞれのセットに対するインデックス値を備え、
    前記方法は、前記インデックス値の各々と、前記それぞれのインデックス値がマッピングされる前記それぞれのセットの前記値の1つとの間のマッピングを決定することをさらに備える、請求項2に記載の方法。
  10. 前記値がインデックス値を備える前記イネーブルされたビデオコーディング次元の前記1つまたは複数に対する前記マッピングを定義する情報を含む、値マッピングテーブルに対するインデックスをコーディングすることをさらに備える、請求項9に記載の方法。
  11. 前記イネーブルされたビデオコーディング次元の1つはビュー次元を備え、前記インデックス値をコーディングすることは、前記NALユニットヘッダにおいて、前記ビュー次元のビュー順序インデックス値をコーディングすることを備え、
    前記マッピングを決定することは、前記ビュー次元の前記ビュー順序インデックス値とビュー識別子(view_id)値との間のマッピングを決定することを備える、請求項9に記載の方法。
  12. 前記マッピングを決定することは、ビデオコーダのための事前に定義された構成データから前記マッピングを決定することを備える、請求項9に記載の方法。
  13. 前記イネーブルされたビデオコーディング次元の各々の前記値に基づいて、前記NALユニットの前記ビデオデータをコーディングすることをさらに備える、請求項2に記載の方法。
  14. 前記ビデオデータをコーディングすることは、前記イネーブルされたビデオコーディング次元の各々の前記値に基づいて、前記ビデオデータを復号することを備える、請求項13に記載の方法。
  15. 前記ビデオデータをコーディングすることは、前記イネーブルされたビデオコーディング次元の各々の前記値に基づいて、前記ビデオデータを符号化することを備える、請求項13に記載の方法。
  16. ビデオデータをコーディングするためのデバイスであって、ビットストリームのために、複数のビデオコーディング次元のうちのいずれが前記ビットストリームに対してイネーブルされているかを表す情報をコーディングし、前記イネーブルされたビデオコーディング次元の各々の値に従ってコーディングされたビデオデータを備えるネットワーク抽象化レイヤ(NAL)ユニットのNALユニットヘッダにおいて、イネーブルされていない前記ビデオコーディング次元を表すシンタックス要素の値をコーディングすることなく、前記イネーブルされたビデオコーディング次元を表すシンタックス要素の値をコーディングするように構成される、ビデオコーダを備える、デバイス。
  17. 前記有効なビデオコーディング次元の各々の前記値をコーディングするために、前記ビデオコーダは、前記イネーブルされたビデオコーディング次元の各々に対して、前記それぞれの値を表すために使用されるビットのそれぞれの数を決定し、前記決定されたそれぞれのビットの数に基づいて、前記イネーブルされたビデオコーディング次元の各々の前記値をコーディングするように構成される、請求項16に記載のデバイス。
  18. 前記複数のビデオコーディング次元が、複数のスケーラブルなビデオコーディング次元を備え、前記複数のスケーラブルなビデオコーディング次元は、優先度次元、空間次元、時間次元、信号対雑音比(SNR)次元、品質次元、ビュー次元、カラービット深度次元、クロミナンス(クロマ)サンプルフォーマット次元、および依存性次元のうちの1つまたは複数を備える、請求項17に記載のデバイス。
  19. 前記複数のビデオコーディング次元のうちのいずれがイネーブルされているかを表す前記情報をコーディングするために、前記ビデオコーダは、次元範囲パラメータセットをコーディングするように構成される、請求項17に記載のデバイス。
  20. 前記複数のビデオコーディング次元のうちのいずれがイネーブルされているかを表す前記情報をコーディングするために、前記ビデオコーダは、NALユニットヘッダマップをコーディングするように構成される、請求項17に記載のデバイス。
  21. 前記NALユニットヘッダマップをコーディングするために、前記ビデオコーダは、前記NALユニットヘッダマップのデータを備えるNALユニットヘッダマップパラメータセット(NPS)と、前記NALユニットヘッダマップのデータを備えるシーケンスパラメータセット(SPS)との少なくとも1つをコーディングするように構成される、請求項20に記載のデバイス。
  22. 前記ビデオコーダは、前記ビットストリームのすべてのビデオデータに対して、イネーブルされていない前記ビデオコーディング次元のデフォルト値を推定するように構成される、請求項17に記載のデバイス。
  23. 前記イネーブルされたビデオコーディング次元の1つまたは複数の前記値は、前記それぞれのイネーブルされたビデオコーディング次元の可能な値のそれぞれのセットに対するインデックス値を備え、
    前記ビデオコーダは、前記インデックス値の各々と、前記それぞれのインデックス値がマッピングされる前記それぞれのセットの前記値の1つとの間のマッピングを決定するように構成される、請求項17に記載のデバイス。
  24. 前記ビデオコーダはさらに、前記値がインデックス値を備える前記イネーブルされたビデオコーディング次元の前記1つまたは複数に対する前記マッピングを定義する情報を含む、値マッピングテーブルに対するインデックスをコーディングするように構成される、請求項23に記載のデバイス。
  25. 前記有効なビデオコーディング次元の1つはビュー次元を備え、
    前記インデックス値をコーディングするために、前記ビデオコーダは、前記NALユニットヘッダにおいて、前記ビュー次元のビュー順序インデックス値をコーディングするように構成され、
    前記マッピングを決定するために、前記ビデオコーダは、前記ビュー次元の前記ビュー順序インデックス値とビュー識別子(view_id)値との間のマッピングを決定するように構成される、請求項23に記載のデバイス。
  26. 前記ビデオコーダはさらに、前記イネーブルされたビデオコーディング次元の各々の前記値に基づいて、前記NALユニットの前記ビデオデータをコーディングするように構成される、請求項17に記載のデバイス。
  27. 前記ビデオコーダはビデオデコーダを備える、請求項26に記載のデバイス。
  28. 前記ビデオコーダはビデオエンコーダを備える、請求項26に記載のデバイス。
  29. 前記デバイスは、
    集積回路と、
    マイクロプロセッサと、
    前記ビデオコーダを含むワイヤレス通信デバイスと、
    のうちの少なくとも1つを備える、請求項16に記載のデバイス。
  30. ビデオデータをコーディングするためのデバイスであって、
    ビットストリームのために、複数のビデオコーディング次元のうちのいずれが前記ビットストリームに対してイネーブルされているかを表す情報をコーディングする手段と、
    前記イネーブルされたビデオコーディング次元の各々の値に従ってコーディングされたビデオデータを備える、ネットワーク抽象化レイヤ(NAL)ユニットのNALユニットヘッダにおいて、イネーブルされていない前記ビデオコーディング次元を表すシンタックス要素の値をコーディングすることなく、前記イネーブルされたビデオコーディング次元を表すシンタックス要素の値をコーディングする手段と、
    を備える、デバイス。
  31. 前記イネーブルされたビデオコーディング次元の各々の前記値をコーディングする前記手段は、
    前記イネーブルされたビデオコーディング次元の各々に対して、前記それぞれの値を表すために使用されるビットのそれぞれの数を決定する手段と、
    前記決定されたそれぞれのビットの数に基づいて、前記イネーブルされたビデオコーディング次元の各々の前記値をコーディングする手段と、
    を備える、請求項30に記載のデバイス。
  32. 前記複数のビデオコーディング次元は、複数のスケーラブルなビデオコーディング次元を備え、前記複数のスケーラブルなビデオコーディング次元は、優先度次元、空間次元、時間次元、信号対雑音比(SNR)次元、品質次元、ビュー次元、カラービット深度次元、クロミナンス(クロマ)サンプルフォーマット次元、および依存性次元のうちの1つまたは複数を備える、請求項31に記載のデバイス。
  33. 前記複数のビデオコーディング次元のうちのいずれがイネーブルされているかを表す前記情報をコーディングする前記手段は、次元範囲パラメータセットとNALユニットヘッダマップの少なくとも1つをコーディングする手段を備える、請求項31に記載のデバイス。
  34. 前記イネーブルされたビデオコーディング次元の1つまたは複数の前記値は、前記それぞれのイネーブルされたビデオコーディング次元の可能な値のそれぞれのセットに対するインデックス値を備え、
    前記インデックス値の各々と、前記それぞれのインデックス値がマッピングされる前記それぞれのセットの前記値の1つとの間のマッピングを決定する手段と、
    前記値がインデックス値を備える前記イネーブルされたビデオコーディング次元の各々に対する前記マッピングを定義する情報を含む、値マッピングテーブルに対するインデックスをコーディングする手段と、
    をさらに備える、請求項31に記載のデバイス。
  35. 前記イネーブルされたビデオコーディング次元の1つはビュー次元を備え、前記インデックス値をコーディングする前記手段は、前記NALユニットヘッダにおいて、前記ビュー次元のビュー順序インデックス値をコーディングする手段を備え、
    前記マッピングを決定する前記手段は、前記ビュー次元の前記ビュー順序インデックス値とビュー識別子(view_id)値との間のマッピングを決定する手段を備える、
    請求項34に記載のデバイス。
  36. 前記イネーブルされたビデオコーディング次元の各々の前記値に基づいて、前記NALユニットの前記ビデオデータをコーディングする手段をさらに備える、請求項31に記載のデバイス。
  37. 前記ビデオデータをコーディングするための前記手段が、前記有効なビデオコーディング次元の各々の前記値に基づいて、前記ビデオデータを復号するための手段を備える、請求項36に記載のデバイス。
  38. 前記ビデオデータをコーディングする前記手段は、前記イネーブルされたビデオコーディング次元の各々の前記値に基づいて、前記ビデオデータを符号化する手段を備える、請求項36に記載のデバイス。
  39. 命令を記憶したコンピュータ可読記憶媒体であって、前記命令は、実行されると、プロセッサに、
    ビットストリームのために、複数のビデオコーディング次元のうちのいずれが前記ビットストリームに対してイネーブルされているかを表す情報をコーディングさせ、
    前記イネーブルされたビデオコーディング次元の各々の値に従ってコーディングされたビデオデータを備える、ネットワーク抽象化レイヤ(NAL)ユニットのNALユニットヘッダにおいて、イネーブルされていない前記ビデオコーディング次元を表すシンタックス要素の値をコーディングすることなく、前記イネーブルされたビデオコーディング次元を表すシンタックス要素の値をコーディングさせる、コンピュータ可読記憶媒体。
  40. 前記プロセッサに、前記イネーブルされたビデオコーディング次元の各々の前記値をコーディングさせる前記命令は、前記プロセッサに、
    前記イネーブルされたビデオコーディング次元の各々に対して、前記それぞれの値を表すために使用されるビットのそれぞれの数を決定させ、
    前記決定されたそれぞれのビットの数に基づいて、前記イネーブルされたビデオコーディング次元の各々の前記値をコーディングさせる命令を備える、
    請求項39に記載のコンピュータ可読記憶媒体。
  41. 前記複数のビデオコーディング次元は、複数のスケーラブルなビデオコーディング次元を備え、前記複数のスケーラブルなビデオコーディング次元は、優先度次元、空間次元、時間次元、信号対雑音比(SNR)次元、品質次元、ビュー次元、カラービット深度次元、クロミナンス(クロマ)サンプルフォーマット次元、および依存性次元のうちの1つまたは複数を備える、請求項40に記載のコンピュータ可読記憶媒体。
  42. 前記プロセッサに、前記複数のビデオコーディング次元のうちのいずれがイネーブルされているかを表す前記情報をコーディングさせる前記命令は、前記プロセッサに、次元範囲パラメータセットとNALユニットヘッダマップの少なくとも1つをコーディングさせる命令を備える、請求項40に記載のコンピュータ可読記憶媒体。
  43. 前記イネーブルされたビデオコーディング次元の1つまたは複数の前記値は、前記それぞれのイネーブルされたビデオコーディング次元の可能な値のそれぞれのセットに対するインデックス値を備え、前記コンピュータ可読記憶媒体は、前記プロセッサに、
    前記インデックス値の各々と、前記それぞれのインデックス値がマッピングされる前記それぞれのセットの前記値の1つとの間のマッピングを決定させ、
    前記値がインデックス値を備える前記イネーブルされたビデオコーディング次元の各々に対する前記マッピングを定義する情報を含む、値マッピングテーブルに対するインデックスをコーディングさせる命令をさらに備える、
    請求項40に記載のコンピュータ可読記憶媒体。
  44. 前記イネーブルされたビデオコーディング次元の1つがビュー次元を備え、
    前記プロセッサに前記インデックス値をコーディングさせる前記命令は、前記プロセッサに、前記NALユニットヘッダにおいて、前記ビュー次元のビュー順序インデックス値をコーディングさせる命令を備え、
    前記プロセッサに前記マッピングを決定させる前記命令は、前記プロセッサに、前記ビュー次元の前記ビュー順序インデックス値とビュー識別子(view_id)値との間のマッピングを決定させる命令を備える、
    請求項43に記載のコンピュータ可読記憶媒体。
  45. 前記NALユニットは前記ビットストリームの第1のNALユニットを備え、前記コンピュータ可読記憶媒体は、前記プロセッサに、
    前記ビットストリームのサブビットストリームを抽出することと、前記サブビットストリームは、前記第1のNALユニットの前記ビデオデータの少なくとも一部分を含む第2のNALユニットを備え、
    前記サブビットストリームのために、前記複数のビデオコーディング次元のうちのいずれが前記ビットストリームに対してイネーブルされているかを表す情報をコーディングすることと、
    前記第2のNALユニットの変更されたNALユニットヘッダにおいて、イネーブルされていない前記ビデオコーディング次元の値をコーディングすることなく、前記サブビットストリームの前記イネーブルされたビデオコーディング次元の各々の値をコーディングすることと、前記変更されたNALユニットヘッダは、前記第1のNALユニットの前記NALユニットヘッダのビット長よりも短いビット長を有し、
    を行わせる命令をさらに備える、請求項40に記載のコンピュータ可読記憶媒体。
  46. 前記プロセッサに、前記イネーブルされたビデオコーディング次元の各々の前記値に基づいて、前記NALユニットの前記ビデオデータをコーディングさせる命令をさらに備える、請求項40に記載のコンピュータ可読記憶媒体。
  47. 前記プロセッサに前記ビデオデータをコーディングさせる前記命令は、前記プロセッサに、前記イネーブルされたビデオコーディング次元の各々の前記値に基づいて、前記ビデオデータを復号させる命令を備える、請求項46に記載のコンピュータ可読記憶媒体。
  48. 前記プロセッサに前記ビデオデータをコーディングさせる前記命令は、前記プロセッサに、前記イネーブルされたビデオコーディング次元の各々の前記値に基づいて、前記ビデオデータを符号化させる命令を備える、請求項46に記載のコンピュータ可読記憶媒体。
JP2014524033A 2011-08-01 2012-07-31 ビデオコーディングにおける様々な次元に対するコーディングパラメータセット Active JP5869126B2 (ja)

Applications Claiming Priority (11)

Application Number Priority Date Filing Date Title
US201161513996P 2011-08-01 2011-08-01
US61/513,996 2011-08-01
US201161539925P 2011-09-27 2011-09-27
US61/539,925 2011-09-27
US201161557300P 2011-11-08 2011-11-08
US61/557,300 2011-11-08
US201161563359P 2011-11-23 2011-11-23
US61/563,359 2011-11-23
US13/561,754 US10237565B2 (en) 2011-08-01 2012-07-30 Coding parameter sets for various dimensions in video coding
US13/561,754 2012-07-30
PCT/US2012/049041 WO2013019811A1 (en) 2011-08-01 2012-07-31 Coding parameter sets for various dimensions in video coding

Publications (2)

Publication Number Publication Date
JP2014522187A true JP2014522187A (ja) 2014-08-28
JP5869126B2 JP5869126B2 (ja) 2016-02-24

Family

ID=47626941

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014524033A Active JP5869126B2 (ja) 2011-08-01 2012-07-31 ビデオコーディングにおける様々な次元に対するコーディングパラメータセット

Country Status (10)

Country Link
US (1) US10237565B2 (ja)
EP (1) EP2740268B1 (ja)
JP (1) JP5869126B2 (ja)
KR (1) KR101553787B1 (ja)
CN (1) CN103733623B (ja)
BR (1) BR112014002479B1 (ja)
CA (1) CA2843748C (ja)
IN (1) IN2014CN00319A (ja)
RU (1) RU2575986C2 (ja)
WO (1) WO2013019811A1 (ja)

Families Citing this family (57)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8379727B2 (en) * 2008-09-26 2013-02-19 General Instrument Corporation Method and apparatus for scalable motion estimation
KR101215152B1 (ko) 2011-04-21 2012-12-24 한양대학교 산학협력단 인루프 필터링을 적용한 예측 방법을 이용한 영상 부호화/복호화 방법 및 장치
US9674525B2 (en) 2011-07-28 2017-06-06 Qualcomm Incorporated Multiview video coding
US9635355B2 (en) 2011-07-28 2017-04-25 Qualcomm Incorporated Multiview video coding
US9591318B2 (en) 2011-09-16 2017-03-07 Microsoft Technology Licensing, Llc Multi-layer encoding and decoding
US9712874B2 (en) * 2011-12-12 2017-07-18 Lg Electronics Inc. Device and method for receiving media content
US9258559B2 (en) 2011-12-20 2016-02-09 Qualcomm Incorporated Reference picture list construction for multi-view and three-dimensional video coding
US11089343B2 (en) * 2012-01-11 2021-08-10 Microsoft Technology Licensing, Llc Capability advertisement, configuration and control for video coding and decoding
US9451252B2 (en) 2012-01-14 2016-09-20 Qualcomm Incorporated Coding parameter sets and NAL unit headers for video coding
US9313486B2 (en) * 2012-06-20 2016-04-12 Vidyo, Inc. Hybrid video coding techniques
US9179145B2 (en) * 2012-07-02 2015-11-03 Vidyo, Inc. Cross layer spatial intra prediction
US9686542B2 (en) * 2012-09-05 2017-06-20 Qualcomm Incorporated Network abstraction layer header design
US10021394B2 (en) 2012-09-24 2018-07-10 Qualcomm Incorporated Hypothetical reference decoder parameters in video coding
EP2901688B1 (en) * 2012-09-28 2019-10-23 Nokia Technologies Oy An apparatus and a method for video coding and decoding
US9325997B2 (en) * 2012-11-16 2016-04-26 Huawei Technologies Co., Ltd Signaling scalability information in a parameter set
US10178400B2 (en) * 2012-11-21 2019-01-08 Dolby International Ab Signaling scalability information in a parameter set
US9774927B2 (en) * 2012-12-21 2017-09-26 Telefonaktiebolaget L M Ericsson (Publ) Multi-layer video stream decoding
US9462287B2 (en) * 2013-01-04 2016-10-04 Dolby International Ab Implicit signaling of scalability dimension identifier information in a parameter set
US9426468B2 (en) 2013-01-04 2016-08-23 Huawei Technologies Co., Ltd. Signaling layer dependency information in a parameter set
US9826244B2 (en) * 2013-01-08 2017-11-21 Qualcomm Incorporated Device and method for scalable coding of video information based on high efficiency video coding
RU2619886C2 (ru) * 2013-03-26 2017-05-19 Долби Лабораторис Лайсэнзин Корпорейшн Кодирование перцепционно-квантованного видеоконтента в многоуровневом кодировании vdr
US9998735B2 (en) * 2013-04-01 2018-06-12 Qualcomm Incorporated Inter-layer reference picture restriction for high level syntax-only scalable video coding
US9467700B2 (en) 2013-04-08 2016-10-11 Qualcomm Incorporated Non-entropy encoded representation format
US9602822B2 (en) * 2013-04-17 2017-03-21 Qualcomm Incorporated Indication of cross-layer picture type alignment in multi-layer video coding
KR102161741B1 (ko) * 2013-05-02 2020-10-06 삼성전자주식회사 HEVC(high efficiency video coding)에서 코딩 유닛에 대한 양자화 파라미터를 변화시키는 방법과 장치, 및 시스템
US9510006B2 (en) * 2013-05-03 2016-11-29 Empire Technology Development Llc Scalable video coding prioritization
JP6361866B2 (ja) * 2013-05-09 2018-07-25 サン パテント トラスト 画像処理方法および画像処理装置
WO2014196198A1 (ja) * 2013-06-05 2014-12-11 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 画像符号化方法、画像復号方法、画像符号化装置及び画像復号装置
JP2016523483A (ja) * 2013-06-18 2016-08-08 ヴィド スケール インコーポレイテッド Hevc拡張のためのレイヤ間パラメータセット
WO2015006281A2 (en) * 2013-07-09 2015-01-15 Sony Corporation High level syntax improvement on inter-layer prediction for shvc/mv-hevc
US9912943B2 (en) * 2013-07-15 2018-03-06 Qualcomm Incorporated Signaling of bit rate information and picture rate information in VPS
US20160156915A1 (en) * 2013-07-18 2016-06-02 Samsung Electronics Co., Ltd. Video encoding method and apparatus and video decoding method and apparatus using video format parameter delivery
JP5774652B2 (ja) 2013-08-27 2015-09-09 ソニー株式会社 送信装置、送信方法、受信装置および受信方法
US10284858B2 (en) * 2013-10-15 2019-05-07 Qualcomm Incorporated Support of multi-mode extraction for multi-layer video codecs
US9628800B2 (en) * 2013-11-18 2017-04-18 Qualcomm Incorporated Adaptive control for transforms in video coding
US10306265B2 (en) 2013-12-30 2019-05-28 Qualcomm Incorporated Simplification of segment-wise DC coding of large prediction blocks in 3D video coding
WO2015103462A1 (en) * 2014-01-02 2015-07-09 Vidyo, Inc. Overlays using auxiliary pictures
JP2015136060A (ja) * 2014-01-17 2015-07-27 ソニー株式会社 通信装置、通信データ生成方法、および通信データ処理方法
JP2015136057A (ja) * 2014-01-17 2015-07-27 ソニー株式会社 通信装置、通信データ生成方法、および通信データ処理方法
US10645404B2 (en) * 2014-03-24 2020-05-05 Qualcomm Incorporated Generic use of HEVC SEI messages for multi-layer codecs
CN106233736B (zh) * 2014-04-25 2020-06-05 索尼公司 发送设备、发送方法、接收设备以及接收方法
JP2016015009A (ja) * 2014-07-02 2016-01-28 ソニー株式会社 情報処理システム、情報処理端末、および情報処理方法
US9583113B2 (en) * 2015-03-31 2017-02-28 Lenovo (Singapore) Pte. Ltd. Audio compression using vector field normalization
GB2538997A (en) * 2015-06-03 2016-12-07 Nokia Technologies Oy A method, an apparatus, a computer program for video coding
US10291923B2 (en) * 2016-05-24 2019-05-14 Qualcomm Incorporated Mapping of tile grouping and samples in HEVC and L-HEVC file formats
US10938878B2 (en) * 2017-05-16 2021-03-02 Red Hat, Inc. Separate cache servers for storing objects in different dedicated size ranges
GB201817784D0 (en) * 2018-10-31 2018-12-19 V Nova Int Ltd Methods,apparatuses, computer programs and computer-readable media
JP6648811B2 (ja) * 2018-12-13 2020-02-14 ソニー株式会社 送信装置、送信方法、受信装置および受信方法
US10812818B2 (en) * 2018-12-14 2020-10-20 Tencent America LLC Network abstraction unit layer type classes in network abstraction layer unit header
CN114666595A (zh) 2019-03-11 2022-06-24 杜比实验室特许公司 帧速率可伸缩视频编码
EP3939317A1 (en) 2019-03-11 2022-01-19 Dolby Laboratories Licensing Corporation Video coding using reference picture resampling supporting region of interest
CN114521327A (zh) * 2019-07-05 2022-05-20 威诺瓦国际有限公司 视频译码中的残差的量化
JP2022543627A (ja) 2019-08-06 2022-10-13 ドルビー ラボラトリーズ ライセンシング コーポレイション 描画面サイズ拡張可能ビデオコーディング
GB2611864B (en) * 2019-08-23 2023-12-06 Imagination Tech Ltd Random accessible image data compression
US11375182B2 (en) * 2019-12-17 2022-06-28 Hfi Innovation Inc. Method and apparatus of constrained layer-wise video coding
JP6773205B2 (ja) * 2019-12-19 2020-10-21 ソニー株式会社 送信装置、送信方法、受信装置および受信方法
US11750843B2 (en) 2021-06-28 2023-09-05 Tencent America LLC Multiview-related supplementary enhancement information messages

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010102650A1 (en) * 2009-03-13 2010-09-16 Telefonaktiebolaget Lm Ericsson (Publ) Technique for bringing encoded data items into conformity with a scalable coding protocol
WO2010126612A2 (en) * 2009-05-01 2010-11-04 Thomson Licensing Reference picture lists for 3dv

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7302490B1 (en) * 2000-05-03 2007-11-27 Microsoft Corporation Media file format to support switching between multiple timeline-altered media streams
WO2002054779A2 (de) 2001-01-08 2002-07-11 Siemens Aktiengesellschaft Verfahren zur header-kompression bei einer video-codierung
US20050254575A1 (en) 2004-05-12 2005-11-17 Nokia Corporation Multiple interoperability points for scalable media coding and transmission
GB0518300D0 (en) 2005-09-08 2005-10-19 Hendrickson Europ Ltd Vehicle suspensions
US20100158133A1 (en) 2005-10-12 2010-06-24 Peng Yin Method and Apparatus for Using High-Level Syntax in Scalable Video Encoding and Decoding
AU2007204168B2 (en) 2006-01-11 2011-02-24 Nokia Technologies Oy Backward-compatible aggregation of pictures in scalable video coding
US20070230564A1 (en) 2006-03-29 2007-10-04 Qualcomm Incorporated Video processing with scalability
KR100959538B1 (ko) 2006-03-30 2010-05-27 엘지전자 주식회사 비디오 신호를 디코딩/인코딩하기 위한 방법 및 장치
CN101491095B (zh) 2006-03-30 2013-07-10 Lg电子株式会社 用于解码/编码视频信号的方法和装置
FR2899758A1 (fr) 2006-04-07 2007-10-12 France Telecom Procede et dispositif de codage de donnees en un flux scalable
MX2009003968A (es) 2006-10-16 2009-06-01 Nokia Corp Sistema y método para usar segmentos decodificables paralelamente para codificación de video de vistas múltiples.
RU2387094C1 (ru) 2006-11-09 2010-04-20 ЭлДжи ЭЛЕКТРОНИКС ИНК. Способ и устройство для кодирования/декодирования видеосигнала
EP3041195A1 (en) 2007-01-12 2016-07-06 University-Industry Cooperation Group Of Kyung Hee University Packet format of network abstraction layer unit, and algorithm and apparatus for video encoding and decoding using the format
US20100266042A1 (en) 2007-03-02 2010-10-21 Han Suh Koo Method and an apparatus for decoding/encoding a video signal
US8548261B2 (en) 2007-04-11 2013-10-01 Samsung Electronics Co., Ltd. Method and apparatus for encoding and decoding multi-view image
US20090003431A1 (en) 2007-06-28 2009-01-01 Lihua Zhu Method for encoding video data in a scalable manner
WO2009003499A1 (en) 2007-06-29 2009-01-08 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Scalable video coding supporting pixel value refinement scalability
BRPI0818444A2 (pt) 2007-10-12 2016-10-11 Qualcomm Inc codificação adaptativa de informação de cabeçalho de bloco de vídeo
FR2924887B1 (fr) 2007-12-07 2011-07-15 Thales Sa Procede et dispositif de transmission robuste d'en-tetes reseau compresses
KR20090079838A (ko) 2008-01-17 2009-07-22 엘지전자 주식회사 Iptv 수신 시스템 및 그 데이터 처리 방법
EP2319248A1 (en) 2008-08-26 2011-05-11 Koninklijke Philips Electronics N.V. Method and system for encoding a 3d video signal, encoder for encoding a 3-d video signal, encoded 3d video signal, method and system for decoding a 3d video signal, decoder for decoding a 3d video signal
KR101619448B1 (ko) 2008-11-18 2016-05-10 엘지전자 주식회사 영상 신호 처리 방법 및 장치
EP2392138A4 (en) * 2009-01-28 2012-08-29 Nokia Corp METHOD AND APPARATUS FOR VIDEO ENCODING AND DECODING
RU2550552C2 (ru) 2009-04-28 2015-05-10 Панасоник Корпорэйшн Способ декодирования изображений и устройство декодирования изображений
US8780999B2 (en) 2009-06-12 2014-07-15 Qualcomm Incorporated Assembling multiview video coding sub-BITSTREAMS in MPEG-2 systems
US8344917B2 (en) * 2010-09-30 2013-01-01 Sharp Laboratories Of America, Inc. Methods and systems for context initialization in video coding and decoding
US9635355B2 (en) 2011-07-28 2017-04-25 Qualcomm Incorporated Multiview video coding

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010102650A1 (en) * 2009-03-13 2010-09-16 Telefonaktiebolaget Lm Ericsson (Publ) Technique for bringing encoded data items into conformity with a scalable coding protocol
WO2010126612A2 (en) * 2009-05-01 2010-11-04 Thomson Licensing Reference picture lists for 3dv

Non-Patent Citations (6)

* Cited by examiner, † Cited by third party
Title
JPN6014048181; Peter Amon et al.: 'High-Level Syntax for SVC' Joint Video Team (JVT) of ISO/IEC MPEG & ITU-T VCEG (ISO/IEC JTC1/SC29/WG11 and ITU-T SG16 Q.6) JVT-P100, 200507, pp.1-7, 16th Meeting: Poznan, PL *
JPN6014048184; Doug Young Suh: 'A Shortened NAL Header for Light Applications' Joint Video Team (JVT) of ISO/IEC MPEG & ITU-T VCEG (ISO/IEC JTC1/SC29/WG11 and ITU-T SG16 Q.6) JVT-V129r1, 200701, pp.1-5, 22nd Meeting: Marrakech, Morocco *
JPN6015041869; Ye-Kui Wang and Zhenyu Wu: 'On NAL unit header' Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11 JCTVC-D080, 201101, pp.1-3, 4th Meeting: Daegu, KR *
JPN6015048871; Ye-Kui Wang: 'NAL unit header and sub-bitstream extraction' Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11 JCTVC-E345, 201103, pp.1-5, 5th Meeting: Geneva, CH *
JPN6015048874; Rickard Sjoberg et al.: 'NAL unit header concept with support for bit stream scalability' Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11 JCTVC-E422, 201103, pp.1-6, 5th Meeting: Geneva, CH *
JPN6015048875; Ying Chen et al.: 'Unified NAL unit header design for HEVC and its extensions' Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11 JCTVC-G336, 201111, pp.1-7, 7th Meeting: Geneva, CH *

Also Published As

Publication number Publication date
EP2740268B1 (en) 2020-11-18
CA2843748A1 (en) 2013-02-07
KR20140043840A (ko) 2014-04-10
BR112014002479A2 (pt) 2017-02-21
CA2843748C (en) 2018-01-16
BR112014002479B1 (pt) 2022-06-07
CN103733623B (zh) 2017-08-04
WO2013019811A1 (en) 2013-02-07
CN103733623A (zh) 2014-04-16
US20130034170A1 (en) 2013-02-07
US10237565B2 (en) 2019-03-19
IN2014CN00319A (ja) 2015-04-03
KR101553787B1 (ko) 2015-09-16
EP2740268A1 (en) 2014-06-11
RU2575986C2 (ru) 2016-02-27
JP5869126B2 (ja) 2016-02-24
RU2014107877A (ru) 2015-09-10

Similar Documents

Publication Publication Date Title
JP5869126B2 (ja) ビデオコーディングにおける様々な次元に対するコーディングパラメータセット
JP6400660B2 (ja) Hevcおよび拡張のためのビデオパラメータセット
JP6509842B2 (ja) 高効率ビデオコーディング拡張におけるターゲット出力レイヤの選択
JP6141386B2 (ja) 深度範囲パラメータのシグナリング
JP6117243B2 (ja) ビデオコーディング用のコーディングパラメータセットおよびnalユニットヘッダ
JP6594967B2 (ja) 階層化されたhevcビットストリームの搬送のための動作点
JP6377623B2 (ja) ビデオコーディングにおけるターゲット出力レイヤ
JP6502357B2 (ja) マルチレイヤビデオコーディングにおける色域スケーラビリティのための3dルックアップテーブルに関する区分情報のシグナリング
JP2016197869A (ja) マルチビュービデオコード化(mvc)適合3次元ビデオコード化(3dvc)のためのパラメータセットのアクティブ化
KR20160071415A (ko) 다중-계층 비디오 코딩에서의 3차원 룩업 테이블 기반 색역 스케일러빌리티
JP6363190B2 (ja) Vps内のビットレート情報およびピクチャレート情報のシグナリング
JP2016514426A (ja) ビュー内でのおよびビューにわたる深度ルックアップテーブルの予測コーディング
JP2017515386A (ja) 色域スケーラビリティのための3d色予測のために参照レイヤを信号伝達すること
US10277918B2 (en) Video encoding and decoding method and apparatus using the same

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140401

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140401

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150127

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150424

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20151208

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160106

R150 Certificate of patent or registration of utility model

Ref document number: 5869126

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250