以下、発明を実施するための形態(以下、「実施の形態」とする)について説明する。なお、説明は以下の順序で行う。
1.実施の形態
2.変形例
<1.実施の形態>
[送受信システム]
図1は、実施の形態としての送受信システム10の構成例を示している。この送受信システム10は、送信装置100と、受信装置200とを有する構成となっている。
送信装置100は、コンテナとしてのトランスポートストリームTSを放送波に載せて送信する。このトランスポートストリームTSには、動画像データを構成する各ピクチャの画像データが複数の階層に分類され、各階層のピクチャの画像データの符号化データを持つビデオストリームが含まれる。この場合、例えば、H.264/AVC、H.265/HEVCなどの符号化が施され、被参照ピクチャが自己階層および/または自己階層よりも低い階層に所属するように符号化される。
各階層のピクチャの符号化画像データに、ピクチャ毎に、所属階層を識別するための階層識別情報が付加される。この実施の形態においては、各ピクチャのNALユニット(nal_unit)のヘッダ部分に、階層識別情報(temporal_idを意味する“nuh_temporal_id_plus1”)が配置される。このように階層識別情報が付加されることで、受信側では、所定階層以下の階層の符号化画像データを選択的に取り出してデコード処理を行うことができる。
トランスポートストリームTSには、各階層のピクチャの符号化画像データを持つ単一のビデオストリーム、あるいは複数の階層が2以上の所定数の階層組に分割され、各階層組のピクチャの符号化画像データをそれぞれ持つ所定数のビデオストリームが含まれる。また、このトランスポートストリームTSには、階層符号化の階層情報と、ビデオストリームの構成情報が挿入される。この情報は、トランスポートレイヤに挿入される。この情報により、受信側では、階層構成やストリーム構成を容易に把握でき、適切なデコード処理を行うことが可能となる。
また、上述したように複数の階層が所定数の階層組に分割され、低階層側の階層組のピクチャの符号化画像データをコンテナするTSパケット(トランスポートストリームパケット)の優先度が高く設定される。この優先度により、受信側では、自身のデコード能力に応じた階層組のピクチャの符号化画像データのみをバッファに取り込んで処理することが可能となる。
また、上述したように複数の階層が所定数の階層組に分割され、各階層組のピクチャの符号化画像データに、所属階層組を識別するための識別情報が付加される。この識別情報として、例えば、ビットストリームのレベル指定値(level_idc)が利用され、高階層側の階層組ほど高い値とされる。
受信装置200は、送信装置100から放送波に載せて送られてくる上述のトランスポートストリームTSを受信する。受信装置200は、このトランスポートストリームTSに含まれるビデオストリームから自身のデコード能力に応じて選択的に所定階層以下の階層の符号化画像データを取り出してデコードし、各ピクチャの画像データを取得して、画像再生を行う。
例えば、上述したように、トランスポートストリームTSに、複数の階層のピクチャの符号化画像データを持つ単一のビデオストリームが含まれている場合がある。その場合、デコード能力に応じて選択された優先度のTSパケットでコンテナされた所定階層組のピクチャの符号化画像データがバッファに取り込まれてデコードされる。
また、例えば、上述したように、トランスポートストリームTSに、複数の階層が分割されて得られた2以上の所定数の階層組のピクチャの符号化画像データをそれぞれ持つ所定数のビデオストリームが含まれている場合がある。その場合、デコード能力に応じて選択されたビデオストリームが持つ所定階層組のピクチャの符号化画像データがバッファに取り込まれてデコードされる。
また、受信装置200は、上述のようにデコードして得られた各ピクチャの画像データのフレームレートを表示能力に合わせるポスト処理を行う。このポスト処理により、例えば、デコード能力が低い場合であっても、高表示能力にあったフレームレートの画像データを得ることが可能となる。
「送信装置の構成」
図2は、送信装置100の構成例を示している。この送信装置100は、CPU(Central Processing Unit)101と、エンコーダ102と、圧縮データバッファ(cpb:coded picture buffer)103と、マルチプレクサ104と、送信部105を有している。CPU101は、制御部であり、送信装置100の各部の動作を制御する。
エンコーダ102は、非圧縮の動画像データを入力して、階層符号化を行う。エンコーダ102は、この動画像データを構成する各ピクチャの画像データを複数の階層に分類する。そして、エンコーダ102は、この分類された各階層のピクチャの画像データを符号化し、各階層のピクチャの符号化画像データを持つビデオストリームを生成する。エンコーダ102は、例えば、H.264/AVC、H.265/HEVCなどの符号化を行う。この際、エンコーダ102は、参照するピクチャ(被参照ピクチャ)が、自己階層および/または自己階層よりも下位の階層に所属するように、符号化する。
図3は、エンコーダ102で行われる階層符号化の一例を示している。この例は、0から4までの5階層に分類され、各階層のピクチャの画像データに対して符号化が施された例である。
縦軸は階層を示している。階層0から4のピクチャの符号化画像データを構成するNALユニット(nal_unit)のヘッダ部分に配置されるtemporal_id(階層識別情報)として、それぞれ、0から4が設定される。一方、横軸は表示順(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〜7)をとる。
図3に戻って、矩形枠のそれぞれがピクチャを示し、数字は、符号化されているピクチャの順、つまりエンコード順(受信側ではデコード順)を示している。例えば、「2」から「17」の16個のピクチャによりサブ・ピクチャグループ(Sub group of pictures)が構成されており、「2」はそのサブ・ピクチャグループの先頭のピクチャとなる。「1」は前のサブ・ピクチャグループのピクチャである。このサブ・ピクチャグループがいくつか集まってGOP(Group Of Pictures)となる。
GOPの先頭ピクチャの符号化画像データは、図5に示すように、AUD、VPS、SPS、PPS、PSEI、SLICE、SSEI、EOSのNALユニットにより構成される。一方、GOPの先頭ピクチャ以外のピクチャは、AUD、PPS、PSEI、SLICE、SSEI、EOSのNALユニットにより構成される。VPSはSPSと共に、シーケンス(GOP)に一度、PPSは毎ピクチャで伝送可能とされている。
図3に戻って、実線矢印は、符号化におけるピクチャの参照関係を示している。例えば、「2」のピクチャは、Pピクチャであり、「1」のピクチャを参照して符号化される。また、「3」のピクチャは、Bピクチャであり、「1」、「2」のピクチャを参照して符号化される。同様に、その他のピクチャは、表示順で近くのピクチャを参照して符号化される。なお、階層4のピクチャは、他のピクチャからの参照がない。
エンコーダ102は、各階層のピクチャの符号化画像データを持つビデオストリームを生成する。例えば、エンコーダ102は、複数の階層を2以上の所定数の階層組に分割し、各階層組に対応したサブストリームのそれぞれを含む所定数のビデオストリームを生成するか、または、各階層組に対応したサブストリームの全てを含む単一のビデオストリームを生成する。
例えば、図3の階層符号化の例において、階層0から3が低階層の階層組とされ、階層4が高階層の階層組とされて2つの階層組に分割されるとき、2つのサブストリームが存在する。すなわち、階層0から3のピクチャの符号化画像データを持つサブストリームと、階層4のピクチャの符号化画像データを持つサブストリームである。この場合、エンコーダ102は、2つのサブストリームを含む単一のビデオストリーム、または2つのサブビデオストリームをそれぞれ含む2つのビデオストリームを生成する。
エンコーダ102は、生成するビデオストリームの数によらず、上述したように、複数の階層を2以上の所定数の階層組に分割し、各階層組のピクチャの符号化画像データに、所属階層組を識別するための識別情報を付加する。この場合、例えば、識別情報として、SPS(Sequence Parameter Set)と、ESPS(Enhanced Sequence Parameter Set)に含まれるビットストリームのレベル指定値である「general_level_idc」が利用される。
SPSは、従来周知のNALユニットであり、最下位の階層組のサブストリーム、つまりベースサブストリームに、シーケンス(GOP)毎に含まれる。一方、ESPSは、新規定義するNALユニットであり、最下位より上位の階層組のサブストリーム、つまりエンハンスサブストリームに、シーケンス(GOP)毎に含まれる。SPS,ESPSに含まれる「general_level_idc」の値は、高階層側の階層組ほど高い値とされる。
なお、サブレイヤ(sublayer)毎に「sub_layer_level_idc」をSPS,ESPSで送ることができるので、階層組を識別する識別情報として、この「sub_layer_level_idc」を用いることも可能である。以上はSPSだけでなくVPSにおいても供給される。
この場合、各階層組のサブストリームのSPS,ESPSに挿入される「general_level_idc」の値は、自己の階層組以下の階層組に含まれる全ての階層のピクチャを含むレベル値とされる。例えば、図3の階層符号化の例において、階層0から3の階層組のサブストリームのSPSに挿入される「general_level_idc」の値は、階層0から3のピクチャのみを含むレベル値とされる。例えば、そのフレームレートが60Pであるときは、“level5.1”とされる。また、例えば、図3の階層符号化の例において、階層4の階層組のサブストリームのESPSに挿入される「general_level_idc」の値は、階層0から4の全てのピクチャを含むレベル値とされる。例えば、そのフレームレートが120Pであるときは、“level5.2”とされる。
図6は、階層符号化の際のエンコード、デコード、表示順序と遅延の一例を示している。この例は、上述の図3の階層符号化例に対応している。この例は、全階層(全レイヤ)を、フル時間解像度で階層符号化する場合を示している。図6(a)はエンコーダ入力を示す。図6(b)に示すように、16ピクチャ分の遅延をもって、各ピクチャがエンコード順にエンコードされて、符号化ストリームが得られる。また、図6(b)はデコーダ入力も示し、各ピクチャがデコード順にデコードされる。そして、図6(c)に示すように、4ピクチャの遅延をもって、各ピクチャがデコードの画像データが表示順に得られる。
図7(a)は、上述の図6(b)に示す符号化ストリームと同様の符号化ストリームを、階層0から2、階層3、階層4の3段階に分けて示している。ここで、「Tid」は、temporal_idを示している。図7(b)は、階層0から2、つまりTid=0〜2の部分階層の各ピクチャを選択的にデコードする場合の表示期待(表示順)を示している。また、図7(c)は、階層0から3、つまりTid=0〜3の部分階層の各ピクチャを選択的にデコードする場合の表示期待(表示順)を示している。さらに、図7(d)は、階層0から4、つまりTid=0〜4の全階層の各ピクチャを選択的にデコードする場合の表示期待(表示順)を示している。
図7(a)の符号化ストリームをデコード能力別にデコード処理するには、時間解像度がフルレートのデコード能力が必要となる。しかし、Tid=0〜2のデコードを行う場合、符号化されたフルの時間解像度に対して、1/4のデコード能力をもつデコーダが処理可能とすべきである。また、Tid=0〜3のデコードを行う場合、符号化されたフルの時間解像度に対して、1/2のデコード能力をもつデコーダが処理可能とすべきである。
しかし、階層符号化において参照される低階層に属するピクチャが連続し、それらが時間解像度でフルなタイミングで符号化されると、部分デコードするデコーダの能力が追い付かないことになる。図7(a)のAの期間がそれに該当する。Tid=0〜2、あるいはTid=0〜3の部分的な階層をデコードするデコーダは、表示の例で示すような、時間軸が1/4あるいは1/2の能力でデコード・表示を行うため、Aの期間符号化された時間解像度がフルで連続するピクチャのデコードはできない。その間、cpbにエンコーダの想定外のバッファ占有量になる。
TaはTid=0〜2をデコードするデコーダにおけるピクチャ毎のデコード処理に要する時間を示す。TbはTid=0〜3をデコードするデコーダにおけるピクチャ毎のデコード処理に要する時間を示す。TcはTid=0〜4(全階層)をデコードするデコーダにおけるピクチャ毎のデコード処理に要する時間を示す。これらの各時間の関係は、Ta>Tb>Tcとなる。
そこで、この実施の形態においては、階層符号化の低階層に属するピクチャは、ピクチャ毎のデコード間隔を大きく取り、高階層に行くにつれ、デコード間隔が小さくなるようにバッファ制御を行う。その際、階層数に対してのミニマムデコード能力(Target minimum decoder capability)を定義する。例えば、図3の階層符号化の例において、ミニマムデコード能力が階層2までデコードできる能力とすると、5階層のうちの1/4の時間解像度で階層0から2のピクチャをデコードできるように、エンコード時の間隔をとり、後述のマルチプレクサ104で多重化する際に、そのデコード時刻の差をデコードタイムスタンプ(DTS:decoding Time stamp)の値に反映させる。
図3の階層符号化例ように、階層数が0〜4の5つである場合、階層0から2に属するピクチャの間隔はフル解像度の4倍の時間間隔とし、階層3に属するピクチャの間隔は、フル解像度の2倍の時間間隔とし、階層4に属するピクチャの間隔は、フル解像度の時間間隔とする。
一方で、エンコーダ102は、階層間でピクチャのエンコード(=デコード)のタイミングが重ならないようにする。すなわち、エンコーダ102は、上述の方法で各ピクチャのエンコードを行う際、低階層のピクチャと高階層のピクチャとでエンコードタイミングが重なる場合には、より多くのピクチャから参照される低階層のピクチャのエンコードを優先し、高階層のピクチャは、それに準じたタイミングとする。ただし、最高階層に属するピクチャは非参照のBピクチャなので、デコードしてそのまま表示(つまりdpb(decoded picture buffer)に貯めない)とするタイミングとなるよう制御することが可能となる。
図8(a)はエンコーダ入力順を示している(図6(a)と同じ)。また、図8(b)〜(d)は、表示順(システムレイヤとしてはPTSに相当)を示している(図7(b)〜(d)と同じ)。
図9は、階層符号化の際のピクチャのエンコードタイミング(デコード時にはデコードタイミングとなる)の一例を示している。この例は、上述の図3の階層符号化例に対応している。そして、この例は、ミニマムデコード能力を、階層2までデコードできる能力としたものである。実線による下線が付された部分は、1つのSGP(Sub Group of Picture)に属するピクチャ(「2」〜「17」の16個のピクチャ)を示している。また、実線矩形枠で示すピクチャは現在のSGPに属しているが、破線矩形枠で示すピクチャは現在のSGPには属してはおらず、現在のSGPに属するピクチャによる予測には影響を与えない。
この場合、階層0から2に属するピクチャ、つまりピクチャ「2」、「3」、「4」、「11」・・・の間隔は、フル解像度の4倍の時間間隔であるTaとされる。また、階層3に属するピクチャ、つまり「5」、「8」、「12」・・・の間隔は、基本的には、フル解像度の2倍の時間間隔であるTbとされる。
しかし、「8」のピクチャのタイミングは、「11」のピクチャのタイミングとの重なりを避けるために、エンコードのタイミングが、次の時間間隔位置とされる。以下、同様に、「12」、「15」のピクチャのタイミングも、階層0から2に属するピクチャとの重なりを避けるように調整される。この結果、階層3に属するピクチャのタイミングは、階層0から2に属するピクチャのタイミングの中間とされる。
また、階層4に属するピクチャ、つまり「6」、「7」、「9」・・の間隔は、基本的には、フル解像度の時間間隔であるTcとされる。しかし、階層0から3に属する各ピクチャのタイミングとの重なりを避けるように調整される結果、階層4に属するピクチャのタイミングは、階層0から3に属するピクチャのタイミングの中間とされる。
図示のように、1SGP期間で、1SGP分のピクチャ(「2」〜「17」の16個のピクチャ)のエンコード処理が行われる。これは、上述したように低階層に属するピクチャのエンコード間隔を大きく取る場合であっても実時間処理が可能であることを示している。
図10は、エンコーダ102の出力例を示している。この例は、エンコーダ102が単一のビデオストリーム(符号化ストリーム)を出力する例である。この例は、図3の階層符号化例に対応し、図9に示すタイミングで各ピクチャがエンコードされた場合の例である。
ビデオストリームは、階層0から4に属する各ピクチャの符号化画像データがエンコード順(符号化順)に配列されたものなっている。なお、このビデオストリームを受信側でデコードするに当たっては、現在のSGP(太線枠のピクチャ)に属する被参照ピクチャ(階層0から3のピクチャ)はデコード後に非圧縮データバッファ(dpb:decoded picture buffer)に滞留し、他のピクチャからの参照に備える。
図11は、エンコーダ102の出力例を示している。この例は、エンコーダ102がベースストリム(B_str)と拡張ストリーム(E_str)の2つのビデオストリーム(符号化ストリーム)を出力する例である。この例は、図3の階層符号化例に対応し、図9に示すタイミングで各ピクチャがエンコードされた場合の例である。
ベースストリム(B-stream)は、階層0から3に属する各ピクチャの符号化画像データがエンコード順(符号化順)に配列されたものなっている。また、拡張ストリーム(E-stream)は、階層4に属する各ピクチャの符号化画像データがエンコード順(符号化順)に配列されたものなっている。なお、このビデオストリームを受信側でデコードするに当たっては、現在のSGP(太線枠のピクチャ)に属する被参照ピクチャ(階層0から3のピクチャ)はデコード後に非圧縮画像データバッファ(dpb:decoded picture buffer)に滞留し、他のピクチャからの参照に備える。
図12は、エンコーダ102の構成例を示している。このエンコーダ102は、テンポラルID発生部121と、バッファ遅延制御部122と、HRD(Hypothetical Reference Decoder)設定部123と、パラメータセット/SEIエンコード部124と、スライスエンコード部125と、NALパケット化部126を有している。
テンポラルID発生部121には、CPU101から、階層数(Number of layers)の情報が供給される。テンポラルID発生部121は、この階層数の情報に基づいて、階層数に応じたtemporal_idを発生する。例えば、図3の階層符号例においては、temporal_id=0〜4が発生される。
バッファ遅延制御部122には、CPU101から、ミニマムデコード能力(minimum_target_decoder_level_idc)の情報が供給されると共に、テンポラルID発生部121で発生されるtemporal_idが供給される。バッファ遅延制御部122は、階層毎に、各ピクチャの「cpb_removal_delay」、「dpb_output_delay」を計算する。
この場合、階層数に対しての、それをデコードするターゲットデコーダのミニマムデコード能力が指定されることで、被参照の低階層ピクチャのエンコードタイミング、そしてデコード即表示の高階層ピクチャのエンコードタイミングが決定される(図9参照)。このエンコードタイミングは、受信側で圧縮データバッファ(cpb:coded picture buffer)から読み出されるデコードタイミングと同じ意味を示す。
「cpb_removal_delay」は、ピクチャが属する階層を反映して決められる。例えば、階層数をNとし、temporal_id(Tid)が0〜N−1の範囲の値をとるものとする。また、ミニマムデコード能力は、temporal_id=Kの階層のピクチャをデコードできる能力とする。バッファ遅延制御部122は、各階層におけるピクチャのエンコード間隔Dを、以下の数式(1)で求め、「cpb_removal_delay」、「dpb_output_delay」に反映させる。
D = 2 ** (N-1 - K ) (Tid <= K )
D = 2 ** (N-1 - Tid ) (K < Tid < N - 1 )
D = 入力シーケンス間隔 (Tid = N ? 1 )
・・・(1)
なお、階層間で、時間的にエンコードタイミングが重なってしまう場合は、低階層側が優先的にエンコードされ、高階層側は上記の式で割り当てられる、次のタイムスロット(timeslot)でエンコードされる。
HRD(Hypothetical Reference Decoder)設定部123には、バッファ遅延制御部122で計算された各階層のピクチャの「cpb_removal_delay」、「dpb_output_delay」が供給されると共に、CPU101からストリーム数(Number of streams)の情報が供給される。HRD設定部123は、これらの情報に基づいてHRD設定を行う。
パラメータセット/SEIエンコード部124には、HRD設定情報と共に、temporal_idが供給される。パラメータセット/SEIエンコード部124は、符号化するストリーム数に応じて、各階層のピクチャのVPS、SPS(ESPS)、PPSなどのパラメータセットとSEIを生成する。
例えば、「cpb_removal_delay」と「dpb_output_delay」を含むピクチャ・タイミング・SEI(Picture timing SEI)が生成される。また、例えば、「initial_cpb_removal_time」を含むバッファリング・ピリオド・SEI(Buffereing Perifod SEI)が生成される。バッファリング・ピリオド・SEIは、GOPの先頭のピクチャ(アクセスユニット)に対応して生成される。
「initial cpb removal time」は、圧縮データバッファ(cpb)からGOP(Group Of Picture)の先頭のピクチャの符号化画像データをデコードする際に取り出す時刻(初期時刻)を示す。「cpb_removal_delay」は、各ピクチャの符号化画像データを圧縮データバッファ(cpb)から取り出す時間であり、「initial_cpb_removal_time」と合わせて時刻が決まる。また、「dpb_output_delay」は、デコードして非圧縮データバッファ(dpb)に入ってから取り出す時間を示す。
スライスエンコード部125は、各階層のピクチャの画像データをエンコードしてスライスデータ(slice segment header, slice segment data)を得る。スライスデコード部125は、フレームバッファにより、時間方向の予測の状態を表す情報として、「Prediction Unit」の予測先ピクチャのインデックスを示す「ref_idx_l0_active(ref_idx_l1_active)を、「slice segment header」に挿入する。これにより、デコード時には、temporal_idで示される階層レベルと共に、被参照ピクチャが決定される。また、スライスデコード部125は、現在のスライス(slice)のインデックスを、「short_term_ref_pic_set_idx」、 あるいは「it_idx_sps」として、「slice segment header」に挿入する。
NALパケット化部126は、パラメータセット/SEIエンコード部124で生成されたパラメータセットおよびSEIと、スライスエンコード部125で生成されるスライスデータに基づき、各階層のピクチャの符号化画像データを生成し、ストリーム数に応じた数のビデオストリーム(符号化ストリーム)を出力する。
その際、ピクチャごとに、その階層を示すtemporal_idがNALユニットヘッダに付される(図4参照)。また、temporal_idで示される階層に属するピクチャは、サブレイヤ(sub_layer)として括られ、サブレイヤごとのビットレートのレベル指定値「Level_idc」が「sublayer_level_idc」とされて、VPSやSPS(ESPS)に挿入される。
図13は、エンコーダ102の処理フローを示す。エンコーダ102は、ステップST1において、処理を開始し、その後に、ステップST2の処理に移る。このステップST2において、エンコーダ102は、階層符号化における階層数Nを設定する。次に、エンコーダ102は、ステップST3において、各階層のピクチャのtemporal_idを0〜(N−1)とする。
次に、エンコーダ102は、ステップST4において、対象デコーダのうち、最小能力のデコーダがデコードできる階層レベルKを、0〜N−1の範囲内に設定する。そして、エンコーダ102は、ステップST5において、バッファ遅延制御部122で、各階層におけるピクチャエンコード間隔Dを、上述の数式(1)で求める。
次に、エンコーダ102は、ステップST6において、階層間でピクチャのエンコードタイミングが時間的に重なるか否かを判断する。エンコードタイミングが重なるとき、エンコーダ102は、ステップST7において、低階層のピクチャを優先して符号化し、高階層のピクチャは、次のエンコード間隔Dのタイミングでエンコードする。その後、エンコーダ102は、ステップST8の処理に移る。
ステップST6でエンコードタイミングが重ならないとき、エンコーダ102は、直ちに、ステップST8の処理に移る。このステップST8において、エンコーダ102は、ステップST5で求めた各階層のピクチャのエンコード間隔Dを「cpb_removal_delay」、「dpb_output_delay」に反映し、HRD設定、パラメータセット/SEIのエンコード、スライスエンコードを行い、NALユニットとして多重化ブロックへ転送する。その後、エンコーダ102は、ステップST9において、処理を終了する。
図2に戻って、圧縮データバッファ(cpb)103は、エンコーダ102で生成された、各階層のピクチャの符号化データを含むビデオストリームを、一時的に蓄積する。マルチプレクサ104は、圧縮データバッファ103に蓄積されているビデオストリームを読み出し、PESパケット化し、さらにトランスポートパケット化して多重し、多重化ストリームとしてのトランスポートストリームTSを得る。
このトランスポートストリームTSには、各階層のピクチャの符号化画像データを持つ単一のビデオストリーム、あるいは複数の階層が2以上の所定数の階層組に分割され、各階層組のピクチャの符号化画像データをそれぞれ持つ所定数のビデオストリームが含まれる。マルチプレクサ104は、トランスポートストリームTSに、階層情報、ストリーム構成情報を挿入する。
トランスポートストリームTSには、PSI(Program Specific Information)として、PMT(Program Map Table)が含まれている。このPMTには、各ビデオストリームに関連した情報を持つビデオエレメンタリ・ループ(video ES1 loop)が存在する。このビデオエレメンタリ・ループには、各ビデオストリームに対応して、ストリームタイプ、パケット識別子(PID)等の情報が配置されると共に、そのビデオストリームに関連する情報を記述するデスクリプタも配置される。
マルチプレクサ104は、このデスクリプタの一つとして、HEVCデスクリプタ(HEVC_descriptor)を挿入し、さらに、新たに定義するスケーラビリティ・エクステンション・デスクリプタ(scalability_extension_descriptor)を挿入する。
図14は、HEVCデスクリプタ(HEVC_descriptor)の構造例(Syntax)を示している。また、図15は、その構造例における主要な情報の内容(Semantics)を示している。
「descriptor_tag」の8ビットフィールドは、デスクリプタタイプを示し、ここでは、HEVCデスクリプタであることを示す。「descriptor_length」の8ビットフィールドは、デスクリプタの長さ(サイズ)を示し、デスクリプタの長さとして、以降のバイト数を示す。
「level_idc」の8ビットフィールドは、ビットレートのレベル指定値を示す。また、「temporal_layer_subset_flag = 1」であるとき、「temporal_id_min」の5ビットフィールドと、「temporal_id_max」の5ビットフィールドが存在する。「temporal_id_min」は、対応するビデオストリームに含まれる階層符号化データの最も低い階層のtemporal_idの値を示す。「temporal_id_max」は、対応するビデオストリームが持つ階層符号化データの最も高い階層のtemporal_idの値を示す。
「level_constrained_flag」の1ビットフィールドは、新たに定義するものであり、該当サブストリーム(substream)にSPSあるいはESPSが存在し、その要素の“general_level_idc”は、そのサブストリームが含むtemporal_id(階層識別情報)以下のピクチャ(Picture)を含むレベル(Level)値をもつことを示す。“1”は、該当サブストリームにSPSあるいはESPSが存在し、その要素の“general_level_idc”は、そのサブストリームが含むtemporal_id 以下のピクチャを含むレベル値をもつ、ことを示す。“0”は、対象となるサービスを構成するサブストリーム群の中にはSPSが1つ存在し、その“general_level_idc”は、当該サブストリームのみならず、同一サービスの下の他のサブストリームも含むレベル値を示す。
「scalability_id」の3ビットフィールドは、新たに定義するものであり、複数のビデオストリームがスケーラブルなサービスを供給する際、個々のストリームに付されるスケーラビリティを示すIDである。“0”はベースストリームを示し、“1”〜“7”はベースストリームからのスケーラビリティの度合いによって増加するIDである。
図16は、スケーラビリティ・エクステンション・デスクリプタ(scalability_extension_descriptor)の構造例(Syntax)を示している。また、図17は、その構造例における主要な情報の内容(Semantics)を示している。
「scalability_extension_descriptor_tag」の8ビットフィールドは、デスクリプタタイプを示し、ここでは、スケーラビリティ・エクステンション・デスクリプタであることを示す。「scalability_extension_descriptor_length」の8ビットフィールドは、デスクリプタの長さ(サイズ)を示し、デスクリプタの長さとして、以降のバイト数を示す。「extension_stream_existing_flag」の1ビットフィールドは、別ストリームによる拡張サービスがあることを示すフラグである。“1”は拡張ストリームがあることを示し、“0”は拡張ストリームがないことを示す。
「extension_type」の3ビットフィールドは、拡張のタイプを示す。“001”は、拡張が、時間方向スケーラブルであることを示す。“010”は、拡張が、空間方向スケーラブルであることを示す。“011”は、拡張が、ビットレートスケーラブルであることを示す。
「number_of_streams」の4ビットフィールドは、配信サービスに関与するストリームの総数を示す。「scalability_id」の3ビットフィールドは、複数のビデオストリームがスケーラブルなサービスを供給する際、個々のストリームに付されるスケーラビリティを示すIDである。“0”はベースストリームを示し、“1”〜“7”はベースストリームからのスケーラビリティの度合いによって増加するIDである。「minimum_target_decoder_level_idc」の8ビットフィールドは、該当ストリームが対象とするデコーダの能力を示す。この情報は、受信機において、デコーダがストリームをデコードする前に符号化ピクチャの想定デコードタイミングがデコーダのpictureデコード処理能力の範囲を超えていないかどうかの判断に利用する。
上述したように、この実施の形態において、SPS,ESPSに含まれるビットレートのレベル指定値(general_level_idc)などは、複数の階層を2以上の所定数の階層組に分割した際の所属階層組の識別情報として利用される。各階層組のレベル指定値の値は、この階層組のピクチャと、この階層組より低階層側の全ての階層組のピクチャとからなるフレームレートに対応した値とされる。
マルチプレクサ104は、低階層側の階層組のピクチャの符号化画像データをコンテナするTSパケットの優先度ほど高く設定する。マルチプレクサ104は、例えば、複数の階層を低階層組と高階層組に二分する場合、TSパケットヘッダの「transport_priority」の1ビットフィールドを利用する。
図18は、TSパケットの構造例(Syntax)を示している。「transport_priority」の1ビットフィールドは、ベースレイヤ、つまり低階層側の階層組のピクチャの符号化画像データをコンテナするTSパケットの場合は“1”に設定され、ノンベースレイヤ、つまり高階層側の階層組のピクチャの符号化画像データをコンテナするTSパケットの場合は“0”に設定される。
図19は、SPS,ESPSのNALユニットに含まれるビットレートのレベル指定値(general_level_idc)と、TSパケットヘッダの「transport_priority」の設定値との関係を示している。受信側では、これらの情報の一方あるいは双方を用いて、低階層側の階層組のピクチャの符号化画像データと、高階層側の階層組のピクチャの符号化画像データとを、分別することが可能となる。
図20は、マルチプレクサ104の構成例を示している。TSプライオリティ発生部141と、セクションコーディング部142と、PESパケット化部143-1〜143-Nと、スイッチ部144と、トランスポートパケット化部145を有している。
PESパケット化部143-1〜143-Nは、それぞれ、圧縮データバッファ103に蓄積されているビデオストリーム1〜Nを読み込み、PESパケットを生成する。この際、PESパケット化部143-1〜143-Nは、ビデオストリーム1〜NのHRD情報を元にDTS(Decoding Time Stamp)、PTS(Presentation Time Stamp)のタイムスタンプをPESヘッダに付与する、この場合、各ピクチャの「cpu_removal_delay」、「dpb_output_delay」が参照され、STC(System Time Clock)時刻に同期した精度で、各々DTS、PTSに変換され、PESヘッダの所定位置に配置される。
スイッチ部144は、PESパケット化部143-1〜143-Nで生成されたPESパケットを、パケット識別子(PID)に基づいて選択的に取り出し、トランスポートパケット化部145に送る。トランスポートパケット化部145は、PESパケットをペイロードに含むTSパケットを生成し、トランスポートストリームを得る。
TSプライオリティ発生部141には、CPU101から、階層数(Number of layers)とストリーム数(Number of streams)の情報が供給される。TSプライオリティ発生部141は、階層数で示される複数の階層を2以上の所定数の階層組に分割した場合における、各階層組の優先度を発生する。例えば、2分割される場合には、TSパケットヘッダの「transport_priority」の1ビットフィールドに挿入すべき値が発生される(図19参照)。
TSプライオリティ発生部141は、各階層組の優先度の情報を、トランスポートパケット化部145に送る。トランスポートパケット化部145は、この情報に基づいて、各TSパケットの優先度を設定する。この場合、上述したように、低階層側の階層組のピクチャの符号化画像データをコンテナするTSパケットの優先度ほど高く設定する。
セクションコーディング部142には、CPU101から、階層数(Number of layers)と、ストリーム数(Number of streams)と、最小ターゲットデコーダ・レベル(Minimum_target_decoder_level_idc)の情報が供給される。セクションコーディング部142は、この情報に基づいて、トランスポートストリームTSに挿入すべき各種のセクションデータ、例えば、上述したHEVCデスクリプタ(HEVC_descriptor)、スケーラビリティ・エクステンション・デスクリプタ(scalability_extension_descriptor)などを生成する。
セクションコーディング部142は、各種セクションデータを、トランスポートパケット化部145に送る。トランスポートパケット化部145は、このセクションデータを含むTSパケットを生成し、トランスポートストリームTSに挿入する。
図21は、マルチプレクサ104の処理フローを示す。この例は、複数の階層を低階層組と高階層組の2つに分割する例である。マルチプレクサ104は、ステップST11において、処理を開始し、その後に、ステップST12の処理に移る。このステップST12において、マルチプレクサ104は、ビデオストリーム(ビデオエレメンタリストリーム)の各ピクチャのtemporal_id_、構成する符号化ストリーム数を設定する。
次に、マルチプレクサ104は、ステップST13において、低階層組のピクチャ、あるいは低階層組のピクチャを含むビデオストリームを多重化する際の「transport_priority」を“1”に設定する。また、マルチプレクサ104は、ステップST14において、HRD情報(cpu_removal_delay、dpb_output_delay)を参照して、DTS、PTSを決め、PESヘッダに挿入する。
次に、マルチプレクサ104は、ステップST15において、シングルストリーム(単一ビデオストリーム)か否かを判断する。シングルストリームであるとき、マルチプレクサ104は、ステップST16において、1つのPID(パケット識別子)で多重化処理を進めることとし、その後に、ステップST17の処理に移る。一方、シングルストリームでないとき、マルチプレクサ104は、ステップST18において、複数のパケットPID(パケット識別子)で多重化処理を進めることとし、その後に、ステップST17の処理に移る。
このステップST17において、マルチプレクサ104は、HEVCデスクリプタ、スケーラビリティ・エクステンション・デスクリプタなどをコーディングする。そして、マルチプレクサ104は、ステップST19において、ビデオストリームをPESペイロードに挿入してPESパケット化し、その後、ステップST20において、トランスポートパケット化し、トランスストリームTSを得る。その後、マルチプレクサ104は、ステップST21において、処理を終了する。
図22は、単一ビデオストリームによる配信を行う場合のトランスポートストリームTSの構成例を示している。このトランスポートストリームTSには、単一ビデオストリームが含まれている。すなわち、この構成例では、複数の階層のピクチャの例えばHEVCによる符号化画像データを持つビデオストリームのPESパケット「video PES1」が存在すると共に、オーディオストリームのPESパケット「audio PES1」が存在する
この単一のビデオストリームには、階層符号化の複数の階層が2以上の所定数の階層組に分割されて得られた所定数のサブストリームが含まれる。ここで、最下位の階層組のサブストリーム(ベースサブストリーム)にはSPSが含まれ、最下位より上位の階層組のサブストリーム(エンハンスサブストリーム)にはESPSが含まれる。そして、SPS,ESPSの要素の“general_level_idc”の値は、自己の階層組以下の階層組に含まれる全ての階層のピクチャを含むレベル値とされる。
各ピクチャの符号化画像データには、VPS、SPS、ESPS、SEIなどのNALユニットが存在する。上述したように、各ピクチャのNALユニットのヘッダには、そのピクチャの階層を示すtemporal_idが挿入されている。また、例えば、SPS,ESPSにはビットレートのレベル指定値(general_level_idc)が含まれている。また、例えば、ピクチャ・タイミング・SEI(Picture timing SEI)には、「cpb_removal_delay」と「dpb_output_delay」が含まれている。
なお、各ピクチャの符号化画像データをコンテナするTSパケットのヘッダに「transport_priority」の1ビットの優先度を示すフィールドが存在する。この「transport_priority」により、コンテナする符号化画像データが、低階層組のピクチャのものか、あるいは高階層組のピクチャのものかが識別可能である。
また、トランスポートストリームTSには、PSI(Program Specific Information)として、PMT(Program Map Table)が含まれている。このPSIは、トランスポートストリームに含まれる各エレメンタリストリームがどのプログラムに属しているかを記した情報である。
PMTには、プログラム全体に関連する情報を記述するプログラム・ループ(Program loop)が存在する。また、PMTには、各エレメンタリストリームに関連した情報を持つエレメンタリ・ループが存在する。この構成例では、ビデオエレメンタリ・ループ(video ES1 loop)が存在すると共に、オーディオエレメンタリ・ループ(audio ES1 loop)が存在する。
ビデオエレメンタリ・ループには、ビデオストリーム(video PES1)に対応して、ストリームタイプ、パケット識別子(PID)等の情報が配置されると共に、そのビデオストリームに関連する情報を記述するデスクリプタも配置される。このデスクリプタの一つとして、上述したHEVCデスクリプタ(HEVC_descriptor)、スケーラビリティ・エクステンション・デスクリプタ(scalability_extension_descriptor)が挿入される。
図23は、図3の階層符号化の例において、階層0〜3のピクチャでベースサブストリーム(B stream)が生成され、階層4のピクチャでエンハンスサブストリーム(E stream)が生成される場合を示している。この場合、ベースサブストリームに含まれる各ピクチャは60Pを構成し、エンハンスサブストリーム(E stream)に含まれる各ピクチャは、ベースサブストリームに含まれる各ピクチャに追加されてPES全体で120Pを構成する。
ベースサブストリームのピクチャは、「AUD」、「VPS」、「SPS」、「PPS」、「PSEI」、「SLICE」、「SSEI」、「EOS」などのNALユニットにより構成される。「VPS」、「SPS」は、例えば、GOPの先頭ピクチャに挿入される。SPSの要素の“general_level_idc”の値は、“level5.1”とされる。なお、「EOS」はなくてもよい。
一方、エンハンスサブストリームのピクチャは、「AUD」、「ESPS」、「PPS」、「PSEI」、「SLICE」、「SSEI」、「EOS」などのNALユニットにより構成される。なお、「ESPS」は、例えば、GOPの先頭ピクチャに挿入される。ESPSの要素の“general_level_idc”の値は、“level5.2”とされる。なお、「PSEI」、「SSEI」、「EOS」はなくてもよい。
「video ES1 loop」には、ビデオストリーム(video PES1)に対応して、ストリームタイプ、パケット識別子(PID)等の情報が配置されると共に、そのビデオストリームに関連する情報を記述するデスクリプタも配置される。このストリームタイプは、ベースストリームを示す“0x24”とされる。また、デスクリプタの一つとして、上述したHEVCデスクリプタが挿入される。
「level_constrained_flag」の1ビットフィールドは、“1”とされる。これにより、「該当サブストリームにSPSあるいはESPSが存在し、その要素の“general_level_idc”は、そのサブストリームが含むtemporal_id 以下のピクチャを含むレベル値をもつ」ことが示される。また、「level_idc」の値は、ビデオストリーム(video PES1)の全体のレベル値を示す“level5.2”とされる。また、「temporal_id_min」は0とされ、「temporal_id_max」は4とされ、ビデオストリーム(video PES1)に階層0〜4のピクチャが含まれていることが示される。
このような単一ビデオストリームによる配信が行われる場合、受信側では、「level_constrained_flag」、SPS、ESPSの要素の“general_level_idc”などに基づいて、各サブストリームが自身のデコーダ処理能力の範囲内にあるか否かが判断され、範囲内にあるサブストリームのデコードが行われる。
図24は、複数ストリーム、ここでは2ストリームによる配信を行う場合のトランスポートストリームTSの構成例を示している。このトランスポートストリームTSには、2つのビデオストリームが含まれている。すなわち、この構成例では、複数の階層が低階層組と高階層組の2つの階層組に分割され、2つの階層組のピクチャの例えばHEVCによる符号化画像データを持つビデオストリームのPESパケット「video PES1」、「video PES2」が存在すると共に、オーディオストリームのPESパケット「audio PES1」が存在する。
この2つのビデオストリームには、階層符号化の複数の階層が2つの階層組に分割されて得られた2つのサブストリームのそれぞれが含まれる。ここで、下位側の階層組のサブストリーム(ベースサブストリーム)にはSPSが含まれ、上位側の階層組のサブストリーム(エンハンスサブストリーム)にはESPSが含まれる。そして、SPS,ESPSの要素の“general_level_idc”の値は、自己の階層組以下の階層組に含まれる全ての階層のピクチャを含むレベル値とされる。
各ピクチャの符号化画像データには、SPS、ESPSなどのNALユニットが存在する。上述したように、各ピクチャのNALユニットのヘッダには、そのピクチャの階層を示すtemporal_idが挿入されている。また、例えば、SPS、ESPSにはビットレートのレベル指定値(general_level_idc)が含まれている。また、例えば、ピクチャ・タイミング・SEI(Picture timing SEI)には、「cpb_removal_delay」と「dpb_output_delay」が含まれている。
また、各ピクチャの符号化画像データをコンテナするTSパケットのヘッダに「transport_priority」の1ビットの優先度を示すフィールドが存在する。この「transport_priority」により、コンテナする符号化画像データが、低階層組のピクチャのものか、あるいは高階層組のピクチャのものかが識別可能である。
また、トランスポートストリームTSには、PSI(Program Specific Information)として、PMT(Program Map Table)が含まれている。このPSIは、トランスポートストリームに含まれる各エレメンタリストリームがどのプログラムに属しているかを記した情報である。
PMTには、プログラム全体に関連する情報を記述するプログラム・ループ(Program loop)が存在する。また、PMTには、各エレメンタリストリームに関連した情報を持つエレメンタリ・ループが存在する。この構成例では、2つのビデオエレメンタリ・ループ(video ES1 loop, video ES2 loop )が存在すると共に、オーディオエレメンタリ・ループ(audio ES1 loop)が存在する。
各ビデオエレメンタリ・ループには、ビデオストリーム(video PES1, video PES2)に対応して、ストリームタイプ、パケット識別子(PID)等の情報が配置されると共に、そのビデオストリームに関連する情報を記述するデスクリプタも配置される。このデスクリプタの一つとして、上述したHEVCデスクリプタ(HEVC_descriptor)、スケーラビリティ・エクステンション・デスクリプタ(scalability_extension_descriptor)が挿入される。
図25は、図3の階層符号化の例において、階層0〜3のピクチャでベースサブストリーム(B stream)が生成され、階層4のピクチャでエンハンスサブストリーム(E stream)が生成される場合を示している。この場合、ベースサブストリームに含まれる各ピクチャは60Pを構成し、エンハンスサブストリーム(E stream)に含まれる各ピクチャは、ベースサブストリームに含まれる各ピクチャに追加されてPES全体で120Pを構成する。
ベースサブストリームのピクチャは、「AUD」、「VPS」、「SPS」、「PPS」、「PSEI」、「SLICE」、「SSEI」、「EOS」などのNALユニットにより構成される。なお、「VPS」、「SPS」は、例えば、GOPの先頭ピクチャに挿入される。SPSの要素の“general_level_idc”の値は、“level5.1”とされる。なお、「EOS」はなくてもよい。
一方、エンハンスサブストリームのピクチャは、「AUD」、「ESPS」、「PPS」、「PSEI」、「SLICE」、「SSEI」、「EOS」などのNALユニットにより構成される。なお、「ESPS」は、例えば、GOPの先頭ピクチャに挿入される。ESPSの要素の“general_level_idc”の値は、“level5.2”とされる。なお、「PSEI」、「SSEI」、「EOS」はなくてもよい。
「video ES1 loop」には、ビデオストリーム(video PES1)に対応して、ストリームタイプ、パケット識別子(PID)等の情報が配置されると共に、そのビデオストリームに関連する情報を記述するデスクリプタも配置される。このストリームタイプは、ベースストリームを示す“0x24”とされる。また、デスクリプタの一つとして、上述したHEVCデスクリプタが挿入される。
「level_constrained_flag」の1ビットフィールドは、“1”とされる。これにより、「該当サブストリームにSPSあるいはESPSが存在し、その要素の“general_level_idc”は、そのサブストリームが含むtemporal_id 以下のピクチャを含むレベル値をもつ」ことが示される。また、「level_idc」の値は、ベースサブストリーム(B stream)のレベル値を示す“level5.1”とされる。また、「temporal_id_min」は0とされ、「temporal_id_max」は3とされ、ベースサブストリーム(B stream)に階層0〜3のピクチャが含まれていることが示される。
「video ES2 loop」には、ビデオストリーム(video PES2)に対応して、ストリームタイプ、パケット識別子(PID)等の情報が配置されると共に、そのビデオストリームに関連する情報を記述するデスクリプタも配置される。このストリームタイプは、エンハンススストリームを示す“0x25”とされる。また、デスクリプタの一つとして、上述したHEVCデスクリプタが挿入される。
「level_constrained_flag」の1ビットフィールドは、“1”とされる。これにより、「該当サブストリームにSPSあるいはESPSが存在し、その要素の“general_level_idc”は、そのサブストリームが含むtemporal_id 以下のピクチャを含むレベル値をもつ」ことが示される。また、「level_idc」の値は、ベースサブストリーム(B stream)およびエンハンスストリーム(E stream)のレベル値を示す“level5.2”とされる。また、「temporal_id_min」は4とされ、「temporal_id_max」は4とされ、エンハンスストリーム(E stream))に階層4のピクチャが含まれていることが示される。
このような複数ビデオストリームによる配信が行われる場合、受信側では、「level_constrained_flag」、SPS、ESPSの要素の“general_level_idc”などに基づいて、各サブストリームが自身のデコーダ処理能力の範囲内にあるか否かが判断され、範囲内にあるサブストリームのデコードが行われる。
図26は、図3の階層符号化の例において、階層0〜3のピクチャでベースサブストリーム(B stream)が生成され、階層4のピクチャでエンハンスサブストリーム(E stream)が生成される場合におけるトランスポートストリームTSの他の構成例を示している。この場合、ベースサブストリームに含まれる各ピクチャは60Pを構成し、エンハンスサブストリーム(E stream)に含まれる各ピクチャは、ベースサブストリームに含まれる各ピクチャに追加されてPES全体で120Pを構成する。
ベースサブストリームのピクチャは、「AUD」、「VPS」、「SPS」、「PPS」、「PSEI」、「SLICE」、「SSEI」、「EOS」などのNALユニットにより構成される。なお、「VPS」、「SPS」は、例えば、GOPの先頭ピクチャに挿入される。SPSの要素の“general_level_idc”の値は、“level5.2”とされる。この場合、SPSの要素の“sub_layer_level_present_flag”は“1”とされ、“sublayer_level_idc[3]”で、ベースサブストリームのレベル値“level5.1”が示される。なお、「EOS」はなくてもよい。
エンハンスサブストリームのピクチャは、「AUD」、「PPS」、「SLICE」などのNALユニットにより構成される。しかし、図25におけるような「ESPS」のNALユニットは存在しない。
「video ES1 loop」には、ビデオストリーム(video PES1)に対応して、ストリームタイプ、パケット識別子(PID)等の情報が配置されると共に、そのビデオストリームに関連する情報を記述するデスクリプタも配置される。このストリームタイプは、ベースストリームを示す“0x24”とされる。また、デスクリプタの一つとして、上述したHEVCデスクリプタが挿入される。
図25におけるような「level_constrained_flag」は存在しない。「level_idc」の値は、ベースサブストリーム(B stream)のレベル値を示す“level5.1”とされる。また、「temporal_id_min」は0とされ、「temporal_id_max」は3とされ、ベースサブストリーム(B stream)に階層0〜3のピクチャが含まれていることが示される。
「video ES2 loop」には、ビデオストリーム(video PES2)に対応して、ストリームタイプ、パケット識別子(PID)等の情報が配置されると共に、そのビデオストリームに関連する情報を記述するデスクリプタも配置される。このストリームタイプは、エンハンススストリームを示す“0x25”とされる。また、デスクリプタの一つとして、上述したHEVCデスクリプタが挿入される。
図25におけるような「level_constrained_flag」は存在しない。「level_idc」の値は、ベースサブストリーム(B stream)およびエンハンスストリーム(E stream)のレベル値を示す“level5.2”とされる。また、「temporal_id_min」は4とされ、「temporal_id_max」は4とされ、エンハンスストリーム(E stream))に階層4のピクチャが含まれていることが示される。
このような複数ビデオストリームによる配信が行われる場合、受信側では、SPSの要素の“general_level_idc”、“sublayer_level_idc”などに基づいて、各サブストリームが自身のデコーダ処理能力の範囲内にあるか否かが判断され、範囲内にあるサブストリームのデコードが行われる。
図2に戻って、送信部105は、トランスポートストリームTSを、例えば、QPSK/OFDM等の放送に適した変調方式で変調し、RF変調信号を送信アンテナから送信する。
図2に示す送信装置100の動作を簡単に説明する。エンコーダ102には、非圧縮の動画像データが入力される。エンコーダ102では、この動画像データに対して、階層符号化が行われる。すなわち、エンコーダ102では、この動画像データを構成する各ピクチャの画像データが複数の階層に分類されて符号化され、各階層のピクチャの符号化画像データを持つビデオストリームが生成される。この際、参照するピクチャが、自己階層および/または自己階層よりも下位の階層に所属するように、符号化される。
エンコーダ102では、各階層のピクチャの符号化画像データを持つビデオストリームが生成される。例えば、エンコーダ102では、複数の階層が2以上の所定数の階層組に分割され、各階層組に対応したサブストリームのそれぞれを含む所定数のビデオストリームが生成されるか、または、各階層組に対応したサブストリームの全てを含む単一のビデオストリームが生成される。
エンコーダ102では、各階層組のピクチャの符号化画像データに、所属階層組を識別するための識別情報が付加される。この場合、例えば、識別情報として、SPS,ESPSの要素である「general_level_idc」が利用される。SPSは、最下位の階層組のサブストリーム(ベースサブストリーム)に、シーケンス(GOP)毎に含まれる。一方、ESPSは、最下位より上位の階層組のサブストリーム(エンハンスサブストリーム)に、シーケンス(GOP)毎に含まれる。SPS,ESPSに含まれる「general_level_idc」の値は、高階層側の階層組ほど高い値とされる。例えば、各階層組のサブストリームのSPS,ESPSに挿入される「general_level_idc」の値は、自己の階層組以下の階層組に含まれる全ての階層のピクチャを含むレベル値とされる。
エンコーダ102で生成された、各階層のピクチャの符号化データを含むビデオストリームは、圧縮データバッファ(cpb)103に供給され、一時的に蓄積される。マルチプレクサ104では、圧縮データバッファ103に蓄積されているビデオストリームが読み出され、PESパケット化され、さらにトランスポートパケット化されて多重され、多重化ストリームとしてのトランスポートストリームTSが得られる。
このトランスポートストリームTSには、各階層のピクチャの符号化画像データを持つ単一のビデオストリーム、あるいは2以上の所定数のビデオストリームが含まれる。マルチプレクサ104では、トランスポートストリームTSに、階層情報、ストリーム構成情報が挿入される。すなわち、マルチプレクサ104では、各ビデオストリームに対応したビデオエレメンタリ・ループに、HEVCデスクリプタ(HEVC_descriptor)、スケーラビリティ・エクステンション・デスクリプタ(scalability_extension_descriptor)が挿入される。
また、マルチプレクサ104では、低階層側の階層組のピクチャの符号化画像データをコンテナするTSパケットの優先度ほど高く設定される。マルチプレクサ104では、例えば、複数の階層を低階層組と高階層組に二分される場合、TSパケットヘッダの「transport_priority」の1ビットフィールドが利用されて優先度が設定される。
マルチプレクサ104で生成されるトランスポートストリームTSは、送信部105に送られる。送信部105では、このトランスポートストリームTSが、例えば、QPSK/OFDM等の放送に適した変調方式で変調され、RF変調信号が送信アンテナから送信される。
「受信装置の構成」
図27は、受信装置200の構成例を示している。この受信装置200は、CPU(Central Processing Unit)201と、受信部202と、デマルチプレクサ203と、圧縮データバッファ(cpb:coded picture buffer)204を有している。また、この受信装置200は、デコーダ205と、非圧縮データバッファ(dpb:decoded picture buffer)206と、ポスト処理部207を有している。CPU201は、制御部を構成し、受信装置200の各部の動作を制御する。
受信部202は、受信アンテナで受信されたRF変調信号を復調し、トランスポートストリームTSを取得する。デマルチプレクサ203は、トランスポートストリームTSから、デコード能力(Decoder temporal layer capability)に応じた階層組のピクチャの符号化画像データを選択的に取り出し、圧縮データバッファ(cpb:coded picture buffer)204に送る。
図28は、デマルチプレクサ203の構成例を示している。このデマルチプレクサ203は、PCR抽出部231と、タイムスタンプ抽出部232と、セクション抽出部233と、TSプライオリティ抽出部234と、PESペイロード抽出部235と、ピクチャ選択部236を有している。
PCR抽出部231は、PCR(Program Clock Reference)が含まれるTSパケットからPCRを抽出し、CPU201に送る。タイムスタンプ抽出部232は、ピクチャ毎にPESヘッダに挿入されているタイムスタンプ(DTS、PTS)を抽出し、CPU201に送る。セクション抽出部233は、トランスポートストリームTSからセクションデータを抽出し、CPU201に送る。このセクションデータには、上述したHEVCデスクリプタ(HEVC_descriptor)、スケーラビリティ・エクステンション・デスクリプタ(scalability_extension_descriptor)などが含まれている。
TSプライオリティ抽出部234は、各TSパケットに設定されている優先度情報を抽出する。この優先度は、上述したように、複数の階層を2以上の所定数の階層組に分割した場合における各階層組の優先度であり、低階層側の階層組ほど高く設定されている。例えば、低階層組と高階層組に2分されている場合、TSパケットヘッダの「transport_priority」の1ビットフィールドの値が抽出される。この値は、低階層組では“1”とされ、高階層組では“0”に設定されている。
PESペイロード抽出部235は、トランスポートストリームTSからPESペイロード、つまり、各階層のピクチャの符号化画像データを抽出する。ピクチャ選択部236は、PESペイロード抽出部235で取り出される各階層のピクチャの符号化画像データから、デコード能力(Decoder temporal layer capability)に応じた階層組のピクチャの符号化画像データを選択的に取り出し、圧縮データバッファ(cpb:coded picture buffer)204に送る。この場合、ピクチャ選択部236は、セクション抽出部233で得られる階層情報、ストリーム構成情報、TSプライオリティ抽出部234で抽出される優先度情報を参照する。
例えば、トランスポートストリームTSに含まれるビデオストリーム(符号化ストリーム)のフレームレートが120fpsである場合を考える。例えば、複数の階層が低階層側の階層組と高階層側の階層組とに2分割され、各階層組のピクチャのフレームレートがそれぞれ60fpsであるとする。例えば、上述の図3に示す階層符号化例では、階層0から3は低階層側の階層組とされ、階層4は高階層側の階層組とされる。
TSパケットのヘッダに含まれる「transport_priority」の1ビットフィールドは、ベースレイヤ、つまり低階層側の階層組のピクチャの符号化画像データをコンテナするTSパケットの場合には“1”に設定され、ノンベースレイヤ、つまり高階層側の階層組のピクチャの符号化画像データをコンテナするTSパケットの場合には“0”に設定されている。
この場合、トランスポートストリームTSに、各階層のピクチャの符号化データを持つ単一のビデオストリーム(符号化ストリーム)(図10参照)が含まれている場合がある。また、この場合、トランスポートストリームTSに、低階層側の階層組のピクチャの符号化画像データ持つベースストリーム(B-stream)と、高階層側の階層組のピクチャの符号化画像データを持つエンハンスストリーム(E-stream)の2つのビデオストリーム(符号化ストリーム)が含まれている場合(図11参照)がある。
ピクチャ選択部236は、例えば、デコード能力が、120P(120fps)に対応している場合、全階層のピクチャの符号化画像データを取り出し、圧縮データバッファ(cpb)204に送る。一方、ピクチャ選択部236は、例えば、デコード能力が、120Pに対応していないが60P(60fps)に対応している場合、低階層側の階層組のピクチャの符号化画像データのみを取り出し、圧縮データバッファ(cpb)204に送る。
図29は、トランスポートストリームTSに単一のビデオストリーム(符号化ストリーム)が含まれている場合を示している。ここで、「High」は高階層側の階層組のピクチャを示し、「Low」は低階層側の階層組のピクチャを示す。また、「P」は「transport_priority」を示している。
デコード能力が、120Pに対応している場合、ピクチャ選択部236は、全階層のピクチャの符号化画像データを取り出し、圧縮データバッファ(cpb)204に送り、領域1(cpb_1)に蓄積する。一方、デコード能力が、120Pに対応していないが60Pに対応している場合、「transport_priority」に基づくフィルタリングを行って、P=1である低階層側の階層組のピクチャだけを取り出し、圧縮データバッファ(cpb)204に送り、領域1(cpb_1)に蓄積する。
図30は、トランスポートストリームTSにベースストリームと拡張ストリームの2つのビデオストリーム(符号化ストリーム)が含まれている場合を示している。ここで、「High」は高階層側の階層組のピクチャを示し、「Low」は低階層側の階層組のピクチャを示す。また、「P」は「transport_priority」を示している。また、ベースストリームのパケット識別子(PID)はPID1であり、拡張ストリームのパケット識別子(PID)はPID2であるとする。
デコード能力が、120Pに対応している場合、ピクチャ選択部236は、全階層のピクチャの符号化画像データを取り出し、圧縮データバッファ(cpb)204に送る。そして、低階層側の階層組のピクチャの符号化画像データは領域1(cpb_1)に蓄積し、低階層側の階層組のピクチャの符号化画像データは領域2(cpb_2)に蓄積する。
一方、デコード能力が、120Pに対応していないが120Pに対応している場合、パケット識別子(PID)に基づくフィルタリングを行って、PID1である低階層側の階層組のピクチャだけを取り出し、圧縮データバッファ(cpb)204に送り、領域1(cpb_1)に蓄積する。なお、この場合も、「transport_priority」に基づくフィルタリングを行ってもよい。
図31は、デマルチプレクサ203の処理フローの一例を示している。この処理フローは、トランスポートストリームTSに単一のビデオストリーム(符号化ストリーム)が含まれている場合を示している。
デマルチプレクサ203は、ステップST31において、処理を開始し、その後に、ステップST32の処理に移る。このステップST32おいて、CPU201から、デコード能力(Decoder temporal layer capability)が設定される。次に、デマルチプレクサ203は、ステップST33おいて、全階層をデコードする能力があるか否かを判断する。
全階層をデコードする能力があるとき、デマルチプレクサ203は、ステップST34において、該当PIDフィルタを通過する全TSパケットをデマルチプレクスし、セクションパーシング(Section parsing)を行う。その後、デマルチプレクサ203は、ステップST35の処理に移る。
ステップST33で全階層をデコードする能力がないとき、デマルチプレクサ203は、ステップST36において、「transport_priority」が“1”のTSパケットをデマルチプレクスし、セクションパーシング(Section parsing)を行う。その後、デマルチプレクサ203は、ステップST35の処理に移る。
ステップST35において、デマルチプレクサ203は、対象となるPIDのセクションの中で、HEVCデスクリプタ(HEVC_descriptor)、スケーラビリティ・エクステンション・デスクリプタ(scalability_extension_descriptor)を読み、拡張ストリームの有無、スケーラブルタイプ、ストリームの数とID、temporal_idの最大、最小値、最小ターゲットデコーダ・レベルを得る。
次に、デマルチプレクサ203は、ステップST37で、PIDの対象となる符号化ストリームを圧縮データバッファ(cpb)204へ転送すると共に、DTS、PTSを、CPU201に通知する。デマルチプレクサ203は、ステップST37の処理の後、ステップST38において、処理を終了する。
図32は、デマルチプレクサ203の処理フローの一例を示している。この処理フローは、トランスポートストリームTSにベースストリームと拡張ストリームの2つのビデオストリーム(符号化ストリーム)が含まれている場合を示している。
デマルチプレクサ203は、ステップST41において、処理を開始し、その後に、ステップST42の処理に移る。このステップST42おいて、CPU201から、デコード能力(Decoder temporal layer capability)が設定される。次に、デマルチプレクサ203は、ステップST43おいて、全階層をデコードする能力があるか否かを判断する。
全階層をデコードする能力があるとき、デマルチプレクサ203は、ステップST44において、該当PIDフィルタを通過する全TSパケットをデマルチプレクスし、セクションパーシング(Section parsing)を行う。その後、デマルチプレクサ203は、ステップST45の処理に移る。
ステップST43で全階層をデコードする能力がないとき、デマルチプレクサ203は、ステップST46において、PID=PID1のTSパケットをデマルチプレクスし、セクションパーシング(Section parsing)を行う。その後、デマルチプレクサ203は、ステップST45の処理に移る。
ステップST45において、デマルチプレクサ203は、対象となるPIDのセクションの中で、HEVCデスクリプタ(HEVC_descriptor)、スケーラビリティ・エクステンション・デスクリプタ(scalability_extension_descriptor)を読み、拡張ストリームの有無、スケーラブルタイプ、ストリームの数とID、temporal_idの最大、最小値、最小ターゲットデコーダ・レベルを得る。
次に、デマルチプレクサ203は、ステップST47で、PIDの対象となる符号化ストリームを圧縮データバッファ(cpb)204へ転送すると共に、DTS、PTSを、CPU201に通知する。デマルチプレクサ203は、ステップST47の処理の後、ステップST48において、処理を終了する。
図27に戻って、圧縮データバッファ(cpb)204は、デマルチプレクサ203で取り出されるビデオストリーム(符号化ストリーム)を、一時的に蓄積する。デコーダ205は、圧縮データバッファ204に蓄積されているビデオストリームから、デコードすべき階層として指定された階層のピクチャの符号化画像データを取り出す。そして、デコーダ205は、取り出された各ピクチャの符号化画像データを、それぞれ、そのピクチャのデコードタイミングでデコードし、非圧縮データバッファ(dpb)206に送る。
ここで、デコーダ205には、CPU201からデコードすべき階層がtemporal_idで指定される。この指定階層は、デマルチプレクサ203で取り出されるビデオストリーム(符号化ストリーム)に含まれる全階層、あるいは低階層側の一部の階層とされ、CPU201により自動的に、あるいはユーザ操作に応じて設定される。また、デコーダ205には、CPU201から、DTS(Decoding Time stamp)に基づいて、デコードタイミングが与えられる。なお、デコーダ205は、各ピクチャの符号化画像データをデコードする際に、必要に応じて、非圧縮データバッファ206から被参照ピクチャの画像データを読み出して利用する。
図33は、デコーダ205の構成例を示している。このデコーダ205は、テンポラルID解析部251と、対象階層選択部252と、ストリーム統合部253と、デコード部254を有している。テンポラルID解析部251は、圧縮データバッファ204に蓄積されているビデオストリーム(符号化ストリーム)を読み出し、各ピクチャの符号化画像データのNALユニットヘッダに挿入されているtemporal_idを解析する。
対象階層選択部252は、圧縮データバッファ204から読み出されたビデオストリームから、テンポラルID解析部251の解析結果に基づいて、デコードすべき階層として指定された階層のピクチャの符号化画像データを取り出す。この場合、対象階層選択部252からは、圧縮データバッファ204から読み出されたビデオストリームの数および指定階層に応じて、単一または複数のビデオストリーム(符号化ストリーム)が出力される。
ストリーム統合部253は、対象階層選択部252から出力される所定数のビデオストリーム(符号化ストリーム)を一つに統合する。デコード部254は、ストリーム統合部253で統合されたビデオストリーム(符号化ストリーム)が持つ各ピクチャの符号化画像データを、順次デコードタイミングでデコードし、非圧縮データバッファ(dpb)206に送る。
この場合、デコード部254はデマルチプレクサ203から得られるLevel_constrained_flagにより、SPS,ESPSの解析を行って、「general_level_idc」、「sublayer_level_idc」などを把握し、ストリームあるいはサブストリームが自身のデコーダ処理能力範囲内でデコードし得るものかどうかを確認する。また、この場合、デコード部254は、SEIの解析を行って、例えば、「initial_cpb_removal_time」、「cpb_removal_delay」を把握し、CPU201からのデコードタイミングが適切か確認する。
また、デコード部254は、スライス(Slice)のデコードを行う際に、スライスヘッダ(Slice header)から、時間方向の予測先を表す情報として、「ref_idx_l0_active(ref_idx_l1_active)を取得し、時間方向の予測を行う。なお、デコード後のピクチャは、スライスヘッダ(slice header)から得られる「short_term_ref_pic_set_idx」、あるいは「it_idx_sps」が指標とされて、他のピクチャによる被参照として処理される。
図34のフローチャートは、受信装置200におけるデコーダ処理能力を考慮したビデオストリーム毎のデコード処理手順の一例を示している。受信装置200は、ステップST61で処理を開始し、ステップST62において、HEVCデスクリプタ(HEVC_descriptor)を読む。
次に、受信装置200は、ステップST63において、HEVCデスクリプタに“level_constrained_flag”が存在するか判断する。存在するとき、受信装置200は、ステップST64において、“level_constrained_flag”が“1”であるか判断する。“1”であるとき、受信装置200は、ステップST65の処理に進む。
このステップST65において、受信装置200は、該当するPIDのPESパケット(PES packet)のタイムスタンプを参照し、ペイロード(payload)部分のビデオストリームのSPSあるいはESPSを読む。そして、受信装置200は、ステップST66において、SPSあるいはESPSの要素である「general_level_idc」を読む。
次に、受信装置200は、ステップST67において、「general_level_idc」がデコーダ処理能力範囲内か判断する。デコーダ処理能力範囲内であるとき、受信装置200は、ステップST68において、該当するストリームあるいはサブストリームをデコードする。その後に、受信装置200は、ステップST69において、処理を終了する。一方、ステップST67でデコーダ処理能力範囲内でないとき、受信装置200は、直ちにステップST69に進み、処理を終了する。
また、ステップST63で“level_constrained_flag”が存在しないとき、あるいはステップST64で“level_constrained_flag”が“0”であるとき、受信装置200は、ステップST70の処理に移る。このステップST70において、受信装置200は、該当するPIDのPESパケット(PES packet)のタイムスタンプを参照し、ペイロード(payload)部分のビデオストリームのSPSを読む。一方、該当するビデオストリームにSPSが存在しない場合は、temporal_layer が下位のピクチャ(Picture)を含むサブストリームのSPSを参照する。
次に、受信装置200は、ステップST71において、SPSの要素である「general_level_idc」を読む。そして、受信装置200は、ステップST72において、「general_level_idc」がデコーダ処理能力範囲内か判断する。デコーダ処理能力範囲内であるとき、受信装置200は、ステップST73の処理に移る。
一方、デコーダ処理能力範囲内でないとき、受信装置200は、ステップST74において、SPSの要素の「Sublayer_level_idc」をチェックする。そして、受信装置200は、ステップST75において、「Sublayer_level_idc」がデコーダ処理能力範囲内である「Sublayer」が存在するか判断する。存在しないとき、受信装置200は、直ちにステップST69に進み、処理を終了する。一方、存在するとき、受信装置200は、ステップST73の処理に移る。
このステップST73において、受信装置200は、ストリームの全体、あるいは該当するサブレイヤ(Sublayer)部分を、temporal_id値を参照してデコードする。その後、受信装置200は、ステップST69において、処理を終了する。
図27に戻って、非圧縮データバッファ(dpb)206は、デコーダ205でデコードされた各ピクチャの画像データを、一時的に蓄積する。ポスト処理部207は、非圧縮データバッファ(dpb)206から表示タイミングで順次読み出された各ピクチャの画像データに対して、そのフレームレートを、表示能力に合わせる処理を行う。この場合、CPU201から、PTS(Presentation Time stamp)に基づいて、表示タイミングが与えられる。
例えば、デコード後の各ピクチャの画像データのフレームレートが120fpsであって、表示能力が120fpsであるとき、ポスト処理部207は、デコード後の各ピクチャの画像データをそのままディスプレイに送る。また、例えば、デコード後の各ピクチャの画像データのフレームレートが120fpsであって、表示能力が60fpsであるとき、ポスト処理部207は、デコード後の各ピクチャの画像データに対して時間方向解像度が1/2倍となるようにサブサンプル処理を施し、60fpsの画像データとしてディスプレイに送る。
また、例えば、デコード後の各ピクチャの画像データのフレームレートが60fpsであって、表示能力が120fpsであるとき、ポスト処理部207は、デコード後の各ピクチャの画像データに対して時間方向解像度が2倍となるように補間処理を施し、120fpsの画像データとしてディスプレイに送る。また、例えば、デコード後の各ピクチャの画像データのフレームレートが60fpsであって、表示能力が60fpsであるとき、ポスト処理部207は、デコード後の各ピクチャの画像データをそのままディスプレイに送る。
図35は、ポスト処理部207の構成例を示している。この例は、上述したようにデコード後の各ピクチャの画像データのフレームレートが120fpsあるいは60fpsであって、表示能力が120fpsあるいは60fpsである場合に対処可能とした例である。
ポスト処理部207は、補間部271と、サブサンプル部272と、スイッチ部273を有している。非圧縮データバッファ206からのデコード後の各ピクチャの画像データは、直接スイッチ部273に入力され、あるいは補間部271で2倍のフレームレートとされた後にスイッチ部273に入力され、あるいはサブサンプル部272で1/2倍のフレームレートとされた後にスイッチ部273に入力される。
スイッチ部273には、CPU201から、選択情報が供給される。この選択情報は、CPU201が、表示能力を参照して自動的に、あるいは、ユーザ操作に応じて発生する。スイッチ部273は、選択情報に基づいて、入力のいずれかを選択的に出力とする。これにより、非圧縮データバッファ(dpb)206から表示タイミングで順次読み出された各ピクチャの画像データのフレームレートは、表示能力に合ったものとされる。
図36は、デコーダ205、ポスト処理部207の処理フローの一例を示している。デコーダ205、ポスト処理部207は、ステップST51において、処理を開始し、その後に、ステップST52の処理に移る。このステップST52において、デコーダ205は、圧縮データバッファ(cpb)204に蓄積されているデコード対象のビデオストリームを読み出し、temporal_idに基づいて、CPU201からデコード対象として指定される階層のピクチャを選択する。
次に、デコーダ205は、ステップST53において、選択された各ピクチャの符号化画像データをデコードタイミングで順次デコードし、デコード後の各ピクチャの画像データを非圧縮データバッファ(dpb)206に転送して、一時的に蓄積する。次に、ポスト処理部207は、ステップST54において、非圧縮データバッファ(dpb)206から、表示タイミングで各ピクチャの画像データを読み出す。
次に、ポスト処理部207は、読み出された各ピクチャの画像データのフレームレートが表示能力にあっているか否かを判断する。フレームレートが表示能力に合っていないとき、ポスト処理部207は、ステップST56において、フレームレートを表示能力に合わせて、ディスプレイに送り、その後、ステップST57において、処理を終了する。一方、フレームレートが表示能力に合っているとき、ポスト処理部207は、ステップST58において、フレームレートそのままでディスプレイに送り、その後、ステップST57において、処理を終了する。
図27に示す受信装置200の動作を簡単に説明する。受信部202では、受信アンテナで受信されたRF変調信号が復調され、トランスポートストリームTSが取得される。このトランスポートストリームTSは、デマルチプレクサ203に送られる。デマルチプレクサ203では、トランスポートストリームTSから、デコード能力(Decoder temporal layer capability)に応じた階層組のピクチャの符号化画像データが選択的に取り出され、圧縮データバッファ(cpb)204に送られ、一時的に蓄積される。
デコーダ205では、圧縮データバッファ204に蓄積されているビデオストリームから、デコードすべき階層として指定された階層のピクチャの符号化画像データが取り出される。そして、デコーダ205では、取り出された各ピクチャの符号化画像データが、それぞれ、そのピクチャのデコードタイミングでデコードされ、非圧縮データバッファ(dpb)206に送られ、一時的に蓄積される。この場合、各ピクチャの符号化画像データがデコードされる際に、必要に応じて、非圧縮データバッファ206から被参照ピクチャの画像データが読み出されて利用される。
非圧縮データバッファ(dpb)206から表示タイミングで順次読み出された各ピクチャの画像データは、ポスト処理部207に送られる。ポスト処理部207では、各ピクチャの画像データに対して、そのフレームレートを、表示能力に合わせるための補間あるいはサブサンプルが行われる。このポスト処理部207で処理された各ピクチャの画像データは、ディスプレイに供給され、その各ピクチャの画像データによる動画像の表示が行われる。
以上説明したように、図1に示す送受信システム10においては、送信側において、階層毎にエンコード間隔が算出され、高階層ほどピクチャ毎の符号化画像データのデコード時間間隔が小さくなるように設定されたデコードタイムスタンプが各階層のピクチャの符号化画像データに付加されるものである。そのため、例えば、受信側においてデコード能力に応じた良好なデコード処理が可能となる。例えば、デコード能力が低い場合であっても、圧縮データバッファ204のバッファ破たんを招くことなく、低階層のピクチャの符号化画像データを選択的にデコードすることが可能となる。
また、図1に示す送受信システム10においては、送信側において、トランスポートストリームTSのレイヤに、スケーラビリティ・エクステンション・デスクリプタ(scalability_extension_descriptor)等が挿入されるものである。そのため、例えば、受信側では、階層符号化における階層情報、トランスポートストリームTSに含まれるビデオストリームの構成情報などを容易に把握でき、適切なデコード処理を行うことが可能となる。
また、図1に示す送受信システム10においては、送信部において、複数の階層を2以上の所定数の階層組に分割し、低階層側の階層組のピクチャの符号化画像データをコンテナするTSパケットの優先度ほど高く設定されるものである。例えば、2分割の場合、「transport_priority」の1ビットフィールドは、ベースレイヤ、つまり低階層側の階層組のピクチャの符号化画像データをコンテナするTSパケットの場合は“1”に設定され、ノンベースレイヤ、つまり高階層側の階層組のピクチャの符号化画像データをコンテナするTSパケットの場合は“0”に設定される。そのため、例えば、受信側では、このTSパケットの優先度に基づいて、自身のデコード能力に応じた階層組のピクチャの符号化画像データのみを圧縮データバッファ(cpb)204に取り込むことが可能となり、バッファ破たんを回避することが容易となる。
また、図1に示す送受信システム10においては、送信側において、各階層組に対応したサブストリームのそれぞれにビットストリームのレベル指定値が挿入され、その値は自己の階層組以下の階層組に含まれる全ての階層のピクチャを含むレベル値とされるものである。そのため、ビデオストリームの受信側では、各サブストリームのデコードが可能か否かの判断を、挿入されているビットストリームのレベル指定値に基づいて容易に判断することが可能となる。
また、図1に示す送受信システム10においては、送信側において、トランスポートストリームTSのレイヤ(コンテナのレイヤ)に、各階層組のサブストリームに挿入されるビットストリームのレベル指定値が、当該階層組以下の階層組に含まれる全ての階層のピクチャを含むレベル値であることを示すフラグ情報(level_constrained_flag)が挿入されるものである。そのため、受信側では、このフラグ情報により、各階層組のサブストリームに挿入されるビットストリームのレベル指定値が当該階層組以下の階層組に含まれる全ての階層のピクチャを含むレベル値であることがわかり、sublayer_level_idcを用いた確認処理が不要となり、デコード処理の効率化を図ることが可能となる
<2.変形例>
なお、上述実施の形態においては、送信装置100と受信装置200からなる送受信システム10を示したが、本技術を適用し得る送受信システムの構成は、これに限定されるものではない。例えば、受信装置200の部分が、例えば、(HDMI(High-Definition Multimedia Interface)などのデジタルインタフェースで接続されたセットトップボックスおよびモニタの構成などであってもよい。
また、上述実施の形態においては、コンテナがトランスポートストリーム(MPEG−2 TS)である例を示した。しかし、本技術は、インターネット等のネットワークを利用して受信端末に配信される構成のシステムにも同様に適用できる。インターネットの配信では、MP4やそれ以外のフォーマットのコンテナで配信されることが多い。つまり、コンテナとしては、デジタル放送規格で採用されているトランスポートストリーム(MPEG−2 TS)、インターネット配信で使用されているMP4などの種々のフォーマットのコンテナが該当する。
また、本技術は、以下のような構成を取ることもできる。
(1)動画像データを構成する各ピクチャの画像データを複数の階層に分類し、該分類された各階層のピクチャの画像データを符号化し、該符号化された各階層のピクチャの画像データを持つビデオストリームを生成する画像符号化部と、
上記生成されたビデオストリームを含む所定フォーマットのコンテナを送信する送信部とを備え、
上記画像符号化部は、
高階層ほどピクチャ毎の符号化画像データのデコード時間間隔が小さくなるように設定されたデコードタイミング情報を上記各階層のピクチャの符号化画像データに付加する
送信装置。
(2)上記画像符号化部は、
上記各階層のピクチャの符号化画像データを持つ単一のビデオストリームを生成し、
上記複数の階層を2以上の所定数の階層組に分割し、各階層組のピクチャの符号化画像データに、所属階層組を識別するための識別情報を付加する
前記(1)に記載の送信装置。
(3)上記識別情報は、ビットストリームのレベル指定値であり、高階層側の階層組ほど高い値とされる
前記(2)に記載の送信装置。
(4)上記画像符号化部は、
上記複数の階層を2以上の所定数の階層組に分割し、
上記各階層組のピクチャの符号化画像データをそれぞれ持つ上記所定数のビデオストリームを生成する
前記(1)に記載の送信装置。
(5)上記画像符号化部は、
上記各階層組のピクチャの符号化画像データに、所属階層組を識別するための識別情報を付加する
前記(4)に記載の送信装置。
(6)上記識別情報は、ビットストリームのレベル指定値であり、高階層側の階層組ほど高い値とされる
前記(5)に記載の送信装置。
(7)上記画像符号化部は、
上記各階層のピクチャの符号化画像データを持つ単一のビデオストリームを生成するか、あるいは上記複数の階層を2以上の所定数の階層組に分割し、各階層組のピクチャの符号化画像データをそれぞれ持つ上記所定数のビデオストリームを生成し、
上記コンテナのレイヤに、該コンテナに含まれるビデオストリームの構成情報を挿入する情報挿入部をさらに備える
前記(1)から(6)のいずれかに記載の送信装置。
(8)上記送信部は、
上記複数の階層を2以上の所定数の階層組に分割し、低階層側の階層組のピクチャの符号化画像データをコンテナするパケットの優先度ほど高く設定する
前記(1)から(8)のいずれかに記載の送信装置。
(9)動画像データを構成する各ピクチャの画像データを複数の階層に分類し、該分類された各階層のピクチャの画像データを符号化し、該符号化された各階層のピクチャの画像データを持つビデオストリームを生成する画像符号化ステップと、
送信部により上記生成されたビデオストリームを含む所定フォーマットのコンテナを送信する送信ステップとを有し、
上記画像符号化ステップでは、
高階層ほどピクチャ毎の符号化画像データのデコード時間間隔が小さくなるように設定されたデコードタイミング情報を上記各階層のピクチャの符号化画像データに付加する
送信方法。
(10)動画像データを構成する各ピクチャの画像データが複数の階層に分類されて符号化されることで得られた各階層のピクチャの符号化画像データを持つビデオストリームを含む所定フォーマットのコンテナを受信する受信部を備え、
上記各階層のピクチャの符号化画像データには、高階層ほどピクチャ毎の符号化画像データのデコード時間間隔が小さくなるように設定されたデコードタイミング情報が付加されており、
上記受信されたコンテナに含まれる上記ビデオストリームから選択された所定階層以下の階層のピクチャの符号化画像データを、上記デコードタイミング情報が示すデコードタイミングでデコードして、上記所定階層以下の階層のピクチャの画像データを得る処理部をさらに備える
受信装置。
(11)上記受信されたコンテナには、上記各階層のピクチャの符号化画像データを持つ単一のビデオストリームが含まれており、
上記複数の階層は2以上の所定数の階層組に分割され、低階層側の階層組のピクチャの符号化画像データをコンテナするパケットの優先度ほど高く設定されており、
上記処理部は、デコード能力に応じて選択された優先度のパケットでコンテナされた所定階層組のピクチャの符号化画像データをバッファに取り込んでデコードする
前記(10)に記載の受信装置。
(12)上記受信されたコンテナには、上記複数の階層が分割されて得られた2以上の所定数の階層組のピクチャの符号化画像データをそれぞれ持つ上記所定数のビデオストリームが含まれており、
上記処理部は、デコード能力に応じて選択されたビデオストリームが持つ所定階層組のピクチャの符号化画像データをバッファに取り込んでデコードする
前記(10)に記載の受信装置。
(13)上記処理部で得られる各ピクチャの画像データのフレームレートを表示能力に合わせるポスト処理部をさらに備える
前記(10)から(12)のいずれかに記載の受信装置。
(14)受信部により動画像データを構成する各ピクチャの画像データが複数の階層に分類されて符号化されることで得られた各階層のピクチャの符号化画像データを持つビデオストリームを含む所定フォーマットのコンテナを受信する受信ステップを有し、
上記各階層のピクチャの符号化画像データには、高階層ほどピクチャ毎の符号化画像データのデコード時間間隔が小さくなるように設定されたデコードタイミング情報が付加されており、
上記受信されたコンテナに含まれる上記ビデオストリームから選択された所定階層以下の階層のピクチャの符号化画像データを、上記デコードタイミング情報が示すデコードタイミングでデコードして、上記所定階層以下の階層のピクチャの画像データを得る処理ステップをさらに有する
受信方法。
(15)動画像データを構成する各ピクチャの画像データを複数の階層に分類し、該分類された各階層のピクチャの画像データを符号化し、該符号化された各階層のピクチャの画像データを持つビデオストリームを生成する画像符号化部と、
上記生成されたビデオストリームを含む所定フォーマットのコンテナを送信する送信部とを備え、
上記画像符号化部は、
上記各階層のピクチャの符号化画像データを持つ単一のビデオストリームを生成するか、あるいは上記複数の階層を2以上の所定数の階層組に分割し、各階層組のピクチャの符号化画像データをそれぞれ持つ上記所定数のビデオストリームを生成し、
上記コンテナのレイヤに、該コンテナに含まれるビデオストリームの構成情報を挿入する情報挿入部をさらに備える
送信装置。
(16)動画像データを構成する各ピクチャの画像データを複数の階層に分類し、該分類された各階層のピクチャの画像データを符号化し、該符号化された各階層のピクチャの画像データを持つビデオストリームを生成する画像符号化部と、
上記生成されたビデオストリームを含む所定フォーマットのコンテナを送信する送信部とを備え、
上記送信部は、
上記複数の階層を2以上の所定数の階層組に分割し、低階層側の階層組のピクチャの符号化画像データをコンテナするパケットの優先度ほど高く設定する
送信装置。
(17)動画像データを構成する各ピクチャの画像データを複数の階層に分類し、該分類された各階層のピクチャの画像データを符号化し、該符号化された各階層のピクチャの画像データを持つビデオストリームを生成する画像符号化部を備え、
上記画像符号化部は、上記複数の階層を2以上の所定数の階層組に分割し、各階層組に対応したサブストリームのそれぞれにビットストリームのレベル指定値を挿入し、
上記各階層組に対応したサブストリームのそれぞれに挿入されるビットストリームのレベル指定値は、自己の階層組以下の階層組に含まれる全ての階層のピクチャを含むレベル値とされる
符号化装置。
(18)上記画像符号化部は、
上記各階層組に対応したサブストリームのそれぞれを含む上記所定数のビデオストリームを生成する、または上記各階層組に対応したサブストリームの全てを含む単一のビデオストリームを生成する
前記(17)に記載の符号化装置。
(19)画像符号化部により、動画像データを構成する各ピクチャの画像データを複数の階層に分類し、該分類された各階層のピクチャの画像データを符号化し、該符号化された各階層のピクチャの画像データを持つビデオストリームを生成する画像符号化ステップを有し、
上記画像符号化ステップでは、上記複数の階層を2以上の所定数の階層組に分割し、各階層組に対応したサブストリームのそれぞれにビットストリームのレベル指定値を挿入し、
上記各階層組に対応したサブストリームのそれぞれに挿入されるビットストリームのレベル指定値は、自己の階層組以下の階層組に含まれる全ての階層のピクチャを含むレベル値とされる
符号化方法。
(20)動画像データを構成する各ピクチャの画像データを複数の階層に分類し、該分類された各階層のピクチャの画像データを符号化し、該符号化された各階層のピクチャの画像データを持つビデオストリームを生成する画像符号化部を備え、
上記画像符号化部は、上記複数の階層を2以上の所定数の階層組に分割し、各階層組に対応したサブストリームのそれぞれにビットストリームのレベル指定値を挿入し、
上記各階層組に対応したサブストリームのそれぞれに挿入されるビットストリームのレベル指定値は、当該階層組以下の階層組に含まれる全ての階層のピクチャを含むレベル値とされ、
上記生成されたビデオストリームを含む所定フォーマットのコンテナを送信する送信部と、
上記コンテナのレイヤに、各階層組のサブストリームに挿入されるビットストリームのレベル指定値が当該階層組以下の階層組に含まれる全ての階層のピクチャを含むレベル値であることを示すフラグ情報を挿入する情報挿入部をさらに備える
送信装置。
本技術の主な特徴は、階層毎にエンコード間隔を算出し、高階層ほどピクチャ毎の符号化画像データのデコード時間間隔が小さくなるように設定されたデコードタイムスタンプが各階層のピクチャの符号化画像データに付加することで、受信側においてデコード性能に応じた良好なデコード処理を可能としたことである(図9参照)。また、本技術の主な特徴は、複数の階層を2以上の所定数の階層組に分割し、低階層側の階層組のピクチャの符号化画像データをコンテナするパケットの優先度ほど高く設定することで、受信側において優先度をもとに自身のデコード能力に応じた階層組のピクチャの符号化画像データのみをバッファに取り込み、バッファ破綻を回避可能にしたことである(図19参照)。