[0001]本出願は、その内容全体が参照により本明細書に組み込まれる、2013年12月2日に出願された米国仮特許出願第61/910,766号の利益を主張する。
[0002]本開示は、ビデオコーディング(すなわち、ビデオ符号化またはビデオ復号)に関する。
[0003]デジタルビデオ能力は、デジタルテレビジョン、デジタル直接ブロードキャストシステム、ワイヤレスブロードキャストシステム、携帯情報端末(PDA)、ラップトップコンピュータもしくはデスクトップコンピュータ、タブレットコンピュータ、電子ブックリーダー、デジタルカメラ、デジタル記録デバイス、デジタルメディアプレーヤ、ビデオゲームデバイス、ビデオゲームコンソール、セルラー電話機もしくは衛星無線電話機、いわゆる「スマートフォン」、ビデオ会議デバイス、ビデオストリーミングデバイス、および類似物を含む広範囲のデバイスに組み込まれ得る。デジタルビデオデバイスは、MPEG−2、MPEG−4、ITU−T H.263、ITU−T H.264/MPEG−4、Part 10、アドバンストビデオコーディング(AVC:Advanced Video Coding)、現在開発中の高効率ビデオコーディング(HEVC:High Efficiency Video Coding)規格によって定義された規格、およびそのような規格の拡張、に記載されているもののような、ビデオ圧縮技法を実装する。これらのビデオデバイスは、そのようなビデオ圧縮技法を実装することによって、デジタルビデオ情報をより効率的に送信し、受信し、符号化し、復号し、および/または記憶することができる。
[0004]ビデオ圧縮技法は、ビデオシーケンスに固有の冗長性を低減または除去するために、空間的(ピクチャ内(intra-picture))予測および/または時間的(ピクチャ間(inter-picture))予測を実施する。ブロックベースのビデオコーディングでは、ビデオスライス(すなわち、ビデオフレームまたはビデオフレームの一部分)が、ツリーブロック、コーディングユニット(CU)および/またはコーディングノードと呼ばれることもあるビデオブロックに区分され得る。ピクチャのイントラコード化(intra-coded)(I)スライスにおけるビデオブロックは、同じピクチャ中の隣接ブロックにおける参照サンプルに対する空間的予測を使用して符号化される。ピクチャのインターコード化(inter-coded)(PまたはB)スライスにおけるビデオブロックは、同じピクチャ中の隣接ブロックにおける参照サンプルに対する空間的予測、または他の参照ピクチャ中の参照サンプルに対する時間的予測を使用し得る。ピクチャはフレームと呼ばれることがあり、参照ピクチャは参照フレームと呼ばれることがある。
[0005]空間的予測または時間的予測は、コーディングされるべきブロックのための予測ブロックを生じる。残差データは、コーディングされるべき元のブロックと予測ブロックとの間のピクセル差分を表す。インターコード化ブロックは、予測ブロックを形成する参照サンプルのブロックをポイントする動きベクトル、およびコード化ブロックと予測ブロックとの間の差分を示す残差データに従って符号化される。イントラコード化ブロックは、イントラコーディングモードおよび残差データに応じて符号化される。さらなる圧縮を行うために、残差データがピクセル領域から変換領域に変換されて残差変換係数が得られてよく、次いでこれらの係数が量子化されてよい。最初に2次元アレイで構成される量子化された変換係数は、変換係数の1次元ベクトルを生成するために走査されてもよく、なお一層の圧縮を達成するためにエントロピーコーディングが適用されてもよい。
[0006]本開示は、ビデオデコーダによって出力された情報に基づいて、現在のピクチャを符号化し、復号するための1つまたは複数の参照ピクチャが複数のピクチャから選択されるその複数のピクチャを決定するための例示的技法について記載する。たとえば、ビデオデコーダは、ビデオデコーダのバッファ中に記憶された、前に復号されたピクチャを識別する情報を、ビデオエンコーダに出力することができる。ビデオエンコーダは、ビデオデコーダから出力情報を受信し、識別されたピクチャ、識別されたピクチャ用の参照ピクチャだった可能性があるピクチャであると決定されたピクチャ、および/または識別されたピクチャにコーディング順序で続くピクチャ、に基づいて、コーディングに利用可能なピクチャを決定することができる。ビデオエンコーダは次いで、現在のピクチャをインター予測する(inter-predict)ために、コーディングに利用可能であると決定されたピクチャのうちの1つまたは複数を使用すればよい。
[0007]たとえば、識別されたピクチャ用の参照ピクチャだった可能性があるピクチャであると決定されたピクチャ、および識別されたピクチャにコーディング順序で続くピクチャがすべて、コーディングに利用可能であり得るわけではない。ただし、識別されたピクチャ用の参照ピクチャだった可能性があるピクチャであると決定されたピクチャ、および識別されたピクチャにコーディング順序で続くピクチャが、ビデオエンコーダによって現在のピクチャを符号化するために依然として利用可能である場合、それらのピクチャが、ビデオデコーダによって現在のピクチャを復号するためにも利用可能となる確実性は比較的高い。このようにして、ビデオエンコーダは、選択されたピクチャが、現在のピクチャを復号するためにビデオデコーダにおいて利用可能になるという比較的高い確実性で、現在のピクチャを符号化するために、識別されたピクチャのみではなく、複数のピクチャから選択することが可能であり得る。
[0008]一例では、本開示は、ビデオデータを符号化する方法について記載し、この方法は、ビデオデコーダを備えるデバイスから、ビデオデコーダが情報を送信したときにビデオデコーダの復号ピクチャバッファ(DPB:a decoded picture buffer)中に記憶されている、前に復号されたピクチャを識別する情報を受信することと、識別されたピクチャに基づいて、現在のピクチャを符号化するために利用可能である1つまたは複数の候補参照ピクチャ(candidate reference pictures)を決定することと、ここにおいて、1つまたは複数の候補参照ピクチャは、識別されたピクチャまたは識別されたピクチャにコーディング順序で続く複数のピクチャのうちの1つまたは複数をインター予測符号化する(inter-prediction encoding)ために使用可能であると前に決定された1つまたは複数のピクチャであって、ビデオエンコーダのDPB中に依然として記憶されている1つまたは複数のピクチャを含む、決定された1つまたは複数の候補参照ピクチャおよび識別されたピクチャから、現在のピクチャ用の1つまたは複数の参照ピクチャを選択することと、選択された1つまたは複数の参照ピクチャに基づいて、現在のピクチャをインター予測符号化することと、を備える。
[0009]一例では、本開示は、ビデオデータを復号する方法について記載し、この方法は、ビデオエンコーダを備えるデバイスに、情報を出力するときにビデオデコーダの復号ピクチャバッファ(DPB)中に記憶されている、前に復号されたピクチャを識別する情報を出力することと、1つまたは複数の候補参照ピクチャを用いて、現在のピクチャをインター予測復号すること(inter-prediction decoding)と、ここにおいて、1つまたは複数の候補参照ピクチャは、ビデオエンコーダによって、識別されたピクチャをインター予測符号化するために使用可能であると前に決定された1つまたは複数のピクチャを含む、を備える。
[0010]一例では、本開示は、ビデオデータを符号化するためのデバイスについて記載し、このデバイスは、1つまたは複数のピクチャを記憶するように構成されたメモリを備える第1の復号ピクチャバッファ(DPB)と、1つまたは複数のプロセッサを備えるビデオエンコーダとを備える。ビデオエンコーダは、ビデオデコーダを備えるデバイスから、ビデオデコーダが情報を送信したときにビデオデコーダの第2のDPB中に記憶されている、前に復号されたピクチャを識別する情報を受信し、識別されたピクチャに基づいて、現在のピクチャを符号化するために利用可能である1つまたは複数の候補参照ピクチャを決定し、ここにおいて、1つまたは複数の候補参照ピクチャは、識別されたピクチャまたは識別されたピクチャにコーディング順序で続く複数のピクチャのうちの1つまたは複数をインター予測符号化するために使用可能であると前に決定された1つまたは複数のピクチャであって、第1のDPB中に依然として記憶されている1つまたは複数のピクチャを含む、決定された1つまたは複数の候補参照ピクチャおよび識別されたピクチャから、現在のピクチャ用の1つまたは複数の参照ピクチャを選択し、選択された1つまたは複数の参照ピクチャに基づいて、現在のピクチャをインター予測符号化する、ように構成される。
[0011]一例では、本開示は、ビデオデータを復号するためのデバイスについて記載し、このデバイスは、1つまたは複数のピクチャを記憶するように構成されたメモリを備える復号ピクチャバッファ(DPB)と、1つまたは複数のプロセッサを備えるビデオデコーダとを備える。ビデオデコーダは、ビデオエンコーダを備えるデバイスに、情報を出力するときにビデオデコーダのDPB中に記憶されている、前に復号されたピクチャを識別する情報を出力し、1つまたは複数の候補参照ピクチャを用いて、現在のピクチャをインター予測復号し、ここにおいて、1つまたは複数の候補参照ピクチャは、ビデオエンコーダによって、識別されたピクチャをインター予測符号化するために使用可能であると前に決定された1つまたは複数のピクチャを含む、ように構成される。
[0012]本開示の1つまたは複数の例の詳細は、添付図面および下記の説明の中に記載される。他の特徴、目的、および利点は、説明、図面、および特許請求の範囲から明らかになるであろう。
[0013]本開示で説明される技法を利用し得る例示的なビデオ符号化および復号システムを示すブロック図。
[0014]本開示で説明される技法を実装し得る例示的なビデオエンコーダを示すブロック図。
[0015]本開示で説明される技法を実施し得る例示的なビデオデコーダを示すブロック図。
[0016]ビデオデータを符号化する例示的な方法を示すフローチャート。
[0017]ビデオデータを復号する例示的な方法を示すフローチャート。
[0018]ビデオデータを符号化する別の例示的な方法を示すフローチャート。
[0019]ビデオデータを復号する別の例示的な方法を示すフローチャート。
詳細な説明
[0020]本開示に記載される技法は概して、リアルタイムのビデオアプリケーションの例を含むビデオコーディングに関する。たとえば、本開示に記載される技法は、ビデオテレフォニーまたはビデオ会議に適用可能であってよく、ここでビデオは、ビデオテレフォニーまたは会議の各側面において、リアルタイムで符号化され、復号されている。別の例として、本開示に記載される技法はライブストリーミングに適用可能であってよく、ここでライブイベントのビデオは、ブロードキャスト用にリアルタイムで符号化されている。ただし、本開示に記載される技法は、ビデオテレフォニー、ビデオ会議、またはライブイベントのリアルタイムのビデオ符号化に限定されると見なされるべきでない。本開示に記載される技法は、ビデオデコーダが、ビデオデコーダに送信されるビデオデータを符号化しているビデオエンコーダに情報を送信することが可能であるビデオコーディングに適用可能であり得る。
[0021]リアルタイムのビデオコーディングにおいて、ビデオデコーダは、ビデオエンコーダに、現在のピクチャをインター予測符号化するための1つまたは複数の参照ピクチャをビデオエンコーダが複数のピクチャから選択する、コーディングに利用可能であるその複数のピクチャを決定させるために、ビデオエンコーダと(たとえば、リアルタイムトランスポートプロトコル(RTP)を使って)通信するように構成され得る。コーディングに利用可能であるそのようなピクチャを決定するために、ビデオデコーダがビデオエンコーダと通信し得る様々な理由があってよく、本開示に記載される技法は、コーディングに利用可能であるそのようなピクチャを決定するために、ビデオデコーダがビデオエンコーダと通信し得るどの特定の理由にも限定されない。
[0022]いくつかの例において、ビデオエンコーダが、これらの参照ピクチャがビデオデコーダのバッファ(たとえば、復号ピクチャバッファ(DPB))中で利用可能になる確実性レベルが比較的高い現在のピクチャをインター予測符号化するための参照ピクチャを選択するように、ビデオデコーダは、ビデオエンコーダに、候補参照ピクチャ(すなわち、コーディングに利用可能なピクチャ)を決定させるために、ビデオエンコーダと通信し得る。例示目的のみでの例として、ビデオデコーダは、エラー伝播を制限する目的で、ビデオエンコーダに、候補参照ピクチャを決定させるためにビデオエンコーダと通信し得る。
[0023]場合によっては、ビデオデコーダは、ピクチャを再構築するのに必要とされるビデオデータの一部または全部を受信しない場合がある。ビデオデコーダが再構築することができないピクチャは、欠落されたピクチャ(a missed picture)と呼ばれる。ビデオデコーダが、欠落されたピクチャを出力することができないことに加え、欠落されたピクチャが、後続ピクチャ用の参照ピクチャとして使われる場合、ビデオデコーダは、この後続ピクチャを再構築することができない可能性があるので、復号エラーが伝播する。
[0024]伝播エラーを制限するために、ビデオデコーダは、参照ピクチャがビデオデコーダのDPB中に記憶されている確率が比較的高い、現在のピクチャをインター予測するための参照ピクチャを選択するのにビデオエンコーダが使う情報を、ビデオエンコーダに出力すればよい。場合によっては、選択されたピクチャがビデオデコーダのDPB中にあることがほぼ保証され得る。このようにして、ビデオデコーダのDPB中に存在する確率が比較的高いピクチャを使うことによって、ビデオエンコーダは、欠落されたピクチャを参照ピクチャとして使わない場合があり、ビデオデコーダは、現在のピクチャをエラーなしで再構築することができるようになる。
[0025]エラー伝播を制限することは、説明のために記載され、ビデオデコーダからビデオエンコーダへの情報の通信は、他の理由でも実施され得ることが理解されるべきである。ビデオデコーダは、エラー伝播を制限するのに加え、またはそれとは別個の理由で、ビデオエンコーダが、参照ピクチャを選択するのに使う情報を出力することができる。たとえば、ビデオデコーダは、欠落されたピクチャがなかった例において、ビデオエンコーダが参照ピクチャを選択するのに使う情報を出力することができる。
[0026]本開示に記載される技法において、ビデオデコーダはビデオエンコーダに情報を送信することができ、この情報は、ビデオデコーダがビデオエンコーダに情報を送信するインスタンスにおいて(たとえば、ときに)ビデオデコーダのDPB中に現時点で記憶されている、前に復号されたピクチャを識別する。識別されたピクチャは、1つの可能な候補参照ピクチャに対応し得る(すなわち、識別されたピクチャは、コーディングに利用可能なピクチャのうちの1つであり得る)。ただし、本開示に記載される技法によると、識別されたピクチャに加え、ビデオエンコーダが、識別されたピクチャ用の可能な参照ピクチャとして決定した1つまたは複数のピクチャも、追加候補参照ピクチャである(すなわち、ビデオエンコーダが、識別されたピクチャ用の可能な参照ピクチャとして決定した1つまたは複数のピクチャは、コーディングに利用可能なピクチャであり、いくつかの例において、識別されたピクチャの参照ピクチャの可能な参照ピクチャも含む)。識別されたピクチャ用の可能な参照ピクチャのうちの1つまたは複数は、識別されたピクチャ用の実際の参照ピクチャだった可能性があることに留意されたい。言い換えると、「識別されたピクチャ用の可能な参照ピクチャ」は、識別されたピクチャをインター予測するのに実際に使われた参照ピクチャを除外すると解釈されるべきでない。
[0027]いくつかの例において、ピクチャを符号化する際、ビデオエンコーダは、ピクチャをインター予測符号化するのに使われた可能性があるピクチャ(ピクチャをインター予測符号化するのに実際に使われるピクチャを含む)を決定すればよい。ビデオエンコーダは、それぞれのピクチャと、次に続くピクチャとをインター予測符号化するのに使われた可能性があるピクチャを示す情報を記憶することができる。特定のピクチャを識別する情報をビデオデコーダから受信したことに応答して、ビデオエンコーダは、識別されたピクチャと、次に続くピクチャとをインター予測符号化するのに使われた可能性があるピクチャを示す、記憶された情報を取り出せばよい。ビデオエンコーダは、取り出された情報中で示されるどのピクチャが、ビデオエンコーダのバッファ中に依然として記憶されているか決定することができ、次いで、決定されたピクチャから、現在のピクチャをインター予測符号化するための1つまたは複数の参照ピクチャを選択することができる。
[0028]たとえば、高効率ビデオコーディング(HEVC)規格は、ビデオエンコーダおよびビデオデコーダが各ピクチャ用に構築する複数の参照ピクチャサブセットを定義する。特定のピクチャに対して、参照ピクチャサブセットのうちの3つは、特定のピクチャと、特定のピクチャに復号順序で続くピクチャとをインター予測するのに使われる可能性があり得る参照ピクチャを示す。参照ピクチャサブセットのうちの2つは、特定のピクチャをインター予測するのに使われない場合があるが、特定のピクチャに復号順序で続くピクチャをインター予測するのには使われる可能性があり得る、参照ピクチャを示す。「参照ピクチャセット(reference picture set)」という用語は、複数の参照ピクチャサブセットの組合せを指す。
[0029]HEVC規格に従って構成されたビデオエンコーダおよびビデオデコーダは、本開示に記載される例示的技法を実装するのに、HEVC規格において定義された参照ピクチャサブセットを活用することができる。ただし、H.264/AVC規格に従って、またはそれ以外のやり方で構成されたビデオエンコーダおよびビデオデコーダは、前に規定された参照ピクチャサブセットをもたない場合がある。そのようなビデオエンコーダおよびビデオデコーダの場合、ビデオエンコーダは、ビデオエンコーダがピクチャをインター予測するために使った、可能性がある可能参照ピクチャのリストを維持するように構成され得る。
[0030]理解しやすさのために、本開示において使われる、特定のピクチャの「ピクチャセット(picture set)」という用語は、特定のピクチャと、識別されたピクチャにコーディング順序で続くピクチャとをインター予測するのに使われた可能性があるピクチャを指す。一例として、HEVCのコンテキストにおいて、特定のピクチャの「ピクチャセット」という用語は、特定のピクチャの参照ピクチャセット中のピクチャを指すが、必ずしもすべてのピクチャというわけではない。別の例として、H.264/AVCのコンテキストにおいて、またはそれ以外の場合、特定のピクチャの「ピクチャセット」という用語は、ビデオエンコーダが特定のピクチャをインター予測するために使った可能性があるピクチャの維持されるリスト中で示されるピクチャを指す。
[0031]本開示に記載される技法において、ビデオデコーダのDPB中に記憶されたピクチャを識別する情報を受信したことに応答して、ビデオエンコーダは、識別されたピクチャのピクチャセット中のどのピクチャが、ビデオエンコーダのDPB中で依然として利用可能である(すなわち、ビデオエンコーダのDPB中に現時点で記憶されている)か決定することができ、いくつかの例において、ビデオエンコーダは、識別されたピクチャのピクチャセット中のピクチャのピクチャセット中のどのピクチャが、ビデオエンコーダのDPB中で依然として利用可能であるかも決定することもできる。現在のピクチャをコーディングするために利用可能なピクチャ(すなわち、現在のピクチャ用の候補参照ピクチャ)であると見なされるピクチャは、識別されたピクチャのピクチャセットの中にあると決定されるピクチャと、ビデオエンコーダのDPB中で依然として利用可能な、識別されたピクチャのピクチャセットの中のピクチャのピクチャセットの中のピクチャと、識別されたピクチャ自体と、を含み得る。ビデオエンコーダは、現在のピクチャをコーディングするために利用可能なピクチャから1つまたは複数の参照ピクチャを選択し、選択された参照ピクチャから、現在のピクチャをインター予測することができる。
[0032]概して、ビデオエンコーダが現在のピクチャを符号化するとき、識別されたピクチャおよび識別されたピクチャにコーディング順序で続くピクチャ、のための参照ピクチャだった可能性がある、ビデオエンコーダのDPB中に記憶されているピクチャが、ビデオデコーダが現在のピクチャを復号するとき、ビデオデコーダのDPB中にも記憶されているという、非常に高い確実性があり得る(たとえば、ほぼ保証される)。この非常に高い確実性は、ビデオエンコーダがそれのDPBからピクチャを削除した後、ビデオデコーダが、それのDPBからそのピクチャを削除してよいという事実により得る。言い換えると、識別されたピクチャと、識別されたピクチャにコーディング順序で続くピクチャとをインター予測するのに使われた可能性があるピクチャがDPB中にあり、ビデオエンコーダが、それのDPBからそのピクチャをまだ削除していない場合、ビデオデコーダがそれのDPBからそのピクチャを削除していない見込みが非常に高い。したがって、ビデオエンコーダのDPB中のピクチャがすべて、ビデオデコーダのDPB中にある、およびその反対である、必要があるわけではないが、識別されたピクチャと、識別されたピクチャにコーディング順序で続くピクチャとをインター予測するのに使われた可能性があるピクチャであって、ビデオデコーダが、それのDPB中に記憶されたピクチャとして識別したピクチャ、がビデオエンコーダのDPB中にある場合、そのピクチャは、ビデオデコーダのDPB中にあることがほぼ保証される。
[0033]本開示に記載される技法において、ビデオエンコーダは、現在のピクチャをインター予測するために使われ得る、ビデオデコーダによる復号に利用可能であることがわかっている、複数のピクチャを決定することが可能であり得る。たとえば、ビデオデコーダが、それのDPB中の複数のピクチャを識別する情報を送信することが可能な場合があり、次いで、ビデオエンコーダに、これらの識別されたピクチャのうちの1つまたは複数を、現在のピクチャ用の参照ピクチャとして選択させる。ただし、ビデオデコーダに、それのDPB中の複数のピクチャを識別する情報を送信させることは、帯域幅集約的(bandwidth intensive)であり得る。ただし、ビデオデコーダに、ただ1つのピクチャを識別させ、ビデオエンコーダに、その1つのピクチャを、現在のピクチャをインター予測するために使わせると、コーディング効率が不十分になる可能性があり、帯域幅使用量がより高くなる。
[0034]本開示に記載される技法は、ビデオデコーダが、それのDPB中のわずかなピクチャ(たとえば、1つまたは複数のピクチャ)のみを識別できるようにし、ビデオエンコーダが、識別されたピクチャ(たとえば、ビデオエンコーダのDPB中で依然として利用可能である、識別されたピクチャの参照ピクチャセット中のピクチャ)に基づいて、現在のピクチャをインター予測するのにすべてが使われ得る追加ピクチャ(たとえば、複数のピクチャ)を決定することを可能にし得る。このようにして、本開示に記載される技法は、より低い帯域幅使用量を求める(たとえば、ビデオデコーダは、1つのピクチャを識別する情報を出力すればよい)が、ビデオエンコーダは、現在のピクチャをインター予測するための最良のコーディング効率をもたらすピクチャを、複数のピクチャから選択すればよいので、より高いコーディング効率をもたらす。
[0035]たとえば、ビデオエンコーダは、ビデオデコーダを含むデバイスから、ビデオデコーダが情報を送信したときにビデオデコーダのDPB中に記憶されている、前に復号されたピクチャを識別する情報を受信し得る(たとえば、ビデオデコーダが、ピクチャを識別する情報を送信するとき、そのピクチャはビデオデコーダのDPB中に記憶されている)。ビデオエンコーダは、識別されたピクチャに基づいて、現在のピクチャを符号化するために利用可能である1つまたは複数の候補参照ピクチャを決定することができる。1つまたは複数の候補参照ピクチャは、識別されたピクチャ、または識別されたピクチャにコーディング順序で続く複数のピクチャのうちの1つまたは複数をインター予測符号化するために使用可能であると前に決定された1つまたは複数のピクチャであって、ビデオエンコーダのDPB中に依然として記憶されている1つまたは複数のピクチャを含む。ビデオエンコーダは、決定された1つまたは複数の候補参照ピクチャおよび識別されたピクチャから、現在のピクチャ用の1つまたは複数の参照ピクチャを選択してよい。ビデオエンコーダは次いで、選択された1つまたは複数の参照ピクチャに基づいて、現在のピクチャをインター予測符号化することができる。
[0036]本開示に記載される例示的技法におけるビデオデコーダは、ビデオエンコーダを含むデバイスに、情報を出力するときにそれのDPB中に記憶されている、前に復号されたピクチャを識別する情報を出力することができる。ビデオデコーダは、1つまたは複数の候補参照ピクチャを用いて、現在のピクチャをインター予測復号することができる。1つまたは複数の候補参照ピクチャは、ビデオエンコーダによって、識別されたピクチャをインター予測符号化するために使用可能であると前に決定された1つまたは複数のピクチャを含む。
[0037]図1は、本開示に記載される技法を利用することができる例示的なビデオ符号化および復号システム10を示すブロック図である。図1に示すように、システム10はデバイス12とデバイス14とを含む。いくつかの例において、デバイス12およびデバイス14は、ビデオが「リアルタイム」で(たとえば、キャプチャされ、符号化され、送信および受信され、復号され、遅延がほとんどなく表示されるように)符号化され、復号されるビデオテレフォニーまたはビデオ会議に使われるデバイスであり得る。説明しやすいように、本技法は、ビデオテレフォニーまたはビデオ協議に関して記載されるが、本技法は、そのように限定されない。いくつかの例において、本技法はライブストリーミングに使用可能であり得る。本開示に記載される技法は、リアルタイムのアプリケーションに限定される必要はない。
[0038]デバイス12およびデバイス14は、デスクトップコンピュータ、ノートブック(すなわち、ラップトップ)コンピュータ、タブレットコンピュータ、セットトップボックス、いわゆる「スマート」フォンなどの電話ハンドセット、いわゆる「スマート」パッド、テレビジョン、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲーム機、ビデオストリーミングデバイスなどを含む、広範囲にわたるデバイスのいずれかを備え得る。場合によっては、デバイス12およびデバイス14はワイヤレス通信のために装備され得る。
[0039]リアルタイムビデオの場合、デバイス12は、デバイス14が復号するビデオを送信することができ、デバイス14は、デバイス12が復号するビデオを送信することができる。この意味において、場合によっては、デバイス12は、ソースデバイスおよび宛先デバイスとしての両方として機能することができ、デバイス14は、宛先デバイスとソースデバイスの両方として機能することができる。
[0040]たとえば、デバイス12は、ビデオを送信するためのビデオエンコーダ20Aなどの構成要素を含むものとして示され、デバイス14は、ビデオデータを受信するためのビデオデコーダ30Bなどの構成要素を含むものとして示される。ただし、デバイス12は、ビデオを受信する必要がある場合もあるので、デバイス12はビデオデコーダ30Aを含んでもよい。また、デバイス14は、ビデオを送信する必要がある場合もあるので、デバイス14はビデオエンコーダ20Bを含んでもよい。
[0041]説明しやすいように、本技法は、デバイス14が受信するビデオを送信するデバイス12に関して記載される。ただし、デバイス14は、いくつかの例ではビデオを送信もし、概して、デバイス12にデータを送信するように構成され得ることが理解されるべきである。
[0042]たとえば、いくつかの例において、デバイス12およびデバイス14は互いと通信していてよく、ここで両方のデバイスは、互いの間でデータを送信し、データを受信するように構成される。リアルタイムビデオアプリケーションにおいて、デバイス14は、データ(たとえば、それ自体の符号化ビデオ、またはデバイス14が受信するビデオを符号化するためにデバイス12が使う情報など何らかの他のデータ)を送信する必要がある場合がある。したがって、図1に示されるように、デバイス14は、デバイス12にデータを送信するための構成要素(たとえば、ビデオエンコーダ20Bからデバイス12に符号化ビデオを送信する、ビデオソース18B、ビデオエンコーダ20B、および入出力インターフェース22B)を含み得る。同様に、図1に示されるように、デバイス12は、デバイス14からデータを受信するための構成要素(たとえば、入出力インターフェース22A、ビデオデコーダ30A、ディスプレイデバイス31A)を含み得る。
[0043]言い換えると、デバイス12およびデバイス14は、双方向通信を可能にするための、実質的に同様の構成要素を含み得る。たとえば、ビデオソース18Aおよびビデオソース18Bは、それぞれのビデオをキャプチャすることができる。ビデオエンコーダ20Aは、ビデオソース18Aからのビデオを符号化し、ビデオエンコーダ20Bは、ビデオソース18Bからのビデオを符号化する。入出力インターフェース22Aは、ビデオデータを、ビデオエンコーダ20Aからリンク16を介して入出力インターフェース22Bに送信し、入出力インターフェース22Bは、ビデオデータを、ビデオエンコーダ20Bからリンク16を介して入出力インターフェース22Aに送信する。入出力インターフェース22Bは、ビデオを、ビデオ復号のためにビデオデコーダ30Bに、次いで、表示のために、ビデオデコーダ30Bからディスプレイデバイス31Bに送信すればよい。入出力インターフェース22Aは、ビデオを、ビデオ復号のためにビデオデコーダ30Aに、次いで、表示のために、ビデオデコーダ30Aからディスプレイデバイス31Aに送信すればよい。
[0044]リアルタイムのビデオアプリケーションの上記例は、デバイス12およびデバイス14がビデオを送信し、受信するビデオテレフォニーまたはビデオ会議のコンテキストにおいて記載されているが、本開示に記載される技法は、そのように限定されない。いくつかの例では、デバイス12が、ライブイベントのビデオデータをデバイス14に送信する場合がある。この例では、デバイス12は、デバイス14からビデオを受信する必要がない(および、ビデオデコーダ30Aもディスプレイデバイス31Aも含む必要がない)場合があるが、本開示に記載される技法は、リアルタイムのビデオアプリケーションのそのような例に適用可能である。
[0045]デバイス12およびデバイス14は、リンク16を介して、復号されるべき符号化ビデオデータを送信および受信し得る。リンク16は、デバイス12とデバイス14との間で符号化ビデオデータを移動することが可能な任意のタイプの媒体またはデバイスを備えることができる。一例では、リンク16は、デバイス12およびデバイス14が、符号化ビデオデータをリアルタイムで互いに直接送信することを可能にするために通信媒体を備える場合がある。符号化ビデオデータは、ワイヤレス通信プロトコルなどの通信規格に従って変調され、送信され得る。通信媒体は、無線周波数(RF)スペクトルまたは1つもしくは複数の物理伝送線路など、任意のワイヤレスまたはワイヤード通信媒体を備え得る。通信媒体は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはインターネットなどのグローバルネットワーク、などのパケットベースのネットワークの一部を形成し得る。通信媒体は、ルータ、スイッチ、基地局、またはデバイス12からデバイス14への通信を容易にするために有用であり得る任意の他の機器を含み得る。このように、リンク16は、デバイス12およびデバイス14が双方向通信を実施するための媒体として機能する。
[0046]本明細書に記載されるいくつかの例において、ビデオビットストリームが、二方向プロトコルにより伝達され得る。たとえば、例示的プロトコルは、リアルタイムトランスポートプロトコル(RTP)など、インターネットプロトコル(IP)ベースであってよい。具体的には、いくつかの例は、本明細書に論じられるようにストリーミング通信を改善するために、RTPおよび同様のプロトコル用の追加プロトコルメッセージを含む。RTPは概して、ビデオテレフォニーおよびビデオ会議に、ならびにストリーミングライブコンテンツに使われる。
[0047]たとえば、図1において、ビデオデコーダ30A、ビデオエンコーダ20A、ビデオデコーダ30B、およびビデオエンコーダ20Bは、それぞれの入出力インターフェース22Aおよび22Bへの二重矢印を有して示されている。いくつかの例では、ビデオデータを受信するのに加え、ビデオデコーダ30Aは、ビデオエンコーダ20Bによってビデオ符号化に使われる情報を送信することができ、ビデオデータを受信するのに加え、ビデオデコーダ30Bは、ビデオエンコーダ20Aによってビデオ符号化に使われる情報を送信することができる。そのような、ビデオデコーダ30Aからビデオエンコーダ20Bへの、およびビデオデコーダ30Bからビデオエンコーダ20Aへの情報の送信は、RTP(たとえば、RTP用の追加プロトコルメッセージ)、またはビデオデコーダからビデオエンコーダへの、情報のリアルタイム送信を可能にするための同様のプロトコルに従い得る。
[0048]代替として、符号化データが、入出力インターフェース22Bによるアクセスのために、入出力インターフェース22Aから記憶デバイス32に出力され得る。同様に、符号化データが、入出力インターフェース22Aによるアクセスのために、入出力インターフェース22Bから記憶デバイス32に出力され得る。記憶デバイス32は、ハードドライブ、Blu−ray(登録商標)ディスク、DVD、CD−ROM、フラッシュメモリ、揮発性もしくは不揮発性メモリ、または符号化ビデオデータを記憶するための任意の他の好適なデジタル記憶媒体のような、種々の分散されたデータ記憶媒体もしくはローカルにアクセスされるデータ記憶媒体のいずれかを含み得る。さらなる一例では、記憶デバイス32は、デバイス12またはデバイス14によって生成された符号化ビデオを、他方による以降のアクセスのために保持し得るファイルサーバまたは別の中間記憶デバイスに対応し得る。ファイルサーバは、符号化ビデオデータを記憶し、その符号化ビデオデータを送信することが可能な任意のタイプのサーバであり得る。例示的なファイルサーバには、ウェブサーバ(たとえば、ウェブサイト用の)、FTPサーバ、ネットワークアタッチドストレージ(NAS)デバイス、またはローカルディスクドライブがある。デバイス12およびデバイス14は、インターネット接続を含む、任意の標準データ接続を介して、符号化ビデオデータにアクセスすることができる。これは、ファイルサーバ上に記憶された符号化ビデオデータにアクセスするのに適した、ワイヤレスチャネル(たとえば、Wi−Fi(登録商標)接続)、ワイヤード接続(たとえば、DSL、ケーブルモデムなど)、またはその両方の組合せを含み得る。記憶デバイス32からの符号化ビデオデータの送信は、ストリーミング送信であっても、またはダウンロード送信であっても、またはそれらの組合せであってもよい。
[0049]本開示の技法は、必ずしもワイヤレスの適用例または設定に限定されるとは限らない。本技法は、オーバージエアテレビジョン放送、ケーブルテレビジョン送信、衛星テレビジョン送信、たとえばインターネットを介したストリーミングビデオ送信、データ記憶媒体上に記憶するためのデジタルビデオの符号化、データ記憶媒体上に記憶されたデジタルビデオの復号、または他のアプリケーションなどの様々なマルチメディアアプリケーションのうちの任意のマルチメディアアプリケーションのサポートとしてビデオコーディングに適用されてよい。いくつかの例では、システム10は、ビデオストリーミング、ビデオ再生、ビデオブロードキャスティング、および/またはビデオテレフォニーなどのアプリケーションをサポートするために、一方向または二方向のビデオ送信をサポートするように構成される場合がある。
[0050]場合によっては、入力/出力インターフェース22Aおよび22Bは、各々、変調器/復調器(モデム)および/または送信機を含んでよい。デバイス12およびデバイス14において、ビデオソース18Aおよび18Bは、それぞれ、ビデオキャプチャデバイス(たとえばビデオカメラ)、以前にキャプチャされたビデオを含んでいるビデオアーカイブ、ビデオコンテンツプロバイダからビデオを受信するためのビデオフィードインターフェース、および/もしくはソースビデオとしてコンピュータグラフィックスデータを生成するためのコンピュータグラフィックスシステムなどのソース、またはそのようなソースの組合せを含み得る。一例として、ビデオソース18Aおよび18Bがビデオカメラである場合、デバイス12およびデバイス14はいわゆるカメラ付き携帯電話またはビデオ付き携帯電話を形成し得る。しかしながら、本開示で説明する技法は、ビデオコーディング全般に適用可能であり得、ワイヤレスおよび/またはワイヤード適用例に適用され得る。
[0051]キャプチャされたビデオ、プリキャプチャされたビデオ、またはコンピュータ生成されたビデオは、ビデオエンコーダ20Aおよび20Bのそれぞれによって符号化される場合がある。符号化ビデオデータは、デバイス12からデバイス14に、およびその反対に、それぞれの入出力インターフェース22Aおよび22Bを介して直接送信され得る。符号化ビデオデータは、さらに(または代替的に)、復号および/または再生のための後のアクセスのために、記憶デバイス32上に記憶され得る。
[0052]リンク16を介して通信され、または記憶デバイス32上で与えられる符号化ビデオデータは、ビデオデータを復号する際にビデオデコーダ30Bによって使うためにビデオエンコーダ20Aによって生成された様々なシンタックス要素を含むことができ、ビデオデータを復号する際にビデオデコーダ30Aによって使うためにビデオエンコーダ20Bによって生成された様々なシンタックス要素を含むことができる。そのようなシンタックス要素は、通信媒体上で送信されて、記憶媒体上に記憶され、またはファイルサーバに記憶される、符号化ビデオデータとともに含まれ得る。
[0053]ディスプレイデバイス31Aおよび31Bは、デバイス12またはデバイス14の構成要素とともにあってもよく、デバイス12もしくはデバイス14の外部にある別個の構成要素であってもよい。いくつかの例では、デバイス12およびデバイス14は、ディスプレイデバイス構成要素を含むことができ、また、別の外部ディスプレイデバイスとインターフェースするように構成され得る。他の例では、デバイス12およびデバイス14自体がディスプレイデバイスであり得る。概して、ディスプレイデバイス31Aおよび31Bは、復号されたビデオデータをユーザに表示し、液晶ディスプレイ(LCD)、プラズマディスプレイ、有機発光ダイオード(OLED)ディスプレイ、または別のタイプのディスプレイデバイスなどの様々なディスプレイデバイスのいずれかを備え得る。
[0054]ビデオエンコーダ20Aおよび20B(まとめて、「ビデオエンコーダ20」)およびビデオデコーダ30Aおよび30B(まとめて、「ビデオデコーダ30」)は、高効率ビデオコーディング(HEVC)規格などのビデオ圧縮規格に従って動作すればよく、HEVCテストモデル(HM)に準拠し得る。さらに、ビデオエンコーダ20およびビデオデコーダ30は、現在開発中のHEVC規格(HEVC範囲拡張規格(HEVC Range Extension standard)と呼ばれる)の拡張に従って動作し得る。ビデオエンコーダ20およびビデオデコーダ30は、代替的にMPEG−4、Part 10、アドバンストビデオコーディング(AVC)(すなわち、H.264/AVC)と呼ばれるITU−T H.264規格など、他のプロプライエタリ規格もしくは業界規格、またはそのような規格の拡張に従って動作することもできる。ただし、本開示の技法は、いかなる特定のコーディング規格にも限定されない。ビデオ圧縮規格の他の例としては、MPEG−2およびITU−T H.263がある。
[0055]図1には示されていないが、いくつかの態様では、ビデオエンコーダ20およびビデオデコーダ30は、それぞれ、オーディオエンコーダおよびデコーダと統合され得、共通のデータストリームまたは別個のデータストリーム中のオーディオとビデオの両方の符号化を処理するために、適切なMUX−DEMUXユニット、または他のハードウェアおよびソフトウェアを含み得る。MUX−DEMUXユニットは、適用可能な場合、いくつかの例において、ITU H.223マルチプレクサプロトコル、またはユーザデータグラムプロトコル(UDP:user datagram protocol)などの他のプロトコルに適合してよい。
[0056]ビデオエンコーダ20およびビデオデコーダ30は各々、1つもしくは複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ディスクリート論理、ソフトウェア、ハードウェア、ファームウェアまたはそれらの任意の組合せなどの、様々な適切なエンコーダ回路のいずれかとして実装され得る。本技法が部分的にソフトウェアで実装されるとき、デバイスは、ソフトウェアのための命令を好適な非一時的コンピュータ可読媒体に記憶し、本開示の技法を実施するために1つまたは複数のプロセッサを使用してハードウェアでその命令を実行し得る。
[0057]ビデオエンコーダ20およびビデオデコーダ30の各々は、そのいずれかが、複合エンコーダ/デコーダ(コーデック)の一部として、それぞれのデバイス内に統合され得る、1つまたは複数のエンコーダまたはデコーダに含まれてもよい。いくつかの例において、本開示が、デバイスの一部であるビデオエンコーダ20およびビデオデコーダ30について記載するとき、デバイスは、集積回路(IC)またはマイクロプロセッサであり得る(たとえば、ビデオエンコーダ20Aおよびビデオデコーダ30Aは、互いと、および場合によっては集積回路またはマイクロプロセッサ中の他の構成要素と統合されてよく、ビデオエンコーダ20Bおよびビデオデコーダ30Bは、互いと、および場合によっては集積回路またはマイクロプロセッサ中の他の構成要素と統合されてよい)。いくつかの例において、デバイスは、デバイス12またはデバイス14のようなワイヤレス通信デバイスなどのワイヤレスデバイスであり得る。
[0058]以下は、理解を助けるための、HEVC規格についての手短な説明である。ただし、本開示に記載される技法は、HEVC規格に限定されるのではなく、H.264/AVCなど、他の規格に適用可能であるか、または規格外ベースのビデオコーディングに適用可能である。説明しやすいように、以下は、ビデオエンコーダ20Aおよびビデオデコーダ30Bに関して説明される。ただし、ビデオエンコーダ20Bおよびビデオデコーダ30Aは、それぞれ、ビデオエンコーダ20Aおよびビデオデコーダ30Bと同様に構成されてよい。いくつかの例において、ビデオエンコーダ20Aおよびビデオエンコーダ20Bが異なるように構成されることが可能であり得る。たとえば、ビデオデコーダ30Aおよびビデオデコーダ30Bは異なるように構成され得るが、ビデオエンコーダ20Aは、ビデオデコーダ30Bによって復号可能なビデオデータを生成することができ、ビデオエンコーダ20Bは、ビデオデコーダ30Aによって復号可能なビデオデータを生成することができる。言い換えると、ビデオエンコーダ20Aおよびビデオエンコーダ20Bは同様に構成されてよく、ビデオデコーダ30Aおよびビデオデコーダ30Bは同様に構成されてよい。ただし、これは必須ではなく、ビデオエンコーダ20Aおよびビデオエンコーダ20Bは異なるように構成されてよく、ビデオデコーダ30Aおよびビデオデコーダ30Bは異なるように構成されてよい。
[0059]JCT−VCが、HEVC規格を開発した。HEVCの規格化の取組みは、HEVCテストモデル(HM)と呼ばれるビデオコーディングデバイスの発展型モデルに基づく。HMは、たとえばITU−T H.264/AVCに従う既存のデバイスに対する、ビデオコーディングデバイスの複数の追加能力を仮定する。たとえば、H.264は、9つのイントラ予測符号化モード(intra-prediction encoding modes)を提供するが、HMは、33個ものイントラ予測符号化モードを提供し得る。
[0060]「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のビデオコーディング共同研究部会(JCT−VC)、第12回会合:スイス、ジュネーブ、2013年1月14〜23日に記載されおり、この文書は、http://phenix.int−evry.fr/jct/doc_end_user/documents/12_Geneva/wg11/JCTVC−L1003−v34.zipからダウンロード可能である。
[0061]HEVC規格のさらに別のドラフトは、本明細書で「WD10改訂」と呼ばれ、Brossら、「Editors’ proposed corrections to HEVC version 1」、ITU−T SG16 WP3およびISO/IEC JTC1/SC29/WG11のビデオコーディング共同研究部会(JCT−VC)、第13回会合、仁川、韓国、2013年4月に記載されており、この文書は、http://phenix.int−evry.fr/jct/doc_end_user/documents/13_Incheon/wg11/JCTVC−M0432−v3.zipから入手可能である。
[0062]概して、HMの作業モデルは、ビデオフレームまたはピクチャが、ルーマサンプルとクロマサンプルの両方を含むツリーブロックまたは最大コーディングユニット(LCU:largest coding units)のシーケンスに分割され得ることを記載している。ツリーブロックは、H.264規格のマクロブロックと同様の目的を有する。スライスは、コーディング順序でいくつかの連続するツリーブロックを含む。ビデオフレームまたはピクチャは、1つまたは複数のスライスに区分化される場合がある。各ツリーブロックは、4分木に従ってコーディングユニット(CU)にスプリットされ得る。たとえば、4分木のルートノードとしてのツリーブロックは、4つの子ノードにスプリットされてよく、各子ノードは、次に、親ノードとなり、別の4つの子ノードにスプリットされ得る。4分木のリーフノードとしての、最終的なスプリットされていない子ノードは、コードディングノード、すなわち、コード化ビデオブロックを備える。コード化ビットストリームに関連付けられたシンタックスデータは、ツリーブロックがスプリットされ得る最大回数を定義することができ、コーディングノードの最小サイズも定義することができる。
[0063]CUは、コーディングノードと、コーディングノードに関連付けられた予測ユニット(PU)および変換ユニット(TU)とを含む。CUのサイズは、コーディングノードのサイズに対応し、形状において正方形でなければならない。CUのサイズは、8×8ピクセルから、最大64×64ピクセル以上を有するツリーブロックのサイズまでに及び得る。各CUは、1つまたは複数のPUと1つまたは複数のTUとを包含し得る。CUに関連付けられたシンタックスデータは、たとえば、1つまたは複数のPUへのCUの区分を記述することができる。区分モードは、CUがスキップモード符号化もしくは直接モード符号化されるのか、イントラ予測モード符号化されるのか、またはインター予測モード符号化されるのかの間で異なる可能性がある。PUは、形状において非正方形に区分され得る。CUに関連付けられたシンタックスデータは、たとえば、4分木に従う1つまたは複数のTUへのCUの区分を記述することもできる。TUは、形状が正方形または非正方形であり得る。
[0064]HEVC規格は、CUによって異なり得る、TUに従う変換を可能にする。TUは、通常、区分されたLCUのために定義された、所与のCU内のPUのサイズに基づいてサイズ変更されるが、これは常にそうであるとは限らない。TUは、通常、PUと同じサイズであるか、またはPUよりも小さい。いくつかの例では、CUに対応する残差サンプルは、「残差4分木」(RQT:residual quad tree)と呼ばれる4分木構造を使用して、より小さいユニットに再分割され(subdivided)得る。RQTのリーフノードはTUと呼ばれ得る。TUに関連付けられたピクセル差分値は、量子化され得る変換係数を生成するために変換され得る。
[0065]概して、PUは、予測プロセスに関係するデータを含む。たとえば、PUがイントラモード符号化されるとき、PUは、PUについてのイントラ予測モードを記述するデータを含み得る。別の例として、PUがインターモード符号化されるとき、PUは、PUについての動きベクトルを定義するデータを含み得る。PUのための動きベクトルを定義するデータは、たとえば、動きベクトルの水平成分、動きベクトルの垂直成分、動きベクトルについての解像度(たとえば、1/4ピクセル精度もしくは1/8ピクセル精度)、動きベクトルが指す参照ピクチャ、および/または動きベクトルの参照ピクチャリスト(たとえば、リスト0(RefPicList0)、リスト1(RefPicList1)、もしくはリストC)を記述し得る。
[0066]一般に、TUは、変換処理および量子化処理のために使用される。1つまたは複数のPUを有する所与のCUは、1つまたは複数のTUも含み得る。予測に続いて、ビデオエンコーダ20Aは、PUに対応する残差値を計算することができる。残差値は、エントロピーコーディングのためのシリアル化された変換係数(serialized transform coefficients)を生成するために、TUを使用して変換係数に変換され、量子化され、走査され得るピクセル差分値を備える。本開示では、一般に、CUのコーディングノードを指すために「ビデオブロック」という用語を使用する。いくつかの特定の場合には、本開示ではまた、コーディングノードならびにPUおよびTUを含む、ツリーブロック、すなわち、LCUまたはCUを指すために「ビデオブロック」という用語を使用し得る。
[0067]ビデオシーケンスは、一般に、一連のビデオフレームまたはピクチャを含む。ピクチャグループ(GOP:a group of pictures)は、一般に、ビデオピクチャのうちの一連の1つまたは複数を備える。GOPは、GOP中に含まれるいくつかのピクチャを記述するシンタックスデータを、GOPのヘッダ中、ピクチャの1つもしくは複数のヘッダ中、または他の場所に含み得る。ピクチャの各スライスは、それぞれのスライスに関する符号化モードを記述するスライスシンタックスデータを含む場合がある。ビデオエンコーダ20Aは、一般に、ビデオデータを符号化するために、個々のビデオスライス内のビデオブロックに作用する。ビデオブロックはCU内のコーディングノードに対応する場合がある。ビデオブロックは、固定サイズまたは可変サイズを有することができ、指定されたコーディング規格に従ってサイズが異なり得る。
[0068]例として、HMは、様々なPUサイズでの予測をサポートする。特定のCUのサイズが2N×2Nであると仮定すると、HMは、2N×2NまたはN×NのPUサイズでのイントラ予測と、2N×2N、2N×N、N×2N、またはN×Nの対称PUサイズ(symmetric PU sizes)でのインター予測とをサポートする。HMはまた、2N×nU、2N×nD、nL×2N、およびnR×2NのPUサイズでのインター予測のための非対称区分(asymmetric partitioning)をサポートする。非対称区分では、CUの一方の方向は区分されず、他方の方向は25%と75%とに区分される。25%の区分に対応するCUの部分は、「n」とその後ろに付く「Up」、「Down」、「Left」、または「Right」という表示によって示される。したがって、たとえば、「2N×nU」は、上部の2N×0.5N PUと下部の2N×1.5N PUとで水平に区分された2N×2N CUを指す。
[0069]本開示では、たとえば16×16ピクセルまたは16かける16ピクセルなど、「N×N」および「NかけるN(N by N)」は、垂直および水平のディメンションに関して、ビデオブロックのピクセルディメンションを示すために区別なく使用され得る。概して、16×16ブロックは、垂直方向に16ピクセルを有し(y=16)、水平方向に16ピクセルを有する(x=16)。同様に、N×Nブロックは、概して、垂直方向にNピクセルを有し、水平方向にNピクセルを有し、ただし、Nは非負整数値を表す。ブロック中のピクセルは行および列に配列され得る。さらに、ブロックは、必ずしも、水平方向において垂直方向と同じ数のピクセルを有するとは限らない。たとえば、ブロックはN×Mピクセルを備えることがあり、ここで、Mは必ずしもNに等しいとは限らない。
[0070]CUのPUを使用したイントラ予測コーディングまたはインター予測コーディングに続いて、ビデオエンコーダ20Aは、CUのTUのための残差データを計算し得る。PUは、(ピクセル領域とも呼ばれる)空間領域においてピクセルデータを備える場合があり、TUは、変換、たとえば、残差ビデオデータに対する離散コサイン変換(DCT)、整数変換、ウェーブレット変換、または概念的に同様の変換の適用を受けて、変換領域において係数を備える場合がある。残差データは、符号化されていないピクチャのピクセルと、PUに対応する予測値との間のピクセル差分に対応し得る。ビデオエンコーダ20Aは、CUに関する残差データを含むTUを形成し、次いで、CUに関する変換係数を生成するためにTUを変換することができる。
[0071]変換係数を生成するためのすべての変換に続いて、ビデオエンコーダ20Aは、変換係数の量子化を実施することができる。量子化は一般に、係数を表すために使用されるデータの量をできるだけ低減するために、変換係数が量子化され、さらなる圧縮を実現する処理を指す。量子化処理は、係数の一部またはすべてと関連付けられるビット深度を低減させることができる。たとえば、nビット値が、量子化中にmビット値へと切り捨てられてよく、nは、mより大きい。
[0072]いくつかの例では、ビデオエンコーダ20Aは、量子化変換係数を走査して、エントロピー符号化され得るシリアル化ベクトルを生成するために、あらかじめ定義された走査順序を利用し得る。他の例では、ビデオエンコーダ20Aは適応型走査を実施し得る。量子化された変換係数を走査して1次元ベクトルを形成した後、ビデオエンコーダ20Aは、たとえば、コンテキスト適応型可変長コーディング(CAVLC:context adaptive variable length coding)、コンテキスト適応型バイナリ算術コーディング(CABAC:context adaptive binary arithmetic coding)、シンタックスベースコンテキスト適応型バイナリ算術コーディング(SBAC:syntax-based context-adaptive binary arithmetic coding)、確率間隔区分エントロピー(PIPE:Probability Interval Partitioning Entropy)コーディング、または別のエントロピー符号化方法に従って、1次元ベクトルをエントロピー符号化することができる。ビデオエンコーダ20Aはまた、ビデオデータを復号する際のビデオデコーダ30Bによる使用のために、符号化ビデオデータに関連付けられたシンタックス要素をエントロピー符号化し得る。
[0073]CABACを実施するために、ビデオエンコーダ20Aは、コンテキストモデル内のコンテキストを、送信されるべきシンボルに割り当て得る。コンテキストは、たとえば、シンボルの隣接値が非0であるか否かに関し得る。CAVLCを実施するために、ビデオエンコーダ20Aは、送信されるべきシンボルのための可変長コードを選択し得る。VLC中のコードワードは、比較的短いコードがより起こりそうなシンボル(more probable symbols)に対応し、より長いコードがあまり起こりそうにないシンボル(less probable symbols)に対応するように、構成され得る。このようにして、VLCの使用は、たとえば、送信されるべき各シンボルのための等長コードワードを使用することに勝るビット節約を達成し得る。確率決定は、シンボルに割り当てられたコンテキストに基づき得る。
[0074]図2は、本開示に記載された技法を実施することができる、例示的なビデオエンコーダ20Aを示すブロック図である。上述したように、ビデオエンコーダ20Bはビデオエンコーダ20Aと同様であり得るが、本開示に記載される技法は、そのように限定されない。ビデオエンコーダ20Aは、ビデオスライス内のビデオブロックのイントラコーディングとインターコーディングとを実施し得る。イントラコーディングは、所与のビデオフレームまたはピクチャ内のビデオの空間冗長性を低減または除去するために空間的予測に依拠する。インターコーディングは、ビデオシーケンスの隣接フレームまたはピクチャ内のビデオの時間的冗長性を低減または除去するために、時間的予測に依拠する。イントラモード(Iモード)は、いくつかの空間ベースの圧縮モードのいずれかを指し得る。単方向予測(Pモード)または双予測(bi-prediction)(Bモード)のようなインターモードは、いくつかの時間ベースの圧縮モードのいずれかを指し得る。
[0075]図2の例では、ビデオエンコーダ20Aは、ビデオデータメモリ39と、区分化ユニット35と、予測処理ユニット41と、復号ピクチャバッファ(DPB)64と、加算器50と、変換処理ユニット52と、量子化ユニット54と、エントロピー符号化ユニット56とを含む。予測処理ユニット41は、動き推定ユニット42と、動き補償ユニット44と、イントラ予測処理ユニット46とを含む。ビデオブロックの再構築のために、ビデオエンコーダ20Aはまた、逆量子化ユニット58と、逆変換処理ユニット60と、加算器62とを含む。再構築されたビデオからブロッキネスアーティファクトを除去するためにブロック境界をフィルタリングするためのデブロッキングフィルタ(図2に図示せず)も含まれ得る。必要な場合、デブロッキングフィルタは、通常、加算器62の出力をフィルタリングすることになる。デブロッキングフィルタに加えて追加的なループフィルタ(インループまたはポストループ)が使用されてもよい。
[0076]図2に示すように、ビデオデータメモリ39は、ビデオピクチャ内の現在のビデオブロックを符号化するために使用されるビデオデータを受信する。ビデオデータメモリ39は、(たとえば、ビデオデータを記憶するように構成された)ビデオエンコーダ20Aの構成要素によって符号化されるべきビデオデータを記憶するか、またはビデオピクチャを符号化するために使用されるべきビデオデータを記憶することができる。たとえば、ビデオデータメモリ39は、ビデオエンコーダ20Aが符号化する各ピクチャについてのパラメータセットを記憶する(たとえば、それぞれのピクチャをインター予測するのに使われた可能性があるピクチャを示す情報を記憶する)ことができる。本開示に記載される技法によると、ビデオデータメモリ39は、ビデオデコーダ30Bによって前に復号されたピクチャを識別する、ビデオデコーダ30Bから受信された情報を記憶することもできる。たとえば、ビデオエンコーダ20Aは、ビデオデコーダ30Bによって識別されたピクチャ、ビデオデコーダ30Bによって識別されたピクチャをインター予測するのに使われた可能性があるピクチャ、またはビデオデコーダ30Bによって識別されたピクチャをインター予測するのに使われた可能性があるピクチャをインター予測するのに使われ得るであろうピクチャ、のうちの1つまたは複数に基づいて、現在のピクチャをインター予測するように構成され得る。概して、ビデオエンコーダ20Aが、決定されたピクチャのそのようなグループからピクチャを選択した場合、選択されたピクチャが、ビデオデコーダ30Bによる復号に利用可能である可能性が高い。
[0077]いくつかの例では、ビデオデータメモリ39に記憶されるビデオデータは、たとえば、ビデオソース18Aから取得される場合がある。DPB64は、(たとえば、イントラ予測コーディングモードまたはインター予測コーディングモードで)ビデオエンコーダ20Aによってビデオデータを符号化する際に使用する参照ビデオデータを記憶する。ビデオデータメモリ39およびDPB64は、同期DRAM(SDRAM)を含むダイナミックランダムアクセスメモリ(DRAM)、磁気抵抗RAM(MRAM)、抵抗性RAM(RRAM(登録商標))、または他のタイプのメモリデバイスなど、様々なメモリデバイスのうちのいずれかによって形成され得る。ビデオデータメモリ39およびDPB64は、同じメモリデバイスまたは別個のメモリデバイスによって提供され得る。様々な例では、ビデオデータメモリ39は、ビデオエンコーダ20Aの他の構成要素とともにオンチップであるか、またはそれらの構成要素に対してオフチップであり得る。
[0078]図2に示されるように、ビデオエンコーダ20Aはビデオデータを受信し、区分化ユニット35はそのデータをビデオブロックに区分する。この区分はまた、たとえば、LCUおよびCUの4分木構造に従って、スライス、タイル、または他のより大きいユニットへの区分、およびビデオブロック区分、をも含み得る。ビデオエンコーダ20Aは概して、符号化されるべきビデオスライス内のビデオブロックを符号化する構成要素を示す。スライスは、複数のビデオブロックに(および場合によっては、タイルと呼ばれるビデオブロックのセットに)分割され得る。予測処理ユニット41は、エラー結果(たとえば、コーディングレートおよびひずみレベル)に基づいて、現在のビデオブロックのために、複数のイントラコーディングモードのうちの1つ、または複数のインターコーディングモードのうちの1つなど、複数の可能なコーディングモードのうちの1つを選択し得る。
[0079]予測処理ユニット41は、ビデオデコーダ30Bによって識別された参照ピクチャに基づいて、インター予測を実施するための本開示の技法を実施するように構成され得る。予測処理ユニット41は、得られたイントラコード化ブロックまたはインターコード化ブロックを、残差ブロックデータを生成するために加算器50に与え、参照ピクチャとして使用するための符号化ブロックを再構築するために加算器62に与え得る。
[0080]予測処理ユニット41内のイントラ予測処理ユニット46は、空間圧縮を行うために、コーディングされるべき現在のブロックと同じフレームまたはスライス中の1つまたは複数の隣接ブロックに対して現在のビデオブロックのイントラ予測コーディングを実施し得る。予測処理ユニット41内の動き推定ユニット42および動き補償ユニット44は、時間的圧縮を行うために、1つまたは複数の参照ピクチャ中の1つまたは複数の予測ブロックに対して現在のビデオブロックのインター予測コーディングを実施する。
[0081]動き推定ユニット42は、ビデオシーケンスの所定のパターンに従ってビデオスライスのためのインター予測モードを決定するように構成され得る。所定のパターンは、シーケンス中のビデオスライスを、Pスライス、Bスライス、またはGPBスライスとして指定し得る。動き推定ユニット42および動き補償ユニット44は、高度に統合され得るが、概念的な目的のために別々に示してある。動き推定ユニット42によって実施される動き推定は、ビデオブロックについての動きを推定する動きベクトルを生成するプロセスである。動きベクトルは、たとえば、参照ピクチャ内の予測ブロックに対する、現在のビデオフレームまたはピクチャ内のビデオブロックのPUの変位(displacement)を示し得る。
[0082]予測ブロックは、絶対値差分和(SAD:sum of absolute difference)、差分2乗和(SSD:sum of square difference)、または他の差分メトリックによって決定され得るピクセル差分に関して、コーディングされるべきビデオブロックのPUに厳密に一致することがわかるブロックである。いくつかの例では、ビデオエンコーダ20Aは、DPB64に記憶された参照ピクチャのサブ整数ピクセル位置(sub-integer pixel positions)の値を計算することができる。たとえば、ビデオエンコーダ20Aは、参照ピクチャの1/4ピクセル位置、1/8ピクセル位置、または他の分数ピクセル位置(fractional pixel positions)の値を補間することができる。したがって、動き推定ユニット42は、フルピクセル位置(full pixel positions)と分数ピクセル位置とに対して動き探索を実施し、分数ピクセル精度をもつ動きベクトルを出力し得る。
[0083]動き推定ユニット42は、PUの位置を参照ピクチャの予測ブロックの位置と比較することによって、インターコード化スライス中のビデオブロックのPUに関する動きベクトルを計算する。参照ピクチャは、第1の参照ピクチャリスト(RefPicList0)または第2の参照ピクチャリスト(RefPicList1)から選択されてよく、それらの各々は、DPB64に記憶された1つまたは複数の参照ピクチャを識別する。動き推定ユニット42は、計算された動きベクトルをエントロピー符号化ユニット56および動き補償ユニット44に送る。
[0084]動き補償ユニット44によって実施される動き補償は、動き推定によって決定された動きベクトルに基づいて予測ブロックを取り込むことまたは生成すること、場合によってはサブピクセル精度への補間を実施することを伴い得る。現在のビデオブロックのPUについての動きベクトルを受信すると、動き補償ユニット44は、動きベクトルが参照ピクチャリストのうち1つにおいて指す予測ブロックの位置を特定し(locate)得る。ビデオエンコーダ20Aは、コーディングされている現在のビデオブロックのピクセル値から予測ブロックのピクセル値を減算し、ピクセル差分値を形成することによって残差ビデオブロックを形成する。ピクセル差分値は、ブロックについての残差データを形成し、ルーマ差分成分とクロマ差分成分の両方を含み得る。加算器50は、この減算演算を実施する1つまたは複数の構成要素を表す。動き補償ユニット44はまた、ビデオスライスのビデオブロックを復号する際にビデオデコーダ30Bによって使用するための、ビデオブロックとビデオスライスとに関連付けられたシンタックス要素を生成し得る。
[0085]イントラ予測処理ユニット46は、上に記述したように、動き推定ユニット42および動き補償ユニット44によって実施されるインター予測の代替として、現在のブロックをイントラ予測する(intra-predict)ことができる。特に、イントラ予測処理ユニット46は、現在のブロックを符号化するために使用すべきイントラ予測モードを決定し得る。いくつかの例では、イントラ予測処理ユニット46は、たとえば、別個の符号化パス中に、様々なイントラ予測モードを使用して現在ブロックを符号化することができ、イントラ予測処理ユニット46(または、いくつかの例では、予測処理ユニット41)は、テストされたモードから使用するのに適切なイントラ予測モードを選択することができる。たとえば、イントラ予測処理ユニット46は、様々なテストされたイントラ予測モードについてレートひずみ分析を使用してレートひずみ値を計算し、テストされたモードの中で最良のレートひずみ特性を有するイントラ予測モードを選択し得る。レートひずみ分析は、一般に、符号化ブロックと、符号化ブロックを生成するために符号化された元の符号化されていないブロックとの間のひずみ(または誤差)の量、ならびに符号化ブロックを生成するために使用されるビットレート(すなわち、ビットの数)を決定する。イントラ予測処理ユニット46は、様々な符号化されたブロックについてのひずみおよびレートから比率を計算し、どのイントラ予測モードがブロックの最良のレートひずみ値を示すかを決定し得る。
[0086]いずれの場合も、ブロックのためのイントラ予測モードを選択した後に、イントラ予測処理ユニット46は、ブロックのための選択されたイントラ予測モードを示す情報をエントロピー符号化ユニット56に与え得る。エントロピー符号化ユニット56は、本開示の技法に従って、選択されたイントラ予測モードを示す情報を符号化し得る。ビデオエンコーダ20Aは、複数のイントラ予測モードインデックステーブルと複数の修正されたイントラ予測モードインデックステーブル(コードワードマッピングテーブルとも呼ばれる)とを含み得る送信されるビットストリーム構成データ中に、様々なブロックの符号化コンテキストの定義と、コンテキストの各々に使用すべき最も確からしいイントラ予測モード(a most probable intra-prediction mod)、イントラ予測モードインデックステーブル、および修正されたイントラ予測モードインデックステーブルの指示とを含み得る。
[0087]予測処理ユニット41が、インター予測またはイントラ予測のいずれかを介して、現在のビデオブロックのための予測ブロックを生成した後に、ビデオエンコーダ20Aは、現在のビデオブロックから予測ブロックを減算することによって残差ビデオブロックを形成する。残差ブロック中の残差ビデオデータは、1つまたは複数のTU中に含まれ、変換処理ユニット52に適用され得る。変換処理ユニット52は、離散コサイン変換(DCT)または概念的に同様の変換などの変換を使用して、残差ビデオデータを残差変換係数に変換する。変換処理ユニット52は、残差ビデオデータをピクセル領域から周波数領域などの変換領域に変換してよい。
[0088]変換処理ユニット52は、結果として生成された変換係数を量子化ユニット54に送ることができる。量子化ユニット54は、ビットレートをさらに低減させるために変換係数を量子化する。量子化プロセスは、係数の一部またはすべてに関連付けられたビット深度を低減させることができる。量子化の程度は、量子化パラメータを調整することによって修正され得る。いくつかの例では、量子化ユニット54は、次いで、量子化された変換係数を含む行列の走査を実施し得る。代替的に、エントロピー符号化ユニット56が走査を実施し得る。
[0089]量子化の後、エントロピー符号化ユニット56は、量子化された変換係数をエントロピー符号化する。たとえば、エントロピー符号化ユニット56は、コンテキスト適応型可変長コーディング(CAVLC)、コンテキスト適応型バイナリ算術コーディング(CABAC)、シンタックスベースコンテキスト適応型バイナリ算術コーディング(SBAC)、確率間隔区分エントロピー(PIPE)コーディングまたは別のエントロピー符号化方法または技法を実施し得る。エントロピー符号化ユニット56によるエントロピー符号化に続いて、符号化ビットストリームは、ビデオデコーダ30Bに送信され得るか、またはビデオデコーダ30Bが後で送信するかもしくは取り出すためにアーカイブされ得る。エントロピー符号化ユニット56はまた、コーディングされている現在のビデオスライスのための動きベクトルと他のシンタックス要素とをエントロピー符号化することができる。
[0090]逆量子化ユニット58および逆変換処理ユニット60は、参照ピクチャの参照ブロックとして後で使用するために、ピクセル領域において残差ブロックを再構築するために、それぞれ逆量子化および逆変換を適用する。動き補償ユニット44は、残差ブロックを複数の参照ピクチャリストのうち1つの参照ピクチャリスト内の複数の参照ピクチャのうちの1つの参照ピクチャの予測ブロックに加算することによって参照ブロックを計算し得る。動き補償ユニット44はまた、動き推定において使用するためのサブ整数ピクセル値を計算するために、再構築された残差ブロックに1つまたは複数の補間フィルタを適用し得る。加算器62は、DPB64に記憶するための参照ブロックを生成するために、再構築された残差ブロックを動き補償ユニット44によって生成された動き補償予測ブロックに加算する。参照ブロックは、後続のビデオフレームまたはピクチャ中のブロックをインター予測するために、動き推定ユニット42および動き補償ユニット44によって参照ブロックとして使用され得る。
[0091]後でより詳しく説明されるように、ビデオエンコーダ20Aは、ビデオデコーダ30Bから、ビデオデコーダ30Bにおける復号に利用可能な参照ピクチャを示す情報を受信するように構成され得る。ビデオエンコーダ20Aは、ビデオデコーダ30Bにおける復号に利用可能な参照ピクチャのうちの1つまたは複数に基づいて、現在のピクチャをインター予測符号化することができる。いくつかの例において、ビデオエンコーダ20Aは、ビデオデコーダ30Bによる参照ピクチャの再構築中にエラーが起きた場合、ビデオデコーダ30Bにおける復号に利用可能な参照ピクチャを示す情報を受信し得る。いくつかの例において、ビデオデコーダ30Bにおける復号に利用可能な参照ピクチャを示す情報を受信するために、ビデオエンコーダ20Aは、参照ピクチャセット中で識別されるピクチャを識別する情報を受信し得る。ビデオエンコーダ20Aは、参照ピクチャセット中に含まれる参照ピクチャを、ビデオデコーダ30Bにおける復号に利用可能な参照ピクチャとして決定するように構成され得る。
[0092]このようにして、ビデオエンコーダ20Aは、ビデオデコーダ30Bを含むデバイス14から、ビデオデコーダ30Bが情報を送信したときにビデオデコーダ30BのDPB92(図3)中に記憶されている、前に復号されたピクチャを識別する情報を受信するように構成され得る。ビデオエンコーダ20Aは、識別されたピクチャに基づいて、現在のピクチャを符号化するために利用可能である1つまたは複数の候補参照ピクチャを決定することができる。1つまたは複数の候補参照ピクチャは、識別されたピクチャまたは識別されたピクチャにコーディング順序で続く複数のピクチャのうちの1つまたは複数をインター予測符号化するために使用可能であると(たとえば、参照ピクチャセットを形成する参照ピクチャサブセットのうちの1つまたは複数を含む、識別されたピクチャについてのパラメータセットに基づいて)前に決定された1つまたは複数のピクチャであって、ビデオエンコーダ20AのDPB64中に依然として記憶されている1つまたは複数のピクチャを含む。ビデオエンコーダ20Aは(たとえば、予測処理ユニット41により)、決定された1つまたは複数の候補参照ピクチャおよび識別されたピクチャから、現在のピクチャ用の1つまたは複数の参照ピクチャを選択することができる。
[0093]ビデオエンコーダ20Aは、選択された1つまたは複数の参照ピクチャに基づいて、現在のピクチャをインター予測符号化すればよい。たとえば、ビデオエンコーダ20Aは、決定された候補参照ピクチャおよび識別されたピクチャから1つのピクチャを選択し、現在のピクチャをインター予測するために単方向予測する(uni-directional predict)ことができる。いくつかの例において、ビデオエンコーダ20Aは、決定された候補参照ピクチャおよび識別されたピクチャから、現在のピクチャ用に2つのピクチャを選択し、現在のピクチャを双予測符号化する(bi-prediction encode)(たとえば、現在のピクチャをインター予測符号化するために、2つの参照ピクチャ、すなわち各参照ピクチャリストからの1つ、を使う)ことができる。
[0094]場合によっては、ビデオエンコーダ20Aは、識別されたピクチャが現在のピクチャを符号化するために利用可能である(たとえば、DPB64中に記憶されている)かどうか決定することができる。ビデオエンコーダ20Aは、識別されたピクチャが現在のピクチャを符号化するために利用可能でないという決定に基づいて、現在のピクチャを、インター予測符号化するよりもむしろ、イントラ予測符号化することができる。
[0095]ビデオエンコーダ20Aは、さらに、欠落されたピクチャを識別する情報を受信することもできる。ビデオエンコーダ20Aは、欠落されたピクチャを、決定された1つまたは複数の候補参照ピクチャから除外してよい。
[0096]図3は、本開示で説明する技法を実施し得る例示的なビデオデコーダ30Bを示すブロック図である。上述したように、ビデオデコーダ30Aはビデオデコーダ30Bと同様であり得るが、本開示に記載される技法は、そのように限定されない。図3の例では、ビデオデコーダ30Bは、エントロピー復号ユニット80と、予測処理ユニット81と、逆量子化ユニット86と、逆変換ユニット88と、加算器90と、復号ピクチャバッファ(DPB)92とを含む。予測処理ユニット81は、動き補償ユニット82とイントラ予測処理ユニット84とを含む。ビデオデコーダ30Bは、いくつかの例では、図2からのビデオエンコーダ20Aに関して説明した符号化パスとは概して逆の復号パスを実施し得る。
[0097]図3の例では、ビデオデータメモリ79は、符号化ビデオを受信する。ビデオデータメモリ79は、ビデオデコーダ30Bの構成要素によって復号されるべき、符号化ビデオビットストリームなどのビデオデータを記憶し(たとえば、ビデオデータを記憶するように構成され)得る。ビデオデータメモリ79はまた、ビデオデータを復号し、ピクチャを再構築するためにビデオデコーダ30Bの構成要素によって使用されるビデオデータを記憶することができる。
[0098]ビデオデータメモリ79に記憶されたビデオデータは、カメラなどのローカルビデオソースから、ビデオデータのワイヤードもしくはワイヤレスのネットワーク通信を介して、または物理データ記憶媒体にアクセスすることによって取得され得る。ビデオデータメモリ79は、符号化ビデオビットストリームからの符号化ビデオデータを記憶するコード化ピクチャバッファ(CPB:a coded picture buffer)を形成し得る。
[0099]DPB92は、(たとえば、イントラコーディングモードまたはインターコーディングモードで)ビデオデコーダ30Bによってビデオデータを復号する際に使用するための参照ビデオデータを記憶するメモリの一例である。ビデオデータメモリ79およびDPB92は、同期DRAM(SDRAM)を含むダイナミックランダムアクセスメモリ(DRAM)、磁気抵抗RAM(MRAM)、抵抗性RAM(RRAM)、または他のタイプのメモリデバイスなど、様々なメモリデバイスのうちのいずれかによって形成され得る。ビデオデータメモリ79およびDPB92は、同じメモリデバイスまたは別個のメモリデバイスによって提供され得る。様々な例では、ビデオデータメモリ79は、ビデオデコーダ30Bの他の構成要素とともにオンチップであってよく、またはそれらの構成要素に対してオフチップであってもよい。
[0100]復号プロセスの間、ビデオデコーダ30Bは、符号化ビデオスライスのビデオブロックと、関連するシンタックス要素とを表す符号化ビデオビットストリームをビデオエンコーダ20Aから受信する。ビデオデコーダ30Bのエントロピー復号ユニット80は、量子化された係数と、動きベクトルと、他のシンタックス要素とを生成するために、ビットストリームをエントロピー復号する。エントロピー復号ユニット80は、動きベクトルと他のシンタックス要素とを予測処理ユニット81にフォワードする。ビデオデコーダ30Bは、ビデオスライスレベルおよび/またはビデオブロックレベルにおいてシンタックス要素を受信することができる。
[0101]ビデオスライスがイントラコード化(I)スライスとしてコーディングされるとき、予測処理ユニット81のイントラ予測処理ユニット84は、シグナリングされたイントラ予測モードと、現在のフレームまたはピクチャの、以前に復号されたブロックからのデータとに基づいて、現在のビデオスライスのビデオブロックのための予測データを生成し得る。予測処理ユニット81は、参照ピクチャが受信されないときなどに、インター予測にどの参照ピクチャが使われるべきかを示すために、本開示の技法を実装するように構成され得る。ビデオフレームがインターコード化(すなわち、BまたはP)スライスとしてコーディングされるとき、予測処理ユニット81の動き補償ユニット82は、エントロピー復号ユニット80から受信された動きベクトルおよび他のシンタックス要素に基づいて、現在のビデオスライスのビデオブロックについての予測ブロックを生成する。予測ブロックは、参照ピクチャリストのうちの1つの中の参照ピクチャのうちの1つから生成され得る。ビデオデコーダ30Bは、DPB92に記憶された参照ピクチャに基づいて、デフォルトの構成技法を使用して、参照フレームリスト、すなわち、RefPicList0とRefPicList1とを構築し得る。
[0102]動き補償ユニット82は、動きベクトルと他のシンタックス要素とをパーズすること(parsing)によって現在のビデオスライスのビデオブロックのための予測情報を決定し、復号されている現在のビデオブロックのための予測ブロックを生成するために予測情報を使用する。たとえば、動き補償ユニット82は、ビデオスライスのビデオブロックをコーディングするために使用される予測モード(たとえば、イントラ予測またはインター予測)と、インター予測スライスタイプ(たとえば、Bスライス、Pスライス、またはGPBスライス)と、スライスの参照ピクチャリストのうちの1つまたは複数のための構築情報と、スライスの各インター符号化ビデオブロックのための動きベクトルと、スライスの各インターコード化ビデオブロックのためのインター予測ステータスと、現在のビデオスライス中のビデオブロックを復号するための他の情報と、を決定するために、受信されたシンタックス要素のいくつかを使用する。
[0103]動き補償ユニット82はまた、補間フィルタに基づいて補間を実施し得る。動き補償ユニット82は、参照ブロックのサブ整数ピクセルに関して補間された値を計算するために、ビデオブロックの符号化の間にビデオエンコーダ20Aによって使用された補間フィルタを使用することができる。このケースでは、動き補償ユニット82は、受信されたシンタックス要素から、ビデオエンコーダ20Aで使用された補間フィルタを決定し、予測ブロックを生成するためにその補間フィルタを使用し得る。
[0104]逆量子化ユニット86は、ビットストリーム中で与えられエントロピー復号ユニット80によって復号された量子化された変換係数を逆量子化(inverse quantize)、すなわち、量子化解除(de-quantize)する。逆量子化プロセスは、量子化の程度を決定し、同様に、適用されるべき逆量子化の程度を決定するために、ビデオスライス内のビデオブロックごとに、ビデオエンコーダ20Aによって計算された量子化パラメータを使用することを含む場合がある。逆変換処理ユニット88は、ピクセル領域において残差ブロックを生成するために、逆変換、たとえば、逆DCT、逆整数変換、または概念的に同様の逆変換処理を変換係数に適用する。
[0105]動き補償ユニット82が、動きベクトルと他のシンタックス要素とに基づいて現在のビデオブロックに関する予測ブロックを生成した後、ビデオデコーダ30Bは、逆変換処理ユニット88からの残差ブロックを動き補償ユニット82によって生成された対応する予測ブロックと加算することによって、復号されたビデオブロックを形成する。加算器90は、この加算演算を実施する1つまたは複数の構成要素を表す。所望される場合、ブロッキネスアーティファクトを除去するために、復号されたブロックをフィルタ処理するためにデブロッキングフィルタも適用され得る。ピクセル推移を平滑化し、または他の形でビデオ品質を改善するために、他のループフィルタ(コーディングループ内またはコーディングループの後のいずれであれ)も使用され得る。所与のフレームまたはピクチャ中の復号されたビデオブロックは、次いで、その後の動き補償のために使用される参照ピクチャを記憶するDPB92に記憶される。DPB92はまた、図1のディスプレイデバイス31Bなどのディスプレイデバイス上での後の表示のために、復号されたビデオを記憶する。
[0106]ビデオエンコーダ20A、ビデオデコーダ30B、ビデオエンコーダ20B、およびビデオデコーダ30Aは、本開示で説明する技法を実装するように構成され得る。やはり、説明しやすいように、本技法は、ビデオエンコーダ20Aおよびビデオデコーダ30Bに関して記載され、ビデオエンコーダ20Bおよびビデオデコーダ30Aは、同様の技法を実装するように構成され得る。ただし、本技法は、ビデオエンコーダ20Bおよびビデオデコーダ30Aが、ビデオエンコーダ20Aおよびビデオデコーダ30Bのものと同じ技法を実施することを求めることに限定されると見なされるべきでない。
[0107]たとえば、上述した技法は、送付機側(a sender side)におけるエンコーダ、および受信機側におけるデコーダに関して記載される。ビデオエンコーダ20Aは、送付機側におけるそのようなエンコーダの例であってよく、ビデオデコーダ30Bは、受信機側におけるそのようなデコーダの例であってよい。いくつかの例において、ビデオデコーダ30Bは、参照ピクチャセット選択指示(RPSSI:reference picture set selection indication)フィードバックメッセージを(たとえば、RTPメッセージの一部として)出力するように構成され得る。RPSSIフィードバックメッセージから、ビデオエンコーダ20Aは、ビデオデコーダ30BのDPB92中でどの参照ピクチャが利用可能であるか決定するように構成されてよく、ビデオデコーダ30BのDPB92にあることがわかっているピクチャのうちの1つに基づいてピクチャを符号化することができる。
[0108]上述したように、本開示に記載される技法は、リアルタイムのビデオアプリケーションに関し得る。ベストエフォート型ネットワーク条件下でのリアルタイムのビデオアプリケーションのために、フィードバックメッセージは、送付機(たとえば、ビデオエンコーダ20Aまたはビデオエンコーダ20Aを含むデバイス12)に、受信機(たとえば、ビデオデコーダ30Bまたはビデオデコーダ30Bを含むデバイス14)において何が起きたかについて知らせるために重要である。ビデオテレフォニーまたはビデオ会議において、送付機はデバイス12またはデバイス14であってよく、受信機はデバイス12またはデバイス14であってよいことが理解されるべきである。説明しやすいように、本開示は、デバイス14が送付機としても機能することができ、デバイス12が受信機として機能することができることを理解した上で、デバイス12を送付機であるものとして、およびデバイス14を受信機であるものとして記載する。
[0109]たとえば、ビデオデコーダ30Bが、ビデオエンコーダ20Aによってシグナリングされたビットストリームからのピクチャを受信しなかった事例では、ビデオデコーダ30Bが、欠落されたピクチャがあることをビデオエンコーダ20Aに知らせるためのフィードバックメッセージを送信することが有益な場合がある。既存のHEVCコーデックに対して、参照ピクチャのうちの1つがビデオデコーダ30Bによって欠落されたとき、ビデオデコーダ30Bは、2013年9月6日付の、ネットワーク作業部会からの、Wangらによる「RTP Payload Format for High Efficiency Video Coding」において定義される参照ピクチャ選択指示(RPSI:Reference Picture Selection Indication)および特定ピクチャ損失指示(SPLI:Specific Picture Loss Indication)メッセージを、ピクチャが欠落されていることをビデオエンコーダ20Aに知らせるのに使えばよい。
[0110]高効率ビデオコーディングのためのRTPペイロードフォーマットに関する情報は、2013年12月2日時点で、http://tools.ietf.org/html/draft−ietf−payload−rtp−h265−01から見つけることができる。たとえば、RTPペイロードフォーマットに関する情報は、RTPペイロードフォーマットが、各RTPパケットペイロード中の1つまたは複数のネットワークアブストラクションレイヤ(NAL:Network Abstraction Layer)ユニットのパケット化、ならびに複数のRTPパケットへのNALユニットのフラグメント化を可能にすることを記述する。さらに、RTPペイロードフォーマットは、単一ならびに複数のRTPフローによるHEVCストリームの送信をサポートする。ペイロードフォーマットは、特に、ビデオ会議、インターネットビデオストリーミング、および高ビットレートのエンターテイメント品質ビデオにおける広い適用性を有する。
[0111]欠落されたピクチャがあったとビデオデコーダ30Bが決定することができる様々なやり方があり得る。一例として、ビデオデコーダ30Bは、欠落されたピクチャを復号のための参照ピクチャとして使用するよう、ビデオデコーダ30Bに命令する、符号化ビットストリーム中のシンタックス要素を受信し得る。この場合、ビデオデコーダ30Bは、参照ピクチャとして使われるべきピクチャが欠落されたので、そのピクチャはビデオデコーダ30BのDPB92中に記憶されていないと決定し、ビデオデコーダ30Bは、ビットストリーム中でピクチャが欠落されたと決定する。ピクチャが欠落されたとビデオデコーダ30Bが決定する他の原因、およびピクチャが欠落されたとビデオデコーダ30Bが決定する他のやり方があり得る。本開示に記載される技法は、ピクチャが欠落されたとビデオデコーダ30Bが決定するどの特定のやり方にも限定されない。
[0112]以下の記述は、本開示に記載される技法を理解するという状況のために、RPSIメッセージの機能性について説明する。SPLIメッセージについては、さらに後で記載される。
[0113]RPSIの場合、エラーが起きると、ビデオデコーダ30Bは、1つの早期の正しく復号された参照ピクチャをDPB92から選び、ビデオエンコーダ20Aが、次のピクチャ(すなわち、符号化中の現在のピクチャ)を符号化するとき、そのピクチャ、通常は長期参照ピクチャを、参照に使うことを要求する。この指定された参照ピクチャがビデオエンコーダ20AのDPB64中に依然として存在する場合、ビデオエンコーダ20Aは、さらなるエラー伝播を止めるために、この参照を用いて次のピクチャを符号化すればよい。
[0114]RPSIにおいて、ビデオデコーダ30Bは、符号化に使われる参照ピクチャを指定することができる。ただし、ビデオエンコーダ20AのDPB92中に記憶されている全てのピクチャを正確に示す情報が、ビデオデコーダ30Bにとって利用可能であるわけではない場合がある。そうではなく、ビデオデコーダ30Bが参照ピクチャを指定する情報を送信したときに、ビデオエンコーダ20AのDPB64に記憶されているピクチャを決定するために、ビデオデコーダ30Bが使うことができる情報は、不正確であり古い可能性がある。
[0115]したがって、いくつかの例において、ビデオデコーダ30Bは、結果として、ビデオエンコーダ20AがDPB64からすでに削除した、ビデオエンコーダ20Aがインター予測に使うべき、参照ピクチャを指定する場合がある。この場合、識別されたピクチャがDPB64から削除されたので、ビデオエンコーダ20Aは、符号化用の参照ピクチャとしてビデオデコーダ30Bが識別した、識別されたピクチャを使うことができない場合がある。いくつかの例において、識別されたピクチャがビデオエンコーダ20AのDPB64中にない場合、ビデオエンコーダ20Aは、エラーを止めるために、現在のピクチャをイントラランダムアクセスポイント(IRAP:Intra Random Access Point)として符号化する。ただし、現在のピクチャをIRAPとして符号化するのは、コーディング効率の点でコストがかかり得る。
[0116]ビデオデコーダ30Bが、ビデオエンコーダ20AのDPB64中に記憶されていない、参照ピクチャとして使われるべきピクチャを識別するという問題を緩和するために、いくつかの例において、ビデオエンコーダ20Aおよびビデオデコーダ30Bは、ビデオエンコーダ20AのDPB64とビデオデコーダ30BのDPB92の両方においてより長く保たれることになる長期参照(LTR:long-term reference)ピクチャを使うために(たとえば、ビデオエンコーダ20Aとビデオデコーダ30Bとの間の何らかのタイプの通信によって)交渉してよい。いくつかの例において、LTRピクチャの使用を交渉するのではなく、ビデオデコーダ30Bは、LTRピクチャを、ビデオエンコーダ20Aが使うべき参照ピクチャとして識別するように事前構成され得る。いずれの例においても、ビデオデコーダ30Bは、ビデオデコーダ30BのDPB92中に現時点で記憶されているLTRピクチャを、ビデオエンコーダ20Aによって符号化されようとしている現在のピクチャを符号化するために使われるべきピクチャとして指定することができる。ただし、LTRピクチャは、他のピクチャ(たとえば、短期参照ピクチャ(short-term reference pictures))と比較して、符号化中の現在のピクチャへの時間的距離がより遠いせいで、時間的相関がより低い場合があるので、LTRピクチャに依拠することは、コーディング効率に悪影響を与える場合がある。言い換えると、場合によっては(必須ではないが)、長期参照ピクチャは、短期参照ピクチャと比較して、より長い時間量の間DPB64およびDPB92中に記憶される傾向があり、したがって、短期参照ピクチャと比較して、現在のピクチャへの時間的距離がより遠くなり得る。
[0117]RPSIの既存の技法に関する他の問題が存在し得る。たとえば、ビデオデコーダ30BがLTRピクチャを識別せず、ビデオエンコーダ20AのDPB64中にあるピクチャを識別する場合であっても、いくつかの他の技法では、ビデオエンコーダ20Aは、ビデオデコーダ30Bによって識別されたピクチャを、現在のピクチャ(すなわち、符号化されようとしているピクチャ)をインター予測するために使うことを求められる。ビデオデコーダ30BがDPB92からピクチャを選択したので、識別されたピクチャはビデオデコーダ30BのDPB92中に存在することが保証されるので、ビデオエンコーダ20Aは、識別されたピクチャがビデオエンコーダ20AのDPB64中にあると仮定してその識別されたピクチャを使う。ただし、現在のピクチャをインター予測するためにより適している、ビデオデコーダ30Bが識別したピクチャ以外のピクチャが存在し得る。さらに、双予測は2つのピクチャを使うので、ビデオデコーダ30Bによって識別されたピクチャのみを使うことに制限されることにより、ビデオエンコーダ20Aは、単予測を単に使用する。これは、インター予測コーディング効率にさらに悪影響を与える。
[0118]本開示に記載される技法は、RPSIに関する、上に記載した問題のうちの1つまたは複数に対処し得る。たとえば、本開示に記載される技法において、ビデオデコーダ30Bは、DPB92中の、前に復号されたピクチャを識別する情報を出力し得るが、ビデオエンコーダ20Aは、現在のピクチャをインター予測するために、識別されたピクチャのみを使うことに制限されなくてよい。
[0119]そうではなく、ビデオエンコーダ20Aは、識別されたピクチャから、ビデオエンコーダ20AのDPB64とビデオデコーダ30BのDPB92の両方において利用可能な1つまたは複数のピクチャを決定することができる。ビデオエンコーダ20Aは、決定されたピクチャ、および潜在的には識別されたピクチャ、のうちの1つまたは複数も、現在のピクチャをインター予測するために選択してよい。このようにして、ビデオエンコーダ20Aは、ただ1つのピクチャ以外を、より大きいピクチャセットから選択し、どのピクチャがより良好なコーディング効率をもたらすか決定するとともに、それらのピクチャを、現在のピクチャをインター予測するために選択するように構成され得る。
[0120]さらに、ビデオエンコーダ20Aは、ビデオエンコーダ20Aとビデオデコーダ30Bの両方のそれぞれのDPB(たとえば、DPB64およびDPB92)中で利用可能なピクチャを、ビデオデコーダ30Bからの最小シグナリングで決定するように構成され得る。たとえば、わずかなピクチャ(たとえば、1つまたは選ばれたいくつかのピクチャ)のみをシグナリングすることで、ビデオエンコーダ20Aは、ビデオエンコーダ20AのDPB64とビデオデコーダ30BのDPB92の両方において利用可能な、より多くのピクチャ(たとえば、複数のピクチャ)を決定するように構成され得る。説明のために、本開示は、ビデオデコーダ30Bが1つのピクチャを識別することについて記載するが、本開示は、そのように限定的であると見なされるべきでない。
[0121]本開示に記載される技法において、ビデオエンコーダ20Aが、ビデオデコーダ30BのDPB92中の参照ピクチャを決定すると、ビデオエンコーダ20Aは、(たとえば、欠落されたピクチャがある例示的ケースの場合)エラー回復のためのより最適な決定を行うことができる。たとえば、ビデオデコーダ30Bは、ビデオデコーダ30BのDPB92中の参照ピクチャすべてを、ビデオエンコーダ20Aに知らせるべきである。いくつかの例において、ビデオエンコーダ20Aは、ビデオデコーダ30BのDPB92中の正確な参照ピクチャを決定することができ、ビデオデコーダ30BのDPB92中の決定された参照ピクチャに基づいて、エラー回復モード(たとえば、現在のピクチャをインター予測するためにどのピクチャを使うか)を決定することができる。
[0122]ビデオエンコーダ20Aが、ビデオデコーダ30BのDPB92中の正確な参照ピクチャを決定するために、ビデオデコーダ30Bは、ビデオデコーダ30BのDPB92中のすべての参照ピクチャをビデオエンコーダ20Aにシグナリングすればよい。ただし、そのようなシグナリングは帯域幅非効率である場合があり、本開示に記載される技法において、ビデオデコーダ30Bは、現在のピクチャを符号化または復号するために利用可能な複数のピクチャをビデオエンコーダ20Aが1つのピクチャから決定し得るその1つのピクチャをシグナリングする場合がある。
[0123]DPB64中に記憶されたどのピクチャが、ビデオデコーダ30BのDPB92中にも記憶されているかをビデオエンコーダ20Aが決定し得る1つの例示的な方式は、HEVC規格において定義される参照ピクチャサブセットを使っている。ビデオデコーダ30BのDPB92中に記憶されているとも決定される、ビデオエンコーダ20AのDPB64中に記憶されたピクチャは、ビデオ符号化またはビデオ復号に利用可能なピクチャと呼ばれる。やはり、ビデオ符号化または復号に利用可能であると決定されたピクチャは、それぞれのDPB中のピクチャのすべて含む必要はないことが理解されるべきである。そうではなく、ビデオエンコーダ20Aは、どのピクチャがビデオエンコーダ20Aとビデオデコーダ30Bの両方のDPB(たとえば、DPB64とDPB92の両方)中に記憶されているか決定するためのいくつかの手順を実装することができる。
[0124]HEVC規格は、参照ピクチャセットを一緒に形成する5つの参照ピクチャサブセットを定義する。HEVC規格において、ビデオエンコーダ20Aおよびビデオデコーダ30Bは各々、各ピクチャ用に参照ピクチャサブセットを構築し得る。たとえば、ピクチャを符号化または復号するために、ビデオエンコーダ20Aの予測処理ユニット41およびビデオデコーダ30Bの予測処理ユニット81は、そのピクチャ用の構築された参照ピクチャサブセットに基づいて、参照ピクチャリスト(たとえば、RefPicList0およびRefPicList1)を構築し、構築された参照ピクチャリストに基づいて、そのピクチャをインター予測符号化または復号することができる。
[0125]HEVC規格のための参照ピクチャサブセットおよびセットについては、2013年4月4日付の、本明細書では「High Efficiency Video Coding,Rec.ITU−T H.265 and ISO/IEC 23008−2」と呼ばれるSERIES H:AUDIOVISUAL AND MULTIMEDIA SYSTEMS,Infrastructure of audiovisual services−Coding of moving video,High efficiency video coding ITU−T Recommendation H.265により詳しく記載されており、http://www.itu.int/rec/T−REC−H.265−201304−Iから見ることができる。
[0126]たとえば、特定のピクチャを符号化または復号するために、ビデオエンコーダ20Aおよびビデオデコーダ30Bは、RefPicSetStCurrBeforeと、RefPicSetStCurrAfterと、RefPicSetStFollと、RefPicSetLtCurrと、RefPicSetLtFollとを含む5つの参照ピクチャサブセットを構築することができる。RefPicSetStCurrBefore、RefPicSetStCurrAfterおよびRefPicSetLtCurrは、特定のピクチャを復号するために使われ得るピクチャをすべて含む。いくつかの例において、RefPicSetStCurrBeforeは、特定のピクチャの前に表示される短期参照ピクチャであると決定されたどの参照ピクチャも含むことができ、RefPicSetStCurrAfterは、特定のピクチャの後に表示される短期参照ピクチャであると決定されたどの参照ピクチャも含むことができる。RefPicSetLtCurrは、どの長期参照ピクチャも含み得る。RefPicSetStFollおよびRefPicSetLtFollは、特定のピクチャを符号化または復号するためには使われないが、特定のピクチャに復号順序で続くピクチャ用には使われ得る、どの参照ピクチャも含む。RefPicSetStFollは、短期参照ピクチャであると決定されたどの参照ピクチャも含むことができ、RefPicSetLtFollは、長期参照ピクチャであると決定されたどの参照ピクチャも含むことができる。いくつかの例において、セット中のピクチャは排他的であり得る(たとえば、セットのうちの1つの中のピクチャは、他のどのセットの中にもない場合がある)。
[0127]いくつかの例において、5つのセットの構築は明示的であり得る。たとえば、DPB中でのピクチャの単なる存在が、これらの5つのセットのうちの1つに属す参照ピクチャと見なされるべきではない。そうではなく、これらのセットのうちの1つの中で識別されるピクチャは、特定のピクチャと特定のピクチャに復号順序で続くピクチャとを、または特定のピクチャに復号順序で続くピクチャのみを、符号化または復号するために使われ得るピクチャとして特に決定されたピクチャである。
[0128]いくつかの例において、ビデオエンコーダ20Aおよびビデオデコーダ30Bは、参照ピクチャセットに基づいて参照ピクチャリストを構築することができる。参照ピクチャリスト中へのインデックスは、ビデオエンコーダ20Aおよびビデオデコーダ30Bが参照ピクチャセットを構築した特定のピクチャをインター予測符号化またはインター予測復号するのに使われる参照ピクチャを識別することができる。したがって、5つの例示的サブセット中の参照ピクチャは、参照ピクチャリストが形成されるのはこれらのピクチャからであるので、これらのサブセットに属すピクチャであると特に決定される。
[0129]短期参照ピクチャまたは長期参照ピクチャであると決定されたピクチャは、そのようなピクチャが、例示的参照ピクチャサブセットのうちの1つに属すことを意味しない。やはり、参照ピクチャサブセットは、それらの参照ピクチャサブセットに属すと特に決定されたピクチャを含み、このことは、特定のピクチャおよび/または特定のピクチャに復号順序で続くピクチャをインター予測符号化または復号するためのそれらの有用性(usability)に関しての特性を指定する。
[0130]いくつかの例において、本開示に記載される技法は、ビデオエンコーダ20AのDPB64中に記憶されているもののどれが、ビデオデコーダ30BのDPB92中にも記憶されているか決定するために、参照ピクチャサブセットを使用する。上述したように、RPSIメッセージ中で、ビデオデコーダ30Bは、ピクチャを識別する情報を送信し、ビデオエンコーダ20Aが現在のピクチャをインター予測しているときに、識別されたピクチャがビデオエンコーダ20AのDPB64中に記憶されていると仮定すると、ビデオエンコーダ20Aは、識別されたピクチャを、現在のピクチャをインター予測するために使うよう求められる。混乱を避けるために、本開示は、ビデオエンコーダ20Aが本開示に記載される技法を使用していることを示すのに、参照ピクチャセット選択指示(RPSSI)フィードバックメッセージという用語を使うが、これはRPSIとは別個である。ただし、「RPSSI」という用語の使用は単に、混乱を避けるためである。「RPSI」という用語を、本開示に記載される技法を含むように定義し直すことも可能であり得る。
[0131]いくつかの例において、ビデオエンコーダ20Aは、ピクチャを識別する情報をビデオデコーダ30Bから受信し得る。ビデオエンコーダ20Aは、識別されたピクチャの1つまたは複数の参照ピクチャサブセット中のどのピクチャが、DPB64中に依然として記憶されているか決定することができる。たとえば、ビデオエンコーダ20Aは、ビデオエンコーダ20Aが符号化する各ピクチャ用の、構築された参照ピクチャサブセットを示す情報を記憶することができる。ビデオエンコーダ20Aは、記憶された情報から、識別されたピクチャをインター予測するのに使われた可能性があるピクチャを示す情報を取り出し、識別されたピクチャをインター予測するのに使われた可能性があるどのピクチャが、DPB64中に依然として記憶されているか決定することができる。
[0132]概して、識別されたピクチャと、識別されたピクチャにコーディング順序で続くピクチャとをインター予測するのに使われた可能性があるピクチャが、ビデオエンコーダ20AのDPB64中に依然として記憶されている場合、そのピクチャもビデオデコーダ30BのDPB92中に記憶される見込みが非常に高い(ほぼ保証される)。本開示において使われるように、識別されたピクチャと、識別されたピクチャにコーディング順序で続くピクチャとをインター予測するのに使われた可能性があるピクチャは、識別されたピクチャ、および識別されたピクチャにコーディング順序で続くピクチャに対する参照ピクチャであった可能性があるピクチャを意味する。また、識別されたピクチャと、識別されたピクチャにコーディング順序で続くピクチャとをインター予測するのに使われた可能性があるピクチャは、識別されたピクチャをインター予測するのに実際に使われたどのピクチャも含む。
[0133]いくつかの例において、ビデオエンコーダ20AがDPB64からピクチャを消去(clear)した後でのみ、ビデオデコーダ30Bは、DPB92からそのピクチャを消去してよい。したがって、ビデオエンコーダ20Aが、識別されたピクチャ用の参照ピクチャだった(たとえば、識別されたピクチャをインター予測するのに使われた)可能性があるピクチャを消去しなかった場合、ビデオデコーダ30Bが、そのピクチャをDPB92から消去しなかった確率が非常に高い。
[0134]ビデオエンコーダ20Aおよびビデオデコーダ30BのDPBがまったく同じである(たとえば、DPB64およびDPB92中に記憶されたピクチャは、まったく同じピクチャセットである必要がある)という保証はないことが理解されるべきである。ただし、識別されたピクチャをインター予測するのに使われた可能性があるピクチャが、ビデオエンコーダ20AのDPB64中に記憶されている場合、そのピクチャは、ビデオデコーダ30BのDPB92中にないピクチャがビデオエンコーダ20AのDPB64中にあるとしても、およびビデオエンコーダ20AのDPB64中にないピクチャが、ビデオデコーダ30BのDPB92中にあるとしても、ビデオデコーダ30BのDPB92中に存在する。
[0135]どのピクチャが、識別されたピクチャをインター予測するのに使われた可能性があるかをビデオエンコーダ20Aが決定する1つのやり方は、識別されたピクチャの参照ピクチャサブセットによるものである。たとえば、ビデオエンコーダ20Aは、識別されたピクチャのRefPicSetStCurrBefore、RefPicSetStCurrAfter、RefPicSetLtCurr、RefPicSetLtFoll、およびRefPicSetStFoll参照ピクチャサブセット中のピクチャが、ビデオエンコーダ20AのDPB64中で依然として利用可能であるかどうかを(たとえば、ビデオエンコーダ20Aが、識別されたピクチャを符号化したときの間、識別されたピクチャの記憶された情報に基づいて)決定することができる。上述したように、RefPicSetStCurrBefore、RefPicSetStCurrAfter、およびRefPicSetLtCurrサブセットは、識別されたピクチャと、識別されたピクチャにコーディング順序で続くピクチャとをインター予測するのに使われた可能性があるピクチャを含む。RefPicSetLtFollおよびRefPicSetStFollサブセットは、識別されたピクチャではなく、識別されたピクチャにコーディング順序で続くピクチャをインター予測するのに使われた可能性があるピクチャを含む。
[0136]ビデオエンコーダ20AのDPB64中に記憶されている、識別されたピクチャの参照ピクチャサブセットのうちの1つまたは複数の中のピクチャは、コーディングに利用可能なピクチャ(または候補参照ピクチャ)と呼ばれる。いくつかの例において、ビデオエンコーダ20Aは、識別されたピクチャの参照ピクチャサブセットのいずれかにあるピクチャを、現在のピクチャをインター予測するのに使われ得る(すなわち、現在のピクチャをインター予測するのに利用可能であるか、または現在のピクチャ用の参照ピクチャとして利用可能である)候補参照ピクチャとして決定することができる。いくつかの例において、ビデオエンコーダ20Aは、ビデオエンコーダ20AのDPB64中に記憶されている、識別されたピクチャの参照ピクチャサブセット中のピクチャの参照ピクチャサブセットのいずれかにあるピクチャをさらに決定することができる。
[0137]いくつかの例において、ビデオエンコーダ20Aは、識別されたピクチャのRefPicSetStCurrBefore、RefPicSetStCurrAfter、およびRefPicSetLtCurrサブセットのうちの1つの中にだけあるピクチャを、現在のピクチャをインター予測するために利用可能である(すなわち、現在のピクチャ用の参照ピクチャとして利用可能である)候補参照ピクチャとして決定することができる。たとえば、いくつかの例において、ビデオデコーダ30Bがビットストリームを受信するのに先立って起こり得るサブビットストリーム抽出により、RefPicSetStFollおよびRefPicSetLtFollサブセット中のピクチャ(すなわち、識別されたピクチャをインター予測するのに使われなかった可能性があるピクチャ、および識別されたピクチャに続くピクチャのみ)が、ビットストリームから削除され得る。
[0138]この特殊ケースにおいて、ビデオエンコーダ20AのDPB64は、ビデオデコーダ30BのDPB92中で利用可能でない、識別されたピクチャの参照ピクチャセットのピクチャを含み得る。ビデオエンコーダ20Aは、参照ピクチャが利用可能でないという問題を避けるために、サブビットストリーム抽出が有効にされているかどうか決定することができない場合があるので、ビデオエンコーダ20Aは、識別されたピクチャに続くピクチャだけではなく、識別されたピクチャをインター予測するのに使われ得るピクチャを、現在のピクチャをインター予測するのに使われ得る候補参照ピクチャとして決定すればよい。やはり、識別されたピクチャのRefPicSetStCurrBefore、RefPicSetStCurrAfter、およびRefPicSetLtCurrサブセットは、識別されたピクチャをインター予測するのに使われた可能性があるピクチャを含み、したがって、ビデオエンコーダ20Aは、ビデオエンコーダ20AのDPB64中で依然として利用可能である、識別されたピクチャのRefPicSetStCurrBefore、RefPicSetStCurrAfter、およびRefPicSetLtCurrサブセット中のピクチャのみから、現在のピクチャをインター予測するために利用可能なピクチャを決定することができる。
[0139]いくつかの例において、ビデオエンコーダ20Aは、識別されたピクチャをインター予測するのに使われた可能性がある短期参照ピクチャサブセット(すなわち、RefPicSetStCurrBeforeおよびRefPicSetStCurrAfter)中にあるピクチャを決定することができる。これは、長期参照ピクチャの時間的相関が比較的乏しく、処理時間を削減するために、ビデオエンコーダ20Aに、インター予測目的で長期参照ピクチャを評価させることに利益がほとんどまたはまったくない場合があるからであり得る。
[0140]処理時間をさらに削減するために、いくつかの例において、ビデオエンコーダ20Aは、識別されたピクチャよりも早く表示される、識別されたピクチャをインター予測するのに使われた可能性がある短期参照ピクチャであるピクチャ(すなわち、RefPicSetStCurrBeforeサブセット中のピクチャ)を、現在のピクチャをインター予測するのに使われ得る候補参照ピクチャとして決定することができる。別の例として、ビデオエンコーダ20Aは、識別されたピクチャの後に表示される、識別されたピクチャをインター予測するのに使われた可能性がある短期参照ピクチャであるピクチャ(すなわち、RefPicSetStCurrFollサブセット中のピクチャ)を、現在のピクチャをインター予測するのに使われ得る候補参照ピクチャとして決定することができる。
[0141]ビデオエンコーダ20Aが、識別されたピクチャと、識別されたピクチャに続くピクチャとをインター予測するのに使われた可能性がある候補参照ピクチャに基づいて、現在のピクチャをインター予測するためにどのピクチャが利用可能であるか決定した後、ビデオエンコーダ20Aは、現在のピクチャをインター予測するために、決定されたピクチャのうちの1つまたは複数を選択すればよい。識別されたピクチャをインター予測するのに使われた可能性があるピクチャに加え、ビデオデコーダ30Bによって識別されたピクチャも、現在のピクチャをインター予測するのに使われ得る候補参照ピクチャである。ビデオエンコーダ20Aは、現在のピクチャをインター予測するのに使われるピクチャを、現在のピクチャの参照ピクチャセット(RPS)中に含め、選択されたピクチャを含む参照ピクチャリストを構築し、構築された参照ピクチャリストに基づいて、現在のピクチャをインター予測符号化することができる。
[0142]選択されたピクチャは、現在のピクチャのRPS中にあるので、ビデオデコーダ30Bは、ビデオエンコーダ20Aによって構築されたものと同一である参照ピクチャリストを同様に構築し、したがって、選択されたピクチャを参照ピクチャリスト中に含めることができる。ビデオデコーダ30Bは次いで、参照ピクチャリストに基づいて、現在のピクチャをインター予測復号すればよい。
[0143]いくつかの例において、ビデオデコーダ30Bは、ビデオエンコーダ20AのDPB64中に記憶されていないピクチャを識別することができる。たとえば、ビデオエンコーダ20Aは、ビデオデコーダ30Bが識別されたピクチャをフラッシュする前に、識別されたピクチャをすでにフラッシュしている場合がある。ビデオエンコーダ20AのDPB64が、識別されたピクチャを記憶していない例において、ビデオエンコーダ20Aは、現在のピクチャを(イントラリフレッシュ・ランダムアクセスポイントピクチャ(intra-refresh random access point picture))IRAPとしてイントラ予測すればよい。
[0144]いくつかの例において、ビデオデコーダ30Bが識別したピクチャがビデオエンコーダ20AのDPB64中で利用可能である場合であっても、ビデオエンコーダ20Aは、依然として現在のピクチャをイントラ予測することができる。たとえば、現在のピクチャをインター予測するのに候補参照ピクチャのうちの1つまたは複数を使ってのコーディング効率が、現在のピクチャをイントラ予測するのよりも乏しい(または同程度である)場合、ビデオエンコーダ20Aは、現在のピクチャを、場合によってはIRAPとしてイントラ予測することができる。
[0145]したがって、本開示に記載される技法において、ビデオデコーダ30Bは、ビデオエンコーダ20Aとビデオデコーダ30Bの両方における利用可能参照ピクチャを決定する(たとえば、DPB64およびDPB92中に記憶された利用可能参照ピクチャを決定する)ためにビデオエンコーダ20Aによって使われ得る、ビデオデコーダ30BのDPB92中の利用可能参照ピクチャの好ましいセットを記述するために、ピクチャに対する一意の識別子により、ビデオエンコーダ20Aに知らせればよい。一意の識別子(たとえば、ピクチャを識別する情報)は、ピクチャのピクチャオーダーカウント(POC:a picture order count)値を備え得る。たとえば、各ピクチャは、ピクチャが表示または出力される順序を識別する一意のPOC値に関連付けられ得る。より小さいPOC値を有するピクチャは、より大きいPOC値を有するピクチャよりも早く表示または出力される。POC値は、ビデオデコーダ30Bによって、ピクチャを識別するのに使われる一意の識別子の単なる一例であり、ピクチャを識別するための他のやり方も可能であり得る。
[0146]このようにして、ビデオエンコーダ20Aとビデオデコーダ30Bの両方において利用可能な共通参照ピクチャは、ビデオエンコーダ20Aとビデオデコーダ30Bとの間の共通参照を確立するために使われ得る(すなわち、ビデオエンコーダ20Aが、ビデオエンコーダ20AのDPB64中およびビデオデコーダ30BのDPB92中で利用可能なピクチャを決定すると、ビデオエンコーダ20Aは、現在のピクチャをインター予測するためにどのピクチャを使うか決定することができる)。いくつかの例において、ピクチャ識別子に関連付けられた参照ピクチャ(すなわち、識別されたピクチャ)は、識別子が送られるピクチャを復号した後、利用可能参照ピクチャすべて(すなわち、識別されたピクチャと、識別されたピクチャにコーディング順序で続くピクチャとをインター予測するのに使われた可能性があるすべてのピクチャ)として記述される。
[0147]いくつかの例において、インジケータは、指示されたピクチャを復号する前の利用可能な参照ピクチャ(すなわち、識別されたピクチャのRefPicSetStCurrBeforeサブセット中のピクチャ)、または指示されたピクチャを復号した後のピクチャ(すなわち、識別されたピクチャのRefPicSetStCurrAfterサブセット中のピクチャ)をすべて示し得る。ビデオエンコーダ20Aが、ビデオデコーダ30B(受信機)側における関連付けられた参照ピクチャでビデオデコーダ30BのDPB92のDPB状態を確立すると、ビデオエンコーダ20Aは、共通参照セットの確立のために参照の選択を行ってよい。代替として、ビデオエンコーダ20Aは、IRAPピクチャ(たとえば、イントラリフレッシュ・ランダムアクセスポイントピクチャなどのイントラ予測されたピクチャ(an intra-predicted picture))を送ることができる。
[0148]上述したように、ビデオエンコーダ20Aは、シグナリングされた参照ピクチャ中のRefPicSetStFollおよびRefPicSetLtFollピクチャを参照するのを避けてもよく、というのは、これらのピクチャは、元のビットストリームに対して実施される起こり得るサブビットストリーム抽出のせいで、受信機側(たとえば、ビデオデコーダ30B)において利用可能でない場合があるからである。いくつかの例では、メディアアクセスネットワーク要素(MANE)デバイスなどの中間デバイスが、現在のピクチャに復号順序で続くピクチャをインター予測するのに使われるだけであり得るピクチャが抽出されるサブビットストリーム抽出を実施することができる。
[0149]やはり上述したように、インジケータ(すなわち、ピクチャを識別する情報)は、HEVC仕様(「High Efficiency Video Coding,Rec.ITU−T H.265 and ISO/IEC 23008−2」)において指定されるPicOrderCntVal(POC値)(32ビット符号付き値)か、またはピクチャのPOC値を一意に識別するのに等価なものであり得る。PicOrderCntValに加え、HEVC仕様において指定されるnuh_layer_idは、ドラフトHEVC RTPペイロード仕様(すなわち、「RTP Payload Format for High Efficiency Video Coding」)における現在のRPSI、SPLIシンタックスにおけるものと同様のマルチレイヤビットストリームについてシグナリングされ得る。
[0150]したがって、1つまたは複数の例において、ビデオエンコーダ20Aは、ビデオデコーダ30Bを含むデバイス14から、ビデオデコーダ30Bが情報を送信したときにビデオデコーダ30BのDPB64中に記憶されている、前に復号されたピクチャを識別する情報を受信し得る。ビデオエンコーダ20Aは、識別されたピクチャに基づいて、現在のピクチャを符号化するために利用可能である1つまたは複数の候補参照ピクチャを決定することができる。1つまたは複数の候補参照ピクチャは、識別されたピクチャまたは識別されたピクチャにコーディング順序で続く複数のピクチャのうちの1つまたは複数をインター予測符号化するために使用可能であると前に決定された1つまたは複数のピクチャであって、現在のピクチャを符号化するときにビデオエンコーダ20AのDPB64中に依然として記憶されている1つまたは複数のピクチャを含む。ビデオエンコーダ20Aは、決定された1つまたは複数の候補参照ピクチャおよび識別されたピクチャから、現在のピクチャ用の1つまたは複数の参照ピクチャを選択してよい。ビデオエンコーダ20Aは、選択された1つまたは複数の参照ピクチャに基づいて、現在のピクチャをインター予測符号化すればよい。
[0151]識別されたピクチャまたは識別されたピクチャにコーディング順序で続く複数のピクチャのうちの1つまたは複数をインター予測符号化するために使用可能であると前に決定された1つまたは複数のピクチャは、ビデオエンコーダ20Aが、識別されたピクチャの符号化中に構築した1つまたは複数の参照ピクチャサブセットからのピクチャを含む。やはり、識別されたピクチャは、ビデオデコーダ30Bによる、前に復号されたピクチャであり、このことは、ビデオエンコーダ20Aが、現在のピクチャを符号化する前に、識別されたピクチャを符号化したことを意味する。
[0152]本開示に記載される技法により、ビデオエンコーダ20Aは複数の候補参照ピクチャを決定することが可能になるので、ビデオエンコーダ20Aは、選択された参照ピクチャからの2つのピクチャに基づいて、現在のピクチャを双予測符号化することができる。そのような双予測符号化は、ビデオエンコーダ20Aが、識別されたピクチャをインター予測のために使うことにのみ制限された場合、そうしないと利用不可能である追加のインター予測オプションを認める。
[0153]復号のために、ビデオデコーダ30Bは、ビデオエンコーダ20Aを含むデバイス12に、情報を出力するときにビデオデコーダ30BのDPB92中に記憶されている、前に復号されたピクチャを識別する情報を出力してよい。ビデオデコーダ30Bは、1つまたは複数の候補参照ピクチャを用いて、現在のピクチャをインター予測復号することができる。1つまたは複数の候補参照ピクチャは、ビデオエンコーダ20Aによって、識別されたピクチャをインター予測符号化するために使用可能であると前に決定された1つまたは複数のピクチャを含む。いくつかの例において、ビデオデコーダ30Bは、ピクチャが欠落された(たとえば、ビデオデコーダ30Bが、欠落されたピクチャを適正または十分に再構築するための情報を受信しなかった)と決定してよい。ビデオデコーダ30Bは、ピクチャが欠落されたという決定に基づいて情報を出力するように構成され得る。また、ビデオエンコーダ20Aは、2つのピクチャから現在のピクチャを双予測符号化することが可能であり得るので、ビデオデコーダ30Bは、候補参照ピクチャからの2つのピクチャに基づいて、現在のピクチャを双予測復号する(bi-prediction decode)ように構成されてよい。
[0154]ビデオデコーダ30Bは、情報を出力するときにビデオデコーダ30BのDPB92中に記憶されている、前に復号されたピクチャを識別する情報を、リンク16を介して通信することができる。いくつかの例において、ビデオデコーダ30Bは、通信リンクまたはビデオビットストリームをビデオエンコーダ20Aからビデオデコーダ30Bに通信するのに使われるプロトコル(たとえば、RTPを含む二方向シグナリングプロトコル)により、情報を通信することができる。たとえば、情報は、新規または既存のシグナリング機構またはメッセージにより、ビデオデコーダ30Bからビデオエンコーダ20Aに伝達され得る。
[0155]いくつかの例において、これらの技法は、参照ピクチャセット選択指示(RPSSI)フィードバックメッセージを採り入れ、このメッセージは、いくつかの例では、ビデオデコーダ30BのDPB92中に記憶された、前に復号されたピクチャを識別する情報をビデオエンコーダ20Aに通信する。下記でより詳しく説明する一例では、RPSSIメッセージは、符号化ビデオビットストリームを通信するRTPプロトコルセッションの一部としてシグナリングされる。たとえば、RPSSIフィードバックメッセージが、RPSIメッセージと置き換わってよく、既存の技法と、本開示に記載される技法とをいつ使うかを区別するために、RPSIメッセージに加えて使われてよく、またはRPSIメッセージが、本開示に記載される技法が実装されるべきであることを示すように修正されてよい。説明しやすいように、以下では、メッセージをRPSSIフィードバックメッセージとして記載するが、それは、理解するのを容易にするためにすぎず、限定的と見なされるべきでも、以下で説明する具体例に限定されるべきでもない。
[0156]RPSSIフィードバックメッセージは、PT=PSFBおよびFMT=9によって識別され得る。FCIフィールド中に含まれる1つのRPSSIが存在してよい(および、いくつかの例では、FCIフィールド中に含まれる正確に1つのRPSSIでなければならない)。以下のテーブル1は、RPSSIのフォーマットの例を示す。
[0157]テーブル1の例において、PBは8ビットである。PBは、RPSSIメッセージの長さを、32ビットの倍数までパディングする(pad)のに求められる未使用ビットの数を定義し得る。テーブル1において、0は1ビットである。このビットは、送信されると、ゼロにセットされてよく(たとえば、ゼロにセットされなければならない)、受信されると無視されてよい。テーブル1において、ペイロードタイプは7ビットである。ペイロードタイプは、ネイティブRPSSIビットストリングが解釈され得る(たとえば、解釈されなければならない)コンテキストにおけるRTPペイロードタイプを示し得る。テーブル1において、ネイティブRPSSIビットストリングは可変長である。ネイティブRPSSIは、ビデオコーデックによってネイティブに定義されたSPLI情報を示し得る。テーブル1において、パディングは、#PBビット(#PB bits)であり得る。RPSSIメッセージの内容を、次の32ビット境界まで満たすために、いくつかのビットがゼロにセットされる。パディングビットの数は、PBフィールドによって示され得る(たとえば、示されなければならない)。
[0158]いくつかの例では、[RFC4585]において定義される、RPSIメッセージ用と同じタイミング規則が、RPSSIメッセージに当てはまる。「コーデックごとに定義されるネイティブRPSSIビットストリング」というフィールドは、受信機側における利用可能な参照ピクチャの存在をシグナリングするために示される、ピクチャについての、HEVCにおいて定義される、0に等しい2つの最上位ビットおよび6ビットのnuh_layer_idからなる8ビット、その後に続く、HEVCにおいて定義される、PicOrderCntValの値を表す32ビットのベース16[RFC4648]表現であり得る。
[0159]上記の例示的な技法は、HEVC規格に関して説明されているが、本開示で説明される技法は、必ずしもそのように限定されない。たとえば、これらの技法は、H.264/AVC、および他のビデオ圧縮規格またはさらには独自のビデオ圧縮技法に準拠するコーデックなど、他のコーデックとともに使われ得る。以下は、本技法がH.264/AVCコーデックとともに使われ得る1つの例示的なやり方について記載する。
[0160]例示的技法のいずれにおいても、1つの利点は、単一のピクチャ識別子をシグナリングすることによって、複数のフレーム/ピクチャからなる完全な参照ピクチャセットがシグナリングされ得ることであり得る。言い換えると、ビデオデコーダ30Bは、わずかなピクチャ(たとえば、1つのピクチャ)を識別する情報をシグナリングし、その情報から、ビデオエンコーダ20Aは、現在のピクチャをインター予測するのに使われ得るより多くのピクチャ(たとえば、複数のピクチャ)を決定することができる。これにより、ビデオデコーダ30Bによる効率的な帯域幅使用が可能になり、ビデオエンコーダ20Aによるビデオコーディング効率が上昇する。
[0161]HEVCによるビデオ技法以外のいくつかのビデオ技法では、ビデオエンコーダ20Aは、あるピクチャと、このピクチャにコーディング順序で続くピクチャとをインター予測するのに使われる可能性があるピクチャのリストを決定し、維持するように事前構成されなくてよい。たとえば、ビデオエンコーダ20Aが、H.264/AVC規格に基づいて構成された場合、ビデオエンコーダ20Aは、(たとえば、識別されたピクチャを前に符号化するときにビデオエンコーダ20Aが実装したプロセスの一部として)識別されたピクチャをインター予測するのに使われた可能性があるピクチャを決定するように構成されてよいが、ビデオデコーダ30Bによって識別されたピクチャをインター予測するのに使われた可能性があるピクチャのリストを維持するように構成されなくてよい。たとえば、識別されたピクチャを符号化した後、ビデオエンコーダ20Aは、どのピクチャが、識別されたピクチャをインター予測するのに使われた可能性があるかを示す情報を破棄してよい。言い換えると、H.264/AVCに従って構成されたビデオエンコーダ20Aは、HEVCに従って構成された場合にビデオエンコーダ20Aが構築する方法で参照ピクチャサブセットを構築しなくてよい。
[0162]ビデオエンコーダ20AがHEVCに従って構成されない例の場合、ビデオエンコーダ20Aは、ピクチャをインター予測するのに使った可能性がある各ピクチャ用に、ピクチャのリストを、識別されたピクチャ用に情報が利用可能であるように、ビデオエンコーダ20Aのメモリ中などに維持するように構成(たとえば、この場合、設計)されてよい。このようにして、H.264/AVCに従って構成されたビデオエンコーダ20Aの場合でも、ビデオエンコーダ20Aが、本開示に記載される例示的技法を実装することが可能であり得る。
[0163]同様に、H.264/AVCに従って構成されているビデオデコーダのいくつかの例は、前に復号されたピクチャを識別する情報の出力をサポートしない場合がある。そのような例の場合、ビデオデコーダ30Bは、本開示に記載される例示的技法を実装するために、前に復号されたピクチャを識別する情報を出力することをサポートするように特に構成されてよい。
[0164]上記説明は、ビデオデコーダ30Bによって出力される情報に基づいて現在のピクチャをインター予測符号化するために、ビデオデコーダ30Bによる復号に利用可能になる複数の候補参照ピクチャをビデオエンコーダ20Aが決定することができる例示的技法について記載した。ただし、本開示は上記の例示的技法に限定されない。以下は、上記の例示的技法とともに使われ得るか、または上記の例示的技法とは別個である、いくつかの追加の例示的技法について記載する。
[0165]いくつかの例において、デコーダ側における各欠落された参照ピクチャについて(たとえば、ビデオデコーダ30Bが欠落させる各ピクチャについて)、ビデオデコーダ30Bは、このピクチャ(たとえば、欠落されたピクチャ)の一意の識別子、たとえばそれのPOC値を、SPLIメッセージのようにビデオエンコーダ20Aに送る(SPLIメッセージについては、下記でより詳しく説明する)。その上(たとえば、追加として)、ビデオデコーダ30Bは、ビデオデコーダ30Bが現在復号しているピクチャの一意の識別子をビデオエンコーダ20Aに送ることができる。ビデオデコーダ30Bが現在復号しているピクチャは、ビデオエンコーダ20Aが前に符号化したピクチャである。ピクチャを識別する情報をビデオデコーダ30Bが出力したときにビデオデコーダ30Bが復号していたピクチャの識別子を用いて、ビデオエンコーダ20Aは、どの参照ピクチャがビデオデコーダ30BのDPB92中に記憶されると想定されるか決定すればよい。
[0166]たとえば、上述したように、ピクチャを復号することの一部として、ビデオデコーダ30Bは、そのピクチャ用の参照ピクチャサブセットを構築し、参照ピクチャサブセットから、そのピクチャ用の参照ピクチャリストを構築する。この例では、ビデオエンコーダ20Aは、ビデオデコーダ30Bが情報を送信したときにビデオデコーダ30Bが復号していたピクチャの情報を受信し、どのピクチャがビデオデコーダ30BのDPB92中で利用可能であるか決定するために、参照ピクチャサブセット(または、より全般的には、H.264/AVCをカバーするためのパラメータセット)を決定する。また、ビデオエンコーダ20Aは、欠落されていることをビデオデコーダ30Bが示したピクチャがビデオデコーダ30BのDPB92中にないと決定してよい。したがって、ビデオデコーダ30Bから報告された欠落された参照ピクチャを除き、残りの参照ピクチャは、ビデオデコーダ30BのDPB92中にすべて存在するはずである。概して、わずかな参照ピクチャのみが失われるので、ビデオデコーダ30Bは、欠落されたピクチャを識別する情報を数回だけ出力することができる(たとえば、わずかな参照ピクチャが失われ、わずかなメッセージのみが送られるよう求められる)。したがって、この例示的技法は、比較的に帯域幅効率的であり得る。
[0167]上記例と同様の別の例として、ビデオデコーダ30Bは、欠落されたピクチャを識別する情報を出力することができ、ビデオエンコーダ20Aは、欠落されたピクチャを識別するそのような情報を受信することができる。ビデオエンコーダ20Aは、欠落されたピクチャを、決定された1つまたは複数の候補参照ピクチャから除外してよい。このようにして、ビデオデコーダ30Bは、欠落されたピクチャを除く1つまたは複数の候補参照ピクチャを用いて、現在のピクチャをインター予測復号することができる。
[0168]上記技法とともに、または上記技法とは別々に使われ得るさらに別の例示的技法として、ビデオデコーダ30BのDPB92中の各正しく復号された参照ピクチャについて、ビデオデコーダ30Bは、このピクチャの一意の識別子、たとえばそれのPOC値を、1つのフィードバックメッセージによってビデオエンコーダ20Aに出力する。この例示的技法は、いくつかのRPSIメッセージを一緒に送るのと同様であり得る。ただし、違いは、ビデオデコーダ30Bが、現在のピクチャをインター予測符号化するために使われるべき、ピクチャ用の1つの参照ピクチャを指定するのではなく、ビデオエンコーダ20Aが、どの参照ピクチャを使うか決定してよいことである。
[0169]この例では、ビデオデコーダ30Bは、ビデオデコーダ30BのDPB92中に記憶されている、ビデオデコーダ30Bが正しく再構築することができた各ピクチャを識別する情報を出力することができる。ビデオエンコーダ20Aは、ビデオエンコーダ20Aがそのような情報を複数のピクチャについて受信したその複数のピクチャのうちのどれが、ビデオエンコーダ20AのDPB64中で依然として利用可能であるか決定することができる。ビデオエンコーダ20Aは次いで、これらのピクチャのうちの1つまたは複数を、現在のピクチャをインター予測符号化するために使うことができる。ビデオデコーダ30BのDPB92中にたくさんの参照ピクチャがあるとき、ビデオデコーダ30Bは、多くのフィードバックメッセージを一緒にビデオエンコーダ20Aに出力してよい。したがって、この例示的技法は、比較的に帯域幅非効率であり得るが、ビデオエンコーダ20Aが、ビデオデコーダ30BのDPB92中で利用可能な参照ピクチャを用いて現在のピクチャをインター予測符号化したという、より良好な保証を伴い得る。
[0170]本開示の1つまたは複数の技法によると、ビデオデコーダ30Bは、ビデオエンコーダ20Aに、復号に利用可能な参照ピクチャを示す情報を送信することができる。ビデオデコーダ30Bは次いで、参照ピクチャのうちの1つまたは複数を用いてインター予測符号化されるピクチャについてのビデオデータを受信し得る。ビデオデコーダ30Bは、ビデオデータに基づいてピクチャをインター予測復号すればよい。
[0171]いくつかの例において、復号中に参照ピクチャの再構築においてエラーが起きた場合、ビデオデコーダ30Bは、復号に利用可能な参照ピクチャを示す情報を、ビデオエンコーダ20Aに送信すればよい。いくつかの例では、復号に利用可能な参照ピクチャを示す情報をビデオエンコーダ20Aに送信するために、ビデオデコーダ30Bは、参照セット中に含まれる参照ピクチャが、ビデオデコーダ30Bにおける復号に利用可能な参照ピクチャとしてそこから決定され得る参照ピクチャセット中で識別されたピクチャを識別する情報を送信すればよい。
[0172]1つまたは複数の例によると、ビデオデコーダ30Bは、ビデオエンコーダ20Aを含むデバイス12に、情報を出力するときにビデオデコーダ30BのDPB92中に記憶されている、前に復号されたピクチャを識別する情報を出力してよい。ビデオデコーダ30Bは、1つまたは複数の候補参照ピクチャを用いて、現在のピクチャをインター予測復号することができる。1つまたは複数の候補参照ピクチャは、ビデオエンコーダ20Aによって、識別されたピクチャをインター予測符号化するために使用可能であると前に決定された1つまたは複数のピクチャを含む。いくつかの例において、ビデオデコーダ30Bは、ピクチャが欠落されたと決定し得る。ビデオデコーダ30Bは、ピクチャが欠落されたという決定に基づいて、前に復号されたピクチャを識別する情報を出力することができる。
[0173]ビデオエンコーダ20Aは、現在のピクチャを双予測符号化するために、選択された候補参照ピクチャから2つのピクチャを選択してよい。したがって、ビデオデコーダ30Bは、候補参照ピクチャからの2つのピクチャに基づいて、現在のピクチャを双予測復号することができる。
[0174]さらに、前に復号されたピクチャを識別する情報を出力するのに加え、ビデオデコーダ30Bは、欠落されたピクチャを識別する情報を出力することができる。そのような例において、ビデオデコーダ30Bは、欠落されたピクチャを除く1つまたは複数の候補参照ピクチャを用いて、現在のピクチャをインター予測復号することができる。
[0175]図4は、ビデオデータを符号化する例示的な方法を示すフローチャートである。例示のために、本例は、ビデオエンコーダ20Aに関して説明される。ビデオエンコーダ20Aは、各ピクチャと、コーディング順序で次に続くピクチャとをインター予測符号化するために使われ得るピクチャを決定することができる(100)。たとえば、各ピクチャを符号化することの一部として、ビデオエンコーダ20Aは、ピクチャ用のパラメータセット(たとえば、HEVCにおいて定義され、または必ずしもHEVCによらないビデオコーディング技法におけるパラメータセットを維持する1つまたは複数の参照ピクチャサブセット)を決定するように構成されてよい。ビデオエンコーダ20Aは、各ピクチャについての、決定されたピクチャ(たとえば、パラメータセットのピクチャ)を示す情報を記憶すればよい(102)。
[0176]ビデオエンコーダ20Aは、特定のピクチャを(たとえば、そのPOC値によって)識別する情報を受信し得る(104)。ビデオエンコーダ20Aは、記憶された情報から、識別されたピクチャをインター予測符号化するために使用可能であると前に決定された1つまたは複数のピクチャを決定することができる(106)。いくつかの例において、ビデオエンコーダ20Aは、識別されたピクチャをインター予測符号化するために使用可能であると前に決定されたピクチャをインター予測符号化するために使用可能であると前に決定された1つまたは複数のピクチャも決定することができる。
[0177]ビデオエンコーダ20Aが、識別されたピクチャをインター予測符号化するために使用可能であると決定した(および場合によっては、識別されたピクチャをインター予測符号化するために使用可能であると決定されたピクチャをインター予測符号化するために使用可能であると決定された)ピクチャから、ビデオエンコーダ20Aは、これらのピクチャのうちのどれが、ビデオエンコーダ20AのDPB64中に依然として記憶されているか決定することができる(108)。ビデオエンコーダ20Aは、決定された候補参照ピクチャから、1つまたは複数の参照ピクチャ(たとえば、1つの参照ピクチャリストから、単方向予測用の1つの参照ピクチャ、または2つの参照ピクチャリストの各々内の複数の参照ピクチャから、双方向予測用の2つの参照ピクチャ)を選択してよい(110)。ビデオエンコーダ20Aは、選択された参照ピクチャに基づいて現在のピクチャをインター予測符号化することができる(112)。
[0178]図5は、ビデオデータを復号する例示的な方法を示すフローチャートである。説明しやすいように、本例は、ビデオデコーダ30Bに関して説明される。ビデオデコーダ30Bは、ビデオエンコーダ20Aを含むデバイス12に、情報を出力するときにビデオデコーダ30BのDPB92中に記憶されている、前に復号されたピクチャを識別する情報を出力してよい(200)。いくつかの例において、ビデオデコーダ30Bは、ピクチャが欠落されたと決定し得る。ビデオデコーダ30Bは、ピクチャが欠落されたという決定に基づいて、前に復号されたピクチャを識別する情報を出力するように構成され得る。
[0179]ビデオデコーダ30Bは、1つまたは複数の候補参照ピクチャを用いて、現在のピクチャをインター予測復号することができる(202)。1つまたは複数の候補参照ピクチャは、ビデオエンコーダ20Aによって、識別されたピクチャをインター予測符号化するために使用可能であると前に決定された1つまたは複数のピクチャ、および/または識別されたピクチャをインター予測符号化するために使用可能であると識別されたピクチャをインター予測符号化するために使用可能であると識別されたピクチャを含む。識別されたピクチャは、1つまたは複数の候補参照ピクチャの一部であってもよい。
[0180]たとえば、ビデオエンコーダ20Aが現在のピクチャを双予測符号化した場合、ビデオデコーダ30Bは、実質的に同様のやり方で、現在のピクチャを双予測復号することができる。また、いくつかの例において、ビデオデコーダ30Bは、欠落されたピクチャを識別する情報をさらに出力することができる。そのような例において、ビデオデコーダ30Bは、欠落されたピクチャを除く1つまたは複数の候補参照ピクチャを用いて、現在のピクチャをインター予測復号することができる。
[0181]上述した技法は、RPSIおよびRPSSIに関連した(繰返しになるが、RPSIの定義は、RPSSIの定義を含むように変更されてよい)。いくつかの例において、ビデオエンコーダ20Aおよびビデオデコーダ30Bは、特定ピクチャ損失指示(SPLI:specific picture loss indication)メッセージを使用してよい。SPLIの場合、エラーが起きると、ビデオデコーダ30Bは、失われた、または部分的に失われた参照ピクチャを報告するだけである。ビデオエンコーダ20Aは、SPLIメッセージに従ってエラーを追跡し、ビデオエンコーダ20Aが、正しく復号されるとともにビデオデコーダ30BのDPB92中に依然として存在する参照ピクチャを推論することができると、ビデオエンコーダ20Aは、この参照ピクチャを、エラー伝播を止めるために現在のピクチャを符号化するのに使うことができる。
[0182]SPLIメッセージの場合、ビデオデコーダ30Bはどのピクチャが失われるかを報告するだけでよいので、ビデオエンコーダ20Aは、受信されたメッセージに基づいて、どの参照ピクチャがビデオデコーダ30BのDPB92中で利用可能であるか推論するだけでよい。ただし、ビデオエンコーダ20Aは、ビデオデコーダ30B側において、いつエラーが起きたか決定することができない場合がある(すなわち、ビデオエンコーダ20Aは、エラーが報告されたときにビデオデコーダ30BのDPB92の正確な状態を決定し得ない)。場合によっては、テーブル2の例に示されるように、ビデオエンコーダ20Aが、ビデオデコーダ30BのDPB92中に記憶されたピクチャを正確に推論するのは面倒な場合がある。
[0183]テーブル2は、参照構造を示す。テーブル2において、*は、このピクチャがDPB中で保たれるが、現在のピクチャ復号には使われないことを意味し、POCは、ピクチャがいつ表示されるべきかを示すピクチャオーダーカウントを表す。たとえば、より小さいPOC値を有するピクチャは、より大きいPOC値を有するピクチャよりも早く表示される。ピクチャの表示順序は、ピクチャの符号化または復号順序とは異なり得る。
[0184]テーブル2において、ビデオエンコーダ20Aは、示される参照構造を使う。2つのケースがあり、ケース1では、ピクチャt+1のみが失われ、デコーダは、ピクチャt+2を復号するときにこの損失に気付き、次いで、ピクチャt+1が失われていることをエンコーダに知らせるためのSPLIメッセージを送り、ケース2では、ピクチャt+1とピクチャt+2の両方が失われ、デコーダは、ピクチャt+4を復号するときにこの意図されない損失に気付き、次いで、デコーダは、ピクチャt+1が失われていることをエンコーダに知らせるためのSPLIメッセージを送る。
[0185]いくつかの例において、欠落された参照ピクチャが現在のピクチャ復号に使われないとき、ビデオデコーダ30Bは、参照ピクチャ損失を報告しなくてよく、というのは、この参照ピクチャは、意図的に破棄され得るからである。これらの2つのケースを比較しても、ビデオエンコーダ20Aは、受信されたSPLIメッセージによってだけでは、これらを見分けることができない場合がある。つまり、ビデオエンコーダ20Aは、ピクチャt+3がビデオデコーダ30BのDPB中で利用可能であるかどうか推論することができない。
[0186]上記の例示的技法において、ビデオデコーダ30Bは、現在のピクチャをインター予測符号化するのに使われ得るより多くのピクチャ(たとえば、複数のピクチャ)をビデオエンコーダ20Aがわずかなピクチャから決定するそのわずかなピクチャ(たとえば、1つのピクチャ、または選ばれたわずかなピクチャ)を識別する情報を出力する。ただし、いくつかの例において、わずかなピクチャを識別する情報を出力するビデオデコーダ30Bは、ビデオエンコーダ20Aが現在のピクチャをインター予測符号化するのに使うことができるピクチャをビデオエンコーダ20Aが決定するのをトリガするのに十分でない場合がある。そのような例では、ビデオデコーダ30BのDPB92中の1つまたは複数のピクチャを識別する情報を出力することに加え、ビデオデコーダ30Bは、ピクチャが欠落されていることを示す情報と、欠落されたピクチャを識別する情報とを出力することもできる。それに応じて、ビデオエンコーダ20Aは、ビデオデコーダ30BのDPB92中にあると識別されるピクチャ、または識別されたピクチャもしくは識別されたピクチャにコーディング順序で続くピクチャをインター予測するのに使用可能と前に決定されたピクチャ、に基づいて、現在のピクチャをインター予測符号化すればよい。
[0187]図6は、ビデオデータを符号化する別の例示的な方法を示すフローチャートである。上記のように、本例は、ビデオエンコーダ20Aに関して説明される。図6に示されるように、ビデオエンコーダ20Aは、欠落されたピクチャを識別する情報をビデオデコーダ30Bから受信し得る(300)。ビデオエンコーダ20Aは、ビデオデコーダ30BのDPB92中に現時点で記憶されている1つまたは複数のピクチャを識別する情報を受信する場合もある(302)。いくつかの例において、ビデオエンコーダ20Aは、ピクチャが欠落されたとビデオデコーダ30Bが決定する事例においてのみ、ビデオデコーダ30BのDPB92中に現時点で記憶されている1つまたは複数のピクチャを識別する情報を受信し得る。
[0188]たとえば、いくつかの例において、ビデオデコーダ30Bは、正しく復号されたピクチャを識別する情報を、ピクチャを正しく復号した各インスタンスの後にビデオエンコーダ20Aに出力してよく、ビデオエンコーダ20Aは次いで、これらの識別されたピクチャのうちの1つまたは複数を、現在のピクチャをインター予測符号化するのに使用してよい。いくつかの例において、ビデオデコーダ30Bは、ピクチャが欠落された(たとえば、ピクチャが、復号されなかった、正確に再構築されなかった、または十分に再構築されなかった)とビデオデコーダ30Bが決定したときのみ、DPB64中に記憶された1つまたは複数のピクチャ(たとえば、1つまたは複数の正しく復号されたピクチャ)を識別する情報を出力してよい。これらの例では、ビデオデコーダ30Bは、欠落されたピクチャを識別する情報(たとえば、欠落されたピクチャのPOC値)を出力することもできる。
[0189]図6に示されるように、欠落されたピクチャを識別する情報を受信すること、およびビデオデコーダ30BのDPB92中の1つまたは複数のピクチャを識別する情報を受信することは、別々に示されている。ただし、本開示で説明する技法は、そのように限定されない。いくつかの例において、ビデオエンコーダ20Aは、欠落されたピクチャを識別する情報と、ビデオデコーダ30BのDPB92中の1つまたは複数のピクチャを識別する情報とを、バンドルされたフィードバックメッセージ中で受信することができる。一例として、単一のフィードバックメッセージが、欠落されたピクチャを識別する情報と、ビデオデコーダ30BのDPB92中に現時点で記憶されている1つまたは複数のピクチャを識別する情報とを含み得る。
[0190]ビデオエンコーダ20Aは、候補参照ピクチャを決定することができる(304)。候補ピクチャは、ビデオデコーダ30Bがフィードバックメッセージ中で識別した、ビデオデコーダ30BのDPB92中の1つまたは複数のピクチャのみに制限され得る。いくつかの例において、候補ピクチャは、ビデオデコーダ30Bが識別した1つまたは複数のピクチャをインター予測符号化するのに使われた可能性がある、ビデオエンコーダ20AのDPB64中に依然として記憶されているピクチャであってよい。
[0191]ビデオエンコーダ20Aは、現在のピクチャをインター予測符号化するために、候補参照ピクチャから参照ピクチャを選択してよい(306)。ビデオエンコーダ20Aは、選択された参照ピクチャに基づいて現在のピクチャをインター予測符号化することができる(308)。
[0192]図7は、ビデオデータを復号する別の例示的な方法を示すフローチャートである。上記のように、簡単のために、説明は、ビデオデコーダ30Bに関する。図示されるように、ビデオデコーダ30Bは、ピクチャが欠落されたと決定してよい(400)。たとえば、ビデオデコーダ30Bは、ピクチャが、別のピクチャをインター予測するのに使われるべきであるとき、そのピクチャが欠落されたと決定してよく、ビデオデコーダ30Bは、ピクチャがビデオデコーダ30BのDPB92中で利用可能でないと決定する。別の例として、ビデオデコーダ30Bは、ビデオデコーダ30Bがピクチャを出力するべきであるとともに、そのピクチャがビデオデコーダ30BのDPB92中で利用可能でないとき、そのピクチャが欠落されたと決定してよい。
[0193]ビデオデコーダ30Bは、欠落されたピクチャを識別する情報をビデオエンコーダ20Aに出力してよい(402)。ビデオデコーダ30Bは、ビデオデコーダ30BのDPB92中に現時点で記憶されている1つまたは複数のピクチャを識別する情報を出力してもよい(404)。たとえば、ビデオデコーダ30Bは、欠落されたピクチャと、ビデオデコーダ30BのDPB92中に現時点で記憶されている1つまたは複数のピクチャとを識別するピクチャオーダーカウント(POC)値を出力してよい。いくつかの例において、ビデオデコーダ30Bは、欠落されたピクチャを識別する情報と、DPB92中に現時点で記憶されている1つまたは複数のピクチャを識別する情報とを、バンドルされたフィードバックメッセージ中で出力してよい。一例として、欠落されたピクチャと、DPB92中に現時点で記憶されている1つまたは複数のピクチャとを識別するために、ビデオデコーダ30Bが送る必要があるただ1つのメッセージがあり得る。このようにして、ビデオデコーダ30Bは、欠落しているピクチャを識別するSPLIタイプメッセージと、ビデオデコーダ30BのDPB92中に現時点で記憶されている1つまたは複数のピクチャを識別するRPSIタイプメッセージとを送信することができる。
[0194]いくつかの例において、ビデオデコーダ30Bは、欠落されたピクチャと、DPB92中に現時点で記憶されている1つまたは複数のピクチャとを識別する情報を、2つ以上のメッセージ中で出力することができる。いくつかの例において、ビデオデコーダ30Bは、正しく復号した各ピクチャを識別する情報を、そのピクチャを復号した後でビデオエンコーダ20Aに出力すればよい。いくつかの例において、ビデオデコーダ30Bは、ピクチャが欠落されたとビデオデコーダ30Bが決定したときのみ、DPB92中に現時点で記憶されている1つまたは複数のピクチャを識別する情報を出力してよい。
[0195]ビデオデコーダ30Bは、1つまたは複数の参照ピクチャから、現在のピクチャをインター予測復号することができる(406)。参照ピクチャは、識別されたピクチャのみを含み得る。いくつかの例では、参照ピクチャは、識別されたピクチャと、識別されたピクチャをインター予測するのに使われた可能性があるピクチャとを含み得る。いくつかの例では、参照ピクチャは、識別されたピクチャをインター予測するのに使われた可能性があるピクチャを含むだけでよい。
[0196]1つまたは複数の例では、説明した機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装されてもよい。ソフトウェアで実装される場合、機能は1つまたは複数の命令またはコードとしてコンピュータ可読媒体上に記憶されるか、またはコンピュータ可読媒体を介して送信され、ハードウェアベースの処理ユニットによって実行され得る。コンピュータ可読媒体は、データ記憶媒体などの有形媒体に対応するコンピュータ可読記憶媒体を含み得る。このようにして、コンピュータ可読媒体は、概して、非一時的である有形コンピュータ可読記憶媒体に対応し得る。データ記憶媒体は、本開示で説明した技法の実施のための命令、コードおよび/またはデータ構造を取り出すために1つもしくは複数のコンピュータまたは1つもしくは複数のプロセッサによってアクセスされ得る任意の利用可能な媒体であり得る。コンピュータプログラム製品はコンピュータ可読媒体を含み得る。
[0197]限定ではなく例として、そのようなコンピュータ可読記憶媒体は、RAM、ROM、EEPROM(登録商標)、CD−ROMまたは他の光ディスクストレージ、磁気ディスクストレージ、もしくは他の磁気ストレージデバイス、フラッシュメモリ、または、命令もしくはデータ構造の形態の所望のプログラムコードを記憶するために使用されコンピュータによってアクセスされ得る、任意の他の媒体を備え得る。ただし、コンピュータ可読記憶媒体およびデータ記憶媒体は、接続、搬送波、信号、または他の一時的な媒体を含まないが、代わりに非一時的な有形記憶媒体を対象とすることを理解されたい。本明細書で使用するディスク(disk)およびディスク(disc)は、コンパクトディスク(disc)(CD)、レーザーディスク(登録商標)(disc)、光ディスク(disc)、デジタル多用途ディスク(disc)(DVD)、フロッピー(登録商標)ディスク(disk)およびBlu−rayディスク(disc)を含み、ディスク(disk)は通常、データを磁気的に再生し、ディスク(disc)はデータをレーザーで光学的に再生する。上記の組合せも、コンピュータ可読媒体の範囲内に含まれるべきである。
[0198]命令は、1つまたは複数のデジタル信号プロセッサ(DSP)、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブル論理アレイ(FPGA)、または他の等価な集積論理回路もしくはディスクリート論理回路など、1つまたは複数のプロセッサによって実行され得る。したがって、本明細書で使用する「プロセッサ」という用語は、前述の構造または本明細書で説明する技法の実装に好適な任意の他の構造のいずれかを指すことができる。加えて、いくつかの態様では、本明細書で説明した機能は、符号化および復号のために構成されるか、または複合コーデックに組み込まれる、専用のハードウェアモジュールおよび/またはソフトウェアモジュール内で提供され得る。また、本技法は、1つまたは複数の回路または論理素子において完全に実装され得る。
[0199]本開示の技法は、ワイヤレスハンドセット、集積回路(IC)またはICのセット(たとえば、チップセット)を含む、多種多様なデバイスまたは装置で実装され得る。本開示では、開示する技法を実施するように構成されたデバイスの機能的態様を強調するために様々な構成要素、モジュール、またはユニットについて説明したが、それらの構成要素、モジュール、またはユニットを、必ずしも異なるハードウェアユニットによって実現する必要があるとは限らない。そうではなく、上記で説明したように、様々なユニットは、コーデックハードウェアユニット中で組み合わせられるか、または上記で説明した1つまたは複数のプロセッサを含む、適切なソフトウェアおよび/またはファームウェアとともに相互動作可能なハードウェアユニットの集合によって提供され得る。
[0200]様々な例が、説明された。これらおよび他の例は、以下の特許請求の範囲の範囲内にある。
以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
[C1]
ビデオデータを符号化する方法であって、
ビデオデコーダを備えるデバイスから、前記ビデオデコーダが情報を送信したときに前記ビデオデコーダの復号ピクチャバッファ(DPB)中に記憶されている、前に復号されたピクチャを識別する前記情報を受信することと、
前記識別されたピクチャに基づいて、現在のピクチャを符号化するために利用可能である1つまたは複数の候補参照ピクチャを決定することと、ここにおいて、前記1つまたは複数の候補参照ピクチャは、前記識別されたピクチャまたは前記識別されたピクチャにコーディング順序で続く複数のピクチャのうちの1つまたは複数をインター予測符号化するために使用可能であると前に決定された、ビデオエンコーダのDPB中に依然として記憶されている1つまたは複数のピクチャを含む、
前記決定された1つまたは複数の候補参照ピクチャおよび前記識別されたピクチャから、前記現在のピクチャ用の1つまたは複数の参照ピクチャを選択することと、
前記選択された1つまたは複数の参照ピクチャに基づいて、前記現在のピクチャをインター予測符号化することと
を備える方法。
[C2]
前記識別されたピクチャの前記符号化中に、および前記現在のピクチャの前記符号化に先立って、
前記識別されたピクチャに表示順序で先行し、前記識別されたピクチャと、前記識別されたピクチャにコーディング順序で続くピクチャとをインター予測するのに使用可能であると決定された、どの短期参照ピクチャも含む第1の参照ピクチャサブセット、
前記識別されたピクチャに表示順序で続き、前記識別されたピクチャと、前記識別されたピクチャにコーディング順序で続くピクチャとをインター予測するのに使用可能であると決定された、どの短期参照ピクチャも含む第2の参照ピクチャサブセット、
前記識別されたピクチャと、前記識別されたピクチャにコーディング順序で続くピクチャとをインター予測するのに使用可能であると決定された、どの長期参照ピクチャも含む第3の参照ピクチャサブセット、
前記識別されたピクチャではなく、前記識別されたピクチャにコーディング順序で続くピクチャをインター予測するのに使用可能であると決定された、どの短期参照ピクチャも含む第4の参照ピクチャサブセット、および
前記識別されたピクチャではなく、前記識別されたピクチャにコーディング順序で続くピクチャをインター予測するのに使用可能であると決定された、どの長期参照ピクチャも含む第5の参照ピクチャサブセット、のうちの1つまたは複数を構築することをさらに備え、
前記第1、第2、第3、第4、および第5の参照ピクチャサブセットのうちの1つまたは複数の中のピクチャは、前記識別されたピクチャまたは前記識別されたピクチャにコーディング順序で続く複数のピクチャのうちの1つまたは複数をインター予測符号化するために使用可能であると前に決定されたピクチャを備え、
1つまたは複数の候補参照ピクチャを決定することは、前記第1の参照ピクチャサブセット、前記第2の参照ピクチャサブセット、前記第3の参照ピクチャサブセット、前記第4の参照ピクチャサブセット、および前記第5の参照ピクチャサブセットのうちの1つまたは複数から、1つまたは複数の候補参照ピクチャを決定することを備える、C1に記載の方法。
[C3]
1つまたは複数の候補参照ピクチャを決定することは、前記第4および第5の参照ピクチャサブセットからではなく、前記第1、第2、および第3の参照ピクチャサブセットから、1つまたは複数の候補参照ピクチャを決定することを備える、C2に記載の方法。
[C4]
1つまたは複数の候補参照ピクチャを決定することは、前記第3、第4、および第5の参照ピクチャサブセットからではなく、前記第1および第2の参照ピクチャサブセットから、1つまたは複数の候補参照ピクチャを決定することを備える、C2に記載の方法。
[C5]
前記識別されたピクチャが、前記現在のピクチャを符号化するために利用可能かどうか決定することと、
前記識別されたピクチャが、前記現在のピクチャを符号化するために利用可能でないという決定に基づいて、前記現在のピクチャをイントラ予測符号化することとをさらに備える、C1に記載の方法。
[C6]
欠落されたピクチャを識別する情報を受信することと、
前記欠落されたピクチャを、前記決定された1つまたは複数の候補参照ピクチャから除外することと
をさらに備える、C1に記載の方法。
[C7]
前記選択された1つまたは複数の参照ピクチャに基づいて、前記現在のピクチャをインター予測符号化することは、前記選択された参照ピクチャからの2つのピクチャに基づいて、前記現在のピクチャを双予測符号化することを備える、C1に記載の方法。
[C8]
ビデオデータを復号する方法であって、
ビデオエンコーダを備えるデバイスに、情報を出力するときにビデオデコーダの復号ピクチャバッファ(DPB)中に記憶されていた、前に復号されたピクチャを識別する前記情報を出力することと、
1つまたは複数の候補参照ピクチャを用いて、現在のピクチャをインター予測復号することと、ここにおいて、前記1つまたは複数の候補参照ピクチャは、前記ビデオエンコーダによって、前記識別されたピクチャをインター予測符号化するために使用可能であると前に決定された1つまたは複数のピクチャを含む、
を備える方法。
[C9]
ピクチャが欠落されたと決定することをさらに備え、
情報を出力することは、前記ピクチャが欠落されたという決定に基づいて情報を出力することを備える、C8に記載の方法。
[C10]
前記現在のピクチャをインター予測復号することは、前記候補参照ピクチャからの2つのピクチャに基づいて、前記現在のピクチャを双予測復号することを備える、C8に記載の方法。
[C11]
欠落されたピクチャを識別する情報を出力することをさらに備え、
1つまたは複数の候補参照ピクチャを用いて前記現在のピクチャをインター予測復号することは、前記欠落されたピクチャを除く前記1つまたは複数の候補参照ピクチャを用いて前記現在のピクチャをインター予測復号することを備える、C8に記載の方法。
[C12]
ビデオデータを符号化するためのデバイスであって、
1つまたは複数のピクチャを記憶するように構成されたメモリを備える第1の復号ピクチャバッファ(DPB)と、
1つまたは複数のプロセッサを備えるビデオエンコーダと、ここにおいて、前記ビデオエンコーダは、
ビデオデコーダを備えるデバイスから、前記ビデオデコーダが情報を送信したときに前記ビデオデコーダの第2のDPBに記憶されている、前に復号されたピクチャを識別する前記情報を受信し、
前記識別されたピクチャに基づいて、現在のピクチャを符号化するために利用可能である1つまたは複数の候補参照ピクチャを決定し、ここにおいて、前記1つまたは複数の候補参照ピクチャは、前記識別されたピクチャまたは前記識別されたピクチャにコーディング順序で続く複数のピクチャのうちの1つまたは複数をインター予測符号化するために使用可能であると前に決定された、前記第1のDPB中に依然として記憶されている1つまたは複数のピクチャを含む、
前記決定された1つまたは複数の候補参照ピクチャおよび前記識別されたピクチャから、前記現在のピクチャ用の1つまたは複数の参照ピクチャを選択し、
前記選択された1つまたは複数の参照ピクチャに基づいて、前記現在のピクチャをインター予測符号化する、ように構成される、
を備えるデバイス。
[C13]
前記ビデオエンコーダは、
前記識別されたピクチャの前記符号化中に、および前記現在のピクチャの前記符号化に先立って、
前記識別されたピクチャに表示順序で先行し、前記識別されたピクチャと、前記識別されたピクチャにコーディング順序で続くピクチャとをインター予測するのに使用可能であると決定された、どの短期参照ピクチャも含む第1の参照ピクチャサブセット、
前記識別されたピクチャに表示順序で続き、前記識別されたピクチャと、前記識別されたピクチャにコーディング順序で続くピクチャとをインター予測するのに使用可能であると決定された、どの短期参照ピクチャも含む第2の参照ピクチャサブセット、
前記識別されたピクチャと、前記識別されたピクチャにコーディング順序で続くピクチャとをインター予測するのに使用可能であると決定された、どの長期参照ピクチャも含む第3の参照ピクチャサブセット、
前記識別されたピクチャではなく、前記識別されたピクチャにコーディング順序で続くピクチャをインター予測するのに使用可能であると決定された、どの短期参照ピクチャも含む第4の参照ピクチャサブセット、および
前記識別されたピクチャではなく、前記識別されたピクチャにコーディング順序で続くピクチャをインター予測するのに使用可能であると決定された、どの長期参照ピクチャも含む第5の参照ピクチャサブセット、のうちの1つまたは複数を構築するように構成され、
前記第1、第2、第3、第4、および第5の参照ピクチャサブセットのうちの1つまたは複数の中のピクチャは、前記識別されたピクチャまたは前記識別されたピクチャにコーディング順序で続く複数のピクチャのうちの1つまたは複数をインター予測符号化するために使用可能であると前に決定されたピクチャを備え、
1つまたは複数の候補参照ピクチャを決定するために、前記ビデオエンコーダは、前記第1の参照ピクチャサブセット、前記第2の参照ピクチャサブセット、前記第3の参照ピクチャサブセット、前記第4の参照ピクチャサブセット、および前記第5の参照ピクチャサブセットのうちの1つまたは複数から、1つまたは複数の候補参照ピクチャを決定するように構成される、C12に記載のデバイス。
[C14]
1つまたは複数の候補参照ピクチャを決定するために、前記ビデオエンコーダは、前記第4および第5の参照ピクチャサブセットからではなく、前記第1、第2、および第3の参照ピクチャサブセットから、1つまたは複数の候補参照ピクチャを決定するように構成される、C13に記載のデバイス。
[C15]
1つまたは複数の候補参照ピクチャを決定するために、前記ビデオエンコーダは、前記第3、第4および第5の参照ピクチャサブセットからではなく、前記第1および第2の参照ピクチャサブセットから、1つまたは複数の候補参照ピクチャを決定するように構成される、C13に記載のデバイス。
[C16]
前記ビデオエンコーダは、
前記識別されたピクチャが、前記現在のピクチャを符号化するために利用可能かどうか決定し、
前記識別されたピクチャが、前記現在のピクチャを符号化するために利用可能でないという決定に基づいて、前記現在のピクチャをイントラ予測符号化する、ように構成される、C12に記載のデバイス。
[C17]
前記ビデオエンコーダは、
欠落されたピクチャを識別する情報を受信し、
前記欠落されたピクチャを、前記決定された1つまたは複数の候補参照ピクチャから除外する、ように構成される、C12に記載のデバイス。
[C18]
前記選択された1つまたは複数の参照ピクチャに基づいて、前記現在のピクチャをインター予測符号化するために、前記ビデオエンコーダは、前記選択された参照ピクチャからの2つのピクチャに基づいて、前記現在のピクチャを双予測符号化するように構成される、C12に記載のデバイス。
[C19]
ビデオデータを復号するためのデバイスであって、
1つまたは複数のピクチャを記憶するように構成されたメモリを備える復号ピクチャバッファ(DPB)と、
1つまたは複数のプロセッサを備えるビデオデコーダと、ここにおいて、前記ビデオデコーダは、
ビデオエンコーダを備えるデバイスに、情報を出力するときに前記ビデオデコーダの前記DPB中に記憶されている、前に復号されたピクチャを識別する前記情報を出力し、
1つまたは複数の候補参照ピクチャを用いて、現在のピクチャをインター予測復号する、ここにおいて、前記1つまたは複数の候補参照ピクチャは、前記ビデオエンコーダによって、前記識別されたピクチャをインター予測符号化するために使用可能であると前に決定された1つまたは複数のピクチャを含む、ように構成される、
を備えるデバイス。
[C20]
前記ビデオデコーダは、
ピクチャが欠落されたと決定するように構成され、
情報を出力するために、前記ビデオデコーダは、前記ピクチャが欠落されたという決定に基づいて、情報を出力するように構成される、C19に記載のデバイス。
[C21]
前記現在のピクチャをインター予測復号するために、前記ビデオデコーダは、前記候補参照ピクチャからの2つのピクチャに基づいて、前記現在のピクチャを双予測復号するように構成される、C19に記載のデバイス。
[C22]
前記ビデオデコーダは、
欠落されたピクチャを識別する情報を出力するように構成され、
1つまたは複数の候補参照ピクチャを用いて前記現在のピクチャをインター予測復号するために、前記ビデオデコーダは、前記欠落されたピクチャを除く前記1つまたは複数の候補参照ピクチャを用いて前記現在のピクチャをインター予測復号するように構成される、C19に記載のデバイス。
[C23]
前記現在のピクチャを表示するように構成されたディスプレイをさらに備える、C19に記載のデバイス。
[C24]
前記前に復号されたピクチャを識別する前記情報を通信するように構成されたネットワークインターフェースをさらに備える、C19に記載のデバイス。