以下の実施形態は、当業者が本発明を実施及び利用することができるように十分詳細に説明される。本開示に基づいて別の実施形態が明らかになること、及び本発明の範囲から逸脱することなく処理又は機構の変更を行うことができるということを理解されたい。
以下の説明において、本発明を完全に理解できるように多くの具体的な詳細内容が提示される。しかしながら、本発明はこれらの具体的な詳細内容がなくとも実施できることは明らかである。本発明が不明瞭にならないように、一部の公知の回路、システム構成、及び処理ステップは、詳細に開示されていない。
同様に、システムの実施形態を示す図面は、概略的なものであり、縮尺通りではなく、特に、一部の寸法は、表現を明確にするためのものであり、図面内で誇張して示されている。例示、説明、及びその理解を明確及び容易にするために、いくつかの機能が共通する複数の実施形態を開示して説明するが、互いに類似した同様の特徴部は、通常、同様の参照符号を用いて説明する。
「シンタックス」という用語は、データ構造を表す一組の要素を意味する。本明細書で用いられる「モジュール」という用語は、使用される文脈により、本発明におけるソフトウェア、ハードウェア、又はそれらの組み合わせを含むことができる。
ここで図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は、シリアルビットストリーム122とすることができる。シリアルビットストリーム122は、ビデオコンテンツ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は、データ転送に好適な様々なネットワークとすることができる。
例示的な実施例では、映像符号化システム100は、符号化ピクチャバッファ(図示せず)を含むことができる。符号化ピクチャバッファは、アクセスユニットを含む先入れ先出しバッファとして動作でき、各アクセスユニットは、ビデオビットストリーム110の1つのフレームを含むことができる。
別の例示的な実施例では、映像符号化システム100は、仮想参照デコーダ(図示せず)を含むことができる。仮想参照デコーダは、ビデオビットストリーム110の変動性を制限するために使用されるデコーダモデルとすることができる。
例えば、通信経路106は、無線通信、有線通信、光、超音波、又はそれらの組み合わせを含むことができる。通信経路106に含めることができる無線通信の実施例は、衛星通信、セルラ通信、ブルートゥース、赤外線データ協会規格(IrDA)、ワイヤレスフィデリティ(WiFi)、及びワールドワイド・インターオペラビリティ・フォー・マイクロウェーブ・アクセス(WiMAX)である。通信経路106に含めることができる有線通信の実施例は、イーサネット、デジタル加入者線(DSL)、ファイバー・トゥ・ザ・ホーム(FTTH)、及び基本電話サービス(POTS)である。
映像符号化システム100は、様々な映像符号化シンタックス構造を用いることができる。映像符号化システム100は、例えば、高効率映像符号化/H.265を使用してビデオ情報を符号化及び復号することができる。映像符号化シンタックスは、以下の文書で説明されており、その内容全体が引用により本明細書に組み込まれる。
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著 「A simple ordering issue for VUI parameters syntax」 JCTVC−J0273 2012年7月(Stockholm)
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は、ビデオコンテンツ108内の各フレームに関連するエントリの数を識別するためのエントリカウント216を含むことができる。エントリカウント216は、ビデオコンテンツ108で表されるエントリの最大数である。
ビデオシンタックス114は、エントリ識別子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のビデオストリーム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オカレンスを表すことができる。ビデオビットストリーム110は、時間レイヤカウント238で示される時間レイヤ230の複数のオカレンスを有することができる。別の実施例では、時間レイヤカウント238は、第1のオカレンス232、第2のオカレンス234、及び第3のオカレンス236に関する3つの値を有することができる。
時間レイヤ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のスマートフォンに関するビデオデコーダ102は、第1のオカレンス232及び第2のオカレンス234からの情報を含むことができるビデオビットストリーム110から30fpsでの時間レイヤ230の第2のオカレンス234を抽出することができる。時間レイヤ230の第3のオカレンス236からのビデオビットストリーム110内の情報を切り捨てて、ビデオビットストリーム110のサイズを小さくすることができる。
ここで図3を参照すると、HRDシンタックス302の実施例が示されている。HRDシンタックス302は、仮想参照デコーダに関連するパラメータを表す。
HRDシンタックス302は、図4のHRDベースシンタックス表で表された要素を含む。HRDシンタックス302の要素は、図4のHRDベースシンタックス表において表された階層構造で配列される。
HRDシンタックス302は、ビデオビットストリーム110に含めることができ、各要素は、送信された順番で受信される連続的時間方法で配信することができる。例えば、HRDシンタックス302は、図4のHRDシンタックスで表された順番で配信されるHRDシンタックス302の要素を有するシリアルビットストリームとして図1のビデオデコーダ104で受信することができる。
HRDシンタックス302は、hrd_parameters要素のようなHRDシンタックスヘッダ部304を含むことができる。HRDシンタックスヘッダ部404は、HRDシンタックス302を識別するための記述子である。
HRDシンタックス302は、cpb_cnt_minus1要素のような符号化ピクチャバッファ(CPB)カウント308を含むことができる。CPBカウント308は、制限されたビットレート及びCPBサイズ値を有する別の配信スケジューラの数を示すことができる。
HRDシンタックス302は、bit_rate_scale要素のようなビットレートスケール310を含むことができる。ビットレートスケール310は、CPBの最大入力ビットレートを指定する。
HRDシンタックス302は、cpb_size_scale要素のようなCPBサイズスケール312を含むことができる。CPBサイズスケール312は、符号化ピクチャバッファのサイズを判定するためのものである。
HRDシンタックス302は、符号化ピクチャバッファの各オカレンスに関するパラメータセットを規定するためのループ構造を含むことができる。ループ構造は、SchedSelIdx要素のようなスケジュール選択インデックスに基づく大きさである。HRDシンタックス302のループ構造は、符号化ピクチャバッファの各オカレンスに関するビットレート値316、CPBサイズ値318、及び固定ビットレート(CBR)フラグ320を含むことができる。
HRDシンタックス302は、bit_rate_value_minus1要素のようなビットレート値316を含むことができる。ビットレート値316を使用して、符号化ピクチャバッファの各オカレンスに関する最大入力ビットレートを指定することができる。
HRDシンタックス302は、cpb_size_value_minus1要素のようなCPBサイズ値318を含むことができる。CPBサイズ値318を使用して、符号化ピクチャバッファの各オカレンスのサイズを判定することができる。
HRDシンタックス302は、cbr_flag要素のようなCBRフラグ320を含むことができる。CBRフラグ320は、符号化ピクチャバッファの各オカレンスに関してビデオビットストリーム110を復号するための動作モードを示す。CBRフラグ320が値1を有する場合には、仮想ストリーム配信スケジューラ(HSS)は、固定ビットレートモードで動作する。それ以外の場合には、ビデオビットストリーム110は、断続的なビットレートモードで動作する。
HRDシンタックス302は、initial_cpb_removal_delay_length_minus1要素のような初期CPB除去遅延長322を含むことができる。初期CPB除去遅延長322は、バッファリング期間付加拡張情報(SEI)メッセージのinitial_cpb_removal_delay要素及びinitial_cpb_removal_offset要素のビット長を示す。
HRDシンタックス302は、cpb_removal_delay_length_minus1要素のようなCPB除去遅延長324を含むことができる。CPB除去遅延長324は、ピクチャタイミングSEIメッセージ内のcpb_removal_delay要素のビット長を指定することができる。
HRDシンタックス302は、dpb_output_delay_length_minus1要素のような復号ピクチャバッファ(DPB)出力遅延長326を含むことができる。DPB出力遅延長326は、DPBのサイズを示す。
HRDシンタックス302は、time_offset_length要素のような時間オフセット長328を含むことができる。時間オフセット長328は、time_offset要素のビット長を示す。
ここで図4を参照すると、高効率映像符号化(HEVC)ビデオ表示情報(VUI)シンタックス402の実施例が示されている。HEVC VUIシンタックス402は、図1のビデオコンテンツ108に関する追加のアプリケーションユーザビリティ機能を可能にするための図1のビデオビットストリーム110に関する情報を含む。
HEVC VUIシンタックス402は、図3のHEVC VUIシンタックス表内の要素を表す。HEVC VUIシンタックス402の要素は、図3のHEVC VUIシンタックス表において表された階層構造で配列される。
HEVC VUIシンタックス402は、vui_parameters要素のようなHEVC VUIシンタックスヘッダ部404を含む。HEVC VUIシンタックスヘッダ部404は、HEVC VUIシンタックス402を識別するための記述子である。HEVC VUIシンタックス402を使用して、ビデオビットストリーム110を符号化及び復号する。
HEVC VUIシンタックス402は、aspect_ratio_info_present_flag要素のようなアスペクト比フラグ406を含むことができる。アスペクト比フラグ406は、アスペクト比情報がビデオビットストリーム110内に符号化されていることを示すことができる。アスペクト比フラグ406は、アスペクト比情報が、ビデオビットストリーム110内に存在していないことを示すための値0、及びアスペクト比情報が、ビデオビットストリーム110に含まれていることを示すための値1を有することができる。
HEVC VUIシンタックス402は、aspect_ratio_idc要素のようなアスペクト比インジケータ408を含むことができる。アスペクト比インジケータ408は、図1のビデオコンテンツ108のアスペクト比を表す値である。アスペクト比インジケータ408は、例えば、ビデオコンテンツ108に関する所定のアスペクト比の列挙型リストに関するインデックス値を含むことができる。別の実施例では、アスペクト比インジケータ408は、アスペクト比を、アスペクト比幅410及びアスペクト比高さ412に関する個別の値で表すことができることを示す値を含むことができる。
HEVC VUIシンタックス402は、sar_width要素のようなアスペクト比幅410を含むことができる。アスペクト比幅410は、ビデオコンテンツ108の幅を表すことができる。アスペクト比幅410は、ビデオコンテンツの大きさを、比率、画素、線、インチ、センチメートル、又はそれらの組み合わせで表すことができる。
HEVC VUIシンタックス402は、sar_hight要素のようなアスペクト比高さ412を含むことができる。アスペクト比高さ412は、ビデオコンテンツ108の高さを表すことができる。アスペクト比高さ412は、ビデオコンテンツの大きさを、比率、画素、線、インチ、センチメートル、又はそれらの組み合わせで表すことができる。
HEVC VUIシンタックス402は、overscan_info_present_flagのようなオーバースキャン存在フラグ414を含むことができる。オーバースキャン存在フラグ414は、オーバースキャン情報が、ビデオビットストリーム110に含まれているか否かを示すことができる。オーバースキャン存在フラグ414は、オーバースキャン情報が、ビデオビットストリーム内に存在していることを示すための値1、又はオーバースキャン情報が、ビデオビットストリーム110内に存在していないことを示すための値0を有することができる。
オーバースキャンは、図1のビデオストリーム112から切り取って復号されたピクチャの境界近くの一部の部分が、ビデオストリーム112の表示領域内で視認できない場合の表示処理として規定される。アンダースキャンは、ビデオストリーム112から切り取って復号されたピクチャ全体が、表示領域内で視認できるが、表示領域全体を対象として含んでいない場合の表示処理として規定される。
HEVC VUIシンタックス402は、overscan_appropriate_flag要素のようなオーバースキャン適切フラグ416を含むことができる。オーバースキャン適切フラグ416は、ビデオビットストリーム110内に符号化されたビデオコンテンツ108が、オーバースキャンを使用して表示できることを示すことができる。
オーバースキャン適切フラグ416は、ビデオストリーム112から切り取って復号されたピクチャが、オーバースキャンを使用して表示するのに好適であることを示すための値1を有することができる。オーバースキャン適切フラグ416は、ビデオストリーム112から切り取って復号されたピクチャが、視覚的に重要な情報を含み、オーバースキャンを使用して表示すべきでないことを示すための値0を有することができる。
HEVC VUIシンタックス402は、video_signal_type_present_flag要素のようなビデオ信号存在フラグ418を含むことができる。ビデオ信号存在フラグ418は、ビデオ信号タイプ情報が、ビデオビットストリーム110に含まれていることを示すことができる。ビデオ信号存在フラグ418は、追加のビデオ信号タイプ情報が、ビデオビットストリーム110内に存在していることを示すための値1を有することができる。ビデオ信号存在フラグ418は、ビデオ信号タイプ情報が、ビデオビットストリーム110内に存在していないことを示すための値0を有することができる。
HEVC VUIシンタックス402は、video_format要素のようなビデオ形式420を含むことができる。ビデオ形式420は、ビデオの形式を示すことができる。
HEVC VUIシンタックス402は、video_full_range_flag要素のようなビデオフルレンジフラグ422を含むことができる。ビデオフルレンジフラグ422は、ビデオビットストリーム110内に符号化されたビデオコンテンツ108に関する輝度及び色差信号の黒レベル及び範囲を示すことができる。
HEVC VUIシンタックス402は、colour_description_present_flag要素のようなカラー記述存在フラグ424を含むことができる。カラー記述存在フラグ424は、ビデオビットストリーム110内のカラー記述情報の存在を示すことができる。
カラー記述存在フラグ424は、別のカラー記述情報が、ビデオビットストリーム110に含まれていないことを示すための値0を有することができる。カラー記述存在フラグ424は、原色426、伝達特性428、及び行列係数430が、ビデオビットストリーム110に含まれていることを示すための値1を有することができる。
HEVC VUIシンタックス402は、colour_primaries要素のような原色426を含むことができる。原色426は、ビデオコンテンツ108で使用されるカラースキームを示すことができる。例えば、原色426は、元の原色の色度座標を示すことができる。
HEVC VUIシンタックス402は、transfer_characteristics要素のような伝達特性428を含むことができる。伝達特性428は、ビデオコンテンツ108の光エレクトロニクス伝達特性を示すことができる。伝達特性428は、例えば、所定の表示特性セットを表す列挙型値とすることができる。
HEVC VUIシンタックス402は、matrix_coefficient要素のような行列係数430を含むことができる。行列係数430は、原色426で示される赤、緑、及び青の原色から輝度及び色差信号を得るために使用される係数を示すことができる。行列係数430を使用して、コンピュータにより赤、青、及び緑の色度座標セットを輝度及び色差均等値に変換することができる。
HEVC VUIシンタックス402は、chroma_loc_info_present_flag要素のような色差位置情報存在フラグ432を含むことができる。色差位置情報存在フラグ432は、色差最高部フィールドサンプル434及び色差最低部フィールドサンプル436が、ビデオビットストリーム110内に存在していることを示すための値1を有することができる。
HEVC VUIシンタックス402は、chroma_sample_loc_type_top_field要素のような色差最高部フィールドサンプル434を含むことができる。色差最高部フィールドサンプル434は、ビデオビットストリーム110内の最高部フィールドに関する色差サンプルの位置を指定するための列挙型値である。
HEVC VUIシンタックス402は、chroma_sample_loc_type_bottom_field要素のような色差最低部フィールドサンプル436を含むことができる。色差最低部フィールドサンプル436は、ビデオビットストリーム110内の最低部フィールドに関する色差サンプルの位置を指定するための列挙型値である。
HEVC VUIシンタックス402は、neutral_chroma_indication_flag要素のような中間色差フラグ438を含むことができる。中間色差フラグ438は、復号された色差サンプルが1に等しいか否かを示すことができる。例えば、中間色差フラグ438が値1を有する場合には、復号された色差サンプルの全てが、1に設定されている。中間色差フラグ438が値0を有する場合には、復号された色差サンプルは、1に制限されていない。
HEVC VUIシンタックス402は、field_seq_flagのようなフィールドシーケンスフラグ440を含むことができ、これは、符号化されたビデオシーケンス情報が、ビデオ表現フィールドを含むか否かを示すことができる。フィールドシーケンスフラグ440は、ビデオビットストリーム110の符号化されたビデオシーケンスがフィールドレベルピクチャを含むことを示すための値1、及びフレームレベルピクチャを示すための値0を有することができる。
HEVC VUIシンタックス402は、timing_info_present_flag要素のようなタイミング情報存在フラグ442を含むことができる。タイミング情報存在フラグ442は、タイミング情報がビデオビットストリーム110に含まれているか否かを示すことができる。例えば、タイミング情報存在フラグ442は、時間刻みユニット444、時間スケール446、及び固定ピクチャレートフラグ448がビデオビットストリーム110内に存在していることを示すための値1を有することができる。
HEVC VUIシンタックス402は、num_units_in_tick要素のような時間刻みユニット444を含むことができる。時間刻みユニット444は、時間スケール446の周波数で動作するクロックの時間単位数を示すことができる。例えば、時間刻みユニット444は、ビデオビットストリーム110で表すことができる最小の時間間隔に対応することができる。
HEVC VUIシンタックス402は、time_scale要素のような時間スケール446を含むことができる。時間スケール446は、1秒の時間単位数である。
HEVC VUIシンタックス402は、fixed_pic_rate_flag要素のような固定ピクチャレートフラグ448を含むことができる。固定ピクチャレートフラグ448は、ビデオストリーム112の出力順番における2つの連続的なピクチャの間の時間距離が制約されているか否かを示すことができる。固定ピクチャレートフラグ448は、制約が適用されないことを示すための値0、及び時間距離が制約されていることを示すための値1を有する。
HEVC VUIシンタックス402は、nal_hrd_parameters_present_flag要素のようなNAL HRDパラメータ存在フラグ452を含むことができる。NAL HRDパラメータ存在フラグ452は、NAL HRDパラメータの存在が図3のHRDシンタックス302に含まれていることを示すことができる。NAL HRDパラメータ存在フラグ452は、HRDパラメータ構造454が存在していることを示すための値1、及びHRDパラメータ構造454がビデオビットストリーム110内に存在していないことを示すための値0を有することができる。
HEVC VUIシンタックス402は、HRDパラメータ構造454を含むことができる。HRDパラメータ構造454は、図3のHRDシンタックス302のオカレンスである。HRDパラメータ構造454は、HRDシンタックスのセクションで詳細に説明される。
HEVC VUIシンタックス402は、vcl_hrd_parameters_present_flag要素のようなVCL HRDパラメータ存在フラグ456を含むことができ、VCLに関してHRD情報の存在を示すことができる。VCL HRDパラメータ存在フラグ456は、HRDパラメータ構造454が存在していることを示すための値1、及びHRDパラメータ構造454がビデオビットストリーム110内に存在していないことを示すための値0を有することができる。
NAL HRDパラメータ存在フラグ452又はVCL HRDパラメータ存在フラグ456が値1を有する場合には、HEVC VUIシンタックス402は、ビデオビットストリーム110内に低遅延フラグ460及びサブピクチャCPBパラメータ存在フラグ462を含むことができる。サブピクチャCPBパラメータ存在フラグ462が値1を有する場合には、HEVC VUIシンタックス402は、ビデオビットストリーム110内に時間刻みサブユニット464を含むことができる。
HEVC VUIシンタックス402は、low_delay_hrd_flag要素のような低遅延フラグ460を含むことができる。低遅延フラグ460は、HRD動作モードを示すことができる。
HEVC VUIシンタックス402は、sub_pic_cpb_params_present_flag要素のようなサブピクチャCPBパラメータ存在フラグ462を含むことができる。サブピクチャCPBパラメータ存在フラグ462は、サブピクチャCPBパラメータがビデオビットストリーム110内に存在しているか否かを示すことができる。
HEVC VUIシンタックス402は、num_of_units_in_sub_tick要素のような時間刻みサブユニット464を含むことができる。時間刻みサブユニット464は、タイミング付加拡張情報(SEI)メッセージを取り除く前に待つための時間刻み数を示すことができる。
HEVC VUIシンタックス402は、bitstream_restriction_flag要素のようなビットストリーム制限フラグ466を含むことができる。ビットストリーム制限フラグ466は、符号化されたビデオシーケンスのビットストリーム制限パラメータが、ビデオビットストリーム110内に存在していることを示すことができる。ビットストリーム制限フラグ466が値1を有する場合には、HEVC VUIシンタックス402は、タイル固定構成フラグ468、動きベクトルフラグ470、ピクチャ種類毎の最大バイト数472、最少CU種類毎の最大ビット数474、動きベクトル最大水平距離476、及び動きベクトル最大垂直距離478を含むことができる。
HEVC VUIシンタックス402は、tiles_fixed_structure_flag要素のようなタイル固定構成フラグ468を含むことができ、これは、符号化されたビデオシーケンス内の各ピクチャが、同じ数のタイルを有することを示すことができる。タイル固定構成フラグ468は、この固定タイルを示すための値1、及びそれ以外の場合を示すための値0を有することができる。
HEVC VUIシンタックス402は、motion_vector_over_pic_boundaries_flag要素のような動きベクトルフラグ470を含むことができ、これは、ピクチャ境界の外部のサンプルが予測のために使用されないことを示すことができる。動きベクトルフラグ470が値1を有する場合には、ピクチャ境界の外部の1つ又はそれ以上のサンプルが予測のために使用でき、それ以外の場合には、サンプルが予測のために使用されない。
HEVC VUIシンタックス402は、max_bytes_per_pic_denom要素のようなピクチャ種類毎の最大バイト数472を含むことができ、これは、符号化されたビデオシーケンス内のいずれかの符号化されたピクチャに関連するVCL NALユニットの合計サイズに関する最大ビット数を示す値である。ピクチャ種類毎の最大バイト数472が値0を有する場合には、制限は示されない。それ以外の場合には、符号化されたピクチャを、ビデオビットストリーム110内で、ピクチャ種類毎の最大バイト数472よりも多いバイトにより表すべきではないというビットストリーム適合要件である。
HEVC VUIシンタックス402は、max_bits_per_min_cu_denom要素のような最少CU種類毎の最大ビット数474を含むことができ、これは、符号化されたビデオシーケンスのいずれかのピクチャ内のいずれかの符号化ブロックに関する符号化ユニットデータの符号化されたビット数に関する上限を示す値である。最少CU種類毎の最大ビット数474が値0を有する場合には、制限は示されない。それ以外の場合には、符号化ユニットを、ビットストリーム内で、最少CU種類毎の最大ビット数474よりも多いビットで表すべきではないというビットストリーム適合要件である。
HEVC VUIシンタックス402は、log2_max_mv_length_horizontal要素のような動きベクトル最大水平距離476を含むことができ、これは、ビデオビットストリーム110内の全てのピクチャに関する復号された動きベクトル水平成分の最大絶対値を示す。log2_max_mv_length_vertical要素のような動きベクトル最大垂直距離478は、ビデオビットストリーム110内の全てのピクチャに関する復号された動きベクトル垂直成分の最大絶対値を示す。
HRDシンタックス302は、ビデオビットストリーム110に関する標準の要件セットを表すことができる。HRDシンタックス302を使用して、ビデオビットストリーム110のビットレートを制御することができる。例えば、HRDシンタックス302は、可変又は固定のビットレート動作、低遅延動作、及び遅延耐性動作を制御するためのパラメータを含むことができる。
別の実施例では、HRDシンタックス302は、図3のビットレートスケール310、図3のCPBカウント308、及び図3のCPBサイズスケール312のようなパラメータを使用して、符号化ピクチャバッファの性能、符号化ピクチャバッファの数、及び符号化ピクチャバッファのサイズを制御するために使用される。HRDシンタックス302は、図3のDPB出力遅延長326のようなパラメータを使用して復号ピクチャバッファを制御するために使用することができる。
HRDシンタックス302は、符号化ピクチャバッファの個別のオカレンスの制御にわたるより高精度で精細な制御を可能にすることによって性能を向上できることが見いだされている。HRDシンタックス302の個別のオカレンスを使用することにより、CPBの種々のオカレンス間の個別の差分を利用することによって処理速度を向上することができる。
HRDシンタックス302を使用してビデオコンテンツ108を符号化及び復号することにより、ビデオビットストリーム110のサイズを減少させることができ、ビデオストリーム112を表示するために必要なビデオバッファリングの量が減少することが見いだされている。ビデオビットストリーム110のサイズを低減することにより、機能性が向上し、ビデオストリーム112の表示性能が向上する。
ここで図5を参照すると、HEVC VUI拡張シンタックス502の実施例が示されている。HEVC VUI拡張シンタックス502は、図1のビデオビットストリーム110内の時間レイヤの各オカレンスに関する情報を提供する。HEVC VUI拡張シンタックス502は、図4のHEVC VUIシンタックス402の実施形態とすることができる。
HEVC VUI拡張シンタックス502は、図5のHEVC VUI拡張シンタックス表内の要素を表す。HEVC VUI拡張シンタックス502の要素は、図5のHEVC VUI拡張シンタックス表において表された階層構造で配列される。
HEVC VUIシンタックス402は、図1の映像符号化システム100のVUIパラメータを表すことができる。例えば、HEVC VUI拡張シンタックス502は、HEVC VUIシンタックス402のオカレンスとすることができる。第1又は第2のような用語は、識別のためにのみ使用され、何らかの順番、優先度、重要性、又は優先順位を示すものではない。
HEVC VUI拡張シンタックス502は、vui_parameters要素のようなHEVC VUI拡張シンタックスヘッダ部504を含む。HEVC VUI拡張シンタックスヘッダ部504は、HEVC VUI拡張シンタックス502を識別するための記述子である。
HEVC VUI拡張シンタックス502は、nal_hrd_parameters_present_flag要素のようなNAL HRDパラメータ存在フラグ452を含むことができる。NAL HRDパラメータ存在フラグ452は、NAL HRDパラメータ情報の存在を示すことができる。
HEVC VUI拡張シンタックス502は、vcl_hrd_parameters_present_flag要素のようなVCL HRDパラメータ存在フラグ456を含むことができる。VCL HRDパラメータ存在フラグ456は、VCL HRDパラメータ情報の存在を示すことができる。
NAL HRDパラメータ存在フラグ452又はVCL HRDパラメータ存在フラグ456が値1を有する場合には、HEVC VUI拡張シンタックス502は、低遅延フラグ460、及びサブピクチャCPBパラメータ存在フラグ462を含むことができる。
NAL HRDパラメータ存在フラグ452及びVCL HRDパラメータ存在フラグ456は、別のHRD関連パラメータの包含を制御することができる。NAL HRDパラメータ存在フラグ452又はVCL HRDパラメータ存在フラグ456が値1を有する場合には、HEVC VUI拡張シンタックス502は、低遅延フラグ460、及びサブピクチャCPBパラメータ存在フラグ462を含むことができる。
HEVC VUI拡張シンタックス502は、low_delay_hrd_flag要素のような低遅延フラグ460を含むことができる。低遅延フラグ460は、HRD動作モードを示すことができる。
HEVC VUI拡張シンタックス502は、sub_pic_cpb_params_present_flag要素のようなサブピクチャCPBパラメータ存在フラグ462を含むことができる。サブピクチャCPBパラメータ存在フラグ462は、サブピクチャCPBパラメータが図1のビデオビットストリーム110内に存在しているか否かを示すことができる。
サブピクチャCPBパラメータ存在フラグ462が値1を有する場合には、HEVC VUI拡張シンタックス502は、num_of_units_in_sub_tick要素のような時間刻みサブユニット464を含むことができる。時間刻みサブユニット464は、タイミング付加拡張情報(SEI)メッセージを取り除く前に待つための時間刻み数を示すことができる。
HEVC VUI拡張シンタックス502は、図3のHRDシンタックス302がHEVC VUI拡張シンタックス502に含まれているか否かを判定するために評価される2つの条件チェックを含むことができる。NAL HRDパラメータ存在フラグ452が値1を有する場合には、HEVC VUI拡張シンタックス502は、HRDシンタックス302を含むことができる。
VCL HRDパラメータ存在フラグ456が値1を有する場合には、HEVC VUIシンタックス402は、HRDシンタックス302を含むことができる。NAL HRDパラメータ存在フラグ452又はVCL HRDパラメータ存在フラグ456のいずれもが値1を有しない場合には、HRDシンタックス302は、HEVC VUIシンタックス402に含まれない。
ビデオビットストリーム110は、HEVC VUI拡張シンタックス502のオカレンスを含むことができる。ビデオビットストリーム110は、ビデオビットストリーム110内で連続的に配列されたHEVC VUI拡張シンタックス502の各要素を含むシリアルビットストリームである。HEVC VUI拡張シンタックス502の要素は、図5のHEVC VUI拡張シンタックス表で規定された順番でビデオビットストリーム110から抽出することができる。
HEVC VUI拡張シンタックス502の低遅延フラグ460の値は、HRDシンタックス302の図3のCPBカウント308の使用を判定することができる。低遅延フラグ460が値1を有する場合には、CPBカウント308は0に設定される。
HEVC VUI拡張シンタックス502は、ビデオビットストリーム110のシリアル伝送におけるHRDシンタックス302の前に位置する低遅延フラグ460を含む。低遅延フラグ460は、HRDシンタックス302の前に抽出される。NAL HRDパラメータ存在フラグ452及びVCL HRDパラメータ存在フラグ456は、HRDシンタックス302の前に抽出される。HRDシンタックス302の要素は、低遅延フラグ460、NAL HRDパラメータ存在フラグ452、及びVCL HRDパラメータ存在フラグ456の値に基づいて抽出することができる。例えば、低遅延フラグ460が値1を有し、NAL HRDパラメータ存在フラグ452又はVCL HRDパラメータ存在フラグ456のいずれかが値1を有する場合には、HRDシンタックス302のCPBカウント308の値は、明示的に0に設定でき、映像符号化システム100は、単一の符号化ピクチャバッファのみを用いた低遅延モードで動作することができる。
図2の全ての時間レイヤ230に関して不変のHRDパラメータ構造454を有するHEVC VUI拡張シンタックス502を使用して、図1のビデオコンテンツ108を符号化及び復号することにより、複雑性を低減し性能を向上できることが見いだされている。HRDパラメータ構造454は、復号プロセスの処理にわたる安定した制御を可能にすることによって、動作を単純化すること、及び複雑性を低減することができる。
ここで図6を参照すると、HRDベースシンタックス602の実施例が示されている。HRDベースシンタックス602は、仮想参照デコーダの動作に関連するパラメータを表す。
HRDベースシンタックス602は、図6のHRDシンタックス表で表された要素を含む。HRDベースシンタックス602の要素は、図6のHRDシンタックス表において表された階層構造で配列される。
HRDベースシンタックス602は、hrd_parameters要素のようなHRDベースシンタックスヘッダ部604を含むことができる。HRDベースシンタックスヘッダ部604は、HRDベースシンタックス602を識別するための記述子である。
HRDベースシンタックス602は、タイミング情報が図1のビデオビットストリーム110に含まれているか否かを示すための、timing_info_present_flag要素のようなタイミング情報存在フラグ442を含むことができる。タイミング情報存在フラグ442は、タイミング情報がビデオビットストリーム110内に存在していることを示すための値1、及びタイミング情報がビデオビットストリーム110内に存在していないことを示すための値0を有することができる。
HRDベースシンタックス602は、時間スケール446の周波数で動作するクロックの時間単位数を示すための、num_units_in_tick要素のような時間刻みユニット444を含むことができる。例えば、時間刻みユニット444は、ビデオビットストリーム110で表すことができる最低の時間間隔に対応することができる。time_scale要素のような時間スケール446は、1秒の時間単位数である。
HRDベースシンタックス602は、NAL HRDパラメータ情報の存在を示すための、nal_hrd_parameters_present_flag要素のようなNAL HRDパラメータ存在フラグ452を含むことができる。HRDベースシンタックス602は、VCLに関するHRD情報の存在を示すための、vcl_hrd_parameters_present_flag要素のようなVCL HRDパラメータ存在フラグ456を含むことができる。
NAL HRDパラメータ存在フラグ452又はVCL HRDパラメータ存在フラグ456が値1を有する場合には、HRDベースシンタックス602は、追加のCPB関連要素を含むことができる。例えば、HRDベースシンタックス602は、サブピクチャCPBパラメータ存在フラグ462、ビットレートスケール310、CPBサイズスケール312、初期CPB除去遅延長322、CPB除去遅延長324、及びDPB出力遅延長326を含むことができる。
HRDベースシンタックス602は、サブピクチャCPBパラメータがビデオビットストリーム110内に存在しているか否かを示すための、sub_pic_cpb_params_present_flag要素のようなサブピクチャCPBパラメータ存在フラグ462を含むことができる。サブピクチャCPBパラメータ存在フラグ462が値1を有する場合には、HRDベースシンタックス602は、ビデオビットストリーム110で表すことができる最小時間間隔を指定するための、tick_divisor_minus2要素のような時間刻み除数606を含むことができる。
HRDベースシンタックス602は、符号化ピクチャバッファ(CPB)の最大入力ビットレートを示すための、bit_rate_scale要素のようなビットレートスケール310を含むことができる。HRDベースシンタックス602は、CPBのサイズを判定するための、cpb_size_scale要素のようなCPBサイズスケール312を含むことができる。
HRDベースシンタックス602は、バッファリング期間SEIメッセージの要素のビット長を示すための、initial_cpb_removal_delay_length_minus1要素のような初期CPB除去遅延長322を含むことができる。HRDベースシンタックス602は、ピクチャタイミングSEIメッセージ内のcpb_removal_delay要素のビット長を示すための、cpb_removal_delay_length_minus1要素のようなCPB除去遅延長324を含むことができる。
HRDベースシンタックス602は、dpb_output_delay_length_minus1要素のようなDPB出力遅延長326を含むことができる。DPB出力遅延長326は、復号ピクチャバッファ(DPB)のサイズを示す。
HRDベースシンタックス602は、サブレイヤの各オカレンスに関するパラメータセットを含むことができる。HRDベースシンタックス602は、サブレイヤの各オカレンスに関するパラメータを表すための[i]のようなイテレータを使用したループ構造を含むことができる。
HRDベースシンタックス602は、ビデオビットストリーム110内のサブレイヤの最大数を示すための、MaxNumSubLayersMinus1要素のようなサブレイヤカウント306を含むことができる。HRDベースシンタックス602は、ビデオビットストリーム110内のいずれか2つの連続的なピクチャのHRD出力時間の間の時間距離が制約されているか否かを示すための、fixed_pic_rate_flag要素のような固定ピクチャレートフラグ448を含むことができる。
固定ピクチャレートフラグ448が値1を有する場合には、HRDベースシンタックス602は、pic_duration_in_tc_minus1要素のようなピクチャ期間608を含むことができる。ピクチャ期間608は、符号化されたビデオシーケンスにおける出力順序でのいずれか2つの連続的なピクチャのHRD出力時間の間の時間距離を示すことができる。
HRDベースシンタックス602は、low_delay_hrd_flag要素のような低遅延フラグ460を含むことができる。低遅延フラグ460は、HRD動作モードを示すことができる。
HRDベースシンタックス602は、cpb_cnt_minus1要素のようなCPBカウント308を含むことができる。CPBカウント308は、ビデオビットストリーム110内の別のCPB規格値の数を示すことができる。
NAL HRDパラメータ存在フラグ452が値1を有する場合には、HRDベースシンタックス602は、サブレイヤの各オカレンスに関して、hrd_parameters_sub_layer要素のようなHRDサブレイヤパラメータ構造610を含むことができる。HRDサブレイヤパラメータ構造610は、各サブレイヤに関連するパラメータを表すことができる。
VCL HRDパラメータ存在フラグ456が値1を有する場合には、HRDベースシンタックス602は、図2の時間レイヤ230の各オカレンスに関して、hrd_parameters_sub_layer要素のようなHRDサブレイヤパラメータ構造610を含むことができる。HRDサブレイヤパラメータ構造610は、各サブレイヤに関連するパラメータを表すことができる。
HRDベースシンタックス602は、ビデオビットストリーム110のシリアル伝送におけるHRDサブレイヤパラメータ構造610の前に位置する低遅延フラグ460を含むことができる。低遅延フラグ460は、HRDサブレイヤパラメータ構造610の前に抽出される。NAL HRDパラメータ存在フラグ452及びVCL HRDパラメータ存在フラグ456は、HRDサブレイヤパラメータ構造610の前に抽出される。
HRDサブレイヤパラメータ構造610の要素は、低遅延フラグ460、NAL HRDパラメータ存在フラグ452、及びVCL HRDパラメータ存在フラグ456の値に基づいて抽出することができる。例えば、低遅延フラグ460が値1を有し、NAL HRDパラメータ存在フラグ452又はVCL HRDパラメータ存在フラグ456が値1を有する場合には、HRDサブレイヤパラメータ構造610のCPBカウント308の値は、明示的に0に設定でき、映像符号化システム100は、単一の符号化ピクチャバッファのみを用いた低遅延モードで動作することができる。
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要素のようなスケジュール選択インデックス314に基づく大きさである。
HRDサブレイヤシンタックス702は、bit_rate_value_minus1要素のようなビットレート値316を含むことができる。ビットレート値316を使用して、符号化ピクチャバッファの各オカレンスに関する最大入力ビットレートを指定することができる。
HRDサブレイヤシンタックス702は、cpb_size_value_minus1要素のようなCPBサイズ値318を含むことができる。CPBサイズ値318を使用して、符号化ピクチャバッファの各オカレンスのサイズを判定することができる。
HRDサブレイヤシンタックス702は、cbr_flag要素のようなCBRフラグ320を含むことができる。CBRフラグ320は、符号化ピクチャバッファの各オカレンスに関して図1のビデオビットストリーム110を復号するための動作モードを示す。CBRフラグ320が値1を有する場合には、仮想ストリーム配信スケジューラは、固定ビットレートモードで動作する。それ以外の場合には、ビデオビットストリーム110は、断続的なビットレートモードで動作する。
HRDサブレイヤシンタックス702は、図2の時間レイヤ230の特性を表すことができる。時間レイヤ230は更に、図1のビデオビットストリーム110のサブレイヤとして示すことができる。
HRDサブレイヤシンタックス702は、ビデオビットストリーム110のサブレイヤ又は時間レイヤ230を表すことができる。HRDサブレイヤシンタックス702を使用して、サブレイヤのうちの1つ又は時間レイヤ230のうちの1つを選択し、ビデオビットストリーム110から別のサブレイヤのオカレンスを取り除くことができる。
サブレイヤ又は時間レイヤ230からオカレンスを取り除くことにより、ビデオビットストリーム110内のデータ量全体を減少させることができ、より適切な伝達、改良されたストレージ帯域幅制御及び調整のために、ビットレート低減、又は図1のビデオコンテンツ108のサイズ変更が可能になる。サブレイヤ又は時間レイヤ固有のHRDパラメータを提供することにより、図1のビデオストリーム112を生成するためのより適切でより滑らかなビットストリーム復号が可能になる。
HRDサブレイヤシンタックス702を使用することにより、図2の時間レイヤ230に関連する個別のサブレイヤの処理にわたるより高精度で精細な制御を可能にすることによって性能を向上できることが見いだされている。HRDサブレイヤシンタックス702の個別のオカレンスを使用することにより、種々のサブレイヤ間の個別の差分を利用することによって処理速度を向上することができる。
ここで図8を参照すると、HRD VUIシンタックス802の実施例が示されている。HRD VUIシンタックス802は、仮想参照デコーダに関連するパラメータを表す。
HRD VUIシンタックス802は、図8のHRD VUIシンタックス表で表された要素を含む。HRD VUIシンタックス802の要素は、図8のHRD VUIシンタックス表において表された階層構造で配列される。
HRD VUIシンタックス802は、vui_parameters要素のようなHRD VUIシンタックスヘッダ部804を含むことができる。HRD VUIシンタックスヘッダ部804は、HRD VUIシンタックス802を識別するための記述子である。
HRD VUIシンタックス802は、追加のアスペクト比情報が図1のビデオビットストリーム110内に符号化されていることを示すための、aspect_ratio_info_present_flag要素のようなアスペクト比フラグ406を含むことができる。HRD VUIシンタックス802は、図1のビデオコンテンツ108のアスペクト比を表すための、aspect_ratio_idc要素のようなアスペクト比インジケータ408を含むことができる。
アスペクト比インジケータ408は、アスペクト比幅410及びアスペクト比高さ412に関する個別の値によってアスペクト比を表すことができることを示す値を含むことができる。sar_width要素のようなアスペクト比幅410は、ビデオコンテンツ108の幅を表すことができる。sar_hight要素のようなアスペクト比高さ412は、ビデオコンテンツ108の高さを表すことができる。
HRD VUIシンタックス802は、オーバースキャン情報が、ビデオビットストリーム110に含まれているか否かを示すための、overscan_info_present_flagのようなオーバースキャン存在フラグ414を含むことができる。オーバースキャン存在フラグ414が値1を有する場合には、HRD VUIシンタックス802は、オーバースキャンを使用して、ビデオビットストリーム110内に符号化されたビデオコンテンツ108を表示できることを示すための、overscan_appropriate_flag要素のようなオーバースキャン適切フラグ416を含むことができる。
HRD VUIシンタックス802は、ビデオ信号種類情報が、ビデオビットストリーム110内に含まれていることを示すための、video_signal_type_present_flag要素のようなビデオ信号存在フラグ418を含むことができる。ビデオ信号存在フラグが値1を有する場合には、HRD VUIシンタックス802は、ビデオ形式420、ビデオフルレンジフラグ422、及びカラー記述存在フラグ424を含むことができる。
video_format要素のようなビデオ形式420は、ビデオの形式を示すことができる。video_full_range_flag要素のようなビデオフルレンジフラグ422は、ビデオビットストリーム110内に符号化されたビデオコンテンツ108に関する輝度及び色差信号の黒レベル及び範囲を示すことができる。
colour_description_present_flag要素のようなカラー記述存在フラグ424は、ビデオビットストリーム110内のカラー記述情報の存在を示すことができる。カラー記述情報は、原色426、伝達特性428、及び行列係数430を含むことができる。
colour_primaries要素のような原色426は、ビデオコンテンツ108内で使用されるカラースキームを示すことができる。伝達特性428は、ビデオコンテンツ108の光エレクトロニクス伝達特性を示すことができる。matrix_coefficient要素のような行列係数430は、原色426で示される赤、緑、及び青の原色から輝度及び色差信号を得るために使用される係数を示すことができる。
HRD VUIシンタックス802は、追加の色差情報がビデオビットストリーム110内に存在しているか否か示すための、chroma_loc_info_present_flag要素のような色差位置情報存在フラグ432を含むことができる。色差位置情報存在フラグ432が値1を有する場合には、HRD VUIシンタックス802は、色差最高部フィールドサンプル434及び色差最低部フィールドサンプル436を含むことができる。
chroma_sample_loc_type_top_field要素のような色差最高部フィールドサンプル434は、ビデオビットストリーム110内の最高部フィールドに関する色差サンプルの位置を指定するための列挙型値とすることができる。chroma_sample_loc_type_bottom_field要素のような色差最低部フィールドサンプル436は、ビデオビットストリーム110内の最低部フィールドに関する色差サンプルの位置を指定するための列挙型値とすることができる。
HRD VUIシンタックス802は、neutral_chroma_indication_flag要素のような中間色差フラグ438を含むことができ、これは、復号された色差サンプルが1に等しいか否かを示すことができる。HRD VUIシンタックス802は、符号化されたビデオシーケンス情報がビデオ表現フィールドを含むか否かを示すための、field_seq_flagのようなフィールドシーケンスフラグ440を含むことができる。
HRD VUIシンタックス802は、hrd_parameters要素のようなHRDパラメータ構造454を含むことができる。HRDパラメータ構造454は、各サブレイヤに関する仮想参照デコーダパラメータを含むことができる。
HRD VUIシンタックス802は、符号化されたビデオシーケンスのビットストリーム制限パラメータがビデオビットストリーム110内に存在していることを示すための、bitstream_restriction_flag要素のようなビットストリーム制限フラグ466を含むことができる。ビットストリーム制限フラグ466が値1を有する場合には、HRD VUIシンタックス802は、タイル固定構成フラグ468、動きベクトルフラグ470、ピクチャ種類毎の最大バイト数472、最少CU種類毎の最大ビット数474、動きベクトル最大水平距離476、及び動きベクトル最大垂直距離478を含むことができる。
HRD VUIシンタックス802は、符号化されたビデオシーケンス内の各ピクチャが同じ数のタイルを有することを示すための、tiles_fixed_structure_flag要素のようなタイル固定構成フラグ468を含むことができる。HRD VUIシンタックス802は、ピクチャ境界の外部のサンプルが予測のために使用されないことを示すための、motion_vector_over_pic_boundaries_flag要素のような動きベクトルフラグ470を含むことができる。
HRD VUIシンタックス802は、符号化されたビデオシーケンス内のいずれかの符号化されたピクチャに関連するVCL NALユニットの合計サイズに関する最大バイト数を示すための、max_bytes_per_pic_denom要素のようなピクチャ種類毎の最大バイト数472を含むことができる。HRD VUIシンタックス802は、符号化されたビデオシーケンスのいずれかのピクチャ内のいずれかの符号化ブロックに関する符号化ユニットデータの符号化されたビット数に関する上限を示すための、max_bits_per_min_cu_denom要素のような最少CU種類毎の最大ビット数474を含むことができる。
HRD VUIシンタックス802は、ビデオビットストリーム110内の全てのピクチャに関する復号された動きベクトル水平成分の最大絶対値を示すための、log2_max_mv_length_horizontal要素のような動きベクトル最大水平距離476を含むことができる。HRD VUIシンタックス802は、ビデオビットストリーム110内の全てのピクチャに関する復号された動きベクトル垂直成分の最大絶対値を示すための、log2_max_mv_length_vertical要素のような動きベクトル最大垂直距離478を含むことができる。
HRD VUIシンタックス802におけるHRDパラメータ構造454を使用することにより、個別のサブレイヤの処理にわたるより高精度で精細な制御を可能にすることによって性能を向上できることが見いだされている。HRDパラメータ構造454の個別のオカレンスを使用することにより、種々のサブレイヤ間の個別の差分を利用することによって処理速度を向上することができる。
ここで図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は、明確にするために図1に示していない他の機能ユニットを含むことができる。
映像符号化システム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は、プロセッサ、組み込みプロセッサ、マイクロプロセッサ、ハードウェア制御ロジック、ハードウェア有限状態機械(FSM)、デジタルシグナルプロセッサ(DSP)、又はその他の組み合わせとすることができる。
第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は、明確にするために図1に示していない他の機能ユニットを含むことができる。
第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は、連続的に受信したビデオシンタックス114の各要素を用いて時間的方法でシリアルビットストリームとして受信することができる。ビデオビットストリーム110は、図4のHEVC VUIシンタックス402、図5のHEVC VUI拡張シンタックス502、図8のHRD VUIシンタックス802、図3のHRDシンタックス302、図6のHRDベースシンタックス602、図7のHRDサブレイヤシンタックス702、又はそれらの組み合わせのようなビデオシンタックス114を含むことができる。
例えば、受信モジュール1002は、図4の低遅延フラグ460の前に受信した図4のHRDパラメータ構造454を用いてHEVC VUIシンタックス402を受信することができる。同様に、図4のNAL HRDパラメータ存在フラグ452は、HRDパラメータ構造454の前に受信することができる。NAL HRDパラメータ存在フラグ452が値0を有する場合には、図4のVCL HRDパラメータ存在フラグ456は、HRDパラメータ構造454の前に受信することができる。
ビデオビットストリーム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は、時間レイヤ取得モジュール1008及び時間レイヤ復号モジュール1010を含むことができる。
シンタックス取得モジュール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は、前に抽出された要素の値に基づいて後の要素を選択的に抽出及び処理することができる。
例えば、シンタックス取得モジュール1004は、低遅延HRDフラグ460の以前に受信した値に基づいて、HRDシンタックス302を処理することができる。HEVC VUI拡張シンタックス502は、ビデオビットストリーム110のシリアル伝送におけるHRDシンタックス302の前に位置する低遅延フラグ460を含むことができる。低遅延フラグ460は、HRDシンタックス302の前に抽出される。NAL HRDパラメータ存在フラグ452及びVCL HRDパラメータ存在フラグ456は、HRDシンタックス302の前に抽出される。
HRDシンタックス302の要素は、低遅延フラグ460、NAL HRDパラメータ存在フラグ452、及びVCL HRDパラメータ存在フラグ456の値に基づいて抽出することができる。例えば、低遅延フラグ460が値1を有し、NAL HRDパラメータ存在フラグ452又はVCL HRDパラメータ存在フラグ456のいずれかが値1を有する場合には、HRDシンタックス302のCPBカウント308の値は、シンタックス取得モジュール1004によって抽出されること及び明示的に0に設定されることが可能であり、映像符号化システム100は、単一の符号化ピクチャバッファを用いた低遅延モードで動作することができる。
別の実施例では、ビデオビットストリーム110をファイルで受け取る場合には、ビデオシンタックス114は、ビデオビットストリーム110を含むファイルのファイル拡張子を調査することによって検出することができる。更に別の実施例では、図1の通信経路106を通じてデジタルメッセージとしてビデオビットストリーム110を受信する場合には、ビデオシンタックス114は、デジタルメッセージ構成の一部分として提供することができる。
シンタックス取得モジュール1004は、低遅延フラグ460の以前に抽出されたオカレンスに基づいて、ビデオビットストリーム110を動的に復号してHRDパラメータ構造454を処理することによって、性能を向上させることができることが見いだされている。例えば、低遅延フラグ460を受信することにより、HRDパラメータ構造454を適用する場合に符号化ピクチャバッファにおいて許容されている遅延レベルを変更することによって、復号性能が向上する。
シンタックス取得モジュール1004は、図2のシンタックスタイプ202に基づいてビデオシンタックス114の個別の要素を抽出することができる。シンタックスタイプ202は、AVCビデオ、SVCビデオ、MVCビデオ、MVDビデオ、SSVビデオ、又はそれらの組み合わせを含むことができる。
シンタックス取得モジュール1004は、ビデオ表示情報を有するビデオシンタックス114を抽出することができる。ビデオシンタックス114は、HEVC VUIシンタックス402、HEVC VUI拡張シンタックス502、HRD VUIシンタックス802、又はそれらの組み合わせを含むことができる。
シンタックス取得モジュール1004は、仮想参照デコーダ情報を有するビデオシンタックス114を抽出することができる。ビデオシンタックス114は、HRDシンタックス302、HRDベースシンタックス602、HRDサブレイヤシンタックス702、又はそれらの組み合わせを含むことができる。
ビデオシンタックス114は、様々な構成を有することができる。例えば、HEVC VUIシンタックス402は、時間レイヤ230の全てのオカレンスに関してHRDシンタックス302の1つのオカレンスを含むことができる。別の実施例では、シンタックス取得モジュール1004は、時間レイヤ230の各オカレンスに関してHRDシンタックス302の1つのオカレンスを含むことができる。
例示的な実施例では、HRDシンタックス302は、CPBカウント308、図3のビットレートスケール310、図3のCPBサイズスケール312、図3の初期CPB除去遅延長322、図3のCPB除去遅延長324、図3のDPB出力遅延長326、及び図3の時間オフセット長328の単一のオカレンスを含むことができる。HRDシンタックス302は、CPBカウント308で示される符号化ピクチャバッファの各々に関して、図3のビットレート値316、図3のCPBサイズ値318、及び図3のCBRフラグ320の各々に関するオカレンスを有するループ構造を含むことができる。
映像符号化システム100は、復号モジュール1006を含むことができる。復号モジュール1006は、ビデオシンタックス114を使用してビデオビットストリーム110を復号してビデオストリーム112を生成することができる。復号モジュール1006は、時間レイヤ取得モジュール1008及び時間レイヤ復号モジュール1010を含むことができる。
復号モジュール1006は、HEVC VUIシンタックス402、HEVC VUI拡張シンタックス、HRD VUIシンタックス802、又はそれらの組み合わせのようなビデオシンタックス114を使用してビデオビットストリーム110を復号することができる。復号モジュール1006は、HRDシンタックス302、HRDベースシンタックス602、HRDサブレイヤシンタックス702、又はそれらの組み合わせを使用して、時間レイヤ230を識別及び抽出することができる。
時間レイヤ取得モジュール1008は、時間レイヤ230を識別してビデオビットストリーム110から抽出してビデオストリーム112を生成することができる。時間レイヤ取得モジュール1008は、様々な方法で時間レイヤ230を識別することができる。
例えば、時間レイヤ取得モジュール1008は、HEVC VUI拡張シンタックスのようなビデオシンタックス114から図2の時間レイヤカウント238を抽出することによって、時間レイヤ230を識別することができる。時間レイヤカウント238は、ビデオビットストリーム110内の時間レイヤ230の全体数を示す。
時間レイヤ取得モジュール1008は、ビデオシンタックス114を使用してビデオビットストリーム110から時間レイヤ230を抽出して、ビデオシンタックス114の要素のデータタイプ及びサイズを表すことができる。ビデオシンタックス114は、HRDシンタックス302、HRDベースシンタックス602、HRDサブレイヤシンタックス702、又はそれらの組み合わせのような仮想参照デコーダパラメータシンタックスを含むことができる。
例えば、時間レイヤ取得モジュール1008は、図4のアスペクト比フラグ406を、ビデオビットストリーム110内の符号なし1ビット値として抽出することができる。同様に、図4のアスペクト比高さ412及び図4のアスペクト比幅410は、HEVC VUIシンタックス402で説明した符号なし16ビット値としてビデオビットストリーム110から抽出することができる。
時間レイヤ取得モジュール1008は、ビデオシンタックス114に基づいてビデオビットストリーム110内のデータを構文解析することによって時間レイヤ230を抽出することができる。ビデオシンタックス114は、時間レイヤ230の数及び構成を規定することができる。
例えば、時間レイヤ取得モジュール1008は、時間レイヤカウント238を使用して時間レイヤ230の全体数を判定してビデオビットストリーム110から抽出することができる。図4のビデオ形式420をビデオビットストリーム110から抽出して、ビデオコンテンツ108の映像システムの種類を判定することができる。
別の実施例では、CPBカウント308を使用して、使用される符号化ピクチャバッファの数を判定して、時間レイヤ230を抽出することができる。ビットレートスケール310を使用して、符号化ピクチャバッファに関する最大入力ビットレートを判定することができる。CPBサイズ値312を使用して、符号化ピクチャバッファのサイズを判定することができる。
例示的な実施例では、時間レイヤ取得モジュール1008は、HRDシンタックス302に基づいて、ビデオビットストリーム110から、時間レイヤ230の図2の第1のオカレンス232及び図2の第2のオカレンス234を抽出することができる。HRDシンタックス302は、ビデオビットストリーム110内の全ての時間レイヤ230に関して共通とすることができる。
時間レイヤ復号モジュール1010は、時間レイヤ取得モジュール1008から時間レイヤ230を受け取り、時間レイヤ230を復号してビデオストリーム112を生成することができる。時間レイヤ復号モジュール1010は、様々な方法で時間レイヤ230を復号することができる。
例えば、時間レイヤ復号モジュール1010は、HRDベースシンタックス602を使用して時間レイヤ230を復号して、ビデオビットストリーム110から映像符号化レイヤ情報を抽出することができる。別の実施例では、時間レイヤ復号モジュール1010は、HRDサブレイヤシンタックス702を使用して時間レイヤ230を復号することができる。時間レイヤ復号モジュール1010は、時間レイヤ230を復号すること、及び時間レイヤ230のうちの1つを選択してビデオストリーム112を生成することができる。
映像符号化システム100は、表示モジュール1012を含むことができる。表示モジュール1012は、復号モジュール1006からビデオストリーム112を受信し、ビデオストリーム112を図1のディスプレイインタフェース120に表示することができる。ビデオストリーム112は、時間レイヤ230の1つ又はそれ以上のオカレンスを含むことができる。
ビデオコンテンツ108の物理的対象物の光学的画像から図1のディスプレイインタフェース120の画素要素上にビデオストリーム112を表示する物理的な変換は、物理的世界におけるディスプレイインタフェース120の画素要素に対する物理的変化、例えば画素要素の電気的な状態の変化を引き起こすが、これは、映像符号化システム100の動作に基づくものである。ビデオコンテンツ108に取り込まれた対象物の動きのような物理的世界における変化が生じる場合、その動き自体により、ビデオコンテンツ108に対する更新のような追加情報が生成され、この情報は、映像符号化システム100の継続動作に関してディスプレイインタフェース120の画素要素における変化に逆変換される。
第1のデバイス102の図9の第1のソフトウェア912は、映像符号化システム100を含むことができる。例えば、第1のソフトウェア912は、受信モジュール1002、シンタックス取得モジュール1004、復号モジュール1006、及び表示モジュール1012を含むことができる。
図9の第1の制御ユニット908は、ビデオビットストリーム110を受信するための受信モジュール1002に関する第1のソフトウェア912を実行することができる。第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は、復号モジュール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つのモジュールで生成されたデータは、互いに直接接続されていない別のモジュールで使用することができる。例えば、復号モジュール1006は、受信モジュール1002からビデオビットストリーム110を受信することができる。
モジュールは、様々な方法で実装することができる。受信モジュール1002、シンタックス取得モジュール1004、復号モジュール1006、及び表示モジュール1012は、第1の制御ユニット908又は第2の制御ユニット948内のハードウェアアクセラレータ(図示せず)で実装すること、或いは第1の制御ユニット908又は第2の制御ユニット948の外部で第1のデバイス102又は第2のデバイス104内のハードウェアアクセラレータ(図示せず)で実装することができる。
ここで図11を参照すると、本発明の別の実施形態における映像符号化システム100の動作方法1100のフローチャートが示されている。方法1100は、ブロック1102において、シリアルビットストリームとしてビデオビットストリームを受信する段階と、ブロック1104において、ビデオビットストリームからビデオシンタックスを抽出し、低遅延フラグ、ネットワーク抽象レイヤ(NAL)仮想参照デコーダ(HRD)パラメータ存在フラグ、及び映像符号化レイヤ(VCL)HRDパラメータ存在フラグをビデオシンタックスから抽出し、低遅延フラグ、NAL HRDパラメータ存在フラグ、及びVCL HRDパラメータ存在フラグに基づいてビデオビットストリームからHRDシンタックスを抽出する段階と、ブロック1106において、HRDシンタックスを有するビデオシンタックスに基づいてビデオビットストリームから時間レイヤを抽出する段階と、ブロック1108において、デバイスに表示するために、時間レイヤに基づいてビデオストリームを生成する段階と、を含む。
このように、本発明は多くの態様を有することが見いだされている。本発明は、経費削減、システム単純化、及び性能向上という歴史的傾向に有用に対応し、その要求に応えている。結果的に、本発明の前記及び他の有用な態様により、技術レベルが少なくとも次のレベルに進む。
従って、本発明の映像符号化システムは、高精細アプリケーション用のビデオコンテンツを効率的に符号化及び復号することに関して、重要で、従来は知られておらず利用不可能な解決手段、機能、及び機能的態様を提供することが見いだされている。結果として得られるプロセス及び構成は、簡単で、費用効率が高く、複雑でなく、非常に汎用的で、効率的なものであり、意外にも自明ではなく、公知の技術を適用することによって実装できるので、従来の製造プロセス及び技術と完全に互換性がある映像符号化デバイスを簡単に効率的かつ経済的に製造することに適している。結果として得られるプロセス及び構成は、簡単で、費用効率が高く、複雑でなく、非常に汎用的で、正確で、高精度で、効率的なものであり、容易に、効率的に、経済的に製造、応用、及び利用するために公知の構成要素を適用することによって実装することができる。
本発明は、特定の最適な形態と併せて説明されるが、当業者であれば、前記の説明を考慮すると多くの代替例、修正例、及び変更例が明らかであることを理解できるはずである。従って、特許請求の範囲の範疇に含まれる全ての当該代替例、修正例、変更例が含まれることが意図されている。本明細書で説明した又は添付図面に示した前記の内容は、全て、例示的かつ非限定的な意味で解釈されたい。