【文献】
Jianle Chen et al.,Description of scalable video coding technology proposal by Qualcomm (configuration 2),Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11,11th Meeting: Shanghai, CN,2012年10月,JCTVC-K0036,pp.1-21
【文献】
Xiang Li et al.,TE3: Results of Test 4.6.2.1 on Generalized Residual Prediction,Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,12th Meeting: Geneva, CH,2013年 1月,JCTVC-L0078,pp.1-8
【文献】
Edouard Francois et al.,Non-TE3: Simplification of Generalized Residual Inter-Layer Prediction (GRILP),Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,12th Meeting: Geneva, CH,2013年 1月,JCTVC-L0104r1,pp.1-5
【文献】
Christophe Gisquet et al.,Combination of several interlayer tools,Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,12th Meeting: Geneva, CH,2013年 1月,JCTVC-L0108_r2,pp.1-6
【文献】
Takeshi Tsukuba et al.,SCE3: Results of test 3.6 on Generalized Residual Prediction with shorter-tap MC filter,Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,13th Meeting: Incheon, KR,2013年 4月,JCTVC-M0073,pp.1-7
【文献】
Xiang Li et al.,SCE3: Results of Test 3.3 on Generalized Residual Prediction,Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,13th Meeting: Incheon, KR,2013年 4月,JCTVC-M0260,pp.1-7
【文献】
Xiang Li et al.,Non-SCE3: Simplified Generalized Residual Prediction,Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,13th Meeting: Incheon, KR,2013年 4月,JCTVC-M0275,pp.1-4
(58)【調査した分野】(Int.Cl.,DB名)
前記プロセッサが、4タップアップサンプリングフィルタを使用して前記ベースレイヤ参照ブロックをアップサンプリングし、双一次補間フィルタを使用して前記動き補償補間を実行するように構成された、請求項1に記載の装置。
前記プロセッサが、前記ベースレイヤ参照ブロックをアップサンプリングし、単一の5タップ合成アップサンプリング及び動き補償補間フィルタを適用することによって前記動き補償補間を実行するように構成された、請求項1に記載の装置。
前記合成アップサンプリング及び動き補償補間フィルタが前記拡張レイヤブロックのルーマ成分とクロマ成分の両方について16個の位相を有する、請求項3に記載の装置。
前記プロセッサが、平滑化、アップサンプリング、又は他のレイヤ間フィルタ処理を実行するために、3タップ平滑化フィルタと3タップアップサンプリングフィルタと3タップレイヤ間フィルタとのうちの少なくとも1つを使用するように更に構成された、請求項1に記載の装置。
前記アップサンプリングすることと前記動き補償補間とが、単一の5タップ合成アップサンプリング及び動き補償補間フィルタを適用することによって一緒に実行される、請求項7に記載の方法。
平滑化、アップサンプリング、又は他のレイヤ間フィルタ処理を実行するために、3タップ平滑化フィルタと3タップアップサンプリングフィルタと3タップレイヤ間フィルタとのうちの少なくとも1つを使用することを更に備える、請求項7に記載の方法。
【発明を実施するための形態】
【0017】
[0031]本明細書で説明する幾つかの実施形態は、HEVC(高効率ビデオコード化)など、アドバンストビデオコーデックのコンテキストにおけるスケーラブルビデオコード化のためのレイヤ間予測に関する。より詳細には、本開示は、HEVCのスケーラブルビデオコード化(SVC)拡張におけるレイヤ間予測の性能の改善のためのシステム及び方法に関する。
【0018】
[0032]以下の説明では、幾つかの実施形態に関係するH.264/AVC技法について説明し、HEVC規格及び関係する技法についても説明する。幾つかの実施形態について、HEVC及び/又はH.264規格のコンテキストにおいて本明細書で説明するが、本明細書で開示するシステム及び方法が任意の好適なビデオコード化規格に適用可能であり得ることを、当業者は諒解されよう。例えば、本明細書で開示する実施形態は、以下の規格、即ち、ITU−T H.261、ISO/IEC MPEG−1 Visual、ITU−T H.262又はISO/IEC MPEG−2 Visual、ITU−T H.263、ISO/IEC MPEG−4 Visual、及びそれのスケーラブルビデオコード化(SVC)拡張とマルチビュービデオコード化(MVC)拡張とを含む、(ISO/IEC MPEG−4 AVCとしても知られる)ITU−T H.264のうちの1つ又は複数に適用可能であり得る。
【0019】
[0033]単に説明の目的で、本明細書で開示する幾つかの実施形態について、ただ2つのレイヤ(例えば、ベースレイヤなどの下位レベルレイヤ、及び拡張レイヤなどの上位レベルレイヤ)を含む例を用いて説明する。そのような例は、複数のベースレイヤ及び/又は拡張レイヤを含む構成に適用可能であり得ることを理解されたい。更に、説明を簡単にするために、以下の開示は、幾つかの実施形態に関して「フレーム」又は「ブロック」という用語を含む。但し、これらの用語は限定的なものではない。例えば、以下で説明する技法は、ブロック(例えば、CU、PU、TU、マクロブロックなど)、スライス、フレームなど、任意の好適なビデオ単位とともに使用され得る。
【0020】
[0034]HEVCは、概して、多くの点で、前のビデオコード化規格のフレームワークに従う。HEVCにおける予測単位は、幾つかの前のビデオコード化規格における単位(例えば、マクロブロック)とは異なる。事実上、マクロブロックの概念は、幾つかの前のビデオコード化規格において理解されているように、HEVC中に存在しない。マクロブロックは、考えられる利益の中でも、高いフレキシビリティを与え得る、4分木方式に基づく階層構造と置き換えられ得る。例えば、HEVC方式内で、3つのタイプのブロック、コード化単位(CU:Coding Unit)、予測単位(PU:Prediction Unit)、及び変換単位(TU:Transform Unit)が定義される。CUは領域分割の基本単位を指し得る。CUはマクロブロックの概念に類似すると見なされ得るが、それは、最大サイズを制限せず、コンテンツ適応性を改善するために4つの等しいサイズのCUへの再帰的分割を可能にし得る。PUはインター/イントラ予測の基本単位と見なされ得、それは、不規則な画像パターンを効果的にコード化するために、単一のPU中に複数の任意の形状区分を含んでいることがある。TUは変換の基本単位と見なされ得る。それは、PUとは無関係に定義され得るが、それのサイズは、TUが属するCUに制限され得る。3つの異なる概念へのブロック構造のこの分離は、各々がそれの役割に従って最適化されることを可能にし得、それによりコード化効率が改善され得る。
【0021】
ビデオコード化規格
[0035]ビデオ画像、TV画像、静止画像、又はビデオレコーダ又はコンピュータによって生成された画像など、デジタル画像は、水平ライン及び垂直ラインで構成された画素又はサンプルからなり得る。単一の画像中の画素の数は一般に数万個である。各画素は、一般に、ルミナンス情報とクロミナンス情報とを含んでいる。圧縮なしに、画像エンコーダから画像デコーダに搬送されるべき情報の量は、リアルタイム画像送信を不可能にするほど非常に大きい。送信されるべき情報の量を低減するために、JPEG、MPEG及びH.263規格など、幾つかの異なる圧縮方法が開発された。
【0022】
[0036]ビデオコード化規格は、ITU−T H.261、ISO/IEC MPEG−1 Visual、ITU−T H.262又はISO/IEC MPEG−2 Visual、ITU−T H.263、ISO/IEC MPEG−4 Visual、及びそれのスケーラブルビデオコード化(SVC)拡張とマルチビュービデオコード化(MVC)拡張とを含む、(ISO/IEC MPEG−4 AVCとしても知られる)ITU−T H.264を含み、その全ての全体が参照により組み込まれる。
【0023】
[0037]更に、新しいビデオコード化規格、即ち、高効率ビデオコード化(HEVC)が、ITU−Tビデオコード化専門家グループ(VCEG:Video Coding Experts Group)とISO/IECモーションピクチャ専門家グループ(MPEG:Motion Picture Experts Group)とのジョイントコラボレーションチームオンビデオコード化(JCT−VC:Joint Collaboration Team on Video Coding)によって開発されている。HEVCの最近のドラフトは、2013年11月22日現在、http://phenix.it-sudparis.eu/jct/doc_end_user/documents/12_Geneva/wg11/JCTVC-L1003-v34.zipから利用可能であり、その全体が参照により組み込まれる。HEVCドラフト10についての完全引用は、文書JJCTVC−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日である。
【0024】
[0038]添付の図面を参照しながら新規のシステム、装置、及び方法の様々な態様について以下でより十分に説明する。但し、本開示は、多くの異なる形態で実施され得、本開示全体にわたって提示する任意の特定の構造又は機能に限定されるものと解釈されるべきではない。むしろ、これらの態様は、本開示が周到で完全になり、本開示の範囲を当業者に十分に伝えるように与えられる。本明細書の教示に基づいて、本開示の範囲は、本発明の他の態様とは無関係に実装されるにせよ、本発明の他の態様と組み合わされるにせよ、本明細書で開示する新規のシステム、装置、及び方法のいかなる態様をもカバーするものであることを、当業者なら諒解されたい。例えば、本明細書に記載の態様をいくつ使用しても、装置は実装され得、又は方法は実施され得る。更に、本発明の範囲は、本明細書に記載の本発明の様々な態様に加えて又はそれらの態様以外に、他の構造、機能、又は構造及び機能を使用して実施されるそのような装置又は方法をカバーするものとする。本明細書で開示する任意の態様が請求項の1つ又は複数の要素によって実施され得ることを理解されたい。
【0025】
[0039]本明細書では特定の態様について説明するが、これらの態様の多くの変形及び置換は本開示の範囲内に入る。好適な態様の幾つかの利益及び利点について説明するが、本開示の範囲は特定の利益、使用、又は目的に限定されるものではない。むしろ、本開示の態様は、様々なワイヤレス技術、システム構成、ネットワーク、及び伝送プロトコルに広く適用可能であるものとし、それらの幾つかを例として、図及び好適な態様についての以下の説明において示す。発明を実施するための形態及び図面は、本開示を限定するものではなく説明するものにすぎず、本開示の範囲は添付の特許請求の範囲及びそれの均等物によって定義される。
【0026】
[0040]添付の図面は例を示している。添付の図面中の参照番号によって示される要素は、以下の説明における同様の参照番号によって示される要素に対応する。
【0027】
ビデオコード化システム
[0041]
図1は、本開示で説明する態様による技法を利用し得る例示的なビデオコード化システム10を示すブロック図である。本明細書で使用し説明する「ビデオコーダ」という用語は、総称的にビデオエンコーダとビデオデコーダの両方を指す。本開示では、「ビデオコード化」又は「コード化」という用語は、ビデオ符号化とビデオ復号とを総称的に指すことがある。
【0028】
[0042]
図1に示されているように、ビデオコード化システム10は、発信源機器12と宛先機器14とを含む。発信源機器12は符号化ビデオデータを生成する。宛先機器14は、発信源機器12によって生成された符号化ビデオデータを復号し得る。発信源機器12及び宛先機器14は、デスクトップコンピュータ、ノートブック(例えば、ラップトップなど)コンピュータ、タブレットコンピュータ、セットトップボックス、所謂「スマート」フォン、所謂「スマート」パッドなどの電話ハンドセット、テレビジョン、カメラ、表示装置、デジタルメディアプレーヤ、ビデオゲームコンソール、車内コンピュータなどを含む、広範囲にわたる機器を備え得る。幾つかの例では、発信源機器12及び宛先機器14は、ワイヤレス通信のために装備され得る。
【0029】
[0043]宛先機器14は、チャネル16を介して発信源機器12から符号化ビデオデータを受信し得る。チャネル16は、発信源機器12から宛先機器14に符号化ビデオデータを移動することが可能な任意のタイプの媒体又は機器を備え得る。一例では、チャネル16は、発信源機器12が符号化ビデオデータを宛先機器14にリアルタイムで直接送信することを可能にする通信媒体を備え得る。この例では、発信源機器12は、ワイヤレス通信プロトコルなどの通信規格に従って符号化ビデオデータを変調し得、変調されたビデオデータを宛先機器14に送信し得る。通信媒体は、無線周波数(RF)スペクトル又は1つ又は複数の物理伝送線路など、ワイヤレス通信媒体又はワイヤード通信媒体を備え得る。通信媒体は、ローカルエリアネットワーク、ワイドエリアネットワーク、又はインターネットなどのグローバルネットワークなど、パケットベースネットワークの一部を形成し得る。通信媒体は、発信源機器12から宛先機器14への通信を可能にするルータ、スイッチ、基地局、又は他の機器を含み得る。
【0030】
[0044]別の例では、チャネル16は、発信源機器12によって生成された符号化ビデオデータを記憶する記憶媒体に対応し得る。この例では、宛先機器14は、ディスクアクセス又はカードアクセスを介して記憶媒体にアクセスし得る。記憶媒体は、Blu−ray(登録商標)ディスク、DVD、CD−ROM、フラッシュメモリ、又は符号化ビデオデータを記憶するための他の適切なデジタル記憶媒体など、様々なローカルにアクセスされるデータ記憶媒体を含み得る。更なる例では、チャネル16は、発信源機器12によって生成された符号化ビデオを記憶する、ファイルサーバ又は別の中間記憶機器を含み得る。この例では、宛先機器14は、ストリーミング又はダウンロードを介して、ファイルサーバ又は他の中間記憶装置に記憶された符号化ビデオデータにアクセスし得る。ファイルサーバは、符号化ビデオデータを記憶することと、符号化ビデオデータを宛先機器14に送信することとが可能なタイプのサーバであり得る。例示的なファイルサーバとしては、(例えば、ウェブサイトなどのための)ウェブサーバ、FTPサーバ、ネットワーク接続記憶(NAS)装置、及びローカルディスクドライブがある。宛先機器14は、インターネット接続を含む、任意の標準のデータ接続を介して符号化ビデオデータにアクセスし得る。例示的なタイプのデータ接続としては、ファイルサーバに記憶された符号化ビデオデータにアクセスするのに好適である、ワイヤレスチャネル(例えば、Wi−Fi(登録商標)接続など)、有線接続(例えば、DSL、ケーブルモデムなど)、又はその両方の組合せがあり得る。ファイルサーバからの符号化ビデオデータの送信は、ストリーミング送信、ダウンロード送信、又はその両方の組合せであり得る。
【0031】
[0045]本開示の技法はワイヤレス適用例又は設定に限定されない。本技法は、無線テレビジョン放送、ケーブルテレビジョン送信、衛星テレビジョン送信、例えばインターネットを介したストリーミングビデオ送信(例えば、動的適応ストリーミングオーバーHTTP(DASH:dynamic adaptive streaming over HTTP)など)、データ記憶媒体に記憶するためのデジタルビデオの符号化、データ記憶媒体に記憶されたデジタルビデオの復号、又は他の適用例など、様々なマルチメディア適用例のいずれかをサポートするビデオコード化に適用され得る。幾つかの例では、ビデオコード化システム10は、ビデオストリーミング、ビデオ再生、ビデオブロードキャスティング、及び/又はビデオテレフォニーなどの適用例をサポートするために、一方向又は双方向のビデオ送信をサポートするように構成され得る。
【0032】
[0046]
図1の例では、発信源機器12は、ビデオ発信源18と、ビデオエンコーダ20と、出力インターフェース22とを含む。場合によっては、出力インターフェース22は変調器/復調器(モデム)及び/又は送信機を含み得る。発信源機器12において、ビデオ発信源18は、撮像装置、例えば、ビデオカメラ、以前に撮影されたビデオデータを含んでいるビデオアーカイブ、ビデオコンテンツプロバイダからビデオデータを受信するためのビデオフィードインターフェース、及び/又はビデオデータを生成するためのコンピュータグラフィックスシステムなどの発信源、又はそのような発信源の組合せを含み得る。
【0033】
[0047]ビデオエンコーダ20は、撮影されたビデオデータ、以前に撮影されたビデオデータ、又はコンピュータ生成されたビデオデータを符号化するように構成され得る。符号化ビデオデータは、発信源機器12の出力インターフェース22を介して宛先機器14に直接送信され得る。符号化ビデオデータはまた、復号及び/又は再生のための宛先機器14による後のアクセスのために記憶媒体又はファイルサーバ上に記憶され得る。
【0034】
[0048]
図1の例では、宛先機器14は、入力インターフェース28と、ビデオデコーダ30と、表示装置32とを含む。場合によっては、入力インターフェース28は受信機及び/又はモデムを含み得る。宛先機器14の入力インターフェース28は、チャネル16を介して符号化ビデオデータを受信する。符号化ビデオデータは、ビデオデータを表す、ビデオエンコーダ20によって生成された様々なシンタックス要素を含み得る。シンタックス要素は、ブロック及び他のコード化単位、例えば、グループオブピクチャ(GOP:group of pictures)の特性及び/又は処理を記述し得る。そのようなシンタックス要素は、通信媒体上で送信されるか、記憶媒体上に記憶されるか、又はファイルサーバ上に記憶される符号化ビデオデータとともに含まれ得る。
【0035】
[0049]表示装置32は、宛先機器14と一体化され得るか又はその外部にあり得る。幾つかの例では、宛先機器14は、一体型表示装置を含み得、また、外部表示装置とインターフェースするように構成され得る。他の例では、宛先機器14は表示装置であり得る。概して、表示装置32は復号ビデオデータをユーザに表示する。表示装置32は、液晶表示器(LCD)、プラズマ表示器、有機発光ダイオード(OLED)表示器、又は別のタイプの表示装置など、様々な表示装置のいずれかを備え得る。
【0036】
[0050]ビデオエンコーダ20及びビデオデコーダ30は、現在開発中の高効率ビデオコード化(HEVC)規格など、ビデオ圧縮規格に従って動作し得、HEVCテストモデル(HM)に準拠し得る。代替的に、ビデオエンコーダ20及びビデオデコーダ30は、代替的にMPEG−4,Part10,先進ビデオコード化(AVC)と呼ばれるITU−T H.264規格など、他のプロプライエタリ規格又は業界規格、又はそのような規格の拡張に従って動作し得る。但し、本開示の技法は、いかなる特定のコード化規格にも限定されない。ビデオ圧縮規格の他の例としてはMPEG−2及びITU−T H.263がある。
【0037】
[0051]
図1の例には示されていないが、ビデオエンコーダ20及びビデオデコーダ30は、それぞれオーディオエンコーダ及びデコーダと統合され得、適切なMUX−DEMUXユニット、又は他のハードウェア及びソフトウェアを含んで、共通のデータストリーム又は別個のデータストリーム中のオーディオとビデオの両方の符号化を処理し得る。適用可能な場合、幾つかの例では、MUX−DEMUXユニットは、ITU H.223マルチプレクサプロトコル、又はユーザデータグラムプロトコル(UDP:user datagram protocol)などの他のプロトコルに準拠し得る。
【0038】
[0052]この場合も、
図1は一例にすぎず、本開示の技法は、符号化機器と復号機器との間のデータ通信を必ずしも含むとは限らないビデオコード化設定(例えば、ビデオ符号化又はビデオ復号)に適用され得る。他の例では、データがローカルメモリから取り出されること、ネットワークを介してストリーミングされることなどが行われ得る。符号化機器は、データを符号化し、メモリに記憶し得、及び/又は、復号機器は、メモリからデータを取り出し、復号し得る。多くの例では、符号化及び復号は、互いに通信しないが、メモリにデータを符号化し、及び/又はメモリからデータを取り出して復号するだけである機器によって実行される。
【0039】
[0053]ビデオエンコーダ20及びビデオデコーダ30はそれぞれ、1つ又は複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ディスクリート論理回路、ハードウェアなど、様々な好適な回路のいずれか、又はそれらの任意の組合せとして実装され得る。本技法が部分的にソフトウェアで実装されるとき、機器は、好適な非一時的コンピュータ可読記憶媒体にソフトウェアの命令を記憶し得、1つ又は複数のプロセッサを使用してその命令をハードウェアで実行して、本開示の技法を実行し得る。ビデオエンコーダ20及びビデオデコーダ30の各々は1つ又は複数のエンコーダ又はデコーダ中に含まれ得、そのいずれも、それぞれの機器において複合エンコーダ/デコーダ(コーデック)の一部として統合され得る。ビデオエンコーダ20及び/又はビデオデコーダ30を含む機器は、集積回路、マイクロプロセッサ、及び/又はセルラー電話などのワイヤレス通信機器を備え得る。
【0040】
[0054]上記で手短に述べたように、ビデオエンコーダ20はビデオデータを符号化する。ビデオデータは1つ又は複数のピクチャを備え得る。ピクチャの各々は、ビデオの一部を形成する静止画像である。幾つかの事例では、ピクチャはビデオ「フレーム」と呼ばれることがある。ビデオエンコーダ20がビデオデータを符号化するとき、ビデオエンコーダ20はビットストリームを生成し得る。ビットストリームは、ビデオデータのコード化表現を形成するビットのシーケンスを含み得る。ビットストリームはコード化ピクチャと関連データとを含み得る。コード化ピクチャはピクチャのコード化表現である。
【0041】
[0055]ビットストリームを生成するために、ビデオエンコーダ20は、ビデオデータ中の各ピクチャに対して符号化演算を実行し得る。ビデオエンコーダ20がピクチャに対して符号化演算を実行するとき、ビデオエンコーダ20は、一連のコード化ピクチャと関連データとを生成し得る。関連データは、ビデオパラメータセット(VPS)と、シーケンスパラメータセットと、ピクチャパラメータセットと、適応パラメータセットと、他のシンタックス構造とを含み得る。シーケンスパラメータセット(SPS:sequence parameter set)は、ピクチャの0個以上のシーケンスに適用可能なパラメータを含んでいることがある。ピクチャパラメータセット(PPS:picture parameter set)は、0個以上のピクチャに適用可能なパラメータを含み得る。適応パラメータセット(APS:adaptation parameter set)は、0個以上のピクチャに適用可能なパラメータを含み得る。APS中のパラメータは、PPS中のパラメータよりも変化する可能性が高いパラメータであり得る。
【0042】
[0056]コード化ピクチャを生成するために、ビデオエンコーダ20は、ピクチャを等しいサイズのビデオブロックに区分し得る。ビデオブロックはサンプルの2次元アレイであり得る。ビデオブロックの各々はツリーブロックに関連付けられる。幾つかの事例では、ツリーブロックは、最大コード化単位(LCU:largest coding unit)と呼ばれることがある。HEVCのツリーブロックは、H.264/AVCなど、以前の規格のマクロブロックに広い意味で類似し得る。しかしながら、ツリーブロックは、必ずしも特定のサイズに限定されるとは限らず、1つ又は複数のコード化単位(CU)を含み得る。ビデオエンコーダ20は、4分木区分(quadtree partitioning)を使用して、ツリーブロックのビデオブロックを、CUに関連付けられたビデオブロックに区分し得、従って「ツリーブロック」という名前がある。
【0043】
[0057]幾つかの例では、ビデオエンコーダ20はピクチャを複数のスライスに区分し得る。スライスの各々は整数個のCUを含み得る。幾つかの事例では、スライスは整数個のツリーブロックを備える。他の事例では、スライスの境界はツリーブロック内にあり得る。
【0044】
[0058]ピクチャに対して符号化演算を実行することの一部として、ビデオエンコーダ20は、ピクチャの各スライスに対して符号化演算を実行し得る。ビデオエンコーダ20がスライスに対して符号化演算を実行するとき、ビデオエンコーダ20は、スライスに関連付けられた符号化データを生成し得る。スライスに関連付けられた符号化データは「コード化スライス」と呼ばれることがある。
【0045】
[0059]コード化スライスを生成するために、ビデオエンコーダ20は、スライス中の各ツリーブロックに対して符号化演算を実行し得る。ビデオエンコーダ20がツリーブロックに対して符号化演算を実行するとき、ビデオエンコーダ20はコード化ツリーブロックを生成し得る。コード化ツリーブロックは、ツリーブロックの符号化バージョンを表すデータを備え得る。
【0046】
[0060]ビデオエンコーダ20がコード化スライスを生成するとき、ビデオエンコーダ20は、ラスタ走査順序に従って、スライス中のツリーブロックに対して符号化演算を実行し得る(例えば、そのツリーブロックを符号化し得る)。例えば、ビデオエンコーダ20は、スライス中のツリーブロックの一番上の行にわたって左から右に進み、次いでツリーブロックの次の下の行にわたって左から右に進み、以下同様に進む順序で、ビデオエンコーダ20がスライス中のツリーブロックの各々を符号化するまで、スライスのツリーブロックを符号化し得る。
【0047】
[0061]ラスタ走査順序に従ってツリーブロックを符号化した結果として、所与のツリーブロックの上及び左のツリーブロックは符号化されていることがあるが、所与のツリーブロックの下及び右のツリーブロックはまだ符号化されていない。従って、ビデオエンコーダ20は、所与のツリーブロックを符号化するとき、所与のツリーブロックの上及び左のツリーブロックを符号化することによって生成された情報にアクセスすることが可能であり得る。しかしながら、ビデオエンコーダ20は、所与のツリーブロックを符号化するとき、所与のツリーブロックの下及び右のツリーブロックを符号化することによって生成された情報にアクセスすることができないことがある。
【0048】
[0062]コード化ツリーブロックを生成するために、ビデオエンコーダ20は、ツリーブロックのビデオブロックに対して4分木区分を再帰的に実行して、ビデオブロックを徐々により小さいビデオブロックに分割し得る。より小さいビデオブロックの各々は異なるCUに関連付けられ得る。例えば、ビデオエンコーダ20は、ツリーブロックのビデオブロックを4つの等しいサイズのサブブロックに区分し、サブブロックのうちの1つ又は複数を、4つの等しいサイズのサブサブブロックに区分し得、以下同様である。区分されたCUは、それのビデオブロックが、他のCUに関連付けられたビデオブロックに区分された、CUであり得る。区分されていないCUは、それのビデオブロックが、他のCUに関連付けられたビデオブロックに区分されていない、CUであり得る。
【0049】
[0063]ビットストリーム中の1つ又は複数のシンタックス要素は、ビデオエンコーダ20がツリーブロックのビデオブロックを区分し得る最大の回数を示し得る。CUのビデオブロックは形状が正方形であり得る。CUのビデオブロックのサイズ(例えば、CUのサイズ)は、8×8画素から、最大64×64以上の画素をもつツリーブロックのビデオブロックのサイズ(例えば、ツリーブロックのサイズ)までに及び得る。
【0050】
[0064]ビデオエンコーダ20は、z走査順序に従って、ツリーブロックの各CUに対して符号化演算を実行し得る(例えば、各CUを符号化し得る)。言い換えれば、ビデオエンコーダ20は、左上のCUと、右上のCUと、左下のCUと、次いで右下のCUとを、その順序で符号化し得る。ビデオエンコーダ20が、区分されたCUに対して符号化演算を実行するとき、ビデオエンコーダ20は、z走査順序に従って、区分されたCUのビデオブロックのサブブロックに関連付けられたCUを符号化し得る。言い換えれば、ビデオエンコーダ20は、左上のサブブロックに関連付けられたCUと、右上のサブブロックに関連付けられたCUと、左下のサブブロックに関連付けられたCUと、次いで右下のサブブロックに関連付けられたCUとを、その順序で符号化し得る。
【0051】
[0065]z走査順序に従ってツリーブロックのCUを符号化した結果として、所与のCUの上、左上、右上、左、及び左下のCUは符号化されていることがある。所与のCUの下及び右のCUはまだ符号化されていない。従って、ビデオエンコーダ20は、所与のCUを符号化するとき、所与のCUに隣接する幾つかのCUを符号化することによって生成された情報にアクセスすることが可能であり得る。しかしながら、ビデオエンコーダ20は、所与のCUを符号化するとき、所与のCUに隣接する他のCUを符号化することによって生成された情報にアクセスすることができないことがある。
【0052】
[0066]ビデオエンコーダ20が、区分されていないCUを符号化するとき、ビデオエンコーダ20は、CUのために1つ又は複数の予測単位(PU)を生成し得る。CUのPUの各々は、CUのビデオブロック内の異なるビデオブロックに関連付けられ得る。ビデオエンコーダ20は、CUの各PUのための予測ビデオブロックを生成し得る。PUの予測ビデオブロックはサンプルのブロックであり得る。ビデオエンコーダ20は、イントラ予測又はインター予測を使用して、PUのための予測ビデオブロックを生成し得る。
【0053】
[0067]ビデオエンコーダ20がイントラ予測を使用してPUの予測ビデオブロックを生成するとき、ビデオエンコーダ20は、PUに関連付けられたピクチャの復号サンプルに基づいて、PUの予測ビデオブロックを生成し得る。ビデオエンコーダ20がイントラ予測を使用してCUのPUの予測ビデオブロックを生成する場合、CUはイントラ予測されたCUである。ビデオエンコーダ20がインター予測を使用してPUの予測ビデオブロックを生成するとき、ビデオエンコーダ20は、PUに関連付けられたピクチャ以外の1つ又は複数のピクチャの復号サンプルに基づいて、PUの予測ビデオブロックを生成し得る。ビデオエンコーダ20がインター予測を使用してCUのPUの予測ビデオブロックを生成する場合、CUはインター予測されたCUである。
【0054】
[0068]更に、ビデオエンコーダ20がインター予測を使用してPUのための予測ビデオブロックを生成するとき、ビデオエンコーダ20はPUの動き情報を生成し得る。PUの動き情報は、PUの1つ又は複数の参照ブロックを示し得る。PUの各参照ブロックは参照ピクチャ内のビデオブロックであり得る。参照ピクチャはPUに関連付けられたピクチャ以外のピクチャであり得る。幾つかの事例では、PUの参照ブロックはPUの「参照サンプル」と呼ばれることもある。ビデオエンコーダ20は、PUの参照ブロックに基づいて、PUのための予測ビデオブロックを生成し得る。
【0055】
[0069]ビデオエンコーダ20がCUの1つ又は複数のPUのための予測ビデオブロックを生成した後、ビデオエンコーダ20は、CUのPUのための予測ビデオブロックに基づいて、CUの残差データを生成し得る。CUの残差データは、CUのPUのための予測ビデオブロック中のサンプルと、CUの元のビデオブロック中のサンプルとの間の差を示し得る。
【0056】
[0070]更に、区分されていないCUに対して符号化演算を実行することの一部として、ビデオエンコーダ20は、CUの残差データに対して再帰的な4分木区分を実行して、CUの残差データを、CUの変換単位(TU)に関連付けられた残差データの1つ又は複数のブロック(例えば、残差ビデオブロック)に区分し得る。CUの各TUは異なる残差ビデオブロックに関連付けられ得る。
【0057】
[0071]ビデオコーダ20は、TUに関連付けられた残差ビデオブロックに1つ又は複数の変換を適用して、TUに関連付けられた変換係数ブロック(例えば、変換係数のブロック)を生成し得る。概念的に、変換係数ブロックは変換係数の2次元(2D)行列であり得る。
【0058】
[0072]変換係数ブロックを生成した後、ビデオエンコーダ20は、変換係数ブロックに対して量子化プロセスを実行し得る。量子化は、概して、変換係数を表すために使用されるデータの量をできるだけ低減するために変換係数が量子化され、更なる圧縮を実現する処理を指す。量子化プロセスは、変換係数の一部又は全部に関連付けられたビット深度を低減し得る。例えば、量子化中にnビットの変換係数がmビットの変換係数に切り捨てられることがあり、ここで、nはmよりも大きい。
【0059】
[0073]ビデオエンコーダ20は、各CUを量子化パラメータ(QP:quantization parameter)値に関連付け得る。CUに関連付けられたQP値は、ビデオエンコーダ20が、CUに関連付けられた変換係数ブロックをどのように量子化するかを決定し得る。ビデオエンコーダ20は、CUに関連付けられたQP値を調整することによって、CUに関連付けられた変換係数ブロックに適用される量子化の程度を調整し得る。
【0060】
[0074]ビデオエンコーダ20が変換係数ブロックを量子化した後、ビデオエンコーダ20は、量子化された変換係数ブロック中で変換係数を表すシンタックス要素のセットを生成し得る。ビデオエンコーダ20は、これらのシンタックス要素のうちの幾つかに、コンテキスト適応型バイナリ算術コード化(CABAC:Context Adaptive Binary Arithmetic Coding)演算などのエントロピー符号化演算を適用し得る。コンテンツ適応型可変長コード化(CAVLC:content adaptive variable length coding)、確率間隔区分エントロピー(PIPE:probability interval partitioning entropy)コード化、又は他のバイナリ算術コード化など、他のエントロピーコード化技法も使用され得る。
【0061】
[0075]ビデオエンコーダ20によって生成されるビットストリームは、一連のネットワークアブストラクションレイヤ(NAL:Network Abstraction Layer)単位を含み得る。NAL単位の各々は、NAL単位中のデータのタイプの指示と、データを含んでいるバイトとを含んでいるシンタックス構造であり得る。例えば、NAL単位は、ビデオパラメータセット、シーケンスパラメータセット、ピクチャパラメータセット、コード化スライス、補足拡張情報(SEI:supplemental enhancement information)、アクセス単位区切り文字、フィラーデータ、又は別のタイプのデータを表すデータを含み得る。NAL単位中のデータは様々なシンタックス構造を含み得る。
【0062】
[0076]ビデオデコーダ30は、ビデオエンコーダ20によって生成されたビットストリームを受信し得る。ビットストリームは、ビデオエンコーダ20によって符号化されたビデオデータのコード化表現を含み得る。ビデオデコーダ30がビットストリームを受信するとき、ビデオデコーダ30は、ビットストリームに対して構文解析演算を実行し得る。ビデオデコーダ30が構文解析演算を実行するとき、ビデオデコーダ30は、ビットストリームからシンタックス要素を抽出し得る。ビデオデコーダ30は、ビットストリームから抽出されたシンタックス要素に基づいて、ビデオデータのピクチャを再構成し得る。シンタックス要素に基づいてビデオデータを再構成するためのプロセスは、一般に、シンタックス要素を生成するためにビデオエンコーダ20によって実行されるプロセスとは逆であり得る。
【0063】
[0077]ビデオデコーダ30がCUに関連付けられたシンタックス要素を抽出した後、ビデオデコーダ30は、シンタックス要素に基づいて、CUのPUのための予測ビデオブロックを生成し得る。更に、ビデオデコーダ30は、CUのTUに関連付けられた変換係数ブロックを逆量子化し得る。ビデオデコーダ30は、変換係数ブロックに対して逆変換を実行して、CUのTUに関連付けられた残差ビデオブロックを再構成し得る。予測ビデオブロックを生成し、残差ビデオブロックを再構成した後、ビデオデコーダ30は、予測ビデオブロックと残差ビデオブロックとに基づいて、CUのビデオブロックを再構成し得る。このようにして、ビデオデコーダ30は、ビットストリーム中のシンタックス要素に基づいて、CUのビデオブロックを再構成し得る。
【0064】
ビデオエンコーダ
[0078]
図2は、本開示で説明する態様による技法を実装し得るビデオエンコーダの一例を示すブロック図である。ビデオエンコーダ20は、本開示の技法のいずれか又は全てを実行するように構成され得る。一例として、予測ユニット100は、本開示で説明する技法のいずれか又は全てを実行するように構成され得る。別の実施形態では、ビデオエンコーダ20は、本開示で説明する技法のいずれか又は全てを実行するように構成された随意のレイヤ間予測ユニット128を含む。他の実施形態では、レイヤ間予測は予測ユニット100(例えば、インター予測ユニット121及び/又はイントラ予測ユニット126)によって実行され得、その場合、レイヤ間予測ユニット128は省略され得る。但し、本開示の態様はそのように限定されない。幾つかの例では、本開示で説明する技法は、ビデオエンコーダ20の様々な構成要素間で共有され得る。幾つかの例では、追加として又は代わりに、プロセッサ(図示せず)が、本開示で説明する技法のいずれか又は全てを実行するように構成され得る。
【0065】
[0079]説明の目的で、本開示では、HEVCコード化のコンテキストにおいてビデオエンコーダ20について説明する。しかしながら、本開示の技法は、他のコード化規格又は方法にも適用可能であり得る。
【0066】
[0080]ビデオエンコーダ20は、ビデオスライス内のビデオブロックのイントラコード化及びインターコード化を実行し得る。イントラコード化は、所与のビデオフレーム又はピクチャ内のビデオの空間冗長性を低減又は除去するために空間予測に依拠する。インターコード化は、ビデオシーケンスの隣接フレーム又はピクチャ内のビデオの時間的冗長性を低減又は除去するために時間的予測に依拠する。イントラモード(Iモード)は、幾つかの空間ベースのコード化モードのいずれかを指し得る。単方向予測(Pモード)又は双方向予測(Bモード)などのインターモードは、幾つかの時間ベースのコード化モードのいずれかを指し得る。
【0067】
[0081]
図2の例では、ビデオエンコーダ20は複数の機能構成要素を含む。ビデオエンコーダ20の機能構成要素は、予測ユニット100と、残差生成ユニット102と、変換ユニット104と、量子化ユニット106と、逆量子化ユニット108と、逆変換ユニット110と、再構成ユニット112と、フィルタユニット113と、復号ピクチャバッファ114と、エントロピー符号化ユニット116とを含む。予測ユニット100は、インター予測ユニット121と、動き推定ユニット122と、動き補償ユニット124と、イントラ予測ユニット126と、レイヤ間予測ユニット128とを含む。他の例では、ビデオエンコーダ20は、より多数の、より少数の、又は異なる機能構成要素を含み得る。更に、動き推定ユニット122と動き補償ユニット124とは、高度に一体化され得るが、
図2の例では、説明の目的で別々に表されている。
【0068】
[0082]ビデオエンコーダ20はビデオデータを受信し得る。ビデオエンコーダ20は、様々な発信源からビデオデータを受信し得る。例えば、ビデオエンコーダ20は、ビデオ発信源18(
図1)又は別の発信源からビデオデータを受信し得る。ビデオデータは一連のピクチャを表し得る。ビデオデータを符号化するために、ビデオエンコーダ20は、ピクチャの各々に対して符号化演算を実行し得る。ピクチャに対して符号化演算を実行することの一部として、ビデオエンコーダ20は、ピクチャの各スライスに対して符号化演算を実行し得る。スライスに対して符号化演算を実行することの一部として、ビデオエンコーダ20は、スライス中のツリーブロックに対して符号化演算を実行し得る。
【0069】
[0083]ツリーブロックに対して符号化演算を実行することの一部として、予測ユニット100は、ツリーブロックのビデオブロックに対して4分木区分を実行して、ビデオブロックを徐々により小さいビデオブロックに分割し得る。より小さいビデオブロックの各々は異なるCUに関連付けられ得る。例えば、予測ユニット100は、ツリーブロックのビデオブロックを4つの等しいサイズのサブブロックに区分し、サブブロックの1つ又は複数を、4つの等しいサイズのサブサブブロックに区分し得、以下同様である。
【0070】
[0084]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は非負整数値を表す。
【0071】
[0085]更に、ツリーブロックに対して符号化演算を実行することの一部として、予測ユニット100は、ツリーブロック用の階層的な4分木データ構造を生成し得る。例えば、ツリーブロックは、4分木データ構造のルートノードに対応し得る。予測ユニット100が、ツリーブロックのビデオブロックを4つのサブブロックに区分する場合、ルートノードは、4分木データ構造中に4つの子ノードを有する。子ノードの各々は、サブブロックのうちの1つに関連付けられたCUに対応する。予測ユニット100が、サブブロックのうちの1つを4つのサブサブブロックに区分する場合、サブブロックに関連付けられたCUに対応するノードは、サブサブブロックのうちの1つに関連付けられたCUに各々が対応する、4つの子ノードを有し得る。
【0072】
[0086]4分木データ構造の各ノードは、対応するツリーブロック又はCUのシンタックスデータ(例えば、シンタックス要素)を含み得る。例えば、4分木の中のノードは、そのノードに対応するCUのビデオブロックが4つのサブブロックに区分される(例えば、分割される)かどうかを示すスプリットフラグを含み得る。CUのためのシンタックス要素は、再帰的に定義され得、CUのビデオブロックがサブブロックに分割されるかどうかに依存し得る。それのビデオブロックが区分されていないCUは、4分木データ構造におけるリーフノードに対応し得る。コード化ツリーブロックは、対応するツリーブロック用の4分木データ構造に基づくデータを含み得る。
【0073】
[0087]ビデオエンコーダ20は、ツリーブロックの区分されていない各CUに対して符号化演算を実行し得る。ビデオエンコーダ20が、区分されていないCUに対して符号化演算を実行するとき、ビデオエンコーダ20は、区分されていないCUの符号化表現を表すデータを生成する。
【0074】
[0088]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のビデオブロックを区分するように、幾何学的な区分を実行し得る。
【0075】
[0089]インター予測ユニット121はCUの各PUに対してインター予測を実行し得る。インター予測は時間圧縮を実現し得る。PUに対してインター予測を実行するために、動き推定ユニット122はPUの動き情報を生成し得る。動き補償ユニット124は、動き情報と、CUに関連付けられたピクチャ以外のピクチャ(例えば、参照ピクチャ)の復号サンプルと基づくPUのための予測ビデオブロックを生成し得る。本開示では、動き補償ユニット124によって生成された予測ビデオブロックは、インター予測ビデオブロックと呼ばれることがある。
【0076】
[0090]スライスは、Iスライス、Pスライス、又はBスライスであり得る。動き推定ユニット122及び動き補償ユニット124は、PUがIスライス中にあるか、Pスライス中にあるか、Bスライス中にあるかに応じて、CUのPUに対して異なる演算を実行し得る。Iスライス中では、全てのPUがイントラ予測される。従って、PUがIスライス中にある場合、動き推定ユニット122及び動き補償ユニット124は、PUに対してインター予測を実行しない。
【0077】
[0091]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のビデオブロック中のサンプルに対応するかを決定し得る。
【0078】
[0092]Pスライス中のPUの参照ブロックを識別した後、動き推定ユニット122は、参照ブロックを含んでいる、リスト0中の参照ピクチャを示す参照インデックスと、PUと参照ブロックとの間の空間変位を示す動きベクトルとを生成し得る。様々な例において、動き推定ユニット122は動きベクトルを異なる精度に生成し得る。例えば、動き推定ユニット122は、1/4サンプル精度、1/8サンプル精度、又は他の分数のサンプル精度で動きベクトルを生成し得る。分数のサンプル精度の場合、参照ブロック値は、参照ピクチャ中の整数位置のサンプル値から補間され得る。動き推定ユニット122は、PUの動き情報として、参照インデックスと動きベクトルとを出力し得る。動き補償ユニット124は、PUの動き情報によって識別された参照ブロックに基づいて、PUの予測ビデオブロックを生成し得る。
【0079】
[0093]PUがBスライス中にある場合、PUを含んでいるピクチャは、「リスト0」及び「リスト1」と呼ばれる参照ピクチャの2つのリストに関連付けられ得る。幾つかの例では、Bスライスを含んでいるピクチャは、リスト0とリスト1の組合せである、リストの組合せに関連付けられ得る。
【0080】
[0094]更に、PUがBスライス中にある場合、動き推定ユニット122は、PUについての単方向予測又は双方向予測を実行し得る。動き推定ユニット122が、PUについての単方向予測を実行するとき、動き推定ユニット122は、PUのための参照ブロックについて、リスト0又はリスト1の参照ピクチャを探索し得る。動き推定ユニット122は、次いで、参照ブロックを含んでいる、リスト0又はリスト1中の参照ピクチャを示す参照インデックスと、PUと参照ブロックとの間の空間変位を示す動きベクトルとを生成し得る。動き推定ユニット122は、PUの動き情報として、参照インデックスと、予測方向インジケータと、動きベクトルとを出力し得る。予測方向インジケータは、参照インデックスが、リスト0中の参照ピクチャを示すか、リスト1中の参照ピクチャを示すかを示し得る。動き補償ユニット124は、PUの動き情報によって示された参照ブロックに基づいて、PUの予測ビデオブロックを生成し得る。
【0081】
[0095]動き推定ユニット122が、PUについての双方向予測を実行するとき、動き推定ユニット122は、PUのための参照ブロックについて、リスト0中の参照ピクチャを探索し得、また、PUのための別の参照ブロックについて、リスト1中の参照ピクチャを探索し得る。動き推定ユニット122は、次いで、参照ブロックを含んでいる、リスト0及びリスト1中の参照ピクチャを示す参照インデックスと、参照ブロックとPUの間の空間変位を示す動きベクトルとを生成し得る。動き推定ユニット122は、PUの動き情報としてPUの参照インデックスと動きベクトルとを出力し得る。動き補償ユニット124は、PUの動き情報によって示された参照ブロックに基づいて、PUの予測ビデオブロックを生成し得る。
【0082】
[0096]幾つかの例では、動き推定ユニット122は、PUの動き情報のフルセットをエントロピー符号化ユニット116に出力しない。そうではなく、動き推定ユニット122は、別のPUの動き情報を参照して、PUの動き情報を信号伝達し得る。例えば、動き推定ユニット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の動き情報を信号伝達することが可能であり得る。
【0083】
[0097]
図8〜
図14に関して以下で更に説明するように、予測ユニット100は、
図8〜
図14に示されている方法を実行することによってPU(又は他の拡張レイヤブロック又はビデオユニット)をコード化(例えば、符号化又は復号)するように構成され得る。例えば、(例えば、動き推定ユニット122及び/又は動き補償ユニット124を介した)インター予測ユニット121、イントラ予測ユニット126、又はレイヤ間予測ユニット128は、一緒に又は別々にのいずれかで、
図8〜
図14に示されている方法を実行するように構成され得る。
【0084】
[0098]CUに対して符号化演算を実行することの一部として、イントラ予測ユニット126は、CUのPUに対してイントラ予測を実行し得る。イントラ予測は空間圧縮を実現し得る。イントラ予測ユニット126がPUに対してイントラ予測を実行するとき、イントラ予測ユニット126は、同じピクチャ中の他のPUの復号サンプルに基づいて、PUの予測データを生成し得る。PUの予測データは、予測ビデオブロックと様々なシンタックス要素とを含み得る。イントラ予測ユニット126は、Iスライス、Pスライス、及びBスライス中のPUに対してイントラ予測を実行し得る。
【0085】
[0099]PUに対してイントラ予測を実行するために、イントラ予測ユニット126は、複数のイントラ予測モードを使用して、PUの予測データの複数のセットを生成し得る。イントラ予測ユニット126が、イントラ予測モードを使用してPUの予測データのセットを生成するとき、イントラ予測ユニット126は、イントラ予測モードに関連付けられた方向及び/又は勾配で、隣接PUのビデオブロックからPUのビデオブロックにわたって、サンプルを延ばし得る。隣接PUは、PU、CU、及びツリーブロックについて左から右、上から下の符号化順序を仮定すると、PUの上、右上、左上、又は左にあり得る。イントラ予測ユニット126は、PUのサイズに応じて、様々な数のイントラ予測モード、例えば、33個の方向性イントラ予測モードを使用し得る。
【0086】
[00100]予測ユニット100は、PUについての、動き補償ユニット124によって生成された予測データ、又はPUについての、イントラ予測ユニット126によって生成された予測データの中から、PUの予測データを選択し得る。幾つかの例では、予測ユニット100は、予測データのセットのレート/歪みメトリックに基づいて、PUの予測データを選択する。
【0087】
[00101]予測ユニット100が、イントラ予測ユニット126によって生成された予測データを選択する場合、予測ユニット100は、PUの予測データを生成するために使用されたイントラ予測モード、例えば、選択されたイントラ予測モードを信号伝達し得る。予測ユニット100は、選択されたイントラ予測モードを様々な方法で信号伝達し得る。例えば、選択されたイントラ予測モードは、隣接PUのイントラ予測モードと同じであることがあり得る。言い換えれば、隣接PUのイントラ予測モードは、現在PUに対して最確モード(most probable mode)であり得る。従って、予測ユニット100は、選択されたイントラ予測モードが隣接PUのイントラ予測モードと同じであることを示すための、シンタックス要素を生成し得る。
【0088】
[00102]上記で説明したように、ビデオエンコーダ20はレイヤ間予測ユニット128を含み得る。レイヤ間予測ユニット128は、SVCにおいて利用可能である1つ又は複数の異なるレイヤ(例えば、ベースレイヤ又は参照レイヤ)を使用して現在ブロック(例えば、EL中の現在ブロック)を予測するように構成される。そのような予測はレイヤ間予測と呼ばれることがある。レイヤ間予測ユニット128は、レイヤ間冗長性を低減するために予測方法を利用し、それによって、コード化効率を改善し、計算資源要求を低減する。レイヤ間予測の幾つかの例としては、レイヤ間イントラ予測、レイヤ間動き予測、及びレイヤ間残差予測がある。レイヤ間イントラ予測は、ベースレイヤ中の同一位置配置ブロックの再構成を使用して拡張レイヤ中の現在ブロックを予測する。レイヤ間動き予測は、ベースレイヤの動き情報を使用して拡張レイヤ中の動作を予測する。レイヤ間残差予測は、ベースレイヤの残差を使用して拡張レイヤの残差を予測する。レイヤ間予測方式の各々について、より詳細に以下で説明する。
【0089】
[00103]予測ユニット100がCUのPUの予測データを選択した後、残差生成ユニット102は、CUのビデオブロックからCUのPUの予測ビデオブロックを差し引くことによって、CUの残差データを生成し得る。CUの残差データは、CUのビデオブロック中のサンプルの異なるサンプル成分に対応する、2D残差ビデオブロックを含み得る。例えば、残差データは、CUのPUの予測ビデオブロック中のサンプルのルミナンス成分と、CUの元のビデオブロック中のサンプルのルミナンス成分との間の差分に対応する、残差ビデオブロックを含み得る。更に、CUの残差データは、CUのPUの予測ビデオブロック中のサンプルのクロミナンス成分と、CUの元のビデオブロック中のサンプルのクロミナンス成分との間の差分に対応する、残差ビデオブロックを含み得る。
【0090】
[00104]予測ユニット100は、4分木区分を実行して、CUの残差ビデオブロックをサブブロックに区分し得る。各分割されていない残差ビデオブロックは、CUの異なるTUに関連付けられ得る。CUのTUに関連付けられた残差ビデオブロックのサイズ及び位置は、CUのPUに関連付けられたビデオブロックのサイズ及び位置に基づくことも基づかないこともある。「残差4分木」(RQT:residual quad tree)として知られる4分木構造は、残差ビデオブロックの各々に関連付けられたノードを含み得る。CUのTUはRQTのリーフノードに対応し得る。
【0091】
[00105]変換ユニット104は、TUに関連付けられた残差ビデオブロックに1つ又は複数の変換を適用することによって、CUの各TUのための1つ又は複数の変換係数ブロックを生成し得る。変換係数ブロックの各々は、変換係数の2D行列であり得る。変換ユニット104は、TUに関連付けられた残差ビデオブロックに様々な変換を適用し得る。例えば、変換ユニット104は、離散コサイン変換(DCT)、方向性変換、又は概念的に同様の変換を、TUに関連付けられた残差ビデオブロックに適用し得る。
【0092】
[00106]変換ユニット104が、TUに関連付けられた変換係数ブロックを生成した後、量子化ユニット106は、変換係数ブロック中の変換係数を量子化し得る。量子化ユニット106は、CUに関連付けられたQP値に基づいて、CUのTUに関連付けられた変換係数ブロックを量子化し得る。
【0093】
[00107]ビデオエンコーダ20は、様々な方法でQP値をCUに関連付け得る。例えば、ビデオエンコーダ20は、CUに関連付けられたツリーブロックに対してレート歪み分析を実行し得る。レート歪み分析では、ビデオエンコーダ20は、ツリーブロックに対して符号化演算を複数回実行することによって、ツリーブロックの複数のコード化表現を生成し得る。ビデオエンコーダ20がツリーブロックの異なる符号化表現を生成するとき、ビデオエンコーダ20は、異なるQP値をCUに関連付け得る。ビデオエンコーダ20は、最小のビットレート及び歪みメトリックを有するツリーブロックのコード化表現で所与のQP値がCUに関連付けられるとき、所与のQP値がCUに関連付けられることを信号伝達し得る。
【0094】
[00108]逆量子化ユニット108及び逆変換ユニット110は、それぞれ、変換係数ブロックに逆量子化と逆変換とを適用して、変換係数ブロックから残差ビデオブロックを再構成し得る。再構成ユニット112は、再構成された残差ビデオブロックを、予測ユニット100によって生成された1つ又は複数の予測ビデオブロックからの対応するサンプルに追加して、TUに関連付けられた再構成されたビデオブロックを生成し得る。このようにCUの各TUのためのビデオブロックを再構成することによって、ビデオエンコーダ20は、CUのビデオブロックを再構成し得る。
【0095】
[00109]再構成ユニット112がCUのビデオブロックを再構成した後、フィルタユニット113は、CUに関連付けられたビデオブロックにおけるブロック歪み(blocking artifacts)を低減するためにデブロッキング演算を実行し得る。1つ又は複数のデブロッキング演算を実行した後、フィルタユニット113は、復号ピクチャバッファ114にCUの再構成されたビデオブロックを記憶し得る。動き推定ユニット122及び動き補償ユニット124は、再構成されたビデオブロックを含んでいる参照ピクチャを使用して、後続ピクチャのPUに対してインター予測を実行し得る。更に、イントラ予測ユニット126は、復号ピクチャバッファ114中の再構成されたビデオブロックを使用して、CUと同じピクチャの中の他のPUに対してイントラ予測を実行し得る。
【0096】
[00110]エントロピー符号化ユニット116は、ビデオエンコーダ20の他の機能構成要素からデータを受信し得る。例えば、エントロピー符号化ユニット116は、量子化ユニット106から変換係数ブロックを受信し得、予測ユニット100からシンタックス要素を受信し得る。エントロピー符号化ユニット116がデータを受信するとき、エントロピー符号化ユニット116は、1つ又は複数のエントロピー符号化演算を実行して、エントロピー符号化されたデータを生成し得る。例えば、ビデオエンコーダ20は、コンテキスト適応型可変長コード化(CAVLC)演算、CABAC演算、変数間(V2V:variable-to-variable)レングスコード化演算、シンタックスベースコンテキスト適応型バイナリ算術コード化(SBAC:syntax-based context-adaptive binary arithmetic coding)演算、確率間隔区分エントロピー(PIPE:Probability Interval Partitioning Entropy)コード化演算、又は別のタイプのエントロピー符号化演算をデータに対して実行し得る。エントロピー符号化ユニット116は、エントロピー符号化されたデータを含むビットストリームを出力し得る。
【0097】
[00111]データに対してエントロピー符号化演算を実行することの一部として、エントロピー符号化ユニット116は、コンテキストモデルを選択し得る。エントロピー符号化ユニット116がCABAC演算を実行している場合、コンテキストモデルは、特定の値を有する特定のビンの確率の推定値を示し得る。CABACのコンテキストでは、「ビン」という用語は、シンタックス要素の2値化されたバージョンのビットを指すために使用される。
【0098】
ビデオデコーダ
[00112]
図3は、本開示で説明する態様による技法を実装し得るビデオデコーダの一例を示すブロック図である。ビデオデコーダ30は、本開示の技法のいずれか又は全てを実行するように構成され得る。一例として、動き補償ユニット162及び/又はイントラ予測ユニット164は、本開示で説明する技法のいずれか又は全てを実行するように構成され得る。一実施形態では、ビデオデコーダ30は、場合によっては、本開示で説明する技法のいずれか又は全てを実行するように構成されたレイヤ間予測ユニット166を含み得る。他の実施形態では、レイヤ間予測は予測ユニット152(例えば、動き補償ユニット162及び/又はイントラ予測ユニット164)によって実行され得、その場合、レイヤ間予測ユニット166は省略され得る。但し、本開示の態様はそのように限定されない。幾つかの例では、本開示で説明する技法は、ビデオデコーダ30の様々な構成要素間で共有され得る。幾つかの例では、追加として又は代わりに、プロセッサ(図示せず)が、本開示で説明する技法のいずれか又は全てを実行するように構成され得る。
【0099】
[00113]
図3の例では、ビデオデコーダ30は複数の機能構成要素を含む。ビデオデコーダ30の機能構成要素は、エントロピー復号ユニット150と、予測ユニット152と、逆量子化ユニット154と、逆変換ユニット156と、再構成ユニット158と、フィルタユニット159と、復号ピクチャバッファ160とを含む。予測ユニット152は、動き補償ユニット162と、イントラ予測ユニット164と、レイヤ間予測ユニット166とを含む。幾つかの例では、ビデオデコーダ30は、
図2のビデオエンコーダ20に関して説明された符号化経路とは全般に逆の復号経路を実行し得る。他の例では、ビデオデコーダ30は、より多数の、より少数の、又は異なる機能構成要素を含み得る。
【0100】
[00114]ビデオデコーダ30は、符号化ビデオデータを備えるビットストリームを受信し得る。ビットストリームは複数のシンタックス要素を含み得る。ビデオデコーダ30がビットストリームを受信したとき、エントロピー復号ユニット150は、ビットストリームに対して構文解析演算を実行し得る。ビットストリームに対して構文解析演算(parsing operation)を実行した結果として、エントロピー復号ユニット150は、ビットストリームからシンタックス要素を抽出し得る。構文解析演算を実行することの一部として、エントロピー復号ユニット150は、ビットストリーム中のエントロピー符号化されたシンタックス要素をエントロピー復号し得る。予測ユニット152、逆量子化ユニット154、逆変換ユニット156、再構成ユニット158、及びフィルタユニット159は、ビットストリームから抽出されたシンタックス要素に基づいて、復号ビデオデータを生成する再構成演算(reconstruction operation)を実行し得る。
【0101】
[00115]上記で説明したように、ビットストリームは、一連のNAL単位を備え得る。ビットストリームのNAL単位は、ビデオパラメータセット、シーケンスパラメータセットNAL単位、ピクチャパラメータセットNAL単位、SEI NAL単位などを含み得る。ビットストリームに対して構文解析演算を実行することの一部として、エントロピー復号ユニット150は、シーケンスパラメータセットNAL単位からのシーケンスパラメータセット、ピクチャパラメータセットNAL単位からのピクチャパラメータセット、SEI NAL単位からのSEIデータなどを抽出しエントロピー復号する、構文解析演算を実行し得る。
【0102】
[00116]更に、ビットストリームのNAL単位はコード化スライスNAL単位を含み得る。ビットストリームに対して構文解析演算を実行することの一部として、エントロピー復号ユニット150は、コード化スライスNAL単位からコード化スライスを抽出しエントロピー復号する、構文解析演算を実行し得る。コード化されたスライスの各々は、スライスヘッダとスライスデータとを含み得る。スライスヘッダは、スライスに関するシンタックス要素を含んでいることがある。スライスヘッダ中のシンタックス要素は、スライスを含んでいるピクチャに関連付けられたピクチャパラメータセットを識別するシンタックス要素を含み得る。エントロピー復号ユニット150は、コード化されたスライスヘッダ中のシンタックス要素に対して、CABAC復号演算などのエントロピー復号演算を実行して、スライスヘッダを再構成し得る。
【0103】
[00117]コード化スライスのNAL単位からスライスデータを抽出することの一部として、エントロピー復号ユニット150は、スライスデータ中のコード化CUからシンタックス要素を抽出する構文解析演算を実行し得る。抽出されたシンタックス要素は、変換係数ブロックに関連付けられたシンタックス要素を含み得る。エントロピー復号ユニット150は、次いで、シンタックス要素のうちの幾つかに対してCABAC復号演算を実行し得る。
【0104】
[00118]エントロピー復号ユニット150が区分されていないCUに対して構文解析演算を実行した後、ビデオデコーダ30は、区分されていないCUに対して再構成演算を実行し得る。区分されていないCUに対して再構成演算を実行するために、ビデオデコーダ30はCUの各TUに対して再構成演算を実行し得る。CUの各TUについて再構成演算を実行することによって、ビデオデコーダ30は、CUに関連付けられた残差ビデオブロックを再構成し得る。
【0105】
[00119]TUに対して再構成演算を実行することの一部として、逆量子化ユニット154は、TUに関連付けられた変換係数ブロックを逆量子化(inverse quantize)、例えば、逆量子化(de-quantize)し得る。逆量子化ユニット154は、HEVC用に提案された、又はH.264復号規格によって定義された逆量子化プロセスと同様の方式で、変換係数ブロックを逆量子化し得る。逆量子化ユニット154は、量子化の程度を決定し、同様に、逆量子化ユニット154が適用するべき逆量子化の程度を決定するために、変換係数ブロックのCUのためにビデオエンコーダ20によって計算される量子化パラメータQPを使用し得る。
【0106】
[00120]逆量子化ユニット154が変換係数ブロックを逆量子化した後、逆変換ユニット156は、変換係数ブロックに関連付けられたTUのための残差ビデオブロックを生成し得る。逆変換ユニット156は、TUのための残差ビデオブロックを生成するために、変換係数ブロックに逆変換を適用し得る。例えば、逆変換ユニット156は、変換係数ブロックに、逆DCT、逆整数変換、逆カルーネンレーベ変換(KLT:Karhunen-Loeve transform)、逆回転変換、逆方向変換、又は別の逆変換を適用し得る。幾つかの例では、逆変換ユニット156は、ビデオエンコーダ20からの信号伝達に基づいて、変換係数ブロックに適用すべき逆変換を決定し得る。そのような例では、逆変換ユニット156は、変換係数ブロックに関連付けられたツリーブロックの4分木のルートノードにおいて信号伝達された変換に基づいて、逆変換を決定し得る。他の例では、逆変換ユニット156は、ブロックサイズ、コード化モードなど、1つ又は複数のコード化特性から逆変換を推定し得る。幾つかの例では、逆変換ユニット156はカスケード逆変換を適用し得る。
【0107】
[00121]幾つかの例では、動き補償ユニット162は、補間フィルタに基づく補間を実行することによって、PUの予測ビデオブロックを改良し得る。サブサンプル精度をもつ動き補償のために使用されるべき補間フィルタのための識別子が、シンタックス要素中に含まれ得る。動き補償ユニット162は、PUの予測ビデオブロックの生成中にビデオエンコーダ20によって使用された同じ補間フィルタを使用して、参照ブロックのサブ整数サンプルについての補間値を計算し得る。動き補償ユニット162は、受信されたシンタックス情報に従って、ビデオエンコーダ20によって使用された補間フィルタを決定し、その補間フィルタを使用して予測ビデオブロックを生成し得る。
【0108】
[00122]
図8〜
図14に関して以下で更に説明するように、予測ユニット152は、
図8〜
図14に示されている方法を実行することによってPU(又は他の拡張レイヤブロック又はビデオユニット)をコード化(例えば、符号化又は復号)し得る。例えば、動き補償ユニット162、イントラ予測ユニット164、又はレイヤ間予測ユニット166は、一緒に又は別々にのいずれかで、
図8〜
図14に示されている方法を実行するように構成され得る。
【0109】
[00123]PUが、イントラ予測を使用して符号化される場合、イントラ予測ユニット164は、PUのための予測ビデオブロックを生成するためにイントラ予測を実行し得る。例えば、イントラ予測ユニット164は、ビットストリーム中のシンタックス要素に基づいて、PUのためのイントラ予測モードを決定し得る。ビットストリームは、PUのイントラ予測モードを決定するためにイントラ予測ユニット164が使用し得るシンタックス要素を含み得る。
【0110】
[00124]幾つかの事例では、シンタックス要素は、イントラ予測ユニット164が別のPUのイントラ予測モードを使用して現在PUのイントラ予測モードを決定するべきであることを示し得る。例えば、現在PUのイントラ予測モードは隣接PUのイントラ予測モードと同じであることがあり得る。言い換えれば、隣接PUのイントラ予測モードは、現在PUに対して最確モードであり得る。従って、この例では、ビットストリームは、PUのイントラ予測モードが隣接PUのイントラ予測モードと同じであることを示す、小さいシンタックス要素を含み得る。イントラ予測ユニット164は、次いで、イントラ予測モードを使用して、空間的に隣接するPUのビデオブロックに基づいて、PUの予測データ(例えば、予測サンプル)を生成し得る。
【0111】
[00125]上記で説明したように、ビデオデコーダ30もレイヤ間予測ユニット166を含み得る。レイヤ間予測ユニット166は、SVCにおいて利用可能である1つ又は複数の異なるレイヤ(例えば、ベースレイヤ又は参照レイヤ)を使用して現在ブロック(例えば、EL中の現在ブロック)を予測するように構成される。そのような予測はレイヤ間予測と呼ばれることがある。レイヤ間予測ユニット166は、レイヤ間冗長性を低減するために予測方法を利用し、それによって、コード化効率を改善し、計算資源要件を低減する。レイヤ間予測の幾つかの例としては、レイヤ間イントラ予測、レイヤ間動き予測、及びレイヤ間残差予測がある。レイヤ間イントラ予測は、ベースレイヤ中の同一位置配置ブロックの再構成を使用して拡張レイヤ中の現在ブロックを予測する。レイヤ間動き予測は、ベースレイヤの動き情報を使用して拡張レイヤ中の動作を予測する。レイヤ間残差予測は、ベースレイヤの残差を使用して拡張レイヤの残差を予測する。レイヤ間予測方式の各々について、より詳細に以下で説明する。
【0112】
[00126]再構成ユニット158は、適用可能なとき、CUのTUに関連付けられた残差ビデオブロックとCUのPUの予測ビデオブロックとを使用して、例えば、イントラ予測データ又はインター予測データのいずれかを使用して、CUのビデオブロックを再構成し得る。従って、ビデオデコーダ30は、ビットストリーム中のシンタックス要素に基づいて、予測ビデオブロックと残差ビデオブロックとを生成し得、予測ビデオブロックと残差ビデオブロックとに基づいて、ビデオブロックを生成し得る。
【0113】
[00127]再構成ユニット158がCUのビデオブロックを再構成した後、フィルタユニット159は、デブロッキング演算を実行して、CUに関連付けられたブロック歪みを低減し得る。フィルタユニット159がデブロッキング演算を実行してCUに関連付けられたブロック歪みを低減した後、ビデオデコーダ30は、復号ピクチャバッファ160にCUのビデオブロックを記憶し得る。復号ピクチャバッファ160は、後続の動き補償、イントラ予測、及び
図1の表示装置32などの表示装置上での提示のために、参照ピクチャを与え得る。例えば、ビデオデコーダ30は、復号ピクチャバッファ160中のビデオブロックに基づいて、他のCUのPUに対してイントラ予測演算又はインター予測演算を実行し得る。
【0114】
スケーラブルビデオコード化(SVC)の構造
[00128]
図4は、異なる次元における例示的なスケーラビリティを示す概念図である。上記で説明したように、HEVCのスケーラブルビデオコード化拡張(SVC)は、ビデオ情報がレイヤ中で与えられることを可能にする。各レイヤは、異なるスケーラビリティに対応するビデオ情報を与えることができる。HEVCでは、スケーラビリティは、3つの次元において使用可能であり、即ち、時間(temporal)(又は時間(time))スケーラビリティ、空間スケーラビリティ、及び(信号対雑音比又はSNRスケーラビリティと呼ばれることがある)品質スケーラビリティである。例えば、時間次元では、7.5Hz、15Hz、30Hzなどをもつフレームレートが時間スケーラビリティ(T)によってサポートされ得る。空間スケーラビリティ(S)がサポートされるとき、QCIF、CIF、4CIFなどの異なる解像度が使用可能であり得る。特定の空間解像度及びフレームレートごとに、ピクチャ品質を改善するためにSNR(Q)レイヤが追加され得る。
【0115】
[00129]ビデオコンテンツがそのようなスケーラブルな方法で符号化されると、例えば、クライアント又は送信チャネルに依存することがあるアプリケーション要件に従って、実際の配信されたコンテンツを適応させるために、抽出器ツールが使用され得る。
図4に示された例では、各立方体は、同じフレームレート(時間レベル)、空間解像度及びSNRレイヤをもつピクチャを含んでいる。例えば、立方体402及び404は、同じ解像度及びSNRを有するが、異なるフレームレートを有するピクチャを含んでいる。立方体402及び406は、(例えば、同じ空間レイヤでは)同じ解像度を有するが、異なるSNR及びフレームレートを有するピクチャを表す。立方体402及び408は、(例えば、同じ品質イヤでは)同じSNRを有するが、異なる解像度及びフレームレートを有するピクチャを表す。立方体402及び410は、異なる解像度と、フレームレートと、SNRとを有するピクチャを表す。それらの立方体(ピクチャ)を任意の次元で追加することによって、より良い表現が達成され得る。使用可能な2つ、3つ又は更に多くのスケーラビリティがあるとき、複合スケーラビリティがサポートされる。例えば、立方体402中のピクチャを立方体404中のピクチャと合成することによって、より高いフレームレートが実現され得る。立方体404中のピクチャを立方体406中のピクチャと合成することによって、より良好なSNRが実現され得る。
【0116】
[00130]SVCの仕様によれば、最低空間レイヤ及び品質レイヤをもつピクチャは、H.264/AVCに適合し、最低時間レベルにあるピクチャは、より高い時間レベルにあるピクチャを用いて拡張され得る時間ベースレイヤを形成する。H.264/AVC互換レイヤに加えて、空間スケーラビリティ及び/又は品質スケーラビリティを実現するために、幾つかの空間拡張レイヤ及び/又はSNR拡張レイヤが追加され得る。SNRスケーラビリティは品質スケーラビリティと呼ばれることもある。各空間又はSNR拡張レイヤ自体は、H.264/AVC適合レイヤと同じ時間スケーラビリティ構造で、時間的にスケーラブルになり得る。1つの空間又はSNR拡張レイヤについて、それが依存するより低いレイヤは、その特定の空間又はSNR拡張レイヤのベースレイヤと呼ばれることもある。
【0117】
[00131]
図5は、例示的なスケーラブルビデオコード化ビットストリームを示す概念図である。
図5に示されている例示的なSVCコード化構造では、最低空間及び品質レイヤをもつピクチャ(QCIF解像度を与えるレイヤ502及びレイヤ504中のピクチャ)は、H.264/AVCに適合する。それらの中で、最低時間レベルのピクチャは、
図5に示されているように、時間ベースレイヤ502を形成する。この時間ベースレイヤ(例えば、レイヤ502)は、レイヤ504など、より高い時間レベルのピクチャを用いて拡張され得る。H.264/AVC適合レイヤに加えて、空間スケーラビリティ及び/又は品質スケーラビリティを与えるために幾つかの空間及び/又はSNR拡張レイヤが追加され得る。例えば、拡張レイヤは、レイヤ506と同じ解像度を有するCIF表現であり得る。
図5に示されている例では、レイヤ508はSNR拡張レイヤである。その例に示されているように、各空間又はSNR拡張レイヤ自体は、H.264/AVC適合レイヤと同じ時間スケーラビリティ構造で、時間的にスケーラブルになり得る。また、拡張レイヤは空間解像度とフレームレートの両方を向上させことができる。例えば、レイヤ510は、フレームレートを15Hzから30Hzに更に増加させる4CIF拡張レイヤを与える。
【0118】
[00132]
図6は、スケーラブルビデオコード化ビットストリーム600中の例示的なアクセス単位を示す概念図である。
図6に示されているように、幾つかの実施形態では、同じ時間インスタンス中のコード化スライスは、ビットストリーム順序で連続しており、SVCのコンテキストにおける1つのアクセス単位を形成する。それらのSVCアクセス単位は、次いで、表示順序とは異なり得る復号順序に従う。復号順序は、例えば、時間予測関係によって決定され得る。例えば、フレーム0のための(例えば、
図5に示されているフレーム0のための)全ての4つのレイヤ612、614、616、及び618からなるアクセス単位610の後に、フレーム4のための(例えば、
図5のフレーム4のための)全ての4つのレイヤ622、624、626、及び628からなるアクセス単位620が続き得る。フレーム2のためのアクセス単位630は、少なくともビデオ再生の観点から順が狂って続き得る。しかしながら、フレーム0及び4からの情報は、フレーム2を符号化又は復号するときに使用され得、従って、フレーム4は、フレーム2の前に符号化又は復号され得る。フレーム0とフレーム4との間の残りのフレームのためのアクセス単位640及び650は、
図6に示されているように続き得る。
【0119】
[00133]SVCの幾つかの機能はH.264/AVCから継承され得る。前のスケーラブル規格と比較して、階層的時間スケーラビリティ、レイヤ間予測、シングルループ復号、及びフレキシブルトランスポートインターフェースなど、SVCの多くの態様はH.264/AVCから継承され得る。SVCのこれらの態様の各々について、以下でより詳細に説明する。
【0120】
スケーラブルビデオコード化(SVC)の特徴
[00134]シングルループ復号
[00135]低複雑度デコーダを達成するために、SVCではシングルループ復号が使用される。シングルループ復号の場合、各サポートされるレイヤは、単一の動き補償ループを用いて復号され得る。これを達成するために、レイヤ間イントラ予測の使用は、同一位置配置された参照レイヤ信号がそのためにイントラコード化される拡張レイヤマクロブロックのためにのみ可能にされる。上位レイヤをレイヤ間予測するために使用される全てのレイヤは、制約付きイントラ予測(CIP:constrained intra-prediction)を使用してコード化される(例えば、近隣のインターコード化されたMBからのサンプルを参照することなしにイントラコード化される)ことが更に必要とされる。
【0121】
[00136]レイヤ間予測
[00137]SVCは、テクスチャと残差と動きとに基づいて、空間スケーラビリティとSNRスケーラビリティとのためのレイヤ間予測を導入する。SVCにおける空間スケーラビリティは、2つのレイヤ間の任意の解像度比に一般化され得る。SNRスケーラビリティは、粗粒度スケーラビリティ(CGS:Coarse Granularity Scalability)又は中粒度スケーラビリティ(MGS:Medium Granularity Scalability)によって実現され得る。SVCでは、2つの空間レイヤ又はCGSレイヤは、(NAL単位ヘッダ中でdependency_idによって示される)異なる依存性レイヤに属するが、2つのMGSレイヤは同じ依存性レイヤ中にあり得る。1つの依存性レイヤは、品質拡張レイヤに対応する、0からより高い値までのquality_idをもつ品質レイヤを含む。SVCでは、以下で説明するように、レイヤ間の冗長性を低減するために、レイヤ間予測方法が利用される。
【0122】
[00138]レイヤ間イントラ予測:レイヤ間イントラ予測を使用するコード化モードは、SVCでは「イントラBL」モードと呼ばれる。シングルループ復号を使用可能にするために、制約付きイントラモードとしてコード化されるベースレイヤ中の同一位置配置されたマクロブロック(MB)を有するMBのみが、レイヤ間イントラ予測モードを使用することができる。制約付きイントラモードMBは、近隣のインターコード化されたMBからのサンプルを参照することなしにイントラコード化される。
【0123】
[00139]レイヤ間残差予測:MBが残差予測を使用するように示される(又はコード化される)場合、レイヤ間予測のためのベースレイヤ中の同一位置配置されたMBはインターMBでなければならず、それの残差は、空間解像度比に従ってアップサンプリングされ得る。拡張レイヤとベースレイヤのそれとの間の残差の差分がコード化される。
【数1】
【数2】
【0124】
[00140]レイヤ間動き予測:同一位置配置されたベースレイヤ動きベクトルは、拡張レイヤ中のMB又はMB区分の動きベクトルのための予測子を生成するためにスケーリングされ得る。更に、MBごとに1つのフラグを送る、ベースモードと称される1つのMBタイプがある。このフラグが真であり、対応するベースレイヤMBがイントラでない場合、動きベクトル、区分モード及び参照インデックスは、全てベースレイヤから導出される。
【0125】
[00141]HEVCにおけるイントラ予測
[00142]イントラ予測の場合、現在ビデオユニットの値を予測するために、隣接予測単位(PU)からの前に復号された境界サンプルが使用される。例えば、HEVCでは、イントラ予測モード750として
図7Aに示されている35個のイントラ予測モードが利用可能である。4×4から32×32までのPUサイズ(例えば、正方形)について、33個の異なる方向の向きをもつ方向予測が定義される。可能な予測方向756が
図7Aに示されている。代替的に、(例えば、境界から導出された水平及び垂直傾斜をもつ振幅表面を仮定する)平面予測752、及び(例えば、境界の平均値に一致する値をもつ平坦な表面)DC予測754も使用され得る。クロマの場合、水平予測モード、垂直予測モード、平面予測モード、及びDC予測モードが明示的に信号伝達され得るか、又はクロマ予測モードは、ルーマ予測モードと同じであることが示され得る。一実施形態では、冗長信号伝達を回避するために、第1の4つの選択肢のうちの1つが示され、ルーマ予測モードと同じであるとき、Intra_Angular「34」モードが代わりに適用される。
【0126】
[00143]
図7Bに示されている例では、現在PU762は、その方向が矢印766によって示されている、
図7Aに示された方向モード「29」を使用してイントラ予測される。この例では、現在PU762中の画素又はサンプルは、復号されたPU中の境界サンプル764中の画素又はサンプルに基づいて予測される。PU762中の画素又はサンプルの値は、境界サンプル764中の1つ又は複数の画素又はサンプルの加重平均として計算され得る。予測方向の角度に応じて、特定の画素を予測するために使用される1つ又は複数の画素又はサンプルの各々に与えられる重みは変更され得る。
【0127】
[00144]参照サンプル置換:近隣参照サンプルは、スライス又はタイル境界において利用可能でない。更に、損失耐性機能(例えば、制約付きイントラ予測(CIP))が使用可能にされるとき、(例えば、潜在的に破損した前の復号されたピクチャデータに、予測信号中にエラーを伝搬させることを回避するために)どのインターコード化ブロック内の近隣参照サンプルも利用可能でないと見なされる。H.264/MPEG−4AVCではそのような場合のためにIntra_DC予測モードのみが可能にされるが、HEVCは、利用不可能な基準サンプル値(例えば、スライス又はタイル境界における利用不可能な基準サンプル値、又はインターコード化されることにより利用可能でないとマークされたもの)を、近隣の利用可能な基準サンプル値で置換した後に、他のイントラ予測モードの使用を可能にする。全ての近隣サンプルが、イントラ予測のために利用可能でないとマークされたとき、値(1<<(BitDepthY−1))は、そのような近隣サンプルの値と交換され、但し、BitDepthYはルーマ信号のビット深度である。
【0128】
HEVC SVC及び3DV拡張のための一般化残差予測
[00145]
図7Cに、一般化残差予測(GRP)モードによる、拡張レイヤブロックの残差を予測するための同一位置配置されたベースレイヤブロックのインター予測残差の使用を示す。
図7Cに示されているように、GRPモードでは、拡張レイヤ中の現在ブロックのインター予測残差を予測するために、同一位置配置されたベースレイヤブロックのインター予測残差が使用され得る。例えば、この方法はインターCUとスキップモードCUとに適用され得る。この種類の残差予測は、スケーラブルビデオコード化と3Dビデオコード化とのために使用され得る。この方法のフレームワークは、単方向予測の場合が示されている
図7Cに示されている。
【0129】
[00146]
図7Cでは、ブロック744(B
e)とブロック748(B
b)とは、それぞれ、拡張レイヤピクチャ742中の現在ブロックとベースレイヤピクチャ746中のそれの同一位置配置されたベースレイヤブロックとを示す。ブロック724(P
e0)は、動きベクトル706を使用することによって取得されたブロック744(B
e)のための時間予測を示す。同様に、ブロック728(P
b0)は、(例えば、必要な場合)アップサンプリングされたベースレイヤ参照ピクチャ726中で同じ動きベクトル706を使用することによって取得されたブロック748(B
b)のための時間予測を表す。ベースレイヤブロックR
b0のインター予測残差は、例えば、以下の式(2)に示されているように、ブロック748とブロック728との間の差分を計算することによって取得され得る。
【数3】
【0130】
[00147]ブロック744(B
e)のための時間予測724(P
e0)を考えると、ブロック744(B
e)のための最終単方向予測Pは以下のように取得され得る。
【数4】
【0131】
[00148]但し、wは重み付け係数であり、例えば、値0、0.5、又は1を取り得る。
【0132】
[00149]場合によっては(例えば、Pフレームの場合)、式(3)の以下の変形態が時々より効率的である。
【数5】
【0133】
[00150]但し、wは、例えば、0.5に等しくなり得る。従って、一実施形態では、例えば、式(3)中でwが0、0.5、又は1であり、式(4)中でwが0.5である、上記に記載された4つの重み付けモードは、GRPモードのために使用され得る。
【0134】
[00151]幾つかの実施形態では、重み付け係数wは、重み付けインデックスとしてCUレベルにおいて信号伝達される。重み付けインデックス0、1、2、及び3(又は異なる順序で)は、それぞれ、式(3)中でw=0、0.5及び1をもち、式(4)中でw=0.5をもつ重み付けモードを示すために使用され得る。正規CABACモードでの短縮単項コード(truncated unary code)が信号伝達のために使用される。幾つかの実施形態では、重み付け係数wは、上記に記載された値以外の値であり得る。重み付け係数wは、例えば、計算複雑さを最小限に抑えるか又はコード化効率を改善するために、式(3)又は式(4)のいずれかについて選定され得る。
【0135】
[00152]単一のMC補間GRP
[00153]
図7Cの動きベクトル706がサブ画素位置を指すとき、以下で示される残差(P
e0−w・P
b0)を取得するために、動き補償(MC)中に拡張レイヤピクチャとベースレイヤピクチャの両方に補間フィルタ処理が適用され得、これは、コード化複雑さを著しく増大させることがある。GRPモードの計算複雑さ及びメモリ帯域幅要件を低減するために、単一のMC補間が実行され得る。例えば、式(3)は、以下のように、式(5)として書き直され得る。
【数6】
【0136】
[00154]P
e0とP
b0とが同じ動きを共有するので、同じMC補間プロセスを2回実行することを回避するために、拡張レイヤピクチャとベースレイヤピクチャとの間の差分信号(P
e0−w・P
b0)にMC補間が直接適用され得る。従って、実行されるMC補間プロセスの回数が2から1に低減されるので、計算複雑さ及びメモリアクセスは低減される。この差分信号(P
e0−w・P
b0)は、全ピクチャレベルにおいて生成され得るか、又はブロックごとにオンザフライで生成され得るかのいずれかである。
【0137】
[00155]GRPのための合成アップサンプリング及びMC補間
[00156]一実施形態では、P
b0のためにアップサンプリング及びMC補間プロセスを合成する方法は、メモリ帯域幅要件及び計算複雑さを低減することができる。
【0138】
[00157]別の実施形態では、アップサンプリング演算はまた、以下で説明する方法において実装され得る。例えば、up(・)及びint(・)が、それぞれアップサンプリング及びMC補間の演算を表す場合、式(3)は次のように書き直され得る。
【数7】
【0139】
[00158]但し、Ref
e0とRef
b0とは、整数位置における基準拡張ブロックと基準ベースレイヤブロックとを示し、Rec
bは、再構成された同一位置配置されたベースレイヤブロックを表す。式(6)では、int(Ref
e0)、up(Rec
b)、及びint(up(Ref
b0))は、それぞれ式(3)中のP
e0、B
b、及びP
b0に対応する。幾つかの実施形態では、8タップアップサンプリングフィルタ及び8タップ補間フィルタは、それぞれup(・)及びint(・)のために使用される。アップサンプリング及び補間のために一般に使用されるボーダーパディングを考慮すると、それらの実施形態では、2つの8タップフィルタがカスケード接続されるので、式(6)中の項int(up(Ref
b0))を決定するために必要なメモリアクセスは、極めて高くなり得る。
【0140】
[00159]メモリアクセスを低減するために、1つの単一の8タップフィルタiup(・)をもつ2つのカスケード8タップフィルタint(up(・))が使用され得る。ベースレイヤ参照ブロックRef
b0の場合、拡張レイヤ動きベクトルMV
eo(例えば、
図7Cの動きベクトル706)は、拡張レイヤとベースレイヤとの間の解像度比に基づいてターゲット精度にスケーリングされる。次いで、int(up(・))は、スケーリングされたMVeoに基づいて適用される。2×スケーラビリティ及び1.5×スケーラビリティの場合、ルーマ成分について1/8画素精度及び1/6の画素精度をもつiup(・)がしばしば必要とされる。更に、幾つかの実施形態では、16位相合成アップサンプリング及びMC補間フィルタが実装され得る。
【0141】
[00160]イントラブロックのための一般化残差予測
[00161]GRPはまた、イントラブロックに適用され得る。そのような場合、上記で説明した式中のP
e0及びP
b0は、それぞれ、拡張レイヤピクチャ及びアップサンプリングされたベースレイヤピクチャ中の現在ブロックのイントラ予測を示すことになり、但し、2つのイントラ予測P
e0及びP
b0の方向は同じである。
【0142】
[00162]代替的に、最初にイントラ予測が差分領域中で実行され得、後でベースレイヤ画素が加算され得る。例えば、最初に、再構成された拡張レイヤピクチャI
eとベースレイヤピクチャI
bとの間の差分ピクチャ(w
e・I
e=w
b・I
b)が計算され得、次いで、差分ピクチャにイントラ予測が直接適用され得る。w
e=1の場合は式(5)に対応するが、w
e=w
bは式(4)に対応することに留意されたい。
【0143】
制約付き一般化残差予測
[00163]GRPがインターブロックに適用されるとき、(例えば、ブロックが単方向予測であるのか又は双方向予測であるのかに応じて)各方向の予測を形成するために3つの参照ブロック(P
e、P
b、及びB
b)がアクセスされ得る。これはメモリアクセスの帯域幅を増加させ、これは、性能を低下させ、及び/又はGRPモードの場合の計算コストを増加させ得る。従って、GRPコード化ブロックの動き補償中にメモリアクセスの帯域幅を低減するために、そのようなブロックに幾つかの制約が適用され得る。
【0144】
[00164]固定タップフィルタが使用されるとき、ボーダーパディングサイズはフィルタの長さによって決定される。例えば、8タップアップサンプリングフィルタの場合、パディングサイズは各方向において7画素であり得る。従って、32×32ブロックがそのようなフィルタによってアップサンプリングされるとき、パディングされたブロックは39×39になり、これは、約50%(39*39/32*32)だけメモリアクセスを増加させる。一方、4×4ブロックが同じフィルタによってアップサンプリングされるとき、パディングされたブロックは11×11になり、これは、メモリアクセスの7倍の増加(11*11/4*4)よりも多い。従って、幾つかの状況では、ある閾値よりも小さいブロックの場合、GRPを制限することが有利であり得る。
【0145】
[00165]一実施形態では、閾値サイズよりも小さいブロックの場合、GRPモードは、無効にされる(例えば、まったく使用されない)か、又は部分的に無効にされる(例えば、単方向予測ブロックがGRPモードでコード化されることのみを可能にするなど、何らかの方法で制限される)。閾値サイズは、予め定義され得るか、又はシーケンスレベル、ピクチャオブグループ(GOP)レベル、ピクチャレベル又はスライスレベルなど、任意のレベルにおいてビットストリーム中で信号伝達され得る。ブロックの特定のセット(例えば、8×8よりも小さい双方向予測ブロック)の場合、GRPモードが無効にされるとき、これらのブロックの場合、GRP重み付け情報がコード化される必要はない。例えば、16×16よりも小さいブロックの場合、単方向予測のためにのみGRPモードが可能にされるとき、8×8のサイズを有する双方向予測ブロックの場合、GRP重み付けインデックスは信号伝達される必要はない。一方、8×8単方向予測ブロックの場合、GRP重み付けインデックスは信号伝達され得る。従って、GRPモードが少なくとも部分的に無効にされるとき、これらのブロックのためのGRP重み付け情報のエントロピー符号化は、GRP重み付けインデックスの低減されたセットを反映するように相応に変更され得る。代替又は追加として、GRP重み付け情報は、GRPモードが無効にされるブロックについて信号伝達され得るが、GRP重み付け情報は、GRPモードが無効にされることを示し得るか、又はGRPモードが無効にされることを示す1つ又は複数の値に制限され得る。
【0146】
[00166]場合によっては、より小さいブロックの場合、異なるGRP重み付け情報(例えば、GRP重み付け係数)は、GRP重み付け情報を区別するための信号伝達コストの増加にもかかわらず、それでも同様の歪みにつながり得る。従って、幾つかの実施形態では、閾値サイズよりも小さいブロックの場合、GRP重み付け係数がそれから選定され得る値の数は低減され得る。例えば、閾値サイズよりも大きいブロック(例えば、32×32ブロック)の場合、重み付け係数wは値0、0.5、及び1から選定され得、閾値サイズよりも小さいブロック(例えば、8×8ブロック)の場合、重み付け係数wは値0及び1から選定され得る。
【0147】
[00167]別の実施形態では、双方向インター予測ブロックの場合、GRPモードは可能にされない(例えば、無効にされる)。幾つかの実施形態では、GRP重み付けインデックスは予測方向の前に信号伝達され得る。そのような実施形態では、インターブロック中の非0GRP重み付けインデックスは、ブロックが単方向予測であることを示し、従って、ブロックが単方向予測であるのか双方向予測であるのかを示すフラグは、コード化される必要はない。言い換えれば、リストL0からの単方向動きベクトル又はリストL1からの単方向動きベクトルのみが信号伝達され得るので(双方向予測ブロックの場合、非0GRP重み付けインデックスが信号伝達されなくなるので)インター方向フラグ中の冗長は除去され得る。インター方向フラグコード化中の冗長を除去することは、フラグ符号化及び構文解析プロセスの変更を必要とする。幾つかの実施形態では、インター方向フラグコード化を不変に保つことが望ましい場合、GRPモードは依然として適用されるが、双方向予測ブロックの場合、可能な2つの方向のうち1つの方向のみを使用し得る。例えば、双方向予測が信号伝達されることを可能にされた場合、L0からの動きベクトル又はL1からの動きベクトルのいずれかのみが、GRPモードを用いて使用され得る。双方向動きベクトルのために使用されるべき方向の選択は、少なくとも、ピクチャパラメータセット(PPS)、シーケンスパラメータセット(SPS)、スライスなど、何らかのヘッダにおいて高レベルフラグとして信号伝達され得るか、又は、それは、最大コード化単位(LCU)、コード化単位(CU)、又は予測単位(PU)レベルなど、ブロックレベルにおいて信号伝達され得る。
【0148】
[00168]
図8は、本開示の一実施形態による、ビデオ情報をコード化するための方法800を示すフローチャートである。
図8に示されているステップは、エンコーダ(例えば、
図2に示されたビデオエンコーダ)、デコーダ(例えば、
図3に示されたビデオデコーダ)、又は他の構成要素によって実行され得る。便宜上、ステップについては、エンコーダ、デコーダ又は別の構成要素であり得るコーダによって実行されるものとして説明する。
【0149】
[00169]方法800はステップ801において開始する。ステップ805において、コーダは、現在ブロックが閾値サイズよりも小さいかどうかを決定する。上記で論じたように、閾値サイズは予め定義され得るか、又は任意のレベルにおいてビットストリーム中で信号伝達され得る。現在ブロックが閾値サイズよりも小さくないと決定された場合、ステップ820において、現在ブロックをGRPモードでコード化する。場合によっては、ステップ810において、コーダは、現在ブロックが双方向予測であるかどうか(例えば、ブロックが各方向で動きベクトルを有するかどうか)を更に確認する。現在ブロックが双方向予測でないと決定された場合、ステップ820において、現在ブロックをGRPモードでコード化する。現在ブロックが双方向予測であると決定された場合、ステップ815において、制限付きGRPモードでブロックをコード化する(例えば、GRPモードのために動きベクトルのうちの1つのみを使用する)か、又はGRPモードを無効にし、GRPを使用せず、例えば、通常時間予測を使用することによって現在ブロックをコード化する。方法800はステップ825において終了する。
【0150】
[00170]上記で説明したように、
図2のビデオエンコーダ20又は
図3のビデオデコーダ30の1つ又は複数の構成要素は、現在ブロックが閾値サイズよりも小さいかどうか、又はそれが双方向予測であるのか単方向予測であるのかを決定すること、及び現在ブロックをGRPモードでコード化するか、又は時間予測などの他のモードでコード化することなど、本開示で説明する技法のいずれかを実装するために使用され得る。
【0151】
[00171]別の例では、GRP重み付けインデックスがインター予測方向の後に信号伝達される場合、GRP重み付けインデックスは、ブロックが単方向予測であることを予測方向が示すときのみ、信号伝達されることになる。双方向予測ブロックの場合、GRP重み付けインデックスの信号伝達なしに、双方向予測が信号伝達される場合、GRPモードはオフである(例えば、双方向予測ブロックの場合、GRPモードが無効にされることを意味する)と推定され得る。代替的に、GRP重み付けインデックスは、依然として双方向動きベクトルについて信号伝達され得るが、それは、GRPモードが適用されないことを示す0に等しくなることができる。また別の実施形態では、何らかのGRP重み付けインデックスは双方向について信号伝達され得るが、上記で説明したように、双方向の場合2つの可能な方向のうち一方向のみが使用され得る。そのような実施形態では、上記で説明したように、L0を使用すべきかL1を使用すべきかは、フラグによって示され得る。
【0152】
[00172]別の実施形態では、GRPは、無効にされるか、又は単方向予測ブロックのために部分的に無効にされ得る。その上、上記の実施形態は、信号伝達されたか又は予め定義された閾値を下回るサイズをもつ双方向予測又は単方向予測ブロックの場合、GRPモードが無効にされるか又は部分的に無効にされるように組み合わせられ得る。
【0153】
[00173]上記で説明した技法及び制限はまた、差分領域予測方法及び合成予測方法など、他のレイヤ間テクスチャ予測方法に適用され得る。
【0154】
イントラGRPの場合の参照サンプル置換
[00174]幾つかの状況では、差分領域中でイントラ予測を適用するとき(例えば、イントラGRP)、HEVC規格では、上記で説明したように直接参照サンプル置換を行う(例えば、1<<(BitDepthY−1)で利用不可能な値を置換する)ことは不利であり得る。例えば、イントラGRPの場合、残差の画素値は通常0になるべきであるので、差分ピクチャが(I
e−I
b)として定義される8ビットビデオコード化の場合、参照サンプル置換を行うために、128に等しい1<<(BitDepthY−1)を使用することは効率的でない。
【0155】
[00175]従って、コード化性能を改善するために、イントラGRP又は差分領域イントラ予測の場合、参照サンプル置換は、代わりに、拡張レイヤのビット深度と、差分ピクチャが生成される様式とに基づいて行われる。一実施形態では、拡張レイヤのビット深度がBDである場合、参照サンプル置換のために使用される値は次のようになる。
【数8】
【0156】
[00176]そのような実施形態では、8ビットビデオコード化の場合、差分領域イントラ予測中の参照サンプル置換のために使用される値は、w
e=w
b=1であるとき、0に等しく、w
e=1及びw
b=0.5であるとき、64に等しい。
【0157】
[00177]別の実施形態では、参照サンプル置換は次のように決定される。
【数9】
【0158】
[00178]但し、Cは、例えば、予め定義された定数などの定数である。そのような実施形態では、8ビットビデオコード化の場合、差分領域イントラ予測中の参照サンプル置換のために使用される値は、w
e=w
b=1及びC=0であるとき、0に等しい。別の例では、w
e=1、w
b=0.5、及びC=0であるとき、値は64に等しい。別の例では、w
e=1、w
b=1、及びC=128であるとき、値は128に等しい。
【0159】
[00179]
図9は、本開示の一実施形態による、ビデオ情報をコード化するための方法900を示すフローチャートである。
図9に示されているステップは、エンコーダ(例えば、
図2に示されたビデオエンコーダ)、デコーダ(例えば、
図3に示されたビデオデコーダ)、又は他の構成要素によって実行され得る。便宜上、方法900については、エンコーダ、デコーダ又は別の構成要素であり得るコーダによって実行されるものとして説明する。
【0160】
[00180]方法900はブロック901において開始する。ブロック905において、コーダは、(例えば、隣接ブロックがインターコード化されるので、又は現在ブロックがスライス/タイル境界にあるので)近隣参照サンプルが利用不可能であるかどうかを決定する。近隣参照サンプルが利用不可能でないと決定された場合、コーダはブロック915に進み、イントラGRPを使用して現在ブロックをコード化する。コーダが、近隣参照サンプルが利用不可能であると決定した場合、ブロック910において、コーダは、現在レイヤのビット深度と、差分ピクチャが生成される様式とに基づいて参照サンプル置換を実行する。例えば、コーダは、利用不可能な参照サンプルが交換されるべき値を決定するために、式(7)及び式(8)に示された公式を使用し得る。参照サンプル置換を実行した後に、コーダは、ブロック915においてイントラGRPを使用して現在ブロックをコード化するために、ブロック915に進む。方法900はブロック920において終了する。
【0161】
[00181]上記で説明したように、
図2のビデオエンコーダ20又は
図3のビデオデコーダ30のうちの1つ又は複数の構成要素は、近隣参照サンプルが利用不可能であるかどうかを決定すること、ビット深度と、差分ピクチャが生成される様式とに基づいて参照サンプル置換を実行すること、及び/又はイントラGRPを使用して現在ブロックをコード化することなど、本開示で説明する技法のいずれかを実装するために使用され得る。
【0162】
GRPのための合成アップサンプリング及びMC補間
[00182]以下で説明する方法の実施形態は、有利には、(1)2×スケーラビリティ及び1.5×スケーラビリティだけよりも多くをサポートし、(2)そのための計算コストが実際には高い1/6画素精度を有する、合成アップサンプリング及びMC補間を回避し、ならびに/又は(3)(実際の実装形態で選好されない)イントラBLモードのために使用されるアップサンプリングフィルタとはかなり異なる、合成アップサンプリング及びMC補間フィルタを使用することを回避する。以下の説明では、合成アップサンプリング及びMC補間フィルタを合成フィルタと呼ぶことがある。
【0163】
[00183]拡張動きベクトル(MV)スケーリング
[00184]ソフトウェア及びハードウェア適合性を改善するために、拡張レイヤMVは2
-nの精度にスケーリングされ得、但し、nは整数である。スケーリングは、拡張レイヤのMV精度、及び拡張レイヤとベースレイヤとの間の解像度比に基づく。
【0164】
[00185]一実施形態では、拡張レイヤMVは常に1/16の精度にスケーリングされる。別の実施形態では、MVスケーリングの精度は、シーケンスパラメータセット(SPS)、ピクチャパラメータセット(PPS)及びスライスヘッダなど、あるレベルにおいてビットストリーム中で信号伝達される。
【0165】
[00186]合成フィルタの位相量子化
[00187]概して、2
-nの動きベクトル精度の場合、2
n個の位相をもつフィルタセットが補間フィルタとして使用される。値nは、予め定義されるか、又はビットストリーム中で信号伝達され得る。アップサンプリングフィルタセットと合成フィルタとのフィルタ数は、分数位相の量子化精度に基づいて決定される。アップサンプリングフィルタの分数位相は2つのレイヤ間の空間比に依存し得る。合成フィルタの分数位相は動きベクトルと2つのレイヤ間の空間比の両方に依存し得る。
【0166】
[00188]一実施形態では、合成フィルタとアップサンプリングフィルタとの分数位相は同じ精度に量子化される。量子化精度値は、1/8、1/16など、予め定義された値であり得る。追加又は代替として、合成フィルタ及びアップサンプリングフィルタのルーマ成分とクロマ成分の両方の位相は同じ精度で量子化され得る。追加又は代替として、合成フィルタ及び/又はアップサンプリングフィルタの位相数は、SPS、PPS、及びスライスヘッダ中などで、あるレベルにおいてビットストリーム中で信号伝達され得る。
【0167】
[00189]分離可能合成フィルタ
[00190]上述のように、合成フィルタは、アップサンプリングフィルタとMC補間フィルタとの合成として実装され得る。そのような設計はデコーダ側で選好され得る。しかしながら、エンコーダ側では、別個のアップサンプリングフィルタとMC補間フィルタとが時々選好され得る。しかしながら、合成フィルタは、常に分離可能であるとは限らない。例えば、8タップ16位相フィルタと8タップ4位相フィルタとは、2つのカスケードフィルタと同じ又は同様の結果を生じ得る8タップ8位相フィルタに合成され得る。そのような場合、合成フィルタは分離可能でないことがある。
【0168】
[00191]一実施形態では、分離可能合成フィルタが採用される。そのような実施形態では、合成フィルタはカスケードアップサンプリングフィルタとMC補間フィルタとに分離され得る。例えば、8タップ合成フィルタは2つの4タップフィルタに分離され得、但し、2つのカスケード4タップフィルタの応答は合成8タップフィルタの応答と同じである。このようにして、エンコーダは、2つの分離されたフィルタを使用し得るが、デコーダは合成フィルタを使用し得る。
【0169】
[00192]レイヤ間テクスチャ予測のための合成フィルタとアップサンプリングフィルタとの一体化
[00193]合成フィルタに加えて、レイヤ間テクスチャ予測又はイントラBLモードのためなどのスケーラブルビデオコード化(例えば、SVC、SHVC)、及びベースレイヤと拡張レイヤの両方のためのMC補間において、他のアップサンプリング及び補間フィルタが使用され得る。実際には、全てのこれらの予測ツールは同じフィルタを共有することが有利である。
【0170】
[00194]一実施形態では、テクスチャ予測(イントラBLモード)のための合成フィルタとアップサンプリングフィルタとは同じフィルタ係数を共有する。更に、合成フィルタとアップサンプリングフィルタとが同じ位相量子化精度を有するとき、上記で説明したように、まったく同じフィルタセットが合成フィルタとアップサンプリングフィルタの両方によって使用され得る。別の実施形態では、合成フィルタは同じフィルタ係数をMC補間フィルタと共有する。代替的に、全ての関係するコード化ツールが同じフィルタ係数を共有する。その上、これらのフィルタ係数は、SPS、PPS、適応パラメータセット(APS)、又はスライスヘッダ中などで、あるレベルにおいてビットストリーム中で適応的に信号伝達され得る。
【0171】
[00195]幾つかの実施形態では、同じフィルタが、フィルタの位相のサブセットのみを使用することによって様々な演算のために使用され得る。例えば、16位相フィルタがアップサンプリングとMC補間の両方のために使用され得、ここで、全ての16個の位相がアップサンプリングのために使用されるが、4つのみの位相がMC補間のために使用される。
【0172】
[00196]GRPモードでのルーマ及び/又はクロマのための双一次補間フィルタ
[00197]帯域幅使用を更に低減するために、双一次MC補間フィルタがルーマ成分、クロマ成分、又はその両方に適用され得る。一実施形態では、ベースレイヤブロック(ルーマのみ、クロマのみ、又はその両方)が最初にアップサンプリングされ、次いで、関係する動きベクトルがサブ画素位置を指すとき、双一次補間される。一実施形態では、双一次補間は、1つの方向(例えば、y方向)の前に、他方の方向(例えば、x方向)において実行され得る。別の実施形態では、補間を実行する順序が切り替えられる。双一次補間が、アップサンプリングされたベースレイヤブロックに適用されたとき、双一次補間は拡張ブロック(ルーマのみ、クロマのみ、又はその両方)にも適用され得る。一実施形態では、ベースレイヤブロックと拡張レイヤブロックの両方(ルーマのみ、クロマのみ、又はその両方)が双一次補間される場合、ベースレイヤブロックと拡張レイヤブロックとに対して別々に補間を実行するのではなく、単一の双一次補間がベースレイヤブロックと拡張レイヤブロックとの間の差分に直接適用され得る。
【0173】
[00198]別の実施形態では、合成アップサンプリング及びMC補間フィルタを形成するために、(例えば、4タップフィルタ、6タップフィルタ、8タップフィルタなどを使用することによる)アップサンプリングが双一次MC補間フィルタと合成される。この合成フィルタは、上記で説明したように、分離可能又は非分離可能のいずれかであり得る。
【0174】
簡略化された一般化残差予測
[00199]上記で説明したように、幾つかの実施形態では、メモリアクセス要件と計算複雑さとを低減するために(例えば、2つのカスケード8タップフィルタ処理の代わりに)8タップ合成アップサンプリング及びMC補間フィルタが使用される。しかしながら、以下で説明する実施形態では、GRPのための(マージ、スキップ又はベースモードなど、推定モードが使用されるとき、特に高くなり得る)帯域幅要件及び信号伝達コストは、更に低減され得る。
【0175】
[00200]短合成アップサンプリング及びMC補間フィルタ
[00201]上記で説明したように、一般化残差予測(GRP)は、ベースレイヤ参照ブロックをアップサンプリングすること(例えば、HEVCにおいて使用される8タップアップサンプリングフィルタ)と、拡張レイヤ動きベクトルがサブ画素位置を指す場合、アップサンプリングされたベースレイヤ参照ブロックに対してMC補間フィルタ(例えば、HEVCにおいて使用される8タップMC補間フィルタ)を適用することとを伴う。しかしながら、2つのカスケード8タップフィルタを適用するために必要とされるボーダーパディングの量は、GRPのための高いメモリアクセス要件を生じ得る。従って、上記で説明した実施形態の幾つかでは、2つのカスケード8タップフィルタを使用する代わりに、アップサンプリングとMC補間の両方を行うための単一の合成8タップフィルタの使用が提案される。
【0176】
[00202]別の実施形態では、GRPモードの場合、4タップアップサンプリングフィルタと双一次補間フィルタとが使用される。代替的に、5タップ合成アップサンプリングとMC補間フィルタとが使用され得る。5タップ合成フィルタは、カスケード4タップアップサンプリングフィルタと双一次補間フィルタとに分離され得る。代替的に、6タップよりも長くないフィルタも使用され得る。別の実施形態では、GRPモードの場合、4タップ合成アップサンプリング及びMC補間フィルタが使用される。代替的に、6タップよりも長くないフィルタも使用され得る。例えば、GRPモードでアップサンプリング及びMC補間のために使用されるべきフィルタのタイプは、コーダ(例えば、エンコーダ又はデコーダ)中にハードコード化され得る。
【0177】
[00203]
図10は、本開示の一実施形態による、ビデオ情報をコード化するための方法1000を示すフローチャートである。
図10に示されているステップは、エンコーダ(例えば、
図2に示されたビデオエンコーダ)、デコーダ(例えば、
図3に示されたビデオデコーダ)、又は他の構成要素によって実行され得る。便宜上、方法1000については、エンコーダ、デコーダ又は別の構成要素であり得るコーダによって実行されるものとして説明する。
【0178】
[00204]方法1000はブロック1001において開始する。ブロック1005において、コーダは、4タップアップサンプリングフィルタを使用してベースレイヤ参照ブロックをアップサンプリングする。例えば、コーダは、以下の表1に示されている4タップ16位相フィルタを使用し得る。ブロック1010において、コーダは、アップサンプリングされたベースレイヤ参照ブロックに対して双一次補間フィルタを適用することによって動き補償補間を実行する。ブロック1015において、コーダは、ブロック1010において実行された動き補償に基づいてベースレイヤ残差情報を決定する。ブロック1020において、コーダは、ベースレイヤ残差情報に重み付け係数wを適用することによって、重み付けされたベースレイヤ残差情報を決定し、重み付けされたベースレイヤ残差情報に基づいて現在ブロックを決定する(例えば、予測又は再構成する)。例えば、現在ブロックは、上記で説明した式(6)に示された公式に従って決定され得る。方法1000はブロック1025において終了する。
【0179】
[00205]上記で説明したように、
図2のビデオエンコーダ20又は
図3のビデオデコーダ30の1つ又は複数の構成要素は、4タップアップサンプリングフィルタ又は双一次補間フィルタを適用すること、ベースレイヤ残差情報を決定すること、及び重み付けされたベースレイヤ残差情報に基づいて現在ブロックを決定することなど、本開示で説明する技法のいずれかを実装するために使用され得る。
【0180】
[00206]一実施形態では、以下の表1で与えられる4タップ16位相フィルタが使用され得る。それは、GRPモードの場合、アップサンプリングフィルタ、MC補間フィルタ、又は合成フィルタとして使用され得る。
【表1】
【0181】
[00207]3タップアップサンプリング/平滑化フィルタ
[00208]一実施形態では、(1:1アップサンプリングフィルタとも考えられ得る)3タップ平滑化フィルタがSNR事例においてGRPモードに適用される。例えば、一実施形態では、フィルタ係数は(9、46、9)である。別の実施形態では、GRPモードの場合、3タップアップサンプリング/レイヤ間フィルタが空間事例とSNR事例の両方において使用される。そのような3タップアップサンプリング/レイヤ間フィルタのための係数の2つの例示的なセットが以下の表2及び表3に示されている。
【表2】
【表3】
【0182】
[00209]
図11は、本開示の一実施形態による、ビデオ情報をコード化するための方法1100を示すフローチャートである。
図11に示されているステップは、エンコーダ(例えば、
図2に示されたビデオエンコーダ)、デコーダ(例えば、
図3に示されたビデオデコーダ)、又は他の構成要素によって実行され得る。便宜上、方法1100については、エンコーダ、デコーダ又は別の構成要素であり得るコーダによって実行されるものとして説明する。
【0183】
[00210]方法1100はブロック1101において開始する。ブロック1105において、コーダは、6つ以下のタップを有する合成アップサンプリング及びMC補間フィルタを適用することによって、ベースレイヤ参照ブロックをアップサンプリングし、MC補間を実行する。一実施形態では、5タップ合成アップサンプリング及びMC補間フィルタが使用される。別の実施形態では、表1に示されているものなど、4タップ合成アップサンプリング及びMC補間フィルタが使用される。また別の実施形態では、表2及び表3に示されているものなど、3タップ合成アップサンプリング及びMC補間フィルタが使用される。ブロック1110において、コーダは、ベースレイヤ参照ブロックに対して実行されるアップサンプリング及びMC補間に基づいてベースレイヤ残差情報を決定する。ブロック1115において、ベースレイヤ残差情報に重み付け係数wを適用し、重み付けされたベースレイヤ残差情報に基づいて現在ブロックを決定する(例えば、予測又は再構成する)。例えば、現在ブロックは、上記で説明した式(6)に示された公式に従って決定され得る。方法1100はブロック1120において終了する。
【0184】
[00211]上記で説明したように、
図2のビデオエンコーダ20又は
図3のビデオデコーダ30の1つ又は複数の構成要素は、合成アップサンプリング及びMC補間フィルタを適用することなど、本開示で説明する技法のいずれかを実装するために使用され得る。
【0185】
[00212]特定のビデオ信号成分のためにGRPを無効化
[00213]一実施形態では、GRPはルーマ成分に適用されるのみである。そのような実施形態では、GRPはクロマ成分について無効にされ、通常時間予測がクロマ成分のために使用される。他の実施形態では、GRPは、ルーマのみ又はクロマのみなど、ビデオ信号成分の任意の組合せに適用され得る。例えば、幾つかの実施形態では、GRPはクロマ成分に適用されるのみである。そのような実施形態では、GRPはルーマ成分について無効にされ、通常時間予測がルーマ成分のために使用される。
【0186】
[00214]別の実施形態では、GRPは、通常、指定されたサイズ範囲中のブロックのために適用され、指定された範囲外のブロックの場合、GRPは、ルーマのみ又はクロマのみなど、ビデオ信号成分のサブセットのみに適用される。別の実施形態では、GRPは、通常、閾値サイズよりも大きいブロックのために適用され、閾値サイズよりも小さいかそれに等しいブロックの場合、GRPは、ルーマのみ又はクロマのみなど、ビデオ信号成分のサブセットのみに適用される。サイズ範囲又は閾値サイズは、予め定義され得るか、又はシーケンスレベル、ピクチャオブグループ(GOP)レベル、ピクチャレベル又はスライスレベルなど、任意のレベルにおいてビットストリーム中で信号伝達され得る。
【0187】
[00215]
図12は、本開示の一実施形態による、ビデオ情報をコード化するための方法1200を示すフローチャートである。
図12に示されているステップは、エンコーダ(例えば、
図2に示されたビデオエンコーダ)、デコーダ(例えば、
図3に示されたビデオデコーダ)、又は他の構成要素によって実行され得る。便宜上、方法1200については、エンコーダ、デコーダ又は別の構成要素であり得るコーダによって実行されるものとして説明する。
【0188】
[00216]方法1200はブロック1201において開始する。ブロック1205において、コーダは、クロマ専用モードが有効にされるかどうかを決定する。クロマ専用モードが有効にされると決定された場合、コーダはブロック1220に進み、クロマ成分にのみGRPを適用し、ルーマ成分に通常時間予測を適用する。クロマ専用モードが有効にされないと決定された場合、コーダはブロック1210に進み、ルーマ専用モードが有効にされるかどうかを決定する。ルーマ専用モードが有効にされると決定された場合、コーダはブロック1215に進み、ルーマ成分にのみGRPを適用し、クロマ成分に通常時間予測を適用する。ルーマ専用モードが有効にされないと決定された場合、コーダはブロック1225に進み、全てのビデオ成分に(例えば、ルーマ成分とクロマ成分の両方に)GRPを適用する。方法1200はブロック1230において終了する。
【0189】
[00217]別の実施形態では、
図12に示された1つ又は複数のステップは、省略されるか又は並べ替えられ得る。例えば、クロマ専用モードが有効にされるかどうかが決定される前に、ルーマ専用モードが有効にされるかどうかが決定され得る。更に、コーダは、ルーマ専用モードが有効にされた場合、クロマ専用モードが有効にされないと自動的に仮定し得、その逆も同様である。また、コーダは、他のモードが有効にされるかどうかを検査することなしに、ルーマ専用(又はクロマ専用)モードが有効にされるかどうかのみを検査し得る。
【0190】
[00218]上記で説明したように、
図2のビデオエンコーダ20又は
図3のビデオデコーダ30の1つ又は複数の構成要素は、ルーマ成分にのみGRPを適用すること、又はクロマ成分にのみGRPを適用することなど、本開示で説明する技法のいずれかを実装するために使用され得る。
【0191】
[00219]スキップ/マージ又はベースモードでの推定GRP重み付け
[00220]GRPが適用されたとき、重み付け情報が、CUレベル又はPUレベルにおいてなど、あるレベルにおいて信号伝達される。一実施形態では、推定モード(例えば、スキップ/マージCU/PU)の場合、現在CU/PUのGRP重み付け情報は、動き情報が導出されるのと同様に、空間的及び/又は時間的に近隣のCU/PUからコピー(例えば、推定)される。例えば、現在PUについてのGRP重み付け情報は、現在PUに近隣又は隣接しているPUから導出され得る。別の例では、現在PUについてのGRP重み付け情報は、現在PUが位置する現在ピクチャに時間的に隣接するピクチャ中のPUから導出され得る。従って、そのような実施形態では、GRP重み付け情報はCU/PUについて明示的にコード化されず、その結果信号伝達コスト削減が生じる。
【0192】
[00221]別の実施形態では、推定モードの場合、GRP重み付け情報はデフォルト値に設定され、GRP重み付け情報はCU/PUについて明示的に信号伝達されない。デフォルト値は、予め定義されるか、又はシーケンスパラメータセット(SPS)、ピクチャパラメータセット(PPS)、適応パラメータセット(APS)、スライスヘッダ中などで、任意のレベルにおいてビットストリーム中で信号伝達され得る。
【0193】
[00222]別の実施形態では、推定モードの場合、動き情報及び/又は区分情報がベースレイヤから導出される場合、CU/PUのGRP重み付け情報もベースレイヤから導出される。ベースレイヤがビットストリーム中の第1のレイヤ(例えば、HEVC互換のレイヤ)であるとき、GRP重み付け情報はデフォルト値に設定され得、それは、予め定義されるか又はビットストリーム中で信号伝達され得る。ベースレイヤが別のレイヤの拡張レイヤであるとき、GRP重み付け情報は、例えば、同一位置配置されたベースレイヤブロックから、又はベースレイヤ中心ブロックから、又はベースレイヤ右下ブロックからそれをコピーすることによって、又は動き情報が導出されるのと同様に、直接それのベースレイヤから導出され得る。関係する(例えば、同一位置配置された)ベースレイヤブロックがイントラコード化されるとき、デフォルトGRP重み付け値が使用され得る。このデフォルト値は、予め定義されるか、又はビットストリーム中で明示的に信号伝達され得る。
【0194】
[00223]別の実施形態では、(1:1アップサンプリングを含む)アップサンプリングされたベースレイヤピクチャが拡張レイヤの参照ピクチャリストに入れられるとき、GRP重み付け情報も新しい参照ピクチャ中に含められ得る。マッピングプロセスは動き情報のマッピングと同じであり得る。例えば、GRP重み付け情報を含む新しい参照ピクチャ、ならびにアップサンプリングされたベースレイヤピクチャが拡張レイヤの参照ピクチャリストに追加され得る。一実施形態では、GRP重み付け情報のフィールドが、アップサンプリングされたベースレイヤピクチャのそれぞれの部分に関連付けられ得る。従って、GRP重み付け情報は、時間動きベクトル予測子(TMVP)と同様の方法で導出され得る。
【0195】
[00224]
図13は、本開示の一実施形態による、ビデオ情報をコード化するための方法1300を示すフローチャートである。
図13に示されているステップは、エンコーダ(例えば、
図2に示されたビデオエンコーダ)、デコーダ(例えば、
図3に示されたビデオデコーダ)、又は他の構成要素によって実行され得る。便宜上、方法1300については、エンコーダ、デコーダ又は別の構成要素であり得るコーダによって実行されるものとして説明する。
【0196】
[00225]方法1300はブロック1301において開始する。ブロック1305において、コーダは、現在ブロックが推定モードでコード化されるかどうかを決定する(例えば、CU/PUをスキップするか、又はCU/PUをマージする)。現在ブロックが推定モードでコード化されないと決定された場合、コーダはブロック1315に進み、予め定義されたか、又は信号伝達された重み付け係数に基づいて現在ブロックを決定する。現在ブロックが推定モードでコード化されると決定された場合、コーダはブロック1310に進み、隣接ブロック又はベースレイヤブロックからGRP重み付け情報を導出する。ブロック1320において、コーダは、導出された重み付け情報に基づいて現在ブロックを決定する。方法1300はブロック1325において終了する。
【0197】
[00226]上記で説明したように、
図2のビデオエンコーダ20又は
図3のビデオデコーダ30の1つ又は複数の構成要素は、時間的又は空間的な隣接ブロックからGRP重み付け情報を導出することなど、本開示で説明する技法のいずれかを実装するために使用され得る。
【0198】
[00227]ベースレイヤ参照にアクセスすることを回避する
[00228]GRPでは、ベースレイヤ参照はアクセスされる(及び空間事例ではアップサンプリングされる)。しかしながら、そのようなベースレイヤ参照にアクセスすることが望ましくなくなる状況があり得る。一実施形態では、ベースレイヤ参照にアクセスすることを回避するために、低域フィルタを用いて関係する(例えば、同一位置配置された)拡張レイヤ参照をフィルタ処理することによってベースレイヤ参照が模倣される。例えば、ベースレイヤ参照にアクセスする代わりに、ベースレイヤ参照と同一位置配置された拡張レイヤ参照が低域フィルタを用いてフィルタ処理され、GRPを実行する過程においてアクセスされ得る。従って、フィルタ処理された拡張レイヤ参照は、同一位置配置されたベースレイヤ参照を「模倣」することができ、ベースレイヤ参照のアクセスすることは回避され得る。
【0199】
[00229]一実施形態では、GRPの場合にアクセスされる必要がある任意の関係する(例えば、同一位置配置されたか、近隣であるか、又は他の)アップサンプリングされたベースレイヤ参照を模倣するために、固定低域フィルタが拡張レイヤ参照に適用される。模擬参照は、GRPにおいてアップサンプリングされたベースレイヤ参照の代わりに使用され得る。例えば、上述の固定4タップフィルタ又は3タップフィルタは、模擬参照を導出するために、拡張レイヤ参照をフィルタ処理するために使用され得る。別の実施形態では、模擬アップサンプリングされたベースレイヤ参照を生成するために、適応フィルタが使用される。フィルタ係数は、PPS、APS、又はスライスヘッダ中など、拡張レイヤのビットストリーム中で信号伝達され得る。
【0200】
[00230]
図14は、本開示の一実施形態による、ビデオ情報をコード化するための方法1400を示すフローチャートである。
図14に示されているステップは、エンコーダ(例えば、
図2に示されたビデオエンコーダ)、デコーダ(例えば、
図3に示されたビデオデコーダ)、又は他の構成要素によって実行され得る。便宜上、方法1400については、エンコーダ、デコーダ又は別の構成要素であり得るコーダによって実行されるものとして説明する。
【0201】
[00231]方法1400はブロック1401において開始する。ブロック1405において、コーダは、同一位置配置された拡張レイヤ参照をフィルタ処理することによって、模擬アップサンプリングされたベースレイヤ参照を作成する。例えば、コーダは、模擬アップサンプリングされたベースレイヤ参照を作成するために、固定低域フィルタ又は適応フィルタなど、上記で説明したフィルタのいずれかを使用することができる。ブロック1410において、コーダは、ベースレイヤ参照を参照することなしに、模擬アップサンプリングされたベースレイヤ参照に基づいてGRPモードで現在ブロックを決定する。例えば、模擬参照は、現在ブロックをGRPモードで予測又は再構成するために、(例えば、式(6)に示された)アップサンプリングされたベースレイヤ参照の代わりに使用され得る。方法1400はブロック1415において終了する。
【0202】
[00232]上記で説明したように、
図2のビデオエンコーダ20又は
図3のビデオデコーダ30の1つ又は複数の構成要素は、同一位置配置されたか、又は他の関係する拡張レイヤ参照をフィルタ処理することによって模擬アップサンプリングされたベースレイヤ参照を作成又は導出すること、及び模擬参照に基づいて現在ブロックを決定することなど、本開示で説明する技法のいずれかを実装するために使用され得る。
【0203】
[00233]本明細書で開示する情報及び信号は、多種多様な技術及び技法のいずれかを使用して表され得る。例えば、上記の説明全体にわたって言及され得るデータ、命令、コマンド、情報、信号、ビット、シンボル、及びチップは、電圧、電流、電磁波、磁界又は磁性粒子、光場又は光学粒子、又はそれらの任意の組合せによって表され得る。
【0204】
[00234]本明細書で開示する実施形態に関して説明した様々な例示的な論理ブロック、モジュール、回路、及びアルゴリズムステップは、電子ハードウェア、コンピュータソフトウェア、又は両方の組合せとして実装され得る。ハードウェアとソフトウェアのこの互換性を明確に示すために、様々な例示的な構成要素、ブロック、モジュール、回路、及びステップについて、上記では概してそれらの機能に関して説明した。そのような機能をハードウェアとして実装するか、ソフトウェアとして実装するかは、特定の適用例及び全体的なシステムに課された設計制約に依存する。当業者は、説明した機能を特定の適用例ごとに様々な方法で実装し得るが、そのような実装の決定は、本発明の範囲からの逸脱を生じるものと解釈されるべきではない。
【0205】
[00235]本明細書で説明した技法は、ハードウェア、ソフトウェア、ファームウェア、又はそれらの任意の組合せで実装され得る。そのような技法は、汎用コンピュータ、ワイヤレス通信機器ハンドセット、又はワイヤレス通信機器ハンドセット及び他の機器における適用例を含む複数の用途を有する集積回路機器など、様々な機器のいずれかにおいて実装され得る。モジュール又は構成要素として説明した特徴は、集積論理機器に一緒に、又は個別であるが相互運用可能な論理機器として別々に実装され得る。ソフトウェアで実装した場合、本技法は、実行されたとき、上記で説明した方法のうちの1つ又は複数を実行する命令を含むプログラムコードを備えるコンピュータ可読データ記憶媒体によって、少なくとも部分的に実現され得る。コンピュータ可読データ記憶媒体は、パッケージング材料を含むことがあるコンピュータプログラム製品の一部を形成し得る。コンピュータ可読媒体は、同期型ダイナミックランダムアクセスメモリ(SDRAM)などのランダムアクセスメモリ(RAM)、読取り専用メモリ(ROM)、不揮発性ランダムアクセスメモリ(NVRAM)、電気消去可能プログラマブル読取り専用メモリ(EEPROM(登録商標))、フラッシュメモリ、磁気又は光学データ記憶媒体など、メモリ又はデータ記憶媒体を備え得る。本技法は、追加又は代替として、伝搬信号又は電波など、命令又はデータ構造の形態でプログラムコードを搬送又は伝達し、コンピュータによってアクセスされ、読み取られ、及び/又は実行され得るコンピュータ可読通信媒体によって、少なくとも部分的に実現され得る。
【0206】
[00236]プログラムコードは、1つ又は複数のデジタル信号プロセッサ(DSP)、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブルロジックアレイ(FPGA)、又は他の等価の集積回路又はディスクリート論理回路など、1つ又は複数のプロセッサを含み得るプロセッサによって実行され得る。そのようなプロセッサは、本開示で説明する技法のいずれかを実行するように構成され得る。汎用プロセッサはマイクロプロセッサであり得るが、代替として、プロセッサは、任意の従来のプロセッサ、コントローラ、マイクロコントローラ、又は状態機械であり得る。プロセッサは、コンピュータ機器の組合せ、例えば、DSPとマイクロプロセッサとの組合せ、複数のマイクロプロセッサ、DSPコアと連携する1つ又は複数のマイクロプロセッサ、又は任意の他のそのような構成として実装され得る。従って、本明細書で使用する「プロセッサ」という用語は、上記の構造、上記の構造の任意の組合せ、又は本明細書で説明した技法の実装に好適な他の構造又は装置のいずれかを指す。更に、幾つかの態様では、本明細書で説明した機能は、符号化及び復号のために構成された専用のソフトウェアモジュール又はハードウェアモジュール内に提供されるか、又は複合ビデオエンコーダ/デコーダ(コーデック)に組み込まれ得る。また、本技法は、1つ又は複数の回路又は論理要素において完全に実装され得る。
【0207】
[00237]本開示の技法は、ワイヤレスハンドセット、集積回路(IC)又はICのセット(例えば、チップセット)を含む、多種多様な機器又は装置において実装され得る。本開示では、開示する技法を実行するために構成された機器の機能的態様を強調するために様々な構成要素、モジュール、又はユニットについて説明したが、それらの構成要素、モジュール、又はユニットは、必ずしも異なるハードウェアユニットによる実現を必要とするとは限らない。むしろ、上記で説明したように、様々なユニットが、好適なソフトウェア及び/又はファームウェアとともに、上記で説明した1つ又は複数のプロセッサを含めて、コーデックハードウェアユニットにおいて組み合わせられるか、又は相互動作可能なハードウェアユニットの集合によって与えられ得る。
【0208】
[00238]本発明の様々な実施形態について説明した。これら及び他の実施形態は以下の特許請求の範囲内に入る。
以下に、出願当初の特許請求の範囲に記載された発明を付記する。
[C1]
ビデオ情報をコード化するように構成された装置であって、前記装置が、
ベースレイヤと拡張レイヤとに関連付けられたビデオ情報を記憶するように構成されたメモリユニットと、
前記メモリユニットと通信するプロセッサとを備え、前記プロセッサは、
拡張レイヤ動きベクトルを使用してベースレイヤ参照ブロックを決定することと、
前記ベースレイヤと前記拡張レイヤとが異なる解像度を有するとき、アップサンプリングフィルタを使用することによって前記ベースレイヤ参照ブロックをアップサンプリングすることと、
前記アップサンプリングされたベースレイヤ参照ブロックをフィルタ処理することによって動き補償補間を実行することと、
フィルタ処理された前記アップサンプリングされたベースレイヤ参照ブロックに基づいてベースレイヤ残差情報を決定することと、
前記ベースレイヤ残差情報に重み付け係数を適用することによって、重み付けされたベースレイヤ残差情報を決定することと、
前記重み付けされたベースレイヤ残差情報に基づいて拡張レイヤブロックを決定することとを行うように構成され、ここにおいて、前記アップサンプリングフィルタが6つ又はそれよりも少ないタップを有する、装置。
[C2]
前記プロセッサが、4タップアップサンプリングフィルタを使用して前記ベースレイヤ参照ブロックをアップサンプリングし、双一次補間フィルタを使用して前記動き補償補間を実行するように構成された、C1に記載の装置。
[C3]
前記プロセッサが、前記ベースレイヤ参照ブロックをアップサンプリングし、単一の5タップ合成アップサンプリング及び動き補償補間フィルタを適用することによって前記動き補償補間を実行するように構成された、C1に記載の装置。
[C4]
前記合成アップサンプリング及び動き補償補間フィルタが前記拡張レイヤブロックのルーマ成分とクロマ成分の両方について16個の位相を有する、C3に記載の装置。
[C5]
前記拡張レイヤ動きベクトルが画素の1/16の精度にスケーリングされる、C4に記載の装置。
[C6]
前記プロセッサが、平滑化、アップサンプリング、又は他のレイヤ間フィルタ処理を実行するために、3タップ平滑化フィルタと3タップアップサンプリングフィルタと3タップレイヤ間フィルタとのうちの少なくとも1つを使用するように更に構成された、C1に記載の装置。
[C7]
前記プロセッサは、
ルーマ専用モードが有効にされると決定したことに応答して、前記重み付けされたベースレイヤ残差情報に基づいて前記拡張レイヤブロックの前記ルーマ成分のみを決定し、通常時間予測を使用することによって前記拡張レイヤブロックの前記クロマ成分を決定することと、
クロマ専用モードが有効にされると決定したことに応答して、前記重み付けされたベースレイヤ残差情報に基づいて前記拡張レイヤブロックの前記クロマ成分のみを決定し、通常時間予測を使用することによって前記拡張レイヤブロックの前記ルーマ成分を決定することとを行うように構成された、C1に記載の装置。
[C8]
ビデオ情報をコード化する方法であって、前記方法は、
ベースレイヤと拡張レイヤとに関連付けられたビデオ情報を記憶することと、
拡張レイヤ動きベクトルを使用してベースレイヤ参照ブロックを決定することと、
前記ベースレイヤと前記拡張レイヤとが異なる解像度を有するとき、6つ又はそれよりも少ないタップを有するアップサンプリングフィルタを使用することによって前記ベースレイヤ参照ブロックをアップサンプリングすることと、
前記アップサンプリングされたベースレイヤ参照ブロックをフィルタ処理することによって動き補償補間を実行することと、
前記フィルタ処理されたアップサンプリングされたベースレイヤ参照ブロックに基づいてベースレイヤ残差情報を決定することと、
前記ベースレイヤ残差情報に重み付け係数を適用することによって、重み付けされたベースレイヤ残差情報を決定することと、
前記重み付けされたベースレイヤ残差情報に基づいて拡張レイヤブロックを決定することとを備える、方法。
[C9]
前記アップサンプリングフィルタが4タップアップサンプリングフィルタであり、前記動き補償補間が、双一次補間フィルタを使用することによって実行される、C8に記載の方法。
[C10]
前記アップサンプリングすることと前記動き補償補間とが、単一の5タップ合成アップサンプリング及び動き補償補間フィルタを適用することによって一緒に実行される、C8に記載の方法。
[C11]
前記合成アップサンプリング及び動き補償補間フィルタが前記拡張レイヤブロックのルーマ成分とクロマ成分の両方について16個の位相を有する、C10に記載の方法。
[C12]
前記拡張レイヤ動きベクトルが画素の1/16の精度にスケーリングされる、C11に記載の方法。
[C13]
平滑化、アップサンプリング、又は他のレイヤ間フィルタ処理を実行するために、3タップ平滑化フィルタと3タップアップサンプリングフィルタと3タップレイヤ間フィルタとのうちの少なくとも1つを使用することを更に備える、C8に記載の方法。
[C14]
前記拡張レイヤブロックを決定する前記ステップは、
ルーマ専用モードが有効にされると決定したことに応答して、前記重み付けされたベースレイヤ残差情報に基づいて前記拡張レイヤブロックの前記ルーマ成分のみを決定し、通常時間予測を使用することによって前記拡張レイヤブロックの前記クロマ成分を決定することと、
クロマ専用モードが有効にされると決定したことに応答して、前記重み付けされたベースレイヤ残差情報に基づいて前記拡張レイヤブロックの前記クロマ成分のみを決定し、通常時間予測を使用することによって前記拡張レイヤブロックの前記ルーマ成分を決定することとを備える、C8に記載の方法。
[C15]
ビデオ情報をコード化するように構成された装置であって、前記装置が、
ベースレイヤと拡張レイヤとに関連付けられたビデオ情報を記憶するように構成されたメモリユニットと、
前記メモリユニットと通信しているプロセッサとを備え、前記プロセッサは、
拡張レイヤブロックが、閾値サイズより大きいか又はそれに等しいサイズを有するかどうかを決定すること、及び
前記拡張レイヤブロックが、前記閾値サイズよりも大きいか又はそれに等しいサイズを有すると決定したことに応答して、少なくとも、
前記ベースレイヤと前記拡張レイヤとが異なる解像度を有するとき、アップサンプリングフィルタを使用することによってベースレイヤ参照ブロックをアップサンプリングすることと、
前記アップサンプリングされたベースレイヤ参照ブロックをフィルタ処理することによって動き補償補間を実行することと、
前記フィルタ処理されたアップサンプリングされたベースレイヤ参照ブロックに基づいてベースレイヤ残差情報を決定することと、
前記ベースレイヤ残差情報に重み付け係数を適用することによって、重み付けされたベースレイヤ残差情報を決定することと、
前記重み付けされたベースレイヤ残差情報に基づいて前記拡張レイヤブロックを決定することとによって、一般化残差予測(GRP)を実行することを行うように構成された、装置。
[C16]
前記プロセッサは、前記拡張レイヤブロックが、前記閾値サイズよりも大きくないか又はそれに等しいサイズを有すると決定したことに応答して、前記拡張レイヤブロックが単方向予測ブロックである場合のみ、前記拡張レイヤブロックについてGRPを実行する、C15に記載の装置。
[C17]
前記プロセッサによって実行される前記GRPがイントラ予測を含み、前記拡張レイヤブロックに隣接し、前記イントラ予測での使用するに利用不可能である近隣参照サンプルは、前記拡張レイヤのビット深度と、前記イントラ予測が差分領域中で実行されるかどうかとに基づいて置換される、C15に記載の装置。
[C18]
前記重み付け係数が、前記拡張レイヤブロックに空間的に近隣又は隣接するブロック、前記拡張レイヤブロックがそこに位置する現在ピクチャに時間的に隣接するピクチャ中のブロック、又は前記拡張レイヤブロックと同一位置配置されたベースレイヤブロックから導出される、C15に記載の装置。
[C19]
前記重み付け係数がデフォルト値に設定され、前記拡張レイヤブロックについて重み付け情報が信号伝達されない、C15に記載の装置。
[C20]
前記プロセッサが、GRP重み付け情報を含むレイヤ間参照ピクチャと、前記ベースレイヤのアップサンプリングされたテクスチャピクチャとを参照ピクチャリストに追加するように構成された、C15に記載の装置。
[C21]
前記プロセッサが、ベースレイヤ参照ピクチャと同一位置配置された拡張レイヤ参照ピクチャをフィルタ処理することによって、前記ベースレイヤ参照ピクチャにアクセスする代わりにアクセスされ得る模擬ベースレイヤ参照ピクチャを決定することと、前記模擬ベースレイヤ参照ピクチャに基づいて前記拡張レイヤブロックを決定することとを行うように構成された、C15に記載の装置。
[C22]
前記プロセッサが、固定4タップ低域フィルタと固定3タップ低域フィルタと適応フィルタとのうちの少なくとも1つを使用して前記同一位置配置された拡張レイヤ参照ピクチャをフィルタ処理するように構成された、C21に記載の装置。
[C23]
ビデオ情報をコード化する方法であって、装置は、
ベースレイヤと拡張レイヤとに関連付けられたビデオ情報を記憶すること、
拡張レイヤブロックが、閾値サイズよりも大きいか又はそれに等しいサイズを有するかどうかを決定すること、及び
前記拡張レイヤブロックが、前記閾値サイズよりも大きいか又はそれに等しいサイズを有すると決定したことに応答して、少なくとも、
前記ベースレイヤと前記拡張レイヤとが異なる解像度を有するとき、アップサンプリングフィルタを使用することによってベースレイヤ参照ブロックをアップサンプリングすることと、
前記アップサンプリングされたベースレイヤ参照ブロックをフィルタ処理することによって動き補償補間を実行することと、
前記フィルタ処理されたアップサンプリングされたベースレイヤ参照ブロックに基づいてベースレイヤ残差情報を決定することと、
前記ベースレイヤ残差情報に重み付け係数を適用することによって、重み付けされたベースレイヤ残差情報を決定することと、
前記重み付けされたベースレイヤ残差情報に基づいて前記拡張レイヤブロックを決定することとによって、一般化残差予測(GRP)を実行することを備える、方法。
[C24]
前記拡張レイヤブロックが、前記閾値サイズよりも大きくないか又はそれに等しいサイズを有すると決定したことに応答して、前記拡張レイヤブロックが単方向予測ブロックである場合のみ、前記拡張レイヤブロックについてGRPを実行することを更に備える、C23に記載の方法。
[C25]
実行される前記GRPがイントラ予測を含み、前記拡張レイヤブロックに隣接し、前記イントラ予測での使用に利用不可能である近隣参照サンプルは、前記拡張レイヤのビット深度と、前記イントラ予測が異なる領域中で実行されるかどうかとに基づいて置換される、C23に記載の方法。
[C26]
前記重み付け係数が、前記拡張レイヤブロックに空間的に近隣又は隣接するブロック、前記拡張レイヤブロックがそこに位置する現在ピクチャに時間的に隣接するピクチャ中のブロック、又は前記拡張レイヤブロックと同一位置配置されたベースレイヤブロックから導出される、C23に記載の方法。
[C27]
前記重み付け係数がデフォルト値に設定され、前記拡張レイヤブロックについて重み付け情報が信号伝達されない、C23に記載の方法。
[C28]
GRP重み付け情報を含むレイヤ間参照ピクチャと、前記ベースレイヤのアップサンプリングされたテクスチャピクチャとを参照ピクチャリストに追加することを更に備える、C23に記載の方法。
[C29]
ベースレイヤ参照ピクチャと同一位置配置された同一位置配置拡張レイヤ参照ピクチャをフィルタ処理することによって、前記ベースレイヤ参照ピクチャの代わりにアクセスされ得る模擬ベースレイヤ参照ピクチャを決定することと、
前記模擬ベースレイヤ参照ピクチャに基づいて前記拡張レイヤブロックを決定することとを更に備える、C23に記載の方法。
[C30]
前記同一位置配置拡張レイヤ参照ピクチャが、固定4タップ低域フィルタと固定3タップ低域フィルタと適応フィルタとのうちの少なくとも1つを使用してフィルタ処理される、C29に記載の方法。