(57)【特許請求の範囲】
【請求項１】
ビデオデータを処理する方法であって、
複数の出力オペレーションポイントを有する符号化ビデオデータを受信するステップと、
前記複数の出力オペレーションポイントから、選択された出力オペレーションポイントを抽出するステップであって、前記選択された出力オペレーションポイントは、ビットストリーム全体のサブビットストリームである、ステップと、
前記選択された出力オペレーションポイントが、ベースレイヤのみが出力されるべきである、ビットストリーム全体、およびベースレイヤのみが出力されるべきである、前記ビットストリーム全体の時間サブセットのうちの1つに対応することに応答して、
前記選択された出力オペレーションポイントに対して第1のビットストリーム適合性試験を実施するステップであって、前記第1のビットストリーム適合性試験は、ベースレイヤ向けのアクティブシーケンスパラメータセット(SPS)中のシーケンスレベル仮想参照デコーダ(HRD)パラメータのセット、および1つまたは複数の非ネスト化付加拡張情報(SEI)メッセージに基づき、前記1つまたは複数の非ネスト化SEIメッセージの各非ネスト化SEIメッセージはSEIネットワーク抽象化レイヤ(NAL)ユニット中に直接含まれる、ステップと、
前記選択された出力オペレーションポイントが、ベースレイヤのみが出力されるべきである、アクティブビデオパラメータセット(VPS)のベースVPSによって指定されたレイヤセット、および前記レイヤセットの時間サブセットのうちの1つに対応することに応答して、
前記選択された出力オペレーションポイントに対して第2のビットストリーム適合性試験を実施するステップであって、前記第2のビットストリーム適合性試験は、前記ベースVPS中のシーケンスレベルHRDパラメータのセット、および直接ネスト化SEIメッセージに基づき、前記直接ネスト化SEIメッセージは、スケーラブルなネスティングSEIメッセージ中に直接含まれる、ステップと、
前記選択された出力オペレーションポイントが、前記アクティブVPSのVPS拡張によって指定された出力レイヤセット(OLS)、および前記OLSの時間サブセットのうちの1つに対応することに応答して、
前記選択された出力オペレーションポイントに対して第3のビットストリーム適合性試験を実施するステップであって、前記第3のビットストリーム適合性試験は、前記アクティブVPS中のシーケンスレベルHRDパラメータのセット、および間接ネスト化SEIメッセージに基づき、前記間接ネスト化SEIメッセージはビットストリーム区分ネスティングSEIメッセージ中に含められ、前記ビットストリーム区分ネスティングSEIメッセージはスケーラブルなネスティングSEIメッセージ中に含められる、ステップとを含む、方法。
【請求項２】
前記選択された出力オペレーションポイントが、前記アクティブVPSのベース部において識別されたOLSに対応するときにのみ、直接ネスト化SEIメッセージを適用するステップをさらに含み、前記直接ネスト化SEIメッセージは、バッファリング周期(BP)、ピクチャタイミング(PT)、およびデコーダユニット情報(DUI)SEIメッセージのうちの1つである、請求項1に記載の方法。
【請求項３】
前記選択された出力オペレーションポイントが、前記VPS拡張において指定されたOLSに対応するときにのみ、前記間接ネスト化SEIメッセージを適用するステップをさらに含み、前記間接ネスト化SEIメッセージは、BP、PT、およびDUI SEIメッセージのうちの1つである、請求項1に記載の方法。
【請求項４】
前記シーケンスレベルHRDパラメータセットを、前記SPS、前記ベースVPS、および前記VPS拡張のうちの1つの中のhrd_parameters()シンタックス構造中に含めるステップをさらに含む、請求項1に記載の方法。
【請求項５】
前記SEIメッセージは、BP、PT、およびDUI SEIメッセージのうちの1つを含む、請求項1に記載の方法。
【請求項６】
前記選択された出力オペレーションポイントに対して前記第3のビットストリーム適合性試験を実施するステップであって、前記第3のビットストリーム適合性試験は、前記アクティブVPS中の前記シーケンスレベルHRDパラメータセットにさらに基づき、間接ネスト化SEIメッセージは、前記ベースVPSおよび前記VPS拡張のうちの1つの中に置かれる、ステップをさらに含む、請求項1に記載の方法。
【請求項７】
前記選択された出力オペレーションポイントを、前記符号化ビデオデータの前記複数の出力オペレーションポイントから選択するステップをさらに含む、請求項1に記載の方法。
【請求項８】
ビデオデータを処理するための装置であって、
符号化ビデオデータを記憶するためのメモリ手段であって、前記ビデオデータは複数の出力オペレーションポイントを有する、メモリ手段と、
前記複数の出力オペレーションポイントから、選択された出力オペレーションポイントを抽出することであって、前記選択された出力オペレーションポイントは、ビットストリーム全体のサブビットストリームである、抽出することと、
前記選択された出力オペレーションポイントが、ベースレイヤのみが出力されるべきである、ビットストリーム全体、およびベースレイヤのみが出力されるべきである、前記ビットストリーム全体の時間サブセットのうちの1つに対応することに応答して、
前記選択された出力オペレーションポイントに対して第1のビットストリーム適合性試験を実施することであって、前記第1のビットストリーム適合性試験は、ベースレイヤ向けのアクティブシーケンスパラメータセット(SPS)中のシーケンスレベル仮想参照デコーダ(HRD)パラメータのセット、および1つまたは複数の非ネスト化付加拡張情報(SEI)メッセージに基づき、前記1つまたは複数の非ネスト化SEIメッセージの各非ネスト化SEIメッセージはSEIネットワーク抽象化レイヤ(NAL)ユニット中に直接含まれる、実施することと、
前記選択された出力オペレーションポイントが、ベースレイヤのみが出力されるべきである、アクティブビデオパラメータセット(VPS)のベースVPSによって指定されたレイヤセット、および前記レイヤセットの時間サブセットのうちの1つに対応することに応答して、
前記選択された出力オペレーションポイントに対して第2のビットストリーム適合性試験を実施することであって、前記第2のビットストリーム適合性試験は、前記ベースVPS中のシーケンスレベルHRDパラメータのセット、および直接ネスト化SEIメッセージに基づき、前記直接ネスト化SEIメッセージは、スケーラブルなネスティングSEIメッセージ中に直接含まれる、実施することと、
前記選択された出力オペレーションポイントが、前記アクティブVPSのVPS拡張によって指定された出力レイヤセット(OLS)、および前記OLSの時間サブセットのうちの1つに対応することに応答して、
前記選択された出力オペレーションポイントに対して第3のビットストリーム適合性試験を実施することであって、前記第3のビットストリーム適合性試験は、前記アクティブVPS中のシーケンスレベルHRDパラメータのセット、および間接ネスト化SEIメッセージに基づき、前記間接ネスト化SEIメッセージはビットストリーム区分ネスティングSEIメッセージ中に含められ、前記ビットストリーム区分ネスティングSEIメッセージはスケーラブルなネスティングSEIメッセージ中に含められる、実施することとを行うための、前記メモリ手段に動作可能に結合されたデコーダ手段とを備える、装置。
【請求項９】
前記デコーダ手段は、少なくとも1つのプロセッサによって実装される仮想参照デコーダである、請求項8に記載の装置。
【請求項１０】
前記デコーダ手段は、前記選択された出力オペレーションポイントが、前記アクティブVPSの前記VPSベースにおいて識別されたOLSに対応するときにのみ、直接ネスト化SEIメッセージを適用するように構成され、前記直接ネスト化SEIメッセージは、バッファリング周期(BP)、ピクチャタイミング(PT)、およびデコーダユニット情報(DUI)SEIメッセージのうちの1つである、請求項8に記載の装置。
【請求項１１】
前記デコーダ手段は、前記選択された出力オペレーションポイントが、前記アクティブVPSの前記VPS拡張において識別されたOLSに対応するときのみ、間接ネスト化SEIメッセージを適用するように構成され、前記間接ネスト化SEIメッセージは、BP、PT、およびDUI SEIメッセージのうちの1つである、請求項8に記載の装置。
【請求項１２】
前記シーケンスレベルHRDパラメータセットは、前記SPS、前記ベースVPS、および前記VPS拡張のうちの1つの中のhrd_parameters()シンタックス構造中に含められる、請求項11に記載の装置。
【請求項１３】
前記SEIメッセージは、BP、PT、およびDUI SEIメッセージのうちの1つを含む、請求項11に記載の装置。
【請求項１４】
前記デコーダ手段は、前記選択された出力オペレーションポイントに対して前記第3のビットストリーム適合性試験を実施するようにさらに構成され、前記第3のビットストリーム適合性試験は、前記アクティブVPS中の前記シーケンスレベルHRDパラメータセットにさらに基づき、間接ネスト化SEIメッセージは、前記ベースVPSおよび前記VPS拡張のうちの1つの中に置かれる、請求項11に記載の装置。
【請求項１５】
命令を含むコンピュータ可読記憶媒体であって、前記命令は、プロセッサによって実行されると、コンピュータに、請求項1から7のいずれか一項に記載の方法を行わせる、コンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、マルチレイヤビデオコーディングに関する。より詳細には、本開示は、プロファイル、ティア、およびレベル情報のシグナリング、出力レイヤセットのシグナリング、仮想参照デコーダ(HRD)パラメータの使用、ならびにビットストリーム適合性試験を含む、マルチレイヤビデオコーディングにおける適合性および相互運用性のための方法に関する。
【背景技術】
【０００２】
デジタルビデオ機能は、デジタルテレビジョン、デジタルダイレクトブロードキャストシステム、ワイヤレスブロードキャストシステム、携帯情報端末(PDA)、ラップトップまたはデスクトップコンピュータ、タブレットコンピュータ、電子ブックリーダー、デジタルカメラ、デジタル記録デバイス、デジタルメディアプレーヤ、ビデオゲームデバイス、ビデオゲームコンソール、セルラーまたは衛星無線電話、いわゆる「スマートフォン」、ビデオ遠隔会議デバイス、ビデオストリーミングデバイスなどを含む、広範囲のデバイスに組み込まれ得る。デジタルビデオデバイスは、1つまたは複数のビデオコーディング技法を実装する。ビデオデバイスは、そのようなビデオコーディング技法を実装することによって、デジタルビデオ情報をより効率的に送信し、受信し、符号化し、復号し、かつ/または記憶することができる。
【０００３】
ビデオコーディング技法は、限定はしないが、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、およびITU-T H.264またはISO/IEC MPEG-4アドバンストビデオコーディング(AVC)(そのスケーラブルビデオコーディング(SVC)およびマルチビュービデオコーディング(MVC)拡張を含む)によって定義された規格、ならびに比較的新しい高効率ビデオコーディング(HEVC)規格に記載されるものを含む。HEVC規格は、国際標準化機構(ISO)および国際電気標準会議(IEC)によって構成された、国際電気通信連合電気通信標準化部門(ITU-T)のVideo Coding Experts Group(VCEG)およびMoving Picture Experts Group(MPEG)のビデオコーディング共同研究部会(JCT-VC)によって最近完成された。HEVC WD10と呼ばれる、HEVC仕様の最新の作業草案(WD)は、phenix.int-evry.fr/jct/doc_end_user/documents/12_Geneva/wg11/JCTVC-L1003-v34.zipから入手可能である。HEVCに対するマルチビュー拡張、すなわちMV-HEVCも、JCT-3Vによって開発されている。これ以降でのMV-HEVC WD3の最近の作業草案は、phenix.it-sudparis.eu/jct2/doc_end_user/documents/3_Geneva/wg11/JCT3V-C1004-v4.zipから入手可能である。SHVCという名称の、HEVCに対するスケーラブルな拡張も、JCT-VCによって開発されている。SHVCの最近の、および以降ではSHVC WD2と呼ばれる作業草案は、phenix.int-evry.fr/jct/doc_end_user/documents/13_Incheon/wg11/JCTVC-M1008-v1.zipから入手可能である。
【０００４】
ビデオコーディング技法は、ビデオシーケンスに固有の冗長性を低減または除去するために、空間(ピクチャ内)予測および/または時間(ピクチャ間)予測を含む。ブロックベースのビデオコーディングのために、ビデオスライス(たとえば、ビデオフレーム、またはビデオフレームの一部)は、ビデオブロックに区分されてもよく、ビデオブロックはまた、ツリーブロック、コーディングユニット(CU:coding unit)、および/またはコーディングノードと呼ばれることがある。ピクチャのイントラコード化(I)スライス内のビデオブロックは、同じピクチャ内の隣接ブロック内の参照サンプルに対する空間予測を用いて符号化される。ピクチャのインターコード化(PまたはB)スライス内のビデオブロックは、同じピクチャ内の隣接ブロック内の参照サンプルに対する空間予測、または他の参照ピクチャ内の参照サンプルに対する時間予測を使用してもよい。ピクチャは、フレームと呼ばれることがあり、参照ピクチャは、参照フレームと呼ばれることがある。
【０００５】
空間または時間予測は、コーディングされるべきブロックのための予測ブロックをもたらす。残差データは、コーディングされるべき元のブロックと予測ブロックとの間のピクセル差分を表す。インターコード化ブロックは、予測ブロックを形成する参照サンプルのブロックを指す動きベクトルと、コード化ブロックと予測ブロックとの間の差を示す残差データとに従って符号化される。イントラコード化ブロックは、イントラコーディングモードおよび残差データに従って符号化される。さらなる圧縮を行うために、残差データがピクセル領域から変換領域に変換されて残差変換係数が得られてよく、次いでこれらの係数が量子化されてよい。最初に2次元アレイに配置される量子化変換係数は、変換係数の1次元ベクトルを生成するために走査されてもよく、エントロピーコーディングが、さらなる圧縮を達成するために適用されてもよい。
【０００６】
マルチビューコーディングビットストリームは、たとえば、複数の視点からのビューを符号化することによって生成され得る。マルチビューコーディング態様を利用するいくつかの3次元(3D)ビデオ規格が開発されている。たとえば、3Dビデオをサポートするために、異なるビューが左眼ビューと右眼ビューを送信し得る。代替的に、いくつかの3Dビデオコーディングプロセスは、いわゆるマルチビュー+深度コーディング(multiview plus depth coding)を適用し得る。マルチビュー+深度コーディングでは、3Dビデオビットストリームは、テクスチャビュー成分だけでなく深度ビュー成分も含み得る。たとえば、各ビューは、1つのテクスチャビュー成分と1つの深度ビュー成分とを備え得る。
【先行技術文献】
【非特許文献】
【０００７】
【非特許文献１】phenix.int-evry.fr/jct/doc_end_user/documents/12_Geneva/wg11/JCTVC-L1003-v34.zip
【非特許文献２】phenix.it-sudparis.eu/jct2/doc_end_user/documents/3_Geneva/wg11/JCT3V-C1004-v4.zip
【非特許文献３】phenix.int-evry.fr/jct/doc_end_user/documents/13_Incheon/wg11/JCTVC-M1008-v1.zip
【発明の概要】
【課題を解決するための手段】
【０００８】
概して、本開示は、マルチレイヤビデオコーディングにおける適合性および相互運用性の改善に関連したシステムおよび方法について記載する。本開示のシステム、方法、およびデバイスは、いくつかの革新的態様をそれぞれ有し、それらの態様のいずれの1つも、本明細書において開示される望ましい属性を単独では担わない。
【０００９】
本開示の一態様は、ビデオデータを処理する方法を提供する。方法は、複数の出力オペレーションポイントを有する符号化ビデオデータを受信するステップを含み得る。方法は、複数の出力オペレーションポイントから、選択された出力オペレーションポイントを抽出するステップも含み得る。選択された出力オペレーションポイントが、ベースレイヤのみが出力されるべきである、ビットストリーム全体、およびビットストリーム全体の時間サブセットのうちの1つに対応することに応答して、方法は、選択された出力オペレーションポイントに対して第1のビットストリーム適合性試験を実施するステップも含んでよく、第1のビットストリーム適合性試験は、ベースレイヤ向けのアクティブシーケンスパラメータセット(SPS)中のシーケンスレベル仮想参照デコーダ(HRD)パラメータのセット、および1つまたは複数の非ネスト化付加拡張情報(SEI)メッセージに基づく。選択された出力オペレーションポイントが、ベースレイヤのみが出力されるべきである、アクティブVPSのベースビデオパラメータセット(VPS)によって指定されたレイヤセット、およびレイヤセットの時間サブセットのうちの1つに対応することに応答して、方法は、選択された出力オペレーションポイントに対して第2のビットストリーム適合性試験を実施するステップも含んでよく、第2のビットストリーム適合性試験は、ベースVPS中のシーケンスレベルHRDパラメータのセット、および直接ネスト化SEIメッセージに基づく。選択された出力オペレーションポイントが、アクティブVPSのVPS拡張によって指定される出力レイヤセット(OLS)、およびOLSの時間サブセットのうちの1つに対応することに応答して、方法は、選択された出力オペレーションポイントに対して第3のビットストリーム適合性試験を実施するステップも含んでよく、第3のビットストリーム適合性試験は、アクティブVPS中のシーケンスレベルHRDパラメータのセット、および間接ネスト化SEIメッセージに基づく。
【００１０】
本開示の別の態様は、ビデオデータを処理するためのデバイスを提供する。デバイスは、符号化ビデオデータを記憶するように構成されたメモリを有してよく、符号化ビデオデータは、複数の出力オペレーションポイントを有する。デバイスは、メモリに動作可能に結合されるとともに、複数の出力オペレーションポイントから、選択された出力オペレーションポイントを抽出するように構成されたプロセッサも有し得る。選択された出力オペレーションポイントが、ベースレイヤのみが出力されるべきである、ビットストリーム全体、およびビットストリーム全体の時間サブセットのうちの1つに対応することに応答して、プロセッサは、選択された出力オペレーションポイントに対して第1のビットストリーム適合性試験を実施するようにさらに構成されてよく、第1のビットストリーム適合性試験は、ベースレイヤ向けのアクティブシーケンスパラメータセット(SPS)中のシーケンスレベル仮想参照デコーダ(HRD)パラメータのセット、および1つまたは複数の非ネスト化付加拡張情報(SEI)メッセージに基づく。選択された出力オペレーションポイントが、ベースレイヤのみが出力されるべきである、アクティブVPSのベースビデオパラメータセット(VPS)によって指定されたレイヤセット、およびレイヤセットの時間サブセットのうちの1つに対応することに応答して、プロセッサは、選択された出力オペレーションポイントに対して第2のビットストリーム適合性試験を実施するようにさらに構成されてよく、第2のビットストリーム適合性試験は、ベースVPS中のシーケンスレベルHRDパラメータのセット、および直接ネスト化SEIメッセージに基づく。選択された出力オペレーションポイントが、アクティブVPSのVPS拡張によって指定された出力レイヤセット(OLS)、およびOLSの時間サブセットのうちの1つに対応することに応答して、プロセッサは、選択された出力オペレーションポイントに対して第3のビットストリーム適合性試験を実施するようにさらに構成されてよく、第3のビットストリーム適合性試験は、アクティブVPS中のシーケンスレベルHRDパラメータのセット、および間接ネスト化SEIメッセージに基づく。
【００１１】
本開示の別の態様は、ビデオデータを処理するための装置を提供する。装置は、符号化ビデオデータを記憶するためのメモリ手段を有してよく、ビデオデータは、複数の出力オペレーションポイントを有する。装置は、複数の出力オペレーションポイントから、選択された出力オペレーションポイントを抽出するための、メモリ手段に動作可能に結合されたデコーダ手段も有し得る。選択された出力オペレーションポイントが、ベースレイヤのみが出力されるべきである、ビットストリーム全体、およびビットストリーム全体の時間サブセットのうちの1つに対応することに応答して、デコーダ手段は、選択された出力オペレーションポイントに対して第1のビットストリーム適合性試験を実施することもでき、第1のビットストリーム適合性試験は、ベースレイヤ向けのアクティブシーケンスパラメータセット(SPS)中のシーケンスレベル仮想参照デコーダ(HRD)パラメータのセット、および1つまたは複数の非ネスト化付加拡張情報(SEI)メッセージに基づく。選択された出力オペレーションポイントが、ベースレイヤのみが出力されるべきである、アクティブVPSのベースビデオパラメータセット(VPS)によって指定されたレイヤセット、およびレイヤセットの時間サブセットのうちの1つに対応することに応答して、デコーダ手段は、選択された出力オペレーションポイントに対して第2のビットストリーム適合性試験を実施することもでき、第2のビットストリーム適合性試験は、ベースVPS中のシーケンスレベルHRDパラメータのセット、および直接ネスト化SEIメッセージに基づく。選択された出力オペレーションポイントが、アクティブVPSのVPS拡張によって指定された出力レイヤセット(OLS)、およびOLSの時間サブセットのうちの1つに対応することに応答して、デコーダ手段は、選択された出力オペレーションポイントに対して第3のビットストリーム適合性試験を実施することもでき、第3のビットストリーム適合性試験は、アクティブVPS中のシーケンスレベルHRDパラメータのセット、および間接ネスト化SEIメッセージに基づく。
【００１２】
本開示の別の態様は、ビデオデータを処理するための非一時的コンピュータ可読媒体を提供する。非一時的コンピュータ可読媒体は、プロセッサによって実行されると、コンピュータに、複数の出力オペレーションポイントを有する符号化ビデオデータを受信させる命令を含み得る。命令は、コンピュータに、複数の出力オペレーションポイントから、選択された出力オペレーションポイントを抽出させることもできる。選択された出力オペレーションポイントが、ベースレイヤのみが出力されるべきである、ビットストリーム全体、およびビットストリーム全体の時間サブセットのうちの1つに対応することに応答して、命令は、コンピュータに、選択された出力オペレーションポイントに対して第1のビットストリーム適合性試験を実施させることもでき、第1のビットストリーム適合性試験は、ベースレイヤ向けのアクティブシーケンスパラメータセット(SPS)中のシーケンスレベル仮想参照デコーダ(HRD)パラメータのセット、および1つまたは複数の非ネスト化付加拡張情報(SEI)メッセージに基づく。選択された出力オペレーションポイントが、ベースレイヤのみが出力されるべきである、アクティブVPSのベースビデオパラメータセット(VPS)によって指定されたレイヤセット、およびレイヤセットの時間サブセットのうちの1つに対応することに応答して、命令は、コンピュータに、選択された出力オペレーションポイントに対して第2のビットストリーム適合性試験を実施させることもでき、第2のビットストリーム適合性試験は、ベースVPS中のシーケンスレベルHRDパラメータのセット、および直接ネスト化SEIメッセージに基づく。選択された出力オペレーションポイントが、アクティブVPSのVPS拡張によって指定された出力レイヤセット(OLS)、およびOLSの時間サブセットのうちの1つに対応することに応答して、命令は、コンピュータに、選択された出力オペレーションポイントに対して第3のビットストリーム適合性試験を実施させることもでき、第3のビットストリーム適合性試験は、アクティブVPS中のシーケンスレベルHRDパラメータのセット、および間接ネスト化SEIメッセージに基づく。
【００１３】
本開示の他の特徴および利点は、本開示の態様を例として説明する以下の記載から明らかとなるであろう。
【００１４】
本開示の実施形態の詳細は、その構造と動作の両方に関して、同様の参照番号が同様の部分を指す添付図面の検討によって、部分的に集められ得る。
【図面の簡単な説明】
【００１５】
【図１】ビデオコーディングシステムの機能ブロック図である。
【図２】図1のビデオエンコーダの機能ブロック図である。
【図３】図1のビデオデコーダを示すブロック図である。
【図４】適合性試験実装方法を記述するフローチャートである。
【発明を実施するための形態】
【００１６】
概して、本開示は、マルチレイヤビデオコーディングにおけるビットストリーム適合性および相互運用性の改善に関連したシステムおよび方法について記載する。方法のうちのいくつかは、プロファイル、ティア、およびレベル情報のシグナリング、出力レイヤセットのシグナリング、HRDパラメータの使用、ならびにビットストリーム適合性試験を含む。
【００１７】
本開示は、プロファイル、ティア、およびレベル情報のシグナリング、出力レイヤセットのシグナリング、HRDパラメータの使用、ならびにビットストリーム適合性試験に関して、現行HEVC仕様のいくつかの短所を識別する。これらの短所のうちの一部として、以下のものがある。
【００１８】
第0の出力レイヤセット(OLS)を除いて、他のベースレイヤ出力オンリー(base-layer-output-only)OLS向けの最適ティアおよびレベルは、ビデオパラメータセット(VPS)の拡張部においてシグナリングすることができる。ベースレイヤ出力オンリーOLSとは、ただ1つの出力レイヤがあり、唯一の出力レイヤがベースレイヤであるOLSである。そのようなシグナリングは、ベースVPS中でシグナリングされる各レイヤセット向けのVPS拡張においてベースレイヤ出力オンリーOLSがシグナリングされることをHEVCが要求しないので、必要とされない。ビットストリーム全体についてのプロファイル、ティア、およびレベル情報が、VPSベース中で代わりにシグナリングされる。したがって、HEVCバージョン1の観点からは、ビットストリーム全体のティアおよびレベルのみと突き合わせて制約をチェックするだけで、独自のHRDパラメータをもつオペレーションポイントすべてについてビットストリーム適合性試験を行うのは理想的でない。これにより、ビットストリーム全体に対応するもの以外のすべてのオペレーションポイント用のHRDパラメータは、最適よりもはるかに「高く」なり得るとともに、依然として適合性試験を満足する。
【００１９】
HEVCは、VPS拡張において、ベースレイヤ出力オンリーOLSのシグナリングを許可している。ただし、ベースVPSは、そのような役割をすでに満たしている。したがって、VPS拡張におけるそのようなシグナリングは不必要であり、結果としてオーバーヘッドが増大する。
【００２０】
HEVC規格は、非ネスト化および直接ネスト化バッファリング期間(BP)、ピクチャタイミング(PT)、ならびに復号ユニット情報(DUI)付加拡張情報(SEI)メッセージの適用可能性について、そのようなSEIメッセージのうちのどれが、いくつかのビットストリーム適合性試験における使用のために選択されるべきかに関して不明瞭である。
【００２１】
プロファイル、ティア、レベル(PTL)シンタックス構造の使用は、ビットストリーム適合性試験中に明確には指定されない。たとえば、ベースレイヤ出力オンリーOLS向けのいくつかのビットストリーム適合性試験が欠けている。hrd_parameters()シンタックス構造ならびにBP、PT、およびDUI SEIメッセージの使用は、いくつかの適合性試験については明確でない。
【００２２】
添付の図面に関連させて以下に記載される詳細な説明は、様々な実施形態の説明を目的としたものであり、本開示を実践できる唯一の実施形態を表すことを意図したものではない。詳細な説明は、実施形態を完全に理解してもらうために、具体的な詳細を含んでいる。しかしながら、これらの具体的な詳細を用いることなく本開示を実践できることは、当業者には明らかであろう。いくつかの事例では、よく知られている構造および構成要素が、説明の簡潔のために、簡略化した形で示される。
【００２３】
ビデオコーディングシステム
図1は、ビデオコーディングシステムの機能ブロック図である。ビデオコーディングシステム(「システム」)10は、本開示に記載される態様による方法を使用することができる。本明細書で使用され説明される場合、「ビデオコーダ」という用語は、総称的にビデオエンコーダとビデオデコーダの両方を指す。本開示では、「ビデオコーディング」または「コーディング」という用語は、ビデオ符号化とビデオ復号とを総称的に指し得る。
【００２４】
図1に示すように、システム10は、宛先デバイス14によって後の時間に復号されるべき符号化ビデオデータを生成することができるソースデバイス12を含む。ソースデバイス12および宛先デバイス14は、デスクトップコンピュータ、ノートブック(すなわち、ラップトップ)コンピュータ、タブレットコンピュータ、セットトップボックス、いわゆる「スマート」フォンなどの電話ハンドセット、いわゆる「スマート」パッド、テレビジョン、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲームコンソール、ビデオストリーミングデバイスなどを含む、広範囲にわたるデバイスのいずれかを備え得る。場合によっては、ソースデバイス12および宛先デバイス14は、ワイヤレス通信のために装備されてもよい。
【００２５】
宛先デバイス14は、リンク16を介して、復号されるべき符号化ビデオデータを受信し得る。リンク16は、ソースデバイス12から宛先デバイス14に符号化ビデオデータを移動することが可能な任意のタイプの媒体またはデバイスを備えてもよい。一例では、リンク16は、ソースデバイス12が符号化ビデオデータをリアルタイムで宛先デバイス14に直接送信することを可能にする通信媒体を備えてもよい。ソースデバイス12は、ワイヤレス通信プロトコルなどの通信規格に従って符号化ビデオデータを変調してよく、データは宛先デバイス14へ送信され得る。通信媒体は、無線周波数(RF)スペクトルまたは、1つもしくは複数の物理的伝送線などの任意のワイヤレス通信媒体またはワイヤード通信媒体を備えてもよい。通信媒体は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはインターネットなどのグローバルネットワークなどの、パケットベースのネットワークの一部を形成してもよい。通信媒体は、ルータ、スイッチ、基地局、または、ソースデバイス12から宛先デバイス14への通信を容易にするために有用であってもよい任意の他の機器を含んでもよい。
【００２６】
符号化データは、出力インターフェース22から記憶デバイス34に出力されてもよい。同様に、符号化データは、宛先デバイス14の入力インターフェース28によって記憶デバイス34からアクセスされてもよい。記憶デバイス34は、ハードドライブ、Blu-ray(登録商標)ディスク、DVD、CD-ROM、フラッシュメモリ、揮発性もしくは不揮発性メモリ、または符号化ビデオデータを記憶するための任意の他の適切なデジタル記憶媒体などの、様々な分散されたまたはローカルにアクセスされるデータ記憶媒体のいずれかを含んでもよい。さらなる例では、記憶デバイス34は、ソースデバイス12によって生成された符号化ビデオを保持し得るファイルサーバまたは別の中間記憶デバイスに対応し得る。宛先デバイス14は、ストリーミングまたはダウンロードを介して記憶デバイス34から、記憶されたビデオデータにアクセスし得る。ファイルサーバは、符号化ビデオデータを記憶し、その符号化ビデオデータを宛先デバイス14へ送信することが可能な任意のタイプのサーバであり得る。例示的なファイルサーバは、(たとえば、ウェブサイトのための)ウェブサーバ、FTPサーバ、ネットワーク接続ストレージ(NAS)デバイス、またはローカルディスクドライブを含む。宛先デバイス14は、インターネット接続を含む任意の標準的なデータ接続を通して、符号化ビデオデータにアクセスし得る。これは、ファイルサーバ上に記憶された符号化ビデオデータにアクセスするのに適した、ワイヤレスチャネル(たとえば、Wi-Fi接続)、ワイヤード接続(たとえば、DSL、ケーブルモデムなど)、または両方の組合せを含み得る。記憶デバイス34からの符号化ビデオデータの送信は、ストリーミング送信、ダウンロード送信、またはその両方の組合せであり得る。
【００２７】
本開示の方法は、必ずしもワイヤレスの適用例または設定に限定されない。方法は、オーバージエアテレビジョン放送、ケーブルテレビジョン送信、衛星テレビジョン送信、たとえばインターネットを介するストリーミングビデオ送信、データ記憶媒体に記憶するためのデジタルビデオの符号化、データ記憶媒体に記憶されたデジタルビデオの復号、または他の用途など、様々なマルチメディア用途のうちのいずれかをサポートするビデオコーディングに適用されてもよい。いくつかの例では、システム10は、ビデオストリーミング、ビデオ再生、ビデオ放送、および/またはビデオ電話などの用途をサポートするために、一方向または双方向ビデオ送信をサポートするように構成されてもよい。
【００２８】
図1の例では、ソースデバイス12は、ビデオソース18と、ビデオエンコーダ20と、出力インターフェース22とを含む。いくつかの場合には、出力インターフェース22は、変調器/復調器(モデム)および/または送信機を含んでもよい。ソースデバイス12において、ビデオソース18は、ビデオキャプチャデバイス、たとえば、ビデオカメラ、以前にキャプチャされたビデオを含むビデオアーカイブ、ビデオコンテンツプロバイダからビデオを受信するためのビデオフィードインターフェース、および/もしくはソースビデオとしてコンピュータグラフィックスデータを生成するためのコンピュータグラフィックスシステム、またはそのようなソースの組合せ、などのソースを含んでもよい。一例として、ビデオソース18がビデオカメラである場合、ソースデバイス12および宛先デバイス14は、いわゆるカメラ付き電話またはビデオ付き電話を形成し得る。しかしながら、本開示で説明する方法は、一般にビデオコーディングに適用可能であってもよく、ワイヤレス用途および/またはワイヤード用途に適用されてもよい。
【００２９】
ビデオエンコーダ20は、キャプチャされた、あらかじめキャプチャされた、またはコンピュータ生成ビデオを符号化することができる。さらに、いくつかの実施形態では、ビデオエンコーダ20は、第1のビットストリームのパラメータセットIDと、一意のパラメータセットIDとに基づいて、第1のビットストリームと第2のビットストリームを区別することができる。他の例では、ソースデバイス12の出力インターフェース22は、リンク16を介して、符号化ビデオデータを直接、宛先デバイス14に送信することができる。符号化ビデオデータは、さらに(または代替的に)、復号および/または再生のための宛先デバイス14または他のデバイスによる後のアクセスのために記憶デバイス34上に記憶され得る。
【００３０】
宛先デバイス14は、入力インターフェース28と、ビデオデコーダ30と、ディスプレイデバイス32とを含む。いくつかの場合には、入力インターフェース28は、受信機および/またはモデムを含んでもよい。宛先デバイス14の入力インターフェース28は、リンク16を介して符号化ビデオデータを受信する。リンク16を介して通信され、または記憶デバイス34上に与えられた符号化ビデオデータは、ビデオデータを復号する際に、ビデオデコーダ30などのビデオデコーダが使用するための、ビデオエンコーダ20によって生成される様々なシンタックス要素を含み得る。そのようなシンタックス要素は、通信媒体上で送信された、記憶媒体上に記憶された、またはファイルサーバ上に記憶された符号化ビデオデータとともに含まれてもよい。
【００３１】
ディスプレイデバイス32は、宛先デバイス14と一体化されてよく、またはその外部にあってよい。いくつかの例では、宛先デバイス14は、一体化されたディスプレイデバイスを含み、また、外部ディスプレイデバイスとインターフェースするように構成され得る。他の例では、宛先デバイス14はディスプレイデバイスであり得る。一般に、ディスプレイデバイス32は、復号ビデオデータをユーザに表示し、液晶ディスプレイ(LCD)、プラズマディスプレイ、有機発光ダイオード(OLED)ディスプレイ、または別のタイプのディスプレイデバイスなど、様々なディスプレイデバイスのいずれかを含み得る。
【００３２】
ビデオエンコーダ20およびビデオデコーダ30は各々、1つもしくは複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ディスクリート論理、ソフトウェア、ハードウェア、ファームウェアまたはそれらの任意の組合せなど、様々な適切なエンコーダ回路のいずれかとして実装され得る。本方法が部分的にソフトウェアで実装されるとき、デバイスは、ソフトウェアのための命令を好適な非一時的コンピュータ可読媒体に記憶し、本開示の方法を実施するために1つまたは複数のプロセッサを使用してハードウェアでその命令を実行し得る。ビデオエンコーダ20およびビデオデコーダ30の各々は、1つまたは複数のエンコーダまたはデコーダ内に含まれてもよく、そのいずれかは、それぞれのデバイス内に、組み合わされたエンコーダ/デコーダ(コーデック)の一部として組み込まれてもよい。
【００３３】
HEVCの規格化の取り組みは、HEVCテストモデル(HM)と呼ばれるビデオコーディングデバイスの発展的モデルに基づく。HMは、たとえば、ITU-T H.264/AVCによる既存のデバイスと比較して、ビデオコーディングデバイスのいくつかの追加の能力を想定する。たとえば、H.264は、9個のイントラ予測符号化モードを提供する一方で、HMは、33個ものイントラ予測符号化モードを提供し得る。
【００３４】
一般に、HMの作業中のモデルは、ビデオフレームまたはピクチャが、ルーマサンプルとクロマサンプルの両方を含む一連のツリーブロックまたは最大コーディングユニット(LCU)に分割されてもよいことを記載している。ツリーブロックは、H.264規格のマクロブロックと同様の目的を有する。スライスは、コーディング順にいくつかの連続するツリーブロックを含む。ビデオフレームまたはピクチャは、1つまたは複数のスライスに区分されてもよい。各ツリーブロックは、4分木に従ってコーディングユニット(CU)に分裂されてもよい。たとえば、ツリーブロックは、4分木のルートノードとして、4つの子ノードに分裂されてもよく、各子ノードは、次に、親ノードになり、別の4つの子ノードに分裂されてもよい。最後の、分裂されていない子ノードは、4分木のリーフノードとして、コーディングノード、すなわちコード化ビデオブロックを備える。コード化ビットストリームに関連付けられたシンタックスデータは、ツリーブロックが分裂されてもよい最大回数を定義してもよく、また、コーディングノードの最小サイズを定義してもよい。
【００３５】
CUは、コーディングノードと、コーディングノードに関連付けられた予測ユニット(PU)および変換ユニット(TU)とを含む。CUのサイズは、コーディングノードのサイズに対応し、形状が正方形でなければならない。CUのサイズは、8×8ピクセルから、最大64×64ピクセルまたはそれ以上のツリーブロックのサイズまでの範囲であってもよい。各CUは、1つまたは複数のPUと1つまたは複数のTUとを含んでもよい。CUに関連付けられたシンタックスデータは、たとえば、1つまたは複数のPUへのCUの区分を記述してもよい。区分モードは、CUがスキップもしくは直接モードで符号化されているのか、イントラ予測モード符号化されているのか、またはインター予測モードで符号化されているのかの間で異なってもよい。PUは、形状が非正方形であるように区分されてもよい。CUに関連付けられたシンタックスデータはまた、たとえば、4分木に従った1つまたは複数のTUへのCUの区分を記述してもよい。TUは、形状において正方形または非正方形であることができる。
【００３６】
HEVC規格は、TUに従う変換を可能にし、それは、異なるCUのために異なってもよい。TUは、区分されたLCUについて定義された所与のCU内のPUのサイズに基づいてサイズ決定され得るが、これが必ずしも当てはまるとは限らない場合がある。TUは通常、同じサイズであるか、またはPUよりも小さくてよい。いくつかの例では、CUに対応する残差サンプルは「残差4分木」(RQT)として知られる4分木構造を使用して、より小さいユニットに細分され得る。RQTのリーフノードは、変換ユニット(TU)と呼ばれることがある。TUに関連付けられたピクセル差分値は、量子化されてもよい変換係数を生成するために変換されてもよい。
【００３７】
一般に、PUは、予測プロセスに関連するデータを含む。たとえば、PUがイントラモード符号化されるとき、PUは、PUのイントラ予測モードを記述するデータを含み得る。別の例として、PUがインターモード符号化されるとき、PUは、PUの動きベクトルを定義するデータを含み得る。PUのための動きベクトルを定義するデータは、たとえば、動きベクトルの水平成分、動きベクトルの垂直成分、動きベクトルの解像度(たとえば、4分の1ピクセル精度もしくは8分の1ピクセル精度)、動きベクトルが指す参照ピクチャ、および/または動きベクトルのための参照ピクチャリスト(たとえば、リスト0、リスト1、もしくはリストC)を記述してもよい。
【００３８】
一般に、TUは、変換および量子化プロセスのために使用される。1つまたは複数のPUを有する所与のCUはまた、1つまたは複数の変換ユニット(TU)を含んでもよい。予測に続いて、ビデオエンコーダ20は、PUに対応する残差値を計算してもよい。残差値は、エントロピーコーディングのためのシリアル化された変換係数を生成するために、TUを使用して変換係数に変換され、量子化され、走査され得るピクセル差分値を備える。本明細書で使用するように、「ビデオブロック」という用語は通常、CUのコーディングノードを指し得る。いくつかの特定の場合には、本開示はまた、ツリーブロック、すなわち、LCU、またはコーディングノードとPUとTUとを含むCUを指すために、「ビデオブロック」という用語を使用し得る。
【００３９】
ビデオエンコーダ20は、符号化ビデオデータを含むビットストリームを生成することができる。ビットストリームは、一連のネットワーク抽象化レイヤ(NAL)ユニットを含み得る。ビットストリームのNALユニットは、ビデオコーディングレイヤ(VCL)NALユニットと非VCL NALユニットとを含み得る。VCL NALユニットは、ピクチャのコード化スライスを含み得る。非VCL NALユニットは、VPS、シーケンスパラメータセット(SPS)、ピクチャパラメータセット(PPS)、SEI、または他のタイプのデータを含み得る。VPSとは、0個以上のコード化ビデオシーケンス全体に適用するシンタックス要素を含み得るシンタックス構造である。SPSとは、0個以上のコード化ビデオシーケンス全体に適用するシンタックス要素を含み得るシンタックス構造である。単一のVPSが、複数のSPSに適用可能であり得る。PPSとは、0個以上のコード化ピクチャ全体に適用するシンタックス要素を含み得るシンタックス構造である。単一のSPSが、複数のPPSに適用可能であり得る。VPS、SPSおよびPPSの様々な側面は、概して、HEVC規格によって定義されているように形成され得る。ビデオエンコーダ20は、SEIメッセージを使って、ピクチャのサンプル値の正しい復号のために要求されないメタデータを、ビットストリーム中に含めればよい。ただし、ビデオデコーダ30または他のデバイスは、SEIメッセージ中に含まれるメタデータを、他の様々な目的に使うことができる。たとえば、ビデオデコーダ30は、SEIメッセージ中のメタデータを、ピクチャ出力タイミング、ピクチャ表示、損失検出、およびエラー隠蔽に使うことができる。
【００４０】
高レベルシンタックス
NALユニットは、ビデオエンコーダ20によって符号化されるとともにビデオデコーダ30に送信されるシンタックス要素を含むことができる。ビットストリームの構造を記述するか、またはパラメータセット(たとえば、SPS、VPS、PPSなど)、参照ピクチャ管理シンタックス、およびSEIメッセージなど、複数のピクチャに、もしくはピクチャ内の複数のコード化ブロック領域に適用する情報を提供するシンタックス要素は、HEVCの「高レベルシンタックス」(HLS)部として知られる。
【００４１】
特に、HEVCは、本開示に関連する、以下の側面を利用する。
【００４２】
パラメータセット構造:パラメータセットは、復号ビデオのいくつかの領域の復号のために共有され得る情報を含む。パラメータセット構造は、復号プロセスにとって不可欠なデータを伝えるための堅牢な機構を提供する。
【００４３】
付加拡張情報(SEI):シンタックスは、SEIとして知られる様々なタイプのメタデータのサポートを含む。そのようなデータは、ビデオピクチャのタイミングについての情報、ビデオ信号中で使われる色空間の適切な解釈、3-D立体フレームパッキング情報、他の表示ヒント情報などを提供する。
【００４４】
図2は、図1のビデオエンコーダの機能ブロック図である。ビデオエンコーダ20は、キャプチャされたビデオデータを受信し、ビデオデータをビデオブロックに区分するように構成された区分モジュール35を含み得る。区分モジュール35は、ビデオデータを、スライス、タイル、または他のより大きい単位に区分し得る。区分モジュール35は、ビデオブロックを、たとえば、LCUおよびCUの4分木構造に従って区分することもできる。ビデオエンコーダ20は、スライスを、複数のビデオブロックに(および、あるいは、タイルと呼ばれるビデオブロックのセットに)分割し得る。
【００４５】
ビデオエンコーダ20は、区分モジュール35に動作可能に結合されるとともに区分化ビデオデータを受信するように構成された予測モジュール41も有し得る。予測モジュール41は、エラー結果(たとえば、コーディングレートおよび歪みのレベル)に基づいて、現在のビデオブロックに対して、複数のイントラコーディングモードのうちの1つ、または複数のインターコーディングモードのうちの1つのような、複数の可能なコーディングモードのうちの1つを選択し得る。予測モジュール41により、ビデオエンコーダ20は、ビデオスライス内のビデオブロックのイントラおよびインターコーディングを実施することができる。イントラコーディングは、空間的予測を利用して、所与のビデオフレームまたはピクチャ内のビデオの空間冗長性を低減または除去する。インターコーディングは、ビデオシーケンスの隣接フレームまたはピクチャ内のビデオの時間的冗長性を低減または除去するために、時間的予測に依拠する。イントラモード(Iモード)は、いくつかの空間ベースの圧縮モードのうちのいずれかを指してもよい。片方向予測(Pモード)または双方向予測(Bモード)などのインターモードは、いくつかの時間ベースの圧縮モードのうちのいずれかを指してもよい。
【００４６】
予測モジュール41は、動き推定モジュール42、動き補償モジュール44、およびイントラ予測モジュール46を含み得る。これらの構成要素の各々は、ビデオエンコーダ20内の1つまたは複数のプロセッサ中で動作可能に接続または統合されてよい。概念的目的のために別個に論じるが、動き推定モジュール42、動き補償モジュール44、およびイントラ予測モジュール46は高度に統合されてよい。
【００４７】
動き推定モジュール42は、ビデオシーケンスのための所定のパターンに従ってビデオスライスのためのインター予測モードを決定するように構成されてもよい。1つまたは複数の参照ピクチャ中の1つまたは複数の予測ブロックに対する、現在のビデオブロックのそのようなインター予測またはインター予測コーディングは、時間的圧縮をもたらし得る。所定のパターンは、Pスライス、Bスライス、またはGPBスライスとしてシーケンス内のビデオスライスを指定してもよい。本明細書で使用する動き推定は概して、ビデオブロックについて動きを推定する動きベクトルを生成するプロセスを指し得る。動きベクトルは、たとえば、参照フレームまたは参照ピクチャ内の予測ブロックに対する現在のビデオフレームまたはピクチャ内のビデオブロックのPUの変位を示してもよい。参照フレームは、予測モジュール41に動作可能に結合された参照ピクチャメモリ64中に記憶されてよい。参照フレームメモリ64は、復号ピクチャバッファ(DPB)をさらに含むか、または本明細書においてそう呼ばれる場合がある。参照フレームメモリ64、またはDPBは、フィルタモジュール63が再構築コーディングブロックに対してデブロッキング演算を実施した後、再構築コーディングブロックを記憶することができる。
【００４８】
予測ブロックは、絶対差分和(SAD:sum of absolute difference)、2乗差分和(SSD:sum of square difference)、または他の差分メトリックによって決定されてもよいピクセル差分の観点で、コーディングされるべきビデオブロックのPUと密接に一致することが見出されたブロックである。いくつかの例では、動き予測モジュール(「予測モジュール」)41は、参照ピクチャメモリ64内に記憶された参照ピクチャのサブ整数ピクセル位置に関する値を計算してもよい。たとえば、予測モジュール41は、参照ピクチャの4分の1ピクセル位置の値、8分の1ピクセル位置の値、または他の分数ピクセル位置の値を補間してもよい。したがって、動き推定モジュール42は、フルピクセル位置および分数ピクセル位置に対する動き探索を実施し、分数ピクセル精度で動きベクトルを出力してもよい。
【００４９】
動き推定モジュール42は、参照ピクチャの予測ブロックの位置とPUの位置とを比較することによって、インターコーディングされたスライス内のビデオブロックのPUに関する動きベクトルを計算することができる。参照ピクチャは、その各々が参照ピクチャメモリ64内に記憶された1つまたは複数の参照ピクチャを識別する、第1の参照ピクチャリスト(リスト0)または第2の参照ピクチャリスト(リスト1)から選択され得る。動き推定モジュール42は、計算された動きベクトルを、動き補償モジュール44およびエントロピー符号化モジュール56に送ればよい。
【００５０】
動き補償は、動き推定によって決定された動きベクトルに基づいて、予測ブロックをフェッチまたは生成することを伴い得る。これは、サブピクセル精度への補間を含み得る。動き補償モジュール44は、現在のビデオブロックのPUに関する動きベクトルを受信すると、参照ピクチャリストのうちの1つにおいて動きベクトルが指し示す予測ブロックの位置を特定してもよい。動き補償モジュール44はまた、ビデオスライスのビデオブロックを復号する際にビデオデコーダ30によって使用されるビデオブロックおよびビデオスライスに関連付けられたシンタックス要素を生成してもよい。
【００５１】
予測モジュール41内のイントラ予測モジュール46は、空間圧縮を行うために、同じフレームまたはスライス中の1つまたは複数の隣接ブロックに対する現在のビデオブロックのイントラ予測コーディングを実施し得る。イントラ予測モジュール46は、上記で説明したように、動き推定モジュール42と動き補償モジュール44とによって実施されるインター予測の代替として、現在のブロックをイントラ予測し得る。特に、イントラ予測モジュール46は、現在のブロックを符号化するために使用すべきイントラ予測モードを判断し得る。いくつかの例では、イントラ予測モジュール46は、たとえば、別個の符号化パス中に、様々なイントラ予測モードを使って、現在のブロックを符号化することができる。たとえば、イントラ予測モジュール46は、様々なテストされたイントラ予測モードのためのレート歪み分析を使用してレート歪み値を計算し、テストされたモードの中で最良のレート歪み特性を有するイントラ予測モードを選択することができる。レート歪み分析は、符号化ブロックと、符号化ブロックを生成するために符号化された元の非符号化ブロックとの間の歪(または誤差)、ならびに、符号化ブロックを生成するために使用されたビットレート(すなわち、ビット数)を決定し得る。イントラ予測モジュール46は、どのイントラ予測モードがブロックに関する最良のレート歪み値を示すのかを判定するために、様々な符号化ブロックに関する歪みおよびレートから比を計算してもよい。
【００５２】
イントラ予測モジュール46は、ブロックに関する選択されたイントラ予測モードを示す情報をエントロピー符号化モジュール56に提供してもよい。エントロピー符号化モジュール56は、選択されたイントラ予測モードを示す情報を符号化してもよい。ビデオエンコーダ20は、送信ビットストリーム内に構成データを含めてよく、構成データは、複数のイントラ予測モードインデックステーブルおよび複数の変更されたイントラ予測モードインデックステーブル(コードワードマッピングテーブルとも呼ばれる)と、様々なブロックに関する符号化コンテキストの定義、ならびにコンテキストの各々のために使用する、最もあり得るイントラ予測モード、イントラ予測モードインデックステーブル、および変更されたイントラ予測モードインデックステーブルの指示を含み得る。
【００５３】
予測モジュール41が、インター予測またはイントラ予測のいずれかを介して、現在のビデオブロック用の予測ブロックを生成した後、ビデオエンコーダ20は、現在のビデオブロックから予測ブロックを減算することによって残差ビデオブロックを形成する。このプロセスは、ピクセル差分値を生じ得る。ピクセル差分値は、ブロックについての残差データを形成し、ルーマ差分成分とクロマ差分成分の両方を含み得る。予測モジュール41および区分モジュール35に動作可能に結合された加算器50は、この減算演算を実施するように構成され得る1つの構成要素または複数の構成要素を表す。
【００５４】
残差ブロック内の残差ビデオデータは、1つまたは複数のTUに含められ、加算器50に動作可能に結合された変換モジュール52に適用され得る。変換モジュール52は、離散コサイン変換(DCT)または概念的に同様の変換などの変換を使用して、残差ビデオデータを残差変換係数に変換することができる。変換モジュール52は、残差ビデオデータをピクセル領域から周波数領域などの変換領域に変換し得る。予測モジュール41は、得られたイントラまたはインターコード化ブロックを、残差ブロックデータを生成するために加算器50に与えればよい。得られたイントラまたはインターコード化ブロックは、参照ピクチャとして使用するための符号化ブロックを再構築するために、加算器62にさらに与えられてよい。
【００５５】
ビデオエンコーダ20は、加算器62に動作可能に結合されたフィルタモジュール63も含み得る。フィルタモジュール63は、デブロッキングフィルタ、適応ループフィルタ(ALF)、およびサンプル適応オフセット(SAO)フィルタなど、1つまたは複数のループフィルタを表し得る。フィルタモジュール63は、インループフィルタであるとして図2に示されているが、他の構成では、フィルタモジュール63は、ポストループフィルタとして実装されてよい。フィルタモジュール63は、参照ピクチャメモリ64に参照ピクチャを与え得る。
【００５６】
変換モジュール52は、得られた変換係数を量子化モジュール54に送り得る。量子化モジュール54は、ビットレートをさらに低減するために、変換係数を量子化し得る。量子化プロセスでは、係数の一部またはすべてに関連するビット深度を小さくしてもよい。量子化の程度は、量子化パラメータを調整することによって変更されてもよい。いくつかの例では、量子化モジュール54は、次いで、量子化された変換係数を含む行列の走査を実施してもよい。いくつかの実施形態では、エントロピー符号化モジュール56が走査を実施してもよい。
【００５７】
エントロピー符号化モジュール56は、量子化に続いて、量子化された変換係数をエントロピー符号化してもよい。たとえば、エントロピー符号化モジュール56は、コンテキスト適応可変長コーディング(CAVLC)、コンテキスト適応バイナリ算術コーディング(CABAC)、シンタックスベースコンテキスト適応バイナリ算術コーディング(SBAC)、確率間隔区分エントロピー(PIPE)コーディング、または別のエントロピーコーディング方法論を実施してもよい。ビデオエンコーダ20はまた、ビデオデータを復号する上でビデオデコーダ30によって使用される符号化されたビデオデータに関連付けられたシンタックス要素をエントロピー符号化してもよい。
【００５８】
エントロピー符号化モジュール56によるエントロピー符号化に続いて、符号化ビットストリームは、ビデオデコーダ30に送信されてよい。ビットストリームは、ビデオデコーダ30によって後で送信し、または取り出すために、アーカイブされてもよい。エントロピー符号化モジュール56は、コーディングされている現在のビデオスライスに関する動きベクトルおよび他のシンタックス要素を符号化してもよい。
【００５９】
ビデオエンコーダ20は、エントロピー符号化モジュール56に動作可能に結合された逆量子化モジュール58も含み得る。逆変換モジュール60も、逆量子化モジュール58および加算器62に動作可能に結合されてよい。逆量子化モジュール58および逆変換モジュール60は、それぞれ逆量子化および逆変換を適用して、参照ピクチャの参照ブロックとして後で使用するためにピクセル領域において残差ブロックを再構築することができる。動き補償モジュール44は、参照ピクチャリストのうちの1つ内の参照ピクチャのうちの1つの予測ブロックに残差ブロックを加算することによって、参照ブロックを計算してもよい。加算器62は、参照ピクチャメモリ64内に記憶される参照ブロックを生成するために、動き補償モジュール44によって生成された動き補償予測ブロックに再構築残差ブロックを加算してもよい。参照ブロックは、後続のビデオフレームまたはピクチャ内のブロックをインター予測するために、参照ブロックとして動き推定モジュール42および動き補償モジュール44によって使用されてもよい。
【００６０】
いくつかの例では、ビデオエンコーダ20は、ビットストリームを生成する。ビデオエンコーダ20によって生成されたビットストリームは、ビットストリームからサブビットストリームとして抽出され得る複数のオペレーションポイントを含み得る。オペレーションポイントは、たとえば、複数のレイヤおよび/またはビュー、ならびに複数のフレームレートを含み得る。ビデオエンコーダ20は、出力オペレーションポイントを示す情報をVPS中で符号化することができる。いくつかの例では、ビットストリームに関連付けられたVPS中でビデオエンコーダ20がシグナリングするオペレーションポイントの各々について、オペレーションポイントシンタックス構造は、所与のオペレーションポイントのサブビットストリームに属す、ビットストリーム中のNALユニットを識別するのに使われるレイヤ識別子(ID)のセットを指定する。このようにして、所与のオペレーションポイントのサブビットストリームを作り上げるNALユニットは、NALユニットのレイヤ識別子に基づいて、元のビットストリームから抽出することができる。
【００６１】
いくつかのケースではビデオエンコーダ20は、下でより詳細に論じるように、オペレーションポイントのうちの1つまたは複数に関連したHRDパラメータをさらに符号化することができる。この場合、ビデオエンコーダ20は、VPS中でHRDパラメータ情報をシグナリングする。ビデオエンコーダ20は、生成された各ビットストリームが適合ビットストリームであることを確実にするために、HRDの実装形態を含んでよい。HRD実装形態は、ビットストリームが適合ビットストリームであるかどうかをチェックするための、デコーダ(たとえば、ビデオデコーダ30)およびビットストリームアナライザなど、他のエンティティの一部であってもよい。以下でより詳細に論じるように、HRDパラメータを有する1つまたは複数のオペレーションポイントの各々について、HRDパラメータシンタックス構造は、所与のオペレーションポイントのサブビットストリームの適合性をチェックするのに使われるHRDを定義するHRDパラメータのセットを指定し得る。
【００６２】
本明細書で使用する限り、オペレーションポイントとは、別のビットストリーム、目標最高temporal_ID、および目標レイヤ識別子リストを入力としてもつ、サブビットストリーム抽出プロセスの動作によって、別のビットストリームから作成されたビットストリームである。より具体的には、「オペレーションポイント」は、時間的にスケーラブルであり、ならびに/または複数のレイヤおよび/もしくはビューをもつ、元のビットストリームから抽出することができるサブビットストリームである。つまり、オペレーションポイントとは、別のビットストリーム、目標最高時間ID、および目標レイヤ識別子リストを入力としてもつ、サブビットストリーム抽出プロセスの動作によって、別のビットストリームから作成されたビットストリームである。ビットストリームは、オペレーションポイントのビューを含む、1つまたは複数のビューを含む。目標最高temporal_IDは、時間サブセットを定義する。目標レイヤリストは、レイヤのセット、すなわち、オペレーションポイントについて復号されるべきレイヤのセット、および出力オペレーションポイントについて出力されるべきレイヤのセットを含む。出力オペレーションポイントは、特に、出力レイヤのセット、すなわち、出力されるべきレイヤである、出力レイヤセット中で識別されるレイヤに関連付けられる。概して、各ビットストリームは、1つまたは複数の出力レイヤセットを含み得る。各出力レイヤセットは、1つまたは複数の出力オペレーションポイントを含み得る。対応するサブビットストリームが適合ビットストリームであることを確実にするために、ビットストリーム適合性試験が各出力オペレーションポイントについて実施される。
【００６３】
「レイヤセット」という用語は、復号されるべきレイヤのセットを指すのに使われる。「レイヤセット」は、レイヤセットが時間IDの特定の値に関連付けられないことを除いて、オペレーションポイントと同様である。そうではなく、レイヤ中に存在する時間サブレイヤはすべて、レイヤセットに関する。同様に、レイヤセットは、可能最高時間IDに関連付けられていると言うことができる。したがって、レイヤ中に存在する時間サブレイヤはすべて、レイヤセットに属する。レイヤセットは、ビットストリームからオペレーションポイントを導出することができる同一のやり方で、可能最高値である最高時間IDを使ってビットストリームから導出することができる。
【００６４】
「出力レイヤセット」という用語は、出力レイヤが指定されるレイヤセットを指す。したがって、復号されるべきレイヤのセットはレイヤセットとして指定され、出力されるべきレイヤのセットは、出力レイヤセット用に指定される。いくつかの例では、出力レイヤセットは、対応するレイヤセットへのインデックスを含めることによって、対応するレイヤセットを識別し、ここで、対応するレイヤセットは、復号されるべきレイヤを識別する。他の例では、出力レイヤセットは、何らかの他の方式で、対応するレイヤセットを識別する。
【００６５】
出力を目標としない、レイヤセット中のレイヤは、たとえば、レイヤ間(またはビュー間)予測に使われるとき、依然として復号される場合がある。出力を目標とするレイヤは、復号されるべきであるレイヤのサブセットであり、すなわち、復号されるべきレイヤのうちの1つ、いくつか、またはすべてが、出力を目標とし得る。「サブセット」という用語は、出力されるべきレイヤが、復号されるべきレイヤの厳密なサブセットであることを必ずしも意味するわけではないことを理解されたい。つまり、いくつかの例では、復号されるべきレイヤと、出力されるべきレイヤは同じである。したがって、出力レイヤセットと出力オペレーションポイントとの間の違いは、上述した、レイヤセットとオペレーションポイントとの間の違いと同様である。
【００６６】
サブビットストリームは、ビットストリームの出力オペレーションポイントを識別する、レイヤ識別子(出力オペレーションポイントについてのレイヤを識別する)および時間サブレイヤ識別子(出力オペレーションポイントについての時間サブセットを識別する)の値に基づいて、ビットストリームから抽出することができる。出力オペレーションポイントは、ビットストリーム内のVPS中でシグナリングされ得る。オペレーションポイントの各々について、オペレーションポイントシンタックス構造は、所与のオペレーションポイントのサブビットストリームに属す、ビットストリーム中のネットワーク抽象化レイヤ(NAL)ユニットを識別するのに使われるレイヤ識別子のセットを指定する。このようにして、所与の出力オペレーションポイントのサブビットストリームを作り上げるNALユニットは、NALユニットのレイヤ識別子と、出力オペレーションポイントに関連付けられた最高時間IDとに基づいて、元のビットストリームから抽出され得る。NALユニットは、符号化ビデオデータの構成要素であり、符号化ビデオデータはNALユニットに編成される。
【００６７】
図3は、図1のビデオデコーダを示すブロック図である。説明のために、本開示は、HEVCコーディングのコンテキストにおけるビデオデコーダ30を説明する。ただし、本開示は他のコーディング規格または方法に適用可能であり得る。
【００６８】
ビデオデコーダ30は、エントロピー復号モジュール70、予測モジュール71、逆量子化モジュール76、逆変換モジュール78、加算器80、フィルタモジュール84、および復号ピクチャバッファ(DPB)82を含み得る。予測モジュール71は、動き補償モジュール72およびイントラ予測モジュール74を含み得る。他の例では、ビデオデコーダ30は、より多数の、より少数の、または異なる機能構成要素を含んでよい。
【００６９】
コード化ピクチャバッファ(CPB)90は、ビットストリームの符号化ビデオデータ(たとえば、NALユニット)を受信し、記憶することができる。エントロピー復号モジュール70は、CPB90からNALユニットを受信することができ、NALユニットを解析してシンタックス要素を復号することができる。エントロピー復号ユニット70は、NALユニットの中のエントロピー符号化シンタックス要素をエントロピー復号し得る。予測モジュール71、逆量子化モジュール76、逆変換モジュール78、加算器80、およびフィルタモジュール84は、ビットストリームから抽出されたシンタックス要素に基づいて、復号ビデオデータを生成することができる。
【００７０】
ビットストリームのNALユニットは、コード化スライスNALユニットを含み得る。ビットストリームを復号することの一部として、エントロピー復号モジュール70は、シンタックス要素をコード化スライスNALユニットから抽出し、エントロピー復号し得る。コード化スライスの各々は、スライスヘッダおよびスライスデータを含み得る。スライスヘッダは、スライスに関するシンタックス要素を含み得る。スライスヘッダの中のシンタックス要素は、スライスを含むピクチャに関連付けられたPPSを識別するシンタックス要素を含み得る。
【００７１】
シンタックス要素をビットストリームから復号することに加えて、ビデオデコーダ30は、区分されていないCUに対して再構築動作を実施し得る。区分されていないCUに対して再構築動作を実施するために、ビデオデコーダ30は、CUの各TUに対して再構築動作を実施することができる。CUの各TUに対して再構築動作を実施することによって、ビデオデコーダ30はCUの残差ブロックを再構築することができる。
【００７２】
CUのTUに対して再構成演算を実施することの一部として、逆量子化モジュール76は、TUに関連付けられた係数ブロックを逆量子化、すなわち量子化解除することができる。逆量子化モジュール76は、量子化の程度と、同様に逆量子化モジュール76が適用するべき逆量子化の程度とを決定するために、TUのCUに関連した量子化パラメータ(QP)値を使用し得る。すなわち、圧縮比、すなわち、元のシーケンスおよび圧縮されたシーケンスを表すために使用されるビット数の比が、変換係数を量子化するときに使用されるQPの値を調整することによって制御され得る。圧縮比はまた、採用されるエントロピーコーディングの方法に依存し得る。
【００７３】
逆量子化モジュール76が係数ブロックを逆量子化した後、逆変換モジュール78は、TUに関連付けられた残差ブロックを生成するために、1つまたは複数の逆変換を係数ブロックに適用し得る。たとえば、逆変換モジュール78は、係数ブロックに、逆DCT、逆整数変換、逆方向変換、または別の逆変換を適用し得る。
【００７４】
PUがイントラ予測を使用して符号化されている場合、イントラ予測モジュール74は、イントラ予測を実施して、PUに関する予測ブロックを生成し得る。イントラ予測モジュール74は、イントラ予測モードを使用して、空間的に隣接するPUの予測ブロックに基づいて、PUに関する予測ルーマブロック、予測Cbブロック、および予測Crブロックを生成し得る。イントラ予測モジュール74は、ビットストリームから復号された1つまたは複数のシンタックス要素に基づいて、PUに対するイントラ予測モードを決定し得る。
【００７５】
予測モジュール71は、ビットストリームから抽出されたシンタックス要素に基づいて、第1の参照ピクチャリスト(RefPicList0)および第2の参照ピクチャリスト(RefPicList1)を構築し得る。さらに、PUがインター予測を使用して符号化されている場合、エントロピー復号モジュール70は、PUに関する動き情報を抽出し得る。動き補償モジュール72は、PUの動き情報に基づいて、PUに関する1つまたは複数の参照領域を決定し得る。動き補償モジュール72は、PUについての1つまたは複数の参照ブロックにおけるサンプルブロックに基づいて、PUについての予測ルーマ、Cb、およびCrブロックを生成することができる。
【００７６】
加算器80は、CUのTUに関連付けられたルーマ変換ブロック、Cb変換ブロック、およびCr変換ブロック、ならびにCUのPUの予測ルーマブロック、予測Cbブロック、および予測Crブロックが適用可能な場合にそれらを使用して、すなわち、イントラ予測データまたはインター予測データのいずれかを使用して、CUのルーマコーディングブロック、Cbコーディングブロック、およびCrコーディングブロックを再構築し得る。たとえば、加算器80は、予測ルーマブロック、予測Cbブロック、および予測Crブロックの対応するサンプルに、ルーマ変換ブロック、Cb変換ブロック、およびCr変換ブロックのサンプルを加算して、CUのルーマコーディングブロック、Cbコーディングブロック、およびCrコーディングブロックを再構築し得る。
フィルタモジュール84は、たとえば、デブロッキングフィルタであってよく、CUのルーマコーディングブロック、Cbコーディングブロック、およびCrコーディングブロックに関連付けられたブロッキングアーティファクトを低減するためにデブロッキング演算を実施し得る。ビデオデコーダ30は次いで、CUのルーマコーディングブロックと、Cbコーディングブロックと、Crコーディングブロックとを復号ピクチャバッファ82に記憶してもよい。復号ピクチャバッファ82は、その後の動き補償、イントラ予測、および図1のディスプレイデバイス32などのディスプレイデバイス上での提示のために、参照ピクチャを提供し得る。たとえば、ビデオデコーダ30は、復号ピクチャバッファ82中のルーマ、Cb、およびCrブロックに基づいて、他のCUのPUに対してイントラ予測またはインター予測動作を実施することができる。このようにして、ビデオデコーダ30は、有意ルーマ係数ブロックの変換係数レベルをビットストリームから復号し、変換係数レベルを逆量子化し、変換係数レベルに変換を適用して変換ブロックを生成し、変換ブロックに少なくとも部分的に基づいてコーディングブロックを生成し、コーディングブロックを表示のために出力し得る。
【００７７】
サブビットストリーム抽出
ビデオコーディング規格は、サブビットストリーム抽出プロセスをサポートするための様々な特徴を含み得る。たとえば、ビットストリームのビデオデータは、レイヤのセットに分割されてよい。レイヤの各々について、下位レイヤ中のデータは、どの上位レイヤ中のデータも参照せずに復号され得る。個々のNALユニットは、単一のレイヤのデータをカプセル化するだけである。したがって、ビットストリームの最も上位の残りのレイヤのデータをカプセル化するNALユニットは、ビットストリームの残りの下位レイヤ中のデータの復号可能性に影響することなく、ビットストリームから削除され得る。SVC、SHVC、および他のスケーラブルなビデオ符号化方法において、上位レイヤは、下位レイヤ中のピクチャの品質を向上させ(品質スケーラビリティ)、下位レイヤ中のピクチャの空間フォーマットを拡大し(空間スケーラビリティ)、または下位レイヤ中のピクチャの時間レートを増大させる(時間スケーラビリティ)強化データを含み得る。MVC、MV-HEVC、および他の3次元ビデオコーディングにおいて、上位レイヤは追加ビューを含み得る。
【００７８】
NALユニットは、NALユニットの時間識別子を指定し得る。第1のNALユニットの時間識別子が、第2のNALユニットの時間識別子未満である場合、第1のNALユニットによってカプセル化されたデータは、第2のNALユニットによってカプセル化されたデータを参照せずに復号することができる。
【００７９】
ビットストリームの各オペレーションポイントは、レイヤ識別子のセットおよび時間識別子に関連付けられる。レイヤ識別子のセットはOpLayerIdSetと表記することができ、時間識別子はTemporalIdと表記することができる。NALユニットのレイヤ識別子が、レイヤ識別子のオペレーションポイントのセット中にあり、NALユニットの時間識別子がオペレーションポイントの時間識別子以下である場合、NALユニットはオペレーションポイントに関連付けられている。サブビットストリームは、オペレーションポイントに関連付けられたビットストリームサブセットである。サブビットストリームは、オペレーションポイントに関連付けられた各NALユニットを含み得る。サブビットストリームは、オペレーションポイントに関連付けられていないVCL NALユニットは含まない。
【００８０】
仮想参照デコーダ
ビデオコーディング規格は、HRDとも呼ばれるビデオバッファリングモデルを指定する。HRDは、データが復号のためにどのようにバッファリングされるべきか、および復号データが出力のためにどのようにバッファリングされるかを記述する。たとえば、HRDは、ビデオコーディングシステム10のCPBおよびDPBの動作を記述する。CPBおよびDPBは、それぞれ、CPB90(図3)および参照ピクチャメモリ64(図2)を含み得る。いくつかの実施形態では、DPBは、DPB82(図3)と同様である場合もある。CPBは、HRDによって指定された復号順序でアクセスユニットを含む先入れ先出しバッファであってよい。DPBは、HRDによって指定された参照、出力並べ替え、または出力遅延のために復号ピクチャを保持するバッファである。
【００８１】
ビデオエンコーダ20は、シーケンスレベルHRDパラメータのセットをシグナリングすることができる。シーケンスレベルHRDパラメータは、HRDの様々な側面を制御する。シーケンスレベルHRDパラメータは、初期CPB除去遅延、CPBサイズ、ビットレート、初期DPB出力遅延、およびDPBサイズを含む。これらのシーケンスレベルHRDパラメータは、VPSおよび/またはSPS中で指定されるhrd_parameters()シンタックス構造中でコーディングされる。ピクチャレベルまたはサブピクチャレベルHRDパラメータは、BP、PT、またはDUI SEIメッセージ中で指定され得る。
【００８２】
サブビットストリーム(たとえば、オペレーションポイントの)は、その元のビットストリームとは異なるフレームレートおよび/またはビットレートを有し得る。というのは、サブビットストリームは、元のビットストリームのいくつかのピクチャおよび/またはデータのうちのいくつかを含まない場合があるからである。したがって、ビデオデコーダ20が、元のビットストリームを処理するとき、特定のレートでCPBおよび/またはDPBからデータを削除するとしたら、ならびにビデオデコーダ30が、サブビットストリームを処理するとき、同じレートでCPBおよび/またはDPBからデータを削除するとしたら、ビデオデコーダ30は、あまりにも多いか、またはあまりにも少ないデータをCPBおよび/またはDPBから削除する可能性がある。したがって、ビデオエンコーダ20は、異なるオペレーションポイントについて異なるHRDパラメータセットをシグナリングし得る。HEVCでは、ビデオエンコーダ20は、HRDパラメータのセットをVPS中でシグナリングしてもよく、ビデオエンコーダ20は、HRDパラメータのセットをSPS中でシグナリングしてもよい。
【００８３】
HEVCのいくつかのバージョンでは、VPS中のHRDパラメータのセットのみが、HRD動作用に選択される。つまり、HRDパラメータはSPS中で与えられ得るが、SPS中のHRDパラメータのセットは、HEVCビデオデコーダによってHRD動作用に選択されない。ビデオデコーダ30は、ビットストリームのVPSを解析し、復号することができる。したがって、ビデオデコーダ30は、VPSのHRDパラメータのセットを解析し、復号することができる。これは、ビットストリームが非ベースレイヤNALユニットを含むかどうかにかかわらず起こり得る。
【００８４】
ビデオエンコーダ20は、ピクチャのシーケンスに適用可能なSPSを含むビットストリームを生成することができる。いくつかの実施形態では、SPSはHRDパラメータのセットを含む。HRDパラメータのセットは、目標レイヤ識別子のセットと一致するレイヤ識別子のセットを有するビットストリームの各オペレーションポイントに適用可能である。したがって、SPS中のHRDパラメータのセットは、無駄にされるのではなく、HRD動作用に使うことができる。たとえば、デバイスが、VPS中のHRDパラメータのセットおよびSPS中のHRDパラメータのセットの中から、特定のオペレーションポイントに適用可能なHRDパラメータのセットを選択し得る。ビデオエンコーダ20は、特定のオペレーションポイントに適用可能なHRDパラメータのセットに少なくとも部分的に基づいて、特定のオペレーションポイントに関連付けられたビットストリームサブセットがビデオコーディング規格に適合するかどうかをテストするビットストリーム適合性試験を実施すればよい。
【００８５】
ビデオエンコーダ20、ビデオデコーダ30、または、たとえばコンテンツ配信ネットワーク(CDN)デバイス、メディア認識ネットワーク要素(MANE)など、別のタイプのデバイスが、オペレーションポイントについてのサブビットストリームに対してビットストリーム適合性試験を実施する場合がある。ビットストリーム適合性試験は、サブビットストリームが、HEVCなどのビデオコーディング規格に適合することを検証し得る。
【００８６】
H.264/AVCおよびHEVCでは、ビットストリーム適合性およびデコーダ適合性は、HRD仕様の一部として指定される。HRDモデルは、ビットストリームが規格に適合するかどうか判定するための試験と、デコーダが規格に適合するかどうか判定するための試験とを指定する。HRDは、あるタイプのデコーダと呼ばれるが、ビデオエンコーダ20は、HRDを、ビットストリーム適合性を保証するのに使ってよく、ビデオデコーダ30は、実際にはHRDを要求しない場合がある。
【００８７】
2つのタイプのビットストリームサブセット、すなわちタイプIおよびタイプIIが、HRD適合性の対象である。タイプIビットストリームとは、ビットストリーム中のすべてのアクセスユニットについてのVCL NALユニットおよびフィラーデータNALユニットのみを含むNALユニットストリームである。タイプIIビットストリームとは、ビットストリーム中のすべてのアクセスユニットについてのVCL NALユニットおよびフィラーデータNALユニットに加え、フィラーデータNALユニット以外の追加の非VCL NALユニット、ならびにNALユニットストリームからバイトストリームを形成するすべてのleading_zero_8bits、zero_byte、start_coded_prefix_one_3bytes、およびtrailing_zero_8bitsシンタックス要素のうちの少なくとも1つを含むNALユニットストリームである。
【００８８】
ビットストリームがビデオコーディング規格に適合するかどうか判定するビットストリーム適合性試験をデバイス(たとえば、ビデオエンコーダ20)が実施するとき、デバイスはビットストリームのオペレーションポイントを選択することができる。デバイスは次いで、選択したオペレーションポイントに適用可能なHRDパラメータのセットを判断することができる。デバイスは、選択したオペレーションポイントに適用可能なHRDパラメータのセットを、HRDの挙動を構成するのに使えばよい。より具体的には、デバイスは、適用可能なHRDパラメータセットを、たとえば仮想ストリームスケジューラ(HSS)、CPB、復号プロセス、DPBなど、HRDの特定の構成要素の挙動を構成するのに使ってよい。
【００８９】
さらに、デバイスは、CPB90中の符号化ビデオデータを復号する復号プロセスを呼び出せばよい。復号プロセスは、DPB82に復号ピクチャを出力し得る。デバイスがHRDを通してデータを移動させるとき、デバイスは、特定の制約セットが満たされたままであるかどうかを決定することができる。たとえば、デバイスは、HRDが選択されたオペレーションポイントのサブビットストリームを復号している間、CPB90またはDPB82においてオーバーフローまたはアンダーフローの状態が発生するかどうかを決定することができる。デバイスは、このようにして、ビットストリームの各オペレーションポイントを選択し、処理すればよい。ビットストリームのどのオペレーションポイントも、制約に違反しない場合、デバイスは、ビットストリームがビデオコーディング規格に適合すると判断してよい。
【００９０】
H.264/AVCとHEVCの両方が、2つのタイプのデコーダ適合性、すなわち出力タイミングデコーダ適合性および出力順序デコーダ適合性を指定する。特定のプロファイル、ティアおよびレベル(PTL)に適合するデコーダ(たとえば、ビデオデコーダ30)は、HEVCなどのビデオコーディング規格のビットストリーム適合性要件に適合するすべてのビットストリームの復号に成功することが可能である。本明細書で使用するように、「プロファイル」は概して、ビットストリームシンタックスのサブセットを指す場合がある。「ティア」および「レベル」は、各プロファイル内で指定され得る。ティアのレベルは、ビットストリーム内のシンタックス要素の値に課された制約条件の指定されたセットであり得る。そのような制約は、様々な値に対する単純な制限であってもよい。あるいは、それらは、値の算術的な組合せ(たとえば、ピクチャの幅とピクチャの高さと1秒当たりに復号されるピクチャの数とを乗じたもの)に対する制約の形をとり得る。より低いティアに対して指定されるレベルは、より高いティアに対して指定されるレベルよりも制約される。
【００９１】
HEVC規格は、ビデオデータの内容に基づいて、2つのビットストリーム適合性試験セットを規定している。第1のビットストリーム適合性試験セットは、ビットストリーム全体に存在するVCL NALユニットのnuh_layer_id値をすべて含むアクティブVPSによって指定されたレイヤセットがあるかどうかにかかわらず、ビットストリーム全体およびその時間サブセットの適合性をテストするためである。第2のビットストリーム適合性試験セットは、アクティブVPSによって指定されたレイヤセットおよびそれらの時間サブセットの適合性をテストするためである。すべてのこれらの試験に対して、復号プロセスが呼び出されると、ベースレイヤピクチャ(すなわち、nuh_layer_idが0に等しいピクチャ)のみが復号され、他のピクチャはデコーダによって無視される。
【００９２】
ベースVPS中でシグナリングされるレイヤセット
いくつかの例では、ビデオエンコーダ20は、1つまたは複数のレイヤセットをVPS中でシグナリングし得る。HEVC規格によって定義されるVPSは、各スライスセグメントヘッダ中に見られるpic_parameter_set_idシンタックス要素によって参照されるPPS中に見られるseq_parameter_set_idシンタックス要素によって参照されるSPS中に見られるvideo_parameter_set_idシンタックス要素の内容によって決定される、ゼロ個以上のコード化ビデオシーケンス全体に該当するシンタックス要素を含むシンタックス構造である。
【００９３】
VPSはコード化ビデオシーケンス全体に該当するので、VPSは、まれにしか変化しないシンタックス要素を含む。HEVCのいくつかのバージョンにおけるVPS、SPS、およびPPS機構は、まれにしか変化しない情報の送信を、コード化ビデオブロックデータの送信から分断する。HEVCでは、VPS、SPS、またはPPSの識別子(ID)は、各パラメータセット向けにコーディングされ得る。各SPSはSPS IDおよびVPS IDを含み、各PPSはPPS IDおよびSPS IDを含み、各スライスヘッダは、PPS IDおよび可能性としてはAPS IDを含む。したがって、IDは、異なる事例において使われるべき適切なパラメータセットを識別するのに使うことができる。
【００９４】
VPSは、2つの部分、すなわちベースVPSおよびVPS拡張を含む。第1版において定義されるベースVPSは、HEVCバージョン1互換レイヤ、ならびにレイヤセットに対応するオペレーションポイントに関連した情報を含む。ベースVPSは、時間レイヤの最大数を含む時間スケーラビリティ情報も含む。VPS拡張は、ベースレイヤの上の追加レイヤに関連した情報を含む。
【００９５】
MV-HEVC WD8およびSHVC WD6では、ベースVPS中でシグナリングされるすべてのレイヤセットは、ただ1つの出力レイヤがベースレイヤである出力レイヤセット(OLS)と等価である。これは概して、本明細書では、「ベースレイヤ出力オンリーOLS」と呼ばれる。概して、第0のOLSはベースレイヤ出力オンリーOLSのうちの1つであるが、やはりベースレイヤ出力オンリーOLSである他のOLSが存在し得る。というのは、HEVC仕様の付属書類Aにおいて定義されたプロファイルおよびそれらに対応するHRDに適合するビデオデコーダ30は、OLSが復号されるときに強化レイヤのすべてのビットがCPB動作においてカウントされるとしても、強化レイヤを無視して、ベースレイヤのみを復号するからである。
【００９６】
いくつかの例では、VPS拡張におけるベースレイヤ出力オンリーOLSのシグナリングも許可される。ただし、これはベースVPSにおいてすでに遂行されているので、VPS拡張におけるそのようなシグナリングは、ビットの浪費になり得る。したがって、いくつかの実施形態では、HEVC規格は、VPS拡張におけるベースレイヤ出力オンリーOLSのシグナリングを禁じる場合がある。
【００９７】
さらに、ビットストリーム全体は、ベースVPS中でシグナリングされるレイヤセットに対応するかどうかにかかわらず、ベースレイヤ出力オンリーOLSにも等価である。便宜上、ベースレイヤでない少なくとも1つの出力レイヤが存在するOLSは概して、本明細書では「非ベースレイヤ出力オンリーOLS」と呼ばれる。
【００９８】
プロファイル、ティア、レベル
PTL情報は、同様の機能要件を有する様々なアプリケーションにわたって、相互運用可能なやり方で規格(たとえば、HEVC)を実装するためのコンフォーマンスポイントを指定する。適合ビットストリームを生成する際に使うことができるコーディングツールまたはアルゴリズムのセットを、プロファイルが定義し、デコーダ処理負荷およびメモリ能力に対応する、ビットストリームのいくつかの主要パラメータに対する制約を、レベルが課す。レベル制約は、DPB、およびデータフロー管理目的での復号に先立って圧縮データを保持するコード化ピクチャバッファ(CPB)の最大サンプルレート、最大ピクチャサイズ、最大ビットレート、最小圧縮比および容量によって確立される。HEVCの設計では、最大ビットレートおよびCPB容量においてのみ異なる要件を有するいくつかのアプリケーションが存在すると判断された。
【００９９】
プロファイルは、ビットストリーム全体に対応するものを含むすべてのベースレイヤ出力オンリーOLSに対して同じである。これは、ベースレイヤが外部に設けられる場合でも成り立ち、その場合、プロファイルは指定されない。たとえば、そのようなケースでは、ベースVPS中のPTLシンタックス構造は、すべてゼロのビットのみを含む。
【０１００】
ビットストリーム中にベースレイヤがあるとき、ベースレイヤ出力オンリーOLSすべてについてのプロファイルは、ベースレイヤ向けのアクティブSPSのPTLシンタックス構造中で、およびアクティブVPSの第1のPTLシンタックス構造、つまり、アクティブVPSのベース部におけるPTLシンタックス構造中でシグナリングされる。
【０１０１】
ベースレイヤ向けのアクティブSPSのPTLシンタックス構造中で、およびアクティブVPSの第1のPTLシンタックス構造中でシグナリングされるティアおよびレベルは、ビットストリーム全体についてであり、VPS中でシグナリングされるレイヤセットまたはOLSに対応しても対応しなくてもよい。ただし、上述したように、ビットストリーム全体は、ベースレイヤ出力オンリーOLSに対応し得る。
【０１０２】
そのような例において、ベースVPSは、レイヤセット中にベースレイヤ自体のみを含む第0のOLSを含む、シグナリングされる他のベースレイヤ出力オンリーOLSについてのティアおよびレベル情報を含まない。したがって、ビットストリーム全体のティアおよびレベルは、おそらく準最適レートであっても、ビットストリーム全体に対応するもの以外の、ベースレイヤ出力オンリーOLSのうちのいずれにも適用することになる。というのは、ティアおよびレベル情報は、ビットストリーム全体について識別されるからである。したがって、ビットストリーム全体のサブセットに対して、ティアおよびプロファイル情報は準最適であり得る。たとえば、ビットストリーム全体のサブセットに対する最適レベルは、ビットストリーム全体のものよりも低くなり得る。
【０１０３】
第0のOLSを除いて、他のベースレイヤ出力オンリーOLSについての最適ティアおよびレベル情報はVPS拡張においてシグナリングされてよいが、これは必須ではない。というのは、ベースVPS中でシグナリングされる各レイヤセットに対して、VPS拡張においてシグナリングされる1つのベースレイヤ出力オンリーOLSを有するという要件はないからであり得る。
【０１０４】
HEVCバージョン1の観点からは、ビットストリーム全体に対して独自のHRDパラメータならびにティアおよびレベル情報のみを使うビットストリーム適合性試験は、まったく最適ではない。これにより、ビットストリーム全体に対応するもの以外のオペレーションポイントすべてについてのHRDパラメータは、依然として適合性試験にパスしながらも、準最適となり得る。したがって、適合性試験に対するいくつかの変更が検討されるべきである。これは図4に関して以下で記載される。
【０１０５】
hrd_parameters()シンタックス構造におけるHRDパラメータ
HEVCは、一定またはほぼ一定のビットレートで送信するときの、ビットレートのゆらぎと、圧縮ビデオの変化とを扱うためのビデオバッファリングモデルを指定している。したがって、ビデオエンコーダ20およびビデオデコーダ30は、それぞれHRDを使って、CPBまたはDPB中にデータをバッファリングしてよい。HRDは、データが復号のためにどのようにバッファリングされるべきか、および復号データが出力のためにどのようにバッファリングされるかを記述する。
【０１０６】
HRDは、様々なオペレーションポイントにおけるビットストリームおよびデコーダ適合性をチェックするのに使うことができる。上述したように、オペレーションポイントは、サブビットストリーム抽出に使われるパラメータを定義し、パラメータは、目標レイヤのリストと、目標最高時間レイヤとを含む。特定のビットストリームについて複数のオペレーションポイントが指定される場合がある。出力レイヤが指定されるオペレーションポイントは概して、本明細書では出力オペレーションポイントと呼ばれる。
【０１０７】
ビデオコーディング規格において、準拠ビットストリームは、ビデオエンコーダ20の出力に接続されるとともに少なくとも事前デコーダバッファ、デコーダ、および出力/ディスプレイユニット(たとえば、ディスプレイデバイス32)からなるHRDによって復号可能でなければならない。
【０１０８】
ビットストリームは、バッファオーバーフローもアンダーフローもなしでHRDによって復号可能な場合、規格に準拠している。バッファオーバーフローは、バッファが満杯のとき、バッファ中により多くのビットが置かれるべきである場合に起こる。バッファアンダーフローは、いくつかのビットが復号/再生のためにバッファからフェッチされるべきであるとき、それらのビットがバッファ中にないときに起こる。
【０１０９】
ビデオエンコーダ20は、ピクチャの符号化サイズに制約を課すため、ならびに要求されるバッファサイズおよび始動遅延を決めるのを支援するためのHRDパラメータのセットをシグナリングし得る。
【０１１０】
HRDに対して、2つのタイプのHRDパラメータセット(NAL HRDパラメータおよびVCL HRDパラメータ)が使われ得る。いくつかの例では、シーケンスレベルHRDパラメータセットは、SPSシンタックス構造またはVPSシンタックス構造の一部であり得るhrd_parameters()シンタックス構造を通してシグナリングされる。
【０１１１】
hrd_parameters()シンタックス構造内で、3つのシンタックス要素のみが、DPB動作に関連する。他の要素は、CPB動作のみのためである。これらの3つのDPB関連シンタックス要素は、
fixed_pic_rate_general_flag[i]、
fixed_pic_rate_within_cvs_flag[i]、および
elemental_duration_in_tc_minus1[i]であって、TemporalIdの各値に対して1つのセットである。
【０１１２】
ピクチャがクロスレイヤ整列される、つまり、各アクセスユニット(AU)が、レイヤセット中の各レイヤに対してピクチャを有し、固定ピクチャレートが使われるとき、レイヤセットに適用されるhrd_parameters()シンタックス構造は、レイヤセットに関連付けられたすべてのOLSに適用される。ただし、他の状況では、レイヤセットに適用されるhrd_parameters()シンタックス構造は、ベースレイヤ出力オンリーOLS以外のレイヤセットに関連付けられたすべての他のOLSに適用され得るわけではない場合がある。
【０１１３】
言い換えると、VPS拡張において指定されたOLS向けのVPS拡張におけるhrd_parameters()シンタックス構造のシグナリングを可能にすることが必要である。
【０１１４】
非ネスト化および直接ネスト化BP/PT/DUI SEIメッセージの適用可能性
SEIメッセージは、ビデオピクチャのタイミングについての情報、ビデオ信号中で使われる色空間の適切な解釈、3-D立体フレームパッキング情報、他の表示ヒント情報などを含み得る。BP、PT、およびDUI SEIメッセージは、ピクチャレベルおよびサブピクチャレベルHRDパラメータを含む。非ネスト化BP、PT、およびDUI SEIメッセージは、VPS中でシグナリングされるレイヤセットまたはOLSに対応するかどうかにかかわらず、ビットストリーム全体に適用することができる。
【０１１５】
直接ネスト化BP、PT、およびDUI SEIメッセージは、間接ネスト化されるのではなく、スケーラブルなネスティングSEIメッセージ中に直接含まれるBP、PT、およびDUI SEIメッセージを指す。間接ネスト化は、スケーラブルなネスティングSEIメッセージ中に含まれるビットストリーム区分ネスティングSEIメッセージ中に含まれるSEIメッセージを指す。非ネスト化SEIメッセージは、直接または間接ネスト化されるのではなく、SEI NALユニット中に直接含まれる。
【０１１６】
HEVCバージョン1によると、直接ネスト化BP、PT、およびDUI SEIメッセージは、ベースレイヤ出力オンリーOLSと等価である、ベースVPS中でシグナリングされるレイヤセットに対応するオペレーションポイントに適用される。いくつかの例では、直接ネスト化BP、PT、およびDUI SEIメッセージは、これらのSEIメッセージを、直接ネスティングすることによって非ベースレイヤ出力オンリーOLSに関連付けることができないので、非ベースレイヤ出力オンリーOLSには適用されない。
【０１１７】
ただし、いくつかの例では、非ネスト化および直接ネスト化BP、PT、およびDUI SEIメッセージの適用可能性は、現行規格に基づくと、明瞭ではない。したがって、そのようなSEIメッセージのうちのどれが、いくつかのビットストリーム適合性試験において使用するために選択されるべきかは、しばしば不明瞭である。
【０１１８】
いくつかの実施形態では、どのSEIメッセージがどのような適合性試験に関係するかを指定することが有益であり得る。したがって、直接ネスト化SEIメッセージが、ベースレイヤ出力オンリーOLSに対応するオペレーションポイントとの使用のために選択されてよい。いくつかの実施形態では、直接ネスト化SEIメッセージのみが、ベースレイヤ出力オンリーOLSに対応するオペレーションポイントとの使用のために選択されてよい。これにより、ある程度の曖昧性をなくすことができる。いくつかの他の実施形態では、SEIメッセージは、BP、PT、およびDUI SEIメッセージのうちの1つであり得る。
【０１１９】
いくつかの実施形態では、間接ネスト化SEIメッセージは、VPS拡張において指定された非ベースレイヤ出力オンリーOLSに適用され得る。いくつかの他の実施形態では、間接ネスト化SEIメッセージは、BP、PT、およびDUI SEIメッセージのうちの1つであり得る。
【０１２０】
ビットストリーム適合性試験
いくつかの例では、第0のOLSを除いて、ベースレイヤ出力オンリーOLSについての最適ティアおよびレベル情報は、VPS拡張においてシグナリングされ得る。HEVCでは、これは必須ではない。というのは、ビデオエンコーダ20は、ベースVPS中でシグナリングされる各レイヤセットについて、ベースレイヤ出力オンリーOLSをVPS拡張中でシグナリングする必要がないからである。VPSベースにおいて、ただ1つのPTL情報セットがシグナリングされるが、複数のhrd_parameters()構造が、たとえば、各ベースレイヤ出力オンリーOLSについて1つ、シグナリングされてよい。したがって、ベースレイヤ出力オンリーOLSのコンフォーマンスポイントについてのビットストリーム適合性が、コンフォーマンスポイントのHRDパラメータと突き合わせてテストされる。ただし、制約は、ビットストリーム全体のティアおよびレベル情報のみと突き合わせてチェックされる。これは、VPSベースによって指定されるベースレイヤ出力オンリーOLSすべてによって共有される、VPSベース中でシグナリングされる唯一のPTL情報である。既存の要件は次いで、ビットストリーム全体に対応するもの以外のオペレーションポイントすべてについてのHRDパラメータが、依然として適合性試験にパスしたまま、最適よりも「高く」なるようにしてよい。いくつかの例では、ティアおよびレベル情報は、HRDパラメータの多くに上限を与える。したがって、ビットストリーム全体のティアまたはレベルは、ベースレイヤ出力オンリーOLS向けの最適ティアまたはレベルよりも高くなり得る。したがって、異なるベースレイヤ出力オンリーOLS向けのビットストリーム適合性試験を、それぞれの内容に従って実装することが有益であり得る。これは、異なるベースレイヤ出力オンリーOLSについて異なるティアおよびレベル情報をシグナリングすることによって遂行することができる。
【０１２１】
いくつかの実施形態では、実装される3つのビットストリーム適合性試験セットがあり得る。第1のビットストリーム適合性試験セットは、ビットストリーム全体に存在するVCL NALユニットのnuh_layer_id値をすべて含むアクティブVPSによって指定されたレイヤセットがあるかどうかにかかわらず、ビットストリーム全体およびその時間サブセットの適合性をテストするためである。第2のビットストリーム適合性試験セットは、アクティブVPSのベース部(たとえば、VPSベース)によって指定されたレイヤセットおよびそれらの時間サブセットの適合性をテストするためである。すべてのこれらの試験に対して、復号プロセスが呼び出されると、ベースレイヤピクチャ(すなわち、nuh_layer_idが0に等しいピクチャ)のみが復号され、他のピクチャはデコーダによって無視される。第3のビットストリーム適合性試験セットは、アクティブVPSのVPS拡張によって指定されたOLS、およびそれらのOLSの時間サブセットの適合性をテストするために実装され得る。
【０１２２】
いくつかの実施形態では、3つの適合性試験は、1つまたは複数の出力オペレーションポイントに対して行われる。出力オペレーションポイントは、ビットストリームを作り上げる符号化ビデオデータから選択および抽出することができる。いくつかの実施形態では、出力オペレーションポイントの選択は、パラメータセット(たとえば、SPS、VPS、PPS)の内容およびビットストリームの内容に基づく。
【０１２３】
いくつかのケースでは、選択された出力オペレーションポイントは、レイヤ識別子リスト(OpLayerIdList)および目標最高時間ID(OpTid)を選択することによって、試験中の出力オペレーションポイント(「目標Op」とも記される)として識別され得る。レイヤ識別子リストは、ビットストリーム中に存在するVCL NALユニットのレイヤID(nuh_layer_id)をすべて含むか、またはアクティブVPSによって指定されたレイヤセットのレイヤIDを含む。そのような例において、第1または第2のビットストリーム適合性試験のうちの1つが、選択された出力オペレーションポイントに適用される。
【０１２４】
上述したように、第3のビットストリーム適合性試験は、アクティブVPSのVPS拡張部によって指定されたOLSおよびそれらの時間サブセットに適用される。第3のビットストリーム適合性試験セットの中の各試験に対して、1つまたは複数の出力オペレーションポイントが、第1および第2のビットストリーム適合性試験とはわずかに異なるやり方で選択され得る。選択された出力オペレーションポイント(たとえば、試験中の出力オペレーションポイント、またはTargetOp)は、VPS拡張における目標OLSおよびOLS内の最高時間ID(HighestTid)を識別することによって選択される。
【０１２５】
図4は、適合性試験実装方法を記述するフローチャートである。ブロック410において、コーディングシステム10は、複数の出力オペレーションポイントを含む符号化ビデオデータを受信し得る。符号化ビデオデータは、出力オペレーションポイントの各々について、どのレイヤが出力されるべきであるかという指示も含み得る。指示は、パラメータセット(たとえば、VPS、SPS)中に含めることができる。指示は、出力オペレーションポイントがビットストリーム全体もしくはビットストリーム全体の時間サブセットまたはVPSベースによって指定されたレイヤセットもしくはレイヤセットの時間サブセットに対応するとき、暗黙的であってもよい。暗黙的ケースでは、ベースレイヤのみが出力されることになる。ブロック415において、コーディングシステム10は、ビットストリーム適合性試験に従ってテストされるべき出力オペレーションポイントを抽出することができる。出力オペレーションポイントは、OLSの識別、OLSの時間サブセット、ビットストリーム全体の時間サブセットに基づいて、またはVPSベースもしくはVPS拡張において指示される他のやり方で選択されてよい。ビデオエンコーダ20およびビデオデコーダ30を備える1つまたは複数のプロセッサが次いで、出力オペレーションポイント(たとえば、符号化ビデオデータ)向けの所与の適合性試験を、その内容に基づいて実装してよい。
【０１２６】
たとえば、決定ブロック420において、選択された出力オペレーションポイントが、ベースレイヤのみを出力としてもつビットストリーム全体またはビットストリーム全体の時間サブセットに対応する場合、方法400はブロック430に移ってよい。ブロック430において、プロセッサ(たとえば、HRD)は、ベースレイヤ向けのアクティブSPS中のシーケンスレベルHRDパラメータのセットと、非ネスト化SEIメッセージ(たとえば、BP、PT、およびDUI)とに基づいて、選択された出力オペレーションポイントに対して第1のビットストリーム適合性試験を実施してよい。シーケンスレベルHRDパラメータのセットは、アクティブSPS中のhrd_parameters()シンタックス構造中で指定することができる。いくつかの実施形態では、第1のビットストリーム適合性試験は、アクティブSPS中のPTLシンタックス構造にさらに基づき得る。
【０１２７】
決定ブロック420において、選択された出力オペレーションポイントが、ベースレイヤのみを出力としてもつビットストリーム全体にも、ビットストリーム全体の時間サブセットにも対応しない場合、方法400は決定ブロック440に移る。決定ブロック440において、選択された出力オペレーションポイントが、ベースレイヤのみが出力されるべきである、アクティブVPSベースによって指定されたレイヤセット、またはレイヤセットの時間サブセットのうちの1つに対応する場合、プロセッサは、ブロック450において第2のビットストリーム適合性試験を実施してよい。第2のビットストリーム適合性試験は、ベースVPS中のシーケンスレベルHRDパラメータのセットと、直接ネスト化BP、PT、またはDUI SEIメッセージとに基づいて、選択された出力オペレーションポイントに対して実施することができる。シーケンスレベルHRDパラメータのセットは、アクティブVPSベース中のhrd_parameters()シンタックス構造中で指定することができる。
【０１２８】
決定ブロック440において、符号化ビデオデータが、ベースレイヤのみが出力されるべきである、アクティブVPSのベース部によって指定されたレイヤセット、またはレイヤセットの時間サブセットのうちの1つに対応しない場合、符号化ビデオデータは、ブロック460に示すように、アクティブVPSのVPS拡張によって指定されたOLS、またはOLSの時間サブセットのうちの1つに対応する。ブロック470において、プロセッサ(たとえば、HRD)は、アクティブVPSのベースまたは拡張部中のシーケンスレベルHRDパラメータのセットと、間接ネスト化BP、PT、またはDUI SEIメッセージとに基づいて、選択された出力オペレーションポイントに対して第3のビットストリーム適合性試験を実施してよい。シーケンスレベルHRDパラメータのセットは、アクティブVPSのベースまたは拡張部中のhrd_parameters()シンタックス構造中で指定することができる。したがって、3つの別個のタイプの適合性試験を用いると、異なるタイプの出力オペレーションポイント向けのビットストリーム適合性試験が明確になり、効率的に、およびHEVCバージョン1の仕様に対して後方互換性のあるやり方で指定される。
【０１２９】
いくつかの実施形態では、VPS拡張において指定されたすべてのOLSの中のベースレイヤ出力オンリーOLSに対して、存在する場合は、アクティブVPSのベース部の中の適用可能hrd_parameters()シンタックス構造、ならびに適用可能な、直接ネスト化BP、PT、およびDUI SEIメッセージが使われる。既存のシンタックスおよびプロセスはこれを、HEVCバージョン1に対して後方互換性のあるやり方で許可するが、これは、VPS拡張中の指定された他のOLSに対しては許可されない。
【０１３０】
非ベースレイヤ出力オンリーOLSがビットストリーム全体におけるすべてのレイヤを含む場合、依然として、ネスト化されていないものではなく、間接ネスト化BP、PT、およびDUI SEIメッセージのみを使うことができ、というのは、ネスト化されていないものは、ビットストリーム全体におけるすべてのレイヤを含むベースレイヤ出力オンリーOLS用だからであることに留意されたい。
【０１３１】
PTLシンタックス構造の使用は、VPS拡張において指定されたすべてのOLSの中で、ベースレイヤ出力オンリーOLSと非ベースレイヤ出力オンリーOLSの両方について同じである。ベースVPS中またはVPS拡張中のいずれかにおいて、最も適切に適用可能なPTLシンタックス構造が使われる。
【０１３２】
非ベースレイヤ出力オンリーOLSが、ビットストリーム全体におけるすべてのレイヤを含む場合、依然として、ベースレイヤ向けのSPSアクティブにおけるPTLシンタックス構造中のものではなく、VPS中のPTLシンタックス構造のみを使うことができ、というのは、VPS中のPTLシンタックス構造は、ビットストリーム全体におけるすべてのレイヤを含むベースレイヤ出力オンリーOLS向けだからであることに留意されたい。
【０１３３】
本明細書で開示した情報および信号は、種々の異なる技術および方法のいずれかを使用して表すことができる。たとえば、上記の説明全体にわたって言及され得るデータ、命令、コマンド、情報、信号、ビット、シンボル、およびチップは、電圧、電流、電磁波、磁場もしくは磁性粒子、光場もしくは光学粒子、またはそれらの任意の組合せによって表され得る。
【０１３４】
本明細書において開示された実施形態に関して記載された様々な例示的な論理ブロック、モジュール、回路、およびアルゴリズムステップは、電子ハードウェア、コンピュータソフトウェア、またはその両方の組合せとして実装される場合がある。ハードウェアおよびソフトウェアのこの互換性を明確に示すために、様々な例示的な構成要素、ブロック、モジュール、およびステップは、それらの機能性の点から一般的に上に説明されている。そのような機能性がハードウェアとして実現されるか、ソフトウェアとして実現されるかは、特定の適用例およびシステム全体に課される設計制約によって決まる。当業者は、説明された機能性を特定の適用例ごとに様々な方式で実装し得るが、そのような実装の決定は、本開示の範囲からの逸脱を引き起こすと解釈されるべきではない。
【０１３５】
本明細書で説明された実施形態は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。そのような実施形態は、汎用コンピュータ、ワイヤレス通信デバイスハンドセット、またはワイヤレス通信デバイスハンドセットおよび他のデバイスにおける適用例を含む複数の用途を有する集積回路デバイスなどの、様々なデバイスのいずれかにおいて実装され得る。モジュールまたは構成要素として記載された任意の特徴は、集積論理デバイス内で一緒に、または個別であるが相互運用可能な論理デバイスとして別々に実装され得る。ソフトウェアに実装された場合、本方法は、実行されると、上記で説明された方法のうちの1つまたは複数を実施する命令を含むプログラムコードを備えるコンピュータ可読データ記憶媒体によって、少なくとも部分的に実現され得る。コンピュータ可読データ記憶媒体は、パッケージング材料を含むことがあるコンピュータプログラム製品の一部を形成し得る。コンピュータ可読媒体は、ランダムアクセスメモリ(RAM)、たとえば同期式ダイナミックランダムアクセスメモリ(SDRAM)、読取り専用メモリ(ROM)、不揮発性ランダムアクセスメモリ(NVRAM)、電気消去可能プログラマブル読取り専用メモリ(EEPROM)、FLASHメモリ、磁気または光学データ記憶媒体などのようなメモリまたはデータ記憶媒体を含み得る。本方法は、追加または代替として、伝搬信号または電波などの、命令またはデータ構造の形態でプログラムコードを搬送または伝達し、コンピュータによってアクセスされ、読み取られ、および/または実行され得るコンピュータ可読通信媒体によって、少なくとも部分的に実現され得る。
【０１３６】
プログラムコードは、1つまたは複数のデジタル信号プロセッサ(DSP)、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブル論理アレイ(FPGA)、または他の等価の集積論理回路もしくはディスクリート論理回路のような、1つまたは複数のプロセッサを含み得るプロセッサによって実行され得る。そのようなプロセッサは、本開示に記載された方法およびプロセスのいずれかを実施するように構成され得る。汎用プロセッサはマイクロプロセッサとすることができるが、代替として、プロセッサは任意の従来のプロセッサ、コントローラ、マイクロコントローラ、または状態機械とすることができる。プロセッサはまた、コンピューティングデバイスの組合せ、たとえば、DSPとマイクロプロセッサとの組合せ、複数のマイクロプロセッサ、DSPコアと連携する1つもしくは複数のマイクロプロセッサ、または任意の他のそのような構成としても実装され得る。したがって、本明細書で使用する「プロセッサ」という用語は、本明細書で説明した方法の実装に適した、前述の構造、前述の構造または任意の他の構造もしくは装置の任意の組合せのうちの任意のものを指し得る。さらに、いくつかの態様では、本明細書で説明された機能は、符号化および復号のために構成された専用のソフトウェアモジュールもしくはハードウェアモジュール内で提供されてよく、または複合ビデオエンコーダ/デコーダ(コーデック)に組み込まれてよい。
【０１３７】
本開示の実施形態は、特定の実施形態について上記で説明されているが、本開示の多くの変形が可能である。たとえば、様々な構成要素の数は増大または減少されてよく、電源電圧を決定するモジュールおよびステップは、周波数、別のシステムパラメータ、またはパラメータの組合せを決定するように修正されてよい。加えて、様々な実施形態の特徴は、上に記載されたものと異なる組合せで組み合わせることができる。
【０１３８】
当業者は、本明細書に開示された実施形態に関連して記載される様々な例示的なブロックおよびモジュールが、様々な形式で実装できることを理解するであろう。いくつかのブロックおよびモジュールは、上で、それらの機能性の点から一般的に記載されてきた。どのようにしてそのような機能性が実装されるのかは、全体システムに課された設計制約に依存する。当業者は、記載された機能性を、各具体的な応用のために様々なやり方で実装できるが、そのような実装の判断は、本開示の範囲からの逸脱をもたらすと解釈されるべきでない。加えて、ブロック、モジュール、またはステップ内での機能のグループ分けは、記載を容易にするためである。特定の機能またはステップは、本開示から逸脱することなく、1つのモジュールもしくはブロックから移動され、または複数のモジュールもしくはブロックに分散されてよい。
【０１３９】
開示された実施形態の上記の説明は、当業者が本開示の主題を作成または使用することを可能にするために提供される。これらの実施形態への様々な修正は、当業者には容易に明らかとなるであろう。また、本明細書に記載された一般原理は、本開示の精神および範囲から逸脱することなく他の実施形態に適用することができる。こうして、本明細書に提示された記載および図面は、本開示の現在の好ましい実装形態を表しており、したがって本開示により幅広く企図される主題を代表することを理解されたい。本開示の範囲は、当業者には明らかとなり得る他の実施形態を完全に包含し、本開示の範囲は、したがって、添付の請求項以外には制限されないことをさらに理解されよう。
【符号の説明】
【０１４０】
10  ビデオコーディングシステム、システム、コーディングシステム
12  ソースデバイス
14  宛先デバイス
16  リンク
18  ビデオソース
20  ビデオエンコーダ
22  出力インターフェース
28  入力インターフェース
30  ビデオデコーダ
32  ディスプレイデバイス
34  記憶デバイス
35  区分モジュール
41  予測モジュール、動き予測モジュール
42  動き推定モジュール
44  動き補償モジュール
46  イントラ予測モジュール
50  加算器
52  変換モジュール
54  量子化モジュール
56  エントロピー符号化モジュール
58  逆量子化モジュール
60  逆変換モジュール
62  加算器
63  フィルタモジュール
64  参照ピクチャメモリ、参照フレームメモリ
70  エントロピー復号モジュール
71  予測モジュール
72  動き補償モジュール
74  イントラ予測モジュール
76  逆量子化モジュール
78  逆変換モジュール
80  加算器
82  復号ピクチャバッファ(DPB)
84  フィルタモジュール
90  コード化ピクチャバッファ(CPB)
【図１】
0006549619.tif 000002
【図２】
0006549619.tif 000003
【図３】
0006549619.tif 000004
【図４】
0006549619.tif 000005