(57)【要約】  改善されたビデオストリームスイッチングおよびランダムアクセスを含む、改善されたビデオコーディングを提供するためのシステム、方法、およびコンピュータ可読媒体が説明される。いくつかの例では、システム、方法、およびコンピュータ可読媒体は、エンコーダにおいてビデオデータを取得することと、イントラランダムアクセスポイント(IRAP)ピクチャをビデオデータから決定することとを含む。IRAPピクチャに関連する1つまたは複数のリーディングピクチャの第1のセットは、TemporalIdしきい値以下の時間識別子(TemporalId)を有する1つまたは複数のリーディングピクチャの第1のセットに基づいて、ランダムアクセス復号可能リーディング(RADL)ピクチャとしてコーディングされる。IRAPピクチャに関連する1つまたは複数のリーディングピクチャの第2のセットは、TemporalIdしきい値よりも大きいTemporalIdを有する1つまたは複数のリーディングピクチャの第2のセットに基づいて、ランダムアクセススキップドリーディング(RASL)ピクチャとしてコーディングされる。ビデオビットストリームは、次いで、IRAPピクチャ、1つまたは複数のリーディングピクチャの第1のセット、および1つまたは複数のリーディングピクチャの第2のセットを含むように生成され得る。
2018533281.tif 000002
【特許請求の範囲】
【請求項１】
ビデオビットストリームを生成するためにビデオデータを符号化する方法であって、
エンコーダにおいてビデオデータを取得するステップと、
イントラランダムアクセスポイント(IRAP)ピクチャを前記ビデオデータから決定するステップと、
前記IRAPピクチャに関連する1つまたは複数のリーディングピクチャの第1のセットを、ランダムアクセス復号可能リーディング(RADL)ピクチャとしてコーディングするステップであって、1つまたは複数のリーディングピクチャの前記第1のセットが、1つまたは複数のリーディングピクチャの前記第1のセットがTemporalIdしきい値以下の時間識別子(TemporalId)を有することに基づいて、1つまたは複数のRADLピクチャとしてコーディングされる、ステップと、
前記IRAPピクチャに関連する1つまたは複数のリーディングピクチャの第2のセットを、ランダムアクセススキップドリーディング(RASL)ピクチャとしてコーディングするステップであって、1つまたは複数のリーディングピクチャの前記第2のセットが、1つまたは複数のリーディングピクチャの前記第2のセットが前記TemporalIdしきい値よりも大きいTemporalIdを有することに基づいて、1つまたは複数のRASLピクチャとしてコーディングされる、ステップと、
前記ビデオビットストリームを生成するステップであって、前記ビデオビットストリームが、前記IRAPピクチャ、1つまたは複数のリーディングピクチャの前記第1のセット、および1つまたは複数のリーディングピクチャの前記第2のセットを含む、ステップと
を備える方法。
【請求項２】
前記IRAPピクチャがクリーンランダムアクセス(CRA)ピクチャである、請求項1に記載の方法。
【請求項３】
1つまたは複数のリーディングピクチャの前記第1のセットおよび1つまたは複数のリーディングピクチャの前記第2のセットを、前記第1のセットおよび前記第2のセットの中の各リーディングピクチャの前記TemporalIdによる出力順序で配列するステップをさらに備え、前記第1のセットの前記1つまたは複数のRADLピクチャが、前記第2のセットの前記1つまたは複数のRASLピクチャよりも小さいTemporalIdを有する、請求項1に記載の方法。
【請求項４】
1つまたは複数のリーディングピクチャの前記第1のセットおよび1つまたは複数のリーディングピクチャの前記第2のセットを、交互の出力順序で配列するステップをさらに備える、請求項1に記載の方法。
【請求項５】
前記ビデオデータがビデオ表現の一部であり、前記IRAPピクチャにおいて前記ビデオ表現へのスイッチングが行われるとき、前記1つまたは複数のRASLピクチャが廃棄され、前記1つまたは複数のRASLピクチャが廃棄されるとき、前記ビデオ表現が1つまたは複数の時間サブレイヤの縮小セットを使用して出力される、請求項1に記載の方法。
【請求項６】
前記IRAPピクチャに関連する1つまたは複数のトレーリングピクチャが復号されるとき、前記ビデオ表現が、時間サブレイヤの拡大セットを使用して出力される、請求項5に記載の方法。
【請求項７】
前記TemporalIdしきい値以下のTemporalIdを有する1つまたは複数のリーディングピクチャの前記第1のセットが、復号順序において前記IRAPピクチャよりも前のピクチャに依存せず、復号順序において前記IRAPピクチャよりも前の前記ピクチャを参照することなく復号可能である、請求項1に記載の方法。
【請求項８】
前記TemporalIdしきい値よりも大きいTemporalIdを有する1つまたは複数のリーディングピクチャの前記第2のセットの1つまたは複数のRASLピクチャが、復号順序において前記IRAPピクチャよりも前のピクチャに依存する、請求項1に記載の方法。
【請求項９】
前記TemporalIdしきい値を前記ビデオビットストリームの中でシグナリングするステップをさらに備える、請求項1に記載の方法。
【請求項１０】
前記TemporalIdしきい値以下のTemporalIdを有する1つまたは複数のリーディングピクチャの前記第1のセットが、前記IRAPピクチャに関連する1つまたは複数のトレーリングピクチャに対するインター予測用の参照として使用可能である、請求項1に記載の方法。
【請求項１１】
1つまたは複数のリーディングピクチャの前記第1のセットを前記1つまたは複数のトレーリングピクチャがインター予測用の参照として使用することを許容するIRAPピクチャとして、前記IRAPピクチャを識別する識別情報を前記ビデオビットストリームの中でシグナリングするステップをさらに備える、請求項10に記載の方法。
【請求項１２】
前記識別情報が、瞬時復号リフレッシュ(IDR)タイプ、クリーンランダムアクセス(CRA)タイプ、およびブロークンリンクアクセス(BLA)タイプ以外の、前記IRAPピクチャのためのネットワークアブストラクションレイヤ(NAL)ユニットタイプを含む、請求項11に記載の方法。
【請求項１３】
前記TemporalIdしきい値よりも大きいTemporalIdを有する1つまたは複数のリーディングピクチャの前記第2のセットが、前記IRAPピクチャに関連する1つまたは複数のトレーリングピクチャに対するインター予測用の参照として使用可能である、請求項1に記載の方法。
【請求項１４】
1つまたは複数のリーディングピクチャの前記第2のセットを前記1つまたは複数のトレーリングピクチャがインター予測用の参照として使用することを許容するIRAPピクチャとして、前記IRAPピクチャを識別する識別情報を前記ビデオビットストリームの中でシグナリングするステップをさらに備える、請求項13に記載の方法。
【請求項１５】
前記1つまたは複数のトレーリングピクチャの各々に対するTemporalIdあるいは前記1つまたは複数のトレーリングピクチャの基数のうちの少なくとも1つまたは複数をシグナリングするステップをさらに備え、前記1つまたは複数のトレーリングピクチャが、前記1つまたは複数のトレーリングピクチャの各々の前記TemporalIdによる出力順序で配列される、請求項13に記載の方法。
【請求項１６】
前記1つまたは複数のトレーリングピクチャの各々に対する前記TemporalIdあるいは前記1つまたは複数のトレーリングピクチャの前記基数が、前記IRAPピクチャのヘッダの中またはパラメータセットの中でシグナリングされる、請求項15に記載の方法。
【請求項１７】
NALユニットタイプを使用して前記1つまたは複数のトレーリングピクチャの識別情報をシグナリングするステップをさらに備える、請求項13に記載の方法。
【請求項１８】
出力順序と復号順序の両方において前記IRAPピクチャに先行するピクチャのセットが、前記IRAPピクチャに関連する1つまたは複数のトレーリングピクチャに対するインター予測用の参照として使用可能である、請求項1に記載の方法。
【請求項１９】
ピクチャの前記セットを前記1つまたは複数のトレーリングピクチャがインター予測用の参照として使用することを許容するIRAPピクチャとして、前記IRAPピクチャを識別する識別情報を前記ビデオビットストリームの中でシグナリングするステップをさらに備える、請求項18に記載の方法。
【請求項２０】
装置であって、
ビデオデータを記憶するように構成されたメモリと、
プロセッサとを備え、前記プロセッサが、
エンコーダにおいてビデオデータを取得することと、
イントラランダムアクセスポイント(IRAP)ピクチャを前記ビデオデータから決定することと、
前記IRAPピクチャに関連する1つまたは複数のリーディングピクチャの第1のセットを、ランダムアクセス復号可能リーディング(RADL)ピクチャとしてコーディングすることであって、1つまたは複数のリーディングピクチャの前記第1のセットが、1つまたは複数のリーディングピクチャの前記第1のセットがTemporalIdしきい値以下の時間識別子(TemporalId)を有することに基づいて、1つまたは複数のRADLピクチャとしてコーディングされる、コーディングすることと、
前記IRAPピクチャに関連する1つまたは複数のリーディングピクチャの第2のセットを、ランダムアクセススキップドリーディング(RASL)ピクチャとしてコーディングすることであって、1つまたは複数のリーディングピクチャの前記第2のセットが、1つまたは複数のリーディングピクチャの前記第2のセットが前記TemporalIdしきい値よりも大きいTemporalIdを有することに基づいて、1つまたは複数のRASLピクチャとしてコーディングされる、コーディングすることと、
ビデオビットストリームを生成することであって、前記ビデオビットストリームが、前記IRAPピクチャ、1つまたは複数のリーディングピクチャの前記第1のセット、および1つまたは複数のリーディングピクチャの前記第2のセットを含む、生成することと
を行うように構成される、装置。
【請求項２１】
ビデオデータを取得するために符号化ビデオビットストリームを復号する方法であって、
符号化ビデオビットストリームにアクセスするステップであって、前記符号化ビデオビットストリームが、イントラランダムアクセスポイント(IRAP)ピクチャ、TemporalIdしきい値以下の時間識別子(TemporalId)を有する1つまたは複数のランダムアクセス復号可能リーディング(RADL)ピクチャのセット、および前記TemporalIdしきい値よりも大きいTemporalIdを有する1つまたは複数のランダムアクセススキップドリーディング(RASL)ピクチャのセットを含む、ステップと、
前記ビデオデータを取得するために前記符号化ビデオビットストリームを復号するステップと
を備える方法。
【請求項２２】
1つまたは複数のRADLピクチャの前記セットおよび1つまたは複数のRASLピクチャの前記セットが、前記1つまたは複数のRADLピクチャおよび前記1つまたは複数のRADLピクチャの時間識別子による出力順序で配列され、前記1つまたは複数のRADLピクチャが、前記1つまたは複数のRASLピクチャよりも小さいTemporalIdを有するか、あるいは
1つまたは複数のRADLピクチャの前記セットおよび1つまたは複数のRASLピクチャの前記セットが、交互の出力順序で配列される、
請求項21に記載の方法。
【請求項２３】
前記ビデオデータがビデオ表現の一部であり、前記方法が、
前記IRAPピクチャにおいて前記ビデオ表現にスイッチングするステップと、
1つまたは複数のRASLピクチャの前記セットを廃棄するステップと、
1つまたは複数のRASLピクチャの前記セットが廃棄されるとき、1つまたは複数の時間サブレイヤの縮小セットを使用して前記ビデオ表現を出力するステップと
をさらに備える、請求項21に記載の方法。
【請求項２４】
前記IRAPピクチャに関連する1つまたは複数のトレーリングピクチャを復号するステップと、
前記1つまたは複数のトレーリングピクチャが復号されるとき、時間サブレイヤの拡大セットを使用して前記ビデオ表現を出力するステップと
をさらに備える、請求項23に記載の方法。
【請求項２５】
復号順序において前記IRAPピクチャよりも前のピクチャを参照することなく、インター予測を使用して1つまたは複数のRADLピクチャの前記セットを復号するステップであって、1つまたは複数のRADLピクチャの前記セットが、復号順序において前記IRAPピクチャよりも前の前記ピクチャに依存しない、ステップ、あるいは
復号順序において前記IRAPピクチャよりも前のピクチャを参照することによって、インター予測を使用して1つまたは複数のRASLピクチャの前記セットを復号するステップ
をさらに備える、請求項21に記載の方法。
【請求項２６】
復号順序において前記IRAPピクチャよりも前のピクチャがインター予測用の参照として利用可能でないと決定するステップと、
1つまたは複数のRASLピクチャの前記セットを廃棄するステップと
をさらに備える、請求項21に記載の方法。
【請求項２７】
前記RADLピクチャのうちの少なくとも1つを参照として使用して、前記IRAPピクチャに関連する1つまたは複数のトレーリングピクチャのインター予測を実行するステップをさらに備える、請求項21に記載の方法。
【請求項２８】
前記RASLピクチャのうちの少なくとも1つを参照として使用して、前記IRAPピクチャに関連する1つまたは複数のトレーリングピクチャのインター予測を実行するステップをさらに備える、請求項21に記載の方法。
【請求項２９】
出力順序と復号順序の両方において前記IRAPピクチャに先行するピクチャのセットを使用して、前記IRAPピクチャに関連する1つまたは複数のトレーリングピクチャのインター予測を実行するステップをさらに備える、請求項21に記載の方法。
【請求項３０】
ビデオデータを記憶するように構成されたメモリと、
プロセッサとを備え、前記プロセッサが、
符号化ビデオビットストリームにアクセスすることであって、前記符号化ビデオビットストリームが、イントラランダムアクセスポイント(IRAP)ピクチャ、TemporalIdしきい値以下の時間識別子(TemporalId)を有する1つまたは複数のランダムアクセス復号可能リーディング(RADL)ピクチャのセット、および前記TemporalIdしきい値よりも大きいTemporalIdを有する1つまたは複数のランダムアクセススキップドリーディング(RASL)ピクチャのセットを含む、アクセスすることと、
前記ビデオデータを取得するために前記符号化ビデオビットストリームを復号することと
を行うように構成される、装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は、ビデオコーディングおよび圧縮に関する。より詳細には、本出願は、ビデオ符号化および復号に適用可能な、改善されたビデオストリームスイッチングおよびランダムアクセスの技法に関する。
【背景技術】
【０００２】
多くのデバイスおよびシステムは、ビデオデータが消費のために処理および出力されることを可能にする。デジタルビデオデータは、消費者およびビデオ提供者の需要を満たすために大量のデータを含む。たとえば、ビデオデータの消費者は、高い忠実度、解像度、フレームレートなどを有する最高品質のビデオを望む。その結果、これらの要求を満たすことが求められる大量のビデオデータは、通信ネットワーク、およびビデオデータを処理および記憶するデバイスに負担をかける。
【０００３】
ビデオデータを圧縮するために、様々なビデオコーディング技法が使用され得る。ビデオコーディングは、1つまたは複数のビデオコーディング規格に従って実行される。たとえば、ビデオコーディング規格は、高効率ビデオコーディング(HEVC:high-efficiency video coding)、アドバンストビデオコーディング(AVC:advanced video coding)、ムービングピクチャエキスパートグループ(MPEG:moving picture experts group)コーディングなどを含む。ビデオコーディングは、概して、ビデオ画像またはシーケンスの中に存在する冗長性を利用する予測方法(たとえば、インター予測、イントラ予測など)を利用する。ビデオコーディング技法の重要な目的は、ビデオ品質の劣化を回避または最小限に抑えながら、より低いビットレートを使用する形態にビデオデータを圧縮することである。絶えず進化するビデオサービスが利用可能になって、より良好なコーディング効率を有する符号化技法が必要とされる。
【発明の概要】
【課題を解決するための手段】
【０００４】
いくつかの実装形態では、改善されたビデオストリームスイッチングおよびランダムアクセスを提供する技法およびシステムが説明される。様々なタイプのランダムアクセスポイントピクチャが、ビデオ表現の中に含まれ得る。たとえば、ランダムアクセスポイントピクチャは、ビデオ表現が別のビデオ表現との間でスイッチングされ得るポイントを提供することができる。別の例では、ランダムアクセスポイントピクチャは、(たとえば、ビデオ表現の中のさらに前または後のポイントへのアクセスが要求されるとき)ビデオ表現がランダムにアクセスされ得るポイントを提供することができる。ランダムアクセスポイントピクチャの一例は、イントラランダムアクセスポイント(IRAP)ピクチャを含み、イントラランダムアクセスポイント(IRAP)ピクチャは、瞬時復号リフレッシュ(IDR)ピクチャ、クリーンランダムアクセス(CRA)ピクチャ、およびブロークンリンクアクセス(BLA)ピクチャを含み得る。IDRピクチャはクローズドピクチャグループ(GOP)構造に従い、CRAピクチャはオープンGOP構造に従う。BLAピクチャは、CRAピクチャのロケーションにおけるビットストリームの接合から得られ得る。
【０００５】
リーディングピクチャとは、関連するIRAPピクチャに復号順序において後続するがIRAPピクチャよりも前に出力されるピクチャである。リーディングピクチャは、ランダムアクセススキップドリーディング(RASL)およびランダムアクセス復号可能リーディング(RADL)を含み得る。RASLピクチャとは、復号順序と出力順序の両方においてIRAPピクチャに先行するピクチャをインター予測用の参照として使用するリーディングピクチャである。RADLピクチャとは、復号順序と出力順序の両方においてIRAPピクチャに先行するピクチャをインター予測用の参照として使用しないリーディングピクチャである。RASLピクチャとRADLピクチャの両方が、オープンGOP構造において使用され得る。しかしながら、クローズドGOP構造では、RADLピクチャしか使用されない。より多くの参照ピクチャがリーディングピクチャを予測するために利用可能であることに起因して、この差異により、オープンGOPの場合におけるリーディングピクチャがクローズドGOPの場合よりも効率的にコーディングされることが可能になる。さらに、IRAPピクチャのRASLピクチャが、IRAPピクチャのすべてのRADLピクチャに出力順序において先行することを必要とするという制約が存在する。
【０００６】
ビデオコンテンツの異なる表現(たとえば、低品質でのビデオコンテンツの第1の表現、およびより高品質での同じビデオコンテンツの第2の表現)の間のスイッチングを可能にする適応ストリーミングシステムでは、クローズドGOP構造は、通常、ランダムアクセスが行われるとき、連続するピクチャが出力される前に欠落しないように使用され得る。たとえば、適応ストリーミングシステムが、RASLピクチャを伴うオープンGOP構造を使用するならば、RASLピクチャがRADLピクチャに先行するという制約は、関連するIRAPピクチャにおいてスイッチングが実行されるとき、連続するRASLピクチャ(制約による出力順序で連続する)をシステムが欠落させることにつながることになる。RASLピクチャは、復号順序と出力順序の両方においてIRAPピクチャに先行するピクチャをインター予測用の参照として使用することがあり、IRAPピクチャにおいてストリームスイッチングまたはランダムアクセスが実行されることに起因してこれらの参照ピクチャが利用可能でないので、欠落することになる。
【０００７】
いくつかの例では、ピクチャの時間識別子(TemporalId)に基づいて、オープンGOP IRAPピクチャ(たとえば、CRAピクチャ)に関連するリーディングピクチャをRASLピクチャまたはRADLピクチャとして定義する技法およびシステムが、本明細書で説明される。たとえば、IRAPピクチャに関連し特定の値までのTemporalIdを有するリーディングピクチャは、RADLピクチャとしてコーディングされ、IRAPピクチャに関連する他のリーディングピクチャ(その特定の値よりも大きいTemporalIdを有する)は、RASLピクチャとしてコーディングされる。
【０００８】
いくつかの例では、新たなタイプのIRAPピクチャが定義され、その場合、特定の値までのTemporalIdを有し復号順序において後続するすべてのピクチャは、復号順序においてIRAPピクチャよりも前のピクチャに依存しないが(結果として、復号順序においてIRAPピクチャよりも前のピクチャを参照することなく正しく復号され得るが)、その特定の値よりも大きいTemporalIdを有し復号順序において後続するすべてのピクチャは、復号順序においてIRAPピクチャよりも前のピクチャに依存し得る(結果として、復号順序においてIRAPピクチャよりも前のピクチャを参照しないと正しく復号されないことがある)。
【０００９】
少なくとも1つの例によれば、ビデオビットストリームを生成するためにビデオデータを符号化する方法が提供され、方法は、エンコーダにおいてビデオデータを取得することと、イントラランダムアクセスポイント(IRAP)ピクチャをビデオデータから決定することとを備える。方法は、IRAPピクチャに関連する1つまたは複数のリーディングピクチャの第1のセットを、ランダムアクセス復号可能リーディング(RADL)ピクチャとしてコーディングすることをさらに備える。1つまたは複数のリーディングピクチャの第1のセットは、1つまたは複数のリーディングピクチャの第1のセットがTemporalIdしきい値以下の時間識別子(TemporalId)を有することに基づいて、1つまたは複数のRADLピクチャとしてコーディングされる。方法は、IRAPピクチャに関連する1つまたは複数のリーディングピクチャの第2のセットを、ランダムアクセススキップドリーディング(RASL)ピクチャとしてコーディングすることをさらに備える。1つまたは複数のリーディングピクチャの第2のセットは、1つまたは複数のリーディングピクチャの第2のセットがTemporalIdしきい値よりも大きいTemporalIdを有することに基づいて、1つまたは複数のRASLピクチャとしてコーディングされる。方法は、ビデオビットストリームを生成することをさらに備え、ビデオビットストリームは、IRAPピクチャ、1つまたは複数のリーディングピクチャの第1のセット、および1つまたは複数のリーディングピクチャの第2のセットを含む。
【００１０】
別の例では、ビデオデータを記憶するように構成されたメモリとプロセッサとを含む装置が提供される。プロセッサは、エンコーダにおいてビデオデータを取得することを行うように構成されるとともに、それを行うことができる。プロセッサは、イントラランダムアクセスポイント(IRAP)ピクチャをビデオデータから決定するようにさらに構成されるとともに、それを行うことができる。プロセッサは、IRAPピクチャに関連する1つまたは複数のリーディングピクチャの第1のセットを、ランダムアクセス復号可能リーディング(RADL)ピクチャとしてコーディングするようにさらに構成されるとともに、それを行うことができる。1つまたは複数のリーディングピクチャの第1のセットは、1つまたは複数のリーディングピクチャの第1のセットがTemporalIdしきい値以下の時間識別子(TemporalId)を有することに基づいて、1つまたは複数のRADLピクチャとしてコーディングされる。プロセッサは、IRAPピクチャに関連する1つまたは複数のリーディングピクチャの第2のセットを、ランダムアクセススキップドリーディング(RASL)ピクチャとしてコーディングするようにさらに構成されるとともに、それを行うことができる。1つまたは複数のリーディングピクチャの第2のセットは、1つまたは複数のリーディングピクチャの第2のセットがTemporalIdしきい値よりも大きいTemporalIdを有することに基づいて、1つまたは複数のRASLピクチャとしてコーディングされる。プロセッサは、ビデオビットストリームを生成するようにさらに構成されるとともに、それを行うことができ、ビデオビットストリームは、IRAPピクチャ、1つまたは複数のリーディングピクチャの第1のセット、および1つまたは複数のリーディングピクチャの第2のセットを含む。
【００１１】
別の例では、プロセッサによって実行されたとき、方法を実行する命令を記憶したコンピュータ可読媒体が提供され、方法は、エンコーダにおいてビデオデータを取得することと、イントラランダムアクセスポイント(IRAP)ピクチャをビデオデータから決定することと、IRAPピクチャに関連する1つまたは複数のリーディングピクチャの第1のセットを、ランダムアクセス復号可能リーディング(RADL)ピクチャとしてコーディングすることであって、1つまたは複数のリーディングピクチャの第1のセットが、1つまたは複数のリーディングピクチャの第1のセットがTemporalIdしきい値以下の時間識別子(TemporalId)を有することに基づいて、1つまたは複数のRADLピクチャとしてコーディングされる、コーディングすることと、IRAPピクチャに関連する1つまたは複数のリーディングピクチャの第2のセットを、ランダムアクセススキップドリーディング(RASL)ピクチャとしてコーディングすることであって、1つまたは複数のリーディングピクチャの第2のセットが、1つまたは複数のリーディングピクチャの第2のセットがTemporalIdしきい値よりも大きいTemporalIdを有することに基づいて、1つまたは複数のRASLピクチャとしてコーディングされる、コーディングすることと、ビデオビットストリームを生成することであって、ビデオビットストリームが、IRAPピクチャ、1つまたは複数のリーディングピクチャの第1のセット、および1つまたは複数のリーディングピクチャの第2のセットを含む、生成することとを含む。
【００１２】
別の例では、手段を含む装置が提供される。装置は、エンコーダにおいてビデオデータを取得するための手段と、イントラランダムアクセスポイント(IRAP)ピクチャをビデオデータから決定するための手段とをさらに備える。装置は、IRAPピクチャに関連する1つまたは複数のリーディングピクチャの第1のセットを、ランダムアクセス復号可能リーディング(RADL)ピクチャとしてコーディングするための手段をさらに備える。1つまたは複数のリーディングピクチャの第1のセットは、1つまたは複数のリーディングピクチャの第1のセットがTemporalIdしきい値以下の時間識別子(TemporalId)を有することに基づいて、1つまたは複数のRADLピクチャとしてコーディングされる。装置は、IRAPピクチャに関連する1つまたは複数のリーディングピクチャの第2のセットを、ランダムアクセススキップドリーディング(RASL)ピクチャとしてコーディングするための手段をさらに備える。1つまたは複数のリーディングピクチャの第2のセットは、1つまたは複数のリーディングピクチャの第2のセットがTemporalIdしきい値よりも大きいTemporalIdを有することに基づいて、1つまたは複数のRASLピクチャとしてコーディングされる。装置は、ビデオビットストリームを生成するための手段をさらに備え、ビデオビットストリームは、IRAPピクチャ、1つまたは複数のリーディングピクチャの第1のセット、および1つまたは複数のリーディングピクチャの第2のセットを含む。
【００１３】
いくつかの態様では、IRAPピクチャはクリーンランダムアクセス(CRA)ピクチャである。いくつかの態様では、IRAPピクチャは、現在ビデオコーディング規格において定義されていない新たなランダムアクセスピクチャである。
【００１４】
いくつかの態様では、上記で説明したビデオデータを符号化するための方法、装置、およびコンピュータ可読媒体は、1つまたは複数のリーディングピクチャの第1のセットおよび1つまたは複数のリーディングピクチャの第2のセットを、第1のセットおよび第2のセットの中の各リーディングピクチャのTemporalIdによる出力順序で配列することをさらに備えてよく、第1のセットの1つまたは複数のRADLピクチャは、第2のセットの1つまたは複数のRASLピクチャよりも小さいTemporalIdを有する。
【００１５】
いくつかの態様では、上記で説明したビデオデータを符号化するための方法、装置、およびコンピュータ可読媒体は、1つまたは複数のリーディングピクチャの第1のセットおよび1つまたは複数のリーディングピクチャの第2のセットを、交互の出力順序で配列することをさらに備えてよい。
【００１６】
いくつかの態様では、ビデオデータはビデオ表現の一部である。そのような態様では、IRAPピクチャにおいてビデオ表現へのスイッチングが行われるとき、1つまたは複数のRASLピクチャが廃棄され、1つまたは複数のRASLピクチャが廃棄されるとき、ビデオ表現は、1つまたは複数の時間サブレイヤの縮小セットを使用して出力される。いくつかの例では、IRAPピクチャに関連する1つまたは複数のトレーリングピクチャが復号されるとき、ビデオ表現は、時間サブレイヤの拡大セットを使用して出力される。
【００１７】
いくつかの態様では、TemporalIdしきい値以下のTemporalIdを有する1つまたは複数のリーディングピクチャの第1のセットは、復号順序においてIRAPピクチャよりも前のピクチャに依存せず、復号順序においてIRAPピクチャよりも前のピクチャを参照することなく復号可能である。
【００１８】
いくつかの態様では、TemporalIdしきい値よりも大きいTemporalIdを有する1つまたは複数のリーディングピクチャの第2のセットの1つまたは複数のRASLピクチャは、復号順序においてIRAPピクチャよりも前のピクチャに依存する。
【００１９】
いくつかの態様では、上記で説明したビデオデータを符号化するための方法、装置、およびコンピュータ可読媒体は、TemporalIdしきい値をビデオビットストリームの中でシグナリングすることをさらに備えてよい。
【００２０】
いくつかの態様では、TemporalIdしきい値以下のTemporalIdを有する1つまたは複数のリーディングピクチャの第1のセットは、IRAPピクチャに関連する1つまたは複数のトレーリングピクチャに対するインター予測用の参照として使用可能である。いくつかの例では、上記で説明したビデオデータを符号化するための方法、装置、およびコンピュータ可読媒体は、1つまたは複数のリーディングピクチャの第1のセットを1つまたは複数のトレーリングピクチャがインター予測用の参照として使用することを許容するIRAPピクチャとして、IRAPピクチャを識別する識別情報をビデオビットストリームの中でシグナリングすることをさらに備えてよい。いくつかの例では、識別情報は、瞬時復号リフレッシュ(IDR)タイプ、クリーンランダムアクセス(CRA)タイプ、およびブロークンリンクアクセス(BLA)タイプ以外の、IRAPピクチャのためのネットワークアブストラクションレイヤ(NAL)ユニットタイプを含む。いくつかの態様では、上記で説明したビデオデータを符号化するための方法、装置、およびコンピュータ可読媒体は、1つまたは複数のトレーリングピクチャの各々に対するTemporalIdあるいは1つまたは複数のトレーリングピクチャの基数のうちの少なくとも1つまたは複数をシグナリングすることをさらに備えてよく、1つまたは複数のトレーリングピクチャは、1つまたは複数のトレーリングピクチャの各々のTemporalIdによる出力順序で配列される。いくつかの態様では、1つまたは複数のトレーリングピクチャの各々に対するTemporalIdあるいは1つまたは複数のトレーリングピクチャの基数は、IRAPピクチャのヘッダの中またはパラメータセットの中でシグナリングされる。いくつかの態様では、上記で説明したビデオデータを符号化するための方法、装置、およびコンピュータ可読媒体は、NALユニットタイプを使用して1つまたは複数のトレーリングピクチャの識別情報をシグナリングすることをさらに備えてよい。
【００２１】
いくつかの態様では、TemporalIdしきい値よりも大きいTemporalIdを有する1つまたは複数のリーディングピクチャの第2のセットは、IRAPピクチャに関連する1つまたは複数のトレーリングピクチャに対するインター予測用の参照として使用可能である。いくつかの例では、上記で説明したビデオデータを符号化するための方法、装置、およびコンピュータ可読媒体は、1つまたは複数のリーディングピクチャの第2のセットを1つまたは複数のトレーリングピクチャがインター予測用の参照として使用することを許容するIRAPピクチャとして、IRAPピクチャを識別する識別情報をビデオビットストリームの中でシグナリングすることをさらに備えてよい。いくつかの態様では、上記で説明したビデオデータを符号化するための方法、装置、およびコンピュータ可読媒体は、1つまたは複数のトレーリングピクチャの各々に対するTemporalIdあるいは1つまたは複数のトレーリングピクチャの基数のうちの少なくとも1つまたは複数をシグナリングすることをさらに備えてよく、1つまたは複数のトレーリングピクチャは、1つまたは複数のトレーリングピクチャの各々のTemporalIdによる出力順序で配列される。いくつかの態様では、1つまたは複数のトレーリングピクチャの各々に対するTemporalIdあるいは1つまたは複数のトレーリングピクチャの基数は、IRAPピクチャのヘッダの中またはパラメータセットの中でシグナリングされる。いくつかの態様では、上記で説明したビデオデータを符号化するための方法、装置、およびコンピュータ可読媒体は、NALユニットタイプを使用して1つまたは複数のトレーリングピクチャの識別情報をシグナリングすることをさらに備えてよい。
【００２２】
いくつかの態様では、出力順序と復号順序の両方においてIRAPピクチャに先行するピクチャのセットは、IRAPピクチャに関連する1つまたは複数のトレーリングピクチャに対するインター予測用の参照として使用可能である。いくつかの例では、上記で説明したビデオデータを符号化するための方法、装置、およびコンピュータ可読媒体は、ピクチャのセットを1つまたは複数のトレーリングピクチャがインター予測用の参照として使用することを許容するIRAPピクチャとして、IRAPピクチャを識別する識別情報をビデオビットストリームの中でシグナリングすることをさらに備えてよい。いくつかの態様では、上記で説明したビデオデータを符号化するための方法、装置、およびコンピュータ可読媒体は、1つまたは複数のトレーリングピクチャの各々に対するTemporalIdあるいは1つまたは複数のトレーリングピクチャの基数のうちの少なくとも1つまたは複数をシグナリングすることをさらに備えてよく、1つまたは複数のトレーリングピクチャは、1つまたは複数のトレーリングピクチャの各々のTemporalIdによる出力順序で配列される。いくつかの態様では、1つまたは複数のトレーリングピクチャの各々に対するTemporalIdあるいは1つまたは複数のトレーリングピクチャの基数は、IRAPピクチャのヘッダの中またはパラメータセットの中でシグナリングされる。いくつかの態様では、上記で説明したビデオデータを符号化するための方法、装置、およびコンピュータ可読媒体は、NALユニットタイプを使用して1つまたは複数のトレーリングピクチャの識別情報をシグナリングすることをさらに備えてよい。
【００２３】
少なくとも1つの他の例によれば、ビデオデータを取得するために符号化ビデオビットストリームを復号する方法が提供され、方法は、符号化ビデオビットストリームにアクセスすることを備える。符号化ビデオビットストリームは、イントラランダムアクセスポイント(IRAP)ピクチャ、TemporalIdしきい値以下の時間識別子(TemporalId)を有する1つまたは複数のランダムアクセス復号可能リーディング(RADL)ピクチャのセット、およびTemporalIdしきい値よりも大きいTemporalIdを有する1つまたは複数のランダムアクセススキップドリーディング(RASL)ピクチャのセットを含む。方法は、ビデオデータを取得するために符号化ビデオビットストリームを復号することをさらに備える。
【００２４】
別の例では、ビデオデータを記憶するように構成されたメモリとプロセッサとを含む装置が提供される。プロセッサは、符号化ビデオビットストリームにアクセスするように構成されるとともに、それを行うことができる。符号化ビデオビットストリームは、イントラランダムアクセスポイント(IRAP)ピクチャ、TemporalIdしきい値以下の時間識別子(TemporalId)を有する1つまたは複数のランダムアクセス復号可能リーディング(RADL)ピクチャのセット、およびTemporalIdしきい値よりも大きいTemporalIdを有する1つまたは複数のランダムアクセススキップドリーディング(RASL)ピクチャのセットを含む。プロセッサは、ビデオデータを取得するために符号化ビデオビットストリームを復号するようにさらに構成されるとともに、それを行うことができる。
【００２５】
別の例では、プロセッサによって実行されたとき、方法を実行する命令を記憶したコンピュータ可読媒体が提供され、方法は、符号化ビデオビットストリームにアクセスすることであって、符号化ビデオビットストリームが、イントラランダムアクセスポイント(IRAP)ピクチャ、TemporalIdしきい値以下の時間識別子(TemporalId)を有する1つまたは複数のランダムアクセス復号可能リーディング(RADL)ピクチャのセット、およびTemporalIdしきい値よりも大きいTemporalIdを有する1つまたは複数のランダムアクセススキップドリーディング(RASL)ピクチャのセットを含む、アクセスすることと、ビデオデータを取得するために符号化ビデオビットストリームを復号することとを含む。
【００２６】
別の例では、符号化ビデオビットストリームにアクセスするための手段を含む装置が提供される。符号化ビデオビットストリームは、イントラランダムアクセスポイント(IRAP)ピクチャ、TemporalIdしきい値以下の時間識別子(TemporalId)を有する1つまたは複数のランダムアクセス復号可能リーディング(RADL)ピクチャのセット、およびTemporalIdしきい値よりも大きいTemporalIdを有する1つまたは複数のランダムアクセススキップドリーディング(RASL)ピクチャのセットを含む。装置は、ビデオデータを取得するために符号化ビデオビットストリームを復号するための手段をさらに備える。
【００２７】
いくつかの態様では、IRAPピクチャはクリーンランダムアクセス(CRA)ピクチャである。
【００２８】
いくつかの態様では、1つまたは複数のRADLピクチャのセットおよび1つまたは複数のRASLピクチャのセットは、1つまたは複数のRADLピクチャおよび1つまたは複数のRADLピクチャの時間識別子による出力順序で配列され、1つまたは複数のRADLピクチャは、1つまたは複数のRASLピクチャよりも小さいTemporalIdを有する。
【００２９】
いくつかの態様では、1つまたは複数のRADLピクチャのセットおよび1つまたは複数のRASLピクチャのセットは、交互の出力順序で配列される。
【００３０】
いくつかの態様では、ビデオデータはビデオ表現の一部である。そのような態様では、上記で説明した符号化ビデオビットストリームを復号するための方法、装置、およびコンピュータ可読媒体は、IRAPピクチャにおいてビデオ表現にスイッチングすることと、1つまたは複数のRASLピクチャのセットを廃棄することと、1つまたは複数のRASLピクチャのセットが廃棄されるとき、1つまたは複数の時間サブレイヤの縮小セットを使用してビデオ表現を出力することとをさらに備えてよい。いくつかの態様では、上記で説明した符号化ビデオビットストリームを復号するための方法、装置、およびコンピュータ可読媒体は、IRAPピクチャに関連する1つまたは複数のトレーリングピクチャを復号することと、1つまたは複数のトレーリングピクチャが復号されるとき、時間サブレイヤの拡大セットを使用してビデオ表現を出力することとをさらに備えてよい。
【００３１】
いくつかの態様では、上記で説明した符号化ビデオビットストリームを復号するための方法、装置、およびコンピュータ可読媒体は、復号順序においてIRAPピクチャよりも前のピクチャを参照することなく、インター予測を使用して1つまたは複数のRADLピクチャのセットを復号することであって、1つまたは複数のRADLピクチャのセットが、復号順序においてIRAPピクチャよりも前のピクチャに依存しない、復号することをさらに備えてよい。
【００３２】
いくつかの態様では、上記で説明した符号化ビデオビットストリームを復号するための方法、装置、およびコンピュータ可読媒体は、復号順序においてIRAPピクチャよりも前のピクチャを参照することによって、インター予測を使用して1つまたは複数のRASLピクチャのセットを復号することをさらに備えてよい。
【００３３】
いくつかの態様では、上記で説明した符号化ビデオビットストリームを復号するための方法、装置、およびコンピュータ可読媒体は、復号順序においてIRAPピクチャよりも前のピクチャがインター予測用の参照として利用可能でないと決定することと、1つまたは複数のRASLピクチャのセットを廃棄することとをさらに備えてよい。
【００３４】
いくつかの態様では、上記で説明した符号化ビデオビットストリームを復号するための方法、装置、およびコンピュータ可読媒体は、RADLピクチャのうちの少なくとも1つを参照として使用して、IRAPピクチャに関連する1つまたは複数のトレーリングピクチャのインター予測を実行することをさらに備えてよい。
【００３５】
いくつかの態様では、上記で説明した符号化ビデオビットストリームを復号するための方法、装置、およびコンピュータ可読媒体は、RASLピクチャのうちの少なくとも1つを参照として使用して、IRAPピクチャに関連する1つまたは複数のトレーリングピクチャのインター予測を実行することをさらに備えてよい。
【００３６】
いくつかの態様では、上記で説明した符号化ビデオビットストリームを復号するための方法、装置、およびコンピュータ可読媒体は、出力順序と復号順序の両方においてIRAPピクチャに先行するピクチャのセットを使用して、IRAPピクチャに関連する1つまたは複数のトレーリングピクチャのインター予測を実行することをさらに備えてよい。
【００３７】
本概要は、特許請求される主題の主要または不可欠な特徴を識別するものでなく、特許請求される主題の範囲を決定するために独立して使用されるものでもない。主題は、本特許の明細書全体、いずれかまたはすべての図面、および各請求項の適切な部分への参照によって理解されるべきである。
【００３８】
上記のことは、他の特徴および実施形態とともに、以下の明細書、特許請求の範囲、および添付図面を参照するとより明らかになろう。
【００３９】
本発明の例示的な実施形態が、以下の図面を参照しながら以下で詳細に説明される。
【図面の簡単な説明】
【００４０】
【図１】いくつかの例による符号化デバイスおよび復号デバイスの一例を示すブロック図である。
【図２】いくつかの例による、クローズドピクチャグループ(GOP)構造におけるピクチャの一例を示す図である。
【図３】いくつかの例による、オープンGOP構造におけるピクチャの一例を示す図である。
【図４】いくつかの例による、符号化ビデオビットストリームのピクチャの一例を示す図である。
【図５】いくつかの例による、表現の間でのスイッチングの一例を示す図である。
【図６】いくつかの例による、ビデオデータを符号化するプロセスの一例を示す図である。
【図７】いくつかの例による、符号化ビデオビットストリームを復号するプロセスの一例を示す図である。
【図８】いくつかの例による、例示的なビデオ符号化デバイスを示すブロック図である。
【図９】いくつかの例による、例示的なビデオ復号デバイスを示すブロック図である。
【発明を実施するための形態】
【００４１】
本開示のいくつかの態様および実施形態が以下に提供される。当業者に明らかになるように、これらの態様および実施形態のうちのいくつかは独立に適用されてよく、それらのうちのいくつかは組み合わせて適用されてよい。以下の説明では、説明の目的で、本発明の実施形態の完全な理解をもたらすように具体的な詳細が説明される。しかしながら、様々な実施形態がこれらの具体的な詳細なしに実践され得ることは明らかであろう。図および説明は限定的であることを意図しない。
【００４２】
以下の説明は、例示的な実施形態のみを提供し、本開示の範囲、適用性、または構成を限定することを意図しない。むしろ、例示的な実施形態の以下の説明は、例示的な実施形態を実施することを可能にする説明を当業者に提供する。添付の特許請求の範囲に記載したような本発明の趣旨および範囲から逸脱することなく、様々な変更が要素の機能および構成に加えられ得ることを理解されたい。
【００４３】
本実施形態の十分な理解をもたらすために、以下の説明において具体的な詳細が与えられる。しかしながら、本実施形態がこれらの具体的な詳細なしに実践され得ることが当業者によって理解されよう。たとえば、不必要な詳細で本実施形態を不明瞭にしないように、回路、システム、ネットワーク、プロセス、および他の構成要素はブロック図の形態で構成要素として示されることがある。他の事例では、本実施形態を不明瞭にすることを避けるために、よく知られている回路、プロセス、アルゴリズム、構造、および技法は、不必要な詳細なしに示されることがある。
【００４４】
また、個々の実施形態がフローチャート、フロー図、データフロー図、構造図、またはブロック図として示されるプロセスとして説明され得ることに留意されたい。フローチャートは逐次プロセスとして動作を説明することがあるが、動作の多くは並列または同時に実行され得る。加えて、動作の順序は並べ替えられてよい。プロセスは、その動作が完了するときに終了するが、図に含まれない追加のステップを有することができる。プロセスは、方法、機能、プロシージャ、サブルーチン、サブプログラムなどに相当し得る。プロセスが関数に相当するとき、その終了は、その関数が呼出し関数またはメイン関数に戻ることに相当し得る。
【００４５】
「コンピュータ可読媒体」という用語は、限定はしないが、ポータブルまたは非ポータブルの記憶デバイス、光記憶デバイス、ならびに命令および/またはデータを記憶、包含、または搬送することができる様々な他の媒体を含む。コンピュータ可読媒体は、データがそこに記憶され得るとともに、ワイヤレスに、または有線接続を介して伝搬する搬送波および/または一時的な電子信号を含まない、非一時的媒体を含み得る。非一時的媒体の例は、限定はしないが、磁気ディスクもしくは磁気テープ、コンパクトディスク(CD)もしくはデジタル多用途ディスク(DVD)などの光記憶媒体、フラッシュメモリ、メモリ、またはメモリデバイスを含み得る。コンピュータ可読媒体は、プロシージャ、関数、サブプログラム、プログラム、ルーチン、サブルーチン、モジュール、ソフトウェアパッケージ、クラス、または命令、データ構造、もしくはプログラムステートメントの任意の組合せを表し得る、その上に記憶されたコードおよび/または機械実行可能命令を有し得る。コードセグメントは、情報、データ、引数、パラメータ、またはメモリ内容を渡すことおよび/または受けることによって、別のコードセグメントまたはハードウェア回路に結合され得る。情報、引数、パラメータ、データなどは、メモリ共有、メッセージパッシング、トークンパッシング、ネットワーク送信などを含む、任意の適切な手段を介して渡されてよく、転送されてよく、または送信されてよい。
【００４６】
さらに、実施形態は、ハードウェア、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、ハードウェア記述言語、またはこれらの任意の組合せによって実装されてよい。ソフトウェア、ファームウェア、ミドルウェア、またはマイクロコードで実装されるとき、必要なタスクを実行するためのプログラムコードまたはコードセグメント(たとえば、コンピュータプログラム製品)は、コンピュータ可読媒体または機械可読媒体に記憶され得る。プロセッサは、必要なタスクを実行し得る。
【００４７】
より多くのデバイスおよびシステムが、デジタルビデオデータを消費するための能力を消費者に提供するので、効率的なビデオコーディング技法に対する必要がより重要となっている。デジタルビデオデータの中に存在する大量のデータを処理するのに必要な記憶要件および送信要件を低減するために、ビデオコーディングが必要とされる。高いビデオ品質を維持しながらより低いビットレートを使用する形態にビデオデータを圧縮するために、様々なビデオコーディング技法が使用され得る。
【００４８】
ビデオエンコーダ、デコーダ、および他のコーディング処理デバイスを使用するビデオコーディングのいくつかのシステムおよび方法が、本明細書で説明される。いくつかの例では、改善されたビデオストリームスイッチングおよびランダムアクセスを提供するための、ビデオコーディングの1つまたは複数のシステムおよび方法が説明される。たとえば、現在指定されているランダムアクセスポイントピクチャ(たとえば、CRAピクチャまたはBLAピクチャなどの、オープンGOP IRAPピクチャ)は、そのようなランダムアクセスポイントピクチャに関連するリーディングピクチャがピクチャの時間識別子に基づいてRASLピクチャまたはRADLピクチャとして設定されるように再定義され得る。別の例では、新たなタイプのランダムアクセスポイントピクチャが、復号順序においてランダムアクセスポイントピクチャに後続するピクチャがそれらの時間識別子に従ってRASLピクチャおよびRADLピクチャと類似の特性を用いて設定されるように定義される。そのようなシステムおよび方法の詳細が、以下でさらに詳細に説明される。
【００４９】
図1は、符号化デバイス104および復号デバイス112を含むシステム100の一例を示すブロック図である。符号化デバイス104はソースデバイスの一部であってよく、復号デバイス112は受信デバイスの一部であってよい。ソースデバイスおよび/または受信デバイスは、モバイルもしくは固定の電話ハンドセット(たとえば、スマートフォン、セルラー電話など)、デスクトップコンピュータ、ラップトップもしくはノートブックコンピュータ、タブレットコンピュータ、セットトップボックス、テレビジョン、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲームコンソール、ビデオストリーミングデバイス、インターネットプロトコル(IP)カメラ、または任意の他の適切な電子デバイスなどの、電子デバイスを含み得る。いくつかの例では、ソースデバイスおよび受信デバイスは、ワイヤレス通信用の1つまたは複数のワイヤレストランシーバを含み得る。本明細書で説明するコーディング技法は、(たとえば、インターネットを介した)ストリーミングビデオ送信、テレビジョン放送もしくは送信、データ記憶媒体に記憶するためのデジタルビデオの符号化、データ記憶媒体に記憶されたデジタルビデオの復号、または他の適用例を含む、様々なマルチメディア用途におけるビデオコーディングに適用可能である。いくつかの例では、システム100は、ビデオ会議、ビデオストリーミング、ビデオ再生、ビデオブロードキャスティング、ゲーミング、および/またはビデオ電話などの適用例をサポートするために、一方向または双方向のビデオ送信をサポートすることができる。
【００５０】
符号化デバイス104(または、エンコーダ)は、符号化ビデオビットストリームを生成するためにビデオコーディング規格またはプロトコルを使用してビデオデータを符号化するために使用され得る。ビデオコーディング規格は、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、ならびにそのスケーラブルビデオコーディング(SVC:Scalable Video Coding)拡張およびマルチビュービデオコーディング(MVC:Multiview Video Coding)拡張を含むITU-T H.264(ISO/IEC MPEG-4 AVCとも呼ばれる)を含む。より最近のビデオコーディング規格、すなわち高効率ビデオコーディング(HEVC)が、ITU-Tビデオコーディングエキスパートグループ(VCEG:Video Coding Experts Group)とISO/IECムービングピクチャエキスパートグループ(MPEG)とのビデオコーディング共同研究部会(JCT-VC)によって確定された。MV-HEVCと呼ばれるHEVCのマルチビュー拡張、およびSHVCと呼ばれるHEVCのスケーラブル拡張、または任意の他の適切なコーディングプロトコルを含むHEVCの様々な拡張が、マルチレイヤビデオコーディングを扱い、同様にJCT-VCによって開発されている。
【００５１】
本明細書で説明する多くの実施形態が、HEVC規格またはそれの拡張を使用する例を説明する。しかしながら、本明細書で説明する技法およびシステムはまた、AVC、MPEG、それらの拡張、あるいはすでに利用可能であるかまたはまだ利用可能もしくは開発済みでない他の適切なコーディング規格などの、他のコーディング規格に適用可能であり得る。したがって、本明細書で説明する技法およびシステムは特定のビデオコーディング規格を参照しながら説明され得るが、説明がその特定の規格だけに適用されるものと解釈されるべきでないことを当業者なら諒解されよう。
【００５２】
図1を参照すると、ビデオソース102は、符号化デバイス104にビデオデータを提供し得る。ビデオソース102は、ソースデバイスの一部であってよく、またはソースデバイス以外のデバイスの一部であってもよい。ビデオソース102は、ビデオキャプチャデバイス(たとえば、ビデオカメラ、カメラ付き携帯電話、ビデオ付き携帯電話など)、記憶されたビデオを含むビデオアーカイブ、ビデオデータを提供するビデオサーバもしくはコンテンツプロバイダ、ビデオサーバもしくはコンテンツプロバイダからビデオを受信するビデオフィードインターフェース、コンピュータグラフィックスビデオデータを生成するためのコンピュータグラフィックスシステム、そのようなソースの組合せ、または任意の他の適切なビデオソースを含み得る。
【００５３】
ビデオソース102からのビデオデータは、1つまたは複数の入力ピクチャまたは入力フレームを含み得る。ピクチャまたはフレームは、ビデオの一部である静止画像である。符号化デバイス104のエンコーダエンジン106(または、エンコーダ)は、ビデオデータを符号化して符号化ビデオビットストリームを生成する。いくつかの例では、符号化ビデオビットストリーム(または、「ビデオビットストリーム」もしくは「ビットストリーム」)は、一連の1つまたは複数のコード化ビデオシーケンスである。コード化ビデオシーケンス(CVS:coded video sequence)は、ベースレイヤの中でいくつかの特性を伴うランダムアクセスポイントピクチャを有するアクセスユニット(AU:access unit)で開始し、ベースレイヤの中でいくつかの特性を伴うランダムアクセスポイントピクチャを有する次のAUの直前までの、一連のAUを含む。たとえば、CVSを開始するランダムアクセスポイントピクチャのいくつかの特性は、1に等しいRASLフラグ(たとえば、NoRaslOutputFlag)を含み得る。そうでない場合、ランダムアクセスポイントピクチャ(0に等しいRASLフラグを有する)はCVSを開始しない。アクセスユニット(AU)は、1つまたは複数のコード化ピクチャ、および同じ出力時間を共有するコード化ピクチャに対応する制御情報を含む。ピクチャのコード化スライスは、ビットストリームレベルで、ネットワークアブストラクションレイヤ(NAL:network abstraction layer)ユニットと呼ばれるデータ単位の中にカプセル化される。たとえば、HEVCビデオビットストリームは、NALユニットを含む1つまたは複数のCVSを含み得る。NALユニットの各々は、NALユニットヘッダを有する。一例では、ヘッダは、H.264/AVCに対して1バイト(マルチレイヤ拡張を除いて)、HEVCに対して2バイトである。NALユニットヘッダの中のシンタックス要素は、指定されたビットを取り、したがって、すべての種類のシステム、および特にトランスポートストリーム、リアルタイムトランスポート(RTP)プロトコル、ファイルフォーマットなどのトランスポートレイヤにとって認識できる。
【００５４】
ビデオコーディングレイヤ(VCL)NALユニットおよび非VCL NALユニットを含む、NALユニットの2つのクラスがHEVC規格に存在する。VCL NALユニットは、コード化ピクチャデータの1つのスライスまたはスライスセグメント(以下で説明する)を含み、非VCL NALユニットは、1つまたは複数のコード化ピクチャに関係する制御情報を含む。場合によっては、NALユニットはパケットと呼ばれることがある。HEVC AUは、コード化ピクチャデータを含むVCL NALユニット、および(もしあれば)コード化ピクチャデータに対応する非VCL NALユニットを含む。
【００５５】
NALユニットは、ビデオの中のピクチャのコード化表現などの、ビデオデータのコード化表現(たとえば、符号化ビデオビットストリーム、ビットストリームのCVSなど)を形成するビットのシーケンスを含み得る。エンコーダエンジン106は、各ピクチャを複数のスライスに区分することによって、ピクチャのコード化表現を生成する。スライスの中の情報が、同じピクチャ内の他のスライスからのデータに依存することなくコーディングされるように、スライスは他のスライスとは無関係である。スライスは、独立したスライスセグメント、および存在する場合、前のスライスセグメントに依存する1つまたは複数の従属したスライスセグメントを含む、1つまたは複数のスライスセグメントを含む。スライスは、次いで、ルーマサンプルおよびクロマサンプルのコーディングツリーブロック(CTB:coding tree block)に区分される。ルーマサンプルのCTB、およびクロマサンプルの1つまたは複数のCTBは、サンプル用のシンタックスとともにコーディングツリーユニット(CTU:coding tree unit)と呼ばれる。CTUは、HEVC符号化のための基本処理ユニットである。CTUは、様々なサイズの複数のコーディングユニット(CU:coding unit)に分割され得る。CUは、コーディングブロック(CB:coding block)と呼ばれるルーマサンプルアレイおよびクロマサンプルアレイを含む。
【００５６】
ルーマCBおよびクロマCBは、予測ブロック(PB:prediction block)にさらに分割され得る。PBは、(使用のために利用可能または有効にされているとき)インター予測またはイントラブロックコピー予測のために同じ動きパラメータを使用するルーマ成分またはクロマ成分のサンプルのブロックである。ルーマPBおよび1つまたは複数のクロマPBは、関連するシンタックスとともに予測ユニット(PU:prediction unit)を形成する。インター予測の場合、動きパラメータのセット(たとえば、1つまたは複数の動きベクトル、参照インデックスなど)は、PUごとにビットストリームの中でシグナリングされ、ルーマPBおよび1つまたは複数のクロマPBのインター予測のために使用される。イントラブロックコピー予測の場合、動きパラメータのセット(たとえば、1つまたは複数のブロックベクトルなど)も、PUごとにシグナリングされ得、イントラブロックコピー予測のために使用され得る。CBはまた、1つまたは複数の変換ブロック(TB:transform block)に区分され得る。TBは、予測残差信号をコーディングするために同じ2次元変換がそこに適用される、色成分のサンプルの正方形ブロックを表す。変換ユニット(TU:transform unit)は、ルーマサンプルおよびクロマサンプルのTB、ならびに対応するシンタックス要素を表す。
【００５７】
CUのサイズは、コーディングモードのサイズに対応し、形状が正方形であり得る。たとえば、CUのサイズは、8×8サンプル、16×16サンプル、32×32サンプル、64×64サンプル、または対応するCTUのサイズまでの任意の他の適切なサイズであってよい。本明細書では、「N×N」という句は、垂直寸法および水平寸法に関してビデオブロックのピクセル寸法(たとえば、8ピクセル×8ピクセル)を指すために使用される。ブロックの中のピクセルは、行および列をなして配置されてよい。いくつかの実施形態では、ブロックは、水平方向において垂直方向と同じ数のピクセルを有しなくてよい。CUに関連するシンタックスデータは、たとえば、1つまたは複数のPUへのCUの区分を記述し得る。区分モードは、CUがイントラ予測モード符号化されるのか、それともインター予測モード符号化されるのかの間で異なり得る。PUは、形状が非正方形であるように区分されてよい。CUに関連するシンタックスデータはまた、たとえば、CTUによる1つまたは複数のTUへのCUの区分を記述し得る。TUは、形状が正方形または非正方形であってよい。
【００５８】
HEVC規格によれば、変換は、変換ユニット(TU)を使用して実行され得る。TUは、異なるCUに対して異なってよい。TUは、所与のCU内のPUのサイズに基づいてサイズ決定され得る。TUは、同じサイズであってよく、またはPUより小さくてよい。いくつかの例では、CUに対応する残差サンプルは、残差4分木(RQT:residual quad tree)と呼ばれる4分木構造を使用して、より小さいユニットに再分割され得る。RQTのリーフノードは、TUに対応し得る。TUに関連するピクセル差分値は、変換係数を生成するように変換され得る。変換係数は、次いで、エンコーダエンジン106によって量子化され得る。
【００５９】
ビデオデータのピクチャがCUに区分されると、エンコーダエンジン106は、予測モードを使用して各PUを予測する。予測ユニットまたは予測ブロックは、次いで、残差(以下で説明する)を得るために元のビデオデータから減算される。CUごとに、予測モードが、シンタックスデータを使用してビットストリームの内部でシグナリングされ得る。予測モードは、イントラ予測(または、イントラピクチャ予測)またはインター予測(または、インターピクチャ予測)を含み得る。イントラ予測を使用すると、たとえば、PUにとっての平均値を見つけるためのDC予測、平坦面をPUに適合させるための平面予測、隣接データから外挿するための方向予測、または任意の他の適切なタイプの予測を使用して、同じピクチャの中の隣接画像データから各PUが予測される。インター予測を使用すると、1つまたは複数の(出力順序において現在ピクチャの前または後の)参照ピクチャの中の画像データからの動き補償予測を使用して、各PUが予測される。ピクチャエリアを、インターピクチャ予測を使用してコーディングすべきか、それともイントラピクチャ予測を使用してコーディングすべきかという決定は、たとえば、CUレベルにおいて行われ得る。
【００６０】
いくつかの例では、ピクチャの1つまたは複数のスライスは、スライスタイプが割り当てられる。スライスタイプは、Iスライス、Pスライス、およびBスライスを含む。Iスライス(独立に復号可能なイントラフレーム)は、イントラ予測のみによってコーディングされているピクチャのスライスであり、したがって、Iスライスがスライスの任意の予測ユニットまたは予測ブロックを予測するのにフレーム内のデータしか必要としないので、独立に復号可能である。Pスライス(単方向予測フレーム)は、イントラ予測を用いて、かつ単方向インター予測を用いてコーディングされ得るピクチャのスライスである。Pスライス内の各予測ユニットまたは予測ブロックは、イントラ予測またはインター予測のいずれかを用いてコーディングされる。インター予測が適用されるとき、予測ユニットまたは予測ブロックは、1つの参照ピクチャのみによって予測され、したがって、参照サンプルは、1つのフレームの1つの参照領域だけからのものである。Bスライス(双方向予測フレーム)は、イントラ予測を用いて、かつインター予測(たとえば、双予測または単予測のいずれか)を用いてコーディングされ得るピクチャのスライスである。Bスライスの予測ユニットまたは予測ブロックは、2つの参照ピクチャから双方向に予測され得、ここで、各ピクチャは1つの参照領域に寄与し、2つの参照領域のサンプルセットが重み付けられて(たとえば、等しい重みを用いて、または異なる重みを用いて)、双方向予測ブロックの予測信号を生成する。上述のように、1つのピクチャのスライスは、独立にコーディングされる。場合によっては、ピクチャは、ただ1つのスライスとしてコーディングされ得る。
【００６１】
イントラピクチャ予測は、ピクチャ内で空間的に隣接するサンプル間の相関を利用する。インターピクチャ予測は、画像サンプルのブロックに対する動き補償予測を導出するために、ピクチャ間の時間的な相関を使用する。並進動きモデルを使用すると、前に復号されたピクチャ(参照ピクチャ)の中のブロックの位置は動きベクトル(Δx,Δy)によって示され、Δxが現在ブロックの位置に対する参照ブロックの水平変位を規定し、Δyが現在ブロックの位置に対する参照ブロックの垂直変位を規定する。場合によっては、動きベクトル(Δx,Δy)は、整数サンプル精度(整数精度とも呼ばれる)であり得、その場合、動きベクトルは、参照フレームの整数ペルグリッド(または、整数ピクセルサンプリンググリッド)を指す。場合によっては、動きベクトル(Δx,Δy)は、参照フレームの整数ペルグリッドに制約されることなくその下にある対象物の移動をより正確に取り込むために、分数サンプル精度(分数ペル精度または非整数精度とも呼ばれる)であり得る。動きベクトルの精度は、動きベクトルの量子化レベルによって表現され得る。たとえば、量子化レベルは、整数精度(たとえば、1ピクセル)または分数ペル精度(たとえば、1/4ピクセル、1/2ピクセル、または他のサブピクセル値)であってよい。対応する動きベクトルが分数サンプル精度を有するときの予測信号を導出するために、参照ピクチャに補間が適用される。たとえば、整数位置において利用可能なサンプルは、分数位置における値を推定するために(たとえば、1つまたは複数の補間フィルタを使用して)フィルタ処理され得る。前に復号された参照ピクチャは、参照ピクチャリストへの参照インデックス(refIdx)によって示される。動きベクトルおよび参照インデックスは、動きパラメータと呼ばれることがある。単予測および双予測を含む2種類のインターピクチャ予測が実行され得る。
【００６２】
双予測を使用するインター予測の場合、2つの動き補償予測を(同じ参照ピクチャから、または場合によっては異なる参照ピクチャから)生成するために、動きパラメータの2つのセット(Δ0,Δy0,refIdx0およびΔx1,Δy1,refIdx1)が使用される。たとえば、双予測を用いると、各予測ブロックは、2つの動き補償予測信号を使用し、B予測ユニットを生成する。2つの動き補償予測は、次いで、組み合わせられて最終の動き補償予測を得る。たとえば、2つの動き補償予測は、平均化によって組み合わせられてよい。別の例では、重み付き予測が使用されてよく、その場合、異なる重みが各動き補償予測に適用され得る。双予測において使用され得る参照ピクチャは、リスト0およびリスト1として示される2つの別個のリストの中に記憶される。動きパラメータは、エンコーダにおいて動き推定プロセスを使用して導出され得る。
【００６３】
単予測を使用するインター予測の場合、参照ピクチャから動き補償予測を生成するために、動きパラメータの1つのセット(Δx0,Δy0,refIdx0)が使用される。たとえば、単予測を用いると、各予測ブロックは、多くて1つの動き補償予測信号を使用し、P予測ユニットを生成する。
【００６４】
PUは、予測プロセスに関係するデータ(たとえば、動きパラメータまたは他の適切なデータ)を含み得る。たとえば、PUがイントラ予測を使用して符号化されるとき、PUは、PU用のイントラ予測モードを記述するデータを含み得る。別の例として、PUがインター予測を使用して符号化されるとき、PUは、PU用の動きベクトルを規定するデータを含み得る。PU用の動きベクトルを規定するデータは、たとえば、動きベクトルの水平成分(Δx)、動きベクトルの垂直成分(Δy)、動きベクトルに対する分解能(たとえば、整数精度、1/4ピクセル精度、または1/8ピクセル精度)、動きベクトルが指す参照ピクチャ、参照インデックス、動きベクトル用の参照ピクチャリスト(たとえば、リスト0、リスト1、またはリストC)、またはそれらの任意の組合せを記述し得る。
【００６５】
符号化デバイス104は、次いで、変換および量子化を実行し得る。たとえば、予測に続いて、エンコーダエンジン106は、PUに対応する残差値を計算し得る。残差値は、コーディングされているピクセルの現在ブロック(PU)と現在ブロックを予測するために使用される予測ブロック(たとえば、現在ブロックの予測されたバージョン)との間のピクセル差分値を備え得る。たとえば、予測ブロックを生成した(たとえば、インター予測またはイントラ予測を送出した)後、エンコーダエンジン106は、予測ユニットによって生成された予測ブロックを現在ブロックから減算することによって、残差ブロックを生成することができる。残差ブロックは、現在ブロックのピクセル値と予測ブロックのピクセル値との間の差分を数量化するピクセル差分値のセットを含む。いくつかの例では、残差ブロックは、2次元のブロックフォーマット(たとえば、ピクセル値の2次元行列または2次元アレイ)で表され得る。そのような例では、残差ブロックは、ピクセル値の2次元表現である。
【００６６】
予測が実行された後に残ることがある任意の残差データは、ブロック変換を使用して変換され、ブロック変換は、離散コサイン変換、離散サイン変換、整数変換、ウェーブレット変換、他の適切な変換関数、またはそれらの任意の組合せに基づき得る。場合によっては、1つまたは複数のブロック変換(たとえば、サイズ32×32、16×16、8×8、4×4、または他の適切なサイズ)が、各CUにおける残差データに適用され得る。いくつかの実施形態では、エンコーダエンジン106によって実施される変換プロセスおよび量子化プロセスのためにTUが使用されてよい。1つまたは複数のPUを有する所与のCUはまた、1つまたは複数のTUを含み得る。以下でさらに詳細に説明するように、残差値は、ブロック変換を使用して変換係数に変換され得、次いで、エントロピーコーディングのためのシリアル化変換係数を生成するために、TUを使用して量子化および走査され得る。
【００６７】
いくつかの実施形態では、CUのPUを使用するイントラ予測コーディングまたはインター予測コーディングに続いて、エンコーダエンジン106は、CUのTUに対する残差データを計算し得る。PUは、空間領域(すなわち、ピクセル領域)におけるピクセルデータを備え得る。TUは、ブロック変換を適用した後の、変換領域における係数を備え得る。前記のように、残差データは、符号化されていないピクチャのピクセルとPUに対応する予測値との間のピクセル差分値に相当し得る。エンコーダエンジン106は、CUに対する残差データを含むTUを形成し得、次いで、TUを変換してCUに対する変換係数を生成し得る。
【００６８】
エンコーダエンジン106は、変換係数の量子化を実行し得る。量子化は、変換係数を量子化することによってさらなる圧縮をもたらして、係数を表すために使用されるデータの量を低減する。たとえば、量子化は、係数の一部または全部に関連するビット深度を低減し得る。一例では、nビット値を有する係数は、量子化の間にmビット値に切り捨てられてよく、nはmよりも大きい。
【００６９】
量子化が実行されると、コード化ビデオビットストリームは、量子化変換係数、予測情報(たとえば、予測モード、動きベクトル、ブロックベクトルなど)、区分情報、および他のシンタックスデータなどの任意の他の適切なデータを含む。コード化ビデオビットストリームの様々な要素が、次いで、エンコーダエンジン106によってエントロピー符号化され得る。いくつかの例では、エンコーダエンジン106は、既定の走査順序を利用して量子化変換係数を走査して、エントロピー符号化され得るシリアル化ベクトルを生成し得る。いくつかの例では、エンコーダエンジン106は適応走査を実行し得る。量子化変換係数を走査してベクトル(たとえば、1次元ベクトル)を形成した後、エンコーダエンジン106は、ベクトルをエントロピー符号化し得る。たとえば、エンコーダエンジン106は、コンテキスト適応型可変長コーディング、コンテキスト適応型バイナリ算術コーディング、シンタックスベースコンテキスト適応型バイナリ算術コーディング、確率間隔区分エントロピーコーディング、または別の適切なエントロピー符号化技法を使用してよい。
【００７０】
符号化デバイス104の出力部110は、符号化ビデオビットストリームデータを構成するNALユニットを、通信リンク120を介して受信デバイスの復号デバイス112へ送り得る。復号デバイス112の入力部114は、NALユニットを受信し得る。通信リンク120は、ワイヤレスネットワーク、有線ネットワーク、または有線ネットワークとワイヤレスネットワークとの組合せによって設けられる、チャネルを含み得る。ワイヤレスネットワークは、任意のワイヤレスインターフェースまたはワイヤレスインターフェースの組合せを含んでよく、任意の適切なワイヤレスネットワーク(たとえば、インターネットまたは他のワイドエリアネットワーク、パケットベースネットワーク、WiFi(商標)、無線周波数(RF)、UWB、WiFi-Direct、セルラー、ロングタームエボリューション(LTE)、WiMax(商標)など)を含んでよい。有線ネットワークは、任意の有線インターフェース(たとえば、ファイバ、イーサネット(登録商標)、電力線イーサネット(登録商標)、同軸ケーブルを介したイーサネット(登録商標)、デジタル信号ライン(DSL)など)を含んでよい。有線ネットワークおよび/またはワイヤレスネットワークは、基地局、ルータ、アクセスポイント、ブリッジ、ゲートウェイ、スイッチなどの様々な機器を使用して実装され得る。符号化ビデオビットストリームデータは、ワイヤレス通信プロトコルなどの通信規格に従って変調されてよく、受信デバイスへ送信されてよい。
【００７１】
いくつかの例では、符号化デバイス104は、符号化ビデオビットストリームデータをストレージ108に記憶し得る。出力部110は、エンコーダエンジン106から、またはストレージ108から、符号化ビデオビットストリームデータを取り出し得る。ストレージ108は、分散されるかまたは局所的にアクセスされる様々なデータ記憶媒体のうちのいずれかを含み得る。たとえば、ストレージ108は、ハードドライブ、ストレージディスク、フラッシュメモリ、揮発性メモリもしくは不揮発性メモリ、または符号化ビデオデータを記憶するための任意の他の適切なデジタル記憶媒体を含み得る。
【００７２】
復号デバイス112の入力部114は、符号化ビデオビットストリームデータを受信し、デコーダエンジン116に、またはデコーダエンジン116によって後で使用できるようにストレージ118に、ビデオビットストリームデータを提供し得る。デコーダエンジン116は、エントロピー復号すること(たとえば、エントロピーデコーダを使用して)、および符号化ビデオデータを構成する1つまたは複数のコード化ビデオシーケンスの要素を抽出することによって、符号化ビデオビットストリームデータを復号し得る。デコーダエンジン116は、次いで、符号化ビデオビットストリームデータを再スケーリングし得、符号化ビデオビットストリームデータにおいて逆変換を実行し得る。残差データが、次いで、デコーダエンジン116の予測ステージに渡される。デコーダエンジン116は、次いで、ピクセルのブロック(たとえば、PU)を予測する。いくつかの例では、逆変換の出力(残差データ)に予測が加算される。
【００７３】
復号デバイス112は、復号ビデオをビデオ宛先デバイス122に出力し得、ビデオ宛先デバイス122は、復号ビデオデータをコンテンツの消費者に表示するためのディスプレイまたは他の出力デバイスを含み得る。いくつかの態様では、ビデオ宛先デバイス122は、復号デバイス112を含む受信デバイスの一部であってよい。いくつかの態様では、ビデオ宛先デバイス122は、受信デバイス以外の別個のデバイスの一部であってよい。
【００７４】
補足エンハンスメント情報(SEI:Supplemental Enhancement information)メッセージが、ビデオビットストリームの中に含まれ得る。たとえば、SEIメッセージは、復号デバイス112によってビットストリームを復号するために必須でない情報(たとえば、メタデータ)を搬送するために使用され得る。この情報は、復号された出力の表示または処理を改善する際に有用である(たとえば、そのような情報は、コンテンツの視認性を改善するためにデコーダ側エンティティによって使用され得る)。
【００７５】
いくつかの実施形態では、ビデオ符号化デバイス104および/またはビデオ復号デバイス112は、それぞれ、オーディオ符号化デバイスおよびオーディオ復号デバイスと統合されてよい。ビデオ符号化デバイス104および/またはビデオ復号デバイス112はまた、1つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、個別論理、ソフトウェア、ハードウェア、ファームウェア、またはそれらの任意の組合せなどの、上記で説明したコーディング技法を実施するために必要な他のハードウェアまたはソフトウェアを含んでよい。ビデオ符号化デバイス104およびビデオ復号デバイス112は、複合エンコーダ/デコーダ(コーデック)の一部としてそれぞれのデバイスの中に統合されてよい。符号化デバイス104の具体的な詳細の一例が、図8を参照しながら以下で説明される。復号デバイス112の具体的な詳細の一例が、図9を参照しながら以下で説明される。
【００７６】
HEVC規格の拡張は、MV-HEVCと呼ばれるマルチビュービデオコーディング拡張、およびSHVCと呼ばれるスケーラブルビデオコーディング拡張を含む。MV-HEVC拡張およびSHVC拡張は階層化コーディングの概念を共有し、異なるレイヤが符号化ビデオビットストリームの中に含まれる。コード化ビデオシーケンスの中の各レイヤは、固有のレイヤ識別子(ID)によってアドレス指定される。レイヤIDは、NALユニットが関連付けられているレイヤを識別するために、NALユニットのヘッダの中に存在し得る。MV-HEVCでは、異なるレイヤは、ビデオビットストリームの中で同じシーンの異なるビューを表すことができる。SHVCでは、異なる空間解像度(すなわち、ピクチャ解像度)で、または異なる再構成忠実度でビデオビットストリームを表す、異なるスケーラブルレイヤが提供される。スケーラブルレイヤは、(レイヤID=0である)ベースレイヤ、および(レイヤID=1、2、...nである)1つまたは複数のエンハンスメントレイヤを含み得る。ベースレイヤは、HEVCの第1のバージョンのプロファイルに準拠し得、ビットストリームの中の最低利用可能レイヤを表す。エンハンスメントレイヤは、ベースレイヤと比較して増大した空間解像度、時間分解能もしくはフレームレート、および/または再構成忠実度(すなわち、品質)を有する。エンハンスメントレイヤは、階層的に編成され、下位レイヤに依存することがある(または、依存しないこともある)。いくつかの例では、異なるレイヤは、単一標準コーデックを使用してコーディングされ得る(たとえば、すべてのレイヤが、HEVC、SHVC、または他のコーディング規格を使用して符号化される)。いくつかの例では、異なるレイヤは、多標準コーデックを使用してコーディングされ得る。たとえば、ベースレイヤがAVCを使用してコーディングされてよく、1つまたは複数のエンハンスメントレイヤがHEVC規格に対するSHVC拡張および/またはMV-HEVC拡張を使用してコーディングされてよい。
【００７７】
概して、レイヤは、VCL NALユニットのセット、および非VCL NALユニットの対応するセットを含む。NALユニットは、特定のレイヤID値が割り当てられる。レイヤが下位レイヤに依存することがあるという意味で、レイヤは階層的であり得る。レイヤセットは、自蔵式であるビットストリーム内で表されるレイヤのセットを参照し、自蔵式とは、レイヤセット内のレイヤが、復号プロセスにおいてレイヤセットの中の他のレイヤに依存し得るが、いかなる他のレイヤにも復号のために依存しないことを意味する。したがって、レイヤセットの中のレイヤは、ビデオコンテンツを表すことができる独立したビットストリームを形成することができる。レイヤセットの中のレイヤのセットは、サブビットストリーム抽出プロセスの動作によって別のビットストリームから取得され得る。レイヤセットは、いくつかのパラメータに従って動作することをデコーダが望むときに復号されるべきレイヤのセットに相当し得る。
【００７８】
前に説明したように、HEVCビットストリームは、VCL NALユニットおよび非VCL NALユニットを含むNALユニットのグループを含む。VCL NALユニットは、コード化ビデオビットストリームを形成するコード化ピクチャデータを含む。たとえば、コード化ビデオビットストリームを形成するビットのシーケンスが、VCL NALユニットの中に存在する。非VCL NALユニットは、他の情報に加えて、符号化ビデオビットストリームに関係する高レベル情報を有するパラメータセットを含み得る。たとえば、パラメータセットは、ビデオパラメータセット(VPS:video parameter set)、シーケンスパラメータセット(SPS:sequence parameter set)、およびピクチャパラメータセット(PPS:picture parameter set)を含み得る。パラメータセットの目的の例は、ビットレート効率、エラーレジリエンシー、およびシステムレイヤインターフェースを提供することを含む。各スライスは、スライスを復号するために復号デバイス112が使用し得る情報にアクセスするために、単一のアクティブなPPS、SPS、およびVPSを参照する。識別子(ID)は、パラメータセットごとにコーディングされてよく、VPS ID、SPS ID、およびPPS IDを含む。SPSは、SPS IDおよびVPS IDを含む。PPSは、PPS IDおよびSPS IDを含む。各スライスヘッダは、PPS IDを含む。IDを使用して、アクティブなパラメータセットが所与のスライスに対して識別され得る。
【００７９】
PPSは、所与のピクチャの中のすべてのスライスに適用される情報を含む。これにより、ピクチャの中のすべてのスライスは、同じPPSを参照する。異なるピクチャの中のスライスも、同じPPSを参照し得る。SPSは、同じコード化ビデオシーケンス(CVS)またはビットストリームの中のすべてのピクチャに適用される情報を含む。前に説明したように、コード化ビデオシーケンスは、ベースレイヤの中で(上記で説明した)いくつかの特性を伴うランダムアクセスポイントピクチャ(たとえば、瞬時復号参照(IDR:instantaneous decode reference)ピクチャもしくはブロークンリンクアクセス(BLA:broken link access)ピクチャ、または他の適切なランダムアクセスポイントピクチャ)で開始し、ベースレイヤの中でいくつかの特性を伴うランダムアクセスポイントピクチャを有する次のアクセスユニット(AU)の直前(または、ビットストリームの末尾)までの、一連のAUである。SPSの中の情報は、コード化ビデオシーケンス内でピクチャからピクチャへと変化しないことがある。コード化ビデオシーケンスの中のピクチャは、同じSPSを使用し得る。VPSは、コード化ビデオシーケンス内またはビットストリーム内のすべてのレイヤに適用される情報を含む。VPSは、コード化ビデオシーケンス全体に適用されるシンタックス要素を有するシンタックス構造を含む。いくつかの実施形態では、VPS、SPS、またはPPSは、符号化ビットストリームとともにインバンド(in-band)で送信され得る。いくつかの実施形態では、VPS、SPS、またはPPSは、コード化ビデオデータを含むNALユニットとは別個の送信の中で、アウトオブバンド(out-of-band)で送信され得る。
【００８０】
VCL NALユニットは、コード化ビデオビットストリームを形成するコード化ピクチャデータを含む。下のTable A(表A)に示すように、様々なタイプのVCL NALユニットがHEVC規格において定義される。
【００８１】
【表１Ａ】
2018533281.tif 000003
【００８２】
【表１Ｂ】
2018533281.tif 000004
【００８３】
【表１Ｃ】
2018533281.tif 000005
【００８４】
単一レイヤビットストリームでは、最初のHEVC規格において定義されるように、AUの中に含まれるVCL NALユニットは同じNALユニットタイプ値を有し、NALユニットタイプ値は、AUのタイプおよびAU内のコード化ピクチャのタイプを定義する。たとえば、特定のAUのVCL NALユニットは、瞬時復号リフレッシュ(IDR)NALユニット(値19)を含み得、AUをIDR AUにし、AUのコード化ピクチャをIDRピクチャにする。所与のタイプのVCL NALユニットは、VCL NALユニットの中に含まれるピクチャまたはピクチャの部分(たとえば、VCL NALユニットの中のピクチャのスライスまたはスライスセグメント)に関係する。リーディングピクチャ、トレーリングピクチャ、およびイントラランダムアクセス(IRAP)ピクチャを含む、3つのクラスのピクチャが、HEVC規格において定義されている。マルチレイヤビットストリームでは、AU内のピクチャのVCL NALユニットは、同じNALユニットタイプ値、および同じタイプのコード化ピクチャを有する。たとえば、タイプIDRのVCL NALユニットを含むピクチャは、AUにおけるIDRピクチャであると言われる。別の例では、ベースレイヤ(レイヤIDが0に等しい)におけるIRAPピクチャであるピクチャをAUが含むとき、AUはIRAP AUである。
【００８５】
HEVCでは、変動するフレームレート(ピクチャレートとも呼ばれる)でビデオコンテンツを提供するために、時間スケーラビリティがサポートされる。各ピクチャは、ピクチャの時間レベルを示すTemporalIdに関連付けられる。例示的な一例では、第1の時間サブレイヤ(TemporalId=0を有し、ベース時間サブレイヤ0と呼ばれる)は、15フレーム毎秒(fps)でビデオコンテンツを提供することができ、第2の時間サブレイヤ(TemporalId=1を有し、時間サブレイヤ1と呼ばれる)は、30fpsでビデオコンテンツを提供することができ、第3の時間サブレイヤ(TemporalId=2を有し、時間サブレイヤ2と呼ばれる)は、60fpsでビデオコンテンツを提供することができ、第4の時間サブレイヤ(TemporalId=3を有し、時間サブレイヤ3と呼ばれる)は、120fpsでビデオコンテンツを提供することができる。所与のピクチャに対するTemporalIdの値は、NALユニットヘッダの中のフィールドによって示され得る。
【００８６】
図2は、出力順序(表示順序とも呼ばれる)で配列された、ビデオビットストリーム200の中のピクチャの一例を示す。ビットストリーム200は3つの時間サブレイヤを含み、各ピクチャの高さはピクチャが属すべき時間サブレイヤを示す。たとえば、最下ピクチャ(ピクチャ48、52、56、60、64、および68)は、ベース時間サブレイヤ(TemporalId=0を有する)に属する。中間ピクチャ(ピクチャ50、54、58、62、66、および70)は、第2の時間サブレイヤ(TemporalId=1を有する)に属する。最上ピクチャ(ピクチャ49、51、53、55、57、59、61、63、65、67、69、および71)は、第3の時間サブレイヤ(TemporalId=2を有する)に属する。図3は、3つの時間サブレイヤを有するビデオビットストリーム300の別の例を示す。
【００８７】
時間スケーラビリティ動作を可能にする制約が規定される。制約は、上位の時間サブレイヤが、下位の時間サブレイヤ(より小さいTemporalIdを有する)からのピクチャをインター予測用に使用できるが、下位の時間サブレイヤが、上位の時間サブレイヤ(より大きいTemporalIdを有する)からのいかなるピクチャもインター予測用に参照してはならないことを示す。たとえば、時間サブレイヤの中のピクチャは、同じ時間サブレイヤの中または下位の時間サブレイヤの中にある参照ピクチャを参照することができる。制約により、特定の値までのTemporalIdを有するピクチャは、より大きいTemporalId値を有するいかなるピクチャも参照することなく復号され得る。一例として図2に示すビデオビットストリーム200を使用すると、ピクチャ52は、ベース時間サブレイヤ0の一部であり、したがって、さらに前の他のピクチャがすべて上位の時間サブレイヤの一部であるので、参照としてIRAPピクチャ48しか使用することができない。同様に、ピクチャ56は、インター予測用の参照としてピクチャ52および/またはピクチャ48を使用できるが、復号順序において前にある他のピクチャを使用することができない。別の例では、第2の時間サブレイヤ1の中のピクチャ54は、参照としてピクチャ48、50、または52のいずれかを使用することができる。また別の例では、ピクチャ55は、第3の時間サブレイヤ2の一部であり、したがって、インター予測用の参照としてピクチャ48、49、50、51、52、53、または54のいずれかを使用することができる。
【００８８】
時間サブレイヤは、異なるビデオフレームレートをもたらすようにスケールアップまたはスケールダウンされ得る。いくつかの例では、1つの時間サブレイヤの追加は、以前の時間サブレイヤのフレームレートを2倍にし、1つの時間サブレイヤが除去される場合、残りの時間サブレイヤは以前のフレームレートの半分になる。たとえば、3つの時間サブレイヤ(サブレイヤ0、1、および2)が設けられる場合、最上時間サブレイヤ2のピクチャは除去されてよく、残りの時間サブレイヤのピクチャが復号されて最大フレームレートの半分をもたらすことができる。別の例では、最上時間サブレイヤ2に加えて第2の時間サブレイヤ1も除去されてベース時間サブレイヤ0だけを残してよく、時間サブレイヤ0および1のピクチャが復号されるならば達成されることになるフレームレートの半分になり得る。様々な実装形態において他のスケーリング係数が使用され得ることを、当業者は諒解されよう。
【００８９】
例示的な一例では、ベース時間サブレイヤ0は30fpsというフレームレートであり、第2の時間サブレイヤ1は60fpsというフレームレートであり、第3の時間サブレイヤ2は120fpsというフレームレートである。この例では、すべてのピクチャがメディアプレーヤによって復号および出力されると、120fpsという最大フレームレートが達成される。別の例では、メディアプレーヤは、ベースサブレイヤ0および第2のサブレイヤ1のピクチャを復号および出力してよく、60fpsというフレームレートで出力ビデオを提供し得る。たとえば、第3の時間サブレイヤ(サブレイヤ2)の中のピクチャのすべてが廃棄または無視されてよく、ベースサブレイヤおよび第2の時間サブレイヤ(サブレイヤ0および1)の中のすべてのピクチャは、これらのピクチャが時間サブレイヤ2のピクチャへの参照を有しないので、やはり復号可能である。また別の例では、メディアプレーヤは、ベース時間サブレイヤ0のピクチャのみを復号および出力してよく、30fpsで出力ビデオを提供し得る。たとえば、時間サブレイヤ1と時間サブレイヤ2の両方が廃棄または無視されてよく、ベース時間サブレイヤ0だけが復号されてよい。そのようなシナリオは、特定のデコーダ、メディアプレーヤ、ディスプレイ、または他のデバイスが、30fpsというフレームレートでしか動作できない場合に起こり得、その場合、デコーダは、時間サブレイヤ0のピクチャだけを復号してよく、時間サブレイヤ1および2のピクチャを廃棄または無視してよい。したがって、ビデオビットストリーム200は、時間的にスケーラブルな方式で復号および出力され得る。
【００９０】
HEVCにおけるランダムアクセスおよびストリームスイッチングは、イントラランダムアクセスポイント(IRAP)ピクチャの使用によって可能になる。以下でより詳細に説明するように、IRAPピクチャは、たとえば、IDRピクチャ、CRAピクチャ、およびBLAピクチャを含む。図4は、IRAPピクチャI1ならびにIRAPピクチャI1に関連するリーディングピクチャおよびトレーリングピクチャを含む符号化ビデオビットストリームのピクチャの一例である。ピクチャは、矢印402の方向における出力順序で直線的に表示され、数値1〜8(I1、B2、B3、B4、P5、B6、B7、B8)は、ピクチャの復号順序を示す。IRAPピクチャは、復号がそこで開始できるビットストリームの中のポイントを提供する。たとえば、復号順序においてIRAPピクチャに先行するすべてのピクチャがビットストリームから廃棄されても(たとえば、ビットストリーム接合などに起因して)、出力順序においてIRAPピクチャに後続するピクチャ(それを含む)が出力され得るように、復号はIRAPピクチャにおいて開始することができる。IRAPピクチャにおいて復号を開始することが可能であるので、IRAPピクチャは、ビットストリームの中のいかなる他のピクチャにも依存しない。たとえば、IRAPピクチャは、時間サブレイヤ0に属し、いかなる他のピクチャの内容も参照データとして使用することなくコーディングされる(たとえば、イントラ予測コーディングが使用される)。ビットストリームの最初のピクチャはIRAPピクチャであり、他のIRAPピクチャもビットストリームの中に存在し得る。マルチレイヤビットストリームでは、0よりも大きいレイヤID(ベースレイヤ以外のレイヤ)を有するIRAPピクチャは、レイヤ間予測を使用し得る。たとえば、IRAPピクチャは、同じアクセスユニットに属するとともにより小さいレイヤIDを有するピクチャに基づいて、レイヤ間予測を使用し得る。
【００９１】
ピクチャB2、B3、およびB4は、IRAPピクチャI1のリーディングピクチャを含む。リーディングピクチャとは、復号順序においてIRAPピクチャに後続するが、出力順序においてIRAPピクチャに先行するピクチャである。図4に示すように、リーディングピクチャB2、B3、およびB4は、復号順序においてIRAPピクチャI1の後にあり、出力順序においてIRAPピクチャI1の前に来る。いくつかの実施形態では、リーディングピクチャは、上のTable A(表1)に示すリーディングピクチャNALユニットタイプ6〜9のうちの1つを使用する。
【００９２】
ピクチャP5、B6、B7、およびB8は、IRAPピクチャI1のトレーリングピクチャを含む。トレーリングピクチャとは、復号順序において、かつ出力順序において、IRAPピクチャに後続するピクチャである。図4に示すように、トレーリングピクチャP5、B6、B7、およびB8は、復号順序において、かつ出力順序においても、IRAPピクチャI1に後続する。トレーリングピクチャは、上のTable A(表1)に示すトレーリングピクチャNALユニットタイプ0〜5のうちの1つを使用する。
【００９３】
リーディングピクチャおよびトレーリングピクチャは、復号順序において最も近いIRAPピクチャ(図4におけるピクチャI1)に関連付けられる。いくつかの実施形態では、IRAPピクチャならびにその関連するトレーリングピクチャおよびリーディングピクチャの復号順序は、リーディングピクチャおよびトレーリングピクチャにおけるいくつかの条件に基づいて規定される。たとえば、トレーリングピクチャは、関連するIRAPピクチャ、および同じIRAPピクチャの他のトレーリングピクチャを、インター予測用に参照することができる。IRAPピクチャに関連するトレーリングピクチャは、いかなるリーディングピクチャにも依存せず、以前のIRAPピクチャのいかなるトレーリングピクチャにもやはり依存しない。IRAPピクチャに関連するリーディングピクチャは、同じIRAPピクチャに関連するトレーリングピクチャに(復号順序において)先行する。これらの条件およびここに記載されない他の類似の条件に基づいて、IRAPピクチャI1ならびにその関連するトレーリングピクチャおよびリーディングピクチャの復号順序は、IRAPピクチャI1、続いてリーディングピクチャB2、B3、B4、続いてトレーリングピクチャP5、B6、B7、B8である。
【００９４】
様々なタイプのトレーリングピクチャ、リーディングピクチャ、およびIRAPピクチャが利用可能である。たとえば、トレーリングピクチャは、時間サブレイヤアクセス(TSA)ピクチャ、ステップワイズ時間サブレイヤアクセス(STSA)ピクチャ、および通常のトレーリングピクチャ(TRAIL)を含む。TSAピクチャは、任意の上位サブレイヤまで、そこにおいてスイッチングが行われ得る時間サブレイヤスイッチングポイントを示す。STSAピクチャは、STSAピクチャと同じ時間レイヤ識別子を有するサブレイヤに、そこにおいてスイッチングが行われ得る時間サブレイヤスイッチングポイントを示す。TSAピクチャおよびSTSAピクチャは、時間識別子が0よりも大きい時間サブレイヤに属する。TRAILピクチャは、いかなる時間サブレイヤにも属することができ、時間サブレイヤスイッチングポイントを示さない。マルチレイヤビットストリームでは、レイヤIDが0よりも大きいレイヤに属するSTSAピクチャは、時間サブレイヤIDが0に等しい時間サブレイヤにも属することができる。
【００９５】
リーディングピクチャタイプは、ランダムアクセス復号可能リーディング(RADL)ピクチャおよびランダムアクセススキップドリーディング(RASL)ピクチャを含む。RADLピクチャは、RADLピクチャが関連付けられているIRAPピクチャにおいてランダムアクセスが実行されるときに復号可能なリーディングピクチャである。いくつかの実施形態では、RADLピクチャは、インター予測目的のために、関連するIRAPピクチャ、およびIRAPピクチャにやはり関連する他のRADLピクチャだけを参照する。RASLピクチャは、関連するIRAPピクチャからランダムアクセスが実行されるときに復号可能でないことがあるリーディングピクチャである。RASLピクチャが参照用に使用するピクチャが復号順序においてIRAPピクチャに先行するとき、RASLピクチャは復号可能でない。IRAPピクチャにおいてランダムアクセスを実行するデコーダは、復号順序においてIRAPピクチャに先行するピクチャを復号せず、したがって、RASLピクチャも復号しないので、RASLピクチャは復号可能でない。RASLピクチャは、他のタイプのピクチャ(たとえば、IRAPピクチャ、他のRASLピクチャ、RADLピクチャなど)を参照することができる。いくつかの例では、RASLピクチャだけが他のRASLピクチャに依存することができ、その場合、RASLピクチャに依存するすべてのピクチャがRASLピクチャである。
【００９６】
上述のように、瞬時復号リフレッシュ(IDR)ピクチャ、クリーンランダムアクセス(CRA)ピクチャ、およびブロークンリンクアクセス(BLA)ピクチャを含む、様々なタイプのIRAPピクチャがビデオデータをコーディングするために使用される。IDRピクチャは、デコーダにおける復号プロセスを完全にリフレッシュまたは再初期化するとともに新たなCVSを開始するイントラピクチャ(Iピクチャ)である。いくつかの例では、IDRピクチャ、および復号順序においてIDRピクチャに後続する任意のピクチャは、復号順序においてIDRピクチャの前に来るいかなるピクチャにも依存し得ない。場合によっては、RASLピクチャは、IDRピクチャに関連付けられることを許容されない。CRAピクチャもIピクチャである。CRAピクチャは、デコーダをリフレッシュせず、新たなCVSを始めず、復号順序においてCRAピクチャの前に来るピクチャにCRAピクチャのリーディングピクチャ(RASLピクチャ)が依存することを許容する。いくつかの例では、CRAピクチャは、関連するRADLピクチャおよびRASLピクチャを有し得る。CRAピクチャ、復号順序においてCRAピクチャの前に来るいかなるピクチャにも依存しないCRAピクチャに関連するリーディングピクチャ(RADLピクチャ)、および復号順序と出力順序の両方においてCRAピクチャに後続する関連するすべてのピクチャを復号することによって、CRAピクチャにおいてランダムアクセスが行われ得る。場合によっては、CRAピクチャは、関連するリーディングピクチャを有しないことがある。マルチレイヤの場合、レイヤIDが0よりも大きいレイヤに属するIDRピクチャまたはCRAピクチャは、PピクチャまたはBピクチャであり得るが、これらのピクチャは、IDRピクチャまたはCRAピクチャと同じアクセスユニットに属するとともにIDRピクチャまたはCRAピクチャを含むレイヤよりもレイヤIDが小さい他のピクチャからのレイヤ間予測しか使用することができない。
【００９７】
IRAPピクチャは、ビットストリームを一緒に接合するための能力を提供する。たとえば、エンコーダ、ビットストリームエディタ(または、「エディタ」)、スプライサ、または他のネットワークデバイスは、IRAPピクチャを使用してビットストリームを一緒に接合し得る。ビットストリーム接合により、ある圧縮ビデオビットストリームから別の圧縮ビデオビットストリームへのシームレスなスイッチングが可能になる。たとえば、第1のIRAP AUおよび第1の圧縮ビットストリームの後続のすべてのAUを、第2のIRAP AUおよび第2の圧縮ビットストリームの後続のAUと置き換えることによって、接合が行われる。(前に説明したようなランダムアクセスに加えて)圧縮ビデオビットストリームを接合するために、IDRピクチャまたはCRAピクチャが使用され得る。たとえば、第1および第2のIRAP AUは、CRAピクチャを含み得る。いくつかの実施形態では、圧縮ビデオビットストリームを接合するために、IDRピクチャが使用され得る。場合によっては、第1のAUがIRAPピクチャを含むべきであることは必要でない。マルチレイヤビットストリームでは、ベースレイヤに属するIRAPピクチャを第2のAUが含むとき、接合が行われ得る。
【００９８】
場合によっては、接合が行われた後、復号順序においてCRAピクチャに後続するRASLピクチャは、もはや接合の後にビットストリームの中にない1つまたは複数のピクチャをRASLピクチャが参照する場合に復号可能でないことがある。いくつかの例では、エンコーダ、エディタ、スプライサ、または他のデバイスは、接合中にRASLピクチャを廃棄してよい。他の例では、接合が行われるときに、ピクチャ順序カウントのタイムラインならびにRASLピクチャが依存し得るCRAピクチャに(復号順序において)先行するピクチャからの予測が切断されていることを示すために、ブロークンリンク接合オプションが使用され得る。
【００９９】
CRAピクチャのロケーションにおけるビットストリームの接合の結果として、BLAピクチャと呼ばれる第3のタイプのIRAPピクチャが使用され得る。たとえば、BLAピクチャは、関連するRASLピクチャが復号されるべきかどうかをデコーダが決定できるように、接合動作が行われたときにデコーダに通知するために使用され得る。接合中に、接合のために使用される新たなビットストリームの中のCRAピクチャは、BLAピクチャとして扱われてよい。ブロークンリンク接合が実行されるとき、RASLピクチャが保持されてよく、そのようなBLAピクチャに遭遇するデコーダは、BLAピクチャに関連するRASLピクチャを廃棄してよい。デコーダがCRAピクチャに遭遇する場合、デコーダは、CRAピクチャに関連するRASLピクチャを復号する。デコーダがBLAピクチャまたはCRAピクチャに遭遇すると、デコーダは、それぞれ、BLAピクチャおよびCRAピクチャに関連するすべてのRADLピクチャを復号する。BLAピクチャは、デコーダにおける復号プロセスをリフレッシュまたは再初期化し、新たなCVSを開始する。いくつかの実施形態では、接合が行われなかったときでもBLAピクチャが使用されてよい。
【０１００】
ビットストリームをデコーダへ送るエンコーダ、エディタ、または他のデバイスは、CRAピクチャがBLAピクチャとして処理されるべきとデコーダに示してよい。一例では、接合中に、接合のために使用される新たなビットストリームの中のCRAピクチャは、BLAピクチャと改名される。たとえば、デバイス(エディタ、スプライサ、または他のネットワークエンティティ)は、CRA NALユニットタイプをBLA NALユニットタイプに変更してよい。そのような事例では、デバイスは、NALユニットタイプを変更するためにビットストリームのビットを変化させる。
【０１０１】
IRAPピクチャは、オープンピクチャグループ(GOP)構造またはクローズドGOP構造に従う。場合によっては、IDRピクチャがクローズドピクチャグループ(GOP)構造に従い、CRAピクチャがオープンGOP構造に従う。図2および図3に戻ると、クローズドGOP構造およびオープンGOP構造のIRAPピクチャの差異が図示され、ここで、各ピクチャの出力順序および復号順序が与えられる。図2は、クローズドGOP構造におけるIRAPピクチャを示し、図3は、オープンGOP構造におけるIRAPピクチャを示す。図2において、52というピクチャ順序カウント(POC)値を有するピクチャ202は、51というPOC値を有するピクチャ204に出力順序において後続し、そのことは、POC値51を有するピクチャ204がPOC値52を有するピクチャ202よりも前に出力されなければならないことを意味する。ピクチャに対するPOCは、ビットストリームの中の各ピクチャを識別するために割り当てられた固有の番号として考えられ得る。さらに、POC値52を有するピクチャ202は、POC値50を有するピクチャ206に復号順序において先行し、そのことは、POC値52を有するピクチャ202がPOC値50を有するピクチャ206よりも前に復号されなければならないことを意味する。
【０１０２】
概して、ピクチャは、前に復号されているピクチャをインター予測用のその参照として使用し得る。ビデオビットストリームの中のいくつかのポイントへのランダムアクセスの場合、IRAPピクチャからの復号プロセスの開始を可能にするために、インター予測遮断がある。インター予測遮断ポイントの後のピクチャは、インター予測遮断ポイントの前に復号されるいかなるピクチャも、参照として使用することができない。クローズドGOP構造におけるインター予測遮断ポイント208が図2に示され、オープンGOP構造におけるインター予測遮断ポイント308が図3に示される。インター予測遮断ポイント208および308の右側にあるピクチャは、遮断ポイント208および308の左側におけるピクチャをインター予測用の参照として使用することを許容されない。上記で説明したように、リーディングピクチャは、関連するIRAPピクチャに復号順序において後続するが、IRAPピクチャよりも前に出力される。図2に示すように、POC値57、58、および59を有するピクチャは、IRAPピクチャ210(POC値60を有する)に関連するリーディングピクチャである。クローズドGOP構造(図2)において、IRAPピクチャ210に関連するリーディングピクチャは、復号順序と出力順序の両方においてIRAPピクチャ210に先行するピクチャ(POC値56以下を有するピクチャである、インター予測遮断ライン208の左のピクチャ)をインター予測用の参照として使用することが許容されない。したがって、RASLピクチャは、クローズドGOP構造において使用され得ない(たとえば、IDR IRAPピクチャが使用されるとき)。
【０１０３】
オープンGOP構造において、図3に示すように、インター予測遮断ポイント308は、IRAPピクチャ310(POC値60を有する)上にある。IRAPピクチャ310の左側にあり復号順序においてIRAPピクチャに後続するピクチャ(POC値57、58、および59を有するリーディングピクチャ)は、やはりIRAPピクチャ310をインター予測用の参照として使用することができ、IRAPピクチャ302の右側におけるピクチャも、IRAPピクチャ310をインター予測用の参照として使用できるが、IRAPピクチャ310の左側におけるピクチャを参照として使用することができない。クローズドGOPおよびオープンGOPにおけるリーディングピクチャのインター予測の間の差異は、図2および図3におけるインター予測遮断ポイント208および308からわかる。たとえば、図3のオープンGOPの場合、リーディングピクチャ(POC値57、58、59)は、それらの関連するIRAPピクチャ310よりも復号順序(および、出力順序)において前にあるピクチャを参照できるが、このことは図2のクローズドGOPの場合には許容されない。より多くのピクチャがインター予測用の参照として利用可能であるので、この差異により、オープンGOPの場合におけるリーディングピクチャがクローズドGOPの場合よりも効率的にコーディングされることが可能になる。オープンGOPの場合とクローズドGOPの場合の両方において、リーディングピクチャは、トレーリングピクチャ(図2および図3におけるPOC値61〜71を有するピクチャなどの、復号順序と出力順序の両方においてIRAPピクチャに後続するピクチャ)のインター予測用の参照として使用され得ない。
【０１０４】
ランダムアクセスが実行されるときなどに、圧縮性能におけるインター予測遮断の影響がある。復号順序において前のピクチャへの依存関係がないので、ランダムアクセス機能を可能にするためにインター予測遮断が必要であり、その結果、ランダムアクセスがIRAPピクチャにおいて発生するときに復号がIRAPピクチャから再開され得る。クローズドGOPの場合、明瞭なインター予測遮断があるので、復号が単に再開され、復号順序において後続する(アクセスされているIRAPピクチャの後の)すべてのピクチャが復号される。オープンGOPの場合、復号が再開され、正しく復号され得ないリーディングピクチャ(たとえば、RASLピクチャ)は、ランダムアクセスが実行されるときに存在しない前のピクチャへの依存関係を有することがあるので、復号プロセスから排除される。しかしながら、結果として、上記で説明したように、さらに前のピクチャが参照として使用され得る場合、より良好な時間予測が達成されていることがあるので、インター予測遮断は圧縮効率に影響を及ぼす。
【０１０５】
現在、リーディングピクチャに対してインター予測制約が存在する。たとえば、HEVCでは、復号順序と出力順序の両方においてIRAPピクチャに後続するピクチャ(トレーリングピクチャ)が、リーディングピクチャをインター予測用の参照として使用してはならないと制約される。このようにして、復号がIRAPピクチャから開始するとき、トレーリングピクチャが正しく復号され得ることが確実になる。復号順序と出力順序の両方においてIRAPピクチャに先行するピクチャをインター予測用の参照として使用しないリーディングピクチャ(たとえば、RADLピクチャ)があり得るので、この推論は議論の余地があり得る。
【０１０６】
別の制約がリーディングピクチャに適用され、復号順序と出力順序の両方においてIRAPピクチャに先行するピクチャをインター予測用の参照として使用するリーディングピクチャ(RASLピクチャ)が、すべてのRADLピクチャに出力順序において先行しなければならないことを規定する。RADLピクチャに関連するとともに、出力される任意の2つのピクチャの間に出力順序におけるギャップがないことを好むIRAPピクチャにおいて、ランダムアクセスが行われるとき、RADLピクチャを出力することを望むシステムによってそのような制約が動機づけられ得る。たとえば、RASLピクチャおよびRADLピクチャに関連するIRAPピクチャにおいてランダムアクセスが行われるとき、RASLピクチャは廃棄され(上記で説明したように)、復号はIRAPピクチャとともに、次いでRADLピクチャとともに始まる。
【０１０７】
適応ストリーミング(たとえば、動的適応ストリーミングオーバーHTTP(DASH))では、コンテンツアイテムは、2つ以上の表現において利用可能であり得、各表現は、異なるビットレートを用いて異なるサービスを提供する(たとえば、低品質のコンテンツを提供する第1の表現、メディア品質の同じコンテンツを提供する第2の表現、および高品質の同じコンテンツを提供する第3の表現)。ある表現から別の表現への適合を可能にするために、各表現は、セグメント(たとえば、復号順序でのセグメントの中のピクチャの順序を伴う連続するピクチャのシーケンス)の中でコーディングされる。各セグメントは、通常、IRAPピクチャとともに開始する。
【０１０８】
図5は、適応ストリーミングシナリオにおける、ある表現から別の表現へのスイッチングの一例を示す。一例では、表現1は、第1のビットレートでのメディアコンテンツアイテムの低品質バージョンを含むことができ、表現2は、第1のビットレートよりも高い第2のビットレートでのメディアコンテンツアイテムのより高品質なバージョンを含むことができる。表現1および2は、セグメントNおよびセグメントN+1を含む同じ数の対応するセグメントを含むことができる。いくつかの例では、表現1のセグメントNの復号の後、デコーダは、表現2の次のセグメントN+1にスイッチングすることができる。そのようなスイッチングは、たとえば、ネットワーク状態が改善するときに行われてよく、デコーダが表現2のより高いビットレートをサポートすることを可能にする。通常、(クローズドGOP構造を有する)IDRタイプを伴うIRAPピクチャは、RASLピクチャが存在しないことになるためにある表現から別の表現へのシームレスなスイッチングを可能にすることになるので、各セグメントの中の最初のピクチャとして使用されることになる。たとえば、IDR IRAPピクチャを使用する別の表現にスイッチングするとき、新たなセグメントの中のすべてのピクチャは、以前のセグメントの中のピクチャへの依存関係がないので復号可能であることになる。
【０１０９】
セグメントを開始するためのIDRピクチャの使用は、より多くのピクチャを参照として利用できるRASLピクチャが使用されないので、コーディング効率観点から最適な選択でないことがある。IDRピクチャの代わりに、(オープンGOP構造を有する)CRAタイプを伴うIRAPピクチャは、RADLピクチャに加えてRASLピクチャを使用することに起因して、より良好なコーディング効率を可能にすることになる。しかしながら、場合によっては、CRAピクチャの使用は、表現の間でのスイッチングが行われるときに、新たなセグメント(セグメントN+1)の中のRASLピクチャが復号可能でないことになることを意味する。いくつかのシナリオでは、RASLピクチャは廃棄されなければならない。場合によっては、CRAピクチャに関連するリーディングピクチャのほとんどまたはすべてが、(たとえば、高いコーディング効率を達成するために、または他の要因に基づいて)RASLピクチャであり、したがって、RASLピクチャが欠落すると、新たなセグメントN+1のピクチャの表示におけるギャップが発生することになる。RASLピクチャが出力順序(表示順序)においてすべてのRADLピクチャに先行しなければならず、欠落するRASLピクチャを出力順序において連続させるという上述の制約に起因して、このギャップはなお一層明らかにされる。RASLピクチャを廃棄することの一代替形態では、表現2の新たなセグメントN+1の中のRASLピクチャは、新たなセグメントN+1の中のピクチャを参照することによって他の表現(表現1)から復号されてよく、結果として、不整合を有することがある。異なる表現において異なる空間解像度が関与すると、参照用に使用されるピクチャのリサンプリングが必要とされることになる。また別の代替形態は、たとえば、表現1における新たなセグメントN+1の中の開始IRAPピクチャおよびそのリーディングピクチャを復号すること、ならびにこれらのリーディングピクチャを、表現2における新たなセグメントN+1の中の開始IRAPピクチャに関連するリーディングピクチャの代わりに出力することによって、いくつかのオーバーラップする復号を有することである。
【０１１０】
上記の説明を考えると様々な問題が存在する。たとえば、現在、オープンGOP IRAPピクチャ(たとえば、CRAピクチャ)を使用する適応ストリーミングシステムにとって、不整合の復号またはオーバーラップした復号を用いずにスイッチングポイントにおけるビデオコンテンツの連続再生を達成する表現スイッチングを可能にするためのメカニズムがない。本明細書で使用する連続再生とは、スイッチングが発生するとともにいくつかのリーディングピクチャが廃棄されなければならないとき、ビデオコンテンツにおける時間的ギャップ(たとえば、出力中のピクチャにおけるギャップ)がまったく知覚されないか、または最低限の時間的ギャップしか知覚されない方法で、リーディングピクチャが廃棄され得ることを指す。以下でより詳細に説明するように、本明細書で説明するシステムおよび方法は、廃棄され得るリーディングピクチャをGOP内で分散させ、その結果、出力順序において隣接するピクチャのセットが廃棄されるのではなく(時間的ギャップにつながる)、時間的なレート(たとえば、フレーム/ピクチャレート)の低減しかない。たとえば、HEVCでは、RASLピクチャおよびRADLピクチャの順序は、すべてのRASLピクチャが、同じIRAPピクチャに関連するすべてのRADLピクチャに出力順序において先行しなければならないように制約されるので、適応ストリーミングにおけるそのようなオープンGOPベースの表現スイッチングメカニズムは、現在、HEVCまたは他の規格にとって可能でない。また、現在、ビデオストリームにランダムにアクセスした後の、すべてのピクチャのコーディング効率とフレーム/ピクチャレートとの間のトレードオフのフレキシブルな制御を可能にするためのメカニズムがない。オープンGOP構造を使用するそのようなメカニズムは、コンテンツプロバイダがスイッチングポイントにおけるコーディング効率とフレーム/ピクチャレートとの間のトレードオフをフレキシブルに制御することを可能にすることになる。
【０１１１】
改善されたビデオストリームスイッチングおよびランダムアクセスを提供することによって上記の問題を解決するために、様々なシステムおよび方法が本明細書で開示される。いくつかの例では、現存のオープンGOP IRAPピクチャ(たとえば、CRAピクチャ、または場合によってはBLAピクチャ)に関連するリーディングピクチャは、ピクチャの時間識別子(TemporalId)に基づいてRASLピクチャまたはRADLピクチャとして規定される。そのような例は、現存のGOP IRAPピクチャを再定義することを必要とし得る。いくつかの例では、新たなタイプのIRAPピクチャが定義され、その場合、IRAPピクチャに関連するピクチャは、ピクチャの時間識別子(TemporalId)に基づいて、RASLピクチャとして(または、RASLピクチャと類似の特性を有するが異なってラベル付けされるピクチャとして)またはRADLピクチャとして(または、RADLピクチャと類似の特性を有するが異なってラベル付けされるピクチャとして)規定される。以下のシステムおよび方法のうちのいくつかは独立に適用されてよく、いくつかは組み合わせて適用されてよい。いくつかの実装形態では、方法は、符号化デバイス104および/または復号デバイス112によって実施され得る。
【０１１２】
いくつかの例では、現在の規格において定義されているオープンGOP IRAPピクチャ(たとえば、CRAピクチャ)の場合、GOP IRAPピクチャに関連するとともにTemporalIdしきい値までのTemporalIdを有するリーディングピクチャは、RADLピクチャとしてコーディングされ、その特定のTemporalIdしきい値よりも大きいTemporalIdを有する他の関連するリーディングピクチャは、RASLピクチャとしてコーディングされる。いくつかの例では、特定のTemporalIdしきい値の値は、ビットストリームの中でシグナリングされ得る。たとえば、TemporalIdしきい値は、NALユニットヘッダの中でシグナリングされ得る。いくつかの例では、値は、スライスヘッダ、SEI、または情報をシグナリングするために使用され得るビットストリームの他の好適な部分の中などの、ビットストリームの他の部分の中でシグナリングされ得る。
【０１１３】
いくつかの例では、現在の規格において定義されていない新たなタイプのIRAPピクチャが定義される。たとえば、新たなタイプのIRAPピクチャに対して、TemporalIdしきい値までのTemporalIdを有し復号順序において後続するすべてのピクチャは、復号順序においてIRAPピクチャよりも前のピクチャに依存せず(結果として、復号順序においてIRAPピクチャよりも前のピクチャを参照することなく正しく復号され得る)、そのことはRADLピクチャと同様である。さらに、そのTemporalIdしきい値よりも大きいTemporalIdを有し復号順序において後続するすべてのピクチャは、復号順序においてIRAPピクチャよりも前にあるピクチャに依存し得(結果として、復号順序においてIRAPピクチャよりも前のピクチャを参照しないと正しく復号されないことがある)、そのことはRASLピクチャと同様である。いくつかの例では、特定のTemporalIdしきい値の値は、ビットストリームの中でシグナリングされ得る。たとえば、TemporalIdしきい値は、NALユニットヘッダの中でシグナリングされ得る。いくつかの例では、値は、スライスヘッダ、SEI、または情報をシグナリングするために使用され得るビットストリームの他の好適な部分の中などの、ビットストリームの他の部分の中でシグナリングされ得る。
【０１１４】
いずれの場合も、現在定義されているIRAPピクチャが再定義されるのか、それとも新たなタイプのIRAPピクチャが定義されるのかにかかわらず、リーディングピクチャのTemporalIdに基づいて、オープンGOP IRAPピクチャに関連するリーディングピクチャをRASLピクチャまたはRADLピクチャに指定することにより、RASLピクチャおよびRADLピクチャがオープンGOP IRAPピクチャのピクチャグループ(GOP)内で分散することが可能になり、その結果、IRAPピクチャにおいてランダムアクセスが行われるときに出力順序において隣接するピクチャのセットを廃棄するのではなく(出力ピクチャにおける時間的ギャップにつながることになる)、時間的なレート(フレーム/ピクチャレート)の低減が起こる。たとえば、より大きいtemporalID(temporalIdしきい値を上回る)を有するピクチャはRASLピクチャとして指定され、より小さいtemporalID(temporalIdしきい値までの)を有するピクチャはRADLピクチャとして指定される。本明細書での説明は、TemporalIdしきい値までの(すなわち、それ以下の)TemporalIdを有するリーディングピクチャがRADLピクチャとしてコーディングされること、およびその特定のTemporalIdしきい値よりも大きいTemporalIdを有する他の関連するリーディングピクチャがRASLピクチャとしてコーディングされることを示すが、TemporalIdしきい値よりも小さいTemporalIdを有するリーディングピクチャがRADLピクチャとしてコーディングされてよいこと、およびTemporalIdしきい値以上のTemporalIdを有する他の関連するリーディングピクチャがRASLピクチャとしてコーディングされてよいことを、当業者は諒解されよう。
【０１１５】
例示的な一例では、図3を参照すると、temporalIdしきい値は、1というtemporalIdしきい値として設定され得る。オープンGOP IRAPピクチャに関連する時間サブレイヤ0および1のリーディングピクチャ(たとえば、図3におけるIRAPピクチャ310に関連するピクチャ58)は、そのようにRADLピクチャとして設定され、時間サブレイヤ2のピクチャ(図3におけるIRAPピクチャ310に関連するピクチャ57および59)は、RASLピクチャとして設定される。そのようなTemporalIdベースのメカニズムを使用すると、オープンGOP IRAPピクチャにおいてランダムアクセスまたはスイッチングが行われ、IRAPピクチャに関連するRASLピクチャが廃棄されるかまたは復号されないとき、RADLリーディングピクチャが復号されるまで、時間的なフレームレートが時間サブレイヤ2のフレームレート(たとえば、240fps)から時間サブレイヤ1のフレームレート(たとえば、120fps)に下がるという結果になる。フレームレートは、次いで、IRAPピクチャに関連するトレーリングピクチャ(たとえば、ピクチャ61から始まる)をデコーダが復号し始めると、時間サブレイヤ2の高い方のフレームレートに戻して上がることができる。たとえば、図5を参照すると、(RASLピクチャが廃棄されるか、またはさもなければ復号されないことに起因して、RADLピクチャしか含まない)リーディングピクチャ520が復号される間、フレームレートは、低い方のフレームレート(たとえば、第2の時間サブレイヤ1による)に低減され得る。トレーリングピクチャ522が復号され始めると、フレームレートは、高い方のフレームレート(たとえば、第3の時間サブレイヤ2による)に戻され得る。したがって、ランダムアクセスまたはスイッチングが行われるときにいくつかの連続するRASLピクチャを欠落させる代わりに、欠落するRASLピクチャは、TemporalID値に従って、欠落しないRADLピクチャと交互にされる。
【０１１６】
任意の好適なTemporalIdしきい値が使用され得ること、およびTemporalIdしきい値が任意の所与の実装形態要件に基づいて調整され得ることを、当業者は諒解されよう。たとえば、TemporalIdしきい値は、より多くのRASLピクチャを可能にするために、より小さいTemporalId値に調整されてよく、そのことは、圧縮効率をより大きくさせる。別の例では、TemporalIdしきい値は、より多くのRADLピクチャを可能にするために、より大きいTemporalId値に調整されてよく、そのことは、適応ストリーミングにおける表現スイッチングにとって(たとえば、より少数のリーディングピクチャしか欠落しないこと、したがって、より高いフレームレートに起因して)より良好であり得る。
【０１１７】
いくつかの実装形態では、リーディングピクチャに関係する上記で説明したHEVC制約のうちの1つまたは複数は、様々な設計に対応するために除外されてよい。いくつかの例では、特定のIRAPピクチャに関連するRADLピクチャは、同じIRAPピクチャに関連するトレーリングピクチャのインター予測用の参照として使用され得る。たとえば、IRAPピクチャにおいてスイッチングまたはランダムアクセスが行われるとき、IRAPピクチャに関連するRADLピクチャは廃棄されず、したがって、IRAPピクチャに関連するトレーリングピクチャのインター予測用の参照として使用され得る。したがって、トレーリングピクチャがインター予測用の参照としてリーディングピクチャを使用してはならないという制約は、上記で説明したTemporalIdベースのメカニズムを使用するリーディングピクチャ、トレーリングピクチャ、および関連するIRAPピクチャに対して除外され得る。
【０１１８】
さらに、上記で説明したオープンGOP IRAPピクチャに対するRASLピクチャおよびRADLピクチャのTemporalIDベースの指定を使用すると、同じIRAPピクチャに関連するRADLピクチャおよびRASLピクチャの順序は、ピクチャのTemporalId値に従って配列される。そのような設計の一例では、IRAPピクチャに関連するRADLピクチャのすべてが、同じIRAPピクチャに関連するすべてのRASLピクチャよりも小さいTemporalId値を有しなければならない。そのような例では、RASLピクチャが出力順序においてすべてのRADLピクチャに先行しなければならないという制約は、上記で説明したTemporalIdベースのメカニズムを使用するリーディングピクチャ、トレーリングピクチャ、および関連するIRAPピクチャに対して除外され得る。いくつかの例では、時間スケーラビリティおよび時間サブレイヤが使用されないとき、RASLピクチャおよびRADLピクチャは、RASLピクチャおよびRADLピクチャの順序が交互の出力順序(たとえば、RASLピクチャ、次いでRADLピクチャ、次いでRASLピクチャ、以下同様)となるように配列され得る。
【０１１９】
トレーリングピクチャに修正が加えられてもよい。いくつかの例では、オープンGOP構造の圧縮効率をさらに改善するために、IRAPピクチャに関連するいくつかのトレーリングピクチャは、任意のリーディングピクチャ(たとえば、RASLピクチャもしくはRADLピクチャ、またはRASLピクチャとRADLピクチャの両方)を使用してよく、出力順序および復号順序においてIRAPピクチャに先行するピクチャをインター予測用の参照としてやはり使用してよい。RASLピクチャ、ならびに出力順序および復号順序においてIRAPピクチャに先行するピクチャを、インター予測用の参照として使用できるそのようなトレーリングピクチャは、本明細書で修正トレーリングピクチャと呼ばれる。例示的な一例では、ピクチャセットAは、オープンGOP IRAPピクチャに関連するトレーリングピクチャのセットである。この例では、ピクチャセットAの中のトレーリングピクチャは、IRAPピクチャに関連するRASLピクチャ、および/または出力順序と復号順序の両方においてIRAPピクチャに先行するピクチャを、それらのインター予測用の参照として使用する。したがって、ピクチャセットAの中のトレーリングピクチャは、修正トレーリングピクチャである。いくつかのトレーリングピクチャが、リーディングピクチャ、ならびに/または関連するIRAPピクチャに出力順序および復号順序において先行するピクチャを参照することを許容することは、より多くの参照ピクチャがトレーリングピクチャを予測するためのオプションとして利用可能であるので、より良好なコーディング効率が達成されることを可能にする。
【０１２０】
そのような例では、様々な一般的なガイドラインまたは制約が適用され得る。たとえば、その関連するRASLピクチャおよび/または出力順序と復号順序の両方においてIRAPに先行するピクチャを、その関連するトレーリングピクチャがそれらのインター予測用の参照として使用することを許容するIRAPピクチャは、識別可能にされる(たとえば、そのため、IRAPピクチャは、デコーダまたは他のデバイスによって識別され得る)。たとえば、上記で説明したように、RASLピクチャに関連するIRAPピクチャにおいてランダムアクセスまたはスイッチングが実行されるとき(たとえば、異なる表現における異なるセグメントにスイッチングするとき)、RASLピクチャは復号することができず、したがって、RASLピクチャを参照するトレーリングピクチャは識別可能でなければならず、その結果、RASLピクチャに加えてトレーリングピクチャが欠落してよい。いくつかの例では、そのようなIRAPピクチャの識別は、IRAPピクチャにとって新たなタイプを定義することによって行われ得る。たとえば、そのようなIRAPピクチャに対して新たなNALユニットタイプが割り当てられ得る。いくつかの例では、追加の情報が、そのようなIRAPピクチャのヘッダ(たとえば、スライスヘッダ、ピクチャヘッダ、または他のヘッダ)の中でシグナリングされ得る。
【０１２１】
さらに、ピクチャセットAに属するピクチャは、容易に識別されるべきである。ピクチャセットAに属するピクチャを識別するための様々な技法が提供される。たとえば、時間サブレイヤ(時間スケーラビリティ)が使用されるとき、第1のオプションが使用され得る。第1のオプションに対して、トレーリングピクチャを修正する(トレーリングピクチャが、リーディングピクチャ、ならびに出力順序および復号順序においてIRAPピクチャに先行するピクチャを、インター予測用に参照することを可能にする)ための上記で説明した技法は、時間サブレイヤ(時間スケーラビリティ)が使用されるときのみ実行されてよい。いくつかの例では、第1のオプションに対して、以下のシグナリングメカニズムが実行され得る。
【０１２２】
(1)ピクチャセットAに関連するIRAPピクチャのスライスヘッダまたはピクチャヘッダの中で、以下の情報がシグナリングされ得る。
【０１２３】
(a)IRAPピクチャに関連するピクチャセットAの中のピクチャのtemporalId、
【０１２４】
(b)ピクチャセットAの中のピクチャの基数。これは、ピクチャの数もしくはGOPの数、またはピクチャセットAに属するピクチャの数を推定するために使用され得る任意の手段に関して、シグナリングされ得る。
【０１２５】
(2)代替として、上記の情報は、シーケンスレベルにおいて(たとえば、シーケンスパラメータセット(SPS)の中で)またはビットストリームレベルにおいて(たとえば、ビデオパラメータセット(VPS)の中で)、シグナリングされ得る。
【０１２６】
別の例では、ピクチャセットAに属するピクチャを識別するための第2のオプションは、新たなNALユニットタイプまたはピクチャタイプを使用することができる。たとえば、ピクチャセットAに属するピクチャは、新たなタイプ(たとえば、NALユニットタイプまたはピクチャタイプ)を用いて識別される。
【０１２７】
いくつかの例では、ピクチャセットAに属するピクチャが、IRAPピクチャの直後にくるピクチャグループ(GOP)の中になければならないと規定する制約が、修正トレーリングピクチャに適用され得る。そのような例では、リーディングピクチャ、または出力順序および復号順序においてIRAPピクチャに先行するピクチャを参照しない、IRAPピクチャに関連するトレーリングピクチャは、(たとえば、出力順序において、復号順序において、または出力順序と復号順序の両方において)ピクチャセットAの中のトレーリングピクチャに後続する。
【０１２８】
いくつかの例では、ピクチャセットAに属するピクチャが、ピクチャセットAに属しないピクチャによってインター予測用の参照として使用されてはならないと規定する制約が、修正トレーリングピクチャに適用され得る。そのような例では、リーディングピクチャ、または出力順序および復号順序においてIRAPピクチャに先行するピクチャを参照しない、IRAPピクチャに関連するトレーリングピクチャは、ピクチャセットAの中のトレーリングピクチャをインター予測用の参照として使用することができない。ランダムアクセスが発生するとともに復号がIRAPピクチャから開始されるとき、ピクチャセットAに属するピクチャは、復号プロセスから排除されなければならない。
【０１２９】
いくつかの例では、TemporalIdしきい値はまた、修正トレーリングピクチャに対して設定され得る。たとえば、TemporalIdしきい値よりも大きいTemporalIdを有しGOP IRAPピクチャに関連するトレーリングピクチャは、修正トレーリングピクチャ(IRAPのRASLピクチャ、ならびに/または関連するIRAPピクチャに出力順序および復号順序において先行するピクチャを、インター予測用に参照するトレーリングピクチャ)としてコーディングされ、IRAPピクチャ(特定のTemporalIdしきい値までのTemporalIdを有する)に関連する他のトレーリングピクチャは、RASLピクチャを参照しないか(ただし、場合によってはRADLピクチャを参照することがある)またはいかなるリーディングピクチャも参照しないトレーリングピクチャとしてコーディングされる。そのようなTemporalIdベースのトレーリングピクチャ指定により、トレーリングピクチャおよび修正トレーリングピクチャがオープンGOP IRAPピクチャのピクチャグループ(GOP)内で分散することが可能になり、その結果、IRAPピクチャにおいてランダムアクセスが行われるときに出力順序において隣接する修正トレーリングピクチャのセットを廃棄するのではなく(出力ピクチャにおける時間的ギャップにつながることになる)、時間的なレート(フレーム/ピクチャレート)の低減が起こる。
【０１３０】
いくつかの例では、リーディングピクチャをRASLピクチャまたはRADLピクチャに指定するために使用されるTemporalIDしきい値は、トレーリングピクチャを指定するために使用されるTemporalID値と同じTemporalID値であってよい。いくつかの例では、リーディングピクチャをRASLピクチャまたはRADLピクチャに指定するために使用されるTemporalIDしきい値は、トレーリングピクチャを指定するために使用されるTemporalID値と異なってよい。
【０１３１】
本明細書での説明は、TemporalIdしきい値までの(すなわち、それ以下の)TemporalIdを有するGOP IRAPピクチャに関連するトレーリングピクチャが、RASLピクチャ参照しないかまたはいかなるリーディングピクチャも参照しないトレーリングピクチャとしてコーディングされること、およびその特定のTemporalIdしきい値よりも大きいTemporalIdを有する他の関連するトレーリングピクチャが、修正トレーリングピクチャとしてコーディングされることを示すが、TemporalIdしきい値よりも小さいTemporalIdを有するトレーリングピクチャが、RASLピクチャを参照しないかまたはいかなるリーディングピクチャも参照しないトレーリングピクチャとしてコーディングされてよいこと、およびTemporalIdしきい値以上のTemporalIdを有する他の関連するトレーリングピクチャが、修正トレーリングピクチャとしてコーディングされてよいことを、当業者は諒解されよう。
【０１３２】
例示的な一例では、図3を参照すると、リーディングピクチャおよびトレーリングピクチャに対するtemporalIdしきい値は、1というtemporalIdしきい値として設定され得る。IRAP310に関連するトレーリングピクチャ62、64、66、68、および70は、RADLピクチャしか参照しないかまたはいかなるリーディングピクチャも参照しないトレーリングピクチャとして指定され得、トレーリングピクチャ61、63、65、67、69、および71は、IRAP310のRASLピクチャ、ならびに/または関連するIRAPピクチャ310に出力順序および復号順序において先行するピクチャを、インター予測用に参照する修正トレーリングピクチャとして指定され得る。IRAPピクチャ310においてランダムアクセスまたはスイッチングが行われるとき、IRAPピクチャ310に関連するRASLピクチャ(たとえば、ピクチャ57および59のtemporalIdが時間サブレイヤ2の中にあることにより、ピクチャ57および59)、およびIRAPピクチャに関連する修正トレーリングピクチャ(たとえば、ピクチャ61、63、65、67、69、および71)は、廃棄されるかまたは復号されない。トレーリングピクチャを規定するためにTemporalIdしきい値を使用することによって、IRAPピクチャ310に関連するRASLピクチャおよび修正トレーリングピクチャが除去されるとき、時間サブレイヤ0および時間サブレイヤ1のピクチャしか復号および出力されないので、時間的なフレームレートは、時間サブレイヤ2のフレームレート(たとえば、240fps)から時間サブレイヤ1のフレームレート(たとえば、120fps)に下がる。
【０１３３】
リーディングピクチャのTemporalIdに基づいてリーディングピクチャをRASLピクチャまたはRADLピクチャに指定することによって、適応ストリーミングにおけるオープンGOPベースの表現スイッチングおよびランダムアクセスメカニズムが可能にされる。また、本明細書で説明する他の例(たとえば、TemporalIdベースのトレーリングピクチャ指定、上記で説明した制約またはガイドラインのうちの1つまたは複数を適用すること、上記で説明した現在の制約のうちの1つまたは複数を除外することなど)のうちの1つまたは複数を実行することによって、そのようなシステムは、なお一層効率的かつ生産的にされ得る。たとえば、本明細書で説明するシステムおよび方法は、オープンGOP IRAPピクチャを使用する適応ストリーミングシステムを使用してランダムアクセスおよび表現スイッチングが実行されるとき、ビデオコンテンツの連続再生を可能にする。上記で説明したように、本明細書で説明するシステムおよび方法は、廃棄されるリーディングピクチャをピクチャグループ内で分散させ、その結果、出力順序において隣接するピクチャのセットが廃棄されるのではなく(時間的ギャップにつながる)、時間的なレートの低減を受ける。そのようなメカニズムにより、スイッチングポイントにおけるコーディング効率とフレームレートとの間のトレードオフのフレキシブルな制御が可能になる。
【０１３４】
図6は、本明細書で説明する技法のうちの1つまたは複数を使用して、ビデオビットストリームを生成するためにビデオデータを符号化するプロセス600の別の例を示す。602において、プロセス600は、エンコーダにおいてビデオデータを取得することを含む。
【０１３５】
604において、プロセス600は、イントラランダムアクセスポイント(IRAP)ピクチャをビデオデータから決定することを含む。606において、プロセス600は、IRAPピクチャに関連する1つまたは複数のリーディングピクチャの第1のセットを、ランダムアクセス復号可能リーディング(RADL)ピクチャとしてコーディングすることを含む。1つまたは複数のリーディングピクチャの第1のセットは、1つまたは複数のリーディングピクチャの第1のセットがTemporalIdしきい値以下の時間識別子(TemporalId)を有することに基づいて、1つまたは複数のRADLピクチャとしてコーディングされる。608において、プロセス600は、IRAPピクチャに関連する1つまたは複数のリーディングピクチャの第2のセットを、ランダムアクセススキップドリーディング(RASL)ピクチャとしてコーディングすることを含む。1つまたは複数のリーディングピクチャの第2のセットは、1つまたは複数のリーディングピクチャの第2のセットがTemporalIdしきい値よりも大きいTemporalIdを有することに基づいて、1つまたは複数のRASLピクチャとしてコーディングされる。IRAPピクチャを伴うリーディングピクチャは、ピクチャのTemporalIdに基づいて、RASLピクチャ(または、RASLのようなピクチャ)またはRADLピクチャ(または、RADLのようなピクチャ)としてそのように規定される。場合によっては、TemporalIdしきい値よりも小さいTemporalIdを有するリーディングピクチャがRADLピクチャとしてコーディングされてよいこと、およびTemporalIdしきい値以上のTemporalIdを有する他の関連するリーディングピクチャがRASLピクチャとしてコーディングされてよいことを、当業者は諒解されよう。
【０１３６】
610において、プロセス600は、ビデオビットストリームを生成することを含む。生成されるビデオビットストリームは、IRAPピクチャ、1つまたは複数のリーディングピクチャの第1のセット、および1つまたは複数のリーディングピクチャの第2のセットを含む。いくつかの例では、プロセス600は、TemporalIdしきい値をビデオビットストリームの中でシグナリングすることを含む。
【０１３７】
いくつかの例では、IRAPピクチャはクリーンランダムアクセス(CRA)ピクチャである。たとえば、現在のHEVC規格の下で現在使用されるCRAピクチャは、そのリーディングピクチャがリーディングピクチャのTemporalIdに基づいてRADLピクチャまたはRASLピクチャとして規定されるように再定義され得る。いくつかの例では、新たなタイプのIRAPピクチャが定義され、その結果、IRAPピクチャに関連するリーディングピクチャは、ピクチャのTemporalIdに基づいて、RASLピクチャとして(または、RASLピクチャと類似の特性を有するが異なってラベル付けされるピクチャとして)またはRADLピクチャとして(または、RADLピクチャと類似の特性を有するが異なってラベル付けされるピクチャとして)規定される。
【０１３８】
いくつかの例では、プロセス600は、1つまたは複数のリーディングピクチャの第1のセットおよび1つまたは複数のリーディングピクチャの第2のセットを、第1のセットおよび第2のセットの中の各リーディングピクチャのTemporalIdによる出力順序で配列することを含む。そのような例では、第1のセットの1つまたは複数のRADLピクチャは、第2のセットの1つまたは複数のRASLピクチャよりも小さいTemporalIdを有する。そのような例にとってのいくつかの場合、RASLピクチャが出力順序においてすべてのRADLピクチャに先行しなければならないという制約は、本明細書で説明するTemporalIdベースのメカニズムを使用するリーディングピクチャ、トレーリングピクチャ、および関連するIRAPピクチャに対して除外され得る。
【０１３９】
いくつかの例では、プロセス600は、1つまたは複数のリーディングピクチャの第1のセットおよび1つまたは複数のリーディングピクチャの第2のセットを、交互の出力順序で配列することを含む。たとえば、時間スケーラビリティおよび時間サブレイヤが使用されない場合、RASLピクチャおよびRADLピクチャは、RASLピクチャおよびRADLピクチャの順序が交互の出力順序(たとえば、RASLピクチャ、次いでRADLピクチャ、次いでRASLピクチャ、以下同様)となるように配列され得る。
【０１４０】
いくつかの例では、ビデオデータはビデオ表現の一部であり、IRAPピクチャにおいてビデオ表現へのスイッチングが行われるとき、1つまたは複数のRASLピクチャは廃棄される。1つまたは複数のRASLピクチャが廃棄されるとき、ビデオ表現は、1つまたは複数の時間サブレイヤの縮小セットを使用して出力される。さらに、IRAPピクチャに関連する1つまたは複数のトレーリングピクチャが復号されるとき、ビデオ表現は、時間サブレイヤの拡大セットを使用して出力される。図5に関する例示的な一例では、(RASLピクチャが廃棄されるか、またはさもなければ復号されないことに起因して、RADLピクチャしか含まない)リーディングピクチャ520が復号される間、フレームレートは、低い方のフレームレート(たとえば、第3の時間サブレイヤ2による)に低減され得る。トレーリングピクチャ522が復号され始めると、フレームレートは、高い方のフレームレート(たとえば、第4の時間サブレイヤ3による)に戻され得る。そのようなメカニズムを使用すると、ランダムアクセスまたはスイッチングが行われるときにいくつかの連続するRASLピクチャを欠落させるのではなく、欠落するRASLピクチャは、TemporalID値に従って、欠落しないRADLピクチャと交互にされる。
【０１４１】
いくつかの例では、TemporalIdしきい値以下のTemporalIdを有する1つまたは複数のリーディングピクチャの第1のセットは、復号順序においてIRAPピクチャよりも前のピクチャに依存せず、復号順序においてIRAPピクチャよりも前のピクチャを参照することなく復号可能である。
【０１４２】
いくつかの例では、TemporalIdしきい値よりも大きいTemporalIdを有する1つまたは複数のリーディングピクチャの第2のセットの1つまたは複数のRASLピクチャは、復号順序においてIRAPピクチャよりも前のピクチャに依存する。
【０１４３】
いくつかの例では、TemporalIdしきい値以下のTemporalIdを有する1つまたは複数のリーディングピクチャの第1のセットは、IRAPピクチャに関連する1つまたは複数のトレーリングピクチャに対するインター予測用の参照として使用可能である。そのような例では、IRAPピクチャに関連するRADLピクチャは、IRAPピクチャに関連する1つまたは複数のトレーリングピクチャのインター予測用の参照として使用され得る。さらに、そのような例では、トレーリングピクチャがインター予測用の参照としてリーディングピクチャを使用してはならないという制約は、本明細書で説明するTemporalIdベースのメカニズムを使用するリーディングピクチャ、トレーリングピクチャ、および関連するIRAPピクチャに対して除外され得る。
【０１４４】
1つまたは複数のリーディングピクチャの第1のセットが1つまたは複数のトレーリングピクチャに対するインター予測用の参照として使用可能である例では、プロセス600は、1つまたは複数のリーディングピクチャの第1のセットを1つまたは複数のトレーリングピクチャがインター予測用の参照として使用することを許容するIRAPピクチャとして、IRAPピクチャを識別する識別情報をビデオビットストリームの中でシグナリングすることをさらに含むことができる。そのような例では、識別情報は、IRAPピクチャのためのネットワークアブストラクションレイヤ(NAL)ユニットタイプを含むことができる。NALユニットタイプは、瞬時復号リフレッシュ(IDR)タイプ、クリーンランダムアクセス(CRA)タイプ、およびブロークンリンクアクセス(BLA)タイプ以外の、新たなタイプである。
【０１４５】
いくつかの例では、TemporalIdしきい値よりも大きいTemporalIdを有する1つまたは複数のリーディングピクチャの第2のセットは、IRAPピクチャに関連する1つまたは複数のトレーリングピクチャに対するインター予測用の参照として使用可能である。そのようなトレーリングピクチャは、いくつかの実装形態では、修正トレーリングピクチャと呼ばれることがある。そのような例では、IRAPピクチャに関連するRASLピクチャは、IRAPピクチャに関連する1つまたは複数のトレーリングピクチャのインター予測用の参照として使用され得る。トレーリングピクチャがインター予測用の参照としてリーディングピクチャを使用してはならないという制約は、本明細書で説明するTemporalIdベースのメカニズムを使用するリーディングピクチャ、トレーリングピクチャ、および関連するIRAPピクチャに対して除外され得る。
【０１４６】
1つまたは複数のリーディングピクチャの第2のセットが1つまたは複数のトレーリングピクチャに対するインター予測用の参照として使用可能である例では、プロセス600は、1つまたは複数のリーディングピクチャの第2のセットを1つまたは複数のトレーリングピクチャがインター予測用の参照として使用することを許容するIRAPピクチャとして、IRAPピクチャを識別する識別情報をビデオビットストリームの中でシグナリングすることをさらに含むことができる。そのような例では、識別情報は、IRAPピクチャのためのネットワークアブストラクションレイヤ(NAL)ユニットタイプを含むことができる。NALユニットタイプは、瞬時復号リフレッシュ(IDR)タイプ、クリーンランダムアクセス(CRA)タイプ、およびブロークンリンクアクセス(BLA)タイプ以外の、新たなタイプである。
【０１４７】
いくつかの例では、出力順序と復号順序の両方においてIRAPピクチャに先行するピクチャのセットは、IRAPピクチャに関連する1つまたは複数のトレーリングピクチャに対するインター予測用の参照として使用可能である。そのようなトレーリングピクチャは、いくつかの実装形態では、修正トレーリングピクチャと呼ばれることがある。そのような例では、プロセス600は、ピクチャのセットを1つまたは複数のトレーリングピクチャがインター予測用の参照として使用することを許容するIRAPピクチャとして、IRAPピクチャを識別する識別情報をビデオビットストリームの中でシグナリングすることをさらに含むことができる。そのような例では、識別情報は、IRAPピクチャのためのネットワークアブストラクションレイヤ(NAL)ユニットタイプを含むことができる。NALユニットタイプは、瞬時復号リフレッシュ(IDR)タイプ、クリーンランダムアクセス(CRA)タイプ、およびブロークンリンクアクセス(BLA)タイプ以外の、新たなタイプである。
【０１４８】
上記で説明した例のうちのいずれかでは、プロセス600は、いくつかの実装形態では、1つまたは複数のトレーリングピクチャの各々に対するTemporalId、1つまたは複数のトレーリングピクチャの基数、あるいはさもなければ1つまたは複数のトレーリングピクチャの各々に対するTemporalIdおよび1つまたは複数のトレーリングピクチャの基数のうちの、少なくとも1つまたは複数をシグナリングすることを含むことができる。そのような実装形態では、1つまたは複数のトレーリングピクチャは、1つまたは複数のトレーリングピクチャの各々のTemporalIdによる出力順序で配列される。いくつかの例では、1つまたは複数のトレーリングピクチャの各々に対するTemporalIdあるいは1つまたは複数のトレーリングピクチャの基数は、IRAPピクチャのヘッダの中またはパラメータセットの中でシグナリングされる。
【０１４９】
上記で説明した例のうちのいずれかでは、プロセス600は、いくつかの実装形態では、NALユニットタイプを使用して1つまたは複数のトレーリングピクチャの識別情報をシグナリングすることを含むことができる。
【０１５０】
いくつかの例では、プロセス600は、トレーリングピクチャTemporalIdしきい値よりも大きいTemporalIdを有しIRAPピクチャに関連するトレーリングピクチャを、修正トレーリングピクチャ(IRAPのRASLピクチャ、ならびに/または関連するIRAPピクチャに出力順序および復号順序において先行するピクチャを、インター予測用に参照するトレーリングピクチャ)としてコーディングすることを含む。そのような例では、プロセス600は、(トレーリングピクチャTemporalIdしきい値までのTemporalIdを有し)IRAPピクチャに関連するトレーリングピクチャを、RASLピクチャを参照しないか(ただし、場合によってはRADLピクチャを参照することがある)またはいかなるリーディングピクチャも参照しないトレーリングピクチャとしてコーディングすることをさらに含む。上記で説明したように、そのようなTemporalIdベースのトレーリングピクチャ指定により、トレーリングピクチャおよび修正トレーリングピクチャがIRAPピクチャのピクチャグループ(GOP)内で分散することが可能になり、その結果、IRAPピクチャにおいてランダムアクセスが行われるときに出力順序において隣接する修正トレーリングピクチャのセットを廃棄するのではなく、時間的なレート(フレーム/ピクチャレート)の低減が起こる。いくつかの例では、リーディングピクチャをRASLピクチャまたはRADLピクチャに指定するために使用されるリーディングピクチャTemporalIDしきい値は、トレーリングピクチャを指定するために使用されるトレーリングピクチャTemporalID値と同じであってよい。いくつかの例では、リーディングピクチャTemporalIDしきい値は、トレーリングピクチャTemporalID値と異なってよい。
【０１５１】
図7は、本明細書で説明する技法のうちの1つまたは複数を使用して、ビデオデータを取得するために符号化ビデオビットストリームを復号するプロセス700の一例を示す。702において、プロセス700は、符号化ビデオビットストリームにアクセスすることを含む。符号化ビデオビットストリームは、イントラランダムアクセスポイント(IRAP)ピクチャ、TemporalIdしきい値以下の時間識別子(TemporalId)を有する1つまたは複数のランダムアクセス復号可能リーディング(RADL)ピクチャのセット、およびTemporalIdしきい値よりも大きいTemporalIdを有する1つまたは複数のランダムアクセススキップドリーディング(RASL)ピクチャのセットを含む。IRAPピクチャを伴うリーディングピクチャは、ピクチャのTemporalIdに基づいて、RASLピクチャ(または、RASLのようなピクチャ)またはRADLピクチャ(または、RADLのようなピクチャ)としてそのように規定される。場合によっては、TemporalIdしきい値よりも小さいTemporalIdを有するリーディングピクチャがRADLピクチャとしてコーディングされてよいこと、およびTemporalIdしきい値以上のTemporalIdを有する他の関連するリーディングピクチャがRASLピクチャとしてコーディングされてよいことを、当業者は諒解されよう。
【０１５２】
704において、プロセス700は、ビデオデータを取得するために符号化ビデオビットストリームを復号することを含む。いくつかの例では、ビデオビットストリームは、TemporalIdしきい値を含む。場合によっては、プロセス700は、ビデオビットストリームからTemporalIdしきい値を復号することを含む。
【０１５３】
いくつかの例では、IRAPピクチャはクリーンランダムアクセス(CRA)ピクチャである。たとえば、現在のHEVC規格の下で現在使用されるCRAピクチャは、そのリーディングピクチャがリーディングピクチャのTemporalIdに基づいてRADLピクチャまたはRASLピクチャとして規定されるように再定義され得る。いくつかの例では、新たなタイプのIRAPピクチャが定義され、その結果、IRAPピクチャに関連するリーディングピクチャは、ピクチャのTemporalIdに基づいて、RASLピクチャとして(または、RASLピクチャと類似の特性を有するが異なってラベル付けされるピクチャとして)またはRADLピクチャとして(または、RADLピクチャと類似の特性を有するが異なってラベル付けされるピクチャとして)規定される。
【０１５４】
いくつかの例では、1つまたは複数のRADLピクチャのセットおよび1つまたは複数のRASLピクチャのセットは、1つまたは複数のRADLピクチャおよび1つまたは複数のRADLピクチャの時間識別子による出力順序で配列される。そのような例では、1つまたは複数のRADLピクチャは、1つまたは複数のRASLピクチャよりも小さいTemporalIdを有する。そのような例にとってのいくつかの場合、RASLピクチャが出力順序においてすべてのRADLピクチャに先行しなければならないという制約は、本明細書で説明するTemporalIdベースのメカニズムを使用するリーディングピクチャ、トレーリングピクチャ、および関連するIRAPピクチャに対して除外され得る。
【０１５５】
いくつかの例では、1つまたは複数のRADLピクチャのセットおよび1つまたは複数のRASLピクチャのセットは、交互の出力順序で配列される。たとえば、時間スケーラビリティおよび時間サブレイヤが使用されない場合、RASLピクチャおよびRADLピクチャは、RASLピクチャおよびRADLピクチャの順序が交互の出力順序となるように配列され得る。
【０１５６】
いくつかの例では、ビデオデータはビデオ表現の一部であり、そのような例では、プロセス700は、IRAPピクチャにおいてビデオ表現にスイッチングすることと、1つまたは複数のRASLピクチャのセットを廃棄することと、1つまたは複数のRASLピクチャのセットが廃棄されるとき、1つまたは複数の時間サブレイヤの縮小セットを使用してビデオ表現を出力することとを含む。いくつかの例では、プロセス700は、IRAPピクチャに関連する1つまたは複数のトレーリングピクチャを復号することと、1つまたは複数のトレーリングピクチャが復号されるとき、時間サブレイヤの拡大セットを使用してビデオ表現を出力することとをさらに含むことができる。図5に関する例示的な一例では、(RASLピクチャが廃棄されるか、またはさもなければ復号されないことに起因して、RADLピクチャしか含まない)リーディングピクチャ520が復号される間、フレームレートは、低い方のフレームレート(たとえば、第3の時間サブレイヤ2による)に低減され得る。トレーリングピクチャ522が復号され始めると、フレームレートは、高い方のフレームレート(たとえば、第4の時間サブレイヤ3による)に戻され得る。そのようなメカニズムを使用すると、ランダムアクセスまたはスイッチングが行われるときにいくつかの連続するRASLピクチャを欠落させるのではなく、欠落するRASLピクチャは、TemporalID値に従って、欠落しないRADLピクチャと交互にされる。
【０１５７】
いくつかの例では、プロセス700は、復号順序においてIRAPピクチャよりも前のピクチャを参照することなく、インター予測を使用して1つまたは複数のRADLピクチャのセットを復号することを含む。たとえば、1つまたは複数のRADLピクチャのセットは、復号順序においてIRAPピクチャよりも前のピクチャに依存しない。
【０１５８】
いくつかの例では、プロセス700は、復号順序においてIRAPピクチャよりも前のピクチャを参照することによって、インター予測を使用して1つまたは複数のRASLピクチャのセットを復号することを含む。たとえば、1つまたは複数のRASLピクチャのセットのうちの少なくとも1つは、復号順序においてIRAPピクチャよりも前のピクチャに依存し得る。
【０１５９】
いくつかの例では、プロセス700は、復号順序においてIRAPピクチャよりも前のピクチャがインター予測用の参照として利用可能でないと決定することを含む。たとえば、ランダムアクセスまたはストリームスイッチングは、IRAPピクチャにおいて行われてよく、その場合、復号順序においてIRAPピクチャよりも前のピクチャは、参照として利用可能でないことがある。そのような例では、プロセス700は、1つまたは複数のRASLピクチャのセットを廃棄することをさらに含む。RASLピクチャが廃棄されるとき、RADLピクチャが復号される間、低い方のフレームレートにフレームレートを低減することを含むことができるという結果になる。IRAPピクチャに関連するトレーリングピクチャが復号され始めると、フレームレートは、高い方のフレームレートに戻され得る。
【０１６０】
いくつかの例では、プロセス700は、参照としてRADLピクチャのうちの少なくとも1つを使用して、IRAPピクチャに関連する1つまたは複数のトレーリングピクチャのインター予測を実行することを含む。そのような例では、IRAPピクチャに関連するRADLピクチャは、IRAPピクチャに関連する1つまたは複数のトレーリングピクチャのインター予測用の参照として使用され得る。さらに、そのような例では、トレーリングピクチャがインター予測用の参照としてリーディングピクチャを使用してはならないという制約は、本明細書で説明するTemporalIdベースのメカニズムを使用するリーディングピクチャ、トレーリングピクチャ、および関連するIRAPピクチャに対して除外され得る。
【０１６１】
RADLピクチャが1つまたは複数のトレーリングピクチャに対するインター予測用の参照として使用可能である例では、ビデオビットストリームは、RADLピクチャを1つまたは複数のトレーリングピクチャがインター予測用の参照として使用することを許容するIRAPピクチャとして、IRAPピクチャを識別する識別情報をさらに含むことができる。そのような例では、識別情報は、IRAPピクチャのためのネットワークアブストラクションレイヤ(NAL)ユニットタイプを含むことができる。NALユニットタイプは、瞬時復号リフレッシュ(IDR)タイプ、クリーンランダムアクセス(CRA)タイプ、およびブロークンリンクアクセス(BLA)タイプ以外の、新たなタイプである。
【０１６２】
いくつかの例では、プロセス700は、参照としてRASLピクチャのうちの少なくとも1つを使用して、IRAPピクチャに関連する1つまたは複数のトレーリングピクチャのインター予測を実行することを含む。そのような例では、IRAPピクチャに関連するRASLピクチャは、IRAPピクチャに関連する1つまたは複数のトレーリングピクチャのインター予測用の参照として使用され得る。そのようなトレーリングピクチャは、いくつかの実装形態では、修正トレーリングピクチャと呼ばれることがある。トレーリングピクチャがインター予測用の参照としてリーディングピクチャを使用してはならないという制約は、本明細書で説明するTemporalIdベースのメカニズムを使用するリーディングピクチャ、トレーリングピクチャ、および関連するIRAPピクチャに対して除外され得る。
【０１６３】
RASLピクチャが1つまたは複数のトレーリングピクチャに対するインター予測用の参照として使用可能である例では、ビデオビットストリームは、RASLピクチャを1つまたは複数のトレーリングピクチャがインター予測用の参照として使用することを許容するIRAPピクチャとして、IRAPピクチャを識別する識別情報をさらに含むことができる。そのような例では、識別情報は、IRAPピクチャのためのネットワークアブストラクションレイヤ(NAL)ユニットタイプを含むことができる。NALユニットタイプは、瞬時復号リフレッシュ(IDR)タイプ、クリーンランダムアクセス(CRA)タイプ、およびブロークンリンクアクセス(BLA)タイプ以外の、新たなタイプである。
【０１６４】
いくつかの例では、プロセス700は、出力順序と復号順序の両方においてIRAPピクチャに先行するピクチャのセットを使用して、IRAPピクチャに関連する1つまたは複数のトレーリングピクチャのインター予測を実行することを含む。そのようなトレーリングピクチャは、いくつかの実装形態では、修正トレーリングピクチャと呼ばれることがある。そのような例では、ビデオビットストリームは、ピクチャのセットを1つまたは複数のトレーリングピクチャがインター予測用の参照として使用することを許容するIRAPピクチャとして、IRAPピクチャを識別する識別情報を含むことができる。そのような例では、識別情報は、IRAPピクチャのためのネットワークアブストラクションレイヤ(NAL)ユニットタイプを含むことができる。NALユニットタイプは、瞬時復号リフレッシュ(IDR)タイプ、クリーンランダムアクセス(CRA)タイプ、およびブロークンリンクアクセス(BLA)タイプ以外の、新たなタイプである。
【０１６５】
上記で説明した例のうちのいずれかでは、プロセス700は、いくつかの実装形態では、1つまたは複数のトレーリングピクチャの各々に対するTemporalId、1つまたは複数のトレーリングピクチャの基数、あるいはさもなければ1つまたは複数のトレーリングピクチャの各々に対するTemporalIdおよび1つまたは複数のトレーリングピクチャの基数のうちの、少なくとも1つまたは複数を受信することを含むことができる。そのような実装形態では、1つまたは複数のトレーリングピクチャは、1つまたは複数のトレーリングピクチャの各々のTemporalIdによる出力順序で配列される。いくつかの例では、1つまたは複数のトレーリングピクチャの各々に対するTemporalIdあるいは1つまたは複数のトレーリングピクチャの基数は、IRAPピクチャのヘッダの中またはパラメータセットの中でシグナリングされる。
【０１６６】
上記で説明した例のうちのいずれかでは、プロセス700は、いくつかの実装形態では、NALユニットタイプを使用して1つまたは複数のトレーリングピクチャの識別情報を受信することを含むことができる。
【０１６７】
いくつかの例では、トレーリングピクチャTemporalIdしきい値よりも大きいTemporalIdを有しIRAPピクチャに関連するトレーリングピクチャは、修正トレーリングピクチャ(IRAPピクチャのRASLピクチャ、ならびに/または関連するIRAPピクチャに出力順序および復号順序において先行するピクチャを、インター予測用に参照するトレーリングピクチャ)としてコーディングされ、(トレーリングピクチャTemporalIdしきい値までのTemporalIdを有し)IRAPピクチャに関連する他のトレーリングピクチャは、RASLピクチャを参照しないか(ただし、場合によってはRADLピクチャを参照することがある)またはいかなるリーディングピクチャも参照しないトレーリングピクチャとしてコーディングされる。トレーリングピクチャおよび修正トレーリングピクチャは、IRAPピクチャのピクチャグループ(GOP)内で分散することができ、その結果、IRAPピクチャにおいてランダムアクセスが行われるときに出力順序において隣接する修正トレーリングピクチャのセットを廃棄するのではなく、時間的なレート(フレーム/ピクチャレート)の低減が起こる。いくつかの例では、リーディングピクチャをRASLピクチャまたはRADLピクチャに指定するために使用されるリーディングピクチャTemporalIDしきい値は、トレーリングピクチャを指定するために使用されるトレーリングピクチャTemporalID値と同じであってよい。いくつかの例では、リーディングピクチャTemporalIDしきい値は、トレーリングピクチャTemporalID値と異なってよい。
【０１６８】
いくつかの例では、プロセス600および700は、図1に示すシステム100などのコンピューティングデバイスまたは装置によって実行されてよい。たとえば、プロセス600は図1および図8に示す符号化デバイス104によって実行されてよく、プロセス700は図1および図9に示す復号デバイス112によって実行されてよい。場合によっては、コンピューティングデバイスまたは装置は、プロセス600および700のステップを実行するように構成されているデバイスのプロセッサ、マイクロプロセッサ、マイクロコンピュータ、または他の構成要素を含み得る。いくつかの例では、コンピューティングデバイスまたは装置は、ビデオフレームを含むビデオデータ(たとえば、ビデオシーケンス)をキャプチャするように構成されたカメラを含み得る。いくつかの例では、ビデオデータをキャプチャするカメラまたは他のキャプチャデバイスは、コンピューティングデバイスとは別個であり、その場合、コンピューティングデバイスは、キャプチャされたビデオデータを受信または取得する。コンピューティングデバイスは、ビデオデータを通信するように構成されたネットワークインターフェースをさらに含み得る。ネットワークインターフェースは、インターネットプロトコル(IP)ベースのデータまたは他のタイプのデータを通信するように構成され得る。
【０１６９】
プロセス600および700は、論理フロー図として図示され、その動作は、ハードウェア、コンピュータ命令、またはそれらの組合せで実施され得る動作のシーケンスを表す。コンピュータ命令のコンテキストでは、動作は、1つまたは複数のプロセッサによって実行されたとき、説明する動作を実行する1つまたは複数のコンピュータ可読記憶媒体に記憶されたコンピュータ実行可能命令を表す。概して、コンピュータ実行可能命令は、特定の機能を実行し、または特定のデータタイプを実装する、ルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。動作が説明される順序は、限定として解釈されることを意図せず、説明される任意の数の動作は、プロセスを実施するために任意の順序で、かつ/または並列に組み合わせられてよい。
【０１７０】
追加として、プロセス600および700は、実行可能命令とともに構成された1つまたは複数のコンピュータシステムの制御下で実行されてよく、ハードウェアまたはその組合せによって1つまたは複数のプロセッサ上で集合的に実行するコード(たとえば、実行可能命令、1つもしくは複数のコンピュータプログラム、または1つもしくは複数のアプリケーション)として実装されてよい。上述のように、コードは、たとえば、1つまたは複数のプロセッサによって実行可能な複数の命令を備えるコンピュータプログラムの形態で、コンピュータ可読記憶媒体または機械可読記憶媒体に記憶され得る。コンピュータ可読記憶媒体または機械可読記憶媒体は非一時的であってよい。
【０１７１】
本明細書で説明するコーディング技法は、例示的なビデオ符号化および復号システム(たとえば、システム100)において実施され得る。いくつかの例では、システムは、宛先デバイスによって後で復号されるべき符号化ビデオデータを提供するソースデバイスを含む。具体的には、ソースデバイスは、コンピュータ可読媒体を介して宛先デバイスにビデオデータを提供する。ソースデバイスおよび宛先デバイスは、デスクトップコンピュータ、ノートブック(すなわち、ラップトップ)コンピュータ、タブレットコンピュータ、セットトップボックス、いわゆる「スマート」フォンなどの電話ハンドセット、いわゆる「スマート」パッド、テレビジョン、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲームコンソール、ビデオストリーミングデバイスなどを含む、広範囲のデバイスのいずれかを備え得る。場合によっては、ソースデバイスおよび宛先デバイスは、ワイヤレス通信のために装備され得る。
【０１７２】
宛先デバイスは、復号されるべき符号化ビデオデータを、コンピュータ可読媒体を介して受信し得る。コンピュータ可読媒体は、ソースデバイスから宛先デバイスへ符号化ビデオデータを移動することが可能な任意のタイプの媒体またはデバイスを備え得る。一例では、コンピュータ可読媒体は、ソースデバイスが符号化ビデオデータをリアルタイムで宛先デバイスに直接送信することを可能にするための通信媒体を備え得る。符号化ビデオデータは、ワイヤレス通信プロトコルなどの通信規格に従って変調され得、宛先デバイスへ送信され得る。通信媒体は、無線周波数(RF)スペクトルまたは1つもしくは複数の物理伝送線路などの、任意のワイヤレス通信媒体または有線通信媒体を備え得る。通信媒体は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはインターネットなどのグローバルネットワークなどの、パケットベースネットワークの一部を形成し得る。通信媒体は、ルータ、スイッチ、基地局、またはソースデバイスから宛先デバイスへの通信を容易にするために有用であり得る任意の他の機器を含み得る。
【０１７３】
いくつかの例では、符号化データは、出力インターフェースから記憶デバイスに出力され得る。同様に、符号化データは、入力インターフェースによって記憶デバイスからアクセスされ得る。記憶デバイスは、ハードドライブ、Blu-ray(登録商標)ディスク、DVD、CD-ROM、フラッシュメモリ、揮発性メモリもしくは不揮発性メモリ、または符号化ビデオデータを記憶するための任意の他の適切なデジタル記憶媒体などの、分散されるかまたは局所的にアクセスされる様々なデータ記憶媒体のいずれかを含み得る。さらなる一例では、記憶デバイスは、ソースデバイスによって生成された符号化ビデオを記憶し得るファイルサーバまたは別の中間記憶デバイスに相当し得る。宛先デバイスは、記憶デバイスからの記憶されたビデオデータに、ストリーミングまたはダウンロードを介してアクセスし得る。ファイルサーバは、符号化ビデオデータを記憶するとともにその符号化ビデオデータを宛先デバイスへ送信することが可能な、任意のタイプのサーバであってよい。例示的なファイルサーバは、ウェブサーバ(たとえば、ウェブサイト用の)、FTPサーバ、ネットワーク接続ストレージ(NAS)デバイス、またはローカルディスクドライブを含む。宛先デバイスは、インターネット接続を含む任意の標準的なデータ接続を通じて符号化ビデオデータにアクセスし得る。これは、ワイヤレスチャネル(たとえば、Wi-Fi接続)、有線接続(たとえば、DSL、ケーブルモデムなど)、またはファイルサーバに記憶された符号化ビデオデータにアクセスするのに適した、その両方の組合せを含み得る。記憶デバイスからの符号化ビデオデータの送信は、ストリーミング送信、ダウンロード送信、またはそれらの組合せであり得る。
【０１７４】
本開示の技法は、必ずしもワイヤレスの適用例または設定に限定されるとは限らない。技法は、オーバージエアテレビジョン放送、ケーブルテレビジョン送信、衛星テレビジョン送信、動的適応ストリーミングオーバーHTTP(DASH:dynamic adaptive streaming over HTTP)などのインターネットストリーミングビデオ送信、データ記憶媒体上に符号化されているデジタルビデオ、データ記憶媒体上に記憶されたデジタルビデオの復号、または他の適用例などの、様々なマルチメディア用途のいずれかのサポートの際にビデオコーディングに適用され得る。いくつかの例では、システムは、ビデオストリーミング、ビデオ再生、ビデオブロードキャスティング、および/またはビデオ電話などの適用例をサポートするために、一方向または双方向のビデオ送信をサポートするように構成され得る。
【０１７５】
一例では、ソースデバイスは、ビデオソース、ビデオエンコーダ、および出力インターフェースを含む。宛先デバイスは、入力インターフェース、ビデオデコーダ、およびディスプレイデバイスを含み得る。ソースデバイスのビデオエンコーダは、本明細書で開示する技法を適用するように構成され得る。他の例では、ソースデバイスおよび宛先デバイスは、他の構成要素または構成を含み得る。たとえば、ソースデバイスは、外部カメラなどの外部ビデオソースからビデオデータを受信してよい。同様に、宛先デバイスは、一体型ディスプレイデバイスを含むのではなく、外部のディスプレイデバイスとインターフェースしてよい。
【０１７６】
上記の例示的なシステムは一例にすぎない。ビデオデータを並行して処理するための技法は、任意のデジタルビデオ符号化および/または復号デバイスによって実行されてよい。概して、本開示の技法はビデオ符号化デバイスによって実行されるが、技法はまた、通常は「コーデック」と呼ばれるビデオエンコーダ/デコーダによって実行されてよい。その上、本開示の技法はまた、ビデオプロセッサによって実行されてよい。ソースデバイスおよび宛先デバイスはそのようなコーディングデバイスの例にすぎず、ソースデバイスは、宛先デバイスへの送信のためにコード化ビデオデータを生成する。いくつかの例では、ソースデバイスおよび宛先デバイスは、デバイスの各々がビデオ符号化および復号構成要素を含むように、実質的に対称的に動作し得る。したがって、例示的なシステムは、たとえば、ビデオストリーミング、ビデオ再生、ビデオブロードキャスティング、またはビデオ電話のために、ビデオデバイス間での一方向または双方向のビデオ送信をサポートし得る。
【０１７７】
ビデオソースは、ビデオカメラ、前にキャプチャされたビデオを含むビデオアーカイブ、および/またはビデオコンテンツプロバイダからビデオを受信するためのビデオフィードインターフェースなどの、ビデオキャプチャデバイスを含み得る。さらなる代替として、ビデオソースは、ソースビデオとしてのコンピュータグラフィックスベースデータ、またはライブビデオ、アーカイブされたビデオ、およびコンピュータ生成されたビデオの組合せを生成し得る。場合によっては、ビデオソースがビデオカメラである場合、ソースデバイスおよび宛先デバイスは、いわゆるカメラフォンまたはビデオフォンを形成し得る。しかしながら、上述のように、本開示で説明する技法は、一般に、ビデオコーディングに適用可能であり得、ワイヤレスおよび/または有線の用途に適用され得る。各事例において、キャプチャされたビデオ、プリキャプチャされたビデオ、またはコンピュータ生成されたビデオは、ビデオエンコーダによって符号化され得る。符号化されたビデオ情報は、次いで、出力インターフェースによってコンピュータ可読媒体上に出力され得る。
【０１７８】
述べたように、コンピュータ可読媒体は、ワイヤレスブロードキャストもしくは有線ネットワーク送信などの一時的媒体、またはハードディスク、フラッシュドライブ、コンパクトディスク、デジタルビデオディスク、Blu-ray(登録商標)ディスク、または他のコンピュータ可読媒体などの記憶媒体(すなわち、非一時的記憶媒体)を含み得る。いくつかの例では、ネットワークサーバ(図示せず)が、ソースデバイスから符号化ビデオデータを受信し得、たとえば、ネットワーク送信を介して、宛先デバイスに符号化ビデオデータを提供し得る。同様に、ディスクスタンピング施設などの媒体生産施設のコンピューティングデバイスが、ソースデバイスから符号化ビデオデータを受信し得、符号化ビデオデータを含むディスクを生産し得る。したがって、コンピュータ可読媒体は、様々な例において、様々な形式の1つまたは複数のコンピュータ可読媒体を含むものと理解され得る。
【０１７９】
宛先デバイスの入力インターフェースは、コンピュータ可読媒体から情報を受信する。コンピュータ可読媒体の情報は、ビデオエンコーダによって規定されるシンタックス情報を含み得、シンタックス情報はまた、ビデオデコーダによって使用され、ブロックの特性および/または処理ならびに他のコード化ユニット、たとえば、ピクチャグループ(GOP:group of pictures)を記述する、シンタックス要素を含む。ディスプレイデバイスは、復号ビデオデータをユーザに表示し、陰極線管(CRT)、液晶ディスプレイ(LCD)、プラズマディスプレイ、有機発光ダイオード(OLED)ディスプレイ、または別のタイプのディスプレイデバイスなどの、様々なディスプレイデバイスのいずれかを備え得る。本発明の様々な実施形態が説明された。
【０１８０】
符号化デバイス104および復号デバイス112の具体的な詳細が、それぞれ、図8および図9に示される。図8は、本開示で説明する技法のうちの1つまたは複数を実施し得る例示的な符号化デバイス104を示すブロック図である。符号化デバイス104は、たとえば、本明細書で説明するシンタックス構造(たとえば、VPS、SPS、PPS、または他のシンタックス要素のシンタックス構造)を生成し得る。符号化デバイス104は、ビデオスライス内のビデオブロックのイントラ予測コーディングおよびインター予測コーディングを実行し得る。前に説明したように、イントラコーディングは、所与のビデオフレーム内またはピクチャ内の空間的冗長性を低減または除去するために、空間予測に少なくとも部分的に依拠する。インターコーディングは、ビデオシーケンスの隣接するまたは取り囲むフレーム内の時間的冗長性を低減または除去するために、時間予測に少なくとも部分的に依拠する。イントラモード(Iモード)は、いくつかの空間ベースの圧縮モードのうちのいずれかを指し得る。単方向予測(Pモード)または双方向予測(Bモード)などのインターモードは、いくつかの時間ベースの圧縮モードのうちのいずれかを指し得る。
【０１８１】
符号化デバイス104は、区分ユニット35、予測処理ユニット41、フィルタユニット63、ピクチャメモリ64、加算器50、変換処理ユニット52、量子化ユニット54、およびエントロピー符号化ユニット56を含む。予測処理ユニット41は、動き推定ユニット42、動き補償ユニット44、およびイントラ予測処理ユニット46を含む。ビデオブロック再構成のために、符号化デバイス104はまた、逆量子化ユニット58、逆変換処理ユニット60、および加算器62を含む。フィルタユニット63は、デブロッキングフィルタ、適応ループフィルタ(ALF:adaptive loop filter)、およびサンプル適応オフセット(SAO)フィルタなどの、1つまたは複数のループフィルタを表すことを意図する。フィルタユニット63がループ内フィルタであるものとして図8に示されるが、他の構成では、フィルタユニット63はループ後フィルタとして実装されてよい。後処理デバイス57は、符号化デバイス104によって生成された符号化ビデオデータに、さらなる処理を実行し得る。本開示の技法は、いくつかの事例では、符号化デバイス104によって実施され得る。しかしながら、他の事例では、本開示の技法のうちの1つまたは複数は、後処理デバイス57によって実施されてよい。
【０１８２】
図8に示すように、符号化デバイス104はビデオデータを受信し、区分ユニット35はデータをビデオブロックに区分する。区分することはまた、スライス、スライスセグメント、タイル、または他のもっと大きいユニットに区分すること、ならびに、たとえば、LCUおよびCUの4分木構造によるビデオブロック区分を含み得る。符号化デバイス104は、概して、符号化されるべきビデオスライス内のビデオブロックを符号化する構成要素を示す。スライスは、複数のビデオブロックに(また場合によっては、タイルと呼ばれるビデオブロックのセットに)分割され得る。予測処理ユニット41は、エラー結果(たとえば、コーディングレート、およびひずみのレベルなど)に基づいて、現在ビデオブロックに対して、複数のイントラ予測コーディングモードのうちの1つ、または複数のインター予測コーディングモードのうちの1つなどの、複数の可能なコーディングモードのうちの1つを選択し得る。予測処理ユニット41は、残差ブロックデータを生成するために加算器50に、また参照ピクチャとして使用するための符号化ブロックを再構成するために加算器62に、得られたイントラまたはインターコード化ブロックを提供し得る。
【０１８３】
予測処理ユニット41内のイントラ予測処理ユニット46は、空間的な圧縮を行うために、コーディングされるべき現在ブロックと同じフレームまたはスライスの中の1つまたは複数の隣接ブロックに対する現在ビデオブロックのイントラ予測コーディングを実行し得る。予測処理ユニット41内の動き推定ユニット42および動き補償ユニット44は、時間的な圧縮を行うために、1つまたは複数の参照ピクチャの中の1つまたは複数の予測ブロックに対する現在ビデオブロックのインター予測コーディングを実行する。
【０１８４】
動き推定ユニット42は、ビデオシーケンスにとっての所定のパターンに従って、ビデオスライス用のインター予測モードを決定するように構成され得る。所定のパターンは、シーケンスの中のビデオスライスを、Pスライス、Bスライス、またはGPBスライスとして指定し得る。動き推定ユニット42および動き補償ユニット44は高集積され得るが、概念的な目的のために別個に図示される。動き推定ユニット42によって実行される動き推定は、ビデオブロックにとっての動きを推定する動きベクトルを生成するプロセスである。動きベクトルは、たとえば、現在ビデオフレーム内または現在ピクチャ内のビデオブロックの予測ユニット(PU)の、参照ピクチャ内の予測ブロックに対する変位を示し得る。
【０１８５】
予測ブロックは、絶対差分和(SAD:sum of absolute difference)、2乗差分和(SSD:sum of square difference)、または他の差分メトリックによって決定され得るピクセル差分の観点で、コーディングされるべきビデオブロックのPUと密接に整合するように見出されたブロックである。いくつかの例では、符号化デバイス104は、ピクチャメモリ64に記憶された参照ピクチャのサブ整数ピクセル位置に対する値を計算し得る。たとえば、符号化デバイス104は、参照ピクチャの1/4ピクセル位置、1/8ピクセル位置、または他の分数ピクセル位置の値を補間し得る。したがって、動き推定ユニット42は、フルピクセル位置および分数ピクセル位置に対する動き探索を実行し得、分数ピクセル精度を有する動きベクトルを出力し得る。
【０１８６】
動き推定ユニット42は、PUの位置を参照ピクチャの予測ブロックの位置と比較することによって、インターコード化スライスの中のビデオブロックのPU用の動きベクトルを計算する。参照ピクチャは、第1の参照ピクチャリスト(リスト0)または第2の参照ピクチャリスト(リスト1)から選択されてよく、その各々はピクチャメモリ64に記憶された1つまたは複数の参照ピクチャを識別する。動き推定ユニット42は、計算された動きベクトルをエントロピー符号化ユニット56および動き補償ユニット44へ送る。
【０１８７】
動き補償ユニット44によって実行される動き補償は、場合によっては、サブピクセル精度への補間を実行する動き推定によって決定される動きベクトルに基づいて、予測ブロックをフェッチまたは生成することを伴い得る。現在ビデオブロックのPU用の動きベクトルを受信すると、動き補償ユニット44は、参照ピクチャリストの中で動きベクトルが指す予測ブロックの位置を特定し得る。符号化デバイス104は、コーディングされている現在ビデオブロックのピクセル値から予測ブロックのピクセル値を減算し、ピクセル差分値を形成することによって、残差ビデオブロックを形成する。ピクセル差分値は、ブロックに対する残差データを形成し、ルーマ差分成分とクロマ差分成分の両方を含み得る。加算器50は、この減算演算を実行する1つまたは複数の構成要素を表す。動き補償ユニット44はまた、ビデオスライスのビデオブロックを復号する際の復号デバイス112による使用のために、ビデオブロックおよびビデオスライスに関連付けられたシンタックス要素を生成し得る。
【０１８８】
イントラ予測処理ユニット46は、上記で説明したように、動き推定ユニット42および動き補償ユニット44によって実行されるインター予測の代替として、現在ブロックをイントラ予測し得る。具体的には、イントラ予測処理ユニット46は、現在ブロックを符号化するために使用すべきイントラ予測モードを決定し得る。いくつかの例では、イントラ予測処理ユニット46は、たとえば、別個の符号化パスの間、様々なイントラ予測モードを使用して現在ブロックを符号化し得、イントラ予測処理ユニット46(または、いくつかの例では、モード選択ユニット40)は、テストされたモードから使用すべき適切なイントラ予測モードを選択し得る。たとえば、イントラ予測処理ユニット46は、テストされた様々なイントラ予測モードに対してレートひずみ分析を使用してレートひずみ値を計算し得、テストされたモードの中から最良のレートひずみ特性を有するイントラ予測モードを選択し得る。レートひずみ分析は、概して、符号化ブロックと、符号化ブロックを生成するために符号化された、符号化されていない元のブロックとの間のひずみ(すなわち、エラー)の量、ならびに符号化ブロックを生成するために使用されるビットレート(すなわち、ビット数)を決定する。イントラ予測処理ユニット46は、どのイントラ予測モードがブロックにとって最良のレートひずみ値を示すのかを決定するために、様々な符号化ブロックに対するひずみおよびレートから比を計算し得る。
【０１８９】
いずれの場合も、ブロック用のイントラ予測モードを選択した後、イントラ予測処理ユニット46は、ブロック用の選択されたイントラ予測モードを示す情報をエントロピー符号化ユニット56に提供し得る。エントロピー符号化ユニット56は、選択されたイントラ予測モードを示す情報を符号化し得る。符号化デバイス104は、様々なブロック用の符号化コンテキストの構成データ定義、ならびに最確のイントラ予測モード、イントラ予測モードインデックステーブル、およびコンテキストの各々に対して使用すべき修正されたイントラ予測モードインデックステーブルの表示を、送信されるビットストリームの中に含め得る。ビットストリーム構成データは、複数のイントラ予測モードインデックステーブルおよび修正された複数のイントラ予測モードインデックステーブル(コードワードマッピングテーブルとも呼ばれる)を含み得る。
【０１９０】
予測処理ユニット41がインター予測またはイントラ予測のいずれかを介して現在ビデオブロックに対する予測ブロックを生成した後、符号化デバイス104は、現在ビデオブロックから予測ブロックを減算することによって残差ビデオブロックを形成する。残差ブロックの中の残差ビデオデータは、1つまたは複数のTUの中に含められてよく、変換処理ユニット52に適用され得る。変換処理ユニット52は、離散コサイン変換(DCT)または概念的に類似の変換などの変換を使用して、残差ビデオデータを残差変換係数に変換する。変換処理ユニット52は、ピクセル領域から周波数領域などの変換領域に、残差ビデオデータを変換し得る。
【０１９１】
変換処理ユニット52は、得られた変換係数を量子化ユニット54へ送り得る。量子化ユニット54は、ビットレートをさらに低減するために変換係数を量子化する。量子化プロセスは、係数の一部または全部に関連するビット深度を低減し得る。量子化の程度は、量子化パラメータを調整することによって変更され得る。いくつかの例では、量子化ユニット54は、次いで、量子化変換係数を含む行列の走査を実行し得る。代替として、エントロピー符号化ユニット56が走査を実行してもよい。
【０１９２】
量子化に続いて、エントロピー符号化ユニット56は、量子化変換係数をエントロピー符号化する。たとえば、エントロピー符号化ユニット56は、コンテキスト適応型可変長コーディング(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)コーディング、または別のエントロピー符号化技法を実行し得る。エントロピー符号化ユニット56によるエントロピー符号化に続いて、符号化ビットストリームは、復号デバイス112へ送信されてよく、または復号デバイス112によって後で送信もしくは取出しができるようにアーカイブされてもよい。エントロピー符号化ユニット56はまた、コーディングされている現在ビデオスライス用の動きベクトルおよび他のシンタックス要素をエントロピー符号化し得る。
【０１９３】
逆量子化ユニット58および逆変換処理ユニット60は、参照ピクチャの参照ブロックとして後で使用できるようにピクセル領域における残差ブロックを再構成するために、それぞれ、逆量子化および逆変換を適用する。動き補償ユニット44は、参照ピクチャリスト内の参照ピクチャのうちの1つの予測ブロックに残差ブロックを加算することによって、参照ブロックを計算し得る。動き補償ユニット44はまた、動き推定において使用するためのサブ整数ピクセル値を計算するために、1つまたは複数の補間フィルタを再構成残差ブロックに適用し得る。加算器62は、ピクチャメモリ64に記憶するための参照ブロックを生成するために、動き補償ユニット44によって生成された動き補償された予測ブロックに再構成残差ブロックを加算する。参照ブロックは、後続のビデオフレームまたはピクチャの中のブロックをインター予測するための参照ブロックとして、動き推定ユニット42および動き補償ユニット44によって使用され得る。
【０１９４】
このようにして、図8の符号化デバイス104は、符号化ビデオビットストリームのためのシンタックスを生成するように構成されたビデオエンコーダの一例を表す。符号化デバイス104は、たとえば、上記で説明したように、VPS、SPS、およびPPSパラメータセットを生成し得る。符号化デバイス104は、図6に関して上記で説明したプロセスを含む、本明細書で説明する技法のうちのいずれかを実行し得る。本開示の技法が、概して、符号化デバイス104に関して説明されたが、上述のように、本開示の技法のいくつかはまた、後処理デバイス57によって実施されてよい。
【０１９５】
図9は、例示的な復号デバイス112を示すブロック図である。復号デバイス112は、エントロピー復号ユニット80、予測処理ユニット81、逆量子化ユニット86、逆変換処理ユニット88、加算器90、フィルタユニット91、およびピクチャメモリ92を含む。予測処理ユニット81は、動き補償ユニット82およびイントラ予測処理ユニット84を含む。復号デバイス112は、いくつかの例では、図8からの符号化デバイス104に関連して説明した符号化パスとは概して逆の復号パスを実行し得る。復号デバイス112は、図7に関して上記で説明したプロセスを含む、本明細書で説明する技法のうちのいずれかを実行し得る。
【０１９６】
復号プロセスの間、復号デバイス112は、符号化デバイス104によって送られた符号化ビデオスライスのビデオブロックおよび関連するシンタックス要素を表す符号化ビデオビットストリームを受信する。いくつかの実施形態では、復号デバイス112は、符号化デバイス104から符号化ビデオビットストリームを受信し得る。いくつかの実施形態では、復号デバイス112は、サーバ、メディアアウェアネットワーク要素(MANE:media-aware network element)、ビデオエディタ/スプライサ、または上記で説明した技法のうちの1つもしくは複数を実施するように構成されたそのような他のデバイスなどのネットワークエンティティ79から、符号化ビデオビットストリームを受信し得る。ネットワークエンティティ79は、符号化デバイス104を含んでよく、または含まなくてもよい。本開示で説明する技法のうちのいくつかは、ネットワークエンティティ79が符号化ビデオビットストリームを復号デバイス112へ送信する前に、ネットワークエンティティ79によって実施され得る。いくつかのビデオ復号システムでは、ネットワークエンティティ79および復号デバイス112は、別個のデバイスの一部であってよく、他の事例では、ネットワークエンティティ79に関して説明する機能は、復号デバイス112を備える同じデバイスによって実行されてよい。
【０１９７】
復号デバイス112のエントロピー復号ユニット80は、量子化係数、動きベクトル、および他のシンタックス要素を生成するために、ビットストリームをエントロピー復号する。エントロピー復号ユニット80は、動きベクトルおよび他のシンタックス要素を予測処理ユニット81に転送する。復号デバイス112は、ビデオスライスレベルおよび/またはビデオブロックレベルにおいてシンタックス要素を受信し得る。エントロピー復号ユニット80は、VPS、SPS、およびPPSなどの1つまたは複数のパラメータセットの中の、固定長シンタックス要素と可変長シンタックス要素の両方を処理および構文解析し得る。
【０１９８】
ビデオスライスがイントラコード化(I)スライスとしてコーディングされるとき、予測処理ユニット81のイントラ予測処理ユニット84は、シグナリングされたイントラ予測モード、および現在フレームまたは現在ピクチャの、前に復号されたブロックからのデータに基づいて、現在ビデオスライスのビデオブロックに対する予測データを生成し得る。ビデオフレームがインターコード化(すなわち、B、P、またはGPB)スライスとしてコーディングされるとき、予測処理ユニット81の動き補償ユニット82は、エントロピー復号ユニット80から受信された動きベクトルおよび他のシンタックス要素に基づいて、現在ビデオスライスのビデオブロックに対する予測ブロックを生成する。予測ブロックは、参照ピクチャリスト内の参照ピクチャのうちの1つから生成され得る。復号デバイス112は、ピクチャメモリ92に記憶された参照ピクチャに基づいて、デフォルトの構成技法を使用して、参照フレームリスト、すなわち、リスト0およびリスト1を構成し得る。
【０１９９】
動き補償ユニット82は、動きベクトルおよび他のシンタックス要素を構文解析することによって、現在ビデオスライスのビデオブロックに対する予測情報を決定し、予測情報を使用して、復号されている現在ビデオブロックに対する予測ブロックを生成する。たとえば、動き補償ユニット82は、パラメータセットの中の1つまたは複数のシンタックス要素を使用して、ビデオスライスのビデオブロックをコーディングするために使用された予測モード(たとえば、イントラ予測またはインター予測)、インター予測スライスタイプ(たとえば、Bスライス、Pスライス、またはGPBスライス)、スライスのための1つまたは複数の参照ピクチャリストに対する構成情報、スライスのインター符号化ビデオブロックごとの動きベクトル、スライスのインターコード化ビデオブロックごとのインター予測ステータス、および現在ビデオスライスの中のビデオブロックを復号するための他の情報を決定し得る。
【０２００】
動き補償ユニット82はまた、補間フィルタに基づいて補間を実行し得る。動き補償ユニット82は、参照ブロックのサブ整数ピクセルに対する補間値を計算するために、ビデオブロックの符号化の間に符号化デバイス104によって使用されたような補間フィルタを使用し得る。この場合、動き補償ユニット82は、符号化デバイス104によって使用された補間フィルタを、受信されたシンタックス要素から決定し得、予測ブロックを生成するためにその補間フィルタを使用し得る。
【０２０１】
逆量子化ユニット86は、ビットストリームの中で提供されるとともにエントロピー復号ユニット80によって復号された量子化変換係数を逆量子化(inverse quantize)または逆量子化(de-quantize)する。逆量子化プロセスは、量子化の程度を決定し、同様に、適用されるべき逆量子化の程度を決定するために、ビデオスライスの中のビデオブロックごとに符号化デバイス104によって計算された量子化パラメータを使用することを含み得る。逆変換処理ユニット88は、ピクセル領域における残差ブロックを生成するために、変換係数に逆変換(たとえば、逆DCTまたは他の適切な逆変換)、逆整数変換、または概念的に類似の逆変換プロセスを適用する。
【０２０２】
動き補償ユニット82が動きベクトルおよび他のシンタックス要素に基づいて現在ビデオブロックに対する予測ブロックを生成した後、復号デバイス112は、逆変換処理ユニット88からの残差ブロックを、動き補償ユニット82によって生成された対応する予測ブロックと加算することによって、復号ビデオブロックを形成する。加算器90は、この加算演算を実行する1つまたは複数の構成要素を表す。所望される場合、(コーディングループ中またはコーディングループ後のいずれかの)ループフィルタも、ピクセル遷移を平滑化するために、または別の方法でビデオ品質を改善するために使用され得る。フィルタユニット91は、デブロッキングフィルタ、適応ループフィルタ(ALF)、およびサンプル適応オフセット(SAO)フィルタなどの、1つまたは複数のループフィルタを表すことを意図する。フィルタユニット91がループ内フィルタであるものとして図9に示されるが、他の構成では、フィルタユニット91はループ後フィルタとして実装されてよい。所与のフレームまたはピクチャの中の復号ビデオブロックは、次いで、ピクチャメモリ92に記憶され、ピクチャメモリ92は、後続の動き補償のために使用される参照ピクチャを記憶する。ピクチャメモリ92はまた、図1に示すビデオ宛先デバイス122などのディスプレイデバイス上で後で提示できるように、復号ビデオを記憶する。
【０２０３】
上記の説明では、本出願の態様は、その特定の実施形態を参照しながら説明されたが、本発明がそれらに限定されないことを当業者は認識されよう。したがって、本出願の例示的な実施形態が本明細書で詳細に説明されたが、本発明の概念が別の方法で様々に具現化または採用されてよく、従来技術による限定を除いて、添付の特許請求の範囲がそのような変形形態を含むものと解釈されることを意図することを理解されたい。上記で説明した発明の様々な特徴および態様は、個別または一緒に使用され得る。さらに、実施形態は、本明細書の広い趣旨および範囲から逸脱することなく、本明細書で説明したものを越えた任意の数の環境および適用例において利用され得る。したがって、本明細書および図面は、限定ではなく例示であると見なされるべきである。例示のために、方法は特定の順序で説明された。代替実施形態では、説明した順序とは異なる順序で方法が実行され得ることを諒解されたい。
【０２０４】
構成要素がいくつかの動作を実行する「ように構成」されているものとして説明される場合、そのような構成は、たとえば、動作を実行するための電子回路もしくはハードウェアを設計することによって、動作を実行するためのプログラマブル電子回路(たとえば、マイクロプロセッサ、または他の適切な電子回路)をプログラムすることによって、またはそれらの任意の組合せで達成され得る。
【０２０５】
本明細書で開示する実施形態に関して説明した様々な例示的な論理ブロック、モジュール、回路、およびアルゴリズムステップは、電子ハードウェア、コンピュータソフトウェア、ファームウェア、またはそれらの組合せとして実装され得る。ハードウェアとソフトウェアとのこの互換性を明確に示すために、様々な例示的な構成要素、ブロック、モジュール、回路、およびステップが、概して、それらの機能に関して上記で説明された。そのような機能がハードウェアとして実装されるのか、それともソフトウェアとして実装されるのかは、特定の適用例および全体的なシステムに課された設計制約によって決まる。当業者は説明した機能を特定の適用例ごとに様々な方法で実装し得るが、そのような実装決定は本発明の範囲からの逸脱を引き起こすものと解釈されるべきではない。
【０２０６】
本明細書で説明した技術はまた、電子ハードウェア、コンピュータソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。そのような技法は、汎用コンピュータ、ワイヤレス通信デバイスハンドセット、またはワイヤレス通信デバイスハンドセットおよび他のデバイスにおける適用例を含む複数の用途を有する集積回路デバイスなどの、様々なデバイスのいずれかにおいて実装され得る。モジュールまたは構成要素として説明した任意の特徴が、集積論理デバイスの中で一緒に、または個別であるが相互動作可能な論理デバイスとして別個に実装され得る。ソフトウェアで実装される場合、技法は、実行されたとき、上記で説明した方法の1つまたは複数を実行する命令を含むプログラムコードを備えるコンピュータ可読データ記憶媒体によって、少なくとも部分的に実現され得る。コンピュータ可読データ記憶媒体は、パッケージング材料を含み得るコンピュータプログラム製品の一部を形成し得る。コンピュータ可読媒体は、同期型ダイナミックランダムアクセスメモリ(SDRAM)などのランダムアクセスメモリ(RAM)、読取り専用メモリ(ROM)、不揮発性ランダムアクセスメモリ(NVRAM)、電気消去可能プログラマブル読取り専用メモリ(EEPROM)、フラッシュメモリ、磁気または光学データ記憶媒体などの、メモリまたはデータ記憶媒体を備え得る。技法は、追加または代替として、伝搬される信号または波などの、命令またはデータ構造の形態でプログラムコードを搬送または通信するとともに、コンピュータによってアクセスされ、読み取られ、かつ/または実行され得る、コンピュータ可読通信媒体によって少なくとも部分的に実現され得る。
【０２０７】
プログラムコードは、1つまたは複数のデジタル信号プロセッサ(DSP)、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブル論理アレイ(FPGA)、または他の等価な集積論理回路もしくは個別論理回路などの、1つまたは複数のプロセッサを含み得るプロセッサによって実行され得る。そのようなプロセッサは、本開示で説明した技法のうちのいずれかを実行するように構成され得る。汎用プロセッサはマイクロプロセッサであってもよいが、代替として、プロセッサは任意の従来のプロセッサ、コントローラ、マイクロコントローラ、またはステートマシンであってもよい。プロセッサはまた、コンピューティングデバイスの組合せ、たとえば、DSPとマイクロプロセッサとの組合せ、複数のマイクロプロセッサ、DSPコアと連携した1つもしくは複数のマイクロプロセッサ、または任意の他のそのような構成として実装され得る。したがって、本明細書で使用した「プロセッサ」という用語は、上記の構造、上記の構造の任意の組合せ、または本明細書で説明した技法の実装にとって適した任意の他の構造もしくは装置のいずれかを指し得る。加えて、いくつかの態様では、本明細書で説明した機能は、符号化および復号のために構成された専用のソフトウェアモジュール内もしくはハードウェアモジュール内で提供されてよく、または複合ビデオエンコーダデコーダ(コーデック)に組み込まれてよい。
【符号の説明】
【０２０８】
35  区分ユニット
41  予測処理ユニット
42  動き推定ユニット
44  動き補償ユニット
46  イントラ予測処理ユニット
50  加算器
52  変換処理ユニット
54  量子化ユニット
56  エントロピー符号化ユニット
57  後処理デバイス
58  逆量子化ユニット
60  逆変換処理ユニット
62  加算器
63  フィルタユニット
64  ピクチャメモリ
79  ネットワークエンティティ
80  エントロピー復号ユニット
81  予測処理ユニット
82  動き補償ユニット
84  イントラ予測処理ユニット
86  逆量子化ユニット
88  逆変換処理ユニット
90  加算器
91  フィルタユニット
92  ピクチャメモリ
100  システム
102  ビデオソース
104  符号化デバイス
106  エンコーダエンジン
108  ストレージ
110  出力部
112  復号デバイス
114  入力部
116  デコーダエンジン
118  ストレージ
120  通信リンク
122  ビデオ宛先デバイス
202、204、206  ピクチャ
200  ビデオビットストリーム
208  インター予測遮断ポイント、インター予測遮断ライン
210  IRAPピクチャ
300  ビデオビットストリーム
308  インター予測遮断ポイント
310  IRAPピクチャ
520  リーディングピクチャ
522  トレーリングピクチャ
A  ピクチャセット
B2、B3、B4、B6、B7、B8  ピクチャ
I1  IRAPピクチャ
P5  ピクチャ
【図１】
2018533281.tif 000006
【図２】
2018533281.tif 000007
【図３】
2018533281.tif 000008
【図４】
2018533281.tif 000009
【図５】
2018533281.tif 000010
【図６】
2018533281.tif 000011
【図７】
2018533281.tif 000012
【図８】
2018533281.tif 000013
【図９】
2018533281.tif 000014
【国際調査報告】
2018533281.tif 000015
2018533281.tif 000016
2018533281.tif 000017