【文献】
Jianle Chen, et al.,High efficiency video coding (HEVC) scalable extension Draft 4,Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11 15th Meeting: Geneva, CH, 23 Oct. - 1 Nov. 2013,URL:http://phenix.it-sudparis.eu/jct/doc_end_user/documents/15_Geneva/wg11/JCTVC-O1008-v3.zip,2013年12月 7日,JCTVC-O1008_v3,p.5,7,50,73
【文献】
Krishna Rapaka, et al.,MV-HEVC/SHVC HLS: On inter-layer RPS derivation and sub-layer inter-layer dependency,Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11 15th Meeting: Geneva, CH, 23 Oct. - 1 Nov. 2013,URL:http://phenix.it-sudparis.eu/jct/doc_end_user/documents/15_Geneva/wg11/JCTVC-O0225-v1.zip,2013年10月15日,JCTVC-O0225(JCT3V-F0080),p.1〜6
(58)【調査した分野】(Int.Cl.,DB名)
前記現在ピクチャが廃棄可能ピクチャであるかどうかを前記決定することは、前記現在ピクチャがレイヤ間予測又はインター予測のために使用されるかどうかを決定することを備える、請求項1または2に記載の方法。
前記現在ピクチャに関連付けられた前記廃棄可能フラグは、前記現在ピクチャがレイヤ間予測又はインター予測のために使用されるかどうかを示す、請求項1または2に記載の方法。
ビデオ情報の現在ピクチャが廃棄可能ピクチャであるかどうかを決定するための手段と、廃棄可能ピクチャは、レイヤ間予測のためにもインター予測のためにも使用されないピクチャであり、前記現在ピクチャが廃棄可能ピクチャであるかどうかを前記決定することは、前記現在ピクチャに関連付けられた廃棄可能フラグに少なくとも部分的に基づく、
1に等しい廃棄可能フラグを有するピクチャが参照ピクチャセット(RPS)中に含まれないという制約に従って、前記現在ピクチャが廃棄可能ピクチャであるという前記決定に基づいて、前記現在ピクチャをRPS中に含めることを控えるための手段と
を備え、
前記廃棄可能フラグは、マルチレイヤビットストリームのスライスヘッダ中に含まれ、関連ピクチャ内の全てのスライスセグメントについて同じ値を有する、装置。
ビデオ情報の現在ピクチャが廃棄可能ピクチャであるかどうかを決定するための手段と、廃棄可能ピクチャは、レイヤ間予測のためにもインター予測のためにも使用されないピクチャであり、前記現在ピクチャが廃棄可能ピクチャであるかどうかを前記決定することは、前記現在ピクチャに関連付けられた廃棄可能フラグに少なくとも部分的に基づく、
1に等しい廃棄可能フラグを有するピクチャが参照ピクチャセット(RPS)中に含まれないという制約に従って、前記現在ピクチャが廃棄可能ピクチャであるという前記決定に基づいて、前記現在ピクチャをRPS中に含めることを控えるための手段と
を備え、
前記RPSがレイヤ間RPS又は時間RPSを備え、前記廃棄可能ピクチャは、前記レイヤ間RPS又は前記時間RPSのいずれか中に含まれることを拒否され、
前記廃棄可能フラグは、マルチレイヤビットストリームのスライスヘッダ中に含まれ、関連ピクチャ内の全てのスライスセグメントについて同じ値を有する、装置。
前記現在ピクチャが廃棄可能ピクチャであるかどうかを決定するための前記手段が、前記現在ピクチャがレイヤ間予測又はインター予測のために使用されるかどうかを決定するための手段を備える、請求項7または8に記載の装置。
前記現在ピクチャに関連付けられた前記廃棄可能フラグは、前記現在ピクチャがレイヤ間予測又はインター予測のために使用されるかどうかを示す、請求項7または8に記載の装置。
【発明を実施するための形態】
【0010】
[0018]本明細書で説明する幾つかの実施形態は、高効率ビデオコード化(HEVC)など、高度ビデオコーデックのコンテキストにおけるマルチレイヤビデオコード化のためのビットストリーム終端(EoB)ネットワークアクセスレイヤ(NAL)単位とRPSとに関する。より詳細には、本開示は、HEVCのマルチビュー拡張とスケーラブル拡張、即ち、MV−HEVCとSHVCとにおける、EoB NAL単位とRPSとの符号化又は復号における改善された性能のためのシステム及び方法に関する。
【0011】
[0019]以下の説明では、幾つかの実施形態に関係するH.264/高度ビデオコード化(AVC)技法について説明し、HEVC規格および関係する技法についても説明する。特に、幾つかのビデオコード化方式は、コード化ビデオシーケンス(CVS)のピクチャに関連付けられた参照ピクチャセット(RPS)を維持する。所与のピクチャのためのRPSは、関連ピクチャ又は復号順序において関連ピクチャに後続する任意のピクチャのインター予測のために使用され得る、復号順序において関連ピクチャに先立つすべての参照ピクチャを含む参照ピクチャのセットを含んでいる。ピクチャはまた、ピクチャが他のピクチャによるレイヤ間予測のための参照のためにもインター予測のための参照のためにも使用されないとき、廃棄可能として示され得る。従来のコード化方式は、廃棄可能ピクチャがRPS中に含まれることを拒否しない。従って、廃棄可能ピクチャがビットストリームからドロップされる(又は不正確に復号される)場合、デコーダは損失を不正確に推論することがある。
【0012】
[0020]本開示は、廃棄可能ピクチャがビットストリームからドロップされる(又は不正確に復号される)とき、デコーダが損失を不正確に推論することを防ぐことができるマルチレイヤコード化方式のためのセマンティクスに関する。幾つかの実装形態では、廃棄可能ピクチャは、レイヤ間RPS又は時間RPSのいずれか中に含まれることを拒否される。従って、デコーダは、廃棄可能ピクチャのドロッピング(又は不正確な復号)による損失を不正確に推論しないことになる。
【0013】
[0021]幾つかの実施形態について、HEVC及び/又はH.264規格のコンテキストにおいて本明細書で説明するが、本明細書で開示するシステム及び方法が任意の好適なビデオコード化規格に適用可能であり得ることを、当業者は諒解されよう。例えば、本明細書で開示する実施形態は、以下の規格、即ち、国際電気通信連合(ITU)電気通信標準化部門(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、及びそれのスケーラブル拡張とマルチビュー拡張とを含む、(ISO/IEC MPEG−4 AVCとしても知られる)ITU−T H.264のうちの1つ又は複数に適用可能であり得る。
【0014】
[0022]HEVCは、概して、多くの点で、前のビデオコード化規格のフレームワークに従う。HEVCにおける予測の単位は、幾つかの前のビデオコード化規格における予測の単位(例えば、マクロブロック)とは異なる。事実上、マクロブロックの概念は、幾つかの前のビデオコード化規格において理解されているように、HEVC中に存在しない。マクロブロックは、考えられる利益の中でも、高いフレキシビリティを与え得る、4分木方式に基づく階層構造と置き換えられる。例えば、HEVC方式内で、3つのタイプのブロック、コード化単位(CU:Coding Unit)、予測単位(PU:Prediction Unit)、及び変換単位(TU:Transform Unit)が定義される。CUは領域分割の基本単位を指すことがある。CUはマクロブロックの概念に類似すると見なされ得るが、HEVCは、CUの最大サイズを制限せず、コンテンツ適応性を改善するために4つの等しいサイズのCUへの再帰的分割を可能にし得る。PUはインター/イントラ予測の基本単位と見なされ得、単一のPUは、不規則な画像パターンを効果的にコード化するために、複数の任意の形状区分を含んでいることがある。TUは変換の基本単位と見なされ得る。TUは、PUとは無関係に定義され得るが、TUのサイズは、TUが属するCUのサイズに制限され得る。3つの異なる概念へのブロック構造のこの分離は、各単位が単位のそれぞれの役割に従って最適化されることを可能にし得、それによりコード化効率が改善され得る。
【0015】
[0023]単に説明の目的で、本明細書で開示する幾つかの実施形態について、ビデオデータのただ2つのレイヤ(例えば、ベースレイヤなどの下位レイヤ、及び拡張レイヤなどの上位レイヤ)を含む例を用いて説明する。ビデオデータの「レイヤ」は、概して、ビュー、フレームレート、解像度などの少なくとも1つの共通の特性を有するピクチャのシーケンスを指すことがある。例えば、レイヤは、マルチビュービデオデータの特定のビュー(例えば、構文解析ペクティブ)に関連付けられたビデオデータを含み得る。別の例として、レイヤは、スケーラブルビデオデータの特定のレイヤに関連付けられたビデオデータを含み得る。従って、本開示は、ビデオデータのレイヤ及びビューを互換的に指すことがある。即ち、ビデオデータのビューはビデオデータのレイヤと呼ばれることがあり、ビデオデータのレイヤはビデオデータのビューと呼ばれることがある。更に、(マルチレイヤビデオコーダ又はマルチレイヤエンコーダデコーダとも呼ばれる)マルチレイヤコーデックは、マルチビューコーデック又はスケーラブルコーデック(例えば、MV−HEVC、3D−HEVC、SHVC、又は別のマルチレイヤコード化技法を使用するビデオデータを符号化及び/又は復号するように構成されたコーデック)を共同で指すことがある。ビデオ符号化及びビデオ復号は両方とも、概して、ビデオコード化と呼ばれることがある。そのような例は、複数のベースレイヤ及び/又は拡張レイヤを含む構成に適用可能であり得ることを理解されたい。更に、説明を簡単にするために、以下の開示は、幾つかの実施形態に関して「フレーム」又は「ブロック」という用語を含む。但し、これらの用語は限定的なものではない。例えば、以下で説明する技法は、ブロック(例えば、CU、PU、TU、マクロブロックなど)、スライス、フレームなど、任意の好適なビデオ単位とともに使用され得る。
ビデオコード化規格
[0024]ビデオ画像、TV画像、静止画像、若しくはビデオレコーダ又はコンピュータによって生成された画像など、デジタル画像は、水平ライン及び垂直ラインで構成された画素又はサンプルからなり得る。単一の画像中の画素の数は一般に数万個である。各画素は、一般に、ルミナンス情報とクロミナンス情報とを含んでいる。圧縮がなければ、画像エンコーダから画像デコーダに搬送されるべき情報の甚だしい量は、リアルタイム画像送信を不可能にするであろう。送信されるべき情報の量を低減するために、JPEG、MPEG及びH.263規格など、幾つかの異なる圧縮方法が開発された。
【0016】
[0025]ビデオコード化規格は、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と、それのスケーラブル拡張とマルチビュー拡張とを含む(ISO/IEC MPEG−4 AVCとしても知られる)ITU−T H.264とを含む。
【0017】
[0026]更に、ビデオコード化規格、即ち、HEVCが、ITU−Tビデオコード化エキスパートグループ(VCEG:Video Coding Experts Group)とISO/IEC MPEGとのジョイントコラボレーションチームオンビデオコード化(JCT−VC:Joint Collaboration Team on Video Coding)によって開発された。HEVCドラフト10についての完全引用は、文書JCTVC−L1003、Brossら、「High Efficiency Video Coding (HEVC) Text Specification Draft 10」、ITU−T SG16 WP3及びISO/IEC JTC1/SC29/WG11のジョイントコラボレーティブチームオンビデオコード化(JCT−VC:Joint Collaborative Team on Video Coding)、第12回会合:ジュネーブ、スイス、2013年1月14日〜2013年1月23日である。HEVCのマルチビュー拡張即ちMV−HEVC、及びSHVCと称されるHEVCのスケーラブル拡張も、それぞれJCT−3V(ITU−T/ISO/IECジョイントコラボレーティブチームオン3Dビデオコード化拡張開発)及びJCT−VCによって開発されている。
ビデオコード化システム
[0027]添付の図面を参照しながら新規のシステム、装置、及び方法の様々な態様について以下でより十分に説明する。但し、本開示は、多くの異なる形態で実施され得、本開示全体にわたって提示する任意の特定の構造又は機能に限定されるものと解釈されるべきではない。むしろ、これらの態様は、本開示が周到で完全になり、本開示の範囲を当業者に十分に伝えるために与えるものである。本明細書の教示に基づいて、本開示の範囲は、本開示の他の態様とは無関係に実装されるにせよ、本開示の他の態様と組み合わせて実装されるにせよ、本明細書で開示する新規のシステム、装置、及び方法のいかなる態様をもカバーするものであることを、当業者なら諒解されたい。例えば、本明細書に記載される態様をいくつ使用しても、装置は実装され得、又は方法は実施され得る。更に、本開示の範囲は、本明細書に記載する本開示の様々な態様に加えて又はそれらの態様以外に、他の構造、機能、又は構造及び機能を使用して実施されるそのような装置又は方法をカバーするものとする。本明細書で開示するどの態様も請求項の1つ又は複数の要素によって実施され得ることを理解されたい。
【0018】
[0028]本明細書では特定の態様について説明するが、これらの態様の多くの変形及び置換は本開示の範囲内に入る。好適な態様の幾つかの利益及び利点について説明するが、本開示の範囲は特定の利益、使用、又は目的に限定されるものではない。むしろ、本開示の態様は、様々なワイヤレス技術、システム構成、ネットワーク、及び伝送プロトコルに広く適用可能であるものとし、それらの幾つかを例として、図及び好適な態様についての以下の説明において示す。発明を実施するための形態及び図面は、本開示を限定するものではなく説明するものにすぎず、本開示の範囲は添付の特許請求の範囲及びそれの均等物によって定義される。
【0019】
[0029]添付の図面は例を示している。添付の図面中の参照番号によって示される要素は、以下の説明における同様の参照番号によって示される要素に対応する。本開示では、序数語(例えば、「第1の」、「第2の」、「第3の」など)で始まる名前を有する要素は、必ずしもそれらの要素が特定の順序を有することを暗示するとは限らない。むしろ、そのような序数語は、同じ又は同様のタイプの異なる要素を指すために使用されるにすぎない。
【0020】
[0030]
図1Aは、本開示で説明する態様による技法を利用し得る例示的なビデオコード化システム10を示すブロック図である。本明細書で使用し説明する「ビデオコーダ」という用語は、総称的にビデオエンコーダとビデオデコーダの両方を指す。本開示では、「ビデオコード化」又は「コード化」という用語は、ビデオ符号化とビデオ復号とを総称的に指すことがある。ビデオエンコーダ及びビデオデコーダに加えて、本出願で説明する態様は、トランスコーダ(例えば、ビットストリームを復号し、別のビットストリームを再符号化することができる機器)及びミドルボックス(例えば、ビットストリームを変更、変換、及び/又は場合によっては操作することができる機器)など、他の関係する機器に拡張され得る。
【0021】
[0031]
図1Aに示されているように、ビデオコード化システム10は、宛先機器14によって後で復号されるべき符号化ビデオデータを生成する発信源機器12を含む。
図1Aの例では、発信源機器12及び宛先機器14は、別個の機器を構成する。但し、発信源機器12及び宛先機器14は、
図1Bの例に示されているように、同じ機器上にあるか又はそれの一部であり得ることに留意されたい。
【0022】
[0032]もう一度
図1Aを参照すると、発信源機器12及び宛先機器14は、それぞれ、デスクトップコンピュータ、ノートブック(例えば、ラップトップ)コンピュータ、タブレットコンピュータ、セットトップボックス、所謂「スマート」フォンなどの電話ハンドセット、所謂「スマート」パッド、テレビジョン、カメラ、表示装置、デジタルメディアプレーヤ、ビデオゲームコンソール、ビデオストリーミング機器などを含む、広範囲にわたる機器のいずれかを備え得る。様々な実施形態では、発信源機器12及び宛先機器14は、ワイヤレス通信のために装備され得る。
【0023】
[0033]宛先機器14は、復号されるべき符号化ビデオデータをリンク16を介して受信し得る。リンク16は、発信源機器12から宛先機器14に符号化ビデオデータを移動することが可能な任意のタイプの媒体又は機器を備え得る。
図1Aの例では、リンク16は、発信源機器12が符号化ビデオデータをリアルタイムで宛先機器14に送信することを可能にするための通信媒体を備え得る。符号化ビデオデータは、ワイヤレス通信プロトコルなどの通信規格に従って変調され、宛先機器14に送信され得る。通信媒体は、無線周波数(RF)スペクトルあるいは1つ又は複数の物理伝送線路など、任意のワイヤレス又は有線通信媒体を備え得る。通信媒体は、ローカルエリアネットワーク、ワイドエリアネットワークなどのパケットベースネットワーク、又はインターネットなどのグローバルネットワークの一部を形成し得る。通信媒体は、ルータ、スイッチ、基地局、又は発信源機器12から宛先機器14への通信を可能にするために有用であり得る任意の他の機器を含み得る。
【0024】
[0034]代替的に、符号化データは出力インターフェース22から(随意に存在する)記憶装置31に出力され得る。同様に、符号化データは、例えば、宛先機器14の入力インターフェース28によって記憶装置31からアクセスされ得る。記憶装置31は、ハードドライブ、フラッシュメモリ、揮発性又は不揮発性メモリ、若しくは符号化ビデオデータを記憶するための任意の他の好適なデジタル記憶媒体など、様々な分散された又はローカルにアクセスされるデータ記憶媒体のいずれかを含み得る。更なる一例では、記憶装置31は、発信源機器12によって生成された符号化ビデオを保持し得るファイルサーバ又は別の中間記憶装置に対応し得る。宛先機器14は、ストリーミング又はダウンロードを介して記憶装置31から記憶されたビデオデータにアクセスし得る。ファイルサーバは、符号化ビデオデータを記憶し、その符号化ビデオデータを宛先機器14に送信することができる任意のタイプのサーバであり得る。例示的なファイルサーバとしては、(例えば、ウェブサイトのための)ウェブサーバ、ファイル転送プロトコル(FTP)サーバ、ネットワーク接続記憶(NAS)装置、又はローカルディスクドライブがある。宛先機器14は、インターネット接続を含む、任意の標準のデータ接続を通して符号化ビデオデータにアクセスし得る。これは、ファイルサーバに記憶された符号化ビデオデータにアクセスするのに好適であるワイヤレスチャネル(例えば、ワイヤレスローカルエリアネットワーク(WLAN)接続)、有線接続(例えば、デジタル加入者線(DSL)、ケーブルモデムなど)、又はその両方の組合せを含み得る。記憶装置31からの符号化ビデオデータの送信は、ストリーミング送信、ダウンロード送信、又はその両方の組合せであり得る。
【0025】
[0035]本開示の技法はワイヤレス適用例又は設定に限定されない。本技法は、無線テレビジョン放送、ケーブルテレビジョン送信、衛星テレビジョン送信、例えばインターネットを介したストリーミングビデオ送信(例えば、ハイパーテキスト転送プロトコル(HTTP)上での動的適応ストリーミングなど)、データ記憶媒体に記憶するためのデジタルビデオの符号化、データ記憶媒体に記憶されたデジタルビデオの復号、又は他の適用例など、様々なマルチメディア適用例のいずれかをサポートするビデオコード化に適用され得る。幾つかの例では、ビデオコード化システム10は、ビデオストリーミング、ビデオ再生、ビデオブロードキャスティング、及び/又はビデオテレフォニーなどの適用例をサポートするために、一方向又は双方向のビデオ送信をサポートするように構成され得る。
【0026】
[0036]
図1Aの例では、発信源機器12は、ビデオ発信源18と、ビデオエンコーダ20と、出力インターフェース22とを含む。場合によっては、出力インターフェース22は、変調器/復調器(モデム)及び/又は送信機を含み得る。発信源機器12において、ビデオ発信源18は、撮像装置、例えばビデオカメラ、以前に撮られたビデオを含んでいるビデオアーカイブ、ビデオコンテンツプロバイダからビデオを受信するためのビデオフィードインターフェース、及び/又は発信源ビデオとしてコンピュータグラフィックスデータを生成するためのコンピュータグラフィックスシステムなどの発信源、若しくはそのような発信源の組合せを含み得る。一例として、ビデオ発信源18がビデオカメラである場合、発信源機器12及び宛先機器14は、
図1Bの例に示されているように、所謂「カメラフォン」又は「ビデオフォン」を形成し得る。但し、本開示で説明する技法は、概してビデオコード化に適用可能であり得、ワイヤレス及び/又は有線適用例に適用され得る。
【0027】
[0037]撮られたビデオ、以前に撮られたビデオ、又はコンピュータ生成されたビデオは、ビデオエンコーダ20によって符号化され得る。符号化ビデオデータは、発信源機器12の出力インターフェース22を介して宛先機器14に送信され得る。符号化ビデオデータは、更に(又は代替として)、復号及び/又は再生のための宛先機器14又は他の機器による後のアクセスのために記憶装置31上に記憶され得る。
図1A及び
図1Bに示されているビデオエンコーダ20は、
図2A示されているビデオエンコーダ20、
図2Bに示されているビデオエンコーダ23、又は本明細書で説明する他のビデオエンコーダを備え得る。
【0028】
[0038]
図1Aの例では、宛先機器14は、入力インターフェース28と、ビデオデコーダ30と、表示装置32とを含む。場合によっては、入力インターフェース28は、受信機及び/又はモデムを含み得る。宛先機器14の入力インターフェース28は、リンク16を介して及び/又は記憶装置31から符号化ビデオデータを受信し得る。リンク16を介して通信され、又は記憶装置31上に与えられた符号化ビデオデータは、ビデオデータを復号する際に、ビデオデコーダ30などのビデオデコーダが使用するためのビデオエンコーダ20によって生成される様々なシンタックス要素を含み得る。そのようなシンタックス要素は、通信媒体上で送信された、記憶媒体上に記憶された、又はファイルサーバ記憶された符号化ビデオデータに含まれ得る。
図1A及び
図1Bに示されているビデオデコーダ30は、
図3A示されているビデオデコーダ30、
図3Bに示されているビデオデコーダ33、又は本明細書で説明する他のビデオデコーダを備え得る。
【0029】
[0039]表示装置32は、宛先機器14と一体化されるか又はその外部にあり得る。幾つかの例では、宛先機器14は、一体型表示装置を含み、また、外部表示装置とインターフェースするように構成され得る。他の例では、宛先機器14は表示装置であり得る。概して、表示装置32は、復号ビデオデータをユーザに対して表示し、液晶表示器(LCD)、プラズマ表示器、有機発光ダイオード(OLED)表示器、又は別のタイプの表示装置など、様々な表示装置のいずれかを備え得る。
【0030】
[0040]関係する態様では、
図1Bは例示的なビデオコード化システム10’を示し、ここにおいて、発信源機器12及び宛先機器14は機器11上にあるか又はそれの一部である。機器11は、「スマート」フォンなどの電話ハンドセットであり得る。機器11は、発信源機器12及び宛先機器14と動作可能に通信している(随意に存在する)コントローラ/プロセッサ機器13を含み得る。
図1Bのビデオコード化システム10’は、ビデオエンコーダ20と出力インターフェース22との間のビデオ処理ユニット21を更に含み得る。幾つかの実装形態では、
図1Bに示されているように、ビデオ処理ユニット21は別個のユニットであるが、他の実装形態では、ビデオ処理ユニット21は、ビデオエンコーダ20及び/又はプロセッサ/コントローラ機器13の一部分として実装され得る。ビデオコード化システム10’はまた、ビデオシーケンス中の当該のオブジェクトを追跡することができる(随意に存在する)トラッカー29を含み得る。追跡されるべきオブジェクト又は興味は、本開示の1つ又は複数の態様に関して説明する技法によってセグメント化され得る。関係する態様では、追跡することは、単独で又はトラッカー29とともに、表示装置32によって実行され得る。
図1Bのビデオコード化システム10’及びそれの構成要素は、場合によっては
図1Aのビデオコード化システム10及びそれの構成要素と同様である。
【0031】
[0041]ビデオエンコーダ20及びビデオデコーダ30は、HEVCなどのビデオ圧縮規格に従って動作し得、HEVCテストモデル(HM)に準拠し得る。代替的に、ビデオエンコーダ20及びビデオデコーダ30は、代替的にMPEG−4,Part10,AVCと呼ばれるITU−T H.264規格など、他のプロプライエタリ規格又は業界規格、又はそのような規格の拡張に従って動作し得る。但し、本開示の技法は、いかなる特定のコード化規格にも限定されない。ビデオ圧縮規格の他の例としてはMPEG−2及びITU−T H.263がある。
【0032】
[0042]
図1A及び
図1Bの例には示されていないが、ビデオエンコーダ20及びビデオデコーダ30は、それぞれオーディオエンコーダ及びデコーダと統合され得、共通のデータストリーム又は別個のデータストリーム中のオーディオとビデオの両方の符号化を処理するために、適切なMUX−DEMUXユニット、又は他のハードウェア及びソフトウェアを含み得る。適用可能な場合、幾つかの例では、MUX−DEMUXユニットは、ITU H.223マルチプレクサプロトコル、又はユーザデータグラムプロトコル(UDP)などの他のプロトコルに準拠し得る。
【0033】
[0043]ビデオエンコーダ20及びビデオデコーダ30はそれぞれ、1つ又は複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ディスクリート論理、ソフトウェア、ハードウェア、ファームウェアなど、様々な好適なエンコーダ回路のいずれか、又はそれらの任意の組合せとして実装され得る。本技法が部分的にソフトウェアで実装されるとき、機器は、ソフトウェアのための命令を好適な非一時的コンピュータ可読媒体に記憶し、本開示の技法を実行するために1つ又は複数のプロセッサを使用してハードウェアでその命令を実行し得る。ビデオエンコーダ20及びビデオデコーダ30の各々は1つ又は複数のエンコーダ又はデコーダ中に含まれ得、そのいずれも、それぞれの機器において複合エンコーダ/デコーダの一部として統合され得る。
ビデオコード化プロセス
[0044]上記で手短に述べたように、ビデオエンコーダ20はビデオデータを符号化する。ビデオデータは1つ又は複数のピクチャを備え得る。ピクチャの各々は、ビデオの一部を形成する静止画像である。幾つかの事例では、ピクチャはビデオ「フレーム」と呼ばれることがある。ビデオエンコーダ20がビデオデータを符号化するとき、ビデオエンコーダ20はビットストリームを生成し得る。ビットストリームは、ビデオデータのコード化表現を形成するビットのシーケンスを含み得る。ビットストリームは、コード化ピクチャと関連データとを含み得る。コード化ピクチャとは、ピクチャのコード化表現である。
【0034】
[0045]ビットストリームを生成するために、ビデオエンコーダ20は、ビデオデータ中の各ピクチャに対して符号化演算を実行し得る。ビデオエンコーダ20がピクチャに対して符号化演算を実行するとき、ビデオエンコーダ20は、一連のコード化ピクチャと関連データとを生成し得る。関連データは、ビデオパラメータセット(VPS)と、シーケンスパラメータセット(SPS)と、ピクチャパラメータセット(PPS)と、適応パラメータセット(APS)と、他のシンタックス構造とを含み得る。SPSは、ピクチャの0個以上のシーケンスに適用可能なパラメータを含んでいることがある。PPSは、0個以上のピクチャに適用可能なパラメータを含んでいることがある。APSは、0個以上のピクチャに適用可能なパラメータを含んでいることがある。APS中のパラメータは、PPS中のパラメータよりも変化する可能性が高いパラメータであり得る。
【0035】
[0046]コード化ピクチャを生成するために、ビデオエンコーダ20は、ピクチャを等しいサイズのビデオブロックに区分し得る。ビデオブロックはサンプルの2次元アレイであり得る。ビデオブロックの各々はツリーブロックに関連付けられる。幾つかの事例では、ツリーブロックは、最大コード化単位(LCU:largest coding unit)と呼ばれることがある。HEVCのツリーブロックは、H.264/AVCなど、以前の規格のマクロブロックに広い意味で類似し得る。しかしながら、ツリーブロックは、必ずしも特定のサイズに限定されるとは限らず、1つ又は複数のCUを含み得る。ビデオエンコーダ20は、4分木区分(quadtree partitioning)を使用して、ツリーブロックのビデオブロックを、CUに関連付けられたビデオブロックに区分し得、従って「ツリーブロック」という名前がある。
【0036】
[0047]幾つかの例では、ビデオエンコーダ20はピクチャを複数のスライスに区分し得る。スライスの各々は整数個のCUを含み得る。幾つかの事例では、スライスは整数個のツリーブロックを備える。他の事例では、スライスの境界はツリーブロック内にあり得る。
【0037】
[0048]ピクチャに対して符号化演算を実行することの一部として、ビデオエンコーダ20は、ピクチャの各スライスに対して符号化演算を実行し得る。ビデオエンコーダ20がスライスに対して符号化演算を実行するとき、ビデオエンコーダ20は、スライスに関連付けられた符号化データを生成し得る。スライスに関連付けられた符号化データは「コード化スライス」と呼ばれることがある。
【0038】
[0049]コード化スライスを生成するために、ビデオエンコーダ20は、スライス中の各ツリーブロックに対して符号化演算を実行し得る。ビデオエンコーダ20がツリーブロックに対して符号化演算を実行するとき、ビデオエンコーダ20はコード化ツリーブロックを生成し得る。コード化ツリーブロックは、ツリーブロックの符号化バージョンを表すデータを備え得る。
【0039】
[0050]ビデオエンコーダ20がコード化スライスを生成するとき、ビデオエンコーダ20は、ラスタ走査順序に従って、スライス中のツリーブロックに対して符号化演算を実行し得る(例えば、そのツリーブロックを符号化し得る)。例えば、ビデオエンコーダ20は、スライス中のツリーブロックの一番上の行にわたって左から右に進み、次いでツリーブロックの次の下の行にわたって左から右に進み、以下同様に進む順序で、ビデオエンコーダ20がスライス中のツリーブロックの各々を符号化するまで、スライスのツリーブロックを符号化し得る。
【0040】
[0051]ラスタ走査順序に従ってツリーブロックを符号化した結果として、所与のツリーブロックの上及び左のツリーブロックは符号化されていることがあるが、所与のツリーブロックの下及び右のツリーブロックはまだ符号化されていない。従って、ビデオエンコーダ20は、所与のツリーブロックを符号化するとき、所与のツリーブロックの上及び左のツリーブロックを符号化することによって生成された情報にアクセスすることが可能であり得る。しかしながら、ビデオエンコーダ20は、所与のツリーブロックを符号化するとき、所与のツリーブロックの下及び右のツリーブロックを符号化することによって生成された情報にアクセスすることができないことがある。
【0041】
[0052]コード化ツリーブロックを生成するために、ビデオエンコーダ20は、ツリーブロックのビデオブロックに対して4分木区分を再帰的に実行して、ビデオブロックを徐々により小さいビデオブロックに分割し得る。より小さいビデオブロックの各々は、異なるCUに関連付けられ得る。例えば、ビデオエンコーダ20は、ツリーブロックのビデオブロックを4つの等しいサイズのサブブロックに区分し、サブブロックのうちの1つ又は複数を、4つの等しいサイズのサブサブブロックに区分し得、以下同様である。区分されたCUは、それのビデオブロックが、他のCUに関連付けられたビデオブロックに区分された、CUであり得る。区分されていないCUは、それのビデオブロックが、他のCUに関連付けられたビデオブロックに区分されていない、CUであり得る。
【0042】
[0053]ビットストリーム中の1つ又は複数のシンタックス要素は、ビデオエンコーダ20がツリーブロックのビデオブロックを区分化し得る最大の回数を示し得る。CUのビデオブロックは形状が正方形であり得る。CUのビデオブロックのサイズ(例えば、CUのサイズ)は、8×8画素から、最大64×64以上の画素をもつツリーブロックのビデオブロックのサイズ(例えば、ツリーブロックのサイズ)までに及び得る。
【0043】
[0054]ビデオエンコーダ20は、z走査順序に従って、ツリーブロックの各CUに対して符号化演算を実行し得る(例えば、各CUを符号化し得る)。言い換えれば、ビデオエンコーダ20は、左上のCUと、右上のCUと、左下のCUと、次いで右下のCUとを、その順序で符号化し得る。ビデオエンコーダ20が、区分されたCUに対して符号化演算を実行するとき、ビデオエンコーダ20は、z走査順序に従って、区分されたCUのビデオブロックのサブブロックに関連付けられたCUを符号化し得る。言い換えれば、ビデオエンコーダ20は、左上のサブブロックに関連付けられたCUと、右上のサブブロックに関連付けられたCUと、左下のサブブロックに関連付けられたCUと、次いで右下のサブブロックに関連付けられたCUとを、その順序で符号化し得る。
【0044】
[0055]z走査順序に従ってツリーブロックのCUを符号化した結果として、所与のCUの上、左上、右上、左、及び左下のCUは符号化されていることがある。所与のCUの下及び右のCUはまだ符号化されていない。従って、ビデオエンコーダ20は、所与のCUを符号化するとき、所与のCUに隣接する幾つかのCUを符号化することによって生成された情報にアクセスすることが可能であり得る。しかしながら、ビデオエンコーダ20は、所与のCUを符号化するとき、所与のCUに隣接する他のCUを符号化することによって生成された情報にアクセスすることができないことがある。
【0045】
[0056]ビデオエンコーダ20が、区分されていないCUを符号化するとき、ビデオエンコーダ20は、CUのために1つ又は複数のPUを生成し得る。CUのPUの各々は、CUのビデオブロック内の異なるビデオブロックに関連付けられ得る。ビデオエンコーダ20は、CUの各PUについて予測ビデオブロックを生成し得る。PUの予測ビデオブロックはサンプルのブロックであり得る。ビデオエンコーダ20は、イントラ予測又はインター予測を使用して、PUのための予測ビデオブロックを生成し得る。
【0046】
[0057]ビデオエンコーダ20がイントラ予測を使用してPUの予測ビデオブロックを生成するとき、ビデオエンコーダ20は、PUに関連付けられたピクチャの復号サンプルに基づいて、PUの予測ビデオブロックを生成し得る。ビデオエンコーダ20がイントラ予測を使用してCUのPUの予測ビデオブロックを生成する場合、CUはイントラ予測されたCUである。ビデオエンコーダ20がインター予測を使用してPUの予測ビデオブロックを生成するとき、ビデオエンコーダ20は、PUに関連付けられたピクチャ以外の1つ又は複数のピクチャの復号サンプルに基づいて、PUの予測ビデオブロックを生成し得る。ビデオエンコーダ20がインター予測を使用してCUのPUの予測ビデオブロックを生成する場合、CUはインター予測されたCUである。
【0047】
[0058]更に、ビデオエンコーダ20がインター予測を使用してPUのための予測ビデオブロックを生成するとき、ビデオエンコーダ20はPUの動き情報を生成し得る。PUの動き情報は、PUの1つ又は複数の参照ブロックを示し得る。PUの各参照ブロックは参照ピクチャ内のビデオブロックであり得る。参照ピクチャはPUに関連付けられたピクチャ以外のピクチャであり得る。幾つかの事例では、PUの参照ブロックはPUの「参照サンプル」と呼ばれることもある。ビデオエンコーダ20は、PUの参照ブロックに基づいて、PUのための予測ビデオブロックを生成し得る。
【0048】
[0059]ビデオエンコーダ20がCUの1つ又は複数のPUのための予測ビデオブロックを生成した後、ビデオエンコーダ20は、CUのPUのための予測ビデオブロックに基づいて、CUの残差データを生成し得る。CUの残差データは、CUのPUのための予測ビデオブロック中のサンプルと、CUの元のビデオブロック中のサンプルとの間の差を示し得る。
【0049】
[0060]更に、区分化されていないCUに対して符号化演算を実行することの一部として、ビデオエンコーダ20は、CUの残差データに対して再帰的な4分木区分化を実行して、CUの残差データを、CUのTUに関連付けられた残差データの1つ又は複数のブロック(例えば、残差ビデオブロック)に区分化し得る。CUの各TUは異なる残差ビデオブロックに関連付けられ得る。
【0050】
[0061]ビデオエンコーダ20は、TUに関連付けられた変換係数ブロック(例えば、変換係数のブロック)を生成するために、TUに関連付けられた残差ビデオブロックに1つ又は複数の変換を適用し得る。概念的に、変換係数ブロックは変換係数の2次元(2D)行列であり得る。
【0051】
[0062]変換係数ブロックを生成した後、ビデオエンコーダ20は、変換係数ブロックに対して量子化プロセスを実行し得る。量子化は、一般に、変換係数を表すために使用されるデータの量をできるだけ低減するために変換係数が量子化され、更なる圧縮を行うプロセスを指す。量子化プロセスは、変換係数の一部又は全部に関連付けられたビット深度を低減し得る。例えば、量子化中にnビットの変換係数がmビットの変換係数に切り捨てられることがあり、ここで、nはmよりも大きい。
【0052】
[0063]ビデオエンコーダ20は、各CUを量子化パラメータ(QP:quantization parameter)値に関連付け得る。CUに関連付けられたQP値は、ビデオエンコーダ20が、CUに関連付けられた変換係数ブロックをどのように量子化するかを決定し得る。ビデオエンコーダ20は、CUに関連付けられたQP値を調整することによって、CUに関連付けられた変換係数ブロックに適用される量子化の程度を調整し得る。
【0053】
[0064]ビデオエンコーダ20が変換係数ブロックを量子化した後、ビデオエンコーダ20は、量子化された変換係数ブロック中で変換係数を表すシンタックス要素のセットを生成し得る。ビデオエンコーダ20は、これらのシンタックス要素のうちの幾つかに、コンテキスト適応型バイナリ算術コード化(CABAC:Context Adaptive Binary Arithmetic Coding)演算などのエントロピー符号化演算を適用し得る。コンテキスト適応型可変長コード化(CAVLC:context-adaptive variable-length coding)、確率間隔区分エントロピー(PIPE:probability interval partitioning entropy)コード化、又は他のバイナリ算術コード化など、他のエントロピーコード化技法も使用され得る。
【0054】
[0065]ビデオエンコーダ20によって生成されるビットストリームは、一連のNAL単位を含み得る。NAL単位の各々は、NAL単位中のデータのタイプの指示と、データを含んでいるバイトとを含んでいるシンタックス構造であり得る。例えば、NAL単位は、ビデオパラメータセット、シーケンスパラメータセット、ピクチャパラメータセット、コード化スライス、補足拡張情報(SEI:supplemental enhancement information)、アクセス単位区切り文字、フィラーデータ、又は別のタイプのデータを表すデータを含み得る。NAL単位中のデータは様々なシンタックス構造を含み得る。
【0055】
[0066]ビデオデコーダ30は、ビデオエンコーダ20によって生成されたビットストリームを受信し得る。ビットストリームは、ビデオエンコーダ20によって符号化されたビデオデータのコード化表現を含み得る。ビデオデコーダ30がビットストリームを受信するとき、ビデオデコーダ30は、ビットストリームに対して構文解析演算(parsing operation)を実行し得る。ビデオデコーダ30が構文解析演算を実行するとき、ビデオデコーダ30は、ビットストリームからシンタックス要素を抽出し得る。ビデオデコーダ30は、ビットストリームから抽出されたシンタックス要素に基づいて、ビデオデータのピクチャを再構成し得る。シンタックス要素に基づいてビデオデータを再構成するためのプロセスは、一般に、シンタックス要素を生成するためにビデオエンコーダ20によって実行されるプロセスとは逆であり得る。
【0056】
[0067]ビデオデコーダ30がCUに関連付けられたシンタックス要素を抽出した後、ビデオデコーダ30は、シンタックス要素に基づいて、CUのPUのための予測ビデオブロックを生成し得る。更に、ビデオデコーダ30は、CUのTUに関連付けられた変換係数ブロックを逆量子化し得る。ビデオデコーダ30は、変換係数ブロックに対して逆変換を実行して、CUのTUに関連付けられた残差ビデオブロックを再構成し得る。予測ビデオブロックを生成し、残差ビデオブロックを再構成した後、ビデオデコーダ30は、予測ビデオブロックと残差ビデオブロックとに基づいて、CUのビデオブロックを再構成し得る。このようにして、ビデオデコーダ30は、ビットストリーム中のシンタックス要素に基づいて、CUのビデオブロックを再構成し得る。
【0057】
ビデオエンコーダ
[0068]
図2Aは、本開示で説明する態様による技法を実装し得るビデオエンコーダ20の一例を示すブロック図である。ビデオデコーダ20は、HEVCの場合など、ビデオフレームの単一のレイヤを処理するように構成され得る。更に、ビデオエンコーダ20は、本開示の技法のいずれか又は全てを実行するように構成され得る。幾つかの例では、本開示で説明する技法は、ビデオエンコーダ20の様々な構成要素間で共有され得る。幾つかの例では、追加又は代替として、プロセッサ(図示せず)が、本開示で説明する技法のいずれか又は全てを実行するように構成され得る。
【0058】
[0069]説明の目的で、本開示では、HEVCコード化のコンテキストにおいてビデオエンコーダ20について説明する。しかしながら、本開示の技法は、他のコード化規格又は方法にも適用可能であり得る。
図2Aに示された例はシングルレイヤコーデックのためのものである。しかしながら、
図2Bに関して更に説明するように、ビデオエンコーダ20の一部又は全部はマルチレイヤコーデックの処理のために複製され得る。
【0059】
[0070]ビデオエンコーダ20は、ビデオスライス内のビデオブロックのイントラコード化及びインターコード化を実行し得る。イントラコード化は、所与のビデオフレーム又はピクチャ内のビデオの空間冗長性を低減又は除去するために空間予測に依拠する。インターコード化は、ビデオシーケンスの隣接フレーム又はピクチャ内のビデオ中の時間冗長性を低減又は削除するために、時間予測に依拠する。イントラモード(Iモード)は、幾つかの空間ベースコード化モードのいずれかを指すことがある。単方向予測(Pモード)又は双方向予測(Bモード)などのインターモードは、幾つかの時間ベースのコード化モードのいずれかを指すことがある。
【0060】
[0071]
図2Aの例では、ビデオエンコーダ20は複数の機能構成要素を含む。ビデオエンコーダ20の機能構成要素は、予測処理ユニット100と、残差生成ユニット102と、変換処理ユニット104と、量子化ユニット106と、逆量子化ユニット108と、逆変換ユニット110と、再構成ユニット112と、フィルタユニット113と、復号ピクチャバッファ114と、エントロピー符号化ユニット116とを含む。予測処理ユニット100は、インター予測ユニット121と、動き推定ユニット122と、動き補償ユニット124と、イントラ予測ユニット126と、レイヤ間予測ユニット128とを含む。他の例では、ビデオエンコーダ20は、より多数の、より少数の、又は異なる機能構成要素を含み得る。更に、動き推定ユニット122と動き補償ユニット124とは、高度に統合され得るが、
図2Aの例では、説明の目的で別々に表されている。
【0061】
[0072]ビデオエンコーダ20はビデオデータを受信し得る。ビデオエンコーダ20は、様々な発信源からビデオデータを受信し得る。例えば、ビデオエンコーダ20は、(例えば、
図1A又は
図1Bに示された)ビデオ発信源18、又は別の発信源からビデオデータを受信し得る。ビデオデータは一連のピクチャを表し得る。ビデオデータを符号化するために、ビデオエンコーダ20は、ピクチャの各々に対して符号化演算を実行し得る。ピクチャに対して符号化演算を実行することの一部として、ビデオエンコーダ20は、ピクチャの各スライスに対して符号化演算を実行し得る。スライスに対して符号化演算を実行することの一部として、ビデオエンコーダ20は、スライス中のツリーブロックに対して符号化演算を実行し得る。
【0062】
[0073]ツリーブロックに対して符号化演算を実行することの一部として、予測処理ユニット100は、ツリーブロックのビデオブロックに対して4分木区分化を実行して、ビデオブロックを徐々により小さいビデオブロックに分割し得る。より小さいビデオブロックの各々は、異なるCUに関連付けられ得る。例えば、予測処理ユニット100は、ツリーブロックのビデオブロックを4つの等しいサイズのサブブロックに区分化し、サブブロックの1つ又は複数を、4つの等しいサイズのサブサブブロックに区分化し得、以下同様である。
【0063】
[0074]CUに関連付けられたビデオブロックのサイズは、8×8サンプルから、最大64×64以上のサンプルをもつツリーブロックのサイズまでに及び得る。本開示では、「N×N(NxN)」及び「N×N(N by N)」は、垂直寸法及び水平寸法に関するビデオブロックのサンプル寸法、例えば、16×16(16x16)サンプル又は16×16(16 by 16)サンプルを指すために互換的に使用され得る。概して、16×16ビデオブロックは、垂直方向に16個のサンプルを有し(y=16)、水平方向に16個のサンプルを有する(x=16)。同様に、N×Nブロックは、概して、垂直方向にN個のサンプルを有し、水平方向にN個のサンプルを有し、ここで、Nは非負整数値を表す。
【0064】
[0075]更に、ツリーブロックに対して符号化演算を実行することの一部として、予測処理ユニット100は、ツリーブロック用の階層的な4分木データ構造を生成し得る。例えば、ツリーブロックは、4分木データ構造のルートノードに対応し得る。予測処理ユニット100が、ツリーブロックのビデオブロックを4つのサブブロックに区分化する場合、ルートノードは、4分木データ構造中に4つの子ノードを有する。子ノードの各々は、サブブロックのうちの1つに関連付けられたCUに対応する。予測処理ユニット100が、サブブロックのうちの1つを4つのサブサブブロックに区分する場合、サブブロックに関連付けられたCUに対応するノードは、サブサブブロックのうちの1つに関連付けられたCUに各々が対応する、4つの子ノードを有し得る。
【0065】
[0076]4分木データ構造の各ノードは、対応するツリーブロック又はCUのシンタックスデータ(例えば、シンタックス要素)を含み得る。例えば、4分木の中のノードは、そのノードに対応するCUのビデオブロックが4つのサブブロックに区分化される(例えば、分割される)かどうかを示す分割フラグを含み得る。CUのためのシンタックス要素は、再帰的に定義され得、CUのビデオブロックがサブブロックに分割されるかどうかに依存し得る。それのビデオブロックが区分化されていないCUは、4分木データ構造におけるリーフノードに対応し得る。コード化ツリーブロックは、対応するツリーブロック用の4分木データ構造に基づくデータを含み得る。
【0066】
[0077]ビデオエンコーダ20は、ツリーブロックの区分化されていない各CUに対して符号化演算を実行し得る。ビデオエンコーダ20が、区分化されていないCUに対して符号化演算を実行するとき、ビデオエンコーダ20は、区分化されていないCUの符号化表現を表すデータを生成する。
【0067】
[0078]CUに対して符号化演算を実行することの一部として、予測処理ユニット100は、CUの1つ又は複数のPUの中で、CUのビデオブロックを区分し得る。ビデオエンコーダ20及びビデオデコーダ30は、様々なPUサイズをサポートし得る。特定のCUのサイズが2N×2Nであると仮定すると、ビデオエンコーダ20及びビデオデコーダ30は、2N×2N又はN×NのPUサイズと、2N×2N、2N×N、N×2N、N×N、2N×nU、nL×2N、nR×2N、又は同様の対称PUサイズでのインター予測とをサポートし得る。ビデオエンコーダ20及びビデオデコーダ30は、2N×nU、2N×nD、nL×2N、及びnR×2NのPUサイズに対する非対称区分をもサポートし得る。幾つかの例では、予測処理ユニット100は、CUのビデオブロックの辺に直角に接触しない境界に沿って、CUのPUの間でCUのビデオブロックを区分化するように、幾何学的な区分を実行し得る。
【0068】
[0079]インター予測ユニット121はCUの各PUに対してインター予測を実行し得る。インター予測は時間圧縮を実現し得る。PUに対してインター予測を実行するために、動き推定ユニット122はPUの動き情報を生成し得る。動き補償ユニット124は、動き情報と、CUに関連付けられたピクチャ以外のピクチャ(例えば、参照ピクチャ)の復号サンプルと基づくPUのための予測ビデオブロックを生成し得る。本開示では、動き補償ユニット124によって生成された予測ビデオブロックは、インター予測ビデオブロックと呼ばれることがある。
【0069】
[0080]スライスは、Iスライス、Pスライス、又はBスライスであり得る。動き推定ユニット122及び動き補償ユニット124は、PUがIスライス中にあるか、Pスライス中にあるか、Bスライス中にあるかに応じて、CUのPUに対して異なる演算を実行し得る。Iスライス中では、全てのPUがイントラ予測される。従って、PUがIスライス中にある場合、動き推定ユニット122及び動き補償ユニット124は、PUに対してインター予測を実行しない。
【0070】
[0081]PUがPスライス中にある場合、PUを含んでいるピクチャは、「リスト0」と呼ばれる参照ピクチャのリストに関連付けられる。リスト0中の参照ピクチャの各々は、他のピクチャのインター予測に使用され得るサンプルを含んでいる。動き推定ユニット122が、Pスライス中のPUに関して動き推定演算を実行するとき、動き推定ユニット122は、PUのための参照ブロックについて、リスト0中の参照ピクチャを探索し得る。PUの参照ブロックは、PUのビデオブロック中のサンプルに最も密接に対応するサンプルのセット、例えば、サンプルのブロックであり得る。動き推定ユニット122は、様々なメトリックを使用して、参照ピクチャ中のサンプルのセットがどの程度密接にPUのビデオブロック中のサンプルに対応するかを決定し得る。例えば、動き推定ユニット122は、絶対差分和(SAD:sum of absolute difference)、2乗差分和(SSD:sum of square difference)、又は他の差分メトリックによって、参照ピクチャ中のサンプルのセットがどの程度密接にPUのビデオブロック中のサンプルに対応するかを決定し得る。
【0071】
[0082]Pスライス中のPUの参照ブロックを識別した後、動き推定ユニット122は、参照ブロックを含んでいる、リスト0中の参照ピクチャを示す参照インデックスと、PUと参照ブロックとの間の空間変位を示す動きベクトルとを生成し得る。様々な例において、動き推定ユニット122は動きベクトルを異なる精度に生成し得る。例えば、動き推定ユニット122は、1/4サンプル精度、1/8サンプル精度、又は他の分数のサンプル精度で動きベクトルを生成し得る。分数のサンプル精度の場合、参照ブロック値は、参照ピクチャ中の整数位置のサンプル値から補間され得る。動き推定ユニット122は、PUの動き情報として、参照インデックスと動きベクトルとを出力し得る。動き補償ユニット124は、PUの動き情報によって識別された参照ブロックに基づいて、PUの予測ビデオブロックを生成し得る。
【0072】
[0083]PUがBスライス中にある場合、PUを含んでいるピクチャは、「リスト0」及び「リスト1」と呼ばれる参照ピクチャの2つのリストに関連付けられ得る。幾つかの例では、Bスライスを含んでいるピクチャは、リスト0とリスト1の組合せである、リストの組合せに関連付けられ得る。
【0073】
[0084]更に、PUがBスライス中にある場合、動き推定ユニット122は、PUについての単方向予測又は双方向予測を実行し得る。動き推定ユニット122が、PUについての単方向予測を実行するとき、動き推定ユニット122は、PUのための参照ブロックについて、リスト0又はリスト1の参照ピクチャを探索し得る。動き推定ユニット122は、次いで、参照ブロックを含んでいる、リスト0又はリスト1中の参照ピクチャを示す参照インデックスと、PUと参照ブロックとの間の空間変位を示す動きベクトルとを生成し得る。動き推定ユニット122は、PUの動き情報として、参照インデックスと、予測方向指標(prediction direction indicator)と、動きベクトルとを出力し得る。予測方向指標は、参照インデックスが、リスト0中の参照ピクチャを示すか、リスト1中の参照ピクチャを示すかを示し得る。動き補償ユニット124は、PUの動き情報によって示された参照ブロックに基づいて、PUの予測ビデオブロックを生成し得る。
【0074】
[0085]動き推定ユニット122が、PUについての双方向予測を実行するとき、動き推定ユニット122は、PUのための参照ブロックについて、リスト0中の参照ピクチャを探索し得、また、PUのための別の参照ブロックについて、リスト1中の参照ピクチャを探索し得る。動き推定ユニット122は、次いで、参照ブロックを含んでいる、リスト0及びリスト1中の参照ピクチャを示す参照インデックスと、参照ブロックとPUの間の空間変位を示す動きベクトルとを生成し得る。動き推定ユニット122は、PUの動き情報としてPUの参照インデックスと動きベクトルとを出力し得る。動き補償ユニット124は、PUの動き情報によって示された参照ブロックに基づいて、PUの予測ビデオブロックを生成し得る。
【0075】
[0086]幾つかの例では、動き推定ユニット122は、PUの動き情報のフルセットをエントロピー符号化ユニット116に出力しない。そうではなく、動き推定ユニット122は、別のPUの動き情報を参照して、PUの動き情報を信号伝達(signal)し得る。例えば、動き推定ユニット122は、PUの動き情報が、隣接PUの動き情報と十分に類似していると決定し得る。この例では、動き推定ユニット122は、PUに関連付けられたシンタックス構造において、PUが隣接PUと同じ動き情報を有することをビデオデコーダ30に示す値を示し得る。別の例では、動き推定ユニット122は、PUに関連付けられたシンタックス構造において、隣接PUと動きベクトル差分(MVD:motion vector difference)とを識別し得る。動きベクトル差分は、PUの動きベクトルと、示される隣接PUの動きベクトルとの間の差分を示す。ビデオデコーダ30は、示される隣接PUの動きベクトルと、動きベクトル差分とを使用して、PUの動きベクトルを決定し得る。第2のPUの動き情報を信号伝達するときに第1のPUの動き情報を参照することによって、ビデオエンコーダ20は、より少数のビットを使用して、第2のPUの動き情報を信号伝達することが可能であり得る。
【0076】
[0087]CUに対して符号化演算を実行することの一部として、イントラ予測ユニット126は、CUのPUに対してイントラ予測を実行し得る。イントラ予測は空間圧縮を実現し得る。イントラ予測ユニット126がPUに対してイントラ予測を実行するとき、イントラ予測ユニット126は、同じピクチャ中の他のPUの復号サンプルに基づいて、PUの予測データを生成し得る。PUの予測データは、予測ビデオブロックと様々なシンタックス要素とを含み得る。イントラ予測ユニット126は、Iスライス、Pスライス、及びBスライス中のPUに対してイントラ予測を実行し得る。
【0077】
[0088]PUに対してイントラ予測を実行するために、イントラ予測ユニット126は、複数のイントラ予測モードを使用して、PUの予測データの複数のセットを生成し得る。イントラ予測ユニット126が、イントラ予測モードを使用してPUの予測データのセットを生成するとき、イントラ予測ユニット126は、イントラ予測モードに関連付けられた方向及び/又は勾配で、隣接PUのビデオブロックからPUのビデオブロックにわたって、サンプルを延ばし得る。隣接PUは、PU、CU、及びツリーブロックについて左から右、上から下の符号化順序を仮定すると、PUの上、右上、左上、又は左にあり得る。イントラ予測ユニット126は、PUのサイズに応じて、様々な数のイントラ予測モード、例えば、33個の方向性イントラ予測モードを使用し得る。
【0078】
[0089]予測処理ユニット100は、PUについての、動き補償ユニット124によって生成された予測データ、又はPUについての、イントラ予測ユニット126によって生成された予測データの中から、PUの予測データを選択し得る。幾つかの例では、予測処理ユニット100は、予測データのセットのレート/歪メトリックに基づいて、PUのための予測データを選択する。
【0079】
[0090]予測処理ユニット100が、イントラ予測ユニット126によって生成された予測データを選択する場合、予測処理ユニット100は、PUの予測データを生成するために使用されたイントラ予測モード、例えば、選択されたイントラ予測モードを信号伝達し得る。予測処理ユニット100は、選択されたイントラ予測モードを様々な方法で信号伝達し得る。例えば、選択されたイントラ予測モードは、隣接PUのイントラ予測モードと同じであることがあり得る。言い換えれば、隣接PUのイントラ予測モードは現在PUに対して最確モードであり得る。従って、予測処理ユニット100は、選択されたイントラ予測モードが隣接PUのイントラ予測モードと同じであることを示すための、シンタックス要素を生成し得る。
【0080】
[0091]上記で説明したように、ビデオエンコーダ20はレイヤ間予測ユニット128を含み得る。レイヤ間予測ユニット128は、HEVCのスケーラブル拡張において利用可能である1つ又は複数の異なるレイヤ(例えば、ベースレイヤ又は参照レイヤ)を使用して、現在ブロック(例えば、EL中の現在ブロック)を予測するように構成される。そのような予測はレイヤ間予測と呼ばれることがある。レイヤ間予測ユニット128は、レイヤ間冗長性を低減するために予測方法を利用し、それによって、コード化効率を改善し、計算資源要求(computational resource requirements)を低減する。レイヤ間予測の幾つかの例としては、レイヤ間イントラ予測、レイヤ間動き予測、及びレイヤ間残差予測がある。レイヤ間イントラ予測は、ベースレイヤ中のコロケートブロック(co-located blocks)の再構成を使用して拡張レイヤ中の現在ブロックを予測する。レイヤ間動き予測は、ベースレイヤの動き情報を使用して拡張レイヤ中の動作を予測する。レイヤ間残差予測は、ベースレイヤの残差を使用して拡張レイヤの残差を予測する。
【0081】
[0092]予測処理ユニット100がCUのPUの予測データを選択した後、残差生成ユニット102は、CUのビデオブロックからCUのPUの予測ビデオブロックを差し引くこと(例えば、マイナス符号によって示される)によって、CUの残差データを生成し得る。CUの残差データは、CUのビデオブロック中のサンプルの異なるサンプル成分に対応する、2D残差ビデオブロックを含み得る。例えば、残差データは、CUのPUの予測ビデオブロック中のサンプルのルミナンス成分と、CUの元のビデオブロック中のサンプルのルミナンス成分との間の差分に対応する、残差ビデオブロックを含み得る。更に、CUの残差データは、CUのPUの予測ビデオブロック中のサンプルのクロミナンス成分と、CUの元のビデオブロック中のサンプルのクロミナンス成分との間の差分に対応する、残差ビデオブロックを含み得る。
【0082】
[0093]予測処理ユニット100は、4分木区分化を実行して、CUの残差ビデオブロックをサブブロックに区分化し得る。各分割されていない残差ビデオブロックは、CUの異なるTUに関連付けられ得る。CUのTUに関連付けられた残差ビデオブロックのサイズ及び位置は、CUのPUに関連付けられたビデオブロックのサイズ及び位置に基づくことも基づかないこともある。「残差4分木」(RQT:residual quad tree)として知られる4分木構造は、残差ビデオブロックの各々に関連付けられたノードを含み得る。CUのTUはRQTのリーフノードに対応し得る。
【0083】
[0094]変換処理ユニット104は、TUに関連付けられた残差ビデオブロックに1つ又は複数の変換を適用することによって、CUの各TUのための1つ又は複数の変換係数ブロックを生成し得る。変換係数ブロックの各々は、変換係数の2D行列であり得る。変換処理ユニット104は、TUに関連付けられた残差ビデオブロックに様々な変換を適用し得る。例えば、変換処理ユニット104は、離散コサイン変換(DCT)、方向性変換、又は概念的に同様の変換を、TUに関連付けられた残差ビデオブロックに適用し得る。
【0084】
[0095]変換処理ユニット104が、TUに関連付けられた変換係数ブロックを生成した後、量子化ユニット106は、変換係数ブロック中の変換係数を量子化し得る。量子化ユニット106は、CUに関連付けられたQP値に基づいて、CUのTUに関連付けられた変換係数ブロックを量子化し得る。
【0085】
[0096]ビデオエンコーダ20は、様々な方法でQP値をCUに関連付け得る。例えば、ビデオエンコーダ20は、CUに関連付けられたツリーブロックに対してレート歪分析を実行し得る。レート歪分析では、ビデオエンコーダ20は、ツリーブロックに対して符号化演算を複数回実行することによって、ツリーブロックの複数のコード化表現を生成し得る。ビデオエンコーダ20がツリーブロックの異なる符号化表現を生成するとき、ビデオエンコーダ20は、異なるQP値をCUに関連付け得る。ビデオエンコーダ20は、最小のビットレート及び歪メトリックを有するツリーブロックのコード化表現で所与のQP値がCUに関連付けられるとき、所与のQP値がCUに関連付けられることを信号伝達し得る。
【0086】
[0097]逆量子化ユニット108及び逆変換ユニット110は、それぞれ、変換係数ブロックに逆量子化と逆変換とを適用して、変換係数ブロックから残差ビデオブロックを再構成し得る。再構成ユニット112は、再構成された残差ビデオブロックを、予測処理ユニット100によって生成された1つ又は複数の予測ビデオブロックからの対応するサンプルに追加して、TUに関連付けられた再構成されたビデオブロックを生成し得る。このようにCUの各TUのためのビデオブロックを再構成することによって、ビデオエンコーダ20は、CUのビデオブロックを再構成し得る。
【0087】
[0098]再構成ユニット112がCUのビデオブロックを再構成した後、フィルタユニット113は、CUに関連付けられたビデオブロックにおけるブロック歪(blocking artifacts)を低減するためにデブロッキング演算を実行し得る。1つ又は複数のデブロッキング演算を実行した後、フィルタユニット113は、復号ピクチャバッファ114にCUの再構成されたビデオブロックを記憶し得る。動き推定ユニット122及び動き補償ユニット124は、再構成されたビデオブロックを含んでいる参照ピクチャを使用して、後続ピクチャのPUに対してインター予測を実行し得る。更に、イントラ予測ユニット126は、復号ピクチャバッファ114中の再構成されたビデオブロックを使用して、CUと同じピクチャの中の他のPUに対してイントラ予測を実行し得る。
【0088】
[0099]エントロピー符号化ユニット116は、ビデオエンコーダ20の他の機能構成要素からデータを受信し得る。例えば、エントロピー符号化ユニット116は、量子化ユニット106から変換係数ブロックを受信し得、予測処理ユニット100からシンタックス要素を受信し得る。エントロピー符号化ユニット116がデータを受信するとき、エントロピー符号化ユニット116は、1つ又は複数のエントロピー符号化演算を実行して、エントロピー符号化されたデータを生成し得る。例えば、ビデオエンコーダ20は、CAVLC演算、CABAC演算、変数間(V2V:variable-to-variable)レングスコード化演算、シンタックスベースコンテキスト適応型バイナリ算術コード化(SBAC:syntax-based context-adaptive binary arithmetic coding)演算、確率間隔区分エントロピー(PIPE)コード化演算、又は別のタイプのエントロピー符号化演算をデータに対して実行し得る。エントロピー符号化ユニット116は、エントロピー符号化されたデータを含むビットストリームを出力し得る。
【0089】
[0100]データに対してエントロピー符号化演算を実行することの一部として、エントロピー符号化ユニット116は、コンテキストモデルを選択し得る。エントロピー符号化ユニット116がCABAC演算を実行している場合、コンテキストモデルは、特定の値を有する特定のビンの確率の推定値を示し得る。CABACのコンテキストでは、「ビン」という用語は、シンタックス要素の2値化されたバージョンのビットを指すために使用される。
【0090】
マルチレイヤビデオエンコーダ
[0101]
図2Bは、本開示で説明する態様による技法を実装し得る(単にビデオエンコーダ23とも呼ばれる)マルチレイヤビデオエンコーダ23の一例を示すブロック図である。ビデオエンコーダ23は、SHVC及びMV−HEVCの場合など、マルチレイヤビデオフレームを処理するように構成され得る。更に、ビデオエンコーダ23は、本開示の技法のいずれか又は全てを実行するように構成され得る。
【0091】
[0102]ビデオエンコーダ23はビデオエンコーダ20Aとビデオエンコーダ20Bとを含み、それらの各々はビデオエンコーダ20として構成され得、ビデオエンコーダ20に関して上記で説明した機能を実行し得る。更に、参照番号の再利用によって示されるように、ビデオエンコーダ20A及び20Bは、ビデオエンコーダ20としてシステムとサブシステムとのうちの少なくとも幾つかを含み得る。ビデオエンコーダ23は、2つのビデオエンコーダ20A及び20Bを含むものとして示されているが、ビデオエンコーダ23は、そのようなものとして限定されず、任意の数のビデオエンコーダ20レイヤを含み得る。幾つかの実施形態では、ビデオエンコーダ23はアクセス単位中の各ピクチャ又はフレームについてビデオエンコーダ20を含み得る。例えば、5つのピクチャを含むアクセス単位は、5つのエンコーダレイヤを含むビデオエンコーダによって処理又は符号化され得る。幾つかの実施形態では、ビデオエンコーダ23は、アクセス単位中のフレームよりも多くのエンコーダレイヤを含み得る。幾つかのそのような場合では、ビデオエンコーダレイヤの幾つかは、幾つかのアクセス単位を処理するときに非アクティブであり得る。
【0092】
[0103]ビデオエンコーダ20A及び20Bに加えて、ビデオエンコーダ23はリサンプリングユニット90を含み得る。リサンプリングユニット90は、場合によっては、例えば、拡張レイヤを作成するために、受信されたビデオフレームのベースレイヤをアップサンプリングし得る。リサンプリングユニット90は、フレームの受信されたベースレイヤに関連付けられた特定の情報をアップサンプリングするが、他の情報をアップサンプリングしないことがある。例えば、リサンプリングユニット90は、ベースレイヤの空間サイズ又は画素の数をアップサンプリングし得るが、スライスの数又はピクチャ順序カウントは一定のままであり得る。場合によっては、リサンプリングユニット90は、受信されたビデオを処理しないことがあるか、及び/又は随意であり得る。例えば、場合によっては、予測処理ユニット100はアップサンプリングを実行し得る。幾つかの実施形態では、リサンプリングユニット90は、レイヤをアップサンプリングすることと、スライス境界ルール及び/又はラスタ走査ルールのセットに準拠するために1つ又は複数のスライスを再編成、再定義、変更、又は調整することとを行うように構成される。アクセス単位中のベースレイヤ又は下位レイヤをアップサンプリングするものとして主に説明したが、場合によっては、リサンプリングユニット90はレイヤをダウンサンプリングし得る。例えば、ビデオのストリーミング中に帯域幅が減少した場合、フレームは、アップサンプリングされるのではなく、ダウンサンプリングされ得る。
【0093】
[0104]リサンプリングユニット90は、下位レイヤエンコーダ(例えば、ビデオエンコーダ20A)の復号ピクチャバッファ114からピクチャ又はフレーム(又はピクチャに関連付けられたピクチャ情報)を受信し、ピクチャ(又は受信されたピクチャ情報)をアップサンプリングするように構成され得る。このアップサンプリングされたピクチャは、次いで、下位レイヤエンコーダと同じアクセス単位中のピクチャを符号化するように構成された上位レイヤエンコーダ(例えば、ビデオエンコーダ20B)の予測処理ユニット100に与えられ得る。場合によっては、上位レイヤエンコーダは、下位レイヤエンコーダから削除された1つのレイヤである。他の場合には、
図2Bのレイヤ0ビデオエンコーダとレイヤ1エンコーダとの間に1つ又は複数の上位レイヤエンコーダがあり得る。
【0094】
[0105]場合によっては、リサンプリングユニット90は省略又はバイパスされ得る。そのような場合、ビデオエンコーダ20Aの復号ピクチャバッファ114からのピクチャは、直接、又は少なくともリサンプリングユニット90に与えられることなしに、ビデオエンコーダ20Bの予測処理ユニット100に与えられ得る。例えば、ビデオエンコーダ20Bに与えられたビデオデータと、ビデオエンコーダ20Aの復号ピクチャバッファ114からの参照ピクチャとが同じサイズ又は解像度である場合、参照ピクチャは、リサンプリングなしにビデオエンコーダ20Bに与えられ得る。
【0095】
[0106]幾つかの実施形態では、ビデオエンコーダ23は、ビデオエンコーダ20Aにビデオデータを与える前に、ダウンサンプリングユニット94を使用して下位レイヤエンコーダに与えられるべきビデオデータをダウンサンプリングする。代替的に、ダウンサンプリングユニット94は、ビデオデータをアップサンプリング又はダウンサンプリングすることが可能なリサンプリングユニット90であり得る。また他の実施形態では、ダウンサンプリングユニット94は省略され得る。
【0096】
[0107]
図2Bに示されているように、ビデオエンコーダ23は、マルチプレクサ(又はmux)98を更に含み得る。mux98は、ビデオエンコーダ23から合成ビットストリームを出力することができる。合成ビットストリームは、ビデオエンコーダ20A及び20Bの各々からビットストリームを取り、所与の時間において出力されるビットストリームを交替することによって作成され得る。場合によっては、2つの(又は、3つ以上のビデオエンコーダレイヤの場合には、より多くの)ビットストリームからのビットが一度に1ビットずつ交替され得るが、多くの場合、ビットストリームは別様に合成され得る。例えば、出力ビットストリームは、選択されたビットストリームを一度に1ブロックずつ交替することによって作成され得る。別の例では、出力ビットストリームは、ビデオエンコーダ20A及び20Bの各々からブロックの非1:1比(non-1:1 ratio)を出力することによって作成され得る。例えば、ビデオエンコーダ20Aから出力された各ブロックについて、2つのブロックがビデオエンコーダ20Bから出力され得る。幾つかの実施形態では、mux98からの出力ストリームはプリプログラムされ得る。他の実施形態では、mux98は、発信源機器12を含む発信源機器上のプロセッサからなど、ビデオエンコーダ23の外部のシステムから受信された制御信号に基づいて、ビデオエンコーダ20A、20Bからのビットストリームを合成し得る。制御信号は、ビデオ発信源18からのビデオの解像度又はビットレートに基づいて、リンク16の帯域幅に基づいて、ユーザに関連付けられたサブスクリプション(例えば、有料サブスクリプション対無料サブスクリプション)に基づいて、又はビデオエンコーダ23から望まれる解像度出力を決定するための他のファクタに基づいて生成され得る。
【0097】
ビデオデコーダ
[0108]
図3Aは、本開示で説明する態様による技法を実装し得るビデオデコーダ30の一例を示すブロック図である。ビデオデコーダ30は、HEVCの場合など、ビデオフレームの単一のレイヤを処理するように構成され得る。更に、ビデオデコーダ30は、本開示の技法のいずれか又は全てを実行するように構成され得る。幾つかの例では、本開示で説明する技法は、ビデオデコーダ30の様々な構成要素間で共有され得る。幾つかの例では、追加又は代替として、プロセッサ(図示せず)が、本開示で説明する技法のいずれか又は全てを実行するように構成され得る。
【0098】
[0109]説明の目的で、本開示では、HEVCコード化のコンテキストにおいてビデオデコーダ30について説明する。しかしながら、本開示の技法は、他のコード化規格又は方法にも適用可能であり得る。
図3Aに示された例はシングルレイヤコーデックのためのものである。しかしながら、
図3Bに関して更に説明するように、ビデオデコーダ30の一部又は全部はマルチレイヤコーデックの処理のために複製され得る。
【0099】
[0110]
図3Aの例では、ビデオデコーダ30は複数の機能構成要素を含む。ビデオデコーダ30の機能構成要素は、エントロピー復号ユニット150と、予測処理ユニット152と、逆量子化ユニット154と、逆変換ユニット156と、再構成ユニット158と、フィルタユニット159と、復号ピクチャバッファ160とを含む。予測処理ユニット152は、動き補償ユニット162と、イントラ予測ユニット164と、レイヤ間予測ユニット166とを含む。幾つかの例では、ビデオデコーダ30は、
図2Aのビデオエンコーダ20に関して説明された符号化経路とは全般に逆の復号経路を実行し得る。他の例では、ビデオデコーダ30は、より多数の、より少数の、又は異なる機能構成要素を含み得る。
【0100】
[0111]ビデオデコーダ30は、符号化ビデオデータを備えるビットストリームを受信し得る。ビットストリームは複数のシンタックス要素を含み得る。ビデオデコーダ30がビットストリームを受信したとき、エントロピー復号ユニット150は、ビットストリームに対して構文解析演算を実行し得る。ビットストリームに対して構文解析演算を実行した結果として、エントロピー復号ユニット150は、ビットストリームからシンタックス要素を抽出し得る。構文解析演算を実行することの一部として、エントロピー復号ユニット150は、ビットストリーム中のエントロピー符号化されたシンタックス要素をエントロピー復号し得る。予測処理ユニット152、逆量子化ユニット154、逆変換ユニット156、再構成ユニット158、及びフィルタユニット159は、ビットストリームから抽出されたシンタックス要素に基づいて、復号ビデオデータを生成する再構成演算を実行し得る。
【0101】
[0112]上記で説明したように、ビットストリームは、一連のNAL単位を備え得る。ビットストリームのNAL単位は、ビデオパラメータセットNAL単位、シーケンスパラメータセットNAL単位、ピクチャパラメータセットNAL単位、SEI NAL単位などを含み得る。ビットストリームに対して構文解析演算を実行することの一部として、エントロピー復号ユニット150は、シーケンスパラメータセットNAL単位からのシーケンスパラメータセット、ピクチャパラメータセットNAL単位からのピクチャパラメータセット、SEI NAL単位からのSEIデータなどを抽出し、エントロピー復号する、構文解析演算を実行し得る。
【0102】
[0113]更に、ビットストリームのNAL単位はコード化スライスNAL単位を含み得る。ビットストリームに対して構文解析演算を実行することの一部として、エントロピー復号ユニット150は、コード化スライスNAL単位からコード化スライスを抽出し、エントロピー復号する、構文解析演算を実行し得る。コード化スライスの各々は、スライスヘッダとスライスデータとを含み得る。スライスヘッダは、スライスに関するシンタックス要素を含んでいることがある。スライスヘッダ中のシンタックス要素は、スライスを含んでいるピクチャに関連付けられたピクチャパラメータセットを識別するシンタックス要素を含み得る。エントロピー復号ユニット150は、コード化されたスライスヘッダ中のシンタックス要素に対して、CABAC復号演算などのエントロピー復号演算を実行して、スライスヘッダを再構成し得る。
【0103】
[0114]コード化スライスのNAL単位からスライスデータを抽出することの一部として、エントロピー復号ユニット150は、スライスデータ中のコード化CUからシンタックス要素を抽出する構文解析演算を実行し得る。抽出されたシンタックス要素は、変換係数ブロックに関連付けられたシンタックス要素を含み得る。エントロピー復号ユニット150は、次いで、シンタックス要素のうちの幾つかに対してCABAC復号演算を実行し得る。
【0104】
[0115]エントロピー復号ユニット150が区分化されていないCUに対して構文解析演算を実行した後、ビデオデコーダ30は、区分化されていないCUに対して再構成演算を実行し得る。区分化されていないCUに対して再構成演算を実行するために、ビデオデコーダ30はCUの各TUに対して再構成演算を実行し得る。CUの各TUについて再構成演算を実行することによって、ビデオデコーダ30は、CUに関連付けられた残差ビデオブロックを再構成し得る。
【0105】
[0116]TUに対して再構成演算を実行することの一部として、逆量子化ユニット154は、TUに関連付けられた変換係数ブロックを逆の量子化(inverse quantize)、例えば、逆量子化(de-quantize)し得る。逆量子化ユニット154は、HEVC用に提案された、又はH.264復号規格によって定義された逆量子化プロセスと同様の方式で、変換係数ブロックを逆量子化し得る。逆量子化ユニット154は、量子化の程度を決定し、同様に、逆量子化ユニット154が適用すべき逆量子化の程度を決定するために、変換係数ブロックのCUのためにビデオエンコーダ20によって計算される量子化パラメータQPを使用し得る。
【0106】
[0117]逆量子化ユニット154が変換係数ブロックを逆量子化した後、逆変換ユニット156は、変換係数ブロックに関連付けられたTUのための残差ビデオブロックを生成し得る。逆変換ユニット156は、TUのための残差ビデオブロックを生成するために、変換係数ブロックに逆変換を適用し得る。例えば、逆変換ユニット156は、変換係数ブロックに、逆DCT、逆整数変換、逆カルーネンレーベ変換(KLT:Karhunen-Loeve transform)、逆回転変換、逆方向変換、又は別の逆変換を適用し得る。幾つかの例では、逆変換ユニット156は、ビデオエンコーダ20からの信号伝達に基づいて、変換係数ブロックに適用すべき逆変換を決定し得る。そのような例では、逆変換ユニット156は、変換係数ブロックに関連付けられたツリーブロックの4分木のルートノードにおいて信号伝達された変換に基づいて、逆変換を決定し得る。他の例では、逆変換ユニット156は、ブロックサイズ、コード化モードなど、1つ又は複数のコード化特性から逆変換を推論し得る。幾つかの例では、逆変換ユニット156はカスケード逆変換を適用し得る。
【0107】
[0118]幾つかの例では、動き補償ユニット162は、補間フィルタに基づく補間を実行することによって、PUの予測ビデオブロックを改良し得る。サブサンプル精度をもつ動き補償のために使用されるべき補間フィルタのための識別子が、シンタックス要素中に含まれ得る。動き補償ユニット162は、PUの予測ビデオブロックの生成中にビデオエンコーダ20によって使用された同じ補間フィルタを使用して、参照ブロックのサブ整数サンプルについての補間値を計算し得る。動き補償ユニット162は、受信されたシンタックス情報に従って、ビデオエンコーダ20によって使用された補間フィルタを決定し、その補間フィルタを使用して予測ビデオブロックを生成し得る。
【0108】
[0119]PUが、イントラ予測を使用して符号化される場合、イントラ予測ユニット164は、PUのための予測ビデオブロックを生成するためにイントラ予測を実行し得る。例えば、イントラ予測ユニット164は、ビットストリーム中のシンタックス要素に基づいて、PUのためのイントラ予測モードを決定し得る。ビットストリームは、PUのイントラ予測モードを決定するためにイントラ予測ユニット164が使用し得るシンタックス要素を含み得る。
【0109】
[0120]幾つかの事例では、シンタックス要素は、イントラ予測ユニット164が別のPUのイントラ予測モードを使用して現在PUのイントラ予測モードを決定するべきであることを示し得る。例えば、現在PUのイントラ予測モードは隣接PUのイントラ予測モードと同じであることがあり得る。言い換えれば、隣接PUのイントラ予測モードは現在PUに対して最確モードであり得る。従って、この例では、ビットストリームは、PUのイントラ予測モードが隣接PUのイントラ予測モードと同じであることを示す、小さいシンタックス要素を含み得る。イントラ予測ユニット164は、次いで、イントラ予測モードを使用して、空間的に隣接するPUのビデオブロックに基づいて、PUの予測データ(例えば、予測サンプル)を生成し得る。
【0110】
[0121]上記で説明したように、ビデオデコーダ30もレイヤ間予測ユニット166を含み得る。レイヤ間予測ユニット166は、HEVCのスケーラブル拡張において利用可能である1つ又は複数の異なるレイヤ(例えば、ベースレイヤ又は参照レイヤ)を使用して、現在ブロック(例えば、拡張レイヤ中の現在ブロック)を予測するように構成される。そのような予測はレイヤ間予測と呼ばれることがある。レイヤ間予測ユニット166は、レイヤ間冗長性を低減するために予測方法を利用し、それによって、コード化効率を改善し、計算資源要求を低減する。レイヤ間予測の幾つかの例としては、レイヤ間イントラ予測、レイヤ間動き予測、及びレイヤ間残差予測がある。レイヤ間イントラ予測は、ベースレイヤ中のコロケートブロックの再構成を使用して拡張レイヤ中の現在ブロックを予測する。レイヤ間動き予測は、ベースレイヤの動き情報を使用して拡張レイヤ中の動作を予測する。レイヤ間残差予測は、ベースレイヤの残差を使用して拡張レイヤの残差を予測する。レイヤ間予測方式の各々について、より詳細に以下で説明する。
【0111】
[0122]再構成ユニット158は、適用可能なとき、CUのTUに関連付けられた残差ビデオブロックとCUのPUの予測ビデオブロックとを使用して、即ち、イントラ予測データ又はインター予測データのいずれかを使用して、CUのビデオブロックを再構成し得る。従って、ビデオデコーダ30は、ビットストリーム中のシンタックス要素に基づいて、予測ビデオブロックと残差ビデオブロックとを生成し得、予測ビデオブロックと残差ビデオブロックとに基づいて、ビデオブロックを生成し得る。
【0112】
[0123]再構成ユニット158がCUのビデオブロックを再構成した後、フィルタユニット159は、デブロッキング演算を実行して、CUに関連付けられたブロック歪を低減し得る。フィルタユニット159が、CUに関連付けられたブロック歪を低減するためにデブロッキング演算を実行した後、ビデオデコーダ30はCUのビデオブロックを復号ピクチャバッファ160に記憶し得る。復号ピクチャバッファ160は、後続の動き補償、イントラ予測、及び
図1A又は
図1Bの表示装置32などの表示装置上での提示のために、参照ピクチャを与え得る。例えば、ビデオデコーダ30は、復号ピクチャバッファ160中のビデオブロックに基づいて、他のCUのPUに対してイントラ予測演算又はインター予測演算を実行し得る。
【0113】
マルチレイヤデコーダ
[0124]
図3Bは、本開示で説明する態様による技法を実装し得る(単にビデオデコーダ33とも呼ばれる)マルチレイヤビデオデコーダ33の一例を示すブロック図である。ビデオデコーダ33は、SHVC及びマルチビューコード化の場合など、マルチレイヤビデオフレームを処理するように構成され得る。更に、ビデオデコーダ33は、本開示の技法のいずれか又は全てを実行するように構成され得る。
【0114】
[0125]ビデオデコーダ33はビデオデコーダ30Aとビデオデコーダ30Bとを含み、それらの各々はビデオデコーダ30として構成され得、ビデオデコーダ30に関して上記で説明した機能を実行し得る。更に、参照番号の再利用によって示されるように、ビデオデコーダ30A及び30Bは、ビデオデコーダ30としてシステムとサブシステムとのうちの少なくとも幾つかを含み得る。ビデオデコーダ33は、2つのビデオデコーダ30A及び30Bを含むものとして示されているが、ビデオデコーダ33は、そのようなものとして限定されず、任意の数のビデオデコーダ30レイヤを含み得る。幾つかの実施形態では、ビデオデコーダ33はアクセス単位中の各ピクチャ又はフレームについてビデオデコーダ30を含み得る。例えば、5つのピクチャを含むアクセス単位は、5つのデコーダレイヤを含むビデオデコーダによって処理又は復号され得る。幾つかの実施形態では、ビデオデコーダ33は、アクセス単位中のフレームよりも多くのデコーダレイヤを含み得る。幾つかのそのような場合では、ビデオデコーダレイヤの幾つかは、幾つかのアクセス単位を処理するときに非アクティブであり得る。
【0115】
[0126]ビデオデコーダ30A及び30Bに加えて、ビデオデコーダ33はアップサンプリングユニット92を含み得る。幾つかの実施形態では、アップサンプリングユニット92は、フレーム又はアクセス単位のための参照ピクチャリストに追加されるべき拡張レイヤを作成するために、受信されたビデオフレームのベースレイヤをアップサンプリングし得る。この拡張レイヤは復号ピクチャバッファ160に記憶され得る。幾つかの実施形態では、アップサンプリングユニット92は、
図2Aのリサンプリングユニット90に関して説明した実施形態の一部又は全部を含むことができる。幾つかの実施形態では、アップサンプリングユニット92は、レイヤをアップサンプリングすることと、スライス境界ルール及び/又はラスタ走査ルールのセットに準拠するために1つ又は複数のスライスを再編成、再定義、変更、又は調整することとを行うように構成される。場合によっては、アップサンプリングユニット92は、受信されたビデオフレームのレイヤをアップサンプリング及び/又はダウンサンプリングするように構成されたリサンプリングユニットであり得る。
【0116】
[0127]アップサンプリングユニット92は、下位レイヤデコーダ(例えば、ビデオデコーダ30A)の復号ピクチャバッファ160からピクチャ又はフレーム(又はピクチャに関連付けられたピクチャ情報)を受信し、ピクチャ(又は受信されたピクチャ情報)をアップサンプリングするように構成され得る。このアップサンプリングされたピクチャは、次いで、下位レイヤデコーダと同じアクセス単位中のピクチャを復号するように構成された上位レイヤデコーダ(例えば、ビデオデコーダ30B)の予測処理ユニット152に与えられ得る。場合によっては、上位レイヤデコーダは、下位レイヤデコーダから削除された1つのレイヤである。他の場合には、
図3Bのレイヤ0デコーダとレイヤ1デコーダとの間に1つ又は複数の上位レイヤデコーダがあり得る。
【0117】
[0128]場合によっては、アップサンプリングユニット92は省略又はバイパスされ得る。そのような場合、ビデオデコーダ30Aの復号ピクチャバッファ160からのピクチャは、直接又は少なくともアップサンプリングユニット92に与えられることなしに、ビデオデコーダ30Bの予測処理ユニット152に与えられ得る。例えば、ビデオデコーダ30Bに与えられたビデオデータと、ビデオデコーダ30Aの復号ピクチャバッファ160からの参照ピクチャとが同じサイズ又は解像度である場合、参照ピクチャは、アップサンプリングなしにビデオデコーダ30Bに与えられ得る。更に、幾つかの実施形態では、アップサンプリングユニット92は、ビデオデコーダ30Aの復号ピクチャバッファ160から受信された参照ピクチャをアップサンプリング又はダウンサンプリングするように構成されたリサンプリングユニット90であり得る。
【0118】
[0129]
図3Bに示されているように、ビデオデコーダ33は、デマルチプレクサ(又はdemux)99を更に含み得る。demux99は符号化ビデオビットストリームを複数のビットストリームに分割することができ、demux99によって出力された各ビットストリームは異なるビデオデコーダ30A及び30Bに与えられる。複数のビットストリームは、ビットストリームを受信することによって作成され得、ビデオデコーダ30A及び30Bの各々は、所与の時間においてビットストリームの一部分を受信する。場合によっては、demux99において受信されるビットストリームからのビットは、ビデオデコーダの各々(例えば、
図3Bの例ではビデオデコーダ30A及び30B)の間で一度に1ビットずつ交替され得るが、多くの場合、ビットストリームは別様に分割される。例えば、ビットストリームは、一度に1ブロックずつビットストリームを受信するビデオデコーダを交替することによって分割され得る。別の例では、ビットストリームは、ブロックの非1:1比によって、ビデオデコーダ30A及び30Bの各々に分割され得る。例えば、2つのブロックは、ビデオデコーダ30Aに与えられる各ブロックについてビデオデコーダ30Bに与えられ得る。幾つかの実施形態では、demux99によるビットストリームの分割はプリプログラムされ得る。他の実施形態では、demux99は、宛先モジュール14を含む宛先機器上のプロセッサからなど、ビデオデコーダ33の外部のシステムから受信された制御信号に基づいてビットストリームを分割し得る。制御信号は、入力インターフェース28からのビデオの解像度又はビットレートに基づいて、リンク16の帯域幅に基づいて、ユーザに関連付けられたサブスクリプション(例えば、有料サブスクリプション対無料サブスクリプション)に基づいて、又はビデオデコーダ33によって取得可能な解像度を決定するための他のファクタに基づいて生成され得る。
【0119】
イントラランダムアクセスポイント(IRAP)ピクチャ
[0130]幾つかのビデオコード化方式は様々なランダムアクセスポイントを、ビットストリームが、ビットストリームの中でそれらのランダムアクセスポイントに先行するいかなるピクチャも復号する必要なしに、それらのランダムアクセスポイントのいずれかから始めて復号され得るように、ビットストリーム全体にわたって提供し得る。そのようなビデオコード化方式では、ランダムアクセススキップリーディング(RASL:random access skipped leading)ピクチャを除いて、復号順序においてランダムアクセスポイントに後続する全てのピクチャは、ランダムアクセスポイントに先行するいかなるピクチャも使用することなしに正確に復号され得る。例えば、ビットストリームの一部分が送信の間又は復号の間に失われても、デコーダは、次のランダムアクセスポイントから始めてビットストリームの復号を再開することができる。ランダムアクセスのサポートは、例えば、動的なストリーミングサービス、シーク動作、チャネル切替えなどを容易にし得る。
【0120】
[0131]幾つかのコード化方式では、そのようなランダムアクセスポイントは、イントラランダムアクセスポイント(IRAP)ピクチャと呼ばれるピクチャによって提供され得る。例えば、アクセス単位(「auA」)中に含まれている拡張レイヤ(「layerA」)中の拡張レイヤIRAPピクチャに関連付けられたランダムアクセスポイントは、各参照レイヤ(「layerB」)中にあり、復号順序においてauAに先行するアクセス単位(「auB」)中に含まれているピクチャに関連付けられたランダムアクセスポイント(又は、auA中に含まれているランダムアクセスポイント)を有するlayerAのlayerB(例えば、layerAを予測するために使用されるレイヤである参照レイヤ)に関して復号順序においてauAに後続する(auA中に位置するピクチャを含む)layerA中のピクチャが、auAに先行するlayerA中のいかなるピクチャも復号する必要なしに正確に復号可能であるように、レイヤ特有のランダムアクセスを提供し得る。
【0121】
[0132]IRAPピクチャは、イントラ予測を使用してコード化され(例えば、他のピクチャを参照することなしにコード化され)及び/又はレイヤ間予測を使用してコード化され得、例えば、瞬時デコーダリフレッシュ(IDR:instantaneous decoder refresh)ピクチャと、クリーンランダムアクセス(CRA:clean random access)ピクチャと、ブロークンリンクアクセス(BLA:broken link access)ピクチャとを含み得る。ビットストリーム中にIDRピクチャがあるとき、復号順序においてIDRピクチャに先行する全てのピクチャは、IDRピクチャに後続するピクチャによる予測のために使用されない。ビットストリーム中にCRAピクチャがあるとき、CRAピクチャに後続するピクチャは、復号順序においてCRAピクチャに先行するピクチャを予測のために使用することも、使用しないこともある。復号順序においてCRAピクチャに後続するが、復号順序においてCRAピクチャに先行するピクチャを使用するピクチャは、RASLピクチャと呼ばれることがある。復号順序においてIRAPピクチャに後続し、出力順序においてIRAPピクチャに先行することができる別のタイプのピクチャは、復号順序においてIRAPピクチャに先行するいかなるピクチャへの参照も含んでいないことがあるランダムアクセス復号可能リーディング(RADL:random access decodable leading)ピクチャである。CRAピクチャに先行するピクチャが利用可能でない場合、RASLピクチャはデコーダによって廃棄され得る。BLAピクチャは、(例えば、2つのビットストリームが互いにスプライスされ、BLAピクチャが復号順序において第2のビットストリームの最初のピクチャであるので)BLAピクチャに先行するピクチャがデコーダにとって利用可能でないことがあることを、デコーダに示す。IRAPピクチャである(例えば、0のレイヤID値を有する)ベースレイヤピクチャを含んでいるアクセス単位(例えば、複数のレイヤにわたって同じ出力時間に関連付けられた全てのコード化ピクチャからなるピクチャのグループ)は、IRAPアクセス単位と呼ばれることがある。
【0122】
ビットストリーム終端NAL単位
[0133]
図4は、一実施形態による、マルチレイヤビットストリームのアクセス単位を示すブロック図である。
図4に示されているように、アクセス単位400は、第1のビデオコード化レイヤ(VCL)NAL単位460を含み、1つ又は複数の他の随意のNAL単位を含み得る。例えば、アクセス単位400は、アクセス単位デリミタNAL単位410、VPS NAL単位420、SPS NAL単位430、PPS NAL単位440、プレフィックスSEI NAL単位450、追加のコード化ピクチャ又は非VCL NAL単位470、及びEoB NAL単位480の各々の1つ又は複数を含み得る。リストされた随意のNAL単位の各々は、実装形態の態様に応じて含まれ得、他のシンタックス構造も、アクセス単位を符号化又は復号するために採用されるビデオコード化方式に応じて含まれ得る。
【0123】
[0134]HEVC方式によれば、アクセス単位400中にEoB NAL単位480が存在するとき、次のアクセス単位は、コード化ビットストリームがHEVC方式に準拠するために、IDRアクセス単位、BLAアクセス単位、又はCRAアクセス単位であり得るIRAPアクセス単位であるものとする。従って、アクセス単位中に含まれるとき、EoB NAL単位480は、後続のアクセス単位がIRAPアクセス単位であることを示す。
【0124】
[0135]従来のシングルレイヤコード化方式(例えば、HEVCバージョン1)では、各アクセス単位は、単一のピクチャに一意に対応する。各アクセス単位が単一のピクチャを含んでいるので、「アクセス単位」及び「ピクチャ」という用語は、例えば、リカバリポイントSEIメッセージの利用に関するシングルレイヤコード化方式のコンテキストにおいて互換的に使用されることが可能であった。しかしながら、マルチレイヤコード化方式のアクセス単位は、ビットストリームの各レイヤについて別個のピクチャを含み得る。言い換えれば、マルチレイヤビットストリームでは、単一のアクセス単位が、複数のピクチャを含んでいる(即ち、含む又は備える)ことがある。MV−HEVC及びSHVCなど、幾つかのマルチレイヤコード化実装形態では、各NAL単位は、NAL単位が属するレイヤを識別するレイヤ識別子を含む。従って、EoB NAL単位のレイヤは、EoB NAL単位のレイヤ識別子の値に基づいて定義される。従来のシングルレイヤコード化方式では、全てのNAL単位のためのレイヤ識別子が、同じレイヤ、即ち、レイヤ0に抑制される。言い換えれば、従来のシングルレイヤコード化方式のNAL単位は全て、同じレイヤに属するものとして識別される。しかしながら、マルチレイヤコード化方式では、EoB NAL単位に関連付けられたレイヤ識別子を含む、NAL単位内に含まれるレイヤ識別子に対してそのような制限はない。
【0125】
[0136]マルチレイヤコード化方式におけるEoB NAL単位のレイヤ識別子の無制限性質により、EoB NAL単位が0以外の値をもつレイヤ識別子を有するとき、幾つかの望ましくない復号エラーが発生することがある。一例として、コード化ビットストリームが、ベースレイヤ(BL)と拡張レイヤ(EL)とを含み得る。エンコーダとデコーダとの間の帯域幅が制限されるか又はあるレベルを下回るとき、拡張レイヤ(又はレイヤ0以外のレイヤ識別子を有する他のレイヤ)は、帯域幅を温存するためにビットストリームからドロップされる(又は不正確に処理される)ことがある。これは、例えば、ビデオエンコーダ(例えば、ビデオエンコーダ20又はビデオエンコーダ23)とビデオデコーダ(例えば、ビデオデコーダ30又はビデオデコーダ33)との間の帯域幅が限定されるときに生じることがある。この状況では、EoB NAL単位が1(「1」)の値をもつレイヤ識別子を有する、即ち、拡張レイヤ(EL)中にEoB NAL単位が含まれている場合、EoB NAL単位は、ビットストリームからドロップされ、デコーダによって受信されない。
【0126】
[0137]EoB NAL単位内に含まれている情報に依拠する、コード化方式の幾つかの機能がある。従って、EoB NAL単位がビットストリームからドロップされるとき、これらの機能は予想されるように機能しない。一例では、デコーダは、EoB NAL単位がCRAアクセス単位の直前に存在するか否かに基づいて、クリーンランダムアクセス(CRA)アクセス単位を含むビットストリームを異なる方法で復号し得る。従って、EoB NAL単位が拡張レイヤからドロップされる場合、後続のCRAアクセス単位の復号は、予想されるように実行されない。同様に、他の復号機能が、適切な復号のためにEoB NAL単位の存在に依拠し、従って、EoB NAL単位が、レイヤ0以外のレイヤを示すレイヤ識別子値を有するとき、EoB NAL単位は、それがベースレイヤ以外のレイヤ中に含まれるので、ドロップされることがあり、デコーダがビットストリームを適切に復号することが可能でない可能性がある。
【0127】
[0138]更に、マルチレイヤコード化規格は、EoB NAL単位が0以外の値をもつレイヤ識別子を有することを可能にするための追加の機能を定義しない。従って、本開示の少なくとも1つの実施形態では、0のレイヤ識別子を有するように全てのEoB NAL単位が設定される。詳細には、本開示によれば、ビットストリームの符号化は、EoB NAL単位が0のレイヤ識別子を有するという制約に基づいて実行される。全てのEoB NAL単位のレイヤ識別子をレイヤ0に制限することによって、NAL単位は、上記で説明したように、レイヤ0以外のレイヤ識別子を有するNAL単位だけがドロップされるので、ドロップされない(又は不正確に処理されない)。
【0128】
RPS
[0139]ビデオコード化方式は、コード化ビデオシーケンス(CVS)のピクチャに関連付けられたRPSを維持し得る。所与のピクチャのためのRPSは、関連ピクチャ又は復号順序において関連ピクチャに後続する任意のピクチャのインター予測のために使用され得る、復号順序において関連ピクチャに先立つ全ての参照ピクチャを含む参照ピクチャのセットを含んでいる。一例として、HEVC方式では、RPSは5つのRPSリストを含み、それのうちの3つが、短期RPSと総称され、長期RPSと総称される残りの2つ。短期RPSは、関連ピクチャと、復号順序において関連ピクチャに後続する1つ又は複数のピクチャとのインター予測のために使用され得る、全ての参照ピクチャを含んでいる。長期RPSは、関連ピクチャのインター予測のために使用されないが、復号順序において関連ピクチャに後続する1つ又は複数ピクチャのインター予測のために使用され得る、全ての参照ピクチャを含んでいる。
【0129】
[0140]
図5は、エンコーダ又はデコーダによってRPSがどのように生成されるかについての一例を示すブロック図である。以下の説明では、復号ピクチャバッファ510についてデコーダ(例えば、ビデオデコーダ30又はビデオデコーダ33)中に含まれるものとして説明するが、以下は、エンコーダに等しく適用される。
図5に示されているように、デコーダの復号ピクチャバッファ510中に複数のピクチャ520〜528が保持される。RPSが、ピクチャのために生成され得、復号ピクチャバッファ510中に含まれているピクチャへの参照を含み得る。第1のRPSリスト530は、ピクチャ520、522、526、及び528を含み、第2のRPSリスト540は、ピクチャ520、524、526、及び528を含む。
図5の実施形態は一例にすぎず、RPS中に含まれるピクチャは、ビットストリームを符号化するために使用されるコード化方式の条件に従って参照のために使用される、ビットストリームからの任意のピクチャであり得る。RPSリスト530及び540は、同じレイヤ内のピクチャを復号するための参照として使用されるピクチャを含む、従来のRPSリストであり得、又は、異なるレイヤ中のピクチャを復号するために使用されるレイヤ間RPSリストであり得る。
【0130】
[0141]HEVC方式のスケーラブル拡張及びマルチビュー拡張など、マルチビュービデオコード化方式は、レイヤ間予測のためのRPSを含めるためにRPSの使用を拡大する。幾つかの実施形態では、ビットストリームの各レイヤのためにRPSが定義され、即ち、各ピクチャがそれ自体のRPSを維持する。更に、関連ピクチャのレイヤ間予測のために使用されるピクチャのリストを含む、追加のRPSが提供され得る。各ピクチャのためのレイヤ間RPSは、ビットストリームのレイヤに対応するサブセットに分割され得る。例えば、2レイヤビットストリームでは、レイヤ間RPSは、以下でそれぞれRPSレイヤ間0及びRPSレイヤ間1と呼ぶ、レイヤ0サブセット及びレイヤ1サブセットに分割され得る。
【0131】
[0142]前に説明したように、ピクチャは、帯域幅要件などの様々な理由でビットストリームからドロップされる(又は不正確に処理される)ことがあり、又は、ピクチャは、エンコーダとデコーダとの間の送信において失われることがある。デコーダによって受信されるビットストリーム中に候補レイヤ間参照ピクチャが存在しないとき、即ち、RPSレイヤ間サブセットにおいて識別される参照ピクチャが受信されないとき、参照ピクチャが存在しないことを示す「参照ピクチャなし」のエントリが、対応するRPSレイヤ間サブセットに挿入されるべきである。適切なサブセットは、現在レイヤのビュー識別子(ID)と、候補レイヤ間参照ピクチャが属するレイヤのビューIDと、ベースレイヤのビューIDとに基づいて決定され得る。ここで、ビューIDは、レイヤIDを指しに類似し、マルチビュー符号化規格内のピクチャのビューを指すことがある。
【0132】
[0143]現在のスケーラブル拡張及びマルチビュー拡張では、デコーダによって候補レイヤ間参照ピクチャが受信された場合、それがRPSレイヤ間1に追加されていたとしても、「参照ピクチャなし」エントリは、ただRPSレイヤ間0に入力される。「参照ピクチャなし」のエントリは、消失したレイヤ間参照ピクチャが入力されていたであろうロケーションにおいて示されるべきであるので、この挙動は望ましくない。補正がなければ、この挙動は、レイヤ間参照ピクチャが消失したとき、2つのRPSレイヤ間サブセットにおいてレイヤ間参照ピクチャの望ましくない又は不正確な相対的位置決めを生じることがある。更に、この挙動は、RPSレイヤ間サブセット中に含まれているリストのサイズが不正確になることを生じることもある。このことは、ビットストリームを復号するとき、レイヤ間参照ピクチャの不正確な参照に潜在的につながることがある。従って、本開示の別の目的は、この挙動を補正することである。
【0133】
[0144]一実施形態では、「参照ピクチャなし」のエントリがどのRPSレイヤ間サブセットに挿入されるか決定するために、現在ピクチャのビューIDが使用される。例えば、ピクチャのために候補レイヤ間参照ピクチャが存在しないとき、消失したレイヤ間参照ピクチャのビューIDに基づいて、対応するRPSレイヤ間サブセット中に「参照ピクチャなし」のエントリが含まれる。他の実施形態では、他のレイヤのビューIDも、消失した候補レイヤ間参照ピクチャにどのRPSレイヤ間サブセットが対応するかという決定において使用され得る。例えば、その決定において候補レイヤ間参照ピクチャのビューID及びベースレイヤのビューIDが使用され得る。従って、対応するRPSレイヤ間サブセット中に「参照ピクチャなし」のエントリを含めることによって、RPSレイヤ間サブセット中のレイヤ間参照ピクチャの相対的位置決めは補正され得、RPSレイヤ間サブセットのそれぞれのサイズも補正され得る。
【0134】
[0145]本開示の別の態様は、ビットストリームの送信における損失の不正確な推論に対処し得る。スケーラブル拡張及びマルチビュー拡張は、廃棄可能フラグに関連付けられたピクチャが、他のピクチャによるレイヤ間予測のためにもインター予測のためにも使用されないかどうかを示す、廃棄可能フラグの包含を提案する。幾つかの実施形態では、このフラグは、ビットストリームのスライスヘッダ中に含まれ、関連ピクチャ内の全てのスライスセグメントについて同じ値を有する。従来のマルチレイヤコード化方式では、ピクチャが廃棄可能であることを示す関連付けられた廃棄可能フラグをピクチャが有するとき、時間RPS又はレイヤ間RPS中に廃棄可能ピクチャが存在しないという要件はない。更に、従来の方式はまた、PUが廃棄可能ピクチャ中のPUを参照しない限り、廃棄可能ピクチャが参照ピクチャリスト中に存在することを拒否しない。従って、廃棄可能ピクチャは、それが参照のために使用されない限り、RPS又は参照ピクチャリスト中に含まれ得る。
【0135】
[0146]RPS又は参照ピクチャリスト中に廃棄可能ピクチャが含まれる場合、デコーダは、その包含により、損失を不正確に推論することがあり及び/又は帯域幅及び復号の非効率性をもたらすことがある。例えば、帯域幅制約下のとき、ビットストリーム中の他のピクチャを復号するときに参照のために廃棄可能ピクチャは使用されないので、帯域幅を節約するために、それはビットストリームから削除され得る。廃棄されたピクチャがRPS中に含まれるとき、デコーダは、デコーダにおいてまだ受信されない別のピクチャによって廃棄されたピクチャが参照のために使用され得ることを認識することになる。デコーダは、廃棄されたピクチャが参照のために使用され得ることを認識するので、それは、エンコーダからの廃棄されたピクチャの再送信を要求し得る。この挙動は、廃棄可能ピクチャを廃棄する際に最初に獲得された帯域幅節約を低減し、デコーダにおける非効率性を招くことになる。
【0136】
[0147]従って、少なくとも1つの実施形態では、ピクチャが廃棄可能であることを示す、即ち、1の値を有する廃棄可能フラグに関連付けられたピクチャは、レイヤ間RPS又は時間RPSのいずれか中に含まれることを拒否される。
【0137】
[0148]別の実施形態では、参照のために使用されるフラグ(used-for-reference flag)は、ピクチャに一意に関連付けられ得る。参照のために使用されるフラグは、関連ピクチャが少なくとも1つのRPS中に含まれるかどうかを示す。この実施形態では、1の値をもつ参照のために使用されるフラグを有するピクチャだけが、RPS中に含まれることを許される。
【0138】
ビデオ情報を符号化するための例示的なフローチャート
[0149]
図6を参照しながら、0の値をもつレイヤ識別値を有するEoB NAL単位に基づいてビデオ情報を符号化するための例示的なプロシージャについて説明する。
図6は、一実施形態による、ビデオ情報を符号化するための方法600を示すフローチャートである。
図6に示されたステップは、ビデオエンコーダ(例えば、ビデオエンコーダ20又はビデオエンコーダ23)、ビデオデコーダ(例えば、ビデオデコーダ30又はビデオデコーダ33)、又は他の構成要素によって実行され得る。便宜上、方法600について、ビデオエンコーダ20又は23、ビデオデコーダ30又は33、又は別の構成要素であり得る、(単にエンコーダとも呼ばれる)ビデオエンコーダによって実行されるものとして説明する。
【0139】
[0150]方法600はブロック601において開始する。ブロック605において、エンコーダは、ビデオ情報中に含まれるアクセス単位がEoB NAL単位を含むかどうかを決定する。ブロック610において、エンコーダは、制約に従ってEoB NAL単位のためのレイヤ識別値を0に設定する。符号化されるべきビデオ情報は、EoB NAL単位が属するレイヤを識別するレイヤ識別値を含む少なくとも1つのEoB NAL単位を含む。ブロック615において、エンコーダは、レイヤ識別値のための0の値に少なくとも部分的に基づいて、ビデオ情報を符号化する。本方法は620において終了する。
【0140】
[0151]
図7を参照しながら、ビデオ復号のためのRPSレイヤ間サブセット中に参照ピクチャが存在しないことを示すための例示的なプロシージャについて説明する。
図7は、一実施形態による、ビデオ情報を復号するための方法700を示すフローチャートである。
図7に示されたステップは、ビデオエンコーダ(例えば、ビデオエンコーダ20又はビデオエンコーダ23)、ビデオデコーダ(例えば、ビデオデコーダ30又はビデオデコーダ33)、又は他の構成要素によって実行され得る。便宜上、方法700について、ビデオエンコーダ20又は23若しくはビデオデコーダ30又は33、若しくは別の構成要素であり得る、(単にデコーダとも呼ばれる)ビデオデコーダによって実行されるものとして説明する。
【0141】
[0152]方法700はブロック701において開始する。ブロック705において、デコーダは、ビデオ情報中に候補レイヤ間参照ピクチャが存在するかどうかを決定する。ピクチャが、帯域幅制限に応じてコード化ビデオ情報からドロップされ得、又はエンコーダからの送信中に予想外に失われ得る。従って、デコーダは、候補レイヤ間参照ピクチャが存在するかどうかを決定することによって、候補レイヤ間参照ピクチャがビデオ情報からドロップされたかどうかを決定し得る。
【0142】
[0153]本方法はブロック710に進み、デコーダは、候補レイヤ間参照ピクチャが存在しないと決定したことに応答して、候補レイヤ間参照ピクチャが属するRPSレイヤ間サブセットを決定する。例えば、この決定は、ビデオ情報中に候補レイヤ間参照ピクチャが存在した場合、それがどのサブセット中に含まれていたかを決定することを含み得る。幾つかの実施形態では、これは、現在レイヤのビューID、候補レイヤ間参照ピクチャのビューID、及び/又はベースレイヤのビューIDを決定することを含み得る。
【0143】
[0154]ブロック715に進み、デコーダは、候補レイヤ間参照ピクチャが属するRPSレイヤ間サブセット中に参照ピクチャが存在しないことを示す。本方法は720において終了する。
【0144】
[0155]
図8を参照しながら、ビデオコード化のためのRPS中にピクチャを含めるべきかどうかを決定するための例示的なプロシージャについて説明する。
図8は、一実施形態による、ビデオ情報を符号化するための方法800を示すフローチャートである。
図8に示されたステップは、エンコーダ(例えば、ビデオエンコーダ23のビデオエンコーダ20)、ビデオデコーダ(例えば、ビデオデコーダ30又はビデオデコーダ33)、又は他の構成要素によって実行され得る。便宜上、方法800について、ビデオエンコーダ20又は23、ビデオデコーダ30又は33、又は別の構成要素であり得る、ビデオエンコーダによって実行されるものとして説明する。
【0145】
[0156]方法800はブロック801において開始する。ブロック805において、エンコーダは、ビデオ情報の現在ピクチャが廃棄可能ピクチャであるかどうかを決定する。各ピクチャは、例えば、ピクチャが廃棄可能ピクチャであるかどうかを示す廃棄可能フラグを含み得る。幾つかの実施形態では、ピクチャがいずれのRPS中にも含まれないときのみ、それは廃棄可能ピクチャとして識別され得る。
【0146】
[0157]方法はブロック810に進み、エンコーダは、現在ピクチャが廃棄可能ピクチャであるという決定に基づいて、現在ピクチャをRPS中に含めることを控える。本方法は815において終了する。
【0147】
[0158]方法600〜800では、
図6〜
図8に示されたブロックのうちの1つ又は複数は削除される(例えば、実行されない)ことがあり、及び/又は方法が実行される順序は入れ替えられることがある。幾つかの実施形態では、追加のブロックが方法600〜800に追加され得る。本開示の実施形態は、
図6〜
図8に示された例に限定されず、又は
図6〜
図8に示された例によって限定されず、他の変形が本開示の趣旨から逸脱することなく実施され得る。
【0148】
例示的な(1つ又は複数の)実装形態
[0159]幾つかの実施形態について、以下で要約及び説明する。本明細書で説明する方法のうちの1つ又は複数を実装するために組み込まれ得る追加と削除とを示すために、HEVC仕様の幾つかの部分が転載されるとき、そのような変更は、それぞれイタリック体及び取り消し線で示される。
【0149】
EoB NAL単位に関係する変更
[0160]本開示の幾つかの実装形態では、以下で説明するようにEoB NAL単位が変更され得る。
【0150】
【表1】
表1−EoB NAL単位セマンティクス変更
【0151】
レイヤ間RPSの復号プロセスへの変更
[0161]本開示の幾つかの実装形態では、以下で説明するようにレイヤ間RPSが変更され得る。
【0152】
【表2】
表2−レイヤ間RPSセマンティクス変更
【0153】
RPSの復号プロセスへの変更
[0162]幾つかの実装形態(例えば、SHVC、MV−HEVCなど)では、RPSは、以下で説明するように変更され得る。
【0154】
【表3】
表3−RPSセマンティクス変更
【0155】
他の考慮事項
[0163]本明細書で開示する情報及び信号は、多種多様な技術及び技法のいずれかを使用して表され得る。例えば、上記の説明全体にわたって言及され得るデータ、命令、コマンド、情報、信号、ビット、シンボル、及びチップは、電圧、電流、電磁波、磁界又は磁性粒子、光場又は光学粒子、若しくはそれらの任意の組合せによって表され得る。
【0156】
[0164]本明細書で開示した実施形態に関して説明した様々な例示的な論理ブロック、回路、及びアルゴリズムステップは、電子ハードウェア、コンピュータソフトウェア、又はその両方の組合せとして実装され得る。ハードウェアとソフトウェアのこの互換性を明確に示すために、様々な例示的な構成要素、ブロック、回路、及びステップについて、概してそれらの機能に関して上記で説明した。そのような機能をハードウェアとして実装するか、ソフトウェアとして実装するかは、特定の適用例及び全体的なシステムに課される設計制約に依存する。当業者は、説明した機能を特定の適用例ごとに様々な方法で実装し得るが、そのような実装の決定は、本開示の範囲からの逸脱を生じるものと解釈すべきではない。
【0157】
[0165]本明細書で説明した技術は、ハードウェア、ソフトウェア、ファームウェア、又はそれらの任意の組合せで実装され得る。そのような技法は、汎用コンピュータ、ワイヤレス通信機器ハンドセット、又はワイヤレス通信機器ハンドセット及び他の機器における適用例を含む複数の用途を有する集積回路機器など、様々な機器のいずれかにおいて実装され得る。構成要素として説明した特徴は、集積論理機器に一緒に、又は個別であるが相互運用可能な論理機器として別々に実装され得る。ソフトウェアで実装した場合、本技法は、実行されたとき、上記で説明した方法のうちの1つ又は複数を実行する命令を含むプログラムコードを備えるコンピュータ可読データ記憶媒体によって、少なくとも部分的に実現され得る。コンピュータ可読データ記憶媒体は、パッケージング材料を含むことがあるコンピュータプログラム製品の一部を形成し得る。コンピュータ可読媒体は、同期型ダイナミックランダムアクセスメモリ(SDRAM)などのランダムアクセスメモリ(RAM)、読取り専用メモリ(ROM)、不揮発性ランダムアクセスメモリ(NVRAM)、電気消去可能プログラマブル読取り専用メモリ(EEPROM(登録商標))、フラッシュメモリ、磁気又は光学データ記憶媒体などの、メモリ又はデータ記憶媒体を備え得る。本技法は、追加又は代替として、伝搬信号又は電波など、命令又はデータ構造の形態でプログラムコードを搬送又は伝達し、コンピュータによってアクセスされ、読み取られ、及び/又は実行され得るコンピュータ可読通信媒体によって、少なくとも部分的に実現され得る。
【0158】
[0166]プログラムコードは、1つ又は複数のデジタル信号プロセッサ(DSP)、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブルロジックアレイ(FPGA)、又は他の等価の集積回路又はディスクリート論理回路など、1つ又は複数のプロセッサを含み得るプロセッサによって実行され得る。そのようなプロセッサは、本開示で説明する技法のいずれかを実行するように構成され得る。汎用プロセッサはマイクロプロセッサであり得るが、代替として、プロセッサは、任意の従来のプロセッサ、コントローラ、マイクロコントローラ、又は状態機械であり得る。プロセッサはまた、コンピューティング機器の組合せ、例えば、DSPとマイクロプロセッサとの組合せ、複数のマイクロプロセッサ、DSPコアと連携する1つ又は複数のマイクロプロセッサ、あるいは任意の他のそのような構成として実装され得る。従って、本明細書で使用する「プロセッサ」という用語は、上記の構造、上記の構造の任意の組合せ、又は本明細書で説明する技法の実装に好適な他の構造又は装置のいずれかを指すことがある。更に、幾つかの態様では、本明細書で説明した機能は、符号化及び復号のために構成された専用のソフトウェアもしくはハードウェア内に提供され得、又は複合ビデオエンコーダ/デコーダ(コーデック)に組み込まれ得る。また、本技法は、1つ又は複数の回路又は論理要素中に十分に実装され得る。
【0159】
[0167]本開示の技法は、ワイヤレスハンドセット、集積回路(IC)又はICのセット(例えば、チップセット)を含む、多種多様な機器又は装置で実装され得る。本開示では、開示する技法を実行するように構成された機器の機能的態様を強調するために、様々な構成要素又はユニットについて説明したが、それらの構成要素又はユニットは、必ずしも異なるハードウェアユニットによる実現を必要とするとは限らない。むしろ、上記で説明したように、様々なユニットが、好適なソフトウェア及び/又はファームウェアとともに、上記で説明した1つ又は複数のプロセッサを含めて、コーデックハードウェアユニットにおいて組み合わせられるか、又は相互動作可能なハードウェアユニットの集合によって与えられ得る。
【0160】
[0168]本発明の様々な実施形態について説明した。これら及び他の実施形態は以下の特許請求の範囲内に入る。
以下に本願発明の当初の特許請求の範囲に記載された発明を付記する。
[C1]
マルチレイヤビットストリームのビデオ情報を符号化するための方法であって、
前記ビデオ情報の現在ピクチャが廃棄可能ピクチャであるかどうかを決定することと、
前記現在ピクチャが廃棄可能ピクチャであるという前記決定に基づいて、前記現在ピクチャを参照ピクチャセット(RPS)中に含めることを控えることと
を備える、方法。
[C2]
前記現在ピクチャが廃棄可能ピクチャであるかどうかを前記決定することは、前記現在ピクチャがレイヤ間予測又はインター予測のために使用されるかどうかを決定することを備え、廃棄可能ピクチャが、レイヤ間予測又はインター予測のために使用されないピクチャである、C1に記載の方法。
[C3]
前記現在ピクチャが廃棄可能ピクチャであるかどうかを決定することは、前記現在ピクチャがレイヤ間予測又はインター予測のために使用されるかどうかを示す前記現在ピクチャに関連付けられた廃棄可能値に少なくとも部分的に基づく、C1に記載の方法。
[C4]
前記廃棄可能値が廃棄可能フラグであり、前記廃棄可能フラグは、前記廃棄可能フラグが1に等しい値を有するとき、前記現在ピクチャが廃棄可能ピクチャであることを示す、C3に記載の方法。
[C5]
前記RPSがレイヤ間RPS又は時間RPSを備える、C1に記載の方法。
[C6]
前記RPSに少なくとも部分的に基づいて、前記ビデオ情報を符号化することをさらに備える、C1に記載の方法。
[C7]
マルチレイヤビットストリームのビデオ情報を符号化するための機器であって、
前記ビデオ情報を記憶するように構成されたメモリと、
前記メモリと通信しており、
前記ビデオ情報の現在ピクチャが廃棄可能ピクチャであるかどうかを決定することと、
前記現在ピクチャが廃棄可能ピクチャであるという前記決定に基づいて、前記現在ピクチャを参照ピクチャセット(RPS)中に含めることを控えることと
を行うように構成されたプロセッサと
を備える、機器。
[C8]
前記プロセッサは、前記現在ピクチャがレイヤ間予測又はインター予測のために使用されるかどうかを決定するようにさらに構成され、廃棄可能ピクチャが、レイヤ間予測又はインター予測のために使用されないピクチャである、C7に記載の機器。
[C9]
前記プロセッサは、前記現在ピクチャがレイヤ間予測又はインター予測のために使用されるかどうかを示す前記現在ピクチャに関連付けられた廃棄可能値に少なくとも部分的に基づいて、前記現在ピクチャが廃棄可能ピクチャであるかどうかを決定するようにさらに構成された、C7に記載の機器。
[C10]
前記廃棄可能値が廃棄可能フラグであり、前記廃棄可能フラグは、前記廃棄可能フラグが1に等しい値を有するとき、前記現在ピクチャが廃棄可能ピクチャであることを示す、C9に記載の機器。
[C11]
前記RPSがレイヤ間RPS又は時間RPSを備える、C7に記載の機器。
[C12]
前記プロセッサが、前記RPSに少なくとも部分的に基づいて前記ビデオ情報を符号化するようにさらに構成された、C7に記載の機器。
[C13]
ビデオ情報の現在ピクチャが廃棄可能ピクチャであるかどうかを決定するための手段と、
前記現在ピクチャが廃棄可能ピクチャであるという前記決定に基づいて、前記現在ピクチャを参照ピクチャセット(RPS)中に含めることを控えるための手段と
を備える、装置。
[C14]
前記現在ピクチャが廃棄可能ピクチャであるかどうかを決定するための前記手段が、前記現在ピクチャがレイヤ間予測又はインター予測のために使用されるかどうかを決定するための手段を備え、廃棄可能ピクチャが、レイヤ間予測又はインター予測のために使用されないピクチャである、C13に記載の装置。
[C15]
前記現在ピクチャが廃棄可能ピクチャであるかどうかを決定するための前記手段が、前記現在ピクチャがレイヤ間予測又はインター予測のために使用されるかどうかを示す前記現在ピクチャに関連付けられた廃棄可能値を決定するための手段を備える、C13に記載の装置。
[C16]
前記廃棄可能値が廃棄可能フラグであり、前記廃棄可能フラグは、前記廃棄可能フラグが1に等しい値を有するとき、前記現在ピクチャが廃棄可能ピクチャであることを示す、C15に記載の装置。
[C17]
前記RPSがレイヤ間RPS又は時間RPSを備える、C13に記載の装置。
[C18]
前記RPSに少なくとも部分的に基づいて前記ビデオ情報を符号化するための手段をさらに備える、C13に記載の装置。
[C19]
実行されたとき、機器のプロセッサに、
ビデオ情報の現在ピクチャが廃棄可能ピクチャであるかどうかを決定することと、
前記現在ピクチャが廃棄可能ピクチャであるという前記決定に基づいて、前記現在ピクチャを参照ピクチャセット(RPS)中に含めることを控えることと
を行わせる命令を記憶した非一時的コンピュータ可読記憶媒体。
[C20]
実行されたとき、前記プロセッサに、前記現在ピクチャがレイヤ間予測又はインター予測のために使用されるかどうかを決定させる命令をさらに記憶した、廃棄可能ピクチャが、レイヤ間予測又はインター予測のために使用されないピクチャである、C19に記載の非一時的コンピュータ可読記憶媒体。
[C21]
実行されたとき、前記プロセッサに、前記現在ピクチャがレイヤ間予測又はインター予測のために使用されるかどうかを示す前記現在ピクチャに関連付けられた廃棄可能値を決定させる命令をさらに記憶した、C19に記載の非一時的コンピュータ可読記憶媒体。
[C22]
前記廃棄可能値が廃棄可能フラグであり、前記廃棄可能フラグは、前記廃棄可能フラグが1に等しい値を有するとき、前記現在ピクチャが廃棄可能ピクチャであることを示す、C21に記載の非一時的コンピュータ可読記憶媒体。
[C23]
前記RPSがレイヤ間RPS又は時間RPSを備える、C19に記載の非一時的コンピュータ可読記憶媒体。
[C24]
実行されたとき、前記プロセッサに、前記RPSに少なくとも部分的に基づいて前記ビデオ情報を符号化させる命令をさらに記憶した、C19に記載の非一時的コンピュータ可読記憶媒体。