[0019]一般に、本開示の技法は、コード化ビデオデータの時間スケーラビリティをサポートしながら、プログレッシブ精緻化を使用してビデオデータをコーディングすることに関する。本開示の様々な例によれば、ビデオコーディングデバイスは、時間スケーラビリティをサポートしながらプログレッシブ精緻化を可能にするために、AVC規格とHEVC規格の両方によってサポートされる補足エンハンスメント情報(SEI)機構によって提供されるメッセージを使用することができる。このようにして、本開示の技法は、時間スケーラビリティをサポートするためにプログレッシブ精緻化ベースのコーディングを強化しながら、ビデオコーディングデバイスが既存のハードウェア、ソフトウェア、および通信基盤を活用することを可能にする潜在的な利点を提供することができる。
[0020]「HEVC Working Draft 10」または「WD10」と呼ばれるHEVC規格の最近のドラフトは、文書JCTVC−L1003v34、Brossら、「High efficiency video coding(HEVC) text specification draft 10(for FDIS & Last Call)」、ITU−T SG16 WP3とISO/IEC JTC1/SC29/WG11のJoint Collaborative Team on Video Coding(JCT−VC)、第12回会合:スイス ジュネーブ、2013年1月14〜23日に記載されおり、この文書は、2013年6月6日現在、http://phenix.int−evry.fr/jct/doc_end_user/documents/12_Geneva/wg11/JCTVC−L1003−v34.zipからダウンロード可能である。
WD10の内容全体は、参照により本明細書に組み込まれる。
AVC(ITU−T)H.264規格は、ITU−T研究グループによる2005年3月付けのITU−T勧告H.264,Advanced Video Coding for generic audiovisual servicesに記載されており、本明細書ではH.264規格もしくはH.264仕様、またはH.264/AVC規格もしくは仕様と呼ばれる場合がある。共同ビデオ部会(JVT)は、H.264/MPEG−4 AVCへの拡張に取り組み続けている。
[0021]以下で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」、Document JCTVC−K1003_v7、第11回会合:中国上海、2012年10月10〜19日、ページ290)の内容全体は、参照により本明細書に組み込まれる。
[0022]AVC規格とHEVC規格の両方は、プログレッシブ精緻化を使用するビデオデータのコーディングをサポートする。プログレッシブ精緻化により、復号順序で配列されたピクチャのシーケンスまたはシリーズなどの、ピクチャのセットをデバイスがコーディングすることが可能になり得る。そのようなピクチャのシーケンスは、本明細書では「プログレッシブ精緻化セグメント」と呼ばれる。プログレッシブ精緻化セグメントは、各々が特定のピクチャ(たとえば、「ベースピクチャ」)の精緻化されたバージョンを表す2つ以上の符号化ピクチャを含む場合がある。そのピクチャは、品質、または空間フォーマットなどの他の特性に関して精緻化され得る。一般に、プログレッシブ精緻化セグメントの符号化ピクチャは、動きベースの予測を使用してベースピクチャから予測される場合はない。ビデオコーディングデバイスは、「プログレッシブ精緻化セグメント開始」SEIメッセージおよび「プログレッシブ精緻化セグメント終了」SEIメッセージなどの特定のSEIメッセージを使用して、プログレッシブ精緻化セグメントの境界を決定することができる。
[0023]加えて、AVC規格とHEVC規格の両方は、ビデオビットストリームの時間スケーラビリティをサポートする。時間スケーラビリティにより、符号化ビデオデータのサブセットが符号化ビデオデータの完全なビットストリームから抽出され得るとビデオコーディングデバイスが決定することが可能になり得る。時間スケーラビリティに従って完全なビットストリームから抽出された、そのような符号化ビデオデータ(たとえば、符号化ピクチャ)のサブセットは、「時間サブセット」と呼ばれる場合がある。次に、AVC規格およびHEVC規格によってサポートされる時間スケーラビリティにより、様々な数の符号化ピクチャを含む様々な時間サブセットなどの、完全なビットストリームからの複数の時間サブセットをビデオコーディングデバイスが決定することが可能になり得る。より低い、または「より粗い」時間サブセットは、完全なビットストリームからのより少ない数の符号化ピクチャを含む場合があり、より低いピクチャレートまたはフレームレートを表す場合がある。反対に、より高い、または「より細かい」時間サブセットは、完全なビットストリームからのより多い数の符号化ピクチャを含む場合があり、より高いピクチャレートまたはフレームレートを表す場合がある。
[0024]時間的にスケーラブルなビットストリームにプログレッシブ精緻化ベースのコーディングの既存の実装形態を適用するように構成されたビデオコーディングデバイスは、プログレッシブ精緻化セグメントに関する1つまたは複数の潜在的な不正確さに遭遇するか、またはそれを提示する可能性がある。たとえば、プログレッシブ精緻化の既存の実装形態によれば、プログレッシブ精緻化セグメント開始SEIメッセージに含まれるシンタックス要素は、プログレッシブ精緻化セグメントを形成する、連続する符号化ピクチャの数を示すことができる。
[0025]その結果、時間サブセットがシグナリングされる事例では、SEIメッセージのシンタックス要素によって示されたプログレッシブ精緻化セグメント内の連続する符号化ピクチャの数は、不正確である可能性がある。より詳細には、時間サブセットは完全なビットストリームよりも少ない数の符号化ピクチャを表すので、元のプログレッシブ精緻化セグメントの1つまたは複数の符号化ピクチャは、存在しない可能性がある。しかしながら、プログレッシブ精緻化セグメント内のピクチャの数を示すシンタックス要素は、抽出された時間サブセットの対応するプログレッシブ精緻化セグメント内の符号化ピクチャの削減された数を反映するように、動的に更新されない場合がある。したがって、ビットストリーム用のプログレッシブ精緻化セグメントを形成する、連続する符号化ピクチャの数と、そのビットストリームの時間サブセットの対応するセグメント内の連続する符号化ピクチャの数との間に不一致が存在する可能性がある。
[0026]時間的にスケーラブルなビットストリームに関するプログレッシブ精緻化ベースのコーディングのそのような不正確さを軽減または潜在的に除去するために、本開示の技法は、ビデオコーディングデバイスが、プログレッシブ精緻化セグメントの最後の符号化ピクチャのピクチャ順序カウント(POC)値を示す情報を使用して、プログレッシブ精緻化セグメントの境界を決定することを可能にすることができる。たとえば、プログレッシブ精緻化セグメントの各符号化ピクチャは、固定されたPOC値に関連付けられ得る。結果として、情報(たとえば、シンタックス要素)は、セグメントが完全なビットストリームの時間サブセットに含まれているかどうかにかかわらず、セグメントの最後の符号化ピクチャの正確な識別情報を提供することができる。本技法の一実装形態では、情報は、ベースピクチャとプログレッシブ精緻化セグメントの最後の符号化ピクチャとのそれぞれのPOC値の間の差分(すなわち「デルタPOC」)を示すことができる。本技法の別の実装形態によれば、情報は、ベースピクチャとプログレッシブ精緻化セグメントの最後の符号化ピクチャとのそれぞれのPOC値のそれぞれの最下位ビット(LSB)の間の差分を示すことができる。
[0027]図1は、本開示に記載される技法を利用することができる例示的なビデオ符号化および復号システム10を示すブロック図である。図1に示されたように、システム10は、宛先デバイス14によって後で復号されるべき符号化ビデオデータを生成するソースデバイス12を含む。ソースデバイス12および宛先デバイス14は、デスクトップコンピュータ、ノートブック(すなわち、ラップトップ)コンピュータ、タブレットコンピュータ、セットトップボックス、いわゆる「スマート」フォンなどの電話ハンドセット、いわゆる「スマート」パッド、テレビジョン、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲームコンソール、ビデオストリーミングデバイスなどを含む、広範囲にわたるデバイスのいずれかを備える場合がある。場合によっては、ソースデバイス12および宛先デバイス14は、ワイヤレス通信に対応する場合がある。
[0028]宛先デバイス14は、リンク16を介して復号されるべき符号化ビデオデータを受信することができる。リンク16は、ソースデバイス12から宛先デバイス14に符号化ビデオデータを移動することが可能な任意のタイプの媒体またはデバイスを備える場合がある。一例では、リンク16は、ソースデバイス12が符号化ビデオデータをリアルタイムに宛先デバイス14に直接送信することを可能にするために、通信媒体を備える場合がある。符号化ビデオデータは、ワイヤレス通信プロトコルなどの通信規格に従って変調され、宛先デバイス14に送信される場合がある。通信媒体は、無線周波数(RF)スペクトルまたは1つもしくは複数の物理伝送線路などの任意のワイヤレスまたは有線の通信媒体を備える場合がある。通信媒体は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはインターネットなどのグローバルネットワークなどのパケットベースネットワークの一部を形成する場合がある。通信媒体は、ソースデバイス12から宛先デバイス14への通信を容易にするために有用であり得る、ルータ、スイッチ、基地局、または任意の他の機器を含む場合がある。
[0029]代替として、符号化データは、出力インターフェース22からストレージデバイス31に出力される場合がある。同様に、符号化データは、入力インターフェースによってストレージデバイス31からアクセスされる場合がある。ストレージデバイス31は、ハードドライブ、ブルーレイ(登録商標)ディスク、DVD、CD−ROM、フラッシュメモリ、揮発性メモリもしくは不揮発性メモリ、または符号化ビデオデータを記憶するための任意の他の適切なデジタル記憶媒体などの、様々な分散された、またはローカルにアクセスされるデータ記憶媒体のいずれかを含む場合がある。さらなる一例では、ストレージデバイス31は、ソースデバイス12によって生成された符号化ビデオを保持することができるファイルサーバまたは別の中間ストレージデバイスに対応する場合がある。宛先デバイス14は、ストリーミングまたはダウンロードを介して、ストレージデバイス31から記憶されたビデオデータにアクセスすることができる。ファイルサーバは、符号化ビデオデータを記憶し、その符号化ビデオデータを宛先デバイス14に送信することが可能な任意のタイプのサーバであり得る。例示的なファイルサーバには、(たとえば、ウェブサイト用の)ウェブサーバ、FTPサーバ、ネットワーク接続ストレージ(NAS)デバイス、またはローカルディスクドライブが含まれる。宛先デバイス14は、インターネット接続を含む、任意の標準的なデータ接続を介して符号化ビデオデータにアクセスすることができる。これは、ファイルサーバに記憶された符号化ビデオデータにアクセスするのに適しているワイヤレスチャネル(たとえば、Wi−Fi(登録商標)接続)、有線接続(たとえば、DSL、ケーブルモデムなど)、または両方の組合せを含むことができる。ストレージデバイス31からの符号化ビデオデータの送信は、ストリーミング送信、ダウンロード送信、または両方の組合せであり得る。
[0030]本開示の技法は、必ずしもワイヤレスの適用例または設定に限定されるとは限らない。本技法は、オーバージエアテレビジョン放送、ケーブルテレビジョン送信、衛星テレビジョン送信、たとえばインターネットを介したストリーミングビデオ送信、データ記憶媒体に記憶するためのデジタルビデオの符号化、データ記憶媒体に記憶されたデジタルビデオの復号、または他の適用例などの、様々なマルチメディア適用例のいずれかをサポートするビデオコーディングに適用される場合がある。いくつかの例では、システム10は、ビデオストリーミング、ビデオ再生、ビデオブロードキャスティング、および/またはビデオテレフォニーなどの適用例をサポートするために、一方向または双方向のビデオ送信をサポートするように構成される場合がある。
[0031]図1の例では、ソースデバイス12は、ビデオソース18と、ビデオエンコーダ20と、出力インターフェース22とを含む。場合によっては、出力インターフェース22は、変調器/復調器(モデム)および/または送信機を含む場合がある。ソースデバイス12において、ビデオソース18は、ビデオキャプチャデバイス、たとえばビデオカメラ、以前にキャプチャされたビデオを含んでいるビデオアーカイブ、ビデオコンテンツプロバイダからビデオを受信するビデオフィードインターフェース、および/もしくはソースビデオとしてコンピュータグラフィックスデータを生成するためのコンピュータグラフィックスシステムなどのソース、またはそのようなソースの組合せを含む場合がある。一例として、ビデオソース18がビデオカメラである場合、ソースデバイス12および宛先デバイス14は、いわゆるカメラ付き電話またはビデオ電話を形成することができる。しかしながら、本開示に記載される技法は、概してビデオコーディングに適用可能であり得るし、ワイヤレスおよび/または有線の適用例に適用され得る。
[0032]キャプチャされたビデオ、以前にキャプチャされたビデオ、またはコンピュータ生成されたビデオは、ビデオエンコーダ20によって符号化され得る。符号化ビデオデータは、ソースデバイス12の出力インターフェース22を介して宛先デバイス14に直接送信され得る。符号化ビデオデータは、さらに(または代替的に)、復号および/または再生のための宛先デバイス14または他のデバイスによる後のアクセスのために、ストレージデバイス31上に記憶される場合がある。
[0033]宛先デバイス14は、入力インターフェース28と、ビデオデコーダ30と、ディスプレイデバイス32とを含む。場合によっては、入力インターフェース28は、受信機および/またはモデムを含む場合がある。宛先デバイス14の入力インターフェース28は、リンク16を介して符号化ビデオデータを受信する。リンク16を介して通信されるか、またはストレージデバイス31上に提供された符号化ビデオデータは、ビデオデータを復号する際に、ビデオデコーダ30などのビデオデコーダが使用するための、ビデオエンコーダ20によって生成された様々なシンタックス要素を含む場合がある。そのようなシンタックス要素は、通信媒体上で送信されるか、記憶媒体上に記憶されるか、またはファイルサーバに記憶される、符号化ビデオデータとともに含まれる場合がある。
[0034]ディスプレイデバイス32は、宛先デバイス14と一体化されるか、またはその外部に存在する場合がある。いくつかの例では、宛先デバイス14は、一体型ディスプレイデバイスを含み、また、外部ディスプレイデバイスとインターフェースするように構成される場合がある。他の例では、宛先デバイス14はディスプレイデバイスであり得る。一般に、ディスプレイデバイス32は、復号されたビデオデータをユーザに表示し、液晶ディスプレイ(LCD)、プラズマディスプレイ、有機発光ダイオード(OLED)ディスプレイ、または別のタイプのディスプレイデバイスなどの様々なディスプレイデバイスのいずれかを備える場合がある。
[0035]ビデオエンコーダ20およびビデオデコーダ30は、現在開発中の高効率ビデオコーディング(HEVC)規格などのビデオ圧縮規格に従って動作することができ、HEVCテストモデル(HM)に準拠することができる。代替として、ビデオエンコーダ20およびビデオデコーダ30は、代替的にMPEG−4、Part 10、アドバンストビデオコーディング(AVC)と呼ばれるITU−T H.264規格などの、他のプロプライエタリ規格もしくは業界規格、またはそのような規格の拡張に従って動作することができる。しかしながら、本開示の技法は、いかなる特定のコーディング規格にも限定されない。ビデオ圧縮規格の他の例には、MPEG−2およびITU−T H.263が含まれる。
[0036]図1には示されていないが、いくつかの態様では、ビデオエンコーダ20およびビデオデコーダ30は、各々オーディオエンコーダおよびオーディオデコーダと統合され得るし、共通のデータストリームまたは別個のデータストリーム内のオーディオとビデオの両方の符号化を処理するために、適切なMUX−DEMUXユニット、または他のハードウェアおよびソフトウェアを含む場合がある。適用可能な場合、いくつかの例では、MUX−DEMUXユニットは、ITU H.223マルチプレクサプロトコル、またはユーザデータグラムプロトコル(UDP)などの他のプロトコルに準拠することができる。
[0037]ビデオエンコーダ20およびビデオデコーダ30は、各々1つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ディスクリート論理、ソフトウェア、ハードウェア、ファームウェア、またはそれらの任意の組合せなどの、様々な適切なエンコーダ回路のいずれかとして実装される場合がある。本技法が部分的にソフトウェアに実装されるとき、デバイスは、適切な非一時的コンピュータ可読媒体にソフトウェア用の命令を記憶し、本開示の技法を実行するために、1つまたは複数のプロセッサを使用してその命令をハードウェア内で実行することができる。ビデオエンコーダ20およびビデオデコーダ30の各々は、1つまたは複数のエンコーダまたはデコーダに含まれる場合があり、そのいずれかは、それぞれのデバイスにおいて複合エンコーダ/デコーダ(コーデック)の一部として統合される場合がある。
[0038]JCT−VCは、HEVC規格の開発に取り組んでいる。HEVC規格化の取り組みは、HEVCテストモデル(HM)と呼ばれるビデオコーディングデバイスの発展的モデルに基づく。HMは、たとえば、ITU−T H.264/AVCに従う既存のデバイスに対してビデオコーディングデバイスのいくつかの追加の能力を仮定する。たとえば、H.264は9つのイントラ予測符号化モードを提供するが、HMは33個ものイントラ予測符号化モードを提供することができる。
[0039]一般に、HMの作業モデルは、ビデオフレームまたはピクチャが、ルーマサンプルとクロマサンプルの両方を含む一連のツリーブロックまたは最大コーディングユニット(LCU)に分割され得ることを記述する。ツリーブロックは、H.264規格のマクロブロックと同様の目的を有する。スライスは、コーディング順序でいくつかの連続するツリーブロックを含む。ビデオフレームまたはピクチャは、1つまたは複数のスライスに区分化される場合がある。各ツリーブロックは、4分木に従ってコーディングユニット(CU)に分割される場合がある。たとえば、4分木のルートノードとしてのツリーブロックは、4つの子ノードに分割される場合があり、各子ノードは、次に、親ノードとなり、別の4つの子ノードに分割される場合がある。4分木のリーフノードとしての最終的な分割されていない子ノードは、コーディングノード、すなわち、コード化ビデオブロックを備える。コード化ビットストリームに関連付けられたシンタックスデータは、ツリーブロックが分割され得る最大回数を定義することができ、コーディングノードの最小サイズも定義することができる。
[0040]CUは、1つのルーマコーディングブロックと、2つのクロマコーディングブロックとを含む場合がある。CUは、関連する予測ユニット(PU)と変換ユニット(TU)とを有する場合がある。PUの各々は、1つのルーマ予測ブロックと、2つのクロマ予測ブロックとを含む場合があり、TUの各々は、1つのルーマ変換ブロックと、2つのクロマ変換ブロックとを含む場合がある。コーディングブロックの各々は、同じ予測が当てはまるサンプルに対するブロックを備える、1つまたは複数の予測ブロックに区分化される場合がある。コーディングブロックの各々は、同じ変換が適用されるサンプルのブロックを備える、1つまたは複数の変換ブロックに区分化される場合もある。
[0041]CUのサイズは、一般に、コーディングノードのサイズに対応し、通常、形状が方形である。CUのサイズは、8×8のピクセルから最大64×64またはそれ以上のピクセルを有する、ツリーブロックのサイズまで及ぶ場合がある。各CUは、1つまたは複数のPUと、1つまたは複数のTUとを定義することができる。CUに含まれるシンタックスデータは、たとえば、コーディングブロックを1つまたは複数の予測ブロックに区分化することを記述することができる。区分化モードは、CUが、スキップモード符号化もしくはダイレクトモード符号化されるか、イントラ予測モード符号化されるか、またはインター予測モード符号化されるかによって異なる場合がある。予測ブロックは、形状が方形または非方形になるように区分化される場合がある。CUに含まれるシンタックスデータは、たとえば、4本木に従って、コーディングブロックを1つまたは複数の変換ブロックに区分化することも記述することができる。変換ブロックは、形状が方形または非方形になるように区分化される場合がある。
[0042]HEVC規格は、様々なCUについて異なる場合があるTUに従う変換を可能にする。TUは、通常、区分化されたLCUについて定義された所与のCU内のPUのサイズに基づいてサイズが決定されるが、常にそうであるとは限らない。TUは、通常、PUと同じサイズであるか、またはPUよりも小さい。いくつかの例では、CUに対応する残差サンプルは、「残差4分木」(RQT)として知られる4分木構造を使用して、より小さいユニットに再分割される場合がある。RQTのリーフノードはTUを表すことができる。TUに関連付けられたピクセル差分値は、変換係数を生成するために変換され得るし、その変換係数は量子化され得る。
[0043]一般に、PUは、予測プロセスに関係するデータを含む。たとえば、PUがイントラモード符号化されるとき、PUは、そのPU用のイントラ予測モードを記述するデータを含む場合がある。別の例として、PUがインターモード符号化されるとき、PUは、そのPU用の動きベクトルを定義するデータを含む場合がある。PU用の動きベクトルを定義するデータは、たとえば、動きベクトルの水平成分、動きベクトルの垂直成分、動きベクトルについての解像度(たとえば、1/4ピクセル精度もしくは1/8ピクセル精度)、動きベクトルが指す参照ピクチャ、および/または動きベクトル用の参照ピクチャリスト(たとえば、リスト0、リスト1、もしくはリストC)を記述することができる。
[0044]一般に、TUは、変換プロセスおよび量子化プロセスのために使用される。1つまたは複数のPUを有する所与のCUは、1つまたは複数のTUを含む場合もある。予測に続いて、ビデオエンコーダ20は、PUに従ってコーディングノードによって識別されたビデオブロックから残差値を計算することができる。コーディングノードは、次いで、元のビデオブロックではなく残差値を参照するように更新される。残差値はピクセル差分値を備え、ピクセル差分値は、エントロピーコーディングのための直列化変換係数を生成するためにTU内で指定された変換と他の変換情報とを使用して変換係数に変換され、量子化され、走査される場合がある。コーディングノードは、これらの直列化変換係数を指すようにもう一度更新される場合がある。本開示は、通常、CUのコーディングノードを指すために、「ビデオブロック」という用語を使用する。いくつかの特定の場合には、本開示は、コーディングノードならびにPUおよびTUを含む、ツリーブロック、すなわち、LCUまたはCUを指すために、「ビデオブロック」という用語を使用する場合もある。
[0045]ビデオシーケンスは、通常、一連のビデオフレームまたはピクチャを含む。ピクチャのグループ(GOP)は、一般に、ビデオピクチャのうちの一連の1つまたは複数を備える。GOPは、GOPに含まれるピクチャの数を記述するシンタックスデータを、GOPのヘッダ内、ピクチャのうちの1つまたは複数のヘッダ内、または他の場所に含む場合がある。ピクチャの各スライスは、それぞれのスライスのための符号化モードを記述するスライスシンタックスデータを含む場合がある。ビデオエンコーダ20は、通常、ビデオデータを符号化するために、個々のビデオスライス内のビデオブロックに対して動作する。ビデオブロックは、CU内のコーディングノードに対応する場合がある。ビデオブロックは、固定サイズまたは可変サイズを有する場合があり、指定されたコーディング規格に応じてサイズが異なる場合がある。
[0046]一例として、HMは、様々なPUサイズでの予測をサポートする。特定のCUのサイズが2N×2Nであると仮定すると、HMは、PUサイズが2N×2NまたはN×Nのイントラ予測と、対称のPUサイズが2N×2N、2N×N、N×2N、またはN×Nのインター予測とをサポートする。HMはまた、2N×nU、2N×nD、nL×2N、およびnR×2NのPUサイズでのインター予測のための非対称区分化をサポートする。非対称区分化では、CUの一方向は区分化されないが、他の方向は25%と75%とに区分化される。25%の区分に対応するCUの部分は、「n」とその後ろに付く「Up」、「Down」、「Left」、または「Right」という指示によって示される。したがって、たとえば、「2N×nU」は、上部の2N×0.5NのPUおよび下部の2N×1.5NのPUで水平方向に区分化された2N×2NのCUを指す。
[0047]本開示では、「N×N(NxN)」および「N×N(N by N)」は、垂直寸法および水平寸法に関するビデオブロックのピクセル寸法、たとえば、16×16(16x16)ピクセルまたは16×16(16 by 16)ピクセルを指すために互換的に使用される場合がある。一般に、16×16ブロックは、垂直方向に16個のピクセルを有し(y=16)、水平方向に16個のピクセルを有する(x=16)。同様に、N×Nブロックは、一般に、垂直方向にNピクセルを有し、水平方向にNピクセルを有し、Nは非負整数値を表す。ブロック内のピクセルは行と列に構成され得る。その上、ブロックは、必ずしも、水平方向において垂直方向と同じ数のピクセルを有する必要はない。たとえば、ブロックはN×Mピクセルを備える場合があり、ここで、Mは必ずしもNに等しいとは限らない。
[0048]CUのPUを使用したイントラ予測コーディングまたはインター予測コーディングの後、ビデオエンコーダ20は、CUのTUによって指定された変換が適用される残差データを計算することができる。残差データは、符号化されていないピクチャのピクセルと、CUに対応する予測値との間のピクセル差分に対応する場合がある。ビデオエンコーダ20は、CUのための残差データを形成し、次いで、変換係数を生成するために残差データを変換することができる。
[0049]変換係数を生成するための任意の変換に続いて、ビデオエンコーダ20は、変換係数の量子化を実行することができる。量子化は、一般に、係数を表すために使用されるデータの量をできるだけ低減するために変換係数が量子化され、さらなる圧縮を実現するプロセスを指す。量子化プロセスは、係数の一部または全部に関連付けられたビット深度を低減させることができる。たとえば、nビット値は量子化中にmビット値に切り捨てられ得るし、ここで、nはmよりも大きい。
[0050]いくつかの例では、ビデオエンコーダ20は、量子化された変換係数を走査して、エントロピー符号化され得る直列化されたベクトルを生成するために、所定の走査順序を利用することができる。他の例では、ビデオエンコーダ20は適応走査を実行することができる。量子化変換係数を走査して1次元ベクトルを形成した後に、ビデオエンコーダ20は、たとえば、コンテキスト適応型可変長コーディング(CAVLC)、コンテキスト適応型バイナリ算術コーディング(CABAC)、シンタックスベースコンテキスト適応型バイナリ算術コーディング(SBAC)、確率間隔区分化エントロピー(PIPE)コーディング、または別のエントロピー符号化方法に従って、1次元ベクトルをエントロピー符号化することができる。ビデオエンコーダ20はまた、ビデオデータを復号する際にビデオデコーダ30が使用するための、符号化ビデオデータに関連付けられたシンタックス要素をエントロピー符号化することができる。
[0051]CABACを実行するために、ビデオエンコーダ20は、送信されるべきシンボルに、コンテキストモデル内のコンテキストを割り当てることができる。コンテキストは、たとえば、シンボルの隣接値が非0であるか否かに関係する場合がある。
CAVLCを実行するために、ビデオエンコーダ20は、送信されるべきシンボル用の可変長コードを選択することができる。VLCにおけるコードワードは、比較的短いコードが優勢シンボルに対応し、より長いコードが劣勢シンボルに対応するように構築される場合がある。このようにして、VLCを使用すると、たとえば、送信されるべきシンボルごとに等長コードワードを使用するよりも、ビット節約を実現することができる。確率決定は、シンボルに割り当てられたコンテキストに基づく場合がある。
[0052]ビデオエンコーダ20およびビデオデコーダ30のうちの一方または両方は、時間的にスケーラブルなビットストリームをサポートしながら、プログレッシブ精緻化を使用してビデオデータをコーディングするために、本開示の技法を実装することができる。ビデオエンコーダ20は、プログレッシブ精緻化セグメントを形成するために、ピクチャのシリーズまたはシーケンスを符号化するように構成される場合があるか、または場合によっては動作可能であり得る。次に、ビデオエンコーダ20は、符号化ビデオビットストリームの一部として、プログレッシブ精緻化セグメントをビデオデコーダ30にシグナリングすることができる。
[0053]ビデオエンコーダ20およびビデオデコーダ30のうちの一方または両方は、復号順序でベースピクチャの直後にくる一連のピクチャとして、プログレッシブ精緻化セグメントを識別することができる。プログレッシブ精緻化セグメントを識別するために、ビデオエンコーダ20および/またはビデオデコーダ30は、プログレッシブ精緻化セグメント開始SEIメッセージがベースピクチャの直後にくると決定することができる。加えて、プログレッシブ精緻化セグメントのピクチャは、動き情報を使用して、直接的または間接的にベースピクチャから予測されない。いくつかの例では、プログレッシブ精緻化セグメントの各ピクチャは、プログレッシブ精緻化シーケンスの先行するピクチャよりも、定義された増分する品質の精緻化を表す。
[0054]たとえば、プログレッシブ精緻化セグメントの最初のピクチャは、ベースピクチャと比較して、定義された増分の品質の精緻化を表すことができる。次に、プログレッシブ精緻化セグメントの2番目のピクチャは、プログレッシブ精緻化セグメントの最初のピクチャに対して、定義された増分の品質の精緻化を表すことができる。様々な例では、定義された増分は、プログレッシブ精緻化セグメント全体にわたって同じままの場合があるか、またはプログレッシブ精緻化セグメント内の様々なピクチャの遷移で異なる場合がある。このようにして、プログレッシブ精緻化セグメントは、全体として、ベースピクチャよりも均一な一連の品質の精緻化を表すことができる。
[0055]ビデオエンコーダ20は、ベースピクチャを符号化することができ、次に、プログレッシブ精緻化セグメントの各ピクチャの直前にくる符号化ピクチャに、増分する品質の精緻化を加えることによって、プログレッシブ精緻化セグメントを符号化することができる。加えて、ビデオエンコーダ20は、1つまたは複数の補足エンハンスメント情報(SEI)メッセージを使用して、プログレッシブ精緻化セグメントの境界をシグナリングすることができる。たとえば、ビデオエンコーダ20は、たとえば、プログレッシブ精緻化セグメント内の最初のピクチャの直前に「プログレッシブ精緻化セグメント開始」SEIメッセージを使用して、プログレッシブ精緻化セグメントの開始境界をシグナリングすることができる。同様に、ビデオエンコーダ20は、たとえば、プログレッシブ精緻化セグメント内の最後のピクチャの直後にくる「プログレッシブ精緻化セグメント終了」SEIメッセージを使用して、プログレッシブ精緻化セグメントの終了境界をシグナリングすることができる。HEVCワーキングドラフト(たとえば、「WD9」)でサポートされるSEIメッセージの概要が、下記の表1に示される。
[0056]HEVC WD9でサポートされるプログレッシブ精緻化セグメント開始SEIメッセージ用のシンタックスおよびセマンティックスが、下記のシンタックス表1に示される。
[0057]記載されたように、ビデオエンコーダ20は、プログレッシブ精緻化セグメントの開始を指定するために、プログレッシブ精緻化セグメント開始SEIメッセージを符号化することができる。対応して、ビデオデコーダ30は、受信された符号化ビデオビットストリームを復号する間に、プログレッシブ精緻化セグメント開始SEIメッセージを復号し、たとえば、符号化されたプログレッシブ精緻化セグメント内の最初のピクチャを識別するために、符号化されたプログレッシブ精緻化セグメントの開始を決定することができる。復号順序に従ってプログレッシブ精緻化セグメント内の連続するピクチャのセットをシグナリングするビデオエンコーダ20に基づいて、ビデオデコーダ30は、シグナリングされた順序でプログレッシブ精緻化セグメントを復号することができる。加えて、いくつかの例では、ビデオエンコーダ20は、出力順序で連続する符号化ピクチャのセットとして、プログレッシブ精緻化セグメントを生成し、シグナリングすることができる。これらの例では、ビデオデコーダ30は、出力順序でプログレッシブ精緻化セグメントを復号することもできる。
[0058]プログレッシブ精緻化セグメント開始SEIメッセージに含まれる「progressive_refinement_id」シンタックス要素は、プログレッシブ精緻化セグメントの連続するピクチャ間の増分する品質の精緻化を定義する、プログレッシブ精緻化動作を識別することができる。たとえば、ビデオエンコーダ20は、progressive_refinement_idシンタックス要素の値を、0で始まり、(2^32−2)で終わり、両端値を含む数値範囲内に設定することができる。より詳細には、ビデオエンコーダ20は、プログレッシブ精緻化セグメントの連続するピクチャ間の増分する品質の精緻化を定義する、特定のプログレッシブ精緻化動作を示すように、progressive_refinement_idシンタックス要素の値を設定することができる。
[0059]次に、ビデオデコーダ30は、progressive_refinement_idシンタックス要素のシグナリングされた値を取得するために、プログレッシブ精緻化セグメント開始SEIメッセージを復号することができる。加えて、ビデオデコーダ30は、プログレッシブ精緻化セグメントの最初の符号化ピクチャを復号するために、シグナリングされた符号化ベースピクチャに適用されるプログレッシブ精緻化動作を決定するために、progressive_refinement_idシンタックス要素の値を使用することができる。
[0060]同様に、ビデオデコーダ30は、プログレッシブ精緻化セグメントの最後のピクチャを除いて、プログレッシブ精緻化セグメントの各ピクチャに、progressive_refinement_idシンタックス要素によって示されたプログレッシブ精緻化動作を適用することができる。言い換えれば、ビデオデコーダ30は、プログレッシブ精緻化セグメントの最初のピクチャで始まり、プログレッシブ精緻化セグメントの最後から2番目のピクチャで終わる、progressive_refinement_idシンタックス要素の値によって識別された動作を反復的に適用することができる。より詳細には、符号化ベースピクチャ、およびプログレッシブ精緻化セグメントの最初から最後から2番目までの符号化ピクチャの各々に、progressive_refinement_idシンタックス要素の値によって識別された精緻化動作を適用することによって、ビデオデコーダ30は、プログレッシブ精緻化セグメント全体を復号することができる。
[0061]加えて、プログレッシブ精緻化セグメント開始SEIメッセージを符号化する際に、ビデオエンコーダ20は、プログレッシブ精緻化セグメントを作り上げる符号化ピクチャのタグ付けされたセットに含まれる符号化ピクチャの数を示すように、num_refinement_steps_minus1シンタックス要素の値を設定することができる。より詳細には、ビデオエンコーダ20がnum_refinement_steps_minus1シンタックス要素の値を非ゼロ値に設定する事例では、プログレッシブ精緻化セグメントに含まれる符号化ピクチャの数は、num_refinement_steps_minus1シンタックス要素の値プラス1に等しくなり得る。
[0062]次に、ビデオデコーダ30は、プログレッシブ精緻化セグメント全体を復号するのに必要なプログレッシブ精緻化動作の反復的適用の数を決定するために、num_refinement_steps_minus1シンタックス要素の値を使用することができる。より詳細には、ビデオデコーダ30は、プログレッシブ精緻化セグメントの最初の符号化ピクチャを復号するために、progressive_refinement_idシンタックス要素の値によって示されたプログレッシブ精緻化動作をベースピクチャに適用することができる。加えて、ビデオデコーダ30は、復号順序でベースピクチャの直後にくる一連の符号化ピクチャに、同じプログレッシブ精緻化動作を反復的に適用することができる。
[0063]より詳細には、ビデオデコーダ30は、num_refinement_steps_minus1シンタックス要素の値に等しい数の連続する符号化ピクチャに、識別されたプログレッシブ精緻化動作を反復的に適用することができる。num_refinement_steps_minus1シンタックス要素は、プログレッシブ精緻化セグメントに含まれる符号化ピクチャの総数よりも1つ少ない値を示すので、ビデオデコーダ30は、プログレッシブ精緻化セグメントの、最後の符号化ピクチャを除いて、各符号化ピクチャにプログレッシブ精緻化動作を反復的に適用することができる。言い換えれば、ビデオデコーダ30は、符号化ベースピクチャ、およびプログレッシブ精緻化セグメントの最初の項目で始まり、プログレッシブ精緻化セグメントの最後から2番目の項目で終わる一連の符号化ピクチャに、同じプログレッシブ精緻化動作を適用するために、progressive_refinement_idシンタックス要素およびnum_refinement_steps_minus1シンタックス要素によって示された値を適用することができる。
[0064]加えて、ビデオエンコーダ20は、プログレッシブ精緻化セグメントの終了を指定または場合によっては示すために、「プログレッシブ精緻化セグメント終了」SEIメッセージを符号化し、シグナリングすることができる。いくつかの例では、ビデオエンコーダ20は、プログレッシブ精緻化セグメントの最後の符号化ピクチャとともに、またはその後で、プログレッシブ精緻化セグメント終了SEIメッセージをシグナリングすることができる。HEVC WD9でサポートされるプログレッシブ精緻化セグメント終了SEIメッセージ用のシンタックスおよびセマンティックスが、下記のシンタックス表2に示される。
[0065]上記のシンタックス表2に示されたように、ビデオエンコーダ20は、progressive_refinement_idシンタックス要素を含めるように、プログレッシブ精緻化セグメント終了SEIメッセージを生成することができる。より詳細には、ビデオエンコーダ20は、現在のプログレッシブ精緻化セグメント用の対応するプログレッシブ精緻化セグメント開始SEIメッセージ内で指定されたprogressive_refinement_idシンタックス要素の値と同じ値に、progressive_refinement_idシンタックス要素の値を設定することができる。記載されたように、ビデオエンコーダ20は、progressive_refinement_idシンタックス要素の値を、0で始まり、(2^32−2)で終わり、両端値を含む数値範囲内に設定することができる。
[0066]次に、ビデオデコーダ30は、プログレッシブ精緻化セグメントの終了境界を決定するために、符号化ビデオビットストリーム内で受信された符号化されたプログレッシブ精緻化セグメント終了SEIメッセージを復号することができる。特に、ビデオデコーダ30は、プログレッシブ精緻化セグメント終了SEIメッセージの検出に基づいて、符号化ビデオビットストリーム内でシグナリングされた次の符号化ピクチャを復号するために、プログレッシブ精緻化動作の適用を停止するように決定することができる。一例として、ビデオデコーダ30は、符号化ビデオビットストリーム内でシグナリングされた先行する符号化ピクチャからの動き情報を使用して、プログレッシブ精緻化セグメントに続く最初の符号化ピクチャが予測されると決定することができる。
[0067]加えて、HEVC WD9によれば、ビデオエンコーダ20およびビデオデコーダ30のうちの一方または両方は、符号化ビデオビットストリームの時間スケーラビリティをサポートすることができる。たとえば、ビデオエンコーダ20およびビデオデコーダ30は、様々な符号化ビデオビットストリームによって提供される様々なピクチャレート(または「フレームレート」)をサポートすることができる。たとえば、完全な符号化ビデオビットストリームよりも低い時間ピクチャレートをサポートするために、ビデオエンコーダ20は、完全な符号化ビデオビットストリームのサブセットをシグナリングすることができる。特定の例では、ビデオエンコーダ20は、完全な符号化ビデオビットストリームに含まれる符号化ピクチャのサブセットをシグナリングすることができる。言い換えれば、シグナリングされた符号化ピクチャのサブセットは、完全な符号化ビデオビットストリームと比較して、少なくとも1つのより少ない符号化ピクチャを含む場合がある。より低いピクチャレートをサポートするためにビデオエンコーダ20によってシグナリングされる符号化ピクチャのサブセットは、本明細書では「時間サブセット」または「サブビットストリーム」と呼ばれる。
[0068]ビデオエンコーダ20は、符号化ビデオビットストリームの時間スケーラビリティを介して提供される様々なピクチャレートに従って、様々な時間サブセットをシグナリングすることができる。一例では、ビデオエンコーダ20は、完全な符号化ビデオビットストリームの第1の時間サブセットをシグナリングすることによって、低いピクチャレートをサポートすることができる。この例によれば、ビデオエンコーダ20は、第1の時間サブセットよりも多い少なくとも1つの符号化ピクチャだが、完全な符号化ビデオビットストリームよりも少ない少なくとも1つの符号化ピクチャを含む、第2の時間サブセットをシグナリングすることによって、中間のピクチャレートをサポートすることができる。この例では、ビデオエンコーダ20は、完全な符号化ビデオビットストリームの全体(たとえば、符号化ピクチャの完全なセット)をシグナリングすることによって、可能な限り高いピクチャレートをシグナリングすることができる。
[0069]しかしながら、ビデオエンコーダ20がHEVC WD9に従って時間サブセットの一部としてプログレッシブ精緻化セグメントをシグナリングする事例では、ビデオエンコーダ20は、プログレッシブ精緻化セグメント開始SEIメッセージに含まれるnum_refinement_steps_minus1の値を動的に更新するように構成されない場合がある。結果として、ビデオエンコーダ20は、潜在的に、時間的にスケーリングされたプログレッシブ精緻化セグメントに含まれる符号化ピクチャの不正確なカウントをシグナリングする可能性がある。より詳細には、完全な符号化ビデオビットストリームから時間サブセットまたはサブビットストリームを生成する際に、ビデオエンコーダ20は、時間サブセット内のプログレッシブ精緻化セグメントに対応するピクチャの数がピクチャの完全なセット用に提供されたピクチャの数よりも少ないように、完全なビットストリームから1つまたは複数の符号化ピクチャを除去することができる。
[0070]いくつかのシナリオでは、ビデオエンコーダ20は、プログレッシブ精緻化セグメントに含まれる1つまたは複数の符号化ピクチャを除去することができる。ビデオエンコーダ20が完全なビットストリームを時間的にスケーリングするためにプログレッシブ精緻化セグメントから1つまたは複数の符号化ピクチャを除去するシナリオでは、num_refinement_steps_minus1シンタックス要素は正しくない値を表す可能性がある。より詳細には、num_refinement_steps_minus1シンタックス要素の値は、完全なビットストリーム内で表されたように、1つだけ減らされた元のプログレッシブ精緻化セグメント内の符号化ピクチャの数を示す場合がある。しかしながら、このシナリオでは、時間的にスケーリングされたプログレッシブ精緻化セグメントは、完全なビットストリームの元のプログレッシブ精緻化セグメントよりも少ない数の符号化ピクチャを含む場合がある。その結果、ビデオエンコーダは、時間的にスケーリングされたプログレッシブ精緻化セグメントに関して、正しくない値を有するnum_refinement_steps_minus1シンタックス要素を生成し、シグナリングする可能性がある。
[0071]次に、ビデオデコーダ30は、符号化プログレッシブ精緻化開始SEIメッセージを復号し、それにより、時間的にスケーリングされたプログレッシブ精緻化セグメントに関して、num_refinement_steps_minus1シンタックス要素によって示された正しくない値を取得する可能性がある。結果として、ビデオデコーダ30は、時間的にスケーリングされたプログレッシブ精緻化セグメント内の符号化ピクチャの数を超える数の連続する符号化ピクチャに、progressive_refinement_idによって識別されたプログレッシブ精緻化動作を適用する可能性がある。いくつかのそのような例では、ビデオデコーダ30は、プログレッシブ精緻化動作のみを使用して符号化ピクチャを復号する場合があり、ここで実際には、符号化ピクチャは、ベースピクチャの品質の精緻化を表さないか、または動きベースの予測などの他の修正に加えて品質の精緻化を表す。
[0072]時間的にスケーリングされたプログレッシブ精緻化セグメントに関して上述された潜在的な不正確さを軽減または除去するために、ビデオエンコーダ20および/またはビデオデコーダ30は、本開示の1つまたは複数の技法を実装することができる。本明細書に記載された技法のいくつかの実装形態では、ビデオエンコーダ20およびビデオデコーダ30は、符号化ビデオビットストリームが時間サブセットか完全なビットストリームかにかかわらず、符号化ビデオビットストリーム内のプログレッシブ精緻化セグメントの境界を識別するために、プログレッシブ精緻化セグメントの最後の項目のピクチャ順序カウント(POC)値を使用することができる。符号化ピクチャのPOC値は固定値であり得るので、ビデオデコーダ30は、シグナリングされた符号化ピクチャの数に基づいてプログレッシブ精緻化セグメントの終了境界のPOC値を導出することが必要ではない場合がある。
[0073]代わりに、本明細書に記載された技法のいくつかの実装形態によれば、ビデオデコーダ30は、セグメントの最後の符号化ピクチャを復号するときに、セグメントの最後の符号化ピクチャのPOC値に基づいて、プログレッシブ精緻化シーケンスの終了境界を検出することができる。様々な例では、符号化ビデオビットストリーム内のセグメントの最後のピクチャのPOC値を示す情報を生成し、シグナリングすることによって、ビデオエンコーダ20によって符号化された情報により、ビデオデコーダ30がセグメントの最後の符号化ピクチャを検出することが可能になり得る。
[0074]様々な例では、ビデオエンコーダ20は、プログレッシブ精緻化セグメントの最後の符号化ピクチャのPOC値を示す情報を含めるように、プログレッシブ精緻化セグメント開始SEIメッセージを修正するために、本開示の1つまたは複数の技法を実装することができる。いくつかの例では、ビデオエンコーダ20は、プログレッシブ精緻化セグメント開始SEIメッセージ内に、プログレッシブ精緻化セグメント内の最後の符号化ピクチャのPOC値を直接的または間接的に示す1つまたは複数のシンタックス要素を含めるように構成される場合がある。
[0075]1つのそのような実装形態によれば、ビデオエンコーダ20は、ベースピクチャのPOC値とプログレッシブ精緻化セグメントの最後のピクチャのPOC値との間の差分を示すために、「デルタPOC」値を示すシンタックスを生成することができる。別のそのような実装形態によれば、ビデオエンコーダ20は、ベースピクチャおよびプログレッシブ精緻化セグメントの最後のピクチャのそれぞれの最下位ビット(LSB)の間の差分を示す「デルタLSB」値を示すシンタックス要素を生成することができる。
[0076]本開示の1つまたは複数の態様により、その中にビデオエンコーダ20がデルタPOCシンタックス要素を含めることができる、プログレッシブ精緻化セグメント開始SEIメッセージの一例についてのシンタックスおよびセマンティックスが、下記のシンタックス表3に記載される。
[0077]シンタックス表3の例では、デルタPOCシンタックス要素が「pic_order_cnt_delta」によって示される。ビデオエンコーダ20がデルタPOCシンタックス要素をシグナリングする実装形態では、ビデオデコーダ30は、プログレッシブ精緻化セグメントの最後の符号化ピクチャを決定するために、シグナリングされたデルタPOCシンタックス要素の値を使用することができる。より詳細には、ビデオデコーダ30は、プログレッシブ精緻化セグメント開始SEIメッセージの検出に基づいて、プログレッシブ精緻化セグメントの開始を検出することができる。加えて、ビデオデコーダ30は、プログレッシブ精緻化セグメントの最後のピクチャのPOC値を取得するために、ベースピクチャのPOC値にデルタPOCシンタックス要素の値を加えることができる。次に、ビデオデコーダ30は、ビデオデコーダ30がセグメントの最後のピクチャを検出するまで、ベースピクチャに続く一連の符号化ピクチャの各々に、progressive_refinement_idシンタックス要素の値によって示されたプログレッシブ精緻化動作を反復的に適用することができる。特に、ビデオデコーダ30は、デルタPOCシンタックス要素の値に基づいて導出された最後のピクチャのPOC値に基づいて、プログレッシブ精緻化セグメントの最後のピクチャを検出することができる。
[0078]同様に、ビデオエンコーダ20がデルタLSBシンタックス要素をシグナリングする実装形態では、ビデオデコーダ30は、ベースピクチャのPOC値のLSBにデルタLSBシンタックス要素の値を加えることができる。ベースピクチャのPOC値のLSBにデルタLSBシンタックス要素の値を加えることによって、ビデオデコーダ30は、プログレッシブ精緻化セグメント内の最後の符号化ピクチャのPOC値のLSBを取得することができる。次に、プログレッシブ精緻化セグメント内の最後の符号化ピクチャのPOC値の取得されたLSBを使用して、ビデオデコーダ30は、プログレッシブ精緻化セグメントの終了境界を検出することができる。
[0079]より詳細には、ビデオデコーダ30は、ビデオデコーダ30がセグメントの最後の符号化ピクチャを検出するまで、識別されたプログレッシブ精緻化動作を反復的に適用することによって、プログレッシブ精緻化セグメントを作り上げる一連の符号化ピクチャを復号することができる。POC値のLSBを使用してプログレッシブ精緻化セグメント内の最後の符号化ピクチャを検出すると、ビデオデコーダ30は、プログレッシブ精緻化セグメント開始SEIメッセージ内で指定されたパラメータによる復号(すなわち、progressive_refinement_idシンタックス要素の値によって識別された動作)を停止することができる。
[0080]上述された技法のうちの1つまたは複数を実装することによって、ビデオエンコーダ20およびビデオデコーダ30のうちの一方または両方は、符号化ビデオビットストリームの時間スケーラビリティをサポートしながら、プログレッシブ精緻化を使用するビデオコーディングを実装することができる。様々な例によれば、プログレッシブ精緻化セグメントが元々決定されたよりも少ないピクチャを含めるように時間的にスケーリングされたかどうかにかかわらず、ビデオエンコーダ20および/またはビデオデコーダ30は、プログレッシブ精緻化セグメントの境界を決定するために、POC値などの固定情報を使用することができる。
[0081]このように、ソースデバイス12および宛先デバイス14のうちの一方または両方は、ビデオコーダ、すなわち、それぞれビデオエンコーダ20およびビデオデコーダ30を備える、ビデオデータをコーディングするためのデバイスの一例であり得る。加えて、上述された技法によれば、ビデオエンコーダ20およびビデオデコーダ30のうちの一方または両方は、符号化ビットストリーム内のプログレッシブ精緻化セグメント内の複数のピクチャのうちの最後のピクチャのピクチャ順序カウント(POC)値を示す情報を決定することと、プログレッシブ精緻化動作に従ってプログレッシブ精緻化セグメント内のピクチャのうちの少なくともいくつかをコーディングすることとを行うように構成されたビデオコーダの例であり得る。
[0082]加えて、いくつかの例では、決定された情報は、プログレッシブ精緻化セグメントの直前にくるピクチャのPOC値と、プログレッシブ精緻化セグメントの最後のピクチャのPOC値との間の差分を示すデルタPOC値を含む。いくつかの例では、決定された情報は、プログレッシブ精緻化セグメントの直前にくるピクチャのPOC値のLSBと、プログレッシブ精緻化セグメントの最後のピクチャのPOC値のLSBとの間の差分を示す最下位ビット(LSB)のデルタを含む。いくつかの例では、決定された情報は、プログレッシブ精緻化セグメントの最後のピクチャのPOC値を含む。
[0083]本明細書に記載された技法のいくつかの実装形態によれば、情報を決定するために、ビデオエンコーダ20および/またはビデオデコーダ30は、符号化ビットストリームに含まれる補足エンハンスメント情報(SEI)メッセージに少なくとも部分的に基づいて、情報を決定するように構成される場合がある。1つのそのような例では、SEIメッセージは、プログレッシブ精緻化セグメントの開始境界を示すプログレッシブ精緻化セグメント開始SEIメッセージを備える。
[0084]本明細書に記載された技法によるいくつかの例では、ビデオエンコーダ20および/またはビデオデコーダ30は、符号化ビデオストリーム内で符号化ピクチャがプログレッシブ精緻化セグメントの直前にくると決定するように、さらに構成される場合がある。1つのそのような例では、プログレッシブ精緻化シーケンスの直前にくる符号化ピクチャと比較して、プログレッシブ精緻化シーケンス内の複数のピクチャの各々が品質の精緻化を定義する。
[0085]本開示の技法のいくつかの実装形態によれば、プログレッシブ精緻化動作に従ってプログレッシブ精緻化セグメント内のピクチャのうちの少なくともいくつかをコーディングするために、ビデオエンコーダ20および/またはビデオデコーダ30は、プログレッシブ精緻化セグメント内の最後のピクチャを除いて、プログレッシブ精緻化セグメント内の各ピクチャにプログレッシブ精緻化動作を適用するように構成される場合がある。いくつかの実装形態では、ビデオエンコーダ20および/またはビデオデコーダ30は、集積回路、マイクロプロセッサ、ならびに、ビデオエンコーダ20およびビデオデコーダ30のうちのそれぞれ1つまたは両方を備える通信デバイスのうちの少なくとも1つを含む場合がある。いくつかの例では、ビデオエンコーダ20は、符号化ビデオデータを復号するように構成される場合がある。
[0086]図2は、本開示の1つまたは複数の態様により、ビデオデータを符号化するための技法を実装することができるビデオエンコーダ20の一例を示すブロック図である。ビデオエンコーダ20は、ビデオスライス内のビデオブロックのイントラコーディングとインターコーディングとを実行することができる。イントラコーディングは、所与のビデオフレームまたはピクチャ内のビデオにおける空間的冗長性を低減または除去するために、空間的予測に依存する。インターコーディングは、ビデオシーケンスの隣接するフレームまたはピクチャ内のビデオにおける時間的冗長性を低減または除去するために、時間的予測に依存する。イントラモード(Iモード(登録商標))は、いくつかの空間ベースのコーディングモードのいずれかを指す場合がある。単方向予測(Pモード)または双方向予測(Bモード)などのインターモードは、いくつかの時間ベースのコーディングモードのいずれかを指す場合がある。
[0087]図2に示されたように、ビデオエンコーダ20は、符号化されるべきビデオフレーム内の現在ビデオブロックを受信する。図2の例では、ビデオエンコーダ20は、予測処理ユニット40と、参照フレームメモリ64と、加算器50と、変換処理ユニット52と、量子化ユニット54と、エントロピー符号化ユニット56とを含む。次に、予測処理ユニット41は、動き補償ユニット44と、動き推定ユニット42と、イントラ予測ユニット46と、パーティションユニット48とを含む。ビデオブロック復元のために、ビデオエンコーダ20はまた、逆量子化ユニット58と、逆変換ユニット60と、加算器62とを含む。ブロック境界をフィルタ処理して復元されたビデオからブロッキネスアーティファクトを除去するために、デブロッキングフィルタ(図2に示されず)が含まれる場合もある。必要な場合、デブロッキングフィルタは、通常、加算器62の出力をフィルタ処理することになる。デブロッキングフィルタに加えて、(ループ内またはループ後の)追加のフィルタが使用される場合もある。そのようなフィルタは簡潔のために示されていないが、必要な場合、(ループ内フィルタとして)加算器62の出力をフィルタ処理することができる。
[0088]符号化プロセス中に、ビデオエンコーダ20は、コーディングされるべきビデオフレームまたはスライスを受信する。フレームまたはスライスは、予測処理ユニット41によって複数のビデオブロックに分割される場合がある。動き推定ユニット42および動き補償ユニット44は、時間予測を実現するために、1つまたは複数の参照フレーム内の1つまたは複数のブロックに対して、受信されたビデオブロックのインター予測コーディングを実行する。イントラ予測ユニット46は、代替として、空間予測を実現するために、コーディングされるべきブロックと同じフレームまたはスライス内の1つまたは複数の隣接ブロックに対して、受信されたビデオブロックのイントラ予測コーディングを実行することができる。ビデオエンコーダ20は、たとえば、ビデオデータのブロックごとに適切なコーディングモードを選択するために、複数のコーディングパスを実行することができる。
[0089]その上、パーティションユニット48は、以前のコーディングパスにおける以前の区分化方式の評価に基づいて、ビデオデータのブロックをサブブロックに区分化することができる。たとえば、パーティションユニット48は、最初にフレームまたはスライスをLCUに区分化し、レートひずみ分析(たとえば、レートひずみ最適化)に基づいてLCUの各々をサブCUに区分化することができる。予測処理ユニット40は、LCUをサブCUに区分化することを示す4分木データ構造をさらに生成することができる。4分木のリーフノードCUは、1つまたは複数のPUと1つまたは複数のTUとを含む場合がある。
[0090]予測処理ユニット40は、たとえば、誤差結果に基づいてコーディングモード、すなわち、イントラまたはインターのうちの1つを選択することができ、残差ブロックデータを生成するために、得られたイントラコード化ブロックまたはインターコード化ブロックを加算器50に供給し、参照フレームとして使用するための符号化ブロックを復元するために、得られたイントラコード化ブロックまたはインターコード化ブロックを加算器62に供給する。予測処理ユニット40はまた、動きベクトル、イントラモードインジケータ、パーティション情報、および他のそのようなシンタックス情報などのシンタックス要素を、エントロピー符号化ユニット56に供給する。予測処理ユニット40は、レートひずみ分析を使用して、1つまたは複数のインターモードを選択することができる。
[0091]動き推定ユニット42および動き補償ユニット44は、高度に統合される場合があるが、概念的な目的のために別々に示してある。動き推定ユニット42によって実行される動き推定は、ビデオブロックの動きを推定する動きベクトルを生成するプロセスである。動きベクトルは、たとえば、現在フレーム(または他のコード化ユニット)内でコーディングされている現在ブロックに対する参照フレーム(または他のコード化ユニット)内の予測ブロックに対する、現在ビデオフレームまたはピクチャ内のビデオブロックのPUの変位を示すことができる。予測ブロックは、絶対値差分和(SAD)、2乗差分和(SSD)、または他の差分メトリックによって決定され得るピクセル差分に関して、コーディングされるべきブロックにぴったり一致することがわかるブロックである。いくつかの例では、ビデオエンコーダ20は、参照フレームメモリ64に記憶された参照ピクチャのサブ整数ピクセル位置についての値を計算することができる。たとえば、ビデオエンコーダ20は、参照ピクチャの1/4ピクセル位置、1/8ピクセル位置、または他の分数ピクセル位置の値を補間することができる。したがって、動き推定ユニット42は、フルピクセル位置および分数ピクセル位置に対する動き探索を実行し、分数ピクセル精度で動きベクトルを出力することができる。
[0092]動き推定ユニット42は、PUの位置を参照ピクチャの予測ブロックの位置と比較することによって、インターコード化スライス内のビデオブロックのPU用の動きベクトルを計算する。参照ピクチャは、第1の参照ピクチャリスト(リスト0)または第2の参照ピクチャリスト(リスト1)から選択される場合があり、それらの参照ピクチャリストの各々は、参照ピクチャメモリ64に記憶された1つまたは複数の参照ピクチャを識別する。動き推定ユニット42は、計算された動きベクトルをエントロピー符号化ユニット56および動き補償ユニット44に送る。
[0093]動き補償ユニット44によって実行される動き補償は、動き推定ユニット42によって決定された動きベクトルに基づいて、予測ブロックをフェッチまたは生成することに関与する場合がある。同じく、いくつかの例では、動き推定ユニット42および動き補償ユニット44は、機能的に統合される場合がある。現在ビデオブロックのPU用の動きベクトルを受信すると、動き補償ユニット44は、動きベクトルが参照ピクチャリストのうちの1つの中で指す予測ブロックの位置を特定することができる。加算器50は、以下で説明されるように、コーディングされている現在ビデオブロックのピクセル値から予測ブロックのピクセル値を減算し、ピクセル差分値を形成することによって、残差ビデオブロックを形成する。一般に、動き推定ユニット42は、ルーマコーディングブロックに対して動き推定を実行し、動き補償ユニット44は、クロマコーディングブロックとルーマコーディングブロックの両方のための、ルーマコーディングブロックに基づいて計算された動きベクトルを使用する。予測処理ユニット40はまた、ビデオスライスのビデオブロックを復号する際に、ビデオデコーダ30が使用するための、ビデオブロックおよびビデオスライスに関連付けられたシンタックス要素を生成することができる。
[0094]イントラ予測ユニット46は、上述されたように、動き推定ユニット42および動き補償ユニット44によって実行されるインター予測の代替として、現在ブロックをイントラ予測することができる。特に、イントラ予測ユニット46は、現在ブロックを符号化するために使用するイントラ予測モードを決定することができる。いくつかの例では、イントラ予測ユニット46は、たとえば、別個の符号化パス中に、様々なイントラ予測モードを使用して現在ブロックを符号化することができ、イントラ予測ユニット46(または、いくつかの例では、予測処理ユニット40)は、テストされたモードから使用するのに適切なイントラ予測モードを選択することができる。
[0095]たとえば、イントラ予測ユニット46は、様々なテストされたイントラ予測モードのためのレートひずみ分析を使用してレートひずみ値を計算し、テストされたモードの中で最良のレートひずみ特性を有するイントラ予測モードを選択することができる。レートひずみ分析は、一般に、符号化ブロックと、符号化ブロックを生成するために符号化された元の符号化されていないブロックとの間のひずみ(または誤差)の量、ならびに符号化ブロックを生成するために使用されるビットレート(すなわち、ビット数)を決定する。イントラ予測ユニット46は、どのイントラ予測モードがブロックについて最良のレートひずみ値を呈するかを決定するために、様々な符号化ブロックについてのひずみおよびレートから比率を計算することができる。
[0096]ブロックのためのイントラ予測モードを選択した後に、イントラ予測ユニット46は、ブロックのための選択されたイントラ予測モードを示す情報をエントロピー符号化ユニット56に供給することができる。エントロピー符号化ユニット56は、選択されたイントラ予測モードを示す情報を符号化することができる。ビデオエンコーダ20は、送信されるビットストリームに、(コードワードマッピングテーブルとも呼ばれる)複数のイントラ予測モードインデックステーブルおよび複数の修正されたイントラ予測モードインデックステーブルと、様々なブロック用の符号化コンテキストの定義と、コンテキストの各々に対して使用する、最確イントラ予測モード、イントラ予測モードインデックステーブル、および修正されたイントラ予測モードインデックステーブルの指示とを含む場合がある、構成データを含めることができる。
[0097]ビデオエンコーダ20は、コーディングされている元のビデオブロックから、モード選択ユニット40からの予測データを減算することによって、残差ビデオブロックを形成する。加算器50は、この減算演算を実行する1つまたは複数の構成要素を表す。変換処理ユニット52は、離散コサイン変換(DCT)または概念的に同様の変換などの変換を残差ブロックに適用し、残差変換係数値を含むビデオブロックを生成する。変換処理ユニット52は、DCTと概念的に同様である他の変換を実行することができる。ウェーブレット変換、整数変換、サブバンド変換、または他のタイプの変換も使用され得る。いずれの場合も、変換処理ユニット52は、変換を残差ブロックに適用し、残差変換係数のブロックを生成する。変換は、残差情報をピクセル値領域から周波数領域などの変換領域に変換することができる。変換処理ユニット52は、得られた変換係数を量子化ユニット54に送ることができる。量子化ユニット54は、ビットレートをさらに低減するために変換係数を量子化する。量子化プロセスは、係数の一部または全部に関連付けられたビット深度を低減することができる。量子化の程度は、量子化パラメータを調整することによって修正され得る。いくつかの例では、量子化ユニット54は、次いで、量子化変換係数を含む行列の走査を実行することができる。代替として、エントロピー符号化ユニット56が走査を実行する場合がある。
[0098]量子化に続いて、エントロピー符号化ユニット56は、量子化変換係数をエントロピーコーディングする。たとえば、エントロピー符号化ユニット56は、コンテキスト適応型可変長コーディング(CAVLC)、コンテキスト適応型バイナリ算術コーディング(CABAC)、シンタックスベースコンテキスト適応型バイナリ算術コーディング(SBAC)、確率間隔区分化エントロピー(PIPE)コーディング、または別のエントロピーコーディング技法を実行することができる。コンテキストベースエントロピーコーディングの場合、コンテキストは隣接ブロックに基づく場合がある。エントロピー符号化ユニット56によるエントロピーコーディングに続いて、符号化ビットストリームは、別のデバイス(たとえば、ビデオデコーダ30)に送信されるか、または後で送信するかもしくは取り出すために保管される場合がある。
[0099]逆量子化ユニット58および逆変換ユニット60は、たとえば、参照ブロックとして後で使用するための、ピクセル領域内の残差ブロックを復元するために、それぞれ、逆量子化および逆変換を適用する。動き補償ユニット44は、残差ブロックを参照フレームメモリ64のフレームのうちの1つの予測ブロックに加算することによって、参照ブロックを計算することができる。動き補償ユニット44はまた、動き推定で使用するためのサブ整数ピクセル値を計算するために、復元された残差ブロックに1つまたは複数の補間フィルタを適用することができる。加算器62は、参照フレームメモリ64に記憶するための復元されたビデオブロックを生成するために、動き補償ユニット44によって生成された動き補償予測ブロックに復元された残差ブロックを加算する。復元されたビデオブロックは、後続のビデオフレーム内のブロックをインターコーディングするために、動き推定ユニット42および動き補償ユニット44によって参照ブロックとして使用される場合がある。
[0100]ビデオエンコーダ20の様々な構成要素は、ビデオビットストリームの時間スケーラビリティをサポートしながら、プログレッシブ精緻化を使用してビデオデータを符号化するために、本開示の1つまたは複数の技法を実装するように構成される場合がある。たとえば、ビデオエンコーダ20は、より少ない符号化ピクチャを含めるようにセグメントが時間的にスケーリングされたかどうかにかかわらず、受信デバイス(たとえば、ビデオデコーダまたはその構成要素)がプログレッシブ精緻化セグメントの開始境界と終了境界とを決定することを可能にする補足エンハンスメント情報(SEI)メッセージなどの、SEIメッセージを生成しシグナリングするために、本技法のうちの1つまたは複数を実装することができる。一例では、予測処理ユニット40は、本開示の1つまたは複数の態様により、プログレッシブ精緻化セグメント開始SEIメッセージを生成するように構成される場合がある。
[0101]ビデオエンコーダ20は、HEVC WD9、AVC、または他のビデオコーディング規格に従って、符号化ビデオビットストリームにメタデータを含めるように構成される場合がある。様々な例では、ビデオエンコーダ20は、シグナリングされた符号化ビデオビットストリームを復号するために、デコーダによって必要とされないメタデータを含める場合がある。いくつかの例として、ビデオエンコーダ20は、ビデオデコーダがピクチャの出力タイミングを決定し、1つまたは複数のピクチャに関連するディスプレイ情報を決定し、損失情報を検出し、検出された損失を隠匿および/または修正することを可能にするメタデータをシグナリングすることができる。
[0102]加えて、ビデオエンコーダ20は、符号化ビデオビットストリーム内でシグナリングされた特定のアクセスユニット(AU)内の任意の数のSEIネットワークアブストラクションレイヤ(NAL)ユニットを生成することができる。次に、ビデオエンコーダ20は、特定のSEI NALユニットに任意の数のSEIメッセージを含めることができる。上記の表1は、HEVC WD9に従って、ビデオエンコーダ20が生成することができる様々なSEIメッセージを列挙し、列挙されたSEIメッセージの対応する使用法/目的を列挙する。
[0103]ビデオエンコーダ20は、符号化ビデオビットストリーム内のプログレッシブ精緻化セグメントを生成し、シグナリングするように、構成される場合があるか、または場合によっては動作可能であり得る。図1に関して記載されたように、プログレッシブ精緻化セグメントは、HEVC WD9に従って、復号順序で一連の符号化ピクチャを含む場合がある。いくつかの例では、プログレッシブ精緻化セグメント内の一連の符号化ピクチャは、出力順序に従って配列される場合もある。特に、プログレッシブ精緻化セグメントの各符号化ピクチャは、復号順序でプログレッシブ精緻化セグメントの直前にくる符号化ピクチャと比較して、増分し累積する品質の精緻化を表すことができる。
[0104]ビデオエンコーダ20は、プログレッシブ精緻化セグメントの開始境界を示すために、プログレッシブ精緻化セグメント開始SEIメッセージをシグナリングすることができる。上記のシンタックス表1に示されたように、ビデオエンコーダ20は、HEVC WD9に従って、プログレッシブ精緻化セグメント開始SEIメッセージに、progressive_refinement_idシンタックス要素とnum_refinement_steps_minus1シンタックス要素とを含めることができる。HEVC WD9に従って、ビデオエンコーダ20は、1つまたは複数の条件が満足されるまで、プログレッシブ精緻化セグメントが続く(たとえば、符号化ビットストリーム内の各々の次の符号化ピクチャが先行する符号化ピクチャよりも単独で品質の精緻化である)と決定することができる。たとえば、ビデオエンコーダ20は、以下の条件のうちの1つが満足されるまで、プログレッシブ精緻化セグメントが続くと決定することができる。
− ビデオエンコーダ20が新しいコード化ビデオシーケンスの開始を決定する。
− ビデオエンコーダ20が符号化ビデオビットストリームの終了を決定する。
− num_refinement_steps_minus1シンタックス要素の値がゼロよりも大きく、復号順序で次のスライスの(「pic_order_cnt_lsb」によって示された)POC値の最下位ビットが以下の式の出力に等しいと、ビデオエンコーダ20が決定する:(currPicOrderCntLsb+num_refinement_steps_minus1+1)%MaxPicOrderCntLsb、ここで、currPicOrderCntLsbはSEIメッセージを含んでいるアクセスユニット内のピクチャのpic_order_cnt_lsbの値である。「%」演算子は、整数除算演算の余りの値をもたらすモジュロ演算を示す。
− num_refinement_steps_minus1の値がゼロに等しく、現在プログレッシブ精緻化セグメント開始SEIメッセージ内のprogressive_refinement_id値と同じprogressive_refinement_id値を有するプログレッシブ精緻化セグメント終了SEIメッセージが符号化されたと、ビデオエンコーダ20が決定する。
[0105]加えて、ビデオエンコーダ20は、プログレッシブ精緻化セグメント開始SEIメッセージと、ゼロに等しい値を有する「nuh_reserved_zero_6bits」シンタックス要素とを含めるようにSEI NALユニットを生成することによって、現在AUにおいてSEI NALユニットが復号順序で最初のビデオコーディングレイヤ(VCL)NALユニットに先行することをデコーダに示すことができる。ビデオエンコーダ20は、progressive_refinement_idシンタックス要素の値を、0で始まり、(2^32−2)で終わり、両端値を含む数値範囲内に設定することができる。たとえば、ビデオエンコーダ20は、プログレッシブ精緻化セグメントに関連する特定のプログレッシブ精緻化動作を識別するために、progressive_refinement_idシンタックス要素を、両端値を含む0から255および両端値を含む512から(2^31−1)の範囲内の値に設定することができる。言い換えれば、上述された範囲内でprogressive_refinement_idシンタックス要素に割り当てられた任意の値は、HEVC WD9でサポートされる特定のプログレッシブ精緻化動作に関連付けられる場合がある。
[0106]一方、両端値を含む256から511および両端値を含む2^31から(2^32−2)の範囲内に入るprogressive_refinement_idシンタックス要素の値は、ITU−Tおよび/またはISO/IECが将来使用するために確保される。より詳細には、ビデオエンコーダ20が上述された確保された範囲のうちの1つの中の値にprogressive_refinement_idシンタックス要素を設定した場合、ビデオデコーダなどの、ビットストリームを受信するデバイスは、progressive_refinement_idシンタックス要素を無視することができる。特に、このシンタックス要素を無視するために、ビデオデコーダは、受信された符号化ビデオビットストリームからprogressive_refinement_idシンタックス要素を除去し、progressive_refinement_idシンタックス要素を破棄することができる。
[0107]記載されたように、ビデオエンコーダ20および/またはその構成要素は、HEVC WD9などに従って、符号化ビデオビットストリームの時間スケーラビリティをサポートするように構成される場合がある。たとえば、ビデオエンコーダ20は、復号デバイスまたは中間デバイスなどの受信デバイスがそこからサブビットストリームを抽出することができる、完全な符号化ビデオビットストリームを生成することができる。たとえば、ストリーミングサーバまたはメディアを意識したネットワーク要素(「MANE」)などの中間デバイスは、完全な符号化ビデオビットストリームに含まれる符号化ピクチャの完全なセットから、符号化ピクチャの時間サブセットを抽出することができる。いくつかの例では、時間サブセットは、完全な符号化ビデオビットストリームに含まれる符号化ピクチャの完全なセットの真のサブセットを表すことができる。これらの例によれば、完全な符号化ビデオビットストリームは、時間サブセットのあらゆる符号化ピクチャと、その時間サブセットに含まれない少なくとも1つの追加の符号化ピクチャとを含む場合がある。
[0108]時間スケーラビリティによる様々なピクチャレートをサポートするために、中間デバイスは、完全な符号化ビデオビットストリームに含まれる符号化ピクチャの完全なセットから、様々なピクチャカウントの時間サブセットを抽出するように構成される場合がある。(たとえば、様々なピクチャレートをサポートするために)中間デバイスによって抽出された各々の異なる時間サブセットは、単独で復号可能な時間サブセットまたはサブビットストリームを表すことができる。言い換えれば、完全な符号化ビデオビットストリームから抽出された時間的にスケーリングされたサブビットストリームを受信するビデオデコーダは、完全な符号化ビデオビットストリームに含まれるが、サブビットストリームから除外される情報などの、いかなる追加のデータもなしに、符号化ピクチャの時間サブセットを復号することができる。
[0109]HEVC WD9に従って、ビデオエンコーダ20によって生成された完全な符号化ビデオビットストリームは、いくつかの時間サブレイヤを含む場合がある。加えて、ビデオエンコーダ20によって生成された各NALユニットは、対応する「TemporalId」値によって示された特定のサブレイヤに属する場合がある。たとえば、ビデオエンコーダ20は、NALユニットのTemporalIdの値を、対応する「temporal_id_plus1」シンタックス要素の値マイナス1に等しく設定することができる。加えて、ビデオエンコーダ20は、単一のピクチャのすべてのVCL NALユニットが単一のサブレイヤ(すなわち、同じサブレイヤ)に属すると決定することができる。言い換えれば、ビデオエンコーダ20は、符号化ピクチャ自体が符号化ピクチャに関連付けられたNALユニットに対応する特定のサブレイヤに属するように、ピクチャを符号化することができる。
[0110]たとえば、HEVC WD9に従って、ビデオエンコーダ20は、ビットストリームの下位サブレイヤの復号プロセスがビットストリームの上位サブレイヤ内のデータに依存しないように、符号化ビデオビットストリームを生成することができる。加えて、中間デバイスは、完全なビットストリームから、特定の値よりも高いTemporalId値に関連付けられたすべてのNALユニットを除去することによって、HEVC WD9に準拠する完全なビットストリームからサブビットストリームを生成することができる。次に、このようにして生成されたサブビットストリームは、それ自体、HEVC WD9に準拠するビットストリームを表すことができる。ビデオエンコーダ20および/またはその1つもしくは複数の構成要素は、HEVC WD9に対するビットストリーム準拠(たとえば、バッファ制限)についてのすべての条件が、完全な符号化ビデオビットストリームおよび所与のそのサブレイヤについて満たされることを保証することができる。
[0111]記載されたように、完全な符号化ビデオビットストリームを時間的にスケーリングする際に、中間デバイスは、完全な符号化ビデオビットストリームから符号化ピクチャの時間サブセットを抽出することができる。たとえば、時間サブセットは、完全な符号化ビデオビットストリーム内でシグナリングされた符号化ピクチャの真のサブセットであり得るし、したがって、中間デバイスは、サブビットストリームを生成するために、完全な符号化ビットストリームから1つまたは複数の符号化ピクチャを除去することができる。例では、中間デバイスは、プログレッシブ精緻化セグメントに含まれる1つまたは複数の符号化ピクチャを除去することができる。しかしながら、これらの例では、中間デバイスは、時間的にスケーリングされたプログレッシブ精緻化セグメントに含まれる符号化ピクチャの数における変更(すなわち、削減)を反映するように、プログレッシブ精緻化セグメント開始SEIメッセージ内でシグナリングされたデータを更新するように構成されていない場合がある。言い換えれば、中間デバイスは、潜在的に、ビデオデコーダなどの受信デバイスに、num_refinement_steps_minus1シンタックス要素の正しくない値をシグナリングする可能性がある。次に、num_refinement_steps_minus1シンタックス要素の正しくない値を通信することによって、中間デバイスは、時間的にスケーリングされたプログレッシブ精緻化セグメントの終端の後のピクチャを復号するために、プログレッシブ精緻化動作を適用することをビデオデコーダに行わせる可能性がある。
[0112]符号化ビデオビットストリーム内でプログレッシブ精緻化セグメントの終端の後に位置するピクチャの誤った復号を軽減または除去するために、ビデオエンコーダ20は、本開示の1つまたは複数の技法を実装することができる。本技法のいくつかの実装形態によれば、ビデオエンコーダ20は、プログレッシブ精緻化セグメントの最後のピクチャのピクチャ順序カウント(POC)値をビデオデコーダが決定することを可能にする情報を含めるように、プログレッシブ精緻化セグメント開始SEIメッセージを生成することができる。POC値は、符号化ビデオビットストリーム内でシグナリングされる特定の符号化ピクチャに関連付けられた固定値を表すことができ、したがって、時間スケーリングにかかわらず、特定の符号化ピクチャを識別することができる。
[0113]たとえば、プログレッシブ精緻化セグメントの最後の符号化ピクチャのPOC値を導出することによって、符号化ビデオビットストリームを受信するビデオデコーダは、最後の符号化ピクチャを正確に識別することができる。より詳細には、ビデオデコーダは、中間デバイスが時間的にスケーリングされたプログレッシブ精緻化セグメントを有するかどうかにかかわらず、プログレッシブ精緻化セグメントの最後の符号化ピクチャを識別することができる。中間デバイスがプログレッシブ精緻化セグメントを時間的にスケーリングする例では、中間デバイスがプログレッシブ精緻化セグメントを時間的にスケーリングする範囲にかかわらず、ビデオデコーダは、プログレッシブ精緻化セグメントの最後のピクチャを正確に識別することができる。言い換えれば、中間デバイスが時間スケーリングを使用して生成するピクチャレートにかかわらず、ビデオデコーダは、プログレッシブ精緻化セグメントの最後の符号化ピクチャ(すなわち、終了境界)を識別することができる。
[0114]本明細書に記載された技法の様々な実装形態によれば、ビデオエンコーダ20は、プログレッシブ精緻化セグメントの最後の符号化ピクチャに関連付けられたPOC値を決定するためにデコーダが使用することができる情報を含めるように、プログレッシブ精緻化セグメント開始SEIメッセージを生成することができる。一実装形態では、ビデオエンコーダ20は、「デルタPOC」値を示すデータを含めるように、プログレッシブ精緻化セグメント開始SEIメッセージを生成することができる。より詳細には、ビデオエンコーダ20は、デルタPOC値がベースピクチャのPOC値とプログレッシブ精緻化セグメントの最後の符号化ピクチャのPOC値との間の差分を示すように、デルタPOC値を生成することができる。
[0115]ビデオエンコーダ20によって生成された符号化ビデオビットストリームを受信するビデオデコーダは、対応するプログレッシブ精緻化セグメントの開始境界(たとえば、最初の符号化ピクチャ)を検出するために、プログレッシブ精緻化セグメント開始SEIメッセージを使用することができる。加えて、ビデオデコーダは、ベースピクチャ(たとえば、復号順序で開始境界の直前にくる符号化ピクチャ)のPOC値にデルタPOC値を加えることによって、プログレッシブ精緻化セグメントの終了境界(たとえば、最後の符号化ピクチャ)を決定することができる。たとえば、ベースピクチャのPOC値にデルタPOC値を加えることによって、ビデオデコーダは、プログレッシブ精緻化セグメントの終了境界のPOC値を導出することができる。
[0116]記載されたように、特定の符号化ピクチャのPOC値は、符号化ピクチャに関連付けられた固定値であり得るし、復号順序における符号化ピクチャの位置を示すことができる。プログレッシブ精緻化セグメントの終了境界のPOC値をそれから導出するデータをデコーダに供給することによって、ビデオエンコーダ20は、中間デバイスがプログレッシブ精緻化セグメントを時間的にスケーリングするかどうかにかかわらず、また中間デバイスがプログレッシブ精緻化セグメントを時間的にスケーリングする大きさによって、プログレッシブ精緻化セグメントの終了境界をデコーダが決定することを可能にすることができる。ビデオエンコーダ20は、上記のシンタックス表3に示された「pic_order_cnt_delta」シンタックス要素の形態で、デルタPOCをシグナリングすることができる。様々な例では、ビデオエンコーダ20は、プログレッシブ精緻化セグメント開始SEIメッセージ内で、またはベースピクチャのそれぞれのスライスに関連付けられた1つもしくは複数のスライスヘッダ内で、pic_order_cnt_deltaシンタックス要素をシグナリングすることができる。このようにして、ビデオエンコーダ20は、符号化ビデオビットストリームの時間スケーラビリティをサポートしながら、対応するプログレッシブ精緻化動作を使用してプログレッシブ精緻化シーケンスをデコーダが復号することを可能にするために、本開示の1つまたは複数の技法を実装することができる。
[0117]プログレッシブ精緻化セグメントの終了境界のPOC値に関連付けられたデータを含めるように、ビデオエンコーダ20がプログレッシブ精緻化セグメント開始SEIメッセージを生成するいくつかの実装形態によれば、ビデオエンコーダ20は、プログレッシブ精緻化セグメント開始SEIメッセージ内に最下位ビット(LSB)のデルタを含めることができる。これらの実装形態では、ビデオエンコーダ20は、ベースピクチャのPOC値のLSB値とプログレッシブ精緻化セグメントの最後の符号化ピクチャのPOC値のLSB値との間の差分を示すように、LSBのデルタを生成することができる。
[0118]次に、ビデオエンコーダ20は、ベースピクチャのPOC値のLSBにLSBのデルタを加えることによって、符号化ビデオビットストリームを受信するデコーダが、プログレッシブ精緻化セグメントの終了境界のPOC値を導出することを可能にすることができる。たとえば、ビデオエンコーダ20は、num_refinement_steps_minus1シンタックス要素の代わりに、LSBのデルタを示すシンタックス要素を含めるように、プログレッシブ精緻化セグメント開始SEIメッセージを生成することができる。いくつかの実装形態によれば、ビデオエンコーダ20は、ベースピクチャのそれぞれのスライスに関連付けられた1つまたは複数のスライスヘッダの一部として、そのシンタックス要素をシグナリングすることができる。
[0119]LSBのデルタを示すシンタックス要素を含めることによって、エントロピー符号化ユニット56は、中間デバイスがプログレッシブ精緻化セグメントを時間的にスケーリングするかどうかにかかわらず、また中間デバイスがプログレッシブ精緻化セグメントを時間的にスケーリングする大きさによって、プログレッシブ精緻化セグメントの終了境界をデコーダが決定することを可能にすることができる。たとえば、LSBのデルタをシグナリングすることによって、ビデオエンコーダ20は、デコーダがプログレッシブ精緻化セグメントの終了境界のPOC値を導出し、それにより、終了境界に関連付けられた固定値を使用して終了境界を識別することを可能にすることができる。このようにして、ビデオエンコーダ20は、符号化ビデオビットストリームの時間スケーラビリティをサポートしながら、対応するプログレッシブ精緻化動作を使用してプログレッシブ精緻化シーケンスをデコーダが復号することを可能にするために、本開示の1つまたは複数の技法を実装することができる。
[0120]本明細書に記載された技法の他の実装形態によれば、ビデオエンコーダ20は、1)ベースピクチャのTemporalId値以下のTemporalId値に関連付けられた、2)ベースピクチャのプログレッシブな品質の精緻化を表す、連続する符号化ピクチャの数を示すデータを含めるように、プログレッシブ精緻化セグメント開始SEIメッセージを生成することができる。いくつかの例では、減少するTemporalId値は、復号順序に従った符号化ビデオビットストリーム内の前進を示すことができる。たとえば、プログレッシブ精緻化セグメントの最初の符号化ピクチャは、ベースピクチャのTemporalId値よりも小さいTemporalId値を有することができる。次に、プログレッシブ精緻化セグメントの2番目の符号化ピクチャは、プログレッシブ精緻化セグメントの最初の符号化ピクチャのTemporalId値よりも小さいTemporalId値を有することができる、以下同様。
[0121]ベースピクチャは、現在アクセスユニットに含まれる符号化ピクチャであり得るし、ベースピクチャは、復号順序でプログレッシブ精緻化セグメントの最初の符号化ピクチャの直前にくる場合がある。いくつかの例では、ベースピクチャは、出力順序でプログレッシブ精緻化セグメントの最初の符号化ピクチャの直前にくる場合もある。いくつかのそのような例では、プログレッシブ精緻化セグメントは、復号順序と出力順序の両方で連続する一連の符号化ピクチャを含む場合がある。
[0122]本明細書に記載された技法のこれらの実装形態によれば、ビデオエンコーダ20は、ベースピクチャのTemporalId値よりも小さいTemporalId値を有し、ならびにベースピクチャのプログレッシブな品質の精緻化を表す、連続する符号化ピクチャの数を示すデータを含めるように、プログレッシブ精緻化セグメント開始SEIメッセージを生成することができる。たとえば、情報は、プログレッシブ精緻化セグメントを作り上げるシーケンス内の符号化ピクチャの数を示す場合がある。これらの実装形態では、中間デバイスは、上記に列挙された条件を満足する、連続する符号化ピクチャの数を決定することができる。たとえば、中間デバイスは、完全な符号化ビデオビットストリームから抽出された符号化ピクチャの各時間サブセットに関する条件を満足する、連続する符号化ピクチャの数を決定することができる。
[0123]上記の条件を満足する、連続する符号化ピクチャの数を決定することによって、中間デバイスがプログレッシブ精緻化セグメントを時間的にスケーリングするシナリオにおいても、中間デバイスは、プログレッシブ精緻化セグメントから利用可能な符号化ピクチャの数をより正確に決定することができる。次に、中間デバイスは、ベースピクチャのTemporalId値よりも小さいTemporalId値を有し、ならびにベースピクチャのプログレッシブな品質の精緻化を表す、連続する符号化ピクチャの決定された数を通信することができる。様々な例では、ビデオエンコーダ20は、ベースピクチャのTemporalId値よりも小さいTemporalId値を有し、ならびにベースピクチャのプログレッシブな品質の精緻化を表す、連続する符号化ピクチャの決定された数を示すシンタックス要素を含めるように、プログレッシブ精緻化セグメント開始SEIメッセージを生成することができる。たとえば、ビデオエンコーダ20は、上記のシンタックス表1に示されたnum_refinement_steps_minus1シンタックス要素の代わりに、決定された数を示すシンタックス要素を含めるように、プログレッシブ精緻化セグメント開始SEIメッセージを生成することができる。いくつかの例では、ビデオエンコーダ20は、ベースピクチャのそれぞれのスライスに関連付けられた1つまたは複数のスライスヘッダの一部として、決定された数を示すシンタックス要素をシグナリングすることができる。
[0124]ビデオエンコーダ20は、ベースピクチャのTemporalId値よりも小さいTemporalId値を有し、ベースピクチャのプログレッシブな品質の精緻化を表す、連続する符号化ピクチャの数をシグナリングすることによって、プログレッシブ精緻化セグメントの正確な長さをビデオデコーダに供給することができる。一例として、プログレッシブ精緻化セグメント開始SEIメッセージの一部として上述された情報をシグナリングすることによって、ビデオエンコーダ20は、中間デバイスがプログレッシブ精緻化セグメントを時間的にスケーリングするかどうかにかかわらず、プログレッシブ精緻化セグメントの長さを受信デコーダに供給することができる。次に、プログレッシブ精緻化セグメント開始SEIメッセージを受信するデコーダは、デコーダがプログレッシブ精緻化セグメントを時間的にスケーリングするかどうかにかかわらず、またデコーダがプログレッシブ精緻化セグメントを時間的にスケーリングする大きさによって、プログレッシブ精緻化セグメントの長さを決定するために、プログレッシブ精緻化セグメント開始SEIメッセージに含まれるシンタックス要素を利用することができる。このようにして、ビデオエンコーダ20は、1)ベースピクチャのTemporalId値よりも小さいTemporalId値を有し、2)ベースピクチャのプログレッシブな品質の精緻化を表す、連続する符号化ピクチャの数をシグナリングし、それにより、ビデオ復号デバイスが時間的にスケーラブルなビデオビットストリームをサポートしながら、プログレッシブ精緻化セグメントを復号することを可能にするために、本開示の1つまたは複数の技法を実装することができる。
[0125]図2に関して記載されたように、ビデオエンコーダ20および/またはその構成要素は、ビデオデータを符号化する方法を実施することができ、その方法は、プログレッシブ精緻化動作に従ってプログレッシブ精緻化セグメント内の複数のピクチャのうちの少なくともいくつかのピクチャを符号化することと、符号化ビットストリーム内のプログレッシブ精緻化セグメントの最後のピクチャのピクチャ順序カウント(POC)値を示す情報を生成することとを含む。ビデオエンコーダ20に関して上述された方法のいくつかの例示的な実装形態では、生成された情報は、プログレッシブ精緻化セグメントの直前にくるピクチャのPOC値と、プログレッシブ精緻化セグメントの最後のピクチャのPOC値との間の差分を示すデルタPOC値を含む。ビデオエンコーダ20に関して上述された方法のいくつかの例示的な実装形態によれば、生成された情報は、プログレッシブ精緻化セグメントの直前にくるピクチャのPOC値のLSBと、プログレッシブ精緻化セグメントの最後のピクチャのPOC値のLSBとの間の差分を示す最下位ビット(LSB)のデルタを含む。ビデオエンコーダ20に関して上述された方法の一例では、生成された情報は、プログレッシブ精緻化セグメントの最後のピクチャのPOC値を含む。
[0126]ビデオエンコーダ20に関して上述された方法のいくつかの実装形態によれば、情報を生成することは、符号化ビットストリーム内でシグナリングされるべき補足エンハンスメント情報(SEI)メッセージに情報を含めることを備える。1つのそのような実装形態では、SEIメッセージは、プログレッシブ精緻化セグメントの開始境界を示すプログレッシブ精緻化セグメント開始SEIメッセージを備える。ビデオエンコーダ20に関して上述された方法のいくつかの実装形態によれば、方法は、符号化ピクチャが符号化ビデオストリーム内でプログレッシブ精緻化セグメントの直前にくると決定することをさらに含むことができる。1つのそのような実装形態では、プログレッシブ精緻化シーケンスの直前にくる符号化ピクチャと比較して、プログレッシブ精緻化シーケンス内の各ピクチャが品質の精緻化を定義する。
[0127]ビデオエンコーダ20に関して上述された方法のいくつかの例では、方法は、プログレッシブ精緻化セグメント内の複数のピクチャのうちの最後のピクチャを検出することと、プログレッシブ精緻化動作に従った符号化を停止することとをさらに備えることができる。ビデオエンコーダ20に関して上述された方法のいくつかの実装形態によれば、プログレッシブ精緻化動作に従ってプログレッシブ精緻化セグメント内のピクチャのうちの少なくともいくつかを符号化することは、プログレッシブ精緻化セグメント内の最後のピクチャを除いて、プログレッシブ精緻化セグメント内の各ピクチャにプログレッシブ精緻化動作を適用することを備える。
[0128]いくつかの例では、ビデオエンコーダ20は、デスクトップコンピュータ、ノートブック(すなわち、ラップトップ)コンピュータ、タブレットコンピュータ、セットトップボックス、いわゆる「スマート」フォンなどの電話ハンドセット、いわゆる「スマート」パッド、テレビジョン、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲームコンソール、ビデオストリーミングデバイスなどの、ビデオデータをコーディングするためのデバイスに含まれる場合がある。これらまたは他の例では、ビデオデータをコーディングするためのそのようなデバイスは、集積回路、マイクロプロセッサ、および、ビデオエンコーダ20を含む通信デバイスのうちの1つまたは複数を含む場合がある。いくつかの例では、ビデオエンコーダ20は、符号化ビデオデータをエントロピー復号することなどを介して、符号化ビデオデータを復号するように構成される場合もある。
[0129]図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から受信されたイントラ予測モードインジケータに基づいて予測データを生成することができる。
[0130]図3に示された実装形態では、ビデオデコーダ30は、ネットワーク要素68に結合される。様々な例では、ネットワーク要素68は、メディアを意識したネットワーク要素(すなわち「MANE」)、ストリーミングサーバ、またはネットワークヘッドエンドデバイスなどの、様々なデバイスを含む場合があるか、それらであり得るか、またはそれらの一部であり得る。たとえば、ネットワーク要素68は、ビデオエンコーダ20によってシグナリングされた符号化ビデオビットストリームを受信し、符号化ビデオビットストリームを時間的にスケーリングするように構成される場合がある。この例では、ネットワーク要素68は、時間的にスケーリングされたビットストリームをビデオデコーダ30に中継することができる。図3の例ではビデオデコーダ30の外部に示されているが、様々な例では、ネットワーク要素68は、
[0131]一例として、ネットワーク要素68は、受信された符号化ビデオビットストリームに含まれる符号化ピクチャの完全なセットから符号化ピクチャの時間サブセットを抽出することができる。ネットワーク要素68によって受信される符号化ビデオビットストリームは、本明細書では「完全な符号化ビデオビットストリーム」と呼ばれる場合がある。加えて、ネットワーク要素68によって抽出された時間サブセットは、完全な符号化ビデオビットストリームに含まれる符号化ピクチャの完全なセットの真のサブセットを表すことができる。言い換えれば、ネットワーク要素68によって受信された完全な符号化ビデオビットストリームは、時間サブセットのあらゆる符号化ピクチャと、その時間サブセットに含まれない少なくとも1つの追加の符号化ピクチャとを含む場合がある。
[0132]時間スケーラビリティによる様々なピクチャレートをサポートするために、ネットワーク要素68は、完全な符号化ビデオビットストリームに含まれる符号化ピクチャの完全なセットから、様々なピクチャカウントの時間サブセットを抽出するように構成される場合がある。(たとえば、様々なピクチャレートをサポートするために)ネットワーク要素68によって抽出された各々の異なる時間サブセットは、単独で復号可能な時間サブセットまたはサブビットストリームを表すことができる。言い換えれば、ネットワーク要素68によって抽出された時間的にスケーリングされたサブビットストリームを受信するビデオデコーダ30などのデバイスは、完全な符号化ビデオビットストリームに含まれるが、サブビットストリームから除外される情報などの、いかなる追加のデータもなしに、符号化ピクチャの時間サブセットを復号することができる。
[0133]ネットワーク要素68は、HEVC WD9に従って、ビデオエンコーダ20によってシグナリングされた完全な符号化ビデオビットストリームが、いくつかの時間サブレイヤを含むと決定することができる。加えて、ネットワーク要素68は、ビデオエンコーダ20によってシグナリングされた各NALユニットが、対応する「TemporalId」値によって示された特定のサブレイヤに属すると決定することができる。たとえば、ネットワーク要素68は、NALユニットのTemporalIdの値が、対応する「temporal_id_plus1」シンタックス要素の値マイナス1に等しいと決定することができる。加えて、この例では、ネットワーク要素68は、単一のピクチャのすべてのVCL NALユニットが単一のサブレイヤ(すなわち、同じサブレイヤ)に属すると決定することができる。言い換えれば、ネットワーク要素68は、特定の符号化ピクチャ自体が、符号化ピクチャに関連付けられたNALユニットに対応する特定のサブレイヤに属すると決定することができる。
[0134]たとえば、HEVC WD9に従って、ビデオエンコーダ20は、(たとえば、ネットワーク要素68によって抽出された)ビットストリームの下位サブレイヤの復号プロセスが、ビットストリームの上位サブレイヤ内のデータに依存しないように、符号化ビデオビットストリームを生成することができる。ネットワーク要素68は、完全なビットストリームから、特定の値よりも高いTemporalId値に関連付けられたすべてのNALユニットを除去することによって、HEVC WD9に準拠する完全なビットストリームからサブビットストリームを抽出することができる。次に、このようにしてネットワーク要素68によって抽出されたサブビットストリームは、それ自体、HEVC WD9に準拠するビットストリームを表すことができる。ビデオエンコーダ20および/またはその1つもしくは複数の構成要素は、HEVC WD9に対するビットストリーム準拠(たとえば、バッファ制限)についてのすべての条件が、各サブビットストリームについて満たされることを保証することができる。
[0135]記載されたように、完全な符号化ビデオビットストリームを時間的にスケーリングする際に、ネットワーク要素68は、完全な符号化ビデオビットストリームから符号化ピクチャの時間サブセットを抽出することができる。たとえば、時間サブセットは、完全な符号化ビデオビットストリーム内でシグナリングされた符号化ピクチャの真のサブセットであり得るし、したがって、ネットワーク要素68は、サブビットストリームを生成するために、完全な符号化ビットストリームから1つまたは複数の符号化ピクチャを除去することができる。例では、ネットワーク要素68は、プログレッシブ精緻化セグメントに含まれる1つまたは複数の符号化ピクチャを除去することができる。
[0136]しかしながら、これらの例では、ネットワーク要素68は、時間的にスケーリングされたプログレッシブ精緻化セグメントに含まれる符号化ピクチャの数における変更(すなわち、削減)を反映するように、プログレッシブ精緻化セグメント開始SEIメッセージ内でシグナリングされたデータを更新するように構成されていない場合がある。言い換えれば、ネットワーク要素68は、潜在的に、num_refinement_steps_minus1シンタックス要素の正しくない値をビデオデコーダ30に中継する可能性がある。次に、num_refinement_steps_minus1シンタックス要素の正しくない値を中継することによって、ネットワーク要素68は、時間的にスケーリングされたプログレッシブ精緻化セグメントの終端の後のピクチャを復号するために、プログレッシブ精緻化動作を適用することをビデオデコーダ30に行わせる可能性がある。
[0137]復号プロセス中に、ビデオデコーダ30は、ビデオエンコーダ20から、符号化ビデオスライスのビデオブロックと、関連するシンタックス要素とを表す符号化ビデオビットストリームを受信する。ビデオデコーダ30のエントロピー復号ユニット70は、量子化係数、動きベクトル、またはイントラ予測モードインジケータと、他のシンタックス要素とを生成するために、ビットストリームをエントロピー復号する。エントロピー復号ユニット70は、動きベクトルと他のシンタックス要素とを動き補償ユニット72に転送する。ビデオデコーダ30は、ビデオスライスレベルおよび/またはビデオブロックレベルで、シンタックス要素を受信することができる。
[0138]ビデオスライスがイントラコード化(I)スライスとしてコーディングされるとき、イントラ予測ユニット74は、シグナリングされたイントラ予測モードと、現在フレームまたはピクチャの以前に復号されたブロックからのデータとに基づいて、現在ビデオスライスのビデオブロック用の予測データを生成することができる。ビデオフレームがインターコード化(すなわち、B、P、またはGPB)スライスとしてコーディングされるとき、動き補償ユニット72は、エントロピー復号ユニット70から受信された動きベクトルと他のシンタックス要素とに基づいて、現在ビデオスライスのビデオブロック用の予測ブロックを生成する。予測ブロックは、参照ピクチャリストのうちの1つの中の参照ピクチャのうちの1つから生成される場合がある。ビデオデコーダ30は、参照ピクチャメモリ82に記憶された参照ピクチャに基づいて、デフォルトの構築技法を使用して、参照フレームリスト、すなわち、リスト0とリスト1とを構築することができる。
[0139]動き補償ユニット72は、動きベクトルと他のシンタックス要素とを解析することによって、現在ビデオスライスのビデオブロックについての予測情報を決定し、復号されている現在ビデオブロック用の予測ブロックを生成するために、予測情報を使用する。たとえば、動き補償ユニット72は、ビデオスライスのビデオブロックをコーディングするために使用される予測モード(たとえば、イントラ予測またはインター予測)と、インター予測スライスタイプ(たとえば、Bスライス、Pスライス、またはGPBスライス)と、スライス用の参照ピクチャリストのうちの1つまたは複数についての構築情報と、スライスのインター符号化ビデオブロックごとの動きベクトルと、スライスのインターコード化ビデオブロックごとのインター予測ステータスと、現在ビデオスライス内のビデオブロックを復号するための他の情報とを決定するために、受信されたシンタックス要素のうちのいくつかを使用する。
[0140]動き補償ユニット72はまた、補間フィルタに基づいて補間を実行することができる。動き補償ユニット72は、参照ブロックのサブ整数ピクセルについての補間された値を計算するために、ビデオブロックの符号化中にビデオエンコーダ20によって使用された補間フィルタを使用することができる。この場合、動き補償ユニット72は、受信されたシンタックス要素からビデオエンコーダ20によって使用された補間フィルタを決定し、予測ブロックを生成するためにその補間フィルタを使用することができる。
[0141]逆量子化ユニット76は、ビットストリーム内で供給され、エントロピー復号ユニット70によって復号された量子化変換係数を逆量子化(inverse quantize)、すなわち逆量子化(de-quantize)する。逆量子化プロセスは、量子化の程度を決定し、同様に、適用されるべき逆量子化の程度を決定するために、ビデオスライス内のビデオブロックごとにビデオデコーダ30によって計算された量子化パラメータQPYの使用を含む場合がある。
[0142]逆変換ユニット78は、ピクセル領域において残差ブロックを生成するために、逆変換、たとえば、逆DCT、逆整数変換、または概念的に同様の逆変換プロセスを変換係数に適用する。
[0143]動き補償ユニット72が、動きベクトルと他のシンタックス要素とに基づいて現在ビデオブロック用の予測ブロックを生成した後、ビデオデコーダ30は、逆変換ユニット78からの残差ブロックを動き補償ユニット72によって生成された対応する予測ブロックと加算することによって、復号ビデオブロックを形成する。加算器80は、この加算演算を実行する1つまたは複数の構成要素を表す。必要な場合、ブロッキネスアーティファクトを除去するために、復号ブロックをフィルタ処理するデブロッキングフィルタが適用される場合もある。ピクセル遷移を平滑化するために、または場合によってはビデオ品質を改善するために、他のループフィルタが(コーディングループ中またはコーディングループ後のいずれかで)使用される場合もある。所与のフレームまたはピクチャ内の復号ビデオブロックは、次いで、その後の動き補償のために使用される参照ピクチャを記憶する参照ピクチャメモリ82に記憶される。参照ピクチャメモリ82はまた、図1のディスプレイデバイス32などのディスプレイデバイス上での後の提示のために、復号ビデオを記憶する。
[0144]ビデオデコーダ30およびその様々な構成要素は、時間的にスケーラブルなビデオビットストリームをサポートしながら、プログレッシブ精緻化セグメントを復号するために、本開示の技法を実装することができる。一例として、エントロピー復号ユニット70は、ビデオデコーダ30に関して下記に記載される1つまたは複数の機能を実装することができる。記載されたように、ビデオデコーダ30は、ビデオエンコーダによってシグナリングされた符号化ビデオビットストリームを受信することができる。様々な例では、ビデオデコーダ30は、時間スケーラビリティに従ってネットワーク要素68が抽出することができる、完全な符号化ビデオビットストリームまたはサブビットストリームを受信することができる。より詳細には、時間的にスケーリングされたサブビットストリームは、完全な符号化ビデオビットストリームに含まれる符号化ピクチャのセットから抽出された符号化ピクチャのサブセットを含む場合がある。時間スケーラビリティに従ってネットワーク要素68によって抽出されるピクチャのサブセットは、本明細書では「時間サブセット」と呼ばれる場合がある。いくつかの例では、ネットワーク要素68によって抽出された時間サブセットは、完全な符号化ビデオビットストリーム内の符号化ピクチャの真のサブセットを表すことができる。言い換えれば、これらの例によれば、完全な符号化ビデオビットストリームは、時間サブセットのあらゆる符号化ピクチャと、その時間サブセットに含まれない少なくとも1つの追加の符号化ピクチャとを含む場合がある。
[0145]加えて、HEVC WD9、AVC、または他のビデオコーディング規格に従って、ビデオデコーダ30は、受信された符号化ビデオビットストリームに含まれるメタデータを復号するように、構成される場合があるか、または場合によっては動作可能であり得る。様々な例では、HEVC WD9に従って、ビデオデコーダ30は、符号化ビットストリーム内でシグナリングされた符号化ピクチャを復号するために必要ではないメタデータを復号する可能性がある。様々な例では、ビデオデコーダ30は、ピクチャ出力タイミング、および1つまたは複数のピクチャに関連する表示情報のうちの1つまたは複数を決定するために、メタデータを復号することができる。これらおよび他の例では、ビデオデコーダ30は、損失情報を検出し、1つまたは複数の検出された損失を隠匿および/または修正するために、メタデータを復号することができる。
[0146]いくつかの例では、たとえば、HEVC WD9に従って、ビデオデコーダ30は、受信された符号化ビデオビットストリーム内でシグナリングされた特定のアクセスユニット(AU)内の1つまたは複数の補足エンハンスメント情報(SEI)ネットワークアブストラクションレイヤ(NAL)ユニットを復号することができる。加えて、ビデオデコーダ30は、受信された符号化ビデオビットストリーム内でシグナリングされた単一のSEI NALユニットに含まれる1つまたは複数のSEIメッセージを復号することができる。上記の表1は、HEVC WD9に従って、ビデオデコーダ30が受信し、(たとえば、エントロピー復号ユニット70を使用して)復号することができる様々なSEIメッセージの例を列挙し、列挙されたSEIメッセージの対応する使用法/目的を列挙する。
[0147]加えて、ビデオデコーダ30は、受信された符号化ビデオビットストリーム内でシグナリングされたプログレッシブ精緻化セグメントを復号するように、構成される場合があるか、または場合によっては動作可能であり得る。図1に関して記載されたように、プログレッシブ精緻化セグメントは、HEVC WD9に従って、復号順序で一連の符号化ピクチャを含む場合がある。いくつかの例では、プログレッシブ精緻化セグメント内の一連の符号化ピクチャは、出力順序に従って配列される場合もある。様々なシナリオでは、プログレッシブ精緻化セグメントの各符号化ピクチャは、ベースピクチャ(たとえば、復号順序で開始境界の直前にくる符号化ピクチャ)よりも品質の精緻化を表すことができる。1つのそのようなシナリオでは、プログレッシブ精緻化セグメントの各符号化ピクチャは、復号順序でプログレッシブ精緻化セグメントの直前にくる符号化ピクチャと比較して、増分し累積する品質の精緻化を表すことができる。
[0148]ビデオデコーダ30は、エントロピー復号ユニット70によって提供される1つまたは複数の機能を実装することなどによって、プログレッシブ精緻化セグメント開始SEIメッセージを復号することができる。復号されたプログレッシブ精緻化セグメント開始SEIメッセージに基づいて、ビデオデコーダ30は、プログレッシブ精緻化セグメントの開始境界を検出することができる。上記のシンタックス表1に示されたように、ビデオデコーダ30は、HEVC WD9に従って、シグナリングされたプログレッシブ精緻化セグメント開始SEIメッセージ内のprogressive_refinement_idシンタックス要素とnum_refinement_steps_minus1シンタックス要素とを復号することができる。HEVC WD9に従って、ビデオデコーダ30は、1つまたは複数の条件が満足されるまで、プログレッシブ精緻化セグメントが続く(たとえば、符号化ビットストリーム内の各々の次の符号化ピクチャが単独で先行する符号化ピクチャを越える品質の精緻化である)と決定することができる。たとえば、ビデオデコーダ30は、以下の条件のうちの1つが満足されるまで、プログレッシブ精緻化セグメントが続くと決定することができる。
− ビデオデコーダ30が新しいコード化ビデオシーケンスの開始を検出する。
− ビデオデコーダ30が符号化ビデオビットストリームの終了を検出する。
− シグナリングされたnum_refinement_steps_minus1シンタックス要素の値がゼロよりも大きく、復号順序で次のスライスの(「pic_order_cnt_lsb」によって示された)POC値の最下位ビットが以下の式の結果に等しいと、ビデオデコーダ30が決定する:(currPicOrderCntLsb+num_refinement_steps_minus1+1)%MaxPicOrderCntLsb、ここで、currPicOrderCntLsbはSEIメッセージを含んでいるアクセスユニット内のピクチャのpic_order_cnt_lsbの値である。「%」演算子は、整数除算演算の余りの値をもたらすモジュロ演算を示す。
− シグナリングされたnum_refinement_steps_minus1の値がゼロに等しく、現在のプログレッシブ精緻化セグメント開始SEIメッセージ内のprogressive_refinement_id値と同じprogressive_refinement_id値を有するシグナリングされたプログレッシブ精緻化セグメント終了SEIメッセージが復号されたと、ビデオデコーダ30が決定する。
[0149]加えて、ビデオデコーダ30は、プログレッシブ精緻化セグメント開始SEIメッセージを含むシグナリングされたSEI NALユニットが、ゼロに等しい値を有する「nuh_reserved_zero_6bits」シンタックス要素を含むとき、シグナリングされたSEI NALユニットが、復号順序で、現在AU内の最初のVCL NALユニットに先行すると決定することができる。プログレッシブ精緻化セグメント開始SEIメッセージを復号する際に、ビデオデコーダ30は、progressive_refinement_idシンタックス要素の値が、0で始まり、(2^32−2)で終わり、両端値を含む数値範囲内に入ると決定することができる。
[0150]たとえば、progressive_refinement_idシンタックス要素が、両端値を含む0から255および両端値を含む512から(2^31−1)の範囲内の値を有するとビデオデコーダ30が決定した場合、ビデオデコーダ30は、プログレッシブ精緻化セグメントに関連する特定のプログレッシブ精緻化動作を識別する、検出された値に使用することができる。言い換えれば、上述された範囲内でprogressive_refinement_idシンタックス要素に割り当てられた任意の値は、HEVC WD9でサポートされる特定のプログレッシブ精緻化動作に関連付けられる場合がある。次に、progressive_refinement_idシンタックス要素が上述された範囲の1つの中の値を有する場合、ビデオデコーダ30は、progressive_refinement_idシンタックス要素の値によって識別された特定のプログレッシブ精緻化動作を使用して、プログレッシブ精緻化セグメントの各符号化ピクチャを復号することができる。
[0151]一方、両端値を含む256から511および両端値を含む2^31から(2^32−2)の範囲内に入るprogressive_refinement_idシンタックス要素の値は、ITU−Tおよび/またはISO/IECが将来使用するために確保される。progressive_refinement_idシンタックス要素が上述された確保された範囲の1つの中の値に等しいことをビデオデコーダ30が検出した場合、ビデオデコーダ30は、progressive_refinement_idシンタックス要素を無視することができる。特に、このシンタックス要素を無視するために、ビデオデコーダ30は、受信された符号化ビデオビットストリームからprogressive_refinement_idシンタックス要素を除去し、progressive_refinement_idシンタックス要素を無視することができる。
[0152]記載されたように、ビデオデコーダ30および/またはその構成要素は、HEVC WD9などに従って、符号化ビデオビットストリームの時間スケーラビリティをサポートするように構成される場合がある。たとえば、ビデオデコーダ30は、ネットワーク要素68が完全な符号化ビデオビットストリームから抽出し、ビデオデコーダ30に通信したサブビットストリームを受信することができる。この例では、ネットワーク要素68は、完全な符号化ビデオビットストリームに含まれる符号化ピクチャの完全なセットから符号化ピクチャの時間サブセットを抽出し、サブビットストリームの一部として時間サブセットをビデオデコーダ30に供給することができる。たとえば、時間サブセットは、完全な符号化ビデオビットストリームに含まれる符号化ピクチャの完全なセットの真のサブセットを表すことができる。時間サブセットが符号化ピクチャの完全なセットの真のサブセットを表すシナリオでは、完全な符号化ビデオビットストリームは、時間サブセットのあらゆる符号化ピクチャ用のデータと、時間サブセットに含まれない少なくとも1つの追加の符号化ピクチャ用のデータとを含む場合がある。
[0153]時間スケーラビリティに従って様々な時間ピクチャレートをサポートするために、ビデオデコーダ30は、ネットワーク要素68が完全な符号化ビデオビットストリームから抽出することができる様々なサブビットストリームなどの、様々なピクチャレートのサブビットストリームを受信し復号するように構成される場合がある。より詳細には、様々なピクチャカウントの時間サブセットを含む様々なサブビットストリームは、様々なピクチャレートを表すことができる。時間スケーラビリティをサポートするために、ビデオデコーダ30は、ピクチャレートにかかわらず、単独で復号可能なビットストリームとして任意のサブビットストリームを復号することができる。言い換えれば、ビデオデコーダ30は、完全な符号化ビデオビットストリームに含まれるが、特定のサブビットストリームから除外される情報などの、いかなる追加のデータもなしに、符号化ピクチャの特定の時間サブセットを復号することができる。
[0154]ビデオデコーダ30がビデオ符号化デバイスによってシグナリングされた完全な符号化ビデオビットストリームを受信する例では、完全な符号化ビデオビットストリームは、1つまたは複数の時間サブレイヤを含む場合がある。加えて、ビデオデコーダ30によって受信および/または復号された各NALユニットは、対応する「TemporalId」値によって示された特定のサブレイヤに属する場合がある。より詳細には、ビデオデコーダ30は、NALユニットのTemporalIdの値を、シグナリングされた対応する「temporal_id_plus1」シンタックス要素の値マイナス1に等しいように決定することができる。加えて、ビデオデコーダ30は、単一のピクチャのすべてのシグナリングされたVCL NALユニットが単一のサブレイヤ(すなわち、同じサブレイヤ)に属すると決定することができる。言い換えれば、ビデオデコーダ30は、符号化ピクチャ自体が符号化ピクチャに関連付けられたNALユニットに対応する特定のサブレイヤに属するとの決定に基づいて、符号化ピクチャを復号することができる。
[0155]たとえば、HEVC WD9に従って、ビデオデコーダ30は、ビットストリームの下位サブレイヤの復号プロセスがビットストリームの上位サブレイヤ内のデータに依存しないように、シグナリングされた符号化ビデオビットストリームを復号することができる。ネットワーク要素68は、完全なビットストリームから、特定の値よりも高いTemporalId値に関連付けられたすべてのNALユニットを除去することによって、完全なビットストリームからサブビットストリームを生成することができる。ビデオ符号化デバイスは、HEVC WD9に対するビットストリーム準拠(たとえば、バッファ制限)についてのすべての条件が、完全なビットストリームに関して、したがって、ネットワーク要素68が完全なビットストリームから抽出することができるサブビットストリームごとに、満たされることを保証することができる。次に、ビデオデコーダ30は、復号プロセスに対するいかなる変更もなしに、ならびにハードウェア基盤および/またはソフトウェア基盤に対するいかなる変更も必要とせずに、いかなるシグナリングされたサブビットストリームも復号することができる。言い換えれば、ビデオデコーダ30は、完全な符号化ビデオビットストリームを復号することに対応する方式で、HEVC WD9に従って時間スケーラビリティをサポートしながら、シグナリングされたサブビットストリームを復号することができる。
[0156]記載されたように、完全な符号化ビデオビットストリームを時間的にスケーリングする際に、ネットワーク要素68は、完全な符号化ビデオビットストリームから符号化ピクチャの時間サブセットを抽出することができる。より詳細には、時間サブセットは、完全な符号化ビデオビットストリーム内でシグナリングされた符号化ピクチャの真のサブセットであり得るし、したがって、ネットワーク要素68は、サブビットストリームを生成するために、完全な符号化ビットストリームから1つまたは複数の符号化ピクチャを除去することができる。例では、ネットワーク要素68は、プログレッシブ精緻化セグメントに含まれる1つまたは複数の符号化ピクチャを除去することができる。ビデオデコーダ30は、潜在的に、num_refinement_steps_minus1シンタックス要素の正しくない値を受信する可能性がある。num_refinement_steps_minus1シンタックス要素の正しくない値を復号し、潜在的に適用することによって、ビデオデコーダ30は、時間的にスケーリングされたプログレッシブ精緻化セグメントの終了境界の後に位置するピクチャを復号するために、プログレッシブ精緻化動作を適用する可能性がある。
[0157]符号化ビデオビットストリーム内でプログレッシブ精緻化セグメントの終端の後に位置するピクチャの誤った復号を軽減または除去するために、ビデオデコーダ30および/またはエントロピー復号ユニット70などのその構成要素は、本開示の1つまたは複数の技法を実装することができる。本技法のいくつかの実装形態によれば、ビデオデコーダ30は、プログレッシブ精緻化セグメントの最後のピクチャのピクチャ順序カウント(POC)値を示す情報を取得するために、プログレッシブ精緻化セグメント開始SEIメッセージを復号することができる。POC値は、符号化ビデオビットストリーム内でシグナリングされる特定の符号化ピクチャに関連付けられた固定値を表すことができ、したがって、符号化ビデオビットストリームのいかなる時間スケーリングにもかかわらず、ビデオデコーダ30への特定の符号化ピクチャを識別することができる。
[0158]たとえば、プログレッシブ精緻化セグメントの最後の符号化ピクチャのPOC値を導出することによって、ビデオデコーダ30は、プログレッシブ精緻化セグメントの最後の符号化ピクチャをより正確に識別することができる。より詳細には、ビデオデコーダ30は、ビデオデコーダ30が時間的にスケーリングされたプログレッシブ精緻化セグメントを受信したかどうかにかかわらず、プログレッシブ精緻化セグメントの最後の符号化ピクチャを識別することができる。ビデオデコーダ30が時間的にスケーリングされたビデオデコーダ30のプログレッシブ精緻化セグメントを受信するシナリオでは、ビデオデコーダ30は、プログレッシブ精緻化セグメントが時間的にスケーリングされた範囲にかかわらず、プログレッシブ精緻化セグメントの最後のピクチャをより正確に識別することができる。言い換えれば、ビデオデコーダ30は、受信された符号化ビデオビットストリームのピクチャレートにかかわらず、プログレッシブ精緻化セグメントの最後の符号化ピクチャ(すなわち、終了境界)を識別することができる。
[0159]本明細書に記載された技法の様々な実装形態によれば、ビデオデコーダ30は、プログレッシブ精緻化セグメントの最後の符号化ピクチャに関連付けられたPOC値を決定するためにビデオデコーダ30が使用することができる情報を取得するために、プログレッシブ精緻化セグメント開始SEIメッセージを復号することができる。一実装形態では、ビデオデコーダ30は、「デルタPOC」値を示すデータを取得するために、プログレッシブ精緻化セグメント開始SEIメッセージを復号することができる。より詳細には、デルタPOC値は、ベースピクチャのPOC値とプログレッシブ精緻化セグメントの最後の符号化ピクチャのPOC値との間の差分を示すことができる。
[0160]次に、ビデオデコーダ30は、対応するプログレッシブ精緻化セグメントの開始境界(たとえば、最初の符号化ピクチャ)を検出するために、プログレッシブ精緻化セグメント開始SEIメッセージを使用することができる。加えて、ビデオデコーダ30は、ベースピクチャ(たとえば、復号順序で開始境界の直前にくる符号化ピクチャ)のPOC値にデルタPOC値を加えることによって、プログレッシブ精緻化セグメントの終了境界(たとえば、最後の符号化ピクチャ)を決定することができる。たとえば、ベースピクチャのPOC値にデルタPOC値を加えることによって、ビデオデコーダ30は、プログレッシブ精緻化セグメントの終了境界のPOC値を導出することができる。
[0161]記載されたように、特定の符号化ピクチャのPOC値は、符号化ピクチャに関連付けられた固定値であり得るし、復号順序における符号化ピクチャの位置を示すことができる。プログレッシブ精緻化セグメントの終了境界のPOC値をそれから導出するデータを取得することによって、ビデオデコーダ30は、ネットワーク要素68がプログレッシブ精緻化セグメントを時間的にスケーリングするかどうかにかかわらず、またネットワーク要素68がプログレッシブ精緻化セグメントを時間的にスケーリングする大きさによって、プログレッシブ精緻化セグメントの終了境界を決定することができる。ビデオデコーダ30は、上記のシンタックス表3に示された「pic_order_cnt_delta」シンタックス要素からデルタPOC値を取得するために、プログレッシブ精緻化セグメント開始SEIメッセージを復号することができる。このようにして、ビデオデコーダ30は、符号化ビデオビットストリームの時間スケーラビリティをサポートしながら、対応するプログレッシブ精緻化動作を使用してプログレッシブ精緻化シーケンスを復号するために、本開示の1つまたは複数の技法を実装することができる。
[0162]プログレッシブ精緻化セグメントの終了境界のPOC値に関連付けられたデータを取得するために、ビデオデコーダ30がプログレッシブ精緻化セグメント開始SEIメッセージを復号するいくつかの実装形態によれば、ビデオデコーダ30は、復号されたプログレッシブ精緻化セグメント開始SEIメッセージから最下位ビット(LSB)のデルタを取得することができる。これらの実装形態では、ビデオデコーダ30は、ベースピクチャのPOC値のLSB値とプログレッシブ精緻化セグメントの最後の符号化ピクチャのPOC値のLSB値との間の差分を決定するために、LSBのデルタを使用することができる。
[0163]次に、ビデオデコーダ30は、プログレッシブ精緻化セグメントの終了境界のPOC値を導出するために、LSBのデルタを使用することができる。より詳細には、ビデオデコーダ30は、ベースピクチャのPOC値のLSBにLSBのデルタを加えることができる。一例では、ビデオデコーダ30は、num_refinement_steps_minus1シンタックス要素の代わりに、LSBのデルタを示すシンタックス要素を取得するために、プログレッシブ精緻化セグメント開始SEIメッセージを復号することができる。
[0164]LSBのデルタを示すシンタックス要素を取得することによって、ビデオデコーダ30は、ネットワーク要素68がプログレッシブ精緻化セグメントを時間的にスケーリングするかどうかにかかわらず、またネットワーク要素68がプログレッシブ精緻化セグメントを時間的にスケーリングする大きさによって、プログレッシブ精緻化セグメントの終了境界を決定することができる。たとえば、ビデオデコーダ30は、プログレッシブ精緻化セグメントの終了境界のPOC値を導出するために、復号されたシンタックス要素の値を適用することができる。ビデオデコーダ30は、プログレッシブ精緻化セグメントを復号するときに、終了境界に関連付けられた固定値を使用して終了境界を識別するために、導出されたPOC値を使用することができる。このようにして、ビデオデコーダ30は、符号化ビデオビットストリームの時間スケーラビリティをサポートしながら、対応するプログレッシブ精緻化動作を使用してプログレッシブ精緻化シーケンスを復号するために、本開示の1つまたは複数の技法を実装することができる。
[0165]本明細書に記載された技法の他の実装形態によれば、ビデオデコーダ30は、1)ベースピクチャのTemporalId値以下のTemporalId値に関連付けられた、2)ベースピクチャのプログレッシブな品質の精緻化を表す、連続する符号化ピクチャの数を示すデータを取得するために、プログレッシブ精緻化セグメント開始SEIメッセージを復号することができる。より詳細には、減少するTemporalId値は、復号順序に従った符号化ビデオビットストリーム内の前進を示すことができる。たとえば、プログレッシブ精緻化セグメントの最初の符号化ピクチャは、ベースピクチャのTemporalId値よりも小さいTemporalId値を有することができる。次に、プログレッシブ精緻化セグメントの2番目の符号化ピクチャは、プログレッシブ精緻化セグメントの最初の符号化ピクチャのTemporalId値よりも小さいTemporalId値を有することができる、以下同様。
[0166]ベースピクチャは、現在アクセスユニットに含まれる符号化ピクチャであり得るし、ベースピクチャは、復号順序でプログレッシブ精緻化セグメントの最初の符号化ピクチャの直前にくる場合がある。いくつかの例では、ベースピクチャは、出力順序でプログレッシブ精緻化セグメントの最初の符号化ピクチャの直前にくる場合もある。いくつかのそのような例では、プログレッシブ精緻化セグメントは、復号順序と出力順序の両方で連続する一連の符号化ピクチャを含む場合がある。
[0167]本明細書に記載された技法のこれらの実装形態によれば、ビデオデコーダ30は、ベースピクチャのTemporalId値よりも小さいTemporalId値を有し、ならびにベースピクチャのプログレッシブな品質の精緻化を表す、連続する符号化ピクチャの数を示すデータを取得するために、プログレッシブ精緻化セグメント開始SEIメッセージを復号することができる。たとえば、ビデオデコーダ30によって取得された情報は、プログレッシブ精緻化セグメントを作り上げるシーケンス内の符号化ピクチャの数を示すことができる。これらの実装形態では、ビデオデコーダ30は、ネットワーク要素68から、上記に列挙された条件を満足する、連続する符号化ピクチャの数を受信することができる。より詳細には、ネットワーク要素68は、ネットワーク要素68が完全な符号化ビデオビットストリームから抽出した符号化ピクチャの時間サブセットごとに個別に条件を満足する、連続する符号化ピクチャの数を決定することができる。次に、ネットワーク要素68は、上記に列挙された条件を満足する、連続する符号化ピクチャの数をビデオデコーダ30に通信することができる。
[0168]上記の条件を満足する、連続する符号化ピクチャの受信された数を適用することによって、ビデオデコーダ30は、ネットワーク要素68がプログレッシブ精緻化セグメントを時間的にスケーリングするシナリオにおいても、プログレッシブ精緻化セグメントの長さをより正確に決定することができる。次に、ビデオデコーダ30は、符号化ビデオビットストリームがサブビットストリームを表す(たとえば、符号化ピクチャの時間サブセットを表す)か否かにかかわらず、符号化ビデオビットストリームの一部として、条件を満足する、連続する符号化ピクチャの数を取得することができる。様々な例では、ビデオデコーダ30は、上記の条件を満足する、連続する符号化ピクチャの決定された数を示すシンタックス要素を取得するために、プログレッシブ精緻化セグメント開始SEIメッセージを生成することができる。たとえば、ビデオデコーダ30は、上記のシンタックス表1に示されたnum_refinement_steps_minus1シンタックス要素の代わりに、決定された数を示すシンタックス要素を取得するために、プログレッシブ精緻化セグメント開始SEIメッセージを復号することができる。
[0169]ビデオデコーダ30は、ベースピクチャのTemporalId値よりも小さいTemporalId値を有し、ベースピクチャのプログレッシブな品質の精緻化を表す、連続する符号化ピクチャの数を取得することによって、プログレッシブ精緻化セグメントの長さをより正確に決定することができる。加えて、符号化されたプログレッシブ精緻化セグメント開始SEIメッセージを復号することの一部として、上述された情報を取得することによって、ビデオデコーダ30は、ネットワーク要素68がプログレッシブ精緻化セグメントを時間的にスケーリングするかどうかにかかわらず、プログレッシブ精緻化セグメントの長さを正確に決定することができる。たとえば、ビデオデコーダ30は、ネットワーク要素68がプログレッシブ精緻化セグメントを時間的にスケーリングするかどうかにかかわらず、またネットワーク要素68がプログレッシブ精緻化セグメントを時間的にスケーリングする大きさによって、プログレッシブ精緻化セグメントの長さを決定するために、プログレッシブ精緻化セグメント開始SEIメッセージから取得されたシンタックス要素を利用することができる。このようにして、ビデオデコーダ30は、1)ベースピクチャのTemporalId値よりも小さいTemporalId値を有し、2)ベースピクチャのプログレッシブな品質の精緻化を表す、連続する符号化ピクチャの数を決定するために、本開示の1つまたは複数の技法を実装することができ、それにより、ビデオ復号デバイスが時間的にスケーラブルなビデオビットストリームをサポートしながら、プログレッシブ精緻化セグメントを復号することを可能にする。
[0170]図3に関して記載されたように、ビデオデコーダ30および/またはその構成要素は、ビデオデータを復号する方法を実行することができ、その方法は、符号化ビットストリーム内のプログレッシブ精緻化セグメント内の複数のピクチャのうちの最後のピクチャのピクチャ順序カウント(POC)値を示す情報を受信することと、受信された情報に基づいてプログレッシブ精緻化動作に従ってプログレッシブ精緻化セグメント内のピクチャのうちの少なくともいくつかを復号することとを含む。ビデオデコーダ30に関して上述された方法のいくつかの例示的な実装形態では、受信された情報は、プログレッシブ精緻化セグメントの直前にくるピクチャのPOC値と、プログレッシブ精緻化セグメントの最後のピクチャのPOC値との間の差分を示すデルタPOC値を含む。ビデオデコーダ30に関して上述された方法のいくつかの例示的な実装形態によれば、受信された情報は、プログレッシブ精緻化セグメントの直前にくるピクチャのPOC値のLSBと、プログレッシブ精緻化セグメントの最後のピクチャのPOC値のLSBとの間の差分を示す最下位ビット(LSB)のデルタを含む。ビデオデコーダ30に関して上述された方法の一例では、受信された情報は、プログレッシブ精緻化セグメントの最後のピクチャのPOC値を含む。
[0171]ビデオデコーダ30に関して上述された方法のいくつかの実装形態によれば、情報を受信することは、符号化ビットストリームに含まれる補足エンハンスメント情報(SEI)メッセージ内の情報を受信することを備える。1つのそのような実装形態では、SEIメッセージは、プログレッシブ精緻化セグメントの開始境界を示すプログレッシブ精緻化セグメント開始SEIメッセージを備える。ビデオデコーダ30に関して上述された方法のいくつかの実装形態によれば、方法は、符号化ピクチャが符号化ビットストリーム内でプログレッシブ精緻化セグメントの直前にくると決定することをさらに含む場合がある。1つのそのような実装形態では、プログレッシブ精緻化シーケンスの直前にくる符号化ピクチャと比較して、プログレッシブ精緻化シーケンス内の複数のピクチャの各々は、品質の精緻化を定義する。
[0172]ビデオデコーダ30に関して上述された方法のいくつかの例では、方法は、受信された情報を使用してプログレッシブ精緻化セグメント内の複数のピクチャのうちの最後のピクチャを検出することと、プログレッシブ精緻化動作に従った復号を停止することとをさらに備える場合がある。ビデオデコーダ30に関して上述された方法のいくつかの実装形態によれば、受信された情報に基づいてプログレッシブ精緻化動作に従ってプログレッシブ精緻化セグメント内のピクチャのうちの少なくともいくつかを復号することは、プログレッシブ精緻化セグメント内の最後のピクチャを除いて、プログレッシブ精緻化セグメント内の各ピクチャにプログレッシブ精緻化動作を適用することを備える場合がある。
[0173]様々な例では、ビデオデコーダ30は、デスクトップコンピュータ、ノートブック(すなわち、ラップトップ)コンピュータ、タブレットコンピュータ、セットトップボックス、いわゆる「スマート」フォンなどの電話ハンドセット、いわゆる「スマート」パッド、テレビジョン、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲームコンソール、ビデオストリーミングデバイスなどの、ビデオデータをコーディングするためのデバイスに含まれる場合がある。例では、ビデオデータをコーディングするためのそのようなデバイスは、集積回路、マイクロプロセッサ、および、ビデオデコーダ30を含む通信デバイスのうちの1つまたは複数を含む場合がある。
[0174]図4は、本開示の1つまたは複数の態様による、例示的なプログレッシブ精緻化セグメント94と対応するベースピクチャ92とを示す概念図である。より詳細には、図4は、ベースピクチャ92とプログレッシブ精緻化セグメント94とを含むピクチャシーケンス90を示す。次に、プログレッシブ精緻化セグメント94は、プログレッシブ精緻化ピクチャ94A〜94Nを含む。プログレッシブ精緻化ピクチャ94A〜94Nの各々は、ベースピクチャ92の品質の精緻化を表すことができる。様々な例では、品質の精緻化は、本開示によれば、コード化ピクチャと元のピクチャとの間のひずみの量をプログレッシブに低減する観点からの精緻化を表すことができる。たとえば、プログレッシブ精緻化ピクチャ94A〜94Nの各々は、ベースピクチャ92が含まない残差データを含む場合がある。加えて、プログレッシブ精緻化ピクチャ94A〜94Nの各々は、ベースピクチャ92からのいかなる動きベースの予測も表さずに、ベースピクチャ92の品質の精緻化を表すことができる。
[0175]より詳細には、プログレッシブ精緻化セグメント94は、連続する復号順序で一連の符号化ピクチャを表すことができる。いくつかの例では、プログレッシブ精緻化セグメント94に含まれる一連の符号化ピクチャは、連続する出力順序にある場合もある。加えて、プログレッシブ精緻化セグメント94は、ピクチャごとの増分によって定義された、ベースピクチャ92に関する連続的な品質の精緻化を表すことができる。たとえば、プログレッシブ精緻化セグメント94の最初のピクチャであるプログレッシブ精緻化ピクチャ94Aは、あらかじめ定義された増分だけベースピクチャ82を越える品質の精緻化を表すことができる。次に、プログレッシブ精緻化セグメント94の2番目のピクチャであるプログレッシブ精緻化ピクチャ94Bは、あらかじめ定義された増分だけプログレッシブ精緻化ピクチャ94Aを越える品質の精緻化を表すことができる、以下同様。このようにして、プログレッシブ精緻化セグメント94は、ベースピクチャ92を越える反復的な品質の精緻化を表すことができ、最後の符号化ピクチャ(プログレッシブ精緻化ピクチャ94N)は、あらかじめ定義された精緻化の増分のすべての反復にわたって累積された品質の精緻化を表す。
[0176]たとえば、ビデオデコーダ30は、復号順序で前のピクチャにプログレッシブ精緻化動作を適用することによって、プログレッシブ精緻化セグメント94を復号することができる。より詳細には、ビデオデコーダ30は、ビデオエンコーダ20によってシグナリングされた符号化ビデオビットストリームの一部として、プログレッシブ精緻化セグメント開始SEIメッセージを受信することができる。加えて、ビデオデコーダ30は、progressive_refinement_idシンタックス要素の値を取得するために、受信されたプログレッシブ精緻化セグメント開始SEIメッセージを復号することができる。次に、ビデオデコーダ30は、それを用いてプログレッシブ精緻化セグメント94を復号する特定のプログレッシブ精緻化動作を決定するために、取得されたprogressive_refinement_idの値を使用することができる。ビデオデコーダ30は、ベースピクチャ92、およびプログレッシブ精緻化ピクチャ94N(すなわち、最後のピクチャ)を除くプログレッシブ精緻化セグメント94の各ピクチャに、決定されたプログレッシブ精緻化動作を適用することができる。より詳細には、ビデオデコーダ30は、いかなる動き予測も適用せずに、ベースピクチャ92、および最後から2番目のピクチャにかけてのプログレッシブ精緻化セグメント94の各ピクチャに、プログレッシブ精緻化動作を適用することができる。
[0177]加えて、ビデオデコーダ30は、符号化ビデオビットストリームの時間スケーラビリティをサポートしながら、プログレッシブ精緻化セグメント94を復号するために、本開示の1つまたは複数の技法を実装することができる。たとえば、ビデオデコーダ30は、プログレッシブ精緻化セグメント94の最後のピクチャ(たとえば、プログレッシブ精緻化ピクチャ94N)のピクチャ順序カウント(POC)値を示す情報を取得するために、プログレッシブ精緻化セグメント開始SEIメッセージを復号することができる。プログレッシブ精緻化セグメント開始SEIメッセージは、符号化ビデオビットストリーム内で、ベースピクチャ92に関連巣付けられた符号化データの直後に位置する場合がある。特定のピクチャのPOC値は、低減されたピクチャレートを実現するために符号化ビデオビットストリームが時間的にスケーリングされたかどうかにかかわらず、符号化ビデオビットストリーム内の特定のピクチャの位置を示すことができる。たとえば、ビデオデコーダ30は、受信された符号化ビデオビットストリームの他の位置に関連する情報に依存することなく、ピクチャの割り当てられたPOC値によって符号化ピクチャを識別することができる。
[0178]いくつかの例では、ビデオデコーダ30は、プログレッシブ精緻化ピクチャ94NのPOC値を示す情報を取得するために、プログレッシブ精緻化セグメント94に関連付けられたプログレッシブ精緻化セグメント開始SEIメッセージを復号することができる。たとえば、ビデオデコーダ30は、SEIメッセージに含まれるシンタックス要素の値を取得するために、プログレッシブ精緻化セグメント開始SEIメッセージを復号することができる。より詳細には、この事例では、ビデオデコーダ30は、復号されたシンタックス要素から、プログレッシブ精緻化ピクチャ94Nに関連付けられたPOC値を取得することができる。
[0179]次に、ビデオデコーダ30が対応するシンタックス要素によって識別されたPOC値を検出するまで、ビデオデコーダ30は、progressive_refinement_idシンタックス要素の値によって識別されたプログレッシブ精緻化動作を反復的に適用することによって、プログレッシブ精緻化セグメント94を復号することができる。プログレッシブ精緻化セグメント開始SEIメッセージの対応するシンタックス要素によって識別されたPOC値を検出すると、ビデオデコーダ30は、ビデオデコーダ30が(図4の例では、プログレッシブ精緻化ピクチャ94Nによって示された)プログレッシブ精緻化セグメント94の終了境界に到達したと決定することができる。ビデオデコーダ30がプログレッシブ精緻化セグメント94の終了境界に到達したとの決定に基づいて、ビデオデコーダ30は、progressive_refinement_idシンタックス要素によって示された精緻化動作のみに基づくビットストリームの符号化ピクチャの復号を停止することができる。
[0180]本開示の技法の他の実装形態によれば、ビデオデコーダ30は、デルタPOCシンタックス要素を取得するために、プログレッシブ精緻化セグメント開始SEIメッセージを復号することができる。ビデオデコーダ30は、プログレッシブ精緻化セグメント94の終了境界を示すプログレッシブ精緻化ピクチャ94Nの終了境界のPOC値を決定するために、デルタPOCシンタックス要素の値を使用することができる。より詳細には、ビデオデコーダ30は、プログレッシブ精緻化ピクチャ94NのPOC値を決定するために、ベースピクチャ92のPOC値にデルタPOCの値を加えることができる。次に、ビデオデコーダ30は、復号プロセスにおいて、ビデオデコーダ30がプログレッシブ精緻化セグメント94の終了境界にいつ到達したかを検出するために、プログレッシブ精緻化ピクチャ94Nの決定されたPOC値を使用することができる。デルタPOC値を使用して、ビデオデコーダ30がプログレッシブ精緻化セグメント94の終了境界に到達したと決定したことに基づいて、ビデオデコーダ30は、プログレッシブ精緻化による復号を停止することができる。
[0181]本明細書に記載された技法の他の例示的な実装形態では、ビデオデコーダ30は、最下位ビット(LSB)のデルタを示すシンタックス要素を取得するために、プログレッシブ精緻化セグメント開始SEIメッセージを復号することができる。ビデオデコーダ30は、符号化ビデオビットストリームに関する復号プロセス中に、プログレッシブ精緻化ピクチャ94Nを検出するために、LSB値のデルタを使用することができる。より詳細には、ビデオデコーダ30は、プログレッシブ精緻化セグメント94の終了境界を形成するプログレッシブ精緻化ピクチャ94NのPOC値のLSBを導出するために、ベースピクチャ92のPOC値のLSBにLSB値のデルタを加えることができる。
[0182]次に、ビデオデコーダ30は、ベースピクチャ92にprogressive_refinement_idシンタックス要素によって識別されたプログレッシブ精緻化動作を適用することのみによって、プログレッシブ精緻化ピクチャ94Aを復号し、ビデオデコーダ30が導出されたLSB値を有するPOC値に関連付けられたピクチャを識別するまで、精緻化動作を適用し続けることによって、復号順序で次のピクチャを復号し続けることができる。一例では、ビデオデコーダ30は、プログレッシブ精緻化セグメント94の直前にくるピクチャに精緻化動作を反復的に適用することによって、プログレッシブ精緻化ピクチャ94A〜94Nの各々を復号することができる。別の例では、ビデオデコーダ30は、ベースピクチャ92にプログレッシブ精緻化動作またはその変形形態を適用することによって、プログレッシブ精緻化ピクチャ94A〜94Nの各々を復号することができる。加えて、導出されたLSBを有するPOC値をもつピクチャを検出すると、ビデオデコーダ30は、符号化ビデオビットストリームの復号プロセスにおいて、ビデオデコーダ30がプログレッシブ精緻化セグメント94の終了境界(すなわち、プログレッシブ精緻化ピクチャ94N)に到達したと決定することができる。デルタPOC値を使用して、ビデオデコーダ30がプログレッシブ精緻化セグメント94の終了境界に到達したと決定したことに基づいて、ビデオデコーダ30は、ビデオデコーダ30がプログレッシブ精緻化セグメントの復号を完了したと決定することができる。
[0183]図5は、本開示の1つまたは複数の態様により、符号化ビデオデータを復号するために、ビデオデコーダ30および/またはその構成要素が実行することができる例示的なプロセス100を示すフローチャートである。プロセス100は、ビデオデコーダ30が符号化ビデオビットストリーム内でシグナリングされた次の符号化ピクチャを識別する(102)ときに始まる場合がある。より詳細には、ビデオデコーダ30は、復号順序に従って、いくつかの例では出力順序に従って、符号化ビデオビットストリーム内でシグナリングされた次の符号化ピクチャを検出することができる。
[0184]加えて、ビデオデコーダ30は、識別された符号化ピクチャが復号順序でプログレッシブ精緻化セグメントの直前にくるかどうかを決定することができる(104)。より詳細には、符号化ピクチャがプログレッシブ精緻化セグメントの直前にくるかどうかを決定することによって、ビデオデコーダ30は、符号化ピクチャがプログレッシブ精緻化セグメント用のベースピクチャを形成したか否かを決定することができる。たとえば、ビデオデコーダ30は、符号化ピクチャをエントロピー復号すること、およびプログレッシブ精緻化セグメント開始SEIメッセージが符号化ビデオビットストリーム内で符号化の直後に位置するかどうかを決定することによって、符号化ピクチャがベースピクチャであるかどうかを決定することができる。ビデオデコーダ30が符号化ピクチャの直後に位置するプログレッシブ精緻化セグメント開始SEIメッセージを検出した場合、ビデオデコーダ30は、符号化ピクチャがプログレッシブ精緻化セグメント用のベースピクチャを形成したと決定することができる。
[0185]直近に復号されたピクチャがプログレッシブ精緻化セグメント用のベースピクチャではないとビデオデコーダ30が決定した場合(104の「いいえ」分岐)、ビデオデコーダ30は、(効果的に102に戻って)符号化ビデオビットストリーム内でシグナリングされた、復号順序で次の符号化ピクチャを識別し、復号プロセスを続行することができる。一方、直近に復号されたピクチャがプログレッシブ精緻化セグメント用のベースピクチャであるとビデオデコーダ30が決定した場合(104の「はい」分岐)、ビデオデコーダ30は、プログレッシブ精緻化セグメントの最後の符号化ピクチャのPOC値を示すデータを検出することができる(106)。
[0186]様々な実装形態では、ビデオデコーダ30は、プログレッシブ精緻化セグメントの最後の符号化ピクチャのPOC値を示すデータを取得するために、プログレッシブ精緻化セグメント開始SEIメッセージを復号することができる。たとえば、ビデオデコーダ30は、プログレッシブ精緻化セグメントの最後の符号化ピクチャのPOC値を示す1つまたは複数のシンタックス要素を取得するために、プログレッシブ精緻化セグメント開始SEIメッセージを復号することができる。様々な例では、ビデオデコーダ30は、直接的または間接的のいずれかで、POC値を決定するためにシンタックス要素を使用することができる。より詳細には、シンタックス要素は、直接ビデオデコーダ30にPOC値を示すことができるか、またはプログレッシブ精緻化セグメント内の最後の符号化ピクチャのPOC値を導出するデータをビデオデコーダ30に供給することができる。一例として、ビデオデコーダ30は、ベースピクチャのPOC値とプログレッシブ精緻化セグメントの最後の符号化ピクチャのPOC値との間の差分を示すデルタPOC値のうちの1つまたは複数を示すシンタックス要素を復号することができる。別の例として、ビデオデコーダ30は、ベースピクチャのPOC値のLSBとプログレッシブ精緻化セグメントの最後の符号化ピクチャのPOC値のLSBとの間の差分を示すLSBのデルタを示すシンタックス要素を復号することができる。
[0187]加えて、ビデオデコーダ30は、プログレッシブ精緻化セグメントに関連付けられたプログレッシブ精緻化動作を決定することができる(108)。より詳細には、ビデオデコーダ30は、progressive_refinement_idシンタックス要素を取得するために、プログレッシブ精緻化セグメント開始SEIメッセージを復号することができる。次に、ビデオデコーダ30は、プログレッシブ精緻化セグメントを復号するために使用されるプログレッシブ精緻化動作を識別するために、progressive_refinement_idシンタックス要素の値を使用することができる。たとえば、ビデオデコーダ30は、progressive_refinement_idシンタックス要素の値に基づいて、ベースピクチャ92に関連する復号されたビデオデータに残差データを追加することによって、プログレッシブ精緻化ピクチャ94A〜94Nのうちの1つまたは複数を復号することができる。
[0188]ビデオデコーダ30は、プログレッシブ精緻化セグメントの最後のピクチャのPOC値を示すデータと、識別されたプログレッシブ精緻化動作とを使用して、プログレッシブ精緻化セグメントを復号することができる(110)。より詳細には、ビデオデコーダ30がプログレッシブ精緻化セグメントの最後の符号化ピクチャに関連付けられたPOC値(またはそのLSB)を検出するまで、ビデオデコーダ30は、ベースピクチャおよび復号順序で後にくる各ピクチャに、識別されたプログレッシブ精緻化動作を反復的に適用することができる。たとえば、プログレッシブ精緻化動作を反復的に適用するためには、ビデオデコーダ30は、セグメントの各々の連続する符号化ピクチャからの追加データを決定し、セグメントの所与のピクチャのビット深度に追加するために追加データを使用することができる。POCは、符号化ビデオビットストリームの時間スケーリングによって影響を受けない固定値であり得る。結果として、ビデオデコーダ30は、時間的にスケーラブルなビデオビットストリームもサポートしながら、HEVC WD9で定義されたプログレッシブ精緻化動作に従ってプログレッシブ精緻化セグメントを復号するために、POC指示データと識別されたプログレッシブ精緻化動作とを使用することができる。
[0189]図6は、本開示の1つまたは複数の態様により、ビデオデータを符号化するために、ビデオエンコーダ20および/またはその構成要素が実行することができる例示的なプロセス120を示すフローチャートである。プロセス120は、ビデオエンコーダ20がビットストリームの次の符号化ピクチャを形成する(122)ときに始まる場合がある。たとえば、ビデオエンコーダ20は、次の符号化ピクチャを形成するために、受信されたビデオデータの次のピクチャをエントロピー符号化することができる。加えて、ビデオエンコーダ20は、直近に符号化されたピクチャが復号順序でプログレッシブ精緻化セグメントの直前にくるかどうかを決定することができる(124)。
[0190]言い換えれば、ビデオエンコーダ20は、直近に符号化されたピクチャがプログレッシブ精緻化セグメント用のベースピクチャであるかどうかを決定することができる。ビデオエンコーダ20は、復号順序で直近に符号化されたピクチャの直後にくる一連のピクチャが、直近に符号化されたピクチャに関するいかなる動き予測も定義せずに、直近に符号化されたピクチャに関する品質の精緻化を定義する前に、プログレッシブ精緻化セグメント開始SEIメッセージを挿入すべきかどうかを決定することができる。直近に符号化されたピクチャがプログレッシブ精緻化セグメント用のベースピクチャではないとビデオエンコーダ20が決定した場合(124の「いいえ」分岐)、ビデオエンコーダ20は、符号化ビデオビットストリーム内でシグナリングされるべき次の符号化ピクチャを形成することができる。
[0191]一方、直近に符号化されたピクチャがプログレッシブ精緻化セグメントのベースピクチャであるとビデオエンコーダ20が決定した場合、ビデオエンコーダ20は、プログレッシブ精緻化セグメントの最後の符号化ピクチャのPOC値を示すデータを符号化することができる(126)。たとえば、ビデオエンコーダ20は、ビデオ復号デバイスがそれを用いてプログレッシブ精緻化セグメントの最後の符号化ピクチャのPOC値を決定することができる情報を含む、プログレッシブ精緻化セグメント開始SEIメッセージを符号化するために、本開示の技法を実装することができる。一例では、ビデオエンコーダ20は、シンタックス要素の形態などで、プログレッシブ精緻化セグメントの最後の符号化ピクチャのPOC値を直接示すデータを含めることができる。他の例では、ビデオエンコーダ20は、POC値を導出するためにビデオ復号デバイスが使用することができるデータを含めることができる。
[0192]いくつかの例では、ビデオエンコーダ20は、プログレッシブ精緻化セグメント開始SEIメッセージ内に、pic_order_cnt_deltaシンタックス要素を含めることができる。たとえば、ビデオエンコーダ20は、ベースピクチャおよびプログレッシブ精緻化セグメントの最後の符号化ピクチャのそれぞれのPOC値の間の差分を示すように、pic_order_cnt_deltaシンタックス要素を生成することができる。別の例として、ビデオエンコーダ20は、SEIメッセージ内にLSBのデルタを示すシンタックス要素を含めることができる。この例では、ビデオエンコーダ20は、ベースピクチャおよびプログレッシブ精緻化セグメントの最後の符号化ピクチャのそれぞれのPOC値のLSBの間の差分を示すように、LSBのデルタを生成することができる。ビデオエンコーダ20は、pic_order_cnt_deltaシンタックス要素およびLSBのデルタシンタックス要素のうちの一方または両方の値を使用して、プログレッシブ精緻化セグメントの終了境界(すなわち、最後の符号化ピクチャ)をビデオ復号デバイスが検出することを可能にすることができる。
[0193]加えて、ビデオエンコーダ20は、プログレッシブ精緻化セグメントの最後の符号化ピクチャのPOC値を示すデータ、およびプログレッシブ精緻化セグメントに関連付けられたプログレッシブ精緻化動作に基づいて、プログレッシブ精緻化セグメントを符号化することができる。たとえば、ビデオエンコーダ20は、直後にくる符号化ピクチャにプログレッシブ精緻化動作を適用することによって、プログレッシブ精緻化セグメントの各ピクチャを符号化することができる。ビデオエンコーダ20は、プログレッシブ精緻化セグメントの最後の符号化ピクチャのPOC値(またはそのLSB)の検出に基づいて、プログレッシブ精緻化セグメントの終了境界を検出することができる。プログレッシブ精緻化セグメントの終了境界の検出に基づいて、ビデオエンコーダ20は、プログレッシブ精緻化動作のみを使用して次のピクチャを符号化することを停止することができる。
[0194]ビデオエンコーダ20は、符号化ビデオビットストリームをシグナリングすることができる。より詳細には、ビデオエンコーダ20は、ベースピクチャに関連するデータと、上述されたシンタックス要素のうちの1つまたは複数を含むプログレッシブ精緻化セグメント開始SEIメッセージと、プログレッシブ精緻化セグメントとを含めるように、符号化ビデオビットストリームをシグナリングすることができる。いくつかの例では、中間デバイスは、完全な符号化ビデオビットストリームを時間的にスケーリングすることなどによって、サブビットストリームを抽出することができる。これらの例では、ビデオエンコーダ20は、プログレッシブ精緻化セグメントの終了境界のPOC値を示すデータを含めるように、プログレッシブ精緻化セグメント開始SEIメッセージを生成し、シグナリングするので、ビデオエンコーダ20は、時間スケーリングにかかわらず、それによってセグメントを復号する正確なデータをビデオ復号デバイスに供給することができる。ビデオエンコーダ20は、符号化ビデオビットストリームの時間スケーラビリティをサポートしながら、プログレッシブ精緻化セグメントを符号化し、その復号を可能にするために、本開示の技法を実装することができる。
[0195]このようにして、ビデオデコーダ30またはビデオエンコーダ20のいずれかは、ビデオデータをコーディングするためのデバイスの一例であり得るし、そのデバイスは、符号化ビットストリーム内のプログレッシブ精緻化セグメント内の複数のピクチャのうちの最後のピクチャのピクチャ順序カウント(POC)値を示す情報を決定するための手段と、プログレッシブ精緻化動作に従ってプログレッシブ精緻化セグメント内のピクチャのうちの少なくともいくつかをコーディングするための手段とを含む。
[0196]加えて、このようにして、宛先デバイス14またはソースデバイス12のいずれかは、実行されたとき、符号化ビットストリーム内のプログレッシブ精緻化セグメント内の複数のピクチャのうちの最後のピクチャのピクチャ順序カウント(POC)値を示す情報を決定することと、プログレッシブ精緻化動作に従ってプログレッシブ精緻化セグメント内のピクチャのうちの少なくともいくつかをコーディングすることとを、コンピューティングデバイスのプログラマブルプロセッサに行わせる命令を記憶したコンピュータ可読記憶媒体を含むか、またはそれに結合されたコンピューティングデバイスの一例であり得る。
[0197]1つまたは複数の例では、記載された機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せに実装される場合がある。ソフトウェアに実装される場合、機能は、1つもしくは複数の命令もしくはコードとしてコンピュータ可読媒体上に記憶されるか、またはコンピュータ可読媒体を介して送信され、ハードウェアベースの処理ユニットによって実行される場合がある。コンピュータ可読媒体は、データ記憶媒体などの有形媒体、様々なコンピュータ可読ストレージデバイス、または、たとえば通信プロトコルに従って、ある場所から別の場所へのコンピュータプログラムの転送を容易にする任意の媒体を含む通信媒体に対応する、コンピュータ可読記憶媒体を含む場合がある。このようにして、コンピュータ可読媒体は、一般に、(1)非一時的である有形コンピュータ可読記憶媒体、または、(2)信号もしくは搬送波などの通信媒体に対応する場合がある。データ記憶媒体は、本開示に記載された技法を実施するための命令、コードおよび/またはデータ構造を取り出すために、1つもしくは複数のコンピュータ、または1つもしくは複数のプロセッサによってアクセスされ得る任意の入手可能な媒体であり得る。コンピュータプログラム製品は、コンピュータ可読媒体を含む場合がある。
[0198]限定ではなく例として、そのようなコンピュータ可読記憶媒体は、RAM、ROM、EEPROM(登録商標)、CD−ROMもしくは他の光ディスクストレージ、磁気ディスクストレージもしくは他の磁気ストレージデバイス、フラッシュメモリ、または、命令もしくはデータ構造の形態の所望のプログラムコードを記憶するために使用され得るし、コンピュータによってアクセスされ得る、任意の他の媒体を備えることができる。また、いかなる接続もコンピュータ可読媒体と適切に呼ばれる。たとえば、命令が、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者回線(DSL)、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、DSL、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。しかしながら、コンピュータ可読記憶媒体およびデータ記憶媒体は、接続、搬送波、信号、または他の一時的媒体を含まないが、代わりに非一時的有形記憶媒体を対象とすることを理解されたい。本明細書で使用するディスク(disk)およびディスク(disc)は、コンパクトディスク(disc)(CD)、レーザーディスク(登録商標)(disc)、光ディスク(disc)、デジタル多用途ディスク(disc)(DVD)、フロッピー(登録商標)ディスク(disk)、およびブルーレイディスク(disc)を含み、ディスク(disk)は、通常、データを磁気的に再生し、ディスク(disc)は、データをレーザーで光学的に再生する。上記の組合せも、コンピュータ可読媒体の範囲内に含まれるべきである。
[0199]命令は、1つもしくは複数のデジタル信号プロセッサ(DSP)などの1つもしくは複数のプロセッサ、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブル論理アレイ(FPGA)、または他の均等な集積回路もしくはディスクリート論理回路によって実行される場合がある。したがって、本明細書で使用する「プロセッサ」という用語は、上記の構造、または本明細書に記載された技法の実装に適した任意の他の構造のうちのいずれかを指す場合がある。加えて、いくつかの態様では、本明細書に記載された機能は、符号化および復号のために構成された専用のハードウェアモジュールおよび/もしくはソフトウェアモジュール内に設けられる場合があるか、または複合コーデックに組み込まれる場合がある。また、本技法は、1つまたは複数の回路または論理要素に完全に実装され得る。
[0200]本開示の技法は、ワイヤレスハンドセット、集積回路(IC)、またはICのセット(たとえば、チップセット)を含む、多種多様なデバイスまたは装置に実装される場合がある。開示された技法を実行するように構成されたデバイスの機能的態様を強調するために、様々な構成要素、モジュール、またはユニットが本開示に記載されたが、それらの構成要素、モジュール、またはユニットは、必ずしも異なるハードウェアユニットによって実現する必要があるとは限らない。むしろ、上述されたように、適切なソフトウェアおよび/またはファームウェアと連携して、様々なユニットは、コーデックハードウェアユニットにおいて組み合わされる場合があるか、または上述された1つまたは複数のプロセッサを含む、相互動作可能なハードウェアユニットの集合体よって提供される場合がある。
[0201]様々な例が記載された。これらおよび他の例は、以下の特許請求の範囲内にある。