【文献】
Ching-Yeh Chen, et al.,CE8.a.4: One-stage/Two-stage SAO and ALF with LCU-based syntax,Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11 8th Meeting: San Jose, CA, USA, 1-10 February, 2012,2012年 2月 4日,JCTVC-H0274,URL,http://phenix.it-sudparis.eu/jct/doc_end_user/documents/8_San%20Jose/wg11/JCTVC-H0274-v4.zip
【文献】
A. Fuldseth, et al.,Non-CE8.a.2: SAO with LCU-based syntax,Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11 8th Meeting: San Jose, CA, USA, 1-10 February, 2012,2012年 2月 8日,JCTVC-H0067,URL,http://phenix.it-sudparis.eu/jct/doc_end_user/documents/8_San%20Jose/wg11/JCTVC-H0067-v4.zip
【文献】
Ching-Yeh Chen, et al.,CE8 Subset2: A Joint Proposal on Improving the Adaptive Loop Filter in TMuC0.9 by MediaTek, Qualcomm, and Toshiba,Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11 4th Meeting: Daegu, KR, 20-28 January, 2011,2011年 1月15日,JCTVC-D119,URL,http://phenix.it-sudparis.eu/jct/doc_end_user/documents/4_Daegu/wg11/JCTVC-D119-v1.zip
【文献】
Chih-Ming Fu, et al.,Sample Adaptive Offset with LCU-based Syntax,Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11 6th Meeting: Torino, IT, 14-22 July, 2011,2011年 7月15日,JCTVC-F056,URL,http://phenix.it-sudparis.eu/jct/doc_end_user/documents/6_Torino/wg11/JCTVC-F056-v5.zip
【文献】
Woo-Shik Kim, et al.,Non-CE1: LCU SAO Enable Flag Coding,Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11 9th Meeting: Geneva, CH, 27 April - 7 May 2012,2012年 4月17日,JCTVC-I0193,URL,URL:http://phenix.it-sudparis.eu/jct/doc_end_user/documents/9_Geneva/wg11/JCTVC-I0193-v1.zip
【文献】
Chih-Wei Hsu, et al.,Non-CE1: Decoupling SAO on/off from SAO type with neighbor-based contexts,Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11 9th Meeting: Geneva, CH, 27 April - 7 May 2012,2012年 4月19日,JCTVC-I0199,URL,http://phenix.it-sudparis.eu/jct/doc_end_user/documents/9_Geneva/wg11/JCTVC-I0199-v4.zip
【文献】
In Suk Chong, et al.,AHG6: Decoupling SAO LCU on/off from SAO type,Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11 10th Meeting: Stockholm, SE, 11-20 July 2012,2012年 7月 2日,JCTVC-J0103,URL,http://phenix.it-sudparis.eu/jct/doc_end_user/documents/10_Stockholm/wg11/JCTVC-J0103-v1.zip
(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0013】
[0021]本開示は、ビデオコーディングに関し、より具体的には、ループフィルタパラメータをシグナリングするための技法に関する。いくつかの例は、サンプル適応オフセット(SAO)パラメータと適応ループフィルタ(ALF)パラメータとをシグナリングするための技法に関する。本開示の一例は、(たとえば、LCUレベルで)他のSAOパラメータの前にシグナリングされる、LCU中のブロックにSAOが使用されているかどうかを示すSAOオン/オフフラグの導入に関する。本開示の別の例は、(たとえば、LCUレベルで)他のALFパラメータの前にシグナリングされる、LCU中のブロックにALFが使用されているかどうかを示すALFオン/オフフラグの導入に関する。
【0014】
[0022]様々な例では、本開示は、符号化されたビットストリームに含めるために、ビデオブロックグループに関してループフィルタがオンになっているか、それともオフになっているかを示すイネーブルシンタックス要素を生成することができるシステムおよび方法について説明する。ビデオブロックグループに関してループフィルタがオンになっていることをイネーブルシンタックス要素が示したことに応答して、本開示の技法は、ビデオブロックグループに関するループフィルタのためのパラメータを識別する1つまたは複数の追加のシンタックス要素を生成することをさらに含むことができる。
【0015】
[0023]SAOおよびALFにおいて、マージ信号(たとえば、merge_leftまたはmerge_up)が使用され得る。merge_leftシンタックス要素が、たとえば、現在のビデオブロックグループに関するフィルタパラメータが、現在のグループの左にある以前コーディングされたビデオブロックグループに関するフィルタパラメータから借りられるかどうかを示し得る一方、merge_upシンタックス要素は、現在のビデオブロックグループに関するフィルタパラメータが、現在のグループの上に位置する以前コーディングされたビデオブロックグループに関するフィルタパラメータから借りられるかどうかを示すことができる。マージタイプのうちの1つが選択されていない(すなわち、現在のパラメータが、左または上のすでにコーディングされたビデオブロックグループに関するパラメータから借りられる)場合、ループフィルタオン/オフインジケータおよびオフセット/係数が続いてシグナリングされる。
【0016】
[0024]マージが選択されていない場合、フィルタ(またはオフセット)オン/オフシグナリングおよびフィルタ(オフセット)係数が次に生じ得る。この結果、LCU内またはパーティション内のすべてまたは多くのブロックがSAOおよび/またはALFを適用していないときに、マージ信号の冗長シグナリングが生じ得る。
【0017】
[0025]本開示は、ビデオコーディングに関し、より具体的には、サンプル適応オフセット(SAO)パラメータと適応ループフィルタ(ALF)パラメータとをシグナリングするための技法に関する。本開示の一例は、(たとえば、LCUレベルで)他のSAOパラメータの前にシグナリングされる、LCU中のブロックにSAOが使用されているかどうかを示すSAOオン/オフフラグの導入に関する。本開示の別の例は、(たとえば、LCUレベルで)他のALFパラメータの前にシグナリングされる、LCU中のブロックにALFが使用されているかどうかを示すALFオン/オフフラグの導入に関する。
【0018】
[0026]本開示の技法によれば、ループフィルタ(たとえば、SAOまたはALF)が有効であるかどうかを示すシンタックス要素が、他のループフィルタパラメータ(たとえば、マージシンタックス要素)の前に、符号化されたビデオビットストリームにおいてシグナリングされ得る。一例では、ビデオブロックグループ(たとえば、LCUまたはパーティション)に関してSAOが有効であるかどうかを示すsao_enable_flagが、デコーダによる使用のために最初にシグナリングされる。SAOフィルタリングが有効であることをsao_enable_flagが示す場合、1つまたは複数のマージシンタックス要素(たとえば、merge_leftおよびmerge_up)が送信され得る。merge_leftフラグおよびmerge_upフラグが、SAOフィルタパラメータが左のビデオブロックまたは上のビデオブロックに関するフィルタパラメータと同じではないことを示す場合、本明細書で説明するようにフィルタパラメータがシグナリングされ得る。いくつかの例では、sao_enable_flagが、SAOフィルタリングがオンになっているか、それともオフになっているかをすでに示しているので、sao_type_idxシンタックス要素は、「フィルタリングオフ」インジケータを含む必要がなく、したがって、sao_type_idxシンタックス要素を送信するときにビット節約が可能になり得る。SAOシグナリングおよびALFシグナリングに関する本開示の具体的技法について、以下でより詳細に説明する。
【0019】
[0027]
図1は、本開示で説明される適応SAO技法を利用し得る例示的なビデオ符号化および復号システム10を示すブロック図である。
図1に示されるように、システム10は、宛先デバイス14によって後で復号されるべき符号化されたビデオデータを生成するソースデバイス12を含む。ソースデバイス12および宛先デバイス14は、デスクトップコンピュータ、ノートブック(すなわち、ラップトップ)コンピュータ、タブレットコンピュータ、セットトップボックス、いわゆる「スマート」フォンなどの電話ハンドセット、いわゆる「スマート」パッド、テレビジョン、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲームコンソール、ビデオストリーミングデバイスなどを含む、広範囲にわたるデバイスのいずれかを備え得る。場合によっては、ソースデバイス12および宛先デバイス14は、ワイヤレス通信に対応し得る。
【0020】
[0028]宛先デバイス14は、リンク16を介して、復号されるべき符号化されたビデオデータを受信し得る。リンク16は、ソースデバイス12から宛先デバイス14に符号化されたビデオデータを移動することが可能な任意のタイプの媒体またはデバイスを備え得る。一例では、リンク16は、符号化されたビデオデータをソースデバイス12がリアルタイムで宛先デバイス14に直接送信することを可能にするための、通信媒体を備え得る。符号化されたビデオデータは、ワイヤレス通信プロトコルなどの通信規格に従って変調され、宛先デバイス14に送信され得る。通信媒体は、高周波(RF)スペクトルあるいは1つまたは複数の物理伝送線路のような、任意のワイヤレスまたは有線通信媒体を備え得る。通信媒体は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはインターネットなどのグローバルネットワークのような、パケットベースネットワークの一部を形成し得る。通信媒体は、ソースデバイス12から宛先デバイス14への通信を可能にするために有用であり得るルータ、スイッチ、基地局、または任意の他の機器を含み得る。
【0021】
[0029]代替的に、符号化されたデータは、出力インターフェース22から記憶デバイス34に出力され得る。同様に、符号化されたデータは、入力インターフェースによって記憶デバイス34からアクセスされ得る。記憶デバイス34は、ハードドライブ、ブルーレイ(登録商標)ディスク、DVD、CD−ROM、フラッシュメモリ、揮発性または不揮発性メモリ、あるいは符号化されたビデオデータを記憶するための任意の他の好適なデジタル記憶媒体のような、種々の分散されたデータ記憶媒体またはローカルにアクセスされるデータ記憶媒体のいずれかを含み得る。さらなる一例では、記憶デバイス34は、ソースデバイス12によって生成された符号化されたビデオを保持し得るファイルサーバまたは別の中間記憶デバイスに対応し得る。宛先デバイス14は、ストリーミングまたはダウンロードを介して、記憶デバイス34から、記憶されたビデオデータにアクセスし得る。ファイルサーバは、符号化されたビデオデータを記憶し、その符号化されたビデオデータを宛先デバイス14に送信することが可能な任意のタイプのサーバであり得る。例示的なファイルサーバは、(たとえば、ウェブサイトのための)ウェブサーバ、FTPサーバ、ネットワーク接続ストレージ(NAS)デバイス、またはローカルディスクドライブを含む。宛先デバイス14は、インターネット接続を含む、任意の標準のデータ接続を通じて、符号化されたビデオデータにアクセスし得る。これは、ファイルサーバに記憶された符号化されたビデオデータにアクセスするのに好適であるワイヤレスチャネル(たとえば、Wi−Fi(登録商標)接続)、有線接続(たとえば、DSL、ケーブルモデムなど)、または両方の組合せを含み得る。記憶デバイス34からの符号化されたビデオデータの送信は、ストリーミング送信、ダウンロード送信、または両方の組合せであり得る。
【0022】
[0030]
図1の例では、ソースデバイス12は、ビデオソース18と、ビデオエンコーダ20と、出力インターフェース22とを含む。場合によっては、出力インターフェース22は、変調器/復調器(モデム)および/または送信機を含み得る。ソースデバイス12において、ビデオソース18は、たとえばビデオカメラなどのビデオキャプチャデバイス、以前にキャプチャされたビデオを含んでいるビデオアーカイブ、ビデオコンテンツプロバイダからビデオを受信するためのビデオフィードインターフェース、および/またはソースビデオとしてコンピュータグラフィックスデータを生成するためのコンピュータグラフィックスシステムなどのソース、あるいはそのようなソースの組合せを含み得る。一例として、ビデオソース18がビデオカメラである場合、ソースデバイス12および宛先デバイス14は、いわゆるカメラ付き携帯電話またはビデオ電話を形成し得る。しかしながら、本開示で説明される技法は、一般にビデオコーディングに適用可能であってよく、ワイヤレスおよび/または有線の用途に適用され得る。
【0023】
[0031]キャプチャされたビデオ、以前にキャプチャされたビデオ、またはコンピュータにより生成されたビデオは、たとえば、ビデオエンコーダ20内のソースデバイス12によって符号化され得る。符号化されたビデオデータは、ソースデバイス12の出力インターフェース22を介して宛先デバイス14に直接送信され得る。符号化されたビデオデータは、さらに(または代替的に)、復号および/または再生のための宛先デバイス14または他のデバイスによる後のアクセスのために記憶デバイス34に記憶され得る。
【0024】
[0032]宛先デバイス14は、入力インターフェース28と、ビデオデコーダ30と、ディスプレイデバイス32とを含む。場合によっては、入力インターフェース28は、受信機および/またはモデムを含み得る。宛先デバイス14の入力インターフェース28は、リンク16を通じて符号化されたビデオデータを受信する。リンク16を通じて通信され、または記憶デバイス34上に与えられた符号化されたビデオデータは、ビデオデータを復号する際にビデオデコーダ30のようなビデオデコーダが使用するための、ビデオエンコーダ20によって生成される種々のシンタックス要素を含み得る。そのようなシンタックス要素は、通信媒体上で送信される、記憶媒体上に記憶される、またはファイルサーバ上に記憶される、符号化されたビデオデータとともに含まれ得る。
【0025】
[0033]ディスプレイデバイス32は、宛先デバイス14と一体化されてよく、またはその外部にあってよい。いくつかの例では、宛先デバイス14は、一体型ディスプレイデバイスを含んでよく、また、外部ディスプレイデバイスとインターフェースをとるように構成されてよい。他の例では、宛先デバイス14はディスプレイデバイスであり得る。一般に、ディスプレイデバイス32は、復号されたビデオデータをユーザに対して表示し、液晶ディスプレイ(LCD)、プラズマディスプレイ、有機発光ダイオード(OLED)ディスプレイ、または別のタイプのディスプレイデバイスなど、種々のディスプレイデバイスのいずれかを備え得る。
【0026】
[0034]ビデオエンコーダ20およびビデオデコーダ30は、現在開発中のHigh Efficiency Video Coding(HEVC)規格のようなビデオ圧縮規格に従って動作することができ、HEVC Test Model(HM)に準拠し得る。代替的に、ビデオエンコーダ20およびビデオデコーダ30は、代替的にMPEG−4、Part 10、Advanced Video Coding(AVC)と呼ばれるITU−T H.264規格のような、他のプロプライエタリ規格または業界規格、あるいはそのような規格の拡張に従って動作し得る。しかしながら、本開示の技法は、いかなる特定のコーディング規格にも限定されない。ビデオ圧縮規格の他の例には、MPEG−2およびITU−T H.263がある。
【0027】
[0035]
図1には示されていないが、いくつかの態様では、ビデオエンコーダ20およびビデオデコーダ30は、各々オーディオエンコーダおよびデコーダと統合されてよく、共通のデータストリームまたは別個のデータストリーム中のオーディオとビデオの両方の符号化を処理するために、適切なMUX−DEMUXユニット、または他のハードウェアおよびソフトウェアを含んでよい。適用可能な場合、いくつかの例では、MUX−DEMUXユニットは、ITU H.223マルチプレクサプロトコル、またはユーザデータグラムプロトコル(UDP)などの他のプロトコルに準拠し得る。
【0028】
[0036]本開示の技法は、必ずしもワイヤレスの用途または設定に限定されるとは限らない。本技法は、無線を通じたテレビジョン放送、ケーブルテレビジョン送信、衛星テレビジョン送信、たとえばインターネットを介したストリーミングビデオ送信、データ記憶媒体に記憶するためのデジタルビデオの符号化、データ記憶媒体に記憶されたデジタルビデオの復号、または他の用途など、種々のマルチメディア用途のいずれかをサポートするビデオコーディングに適用され得る。いくつかの例では、システム10は、ビデオストリーミング、ビデオ再生、ビデオブロードキャスティング、および/またはビデオ電話などの適用例をサポートするために、一方向または双方向のビデオ送信をサポートするように構成され得る。
【0029】
[0037]ビデオエンコーダ20およびビデオデコーダ30は各々、1つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ディスクリート論理、ソフトウェア、ハードウェア、ファームウェア、またはそれらの任意の組合せのような、種々の適切なエンコーダ回路のいずれかとして実装され得る。本技法が部分的にソフトウェアで実装される場合、デバイスは、適切な非一時的コンピュータ可読媒体にソフトウェアの命令を記憶し、1つまたは複数のプロセッサを使用してその命令をハードウェアで実行して、本開示の技法を実行し得る。ビデオエンコーダ20およびビデオデコーダ30の各々は1つまたは複数のエンコーダまたはデコーダ中に含まれてよく、そのいずれも、それぞれのデバイスにおいて複合エンコーダ/デコーダ(コーデック)の一部として統合されてよい。
【0030】
[0038]本開示の技法によれば、ループフィルタ(たとえば、SAOまたはALF)が有効であるかどうかを示すシンタックス要素が、他の要素の前にビデオエンコーダ20からビデオデコーダ30に送信され得る。一例では、ビデオブロックグループ(たとえば、LCUまたはパーティション)に関してSAOが有効であるかどうかを示すsao_enable_flagが、最初にエンコーダ20によって送信され、デコーダ30によって受信される。SAOフィルタリングが有効であることをsao_enable_flagが示す場合、1つまたは複数のマージシンタックス要素(たとえば、merge_leftおよびmerge_up)が送信され得る。merge_leftフラグおよびmerge_upフラグが、SAOフィルタパラメータが左のビデオブロックまたは上のビデオブロックに関するフィルタパラメータと同じではないことを示す場合、フィルタパラメータがシグナリングされ得る。一例では、sao_enable_flagが、SAOフィルタリングがオンになっているか、それともオフになっているかをすでに示しているので、sao_type_idxシンタックス要素は、「フィルタリングオフ」インジケータを含む必要がなく、したがって、sao_type_idxシンタックス要素を送信するときにビット節約が可能になり得る。
【0031】
[0039]本開示で説明する技法の一例は、(たとえば、LCUレベルで)ソースデバイス12によって最初にシグナリングされ得る、LCU中のブロックにSAOが使用されているかどうかを示すSAOオン/オフフラグの導入に関する。本開示で説明する技法の別の例は、(たとえば、LCUレベルで)ソースデバイス12によって最初にシグナリングされる、LCU中のブロックにSAOが使用されているかどうかを示すALFオン/オフフラグの導入に関する。
【0032】
[0040]1つの例示的なSAO実装形態では、(1つまたは複数のLCUを含み得る)各パーティションは、(ピクセル分類とも呼ばれる)3つのオフセットタイプ、すなわち、オフセットなしと、帯域分類ベースのオフセットタイプ0/1と、エッジ分類ベースのタイプ0/1/2/3とのうちの1つを有することができる。各帯域分類オフセットタイプは16個の可能なオフセット値を有するが、各エッジ分類ベースタイプは4つの可能なオフセット値を有する。これらのオフセットタイプのうちの1つが、パーティションのために使用されるために選択された場合、対応するオフセットタイプとオフセット値とを示す情報がデコーダに送られる。
【0033】
[0041]LCUベースのシンタックスを有するSAOが提案されている。この技法は、より高いコーディング効率(ボトムアップマージピクチャ4分木)のためのピクチャベースのSAO符号化とより低い複雑性またはサブピクチャレイテンシのためのLCUベースの符号化とをサポートする。各LCUは、それ自体のSAOタイプとオフセットとを送ることによって、SAOパラメータを変更することを許容される。LCUベースのSAO符号化のいくつかの例では、各LCUは、SAOパラメータを導出するためにコーザルデータのみ使用し得る。たとえば、右および下にあるLCUが利用されることはなく、デブロッキングのために各LCUの最後の4つのピクセル行が利用されることもない。
【0034】
[0042]HEVCが、ITU−T Video Coding Experts Group(VCEG)とISO/IEC Motion Picture Experts Group(MPEG)とのJoint Collaboration Team on Video Coding(JCT−VC)によって開発されており、様々なワーキングドラフトに記載されている。「HEVC Working Draft 9」または「WD9」と呼ばれるHEVC規格の最近のドラフトは、文書JCTVC−K1003v13、Brossら、「High efficiency video coding (HEVC) text specification draft 9」、ITU−T SG16 WP3とISO/IEC JTC1/SC29/WG11とのJoint Collaborative Team on Video Coding(JCT−VC)、第11回会合:中国、上海、2012年10月10〜19日に記載されており、この文書は2012年12月27日現在、http://phenix.int−evry.fr/jct/doc_end_user/documents/11_Shanghai/wg11/JCTVC−K1003−v13.zipからダウンロード可能であり、その内容全体は参照により本明細書に組み込まれる。JCT−VCは、HEVC規格の開発に取り組んでいる。HEVC規格化の取り組みは、HEVC Test Model(HM)と呼ばれるビデオコーディングデバイスの発展的モデルに基づく。HMは、たとえば、ITU−T H.264/AVCに従う既存のデバイスに対してビデオコーディングデバイスのいくつかの追加の能力を仮定する。たとえば、H.264は9個のイントラ予測符号化モードを提供するが、HMは33個ものイントラ予測符号化モードを提供し得る。
【0035】
[0043]4分木250のノードのデータは、ノードに対応するCUが分割されるかどうかを記述し得る。CUが分割される場合、4分木250中に4つの追加のノードが存在し得る。いくつかの例では、4分木のノードは以下の擬似コードと同様に実装され得る。
【数1】
【0036】
split_flag値は、現在のノードに対応するCUが分割されるかどうかを表す1ビット値であり得る。CUが分割されない場合、split_flag値は「0」であり得るが、CUが分割される場合、split_flag値は「1」であり得る。4分木250の例に関して、分割フラグ値のアレイは101000000であり得る。
【0037】
[0044]一般に、HMの作業モデルは、ビデオフレームまたはピクチャが、ルーマとクロマの両方のサンプルを含む一連のツリーブロックまたは最大コーディングユニット(LCU)に分割され得ることを記載する。ツリーブロックは、H.264規格のマクロブロックと同様の目的を有する。スライスは、コーディング順序でいくつかの連続するツリーブロックを含む。ビデオフレームまたはピクチャは、1つまたは複数のスライスに区分され得る。各ツリーブロックは、4分木に従ってコーディングユニット(CU)に分割され得る。たとえば、4分木のルートノードとしてのツリーブロックは、4つの子ノードに分割されてよく、各子ノードが今度は親ノードとなり、別の4つの子ノードに分割されてよい。4分木のリーフノードとしての、最終的な、分割されていない子ノードは、コーディングノード、すなわち、コーディングされたビデオブロックを備える。コーディングされたビットストリームと関連付けられるシンタックスデータは、ツリーブロックが分割され得る最大回数を定義することができ、コーディングノードの最小サイズも定義することができる。
【0038】
[0045]
図2Aおよび
図2Bは、例示的な4分木構造250と、対応するLCU272とを示す概念図である。
図2Aは、階層式に構成されたノードを含む、例示的な4分木250を示す。4分木250など、4分木中の各ノードは、子をもたないリーフノードであるか、または4つの子ノードを有し得る。
図2Aの例では、4分木250はルートノード252を含む。ルートノード252は、リーフノード256A〜256C(リーフノード256)とノード254とを含む、4つの子ノードを有する。ノード254はリーフノードでないので、ノード254は、この例ではリーフノード258A〜258D(リーフノード258)である、4つの子ノードを含む。
【0039】
[0046]4分木250は、この例ではLCU272など、対応するLCUの特性を記述するデータを含み得る。たとえば、4分木250は、それの構造により、サブCUへのLCUの分割を記述し得る。LCU272が2N×2Nのサイズを有すると仮定する。LCU272は、この例では、4つのサブCU276A〜276C(サブCU276)および274を有し、各々はN×Nサイズである。サブCU274はさらに4つのサブCU278A〜278D(サブCU278)に分割され、各々はサイズN/2×N/2である。この例では、4分木250の構造はLCU272の分割に対応する。すなわち、ルートノード252はLCU272に対応し、リーフノード256はサブCU276に対応し、ノード254はサブCU274に対応し、リーフノード258はサブCU278に対応する。
【0040】
[0047]スライスがビデオブロック(またはLCU)に分割され得、各ビデオブロックは、
図2A〜
図2Bに関して説明した4分木構造に従って区分され得る。さらに、
図2Cに示すように、「オン」によって示される4分木サブブロックは、本明細書で説明するループフィルタによってフィルタリングされ得るが、「オフ」によって示される4分木サブブロックはフィルタリングされないことがある。所与のブロックまたはサブブロックをフィルタリングすべきか否かの決定は、フィルタリングされた結果とフィルタリングされていない結果とをコーディングされている元のブロックと比較することによって、エンコーダにおいて判断され得る。
図2Dは、
図2Cに示す4分木区分を生じさせる区分決定を表す決定木である。「オン」ブロックについてどのピクセルにも適用される実際のフィルタリングは、本明細書で説明するメトリックに基づいて判断され得る。
【0041】
[0048]詳細には、
図2Cは、4分木分割方式に従って、様々なサイズのより小さいビデオブロックに区分された比較的大きいビデオブロックを表し得る。
図2Cの各ビデオブロックは、そのビデオブロックに対してフィルタリングが適用されるべきか、それとも回避されるべきかを示すために、(オンまたはオフと)標示されている。ビデオエンコーダは、各ビデオブロックのフィルタリング済みバージョンと非フィルタリング済みバージョンとをコーディングされている元のビデオブロックと比較することによって、このフィルタマップを定義し得る。
【0042】
[0049]再び、
図2Dは、
図2Cに示す4分木区分を生じさせる区分決定に対応する決定木である。
図2Dにおいて、各円はCUに対応し得る。円が「1」フラグを含む場合、そのCUは、もう4つのCUにさらに区分されるが、円が「0」フラグを含む場合、そのCUはそれ以上区分されない。(たとえば、CUに対応する)各円はまた、関連するひし形を含む。所与のCUのひし形中のフラグが1に設定された場合、そのCUに対するフィルタリングは「オン」になるが、所与のCUのひし形中のフラグが0に設定された場合、フィルタリングはオフになる。このようにして、
図2Cと
図2Dとは、個々にまたはまとめてフィルタマップと見なされ得、フィルタマップは、各区分されたビデオブロック(たとえば、LCU内の各CU)にフィルタリングを適用すべきか否かにかかわらず、所与のビデオブロック(たとえば、LCU)のための4分木区分のレベルを通信するために、エンコーダにおいて生成され、符号化されたビデオデータのスライスごとに少なくとも1回デコーダに通信され得る。
【0043】
[0050]CUは、コーディングノードと、コーディングノードと関連付けられる予測ユニット(PU)と変換ユニット(TU)とを含む。CUのサイズは、コーディングノードのサイズに対応し、形状が方形でなければならない。CUのサイズは、8×8ピクセルから最大で64×64以上のピクセルをもつツリーブロックのサイズにまで及び得る。各CUは、1つまたは複数のPUと、1つまたは複数のTUとを含み得る。CUと関連付けられるシンタックスデータは、たとえば、CUを1つまたは複数のPUに区分することを記述し得る。区分モードは、CUが、スキップモード符号化またはダイレクトモード符号化されるか、イントラ予測モード符号化されるか、あるいはインター予測モード符号化されるかによって異なり得る。PUは、形状が非方形になるように区分され得る。CUと関連付けられるシンタックスデータは、たとえば、4分木に従って、CUを1つまたは複数のTUに区分することも記述し得る。TUは、形状が方形または非方形であり得る。
【0044】
[0051]HEVC規格は、CUごとに異なり得る、TUに従う変換を可能にする。TUは、一般に、区分されたLCUについて定義された所与のCU内のPUのサイズに基づいてサイズが決定されるが、常にそうであるとは限らない。TUは通常、PUと同じサイズであるかまたはPUよりも小さい。いくつかの例では、CUに対応する残差サンプルは、「残差4分木」(RQT)として知られる4分木構造を使用してより小さいユニットに再分割され得る。RQTのリーフノードは変換ユニット(TU)と呼ばれることがある。TUと関連付けられるピクセル差分値は、変換係数を生成するように変換されてよく、その変換係数は量子化され得る。
【0045】
[0052]一般に、PUは、予測プロセスに関連するデータを含む。たとえば、PUがイントラモード符号化されるとき、PUは、PUのイントラ予測モードを記述するデータを含み得る。別の例として、PUがインターモード符号化されるとき、PUは、PUの動きベクトルを定義するデータを含み得る。PUの動きベクトルを定義するデータは、たとえば、動きベクトルの水平成分、動きベクトルの垂直成分、動きベクトルの解像度(たとえば、1/4ピクセル精度または1/8ピクセル精度)、動きベクトルが指す参照ピクチャ、および/または動きベクトルの参照ピクチャリスト(たとえば、リスト0、リスト1、またはリストC)を記述し得る。
【0046】
[0053]一般に、TUは、変換プロセスおよび量子化プロセスのために使用される。1つまたは複数のPUを有する所与のCUは、1つまたは複数の変換ユニット(TU)も含み得る。予測の後に、ビデオエンコーダ20は、PUに対応する残差値を計算し得る。残差値は、エントロピーコーディングのための直列化された変換係数を生成するために、TUを使用して変換係数に変換され、量子化され、走査され得る、ピクセル差分値を備える。本開示では、一般に、CUのコーディングノードを指すために「ビデオブロック」という用語を使用する。いくつかの特定の場合において、本開示では、コーディングノードとPUとTUとを含む、ツリーブロック、すなわち、LCUまたはCUを指す、「ビデオブロック」という用語も使用し得る。
【0047】
[0054]ビデオシーケンスは通常、一連のビデオフレームまたはピクチャを含む。ピクチャのグループ(GOP)は、一般に、一連の1つまたは複数のビデオピクチャを備える。GOPは、GOP中に含まれるいくつかのピクチャを記述するシンタックスデータを、GOPのヘッダ中、ピクチャのうちの1つまたは複数のヘッダ中、または他の場所に含み得る。ピクチャの各スライスは、それぞれのスライスの符号化モードを記述するスライスシンタックスデータを含み得る。ビデオエンコーダ20は通常、ビデオデータを符号化するために、個々のビデオスライス内のビデオブロックに対して動作する。ビデオブロックは、CU内のコーディングノードに対応し得る。ビデオブロックは、一定のサイズまたは可変のサイズを有してよく、指定されたコーディング規格に従ってサイズが異なる場合がある。
【0048】
[0055]一例として、HMは、様々なPUサイズでの予測をサポートする。特定のCUのサイズが2N×2Nであると仮定すると、HMは、2N×2NまたはN×NというPUサイズでのイントラ予測をサポートし、2N×2N、2N×N、N×2N、またはN×Nという対称的なPUサイズでのインター予測をサポートする。HMはまた、2N×nU、2N×nD、nL×2N、およびnR×2NというPUサイズでのインター予測のための非対称区分をサポートする。非対称区分では、CUの一方向は区分されないが、他の方向は25%と75%とに区分される。25%の区分に対応するCUの部分は、「n」とその後ろに付く「Up」、「Down」、「Left」、または「Right」という表示によって示される。したがって、たとえば、「2N×nU」は、上部の2N×0.5N PUと下部の2N×1.5N PUとで水平方向に区分された2N×2N CUを指す。
【0049】
[0056]本開示では、「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は非負の整数値を表す。ブロック中のピクセルは行と列で構成され得る。その上、ブロックは、必ずしも、水平方向において垂直方向と同じ数のピクセルを有する必要があるとは限らない。たとえば、ブロックはN×Mピクセルを備えてよく、ただし、Mは必ずしもNに等しいとは限らない。
【0050】
[0057]CUのPUを使用したイントラ予測コーディングまたはインター予測コーディングの後、ビデオエンコーダ20は、CUのTUのための残差データを計算し得る。PUは、(ピクセル領域とも呼ばれる)空間領域においてピクセルデータを備えてよく、TUは、たとえば、残差ビデオデータへの離散コサイン変換(DCT)、整数変換、ウェーブレット変換、または概念的に同様の変換などの変換の適用後に、変換領域において係数を備え得る。残差データは、符号化されていないピクチャのピクセルと、PUに対応する予測値との間のピクセル差分に対応し得る。ビデオエンコーダ20は、CUのための残差データを含むTUを形成し、次いで、TUを変換して、CUの変換係数を生成し得る。
【0051】
[0058]変換係数を生成するための任意の変換の後に、ビデオエンコーダ20は、変換係数の量子化を実行し得る。量子化は、一般に、係数を表すために使用されるデータの量をできるだけ低減するために変換係数が量子化され、さらなる圧縮を提供するプロセスを指す。量子化プロセスは、係数の一部または全部に関連するビット深度を低減し得る。たとえば、量子化中にnビット値がmビット値に切り捨てられてよく、ただし、nはmよりも大きい。
【0052】
[0059]いくつかの例では、ビデオエンコーダ20は、あらかじめ定義された走査順序を利用して、量子化された変換係数を走査し、エントロピー符号化され得る直列化されたベクトルを生成し得る。他の例では、ビデオエンコーダ20は適応走査を実行し得る。量子化された変換係数を走査して1次元ベクトルを形成した後に、ビデオエンコーダ20は、たとえば、コンテキスト適応型可変長コーディング(CAVLC:context-adaptive variable length coding)、コンテキスト適応型バイナリ算術コーディング(CABAC:context-adaptive binary arithmetic coding)、シンタックスベースコンテキスト適応型バイナリ算術コーディング(SBAC:syntax-based context-adaptive binary arithmetic coding)、確率間隔区分エントロピー(PIPE:Probability Interval Partitioning Entropy)コーディング、または別のエントロピー符号化方法に従って1次元ベクトルをエントロピー符号化し得る。ビデオエンコーダ20はまた、ビデオデータを復号する際にビデオデコーダ30が使用するための、符号化されたビデオデータと関連付けられるシンタックス要素をエントロピー符号化し得る。
【0053】
[0060]CABACを実行するために、ビデオエンコーダ20は、送信されるべきシンボルに、コンテキストモデル内のコンテキストを割り当て得る。コンテキストは、たとえば、シンボルの隣接値が0ではないかどうかに関係し得る。CAVLCを実行するために、ビデオエンコーダ20は、送信されるべきシンボルに対して可変長コードを選択し得る。VLCにおけるコードワードは、比較的短いコードが優勢シンボルに対応し、より長いコードが劣勢シンボルに対応するように構成され得る。このようにして、VLCの使用は、たとえば、送信されるべき各シンボルのために等長コードワードを使用するよりも、ビットの節約を達成し得る。確率の決定は、シンボルに割り当てられるコンテキストに基づき得る。
【0054】
[0061]サンプル適応オフセット(SAO)コーディングは、現在、HEVC規格への採用を検討中である。概して、ビデオフレーム(たとえば、インター予測またはイントラ予測の場合の予測フレーム)中のピクセルへのオフセット値の加算は、ビデオシーケンスのフレーム間の照明変化中、たとえば、閃光、暗くなる空、または他のタイプのフレーム間の照明変化などの間のコーディングを改善し得る。ビデオ品質を改善するためのスムーズなフィルタリングとしてSAOフィルタリングが使用されることもある。H.264などの以前のビデオコーディング規格では、ピクセルのブロックまたはフレーム全体にわたって一様にオフセットタイプおよび値を適用していた。SAO技法は、ピクセル(またはブロック)分類メトリックに応じて異なるオフセット値が異なるピクセル(またはブロック)に適用されることを可能にする。可能な分類メトリックは、エッジメトリックおよび帯域メトリックなど、アクティビティメトリックを含む。オフセット分類の記述は、その全体が参照により本明細書に組み込まれる、C.−M.Fu、C.−Y.Chen、C.−Y.Tsai、Y.−W. Huang、S.Lei、「CE13: Sample Adaptive Offset with LCU−Independent Decoding」、JCT−VC Contribution、E049、ジュネーブ、2011年2月に見い出され得る。
【0055】
1つの例示的なSAOの実装形態では、各々の区分(LCUのセットを構成する)は、3つのオフセットタイプ(ピクセル分類とも呼ばれる)、すなわち、オフセットなし、帯域分類ベースのオフセットタイプ0/1、およびエッジ分類ベースのタイプ0/1/2/3のうちの1つを有し得る。各帯域分類オフセットタイプは16個の可能なオフセット値を有するが、各エッジ分類ベースタイプは4つの可能なオフセット値を有する。これらのオフセットタイプのうちの1つが、区分に対して使用されるものとして選ばれた場合、対応するオフセットタイプとオフセット値とを示す情報がデコーダに送られる。エッジオフセットタイプは、エッジ情報に基づいて各ピクセルを分類する。
【0056】
[0063]
図3は、HEVCのために現在提案されている4つの可能なエッジオフセットタイプを示す概念図である。エッジオフセットタイプは、エッジ情報に基づいて各ピクセルを分類する。
図3に示されるエッジ分類の各々に対して、現在のピクセルのエッジタイプが、現在のピクセル(C)の値を隣接ピクセル(1および2)の値と比較することによって計算される。分類0のSAOエッジオフセット(SAO_EO_0)では、現在のピクセルは左および右の隣接ピクセルと比較される。分類1のSAOエッジオフセット(SAO_EO_1)では、現在のピクセルは上および下の隣接ピクセルと比較される。分類2のSAOエッジオフセット(SAO_EO_2)では、現在のピクセルは左上および右下の隣接ピクセルと比較される。分類3のSAOエッジオフセット(SAO_EO_3)では、現在のピクセルは左下および右上の隣接ピクセルと比較される。
【0057】
[0064]最初に、現在のピクセルのエッジタイプは0であると仮定される。現在のピクセルCの値が左と右の隣接ピクセル(1と2)の両方の値に等しい場合、エッジタイプは0のままである。現在のピクセルCの値が隣接ピクセル1の値よりも大きい場合、エッジタイプは1だけ増やされる。現在のピクセルCの値が隣接ピクセル1の値よりも小さい場合、エッジタイプは1だけ減らされる。同様に、現在のピクセルCの値が隣接ピクセル2の値よりも小さい場合、エッジタイプは1だけ増やされ、現在のピクセルCの値が隣接ピクセル2の値よりも小さい場合、エッジタイプは1だけ減らされる。
【0058】
[0065]したがって、現在のピクセルCは、−2、−1、0、1、または2のいずれかのエッジタイプを有し得る。現在のピクセルCの値が隣接ピクセル1および2の両方の値より小さい場合、エッジタイプは−2である。現在のピクセルCの値が一方の隣接ピクセルより小さいが他方の隣接ピクセルに等しい場合、エッジタイプは−1である。現在のピクセルCの値が両方の隣接ピクセルと同じである場合、または、現在のピクセルCの値が一方の隣接ピクセルより大きいが他方の隣接ピクセルより小さい場合、エッジタイプは0である。現在のピクセルCの値が一方の隣接ピクセルより大きいが他方の隣接ピクセルに等しい場合、エッジタイプは1である。現在のピクセルCの値が隣接ピクセル1と2の両方の値より大きい場合、エッジタイプは2である。各々の0ではないエッジタイプ値に対して、4つのオフセット値が決定され、デコーダによる使用のために符号化されたビデオビットストリーム中でシグナリングされる(すなわち、eoffset
-2、eoffset
-1、eoffset
1、eoffset
2)。
【0059】
[0066]上記の説明に鑑みて、各エッジオフセット分類に対して、エッジタイプ値が以下の式によって計算され得る。
【数2】
【0060】
[0067]帯域オフセットの場合、ピクセルは、強度に基づいて異なる帯域に分類される。
図6は、強度値に基づく例示的な帯域を示す概念図である。
【0061】
[0068]帯域オフセット分類の場合、ピクセルは、32個の帯域にカテゴリー分類される。中心の16個の帯域は、1つのグループに分類され、残りの帯域は、第2のグループに分類される。帯域の各グループについて、16個のオフセット値(すなわち、boffset
0、...、boffset
15)が判断され、ビデオデコーダによる使用のために、符号化されたビデオビットストリーム中でシグナリングされる。
【0062】
[0069]LCUベースのシンタックスを有するSAOが提案されている。この技法は、より高いコーディング効率(ボトムアップマージピクチャ4分木)のためのピクチャベースのSAO符号化とより低い複雑性またはサブピクチャレイテンシのためのLCUベースの符号化とをサポートする。各LCUは、それ自体のSAOタイプとオフセットとを送ることによって、SAOパラメータを変更することを許容される。LCUベースのSAO符号化のいくつかの例では、各LCUは、SAOパラメータを導出するためにコーザルデータのみ使用し得る。たとえば、右および下にあるLCUが利用されることはなく、デブロッキングのために各LCUの最後の4つのピクセル行が利用されることもない。
【0063】
[0070]現在、サンプル適応オフセット(SAO)フィルタリングおよび適応ループフィルタリング(ALF)において、現在のビデオブロックグループに関するループフィルタ(たとえば、SAOフィルタまたはALF)のフィルタパラメータが以前コーディングされたビデオブロックグループに関するフィルタパラメータから借りられるかどうかを示すマージシンタックス要素(すなわち、merge_leftまたはmerge_up)がエンコーダからデコーダに送信され得る。フィルタパラメータは、たとえば、ALFのためのフィルタ係数およびSAOフィルタのためのオフセット値、ならびにフィルタを記述している他の情報を含むことができる。フィルタを記述している他の情報の一例には、たとえば、SAOフィルタに関するフィルタリングタイプがあり得る。merge_leftシンタックス要素が、たとえば、現在のビデオブロックグループに関するフィルタパラメータが、現在のグループの左にある以前コーディングされたビデオブロックグループに関するフィルタパラメータからコピーされる(すなわち、借りられる、または再利用される)かどうかを示し得る一方、merge_upシンタックス要素は、現在のビデオブロックグループに関するフィルタパラメータが、現在のグループの上に位置する以前コーディングされたビデオブロックグループに関するフィルタパラメータからコピーされるかどうかを示すことができる。マージタイプのうちの1つが選択されていない(すなわち、現在のパラメータが、左または上のすでにコーディングされたビデオブロックグループに関するパラメータに等しくない)場合、ループフィルタオン/オフインジケータおよびオフセット/係数が続いてシグナリングされる。このシグナリング順序は、場合によっては、多くのLCUまたはパーティションがフィルタリング(またはオフセット)を適用していないときにはマージ信号の冗長シグナリングを必要とし得る。
【0064】
[0071]下の表1および表2は、CABACを使用するSAOフィルタリングに関する現在のシグナリング方式の例を示す。表1および表2の例では、(表1に示すように)merge_leftシンタックス要素およびmerge_upシンタックス要素が最初にビデオエンコーダから送信され、ビデオデコーダによって受信され、merge_leftフラグおよびmerge_upフラグが、SAOフィルタパラメータが左のビデオブロックグループまたは上のビデオブロックグループに関するフィルタパラメータと同じではないことを示す場合には、(表2に示すように)SAOオフセット値がエンコーダからデコーダに送信される。
【表1】
【表2】
【0065】
[0072]表2において、sao_type_idx要素は、次の可能なタイプ(オフ/EO0/EO1/EO2/EO3/BOシグナリング)を有してよく、ここで、「オフ」はSAOフィルタリングが一切実行されないことを示し、EOはエッジオフセットタイプを示し、BOは帯域オフセットタイプを示す。以下でより詳細に説明するように、本開示の技法は、マージシンタックス要素をシグナリングする前にSAOフィルタがオフになっているかどうかをシグナリングすることを含む。
【0066】
[0073]下の表3および表4は、CABACを使用するALFに関する現在のシグナリング方式の例を示す。上述の表1および表2と同様に、表3および表4の例では、(表3に示すように)merge_leftシンタックス要素およびmerge_upシンタックス要素が最初にビデオエンコーダからビデオデコーダに送信され、merge_leftフラグおよびmerge_upフラグが、ALFパラメータが左のビデオブロックグループまたは上のビデオブロックグループに関するフィルタパラメータから借りられないことを示す場合には、特定のLCUに関してALFが有効であるかどうかの指示がエンコーダからデコーダにシグナリングされる(たとえば、表3のalf_lcu_enable_flag参照)。alf_lcu_enable_flagが、特定のLCUに関してALFが有効であることを示す場合、表4に示すようにフィルタ係数がエンコーダからデコーダに送信される。以下でより詳細に説明するように、本開示の技法は、マージフラグをシグナリングする前にイネーブル情報をシグナリングすることを含む。
【表3】
【表4】
【0067】
[0074]本開示の技法によれば、ループフィルタ(たとえば、SAOまたはALF)が有効であるかどうかを示すシンタックス要素が、マージシンタックス要素の前にエンコーダからデコーダに送信され得る。表5および表6は、そのような技法が実施され得る方法の例を示す。表5および表6の例では、ビデオブロックグループ(たとえば、LCUまたはパーティション)に関してSAOが有効であるかどうかを示すsao_enable_flagが、最初にエンコーダによって送信され、デコーダによって受信される。表5に示すように、SAOフィルタリングが有効であることをsao_enable_flagが示す場合、1つまたは複数のマージシンタックス要素(たとえば、merge_leftおよびmerge_up)が送信され得る。merge_leftフラグおよびmerge_upフラグが、SAOフィルタパラメータが左のビデオブロックグループまたは上のビデオブロックグループに関するフィルタパラメータと同じではないことを示す場合、表6に示すようにフィルタパラメータがシグナリングされ得る。表5および表6の例では、sao_enable_flagが、SAOフィルタリングがオンになっているか、それともオフになっているかをすでに示しているので、sao_type_idxシンタックス要素は、「フィルタリングオフ」インジケータを含む必要がなく、したがって、sao_type_idxシンタックス要素を送信するときにビット節約が可能になり得る。
【表5】
【表6】
【0068】
[0075]表7および表8は、SAOフィルタリングに関して本開示の技法が実施され得る方法の追加の例を示す。表7および表8の例では、sao_type_idxシンタックスパラメータが、マージシンタックス要素または新しいオフセット値が送られる前に、最初に送られる。sao_type_idxシンタックス要素が、SAOフィルタリングがオフになっていることを示す場合、マージシンタックス要素およびオフセット値が送信される必要はない。sao_type_idxシンタックス要素が、SAOフィルタリングがオンになっていることを示す場合、上記で説明した方法でマージシンタックス要素が送信され得る。
【表7】
【表8】
【0069】
[0076]表9および表10は、ALFに関して本開示の技法が実施され得る方法の追加の例を示す。表9に示すように、ビデオブロックグループに関してALFがオンになっているか、それともオフになっているかを示すalf_lcu_enable_flagが最初に送信される。表9の例では、ビデオブロックグループはLCUであるが、他のグループが使用されてもよい。LCUに関してALFがオフになっていることをalf_lcu_enable_flagが示す場合、マージフラグおよびフィルタパラメータを識別する他のシンタックス要素がシグナリングされる必要はない。alf_lcu_enable_flagが、LCUに関してALFがオンになっていることを示し、マージフラグが、ALFパラメータが左のビデオブロックグループまたは上のビデオブロックグループに関するフィルタパラメータと同じではないことを示す場合、表10に示すようにフィルタ係数がシグナリングされ得る。
【表9】
【表10】
【0070】
[0077]表11および表12は、ALFに関して本開示の技法が実施され得る方法の追加の例を示す。表11および表12の例では、alf_lcu_enable_flagがビデオデコーダによって送信され、ビデオエンコーダによって受信される。alf_lcu_enable flagがシグナリングされた後、alf_new_filter_flagが、新しい係数が送られるかどうかをシグナリングする。alf_new_filter_flagが、新しいフィルタ係数が送られることを示す場合、フィルタ係数がエンコーダからデコーダに送信される。alf_new_filter_flagが、新しいフィルタ係数が送られないことを示す場合、使用されるフィルタ係数を識別するマージフラグまたはフィルタインデックスなどの別のシンタックス要素が、エンコーダからデコーダに送信され得る。
【表11】
【表12】
【0071】
[0078]他の例によれば、次のようにalf_lcu_enable_flagおよびalf_new_filter_flagが結合され得る。
【0075】
[0079]たとえば表5など上記で説明したように、各LCUに関してSAOがオフであるときにmerge_leftフラグとmerge_upフラグとを送ることを省くためにsao_enable_flag(すなわち、SAOのオン/オフ情報)を分離することが提案されている。
【表13】
【0076】
[0080]これらの場合、ビデオエンコーダ20は、左のLCUまたは上のLCUのsao_enable_flagがオンであるか、それともオフであるかをチェックすることによって、隣接LCUがSAOを有効にしているときのみmerge_leftフラグまたはmerge_upフラグを送る必要がある。上のLCUのsao_enable_flagをチェックするために必要なラインバッファ(すなわち、ビデオ情報の行のためのメモリ)を除去するために、本開示はさらに、次のように(すなわち、左のLCUのsao_enable_flagのみのチェックを必要とする)修正シンタックスを提案する。
【表14】
【0077】
[0081]さらに、上のLCU行のSAOパラメータのためのラインバッファの必要性を除去するために、本開示はさらに、sao_merge_up_flag自体を除去することを提案し、これは一例では次のシンタックス表につながる。
【表15】
【0078】
[0082]表15の例に示すように、いくつかの例では、SAOが有効であるとき、SAOマージモードが左のCUに限定され得る。言い換えれば、いくつかのシステムおよび方法は、ALFに関するマージモードを左の隣接CUに限定し得る。このようにして、下の行/ラインからCUに対するALFを実行するときに使用するために、上のCUに関するALF情報がラインバッファに記憶される必要はなくなり得る。そのようなシステムは、現在のCUのすぐ左のCUのみを記憶する必要があり得る。
【0079】
[0083]例示的な方法は、現在のビデオユニットと現在のビデオユニットの左に隣接するビデオユニットとを受信することと、受信されたシンタックス要素を解析して、現在のビデオユニットの左に隣接するビデオユニットに関してフィルタリングタイプが有効であるかどうかを判断することと、現在のビデオブロックの左に隣接するビデオユニットに関してフィルタリングタイプが有効であると判断したことに応答して、1つまたは複数のマージシンタックス要素に基づいて、現在のビデオユニットに関するフィルタパラメータを、隣接する左のビデオユニットに関するフィルタパラメータから借りるかどうかを判断することと、現在のビデオユニットに関するフィルタパラメータが隣接する左のビデオユニットに関するフィルタパラメータから借りられないと判断したことに直接応答して、1つまたは複数のマージシンタックス要素に基づいて、現在のビデオユニットに関するフィルタパラメータが隣接する上のビデオユニットに関するフィルタパラメータから借りられるかどうかを判断することとを含み得る。
【0080】
[0084]別の例示的な方法は、現在のビデオユニットと現在のビデオユニットの左に隣接するビデオユニットとを受信することと、受信されたシンタックス要素を解析して、現在のビデオユニットの左に隣接するビデオユニットに関してフィルタリングタイプが有効であるかどうかを判断することと、現在のビデオユニットの左に隣接するビデオユニットに関してフィルタリングタイプが有効であると判断したことに応答して、1つまたは複数のマージシンタックス要素に基づいて、現在のビデオユニットに関するフィルタパラメータが、隣接する左のビデオユニットに関するフィルタパラメータから借りられるかどうかを判断することと、現在のビデオユニットに関するフィルタパラメータが隣接する左のビデオユニットに関するフィルタパラメータから借りられないと判断したことに応答して、現在のビデオユニットに関するフィルタパラメータが隣接する上のビデオユニットに関するフィルタパラメータから借りられるかどうかを判断することなしに、現在のビデオユニットに関するフィルタパラメータを決定することとを含み得る。
【0081】
[0085]上の例では、新しい係数がシグナリングされないときにフィルタを識別するためにフィルタインデックス(たとえば、filter_set_idx)のみが使用されるように、マージシンタックス要素(たとえば、alf_merge_leftまたはalf_merge_up)が除去され得る。さらに、マージシンタックス要素がフィルタインデックスと結合されて新しいシンタックス要素を形成し、ここで新しいシンタックス要素のいくつかの値はalf_merge_leftまたはalf_merge_upに対応し、他の値はフィルタインデックスに対応する。たとえば、alf_merge_leftフラグがalf_stored_filter_set_idxに結合され、ここでalf_stored_filter_set_idx=0がalf_merge_left_flagに等しい。
【0082】
[0086]本明細書で説明するシステムおよび方法のいくつかの例は、スケーラブルビデオコーディング(SVC)に関係し得る。SVCは、1つまたは複数のサブセットビットストリームをも含む高品質ビデオビットストリームの符号化を実現する。サブセットビデオビットストリームは、サブセットビットストリームに必要な帯域幅を減らすために、より大きいビデオからパケットをドロップすることによって、導出され得る。サブセットビットストリームは、より低い空間分解能(より小さいスクリーン)、より低い時間分解能(より低いフレームレート)、またはより低い品質のビデオ信号を表し得る。同様に、本明細書で説明するシステムおよび方法のいくつかの例は、マルチビュービデオコーディング(MVC)に関係し得る。MVCは、立体視(2面ビュー)ビデオ、ならびにフリービューポイントテレビジョンおよびマルチビュー3Dテレビジョンを符号化するために使用され得る。
【0083】
[0087]SVCの一例は、その全体が参照により本明細書に組み込まれる、H.264/AVC規格の付属書類Gに記載されているSVCプロセスである。SVCは、HEVCなどの他のコーディング規格のために開発され、そのような規格に適用され得る。SVCでは、1つまたは複数のエンハンスメントレイヤがコーディングされてベースレイヤを拡張して、しばしば、ビデオデータが表示され得る空間分解能または時間分解能を増やすことができる。すなわち、ベースレイヤは、第1の低い空間分解能または時間分解能によるビデオデータを表し得る。追加のエンハンスメントレイヤはベースレイヤを拡張して、ベースレイヤと比較して空間分解能または時間分解能を増やすことができる。SVCは一般に、より古いハードウェアに関する前方互換性を可能にし、それにより、ビットストリームの低分解能サブセット(たとえば、ベースレイヤ)を復号することが可能な基本ビデオデコーダによって同じビットストリームが消費され得る一方で、より高度なビデオデコーダが、ビデオデータの分解能を高めるために追加のレイヤとともにベースレイヤを復号することができる。コードブックが複数のレイヤによって参照されることを可能にするために、SVCに関してオプション2が実施され得る。たとえば、ベースレイヤからのコードブックが、1つまたは複数のエンハンスメントレイヤにおいて使用するコードブックの予測(たとえば、差分予測(differential prediction))に使用され得る。別の例では、ベースレイヤに使用されるコードブックが、単に1つまたは複数のエンハンスメントレイヤに再利用され得る。
【0084】
[0088]マルチビュービデオコーディング(MVC)は、ビデオデータの複数のビューをコーディングするためのビデオコーディング処理である。SVCと同様に、MVCプロセスの一例は、H.264/AVC規格の付属書類として定義されている。より詳細には、MVCプロセスは、その全体が参照により本明細書に組み込まれる、H.264/AVC規格の付属書類Hに記載されている。MVCは、HEVCなどの他のコーディング規格のために開発され、そのような規格に適用され得る。MVCでは、各ビューは、共通のシーンの対応するビデオデータがキャプチャされた異なる視点または角度に対応する。MVCは、ビュー間予測(2つの異なるビューの間の予測を意味する)とビュー内予測(同じビュー内の予測を意味する)とをもたらす。コードブックが複数のビューによって参照されることを可能にするために、MVCに関してオプション2が実施され得る。たとえば、1つのビュー(たとえば、ベースビュー)からのコードブックが、1つまたは複数の異なるビューにおいて使用されるコードブックを予測するために使用され得る。別の例では、ベースビューに使用されるコードブックが、単に1つまたは複数の他のビューに再利用され得る。
【0085】
[0089]一例では、エンコーダは、符号化されたビットストリームに含めるために、ビデオブロックグループに関してループフィルタがオンになっているか、それともオフになっているかを示すイネーブルシンタックス要素を生成することができる。エンコーダは、ビデオブロックグループに関してループフィルタがオンになっていることをイネーブルシンタックス要素が示したことに応答して、ビデオブロックグループに関するループフィルタのためのパラメータを識別する1つまたは複数の追加のシンタックス要素を生成することができる。これらのパラメータは、SVCおよび/またはMVCとともに使用されて、たとえば、SVCビデオストリーム内のレイヤをオンおよびオフにすること、またはSVCベースレイヤにおいてシグナリングして、他のレイヤがベースレイヤのコピーであることを示すことができる。シグナリングされたパラメータは、複数のビューに関する情報を示すためにMVCとともに使用され得る。たとえば、パラメータは、ビットストリームに深さおよび/または複数のビューが含まれるかどうかを示すことができる。パラメータはまた、テクスチャが使用されているかどうかを示すことができる。
【0086】
[0090]
図5は、本開示で説明される技法を実装し得る例示的なビデオエンコーダ20を示すブロック図である。ビデオエンコーダ20は、(たとえば、LCUレベルで)最初にシグナリングされる、LCU中のブロックにSAOが使用されているかどうかを示すSAOオン/オフフラグをコーディングすることができる。ビデオエンコーダ20は、別の例では、(たとえば、LCUレベルで)最初にシグナリングされる、LCU中のブロックにSAOが使用されているかどうかを示すALFオン/オフフラグを含むことができる。
【0087】
[0091]1つの例示的なSAO実装形態では、(LCUのセットを備える)各パーティションは、(ピクセル分類とも呼ばれる)3つのオフセットタイプ、すなわち、オフセットなしと、バンド分類ベースのオフセットタイプ0/1と、エッジ分類ベースのタイプ0/1/2/3とのうちの1つを有することができる。各帯域分類オフセットタイプは16個の可能なオフセット値を有するが、各エッジ分類ベースタイプは4つの可能なオフセット値を有する。これらのオフセットタイプのうちの1つが、パーティションのために使用されるために選択された場合、対応するオフセットタイプとオフセット値とを示す情報がデコーダに送られる。
【0088】
[0092]したがって、本開示の一例では、(たとえば、LCUレベルで)LCU中のブロックにSAOが使用されているかどうかを示すSAOオン/オフフラグが最初にシグナリングされ得る。別の例では、(たとえば、LCUレベルで)LCU中のブロックにSAOが使用されているかどうかを示すALFオン/オフフラグが最初にシグナリングされる。シグナリングは、ビデオエンコーダ20によって実行され得る。
【0089】
[0093]本開示の技法によれば、ループフィルタ(たとえば、SAOまたはALF)が有効であるかどうかを示すシンタックス要素が、マージシンタックス要素の前にビデオエンコーダ20からビデオデコーダ30に送信され得る。この例では、ビデオブロックグループ(たとえば、LCUまたはパーティション)に関してSAOが有効であるかどうかを示すsao_enable_flagが、最初にエンコーダによって送信され、デコーダによって受信される。SAOフィルタリングが有効であることをsao_enable_flagが示す場合、1つまたは複数のマージシンタックス要素(たとえば、merge_leftおよびmerge_up)が送信され得る。merge_leftフラグおよびmerge_upフラグが、SAOフィルタパラメータが左のビデオブロックまたは上のビデオブロックに関するフィルタパラメータと同じではないことを示す場合、フィルタパラメータがシグナリングされ得る。一例では、sao_enable_flagが、SAOフィルタリングがオンになっているか、それともオフになっているかをすでに示しているので、sao_type_idxシンタックス要素は、「フィルタリングオフ」インジケータを含む必要がなく、したがって、sao_type_idxシンタックス要素を送信するときにビット節約が可能になり得る。
【0090】
[0094]ビデオエンコーダ20は、ビデオスライス内のビデオブロックのイントラコーディングとインターコーディングとを実行し得る。イントラコーディングは、空間的予測を利用して、所与のビデオフレームまたはピクチャ内のビデオの空間的冗長性を低減または除去する。インターコーディングは、時間的予測を利用して、ビデオシーケンスの隣接フレームまたはピクチャ内のビデオの時間的冗長性を低減または除去する。イントラモード(Iモード)は、いくつかの空間ベースの圧縮モードのいずれかを指し得る。単方向予測(Pモード)または双方向予測(Bモード)などのインターモードは、いくつかの時間ベースの圧縮モードのいずれかを指し得る。
【0091】
[0095]
図5の例では、ビデオエンコーダ20は、区分ユニット35と、予測モジュール41と、参照ピクチャメモリ64と、加算器50と、変換モジュール52と、量子化ユニット54と、エントロピー符号化ユニット56とを含む。ビデオエンコーダ20はまた、本開示で説明するSAO技法を実行するためにALFユニット61とSAOユニット63とを含む。予測モジュール41は、動き推定ユニット42と、動き補償ユニット44と、イントラ予測ユニット46とを含む。ビデオブロック再構成のために、ビデオエンコーダ20はまた、逆量子化ユニット58と、逆変換モジュール60と、加算器62とを含む。ブロック境界をフィルタリングして再構成されたビデオからブロッキネスアーティファクトを除去するために、デブロッキングフィルタ(
図5に図示せず)も含まれ得る。所望される場合、デブロッキングフィルタは、一般に、加算器62の出力をフィルタリングすることになる。
【0092】
[0096]デブロッキングフィルタに加えて追加のループフィルタ(ループ内またはループ後)も使用され得る。さらに、
図5に示すループフィルタの順序は単なる一例であり、他の順序が使用されることもあることが企図されている。
【0093】
[0097]
図5に示されるように、ビデオエンコーダ20はビデオデータを受信し、区分ユニット35はデータをビデオブロックに区分する。この区分は、たとえば、LCUおよびCUの4分木構造に従った、スライス、タイル、または他のより大きいユニットへの区分、さらにはビデオブロック区分を含み得る。ビデオエンコーダ20は、符号化されるべきビデオスライス内のビデオブロックを符号化するコンポーネントを全般に示す。スライスは、複数のビデオブロックに(および、場合によっては、タイルと呼ばれるビデオブロックのセットに)分割され得る。予測モジュール41は、誤り結果(たとえば、コーディングレートおよび歪みのレベル)に基づいて、現在ビデオブロックに対して、複数のイントラコーディングモードのうちの1つ、または複数のインターコーディングモードのうちの1つのような、複数の可能なコーディングモードのうちの1つを選択し得る。予測モジュール41は、得られたイントラコーディングされたブロックまたはインターコーディングされたブロックを加算器50に与えて、残差ブロックデータを生成し、加算器62に与えて、参照ピクチャとして使用するための符号化されたブロックを再構成することができる。
【0094】
[0098]一例では、予測モジュール41は、ループフィルタ(たとえば、SAOまたはALF)が有効であるかどうかを示すシンタックス要素を生成することができる。そのようなシンタックス要素は、エントロピーエンコーダユニット56によって符号化され得る。したがって、ビデオエンコーダ20はシンタックス要素を、マージシンタックス要素の前にビデオデコーダ30に送信することができる。この例では、ビデオブロックグループ(たとえば、LCUまたはパーティション)に関してSAOが有効であるかどうかを示すsao_enable_flagが、最初にエンコーダによって送信され、デコーダによって受信される。SAOフィルタリングが有効であることをsao_enable_flagが示す場合、1つまたは複数のマージシンタックス要素(たとえば、merge_leftおよびmerge_up)が送信され得る。merge_leftフラグおよびmerge_upフラグが、SAOフィルタパラメータが左のビデオブロックまたは上のビデオブロックに関するフィルタパラメータと同じではないことを示す場合、フィルタパラメータがシグナリングされ得る。一例では、sao_enable_flagが、SAOフィルタリングがオンになっているか、それともオフになっているかをすでに示しているので、sao_type_idxシンタックス要素は、「フィルタリングオフ」インジケータを含む必要がなく、したがって、sao_type_idxシンタックス要素を送信するときにビット節約が可能になり得る。
【0095】
[0099]1つの例示的なビデオエンコーダ20では、予測モジュール41は、符号化されたビットストリームに含めるために、イネーブルシンタックス要素を生成する。イネーブルシンタックス要素は、ビデオブロックグループに関してループフィルタがオンになっているか、それともオフになっているかを示す。予測モジュール41はまた、ビデオブロックグループに関してループフィルタがオンになっていることをイネーブルシンタックス要素が示したことに応答して、ビデオブロックグループに関するループフィルタのためのパラメータを識別する1つまたは複数の追加のシンタックス要素を生成する。ビデオエンコーダ20はまた、イネーブルシンタックス要素に従ってビデオブロックグループに関してループフィルタを実行することができる。
【0096】
[0100]いくつかの例では、追加のシンタックス要素は、1つまたは複数のマージシンタックス要素を含む。1つまたは複数のマージシンタックス要素は、ループフィルタのためのパラメータが、以前のビデオブロックグループに関するループフィルタのためのパラメータから再利用されるか、または借りられるように、ビデオブロックグループの少なくとも1つのブロックに関するループフィルタのためのパラメータが、以前のビデオブロックグループに関するループフィルタのためのパラメータに等しくセットされ得るかどうかを示す。
【0097】
[0101]一例では、予測モジュール41は、符号化されたビットストリームに含めるために、ループフィルタのためのフィルタ係数セットを再構成するための情報を生成する。いくつかの例では、ループフィルタはSAOフィルタであり得る。さらに、予測モジュール41は、符号化されたビットストリームに含めるために、ループフィルタのためのオフセット値を再構成するための情報を生成することができる。いくつかの例では、予測モジュール41は、符号化されたビットストリームに含めるために、タイプセットからSAOフィルタリングタイプを識別するSAOタイプシンタックス要素を生成することができる。
【0098】
[0102]一例では、ループフィルタは、ALFフィルタを含み、予測モジュール41は、符号化されたビットストリームに含めるために、符号化されたビットストリームに新しいフィルタ係数を識別する情報が存在するかどうかをシグナリングするフィルタシンタックス要素を生成することができる。符号化されたビットストリームに新しいフィルタ係数を識別する情報が存在することをフィルタシンタックス要素がシグナリングしたことに応答して、符号化されたビットストリームに含めるために、その情報を生成すること。一例では、符号化されたビットストリームに新しいフィルタ係数を識別する情報が存在しないことを新しいフィルタシンタックス要素がシグナリングしたことに応答して、予測モジュールは、符号化されたビットストリームに含めるために、1つもしくは複数のマージシンタックス要素および/またはフィルタインデックスを生成することができる。
【0099】
[0103]予測モジュール41内のイントラ予測ユニット46は、コーディングされるべき現在のブロックと同じフレームまたはスライス中の1つまたは複数の隣接ブロックに対する、現在のビデオブロックのイントラ予測コーディングを実行して、空間圧縮を行うことができる。予測モジュール41内の動き推定ユニット42および動き補償ユニット44は、1つまたは複数の参照ピクチャ中の1つまたは複数の予測ブロックに対する、現在のビデオブロックのインター予測コーディングを実行して、時間圧縮を行うことができる。
【0100】
[0104]動き推定ユニット42は、ビデオシーケンスの所定のパターンに従って、ビデオスライスのためのインター予測モードを決定するように構成され得る。所定のパターンは、シーケンス中のビデオスライスを、Pスライス、BスライスまたはGPBスライスと指定し得る。動き推定ユニット42および動き補償ユニット44は、高度に統合され得るが、概念的な目的のために別々に示されている。動き推定ユニット42によって実行される動き推定は、ビデオブロックの動きを推定する動きベクトルを生成するプロセスである。動きベクトルは、たとえば、参照ピクチャ内の予測ブロックに対する現在のビデオフレームまたはピクチャ内のビデオブロックのPUの変位を示し得る。
【0101】
[0105]予測ブロックは、絶対値差分和(SAD)、差分2乗和(SSD)、または他の差分尺度によって決定され得るピクセル差分に関して、コーディングされるべきビデオブロックのPUに厳密に一致することがわかるブロックである。いくつかの例では、ビデオエンコーダ20は、参照ピクチャメモリ64に記憶された参照ピクチャのサブ整数ピクセル位置の値を計算し得る。たとえば、ビデオエンコーダ20は、参照ピクチャの1/4ピクセル位置、1/8ピクセル位置、または他の分数ピクセル位置の値を補間し得る。したがって、動き推定ユニット42は、フルピクセル位置と分数ピクセル位置とに対する動き探索を実行し、分数ピクセル精度で動きベクトルを出力し得る。
【0102】
[0106]動き推定ユニット42は、PUの位置を参照ピクチャの予測ブロックの位置と比較することによって、インターコーディングされたスライス中のビデオブロックのPUのための動きベクトルを計算する。参照ピクチャは、第1の参照ピクチャリスト(リスト0)または第2の参照ピクチャリスト(リスト1)から選択されてよく、それらの参照ピクチャリストの各々は、参照ピクチャメモリ64に記憶された1つまたは複数の参照ピクチャを識別する。動き推定ユニット42は、計算された動きベクトルをエントロピー符号化ユニット56と動き補償ユニット44とに送る。
【0103】
[0107]動き補償ユニット44によって実行される動き補償は、動き推定によって決定された動きベクトルに基づいて予測ブロックをフェッチまたは生成すること、場合によってはサブピクセル精度への補間を実行することを伴い得る。現在のビデオブロックのPUのための動きベクトルを受信すると、動き補償ユニット44は、参照ピクチャリストのうちの1つにおいて動きベクトルが指す予測ブロックの位置を特定し得る。ビデオエンコーダ20は、コーディングされている現在のビデオブロックのピクセル値から予測ブロックのピクセル値を減算し、ピクセル差分値を形成することによって残差ビデオブロックを形成する。ピクセル差分値は、ブロックの残差データを形成し、ルーマ差分成分とクロマ差分成分の両方を含み得る。加算器50は、この減算演算を実行する1つまたは複数のコンポーネントを表す。動き補償ユニット44はまた、ビデオスライスのビデオブロックを復号する際にビデオデコーダ30が使用するための、ビデオブロックおよびビデオスライスと関連付けられるシンタックス要素を生成し得る。
【0104】
[0108]イントラ予測ユニット46は、上で説明されたように、動き推定ユニット42と動き補償ユニット44とによって実行されるインター予測の代替として、現在のブロックをイントラ予測し得る。特に、イントラ予測ユニット46は、現在のブロックを符号化するために使用すべきイントラ予測モードを決定し得る。いくつかの例では、イントラ予測ユニット46は、たとえば、別々の符号化パス中に、様々なイントラ予測モードを使用して現在のブロックを符号化することができ、イントラ予測ユニット46(または、いくつかの例では、モード選択ユニット40)は、テストされたモードから使用するのに適切なイントラ予測モードを選択することができる。たとえば、イントラ予測ユニット46は、様々なテストされたイントラ予測モードのためのレート歪み分析を使用してレート歪み値を計算し、テストされたモードの中で最良のレート歪み特性を有するイントラ予測モードを選択することができる。レート歪み分析は、一般に、符号化されたブロックと、符号化されたブロックを生成するために符号化された元の符号化されていないブロックとの間の歪み(または誤差)の量、ならびに、符号化されたブロックを生成するために使用されたビットレート(すなわち、ビット数)を決定する。イントラ予測ユニット46は、どのイントラ予測モードがブロックに対して最良のレート歪み値を呈するかを決定するために、様々な符号化されたブロックに対する歪みおよびレートから比率を計算することができる。
【0105】
[0109]いずれの場合も、あるブロックに対するイントラ予測モードを選択した後、イントラ予測ユニット46は、エントロピーコーディングユニット56にブロックに対する選択されたイントラ予測モードを示す情報を提供し得る。エントロピーコーディングユニット56は、本開示の技法に従って選択されたイントラ予測モードを示す情報を符号化し得る。ビデオエンコーダ20は、送信されるビットストリーム中に、複数のイントラ予測モードインデックステーブルおよび複数の修正されたイントラ予測モードインデックステーブル(コードワードマッピングテーブルとも呼ばれる)と、様々なブロックの符号化コンテキストの定義と、コンテキストの各々について使用すべき、最も可能性の高いイントラ予測モード、イントラ予測モードインデックステーブル、および修正されたイントラ予測モードインデックステーブルの指示とを含み得る、構成データを含み得る。
【0106】
[0110]予測モジュール41が、インター予測またはイントラ予測のいずれかを介して、現在のビデオブロックのための予測ブロックを生成した後、ビデオエンコーダ20は、現在のビデオブロックから予測ブロックを減算することによって残差ビデオブロックを形成する。残差ブロック中の残差ビデオデータは、1つまたは複数のTU中に含まれ、変換モジュール52に適用され得る。変換モジュール52は、離散コサイン変換(DCT)または概念的に同様の変換などの変換を使用して、残差ビデオデータを残差変換係数に変換する。変換モジュール52は、残差ビデオデータをピクセル領域から周波数領域などの変換領域に変換し得る。
【0107】
[0111]変換モジュール52は、得られた変換係数を量子化ユニット54に送り得る。量子化ユニット54は、ビットレートをさらに低減するために変換係数を量子化する。量子化プロセスは、係数の一部またはすべてと関連付けられるビット深度を低減することができる。量子化の程度は、量子化パラメータを調整することによって修正され得る。いくつかの例では、量子化ユニット54は、次いで、量子化された変換係数を含む行列の走査を実行し得る。代替的に、エントロピー符号化ユニット56が走査を実行し得る。
【0108】
[0112]量子化の後に、エントロピー符号化ユニット56は、量子化された変換係数をエントロピー符号化する。たとえば、エントロピー符号化ユニット56は、コンテキスト適応型可変長コーディング(CAVLC)、コンテキスト適応型バイナリ算術コーディング(CABAC)、シンタックスベースコンテキスト適応型バイナリ算術コーディング(SBAC)、確率間隔区分エントロピー(PIPE)コーディング、あるいは別のエントロピー符号化方法または技法を実行し得る。エントロピー符号化ユニット56によるエントロピー符号化の後に、符号化されたビットストリームは、ビデオデコーダ30に送信されるか、あるいはビデオデコーダ30による後の送信または取り出しのためにアーカイブされ得る。エントロピー符号化ユニット56はまた、コーディングされている現在のビデオスライスのための動きベクトルと他のシンタックス要素とをエントロピー符号化し得る。
【0109】
[0113]逆量子化ユニット58および逆変換モジュール60は、それぞれ逆量子化および逆変換を適用して、参照ピクチャの参照ブロックとして後で使用するためにピクセル領域において残差ブロックを再構成する。動き補償ユニット44は、残差ブロックを参照ピクチャリストのうちの1つの中の参照ピクチャのうちの1つの予測ブロックに加算することによって、参照ブロックを計算し得る。動き補償ユニット44はまた、再構成された残差ブロックに1つまたは複数の補間フィルタを適用して、動き推定において使用するサブ整数ピクセル値を計算し得る。加算器62は、再構成された残差ブロックを動き補償ユニット44によって生成された動き補償された予測ブロックに加算して、参照ピクチャメモリ64に記憶するための参照ブロックを生成する。参照ブロックは、後続のビデオフレームまたはピクチャ中のブロックをインター予測するために、動き推定ユニット42と動き補償ユニット44とによって参照ブロックとして使用され得る。
【0110】
[0114]このようにして、
図3のビデオエンコーダ20は、符号化されたビットストリームに含めるために、ビデオブロックグループに関してループフィルタがオンになっているか、それともオフになっているかを示すイネーブルシンタックス要素を生成し、ビデオブロックグループに関してループフィルタがオンになっていることをイネーブルシンタックス要素が示したことに応答して、ビデオブロックグループに関するループフィルタのためのパラメータを識別する1つまたは複数の追加のシンタックス要素を生成するように構成されたビデオエンコーダの一例を表す。ループフィルタは、たとえば、適応ループフィルタ(ALF)またはサンプル適応オフセット(SAO)フィルタであり得る。追加のシンタックス要素は、ループフィルタのためのパラメータのためのパラメータが、以前のビデオブロックグループに関するループフィルタのためのパラメータから再利用されるか、または借りられるように、ビデオブロックグループに関するループフィルタのためのパラメータが、以前のビデオブロックグループに関するループフィルタのためのパラメータに等しくセットされ得るかどうかを示す1つまたは複数のマージシンタックス要素を含むことができる。ループフィルタがALFフィルタであるとき、ビデオエンコーダ20は、符号化されたビットストリームに含めるために、ループフィルタのためのフィルタ係数セットを再構成するための情報を生成することができる。ループフィルタがSAOフィルタであるとき、ビデオエンコーダ20は、符号化されたビットストリームに含めるために、ループフィルタのためのオフセット値を再構成するための情報を生成することができる。ループフィルタがSAOフィルタであるとき、ビデオエンコーダ20は、符号化されたビットストリームに含めるために、「フィルタリングオフ」タイプを含まないタイプセットからSAOフィルタリングタイプを識別するSAOタイプシンタックス要素を生成することができる。ループフィルタがALFフィルタを備えるとき、ビデオエンコーダ20は、符号化されたビットストリームに含めるために、符号化されたビットストリームに新しいフィルタ係数を識別する情報が存在するかどうかをシグナリングする新しいフィルタシンタックス要素を生成することができ、符号化されたビットストリームに新しいフィルタ係数を識別する情報が存在することを新しいフィルタシンタックス要素がシグナリングしたことに応答して、符号化されたビットストリームに含めるために、その情報を生成することができる。符号化されたビットストリームに新しいフィルタ係数を識別する情報が存在しないことを新しいフィルタシンタックス要素がシグナリングしたことに応答して、ビデオエンコーダ20は、符号化されたビットストリームに含めるために、1つもしくは複数のマージシンタックス要素および/またはフィルタインデックスを生成することができる。
【0111】
[0115]ループフィルタがALFフィルタであるとき、イネーブルシンタックス要素の第1の値が、ALFがオフになっていることを示すことができ、イネーブルシンタックス要素の第2の値が、ALFフィルタがオンになっており、符号化されたビットストリームが新しいフィルタ係数を識別する情報を含むことを示すことができ、イネーブルシンタックス要素の第3の値が、ALFフィルタがオンになっており、符号化されたビットストリームが新しいフィルタ係数を識別する情報を含まないことを示すことができる。第3のシンタックス要素は、マージシンタックス要素を介してALFのためのフィルタ係数がシグナリングされていることを示すことができる。第3のシンタックス要素はまた、フィルタインデックスを介してALFのためのフィルタ係数がシグナリングされていることを示すことができる。
【0112】
[0116]ビデオエンコーダ20はまた、符号化されたビットストリームに含めるために、「フィルタリングオフ」タイプを含むタイプセットからSAOフィルタリングタイプを識別するSAOタイプシンタックス要素を生成し、SAOタイプシンタックス要素が「フィルタリングオフ」タイプ以外のSAOフィルタリングタイプを識別したことに応答して、符号化されたビットストリームに含めるために、ビデオブロックグループに関するSAOフィルタのためのパラメータを識別する1つまたは複数の追加のシンタックス要素を生成するように構成されたビデオエンコーダの一例を表す。追加のシンタックス要素は、ビデオブロックグループに関するループフィルタのためのパラメータが以前のビデオブロックグループに関するループフィルタのためのパラメータから借りられ得ることを示す1つまたは複数のマージシンタックス要素を含むことができる。ビデオエンコーダ20はまた、符号化されたビットストリームに含めるために、SAOフィルタのためのオフセット値を生成することができる。
【0113】
[0117]本開示の技法によれば、ループフィルタ(たとえば、SAOまたはALF)が有効であるかどうかを示すシンタックス要素が、マージシンタックス要素の前にビデオエンコーダ20からビデオデコーダ30に送信され得る。一例では、ビデオブロックグループ(たとえば、LCUまたはパーティション)に関してSAOが有効であるかどうかを示すsao_enable_flagが、最初にエンコーダによって送信され、デコーダによって受信される。SAOフィルタリングが有効であることをsao_enable_flagが示す場合、1つまたは複数のマージシンタックス要素(たとえば、merge_leftおよびmerge_up)が送信され得る。merge_leftフラグおよびmerge_upフラグが、SAOフィルタパラメータが左のビデオブロックまたは上のビデオブロックに関するフィルタパラメータと同じではないことを示す場合、フィルタパラメータがシグナリングされ得る。一例では、sao_enable_flagが、SAOフィルタリングがオンになっているか、それともオフになっているかをすでに示しているので、sao_type_idxシンタックス要素は、「フィルタリングオフ」インジケータを含む必要がなく、したがって、sao_type_idxシンタックス要素を送信するときにビット節約が可能になり得る。
【0114】
[0118]一例では、この概念は、(たとえば、LCUレベルで)ソースデバイス12によって最初にシグナリングされ得る、LCU中のブロックにSAOが使用されているかどうかを示すSAOオン/オフフラグの導入に関する。別の例では、この概念は、(たとえば、LCUレベルで)ソースデバイス12によって最初にシグナリングされる、LCU中のブロックにSAOが使用されているかどうかを示すALFオン/オフフラグの導入に関する。
【0115】
[0119]1つの例示的なSAO実装形態では、(LCUのセットを備える)各パーティションは、(ピクセル分類とも呼ばれる)3つのオフセットタイプ、すなわち、オフセットなしと、バンド分類ベースのオフセットタイプ0/1と、エッジ分類ベースのタイプ0/1/2/3とのうちの1つを有することができる。各帯域分類オフセットタイプは16個の可能なオフセット値を有するが、各エッジ分類ベースタイプは4つの可能なオフセット値を有する。これらのオフセットタイプのうちの1つが、パーティションのために使用されるために選択された場合、対応するオフセットタイプとオフセット値とを示す情報がデコーダに送られる。
【0116】
[0120]
図6は、本開示で説明される技法を実装し得る例示的なビデオデコーダ30を示すブロック図である。
図6の例では、ビデオデコーダ30は、エントロピー復号ユニット80と、予測モジュール81と、逆量子化ユニット86と、逆変換ユニット88と、加算器90と、参照ピクチャメモリ92とを含む。ビデオエンコーダ30はまた、本開示で説明するフィルタリング技法を実行するためにSAOユニット91とALFユニット93とを含む。予測モジュール81は、動き補償ユニット82と、イントラ予測ユニット84とを含む。ビデオデコーダ30は、いくつかの例では、
図5のビデオエンコーダ20に関して説明された符号化パスとは全般に逆の復号パスを実行し得る。
図5に関して上記で説明したように、追加のループフィルタもビデオデコーダ30に含まれ得る。また、
図6に示すループフィルタの順序は単なる一例であり、他の順序が使用されることもある。
【0117】
[0121]復号プロセス中に、ビデオデコーダ30は、ビデオエンコーダ20から、符号化されたビデオスライスのビデオブロックと関連するシンタックス要素とを表す、符号化されたビデオビットストリームを受信する。ビデオデコーダ30のエントロピー復号ユニット80は、量子化された係数と、動きベクトルと、他のシンタックス要素とを生成するために、ビットストリームをエントロピー復号する。エントロピー復号ユニット80は、予測モジュール81に動きベクトルと他のシンタックス要素とを転送する。ビデオデコーダ30は、ビデオスライスレベルおよび/またはビデオブロックレベルでシンタックス要素を受信し得る。
【0118】
[0122]ビデオスライスがイントラコーディングされた(I)スライスとしてコーディングされるとき、予測モジュール81のイントラ予測ユニット84は、シグナリングされたイントラ予測モードと、現在のフレームまたはピクチャの、以前に復号されたブロックからのデータとに基づいて、現在のビデオスライスのビデオブロックのための予測データを生成し得る。ビデオフレームがインターコーディングされた(すなわち、B、PまたはGPB)スライスとしてコーディングされるとき、予測モジュール81の動き補償ユニット82は、エントロピー復号ユニット80から受信された動きベクトルおよび他のシンタックス要素に基づいて、現在のビデオスライスのビデオブロックのための予測ブロックを生成する。予測ブロックは、参照ピクチャリストのうちの1つの中の参照ピクチャのうちの1つから生成され得る。ビデオデコーダ30は、参照ピクチャメモリ92に記憶された参照ピクチャに基づいて、デフォルトの構成技法を使用して、参照フレームリスト、すなわち、リスト0とリスト1とを構成し得る。
【0119】
[0123]一例では、マージシンタックス要素の前に送信され得る、ビデオエンコーダ20によってビデオデコーダ30に送信されたシンタックス要素は、エントロピー復号ユニット80によって処理され、予測モジュール81に提供され得る。この例では、ビデオブロックグループ(たとえば、LCUまたはパーティション)に関してSAOが有効であるかどうかを示すsao_enable_flagが、最初にビデオエンコーダ20によって送信され、ビデオデコーダ30によって受信される。SAOフィルタリングが有効であることをsao_enable_flagが示す場合、1つまたは複数のマージシンタックス要素(たとえば、merge_leftおよびmerge_up)が送信され得る。merge_leftフラグおよびmerge_upフラグが、SAOフィルタパラメータが左のビデオブロックまたは上のビデオブロックに関するフィルタパラメータと同じではないことを示す場合、フィルタパラメータがシグナリングされ得る。一例では、sao_enable_flagが、SAOフィルタリングがオンになっているか、それともオフになっているかをすでに示しているので、sao_type_idxシンタックス要素は、「フィルタリングオフ」インジケータを含む必要がなく、したがって、sao_type_idxシンタックス要素を送信するときにビット節約が可能になり得る。
【0120】
[0124]1つの例示的なビデオデコーダ30では、エントロピー復号ユニット80は、イネーブルシンタックス要素を含む符号化されたビットストリームを受信する。イネーブルシンタックス要素は、ビデオブロックグループに関してループフィルタがオンになっているか、それともオフになっているかを示す。エントロピー復号ユニット80はまた、ビデオブロックグループに関してループフィルタがオンになっていることをイネーブルシンタックス要素が示したことに応答して、ビデオブロックグループに関するループフィルタのためのパラメータを識別する1つまたは複数の追加のシンタックス要素を受信する。さらに、ビデオデコーダは、受信されたイネーブルシンタックス要素に基づいてビデオブロックグループに関してループフィルタを実行することができる。
【0121】
[0125]一例では、追加のシンタックス要素は、1つまたは複数のマージシンタックス要素を備え、1つまたは複数のマージシンタックス要素は、ビデオブロックグループの少なくとも1つのブロックに関するループフィルタのためのパラメータが、以前のビデオブロックグループに関するループフィルタのためのパラメータから再利用されるかどうかを示す。
【0122】
[0126]一例では、エントロピー復号ユニット80は、ループフィルタのためのフィルタ係数セットを再構成するための情報を含む、符号化されたビットストリームを受信し得る。受信された符号化されたビットストリームは、ループフィルタのためのオフセット値を再構成するための情報、タイプセットからSAOフィルタリングタイプを識別するSAOタイプシンタックス要素を含むことができる。エントロピー復号ユニット80は、符号化されたビットストリームに新しいフィルタ係数を識別する情報が存在するかどうかをシグナリングするフィルタシンタックス要素を含む符号化されたビットストリームを受信することができる。受信された符号化されたビットストリームは、符号化されたビットストリームに新しいフィルタ係数を識別する情報が存在しないことを含み、符号化されたビットストリームに含めるために、1つもしくは複数のマージシンタックス要素および/またはフィルタインデックスを生成することができる。
【0123】
[0127]一例では、ループフィルタがALFフィルタを備えるとき、イネーブルシンタックス要素の第1の値が、ALFがオフになっていることを示し、イネーブルシンタックス要素の第2の値が、ALFフィルタがオンになっており、符号化されたビットストリームが新しいフィルタ係数を識別する情報を含むことを示し、イネーブルシンタックス要素の第3の値が、ALFフィルタがオンになっており、符号化されたビットストリームが新しいフィルタ係数を識別する情報を含まないことを示す。イネーブルシンタックス要素の第3の値は、マージシンタックス要素を介してALFのためのフィルタ係数がシグナリングされていることを示す。イネーブルシンタックス要素の第3の値は、フィルタインデックスを介してALFのためのフィルタ係数がシグナリングされていることを示す。マージシンタックス要素を介してシグナリングされたこれらの信号は、ビデオデコーダ30によって受信され、エントロピー復号ユニット80によって復号され得る。
【0124】
[0128]動き補償ユニット82は、動きベクトルと他のシンタックス要素とを解析することによって現在のビデオスライスのビデオブロックのための予測情報を決定し、その予測情報を使用して、復号されている現在のビデオブロックの予測ブロックを生成する。たとえば、動き補償ユニット82は、ビデオスライスのビデオブロックをコーディングするために使用される予測モード(たとえば、イントラまたはインター予測)と、インター予測スライスタイプ(たとえば、Bスライス、Pスライス、またはGPBスライス)と、スライスの参照ピクチャリストのうちの1つまたは複数に対する構成情報と、スライスの各々のインター符号化されたビデオブロックの動きベクトルと、スライスの各々のインターコーディングされたビデオブロックのインター予測ステータスと、現在のビデオスライス中のビデオブロックを復号するための他の情報とを決定するために、受信されたシンタックス要素のいくつかを使用する。
【0125】
[0129]動き補償ユニット82はまた、補間フィルタに基づいて補間を実行し得る。動き補償ユニット82は、ビデオブロックの符号化中にビデオエンコーダ20によって使用された補間フィルタを使用して、参照ブロックのサブ整数ピクセルの補間された値を計算し得る。この場合、動き補償ユニット82は、受信されたシンタックス要素からビデオエンコーダ20によって使用された補間フィルタを決定し、その補間フィルタを使用して予測ブロックを生成し得る。
【0126】
[0130]逆量子化ユニット86は、ビットストリーム中で与えられエントロピー復号ユニット80によって復号された、量子化された変換係数を逆量子化(inverse quantize)、すなわち、逆量子化(de-quantize)する。逆量子化プロセスは、量子化の程度を判定し、同様に、適用されるべき逆量子化の程度を判定するための、ビデオスライス中の各ビデオブロックに対してビデオエンコーダ20によって計算される量子化パラメータの使用を含み得る。逆変換モジュール88は、逆変換、たとえば、逆DCT、逆整数変換、または概念的に同様の逆変換プロセスを変換係数に適用して、ピクセル領域において残差ブロックを生成する。
【0127】
[0131]動き補償ユニット82が、動きベクトルと他のシンタックス要素とに基づいて現在のビデオブロックのための予測ブロックを生成した後、ビデオデコーダ30は、逆変換モジュール88からの残差ブロックを動き補償ユニット82によって生成された対応する予測ブロックと加算することによって、復号されたビデオブロックを形成する。加算器90は、この加算演算を実行する1つまたは複数のコンポーネントを表す。所望される場合、ブロッキネスアーティファクトを除去するために、復号されたブロックをフィルタリングするためのデブロッキングフィルタも適用され得る。ピクセル遷移を平滑化するために、または場合によってはビデオ品質を改善するために、他のループフィルタも(コーディングループ中またはコーディングループ後のいずれかで)使用され得る。所与のフレームまたはピクチャ中の復号されたビデオブロックは、次いで、その後の動き補償のために使用される参照ピクチャを記憶する、参照ピクチャメモリ92に記憶される。参照ピクチャメモリ92はまた、
図1のディスプレイデバイス32などのディスプレイデバイス上での後の表示のために、復号されたビデオを記憶する。
【0128】
[0132]このようにして、
図6のビデオデコーダ30は、符号化されたビットストリームにおいて、1つまたは複数のビデオブロックからなるグループに関してループフィルタがオンになっているか、それともオフになっているかを示すイネーブルシンタックス要素を受信し、ビデオブロックグループに関してループフィルタがオンになっていることをイネーブルシンタックス要素が示したことに応答して、ビデオブロックグループに関するループフィルタのためのパラメータを識別する1つまたは複数の追加のシンタックス要素を受信するように構成されたビデオエンコーダの一例を表す。ループフィルタは、たとえば、適応ループフィルタ(ALF)またはサンプル適応オフセット(SAO)フィルタであり得る。追加のシンタックス要素は、ビデオブロックグループに関するループフィルタのためのパラメータが以前のビデオブロックグループに関するループフィルタのためのパラメータから再利用されるかどうかを示す1つまたは複数のマージシンタックス要素を含むことができる。ループフィルタがALFフィルタであるとき、ビデオデコーダ30はさらに、ループフィルタのためのフィルタ係数セットを再構成するための情報を受信することができる。
【0129】
[0133]ループフィルタがALFフィルタであるとき、ビデオデコーダ30はまた、符号化されたビットストリームに新しいフィルタ係数を識別する情報が存在するかどうかをシグナリングする新しいフィルタシンタックス要素を受信することができ、符号化されたビットストリームに新しいフィルタ係数を識別する情報が存在することを新しいフィルタシンタックス要素がシグナリングしたことに応答して、ビデオデコーダ30は、その情報を受信することができる。符号化されたビットストリームに新しいフィルタ係数を識別する情報が存在しないことを新しいフィルタシンタックス要素がシグナリングしたことに応答して、ビデオデコーダ30は、1つもしくは複数のマージシンタックス要素および/またはフィルタインデックスを受信することができる。
【0130】
[0134]ループフィルタがALFフィルタであるとき、イネーブルシンタックス要素の第1の値が、ALFがオフになっていることを示すことができ、イネーブルシンタックス要素の第2の値が、ALFフィルタがオンになっており、符号化されたビットストリームが新しいフィルタ係数を識別する情報を含むことを示すことができ、イネーブルシンタックス要素の第3の値が、ALFフィルタがオンになっており、符号化されたビットストリームが新しいフィルタ係数を識別する情報を含まないことを示すことができる。第3の値は、マージシンタックス要素を介してALFのためのフィルタ係数がシグナリングされていることを示すことができる。第3の値はまた、フィルタインデックスを介してALFのためのフィルタ係数がシグナリングされていることを示すことができる。
【0131】
[0135]ループフィルタがSAOフィルタであるとき、ビデオデコーダ30は、ループフィルタのためのオフセット値を再構成するための情報を受信することができる。ループフィルタがSAOフィルタであるとき、ビデオデコーダ30はまた、「フィルタリングオフ」タイプを含まないタイプセットからSAOフィルタリングタイプを識別するSAOタイプシンタックス要素を受信することができる。
【0132】
[0136]ビデオデコーダ30はまた、符号化されたビットストリームにおいて、タイプセットからSAOフィルタリングタイプを識別するSAOタイプシンタックス要素を受信するように構成されたビデオエンコーダの一例を表す。タイプセットは、「フィルタリングオフ」タイプを含むことができる。「フィルタリングオフ」タイプ以外のSAOフィルタリングタイプをSAOタイプシンタックス要素が識別したことに応答して、ビデオデコーダ30は、1つまたは複数のビデオブロックからなるグループに関するSAOフィルタのためのパラメータを識別する追加のシンタックス要素を受信することができる。
【0133】
[0137]追加のシンタックス要素は、ビデオブロックグループに関するループフィルタのためのパラメータが以前のビデオブロックグループに関するループフィルタのためのパラメータから借りられることを示す1つまたは複数のマージシンタックス要素を含むことができる。ビデオデコーダ30はまた、SAOフィルタのためのオフセット値を受信することができる。
【0134】
[0138]
図7は、本開示の1つまたは複数の例による、例示的な方法を示すフローチャートである。図示の例では、たとえばビデオエンコーダ20のようなビデオを符号化するためのデバイスが、符号化されたビットストリームに含めるために、イネーブルシンタックス要素を生成することができる。イネーブルシンタックス要素は、ビデオブロックグループに関してループフィルタがオンになっているか、それともオフになっているかを示すことができる(700)。一例では、ビデオエンコーダ20またはビデオを符号化するための他のデバイスにおける1つまたは複数のプロセッサが、符号化されたビットストリームに含めるためにイネーブルシンタックス要素を生成するように構成され得る。一例では、予測モジュール41は、シンタックス要素を生成することができる。
【0135】
[0139]図示の例では、ビデオデータを符号化するためのデバイス、たとえばビデオエンコーダ20は、ビデオブロックグループに関してループフィルタがオンになっていることをイネーブルシンタックス要素が示したことに応答して、ビデオブロックグループに関するループフィルタのためのパラメータを識別する1つまたは複数の追加のシンタックス要素を生成することができる(702)。ここでも、一例では、ビデオを符号化するためのデバイスにおける1つまたは複数のプロセッサが、ビデオブロックグループに関してループフィルタがオンになっていることをイネーブルシンタックス要素が示したことに応答して、ビデオブロックグループに関するループフィルタのためのパラメータを識別する1つまたは複数の追加のシンタックス要素を生成するように構成され得る。一例では、予測モジュール41は、シンタックス要素を生成することができる。
【0136】
[0140]本開示の技法によれば、ループフィルタ(たとえば、SAOまたはALF)が有効であるかどうかを示すシンタックス要素が、マージシンタックス要素の前にエンコーダからデコーダに送信され得る。表5および表6は、そのような技法が実施され得る方法の例を示す。ビデオブロックグループ(たとえば、LCUまたはパーティション)に関してSAOが有効であるかどうかを示すsao_enable_flagが、最初にエンコーダによって送信され、デコーダによって受信される。SAOフィルタリングが有効であることをsao_enable_flagが示す場合、1つまたは複数のマージシンタックス要素(たとえば、merge_leftおよびmerge_up)が送信され得る。merge_leftフラグおよびmerge_upフラグが、SAOフィルタパラメータが左のビデオブロックまたは上のビデオブロックに関するフィルタパラメータと同じではないことを示す場合、フィルタパラメータがシグナリングされ得る。一例では、sao_enable_flagが、SAOフィルタリングがオンになっているか、それともオフになっているかをすでに示しているので、sao_type_idxシンタックス要素は、「フィルタリングオフ」インジケータを含む必要がなく、したがって、sao_type_idxシンタックス要素を送信するときにビット節約が可能になり得る。
【0137】
[0141]いくつかの例では、ビデオを符号化するためのデバイス、たとえばビデオエンコーダ20は、イネーブルシンタックス要素に従ってビデオブロックグループに関してループフィルタを実行することができる(704)。これは、たとえば、ビデオデータを符号化するためのデバイス、たとえばビデオエンコーダ20によって実行され得る。ここでも、一例では、ビデオを符号化するためのデバイスにおける1つまたは複数のプロセッサが、符号化されたビットストリームに含めるために、ループフィルタのためのフィルタ係数セットを再構成するための情報を生成するように構成され得る。
【0138】
[0142]
図8は、本開示の1つまたは複数の例による、ビデオデコーダのための例示的な方法を示すフローチャートである。図示の例では、たとえばビデオデコーダ30のようなビデオを復号するためのデバイスが、符号化されたビットストリームにおいてイネーブルシンタックス要素を受信し得る。イネーブルシンタックス要素は、ビデオブロックグループに関してループフィルタがオンになっているか、それともオフになっているかを示すことができる(800)。一例では、ビデオデコーダ30またはビデオを復号するための他のデバイスにおける1つまたは複数のプロセッサが、符号化されたビットストリームからイネーブルシンタックス要素を復号するように構成され得る。一例では、エントロピーデコーダ80は、シンタックス要素を復号することができる。
【0139】
[0143]図示の例では、ビデオデータを復号するためのデバイス、たとえばビデオデコーダ30は、ビデオブロックグループに関してループフィルタがオンになっていることをイネーブルシンタックス要素が示したことに応答して、ビデオブロックグループに関するループフィルタのためのパラメータを識別する1つまたは複数の追加のシンタックス要素を受信することができる(802)。ここでも、一例では、ビデオを復号するためのデバイスにおける1つまたは複数のプロセッサが、ビデオブロックグループに関してループフィルタがオンになっていることをイネーブルシンタックス要素が示したことに応答して、ビデオブロックグループに関するループフィルタのためのパラメータを識別する1つまたは複数の追加のシンタックス要素を生成するように構成され得る。一例では、エントロピーデコーダ80は、シンタックス要素を生成することができる。
【0140】
[0144]いくつかの例では、ビデオを復号するためのデバイス、たとえばビデオデコーダ30は、受信されたイネーブルシンタックス要素に基づいてビデオブロックグループに関してループフィルタを実行することができる(804)。これは、たとえば、ビデオデータを復号するためのデバイス、たとえばビデオデコーダ30によって実行され得る。ここでも、一例では、ビデオを復号するためのデバイスにおける1つまたは複数のプロセッサが、符号化されたビットストリームに含めるために、ループフィルタのためのフィルタ係数セットを再構成するための情報を生成するように構成され得る。
【0141】
[0145]上記で説明した技法は、相互排他的であるように意図されておらず、2つ以上の技法がビデオエンコーダまたはビデオデコーダによって同時に実施されてよい。たとえば、ビデオエンコーダまたはビデオデコーダは、SAOフィルタユニットとALFフィルタユニットの両方など、複数のループフィルタを含むことができ、各ループフィルタは、説明した技法のうちの1つまたは複数を実施することができる。
【0142】
[0146]1つまたは複数の例では、説明された機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。各機能は、ソフトウェアで実装される場合、1つまたは複数の命令またはコードとしてコンピュータ可読媒体上に記憶されてよく、あるいはコンピュータ可読媒体を介して送信され、ハードウェアベースの処理ユニットによって実行されてよい。コンピュータ可読媒体は、たとえば、通信プロトコルに従って、ある場所から別の場所へのコンピュータプログラムの転送を可能にする任意の媒体を含むデータ記憶媒体または通信媒体などの有形媒体に対応する、コンピュータ可読記憶媒体を含み得る。このようにして、コンピュータ可読媒体は全般に、(1)非一時的である有形コンピュータ可読記憶媒体、または(2)信号もしくは搬送波などの通信媒体に対応し得る。データ記憶媒体は、本開示で説明された技法の実装のための命令、コードおよび/またはデータ構造を取り出すために、1つまたは複数のコンピュータあるいは1つまたは複数のプロセッサによってアクセスされ得る任意の利用可能な媒体であり得る。コンピュータプログラム製品は、コンピュータ可読媒体を含み得る。
【0143】
[0147]限定ではなく例として、そのようなコンピュータ可読記憶媒体は、RAM、ROM、EEPROM(登録商標)、CD−ROMまたは他の光ディスクストレージ、磁気ディスクストレージ、または他の磁気ストレージデバイス、フラッシュメモリ、あるいは、命令またはデータ構造の形態の所望のプログラムコードを記憶するために使用されコンピュータによってアクセスされ得る、任意の他の媒体を備え得る。また、いかなる接続もコンピュータ可読媒体と適切に呼ばれる。たとえば、命令が、同軸ケーブル、光ファイバケーブル、ツイストペア、デジタル加入者回線(DSL)、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバケーブル、ツイストペア、DSL、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。しかしながら、コンピュータ可読記憶媒体およびデータ記憶媒体は、接続、搬送波、信号、または他の一時媒体を含まないが、代わりに非一時的有形記憶媒体を対象とすることを理解されたい。本明細書で使用されるディスク(disk)およびディスク(disc)は、コンパクトディスク(disc)(CD)、レーザーディスク(登録商標)(disc)、光ディスク(disc)、デジタル多用途ディスク(disc)(DVD)、フロッピー(登録商標)ディスク(disk)およびブルーレイディスク(disc)を含み、ディスク(disk)は、通常、データを磁気的に再生し、ディスク(disc)は、データをレーザで光学的に再生する。上記の組合せもコンピュータ可読媒体の範囲内に含まれるべきである。
【0144】
[0148]命令は、1つまたは複数のデジタル信号プロセッサ(DSP)などの1つまたは複数のプロセッサ、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブル論理アレイ(FPGA)、あるいは他の等価な集積回路またはディスクリート論理回路によって実行され得る。したがって、本明細書で使用される「プロセッサ」という用語は、前述の構造、または本明細書で説明される技法の実装に適切な他の構造のいずれかを指し得る。加えて、いくつかの態様では、本明細書で説明された機能は、符号化および復号のために構成された専用のハードウェアおよび/またはソフトウェアモジュール内で提供されてよく、あるいは複合コーデックに組み込まれてよい。また、本技法は、1つまたは複数の回路または論理要素中で完全に実装され得る。
【0145】
[0149]本開示の技法は、ワイヤレスハンドセット、集積回路(IC)またはICのセット(たとえば、チップセット)を含む、多種多様なデバイスまたは装置において実装され得る。本開示では、開示される技法を実行するように構成されたデバイスの機能的態様を強調するために、様々なコンポーネント、モジュール、またはユニットが説明されたが、それらのコンポーネント、モジュール、またはユニットは、必ずしも異なるハードウェアユニットによる実現を必要とするとは限らない。むしろ、上で説明されたように、様々なユニットが、適切なソフトウェアおよび/またはファームウェアとともに、上で説明された1つまたは複数のプロセッサを含めて、コーデックハードウェアユニットにおいて組み合わされてもよく、または相互動作可能なハードウェアユニットの集合によって与えられてもよい。
【0146】
[0150]様々な例が説明されてきた。これらおよび他の例は、以下の特許請求の範囲内に入る。
以下に、出願当初の特許請求の範囲に記載された発明を付記する。
[発明1]
ビデオを復号する方法であって、
符号化されたビットストリームにおいて、ビデオブロックグループに関してループフィルタがオンになっているか、それともオフになっているかを示すイネーブルシンタックス要素を受信することと、
前記ビデオブロックグループに関して前記ループフィルタがオンになっていることを前記イネーブルシンタックス要素が示したことに応答して、前記ビデオブロックグループに関する前記ループフィルタのためのパラメータを識別する1つまたは複数の追加のシンタックス要素を受信することと、
前記受信されたイネーブルシンタックス要素に基づいて前記ビデオブロックグループに関して前記ループフィルタを実行することと
を備える方法。
[発明2]
前記ループフィルタが適応ループフィルタ(ALF)である、発明1に記載の方法。
[発明3]
前記ループフィルタがサンプル適応オフセット(SAO)フィルタである、発明1に記載の方法。
[発明4]
前記追加のシンタックス要素が1つまたは複数のマージシンタックス要素を備え、前記1つまたは複数のマージシンタックス要素は、前記ビデオブロックグループの少なくとも1つのブロックに関する前記ループフィルタのための前記パラメータが、以前のビデオブロックグループに関する前記ループフィルタのためのパラメータから再利用されるかどうかを示す、発明1に記載の方法。
[発明5]
前記ループフィルタがALFフィルタであり、前記方法が、
前記符号化されたビットストリームにおいて、前記ループフィルタのためのフィルタ係数セットを再構成するための情報を受信することと、
前記受信された情報に基づいて前記ループフィルタのための前記フィルタ係数セットを再構成することと
をさらに備える、発明1に記載の方法。
[発明6]
前記ループフィルタがSAOフィルタであり、前記方法が、
前記符号化されたビットストリームにおいて、前記ループフィルタのためのオフセット値を再構成するための情報を受信することと、
前記受信された情報に基づいて前記ループフィルタのための前記フィルタ係数セットを再構成することと
をさらに備える、発明1に記載の方法。
[発明7]
前記ループフィルタがSAOフィルタであり、前記方法が、
前記符号化されたビットストリームにおいて、タイプセットからSAOフィルタリングタイプを識別するSAOタイプシンタックス要素を受信すること
をさらに備える、発明1に記載の方法。
[発明8]
前記ループフィルタがALFフィルタを備え、前記方法が、
前記符号化されたビットストリームにおいて、前記符号化されたビットストリームに新しいフィルタ係数を識別する情報が存在するかどうかをシグナリングするフィルタシンタックス要素を受信することと、
前記新しいフィルタ係数を定義する前記情報を受信することと
をさらに備える、発明1に記載の方法。
[発明9]
前記符号化されたビットストリームに新しいフィルタ係数を識別する情報が存在しないことを新しいフィルタシンタックス要素がシグナリングしたことに応答して、ビットストリームにおいて1つもしくは複数のマージシンタックス要素および/またはフィルタインデックスを受信すること
をさらに備える、発明8に記載の方法。
[発明10]
前記ループフィルタがALFフィルタを備え、前記イネーブルシンタックス要素の第1の値が、前記ALFがオフになっていることを示し、前記イネーブルシンタックス要素の第2の値が、前記ALFフィルタがオンになっており、前記符号化されたビットストリームが新しいフィルタ係数を識別する情報を含むことを示し、前記イネーブルシンタックス要素の第3の値が、前記ALFフィルタがオンになっており、前記符号化されたビットストリームが新しいフィルタ係数を識別する情報を含まないことを示す、発明1に記載の方法。
[発明11]
前記イネーブルシンタックス要素の前記第3の値が、マージシンタックス要素を介して前記ALFのためのフィルタ係数がシグナリングされていることを示す、発明10に記載の方法。
[発明12]
前記イネーブルシンタックス要素の前記第3の値が、フィルタインデックスを介して前記ALFのためのフィルタ係数がシグナリングされていることを示す、発明10に記載の方法。
[発明13]
前記パラメータのうちの少なくとも1つがスケーラブルビデオコーディング(SVC)とともに使用されて、SVCビデオストリーム内のレイヤをオンおよびオフにする、発明1に記載の方法。
[発明14]
SVCベースレイヤからの前記パラメータのうちの少なくとも1つが少なくとも1つの他のレイヤにコピーされる、発明1に記載の方法。
[発明15]
前記パラメータのうちの少なくとも1つがマルチビュービデオコーディング(MVC)とともに使用されて、前記ビットストリームに深さが含まれるかどうか、または記ビットストリームに複数のビューが含まれるかどうかを示す、発明1に記載の方法。
[発明16]
前記シグナリングされたイネーブル信号およびベーステクスチャビューにおいてシグナリングされたパラメータを他のビューに、または深さフレームに再利用することをさらに備える、発明1に記載の方法。
[発明17]
現在のビデオユニットと前記現在のビデオユニットの左に隣接するビデオユニットとを受信することと、
前記受信されたシンタックス要素を解析して、前記現在のビデオユニットの左に隣接する前記ビデオユニットに関してフィルタリングタイプが有効であるかどうかを判断することと、
前記現在のビデオブロックの左に隣接する前記ビデオユニットに関して前記フィルタリングタイプが有効であると判断したことに応答して、1つまたは複数のマージシンタックス要素に基づいて前記現在のビデオユニットに関するフィルタパラメータを前記隣接する左のビデオユニットに関するフィルタパラメータから借りるかどうかを判断することと、
前記現在のビデオユニットに関する前記フィルタパラメータが前記隣接する左のビデオユニットに関する前記フィルタパラメータから借りられないと判断したことに直接応答して、前記1つまたは複数のマージシンタックス要素に基づいて、前記現在のビデオユニットに関する前記フィルタパラメータが隣接する上のビデオユニットに関するフィルタパラメータから借りられるかどうかを判断することと
をさらに備える、発明1に記載の方法。
[発明18]
現在のビデオユニットと前記現在のビデオユニットの左に隣接するビデオユニットとを受信することと、
前記受信されたシンタックス要素を解析して、前記現在のビデオユニットの左に隣接する前記ビデオユニットに関してフィルタリングタイプが有効であるかどうかを判断することと、
前記現在のビデオユニットの左に隣接する前記ビデオユニットに関して前記フィルタリングタイプが有効であると判断したことに応答して、1つまたは複数のマージシンタックス要素に基づいて前記現在のビデオユニットに関するフィルタパラメータが前記隣接する左のビデオユニットに関するフィルタパラメータから借りられるかどうかを判断することと、
前記現在のビデオユニットに関する前記フィルタパラメータが前記隣接する左のビデオユニットに関する前記フィルタパラメータから借りられないと判断したことに応答して、前記現在のビデオユニットに関する前記フィルタパラメータが隣接する上のビデオユニットに関するフィルタパラメータから借りられるかどうかを判断することなしに、前記現在のビデオユニットに関する前記フィルタパラメータを決定することと
をさらに備える、発明1に記載の方法。
[発明19]
ビデオを復号するためのデバイスであって、
符号化されたビットストリームにおいて、ビデオブロックグループに関してループフィルタがオンになっているか、それともオフになっているかを示すイネーブルシンタックス要素を受信し、
前記ビデオブロックグループに関して前記ループフィルタがオンになっていることを前記イネーブルシンタックス要素が示したことに応答して、前記ビデオブロックグループに関する前記ループフィルタのためのパラメータを識別する1つまたは複数の追加のシンタックス要素を受信し、
前記受信されたイネーブルシンタックス要素に基づいて前記ビデオブロックグループに関して前記ループフィルタを実行する
ように構成されたプロセッサを備えるデバイス。
[発明20]
前記ループフィルタが適応ループフィルタ(ALF)である、発明19に記載のデバイス。
[発明21]
前記ループフィルタがサンプル適応オフセット(SAO)フィルタである、発明19に記載のデバイス。
[発明22]
前記追加のシンタックス要素が1つまたは複数のマージシンタックス要素を備え、前記1つまたは複数のマージシンタックス要素は、前記ビデオブロックグループの少なくとも1つのブロックに関する前記ループフィルタのための前記パラメータが、以前のビデオブロックグループに関する前記ループフィルタのためのパラメータから再利用されるかどうかを示す、発明19に記載のデバイス。
[発明23]
前記ループフィルタがALFフィルタであり、前記デバイスが、前記符号化されたビットストリームにおいて、前記ループフィルタのためのフィルタ係数セットを再構成するための情報を受信し、
前記受信された情報に基づいて前記ループフィルタのための前記フィルタ係数セットを再構成する
ようにさらに構成された、発明19に記載のデバイス。
[発明24]
前記ループフィルタがSAOフィルタであり、前記デバイスが、前記符号化されたビットストリームにおいて、前記ループフィルタのためのオフセット値を再構成するための情報を受信し、前記受信された情報に基づいて前記ループフィルタのための前記フィルタ係数セットを再構成するようにさらに構成された、発明19に記載のデバイス。
[発明25]
前記ループフィルタがSAOフィルタであり、前記デバイスが、前記符号化されたビットストリームにおいて、タイプセットからSAOフィルタリングタイプを識別するSAOタイプシンタックス要素を受信するようにさらに構成された、発明19に記載のデバイス。
[発明26]
前記ループフィルタがALFフィルタを備え、前記デバイスが、
前記符号化されたビットストリームにおいて、前記符号化されたビットストリームに新しいフィルタ係数を識別する情報が存在するかどうかをシグナリングするフィルタシンタックス要素を受信し、
前記新しいフィルタ係数を定義する前記情報を受信する
ようにさらに構成された、発明19に記載のデバイス。
[発明27]
前記符号化されたビットストリームに新しいフィルタ係数を識別する情報が存在しないことを新しいフィルタシンタックス要素がシグナリングしたことに応答して、ビットストリームにおいて1つもしくは複数のマージシンタックス要素および/またはフィルタインデックスを受信する
ようにさらに構成された、発明26に記載のデバイス。
[発明28]
前記ループフィルタがALFフィルタを備え、前記イネーブルシンタックス要素の第1の値が、前記ALFがオフになっていることを示し、前記イネーブルシンタックス要素の第2の値が、前記ALFフィルタがオンになっており、前記符号化されたビットストリームが新しいフィルタ係数を識別する情報を含むことを示し、前記イネーブルシンタックス要素の第3の値が、前記ALFフィルタがオンになっており、前記符号化されたビットストリームが新しいフィルタ係数を識別する情報を含まないことを示す、発明19に記載のデバイス。
[発明29]
前記イネーブルシンタックス要素の前記第3の値が、マージシンタックス要素を介して前記ALFのためのフィルタ係数がシグナリングされていることを示す、発明28に記載のデバイス。
[発明30]
前記イネーブルシンタックス要素の前記第3の値が、フィルタインデックスを介して前記ALFのためのフィルタ係数がシグナリングされていることを示す、発明28に記載のデバイス。
[発明31]
前記パラメータのうちの少なくとも1つがスケーラブルビデオコーディング(SVC)とともに使用されて、SVCビデオストリーム内のレイヤをオンおよびオフにする、発明19に記載のデバイス。
[発明32]
SVCベースからの前記パラメータのうちの少なくとも1つが少なくとも1つの他のレイヤにコピーされる、発明19に記載のデバイス。
[発明33]
前記パラメータのうちの少なくとも1つがマルチビュービデオコーディング(MVC)とともに使用されて、前記ビットストリームに深さが含まれるかどうか、または前記ビットストリームに複数のビューが含まれるかどうかを示す、発明19に記載のデバイス。
[発明34]
前記シグナリングされたイネーブル信号およびベーステクスチャビューにおいてシグナリングされたパラメータを他のビューに、または深さフレームに再利用するようにさらに構成された、発明19に記載のデバイス。
[発明35]
前記プロセッサが、
現在のビデオユニットと前記現在のビデオユニットの左に隣接するビデオユニットとを受信し、
前記受信されたシンタックス要素を解析して、前記現在のビデオユニットの左に隣接する前記ビデオユニットに関してフィルタリングタイプが有効であるかどうかを判断し、
前記現在のビデオブロックの左に隣接する前記ビデオユニットに関して前記フィルタリングタイプが有効であるとの判断に応答して、前記1つまたは複数のマージシンタックス要素に基づいて前記現在のビデオユニットに関するフィルタパラメータが前記隣接する左のビデオユニットに関するフィルタパラメータから借りられるかどうかを判断し、
前記現在のビデオユニットに関する前記フィルタパラメータが前記隣接する左のビデオユニットに関する前記フィルタパラメータから借りられないとの判断に直接応答して、前記1つまたは複数のマージシンタックス要素に基づいて、前記現在のビデオユニットに関する前記フィルタパラメータが隣接する上のビデオユニットに関するフィルタパラメータから借りられるかどうかを判断する
ようにさらに構成された、発明19に記載のデバイス。
[発明36]
前記プロセッサが、
現在のビデオユニットと前記現在のビデオユニットの左に隣接するビデオユニットとを受信し、
前記受信されたシンタックス要素を解析して、前記現在のビデオユニットの左に隣接する前記ビデオユニットに関してフィルタリングタイプが有効であるかどうかを判断し、
前記現在のビデオユニットの左に隣接する前記ビデオユニットに関して前記フィルタリングタイプが有効であるとの判断に応答して、前記1つまたは複数のマージシンタックス要素に基づいて前記現在のビデオユニットに関するフィルタパラメータが前記隣接する左のビデオユニットに関するフィルタパラメータから借りられるかどうかを判断し、
前記現在のビデオユニットに関する前記フィルタパラメータが前記隣接する左のビデオユニットに関する前記フィルタパラメータから借りられないとの判断に応答して、前記現在のビデオユニットに関する前記フィルタパラメータが隣接する上のビデオユニットに関するフィルタパラメータから借りられるかどうかを判断することなしに、前記現在のビデオユニットに関する前記フィルタパラメータを決定する
ようにさらに構成された、発明19に記載のデバイス。
[発明37]
ビデオを符号化する方法であって、
符号化されたビットストリームに含めるために、ビデオブロックグループに関してループフィルタがオンになっているか、それともオフになっているかを示すイネーブルシンタックス要素を生成することと、
前記ビデオブロックグループに関して前記ループフィルタがオンになっていることを前記イネーブルシンタックス要素が示したことに応答して、前記ビデオブロックグループに関する前記ループフィルタのためのパラメータを識別する1つまたは複数の追加のシンタックス要素を生成することと、
前記イネーブルシンタックス要素に従って前記ビデオブロックグループに関して前記ループフィルタを実行することと
を備える方法。
[発明38]
前記ループフィルタが適応ループフィルタ(ALF)である、発明37に記載の方法。
[発明39]
前記ループフィルタがサンプル適応オフセット(SAO)フィルタである、発明37に記載の方法。
[発明40]
前記追加のシンタックス要素が1つまたは複数のマージシンタックス要素を備え、前記1つまたは複数のマージシンタックス要素は、前記ビデオブロックグループの少なくとも1つのブロックに関する前記ループフィルタのための前記パラメータが、以前のビデオブロックグループに関する前記ループフィルタのためのパラメータから再利用されるかどうかを示す、発明37に記載の方法。
[発明41]
前記ループフィルタがALFフィルタであり、前記方法が、
前記符号化されたビットストリームに含めるために、前記ループフィルタのためのフィルタ係数セットを再構成するための情報を生成すること
をさらに備える、発明37に記載の方法。
[発明42]
前記ループフィルタがSAOフィルタであり、前記方法が、
前記符号化されたビットストリームに含めるために、前記ループフィルタのためのオフセット値を再構成するための情報を生成すること
をさらに備える、発明37に記載の方法。
[発明43]
前記ループフィルタがSAOフィルタであり、前記方法が、
前記符号化されたビットストリームに含めるために、タイプセットからSAOフィルタリングタイプを識別するSAOタイプシンタックス要素を生成すること
をさらに備える、発明37に記載の方法。
[発明44]
前記ループフィルタがALFフィルタを備え、前記方法が、
前記符号化されたビットストリームに含めるために、前記符号化されたビットストリームに新しいフィルタ係数を識別する情報が存在するかどうかをシグナリングするフィルタシンタックス要素を生成することと、
前記符号化されたビットストリームに新しいフィルタ係数を識別する情報が存在することを前記フィルタシンタックス要素がシグナリングしたことに応答して、前記符号化されたビットストリームに含めるために、前記新しいフィルタ係数を定義する前記情報を生成することと
をさらに備える、発明37に記載の方法。
[発明45]
前記符号化されたビットストリームに新しいフィルタ係数を識別する情報が存在しないことを新しいフィルタシンタックス要素がシグナリングしたことに応答して、前記符号化されたビットストリームに含めるために、1つもしくは複数のマージシンタックス要素および/またはフィルタインデックスを生成すること
をさらに備える、発明44に記載の方法。
[発明46]
ビデオを符号化するためのデバイスであって、
符号化されたビットストリームに含めるために、ビデオブロックグループに関してループフィルタがオンになっているか、それともオフになっているかを示すイネーブルシンタックス要素を生成し、
前記ビデオブロックグループに関して前記ループフィルタがオンになっていることを前記イネーブルシンタックス要素が示したことに応答して、前記ビデオブロックグループに関する前記ループフィルタのためのパラメータを識別する1つまたは複数の追加のシンタックス要素を生成し、
前記イネーブルシンタックス要素に従って前記ビデオブロックグループに関して前記ループフィルタを実行する
ように構成されたプロセッサを備えるデバイス。
[発明47]
前記ループフィルタが適応ループフィルタ(ALF)である、発明46に記載のデバイス。
[発明48]
前記ループフィルタがサンプル適応オフセット(SAO)フィルタである、発明46に記載のデバイス。
[発明49]
前記追加のシンタックス要素が1つまたは複数のマージシンタックス要素を備え、前記1つまたは複数のマージシンタックス要素は、前記ビデオブロックグループの少なくとも1つのブロックに関する前記ループフィルタのための前記パラメータが、以前のビデオブロックグループに関する前記ループフィルタのためのパラメータから再利用されるかどうかを示す、発明46に記載のデバイス。
[発明50]
前記ループフィルタがALFフィルタであり、前記デバイスが、前記符号化されたビットストリームに含めるために、前記ループフィルタのためのフィルタ係数セットを再構成するための情報を生成するようにさらに構成された、発明46に記載のデバイス。
[発明51]
前記ループフィルタがSAOフィルタであり、前記デバイスが、前記符号化されたビットストリームに含めるために、前記ループフィルタのためのオフセット値を再構成するための情報を生成するようにさらに構成された、発明46に記載のデバイス。
[発明52]
前記ループフィルタがSAOフィルタであり、前記デバイスが、前記符号化されたビットストリームに含めるために、タイプセットからSAOフィルタリングタイプを識別するSAOタイプシンタックス要素を生成するようにさらに構成された、発明46に記載のデバイス。
[発明53]
前記ループフィルタがALFフィルタを備え、前記デバイスが、
前記符号化されたビットストリームに含めるために、前記符号化されたビットストリームに新しいフィルタ係数を識別する情報が存在するかどうかをシグナリングするフィルタシンタックス要素を生成し、
前記符号化されたビットストリームに新しいフィルタ係数を識別する情報が存在することを前記フィルタシンタックス要素がシグナリングしたことに応答して、前記符号化されたビットストリームに含めるために、前記情報を生成する
ようにさらに構成された、発明46に記載のデバイス。
[発明54]
前記符号化されたビットストリームに新しいフィルタ係数を識別する情報が存在しないことを新しいフィルタシンタックス要素がシグナリングしたことに応答して、前記符号化されたビットストリームに含めるために、1つもしくは複数のマージシンタックス要素および/またはフィルタインデックスを生成すること
をさらに備える、発明53に記載のデバイス。
[発明55]
実行されると、プロセッサに、
符号化されたビットストリームに含めるために、ビデオブロックグループに関してループフィルタがオンになっているか、それともオフになっているかを示すイネーブルシンタックス要素を生成させ、
前記ビデオブロックグループに関して前記ループフィルタがオンになっていることを前記イネーブルシンタックス要素が示したことに応答して、前記ビデオブロックグループに関する前記ループフィルタのためのパラメータを識別する1つまたは複数の追加のシンタックス要素を生成させ、
前記イネーブルシンタックス要素に従って前記ビデオブロックグループに関して前記ループフィルタを実行させる
命令を備えるコンピュータ可読記憶媒体。
[発明56]
前記ループフィルタが適応ループフィルタ(ALF)である、発明55に記載のコンピュータ可読記憶媒体。
[発明57]
前記ループフィルタがサンプル適応オフセット(SAO)フィルタである、発明55に記載のコンピュータ可読記憶媒体。
[発明58]
前記追加のシンタックス要素が1つまたは複数のマージシンタックス要素を備え、前記1つまたは複数のマージシンタックス要素は、前記ビデオブロックグループの少なくとも1つのブロックに関する前記ループフィルタのための前記パラメータが、以前のビデオブロックグループに関する前記ループフィルタのためのパラメータから再利用されるかどうかを示す、発明55に記載のコンピュータ可読記憶媒体。
[発明59]
前記1つまたは複数のプロセッサに、前記符号化されたビットストリームに含めるために、前記ループフィルタのためのフィルタ係数セットを再構成するための情報を生成させる命令をさらに備える、発明55に記載のコンピュータ可読記憶媒体。
[発明60]
前記1つまたは複数のプロセッサに、前記符号化されたビットストリームに含めるために、前記ループフィルタのためのオフセット値を再構成するための情報を生成させる命令をさらに備える、発明55に記載のコンピュータ可読記憶媒体。
[発明61]
ビデオを符号化するデバイスであって、
符号化されたビットストリームに含めるために、ビデオブロックグループに関してループフィルタがオンになっているか、それともオフになっているかを示すイネーブルシンタックス要素を生成するための手段と、
前記ビデオブロックグループに関して前記ループフィルタがオンになっていることを前記イネーブルシンタックス要素が示したことに応答して、前記ビデオブロックグループに関する前記ループフィルタのためのパラメータを識別する1つまたは複数の追加のシンタックス要素を生成するための手段と、
前記イネーブルシンタックス要素に従って前記ビデオブロックグループに関して前記ループフィルタを実行するための手段と
を備えるデバイス。
[発明62]
前記ループフィルタが適応ループフィルタ(ALF)である、発明61に記載のデバイス。
[発明63]
前記ループフィルタがサンプル適応オフセット(SAO)フィルタである、発明61に記載のデバイス。
[発明64]
前記追加のシンタックス要素が1つまたは複数のマージシンタックス要素を備え、前記1つまたは複数のマージシンタックス要素は、前記ビデオブロックグループの少なくとも1つのブロックに関する前記ループフィルタのための前記パラメータが、以前のビデオブロックグループに関する前記ループフィルタのためのパラメータから再利用されるかどうかを示す、発明61に記載のデバイス。
[発明65]
前記ループフィルタがALFフィルタであり、前記デバイスが、
前記符号化されたビットストリームに含めるために、前記ループフィルタのためのフィルタ係数セットを再構成するための情報を生成するための手段
をさらに備える、発明61に記載のデバイス。
[発明66]
前記ループフィルタがSAOフィルタであり、前記デバイスが、
前記符号化されたビットストリームに含めるために、前記ループフィルタのためのオフセット値を再構成するための情報を生成するための手段と
をさらに備える、発明61に記載のデバイス。
[発明67]
ビデオを復号する方法であって、
符号化されたビットストリームにおいて、1つまたは複数のビデオブロックからなるグループに関してループフィルタがオンになっているか、それともオフになっているかを示すイネーブルシンタックス要素を受信することと、
前記ビデオブロックグループに関して前記ループフィルタがオンになっていることを前記イネーブルシンタックス要素が示したことに応答して、前記ビデオブロックグループに関する前記ループフィルタのためのパラメータを識別する1つまたは複数の追加のシンタックス要素を受信することと
を備える方法。
[発明68]
ビデオをコーディングする方法であって、
現在のビデオユニットの左に隣接するビデオユニットに関してフィルタリングタイプが有効であるかどうかを判断することと、
前記現在のビデオブロックの左に隣接する前記ビデオユニットに関して前記フィルタリングタイプが有効であると判断したことに応答して、前記現在のビデオユニットに関するフィルタパラメータが前記隣接する左のビデオユニットに関するフィルタパラメータに等しいかどうかを判断することと、
前記現在のビデオユニットに関する前記フィルタパラメータが前記隣接する左のビデオユニットに関する前記フィルタパラメータに等しくないと判断したことに直接応答して、前記現在のビデオユニットに関する前記フィルタパラメータが隣接する上のビデオユニットに関するフィルタパラメータに等しいかどうかを判断することと
を備える方法。