[0026]本開示は、ビデオコーディングでの誤り耐性のある復号単位シグナリングおよび関連付けのさまざまな方法を説明する。マルチビューコーディングまたはスケーラブルビデオコーディングでは、複数のピクチャまたはレイヤが、所与の時間瞬間についてコーディングされ得る。同一の時間瞬間のピクチャが、単一のアクセス単位(AU)内でコーディングされる。たとえば、アクセス単位の復号は、マルチビューコーディングが使用されない時に1つのピクチャまたはマルチビューコーディングに関して同一の時間瞬間の複数のピクチャをもたらす。
[0027]復号単位(DU)は、一般に、アクセス単位のサブセットまたはアクセス単位の全体を指す。たとえば、サブピクチャレベルでの動作が許容される場合に、復号単位は、アクセス単位のサブセットであり、アクセス単位は、複数の復号単位を含む。アクセス単位は、1つまたは複数のピクチャのビデオデータを含むので、復号単位レベルでの動作は、サブピクチャレベルでの動作と考えられ得る。サブピクチャレベルでの動作が許容されない場合には、復号単位は、アクセス単位の全体である。
[0028]復号単位は、1つまたは複数のネットワーク抽象化レイヤ(NAL:network abstraction layer)単位を含む。たとえば、復号単位は、1つまたは複数のビデオコーディングレイヤ(VCL)NAL単位と関連する非VCL NAL単位とを含む。NAL単位の一例は、ピクチャのスライスである(すなわち、NAL単位にカプセル化されたデータは、ピクチャのスライスを復号するのに必要なビデオデータを含む)。NAL単位のもう1つの例は、パラメータセットである。たとえば、NAL単位は、ピクチャパラメータセットと、シーケンスパラメータセットと、パラメータセットの他の例とのビデオデータを含むことができる。もう1つの例として、NAL単位は、バッファ(たとえば、コーディングされたピクチャバッファ)からの復号単位の処理時間と除去時間とを判定するために使用される付加拡張情報(SEI)メッセージなどの追加情報を含むことができる。
[0029]本開示で説明されるいくつかの例では、ビデオ符号器は、コーディングされたビットストリーム内で、アクセス単位内の各復号単位の識別子を、出力のために生成し、出力する(たとえば、シグナリングする)。各識別子(DU識別子と呼ばれる)は、アクセス単位内で復号単位を一意に識別する。ビデオ復号器は、コーディングされたビットストリームから、アクセス単位内の復号単位の識別子を受け取る。ビデオ復号器は、復号単位識別子に基づいて、どのNAL単位がどの復号単位に関連するのかを判定する。
[0030]この形で、本開示で説明される技法は、NAL単位が正しい復号単位に関連することを保証することができる。たとえば、ビデオ符号器が、各復号単位が含むNAL単位の個数を示す情報(たとえば、出力情報)をシグナリングすることが可能である。復号単位識別子を使用するのではなく、ビデオ復号器は、ビデオ復号器がNAL単位を受け取った順序と、各復号単位が含むNAL単位の個数を示すシグナリングされた情報とに基づいて、復号単位へのNAL単位の関連付けを判定することができる。
[0031]しかし、この場合に、NAL単位が正しい復号単位に関連することの保証は、誤り耐性があるものではない。たとえば、NAL単位が伝送(たとえば、ビデオ符号器からビデオ復号器へ、ビデオ符号器から中間のストレージデバイスへ、または中間のストレージデバイスからビデオ復号器へ)中に失われる場合に、ビデオ復号器が、どのNAL単位がどの復号単位に関連するのかを判定できない可能性がある。
[0032]NAL単位が正しい復号単位に関連することを保証することに関する可能な問題のもう1つの例として、ビデオ符号器が、2タイプのメッセージの間で復号単位に関連するNAL単位をシグナリングすることが可能である場合がある。たとえば、ビデオ符号器は、特定のタイプの付加拡張情報(SEI)メッセージの第1のインスタンスをシグナリングし、これに第1の復号単位の1つまたは複数のNAL単位が続き、これに特定のタイプのSEIメッセージの第2のインスタンスが続き、これに第2の復号単位の1つまたは複数のNAL単位が続き、以下同様とすることができる。ビデオ復号器は、このタイプのSEIメッセージの第1のインスタンスの後、このタイプのSEIメッセージの第2のインスタンスの前に受け取られたすべてのNAL単位が、第1の復号単位に関連し、このタイプのSEIメッセージの第2のインスタンスの後、このタイプのSEIメッセージの第3のインスタンスの前に受け取られたすべてのNAL単位が、第2の復号単位に関連し、以下同様であると判定することができる。
[0033]このタイプのSEIメッセージは、符号化および復号の正しいタイミングに関係する追加情報を含むことができる。しかし、このタイプのSEIメッセージの位置は、どのNAL単位がどの復号単位に関連するのかを示すので、ビデオ復号器が、復号単位内にこのタイプのSEIメッセージの複数のコピーを含めることは、可能ではない可能性がある。したがって、これらのSEIメッセージのうちの1つが伝送で失われる場合であっても、ビデオ復号器は、どのNAL単位がどの復号単位に関連するのかを判定できない可能性があり、失われたSEIメッセージによって担持された追加情報を判定できない可能性がある。
[0034]本開示で説明される技法では、ビデオ符号器は、どのNAL単位がどの復号単位に関連するのかを示す情報(たとえば、SEIメッセージまたはスライスヘッダ内の復号単位識別子と共に)を、出力のために生成し、出力することができる。この形で、NAL単位が伝送で失われる場合であっても、ビデオ復号器は、どのNAL単位がどの復号単位に関連するのかを判定できる可能性がある。また、ビデオ復号器が、どのNAL単位がどの復号単位に関連するのかを判定するのにSEIメッセージの位置に頼る必要がない可能性があるので、ビデオ符号器は、復号単位内にSEIメッセージの1つまたは複数のコピーを出力のために生成し、出力することができる。そのような技法は、上で説明されたいくつかの他の技法と比較して、ビデオ復号器がどのNAL単位がどの復号単位に関連するのかを判定する、比較的より誤り耐性のある形を提供することができる。
[0035]さらに、上で説明された他の技法のいくつかでは、あるタイプのSEIメッセージは、繰返しを禁止される(本開示で説明される技法が対処できる問題)。いくつかの場合に、これらの他の技法では、あるSEIメッセージタイプが繰返しを禁止されるだけではなく、SEIメッセージ全般が、アクセス単位内の最初のVCL NAL単位の後、アクセス単位内の最後のNAL単位の前に、繰り返されることを制限される。
[0036]たとえば、これらの他の技法のいくつかでは、ビデオ復号器は、SEIメッセージの位置に基づいてアクセス単位の始めを判定するはずである。たとえば、SEIメッセージは、アクセス単位の始めに配置されるはずであり、ビデオ復号器がSEIメッセージを処理しつつあると判定した後に、ビデオ復号器は、ビデオ復号器が新しいアクセス単位を処理しつつあると判定するはずである。したがって、同一のアクセス単位内にSEIメッセージの複数のコピーを含めることの制限がある。
[0037]誤りを起こしやすい環境では、SEIメッセージが失われる場合に、SEIメッセージの他のコピーが使用可能になるようにするために、SEIメッセージの複数のコピーを含めることが有益である可能性がある。いくつかの例では、諸技法は、さまざまなタイプのSEIメッセージをアクセス単位内で繰り返すことを可能にし、これが、誤り耐性をさらに与える。一例として、諸技法は、すべてのSEIメッセージについて、(1)SEIメッセージ内で担持される情報が適用される適用範囲と、(2)SEIメッセージが存在し得るところと、(3)特定のタイプのSEIメッセージの複数のインスタンスの内容に対する制限とを指定することができる。
[0038]たとえば、アクセス単位は、複数のパケット(たとえば、リアルタイムトランスポートプロトコル(RTP)パケット)にパケット化され得る。各パケットは、通常、1つまたは複数のNAL単位を含むが、いくつかの場合に、パケットは、NAL単位のサブセットを含むことができる。誤りを起こしやすい環境では、1つまたは複数のパケットが失われる可能性があり、失われたパケットがSEIメッセージを含む場合には、そのSEIメッセージが失われる可能性がある。本開示で説明される技法では、ビデオ符号器は、アクセス単位内にSEIメッセージの1つまたは複数のコピーを出力のために生成し、出力する(たとえば、シグナリングする)ことができる。この形で、SEIメッセージのうちの1つを含むパケットが失われる場合であっても、SEIメッセージは、それでも、失われなかったパケット内のコピーとして使用可能である可能性がある。
[0039]もう1つの例として、ビデオ符号器は、high efficient video coding(HEVC)標準規格のマルチレイヤ拡張でなど、複数のレイヤを有するビデオビットストリームを符号化することができる。複数のレイヤは、ベースレイヤと1つまたは複数の非ベースレイヤとを含む。非ベースレイヤは、空間または品質エンハンスメントレイヤ、異なるビューのテクスチャ、異なるビューの深度、および他のそのような例とすることができる。ビデオ符号器は、異なるチャネル内で異なるレイヤをトランスポートすることができる(たとえば、IETF RFC 6190(http://tools.ietf.org/rfc/rfc6190.txtで公に入手可能)で同様に定義されたマルチセッション伝送(MST)を使用して。本開示で説明される技法では、ビデオ符号器は、アクセス単位内の2つのVCL NALU単位内にSEI NAL単位を含むことができ、SEI NAL単位は、SEIメッセージを含み、アクセス単位の最初のVCL NAL単位の後である。言い替えると、アクセス単位内の最初のVCL NAL単位の後にSEIメッセージを含めるための本開示で説明される技法は、マルチセッション伝送の例にも適用可能である。
[0040]本開示で説明される技法では、ビデオ復号器は、ビデオ復号器が新しいアクセス単位を処理しつつあることを判定するために、必ずしもSEIメッセージの位置に頼る必要がない。たとえば、ビデオ復号器は、新しいアクセス単位が処理されつつあることを判定するために、ある他のヘッダ情報に頼ることができる。したがって、本開示で説明される技法では、ビデオ符号器は、アクセス単位内のSEIメッセージとアクセス単位内のSEIメッセージの1つまたは複数のコピーとを、出力のために生成し、出力することができ、ビデオ復号器は、SEIメッセージとSEIメッセージの1つまたは複数のコピーとを受け取ることができる。ビデオ復号器は、新しいアクセス単位が処理されようとしている時を判定するためにSEIメッセージに頼る必要がないので、新しい、異なるアクセス単位が処理されつつあることを判定することなく、同一のアクセス単位内のSEIメッセージの複数のコピーを処理するように構成され得る。
[0041]図1は、本開示で説明される技法を利用することができる例のビデオ符号化および復号システム10を示すブロック図である。図1に示されているように、システム10は、宛先デバイス14によって後刻に復号される符号化されたビデオデータを生成するソースデバイス12を含む。ソースデバイス12および宛先デバイス14は、デスクトップコンピュータ、ノートブック(すなわち、ラップトップ)コンピュータ、タブレットコンピュータ、セットトップボックス、いわゆる「スマート」フォンなどの電話送受話器、いわゆる「スマート」パッド、テレビジョン、カメラ、ディスプレイデバイス、ディジタルメディアプレイヤ、ビデオゲーム機、ビデオストリーミングデバイス、または類似物を含む広範囲のデバイスのいずれをも備えることができる。いくつかの場合に、ソースデバイス12および宛先デバイス14は、ワイヤレス通信のための備えを有することができる。
[0042]宛先デバイス14は、リンク16を介して、復号されるべき符号化されたビデオデータを受信することができる。リンク16は、ソースデバイス12から宛先デバイス14へ符号化されたビデオデータを移動することのできる任意のタイプの媒体またはデバイスを備えることができる。一例では、リンク16は、ソースデバイス12が符号化されたビデオデータを宛先デバイス14にリアルタイムで直接に送信することを可能にする通信媒体を備えることができる。符号化されたビデオデータは、ワイヤレス通信プロトコルなどの通信標準規格に従って変調され、宛先デバイス14に送信され得る。通信媒体は、ラジオ周波数(RF)スペクトルまたは1つもしくは複数の物理伝送線など、任意のワイヤレス通信媒体または有線通信媒体を備えることができる。通信媒体は、ローカルエリアネットワーク、広域ネットワーク、またはインターネットなどのグローバルネットワークなど、パケットベースのネットワークの一部を形成することができる。通信媒体は、ソースデバイス12から宛先デバイス14への通信を容易にするのに有用である可能性があるルータ、スイッチ、基地局、または任意の他の機器を含むことができる。
[0043]代替案では、符号化されたデータは、出力インターフェース22からストレージデバイス32に出力され得る。同様に、符号化されたデータは、入力インターフェースによってストレージデバイス32からアクセスされ得る。ストレージデバイス32は、ハードドライブ、Blu−ray(登録商標)ディスク(disc)、DVD、CD−ROM、フラッシュメモリ、揮発性もしくは不揮発性のメモリ、または符号化されたビデオデータを格納するための任意の他の適切なディジタル記憶媒体など、さまざまな分散されたまたはローカルにアクセスされるデータ記憶媒体のいずれをも含むことができる。さらなる例では、ストレージデバイス32は、ソースデバイス12によって生成された符号化されたビデオを保持することができるファイルサーバまたは別の中間ストレージデバイスに対応することができる。宛先デバイス14は、ストリーミングまたはダウンロードを介してストレージデバイス32からの格納されたビデオデータにアクセスすることができる。ファイルサーバは、符号化されたビデオデータを格納し、その符号化されたビデオデータを宛先デバイス14に送信することができる任意のタイプのサーバとすることができる。例のファイルサーバは、ウェブサーバ(たとえば、ウェブサイトのための)、FTPサーバ、ネットワークアタッチドストレージ(NAS)デバイス、またはローカルディスク(disk)ドライブを含む。宛先デバイス14は、インターネット接続を含む任意の標準データ接続を介して符号化されたビデオデータにアクセスすることができる。これは、ファイルサーバに格納された符号化されたビデオデータへのアクセスに適する、ワイヤレスチャネル(たとえば、Wi−Fi(登録商標)接続)、有線接続(たとえば、DSL、ケーブルモデムなど)、またはその両方の組合せを含むことができる。ストレージデバイス32からの符号化されたビデオデータの送信は、ストリーミング送信、ダウンロード送信、またはその両方の組合せとすることができる。
[0044]本開示の技法は、必ずしもワイヤレス応用またはワイヤレスセッティングに限定されない。本技法は、オーバージエア(over−the−air)テレビジョン放送、ケーブルテレビジョン送信、衛星テレビジョン送信、たとえばインターネットを介するストリーミングビデオ送信、データ記憶媒体上の格納のためのディジタルビデオの符号化、データ記憶媒体上に格納されたディジタルビデオの復号、または他の応用例など、さまざまなマルチメディアアプリケーションのいずれをもサポートするビデオコーディングに適用され得る。いくつかの例では、システム10は、ビデオストリーミング、ビデオ再生、ビデオ放送、および/またはビデオ電話などの応用例をサポートするために、1方向または両方向のビデオ送信をサポートするように構成され得る。
[0045]図1の例では、ソースデバイス12は、ビデオソース18と、ビデオ符号器20と、出力インターフェース22とを含む。いくつかの場合に、出力インターフェース22は、変調器/復調器(モデム)および/または送信器を含むことができる。ソースデバイス12では、ビデオソース18は、ビデオキャプチャデバイス、たとえばビデオカメラ、以前に取り込まれたビデオを含むビデオアーカイブ、ビデオコンテンツプロバイダからビデオを受信するビデオフィードインターフェース、および/もしくはソースビデオとしてコンピュータグラフィックスデータを生成するコンピュータグラフィックスシステムなどのソースまたはそのようなソースの組合せを含むことができる。一例として、ビデオソース18がビデオカメラである場合に、ソースデバイス12および宛先デバイス14は、いわゆるカメラ付き携帯電話機またはテレビ電話を形成することができる。しかし、本開示で説明される技法は、ビデオコーディング全般に適用可能とすることができ、ワイヤレス応用および/または有線応用に適用され得る。
[0046]取り込まれた、事前に取り込まれた、またはコンピュータ生成されたビデオは、ビデオ符号器20によって符号化され得る。符号化されたビデオデータは、ソースデバイス12の出力インターフェース22を介して宛先デバイス14に直接に送信され得る。符号化されたビデオデータは、また(または代替的に)、復号および/または再生のために、宛先デバイス14または他のデバイスによる後のアクセスのためにストレージデバイス32に格納され得る。
[0047]宛先デバイス14は、入力インターフェース28と、ビデオ復号器30と、ディスプレイデバイス31とを含む。いくつかの場合に、入力インターフェース28は、受信器および/またはモデムを含むことができる。宛先デバイス14の入力インターフェース28は、リンク16を介して符号化されたビデオデータを受信する。リンク16を介して通信されまたはストレージデバイス32上で提供される符号化されたビデオデータは、ビデオデータの復号において、ビデオ復号器30などのビデオ復号器による使用のためにビデオ符号器20によって生成されたさまざまな構文要素を含むことができる。そのような構文要素は、通信媒体上で送信され、記憶媒体に格納され、またはファイルサーバを格納した符号化されたビデオデータと共に含まれ得る。
[0048]ディスプレイデバイス31は、宛先デバイス14に一体化され、またはその外部とすることができる。いくつかの例では、宛先デバイス14は、一体化されたディスプレイデバイスを含むことができ、外部ディスプレイデバイスとインターフェースするようにも構成され得る。他の例では、宛先デバイス14は、ディスプレイデバイスとすることができる。一般に、ディスプレイデバイス31は、ユーザに復号されたビデオデータを表示し、液晶ディスプレイ(LCD)、プラズマディスプレイ、有機発光ダイオード(OLED)ディスプレイ、または別のタイプのディスプレイデバイスなど、さまざまなディスプレイデバイスのいずれをも備えることができる。
[0049]ビデオ符号器20およびビデオ復号器30は、個々のマイクロプロセッサまたは集積回路(IC)として形成され得、またはより大きいマイクロプロセッサもしくはICの一部とすることができる。いくつかの例では、ビデオ符号器20およびビデオ復号器30は、ワイヤレス通信デバイスの一部とすることができる。
[0050]ビデオ符号器20およびビデオ復号器30は、ビデオ圧縮標準規格に従って動作することができる。ビデオコーディング標準規格の例は、ITU−T H.261、ISO/IEC MPEG−1 Visual、ITU−T H.262またはISO/IEC MPEG−2 Visual、ITU−T H.263、ISO/IEC MPEG−4 Visual、ならびにそのscalable video coding(SVC)およびmultiview video coding(MVC)拡張を含むITU−T H.264(ISO/IEC MPEG−4 AVCとしても既知)を含む。
[0051]さらに、ビデオ符号器20およびビデオ復号器30がそれに従って動作することができる新しいビデオコーディング標準規格すなわち、ITU−T Video Coding Experts Group(VCEG)とISO/IEC Motion Picture Experts Group(MPEG)とのJoint Collaboration Team on Video Coding(JCT−VC)によって開発されつつあるHigh Efficiency Video Coding(HEVC)標準規格がある。ビデオ符号器20およびビデオ復号器30は、HEVC Test Model(HM)に従うことができる。「HEVC Working Draft 8」または「WD8」と称するHEVC標準規格の最近のドラフトが、その内容全体が参照によって本明細書に組み込まれている文書JCTVC−H1003、Bross他、「High efficiency video coding(HEVC)text specification draft 8」、Joint Collaborative Team on Video Coding(JCT−VC)of ITU−T SG16 WP3 and ISO/IEC JTC1/SC29/WG11、10th Meeting: Stockholm、スウェーデン、2012年7月11〜20日(2013年4月2日時点でhttp://phenix.int−evry.fr/jct/doc_end_user/documents/10_Stockholm/wg11/JCTVC−J1003−v8.zipからダウンロード可能)に記載されている。以下では「HEVC Working Draft 9」または「WD9」と称するHEVCのより最近のワーキングドラフトが、2013年4月2日時点で、http://phenix.int−evry.fr/jct/doc_end_user/documents/11_Shanghai/wg11/JCTVC−K1003−v10.zipから入手可能である。
[0052]代替案では、ビデオ符号器20およびビデオ復号器30は、MPEG−4、Part 10、Advanced Video Coding(AVC)とも称するITU−T H.264標準規格などの他のプロプライエタリ標準規格もしくは産業標準規格、またはそのような標準規格の拡張に従って動作することができる。しかし、本開示の技法は、どの特定のコーディング標準規格にも限定されない。ビデオ圧縮標準規格の他の例は、MPEG−2およびITU−T H.263、ならびにVP8などのオープンフォーマットを含む。
[0053]しかし、本開示の技法は、どの特定のコーディング標準規格にも限定されない。たとえば、ビデオ符号器20およびビデオ復号器30は、必ずしも任意の特定のビデオコーディング標準規格に従う必要がない。さらに、本開示で説明される技法が、必ずしも特定の標準規格に従わない場合であっても、本開示で説明される技法は、さまざまな標準規格に関してコーディング効率をさらに援助することができる。また、本開示で説明される技法は、将来の標準規格の一部になる可能性がある。理解を簡単にするために、技法は、開発中のHEVC標準規格に関して説明されるが、技法は、HEVC標準規格に限定されず、他のビデオコーディング標準規格または特定の標準規格によって定義されるのではないビデオコーディング技法に拡張され得る。
[0054]図1には示されていないが、いくつかの態様で、ビデオ符号器20およびビデオ復号器30は、それぞれ、オーディオ符号器およびオーディオ復号器と一体化され得、共通データストリームまたは別々のデータストリーム内のオーディオとビデオの両方の符号化を処理するために、適当なMUX−DEMUXユニットまたは他のハードウェアとソフトウェアとを含むことができる。適用可能な場合に、いくつかの例で、MUX−DEMUXユニットは、ITU H.223マルチプレクサプロトコルまたはユーザデータグラムプロトコル(UDP)などの他のプロトコルに従うことができる。
[0055]ビデオ符号器20およびビデオ復号器30は、それぞれ、1つまたは複数のマイクロプロセッサ、ディジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ディスクリート論理、個々の集積回路(IC)もしくはICの一部、ソフトウェア、ハードウェア、ファームウェア、またはその任意の組合せなど、さまざまな適切な符号器回路網のいずれかとして実施され得る。技法が、部分的にソフトウェアで実施される時に、デバイスは、本開示の技法を実行するために、適切な固定コンピュータ可読記憶媒体内にソフトウェアの命令を格納し、ハードウェア内で1つまたは複数のプロセッサを使用して命令を実行することができる。言い替えると、部分的にソフトウェアで実施される時に、基礎になるハードウェアコンポーネント上で実行される、ハードウェアコンポーネントにある種の機能を実施させるソフトウェア。ビデオ符号器20およびビデオ復号器30のそれぞれは、1つまたは複数の符号器または復号器に含まれ得、この符号器または復号器のいずれもが、それぞれのデバイス内の組み合わされた符号器/復号器(コーデック)の一部として一体化され得る。
[0056]たとえば、ビデオ符号器20およびビデオ復号器30は、それぞれソースデバイス12および宛先デバイス14などのワイヤレスデバイス内に含まれ得る。もう1つの例として、デバイスは、マイクロプロセッサまたは集積回路を含むことができる。いくつかの例では、マイクロプロセッサまたは集積回路などのデバイスは、ビデオ復号器30を含むことができ、別のデバイスは、ビデオ符号器20を含むことができる。
[0057]JCT−VCは、HEVC標準規格の開発に取り組んでいる。HEVC標準規格化の努力は、HEVC Test Model(HM)と呼ばれるビデオコーディングデバイスの進化するモデルに基づく。HMは、たとえばITU−T H.264/AVCに従う既存デバイスに対するビデオコーディングデバイスの複数の追加の能力を前提とする。
[0058]一般に、HMのワーキングモデルは、ビデオフレームまたはピクチャが、ルマサンプルとクロマサンプルの両方を含むツリーブロックまたは最大コーディング単位(LCU:largest coding unit)のシーケンスに分割され得ると記述する。ツリーブロックは、H.264標準規格のマクロブロックに類似するいくつかの目的のために働くことができるが、ツリーブロックは、マクロブロックに対する多数の相違を有する。スライスは、コーディング順序において連続するツリーブロックを含む。ビデオフレームまたはピクチャは、1つまたは複数のスライスに区分され得る。各ツリーブロックは、4分木に従ってコーディング単位(CU)に分割され得る。たとえば、4分木のルートノードとしてのツリーブロックは、4つの子ノードに分割され得、各子ノードは、親ノードになることができ、別の4つの子コードに分割され得る。4分木の葉ノードとしての最終的な分割されない子ノードは、コーディングノードすなわちコーディングされたビデオブロックを備える。コーディングされたビットストリームに関連する構文データは、ツリーブロックを分割できる最大回数を定義することができ、コーディングノードの最小サイズを定義することもできる。
[0059]CUは、コーディングノードならびにコーディングノードに関連する予測単位(PU:prediction unit)と変換単位(TU:transform unit)とを含む。CUのサイズは、コーディングノードのサイズに対応し、形状において正方形でなければならない。CUのサイズは、8x8画素から64x64画素以上の最大値を有するツリーブロックのサイズまでの範囲にわたることができる。各CUは、1つまたは複数のPUと1つまたは複数のTUとを含むことができる。CUに関連する構文データは、たとえば、1つまたは複数のPUへのCUの区分を記述することができる。区分モードは、CUがスキップモード符号化されるか、または直接モード符号化されるか、イントラ予測モード符号化されるか、またはインター予測モード符号化されるか、の間で異なるものとすることができる。PUは、形状において非正方形に区分され得る。CUに関連する構文データは、たとえば、4分木に従う1つまたは複数のTUへのCUの区分を記述することもできる。TUは、形状において正方形または非正方形とすることができる。
[0060]HEVC標準規格は、異なるCUについて異なるものとすることができるTUに従う変換を可能にする。TUは、通常、区分されたLCUについて定義された所与のCU内のPUのサイズに基づいてサイズを定められるが、必ずそうであるわけではない。TUは、通常、PUと同一のサイズであるか、これより小さい。いくつかの例では、CUに対応する残差サンプルは、「残差4分木」(RQT:residual quad tree)として既知の4分木構造を使用してより小さい単位に副分割され得る。RQTの葉ノードは、変換単位(TU)と呼ばれる場合がある。TUに関連する画素差値は、量子化され得る変換係数を作るために変換され得る。
[0061]一般に、PUは、予測プロセスに関係するデータを含む。たとえば、PUが、イントラモード符号化される(すなわち、イントラ予測符号化される)時には、PUは、PUのイントラ予測モードを記述するデータを含むことができる。もう1つの例として、PUが、インターモード符号化される(すなわち、インター予測符号化される)時には、PUは、PUの動きベクトルを定義するデータを含むことができる。PUの動きベクトルを定義するデータは、たとえば、動きベクトルの水平成分、動きベクトルの垂直成分、動きベクトルの分解能(たとえば、1/4画素精度または1/8画素精度)、動きベクトルがポイントする基準ピクチャ、および/または動きベクトルの基準ピクチャリスト(たとえば、RefPiclList0またはRefPicList1)を記述することができる。
[0062]一般に、TUは、変換プロセスと量子化プロセスとに使用される。1つまたは複数のPUを有する所与のCUは、1つまたは複数の変換単位(TU)を含むこともできる。予測に続いて、ビデオ符号器20は、PUに対応する残差値を計算することができる。残差値は、エントロピコーディングの直列化された変換係数を作るためにTUを使用して変換係数に変換され、量子化され、スキャンされ得る画素差値を備える。本開示は、通常、CUのコーディングノードを指すのに用語「ビデオブロック」を使用する。いくつかの特定の場合に、本開示は、コーディングノードとPUとTUとを含むツリーブロックすなわちLCUまたはCUを指すのにも、用語「ビデオブロック」を使用する場合がある。
[0063]ビデオシーケンスは、通常、一連のビデオフレームまたはピクチャを含む。グループオブピクチャ(GOP)は、一般に、ビデオピクチャのうちの一連の1つまたは複数を備える。GOPは、GOPのヘッダ、ピクチャのうちの1つまたは複数のヘッダ、または他所に、GOP内に含まれるピクチャの枚数を記述する構文データを含むことができる。ピクチャの各スライスは、それぞれのスライスの符号化モードを記述するスライス構文データを含むことができる。ビデオ符号器20は、通常、ビデオデータを符号化するために、個々のビデオスライス内のビデオブロックに作用する。ビデオブロックは、CU内のコーディングノードに対応することができる。ビデオブロックは、固定されたサイズまたは可変サイズを有することができ、指定されたコーディング標準規格に従ってサイズにおいて異なることができる。
[0064]一例として、HMは、さまざまなPUサイズでの予測をサポートする。特定のCUのサイズが2Nx2Nであると仮定すると、HMは、2Nx2NまたはNxNのPUサイズでのイントラ予測と、2Nx2N、2NxN、Nx2N、またはNxNの対称PUサイズでのインター予測とをサポートする。HMは、2NxnUと、2NxnDと、nLx2Nと、nRx2NとのPUサイズでのインター予測のための非対称区分をもサポートする。非対称区分では、CUの一方向は、区分されないが、他の方向は、25%と75%とに区分される。CUのうちで25%区画に対応する部分は、「n」とそれに続く「Up」、「Down」、「Left」、または「Right」の表示とによって示される。したがって、たとえば、「2NxnU」は、上に2Nx0.5N PU、下に2Nx1.5N PUで水平に区分された2Nx2N CUを指す。
[0065]本開示では、「NxN」および「N×N」、たとえば16x16画素または16×16画素が、水平次元と垂直次元とに関するビデオブロックの画素次元を指すのに交換可能に使用される場合がある。一般に、16x16ブロックは、垂直方向に16画素(y=16)と、水平方向に16画素(x=16)とを有する。同様に、NxNブロックは、一般に、垂直方向にN画素と、水平方向にN画素とを有し、ここでNは、非負整数値を表す。ブロック内の画素は、行および列に配置され得る。さらに、ブロックは、必ずしも水平方向で垂直方向と同一の個数の画素を有する必要がない。たとえば、ブロックは、NxM画素を備えることができ、ここで、Mは、必ずしもNと等しくはない。
[0066]CUのPUを使用するイントラ予測コーディングまたはインター予測コーディングに続いて、ビデオ符号器20は、CUのTUの残差データを計算することができる。PUは、空間領域(画素領域とも呼ばれる)の画素データを備えることができ、TUは、変換、たとえば離散コサイン変換(DCT)、整数変換、ウェーブレット変換、または概念的に類似する変換を残差ビデオデータに適用した後に、変換領域の係数を備えることができる。残差データは、符号化されていないピクチャの画素とPUに対応する予測値との間の画素差に対応することができる。ビデオ符号器20は、CUの残差データを含むTUを形成し、その後、CUの変換係数を作るためにTUを変換することができる。
[0067]変換係数を作るためのすべての変換の後に、ビデオ符号器20は、変換係数の量子化を実行することができる。量子化は、一般に、おそらくは係数を表すのに使用されるデータの量を減らし、さらなる圧縮を実現するために変換係数が量子化されるプロセスを指す。量子化プロセスは、係数の一部またはすべてに関連するビット深さを減らすことができる。たとえば、nビット値を、量子化中にmビット値に丸めることができ、nは、mより大きい。
[0068]いくつかの例では、ビデオ符号器20は、エントロピ符号化できる直列化されたベクトルを作るために、量子化された変換係数をスキャンするのに、事前に定義されたスキャン順序を利用することができる。他の例では、ビデオ符号器20は、適応スキャンを実行することができ、あるいは、複数の可能なスキャンからスキャンを選択することができる。1次元ベクトルを形成するために量子化された変換係数をスキャンした後に、ビデオ符号器20は、たとえば、context adaptive variable length coding(CAVLC)、context adaptive binary arithmetic coding(CABAC)、syntax−based context−adaptive binary arithmetic coding(SBAC)、Probability Interval Partitioning Entropy(PIPE)コーディング、または別のエントロピ符号化方法論に従って、1次元ベクトルをエントロピ符号化することができる。ビデオ符号器20は、ビデオデータを復号する際のビデオ復号器30による使用のために、符号化されたビデオデータに関連する構文要素をエントロピ符号化することもできる。
[0069]CABACを実行するために、ビデオ符号器20は、コンテキストモデル内のコンテキストを、送信されるシンボルに割り当てる。コンテキストは、たとえば、シンボルの隣接する値が非ゼロであるか否かに関するものとすることができる。CAVLCを実行するために、ビデオ符号器20は、送信されるシンボルについて可変長コーディングを選択することができる。VLCの符号語は、相対的により短いコードが、より可能性の高いシンボルに対応し、より長いコードが、より可能性の低いシンボルに対応するように構成され得る。この形で、VLCの使用は、たとえば、各シンボルが送信されるための等長符号語の使用に対するビット節約を達成することができる。可能性判定は、シンボルに割り当てられたコンテキストに基づくものとすることができる。
[0070]ビデオ符号器20は、ピクチャがビデオ復号器30によって再構成される形を定義するビデオデータを生成し、ビデオデータを符号化し(たとえば、出力のために生成し)、ビデオデータをコーディングされたビットストリーム内でビデオ復号器30に出力する(たとえば、シグナリングする)。ビデオ復号器30は、コーディングされたビットストリームから符号化されたビデオデータを受け取り、ビデオデータを復号し、ピクチャを再構成するためにビデオデータを処理する。一般に、ビデオ復号器30は、ビデオデータを符号化し、生成するためにビデオ符号器20が実施した技法の逆を実施する。
[0071]たとえば、ビデオ復号器30は、ビデオ符号器20がビデオデータを符号化した形の逆の技法を使用して、ビデオデータを復号する。また、ビデオ復号器30は、ピクチャを再構成するために、ピクチャをイントラ予測復号しまたはインター予測復号する。たとえば、ビデオ復号器30は、インター予測復号のために使用される、以前に復号されたピクチャを判定するため、およびインター予測復号のために以前に復号されたピクチャと現在のピクチャとの間の残差を判定するために、ビデオデータを処理する。ビデオ復号器30は、現在のピクチャを再構成するために、以前に復号されたピクチャに残差を加算する。同様に、ビデオ復号器30は、現在のピクチャ内の以前に復号されたブロックを判定するため、およびイントラ予測復号のために現在のピクチャ内の以前に復号されたブロックと現在のピクチャ内の現在のブロックとの間の残差を判定するために、ビデオデータを処理する。ビデオ復号器30は、現在のピクチャの現在のブロックを再構成するために、以前に復号されたブロックに残差を加算する。
[0072]この形で、ビデオ符号器20は、ビデオ復号器30がピクチャを再構成するのに利用するビデオデータを出力する。いくつかの例では、ビデオ符号器20は、アクセス単位内でビデオデータを出力する。アクセス単位は、同一の時間瞬間内の1つまたは複数のピクチャのビデオデータを含む概念的な単位である。たとえば、スケーラブルビデオコーディングでは、ビデオ符号器20は、ピクチャの複数のレイヤでビデオデータを生成する。この例では、ピクチャのアクセス単位は、複数のレイヤのすべてのビデオデータを含む。
[0073]もう1つの例として、マルチビュービデオコーディングでは、ビデオ符号器20は、複数のビューのビデオデータを生成し、各ビューは、複数のピクチャを含む。マルチビュービデオコーディングでは、各ビュー内の1つのピクチャは、同一の時間瞬間に表示される。たとえば、第1のビュー内の第1のピクチャは、第2のビュー内の第1のピクチャ、第3のビュー内の第1のピクチャなどと同一の時間瞬間に表示される。この例では、1つのアクセス単位が、同一の時間瞬間に表示されるすべてのピクチャのビデオデータを含む。スケーラブルビデオコーディングまたはマルチビュービデオコーディングが使用されない例では、1つのアクセス単位は、1つのピクチャのビデオデータを含む。
[0074]したがって、一般に、ビデオ復号器30による1つのアクセス単位の復号および処理は、1つまたは複数のピクチャをもたらす。ビデオ復号器30による1つのアクセス単位の復号および処理が1つのピクチャをもたらす場合に、そのアクセス単位のビデオデータは、スケーラブルビデオコーディングが利用される場合にピクチャのすべてのレイヤの情報を含み、あるいは、スケーラブルビデオコーディングが利用されない場合に1つのレイヤのみの情報を含むことができる。ビデオ復号器30による1つのアクセス単位の復号および処理が複数のピクチャをもたらす場合には、そのアクセス単位のビデオデータは、マルチビュービデオコーディングに関する同一の時間瞬間のすべてのピクチャの情報を含むことができる。
[0075]アクセス単位は、1つまたは複数の復号単位を含む。たとえば、上で説明されたように、アクセス単位は、ピクチャ全体のビデオデータを含むことができる。サブピクチャレベルに対する動作が許容されない場合には、アクセス単位は、1つの復号単位だけを含む。サブピクチャレベルに対する動作が許容される場合には、アクセス単位は、1つまたは複数の復号単位を含む。
[0076]たとえば、ビデオ復号器30は、コーディングされたピクチャバッファ(CPB:coded picture buffer)と復号されたピクチャバッファ(DPB:decoded picture buffer)とを含む。CPBは、コーディングされたビットストリームから受け取られたビデオデータを格納し、DPBは、再構成されたピクチャを格納する。より詳細に説明されるように、ビデオ符号器20は、復号単位またはアクセス単位がCPBから除去されなければならない時を示す情報など、CPBの挙動を記述する情報を生成し、出力する。いくつかの例では、ビデオ符号器20は、アクセス単位のサブピクチャレベルでの動作が許容されるかどうか(たとえば、アクセス単位内の復号単位のそれぞれについて)を示す構文要素(たとえば、SubPicCpbFlagと呼ばれるフラグ)を符号化し、出力する。
[0077]ビデオ復号器30が、SubPicCpbFlagが0であると判定する場合に、ビデオ復号器30は、アクセス単位の動作がサブピクチャレベルで許容されないと判定することができ、アクセス単位が1つの復号単位を含むと判定することもできる。言い替えると、SubPicCpbFlagが0である時に、復号単位およびアクセス単位は、同一である。ビデオ復号器30が、SubPicCpbFlagが1であると判定する場合に、ビデオ復号器30は、アクセス単位の動作がサブピクチャレベルで許容されると判定することができ、アクセス単位が1つまたは複数の復号単位を含むと判定することもできる。
[0078]復号単位は、1つまたは複数のネットワーク抽象化レイヤ(NAL)単位を含む。NAL単位は、従うべきビデオデータのタイプとそのビデオデータを含むバイトとの表示を含む構文構造である。NAL単位の例は、ビデオコーディングレイヤ(VCL)NAL単位および非VCL NAL単位を含む。一例として、VCL NAL単位は、ピクチャ内のスライスのビデオデータ(たとえば、スライスを予測するのに必要な、基準ピクチャリストインデックス、動きベクトル、イントラ予測モード、その他などの情報)または特定のNAL単位タイプのNAL単位のビデオデータを含むことができる。一例として、非VCL NAL単位は、パラメータセットの情報(たとえば、ピクチャパラメータセット、シーケンスパラメータセットなど)またはビデオ符号化もしくはビデオ復号を援助する補足情報などのビデオデータを含むことができる。
[0079]本開示では、1つまたは複数のNAL単位を含む復号単位は、復号単位に関連するかこれに割り当てられた1つまたは複数のNAL単位と考えられ得る。言い替えると、復号単位に関連するかこれに割り当てられた1つまたは複数のNAL単位は、これらの1つまたは複数のNAL単位を含む復号単位と同一と考えられ得る。
[0080]したがって、本開示で説明される技法は、以下の定義を有する以下の用語を利用することができる。
[0081]復号単位:アクセス単位内の1つまたは複数のVCL NAL単位と関連する非VCLA NAL単位とからなる、SubPicCpbFlagが0と等しい時にはアクセス単位、あるいは、SubPicCpbFlagが1と等しい時にはアクセス単位のサブセット。
[0082]関連する非VCL NAL単位:VCL NAL単位の関連する非VCL NAL単位は、VCL NAL単位がその関連するVCL NAL単位である非VCL NAL単位のうちの1つである。言い替えると、非VCL NAL単位は、VCL NAL単位に関連し、そのVCL NAL単位は、非VCL NAL単位に関連すると考えられ得る(たとえば、VCL NAL単位と非VCL NAL単位との間の関連付けは、どちらの向きにも進む)。
[0083]関連するVLC NAL単位:nal_unit_typeがUNSPEC0、EOS_NUT、EOB_NUT、FD_NUTと等しく、RSV_NVCL44〜RSV_NVCL47の範囲内もしくはUNSPEC48〜UNSPEC63の範囲内の、非VCL NAL単位の復号順序において最も最近の先行するVCL NAL単位、または、nal_unit_typeが他の値と等しい、非VCL NAL単位の復号順序において最初の後続のVCL NAL単位。
[0084]上で説明されたように、いくつかの例では、ビデオ符号器20は、ビデオ符号化またはビデオ復号を援助する補足情報を含むNAL単位を符号化し、出力する。この補足情報は、ビデオ符号器20およびビデオ復号器30が、HEVCビデオコーディング標準規格などのビデオコーディング標準規格の要件に従うために必要ではない。したがって、補足情報の包含は、オプションであるが、そのような情報がビデオ符号化とビデオ復号との効率を高めるのを援助するので、好ましい可能性がある。
[0085]そのような補足情報を含むNAL単位の一例が、付加拡張情報(SEI)NAL単位である。SEI NAL単位の使用は、ビデオ符号器20が、出力ピクチャの正しい復号に必要ではないが、ピクチャ出力タイミング、表示、ならびに消失検出および消失隠蔽などのさまざまな他の目的に使用され得る(たとえば、符号化および復号を援助するために)、そのようなメタデータをコーディングされたビットストリーム内に含めることを可能にする。ビデオ符号器20は、アクセス単位内に任意の個数のSEI NAL単位を含むように構成され得、各SEI NAL単位は、1つまたは複数のSEIメッセージを含むことができる。
[0086]HEVC標準規格は、複数のSEIメッセージの構文および意味論を含むが、SEIメッセージのハンドリングは、これらのSEIメッセージが一般に標準の復号プロセスに影響しないので、指定されていない。HEVC標準規格にSEIメッセージを含める理由の1つは、さまざまなタイプのビデオ復号器(その一例がビデオ復号器30である)が、HEVC標準規格に従う異なるシステム内でSEIメッセージを同一に解釈することを保証するためである。したがって、HEVC標準規格に従う仕様またはシステムは、ビデオ符号器(ビデオ符号器20など)が、ある種のSEIメッセージを生成することを要求することができ、あるいは、ビデオ復号器(ビデオ復号器30など)による特定のタイプの受信されたSEIメッセージの特定のハンドリングを定義することができる。
[0087]下の表1に、HEVCで指定されるSEIメッセージをリストし、その目的を短く説明する。SEIメッセージが、例示のみのためにHEVC標準規格に関して説明されることを理解されたい。プロプライエタリビデオコーディング標準規格を含む他のビデオコーディング標準規格は、表1に記載のまたは他の形で下で説明されるものに類似するまたは異なるSEIメッセージを含む場合がある。さらに、非標準規格ベースのビデオコーディング技法でも、表1に記載のまたは他の形で下で説明されるものに類似するまたは異なるSEIメッセージに頼る場合もある。本開示で説明される技法は、すべてのそのような事例に適用可能とすることができる。
[0088]一般に、SEIメッセージは、ビデオデータの特性を定義すると考えられ得る。たとえば、バッファリング期間およびピクチャタイミングSEIメッセージは、初期遅延およびピクチャ出力時間またはピクチャ/サブピクチャ除去時間などのビデオデータ特性を定義する。追加の例として、表1のSEIメッセージの目的は、対応するSEIメッセージによって定義されるビデオデータの特性の例を提供するものである。
[0089]いくつかの例では、ビデオ符号器20は、SEIメッセージがアクセス単位内で配置される場所を制限するように構成され得る。たとえば、SEIメッセージの中で、サブピクチャタイミングSEIメッセージは、復号順序において、SEIメッセージを含むアクセス単位内で最初のVCL NAL単位に続くことができるが、復号順序において、アクセス単位内の最後のVCL NAL単位に続くことはできない。他のすべてのSEIメッセージは、SEIメッセージを含むSEI NAL単位のnuh_reserved_zero_6bitsが0と等しい時に、アクセス単位内の最初のVCL NAL単位に先行することができる。
[0090]nuh_reserved_zero_6bits構文要素は、スケーラブルビデオコーディングのレイヤまたはマルチビュービデオコーディングのビューを識別する。たとえば、nuh_reserved_zero_6bits構文要素は、スケーラブルビデオコーダのベースレイヤに関して0、またはマルチビュービデオコーディングのベースビューに関して0である。他のレイヤまたはビューのnuh_reserved_zero_6bits構文要素は、レイヤまたはビューを識別するのに使用される正の整数値である。スケーラブルビデオコーディングまたはマルチビュービデオコーディングが使用されない場合には、nuh_reserved_zero_6bitsは、0と仮定される。
[0091]表1に示されているように、バッファリング期間SEIメッセージ、ピクチャタイミングSEIメッセージ、およびサブピクチャタイミングSEIメッセージなどのさまざまなSEIメッセージは、仮想参照復号器(HRD)での遅延および除去時間を定義する。HRDは、コーディングされたピクチャバッファ(CPB)と復号されたピクチャバッファ(DPB)との特性を定義するのに使用されるモデルである。上で説明されたように、CPBは、復号の前に、符号化されたピクチャなどのビットストリームからのビデオデータを格納し、DPBは、復号されたピクチャを含む復号されたビデオデータを格納する。
[0092]一般に、各ビデオコーディング標準規格は、ビデオバッファリングモデルの仕様を含む。AVCおよびHEVCでは、バッファリングモデルは、仮想参照復号器(HRD)と呼ばれ、このHRDは、コーディングされたピクチャバッファ(CPB)と復号されたピクチャバッファ(DPB)の両方のバッファリングモデルを含み、CPB挙動およびDPB挙動は、数学的に指定される。HRDは、異なるタイミングと、バッファサイズと、ビットレートとに直接に制約を課し、ビットストリーム特性と統計とに間接的に制約を課す。HRDパラメータの完全なセットは、5つの基本パラメータすなわち、初期CPB除去遅延と、CPBサイズと、ビットレートと、初期DPB出力遅延と、DPBサイズとを含む。
[0093]AVCおよびHEVCでは、ビットストリーム適合および復号器適合は、HRD仕様の一部として指定される。HRDが、復号器の1タイプとしてラベルを付けられるが、HRDが、通常、ビットストリーム適合を保証するためにビデオ符号器20側で必要であることを理解されたい。HRDは、ビデオ復号器30側では必要でない可能性がある。たとえば、ビデオ符号器20は、CPBとDPBとのタイミング情報と他の特性とをSEIメッセージとしてシグナリングすることができ、ビデオ復号器30は、シグナリングされたSEIメッセージに基づいて、CPBとDPBとのタイミングと特性とを判定することができる。たとえば、SEIメッセージは、2タイプのビットストリームまたはHRD適合すなわち、タイプIおよびタイプIIを指定することができる。また、SEIメッセージは、2タイプのビデオ復号器30適合すなわち、出力タイミング復号器適合および出力順序復号器適合を指定することができる。
[0094]本開示で説明される技法では、ビデオ符号器20は、ビデオ復号器30のCPBが、アクセス単位レベルまたはサブアクセス単位レベル(サブピクチャレベルとも呼ばれる)のどちらで動作できるのかを指定することができる。上で説明されたように、ビデオ符号器20は、構文要素(たとえば、SubPicCpbFlag)を符号化し、出力する(たとえば、シグナリングする)。SubPicCpbFlagの値が0である場合には、サブピクチャレベルでのCPB動作は、許容されない。SubPicCpbFlagの値が1である場合には、サブピクチャレベルでのCPB動作は、許容される。
[0095]SEIメッセージは、アクセス単位内の復号単位に関する情報を提供することができる。たとえば、ピクチャタイミングSEIメッセージ(PT SEIメッセージ)は、num_nalus_in_du_minus1[i]構文要素を含む。num_nalus_in_du_minus1[i]構文要素+1は、第iの復号単位内のNAL単位の個数を示す。
[0096]いくつかの場合に、ビデオ復号器30は、どのNAL単位がどの復号単位に関連し/割り当てられているのかを判定するために、ビデオ符号器20によって出力されたnum_nalus_in_du_minus1[i]構文要素からの情報を利用することができる。例示的な例として、num_nalus_in_du_minus1[i]構文要素が、あるアクセス単位の第1の復号単位が3つのNAL単位に関連し、そのアクセス単位の第2の復号単位が2つのNAL単位に関連し、そのアクセス単位の第3の復号単位が2つのNAL単位に関連することを示すと仮定する。
[0097]この例では、ビデオ復号器30は、どのNAL単位がどの復号単位に関連するのかを、CPBがNAL単位を受け取る順序に基づいて判定する。たとえば、ビデオ復号器30は、CPBが受け取る最初の3つのNAL単位が、第1の復号単位に関連し、CPBが受け取る次の2つのNAL単位が、第2の復号単位に関連し、CPBが受け取る次の2つのNAL単位が、第3の復号単位に関連すると判定する。
[0098]しかし、どのNAL単位がどの復号単位に関連するのかを、各復号単位に関連するNAL単位の個数を示す構文要素に基づいて判定するビデオ復号器30は、誤り耐性がない。誤りを起こしやすいまたはロッシイな通信リンクでは、NAL単位のうちの1つまたは複数が失われる可能性がある。たとえば、リンク16が、誤りを起こしやすいかロッシイである場合に、NAL単位のうちの1つまたは複数が失われる可能性がある。もう1つの例として、出力インターフェース22からストレージデバイス32へのリンクまたは出力インターフェース32から入力インターフェース28へのリンクが、誤りを起こしやすいかロッシイである場合に、NAL単位のうちの1つまたは複数が失われる可能性がある。
[0099]NAL単位が失われる時に、ビデオ復号器30は、連続するNAL単位の消失の正確な位置および個数(ビデオ復号器30は、これを判定できない可能性がある)が既知でない限り、どのNAL単位がどの復号単位に関連するのかを正しく判定できない可能性がある。たとえば、以前の例で、第2のNAL単位が失われると仮定する。この場合に、ビデオ復号器30は、num_nalus_in_du_minus1[i]構文要素が、第1の復号単位が3つのNAL単位を含むことを示したので、最初の3つの受け取られたNAL単位が、第1の復号単位に関すると判定する。しかし、ビデオ符号器20は、この場合に、第3の受け取られたNAL単位を、第2の復号単位に関連付けた(やはり、第2のNAL単位は失われる)。したがって、ビデオ復号器30は、ビデオ復号器30が第3の受け取られたNAL単位を第2の復号単位に関連付けなければならかった時に、第3の受け取られたNAL単位を第1の復号単位に誤って関連付けた。
[0100]いくつかの例では、num_nalus_in_du_minus1[i]構文要素に加えてまたはその代わりに、ビデオ復号器30は、どのNAL単位がどの復号単位に関連するのかを、SEIメッセージの位置に基づいて判定することができる。一例として、ビデオ符号器20は、どのNAL単位がどの復号単位に関連するのかを示すために、アクセス単位内のサブピクチャタイミング(SPT)SEIメッセージの位置を利用することができ、ビデオ復号器30は、どのNAL単位がどの復号単位に関連するのかを判定するために、アクセス単位内のサブピクチャタイミングSPT SEIメッセージの位置を利用することができる。
[0101]たとえば、SPT SEIメッセージは、復号単位に関連するSEI NAL単位の一部である。SPT SEIメッセージは、復号単位がCPBから除去されなければならない時を示す情報を提供することができる。いくつかの例では、次のSPT SEIメッセージまでSPT SEIメッセージを含まないSEI NAL単位に続くすべてのNAL単位は、復号単位に関連すると考えられる。言い替えると、第1のSPT SEIメッセージと第2のSPT SEIメッセージとの間にはさまれたNAL単位と、第1のSPT SEIメッセージを含むSEI NAL単位とは、すべて、1つの復号単位に関連すると考えられる。
[0102]この形で、ビデオ復号器30のCPBが、第1のSPT SEIメッセージと共に第1のSEI NAL単位を受け取った後に、ビデオ復号器30は、第1のSEI NAL単位および次のSPT SEIメッセージを有する次のSEI NAL単位(すなわち、第2のSPT SEIメッセージを有する第2のSEI NAL単位)までのすべてのNAL単位が第1の復号単位に関連すると判定することができる。ビデオ復号器30は、第2のSEI NAL単位および次のSPT SEIメッセージを有する次のSEI NAL単位(すなわち、第3のSPT SEIメッセージを有する第3のSEI NAL単位)までのすべてのNAL単位が第2の復号単位に関連するなどと判定することもできる。
[0103]いくつかの場合に、どのNAL単位がどの復号単位に関連するのかを判定するためにSPT SEIメッセージの位置に頼ることも、誤り耐性がない可能性がある。一例として、SPT SEIメッセージの位置が、どのNAL単位が復号単位に関連するのかを定義するので、SPT SEIメッセージは、1つの復号単位内(すなわち、復号順序において、SPT SEIメッセージに直接に続くNAL単位の後、復号単位内の最後のNAL単位の前)で繰り返され得ない。たとえば、復号単位が4つのNAL単位を含むと仮定する。この例では、第1のSPT SEIメッセージは、その4つのNAL単位に先行するはずであり、第2のSPT SEIメッセージは、その4つのNAL単位に続くはずである。SPT SEIメッセージが、2つのSPT SEIメッセージの間に挿入された場合に、ビデオ復号器30は、最初の2つのNAL単位が、第1の復号単位に関し、第2の2つのNAL単位が、第2の異なる復号単位に関すると誤って判定するはずである。
[0104]しかし、関係するビデオデータが、コピーのうちの1つが失われる場合に別のコピーからリカバされ得るようにするために、復号単位内にSPT SEIメッセージの1つまたは複数のコピーを含めることが有益である可能性がある。上で説明されたように、SPT SEIメッセージは、復号単位がCBPから除去されなければならない時を示す情報を含むことができる。たとえば、誤りを起こしやすい環境またはロッシイな環境では、SPT SEIメッセージが失われる可能性があり、復号単位が除去されなければならない時を示すSPT SEIメッセージ内の情報が、失われる可能性がある。
[0105]たとえば、上で説明されたように、アクセス単位は、ピクチャのビデオデータを含み、復号単位は、アクセス単位のサブセットである(SubPicCpbFlagが1であると仮定して)。したがって、復号単位は、いくつかの例で、ピクチャの1つまたは複数のスライス(すなわち、ピクチャの副部分)のビデオデータを含む。ソースデバイス12は、復号単位の1つまたは複数のスライスをパケット(たとえば、リアルタイムトランスポートプロトコル(RTP)パケット)内で出力することができる。SPT SEIメッセージを含むパケットが失われる場合に、ビデオ復号器30は、復号単位の他のパケットのサブピクチャタイミング情報(たとえば、CPBからの除去時間)を正確に判定できない可能性がある。
[0106]各パケットが、SPT SEIメッセージを含む場合には、ビデオ復号器30が、複数のパケットのうちの別のパケットのSPT SEIメッセージのコピーからSPT SEIメッセージのサブピクチャタイミング情報を判定できるので、1つのパケットの消失は、復号プロセスに影響しないはずである。しかし、いくつかの他の技法では、ビデオ復号器30が、どのNAL単位がどの復号単位に関連したのかを判定するのにSEIメッセージの位置を使用したので、SPT SEIメッセージは、繰り返され得ない。言い替えると、復号単位内でのSPT SEIメッセージの繰返しの禁止は、どのNAL単位がどの復号単位に関連するのかを判定するためのより誤り耐性の低い方式をもたらす。いくつかの例では、本開示の技法は、復号単位内でのSPT SEIメッセージの繰返しの禁止を除去することができる。
[0107]下でより詳細に説明するように、本開示は、どのNAL単位がどの復号単位に関連するのかをビデオ復号器30が誤り耐性がある形で判定することを可能にする例の技法を説明する。たとえば、ビデオ符号器20は、復号単位の識別子を出力のために生成し、出力することができる。ビデオ復号器30は、NAL単位の個数を示す情報に頼ることが復号単位とNAL単位が受け取られる順序とに関連するのではなく、SPT SEIメッセージの位置に頼るのでもなく、どのNAL単位がどの復号単位に関連するのかを判定するのにこの識別子を利用することができる。復号単位識別子の出力および受取は、SPT SEIメッセージの複数のコピーをも可能にすることができ、これは、CPBからの復号単位の除去時間を判定する、ビデオ復号器30の能力の誤り耐性をさらに高める。
[0108]上は、SPT SEIメッセージが復号単位内で繰り返されることが許容されない例を説明した。いくつかの場合に、さまざまな他のタイプのSEIメッセージも、復号単位内で繰り返されることを禁止される可能性がある。たとえば、SPT SEIメッセージではなく、SEIメッセージを含むSEI NAL単位のnuh_reserved_zero_6bitsが、0と等しいことを示す任意のSEIメッセージは、復号順序において最初のVCL NAL単位の後、最後のNAL単位の前のSEIメッセージを含むアクセス単位内で繰り返されることを許容されない場合がある。
[0109]たとえば、いくつかの他の技法では、SEIメッセージは、ビデオ復号器30が新しいアクセス単位を処理しようとしていることを判定するのに使用される。言い替えると、コーディングされたビットストリーム内のSEIメッセージの位置は、アクセス単位の始めを示す。SEIメッセージが、アクセス単位内で繰り返される場合に、ビデオ復号器30は、新しいアクセス単位が処理されようとしていると誤って判定する可能性がある。SEIメッセージが、新しいアクセス単位を示したので、SEIメッセージのコピーは、これらの他の技法では禁止される可能性がある。
[0110]上に似て、アクセス単位が、誤りを起こしやすい環境で送信される複数のスライスを含む場合には、パケットが失われる場合にSEIメッセージがアクセス単位の他のパケットのうちの1つまたは複数からリカバされ得るようにするために、各パケット内にSEIメッセージのコピーを含めることが有益である可能性がある。より詳細に説明されるように、本開示で説明される技法は、さまざまなSEIメッセージの複数のコピーがアクセス単位内で繰り返されることを可能にすることができる。
[0111]たとえば、ビデオ復号器30は、新しいアクセス単位が処理されようとしていることを判定するために、SEIメッセージに頼る必要がない。そうではなく、ビデオ復号器30は、新しいアクセス単位が処理されようとしていることを判定するために、ある他のヘッダ情報に頼ることができる。SEIメッセージの存在が、新しいアクセス単位が処理されようとしていることを示すことから分離されるので、ビデオ符号器20は、アクセス単位内にSEIメッセージの複数のコピーを含めることができ、ビデオ復号器30は、新しいアクセス単位が処理されようとしていることを判定せずに、同一のアクセス単位内のSEIメッセージの複数のコピーを処理することができる。
[0112]本開示で説明される技法では、ビデオ符号器20は、各復号単位内で識別子(復号単位識別子、DU識別子、またはDU IDと呼ばれる)をシグナリングすることができる。DU識別子は、復号単位を一意に識別する識別子である。たとえば、復号順序においてアクセス単位内の第1の復号単位のDU識別子は、0とすることができ、復号順序においてアクセス単位内の第2の復号単位のDU識別子は、1とすることができ、以下同様である(すなわち、最初の復号単位のDU識別子は、0であり、後続の復号単位ごとに、DU識別子の値は1つ増える)。復号単位識別子を用いて復号単位を一意に識別する他の形が可能であり、技法は、復号順序において復号単位ごとにDU識別子を増やすことに限定されると考えられてはならない。
[0113]ビデオ符号器20がDU識別子をシグナリングする、さまざまな形がある可能性がある。たとえば、ビデオ符号器20は、復号単位のスライスのスライスヘッダ内および/またはSEIメッセージ(たとえば、SPT SEIメッセージ)内で、あるいは任意の他の形で、DU識別子をシグナリングすることができる。この場合に、復号単位へのNAL単位の関連付けは、シグナリングされたDU識別子に基づく。DU識別子を、NAL単位ヘッダなどの他の位置に含めることも可能である可能性がある。
[0114]NAL単位が、1つまたは複数のスライスに関する場合に、ビデオ復号器30は、どの復号単位に関して、NAL単位がスライスヘッダ内のDU識別子から関連付けられるのかを判定することができる。したがって、NAL単位内に消失がある場合であっても、ビデオ復号器30は、どのNAL単位がどの復号単位に関連するのかをDU識別子に基づいて判定できる可能性がある。
[0115]SEIメッセージがDU識別子を含む例では、SEIメッセージ(たとえば、SPT SEIメッセージ)が失われることが可能である可能性があり、その場合には、DU識別子が失われる可能性がある。いくつかの例では、ビデオ符号器20は、DU識別子が失われる可能性を最小にするために、復号単位内にSPT SEIメッセージのコピーを含めることができる。たとえば、上で説明されたように、いくつかの場合に、復号単位内のSPT SEIメッセージの位置は、どのNAL単位が復号単位に関連するのかを示すことができ、これは、SPT SEIメッセージの複数のコピーが存在することができないことを意味する。本開示で説明される技法では、ビデオ復号器30は、どのNAL単位がどの復号単位に関連するのかを判定するために、DU識別子を利用することができる。したがって、ビデオ復号器30は、どのNAL単位がどの復号単位に関連するのかを判定するために、SPT SEIメッセージの位置に頼る必要がない。これは、ビデオ符号器20が、コーディングされたビットストリーム内で復号単位内にSPT SEIメッセージの複数のコピーを含めることを可能にし、これは、SPT SEIメッセージの各コピーがDU識別子を含む場合に、DU識別子が失われる確率を下げる。
[0116]上で説明されたように、いくつかの例では、SEIメッセージは、SEIメッセージを含むアクセス単位内で、復号順序において最初のVCL NAL単位に続くことを許されない。いくつかの例では、ビデオ符号器20は、すべてのSEIメッセージが、SEIメッセージを含むアクセス単位内で、復号順序において最初のVCL NAL単位に続くことを許すことができる。しかし、SEIメッセージは、アクセス単位内で、復号順序において最後のVCL NAL単位の後に位置決めされ得ない。
[0117]一例として、ビデオ符号器20は、復号順序において最初のVCL NAL単位の前にSEIメッセージを含めることができる。ビデオ符号器20は、アクセス単位内で復号順序において最初のVCL NAL単位の後にSEIメッセージのコピーを含めることができる。この例では、ビデオ符号器20が、アクセス単位内で復号順序において最後のVCL NAL単位の後にSEIメッセージのコピーを含めることはできない。
[0118]ビデオ符号器20が、復号単位内またはアクセス単位内でさまざまなタイプのSEIメッセージを繰り返すことを可能にする例では、ビデオ符号器20は、SEIメッセージに関する追加情報を指定することができる。一例として、ビデオ符号器20は、SEIメッセージ内に担持される情報が適用される適用範囲を指定することができる。もう1つの例として、ビデオ符号器20は、SEIメッセージが、アクセス単位内および/または復号単位内で存在することができる場所を指定することができる。もう1つの例として、ビデオ符号器20は、特定のタイプのSEIメッセージの複数のインスタンスの内容に関する制限をセットすることができる。
[0119]ビデオ復号器30は、NAL単位内のデータを復号するために、SEIメッセージのそのような情報を利用する。いくつかの例では、ビデオ復号器30は、特定のタイプのSEIメッセージの複数のインスタンスの内容に関する制限を示す情報などのSEIメッセージの情報を用いて事前に構成され、またはSEIメッセージがアクセス単位内および/もしくは復号単位内で配置され得る場所の情報を用いて事前に構成され得る。これらの場合に、ビデオ符号器20が、SEIメッセージが存在できる場所を指定し、または特定のタイプのSEIメッセージの複数のインスタンスの内容に関する制限を示す情報をシグナリングすることが、必要ではない場合がある。
[0120]上で説明されたように、アクセス単位は、少なくとも1つのピクチャのビデオデータを含む。いくつかの例では、アクセス単位は、複数のレイヤのビデオデータを含むことができ、ビデオ符号器20は、high efficient video coding(HEVC)標準規格のマルチレイヤ拡張におけるものなど、複数のレイヤを有するビデオビットストリームを符号化することができる。
[0121]複数のレイヤは、ベースレイヤと1つまたは複数の非ベースレイヤとを含む。いくつかの例では、ベースレイヤは、ピクチャを構成するビデオデータを含むことができ、非ベースレイヤは、ベースレイヤのピクチャの品質を高めるビデオデータを含む空間または品質エンハンスメントレイヤ(spatial or quality enhancement layer)とすることができる。いくつかの例では、そのようなマルチビュービデオコーディングのための、ベースレイヤは、特定のビュー(たとえば、インター予測の他のビューを必要としないベースビュー)のピクチャのビデオデータを含むことができ、非ベースレイヤは異なるビューのテクスチャと、異なるビューの深さと、他のそのような例とを含むことができる。
[0122]本開示で説明される技法では、ビデオ符号器20は、異なるチャネル内で異なるレイヤをトランスポートすることができる(たとえば、IETF RFC 6190(http://tools.ietf.org/rfc/rfc6190.txtで公に入手可能)で同様に定義されるマルチセッション伝送(MST)を使用して。本開示で説明される技法は、マルチセッション伝送が複数レイヤの符号化に利用される例に拡張可能である。たとえば、アクセス単位内で最初のVCL NAL単位の後にSEIメッセージを含める、本開示で説明される技法は、マルチセッション伝送の例にも適用可能である。一例として、ビデオ符号器20は、SEI NAL単位をアクセス単位の最初のVCL NAL単位の前に移動する必要なしに、アクセス単位内の2つの連続するVCL NAL単位の間にSEI NAL単位を含めることができる。
[0123]SEI NAL単位は、マルチセッション伝送技法のSEIメッセージを含むので、ビデオ復号器30は、より単純化された形でパケット化解除プロセスを実施できる可能性がある。たとえば、ビデオ復号器30は、アクセス単位の始めからのすべてではなく、アクセス単位内からマルチセッション伝送技法のSEIメッセージを復号できる可能性がある。SEIメッセージの複数のコピーが、アクセス単位全体を通じて入手可能なので、ビデオ復号器30は、より効率的な形で、受け取られたパケットをパケット化解除できる可能性がある。
[0124]本開示の技法は、お互いに関連してまたは別々に適用され得る。たとえば、ビデオ符号器20がDU識別子を含む場合に、ビデオ符号器20は、必ずしもすべての例でSPT SEIメッセージの複数のコピーを含める必要があるのではなく、いくつかの例でSPT SEIメッセージの複数のコピーを含めることができる。もう1つの例として、ビデオ符号器20は、ビデオ符号器20がDU識別子を含まない場合であっても、さまざまなタイプのSEIメッセージの複数のコピーを含めることができる。もう1つの例として、ビデオ符号器20がDU識別子を含む例で、ビデオ符号器20は、必ずしもSPT SEIメッセージ以外のSEIメッセージの複数のコピーを含める必要がない。一般に、本開示で説明される技法は、情報がシグナリングにおいて失われる可能性がある誤りを起こしやすい環境のために誤り耐性の方式を提供する点で有利である可能性がある。
[0125]上で説明されたように、一例で、ビデオ符号器20は、スライスヘッダ内にDU識別子を含める。下の表2は、ビデオ符号器20がスライスヘッダ内にDU識別子を含めることができる形と、ビデオ復号器30がDU識別子を判定するためにスライスヘッダを解析できる形との例の擬似コードを提供する。
[0126]この例では、decoding_unit_idは、DU識別子を指し、スライスが属する復号単位の識別子を指定する。decoding_unit_idの値は、両端を含んで0からPicSizeInCtbsY−1までの範囲内とすることができる。PicSizeInCtbsYは、ピクチャ内のコーディングツリー単位(CTU:coding tree unit)の個数を示すことができ、これは、ピクチャのルマ成分のコーディングツリーブロック(CTB:coding treeblock)の個数と等しい。
[0127]ビデオ符号器20が、スライスヘッダ内に復号単位識別子を含む例では、DU識別子(たとえば、DU IDまたはduID)の特定の値によって識別される復号単位は、decoding_unit_idがDU識別子と等しいすべてのコーディングされたスライスNAL単位と、アクセス単位内のそれらに関連する非VCL NAL単位とを含むことができ、それらだけを含むことができる。1つのアクセス単位内で、それぞれduIDaおよびduIDb(duIDaはduIDbより小さい)と等しいdecoding_unit_idを有する任意の2つの復号単位(たとえば、復号単位Aおよび復号単位B)について、復号単位Aは、復号順序において復号単位Bに先行することができる。言い替えると、より小さいDU識別子を有する復号単位は、復号順序においてより大きいDU識別子を有する復号単位に先行する。さらに、ある復号単位のNAL単位は、復号順序において、別の復号単位の2つのNAL単位の間に存在することができない。言い替えると、上の例では、ある復号単位のNAL単位は、連続する。
[0128]上で説明されたように、いくつかの例で、ビデオ符号器20は、SEIメッセージ(たとえば、SPT SEIメッセージ)内にDU識別子を含めることができ、SPT SEIメッセージは、復号単位が除去されるべき時を示す情報を含む。以下は、ビデオ符号器20がSEIメッセージ内にDU識別子を含める、いくつかの例の技法を説明するものである。混乱を避けるために、以下では、サブピクチャタイミング(SPT)SEIメッセージの名前が、復号単位情報SEIメッセージに変更される。言い替えると、いくつかの例で、ビデオ符号器20は、CPBからの復号単位の除去時間を示す情報をも含むSEIメッセージ内でDU識別子を出力し、ビデオ復号器30は、これを受け取る。
[0129]下の表3は、ビデオ符号器20がSEIメッセージ内にDU識別子を含めることができる形と、ビデオ復号器30がDU識別子を判定するためにSEIメッセージを解析することができる形との例の擬似コードを提供する。以下では、サブピクチャタイミング(SPT)SEIメッセージの名前が、復号単位情報SEIメッセージに変更され、構文および意味論は、次の通りとすることができる。他の部分は、HEVC WD8と同一であるが、「サブピクチャタイミングSEIメッセージ」が「復号単位情報SEIメッセージ」に置換される。復号単位情報SEIメッセージは、SEIメッセージに関連する復号される単位のCPB除去時間(たとえば、CPB除去遅延情報)を提供することができる。
[0130]HEVC WD8では、サブピクチャタイミング(SPT)SEIメッセージは、表3に類似するものとすることができる。しかし、HEVC WD8のSPT SEIメッセージは、decoding_unit_id構文要素を含まず、du_cpb_removal_delay構文要素だけを含んだ。本開示で説明される例の技法のいくつかでは、SEIメッセージがdecoding_unit_idをも含むので、SPT SEIメッセージは、復号単位情報SEIメッセージに改名される。
[0131]いくつかの例では、ビデオ符号器20は、構文要素を出力のために生成し、出力し、ビデオ復号器30は、ビットストリーム内の復号単位情報SEIメッセージの存在を示す構文要素を受け取る。一例として、ビデオ符号器20は、CpbDpbDelaysPresentFlagとsub_pic_cpb_params_present_flagとを出力する。CpbDpbDelaysPresentFlagが1と等しく、sub_pic_cpb_params_present_flagが1と等しい場合に、ビデオ復号器30は、1つまたは1つより多数の復号単位情報SEIメッセージが、コーディングされたビデオシーケンス内の各復号単位内に存在する(すなわち、1つまたは複数の復号単位情報SEIメッセージ)と判定することができる。CpbDpbDelaysPresentFlagが0と等しい、またはsub_pic_cpb_params_present_flagが0と等しい場合には、ビデオ復号器30は、復号単位情報SEIメッセージが、コーディングされたビデオシーケンスのどのアクセス単位内にも存在しないと判定することができる。
[0132]本開示で説明される1つまたは複数の例によれば、復号単位情報SEIメッセージに関連するNAL単位とも呼ばれる、復号単位情報SEIメッセージが適用されるNAL単位は、復号順序において、復号単位情報SEIメッセージを含むSEI NAL単位と、decoding_unit_idの異なる値を有する復号単位情報SEIメッセージを含む任意の後続のSEI NAL単位まででこれを含まない、アクセス単位内のすべての後続のNAL単位とからなる。これらの例では、decoding_unit_idの定義は、表2に関して上で説明されたdecoding_unit_idの定義と同一とすることができるが、SEIメッセージ(たとえば、復号単位情報SEIメッセージ)内に含まれる。たとえば、DU識別子(たとえば、DU IDまたはduID)の特定の値によって識別される復号単位は、アクセス単位内のDU識別子と等しいdecoding_unit_idを有するすべての復号単位情報SEIメッセージに関連するすべてのNAL単位を含むことができ、それらだけを含むことができる。上と同様に、より小さい復号単位識別子を有する復号単位は、復号順序において、より大きい復号単位識別子を有する復号単位より前にある。上と同様に、ある復号単位のNAL単位は、復号順序において、別の復号単位の2つのNAL単位の間に存在することができない。
[0133]du_cpb_removal_delayは、先行するアクセス単位内の最も最近のバッファリング期間SEIメッセージに関連するアクセス単位内の最初の復号単位のCPBからの除去の後に、ビデオ復号器30が復号単位情報SEIメッセージに関連する復号単位をCPBから除去する前に、ビデオ復号器30が何個のサブピクチャクロックティックを待たなければならないのかを指定する。この値は、HEVC WD8のAnnex Cで指定されているように、仮想ストリームスケジューラ(HSS)のCPBへの復号単位データの到着の最も早い可能な時刻を計算するのにも使用され得る。
[0134]構文要素を、そのビット単位の長さがcpb_removal_delay_length_minus1+1によって与えられる固定長コードによって表すことができる。du_cpb_removal_delayは、modulo 2(cpb_removal_delay_length_minus1+1)カウンタの剰余とすることができる。
[0135]いくつかの例で、構文要素du_cpb_removal_delayの長さ(ビット単位)を決定するcpb_removal_delay_length_minus1の値は、復号単位情報SEIメッセージに関連するコーディングされたピクチャについてアクティブなシーケンスパラメータセット内でコーディングされたcpb_removal_delay_length_minus1の値とすることができる。しかし、du_cpb_removal_delayは、異なるコーディングされたビデオシーケンスのアクセス単位である可能性がある、バッファリング期間SEIメッセージを含む先行するアクセス単位内の最初の復号単位の除去時間に対する相対的なサブピクチャクロックティックの個数を指定する。
[0136]表3は、復号単位情報SEIメッセージが、以前にSPT SEIメッセージの一部であった情報を含み、メッセージに関連する復号単位のDU識別子をさらに含んだので、SPT SEIメッセージの名前が復号単位情報SEIメッセージに変更された、復号単位情報SEIメッセージの一例の例の擬似コードを提供した。いくつかの例では、潜在的に、サブピクチャタイミング(SPT)SEIメッセージに対する他の変更がある可能性がある。
[0137]たとえば、それぞれの内容全体が参照によって本明細書に組み込まれている、2012年9月24日に出願した米国特許仮出願第61/705,119号(以下では出願’119)および2012年10月1日に出願した米国特許仮出願第61/708,475号(以下では出願’475)は、HEVC WD8に記載のSPT SEIメッセージに対するSPT SEIメッセージに対するいくつかの可能な変更を説明するものである。出願’119および出願’475は、SPT SEIメッセージにアプリケーション動作点構文構造を含めることと、du_cpb_removal_delay構文要素を下で定義されるdu_spt_cpb_removal_delayに変更することとを説明するものである。
[0138]本開示で説明される技法は、SPT SEIメッセージがHEVC WD8から出願’119および出願’475のSPT SEIメッセージに変化した例にも適用可能である。下の表4は、ビデオ符号器20がSEIメッセージの代替の例でDU識別子をシグナリングできる形と、ビデオ復号器30がDU識別子を判定するためにSEIメッセージを解析できる形との例の擬似コードを提供する。復号単位情報SEIメッセージが、出願’119および出願’475に記載されているように、SPT SEIメッセージ内の情報に加えて、DU識別子を含むので、表3と同様に、混乱を避けるために、SPT SEIメッセージの名前は、復号単位情報SEIメッセージに変更される。
[0139]1と等しいsub_pic_cpb_params_in_pic_timing_sei_flagは、サブピクチャレベルCPB除去遅延パラメータが、ピクチャタイミングSEIメッセージ内に存在し、サブピクチャタイミングSEIメッセージが、存在しないことを指定する。0と等しいsub_pic_cpb_params_in_pic_timing_sei_flagは、サブピクチャレベルCPB除去遅延パラメータが、サブピクチャタイミングSEIメッセージ内に存在し、ピクチャタイミングSEIメッセージが、サブピクチャレベルCPB除去遅延パラメータを含まないことを指定する。
[0140]表3に関する上記と同様に、復号単位情報SEIメッセージは、SEIメッセージに関連する復号単位のCPB除去遅延情報を提供する。以下は、復号単位情報SEIメッセージの構文と意味論とにあてはまる可能性がある。
[0141]構文要素sub_pic_cpb_params_present_flag、sub_pic_cpb_params_in_pic_timing_sei_flag、およびcpb_removal_delay_length_minus1と変数CpbDpbDelaysPresentFlagとは、復号単位情報SEIメッセージが適用される動作点のいずれにも適用可能なhrd_parameters( )構文要素とsub_layer_hrd_parameters( )構文要素とに見出される構文要素に見出されまたはそれから導出され得る。ビットストリーム(またはその一部)は、復号単位情報SEIメッセージが適用される動作点のいずれかに関連するビットストリームサブセット(またはその一部)を指す。
[0142]表3に関する上記に似て、ビデオ符号器20は、ビデオ復号器30がビットストリーム内の復号単位SEIメッセージの存在を判定するのに利用するCpbDpbDelaysPresentFlagとsub_pic_cpb_params_present_flagとを出力する。表4の例では、CpbDpbDelaysPresentFlagが1と等しく、sub_pic_cpb_params_present_flagが1と等しい場合に、ビデオ復号器30は、指定された動作点に適用可能な1つの復号単位情報SEIメッセージが、コーディングされたビデオシーケンス内の各復号単位に存在すると判定することができる。そうではない(たとえば、CpbDpbDelaysPresentFlagが0と等しいまたはsub_pic_cpb_params_present_flagが0と等しい、のいずれか)場合に、ビデオ復号器30は、指定された動作点に適用可能な復号単位情報SEIメッセージが、コーディングされたビデオシーケンス内に存在しないと判定することができる。
[0143]表3に関する説明に似て、復号単位情報SEIメッセージが適用されるNAL単位は、復号単位情報SEIメッセージに関連するNAL単位とも呼ばれるが、復号順序において、復号単位情報SEIメッセージを含むSEI NAL単位と、decoding_unit_idの異なる値を有する復号単位情報SEIメッセージを含むすべての後続のSEI NAL単位まででこれを含まないアクセス単位内のすべての後続のNAL単位とからなる。decoding_unit_idの定義は、上で表3に関して説明されたものと同一とすることができ、より小さいDU識別子を有する復号単位は、復号順序において、より大きいDU識別子を有する復号単位より前にある。表4の例では、du_spt_cpb_removal_delayは、復号順序において復号単位情報SEIメッセージを含む現在のアクセス単位内の最後の復号単位のCPBからの除去と復号単位情報SEIメッセージに関連する復号単位との間のサブピクチャクロックティックの単位の(HEVC WD8のsubclause E.2.1を参照されたい)持続時間を指定することができる。この値は、HEVC WD8のAnnex Cで指定されているように、仮想シーケンススケジューラ(HSS)のCPBへの復号単位データの到着の最も早い可能な時刻を計算するのにも使用され得る。この構文要素は、そのビット単位の長さがdu_cpb_removal_delay_length_minus1+1によって与えられる固定長コードによって表され得る。復号単位情報SEIメッセージに関連する復号単位が、現在のアクセス単位内の最後の復号単位である時に。du_spt_cpb_removal_delayの値は、0と等しいものとすることができる。
[0144]代替案では、du_spt_cpb_removal_delayは、復号順序において復号単位情報SEIメッセージを含む現在のアクセス単位内の次の復号単位のCPBからの除去と、復号単位情報SEIメッセージに関連する復号単位との間のサブピクチャクロックティックの単位の(subclause E.2.1を参照されたい)持続時間を指定することができる。この値は、HEVC WD8のAnnex Cで指定されているように、HSSのCPBへの復号単位データの到着の最も早い可能な時刻を計算するのにも使用され得る。この構文要素は、そのビット単位の長さがdu_cpb_removal_delay_length_minus1+1によって与えられる固定長コードによって表される。復号単位情報SEIメッセージに関連する復号単位が、現在のアクセス単位内の最後の復号単位である時に、du_spt_cpb_removal_delayの値は、0と等しいものとすることができる。その代わりに、復号単位情報SEIメッセージが、各アクセス単位内の最後の復号単位に関連しないものとすることができる。
[0145]上の例は、どのNAL単位がどの復号単位に関連するのかを判定するのにビデオ復号器30が利用する復号単位識別子をシグナリングする技法を説明した。たとえば、スライスヘッダが、復号単位識別子を示す場合に、ビデオ復号器30は、スライスを含むNAL単位が、スライスヘッダ内で示された復号単位に関連すると判定することができる。もう1つの例として、SEIメッセージ(たとえば、復号単位情報SEIメッセージ)が、復号単位識別子を示す場合に、ビデオ復号器30は、前のSEIメッセージの復号単位識別子とは異なる復号単位識別子を有する復号単位情報SEIメッセージを含む次のSEI NAL単位までのSEIメッセージに続くすべてのNAL単位を判定する。これは、ビデオ符号器20が、復号単位情報SEIメッセージの複数のコピーを含めることを可能にし、これは同様に、ビデオ復号器30が、他の復号単位情報SEIメッセージのうちの1つが送信で失われる場合に複数の復号単位情報SEIメッセージのうちの1つからCPBからの復号単位の除去時間を判定することを可能にする。
[0146]いくつかの例では、ビデオ符号器20は、さまざまなタイプのSEIメッセージの複数のコピーを出力のために生成し、出力することができ、ビデオ復号器30は、それらを受け取ることができる。上で説明されたように、次の態様が、すべてのSEIメッセージについて指定される:a)SEIメッセージ内で担持される情報が適用される適用範囲と、b)SEIメッセージが存在することができる場所と、c)特定のタイプのSEIメッセージの複数のインスタンスの内容に関する制限。
[0147]次の規約が、適用範囲と、メッセージが存在することができる場所と、複数インスタンスSEIメッセージの内容に関する制限とを記述するために仮定される。SEIメッセージは、そのSEIメッセージを含むSEI NAL単位のNAL単位ヘッダ内のnuh_reserved_zero_6bitsの値に関連すると考えられる。以下では、nuh_reserved_zero_6bitsが、スケーラブルビデオコーディングのレイヤを識別するので、「レイヤID」が、「nuh_reserved_zero_6bits」と交換可能に使用される。
[0148]上と同様に、頭字語AUは、アクセス単位を表す。各バッファリング期間SEIメッセージ、ピクチャタイミングSEIメッセージ、またはサブピクチャタイミングSEIメッセージの適用可能な動作点は、出願’119および出願’475で指定される通りである。動作点は、OpLayerIdSetと表されるnuh_reserved_zero_6bits値のセットと、OpTidと表される時間識別値(TemporalId)と、独立に復号可能な入力としてOpTidおよびOpLayerIdSetと共にHEVC WD8のsub−clause 10.1で指定されるサブビットストリーム抽出プロセスの出力として導出される関連するビットストリームサブセットとによって識別される。
[0149]ピクチャのTemporalId値は、そのピクチャが他のピクチャのインター予測に使用され得るかどうかを示す。たとえば、第1のピクチャは、第1のピクチャのTemporalId値が第2のピクチャのTemporalId値より大きい場合に、第2のピクチャのインター予測に使用され得ない。この形で、最大のTemporalId値を有するピクチャは、そのピクチャが残りのピクチャのいずれのインター予測にも使用され得ないので、ビデオ復号に対する影響を全く伴わずに除去(抽出)され得る。同様に、最大のおよび次に最大のTemporalId値を有するピクチャは、これらのピクチャが残りのピクチャのいずれのインター予測にも使用され得ないので、ビデオ復号に対する影響を全く伴わずに除去され得、以下同様である。TemporalId値に基づくそのようなピクチャの除去は、ビデオ復号に影響せず、帯域幅利用を改善する(たとえば、ピクチャの除去に起因して)ことができるが、そのようなピクチャが除去される場合に、ビデオの品質に対する悪影響がある場合がある。
[0150]sub−clause 10.1で指定されるサブビットストリーム抽出プロセスは、適合に関するある要件を記述するものである。一例として、両端を含む0から6までの範囲内の任意のターゲットの最大TemporalId値を有するプロセスによってビットストリームから抽出された任意のサブビットストリームと、0と等しいnuh_reserved_zero_6bitsの値だけを含むターゲットレイヤ識別子リストとは、確認するビットストリームであると考えられる。
[0151]シーン期間は、シーン情報SEIメッセージを含むAUから始まり、復号順序において、シーン情報SEIメッセージまたはコーディングされたビデオシーケンスの終り(どちらであれ、復号順序においてより早いもの)を含む次のAUまでのすべてのAUを含むことができ、それらだけを含むことができる。ポストフィルタ期間は、ポストフィルタヒントSEIメッセージを含むAUから始まり、復号順序において、ポストフィルタヒントSEIメッセージまたはコーディングされたビデオシーケンスの終り(どちらであれ、復号順序においてより早いもの)を含む次のAUまでのすべてのAUを含むことができ、それらだけを含むことができる。
[0152]サブピクチャタイミングSEIメッセージが、復号単位IDを含まない場合には、復号単位は、サブピクチャタイミングSEIメッセージを含むSEI NAL単位から、サブピクチャタイミングSEIメッセージまたはAUの終り(どちらであれ、復号順序においてより早いもの)を含む次のSEI NAL単位までのAU内のNAL単位のセットを含むことができ、それらだけを含むことができる。そうでない場合には、復号単位は、サブピクチャタイミングSEIメッセージを含むSEI NAL単位から、復号単位IDの異なる値を有するサブピクチャタイミングSEIメッセージまたはAUの終り(どちらであれ、復号順序においてより早いもの)を含む次のSEI NAL単位までのAU内のNAL単位のセットを含むことができ、それらだけを含むことができる。
[0153]表5は、異なるタイプのSEIメッセージを示し、異なるタイプのSEIメッセージと、アクセス単位の時間識別値と、制限があるかどうかおよびSEIメッセージに対する制限のタイプとの間の関係を示す。たとえば、ビデオ符号器20は、SEIメッセージのタイプを判定することができ、アクセス単位の時間識別値を判定することができる。時間識別値およびSEIメッセージのタイプに基づいて、ビデオ符号器20は、SEIメッセージの存在が許容されるかどうかを判定することができる。
[0154]一例として、SEIメッセージタイプが、バッファ期間SEIメッセージであると仮定する。この例では、時間識別値が0と等しくない場合に、ビデオ符号器20は、バッファ期間SEIメッセージの存在が許容されないと判定することができる。もう1つの例として、SEIメッセージタイプが、ピクチャタイミングSEIメッセージであると仮定する。この例では、時間識別値にかかわりなく、ビデオ符号器20は、ピクチャタイミングSEIメッセージの存在が許容されると判定することができる。
[0155]本開示で説明される技法によれば、ビデオ符号器20およびビデオ復号器30は、本開示で説明される1つまたは複数の例の技法を実施するように構成されたビデオコーダの例である。たとえば、ビデオ符号器20は、復号単位の識別子をシグナリングする(たとえば、復号単位の識別子を符号化し、シグナリングする)ことができ、ビデオ復号器30は、復号単位の識別子を受け取る(たとえば、復号単位の識別子を受け取り、復号する)ことができる。この意味で、ビデオ符号器20およびビデオ復号器30などのビデオコーダは、復号単位の識別子をコーディングする(たとえば、符号化するか復号する)ように構成され得る。
[0156]ビデオコーダは、あるアクセス単位内のある復号単位の識別子が、そのアクセス単位内のすべての他の復号単位の識別子と異なるように、アクセス単位内の各復号単位の一意の識別子をコーディングするように構成され得る。いくつかの例では、ビデオコーダは、復号単位のそれぞれの一意識別子に基づいて、ネットワーク抽象化レイヤ(NAL)単位をアクセス単位内の復号単位に関連付けることができる。また、いくつかの例では、ビデオコーダは、復号単位内またはアクセス単位内で、付加拡張情報(SEI)メッセージを繰り返すことができる。
[0157]各DUをコーディングするために、ビデオコーダは、第1のDUの第1の識別子をコーディングし、第2の異なるDUの第2の異なる識別子をコーディングすることができる。この例では、第2の識別子は、第1の識別子を1つ増分したものとすることができる。
[0158]いくつかの例では、ビデオコーダは、スライスヘッダ内の復号ごとに一意識別子をコーディングすることができる。これらの例では、一意識別子は、スライスが属する復号単位を識別することができ、ビデオコーダは、スライスを含むNAL単位がスライスヘッダ内の復号単位識別子によって識別される復号単位に関連することを判定することができる。いくつかの例では、ビデオコーダは、SEIメッセージ内の復号単位の一意識別子をコーディングすることができる。たとえば、ビデオコーダは、復号単位がコーディングされたピクチャバッファ(CPB)から除去されなければならない時に関する情報をも含むSEIメッセージ(たとえば、復号単位情報SEIメッセージ)内で一意識別子をコーディングすることができる。復号単位の一意識別子は、復号単位情報SEIメッセージを含む復号単位を識別することができる。
[0159]1つまたは複数の例の技法では、ビデオコーダは、アクセス単位内の第1の復号単位の第1識別子をコーディングし、そのアクセス単位内の第2の異なる復号単位の第2の異なる識別子をコーディングすることができる。いくつかの例では、第1の識別子の値が第2の識別子の値より小さい時に、第1の復号単位は、復号順序において第2の復号単位に先行するものとすることができる。いくつかの例では、ビデオコーダは、復号順序においてのアクセス単位内のすべての復号単位のリストへの復号単位のインデックスとして、各復号単位の一意識別子をコーディングすることができる。
[0160]いくつかの例では、ビデオコーダは、アクセス単位(AU)内で、第1のビデオコーディングレイヤ(VCL)ネットワーク抽象化レイヤ(NAL)単位をコーディングすることができる。ビデオコーダは、復号順序において第1のVCL NAL単位に続く付加拡張情報(supplementation enhancement information)(SEI)メッセージをコーディングすることもできる。いくつかの例では、ビデオコーダは、SEIメッセージが復号順序においてAU内の最後のVCL NAL単位に先行するようにSEIメッセージをコーディングすることもできる。
[0161]図2Aおよび図2Bは、本開示で説明される技法による、復号単位識別子を含むアクセス単位の例を示す概念図である。図2Aは、アクセス単位34を示し、図2Bは、アクセス単位50を示す。アクセス単位34およびアクセス単位50は、少なくとも1つのピクチャを復号するのに必要なビデオデータ(たとえば、1つのピクチャまたは同一の時間瞬間の異なるビューの複数のピクチャを復号するための1つまたは複数のレイヤ)を含む。ビデオ符号器20は、ビデオ復号器30がリンク16またはストレージデバイス32を介して受け取るコーディングされたビットストリームの一部として、アクセス単位34またはアクセス単位50を出力する。
[0162]図2Aおよび図2Bでは、アクセス単位34およびアクセス単位50は、複数の復号単位を含み、これは、ビデオ符号器20が、サブピクチャレベルでの動作がアクセス単位34およびアクセス単位50について許容されることをビデオ復号器30に示すために、アクセス単位34およびアクセス単位50のSubPicCpbFlagを1として出力したことを意味する。
[0163]図2Aでは、アクセス単位34は、復号単位36A〜36C(集合的に「復号単位36」と呼ばれる)を含む。復号単位36Aは、第1のSEI NAL単位38Aと第2のSEI NAL単位38Bとを含む。SEI NAL単位38Aと38Bの両方が、復号単位36Aの除去時間に関する情報を示し、復号単位36Aの復号単位識別子をも含むSEIメッセージ(たとえば、復号単位情報SEIメッセージ)を含む。復号単位36Aも、NAL単位40A〜40Dを含む。
[0164]復号単位36Bは、復号単位36Bの除去時間に関する情報を示し、復号単位36Bの復号単位識別子をも含むSEIメッセージを含む第3のSEI NAL単位42を含む。復号単位36Bの復号単位識別子は、復号単位36Aの復号単位識別子とは異なる(たとえば、復号単位36Aの復号単位識別子より1つ大きい)。復号単位36Bも、NAL単位44Aと44Bとを含む。
[0165]復号単位36Cは、第4のSEI NAL単位46Aと第5のSEI NAL単位46Bとを含む。SEI NAL単位46Aと46Bの両方が、復号単位36Cの除去時間に関する情報を示し、復号単位36Cの復号単位識別子をも含むSEIメッセージ(たとえば、復号単位情報SEIメッセージ)を含む。復号単位36Cも、NAL単位48Aと48Bとを含む。
[0166]ビデオ復号器30は、どのNAL単位がどの復号単位に関連するのかを、復号単位情報SEIメッセージに基づいて判定することができる。たとえば、ビデオ復号器30は、SEI NAL単位38Aの復号単位情報SEIメッセージが、復号単位36Aの復号単位識別子を含んだので、SEI NAL単位38Aに続くSEI NAL単位38AとNAL単位(たとえば、NAL単位40Aおよび40B)とが、復号単位36Aに関連すると判定することができる。その後、ビデオ復号器30は、SEI NAL単位38Bの復号単位情報SEIメッセージが、SEI NAL単位38Aの復号単位情報SEIメッセージのコピーである(たとえば、同一の除去時間情報と同一の復号単位識別子とを含む)ので、SEI NAL単位38Bも、復号単位36Aの一部であると判定することができる。この例では、ビデオ復号器30は、NAL単位40Cおよび40Dが、SEI NAL単位38Bに続き、復号単位情報SEIメッセージを有する別のSEI NAL単位に先行するので、NAL単位40Cおよび40Dも、復号単位36Aに関連すると判定することができる。
[0167]ビデオ復号器30は、SEI NAL単位42の復号単位情報SEIメッセージ内の復号単位識別子が、SEI NAL単位38Aおよび38Bの復号単位情報SEIメッセージ内の復号単位識別子と異なるので、SEI NAL単位42が、復号単位36Aに属さないと判定することができる。この場合に、ビデオ復号器30は、SEI NAL単位42が、別の復号単位(たとえば、復号単位36B)に関連すると判定することができ、NAL単位44Aおよび44Bが、SEI NAL単位42に続き、異なる復号単位識別子を含む復号単位情報SEIメッセージを有する別のSEI NAL単位に先行するので、NAL単位44Aおよび44Bも、復号単位36Bに関連すると判定することができる。
[0168]ビデオ復号器30は、SEI NAL単位46Aの復号単位情報SEIメッセージ内の復号単位識別子が、前の復号単位識別子と異なる(たとえば、前の識別子より1つ大きい)ので、SEI NAL単位46Aが、異なる復号単位(たとえば、復号単位36C)に関連すると判定することができる。ビデオ復号器30は、NAL単位48Aが、SEI NAL単位46Aに続き、復号単位情報SEIメッセージを含むSEI NAL単位46Bに先行するので、NAL単位48Aが、復号単位36Cに関連すると判定する。
[0169]この例では、SEI NAL単位46Bは、SEI NAL単位46Aの復号単位情報SEIメッセージと同一の復号単位識別子を含む復号単位情報SEIメッセージを含む(たとえば、これらの復号単位情報SEIメッセージがコピーである)。ビデオ復号器30は、NAL単位48Bが、アクセス単位34内の最後のNAL単位なので、NAL単位48Bが、復号単位36Cに関連すると判定することができる。
[0170]図2Aでは、復号単位情報SEIメッセージの例は、表3および表4に関して上で説明された例を含む。また、図2Aでは、復号単位に属するNAL単位は、連続する(すなわち、他の復号単位のNAL単位は、ある復号単位のNAL単位の間に散在させられない)。
[0171]図2Aでは、ビデオ符号器20は、対応する復号単位内の各復号単位の復号単位識別子を出力のために生成し、出力することができる。たとえば、ビデオ符号器20は、対応する復号単位36A内のSEI NAL単位38AおよびSEI NAL単位38Bの復号単位情報SEIメッセージ内に復号単位識別子を含め、SEI NAL単位38Aおよび38Bの復号単位情報SEIメッセージの一部として復号単位識別子を出力する。ビデオ符号器20は、対応する復号単位38B内のSEI NAL単位42の復号単位情報SEIメッセージ内に復号単位識別子を含め、対応する復号単位36C内のSEI NAL単位46AおよびSEI NAL単位46Bの復号単位SEIメッセージ内に復号単位識別子を含める。これらの例では、ビデオ符号器20は、SEI NAL単位42、46A、および46Bのそれぞれの復号単位SEIメッセージの一部として復号単位識別子を出力する。
[0172]復号単位SEIメッセージを含めることは、ビデオ復号器30が、どのNAL単位がどの復号単位に関連するのかを、復号単位識別子に基づいて判定することを可能にし、その結果、NAL単位が失われる場合であっても、ビデオ復号器30は、どのNAL単位がどの復号単位に関連するのかを、それでも判定できるようになる。たとえば、NAL単位40Cが失われると仮定する。この例では、ビデオ復号器30は、それでも、NAL単位40Dの復号単位情報SEIメッセージが復号単位36Aの復号単位識別子を示したSEI NAL単位38Bの後にあり、その復号単位情報SEIメッセージが復号単位36Bの復号単位識別子を示したSEI NAL単位42に先行するので、NAL単位40Dが、復号単位36Aに関連すると判定することができる。さらに、復号単位識別子を示す復号単位SEIメッセージに関して、ビデオ符号器20は、復号単位に復号単位SEIメッセージの複数のコピーを含めることができる。
[0173]図2Bに示されているように、アクセス単位50は、復号単位52A〜52C(集合的に「復号単位52」と呼ばれる)を含む。復号単位52Aは、スライスNAL単位54Aと54Bとを含み、復号単位52Bは、スライスNAL単位64A〜64Cを含み、復号単位52Cは、スライスNAL単位78Aと78Bとを含む。各スライスNAL単位は、スライスヘッダとスライス本体とを含む。スライスヘッダは、復号単位識別子を含むヘッダ情報を含み、スライス本体は、スライスを復号するためのビデオデータを含む。
[0174]たとえば、スライスNAL単位54Aは、スライスヘッダ56とスライス本体58とを含み、スライスNAL単位54Bは、スライスヘッダ60とスライス本体62とを含む。この例では、スライスNAL単位54Aのスライスヘッダ56とスライスNAL単位54Bのスライスヘッダ60とは、それぞれ、同一の復号単位識別子を含み、ビデオ復号器30は、この復号単位識別子を利用して、NAL単位54AとNAL単位54Bとが同一の復号単位(たとえば、復号単位52A)に関連すると判定する。
[0175]スライスNAL単位64Aは、スライスヘッダ66とスライス本体68とを含み、スライスNAL単位64Bは、スライスヘッダ70とスライス本体72とを含み、スライスNAL単位64Cは、スライスヘッダ74とスライス本体76とを含む。この例では、スライスNAL単位64Aのスライスヘッダ66と、スライスNAL単位64Bのスライスヘッダ70と、スライスNAL単位64Cのスライスヘッダ74とは、それぞれ、同一の復号単位識別子を含み、ビデオ復号器30は、この復号単位識別子を利用して、NAL単位64AとNAL単位64BとNAL単位64Cとが同一の復号単位(たとえば、復号単位52B)に関連すると判定する。
[0176]スライスNAL単位78Aは、スライスヘッダ80とスライス本体82とを含み、スライスNAL単位78Bは、スライスヘッダ84とスライス本体86とを含む。この例では、スライスNAL単位78Aのスライスヘッダ80とスライスNAL単位78Bのスライスヘッダ84とのそれぞれは、同一の復号単位識別子を含み、ビデオ復号器30は、この復号単位識別子を利用して、NAL単位78AとNAL単位78Bとが同一の復号単位(たとえば、復号単位52C)に関連すると判定する。
[0177]図2Bでは、復号単位情報SEIメッセージの例が、表2に関して上で説明された例を含む。図2Aに似て、図2Bでは、復号単位に属するNAL単位は、連続する(すなわち、他の復号単位のNAL単位は、ある復号単位のNAL単位の間に散在させられない)。
[0178]図示されているように、ビデオ符号器20は、対応する復号単位52Aのスライスヘッダ56および60内に復号単位識別子を含め、スライスヘッダ56および60の一部として復号単位識別子を出力する。また、ビデオ符号器20は、対応する復号単位52Bのスライスヘッダ66、70、および74内に復号単位識別子を含め、スライスヘッダ66、70、および74の一部として復号単位識別子を出力する。同様に、ビデオ符号器20は、対応する復号単位52Cのスライスヘッダ80および84内に復号単位識別子を含め、スライスヘッダ80および84の一部として復号単位識別子を出力する。
[0179]図2Bに示された例では、ビデオ復号器30は、どのスライスNAL単位がどの復号単位に関連するのかを判定するために、SPT SEIメッセージの位置に頼る必要がない。そうではなく、ビデオ復号器30は、どのスライスNAL単位がどの復号単位に関連するのかを判定するために、スライスNAL単位のスライスヘッダ内で示された復号単位識別子を利用する。この場合に、スライスNAL単位(たとえば、スライスNAL単位56B)が失われる場合であっても、ビデオ復号器30は、それでも、スライスヘッダに基づいて、どのNAL単位がどの復号単位に関連するのかを判定することができる可能性がある。
[0180]図3は、本開示で説明される技法を実施することができる例のビデオ符号器20を示すブロック図である。ビデオ符号器20は、ビデオスライス内のビデオブロックのイントラコーディングとインターコーディング(イントラ予測符号化またはイントラ予測復号とインター予測符号化またはインター予測復号と)を実行することができる。イントラコーディングは、所与のビデオフレームまたはピクチャ内のビデオ内の空間的冗長性を減らすか除去するために空間予測に頼る。インターコーディングは、ビデオシーケンスの隣接するフレームまたはピクチャ内のビデオ内の時間的冗長性を減らすか除去するために時間予測に頼る。イントラモード(Iモード)は、複数の空間ベースの圧縮モードのいずれをも指すことができる。単一方向予測(Pモード)または両方向(Bモード)などのインターモードは、複数の時間ベースの圧縮モードのいずれをも指すことができる。
[0181]図3の例では、ビデオ符号器20は、区分ユニット135と、予測処理ユニット141と、フィルタユニット163と、基準ピクチャメモリ164(時々、復号されたピクチャバッファと呼ばれる)と、合計器150と、変換処理ユニット152と、量子化処理ユニット154と、エントロピ符号化ユニット156とを含む。予測処理ユニット141は、動き推定ユニット142と、動き補償ユニット144と、イントラ予測ユニット146とを含む。ビデオブロック再構成のために、ビデオ符号器20は、また、逆量子化処理ユニット158と、逆変換処理ユニット160と、合計器162とを含む。フィルタユニット163は、全体的に、デブロッキングフィルタ、適応ループフィルタ(ALF)、およびサンプル適応オフセット(SAO)フィルタなどの1つまたは複数のループフィルタを表すことができる。フィルタユニット163は、図3ではインループフィルタであるものとして図示されているが、他の構成では、フィルタユニット163は、ポストループフィルタとして実施され得、この場合に、フィルタリングされていないデータが、コーディングループ内で使用され得る。
[0182]図3に示されているように、ビデオ符号器20は、ビデオデータを受け取り、区分ユニット135は、そのデータをビデオブロックに区分する。この区分は、スライス、タイル、または他のより大きい単位への区分、ならびにたとえばLCUおよびCUの4分木構造に従う、ビデオブロック区分をも含むことができる。ビデオ符号器20は、一般に、符号化されるビデオスライス内のビデオブロックを符号化するコンポーネントを示す。スライスは、複数のビデオブロックに(およびおそらくはタイルと呼ばれるビデオブロックのセットに)分割され得る。予測処理ユニット141は、誤差結果(たとえば、コーディングレートおよび歪みのレベル)に基づいて現在のビデオブロックの、複数のイントラコーディングモードのうちの1つまたは複数のインターコーディングモードのうちの1つなど、複数のコーディングモードのうちの1つを選択することができる。予測処理ユニット141は、残差ブロックデータ生成するために合計器150に、および、基準ピクチャとしての使用のために符号化されたブロックを再構成するために合計器162に、結果のイントラコーディングされたまたはインターコーディングされたブロックを供給することができる。
[0183]予測処理ユニット141内のイントラ予測ユニット146は、空間圧縮を提供するために、コーディングされる現在のブロックと同一のフレームまたはスライス内の1つまたは複数の隣接するブロックに対する現在のビデオブロックのイントラ予測コーディングを実行することができる。予測処理ユニット141内の動き推定ユニット142および動き補償ユニット144は、時間圧縮を提供するために、1つまたは複数の基準ピクチャ内の1つまたは複数の予測ブロックに対する現在のビデオブロックのインター予測コーディングを実行する。
[0184]動き推定ユニット142は、ビデオシーケンスの所定のパターンに従ってビデオスライスのインター予測モードを判定するように構成され得る。所定のパターンは、シーケンス内のビデオスライスをPスライス、Bスライス、またはGPBスライスとして指定することができる。動き推定ユニット142および動き補償ユニット144は、非常に一体化され得るが、概念的な目的のために別々に図示されている。動き推定ユニット142によって実行される動き推定は、ビデオブロックの動きを推定する動きベクトルを生成するプロセスである。動きベクトルは、たとえば、基準ピクチャ内の予測ブロックに対する相対的な、現在のビデオフレームまたはピクチャ内のビデオブロックのPUの変位を示すことができる。
[0185]予測ブロックは、sum of absolute difference(SAD)、sum of square difference(SSD)、または他の差メトリックによって判定され得る画素差に関して、コーディングされるビデオブロックのPUによく一致することがわかるブロックである。いくつかの例で、ビデオ符号器20は、基準ピクチャメモリ164に格納された基準ピクチャのサブ整数画素位置の値を計算することができる。たとえば、ビデオ符号器20は、基準ピクチャの1/4画素位置、1/8画素位置、または他の分数画素位置の値を補間することができる。したがって、動き推定ユニット142は、フル画素位置と分数画素位置とに対する動き検索を実行し、分数画素精度を有する動きベクトルを出力することができる。
[0186]動き推定ユニット142は、PUの位置を基準ピクチャの予測ブロックの位置と比較することによって、インターコーディングされたスライス内のビデオブロックのPUの動きベクトルを計算する。基準ピクチャは、第1の基準ピクチャリスト(リスト0)または第2の基準ピクチャリスト(リスト1)から選択され得、これらのリストのそれぞれは、基準ピクチャメモリ164に格納された1つまたは複数の基準ピクチャを識別する。動き推定ユニット142は、計算された動きベクトルをエントロピ符号化ユニット156と動き補償ユニット144とに送る。
[0187]動き補償ユニット144によって実行される動き補償は、おそらくはサブ画素精度で補間を実行する動き推定によって判定された動きベクトルに基づいて予測ブロックを取り出すことまたはこれを生成することを含むことができる。現在のビデオブロックのPUの動きベクトルを受け取る時に、動き補償ユニット144は、基準ピクチャリストの1つの中で、動きベクトルがポイントする予測ブロックを配置することができる。ビデオ符号器20は、コーディングされる現在のビデオブロックの画素値から予測ブロックの画素値を減算し、画素差値を形成することによって、残差ビデオブロックを形成する。画素差値は、ブロックの残差データを形成し、ルマ差成分とクロマ差成分の両方を含むことができる。合計器150は、この減算演算を実行する1つまたは複数のコンポーネントを表す。動き補償ユニット144は、ビデオスライスのビデオブロックを復号する際のビデオ復号器30による使用のために、ビデオブロックとビデオスライスとに関連する構文要素をも生成することができる。
[0188]イントラ予測ユニット146は、上で説明された動き推定ユニット142および動き補償ユニット144によって実行されるインター予測の代替案として、現在のブロックをイントラ予測することができる。具体的には、イントラ予測ユニット146は、現在のブロックを符号化するのに使用されるイントラ予測モードを判定することができる。いくつかの例では、イントラ予測ユニット146は、たとえば別々の符号化パス中に、さまざまなイントラ予測モードを使用して現在のブロックを符号化することができ、イントラ予測ユニット146(または、いくつかの例でモード選択ユニット(図示せず))は、テストされたモードから使用すべき適当なイントラ予測モードを選択することができる。たとえば、イントラ予測ユニット146は、さまざまなテストされたイントラ予測モードのレート−歪み分析を使用してレート−歪み値を計算し、テストされたモードの中で最良のレート−歪み特性を有するイントラ予測モードを選択することができる。レート−歪み分析は、一般に、符号化されたブロックと、その符号化されたブロックを作るために符号化されたオリジナルの符号化されていないブロックとの間の歪み(または誤差)の量ならびにその符号化されたブロックを作るのに使用されたビットレート(すなわち、ビット数)を判定する。イントラ予測ユニット146は、どのイントラ予測モードがブロックの最良のレート−歪み値を示すのかを判定するために、さまざまな符号化されたブロックの歪みとレートとから比率を計算することができる。
[0189]どの場合でも、ブロックのイントラ予測モードを選択した後に、イントラ予測ユニット146は、ブロックの選択されたイントラ予測モードを示す情報をエントロピ符号化ユニット156に提供することができる。エントロピ符号化ユニット156は、本開示の技法に従って、選択されたイントラ予測モードを示す情報を符号化することができる。ビデオ符号器20は、送信されるビットストリーム内に構成データを含めることができ、この構成データは、複数のイントラ予測モードインデックステーブルおよび複数の変更されたイントラ予測モードインデックステーブル(符号語マッピングテーブルとも呼ばれる)と、さまざまなブロックの符号化コンテキストの定義と、最も有望なイントラ予測モード、イントラ予測モードインデックステーブル、およびコンテキストのそれぞれについて使用すべき変更されたイントラ予測モードインデックステーブルの表示とを含むことができる。
[0190]予測処理ユニット141が、インター予測またはイントラ予測のいずれかを介して現在のビデオブロックの予測ブロックを生成した後に、ビデオ符号器20は、現在のビデオブロックから予測ブロックを減算することによって残差ビデオブロックを形成する。残差ビデオブロック内の残差ビデオデータは、1つまたは複数のTU内に含められ得、変換処理ユニット152に適用され得る。変換処理ユニット152は、離散コサイン変換(DCT)または概念的に類似する変換などの変換を使用して、残差ビデオデータを残差変化係数に変換する。変換処理ユニット152は、残差ビデオデータを画素領域から周波数領域などの変換領域に変換することができる。
[0191]変換処理ユニット152は、結果の変換係数を量子化処理ユニット154に送ることができる。量子化処理ユニット154は、ビットレートをさらに減らすために、変換係数を量子化する。量子化処理は、係数の一部またはすべてに関連するビット深さを減らすことができる。量子化の度合は、量子化パラメータを調整することによって変更され得る。いくつかの例では、量子化処理ユニット154は、量子化された変換係数を含む行列のスキャンを実行することができる。代替案では、エントロピ符号化ユニット156がスキャンを実行することができる。
[0192]量子化に続いて、エントロピ符号化ユニット156が、量子化された変換係数をエントロピ符号化する。たとえば、エントロピ符号化ユニット156は、context adaptive variable length coding(CAVLC)、context adaptive binary arithmetic coding(CABAC)、syntax−based context−adaptive binary arithmetic coding(SBAC)、probability interval partitioning entropy(PIPE)コーディング、または別のエントロピ符号化方法論もしくはエントロピ符号化技法を実行することができる。エントロピ符号化ユニット156によるエントロピ符号化に続いて、符号化されたビットストリームは、ビデオ復号器30に送信されまたは後の送信もしくはビデオ復号器30による取出のためにアーカイブされ得る。エントロピ符号化ユニット156は、コーディングされつつある現在のビデオスライスの動きベクトルおよび他の構文要素をエントロピ符号化することもできる。
[0193]逆量子化処理ユニット158および逆変換処理ユニット160は、基準ピクチャの基準ブロックとしての後の使用のために画素領域の残差ブロックを再構成するために、それぞれ逆量子化と逆変換とを適用する。動き補償ユニット144は、基準ピクチャリストのうちの1つ内の基準ピクチャのうちの1つの予測ブロックに残差ブロックを加算することによって、基準ブロックを計算することができる。動き補償ユニット144は、動き推定での使用のためのサブ整数画素値を計算するために、再構成された残差ブロックに1つまたは複数の補間フィルタを適用することもできる。合計器162は、基準ピクチャメモリ164での格納のために基準ブロックを作るために、動き補償ユニット144によって作られた動き補償された予測ブロックに再構成された残差ブロックを加算する。基準ブロックは、後続のビデオフレームまたはピクチャ内のブロックをインター予測するための基準ブロックとして、動き推定ユニット142および動き補償ユニット144によって使用され得る。
[0194]図3のビデオ符号器20は、本明細書で説明される技法のうちの1つまたは複数を実施するように構成されたビデオ符号器の例である。たとえば、予測処理ユニット141は、上で説明された例の機能を実行する1つの例のユニットを表す。予測処理ユニット141は、NAL単位を生成し、そのNAL単位をアクセス単位の復号単位に関連付けることができる。予測処理ユニット141は、復号単位識別子を生成し、SEI NAL単位の復号単位情報SEIメッセージ内に復号単位識別子を含め、かつ/またはスライスNAL単位のスライスのスライスヘッダ内に復号単位識別子を含めることができる。エントロピ符号化ユニット156は、復号単位(たとえば、復号単位内のNAL単位)をエントロピ符号化することができる。
[0195]いくつかの例では、予測処理ユニット141とは異なるユニットが、上で説明された例を実施することができる。いくつかの例では、予測処理ユニット141は、ビデオ符号器20の1つまたは複数の他のユニットに関連して、上で説明された例を実施することができる。いくつかの例では、ビデオ符号器20のプロセッサまたはユニット(図3には図示せず)は、単独でまたはビデオ符号器20の他のユニットに関連して、上で説明された例を実施することができる。
[0196]図4は、本開示の技法を実施することができる例のビデオ復号器30を示すブロック図である。図4の例では、ビデオ復号器30は、エントロピ復号ユニット180と、予測処理ユニット181と、逆量子化処理ユニット186と、逆変換処理ユニット188と、合計器190と、フィルタユニット191と、基準ピクチャメモリ192(時々、復号ピクチャバッファ(DPB:decoding picture buffer)と呼ばれる)と、コーディングされたピクチャバッファ(CPB)194とを含む。予測処理ユニット181は、動き補償ユニット182とイントラ予測ユニット184とを含む。ビデオ復号器30は、いくつかの例で、図3のビデオ符号器20に関して説明された符号化パスに対して全般的に逆である復号パスを実行することができる。
[0197]復号プロセス中に、ビデオ復号器30は、ビデオ符号器20から、符号化されたビデオスライスのビデオブロックと関連する構文要素とを表す符号化されたビデオビットストリームを受信する。ビデオ復号器30は、ネットワークエンティティ29から符号化されたビデオビットストリームを受信することができる。ネットワークエンティティ29は、たとえば、サーバ、メディアアウェアネットワーク要素(MANE:media-aware network element)、ビデオエディタ/スプライサ、または上で説明された技法のうちの1つまたは複数を実施するように構成された他のそのようなデバイスとすることができる。上で説明されたように、本開示で説明される技法のいくつかは、ネットワーク29が符号化されたビデオビットストリームをビデオ復号器30に送信する前に、ネットワークエンティティ29によって実施され得る。いくつかのビデオ復号システムでは、ネットワークエンティティ29およびビデオ復号器30は、別々のデバイスの一部とすることができるが、他の実例では、ネットワークエンティティ29に関して説明される機能性が、ビデオ復号器30を備えるものと同一のデバイスによって実行され得る。
[0198]コーディングされたピクチャバッファ194は、ネットワークエンティティ29からコーディングされたピクチャを受け取る。本開示で説明されるように、符号化されたビットストリーム内の構文要素の一部は、CPB194へのサブピクチャレベルアクセスが許容されるかどうかを示す。また、符号化されたビットストリームは、CPB194内のピクチャの処理に関する情報(たとえば、アクセス単位の復号単位の除去時間)を定義するSEIメッセージを含むことができる。
[0199]ビデオ復号器30のエントロピ復号ユニット180は、量子化された係数と動きベクトルと他の構文要素とを生成するために、ビットストリームをエントロピ復号する。エントロピ復号ユニット180は、動きベクトルと他の構文要素とを予測処理ユニット181に転送する。ビデオ復号器30は、ビデオスライスレベルおよび/またはビデオブロックレベルで構文要素を受け取ることができる。
[0200]ビデオスライスが、イントラコーディングされた(I)スライスとしてコーディングされる時に、予測処理ユニット181のイントラ予測ユニット184は、現在のフレームまたはピクチャの前に復号されたブロックからシグナリングされたイントラ予測モードおよびデータに基づいて、現在のビデオスライスのビデオブロックの予測データを生成することができる。ビデオフレームが、インターコーディングされた(すなわち、B、P、またはGPB)スライスとしてコーディングされる時に、予測処理ユニット181の動き補償ユニット182は、エントロピ復号ユニット180から受け取られた動きベクトルと他の構文要素とに基づいて、現在のビデオスライスのビデオブロックの予測ブロックを作る。予測ブロックは、基準ピクチャリストのうちの1つ内の基準ピクチャのうちの1つから作られ得る。ビデオ復号器30は、基準ピクチャメモリ192に格納された基準ピクチャに基づいて、デフォルト構成技法を使用して基準フレーム(ピクチャ)リスト、リスト0とリスト1とを構成することができる。
[0201]動き補償ユニット182は、動きベクトルと他の構文要素とを解析することによって、現在のビデオスライスのビデオブロックの予測情報を判定し、復号されつつある現在のビデオブロックの予測ブロックを作るのにその予測情報を使用する。たとえば、動き補償ユニット182は、ビデオスライスのビデオブロックをコーディングするのに使用された予測モード(たとえば、イントラ予測またはインター予測)、インター予測スライスタイプ(たとえば、Bスライス、Pスライス、またはGPBスライス)、スライスの基準ピクチャリストのうちの1つまたは複数の構成情報、スライスの各インター符号化されたビデオブロックの動きベクトル、スライスの各インターコーディングされたビデオブロックのインター予測状況、および現在のビデオスライス内のビデオブロックを復号するための他の情報を判定するのに、受け取られた構文要素の一部を使用する。
[0202]動き補償ユニット182は、補間フィルタに基づく補間を実行することもできる。動き補償ユニット182は、基準ブロックのサブ整数画素の補間された値を計算するために、ビデオブロックの符号化中にビデオ符号器20によって使用された補間フィルタを使用することができる。この場合に、動き補償ユニット182は、受け取られた構文要素からビデオ符号器20によって使用された補間フィルタを判定し、予測ブロックを作るのにその補間フィルタを使用することができる。
[0203]逆量子化処理ユニット186は、ビットストリーム内で提供され、エントロピ復号ユニット180によって復号された量子化変換係数を逆量子化するすなわち、量子化解除(de−quantize)する。逆量子化プロセスは、量子化の度合と、同様に、適用されなければならない逆量子化の度合とを判定するための、ビデオスライス内のビデオブロックごとにビデオ符号器20によって計算された量子化パラメータの使用を含むことができる。逆変換処理ユニット188は、画素領域で残差ブロックを作るために、変換係数に逆変換、たとえば、逆DCT、逆整数変換、または概念的に類似する逆変換プロセスを適用する。
[0204]動き補償ユニット182が、動きベクトルと他の構文要素とに基づいて現在のビデオブロックの予測ブロックを生成した後に、ビデオ復号器30は、逆変換処理ユニット188からの残差ブロックと動き補償ユニット182によって生成された対応する予測ブロックとを合計することによって、復号されたビデオブロックを形成する。合計器190は、この合計動作を実行する1つまたは複数のコンポーネントを表す。望まれる場合に、ループフィルタ(コーディングループ内またはコーディングループの後のいずれか)も、画素トランジションを平滑化しまたは他の形でビデオ品質を改善するのに使用され得る。フィルタユニット191は、デブロッキングフィルタ、適応ループフィルタ(ALF)、およびサンプル適応オフセット(SAO)フィルタなどの1つまたは複数のループフィルタを表すことができる。フィルタユニット191は、図4ではインループフィルタであるものとして図示されているが、他の構成では、フィルタユニット191が、ポストループフィルタとして実施され得る。その後、所与のフレームまたはピクチャ内の復号されたビデオブロックは、基準ピクチャメモリ192に格納され、この基準ピクチャメモリ192は、後続の動き補償に使用される基準ピクチャを格納する。基準ピクチャメモリ192は、図1のディスプレイデバイス31などのディスプレイデバイスでのその後の提示のために、復号されたビデオをも格納する。
[0205]図4のビデオ復号器30は、本明細書で説明される技法の上でまたはそのより多くを実施するように構成されたビデオ復号器の例である。たとえば、予測処理ユニット181は、上で説明された例の機能を実行する1つの例のユニットを表す。たとえば、予測処理ユニット181は、CPB194内のサブピクチャレベル動作が許容されることをSubPicCpbFlagが示すかどうかを判定することができる。サブピクチャレベル動作が許容される場合に、予測処理ユニット181は、どのNAL単位がアクセス単位のどの復号単位に関連するのかを判定することができる。
[0206]たとえば、予測処理ユニット181は、SEI NAL単位が復号単位情報SEIメッセージを含むと判定することができる。復号単位情報SEIメッセージから、予測処理ユニット181は、復号単位のCPB194からの除去時間と、復号単位識別子とを判定することができる。予測処理ユニット181は、SEI NAL単位と、異なる復号単位識別子を有する復号単位情報SEIメッセージを含む別のSEI NAL単位までのSEI NAL単位に続くすべてのNAL単位とが、復号単位の復号単位情報SEIメッセージによって識別される復号単位に関連すると判定することができる。
[0207]もう1つの例として、予測処理ユニット181は、スライスヘッダのスライスが復号単位識別子を含むと判定することができる。予測処理ユニット181は、スライスおよびそのスライスヘッダを含むスライスNAL単位がどの復号単位に関連するのかを、復号識別子に基づいて判定することができる。
[0208]この形で、NAL単位が送信で失われる場合であっても、予測処理ユニット181は、他の(すなわち、受信された、失われていない)NAL単位がどの復号単位に関連するのかを判定できる可能性がある。いくつかの例では、予測処理ユニット181は、復号単位内に復号単位SEIメッセージの複数のコピーがあるものとすることができるので、復号単位がCPB194から除去されなければならない時刻を判定できる可能性がある。
[0209]いくつかの例では、予測処理ユニット181とは異なるユニットが、上で説明された例を実施することができる。いくつかの例では、予測処理ユニット181は、ビデオ復号器30の1つまたは複数の他のユニットに関連して、上で説明された例を実施することができる。いくつかの例では、ビデオ復号器30のプロセッサまたはユニット(図4には図示せず)が、単独でまたはビデオ復号器30の他のユニットに関連して、上で説明された例を実施することができる。
[0210]図5は、本開示で説明される1つまたは複数の例による、ビデオデータの符号化の例を示す流れ図である。例示のために、図5の例は、ビデオ符号器20に関して説明される。
[0211]ビデオ符号器20は、アクセス単位内の各復号単位の一意識別子を判定する(200)。ある復号単位の識別子は、そのアクセス単位内のすべての他の復号単位の識別子と異なる。たとえば、ビデオ符号器20は、アクセス単位内の第1の復号単位の第1の識別子を判定し、アクセス単位内の第2の異なる復号単位の第2の異なる識別子を判定する。この例では、第1の識別子の値が第2の識別子の値より小さい場合に、第1の復号単位は、復号順序において第2の復号単位に先行する。
[0212]ビデオ符号器20は、どのNAL単位がアクセス単位のどの復号単位に関連するのかを判定する(202)。たとえば、復号単位は、それぞれ、ピクチャの部分のビデオデータを表すことができ、NAL単位は、復号単位の一部を表すことができる。ビデオ符号器20は、復号単位のビデオデータのどの部分がどのNAL単位によって表されるのかを判定し、復号単位のビデオデータを表すNAL単位がその復号単位に関連すると判定することができる。
[0213]ビデオ符号器20は、どのNAL単位がアクセス単位のどの復号単位に関連するのかを示すために、対応する復号単位内の各一意識別子を出力のために生成する(204)。たとえば、ビデオ符号器20は、エントロピ符号化ユニット156を介して、復号単位のそれぞれの一意識別子をエントロピ符号化することができる。これらの例では、符号化は、出力のために生成することと考えられ得る。さらに、ビデオ符号器20は、どのNAL単位がアクセス単位のどの復号単位に関連するのかをコーディングされたビットストリームの一部として示すために、対応する復号単位内で各一意識別子を出力する(たとえば、シグナリングする)ことができる。
[0214]たとえば、ビデオ符号器20は、第1の復号単位の第1の一意識別子を第1の復号単位情報SEIメッセージに含め、第1の復号単位情報SEIメッセージの一部として第1の一意識別子を出力した後に、第1の復号単位に関連するすべてのNAL単位を出力することができる。ビデオ符号器20は、第2の復号単位SEIメッセージに、第2の復号単位の第2の復号単位識別子を含めることができる。第1の復号単位に関連するすべてのNAL単位の出力の後に、ビデオ符号器20は、第2の復号単位の出力の一部として、第2の復号単位SEIメッセージ内で第2の復号単位識別子を出力することができる。もう1つの例として、ビデオ符号器20は、スライスNAL単位のスライスヘッダに一意識別子のそれぞれを含め、出力することができる。
[0215]いくつかの例では、ビデオ符号器20は、復号単位の一部として、復号単位の除去時間の情報を示す第1の復号単位SEIメッセージを出力することができる。ビデオ符号器20は、復号単位の一部として、復号単位の除去時間の情報を示す第2の復号単位SEIメッセージを出力することもできる。いくつかの場合に、第2の復号単位SEIメッセージは、第1の復号単位SEIメッセージのコピーである。いくつかの例では、ビデオ符号器20は、アクセス単位内にSEIメッセージを含め、そのアクセス単位内にそのSEIメッセージのコピーを含めることができる。ビデオ符号器20は、SEIメッセージとそのSEIメッセージのコピーとを含むアクセス単位を出力することができる。
[0216]図6は、本開示で説明される1つまたは複数の例による、ビデオデータの復号の例を示す流れ図である。例示のために、図6の例は、ビデオ復号器30に関して説明される。
[0217]ビデオ復号器30は、アクセス単位内の各復号単位の一意識別子を復号することができる(206)。この例では、ある復号単位の識別子は、アクセス単位内のすべての他の復号単位の識別子と異なる。たとえば、ビデオ復号器30は、アクセス単位内の第1の復号単位の第1の識別子を復号し、アクセス単位内の第2の異なる復号単位の第2の異なる識別子を復号することができる。この例では、第1の識別子の値が、第2の識別子の値より小さい場合に、第1の復号単位は、復号順序において第2の復号単位に先行する。
[0218]ビデオ復号器30は、どのNAL単位がどの復号単位に関連するのかを、アクセス単位内の各復号単位の一意識別子に基づいて判定することができる(208)。たとえば、ビデオ復号器30は、第1の復号単位の第1の復号単位情報SEIメッセージから第1の一意識別子を復号し、第2の復号単位の第2の復号単位SEIメッセージから第2の一意識別子を復号することができる。ビデオ復号器30は、第1の復号単位情報SEIメッセージを含む第1のSEI NAL単位と、第1のSEI NAL単位に続き第2の復号単位情報SEIメッセージを含む第2のSEI NLA単位までのすべてのNAL単位とが、第1の復号単位に関連すると判定することができる。もう1つの例として、ビデオ復号器30は、スライスNAL単位のスライスヘッダ内の一意識別子を復号し、そのスライスNAL単位がどの復号単位に関連するのかを、スライスヘッダ内の一意識別子に基づいて判定することができる。
[0219]ビデオ復号器30は、少なくとも1つのピクチャを再構成するために、判定に基づいてNAL単位を復号することができる(210)。たとえば、復号単位のすべてに関連するNAL単位のすべての復号の結果は、復号されたアクセス単位とすることができる。上で説明されたように、アクセス単位の復号は、少なくとも1つのピクチャ(たとえば、マルチビュービデオコーディングが使用されない時に1つのピクチャ、マルチビュービデオコーディングが使用される時に複数のピクチャ)をもたらす。
[0220]いくつかの例では、ビデオ復号器30は、復号単位の除去時間の情報を示す第1の復号単位情報SEIメッセージを復号することができる。ビデオ復号器30は、復号単位に関連する2つのNAL単位の間に配置された第2の復号単位情報SEIメッセージを復号することもできる。この例では、第2の復号単位情報SEIメッセージは、第1の復号単位情報SEIメッセージのコピーである。いくつかの例では、ビデオ復号器30は、アクセス単位内のSEIメッセージを復号し、アクセス単位内のSEIメッセージのコピーを復号することができる。
[0221]図7は、本開示で説明される1つまたは複数の例による、ビデオデータのコーディングの例を示す流れ図である。例示のために、技法は、ビデオコーダに関して説明される。ビデオコーダの例は、ビデオ符号器20とビデオ復号器30とを含む。たとえば、ビデオ符号化の時に、ビデオコーダの例は、ビデオ符号器20である。ビデオ復号の時には、ビデオコーダの例は、ビデオ復号器30である。
[0222]図7に示されているように、ビデオコーダは、アクセス単位内で付加拡張情報(SEI)メッセージをコーディングするように構成される(212)。上で説明されるように、アクセス単位は、少なくとも1つのピクチャを再構成するビデオデータを含み、SEIメッセージは、ビデオデータの特性(たとえば、上で表1および表5で説明されるものなどの特性)を定義する。いくつかの例では、ビデオコーダは、マルチセッション伝送のためにアクセス単位内でSEIメッセージをコーディングすることができる。ビデオコーダは、アクセス単位内でSEIメッセージのコピーをコーディングするように構成される(214)。いくつかの例では、ビデオコーダは、マルチセッション伝送のためにアクセス単位内でSEIメッセージのコピーをコーディングすることができる。
[0223]たとえば、ビデオ符号器20は、アクセス単位内に、復号順序において第1のビデオコーディングレイヤ(VCL)ネットワーク抽象化レイヤ(NAL)単位の前にSEIメッセージを含めることができる。ビデオ符号器20は、復号順序において最初のVCL NAL単位の後、復号順序において最後のVCL NAL単位の前にSEIメッセージのコピーを含めることができる。この例では、ビデオ符号器20は、最初のVCL NAL単位の前に含まれるSEIメッセージを符号化し、最初のVCL NAL単位の後、最後のVCL NAL単位の前に含まれるSEIメッセージのコピーを符号化することができる。
[0224]もう一つの例として、ビデオ復号器30は、アクセス単位内で復号順序において最初のVCL NAL単位を復号し、アクセス単位内で復号順序において最後のVCL NAL単位を復号することができる。この例では、ビデオ復号器30は、最初のVCL NAL単位を復号する前にSEIメッセージを復号し、最初のVCL NAL単位を復号した後、最後のVCL NAL単位を復号する前に、SEIメッセージのコピーを復号することができる。
[0225]いくつかの例では、ビデオコーダは、SEIメッセージのタイプを判定することができる。ビデオコーダは、アクセス単位の時間識別値を判定することもできる。ビデオコーダは、SEIメッセージの存在が許容されるかどうかを、アクセス単位の時間識別値とSEIメッセージのタイプとに基づいて判定することができる。これらの例では、ビデオコーダは、SEIメッセージの存在が許容されるかどうかの判定に基づいて、SEIメッセージをコーディングすることができる。
[0226]1つまたは複数の例では、説明される機能は、ハードウェア、ソフトウェア、ファームウェア、またはその任意の組合せで実施され得る。ソフトウェアで実施される場合に、機能は、1つまたは複数の命令またはコードとしてコンピュータ可読媒体に格納されまたはこれを介して送信され、ハードウェアベースの処理ユニットによって実行され得る。コンピュータ可読媒体は、データ記憶媒体などの有形の媒体に対応するコンピュータ可読記憶媒体、またはたとえば通信プロトコルに従って、ある場所から別の場所へのコンピュータプログラムの転送を容易にするすべての媒体を含む通信媒体を含むことができる。この形で、コンピュータ可読媒体は、一般に、(1)固定である有形のコンピュータ可読記憶媒体または(2)信号波または搬送波などの通信媒体に対応することができる。データ記憶媒体は、本開示で説明される技法の実施のために命令、コーディング、および/またはデータ構造を取り出すために1つもしくは複数のコンピュータまたは1つもしくは複数のプロセッサによってアクセスされ得る任意の使用可能な媒体とすることができる。コンピュータプログラム製品は、コンピュータ可読媒体を含むことができる。
[0227]さらに他の例では、本開示は、その上に格納されたデータ構造を備えるコンピュータ可読媒体を企図し、このデータ構造は、本開示と一貫してコーディングされる符号化されたビットストリームを含む備える。
[0228]限定ではなく例として、そのようなコンピュータ可読記憶媒体は、RAM、ROM、EEPROM(登録商標)、CD−ROMもしくは他の光ディスク(disk)ストレージ、磁気ディスク(disk)ストレージ、もしくは他の磁気ストレージデバイス、フラッシュメモリ、または、命令もしくはデータ構造の形の所望のプログラムコードを格納するのに使用され得、コンピュータによってアクセスされ得る任意の他の媒体を備えることができる。また、任意の接続は、コンピュータ可読媒体と適切に呼ばれる。たとえば、命令が、ウェブサイト、サーバ、または他のリモートソースから、同軸ケーブル、光ファイバケーブル、より対線、ディジタル加入者回線(DSL)、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して送信される場合に、同軸ケーブル、光ファイバケーブル、より対線、DSL、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。しかし、コンピュータ可読記憶媒体およびデータ記憶媒体が、接続、搬送波、信号、または他の過渡的媒体を含むのではなく、その代わりに、非過渡的な有形の記憶媒体を対象とすることを理解されたい。ディスク(diskおよびdisc)は、本明細書で使用される時に、コンパクトディスク(disc、CD)、レーザーディスク(登録商標)(disc)、光ディスク(disc)、ディジタル多用途ディスク(disc、DVD)、フロッピ(登録商標)ディスク(disk)、およびBlu−rayディスク(disc)を含み、ここで、diskは、通常はデータを磁気的に再生し、discは、データをレーザーを用いて光学的に再生する。上記の組合せも、コンピュータ可読媒体の範囲に含まれなければならない。
[0229]命令は、1つまたは複数のディジタル信号プロセッサ(DSP)、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、または他の同等の集積回路網もしくはディスクリート論理回路網などの1つまたは複数のプロセッサによって実行され得る。したがって、用語「プロセッサ」は、本明細書で使用される時に、前述の構造または本明細書で説明される技法の実施に適する任意の他の構造のいずれをも指すことができる。さらに、いくつかの態様では、本明細書で説明される機能性は、符号化および復号のために構成された専用のハードウェアモジュールおよび/またはソフトウェアモジュール内で提供され、あるいは組み合わされたコーデックに組み込まれ得る。また、この技法は、1つまたは複数の回路または論理要素内で完全に実施され得る。
[0230]本開示の技法は、ワイヤレス送受話器、集積回路(IC)、またはICのセット(たとえば、チップセット)を含むさまざまなデバイスまたは装置で実施され得る。さまざまなコンポーネント、モジュール、またはユニットは、開示される技法を実行するように構成されたデバイスの機能的態様を強調するために本開示で説明されるが、必ずしも、異なるハードウェアユニットによる実現を必要としない。そうではなく、上で説明されるように、さまざまなユニットは、コーデックハードウェアユニットに組み合わされ、または、適切なソフトウェアおよび/またはファームウェアに関連する、上で説明される1つまたは複数のプロセッサを含む相互動作可能なハードウェアユニットの集合によって提供され得る。
[0231]さまざまな例が説明された。これらおよび他の例は、次の特許請求の範囲の範囲に含まれる。