本発明の理解と説明の便宜のために、用語及び略語について下記の通り定義する。
HEVC(High Efficiency Video Coding)は、既存H.265/AVC技術に比べて約2倍も高い圧縮率を有しながら同一のビデオ品質を提供する高効率ビデオコーディング標準である。
テンポラルスケーラビリティ(temporal scalability)は、時間的スケーラビリティを意味し、同一の空間解像度でフレーム周波数が異なるものを符号化する方法を意味する。
トリックプレイ(trick play)は、一定時間後の映像をプレイできるランダムアクセスが可能であり、倍速機能を提供する機能を意味する。
オープンGOP(Open GOP)は、一つのGOP内のピクチャをエンコーディングするとき、該当するGOP以前に位置しているピクチャを参照ピクチャとして用いてエンコーディングできる構造を意味する。すなわち、リーディングピクチャ(leading picture)を含むGOPを意味する。
クローズドGOP(Closed GOP)は、一つのGOP内のピクチャをエンコーディングするとき、該当するGOP内のピクチャのみを参照ピクチャとして用いる構造を意味する。すなわち、オープンGOPとは違い、リーディングピクチャを含まない。
リーディングピクチャ(leading picture)は、HEVCでIRAP(Intra Random Access Point)に比べてデコーティング順序は遅いが、再生順序は早いピクチャを意味する。
テンポラルidは、HEVCでテンポラルスケーラビリティをサポートするために導入された用語で、NAL_unit_headerのnuh_temporal_id_plus1によってシグナリングできる。
ティア(tier)は、AVCストリーム又はmpeg−2ストリームでトリックプレイをサポートするために導入された用語である。ティアは、TSパケット(TS packet)内のアダプテーションフィールド(adaptation field)に含むことができる。
図1は、本発明の一実施例に係るトリックプレイ方法をシナリオによって示す図である。
本発明の一実施例によれば、HEVCのテンポラルスケーラビリティ使用の有無によってトリックプレイのためのシグナリング方法を定義することができる。
本発明の一実施例に係るビデオストリームがテンポラルスケーラビリティを提供しないストリームである場合、すなわち、ビデオストリームが、temporal_idが0であるピクチャのみを含む場合において、クローズドGOPであれば、ビデオストリームがリーディングピクチャを含まないため、CFFメディアファイルフォーマットに定義されたdependency_level及びpic_typeをシグナリングすることで、トリックプレイを提供できる(シナリオ1−1)。一方、オープンGOPであれば、pic_typeにリーディングピクチャタイプを含ませ、dependency_levelをシグナリングすることで、トリックプレイを提供できる(シナリオ1−2)。
本発明の一実施例に係るビデオストリームがテンポラルスケーラビリティベースのストリームである場合、すなわち、ビデオストリームが、temporal_idが0よりも大きいピクチャを含む場合、dependency_level、pic_type及びtemporal_sub_layer_pic_typeをシグナリングすることで、トリックプレイを提供できる。より具体的に、ストリームに含まれたtemporal_idを用いてサポート可能な倍速レベルをシグナリングすることで、トリックプレイを提供できる(シナリオ2)。また、シナリオ2と同様に、temporal_idを用いてサポート可能な倍速レベルをシグナリングし、さらにtemporal_idが0であるピクチャを用いることで、倍速のための追加サービスを提供できる(シナリオ3)。
同図に表示されたボックスは、ビデオストリームを構成するピクチャを示し、ボックス中に記述されたT_IDは、テンポラルスケーラビリティをサポートするためのtemporal_idを意味できる。
図2は、本発明の一実施例に係るHEVCベースのストリームをサポートするためのCFF(Common File Format)ボックス構造を示す図である。
同図で“NL0”、“NL1”及び“NL2”は、CFFボックスの包含関係を表し、“Format Req.”は、当該ボックスの存在有無及び個数を表し、“Specification”は、当該ボックスが定義されている規格書の部分を表し、“Description”は、当該ボックスの説明を表すことができる。“Format Req.”が“+”なら、当該ボックスが一つ以上存在するということを意味し、“0/1”なら、当該ボックスが存在するか存在しないかを意味し、“1”なら、当該ボックスが存在することを意味し、“0”なら、当該ボックスが存在しないことを意味できる。
同図は、本発明の一実施例に係るCFFボックス構造であって、既存のCFFにHEVCのための新しいトリックプレイボックスを追加したものである。また、本発明の一実施例に係るCFFボックス構造は、HEVCベースの nalユニット(nal unit)をサポートするために“hvcn”と略称されるストレージボックス(storage box)を含むことができる。
図3は、本発明の一実施例に係る“hvcn”ボックスのシンタックスを示す図である。
本発明の一実施例によれば、CFFボックス構造(CFF box structure)は、“hvcn”と略称されるnalユニットストレージボックス(nal unit storage box)を含むことができる。
本発明の一実施例によれば、トリックプレイのためにコーデック別にnalユニットストレージボックスを定義できる。
本発明の一実施例によれば、トリックプレイのためにコーデック別にnalユニットストレージボックスを定義せず、既存の“trick”ボックスの内部に既存のAVCトリックボックス(AVC trick box)と別にHEVCトリックボックスを定義できる。また、“trick”ボックスのフラグによってAVC又はHEVCトリックプレイ(HEVC trick play)が選択されうる。
同図で、HEVCConfigは、HEVCのSPS(Sequence Parameter Set)及びPPS(Picture Parameter Set)を含むことができ、SPSのVUIパラメータなどのビデオ情報を含むことができる。
図4は、本発明の一実施例に係るCommon_Metadataに含まれたHDR(High Dynamic Range)をサポートするエレメントを示す図である。
本発明の一実施例に係るxmlボックスで参照しているCommon_MetadataはHighDynamicRangeエレメントを含むことができる。
本発明の一実施例に係るHighDynamicRangeエレメントはxmlスキーマによって文字列値を有することができ、HighDynamicRangeエレメントは1個存在してもよく、存在しなくてもよい。
本発明の一実施例に係るHighDynamicRangeエレメントは、最小及び/又は最大明るさ値(min.luminance and/or max.luminance)を示すことができる。
本発明の一実施例に係るHighDynamicRangeエレメントは、最小及び/又は最大明るさ値で区別されるprofile値を示すことができる。例えば、HighDynamicRangeエレメントは、Conventional capacity(min:0.1cd/m2、max:100cd/m2)、Mid capacity(min:0.001cd/m2、max:1000cd/m2)、又はHigh capacity(min:0.0001cd/m2、max:10000cd/m2)を示すことができる。
図5は、本発明の一実施例に係るHEVCストリームの場合、ランダムアクセスのためのピクチャタイプを示す図である。
同図は、HEVC Nalユニットタイプ(HEVC Nal unit type)のうち、ランダムアクセス及びトリックプレイの実行のために基本となり得るピクチャの種類を示す図である。
同図で、陰影で表示されたピクチャタイプ(TSA、STSA)は、テンポラルid(temporal ID)が0よりも大きいストリームが含まれる場合、すなわち、テンポラルスケーラビリティが提供される場合に、トリックプレイのために使用可能なHEVCテンポラルサブレイヤピクチャタイプ(HEVC temporal sub−layer picture type)を示すことができる。上述の陰影で表示されたピクチャタイプは、本発明の一実施例に係るシナリオ2及び3で用いることができる。
本発明の一実施例によれば、ランダムアクセスポイントピクチャ(random access point pictures)は、IDR(Instantaneous Decoding Refresh)、BLA(Broken Link Access)及び/又はCRA(Clean Random Access)を含むことができ、リーディングピクチャは、RADL(Random Access Decodable Leading Picture)及び/又はRASL(Random Access Skipped Leading Picture)を含むことができ、テンポラルサブレイヤアクセスピクチャ(temporal sub−layer access pictures)は、TSA(Temporal Sub−layer Access)及び/又はSTSA(Step−wise Temporal Sub−layer Access)を含むことができる。
IDR(Instantaneous Decoding Refresh)ピクチャは、関連したリーディングピクチャを有する場合及び/又は関連したリーディングピクチャを有しない場合を含むことができる。
BLA(Broken Link Access)ピクチャは、関連したRADLピクチャは有するが、関連したRASLピクチャは有しない場合及び/又は関連したリーディングピクチャを有しない場合を含むことができる。
CRA(Clean Random Access)ピクチャは、関連したリーディングピクチャを有する場合を含むことができる。
TSA(Temporal Sub−layer Access)ピクチャは、同一のsub−layerで参照されない場合及び/又は同一のsub−layerで参照される場合を含むことができる。
STSA(Step−wise Temporal Sub−layer Access)ピクチャは、同一のsub−layerで参照されない場合及び/又は同一のsub−layerで参照される場合を含むことができる。
図6は、本発明の一実施例によって、クローズドGOPである場合にトリックプレイの方法を示す図である。(シナリオ1−1)
同図は、ビデオストリーム内の最大temporal_id値が0であり、クローズドGOPである場合に、トリックプレイを行う方法を示す図である。ここで、GOPは、Group Of Pictureの略称で、ランダムアクセスを可能にするための符号化されたピクチャの集合を意味する。ここで、クローズドGOPは、リーディングピクチャを含まないGOPを意味し、オープンGOPはリーディングピクチャを含むGOPを意味できる。ここで、リーディングピクチャとは、HEVCでIRAP(Intra Random Access Point、AVコーデックスでランダムアクセスポイントと同じ概念)に比べてデコーティング順序は遅いが、ディスプレイ順序は早いピクチャを意味できる。
同図で、一つの四角ボックスは一つのピクチャを表すことができる。ここで、ピクチャは、フレーム及び/又は画像と同じ意味で使われてもよい。
同図で、I1からP9までのピクチャ集合は、一つのGOPを表すことができる。ここで、Iピクチャは、MPEG符号化信号で使われる3種類のピクチャ形式の一つで、一つの完全なピクチャを構成するための全てのデータを含むことができる。すなわち、Iピクチャは、他のピクチャを参照しなくて済む。Pピクチャは、現在のピクチャと再生順序上その前のピクチャとの差異を観察して作られた予測情報と実際情報との差値のみを含むことができる。すなわち、Pピクチャは、再生順序上現在のピクチャの前に存在するピクチャを参照することができる。Bピクチャは、現在のピクチャ、再生順序上現在のピクチャの前に存在するピクチャ、及び現在のピクチャの後に存在するピクチャ間の差異を観察して作られた予測情報のみを含むことができる。すなわち、Bピクチャは、現在のピクチャの前及び後に存在するピクチャを参照できる。同図で、矢印はピクチャ間の参照関係を示すことができる。例えば、B3ピクチャは、完全な画像を作るために、I1ピクチャ及びB5ピクチャを参照でき、P9ピクチャはI1ピクチャを参照できる。
同図で、四角中の数字は、各ピクチャのdependency_levelを示すことができる。例えば、一番目のピクチャは、dependency_levelが1であるピクチャを表し、二番目のピクチャは、dependency_levelが5であるピクチャを表し、三番目のピクチャは、dependency_levelが4であるピクチャを表すことができる。
本発明の一実施例によれば、2倍速トリックプレイは、dependency_level値として1乃至4を有するピクチャをデコーティングすることによって行うことができる。4倍速トリックプレイは、dependency_level値として1乃至3を有するピクチャをデコーティングすることによって行うことができる。8倍速トリックプレイは、dependency_level値として1乃至2を有するピクチャをデコーティングすることによって行うことができる。16倍速トリックプレイは、dependency_level値として1を有するピクチャをデコーティングすることによって行うことができる。
図7は、本発明の一実施例によって、オープンGOPであり、GOPがデコーディング可能リーディングピクチャを含む場合に、トリックプレイの方法を示す図である。(シナリオ1−2)
一番目の図は、ビデオストリームをなすピクチャのデコーティング順序を示すものであり、二番目の図は、正常倍速時にビデオストリームをなすピクチャのディスプレイ順序を示すものであり、三番目の図は、2倍速トリックプレイ時にビデオストリームをなすピクチャのディスプレイ順序を示すものである。
二番目の図で、表示されたB0からB6までのピクチャはデコーディング可能リーディングピクチャを表すことができる。
同図で、GOPに含まれたリーディングピクチャは、デコーディング可能リーディングピクチャであるため、二番目の図に示すように、矢印部分からディスプレイでき、三番目の図に示すようにトリックプレイを行うことができる。ここで、2倍速トリックプレイが行われる場合、各ピクチャのdependency_levelによって、図面に表示された通り、B1、B3、B5、RAP及びB1ピクチャがディスプレイされうる。ここで、デコーディング可能リーディングピクチャは、RADL(Random Access Decodable leading Picture)を含むことができる。
図8は、本発明の一実施例によって、オープンGOPであり、GOPがデコーディング可能リーディングピクチャ(decodable leading picture)及びスキップ可能リーディングピクチャを含む場合にトリックプレイの方法を示す図である。(シナリオ1−2)
一番目の図は、ビデオストリームをなすピクチャのデコーティング順序を示すものであり、二番目の図は、正常倍速時にビデオストリームをなすピクチャのディスプレイ順序を示すものであり、三番目の図は、2倍速トリックプレイ時にビデオストリームをなすピクチャのディスプレイ順序を示すものである。
二番目及び三番目の図で、表示されたB0からB2までのピクチャがスキップ可能リーディングピクチャを表すことができ、表示されたB3からB6までのピクチャがデコーディング可能リーディングピクチャを表すことができる。
同図で、スキップ可能リーディングピクチャはディスプレイされず、トリックプレイができない。したがって、二番目の図に示すように、B3ピクチャからディスプレイ可能であり、三番目の図に示すように、B3ピクチャからトリックプレイが可能である。ここで、2倍速トリックプレイが行われる場合、各ピクチャのdependency_levelによって、図面に表示された通り、B3、B5、RAP及びB1ピクチャがディスプレイされうる。ここで、デコーディング可能リーディングピクチャは、RADLを含むことができ、スキップ可能リーディングピクチャは、RASL(Random Access Skipped Leading Picture)を含むことができる。
図9は、本発明の一実施例によって、オープンGOPであり、GOPがスキップ可能リーディングピクチャを含む場合にトリックプレイの方法を示す図である。(シナリオ1−2)
一番目の図は、ビデオストリームをなすピクチャのデコーティング順序を示すものであり、二番目の図は、正常倍速時にビデオストリームをなすピクチャのディスプレイ順序を示すものであり、三番目の図は、2倍速トリックプレイ時にビデオストリームをなすピクチャのディスプレイ順序を示すものである。
二番目及び三番目の図で、表示されたB0からB6までのピクチャがスキップ可能リーディングピクチャを表すことができる。
同図で、スキップ可能リーディングピクチャはディスプレイされず、トリックプレイができない。したがって、二番目の図で、RAPからディスプレイでき、2倍速トリックプレイが行われる場合、三番目の図に示すように、RAP及びB1ピクチャがディスプレイされうる。ここで、スキップ可能リーディングピクチャは、RASLを含むことができる。
図10は、本発明の一実施例によってmax_temporal_idが0であるHEVCストリームのトリックプレイをサポートするためのトリックプレイボックスの構成を示す図である。(シナリオ1−2)
同図は、ストリーム内の最大temporal_idが0であるストリームをトリックプレイするためにトリックプレイボックスのシグナリング方法を示す図である。
本発明の一実施例によれば、“trikhvc”という新しいボックスを定義できる。本発明の一実施例に係るtrikhvcボックスは、sample_count値だけ反復されるforループ内に、pic_typeフィールド及び/又はdependency_levelフィールドを含むことができる。
sample_countは、ストリームに含まれたピクチャの総個数を意味できる。ここで、一つのサンプルは一つのピクチャを意味できる。
pic_typeフィールドは、HEVCのNAL_unit_typeで定義されたピクチャの種類を示すことができる。トリックプレイに利用可能な一部のNAL_unit_typeは、本発明の一実施例に係るpic_typeで選択して用いることができる。pic_typeフィールドは4ビットの値を示すことができる。
dependency_levelフィールドは、当該ピクチャのディペンデンシレベルを示すことができる。本発明の一実施例に係るdependency_levelは、トリックプレイを行う場合に用いることができる。dependency_levelフィールドは、既存AVCのトリックプレイボックスで用いられていたdependency_levelフィールドと同一であってもよい。例えば、dependency_levelが3であるサンプルを含めてトリックプレイを行うということは、dependency_levelが1、2又は3に該当するサンプルのみをデコーティングしてディスプレイするということを意味できる。したがって、dependency_levelは、トリックプレイを行う際に捨ててもよいレイヤのレベルを意味できる。リーディングピクチャが存在する場合にもデコーディング可能リーディングピクチャはdependency_levelを有し、受信側は、既存のトリックプレイ方法と同様に、該当しないピクチャをスキップしながら該当するピクチャのみをデコーティングしてディスプレイすることができる。dependency_levelフィールドは6ビットの値を示すことができる。
図11は、本発明の他の実施例によって、max_temporal_idが0であるHEVCストリームのトリックプレイをサポートするためのトリックプレイボックスの構成を示す図である。(シナリオ1−2)
同図は、ストリーム内の最大temporal_idが0であるストリームをトリックプレイするためにトリックプレイボックスのシグナリング方法を示す図である。
本発明の一実施例によれば、既に定義された“trik”というボックスを用いてHEVCストリームのトリックプレイを行うことができる。本発明の一実施例によれば、フラグを用いてAVC又はHEVCトリックプレイを選択することができる。
本発明の一実施例に係るtrikボックスは、フラグを用いてビデオコーデック(video codec)に合わせてストリームを分離してシグナリングできる。また、sample_count値だけ反復されるforループ内に、pic_typeフィールド及び/又はdependency_levelフィールドを含むことができる。
本発明の一実施例に係るフラグ値が0である場合、trikボックスは、H.264/AVC trick playをシグナリングでき、フラグ値が1である場合、trikボックスは、HEVCトリックプレイをシグナリングできる。
sample_countは、ストリームに含まれたピクチャの総個数を意味できる。ここで、一つのサンプルは一つのピクチャを意味できる。
pic_typeフィールドは、HEVCのNAL_unit_typeで定義されたピクチャの種類を示すことができる。トリックプレイに利用可能な一部のNAL_unit_typeは、本発明の一実施例に係るpic_typeで選択して用いることができる。本発明の一実施例に係るフラグ値が0の場合、pic_typeフィールドは2ビットの値を示すことができ、フラグ値が1の場合、4ビットの値を示すことができる。
dependency_levelフィールドは、当該ピクチャのディペンデンシレベルを示すことができる。本発明の一実施例に係るdependency_levelは、トリックプレイを行う場合に用いることができる。dependency_levelフィールドは、既存AVCのトリックプレイボックスで用いられたdependency_levelフィールドと同一であってもよい。例えば、dependency_levelが3であるサンプルを含めてトリックプレイを行うということは、dependency_levelが1、2又は3に該当するサンプルのみをデコーティングしてディスプレイするということを意味できる。したがって、dependency_levelはトリックプレイを行う際に捨ててもよいレイヤのレベルを意味できる。リーディングピクチャが存在する場合にもデコーディング可能リーディングピクチャはdependency_levelを有し、受信側は、既存のトリックプレイ方法と同様に、該当しないピクチャをスキップしながら該当するピクチャのみをデコーティングしてディスプレイできる。dependency_levelフィールドは6ビットの値を示すことができる。
図12は、本発明の一実施例によってmax_temporal_idが0であるHEVCストリームのトリックプレイをサポートするためのトリックプレイボックスに含まれたpic_typeを説明するための図である。
本発明の一実施例に係るpic_typeは、0乃至15の値を有することができる。
pic_typeが0である場合、pic_typeは、関連したリーディングピクチャを有しないIDRピクチャを表すことができる。この場合、nal_unit_typeはIDR_N_LPを示すことができる。
pic_typeが1の場合、pic_typeは、関連したデコーディング可能リーディングピクチャを有するIDRピクチャを表すことができる。この場合、nal_unit_typeはIDR_W_RADLを示すことができる。
pic_typeが2の場合、pic_typeは、関連したリーディングピクチャを有するBLAピクチャを表すことができる。この場合、nal_unit_typeはBLA_N_LPを示すことができる。
pic_typeが3の場合、pic_typeは、関連したRADLピクチャを有するが、関連したRASLピクチャを有しないBLAピクチャを表すことができる。この場合、nal_unit_typeはBLA_W_RADLを示すことができる。
pic_typeが4の場合、pic_typeは、関連したRADLピクチャ及びRASLピクチャを有するBLAピクチャを表すことができる。この場合、nal_unit_typeはBLA_W_LPを示すことができる。
pic_typeが5の場合、pic_typeは、関連したリーディングピクチャを有するCRAピクチャを表すことができる。この場合、nal_unit_typeはCRA_NUTを示すことができる。
pic_typeが7の場合、pic_typeは、RADLピクチャを表すことができる。この場合、nal_unit_typeはRADL_N又はRADL_Rを示すことができる。
pic_typeが8の場合、pic_typeは、RASLピクチャを表すことができる。この場合、nal_unit_typeはRASL_N又はRASL_Rを示すことができる。
pic_typeが9の場合、pic_typeは、定められていないIピクチャを表すことができる。
pic_type10は、unknown値に該当できる。
pic_type11乃至15は、reserved値に該当できる。
図13は、本発明の一実施例によって、pic_typeに、リーディングピクチャと関連している内容が含まれていない場合、max_temporal_idが0であるHEVCストリームのトリックプレイをサポートするためのトリックプレイボックスの構成を示す図である。(シナリオ1−1)
同図は、ストリーム内の最大temporal_idが0であるストリームをトリックプレイするためにトリックプレイボックスのシグナリング方法を示す図である。
本発明の一実施例によれば、“trikhvc”という新しいボックスが定義できる。本発明の一実施例に係るtrikhvcボックスは、sample_count値だけ反復されるforループ内に、pic_typeフィールド及び/又はdependency_levelフィールドを含むことができる。
sample_countは、ストリームに含まれたピクチャの総個数を意味できる。ここで、一つのサンプルは一つのピクチャを意味できる。
pic_typeフィールドは、HEVCのNAL_unit_typeで定義されたピクチャの種類を示すことができる。トリックプレイに利用可能な一部のNAL_unit_typeは、本発明の一実施例に係るpic_typeで選択して用いることができる。pic_typeフィールドは3ビットの値を示すことができる。
dependency_levelフィールドは、当該ピクチャのディペンデンシレベルを示すことができる。本発明の一実施例に係るdependency_levelは、トリックプレイを行う場合に用いることができる。dependency_levelフィールドは、既存AVCのトリックプレイボックスで用いられたdependency_levelフィールドと同一であってもよい。例えば、dependency_levelが3であるサンプルを含めてトリックプレイを行うということは、dependency_levelが1、2又は3に該当するサンプルのみをデコーティングしてディスプレイするということを意味できる。したがって、dependency_levelは、トリックプレイを行う際に捨ててもよいレイヤのレベルを意味できる。リーディングピクチャが存在する場合にもデコーディング可能リーディングピクチャはdependency_levelを有し、受信側は、既存のトリックプレイ方法と同様に、該当しないピクチャをスキップしながら該当するピクチャのみをデコーティングしてディスプレイできる。dependency_levelフィールドは5ビットの値を示すことができる。
図14は、本発明の他の実施例によってpic_typeにリーディングピクチャと関連している内容が含まれていない場合、max_temporal_idが0であるHEVCストリームのトリックプレイをサポートするためのトリックプレイボックスの構成を示す図である。(シナリオ1−1)
同図は、ストリーム内の最大temporal_idが0であるストリームをトリックプレイするためにトリックプレイボックスのシグナリング方法を示す図である。
本発明の一実施例によれば、既に定義された“trik”というボックスを用いてHEVCストリームのトリックプレイを行うことができる。本発明の一実施例によれば、フラグを用いてAVC又はHEVCトリックプレイを選択することができる。
本発明の一実施例に係るtrikボックスは、falg、sample_count値だけ反復されるforループ内に、pic_typeフィールド及び/又はdependency_levelフィールドを含むことができる。
本発明の一実施例に係るフラグ値が0の場合、trikボックスはH.264/AVC trick playをシグナリングでき、フラグ値が1の場合、trikボックスはHEVCトリックプレイをシグナリングできる。
sample_countは、ストリームに含まれたピクチャの総個数を意味できる。ここで、一つのサンプルは一つのピクチャを意味できる。
pic_typeフィールドは、HEVCのNAL_unit_typeで定義されたピクチャの種類を示すことができる。トリックプレイに利用可能な一部のNAL_unit_typeは、本発明の一実施例に係るpic_typeで選択して用いることができる。本発明の一実施例に係るフラグ値が0である場合、pic_typeフィールドは2ビットの値を示すことができ、フラグ値が1である場合、3ビットの値を示すことができる。
dependency_levelフィールドは、当該ピクチャのディペンデンシレベルを示すことができる。本発明の一実施例に係るdependency_levelは、トリックプレイを行う場合に用いることができる。dependency_levelフィールドは、既存AVCのトリックプレイボックスで用いられたdependency_levelフィールドと同一であってもよい。例えば、dependency_levelが3であるサンプルを含めてトリックプレイを行うということは、dependency_levelが1、2又は3に該当するサンプルのみをデコーティングしてディスプレイするということを意味できる。したがって、dependency_levelは、トリックプレイを行う際に捨ててもよいレイヤのレベルを意味できる。リーディングピクチャが存在する場合にもデコーディング可能リーディングピクチャはdependency_levelを有し、受信側は、既存のトリックプレイ方法と同様に、該当しないピクチャをスキップしながら該当するピクチャのみをデコーティングしてディスプレイできる。本発明の一実施例に係るフラグ値が0である場合、dependency_levelフィールドは6ビットの値を示すことができ、フラグ値が1の場合、5ビットの値を示すことができる。
本発明のさらに他の実施例によれば、トリックプレイを行う際、リーディングピクチャはディスプレイされないという制約が含まれる場合、pic_typeは下記のように構成されてもよい。pic_typeが0の場合、pic_typeは、当該サンプルがunknownサンプルであることを示すことができ、pic_typeが1の場合、pic_typeは、当該サンプルがIDRサンプルであることを示すことができ、pic_typeが2の場合、pic_typeは、当該サンプルがCRAサンプルであることを示すことができ、pic_typeが3の場合、pic_typeは、当該サンプルがBLAサンプルであることを示すことができ、pic_typeが4の場合、pic_typeは、当該サンプルがunconstrained Iサンプルであることを示すことができる。この場合、HEVCストリームに対するpic_type及び/又はdependency_levelフィールドに割り当てられるビット数を減らすことができる。ここで、サンプルはピクチャと同じ意味を有することができる。
図15は、本発明の一実施例に係るテンポラルスケーラビリティをサポートするHEVCストリームの構成を示す図である。
同図で、四角ボックスは、ストリームに含まれるピクチャを表すことができ、T_IDはテンポラルidを表すことができる。
図16は、本発明の一実施例によってテンポラルスケーラビリティをサポートするHEVCストリームで最大倍速を制限してトリックプレイをサポートするためのトリックプレイボックスの構成を示す図である。(シナリオ2)
同図は、max_temporal_idが0よりも大きい、すなわち、テンポラルスケーラビリティをサポートするHEVCストリームでトリックプレイをサポートするために、最大サポート可能な倍速を制限できるようにシグナリングする方法を示す図である。例えば、最大temporal_idが2の場合、最大4倍速まで提供することができる。
本発明の一実施例によれば、“trikhvc”という新しいボックスが定義できる。本発明の一実施例に係るtrikhvcボックスは、sample_count値だけ反復されるforループ内に、pic_typeフィールド、temporal_sub_layer_pic_typeフィールド、max_temporal_idフィールド、temporal_idフィールド、constraint_trick_play_modeフィールド及び/又はnext_temporal_idフィールドを含むことができる。
sample_countは、ストリームに含まれたピクチャの総個数を意味できる。ここで、一つのサンプルは一つのピクチャを意味できる。
pic_typeフィールドは、HEVCのNAL_unit_typeで定義されたピクチャの種類を示すことができる。トリックプレイに利用可能な一部のNAL_unit_typeは、本発明の一実施例に係るpic_typeで選択して用いることができる。pic_typeフィールドは4ビットの値を示すことができる。
temporal_sub_layer_pic_typeフィールドは、当該ピクチャがTSA(Temporal Sub−layer Access)ピクチャかSTSA(Step−wise Temporal Sub−layer Access)ピクチャかを示すことができる。temporal_sub_layer_pic_typeが1であれば、temporal_sub_layer_pic_typeは、当該ピクチャがTSAピクチャであることを示すことができ、temporal_sub_layer_pic_typeが2であれば、temporal_sub_layer_pic_typeは、当該ピクチャがSTSAピクチャであることを示すことができ、temporal_sub_layer_pic_typeが3であれば、temporal_sub_layer_pic_typeは、当該ピクチャがunknownピクチャであることを示すことができる。HEVCは、テンポラルスケーラビリティを提供し、適応的にフレームレートを変更できるように、temporal_sub_layer_access_pictureを区別できる。すなわち、HEVCは、temporal_idが0でないレイヤでTSAピクチャ及びSTSAピクチャに基づいてダイナミックにフレームレートを変更させることができる。TSAとSTSAは、フレームレートをどのように及びどれくらい変更できるかについては差異がありうる。すなわち、TSAとSTSAは、一度にいくつのtemporal_idをスキップできるかについて差異がありうる。例えば、temporal_idが0の場合、フレームレートは15pであり、temporal_idが1の場合、フレームレートは30pであり、temporal_idが2の場合に、(max_temporal_id)フレームレートは60pであると、TSAは、temporal_idが0であるレイヤからtemporal_idが2であるレイヤに直接アプローチできるため、放送システムは、フレームレートが15pであるサービスを提供する途中で、直接、60pであるサービスを提供するように変更できる。一方、STSAは、段階的アプローチしかできないため、temporal_idが0であるレイヤからtemporal_idが1であるレイヤにまずアプローチし、次にtemporal_idが2であるレイヤにアプローチすることができる。したがって、この場合、放送システムは、順次に、フレームレートが15pであるサービスを提供する途中で30pであるサービスを提供し、最終的に60pであるサービスを提供することができる。
max_temporal_idフィールドは、ストリームに含まれた最大temporal_id値を示すことができる。
temporal_idフィールドは、HEVCのnuh_temporal_id_plus1値を用いて計算されたテンポラルid値を示すことができる。temporal_idフィールドが有する値は、nuh_temporal_id_plus1値から1を引いた値を示すことができる。
constraint_trick_play_modeフィールドは、提供可能な最大倍速情報を示すことができる。max_temporal_id値を用いて、max_trick_play_mode(提供可能な最大倍速)=2^(max_temporal_id)という式から、本発明は提供可能な最大倍速をシグナリングすることができる。例えば、最大テンポラルidが2である場合、本発明は、最大、2^2である4倍速を提供できる。本発明の一実施例によれば、本発明は、max_trick_play_modeを上述の式から計算された値よりも小さい値として割り当てる制限をおくことができる。例えば、max_trick_play_modeの値が1なら2倍速、2なら4倍速、3なら8倍速、4なら16倍速を示すことができる。ここで、constraint_trick_play_modeは、max_trick_play_modeと同じ意味を有することができる。本発明の一実施例にはmax_trick_play_modeよりも速い倍速はサポートできず、max_trick_play_modeと同じ倍速数はサポートできる。また、本発明の一実施例は、計算されたmax_trick_play_mode値よりも小さい値として割り当てる制限(constraint)をシグナリングすることができる。
next_temporal_idフィールドは、temporal_sub_layer_pic_typeによって変更可能な最大フレームレートを知らせるために、移動可能なtemporal_idを示すことができる。例えば、max_temporal_idが2であるストリームで、temporal_idが0であるピクチャのみをディスプレイする4倍速のトリックプレイを提供していたが、正常倍速(1倍速)に戻そうとするとき、temporal_sub_layer_pic_typeがTSAであれば、next_temporal_idはmax_temporal_id値を有することができる。一方、STSAであれば、next_temporal_idは、temporal_id値に1を足した値を有することができる。
図17は、本発明の他の実施例によってテンポラルスケーラビリティをサポートするHEVCストリームで最大倍速を制限してトリックプレイをサポートするためのトリックプレイボックスの構成を示す図である。(シナリオ2)
同図は、max_temporal_idが0よりも大きい、すなわち、テンポラルスケーラビリティをサポートするHEVCストリームにおいてトリックプレイをサポートするために最大サポート可能な倍速を制限できるようにシグナリングする方法を示す図である。例えば、最大temporal_idが2の場合、最大4倍速まで提供できる。
本発明の一実施例によれば、既に定義された“trik”というボックスを用いてHEVCストリームのトリックプレイを行うことができる。本発明の一実施例によれば、フラグを用いてAVC又はHEVCトリックプレイを選択することができる。
本発明の一実施例に係るtrikボックスは、flag、sample_count値だけ反復されるforループ内に、pic_typeフィールド、dependency_levelフィールド、temporal_sub_layer_pic_typeフィールド、max_temporal_idフィールド、temporal_idフィールド、constraint_trick_play_modeフィールド及び/又はnext_temporal_idフィールドを含むことができる。
sample_countは、ストリームに含まれたピクチャの総個数を意味できる。ここで、一つのサンプルは一つのピクチャを意味できる。
pic_typeフィールドは、HEVCのNAL_unit_typeで定義されたピクチャの種類を示すことができる。トリックプレイに利用可能な一部のNAL_unit_typeは、本発明の一実施例に係るpic_typeで選択して用いることができる。本発明の一実施例に係るフラグ値が0の場合、pic_typeフィールドは2ビットの値を示すことができ、フラグ値が1の場合、4ビットの値を示すことができる。
dependency_levelフィールドは、当該ピクチャのディペンデンシレベルを示すことができる。本発明の一実施例に係るdependency_levelは、トリックプレイを行う場合に用いることができる。dependency_levelフィールドは、既存AVCのトリックプレイボックスで用いられたdependency_levelフィールドと同一であってもよい。例えば、dependency_levelが3であるサンプルを含めてトリックプレイを行うということは、dependency_levelが1、2又は3に該当するサンプルのみをデコーティングしてディスプレイするということを意味できる。したがって、dependency_levelは、トリックプレイを行う際に捨ててもよいレイヤのレベルを意味できる。リーディングピクチャが存在する場合にもデコーディング可能リーディングピクチャはdependency_levelを有し、受信側は、既存のトリックプレイ方法と同様に、該当しないピクチャをスキップしながら該当するピクチャのみをデコーティングしてディスプレイできる。dependency_levelフィールドは6ビットの値を示すことができる。
temporal_sub_layer_pic_typeフィールドは、当該ピクチャがTSA(Temporal Sub−layer Access)ピクチャかSTSA(Step−wise Temporal Sub−layer Access)ピクチャかを示すことができる。temporal_sub_layer_pic_typeが1であれば、temporal_sub_layer_pic_typeは、当該ピクチャがTSAピクチャであることを示すことができ、temporal_sub_layer_pic_typeが2であれば、temporal_sub_layer_pic_typeは、当該ピクチャがSTSAピクチャであることを示すことができ、temporal_sub_layer_pic_typeが3であれば、temporal_sub_layer_pic_typeは、当該ピクチャがunknownピクチャであることを示すことができる。HEVCは、テンポラルスケーラビリティを提供し、適応的にフレームレートを変更できるように、temporal_sub_layer_access_pictureを区別することができる。すなわち、HEVCは、temporal_idが0でないレイヤにおいてTSAピクチャ及びSTSAピクチャに基づいてダイナミックにフレームレートを変更させることができる。TSAとSTSAはフレームレートをどのように及びどれくらい変更できるかについて差異がありうる。すなわち、TSAとSTSAは、一度にいくつのtempora_idをスキップできるかについて差異がありうる。例えば、temporal_idが0の場合にフレームレートは15pで、temporal_idが1の場合にフレームレートは30pで、temporal_idが2の場合に(max_temporal_id)フレームレートは60pであると、TSAは、temporal_idが0であるレイヤからtemporal_idが2であるレイヤに直接アプローチできるため、放送システムは、フレームレートが15pであるサービスを提供する途中で、直接、60pであるサービスを提供するように変更することができる。一方、STSAは段階的アプローチしかできないため、temporal_idが0であるレイヤからtemporal_idが1であるレイヤにまずアプローチし、次にtemporal_idが2であるレイヤにアプローチできる。したがって、この場合、放送システムは、順次に、フレームレートが15pであるサービスを提供する途中で30pであるサービスを提供し、最終的に60pであるサービスを提供することができる。
max_temporal_idフィールドは、ストリームに含まれた最大temporal_id値を示すことができる。
temporal_idフィールドは、HEVCのnuh_temporal_id_plus1値を用いて計算されたテンポラルid値を示すことができる。temporal_idフィールドが有する値は、nuh_temporal_id_plus1値から1を引いた値を示すことができる。
constraint_trick_play_modeフィールドは、提供可能な最大倍速情報を示すことができる。max_temporal_id値を用いて、max_trick_play_mode(提供可能な最大倍速)=2^(max_temporal_id)という式から、本発明は、提供可能な最大倍速をシグナリングすることができる。例えば、最大テンポラルidが2の場合、本発明は、最大、2^2である4倍速を提供することができる。本発明の一実施例によれば、本発明は、max_trick_play_modeを上述の式から計算された値よりも小さい値として割り当てる制限をおくことができる。例えば、max_trick_play_modeの値が1なら2倍速、2なら4倍速、3なら8倍速、4なら16倍速を示すことができる。ここで、constraint_trick_play_modeは、max_trick_play_modeと同じ意味を有することができる。
next_temporal_idフィールドは、temporal_sub_layer_pic_typeによって変更可能な最大フレームレートを知らせるために、移動可能なtemporal_idを示すことができる。例えば、max_temporal_idが2であるストリームにおいて、temporal_idが0であるピクチャのみをディスプレイする4倍速のトリックプレイを提供していたが、正常倍速(1倍速)に戻そうとするとき、temporal_sub_layer_pic_typeがTSAであれば、next_temporal_idは、max_temporal_id値を有することができる。一方、STSAであれば、next_temporal_idは、temporal_id値に1を足した値を有することができる。
図18は、本発明の一実施例に係るテンポラルサブレイヤピクチャタイプがTSAである場合にフレームレートの変更方法を示す図である。
同図に示すように、テンポラルサブレイヤピクチャタイプがTSAである場合、受信側は、temporal_idが0であるレイヤのストリームのみをディスプレイしていたが、すなわち、4倍速でトリックプレイを行っていたが、直接1倍速(正常倍速)でディスプレイすることができる。
同図に示すように、テンポラルサブレイヤピクチャタイプがTSAである場合、受信側は、temporal_idが0であるピクチャをデコーティング及びディスプレイしていたが、直接、temporal_idが2であるピクチャをデコーティング及びディスプレイすることができる。
図19は、本発明の一実施例に係るテンポラルサブレイヤピクチャタイプがSTSAである場合にフレームレートの変更方法を示す図である。(シナリオ3)
同図に示すように、テンポラルサブレイヤピクチャタイプがSTSAである場合、受信側は、temporal_idが0であるレイヤのストリームのみをディスプレイする途中で、すなわち、4倍速でトリックプレイを行う途中で、直接1倍速(正常倍速)でディスプレイすることばできず、中間に2倍速でディスプレイする過程を経た後、1倍速でディスプレイすることができる。したがって、本発明の一実施例に係るテンポラルサブレイヤピクチャタイプがSTSAである場合には、変換が可能な倍速数に対する制限を知らせる方法が必要でありうる。すなわち、next_temporal_idをシグナリングする必要がありうる。
同図に示すように、テンポラルサブレイヤピクチャタイプがSTSAであり、4倍速でディスプレイする途中で1倍速でディスプレイしようとする場合、受信側は、temporal_idが0であるピクチャをデコーティング及びディスプレイする途中で、直接、temporal_idが2であるピクチャをデコーティング及びディスプレイすることはできず、temporal_idが1であるピクチャをデコーティング及びディスプレイした後、temporal_idが2であるピクチャをデコーティング及びディスプレイすることができる。
図20は、本発明の一実施例によって、テンポラルスケーラビリティをサポートするHEVCストリームで高倍速のトリックプレイをサポートするためのトリックプレイボックスの構成を示す図である。(シナリオ3)
本発明の一実施例によれば、“trikhvc”という新しいボックスが定義できる。本発明の一実施例に係るtrikhvcボックスは、sample_count値だけ反復されるforループ内に、pic_typeフィールド、temporal_sub_layer_pic_typeフィールド、max_temporal_idフィールド、temporal_idフィールド、next_temporal_idフィールド及び/又はdependency_levelフィールドを含むことができる。
sample_countは、ストリームに含まれたピクチャの総個数を意味できる。ここで、一つのサンプルは一つのピクチャを意味できる。
pic_typeフィールドは、HEVCのNAL_unit_typeで定義されたピクチャの種類を示すことができる。トリックプレイに利用可能な一部のNAL_unit_typeは、本発明の一実施例に係るpic_typeで選択して用いることができる。pic_typeフィールドは4ビットの値を示すことができる。
temporal_sub_layer_pic_typeフィールドは、当該ピクチャがTSA(Temporal Sub−layer Access)ピクチャかSTSA(Step−wise Temporal Sub−layer Access)ピクチャかを示すことができる。temporal_sub_layer_pic_typeが1であれば、temporal_sub_layer_pic_typeは、当該ピクチャがTSAピクチャであることを示すことができ、temporal_sub_layer_pic_typeが2であれば、temporal_sub_layer_pic_typeは、当該ピクチャがSTSAピクチャであることを示すことができ、temporal_sub_layer_pic_typeが3であれば、temporal_sub_layer_pic_typeは、当該ピクチャがunknownピクチャであることを示すことができる。HEVCは、テンポラルスケーラビリティを提供し、適応的にフレームレートを変更できるように、temporal_sub_layer_access_pictureを区別することができる。すなわち、HEVCは、temporal_idが0でないレイヤにおいてTSAピクチャ及びSTSAピクチャに基づいてダイナミックにフレームレートを変更させることができる。TSAとSTSAは、フレームレートをどのように及びどれくらい変更できるかについて差異がありうる。すなわち、TSAとSTSAは、一度にいくつのtempora_idをスキップできるかについて差異がありうる。例えば、temporal_idが0の場合にフレームレートは15pで、temporal_idが1の場合にフレームレートは30pで、temporal_idが2の場合に、(max_temporal_id)フレームレートは60pであると、TSAは、temporal_idが0であるレイヤからtemporal_idが2であるレイヤに直接アプローチできるため、放送システムは、フレームレートが15pであるサービスを提供する途中で、直接、60pであるサービスを提供するように変更することができる。一方、STSAは、段階的アプローチしかできないため、temporal_idが0であるレイヤからtemporal_idが1であるレイヤにまずアプローチし、次にtemporal_idが2であるレイヤにアプローチできる。したがって、この場合、放送システムは、順次に、フレームレートが15pであるサービスを提供する途中で30pであるサービスを提供し、最終的に60pであるサービスを提供することができる。
max_temporal_idフィールドは、ストリームに含まれた最大temporal_id値を示すことができる。
temporal_idフィールドは、HEVCのnuh_temporal_id_plus1値を用いて計算されたテンポラルid値を示すことができる。temporal_idフィールドが有する値は、nuh_temporal_id_plus1値から1を引いた値を示すことができる。
next_temporal_idフィールドはtemporal_sub_layer_pic_typeによって変更可能な最大フレームレートを知らせるために、移動可能なtemporal_idを示すことができる。例えば、max_temporal_idが2であるストリームにおいて、temporal_idが0であるピクチャのみをディスプレイする4倍速のトリックプレイを提供していたが、正常倍速(1倍速)に戻そうとするとき、temporal_sub_layer_pic_typeがTSAであれば、next_temporal_idはmax_temporal_id値を有することができる。一方、STSAであれば、next_temporal_idはtemporal_id値に1を足した値を有することができる。
dependency_levelフィールドは、当該ピクチャのディペンデンシレベルを示すことができる。本発明の一実施例に係るdependency_levelは、トリックプレイを行う場合に用いることができる。dependency_levelフィールドは、既存AVCのトリックプレイボックスで用いられたdependency_levelフィールドと同一であってもよい。例えば、dependency_levelが3であるサンプルを含めてトリックプレイを行うということは、dependency_levelが1、2又は3に該当するサンプルのみをデコーティングしてディスプレイするということを意味できる。したがって、dependency_levelは、トリックプレイを行う際に捨ててもよいレイヤのレベルを意味できる。リーディングピクチャが存在する場合にもデコーディング可能リーディングピクチャはdependency_levelを有し、受信側は、既存のトリックプレイ方法と同様に、該当しないピクチャをスキップしながら該当するピクチャのみをデコーティングしてディスプレイすることができる。dependency_levelフィールドは6ビットの値を示すことができる。
本発明の一実施例によれば、同図のトリックプレイボックスは、トリックプレイでサポート可能な最大倍速を示すmax_trick_play_modeフィールドを含むことができる。
本発明の一実施例によれば、max_temporal_idが2の場合、2倍速トリックプレイサービスを提供するために、受信側は、temporal_idが0及び1であるピクチャのみをデコーティングすることができる。また、4倍速トリックプレイサービスを提供するために、受信側は、temporal_idが0であるピクチャのみをデコーティング及びディスプレイすることができる。また、4倍速よりも高倍速のトリックプレイサービスを提供するために、受信側は、temporal_idが0であるピクチャの中でdependency_levelによってピクチャを分類し、該当するdependency_levelを有するピクチャのみをデコーティング及びディスプレイすることによって、4倍速よりも高倍速のトリックプレイサービスを提供することができる。
図21は、本発明の他の実施例によってテンポラルスケーラビリティをサポートするHEVCストリームで高倍速のトリックプレイをサポートするためのトリックプレイボックスの構成を示す図である。
本発明の一実施例によれば、既に定義された“trik”というボックスを用いてHEVCストリームのトリックプレイを行うことができる。本発明の一実施例によれば、フラグを用いてAVC又はHEVCトリックプレイを選択することができる。
本発明の一実施例に係るtrikボックスは、flag、sample_count値だけ反復されるforループ内に、pic_typeフィールド、dependency_levelフィールド、temporal_sub_layer_pic_typeフィールド、max_temporal_idフィールド、temporal_idフィールド及び/又はnext_temporal_idフィールドを含むことができる。
sample_countは、ストリームに含まれたピクチャの総個数を意味できる。ここで、一つのサンプルは一つのピクチャを意味できる。
pic_typeフィールドは、HEVCのNAL_unit_typeで定義されたピクチャの種類を示すことができる。トリックプレイに利用可能な一部のNAL_unit_typeは、本発明の一実施例に係るpic_typeで選択して用いることができる。本発明の一実施例に係るフラグ値が0である場合、pic_typeフィールドは2ビットの値を示すことができ、フラグ値が1の場合、4ビットの値を示すことができる。
dependency_levelフィールドは、当該ピクチャのディペンデンシレベルを示すことができる。本発明の一実施例に係るdependency_levelは、トリックプレイを行う場合に用いることができる。dependency_levelフィールドは、既存AVCのトリックプレイボックスで用いられたdependency_levelフィールドと同一であってもよい。例えば、dependency_levelが3であるサンプルを含めてトリックプレイを行うということは、dependency_levelが1、2又は3に該当するサンプルのみをデコーティングしてディスプレイするということを意味できる。したがって、dependency_levelは、トリックプレイを行う際に捨ててもよいレイヤのレベルを意味できる。リーディングピクチャが存在する場合にもデコーディング可能リーディングピクチャはdependency_levelを有し、受信側は、既存のトリックプレイ方法と同様に、該当しないピクチャをスキップしながら該当するピクチャのみをデコーティングしてディスプレイすることができる。dependency_levelフィールドは6ビットの値を示すことができる。
temporal_sub_layer_pic_typeフィールドは、当該ピクチャがTSA(Temporal Sub−layer Access)ピクチャかSTSA(Step−wise Temporal Sub−layer Access)ピクチャかを示すことができる。temporal_sub_layer_pic_typeが1であれば、temporal_sub_layer_pic_typeは、当該ピクチャがTSAピクチャであることを示すことができ、temporal_sub_layer_pic_typeが2であれば、temporal_sub_layer_pic_typeは、当該ピクチャがSTSAピクチャであることを示すことができ、temporal_sub_layer_pic_typeが3であれば、temporal_sub_layer_pic_typeは、当該ピクチャがunknownピクチャであることを示すことができる。HEVCは、テンポラルスケーラビリティを提供し、適応的にフレームレートを変更できるように、temporal_sub_layer_access_pictureを区別することができる。すなわち、HEVCは、temporal_idが0でないレイヤにおいてTSAピクチャ及びSTSAピクチャに基づいてダイナミックにフレームレートを変更させることができる。TSAとSTSAは、フレームレートをどのように及びどれくらい変更できるかについて差異がありうる。すなわち、TSAとSTSAは、一度にいくつのtempora_idをスキップできるかについて差異がありうる。例えば、temporal_idが0の場合にフレームレートは15pで、temporal_idが1の場合にフレームレートは30pで、temporal_idが2の場合に(max_temporal_id)フレームレートは60pであると、TSAは、temporal_idが0であるレイヤからtemporal_idが2であるレイヤに直接アプローチできるため、放送システムは、フレームレートが15pであるサービスを提供する途中で、直接、60pであるサービスを提供するように変更することができる。一方、STSAは段階的アプローチしかできないため、temporal_idが0であるレイヤからtemporal_idが1であるレイヤにまずアプローチし、次にtemporal_idが2であるレイヤにアプローチできる。したがって、この場合、放送システムは、順次に、フレームレートが15pであるサービスを提供する途中で30pであるサービスを提供し、最終的に60pであるサービスを提供することができる。
max_temporal_idフィールドは、ストリームに含まれた最大temporal_id値を示すことができる。
temporal_idフィールドは、HEVCのnuh_temporal_id_plus1値を用いて計算されたテンポラルid値を示すことができる。temporal_idフィールドが有する値は、nuh_temporal_id_plus1値から1を引いた値を示すことができる。
next_temporal_idフィールドは、temporal_sub_layer_pic_typeによって変更可能な最大フレームレートを知らせるために、移動可能なtemporal_idを示すことができる。例えば、max_temporal_idが2であるストリームにおいて、temporal_idが0であるピクチャのみをディスプレイする4倍速のトリックプレイを提供していたが、正常倍速(1倍速)に戻そうとするとき、temporal_sub_layer_pic_typeがTSAであれば、next_temporal_idはmax_temporal_id値を有することができる。一方、STSAであれば、next_temporal_idはtemporal_id値に1を足した値を有することができる。
本発明の一実施例によれば、同図のトリックプレイボックスは、トリックプレイでサポート可能な最大倍速を示すmax_trick_play_modeフィールドを含むことができる。
本発明の一実施例によれば、max_temporal_idが2である場合、2倍速トリックプレイサービスを提供するために、受信側は、temporal_idが0及び1であるピクチャのみをデコーティングすることができる。また、4倍速トリックプレイサービスを提供するために、受信側は、temporal_idが0であるピクチャのみをデコーティング及びディスプレイすることができる。また、4倍速よりも高倍速のトリックプレイサービスを提供するために、受信側は、temporal_idが0であるピクチャの中でdependency_levelによってピクチャを分類し、該当するdependency_levelを有するピクチャのみをデコーティング及びディスプレイすることによって4倍速よりも高倍速のトリックプレイサービスを提供できる。
図22は、本発明の一実施例に係るテンポラルidとティアを複合的に用いたトリックプレイの方法を示す図である。
本発明の一実施例によれば、ティア値は、テンポラルidが0であるピクチャのみに割り当てることができる。
同図に示すように、本発明の一実施例に係る受信機は、テンポラルidが0、1、2又は3であるピクチャをデコーティング及びディスプレイすることによって正常倍速のトリックプレイを行うことができ、テンポラルidが0、1又は2であるピクチャをデコーティング及びディスプレイすることによって2倍速のトリックプレイを行うことができ、テンポラルidが0又は1であるピクチャをデコーティング及びディスプレイすることによって4倍速のトリックプレイを行うことができ、テンポラルidが0であるピクチャを全てデコーティング及びディスプレイすることによって8倍速のトリックプレイを行うことができる。本発明は、テンポラルidが0であるピクチャに対してそれぞれ異なるティア値を割り当てることによって、8倍速よりも速いトリックプレイを行うことができる。
本発明の一実施例によれば、トリックプレイを提供するために次のような方法を用いることができる。PVR_assist_infoデスクリプタを用いるためにティアとテンポラルidをマッピングすることで、トリックプレイが提供できる(シナリオA)。PVR_assist_infoデスクリプタにテンポラルidを用いたトリックプレイを含むことで、トリックプレイが提供できる(シナリオB)。NAL_unit_headerのnuh_temporal_id_plus1情報をパーシングして実際トリックプレイのために必要なパケットのみを選択することで、トリックプレイが提供できる(シナリオC)。
本発明の一実施例に係るテンポラルサブレイヤ又はテンポラルidは、HEVCでテンポラルスケーラビリティをサポートするために導入された用語であって、NAL_unit_headerのnuh_temporal_id_plus1によってシグナリングできる。
本発明の一実施例に係るティアは、AVCストリーム又はmpeg−2ストリームにおいてトリックプレイをサポートするために導入された用語である。該ティアは、TSパケット内にアダプテーションフィールドに含めることができる。
図23は、本発明の一実施例によって、既存のティア概念によるトリックプレイ方法を示す図である。
本発明の一実施例に係る既存のティアは、レイヤ間ディペンデンシを示すことができる。
同図に示すように、テンポラルidが3であるピクチャは、ティア値として6を有することができ、テンポラルidが2であるピクチャは、ティア値として4を有することができ、テンポラルidが1であるピクチャは、ティア値として3を有することができ、テンポラルidが0であるピクチャのうち、Iピクチャは、ティア値として1を有することができ、Pピクチャはティア値として2を有することができる。すなわち、テンポラルidが0であるピクチャは同一のテンポラルidを有するが、互いに異なるティア値を有することができる。
本発明の一実施例によれば、max_temporal_idを有する、すなわち、dependency_levelが最も高いピクチャは、ティア値として6又は7を有することができる。そして、それ以外のtemporal_idを有するピクチャは、ティア値として1乃至5を有することができる。このとき、temporal_idが0であるレイヤに該当するピクチャは、ピクチャのタイプによってティア値として1又は2の値を有することができる。
図24は、本発明の一実施例によって、一つのテンポラルidを一つのティアに1:1でマッピングする方法によるトリックプレイ方法を示す図である。(シナリオA−a)
本発明の一実施例によれば、テンポラルidは含むが、ティア情報は含まないHEVCストリームに基づいてトリックプレイを提供するためにテンポラルidとティアをマッピングする方法を用いることができる。(シナリオA)
本発明の一実施例に係るトリックプレイを提供するために、一つのテンポラルidを一つのティアに1:1でマッピングする方法を用いることができ(シナリオA−a)、一つのテンポラルidを複数個のティアにマッピングする方法を用いることができる(シナリオA−b)。
本発明の一実施例は、上述したシナリオA−a及びシナリオA−bにおいて、既存のティアが有する意味にかかわらず、テンポラルidの値をそのままティアに1:1でマッピングさせることができる。
本発明の他の実施例は、上述したシナリオA−a及びシナリオA−bにおいて、テンポラルidの値をティアに1:1でマッピングさせるものの、tier6、7は、廃棄可能ピクチャ(discardable picture)という既存ティアの意味をそのまま維持して、最大テンポラルidは、tier6又は7にマッピングさせることができる。
上述したシナリオAによれば、既存のPVR_assist_infoデスクリプタの大部分をそのまま用いることができるという長所がある。ただし、本発明の一実施例はHEVCストリームに基づいているため、PVR_assist_infoデスクリプタに含まれた一部のフィールドは修正される必要がある。例えば、PVR_assist_infoデスクリプタに含まれたPVR_assist_tier_m_cumulative_framesフィールドは、PVR_assist_tier_mフィールドを通してtier 1から1.28秒当たり抽出可能な最小フレーム数の値を伝達することができる(This field conveys the value of the intended minimum number of extractable frames per 1.28 sec. from tier 1 through “PVR_assist_teir_m”)と新しく定義できる。
同図は、本発明の一実施例であるシナリオA−aによるトリックプレイ方法を示す図である。
同図に示すように、テンポラルidが3であるピクチャは、tier 4にマッピングでき、テンポラルidが2であるピクチャはtier 3にマッピングでき、テンポラルidが1であるピクチャはtier 2にマッピングでき、テンポラルidが0であるピクチャはtier 1にマッピングできる。
本発明の一実施例であるシナリオAは、8倍速以上のトリックプレイは提供できない。
図25は、本発明の他の実施例によって、一つのテンポラルidを一つのティアに1:1でマッピングする方法によるトリックプレイ方法を示す図である。(シナリオA−a)
本発明の一実施例は、以前の図面とは違い、テンポラルidの値をティアに1:1でマッピングさせるものの、tier6、7は廃棄可能ピクチャという既存ティアの意味をそのまま維持し、最大テンポラルidをtier 6又は7にマッピングさせることができる。
同図に示すように、テンポラルidが3であるピクチャはtier 6にマッピングでき、テンポラルidが2であるピクチャはtier 3にマッピングでき、テンポラルidが1であるピクチャはtier 2にマッピングでき、テンポラルidが0であるピクチャはtier1にマッピングできる。
同図が以前の図面と異なる点は、最大テンポラルidであるテンポラルid 3に該当するピクチャをtier 6にマッピングしたということであろう。
図26は、本発明の一実施例によって、一つのテンポラルidを一つのティアに1:1でマッピングした結果を示す図である。
同図は、本発明の一実施例に係るシナリオA−aにおいて、既存のティアが有する意味にかからわず、テンポラルidの値をそのままティアに1:1でマッピングした結果を示している。
同図におけるnuh_temporal_idplus1フィールドは、NAL_unit_headerに含まれたフィールドであって、テンポラルidに1を足した値を示すことができる。例えば、nuh_temporal_idplus1フィールド値が1であれば、テンポラルidは0になりうる。したがって、同図に示すように、テンポラルidが0であるピクチャは、tier1にマッピングでき、テンポラルidが1であるピクチャはtier2にマッピングでき、テンポラルidが2であるピクチャはtier3にマッピングでき、テンポラルidが3であるピクチャはtier4にマッピングできる。
本発明の一実施例によれば、テンポラルidとマッピングした新しいティアは、既に用いられていたティアの意味と異なってもよい。既存のtier6及び7は、廃棄可能ピクチャを意味し、tier7はレファレンス(reference)として用いられないピクチャを意味した。しかし、マッピングによって新しく定義されるティアは、既存のtier6及び7が持っていた意味を持っていなくてもよい。
本発明の一実施例は、テンポラルサブレイヤとティアが同一の数字を有するようにマッピングでき、トリックプレイを行う際に上述したマッピング情報を用いることができる。
図27は、本発明の他の実施例によって、一つのテンポラルidを一つのティアに1:1でマッピングした結果を示す図である。
同図は、本発明の他の実施例に係るシナリオA−aにおいて、テンポラルidの値をティアに1:1でマッピングさせるものの、tier6、7は廃棄可能ピクチャという既存ティアの意味をそのまま維持して、最大テンポラルidはtier6又は7にマッピングした結果を示している。
同図におけるnuh_temporal_id_plus1フィールドは、NAL_unit_headerに含まれたフィールドであって、テンポラルidに1を足した値を示すことができる。例えば、nuh_temporal_id_plus1フィールド値が1であれば、テンポラルidは0になりうる。したがって、同図に示すように、テンポラルidが0であるピクチャは、tier1にマッピングでき、テンポラルidが1であるピクチャはtier2にマッピングでき、テンポラルidが2であるピクチャはtier3にマッピングでき、テンポラルidが3であるピクチャはtier6にマッピングできる。
本発明の一実施例によれば、テンポラルidとマッピングした新しいティアは、既に用いられていたティアの意味と同一であってもよい。tier6及び7は廃棄可能ピクチャを意味でき、tier6は、レファレンスとして用いられるピクチャを意味し、tier7は、レファレンスとして用いられないピクチャを意味できる。したがって、上述した通り、nuh_temporal_id_plus1が4であるピクチャは、tier6にマッピングできる。ここで、レファレンスとして用いられないピクチャである場合はtier7にマッピングできる。
図28は、本発明の一実施例によって、一つのテンポラルidを複数個のティアにマッピングする方法によるトリックプレイの方法を示す図である。(シナリオA−b)
同図に示すように、最大テンポラルidであるテンポラルidが1であるピクチャは、tier4又は6にマッピングでき、テンポラルidが0である残り5個のピクチャはtier0乃至3にマッピングできる。
本発明の一実施例によれば、テンポラルidとマッピングした新しいティアは、既に用いられていたティアの意味と異なってもよい。既存のtier6及び7は、廃棄可能ピクチャを意味し、tier7はレファレンスとして用いられないピクチャを意味している。しかし、マッピングによって新しく定義されるティアは、既存のtier6及び7が持っていた意味を持っていなくてもよい。したがって、同図に示すように、テンポラルidが1であるピクチャは、tier4にマッピングできる。(28010)
本発明の他の実施例によれば、テンポラルidとマッピングした新しいティアは、既に用いられていたティアの意味と同一であってもよい。tier6及び7は廃棄可能ピクチャを意味でき、tier6はレファレンスとして用いられるピクチャを意味し、tier7は、レファレンスとして用いられないピクチャを意味できる。したがって、同図に示すように、テンポラルidが1であるピクチャは、tier6にマッピングできる。(28020)
図29は、本発明の一実施例に係るテンポラルidとティアとのマッピングのための情報を含むTSパケットのアダプテーションフィールドの構成を示す図である。
本発明の一実施例は、tier及びnuh_temporal_id_plus1の値をトリックプレイのための速度情報とマッピングするデスクリプタを提供することができる。
本発明の一実施例によれば、既存トリックプレイのための情報はTSパケットのアダプテーションフィールドに含まれたため、テンポラルidを含むHEVCストリームのトリックプレイのための情報であるHEVC_temporal_id_tier_mapping_infoも、上述したアダプテーションフィールドに含まれてもよい。
同図は、TSパケットのアダプテーションフィールドに含まれたデータフィールド(data field)の構成を示す図である。
同図に示すように、data_field_tagが0x00であれば、当該データフィールドはreservedであることを示すことができ、0x01であれば、当該データフィールドはAnnouncement switchingデータフィールドであることを示すことができ、0x02であれば、AU_informationに対するデータフィールドであることを示すことができ、0x03であれば、PVR_assist_informationに対するデータフィールドであることを示すことができ、0x04であれば、TSAP time lineに対するデータフィールドであることを示すことができ、0x05であれば、HEVC_temporal_id_tier_mapping_infoに対するデータフィールドであることを示すことができる。
本発明の一実施例は、HEVC_temporal_id_tier_mapping_infoデスクリプタを用いてテンポラルidにティア値をマッピングし、PVR_assist_informationデスクリプタを用いてtierベースでトリックプレイを提供することができる。
図30は、本発明の一実施例に係るHEVC_temporal_id_tier_mapping_infoの構成を示す図である。
本発明の一実施例に係るHEVC_temporal_id_tier_mapping_infoは、included_temporal_id_flagフィールド、temporal_sub_layer_dependency_flagフィールド、max_temporal_id_plus1フィールド、temporal_id_plus1フィールド、curr_tier_numフィールド及び/又はtrick_play_speedフィールドを含むことができる。
included_temporal_id_flagフィールドは、テンポラルidを用いてエンコーディングしたか否かをシグナリングすることができる。
temporal_sub_layer_dependency_flagフィールドは、テンポラルサブレイヤ間のディペンデンシ(dependency)の有無を示すことができる。すなわち、temporal_sub_layer_dependency_flagフィールドは、下位テンポラルサブレイヤピクチャが上位テンポラルサブレイヤピクチャを参照しない場合、1を有する。
max_temporal_id_plus1フィールドは最大テンポラルid値を示すことができ、max_temporal_id_plus1フィールドが示す値は、テンポラルidに1を足した値である。
temporal_id_plus1フィールドは、NALユニットヘッダー(NAL unit header)に含まれたnuh_temporal_id_plus1が示す値と同じ値を有することができる。
curr_tier_numフィールドは、temporal_id_plus1とマッピングされるティア値を示すことができる。
trick_play_speedフィールドは、テンポラルid値によって提供可能な最大トリックプレイ速度を示すことができる。
if(max_temporal_id_plus1>1)条件文は、max_temporal_id_plus1が1よりも大きい場合を示すことができる。すなわち、テンポラルスケーラビリティが用いられたストリームであることを示すことができ、この場合、テンポラルidを用いてトリックプレイを提供できるため、本発明の一実施例は、既存のPVR_assist_informationを用いるためにテンポラルidをティアにマッピングさせることができる。
本発明の他の実施例は、temporal_id_plus1フィールドを、forループ中にcurr_tier_numフィールド及びtrick_play_speedフィールドと同じレベルに位置させ、各temporal_idによるティアナンバーとトリックプレイのための速度をシグナリングすることができる。本発明の一実施例は、上述したHEVC_temporal_id_tier_mapping_infoを含むデスクリプタを用いてルックアップテーブルを生成でき、該ルックアップテーブルを用いてPVR_assist_informationのティア関連情報をtemporal_idで解釈して使用することができる。
本発明の他の実施例は、上述したHEVC_temporal_id_tier_mapping_infoからforループを削除し、temporal_id_plus1フィールドが位置しているレベルにcurr_tier_numフィールド及びtrick_play_speedフィールドを位置させることもできる。本発明の一実施例は、上述したHEVC_temporal_id_tier_mapping_infoを含むデスクリプタを各ピクチャごとにシグナリングすることができる。
図31は、本発明の一実施例に係るHEVC_temporal_id_tier_mapping_infoに含まれたtrick_play_speedフィールドの構成を示す図である。
本発明の一実施例に係るtrick_play_speedフィールドが0であれば、提供可能なトリックプレイの倍速は1倍速であり、1なら、提供可能なトリックプレイの倍速は2倍速であり、2なら、提供可能なトリックプレイの倍速は4倍速であり、3なら、提供可能なトリックプレイの倍速は8倍速であり、4なら、提供可能なトリックプレイの倍速は16倍速であり、5なら、提供可能なトリックプレイの倍速は32倍速であり、6なら、提供可能なトリックプレイの倍速は64倍速でありうる。
図32は、本発明の一実施例に係るPVR_assist_informationの構成を示す図である。
本発明の一実施例に係るPVR_assist_informationは、data_field_tagフィールド、data_field_lengthフィールド、PVR_assist_tier_pic_numフィールド、PVR_assist_block_trick_mode_present_flagフィールド、PVR_assist_pic_struct_present_flagフィールド、PVR_assist_tier_next_pic_in_tier_present_flagフィールド、PVR_assist_substream_info_present_flagフィールド、PVR_assist_extension_present_flagフィールド、PVR_assist_segmentation_info_present_flagフィールド、PVR_assist_tier_m_cumulative_frames_present_flagフィールド、PVR_assist_tier_n_mmco_present_flagフィールド、PVR_assist_reserved_0フィールド、PVR_assist_seg_idフィールド、PVR_assist_prg_idフィールド、PVR_assist_seg_start_flagフィールド、PVR_assist_seg_end_flagフィールド、PVR_assist_prg_start_flagフィールド、PVR_assist_prg_stop_flagフィールド、PVR_assist_scene_change_flagフィールド、PVR_assist_tier_mフィールド、PVR_assist_tier_m_cumulative_framesフィールド及び/又はPVR_assist_tier_n_mmcoフィールドを含むことができる。
data_field_tagフィールドは、当該データフィールドがPVR_assist_informationであることを示すことができる。data_field_tagフィールドは0x03を有することができる。
data_field_lengthフィールドは、data_field_tagフィールド及びdata_field_lengthフィールドを除くPVR_assist_informationの長さを示すことができる。
PVR_assist_tier_pic_numフィールドは、PVR_assist_informationと関連しているピクチャのティアナンバーを示すことができる。最小ティアナンバーは0で、最大ティアナンバーは7であってもよい。ティアナンバー0は、将来使用のために残しておいてもよい。本発明の一実施例によれば、HEVCである場合、HEVC RAPピクチャのティアナンバーは0であり、HEVC RAPピクチャ以外の残り全てのピクチャのティアナンバーは、テンポラルidに1を足した値であってもよい。本発明の一実施例によれば、このフィールドは、ビデオストリームに含まれるピクチャのティアナンバーを示すことができ、ティアナンバー情報と命名できる。ここで、ティアナンバーは、テンポラルサブレイヤをシグナリングするために用いることができる。PVR_assist_tier_pic_numは、ティアナンバー情報と命名できる。
PVR_assist_block_trick_mode_present_flagフィールドは、以前のRAPピクチャにおいてこのフィールドの値が1である場合に、RAP以外のピクチャで1の値を有することができる。
PVR_assist_pic_struct_present_flagフィールドは、ビデオストリームがAVC又はHEVCストリームであり、PVR_assist_pict_structフィールドが存在する場合に、1の値を有することができる。
PVR_assist_tier_next_pic_in_tier_present_flagフィールドは、PVR_assist_tier_next_pic_in_tierフィールドが存在する場合に1の値を有することができる。
PVR_assist_substream_info_present_flagフィールドは、PVR_assist_substream_infoフィールドが存在する場合に1の値を有することができる。
PVR_assist_extension_present_flagフィールドは、PVR_assist_segmentation_info_present_flagフィールド、PVR_assist_tier_m_cumulative_frames_present_flagフィールド、PVR_assist_tier_n_mmco_present_flagフィールド及びPVR_assist_temporal_id_info_present_flagフィールドのいずれか一つの値が1である場合に、1の値を有することができる。
PVR_assist_segmentation_info_present_flagフィールドは、PVR_assist_segmentation_infoフィールドが存在する場合に1の値を有することができる。
PVR_assist_tier_m_cumulative_frames_present_flagフィールドは、PVR_assist_tier_mフィールド及びPVR_assist_tier_m_cumulative_framesフィールドが存在する場合に1の値を有することができる。HEVCである場合、このフィールドは0の値を有するように推奨されてもよい。
PVR_assist_tier_n_mmco_present_flagフィールドは、PVR_assist_tier_n_mmcoフィールドが存在する場合に1の値を有することができる。HEVCである場合、このフィールドは0の値を有することができる。
PVR_assist_seg_idフィールドは、ピクチャの属しているセグメントのidを伝達することができる。
PVR_assist_prg_idフィールドは、ピクチャの属しているプログラムのidを伝達することができる。
PVR_assist_seg_start_flagフィールドは、一つのセグメント内で先頭の再生順序を有するピクチャである場合、1の値を有することができる。
PVR_assist_seg_end_flagフィールドは、一つのセグメント内で末尾の再生順序を有するピクチャである場合、1の値を有することができる。
PVR_assist_prg_start_flagフィールドは、一つのプログラム内で先頭の再生順序を有するピクチャである場合、1の値を有することができる。
PVR_assist_prg_stop_flagフィールドは、一つのプログラム内で末尾の再生順序を有するピクチャである場合、1の値を有することができる。
PVR_assist_scene_change_flagフィールドは、新しい場面の再生順序上先頭のピクチャである場合に1の値を有することができる。
PVR_assist_tier_mフィールドは、PVR_assist_tier_m_cumulative_framesフィールドと関連しているティアナンバーを示すことができる。HEVCである場合、このフィールドは存在しなくてもよい。
PVR_assist_tier_m_cumulative_framesフィールドは、PVR_assist_tier_mフィールドを通してtier1から秒当たり抽出可能な最小フレーム数の値を伝達することができる。
PVR_assist_tier_n_mmcoフィールドは、トリックプレイを行う間にデコーダに無視されてもよいMMCOs下の最小ティアナンバーを示すことができる。HEVCである場合、このフィールドは存在しなくてもよい。
本発明の一実施例に係るPVR_assist_informationは、PVR_assist_tier_next_pic_tierフィールドをさらに含むことができる。PVR_assist_tier_next_pic_tierフィールドは、PVR_assist_tier_pic_numフィールドが示す値と同じティアナンバーを有するピクチャのうち、デコーティング順序上次の順序のピクチャの相対的な位置を示すことができ、ティアネクストピクチャ情報と命名できる。
本発明の一実施例に係るPVR_assist_informationは、ビデオデータのトリックプレイを行うためのメタデータを含み、PVRアシスト情報と命名できる。
図33は、本発明の一実施例に係るテンポラルidフレームワークが追加されたPVR_assist_informationの構成を示す図である。(シナリオB−a−a)
本発明の一実施例は、TSパケットのアダプテーションフィールドに含まれる既存PVR_assist_informationに、テンポラルidを用いたトリックプレイを含む方法を提供することができる。すなわち、本発明の一実施例は、テンポラルidフレームワークを提供することができる。
本発明の一実施例は、テンポラルidベースのテンポラルスケーラビリティをサポートするために、既存のPVR_assist_tier_pic_numと共にPVR_assist_temporal_id_plus1をシグナリングすることができる。
本発明の一実施例によれば、PVR_assist_informationは、PVR_assist_informationの構成を示した以前の図面で前述した全てのフィールド、PVR_assist_temporal_id_plus1フィールド、PVR_assist_temporal_id_info_present_flagフィールド及び/又はPVR_assist_max_temporal_id_plus1フィールドを含むことができる。
同図で、PVR_assist_informationの構成を示した以前の図面で前述したフィールドと同じ名称を有するフィールドは、以前の図面で前述した意味と同じ意味を有することができる。
PVR_assist_temporal_id_plus1フィールドは、現在フレームのテンポラルid値を示し、実際にNALユニットヘッダーに含まれたnuh_temporal_id_plus1値と同じ値を示すことができる。
PVR_assist_temporal_id_info_present_flagフィールドは、テンポラルidと関連している情報を含むか否かを示すことができる。このフィールドは、PVR_assist_max_temporal_id_plus1フィールドが存在すると、1の値を示すことができる。このフィールドは、RAPピクチャごとに提供できる。
PVR_assist_max_temporal_id_plus1フィールドは、最大テンポラルid値を示し、実際に、テンポラルid最大値に1を足した値を示すことができる。このフィールドは、0乃至6のいずれか一つの値を有することができる。このフィールドは、トリックプレイの速度に関する情報を提供するために用いることができる。
本発明の一実施例によれば、トリックプレイの倍速数は、PVR_assist_max_temporal_id_plus1フィールドとPVR_assist_temporal_id_plus1フィールドの値を用いて計算できる。
図34は、本発明の他の実施例に係るテンポラルidフレームワークが追加されたPVR_assist_informationの構成を示す図である。(シナリオB−a−b)
本発明の一実施例は、TSパケットのアダプテーションフィールドに含まれる既存PVR_assist_informationに、テンポラルidを用いたトリックプレイを含める方法を提供することができる。すなわち、本発明の一実施例は、テンポラルidフレームワークを提供できる。
本発明の一実施例は、PVR_assist_tier_pic_numフィールドをそのまま使用し、PVR_assist_tier_pic_numフィールドにPVR_assist_temporal_id_plus1の意味を含めることができる。また、PVR_assist_tier_pic_num_to_temporal_id_flagフィールドを用いて、ティアの意味が変更されたことを知らせることができる。
本発明の一実施例によれば、PVR_assist_informationは、PVR_assist_informationの構成を示した以前の図面で前述した全てのフィールド、PVR_assist_tier_pic_num_to_temporal_id_flagフィールド、PVR_assist_temporal_id_info_present_flagフィールド及び/又はPVR_assist_max_temporal_id_plus1フィールドを含むことができる。
同図で、PVR_assist_informationの構成を示した以前の図面で前述したフィールドと同じ名称を有するフィールドは、以前の図面で前述した意味と同じ意味を有することができる。ただし、PVR_assist_tier_pic_numフィールドは、本発明の一実施例によってテンポラルidフレームワークにそのまま用いることができる。すなわち、PVR_assist_tier_pic_numフィールドは、現在フレームのテンポラルid値を示し、実際にNALユニットヘッダーに含まれたnuh_temporal_id_plus1値と同じ値を有することができる。
PVR_assist_tier_pic_num_to_temporal_id_flagフィールドは、PVR_assist_tier_pic_numフィールドをテンポラルidを示すフィールドとして用いた場合、1の値を有することができる。
PVR_assist_temporal_id_info_present_flagフィールドは、テンポラルidと関連している情報を含むか否かを示すことができる。
PVR_assist_max_temporal_id_plus1フィールドは、最大テンポラルid値を示し、実際に、テンポラルid最大値に1を足した値を示すことができる。
本発明の一実施例によれば、トリックプレイの倍速数は、PVR_assist_max_temporal_id_plus1フィールドとPVR_assist_temporal_id_plus1フィールドの意味を有するPVR_assist_tier_pic_numフィールド値を用いて計算できる。
本発明のさらに他の実施例は、PVR_assist_frameworkという2ビット以上のフィールドをPVR_assist_informationに追加して、PVRを提供するフレームワークの種類を区別することができる。本発明の一実施例は、既存のティア、サブストリームフレームワーク及びテンポラルidフレームワークを区別することができる。この場合、既存のPVR_assist_informationに含まれたフラグ値は用いられなくてもよく、本発明の一実施例は、各フレームワークに該当するタグ値に代えて条件文を構成することができる。
図35は、本発明の一実施例に係るテンポラルidを用いたトリックプレイをサポートするためのPVR_assist_informationの構成を示す図である。(シナリオB−b)
本発明の一実施例によるPVR_assist_informationは、data_field_tagフィールド、data_field_lengthフィールド、PVR_assist_temporal_id_plus1フィールド、PVR_assist_substream_info_present_flagフィールド、PVR_assist_extension_present_flagフィールド、PVR_assist_temporal_id_present_flagフィールド、PVR_assist_temporal_sub_layer_dependency_flagフィールド、PVR_assist_max_temporal_id_plus1フィールド、PVR_assist_curr_tier_numフィールド及び/又はPVR_assist_trick_play_speedフィールドを含むことができる。
data_field_tagフィールドは、当該データフィールドがPVR_assist_informationであることを示すことができる。data_field_tagフィールドは0x03を有することができる。
data_field_lengthフィールドは、data_field_tagフィールド及びdata_field_lengthフィールドを除くPVR_assist_informationの長さを示すことができる。
PVR_assist_temporal_id_plus1フィールドは、現在フレームのテンポラルid値を示し、実際にNALユニットヘッダーに含まれたnuh_temporal_id_plus1値と同じ値を示すことができる。
PVR_assist_substream_info_present_flagフィールドは、PVR_assist_substream_infoフィールドが存在する場合に1の値を有することができる。
PVR_assist_extension_present_flagフィールドは、PVR_assist_segmentation_info_present_flagフィールド、PVR_assist_tier_m_cumulative_frames_present_flagフィールド及びPVR_assist_tier_n_mmco_present_flagフィールドのいずれか一つの値が1である場合に、1の値を有することができる。
PVR_assist_temporal_id_info_present_flagフィールドは、テンポラルidと関連している情報を含むか否かを示すことができる。
PVR_assist_temporal_sub_layer_dependency_flagフィールドは、テンポラルサブレイヤ間のディペンデンシの有無を示すことができる。すなわち、temporal_sub_layer_dependency_flagフィールドは、下位テンポラルサブレイヤピクチャが上位テンポラルサブレイヤピクチャを参照しない場合、1を有する。
PVR_assist_max_temporal_id_plus1フィールドは、最大テンポラルid値を示し、実際に、テンポラルid最大値に1を足した値を示すことができる。
PVR_assist_curr_tier_numフィールドは、temporal_id_plus1に該当するティア値を示すことができる。
trick_play_speedフィールドは、テンポラルid値によって提供可能な最大トリックプレイ速度を示すことができる。
if(PVR_assist_max_temporal_id_plus1>1)条件文は、PVR_assist_max_temporal_id_plus1が1よりも大きい場合を示すことができる。すなわち、テンポラルスケーラビリティが用いられたストリームであることを示すことができ、この場合、テンポラルidを用いてトリックプレイを提供することができる。
本発明の他の実施例は、PVR_assist_temporal_id_plus1フィールドを、forループ中にPVR_assist_curr_tier_numフィールド及びPVR_assist_trick_play_speedフィールドと同じレベルに位置させ、各temporal_idによるティアナンバーとトリックプレイのための速度をシグナリングすることができる。
本発明のさらに他の実施例は、既存のPVR_assist_tier_pic_numフィールドをそのまま置き、上述したフィールド値をPVR_assist_temporal_id_plus1フィールド値を示すように変更して使用することができる。この場合、PVR_assist_tier_pic_num_to_temporal_id_flagフィールドを用いて、PVR_assist_tier_pic_numフィールドの意味が変更されたということをシグナリングする必要がある。
本発明のさらに他の実施例は、ティア無しでテンポラルidのみを用いてトリックプレイを提供することができる。すなわち、NAL_unit_headerのnuh_temporal_id_plus1情報をパーシングし、実際トリックプレイのために必要なパケットのみを選択することによって、トリックプレイを提供できる(シナリオC)。例えば、テンポラルidが0から3まで構成されたストリームを2倍速でプレイしようとする場合、本発明の一実施例は、nuh_temporal_id_plus1値が1、2又は3であるTSパケットのみをシステムデコーダ(system decoder)に伝達することによって2倍速トリックプレイを提供できる。
図36は、本発明の一実施例に係る受信装置を示す図である。
本発明の一実施例に係る受信装置は、受信部(Tuner)36010、復調部(Demodulator)36020、トリックプレイ実行部(Trick play)36030、システムデコーダ/逆多重化部(System decoder and Demux)36040及び/又はビデオデコーダ(Video decoder)36050を備えることができる。
受信部36010は、放送網、ケーブル網及び/又はインターネットを通して送信される放送信号を受信することができる。
復調部36020は、変調方式に応じて変調された放送信号を復調することができる。
トリックプレイ実行部36030は、各シナリオに従う方法によってトリックプレイのためのTSパケットを選別することができる。本発明の一実施例に係るシナリオ1、2及び3に関する詳細な説明は、前述した通りである。
システムデコーダ/逆多重化部36040は、システム情報をデコーティングでき、多重化された放送信号を単位ストリーム別に分離できる。逆多重化部は、受信した放送信号を逆多重化してビデオストリームを抽出することができる。
ビデオデコーダ36050は、ビデオストリームをデコーティングすることができる。ビデオデコーダはシステムデコーダ及びトリックプレイ実行部を含むことができ、ビデオデコーダは、PVRアシスト情報に基づいてトリックプレイのために選別されたビデオストリームをデコーティングすることによって、ビデオデータのトリックプレイを行うことができる。ビデオデコーダは、PVRアシスト情報に含まれたテンポラル識別情報及び最大テンポラル識別情報に基づいてトリックプレイを行うことができる。
図37は、本発明の一実施例に係るティアフレームワークとHEVCテンポラルサブレイヤとを比較したものである。
本発明の一実施例に係るHEVCテンポラルサブレイヤの階層構造は、ティアシステムフレームワークに類似している。本発明の一実施例に係るテンポラルidはティアナンバーにマッチングできる。本発明の一実施例に係るHEVCテンポラルサブレイヤは、ティアシステムフレームワークと類似の方法によってPVRをサポートすることができる。
本発明の一実施例に係るHEVC準拠(compliant)エンコーダ/デコーダは、HEVCテンポラルサブレイヤをサポートできる。本発明の一実施例に係るテンポラルidは、HEVCでエンコーディングされたストリームに存在できる。ストリームがテンポラルサブレイヤ構造によってエンコーディングされた場合、トリックプレイのためのいかなる特別なエンコーディング構造も必要としない。したがって、本発明の一実施例に係るHEVCテンポラルサブレイヤは、トリックプレイをサポートする場合にエンコーディング負担を軽減することができる。
同図に示すように、ティアフレームワークで、tier7は、参照されない廃棄可能ピクチャを意味し、tier6は、参照される廃棄可能ピクチャを意味した。しかし、本発明の一実施例に係るHEVCテンポラルサブレイヤは、参照されるピクチャであるか否かを区別しなくてもよい。ティアフレームワークでtier1はRAPピクチャを示し、tier2はPピクチャを示した。しかし、本発明の一実施例に係るHEVCテンポラルサブレイヤでテンポラルid0は、IRAPピクチャを含むIピクチャ、Pピクチャ及びBピクチャを全て示すことができる。
本発明の一実施例によれば、異なるサブレイヤがテンポラルid6と7に指定されてもよい。したがって、ティアナンバー6及び7と比較すると、本発明の一実施例によってテンポラルidを用いる場合、追加的な倍速をサポートすることができる。
本発明の一実施例によれば、より速い倍速をサポートするために、テンポラルidが0であるベースサブレイヤでフレーム区別が必要でありうる。
図38は、本発明の他の実施例に係るPVR_assist_informationの構成を示す図である。
本発明の一実施例によれば、デコーティング過程前にアクセスユニット(access units;AUs)をフィルタリングするために、ビデオレベルに与えられたテンポラルidはシステムレベルでシグナリングされうる。
本発明の一実施例によれば、テンポラルidが0であるベースサブレイヤでより高い倍速をサポートするために、イントラ(intra)フレームがシグナリングされうる。
本発明の一実施例に係るPVR_assist_informationは、data_field_tagフィールド、data_field_lengthフィールド、PVR_assist_temporal_id_plus1フィールド、PVR_assist_temporal_id_info_present_flagフィールド、PVR_assist_intra_picture_flagフィールド、PVR_assist_max_temporal_id_plus1フィールド、PVR_assist_PB_numbers_in_temporal id_zeroフィールド、PVR_assist_reserved_0フィールド及び/又はPVR_assist_reserved_byteフィールドを含むことができる。
data_field_tagフィールドは、当該データフィールドがPVR_assist_informationであることを示すことができる。data_field_tagフィールドは0x03を有することができる。
data_field_lengthフィールドは、data_field_tagフィールド及びdata_field_lengthフィールドを除くPVR_assist_informationの長さを示すことができる。
PVR_assist_temporal_id_plus1フィールドは、ピクチャのテンポラルidを示すことができる。実際に、テンポラルidは、このフィールドから1を引いた値を有することができる。このフィールドの最小値は1、最大値は7を有することができる。HEVCストリームの場合、このフィールドの値はnuh_temporal_id_plus1値と同じ値を有することができる。
PVR_assist_temporal_id_info_present_flagフィールドは、PVR_assist_max_temporal_id_plus1フィールドが存在すると、1の値を有することができる。このフィールドは、RAPピクチャに該当するピクチャでのみ提供されうる。
PVR_assist_intra_picture_flagフィールドは、現在アクセスユニットがintraピクチャであると、1の値を有することができる。
PVR_assist_max_temporal_id_plus1フィールドは、最大テンポラルidを示すことができる。実際に、最大テンポラルidは、このフィールドから1を引いた値を示すことができる。このフィールドは1から7までの値を有することができる。
PVR_assist_PB_numbers_in_temporalId_zeroフィールドは、テンポラルidが0であるベースサブレイヤでイントラ(intra)フレーム間に存在するイントラフレーム以外のフレームの個数を示すことができる。このフィールドは、トリックプレイの速度を推測するために用いることができる。
PVR_assist_reserved_0フィールドは、将来使用のために残したフィールドである。
PVR_assist_reserved_byteフィールドは、将来使用のために残したフィールドを示すことができる。
図39は、本発明の一実施例に係るHEVCテンポラルサブレイヤを用いたトリックプレイ方法を示す図である。
同図で、一番目の図39010は、一つのGOPに該当するピクチャを再生順序によって整列したものである。一番目の図で、Iは、Iピクチャを表すことができ、Bは、Bピクチャを表すことができ、PはPピクチャを表すことができる。また、ピクチャの種類を表すアルファベット下部の添え字は、再生順序を表すことができる。一番目の図で、矢印は、ピクチャ間の参照関係を示すことができる。
同図で、二番目の図39020は、本発明の一実施例に係るHEVCテンポラルサブレイヤを用いてトリックプレイを提供する方法を示すものである。一つの四角ボックスは一つのピクチャを表すことができる。四角中の数字はテンポラルidを示すことができる。四角中のx表示は、トリックプレイ時にデコーティング及び再生されるピクチャを表すことができる。二番目の図に示すように、2倍速から8倍速トリックプレイまでは、HEVCテンポラルサブレイヤによって提供することができる。
同図で、三番目の図39030は、本発明の一実施例に係るベースサブレイヤシグナリングを用いてトリックプレイを提供する方法を示すものである。本発明の一実施例は、イントラピクチャのみをデコーティング及び再生することによって、12倍速、24倍速及び48倍速のトリックプレイを提供することができる。
図40は、本発明の一実施例に係る放送信号送信方法を示す図である。
本発明の一実施例は、次のような手続きによって放送信号を送信することができる。まず、本発明の一実施例は、ビデオデータをエンコードしてビデオストリームを生成することができる(S40010)。ここで、ビデオストリームを、AVC又はHEVCコーデックによってエンコードすることができる。ここで、ビデオストリームはビデオストリームの最大テンポラル識別情報値を有するPVRアシスト情報を含むことができる。最大テンポラル識別情報は、max_temporal_id又はPVR_assist_max_temporal_idと命名することができる。最大テンポラル識別情報に関する詳細な説明は、図30、図33、図34、図35、図38で前述した。PVRアシスト情報は、受信機又はPVR装置でビデオデータのトリックプレイを行うために必要な情報を意味することができる。PVRアシスト情報に関する詳細な説明は、図34で前述した。次に、本発明の一実施例は、生成されたビデオストリームを含む放送信号を生成することができる(S40020)。ここで、ビデオストリームは、ビデオ単位ストリーム、ビデオ単位ストリームがパケット化されたPESストリーム、又はTSパケットを含むトランスポートストリームを意味することができる。生成されたビデオストリームを様々な変調方式を用いて変調することによって放送信号を生成することができる。次に、本発明の一実施例は、生成された放送信号を伝送することができる(S40030)。ここで、本発明の一実施例は、生成された放送信号を、地上波放送網、ケーブル網及びインターネット網のうち少なくとも一つを介して伝送することができる。
本発明の更に他の実施例によれば、ビデオストリームはアダプテーションフィールドを含み、アダプテーションフィールドはPVRアシスト情報を含むことができる。ここで、アダプテーションフィールドはTSパケットのヘッダーとペイロードとの間に存在するフィールドであって、データを含むことができる。本発明の一実施例に係るビデオストリームは、数個のTSパケットを含むストリームを意味することができる。したがって、本発明の一実施例に係るビデオストリームはアダプテーションフィールドを含むことができる。
本発明の更に他の実施例によれば、アダプテーションフィールドは、プライベートデータバイトフィールドを含むことができ、プライベートデータバイトフィールドは、PVRアシスト情報を含むことができる。ここで、プライベートデータバイトフィールドは、アダプテーションフィールドに含まれ、数個のデータフィールドを含むことができる。上述した数個のデータフィールドのうちいずれか一つは、PVRアシスト情報を含むことができる。
本発明の更に他の実施例によれば、ビデオストリームは、一つ以上のテンポラルサブレイヤを含むことができ、ここで、テンポラルサブレイヤは、ピクチャの集合を示すことができる。本発明の一実施例に係るエンコードされたビデオデータを含むNALユニットのヘッダーは、テンポラル識別プラス情報を含むことができる。ここで、テンポラル識別プラス情報は、テンポラル識別情報に1を加算した値を示すことができ、テンポラル識別情報は、テンポラルサブレイヤを識別する情報を含むことができる。本発明の一実施例に係るテンポラル識別プラス情報は、テンポラルサブレイヤを識別するために用いることができる。テンポラルサブレイヤはtemporal sub−layerと、テンポラル識別情報はtemporal idと、テンポラル識別プラス情報はnuh_temporal_id_plus1と命名することができる。
本発明の更に他の実施例によれば、PVRアシスト情報は、ビデオストリームの最大テンポラル識別情報値を示す最大テンポラル識別情報を含むことができる。HEVCでエンコードされたビデオストリームは、複数のテンポラルサブレイヤを有することができ、各テンポラルサブレイヤはテンポラル識別情報によって識別されてもよい。本発明の一実施例に係る最大テンポラル識別情報は、複数のテンポラルサブレイヤのうちの最大テンポラル識別情報を有するテンポラルサブレイヤのテンポラル識別情報を意味することができる。
本発明の更に他の実施例によれば、最大テンポラル識別情報は、0乃至6のいずれか一つの値を有することができる。したがって、本発明の更に他の実施例によってテンポラル識別情報値がティア(tier)ナンバーと一対一でマッチする場合、既に定義されていたティアナンバーの範囲内でマッチすればよい。既にティアナンバーは0から7まで定義されている。
本発明の更に他の実施例によれば、最大テンポラル識別情報を、トリックプレイの速度に関する情報を提供するために用いすることができる。最大テンポラル識別情報は、トリックプレイの最大倍速に関する情報をシグナルすることができる。本発明の一実施例は、各テンポラル識別情報に該当するトリックプレイ倍速をシグナルすることができる。最大テンポラル識別情報をシグナルすることによって、本発明の一実施例は、ユーザにサービスが可能な最大倍速情報を知らせることができ、ユーザの要求を受けてトリックプレイの倍速を決定し、決定された倍速を提供することができる。これに関する詳細な説明は、図33及び図38で前述した。
本発明の更に他の実施例によれば、PVRアシスト情報は、最大テンポラル識別情報を含むか否かを示すテンポラル識別フラグ情報を含むことができる。ここで、テンポラル識別フラグ情報は少なくともRAPごとに提供されてもよい。テンポラル識別フラグ情報は、PVR_assist_temporal_id_info_present_flagと命名することができる。テンポラル識別フラグ情報は、PVRアシスト情報内に最大テンポラル識別情報が含まれていると、1の値を有することができる。AVCストリームである場合、テンポラル識別フラグ情報は0の値を有することができる。本発明の一実施例は、テンポラル識別フラグ情報をRAPごとに提供することによって、最大テンポラル識別情報をRAPごとにシグナルすることができる。これによって、本発明の一実施例はトリックプレイの最大倍速情報をRAPごとにシグナルすることができる。これに関する詳細な説明は、図32及び図38で前述した。
図41は、本発明の一実施例に係る放送信号受信装置の構造を示す図である。
本発明の一実施例に係る放送信号受信装置41010は、受信部41020、逆多重化部41030及び/又はデコーダ41040を含むことができる。
受信部は、放送信号を受信することができる。
逆多重化部は、受信した放送信号を逆多重化してビデオストリームを抽出することができる。ここで、ビデオストリームは、ビデオストリームの最大テンポラル識別情報値を有するPVRアシスト情報を含むことができる。
デコーダは、上述したPVRアシスト情報に基づいて、抽出されたビデオストリームをデコードし、ビデオデータのトリックプレイを行うことができる。
同図に示している、本発明の一実施例に係る放送信号受信装置の構成のうち、図36に示した放送信号受信装置の構成と同じ名称を有する構成は、図36に示した放送信号受信装置の構成と同じ機能を有することができる。
同図に示している、本発明の一実施例に係る放送信号受信装置の構成のうち、図40に示した放送信号送信方法の手続きに対応する構成は、図40に示した放送信号送信方法の手続きに対応する機能を有することができる。
以下では、上記のように、信号伝送のためのPESレベルの他に、ビデオデータレベルでトリックプレイを効率的に行うことができる実施例を開示する。
上述した実施例によれば、ビデオ伝送段階でビデオトリックプレイを効率的に実行できるようにトリックプレイに関する情報を送受信することができる。
しかしながら、上述した実施例とは別に又は上述した実施例に加えて、ビデオデータレベルでトリックプレイのための情報をあらかじめシグナルするようにすれば、ビデオデコーダがあらかじめトリックプレイに関する情報を取得し、トリックプレイを効率的に行うことができる。
以下、本発明を容易に説明し得る実施例を、図面を参照して説明する。
図42は、本発明に係る信号送受信方法の一実施例を示す図である。
ビデオソースデータをエンコードする(S110)。
ビデオソースデータをエンコードする方式としてAVC又はHEVCを用いることができる。
例えば、HEVCエンコードされたビデオストリームは、そのビデオデータのピクチャ情報を有するSEI(Supplemental Enhancement Information)メッセージ(message)を含むことができる。
HEVCエンコードされたビデオデータストリームのトリックプレイのために、HEVCビデオデータのSEIメッセージにGOP(Group of Picture)メタデータを含むことができる。HEVCビデオデータは、コーディングスライスセグメントNAL(Network Abstraction Layer)ユニット又はそのサブユニットを含むVCLデータ(video coding layer(VCL) NAL unit)を伝送することができるが、SEIメッセージがGOPメタデータを含むと、VCLデータの前にピクチャに関する情報をシグナルすることができ、効率的なトリックプレイが可能である。
SEIメッセージ内のGOPメタデータは、全GOPの個数、GOPサイズ、GOPを構成する各ピクチャのピクチャタイプ(picture type)、テンポラルID(temporal ID)及びテンポラルサブレイヤピクチャ情報(temporal sub−layer picture type)などを含むことができる。
SEIメッセージにGOPメタデータを含めたビデオを伝送する(S120)。
このように送信したビデオデータを受信してプレイする場合、次のような方法を用いることができる。
エンコードされたビデオデータを受信する(S210)。
受信したビデオのSEIメッセージをパース(parse)してGOP(Group of Picture)メタデータを得る(S220)。この場合、ビデオのSEIメッセージのGOP(Group of Picture)メタデータから、ビデオデータの全GOPの個数、GOPサイズ、GOPを構成する各ピクチャのピクチャタイプ(picture type)、テンポラルID(temporal ID)及びテンポラルサブレイヤピクチャ情報(temporal sub−layer picture type)などを得ることができる。
SEIメッセージをパースして得たGOP(Group of Picture)メタデータを用いて、エンコードされたビデオソースデータをデコードする(S230)。この場合、SEIメッセージのGOP(Group of Picture)メタデータを用いて、ビデオソースデータのピクチャをフィルタし、フィルタされたピクチャを用いてトリックプレイを行うことができる。このように、ビデオのSEIメッセージに含まれたGOP(Group of Picture)メタデータのピクチャ情報、及びエンコードされたビデオデータのピクチャのポインタ(又はビデオインデックス)を用いると、効率的なトリックプレイを行うことができる。すなわち、ビデオデコーダは、ビデオパーサーがSEIメッセージをパースして得たメタデータを用いて、ビデオソースのピクチャポインタでフィルタされたピクチャをデコードするため、トリックプレイを効率的に行うことができる。
図43は、本発明の実施例によってビデオデータをエンコードする場合にGOP(Group of Picture)の構造を例示する図である。同図を参照して本発明の一実施例を説明すると、次のとおりである。
ビデオソースデータをエンコードして出力する場合、GOP単位でビデオデータを伝送することができる。
この例は、GOP単位で伝送されるビデオデータの一例であるが、同図の最上段における、GOP−1、GOP、GOP+1はそれぞれ時間順で伝送されるGOPを示し、同図は、NALユニットヘッダー(NAL unit header)の最大temporal_idが2であり、GOPサイズが24である場合を示す。
GOPは、一つ以上のタイプのピクチャの集合を示すが、GOPは、I、P、Bの複数のピクチャタイプを含むことができる。
同図で、GOP内のピクチャタイプとディスプレイ順序を共に表示し、ディスプレイされるピクチャの順序をI1,B2,B3,B4,P5,B6,B7,P9,B10,B11,B12..と例示した。
しかし、ビデオエンコーディングの参照関係によってGOP内のデコーディング順序は、I1,P5,B3,B2,B4,P9,B7,B6..と例示したように、ディスプレイ順序とは異なる順序を有する。
コーディングされたスライスセグメントがIRAP(intra random access point)ピクチャに含まれる場合、Temporal_Idは0の値を有する。この例で、I1,P5,P9,P13,P17,P21は、Temporal_Idが0の値を有する。
B3,B7,B11,B15,B19,B23は、デコーディング順序においてTemporal_Idが0であるピクチャだけを用いるピクチャであり、Temporal_Idが1の値を有する。
そして、B2,B4,B6,B8,B10,B12,B14,B16,B18,B20,B22及びB24は、デコーディング順序においてTemporal_Idが0と1であるピクチャを用いるピクチャであり、Temporal_Idが2の値を有する。
本発明の実施例でGOPを構成する各ピクチャは、それぞれのテンポラルID(temporal ID)、ピクチャタイプ(picture type)、テンポラルサブレイヤピクチャタイプ情報(temporal_sub_layer_picture_type)及びディペンデンシレベル(dependency level)情報を含むことができるが、ビデオストリームを構成する全GOPの個数とGOPの各ピクチャの情報をSEIメッセージで優先的にシグナルすることができる。これについて詳述すると、次のとおりである。
図44は、本発明の実施例によって送受信されるビデオデータのシンタックスの一例を示す図である。
本発明の実施例によってエンコードされたビデオデータ、特に、HEVCを用いてエンコードされたビデオデータのSEIメッセージはGOPのメタデータ情報を含むことができる。
例えば、SEIメッセージのpayloadTypeが特定payladTypeである場合(payloadType = = xxx)、SEIメッセージはトリックプレイサービスのためのGOPメタデータ情報(trickplay_service_GOP_metadata_info(payloadSize))を含むことができる。この情報は、ビデオエレメントのSEIメッセージのSEI RBSP(raw byte sequence payload)に含めることができる。
受信機のデコーダ内のビデオパーサーは、ビデオデータのHEVC NALユニットをパース(parse)したとき、nal_unit_type値がSEIデータに該当する値であり、payloadTypeが特定値である場合、ビデオデータのSEIメッセージ内からトリックプレイサービスのためのGOPメタデータ情報(tricklplay_service_GOP_metadata_info)を得ることができる。このとき、payloadTypeは0よりも大きい整数値を有することができる。
受信機のデコーダのビデオパーサーは、トリックプレイサービスのためのGOPメタデータ情報(tricklplay_service_GOP_metadata_info())をデコードし、ビデオデータのトリックプレイのためのGOPのメタデータ情報を取得することができる。
この情報を用いて、受信機は、トリックプレイのためのGOPのメタデータ情報を、ビデオデータのロー・データをデコードする前にあらかじめ取得し、効率的なトリックプレイを実現することができる。
トリックプレイのためのGOPのメタデータ情報は、次のような情報を含むことができる。
GOP_total_countフィールドは、ストリームを構成する全GOPの個数を示す。
GOP_sizeフィールドは、GOPを構成する全ピクチャの個数を示す。
max_temporal_IDフィールドは、ビデオストリームに含まれた最大temporal_id値を示す。
temporal_IDフィールドは、HEVC標準で定義するnuh_temporal_id_plus1を用いて計算されたテンポラルID(temporalId=nuh_temporal_id_plus1?1)と同じ値を有することができる。
例えば、HEVC標準でnal_unit_typeが16〜23である場合、すなわち、RAP(random access picture)である場合には、TemporalId値が0の値を有することができ、nal_unit_typeがTSA(temporal sub−layer access(TSA)picture)_R、TSA_N、STSA(step−wise temporal sub−layer access(STSA)picture)_R、又はSTSA_Nである場合、TemporalId値が0でない値を有することができる。
picture_typeフィールドは、HEVCのNAL_unit_typeのうち、トリックプレイに利用可能な一部のnal_unit_typeを選択してpic_typeとして構成することができる。これについては後述する。
temporal_sub_layer_pic_typeフィールドは、1以上であるテンポラルIDを有するピクチャのうち、適応的(adaptive)に変更可能なtemporal_sub_layer_pic_typeを示す。この情報は、テンポラルサブレイヤピクチャタイプフィールドを示すが、その詳細な例は、後述する。
dependency_levelフィールドは、GOP内の各ピクチャの依存度の大きさを表す情報を示すが、これに対する値を例示すると、次のとおりである。例えば、dependency_levelフィールドが0x00である場合、このビデオサンプルのdependency_levelが知られていないことを示す(The dependency level of this sample is unknown)。
dependency_levelフィールドが0x01乃至0x3Eである場合、ビデオサンプルが、この値よりも大きいdependency_levelフィールドを有するビデオサンプルに依存しないということを示す(This sample does not depend on samples with a greater dependency_level values than this one)。
例えば、dependency_levelフィールドが0x3Fである場合は、reservedフィールドとしてもよい。
dependency_levelフィールドによるトリックプレイ動作は後述する。
図45は、本発明の実施例に係るビデオストリームのトリックプレイをサポート可能なピクチャタイプ情報を例示する図である。
ピクチャタイプ情報(pic_type)は、このフィールドの該当値によって、関連リーディングピクチャ(leading picture)がないIDR(instantaneous decoding refresh)(pic_type=0)、復号可能なリーディングピクチャを有するIDR(pic_type=1)、関連リーディングピクチャを有しないBLA(broken link access)(pic_type=2)などを示すことができる。
この例で、pic_typeが4である場合、BLAが関連RADL(random access decodable leading)とRASL(random access skipped leading)ピクチャを有し得ることを示し、pic_typeが5である場合、CRA(clean random access)ピクチャが関連リーディングピクチャを有し得ることを示す。pic_typeが6である場合、RADLピクチャを、pic_typeが7である場合、RASLピクチャなどを示すことができる。
ここで、リーディングピクチャは、出力順で、関連IRAPピクチャに先行するピクチャのことを指し、BLA(broken link access)は、各VCL NALユニットがBLA_W_LP、BLA_W_RADL、又はBLA_N_LPと同じnal_unit_type値を有するIRAPピクチャを意味する。CRA(clean random access)は、各VCL NALユニットがCRA_NUTと同じnal_unit_type値を有するIRAPピクチャを意味する。
各ピクチャタイプ情報と関連したnal_unit_typeは、最右列に例示されている。
図46は、本発明の実施例に係るトリックプレイのためのGOPのメタデータ情報のうち、dependency_levelフィールドによるトリックプレイの動作例を示す図である。
同図で例示するように、各ピクチャがI1,B2,B3,B4,B5,B6,B7,P9,B10,B11,B12..の順序を有するとすれば、I1及びI25のdependency_levelが1であり、P5及びP17はdependency_levelが2であり、B5,B13,B21のdependency_levelが3であることをそれぞれ示す。そして、B3,B7,B11,B15,B19,B23のdependency_levelが4であり、B2,B4,B6,B8,B10,B12,B14,B16,B18,B20,B22,B24のdependency_levelが5であることを例示する。
2倍速のトリックプレイを行う場合、dependency_levelが1、2、3、及び4であるピクチャを利用し、同図に例示するように、例えば、dependency_levelが3であれば、当該サンプルを含んだトリックプレイの場合、dependency_level=1,2,3に該当するサンプルだけを用いてプレイすればいいことを意味する。したがって、dependency_levelを用いてトリックプレイをする際に参照すべきレイヤのレベルと参照してはならないレイヤのレベルとを区別することができる。
図47は、本発明の実施例に係るトリックプレイのためのGOPのメタデータ情報のうち、temporal_sub_layer_pic_typeフィールドによるテンポラルサブレイヤピクチャタイプ情報(temporal_sublayer_picture_type)の例を示す図である。
上述したように、テンポラルサブレイヤピクチャタイプ情報(temporal_sublayer_picture_type)は、テンポラルIDを有するピクチャのうち、適応的(adaptive)に変更可能なTemporal_sub_layer_pic_typeを区別する情報である。
サブレイヤ(Sub_layer)は、特定TemporalId値を有するVCL NALユニットと関連non−VCL NALユニットを構成するテンポラルスケーブル(temporal scalable)ビットストリームのテンポラルスケーブルレイヤ(temporal scalable layer)を示す。
サブレイヤレファレンスピクチャ(Sub_layer reference picture)は、デコーディング順序において同じサブレイヤの連続したピクチャのデコーディングプロセスでインタープレディクション(inter prediction)のために使用できるサンプルを含むピクチャであり、サブレイヤノンレファレンスピクチャ(sub−layer non−reference picture)は、デコーディング順序において同じサブレイヤの連続したピクチャのデコーディングプロセスでインタープレディクションのために使用できないサンプルを含むピクチャである。
この例で、テンポラルサブレイヤピクチャタイプ情報の値が0である場合、当該サンプルがレファレンスTSA(Temporal sub−layer access)ピクチャであることを示す。テンポラルTSAピクチャは、各VCL NALユニットがTSA_R又はTSA_Nのようなnal_unit_typeを有するコーディングされたピクチャのことを指す。
テンポラルサブレイヤピクチャタイプ情報の値が1である場合、当該サンプルがノンレファレンスTSAピクチャであることを示す。
テンポラルサブレイヤピクチャタイプ情報の値が2である場合、当該サンプルがレファレンスSTSA(Step−wise temporal sub−layer access)ピクチャであることを示すが、STSAピクチャは、各VCL NALユニットがSTSA_R又はSTSA_Nのようなnal_unit_tyeを有するコーディングされたピクチャのことを指す。
テンポラルサブレイヤピクチャタイプ情報の値が3である場合、当該サンプルがノンレファレンスSTSAピクチャであることを示すことができる。
各テンポラルサブレイヤピクチャタイプ情報によるトリックプレイの差異について説明する。Temporal_IDが0でないレイヤでTSA(Temporal Sub−layer Access picture)とSTSA(Step−wise Temporal Sub−layer Access picture)に基づいてダイナミックにフレームレートを変更させることができる。TSAとSTSAは、フレームレートをどのような方式で又はどれくらい異なるフレームレートに変更できるかにおいて差異がある。すなわち、両ピクチャタイプは、一度に飛ばし得るtemporal_idの個数が異なる。これにつしては後述する。
図48は、本発明の実施例に係るトリックプレイのためのGOPのメタデータ情報のうち、テンポラルサブレイヤピクチャタイプ情報(temporal_sub_layer_pic_type)のタイプがTSAである場合、トリックプレイのためのフレームレート(フレームレート)を変更する例を示す図である。
同図で、T_IDはTemporal_IDを表すが、テンポラルサブレイヤピクチャタイプ情報(temporal_sub_layer_pic_type)がTSAである場合、トリックプレイによりtemporal_IDが2であるレイヤのストリームだけを4倍速でディスプレイしてから、倍速数を1倍速の正常速度でディスプレイすることができる。
すなわち、T_IDが1であるピクチャはTSAピクチャであるが、同図で、T_IDが2であるピクチャとT_IDが0であるピクチャとを連結した矢印で表示するように、別個のTemporal_IDを有するピクチャを用いて倍速を直接変換できるトリックプレイを提供することができる。(点線で表示)。
図49は、本発明の実施例に係るトリックプレイのためのGOPのメタデータ情報のうち、テンポラルサブレイヤピクチャタイプ情報(temporal_sub_layer_pic_typeフィールド)のタイプがSTSAである場合、トリックプレイのためのフレームレートを変更する例を示す図である。
同図でT_IDはTemporal_IDを表すが、T_IDが1である場合、STSAピクチャであってもよい。同図は、テンポラルサブレイヤピクチャタイプ情報(temporal_sub_layer_pic_type)がSTSAである場合、トリックプレイによりtemporal_IDが2であるレイヤのストリームだけを4倍速でディスプレイするが、倍速数を2倍速にしてプレイした後、次のSTSAで1倍速で(正常速度で)ディスプレイする過程を示す。
同図で、T_IDが2であるピクチャとT_IDが1であるピクチャとを連結した矢印で表示したように、別個のTemporal_IDを有するピクチャを用いて順次に倍速変換が可能なトリックプレイを提供することができる(点線で表示)。
上記の図48及び図49では、変換可能な倍速数に対する制限事項(constraint)を知らせる方法が必要である。例えば、temporal_idが0である場合、フレームレートが15p、temporal_idが1である場合、フレームレートが30pであり、temporal_idが2である(max_temporal_id=2)場合、フレームレートが60pである、と仮定する。
この場合、テンポラルサブレイヤピクチャタイプ情報(temporal_sub_layer_pic_type)がTSAであれば、temporal_id0からtemporal_id2に直接アプローチ可能であるため、適応的ストリーム(adaptive stream)を送受信した場合、フレームレートが15pであるビデオサービスを提供しているが、フレームレートが60pサービスに直接変更可能であることを示すことができる。したがって、temporal_idとtemporal_sub_layer_pic_typeを用いると、トリックプレイ変換をより効率的に行うことができる。
他の例として、テンポラルサブレイヤピクチャタイプ情報(temporal_sub_layer_pic_type)がSTSAである場合、ピクチャに対して段階的アプローチのみ可能であるため、temporal_id0からtemporal_id1にアプローチし、その後、temporal_id2にアプローチすることができる。
したがって、順次に、15pビデオから30pビデオに転換し、さらに30pビデオから60pビデオにサービスを変更することができる。このように、Temporal_IDが0でないレイヤでTSA(Temporal Sub−layer Access)ピクチャとSTSA(Step−wise Temporal Sub−layer Access)ピクチャに基づいてダイナミックにフレームレートを変更させることができる。
図50は、本発明に係る信号受信装置の一実施例を示す図である。同図を参照して、本発明に係る信号受信装置の一実施例を説明すると、次のとおりである。
信号受信装置の一実施例はデコーダを備えることができるが、デコーダは、一時記憶部210、ビデオパーサー220及びビデオデコーディング部230を備えることができる。
信号受信装置の一実施例は、エンコードされたビデオデータを受信することができる。エンコードされたデータは、時間的な順序で、GOPに含まれたピクチャを含むことができる。
一時記憶部210は、エンコードされたビデオデータを一時記憶するバッファの役割を担うことができるが、この場合、エンコードされたビデオデータはファイル形式であってもよく、ビデオストリームであってもよい。
ビデオパーサー220は、エンコードされたビデオデータからSEIメッセージをパースしてGOP(Group of Picture)メタデータを得ることができる。GOP(Group of Picture)メタデータは、上述したように、ビデオデータの全GOPの個数、GOPサイズ、GOPを構成する各ピクチャのピクチャタイプ、テンポラルID(temporal ID)及びテンポラルサブレイヤピクチャ情報(temporal sub−layer picture type)を含むことができる。ビデオパーサー220は、SEIメッセージをパースし、SEIメッセージから得たGOPメタデータをビデオデコーディング部230に伝達することができる。
又は、ビデオパーサー220は、GOPメタデータを用いてGOP内のピクチャをフィルタしたりデマックスして出力することができる。
ビデオデコーディング部230は、ビデオパーサー220が出力するビデオデータを用いてビデオを再生するようにデコードすることができる。
ビデオデコーディング部230は、ビデオデータ内のインデックスに基づいてトリックプレイを行うことができる。
この場合、ビデオデコーディング部230は、ビデオパーサー220が得たGOP(Group of Picture)メタデータに基づいて、ビデオトリックプレイを効率的に行うことができる。これについては図46乃至図48に例示した。
例えば、ビデオパーサー220は、ビデオデータ内の各ピクチャ(又はコーディングスライスセグメント)に対するtemporalID、ピクチャタイプ情報、ディペンデンシレベル情報(dependency_level)及びテンポラルサブレイヤピクチャタイプを用いて、GOP内のピクチャの中からトリックプレイに必要なピクチャを出力し、ビデオデコーディング部230がデコーディング順序に関する情報をビデオデータを復号しながら直接得ることに比べてより速く得て、該当のピクチャをまずデコードするようにすることができる。
同図で受信されるビデオデータのGOP内のピクチャは、I1,B2,B3,B4,P5,B6,B7,P9,B10,B11,B12..と例示し、その下の括弧中にtemporalID値を例示した。
ビデオパーサー220がSEIメッセージからGOPメタデータを得た場合、ビデオデコーディング部230は、GOPメタデータを用いて例示の順序でピクチャをデコードすることができる。これによって、1倍速の正常速度でビデオピクチャをディスプレイすることができる。
しかし、ビデオパーサー220がSEIメッセージからGOPメタデータを得た場合、ビデオデコーディング部230は、GOPメタデータを用いて2倍速のトリックプレイをするとき、I1,P5,B3,P9,B7,P13,B11,P17,B15,P21,B19,B23のデコーディング順序でピクチャをデコードしてトリックプレイを行うことができる。
ビデオデコーディング部230は、ビデオパーサー220がパースしたGOPメタデータを用いて4倍速のトリックプレイをする場合、I5,P5,P9,P13,P17,P21のデコーディング順序でピクチャをデコードしてトリックプレイを行うことができる。
他の例として、ビデオデコーディング部230は、トリックプレイ時に倍速変換をする場合、テンポラルサブレイヤピクチャタイプ情報を用いることができる。
信号受信装置の一実施例は、ビデオプロセシング部240をさらに備えることができ、ビデオプロセシング部240は、ビデオデコーディング部240が復号したビデオデータに対してスケーリング処理などの様々な後処理を行うことができる。
したがって、ビデオデコーディング部230は、ビデオソースデータを復号しながらトリックプレイのための情報を得るとともに、ビデオパーサー220からSEIメッセージを介してしあらかじめトリックプレイに必要な情報を得ることによって、より効率的にトリックプレイを行うことができる。
図51は、本発明に係る信号送信装置の一実施例を示す図である。同図を参照して、本発明に係る信号送信装置の一実施例の動作を説明すると、次のとおりである。
本発明に係る信号送信装置の一実施例は、ビデオソースエンコーダ310及びビデオ伝送部320を含む。
ビデオソースエンコーダ310は、ビデオソースデータをエンコードする(S110)。ビデオソースエンコーダ310は、ビデオソースデータをエンコードする方式としてAVC又はHEVCを用いることができる。
ビデオソースエンコーダ310は、ビデオ伝送部320に送信するビデオフォーマットを生成して出力することができるが、例えば、HEVCエンコードされたビデオストリームは、そのビデオデータのピクチャ情報を有するSEI(Supplemental Enhancement Information)メッセージを含むことができる。
HEVCエンコードされたビデオデータストリームのトリックプレイのために、HEVCビデオデータのSEIメッセージにGOP(Group of Picture)メタデータを含むことができる。
SEIメッセージ内のGOPメタデータは、全GOPの個数、GOPサイズ、GOPを構成する各ピクチャのピクチャタイプ(picture type)、テンポラルID(temporal ID)及びテンポラルサブレイヤピクチャ情報(temporal sub−layer picture type)などを含むことができる。これについては図44に例示した。
ビデオ伝送部320は、HEVCビデオデータのSEIメッセージにGOPメタデータを含めたビデオを伝送する。
ビデオを伝送する場合、トリックプレイを効率的に実現するために、図1乃至図41で例示したように、PESレベルでの情報を含むことができる。
したがって、受信機のデコーダがSEIメッセージ内のGOPメタデータを用いて、より効率的にビデオトリックプレイを行うことが可能になる。
本発明の実施例によれば、標準化されたエンコーディング方式によるストリーム、例えば、AVC又はHEVCストリームのトリックプレイのためのシグナリング情報を送受信することができ、且つ、エンコードされたストリームのトリックプレイをシグナルする場合、拡張可能な方式を提供することができる。そして、HEVCエンコードされたコンテンツに対するトリックプレイ方式と互換可能でありながらもより効率的なトリックプレイを可能にさせることができる。
実施例は、発明を実施するための形態で記述された。