以下の実施形態は、当業者が本発明を実施及び利用することができるように十分詳細に説明される。本開示に基づいて別の実施形態が明らかになること、及び本発明の範囲から逸脱することなく処理又は機構の変更を行うことができるということを理解されたい。
以下の説明において、本発明を完全に理解できるように多くの具体的な詳細内容が提示される。しかしながら、本発明はこれらの具体的な詳細内容がなくとも実施できることは明らかである。本発明が不明瞭にならないように、一部の公知の回路、システム構成、及び処理ステップは、詳細に開示されていない。
同様に、システムの実施形態を示す図面は、概略的なものであり、縮尺通りではなく、特に、一部の寸法は、表現を明確にするためのものであり、図面内で誇張して示されている。例示、説明、及びその理解を明確及び容易にするために、いくつかの機能が共通する複数の実施形態を開示して説明するが、互いに類似した同様の特徴部は、通常、同様の参照符号を用いて説明する。
「シンタックス」という用語は、データ構造を表す一組の要素を意味する。本明細書で用いられる「モジュール」という用語は、使用される文脈により、本発明におけるソフトウェア、ハードウェア、又はそれらの組み合わせを含むことができる。
ここで図1を参照すると、本発明の一実施形態における映像符号化システム100のブロック図が示されている。ビデオエンコーダ102は、ビデオコンテンツ108を受信し、ビデオビットストリーム110を復号用のビデオデコーダ104に送信して、ディスプレイインタフェース120に表示することができる。
ビデオエンコーダ102は、ビデオコンテンツ108を受信及び符号化することができる。ビデオエンコーダ102は、ビデオコンテンツ108を種々の形式に符号化するためのユニットである。ビデオコンテンツ108は、対象物のシーンのデジタル表現として規定される。例えば、ビデオコンテンツ108は、1つ又はそれ以上のビデオカメラのデジタル出力とすることができる。
符号化は、ビデオコンテンツ108をコンピュータにより種々の形式に変更することとして規定される。例えば、符号化は、ビデオコンテンツ108をビデオビットストリーム110に圧縮して、ビデオビットストリーム110を送信するのに必要なデータ量を減少させることができる。
別の実施例では、ビデオコンテンツ108は、圧縮されることによって符号化されること、視覚的に強調されること、1つ又はそれ以上のビューに分割されること、解像度が変更されること、アスペクト比が変更されること、又はそれらの組み合わせが可能である。別の例示的な実施例では、ビデオコンテンツ108は、高効率映像符号化(HEVC)/H.265ドラフト規格により符号化することができる。
ビデオエンコーダ102は、ビデオコンテンツ108を符号化してビデオビットストリーム110を生成することができる。ビデオビットストリーム110は、ビデオコンテンツ108に関連する情報を表すビット列として規定される。ビデオビットストリーム110は、例えば、ビデオコンテンツ108の圧縮を表すビット列とすることができる。別の実施例では、ビデオビットストリーム110は、時間とともに連続的に送信されるビデオコンテンツ108を表す一連のビットである。
ビデオエンコーダ102は、シーンに関するビデオコンテンツ108を様々な方法で受け取ることができる。例えば、実在の対象物を表すビデオコンテンツ108は、ビデオカメラ、複数のカメラで撮影されること、コンピュータで生成されること、ファイルとして提供されること、又はそれらの組み合わせが可能である。
ビデオコンテンツ108は、様々なビデオ機能を含むことができる。例えば、ビデオコンテンツ108は、単一視点ビデオ、多視点ビデオ、立体的ビデオ、又はそれらの組み合わせを含むことができる。別の実施例では、ビデオコンテンツ108は、3D眼鏡を用いずに3次元(3D)ビデオ表示に対応するための4つ又はそれより多いカメラの多視点ビデオとすることができる。
ビデオエンコーダ102は、ビデオシンタックス114を使用してビデオコンテンツ108を符号化して、ビデオビットストリーム110を生成することができる。ビデオシンタックス114は、ビデオコンテンツ108を符号化及び復号するための符号化方法を表す一組の情報要素として規定される。ビデオビットストリーム110は、高効率映像符号化/H.265規格のようなビデオシンタックス114に準拠し、HEVCビデオビットストリーム、超高精細ビデオビットストリーム、又はそれらの組み合わせを含むことができる。ビデオビットストリーム110は、ビデオシンタックス114を含むことができる。
ビデオビットストリーム110は、ビデオコンテンツ108の画像、及びビデオコンテンツ108の符号化に関する関連制御情報を表す情報を含むことができる。例えば、ビデオビットストリーム110は、ビデオシンタックス114のオカレンス、及びビデオコンテンツ108のオカレンスを含むことができる。
映像符号化システム100は、ビデオビットストリーム110を復号するためのビデオデコーダ104を含むことができる。ビデオデコーダ104は、ビデオビットストリーム110を受信しビデオビットストリーム110を変更して、ビデオストリーム112を生成するためのユニットとして規定される。
ビデオデコーダ104は、ビデオビットストリーム110を復号し、ビデオシンタックス114を使用してビデオストリーム112を生成することができる。復号は、ビデオビットストリーム110をコンピュータにより変更してビデオストリーム112を生成することとして規定される。例えば、復号は、ビデオビットストリーム110を解凍して、ディスプレイインタフェース120に表示するための形式で構成されたビデオストリーム112を生成することができる。
ビデオストリーム112は、ビデオコンテンツ108のコンピュータにより変更されたバージョンとして規定される。例えば、ビデオストリーム112は、種々の解像度を有するビデオコンテンツ108の変更されたオカレンスを含むことができる。ビデオストリーム112は、ビデオコンテンツ108から切り取って復号されたピクチャを含むことができる。
別の実施例では、ビデオストリーム112は、ビデオコンテンツ108とは異なるアスペクト比、異なるフレームレート、異なる立体的ビュー、異なるビュー順序、又はそれらの組み合わせを有することができる。ビデオストリーム112は、種々の色パラメータ、色平面、コントラスト、色相、又はそれらの組み合わせを含む様々な視覚的特性情報を有することができる。
映像符号化システム100は、ディスプレイプロセッサ118を含むことができる。ディスプレイプロセッサ118は、ディスプレイインタフェース120上で表示するためにビデオデコーダ104からビデオストリーム112を受信することができる。ディスプレイインタフェース120は、ビデオストリーム112の視覚的表現を提示できるユニットである。
ディスプレイインタフェース120は、例えば、スマートフォンディスプレイ、デジタルプロジェクタ、DVDプレーヤディスプレイ、又はそれらの組み合わせを含むことができる。映像符号化システム100は、ビデオデコーダ104、ディスプレイプロセッサ118、及びディスプレイインタフェース120を個別のユニットとして示しているが、ビデオデコーダ104は、ディスプレイプロセッサ118及びディスプレイインタフェース120を含むことができることを理解されたい。
ビデオエンコーダ102は、通信経路106を通じてビデオビットストリーム110をビデオデコーダ104に送信することができる。通信経路106は、データ転送に好適な様々なネットワークとすることができる。
例えば、通信経路106は、無線通信、有線通信、光、超音波、又はそれらの組み合わせを含むことができる。通信経路106に含めることができる無線通信の実施例は、衛星通信、セルラ通信、ブルートゥース、赤外線データ協会規格(IrDA)、ワイヤレスフィデリティ(WiFi)、及びワールドワイド・インターオペラビリティ・フォー・マイクロウェーブ・アクセス(WiMAX)である。通信経路106に含めることができる有線通信の実施例は、イーサネット、デジタル加入者線(DSL)、ファイバー・トゥ・ザ・ホーム(FTTH)、及び基本電話サービス(POTS)である。
映像符号化システム100は、様々な映像符号化シンタックス構造を用いることができる。映像符号化システム100は、例えば、高効率映像符号化/H.265ワーキングドラフトバージョンを使用してビデオ情報を符号化及び復号することができる。HEVCドラフトバージョンは、その内容全体が引用により本明細書に組み込まれる文献に説明されている。その内容全体が引用により本明細書に組み込まれる文献は、以下を含む。
B. Bross、W. Han、J Ohm、G. Sullivan、T. Wieg著 「High−Efficiency Video Coding (HEVC) text specification draft 8」 JCTVC−J1003 d7 2012年7月(Stockholm)
B. Bross、W. Han、J. Ohm、G. Sullivan、T. Wieg著 「High Efficiency Video Coding (HEVC) text specification draft 7」 JCTVC−I1003 d4 2012年5月(Geneva)
M. Haque、K. Sato、A. Tabatabai、T. Suzuki著 「HEVC VUI Parameters with Extension Hooks」 JCTVC−J0270 2012年7月(Stockholm)
M. Haque、A. Tabatabai著 「Extension of HEVC VUI Syntax Structure」 JCTVC−I0263 2012年5月
M. Haque著 「AHG10: VUI and HRD syntax designs agreed by the BoG on VPS and NUH」 JCTVC−J0548rl 2012年7月
ここで図2を参照すると、ビデオビットストリーム110の実施例が示されている。ビデオビットストリーム110は、図1のビデオコンテンツ108の符号化されたオカレンスを含み、ビデオシンタックス114を使用して復号して、図1のディスプレイインタフェース120に表示するための図1のビデオストリーム112を生成することができる。
ビデオビットストリーム110は、シンタックスタイプ202で示される様々なビデオタイプを含むことができる。シンタックスタイプ202は、ビデオビットストリーム110を符号化及び復号するために使用される映像符号化の種類のインジケータとして規定される。例えば、ビデオコンテンツ108は、アドバンスドビデオコーディング204(AVC)、スケーラブル映像符号化206(SVC)、多視点映像符号化208(MVC)、多視点映像プラス奥行き210(MVD)、及び立体的ビデオ212(SSV)に関するシンタックスタイプ202を含むことができる。
アドバンスドビデオコーディング204及びスケーラブル映像符号化206を使用して、単一視点ベースビデオを符号化してビデオビットストリーム110を生成することができる。単一視点ベースビデオは、単一のカメラから生成されるビデオコンテンツ108を含むことができる。
多視点映像符号化208、多視点映像プラス奥行き210、及び立体的ビデオ212を使用して、2つ又はそれより多いビューを有するビデオコンテンツ108を符号化することができる。多視点ビデオは、例えば、複数のカメラからのビデオコンテンツ108を含むことができる。
ビデオシンタックス114は、エントリ識別子216を含むことができる。エントリ識別子216は、複数の符号化されたビデオシーケンスを区別するための値である。符号化されたビデオシーケンスは、単一視点ビデオ、多視点ビデオ、又は立体的ビデオに関して、様々なビットレート、フレームレート、解像度、又はスケーラブルレイヤを有するビデオコンテンツ108のオカレンスを含むことができる。
ビデオシンタックス114は、ビデオコンテンツ108内の各フレームに関連するエントリ数を識別するためのエントリカウント214を含むことができる。エントリカウント214は、ビデオコンテンツ108内で表されるエントリの最大数である。
ビデオシンタックス114は、繰り返し識別子218を含むことができる。繰り返し識別子218は、ビデオコンテンツ108の個々の繰り返しを区別するための値である。
ビデオシンタックス114は、繰り返しカウント220を含むことができる。繰り返しカウント220は、ビデオコンテンツ108の最大繰り返し回数を示す値である。
スケーラブル映像符号化に関しては、この繰り返しカウントを使用して、スケーラブル映像符号化の場合の種々のスケーラブルビデオレイヤに関連する情報エントリの数を示すことができる。多視点映像符号化に関しては、繰り返しカウントを使用して、ビデオコンテンツ108のビューの数に関連する操作ポイントの数を示すことができる。
例えば、スケーラブル映像符号化では、追加の拡張レイヤを有するベースレイヤを含むようにビデオコンテンツ108を符号化して、ビデオビットストリーム110のマルチレイヤオカレンスを生成することができる。ベースレイヤは、最低の解像度、フレームレート、又は品質を有することができる。
拡張レイヤは、ビデオ品質を高めるために使用される追加の予備情報を有する段階的な改良点を含むことができる。スケーラブルビデオレイヤ拡張部は、拡張されてスケーラブル映像符号化を包含できるHEVC新規ベースライン規格を含むことができる。
ビデオシンタックス114は、操作識別子222を含むことができる。操作識別子222は、ビデオコンテンツ108の個別の操作ポイントを区別するための値である。操作ポイントは、多視点映像符号化に関して存在する情報エントリ、例えば、タイミング情報、ネットワーク抽象レイヤ(NAL)仮想参照デコーダ(HRD)パラメータ、映像符号化レイヤ(VCL)HRDパラメータ、pic_struct_present_flag要素、又はそれらの組み合わせである。
ビデオシンタックス114は、操作カウント224を含むことができる。操作カウント224は、ビデオコンテンツ108の操作ポイントの最大数を示す値である。
操作ポイントは、多視点ビデオ及び3Dビデオに関して、種々のカメラで生成されるビューのような様々なビューからの符号化ビデオシーケンスの生成に関連する。多視点映像符号化に関して、操作ポイントは、出力対象ビューと出力対象ビューに依存する別のビューとを有する、ビデオビットストリーム110のサブセットに関連する。別のビューは、それらが下位ビットストリーム抽出プロセスを使用して得られる場合に、出力対象ビューに依存する。1つより多い操作ポイントが、ビデオビットストリーム110の同じサブセットに関連することができる。例えば、操作ポイントを復号することは、図1のデバイス102での表示に関して、操作ポイントと、出力対象ビューの次の出力とに対応するビデオビットストリームのサブセットを、ビデオストリーム112の一部分として復号することに言及するものである。
ビデオシンタックス114は、ビュー識別子226を含むことができる。ビュー識別子226は、ビデオコンテンツ108の個別のビューを区別するための値である。
ビデオシンタックス114は、ビューカウント228を含むことができる。ビューカウント228は、ビデオコンテンツ108のビューの最大数を示す値である。
例えば、単一視点ビデオは、単一のカメラで生成されたビデオとすることができる。多視点ビデオは、様々な位置及び距離に位置する複数のカメラによって、シーン内で視認される対象物から生成することができる。
ビデオコンテンツ108は、様々なビデオ特性情報を含むことができる。例えば、ビデオコンテンツ108は、超高精細ビデオのような高解像度ビデオとすることができる。ビデオコンテンツ108は、7680×4320、8K×2K、4K×2K、又はそれらの組み合わせの解像度を含む、3840×2160又はそれ以上の画素解像度を有することができる。ビデオコンテンツ108は、高解像度ビデオに対応しているが、ビデオコンテンツ108は更に、高精細(HD)ビデオのような低解像度に対応できるということを理解されたい。ビデオシンタックス114は、ビデオコンテンツ108の解像度に対応することができる。
ビデオコンテンツ108は、15フレーム毎秒(fps)、24fps、25fps、30fps、50fps、60fps、及び120fpsを含む、様々なフレームレートに対応することができる。個々のフレームレートを説明したが、ビデオコンテンツ108は、ゼロフレーム毎秒及びそれ以上の固定及び可変のフレームレートに対応できることを理解されたい。ビデオシンタックス114は、ビデオコンテンツ108のフレームレートに対応することができる。
ビデオビットストリーム110は、1つ又はそれ以上の時間レイヤ230を含むことができる。時間レイヤ230は、特定のフレームレートでのビデオストリーム112を表すビデオビットストリーム110の一部分として規定される。各時間レイヤ230は、フレーム毎秒(fps)として表された種々のフレームレートでビデオストリーム112を表すことができる。時間レイヤ230は、下位レイヤを含む上位レイヤを備える階層を構成することができる。
例えば、時間レイヤ230の第1のオカレンス232は、ビデオストリーム112の15fpsオカレンスを表し、時間レイヤ230の第2のオカレンス234は、ビデオストリーム112の30fpsオカレンスを表し、時間レイヤ230の第3のオカレンス236は、ビデオストリーム112の60fpsオカレンスを表すことができる。各時間レイヤ230は、ビデオコンテンツ108を表すビデオフレーム238を含むことができる。
時間レイヤ230の第1のオカレンス232は、ビデオコンテンツ108を符号化して15fpsでのビデオストリーム112を生成するためのベースレイヤを表すことができる。時間レイヤ230の第2のオカレンス234は、時間レイヤ230の第1のオカレンス232のようなベースレイヤと、30fpsでのビデオコンテンツ108のビデオストリーム112との間の差分を表すことができる。
第2のオカレンス234は、ベースレイヤのフレームと、30fpsでのビデオコンテンツ108を表示するために要求される新しいフレームとの間の差分を表すフレームを含むことができる。時間レイヤ230の第3のオカレンス236は、時間レイヤ230の第2のオカレンス234と、60fpsでのビデオコンテンツとの間の差分を表すことができる。
例示的な実施例では、図1のスマートフォンに関するビデオデコーダ104は、第1のオカレンス232及び第2のオカレンス234からの情報を含むことができるビデオビットストリーム110から30fpsでの時間レイヤ230の第2のオカレンス234を抽出することができる。時間レイヤ230の第3のオカレンス236からのビデオビットストリーム110内の情報を切り捨てて、ビデオビットストリーム110のサイズを小さくすることができる。
ここで図3を参照すると、高効率映像符号化(HEVC)ビデオ表示情報(VUI)シンタックス302の実施例が示されている。HEVC VUIシンタックス302は、図1のビデオコンテンツ108に関する追加のアプリケーションユーザビリティ機能を可能にするための図1のビデオビットストリーム110に関する情報を含む。
HEVC VUIシンタックス302は、図3のHEVC VUIシンタックス表内の要素を表す。HEVC VUIシンタックス302の要素は、図3のHEVC VUIシンタックス表において表された階層構造で配列される。
HEVC VUIシンタックス302は、vui_parameters要素のようなHEVC VUIシンタックスヘッダ部303を含む。HEVC VUIシンタックスヘッダ部303は、HEVC VUIシンタックス302を識別するための記述子である。HEVC VUIシンタックス302を使用して、ビデオビットストリーム110を符号化及び復号する。
HEVC VUIシンタックス302は、ビデオビットストリーム110に関する様々な情報を含むことができる。HEVC VUIシンタックス302は、ビデオコンテンツ108に関するアスペクト比、オーバースキャン、ビデオ信号タイプ、色差、NAL HRD値、ビットストリーム制限、又はそれらの組み合わせに関する情報を含むことができる。
HEVC VUIシンタックス302は、ビデオコンテンツ108のアスペクト比に関するアスペクト比情報を含むことができる。HEVC VUIシンタックス302は、アスペクト比フラグ304、アスペクト比インジケータ306、アスペクト比幅308、及びアスペクト比高さ310、又はそれらの組み合わせを含むことができる。
HEVC VUIシンタックス302は、追加のアスペクト比情報がビデオビットストリーム110内に符号化されていることを示すための、aspect_ratio_info_present_flag要素のようなアスペクト比フラグ304を含むことができる。アスペクト比フラグ304は、アスペクト比情報が、ビデオビットストリーム110内に存在していないことを示すための値0、及びアスペクト比情報が、ビデオビットストリーム110に含まれていることを示すための値1を有することができる。
アスペクト比インジケータ306は、ビデオコンテンツ108のアスペクト比を表す値である。例えば、aspect_ratio_idcのようなアスペクト比インジケータ306は、ビデオコンテンツ108に関する所定のアスペクト比の列挙型リストに関するインデックス値を含むことができる。別の実施例では、アスペクト比インジケータ306は、アスペクト比が、アスペクト比幅308及びアスペクト比高さ310に関する個別の値で表すことができることを示す値を含むことができる。
sar_width要素のようなアスペクト比幅308は、ビデオコンテンツ108の幅を表すことができる。sar_hight要素のようなアスペクト比高さ310は、ビデオコンテンツ108の高さを表すことができる。アスペクト比幅308及びアスペクト比高さ310は、ビデオコンテンツの大きさを、比率、画素、線、インチ、センチメートル、又はそれらの組み合わせで表すことができる。
HEVC VUIシンタックス302は、ビデオコンテンツ108に関するオーバースキャン情報を含むことができる。HEVC VUIシンタックス302は、オーバースキャン存在フラグ312及びオーバースキャン適切フラグ314を含むことができる。
オーバースキャンは、図1のビデオストリーム112から切り取って復号されたピクチャの境界近くの一部の部分が、ビデオストリーム112の表示領域内で視認できない場合の表示処理として規定される。アンダースキャンは、ビデオストリーム112から切り取って復号されたピクチャ全体が、表示領域内で視認できるが、表示領域全体を対象として含んでいない場合の表示処理として規定される。
オーバースキャン存在フラグ312は、オーバースキャン情報が、ビデオビットストリーム110に含まれているか否かを示すことができる。overscan_info_present_flagのようなオーバースキャン存在フラグ312は、オーバースキャン情報が、ビデオビットストリーム内に存在していることを示すための値1、又はオーバースキャン情報が、ビデオビットストリーム110内に存在していないことを示すための値0を有することができる。
オーバースキャン適切フラグ314は、ビデオビットストリーム110内に符号化されたビデオコンテンツ108が、オーバースキャンを使用して表示できることを示すことができる。overscan_appropriate_flag要素のようなオーバースキャン適切フラグ314は、ビデオストリーム112から切り取って復号されたピクチャが、オーバースキャンを使用して表示するのに好適であることを示すための値1を有することができる。オーバースキャン適切フラグ314は、ビデオストリーム112から切り取って復号されたピクチャが、視覚的に重要な情報を含み、オーバースキャンを使用して表示すべきでないことを示すための値0を有することができる。
HEVC VUIシンタックス302は、ビデオコンテンツ108に関するビデオ信号種類情報を含むことができる。HEVC VUIシンタックス302は、ビデオ信号存在フラグ316、ビデオ形式317、ビデオフルレンジフラグ318、カラー記述存在フラグ320、原色322、伝達特性324、及び行列係数326を含むことができる。
video_signal_type_present_flag要素のようなビデオ信号存在フラグ316は、ビデオ信号種類情報が、ビデオビットストリーム110に含まれていることを示すことができる。ビデオ信号存在フラグ316は、追加のビデオ信号種類情報が、ビデオビットストリーム110内に存在していることを示すための値1を有することができる。ビデオ信号存在フラグ316は、ビデオ信号種類情報が、ビデオビットストリーム110内に存在していないことを示すための値0を有することができる。
video_format要素のようなビデオ形式317は、ビデオの形式を示すことができる。video_full_range_flag要素のようなビデオフルレンジフラグ318は、ビデオビットストリーム110内に符号化されたビデオコンテンツ108に関する輝度及び色差信号の黒レベル及び範囲を示すことができる。
colour_description_present_flag要素のようなカラー記述存在フラグ320は、ビデオビットストリーム110内のカラー記述情報の存在を示すことができる。カラー記述存在フラグ320は、追加のカラー記述情報が、ビデオビットストリーム110に含まれていることを示すための値1を有することができる。カラー記述存在フラグ320は、他のカラー記述情報が含まれていないことを示すための値0を有することができる。カラー記述情報は、原色322、伝達特性324、及び行列係数326を含むことができる。
原色322は、ビデオコンテンツ108内で使用されるカラースキームを示すことができる。例えば、colour_primaries要素のような原色322は、元の原色の色度座標を示すことができる。
伝達特性324は、ビデオコンテンツ108の光エレクトロニクス伝達特性を示すことができる。例えば、transfer_characteristics要素のような伝達特性324は、所定の表示特性セットを表す列挙型値とすることができる。
行列係数326は、原色322で示される赤、緑、及び青の原色から輝度及び色差信号を得るために使用される係数を示すことができる。matrix_coefficient要素のような行列係数326は、コンピュータにより赤、青、及び緑の色度座標セットを輝度及び色差均等値に変換するために使用される行列係数とすることができる。
HEVC VUIシンタックス302は、ビデオコンテンツ108に関する色差情報を含むことができる。HEVC VUIシンタックス302は、色差位置情報存在フラグ328、色差最高部フィールドサンプル330、色差最低部フィールドサンプル332、及び中間色差フラグ334を含むことができる。
chroma_loc_info_present_flag要素のような色差位置情報存在フラグ328は、追加の色差情報が、ビデオビットストリーム110内に存在しているか否かを示すことができる。色差位置情報存在フラグ328は、追加の色差情報が存在していることを示すための値1、又は追加の色差情報が存在していないことを示すための値0を有することができる。追加の色差情報は、色差最高部フィールドサンプル330、及び色差最低部フィールドサンプル332を含むことができる。
chroma_sample_loc_type_top_field要素のような色差最高部フィールドサンプル330は、ビデオビットストリーム110内の最高部フィールドに関する色差サンプルの位置を指定するための列挙型値とすることができる。chroma_sample_loc_type_bottom_field要素のような色差最低部フィールドサンプル332は、ビデオビットストリーム110内の最低部フィールドに関する色差サンプルの位置を指定するための列挙型値とすることができる。
neutral_chroma_indication_flag要素のような中間色差フラグ334は、復号された色差サンプルが1に等しいか否かを示すことができる。例えば、中間色差フラグ334が値1を有する場合には、復号された色差サンプルの全てが、1に設定されている。中間色差フラグ334が値0を有する場合には、復号された色差サンプルは、1に制限されていない。
HEVC VUIシンタックス302は、ビデオビットストリーム110に関するフィールドシーケンス情報を含むことができる。HEVC VUIシンタックス302は、フィールドシーケンスフラグ336、タイミング情報存在フラグ338、時間刻みユニット340、時間スケール344、及び固定ピクチャレートフラグ346を含むことができる。
field_seq_flagのようなフィールドシーケンスフラグ336は、符号化されたビデオシーケンス情報が、ビデオ表現フィールドを含むか否かを示すことができる。フィールドシーケンスフラグ336は、フィールドの存在を示すための値1、及びフィールドが存在していないことを示すための値0を有することができる。
timing_info_present_flag要素のようなタイミング情報存在フラグ338は、タイミング情報がビデオビットストリーム110に含まれているか否かを示すことができる。タイミング情報存在フラグ338は、タイミング情報がビデオビットストリーム110内に存在していることを示すための値1、及びタイミング情報がビデオビットストリーム110に含まれていないことを示すための値0を有することができる。
num_units_in_tick要素のような時間刻みユニット340は、時間スケール344の周波数で動作するクロックの時間単位数を示すことができる。例えば、時間刻みユニット340は、ビデオビットストリーム110で表すことができる最低の時間間隔に対応することができる。time_scale要素のような時間スケール344は、1秒に進む時間単位数である。
fixed_pic_rate_flag要素のような固定ピクチャレートフラグ346は、ビデオストリーム112の出力順番における2つの連続的なピクチャ間の時間距離が制限されているか否かを示すことができる。固定ピクチャレートフラグ346は、制限が適用されていないことを示すための値0、及び時間距離が制限されていることを示すための値1を有する。
HEVC VUIシンタックス302は、仮想参照デコーダパラメータに関する情報を含むことができる。HEVC VUIシンタックス302は、NAL HRDパラメータ存在フラグ348、VCL HRDパラメータ存在フラグ352、及びHRDパラメータ構造350を含むことができる。
nal_hrd_parameters_present_flag要素のようなNAL HRDパラメータ存在フラグ348は、NAL HRDパラメータ情報の存在を示すことができる。NAL HRDパラメータ存在フラグ348は、HRDパラメータ構造350が存在していることを示すための値1、及びHRDパラメータ構造350がHEVC VUIシンタックス302内に存在していないことを示すための値0を有することができる。
vcl_hrd_parameters_present_flag要素のようなVCL HRDパラメータ存在フラグ352は、VCLに関するHRD情報の存在を示すことができる。VCL HRDパラメータ存在フラグ352は、HRDパラメータ構造350が存在していることを示すための値1、及びHRDパラメータ構造350がHEVC VUIシンタックス302内に存在していないことを示すための値0を有することができる。
HRDパラメータ構造350は、VCLに関する仮想参照デコーダパラメータを含むことができる。HRDパラメータ構造350は、以下のHRDシンタックスのセクションにおいて詳細に説明される。HRDパラメータ構造350は、HRDシンタックスのオカレンスである。
NAL HRDパラメータ存在フラグ348又はVCL HRDパラメータ存在フラグ352が値1を有する場合には、HEVC VUIシンタックス302は、追加のHRDパラメータ及びビットストリームパラメータを含むことができる。HEVC VUIシンタックス302は、低遅延HRDフラグ354、サブピクチャ符号化ピクチャバッファ(CPB)パラメータ存在フラグ356、及び時間刻みサブユニット358を含むことができる。
HEVC VUIシンタックス302は、low_delay_hrd_flag要素のような低遅延HRDフラグ354を含むことができる。低遅延HRDフラグ354は、HRD動作モードを示すことができる。
HEVC VUIシンタックス302は、sub_pic_cpb_params_present_flag要素のようなサブピクチャCPBパラメータ存在フラグ356を含むことができる。サブピクチャCPBパラメータ存在フラグ356は、サブピクチャCPBパラメータがビデオビットストリーム110内に存在しているか否かを示すことができる。
サブピクチャCPBパラメータ存在フラグ356が値1を有する場合には、HEVC VUIシンタックス302は、num_of_units_in_sub_tick要素のような時間刻みサブユニット358を含むことができる。時間刻みサブユニット358は、タイミング付加拡張情報(SEI)メッセージを取り除く前に待つための時間刻み数を示すことができる。
NAL HRDパラメータ存在フラグ348又はVCL HRDパラメータ存在フラグ352が値1を有する場合には、HEVC VUIシンタックス302は、ビットストリームパラメータを含むことができる。HEVC VUIシンタックス302は、ビデオビットストリーム110に関するビットストリーム制限情報を含むことができる。HEVC VUIシンタックス302は、ビットストリーム制限フラグ360、タイル固定構成フラグ362、動きベクトルフラグ364、ピクチャ種類毎の最大バイト数366、最少CU種類毎の最大ビット数368、動きベクトル最大水平距離370、及び動きベクトル最大垂直距離372を含むことができる。
bitstream_restriction_flag要素のようなビットストリーム制限フラグ360は、符号化されたビデオシーケンスのビットストリーム制限パラメータが、ビデオビットストリーム110内に存在していることを示す。ビットストリーム制限フラグ360は、ビットストリーム制限パラメータが存在している場合の値1、及びビットストリーム制限パラメータがビデオビットストリーム110内に存在していない場合の値0を有する。ビットストリーム制限パラメータは、タイル固定構成フラグ362、動きベクトルフラグ364、ピクチャ種類毎の最大バイト数366、最少CU種類毎の最大ビット数368、動きベクトル最大水平距離370、及び動きベクトル最大垂直距離372を含むことができる。
tiles_fixed_structure_flag要素のようなタイル固定構成フラグ362は、符号化されたビデオシーケンス内の各ピクチャが、同じ数のタイルを有することを示すことができる。タイル固定構成フラグ362は、固定タイルを示すための値1、及びそれ以外の場合を示すための値0を有することができる。
motion_vector_over_pic_boundaries_flag要素のような動きベクトルフラグ364は、ピクチャ境界の外部のサンプルが予測のために使用されないことを示すことができる。動きベクトルフラグ364が値1を有する場合には、ピクチャ境界外部の1つ又はそれ以上のサンプルを予測のために使用でき、それ以外の場合には、サンプルは予測のために使用されない。
max_bytes_per_pic_denom要素のようなピクチャ種類毎の最大バイト数366は、符号化されたビデオシーケンス内のいずれかの符号化されたピクチャに関連するVCL NALユニットの合計サイズに関する最大バイト数を示す値である。ピクチャ種類毎の最大バイト数366が値0を有する場合には、制限は示されない。それ以外の場合には、符号化されたピクチャを、ビデオビットストリーム110内で、ピクチャ種類毎の最大バイト数366よりも多いバイトによって表すべきではないというビットストリーム適合要件である。
max_bits_per_min_cu_denom要素のような最少CU種類毎の最大ビット数368は、符号化されたビデオシーケンスのいずれかのピクチャ内のいずれかの符号化ブロックに関する符号化ユニットデータの符号化されたビット数に関する上限を示す値である。最少CU種類毎の最大ビット数368が値0を有する場合には、制限は示されない。それ以外の場合には、符号化ユニットを、ビットストリーム内で、最少CU種類毎の最大ビット数368よりも多いビットにより表すべきではないというビットストリーム適合要件である。
log2_max_mv_length_horizontal要素のような動きベクトル最大水平距離370は、ビデオビットストリーム110内の全てのピクチャに関する復号された動きベクトル水平成分の最大絶対値を示す。log2_max_mv_length_vertical要素のような動きベクトル最大垂直距離372は、ビデオビットストリーム110内の全てのピクチャに関する復号された動きベクトル垂直成分の最大絶対値を示す。
ここで図4を参照すると、第1のHEVC VUI拡張シンタックス402の実施例が示されている。第1のHEVC VUI拡張シンタックス402は、図1のビデオビットストリーム110内の図2の時間レイヤ230の各オカレンスに関する別個のタイミング情報を提供する。
第1のHEVC VUI拡張シンタックス402は、図4の第1のHEVC VUI拡張シンタックス表内の要素を表す。第1のHEVC VUI拡張シンタックス402の要素は、図4の第1のHEVC VUI拡張シンタックス表において表された階層構造で配列される。例えば、第1のHEVC VUI拡張シンタックス402は、図3のHEVC VUIシンタックス302の拡張部とすることができる。
第1のHEVC VUI拡張シンタックス402は、vui_parameters要素のような第1のHEVC VUI拡張シンタックスヘッダ部404を含む。第1のHEVC VUI拡張シンタックスヘッダ部404は、第1のHEVC VUI拡張シンタックス402を識別するための記述子である。第1のHEVC VUI拡張シンタックス402を使用して、ビデオビットストリーム110を符号化及び復号する。
第1のHEVC VUI拡張シンタックス402は、ビデオビットストリーム110内の各時間レイヤに関するフィールドシーケンスフラグ336及びタイミング情報存在フラグ338に関連するVUIパラメータのサブセットを含むことができる。第1又は第2のような用語は、識別のためにのみ使用され、何らかの順番、優先度、重要性、又は優先順位を示すものではない。
第1のHEVC VUI拡張シンタックス402は、図1のビデオビットストリーム110内の各フレームに関連する時間レイヤの最大数を識別するための、vui_max_temporal_layers_minus1要素のような時間レイヤカウント406を含むことができる。時間レイヤカウント406は、時間レイヤカウント406を0から時間レイヤ数マイナス1までマッピングするためのエントリ数マイナス1を示す。
第1のHEVC VUI拡張シンタックス402は、時間レイヤ特有の情報を表すためのループ構造を含むことができる。ループは、時間レイヤ230の各オカレンスに関連する情報を0から時間レイヤカウント406まで示すための、[i]のようなイテレータを含むことができる。第1のHEVC VUI拡張シンタックス402は、時間レイヤカウント406に等しい時間レイヤ230のオカレンス数に関する別個のシンタックス要素に対応する。
第1のHEVC VUI拡張シンタックス402は、図4の第1のHEVC VUI拡張シンタックス表で表された要素を含む。第1のHEVC VUI拡張シンタックス402の要素は、図4の第1のHEVC VUI拡張シンタックス表において表された階層構造で配列される。
第1のHEVC VUI拡張シンタックス402は、フィールドシーケンスフラグ336、タイミング情報存在フラグ338、時間刻みユニット340、時間スケール344、及び固定ピクチャレートフラグ346のようなタイミング情報を含む。第1のHEVC VUI拡張シンタックス402は、NAL HRDパラメータ存在フラグ348、HRDパラメータ構造350、VCL HRDパラメータ存在フラグ352、低遅延HRDフラグ354、サブピクチャCPBパラメータ存在フラグ356、及び時間刻みサブユニット358のようなNAL HRD情報を含むことができる。
第1のHEVC VUI拡張シンタックス402は、時間レイヤ230の各オカレンスに関するフィールドシーケンス情報を含むことができる。第1のHEVC VUI拡張シンタックス402は、フィールドシーケンスフラグ336、タイミング情報存在フラグ338、時間刻みユニット340、時間スケール344、及び固定ピクチャレートフラグ346を含むことができる。
第1のHEVC VUI拡張シンタックス402は、時間レイヤ230の各オカレンスに関する仮想参照デコーダパラメータを含むことができる。第1のHEVC VUI拡張シンタックス402は、NAL HRDパラメータ存在フラグ348、VCL HRDパラメータ存在フラグ352、及びHRDパラメータ構造350を含むことができる。
nal_hrd_parameters_present_flag要素のようなNAL HRDパラメータ存在フラグ348は、NAL HRDパラメータ情報の存在を示すことができる。NAL HRDパラメータ存在フラグ348は、HRDパラメータ構造350が存在していることを示すための値1、及びHRDパラメータ構造350がビデオビットストリーム110内に存在していないことを示すための値0を有することができる。
vcl_hrd_parameters_present_flag要素のようなVCL HRDパラメータ存在フラグ352は、VCLに関するHRD情報の存在を示すことができる。VCL HRDパラメータ存在フラグ352は、HRDパラメータ構造350が存在していることを示すための値1、及びHRDパラメータ構造350がビデオビットストリーム110内に存在していないことを示すための値0を有することができる。
第1のHEVC VUI拡張シンタックス402は、HRDパラメータ構造350を含むことができる。HRDパラメータ構造350は、仮想参照デコーダ表すパラメータを含むことができる。HRDパラメータ構造350は更に、以下のセクションで規定される。
NAL HRDパラメータ存在フラグ348又はVCL HRDパラメータ存在フラグ352が値1を有する場合には、第1のHEVC VUI拡張シンタックス402は、低遅延HRDフラグ354、サブピクチャCPBパラメータ存在フラグ356、及び時間刻みサブユニット358を含むことができる。
第1のHEVC VUI拡張シンタックス402は、ビットストリーム、VUI拡張部、及びループ構造の外側のRBSP情報に関する情報を含むことができる。ビットストリーム、VUI拡張部、及びRBSP情報は、全ての時間レイヤに関して一定である。
第1のHEVC VUI拡張シンタックス402は、VUI拡張情報がビデオビットストリーム110に含まれていることを示すための、vui_extension_flag要素のようなVUI拡張フラグ408を含むことができる。VUI拡張フラグ408は、VUI拡張情報がビデオビットストリーム110に含まれていることを示すための値1、及びそれ以外の場合を示すための値0を有することができる。
第1のHEVC VUI拡張シンタックス402は、追加のデータがRBSP内に存在していることを示すための、more_rbsp_data要素のような、追加のRBSPデータフラグ410を含むことができる。更なるRBSPデータフラグ410は、追加のデータがRBSP内に存在している場合の値1、及びそれ以外の場合の値0を有することができる。
第1のHEVC VUI拡張シンタックス402は、VUI拡張データがビデオビットストリーム110に含まれていることを示すための、VUI_extension_data_flag要素のようなVUI拡張データフラグ412を含むことができる。VUI拡張データフラグ412は、VUI拡張データがビデオビットストリーム110に含まれている場合の値1、及びそれ以外の場合の値0を有することができる。
第1のHEVC VUI拡張シンタックス402は、RBSPデータにフラグをたてるためのデータ構造である、rbsp_trailing_bits要素のようなRBSP追跡ビット414を含むことができる。RBSP追跡ビット414は、RBSPに関するストップビットを示すための、rbsp_stop_one_bit要素のようなRBSPデータを含むことができる。
第1のHEVC VUI拡張シンタックス402を使用して図1のビデオコンテンツ108を符号化及び復号して、時間レイヤの各オカレンスに対応することにより、時間レイヤ230の各オカレンスの表現にわたるより高精度で精細な制御が提供されることが見いだされている。時間レイヤ230の各オカレンスに関する情報を提供することにより、図1のビデオストリーム112の表示品質が向上する。
ここで図5を参照すると、第2のHEVC VUI拡張シンタックス502の実施例が示されている。第2のHEVC VUI拡張シンタックス502は、図1のビデオビットストリーム110内の全ての時間レイヤに関するフィールドシーケンスフラグ336及びタイミング情報存在フラグ338に関連する単一オカレンスのVUIパラメータを含む。
第2のHEVC VUI拡張シンタックス502は、図5の第2のHEVC VUI拡張シンタックス表内の要素を表す。第2のHEVC VUI拡張シンタックス502の要素は、図5の第2のHEVC VUI拡張シンタックス表において表された階層構造で配列される。例えば、第2のHEVC VUI拡張シンタックス502は、図3のHEVC VUIシンタックス302の拡張部とすることができる。
第2のHEVC VUI拡張シンタックス502は、vui_parameters要素のような第2のHEVC VUI拡張シンタックスヘッダ部504を含む。第2のHEVC VUI拡張シンタックスヘッダ部504は、第2のHEVC VUI拡張シンタックス502を識別するための記述子である。
第2のHEVC VUI拡張シンタックス502は、図2の各時間レイヤ230に関するHRDパラメータ構造350を含むループを含む。第1又は第2のような用語は、識別のためにのみ使用され、何らかの順番、優先度、重要性、又は優先順位を示すものではない。
第2のHEVC VUI拡張シンタックス502は、フィールドシーケンスフラグ336、タイミング情報存在フラグ338、時間刻みユニット340、時間スケール344、及び固定ピクチャレートフラグ346のようなタイミング情報の共通セットを含むことができる。タイミング情報の共通セットは、時間レイヤ230の全てのオカレンスにわたって一定である。
第2のHEVC VUI拡張シンタックス502は、ビデオビットストリーム110内の各フレームに関連する時間レイヤの最大数を識別するための、vui_max_temporal_layers_minus1要素のような時間レイヤカウント406を含むことができる。時間レイヤカウント406は、時間レイヤカウント406を0から時間レイヤ数マイナス1までマッピングするためのエントリ数マイナス1を示す。
第2のHEVC VUI拡張シンタックス502は、時間レイヤ特有の情報を表すためのループ構造を含むことができる。ループは、時間レイヤ230の各オカレンスに関連する情報を0から時間レイヤカウント406まで示すための、[i]のようなイテレータを含むことができる。第2のHEVC VUI拡張シンタックス502は、時間レイヤカウント406に等しい時間レイヤ230のオカレンス数に関する別個のシンタックス要素に対応する。
第2のHEVC VUI拡張シンタックス502は、図5の第2のHEVC VUI拡張シンタックス表で表された要素を含む。第2のHEVC VUI拡張シンタックス502の要素は、図5の第2のHEVC VUI拡張シンタックス表において表された階層構造で配列される。
第2のHEVC VUI拡張シンタックス502の要素は、時間レイヤ230の各オカレンスに関する仮想参照デコーダパラメータを含むことができる。第2のHEVC VUI拡張シンタックス502は、NAL HRDパラメータ存在フラグ348、VCL HRDパラメータ存在フラグ352、及びHRDパラメータ構造350を含むことができる。
nal_hrd_parameters_present_flag要素のようなNAL HRDパラメータ存在フラグ348は、NAL HRDパラメータ情報の存在を示すことができる。NAL HRDパラメータ存在フラグ348は、HRDパラメータ構造350が存在していることを示すための値1、及びHRDパラメータ構造350がビデオビットストリーム110内に存在していないことを示すための値0を有することができる。
vcl_hrd_parameters_present_flag要素のようなVCL HRDパラメータ存在フラグ352は、VCLに関するHRD情報の存在を示すことができる。VCL HRDパラメータ存在フラグ352は、HRDパラメータ構造350が存在していることを示すための値1、及びHRDパラメータ構造350がビデオビットストリーム110内に存在していないことを示すための値0を有することができる。
第2のHEVC VUI拡張シンタックス502は、HRDパラメータ構造350を含むことができる。HRDパラメータ構造350は、仮想参照デコーダを表すパラメータを含むことができる。HRDパラメータ構造350は更に、以下のセクションで規定される。
NAL HRDパラメータ存在フラグ348又はVCL HRDパラメータ存在フラグ352が値1を有する場合には、第2のHEVC VUI拡張シンタックス502は、低遅延HRDフラグ354、及びサブピクチャCPBパラメータ存在フラグ356を含むことができる。サブピクチャCPBパラメータ存在フラグ356が1である場合には、第2のHEVC VUI拡張シンタックス502は、num_units_in_sub_tick要素のような時間刻みサブユニット358を含むことができる。
第2のHEVC VUI拡張シンタックス502は、ビットストリーム、VUI拡張部、及びループ構造の外側のRBSP情報に関する情報を含むことができる。ビットストリーム、VUI拡張部、及びRBSP情報は、全ての時間レイヤに関して一定である。
第2のHEVC VUI拡張シンタックス502は、VUI拡張情報がビデオビットストリーム110に含まれていることを示すための、vui_extension_flag要素のようなVUI拡張フラグ408を含むことができる。VUI拡張フラグ408は、VUI拡張情報がビデオビットストリーム110に含まれていることを示すための値1、及びそれ以外の場合を示すための値0を有することができる。
第2のHEVC VUI拡張シンタックス502は、追加のデータがRBSP内に存在していることを示すための、more_rbsp_data要素のような、追加のRBSPデータフラグ410を含むことができる。追加のRBSPデータフラグ410は、追加のデータがRBSP内に存在している場合の値1、及びそれ以外の場合の値0を有することができる。
第2のHEVC VUI拡張シンタックス502は、VUI拡張データがビデオビットストリーム110に含まれていることを示すための、VUI_extension_data_flag要素のようなVUI拡張データフラグ412を含むことができる。VUI拡張データフラグ412は、VUI拡張データがビデオビットストリーム110に含まれている場合の値1、及びそれ以外の場合の値0を有することができる。
第2のHEVC VUI拡張シンタックス502は、RBSPデータにフラグをたてるためのデータ構造である、rbsp_trailing_bits要素のようなRBSP追跡ビット414を含むことができる。RBSP追跡ビット414は、rbsp_stop_one_bit要素のようなRBSPデータを含むことができる。
第2のHEVC VUI拡張シンタックス502を使用して図1のビデオコンテンツ108を符号化及び復号して、時間スケーリングに対応することにより、ビデオビットストリーム110のサイズが減少し、ビデオバッファリングに関する必要性が低減されることが見いだされている。ビデオビットストリーム110のサイズが減少することにより、図1のビデオストリーム112の表示性能が向上する。
第2のHEVC VUI拡張シンタックス502を使用してビデオコンテンツ108を符号化及び復号して、時間レイヤ230の各オカレンスに関して個別に時間スケーリングに対応することにより、ビデオビットストリーム110のサイズが減少し、ビデオバッファリングに関する必要性が低減されることが見いだされている。ビデオビットストリーム110のサイズが減少することにより、機能性が向上し、図1のビデオストリーム112の表示性能が向上する。
ここで図6を参照すると、HRDシンタックス602の実施例が示されている。HRDシンタックス602は、仮想参照デコーダに関連するパラメータを表す。
HRDシンタックス602は、図6のHRDシンタックス表で表された要素を含む。HRDシンタックス602の要素は、図6の第2のHRDシンタックス表において表された階層構造で配列される。
HRDシンタックス602は、hrd_parameters要素のようなHRDシンタックスヘッダ部604を含むことができる。HRDシンタックスヘッダ部604は、HRDシンタックス602を識別するための記述子である。
HRDシンタックス602は、タイミング存在情報、NAL HRDパラメータ、VCL HRDパラメータ、及び固定ピクチャレート情報を含む図3のHRDパラメータ構造350を含むことができる。タイミング存在情報は、タイミング情報存在フラグ338、時間刻みユニット340、及び時間スケール344を含むことができる。
timing_info_present_flag要素のようなタイミング情報存在フラグ338は、タイミング情報が、図1のビデオビットストリーム110に含まれているか否かを示すことができる。タイミング情報存在フラグ338は、タイミング情報がビデオビットストリーム110内に存在していることを示すための値1、及びタイミング情報がビデオビットストリーム110に含まれていないことを示すための値0を有することができる。
num_units_in_tick要素のような時間刻みユニット340は、時間スケール344の周波数で動作するクロックの時間単位数を示すことができる。例えば、時間刻みユニット340は、ビデオビットストリーム110で表すことができる最低の時間間隔に対応することができる。time_scale要素のような時間スケール344は、1秒に進む時間単位数である。
nal_hrd_parameters_present_flag要素のようなNAL HRDパラメータ存在フラグ348は、NAL HRDパラメータ情報の存在を示すことができる。NAL HRDパラメータ存在フラグ348は、HRDパラメータ構造350が存在していることを示すための値1、及びHRDパラメータ構造350がビデオビットストリーム110内に存在していないことを示すための値0を有することができる。
vcl_hrd_parameters_present_flag要素のようなVCL HRDパラメータ存在フラグ352は、VCLに関するHRD情報の存在を示すことができる。VCL HRDパラメータ存在フラグ352は、HRDパラメータ構造350が存在していることを示すための値1、及びHRDパラメータ構造350がビデオビットストリーム110内に存在していないことを示すための値0を有することができる。
NAL HRDパラメータ存在フラグ348又はVCL HRDパラメータ存在フラグ352が値1を有する場合には、HRDパラメータ構造350は、追加の要素を含むことができる。例えば、HRDパラメータ構造350は、サブピクチャCPBパラメータ存在フラグ356、ビットレートスケール612、CPBサイズスケール614、初期CPB除去遅延長616、CPB除去遅延長618、及びDPB出力遅延長620を含むことができる。
sub_pic_cpb_params_present_flag要素のようなサブピクチャCPBパラメータ存在フラグ356は、サブピクチャCPBパラメータが、ビデオビットストリーム110内に存在しているか否かを示すことができる。サブピクチャCPBパラメータ存在フラグ356が値1を有する場合には、HRDパラメータ構造350は、ビデオビットストリーム110で表すことができる最低時間間隔を指定するための、tick_divisor_minus2要素のような時間刻み除数610を含むことができる。
HRDパラメータ構造350は、bit_rate_scale要素のようなビットレートスケール612を含むことができる。ビットレートスケール612は、符号化ピクチャバッファの最大入力ビットレートを指定する。
HRDパラメータ構造350は、cpb_size_scale要素のようなCPBサイズスケール614を含むことができる。CPBサイズスケール614は、CPBのサイズを判定するためのものである。
HRDパラメータ構造350は、initial_cpb_removal_delay_length_minus1要素のような初期CPB除去遅延長616を含むことができる。初期CPB除去遅延長616は、バッファリング期間SEIメッセージのinitial_cpb_removal_delay要素及びinitial_cpb_removal_offset要素のビット長を示す。
HRDパラメータ構造350は、cpb_removal_delay_length_minus1要素のようなCPB除去遅延長618を含むことができる。CPB除去遅延長618は、ピクチャタイミングSEIメッセージ内のcpb_removal_delay要素のビット長を指定することができる。
HRDパラメータ構造350は、dpb_output_delay_length_minus1要素のようなDPB出力遅延長620を含むことができる。DPB出力遅延長620は、復号ピクチャバッファ(DPB)のサイズを示す。
HRDパラメータ構造350は、図2の時間レイヤ230の各オカレンスに関するパラメータセットを含むことができる。HRDパラメータ構造350は、時間レイヤ230の各オカレンスに関するパラメータを表すための[i]のようなイテレータを使用したループ構造を含むことができる。
HRDパラメータ構造350は、MaxNumSubLayersMinus1要素のようなサブレイヤカウント630を含むことができる。サブレイヤカウント630は、ビデオビットストリーム110内のサブレイヤの最大数を示す。HRDパラメータ構造350は、共通HRD情報が存在しているか否かを示すことができる、commonInfPresentFlag要素のような共通情報存在フラグ603を含むことができる。
HRDパラメータ構造350は、ビデオビットストリーム110内のいずれか2つの連続的なピクチャのHRD出力時間の間の時間距離が制約されているか否かを示すための、fixed_pic_rate_flag要素のような固定ピクチャレートフラグ346を含むことができる。固定ピクチャレートフラグ346が値1を有する場合には、2つの連続的なピクチャ間の時間距離は制約されており、値0の場合には、制約されていない。
固定ピクチャレートフラグ346が値1を有する場合には、HRDパラメータ構造350は、pic_duration_in_tc_minus1要素のようなピクチャ期間622を含むことができる。ピクチャ期間622は、符号化されたビデオシーケンスにおける出力順序でのいずれか2つの連続的なピクチャのHRD出力時間の間の時間距離を示すことができる。
HRDパラメータ構造350は、low_delay_hrd_flag要素のような低遅延HRDフラグ354を含むことができる。低遅延HRDフラグ354は、HRD動作モードを示すことができる。
HRDパラメータ構造350は、cpb_cnt_minus1要素のようなCPBカウント626を含むことができる。CPBカウント626は、ビデオビットストリーム110内の別のCPB規格値の数を示すことができる。
NAL HRDパラメータ存在フラグ348又はVCL HRDパラメータ存在フラグ352が値1を有する場合には、HRDパラメータ構造350は、時間レイヤ230の各オカレンスに関して、hrd_parameters_sub_layer要素のようなHRDパラメータサブレイヤ628を含むことができる。HRDパラメータサブレイヤ628は、各サブレイヤに関連するパラメータを表すことができる。
HRDシンタックス602を使用して図1のビデオコンテンツ108を符号化及び復号することにより、ビデオビットストリーム110のサイズが減少して、図1のビデオストリーム112を表示するために必要なビデオバッファリングの量が減少することが見いだされている。ビデオビットストリーム110のサイズが減少することにより、機能性が向上し、ビデオストリーム112の表示性能が向上する。
ここで図7を参照すると、HRDサブレイヤシンタックス702の実施例が示されている。HRDサブレイヤシンタックス702は、仮想参照デコーダサブレイヤに関連するパラメータを表す。
HRDサブレイヤシンタックス702は、図7のHRDサブレイヤシンタックス表で表された要素を含む。HRDサブレイヤシンタックス702の要素は、図7のHRDサブレイヤシンタックス表において表された階層構造で配列される。
HRDサブレイヤシンタックス702は、hrd_parameters_sub_layer要素のようなHRDサブレイヤシンタックスヘッダ部704を含むことができる。HRDサブレイヤシンタックスヘッダ部704は、HRDサブレイヤシンタック702を識別するための記述子である。
HRDサブレイヤシンタックス702は、符号化ピクチャバッファの各オカレンスに関するパラメータセットを規定するためのループ構造を含むことができる。ループ構造は、SchedSelIdx要素のようなスケジュール選択インデックスに基づく大きさである。
HRDサブレイヤシンタックス702は、図2の時間レイヤ230の特性を表すことができる。時間レイヤ230は更に、図1のビデオビットストリーム110のサブレイヤとして示すことができる。
HRDサブレイヤシンタックス702は、bit_rate_value_minus1要素のようなビットレート値706を含むことができる。ビットレート値706を使用して、符号化ピクチャバッファの各オカレンスに関する最大入力ビットレートを指定することができる。
HRDサブレイヤシンタックス702は、cpb_size_value_minus1要素のようなCPBサイズ値708を含むことができる。CPBサイズ値708を使用して、符号化ピクチャバッファの各オカレンスのサイズを判定することができる。
HRDサブレイヤシンタックス702は、cbr_flag要素のようなCBRフラグ710を含むことができる。CBRフラグ710は、符号化ピクチャバッファの各オカレンスに関するビデオビットストリーム110を復号するための動作モードを示す。CBRフラグ710が値1を有する場合には、仮想ストリーム配信スケジューラ(HSS)は、固定ビットレートモードで動作する。それ以外の場合には、ビデオビットストリーム110は、断続的なビットレートモードで動作する。
HRDサブレイヤシンタックス702は、ビデオビットストリーム110のサブレイヤ又は時間レイヤ230を表すことができる。HRDサブレイヤシンタックス702を使用して、サブレイヤのうちの1つ又は時間レイヤ230のうちの1つを選択し、ビデオビットストリーム110から別のサブレイヤのオカレンスを取り除くことができる。
サブレイヤ又は時間レイヤ230からオカレンスを取り除くことにより、ビデオビットストリーム110内のデータ量全体を減少させることができ、より適切な伝達、改良されたストレージ帯域幅制御及び調整のために、図1のビデオコンテンツ108のビットレート低減又はサイズ変更が可能になる。サブレイヤ又は時間レイヤ固有のHRDパラメータを提供することにより、図1のビデオストリーム112を生成するためのより適切でより滑らかなビットストリーム復号が可能になる。
HRDサブレイヤシンタックス702を使用することにより、個別のサブレイヤの処理にわたるより高精度で精細な制御を可能にすることによって性能を向上できることが見いだされている。HRDサブレイヤシンタックス702の個別のオカレンスを使用することにより、種々のサブレイヤ間の個別の差分を利用することによって処理速度を向上することができる。
ここで図8を参照すると、HRD VUIシンタックス802の実施例が示されている。HRD VUIシンタックス802は、仮想参照デコーダに関連するパラメータを表す。
HRD VUIシンタックス802は、図8のHRD VUIシンタックス表で表された要素を含む。HRD VUIシンタックス802の要素は、図8のHRD VUIシンタックス表において表された階層構造で配列される。例えば、HRD VUIシンタックス802は、図3のHEVC VUIシンタックス302の拡張部とすることができる。
HRD VUIシンタックス802は、vui_parameters要素のようなHRD VUIシンタックスヘッダ部804を含むことができる。HRD VUIシンタックスヘッダ部804は、HRD VUIシンタックス802を識別するための記述子である。
HRD VUIシンタックス802は、hrd_parameters要素のようなHRDパラメータ構造350を含むことができる。HRDパラメータ構造350は、各サブレイヤ又は図2の各時間レイヤ230に関する仮想参照デコーダパラメータを含む。
HRD VUIシンタックス802は、タイミング存在情報、NAL HRDパラメータ、VCL HRDパラメータ、及び固定ピクチャレート情報を含むHRD関連固定パラメータを、HRDパラメータ構造350に置き換える。HRDパラメータ構造350は、各サブレイヤ又は各時間レイヤ230に関するHRDパラメータセットを提供する。
HRD VUIシンタックス802は、sps_max_sub_layers_minus1要素から値を割り当てることができる、図6のサブレイヤカウント630を含むことができる。sps_max_sub_layers_minus1要素は、シーケンスパラメータセット(SPS)シンタックスに規定することができる。HRD VUIシンタックス802は、共通HRD情報の存在を示すための共通情報存在フラグ603を含むことができる。
サブレイヤは、時間レイヤ230、又は図1のビデオビットストリーム110内の別の種類のビデオレイヤを表すことができる。時間レイヤ230の全体数は、サブレイヤカウント630で表すことができる。
HRD VUIシンタックス802内のフィールドシーケンスフラグ336は、インタレースピクチャ符号化に対応することができる。HRD VUIシンタックス802においてビデオ形式317を提供することにより、ビデオコンテンツ108が使用する映像システムの判定を単純化することによって機能性を向上することができる。
ビデオフルレンジフラグ318は、輝度及び色差信号の黒レベル及び範囲を示すことができる。カラー記述存在フラグ320は、原色322、伝達特性324、及び行列係数326のような、ビデオビットストリーム110内のカラー記述情報の存在を示すことができる。
HRD VUIシンタックス802は、ビデオビットストリーム110の復号を改良するためのメタデータを含むことができる。ビットストリーム制限フラグ360、タイル固定構成フラグ362、動きベクトルフラグ364、ピクチャ種類毎の最大バイト数366、最少CU種類毎の最大ビット数368、動きベクトル最大水平距離370、及び動きベクトル最大垂直距離372を使用して、ビデオビットストリーム110の復号を制御することができる。
HRD VUIシンタックス802においてHRDパラメータ構造350を使用することにより、全てのサブレイヤに関する共通HRDパラメータを使用する代わりに個別のサブレイヤの処理にわたるより高精度で精細な制御を可能にすることによって、性能を向上できることが見いだされている。HRDパラメータ構造350の個別のオカレンスを使用することにより、種々のサブレイヤ間の個別の差分を利用することによって処理速度を向上させることができる。
ここで図9を参照すると、映像符号化システム100の機能ブロック図が示されている。映像符号化システム100は、第1のデバイス102、第2のデバイス104、及び通信経路106を含むことができる。
第1のデバイス102は、通信経路106を通じて第2のデバイス104と通信することができる。第1のデバイス102は、第1のデバイスの送信器932において、通信経路106を通じて情報を第2のデバイス104に送信することができる。第2のデバイス104は、第2のデバイスの送信器934において、通信経路106を通じて情報を第1のデバイス102に送信することができる。
例示的に、クライアントデバイスとして第1のデバイス102を含む映像符号化システム100を示しているが、映像符号化システム100は、種々の種類のデバイスとして第1のデバイス102を有することができることを理解されたい。例えば、第1のデバイスはサーバとすることができる。別の実施例では、第1のデバイス102は、ビデオエンコーダ102、ビデオデコーダ104、又はそれらの組み合わせとすることができる。
更に、例示的に、サーバとして第2のデバイス104を含む映像符号化システム100を示しているが、映像符号化システム100は、種々の種類のデバイスとして第2のデバイス104を有することができることを理解されたい。例えば、第2のデバイス104はクライアントデバイスとすることができる。別の実施例では、第2のデバイス104は、ビデオエンコーダ102、ビデオデコーダ104、又はそれらの組み合わせとすることができる。
本発明のこの実施形態の説明を簡潔にするために、第1のデバイス102は、ビデオカメラ、スマートフォン、又はそれらの組み合わせのようなクライアントデバイスとして示される。本発明は、デバイスの種類に関するこの選択に限定されるものではない。この選択は、本発明の実施例である。
第1のデバイス102は、第1の制御ユニット908を含むことができる。第1の制御ユニット908は、第1の制御インタフェース914を含むことができる。第1の制御ユニット908は、第1のソフトウェア912を実行して、映像符号化システム100のインテリジェンスを提供することができる。
第1の制御ユニット908は、いくつかの異なる方法で実装することができる。例えば、第1の制御ユニット908は、プロセッサ、組み込みプロセッサ、マイクロプロセッサ、ハードウェア制御ロジック、ハードウェア有限状態機械(FSM)、デジタルシグナルプロセッサ(DSP)、又はそれらの組み合わせとすることができる。
第1の制御インタフェース914は、第1の制御ユニット908と第1のデバイス102内の別の機能ユニットとの間の通信のために使用することができる。第1の制御インタフェース914は更に、第1のデバイス102の外部との通信のために使用することができる。
第1の制御インタフェース914は、別の機能ユニット又は外部の情報源から情報を受信すること、或いは別の機能ユニット又は外部の送信先に情報を送信することができる。外部の情報源及び外部の送信先は、第1のデバイス102の外部の情報源及び送信先に言及するものである。
第1の制御インタフェース914は、様々な方法で実装でき、どの機能ユニット又は外部ユニットが第1の制御インタフェース914にインタフェース接続されているかに応じて様々な実施形態を含むことができる。例えば、第1の制御インタフェース914は、電気回路、微小電気機械システム(MEMS)、光学的回路、無線回路、有線回路、又はそれらを組み合わせたもので実装することができる。
第1のデバイス102は、第1の記憶ユニット904を含むことができる。第1の記憶ユニット904は、第1のソフトウェア912を格納することができる。第1の記憶ユニット904は更に、画像、シンタックス情報、ビデオ、地図、特性情報、表示設定、センサデータ、又はそれらの任意の組み合わせのような関連情報を格納することができる。
第1の記憶ユニット904は、揮発性メモリ、不揮発性メモリ、内部メモリ、外部メモリ、又はそれらの組み合わせとすることができる。例えば、第1の記憶ユニット904は、不揮発性ランダムアクセスメモリ(NVRAM)、フラッシュメモリ、ディスクストレージのような不揮発性ストレージ、又はスタティックランダムアクセスメモリ(SRAM)のような揮発性ストレージとすることができる。
第1の記憶ユニット904は、第1の記憶インタフェース918を含むことができる。第1の記憶インタフェース918は、第1の記憶ユニット904と第1のデバイス102内の別の機能ユニットとの間の通信用に使用することができる。第1の記憶インタフェース918は更に、第1のデバイス102の外部との通信用に使用することができる。
第1のデバイス102は、第1の画像化ユニット906を含むことができる。第1の画像化ユニット906は、現実世界から図1のビデオコンテンツ108を取り込むことができる。第1の画像化ユニット906は、デジタルカメラ、ビデオカメラ、光センサ、又はそれらの任意の組み合わせを含むことができる。
第1の画像化ユニット906は、第1の画像化インタフェース916を含むことができる。第1の画像化インタフェース916は、第1の画像化ユニット906と第1のデバイス102内の別の機能ユニットとの間の通信用に使用することができる。
第1の画像化インタフェース916は、別の機能ユニット又は外部の情報源から情報を受信すること、或いは別の機能ユニット又は外部の送信先に情報を送信することができる。外部の情報源及び外部の送信先は、第1のデバイス102の外部の情報源及び送信先に言及するものである。
第1の画像化インタフェース916は、どの機能ユニット又は外部ユニットが第1の画像化ユニット906にインタフェース接続されているかに応じて様々な実施形態を含むことができる。第1の画像化インタフェース916は、第1の制御インタフェース914の実施形態と同様な技術及び技法で実装することができる。
第1の記憶インタフェース918は、別の機能ユニット又は外部の情報源から情報を受信すること、或いは別の機能ユニット又は外部の送信先に情報を送信することができる。外部の情報源及び外部の送信先は、第1のデバイス102の外部の情報源及び送信先に言及するものである。
第1の記憶インタフェース918は、どの機能ユニット又は外部ユニットが第1の記憶ユニット904にインタフェース接続されているかに応じて様々な実施形態を含むことができる。第1の記憶インタフェース918は、第1の制御インタフェース914の実施形態と同様な技術及び技法で実装することができる。
第1のデバイス102は、第1の通信ユニット910を含むことができる。第1の通信ユニット910は、第1のデバイス102への及びそれからの外部通信を可能にすることができる。例えば、第1の通信ユニット910は、第1のデバイス102が、第2のデバイス104、周辺デバイス又はデスクトップコンピュータのような付属装置、及び通信経路106と通信することを可能にする。
第1の通信ユニット910は更に、第1のデバイス102が通信経路106の一部分として機能することを可能にし、通信経路106へのエンドポイント又は終端ユニットに限定されない、通信ハブとして機能することができる。第1の通信ユニット910は、通信経路106との相互作用のための能動素子及び受動素子、例えば、マイクロエレクトロニクス又はアンテナを含むことができる。
第1の通信ユニット910は、第1の通信インタフェース920を含むことができる。第1の通信インタフェース920は、第1の通信ユニット910と第1のデバイス102内の別の機能ユニットとの間の通信用に使用することができる。第1の通信インタフェース920は、別の機能ユニットから情報を受信すること、或いは別の機能ユニットに情報を送信することができる。
第1の通信インタフェース920は、どの機能ユニットが第1の通信ユニット910にインタフェース接続されているかに応じて様々な実施形態を含むことができる。第1の通信インタフェース920は、第1の制御インタフェース914の実施形態と同様な技術及び技法で実装することができる。
第1のデバイス102は、第1のユーザインタフェース902を含むことができる。第1のユーザインタフェース902は、ユーザ(図示せず)が第1のデバイス102と相互作用及び対話することを可能にする。第1のユーザインタフェース902は、第1のユーザ入力(図示せず)を含むことができる。第1のユーザ入力は、タッチスクリーン、ジェスチャ、動き検出、ボタン、スライダ、ノブ、仮想ボタン、音声認識制御、又はそれらの任意の組み合わせを含むことができる。
第1のユーザインタフェース902は、第1のディスプレイインタフェース120を含むことができる。第1のディスプレイインタフェース120は、ユーザが第1のユーザインタフェース902と対話することを可能にする。第1のディスプレイインタフェース120は、ディスプレイ、ビデオスクリーン、スピーカ、又はそれらの任意の組み合わせを含むことができる。
第1の制御ユニット908は、第1のユーザインタフェース902と連携して、映像符号化システム100によって生成されたビデオ情報を第1のディスプレイインタフェース120に表示することができる。第1の制御ユニット908は更に、第1の記憶ユニット904からビデオ情報を受信して第1のディスプレイインタフェース120に表示することを含む、映像符号化システム100の別の機能に関する第1のソフトウェア912を実行することができる。第1の制御ユニット908は更に、第1の通信ユニット910経由で通信経路106と相互作用するための第1のソフトウェア912を実行することができる。
例示的に、第1のデバイス102は、第1のユーザインタフェース902、第1の記憶ユニット904、第1の制御ユニット908、及び第1の通信ユニット910を有するように分割することができるが、第1のデバイス102は、様々に分割できることを理解されたい。例えば、第1のソフトウェア912は、その機能の一部又は全てが、第1の制御ユニット908及び第1の通信ユニット910内に存在できるように様々に分割することができる。更に、第1のデバイス102は、明確にするために図10に示していない他の機能ユニットを含むことができる。
映像符号化システム100は、第2のデバイス104を含むことができる。第2のデバイス104は、第1のデバイス102を含む複数デバイスの実施形態で本発明を実施するように最適化することができる。第2のデバイス104は、第1のデバイス102と比べて追加の又は高い性能の処理能力を提供することができる。
第2のデバイス104は、第2の制御ユニット948を含むことができる。第2の制御ユニット948は、第2の制御インタフェース954を含むことができる。第2の制御ユニット948は、第2のソフトウェア952を実行して、映像符号化システム100のインテリジェンスを提供することができる。
第2の制御ユニット948は、いくつかの異なる方法で実装することができる。例えば、第2の制御ユニット948は、プロセッサ、組み込みプロセッサ、マイクロプロセッサ、ハードウェア制御ロジック、ハードウェア有限状態機械、デジタルシグナルプロセッサ、又はそれらの組み合わせとすることができる。
第2の制御インタフェース954は、第2の制御ユニット948と、第2のデバイス104内の別の機能ユニットとの間の通信用に使用することができる。第2の制御インタフェース954は更に、第2のデバイス104の外部との通信用に使用することができる。
第2の制御インタフェース954は、別の機能ユニット又は外部の情報源から情報を受信すること、或いは別の機能ユニット又は外部の送信先に情報を送信することができる。外部の情報源及び外部の送信先は、第2のデバイス104の外部の情報源及び送信先に言及するものである。
第2の制御インタフェース954は、様々な方法で実装でき、どの機能ユニット又は外部ユニットが第2の制御インタフェース954にインタフェース接続されているかに応じて様々な実施形態を含むことができる。例えば、第2の制御インタフェース954は、電気回路、微小電気機械システム(MEMS)、光学的回路、無線回路、有線回路、又はそれらの組み合わせで実装することができる。
第2のデバイス104は、第2の記憶ユニット944を含むことができる。第2の記憶ユニット944は、第2のソフトウェア952を格納することができる。第2の記憶ユニット944は更に、画像、シンタックス情報、ビデオ、地図、特性情報、表示設定、センサデータ、又はそれらの任意の組み合わせのような関連情報を格納することができる。
第2の記憶ユニット944は、揮発性メモリ、不揮発性メモリ、内部メモリ、外部メモリ、又はそれらの組み合わせとすることができる。例えば、第2の記憶ユニット944は、不揮発性ランダムアクセスメモリ(NVRAM)、フラッシュメモリ、ディスクストレージのような不揮発性ストレージ、又はスタティックランダムアクセスメモリ(SRAM)のような揮発性ストレージとすることができる。
第2の記憶ユニット944は、第2の記憶インタフェース958を含むことができる。第2の記憶インタフェース958は、第2の記憶ユニット944と、第2のデバイス104内の別の機能ユニットとの間の通信用に使用することができる。第2の記憶インタフェース958は更に、第2のデバイス104の外部との通信用に使用することができる。
第2の記憶インタフェース958は、別の機能ユニット又は外部の情報源から情報を受信すること、或いは別の機能ユニット又は外部の送信先に情報を送信することができる。外部の情報源及び外部の送信先は、第2のデバイス104の外部の情報源及び送信先に言及するものである。
第2の記憶インタフェース958は、どの機能ユニット又は外部ユニットが第2の記憶ユニット944にインタフェース接続されているかに応じて様々な実施形態を含むことができる。第2の記憶インタフェース958は、第2の制御インタフェース954の実施形態と同様な技術及び技法で実装することができる。
第2のデバイス104は、第2の画像化ユニット946を含むことができる。第2の画像化ユニット946は、現実世界からビデオコンテンツ108を取り込むことができる。第1の画像化ユニット906は、デジタルカメラ、ビデオカメラ、光センサ、又はそれらの任意の組み合わせを含むことができる。
第2の画像化ユニット946は、第2の画像化インタフェース956を含むことができる。第2の画像化インタフェース956は、第2の画像化ユニット946と第2のデバイス104内の別の機能ユニットとの間の通信用に使用することができる。
第2の画像化インタフェース956は、別の機能ユニット又は外部の情報源から情報を受信すること、或いは別の機能ユニット又は外部の送信先に情報を送信することができる。外部の情報源及び外部の送信先は、第2のデバイス104の外部の情報源及び送信先に言及するものである。
第2の画像化インタフェース956は、どの機能ユニット又は外部ユニットが第2の画像化ユニット946にインタフェース接続されているかに応じて様々な実施形態を含むことができる。第2の画像化インタフェース956は、第1の制御インタフェース914の実施形態と同様な技術及び技法で実装することができる。
第2のデバイス104は、第2の通信ユニット950を含むことができる。第2の通信ユニット950は、第2のデバイス104への及びそれからの外部通信を可能にすることができる。例えば、第2の通信ユニット950は、第2のデバイス104が、第1のデバイス102、周辺デバイス又はデスクトップコンピュータのような付属装置、及び通信経路106と通信することを可能にすることができる。
第2の通信ユニット950は更に、通信ハブとして機能することができ、第2のデバイス104が、通信経路106の一部分として機能すること及び通信経路106へのエンドポイント又は終端ユニットに限定されないことを可能にする。第2の通信ユニット950は、通信経路106との相互作用のための能動素子及び受動素子、例えば、マイクロエレクトロニクス又はアンテナを含むことができる。
第2の通信ユニット950は、第2の通信インタフェース960を含むことができる。第2の通信インタフェース960は、第2の通信ユニット950と、第2のデバイス104内の別の機能ユニットとの間の通信用に使用することができる。第2の通信インタフェース960は、別の機能ユニットから情報を受信すること、或いは別の機能ユニットに情報を送信することができる。
第2の通信インタフェース960は、どの機能ユニットが第2の通信ユニット950にインタフェース接続されているかに応じて様々な実施形態を含むことができる。第2の通信インタフェース960は、第2の制御インタフェース954の実施形態と同様な技術及び技法で実装することができる。
第2のデバイス104は、第2のユーザインタフェース942を含むことができる。第2のユーザインタフェース942は、ユーザ(図示せず)が第2のデバイス104と相互作用及び対話することを可能にする。第2のユーザインタフェース942は、第2のユーザ入力(図示せず)を含むことができる。第2のユーザ入力は、タッチスクリーン、ジェスチャ、動き検出、ボタン、スライダ、ノブ、仮想ボタン、音声認識制御、又はそれらの任意の組み合わせを含むことができる。
第2のユーザインタフェース942は、第2のディスプレイインタフェース943を含むことができる。第2のディスプレイインタフェース943は、ユーザが第2のユーザインタフェース942と対話することを可能にすることができる。第2のディスプレイインタフェース943は、ディスプレイ、ビデオスクリーン、スピーカ、又はそれらの任意の組み合わせを含むことができる。
第2の制御ユニット948は、第2のユーザインタフェース942と連携して、映像符号化システム100によって生成された情報を第2のディスプレイインタフェース943に表示することができる。第2の制御ユニット948は更に、第2の記憶ユニット944から表示情報を受信して第2のディスプレイインタフェース943に表示することを含む、映像符号化システム100の別の機能に関する第2のソフトウェア952を実行することができる。第2の制御ユニット948は更に、第2の通信ユニット950経由で通信経路106と相互作用するための第2のソフトウェア952を実行することができる。
例示的に、第2のデバイス104は、第2のユーザインタフェース942、第2の記憶ユニット944、第2の制御ユニット948、及び第2の通信ユニット950を有するように分割することができるが、第2のデバイス104は、様々に分割できることを理解されたい。例えば、第2のソフトウェア952は、その機能の一部又は全てが、第2の制御ユニット948及び第2の通信ユニット950内に存在できるように様々に分割することができる。更に、第2のデバイス104は、明確にするために図10に示していない他の機能ユニットを含むことができる。
第1の通信ユニット910は、通信経路106に接続して、第1のデバイスの送信器932で情報を第2のデバイス104に送信することができる。第2のデバイス104は、第2の通信ユニット950において、通信経路106の第1のデバイスの送信器932から情報を受信することができる。
第2の通信ユニット950は、通信経路106に接続して、第2のデバイスの送信器934でビデオ情報を第1のデバイス102に送信することができる。第1のデバイス102は、第1の通信ユニット910において、通信経路106の第2のデバイスの送信器934からビデオ情報を受信することができる。映像符号化システム100は、第1の制御ユニット908、第2の制御ユニット948、又はそれらの組み合わせによって実行することができる。
第1のデバイス102内の機能ユニットは、個別に他の機能ユニットと無関係に動作することができる。例示的に、映像符号化システム100は、第1のデバイス102の動作によって説明される。第1のデバイス102は、映像符号化システム100の任意のモジュール及び機能を動作させることができることを理解されたい。例えば、第1のデバイス102は、第1の制御ユニット908を動作させるように説明することができる。
第2のデバイス104内の機能ユニットは、個別に他の機能ユニットと無関係に動作することができる。例示的に、映像符号化システム100は、第2のデバイス104の動作によって説明することができる。第2のデバイス104は、映像符号化システム100の任意のモジュール及び機能を動作させることができることを理解されたい。例えば、第2のデバイス104は、第2の制御ユニット948を動作させるように説明される。
例示的に、映像符号化システム100は、第1のデバイス102及び第2のデバイス104の動作によって説明される。第1のデバイス102及び第2のデバイス104は、映像符号化システム100の任意のモジュール及び機能を動作させることができることを理解されたい。例えば、第1のデバイス102は、第1の制御ユニット908を動作させるように説明されるが、更に第2のデバイス104が、第1の制御ユニット908を動作させることができることを理解されたい。
ここで図10を参照すると、図1の映像符号化システム100の制御フロー1000が示されている。制御フロー1000は、ビデオビットストリーム110を受信し、図1のビデオシンタックス114を抽出し、ビデオビットストリーム110を復号し、図1のビデオストリーム112を表示することによって、図1のビデオビットストリーム110を復号することを説明する。
映像符号化システム100は、受信モジュール1002を含むことができる。受信モジュール1002は、図1のビデオエンコーダ102によって符号化されたビデオビットストリーム110を受信することができる。
ビデオビットストリーム110は、様々な方法で受信することができる。例えば、ビデオビットストリーム110は、図1のビデオエンコーダ102から、ストリーミングシリアルビットストリームとして、図1の通信経路106上のデジタルメッセージ(図示せず)内に事前に符号化されたビデオファイル(図示せず)として、又はそれらの組み合わせとして受信することができる。
ビデオビットストリーム110は、様々なフレームレートで図1のビデオコンテンツ108を表すための、図2の1つ又はそれ以上の時間レイヤ230を含むことができる。受信モジュール1002は、時間レイヤ230を選択的にフィルタ処理して、ビデオビットストリーム110のサイズを低減することができる。
例えば、受信モジュール1002は、60fps、30fps、及び15fpsのような3つの異なるフレームレートに関する時間レイヤ230を有するビデオビットストリーム110を受信することができる。受信モジュール1002は、ビデオビットストリーム110をフィルタ処理して、時間レイヤ230の60fps及び30fpsのオカレンスを取り除き、時間レイヤ230の15fpsオカレンスのみを処理することができる。
映像符号化システム100は、シンタックス取得モジュール1004を含むことができる。シンタックス取得モジュール1004は、ビデオビットストリーム110のビデオシンタックス114を識別及び抽出することができる。
シンタックス取得モジュール1004は、様々な方法でビデオビットストリーム110に関するビデオシンタックス114を抽出することができる。シンタックス取得モジュール1004は、ビデオシンタックス114の存在を示すビデオ表示情報ヘッダ部に関するビデオビットストリーム110を検索することによって、ビデオシンタックス114を抽出することができる。別の実施例では、ビデオシンタックス114は、デマルチプレクサ(図示せず)を使用してビデオビットストリーム110のビデオ画像データからビデオシンタックス114を分離することで、ビデオビットストリーム110から抽出することができる。
更に別の実施例では、ビデオシンタックス114は、シーケンスパラメータセットであるローバイトシーケンスペイロード(Raw Byte Sequence Payload)(RBSP)シンタックスを抽出することによって、ビデオビットストリーム110から抽出することができる。シーケンスパラメータセットRBSPは、ネットワーク抽象レイヤユニット内にカプセル化された整数のバイトを含むシンタックス構造である。RBSPは、空とすること、或いはシンタックス要素と、その後に続くRBSPストップビットと、その後に続く、ゼロ又は0に等しいより多くの付加ビットを含むデータビット列の形式を有することの何れかとすることができる。
更に別の実施例では、ビデオシンタックス114は、個別の要素がシリアルビットストリーム内で利用可能になる場合にこれらの要素を抽出することによって、時間的方法でビデオビットストリーム110のシリアルビットストリームから抽出することができる。映像符号化システム100は、前に抽出された要素の値に基づいて後の要素を選択的に抽出することができる。映像符号化システム100は、図3の低遅延HRDフラグ354の以前に受信した値に基づいて、図3のHRDパラメータ構造350を処理することができる。
シンタックス取得モジュール1004は、低遅延HRDフラグ354の以前に抽出されたオカレンスに基づいて、HRDパラメータ構造350を使用してビデオビットストリーム110を動的に復号することによって、性能を向上させることができることが見いだされている。低遅延HRDフラグ354を受信することにより、HRDパラメータ構造350を適用する場合にCPBにおいて許容されている遅延レベルを変更することによって、復号性能が向上する。
別の実施例では、ビデオビットストリーム110をファイルで受け取る場合には、ビデオシンタックス114は、ビデオビットストリーム110を含むファイルのファイル拡張子を調査することによって検出することができる。更に別の実施例では、図1の通信経路106を通じてデジタルメッセージとしてビデオビットストリーム110を受信する場合には、ビデオシンタックス114は、デジタルメッセージ構成の一部分として提供することができる。
シンタックス取得モジュール1004は、図2のシンタックスタイプ202に基づいてビデオシンタックス114の個別の要素を抽出することができる。シンタックスタイプ202は、AVCビデオ、SVCビデオ、MVCビデオ、MVDビデオ、SSVビデオ、又はそれらの組み合わせを含むことができる。
例えば、シンタックス取得モジュール1004は、図3のHEVC VUIシンタックス302、図4の第1のHEVC VUI拡張シンタックス402、図5の第2のHEVC VUI拡張シンタックス502、又はそれらの組み合わせのようなビデオシンタックス114を抽出することができる。シンタックス取得モジュール1004は、図6のHRDシンタックス602、図7のHRDサブレイヤシンタックス702、又はそれらの組み合わせを含むビデオシンタックス114を抽出することができる。
シンタックス取得モジュール1004は、様々な方法でビデオシンタックス114を抽出することができる。例えば、シンタックス取得モジュール1004は、HEVC VUIシンタックス302のようなビデオシンタックス114をビデオビットストリーム110から抽出することができる。HEVC VUIシンタックス302は、時間レイヤ230の全てのオカレンスに関するHRDシンタックス602の1つのオカレンスを含むことができる。HEVC VUIシンタックス302は、時間レイヤ230の全てのオカレンスに関するHEVC VUIシンタックス302の要素の1つのオカレンスを含むことができる。
別の実施例では、シンタックス取得モジュール1004は、第1のHEVC VUI拡張シンタックス402のようなビデオシンタックス114をビデオビットストリーム110から抽出することができる。第1のHEVC VUI拡張シンタックス402は、時間レイヤ230の個別の各オカレンスに関するHRDシンタックス602のオカレンスを含むことができる。
第1のHEVC VUI拡張シンタックス402は、時間レイヤ230の個別の各オカレンスに関する、図3のフィールドシーケンスフラグ336、図3のタイミング情報存在フラグ338、図3の時間刻みユニット340、図3の時間スケール344、及び図3の固定ピクチャレートフラグ346の個別のオカレンスを含むことができる。第1のHEVC VUI拡張シンタックス402は、時間レイヤ230の個別の各オカレンスに関する、図3のNAL HRDパラメータ存在フラグ348、図3のVCL HRDパラメータ存在フラグ352、図3の低遅延HRDフラグ354、図3のサブピクチャCPBパラメータ存在フラグ356、及び図3の時間刻みサブユニット358を含むことができる。
更に別の実施例では、シンタックス取得モジュール1004は、第2のHEVC VUI拡張シンタックス502のようなビデオシンタックス114をビデオビットストリーム110から抽出することができる。第2のHEVC VUI拡張シンタックス502は、時間レイヤ230の全てのオカレンスに関する、フィールドシーケンスフラグ336、タイミング情報存在フラグ338、時間刻みユニット340、時間スケール344、及び固定ピクチャレートフラグ346の1つのオカレンスを含むことができる。第2のHEVC VUI拡張シンタックス502は、時間レイヤ230の個別の各オカレンスに関する、NAL HRDパラメータ存在フラグ348、VCL HRDパラメータ存在フラグ352、低遅延HRDフラグ354、サブピクチャCPBパラメータ存在フラグ356、及び時間刻みサブユニット358を含むことができる。
映像符号化システム100は、復号モジュール1006を含むことができる。復号モジュール1006は、ビデオシンタックス114を使用してビデオビットストリーム110を復号してビデオストリーム112を生成することができる。復号モジュール1006は、時間レイヤ取得モジュール1008及び時間レイヤ復号モジュール1010を含むことができる。
復号モジュール1006は、HEVC VUIシンタックス302、第1のHEVC VUI拡張シンタックス402、第2のHEVC VUI拡張シンタックス502、又はそれらの組み合わせを使用してビデオビットストリーム110を復号することができる。復号モジュール1006は、HRDシンタックス602、HRDサブレイヤシンタックス702、図8のHRD VUIシンタックス802、又はそれらの組み合わせを使用して、時間レイヤ230を識別し抽出することができる。
時間レイヤ取得モジュール1008は、時間レイヤ230を識別してビデオビットストリーム110から抽出してビデオストリーム112を生成することができる。時間レイヤ取得モジュール1008は、様々な方法で時間レイヤ230を識別することができる。
例えば、時間レイヤ取得モジュール1008は、第1のHEVC VUI拡張シンタックス402又は第2のHEVC VUI拡張シンタックス502から図4の時間レイヤカウント406を抽出することによって、時間レイヤ230を識別することができる。時間レイヤカウント406は、ビデオビットストリーム110内の時間レイヤ230の全体数を示す。別の実施例では、時間レイヤ取得モジュール1008は、HEVC VUIシンタックス302からHRDシンタックス602の単一のオカレンスを抽出して、ビデオビットストリーム110内の全ての時間レイヤ230に適用することによって、時間レイヤを識別することができる。
時間レイヤ復号モジュール1010は、時間レイヤ取得モジュール1008から時間レイヤ230を受け取り、時間レイヤ230を復号してビデオストリーム112を生成することができる。時間レイヤ復号モジュール1010は、様々な方法で時間レイヤ230を復号することができる。
例えば、時間レイヤ復号モジュール1010は、HRDシンタックス602を使用して時間レイヤ230を復号することができる。別の実施例では、時間レイヤ復号モジュール1010は、HRDサブレイヤシンタックス702を使用して時間レイヤ230を復号することができる。時間レイヤ復号モジュール1010は、時間レイヤ230を復号し、時間レイヤ230のうちの1つを選択してビデオストリーム112を生成することができる。
HRDシンタックス602のパラメータを使用して、符号化ピクチャバッファ内のデータバッファリングレートを制御することを含む、ビデオビットストリーム110の滑らかな復号を管理することができる。タイミング情報存在フラグ338、サブピクチャCPBパラメータ存在フラグ356、ビットレートスケール612、CPBサイズスケール614、CPB除去遅延長618、及びDPB出力遅延長620を使用して、符号化ピクチャバッファ及び復号ピクチャバッファへのデータフローを調整することができる。
映像符号化システム100は、表示モジュール1020を含むことができる。表示モジュール1012は、復号モジュール1006からビデオストリーム112を受信し、図1のディスプレイインタフェース120に表示することができる。ビデオストリーム112は、時間レイヤ230の1つ又はそれ以上のオカレンスを含むことができる。
ビデオコンテンツ108の物理的対象物の光学的画像から図9のディスプレイインタフェース120の画素要素上にビデオストリーム112を表示する物理的な変換は、物理的世界におけるディスプレイインタフェース120の画素要素に対する物理的変化、例えば画素要素の電気的な状態の変化を引き起こすが、これは、映像符号化システム100の動作に基づくものである。ビデオコンテンツ108に取り込まれた対象物の動きのような物理的世界における変化が生じる場合、その動き自体により、ビデオコンテンツ108に対する更新のような追加情報が生成され、この情報は、映像符号化システム100の継続動作のためにディスプレイインタフェース120の画素要素での変化に逆変換される。
第1のデバイス102の図9の第1のソフトウェア912は、映像符号化システム100を含むことができる。例えば、第1のソフトウェア912は、受信モジュール1002、シンタックス取得モジュール1004、復号モジュール1006、及び表示モジュール1012を含むことができる。
図9の第1の制御ユニット908は、受信モジュール1002に関する第1のソフトウェア912を実行して、ビデオビットストリーム110を受信することができる。第1の制御ユニット908は、シンタックス取得モジュール1004に関する第1のソフトウェア912を実行して、ビデオビットストリーム110からビデオシンタックス114を識別及び抽出することができる。第1の制御ユニット908は、復号モジュール1006に関する第1のソフトウェア912を実行して、ビデオビットストリーム112を生成することができる。第1の制御ユニット908は、表示モジュール1012に関する第1のソフトウェア912を実行して、ビデオストリーム112を表示することができる。
図1の第2のデバイス104の図9の第2のソフトウェア952は、映像符号化システム100を含むことができる。第2のソフトウェア952は、例えば、受信モジュール1002、シンタックス取得モジュール1004、及び復号モジュール1006を含むことができる。
図9の第2の制御ユニット948は、受信モジュール1002に関する第2のソフトウェア952を実行して、ビデオビットストリーム110を受信することができる。第2の制御ユニット948は、シンタックス取得モジュール1004に関する第2のソフトウェア952を実行して、ビデオビットストリーム110からビデオシンタックス114を識別及び抽出することができる。第2の制御ユニット948は、復号モジュール1006に関する第2のソフトウェア952を実行して、図1のビデオビットストリーム112を生成することができる。第2の制御ユニット948は、表示モジュール1012に関する第2のソフトウェアを実行して、ビデオストリーム112を表示することができる。
映像符号化システム100は、第1のソフトウェア912と第2のソフトウェア952とに分割することができる。例えば、第2のソフトウェア952は、シンタックス取得モジュール1004、復号モジュール1006、及び表示モジュール1012を含むことができる。第2の制御ユニット948は、前述した第2のソフトウェア952に対して区分化されたモジュールを実行することができる。
例示的な実施例では、映像符号化システム100は、第1のデバイス102でのビデオエンコーダ102、及び第2のデバイス104でのビデオデコーダ104を含むことができる。ビデオデコーダ104は、図1のディスプレイプロセッサ118、及びディスプレイインタフェース120を含むことができる。
第1のソフトウェア912は、受信モジュール1002及びシンタックス取得モジュール1004を含むことができる。図9の第1の記憶ユニット904のサイズに応じて、第1のソフトウェア912は、映像符号化システム100の追加のモジュールを含むことができる。第1の制御ユニット908は、前述した第1のソフトウェア912に対して区分化されたモジュールを実行することができる。
第1の制御ユニット908は、図9の第1の通信ユニット910を動作させて、第2のデバイス104にビデオビットストリーム110を送信することができる。第1の制御ユニット908は、第1のソフトウェア912を動作させて、図9の第1の画像化ユニット906を動作させることができる。図9の第2の通信ユニット950は、通信経路106を通じて第1のデバイス102にビデオストリーム112を送信することができる。
映像符号化システム100は、実施例としてモジュールの機能又は順番を説明している。モジュールは様々に分割することができる。例えば、シンタックス取得モジュール1004と復号モジュール1006とを組み合わせることができる。各モジュールは、個別に他のモジュールと無関係に動作することができる。
更に、1つのモジュールで生成されたデータは、互いに直接接続されていない別のモジュールで使用することができる。例えば、シンタックス取得モジュール1004は、受信モジュール1002からビデオビットストリーム110を受信することができる。
モジュールは、様々な方法で実装することができる。受信モジュール1002、シンタックス取得モジュール1004、復号モジュール1006、及び表示モジュール1012は、第1の制御ユニット908又は第2の制御ユニット948内のハードウェアアクセラレータ(図示せず)で実装すること、或いは第1の制御ユニット908又は第2の制御ユニット948の外部で第1のデバイス102又は第2のデバイス104内のハードウェアアクセラレータ(図示せず)で実装することができる。
ここで図11を参照すると、本発明の別の実施形態における図1の映像符号化システム100の動作方法1100のフローチャートが示されている。方法1100は、ブロック1102において、ビデオビットストリームを受信する段階と、ブロック1104において、ビデオビットストリームからビデオシンタックスを抽出する段階と、ブロック1106において、ビデオシンタックに基づいてビデオビットストリームから時間レイヤを抽出する段階と、ブロック1108において、デバイスに表示するために、時間レイヤに基づいてビデオストリームを生成する段階と、を含む。
このように、本発明は多くの態様を有することが見いだされている。本発明は、経費削減、システム単純化、及び性能向上という歴史的傾向に有用に対応し、その要求に応えている。結果的に、本発明の前記及び他の有用な態様により、技術レベルが少なくとも次のレベルに進む。
従って、本発明の映像符号化システムは、高精細アプリケーション用のビデオコンテンツを効率的に符号化及び復号することに関して、重要で、従来は知られておらず利用不可能な解決手段、機能、及び機能的態様を提供することが見いだされている。結果として得られるプロセス及び構成は、簡単で、費用効率が高く、複雑でなく、非常に汎用的で、効率的なものであり、意外にも自明ではなく、公知の技術を適用することによって実装できるので、従来の製造プロセス及び技術と完全に互換性がある映像符号化デバイスを簡単に効率的かつ経済的に製造することに適している。結果として得られるプロセス及び構成は、簡単で、費用効率が高く、複雑でなく、非常に汎用的で、正確で、高精度で、効率的なものであり、容易に、効率的に、経済的に製造、応用、及び利用するために公知の構成要素を適用することによって実装することができる。
本発明は、特定の最適な形態と併せて説明されるが、当業者であれば、前記の説明を考慮すると多くの代替例、修正例、及び変更例が明らかであることを理解できるはずである。従って、特許請求の範囲の範疇に含まれる全ての当該代替例、修正例、変更例が含まれることが意図されている。本明細書で説明した又は添付図面に示した前記の内容は、全て、例示的かつ非限定的な意味で解釈されたい。