本出願は、その内容全体が参照により本明細書に組み込まれる、2013年1月7日に出願された米国仮特許出願第61/749,880号の利益を主張するものである。
[0023]一般に、本開示の技法は、コーディングされたビデオデータの時間的スケーラビリティをサポートしながら漸次復号リフレッシュ(GDR)を使用してビデオデータをコーディングすることを対象とする。本開示の様々な例によれば、ビデオコーディングデバイスは、時間的スケーラビリティもサポートしながら、GDR動作をサポートするためにAVC規格とHEVC規格の両方によってサポートされる付加拡張情報(SEI:supplemental enhancement information)機構によって提供されるメッセージを使用することができる。このようにして、本開示の技法は、ビデオコーディングデバイスが時間的スケーラビリティをサポートするようにGDRベースコーディングを強化しながら既存のハードウェアとソフトウェアと通信インフラストラクチャを活用することを可能にすることができる。
[0024]「HEVC Working Draft10」または「WD10」と呼ばれるHEVC規格の最新の草稿は、2013年6月6日現在http://phenix.int−evry.fr/jct/doc_end_user/documents/12_Geneva/wg11/JCTVC−L1003−v34.zipからダウンロード可能な、JCTVC−L1003v34、Brossら、「High efficiency video coding (HEVC) text specification draft 10 (for FDIS & Last Call)」、Joint Collaborative Team on Video Coding (JCT−VC) of ITU−T SG16 WP3 and ISO/IEC JTC1/SC29/WG11、第12回会議:Geneva、CH、2013年1月14〜23日に記載されている。WD10の内容全体は、参照により本明細書に組み込まれる。AVC(ITU−T)H.264規格は、2005年3月付けの、ITU−T Study GroupによるITU−T勧告H.264、Advanced Video Coding for generic audiovisual servicesに記載されており、これは、本明細書では、H.264規格もしくはH.264仕様書、またはH.264/AVC規格もしくは仕様書と呼ばれることがある。Joint Video Team(JVT)は、H.264/MPEG−4 AVCの拡張に関する作業を引き続き行っている。
[0025]以下ではHEVC WD9と呼ばれる、HEVCの別の最新の作業素案(WD)は、http://phenix.int−evry.fr/jct/doc_end_user/documents/11_Shanghai/wg11/JCT− VC−K1003−v8.zipから入手可能である。HEVC WD9(BROSSら、「High efficiency video coding (HEVC) text specification draft 9」、文書JCTVC−K1003_v7、第11回会議:Shanghai、CN、2012年10月10〜19日、290ページ)の内容は、参照により本明細書に組み込まれる。
[0026]HEVC WD9は、GDRを使用してビデオデータのコーディングをサポートするコーディング動作について説明する。GDRは、復号順に並べられたピクチャのシーケンスまたはシリーズなどのピクチャのセットをデバイスがコーディングすることを可能にすることができる。そのようなピクチャのシーケンスは、本明細書では、「GDRピクチャセット」または「GDRセット」と呼ばれる。GDRセット全体をトラバースすると(traversing)(たとえば、GDRセットの終端に到達すると)、ビデオコーディングデバイスは、当該セットに復号順で続く1つまたは複数の符号化されたピクチャにランダムにアクセスすることができる。様々な例では、ビデオコーディングデバイスは、GDRセットの最後のピクチャの全体を正しくまたは正確に復号することができる。そのような例では、GDRセットの第1のピクチャは「GDRピクチャ」を表すことができ、GDRセット内の最後のピクチャは「リカバリーポイントピクチャ」を表すことができる。リカバリーポイントピクチャは、ピクチャ全体が「リフレッシュ」領域または「前景(foreground)」領域に含まれるピクチャを表すことができる。したがって、ピクチャは、リカバリーポイントピクチャにおいてピクチャが完全にリフレッシュされるまで、GDRセット内のピクチャのシリーズにわたって徐々にリフレッシュされる。ビデオコーディングデバイスは、「リカバリーポイント」SEIメッセージおよび/または「領域リフレッシュ情報」SEIメッセージなどの特定のSEIメッセージを使用して、GDRセットの境界ならびにGDRセットに関連する他の情報を決定することができる。
[0027]さらに、HEVC標準とAVC標準の両方は、ビデオビットストリームの時間的スケーラビリティをサポートする。時間的スケーラビリティは、ビデオコーディングデバイスが、符号化されたビデオデータの全ビットストリームから符号化されたビデオデータのサブセットが抽出され得ると決定することを可能にすることができる。時間的スケーラビリティにより全ビットストリームから抽出された符号化されたビデオデータ(たとえば、符号化されたピクチャ)のそのようなサブセットは、「時間的サブセット」と呼ばれることがある。次に、AVC標準およびHEVC標準によってサポートされる時間的スケーラビリティは、様々な時間的サブセットが様々な数の符号化されたピクチャを含むように、ビデオコーディングデバイスが複数の時間的サブセットを全ビットストリームから決定することを可能にすることができる。時間的サブセットは、低いすなわち「粗い」ほど、より少数の符号化されたピクチャを全ビットストリームから含むことができ、より低いピクチャレートすなわちフレームレートを表すことができる。逆に、時間的サブセットは、高いすなわち「細かい」ほど、より多数の符号化されたピクチャを全ビットストリームから含むことができ、より高いピクチャレートすなわちフレームレートを表すことができる。
[0028]時間的にスケーラブルなビットストリームにGDRベースコーディングの既存の実装形態を適用するように構成されたビデオコーディングデバイスは、GDRセットに関する1つまたは複数の潜在的な間違いに遭遇するまたはこれを示すことができる。たとえば、GDRの既存の実装形態によれば、リカバリーポイントSEIメッセージに含まれるシンタックス要素は、GDRセットを形成する、GDRピクチャに復号順で続くいくつかの連続する符号化されたピクチャを示すことができる。したがって、時間的サブセットがエンコーダによってシグナリングされる例では、リカバリーポイントSEIメッセージのシンタックス要素によって示される、GDRセット内の連続する符号化されたピクチャの数が間違っていることがある。たとえば、時間的サブセットは、全ビットストリームまたは他の上位の時間的レイヤよりも少数の符号化されたピクチャを表すので、元のGDRセットの1つまたは複数の符号化されたピクチャは、デコーダによって実際に受信される時間的サブセットにないことがある。時間的サブセットは、たとえば、全時間的セットを受信する中間ネットワーク要素によって抽出され得る。次いで、中間ネットワーク要素は、デコーダを含むクライアントデバイスに、抽出された時間的サブセットを提供する。別の例として、サーバは、デコーダを含むクライアントデバイスに配信するために、時間的サブセットを抽出するまたは複数の時間的サブセットを格納することができる。
[0029]GDRセット内のピクチャの数を示すシンタックス要素は、抽出された時間的サブセットの対応するGDRセット内の符号化されたピクチャの数の減少を反映するように動的に更新されないことがある。したがって、上位の時間的レイヤのためのGDRセットを形成する連続する符号化されたピクチャの数と、そこから抽出される下位の時間的レイヤの対応するGDRセット内の連続する符号化されたピクチャの数との不一致が存在することがある。たとえば、リカバリーポイントSEIメッセージによって示されるリカバリーポイントピクチャは、下位の時間的レイヤを構成する時間的サブセットの抽出中に破棄されることがある。この例では、示されるリカバリーポイントピクチャは、デコーダによって受信されるシグナリングされた符号化されたビデオビットストリームを構成する下位の時間的レイヤに対して「存在しない」ことがある。その結果、時間的サブビットストリーム抽出の場合にGDRセットに1つまたは複数のピクチャがないことにより、GDR動作は、デコーダ側で適切に機能しないことがある。
[0030]時間的にスケーラブルなビットストリームに対するGDRベースコーディングのそのような間違いを緩和するまたは潜在的に解消するために、本開示の技法は、リカバリーポイントSEIメッセージに示されるリカバリーポイントピクチャが、デコーダによって実際に受信される符号化されたビデオビットストリームに存在するかどうかにかかわらず、ビデオコーディングデバイスがリカバリーポイントピクチャを識別することを可能にすることができる。たとえば、ビデオ復号デバイスは、符号化されたビデオビットストリームが、リカバリーポイントピクチャのPOC値を有する符号化されたピクチャを含むかどうか決定することができ、POC値は、ビットストリームに含まれるリカバリーポイントSEIメッセージに示される。ビデオコーディングデバイスが、リカバリーポイントSEIメッセージに示されるPOC値を有するビットストリーム内の符号化されたピクチャを検出する場合、ビデオコーディングデバイスは、検出されたピクチャをリカバリーポイントピクチャと識別することができる。さらに、この例では、ビデオコーディングデバイスは、識別されたリカバリーポイントピクチャはGDRセットの最後のピクチャも形成すると決定することができる。
[0031]一方、本明細書で説明される技法を実施するビデオコーディングデバイスが、リカバリーポイントSEIメッセージに示されるPOC値(すなわち、リカバリーポイントピクチャのPOC値)を有する受信されたビットストリーム内のピクチャを検出しない場合、ビデオコーディングデバイスは、リカバリーポイントSEIメッセージに示されるPOC値よりも大きいPOC値を有する、デコーダによって受信されるピクチャをリカバリーポイントピクチャと識別することができる。たとえば、ビデオコーディングデバイスは、リカバリーポイントピクチャを、リカバリーポイントSEIメッセージに示されるPOC値よりも大きいPOC値を有する、復号順でビットストリームの第1のピクチャとして識別することができる。さらに、このシナリオでは、ビデオコーディングデバイスは、ビットストリーム内で受信され、識別されたリカバリーポイントピクチャのすぐ前に来るピクチャをGDRセット内の最後のピクチャとして識別することができる。たとえば、識別されたリカバリーポイントピクチャのすぐ前に来るビットストリームのピクチャは、識別されたリカバリーポイントピクチャのPOC値よりも小さく、これに最も近いPOC値を有するピクチャであってよい。
[0032]言い換えれば、このシナリオでは、ビデオコーディングデバイスは、2つの異なるピクチャを、GDRセット内の最後のピクチャおよびリカバリーポイントピクチャとして識別することができる。たとえば、このシナリオでは、GDRセット内の最後のピクチャおよびリカバリーポイントピクチャは、符号化されたビデオビットストリームに含まれる、復号順に2つの連続するピクチャであってよい。このようにして、本開示の1つまたは複数の技法は、ビデオコーディングデバイスが、時間的にスケーラブルなビデオビットストリームもサポートしながら、GDRに従って受信されたピクチャセットを復号することを可能にすることができる。たとえば、リカバリーポイントピクチャを、当初識別されたピクチャに復号順で続くピクチャと識別することによって、ビデオコーディングデバイスは、完全にリフレッシュされたピクチャを選択することができ、選択されたピクチャは、当初生成されたビットストリームの完全にリフレッシュされたピクチャの後に配置される。
[0033]図1は、本開示で説明される技法を利用し得る例示的なビデオ符号化および復号システム10を示すブロック図である。図1に示されるように、システム10は、宛先デバイス14によって後で復号されるべき符号化されたビデオデータを生成するソースデバイス12を含む。ソースデバイス12および宛先デバイス14は、デスクトップコンピュータ、ノートブック(すなわちラップトップ)コンピュータ、タブレットコンピュータ、セットトップボックス、いわゆる「スマート」フォンなどの電話ハンドセット、いわゆる「スマート」パッド、テレビジョン、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲーミングコンソール、ビデオストリーミングデバイスなどを含む広範囲のデバイスのうちいずれかを備えることができる。場合によっては、ソースデバイス12および宛先デバイス14は、ワイヤレス通信のために装備されることがある。
[0034]宛先デバイス14は、復号されるべき符号化されたビデオデータを、リンク16を介して受信することができる。リンク16は、符号化されたビデオデータをソースデバイス12から宛先デバイス14に移動させることが可能な任意のタイプの媒体またはデバイスを備えることができる。一例では、リンク16は、ソースデバイス12が符号化されたビデオデータを宛先デバイス14にリアルタイムで直接送信することを可能にする通信媒体を備えることができる。符号化されたビデオデータは、ワイヤレス通信プロトコルなどの通信規格に従って変調され、宛先デバイス14に送信され得る。通信媒体は、無線周波数(RF)スペクトルまたは1つもしくは複数の物理的伝送線路などの任意のワイヤレス通信媒体または有線通信媒体を備えることができる。通信媒体は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはインターネットなどのグローバルネットワークなどのパケットベースネットワークの一部を形成することができる。通信媒体は、ルータ、スイッチ、基地局、またはソースデバイス12から宛先デバイス14への通信を容易にするのに有用であり得る任意の他の機器を含んでよい。
[0035]あるいは、符号化されたデータは、出力インターフェース22からストレージデバイス31に出力され得る。同様に、符号化されたデータは、入力インターフェースによってストレージデバイス31からアクセスされ得る。ストレージデバイス31としては、ハードドライブ、ブルーレイ(登録商標)ディスク、DVD、CD−ROM、フラッシュメモリ、揮発性メモリもしくは不揮発性メモリ、または符号化されたビデオデータを記憶するための任意の他の適切なデジタル記憶媒体などの様々な分散データ記憶媒体またはローカルにアクセスされるデータ記憶媒体のうちいずれかがあり得る。さらなる例では、ストレージデバイス31は、ソースデバイス12によって生成される符号化されたビデオを保持し得るファイルサーバまたは別の中間ストレージデバイスに対応することがある。宛先デバイス14は、記憶されたビデオデータに、ストリーミングまたはダウンロードを介してストレージデバイス31からアクセスすることができる。ファイルサーバは、符号化されたビデオデータを格納し、その符号化されたビデオデータを宛先デバイス14に送信することが可能な任意のタイプのサーバであってよい。例示的なファイルサーバとしては、ウェブサーバ(たとえばウェブサイト用)、FTPサーバ、ネットワーク接続ストレージ(NAS)デバイス、またはローカルディスクドライブがある。宛先デバイス14は、インターネット接続を含む任意の標準的なデータ接続によって、符号化されたビデオデータにアクセスすることができる。これには、ワイヤレスチャネル(たとえばWi−Fi(登録商標)接続)、有線接続(たとえば、DSL、ケーブルモデムなど)、またはファイルサーバ上に格納された符号化されたビデオデータにアクセスするのに適した両者の組合せがあり得る。ストレージデバイス31からの符号化されたビデオデータの送信は、ストリーミング送信、ダウンロード送信、または両者の組合せであってよい。
[0036]本開示の技法は、必ずしもワイヤレスアプリケーションまたは設定に限定されるとは限らない。これらの技法は、無線テレビジョン放送、ケーブルテレビジョン放送、衛星テレビジョン放送、たとえばインターネットを介したストリーミングビデオ放送、データ記憶媒体上での格納を目的としたデジタルビデオの符号化、データ記憶媒体場に格納されたデジタルビデオの復号化、または他のアプリケーションなどの様々なマルチメディアアプリケーションのうちいずれかをサポートするビデオコーディングに適用され得る。いくつかの例では、システム10は、ビデオストリーミング、ビデオ再生、ビデオブロードキャスティング、および/またはビデオ電話などのアプリケーションをサポートするために、一方向または双方向のビデオ伝送をサポートするように構成され得る。
[0037]図1の例では、ソースデバイス12は、ビデオソース18と、ビデオエンコーダ20と、出力インターフェース22とを含む。場合によっては、出力インターフェース22は、変調器/復調器(モデム)および/または送信機を含むことがある。ソースデバイス12において、ビデオソース18は、ビデオキャプチャデバイス、たとえばビデオカメラ、以前にキャプチャされたビデオを含むビデオアーカイブ、ビデオコンテンツプロバイダからビデオを受信するビデオフィードインターフェース、および/またはソースビデオとしてコンピュータグラフィックスデータを生成するためのコンピュータグラフィックスシステム、またはそのようなソースの組合せなどのソースを含んでよい。一例として、ビデオソース18がビデオカメラである場合、ソースデバイス12と宛先デバイス14は、いわゆるカメラ付き携帯電話またはビデオ電話を形成することがある。しかしながら、本開示で説明される技法は、一般にビデオコーディングに適用可能とすることができ、ワイヤレスアプリケーションおよび/または有線アプリケーションに適用され得る。
[0038]キャプチャされたビデオ、以前にキャプチャされたビデオ、またはコンピュータにより生成されたビデオは、ビデオエンコーダ20によって符号化され得る。符号化されたビデオデータは、ソースデバイス12の出力インターフェース22を介して宛先デバイス14に直接送信され得る。また(または、あるいは)、符号化されたビデオデータは、宛先デバイス14または他のデバイスによる後ほどのアクセスのために、復号、および/または再生のために、ストレージデバイス31上に格納されることがある。
[0039]宛先デバイス14は、入力インターフェース28と、ビデオデコーダ30と、ディスプレイデバイス32とを含む。場合によっては、入力インターフェース28は、受信機および/またはモデムを含むことがある。宛先デバイス14の入力インターフェース28は、符号化されたビデオデータを、リンク16を経由して受信する。リンク16を経由して通信される、またはストレージデバイス31に提供される、符号化されたビデオデータは、ビデオデータを復号する際にビデオデコーダ30などのビデオデコーダが使用するためにビデオエンコーダ20によって生成される様々なシンタックス要素を含むことができる。そのようなシンタックス要素は、通信媒体上で送信される、記憶媒体上に格納される、またはファイルサーバに格納される、符号化されたビデオデータに付属され得る。
[0040]ディスプレイデバイス32は、宛先デバイス14と一体化されてもよいし、宛先デバイス14の外部にあってもよい。いくつかの例では、宛先デバイス14は、一体型ディスプレイデバイスを含み、また、外部ディスプレイデバイスとインターフェースするように構成されることがある。他の例では、宛先デバイス14がディスプレイデバイスであることがある。一般に、ディスプレイデバイス32は、復号されたビデオデータをユーザに表示し、液晶ディスプレイ(LCD)、プラズマディスプレイ、有機発光ダイオード(OLED)ディスプレイ、または別のタイプのディスプレイデバイスなどの様々なディスプレイデバイスのうちいずれかを備えてよい。
[0041]ビデオエンコーダ20およびビデオデコーダ30は、現在作成中の高効率ビデオコーディング(HEVC)規格などのビデオ圧縮規格に従って動作することができ、HEVCテストモデル(HM)に準拠することができる。あるいは、ビデオエンコーダ20およびビデオデコーダ30は、あるいはMPEG4、Part10、Advanced Video Coding(AVC)と呼ばれるITU−T H.264規格などの他の自社策定規格または業界標準、またはそのような規格の拡張規格に従って動作してよい。しかしながら、本開示の技法は、いずれの特定のコーディング規格にも限定されない。ビデオ圧縮規格の他の例としては、MPEG−2およびITU−T H.263がある。
[0042]図1に示されていないが、いくつかの態様では、ビデオエンコーダ20およびビデオデコーダ30は、各々オーディオエンコーダおよびオーディオデコーダと一体化されることがあり、共通データストリームまたは別個のデータストリームにおける音声とビデオの両方の符号化を扱うために、適切なMUX−DEMUXユニットまたは他のハードウェアおよびソフトウェアを含むことがある。該当する場合、いくつかの例では、MUX−DEMUXユニットが、ITU H.223マルチプレクサプロトコル、またはユーザデータグラムプロトコル(UDP)などの他のプロトコルに準拠することがある。
[0043]ビデオエンコーダ20およびビデオデコーダ30は各々、1つまたは複数のマイクロプロセッサ、デジタルシグナルプロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ディスクリートロジック、ソフトウェア、ハードウェア、ファームウェア、またはこれらの任意の組合せなどの様々な適切なエンコーダ回路のうちいずれかとして実施され得る。技法がソフトウェアにおいて部分的に実施されるとき、デバイスは、本開示の技法を実行するために、適切な非一時的コンピュータ可読媒体にソフトウェア用の命令を格納し、この命令を1つまたは複数のプロセッサを使用してハードウェアにおいて実行することができる。ビデオエンコーダ20およびビデオデコーダ30の各々は、1つまたは複数のエンコーダまたはデコーダに含まれてよく、これらのうちいずれも、それぞれのデバイスにおいて複合エンコーダ/デコーダ(CODEC)として一体化されてよい。
[0044]JCT−VCは、HEVC規格の作成に関する作業を行っている。HEVC標準化作業は、HEVCテストモデル(HM)と呼ばれるビデオコーディングデバイスの発展的モデルに基づいている。HMは、たとえばITU−T H.264/AVCにより、既存のデバイスに対するビデオコーディングデバイスのいくつかの追加機能を仮定する。たとえば、H.264は9つのイントラ予測符号化モードを提供するが、HMは33ものイントラ予測符号化モードを提供することができる。
[0045]一般に、HMの作業モデルは、ビデオフレームすなわちピクチャが、輝度(luma)サンプルと彩度(chroma)サンプルの両方を含むツリーブロックすなわち最大コーディング単位(LCU)のシーケンスに分けられ得ることについて説明する。ツリーブロックは、H.264規格のマクロブロックと類似の目的を有する。スライスは、いくつかの連続するツリーブロックをコーディング順に含む。ビデオフレームすなわちピクチャは、1つまたは複数のスライスに分割され得る。各ツリーブロックは、4分木に従ってコーディング単位(CU)に分けられ得る。たとえば、ツリーブロックは、4分木のルートノードとして、4つの子ノードに分けられ得、各子ノードは親ノードであり得、別の4つの子ノードに分けられ得る。最終的な、分けられない子ノードは、4分木の葉ノードとして、コーディングノードすなわちコーディングされたビデオブロックを備える。コーディングされたビットストリームに関連付けられたシンタックスデータは、ツリーブロックが分けられ得る最大回数を定義することができ、コーディングノードの最小サイズも定義することができる。
[0046]CUは、輝度コーディングブロックと、2つの彩度コーディングブロックとを含むことができる。CUは、関連付けられた予測ユニット(PU)と、変換ユニット(TU)とを有することができる。PUの各々は、1つの輝度予測ブロックと、2つの彩度予測ブロックとを含むことができ、TUの各々は、1つの輝度変換ブロックと、2つの彩度変換ブロックとを含むことができる。コーディングブロックの各々は、同じ予測が適用されるサンプルに対するブロックを備える1つまたは複数の予測ブロックに分割され得る。コーディングブロックの各々は、同じ変換が適用されるサンプルのブロックを備える1つまたは複数の変換ブロックにも分割され得る。
[0047]CUのサイズは、一般に、コーディングノードのサイズに対応し、通常、形状は方形である。CUのサイズは、8×8ピクセルからツリーブロックのサイズまでに及び、最大64×64ピクセルまたはそれ以上であってよい。各CUは、1つまたは複数のPUと、1つまたは複数のTUとを定義することができる。CUに含まれるシンタックスデータは、たとえば、1つまたは複数の予測ブロックへのコーディングブロックの分割について説明することができる。分割モードは、CUがスキップもしくは直接モード符号化されているか、イントラ予測モード符号化されているか、またはインター予測モード符号化されているかどうかで異なってよい。予測ブロックは、形状が方形に分割されてもよいし、非方形に分割されてもよい。CUに含まれるシンタックスデータは、たとえば、4分木による1つまたは複数の変換ブロックへのコーディングブロックの分割についても説明することができる。変換ブロックは、形状が方形に分割されてもよいし、非方形に分割されてもよい。
[0048]HEVC規格は、TUに従った変換を可能にし、それはCUによって異なってよい。TUは、通常、分割されたLCUに対して定義された所与のCU内のPUのサイズに基づいたサイズにされるが、これは常に当てはまるとは限らないことがある。TUは、通常、PUと同じサイズかまたはPUよりも小さい。いくつかの例では、CUに対応する残りのサンプルは、「残差4分木(residual quad tree)」(RQT)として知られる4分木構造を使用して、より小さなユニットに細分され得る。RQTの葉ノードは、TUを表すことができる。TUに関連付けられたピクセル差値は、変換係数を生じるように変換され得、この変換係数は量子化され得る。
[0049]一般に、PUは、予測プロセスに関連するデータを含む。たとえば、PUがイントラモード符号化される場合、PUは、PUのイントラ予測モードについて説明するデータを含むことがある。別の例として、PUがインターモード符号化される場合、PUは、PUの動きベクトルを定義するデータを含むことがある。PUの動きベクトルを定義するデータは、たとえば、動きベクトルの水平成分、動きベクトルの垂直成分、動きベクトルの分解能(たとえば、4分の1ピクセル精度または8分の1ピクセル精度)、動きベクトルが指す参照ピクチャ、および/または動きベクトルに対する参照ピクチャリスト(たとえば、リスト0、リスト1、またはリストC)について説明することがある。
[0050]一般に、TUは、変換プロセスおよび量子化プロセスのために使用される。1つまたは複数のPUを有する所与のCUは、1つまたは複数のTUも含むことができる。予測に続いて、ビデオエンコーダ20は、PUに応じて、コーディングノードによって識別されたビデオブロックから残差値を計算することができる。次いで、コーディングノードは、元のビデオブロックではなく残差値を参照するようにアップデートされる。この残差値はピクセル差値を備え、このピクセル差値は、変換係数に変換され、量子化され、エントロピーコーディングのためのシリアライズされた変換係数を生じるために変換とTUで指定された他の変換情報とを使用して走査され得る。コーディングノードは、もう一度、これらのシリアライズされた変換係数を参照するようにアップデートされてよい。本開示は、通常、CUのコーディングノードを指すために、「ビデオブロック」という用語を使用する。いくつかの特別な場合では、本開示は、ツリーブロックすなわちLCU、またはコーディングノードとPUとTUとを含むCUを指すために、「ビデオブロック」という用語も使用することがある。
[0051]ビデオシーケンスは、通常、ビデオフレームすなわちピクチャのシリーズを含む。ピクチャのグループ(GOP)は、一般に、ビデオピクチャのうち1つまたは複数からなるシリーズを備える。GOPは、GOPに含まれるいくつかのピクチャについて説明するシンタックスデータをGOPのヘッダ、ピクチャのうち1つまたは複数のヘッダ、または他の場所に含むことができる。ピクチャの各スライスは、それぞれのスライスに対する符号化モードについて説明するスライスシンタックスデータを含むことができる。ビデオエンコーダ20は、通常、ビデオデータを符号化するために、個々のビデオスライス内のビデオブロックに対して動作する。ビデオブロックは、CU内のコーディングノードに対応することができる。ビデオブロックは、固定サイズを有しても可変サイズを有してもよく、指定されたコーディング規格に応じてサイズが異なってよい。
[0052]一例として、HMは、様々なPUサイズにおける予測をサポートする。特定のCUのサイズが2N×2Nであると仮定すると、HMは、2N×2NまたはN×NのPUサイズのイントラ予測と、2N×2N、2N×N、N×2N、またはN×Nの対称的PUサイズにおけるインター予測とをサポートする。HMは、2N×nU、2N×nD、nL×2N、およびnR×2NのPUサイズにおけるインター予測に対する非対称分割もサポートする。非対称分割では、CUの一方向は分割されないが、他の方向は25%および75%に分割される。25%区画に対応するCUの部分は、「上」、「下」、「左」、または「右」の指示が続く「n」によって示される。したがって、たとえば、「2N×nU」は、上側2N×0.5N PUおよび下側2N×1.5N PUにより水平に分割される2N×2N CUを指す。
[0053]本開示では、「N×N」と「N掛けるN」は、垂直次元および水平次元に関するビデオブロックのピクセル次元を指すために互換的に使用されることがあり、たとえば、16×16ピクセルまたは16掛ける16ピクセルである。一般に、16×16ブロックは、垂直方向の16のピクセル(y=16)と、水平方向の16のピクセル(x=16)とを有する。同様に、N×Nブロックは、一般に、垂直方向のNピクセルと、水平方向のNピクセルとを有し、ここで、Nは非負整数値を表す。ブロック内のピクセルは、行および列に並べられ得る。その上、ブロックは、必ずしも垂直方向と同じ数のピクセルを水平方向に有する必要はない。たとえば、ブロックはN×Mピクセルを備えてよく、ここで、Mは必ずしもNに等しくない。
[0054]CUのPUを使用したイントラ予測コーディングまたはインター予測コーディングに続いて、ビデオエンコーダ20は、CUのTUによって指定された変換が適用される残差データを計算することができる。残差データは、符号化されていないピクチャのピクセルとCUに対応する予測値のピクセル差に対応することができる。ビデオエンコーダ20は、CUに対する残差データを形成し、次いで変換係数を生ずるために残差データを変換することができる。
[0055]変換係数を生ずるための任意の変換に続いて、ビデオエンコーダ20は、変換係数の量子化を実行することができる。量子化とは、一般に、場合によっては係数を表すために使用されるデータの量を減少させるために変換係数が量子化され、さらなる圧縮を提供するプロセスを指す。量子化プロセスは、係数のうちいくつかまたはすべてに関連付けられるビット深度を減少させることができる。たとえば、nビット値は、量子化中にmビット値に丸められてよく、ここで、nはmよりも大きい。
[0056]いくつかの例では、ビデオエンコーダ20は、エントロピー符号化可能なシリアライズされたベクトルを生ずるように量子化された変換係数を走査するために、あらかじめ定義された走査順を利用することができる。他の例では、ビデオエンコーダ20は、適応型走査を実行することができる。一次元ベクトルを形成するために量子化された変換係数を走査した後、ビデオエンコーダ20は、たとえば、コンテキスト適応型可変長コーディング(CAVLC:context adaptive variable length coding)、コンテキスト適応型2進算術コーディング(CABAC:context adaptive binary arithmetic coding)、シンタックスベースコンテキスト適応型2進算術コーディング(SBAC:syntax-based context-adaptive binary arithmetic coding)、確率間隔分割エントロピー(PIPE:Probability Interval Partitioning Entropy)コーディング、または別のエントロピー符号化法に従って、一次元ベクトルをエントロピー符号化することができる。ビデオエンコーダ20は、ビデオデータを復号する際にビデオデコーダ30が使用するための符号化されたビデオデータに関連付けられたシンタックス要素もエントロピー符号化することができる。
[0057]CABACを実行するために、ビデオエンコーダ20は、コンテキストモデル内のコンテキストを、送信されるべきシンボルに割り当てることができる。コンテキストは、たとえば、シンボルの隣接する値が非ゼロかどうかに関連することがある。CAVLCを実行するために、ビデオエンコーダ20は、送信されるべきシンボルに対して可変長コードを選択することができる。VLC内のコードワードは、比較的短いコードが優勢シンボルに対応し、長いコードが劣勢シンボルに対応するように構築され得る。このようにして、VLCの使用は、たとえば、送信されるべき各シンボルに対して等長コードワードを使用する間、ビット節約を達成することができる。確率決定は、シンボルに割り当てられたコンテキストに基づいてよい。
[0058]ビデオエンコーダ20およびビデオデコーダ30の一方または両方は、時間的にスケーラブルなビットストリームをサポートしながら漸次復号リフレッシュ(GDR:gradual decoding refresh)によりビデオデータをコーディングするための本開示の技法を実施することができる。ビデオエンコーダ20は、GDRセットを形成するために、ピクチャのシリーズまたはシーケンスを符号化するように構成されてもよいし、そのように動作可能であってもよい。たとえば、ビデオエンコーダ20および/またはビデオデコーダ30は、ピクチャのそれぞれの部分のイントラコーディングを介してGDRセットの各ピクチャが漸進的にリフレッシュされることを決定することができる。異なる部分が、GDRセットを形成するピクチャのシリーズにわたって連続してイントラリフレッシュされるので、GDRセットの最後のピクチャ(および1つまたは複数の後続ピクチャ)は完全にリフレッシュされ得る。次に、ビデオエンコーダ20は、GDRセットを、符号化されたビデオビットストリームの一部として、ビデオデコーダ30にシグナリングすることができる。
[0059]ビデオエンコーダ20およびビデオデコーダ30の一方または両方は、第1のGDRピクチャで始まり、復号順に第1のGDRピクチャに続く1つまたは複数のピクチャを含むピクチャのシーケンスとして、GDRセットを識別することができる。さらに、GDRセットを識別するために、ビデオエンコーダ20および/またはビデオデコーダ30は、GDRピクチャを、リカバリーポイントSEIメッセージに関連付けられたピクチャとして識別することができる。たとえば、ビデオエンコーダ20は、「recovery_poc_cnt」シンタックス要素を含むようにリカバリーポイントSEIメッセージを生成することができる。ビデオエンコーダ20は、第1のGDRピクチャのPOC値と、同じGDRセットに関連付けられたリカバリーポイントピクチャとの差すなわちデルタを示す値を有するように、recovery_poc_cntシンタックス要素を生成することができる。リカバリーポイントピクチャは、通常、ビデオエンコーダ20によって作成される元のGDRセットにおける最後のピクチャとなる。
[0060]ビデオエンコーダ20は、GDRにより、GDRセット内のピクチャのリフレッシュ領域および非リフレッシュ領域に関する情報を含む領域リフレッシュ情報SEIメッセージも生成およびシグナリングすることができる。たとえば、ビデオエンコーダ20は、GDRセットの各符号化されたピクチャに対する領域リフレッシュ情報SEIメッセージをシグナリングすることができる。次に、ビデオデコーダ30は、対応するピクチャのリフレッシュ領域を決定するために各領域リフレッシュ情報SEIメッセージを復号することができる。たとえば、ビデオエンコーダ20は、GDRセットの各ピクチャに対応するAUにおけるそれぞれの領域リフレッシュ情報SEIメッセージをシグナリングすることができる。様々な例では、ビデオデコーダ30は、ピクチャ全体がリフレッシュ領域に対応することを決定するためにGDRセット内の最後のピクチャに対応する領域リフレッシュ情報SEIメッセージを復号することができる。言い換えれば、そのような例では、ビデオデコーダ30は、ビデオエンコーダ20によるピクチャと同じAUにおいてシグナリングされた領域リフレッシュ情報SEIメッセージ信号を復号することに基づいて、GDR内の最後のピクチャが設定される「完全にリフレッシュされる」ことを決定することができる。HEVCワーキングドラフト(たとえば「WD9」)においてサポートされるSEIメッセージの概要が以下の表1に示されている。
[0061]HEVC WD9でサポートされるリカバリーポイントSEIメッセージに関するシンタックスおよびセマンティクスが、以下のシンタックス表1に示される。
[0062]HEVC WD9でサポートされる領域リフレッシュSEIメッセージに関するシンタックスおよびセマンティクスが、以下のシンタックス表2に示される。
[0063]ビデオデコーダ30は、受信された符号化されたビデオビットストリームにおいてリカバリーポイントSEIメッセージを検出したことに基づいて、GDRセットの開始を検出することができる。さらに、ビデオデコーダ30は、リカバリーポイントSEIメッセージに関連付けられた符号化されたピクチャを第1のGDRピクチャとして識別することができる。たとえば、リカバリーポイントSEIメッセージは、ピクチャと同じアクセスユニット(AU)に含まれることによって、特定のピクチャに関連付けられ得る。次に、ビデオデコーダ30は、リカバリーポイントピクチャのPOC値を決定するために、recovery_poc_cntシンタックス要素の値をGDRピクチャのPOC値に適用することができる。導出されたPOC値を適用することによってリカバリーポイントピクチャを検出するとき、ビデオデコーダ30は、リカバリーポイントピクチャは完全にリフレッシュされたピクチャであること、およびリカバリーポイントピクチャ、ならびに復号順でリカバリーポイントピクチャに続く1つまたは複数のピクチャが正しくまたはほぼ正しく復号(たとえばイントラ復号)可能であることを決定することができる。
[0064]さらに、ビデオデコーダ30は、GDRセット内のピクチャのリフレッシュ領域および非リフレッシュ領域に関する情報を取得するために、ビットストリームにおいてシグナリングされる1つまたは複数の領域リフレッシュ情報SEIメッセージを復号することができる。たとえば、ビデオデコーダ30は、GDRセット内の各ピクチャに対する個別の領域リフレッシュ情報SEIメッセージを復号することができる。一例として、ビデオデコーダ30は、GDRセットの対応するピクチャを含む各AUに含まれるそれぞれの領域リフレッシュ情報SEIメッセージを復号することができる。次に、ビデオデコーダ30は、特定のピクチャに対応する領域リフレッシュ情報SEIメッセージを復号することから取得されるデータに基づいて、特定のピクチャのリフレッシュ領域(および/または逆に、非リフレッシュ領域)を決定することができる。関連付けられたピクチャの全体がリフレッシュ領域に対応することを示す領域リフレッシュ情報SEIメッセージを復号するとき、ビデオデコーダ30は、関連付けられたピクチャが完全にリフレッシュされることを決定することができる。たとえば、ビデオデコーダ30は、完全にリフレッシュされたピクチャがGDRセット内の最後のピクチャを形成することを決定することができる。ピクチャがGDRセット内の最後のピクチャであることを決定し、それによって、そのピクチャが完全にリフレッシュされることを決定したことに基づいて、ビデオデコーダ30は、GDRセット内の最後のピクチャ、ならびに復号順にGDRセット内の最後のピクチャに続く1つまたは複数のピクチャが、正しくまたはほぼ正しく復号(たとえばイントラ復号)可能であることを決定することができる。通常、ビデオデコーダ30は、リカバリーポイントSEIメッセージによって識別されるリカバリーポイントピクチャは、完全にリフレッシュされた状態を示す対応する領域リフレッシュ情報SEIメッセージによって識別される、同じGDRセット内の最後のピクチャと同じであることを決定する。
[0065]さらに、HEVC WD9によれば、ビデオエンコーダ20およびビデオデコーダ30の一方または両方は、符号化されたビデオビットストリームの時間的スケーラビリティをサポートすることができる。たとえば、ビデオエンコーダ20およびビデオデコーダ30は、異なる符号化されたビデオビットストリームによって提供される様々なピクチャレート(すなわち「フレームレート」)をサポートすることができる。たとえば、ビデオエンコーダ20は、上位の時間的レイヤを表す完全な符号化されたビデオビットストリームをシグナリングすることができる。完全な符号化されたビデオビットストリームよりも下位の時間的ピクチャレートをサポートするために、ビデオデコーダ30、または中間ネットワーク要素またはサーバなどの、ビデオエンコーダ20とビデオデコーダ30の間に配置された中間デバイスは、完全な符号化されたビデオビットストリームの時間的サブセットを抽出することができる。特定の例では、中間デバイスは、完全な符号化されたビデオビットストリームに含まれる符号化されたピクチャのサブセットを抽出し、この抽出されたサブセットをビデオデコーダ30に中継することができる。言い換えれば、ビデオデコーダ30で実際に受信される符号化されたピクチャのサブセットは、ビデオエンコーダ20によって当初生成された完全な符号化されたビデオビットストリーム、または時間的スケーリングの場合は、ビデオエンコーダ20によって当初生成された完全な符号化されたビデオビットストリームと比較して、少なくとも1つ少ない(at least one less)符号化ピクチャを含み得る。より低いピクチャレートをサポートするためにビデオデコーダ30によって受信される符号化されたピクチャのサブセットは、本明細書では「時間的サブセット」または「サブビットストリーム」と呼ばれる。
[0066]ビデオデコーダ30は、符号化されたビデオビットストリームの時間的スケーラビリティにより提供される異なるピクチャレートに従って、異なる時間的サブセットを受信し得る。一例では、ビデオデコーダ30は、ビデオエンコーダ20によって当初シグナリングされた完全な符号化されたビデオビットストリームの第1の時間的サブセットを受信および復号することによって、低いピクチャレートをサポートすることができる。この例によれば、ビデオデコーダ30は、第1の時間的サブセットよりもより少なくとも1つ多くの(at least one more)符号化ピクチャを含むが、完全な符号化されたビデオビットストリームよりも少なくとも1つ少ない(at least one less)符号化ピクチャを含む第2の時間的サブセットを受信および復号することによって、中間ピクチャレートをサポートし得る。この例では、ビデオデコーダ20は、ビデオエンコーダ20によって当初シグナリングされた完全な符号化されたビデオビットストリームの全体(たとえば、符号化されたピクチャのセット全体)を受信および復号することによって、可能な限り高いピクチャレートをサポートし得る。
[0067]しかしながら、HEVC WD9に従ってビデオデコーダ30が時間的サブセットの一部としてGDRセットを受信するいくつかの例では、当初は符号化されたビットストリームからの実際のリカバリーポイントピクチャが、ビデオデコーダ30によって受信される符号化されたビデオビットストリームに存在しないことがあるように、リカバリーポイントピクチャは、時間的サブセットの抽出中に破棄され、デコーダに送信されないことがある。その結果、これらの例では、ビデオデコーダ30は、リカバリーポイントSEIメッセージに含まれるrecovery_poc_cntシンタックス要素の値を適用することによってリカバリーポイントピクチャを特定することができないことがある。言い換えれば、ビデオデコーダ30は、GDRにより完全にリフレッシュされるGDRセットの終端においてピクチャを識別できないことがある。その結果、デコーダ30におけるGDR動作が適切に動作しないことがある。
[0068]時間的にスケーリングされたGDRセットに関して上記で説明された潜在的な間違いを軽減または解消するために、ビデオデコーダ30は、本開示の1つまたは複数の技法を実施することができる。本明細書で説明される技法のいくつかの実装形態では、ビデオデコーダ30は、リカバリーポイントSEIメッセージ内のrecovery_poc_cntシンタックス要素によって識別されるリカバリーポイントピクチャが、受信された符号化されたビデオビットストリームに含まれるかどうか決定することができる。ビデオデコーダ30が、recovery_poc_cntシンタックス要素の値からPOC値を計算することに基づいて、リカバリーポイントピクチャは符号化されたビデオビットストリームに含まれると決定する場合、ビデオデコーダ30は、そのようなピクチャをリカバリーポイントピクチャと識別することができる。その後、デコーダ30は、リカバリーポイントピクチャと後続のピクチャとを、完全にリフレッシュされたピクチャとして使用することができる。たとえば、ビデオデコーダ30は、ランダムアクセスを実行することによって、リカバリーポイントピクチャと復号順に1つまたは複数の後続のピクチャとを復号することができる。さらに、この例では、ビデオデコーダ30はまた、リカバリーポイントピクチャをGDRセット内の最後のピクチャとして識別することができる。ビデオデコーダ30によって識別される、GDRセット内の最後のピクチャは、本明細書では、「lastPicInSet」によって示される変数と呼ばれることがある。lastPicInSetが、リカバリーポイントSEIメッセージにおいて識別されるリカバリーポイントピクチャである例では、ビデオデコーダ30は、lastPicInSetがGDRにより完全にリフレッシュされると決定することができる。
[0069]一方、ビデオデコーダ30が、recovery_poc_cntシンタックス要素の値から導出されたPOC値ピクチャを特定できない場合、ビデオデコーダ30は、代替リカバリーポイントピクチャを識別するために、本開示の1つまたは複数の技法を実施することができる。いくつかの例では、ビデオデコーダ30は、リカバリーポイントピクチャを、recovery_poc_cntシンタックス要素から導出されたPOC値よりも大きいPOC値を有する、復号順で第1の(最初の)ピクチャとして識別することができる。たとえば、ビデオデコーダは、recovery_poc_cntシンタックス要素の値を第1のGDRピクチャのPOC値に追加することによって、識別されたリカバリーポイントピクチャのPOC値を導出することができる。さらに、これらの例では、ビデオデコーダ30は、lastPicInSetが識別されたリカバリーポイントピクチャのすぐ前に来るピクチャであることを決定することができる。たとえば、lastPicInSetは、recovery_poc_cntシンタックス要素から導出されるPOC値よりも小さいPOC値を有する、復号順で最後のピクチャであることがあり、リカバリーポイントは、recovery_poc_cntシンタックス要素から導出されるPOC値よりも大きいPOC値を有する、復号順で第1の(最初の)ピクチャであることがある。したがって、リカバリーポイントSEIメッセージによって識別されたリカバリーポイントピクチャが時間的スケーリング中に破棄された例では、ビデオデコーダ30は、復号順で連続する2つの別個のピクチャをそれぞれlastPicInSetおよびリカバリーポイントピクチャとして識別するために、本開示の技法を実施することができる。
[0070]次に、この例では、ビデオデコーダ30は、復号順にGDRセットに続く1つまたは複数のピクチャに対してランダムアクセス復号を実行することができる。したがって、1つのケースでは、リカバリーポイントピクチャのPOC値を有するピクチャが、デコーダ30によって受信されるビットストリーム内に存在する場合、デコーダは、そのピクチャをリカバリーポイントピクチャと関連GDRセットの最後のピクチャの両方として選択する。他のケースでは、リカバリーポイントピクチャのPOC値を有するピクチャが、デコーダ30によって受信されるビットストリーム内に存在しない場合、デコーダは、上記で説明されたように、1つのピクチャをリカバリーポイントピクチャとして、異なるピクチャを関連GDRセットの最後のピクチャとして選択する。この第2のケースでは、選択されるリカバリーポイントピクチャは、受信されたビットストリーム内の、recovery_poc_cntシンタックス要素から導出されたPOC値よりも大きいPOC値を有する、復号順で第1の(最初の)ピクチャであり、GDRセット内の選択される最後のピクチャは、受信されたビットストリーム内の、recovery_poc_cntシンタックス要素から導出されたPOC値よりも小さいPOC値を有する、復号順で最後のピクチャ、すなわち、選択されたリカバリーポイントピクチャのすぐ前に来るピクチャである。さらに、この第2のケースでは、ビデオデコーダ30は、対応する領域リフレッシュ情報SEIメッセージが完全にリフレッシュされていない示すピクチャ(たとえばリフレッシュ領域と非リフレッシュ領域の両方を含むピクチャ)を、GDRセット内の最後のピクチャとして選択し得る。
[0071]いくつかの例では、ビデオデコーダ30は、GDRセットのlastPicInSetに関連付けられた1つまたは複数の領域リフレッシュSEIメッセージに対して、本開示の技法を実施することがある。たとえば、ビデオデコーダ30が、lastPicInSetがリカバリーポイントピクチャでもあることを決定する場合、ビデオデコーダ30は、ピクチャに対応する領域リフレッシュSEIメッセージが、ピクチャ全体がピクチャのリフレッシュ領域に属することを示すことを決定することがある。上記で説明されたように、様々な例では、ビデオデコーダ30が、リカバリーポイントSEIメッセージによって示される、リカバリーポイントピクチャのためのPOC値を有するGDRセット内のピクチャを検出する場合、ビデオデコーダ30は、lastPicInSetはリカバリーポイントピクチャでもあることを決定することができる。
[0072]そのような一例では、ビデオデコーダ30は、領域リフレッシュSEIメッセージが、1という値に設定されたrefreshed_region_flagシンタックス要素を含み、ピクチャを含むAUの第1のスライスセグメントに関連付けられることを決定することができる。この例によれば、AUの第1のスライスセグメントのためのrefreshed_region_flagシンタックス要素が1に設定されることに基づいて、ビデオデコーダ30は、AUの残りのスライスセグメントのためのrefreshed_region_flagシンタックス要素も1という値に設定されることを決定することができる。このようにして、ビデオデコーダ30は、lastPicInSetがリカバリーポイントピクチャでもあるとき、lastPicInSetは完全にリフレッシュされたピクチャであることを決定することができる。
[0073]本明細書で説明される技法の潜在的利点は、ビデオデコーダ30が、既存のハードウェアインフラストラクチャの変更を必要とせずに、時間的にスケーリングされるビットストリームに対してGDRをサポートし得ることである。さらに、いくつかの例では、本明細書で説明される技法は、リカバリーポイントSEIメッセージまたは領域リフレッシュSEIメッセージのいずれかを生成することに関する何らかの変更をビデオエンコーダ20が実施することを必要としない。代わりに、ビデオデコーダ30は、時間的にスケーラブルなビットストリームに対してGDRをサポートするようにリカバリーポイントSEIメッセージおよび/または領域リフレッシュSEIメッセージに含まれる情報を処理するために技法を実施することができる。言い換えれば、いくつかの例では、本開示の技法は、リカバリーポイントSEIメッセージおよび/または領域リフレッシュSEIメッセージのいずれかのシンタックスの変更をもたらすことなく、これらのSEIメッセージのセマンティクスの変更をもたらすことができる。
[0074]このようにして、宛先デバイス14は、符号化されたビデオデータを記憶するように構成されたメモリと、ビデオデコーダすなわちビデオデコーダ30を備える、ビデオデータを復号するためのデバイスの一例であることがある。さらに、上記で説明された技法によれば、ビデオデコーダ30は、複数のピクチャを受信し、復号順で第1のピクチャに続くピクチャがリカバリーポイントピクチャのPOC値に等しいPOC値を有するとき、複数のピクチャのうち第1のピクチャに関連付けられたメッセージにおける、漸次復号リフレッシュ(GDR)セットのリカバリーポイントピクチャのPOC値を示す情報を受信し、リカバリーポイントピクチャのPOC値に等しいPOC値を有するピクチャをリカバリーポイントピクチャと識別し、第1のピクチャに続くピクチャのいずれもリカバリーポイントピクチャのPOC値に等しいPOC値を有さないとき、リカバリーポイントピクチャのPOC値よりも大きいPOC値を有するピクチャのうち1つをリカバリーポイントピクチャと識別するように構成されたビデオデコーダの一例であることがある。
[0075]さらに、いくつかの例では、ビデオデコーダ30は、リカバリーポイントピクチャのPOC値に等しいPOC値を有するピクチャをリカバリーポイントピクチャと識別したことに応答して、リカバリーポイントピクチャのPOC値に等しいPOC値を有するピクチャをGDRセットの最後のピクチャと識別し、リカバリーポイントピクチャのうちPOC値よりも大きいPOC値を有するピクチャをリカバリーポイントピクチャと識別したことに応答して、リカバリーポイントピクチャのPOC値よりも小さいPOC値を有するピクチャのうち1つをGDRセットの最後のピクチャと識別するようにさらに構成され得る。いくつかの例では、リカバリーポイントピクチャのPOC値よりも小さいPOC値を有するピクチャのPOC値は、第1のピクチャのPOC値よりも大きい。いくつかの例では、メッセージは付加拡張情報(SEI)メッセージを備える。そのような一例では、SEIメッセージはリカバリーポイントSEIメッセージを備える。
[0076]いくつかの例では、リカバリーポイントピクチャのPOC値を示す情報は、第1のピクチャのPOC値とリカバリーポイントピクチャのPOC値の間の差を示す情報を備える。いくつかの例では、リカバリーポイントピクチャのPOC値を示す情報は、リカバリーポイントピクチャのPOC値を備える。いくつかの例によれば、ビデオコーダは、GDRによりGDRセットの1つまたは複数のピクチャを復号するようにさらに構成される。1つのそのような例によれば、ビデオコーダは、識別されたリカバリーポイントピクチャおよび復号順でこの識別されたリカバリーポイントピクチャに続く1つまたは複数のピクチャに対して、ランダムアクセス復号を実行するようにさらに構成される。
[0077]さらに、上記で説明された技法によれば、宛先デバイスは、符号化されたビデオデータを記憶するメモリとビデオコーダとを含む、ビデオデータを復号するためのデバイスの一例であることがある。これらの例では、ビデオデコーダ30は、符号化されたビデオデータのピクチャに関連付けられたメッセージにおいて、ピクチャのリフレッシュ領域を示す情報を受信し、ピクチャが漸次デコーダリフレッシュ(GDR)セット内の最後のピクチャを備えるかどうか決定し、ピクチャがリカバリーポイントピクチャを備えるかどうか決定し、ピクチャがGDRセット内の最後のピクチャとリカバリーポイントピクチャとを備えることを決定したことに応答して、メッセージが、ピクチャ全体がピクチャのリフレッシュ領域に属することを示すことを決定するように構成されたビデオコーダの一例であることがある。いくつかの例では、メッセージは付加拡張情報(SEI)メッセージを備える。そのような一例では、SEIメッセージは領域リフレッシュSEIメッセージを備える。
[0078]いくつかの例では、メッセージが、ピクチャ全体がピクチャのリフレッシュ領域に属することを示すことを決定するために、ビデオコーダは、領域リフレッシュSEIメッセージに関連付けられたrefreshed_region_flagシンタックス要素が1という値を有することを決定するように構成され得る。そのような一例では、refreshed_region_flagシンタックス要素は、ピクチャを含むアクセスユニット(AU)の第1のスライスセグメントに関連付けられ、ピクチャ全体がリフレッシュ領域に属することを決定するために、ビデオコーダは、AUの第1のスライスセグメントと異なるAUの各スライスセグメントは対応するrefreshed_region_flagシンタックス要素に関連付けられたことを決定するように構成される。
[0079]図2は、本開示の1つまたは複数の態様による、ビデオデータを符号化するための技法を実施し得るビデオエンコーダ20の一例を示すブロック図である。ビデオエンコーダ20は、ビデオスライス内のビデオブロックのイントラコーディングおよびインターコーディングを実行することができる。イントラコーディングは、所与のビデオフレームすなわちピクチャ内のビデオにおける空間的冗長性を減少または除去するために空間的予測に依拠する。インターコーディングは、ビデオシーケンスの隣接するフレームすなわちピクチャ内のビデオにおける時間的冗長性を減少または除去するために時間的予測に依拠する。イントラ(I)モードは、いくつかの空間ベースコーディングモードのうちいずれかを指すことができる。単方向性予測(Pモード)または双方向予測(bi-prediction)(Bモード)などのインターモードは、いくつかの時間ベースコーディングモードのうちいずれかを指すことができる。
[0080]図2に示されるように、ビデオエンコーダ20は、符号化されるべきビデオフレーム内の現在のビデオブロックを受信する。図2の例では、ビデオエンコーダ20は、予測処理ユニット40と、参照フレームメモリ64と、加算器50と、変換処理ユニット52と、量子化ユニット54と、エントロピー符号化ユニット56とを含む。次に、予測処理ユニット41は、動き補償ユニット44と、動き推定ユニット42と、イントラ予測ユニット46と、分割ユニット48とを含む。ビデオブロック再構成のために、ビデオエンコーダ20はまた、逆量子化ユニット58と、逆変換ユニット60と、加算器62とを含む。再構成されたビデオからブロック歪みアーチファクトを除去するようにブロック境界をフィルタリングするために、デブロッキングフィルタ(図2に示されない)も含まれることがある。必要に応じて、デブロッキングフィルタは、通常、加算器62の出力をフィルタリングする。デブロッキングフィルタに加えて、追加フィルタ(インループまたはポストループ)も使用されてよい。そのようなフィルタは簡潔にするために示されていないが、必要に応じて、(インループフィルタとして)加算器62の出力をフィルタリングすることができる。
[0081]符号化プロセス中に、ビデオエンコーダ20は、コーディングされるべきビデオフレームまたはスライスを受信する。フレームすなわちスライスは、予測処理ユニット41によって複数のビデオブロックに分けられ得る。動き推定ユニット42および動き補償ユニット44は、時間的予測を提供するために、1つまたは複数の参照フレーム内の1つまたは複数のブロックに対して、受信されたブロックのインター予測コーディングを実行する。イントラ予測ユニット46は、あるいは、空間的予測を提供するためにコーディングされるべきブロックと同じフレームまたはスライス内の1つまたは複数の隣接するブロックに対して、受信されたビデオブロックのイントラ予測コーディングを実行することがある。ビデオエンコーダ20は、たとえば、ビデオデータの各ブロックに適したコーディングモードを選択するために、複数のコーディングパスを実行することができる。
[0082]その上、分割ユニット48は、前のコーディングパスにおける前の分割方式の評価に基づいて、ビデオデータのブロックをサブブロックに分割することができる。たとえば、分割ユニット48は、最初に、レート歪み分析(たとえばレート歪み最適化)に基づいて、フレームまたはスライスをLCUに分割し、LCUの各々をサブCUに分割することができる。予測処理ユニット40は、さらに、LCUのサブCUへの分割を示す4分木データ構造を生ずることができる。4分木の葉ノードCUは、1つまたは複数のPUと、1つまたは複数のTUとを含むことができる。
[0083]予測処理ユニット40は、たとえば誤り結果に基づいてコーディングモードのうち一方すなわちイントラまたはインターを選択し、結果として得られるイントラコーディングされたブロックまたはインターコーディングされたブロックを、残差ブロックデータを生成するために加算器50に、および参照フレームとして使用する目的で符号化されたブロックを再構成するために加算器62に提供することができる。予測処理ユニット40はまた、動きベクトル、イントラモードインジケータ、分割情報、および他のそのようなシンタックス情報などのシンタックス要素をエントロピー符号化ユニット56に提供する。予測処理ユニット40は、レート歪み分析を使用して1つまたは複数のインターモードを選択することができる。
[0084]動き推定ユニット42と動き補償ユニット44は高度に統合され得るが、概念的な目的のために個別に示されている。動き推定ユニット42によって実行される動き推定は、ビデオブロックの動きを推定する動きベクトルを生成するプロセスである。動きベクトルは、たとえば、現在のフレーム(または他の符号化単位)内でコーディングされる現在のブロックに対する参照フレーム(または他の符号化単位)内の予測ブロックに対する現在のビデオフレームまたはピクチャ内のビデオブロックのPUの変位を示すことができる。予測ブロックとは、ピクセル差に関して、コーディングされるべきブロックとぴったり合致することが分かっているブロックであり、ピクセル差は、絶対差の合計(SAD)、2乗差の合計(SSD)、または他の差メトリックによって決定され得る。いくつかの例では、ビデオエンコーダ20は、参照フレームメモリ64に記憶された参照ピクチャのサブ整数(sub-integer)ピクセル位置の値を計算することができる。たとえば、ビデオエンコーダ20は、参照ピクチャの4分の1ピクセル位置、8分の1ピクセル位置、または他の分数(fractional)ピクセル位置の値を補間することができる。したがって、動き推定ユニット42は、全ピクセル位置および分数ピクセル位置に対して動き探索を実行し、分数ピクセル精度を有する動きベクトルを出力することができる。
[0085]動き推定ユニット42は、PUの位置を参照ピクチャの予測ブロックの位置と比較することによって、インターコーディングされたスライス内のビデオブロックのPUの動きベクトルを計算する。参照ピクチャは、その各々は参照フレームメモリ64に記憶された1つまたは複数の参照ピクチャを識別する、第1の参照ピクチャリスト(リスト0)または第2の参照ピクチャリスト(リスト1)から選択され得る。動き推定ユニット42は、計算された動きベクトルをエントロピー符号化ユニット56および動き補償ユニット44に送る。
[0086]動き補償ユニット44によって実行される動き補償は、動き推定ユニット42によって決定された動きベクトルに基づいて予測ブロックをフェッチまたは生成することを含むことができる。この場合も、いくつかの例では、動き推定ユニット42と動き補償ユニット44は機能的に統合され得る。現在のビデオブロックのPUに対する動きベクトルを受信すると、動き補償ユニット44は、参照ピクチャリストのうち1つにおいて動きベクトルが指す予測ブロックを特定することができる。加算器50は、後述のように、コーディングされる現在のビデオブロックのピクセル値から予測ブロックのピクセル値を減算することによって残差ビデオブロックを形成し、ピクセル差値を形成する。一般に、動き推定ユニット42は輝度(luma)コーディングブロックに対して動き推定を実行し、動き補償ユニット44は、輝度コーディングブロックに基づいて計算された動きベクトルを、彩度(chroma)コーディングブロックと輝度コーディングブロックの両方に使用する。予測処理ユニット40はまた、ビデオスライスのビデオブロックを復号する際にビデオデコーダ30が使用するためのビデオブロックおよびビデオスライスに関連付けられたシンタックス要素を生成することができる。
[0087]イントラ予測ユニット46は、上記で説明されたように、動き推定ユニット42および動き補償ユニット44によって実行されるインター予測の代替として、現在のブロックをイントラ予測することができる。具体的には、イントラ予測ユニット46は、現在のブロックを符号化するために使用するイントラ予測モードを決定することができる。いくつかの例では、イントラ予測ユニット46は、たとえば別個の符号化パス中に、様々なイントラ予測モードを使用して現在のブロックを符号化することができ、イントラ予測ユニット46(または、いくつかの例では予測処理ユニット40)は、テストされるモードから使用するのに適したイントラ予測モードを選択することができる。
[0088]たとえば、イントラ予測ユニット46は、様々なテストされるイントラ予測モードに対するレート歪み分析を使用してレート歪み値を計算し、テストされるモードの中から最も良いレート歪み特性を有するイントラ予測モードを選択することができる。レート歪み分析は、一般に、符号化されたブロックと、その符号化されたブロックを生ずるために符号化された元の符号化されていないブロックと、ならびに符号化されたブロックを生ずるために使用されるビットレート(すなわちビットの数)との間の歪み(すなわち誤り)の量を決定する。イントラ予測ユニット46は、どのイントラ予測モードがブロックに対する最も良いレート歪み値を示すか決定するために、様々な符号化されたブロックに対する歪みおよびレートから比を計算することができる。
[0089]ブロックに対するイントラ予測モードを選択した後、イントラ予測ユニット46は、ブロックに対する選択されたイントラ予測モードを示す情報をエントロピー符号化ユニット56に提供することができる。エントロピー符号化ユニット56は、選択されたイントラ予測モードを示す情報を符号化することができる。ビデオエンコーダ20は、複数のイントラ予測モードインデックステーブルと複数の修正済みイントラ予測モードインデックステーブル(コードワードマッピングテーブルとも呼ばれる)とを含み得る送信されたビットストリーム構成データに、様々なブロックに対する符号化されるコンテキストの定義と、最も可能性の高いイントラ予測モード、イントラ予測モードインデックステーブル、およびコンテキストの各々に使用する修正済みイントラ予測モードインデックステーブルの指示とを含むことができる。
[0090]ビデオエンコーダ20は、コーディングされる元のビデオブロックからモード選択ユニット40からの予測データを減算することによってことによって、残差ビデオブロックを形成する。加算器50は、この減算動作を実行する1つまたは複数の構成要素を表す。変換処理ユニット52は、離散コサイン変換(DCT)または概念的に類似した変換などの変換を残差ブロックに適用し、残差変換係数値を備えるビデオブロックを生ずる。変換処理ユニット52は、DCTに概念的に類似した他の変換を実行することができる。ウェーブレット変換、整数変換、サブバンド変換、または他のタイプの変換も使用可能である。いずれの場合も、変換処理ユニット52は、変換を残差ブロックに適用し、残差変換係数のブロックを生ずる。変換は、残差情報をピクセル値ドメインから周波数領域などの変換ドメインに変換することができる。変換処理ユニット52は、結果として得られる変換係数を量子化ユニット54に送ることができる。量子化ユニット54は、ビットレートをさらに低減するために、変換係数を量子化する。量子化プロセスは、係数のうちいくつかまたはすべてに関連付けられるビット深度を減少させることができる。量子化の程度は、量子化パラメータを調整することによって修正され得る。いくつかの例では、量子化ユニット54は、次いで、量子化された変換係数を含む行列の走査を実行することができる。あるいは、エントロピー符号化ユニット56は、走査を実行することができる。
[0091]量子化に続いて、エントロピー符号化ユニット56は、量子化された変換係数をエントロピー符号化する。たとえば、エントロピー符号化ユニット56は、コンテキスト適応型可変長コーディング(CAVLC)、コンテキスト適応型2進算術コーディング(CABAC)、シンタックスベースコンテキスト適応型2進算術コーディング(SBAC)、確率間隔分割エントロピー(PIPE)コーディング、または別のエントロピーコーディング技法を実行してよい。コンテキストベースエントロピーコーディングの場合、コンテキストは、隣接するブロックに基づくことがある。エントロピーコーディングユニット56によるエントロピーコーディングに続いて、符号されたビットストリームは、別のデバイス(たとえばビデオデコーダ30)に送信されてもよいし、後で送信または取り出すためにアーカイブされてもよい。
[0092]逆量子化ユニット58および逆変換ユニット60はそれぞれ、たとえば後で参照ブロックとして使用する目的で、ピクセルドメイン内の残差ブロックを再構成するために、逆量子化および逆変換を適用する。動き補償ユニット44は、参照フレームメモリ64のフレームのうち1つの予測ブロックに残差ブロックを追加することによって、参照ブロックを計算することができる。動き補償ユニット44はまた、動き推定において使用するためのサブ整数ピクセル値を計算するために、再構成された残差ブロックに1つまたは複数の補間フィルタを適用することができる。加算器62は、参照フレームメモリ64に記憶するために再構成されたビデオブロックを生ずるために、再構成された残差ブロックを、動き補償ユニット44によって生じた動き補償予測ブロックに追加する。再構成されたビデオブロックは、後続のビデオフレーム内のブロックをインターコーディングするために、参照ブロックとして動き推定ユニット42および動き補償ユニット44によって使用され得る。
[0093]ビデオエンコーダ20の様々な構成要素は、ビデオビットストリームの時間的スケーラビリティをサポートしながら、GDRに従ってビデオデータを符号化するために、本開示の技法のうち1つまたは複数を実施するように構成され得る。たとえば、ビデオエンコーダ20は、SEIメッセージが、受信デバイス(たとえば、ビデオデコーダまたはその構成要素)がGDRセット内のピクチャを識別することを可能にするように、1つまたは複数の付加拡張情報(SEI)メッセージを生成およびシグナリングするために技法のうち1つまたは複数を実施し得る。たとえば、受信デバイスは、GDRセット内で復号順で第1のピクチャであるGDRピクチャと、GDRセットの復号順で最後のピクチャと、リカバリーポイントピクチャとを識別するために、ビデオエンコーダ20によって生成されるSEIメッセージに含まれるデータを使用し得る。いくつかの例では、受信デバイス内のデコーダは、GDRセットの最後のピクチャ(「lastPicInSet」)がリカバリーポイントピクチャと同じであることを決定することがあるが、他の例では、受信デバイス内のデコーダは、lastPicInSetとリカバリーポイントピクチャは別個のピクチャであることを決定することがある。一例では、予測処理ユニット40は、本開示の1つまたは複数の態様により、リカバリーポイントSEIメッセージおよび/または領域リフレッシュ情報SEIメッセージを生成するように構成され得る。
[0094]ビデオエンコーダ20は、HEVC WD9、HEVC WD10、AVC、または他のビデオコーディング規格に従って、符号化されたビデオビットストリームにメタデータを含むように、様々な特徴を用いて構成され得る。様々な例では、ビデオエンコーダ20は、シグナリングされた符号化されたビデオビットストリームを復号するために、デコーダによって要求されないメタデータを含むことがある。いくつかの例として、ビデオエンコーダ20は、ビデオデコーダがピクチャ出力タイミングを決定し、1つまたは複数のピクチャに関連付けられた表示情報を決定し、損失情報を検出し、検出された損失を隠蔽するおよび/または改善することを可能にするメタデータをシグナリングすることがある。
[0095]さらに、ビデオエンコーダ20は、符号化されたビデオビットストリームにおいてシグナリングされた特定のアクセスユニット(AU)において、任意の数のSEIネットワーク抽象レイヤ(NAL)ユニットを生成することができる。次に、ビデオエンコーダ20は、任意の数のSEIメッセージを特定のSEI NALユニットに含むことができる。一例として、上記の表1は、HEVC WD9に従って、ビデオエンコーダ20が生成し得る様々なSEIメッセージと、列挙されたSEIメッセージの対応する使用法/目的とを列挙する。
[0096]ビデオエンコーダ20は、符号化されたビデオビットストリーム内でGDRセットを生成およびシグナリングするように構成されてもよいし、そのように動作可能であってもよい。GDRベース符号化は、受信デバイスが非イントラピクチャからのランダムアクセスを実行することを可能にすることができる。さらに、GDRに従って符号化されたビデオデータに応じて、復号順に1つまたは複数のピクチャに続いて、ピクチャ領域全体は、ビットストリーム内のある位置で(たとえばリカバリーポイントで)、およびその後、表示/出力順に、正しく復号可能である。GDRは、ランダムアクセス可能性と増強された誤り耐性の両方を提供することができる。
[0097]図1に関して説明したように、GDRセットは、たとえばHEVC WD9に従って、符号化されたピクチャのシーケンスを復号順に含むことができる。いくつかの例では、GDRセット内の符号化されたピクチャのシーケンスはまた、出力順に従って並べられることがある。ビデオエンコーダ20は、GDRセットの開始境界を示すために、リカバリーポイントSEIメッセージをシグナリングすることができる。上記のシンタックス表1に示されるように、ビデオエンコーダ20は、一例としてHEVC WD9により、recovery_poc_cnt、exact_match_flag、およびbroken_link_flagなどのシンタックス要素をリカバリーポイントSEIメッセージに含むことができる。HEVC WD9によれば、ビデオエンコーダ20は、GDRピクチャとリカバリーポイントピクチャのPOCカウントの差を表すようにrecovery_poc_cntシンタックス要素の値を設定することができる。さらに、ビデオエンコーダ20は、GDRピクチャと同じアクセスユニット(AU)内のリカバリーポイントSEIメッセージをシグナリングすることができる。このようにして、ビデオエンコーダ20は、受信デバイスがGDRセットの開始境界(たとえば、リカバリーポイントSEIメッセージと同じAUに含まれる第1のGDRピクチャ)と、GDRセットの終了境界とを(たとえば、リカバリーポイントピクチャを識別するためにrecovery_poc_cntシンタックス要素の値をGDRピクチャのPOC値に追加することによって)識別することをイネーブルにし得る。このようにして、ビデオエンコーダ20は、ランダムアクセス可能性および増強された誤り耐性などの、GDRによって提供される1つまたは複数の潜在的利点を受信デバイスが利用することを可能にすることができる。
[0098]さらに、ビデオエンコーダ20は、GDRセットの各ピクチャに対する領域リフレッシュ情報SEIメッセージをシグナリングすることができる。たとえば、ビデオエンコーダ20は、GDRセットの各ピクチャを含む各AUにおけるそれぞれの領域リフレッシュ情報SEIメッセージを含むことができる。ビデオエンコーダ20は、対応するピクチャのリフレッシュ領域および/または非リフレッシュ領域を示すデータを含むように各領域リフレッシュ情報SEIメッセージを生成することができる。このように領域リフレッシュ情報SEIメッセージをシグナリングすることによって、ビデオエンコーダ20は、GDRによりリフレッシュされるピクチャの割合を受信デバイスが決定することを可能にし得る。たとえば、ビデオエンコーダ20は、領域リフレッシュ情報SEIメッセージが対応するピクチャと同じAUにおいて領域リフレッシュ情報SEIメッセージをシグナリングすることができる。このように領域リフレッシュ情報SEIメッセージをシグナリングすることによって、ビデオエンコーダ20は、特定の領域リフレッシュ情報SEIメッセージがGDRのどのピクチャに対応するか(この例では、領域リフレッシュ情報SEIメッセージと同じAUに含まれるピクチャ)受信デバイスが決定することを可能にすることができる。さらに、受信デバイスは、対応するピクチャのリフレッシュ領域および/または非リフレッシュ領域を識別するために、ビデオエンコーダ20によってシグナリングされる領域リフレッシュ情報SEIメッセージに含まれるデータを使用することができる。
[0099]説明したように、ビデオエンコーダ20 および/またはその構成要素は、HEVC WD9などに従って、符号化されたビデオビットストリームの時間的スケーラビリティをサポートするように構成され得る。たとえば、ビデオエンコーダ20は、完全な符号化されたビデオビットストリームを生成することができ、この完全な符号化されたビデオビットストリームから、復号デバイスまたは中間デバイスなどの受信デバイスは、サブビットストリームを抽出することができる。たとえば、ストリーミングサーバまたはメディアアウェアネットワーク要素(media-aware network element)(「MANE」)などの中間デバイスは、完全な符号化されたビデオビットストリームに含まれる符号化されたピクチャのフルセットから符号化されたピクチャの時間的サブセットを抽出し、抽出されたサブビットストリームを、ビデオデコーダを有するクライアントデバイスに配信することができる。いくつかの例では、時間的サブセットは、完全な符号化されたビデオビットストリームに含まれる符号化されたピクチャのフルセットの真のサブセットを表すことがある。これらの例によれば、完全な符号化されたビデオビットストリームは、時間的サブセットのあらゆる符号化されたピクチャと、時間的サブセットに含まれない少なくとも1つの追加の符号化されたピクチャとを含むことがある。
[0100]時間的スケーラビリティに応じて様々なピクチャレートをサポートするために、中間デバイスは、完全な符号化されたビデオビットストリームに含まれる符号化されたピクチャのフルセットから異なるピクチャカウントの時間的サブセットを抽出するように構成され得る。中間デバイスによって(たとえば、様々なピクチャレートをサポートするために)抽出された各異なる時間的サブセットは、独立して復号可能な時間的サブセットまたはサブビットストリームを表すことがある。言い換えれば、完全な符号化されたビデオビットストリームから抽出された時間的にスケーリングされたサブビットストリームを受信するビデオデコーダは、完全な符号化されたビデオビットストリームに含まれるがサブビットストリームから除外される情報などの追加データがなくても、符号化されたピクチャの時間的サブセットを復号することができる。
[0101]ビデオエンコーダ20によって生成される完全な符号化されたビデオビットストリームは、HEVC WD9に従って、いくつかの時間的サブレイヤを含むことができる。さらに、ビデオエンコーダ20によって生成される各NALユニットは、対応する「TemporalId」値によって示される特定のサブレイヤに属することができる。たとえば、ビデオエンコーダ20は、NALユニットのTemporalIdの値を、対応する「temporal_id_plus1」シンタックス要素の値−1に等しく設定することができる。さらに、ビデオエンコーダ20は、単一ピクチャのすべてのVCL NALユニットが単一サブレイヤ(すなわち同じサブレイヤ)に属することを決定することができる。言い換えれば、ビデオエンコーダ20は、符号化されるピクチャそれ自体が、符号化されるピクチャに関連付けられたNALユニットに対応する特定のサブレイヤに属するように、ピクチャを符号化することができる。
[0102]たとえば、HEVC WD9に従って、ビデオエンコーダ20は、ビットストリームの下位サブレイヤの復号処理がビットストリームの上位サブレイヤ内のデータに依存しないように、符号化されたビデオビットストリームを生成することができる。さらに、中間デバイスは、特定の値よりも高いTemporalId値に関連付けられたすべてのNALユニットを全ビットストリームから除去することによって、全ビットストリームからサブビットストリームを生成することができ、これはHEVC WD9に準拠する。次に、このようにして生成されたサブビットストリームは、それ自体、HEVC WD9に準拠するビットストリームを表すことができる。ビデオエンコーダ20および/またはその1つもしくは複数の構成要素は、HEVC WD9に関するビットストリーム適合性(conformance)に関するすべての条件(たとえばバッファ制限)は、完全な符号化されたビデオビットストリームに対して、およびその任意の所与のサブレイヤに対して、満たされることを保証することができる。
[0103]説明したように、完全な符号化されたビデオビットストリームを時間的にスケーリングする際、中間デバイスは、符号化されたピクチャの時間的サブセットを完全な符号化されたビデオビットストリームから抽出することができる。たとえば、時間的サブセットは、完全な符号化されたビデオビットストリームにおいてシグナリングされた符号化されたピクチャの真のサブセットであることがあり、したがって、中間デバイスは、サブビットストリームを生成するために、完全な符号化されたビットストリームから1つまたは複数の符号化されたピクチャを除去することができる。例では、中間デバイスは、リカバリーポイントSEIメッセージのrecovery_poc_cntシンタックス要素によって識別されたリカバリーポイントピクチャを破棄することがある。しかしながら、これらの例では、中間デバイスは、当初示されたリカバリーポイントメッセージの変更(すなわち除去)を反映するためにリカバリーポイントSEIメッセージにおいてシグナリングされたデータをアップデートするように構成されないことがある。言い換えれば、中間デバイスは、リカバリーポイントSEIメッセージを含むが対応するリカバリーポイントピクチャを含まない時間的サブセットを潜在的にシグナリングし得る。次に、リカバリーポイントSEIメッセージを含むが識別されるリカバリーポイントピクチャを含まない時間的サブセットを通信することによって、中間デバイスは、受信された時間的サブセットに存在しないリカバリーポイントピクチャをビデオデコーダに対して識別することができる。
[0104]GDRセットを含む符号化されたビットストリームの時間的スケーリングによって引き起こされる潜在的な問題を軽減または解消するために、本開示の技法は、時間的スケーラビリティをサポートしながら、GDRに適合するためにシグナリングされたSEIメッセージに含まれるデータをビデオ復号デバイスが処理することを可能にすることができる。たとえば、この技法は、リカバリーポイントSEIメッセージおよび/または領域リフレッシュ情報SEIメッセージに関連付けられた1つまたは複数のセマンティクスの変更を導入することができる。本開示の技法によるリカバリーポイントSEIメッセージおよび/または領域リフレッシュ情報SEIメッセージに関連付けられたセマンティクスの変更は、以下でさらに詳しく説明される。
[0105]図3は、本開示の1つまたは複数の態様による、ビデオデータを復号するための技法を実施し得るビデオデコーダ30の一例を示すブロック図である。図3の例では、ビデオデコーダ30は、エントロピー復号ユニット70と、動き補償ユニット72と、イントラ予測ユニット74と、逆量子化ユニット76と、逆変換ユニット78と、加算器80と、参照ピクチャメモリ82とを含む。図2の例では、ビデオデコーダ30は予測ユニット71を含み、予測ユニット71は、動き補償ユニット72と、イントラ予測ユニット74とを含む。ビデオデコーダ30は、いくつかの例では、ビデオエンコーダ20(図2)に関して説明された符号化パスにほぼ相反した復号パスを実行することがある。動き補償ユニット72は、エントロピー復号ユニット70から受信された動きベクトルに基づいて予測データを生成することができ、イントラ予測ユニット74は、エントロピー復号ユニット70から受信されたイントラ予測モードインジケータに基づいて予測データを生成することができる。
[0106]図3に示される実装形態では、ビデオデコーダ30は、ネットワーク要素68に結合される。様々な例では、ネットワーク要素68は、メディアアウェアネットワーク要素(すなわち「MANE」)、ストリーミングサーバ、またはネットワークヘッドエンドデバイスなどの様々なデバイスを含んでもよいし、そのようなデバイスであってもよいし、そのようなデバイスの一部であってもよい。たとえば、ネットワーク要素68は、ビデオエンコーダ20によってシグナリングされた符号化されたビデオビットストリームを受信し、その符号化されたビデオビットストリームを時間的にスケーリングするように構成され得る。この例では、ネットワーク要素68は、時間的にスケーリングされたビットストリームをビデオデコーダ30に中継することができる。図3の例ではビデオデコーダ30の外部に示されているが、様々な例では、ネットワーク要素68。
[0107]一例として、ネットワーク要素68は、受信された符号化されたビデオビットストリームに含まれる符号化されたピクチャのフルセットから、符号化されたピクチャの時間的サブセットを抽出することができる。ネットワーク要素68によって受信される符号化されたビデオビットストリームは、本明細書では「完全な符号化されたビデオビットストリーム」と呼ばれることがある。さらに、ネットワーク要素68によって抽出される時間的サブセットは、完全な符号化されたビデオビットストリームに含まれる符号化されたピクチャのフルセットの真のサブセットを表すことがある。言い換えれば、ネットワーク要素68によって受信される完全な符号化されたビデオビットストリームは、時間的サブセットのあらゆる符号化されたピクチャと、時間的サブセットに含まれない少なくとも1つの追加の符号化されたピクチャとを含むことがある。
[0108]時間的スケーラビリティに応じて様々なピクチャレートをサポートするために、ネットワーク要素68は、完全な符号化されたビデオビットストリームに含まれる符号化されたピクチャのフルセットから異なるピクチャカウントの時間的サブセットを抽出するように構成され得る。ネットワーク要素68によって(たとえば、様々なピクチャレートをサポートするために)抽出された各異なる時間的サブセットは、独立して復号可能な時間的サブセットすなわちサブビットストリームを表すことがある。言い換えれば、ネットワーク要素68によって抽出される時間的にスケーリングされたサブビットストリームを受信するビデオデコーダ30などのデバイスは、完全な符号化されたビデオビットストリームに含まれるがサブビットストリームから除外される情報などの追加データがなくても、符号化されたピクチャの時間的サブセットを復号することができる。
[0109]ネットワーク要素68は、ビデオエンコーダ20によってシグナリングされる完全な符号化されたビデオビットストリームが、HEVC WD9により、いくつかの時間的サブレイヤを含むことを決定することができる。さらに、ネットワーク要素68は、ビデオエンコーダ20によってシグナリングされる各NALユニットが、対応する「TemporalId」値によって示される特定のサブレイヤに属することを決定することができる。たとえば、ネットワーク要素68は、NALユニットのTemporalIdの値が、対応する「temporal_id_plus1」シンタックス要素の値−1に等しいことを決定することができる。さらに、この例では、ネットワーク要素68は、単一ピクチャのすべてのVCL NALユニットが単一サブレイヤ(すなわち同じサブレイヤ)に属することを決定することができる。言い換えれば、ネットワーク要素68は、特定の符号化されるピクチャそれ自体が、符号化されるピクチャに関連付けられたNALユニットに対応する特定のサブレイヤに属することを決定することができる。
[0110]たとえば、HEVC WD9に従って、ビデオエンコーダ20は、(たとえば、ネットワーク要素68によって抽出される)ビットストリームの下位サブレイヤの復号処理がビットストリームの上位サブレイヤ内のデータに依存しないように、符号化されたビデオビットストリームを生成することができる。ネットワーク要素68は、特定の値よりも高いTemporalId値に関連付けられたすべてのNALユニットを全ビットストリームから除去することによって、全ビットストリームからサブビットストリームを抽出することができ、これはHEVC WD9に準拠する。次に、このようにしてネットワーク要素68によって抽出されたサブビットストリームは、それ自体、HEVC WD9に準拠するビットストリームを表すことができる。ビデオエンコーダ20および/またはその1つもしくは複数の構成要素は、HEVC WD9に関するビットストリーム適合性(conformance)に関するすべての条件(たとえばバッファ制限)は、各サブビットストリームに対して、満たされることを保証することができる。
[0111]説明したように、完全な符号化されたビデオビットストリームを時間的にスケーリングする際、ネットワーク要素68は、符号化されたピクチャの時間的サブセットを完全な符号化されたビデオビットストリームから抽出することができる。たとえば、時間的サブセットは、完全な符号化されたビデオビットストリームにおいてシグナリングされた符号化されたピクチャの真のサブセットであることがあり、したがって、ネットワーク要素68は、サブビットストリームを生成するために、完全な符号化されたビットストリームから1つまたは複数の符号化されたピクチャを除去することができる。例では、ネットワーク要素68は、GDRセットに含まれる1つまたは複数の符号化されたピクチャを除去することができる。そのような一例では、ネットワーク要素68は、リカバリーポイントSEIメッセージによって識別されたリカバリーポイントピクチャを破棄することができる。
[0112]しかしながら、そのような一例では、ネットワーク要素68は、GDRセットの第1の(最初の)ピクチャを形成するGDRピクチャを破棄しないことがある。この例では、リカバリーポイントSEIメッセージはGDRピクチャと同じAUに含まれ得るので、ネットワーク要素68は、ビデオデコーダ30にリカバリーポイントSEIメッセージを提供し得る。しかしながら、この例では、ネットワーク要素68は、当初識別されたリカバリーポイントピクチャが時間的スケーリング中に破棄されたので、リカバリーポイントSEIメッセージで識別されたリカバリーポイントピクチャをビデオデコーダ30に提供しないことがある。次に、ビデオデコーダ30は、GDRセットの指示を受信することができるが、受信されたサブビットストリーム内のGDRセットのリカバリーポイントピクチャを特定することができないことがある。
[0113]復号プロセス中に、ビデオデコーダ30は、符号化されたビデオスライスのビデオブロックと関連付けられたシンタックス要素とを表す符号化されたビデオビットストリームをビデオエンコーダ20から受信する。ビデオデコーダ30のエントロピー復号ユニット70は、量子化係数、動きベクトル、またはイントラ予測モードインジケータと、他のシンタックス要素とを生成するために、ビットストリームをエントロピー復号する。エントロピー復号ユニット70は、動きベクトルと他のシンタックス要素とを動き補償ユニット72に転送する。ビデオデコーダ30は、ビデオスライスレベルおよび/またはビデオブロックレベルでシンタックス要素を受信することができる。
[0114]ビデオスライスが、イントラコード化(I)スライスとしてコーディングされるとき、イントラ予測ユニット74は、シグナリングされたイントラ予測モードおよび現在のフレームすなわちピクチャの以前に復号されたブロックからのデータに基づいて、現在のビデオスライスのビデオブロックに対する予測データを生成することができる。ビデオフレームが、インターコーディングされた(すなわち、B、P、またはGPB)スライスとしてコーディングされるとき、動き補償ユニット72は、動きベクトルおよびエントロピー復号ユニット70から受信された他のシンタックス要素に基づいて、現在のビデオスライスのビデオブロックに対する予測ブロックを生ずる。予測ブロックは、参照ピクチャリストのうち1つの中の参照ピクチャのうち1つから生じられ得る。ビデオデコーダ30は、参照ピクチャメモリ82に記憶された参照ピクチャに基づいて、デフォルト構造技法を使用して、参照フレームリストすなわちリスト0およびリスト1を構築することができる。
[0115]動き補償ユニット72は、動きベクトルと他のシンタックス要素とを解析することによって現在のビデオスライスのビデオブロックに対する予測情報を決定し、復号されている現在のビデオブロックに対する予測ブロックを生ずるために予測情報を使用する。たとえば、動き補償ユニット72は、ビデオスライスのビデオブロックと、インター予測スライスタイプ(たとえば、Bスライス、Pスライス、またはGPBスライス)と、スライスのための参照ピクチャリストのうち1つまたは複数に関する構造情報と、スライスの各インター符号化されたビデオブロックに対する動きベクトルと、スライスの各インターコーディングされたビデオブロックに対するインター予測ステータスと、現在のビデオスライス内のビデオブロックを復号する他の情報とをコーディングするために使用される予測モード(たとえば、イントラ予測またはインター予測)を決定するために受信されたシンタックス要素のうちいくつかを使用する。
[0116]動き補償ユニット72はまた、補間フィルタに基づいて補間を実行することができる。動き補償ユニット72は、参照ブロックのサブ整数ピクセルに対する補間値を計算するためにビデオブロックの符号化中にビデオエンコーダ20によって使用される補間フィルタを使用することができる。この場合、動き補償ユニット72は、受信されたシンタックス要素から、ビデオエンコーダ20によって使用される補間フィルタを決定し、予測ブロックを生ずるために補間フィルタを使用することができる。
[0117]逆量子化ユニット76は、ビットストリーム内で提供されエントロピー復号ユニット70によって復号される量子化された変換係数を逆量子化する(inverse quantize)、すなわち逆量子化する(de quantize)。逆量子化プロセスは、量子化の程度と、同様に、適用されるべき逆量子化の程度とを決定するための、ビデオスライス内の各ビデオブロックに対してビデオデコーダ30によって計算される量子化パラメータQPYの使用を含んでよい。
[0118]逆変換ユニット78は、ピクセルドメイン内の残差ブロックを生ずるために変換係数に逆変換、たとえば、逆DCT、逆整数変換、または概念的に類似した逆変換プロセスを適用する。
[0119]動き補償ユニット72が動きベクトルおよび他のシンタックス要素に基づいて現在のビデオブロックに対する予測ブロックを生成した後、ビデオデコーダ30は、逆変換ユニット78からの残差ブロックを動き補償ユニット72によって生成される対応する予測ブロックと合計することによって、復号されたビデオブロックを形成する。加算器80は、この加算動作を実行する1つまたは複数の構成要素を表す。必要に応じて、デブロッキングフィルタはまた、ブロック歪みアーチファクトを除去するために、復号されたブロックをフィルタするために適用されることがある。他のループフィルタ(コーディングループ内またはコーディングループ後のいずれか)も、ピクセル遷移を平滑化するために使用されてもよいし、ビデオ品質を改善するために使用されてもよい。所与のフレームすなわちピクチャ内の復号されたビデオブロックは、次いで、その後の動き補償のために使用される参照ピクチャを記憶する参照ピクチャメモリ82に記憶される。参照ピクチャメモリ82は、復号ピクチャバッファ(DPB)とも呼ばれ、図1のうちディスプレイデバイス32などのディスプレイデバイス上での後の提示のために、復号されたビデオも記憶する。
[0120]ビデオデコーダ30およびその様々な構成要素は、時間的にスケーラブルなビデオビットストリームをサポートしながら、GDRによりコーディングされたビデオシーケンスを復号するために本開示の技法を実施することができる。一例として、エントロピー復号ユニット70は、ビデオデコーダ30に関して本明細書で説明される1つまたは複数の機能を実施することができる。説明したように、ビデオデコーダ30は、ビデオエンコーダによってシグナリングされる符号化されたビデオビットストリームを受信することができる。様々な例では、ビデオデコーダ30は、時間的スケーラビリティにより、ネットワーク要素68が抽出し得る完全な符号化されたビデオビットストリームまたはサブビットストリームを受信することができる。より具体的には、時間的にスケーリングされたサブビットストリームは、完全な符号化されたビデオビットストリームに含まれる符号化されたピクチャのセットから抽出された符号化されたピクチャのサブセットを含むことができる。時間的スケーラビリティによりネットワーク要素68によって抽出されるピクチャサブセットは、本明細書では「時間的サブセット」と呼ばれることがある。いくつかの例では、ネットワーク要素68によって抽出される時間的サブセットは、完全な符号化されたビデオビットストリームに含まれる符号化されたピクチャの真のサブセットを表すことがある。言い換えれば、これらの例によれば、完全な符号化されたビデオビットストリームは、時間的サブセットのあらゆる符号化されたピクチャと、時間的サブセットに含まれない少なくとも1つの追加の符号化されたピクチャとを含むことがある。
[0121]さらに、HEVC WD9、AVC、または他のビデオコーディング規格に従って、ビデオデコーダ30は、受信された符号化されたビデオビットストリームに含まれるメタデータを復号するように構成されてもよいし、そのように動作可能であってもよい。様々な例では、HEVC WD9に従って、ビデオデコーダ30は、符号化されたビットストリームでシグナリングされた符号化されたピクチャを復号するために要求されないメタデータを復号することができる。様々な例では、ビデオデコーダ30は、ピクチャ出力タイミングのうち1つまたは複数を決定するためにメタデータを復号し、1つまたは複数のピクチャに関連付けられた情報を表示することができる。これらの例および他の例では、ビデオデコーダ30は、損失情報(loss information)を検出するため、ならびに検出された1つまたは複数の損失を隠蔽および/または改善するために、メタデータを復号することができる。
[0122]いくつかの例では、たとえば、HEVC WD9に従って、ビデオデコーダ30は、受信された符号化されたビデオビットストリーム内でシグナリングされた特定のアクセスユニット(AU)内の1つまたは複数の付加拡張情報(SEI:supplemental enhancement information)ネットワーク抽象レイヤ(NAL)ユニットを復号することができる。さらに、ビデオデコーダ30は、受信された符号化されたビデオビットストリームでシグナリングされる単一のSEI NALユニットに含まれる1つまたは複数のSEIメッセージを復号することができる。上記の表1は、HEVC WD9による、ビデオデコーダ30が受信および復号し得る(たとえばエントロピー復号ユニット70を使用して)様々なSEIメッセージと、列挙されたSEIメッセージの対応する使用法/目的の例を列挙する。
[0123]さらに、ビデオデコーダ30は、受信された符号化されたビデオビットストリームでシグナリングされたGDRセットを復号するように構成されてもよいし、そのように動作可能であってもよい。より具体的には、ビデオデコーダ30は、GDRにより受信されたGDRセットを復号してよい。図1に関して説明したように、GDRセットは、HEVC WD9に従って、符号化されたピクチャのシーケンスを復号順に含むことができる。いくつかの例では、GDRセット内の符号化されたピクチャのシーケンスはまた、出力順に従って並べられることがある。様々な例では、GDRセットの最後のピクチャは、ピクチャ全体がリフレッシュ領域に属するリカバリーポイントピクチャを表すことがある。
[0124]ビデオデコーダ30は、エントロピー復号ユニット70によって提供される1つまたは複数の機能を実施することなどによって、リカバリーポイントSEIメッセージを復号することができる。復号されたリカバリーポイントSEIメッセージに基づいて、ビデオデコーダ30は、第1の(最初の)GDRピクチャなどのGDRセットの開始境界を検出することができる。様々な例では、第1のGDRピクチャは、リカバリーポイントSEIメッセージと同じAUに含まれる符号化されたピクチャであることがある。上記のシンタックス表1に示されるように、ビデオデコーダ30は、HEVC WD9に従って、シグナリングされたリカバリーポイントSEIメッセージ内のrecovery_poc_cntシンタックス要素と、exact_match_flagシンタックス要素と、broken_link_flagシンタックス要素とを復号することができる。
[0125]HEVC WD9に従って、ビデオデコーダ30は、リカバリーポイントSEIメッセージによって識別されるリカバリーポイントピクチャをビデオデコーダ30が検出するまでGDRセットが継続することを決定することができる。たとえば、ビデオデコーダ30は、識別されるリカバリーポイントピクチャのPOC値を決定するために、復号されたrecovery_poc_cntシンタックス要素の値をGDRピクチャのPOC値に追加することができる。さらに、ビデオデコーダ30は、このようにして識別されたリカバリーポイントピクチャがGDRセットの復号順で最後のピクチャを形成することを決定することができる。GDRセットの最後のピクチャは、本明細書では「lastPicInSet」によって示される。
[0126]説明したように、ビデオデコーダ30および/またはその構成要素は、HEVC WD9などに従って、符号化されたビデオビットストリームの時間的スケーラビリティをサポートするように構成され得る。たとえば、ビデオデコーダ30は、ネットワーク要素68が完全な符号化されたビデオビットストリームから抽出するサブビットストリームを受信し、ビデオデコーダ30に通信することができる。この例では、ネットワーク要素68は、受信された符号化されたビデオビットストリームに含まれる符号化されたピクチャのフルセットから、符号化されたピクチャの時間的サブセットを抽出し、その時間的サブセットをサブビットストリームの一部としてビデオデコーダ30に提供することができる。たとえば、時間的サブセットは、完全な符号化されたビデオビットストリームに含まれる符号化されたピクチャのフルセットの真のサブセットを表すことがある。時間的サブセットが、符号化されたピクチャのフルセットの真のサブセットを表すシナリオでは、完全な符号化されたビデオビットストリームは、時間的サブセットのあらゆる符号化されたピクチャに対するデータと、時間的サブセットに含まれない少なくとも1つの追加の符号化されたピクチャに対するデータとを含むことがある。
[0127]時間的スケーラビリティに応じて様々な時間的ピクチャレートをサポートするために、ビデオデコーダ30は、ネットワーク要素68が完全な符号化されたビデオビットストリームから抽出し得る様々なサブビットストリームなどの様々なピクチャレートのサブビットストリームを受信および復号するように構成され得る。より具体的には、様々なピクチャカウントの時間的サブセットを含む異なるサブビットストリームは、異なるピクチャレートを表すことができる。時間的スケーラビリティをサポートするために、ビデオデコーダ30は、ピクチャレートに関係なく、任意のサブビットストリームを、独立して復号可能なビットストリームとして復号することができる。言い換えれば、ビデオデコーダ30は、完全な符号化されたビデオビットストリームに含まれるが特定のサブビットストリームから除外される情報などの追加データがなくても、符号化されたピクチャの特定の時間的サブセットを復号することができる。
[0128]ビデオデコーダ30が、ビデオ符号化デバイスによってシグナリングされた完全な符号化されたビデオビットストリームを受信する例では、その完全な符号化されたビデオビットストリームは、1つまたは複数の時間的サブレイヤを含むことがある。さらに、ビデオデコーダ30によって受信および/または復号される各NALユニットは、対応する「TemporalId」値によって示される特定のサブレイヤに属することができる。より具体的には、ビデオデコーダ30は、NALユニットのTemporalIdの値を、シグナリングされた対応する「temporal_id_plus1」シンタックス要素−1の値に等しいように決定することができる。さらに、ビデオデコーダ30は、単一ピクチャのすべてのシグナリングされたVCL NALユニットが単一サブレイヤ(すなわち同じサブレイヤ)に属することを決定することができる。言い換えれば、ビデオデコーダ30は、符号化されたピクチャそれ自体が、符号化されたピクチャに関連付けられたNALユニットに対応する特定のサブレイヤに属するという決定に基づいて、符号化されたピクチャを復号することができる。
[0129]たとえば、HEVC WD9に従って、ビデオデコーダ30は、ビットストリームの下位サブレイヤの復号処理がビットストリームの上位サブレイヤ内のデータに依存しないように、シグナリングされた符号化されたビデオビットストリームを復号することができる。ネットワーク要素68は、特定の値よりも高いTemporalId値に関連付けられたすべてのNALユニットを全ビットストリームから除去することによって、全ビットストリームからサブビットストリームを生成することができる。ビデオ符号化デバイスは、HEVC WD9に関するビットストリーム適合性(たとえばバッファ制限)に関するすべての条件が、全ビットストリームに対して、したがってネットワーク要素68が全ビットストリームから抽出し得る各サブビットストリームに対して、満たされることを保証することができる。次に、いくつかの例では、ビデオデコーダ30は、復号プロセスの変更なしで、ならびにハードウェアインフラストラクチャおよび/またはソフトウェアインフラストラクチャの変更を必要とすることなく、任意のシグナリングされたサブビットストリームを復号することができる。言い換えれば、ビデオデコーダ30は、完全な符号化されたビデオビットストリームを復号することに対応する様式で、HEVC WD9に従って時間的スケーラビリティをサポートしながら、シグナリングされたサブビットストリームを復号することができる。
[0130]説明したように、完全な符号化されたビデオビットストリームを時間的にスケーリングする際、ネットワーク要素68は、符号化されたピクチャの時間的サブセットを完全な符号化されたビデオビットストリームから抽出することができる。たとえば、時間的サブセットは、完全な符号化されたビデオビットストリームにおいてシグナリングされた符号化されたピクチャの真のサブセットであることがあり、したがって、ネットワーク要素68は、サブビットストリームを生成するために、完全な符号化されたビットストリームから1つまたは複数の符号化されたピクチャを除去することができる。いくつかの例では、ネットワーク要素68は、リカバリーポイントSEIメッセージによって識別されたリカバリーポイントピクチャを除去することができる。これらの例では、ビデオデコーダ30は、GDRセットの境界を識別するリカバリーポイントSEIメッセージを受信することができるが、GDRセットのlastPicInSetを形成するリカバリーポイントピクチャを受信しないことがある。recovery_poc_cntシンタックス要素の値を復号および適用することによって、ビデオデコーダ30は、識別されたリカバリーポイントピクチャのPOCカウントを決定することができるが、受信された時間的サブセット内の識別されたリカバリーポイントピクチャを特定することができないことがある。
[0131]識別されたリカバリーポイントピクチャを破棄するという、GDRセットの時間的スケーリングによって引き起こされる潜在的な問題を軽減または解消するために、ビデオデコーダ30および/またはエントロピー復号ユニット70などのその構成要素は、本開示の1つまたは複数の技法を実施することができる。技法のいくつかの実装形態に従って、ビデオデコーダ30は、当初識別されたリカバリーポイントピクチャのピクチャ順序カウント(POC)値を示す情報を取得するために、リカバリーポイントSEIメッセージを復号することができる。さらに、ビデオデコーダ30は、受信された符号化されたビットストリームが、リカバリーポイントSEIメッセージから取得されたPOC値を有する符号化されたピクチャを含むかどうか決定するために、本開示の1つまたは複数の技法を実施することができる。
[0132]本明細書で説明される技法によれば、ビデオデコーダ30は、リカバリーポイントピクチャを、リカバリーポイントSEIメッセージで識別されたPOC値を有する符号化されたピクチャとだけ定義する代わりに、複数のステップによる決定に従ってリカバリーポイントピクチャを定義することができる。たとえば、受信されたビットストリーム内の復号順で現在のピクチャ(たとえば現在のSEIメッセージに関連付けられたGDRピクチャ)に続き、GDRピクチャのPicOrderCntVal+recovery_poc_cntシンタックス要素の値に等しいPOC値(「PicOrderCntVal」)を有するピクチャ(「picA」)ことをビデオデコーダ30が識別する場合、ビデオデコーダ30は、picAをリカバリーポイントピクチャと識別することができる。一方、ビデオデコーダ30が、上記で説明された条件を満たすpicAを識別しない場合、ビデオデコーダ30は、出力順でpicAのすぐ後に続くピクチャをリカバリーポイントピクチャと識別することができる。ビデオデコーダ30はまた、リカバリーポイントピクチャが復号順で第1のGDRピクチャに先行しないことを決定することができる(たとえば、第1のピクチャが、GDRピクチャのPOC値よりも小さいPOC値を有する場合、ビデオデコーダ30は第1のピクチャをリカバリーポイントピクチャと識別しないことがある)。GDRピクチャは、本明細書では「現在の」ピクチャと呼ばれることもある。
[0133]さらに、本開示の1つまたは複数の態様によれば、ビデオデコーダ30は、GDRセット(「gdrPicSet」)を第1のGDRピクチャから始まりリカバリーポイントピクチャまでのピクチャのセットと定義する代わりに、次の複数ステップによる決定に従ってgdrPicSetを定義することができる。受信されたビットストリームにおいて、受信されたビットストリーム(またはコーディングされたビデオシーケンス)において復号順でGDRピクチャに続き、GDRピクチャのPicOrderCntVal+リカバリーポイントSEIメッセージ内でシグナリングされた復号されたrecovery_poc_cntシンタックス要素の値に等しいPicOrderCntValを有するピクチャをビデオデコーダ30が識別する場合、ビデオデコーダ30は、変数lastPicInSetによって示されるピクチャをリカバリーポイントピクチャと設定することができる。そうではなく、ビデオデコーダ30が、コーディングされたビデオシーケンスにおいて、上記で列挙された条件を満たすピクチャを検出しない場合、ビデオデコーダ30は、lastPicInSetを、出力順でリカバリーポイントピクチャのすぐ前に来るピクチャに設定することができる。
[0134]さらに、ビデオデコーダ30は、ピクチャlastPicInSetが復号順でGDRピクチャに先行しないことを決定することができる。これらの例では、ビデオデコーダ30は、出力順で第1のGDRピクチャから始まってピクチャlastPicInSetで終わり、両方のピクチャが含まれるピクチャのセットであるように、gdrPicSetを設定することができる。その結果、いくつかの例では、lastPicInSet内のリフレッシュ領域は、ピクチャ全体を包含することもしないこともある。たとえば、ビデオデコーダ30が、当初識別されたリカバリーポイントピクチャを特定しない場合、ビデオデコーダ30は、当初識別されたリカバリーポイントピクチャに先行するピクチャにlastPicInSetを設定し、したがって、GDRセットの終了境界を決定することができる。次に、lastPicInSetが復号順で、当初識別されたリカバリーポイントピクチャに先行するとき、lastPicInSetは、完全なリフレッシュされたピクチャでないことがある。これらの例では、ビデオデコーダ30は、識別されたlastPicInSetのすぐ後に続くピクチャを、GDRセットに対するリカバリーポイントピクチャと識別することができる。
[0135]説明したように、いくつかの例では、本開示の技法は、リカバリーポイントSEIメッセージまたは領域リフレッシュ情報SEIメッセージのいずれかの既存のシンタックスの変更を必要としないことがある。技法は、様々な例では、WD9におけるリカバリーポイントSEIメッセージおよび/または領域リフレッシュ情報SEIメッセージの既存のセマンティクスに変更を導入することがある。リカバリーポイントSEIメッセージに関連付けられたセマンティクスは以下で説明され、本明細書で説明される技法によって既存のセマンティクスに導入される変更は下線が引かれる。
[0136]リカバリーポイントSEIメッセージは、ビデオデコーダ30がランダムアクセスを始めた後、またはコーディングされたビデオシーケンス内の破損したリンクをビデオエンコーダ20が示した後、表示するのに許容可能なピクチャをいつ復号プロセスが生じるかビデオデコーダ30が決定するのを助ける。ビデオデコーダ30が、リカバリーポイントSEIメッセージに関連付けられた復号順でAUを有する復号プロセスを開始するとき、このSEIメッセージで指定されたリカバリーポイントにおけるまたは出力順で後続するすべての復号されたピクチャは、コンテンツにおいて正しいまたはほぼ正しいように示される。示されたリカバリーポイントまたは出力順で次のピクチャ、およびリカバリーポイントSEIメッセージに関連付けられたピクチャで始まる復号プロセスの動作が、復号ピクチャバッファおよび/または参照ピクチャメモリ82で利用不可能なピクチャへの参照を含み得るまで、リカバリーポイントSEIメッセージに関連付けられたピクチャにおいてまたはその前にランダムアクセスによって生じられた復号されたピクチャは、コンテンツにおいて正しい必要はない。
[0137]さらに、broken_link_flagシンタックス要素の使用によって、ビデオエンコーダ20は、復号プロセスが復号順で前のランダムアクセスポイント(RAP)AUの場所で始まったときでも、表示されたときに視覚的アーチファクトを潜在的にもたらし得るビットストリーム内の1つまたは複数のピクチャの場所をビデオデコーダ30に示すために、リカバリーポイントSEIメッセージを使用することができる。ビデオエンコーダ20は、ポイントの場所を示すために、broken_link_flagシンタックス要素を使用することができ、当該ポイントは、当該ポイントの後、1つまたは複数のピクチャの復号のための復号プロセスが、復号プロセスにおいてビデオデコーダ30が使用するために利用可能であるが、ビデオエンコーダ20が当初ビットストリームを符号化したとき参照のために使用されたピクチャでないピクチャへの参照を引き起こし得る(たとえば、ビットストリームの生成中にビデオエンコーダ20によって実行されるスプライシング動作により)。
[0138]ビデオデコーダ30が、リカバリーポイントSEIメッセージに関連付けられたAUから復号を開始するためにランダムアクセスを実行する例では、ビデオデコーダ30は、関連付けられたピクチャがビットストリーム内の第1のピクチャであり、リカバリーポイントピクチャのPicOrderCntValの導出において使用される変数prevPicOrderCntLsbおよびprevPicOrderCntMsbが両方とも0に等しいように設定されることを決定することができる。ビデオデコーダ30が、仮想参照デコーダ(HRD)情報は受信されたビットストリームに存在することを決定する例では、ビデオデコーダ30は、バッファリング期間SEIメッセージが、ランダムアクセスの後でHRDバッファモデルの初期化を確立するためにリカバリーポイントSEIメッセージに関連付けられたAUに関連付けられることを決定することができる。
[0139]リカバリーポイントSEIメッセージに関連付けられたピクチャによってまたはそのようなピクチャに復号順で続く任意のピクチャによって参照される任意のシーケンスまたはピクチャパラメータセットRBSPは、ビデオデコーダ30がビットストリームの初めに、または復号順で、リカバリーポイントSEIメッセージに関連付けられたAUにより、復号プロセスを開始するかどうかに関係なく、その起動の前に復号プロセス中でビデオデコーダ30にとって利用可能なことがある。
[0140]recovery_poc_cntシンタックス要素は、ビデオデコーダ30に、出力順で出力ピクチャのリカバリーポイントを指定することができる。コーディングされたビデオシーケンス内に復号順で現在のピクチャ(たとえば、現在のSEIメッセージに関連付けられたピクチャ)に続き、現在のピクチャのPicOrderCntVal+recovery_poc_cntの値に等しいPicOrderCntValを有するピクチャpicAがあることをビデオデコーダ30が決定する場合、ビデオデコーダ30は、ピクチャpicAをリカバリーポイントピクチャと呼ぶことができる。そうでない場合、ビデオデコーダ30は、出力順でpicAのすぐ後に続くピクチャをリカバリーポイントピクチャと呼ぶことができる。ビデオデコーダ30は、リカバリーポイントピクチャが復号順で現在のピクチャに先行しないことを決定することができる。ビデオデコーダ30は、出力順ですべての復号されたピクチャが、リカバリーポイントピクチャの出力順位置で始まるコンテンツにおいて正しいまたはほぼ正しいように示されることを示すことができる。ビデオデコーダ30は、recovery_poc_cntの値が−MaxPicOrderCntLsb/2〜MaxPicOrderCntLsb/2−1の範囲内にあることを決定することができる。
[0141]exact_match_flagシンタックス要素は、リカバリーポイントSEIメッセージに関連付けられたAUで復号プロセスを開始することによって導出される指定のリカバリーポイントにおけるおよびそれに出力順で後続する1つまたは複数の復号されたピクチャが、受信されたビットストリーム内で、もしあれば、前のRAP AUの場所で復号プロセスを開始するビデオデコーダ30によって生じられる1つまたは複数のピクチャに正確に一致するかどうかビデオデコーダ30に示す。exact_match_flagに関連付けられた0の値は、一致が正確でない可能性があることをビデオデコーダ30に示し、1の値は、一致が正確であることを示す。exact_match_flagが1に等しいとき、リカバリーポイントSEIメッセージに関連付けられたAUで復号プロセスを開始することによってビデオデコーダ30によって導出される指定のリカバリーポイントにおけるおよびそれに出力順で後続する復号されたピクチャが、ビットストリーム内で、もしあれば、前のRAP AUの場所で復号プロセスを開始することによって生じられるピクチャへの正確な一致であることは、ビットストリーム適合性の要件である。
[0142]ランダムアクセスを実行するとき、ビデオデコーダ30は、exact_match_flagの値に関係なく、利用不可能なピクチャへのすべての参照を、イントラコーディングブロックのみを含み、ならびに(1<<(BitDepthY−1))に等しいY、両方とも(1<<(BitDepthC−1))(中位の灰色)に等しいCbおよびCrによって与えられるサンプル値を有するピクチャへの参照と推測することができる。exact_match_flagが0に等しいとき、リカバリーポイントにおける近似の品質は、符号化プロセス中にビデオエンコーダ20によって選定される。
[0143]broken_link_flagシンタックス要素が、ビデオデコーダ30に、リカバリーポイントSEIメッセージの場所におけるNALユニットストリーム内の破損したリンクの存在または不在を示し、次のようにセマンティクスをさらに割り当てられる。broken_link_flagが1に等しい場合、前のRAP AUの場所で復号プロセスを開始することによってビデオデコーダ30によって生じられるピクチャは、デバイスが、出力順で指定のリカバリーポイントまで、リカバリーポイントSEIメッセージに関連付けられたアクセスユニットでおよび復号順でそれに後続する復号されたピクチャを表示するべきではない程度まで、望ましくない視覚的アーチファクトを含むことがある。そうでない(たとえば、ビデオデコーダ30が、broken_link_flagが0に等しいことを検出する)場合、視覚的アーチファクトの任意の潜在的な存在に関する指示は与えられない。
[0144]現在のピクチャが破損リンクアクセス(BLA:broken link access)ピクチャである例では、ビデオデコーダ30は、broken_link_flagの値が1に等しいことを検出することができる。broken_link_flagの値にかかわらず、ビデオデコーダ30は、出力順で指定のリカバリーポイントに後続するピクチャが、コンテンツにおいて正しいまたはほぼ正しいように指定されることを決定することができる。
[0145]領域リフレッシュ情報SEIメッセージに関連付けられたセマンティクスは以下で説明され、本明細書で説明される技法によってWD9の既存のセマンティクスに導入される変更は下線が引かれる。
[0146]領域リフレッシュ情報SEIメッセージは、現在のSEIメッセージに適用されるスライスセグメントが(以下で説明されるように)現在のピクチャのリフレッシュ領域に属するかどうかビデオデコーダ30に対して示す。RAP AUでなく、リカバリーポイントSEIメッセージを含むAUは、本明細書では、漸次復号リフレッシュ(GDR)AUと呼ばれ、その対応するピクチャはGDRピクチャと呼ばれる。示されたリカバリーポイントピクチャに対応するAUは、本明細書では、リカバリーポイントAUと呼ばれる。
[0147]ビデオデコーダ30は、コーディングされたビデオシーケンス内に復号順でGDRピクチャに続き、GDRピクチャのPicOrderCntVal+リカバリーポイントSEIメッセージ内のrecovery_poc_cntの値に等しいPicOrderCntValを有するピクチャがある場合、変数lastPicInSetがリカバリーポイントピクチャであることを決定することができる。そうでない場合は、lastPicInSetは、出力順でリカバリーポイントピクチャのすぐ前に来るピクチャである。ビデオデコーダ30は、ピクチャlastPicInSetが復号順でGDRピクチャに先行しないことを決定することができる。
[0148]ビデオデコーダ30は、gdrPicSetが、出力順でGDRピクチャから始まりピクチャlastPicInSetまでのピクチャのセットであることを決定することができる。ビデオデコーダ30が開始するとき、復号プロセスがGDR AUから開始され、gdrPicSetの各ピクチャ内のリフレッシュ領域が、コンテンツにおいて正しいまたはほぼ正しいピクチャの領域であるように示され、lastPicInSetがリカバリーポイントピクチャであるとき、lastPicInSet内のリフレッシュ領域はピクチャ全体を包含する。
[0149]ビデオデコーダ30は、領域リフレッシュ情報SEIメッセージが適用されるスライスセグメントが、もしあれば、復号順で、当該領域リフレッシュ情報SEIメッセージを含むSEI NALユニットに続き領域リフレッシュ情報SEIメッセージを含む次のSEI NALユニットに先行するAU内のすべてのスライスセグメントからなることを決定することができる。これらのスライスセグメントは、本明細書では、領域リフレッシュ情報SEIメッセージに関連付けられたスライスセグメントと呼ばれる。
[0150]さらに、ビデオデコーダ30は、gdrAuSetが、gdrPicSetに対応するアクセスユニットのセットであることを決定することができる。gdrAuSetおよび対応するgdrPicSetは、本明細書では、GDRアクセスユニットに含まれるリカバリーポイントSEIメッセージに関連付けられると呼ばれる。ビデオデコーダ30はまた、AUが、リカバリーポイントSEIメッセージに関連付けられたgdrAuSetに含まれない限り、領域リフレッシュ情報SEIメッセージはAUに存在するべきではないと決定することができる。さらに、ビデオデコーダ30は、gdrAuSetに含まれる任意のAUが1つまたは複数の領域リフレッシュ情報SEIメッセージを含むとき、gdrAuSet内のすべてのアクセスユニットは1つまたは複数の領域リフレッシュ情報SEIメッセージを含むと決定することができる。
[0151]refreshed_region_flagシンタックス要素が1に等しい場合、ビデオデコーダ30は、refreshed_region_flagシンタックス要素が、現在のSEIメッセージに関連付けられたスライスセグメントが現在のピクチャ内のリフレッシュ領域に属することを示すことを決定することができる。ビデオデコーダ30が、refreshed_region_flagシンタックス要素が0に等しいことを決定する場合、ビデオデコーダ30は、refreshed_region_flagシンタックス要素が、現在のSEIメッセージに関連付けられたスライスセグメントが現在のピクチャ内のリフレッシュ領域に属さないことを示すと決定することができる。
[0152]ビデオデコーダ30が、1つまたは複数の領域リフレッシュ情報SEIメッセージがAUに存在することを検出し、復号順でAUの第1のスライスセグメントが、関連付けられた領域リフレッシュ情報SEIメッセージを有さない場合、ビデオデコーダ30は、第1の領域リフレッシュ情報SEIメッセージに先行するスライスセグメントに対するrefreshed_region_flagシンタックス要素の値が0に等しいと推測することができる。
[0153]lastPicInSetがリカバリーポイントピクチャであり、任意の領域リフレッシュSEIメッセージがリカバリーポイントアクセスユニットに含まれるとき、ビデオデコーダ30は、復号順でAUの第1のスライスセグメントが、関連付けられた領域リフレッシュSEIメッセージを有し、refreshed_region_flagの値がAU内のすべての領域リフレッシュSEIメッセージにおいて1に等しいものとすることを決定することができる。ビデオデコーダ30が、1つまたは複数の領域リフレッシュ情報SEIメッセージがAUに存在することを決定する例では、ビデオデコーダ30は、ピクチャ内のリフレッシュ領域が、1に等しいrefreshed_region_flagを有する領域リフレッシュ情報SEIメッセージに関連付けられたAUのすべてのスライスセグメント内のCTUのセットと指定されることを決定することができる。ビデオデコーダ30は、他のスライスセグメントがピクチャの非リフレッシュ領域に属することを決定することができる。
[0154]ビットストリーム適合性の要件は、依存スライスセグメントがリフレッシュ領域に属するとき、復号順で先行するスライスセグメントもリフレッシュ領域に属するものとすることである。例では、ビデオデコーダ30は、gdrRefreshedSliceSegmentSetが、gdrPicSet内のリフレッシュ領域に属するすべてのスライスセグメントのセットであることを決定することができる。ビデオデコーダ30が、gdrAuSetが1つまたは複数の領域リフレッシュ情報SEIメッセージを含むことを決定するとき、次の制約がすべて適用されることがビットストリーム適合性の要件である。
・任意のリフレッシュ領域を含む、対応するgdrPicSetに含まれる復号順で第1のピクチャ内のリフレッシュ領域は、イントラコーディングモードでコーディングされるコーディング単位(CU)のみを含むものとする。
・gdrPicSetに含まれる各ピクチャに対して、gdrRefreshedSliceSegmentSet内のシンタックス要素は、gdrRefreshedSliceSegmentSet内の任意のサンプルの復号プロセスにおいてgdrRefreshedSliceSegmentSetの外部のサンプルまたは動きベクトル値がインター予測に使用されないように制限されるものとする。
・出力順でピクチャlastPicInSetに続く任意のピクチャに対して、ピクチャのスライスセグメント内のシンタックス要素は、出力順でピクチャlastPicInSetに続く他のピクチャのサンプルまたは動きベクトル値以外のピクチャの復号プロセスにおいてgdrRefreshedSliceSegmentSetの外部のサンプルまたは動きベクトル値がインター予測に使用されないように制限されるものとする。
[0155]図3に関して説明されたように、ビデオデコーダ30および/またはその構成要素は、ビデオデータを復号する方法を実行することができ、この方法は、符号化されたビデオビットストリームから複数のピクチャを受信することと、符号化されたビデオビットストリームから、複数のピクチャのうち第1のピクチャに関連付けられたメッセージ、漸次デコーダリフレッシュ(GDR)セットのリカバリーポイントピクチャのピクチャ順序カウント(POC)値を示す情報を受信することと、復号順で第1のピクチャに続くピクチャが、リカバリーポイントピクチャのPOC値に等しいPOC値を有するとき、リカバリーポイントピクチャのPOC値に等しいPOC値を有するピクチャをリカバリーポイントピクチャと識別することと、第1のピクチャに続くピクチャのいずれも、リカバリーポイントピクチャのPOC値に等しいPOC値を有さないとき、リカバリーポイントピクチャのPOC値よりも大きいPOC値を有するピクチャのうち1つをリカバリーポイントピクチャと識別することとを含む。
[0156]ビデオデコーダ30に関して上記で説明された方法のいくつかの例示的な実装形態によれば、この方法は、リカバリーポイントピクチャのPOC値に等しいPOC値を有するピクチャをリカバリーポイントピクチャと識別したことに応答して、リカバリーポイントピクチャのPOC値に等しいPOC値を有するピクチャをGDRセットの最後のピクチャと識別することと、リカバリーポイントピクチャのPOC値よりも大きいPOC値を有するピクチャをリカバリーポイントピクチャと識別したことに応答して、リカバリーポイントピクチャのPOC値よりも小さいPOC値を有するピクチャのうち1つをGDRセットの最後のピクチャと識別することとをさらに含む。いくつかの例示的な実装形態では、リカバリーポイントピクチャのPOC値よりも小さいPOC値を有するピクチャのPOC値は、第1のピクチャのPOC値よりも大きい。いくつかの例示的な実装形態によれば、メッセージは付加拡張情報(SEI)メッセージを備える。そのような例示的な一実装形態では、SEIメッセージはリカバリーポイントSEIメッセージを備える。
[0157]ビデオデコーダ30に関して上記で説明された方法のいくつかの例示的な実装形態では、リカバリーポイントピクチャのPOC値を示す情報は、第1のピクチャのPOC値とリカバリーポイントピクチャのPOC値の間の差を示す情報を備える。いくつかの例示的な実装形態によれば、リカバリーポイントピクチャのPOC値を示す情報は、リカバリーポイントピクチャのPOC値を備える。いくつかの例示的な実装形態では、ビデオデコーダ30に関して上記で説明された方法は、GDRによりGDRセットの1つまたは複数のピクチャを復号することをさらに含む。そのような1つの例示的な実装形態によれば、この方法は、識別されたリカバリーポイントピクチャおよび復号順でこの識別されたリカバリーポイントピクチャに続く1つまたは複数のピクチャに対して、ランダムアクセス復号を実行することをさらに含む。
[0158]さらに、ビデオデコーダ30および/またはその構成要素は、ビデオデータを復号する方法を実行することができ、この方法は、ピクチャに関連付けられたメッセージにおける、このピクチャのリフレッシュ領域を示す情報を受信することと、このピクチャが漸次デコーダリフレッシュ(GDR)セット内の最後のピクチャを備えるかどうか決定することと、このピクチャがリカバリーポイントピクチャを備えるかどうか決定することと、このピクチャがGDRセット内の最後のピクチャとリカバリーポイントピクチャとを備えることを決定したことに応答して、メッセージが、ピクチャ全体がピクチャのリフレッシュ領域に属することを示すことを決定することとを含む。ビデオデコーダ30に関して上記で説明された方法のいくつかの例示的な実装形態では、メッセージは、付加拡張情報(SEI)メッセージを備える。そのような例示的な一実装形態では、SEIメッセージは領域リフレッシュSEIメッセージを備える。
[0159]ビデオデコーダ30に関して上記で説明された方法のいくつかの例示的な実装形態では、メッセージが、ピクチャ全体がピクチャのリフレッシュ領域に属することを示すことを決定することは、領域リフレッシュSEIメッセージに関連付けられたrefreshed_region_flagシンタックス要素が1という値を有することを決定することを備える。そのような例示的な一実装形態では、refreshed_region_flagシンタックス要素は、ピクチャを含むアクセスユニット(AU)の第1のスライスセグメントに関連付けられ、ピクチャ全体がリフレッシュ領域に属することを決定することは、AUの第1のスライスセグメントと異なるAUの各スライスセグメントは対応するrefreshed_region_flagシンタックス要素に関連付けられたことを決定することをさらに備える。
[0160]様々な例では、ビデオデコーダ30は、デスクトップコンピュータ、ノートブック(すなわちラップトップ)コンピュータ、タブレットコンピュータ、セットトップボックス、いわゆる「スマート」フォンなどの電話ハンドセット、いわゆる「スマート」パッド、テレビジョン、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲーミングコンソール、ビデオストリーミングデバイスなどの、ビデオデータをコーディングするためのデバイスに含まれ得る。例では、ビデオデータをコーディングするためのそのようなデバイスは、集積回路、マイクロプロセッサ、およびビデオデコーダ30を含む通信デバイスのうち1つまたは複数を含むことができる。
[0161]図4は、本開示の1つまたは複数の態様による、第1のGDRピクチャ90AとGDRセットピクチャ90B、90Cなどとリカバリーポイントピクチャ90Nとを含む例示的な漸次復号リフレッシュ(GDR)セット90を示す概念図である。GDRセット90に関して本明細書で説明される技法は様々なデバイスによって実行され得るが、説明しやすいという目的のみのために、図4は、図1および図3のビデオデコーダ30に関して本明細書で説明される。ビデオデコーダ30は、GDRピクチャ90Aを含むアクセスユニット(AU)がリカバリーポイントSEIメッセージも含むことを検出することができる。GDRピクチャ90Aに関連付けられたリカバリーポイントSEIメッセージを検出したことに基づいて、ビデオデコーダ30は、GDRピクチャ90Aが、受信された符号化されたビデオビットストリームにおいてシグナリングされるGDRセットの第1のピクチャを形成することを決定することができる。
[0162]さらに、ビデオデコーダ30は、リカバリーポイントピクチャ90NのPOCカウントを取得するために、リカバリーポイントSEIメッセージに含まれるrecovery_poc_cntシンタックス要素の値を適用することができる。たとえば、ビデオデコーダ30は、リカバリーポイントピクチャ90NのPOC値を取得するために、recovery_poc_cntシンタックス要素の値をGDRピクチャ90Aのピクチャ順序カウント(POC)値に追加することができる。GDRセット90の例では、ビデオデコーダ30は、recovery_poc_cntシンタックス要素からビデオデコーダ30によって導出されるPOC値を有するピクチャすなわちリカバリーポイントピクチャ90Nを特定することができる。たとえば、GDRセット90が、ネットワーク要素68によって抽出される時間的サブセットに含まれる場合でも、GDRセットは依然として、リカバリーポイントSEIメッセージによって識別されたリカバリーポイントピクチャ90Nを含むことができる。言い換えれば、GDRセット90の例では、リカバリーポイントピクチャ90Nは、時間的スケーリングにより破棄されなかった。
[0163]recovery_poc_cntシンタックス要素の値を使用してリカバリーポイントピクチャ90Nを検出したことに基づいて、ビデオデコーダ30は、リカバリーポイントピクチャ90Nの全体がリフレッシュ領域に属すること、およびリカバリーポイントピクチャ90NがGDRセット90に対するlastPicInSetであることを決定するために、本開示の技法を実施することができる。
[0164]図5は、本開示の1つまたは複数の態様による、時間的スケーリングによりリカバリーポイントピクチャ94Nが除去された例示的な漸次復号リフレッシュ(GDR)セット94を示す概念図である。GDRセット94は、第1のGDRピクチャ94Aと、GDRセットピクチャ94Bと、1つまたは複数の追加のGDRセットピクチャと、最後のGDRセットピクチャ94Mとを含む。GDRセットピクチャをラベリングするために使用される文字は、GDRセット内の特定の番号のピクチャを示すことを意図するものではなく、ラベルとして働くことを意図するものである。GDRセット90に関して本明細書で説明される技法は様々なデバイスによって実行され得るが、説明しやすいという目的のみのために、図4は、図1および図3のビデオデコーダ30に関して本明細書で説明される。GDRセット94の例では、ネットワーク要素68は、時間的スケーリング中に、リカバリーポイントSEIメッセージ内で識別されたリカバリーポイントピクチャ(たとえば、SEI識別されるリカバリーポイントピクチャ94N)を破棄した可能性がある。SEI識別されるリカバリーポイントピクチャ94Nは、SEI識別されるリカバリーポイントピクチャ94Nが上位の時間的レイヤに存在していたが、ビデオデコーダ30によって受信される下位の時間的レイヤに存在しないことを示す破線ボーダーにより示されている。
[0165]図5のコーディングされたビデオシーケンス92の例では、ビデオデコーダ30は、リカバリーポイントSEIメッセージが、SEI識別されたリカバリーポイントピクチャ94NをGDRセット94のリカバリーポイントピクチャと識別することを決定するためにrecovery_poc_cntを使用することができる。しかしながら、SEI識別されるリカバリーポイントピクチャ94Nは時間的スケーリング中に破棄されているので、ビデオデコーダ30は、受信された時間的サブセット内にSEI識別されるリカバリーポイントピクチャ94Nを特定することができないことがある。次に、ビデオデコーダ30は、時間的にスケーラブルなビットストリームをサポートしながら、GDRセット94のGDRベース復号をサポートするために、本開示の1つまたは複数の技法を実施することができる。
[0166]たとえば、ビデオデコーダ30は、SEI識別されるリカバリーポイントピクチャ94Nに対して導出されたPOC値よりも大きいPOC値を有する、コーディングされたビデオシーケンス92の復号順で第1のピクチャを特定することができる。さらに、ビデオデコーダ30は、特定されたピクチャをGDRセット94に対するリカバリーポイントピクチャと識別するために、本明細書で説明される1つまたは複数の技法を実施することができる。図5の例では、ビデオデコーダ30は、リカバリーポイントピクチャ96を、SEI識別されたリカバリーポイントピクチャ94NのPOC値よりも大きいPOC値を有する、コーディングされたビデオシーケンス92の第1のピクチャと識別することができる。たとえば、リカバリーポイントピクチャ96をGDRセット94に対するリカバリーポイントピクチャと識別することによって、ビデオデコーダ30は、復号コーディングされたビデオシーケンス92におけるランダムアクセスおよび誤り耐性のために、リカバリーポイントピクチャ96の全体がリフレッシュ領域に属することを決定することができる。
[0167]さらに、ビデオデコーダ30は、コーディングされたビデオシーケンス92内のリカバリーポイントピクチャ96のすぐ前に来るピクチャをGDRセット94のlastPicInSetと識別することができる。たとえば、コーディングされたビデオシーケンス92内のSEI識別されたリカバリーポイントピクチャ94Nを特定することができないに応答して、ビデオデコーダ30は、last_picture_in_GDR_set94MをGDRセット94のlastPicInSetと識別するために、本開示の技法を実施することができる。この例では、ビデオデコーダ30は、コーディングされたビデオシーケンス92において復号順で連続する2つの別個のピクチャを、GDRセット94に対するlastPicInSet(94M)およびリカバリーポイントピクチャ(96)と識別することができる。さらに、この例では、ビデオデコーダ30によって識別されたリカバリーポイントピクチャは、GDRセット94に含まれないことがある。図5は、SEI識別されたリカバリーポイントピクチャ94Nが時間的スケーリングにより破棄された場合でも、GDRセット94のためのlastPicInSetとリカバリーポイントピクチャとを識別するためにビデオデコーダ30が本開示の技法を実施し得る一例を示す。このようにして、図5は、符号化されたビデオビットストリームの時間的スケーラビリティをサポートしながらHEVC WD9で説明されるようにGDRによりGDRセット94を復号するために、ビデオデコーダ30が本開示の技法を実施し得る例を示す。
[0168]図6は、本開示の1つまたは複数の態様による、符号化されたビデオデータを復号するためにビデオデコーダ30および/またはその構成要素が実行し得る例示的なプロセスを示すフローチャート100である。プロセス100は、ビデオデコーダ30が、受信された符号化されたビデオビットストリーム内でリカバリーポイントSEIメッセージを検出したとき、始まることができる(102)。たとえば、ビデオデコーダ30は、GDRアクセスユニット内のリカバリーポイントSEIメッセージを検出することができ、GDRアクセスユニットは、GDRセットの第1のGDRピクチャなどの符号化されたGDRピクチャに関連付けられたデータも含む。GDRアクセスユニット内のリカバリーポイントSEIメッセージを検出したことに基づいて、ビデオデコーダ30は、GDRアクセスユニットに含まれるGDRピクチャがGDRセットの第1のピクチャを形成すると決定することができる。
[0169]さらに、ビデオデコーダ30は、リカバリーポイントSEIメッセージ内の識別されたリカバリーポイントピクチャが、受信された符号化されたビデオビットストリームに含まれるかどうか決定することができる(104)。たとえば、ビデオデコーダ30は、SEI識別されたリカバリーポイントピクチャのPOC値を取得するために、リカバリーポイントSEIメッセージのrecovery_poc_cntシンタックス要素の値をGDRピクチャのPOC値に加算することができる。一例では、ビデオデコーダは、シーケンスのピクチャがPOC値を導出したかどうか決定するために、受信されたコーディングされたビデオシーケンスをトラバース(traverse)するために、導出されたPOC値を使用することができる。たとえば、ビデオデコーダ30は、復号順にコーディングされたビデオシーケンスをトラバースすることができる。この例では、ビデオデコーダ30が、導出されたPOC値を有するピクチャに到達した場合、ビデオデコーダ30は、SEI識別されたリカバリーポイントピクチャが、受信されたコーディングされたビデオシーケンスに含まれることを決定することができる。一方、この例では、ビデオデコーダ30が、導出されたPOC値よりも大きいPOC値を有するピクチャに到達したが、導出されたPOC値を有するピクチャをまだ特定していない場合、ビデオデコーダ30は、SEI識別されたリカバリーポイントピクチャが、受信された符号化されたビデオビットストリームに含まれないことを決定することができる。
[0170]ビデオデコーダ30が、SEI識別されたリカバリーポイントピクチャが、受信されたビットストリームに含まれることを決定した場合(104の「はい」分岐)、ビデオデコーダは、SEI識別されたリカバリーポイントピクチャを、GDRセット内の最後のピクチャ(lastPicInSet)とGDRセットに対するリカバリーポイントピクチャの両方と識別することができる(106)。このシナリオでは、ビデオデコーダ30は、lastPicInSetとリカバリーポイントピクチャが同じピクチャであること、およびリカバリーポイントピクチャがGDRセットに含まれることを決定することができる。
[0171]一方、ビデオデコーダ30が、SEI識別されたリカバリーポイントピクチャが、受信されたビデオビットストリームに含まれないことを決定した場合(104の「いいえ」分岐)、ビデオデコーダ30は、SEI識別されたリカバリーポイントピクチャに続くピクチャをGDRセットに対するリカバリーポイントピクチャと識別することができる(108)。たとえば、ビデオデコーダ30は、リカバリーピクチャを、SEI識別されたリカバリーポイントピクチャに対して導出されたPOC値よりも大きいPOC値を有する、受信されたビデオビットストリームの復号順で第1のピクチャと識別することができる。
[0172]さらに、このシナリオでは、ビデオデコーダ30は、復号順で識別されたリカバリーポイントピクチャのすぐ前に来る、受信されたコーディングされたビデオシーケンスのピクチャ、すなわちSEI識別されたリカバリーポイントピクチャに対して導出されたPOC値よりも小さいPOC値を有する最後のピクチャを、GDRセットのlastPicInSetと識別することができる(110)。この例では、ビデオデコーダ30は、復号順で連続する2つの別個のピクチャを、GDRセットに対するlastPicInSetおよびリカバリーポイントピクチャと識別することができる。さらに、この例では、ビデオデコーダ30は、lastPicInSetがGDRセットに含まれること、およびリカバリーポイントピクチャがGDRセットに含まれないことを決定することができる。たとえば、ビデオデコーダ30は、リカバリーポイントピクチャが、受信された符号化されたビデオビットストリーム内のGDRセットに続く、復号順で第1の(最初の)ピクチャであることを決定することができる。
[0173]このようにして、ビデオデコーダ30はビデオデータを復号するためのデバイスの一例であることがあり、このデバイスは、符号化されたビデオビットストリームから複数のピクチャを受信するための手段と、符号化されたビデオビットストリームから、複数のピクチャのうち第1のピクチャに関連付けられたメッセージ、漸次デコーダリフレッシュ(GDR)セットのリカバリーポイントピクチャのPOC値を示す情報を受信するための手段と、復号順で第1のピクチャに続くピクチャが、リカバリーポイントピクチャのPOC値に等しいPOC値を有するとき、リカバリーポイントピクチャのPOC値に等しいPOC値を有するピクチャをリカバリーポイントピクチャと識別するための手段と、第1のピクチャに続くピクチャのいずれも、リカバリーポイントピクチャのPOC値に等しいPOC値を有さないとき、リカバリーポイントピクチャのPOC値よりも大きいPOC値を有するピクチャのうち1つをリカバリーポイントピクチャと識別するための手段とを含む。
[0174]いくつかの例では、デバイスは、リカバリーポイントピクチャのPOC値に等しいPOC値を有するピクチャをリカバリーポイントピクチャと識別したことに応答して、リカバリーポイントピクチャのPOC値に等しいPOC値を有するピクチャをGDRセットの最後のピクチャと識別するための手段と、リカバリーポイントピクチャのうちPOC値よりも大きいPOC値を有するピクチャをリカバリーポイントピクチャと識別したことに応答して、リカバリーポイントピクチャのPOC値よりも小さいPOC値を有するピクチャのうち1つをGDRセットの最後のピクチャと識別するための手段とをさらに含むことができる。いくつかの例によれば、リカバリーポイントピクチャのPOC値よりも小さいPOC値を有するピクチャのPOC値は、第1のピクチャのPOC値よりも大きい。
[0175]いくつかの例では、メッセージはリカバリーポイント付加拡張情報(SEI)メッセージを備える。いくつかの例によれば、リカバリーポイントピクチャのPOC値よりも小さいPOC値を有するピクチャのPOC値は、第1のピクチャのPOC値よりも大きい。いくつかの例によれば、リカバリーポイントピクチャのPOC値を示す情報は、第1のピクチャのPOC値とリカバリーポイントピクチャのPOC値の間の差を示す情報を備える。いくつかの例によれば、リカバリーポイントピクチャのPOC値を示す情報は、リカバリーポイントピクチャのPOC値を備える。いくつかの例では、デバイスは、識別されたリカバリーポイントピクチャおよび復号順で識別されたリカバリーポイントピクチャに続く1つまたは複数のピクチャに対してランダムアクセス復号を実行するための手段をさらに含むことができる。
[0176]さらに、このようにして、図1の宛先デバイス14は、実行されるときにコンピューティングデバイスのプロセッサに符号化されたビデオビットストリームから複数のピクチャを受信させ、符号化されたビデオビットストリームから、複数のピクチャのうち第1のピクチャに関連付けられたメッセージ、漸次デコーダリフレッシュ(GDR)セットのリカバリーポイントピクチャのPOC値を示す情報を受信させ、復号順で第1のピクチャに続くピクチャが、リカバリーポイントピクチャのPOC値に等しいPOC値を有するとき、リカバリーポイントピクチャのPOC値に等しいPOC値を有するピクチャをリカバリーポイントピクチャと識別させ、第1のピクチャに続くピクチャのいずれも、リカバリーポイントピクチャのPOC値に等しいPOC値を有さないとき、リカバリーポイントピクチャのPOC値よりも大きいPOC値を有するピクチャのうち1つをリカバリーポイントピクチャと識別させる命令が記憶されたコンピュータ可読記憶媒体を含むまたはこれに結合されたコンピューティングデバイスの一例であることがある。
[0177]いくつかの例では、このコンピュータ可読記憶媒体は、実行されるときにコンピューティングデバイスのプロセッサにさらに、リカバリーポイントピクチャのPOC値に等しいPOC値を有するピクチャをリカバリーポイントピクチャと識別したことに応答して、リカバリーポイントピクチャのPOC値に等しいPOC値を有するピクチャをGDRセットの最後のピクチャと識別させ、リカバリーポイントピクチャのPOC値よりも大きいPOC値を有するピクチャをリカバリーポイントピクチャと識別したことに応答して、リカバリーポイントピクチャのPOC値よりも小さいPOC値を有するピクチャのうち1つをGDRセットの最後のピクチャと識別させる命令が記憶されることがある。いくつかの例では、メッセージはリカバリーポイント付加拡張情報(SEI)メッセージを備える。いくつかの例によれば、リカバリーポイントピクチャのPOC値よりも小さいPOC値を有するピクチャのPOC値は、第1のピクチャのPOC値よりも大きい。
[0178]いくつかの例では、メッセージは付加拡張情報(SEI)メッセージを備える。そのような一例では、SEIメッセージは領域リフレッシュSEIメッセージを備える。いくつかの例によれば、リカバリーポイントピクチャのPOC値を示す情報は、第1のピクチャのPOC値とリカバリーポイントピクチャのPOC値の間の差を示す情報を備える。いくつかの例によれば、リカバリーポイントピクチャのPOC値を示す情報は、リカバリーポイントピクチャのPOC値を備える。いくつかの例では、コンピュータ可読記憶媒体は、実行されるときにコンピューティングデバイスのプロセッサにさらに、識別されたリカバリーポイントピクチャおよび復号順で識別されたリカバリーポイントピクチャに続く1つまたは複数のピクチャに対してランダムアクセス復号を実行させる命令が記憶されることがある。
[0179]図7は、本開示の1つまたは複数の態様による、符号化されたビデオデータを復号するためにビデオデコーダ30および/またはその構成要素が実行し得る例示的なプロセス120を示すフローチャートである。プロセス120は、ビデオデコーダ30が、符号化されたビデオビットストリーム内の1つまたは複数の符号化されたピクチャのセットを受信したとき、始まることができる(122)。様々な例では、符号化されたピクチャの受信されたセットは、GDRセットを含んでもよいし、GDRセットであってもよいし、GDRセットの一部であってもよい。
[0180]ビデオデコーダ30は、受信されたセットの現在のピクチャがGDRセットのlastPicInSetでもあり、リカバリーポイントピクチャでもあることを検出することができる(124)。一例として、ビデオデコーダ30は、現在のピクチャが、符号化されたビデオビットストリーム内の最も最近に受信されたリカバリーポイントSEIメッセージによって示されるPOC値に一致するPOC値を有することを決定することができる。この例では、最も最近に受信されたリカバリーポイントSEIメッセージに示されるPOC値に一致する現在のピクチャのPOC値に基づいて、ビデオデコーダ30は、現在のピクチャがGDRセットのlastPicInSetでもあり、ならびにリカバリーポイントピクチャでもあることを決定することができる。
[0181]さらに、ビデオデコーダ30は、受信された領域リフレッシュSEIメッセージが、現在のピクチャを含むAUの第1のスライスセグメントに対する、1の値に設定されたrefreshed_region_flagを含むことを決定することができる(126)。たとえば、ビデオデコーダ30は、現在のピクチャの各スライスセグメントに対応するrefreshed_region_flagを取得するために、現在のピクチャに関連付けられた領域リフレッシュSEIメッセージを復号することができる。いくつかの例では、ビデオデコーダ30は、AUのrefreshed_region_flagを順次スライス順で取得する、すなわち、AUの第1のスライスを復号することで始まり、次いでAUの第2のスライスを復号し、以下同様のために、領域リフレッシュSEIメッセージを復号することができる。その結果、AUのrefreshed_region_flagを順次取得する例では、ビデオデコーダ30は、第1のスライスセグメントに対するrefreshed_region_flagを取得してから、AUの残りのスライスセグメントに対するrefreshed_region_flagを取得することができる。
[0182]現在のピクチャがlastPicInSetおよびリカバリーポイントピクチャであることを決定したこと(124)、ならびにAUの第1のスライスに対するrefreshed_region_flagが1の値に設定されたこと(126)に基づいて、ビデオデコーダ30は、領域リフレッシュSEIメッセージが、AUのすべての残りのスライスに対する1の値に設定されたrefreshed_region_flagを含むことを決定することができる(128)。たとえば、AUの第1のスライスが1の値に設定されたことに基づいて、および現在のピクチャがlastPicInSetおよびリカバリーポイントピクチャであることを決定したことに基づいて、ビデオデコーダ30は、現在のピクチャが完全にリフレッシュされたピクチャであることを決定することができる。言い換えれば、この例では、ビデオデコーダ30は、現在のピクチャの全体が現在のピクチャのリフレッシュ領域に属することを決定することができる。次に、現在のピクチャが完全にリフレッシュされたピクチャであることを決定したことに基づいて、ビデオデコーダ30は、AUのすべてのスライスに対応するrefreshed_region_flagの値が1の値に設定されることを推測することができる。
[0183]このようにして、ビデオデコーダ30が、現在のピクチャは完全にリフレッシュされることを決定する例では、ビデオデコーダ30は、(現在のピクチャを含むAUに対する)領域リフレッシュSEIメッセージに含まれるすべてのrefreshed_region_flagの値が1の値に設定されることを決定するために、本開示の技法を実施することができる。たとえば、ビデオデコーダは、1の値を取得するために、AUの第1のスライスに対するrefreshed_region_flagを復号することができる。1の値を有する第1のスライスに対するrefreshed_region_flagの値と、現在のピクチャがlastPicInSetおよびリカバリーポイントピクチャであることに基づいて、ビデオデコーダ30は、AUの残りのスライスのrefreshed_region_flagの値が1の値を有し、それによって、完全にリフレッシュされたピクチャを表すことを推測することができる。残りのrefreshed_region_flagの値が、完全にリフレッシュされたピクチャの場合に1の値を有することを推測することによって、ビデオデコーダ30は、完全にリフレッシュされたピクチャに対する復号精度を維持しながら、復号プロセスにおいてコンピューティングリソースを保護することができる。
[0184]このようにして、ビデオデコーダ30はビデオデータを復号するためのデバイスの一例であることがあり、このデバイスは、ピクチャに関連付けられたメッセージにおける、このピクチャのリフレッシュ領域を示す情報を受信するための手段と、このピクチャが漸次デコーダリフレッシュ(GDR)セット内の最後のピクチャを備えるかどうか決定するための手段と、このピクチャがリカバリーポイントピクチャを備えるかどうか決定するための手段と、このピクチャがGDRセット内の最後のピクチャとリカバリーポイントピクチャとを備えることを決定したことに応答して、メッセージが、ピクチャ全体がピクチャのリフレッシュ領域に属することを示すことを決定するための手段と、メッセージが、ピクチャ全体がピクチャのリフレッシュ領域に属することを示すという決定に基づいて、ピクチャを復号するための手段とを含む。いくつかの例では、メッセージは付加拡張情報(SEI)メッセージを備える。そのような一例では、SEIメッセージは領域リフレッシュSEIメッセージを備える。
[0185]いくつかの例では、メッセージが、ピクチャ全体がピクチャのリフレッシュ領域に属することを示すことを決定するための手段は、領域リフレッシュSEIメッセージに関連付けられたrefreshed_region_flagシンタックス要素が1という値を有することを決定するための手段を含む。そのような一例では、refreshed_region_flagシンタックス要素は、ピクチャを含むアクセスユニット(AU)の第1のスライスセグメントに関連付けられ、ピクチャ全体がリフレッシュ領域に属することを決定するための手段は、AUの第1のスライスセグメントと異なるAUの各スライスセグメントは対応するrefreshed_region_flagシンタックス要素に関連付けられたことを決定するための手段をさらに含む。
[0186]さらに、このようにして、図1の宛先デバイス14は、実行されるときにコンピューティングデバイスのプロセッサにピクチャに関連付けられたメッセージにおける、このピクチャのリフレッシュ領域を示す情報を受信させ、このピクチャが漸次デコーダリフレッシュ(GDR)セット内の最後のピクチャを備えるかどうか決定させ、このピクチャがリカバリーポイントピクチャを備えるかどうか決定させ、このピクチャがGDRセット内の最後のピクチャとリカバリーポイントピクチャとを備えることを決定したことに応答して、メッセージが、ピクチャ全体がピクチャのリフレッシュ領域に属することを示すことを決定させ、メッセージが、ピクチャ全体がピクチャのリフレッシュ領域に属することを示すという決定に基づいて、ピクチャを復号させる命令が記憶されたコンピュータ可読記憶媒体を含むまたはこれに結合されたコンピューティングデバイスの一例であることがある。いくつかの例では、メッセージは付加拡張情報(SEI)メッセージを備える。そのような一例では、SEIメッセージは領域リフレッシュSEIメッセージを備える。
[0187]いくつかの例では、コンピューティングデバイスのプロセッサに、メッセージが、ピクチャ全体がピクチャのリフレッシュ領域に属することを示すことを決定させる命令は、コンピューティングデバイスのプロセッサに、領域リフレッシュSEIメッセージに関連付けられたrefreshed_region_flagシンタックス要素が1の値を有することを決定させる命令を含む。そのような一例では、refreshed_region_flagシンタックス要素は、ピクチャを含むアクセスユニット(AU)の第1のスライスセグメントに関連付けられ、コンピューティングデバイスのプロセッサに、ピクチャ全体がリフレッシュ領域に属することを決定させる命令は、コンピューティングデバイスのプロセッサに、AUの第1のスライスセグメントと異なるAUの各スライスセグメントは対応するrefreshed_region_flagシンタックス要素に関連付けられていることを決定させる命令をさらに含む。
[0188]1つまたは複数の例では、説明された機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せにおいて実装され得る。ソフトウェアで実装される場合、これらの機能は、1つまたは複数の命令またはコードとしてコンピュータ可読媒体上に記憶されるかまたはコンピュータ可読媒体を介して送信され、ハードウェアベースの処理ユニットによって実行されてよい。コンピュータ可読媒体としては、データ記憶媒体などの有形媒体に対応するコンピュータ可読記憶媒体、様々なコンピュータ可読ストレージデバイス、またはある場所から別の場所への、たとえば通信プロトコルによるコンピュータプログラムの転送を容易にする任意の媒体を含む通信媒体があり得る。このように、コンピュータ可読媒体は通常、(1)非一時的な有形コンピュータ可読記憶媒体、または(2)信号または搬送波などの通信媒体に対応することができる。データ記憶媒体は、本開示で説明される技法の実装形態のための命令、コード、および/またはデータ構造を取り出すために1つもしくは複数のコンピュータまたは1つもしくは複数のプロセッサによってアクセスできる任意の利用可能な媒体であってよい。コンピュータプログラム製品は、コンピュータ可読媒体を含んでよい。
[0189]限定ではなく、例として、そのようなコンピュータ可読記憶媒体は、RAM、ROM、EEPROM(登録商標)、CD−ROMもしくは他の光ディスクストレージ、磁気ディスクストレージ、または他の磁気ストレージデバイス、フラッシュメモリ、または命令もしくはデータ構造の形態で所望のプログラムコードを記憶するために使用でき、コンピュータによってアクセスできる任意の他の媒体を備えることができる。また、あらゆる接続は、コンピュータ可読媒体と呼ばれるのが適切である。たとえば、命令が、同軸ケーブル、光ファイバケーブル、ツイストペア、デジタル加入者線(DSL)、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用してウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバケーブル、ツイストペア、DSL、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。しかしながら、コンピュータ可読記憶媒体およびデータ記憶媒体は、接続、搬送波、信号、または他の一時的媒体を含まず、代わりに、非一時的な有形記憶媒体に向けられることを理解されたい。本明細書で使用されるディスク(disk)およびディスク(disc)としては、コンパクトディスク(compact disc)(CD)、レーザーディスク(登録商標)(laser disc)、光ディスク(optical disc)、デジタル多用途ディスク(digital versatile disc)(DVD)、フロッピー(登録商標)ディスク(floppy disk)、およびブルーレイディスク(blu-ray disc)があり、ここで、ディスク(disk)は通常、磁気的にデータを再生し、一方、ディスク(disc)はレーザーを用いて光学的にデータを再生する。上記の組合せもコンピュータ可読媒体の範囲に含まれる。
[0190]命令は、1つまたは複数のデジタル信号プロセッサ(DSP)、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブルロジックアレイ(FPGA)、または他の等価な集積回路もしくは離散論理回路などの1つまたは複数のプロセッサによって実行され得る。したがって、本明細書で使用される「プロセッサ」という用語は、前述の構造または本明細書で説明される技法の実装形態に適した任意の他の構造のうちいずれかを指すことがある。さらに、いくつかの態様では、本明細書で説明される機能は、を符号化および復号するように構成された専用ハードウェアおよび/またはソフトウェアモジュール内で提供されてもよいし、複合コーデックに組み込まれてもよい。また、技法は、1つまたは複数の回路または論理素子で十分に実装されてよい。
[0191]本開示の技法は、ワイヤレスハンドセット、集積回路(IC)、またはICのセット(たとえばチップセット)を含む多種多様なデバイスまたは装置で実装され得る。様々な構成要素、モジュール、またはユニットは、開示された技法を実行するように構成されたデバイスの機能的側面を強調するために本開示で説明されるが、必ずしも異なるハードウェアユニットによる実現を必要とするとは限らない。むしろ、上記で説明されるように、様々なユニットは、適切なソフトウェアおよび/またはファームウェアとともに、上記で説明された1つまたは複数のプロセッサを含む、コーデックハードウェアユニットで組み合わされてもよいし、相互運用ハードウェアユニットのうち集合によって提供されてもよい。
[0192]様々な例について説明されている。これらおよび他の例は、以下の特許請求の範囲内に入る。