以下、発明を実施するための形態(以下、「実施の形態」とする)について説明する。なお、説明は以下の順序で行う。
1.実施の形態
2.変形例
<1.実施の形態>
[送受信システム]
図1は、実施の形態としての送受信システム10の構成例を示している。この送受信システム10は、送信装置100と、受信装置200とを有する構成となっている。
送信装置100は、コンテナとしてのトランスポートストリームTSを放送波あるいはネットのパケットに載せて送信する。このトランスポートストリームTSには、動画像データを構成する各ピクチャの画像データが複数の階層に分類され、各階層のピクチャの画像データの符号化データを持つビデオストリームが含まれる。この場合、各階層のピクチャの符号化画像データを持つ単一のビデオストリーム、あるいは複数の階層が上位階層側および下位階層側の2つの組に分割され、各階層組のピクチャの符号化画像データをそれぞれ持つ2つのビデオストリームが含まれる。
例えば、H.264/AVC、H.265/HEVCなどの符号化が施され、被参照ピクチャが自己階層および/または自己階層よりも低い階層に所属するように符号化される。そして、この場合、低階層側および高階層側の階層構成が等しくされ、低階層側および高階層側の対応するピクチャが一つの組にされて順次符号化される。このような符号化が行われることで、受信側では、低階層側および高階層側のピクチャの符号化画像データに対してデコード処理を行う際に、バッファサイズの減少およびデコード遅延の減少が可能となる。
各階層のピクチャの符号化画像データに、ピクチャ毎に、所属階層を識別するための階層識別情報が付加される。この実施の形態においては、各ピクチャのNALユニット(nal_unit)のヘッダ部分に、階層識別情報(temporal_idを意味する“nuh_temporal_id_plus1”)が配置される。このように階層識別情報が付加されることで、受信側では、所定階層以下の階層の符号化画像データを選択的に取り出してデコード処理を行うことができる。
コンテナのレイヤに、各階層のレベル指定値の情報などを含む階層情報が挿入される。受信側では、この階層情報を参照することで、ビデオストリームからデコーダの能力に見合った階層のピクチャの符号化画像データを選択的に取り出すことが、容易に可能となる。例えば、この階層情報は、プログラムマップテーブル(PMT:Program Map Table)の配下、あるいはイベントインフォメーションテーブル(EIT:Event Information Table)の配下に挿入される。
また、例えば、この階層情報は、ビデオストリームの各ピクチャの符号化画像データに同期した位置であるPESパケットのヘッダのPESエクステンションフィールド(PES extension field)に挿入される。これにより、受信側では、階層構成が変化する場合にも、ビデオストリームからデコーダの能力に見合った階層のピクチャの符号化画像データを選択的に取り出すことを適切に行うことが可能となる。
このように階層情報がPESパケットのエクステンションフィールドに挿入されるとき、PESパケットのエクステンションフィールドに階層情報が挿入されていることを識別する識別情報が、プログラムマップテーブルの配下に挿入される。この場合、受信側においては、この識別情報に基づいて、PESパケットのエクステンションフィールドに階層情報が挿入されていることを識別可能となる。
受信装置200は、送信装置100から放送波あるいはネットのパケットに載せて送られてくる上述のトランスポートストリームTSを受信する。受信装置200は、このトランスポートストリームTSを処理する。この場合、コンテナのレイヤに含まれる階層情報に基づいて、ビデオストリームから、デコーダの能力に見合った所定階層以下の階層のピクチャの符号化画像データが選択的に取り出されて復号化(デコード)され、この所定階層以下の階層のピクチャの画像データが得られる。
「送信装置の構成」
図2は、送信装置100の構成例を示している。この送信装置100は、CPU(Central Processing Unit)101と、エンコーダ102と、圧縮データバッファ(cpb:coded picture buffer)103と、マルチプレクサ104と、送信部105を有している。CPU101は、制御部であり、送信装置100の各部の動作を制御する。
エンコーダ102は、非圧縮の動画像データVDを入力して、階層符号化を行う。エンコーダ102は、この動画像データVDを構成する各ピクチャの画像データを複数の階層に分類する。そして、エンコーダ102は、この分類された各階層のピクチャの画像データを符号化し、各階層のピクチャの符号化画像データを持つビデオストリームを生成する。
エンコーダ102は、例えば、H.264/AVC、H.265/HEVCなどの符号化を行う。この際、エンコーダ102は、参照するピクチャ(被参照ピクチャ)が、自己階層および/または自己階層よりも下位の階層に所属するように、符号化する。また、エンコーダ102は、複数の階層を低階層側と高階層側に二分し、それぞれの階層構成を等しくし、低階層側および高階層側の対応するピクチャを一つの組にして順次符号化する。
図3は、エンコーダ102で行われる階層符号化の一例を示している。この例は、0から5までの6階層に分類され、各階層のピクチャの画像データに対して符号化が施された例である。
縦軸は階層を示している。階層0から5のピクチャの符号化画像データを構成するNALユニット(nal_unit)のヘッダ部分に配置されるtemporal_id(階層識別情報)として、それぞれ、0から5が設定される。一方、横軸は表示順(POC:picture order of composition)を示し、左側は表示時刻が前で、右側は表示時刻が後になる。
図4(a)は、NALユニットヘッダの構造例(Syntax)を示し、図4(b)は、その構造例における主要なパラメータの内容(Semantics)を示している。「Forbidden_zero_bit」の1ビットフィールドは、0が必須である。「Nal_unit_type」の6ビットフィールドは、NALユニットタイプを示す。「Nuh_layer_id」の6ビットフィールドは、0を前提とする。「Nuh_temporal_id_plus1」の3ビットフィールドは、temporal_idを示し、1を加えた値(1〜6)をとる。
図3に戻って、矩形枠のそれぞれがピクチャを示し、数字は、符号化されているピクチャの順、つまりエンコード順(受信側ではデコード順)を示している。例えば、「0」から「7」の8個のピクチャによりサブ・ピクチャグループ(Sub group of pictures)が構成されており、「0」はそのサブ・ピクチャグループの先頭のピクチャとなる。このサブ・ピクチャグループがいくつか集まってGOP(Group Of Pictures)となる。
この例では、階層0から2の3階層が低階層側で、階層3から5の3階層が高階層側となる。図示のように、低階層側と高階層側の階層構成が等しくされ、低階層側および高階層側の対応するピクチャが一つの組にされて順次符号化されていく。例えば、最初に低階層側の「0」と高階層側の「1」とが1つの組にされて符号化され、次に低階層側の「2」と高階層側の「3」とが1つの組にされて符号化され、以下同様に符号化されていく。この場合、低階層は、ある一定階層より低い階層に限定される。これにより、低階層をデコードする際には、限定された階層のみをデコードすることで安定したデコード表示が可能になる。このことは、低階層、高階層に分けられていない場合であっても同様である。
図3に戻って、実線、破線矢印は、符号化におけるピクチャの参照関係を示している。例えば、「0」はIピクチャ(Intra picture)であり、他のピクチャを参照しない。「1」はPピクチャであり、「1」のピクチャを参照して符号化される。「2」はBピクチャであり、「0」のピクチャと、前のサブ・ピクチャグループのピクチャ(図示せず)を参照して符号化される。「3」はBピクチャであり、「0」、「2」のピクチャを参照して符号化される。同様に、その他のピクチャは、表示順で近くのピクチャを参照して符号化される。なお、「D」は、参照するピクチャと表示順でどのくらい離れているかを示している。「D」の表示がないところは、D=1である。
図5は、エンコーダ102で行われる階層符号化の他の一例を示している。詳細説明は省略するが、この例は、図3の例では高階層側の各ピクチャの表示順が低階層側の各ピクチャの表示順より1ピクチャ分遅れているが、図5の例では高階層側の各ピクチャの表示順が低階層側の各ピクチャの表示順より1ピクチャ分進んでいる。この例の場合も、低階層側と高階層側の階層構成が等しくされ、低階層側および高階層側の対応するピクチャが一つの組にされて順次符号化されていく。
エンコーダ102は、各階層のピクチャの符号化画像データを持つビデオストリームを生成する。例えば、各階層のピクチャの符号化画像データを持つ単一のビデオストリームを生成するか、あるいは上位階層側および下位階層側のピクチャの符号化画像データをそれぞれ持つ2つのビデオストリームを生成する。
図6は、各ピクチャの符号化画像データの構成例を示している。GOPの先頭ピクチャの符号化画像データは、AUD、VPS、SPS、PPS、PSEI、SLICE、SSEI、EOSのNALユニットにより構成される。一方、GOPの先頭ピクチャ以外のピクチャは、AUD、PPS、PSEI、SLICE、SSEI、EOSのNALユニットにより構成される。VPSはSPSと共に、シーケンス(GOP)に一度、PPSは毎ピクチャで伝送可能とされている。なお、EOSは存在しなくともよい。
SPS(Sequence Parameter Set)には、ビットストリームのレベル指定値である「general_level_idc」が挿入されている。また、SPSには、“temporal_id”で示される各階層に属するピクチャがサブレイヤ(sub_layer)として括られ、“Sublayer_level_presented_flag”が“1”とされることで、サブレイヤごとのビットレートのレベル指定値である「sublayer_level_idc」も挿入可能とされている。以上はSPSだけでなくVPSにおいても供給される。
例えば、図3の階層符号化の例を考える。SPSに挿入される「general_level_idc」の値は、階層0から5の全てのピクチャを含むレベル値とされる。例えば、そのフレームレートが、120Pであるときは、 “Level5.2”とされる。また、SPSに挿入される「sublayer_level_idc[2]」の値は、階層0から2のピクチャのみを含むレベル値とされる。例えば、そのフレームレートが、60Pであるときは、 “Level5.1”とされる。
図2に戻って、圧縮データバッファ(cpb)103は、エンコーダ102で生成された、各階層のピクチャの符号化画像データを含むビデオストリームを、一時的に蓄積する。マルチプレクサ104は、圧縮データバッファ103に蓄積されているビデオストリームを読み出し、PESパケット化し、さらにトランスポートパケット化して多重し、多重化ストリームとしてのトランスポートストリームTSを得る。このトランスポートストリームTSには、上述したように、単一あるいは複数のビデオストリームが含まれる。
マルチプレクサ104は、コンテナのレイヤに、階層情報を挿入する。送信部105は、マルチプレクサ104で得られたトランスポートストリームTSを、放送波あるいはネットのパケットに載せて、受信装置200に送信する。
[階層情報の挿入について]
マルチプレクサ104における階層情報の挿入についてさらに説明する。マルチプレクサ104は、例えば、以下の(A),(B),(C)のいずれかにより、コンテナのレイヤに階層情報を挿入する。
(A)プログラムマップテーブル(PMT:Program Map Table)の配下に、階層情報を挿入する。
(B)イベントインフォメーションテーブル(EIT:Event Information Table)の配下に、階層情報を挿入する。
(C)PESパケットのヘッダのエクステンションフィールド(Extension field)に階層情報を挿入する。
「(A)の説明」
トランスポートストリームTSには、PSI(Program Specific Information)として、PMTが含まれている。このPMTには、各ビデオストリームに関連した情報を持つビデオエレメンタリ・ループ(video ES1 loop)が存在する。このビデオエレメンタリ・ループには、各ビデオストリームに対応して、ストリームタイプ、パケット識別子(PID)等の情報が配置されると共に、そのビデオストリームに関連する情報を記述するデスクリプタも配置される。
マルチプレクサ104は、このデスクリプタの一つとして新たに定義するレイヤ・デコーディング・デスクリプタ(Layer_decoding_descriptor)を挿入する。図7(a),(b)は、レイヤ・デコーディング・デスクリプタの構造例(Syntax)を示している。また、図8は、その構造例における主要な情報の内容(Semantics)を示している。
「Layer_decoding_descriptor_tag」の8ビットフィールドは、デスクリプタタイプを示し、ここでは、レイヤ・デコーディング・デスクリプタであることを示す。「Layer_decoding_descriptor_length」の8ビットフィールドは、デスクリプタの長さ(サイズ)を示し、デスクリプタの長さとして、以降の「layer_information()」のバイト数を示す。
図7(b)は、「layer_information()」の構造例(Syntax)を示している。「layer_minimum LMI」の3ビットフィールドは、“temporal_id”の最小値で示される階層(layer)を示す。「layer_maximum LMX」の3ビットフィールドは、“temporal_id”の最大値で示される階層(layer)を示す。ここで、“temporal_id”を割り当てるレイヤ数は、(LMX−LMI+1)となる。「layer_level_idc[i]」の8ビットフィールドは、各階層のビットレートのレベル指定値である「level_idc」を示す。
「(B)の説明」
また、トランスポートストリームTSには、イベント単位の管理を行うSI(Serviced Information)としてのEITが含まれている。マルチプレクサ104は、このEITの配下に、上述したレイヤ・デコーディング・デスクリプタ(図7参照)を配置する。この場合、マルチプレクサ104は、このEITの配下に、従来周知のコンポーネント・デスクリプタ(Component descriptor)をも配置し、PESストリームとのリンクをとる。
「(C)の説明」
PESパケットのヘッダに、PESエクステンションフィールド(Extension field)を設けることができる。マルチプレクサ104は、このエクステンションフィールドに、階層情報を持つPESエクステンション・フィールド・データを挿入する。マルチプレクサ104は、このようにPESパケットのヘッダにPESエクステンションフィールドを設けて、階層情報を持つPESエクステンション・フィールド・データを挿入することを、例えば、少なくともCVS(Coded Video Sequence)単位で行う。図9は、PESエクステンション・フィールド・データ「pes_extension_field_data()」の構造例(Syntax)を示している。
なお、「PES_extension field length」は、このシンタクス構造の外部で与えられるものとする。「start_sync_byte」の8ビットフィールドは、エクステンション・フィールド(extension field)の開始を表す符号値を示す。「extension_field_type」の8ビットフィールドは、エクステンションフィールドのタイプを示す。ここでは、階層情報を供給することを示す。「layer_information()」は、上述したように、「layer_minimum LMI」「layer_minimum LMX」、「layer_level_idc[i]」のフィールドを持つ(図7(b)参照)。
この場合、マルチプレクサ104は、ビデオエレメンタリ・ループに、デスクリプタの1つとして、PESエクステンションフィールドに階層情報が挿入されていることを明示するためのペス・エクステンション・デスクリプタ(PES_extension_descriptor)を配置する。
図10(a)は、ペス・エクステンション・デスクリプタ(PES_extension_descriptor)の構造例(Syntax)を示している。また、図10(b)は、その構造例における主要な情報の内容(Semantics)を示している。「PES_extention_descriptor_tag」の8ビットフィールドは、デスクリプタタイプを示し、ここでは、ペス・エクステンション・デスクリプタであることを示す。「PES_extention_descriptor_length」の8ビットフィールドは、デスクリプタの長さ(サイズ)を示し、デスクリプタの長さとして、以降のバイト数を示す。「PES_extension_existed」の1ビットフィールドは、該当するPESストリームのPESエクステンションフィールドに符号化がなされているかを示す。1”は、符号化がなされていることを示し、“0”は符号化がなされていないことを示す。
[トランスポートストリームTSの構成]
図11は、単一ストリームによる配信を行う場合であって、プログラムマップテーブル(PMT:Program Map Table)の配下に階層情報を挿入する場合(上述の(A))におけるトランスポートストリームTSの構成例を示している。この構成例では、複数の階層のピクチャの例えばHEVCによる符号化画像データを持つビデオストリームのPESパケット「video PES1」が存在する。
各ピクチャの符号化画像データには、VPS、SPS、PPS、SLICE、SEIなどのNALユニットが存在する。上述したように、NALユニットのヘッダには、そのピクチャの階層識別情報(temporal_idを意味する“nuh_temporal_id_plus1”)が配置されている。SPSには、ビットストリームのレベル指定値である「general_level_idc」が挿入されている。また、SPSには、“temporal_id”で示される各階層に属するピクチャがサブレイヤ(sub_layer)として括られ、“Sublayer_level_presented_flag”が“1”とされることで、サブレイヤごとのビットレートのレベル指定値である「sublayer_level_idc」が挿入される。
また、トランスポートストリームTSには、PSI(Program Specific Information)として、PMT(Program Map Table)が含まれている。このPSIは、トランスポートストリームに含まれる各エレメンタリストリームがどのプログラムに属しているかを記した情報である。
PMTには、プログラム全体に関連する情報を記述するプログラム・ループ(Program loop)が存在する。また、PMTには、各エレメンタリストリームに関連した情報を持つエレメンタリ・ループが存在する。この構成例では、ビデオエレメンタリ・ループ(video ES loop)が存在する。
ビデオエレメンタリ・ループには、ビデオストリーム(video PES1)に対応して、ストリームタイプ、パケット識別子(PID)等の情報が配置されると共に、そのビデオストリームに関連する情報を記述するデスクリプタも配置される。このデスクリプタの一つとして、上述したレイヤ・デコーディング・デスクリプタ(Layer_decoding_descriptor)が挿入される。
例えば、図3、図5の階層符号化例の場合、このデスクリプタに記述される内容は、以下とされる。すなわち、「layer_minimum LMI」=0、「layer_maximum LMX」=5、「layer_level_idc[0]」=Level5、「layer_level_idc[1]」=Level5、「layer_level_idc[2]」=Level5.1、「layer_level_idc[3]」=Level5.2、「layer_level_idc[4]」=Level5.2、「layer_level_idc[5]」=Level5.2とされる。
図12は、2ストリームによる配信を行う場合であって、プログラムマップテーブル(PMT:Program Map Table)の配下に階層情報を挿入する場合(上述の(A))におけるトランスポートストリームTSの構成例を示している。この構成例では、複数の階層が低階層側と高階層側の2つの組に分割され、この2つ組のピクチャの例えばHEVCによる符号化画像データをそれぞれ持つビデオストリームのPESパケット「video PES1」、「video PES2」が存在する。
低階層側の各ピクチャの符号化画像データには、VPS、SPS、PPS、SLICE、SEIなどのNALユニットが存在する。NALユニットのヘッダには、そのピクチャの階層識別情報(temporal_idを意味する“nuh_temporal_id_plus1”)が配置されている。SPSには、ビットストリームのレベル指定値である「general_level_idc」が挿入されている。また、SPSには、“temporal_id”で示される各階層に属するピクチャがサブレイヤ(sub_layer)として括られ、“sublayer_level_presented_flag”が“1”とされることで、サブレイヤごとのビットレートのレベル指定値である「sublayer_level_idc」が挿入される。
一方、高階層側の各ピクチャの符号化画像データには、PPS、SLICEなどのNALユニットが存在する。NALユニットのヘッダには、そのピクチャの階層識別情報(temporal_idを意味する“nuh_temporal_id_plus1”)が配置されている。
また、トランスポートストリームTSには、PSI(Program Specific Information)として、PMT(Program Map Table)が含まれている。このPSIは、トランスポートストリームに含まれる各エレメンタリストリームがどのプログラムに属しているかを記した情報である。
PMTには、プログラム全体に関連する情報を記述するプログラム・ループ(Program loop)が存在する。また、PMTには、各エレメンタリストリームに関連した情報を持つエレメンタリ・ループが存在する。この構成例では、2つのビデオエレメンタリ・ループ(video ES1 loop, video ES2 loop )が存在する。
各ビデオエレメンタリ・ループには、ビデオストリーム(video PES1, video PES2)に対応して、ストリームタイプ、パケット識別子(PID)等の情報が配置されると共に、そのビデオストリームに関連する情報を記述するデスクリプタも配置される。このデスクリプタの一つとして、上述したレイヤ・デコーディング・デスクリプタ(Layer_decoding_descriptor)が挿入される。
例えば、図3、図5の階層符号化例の場合、PESパケット「video PES1」、「video PES2」に対応したデスクリプタにそれぞれ記述される内容は、以下とされる。すなわち、PESパケット「video PES1」に対応したデスクリプタでは、「layer_minimum LMI」=0、「layer_maximum LMX」=2、「layer_level_idc[0]」=Level5、「layer_level_idc[1]」=Level5、「layer_level_idc[2]」=Level5.1とされる。また、PESパケット「video PES1」に対応したデスクリプタでは、「layer_minimum LMI」=3、「layer_maximum LMX」=5、「layer_level_idc[3]」=Level5.2、「layer_level_idc[4]」=Level5.2、「layer_level_idc[5]」=Level5.2とされる。
図13は、単一ストリームによる配信を行う場合であって、イベントインフォメーションテーブル(EIT:Event Information Table)の配下に階層情報を挿入する場合(上述の(B))におけるトランスポートストリームTSの構成例を示している。この構成例では、図11の構成例と同様に、複数の階層のピクチャの例えばHEVCによる符号化画像データを持つビデオストリームのPESパケット「video PES1」が存在する。
また、トランスポートストリームTSには、PSI(Program Specific Information)として、PMT(Program Map Table)が含まれている。このPSIは、トランスポートストリームに含まれる各エレメンタリストリームがどのプログラムに属しているかを記した情報である。
PMTには、プログラム全体に関連する情報を記述するプログラム・ループ(Program loop)が存在する。また、PMTには、各エレメンタリストリームに関連した情報を持つエレメンタリ・ループが存在する。この構成例では、ビデオエレメンタリ・ループ(video ES loop)が存在する。このビデオエレメンタリ・ループには、ビデオストリーム(video PES1)に対応して、ストリームタイプ、パケット識別子(PID)等の情報が配置されると共に、そのビデオストリームに関連する情報を記述するデスクリプタも配置される。
また、トランスポートストリームTSには、イベント単位の管理を行うSI(Serviced Information)としてのEITが含まれている。このEITの配下に、上述したレイヤ・デコーディング・デスクリプタ(Layer_decoding_descriptor)が配置される。詳細説明は省略するが、このデスクリプタに記述される内容は、図11の構成例と同様となる。なお、このEITの配下には、従来既知のコンポーネント・デスクリプタ(Component descriptor)が配置されており、PESパケット「video PES1」とのリンクが取られている。
図14は、2ストリームによる配信を行う場合であって、イベントインフォメーションテーブル(EIT:Event Information Table)の配下に階層情報を挿入する場合(上述の(B))におけるトランスポートストリームTSの構成例を示している。この構成例では、図12の構成例と同様に、複数の階層が低階層側と高階層側の2つの組に分割され、この2つ組のピクチャの例えばHEVCによる符号化画像データをそれぞれ持つビデオストリームのPESパケット「video PES1」、「video PES2」が存在する。
また、トランスポートストリームTSには、PSI(Program Specific Information)として、PMT(Program Map Table)が含まれている。このPSIは、トランスポートストリームに含まれる各エレメンタリストリームがどのプログラムに属しているかを記した情報である。
PMTには、プログラム全体に関連する情報を記述するプログラム・ループ(Program loop)が存在する。また、PMTには、各エレメンタリストリームに関連した情報を持つエレメンタリ・ループが存在する。この構成例では、2つのビデオエレメンタリ・ループ(video ES1 loop, video ES2 loop )が存在する。各ビデオエレメンタリ・ループには、ビデオストリーム(video PES1, video PES2)に対応して、ストリームタイプ、パケット識別子(PID)等の情報が配置されると共に、そのビデオストリームに関連する情報を記述するデスクリプタも配置される。
また、トランスポートストリームTSには、イベント単位の管理を行うSI(Serviced Information)としてのEITが含まれている。このEITの配下に、PESパケット「video PES1」、「video PES2」のそれぞれに対応したレイヤ・デコーディング・デスクリプタ(Layer_decoding_descriptor)が配置される。詳細説明は省略するが、このデスクリプタに記述される内容は、図12の構成例と同様となる。なお、このEITの配下には、従来既知のコンポーネント・デスクリプタ(Component descriptor)が配置されており、PESパケット「video PES1」、「video PES2」とのリンクが取られている。
図15は、単一ストリームによる配信を行う場合であって、PESパケットのヘッダのエクステンションフィールド(Extension field)に階層情報を挿入する場合(上述の(C))におけるトランスポートストリームTSの構成例を示している。この構成例では、図11の構成例と同様に、複数の階層のピクチャの例えばHEVCによる符号化画像データを持つビデオストリームのPESパケット「video PES1」が存在する。
PESパケットのヘッダに、PESエクステンションフィールド(Extension field)が設けられ、「layer_information()」を持つPESエクステンション・フィールド・データ「pes_extension_field_data()」が挿入される。詳細説明は省略するが、この「layer_information()」の記述内容は、図11の構成例におけるレイヤ・デコーディング・デスクリプタと同様となる。
また、トランスポートストリームTSには、PSI(Program Specific Information)として、PMT(Program Map Table)が含まれている。このPSIは、トランスポートストリームに含まれる各エレメンタリストリームがどのプログラムに属しているかを記した情報である。
PMTには、プログラム全体に関連する情報を記述するプログラム・ループ(Program loop)が存在する。また、PMTには、各エレメンタリストリームに関連した情報を持つエレメンタリ・ループが存在する。この構成例では、ビデオエレメンタリ・ループ(video ES loop)が存在する。
各ビデオエレメンタリ・ループには、ビデオストリーム(video PES1, video PES2)に対応して、ストリームタイプ、パケット識別子(PID)等の情報が配置されると共に、そのビデオストリームに関連する情報を記述するデスクリプタも配置される。このデスクリプタの一つとして、ペス・エクステンション・デスクリプタ(PES_extention_descriptor)が挿入される。このペス・エクステンション・デスクリプタは、PESエクステンションフィールドに階層情報が挿入されていることを明示するためのデスクリプタである。
図16は、2ストリームによる配信を行う場合であって、PESパケットのヘッダのエクステンションフィールド(Extension field)に階層情報を挿入する場合(上述の(C))におけるトランスポートストリームTSの構成例を示している。この構成例では、図12の構成例と同様に、複数の階層が低階層側と高階層側の2つの組に分割され、この2つ組のピクチャの例えばHEVCによる符号化画像データをそれぞれ持つビデオストリームのPESパケット「video PES1」、「video PES2」が存在する。
PESパケット「video PES1」のヘッダに、PESエクステンションフィールド(Extension field)が設けられ、「layer_information()」を持つPESエクステンション・フィールド・データ「pes_extension_field_data()」が挿入される。詳細説明は省略するが、この「layer_information()」の記述内容は、図12の構成例におけるPESパケット「video PES1」に対応したレイヤ・デコーディング・デスクリプタと同様となる。
また、PESパケット「video PES2」のヘッダに、PESエクステンションフィールド(Extension field)が設けられ、「layer_information()」を持つPESエクステンション・フィールド・データ「pes_extension_field_data()」が挿入される。詳細説明は省略するが、この「layer_information()」の記述内容は、図12の構成例におけるPESパケット「video PES2」に対応したレイヤ・デコーディング・デスクリプタと同様となる。
また、トランスポートストリームTSには、PSI(Program Specific Information)として、PMT(Program Map Table)が含まれている。このPSIは、トランスポートストリームに含まれる各エレメンタリストリームがどのプログラムに属しているかを記した情報である。
PMTには、プログラム全体に関連する情報を記述するプログラム・ループ(Program loop)が存在する。また、PMTには、各エレメンタリストリームに関連した情報を持つエレメンタリ・ループが存在する。この構成例では、2つのビデオエレメンタリ・ループ(video ES1 loop, video ES2 loop )が存在する。
各ビデオエレメンタリ・ループには、ビデオストリーム(video PES1, video PES2)に対応して、ストリームタイプ、パケット識別子(PID)等の情報が配置されると共に、そのビデオストリームに関連する情報を記述するデスクリプタも配置される。このデスクリプタの一つとして、ペス・エクステンション・デスクリプタ(PES_extention_descriptor)が挿入される。このペス・エクステンション・デスクリプタは、PESエクステンションフィールドに階層情報が挿入されていることを明示するためのデスクリプタである。
図2に示す送信装置100の動作を簡単に説明する。エンコーダ102には、非圧縮の動画像データVDが入力される。エンコーダ102では、この動画像データVDに対して、階層符号化が行われる。すなわち、エンコーダ102では、この動画像データVDを構成する各ピクチャの画像データが複数の階層に分類されて符号化され、各階層のピクチャの符号化画像データを持つビデオストリームが生成される。
この場合、参照するピクチャが、自己階層および/または自己階層よりも下位の階層に所属するように、符号化される。また、この場合、複数の階層が低階層側と高階層側に二分され、それぞれの階層構成が等しくされ、低階層側および高階層側の対応するピクチャが一つの組にされて順次符号化される。また、この場合、各階層のピクチャの符号化画像データを持つ単一のビデオストリームが生成されるか、あるいは上位階層側および下位階層側のピクチャの符号化画像データをそれぞれ持つ2つのビデオストリームが生成される。
エンコーダ102で生成された、各階層のピクチャの符号化データを含むビデオストリームは、圧縮データバッファ(cpb)103に供給され、一時的に蓄積される。マルチプレクサ104では、圧縮データバッファ103に蓄積されているビデオストリームが読み出され、PESパケット化され、さらにトランスポートパケット化されて多重され、多重化ストリームとしてのトランスポートストリームTSが得られる。このトランスポートストリームTSには、上述したように、単一あるいは複数のビデオストリームが含まれる。
このようにマルチプレクサ104でトランスポートストリームTSが生成されるとき、コンテナのレイヤに、例えば、プログラムマップテーブル(PMT)の配下に、イベントインフォメーションテーブル(EIT)の配下に、あるいはPESパケットのヘッダのエクステンションフィールドに階層情報が挿入される。マルチプレクサ104で生成されたトランスポートストリームTSは、送信部105に送られる。送信部105では、このトランスポートストリームTSが、放送波あるいはネットのパケットに載せて、受信装置200に送信される。
「受信装置の構成」
図17は、受信装置200の構成例を示している。この受信装置200は、CPU(Central Processing Unit)201と、受信部202と、デマルチプレクサ203と、圧縮データバッファ(cpb:coded picture buffer)204を有している。また、この受信装置200は、デコーダ205と、非圧縮データバッファ(dpb:decoded picture buffer)206と、ポスト処理部207と、表示部208を有している。CPU201は、制御部を構成し、受信装置200の各部の動作を制御する。
受信部202は、送信装置100から放送波あるいはネットのパケットに載せて送られてくるトランスポートストリームTSを受信する。デマルチプレクサ203は、トランスポートストリームTSから、デコーダ205の能力に応じた階層のピクチャの符号化画像データを、選択的に取り出し、圧縮データバッファ(cpb:coded picture buffer)204に送る。この場合、各ピクチャのNALユニット(nal_unit)のヘッダ部分に配置されている、“temporal_id”を意味する「nuh_temporal_id_plus1」の値を参照する。
この場合、デマルチプレクサ203はコンテナのレイヤに挿入されている階層情報を抽出し、この階層情報から各階層の「layer_level_idc」を認識し、デコーダ205の能力ではどの階層までデコード可能かを検出する。例えば、図3、図5の階層符号化例で、「layer_level_idc[0]」=Level5、「layer_level_idc[1]」=Level5、「layer_level_idc[2]」=Level5.1、「layer_level_idc[3]」=Level5.2、「layer_level_idc[4]」=Level5.2、「layer_level_idc[5]」=Level5.2であるとする。この場合、デコーダ205が60P、つまり“Level5.1”の能力があるときには、階層2までデコード可能であると検出される。また、この場合、デコーダ205が120P、つまり“Level5.2”の能力があるときには、階層5までデコード可能であると検出される。
圧縮データバッファ(cpb)204は、デマルチプレクサ203から送られてくる各階層のピクチャの符号化画像データを、一時的に蓄積する。デコーダ205は、圧縮データバッファ204に蓄積されている各ピクチャの符号化画像データを、それぞれ、そのピクチャのDTS(Decoding Time stamp)で与えられるデコードタイミングで読み出してデコードし、非圧縮データバッファ(dpb)206に送る。
非圧縮データバッファ(dpb)206は、デコーダ205でデコードされた各ピクチャの画像データを、一時的に蓄積する。ポスト処理部207は、非圧縮データバッファ(dpb)206からPTS(Presentation Time stamp)で与えられる表示タイミングで順次読み出された各ピクチャの画像データに対して、そのフレームレートを、表示能力に合わせる処理を行う。
例えば、デコード後の各ピクチャの画像データのフレームレートが60fpsであって、表示能力が120fpsであるとき、ポスト処理部207は、デコード後の各ピクチャの画像データに対して時間方向解像度が2倍となるように補間処理を施し、120fpsの画像データとして表示部208に送る。
表示部208は、例えば、LCD(Liquid Crystal Display)、有機EL(Organic Electro-Luminescence)パネル等で構成されている。なお、この表示部208は、受信装置200に接続される外部機器であってもよい。
図17に示す受信装置200の動作を簡単に説明する。受信部202では、送信装置100から放送波あるいはネットのパケットに載せて送られてくるトランスポートストリームTSが受信される。このトランスポートストリームTSは、デマルチプレクサ203に送られる。デマルチプレクサ203では、トランスポートストリームTSから、コンテナのレイヤに挿入されている階層情報に基づいて、デコーダ205の能力に応じた階層のピクチャの符号化画像データが選択的に取り出され、圧縮データバッファ(cpb)204に送られ、一時的に蓄積される。
デコーダ205では、圧縮データバッファ204に蓄積されている各階層のピクチャの符号化画像データが取り出される。そして、デコーダ205では、取り出された各ピクチャの符号化画像データが、それぞれ、そのピクチャのデコードタイミングでデコードされ、非圧縮データバッファ(dpb)206に送られ、一時的に蓄積される。
そして、非圧縮データバッファ(dpb)206から表示タイミングで順次読み出された各ピクチャの画像データは、ポスト処理部207に送られる。ポスト処理部207では、各ピクチャの画像データに対して、そのフレームレートを、表示能力に合わせるための補間あるいはサブサンプルが行われる。このポスト処理部207で処理された各ピクチャの画像データは、表示部208に供給され、動画像の表示が行われる。
以上説明したように、図1に示す送受信システム10において、送信装置100では、低階層側と高階層側の階層構成が等しくされ、低階層側および高階層側の対応するピクチャが一つの組にされて順次符号化される。そのため、例えば、受信装置200では、低階層側および高階層側のピクチャの符号化画像データに対してデコード処理を行う際に、一括りのタイミングで進めることが可能となり、バッファサイズの減少とデコード遅延の減少が可能となる。
また、図1に示す送受信システム10において、送信装置100では、階層符号化された各階層のピクチャの画像データを持つビデオストリームを含むトランスポートストリームを生成する際に、コンテナのレイヤに階層情報が挿入される。そのため、例えば、受信装置200では、この階層情報を参照することで、ビデオストリームからデコーダの能力に見合った階層までのピクチャの符号化画像データを選択的に取り出すことが容易に可能となる。
また、図1に示す送受信システム10において、送信装置100では、階層情報は、例えば、ビデオストリームの各ピクチャの符号化画像データに同期した位置であるPESパケットのヘッダのPESエクステンションフィールド(PES extension field)に、少なくともCVS(Coded Video Sequence)単位で挿入される。そのため、受信側では、階層構成に変化がある場合にも、ビデオストリームからデコーダの能力に見合った階層までのピクチャの符号化画像データを選択的に取り出すことを適切に行うことが可能となる。
図18は、階層構成が変化する場合における符号化画像データの「level_idc」のシグナリングと階層情報との対応関係の一例を示している。この例は、階層0から2の3階層の符号化が行われている第1の50PCVS系から、階層0から3の4階層の符号化が行われている第2の50PCVS系に変化し、さらに、階層0から5の6階層の符号化が行われている100PCVS系に変化する。また、図示の例は、階層情報が、PMTの配下に挿入されている例を示しているが、上述したように、EITの配下、あるいはPESエクステンションフィールドに挿入される場合にあっても同様である。
第1の50PCVS系の期間では、単一のビデオストリームで配信されている。符号化画像データのSPSに挿入される「general_level_idc」の値は、階層0から2の全てのピクチャを含むレベル値である“Level5.1”とされている。また、階層1のビットレートのレベル指定値である「sublayer_level_idc[1]」は“Level5”とされている。この場合、階層情報に関しては、「layer_level_idc[0]」=Level4.1、「layer_level_idc[1]」=Level5、「layer_level_idc[2]」=Level5.1」とされている。
第2の50PCVS系の期間では、単一のビデオストリームで配信されている。符号化画像データのSPSに挿入される「general_level_idc」の値は、階層0から3の全てのピクチャを含むレベル値である“Level5.1”とされている。また、階層2のビットレートのレベル指定値である「sublayer_level_idc[2]」は“Level5”とされている。この場合、階層情報に関しては、「layer_level_idc[0]」=Level4、「layer_level_idc[1]」=Level4.1、「layer_level_idc[2]」=Level5」、「layer_level_idc[3]」=Level5.1」とされている。
100PCVS系の期間では、2つのビデオストリームで配信されている。符号化画像データのSPSに挿入される「general_level_idc」の値は、階層0から5の全てのピクチャを含むレベル値である“Level5.2”とされている。また、階層2のビットレートのレベル指定値である「sublayer_level_idc[2]」は“Level5.1”とされている。この場合、階層情報に関しては、「layer_level_idc[0]」=Level4.1、「layer_level_idc[1]」=Level5、「layer_level_idc[2]」=Level5.1」、「layer_level_idc[3]」=Level5.2」、「layer_level_idc[4]」=Level5.2」、「layer_level_idc[5]」=Level5.2」とされている。
図示のように階層構成が変化していく場合、受信装置200のデコーダ205が、例えば50Pに対応するとき、デマルチプレクサ203では、階層情報に基づいて、第1の50PCVS系の期間では階層0から2が取り出され、第2の50PCVS系の期間では階層0から3が取り出され、100PCVS系の期間では階層0から2が取り出され、圧縮データバッファ204に送られる。そして、デコーダ205では、各ピクチャの符号化画像データがそれぞれのデコードタイミングでデコードされ、50Pの画像データが得られる。
<2.変形例>
なお、上述実施の形態においては、送信装置100と受信装置200からなる送受信システム10を示したが、本技術を適用し得る送受信システムの構成は、これに限定されるものではない。例えば、受信装置200の部分が、例えば、HDMI(High-Definition Multimedia Interface)などのデジタルインタフェースで接続されたセットトップボックスおよびモニタの構成などであってもよい。なお、「HDMI」は、登録商標である。
また、上述実施の形態においては、コンテナがトランスポートストリーム(MPEG−2 TS)である例を示した。しかし、本技術は、インターネット等のネットワークを利用して受信端末に配信される構成のシステムにも同様に適用できる。インターネットの配信では、MP4やそれ以外のフォーマットのコンテナで配信されることが多い。つまり、コンテナとしては、デジタル放送規格で採用されているトランスポートストリーム(MPEG−2 TS)、インターネット配信で使用されているMP4などの種々のフォーマットのコンテナが該当する。
また、本技術は、以下のような構成を取ることもできる。
(1)動画像データを構成する各ピクチャの画像データを複数の階層に分類し、該分類された各階層のピクチャの画像データを符号化し、該符号化された各階層のピクチャの画像データを持つビデオストリームを生成する画像符号化部と、
上記生成されたビデオストリームを含む所定フォーマットのコンテナを送信する送信部を備え、
上記画像符号化部は、
低階層側と高階層側の階層構成を等しくし、低階層側および高階層側の対応するピクチャを一つの組にして順次符号化する
送信装置。
(2)階層情報をコンテナのレイヤに挿入する階層情報挿入部をさらに備える
前記(1)に記載の送信装置。
(3)上記階層情報は、各階層のレベル指定値の情報を持つ
前記(2)記載の送信装置。
(4)上記階層情報挿入部は、
上記階層情報を、上記コンテナのレイヤの、上記ビデオストリームの各ピクチャの符号化画像データに同期した位置に挿入する
前記(2)または(3)に記載の送信装置。
(5)上記階層情報挿入部は、
上記階層情報を、PESパケットのエクステンションフィールドに挿入する
前記(4)に記載の送信装置。
(6)上記階層情報挿入部は、
上記階層情報をPESパケットのエクステンションフィールドに挿入することを、少なくともコーデッド・ビデオ・シーケンス単位で行う
前記(5)に記載の送信装置。
(7)プログラムマップテーブルの配下に、上記PESパケットのエクステンションフィールドに上記階層情報が挿入されているか否かを明示する情報を挿入する情報挿入部をさらに備える
前記(5)または(6)に記載の送信装置。
(8)上記階層情報挿入部は、
上記階層情報を、プログラムマップテーブルの配下に挿入する
前記(2)または(3)に記載の送信装置。
(9)上記階層情報挿入部は、
上記階層情報を、イベントインフォメーションテーブルの配下に挿入する
前記(2)または(3)に記載の送信装置。
(10)上記画像符号化部は、
上記各階層のピクチャの符号化画像データを持つ単一のビデオストリームを生成するか、あるいは上記複数の階層を上記上位階層側および上記下位階層側の2つの組に分割し、各階層組のピクチャの符号化画像データをそれぞれ持つ2つのビデオストリームを生成する
前記(1)から(9)のいずれかに記載の送信装置。
(11)動画像データを構成する各ピクチャの画像データを複数の階層に分類し、該分類された各階層のピクチャの画像データを符号化し、該符号化された各階層のピクチャの画像データを持つビデオストリームを生成する画像符号化ステップと、
送信部により、上記生成されたビデオストリームを含む所定フォーマットのコンテナを送信する送信ステップを有し、
上記画像符号化ステップでは、
低階層側と高階層側の階層構成を等しくし、低階層側および高階層側の対応するピクチャを一つの組にして順次符号化する
送信方法。
(12)動画像データを構成する各ピクチャの画像データが複数の階層に分類されて符号化されることで得られた各階層のピクチャの符号化画像データを持つビデオストリームを含む所定フォーマットのコンテナを受信する受信部を備え、
上記符号化では、低階層側と高階層側の階層構成が等しくされ、低階層側および高階層側の対応するピクチャが一つの組にされて順次符号化されており、
上記受信されたコンテナを処理する処理部をさらに備える
受信装置。
(13)コンテナのレイヤに階層情報が挿入されており、
上記処理部は、
上記階層情報に基づいて、上記ビデオストリームから所定階層以下の階層のピクチャの符号化画像データを選択的に取り出して復号化し、該所定階層以下の階層のピクチャの画像データを得る
前記(12)に記載の受信装置。
(14)受信部により、動画像データを構成する各ピクチャの画像データが複数の階層に分類されて符号化されることで得られた各階層のピクチャの符号化画像データを持つビデオストリームを含む所定フォーマットのコンテナを受信する受信部ステップを有し、
上記符号化では、低階層側と高階層側の階層構成が等しくされ、低階層側および高階層側の対応するピクチャが一つの組にされて順次符号化されており、
上記受信されたコンテナを処理する処理ステップをさらに有する
受信方法。
本技術の主な特徴は、低階層側と高階層側の階層構成を等しくし、低階層側および高階層側の対応するピクチャを一つの組にして順次符号化することで、受信側で低階層側および高階層側のピクチャの符号化画像データに対してデコード処理を行う際に、バッファサイズの減少およびデコード遅延の減少を可能としたことである(図3、図5参照)。また、本技術の主な特徴は、コンテナのレイヤに階層情報が挿入されることで、受信側でビデオストリームからデコーダの能力に見合った階層までのピクチャの符号化画像データを選択的に取り出すことを容易に可能としたことである(図7、図11〜図16参照)。