【文献】
Truong Cong Thang, et al.,Proposal to the Extension of Video Parameter Set,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, 14-23 Jan. 2013,SW,ITU-T,2013年 1月 8日,JCTVC-L0246
【文献】
Jill Boyce, et al.,Extensible High Layer Syntax for Scalability,Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11 5th Meeting: Geneva, CH, 16-23 March, 2011,SW,2011年 3月22日,JCTVC-E279
【文献】
Jill Boyce, et al.,Layers present SEI message,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, 18-26 Apr. 2013,SW,2013年 4月 4日,JCTVC-M0043
【文献】
Jianle Chen et al.,SHVC Draft Text 1,JCTVC-L1008,2013年 3月20日,pp.11,18
(58)【調査した分野】(Int.Cl.,DB名)
前記第1の存在情報は、時間的副層の前記第1のセット内の各時間的副層に関して、時間的副層の前記第1のセット内の前記時間的副層の各々が存在するかどうかを示すフラグまたは構文要素を備え、前記第2の存在情報は、時間的副層の前記第2のセット内の各時間的副層に関して、時間的副層の前記第2のセット内の前記時間的副層の各々が存在するかどうかを示すフラグまたは構文要素を備える請求項1に記載の映像コーディングデバイス。
前記第1のセットの前記時間的副層のうちの1つは、基本層ピクチャを含み、前記映像コーディングデバイスは、拡張層ピクチャのスライスに関して、前記第1のセットの前記1つの時間的副層が前記ビットストリーム内に存在しないことを前記第1の存在情報が示す場合は前記拡張層ピクチャの層間予測に関して前記基本層ピクチャが使用されるかどうかを、スライスレベルで決定することを控えるようにさらに構成される請求項1に記載の映像コーディングデバイス。
前記映像コーディングデバイスは、前記映像コーディングデバイスによって出力される映像信号を変化させずに前記基本層ピクチャが層間予測に関して使用されるかどうかを、スライスレベルで決定することを控えるように構成される請求項4に記載の映像コーディングデバイス。
前記映像コーディングデバイスは、コンピュータ、ノートブック、ラップトップ、タブレットコンピュータ、セットトップボックス、電話ハンドセット、スマートフォン、スマートパッド、テレビ、カメラ、表示装置、デジタルメディアプレーヤー、ビデオゲームプレイコンソール、及び車載コンピュータから選択される請求項1に記載の映像コーディングデバイス。
前記基本層ピクチャが層間予測に関して使用されるかどうかを、スライスレベルで決定することを前記控えることは、出力される映像信号を変化させずに行われる請求項13に記載の方法。
【発明を実施するための形態】
【0015】
[0023]ここにおいて説明される幾つかの実施形態は、高度な映像コーデック、例えば、HEVC(高効率映像コーディング)、に関するスケーラブル映像コーディングのための層間予測に関するものである。より具体的には、本開示は、HEVCのスケーラブル映像コーディング(SVC)拡張における層間予測の性能向上のためのシステム及び方法に関するものである。
【0016】
[0024]以下の説明では、幾つかの実施形態に関連するH.264/AVC技法が説明される。HEVC規格及び関連する技法についても論じられる。幾つかの実施形態は、ここにおいてはHEVC規格及び/又はH.264規格の点で説明されている一方で、ここにおいて開示されるシステム及び方法は、あらゆる適切な映像コーディング規格に対して適用可能であることを当業者は評価するであろう。例えば、ここにおいて開示される実施形態は、次の規格のうちの1つ以上に対して適用可能である。すなわち、ITU−T H.261、ISO/IEC MPEG−1 Visual、ITU−T H.262、ISO/IEC MPEG−2 Visual、ITU−T H.263、ISO/IEC MPEG4 Visual及びITU−T H.264(ISO/IEC MPEG−4 AVCとも呼ばれる)であり、そのスケーラブル映像コーディング(SVC)及びマルチビュー映像コーディング(MVC)拡張を含む。
【0017】
[0025]HEVCは、概して、多くの点において、それ以前の映像コーディング規格の枠組に従う。HEVCにおける予測単位は、幾つかの以前の映像コーディング規格(例えば、マクロブロック)と異なる。実際、幾つかの以前の映像コーディング規格において理解されるように、マクロブロック概念は、HEVCでは存在しない。マクロブロックは、四分木方式に基づく階層構造に取って代わられており、それは、可能な利益の中でとりわけ高い柔軟性を提供することができる。例えば、HEVC方式では、3つのタイプのブロック、コーディングユニット(CU)、予測ユニット(PU)、及び変換ユニット(TU)が定義されている。CUは、基本的な領域分割単位を意味する。CUは、マクロブロック概念と類似であるとみなすことができるが、最大サイズを制限しておらず、コンテンツの適合性を向上させるために4つの等しいサイズのCUへの反復的分割を可能にすることができる。PUは、インター/イントラ予測の基本単位であるとみなすことができ、不正規な画像パターンを有効にコーディングするために複数の任意の形状分割を単一のPU内に入れることができる。TUは、変換の基本単位であるとみなすことができる。それは、PUと独立して定義することができるが、そのサイズは、TUが属するCUに制限することができる。3つの異なる概念へのブロック構造のこの分離は、その役割に従って各々を最適化することができ、その結果として、向上されたコーディング効率を得ることができる。
【0018】
[0026]例示することのみを目的として、ここにおいて開示される幾つかの実施形態は、2つのみの層(例えば、より下位の層、例えば、基本層、及びより高位の層、例えば、拡張層)を含む例を用いて説明されている。該例は、複数の基本層及び/又は拡張層を含む構成に対して適用可能であることが理解されるべきである。さらに、説明を容易にするために、次の開示は、幾つかの実施形態を参照する用語“フレーム”又は“ブロック”を含む。しかしながら、これらの用語は、限定することは意味しない。例えば、以下において説明される技法は、あらゆる適切な映像単位、例えば、ブロック(例えば、CU、PU、TU、マクロブロック、等)、スライス、フレーム、等とともに使用することができる。
【0019】
映像コーディング規格
[0027]デジタル画像、例えば、ビデオ画像、TV画像、静止画像、又は、ビデオレコーダ又はコンピュータによって生成された画像、は、水平線及び垂直線で配置されたピクセル又はサンプルから成ることができる。単一の画像内のピクセル数は、典型的には、数万にも及ぶ。各ピクセルには、典型的には、ルミナンス情報及びクロミナンス情報が入っている。圧縮しなければ、画像符号器から画像復号器に運ばれる情報量は非常に膨大であり、リアルタイムでの画像送信を不可能にしてしまう。送信されるべき情報量を低減させるために、幾つかの異なる圧縮法、例えば、JPEG、MPEG及びH.263規格が開発されている。
【0020】
[0028]映像コーディング規格は、ITU−T H.261、ISO/IEC MPEG−1 Visual、ITU−T H.262、ISO/IEC MPEG−2 Visual、ITU−T H.263、ISO/IEC MPEG−4 Visual及びITU−T H.264(ISO/IEC MPEG−4 AVCとも呼ばれる)であり、そのスケーラブル映像コーディング(SVC)及びマルチビュー映像コーディング(MVC)拡張を含む。
【0021】
[0029]さらに、新しい映像コーディング規格、すなわち、高効率映像コーディング(HEVC)が、ITU−Tビデオコーディングエキスパーツグループ(VCEG)及びISO/IECモーションピクチャエキスパーツグループ(MPEG)の映像コーディングに関する共同作業チーム(JCT−VC)によって現在策定中である。HEVCドラフト10に関する完全な引用名は、document JCTVC-L1003, Bross et al., "High Efficiency Video Coding(HEVC) Text Specification Draft 10," Joint Collaborative Team on Video Coding(JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11, 12th Meeting: Geneva, Switzerland, January 14, 2013 to January 23, 2013である。HEVCのマルチビュー拡張版、すなわち、MV−HEVC、及びHEVCのスケーラブル拡張版、すなわち、SHVCも、JCT−3V(3D映像コーディング拡張版策定に関するITU−T/ISO/IEC共同作業チーム)及びJCT−VCによってそれぞれ策定中である。
【0022】
[0030]以下において、新規のシステム、装置、及び方法の様々な態様が、添付された図面を参照してより完全に説明される。しかしながら、本開示は、数多くの異なる形態で具現化することができ、本開示全体を通じて提示される特定の構造又は機能に限定されるとは解釈されるべきでない。むしろ、これらの態様は、本開示が徹底的でかつ完全なものになり、さらに本開示の適用範囲を当業者に完全に伝達するようにするために提供される。ここにおける教示に基づき、本開示の適用範囲は、ここにおいて開示される新規のシステム、装置、及び方法の態様を網羅することが意図されており、本開示のその他の態様から独立して実装されるか又は本開示のその他の態様と組み合わせて実装されるかを問わないことを当業者は評価すべきである。例えば、ここにおいて説明されるあらゆる数の態様を用いて装置を実装することができ及び方法を実践することができる。さらに、本開示の適用範囲は、ここにおいて説明される本開示の様々な態様に加えての又はここにおいて説明される本開示の様々な態様以外のその他の構造、機能、又は構造と機能を用いて実装される装置又は実践される方法を網羅することが意図される。ここにおいて開示されるいずれの態様も、請求項の1つ以上の要素によって具現化することができることが理解されるべきである。
【0023】
[0031]ここにおいては特定の態様が説明されるが、これらの態様の数多くの変形及び置換が本開示の適用範囲内に入る。好ましい態様の幾つかの利益及び利点が述べられているが、本開示の適用範囲は、特定の利益、用途、又は目標に限定されることは意図されない。むしろ、本開示の態様は、異なる無線技術、システム構成、ネットワーク、及び送信プロトコルに対して広範囲にわたって適用可能であることが意図され、それらのうちの一部は、図内において及び好ましい態様に関する以下の説明において例を通じて示される。発明を実施するための形態及び図面は、本開示を限定するのではなく、単なる例示であるにすぎず、本開示の適用範囲は、添付される請求項及びそれらの同等物によって定義される。
【0024】
[0032]添付される図面は、例を示すものである。添付される図面において参照数字によって示される要素は、以下の説明において同様の参照数字によって示される要素に対応する。本開示において、序数(例えば、“第1の”、“第2の”、“第3の”、等)で始まる名称を有する要素は、それらの要素が特定の順序を有することは必ずしも意味しない。むしろ、該序数は、単に、同じ又は同様のタイプの異なる要素を意味するために使用されるにすぎない。
【0025】
映像コーディングシステム
[0033]
図1は、本開示において説明される態様による技法を利用することができる映像コーディングシステム例10を示すブロック図である。ここにおいて使用される場合、用語“映像コーダ”は、概して、映像符号器及び映像復号器の両方を意味する。本開示においては、用語“映像コーディング”又は“コーディング”は、概して、映像符号化及び映像復号を意味することができる。
【0026】
[0034]
図1において示されるように、映像コーディングシステム10は、ソースデバイス12と、行先デバイス14と、を含む。ソースデバイス12は、符号化された映像データを生成する。行先デバイス14は、ソースデバイス12によって生成された符号化された映像データを復号することができる。ソースデバイス12及び行先デバイス14は、広範なデバイスを備えることができ、デスクトップコンピュータ、ノートブック(例えば、ラップトップ)コンピュータ、タブレットコンピュータ、セットトップボックス、電話ハンドセット、例えば、いわゆる“スマート”フォン、いわゆる“スマート”パッド、テレビ、カメラ、表示装置、デジタルメディアプレーヤー、ビデオゲームコンソール、車載コンピュータ、等を含む。幾つかの事例においては、ソースデバイス12及び行先デバイス14は、無線通信のために装備することができる。
【0027】
[0035]行先デバイス14は、チャネル16を介してソースデバイス12から符号化された映像データを受信することができる。チャネル16は、符号化された映像データをソースデバイス12から行先デバイス14に移動させることが可能なあらゆるタイプの媒体又はデバイスを備えることができる。一例では、チャネル16は、ソースデバイス12が符号化された映像データをリアルタイムで直接行先デバイス14に送信するのを可能にする通信媒体を備えることができる。この例では、ソースデバイス12は、通信規格、例えば、無線通信プロトコル、により符号化された映像データを変調することができ、及び、変調された映像データを行先デバイス14に送信することができる。通信媒体は、無線又は有線の通信媒体、例えば、無線周波数(RF)スペクトル又は1つ以上の物理的送信ライン、を備えることができる。通信媒体は、パケットに基づくネットワーク、例えば、ローカルエリアネットワーク、ワイドエリアネットワーク、又はグローバルネットワーク、例えば、インターネット、の一部を形成することができる。通信媒体は、ルータ、スイッチ、基地局、又はソースデバイス12から行先デバイス14への通信を容易にするのに役立つことができるその他のあらゆる装置を含むことができる。
【0028】
[0036]他の例においては、チャネル16は、ソースデバイス12によって生成された符号化された映像データを格納する記憶媒体に対応することができる。この例では、行先デバイス14は、ディスクアクセス又はカードアクセスを介して記憶媒体にアクセスすることができる。記憶媒体は、様々なローカルでアクセスされるデータ記憶媒体、例えば、Blue−rayディスク、DVD、CD−ROM、フラッシュメモリ、又は符号化された映像データを格納するためのその他の適切なデジタル記憶媒体を含むことができる。さらなる例では、チャネル16は、ソースデバイス12によって生成された符号化された映像を格納するファイルサーバ又は他の中間的な記憶デバイスを含むことができる。この例では、行先デバイス14は、ストリーミング又はダウンロードを介してファイルサーバ又はその他の中間的な記憶デバイスにおいて格納される符号化された映像データにアクセスすることができる。ファイルサーバは、符号化された映像データを格納すること及びその符号化された映像データを行先デバイス14に送信することが可能なあらゆるタイプのサーバであることができる。ファイルサーバ例は、(例えば、ウェブサイトのための)ウェブサーバ、FTPサーバ、ネットワーク接続記憶(NAS)デバイス、及びローカルディスクドライブを含む。行先デバイス14は、インターネット接続を含む標準的なデータ接続を通じて符号化された映像データにアクセスすることができる。データ接続タイプ例は、ファイルサーバに格納された符号化された映像データにアクセスするのに適する無線チャネル(例えば、Wi−Fi接続、等)、有線接続(例えば、DSL、ケーブルモデム、等)、又は両方の組み合わせを含むことができる。ファイルサーバからの符号化された映像データの送信は、ストリーミング送信、ダウンロード送信、又は両方の組み合わせであることができる。
【0029】
[0037]本開示の技法は、無線の用途又はセッティングには必ずしも限定されない。それらの技法は、映像コーディングに適用することができ、様々なマルチメディア用途、例えば、オーバー・ザ・エアテレビ放送、ケーブルテレビ送信、衛星テレビ送信、例えば、インターネットを介してのストリーミング映像送信(例えば、ダイナミックアダプティブストリーミングオーバーHTTP(DASH)、等)、データ記憶媒体上に格納するためのデジタル映像の符号化、データ記憶媒体に格納されたデジタル映像の復号、又はその他の用途をサポートする。幾つかの例では、映像コーディングシステム10は、映像ストリーミング、映像再生、映像放送、及び/又は映像テレフォニー、等の用途をサポートするために1方向又は2方向の映像送信をサポートするように構成することができる。
【0030】
[0038]
図1の例では、ソースデバイス12は、映像ソース18と、映像符号器20と、出力インタフェース22と、を含む。幾つかの事例においては、出力インタフェース22は、変調器/復調器(モデム)及び/又は送信機を含むことができる。ソースデバイス12において、映像ソース18は、ソース、例えば、映像キャプチャデバイス、例えば、ビデオカメラ、以前にキャプチャされた映像が入った映像アーカイブ、及び/又は映像コンテンツプロバイダからの映像を受信するための映像フィードインタフェース、及び/又は、映像データを生成するためのコンピュータグラフィックスシステム、又は、該ソースの組み合わせを含むことができる。
【0031】
[0039]映像符号器20は、キャプチャされた、予めキャプチャされた、又はコンピュータによって生成される映像データを符号化するように構成することができる。符号化された映像データは、ソースデバイス12の出力インタフェース22を介して行先デバイス14に直接送信することができる。符号化された映像データは、復号及び/又は再生を目的として行先デバイス14がのちにアクセスするために記憶媒体又はファイルサーバに格納することもできる。
【0032】
[0040]
図1の例において、行先デバイス14は、入力インタフェース28と、映像復号器30と、表示装置32と、を含む。幾つかの事例においては、入力インタフェース28は、受信機及び/又はモデムを含むことができる。行先デバイス14の入力インタフェース28は、チャネル16を通じて符号化された映像データを受信する。符号化された映像データは、映像符号器20によって生成され、映像データを表す様々な構文要素を含むことができる。構文要素は、ブロック及びその他のコーディングされたユニット、例えば、ピクチャのグループ(GOP)、の特徴及び/又は処理を記述することができる。該構文要素は、通信媒体で送信される符号化された映像データとともに含めること、記憶媒体に格納すること、又はファイルサーバに格納することができる。
【0033】
[0041]表示装置32は、行先デバイス14と一体化すること又は行先デバイス14の外部に存在することができる。幾つかの例においては、行先デバイス14は、一体化された表示装置を含むことができ及び外部の表示デバイスとインタフェースするように構成することもできる。その他の例においては、行先デバイス14は、表示装置であることができる。概して、表示装置32は、復号された映像データをユーザに表示する。表示装置32は、様々な表示装置、例えば、液晶ディスプレイ(LCD)、プラズマディスプレイ、有機発光ダイオード(OLED)ディスプレイ、又は他のタイプの表示装置、を備えることができる。
【0034】
[0042]映像符号器20及び映像復号器30は、映像圧縮規格、例えば、現在策定中の高効率映像コーディング(HEVC)規格、に従って動作することができ、及びHEVCテストモデル(HM)に準拠することができる。代替として、映像符号器20及び映像復号器30は、その他の独占規格又は工業規格、例えば、ITU−T H.264規格、代替でMPEG−4、Part10、Advanced Video Coding(AVC)と呼ばれる、又は該規格の拡張版、により動作することができる。しかしながら、本開示の技法は、特定のコーディング規格には限定されない。映像圧縮規格のその他の例は、MPEG−2と、ITU−T H.263と、を含む。
【0035】
[0043]
図1の例には示されていないが、映像符号器20及び映像復号器30は、各々、音声符号器及び復号器と一体化することができ、及び、共通のデータストリーム又は別々のデータストリーム内の音声及び映像の両方の符号化を取り扱うための該当するMUX−DEMUXユニット、又はその他のハードウェア及びソフトウェアを含むことができる。該当する場合は、幾つかの例においては、MUX−DEMUXユニットは、ITU H.223マルチプレクサプロトコル、又はその他のプロトコル、例えば、ユーザデータグラムプロトコル(UDP)、に準拠することができる。
【0036】
[0044]繰り返しになるが、
図1は単なる例であり、本開示の技法は、符号化デバイスと復号デバイスとの間でのデータ通信を必ずしも含まない映像コーディング設定(例えば、映像符号化又は映像復号)に対して適用することができる。その他の例においては、データは、ローカルメモリから取り出す、ネットワークを通じてストリーミングする、等であることができる。符号化デバイスは、データを符号化してメモリに格納することができ、及び/又は、復号デバイスは、データをメモリから取り出して復号することができる。多くの例において、符号化及び復号は、互いに通信せず、単にメモリへのデータを符号化する及び/又はメモリからデータを取り出して復号するデバイスによって行われる。
【0037】
[0045]映像符号器20及び映像復号器30は、各々、様々な適切な符号器回路、例えば、1つ以上のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ディスクリートロジック、ハードウェア、又はそれらのあらゆる組み合わせのうちのいずれかとして実装することができる。技法がソフトウェア内において部分的に実装されるときには、デバイスは、ソフトウェアに関する命令を適切な、非一時的なコンピュータによって読み取り可能な媒体に格納することができ及び本開示の技法を実行するために1つ以上のプロセッサを用いてハードウェア内で命令を実行することができる。
図1の例においては映像符号器20及び映像復号器30は、別個のデバイスに実装されるとして示されているが、本開示は、該構成には限定されず、映像符号器20及び映像復号器30は、同じデバイス内に実装することができる。映像符号器20及び映像復号器30の各々は、1つ以上の符号器又は復号器に含めることができ、それらのいずれも、各々のデバイスにおいて結合された符号器/復号器(CODEC)の一部として一体化することができる。映像符号器20及び/又は映像復号器30を含むデバイスは、集積回路、マイクロプロセッサ、及び/又は無線通信デバイス、例えば、携帯電話、を備えることができる。
【0038】
[0046]上において簡単に述べられているように、映像符号器20は、映像データを符号化する。映像データは、1つ以上のピクチャを備えることができる。それらのピクチャの各々は、映像の一部を形成する静止画像である。幾つかの例においては、ピクチャは、映像“フレーム”と呼ぶことができる。映像符号器20が映像データを符号化するときには、映像符号器20は、ビットストリームを生成することができる。ビットストリームは、映像データのコーディングされた表現を形成するビットのシーケンスを含むことができる。ビットストリームは、コーディングされたピクチャと、関連するデータと、を含むことができる。コーディングされたピクチャは、ピクチャのコーディングされた表現である。
【0039】
[0047]ビットストリームを生成するために、映像符号器20は、映像データ内の各ピクチャに関して符号化動作を行うことができる。映像符号器20がピクチャに関して符号化動作を行うときには、映像符号器20は、一連のコーディングされたピクチャ及び関連するデータを生成することができる。関連するデータは、映像パラメータセット(VPS)と、シーケンスパラメータセットと、ピクチャパラメータセットと、好適化パラメータセットと、その他の構文構造と、を含むことができる。シーケンスパラメータセット(SPS)は、ゼロ以上のシーケンスのピクチャに適用可能なパラメータを入れることができる。ピクチャパラメータセット(PPS)は、ゼロ以上のピクチャに適用可能なパラメータを入れることができる。好適化パラメータセット(APS)は、ゼロ以上のピクチャに適用可能なパラメータを入れることができる。APS内のパラメータは、PPS内のパラメータよりも変化する可能性が高いパラメータであることができる。
【0040】
[0048]コーディングされたピクチャを生成するために、映像符号器20は、ピクチャを等しいサイズの映像ブロックに分割することができる。映像ブロックは、サンプルの二次元配列であることができる。それらの映像ブロックの各々は、ツリーブロックと関連付けられる。幾つかの例においては、ツリーブロックは、最大のコーディングユニット(LCU)と呼ぶことができる。HEVCのツリーブロックは、以前の規格、例えば、H.264/AVC、のマクロブロックにほぼ類似する。しかしながら、ツリーブロックは、必ずしも特定のサイズには限定されず、1つ以上のコーディングユニット(CU)を含むことができる。映像符号器20は、ツリーブロックの映像ブロックをCUに関連する映像ブロックに分割するために四分木分割を使用することができ、従って、それらは、“ツリーブロック”という名称を有する。
【0041】
[0049]幾つかの例においては、映像符号器20は、ピクチャを複数のスライスに分割することができる。それらのスライスの各々は、整数の数のCUを含むことができる。幾つかの例においては、スライスは、整数の数のツリーブロックを備える。その他の例においては、スライスの境界は、ツリーブロック内に存在することができる。
【0042】
[0050]ピクチャに関して符号化動作を行う一部として、映像符号器20は、そのピクチャの各スライスに関して符号化動作を行うことができる。映像符号器20がスライスに関して符号化動作を行うときには、映像符号器20は、そのスライスに関連する符号化されたデータを生成することができる。スライスに関連する符号化されたデータは、“コーディングされたスライス”と呼ぶことができる。
【0043】
[0051]コーディングされたスライスを生成するために、映像符号器20は、スライス内の各ツリーブロックに関して符号化動作を行うことができる。映像符号器20がツリーブロックに関して符号化動作を行うときには、映像符号器20は、コーディングされたツリーブロックを生成することができる。コーディングされたツリーブロックは、ツリーブロックの符号化されたバージョンを表現するデータを備えることができる。
【0044】
[0052]映像符号器20がコーディングされたスライスを生成するときには、映像符号器20は、ラスター走査順序に従ってスライス内のツリーブロックに関して符号化動作(例えば、符号化)を行うことができる。例えば、映像符号器20は、スライス内のツリーブロックの最上行を左から右に横断して進み、次に、ツリーブロックの次に低い行を左から右に横断して進み、以下同様であり、映像符号器20がスライス内の各ツリーブロックを符号化するまで続ける。
【0045】
[0053]ラスター走査順序に従ってツリーブロックを符号化した結果として、所定のツリーブロックの上方及び左側のツリーブロックが符号化されているが、所定のツリーブロックの下方及び右側のツリーブロックはまだ符号化されていない。従って、映像符号器20は、所定のツリーブロックを符号化するときには所定のツリーブロックの上方及び左側のツリーブロックを符号化することによって生成された情報にアクセスすることができる。しかしながら、映像符号化器20は、所定のツリーブロックを符号化するときには所定のツリーブロックの下方及び右側のツリーブロックを符号化することによって生成された情報にはアクセスすることができない。
【0046】
[0054]コーディングされたツリーブロックを生成するために、映像符号器20は、映像ブロックを徐々に小さくなる映像ブロックに分割するためにツリーブロックの映像ブロックに関して四分木分割を繰り返し行うことができる。それらのより小さい映像ブロックの各々は、異なるCUと関連付けることができる。例えば、映像符号器20は、ツリーブロックの映像ブロックを4つの等しいサイズのサブブロックに分割し、それらのサブブロックのうちの1つ以上を4つの等しいサイズのサブサブブロックに分割し、以下同様であることができる。分割されたCUは、それの映像ブロックがその他のCUに関連する映像ブロックに分割されるCUであることができる。分割されないCUは、それの映像ブロックがその他のCUに関連する映像ブロックに分割されないCUであることができる。
【0047】
[0055]ビットストリーム内の1つ以上の構文要素は、映像符号器20がツリーブロックの映像ブロックを分割することができる最大回数を示すことができる。CUの映像ブロックは、形状が正方形であることができる。CUの映像ブロックのサイズ(例えば、CUのサイズ)は、8×8ピクチャからツリーブロックの映像ブロックのサイズ(例えば、ツリーブロックのサイズ)までの範囲であることができ、最大は、64×64ピクセル以上である。
【0048】
[0056]映像符号器20は、z走査順序に従ってツリーブロックの各CUに関して符号化動作(例えば、符号化)を行うことができる。換言すると、映像符号器20は、最上部−左CU、最上部−右CU、最下部−左CU、次に最下部−右CUをその順序で符号化することができる。映像符号器20が分割されたCUに関して符号化動作を行うときには、映像符号器20は、z走査順序に従って分割されたCUの映像ブロックのサブブロックに関連するCUを符号化することができる。換言すると、映像符号器20は、最上部−左サブブロック、最上部−右サブブロックに関連するCU、最下部−左サブブロックに関連するCU、次に最下部−右サブブロックに関連するCUをその順序で符号化することができる。
【0049】
[0057]z走査順序に従ってツリーブロックのCUを符号化した結果、所定のCUの上方のCU、上方−左側のCU、上方−右側のCU、左側のCU、及び下方−左側のCUを符号化することができる。所定のCUの下方及び右側のCUはまだ符号化されていない。従って、映像符号器20は、所定のCUを符号化するときに所定のCUの近隣に存在する幾つかのCUを符号化することによって生成された情報にアクセスすることができる。しかしながら、映像符号化器20は、所定のCUを符号化するときに所定のCUの近隣に存在するその他のCUを符号化することによって生成された情報にアクセスすることができない。
【0050】
[0058]映像符号器20が分割されていないCUを符号化するときには、映像符号器20は、そのCUに関する1つ以上の予測ユニット(PU)を生成することができる。CUのPUの各々は、CUの映像ブロック内の異なる映像ブロックと関連付けることができる。映像符号器20は、CUの各PUに関する予測された映像ブロックを生成することができる。PUの予測された映像ブロックは、サンプルのブロックであることができる。映像符号器20は、PUに関する予測された映像ブロックを生成するためにイントラ予測又はインター予測を使用することができる。
【0051】
[0059]映像符号器20がPUの予測された映像ブロックを生成するためにイントラ予測を使用するときには、映像符号器20は、そのPUに関連するピクチャの復号されたサンプルに基づいてPUの予測された映像ブロックを生成することができる。映像符号器20がCUのPUの予測された映像ブロックを生成するためにイントラ予測を使用する場合は、CUは、イントラ予測されたCUである。映像符号器20がPUの予測された映像ブロックを生成するためにインター予測を使用するときには、映像符号器20は、PUに関連するピクチャ以外の1つ以上のピクチャの復号されたサンプルに基づいてPUの予測された映像ブロックを生成することができる。映像符号器20がCUのPUの予測された映像ブロックを生成するためにインター予測を使用する場合は、そのCUは、インター予測されたCUである。
【0052】
[0060]さらに、映像符号器20がPUに関する予測された映像ブロックを生成するためにインター予測を使用するときには、映像符号器20は、そのPUに関する動き情報を生成することができる。PUに関する動き情報は、そのPUの1つ以上の基準ブロックを示すことができる。PUの各基準ブロックは、基準ピクチャ内の映像ブロックであることができる。基準ピクチャは、PUに関連するピクチャ以外のピクチャであることができる。幾つかの例においては、PUの基準ブロックは、そのPUの“基準サンプル”と呼ぶこともできる。映像符号器20は、PUの基準ブロックに基づいてPUに関する予測された映像ブロックを生成することができる。
【0053】
[0061]映像符号器20がCUの1つ以上のPUに関する予測された映像ブロックを生成した後は、映像符号器20は、CUのPUに関する予測された映像ブロックに基づいてCUに関する残差データを生成することができる。CUに関する残差データは、CUのPUに関する予測された映像ブロック内のサンプルとCUのオリジナルの映像ブロックとの間の差分を示すことができる。
【0054】
[0062]さらに、分割されないCUに関して符号化動作を行う一部として、映像符号器20は、CUの変換ユニット(TU)に関連する残差データの1つ以上のブロック(例えば、残差映像ブロック)にCUの残差データを分割するためにCUの残差データに関して反復的な四分木分割を行うことができる。CUの各TUは、異なる残差映像ブロックに関連することができる。
【0055】
[0063]映像コーダ20は、TUに関連する変換係数ブロック(例えば、変換係数のブロック)を生成するためにTUに関連する残差映像ブロックに1つ以上の変換を適用することができる。概念的には、変換係数ブロックは、変換係数の二次元(2D)行列であることができる。
【0056】
[0064]変換係数ブロックを生成した後は、映像符号器20は、その変換係数ブロックに関する量子化プロセスを実行することができる。量子化は、概して、変換係数を表すために使用されるデータ量を低減させ、さらなる圧縮を提供するために変換係数が量子化されるプロセスを意味する。量子化プロセスは、変換係数の一部又は全部に関連するビット深度を小さくすることができる。例えば、量子化中にnビット値が切り捨てられてmビット値になり、ここで、nはmよりも大きい。
【0057】
[0065]映像符号器20は、各CUを量子化パラメータ(QP)値と関連付けることができる。CUと関連付けられたQP値は、映像符号器20がCUに関連する変換係数ブロックをどのようにして量子化するかを決定することができる。映像符号器20は、CUと関連付けられたQP値を調整することによってCUに関連する変換係数ブロックに適用された量子化度を調整することができる。
【0058】
[0066]映像符号器20が変換係数ブロックを量子化した後は、映像符号器20は、量子化された変換係数ブロック内の変換係数を表す構文要素の組を生成することができる。映像符号器20は、エントロピー符号化動作、例えば、コンテキスト適応型バイナリ算術コーディング(CABAC)動作、をこれらの構文要素の一部に適用することができる。その他のエントロピーコーディング技法、例えば、コンテキスト適応型可変長コーディング(CAVLC)、確率間隔分割エントロピー(PIPE)コーディング、又はその他のバイナリ算術コーディング、も使用可能である。
【0059】
[0067]映像符号器20によって生成されたビットストリームは、一連のネットワーク抽象層(NAL)ユニットを含むことができる。それらのNALユニットの各々は、NALユニット内のデータのタイプの表示及びそのデータが入ったバイトが入った構文構造であることができる。例えば、NALユニットは、映像パラメータセット、シーケンスパラメータセット、ピクチャパラメータセット、コーディングされたスライス、補足的エンハンスメント情報(SEI)、アクセスユニットデリミッタ、フィラーデータ、又は他のタイプのデータを表現するデータを入れることができる。NALユニット内のデータは、様々な構文構造を含むことができる。
【0060】
[0068]映像復号器30は、映像符号器20によって生成されたビットストリームを受信することができる。ビットストリームは、映像符号器20によって符号化された映像データのコーディングされた表現を含むことができる。映像復号器30がビットストリームを受信したときには、映像復号器30は、ビットストリームに関する構文解釈動作を行うことができる。映像復号器30が構文解析動作を行うときには、映像復号器30は、ビットストリームから構文要素を抽出することができる。映像復号器30は、ビットストリームから抽出された構文要素に基づいて映像データのピクチャを再構築することができる。構文要素に基づいて映像データを再構築するプロセスは、概して、構文要素を生成するために映像符号器20によって実行されるプロセスと相互的であることができる。
【0061】
[0069]映像復号器30がCUに関連する構文要素を抽出した後は、映像復号器30は、構文要素に基づいてCUのPUに関する予測された映像ブロックを生成することができる。さらに、映像復号器30は、CUのTUに関連する変換係数ブロックを逆量子化することができる。映像復号器30は、CUのTUに関連する残差映像ブロックを再構築するために変換係数ブロックに関して逆変換を行うことができる。予測された映像ブロックを生成し、残差映像ブロックを再構築した後は、映像復号器30は、予測された映像ブロック及び残差映像ブロックに基づいてCUの映像ブロックを再構築することができる。このようにして、映像復号器30は、ビットストリーム内の構文要素に基づいてCUの映像ブロックを再構築することができる。
【0062】
映像符号器
[0070]
図2Aは、本開示において説明される態様による技法を実装することができる映像符号器の例を示したブロック図である。映像符号器20は、例えば、HEVCに関して、映像フレームの単層を処理するように構成することができる。さらに、映像符号器20は、本開示の技法のうちのいずれか又は全部を実行するように構成することができる。一例として、予測処理ユニット100は、本開示において説明される技法のうちのいずれか又は全部を実行するように構成することができる。他の実施形態においては、映像符号器20は、本開示において説明される技法のうちのいずれか又は全部を実行するように構成される任意選択の層間予測ユニット128を含む。その他の実施形態においては、層間予測は、予測処理ユニット100(例えば、インター予測ユニット121及び/又はイントラ予測ユニット126)によって行うことができ、その場合は、層間予測ユニット128は省略することができる。しかしながら、本開示の態様は、そのようには限定されない。幾つかの例においては、本開示において説明される技法は、映像符号器20の様々なコンポーネント間で共有することができる。幾つかの例においては、さらに加えて又は代替として、プロセッサ(示されていない)は、本開示において説明される技法のうちのいずれか又は全部を実行するように構成することができる。
【0063】
[0071]説明を目的として、本開示は、HEVCコーディングの観点で映像符号器20について説明している。しかしながら、本開示の技法は、その他のコーディング規格又は方法に対して適用することができる。
図2Aにおいて描かれる例は、単層コーデックに関するものである。しかしながら、
図2Bに関してさらに説明されるように、映像符号器20の一部又は全部を、多層コーデック処理のために複製することができる。
【0064】
[0072]映像符号器20は、映像スライス内の映像ブロックのイントラコーディング及びインターコーディングを行うことができる。イントラコーディングは、所定の映像フレーム又はピクチャ内における映像の空間的冗長性を低減させる又は除去するために空間的予測に依存する。インターコーディングは、映像シーケンスの隣接するフレーム又はピクチャ内における映像の時間的冗長性を低減させる又は除去するために時間的予測に依存する。イントラモード(Iモード(登録商標))は、幾つかの空間に基づくコーディングモードのうちのいずれかを意味することができる。インターモード、例えば、単一方向性予測(Pモード)又は両方向予測(Bモード)、は、幾つかの時間に基づくコーディングモードのうちのいずれかを意味することができる。
【0065】
[0073]
図2Aの例において、映像符号器20は、複数の機能上のコンポーネントを含む。映像符号器20の機能上のコンポーネントは、予測処理ユニット100と、残差生成ユニット102と、変換処理ユニット104と、量子化ユニット106と、逆量子化ユニット108と、逆変換ユニット110と、再構築ユニット112と、フィルタユニット113と、復号ピクチャバッファ114と、エントロピー符号化ユニット116と、を含む。予測処理ユニット100は、インター予測ユニット121と、動き推定ユニット122と、動き補償ユニット124と、イントラ予測ユニット126と、層間予測ユニット128と、を含む。その他の例では、映像符号器20は、より多くの、より少ない、又は異なるコンポーネントを含むことができる。さらに、動き推定ユニット122及び動き補償ユニット124は、高度に一体化することができるが、
図2Aの例では説明目的のために別々に示されている。
【0066】
[0074]映像符号器20は、映像データを受信することができる。映像符号器20は、様々なソースから映像データを受信することができる。例えば、映像符号器20は、映像ソース18(
図1)又は他のソースから映像データを受信することができる。映像データは、一連のピクチャを表すことができる。映像データを符号化するために、映像符号器20は、各々のピクチャに関して符号化動作を行うことができる。ピクチャに関して符号化動作を行う一部として、映像符号器20は、ピクチャの各スライスに関して符号化動作を行うことができる。スライスに関して符号化動作を行う一部として、映像符号器20は、スライス内のツリーブロックに関して符号化動作を行うことができる。
【0067】
[0075]ツリーブロックに関して符号化動作を行う一部として、予測処理ユニット100は、映像ブロックを徐々に小さくなる映像ブロックに分割するためにツリーブロックの映像ブロックに関して四分木分割を行うことができる。より小さい映像ブロックの各々は、異なるCUと関連させることができる。例えば、映像符号器100は、ツリーブロックの映像ブロックを4つの等しいサイズのサブブロックに分割し、それらのサブブロックのうちの1つ以上を4つの等しいサイズのサブサブブロックに分割し、以下同様であることができる。
【0068】
[0076]CUに関連する映像ブロックのサイズは、8×8ピクチャからツリーブロックの映像ブロックのサイズまでの範囲であることができ、最大は、64×64サンプル以上である。本開示においては、“N×N”及び“N by N”は、垂直及び水平の寸法に関する映像ブロックのサンプル寸法を意味するために互換可能な形で使用することができ、例えば、16×16サンプル又は16 by 16サンプル。概して、16×16映像ブロックは、垂直方向に16サンプル(y=16)及び水平方向に16サンプル(x=16)を有する。同様に、N×Nブロックは、概して、垂直方向にNのサンプル及び水平方向にNのサンプルを有し、ここで、Nは、負でない整数値を表す。
【0069】
[0077]さらに、ツリーブロックに関して符号化動作を行う一部として、予測処理ユニット100は、ツリーブロックに関する階層的四分木データ構造を生成することができる。例えば、ツリーブロックは、四分木データ構造の根ノードに対応することができる。予測処理ユニット100がツリーブロックの映像ブロックを4つのサブブロックに分割する場合は、根ノードは、四分木データ構造において4つの子ノードを有する。それらの子ノードの各々は、サブブロックのうちの1つに関連するCUに対応する。予測処理ユニット100がサブブロックのうちの1つを4つのサブサブブロックに分割する場合は、サブブロックに関連するCUに対応するノードは、4つの子ノードを有することができ、それらの各々は、サブサブブロックのうちの1つに関連するCUに対応する。
【0070】
[0078]四分木データ構造の各ノードは、対応するツリーブロック又はCUに関する構文データ(例えば、構文要素)を入れることができる。例えば、四分木内のノードは、そのノードに対応するCUの映像ブロックが4つのサブブロックに分割(例えば、スプリット)されるかどうかを示すスプリットフラグを含むことができる。CUに関する構文要素は、反復的に定義することができ、及び、CUの映像ブロックがサブブロックにスプリットされるかどうかに依存することができる。映像ブロックが分割されないCUは、四分木データ構造内の葉ノードに対応することができる。コーディングされたツリーブロックは、対応するツリーブロックに関する四分木データ構造に基づいたデータを含むことができる。
【0071】
[0079]映像符号器20は、ツリーブロックの各々の分割されていないCUに関して符号化動作を行うことができる。映像符号器20が分割されていないCUに関して符号化動作を行うときには、映像符号器20は、分割されていないCUの符号化された表現を表すデータを生成する。
【0072】
[0080]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の映像ブロックを分割するために幾何学的分割を行うことができる。
【0073】
[0081]インター予測ユニット121は、CUの各PUに関してインター予測を行うことができる。インター予測は、時間的圧縮を提供することができる。PUに関してインター予測を行うために、動き推定ユニット122は、PUに関する動き情報を生成することができる。動き補償ユニット124は、CUに関連するピクチャ(例えば、基準ピクチャ)以外のピクチャの動き情報及び復号されたサンプルに基づいてPUに関する予測された映像ブロックを生成することができる。本開示では、動き補償ユニット124によって生成された予測された映像ブロックは、インター予測された映像ブロックと呼ぶことができる。
【0074】
[0082]スライスは、Iスライス、Pスライス、又はBスライスであることができる。動き推定ユニット122及び動き補償ユニット124は、CUのPUがIスライス、Pスライス、又はBスライスのいずれに存在するかに依存してそのPUに関して異なる動作を行うことができる。Iスライスでは、すべてのPUがイントラ予測される。従って、PUがIスライス内にある場合は、動き推定ユニット122及び動き補償ユニット124は、PUに関してインター予測を行わない。
【0075】
[0083]PUがPスライス内にある場合は、PUが入っているピクチャが、“リスト0”と呼ばれる基準ピクチャのリストと関連付けられる。リスト0内の基準ピクチャの各々は、その他のピクチャのインター予測のために使用することができるサンプルが入っている。動き推定ユニット122がPスライス内のPUに関して動き推定動作を行うときには、動き推定ユニット122は、PUに関する基準ブロックに関してリスト0内の基準ピクチャを探索することができる。PUの基準ブロックは、PUの映像ブロック内のサンプルに最も密接に対応するサンプルの組、例えば、サンプルのブロック、であることができる。動き推定ユニット122は、基準ピクチャ内の一組のサンプルがPUの映像ブロック内のサンプルにどれだけ密接に対応するかを決定するために様々なメトリックを使用することができる。例えば、動き推定ユニット122は、基準ピクチャ内の一組のサンプルがPUの映像ブロック内のサンプルにどれだけ密接に対応するかを差分絶対値和(SAD)、差分二乗和(SSD)、又はその他の差分メトリックによって決定することができる。
【0076】
[0084]Pスライス内のPUの基準ブロックを識別後は、動き推定ユニット122は、基準ブロックが入っているリスト0内の基準ピクチャを示す基準インデックス及びPUと基準ブロックとの間の空間変位を示す動きベクトルを生成することができる。様々な例において、動き推定ユニット122は、様々な精度で動きベクトルを生成することができる。例えば、動き推定ユニット122は、1/4のサンプル精度、1/8のサンプル精度、又はその他の分数のサンプル精度で動きベクトルを生成することができる。分数のサンプル精度の場合は、基準ブロック値は、基準ピクチャ内の整数位置サンプル値から内挿することができる。動き推定ユニット122は、基準インデックス及び動きベクトルをPUの動き情報として出力することができる。動き補償ユニット124は、PUの動き情報によって識別された基準ブロックに基づいてPUの予測された映像ブロックを生成することができる。
【0077】
[0085]PUがBスライス内にある場合は、PUが入っているピクチャは、“リスト0”及び“リスト1”と呼ばれる2つの基準ピクチャリストと関連付けることができる。幾つかの例においては、Bスライスが入っているピクチャは、リスト0とリスト1の組み合わせであるリスト結合と関連付けることができる。
【0078】
[0086]さらに、PUがBスライス内にある場合は、動き推定ユニット122は、PUに関して単一方向性予測又は両方向性予測を行うことができる。動き推定ユニット122がPUに関して単一方向性予測を行う場合は、動き推定ユニット122は、PUに関する基準ブロックに関してリスト0又はリスト1の基準ピクチャを探索することができる。次に、動き推定ユニット122は、基準ブロックが入っているリスト0又はリスト1内の基準ピクチャを示す基準インデックス及びPUと基準ブロックとの間の空間変位を示す動きベクトルを生成することができる。動き推定ユニット122は、基準インデックス、予測方向インジケータ、及び動きベクトルをPUの動き情報として出力することができる。予測方向インジケータは、基準インデックスがリスト0又はリスト1のいずれの基準ピクチャを示すかを示すことができる。動き補償ユニット124は、PUの動き情報によって示された基準ブロックに基づいてPUの予測された映像ブロックを生成することができる。
【0079】
[0087]動き推定ユニット122がPUに関して両方向性予測を行うときには、動き推定ユニット122は、PUに関する基準ブロックに関してリスト0内の基準ピクチャを探索することができ及びPUに関する他の基準ブロックに関してリスト1内の基準ピクチャを探索することもできる。次に、動き推定ユニット122は、基準ブロックとPUとの間の空間変位を示す動きベクトル及び基準ブロックが入っているリスト0及びリスト1内の基準ピクチャを示す基準インデックスを生成することができる。動き推定ユニット122は、PUの基準インデックス及び動きベクトルをPUに関する動き情報として出力することができる。動き補償ユニット124は、PUの動き情報によって示された基準ブロックに基づいてPUの予測された映像ブロックを生成することができる。
【0080】
[0088]幾つかの例においては、動き推定ユニット122は、PUに関する動き情報の完全な組をエントロピー符号化ユニット116に出力しない。むしろ、動き推定ユニット122は、他のPUの動き情報を参照してPUの動き情報をシグナリングすることができる。例えば、動き推定ユニット122は、PUの動き情報が近隣PUの動き情報と十分に類似すると決定することができる。この例では、動き推定ユニット122は、PUに関連する構文構造において、PUが近隣PUと同じ動き情報を有することを映像復号器30に示す値を示すことができる。他の例においては、動き推定ユニット122は、PUに関連する構文構造において、近隣PU及び動きベクトル差分(MVD)を識別することができる。動きベクトル差分は、PUの動きベクトルと示された近隣PUの動きベクトルとの間の差分を示す。映像復号器30は、PUの動きベクトルを決定するために示された近隣PUの動きベクトル及び動きベクトル差分を使用することができる。第2のPUの動き情報をシグナリングするときに第1のPUの動き情報を参照することによって、映像符号器20は、より少ないビットを用いて第2のPUの動き情報をシグナリングすることができる。
【0081】
[0089]以下において
図5乃至7を参照してさらに説明されるように、予測処理ユニット100は、
図5乃至7において例示される方法を実行することによってPU(又はその他の拡張層ブロック又は映像ユニット)をコーディング(例えば、符号化又は復号)するように構成することができる。例えば、インター予測ユニット121(例えば、動き推定ユニット122及び/又は動き補償ユニット124を介する)、イントラ予測ユニット126、又は層間予測ユニット128は、
図5乃至7において例示される方法をまとめて又は別々に実行するように構成することができる。
【0082】
[0090]CUに関して符号化動作を実行する一部として、イントラ予測ユニット126は、CUのPUに関するイントラ予測を行うことができる。イントラ予測は、空間圧縮を提供することができる。イントラ予測ユニット126がPUに関してイントラ予測を行うときには、イントラ予測ユニット126は、同じピクチャ内のその他のPUの復号されたサンプルに基づいてPUに関する予測データを生成することができる。PUに関する予測データは、予測された映像ブロック及び様々な構文要素を含むことができる。イントラ予測ユニット126は、Iスライス、Pスライス、及びBスライス内のPUに関してイントラ予測を行うことができる。
【0083】
[0091]PUに関してイントラ予測を行うために、イントラ予測ユニット126は、PUに関する複数の組の予測データを生成するために複数のイントラ予測モードを使用することができる。イントラ予測ユニット126がPUに関する一組の予測データを生成するためにイントラ予測モードを使用するときには、イントラ予測ユニット126は、近隣PUの映像ブロックからPUの映像ブロックを横切ってイントラ予測モードに関連する方向に及び/又は傾斜でサンプルを延長させることができる。PU、CU、及びツリーブロックに関して左から右へ、上から下への符号化順序を仮定した場合、近隣PUは、PUの上方、右上、左上、又は左であることができる。イントラ予測ユニット126は、PUのサイズに依存して、様々な数のイントラ予測モード、例えば、33の方向性イントラ予測モード、を使用することができる。
【0084】
[0092]予測処理ユニット100は、PUに関して動き補償ユニット124によって生成された予測データ又はPUに関してイントラ予測ユニット126によって生成された予測データの中からPUに関する予測データを選択することができる。幾つかの例においては、予測処理ユニット100は、予測データの組のレート/歪みメトリックに基づいてPUに関する予測データを選択する。
【0085】
[0093]予測処理ユニット100がイントラ予測ユニット126によって生成された予測データを選択する場合は、予測処理ユニット100は、PUに関する予測データを生成するために使用されたイントラ予測モード、例えば、選択されたイントラ予測モード、をシグナリングすることができる。予測処理ユニット100は、選択されたイントラ予測モードを様々な方法でシグナリングすることができる。例えば、選択されたイントラ予測モードが近隣PUのイントラ予測モードと同じである可能性が高い。換言すると、近隣PUのイントラ予測モードは、現在のPUに関する最も可能性が高いモードであることができる。従って、予測処理ユニット100は、選択されたイントラ予測モードが近隣PUのイントラ予測モードと同じであることを示すための構文要素を生成することができる。
【0086】
[0094]上述されるように、映像符号器20は、層間予測ユニット128を含むことができる。層間予測ユニット128は、SVCにおいて利用可能である1つ以上の異なる層(例えば、基本層又は拡張層)を用いて現在のブロック(例えば、EL内の現在のブロック)を予測するように構成される。該予測は、層間予測と呼ぶことができる。層間予測ユニット128は、層間冗長性を低減させるための予測方法を利用し、それによって、コーディング効率を向上させ、計算リソースに関する要求を低減させる。層間予測の幾つかの例は、層間イントラ予測と、層間動き予測と、層間残差予測と、を含む。層間イントラ予測は、拡張層内の現在のブロックを予測するために基本層内での共配置されたブロックの再構築を使用する。層間動き予測は、拡張層内の動きを予測するために基本層の動き情報を使用する。層間残差予測は、拡張層の残差を予測するために基本層の残差を使用する。層間予測方式の各々が以下においてさらに詳細に説明される。
【0087】
[0095]予測処理ユニット100がCUのPUに関する予測データを選択した後は、残差生成ユニット102は、CUの映像ブロックからCUのPUの予測された映像ブロックを減じる(例えば、マイナス符号によって示される)ことによってCUに関する残差データを生成することができる。CUの残差データは、CUの映像ブロック内のサンプルの異なるサンプルコンポーネントに対応する2D残差映像ブロックを含むことができる。例えば、残差データは、CUのPUの予測された映像ブロック内のサンプルのルミナンス成分とCUのオリジナルの映像ブロック内のサンプルのルミナンス成分との間の差分に対応する残差映像ブロックを含むことができる。さらに、CUの残差データは、CUのPUの予測された映像ブロック内のサンプルのクロミナンス成分とCUのオリジナルの映像ブロック内のサンプルのクロミナンス成分との間の差分に対応する残差映像ブロックを含むことができる。
【0088】
[0096]予測処理ユニット100は、CUの残差映像ブロックをサブブロックに分割するための四分木分割を行うことができる。各々の分割されない残差映像ブロックは、CUの異なるTUと関連させることができる。CUのTUに関連する残差映像ブロックのサイズ及び位置は、CUのPUに関連する映像ブロックのサイズ及び位置に基づく場合と基づかない場合がある。“残差四分木”(RQT)と呼ばれる四分木構造は、残差映像ブロックの各々に関連するノードを含むことができる。CUのTUは、RQTの葉ノードに対応することができる。
【0089】
[0097]変換処理ユニット104は、TUに関連する残差映像ブロックに1つ以上の変換を適用することによってCUの各TUに関する1つ以上の変換係数ブロックを生成することができる。変換係数ブロックの各々は、変換係数の2D行列であることができる。変換処理ユニット104は、TUに関連する残差映像ブロックに様々な変換を適用することができる。例えば、変換処理ユニット104は、離散コサイン変換(DCT)、方向性変換、又は概念的に類似する変換をTUに関連する残差映像ブロックに適用することができる。
【0090】
[0098]変換処理ユニット104がTUに関連する変換係数ブロックを生成した後は、量子化ユニット106は、変換係数ブロック内の変換係数を量子化することができる。量子化ユニット106は、CUに関連するQP値に基づいてCUのTUに関連する変換係数ブロックを量子化することができる。
【0091】
[0099]映像符号器20は、様々な方法でQP値をCUに関連させることができる。例えば、映像符号器20は、CUに関連するツリーブロックに関するレート−歪み解析を行うことができる。レート−歪み解析では、映像符号器20は、ツリーブロックに関して符号化動作を複数回行うことによってツリーブロックの複数のコーディングされた表現を生成することができる。映像符号器20は、映像符号器20がツリーブロックの異なる符号化された表現を生成するときに異なるQP値をCUに関連させることができる。映像符号器20は、最低のビットレート及び歪みメトリックを有するツリーブロックのコーディングされた表現内のCUと所定のQP値が関連するときに所定のQP値がCUに関連することをシグナリングすることができる。
【0092】
[00100]逆量子化ユニット108及び逆変換ユニット110は、変換係数ブロックから残差映像ブロックを再構築するために逆量子化及び逆変換を変換係数ブロックにそれぞれ適用することができる。再構築ユニット112は、TUに関連する再構築された映像ブロックを生成するために予測処理ユニット100によって生成された1つ以上の予測された映像ブロックからの対応するサンプルに再構築された残差映像ブロックを加えることができる。このようにしてCUの各TUに関して映像ブロックを再構築することによって、映像符号器20は、CUの映像ブロックを再構築することができる。
【0093】
[00101]再構築ユニット112がCUの映像ブロックを再構築した後は、フィルタユニット113は、CUに関連する映像ブロック内のブロッキングアーティファクトを低減させるためのデブロッキング動作を行うことができる。1つ以上のデブロッキング動作を行った後は、フィルタユニット113は、CUの再構築された映像ブロックを復号ピクチャバッファ内に格納することができる。動き推定ユニット122及び動き補償ユニット124は、後続するピクチャのPUに関してインター予測を行うために再構築された映像ブロックが入った基準ピクチャを使用することができる。さらに、イントラ予測ユニット126は、CUと同じピクチャ内のその他のPUに関してイントラ予測を行うために復号ピクチャバッファ114内の再構築された映像ブロックを使用することができる。
【0094】
[00102]エントロピー符号化ユニット116は、映像符号器20のその他の機能上のコンポーネントからデータを受信することができる。例えば、エントロピー符号化ユニット116は、量子化ユニット106から変換係数ブロックを受信することができ及び予測処理ユニット100から構文要素を受信することができる。エントロピー符号化ユニット116がデータを受信したときには、エントロピー符号化ユニット116は、エントロピー符号化されたデータを生成するために1つ以上のエントロピー符号化動作を行うことができる。例えば、映像符号器20は、コンテキスト適応型可変長コーディング(CAVLC)動作、CABAC動作、可変−可変(V2V)長コーディング動作、構文に基づくコンテキスト適応型バイナリ算術コーディング(SBAC)動作、確率間隔分割エントロピー(PIPE)コーディング動作、又は他のタイプのエントロピー符号化動作をデータに対して実行することができる。エントロピー符号化ユニット116は、エントロピー符号化されたデータを含むビットストリームを出力することができる。
【0095】
[00103]データに対してエントロピー符号化動作を行う一部として、エントロピー符号化ユニット116は、コンテキストモデルを選択することができる。エントロピー符号化ユニット116がCABAC動作を実行中である場合は、コンテキストモデルは、特定の値を有する特定のビンの確率の推定値を示すことができる。CABACに関して、用語“ビン”は、構文要素のバイナリ化されたバージョンの1ビットを意味するために使用される。
【0096】
多層映像符号器
[00104]
図2Bは、本開示において説明される態様による技法を実装することができる多層映像符号器21の例を示したブロック図である。映像符号器21は、例えば、SHVC及びマルチビューコーディングに関して、多層映像フレームを処理するように構成することができる。さらに、映像符号器210は、本開示の技法のうちのいずれか又は全部を実行するように構成することができる。
【0097】
[00105]映像符号器21は、映像符号器20Aと映像符号器20Bとを含み、それらの各々は、映像符号器20として構成することができ、及び、映像符号器20に関して上述される機能を実行することができる。さらに、参照数字を再使用することによって示されるように、映像符号器20A及び映像符号器20Bは、システム及びサブシステムの少なくとも一部を映像符号器20として含むことができる。映像符号器21は、2つの映像符号器20A及び20Bを含むとして例示されるが、映像符号器21はそのようには限定されず、あらゆる数の映像符号器20層を含むことができる。幾つかの実施形態においては、映像符号器21は、アクセスユニット内の各ピクチャ又はフレームに関する映像符号器20を含むことができる。例えば、5つのピクチャを含むアクセスユニットは、5つの符号器層を含む映像符号器によって処理又は符号化することができる。幾つかの実施形態においては、映像符号器21は、アクセスユニット内のフレームよりも多くの符号器層を含むことができる。幾つかの該事例においては、映像符号器層の一部は、幾つかのアクセスユニットを処理するときには非アクティブであることができる。
【0098】
[00106]映像符号器20A及び20Bに加えて、映像符号器21は、再サンプリングユニット90を含むことができる。再サンプリングユニット90は、幾つかの事例においては、例えば、拡張層を生成するために受信された映像フレームの基本層をアップサンプリングすることができる。再サンプリングユニット90は、フレームの受信された基本層に関連する特定の情報をアップサンプリングすることができ、その他の情報はアップサンプリングすることができない。例えば、再サンプリングユニット90は、基本層の空間サイズ又はピクセル数をアップサンプリングすることができるが、スライス数又はピクチャオーダーカウントは一定のままであることができる。幾つかの事例においては、再サンプリングユニット90は、受信された映像を処理することができず及び/又は任意選択であることができる。例えば、幾つかの事例においては、予測処理ユニット100は、アップサンプリングを行うことができる。幾つかの実施形態においては、再サンプリングユニット90は、一組のスライス境界規則及び/又はラスター走査順序に準拠するために層をアップサンプリングして1つ以上のスライスを再編、再定義、修正、又は調整するように構成される。主に、基本層、又はアクセスユニット内のより下位の層をアップサンプリングするとして説明されているが、幾つかの事例においては、再サンプリングユニット90は、層をダウンサンプリングすることができる。例えば、映像のストリーミング中に帯域幅が縮小される場合は、フレームは、アップサンプリングの代わりにダウンサンプリングすることができる。
【0099】
[00107]再サンプリングユニット90は、より下位の層の符号器(例えば、映像符号器20A)の復号ピクチャバッファ114からピクチャ又はフレーム(又は、ピクチャに関連するピクチャ情報)を受信するように及びピクチャ(又は受信されたピクチャ情報)をアップサンプリングするように構成することができる。このアップサンプリングされたピクチャは、より下位の層と同じアクセスユニット内のピクチャを符号化するように構成されたより高位の層の符号器(例えば、映像符号器20B)の予測処理ユニット100に提供することができる。幾つかの事例においては、より高位の層の符号器は、より下位の層の符号器から取り除かれた1つの層である。その他の事例においては、
図2Bの層0映像符号器と層1符号器との間に1つ以上のより高位の層の符号器が存在することができる。
【0100】
[00108]幾つかの事例においては、再サンプリングユニット90は、省くこと又は迂回することができる。該事例においては、映像符号器20Aの復号ピクチャバッファ114からのピクチャは、映像符号器20Bの予測処理ユニット100に直接、又は少なくとも再サンプリングユニット90に提供せずに、提供することができる。例えば、映像符号器20Bに提供された映像データ及び映像符号器20Aの復号ピクチャバッファ114からの基準ピクチャが同じサイズ又は解像度である場合は、基準ピクチャは、再サンプリングを行わずに映像符号器20Bに提供することができる。
【0101】
[00109]幾つかの実施形態においては、映像符号器21は、映像データが映像符号器20Aに提供される前にダウンサンプリングユニット94を使用してより下位の層の符号器に提供されるべき映像データをダウンサンプリングする。代替として、ダウンサンプリングユニット94は、映像データをアップサンプリング又はダウンサンプリングすることが可能な再サンプリングユニット90であることができる。さらにその他の実施形態においては、ダウンサンプリングユニット94は、省くことができる。
【0102】
[00110]
図2Bにおいて例示されるように、映像符号器21は、マルチプレクサ98、又はmuxをさらに含むことができる。mux98は、結合されたビットストリームを映像符号器21から出力することができる。結合されたビットストリームは、各々の映像符号器20A及び20Bからビットストリームを取り出して所定の時間に出力されるビットストリームを交互させることによって生成することができる。幾つかの事例においては、2つの(又は、3つ以上の映像符号器層の場合はそれよりも多い)ビットストリームからのビットを一度に1ビット交互させることができる一方で、多くの事例においては、ビットストリームは、異なる方法で結合される。例えば、出力ビットストリームは、選択されたビットストリームを1度に1ブロック交互させることによって生成することができる。他の例においては、出力ビットストリームは、1:1の比でないブロックを映像符号器20A及び20Bの各々から出力することによって生成することができる。例えば、映像符号器20Aから出力された各ブロックに関して映像符号器20Bから2つのブロックを出力することができる。幾つかの実施形態においては、mux98からの出力ストリームは、予めプログラミングすることができる。その他の実施形態においては、mux98は、映像符号器21の外部のシステム、例えば、ソースデバイス12上のプロセッサ、から受信された制御信号に基づいて映像符号器20A、20Bからのビットストリームを結合することができる。制御信号は、映像ソース18からの映像の解像度又はビットレートに基づいて、チャネル16の帯域幅に基づいて、ユーザに関連する加入(有料加入及び無料加入)に基づいて、又は映像符号器21からの希望される解像度出力を決定するためのその他の要因に基づいて生成することができる。
【0103】
映像復号器
[00111]
図3Aは、本開示において説明される態様による技法を実装することができる映像復号器の例を示したブロック図である。映像復号器30は、例えば、HEVCに関して、映像フレームの単層を処理するように構成することができる。さらに、映像復号器30は、本開示の技法のうちのいずれか又は全部を実行するように構成することができる。一例として、動き補償ユニット162及び/又はイントラ予測ユニット164は、本開示において説明される技法のうちのいずれか又は全部を実行するように構成することができる。一実施形態においては、映像復号器30は、任意選択で、本開示において説明される技法のうちのいずれか又は全部を実行するように構成される層間予測ユニット166を含むことができる。その他の実施形態においては、層間予測は、予測処理ユニット152(例えば、動き補償ユニット162及び/又はイントラ予測ユニット164)によって行うことができ、その場合は、層間予測ユニット166は省くことができる。しかしながら、本開示の態様は、そのようには限定されない。幾つかの例においては、本開示において説明される技法は、映像復号器30の様々なコンポーネント間で共有することができる。幾つかの例においては、追加で又は代替として、プロセッサ(示されていない)は、本開示において説明される技法のうちのいずれか又は全部を実行するように構成することができる。
【0104】
[00112]説明の目的上、本開示は、HEVCコーディングに関する映像復号器30について説明する。しかしながら、本開示の技法は、その他のコーディング規格又は方法に適用可能である。
図3Aにおいて描かれる例は、単層コーデックを対象にしている。しかしながら、
図3Bに関してさらに説明されるように、映像復号器30の一部又は全部を、多層コーデックの処理のために複製することができる。
【0105】
[00113]
図3Aの例においては、映像復号器30は、複数の機能上のコンポーネントを含む。映像復号器30の機能上のコンポーネントは、エントロピー復号ユニット150と、予測処理ユニット152と、逆量子化ユニット154と、逆変換ユニット156と、再構築ユニット158と、フィルタユニット159と、復号ピクチャバッファ160と、を含む。予測処理ユニット152は、動き補償ユニット162と、イントラ予測ユニット164と、層間予測ユニット166と、を含む。幾つかの例においては、映像復号器30は、
図2Aの映像符号器20に関して説明される符号化パス(encoding pass)と概して相互的な復号パスを行うことができる。その他の例においては、映像復号器30は、それよりも多い、より少ない、又は異なる機能上のコンポーネントを含むことができる。
【0106】
[00114]映像復号器30は、符号化された映像データを備えるビットストリームを受信することができる。ビットストリームは、複数の構文要素を含むことができる。映像復号器30がビットストリームを受信したときには、エントロピー復号ユニット150は、ビットストリームに関して構文解析動作を行うことができる。ビットストリームに関する構文解析動作を行った結果、エントロピー復号ユニット150は、ビットストリームから構文要素を抽出することができる。構文解析動作を行う一部として、エントロピー復号ユニット150は、ビットストリーム内のエントロピー符号化された構文要素をエントロピー復号することができる。予測処理ユニット152、逆量子化ユニット154、逆変換ユニット156と、再構築ユニット158、及びフィルタユニット159は、ビットストリームから抽出された構文要素に基づいて復号された映像データを生成する再構築動作を行うことができる。
【0107】
[00115]上述されるように、ビットストリームは、一連のNALユニットを備えることができる。ビットストリームのNALユニットは、映像パラメータセットNALユニット、シーケンスパラメータセットNALユニット、ピクチャパラメータセットNALユニット、SEI NALユニット、等を含むことができる。ビットストリームに関して構文解析動作を行う一部として、エントロピー復号ユニット150は、シーケンスパラメータセットNALからシーケンスパラメータセットを、ピクチャパラメータセットNALユニットからピクチャパラメータセットを、SEI NALユニットからSEIデータを、以下同様、抽出してエントロピー復号する構文解析動作を行うことができる。
【0108】
[00116]さらに、ビットストリームのNALユニットは、コーディングされたスライスNALユニットを含むことができる。ビットストリームに関して構文解析動作を行う一部として、エントロピー復号ユニット150は、コーディングされたスライスNALユニットからコーディングされたスライスを抽出してエントロピー復号する構文解析動作を行うことができる。コーディングされたスライスの各々は、スライスヘッダと、スライスデータと、を含むことができる。スライスヘッダは、スライスに関する構文要素を入れることができる。スライスヘッダ内の構文要素は、スライスが入っているピクチャに関連するピクチャパラメータセットを識別する構文要素を含むことができる。エントロピー復号ユニット150は、スライスヘッダを復元するためにコーディングされたスライスヘッダ内の構文要素に関してエントロピー復号動作、例えば、CABAC復号動作、を行うことができる。
【0109】
[00117]コーディングされたスライスNALユニットからスライスデータを抽出する一部として、エントロピー復号ユニット150は、スライスデータ内のコーディングされたCUから構文要素を抽出する構文解析動作を行うことができる。抽出された構文要素は、変換係数ブロックに関連する構文要素を含むことができる。エントロピー復号ユニット150は、構文要素の一部に関してCABAC復号動作を行うことができる。
【0110】
[00118]エントロピー復号ユニット150が分割されないCUに関して構文解析動作を行った後は、映像復号器30は、分割されないCUに関して再構築動作を行うことができる。分割されないCUに関して再構築動作を行うために、映像復号器30は、CUの各TUに関して再構築動作を行うことができる。CUの各TUに関して再構築動作を行うことによって、映像復号器30は、CUに関連する残差映像ブロックを再構築することができる。
【0111】
[00119]TUに関して再構築動作を行う一部として、逆量子化ユニット154は、そのTUに関連する変換係数ブロックを逆量子化、例えば、量子化解除(de−quantize)、することができる。逆量子化ユニット154は、HEVCに関して提案された又はH.264復号規格によって定義された逆量子化プロセスに類似する方法で変換係数ブロックを逆量子化することができる。逆量子化ユニット154は、量子化度、そして同様に、適用されるべき逆量子化ユニット154に関する逆量子化度、を決定するために変換係数ブロックのCUに関して映像符号器20によって計算された量子化パラメータQPを使用することができる。
【0112】
[00120]逆量子化ユニット154が変換係数ブロックを逆量子化した後は、逆変換ユニット156は、変換係数ブロックに関連するTUに関して残差映像ブロックを生成することができる。逆変換ユニット156は、TUに関して残差映像ブロックを生成するために変換係数ブロックに逆変換を適用することができる。例えば、逆変換ユニット156は、逆DCT、逆整数変換、逆Karhunen−Loeve変換(KLT)、逆回転変換、逆方向性変換、又は他の逆変換を変換係数ブロックに適用することができる。幾つかの例においては、逆変換ユニット156は、映像符号器20からのシグナリングに基づいて変換係数ブロックに適用すべき逆変換を決定することができる。該例においては、逆変換ユニット156は、変換係数ブロックに関連するツリーブロックに関する四分木の根ノードにおいてシグナリングされた変換に基づいて逆変換を決定することができる。その他の例においては、逆変換ユニット156は、1つ以上のコーディング特性、例えば、ブロックサイズ、コーディングモード、等、から逆変換を推論することができる。幾つかの例においては、逆変換ユニット156は、カスケード方式の逆変換を適用することができる。
【0113】
[00121]幾つかの例においては、動き補償ユニット162は、内挿フィルタに基づいて内挿を行うことによってPUの予測された映像ブロックを精巧にすることができる。サブサンプルの精度を有する動き補償のために使用される内挿フィルタに関する識別子は、構文要素内に含めることができる。動き補償ユニット162は、基準ブロックの整数以下のサンプルに関する内挿された値を計算するためにPUの予測された映像ブロックの生成中に映像符号器20によって使用されるのと同じ内挿フィルタを使用することができる。動き補償ユニット162は、受信された構文情報に従って映像符号器20によって使用される内挿フィルタを決定することができ、及び、予測された映像ブロックを生成するために内挿フィルタを使用することができる。
【0114】
[00122]以下において
図5乃至7を参照してさらに説明されるように、予測処理ユニット152は、
図5乃至7において例示される方法を実行することによってPU(又はその他の拡張層ブロック又は映像ユニット)をコーディング(例えば、符号化又は復号)することができる。例えば、動き補償ユニット162、イントラ予測ユニット164、又は層間予測ユニット166は、
図5乃至7において例示される方法をいっしょに又は別々に実行するように構成することができる。
【0115】
[00123]イントラ予測を用いてPUが符号化される場合は、イントラ予測ユニット164は、PUに関する予測された映像ブロックを生成するためにイントラ予測を行うことができる。例えば、イントラ予測ユニット164は、ビットストリーム内の構文要素に基づいてPUに関するイントラ予測モードを決定することができる。ビットストリームは、イントラ予測ユニット164がPUのイントラ予測モードを決定するために使用することができる構文要素を含むことができる。
【0116】
[00124]幾つかの例においては、構文要素は、イントラ予測ユニット164が現在のPUのイントラ予測モードを決定するために他のPUのイントラ予測モードを使用すべきであることを示すことができる。例えば、現在のPUのイントラ予測モードは、近隣PUのイントラ予測モードと同じである可能性が高い。換言すると、近隣PUのイントラ予測モードは、現在のPUに関する最も可能性が高いモードであることができる。従って、この例では、ビットストリームは、PUのイントラ予測モードが近隣PUのイントラ予測モードと同じであることを示す小さい構文要素を含むことができる。イントラ予測ユニット164は、空間的に近隣のPUの映像ブロックに基づいてPUに関する予測データ(例えば、予測されたサンプル)を生成するためにイントラ予測モードを使用することができる。
【0117】
[00125]上述されるように、映像復号器30は、層間予測ユニット166を含むこともできる。層間予測ユニット166は、SVCにおいて利用可能である1つ以上の異なる層(例えば、基本層又は拡張層)を用いて現在のブロック(例えば、EL内の現在のブロック)を予測するように構成される。該予測は、層間予測と呼ぶことができる。層間予測ユニット166は、層間冗長性を低減させるための予測方法を利用し、それによって、コーディング効率を向上させ、計算リソースに関する要求を低減させる。層間予測の幾つかの例は、層間イントラ予測と、層間動き予測と、層間残差予測と、を含む。層間イントラ予測は、拡張層内の現在のブロックを予測するために基本層内での共配置されたブロックの再構築を使用する。層間動き予測は、拡張層内の動きを予測するために基本層の動き情報を使用する。層間残差予測は、拡張層の残差を予測するために基本層の残差を使用する。層間予測方式の各々が以下においてさらに詳細に説明される。
【0118】
[00126]再構築ユニット158は、CUの映像ブロックを再構築するために、CUのTUに関連する残差映像ブロック及びCUのPUの予測された映像ブロック、例えば、イントラ予測データ又はインター予測データ(適宜)、を使用することができる。従って、映像復号器30は、ビットストリーム内の構文要素に基づいて予測された映像ブロック及び残差映像ブロックを生成することができ、及び、予測された映像ブロック及び残差映像ブロックに基づいて映像ブロックを生成することができる。
【0119】
[00127]再構築ユニット158がCUの映像ブロックを再構築した後は、フィルタユニット159は、CUに関連するブロッキングアーティファクトを低減させるためのデブロッキング動作を行うことができる。フィルタユニット159がCUに関連するブロッキングアーティファクトを低減させるためのデブロッキング動作を行った後は、映像復号器30は、CUの映像ブロックを復号ピクチャバッファ160内に格納することができる。復号ピクチャバッファ160は、後続する動き補償、イントラ予測、及び表示装置、例えば、
図1の表示装置32、上での提示のために基準ピクチャを提供することができる。例えば、映像復号器30は、復号ピクチャバッファ160内の映像ブロックに基づいて、その他のCUのPUに関してイントラ予測又はインター予測動作を行うことができる。
【0120】
多層復号器
[00128]
図3Bは、本開示において説明される態様による技法を実装することができる多層映像復号器31の例を示したブロック図である。映像復号器31は、例えば、SHVC又はマルチビューコーディングに関する多層映像フレームを処理するように構成することができる。さらに、映像復号器31は、本開示のいずれかの又はすべての技法を実行するように構成することができる。
【0121】
[00129]映像復号器31は、映像復号器30Aと、映像復号器30Bと、を含み、それらの各々は、映像復号器30として構成することができ及び映像復号器30に関して上述される機能を果たすことができる。さらに、参照数字の再使用によって示されるように、映像復号器30A、30Bは、システム及びサブシステムのうちの少なくとも一部を映像復号器30として含むことができる。映像復号器31は、2つの映像復号器30A及び30Bを含むとして例示されているが、映像復号器31は、そのようには限定されず、あらゆる数の映像復号器30層を含むことができる。幾つかの実施形態においては、映像復号器31は、アクセスユニット内の各ピクチャ又はフレームに関する映像復号器30を含むことができる。例えば、5つのピクチャを含むアクセスユニットは、5つの復号器層を含む映像復号器によって処理又は復号することができる。幾つかの実施形態においては、映像復号器31は、アクセスユニット内のフレームよりも多くの復号器層を含むことができる。幾つかの該事例においては、映像復号器層のうちの一部は、幾つかのアクセスユニットを処理するときには非アクティブであることができる。
【0122】
[00130]映像復号器30A及び30Bに加えて、映像復号器31は、アップサンプリングユニット92を含むことができる。幾つかの実施形態においては、アップサンプリングユニット92は、フレーム又はアクセスユニットに関する基準ピクチャリストに加えられるべき拡張層を生成するために受信された映像フレームの基本層をアップサンプリングすることができる。この拡張層は、復号ピクチャバッファ160に格納することができる。幾つかの実施形態においては、アップサンプリングユニット92は、
図2Aの再サンプリングユニット90に関して説明される実施形態のうちの一部又は全部を含むことができる。幾つかの実施形態においては、アップサンプリングユニット92は、層をアップサンプリングし、及び、一組のスライス境界規則及び/又はラスタスキャン規則に準拠するために1つ以上のスライスを再編成、再定義、修正、又は調整するように構成される。幾つかの事例においては、アップサンプリングユニット92は、受信された映像フレームの層をアップサンプリング及び/又はダウンサンプリングするように構成された再サンプリングユニットであることができる。
【0123】
[00131]アップサンプリングユニット92は、より下位の層の復号器(例えば、映像復号器30A)の復号ピクチャバッファ160からピクチャ又はフレーム(又は、ピクチャに関連するピクチャ情報)を受信するように及びピクチャ(又は、受信されたピクチャ情報)をアップサンプリングするように構成することができる。次に、このアップサンプリングされたピクチャは、より下位の層の復号器と同じアクセスユニット内のピクチャを復号するように構成されたより高位の層の復号器(例えば、映像復号器30B)の予測処理ユニット152に提供することができる。幾つかの事例においては、より高位の層の復号器は、より下位の層の復号器から1つの層だけ取り除かれる。その他の事例においては、
図3Bの層0復号器と層1復号器との間に1つ以上のより高位の層の復号器が存在することができる。
【0124】
[00132]幾つかの事例においては、アップサンプリングユニット92は、省略すること又は迂回することができる。該事例においては、映像復号器30Aの復号ピクチャバッファ160からのピクチャは、直接、又は、少なくとも再サンプリングユニット90に提供せずに、映像復号器30Bの予測処理ユニット152に提供することができる。例えば、映像復号器30Bに提供された映像データ及び映像復号器30Aの復号ピクチャバッファ160からの基準ピクチャが同じサイズ又は解像度である場合は、基準ピクチャは、アップサンプリングせずに映像復号器30Bに提供することができる。さらに、幾つかの実施形態においては、アップサンプリングユニット92は、映像復号器30Aの復号ピクチャバッファ160か受信された基準ピクチャをアップサンプリング又はダウンサンプリングするように構成された再サンプリングユニット90であることができる。
【0125】
[00133]
図3Bにおいて例示されるように、映像復号器31は、デマルチプレクサ99、又はdemuxをさらに含むことができる。demux99は、符号化された映像ビットストリームを複数のビットストリームに分割することができ、demux99によって出力された各ビットストリームは、異なる映像復号器30A及び30Bに提供される。複数のビットストリームは、ビットストリームを受信することによって生成することができ、映像復号器30A及び30Bの各々は、所定の時間にビットストリームの一部分を受信する。幾つかの事例においては、demux99において受信されたビットストリームからのビットは、各々の映像復号器(例えば、
図3Bの例における映像復号器30A及び30B)の間で一度に1ビット交互させることができる一方で、多くの事例においては、ビットストリームは、異なった形で分割される。例えば、ビットストリームは、いずれの映像復号器がビットストリームを一度に1つのブロックずつ受信するかを交互させることによって分割することができる。他の例では、ビットストリームは、1:1の比でないブロックを映像復号器30A及び30Bの各々に提供することによって分割することができる。例えば、映像復号器30Aに提供される各ブロックに関して2つのブロックを映像復号器30Bに提供することができる。幾つかの実施形態においては、demux99によるビットストリームの分割は、予めプログラミングすることができる。その他の実施形態においては、demux99は、映像復号器31の外部のシステムから、例えば、行先デバイス14のプロセッサから、受信された制御信号に基づいてビットストリームを分割することができる。制御信号は、入力インタフェース28からの映像の解像度又はビットレートに基づいて、チャネル16の帯域幅に基づいて、ユーザに関連する加入(例えば、有料加入対無料加入)に基づいて、又は映像復号器31によって入手可能である解像度を決定するためのその他の要因に基づいて、生成することができる。
【0126】
コーディングされたビットストリーム及び時間的副層
[00134]
図2B及び3Bに関して論じられるように、スケーラブルビットストリーム内には2層以上の映像情報(例えば、Nの層数)が存在することができる。Nが1に等しい場合は、1つの層のみが存在し、それは、基本層と呼ぶこともできる。例えば、単層を有するコーディングされたビットストリームは、HEVCに適合可能である。他の例においては、Nは、1よりも大きいことができ、それは、複数の層が存在することを意味する。層数は、映像パラメータセット(VPS)において示すことができる。幾つかの実装においては、所定のVPSに関する層数(例えば、マイナス1)を示す構文要素vps_max_layers_mimus1は、VPSにおいてシグナリングすることができる。
【0127】
[00135]さらに、ビットストリーム内に存在する各映像層は、1つ以上の時間的副層を含むことができる。時間的副層は、時間的スケーラビリティを提供し、従って、スケーラブル映像コーディング一般において提供される時間的層に類似する。時間的層は、復号器に転送される前に(例えば、
図3Bのdemux99によって)取り除くことができるのとまったく同じように、時間的副層のうちの1つ以上を取り除くことができる。例えば、時間的副層は、他の層の層間予測のために使用されない場合に取り除くことができる。他の例においては、時間的副層は、ビットストリームに関連するフレームレートを低減させるか又は帯域幅を短縮させるためにビットストリームから取り除くことができる。例えば、6つの時間的副層のうちの3つが特定の層から取り除かれる場合は、その特定の層に関連するビットレートは、1/2だけ低減させることができる。
【0128】
[00136]一実装においては、符号器と復号器との間に配置されたミドルボックスは、1つ以上の時間的副層をビットストリームから取り除くことができる。ミドルボックスは、映像復号器の外部に配置され、映像復号器に転送されたビットストリームに対して処理を行うエンティティであることができる。例えば、ミドルボックスは、コーディングされたビットストリームを符号器から受信する。受信されたビットストリームからサブビットストリームを抽出後は、ミドルボックスは、抽出されたサブビットストリームを復号器に転送することができる。時間的副層のうちの1つ以上を取り除くことに加えて、ミドルボックスは、追加情報を復号器に提供することもできる。例えば、復号器に転送されたビットストリームは、1つ以上の時間的副層がビットストリーム内に存在するかどうかを示す存在情報を含むことができる。存在情報に基づいて、復号器は、時間的副層のうちのいずれがビットストリーム内に存在するかを理解することができる。存在情報は、以下において
図5乃至7を参照してさらに説明される。
【0129】
[00137]幾つかの実施形態においては、時間的副層の取り除きは、好適に行われる。例えば、条件Aが満たされている場合は、時間的副層のうちのいずれも取り除かれず、条件Bが満たされている場合は、時間的副層のうちの半分を取り除き、条件Cが満たされる場合は、すべての取り除くことが可能な時間的副層が取り除かれる(例えば、1つの時間的副層を残す)。1つ以上の時間的副層が取り除かれた後は、その結果得られるビットストリーム(又はサブビットストリーム)は、復号器に転送することができる。幾つかの実施形態においては、時間的副層の取り除きはサイド情報に基づくことができ、それは、限定されることなしに、カラースペース(色空間)、カラーフォーマット(4:2:2、4:2:0、等)、フレームサイズ、フレームタイプ、予測モード、インター予測方向、イントラ予測モード、コーディングユニット(CU)サイズ、最大/最小コーディングユニットサイズ、量子化パラメータ(QP)、最大/最小変換ユニット(TU)サイズ、最大変換ツリー深度基準フレームインデックス、時間層id、等を含むことができる。
【0130】
[00138]各時間的副層には、時間的IDを割り当てることができる。例えば、ゼロの時間的IDを有する時間的副層は、基本的な時間的副層であることができる。幾つかの実装においては、瞬時復号リフレッシュ(IDR)ピクチャ(例えば、以前のフレームを参照せずにコーディングすることができるピクチャ)又はイントラランダムアクセスポイント(IRAP)ピクチャ(例えば、Iスライスのみが入っているピクチャ)は、ゼロの時間的IDを有する副層内にしか存在することができない。一実施形態においては、基本的時間的副層は、(例えば、サブビットストリーム抽出中には)ビットストリームから取り除くことができない。一実施形態においては、時間的副層の最大数は、7に制限される。ビットストリーム内の異なる映像層は、異なる数の時間的副層を有することができる。
【0131】
[00139]
図4は、基準層(RL)401及び拡張層(EL)402の一部分を例示した概略図である。RL401は、ピクチャ420と422とを含み、EL402は、ピクチャ424と426とを含む。ピクチャ420は、RL401の時間的副層401Aに属し、ピクチャ422は、RL401の時間的副層401Bに属し、ピクチャ424は、EL402の時間的副層402Aに属し、ピクチャ426は、EL402の時間的副層402Bに属する。
図4の例においては、ピクチャ420及び424は同じアクセスユニット内にあり、ピクチャ422及び426は同じアクセスユニット内にある。従って、ピクチャ420及び424は、同じTemporalId(例えば、時間的副層ID)を有し、ピクチャ422及び426は、同じTemporalIdを有する。一実施形態においては、ピクチャ426は、ピクチャ422の情報を用いて予測することができる。例えば、ピクチャ422は、RL401とEL402との間のスケーラビリティ比に従ってアップサンプリングしてEL402の基準ピクチャセット(RPS)に加えることができ、ピクチャ426は、ピクチャ422のアップサンプリングされたバージョンを予測子として使用して予測することができる。幾つかの実装においては、ピクチャ422がピクチャ426の層間予測のために使用されるかどうかを示すフラグがビットストリーム内に存在することができる。該フラグは、ピクチャ426に含まれるスライスのスライスヘッダ内おいて提供することができる。
【0132】
[00140]例えば、RL401に関して時間的副層401Aのみが存在する場合がある。RL401及びEL402を含むビットストリームが適合する(例えば、合法的ビットストリームである)場合は、ピクチャ422は、符号器側及び復号器側のいずれにおいても、EL402内のピクチャを予測するためには使用されない。従って、当然のことであるが、ビットストリームは、復号プロセスが存在していないピクチャを予測のために使用しない又はその他の規則に違反しないような形で符号化される。しかしながら、復号器は、ピクチャ422は層間予測のためには使用されないということをスライスレベルで認識するだけである。例えば、ピクチャ422が層間予測のために使用されないことを復号器が知るためにビットストリーム全体をスライスレベルまで構文解析しなければならないことがある。ピクチャ422が層間予測のために使用されないことを復号器が事前に知っている場合は、復号器は、各スライスに関して、ピクチャ422が層間予測のために使用中であるかどうかを決定する必要がない。その代わりに、復号器は、ピクチャ422をアップサンプリングしない又はその他の形で処理しないことを事前に決定することができ、それは、層間予測に関して存在情報がビットストリーム内に存在しないことによって示される。例えば、幾つかの実装においては、特定のピクチャ(例えば、のちに復号されるべきである将来のピクチャに対応する基準層ピクチャ)が層間予測のために使用されないことがスライスヘッダにおいて示される場合でも、復号プロセスを督促するために、アップサンプリング又はその他の処理は、特定のピクチャが層間予測のために使用されないと決定する前にその他の復号プロセスと並行して実施することができ、従って、特定のピクチャのアップサンプリングされた又はその他の形で処理されたバージョンを必要な場合に使用することができる。特定のピクチャが層間予測のために使用されるか又は使用されないかを復号器が事前に知っている場合は、該アップサンプリング又は処理は、行うことができない。従って、計算数を減少させること及びそれに関連する遅延を短縮することができる。
【0133】
[00141]他の実施形態においては、時間的副層401Bが存在するかどうかを示す存在情報は、ビットストリーム内で提供することができる。ここにおいて説明される映像符号器又はミドルボックスは、存在情報をシグナリングする(例えば、ビットストリーム内に存在情報を含める)ことができる。該存在情報は、パラメータセットのうちの1つ(例えば、映像パラメータセット)においてシグナリングすることができる。他の例においては、存在情報は、補足的エンハンスメント情報(SEI)メッセージとしてシグナリングすることができる。パラメータセットでのシグナリングとSEIメッセージとしてのシグナリングの1つの相違点は、SEIは任意選択であり、パラメータセットはそうではないことである。他の相違点は、シグナリングの位置であることができる。例えば、時間的副層401Bがビットストリーム内に存在しない(例えば、取り除かれている)ことを存在情報が示す場合は、復号器は、時間的副層401Bの一部であるピクチャ422が層間予測のために使用されないと推論することができる。(例えば、ビットをスライスレベルで構文解析した後に同じ情報を受信するのではなく)ビットストリームにおいて早期に時間的副層401B及び/又はピクチャ422の存在に関するその情報を有することで、復号器は、全体的な復号プロセスを最適化することができる。例えば、復号器が存在情報を有した時点で、復号器は、もはや、各スライスに関して、特定のスライスが1つ以上のRLピクチャを用いて予測されるかどうかを決定する必要がない。従って、該決定を行うことに関連する計算上の複雑さを小さくすること又はなくすことができる。一実施形態においては、復号器によって行われる最適化は、復号器によって出力された映像信号を変えない。存在情報を提供する方法が以下において
図5乃至7を参照してさらに説明される。
【0134】
[00142]
図5は、本開示の実施形態による映像情報をコーディングするための方法500を例示したフローチャートである。
図5において例示されるステップは、符号器(例えば、
図2A又は
図2Bにおいて示される映像符号器)、復号器(例えば、
図3A又は
図3Bにおいて示される映像復号器)、又はいずれかのその他のコンポーネント(例えば、符号器と復号器との間において提供されるミドルボックス)によって実行することができる。便宜上、方法500は、コーダによって実行されるとして説明され、それは、符号器、復号器、又は他のコンポーネントであることができる。
【0135】
[00143]方法500は、ブロック501において開始する。ブロック505において、コーダは、時間的副層を備える映像層に関連する映像情報を格納する。例えば、映像層は、基準層(例えば、基本層)又は拡張層であることができる。ブロック510において、コーダは、ビットストリームのシーケンスレベルで存在情報を決定し、ここで、存在情報は、映像層の時間的副層がビットストリーム内に存在するかどうかを示す。例えば、存在情報の決定は、ビットストリームで存在情報をシグナリングする前に行うことができる。他の例においては、存在情報の決定は、ビットストリーム内の該当するビットを構文解析後に行うことができる。方法500は、ブロック515において終了する。
【0136】
[00144]上述されるように、本開示において論じられる技法、例えば、時間的副層がビットストリーム内に存在するかどうかを示す存在情報を決定する、のうちのいずれかを実装するために、
図2Aの映像符号器20、
図2Bの映像符号器21、
図3Aの映像復号器30、又は
図3Bの映像復号器31(例えば、層間予測ユニット128及び/又は層間予測ユニット166)のうちの1つ以上のコンポーネントを使用することができる。
【0137】
[00145]上述されるように、存在情報を有することによって、復号器は、特定の副層が送信中に意図的に取り除かれているか又は偶発的に失われたかを理解することができる。例えば、特定の層内に4つの副層が存在することを存在情報が示す場合は、復号器が復号プロセスをどのようにして最適化するかは、復号器が実際には4つの副層を受信するか(例えば、すべての情報が受信されている)又は2つの副層を受信するか(例えば、その他の2つの副層が送信中に失われた)に依存して異なる。
【0138】
実装例#1
[00146]
図6は、本開示の実施形態による、映像情報をコーディングするための方法600を例示したフローチャートである。
図6において例示されるステップは、符号器(例えば、
図2A又は
図2Bにおいて示される映像符号器)、復号器(例えば、
図3A又は
図3Bにおいて示される映像復号器)、又はいずれかのその他のコンポーネント(例えば、符号器と復号器との間において提供されるミドルボックス)によって実行することができる。便宜上、方法600は、コーダによって実行されるとして説明され、それは、符号器、復号器、又は他のコンポーネントであることができる。
【0139】
[00147]方法600は、ブロック601において開始する。ブロック605において、コーダは、アクティブな映像パラメータセット(VPS)を決定する。例えば、アクティブなVPSのIDは、所定の層内の層数及び副層数を取り出すために使用される。ブロック610において、コーダは、映像層内の各時間的副層に関する存在情報を決定する。例えば、存在情報の決定は、ビットストリームで存在情報をシグナリングする前に行うことができる。他の例においては、存在情報の決定は、ビットストリーム内の該当するビットを構文解析後に行うことができる。ブロック620において、コーダは、すべての映像層がアドレッシングされているか(例えば、横断されているか)どうかを決定する。残っている映像層が存在するとコーダが決定した場合は、コーダは、ブロック615に進み、ここで、コーダは、次の映像層(例えば、残っている映像層のうちの1つ)の各時間的副層に関する存在情報を決定する。ブロック615は、残っている映像層が存在しなくなるまで繰り返される。残っている映像層が存在しないとコーダが決定した場合は、方法600は、ブロック625において終了する。
【0140】
[00148]上述されるように、本開示において論じられる技法、例えば、時間的副層がビットストリーム内に存在するかどうかを示す存在情報を決定する、のうちのいずれかを実装するために、
図2Aの映像符号器20、
図2Bの映像符号器21、
図3Aの映像復号器30、又は
図3Bの映像復号器31(例えば、層間予測ユニット128及び/又は層間予測ユニット166)のうちの1つ以上のコンポーネントを使用することができる。
【表1】
【0141】
[00150]表1は、時間的副層の存在情報をシグナリングするためにビットストリーム内に含めることができる構文例を示す。表1の例において、各層及び各副層内を横断するために2つのFORループが使用される(例えば、第1のFORループが層内を横断し、第2のFORループが所定の層内の副層内を横断する)。すべての層に関して、その層内の副層の各々に関してフラグがシグナリングされる。例えば、2つの層が存在することをvps_max_layers_minus1が示し、それらの2つの層が5つの副層をそれぞれ有することをvps_max_sub_layers_minus1が示し、各層の最初の2つの副層のみがビットストリーム内に存在する場合は、sub_layer_present_flag[i][j]に対応するビットは、1100011000であることができ、ここにおいて、最初の5ビットは、第1の層に関連する存在情報を備え、次の5ビットは、第2の層に関連する存在情報を備える。
【0142】
[00151]表1の例において、active_video_parameter_set_idは、SEIメッセージに関連するアクセスユニットのVCL NALユニットによって参照されるVPSのvps_video_parameter_set_idの値を示す。vps_max_layers_minus1及びvps_max_sub_layers_minus1はVPSにおいて定義され、これらの変数を取り出すためにactive_vps_video_parameter_set_idを使用することができるため、アクティブなVPSは、存在情報をシグナリングする前に識別される。幾つかの実装においては、active_video_parameter_set_idの値は、0乃至15の範囲内にある。
【0143】
[00152]表1の例において、sub_layer_present_flag[i][j]は、j以上のTemporalId(例えば、時間的副層に割り当てられたID)及びlayer_id_in_nuh[i]に等しいnuh_layer_idを有する副層に関する現在のアクセスユニット内にNALユニットが存在しない場合は0の値を有する。sub_layer_present_flag[i][j]は、j以上のTemporalId(例えば、時間的副層に割り当てられたID)及びlayer_id_in_nuh[i]に等しいnuh_layer_idを有する副層に関する現在のアクセスユニット内にNALユニットが存在する場合は1の値を有する。幾つかの実施形態においては、sub_layer_present_flag[i][j]は、TemporalIdがゼロに等しい副層は含まない。例えば、ゼロのTemporalId値を有する副層が常に存在すべきであり、絶対的に意図的にビットストリームから取り除かれるべきでないことを復号器が知っていることができる又は仮定することができる。
【0144】
[00153]表1において示される構文は、パラメータセット内(例えば、VPS拡張内)に含めることができる。代替として、構文は、SEIメッセージとして含めることができる。一実施形態においては、構文は、スケーラブルなネスティングSEIメッセージ内に含めることができない。
【0145】
[00154]一実施形態においては、sub_layer_present_flag[i][j]が、layer_id_in_nuh[i]に等しいnuh_layer_idを有する特定の層に関して1に等しく、特定の副層がjに等しいTemporalIdを有するときには、sub_layer_present_flag[RefLayerId[i][k][j]は、範囲[0,NumDirectRefLayers[i]−1]内のすべてのjに関して1に等しい。
【0146】
[00155]一実施形態においては、表1において示されるようにシグナリングされる存在情報は、現在のアクセスユニット、及び、次回に他の存在情報がシグナリングされるまで又はコーデッド映像シーケンス(CVS)の最後のうちの復号順序でより早い方までの(例えば、復号順序の)すべての後続するアクセスユニットに対して適用される。
【0147】
実装例#2
[00156]
図7は、本開示の他の実施形態による、映像情報をコーディングするための方法700を例示したフローチャートである。
図7において例示されるステップは、符号器(例えば、
図2A又は
図2Bにおいて示される映像符号器)、復号器(例えば、
図3A又は
図3Bにおいて示される映像復号器)、又はいずれかのその他のコンポーネント(例えば、符号器と復号器との間において提供されるミドルボックス)によって実行することができる。便宜上、方法700は、コーダによって実行されるとして説明され、それは、符号器、復号器、又は他のコンポーネントであることができる。
【0148】
[00157]方法700は、ブロック701において開始する。ブロック705において、コーダは、アクティブな映像パラメータセット(VPS)を決定する。例えば、アクティブなVPSのIDは、所定の層内の層数及び副層数を取り出すために使用される。ブロック710において、コーダは、映像層の存在情報を決定する。上述されるように、存在情報は、ビットストリーム内に1つ以上の副層が存在するかどうかを示すことができる。一実施形態においては、存在情報の決定は、ビットストリームで存在情報をシグナリングする前に行うことができる。例えば、符号器又はミドルボックスは、ビットストリームで存在情報をシグナリングする前に存在情報を決定することができる。他の実施形態においては、存在情報の決定は、ビットストリーム内の該当するビットを構文解析後に行うことができる。例えば、復号器は、存在情報を含むビットストリーム部分の構文解析後に存在情報を決定すること及び復号プロセスを最適化するために存在情報を使用することができる。一例においては、映像層の存在情報は、どれだけの数の時間的副層が映像層内に存在するかを示す。ブロック720において、コーダは、すべての映像層がアドレッシングされているか(横断されているか)どうかを決定する。残っている映像層が存在するとコーダが決定した場合は、コーダは、ブロック715に進み、ここで、コーダは、次の映像層(例えば、残っている映像層のうちの1つ)の存在情報を決定する。ブロック715は、残っている映像層が存在しなくなるまで繰り返される。残っている層が存在しないとコーダが決定した場合は、方法700は、ブロック725において終了する。
【0149】
[00158]上述されるように、本開示において論じられる技法、例えば、映像層の存在情報を決定する、のうちのいずれかを実装するために、
図2Aの映像符号器20、
図2Bの映像符号器21、
図3Aの映像復号器30、又は
図3Bの映像復号器31のうちの1つ以上のコンポーネント(例えば、層間予測ユニット128及び/又は層間予測ユニット166)を使用することができる。
【0150】
[00159]表2を参照し、方法700に対応する構文例が以下において説明される。
【表2】
【0151】
[00160]表2は、時間的副層の存在情報をシグナリングするためにビットストリーム内に含めることができる構文例を示す。表2の例において、層内を横断するために単一のFORループが使用される。各層に関して、構文要素がシグナリングされ、層内に存在する副層数を示す。例えば、2つの層が存在することをvps_max_layers_minus1が示し、各層の最初の3つの副層のみがビットストリーム内に存在する場合は、sub_layer_present_id_minus1[i]に対応するビットは、10 10であることができ、ここにおいて、最初の2つのビットは、第1の層内に存在する副層数(例えば、3つ)を示し、次の2つのビットは、第2の層内に存在する副層数(例えば、3つ)を示す。
【0152】
[00161]表2の例において、active_video_parameter_set_idは、SEIメッセージに関連するアクセスユニットのVCL NALユニットによって参照されるVPSのvps_video_parameter_set_idの値を示す。vps_max_layers_minus1はVPSにおいて定義され、この値を取り出すためにactive_vps_video_parameter_set_idを使用することができるため、アクティブなVPSは、存在情報をシグナリングする前に識別される。一実装においては、この値を取り出すためにactive_video_parameter_set_idを使用することができる。一実装においては、active_video_parameter_set_idの値は、0乃至15の範囲内にある。
【0153】
[00162]表2の例において、sub_layer_present_id_minus[i]plus 1は、layer_id_in_nuh[i]に等しいnuh_layer_idを有する特定の層内の副層数を示す。例えば、sub_layer_present_id_minus[i]plus 1の値以上のTemporalIdを有するNALユニットが現在のアクセスユニット内に存在しないことができる。
【0154】
[00163]表2において示される構文は、パラメータセット内(例えば、VPS拡張内)に含めることができる。代替として、構文は、SEIメッセージとして含めることができる。一実施形態においては、構文は、スケーラブルなネスティングSEIメッセージ内に含めることができない。
【0155】
[00164]一実施形態においては、sub_layer_present_id_minus1[i]が、layer_id_in_nuh[i]に等しいnuh_layer_idを有する特定の層に関するcurr_sub_layerIDに等しいときには、sub_layer_present_id_minus1[RefLayerId[i][k]]は、範囲[0,NumDirectRefLayers[i]−1]内のすべてのjに関してcurr_sub_layer Idに等しい。
【0156】
[00165]一実施形態においては、表2において示されるようにシグナリングされる存在情報は、現在のアクセスユニット、及び、次回に他の存在情報が(例えば、パラメータセット内で又はSEIメッセージとして)シグナリングされるまで又はコーデッド映像シーケンス(CVS)の最後のうちの復号順序でより早い方までの(例えば、復号順序の)すべての後続するアクセスユニットに対して適用される。
【0157】
[00166]上述される方法例及び実装例は、MV−HEVC及びHEVC 3DVにも適用することができる。
【0158】
[00167]ここにおいて開示される情報及び信号は、様々な異なる技術及び技法のうちのいずれかを用いて表すことができる。例えば、上記の説明全体を通じて参照されることがあるデータ、命令、コマンド、情報、信号、ビット、シンボル、及びチップは、電圧、電流、電磁波、磁場、磁粒子、光学場、光学粒子、又はそれらのあらゆる組合せによって表すことができる。
【0159】
[00168]ここにおいて開示される実施形態と関係させて説明される様々な例示的な論理ブロック、モジュール、回路、及びアルゴリズムのステップは、電子ハードウェア、コンピュータソフトウェア、又は両方の組み合わせとして実装することができる。ハードウェアとソフトウェアのこの互換性を明確に例示するため、上記においては、様々な例示的なコンポーネント、ブロック、モジュール、回路、及びステップが、それらの機能の観点で一般的に説明されている。該機能がハードウェアとして又はソフトウェアとして実装されるかは、特定の用途及び全体的システムに対する設計上の制約事項に依存する。当業者は、説明されている機能を各々の特定の用途に合わせて様々な形で実装することができるが、該実装決定は、本開示の適用範囲からの逸脱を生じさせるものであるとは解釈されるべきではない。
【0160】
[00169]ここにおいて説明される技法は、ハードウェア、ソフトウェア、ファームウェア、又はそれらのあらゆる組み合わせにおいて実装することができる。該技法は、様々なデバイスのうちのいずれか、例えば、汎用コンピュータ、無線通信デバイスハンドセット、又は、無線通信デバイスハンドセット及びその他のデバイスにおけるアプリケーションを含む複数の用途を有する集積回路デバイス、において実装することができる。モジュール又はコンポーネントとして説明される特徴は、一体化された論理デバイスにおいてまとめて又は個別の、ただし相互運用可能な論理デバイスとして別々に実装することができる。ソフトウェアにおいて実装された場合は、技法は、実行されたときに、上述される方法のうちの1つ以上を実行する命令を含むプログラムコードを備えるコンピュータによって読み取り可能なデータ記憶媒体によって少なくとも部分的に実現することができる。コンピュータによって読み取り可能なデータ記憶媒体は、コンピュータプログラム製品の一部を成すことができ、それは、パッケージング材料を含むことができる。コンピュータによって読み取り可能な媒体は、メモリ又はデータ記憶媒体、例えば、ランダムアクセスメモリ(RAM)、例えば、同期的ダイナミックランダムアクセスメモリ(SDRAM)、読み取り専用メモリ(ROM)、非揮発性ランダムアクセスメモリ(NVRAM)、電気的消去可能プログラマブル読み取り専用メモリ(EEPROM)、FLASHメモリ、磁気データ記憶媒体、光学的データ記憶媒体、等を備えることができる。技法は、さらに加えて、又は代替として、命令又はデータ構造の形態でプログラムコードを搬送又は通信し、コンピュータによってアクセスすること、読み取ること、及び/又は実行することができる、コンピュータによって読み取り可能な通信媒体によって少なくとも部分的に実現することができる。
【0161】
[00170]プログラムコードは、プロセッサによって実行することができ、それは、1つ以上のプロセッサ、例えば、1つ以上のデジタル信号プロセッサ(DSP)、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブルロジックアレイ(FPGA)、又は、その他の同等の集積回路又はディスクリートロジック回路、を含むことができる。該プロセッサは、本開示において説明される技法のうちのいずれかを実行するように構成することができる。汎用プロセッサは、マイクロプロセッサであることができるが、代替においては、プロセッサは、従来のどのようなプロセッサ、コントローラ、マイクロコントローラ、又はステートマシンであってもよい。プロセッサは、コンピューティングデバイスの組合せ、例えば、DSPと、1つのマイクロプロセッサとの組合せ、複数のマイクロプロセッサとの組合せ、DSPコアと関連する1つ以上のマイクロプロセッサとの組合せ、又はあらゆるその他の該構成、として実装することも可能である。従って、ここにおいて使用される用語“プロセッサ”は、上記の構造のうちのいずれか、上記の構造のあらゆる組み合わせ、又はここにおいて説明される技法の実装に適するその他のいずれかの構造又は装置を意味することができる。さらに、幾つかの態様においては、ここにおいて説明される機能は、符号化及び復号のために構成された専用ソフトウェアモジュール又はハードウェアモジュール内において提供すること、又は、結合された映像符号器−復号器(CODEC)内に組み入れることができる。さらに、技法は、1つ以上の回路又は論理素子内において完全に実装することができる。
【0162】
[00171]本開示の技法は、無線ハンドセット、集積回路(IC)又は一組のIC(例えば、チップセット)を含む非常に様々なデバイス又は装置内に実装することができる。本開示では、開示される技法を実施するように構成されたデバイスの機能上の態様を強調するために様々なコンポーネント、モジュール、又はユニットが説明されるが、異なるハードウェアユニットによる実現は必ずしも要求しない。むしろ、上述されるように、様々なユニットは、適切なソフトウェア及び/又はファームウェアと関係させて、コーデックハードウェアユニット内において結合させること又は上述されるように1つ以上のプロセッサを含む相互運用的なハードウェアユニットの集合によって提供することができる。
【0163】
[0172]本発明の様々な実施形態が説明されている。これらの及びその他の実施形態は、以下の請求項の範囲内である。
以下に、出願当初の特許請求の範囲に記載された発明を付記する。
[C1]映像情報をコーディングするように構成された装置であって、
1つ以上の時間的副層を備える映像層に関連する映像情報を格納するように構成されたメモリユニットと、
前記メモリユニットと通信状態にあるプロセッサと、を備え、前記プロセッサは、ビットストリーム内におけるコーディングされた映像シーケンスに関する存在情報を決定するように構成され、前記存在情報は、前記映像層の前記1つ以上の時間的副層が前記ビットストリーム内に存在するかどうかを示す、装置。
[C2]前記存在情報は、映像パラメータセット(VPS)内でシグナリングされるC1に記載の装置。
[C3]前記存在情報は、補足的エンハンスメント情報(SEI)メッセージとしてシグナリングされるC1に記載の装置。
[C4]前記存在情報は、前記ビットストリーム内のすべての層に関して、それの各時間的副層が存在するかどうかを示すC1に記載の装置。
[C5]前記存在情報は、前記ビットストリーム内のすべての層に関して、いくつの数の時間的副層が存在するかを示すC1に記載の装置。
[C6]前記1つ以上の時間的副層のうちの1つは、基準層ピクチャを含み、前記プロセッサは、前記1つ以上の時間的副層のうちの前記1つが前記ビットストリーム内に存在しないことを前記存在情報が示す場合は前記ビットストリーム内の他の層の層間予測に関する前記基準層ピクチャをアップサンプリングすることを控えるようにさらに構成されるC1に記載の装置。
[C7]前記基準層ピクチャをアップサンプリングすることを前記控えることは、前記装置によって出力される映像信号を変化させずに行われるC6に記載の装置。
[C8]前記装置は、符号器を備え、前記プロセッサは、前記ビットストリーム内の前記映像層を符号化するようにさらに構成されるC1に記載の装置。
[C9]前記装置は、符号器から映像情報を受信して前記映像情報の修正されたバージョンを復号器に転送するように構成されたミドルボックスを備え、前記プロセッサは、前記1つ以上の時間的副層の部分組を前記ビットストリームから取り除くようにさらに構成されるC1に記載の装置。
[C10]前記装置は、復号器を備え、前記プロセッサは、前記ビットストリーム内の前記映像層を復号するようにさらに構成されるC1に記載の装置。
[C11]前記装置は、コンピュータ、ノートブック、ラップトップコンピュータ、タブレットコンピュータ、セットトップボックス、電話ハンドセット、スマートフォン、スマートパッド、テレビ、カメラ、表示装置、デジタルメディアプレーヤー、ビデオゲームプレイコンソール、及び車載コンピュータのうちの1つ以上から成るグループから選択されたデバイスを備えるC1に記載の装置。
[C12]映像情報をコーディングする方法であって、
1つ以上の時間的副層を備える映像層に関連する映像情報を格納することと、
ビットストリーム内におけるコーディングされた映像シーケンスに関する存在情報を決定することと、を備え、前記存在情報は、前記映像層の前記1つ以上の時間的副層が前記ビットストリーム内に存在するかどうかを示す、方法。
[C13]前記存在情報は、前記映像パラメータセット(VPS)内でシグナリングされるC12に記載の方法。
[C14]前記存在情報は、補足的エンハンスメント情報(SEI)メッセージとしてシグナリングされるC12に記載の方法。
[C15]前記存在情報は、前記ビットストリーム内のすべての層に関して、それの各時間的副層が存在するかどうかを示すC12に記載の方法。
[C16]前記存在情報は、前記ビットストリーム内のすべての層に関して、いくつの数の時間的副層が存在するかを示すC12に記載の方法。
[C17]1つ以上の時間的副層のうちの1つが前記ビットストリーム内に存在しないことを前記存在情報が示す場合は前記ビットストリーム内の他の層の層間予測に関する前記1つ以上の時間的副層のうちの前記1つにおいて基準層ピクチャをアップサンプリングすることを控えることをさらに備えるC12に記載の方法。
[C18]前記基準層ピクチャをアップサンプリングすることを前記控えることは、前記方法を用いて出力される映像信号を変化させずに行われるC17に記載の方法。
[C19]非一時的なコンピュータによって読み取り可能な媒体であって、
実行されたときに、
1つ以上の時間的副層を備える映像層に関連する映像情報を格納することと、
ビットストリーム内におけるコーディングされた映像シーケンスに関する存在情報を決定することであって、前記存在情報は、前記映像層の前記1つ以上の時間的副層が前記ビットストリーム内に存在するかどうかを示すことと、を備えるプロセスを実行することを装置に行わせるコードを備える、非一時的なコンピュータによって読み取り可能な媒体。
[C20]前記存在情報は、前記映像パラメータセット(VPS)内で又は補足的エンハンスメント情報(SEI)メッセージとしてシグナリングされるC19に記載のコンピュータによって読み取り可能な媒体。
[C21]前記存在情報は、前記ビットストリーム内のすべての層に関して、それの各時間的副層が存在するかどうか及びいくつの数の時間的副層が存在するかのうちの1つを示すC19に記載のコンピュータによって読み取り可能な媒体。
[C22]映像情報をコーディングするように構成された映像コーディングデバイスであって、
1つ以上の時間的副層を備える映像層に関連する映像情報を格納するための手段と、
ビットストリーム内におけるコーディングされた映像シーケンスに関する存在情報を決定するための手段と、を備え、前記存在情報は、前記映像層の前記1つ以上の時間的副層が前記ビットストリーム内に存在するかどうかを示す、映像コーディングデバイス。
[C23]前記存在情報は、前記映像パラメータセット(VPS)内で又は補足的エンハンスメント情報(SEI)メッセージとしてシグナリングされるC22に記載の映像コーディングデバイス。
[C24]前記存在情報は、前記ビットストリーム内のすべての層に関して、それの各時間的副層が存在するかどうか及びいくつの数の時間的副層が存在するかのうちの1つを示すC22に記載の映像コーディングデバイス。