[0018]ビデオアプリケーションには、ローカル再生アプリケーションと、ストリーミングアプリケーションと、ブロードキャスト/マルチキャストアプリケーションと、会話アプリケーションとが含まれ得る。会話アプリケーションには、ビデオ電話とビデオ会議アプリケーションとが含まれ得、低遅延アプリケーションとも呼ばれる。会話アプリケーションは、比較的低い、エンドツーエンド遅延、即ち、ビデオフレームが撮影されるときとビデオフレームが表示されるときとの間の遅延をシステム全体に要求する。一般に、会話アプリケーションのための許容エンドツーエンド遅延は400ミリ秒(ms)未満であり得、約150msのエンドツーエンド遅延は非常に良好であると見なされ得る。各処理ステップは、全体的なエンドツーエンド遅延、例えば、撮影遅延、前処理遅延、符号化遅延、送信遅延、(デジッタリング(de-jittering)(ジッタ除去)のための)受信バッファリング遅延、復号遅延、復号ピクチャ出力遅延、後処理遅延、及び表示遅延の原因となり得る。従って、一般に、会話アプリケーションではコーデック遅延(符号化遅延、復号遅延及び復号ピクチャ出力遅延)を最小限に抑えなければならない。特に、コード化構造では、復号ピクチャ出力遅延が0に等しくなるように、ピクチャの復号順序と出力順序とが同一になるようにしなければならない。
[0019]ビデオコード化規格は、ビデオバッファリングモデルの仕様を含み得る。AVC及びHEVCでは、バッファリングモデルは、コード化ピクチャバッファ(CPB)と復号ピクチャバッファ(DPB:decodedpicturebuffer)の両方のバッファリングモデルを含む仮定参照デコーダ(HRD)と呼ばれ、CPB挙動及びDPB挙動は数学的に指定される。HRDは、異なるタイミング、バッファサイズ及びビットレートに直接制約を課し、かつビットストリーム特性及び統計に間接的に制約を課す。HRDパラメータの完全セットには、初期CPB除去遅延、CPBサイズ、ビットレート、初期DPB出力遅延、及びDPBサイズの5つの基本パラメータが含まれる。
[0020]AVC及びHEVCでは、ビットストリーム適合及びデコーダ適合は、HRD仕様の一部として指定される。デコーダのタイプとして称されるが、HRDは、一般に、ビットストリーム適合を保証するためにエンコーダ側で必要とされるが、一般に、デコーダ側では必要とされない。2つのタイプのビットストリーム又はHRD適合、即ち、タイプI及びタイプIIが指定される。また、出力タイミングデコーダ適合及び出力順序デコーダ適合の2つのタイプのデコーダ適合が指定される。
[0021]AVC及びHEVCHRDモデルでは、復号又はCPB除去はアクセス単位ベースのものであり、ピクチャ復号が瞬時に行われると仮定される。実際の適用例では、適合デコーダが、ピクチャタイミング補足エンハンスメント情報(SEI)メッセージ中で信号伝達された復号時間に厳密に従って、アクセス単位の復号を開始する場合、特定の復号ピクチャを出力するのにできるだけ早い時間は、その特定のピクチャの復号時間にその特定のピクチャを復号するために必要とされる時間を加えたものに等しくなる。AVC及びHEVCHRDモデルとは異なり、現実の世界でピクチャを復号するために必要とされる時間は0に等しくならない。本開示全体を通して使用される「瞬時」及び「瞬時に」という用語は、これが、物理的又は文字通りの意味で「瞬時」とは異なるという了解の下で、1つ又は複数のコード化モデルにおいて若しくは1つ又は複数のコード化モデルの理想的な態様において瞬時であると仮定され得る任意の持続時間を指すことがある。例えば、本開示では、関数又はプロセスが、実行されるべき関数又はプロセスのための仮定的な若しくは理想的なできるだけ早い時間の実際のマージンで、又はそれの内で行われる場合、それは、名目上「瞬時」であると見なされ得る。本明細書で用いられるシンタックス名及び変数名は、幾つかの例では、HEVCモデル内のそれらの意味に従って理解され得る。
[0022]サブピクチャベースのCPB挙動は、相互運用可能な方法で1つ未満のピクチャ期間のコード化遅延を達成するために、「Enhancementonoperationofcodedpicturebuffer」、Kazuiら、ITU−TSG16WP3及びISO/IECJTC1/SC29/WG11のJointCollaborativeTeamonVideoCoding(JCT−VC)、第7回会議:ジュネーブ、スイス、2011年11月21日〜30日、JCTVC−G188(http://phenix.int−evry.fr/jct/doc_end_user/documents/7_Geneva/wg11/JCTVC−G188−v2.zipにおいて入手可能)に提案されている。JCTVC−G188の方法は、ピクチャが、ツリーブロックのM個のグループに均等に分割され、即ち、ピクチャのツリーブロックラスタ走査における第1のM個のツリーブロックが、ツリーブロックの第1のグループに属し、ピクチャのツリーブロックラスタ走査における第2のM個のツリーブロックが、ツリーブロックの第2のグループに属し、以下同様であるように要約され得る。値Mは、バッファリング期間SEIメッセージ中で信号伝達され得る。この値は、ツリーブロックの各グループのCPB除去時間(即ち、復号時間)を導出するために使用され得る。この意味で、JCTVC−G188CPB挙動は、サブピクチャベースのものであり、各サブピクチャは、ツリーブロックのグループである。幾つかの例では、サブピクチャは、1つ又は複数のスライス、(ピクチャの波面区分のための)1つ又は複数の波、又は1つ又は複数のタイルに対応し得る。JCTVC−G188のこの方法では、アクセス単位レベルCPB除去時間が(ピクチャタイミングSEIメッセージを使用して)通常通り信号伝達されると仮定され、各アクセス単位内で、ツリーブロックグループのためのCPB除去時間は、前のアクセス単位のCPB除去時間から現在のアクセス単位のCPB除去時間までの間隔を線形的に又は一様に分割すると仮定される。
[0023]JCTVC−G188のこの方法は、(1)各ピクチャ内で、各ツリーブロックグループは、(HRDモデルにおいてだけではなく現実世界のデコーダについても)同じ量の復号時間を必要とする方法で符号化され、第1のツリーブロックグループのコード化データは、同じアクセス単位中の、第1のVCLNAL単位の前の全ての非VCL(VideoCodingLayer)NAL(ネットワークアブストラクションレイヤ:NetworkAbstractionLayer)ユニットを含むと見なされる、(2)各ピクチャ内で、各ツリーブロックグループのビット数は同一であり、第1のツリーブロックグループのコード化データは、同じアクセス単位中の、第1のVCLNAL単位の前の全ての非VCLNAL単位を含むと見なされるという仮定又はビットストリーム要件を更に暗示している。
[0024]サブピクチャベースのCPB挙動を指定するための既存の方法は、少なくとも以下の問題に関連付けられる。(1)コード化ピクチャ中の各ツリーブロックグループのコード化データの量が同一であるという要件をバランスの取れたコード化性能とともに達成するのは困難である(ピクチャ中でテクスチャ又は動きアクティビティがより細かいエリアのためのツリーブロックグループはより多くのビットを使用し得る)。(2)スライス中に2つ以上のツリーブロックグループが含まれるとき、異なるツリーブロックグループに属するツリーブロックのコード化ビットを分割すること、エンコーダ側でそれらを別個に送ること、CPBからそれらを別個に除去すること(即ち、それらを別個に復号すること)を行う容易な方法がないことがある。
[0025]上記の問題に対処するために、本開示では、様々な代替を用いて、サブピクチャベースのCPB挙動のサポートのための一般的な設計について説明する。幾つかの例では、本開示のサブピクチャベースのCPB技法の特徴には以下の技法の態様が含まれ得る。(1)各サブピクチャは、復号順序で連続するコード化ピクチャの幾つかのコード化ブロックを含み得る。コード化ブロックは、ツリーブロック又はツリーブロックのサブセットと同じであり得る。(2)サブピクチャのコード化及びピクチャ中の異なるサブピクチャへのビットの割当ては、1つのピクチャ中の各サブピクチャ(即ち、ツリーブロックグループ)が同じビット量でコード化されることを仮定するか又はそのことを必要とすることなしに、通常通り実行され得る。従って、各サブピクチャのCPB除去時間は信号伝達されたピクチャレベルCPB除去時間に従って導出されるのではなく、ビットストリーム中で信号伝達され得る。(3)2つ以上のサブピクチャがスライス中に含まれるとき、バイトアラインメントは、例えば、HEVCWD6におけるタイルのためのバイトアラインメントとは対照的に、各サブピクチャの終わりに適用され得る。更に、各サブピクチャのエントリポイントが、コード化ピクチャ中の第1のサブピクチャを除いて、例えば、HEVCWD6におけるタイルのためのバイトアラインメントとは対照的に、信号伝達され得る。受信され、信号伝達された値は、例えば、スライス、タイル、又はフレームなど、ビデオデータのより大きいセット内のサブピクチャのうちの少なくとも1つのバイトアラインメントを示し得る。特徴(1)〜(3)の各々は、独立して、又は、他の1つと組み合わせて適用され得る。
[0026]一例では、サブピクチャベースのCPB挙動を含むHRD動作は、次のように要約され得る。例えば、1に等しいシンタックス要素sub_pic_cpb_flagのシーケンスレベルの信号伝達を通してサブピクチャベースのCPB挙動が使用中であることを信号伝達が示すとき、CPB除去又は復号は、アクセス単位又はアクセス単位のサブセットであり得るサブピクチャ又は等価的に復号単位に基づき得る。言い換えれば、アクセス単位であるか又はアクセス単位のサブセットであるかにかかわらず、復号単位が復号のためのCPBから除去されるたびに、CPBからの復号単位の除去時間は、信号伝達された初期CPB除去遅延及び復号単位のために信号伝達されたCPB除去遅延から導出され得る。CPBアンダーフローは、復号単位mの名目CPB除去時間tr,n(m)が、いかなる値のmについても、復号単位mの最終CPB除去時間taf(m)よりも小さいという条件として指定される。一例では、シンタックス要素low_delay_hrd_flagが0に等しくなるとき、CPBが決してアンダーフローしないことが要求される。
[0027]一例では、DPB出力及び削除プロセスは、依然として、ピクチャレベル又はアクセス単位レベルで、即ち、復号ピクチャ全体が出力されるか、又はDPBから除去されるたびに動作し得る。DPBからの復号ピクチャの除去は、(現在のピクチャを含んでいる)アクセス単位nの第1の復号単位のCPB除去時間に瞬時に起こり得る。
[0028]図1は、他の機能のなかでも、ピクチャバッファ中にビデオデータの1つ又は複数の復号単位を記憶することと、1つ又は複数の復号単位のための個別のバッファ除去時間を取得することと、復号単位の各々のための取得されたバッファ除去時間に従ってピクチャバッファから復号単位を除去することと、除去された復号単位に対応するビデオデータをコード化することとを行うための技法を利用し得る例示的なビデオ符号化及び復号システム10を示すブロック図である。
[0029]図1に示すように、システム10は、通信チャネル16を介して符号化ビデオを宛先機器14に送信する発信源機器12を含む。発信源機器12及び宛先機器14は、広範囲の機器のいずれかを備え得る。場合によっては、発信源機器12及び宛先機器14は、ワイヤレスハンドセット、所謂セルラー無線電話もしくは衛星無線電話などのワイヤレス通信機器を備えるか、又は、通信チャネル16を介してビデオ情報を通信することができ、その場合、通信チャネル16がワイヤレスである、任意のワイヤレス機器を備え得る。但し、本開示の技法は、必ずしもワイヤレス適用例又は設定に限定されるとは限らない。例えば、これらの技法は、無線テレビジョン放送(over-the-airtelevisionbroadcasts)、ケーブルテレビジョン送信、衛星テレビジョン送信、インターネットビデオ送信、記憶媒体上に符号化される符号化デジタルビデオ、又は他のシナリオに適用され得る。従って、通信チャネル16は、符号化ビデオデータの送信又は記憶に好適なワイヤレス、ワイヤード、又は記憶媒体の任意の組合せを備え得る。
[0030]代替的に、符号化データは、送信機24から記憶装置34に出力され得る。同様に、符号化データは、受信機26によって記憶装置34からアクセスされ得る。記憶装置34は、ハードドライブ、ブルーレイ(登録商標)ディスク、DVD、CD−ROM、フラッシュメモリ、揮発性もしくは不揮発性メモリ、又は符号化ビデオデータを記憶するための任意の他の好適なデジタル記憶媒体のような、種々の分散した又はローカルでアクセスされるデータ記憶媒体のいずれかを含み得る。更なる一例では、記憶装置34は、発信源機器12によって生成された符号化ビデオを保持し得るファイルサーバ、仮想サーバ、データセンター、データセンターの冗長ネットワーク、又は別の中間記憶装置に対応し得る。宛先機器14は、ストリーミング又はダウンロードを介して、記憶装置34から、記憶されたビデオデータにアクセスし得る。記憶装置34又はそれの一部分のファイルサーバ実装形態は、符号化されたビデオデータを記憶し、その符号化されたビデオデータを宛先機器14に送信することが可能な任意のタイプのサーバであり得る。例示的なファイルサーバには、(例えば、ウェブサイト用の)ウェブサーバ、FTPサーバ、ネットワーク接続記憶(NAS)機器、又はローカルディスクドライブが含まれる。宛先機器14は、インターネット接続を含むいずれかの標準データ接続を通して符号化ビデオデータにアクセスし得る。これは、リモート又は非ローカル記憶装置34に記憶された符号化ビデオデータにアクセスするのに好適であるワイヤレスチャネル(例えば、Wi−Fi(登録商標)接続)、ワイヤード接続(例えば、DSL、ケーブルモデムなど)、又は両方の組合せを含み得る。記憶装置34からの符号化ビデオデータの送信は、ストリーミング送信、ダウンロード送信、又は両方の組合せであり得る。
[0031]図1の例では、発信源機器12は、ビデオ発信源18と、ビデオエンコーダ20と、変調器/復調器(モデム)22と、送信機24とを含む。宛先機器14は、受信機26と、モデム28と、ビデオデコーダ30と、表示装置32とを含む。本開示によれば、発信源機器12のビデオエンコーダ20は、他の機能のなかでも、ピクチャバッファ中にビデオデータの1つ又は複数の復号単位を記憶することと、1つ又は複数の復号単位のための個別のバッファ除去時間を取得することと、復号単位の各々のための取得されたバッファ除去時間に従ってピクチャバッファから復号単位を除去することと、除去された復号単位に対応するビデオデータをコード化することとを行うための技法を適用するように構成され得る。他の例では、発信源機器及び宛先機器は、他の構成要素又は構成を含み得る。例えば、発信源機器12は、外部カメラなど、内蔵ビデオ発信源18ではなく外部ビデオ発信源からビデオデータを受信し得る。同様に、宛先機器14は、内蔵表示装置32を含むのではなく、外部表示装置とインターフェースし得る。
[0032]図1の図示されたシステム10は一例にすぎない。ピクチャバッファ中にビデオデータの1つ又は複数の復号単位を記憶することと、1つ又は複数の復号単位のための個別のバッファ除去時間を取得することと、復号単位の各々のための取得されたバッファ除去時間に従ってピクチャバッファから復号単位を除去することと、除去された復号単位に対応するビデオデータをコード化することとを行うための技法は任意のデジタルビデオ符号化及び/又は復号機器によって実行され得る。概して、本開示の技法はビデオ符号化機器によって実行されるが、本技法は、一般に「コーデック」と呼ばれるビデオエンコーダ/デコーダによっても実行され得る。更に、本開示の技法は、ビデオプリプロセッサによっても実行され得る。発信源機器12及び宛先機器14は、発信源機器12が宛先機器14に送信するためのコード化ビデオデータを生成するような、コード化機器の例にすぎない。幾つかの例では、機器12、14は、機器12、14の各々がビデオ符号化構成要素とビデオ復号構成要素とを含むように、実質的に対称的に動作し得る。従って、システム10は、例えば、ビデオストリーミング、ビデオ再生、ビデオブロードキャスト、又はビデオテレフォニーのためのビデオ機器12とビデオ機器14との間の一方向又は双方向のビデオ送信をサポートし得る。
[0033]発信源機器12のビデオ発信源18は、ビデオカメラなどの撮像装置、以前に撮影されたビデオを含んでいるビデオアーカイブ、及び/又はビデオコンテンツプロバイダからのビデオフィードを含み得る。更なる代替として、ビデオ発信源18は、発信源ビデオとしてのコンピュータグラフィックスベースのデータ、又はライブビデオとアーカイブビデオとコンピュータ生成ビデオとの組合せを生成し得る。場合によっては、ビデオ発信源18がビデオカメラである場合、発信源機器12及び宛先機器14は、所謂カメラフォン又はビデオフォンを形成し得る。但し、上述のように、本開示で説明する技法は、概してビデオコード化に適用可能であり得、かつワイヤレス及び/又はワイヤードアプリケーションに適用され得る。各場合において、撮影されたビデオ、以前に撮影されたビデオ、又はコンピュータ生成ビデオは、ビデオエンコーダ20によって符号化され得る。符号化ビデオ情報は、次いで、通信規格に従ってモデム22によって変調され、送信機24を介して宛先機器14に送信され得る。モデム22は、信号変調のために設計された様々なミキサ、フィルタ、増幅器又は他の構成要素を含み得る。送信機24は、増幅器、フィルタ、及び1つ又は複数のアンテナを含む、データを送信するために設計された回路を含み得る。
[0034]宛先機器14の受信機26はチャネル16を介して情報を受信し、モデム28はその情報を復調する。更に、ビデオ符号化プロセスは、他の機能のなかでも、ピクチャバッファ中にビデオデータの1つ又は複数の復号単位を記憶することと、1つ又は複数の復号単位のための個別のバッファ除去時間を取得することと、復号単位の各々のための取得されたバッファ除去時間に従ってピクチャバッファから復号単位を除去することと、除去された復号単位に対応するビデオデータをコード化することとを行うために、本明細書で説明する技法のうちの1つ又は複数を実装し得る。チャネル16を介して通信される情報は、マクロブロック、コード化ツリー単位、スライス、及び他のコード化単位、例えば、ピクチャのグループ(GOP:groupofpictures)の特性及び/又は処理を記述するシンタックス要素を含む、ビデオデコーダ30によっても使用され得る、ビデオエンコーダ20によって定義されるシンタックス情報を含み得る。表示装置32は、復号されたビデオデータをユーザに対して表示し、陰極線管(CRT)、液晶表示器(LCD)、プラズマ表示器、有機発光ダイオード(OLED)表示器、又は別のタイプの表示装置など、様々な表示装置のいずれかを備え得る。
[0035]図1の例では、通信チャネル16は、無線周波数(RF)スペクトル又は1つ又は複数の物理伝送線路など、任意のワイヤレス若しくはワイヤード通信媒体、又はワイヤレス媒体とワイヤード媒体との任意の組合せを備え得る。通信チャネル16は、ローカルエリアネットワーク、ワイドエリアネットワーク、又はインターネットなどのグローバルネットワークなど、パケットベースネットワークの一部を形成し得る。通信チャネル16は、概して、ワイヤード媒体又はワイヤレス媒体の任意の好適な組合せを含む、ビデオデータを発信源機器12から宛先機器14に送信するのに好適な任意の通信媒体、又は様々な通信媒体の集合体を表す。通信チャネル16は、発信源機器12から宛先機器14への通信を可能にするのに有用であり得るルータ、スイッチ、基地局、又は任意の他の機器を含み得る。他の例では、発信源機器12は、データを送信するのではなく、符号化データを記憶装置34中になど、記憶媒体に記憶し得る。同様に、宛先機器14は、記憶装置34又は別の記憶媒体若しくは機器から符号化データを取り出すように構成され得る。
[0036]ビデオエンコーダ20及びビデオデコーダ30は、本明細書で説明する規格などのビデオ圧縮規格に従って動作し得る。但し、本開示の技法は、いかなる特定のコード化規格にも限定されない。図1には示されていないが、幾つかの態様では、ビデオエンコーダ20及びビデオデコーダ30は、それぞれオーディオエンコーダ及びデコーダと統合され得、適切なMUX−DEMUXユニット、又は他のハードウェア及びソフトウェアを含んで、共通のデータストリーム又は別個のデータストリーム中のオーディオとビデオの両方の符号化を処理し得る。適用可能な場合、MUX−DEMUXユニットは、ITUH.223マルチプレクサプロトコル、又はユーザデータグラムプロトコル(UDP)などの他のプロトコルに準拠し得る。
[0037]ビデオエンコーダ20及びビデオデコーダ30はそれぞれ、1つ又は複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、エンコーダ又はデコーダなどのビデオコード化機器を含むワイヤレス通信機器、ディスクリート論理、ソフトウェア、ハードウェア、ファームウェア、又はそれらの任意の組合せなど、様々な好適なエンコーダ回路のいずれかとして実装され得る。ビデオエンコーダ20及びビデオデコーダ30の各々は1つ又は複数のエンコーダ又はデコーダ中に含まれ得、そのいずれも複合エンコーダ/デコーダ(コーデック)の一部としてそれぞれのカメラ、コンピュータ、モバイル機器、加入者機器、ブロードキャスト機器、セットトップボックス、サーバ、又は他の機器に統合され得る。
[0038]ビデオシーケンスは、一般に一連のビデオフレームを含む。ピクチャのグループ(GOP)は、概して、一連の1つ又は複数のビデオフレームを備える。GOPは、GOP中に含まれる幾つかのフレームを記述するシンタックスデータを、GOPのヘッダ中、GOPの1つ又は複数のフレームのヘッダ中、又は他の場所に含み得る。各フレームは、それぞれのフレームの符号化モードを記述するフレームシンタックスデータを含み得る。ビデオエンコーダ20は、一般に、ビデオデータを符号化するために、個々のビデオフレーム内の、コード化単位(CU)とも呼ばれるビデオブロックに対して動作する。ビデオブロックは、最大コード化単位(LCU:largestcodingunit)又はLCUの区分に対応し得る。ビデオブロックは、固定サイズ又は可変サイズを有し得、指定のコード化規格に応じてサイズが異なり得る。各ビデオフレームは複数のスライスを含み得る。各スライスは複数のLCUを含み得、それらのLCUは、サブCUとも呼ばれる区分に構成され得る。LCUはコード化ツリー単位と呼ばれることもある。
[0039]一例として、ITU−TH.264規格は、ルーマ成分については16×16、8×8、又は4×4、及びクロマ成分については8×8など、様々なブロックサイズのイントラ予測をサポートし、並びにルーマ成分については16×16、16×8、8×16、8×8、8×4、4×8及び4×4、並びにクロマ成分については対応する基準化されたサイズ(scaledsizes)など、様々なブロックサイズのインター予測をサポートする。本開示では、「N×N(NxN)」及び「N×N(NbyN)」は、垂直寸法及び水平寸法に関するブロックの画素寸法、例えば、16×16(16x16)画素又は16×16(16by16)画素を指すために互換的に使用され得る。概して、16×16ブロックは、垂直方向に16画素を有し(y=16)、水平方向に16画素を有する(x=16)。同様に、N×Nブロックは、概して、垂直方向にN画素を有し、水平方向にN画素を有し、但し、Nは非負整数値を表す。ブロック中の画素は行と列に構成され得る。更に、ブロックは、必ずしも、水平方向に垂直方向と同じ数の画素を有する必要はない。例えば、ブロックは、N×M画素を備え得、Mは必ずしもNに等しくなるとは限らない。
[0040]ビデオブロックは、画素領域中の画素データのブロックを備え得、又は、例えば、コード化ビデオブロックと予測ビデオブロックとの間の画素差分を表す残差ビデオブロックデータへの離散コサイン変換(DCT)、整数変換、ウェーブレット変換、又は概念的に同様の変換などの変換の適用後の、変換領域中の変換係数のブロックを備え得る。場合によっては、ビデオブロックは、変換領域中の量子化変換係数のブロックを備え得る。
[0041]小さいビデオブロックほど、より良い解像度が得られ、高い詳細レベルを含むビデオフレームの位置(locations)のために使用され得る。概して、ブロック、及びサブブロックと呼ばれることがある様々な区分は、ビデオブロックと見なされ得る。更に、スライスは、ブロック及び/又はサブブロックなど、複数のビデオブロックであると見なされ得る。各スライスは、ビデオフレームの単独で復号可能な単位であり得る。代替的に、フレーム自体が復号可能な単位であり得るか、又はフレームの他の部分が復号可能な単位として定義され得る。「コード化単位」という用語は、フレーム全体又はフレームのスライス、コード化ビデオシーケンスとも呼ばれるピクチャのグループ(GOP)、又は適用可能なコード化技法に従って定義される別の単独で復号可能な単位など、ビデオフレームの任意の単独で復号可能な単位を指すことがある。
[0042]予測データと残差データとを生成するためのイントラ予測コード化又はインター予測コード化の後に、及び変換係数を生成するための(H.264/AVCにおいて使用される4×4又は8×8整数変換、若しくは離散コサイン変換DCTなどの)任意の変換の後に、変換係数の量子化が実行され得る。量子化は、概して、変換係数を表すために使用されるデータの量をできるだけ低減するために変換係数を量子化するプロセスを指す。量子化プロセスは、係数の一部又は全部に関連するビット深さを低減し得る。例えば、量子化中にnビット値がmビット値に切り捨てられ得、但し、nはmよりも大きい。
[0043]HEVCでは、ビデオデータのブロックをコード化単位(CU)と呼び、CUは、1つ又は複数の予測単位(PU)及び/又は1つ又は複数の変換単位(TU)を含み得る。本開示ではまた、CU、PU、又はTUのいずれかを指すために「ブロック」という用語を使用し得る。ビットストリーム内のシンタックスデータは、画素の数に関して最大のコード化単位である最大コード化単位(LCU)を定義し得る。概して、CUは、CUがサイズの差異を有しないことを除いて、H.264のマクロブロックと同様の目的を有する。従って、CUはサブCUに分割され得る。概して、本開示におけるCUへの言及は、ピクチャの最大コード化単位又はLCUのサブCUを指すことがある。LCUはサブCUに分割され得、各サブCUは更にサブCUに分割され得る。ビットストリームのシンタックスデータは、CU深さと呼ばれる、LCUが分割され得る最大回数を定義し得る。それに応じて、ビットストリームは最小コード化単位(SCU:smallestcodingunit)をも定義し得る。
[004544]LCUは4分木データ構造に関連付けられ得る。概して、4分木データ構造はCUごとに1つのノードを含み、ルートノードはLCUに対応する。CUが4つのサブCUに分割される場合、CUに対応するノードは4つのリーフノードを含み、リーフノードの各々はサブCUのうちの1つに対応する。4分木データ構造の各ノードは、対応するCUのシンタックスデータを与え得る。例えば、4分木のノードは、そのノードに対応するCUがサブCUに分割されるかどうかを示す分割フラグを含み得る。CUのシンタックス要素は、再帰的に定義され得、CUがサブCUに分割されるかどうかに依存し得る。CUが更に分割されない場合、そのCUはリーフCUと呼ばれる。本開示では、元のリーフCUの明示的分割が存在しなくても、リーフCUの4つのサブCUをリーフCUとも呼ぶ。例えば、16×16サイズのCUが更に分割されない場合、この16×16CUが決して分割されなくても、4つの8×8サブCUをリーフCUとも呼ぶ。
[0046]更に、リーフCUのTUもそれぞれの4分木データ構造に関連付けられ得る。即ち、リーフCUは、リーフCUがどのようにTUに区分されるかを示す4分木を含み得る。本開示では、LCUがどのように区分されるかを示す4分木をCU4分木と呼び、リーフCUがどのようにTUに区分されるかを示す4分木をTU4分木と呼ぶ。TU4分木のルートノードは概してリーフCUに対応し、CU4分木のルートノードは概してLCUに対応する。分割されないTU4分木のTUはリーフTUと呼ばれることがある。
[0046]リーフCUは、1つ又は複数の予測単位(PU)を含み得る。概して、PUは、対応するCUの全部又は一部分を表し、そのPUの参照サンプルを取り出すためのデータを含み得る。例えば、PUがインターモード符号化されるとき、PUは、PUの動きベクトルを定義するデータを含み得る。動きベクトルを定義するデータは、例えば、動きベクトルの水平成分、動きベクトルの垂直成分、動きベクトルの解像度(例えば、1/4画素精度又は1/8画素精度)、動きベクトルが指す参照フレーム、及び/又は動きベクトルの参照リスト(例えば、リスト0又はリスト1)を記述し得る。(1つ又は複数の)PUを定義するリーフCUのデータはまた、例えば、CUを1つ又は複数のPUに区分することを記述し得る。区分モードは、CUがコード化されないか、イントラ予測モード符号化されるか、又はインター予測モード符号化されるかに応じて異なり得る。イントラコード化の場合、PUは、以下で説明するリーフ変換単位と同じように扱われ得る。
[0047]リーフCUは、1つ又は複数の変換単位(TU)を含み得る。変換単位は、上記で説明したように、TU4分木構造を使用して指定され得る。即ち、分割フラグは、リーフCUが4つの変換単位に分割されるかどうかを示し得る。次いで、各変換単位は更に4つのサブTUに分割され得る。TUが更に分割されないとき、そのTUはリーフTUと呼ばれることがある。概して、分割フラグは、リーフTUが正方形TUに分割されることを示し得る。TUが非正方形TUに分割されることを示すために、他のシンタックスデータ、例えば、非正方形4分木変換(NSQT:non-squarequadtreetransform)に従ってTUが区分されるべきであることを示すシンタックスデータが含まれ得る。
[0048]概して、イントラコード化の場合、リーフCUに属する全てのリーフTUは同じイントラ予測モードを共有する。即ち、概して、リーフCUの全てのTUの予測値を計算するために同じイントラ予測モードが適用される。イントラコード化の場合、ビデオエンコーダは、イントラ予測モードを使用して各リーフTUの残差値を、TUに対応する予測値の一部と元のブロックとの間の差として計算し得る。残差値は変換され、量子化され、走査され得る。インターコード化の場合、ビデオエンコーダは、PUレベルで予測を実行し得、各PUの残差を計算し得る。リーフCUに対応する残差値は変換され、量子化され、走査され得る。インターコード化の場合、リーフTUはPUよりも大きく又は小さくなり得る。イントラコード化の場合、PUは、対応するリーフTUと同一位置に配置され得る。幾つかの例では、リーフTUの最大サイズは、対応するリーフCUのサイズであり得る。
[0049]概して、本開示では、特に明記しない限り、リーフCU及びリーフTUに言及するためにそれぞれCU及びTUという用語を使用する。概して、本開示の技法は、CUのデータを変換し、量子化し、走査し、エントロピー符号化することに関する。一例として、本開示の技法は、ブロックを予測するために使用されたイントラ予測モードに基づいてイントラ予測されたブロックの残差値を変換するために使用すべき変換を選択することを含む。本開示ではまた、イントラ予測モード方向に依存するそのような変換に言及するために「方向性変換(directionaltransform)」又は「設計変換(designedtransform)」という用語を使用する。即ち、ビデオエンコーダは、変換単位(TU)に適用すべき方向性変換を選択し得る。上記のように、イントラ予測は、あるピクチャの現在のCUのTUを、同じピクチャの前にコード化されたCU及びTUから予測することを含む。より詳細には、ビデオエンコーダは、特定のイントラ予測モードを使用してあるピクチャの現在のTUをイントラ予測し得る。
[0050]量子化の後に、例えば、コンテンツ適応型可変長コード化(CAVLC:contentadaptivevariablelengthcoding)、コンテキスト適応型バイナリ算術コード化(CABAC:contextadaptivebinaryarithmeticcoding)、確率間隔区分エントロピーコード化(PIPE:probabilityintervalpartitioningentropy)、又は別のエントロピーコード化方法に従って、量子化データのエントロピーコード化が実行され得る。エントロピーコード化用に構成された処理ユニット、又は別の処理ユニットは、量子化係数のゼロランレングスコード化、及び/又はコード化ブロックパターン(CBP:codedblockpattern)値、マクロブロックタイプ、コード化モード、(フレーム、スライス、マクロブロック、又はシーケンスなどの)コード化単位の最大マクロブロックサイズ、又は他のシンタックス情報などのシンタックス情報の生成など、他の処理機能を実行し得る。
[0051]ビデオエンコーダ20は、例えば、時間的に予測されるべき1つ又は複数の同じフレームにおいて、後続のブロックを予測するための参照として使用されるべき復号されたブロックを記憶するために、逆量子化及び逆変換を実行するように構成され得る。ビデオエンコーダ20は更に、ブロックベースのシンタックスデータ、フレームベースのシンタックスデータ、及びGOPベースのシンタックスデータなどのシンタックスデータを、例えば、フレームヘッダ、ブロックヘッダ、スライスヘッダ、又はGOPヘッダ中でビデオデコーダ30に送り得る。GOPシンタックスデータは、それぞれのGOP中の幾つかのフレームを記述し得、フレームシンタックスデータは、対応するフレームを符号化するために使用される符号化/予測モードを示し得る。
[0052]ビデオエンコーダ20及びビデオデコーダ30はそれぞれ、適用可能なとき、1つ又は複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ディスクリート論理回路、ソフトウェア、ハードウェア、ファームウェア、又はそれらの任意の組合せなど、様々な好適なエンコーダ又はデコーダ回路のいずれかとして実装され得る。ビデオエンコーダ20及びビデオデコーダ30の各々は1つ又は複数のエンコーダ又はデコーダ中に含まれ得、そのいずれも複合ビデオエンコーダ/デコーダ(コーデック)の一部として統合され得る。ビデオエンコーダ20及び/又はビデオデコーダ30を含む装置は、集積回路、マイクロプロセッサ、及び/又はセルラー電話などのワイヤレス通信機器を備え得る。
[0053]本開示の技法によれば、ビデオエンコーダ20及び/又はビデオデコーダ30は、他の機能のなかでも、ピクチャバッファ中にビデオデータの1つ又は複数の復号単位を記憶することと、1つ又は複数の復号単位のための個別のバッファ除去時間を取得することと、復号単位の各々のための取得されたバッファ除去時間に従ってピクチャバッファから復号単位を除去することと、除去された復号単位に対応するビデオデータをコード化することとを行うように構成され得る。
[0054]以下の定義を、他の機能のなかでも、ピクチャバッファ中にビデオデータの1つ又は複数の復号単位を記憶することと、1つ又は複数の復号単位のための個別のバッファ除去時間を取得することと、復号単位の各々のための取得されたバッファ除去時間に従ってピクチャバッファから復号単位を除去することと、除去された復号単位に対応するビデオデータをコード化することとを行うように構成された例示的なビデオエンコーダ20及び/又はビデオデコーダ30に関して与える。
[0055]例の1つのセットについて説明するために、「復号単位」という用語は次のように定義され得る。
復号単位:アクセス単位又はアクセス単位のサブセット。sub_pic_cpb_flagが0に等しくなる場合、復号単位はアクセス単位であり、そうでない場合、復号単位は、アクセス単位のサブセットである。sub_pic_cpb_flagが1に等しくなるとき、アクセス単位中の第1の復号単位は、アクセス単位中の全ての非VCLNAL単位と、同じアクセス単位中の第1のVCLNAL単位とを含み、アクセス単位中の各々の他の復号単位は、アクセス単位中の第1のコード化スライスNAL単位ではないコード化スライスNAL単位である。
[0056]例の第2のセットについて説明するために、「復号単位」という用語は、次のように定義され得、「サブピクチャ」という用語の追加の定義が、「復号単位」の対応する例示的な定義において使用される。
復号単位:アクセス単位又はアクセス単位のサブセット。sub_pic_cpb_flagが0に等しくなる場合、復号単位はアクセス単位であり、そうでない場合、復号単位は、アクセス単位のサブセットである。sub_pic_cpb_flagが1に等しくなるとき、アクセス単位中の第1の復号単位は、アクセス単位中の全ての非VCLNAL単位と、同じアクセス単位中のピクチャの第1のサブピクチャとを含み、アクセス単位中の各々の他の復号単位は、アクセス単位中の第1のサブピクチャではないサブピクチャである。
サブピクチャ:復号順序で連続するコード化ピクチャの幾つかのコード化ブロック。
[0057]上記で与えた第2のセットの例による定義では、2つ以上のサブピクチャがスライス中に含まれるとき、バイトアラインメントは、例えば、HEVCWD6におけるタイルのためのバイトアラインメントとは対照的に、各サブピクチャの終わりに適用され得る。更に、各サブピクチャのエントリポイントが、コード化ピクチャ中の第1のサブピクチャを除いて、信号伝達され得る。
[0058]幾つかの代替では、ビットストリームが複数のスケーラブルレイヤ又はビューを含んでいるとき、復号単位は、レイヤ表現又はビュー構成要素として定義され得る。レイヤ表現又はビュー構成要素の第1のVCLNAL単位に先行する全ての非VCLユニットはまた、レイヤ表現又はビュー構成要素を含んでいる復号単位に属する。
[0059]例示的な仮定参照デコーダ(HRD)動作、コード化ピクチャバッファの例示的な動作、ビットストリーム到着の例示的なタイミング、復号単位除去の例示的なタイミング、復号単位の例示的な復号、復号ピクチャバッファの例示的な動作、復号ピクチャバッファからのピクチャの例示的な除去、例示的なピクチャ出力、及び例示的な現在の復号ピクチャのマーキング並びに記憶の以下の説明を、他の機能のなかでも、ピクチャバッファ中にビデオデータの1つ又は複数の復号単位を記憶することと、1つ又は複数の復号単位のための個別のバッファ除去時間を取得することと、復号単位の各々のための取得されたバッファ除去時間に従ってピクチャバッファから復号単位を除去することと、除去された復号単位に対応するビデオデータをコード化することとを行うように構成され得るビデオエンコーダ20及び/又はビデオデコーダ30の例を示すために与える。動作は、他の例では、別様に、定義又は実行され得る。このようにして、ビデオエンコーダ20及び/又はビデオデコーダ30は、以下で説明するHRD動作の様々な例に従って動作するように構成され得る。
[0060]一例として、HRD動作は、要約すれば、次のように説明され得る。CPBサイズ(ビット数)はCpbSize[SchedSelIdx]である。時間レイヤXのためのDPBサイズ(ピクチャ記憶バッファの数)は、両端値を含む0〜max_temporal_layers_minus1の範囲内の各Xについてmax_dec_pic_buffering[X]+1である。この例では、HRDは、次のように動作し得る。指定された到着スケジュールに従ってCPBに流れるアクセス単位に関連するデータは、仮定ストリームスケジューラ(HSS:hypotheticalstreamscheduler)、即ち、配信スケジューラによって配信され得る。各復号単位に関連するデータは、CPB除去時間に瞬時復号プロセスによって瞬時に除去され復号され得る。各復号ピクチャは、DPB中に配置され得る。復号ピクチャは、DPB出力時又はインター予測参照のためにもはや必要とされなくなったときのうちの後の方でDPBから除去され得る。
[0061]算術は、これらの例では、丸め誤差が伝搬しないように実数値を用いて行われ得る。例えば、復号単位の除去の直前の又はそれの直後のCPB中のビット数は必ずしも整数であるとは限らない。
[0062]変数tcは、次式のように導出され得、クロックティック(clocktick)と呼ばれることがある。
tc=num_units_in_tick÷time_scale (C−1)
[0063]以下は、HEVCへの例示的な付属書類修正における制約を表すために指定され得る。
アクセス単位nを、復号順序でn番目のアクセス単位とし、第1のアクセス単位がアクセス単位0である。
ピクチャnを、コード化ピクチャ又はアクセス単位nの復号ピクチャとする。
復号単位mを、復号順序でm番目の復号単位とし、第1の復号単位が復号単位0である。
[0064]コード化ピクチャバッファ(CPB)の動作のための幾つかの例示的な技法について、次のように説明する。幾つかのビデオコード化技法によれば、CPB動作の様々な方法が実施され得る。HEVCWD6のセクションのCPB動作に関する仕様は、本開示によって変更され得、存在するCPBパラメータの各セットに、及びタイプIとタイプII適合ポイントの両方に独立して適用され得る。
[0065]ビットストリーム到着のタイミングに関与する幾つかの例について、次のように説明する。HRDは、バッファリング期間補足エンハンスメント情報(SEI)メッセージのうちのいずれか1つで初期化され得る。初期化前に、CPBは空であり得る。初期化後、HRDは後続のバッファリング期間SEIメッセージによって再び初期化され得ない。
[0066]CPBを初期化するバッファリング期間SEIメッセージに関連するアクセス単位は、アクセス単位「0」と呼ばれることがある。各復号単位は復号単位mと呼ばれることがあり、数mは特定の復号単位を識別する。アクセス単位0中の復号順序で第1の復号単位は復号単位0と呼ばれることがある。mの値は、復号順序で後続の復号単位ごとに1だけ増分され得る。
[0067]復号単位mの第1のビットがCPBに入り始める時間は、初期到着時間tai(m)と呼ばれることがある。復号単位の初期到着時間は次のように導出され得る。
復号単位が復号単位0である場合、tai(0)=0である。
そうでない場合(復号単位が復号単位mであり、m>0である)、以下が適用され得る。
cbr_flag[SchedSelIdx]が1に等しくなる場合、復号単位mの初期到着時間が復号単位m−1の(以下で導出される)最終到着時間に等しくなる。即ち、次式のようになる。
tai(m)=taf(m−1) (C−2)
そうでない場合(cbr_flag[SchedSelIdx]が0に等しくなる)、復号単位mのための初期到着時間は、次式によって導出される。
tai(m)=Max(taf(m−1),tai,earliest(m)) (C−3)
上式で、tai,earliest(m)は次のように導出される。
[0068]復号単位mが後続のバッファリング期間の第1の復号単位でない場合、tai,earliest(m)は次式のように導出され得る。
tai,earliest(m)=tr,n(m)−(initial_cpb_removal_delay[SchedSelIdx]+initial_cpb_removal_delay_offset[SchedSelIdx])÷90000 (C−4)
tr,n(m)は、復号単位mの指定されたCPBからの名目除去時間であり、initial_cpb_removal_delay[SchedSelIdx]及びinitial_cpb_removal_delay_offset[SchedSelIdx]は、前のバッファリング期間SEIメッセージにおいて指定されている。
そうでない場合(復号単位mが後続のバッファリング期間の第1の復号単位である)、tai,earliest(m)は次式のように導出され得る。
tai,earliest(m)=tr,n(m)−(initial_cpb_removal_delay[SchedSelIdx]÷90000) (C−5)
initial_cpb_removal_delay[SchedSelIdx]は、復号単位mを含んでいるアクセス単位に関連するバッファリング期間SEIメッセージにおいて指定されている。
[0069]復号単位mの最終到着時間は次式によって導出され得る。
taf(m)=tai(m)+b(m)÷BitRate[SchedSelIdx] (C−6)
上式で、b(m)は、復号単位mのビットのサイズであり得、タイプI適合ポイントの場合には、VCLNAL単位及びフィラーデータNAL単位のビットをカウントし、又はタイプII適合ポイントの場合には、タイプIIビットストリームの全てのビットをカウントする。
[0070]幾つかの例では、SchedSelIdx、BitRate[SchedSelIdx]、及びCpbSize[SchedSelIdx]の値は、次のように制限され得る。
復号単位mを含んでいるアクセス単位のためのアクティブシーケンスパラメータセットのコンテンツと前のアクセス単位とが異なる場合、HSSは、復号単位mを含んでいるアクセス単位のためのアクティブシーケンスパラメータセット中に与えられたSchedSelIdxの値の中から、SchedSelIdxの値SchedSelIdx1を選択し、その場合、復号単位mを含んでいるアクセス単位のためにBitRate[SchedSelIdx1]又はCpbSize[SchedSelIdx1]を生じる。BitRate[SchedSelIdx1]又はCpbSize[SchedSelIdx1]の値は、前のアクセス単位のために使用されていたSchedSelIdxの値SchedSelIdx0のためのBitRate[SchedSelIdx0]又はCpbSize[SchedSelIdx0]の値とは異なり得る。
そうでない場合、HSSは、SchedSelIdx、BitRate[SchedSelIdx]、及びCpbSize[SchedSelIdx]の前の値で動作し続ける。
[0071]HSSが前のアクセス単位のBitRate[SchedSelIdx]又はCpbSize[SchedSelIdx]の値とは異なるBitRate[SchedSelIdx]又はCpbSize[SchedSelIdx]の値を選択すると、幾つかの例では以下が適用され得る。
変数BitRate[SchedSelIdx]は時間tai(m)に効力を発する。
変数CpbSize[SchedSelIdx]は次のように効力を発する。
CpbSize[SchedSelIdx]の新しい値が古いCPBサイズを超えた場合、その値は時間tai(m)に効力を発する。
そうでない場合、CpbSize[SchedSelIdx]の新しい値は、復号単位mを含んでいるアクセス単位の最後の復号単位のCPB除去時間に効力を発する。
[0072]sub_pic_cpb_flagが1に等しくなるとき、アクセス単位nの初期CPB到着時間tai(n)がアクセス単位n中の第1の復号単位の初期CPB到着時間に設定され得、かつアクセス単位nの最終CPB到着時間taf(n)がアクセス単位n中の最後の復号単位の最終CPB到着時間に設定され得る。
[0073]復号単位除去のタイミング及び復号単位の復号に関与する幾つかの例について、次のように説明する。復号単位mが、mが0に等しい復号単位(HRDを初期化するアクセス単位の第1の復号単位)であるとき、CPBからの復号単位の名目除去時間は次式によって指定され得る。
tr,n(0)=initial_cpb_removal_delay[SchedSelIdx]÷90000 (C−7)
[0074]復号単位mが、HRDを初期化しないバッファリング期間の第1のアクセス単位の第1の復号単位であるとき、CPBからの復号単位の名目除去時間は次式によって指定され得る。
tr,n(m)=tr,n(mb)+tc*cpb_removal_delay(m) (C−8)
上式で、tr,n(mb)は、前のバッファリング期間の第1の復号単位の名目除去時間であり、cpb_removal_delay(m)は、復号単位mを含んでいるアクセス単位に関連するピクチャタイミングSEIメッセージにおいて指定されている復号単位mのためのcpb_removal_delay[i]の値である。
[0075]復号単位nがバッファリング期間の第1の復号単位であるとき、mbは、復号単位nの除去時間tr,n(m)にmに等しく設定され得る。バッファリング期間の第1の復号単位ではない復号単位mの名目除去時間tr,n(m)は、次式によって与えられ得る。
tr,n(m)=tr,n(mb)+tc*cpb_removal_delay(m) (C−9)
上式で、tr,n(mb)は、現在のバッファリング期間の第1の復号単位の名目除去時間であり、cpb_removal_delay(m)は、復号単位mを含んでいるアクセス単位に関連するピクチャタイミングSEIメッセージにおいて指定されている復号単位mのためのcpb_removal_delay[i]の値である。
[0076]復号単位mの除去時間は次のように指定され得る。
low_delay_hrd_flagが0に等しくなるか、又はtr,n(m)≧taf(m)である場合、復号単位nの除去時間は次式によって指定され得る。
tr(m)=tr,n(m) (C−10)
そうでない場合(low_delay_hrd_flagが1に等しくなり、かつtr,n(m)<taf(m)である)、復号単位mの除去時間は次式によって指定される。
tr(m)=tr,n(m)+tc*Ceil((taf(m)−tr,n(m))÷tc) (C−11)
後者のケースは、復号単位mのサイズ、b(m)が非常に大きくて、名目除去時間における除去を阻むことを示している。
[0077]sub_pic_cpb_flagが1に等しくなるとき、アクセス単位nの名目CPB除去時間tr,n(n)がアクセス単位n中の最後の復号単位の名目CPB除去時間に設定され得、アクセス単位nのCPB除去時間tr(n)がアクセス単位n中の最後の復号単位のCPB除去時間に設定され得る。
[0078]幾つかの例では、復号単位mのCPB除去時間に、復号単位は、瞬時に復号され得る。
[0079]復号ピクチャバッファ(DPB)の動作の幾つかの例について、次のように説明する。復号ピクチャバッファは、ピクチャ記憶バッファを含み得る。ピクチャ記憶バッファの各々は、「参照のために使用される」とマーキングされているか、又は将来の出力のために保持された復号ピクチャを含み得る。初期化の前に、DPBは空であり得る(DPBフルネスが0に設定される)。本開示の技法のこれらの例の後続のステップは、リストされたシーケンスで起こり得る。
[0080]復号ピクチャバッファ(DPB)からのピクチャの除去の幾つかの例について、次のように説明する。幾つかの例では、現在のピクチャの復号の前の(但し、現在のピクチャの第1のスライスのスライスヘッダをパースした後の)DPBからのピクチャの除去は、(現在のピクチャを含んでいる)アクセス単位nの第1の復号単位のCPB除去時間に瞬時に起こり得、次のように進み得る。
[0081]HEVCWD6の8.3.2項において指定されている参照ピクチャセットのための復号プロセスが呼び出され得る。現在のピクチャが瞬時デコーダリフレッシュ(IDR:instantaneousdecoderrefresh)ピクチャである場合、以下が適用され得る。
1.IDRピクチャが復号された第1のIDRピクチャでないとき(例えば、前のピクチャの出力なしフラグが1に等しくない値を有するとき)、かつアクティブシーケンスパラメータセットから導出されたpic_width_in_luma_samples(例えば、ルーマサンプルにおけるピクチャ幅)又はpic_height_in_luma_samples又はmax_dec_pic_bufferingの値が、それぞれ、前のピクチャについてアクティブであったシーケンスパラメータセットから導出されたpic_width_in_luma_samples又はpic_height_in_luma_samples又はmax_dec_pic_bufferingの値とは異なるとき、no_output_of_prior_pics_flagは、no_output_of_prior_pics_flagの実際の値にかかわらず、1に等しいと推論されるか、又はHRDによって1に等しくなるように設定され得る。デコーダ実装形態は、pic_width_in_luma_samples又はpic_height_in_luma_samplesの変更に関して、HRDよりも適切にピクチャ又はDPBサイズ変更を処理し得る。
2.no_output_of_prior_pics_flagが、1に等しくなるか、又は1に等しくなるように設定もしくは推論されるとき、DPB中の全てのピクチャ記憶バッファは、それらが含んでいるピクチャの出力なしに空にされ得、DPBフルネスは0に設定され得る。
[0082]ピクチャkが「参照のために使用されない」とマーキングされていると、ピクチャkが、0に等しいPicOutputFlagを有するか、又は次式の通り、それのDPB出力時間が、現在のピクチャnの(復号単位mとして示される)第1の復号単位のCPB除去時間以下であるとの条件の全てが真である、DPB中の全てのピクチャkがDPBから除去され得る。
to,dpb(k)<=tr(m)
[0083]ピクチャがDPBから除去されると、DPBフルネスは1だけ減分され得る。
[0084]ピクチャ出力の幾つかの例について、次のように説明する。以下は、(現在のピクチャを含んでいる)アクセス単位nの(復号単位mとして示される)最後の復号単位のCPB除去時間、tr(m)に瞬時に起こり得る。ピクチャnは、ピクチャの最後の復号単位が復号された後に復号されると見なされ得る。
[0085](最大ピクチャ順序カウント(POC)のための)変数maxPicOrderCntは、「短期参照のために使用される」と現在マーキングされているか、又はtr(m)よりも大きいDPB出力時間を有するDPB中の現在のピクチャ及び全てのピクチャの(ピクチャ順序カウント(POC)値のための)PicOrderCntVal値の最大値に等しく設定され得る。(最小ピクチャ順序カウント(POC)、即ち、最も小さいピクチャ順序カウント(POC)のための)変数minPicOrderCntは、「短期参照のために使用される」と現在マーキングされているか、又はtr(m)よりも大きいDPB出力時間を有するDPB中の現在のピクチャ及び全てのピクチャのためのPicOrderCntValの最小値に等しく設定され得る。maxPicOrderCnt−minPicOrderCntの値が、MaxPicOrderCntLsb/2よりも小さいことがビットストリーム適合の要件であり得る。
[0086]ピクチャnが1に等しいPicOutputFlagを有するとき、それのDPB出力時間to,dpb(n)は次式によって導出され得る。
to,dpb(n)=tr(m)+tc*dpb_output_delay(n) (C−12)
上式で、dpb_output_delay(n)が、アクセス単位nに関連するピクチャタイミングSEIメッセージにおいて指定されているdpb_output_delayの値である。現在のピクチャの出力は次のように指定され得る。
PicOutputFlagが、1に等しくなり、to,dpb(n)=tr(m)である場合、現在のピクチャが出力される。
そうではなく、PicOutputFlagが0に等しくなる場合、現在のピクチャは、出力されないが、以下で更に指定されるようにDPBに記憶され得る。
そうでない場合(PicOutputFlagが1に等しくなり、to,dpb(n)>tr(m)である)、現在のピクチャは、後で出力され、(以下で更に指定されるように)DPBに記憶されることになり、to,dpb(n)に先行する時間に1に等しいno_output_of_prior_pics_flagの復号又は推論によって出力されるべきでないことが示されない限り、時間to,dpb(n)に出力される。
[0087]出力時に、現在の又は選択されたピクチャは、アクティブシーケンスパラメータセットにおいて指定されているクロッピング矩形を使用してクロップされ、それによって、選択されたピクチャ、即ち、現在のピクチャに基づいてクロップされたピクチャ(croppedpicture)を生成し得る。ピクチャnが、出力されるピクチャであり、出力されるビットストリームの最後のピクチャではないとき、Δto,dpb(n)の値は、次式のように定義される。
Δto,dpb(n)=to,dpb(nn)−to,dpb(n) (C−13)
上式で、nnは、出力順でピクチャnの後に続く、1に等しいPicOutputFlagをもつピクチャを示す。バンピングプロセス及びクロッピングプロセスの更なる詳細について、更に以下で与える。
[0088]現在の復号ピクチャのマーキング及び記憶に関与する幾つかの例について、次のように説明する。以下は、(現在のピクチャを含んでいる)アクセス単位nの最後の復号単位のCPB除去時間、tr(m)に瞬時に起こり得る。現在の復号ピクチャは空のピクチャ記憶バッファ中のDPBに記憶され得、DPBフルネスは、1だけ増分され得る。現在のピクチャは、参照ピクチャである場合、「参照のために使用される」とマーキングされ得、そうでない場合は、「参照のために使用されない」とマーキングされ得る。
[0089]CPB挙動モードの信号伝達についての以下の例示的なシンタックス及びセマンティクスを、他の機能のなかでも、ピクチャバッファ中にビデオデータの1つ又は複数の復号単位を記憶することと、1つ又は複数の復号単位のための個別のバッファ除去時間を取得することと、復号単位の各々のための取得されたバッファ除去時間に従ってピクチャバッファから復号単位を除去することと、除去された復号単位に対応するビデオデータをコード化することとを行うように構成された例示的なビデオエンコーダ20及び/又はビデオデコーダ30に関して与える。
[0090]CPB挙動モードの信号伝達についてのシンタックス及びセマンティクスの幾つかの例について、次のように説明する。ビデオユーザビリティ情報(VUI:videousabilityinformation)パラメータのシンタックスは、以下の表1に示すように、サブピクチャCPBフラグ、sub_pic_cpb_flag、を追加することによって変更され得る。
[0091]この例では、表1には、従来のHEVCに関係する追加フラグ「sub_pic_cpb_flag」が含まれる。このサブピクチャCPBフラグ、「sub_pic_cpb_flag」は、コード化ピクチャバッファ(CPB)に与えられるビデオデータのセットがサブピクチャ復号のためのサブピクチャパラメータを含むか否かを信号伝達するために使用され得る。フラグ「sub_pic_cpb_flag」がその存在を信号伝達し得るそのようなサブピクチャパラメータは、1つ又は複数の復号単位の各々のための個別のバッファ除去時間(即ち、CPB除去時間)を含む、バッファ除去時間を含み得る。sub_pic_cpb_flagのセマンティクスの一例は以下の通りである。0に等しいシンタックス要素sub_pic_cpb_flagは、CPBがアクセス単位レベルで動作することを指定し得る。1に等しいシンタックス要素sub_pic_cpb_flagは、CPBが、サブピクチャに対応し得る、アクセス単位の復号単位レベル又はアクセス単位のサブセットの復号単位レベルであり得る復号単位レベルで動作することを指定し得る。sub_pic_cpb_flagが存在しないとき、それの値は、0に等しくなると設定又は推論され得、これは、ビデオデータがサブピクチャ復号のためのサブピクチャパラメータを含まないデフォルト状態を示し得る。
[0092]復号単位のCPB除去時間の信号伝達についてのシンタックス及びセマンティクスの幾つかの例について、次のように説明する。バッファリング期間SEIメッセージのシンタックスは、HEVCWD6に示すようにそのままであり得るが、シンタックス要素initial_cpb_removal_delay[SchedSelIdx]及びinitial_cpb_removal_delay_offset[SchedSelIdx]のセマンティクスは次のように変更され得る。この例では、シンタックス要素initial_cpb_removal_delay[SchedSelIdx]は、HRD初期化後の第1のバッファリング期間の間の、バッファリング期間SEIメッセージに関連するアクセス単位中の第1の復号単位に関連するコード化データの第1のビットのCPBへの到着時間と、同じ復号単位に関連するコード化データのCPBからの除去時間との間のSchedSelIdx番目のCPBの遅延を指定し得る。このシンタックス要素は、initial_cpb_removal_delay_length_minus1+1によって与えられるビットの長さを有し得る。これは90kHzクロックの単位を指すことがある。この例では、このシンタックス要素initial_cpb_removal_delay[SchedSelIdx]は「0」に等しくなり得ず、90kHzクロック単位でCPBサイズに相当する時間である90000×(CpbSize[SchedSelIdx]÷BitRate[SchedSelIdx])を超え得ない。
[0093]この例では、CPBへの復号単位の初期配信時間を指定するためにシンタックス要素cpb_removal_delayと組み合わせてSchedSelIdx番目のCPBのためにシンタックス要素initial_cpb_removal_delay_offset[SchedSelIdx]が使用され得る。更に、シンタックス要素initial_cpb_removal_delay_offset[SchedSelIdx]は90kHzクロックの単位であり得る。initial_cpb_removal_delay_offset[SchedSelIdx]シンタックス要素は、ビットの長さがinitial_cpb_removal_delay_length_minus1+1によって与えられる固定長コードであり得る。このシンタックス要素は、デコーダによって使用され得ず、HEVCWD6の付属書類Cにおいて指定されている配信スケジューラ(HSS)のためにのみ必要とされ得る。
[0094]幾つかの例では、ピクチャタイミングSEIメッセージのシンタックス及びセマンティクスは、以下の表2に示すように変更され得る。
[0095]表2の例では、例えば、上記の表1により、VUIパラメータのsub_pic_cpb_flagが真であるとき、pic_timingSEIメッセージは、追加されたnum_decoding_units_minus1信号と、コード化ピクチャバッファから復号単位のそれぞれの除去遅延を信号伝達する、復号単位の数にわたるforループとを含む。このようにして、CPBが復号単位レベルで動作することをVUIパラメータが示すとき、pic_timingSEIメッセージは、コード化ピクチャバッファから複数の復号単位の各々を除去するまで待つべきクロックティック(clockticks)の数を示す情報を含み得る。復号単位の除去遅延は、ペイロード中の各復号単位又はデータの他の単位に対して同じ遅延であり得る。他の例では、異なる除去遅延が異なる復号単位に適用され得る。除去遅延は、適用可能なクロックのビット処理レートに関するビット数の暗黙的時間変換を用いてビット数に関して表され得る。
[0096]ピクチャタイミングSEIメッセージのシンタックスは、ピクチャタイミングSEIメッセージに関連するコード化ピクチャについてアクティブであるシーケンスパラメータセットのコンテンツに依存し得る。但し、瞬時復号リフレッシュ(IDR)アクセス単位のピクチャタイミングSEIメッセージが、同じアクセス単位内のバッファリング期間SEIメッセージによって先行されない限り、関連するシーケンスパラメータセットのアクティブ化(及び、ビットストリーム中の第1のピクチャでないIDRピクチャの場合、コード化ピクチャがIDRピクチャであるという決定)は、コード化ピクチャの第1のコード化スライスネットワークアブストラクションレイヤ(NAL)単位の復号まで行われないことがある。コード化ピクチャのコード化スライスNAL単位がNAL単位順序でピクチャタイミングSEIメッセージに続くので、デコーダが、コード化ピクチャについてアクティブになるであろうシーケンスパラメータセットのパラメータを決定するまで、ピクチャタイミングSEIメッセージを含んでいるローバイトシーケンスペイロード(RBSP:rawbytesequencepayload)を記憶し、次いで、ピクチャタイミングSEIメッセージの構文解析を実行する必要がある場合があり得る。デコーダは、ピクチャバッファ中に連続復号順序でビデオデータの1つ又は複数の復号単位を記憶し得る。
[0097]ビットストリーム中でのピクチャタイミングSEIメッセージの存在は次のように一例では指定され得る。CpbDpbDelaysPresentFlagが1に等しくなる場合、1つのピクチャタイミングSEIメッセージが、コード化ビデオシーケンスのあらゆるアクセス単位中に存在し得る。そうでない場合、CpbDpbDelaysPresentFlagは0に等しくなり、ピクチャタイミングSEIメッセージは、コード化ビデオシーケンスのどのアクセス単位中にも存在し得ない。
[0098]この例では、シンタックス要素num_decoding_units_minus1+1は、ピクチャタイミングSEIメッセージが関連するアクセス単位中の復号単位の数を指定し得る。sub_pic_cpb_flagが0に等しくなるとき、シンタックス要素num_decoding_units_minus1は存在し得ず、値は、0に設定又は推論され得る。
[0099]この例では、シンタックス要素cpb_removal_delay[i]は、前のアクセス単位中の直近のバッファリング期間SEIメッセージに関連するアクセス単位中の第1の復号単位のCPBからの除去の後、ピクチャタイミングSEIメッセージに関連するアクセス単位中のi番目の復号単位をCPBから除去する前に、何個のクロックティックを待つべきかを指定し得る。この値は、HSSのためのCPBへの復号単位データのできるだけ早い到着時間を計算するためにも使用され得る。そのシンタックス要素は、ビットの長さがcpb_removal_delay_length_minus1+1によって与えられる固定長コードであり得る。cpb_removal_delay[i]は、モジュロ2(cpb_removal_delay_length_minus1+1)カウンタの剰余であり得る。
[0100]シンタックス要素cpb_removal_delay[i]の(ビットでの)長さを決定するcpb_removal_delay_length_minus1の値は、ピクチャタイミングSEIメッセージに関連するコード化ピクチャについてアクティブであるシーケンスパラメータセット中にコード化されるcpb_removal_delay_length_minus1の値であり得る。しかしながら、cpb_removal_delay[i]は、異なるコード化ビデオシーケンスのアクセス単位であり得る、バッファリング期間SEIメッセージを含んでいる前のアクセス単位中の第1の復号単位の除去時間に関係するクロックティックの数を指定し得る。
[0101]この例では、シンタックス要素dpb_output_delayは、ピクチャのDPB出力時間を計算するために使用され得る。シンタックス要素dpb_output_delayは、アクセス単位中の最後の復号単位のCPBからの除去の後、復号ピクチャがDPBから出力される前に、何個のクロックティックを待つべきかを指定し得る。
[0102]ピクチャは、「短期参照のために使用される」又は「長期参照のために使用される」と依然としてマーキングされているとき、それの出力時間にDPBから除去され得ない。復号ピクチャにただ1つのdpb_output_delayが指定され得る。シンタックス要素dpb_output_delayの長さは、dpb_output_delay_length_minus1+1によってビットで与えられ得る。max_dec_pic_buffering[max_temporal_layers_minus1]が0に等しくなるとき、dpb_output_delayは0に等しくなり得る。
[0103]出力タイミング適合デコーダから出力される任意のピクチャのdpb_output_delayから導出される出力時間は、復号順序で任意の後続のコード化ビデオシーケンス中の全てのピクチャのdpb_output_delayから導出される出力時間に先行し得る。このシンタックス要素の値によって確立されるピクチャ出力順序は、PicOrderCnt()の値によって確立される順序と同じ順序であり得る。1に等しいか、又は1に等しいと推論されるno_output_of_prior_pics_flagをもつIDRピクチャに復号順序で先行するので「バンピング」プロセスによって出力されないピクチャについて、dpb_output_delayから導出される出力時間は、同じコード化ビデオシーケンス内の全てのピクチャに関係するPicOrderCnt()の値の増加とともに増加し得る。代替例では、関連する復号単位のCPB除去遅延を搬送するために、復号単位タイミングSEIメッセージと呼ばれることがある、それぞれ復号単位に関連する新しいSEIメッセージが指定され得る。
[0104]このようにして、例示的な定義と、例示的なHRD動作と、コード化ピクチャバッファの例示的な動作と、ビットストリーム到着の例示的なタイミングと、復号単位除去の例示的なタイミングと、復号単位の例示的な復号と、復号ピクチャバッファの例示的な動作と、復号ピクチャバッファからのピクチャの例示的な除去と、例示的なピクチャ出力と、例示的な現在の復号ピクチャのマーキング及びストレージと、CPB挙動モードの信号伝達についての例示的なシンタックス及びセマンティクスとの任意の組合せを実装することによって、ビデオエンコーダ20及び/又はビデオデコーダ30は、他の機能のなかでも、ピクチャバッファ中にビデオデータの1つ又は複数の復号単位を記憶することと、1つ又は複数の復号単位のための個別のバッファ除去時間を取得することと、復号単位の各々のための取得されたバッファ除去時間に従ってピクチャバッファから復号単位を除去することと、除去された復号単位に対応するビデオデータをコード化することとを行うように構成され得る。
[0105]上記で説明した技法の代替として、復号単位は、次のように定義され得る。「アクセス単位又はアクセス単位のサブセット。SubPicCpbFlagが0に等しくなる場合、復号単位はアクセス単位である。そうでない場合、復号単位は、アクセス単位中に1つ又は複数のVCLNAL単位と関連する非VCLNAL単位とを含む。アクセス単位中の第1のVCLNAL単位について、関連する非VCLNAL単位は全て、アクセス単位中の非VCLNAL単位であり、もしあれば、第1の非VCLNAL単位の直後にくる第1のVCLNAL単位及びフィラーデータNAL単位の前にある。アクセス単位中の第1のVCLNAL単位でないVCLNAL単位について、関連する非VCLNAL単位は、もしあれば、非VCLNAL単位の直後にくるフィラーデータNAL単位である。」
[0106]この例では、仮定参照デコーダ(HRD)動作は、次のように要約され得る。CPBサイズ(ビット数)はCpbSize[SchedSelIdx]である。時間レイヤXのためのDPBサイズ(ピクチャ記憶バッファの数)は、両端値を含む0〜max_temporal_layers_minus1の範囲内の各Xについてmax_dec_pic_buffering[X]+1であり得る。変数SubPicCpbPreferredFlagは、サブピクチャコード化ピクチャバッファ選好フラグとして使用され得、外部手段によって指定されるか、又は外部手段によって指定されないときは0に設定され得る。別個のサブピクチャコード化ピクチャパラメータ存在フラグ、sub_pic_cpb_params_present_flagは、1つ又は複数のアクセス単位のサブセットをコード化するために必要なパラメータが利用可能であるかどうかを信号伝達するために使用され得る。単一のサブピクチャコード化ピクチャバッファフラグ、SubPicCpbFlagは、サブピクチャコード化ピクチャバッファ選好フラグとサブピクチャコード化ピクチャパラメータ存在フラグの両方が正であるか、又は1に設定されるかどうかを示し得る。ビデオコーダは、ビデオデータがCPBから除去されるとき、ビデオデータのアクセス単位をコード化すべきか、又はビデオデータのサブピクチャなどの1つ又は複数のアクセス単位のサブセットをコード化すべきかを決定するために、このサブピクチャコード化ピクチャバッファフラグ、SubPicCpbFlag、を使用し得る。
[0107]変数SubPicCpbFlagは次のように導出され得る。
SubPicCpbFlag=SubPicCpbPreferredFlag&&sub_pic_cpb_params_present_flag (C−1)
[0108]SubPicCpbFlagが0に等しくなる場合、CPBは、アクセス単位レベルで動作し得、各復号単位はアクセス単位であり得る。そうでない場合、CPBは、サブピクチャレベルで動作し得、各復号単位はアクセス単位のサブセットであり得る。
[0109]ビデオデコーダ30/108は、サブピクチャコード化ピクチャバッファ選好フラグ(例えば、SubPicCpbPreferredFlag)が0の値を有すると決定するか、又はサブピクチャコード化ピクチャバッファパラメータ存在フラグ(例えば、sub_pic_cpb_params_present_flag)が0の値を有すると決定することによって、1つ又は複数の復号単位がアクセス単位を備えると決定し得る。
[0110]HRD(例えば、ビデオエンコーダ20及び/又はビデオデコーダ30)は、次のように動作し得る。指定された到着スケジュールに従ってCPBに流れる復号単位に関連するデータは、HSSによって配信され得る。一例では、各復号単位に関連するデータは、CPB除去時間に瞬時復号プロセスによって瞬時に除去され復号され得る。各復号ピクチャは、DPB中に配置され得る。復号ピクチャは、DPB出力時又はインター予測参照のためにもはや必要とされなくなったときのうちの後の方でDPBから除去され得る。
[0111]本開示で説明する算術演算は、丸め誤差が伝搬されないように実数値を用いて行われ得る。例えば、復号単位の除去の直前の又はそれの直後のCPB中のビット数は必ずしも整数であるとは限らないことがある。
[0112]変数tcは、次式のように導出され得、クロックティックと呼ばれる。
tc=num_units_in_tick÷time_scale (C−1)
[0113]以下は、本開示の技法のこの例における制約を表すために指定され得る。
アクセス単位nを、復号順序でn番目のアクセス単位とし、第1のアクセス単位がアクセス単位0である。
ピクチャnを、コード化ピクチャ又はアクセス単位nの復号ピクチャとする。
復号単位mを、復号順序でm番目の復号単位とし、第1の復号単位が復号単位0である。
[0114]コード化ピクチャバッファ(CPB)の動作は、次のように定義され得る。この例での仕様は、存在するCPBパラメータの各セットに、及びタイプIとタイプII適合ポイントの両方に独立して適用され得る。
[0115]ビットストリーム到着のタイミングに関して、HRDは、バッファリング期間SEIメッセージのうちのいずれか1つで初期化され得る。初期化前に、CPBは空であり得る。初期化後、HRDは後続のバッファリング期間SEIメッセージによって再び初期化され得ない。
[0116]各アクセス単位はそれぞれアクセス単位nと呼ばれることがあり、数nは特定のアクセス単位を識別する。CPBを初期化するバッファリング期間SEIメッセージに関連するアクセス単位は、アクセス単位「0」と呼ばれることがある。nの値は、復号順序で後続のアクセス単位ごとに1だけ増分され得る。
[0117]各復号単位はそれぞれ復号単位mと呼ばれ、数mは特定の復号単位を識別する。アクセス単位0中の復号順序で第1の復号単位は復号単位0と呼ばれることがある。mの値は、復号順序で後続の復号単位ごとに1だけ増分され得る。
[0118]この例では、変数SubPicCpbFlagが0に等しくなる場合、変数InitCpbRemovalDelay[SchedSelIdx]は、関連するバッファリング期間SEIメッセージのinitial_cpb_removal_delay[SchedSelIdx]に設定され得、かつInitCpbRemovalDelayOffset[SchedSelIdx]は、関連するバッファリング期間SEIメッセージのinitial_cpb_removal_delay_offset[SchedSelIdx]に設定され得る。そうでない場合、変数InitCpbRemovalDelay[SchedSelIdx]は、関連するバッファリング期間SEIメッセージのinitial_du_cpb_removal_delay[SchedSelIdx]に設定され得、かつInitCpbRemovalDelayOffset[SchedSelIdx]は、関連するバッファリング期間SEIメッセージのinitial_du_cpb_removal_delay_offset[SchedSelIdx]に設定され得る。
[0119]復号単位nの第1のビットがCPBに入り始める時間は、初期到着時間tai(m)と呼ばれることがある。復号単位の初期到着時間は次のように導出され得る。
復号単位が復号単位0である場合、tai(0)=0である。
そうでない場合(復号単位が復号単位mであり、m>0である)、以下が適用され得る。
cbr_flag[SchedSelIdx]が1に等しくなる場合、復号単位mの初期到着時間がアクセス単位m−1の(以下で導出される)最終到着時間に等しくなり得る。即ち、次式のようになる。
tai(m)=taf(m−1) (C−2)
そうでない場合(cbr_flag[SchedSelIdx]が0に等しくなる)、復号単位mのための初期到着時間は、次式によって導出され得る。
tai(m)=Max(taf(m−1),tai,earliest(m)) (C−3)
上式で、tai,earliest(m)は次のように導出され得る。
復号単位nが後続のバッファリング期間の第1の復号単位でない場合、tai,earliest(m)は次式のように導出され得る。
tai,earliest(m)=tr,n(m)−(InitCpbRemovalDelay[SchedSelIdx]+
InitCpbRemovalDelayOffset[SchedSelIdx])÷90000 (C−4)
上式で、tr,n(m)は、CPBからの復号単位mの名目除去時間である。
そうでない場合(復号単位mが後続のバッファリング期間の第1の復号単位である)、tai,earliest(m)は次式のように導出され得る。
tai,earliest(m)=tr,n(m)−(InitCpbRemovalDelay[SchedSelIdx]÷90000)
(C−5)
[0120]復号単位mの最終到着時間tafは次式によって導出され得る。
taf(m)=tai(m)+b(m)÷BitRate[SchedSelIdx]
(C−6)
上式で、b(m)は、復号単位mのビットのサイズであり、タイプI適合ポイントの場合には、VCLNAL単位及びフィラーデータNAL単位(fillerdataNALunits)のビットをカウントし、又はタイプII適合ポイントの場合には、タイプIIビットストリームの全てのビットをカウントする。
[0121]幾つかの例では、SchedSelIdx、BitRate[SchedSelIdx]、及びCpbSize[SchedSelIdx]の値は、次のように制限され得る。
復号単位mを含んでいるアクセス単位のためのアクティブシーケンスパラメータセットのコンテンツと前のアクセス単位とが異なる場合、HSSは、復号単位mを含んでいるアクセス単位のためのアクティブシーケンスパラメータセット中に与えられたSchedSelIdxの値の中から、SchedSelIdxの値SchedSelIdx1を選択し得、その場合、復号単位mを含んでいるアクセス単位のためにBitRate[SchedSelIdx1]又はCpbSize[SchedSelIdx1]を生じる。BitRate[SchedSelIdx1]又はCpbSize[SchedSelIdx1]の値は、前のアクセス単位のために使用されていたSchedSelIdxの値SchedSelIdx0のためのBitRate[SchedSelIdx0]又はCpbSize[SchedSelIdx0]の値とは異なり得る。
そうでない場合、HSSは、SchedSelIdx、BitRate[SchedSelIdx]、及びCpbSize[SchedSelIdx]の前の値で動作し続け得る。
[0122]HSSが前のアクセス単位のBitRate[SchedSelIdx]又はCpbSize[SchedSelIdx]の値とは異なるBitRate[SchedSelIdx]又はCpbSize[SchedSelIdx]の値を選択すると、以下が適用され得る。
変数BitRate[SchedSelIdx]は時間tai(m)に効力を発し得る。
変数CpbSize[SchedSelIdx]は次のように効力を発し得る。
CpbSize[SchedSelIdx]の新しい値が古いCPBサイズを超えた場合、その値は時間tai(m)に効力を発し得る。
そうでない場合、CpbSize[SchedSelIdx]の新しい値は、復号単位mを含んでいるアクセス単位の最後の復号単位のCPB除去時間に効力を発し得る。
[0123]変数SubPicCpbFlagが1に等しくなるとき、アクセス単位nの初期CPB到着時間tai(n)がアクセス単位n中の第1の復号単位の初期CPB到着時間に設定され得、かつアクセス単位nの最終CPB到着時間taf(n)がアクセス単位n中の最後の復号単位の最終CPB到着時間に設定され得る。SubPicCpbFlagが0に等しくなるとき、各復号単位はアクセス単位であり得、従って、アクセス単位nの初期及び最終CPB到着時間は復号単位mの初期及び最終CPB到着時間であり得る。
[0124]以下の説明は、復号単位除去及び復号単位の復号のタイミングについての例を与える。SubPicCpbFlagが0に等しくなる場合、変数CpbRemovalDelay(m)は、復号単位mであるアクセス単位に関連するピクチャタイミングSEIメッセージにおいて指定されているcpb_removal_delayの値に設定され得る。そうでない場合、変数CpbRemovalDelay(m)は、復号単位mを含んでいるアクセス単位に関連するピクチャタイミングSEIメッセージにおいて指定されている復号単位mのdu_cpb_removal_delay[i]の値に設定され得る。
[0125]復号単位mが、mが0に等しい復号単位(HRDを初期化するアクセス単位の第1の復号単位)であるとき、CPBからの復号単位の名目除去時間は次式によって指定され得る。
tr,n(0)=InitCpbRemovalDelay[SchedSelIdx]÷90000 (C−7)
[0126]復号単位mが、HRDを初期化しないバッファリング期間の第1のアクセス単位の第1の復号単位であるとき、CPBからの復号単位の名目除去時間は次式によって指定され得る。
tr,n(m)=tr,n(mb)+tc*CpbRemovalDelay(m) (C−8)
上式で、tr,n(mb)は、前のバッファリング期間の第1の復号単位の名目除去時間である。
[0127]復号単位mがバッファリング期間の第1の復号単位であるとき、mbは、復号単位mの除去時間tr,n(m)にmに等しく設定され得る。
[0128]バッファリング期間の第1の復号単位ではない復号単位mの名目除去時間tr,n(m)は、次式によって与えられ得る。
tr,n(m)=tr,n(mb)+tc*CpbRemovalDelay(m) (C−9)
上式で、tr,n(mb)は、前のバッファリング期間の第1の復号単位の名目除去時間である。
[0129]復号単位mの除去時間は次のように指定され得る。
low_delay_hrd_flagが0に等しくなるか、又はtr,n(m)≧taf(m)である場合、復号単位mの除去時間は次式によって指定され得る。
tr(m)=tr,n(m) (C−10)
そうでない場合(low_delay_hrd_flagが1に等しくり、tr,n(m)<taf(m)である)、復号単位mの除去時間は次式によって指定され得る。
tr(m)=tr,n(m)+tc*Ceil((taf(m)−tr,n(m))÷ tc) (C−11)
後者のケースは、この例では、復号単位mのサイズ、b(m)が非常に大きくて、名目除去時間における除去を阻むことを示している。
[0130]SubPicCpbFlagが1に等しくなるとき、アクセス単位nの名目CPB除去時間tr,n(n)がアクセス単位n中の最後の復号単位の名目CPB除去時間に設定され得、アクセス単位nのCPB除去時間tr(n)がアクセス単位n中の最後の復号単位のCPB除去時間に設定され得る。SubPicCpbFlagが0に等しくなるとき、この例では、各復号単位mはアクセス単位nであり、従って、公称CPB除去時間及びアクセス単位nのCPB除去時間は、公称CPB除去時間及び復号単位mのCPB除去時間である。復号単位mのCPB除去時間に、幾つかの例では、復号単位が瞬時に復号され得る。
[0131]この例では、復号ピクチャバッファ(DPB)は次のように動作し得る。復号ピクチャバッファは、1つ又は複数のピクチャ記憶バッファを含み得る。ピクチャ記憶バッファの各々は、「参照のために使用される」とマーキングされているか、又は将来の出力のために保持された復号ピクチャを含み得る。初期化の前に、DPBは空であり得る(DPBフルネス変数が0に設定され得る)。この例の後続のステップは、リスト化されたシーケンスで起こり得る。
[0132]第1に、ピクチャは、DPBから除去され得る。現在のピクチャの復号の前の(但し、現在のピクチャの第1のスライスのスライスヘッダを構文解析した後の)DPBからのピクチャの除去は、(現在のピクチャを含んでいる)アクセス単位nの第1の復号単位のCPB除去時間に瞬時に起こり得、次のように進み得る。HEVCWD6の8.3.2項において指定されている参照ピクチャセットのための復号プロセスが呼び出され得る。現在のピクチャがIDRピクチャである場合、以下が適用され得る。IDRピクチャが復号される最初のIDRピクチャではなく、アクティブシーケンスパラメータセットから導出されたpic_width_in_luma_samples又はpic_height_in_luma_samples又はmax_dec_pic_bufferingの値が、それぞれ、前のピクチャについてアクティブであったシーケンスパラメータセットから導出されたpic_width_in_luma_samples又はpic_height_in_luma_samples又はmax_dec_pic_bufferingの値とは異なるとき、no_output_of_prior_pics_flag(即ち、前のピクチャフラグの出力なし)は、no_output_of_prior_pics_flagの実際の値にかかわらず、HRDによって1に等しいと推論されるか、又はHRDによってそれ自体の処理のために1に設定され得る。デコーダ実装形態は、pic_width_in_luma_samples又はpic_height_in_luma_samplesの変更に関して、HRDよりも適切にピクチャ又はDPBサイズ変更を処理しようと試み得る。
[0133]no_output_of_prior_pics_flagが、1に等しくなるか又は1に等しくなると推論されるとき、DPB中の全てのピクチャ記憶バッファは、それらが含んでいるピクチャの出力なしに空にされ得、DPBフルネスは0に設定され得る。(no_output_of_prior_pics_flagが1に等しくない値を有する場合に実行され得る更なる処理については、以下で更に説明する。)以下の条件が真である、DPB中の全てのピクチャkがDPBから除去され得る。
ピクチャkが、「参照のために使用されない」とマーキングされている。
ピクチャkが、0に等しいPicOutputFlagを有するか、又はそれのDPB出力時間が、現在のピクチャnの(復号単位mとして示される)第1の復号単位のCPB除去時間以下である、即ち、to,dpb(k)≦tr(m)である。
[0134]ピクチャがDPBから除去されると、DPBフルネスは1だけ減分され得る。ピクチャ出力について、アクセス単位nのCPB除去時間、tr(n)に以下が瞬時に起こり得る。
[0135]ピクチャnは、ピクチャの最後の復号単位が復号された後に復号されると見なされ得る。
[0136]ピクチャnが1に等しいPicOutputFlagを有するとき、それのDPB出力時間to,dpb(n)は次式によって導出され得る。
to,dpb(n)=tr(n)+tc*dpb_output_delay(n) (C−12)
上式で、dpb_output_delay(n)が、アクセス単位nに関連するピクチャタイミングSEIメッセージにおいて指定されているdpb_output_delayの値である。
[0137]現在のピクチャの出力は次のように指定され得る。
PicOutputFlagが、1に等しくなり、to,dpb(n)=tr(n)である場合、現在のピクチャが出力され得る。
そうではなく、PicOutputFlagが0に等しくなる場合、現在のピクチャは、出力され得ず、DPBに記憶され得る。
そうでない場合(PicOutputFlagが1に等しくなり、to,dpb(n)>tr(n)である)、現在のピクチャは、後で出力され得、(本開示によって変更されたHEVCWD6のC.3.3項において指定されているように)DPBに記憶され得、to,dpb(n)に先行する時間に1に等しいno_output_of_prior_pics_flagの復号又は推論によって出力されるべきでないことが示されない限り、時間to,dpb(n)に出力され得る。言い換えれば、前のピクチャの出力なしフラグが1に等しくない場合、現在のピクチャは、DPBに記憶され得、後で、例えば、to,dpb(n)に出力され得る。
[0138]出力時に、ピクチャは、アクティブシーケンスパラメータセットにおいて指定されているクロッピング矩形を使用してクロップされ得る。
[0139]ピクチャnが、出力されるピクチャであり、出力されるビットストリームの最後のピクチャではないとき、DPB出力時間間隔の値Δto,dpb(n)の値は、次式のように定義され得る。
Δto,dpb(n)=to,dpb(nn)−to,dpb(n) (C−13)
上式で、nnは、出力順序でピクチャnの後に続く、1に等しいPicOutputFlagを有するピクチャを示し、従って、DPB出力時間間隔Δto,dpb(n)は、出力順序でピクチャnの後の後続のピクチャのDPB出力時間とピクチャnのDPB出力時間との間の差として定義され得る。
[0140]現在の復号ピクチャのマーキング及び記憶について、アクセス単位nのCPB除去時間、tr(n)に以下が瞬時に実施され得る。現在の復号ピクチャが、空のピクチャ記憶バッファ中のDPBに記憶され得、DPBフルネスが1だけ増分され得る。現在のピクチャは、参照ピクチャである場合、「参照のために使用される」とマーキングされ得、そうでない場合、「参照のために使用されない」とマーキングされ得る。
[0141]DPBの出力順序の動作について、復号ピクチャバッファは、1つ又は複数のピクチャ記憶バッファを含み得る。ピクチャ記憶バッファの各々は、「参照のために使用される」とマーキングされているか、又は将来の出力のために保持された復号ピクチャを含み得る。HRDの初期化前に、CPBは空であり得る。後続のステップは、リストされた順序で起こり得る。
[0142]ピクチャは、次のようにDPBから除去され得る。現在のピクチャの復号の前の(但し、現在のピクチャの第1のスライスのスライスヘッダを構文解析した後の)DPBからのピクチャの除去は、現在のピクチャを含んでいるアクセス単位の第1の復号単位がCPBから除去されるときに瞬時に実施され得、次のように進み得る。
[0143]本開示に従って変更された、HEVCWD6の8.3.4.3項において指定されているように参照ピクチャセットのための復号プロセスは(部分的に上記で説明したように、及び更に次のように説明するように)呼び出され得る。
[0144]現在のピクチャがIDRピクチャである場合、以下が適用され得る。
IDRピクチャが復号される最初のIDRピクチャではなく、アクティブシーケンスパラメータセットから導出されたpic_width_in_luma_samples又はpic_height_in_luma_samples又はmax_dec_pic_bufferingの値が、それぞれ、前のピクチャについてアクティブであったシーケンスパラメータセットから導出されたpic_width_in_luma_samples又はpic_height_in_luma_samples又はmax_dec_pic_bufferingの値とは異なるとき、no_output_of_prior_pics_flagは、no_output_of_prior_pics_flagの実際の値にかかわらず、HRDによって1に等しくなると設定又は推論され得る。デコーダ実装形態は、pic_width_in_luma_samples又はpic_height_in_luma_samples又はmax_dec_pic_bufferingの値の変更をHRDよりも適切に処理しようと試み得る。
no_output_of_prior_pics_flagが、1に等しくなるか又は1に等しくなると推論されるとき、DPB中の全てのピクチャ記憶バッファは、それらが含んでいるピクチャの出力なしに空にされ得る。
そうでない場合、「出力のために必要とされない」及び「参照のために使用されない」とマーキングされているピクチャを含んでいるピクチャ記憶バッファが(出力なしに)空にされ得る。
[0145]以下の条件のいずれかが真であるとき、本開示によって変更されたHEVCWD6のC.5.2.1項において指定されている「バンピング(bumping)」プロセスが、現在の復号ピクチャを記憶するために空のピクチャ記憶バッファがあるまで、繰り返し呼び出され得る。
「出力のために必要とされる」とマーキングされているDPB中のピクチャの数が、現在の時間レイヤにおける並べ替えピクチャの数、即ち、num_reorder_pics[temporal_id]よりも大きい、又は
現在のピクチャの時間レイヤ識別子値、temporal_id以下の時間レイヤ識別子値temporal_idをもつDPB中のピクチャの数が、現在の時間レイヤの最大ピクチャバッファリング値+1、即ち、max_dec_pic_buffering[temporal_id]+1に等しくなる、又は
現在のピクチャは、前のピクチャの出力なしフラグ、no_output_of_prior_pics_flagが1に等しくない値を有し、1に等しいと推論されないIDRピクチャである。
[0146]以下のステップが実行され得る。「出力のために必要とされない」及び「参照のために使用されない」とマーキングされているピクチャを含んでいるピクチャ記憶バッファが(出力なしに)空にされ得、DPB中の全ての空でないピクチャ記憶バッファが、以下で指定する「バンピング」プロセスを繰り返し呼び出すことによって空にされ得る。
[0147]従って、「バンピング」プロセスは、以下の場合のいずれかに呼び出され得る。
現在のピクチャが、IDRピクチャであり、no_output_of_prior_pics_flagが、本開示によって変更されたHEVCWD6のC.5.2項において指定されているように、1に等しくなく、1に等しくなるように設定又は推論されない、又は
「出力のために必要とされる」とマーキングされているDPB中のピクチャの数が、本開示によって変更されたHEVCWD6のC.5.2項において指定されているように、現在の時間レイヤにおける並べ替えピクチャの数、即ち、num_reorder_pics[temporal_id]よりも大きい、又は
現在のピクチャの時間レイヤ識別子値、temporal_id以下のtemporal_idをもつDPB中のピクチャの数が、本開示によって変更されたHEVCWD6のC.5.2項において指定されているように、現在の時間レイヤの最大ピクチャバッファリング値+1、即ち、max_dec_pic_buffering[temporal_id]+1に等しくなる。
[0148]「バンピング」プロセスは、以下の順序付きステップを含み得る。
1.最初に出力のためのピクチャが、「出力のために必要とされる」とマーキングされているDPB中の全てのピクチャのうちPicOrderCntValの最小値を有するピクチャとして選択され得る。
2.ピクチャが、ピクチャのためのアクティブシーケンスパラメータセットにおいて指定されるクロッピング矩形を使用してクロップされ、クロップされたピクチャが出力され得、ピクチャが、「出力のために必要とされない」とマーキングされ得る。
3.クロップされ、出力されたピクチャを含んだピクチャ記憶バッファが「参照のために使用されない」とマーキングされているピクチャを含んでいる場合、ピクチャ記憶バッファは空にされ得る。
[0149]現在のピクチャを含んでいるアクセス単位nの最後の復号単位がCPBから除去されると、ピクチャ復号、マーキング、及び記憶のために以下が瞬時に起こり得る。
[0150]現在のピクチャは、ピクチャの最後の復号単位が復号された後に復号されると見なされ得る。現在の復号ピクチャは、DPB中の空のピクチャ記憶バッファに記憶され得、以下が適用され得る。
現在の復号ピクチャは、1に等しいPicOutputFlagを有する場合、「出力のために必要とされる」とマーキングされ得る。
そうでない場合(現在の復号ピクチャが0に等しいPicOutputFlagを有する)、現在の復号ピクチャは、「出力のために必要とされない」とマーキングされ得る。
[0151]現在の復号ピクチャは、参照ピクチャである場合、「参照のために使用される」とマーキングされ得、そうでない場合(現在の復号ピクチャが非参照ピクチャである)、「参照のために使用されない」とマーキングされ得る。
[0152]従って、バンピングプロセスは、DPB中のピクチャのうち最も小さいピクチャ順序カウント(POC)値を有し、選択されたピクチャとして出力のために必要とされるとマーキングされているピクチャを選択することと、選択されたピクチャのためのアクティブシーケンスパラメータセットにおいて指定されているように選択されたピクチャをクロップし、それによって選択されたピクチャに基づいてクロップピクチャを生成することと、クロップピクチャを出力することと、選択されたピクチャを出力のために必要とされないとマーキングすることとを含み得る。
[0153]以下で定義するセマンティクスを使用して、CPB挙動モードを信号伝達するためにシンタックス要素が使用され得る。VUIパラメータのシンタックス及びセマンティクスは、以下の表3に示すように変更され得る(既存のシンタックス要素のセマンティクスは、この例では、HEVCWD6に関係して変更されない)。
[0154]表3の例では、VUIパラメータは、従来のHEVCに関係する追加フラグsub_pic_cpb_params_present_flagを含む。このフラグについてのセマンティクスは、次のように定義され得る。1に等しいsub_pic_cpb_params_present_flagは、サブピクチャレベルCPB除去遅延パラメータが存在し、CPBがアクセス単位レベル又はサブピクチャレベルで動作し得ることを指定し得る。0に等しい変数sub_pic_cpb_flagは、サブピクチャレベルCPB除去遅延パラメータが存在せず、CPBがアクセス単位レベルで動作しなければならないことを指定し得る。sub_pic_cpb_params_present_flagが存在しないとき、それの値は、0に等しくなると設定又は推論され得る。
[0155]以下で説明するセマンティクスを使用して、復号単位のCPB除去時間を信号伝達するためにもシンタックス要素が使用され得る。この例では、シンタックス要素は、例えば、表4の例に従って、バッファリング期間SEIメッセージ中で信号伝達され得る。
[0156]表4の例では、バッファリング期間SEIメッセージは、従来のHEVCに関係する追加条件文を含み、その追加条件文は、sub_pic_cpb_flagが真であるとき、initial_du_cpb_removal_delay[SchedSelIdx]及びinitial_du_cpb_removal_delay_offset[SchedSelIdx]の2つのシンタックス要素が追加されることを更に含む。この条件文及び追加シンタックス要素は、NalHrdBpPresentFlagが真であるとき及び/又はVclHardBpPresentFlagが真であるときの条件文のいずれか又は両方内に追加され得る。
[0157]表5に、サブピクチャレベルCPB動作のための初期CPB除去遅延及び初期CPB除去遅延オフセットを信号伝達するように異なるSEIメッセージが定義される代替例を与える。
[0158]上記の表4の例では、NalHrdBpPresentFlag又はVclHrdBpPresentFlagが1に等しくなるとき、バッファリング期間SEIメッセージは、ビットストリーム中の任意のアクセス単位に関連付けられ得、バッファリング期間SEIメッセージは、各IDRアクセス単位、各CRAアクセス単位、及び回復点SEIメッセージに関連する各アクセス単位に関連付けられ得る。適用例によっては、バッファリング期間SEIメッセージの頻繁な存在が望ましいことがある。幾つかの例では、バッファリング期間は、復号順序でバッファリング期間SEIメッセージの2つのインスタンスの間にアクセス単位のセットとして指定され得る。
[0159]上記の表4及び表5の例では、変数seq_parameter_set_idは、シーケンスHRD属性を含んでいるシーケンスパラメータセットを指定し得る。seq_parameter_set_idの値は、バッファリング期間SEIメッセージに関連する1次コード化ピクチャによって参照されるピクチャパラメータセット中のseq_parameter_set_idの値に等しくなり得る。幾つかの例では、seq_parameter_set_idの値は、両端値を含む0〜31の範囲内にあり得る。
[0160]上記の表4の例では、initial_cpb_removal_delay[SchedSelIdx]は、HRD初期化後の第1のバッファリング期間の間の、バッファリング期間SEIメッセージに関連するアクセス単位に関連するコード化データの第1のビットのCPBへの到着時間と、同じアクセス単位に関連するコード化データのCPBからの除去時間との間のSchedSelIdx番目のCPBの遅延を指定し得る。このシンタックス要素は、initial_cpb_removal_delay_length_minus1+1によって与えられるビットの長さを有し得る。これは、この例では、90kHzクロックの単位であり得る。シンタックス要素initial_cpb_removal_delay[SchedSelIdx]は、この例では、「0」に等しくなり得ず、この例では、90kHzクロック単位でCPBサイズに相当する時間である90000×(CpbSize[SchedSelIdx]・BitRate[SchedSelIdx])を超え得ない。
[0161]上記の表4の例では、CPBへのコード化アクセス単位の初期配信時間を指定するためにcpb_removal_delayと組み合わせてSchedSelIdx番目のCPBのためにシンタックス要素initial_cpb_removal_delay_offset[SchedSelIdx]が使用され得る。シンタックス要素initial_cpb_removal_delay_offset[SchedSelIdx]は、この例では、90kHzクロックの単位であり得る。initial_cpb_removal_delay_offset[SchedSelIdx]シンタックス要素は、ビットの長さがinitial_cpb_removal_delay_length_minus1+1によって与えられる固定長コードであり得る。このシンタックス要素は、デコーダによって使用され得ず、HEVCWD6の付属書類Cにおいて指定されている配信スケジューラ(HSS)のためにのみ必要とされ得る。コード化ビデオシーケンス全体にわたって、initial_cpb_removal_delay[SchedSelIdx]とinitial_cpb_removal_delay_offset[SchedSelIdx]との和は、SchedSelIdxの値ごとに一定であり得る。
[0162]上記の表4及び表5の例では、シンタックス要素initial_du_cpb_removal_delay[SchedSelIdx]は、HRD初期化後の第1のバッファリング期間の間の、バッファリング期間SEIメッセージに関連するアクセス単位中の第1の復号単位に関連するコード化データの第1のビットのCPBへの到着時間と、同じ復号単位に関連するコード化データのCPBからの除去時間との間のSchedSelIdx番目のCPBの遅延を指定し得る。このシンタックス要素は、initial_cpb_removal_delay_length_minus1+1によって与えられるビットの長さを有し得る。このシンタックス要素は、この例では、90kHzクロックの単位であり得る。この例では、シンタックス要素initial_du_cpb_removal_delay[SchedSelIdx]は「0」に等しくなり得ず、90kHzクロック単位でCPBサイズに相当する時間である90000×(CpbSize[SchedSelIdx]÷BitRate[SchedSelIdx])を超え得ない。
[0163]上記の表4及び表5の例では、CPBへの復号単位の初期配信時間を指定するためにcpb_removal_delayと組み合わせてSchedSelIdx番目のCPBのためにシンタックス要素initial_du_cpb_removal_delay_offset[SchedSelIdx]が使用され得る。シンタックス要素initial_cpb_removal_delay_offset[SchedSelIdx]は、この例では、90kHzクロックの単位であり得る。initial_du_cpb_removal_delay_offset[SchedSelIdx]シンタックス要素は、ビットの長さがinitial_cpb_removal_delay_length_minus1+1によって与えられる固定長コードであり得る。このシンタックス要素は、デコーダによって使用され得ず、この例では、HEVCWD6の付属書類Cにおいて指定されている配信スケジューラ(HSS)のためにのみ必要とされ得る。
[0164]コード化ビデオシーケンス全体にわたって、initial_du_cpb_removal_delay[SchedSelIdx]とinitial_du_cpb_removal_delay_offset[SchedSelIdx]との和は、SchedSelIdxの値ごとに一定であり得る。
[0165]以下の表6に、例示的なピクチャタイミングSEIメッセージシンタックスを与える。
[0166]この例では、ピクチャタイミングSEIメッセージは、sub_pic_cpb_flagのための追加条件文を含み、その追加条件文は、真のとき、num_decoding_units_minus1シンタックス要素と、復号単位の各々のために、対応するnumb_nalus_in_du_minus1とdu_cpb_removal_delayとを信号伝達するforループとを信号伝達する。代替的に、各復号単位へのNAL単位のマッピングは、他の手段を使用して、例えば、各VCLNAL単位のための復号単位IDを、例えば、NAL単位ヘッダ、スライスヘッダ、又は新しいSEIメッセージ中に含めることによって信号伝達され得る。各非VCLNAL単位のための復号IDは、関連するVCLNAL単位と同じであり得る。
[0167]表6の例でのピクチャタイミングSEIメッセージのシンタックスは、ピクチャタイミングSEIメッセージに関連するコード化ピクチャについてアクティブであるシーケンスパラメータセットのコンテンツに依存し得る。但し、IDRアクセス単位のピクチャタイミングSEIメッセージが、同じアクセス単位内のバッファリング期間SEIメッセージによって先行されない限り、関連するシーケンスパラメータセットのアクティブ化(及び、ビットストリーム中の第1のピクチャでないIDRピクチャの場合、コード化ピクチャがIDRピクチャであるという決定)は、コード化ピクチャの第1のコード化スライスNAL単位の復号まで行われないことがある。コード化ピクチャのコード化スライスNAL単位がNAL単位順序でピクチャタイミングSEIメッセージに続き得るので、デコーダが、コード化ピクチャについてアクティブになるであろうシーケンスパラメータのパラメータを決定するまで、ピクチャタイミングSEIメッセージを含んでいるRBSPを記憶し、次いで、ピクチャタイミングSEIメッセージのパースを実行する場合があり得る。
[0168]ビットストリーム中の表6の例ごとのピクチャタイミングSEIメッセージの存在は、次のように指定され得る。
CpbDpbDelaysPresentFlagが1に等しくなる場合、ピクチャタイミングSEIメッセージは、コード化ビデオシーケンスのあらゆるアクセス単位中にも存在し得る。
そうでない場合(CpbDpbDelaysPresentFlagが0に等しくなる)、ピクチャタイミングSEIメッセージは、コード化ビデオシーケンスのどのアクセス単位中にも存在する必要はない。
[0169]変数cpb_removal_delayは、前のアクセス単位中の直近のバッファリング期間SEIメッセージに関連するアクセス単位のCPBからの除去の後、ピクチャタイミングSEIメッセージに関連するアクセス単位データをバッファから除去する前に、何個のクロックティック(HEVCWD6のE.2.1項を参照)を待つべきかを指定し得る。この値は、HEVCWD6の付属書類Cにおいて指定されているように、HSSのためのCPBへのアクセス単位データのできるだけ早い到着時間を計算するためにも使用され得る。そのシンタックス要素は、ビットの長さがcpb_removal_delay_length_minus1+1によって与えられる固定長コードであり得る。cpb_removal_delayは、モジュロ2(cpb_removal_delay_length_minus1+1)カウンタの剰余であり得る。シンタックス要素cpb_removal_delayの(ビットでの)長さを決定するcpb_removal_delay_length_minus1の値は、ピクチャタイミングSEIメッセージに関連する1次コード化ピクチャについてアクティブであるシーケンスパラメータセット中にコード化されるcpb_removal_delay_length_minus1の値であり得る。しかしながら、cpb_removal_delayは、異なるコード化ビデオシーケンスのアクセス単位であり得る、バッファリング期間SEIメッセージを含んでいる前のアクセス単位の除去時間に関係するクロックティックの数を指定し得る。
[0170]変数dpb_output_delayは、ピクチャのDPB出力時間を計算するために使用され得る。この変数は、CPBからのアクセス単位中の最後の復号単位の除去の後、復号ピクチャがDPBから出力される前に、何個のクロックティックを待つべきかを指定し得る(HEVCWD6のC.2項を参照)。ピクチャは、この例では、「短期参照のために使用される」又は「長期参照のために使用される」と依然としてマーキングされているとき、それの出力時間にDPBから除去され得ない。この例では、復号ピクチャにただ1つのdpb_output_delay変数が指定され得る。
[0171]シンタックス要素dpb_output_delayの長さは、dpb_output_delay_length_minus1+1によってビットで与えられ得る。max_dec_pic_buffering[max_temporal_layers_minus1]が0に等しくなるとき、dpb_output_delayはまた0に等しくなり得る。
[0172]本開示によって変更されたHEVCWD6のC.2項において指定されているように、出力タイミング適合デコーダから出力される任意のピクチャのdpb_output_delayから導出される出力時間は、復号順序で任意の後続のコード化ビデオシーケンス中の全てのピクチャのdpb_output_delayから導出される出力時間に先行し得る。
[0173]このシンタックス要素の値によって確立されるピクチャ出力順序は、HEVCWD6のC.5項によって指定されるように、PicOrderCnt()の値によって確立される順序と同じ順序であり得る。
[0174]1に等しいか、又は1に等しくなると設定もしくは推論されるno_output_of_prior_pics_flagをもつIDRピクチャに復号順序で先行するので本開示によって変更されたHEVCWD6のC.5項の「バンピング」プロセスによって出力されないピクチャについて、dpb_output_delayから導出される出力時間は、同じコード化ビデオシーケンス内の全てのピクチャに関係するPicOrderCnt()の値の増加とともに増加し得る。
[0175]変数num_decoding_units_minus1+1は、ピクチャタイミングSEIメッセージが関連するアクセス単位中の復号単位の数を指定し得る。num_decoding_units_minus1の値は、例えば、両端値を含む0〜Xの範囲内にあり得る。
[0176]変数num_nalus_in_du_minus1[i]+1は、ピクチャタイミングSEIメッセージが関連するアクセス単位のi番目の復号単位中のNAL単位の数を指定し得る。num_nalus_in_du_minus1[i]の値は、例えば、両端値を含む0〜Xの範囲内にあり得る。
[0177]アクセス単位の第1の復号単位は、アクセス単位中の復号順序で第1のnum_nalus_in_du_minus1〔0〕+1連続NAL単位を含み得る。アクセス単位のi番目(iは0よりも大きい)の復号単位は、復号順序でアクセス単位の前の復号単位中の最後のNAL単位の直後にくるnum_nalus_in_du_minus1[i]+1連続NAL単位を含み得る。例えば、各復号単位中に少なくとも1つのVCLNAL単位があり得る。
[0178]変数du_cpb_removal_delay[i]は、前のアクセス単位中の直近のバッファリング期間SEIメッセージに関連するアクセス単位中の第1の復号単位のCPBからの除去の後、ピクチャタイミングSEIメッセージに関連するアクセス単位中のi番目の復号単位をCPBから除去する前に、何個のクロックティック(HEVCWD6のE.2.1項を参照)を待つべきかを指定し得る。この値は、HEVCWD6の付属書類Cにおいて指定されているように、HSSのためのCPBへの復号単位データのできるだけ早い到着時間を計算するためにも使用され得る。そのシンタックス要素は、ビットの長さがcpb_removal_delay_length_minus1+1によって与えられ得る固定長コードであり得る。du_cpb_removal_delay[i]は、モジュロ2(cpb_removal_delay_length_minus1+1)カウンタの剰余であり得る。シンタックス要素du_cpb_removal_delay[i]の(ビットでの)長さを決定するcpb_removal_delay_length_minus1の値は、ピクチャタイミングSEIメッセージに関連するコード化ピクチャについてアクティブであるシーケンスパラメータセット中にコード化されるcpb_removal_delay_length_minus1の値であり得る。しかしながら、du_cpb_removal_delay[i]は、異なるコード化ビデオシーケンスのアクセス単位であり得る、バッファリング期間SEIメッセージを含んでいる前のアクセス単位中の第1の復号単位の除去時間に関係するクロックティックの数を指定する。
[0179]図2は、本開示で説明するように、他の機能のなかでも、ピクチャバッファ中にビデオデータの1つ又は複数の復号単位を記憶することと、1つ又は複数の復号単位のための個別のバッファ除去時間を取得することと、復号単位の各々のための取得されたバッファ除去時間に従ってピクチャバッファから復号単位を除去することと、除去された復号単位に対応するビデオデータをコード化することとに関連する技法を実装し得るビデオエンコーダ20の一例を示すブロック図である。ビデオエンコーダ20は、コード化単位(CU)、又はCUのサブCUを含む、ビデオフレーム内のブロックのイントラコード化及びインターコード化を実行し得る。イントラコード化は、所与のビデオフレーム内のビデオの空間的冗長性を低減又は除去するために空間的予測に依拠する。インターコード化は、ビデオシーケンスの隣接フレーム内のビデオの時間的冗長性を低減又は除去するために時間的予測に依拠する。イントラモード(Iモード)は、幾つかの空間ベースの圧縮モードのいずれかを指すことがあり、単方向予測(Pモード)又は双方向予測(Bモード)などのインターモードは、幾つかの時間ベースの圧縮モードのいずれかを指すことがある。図2にはインターモード符号化のための幾つかの構成要素が示されているが、ビデオエンコーダ20はイントラ予測単位46などのイントラモード符号化のための構成要素を更に含み得ることを理解されたい。簡潔及び明快のために、更に含まれ得る追加構成要素は図2に示していない。
[0180]図2に示すように、ビデオエンコーダ20は、符号化されるべきビデオフレーム内の現在のビデオブロックを含むビデオブロックを受信する。図2の例では、ビデオエンコーダ20は、動き補償ユニット44と、動き推定ユニット42と、参照ピクチャメモリ64と、加算器50と、変換ユニット52と、量子化ユニット54と、エントロピー符号化ユニット56と、バッファ90と、コード化ピクチャバッファ92とを含む。ビデオブロック再構成のために、ビデオエンコーダ20はまた、逆量子化ユニット58と、逆変換単位60と、加算器62とを含む。
[0181]符号化プロセス中に、ビデオエンコーダ20は、コード化されるべきビデオフレーム又はスライスを受信する。フレーム又はスライスは、複数のビデオブロックに分割され得る。動き推定ユニット42及び動き補償ユニット44は、時間圧縮を行うために、1つ又は複数の参照フレーム中の1つ又は複数のブロックに対して受信したビデオブロックのインター予測コード化を実行する。イントラ予測単位46はまた、空間圧縮を行うために、コード化されるべきブロックと同じフレーム又はスライス中の1つ又は複数の隣接ブロックに対して受信したビデオブロックのイントラ予測コード化を実行し得る。
[0182]モード選択ユニット40は、例えば、誤差結果に基づいてコード化モード、即ち、イントラ又はインターのうちの1つを選択し得、残差ブロックデータを生成するために、得られたイントラコード化ブロック又はインターコード化ブロックを加算器50に与え、かつ参照フレームとして使用するための符号化ブロックを再構成するために、得られたイントラコード化ブロック又はインターコード化ブロックを加算器62に与え得る。
[0183]動き推定ユニット42及び動き補償ユニット44は、高度に統合され得るが、概念的な目的のために別々に示してある。動き推定は、ビデオブロックの動きを推定する動きベクトルを生成するプロセスである。動きベクトルは、例えば、現在フレーム(又は、他のコード化単位)内でコード化されている現在ブロックに対する予測参照フレーム(又は、他のコード化単位)内の予測ブロックの変位を示し得る。予測ブロックは、絶対値差分和(SAD:sumofabsolutedifference)、2乗差分和(SSD:sumofsquaredifference)、又は他の差分メトリックによって決定され得る画素差分に関して、コード化されるべきブロックにぴったり一致することがわかるブロックである。動きベクトルはまた、マクロブロックの区分の変位を示し得る。動き補償は、動き推定によって決定された動きベクトルに基づいて予測ブロックをフェッチ又は生成することを伴い得る。述べたように、幾つかの例では、動き推定ユニット42及び動き補償ユニット44は機能的に統合され得る。
[0184]インターコード化の場合、動き推定ユニット42は、ビデオブロックを参照ピクチャメモリ64中の参照フレームのビデオブロックと比較することによってインターコード化フレームのビデオブロックの動きベクトルを計算する。動き補償ユニット44はまた、参照フレーム、例えば、Iフレーム又はPフレームのサブ整数画素を補間し得る。一例として、動きベクトルは、符号化されている現在フレームよりも前の表示順序を有する参照フレームを含むリスト0、及び符号化されている現在フレームよりも後の表示順序を有する参照フレームを含むリスト1という、参照フレームの2つのリストから予測され得る。従って、参照ピクチャメモリ64に記憶されたデータは、参照フレームのこれらの2つのリストに従って編成され得る。
[0185]動き推定ユニット42は、参照ピクチャメモリ64からの1つ又は複数の参照フレームのブロックを現在のフレーム、例えば、Pフレーム又はBフレームの符号化されるべきブロックと比較する。参照ピクチャメモリ64中の参照フレームがサブ整数画素の値を含むとき、動き推定ユニット42によって計算される動きベクトルは参照フレームのサブ整数画素位置を参照し得る。動き推定ユニット42及び/又は動き補償ユニット44はまた、サブ整数画素位置の値が参照ピクチャメモリ64に記憶されていない場合、参照ピクチャメモリ64に記憶された参照フレームのサブ整数画素位置の値を計算するように構成され得る。動き推定ユニット42は、計算された動きベクトルをエントロピー符号化ユニット56と動き補償ユニット44とに送る。動きベクトルによって識別される参照フレームブロックは予測ブロックと呼ばれることがある。
[0186]動き補償ユニット44は、予測ブロックに基づいて予測データを計算し得る。ビデオエンコーダ20は、コード化されている元のビデオブロックから、動き補償ユニット44によって与えられた予測データを減算することによって残差ビデオブロックを形成する。加算器50は、この減算演算を実行する1つ又は複数の構成要素を表す。変換ユニット52は、離散コサイン変換(DCT)又は概念的に同様の変換などの変換を残差ブロックに適用し、残差変換係数値を備えるビデオブロックを生成する。変換ユニット52は、概念的にDCTと同様である、H.264規格によって定義される変換など、他の変換を実行し得る。他の例として、変換ユニット52は、ウェーブレット変換、整数変換、サブバンド変換、又は他のタイプの変換を実行し得る。変換ユニット52は、変換を残差ブロックに適用して、残差変換係数のブロックを生成する。変換は、残差情報を画素値領域から周波数領域などの変換領域に変換し得る。量子化ユニット54は、ビットレートを更に低減するために残差変換係数を量子化する。量子化プロセスは、係数の一部又は全部に関連するビット深さを低減し得る。量子化の程度は、量子化パラメータを調整することによって変更され得る。
[0187]量子化の後、エントロピー符号化ユニット56は、量子化変換係数をエントロピーコード化する。例えば、エントロピー符号化ユニット56は、コンテンツ適応型可変長コード化(CAVLC)、コンテキスト適応型バイナリ算術コード化(CABAC)、確率間隔区分エントロピーコード化(PIPE)、又は別のエントロピーコード化技法を実行し得る。エントロピー符号化ユニット56によるエントロピーコード化の後に、符号化ビデオデータは、多少の時間、コード化ピクチャバッファ92にバッファ又は記憶され、別の機器に送信され、及び/又は後で送信するかもしくは取り出すためにアーカイブされ得る。コンテキスト適応型バイナリ算術コード化の場合、コンテキストは近傍マクロブロックに基づき得る。
[0188]場合によっては、エントロピー符号化ユニット56又はビデオエンコーダ20の別のユニットは、エントロピーコード化に加えて他のコード化機能を実行するように構成され得る。例えば、エントロピー符号化ユニット56は、マクロブロック及び区分のコード化ブロックパターン(CBP)値を決定するように構成され得る。また、場合によっては、エントロピー符号化ユニット56は、最大コード化単位(LCU)又はLCUのサブCU中の係数のランレングスコード化を実行し得る。特に、エントロピー符号化ユニット56は、LCU又は区分中の変換係数を走査するためにジグザグ走査又は他の走査パターンを適用し、更なる圧縮のためにゼロのランを符号化し得る。ビデオエンコーダ20のエントロピー符号化ユニット56及び/又は他の要素はまた、符号化ビデオデータから復号単位を形成し得る。復号単位は、例えば、一連のツリーブロック、1つ又は複数のスライス、1つ又は複数の波、及び/又は1つ又は複数のタイルなどのサブピクチャであり得る。ビデオエンコーダ20のエントロピー符号化ユニット56及び/又は他の要素はまた、バイトアラインメントを達成するために、サイズが異なるサブピクチャについてのパディングデータを追加し得る。エントロピー符号化ユニット56はまた、符号化ビデオビットストリーム中での送信のために適切なシンタックス要素を用いてヘッダ情報を構成し得る。例えば、ヘッダ情報は、復号単位がアクセス単位であるのか、又はサブアクセス単位であるかを示す信号伝達データを含み得る。これは、HRDパラメータ中で信号伝達されるサブピクチャコード化ピクチャバッファ選好フラグの値を信号伝達することを含み得る。ビデオエンコーダ20のエントロピー符号化ユニット56及び/又は他の要素はまた、例えば、バッファリング期間SEIメッセージ、信号伝達VUIパラメータ、様々なサブピクチャのためのエントリポイントを示す信号伝達データ、及び/又は復号単位のためのバッファ除去時間などのシンタックス要素を追加し得る。
[0189]逆量子化ユニット58及び逆変換単位60は、それぞれ逆量子化及び逆変換を適用して、例えば、参照ブロックとして後で使用するために、画素領域中で残差ブロックを再構成する。動き補償ユニット44は、残差ブロックを参照ピクチャメモリ64のフレームのうちの1つの予測ブロックに加算することによって参照ブロックを計算し得る。動き補償ユニット44はまた、再構成された残差ブロックに1つ又は複数の補間フィルタを適用して、動き推定において使用するためのサブ整数画素値を計算し得る。加算器62は、再構成された残差ブロックを、動き補償ユニット44によって生成された動き補償予測ブロックに加算して、参照ピクチャメモリ64に記憶するための再構成されたビデオブロックを生成する。再構成されたビデオブロックは、後続のビデオフレーム中のブロックをインターコード化するために動き推定ユニット42及び動き補償ユニット44によって参照ブロックとして使用され得る。
[0190]参照ピクチャメモリ64は、バッファ90を含み得る。バッファ90は、同期ダイナミックランダムアクセスメモリ(SDRAM)、埋込みダイナミックランダムアクセスメモリ(eDRAM)、又はスタティックランダムアクセスメモリ(SRAM)など、データを記憶することが可能な任意のパーマネント又は揮発性メモリなどのデータ記憶装置であるか、又はそれを含むか、又はそれに含まれ得る。バッファ90は、ピクチャバッファ及び/又は復号ピクチャバッファを含み得、本開示で説明する例示的なコード化ピクチャバッファ及び/又は復号ピクチャバッファ挙動の任意の組合せに従って動作し得る。例えば、ビデオエンコーダ20は、本開示の技法に従って、バッファ90を使用した復号ブロックパターン(DPB)管理及び/又はコード化ピクチャバッファ92のコード化ブロックパターン(CPB)管理を実行し得る。
[0191]コード化ピクチャバッファ92は、同期ダイナミックランダムアクセスメモリ(SDRAM)、埋込みダイナミックランダムアクセスメモリ(eDRAM)、又はスタティックランダムアクセスメモリ(SRAM)など、データを記憶することが可能な任意のパーマネント又は揮発性メモリなどのデータ記憶装置であるか、又はそれを含むか、又はそれに含まれ得る。ビデオエンコーダ20の一部を形成するものとして示されているが、幾つかの例では、コード化ピクチャバッファ92は、ビデオエンコーダ20の外部の機器、ユニット、又はモジュールの一部を形成し得る。例えば、コード化ピクチャバッファ92は、ビデオエンコーダ20の外部のストリームスケジューラユニット(又は配信スケジューラ又は仮定ストリームスケジューラ(HSS))の一部を形成し得る。ビデオエンコーダ20は、符号化ビデオデータから復号単位を形成し、復号単位をストリームスケジューラユニットに与え得る。ビデオエンコーダ20は、幾つかの例では、ビット数が変動するか、又はブロック数が変動する復号単位を形成し得る。ストリームスケジューラユニットは、取得された(例えば、信号伝達された)バッファ除去時間によって示され得る時間に復号するためのビデオデコーダに、一連のツリーブロック、1つ又は複数のスライス、1つ又は複数の波、及び/又は1つ又は複数のタイルなどのサブピクチャを含む復号単位を送るために本開示の技法を実装し得る。ビデオエンコーダ20は、幾つかの例では、それぞれが復号順序で連続的に構成された幾つかのコード化ブロックを含むように復号単位を形成し得る。ストリームスケジューラユニットは、更に、復号単位を含む1つ又は複数のネットワークアブストラクションレイヤ(NAL)単位を抽出するためにアクセス単位をカプセル化解除し得る。同様に、ストリームスケジューラユニットは、復号単位を抽出するためにNAL単位をカプセル化解除し得る。
[0192]ビデオエンコーダ20は、本開示の技法によって変更される仮定参照デコーダ(HRD)挙動に従ってコード化ピクチャバッファ92にアクセス単位を記憶し、かつそれからアクセス単位を除去し得る。ビデオエンコーダ20は、例えば、初期CPB除去遅延、CPBサイズ、ビットレート、初期DPB出力遅延、及びDPBサイズならびに復号単位のためのバッファ除去時間、及びビデオデータの復号単位がアクセス単位であるのか、又はアクセス単位のサブセットであるのかを信号伝達するためのサブピクチャコード化ピクチャバッファ選好フラグの値を含むHRDパラメータを適用し得る。ビデオエンコーダ20は、バッファリング期間と復号単位のためのバッファ除去時間とを信号伝達するアクセス単位中のSEIメッセージを形成し得る。例えば、ビデオエンコーダ20は、上記の表1の例などで、サブピクチャCPBフラグを含むシンタックスをもつビデオユーザビリティ情報(VUI)パラメータを与え得る。
[0193]復号単位は、共通ピクチャのサブピクチャを含み得、ビデオエンコーダ20は、アクセス単位のためのSEIメッセージ中の共通ピクチャのサブピクチャの各々のためのバッファ除去時間を含み得る。異なるサブピクチャは、幾つかのサブピクチャを異なるビット数又はブロック数で符号化して、異なるデータの量で符号化され得、ビデオエンコーダ20は、共通ピクチャのサブピクチャの各々のための対応する個別のバッファ除去時間を形成し得る。ビデオエンコーダ20はまた、同じデータサイズのサブピクチャをもつ幾つかのピクチャを符号化し得る。他の構成要素はまた、ビデオエンコーダ20に対して上記で説明した機能のうちの1つ又は複数を実行し得る。例えば、(図1の発信源機器12などの)発信源機器のカプセル化ユニットはまた、上記のパラメータのいずれかを含むSEIメッセージを形成し得る。
[0194]従って、ビデオエンコーダ20は、各サブピクチャが、復号順序で連続するコード化ピクチャの幾つかのコード化ブロックを含み得ることを与え得、従って、コード化ブロックは、ツリーブロック又はツリーブロックのサブセットと同じであり得る。ビデオエンコーダ20は、1つのピクチャ中の各サブピクチャ(即ち、ツリーブロックグループ)が同じビット量でコード化されることを必要とすることなしにサブピクチャのコード化及びピクチャ中の異なるサブピクチャへのビットの割当てが実行され得ることを与え得る。ビデオエンコーダ20は、CPB除去時間が、信号伝達されたピクチャレベルのCPB除去時間に従って導出されるのではなく、ビットストリーム中で各サブピクチャのCPB除去時間を信号伝達し得る。ビデオエンコーダ20はまた、スライス中に2つ以上のサブピクチャを含み、各サブピクチャの終わりにバイトアラインメントを適用し得る。ビデオエンコーダ20はまた、例えば、スライス、タイル、又はフレームなど、ビデオデータのより大きいセット内のサブピクチャのうちの少なくとも1つのバイトアラインメントを示す値をもつ各サブピクチャのエントリポイントを信号伝達し得る。ビデオエンコーダ20は、本開示による異なる例でこれらの特徴のうちの任意の1つ又は複数を適用し得る。
[0195]図2中の参照ピクチャメモリ64、バッファ90、及びコード化ピクチャバッファ92について示した位置は説明のためのものである。参照ピクチャメモリ64、バッファ90、及びコード化ピクチャバッファ92は、単一の記憶装置中又は任意の数の別個の記憶装置中に位置し得る。記憶装置は、揮発性及び/又は不揮発性コンピュータ可読媒体の任意の組合せを含み得る。
[0196]このようにして、ビデオエンコーダ20は、他の機能のなかでも、ピクチャバッファ中にビデオデータの1つ又は複数の復号単位を記憶することと、1つ又は複数の復号単位のための個別のバッファ除去時間を取得することと、復号単位の各々のための取得されたバッファ除去時間に従ってピクチャバッファから復号単位を除去することと、除去された復号単位に対応するビデオデータをコード化することとを行うように構成されたビデオコーダの一例を表すものである。
[0197]図3は、符号化ビデオシーケンスを復号するビデオデコーダ30の一例を示すブロック図である。図3の例では、ビデオデコーダ30は、エントロピー復号ユニット70と、動き補償ユニット72と、イントラ予測単位74と、逆量子化ユニット76と、逆変換単位78と、参照ピクチャメモリ82と、加算器80と、コード化ピクチャバッファ94と、バッファ96とを含む。ビデオデコーダ30は、幾つかの例では、ビデオエンコーダ20(図2)に関して説明した符号化パスとは概して逆の復号パスを実行し得る。動き補償ユニット72は、エントロピー復号ユニット70から受信した動きベクトルに基づいて予測データを生成し得る。
[0198]動き補償ユニット72は、ビットストリーム中で受信した動きベクトルを使用して、参照ピクチャメモリ82中の参照フレーム中の予測ブロックを識別し得る。イントラ予測単位74は、ビットストリーム中で受信したイントラ予測モードを使用して、空間的に隣接するブロックから予測ブロックを形成し得る。逆量子化ユニット76は、ビットストリーム中で与えられ、エントロピー復号ユニット70によって復号された量子化ブロック係数を逆量子化(inversequantize)、即ち、逆量子化(de-quantize)する。逆量子化プロセスは、例えば、H.264復号規格によって定義された従来のプロセスを含み得る。逆量子化プロセスはまた、量子化の程度を決定し、同様に、適用されるべき逆量子化の程度を決定するための、各マクロブロックについてエンコーダ20によって計算される量子化パラメータQPYの使用を含み得る。
[0199]逆変換単位78は、逆変換、例えば、逆DCT、逆整数変換、又は概念的に同様の逆変換プロセスを変換係数に適用して、画素領域において残差ブロックを生成する。動き補償ユニット72は動き補償ブロックを生成し、場合によっては、補間フィルタに基づいて補間を実行する。サブ画素精度をもつ動き推定に使用されるべき補間フィルタの識別子がシンタックス要素中に含まれ得る。動き補償ユニット72は、ビデオブロックの符号化中にビデオエンコーダ20によって使用された補間フィルタを使用して、参照ブロックのサブ整数画素の補間値を計算し得る。動き補償ユニット72は、受信したシンタックス情報に従って、ビデオエンコーダ20によって使用された補間フィルタを決定し、その補間フィルタを使用して予測ブロックを生成し得る。
[0200]動き補償ユニット72は、シンタックス情報の一部を使用して、符号化ビデオシーケンスの(1つ又は複数の)フレームを符号化するために使用されるマクロブロックのサイズと、符号化ビデオシーケンスのフレームの各マクロブロックがどのように区分されるのかを記述する区分情報と、各区分がどのように符号化されるのかを示すモードと、各インター符号化マクロブロック又は区分のための1つ又は複数の参照フレーム(及び参照フレームリスト)と、符号化ビデオシーケンスを復号するための他の情報とを決定する。加算器80は、残差ブロックを、動き補償ユニット72又はイントラ予測単位によって生成される対応する予測ブロックと加算して、復号ブロックを形成する。
[0201]参照ピクチャメモリ82は、バッファ96を含み得る。バッファ96は、同期ダイナミックランダムアクセスメモリ(SDRAM)、埋込みダイナミックランダムアクセスメモリ(eDRAM)、又はスタティックランダムアクセスメモリ(SRAM)など、データを記憶することが可能な任意のパーマネント又は揮発性メモリなどのデータ記憶装置であるか、又はそれを含み得る。バッファ96は、1つ又は複数のピクチャバッファ及び/又は1つ又は複数の復号ピクチャバッファを含み得、本開示で説明する例示的なコード化ピクチャバッファ及び/又は復号ピクチャバッファ挙動の任意の組合せに従って動作し得る。例えば、ビデオデコーダ30は、本開示の技法に従って、バッファ96を使用したDPB管理及び/又はコード化ピクチャバッファ94のCPB管理を実行し得る。
[0202]コード化ピクチャバッファ94は、同期ダイナミックランダムアクセスメモリ(SDRAM)、埋込みダイナミックランダムアクセスメモリ(eDRAM)、又はスタティックランダムアクセスメモリ(SRAM)など、データを記憶することが可能な任意のパーマネント又は揮発性メモリなどのデータ記憶装置として実装され得る。コード化ピクチャバッファ94は、本明細書で開示する例示的なコード化ピクチャバッファ挙動の任意の組合せに従って動作し得る。
[0203]ビデオデコーダ30の一部を形成するものとして示されているが、幾つかの例では、コード化ピクチャバッファ94は、ビデオデコーダ30の外部の機器、ユニット、又はモジュールの一部を形成し得る。例えば、コード化ピクチャバッファ94は、ビデオデコーダ30の外部のストリームスケジューラユニットの一部を形成し得る。ストリームスケジューラユニットは、取得された(例えば、信号伝達された)バッファ除去時間によって示される時間に復号するためのビデオデコーダ30に、一連のツリーブロック、1つ又は複数のスライス、1つ又は複数の波、及び/又は1つ又は複数のタイルなどのサブピクチャを含む復号単位を送るために本開示の技法を実装し得る。ストリームスケジューラユニットは、更に、復号単位を含む1つ又は複数のネットワークアブストラクションレイヤ(NAL)ユニットを抽出するためにアクセス単位をカプセル化解除し得る。同様に、ストリームスケジューラユニットは、復号単位を抽出するためにNAL単位をカプセル化解除し得る。
[0204]ビデオデコーダ30は、本開示の技法によって変更される仮定参照デコーダ(HRD)挙動に従ってアクセス単位を受信し、コード化ピクチャバッファ94にアクセス単位を記憶し、それからアクセス単位を除去し得る。ビデオデコーダ30は、例えば、初期CPB除去遅延、CPBサイズ、ビットレート、初期DPB出力遅延、及びDPBサイズならびに復号単位のためのバッファ除去時間、及びビデオデータの復号単位がアクセス単位であるのか、又はアクセス単位のサブセットであるのかを信号伝達するサブピクチャコード化ピクチャバッファ選好フラグの値を含むHRDパラメータを復号し、取得し得る。ビデオデコーダ30は、バッファリング期間と復号単位のためのバッファ除去時間とを信号伝達するアクセス単位中のSEIメッセージを復号し、取得し得る。例えば、ビデオデコーダ30は、上記の表1の例などで、サブピクチャCPBフラグを含むシンタックスをもつビデオユーザビリティ情報(VUI)パラメータを復号し、取得し得る。
[0205]復号単位は、共通ピクチャのサブピクチャを含み得、ビデオデコーダ30は、アクセス単位のためのSEIメッセージ中の共通ピクチャのサブピクチャの各々のためのバッファ除去時間を復号し、取得し得る。異なるサブピクチャは、幾つかのサブピクチャを異なるビット数又はブロック数で符号化して、異なるデータの量で符号化され得、ビデオデコーダ30は、共通ピクチャのサブピクチャの各々のための対応する個別のバッファ除去時間を復号し、取得し得る。ビデオデコーダ30はまた、同じデータサイズのサブピクチャをもつ幾つかのピクチャを復号し、取得し得る。
[0206]従って、ビデオデコーダ30は、復号順序で連続するコード化ピクチャの幾つかのコード化ブロックを含み得るサブピクチャを復号し、取得し得、従って、コード化ブロックは、ツリーブロック又はツリーブロックのサブセットと同じであり得る。ビデオデコーダ30は、幾つかの例では、信号伝達されたピクチャレベルのCPB除去時間に従ってCPB除去時間を導出するのではなく、ビットストリーム中で各サブピクチャのCPB除去時間を復号し、取得し得る。ビデオデコーダ30はまた、スライス中の2つ以上のサブピクチャを復号し、取得し得、各復号単位がどこで開始するかを決定するために各復号単位の起点を示すバイトオフセット情報を受信し、各サブピクチャの終わりにバイトアラインメントを与える余分の非データ信号又はパディング信号に関する情報を復号し、取得し得る。ビデオデコーダ30はまた、例えば、スライス、タイル、又はフレームなど、ビデオデータのより大きいセット内のサブピクチャのうちの少なくとも1つのバイトアラインメントを示す値をもつ各サブピクチャのエントリポイントを取得し得る。ビデオデコーダ30は、本開示による異なる例でこれらの特徴のうちの任意の1つ又は複数を適用し得る。
[0207]図3中の参照ピクチャメモリ82、バッファ96、及びコード化ピクチャバッファ94について示した位置は説明のためのものである。参照ピクチャメモリ82、バッファ96、及びコード化ピクチャバッファ94は、単一の記憶装置中又は任意の数の別個の記憶装置中に位置し得る。記憶装置は、揮発性及び/又は不揮発性コンピュータ可読媒体の任意の組合せを含み得る。
[0208]このようにして、ビデオデコーダ30は、ピクチャバッファ中にビデオデータの1つ又は複数の復号単位を記憶することと、1つ又は複数の復号単位のための個別のバッファ除去時間を取得することと、復号単位の各々のための取得されたバッファ除去時間に従ってピクチャバッファから復号単位を除去することと、除去された復号単位に対応するビデオデータをコード化することとを行うように構成されたビデオコーダの一例を表すものである。
[0209]図4は、本開示の技法のいずれか又は全てを実装し得る例示的な宛先機器100を示すブロック図である。この例では、宛先機器100は、入力インターフェース102と、ストリームスケジューラ104と、コード化ピクチャバッファ106と、ビデオデコーダ108と、復号ピクチャバッファ110と、レンダリングユニット112と、出力インターフェース114とを含む。宛先機器100は、宛先機器14(図1)に実質的に対応し得る。入力インターフェース102は、ビデオデータのコード化ビットストリームを受信することが可能な任意の入力インターフェースを備え得る。例えば、入力インターフェース102は、図1の場合のような受信機26及び/又はモデム28、ワイヤード又はワイヤレスインターフェースなどのネットワークインターフェース、メモリもしくはメモリインターフェース、光ドライブインターフェース又は磁気媒体インターフェースなど、ディスクからデータを読み取るためのドライブ、又は他のインターフェース構成要素を備え得る。
[0210]入力インターフェース102は、ビデオデータを含むコード化ビットストリームを受信し、ストリームスケジューラ104にビットストリームを与え得る。本開示の技法によれば、ストリームスケジューラ104は、ビットストリームからアクセス単位及び/又は復号単位などのビデオデータのユニットを抽出し、コード化ピクチャバッファ106に抽出されたユニットを記憶する。このようにして、ストリームスケジューラ104は、上記の例で説明したようにHSSの例示的な実装形態を表す。コード化ピクチャバッファ106は、図4に示すように、コード化ピクチャバッファ106がビデオデコーダ108とは別個のものであることを除いて、コード化ピクチャバッファ94(図3)に実質的に一致し得る。コード化ピクチャバッファ106は、異なる例では、ビデオデコーダ108とは別個のものであることも、又はそれの一部として統合されることもある。
[0211]ビデオデコーダ108は、復号ピクチャバッファ110を含む。ビデオデコーダ108は、図1及び図3のビデオデコーダ30に実質的に一致し得る。復号ピクチャバッファ110は、バッファ96に実質的に一致し得る。従って、ビデオデコーダ108は、本開示の技法に従ってコード化ピクチャバッファ106の復号単位を復号し得る。
[0212]更に、ビデオデコーダ108は、上記で説明したように、本開示の技法に従って復号ピクチャバッファ110から復号ピクチャを出力し得る。ビデオデコーダ108は、レンダリングユニット112に出力ピクチャをパスし得る。レンダリングユニット112は、本開示の技法に従って上記で説明したようにピクチャをクロップし、次いで、出力インターフェース114にクロップピクチャをパスし得る。出力インターフェース114は、表示装置32に実質的に一致し得る表示装置にクロップピクチャを与え得る。表示装置は、宛先機器100の一部を形成し得、又は宛先機器100に通信可能に結合され得る。例えば、表示装置は、宛先機器100と統合されたスクリーン、タッチスクリーン、プロジェクタ、又は他の表示器ユニットを備え得、又は宛先機器100に通信可能に結合されたテレビジョン、モニタ、プロジェクタ、タッチスクリーン、又は他の機器などの別個の表示器を備え得る。通信結合は、同軸ケーブル、コンポジットビデオケーブル、コンポーネントビデオケーブル、高解像度マルチメディアインターフェース(HDMI(登録商標))ケーブル、無線周波ブロードキャスト、又は他のワイヤードもしくはワイヤレス結合などによるワイヤード又はワイヤレス結合を備え得る。
[0213]図5は、本開示の技法による、例えば、図1又は図3のビデオデコーダ30又は図4のビデオデコーダ108(総称して「ビデオデコーダ30/108」)によって、取得されたバッファ除去時間に従ってピクチャバッファからビデオデータの復号単位を除去することを含む例示的な方法を示すフローチャートである。図5の例示的な方法は、図5の方法の任意の1つ又は複数の態様がまた、他の機器又は構成要素によって実行されるか、又はそれを用いて実施され得るという理解の下で、一例として、ビデオデコーダ30/108によって実行されるものとして説明され得る。図5の例では、ビデオデコーダ30/108は、ピクチャバッファ中にビデオデータの1つ又は複数の復号単位を記憶し得る(202)。ビデオデコーダ30/108は、1つ又は複数の復号単位のための個別のバッファ除去時間を取得し得、個別のバッファ除去時間を取得することが、復号単位のうちの少なくとも1つのための個別のバッファ除去時間を示すそれぞれの信号伝達値を受信することを備える(204)。ビデオデコーダ30/108は、復号単位の各々のための取得されたバッファ除去時間に従ってピクチャバッファから復号単位を除去し得る(206)。ビデオデコーダ30/108はまた、除去された復号単位に対応するビデオデータをコード化し得、ビデオデータをコード化することが、復号単位のうちの少なくとも1つを復号することを備える(208)。ビデオデコーダ30/108及び/又は他の機器もしくは要素はまた、他の例では異なる又は追加の機能を実行し得る。
[0214]図6は、本開示の技法による、例えば、図1又は図3のビデオデコーダ30又は図4のビデオデコーダ108(総称して「ビデオデコーダ30/108」)によって、取得されたバッファ除去時間に従ってピクチャバッファからビデオデータの復号単位を除去することを含む、図5の方法と幾つかの点で同様の別の例示的な方法を示すフローチャートである。図6の例示的な方法はまた、図6の方法の任意の1つ又は複数の態様がまた、他の機器又は構成要素によって実行されるか、又はそれを用いて実施され得るという理解の下で、一例として、ビデオデコーダ30/108によって実行されるものとして説明され得る。図6の例では、ビデオデコーダ30/108は、コード化ピクチャバッファ(CPB)中にビデオデータの1つ又は複数の復号単位を記憶し(402)、1つ又は複数の復号単位のための個別のバッファ除去時間を取得し(404)、復号単位の各々のための取得されたバッファ除去時間に従ってCPBから復号単位を除去し(406)、CPBがアクセス単位レベルで動作するのか、又はサブピクチャレベルで動作するのかを決定し(408)、除去された復号単位に対応するビデオデータをコード化し得る(410)。CPBがアクセス単位レベルで動作する場合、ビデオデータをコード化することは、復号単位中に備えられたアクセス単位をコード化すること(412)を含む。CPBがサブピクチャレベルで動作する場合、ビデオデータをコード化することは、復号単位中に備えられたアクセス単位のサブセットをコード化すること(414)を含む。
[0215]例えば、ビデオデコーダ30/108は、CPBがアクセス単位レベルで動作すると決定する場合、ビデオデコーダ30/108は、除去された復号単位に対応するビデオデータのアクセス単位をコード化し得る(412)。ビデオデコーダ30/108は、CPBがサブピクチャレベルで動作すると決定する場合、ビデオデコーダ30/108は、除去された復号単位に対応するビデオデータのアクセス単位のサブセットをコード化し得る(414)。例えば、ビデオデコーダ30/108は、サブピクチャコード化ピクチャバッファ選好フラグ(例えば、SubPicCpbPreferredFlag)が負であるかもしくは0の値を有すると決定するか、又はサブピクチャコード化ピクチャバッファパラメータ存在フラグ(例えば、sub_pic_cpb_params_present_flag)が負であるかもしくは0の値を有すると決定することによって、1つ又は複数の復号単位がアクセス単位を備えると決定し得る。ビデオデコーダ30/108は、サブピクチャコード化ピクチャバッファ選好フラグ(例えば、SubPicCpbPreferredFlag)が正であるか又は1の値を有すると決定し、かつサブピクチャコード化ピクチャバッファパラメータ存在フラグ(例えば、sub_pic_cpb_params_present_flag)が正であるか又は1の値を有すると決定することによって、1つ又は複数の復号単位がアクセス単位のサブセットを備えると決定し得る。ビデオデコーダ30/108はまた、両方の下位フラグが正であるかどうかを決定し、ビデオデコーダ30/108がアクセス単位のサブセットについてコード化し得ることを決定するために、SubPicCpbPreferredFlag&&sub_pic_cpb_params_present_flagに設定され得る単一のサブピクチャコード化ピクチャバッファフラグ、SubPicCpbFlagを使用し得る。
[0216]図7は、本開示の技法による、例えば、図1又は図3のビデオデコーダ30又は図4のビデオデコーダ108(総称して「ビデオデコーダ30/108」)によって、バンピングプロセスにおいてクロップピクチャを出力することを含むビデオデータを処理する別の例示的な方法を示すフローチャートである。図7の例では、ビデオデコーダ30/108は、バンピングプロセスの例に関して上記で説明したように、幾つかの条件のいずれかが満たされる場合にバンピングプロセスを実行し得る。特に、ビデオデコーダ30/108は、現在のピクチャが瞬時復号リフレッシュ(IDR)ピクチャである場合(302)、及び前のピクチャの出力なしフラグが1に等しくない値を有する場合(304)、バンピングプロセスを実行し得、(304)の場合は、前のピクチャの出力なしフラグが、例えば、HRDによって1に等しいと推論又は設定されない値を有する場合を含み得る。ビデオデコーダ30/108はまた、出力のために必要とされるとマーキングされている復号ピクチャバッファ(DPB)中のピクチャの数が現在の時間レイヤにおける並べ替えピクチャの数よりも多い場合(306)、バンピングプロセスを実行し得る。ビデオデコーダ30/108はまた、現在のピクチャの時間レイヤ識別子値以下の時間レイヤ識別子値をもつDPB中のピクチャの数が、現在の時間レイヤの最大ピクチャバッファリング値+1に等しくなる場合(308)、バンピングプロセスを実行し得る。
[0217]指定された条件(302及び304又は306又は308)のいずれかが満たされる場合、ビデオデコーダ30/108は、次のようにバンピングプロセスを実行し得る。ビデオデコーダ30/108は、DPB中のピクチャのうち最も小さいピクチャ順序カウント(POC)値を有し、選択されたピクチャとして出力のために必要とされるとマーキングされているピクチャを選択し得る(312)。ビデオデコーダ30/108は、選択されたピクチャのためのアクティブシーケンスパラメータセットにおいて指定されているように選択されたピクチャをクロップし、それによって、選択されたピクチャに基づいてクロップピクチャを生成し得る(314)。ビデオデコーダ30/108は、クロップピクチャを出力し得る(316)。ビデオデコーダ30/108は、出力のために必要とされないと選択されたピクチャをマーキングし得る(318)。
[0218]1つ又は複数の例では、説明された機能は、ハードウェア、ソフトウェア、ファームウェア、又はそれらの任意の組合せで実装され得る。ソフトウェアで実装される場合、機能は、1つ又は複数の命令又はコードとしてコンピュータ可読媒体上に記憶されるか、又はコンピュータ可読媒体を介して送信され、ハードウェアベースの処理ユニットによって実行され得る。コンピュータ可読媒体は、データ記憶媒体などの有形媒体に対応するコンピュータ可読記憶媒体を含み得、又は、例えば、通信プロトコルに従って、ある場所から別の場所へのコンピュータプログラムの転送を可能にする任意の媒体を含む通信媒体を含み得る。このようにして、コンピュータ可読媒体は、概して、(1)非一時的である有形コンピュータ可読記憶媒体、又は(2)信号又は搬送波などの通信媒体に対応し得る。データ記憶媒体は、本開示で説明した技法の実装のための命令、コード及び/又はデータ構造を取り出すために1つ又は複数のコンピュータ又は1つ又は複数のプロセッサによってアクセスされ得る任意の利用可能な媒体であり得る。コンピュータプログラム製品はコンピュータ可読媒体を含み得る。
[0219]限定ではなく例として、そのようなコンピュータ可読記憶媒体は、RAM、ROM、EEPROM(登録商標)、CD−ROMもしくは他の光ディスクストレージ、磁気ディスクストレージ、もしくは他の磁気記憶装置、フラッシュメモリ、又は命令又はデータ構造の形態の所望のプログラムコードを記憶するために使用され得、コンピュータによってアクセスされ得る、任意の他の媒体を備えることができる。また、いかなる接続もコンピュータ可読媒体と適切に呼ばれる。例えば、命令が、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者回線(DSL)、又は赤外線、無線、及びマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、又は他のリモート発信源から送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、DSL、又は赤外線、無線、及びマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。但し、コンピュータ可読記憶媒体及びデータ記憶媒体は、接続、搬送波、信号、又は他の一時媒体を含まないが、代わりに非一時的有形記憶媒体を対象とすることを理解されたい。本明細書で使用するディスク(disk)及びディスク(disc)は、コンパクトディスク(disc)(CD)、レーザーディスク(登録商標)(disc)、光ディスク(disc)、デジタル多用途ディスク(disc)(DVD)、フロッピー(登録商標)ディスク(disk)及びブルーレイディスク(disc)を含み、この場合、ディスク(disk)は、通常、データを磁気的に再生し、ディスク(disc)はデータをレーザーで光学的に再生する。上記の組合せも、コンピュータ可読媒体の範囲に含まれるべきである。
[0220]命令は、1つ又は複数のデジタル信号プロセッサ(DSP)、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブル論理アレイ(FPGA)、又は他の等価な集積回路もしくはディスクリート論理回路などの1つ又は複数のプロセッサによって実行され得る。従って、本明細書で使用する「プロセッサ」という用語は、前述の構造、又は本明細書で説明する技法の実装に好適な他の構造のいずれかを指す。更に、幾つかの態様では、本明細書で説明した機能は、符号化及び復号のために構成された専用のハードウェア及び/又はソフトウェアモジュール内に与えられ得、又は複合コーデックに組み込まれ得る。また、本技法は、1つ又は複数の回路又は論理要素中に十分に実装され得る。
[0221]本開示の技法は、ワイヤレスハンドセット、集積回路(IC)、又はICのセット(例えば、チップセット)を含む、多種多様な機器又は装置において実装され得る。本開示では、開示した技法を実行するように構成された機器の機能的態様を強調するために、様々な構成要素、モジュール、又はユニットについて説明したが、それらの構成要素、モジュール、又はユニットを必ずしも異なるハードウェアユニットによって実現する必要はない。むしろ、上記で説明したように、様々なユニットが、好適なソフトウェア及び/又はファームウェアとともに、上記で説明した1つ又は複数のプロセッサを含めて、コーデックハードウェアユニットにおいて組み合わせられるか、又は相互動作ハードウェアユニットの集合によって与えられ得る。
[0222]様々な例について説明した。これら及び他の例は以下の特許請求の範囲内に入る。
以下に本件出願当初の特許請求の範囲に記載された発明を付記する。
[1] ビデオデータをコード化する方法であって、コード化ピクチャバッファ(CPB)中にビデオデータの1つ以上の復号単位を記憶することと、前記1つ以上の復号単位のための個別のバッファ除去時間を取得することと、前記復号単位の各々のための取得された前記バッファ除去時間に従って前記CPBから前記復号単位を除去することと、前記CPBがアクセス単位レベルで動作するのか、又はサブピクチャレベルで動作するのかを決定することと、除去された前記復号単位に対応するビデオデータをコード化することとを備え、前記CPBがアクセス単位レベルで動作する場合、前記ビデオデータをコード化することが、前記復号単位中に備えられたアクセス単位をコード化することを備え、前記CPBがサブピクチャレベルで動作する場合、前記ビデオデータをコード化することが、前記復号単位中に備えられたアクセス単位のサブセットをコード化することを備える、方法。
[2] 前記CPBがアクセス単位レベルで動作するのか、又はサブピクチャレベルで動作するのかを決定することが、サブピクチャコード化ピクチャバッファ選好フラグが0の値を有する場合、又はサブピクチャコード化ピクチャバッファパラメータ存在フラグが0の値を有する場合、前記CPBがアクセス単位レベルで動作すると決定することと、前記サブピクチャコード化ピクチャバッファ選好フラグが1の値を有し、前記サブピクチャコード化ピクチャバッファパラメータ存在フラグが1の値を有する場合、前記CPBがサブピクチャレベルで動作すると決定することとを備える、[1]に記載の方法。
[3] 前記サブピクチャコード化ピクチャバッファ選好フラグの前記値を受信することを更に備える、[2]に記載の方法。
[4] 前記サブピクチャコード化ピクチャバッファ選好フラグの値が受信されない場合、前記サブピクチャコード化ピクチャバッファ選好フラグに0の値を設定することを更に備える、[2]に記載の方法。
[5] 前記サブピクチャコード化ピクチャバッファパラメータ存在フラグの前記値を受信することを更に備える、[2]に記載の方法。
[6] 連続復号順序でビデオデータの前記1つ以上の復号単位を受信することを更に備え、前記CPB中にビデオデータの前記1つ以上の復号単位を記憶することが、前記CPB中に前記連続復号順序でビデオデータの前記1つ以上の復号単位を記憶することを備える、[1]に記載の方法。
[7] 前記1つ以上の復号単位のための前記個別のバッファ除去時間を取得することが、前記復号単位のうちの少なくとも1つのための前記個別のバッファ除去時間を示す個別の信号伝達値を受信することを備える、[1]に記載の方法。
[8] 前記復号単位のうちの前記少なくとも1つのための前記バッファ除去時間を示す前記信号伝達値が、前記復号単位のうちの前記少なくとも1つによって備えられる幾つかのネットワークアブストラクションレイヤ(NAL)単位を示す信号伝達値を備える、[7]に記載の方法。
[9] 前記1つ以上の復号単位がそれぞれのサブピクチャを備え、前記方法が、前記ビデオデータのより大きいセット内の少なくとも1つのサブピクチャのバイトアラインメントを示す信号伝達値を受信することを更に備える、[1]に記載の方法。
[10] ビデオデータをコード化するための機器であって、コード化ピクチャバッファ(CPB)中にビデオデータの1つ以上の復号単位を記憶することと、前記1つ以上の復号単位のための個別のバッファ除去時間を取得することと、前記復号単位の各々のための取得された前記バッファ除去時間に従って前記CPBから前記復号単位を除去することと、前記CPBがアクセス単位レベルで動作するのか、又はサブピクチャレベルで動作するのかを決定することと、除去された前記復号単位に対応するビデオデータをコード化することとを行うように構成されたビデオコーダを備え、前記CPBがアクセス単位レベルで動作する場合、前記ビデオデータをコード化するために、前記ビデオコーダが、前記復号単位中に備えられたアクセス単位をコード化するように更に構成され、前記CPBがサブピクチャレベルで動作する場合、前記ビデオデータをコード化するために、前記ビデオコーダが、前記復号単位中に備えられたアクセス単位のサブセットをコード化するように更に構成された、機器。
[11] 前記CPBが、アクセス単位レベルで動作するのか、又はサブピクチャレベルで動作するのかを決定するために、前記ビデオコーダが、サブピクチャコード化ピクチャバッファ選好フラグが0の値を有する場合、又はサブピクチャコード化ピクチャバッファパラメータ存在フラグが0の値を有する場合、前記CPBがアクセス単位レベルで動作すると決定することと、前記サブピクチャコード化ピクチャバッファ選好フラグが1の値を有し、前記サブピクチャコード化ピクチャバッファパラメータ存在フラグが1の値を有する場合、前記CPBがサブピクチャレベルで動作すると決定することとを行うように更に構成された、[10]に記載の機器。
[12] 前記ビデオコーダが、前記サブピクチャコード化ピクチャバッファ選好フラグの前記値を受信することを行うように更に構成された、[11]に記載の機器。
[13] 前記ビデオコーダが、前記サブピクチャコード化ピクチャバッファ選好フラグの値が受信されない場合、前記サブピクチャコード化ピクチャバッファ選好フラグに0の値を設定することを行うように更に構成された、[11]に記載の機器。
[14] 前記ビデオコーダが、前記サブピクチャコード化ピクチャバッファパラメータ存在フラグの前記値を受信することを行うように更に構成された、[11]に記載の機器。
[15] 前記ビデオコーダが、連続復号順序でビデオデータの前記1つ以上の復号単位を受信することを行うように更に構成され、前記CPB中にビデオデータの前記1つ以上の復号単位を記憶することが、前記CPB中に前記連続復号順序でビデオデータの前記1つ以上の復号単位を記憶することを備える、[10]に記載の機器。
[16] 前記1つ以上の復号単位のための前記個別のバッファ除去時間を取得することが、前記復号単位のうちの少なくとも1つのための前記個別のバッファ除去時間を示す個別の信号伝達値を受信することを備える、[10]に記載の機器。
[17] 前記復号単位のうちの前記少なくとも1つのための前記バッファ除去時間を示す前記信号伝達値が、前記復号単位のうちの前記少なくとも1つによって備えられる幾つかのネットワークアブストラクションレイヤ(NAL)単位を示す信号伝達値を備える、[16]に記載の機器。
[18] 前記1つ以上の復号単位がそれぞれのサブピクチャを備え、前記ビデオコーダが、前記ビデオデータのより大きいセット内の少なくとも1つのサブピクチャのバイトアラインメントを示す信号伝達値を受信することを行うように更に構成された、[10]に記載の機器。
[19] 前記機器が、1つ以上の集積回路と、1つ以上のマイクロプロセッサと、前記ビデオコーダを含むワイヤレス通信機器とのうちの少なくとも1つを備える、[10]に記載の機器。
[20] ビデオデータをコード化するための装置であって、コード化ピクチャバッファ(CPB)中にビデオデータの1つ以上の復号単位を記憶するための手段と、前記1つ以上の復号単位のための個別のバッファ除去時間を取得するための手段と、前記復号単位の各々のための取得された前記バッファ除去時間に従って前記CPBから前記復号単位を除去するための手段と、前記CPBがアクセス単位レベルで動作するのか、又はサブピクチャレベルで動作するのかを決定するための手段と、除去された前記復号単位に対応するビデオデータをコード化するための手段とを備え、前記CPBがアクセス単位レベルで動作する場合、前記ビデオデータをコード化するための前記手段が、前記復号単位中に備えられたアクセス単位をコード化するための手段を備え、前記CPBがサブピクチャレベルで動作する場合、前記ビデオデータをコード化するための前記手段が、前記復号単位中に備えられたアクセス単位のサブセットをコード化するための手段を備える、装置。
[21] 前記CPBがアクセス単位レベルで動作するのか、又はサブピクチャレベルで動作するのかを決定するための前記手段が、サブピクチャコード化ピクチャバッファ選好フラグが0の値を有する場合、又はサブピクチャコード化ピクチャバッファパラメータ存在フラグが0の値を有する場合、前記CPBがアクセス単位レベルで動作すると決定するための手段と、前記サブピクチャコード化ピクチャバッファ選好フラグが1の値を有し、前記サブピクチャコード化ピクチャバッファパラメータ存在フラグが1の値を有する場合、前記CPBがサブピクチャレベルで動作すると決定するための手段とを備える、[20]に記載の装置。
[22] 前記サブピクチャコード化ピクチャバッファ選好フラグの前記値を受信するための手段を更に備える、[21]に記載の装置。
[23] 前記サブピクチャコード化ピクチャバッファ選好フラグの値が受信されない場合、前記サブピクチャコード化ピクチャバッファ選好フラグに0の値を設定するための手段を更に備える、[21]に記載の装置。
[24] 前記サブピクチャコード化ピクチャバッファパラメータ存在フラグの前記値を受信するための手段を更に備える、[21]に記載の装置。
[25] 連続復号順序でビデオデータの前記1つ以上の復号単位を受信するための手段を更に備え、前記CPB中にビデオデータの前記1つ以上の復号単位を記憶するための前記手段が、前記CPB中に前記連続復号順序でビデオデータの前記1つ以上の復号単位を記憶するための手段を備える、[20]に記載の装置。
[26] 前記1つ以上の復号単位のための前記個別のバッファ除去時間を取得するための前記手段が、前記復号単位のうちの少なくとも1つのための前記個別のバッファ除去時間を示す個別の信号伝達値を受信するための手段を備える、[20]に記載の装置。
[27] 前記復号単位のうちの前記少なくとも1つのための前記バッファ除去時間を示す前記信号伝達値が、前記復号単位のうちの前記少なくとも1つによって備えられる幾つかのネットワークアブストラクションレイヤ(NAL)単位を示す信号伝達値を備える、[26]に記載の装置。
[28] 前記1つ以上の復号単位がそれぞれのサブピクチャを備え、前記装置が、前記ビデオデータのより大きいセット内の少なくとも1つのサブピクチャのバイトアラインメントを示す信号伝達値を受信するための手段を更に備える、[20]に記載の装置。
[29] 前記装置が、1つ以上の集積回路と、1つ以上のマイクロプロセッサと、ビデオコード化機器を含むワイヤレス通信機器とのうちの少なくとも1つを備える、[20]に記載の装置。
[30] 実行されたとき、コード化ピクチャバッファ(CPB)中にビデオデータの1つ以上の復号単位を記憶することと、前記1つ以上の復号単位のための個別のバッファ除去時間を取得することと、前記復号単位の各々のための取得された前記バッファ除去時間に従って前記CPBから前記復号単位を除去することと、前記CPBがアクセス単位レベルで動作するのか、又はサブピクチャレベルで動作するのかを決定することと、除去された前記復号単位に対応するビデオデータをコード化することとをプロセッサに行わせる命令を記憶したコンピュータ可読記憶媒体を備え、前記CPBがアクセス単位レベルで動作する場合、前記ビデオデータをコード化することが、前記復号単位中に備えられたアクセス単位をコード化することを備え、前記CPBがサブピクチャレベルで動作する場合、前記ビデオデータをコード化することが、前記復号単位中に備えられたアクセス単位のサブセットをコード化することを備える、コンピュータプログラム製品。
[31] 前記CPBがアクセス単位レベルで動作するのか、又はサブピクチャレベルで動作するのかを決定することが、サブピクチャコード化ピクチャバッファ選好フラグが0の値を有する場合、又はサブピクチャコード化ピクチャバッファパラメータ存在フラグが0の値を有する場合、前記CPBがアクセス単位レベルで動作すると決定することと、前記サブピクチャコード化ピクチャバッファ選好フラグが1の値を有し、前記サブピクチャコード化ピクチャバッファパラメータ存在フラグが1の値を有する場合、前記CPBがサブピクチャレベルで動作すると決定することとを備える、[30]に記載のコンピュータプログラム製品。
[32] 前記命令が、前記サブピクチャコード化ピクチャバッファ選好フラグの前記値を受信することを前記プロセッサに更に行わせる、[31]に記載のコンピュータプログラム製品。
[33] 前記命令が、前記サブピクチャコード化ピクチャバッファ選好フラグの値が受信されない場合、前記サブピクチャコード化ピクチャバッファ選好フラグに0の値を設定することを前記プロセッサに更に行わせる、[31]に記載のコンピュータプログラム製品。
[34] 前記命令が、前記サブピクチャコード化ピクチャバッファパラメータ存在フラグの前記値を受信することを前記プロセッサに更に行わせる、[31]に記載のコンピュータプログラム製品。
[35] 前記命令が、連続復号順序でビデオデータの前記1つ以上の復号単位を受信することを前記プロセッサに更に行わせ、前記CPB中にビデオデータの前記1つ以上の復号単位を記憶することが、前記CPB中に前記連続復号順序でビデオデータの前記1つ以上の復号単位を記憶することを備える、[30]に記載のコンピュータプログラム製品。
[36] 前記1つ以上の復号単位のための前記個別のバッファ除去時間を取得することが、前記復号単位のうちの少なくとも1つのための前記個別のバッファ除去時間を示すそれぞれの信号伝達値を受信することを備える、[30]に記載のコンピュータプログラム製品。
[37] 前記復号単位のうちの前記少なくとも1つのための前記バッファ除去時間を示す前記信号伝達値が、前記復号単位のうちの前記少なくとも1つによって備えられる幾つかのネットワークアブストラクションレイヤ(NAL)単位を示す信号伝達値を備える、[36]に記載のコンピュータプログラム製品。
[38] 前記1つ以上の復号単位がそれぞれのサブピクチャを備え、前記方法が、前記ビデオデータのより大きいセット内の少なくとも1つのサブピクチャのバイトアラインメントを示す信号伝達値を受信することを更に備える、[30]に記載のコンピュータプログラム製品。