JP2019519982A - ビデオコーディングにおける適応ループフィルタ処理における複数のフィルタの混同 - Google Patents

ビデオコーディングにおける適応ループフィルタ処理における複数のフィルタの混同 Download PDF

Info

Publication number
JP2019519982A
JP2019519982A JP2018560086A JP2018560086A JP2019519982A JP 2019519982 A JP2019519982 A JP 2019519982A JP 2018560086 A JP2018560086 A JP 2018560086A JP 2018560086 A JP2018560086 A JP 2018560086A JP 2019519982 A JP2019519982 A JP 2019519982A
Authority
JP
Japan
Prior art keywords
block
filters
current
processors
video
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2018560086A
Other languages
English (en)
Other versions
JP2019519982A5 (ja
Inventor
カルチェビチ、マルタ
ジャン、リ
チェン、ウェイ−ジュン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Qualcomm Inc filed Critical Qualcomm Inc
Publication of JP2019519982A publication Critical patent/JP2019519982A/ja
Publication of JP2019519982A5 publication Critical patent/JP2019519982A5/ja
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/117Filters, e.g. for pre-processing or post-processing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/107Selection of coding mode or of prediction mode between spatial and temporal predictive coding, e.g. picture refresh
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/172Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a picture, frame or field
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/439Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation using cascaded computational arrangements for performing a single operation, e.g. filtering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • H04N19/82Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation involving filtering within a prediction loop

Abstract

ビデオデータを符号化または復号するための装置が、ビデオデータの現在ピクチャの1つまたは複数のブロックを再構築する。現在ピクチャの1つまたは複数のブロックは、現在ピクチャの再構築されたサンプルを備える。さらに、現在ピクチャの1つまたは複数のブロックを再構築した後に、本装置は、現在ピクチャの現在ブロックに複数のフィルタの特定の関数を適用する。現在ピクチャの再構築されたサンプルを備える現在ブロック。

Description

[0001]本出願は、その各々の内容全体が参照により本明細書に組み込まれる、2016年5月16日に出願された米国仮特許出願第62/337,243号、および2016年12月30日に出願された米国仮特許出願第62/440,877号の利益を主張する。
[0002]本開示は、ビデオコーディングを実施するコンピューティングデバイスに関する。
[0003]デジタルビデオ能力は、デジタルテレビジョン、デジタルダイレクトブロードキャストシステム、ワイヤレスブロードキャストシステム、携帯情報端末(PDA)、ラップトップまたはデスクトップコンピュータ、タブレットコンピュータ、電子ブックリーダー、デジタルカメラ、デジタル記録デバイス、デジタルメディアプレーヤ、ビデオゲームデバイス、ビデオゲームコンソール、セルラーまたは衛星無線電話、いわゆる「スマートフォン」、ビデオ遠隔会議デバイス、ビデオストリーミングデバイスなどを含む、広範囲にわたるデバイスに組み込まれ得る。デジタルビデオデバイスは、MPEG−2、MPEG−4、ITU−T H.263、ITU−T H.264/MPEG−4,Part10,アドバンストビデオコーディング(AVC:Advanced Video Coding)、ITU−T H.265,高効率ビデオコーディング(HEVC:High Efficiency Video Coding)規格によって定義された規格、およびそのような規格の拡張に記載されているビデオ圧縮技法などのビデオ圧縮技法を実装する。ビデオデバイスは、そのようなビデオ圧縮技法を実装することによって、デジタルビデオ情報をより効率的に送信、受信、符号化、復号、および/または記憶し得る。
[0004]ビデオ圧縮技法は、ビデオシーケンスに固有の冗長性を低減または除去するために空間(イントラピクチャ)予測および/または時間(インターピクチャ)予測を実施する。ブロックベースのビデオコーディングでは、ビデオスライス(すなわち、ビデオフレームまたはビデオフレームの一部分)が、ツリーブロック、コーディングユニット(CU:coding unit)および/またはコーディングノードと呼ばれることもある、ビデオブロックに区分され得る。ピクチャのイントラコード化(I)スライス中のビデオブロックは、同じピクチャ中の隣接ブロック中の参照サンプルに対する空間予測を使用して符号化される。ピクチャのインターコード化(PまたはB)スライス中のビデオブロックは、同じピクチャ中の隣接ブロック中の参照サンプルに対する空間予測、または他の参照ピクチャ中の参照サンプルに対する時間予測を使用し得る。空間予測または時間予測は、コーディングされるべきブロックのための予測ブロックを生じる。残差データは、コーディングされるべき元のブロックと予測ブロックとの間のピクセル差分を表す。インターコード化ブロックは、予測ブロックを形成する参照サンプルのブロックを指す動きベクトルに従って符号化され、残差データは、コード化ブロックと予測ブロックとの間の差分を示す。イントラコード化ブロックは、イントラコーディングモードと残差データとに従って符号化される。さらなる圧縮のために、残差データは、ピクセル領域から変換領域に変換され、残差変換係数が生じ得、その残差変換係数は、次いで量子化され得る。
[0005]概して、本開示は、フィルタを送信するためのサイド情報をコーディングするための技法を含む、適応ループフィルタ処理(ALF:adaptive loop filtering)を実施するコンピューティングデバイスに関係する技法について説明する。そのような技法は、高効率ビデオコーディング(HEVC)の拡張または次世代のビデオコーディング規格など、高度ビデオコーデックのコンテキストにおいて使用され得る。そのような技法は、フィルタを送信するためのサイド情報をシグナリングする他のフィルタ処理方法において使用され得る。一例では、本開示は、ビデオデータを復号または符号化する方法であって、本方法は、コンピューティングデバイスによって、ビデオデータの現在ピクチャの1つまたは複数のブロックを再構築することと、現在ピクチャの1つまたは複数のブロックが、現在ピクチャの再構築されたサンプルを備える、現在ピクチャの1つまたは複数のブロックを再構築した後に、コンピューティングデバイスによって、現在ピクチャの現在ブロックに複数のフィルタの特定の関数を適用することと、現在ブロックが、現在ピクチャの再構築されたサンプルを備える、を備える、方法について説明する。
[0006]別の例では、本開示は、ビデオデータを復号または符号化するための装置であって、本装置が、1つまたは複数のプロセッサを備え、1つまたは複数のプロセッサは、ビデオデータの現在ピクチャの1つまたは複数のブロックを再構築することと、現在ピクチャの1つまたは複数のブロックが、現在ピクチャの再構築されたサンプルを備える、現在ピクチャの1つまたは複数のブロックを再構築した後に、現在ピクチャの現在ブロックに複数のフィルタの特定の関数を適用することと、現在ブロックが、現在ピクチャの再構築されたサンプルを備える、を行うように構成された、装置について説明する。
[0007]別の例では、本開示は、ビデオデータを復号または符号化するための装置であって、本装置が、ビデオデータの現在ピクチャの1つまたは複数のブロックを再構築するための手段と、現在ピクチャの1つまたは複数のブロックが、現在ピクチャの再構築されたサンプルを備える、現在ピクチャを再構築した後に、現在ピクチャの現在ブロックに複数のフィルタの特定の関数を適用するための手段と、現在ブロックが、現在ピクチャの再構築されたサンプルを備える、を備える、装置について説明する。
[0008]別の例では、本開示は、命令を記憶したコンピュータ可読データ記憶媒体であって、命令が、実行されたとき、ビデオデータを復号または符号化するためのデバイスを、ビデオデータの現在ピクチャの1つまたは複数のブロックを再構築することと、現在ピクチャの1つまたは複数のブロックが、現在ピクチャの再構築されたサンプルを備える、現在ピクチャの1つまたは複数のブロックを再構築した後に、現在ピクチャの現在ブロックに複数のフィルタの特定の関数を適用することと、現在ブロックが、現在ピクチャの再構築されたサンプルを備える、を行うように構成する、コンピュータ可読データ記憶媒体について説明する。
[0009]本開示の1つまたは複数の態様の詳細が添付の図面および以下の説明に記載されている。本開示で説明される技法の他の特徴、目的、および利点は、その説明、図面、および特許請求の範囲から明らかになろう。
[0010]本開示で説明される1つまたは複数の技法を利用し得る例示的なビデオ符号化および復号システムを示すブロック図。 [0011]例示的な適応ループフィルタ(ALF)フィルタサポートを示す概念図。 [0012]フィルタ係数シグナリングのための3つのカテゴリーをもつ例示的な7×7フィルタ形状を示す概念図。 [0013]本開示の技法による、複数のフィルタを重み付けするための例示的なマスクを示す概念図。 [0014]本開示の技法による、重複するブロックを含む例示的なピクチャを示すブロック図。 [0015]本開示の1つまたは複数の技法による、ピクチャのブロックが2つ以上のクラスを割り当てられた第1の例を示すブロック図。 [0016]本開示の1つまたは複数の技法による、ピクチャのブロックが2つ以上のクラスを割り当てられた第2の例を示すブロック図。 [0017]本開示で説明される1つまたは複数の技法を実装し得る例示的なビデオエンコーダを示すブロック図。 [0018]本開示で説明される1つまたは複数の技法を実装し得る例示的なビデオデコーダを示すブロック図。 [0019]本開示の1つまたは複数の技法による、ビデオデータを符号化または復号するための例示的な動作を示すフローチャート。
[0020]ビデオコーディングは、一般に、同じピクチャ中のビデオデータのすでにコーディングされたブロックからビデオデータのブロックを予測すること(すなわちイントラ予測)、または異なるピクチャ中のビデオデータのすでにコーディングされたブロックからビデオデータのブロックを予測すること(すなわちインター予測)のいずれかを伴う。いくつかの事例では、ビデオエンコーダはまた、予測ブロックを元のブロックと比較することによって残差データを計算する。したがって、残差データは、予測ブロックと元のブロックとの間の差分を表す。ビデオエンコーダは、残差データを変換および量子化し、変換および量子化された残差データを符号化ビットストリーム中でシグナリングする。ビデオデコーダは、予測ブロック単体よりもぴったり元のビデオブロックに一致する再構築されたビデオブロックを生成するために、予測ブロックに残差データを加算する。復号されたビデオの品質をさらに改善するために、ビデオデコーダは、再構築されたビデオブロックに対して1つまたは複数のフィルタ処理演算を実施することができる。これらのフィルタ処理演算の例としては、デブロッキングフィルタ処理と、サンプル適応オフセット(SAO)フィルタ処理と、適応ループフィルタ処理(ALF)とがある。これらのフィルタ処理演算のためのパラメータは、ビデオエンコーダによって決定され、符号化ビデオビットストリーム中で明示的にシグナリングされるか、またはビデオデコーダによって暗黙的に決定されるかのいずれかであり得る。
[0021]ピクチャは、1つまたは複数のサンプルアレイを備える。サンプルアレイの各々は、ルーマ成分またはクロマ成分など、異なる色成分に対応する。ビデオコーダ(たとえば、ビデオエンコーダまたはビデオデコーダ)がALFを適用したとき、ビデオコーダは、4×4ブロックなど、ピクチャのサンプルアレイを等しいサイズのブロックに区分し得る。各それぞれのブロックについて、ビデオコーダは、それぞれのブロックに許容方向値のセットからの方向値を割り当てる。さらに、各それぞれのブロックについて、ビデオコーダは、それぞれのブロックに許容アクティビティ値のセットからのアクティビティ値を割り当てる。いくつかの以前の提案では、許容方向値のセットは3つの方向値に制限され、許容アクティビティ値のセットは5つのアクティビティ値に制限される。したがって、そのような提案では、方向値およびアクティビティ値の合計15個の組合せがあり得る。
[0022]組合せの各々は、グループと呼ばれる(またはクラスと称される)ことがある。したがって、ブロックの各々は、グループのうちの1つに属すると言われ得る。グループの各々は、ALF係数のセット(またはフィルタ係数のセットと称される)に関連付けられ得る。グループに関連付けられたALF係数のセットは、シグナリングされるかまたはあらかじめ定義され得る。ビデオコーダは、ブロックのサンプルに、ブロックが属するグループに関連付けられたALF係数のセットを使用するフィルタを適用する。
[0023]許容方向値を3に、および許容アクティビティ値を5に制限することは、ALFフィルタのパフォーマンスを制限し得、これは、圧縮効率を減少させ得る。対照的に、増加された圧縮効率は、復号デバイスが、等価な量のデータをもつより高品質のビデオデータを表示することを可能にし、復号デバイスがより高速に符号化ビデオデータにアクセスすることを可能にし、またはそのような復号デバイスに他の改善を潜在的に与え得る。許容方向値を3に、および許容アクティビティ値を5に制限することは、特に、ブロックの特性が、ブロックが許容方向値のセットからの異なる方向値を割り当てられるか、または許容アクティビティ値のセットからの異なる方向値を割り当てられる、しきい値に近い事例において、ALFフィルタのパフォーマンスを制限し得る。ただし、15個を超えるグループを使用することは、ALF係数のより多くのセットがシグナリングされることを生じ得、これはまた、圧縮効率を減少させ得る。ALF係数の追加のセットを記憶およびシグナリングすることは、ハードウェア複雑さを増加させる、利用可能なメモリを低減する、要求に応答してビデオデータを表示するためにコンピューティングデバイスによって必要とされる時間を延長する、などであり得る。
[0024]本開示の技法は、これらの課題に対処し得る。たとえば、ブロックのサンプルに1つのフィルタを適用する代わりに、ビデオコーダは、ブロックのサンプルに複数のフィルタの混同(confusion)を適用し得る。本開示のコンテキストでは、「混同」という用語は、互いに使用するかまたは混合するという意味において適用される。たとえば、ビデオコーダは、ブロックのサンプルに複数のフィルタの線形関数を適用し得る。したがって、送信されるべきALFフィルタのセットの数は、増加する必要がないことがあり、同時に、複数のフィルタの混同の適用は、許容方向値および許容アクティビティ値の数によって課される可能なフィルタの数に対する制限に対処し得る。したがって、本開示で説明されるように、ビデオコーダ(すなわち、ビデオエンコーダまたはビデオデコーダ)は、ビデオデータの現在ピクチャのサンプルを再構築し得る。さらに、現在ピクチャのサンプルを再構築した後に、ビデオコーダは、現在ピクチャの現在ブロックに複数のフィルタの特定の関数を適用し得る。このようにして、ビデオコーダは、事実上、特定の関数に従って新しいフィルタを生成し、新しいフィルタを現在ブロックに適用し得る。現在ブロックは再構築されたサンプルを備える。
[0025]図1は、本開示の技法を利用し得る例示的なビデオ符号化および復号システム10を示すブロック図である。図1に示されているように、システム10は、宛先デバイス14によって後で復号されるべき符号化ビデオデータを与えるソースデバイス12を含む。特に、ソースデバイス12は、コンピュータ可読媒体16を介して宛先デバイス14にビデオデータを与える。ソースデバイス12および宛先デバイス14は、デスクトップコンピュータ、ノートブック(すなわち、ラップトップ)コンピュータ、タブレットコンピュータ、セットトップボックス、いわゆる「スマート」フォンなどの電話ハンドセット、タブレットコンピュータ、テレビジョン、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲームコンソール、ビデオストリーミングデバイスなどを含む、広範囲のコンピューティングデバイスのいずれかを備え得る。いくつかの場合には、ソースデバイス12および宛先デバイス14は、ワイヤレス通信のために装備され得る。したがって、ソースデバイス12および宛先デバイス14は、ワイヤレス通信デバイスであり得る。ソースデバイス12は、例示的なビデオ符号化デバイス(すなわち、ビデオデータを符号化するためのデバイス)である。宛先デバイス14は、例示的なビデオ復号デバイス(すなわち、ビデオデータを復号するためのデバイス)である。
[0026]図1の例では、ソースデバイス12は、ビデオソース18と、ビデオデータを記憶するように構成された記憶媒体19と、ビデオエンコーダ20と、出力インターフェース24とを含む。宛先デバイス14は、入力インターフェース26と、符号化ビデオデータを記憶するように構成された記憶媒体28と、ビデオデコーダ30と、ディスプレイデバイス32とを含む。他の例では、ソースデバイス12および宛先デバイス14は他の構成要素または構成を含む。たとえば、ソースデバイス12は、外部カメラなど、外部ビデオソースからビデオデータを受信し得る。同様に、宛先デバイス14は、内蔵ディスプレイデバイスを含むのではなく、外部ディスプレイデバイスとインターフェースし得る。
[0027]図1の図示されたシステム10は一例にすぎない。ビデオデータを処理するための技法は、任意のデジタルビデオ符号化および/または復号デバイスによって実施され得る。概して、本開示の技法はビデオ符号化デバイスによって実施されるが、本技法は、一般に「コーデック」と呼ばれるビデオエンコーダ/デコーダによっても実施され得る。ソースデバイス12および宛先デバイス14は、ソースデバイス12が宛先デバイス14への送信のためのコード化ビデオデータを生成するような、コーディングデバイスの例にすぎない。いくつかの例では、ソースデバイス12と宛先デバイス14とは、ソースデバイス12および宛先デバイス14の各々がビデオ符号化および復号構成要素を含むように、実質的に対称的に動作し得る。したがって、システム10は、たとえば、ビデオストリーミング、ビデオ再生、ビデオブロードキャスティング、またはビデオテレフォニーのための、ソースデバイス12と宛先デバイス14との間の一方向または双方向ビデオ送信をサポートし得る。
[0028]ソースデバイス12のビデオソース18は、ビデオカメラなどのビデオキャプチャデバイス、以前にキャプチャされたビデオを含んでいるビデオアーカイブ、および/またはビデオコンテンツプロバイダからビデオデータを受信するためのビデオフィードインターフェースを含み得る。さらなる代替として、ビデオソース18は、ソースビデオとしてコンピュータグラフィックスベースのデータ、または、ライブビデオ、アーカイブされたビデオ、およびコンピュータ生成ビデオの組合せを生成し得る。ソースデバイス12は、ビデオデータを記憶するように構成された1つまたは複数のデータ記憶媒体(たとえば、記憶媒体19)を備え得る。本開示で説明される技法は、概してビデオコーディングに適用可能であり得、ワイヤレスおよび/またはワイヤード適用例に適用され得る。各場合において、キャプチャされたビデオ、プリキャプチャされたビデオ、またはコンピュータ生成ビデオは、ビデオエンコーダ20によって符号化され得る。出力インターフェース24は、コンピュータ可読媒体16に、符号化ビデオ情報を出力し得る。
[0029]宛先デバイス14は、コンピュータ可読媒体16を介して復号されるべき符号化ビデオデータを受信し得る。コンピュータ可読媒体16は、ソースデバイス12から宛先デバイス14に符号化ビデオデータを移動させることが可能な任意のタイプの媒体またはデバイスを備え得る。いくつかの例では、コンピュータ可読媒体16は、ソースデバイス12が、符号化ビデオデータを宛先デバイス14にリアルタイムで直接送信することを可能にするための通信媒体を備える。符号化ビデオデータは、ワイヤレス通信プロトコルなどの通信規格に従って変調され、宛先デバイス14に送信され得る。通信媒体は、無線周波数(RF)スペクトルまたは1つまたは複数の物理伝送線路など、任意のワイヤレスまたはワイヤード通信媒体を備え得る。通信媒体は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはインターネットなどのグローバルネットワークなど、パケットベースのネットワークの一部を形成し得る。通信媒体は、ルータ、スイッチ、基地局、またはソースデバイス12から宛先デバイス14への通信を容易にするために有用であり得る任意の他の機器を含み得る。宛先デバイス14は、符号化ビデオデータおよび復号ビデオデータを記憶するように構成された1つまたは複数のデータ記憶媒体を備え得る。
[0030]いくつかの例では、符号化データは、出力インターフェース24からストレージデバイスに出力され得る。同様に、符号化データは、入力インターフェースによってストレージデバイスからアクセスされ得る。ストレージデバイスは、ハードドライブ、Blu−ray(登録商標)ディスク、DVD、CD−ROM、フラッシュメモリ、揮発性または不揮発性メモリ、あるいは符号化ビデオデータを記憶するための任意の他の好適なデジタル記憶媒体など、様々な分散されたまたはローカルにアクセスされるデータ記憶媒体のいずれかを含み得る。さらなる一例では、ストレージデバイスは、ソースデバイス12によって生成された符号化ビデオを記憶し得るファイルサーバまたは別の中間ストレージデバイスに対応し得る。宛先デバイス14は、ストリーミングまたはダウンロードを介してストレージデバイスから記憶されたビデオデータにアクセスし得る。ファイルサーバは、符号化ビデオデータを記憶し、その符号化ビデオデータを宛先デバイス14に送信することが可能な任意のタイプのサーバであり得る。例示的なファイルサーバとしては、(たとえば、ウェブサイトのための)ウェブサーバ、FTPサーバ、ネットワーク接続ストレージ(NAS)デバイス、またはローカルディスクドライブがある。宛先デバイス14は、インターネット接続を含む、任意の標準のデータ接続を通して符号化ビデオデータにアクセスし得る。これは、ファイルサーバに記憶された符号化ビデオデータにアクセスするのに好適であるワイヤレスチャネル(たとえば、Wi−Fi(登録商標)接続)、ワイヤード接続(たとえば、DSL、ケーブルモデムなど)、またはその両方の組合せを含み得る。ストレージデバイスからの符号化ビデオデータの送信は、ストリーミング送信、ダウンロード送信、またはそれらの組合せであり得る。
[0031]本技法は、オーバージエアテレビジョン放送、ケーブルテレビジョン送信、衛星テレビジョン送信、動的適応ストリーミングオーバーHTTP(DASH:dynamic adaptive streaming over)などのインターネットストリーミングビデオ送信、データ記憶媒体上に符号化されたデジタルビデオ、データ記憶媒体に記憶されたデジタルビデオの復号、または他の適用例など、様々なマルチメディア適用例のいずれかをサポートするビデオコーディングに適用され得る。いくつかの例では、システム10は、ビデオストリーミング、ビデオ再生、ビデオブロードキャスティング、および/またはビデオテレフォニーなどの適用例をサポートするために、一方向または双方向のビデオ送信をサポートするように構成され得る。
[0032]コンピュータ可読媒体16は、ワイヤレスブロードキャストまたはワイヤードネットワーク送信などの一時媒体、あるいはハードディスク、フラッシュドライブ、コンパクトディスク、デジタルビデオディスク、Blu−rayディスク、または他のコンピュータ可読媒体などの記憶媒体(すなわち、非一時的記憶媒体)を含み得る。いくつかの例では、ネットワークサーバ(図示せず)は、ソースデバイス12から符号化ビデオデータを受信し、たとえば、ネットワーク送信を介して、その符号化ビデオデータを宛先デバイス14に与え得る。同様に、ディスクスタンピング設備など、媒体製造設備のコンピューティングデバイスは、ソースデバイス12から符号化ビデオデータを受信し、その符号化ビデオデータを含んでいるディスクを生成し得る。したがって、コンピュータ可読媒体16は、様々な例において、様々な形態の1つまたは複数のコンピュータ可読媒体を含むことが理解されよう。
[0033]宛先デバイス14の入力インターフェース26は、コンピュータ可読媒体16から情報を受信する。コンピュータ可読媒体16の情報は、ビデオエンコーダ20のビデオエンコーダ20によって定義され、またビデオデコーダ30によって使用される、ブロックおよび他のコード化ユニット、たとえば、ピクチャグループ(GOP)の特性および/または処理を記述するシンタックス要素を含む、シンタックス情報を含み得る。記憶媒体28は、入力インターフェース26によって受信された符号化ビデオデータ(たとえば、ビットストリーム)など、符号化ビデオデータを記憶するように構成され得る。ディスプレイデバイス32は、復号ビデオデータをユーザに表示し、陰極線管(CRT)、液晶ディスプレイ(LCD)、プラズマディスプレイ、有機発光ダイオード(OLED)ディスプレイ、または別のタイプのディスプレイデバイスなどの様々なディスプレイデバイスのうちのいずれかを備え得る。
[0034]ビデオエンコーダ20およびビデオデコーダ30はそれぞれ、1つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ディスクリート論理、ソフトウェア、ハードウェア、ファームウェアなど、様々な好適な回路のいずれか、またはそれらの任意の組合せとして実装され得る。本技法が部分的にソフトウェアで実装されるとき、デバイスは、好適な非一時的コンピュータ可読媒体にソフトウェアの命令を記憶し、本開示の技法を実施するために1つまたは複数のプロセッサを使用してその命令をハードウェアで実行し得る。ビデオエンコーダ20およびビデオデコーダ30の各々は1つまたは複数のエンコーダまたはデコーダ中に含まれ得、そのいずれも、それぞれのデバイスにおいて複合エンコーダ/デコーダ(コーデック)の一部として統合され得る。
[0035]いくつかの例では、ビデオエンコーダ20およびビデオデコーダ30は、既存のまたは将来の規格など、ビデオコーディング規格に従って動作し得る。例示的なビデオコーディング規格は、限定はしないが、ITU−T H.261、ISO/IEC MPEG−1 Visual、ITU−T H.262またはISO/IEC MPEG−2 Visual、ITU−T H.263、ISO/IEC MPEG−4 Visual、およびそれのスケーラブルビデオコーディング(SVC)拡張とマルチビュービデオコーディング(MVC)拡張とを含む、(ISO/IEC MPEG−4 AVCとしても知られる)ITU−T H.264を含む。さらに、それの範囲およびスクリーンコンテンツコーディング拡張、3Dビデオコーディング(3D−HEVC)ならびにマルチビュー拡張(MV−HEVC)およびスケーラブル拡張(SHVC)を含む、新しいビデオコーディング規格、すなわち、高効率ビデオコーディング(HEVC)またはITU−T H.265が、ITU−Tビデオコーディングエキスパートグループ(VCEG:Video Coding Experts Group)とISO/IECモーションピクチャエキスパートグループ(MPEG:Motion Picture Experts Group)とのジョイントコラボレーションチームオンビデオコーディング(JCT−VC:Joint Collaboration Team on Video Coding)によって最近開発された。
[0036]Wangら、High Efficiency Video Coding (HEVC) Defect Report」、ITU−T SG16 WP3とISO/IEC JTC1/SC29/WG11とのジョイントコラボレーティブチームオンビデオコーディング(JCT−VC)、第14回会合、ウィーン、オーストリア、2013年7月25日〜8月2日は、HEVCのドラフト仕様であり、以下でHEVC WDと呼ばれる。HEVC WDは、http://phenix.int-evry.fr/jct/doc_end_user/documents/14_Vienna/wg11/JCTVC-N1003-v1.zipから入手可能である。HEVC規格は、2013年1月に確定された。
[0037]ITU−T VCEG(Q6/16)およびISO/IEC MPEG(JTC1/SC29/WG11)は、スクリーンコンテンツコーディングおよび高ダイナミックレンジコーディングのためのHEVCの現在の拡張および短期での拡張を含む、現在のHEVC規格の圧縮能力を著しく超える圧縮能力をもつ将来のビデオコーディング技術の規格化の潜在的ニーズを現在研究している。グループは、このエリアにおけるそれらの専門家によって提案された圧縮技術設計を評価するために、ジョイントビデオ探査チーム(JVET:Joint Video Exploration Team)として知られるジョイントコラボレーション作業においてこの探査活動に関して協働している。JVETは、2015年10月19日〜21日の間、初めて開かれた。基準ソフトウェアの最新バージョン、すなわち、ジョイント探査モデル2(JEM2:Joint Exploration Model 2)は、https://jvet.hhi.fraunhofer.de/svn/svn_HMJEMSoftware/tags/HM-16.6-JEM-2.0/からダウンロードされ得る。J.Chenら、「Algorithm description of Joint Exploration Test Model 2」、JVET−B1001、サンディエゴ、2016年3月(以下「JVET−B1001」)は、JEM2のためのアルゴリズムの説明を含んでおり、JEM2.0と呼ばれることもある。
[0038]HEVCおよび他のビデオコーディング仕様では、ビデオシーケンスは一般に一連のピクチャを含む。ピクチャは「フレーム」と呼ばれることもある。ピクチャは、SL、SCb、およびSCrと示される3つのサンプルアレイを含み得る。SLはルーマサンプルの2次元アレイ(すなわち、ブロック)である。SCbはCbクロミナンスサンプルの2次元アレイである。SCrはCrクロミナンスサンプルの2次元アレイである。クロミナンスサンプルは、本明細書では「クロマ」サンプルと呼ばれることもある。他の事例では、ピクチャはモノクロームであり得、ルーマサンプルのアレイのみを含み得る。
[0039]ピクチャの符号化表現を生成するために、ビデオエンコーダ20はコーディングツリーユニット(CTU:coding tree unit)のセットを生成し得る。CTUの各々は、ルーマサンプルのコーディングツリーブロックと、クロマサンプルの2つの対応するコーディングツリーブロックと、それらのコーディングツリーブロックのサンプルをコーディングするために使用されるシンタックス構造とを備え得る。モノクロームピクチャまたは3つの別々の色平面を有するピクチャでは、CTUは、単一のコーディングツリーブロックと、そのコーディングツリーブロックのサンプルをコーディングするために使用されるシンタックス構造とを備え得る。コーディングツリーブロックはサンプルのN×Nブロックであり得る。CTUは「ツリーブロック」または「最大コーディングユニット」(LCU:largest coding unit)と呼ばれることもある。HEVCのCTUは、H.264/AVCなど、他の規格のマクロブロックに広い意味で類似し得る。しかしながら、CTUは、必ずしも特定のサイズに限定されるとは限らず、1つまたは複数のコーディングユニット(CU)を含み得る。スライスは、ラスタ走査順序で連続的に順序付けられた整数個のCTUを含み得る。
[0040]本開示は、1つまたは複数のサンプルブロックと、サンプルの1つまたは複数のブロックのサンプルをコーディングするために使用されるシンタックス構造とを指すために、「ビデオユニット」、または「ビデオブロック」、または「ブロック」という用語を使用し得る。例示的なタイプのビデオユニットは、CTU、CU、PU、変換ユニット(TU)、マクロブロック、マクロブロック区分などを含み得る。いくつかのコンテキストでは、PUの説明は、マクロブロックまたはマクロブロック区分の説明と交換され得る。ビデオブロックの例示的なタイプとしては、コーディングツリーブロック、コーディングブロック、およびビデオデータの他のタイプのブロックがあり得る。
[0041]ビデオエンコーダ20は、ビデオデータのピクチャのブロックを符号化し得る。ビデオエンコーダ20は、ビットストリーム中に、ビデオブロックの符号化表現を含め得る。たとえば、ピクチャのコード化CTUを生成するために、ビデオエンコーダ20は、コーディングツリーブロックをコーディングブロックに分割するためにCTUのコーディングツリーブロックに対してクワッドツリー区分を再帰的に実施し得、したがって「コーディングツリーユニット」という名称がある。クワッドツリー区分では、ブロックは、4つの等しいサイズのサブブロックに分割され、それらのいずれかは、4つの等しいサイズのサブサブブロックにさらに区分され得、以下同様である。コーディングブロックはサンプルのN×Nブロックである。CUは、ルーマサンプルアレイとCbサンプルアレイとCrサンプルアレイとを有するピクチャのルーマサンプルのコーディングブロックと、そのピクチャのクロマサンプルの2つの対応するコーディングブロックと、それらのコーディングブロックのサンプルをコーディングするために使用されるシンタックス構造とを備え得る。モノクロームピクチャまたは3つの別々の色平面を有するピクチャでは、CUは、単一のコーディングブロックと、そのコーディングブロックのサンプルをコーディングするために使用されるシンタックス構造とを備え得る。
[0042]さらに、ビデオエンコーダ20はCUを符号化し得る。たとえば、CUを符号化するために、ビデオエンコーダ20は、CUのコーディングブロックを1つまたは複数の予測ブロックに区分し得る。予測ブロックは、同じ予測が適用されるサンプルの矩形(すなわち、正方形または非正方形)ブロックである。CUの予測ユニット(PU)は、ルーマサンプルの予測ブロックと、クロマサンプルの2つの対応する予測ブロックと、それらの予測ブロックを予測するために使用されるシンタックス構造とを備え得る。モノクロームピクチャまたは3つの別々の色平面を有するピクチャでは、PUは、単一の予測ブロックと、その予測ブロックを予測するために使用されるシンタックス構造とを備え得る。ビデオエンコーダ20は、CUの各PUの予測ブロック(prediction block)(たとえば、ルーマ、Cb、およびCr予測ブロック(prediction block))のための予測ブロック(predictive block)(たとえば、ルーマ、Cb、およびCr予測ブロック(predictive block))を生成し得る。
[0043]ビデオエンコーダ20は、PUのための予測ブロックを生成するためにイントラ予測またはインター予測を使用し得る。ビデオエンコーダ20がPUの予測ブロックを生成するためにイントラ予測を使用する場合、ビデオエンコーダ20は、PUを含むピクチャの復号されたサンプルに基づいてPUの予測ブロックを生成し得る。
[0044]ビデオエンコーダ20は、CUのための1つまたは複数の残差ブロックを生成し得る。たとえば、ビデオエンコーダ20はCUのためのルーマ残差ブロックを生成し得る。CUのルーマ残差ブロック中の各サンプルは、CUの予測ルーマブロックのうちの1つ中のルーマサンプルとCUの元のルーマコーディングブロック中の対応するサンプルとの間の差分を示す。さらに、ビデオエンコーダ20はCUのためのCb残差ブロックを生成し得る。CUのCb残差ブロック中の各サンプルは、CUの予測Cbブロックのうちの1つ中のCbサンプルと、CUの元のCbコーディングブロック中の対応するサンプルとの間の差分を示し得る。ビデオエンコーダ20は、CUのためのCr残差ブロックをも生成し得る。CUのCr残差ブロック中の各サンプルは、CUの予測Crブロックのうちの1つ中のCrサンプルとCUの元のCrコーディングブロック中の対応するサンプルとの間の差分を示し得る。
[0045]さらに、ビデオエンコーダ20は、CUの残差ブロック(たとえば、ルーマ残差ブロック、Cb残差ブロックおよびCr残差ブロック)を1つまたは複数の変換ブロック(たとえば、ルーマ変換ブロック、Cb変換ブロックおよびCr変換ブロック)に分解するためにクワッドツリー区分を使用し得る。言い換えれば、ビデオエンコーダ20は、残差クワッドツリー(RQT)に従って、残差ブロックを区分し得る。変換ブロックは、同じ変換が適用されるサンプルの矩形(たとえば、正方形または非正方形)ブロックである。CUの変換ユニット(TU)は、ルーマサンプルの変換ブロックと、クロマサンプルの2つの対応する変換ブロックと、変換ブロックサンプルを変換するために使用されるシンタックス構造とを備え得る。したがって、CUの各TUは、ルーマ変換ブロックとCb変換ブロックとCr変換ブロックとを有し得る。TUのルーマ変換ブロックはCUのルーマ残差ブロックのサブブロックであり得る。Cb変換ブロックはCUのCb残差ブロックのサブブロックであり得る。Cr変換ブロックはCUのCr残差ブロックのサブブロックであり得る。モノクロームピクチャまたは3つの別々の色平面を有するピクチャでは、TUは、単一の変換ブロックと、その変換ブロックのサンプルを変換するために使用されるシンタックス構造とを備え得る。
[0046]上述のように、ビデオエンコーダ20は、CUのためのRQTを表すデータを生成し得る。CUのためのRQTはノードのセットを備える。ノードの各々は残差サンプルブロックに対応する。RQTのルートノードはCUの残差ブロックに対応する。RQTのリーフノードはCUのTUの変換ブロックに対応する。RQTのノードはスプリットフラグに関連付けられ得る。ノードのスプリットフラグは、ノードがRQTの複数の子ノードを有するかどうかを示し得る。
[0047]さらに、スプリットフラグに関連付けられることに加えて、RQTのノードは、リーフノードが有意な(非0)ルーマ変換ブロックに関連付けられているかどうかを示すルーマコード化ブロックフラグ(CBF)に関連付けられる。いくつかの例では、RQTのリーフノードのみが、ルーマCBFに関連付けられる。スプリットフラグおよびルーマCBFに加えて、RQTのノードはまた、クロマCBF(たとえば、Cb CBFおよびCr CBF)に関連付けられ得る。ノードのCb CBFは、ノード、またはノードの任意の子孫ノードが、有意なCb変換ブロックに関連付けられているかどうかを示す。第2のノードがRQTのルートノードであるか、または、第2のノードを通過し、2回以上ノードを通過しない、RQTを通る第1のノードからルートノードへの経路がある場合、第1のノードは第2のノードの子孫ノードであり得る。ノードのCr CBFは、ノード、またはノードの任意の子孫ノードが、有意なCr変換ブロックに関連付けられているかどうかを示す。
[0048]ビデオエンコーダ20は、TUのための係数ブロックを生成するために、TUの変換ブロック1つまたは複数の変換を適用し得る。たとえば、ビデオエンコーダ20は、TUのためのルーマ係数ブロックを生成するために、TUのルーマ変換ブロックに1つまたは複数の変換を適用し得る。係数ブロックは変換係数の2次元アレイであり得る。変換係数はスカラー量であり得る。ビデオエンコーダ20は、TUのためのCb係数ブロックを生成するために、TUのCb変換ブロックに1つまたは複数の変換を適用し得る。ビデオエンコーダ20は、TUのためのCr係数ブロックを生成するために、TUのCr変換ブロックに1つまたは複数の変換を適用し得る。いくつかの例では、ビデオエンコーダ20は、変換ブロックへの変換の適用をスキップする。
[0049]係数ブロック(たとえば、ルーマ係数ブロック、Cb係数ブロックまたはCr係数ブロック)を生成した後に、ビデオエンコーダ20は、係数ブロックを量子化し得る。量子化は、概して、変換係数を表すために使用されるデータの量をできるだけ低減するために変換係数が量子化され、さらなる圧縮を行うプロセスを指す。いくつかの例では、量子化はスキップされる。ビデオエンコーダ20が係数ブロックを量子化した後に、ビデオエンコーダ20は、量子化変換係数を示すシンタックス要素をエントロピー符号化し得る。たとえば、ビデオエンコーダ20は、量子化変換係数を示すシンタックス要素に対してコンテキスト適応型バイナリ算術コーディング(CABAC:Context-Adaptive Binary Arithmetic Coding)を実施し得る。
[0050]ビデオエンコーダ20は、符号化ビデオデータを含むビットストリームを出力し得る。たとえば、ビットストリームは、コード化ピクチャおよび関連データの表現を形成するビットのシーケンスを備え得る。したがって、ビットストリームは、ビデオデータの符号化表現を備える。いくつかの例では、コード化ピクチャの表現は、ブロックの符号化表現を含み得る。したがって、ビデオエンコーダ20は、ビットストリーム中で、ブロックの符号化表現におけるブロックの変換係数をシグナリングし得る。いくつかの事例では、ビデオエンコーダ20は、ブロックの各変換係数をシグナリングするために、1つまたは複数のシンタックス要素を使用し得る。
[0051]ビットストリームは、ネットワークアブストラクションレイヤ(NAL)ユニットのシーケンスを備え得る。NALユニットは、NALユニット中のデータのタイプの指示と、必要に応じてエミュレーション防止ビットが点在させられたローバイトシーケンスペイロード(RBSP:raw byte sequence payload)の形態でそのデータを含んでいるバイトとを含んでいる、シンタックス構造である。NALユニットの各々は、NALユニットヘッダを含み、RBSPをカプセル化し得る。NALユニットヘッダは、NALユニットタイプコードを示すシンタックス要素を含み得る。NALユニットのNALユニットヘッダによって指定されるNALユニットタイプコードは、NALユニットのタイプを示す。RBSPは、NALユニット内にカプセル化された整数個のバイトを含んでいるシンタックス構造であり得る。いくつかの事例では、RBSPはゼロビットを含む。
[0052]ビデオデコーダ30は、ビデオエンコーダ20によって生成されたビットストリームを受信し得る。さらに、ビデオデコーダ30は、ビットストリームからシンタックス要素を取得するために、ビットストリームをパースし得る。ビデオデコーダ30は、ビットストリームから取得されたシンタックス要素に少なくとも部分的に基づいてビデオデータのピクチャを再構築し得る。ビデオデータを再構築するためのプロセスは、概して、ビデオエンコーダ20によって実施されるプロセスの逆であり得る。たとえば、ビデオデコーダ30は、現在CUのPUのための予測ブロックを決定するためにPUの動きベクトルを使用し得る。さらに、ビデオデコーダ30は、現在CUのTUの係数ブロックを逆量子化し得る。ビデオデコーダ30は、現在CUのTUの変換ブロックを再構築するために、係数ブロックに対して逆変換を実施し得る。ビデオデコーダ30は、現在CUのPUのための予測ブロックのサンプルを現在CUのTUの変換ブロックの対応するサンプルに加算することによって、現在CUのコーディングブロックを再構築し得る。ピクチャの各CUのためのコーディングブロックを再構築することによって、ビデオデコーダ30はピクチャを再構築し得る。
[0053]いくつかの例では、ビデオエンコーダ20は、マージ/スキップモードまたは高度動きベクトル予測(AMVP)モードを使用して、ブロック(たとえば、PU)の動き情報をシグナリングし得る。たとえば、HEVCでは、動きパラメータの予測のために2つのモードがあり、一方はマージ/スキップモードであり、他方はAMVPである。動き予測は、1つまたは複数の他のビデオユニットの動き情報に基づく、ビデオユニット(たとえば、PU)の動き情報の決定を備え得る。PUの動き情報は、PUの(1つまたは複数の)動きベクトルと、PUの(1つまたは複数の)参照インデックスと、1つまたは複数の予測方向インジケータとを含み得る。
[0054]ビデオエンコーダ20がマージモードを使用して現在PUの動き情報をシグナリングするとき、ビデオエンコーダ20は、マージ候補リストを生成する。言い換えれば、ビデオエンコーダ20は、動きベクトル予測子リスト構築プロセスを実施し得る。マージ候補リストは、現在PUに空間的または時間的に隣接するPUの動き情報を示すマージ候補のセットを含む。すなわち、マージモードでは、動きパラメータ(たとえば、参照インデックス、動きベクトルなど)の候補リストが構築され、候補は、空間隣接ブロックおよび時間隣接ブロックからのものであり得る。
[0055]さらに、マージモードでは、ビデオエンコーダ20は、マージ候補リストからマージ候補を選択し得、現在PUの動き情報として、選択されたマージ候補によって示される動き情報を使用し得る。ビデオエンコーダ20は、選択されたマージ候補のマージ候補リスト中の位置をシグナリングし得る。たとえば、ビデオエンコーダ20は、選択されたマージ候補の候補リスト内の位置を示すインデックス(すなわち、マージング候補インデックス)を送信することによって、選択された動きベクトルパラメータをシグナリングし得る。ビデオデコーダ30は、ビットストリームから、候補リスト中へのインデックス(すなわち、マージング候補インデックス)を取得し得る。さらに、ビデオデコーダ30は、同じマージ候補リストを生成し得、マージング候補インデックスに基づいて、選択されたマージ候補を決定し得る。ビデオデコーダ30は、次いで、現在PUのための予測ブロックを生成するために、選択されたマージ候補の動き情報を使用し得る。すなわち、ビデオデコーダ30は、候補リストインデックスに少なくとも部分的に基づいて、候補リスト中の選択された候補を決定し得、ここにおいて、選択された候補は、現在PUのための動きベクトルを指定する。このようにして、デコーダ側において、インデックスが復号されると、インデックスが指す対応するブロックのすべての動きパラメータが、現在PUによって継承され得る。
[0056]スキップモードはマージモードと同様である。スキップモードでは、ビデオエンコーダ20およびビデオデコーダ30は、マージモードにおいてビデオエンコーダ20およびビデオデコーダ30がマージ候補リストを使用するのと同様の方法でマージ候補リストを生成し、使用する。ただし、ビデオエンコーダ20がスキップモードを使用して現在PUの動き情報をシグナリングするとき、ビデオエンコーダ20は、現在PUのための残差データをシグナリングしない。したがって、ビデオデコーダ30は、残差データの使用なしに、マージ候補リスト中の選択された候補の動き情報によって示される参照ブロックに基づいて、PUのための予測ブロックを決定し得る。
[0057]AMVPモードは、ビデオエンコーダ20が候補リストを生成し得、候補リストから候補を選択し得るという点で、マージモードと同様である。ただし、ビデオエンコーダ20がAMVPモードを使用して現在PUの(Xが0または1である)RefPicListX動き情報をシグナリングするとき、ビデオエンコーダ20は、現在PUのためのRefPicListX動きベクトル予測子(MVP)インデックス(たとえば、フラグまたはインジケータ)をシグナリングすることに加えて、現在PUのためのRefPicListX動きベクトル差分(MVD)と、現在PUのためのRefPicListX参照インデックスとをシグナリングし得る。現在PUのためのRefPicListX MVPインデックスは、AMVP候補リスト中の選択されたAMVP候補の位置を示し得る。現在PUのためのRefPicListX MVDは、現在PUのRefPicListX動きベクトルと選択されたAMVP候補の動きベクトルとの間の差分を示し得る。このようにして、ビデオエンコーダ20は、RefPicListX MVPインデックスと、RefPicListX参照インデックス値と、RefPicListX MVDとをシグナリングすることによって、現在PUのRefPicListX動き情報をシグナリングし得る。言い換えれば、現在PUのための動きベクトルを表す、ビットストリーム中のデータは、参照インデックスと、候補リストへのインデックスと、MVDとを表すデータを含み得る。したがって、選定された動きベクトルは、候補リスト中へのインデックスを送信することによってシグナリングされ得る。さらに、参照インデックス値および動きベクトル差分もシグナリングされ得る。
[0058]さらに、AMVPモードを使用して現在PUの動き情報がシグナリングされるとき、ビデオデコーダ30は、ビットストリームから、現在PUのためのMVDと、MVPフラグとを取得し得る。ビデオデコーダ30は、同じAMVP候補リストを生成し得、MVPフラグに基づいて、選択されたAMVP候補を決定し得る。言い換えれば、AMVPでは、各動き仮説のための動きベクトル予測子の候補リストが、コード化参照インデックスに基づいて導出される。前述のように、このリストは、同じ参照インデックス、ならびに、時間参照ピクチャ中のコロケートされたブロックの隣接ブロックの動きパラメータに基づいて導出された時間動きベクトル予測子に関連付けられた隣接ブロックの動きベクトルを含み得る。ビデオデコーダ30は、選択されたAMVP候補によって示される動きベクトルにMVDを加算することによって、現在PUの動きベクトルを復元し得る。すなわち、ビデオデコーダ30は、選択されたAMVP候補によって示される動きベクトルとMVDとに基づいて、現在PUの動きベクトルを決定し得る。ビデオデコーダ30は、次いで、現在PUのための予測ブロックを生成するために、復元された動きベクトル、または現在PUの動きベクトルを使用し得る。
[0059]ビデオコーダ(たとえば、ビデオエンコーダ20またはビデオデコーダ30)が現在PUのためのAMVP候補リストを生成するとき、ビデオコーダは、現在PUに空間的に隣接するロケーションをカバーするPU(すなわち、空間的に近隣するPU)の動き情報に基づいて1つまたは複数のAMVP候補を導出し、現在PUに時間的に隣接するPUの動き情報に基づいて1つまたは複数のAMVP候補を導出し得る。本開示では、PU(または他のタイプのビデオユニット)は、PUの予測ブロック(またはビデオユニットの他のタイプのサンプルブロック)がロケーションを含む場合、ロケーションを「カバーする」と言われ得る。候補リストは、同じ参照インデックス、ならびに、時間参照ピクチャ中のコロケートされたブロックの隣接ブロックの動きパラメータ(すなわち、動き情報)に基づいて導出された時間動きベクトル予測子に関連付けられた隣接ブロックの動きベクトルを含み得る。現在PUに時間的に隣接するPU(すなわち、現在PUとは異なる時間インスタンス中にあるPU)の動き情報に基づくマージ候補リストまたはAMVP候補リスト中の候補は、TMVPと呼ばれることがある。TMVPは、HEVCのコーディング効率を向上させるために使用され、他のコーディングツールとは異なり得、TMVPは、復号ピクチャバッファ中の、より詳細には、参照ピクチャリスト中のフレームの動きベクトルにアクセスする必要があり得る。
[0060]上述のように、ビットストリームは、ビデオデータおよび関連データの符号化ピクチャの表現を含み得る。関連データはパラメータセットを含み得る。HEVCおよび他のビデオコーディング仕様では、NALユニットは、ビデオパラメータセット(VPS)、シーケンスパラメータセット(SPS)、およびピクチャパラメータセット(PPS)のためのRBSPをカプセル化し得る。VPSは、0個以上のコード化ビデオシーケンス(CVS)全体に適用されるシンタックス要素を備えるシンタックス構造である。SPSも、0個以上のCVS全体に適用されるシンタックス要素を備えるシンタックス構造である。SPSは、SPSがアクティブであるときにアクティブであるVPSを識別するシンタックス要素を含み得る。したがって、VPSのシンタックス要素は、SPSのシンタックス要素よりも一般的に適用可能であり得る。PPSは、0個以上のコード化ピクチャに適用されるシンタックス要素を備えるシンタックス構造である。PPSは、PPSがアクティブであるときにアクティブであるSPSを識別するシンタックス要素を含み得る。スライスのスライスヘッダは、スライスがコーディングされているときにアクティブであるPPSを示すシンタックス要素を含み得る。
[0061]ビデオコーディングの分野において、復号されたビデオ信号の品質を向上させるためにフィルタ処理を適用することは、一般的である。フィルタは、フィルタ処理されたフレームが将来のフレームの予測のために使用されないループ後フィルタとして、またはフィルタ処理されたフレームが将来のフレームを予測するために使用されるループ内フィルタとして適用され得る。たとえば、フィルタは、元の信号と復号されたフィルタ処理された信号との間の誤差を最小限に抑えることによって設計され得る。たとえば、フィルタは、元のピクチャと、同じピクチャの再構築されたバージョンとの間の誤差(たとえば、差分)を最小限に抑えるために設計され得る。ループ内適応フィルタ(たとえば、適応ループフィルタ(ALF))は、HEVCの開発段階中に評価されたが、HEVCの最終バージョン中に含まれなかった。
[0062]ALFなどのフィルタは1つまたは複数の係数を有し得る。変換係数と同様に、フィルタh(k,l)、ここで、k=−K,…,K、l=−K,…K、の係数は、以下のように量子化され、
次いでコーディングされ、ビデオデコーダ30に送られ得る。normFactorは、通常、2nに等しい。normFactorの値がより大きいほど、量子化はより正確であり、量子化されたフィルタ係数f(k,l)はより良いパフォーマンスを与える。一方、normFactorのより大きい値は、より多くのビットを送信することを必要とする係数f(k,l)を生成する。値Kは整数であり得る。
[0063]ビデオデコーダ30、またはビデオエンコーダ20の再構築ループなど、ビデオデコーダは、以下のように、再構築された画像R(i、j)に、復号されたフィルタ係数f(k,l)を適用し得る。
上記の式(1)では、iおよびjはフレーム内のピクセルの座標である。式(1)では、R(i、j)は、座標(i、j)における再構築されたピクチャのサンプルのフィルタ処理されていない値であり、
は、座標(i、j)におけるサンプルのフィルタ処理された値を示す。
[0064]JEMにおいて採用されたループ内適応ループフィルタは、J.Chenら、「Coding tools investigation for next generation video coding」、SG16−ジュネーブ−C806、2015年1月において最初に提案された。基本概念は、HM−3(T.Wiegandら、「WD3: Working Draft 3 of High-Efficiency Video Coding」、ITU−T SG16 WP3とISO/IEC JTC1/SC29/WG11とのジョイントコラボレーティブチームオンビデオコーディング(JCT−VC)、JCTVC−E603、第5回会合:ジュネーブ、スイス、2011年3月16〜23日、以下、JCTVC−E603)におけるブロックベース適応を用いたALFと同じである。
[0065]ルーマ成分の場合、全ピクチャ中の4×4ブロックが、(最高3つの方向の)1次元(1D)ラプラシアン方向と、(最高5つのアクティビティ値の)2次元(2D)ラプラシアンアクティビティとに基づいて分類される。また、分類のためのルールは「行列」として指定される。Dirbと示される、方向、およびActbと示される、量子化されないアクティビティの計算は、式(2)〜式(5)に示されており、ここで、
は、4×4ブロックの左上に対する相対座標(i、j)をもつ再構築されたピクセルまたはサンプルを示す。Actbは、JCTVC−E603に記載されているように、両端値を含む0〜4の範囲にさらに量子化され得る。
[0066]全体で、各ブロックは、15個(すなわち、5×3)のグループのうちの1つにカテゴリー分類され得、インデックスは、ブロックのDirbおよびActbの値に従って、各4×4ブロックに割り当てられる。Cによって示される、グループインデックスは、
に等しく設定され、ここにおいて、
はActbの量子化された値である。したがって、ALFパラメータの最高15個のセットが、ピクチャのルーマ成分のためにシグナリングされ得る。
[0067]シグナリングコストを節約するために、グループは、グループインデックス値に沿ってマージされ得る。すなわち、連続するグループインデックスをもつグループが、1つのマージグループにマージされ得る。各マージグループについて、ALF係数のセットがシグナリングされる。(図2に示されているような)最高3つの円形対称フィルタ形状がサポートされる。図2の例では、左部分は5×5ダイヤモンドであり、中間部分は7×7ダイヤモンドであり、右部分は切頭9×9ダイヤモンドである。ピクチャ中の両方のクロマ成分のために、ALF係数の単一のセットが適用され、5×5ダイヤモンド形状フィルタが常に使用される。
[0068]デコーダ側において、各ピクセルサンプル
がフィルタ処理され、式(6)に示されているようにピクセル値I’i,jを生じ、ここで、Lはフィルタ長を示し、fm,nはフィルタ係数を表し、oはフィルタオフセットを示す。
であり、(o=(1≪(BDF−2))およびBDFはビット深度である。現在のJEM2では、ビット深度は9に設定され、これは、フィルタ係数が[−256、256]の範囲内にあり得ることを意味する。現在の設計では、最高1つのフィルタのみが2つのクロマ成分についてサポートされる。
[0069]JEM2では、いくつかのシンタックス要素および/または方法が、限定はしないが、以下のうちの1つまたは複数を含む、フィルタ係数をシグナリングするために使用され得る。
[0070]フィルタの総数:ALFが1つのスライスのために有効にされたとき、フィルタの総数(またはマージグループの総数)が、最初にシグナリングされる。それはルーマ成分に適用される。クロマ成分の場合、1つのフィルタのみが適用され得るので、そのような情報をシグナリングする必要はない。
[0071]フィルタサポート:3つのフィルタサポートのインデックスがシグナリングされる。
[0072]フィルタインデックス:Cの非連続値を有するクラスが、マージされ、すなわち、同じフィルタを共有することがある。各クラスの1つのフラグを、それがマージされるか否かを示すためにコーディングすることによって、フィルタインデックスは導出され得る。
[0073]forceCoeff0フラグ:forceCoeff0フラグは、フィルタのうちの少なくとも1つがコーディングされるべきでないかどうかを示すために使用される。このフラグが0に等しいとき、フィルタのすべてがコーディングされるべきである。このフラグが1に等しいとき、CodedVarBinによって示される、各マージグループの1つのフラグが、フィルタがシグナリングされるべきであるか否かを示すためにさらにシグナリングされる。フィルタがシグナリングされないとき、フィルタに関連付けられたフィルタ係数のすべてが0に等しい。
[0074]予測方法:フィルタの複数のグループがシグナリングされる必要があるとき、2つの以下の技法のうちの1つが使用され得る。
− すべてのフィルタがフィルタ情報に直接コーディングされる。この場合、たとえば、フィルタ係数の値は、予測符号化技法を使用せずにビットストリーム中に符号化され得る。
− 第1のフィルタのフィルタ係数が直接コーディングされる。一方、残りのフィルタの場合、それらはフィルタ情報中に予測コーディングされる。この場合、フィルタ係数の値は、前にコーディングされたフィルタに関連付けられたフィルタ係数に対する残差値または差分によって定義され得る。前にコーディングされたフィルタは、直近のフィルタであるフィルタであり、すなわち、現在のフィルタおよびそれの予測子のフィルタインデックスは連続する。
[0075]上記の2つの方法のうちの1つの使用を示すために、マージグループの数が1よりも大きく、froceCoeff0が0に等しいとき、1つのフラグがコーディングされる。
[0076]ゴロムコーディングを用いたフィルタ係数
[0077]ある位置とDCフィルタ係数の位置との間の距離に基づいて、1つのフィルタサポートが複数のカテゴリーにスプリットされ得る。3つのカテゴリーをもつ7×7ダイヤモンドフィルタ形状のための一例が図3に示されている。言い換えれば、図3は、フィルタ係数シグナリングのための3つのカテゴリーをもつ例示的な7×7フィルタ形状を示す。図3の各正方形は、1つのフィルタ係数を示し、同じ数を含んでいる正方形が、同じゴロムパラメータを用いてコーディングされる。
[0078]フィルタ係数のシグナリングは、2つの部分を備えるか、またはいくつかの例では、2つの部分からなる。
1) ゴロムパラメータ:(kMinによって示される)ゴロムパラメータの1つの値が第1にシグナリングされ、その後に、各カテゴリーのための1ビットフラグが続く。1ビットフラグは、i(7x7ダイヤモンド対称フィルタサポートについて、両端値を含む1から3までのi)が1よりも大きいとき、前のカテゴリー(i−1)のために使用されるゴロムパラメータと比較して、またはiが1に等しいとき、kMinと比較して、カテゴリーiのパラメータが同じであるのか、1だけ増加されるのかを示す。
2) 係数:選択されたゴロムパラメータに基づいて、係数の絶対値がコーディングされ、その後に、符号フラグが続く。https://en.wikipedia.org/wiki/Golomb_codingは、ゴロムコーディングの詳細について説明している。
[0079]参照ピクチャのALF係数が記憶され、現在ピクチャのALF係数として再利用され得る。ビデオコーダ(たとえば、ビデオエンコーダ20および/またはビデオデコーダ30)は、参照ピクチャのために記憶されたALF係数を、現在ピクチャ中で使用されるALF係数として使用することを選定し得、ALF係数シグナリングをバイパスし得る。この場合、ビデオエンコーダ20は、参照ピクチャのうちの1つへのインデックスのみをシグナリングし、示された参照ピクチャの記憶されたALF係数は、現在ピクチャのために継承される。時間予測の使用を示すために、インデックスを送る前に、1つのフラグがコーディングされる。
[0080]M.Karczewiczら、「Improvements on adaptive loop filter」、ITU−T SG16 WP3とISO/IEC JTC1/SC29/WG11との探査チーム(JVET)、Doc.JVET−B0060_r1、第2回会合:サンディエゴ、米国、2016年2月20〜26日(以下JVET−B0060_r1)は、ジオメトリ変換ベースALF(GALF)を提案した。GALFでは、分類は、対角勾配を考慮に入れて修正され、ビデオコーダは、フィルタ係数にジオメトリ変換を適用し得る。ビデオコーダは、ブロックの方向性およびアクティビティの量子化された値に基づいて、各2x2ブロックを25個のクラスのうちの1つにカテゴリー分類する。JVET−B0060_r1のセクション2.1が詳細を与える。JVET−B0060_r1のセクション2.1は以下で転載される。
各2×2ブロックは、それの方向性Dおよびアクティビティの量子化された値
に基づいて、25個のクラスのうちの1つにカテゴリー分類される。
水平、垂直、および2つの対角勾配の値が、1Dラプラシアンを使用して計算される。
インデックスiおよびjは、2×2ブロック中の左上ピクセルの座標を指す。方向性Dを割り当てるために、水平および垂直勾配の最大値と最小値との比、
と、2つの対角勾配の最大値と最小値との比、
とが互いに比較され、しきい値t1およびt2のセットを用いて、
アクティビティ値Aは次のように計算される。
Aは、両端値を含む0〜4の範囲にさらに量子化され、量子化された値は、
として示される。
[0081]さらに、時間予測が利用可能でないときの(たとえば、イントラフレームのための)コーディング効率を改善するために、16個の固定フィルタのセットが各クラスに割り当てられる。固定フィルタの使用を示すために、各クラスのためのフラグがシグナリングされ、必要な場合、選定された固定フィルタのインデックスがシグナリングされる。固定フィルタが所与のクラスのために選択されたときでも、適応フィルタの係数f(k,l)は依然としてこのクラスのために送られ得、その場合、再構築された画像に適用されるフィルタの係数は、係数の両方のセットの和である。クラスの数は、異なる固定フィルタがクラスのために選定された場合でも、ビットストリーム中でシグナリングされた同じ係数f(k,l)を共有することができる。2016年2月15日に出願された、米国仮特許出願第62/295,461号、および2016年4月19日に出願された、米国仮特許出願第62/324,776号では、固定フィルタはインターコード化フレームにも適用され得る。
[0082]フィルタ係数は、様々な方法でシグナリングされるかまたは決定され得る。たとえば、固定フィルタの予測パターンおよび予測インデックスが、固定フィルタについて決定され得る。この例では、予測パターンの3つの事例、すなわち、事例1:25個のクラスのフィルタのいずれも固定フィルタから予測されないかどうか、事例2:クラスのすべてのフィルタが固定フィルタから予測される、および事例3:いくつかのクラスに関連付けられたフィルタが固定フィルタから予測され、クラスの残りに関連付けられたフィルタが固定フィルタから予測されない、が定義される。3つの事例のうちの1つを示すために、インデックスが第1にコーディングされ得る。さらに、以下が適用される。予測パターンが事例1である場合、固定フィルタのインデックスをさらにシグナリングする必要はない。さもなければ、予測パターンが事例2である場合、各クラスのための選択された固定フィルタのインデックスがシグナリングされる。さもなければ(予測パターンが事例3である)、各クラスのための1ビットが第1にシグナリングされ、固定フィルタが使用される場合、インデックスがさらにシグナリングされる。
[0083]フィルタ係数を表すために必要とされるビットの数を低減するために、異なるクラスがマージされ得る。しかしながら、JCTVC−E603の場合とは異なり、クラスの任意のセットが、Cの非連続値を有するクラスさえ、マージされ得る。どのクラスがマージされるかに関する情報は、25個のクラスの各々のためにインデックスiCを送ることによって与えられる。同じインデックスiCを有するクラスは、コーディングされる同じフィルタ係数を共有する。インデックスiCは、切頭固定長方法を用いてコーディングされる。
[0084]同様に、forceCoef0フラグも使用される。forceCoef0フラグが1に等しいとき、マージグループ(コーディングされるべきすべてのフィルタ)の各々のためのCodedVarBinによって示される1ビットフラグが、シグナリングされたフィルタ係数がすべて0であるかどうかを示すためにさらにシグナリングされる。その上、このフラグが1に等しいとき、予測コーディング、すなわち、現在のフィルタと前にコーディングされたフィルタとの間の差分をコーディングすることが無効にされる。
[0085]固定フィルタからの予測が可能にされるとき、上述のシグナリング/コーディングされるべきフィルタ(たとえば、フィルタパラメータ)は、再構築された画像に適用されるフィルタと選択された固定フィルタとの間の差分である。JVET−B0060_r1のGALF提案では、係数などの他の情報は、JEM2.0の場合と同様の方法でコーディングされる。
[0086]クラスインデックス導出: 分類は、依然として、各N×Nルーマブロックの1Dラプラシアン方向および2Dラプラシアンアクティビティに基づく。ただし、方向とアクティビティの両方の定義は、ローカル特性をより良くキャプチャするように修正された。第1に、既存のALFにおいて使用される水平勾配および垂直勾配に加えて、2つの対角勾配の値が、1Dラプラシアンを使用して計算される。以下の式(7*)〜式(10*)からわかり得るように、ターゲットピクセルをカバーする6×6ウィンドウ内のすべてのピクセルの勾配の和が、ターゲットピクセルの表される勾配として採用される。実験によれば、ウィンドウサイズ、すなわち、6×6は、複雑さとコーディングパフォーマンスとの間の良好なトレードオフを与える。各ピクセルは、gvによって示される垂直勾配、ghによって示される水平勾配、gd1によって示される135度対角勾配、およびgd2によって示される45度対角勾配をもつ、4つの勾配値に関連付けられる。
ここで、インデックスiおよびjは、2×2ブロック中の左上ピクセルの座標を指す。
[0087]方向性Dを割り当てるために、以下の式(11*)においてRh,vによって示される、水平および垂直勾配の最大値と最小値との比、および、以下の式(12*)においてRd1,d2によって示される、2つの対角勾配の最大値と最小値との比が、2つのしきい値t1およびt2を用いて互いに比較される。
[0088]水平/垂直勾配および対角勾配の検出された比を比較することによって、5つの方向モード、すなわち、両端値を含む[0,4]の範囲内のDが、以下の式(13*)において定義される。Dの値およびそれの物理的意味は、表Iで説明される。
[0089]アクティビティ値Aは次のように計算される。
Aは、両端値を含む0〜4の範囲にさらに量子化され、量子化された値は、
として示される。
[0090]したがって、提案されるGALF方式では、各N×Nブロックは、それの方向性Dおよびアクティビティの量子化された値
に基づいて、25個のクラスのうちの1つにカテゴリー分類される。
[0091]現在のALFおよびGALF設計は以下の問題を有し得る。第1に、各ブロックは、方向/アクティビティ値を量子化することによって、1つの特定のクラスインデックスを割り当てられる。したがって、同じクラス中のブロックは、依然として、量子化によりいくつかの異なる特性を有し得る。そのような情報は、現在のALF/GALF設計において使用されない。第2に、1つのブロックが1つのフィルタのみを割り当てられ、その割当ては、隣接情報を考慮せず、コーディングパフォーマンスを制限する。
[0092]本開示の技法はこれらの短所に対処し得る。以下の項目別技法が個々に適用され得る。代替的に、項目別技法の組合せが適用され得る。以下の例は、ALF分類がN×Nブロックに基づくと仮定する(ここにおいて、Nは、正値、たとえば、1、2、4である)。
[0093]フィルタ処理されるべき各N×Nブロックについて、ビデオコーダ(たとえば、ビデオエンコーダ20および/またはビデオデコーダ30)は、ただ1つのフィルタを使用するのではなく、複数のフィルタを適用する。したがって、ビデオデータの現在ピクチャを符号化した後に、ビデオエンコーダ20は現在ピクチャを再構築し得る。さらに、現在ピクチャを再構築した後に、ビデオエンコーダ20は、現在ピクチャの現在ブロックに複数のフィルタの特定の関数を適用し得る。現在ブロックは、現在ピクチャの再構築されたサンプルを備える。いくつかの事例では、ビデオエンコーダ20は、現在ピクチャのブロックをフィルタ処理する前に現在ピクチャを十分に再構築するのを待たない。そうではなく、ビデオエンコーダ20は、現在ピクチャの他の部分を依然として再構築しながら、現在ピクチャのブロックをフィルタ処理することを開始し得る。したがって、ビデオエンコーダ20は、現在ピクチャの1つまたは複数のブロック(たとえば、M×Nブロック)を再構築し得、ここで、1つまたは複数の再構築されたブロックは、現在ピクチャの再構築されたサンプルを含む。さらに、ビデオエンコーダ20は、再構築されたサンプルを備える現在ブロック(たとえば、K×Lブロック)に複数のフィルタの特定の関数を適用し得る。同様に、ビデオデコーダ30は、現在ピクチャ(または現在ピクチャの1つまたは複数のブロック)を再構築し得る。現在ピクチャ(または現在ピクチャの1つまたは複数のブロック)を再構築した後に、ビデオデコーダ30は、現在ピクチャの現在ブロックに複数のフィルタの特定の関数を適用し得る。
[0094]いくつかの例では、ビデオコーダは、これらのフィルタを混同するために、線形関数など、複数のフィルタの混同関数を適用する。したがって、現在ピクチャの1つまたは複数のブロックを再構築した後に、ビデオコーダ(たとえば、ビデオエンコーダ20またはビデオデコーダ30)は、現在ピクチャの現在ブロックに複数のフィルタの線形関数を適用し得る。たとえば、一例では、式(1)のフィルタ処理プロセスは以下に修正される。
式(7)において、
は、再構築されたピクチャの位置(i、j)におけるサンプルのフィルタ処理された値を示し、w(m)は、複数のブロックのm番目のブロックに関連付けられたm番目の重み付け係数を示し、Mは複数のブロック中のブロックの総数を示し、fmは、クラス/グループインデックスに基づく、m番目のブロックのために使用されるかまたは導出されたフィルタを示し、Kは、fmのための係数の行列の長さまたは高さの1/2を示し、fm(k、l)は、fmのための係数の行列のロケーション(k、l)における係数に対応する量子化された係数であり、R(i+k,j+l)は、ロケーション(i+k,j+l)における再構築されたピクチャのサンプルである。ビデオコーダは、本開示の他の場所で説明されるように、クラス/グループインデックスを導出するためのALFまたはGALFにおいて使用される技法によるクラス/グループインデックスに基づいて、m番目のブロックのためのフィルタを導出し得る。
[0095]いくつかの例では、1つのN×Nブロック(すなわち、現在ブロック)をフィルタ処理するために使用されるフィルタの総数は、隣接ブロックの数+1(すなわち、式(7)におけるM)に等しく、これは、テンプレートにおいて定義されているブロックの総数であり得る。テンプレートは、現在ブロックを中心とするブロックの幾何学的パターンであり得る。いくつかの例では、テンプレートは、図2および図3の形状と同様の、ダイヤモンド形状を有し得るが、図2および図3に示されている正方形は、個々のサンプルではなく、N×Nブロックである。他の例では、テンプレートは、正方形、矩形、菱形、台形、三角形など、異なる形状を有する。いくつかの例では、テンプレートは、テンプレートが、テンプレートをシグナリングすることなしにビデオエンコーダ20およびビデオデコーダ30にとって利用可能であるように、あらかじめ定義される。
[0096]いくつかの例では、ビデオコーダは、ブロックのために適用される混同関数中に含まれるフィルタの数を決定し得る。たとえば、1つのN×Nブロックをフィルタ処理するための、NUMfによって示される、フィルタの総数が定義(たとえば、あらかじめ定義またはシグナリング)され得る。NUMfは、テンプレートにおいて定義されているブロックの総数よりも小さくなり得る。NUMfがテンプレートにおいて定義されているブロックの総数よりも小さい場合、複数のフィルタ(mが0〜M−1であるfm)からNUMfフィルタを選択するために、様々なルールが使用され得る。たとえば、現在のN×Nブロックと比較して最小グループ(クラス)インデックスをもつテンプレート中の第1のNUMf隣接ブロックが選択され得る。第1のNUMf隣接ブロックに関連付けられたフィルタが、混同のために使用される。
[0097]いくつかの例では、現在ブロックに適用される複数のフィルタは、異なるクラス/グループのための選択されたフィルタとして定義され、クラス/グループは、テンプレート中の隣接サンプル/ブロックに関連付けられたものとして定義される。たとえば、テンプレート中で定義されている各それぞれのブロックについて、ビデオコーダは、それぞれのブロックのためのクラス/グループインデックスを識別し得る。ビデオコーダは、本開示の他の場所で与えられる例に従って、クラス/グループインデックスを識別し得る。さらに、この例では、現在ブロックに適用される混同関数は、それぞれのブロックのためのクラス/グループインデックスに対応するフィルタを含み得る。
[0098]いくつかの例では、テンプレートは、スライスタイプ、量子化パラメータ、時間識別子、あるいは他のピクチャによって参照されるかまたは参照されない他の情報に依存する。言い換えれば、ビデオコーダは、現在ブロックを含んでいるスライスのスライスタイプに応じて、現在ブロックのための量子化中に使用される量子化パラメータに応じて、現在ブロックを含んでいるピクチャの時間識別子に応じて、または他のファクタに応じて、現在ブロックに複数のフィルタの混同関数を適用するとき、異なるテンプレートを使用し得る。例示的なスライスタイプとしては、Iスライス、Pスライス、およびBスライスがある。Iスライスは、イントラ予測ブロックを含むが、インター予測ブロックを含まないことがある。Pスライスは、イントラ予測ブロックまたは単方向インター予測ブロックを含むが、双方向インター予測ブロックを含まないことがある。Bスライスは、イントラ予測ブロックと、単方向インター予測ブロックと、双方向インター予測ブロックとを含み得る。たとえば、ビデオコーダは、現在ブロックがIスライス中にあるのか、Pスライス中にあるのか、Bスライス中にあるのかに応じて、異なる幾何学的パターンを定義するテンプレートを使用し得る。時間識別子(TID)は、特定の時間サブレイヤに属するものとして、NALユニットを識別し得る。たとえば、より低いTIDをもつサブレイヤについて、テンプレートは、より高いTIDをもつそれらのサブレイヤと比較して、より多くの隣接ブロック/サンプルを含んでいることがある。それは、より高いTIDをもつサブレイヤが、より低いTIDをもつサブレイヤから予測され得、より低いTIDをもつサブレイヤが、すでにフィルタ処理されていることがあるためである。
[0099]いくつかの例では、テンプレートは、シーケンスパラメータヘッダ(たとえば、シーケンスパラメータセット)、ピクチャパラメータヘッダ(たとえば、ピクチャパラメータセット)、スライスヘッダ、またはビットストリーム中の別のタイプのシンタックス構造中でシグナリングされる。HEVCのコンテキストでは、シーケンスパラメータヘッダは、シーケンスパラメータセットと呼ばれることがあり、ピクチャパラメータヘッダは、ピクチャパラメータセットと呼ばれることがある。たとえば、ビデオエンコーダ20は、シーケンスパラメータヘッダ、ピクチャパラメータヘッダ、スライスヘッダ、またはビットストリーム中の別のタイプのシンタックス構造中にシンタックス要素を含み得る。この例では、シンタックス要素は、テンプレートによって定義される幾何学的パターンを示す。さらに、この例では、ビデオデコーダ30は、シーケンスパラメータヘッダ、ピクチャパラメータヘッダ、スライスヘッダ、またはデータストリーム中の他のタイプのシンタックス構造からシンタックス要素を取得し得る。この例では、ビデオデコーダ30は、テンプレートを決定するために、取得されたシンタックス要素を使用し得る。
[0100]上述のように、複数のフィルタの混同関数は、重み付け係数(たとえば、w(m))をフィルタの結果に適用し得る。一例では、混同関数によって採用される重み付け係数のシグナリングは、あらかじめ定義されたマスクに基づく。マスクは、現在ブロックを中心とするブロックの幾何学的パターンにおけるブロックへの値の割当てである。たとえば、ビデオコーダは、あらかじめ定義されたマスクに基づいて、複数のフィルタの関数中で使用される重み付け係数を決定し得る。図4は、本開示の技法による、複数のフィルタを重み付けするための例示的なマスクを示す概念図である。図4の例では、各正方形はN×Nブロックに対応する。図4の例では、同じ値(すなわち、「マスク値」)を含んでいるブロックは、同じ重み付け係数を有する。いくつかの例では、重み付け係数はマスク値に等しくない。一例として図4に示されているテンプレートをとると、同じマスク値(図4における1〜4)をもつ「ブロック」は同じ重み付け係数を示し、1つの重み付け係数のみがシグナリングされる。たとえば、図4の例では、第1の重み付け係数が、マスク値1のためにシグナリングされ得、第2の重み付け係数が、マスク値2のためにシグナリングされ得、第3の重み付け係数が、マスク値3のためにシグナリングされ得、第4の重み付け係数が、マスク値4のためにシグナリングされ得る。この事例では、第1、第2、第3、および第4の重み係数は、(各々4回シグナリングされる第1、第2、および第3の重み付け係数とは対照的に)1回のみシグナリングされる。
[0101]したがって、この例では、ビデオデコーダ30は、ビットストリームから、隣接ブロックのための重み付け係数を示すデータを取得し得る。この例では、隣接ブロックの各それぞれの隣接ブロックについて、複数のフィルタは、それぞれの隣接ブロックのためのそれぞれのフィルタを含む。さらに、この例では、ビデオデコーダ30は、複数のフィルタを備える特定の関数を再構築されたピクチャの現在ブロックに適用するとき、隣接ブロックのための重み付け係数を使用し得る。
[0102]いくつかの例では、隣接ブロックのための重み付け係数はシグナリングされ、現在ブロックのための重み付け係数はスキップされる。言い換えれば、ビデオエンコーダ20は、ビットストリーム中で現在ブロックのための重み付け係数を示すことなしに、ビットストリーム中で、隣接ブロックのための重み付け係数を示し得る。たとえば、図4の例では、ビデオエンコーダ20は、マスク値1、2、および3のための重み付け係数をシグナリングするが、マスク値4のための重み付け係数をシグナリングしないことがある。現在ブロックのための重み付け係数は、隣接ブロックのための精度およびシグナリングされた重み付け係数によって導出され得る。一例では、精度をMによって示し、すなわち、すべての重み付け係数の和は(1<<M)に等しい。現在ブロックのための重み付け係数は、(1<<M)−隣接ブロックのためのシグナリングされた重み付け係数の合計として導出され得る。
[0103]いくつかの例では、重み付け係数の差分コーディングが適用され得る。言い換えれば、ビデオコーダは、現在ブロックに適用される複数のフィルタの関数中で使用する重み付け係数を決定するために差分コーディングを使用し得る。たとえば、第1、第2、および第3の重み付け係数の値を直接シグナリングするのではなく、ビデオエンコーダ20は、第1の重み付け係数の値をシグナリングし、第1の重み付け係数と第2の重み付け係数との間の差分をシグナリングし、第2の重み付け係数と第3の重み付け係数との間の差分をシグナリングし得る。重み付け係数の差分コーディングは、重み付け係数をシグナリングするために必要とされるデータの量を低減し得る。
[0104]さらに、一例では、インデックス(たとえば、図4に示されているマスク値)の順序がさらにシグナリングされ得る。順序は昇順/降順であり得る。たとえば、第1の重み付け係数は10に等しくなり得、第2の重み付け係数は7に等しくなり得、第3の重み付け係数は2に等しくなり得る。この例では、第1に第3の重み付け係数、第2に第2の重み付け係数、第3に第1の重み付け係数をシグナリングすることがより効率的であり得る。理由を示すために、重み付け係数の各々が単項コードとして表され得ることを考慮する。したがって、第1の重み付け係数が第1にシグナリングされ、その後に、第2の重み付け係数が続き、その後に、第3の重み付け係数が続く場合、合計18個の1について、10個の1がシグナリングされ、その後に、3個の1が続き、その後に、5個の1が続くことになる。対照的に、第3の重み付け係数が第1にシグナリングされ、その後に、第2の重み付け係数が続き、その後に、第1の重み付け係数が続く場合、合計12個の1について、2個の1があり、その後に、5個の1が続き、その後に、5個の1が続くことになる。したがって、この例では、インデックスの順序は、第1のオプションの代わりに第2のオプションを使用するためにシグナリングされ得る。
[0105]いくつかの例では、ネイバーに関連付けられたすべての重み付け係数が0に等しいかどうかを示すために、1ビットがシグナリングされ得る。すべての重み付け係数が0に等しいとは限らない場合、固定長コーディングを使用してなど、重み付け係数がシグナリングされる。たとえば、ビデオエンコーダ20は、ビットストリーム中で、テンプレート中のすべての隣接ブロックのための重み付け係数が0に等しいかどうかを示すシンタックス要素をシグナリングし得る。テンプレート中の隣接ブロックのためのすべての重み付け係数が0に等しいとは限らないことをシンタックス要素が示す場合、ビデオエンコーダ20は、ビットストリーム中で、テンプレート中の隣接ブロックのうちの1つまたは複数のための重み付け係数をシグナリングし得る。同様に、ビデオデコーダ30は、ビットストリームから、テンプレート中のすべての隣接ブロックのための重み付け係数が0に等しいかどうかを示すシンタックス要素を取得し得る。テンプレート中の隣接ブロックのためのすべての重み付け係数が0に等しいとは限らないことをシンタックス要素が示すと決定したことに応答して、ビデオデコーダ30は、ビットストリームから、テンプレートの隣接ブロックのうちの1つまたは複数のための重み付け係数を示すデータを取得し得る。この例では、ビデオデコーダ30は、特定の関数を適用するために隣接ブロックに関連付けられた重み付け係数を使用し得る。
[0106]1つのブロックについて、アクティビティおよび方向行列などに基づいて、一意のグループインデックスまたはクラスインデックスが割り当てられる。このブロックにグループインデックスまたはクラスインデックスに関連付けられた1つのフィルタを適用する代わりに、複数のフィルタが適用され得、複数のフィルタは、現在ブロックのための行列の結果に基づいて選択される。一例では、現在ブロックのアクティビティ、Actb(または、量子化後、本開示の他の場所で説明される
)を仮定すると、
など、Actbの連続する値に関連付けられたフィルタは、現在ブロックをフィルタ処理するために使用される。たとえば、ビデオコーダ(たとえば、ビデオエンコーダ20またはビデオデコーダ30)は、現在ブロックのための量子化されたアクティビティレベル
と現在ブロックのための方向値Dirbとを決定し得る。この例では、ビデオコーダは、
およびDirbに関連付けられたフィルタと、
およびDirbに関連付けられたフィルタと、
およびDirbに関連付けられたフィルタとを適用することによって生成されたサンプル値の平均(たとえば、重み付き平均)として、現在ブロックのサンプルのフィルタ処理された値を決定し得る。このようにして、ビデオコーダは、現在ブロックのアクティビティレベル(たとえば、Actbまたは
)に基づいて、複数のフィルタ中の2つまたはそれ以上のフィルタを決定し得る。
[0107]いくつかの例では、1つのブロックのアクティビティDirbを仮定すると、(Dirb+1)または(Dirb−1)など、Dirbの連続する値に関連付けられたフィルタは、現在ブロックをフィルタ処理するために使用され得る。たとえば、ビデオコーダ(たとえば、ビデオエンコーダ20またはビデオデコーダ30)は、現在ブロックのための量子化されたアクティビティレベル
と現在ブロックのための方向値Dirbとを決定し得る。この例では、ビデオコーダは、
およびDirbに関連付けられたフィルタと、
および(Dirb+1)に関連付けられたフィルタと、
および(Dirb−1)に関連付けられたフィルタとを適用することによって生成されたサンプル値の平均(たとえば、重み付き平均)として、現在ブロックのサンプルのフィルタ処理された値を決定し得る。
[0108]いくつかの例では、上記の2つの方法が一緒に使用される。たとえば、ビデオコーダ(たとえば、ビデオエンコーダ20またはビデオデコーダ30)は、現在ブロックのための量子化されたアクティビティレベル
と現在ブロックのための方向値Dirbとを決定し得る。この例では、ビデオコーダは、
およびDirbに関連付けられたフィルタと、
およびDirbに関連付けられたフィルタと、
およびDirbに関連付けられたフィルタと、
および(Dirb+1)に関連付けられたフィルタと、
および(Dirb−1)に関連付けられたフィルタとを適用することによって生成されたサンプル値の平均(たとえば、重み付け平均)として、現在ブロックのサンプルのフィルタ処理された値を決定し得る。このようにして、ビデオコーダは、現在ブロックのアクティビティレベル(たとえば、
)または現在ブロックの方向値(たとえば、Dirb)のうちの少なくとも1つに基づいて、混同関数中で使用される複数のフィルタ中の2つまたはそれ以上のフィルタを決定し得る。
[0109]いくつかの例では、ビデオコーダは、複数のフィルタのうちの選択されたフィルタのためのあらかじめ定義された重み付け係数を使用して、複数のフィルタの特定の関数(すなわち、混同関数)を適用し得る。いくつかの例では、選択されたフィルタのための重み付け係数は、あらかじめ定義されるか、あるいはシーケンスパラメータヘッダ、ピクチャパラメータヘッダ、またはスライスヘッダ中でシグナリングされる。したがって、ビデオコーダは、シンタックス要素に基づいて、複数のフィルタのうちの選択されたフィルタのための重み付け係数を決定し得、ここで、シンタックス要素は、シーケンスパラメータヘッダ、ピクチャパラメータヘッダ、またはスライスヘッダのうちの1つまたは複数中に含まれ、複数のフィルタのうちの選択されたフィルタのためのあらかじめ定義された重み付け係数を使用して、複数のフィルタの特定の関数を適用する。一例では、重み付け係数は、すべてのクラスについて同じである。
[0110]いくつかの例では、重み付け係数は、グループインデックス、クラスインデックス、および/またはコーディングユニット/予測ユニット/変換ユニットに対するブロックの位置、および/またはコーディングモード(たとえば、イントラ予測またはインター予測)に依存する。たとえば、ビデオコーダは、現在ブロックがCU、PU、およびTU境界にわたる場合、重み付け係数の第1のセットを使用し得、現在ブロックがCU、PU、またはTU境界にわたらない場合、重み付け係数の第2の異なるセットを使用し得、現在ブロックがCU境界ではなくPU境界にわたる場合、重み付け係数の第3のセットを使用し得、以下同様である。別の例では、ビデオコーダは、現在ブロックがイントラ予測のみを使用して予測されたサンプルを含む場合、重み付け係数の第1のセットを使用し得、現在ブロックがインター予測のみを使用して予測されたサンプルを含む場合、重み付け係数の第2のセットを使用し得、現在ブロックがイントラ予測を使用して予測されたいくつかのサンプルとインター予測を使用して予測されたいくつかのサンプルとを含む場合、重み付け係数の第3のセットを使用し得る。したがって、これらの例によれば、ビデオコーダは、グループインデックス、クラスインデックス、コーディングユニット、予測ユニット、変換ユニットに対する現在ブロックの位置、またはコーディングモードに基づいて、複数のフィルタのうちの選択されたフィルタのための重み付け係数を決定し得る。この例では、ビデオコーダは、複数のフィルタを備える特定の関数を適用するために複数のフィルタのうちの選択されたフィルタのためのあらかじめ定義された重み付け係数を使用し得る。
[0111]いくつかの例では、重み付け係数は、ALFフィルタの時間予測が有効にされたときに継承される。たとえば、ビデオコーダは、前にコーディングされたピクチャ、たとえば、時間参照ピクチャ中のブロックをフィルタ処理するために使用される重み付け係数から、現在ブロックをフィルタ処理する際に使用するための重み付け係数を決定し得る。いくつかの例では、重み付け係数のうちの1つまたは複数が、ALFフィルタの時間予測が有効にされたときでもシグナリングされる。
[0112]一例では、重み付け係数の複数のセットが記憶され、セットのインデックスがシグナリングされ得る。たとえば、ビデオエンコーダ20およびビデオデコーダ30は、重み付け係数の複数のセットを記憶し得る。この例では、ビデオエンコーダ20は、現在ブロックとともに重み付け係数の特定のセットを使用し得、ビデオエンコーダ20は、ビットストリーム中で、重み付け係数のセットのインデックスをシグナリングし得る。さらに、この例では、ビデオデコーダ30は、ビットストリームから、重み付け係数のセットのインデックスを取得し得る。ビットストリームから取得されたインデックスに基づいて、ビデオデコーダ30は、現在ブロックとともに使用すべき重み付け係数のセットを決定し得る。重み付け係数は、テンプレート中の隣接ブロックのフィルタ、隣接するアクティビティレベルおよび/または方向値に基づいて決定されたフィルタなどに適用され得る。
[0113]一例では、重み付け係数の記憶されたセットの総数は、しきい値よりも小さく、現在の導出された重み付け係数は、重み付け係数のセットに加算され得る。たとえば、ビデオエンコーダ20およびビデオデコーダ30は、特定の数の重み付け係数セットを記憶し得る。さらに、この例では、ビデオエンコーダ20およびビデオデコーダ30は、重み付け係数の記憶されたセット中にない重み付け係数のセットを独立して導出し得る。この例では、ビデオエンコーダ20が重み付け係数の導出されたセットを選択した場合、ビデオエンコーダ20は、現在ブロックのサンプルに、複数のフィルタの関数を適用し得、ここで、フィルタは、重み付け係数の導出されたセットに従って重み付けされる。さらに、この例では、ビデオエンコーダ20は、ビットストリーム中で、特殊なインデックス値を示すシンタックス要素をシグナリングし得る。特殊なインデックス値は、重み付け係数の導出されたセットに対応する。この例では、ビデオデコーダ30は、ビットストリームから、特殊なインデックス値を示すシンタックス要素を取得し得る。したがって、この例では、ビデオデコーダ30は、現在ブロックのサンプルに、フィルタが重み付け係数の導出されたセットに従って重み付けされる複数のフィルタの関数を適用し得る。
[0114]さらに、いくつかの例では、導出された重み付け係数のうちの少なくとも1つまたは複数が、記憶された重み付け係数のあるセットとは異なるときのみ、導出された重み付け係数は、重み付け係数の新しいセットとして加算される。さらに、いくつかの例では、導出された重み付け係数と重み付け係数のセットとの差分が、記憶された重み付け係数を常に再利用する代わりにコーディングされ得る。たとえば、ビデオコーダは、重み付け係数の導出されたセットと重み付け係数の記憶されたセットとの間の差分を示す値をシグナリングし得る。いくつかの例では、ビデオエンコーダまたはデコーダは、3つの方法、すなわち、重み付け係数を直接コーディングすることまたはセットインデックスを直接コーディングすること、あるいは重み付け係数をシグナリングするための差分コーディングのうちの1つを選択し得る。
[0115]本開示の技法によれば、1つの画像またはスライスを複数の非重複ブロックにスプリットし、各ブロックについて1つの一意のクラスインデックスまたはグループインデックスを割り当てる代わりに、画像またはスライスは、重複ブロックにスプリットされる。一例では、各ブロックは、依然として、1つのクラスインデックスまたはグループインデックスを割り当てられる。ただし、この例では、2つ以上のブロック中に含まれるピクセル(たとえば、2つ以上のブロック中のピクセル)について、最終のフィルタ処理された結果を得るために複数のフィルタが適用され得る。フィルタは、ビットストリーム中でシグナリングされ、1つのピクセルをカバーするブロックのクラスインデックスまたはグループインデックスに関連付けられたフィルタである。
[0116]このようにして、ビデオエンコーダ20は、ビデオデータの現在ピクチャのサンプルを再構築し得る。現在ピクチャは、第1のブロックと第2のブロックとを含み得、ここで、第1のブロックと第2のブロックとは部分的に重複する。さらに、ビデオエンコーダ20は、第1のブロックのためのクラスと第2のブロックのためのクラスとを決定し得る。ビデオエンコーダ20は、本開示の他の場所で説明される技法に従って、第1のブロックおよび第2のブロックのためのクラスを決定し得る。この例では、ビデオエンコーダ20は、第1のブロックの各再構築されたサンプルに、第1のブロックのためのクラスに関連付けられたフィルタを適用し得る。さらに、この例では、ビデオエンコーダ20は、第1のブロックのためのクラスに関連付けられたフィルタと第2のブロックのためのクラスに関連付けられたフィルタとが、両方とも、第1のブロックと第2のブロックとの重複する部分中の再構築されたサンプルに適用されるように、第2のブロックの各再構築されたサンプルに、第2のブロックのためのクラスに関連付けられたフィルタを適用し得る。したがって、ビデオエンコーダ20は、第1のブロックと第2のブロックとの間の重複に対応する、第3のブロックに複数のフィルタの関数を適用する。同様の例が、クラスの代わりにグループを使用する。
[0117]同様に、ビデオデコーダ30は、ビデオデータの複数のピクチャの符号化表現を備えるビットストリームを受信し得る。さらに、この例では、ビデオデコーダ30は、複数のピクチャの現在ピクチャのサンプルを再構築し得る。現在ピクチャは第1のブロックと第2のブロックとを含む。この例では、第1のブロックと第2のブロックとは部分的に重複している。さらに、この例では、ビデオデコーダ30は、第1のブロックのためのクラスと第2のブロックのためのクラスとを決定し得る。ビデオデコーダ30は、本開示の他の場所で説明される技法に従って、第1のブロックおよび第2のブロックのためのクラスを決定し得る。この例では、ビデオデコーダ30は、第1のブロックの各再構築されたサンプルに、第1のブロックのためのクラスに関連付けられたフィルタを適用し得る。この例では、ビデオデコーダ30は、第1のブロックのためのクラスに関連付けられたフィルタと第2のブロックのためのクラスに関連付けられたフィルタとが、両方とも、第1のブロックと第2のブロックとの重複する部分中の再構築されたサンプルに適用されるように、第2のブロックの各再構築されたサンプルに、第2のブロックのためのクラスに関連付けられたフィルタを適用し得る。したがって、ビデオデコーダ30は、第1のブロックと第2のブロックとの間の重複に対応する、第3のブロックに複数のフィルタの関数を適用する。同様の例が、クラスの代わりにグループを使用する。
[0118]図5は、本開示の技法による、重複するブロックを含む例示的なピクチャを示すブロック図である。図5の例では、小さい正方形がサンプルに対応する。さらに、図5の例では、第1のブロック42および第2のブロック44が、それぞれ、長い破線および短い破線で概説される。図5の例では、(理解しやすいようにグレーで陰影を付けられている)4つのサンプル46が、ブロック42および44によって共有される。サンプル46は第3のブロックと見なされ得る。さらに、ビデオコーダ(たとえば、ビデオエンコーダ20またはビデオデコーダ30)は、ブロック42のための第1のグループインデックスと、ブロック44のための第2の、別個のグループインデックスとを決定し得る。ビデオコーダは、ブロック42中にのみあるサンプル48のための第1のグループインデックスに関連付けられたフィルタを適用し得、ブロック44中にのみあるサンプル50のための第2のグループインデックスに関連付けられたフィルタを適用し得る。ビデオコーダはサンプル46の各々に混同関数を適用し得る。混同関数は、第1のグループインデックスに関連付けられたフィルタと第2のグループインデックスに関連付けられたフィルタとの組合せである。
[0119]いくつかの例では、2つ以上のクラスインデックスが、現在ブロックに割り当てられ得る。そのような例では、現在ブロックに割り当てられた各クラスインデックスは、いくつかのフィルタに関連付けられ得る。いくつかの例では、分類の複数のルールが定義され得る。このようにして、ビデオエンコーダ20は、ビデオデータの現在ピクチャのサンプルを再構築し得る。この例では、ビデオエンコーダ20は、現在ピクチャの現在ブロックに複数のクラスインデックスを割り当て得る。複数のクラスインデックスの各それぞれのクラスインデックスは、複数のフィルタ中のそれぞれのフィルタに関連付けられる。さらに、ビデオエンコーダ20は、現在ブロックの再構築されたサンプルに、現在ブロックに割り当てられた複数のクラスインデックスに関連付けられたフィルタを適用し得る。この例では、フィルタを適用した後に、ビデオエンコーダ20は、ビデオデータの別のピクチャを符号化する際の参照ピクチャとして現在ピクチャを使用し得る。同様に、ビデオデコーダ30は、ビデオデータの現在ピクチャのサンプルを再構築し得る。この例では、ビデオデコーダ30は、現在ピクチャの現在ブロックに複数のクラスインデックスを割り当て得る。複数のクラスインデックスの各それぞれのクラスインデックスは、複数のフィルタ中のそれぞれのフィルタに関連付けられる。この例では、ビデオデコーダ30は、現在ブロックの再構築されたサンプルに、現在ブロックに割り当てられた複数のクラスインデックスに関連付けられたフィルタを適用し得る。
[0120]一例では、異なるウィンドウサイズ(たとえば、式(14*)における6×6ウィンドウおよび3×3ウィンドウ)が、必要な場合、現在ブロックおよびそれの隣接ブロック内の再構築されたサンプルに基づいて、クラスインデックス計算のために使用され得る。たとえば、ビデオエンコーダ20またはビデオデコーダ30など、ビデオコーダは、複数のウィンドウサイズに基づいて現在ブロックに複数のクラスインデックスを割り当て得る。
[0121]図6は、本開示の1つまたは複数の技法による、ピクチャ62のブロック60が2つ以上のクラスを割り当てられた一例を示すブロック図である。図6の例では、ブロック60は6×6ブロックである。ビデオコーダ(たとえば、ビデオエンコーダまたはビデオデコーダ)は、全体としてブロック60のためのアクティビティレベルおよび方向値を決定し得る。ブロック60のためのアクティビティレベルおよび方向値は、フィルタのセット中の特定のフィルタに対応し得る。このようにして、ビデオコーダは、ブロック60のアクティビティレベルおよび方向値に基づいてフィルタを決定し得る。さらに、ブロック60は、4つの3×3サブブロック64A、64B、64C、および64D(まとめて、「サブブロック64」)を備える。ビデオコーダは、サブブロック64の各々のためのアクティビティレベルおよび方向値を別々に決定し得る。サブブロック64の各それぞれのサブブロックについて、サブブロックのための決定されたアクティビティレベルおよび方向値はそれぞれのフィルタに対応する。このようにして、ビデオコーダは、それぞれのサブブロックのアクティビティレベルおよび方向値に基づいてフィルタを決定し得る。さらに、サブブロック64の各それぞれのサブブロックの各それぞれのサンプルについて、ビデオコーダは、それぞれのサンプルに、混同関数(すなわち、複数のフィルタの関数)を適用し得る。それぞれのサンプルに適用される混同関数は、ブロック60のアクティビティレベルおよび方向値に基づいて決定されたフィルタと、それぞれのサブブロックのアクティビティレベルおよび方向値に基づいて決定されたフィルタとの組合せである。
[0122]図7は、本開示の1つまたは複数の技法による、ピクチャ72のブロック70が2つ以上のクラスを割り当てられた第2の例を示すブロック図である。図7の例では、ブロック70は2×2ブロックである。ビデオコーダ(たとえば、ビデオエンコーダまたはビデオデコーダ)は、ブロック70をカバーする6×6ブロック(ブロック74)に基づいて、ブロック70のためのアクティビティレベルおよび方向値を決定し得る。6×6ブロックに基づくブロック70のためのアクティビティレベルおよび方向値は、フィルタのセット中の特定のフィルタに対応し得る。このようにして、ビデオコーダは、ブロック70のアクティビティレベルおよび方向値に基づいて第1のフィルタを決定し得る。さらに、ビデオコーダは、ブロック70をカバーする4×4ブロック(ブロック76)に基づいて、ブロック70のためのアクティビティレベルおよび方向値を決定し得る。このようにして、ビデオコーダは、ブロック76に基づくアクティビティレベルおよび方向値に基づいて第2のフィルタを決定し得る。さらに、ブロック70の各それぞれのサンプルについて、ビデオコーダは、それぞれのサンプルに、混同関数(すなわち、複数のフィルタの関数)を適用し得る。それぞれのサンプルに適用される混同関数は、ブロック74のアクティビティレベルおよび方向値に基づいて決定されたフィルタと、それぞれのサンプルを含んでいるブロック76のアクティビティレベルおよび方向値に基づいて決定されたフィルタとの組合せである。ビデオコーダは、ピクチャの各2×2ブロックについてこれを繰り返し得る。
[0123]いくつかの例では、現在ブロックのためのあるクラスインデックスは隣接ブロックから継承され得、他のクラスインデックスは、必要な場合、現在ブロックおよびそれの隣接ブロック内の再構築されたサンプルに基づいて導出され得る。たとえば、ビデオコーダは、現在ブロックの第1のクラスインデックスとして、隣接ブロック(たとえば、空間的に隣接するブロックまたは時間的に隣接するブロック)のクラスインデックスを使用し得、本開示の他の場所で説明されるクラスインデックス導出技法のうちの1つに従って(たとえば、式(7)〜式(15)を使用して)、現在ブロックのための第2のクラスインデックスを計算し得る。したがって、そのような例では、現在ブロックに複数のクラスインデックスを割り当てることの一部として、ビデオコーダは、現在ブロックに隣接するブロックから、複数のクラスインデックスの第1のクラスインデックスを継承し得る。さらに、ビデオデコーダは、現在ブロック内の再構築されたサンプルに基づいて、複数のクラスインデックスの第2のクラスインデックスを導出し得る。
[0124]さらに、いくつかの例では、複数の導出されたクラスインデックスに関連付けられたフィルタが、ブロックをフィルタ処理するために一緒に使用され得る。たとえば、本開示の他の場所で(たとえば、式(7)で)説明された混同関数がさらに適用され得る。これらの例では、複数のクラスインデックスに関連付けられたフィルタを適用することの一部として、ビデオコーダは、現在ブロックに、現在ブロックに割り当てられた複数のクラスインデックスに関連付けられたフィルタの特定の関数を適用し得る。
[0125]HEVCおよび他のビデオコーディング規格では、ビデオエンコーダは、各スライスについて、ALFがスライスのために有効にされるかどうかを示すためのフラグをシグナリングし得る。本開示は、このフラグをスライスレベルALF制御フラグと呼ぶことがある。ALFがスライスのために有効にされる場合、ビデオエンコーダは、いくつかのクワッドツリースプリットされたブロックがALFを使用しないか否か、および他のブロックがALFを使用するか否かを示すための、別のフラグをシグナリングし得る。本開示は、このフラグをブロックレベルALF制御フラグと呼ぶことがある。ブロックレベルALF制御フラグがオンである(すなわち、LCUのクワッドツリー内のいくつかのブロックがALFを使用し、同じLCUのクワッドツリー中の他のブロックがALFを使用しない)場合、ビデオエンコーダは、ALFを有効/無効にするためのフラグをシグナリングするために、クワッドツリーの深度値をさらにシグナリングする。対応するサイズは「ALF制御サイズ」と称される。たとえば、LCUが128×128である場合、深度値0は128×128を示し、深度値1は64×64を示し、深度値2は32×32を示し、以下同様である。クワッドツリースプリットについて、CUがALF制御サイズよりも大きいかまたはそれに等しい場合、ビデオエンコーダは、CU中のALFを有効/無効にするためのフラグをシグナリングする。さもなければ、CUがALF制御サイズよりも小さい場合、いくつかの隣接CUが、CU中のALFを有効/無効にするための1つのシグナリングされたフラグを共有するためにマージされる。
[0126]いくつかの例では、クワッドツリーの深度に従ってALFを有効/無効にするためのフラグをシグナリングする代わりに、コード化スライス中でサポートされる他のツリータイプの深度をさらに考慮することが提案される。一例では、他のツリータイプは、バイナリツリー、対称中心側トリプルツリー(symmetric center-side triple tree)、非対称ツリー、および他のタイプのツリー構造のうちの1つを含み得る。バイナリツリーでは、ブロックは、2つの等しいサイズのサブブロックに垂直方向にまたは水平方向に区分され、それらの各々は、再帰的に同様の様式で区分され得る。対称中心側トリプルツリーでは、ブロックは、サイズが等しい外側サブブロックをもつ3つのサブブロックに水平方向にまたは垂直方向に区分され、サブブロックは、再帰的に同様の様式で区分され得る。非対称ツリーでは、ブロックは、等しくないサイズの2つまたはそれ以上のサブブロックに区分され、それらは、再帰的に同様の様式でさらに区分され得る。
[0127]このようにして、ビデオエンコーダ20は、ビデオデータの現在ピクチャの符号化表現を備えるビットストリーム中に、ALFが有効にされるのか無効にされるのかを示すシンタックス要素(たとえば、ALFを有効/無効にするためのフラグ)を含め得る。この例では、シンタックス要素は、クワッドツリー以外のツリーのタイプの深度に従ってシグナリングされる。さらに、この例では、ビデオエンコーダ20は、ビデオデータの現在ピクチャのサンプルを再構築し得る。この例では、シンタックス要素に基づいてALFが有効にされたと決定したことに応答して、ビデオエンコーダ20は、現在ピクチャの再構築されたサンプルにALFを適用し得る。フィルタを適用した後に、ビデオエンコーダ20は、ビデオデータの別のピクチャを符号化する際の参照ピクチャとして現在ピクチャを使用し得る。
[0128]同様に、ビデオデコーダ30は、ビデオデータの現在ピクチャの符号化表現を備えるビットストリームから、ALFが有効にされるのか無効にされるのかを示すシンタックス要素を取得し得る。この例では、シンタックス要素は、クワッドツリー以外のツリーのタイプの深度に従ってシグナリングされる。さらに、この例では、ビデオデコーダ30は、ビデオデータの現在ピクチャのサンプルを再構築し得る。この例では、シンタックス要素に基づいて、ALFが有効にされたと決定したことに応答して、ビデオデコーダ30は、現在ピクチャの再構築されたサンプルにALFを適用し得る。
[0129]いくつかの例では、ALFを有効/無効にすることの制御は、コード化情報(たとえば、マージ/AMVPモード、コード化ブロックフラグ(cbf)、ブロックサイズなど)をさらに考慮し得、条件が満たされる(たとえば、cbfが0に等しい)場合、有効化/無効化フラグをシグナリングする必要がない。たとえば、ビデオエンコーダ20は、ブロックがマージモードを使用してコーディングされるとき、ブロックのためのALF有効化/無効化フラグをシグナリングしないことがあるが、ブロックがAMVPモードを使用してコーディングされるとき、ブロックのためのALF有効化/無効化フラグをシグナリングし得る。別の例では、ビデオエンコーダ20は、ブロックのサイズが特定のしきい値(たとえば、8×8、16×16など)よりも大きいかまたはそれに等しいとき、ブロックのためのALF有効化/無効化フラグをシグナリングし得るが、ブロックのサイズが特定のしきい値よりも小さいとき、ブロックのための有効化/無効化フラグをシグナリングしない。
[0130]このようにして、ビデオエンコーダ20は、コード化情報に基づいて、ALFが有効にされるのか無効にされるのかを示すシンタックス要素をビットストリーム中に含めるべきかどうかを決定し得る。さらに、この例では、ビデオエンコーダ20は、ビデオデータの現在ピクチャのサンプルを再構築し得る。この例では、ALFが有効にされたと決定したことに応答して、ビデオエンコーダ20は、現在ピクチャの再構築されたサンプルにALFを適用し得る。フィルタを適用した後に、ビデオエンコーダ20は、ビデオデータの別のピクチャを符号化する際の参照ピクチャとして現在ピクチャを使用し得る。同様に、ビデオデコーダ30は、コード化情報に基づいて、ALFが有効にされるのか無効にされるのかを示すシンタックス要素をビットストリームが含むかどうかを決定し得る。さらに、この例では、ビデオデコーダ30は、ビデオデータの現在ピクチャのサンプルを再構築し得る。この例では、ALFが有効にされたと決定したことに応答して、ビデオデコーダ30は、現在ピクチャの再構築されたサンプルにALFを適用し得る。ALFを適用することは、再構築されたピクチャのブロックに複数のフィルタの関数を適用することを備え得る。これらの例では、コード化情報は、マージ/高度動きベクトル予測(AMVP)モード、コード化ブロックフラグ(CBF)、またはブロックサイズビデオコーダ(たとえば、ビデオエンコーダ20またはビデオデコーダ30)のうちの少なくとも1つを含み得る。さらに、いくつかの例では、ビデオコーダは、シンタックス要素に基づいて、ALFが有効にされるかどうかを決定し得る。いくつかの例では、ビデオコーダは、コード化情報に基づいて、ALFが有効にされるかどうかを決定し得る。
[0131]いくつかの例では、フィルタ処理プロセスは、除算演算なしに、シフト演算、乗算演算および和演算を用いて実装される。たとえば、フィルタのビット深度をBDFによって、重み付け係数のビット深度をBDwによって、再構築されたサンプルのビット深度をBDSによって示す。MaxBDによって定義されるターゲット内部ビット深度を仮定する。フィルタ処理プロセスを実施するために以下の方法が適用され得る。
[0132]重み付け係数は、現在ピクセルに適用される選択されたフィルタのうちの1つを用いて各内部サンプルに適用される。内部サンプルは、m番目のフィルタを適用する値、すなわち、
を示す。丸めまたはオフセットをもつ丸めが、フィルタ処理プロセスの最後に1回のみ呼び出される。この例では、式(7)は次のように書き直され得る。
一例では、オフセットは、(1<<(BDF−2+BDw))に等しく設定される。いくつかの実装形態では、この例は、(BDF+BDw+BDs)がMaxBDよりも大きくないときのみ有効にされる。
[0133]いくつかの例では、すべての重み付け係数および選択された複数のフィルタに基づいて内部フィルタが導出される。内部フィルタは、次いで、最終の再構築されたピクセルを導出するために現在ピクセルに適用される。丸めまたはオフセットをもつ丸めが、2回呼び出され得る。一例では、オフセットをもつ/もたない丸めは、選択された複数のフィルタを重み付けすることを用いて内部フィルタを導出するときに呼び出される。オフセットをもつ/もたない別の丸めが、フィルタ処理プロセスの最後に呼び出される。この例では、式(7)は次のように書き直され得る。
一例では、S0は(BDF+BDw+BDs−MaxBD)として定義され、S1は(BDF−1)として定義される。一例では、O0は(S0>>1)に等しく設定され、O1は(S1>>1)に等しく設定される。いくつかの例では、この例は、(BDF+BDw+BDs)がMaxBDよりも大きいときのみ有効にされる。
[0134]図8は、本開示で説明される技法を実装し得る例示的なビデオエンコーダ20を示すブロック図である。ビデオエンコーダ20は、ビデオスライス内のビデオブロックのイントラコーディングおよびインターコーディングを実施し得る。イントラコーディングは、所与のビデオフレームまたはピクチャ内のビデオの空間冗長性を低減または除去するために空間予測に依拠する。インターコーディングは、ビデオシーケンスの隣接フレームまたはピクチャ内のビデオの時間冗長性を低減または除去するために時間予測に依拠する。イントラモード(Iモード)は、いくつかの空間ベース圧縮モードのいずれかを指すことがある。単方向予測(Pモード)または双方向予測(Bモード)などのインターモードは、いくつかの時間ベース圧縮モードのいずれかを指すことがある。
[0135]図8の例では、ビデオエンコーダ20は、ビデオデータメモリ133と、区分ユニット135と、予測処理ユニット141と、加算器150と、変換処理ユニット152と、量子化ユニット154と、エントロピー符号化ユニット156とを含む。予測処理ユニット141は、動き推定ユニット(MEU)142と、動き補償ユニット(MCU)144と、イントラ予測ユニット146とを含む。ビデオブロック再構築のために、ビデオエンコーダ20はまた、逆量子化ユニット158と、逆変換処理ユニット160と、加算器162と、ALFユニット164と、復号ピクチャバッファ(DPB:decoded picture buffer)166とを含む。
[0136]図8に示されているように、ビデオエンコーダ20は、ビデオデータを受信し、受信されたビデオデータをビデオデータメモリ133に記憶する。ビデオデータメモリ133は、ビデオエンコーダ20の構成要素によって符号化されるべきビデオデータを記憶し得る。ビデオデータメモリ133に記憶されるビデオデータは、たとえば、ビデオソース18から取得され得る。DPB166は、たとえば、イントラコーディングモードまたはインターコーディングモードでビデオエンコーダ20によってビデオデータを符号化する際に使用するための参照ビデオデータを記憶する参照ピクチャメモリであり得る。ビデオデータメモリ133およびDPB166は、同期DRAM(SDRAM)を含むダイナミックランダムアクセスメモリ(DRAM)、磁気抵抗RAM(MRAM)、抵抗性RAM(RRAM(登録商標))、または他のタイプのメモリデバイスなど、様々なメモリデバイスのいずれかによって形成され得る。ビデオデータメモリ133およびDPB166は、同じメモリデバイスまたは別々のメモリデバイスによって与えられ得る。様々な例では、ビデオデータメモリ133は、ビデオエンコーダ20の他の構成要素とともにオンチップであるか、またはそれらの構成要素に対してオフチップであり得る。
[0137]区分ユニット135はビデオデータメモリ133からビデオデータを取り出し、ビデオデータをビデオブロックに区分する。この区分はまた、たとえば、LCUおよびCUのクワッドツリー構造に従って、スライス、タイル、または他のより大きいユニットへの区分、ならびにビデオブロック区分を含み得る。ビデオエンコーダ20は、概して、符号化されるべきビデオスライス内のビデオブロックを符号化する構成要素を示している。スライスは、複数のビデオブロックに(および、場合によっては、タイルと呼ばれるビデオブロックのセットに)分割され得る。予測処理ユニット141は、誤差結果(たとえば、コーディングレートおよびひずみレベル)に基づいて現在ビデオブロックについて、複数のイントラコーディングモードのうちの1つ、または複数のインターコーディングモードのうちの1つなど、複数の可能なコーディングモードのうちの1つを選択し得る。予測処理ユニット141は、得られたイントラコード化ブロックまたはインターコード化ブロックを、残差ブロックデータを生成するために加算器150に与え、参照ピクチャとして使用するための符号化ブロックを再構築するために加算器162に与え得る。
[0138]予測処理ユニット141内のイントラ予測ユニット146は、空間圧縮を行うために、コーディングされるべき現在ブロックと同じフレームまたはスライス中の1つまたは複数の隣接ブロックに対して現在ビデオブロックのイントラ予測コーディングを実施し得る。予測処理ユニット141内の動き推定ユニット142および動き補償ユニット144は、時間圧縮を行うために、1つまたは複数の参照ピクチャ中の1つまたは複数の予測ブロックに対して現在ビデオブロックのインター予測コーディングを実施する。
[0139]動き推定ユニット142は、ビデオシーケンスの所定のパターンに従ってビデオスライスのためのインター予測モードを決定するように構成され得る。所定のパターンは、シーケンス中のビデオスライスをPスライスまたはBスライスとして指定し得る。動き推定ユニット142と動き補償ユニット144とは、高度に統合され得るが、概念的な目的のために別々に示されている。動き推定ユニット142によって実施される動き推定は、ビデオブロックの動きを推定する動きベクトルを生成するプロセスである。動きベクトルは、たとえば、参照ピクチャ内の予測ブロックに対する現在ビデオフレームまたはピクチャ内のビデオブロックのPUの変位を示し得る。
[0140]予測ブロックは、絶対差分和(SAD)、2乗差分和(SSD)、または他の差分メトリックによって決定され得るピクセル差分に関して、コーディングされるべきビデオブロックのPUにぴったり一致することがわかるブロックである。いくつかの例では、ビデオエンコーダ20は、DPB166に記憶された参照ピクチャのサブ整数ピクセル位置の値を計算し得る。たとえば、ビデオエンコーダ20は、参照ピクチャの1/4ピクセル位置、1/8ピクセル位置、または他の分数ピクセル位置の値を補間し得る。したがって、動き推定ユニット142は、フルピクセル位置と分数ピクセル位置とに対して動き探索を実施し、分数ピクセル精度で動きベクトルを出力し得る。
[0141]動き推定ユニット142は、PUの位置を参照ピクチャの予測ブロックの位置と比較することによって、インターコード化スライス中のビデオブロックのPUのための動きベクトルを計算する。参照ピクチャは、第1の参照ピクチャリスト(リスト0)または第2の参照ピクチャリスト(リスト1)から選択され得、それらの参照ピクチャリストの各々は、DPB166に記憶された1つまたは複数の参照ピクチャを識別する。動き推定ユニット142は、計算された動きベクトルをエントロピー符号化ユニット156と動き補償ユニット144とに送る。
[0142]動き補償ユニット144によって実施される動き補償は、動き推定によって決定された動きベクトルに基づいて予測ブロックをフェッチまたは生成すること、場合によってはサブピクセル精度への補間を実施することを伴い得る。現在ビデオブロックのPUのための動きベクトルを受信すると、動き補償ユニット144は、動きベクトルが参照ピクチャリストのうちの1つにおいて指す予測ブロックの位置を特定し得る。ビデオエンコーダ20は、コーディングされている現在ビデオブロックのピクセル値から予測ブロックのピクセル値を減算し、ピクセル差分値を形成することによって、残差ビデオブロックを形成する。ピクセル差分値は、ブロックのための残差データを形成し、ルーマ差分成分とクロマ差分成分の両方を含み得る。加算器150は、この減算演算を実施する1つまたは複数の構成要素を表す。動き補償ユニット144はまた、ビデオスライスのビデオブロックを復号する際にビデオデコーダ30が使用するためのビデオブロックとビデオスライスとに関連付けられたシンタックス要素を生成し得る。
[0143]予測処理ユニット141が、イントラ予測またはインター予測のいずれかを介して、現在ビデオブロックのための予測ブロックを生成した後、ビデオエンコーダ20は、現在ビデオブロックから予測ブロックを減算することによって残差ビデオブロックを形成する。残差ブロック中の残差ビデオデータは、1つまたは複数のTU中に含まれ、変換処理ユニット152に適用され得る。変換処理ユニット152は、離散コサイン変換(DCT:discrete cosine transform)または概念的に同様の変換などの変換を使用して、残差ビデオデータを残差変換係数に変換する。変換処理ユニット152は、残差ビデオデータをピクセル領域から周波数領域などの変換領域にコンバートし得る。
[0144]変換処理ユニット152は、得られた変換係数を量子化ユニット154に送り得る。量子化ユニット154は、ビットレートをさらに低減するために変換係数を量子化する。量子化プロセスは、係数の一部または全部に関連付けられたビット深度を低減し得る。量子化の程度は、量子化パラメータを調整することによって修正され得る。いくつかの例では、量子化ユニット154は、次いで、量子化された変換係数を含む行列の走査を実施し得る。代替的に、エントロピー符号化ユニット156が走査を実施し得る。
[0145]量子化の後に、エントロピー符号化ユニット156は、量子化された変換係数をエントロピー符号化する。たとえば、エントロピー符号化ユニット156は、コンテキスト適応型可変長コーディング(CAVLC)、コンテキスト適応型バイナリ算術コーディング(CABAC)、シンタックスベースコンテキスト適応型バイナリ算術コーディング(SBAC)、確率間隔区分エントロピー(PIPE)コーディングあるいは別のエントロピー符号化方法または技法を実施し得る。エントロピー符号化ユニット156によるエントロピー符号化の後に、符号化ビットストリームは、ビデオデコーダ30に送信されるか、あるいはビデオデコーダ30が後で送信するかまたは取り出すためにアーカイブされ得る。エントロピー符号化ユニット156はまた、コーディングされている現在ビデオスライスのための動きベクトルと他のシンタックス要素とをエントロピー符号化し得る。
[0146]逆量子化ユニット158および逆変換処理ユニット160は、参照ピクチャの参照ブロックとして後で使用するためにピクセル領域において残差ブロックを再構築するために、それぞれ逆量子化および逆変換を適用する。動き補償ユニット144は、残差ブロックを参照ピクチャリストのうちの1つ内の参照ピクチャのうちの1つの予測ブロックに加算することによって参照ブロックを計算し得る。動き補償ユニット144はまた、動き推定において使用するためのサブ整数ピクセル値を計算するために、再構築された残差ブロックに1つまたは複数の補間フィルタを適用し得る。加算器162は、再構築されたブロックを生成するために、再構築された残差ブロックを、動き補償ユニット144によって生成された動き補償予測ブロックに加算する。言い換えれば、加算器162は、再構築されたブロックのサンプルを再構築するために、動き補償予測ブロックの対応するサンプルに、再構築された残差ブロックのサンプルを加算する。
[0147]ALFユニット164は、再構築されたブロック(たとえば、加算器162の出力)をフィルタ処理し、参照ブロックとして使用するために、フィルタ処理された再構築されたブロックをDPB166に記憶する。参照ブロックは、後続のビデオフレームまたはピクチャ中のブロックをインター予測するために、動き推定ユニット142および動き補償ユニット144によって参照ブロックとして使用され得る。図8には明示的に示されていないが、ビデオエンコーダ20は、デブロックフィルタ、サンプル適応オフセット(SAO)フィルタ、または他のタイプのループフィルタなどの、追加のフィルタを含み得る。デブロックフィルタは、たとえば、再構築されたビデオからブロッキネスアーティファクトを除去するために、フィルタブロック境界にデブロッキングフィルタ処理を適用し得る。SAOフィルタは、全体的コーディング品質を改善するために、再構築されたピクセル値にオフセットを適用し得る。いくつかの実装形態では、SAOは、ALFフィルタ処理の特殊な場合または特殊モードであり得る。(ループ内またはループ後の)追加のループフィルタも使用され得る。
[0148]ALFユニット164は、単独でまたはビデオエンコーダ20の他の構成要素とともに、特許請求の範囲セクションならびに他の場所で説明される技法を含む本開示で説明される様々な技法を実施するように構成され得る。たとえば、ビデオエンコーダ20は、本開示の他の場所で説明されるように、ビデオデータの現在ピクチャのサンプルを再構築し得る。さらに、ALFユニット164は、現在ピクチャの現在ブロックに、複数のフィルタの特定の関数を適用し得る。現在ブロックは、現在ピクチャの再構築されたサンプルを備える。現在ブロックに特定の関数を適用することは、現在ブロックの各再構築されたサンプルに特定の関数を適用することを備え得る。いくつかの例では、ALFユニット164は、現在ピクチャの現在ブロックに複数のクラスインデックスを割り当て、複数のクラスインデックスの各それぞれのクラスインデックスは、複数のフィルタ中のそれぞれのフィルタに関連付けられる。さらに、現在ブロックに特定の関数を適用することの一部として、ALFユニット164は、現在ブロックの再構築されたサンプルに、現在ブロックに割り当てられた複数のクラスインデックスに関連付けられたフィルタを適用し得る。フィルタを適用した後に、予測処理ユニット141は、ビデオデータの別のピクチャを符号化する際の参照ピクチャとして現在ピクチャを使用し得る。
[0149]いくつかの例では、ビデオエンコーダ20は、ビデオデータの現在ピクチャの符号化表現を備えるビットストリーム中に、ALFが有効にされるのか無効にされるのかを示すシンタックス要素を含み得、ここにおいて、シンタックス要素は、クワッドツリー以外のツリーのタイプの深度に従ってシグナリングされる。ALFは複数のフィルタの関数であり得る。この例では、ビデオエンコーダ20は、本開示の他の場所で説明されるように、ビデオデータの現在ピクチャのサンプルを再構築し得る。さらに、(たとえば、シンタックス要素に基づいて)ALFが有効にされたと決定したことに応答して、ALFユニット164は、現在ピクチャの再構築されたサンプルにALFを適用し得る。フィルタを適用した後に、予測処理ユニット141は、ビデオデータの別のピクチャを符号化する際の参照ピクチャとして現在ピクチャを使用し得る。
[0150]いくつかの例では、ビデオエンコーダ20は、コード化情報に基づいて、ALFが有効にされるのか無効にされるのかを示すシンタックス要素をビットストリーム中に含めるべきかどうかを決定し得る。ビデオエンコーダ20は、本開示の他の場所で説明されるように、ビデオデータの現在ピクチャのサンプルを再構築し得る。ALFが有効にされたと決定したことに応答して、ALFユニット164は、現在ピクチャの再構築されたサンプルにALFを適用し得る。フィルタを適用した後に、予測処理ユニット141は、ビデオデータの別のピクチャを符号化する際の参照ピクチャとして現在ピクチャを使用し得る。
[0151]図9は、本開示で説明される技法を実装し得る例示的なビデオデコーダ30を示すブロック図である。図9の例では、ビデオデコーダ30は、ビデオデータメモリ178と、エントロピー復号ユニット180と、予測処理ユニット181と、逆量子化ユニット186と、逆変換処理ユニット188と、加算器190と、DPB194とを含む。予測処理ユニット181は、動き補償ユニット182とイントラ予測ユニット184とを含む。ビデオデコーダ30は、いくつかの例では、図8からのビデオエンコーダ20に関して説明された符号化パスとは概して逆の復号パスを実施し得る。
[0152]復号プロセス中に、ビデオデコーダ30は、ビデオエンコーダ20から、符号化ビデオスライスのビデオブロックと、関連付けられたシンタックス要素とを表す符号化ビットストリームを受信する。ビデオデコーダ30は、受信された符号化ビデオビットストリームをビデオデータメモリ178に記憶する。ビデオデータメモリ178は、ビデオデコーダ30の構成要素によって復号されるべき、符号化ビデオビットストリームなどのビデオデータを記憶し得る。ビデオデータメモリ178に記憶されたビデオデータは、たとえば、リンク16を介して、記憶媒体28から、またはカメラなどのローカルビデオソースから、または物理データ記憶媒体にアクセスすることによって取得され得る。ビデオデータメモリ178は、符号化ビデオビットストリームからの符号化ビデオデータを記憶するコード化ピクチャバッファ(CPB)を形成し得る。DPB194は、たとえば、イントラコーディングモードまたはインターコーディングモードでビデオデコーダ30によってビデオデータを復号する際に使用するための参照ビデオデータを記憶する参照ピクチャメモリであり得る。ビデオデータメモリ178およびDPB194は、DRAM、SDRAM、MRAM、RRAM、または他のタイプのメモリデバイスなど、様々なメモリデバイスのいずれかによって形成され得る。ビデオデータメモリ178およびDPB194は、同じメモリデバイスまたは別々のメモリデバイスによって与えられ得る。様々な例では、ビデオデータメモリ178は、ビデオデコーダ30の他の構成要素とともにオンチップであるか、またはそれらの構成要素に対してオフチップであり得る。
[0153]ビデオデコーダ30のエントロピー復号ユニット180は、量子化された係数、動きベクトル、および他のシンタックス要素を生成するために、ビデオデータメモリ178に記憶されたビデオデータをエントロピー復号する。エントロピー復号ユニット180は、動きベクトルと他のシンタックス要素とを予測処理ユニット181にフォワーディングする。ビデオデコーダ30は、ビデオスライスレベルおよび/またはビデオブロックレベルでシンタックス要素を受信し得る。
[0154]ビデオスライスがイントラコード化(I)スライスとしてコーディングされたとき、予測処理ユニット181のイントラ予測ユニット184は、シグナリングされたイントラ予測モードと、現在フレームまたはピクチャの前に復号されたブロックからのデータとに基づいて、現在ビデオスライスのビデオブロックのための予測データを生成し得る。ビデオフレームがインターコード化スライス(たとえば、BスライスまたはPスライス)としてコーディングされたとき、予測処理ユニット181の動き補償ユニット182は、エントロピー復号ユニット180から受信された動きベクトルおよび他のシンタックス要素に基づいて現在ビデオスライスのビデオブロックのための予測ブロックを生成する。予測ブロックは、参照ピクチャリストのうちの1つ内の参照ピクチャのうちの1つから生成され得る。ビデオデコーダ30は、DPB194に記憶された参照ピクチャに基づいて、デフォルトの構築技法を使用して、参照フレームリスト、すなわち、リスト0とリスト1とを構築し得る。
[0155]動き補償ユニット182は、動きベクトルと他のシンタックス要素とをパースすることによって現在ビデオスライスのビデオブロックのための予測情報を決定し、復号されている現在ビデオブロックのための予測ブロックを生成するために、その予測情報を使用する。たとえば、動き補償ユニット182は、ビデオスライスのビデオブロックをコーディングするために使用される予測モード(たとえば、イントラまたはインター予測)と、インター予測スライスタイプ(たとえば、BスライスまたはPスライス)と、スライスのための参照ピクチャリストのうちの1つまたは複数のための構築情報と、スライスの各インター符号化ビデオブロックのための動きベクトルと、スライスの各インターコード化ビデオブロックのためのインター予測ステータスと、現在ビデオスライス中のビデオブロックを復号するための他の情報とを決定するために、受信されたシンタックス要素のうちのいくつかを使用する。
[0156]動き補償ユニット182はまた、補間フィルタに基づいて補間を実施し得る。動き補償ユニット182は、参照ブロックのサブ整数ピクセルのための補間値を計算するために、ビデオブロックの符号化中にビデオエンコーダ20によって使用された補間フィルタを使用し得る。この場合、動き補償ユニット182は、受信されたシンタックス要素からビデオエンコーダ20によって使用された補間フィルタを決定し、予測ブロックを生成するためにその補間フィルタを使用し得る。
[0157]逆量子化ユニット186は、ビットストリーム中で与えられ、エントロピー復号ユニット180によって復号された量子化された変換係数を逆量子化、すなわち、量子化解除(de-quantize)する。逆量子化プロセスは、量子化の程度を決定し、同様に、適用されるべき逆量子化の程度を決定するための、ビデオスライス中のビデオブロックごとにビデオエンコーダ20によって計算される量子化パラメータの使用を含み得る。逆変換処理ユニット188は、ピクセル領域において残差ブロックを生成するために、逆変換、たとえば、逆DCT、逆整数変換、または概念的に同様の逆変換プロセスを変換係数に適用する。
[0158]予測処理ユニット181が、たとえば、イントラまたはインター予測を使用して現在ビデオブロックのための予測ブロックを生成した後、ビデオデコーダ30は、逆変換処理ユニット188からの残差ブロックを動き補償ユニット182によって生成された対応する予測ブロックと加算することによって、再構築されたビデオブロックを形成し得る。言い換えれば、ビデオデコーダ30は、ピクチャのビデオブロックのサンプルを再構築するために、予測ブロックの対応するサンプルに残差ブロックのサンプルを加算し得る。加算器190は、この加算演算を実施する1つまたは複数の構成要素を表す。ALFユニット192は、たとえば、本開示で説明されるALF技法のうちの1つまたは複数を使用して、再構築されたビデオブロックをフィルタ処理する。
[0159]図9には明示的に示されていないが、ビデオデコーダ30はまた、デブロッキングフィルタ、SAOフィルタ、または他のタイプのフィルタのうちの1つまたは複数を含み得る。ピクセル遷移を平滑化するか、または場合によってはビデオ品質を改善するために、(コーディングループ中またはコーディングループ後のいずれかの)他のループフィルタも使用され得る。所与のフレームまたはピクチャ中の復号ビデオブロックは、次いで、その後の動き補償のために使用される参照ピクチャを記憶するDPB194に記憶される。DPB194は、図1のディスプレイデバイス32などのディスプレイデバイス上での後の提示のために、復号されたビデオを記憶する追加のメモリの一部であるか、または追加のメモリとは別個であり得る。
[0160]ALFユニット192は、単独でまたはビデオデコーダ30の他の構成要素とともに、特許請求の範囲セクションならびに他のセクションで説明される技法を含む本開示で説明される様々な技法を実施するように構成され得る。
[0161]たとえば、ビデオデコーダ30は、本開示の他の場所で説明されるように、ビデオデータの現在ピクチャのサンプルを再構築し得る。さらに、この例では、現在ピクチャのサンプルを再構築した後に、ビデオデコーダ30は、現在ピクチャの現在ブロックに複数のフィルタの特定の関数を適用し得る。たとえば、ALFユニット192は、現在ピクチャの現在ブロックに複数のクラスインデックスを割り当て得、複数のクラスインデックスの各それぞれのクラスインデックスは、複数のフィルタ中のそれぞれのフィルタに関連付けられる。さらに、この例では、ALFユニット192は、現在ブロックの再構築されたサンプルに、現在ブロックに割り当てられた複数のクラスインデックスに関連付けられたフィルタを適用し得る。
[0162]いくつかの例では、ビデオデコーダ30は、ビデオデータの現在ピクチャの符号化表現を備えるビットストリームから、ALFが有効にされるのか無効にされるのかを示すシンタックス要素を取得し得、ここにおいて、シンタックス要素は、クワッドツリー以外のツリーのタイプの深度に従ってシグナリングされる。ALFは複数のフィルタの特定の関数であり得る。さらに、ビデオデコーダ30は、本開示の他の場所で説明されるように、ビデオデータの現在ピクチャのサンプルを再構築し得る。シンタックス要素に基づいて、ALFが有効にされたと決定したことに応答して、ALFユニット192は、現在ピクチャの再構築されたサンプルにALFを適用し得る。
[0163]いくつかの例では、ALFユニット192は、コード化情報に基づいて、適応ループフィルタ(ALF)が有効にされるのか無効にされるのかを示すシンタックス要素を、ビットストリームが含むかどうかを決定し得る。さらに、ビデオデコーダ30は、本開示の他の場所で説明されるように、ビデオデータの現在ピクチャを再構築し得る。ALFが有効にされたと決定したことに応答して、ALFユニット192は、現在ピクチャの再構築されたサンプルにALFを適用し得る。
[0164]図10は、本開示の1つまたは複数の技法による、ビデオコーダの例示的な動作を示すフローチャートである。本開示のフローチャートは例として与えられる。他の例では、動作は、より多数の、より少数の、または異なるアクションを含み得る。その上、アクションは、異なる順序で実施され得る。
[0165]図10の例では、ビデオコーダ(たとえば、ビデオエンコーダ20またはビデオデコーダ30)を備えるコンピューティングデバイスは、ビデオデータの現在ピクチャの1つまたは複数のブロックを再構築する(250)。たとえば、ビデオコーダは、現在ピクチャの1つまたは複数のCTBを再構築し得る。現在ピクチャの1つまたは複数のブロックは、現在ピクチャの再構築されたサンプルを備える。したがって、1つまたは複数のブロックを再構築することは、現在ピクチャのサンプルを再構築することを備える。たとえば、ビデオコーダが図8に示されているビデオエンコーダである例では、逆量子化ユニット158、逆変換処理ユニット160、および加算器162は、ビデオデータの現在ピクチャの1つまたは複数のブロックを再構築し得る。ビデオコーダが図9に示されているビデオデコーダである例では、予測処理ユニット181、逆量子化ユニット187、逆変換処理ユニット188、および加算器190は、ビデオデータの現在ピクチャの1つまたは複数のブロックを再構築し得る。
[0166]現在ピクチャの1つまたは複数のブロックを再構築した後に、ビデオコーダは、現在ピクチャの現在ブロックに複数のフィルタの特定の関数を適用する(252)。現在ブロックは、現在ピクチャを再構築するプロセスにおいて使用される1つまたは複数のブロックに、サイズまたは形状において必ずしも対応するとは限らない。そうではなく、ここで使用される現在ブロックは、現在ピクチャを再構築するプロセスにおいて使用される1つまたは複数のブロック中にある再構築されたサンプルを備えるにすぎない。ビデオコーダが図8に示されているビデオエンコーダであるいくつかの例では、ALFユニット164は、現在ブロックに複数のフィルタの特定の関数を適用し得る。さらに、ビデオコーダがビデオエンコーダである事例では、ビデオエンコーダは、他のピクチャを符号化するための参照ピクチャとして、フィルタ処理されたピクチャを使用し得る。ビデオコーダが図9に示されているビデオデコーダである例では、ALFユニット192は、現在ブロックに複数のフィルタの特定の関数を適用し得る。さらに、ビデオコーダがビデオデコーダである例では、ビデオデコーダは、フィルタ処理されたピクチャを出力し得る。ビデオコーダは、本開示の他の場所で与えられる例のいずれかに従って、複数のフィルタの特定の関数を適用し得る。たとえば、ビデオコーダは、複数のフィルタの線形関数を適用し得る。いくつかの例では、複数のフィルタは、テンプレートによって定義される複数の隣接ブロックの各それぞれの隣接ブロックについて、それぞれの隣接ブロックに関連付けられたそれぞれのフィルタを含む。
[0167]1つまたは複数の例では、説明された関数は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。ソフトウェアで実装される場合、関数は、1つまたは複数の命令またはコードとしてコンピュータ可読媒体上に記憶されるか、あるいはコンピュータ可読媒体を介して送信され、ハードウェアベースの処理ユニットによって実行され得る。コンピュータ可読媒体は、データ記憶媒体などの有形媒体に対応するコンピュータ可読記憶媒体を含み得るか、または、たとえば、通信プロトコルに従って、ある場所から別の場所へのコンピュータプログラムの転送を可能にする任意の媒体を含む通信媒体を含み得る。このようにして、コンピュータ可読媒体は、概して、(1)非一時的である有形コンピュータ可読記憶媒体、または(2)信号もしくは搬送波などの通信媒体に対応し得る。データ記憶媒体は、本開示で説明された技法の実装のための命令、コードおよび/またはデータ構造を取り出すために、1つまたは複数のコンピュータまたは1つまたは複数のプロセッサによってアクセスされ得る、任意の利用可能な媒体であり得る。コンピュータプログラム製品はコンピュータ可読媒体を含み得る。
[0168]限定ではなく例として、そのようなコンピュータ可読記憶媒体は、RAM、ROM、EEPROM(登録商標)、CD−ROMまたは他の光ディスクストレージ、磁気ディスクストレージ、または他の磁気ストレージデバイス、フラッシュメモリ、キャッシュメモリ、あるいは命令またはデータ構造の形態の所望のプログラムコードを記憶するために使用され得、コンピュータによってアクセスされ得る、任意の他の媒体を備えることができる。また、いかなる接続もコンピュータ可読媒体と適切に呼ばれる。たとえば、命令が、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者回線(DSL)、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、DSL、または赤外線、無線、およびマイクロ波などのワイヤレス技術は媒体の定義に含まれる。ただし、コンピュータ可読記憶媒体およびデータ記憶媒体は、接続、搬送波、信号、または他の一時媒体を含まないが、代わりに非一時的有形記憶媒体を対象とすることを理解されたい。本明細書で使用されるディスク(disk)およびディスク(disc)は、コンパクトディスク(disc)(CD)、レーザーディスク(登録商標)(disc)、光ディスク(disc)、デジタル多用途ディスク(disc)(DVD)、フロッピー(登録商標)ディスク(disk)およびBlu−rayディスク(disc)を含み、ここで、ディスク(disk)は通常、データを磁気的に再生し、ディスク(disc)は、データをレーザーで光学的に再生する。上記の組合せもコンピュータ可読媒体の範囲内に含まれるべきである。
[0169]命令は、1つまたは複数のデジタル信号プロセッサ(DSP)、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブル論理アレイ(FPGA)、あるいは他の等価な集積回路またはディスクリート論理回路など、1つまたは複数のプロセッサを含む、固定機能および/またはプログラマブル処理回路によって実行され得る。したがって、本明細書で使用される「プロセッサ」という用語は、上記の構造、または、本明細書で説明された技法の実装に好適な任意の他の構造のいずれかを指すことがある。したがって、「プロセッサ」は処理回路を備える。さらに、いくつかの態様では、本明細書で説明された機能は、符号化および復号のために構成された専用ハードウェアおよび/またはソフトウェアモジュール内に与えられるか、あるいは複合コーデックに組み込まれ得る。また、本技法は、1つまたは複数の回路または論理要素で十分に実装され得る。
[0170]本開示の技法は、ワイヤレスハンドセット、集積回路(IC)またはICのセット(たとえば、チップセット)を含む、多種多様なデバイスまたは装置において実装され得る。本開示では、開示される技法を実施するように構成されたデバイスの機能的態様を強調するために、様々な構成要素、モジュール、またはユニットが説明されたが、それらの構成要素、モジュール、またはユニットは、必ずしも異なるハードウェアユニットによる実現を必要とするとは限らない。むしろ、上記で説明されたように、様々なユニットが、好適なソフトウェアおよび/またはファームウェアとともに、上記で説明された1つまたは複数のプロセッサを含めて、コーデックハードウェアユニットにおいて組み合わされ得るか、または相互動作可能なハードウェアユニットの集合によって与えられ得る。
[0171]様々な例が説明された。これらおよび他の例は以下の特許請求の範囲内に入る。

Claims (57)

  1. ビデオデータを復号または符号化する方法であって、前記方法は、
    コンピューティングデバイスによって、前記ビデオデータの現在ピクチャの1つまたは複数のブロックを再構築することと、前記現在ピクチャの前記1つまたは複数のブロックが、前記現在ピクチャの再構築されたサンプルを備える、
    前記現在ピクチャの前記1つまたは複数のブロックを再構築した後に、前記コンピューティングデバイスによって、前記現在ピクチャの現在ブロックに複数のフィルタの特定の関数を適用することと、前記現在ブロックが、前記現在ピクチャの前記再構築されたサンプルを備える、
    を備える、方法。
  2. 前記特定の関数が、前記複数のフィルタの線形関数である、請求項1に記載の方法。
  3. テンプレートが、前記現在ブロックに隣接する前記現在ピクチャの複数の隣接ブロックを定義し、
    前記複数の隣接ブロックの各それぞれの隣接ブロックについて、前記複数のフィルタが、前記それぞれの隣接ブロックに関連付けられたそれぞれのフィルタを含む、
    請求項1に記載の方法。
  4. 前記複数のフィルタが、ある数のフィルタからなり、前記方法が、前記コンピューティングデバイスによって、ビットストリーム中のシンタックス要素に基づいて、前記現在ブロックのためのフィルタの前記数を決定することをさらに備える、請求項1に記載の方法。
  5. 前記コンピューティングデバイスによって、テンプレート中の隣接ブロックによって使用されるフィルタに基づいて前記複数のフィルタを決定することをさらに備え、前記テンプレートが、前記現在ブロックを中心とするブロックの幾何学的パターンである、
    請求項1に記載の方法。
  6. 前記コンピューティングデバイスによって、スライスタイプ、量子化パラメータ、時間識別子、前記テンプレートが別のピクチャによって参照されるのか参照されないのか、あるいはシーケンスパラメータヘッダ、ピクチャパラメータヘッダ、またはスライスヘッダのうちの1つまたは複数中でシグナリングされる情報のうちの1つまたは複数に基づいて、前記テンプレートを決定すること
    をさらに備える、請求項5に記載の方法。
  7. 前記コンピューティングデバイスによって、あらかじめ定義されたマスクに基づいて、前記特定の関数中で使用される重み付け係数を決定することをさらに備え、前記あらかじめ定義されたマスクが、テンプレート中のブロックのためのマスク値を指定し、前記テンプレートが、前記現在ブロックを中心とするブロックの幾何学的パターンである、
    請求項1に記載の方法。
  8. 前記方法が、前記コンピューティングデバイスによって、ビットストリームから、複数の隣接ブロックのための重み付け係数を示すデータを取得することをさらに備え、
    前記複数の隣接ブロックの各それぞれの隣接ブロックについて、前記複数のフィルタが、前記それぞれの隣接ブロックのためのそれぞれのフィルタを含み、
    前記特定の関数を適用することが、前記特定の関数を適用するとき、前記コンピューティングデバイスによって、前記隣接ブロックのための前記重み付け係数を使用することを備える、
    請求項1に記載の方法。
  9. 前記方法は、
    前記コンピューティングデバイスによって、ビットストリームから、隣接ブロックに関連付けられたすべての重み付け係数が0に等しいかどうかを示すシンタックス要素を取得することと、
    前記シンタックス要素が、前記隣接ブロックに関連付けられたすべての重み付け係数が0に等しいとは限らないことを示すことに基づいて、前記コンピューティングデバイスによって、前記ビットストリームから、前記隣接ブロックに関連付けられた前記重み付け係数を示すデータを取得することと
    をさらに備え、
    前記特定の関数を適用することが、前記コンピューティングデバイスによって、前記特定の関数を適用するために前記隣接ブロックに関連付けられた前記重み付け係数を使用することを備える、
    請求項1に記載の方法。
  10. 前記現在ブロックのアクティビティレベル、または
    前記現在ブロックの方向分類
    のうちの少なくとも1つに基づいて前記複数のフィルタ中の2つまたはそれ以上のフィルタを決定することをさらに備える、請求項1に記載の方法。
  11. 前記特定の関数を適用することが、前記コンピューティングデバイスによって、前記特定の関数を適用するために前記複数のフィルタのうちの選択されたフィルタのためのあらかじめ定義された重み付け係数を使用することを備える、
    請求項1に記載の方法。
  12. 前記方法が、前記コンピューティングデバイスによって、シンタックス要素に基づいて、前記複数のフィルタのうちの選択されたフィルタのための重み付け係数を決定することをさらに備え、前記シンタックス要素が、シーケンスパラメータヘッダ、ピクチャパラメータヘッダ、またはスライスヘッダのうちの1つまたは複数中に含まれ、
    前記特定の関数を適用することが、前記コンピューティングデバイスによって、前記特定の関数を適用するために前記複数のフィルタのうちの選択されたフィルタのための前記あらかじめ定義された重み付け係数を使用することを備える、
    請求項1に記載の方法。
  13. 前記方法が、前記コンピューティングデバイスによって、グループインデックス、クラスインデックス、コーディングユニット、予測ユニット、または変換ユニットに対する前記現在ブロックの位置、あるいはコーディングモードに基づいて、前記複数のフィルタのうちの選択されたフィルタのための重み付け係数を決定することをさらに備え、
    前記特定の関数を適用することが、前記コンピューティングデバイスによって、前記特定の関数を適用するために前記複数のフィルタのうちの選択されたフィルタのための前記重み付け係数を使用することを備える、
    請求項1に記載の方法。
  14. 前記方法は、
    前記コンピューティングデバイスによって、前記ビデオデータの複数のピクチャの符号化表現を備えるビットストリームを受信することと、前記複数のピクチャが前記現在ピクチャを含み、前記現在ピクチャが第1のブロックと第2のブロックとを含み、前記第1のブロックと前記第2のブロックとが部分的に重複する、
    前記コンピューティングデバイスによって、前記第1のブロックのためのクラスと前記第2のブロックのためのクラスとを決定することと
    をさらに備え、
    前記複数のフィルタの前記特定の関数を適用することが、
    前記コンピューティングデバイスによって、前記第1のブロックの各再構築されたサンプルに、前記第1のブロックのための前記クラスに関連付けられたフィルタを適用することと、
    前記第1のブロックのための前記クラスに関連付けられた前記フィルタと前記第2のブロックのための前記クラスに関連付けられたフィルタとが、両方とも、前記第1のブロックと前記第2のブロックとの重複する部分中の再構築されたサンプルに適用されるように、前記コンピューティングデバイスによって、前記第2のブロックの各再構築されたサンプルに、前記第2のブロックのための前記クラスに関連付けられた前記フィルタを適用することと
    を備える、
    請求項1に記載の方法。
  15. 前記方法が、前記コンピューティングデバイスによって、前記現在ピクチャの前記現在ブロックに複数のクラスインデックスを割り当てることをさらに備え、前記複数のクラスインデックスの各それぞれのクラスインデックスが、前記複数のフィルタ中のそれぞれのフィルタに関連付けられ、
    前記複数のフィルタの前記特定の関数を適用することが、前記コンピューティングデバイスによって、前記現在ブロックの再構築されたサンプルに、前記現在ブロックに割り当てられた前記複数のクラスインデックスに関連付けられた前記フィルタを適用することを備える、
    請求項1に記載の方法。
  16. 前記現在ブロックに前記複数のクラスインデックスを割り当てることが、
    前記コンピューティングデバイスによって、複数のウィンドウサイズに基づいて前記現在ブロックに前記複数のクラスインデックスを割り当てること
    を備える、請求項15に記載の方法。
  17. 前記現在ブロックに前記複数のクラスインデックスを割り当てることが、
    前記コンピューティングデバイスによって、前記現在ブロックに隣接するブロックから前記複数のクラスインデックスのうちの第1のクラスインデックスを継承することと、
    前記コンピューティングデバイスによって、前記現在ブロック内の再構築されたサンプルに基づいて前記複数のクラスインデックスのうちの第2のクラスインデックスを導出することと
    を備える、請求項15に記載の方法。
  18. 前記複数のフィルタが適応ループフィルタ(ALF)を含み、
    前記方法は、前記コンピューティングデバイスによって、前記現在ピクチャの符号化表現を備えるビットストリームから、前記ALFが有効にされるのか無効にされるのかを示すシンタックス要素を取得することと、ここにおいて、前記シンタックス要素が、クワッドツリー以外のツリーのタイプの深度に従ってシグナリングされる、
    前記シンタックス要素に基づいて前記ALFが有効にされたと決定したことに応答して、前記コンピューティングデバイスによって、前記現在ピクチャの再構築されたサンプルに前記ALFを適用することと
    をさらに備える、
    請求項1に記載の方法。
  19. 前記複数のフィルタが適応ループフィルタ(ALF)を含み、
    前記方法は、前記コンピューティングデバイスによって、マージ/高度動きベクトル予測(AMVP)モード、コード化ブロックフラグ(CBF)、またはブロックサイズに基づいて、適応ループフィルタ(ALF)が有効にされるのか無効にされるのかを示すシンタックス要素をビットストリームが含むかどうかを決定することをさらに備え、
    前記複数のフィルタの前記特定の関数を適用することが、前記ALFが有効にされたと決定したことに応答して、前記コンピューティングデバイスによって、前記現在ピクチャの再構築されたサンプルに前記ALFを適用することを備える、
    請求項1に記載の方法。
  20. 前記コンピューティングデバイスによって、前記ビデオデータの複数のピクチャの符号化表現を備えるビットストリームを受信すること
    をさらに備える、請求項1に記載の方法。
  21. 前記現在ブロックに前記複数のフィルタの前記特定の関数を適用した後に、前記コンピューティングデバイスによって、前記現在ピクチャを出力すること
    請求項1に記載の方法。
  22. 前記現在ピクチャの前記1つまたは複数のブロックを再構築することが、前記ビデオデータの前記現在ピクチャの前記1つまたは複数のブロックを符号化した後に、前記コンピューティングデバイスによって、前記現在ピクチャの前記1つまたは複数のブロックを再構築することを備え、
    前記方法が、前記コンピューティングデバイスによって、前記ビデオデータの別のピクチャを符号化する際に参照ピクチャとして前記現在ピクチャを使用することをさらに備える、
    請求項1に記載の方法。
  23. 前記方法が、前記コンピューティングデバイスによって、ビットストリーム中に、隣接ブロックのための重み付け係数を示すデータを含めることをさらに備え、
    前記隣接ブロックの各それぞれの隣接ブロックについて、前記複数のフィルタが、前記それぞれの隣接ブロックのためのそれぞれのフィルタを含み、
    前記特定の関数を適用することが、前記特定の関数を適用するとき、前記コンピューティングデバイスによって、前記隣接ブロックのための前記重み付け係数を使用することを備える、
    請求項22に記載の方法。
  24. 前記方法は、
    前記コンピューティングデバイスによって、ビットストリーム中に、隣接ブロックに関連付けられたすべての重み付け係数が0に等しいかどうかを示すシンタックス要素を含めることと、
    前記シンタックス要素が、前記隣接ブロックに関連付けられたすべての重み付け係数が0に等しいとは限らないことを示すことに基づいて、前記コンピューティングデバイスによって、前記ビットストリームから、前記隣接ブロックに関連付けられた前記重み付け係数を示すデータを取得することと
    をさらに備え、
    前記特定の関数を適用することが、前記コンピューティングデバイスによって、前記特定の関数を適用するために前記隣接ブロックに関連付けられた前記重み付け係数を使用することを備える、
    請求項22に記載の方法。
  25. 前記複数のフィルタが適応ループフィルタ(ALF)を含み、
    前記方法は、前記コンピューティングデバイスによって、前記ビデオデータの現在ピクチャの符号化表現を備えるビットストリーム中に、前記ALFが有効にされるのか無効にされるのかを示すシンタックス要素を含めることをさらに備え、ここにおいて、前記シンタックス要素が、クワッドツリー以外のツリーのタイプの深度に従ってシグナリングされる、
    請求項22に記載の方法。
  26. 前記方法は、前記コンピューティングデバイスによって、マージ/高度動きベクトル予測(AMVP)モード、コード化ブロックフラグ(CBF)、またはブロックサイズに基づいて、適応ループフィルタ(ALF)が有効にされるのか無効にされるのかを示すシンタックス要素をビットストリーム中に含めるべきかどうかを決定することをさらに備え、
    前記複数のフィルタの前記特定の関数を適用することが、前記ALFが有効にされたと決定したことに応答して、前記コンピューティングデバイスによって、前記現在ピクチャの再構築されたサンプルに前記ALFを適用することを備える、
    請求項22に記載の方法。
  27. ビデオデータを復号または符号化するための装置であって、前記装置が、
    ビデオデータを記憶するように構成された1つまたは複数の記憶媒体と、
    1つまたは複数のプロセッサとを備え、前記1つまたは複数のプロセッサは、
    前記ビデオデータの現在ピクチャの1つまたは複数のブロックを再構築することと、前記現在ピクチャの前記1つまたは複数のブロックが、前記現在ピクチャの再構築されたサンプルを備える、
    前記現在ピクチャの前記1つまたは複数のブロックを再構築した後に、前記現在ピクチャの現在ブロックに複数のフィルタの特定の関数を適用することと、前記現在ブロックが、前記現在ピクチャの前記再構築されたサンプルを備える、
    を行うように構成された、装置。
  28. 前記特定の関数が、前記複数のフィルタの線形関数である、請求項27に記載の装置。
  29. テンプレートが、前記現在ブロックに隣接する前記現在ピクチャの複数の隣接ブロックを定義し、
    前記複数の隣接ブロックの各それぞれの隣接ブロックについて、前記複数のフィルタが、前記それぞれの隣接ブロックに関連付けられたそれぞれのフィルタを含む、
    請求項27に記載の装置。
  30. 前記複数のフィルタが、ある数のフィルタからなり、前記1つまたは複数のプロセッサが、ビットストリーム中のシンタックス要素に基づいて、前記現在ブロックのためのフィルタの前記数を決定するようにさらに構成された、請求項27に記載の装置。
  31. 前記1つまたは複数のプロセッサが、
    テンプレート中の隣接ブロックによって使用されるフィルタに基づいて前記複数のフィルタを決定するようにさらに構成され、前記テンプレートが、前記現在ブロックを中心とするブロックの幾何学的パターンである、
    請求項27に記載の装置。
  32. 前記1つまたは複数のプロセッサが、スライスタイプ、量子化パラメータ、時間識別子、前記テンプレートが別のピクチャによって参照されるのか参照されないのか、あるいはシーケンスパラメータヘッダ、ピクチャパラメータヘッダ、またはスライスヘッダのうちの1つまたは複数中でシグナリングされる情報のうちの1つまたは複数に基づいて、前記テンプレートを決定するようにさらに構成された、請求項31に記載の装置。
  33. 前記1つまたは複数のプロセッサは、あらかじめ定義されたマスクに基づいて、前記特定の関数中で使用される重み付け係数を決定するようにさらに構成され、前記あらかじめ定義されたマスクが、テンプレート中のブロックのためのマスク値を指定し、前記テンプレートが、前記現在ブロックを中心とするブロックの幾何学的パターンである、請求項27に記載の装置。
  34. 前記1つまたは複数のプロセッサが、ビットストリームから、複数の隣接ブロックのための重み付け係数を示すデータを取得するようにさらに構成され、
    前記複数の隣接ブロックの各それぞれの隣接ブロックについて、前記複数のフィルタが、前記それぞれの隣接ブロックのためのそれぞれのフィルタを含み、
    前記1つまたは複数のプロセッサは、前記特定の関数を適用することの一部として、前記1つまたは複数のプロセッサが、前記特定の関数を適用するとき、前記隣接ブロックのための前記重み付け係数を使用するように構成された、
    請求項27に記載の装置。
  35. 前記1つまたは複数のプロセッサは、
    ビットストリームから、隣接ブロックに関連付けられたすべての重み付け係数が0に等しいかどうかを示すシンタックス要素を取得することと、
    前記シンタックス要素が、前記隣接ブロックに関連付けられたすべての重み付け係数が0に等しいとは限らないことを示すことに基づいて、前記ビットストリームから、前記隣接ブロックに関連付けられた前記重み付け係数を示すデータを取得することと
    を行うようにさらに構成され、
    前記1つまたは複数のプロセッサは、前記特定の関数を適用することの一部として、前記1つまたは複数のプロセッサが、前記特定の関数を適用するために前記隣接ブロックに関連付けられた前記重み付け係数を使用するように構成された、
    請求項27に記載の装置。
  36. 前記1つまたは複数のプロセッサが、
    前記現在ブロックのアクティビティレベル、または
    前記現在ブロックの方向分類
    のうちの少なくとも1つに基づいて前記複数のフィルタ中の2つまたはそれ以上のフィルタを決定するようにさらに構成された、請求項27に記載の装置。
  37. 前記1つまたは複数のプロセッサは、前記特定の関数を適用することの一部として、前記1つまたは複数のプロセッサが、前記特定の関数を適用するために前記複数のフィルタのうちの選択されたフィルタのためのあらかじめ定義された重み付け係数を使用するように構成された、
    請求項27に記載の装置。
  38. 前記1つまたは複数のプロセッサが、シンタックス要素に基づいて、前記複数のフィルタのうちの選択されたフィルタのための重み付け係数を決定するようにさらに構成され、前記シンタックス要素が、シーケンスパラメータヘッダ、ピクチャパラメータヘッダ、またはスライスヘッダのうちの1つまたは複数中に含まれ、
    前記1つまたは複数のプロセッサは、前記特定の関数を適用することの一部として、前記1つまたは複数のプロセッサが、前記特定の関数を適用するために前記複数のフィルタのうちの選択されたフィルタのための前記あらかじめ定義された重み付け係数を使用するように構成された、
    請求項27に記載の装置。
  39. 前記1つまたは複数のプロセッサが、グループインデックス、クラスインデックス、コーディングユニット、予測ユニット、または変換ユニットに対する前記現在ブロックの位置、あるいはコーディングモードに基づいて、前記複数のフィルタのうちの選択されたフィルタのための重み付け係数を決定するようにさらに構成され、
    前記1つまたは複数のプロセッサは、前記特定の関数を適用することの一部として、前記1つまたは複数のプロセッサが、前記特定の関数を適用するために前記複数のフィルタのうちの選択されたフィルタのための前記重み付け係数を使用するように構成された、
    請求項27に記載の装置。
  40. 前記1つまたは複数のプロセッサは、
    前記ビデオデータの複数のピクチャの符号化表現を備えるビットストリームを受信することと、前記複数のピクチャが前記現在ピクチャを含み、前記現在ピクチャが第1のブロックと第2のブロックとを含み、ここにおいて、前記第1のブロックと前記第2のブロックとが部分的に重複する、
    前記第1のブロックのためのクラスと前記第2のブロックのためのクラスとを決定することと
    を行うようにさらに構成され、
    前記1つまたは複数のプロセッサは、前記複数のフィルタの前記特定の関数を適用することの一部として、前記1つまたは複数のプロセッサが、
    前記第1のブロックの各再構築されたサンプルに、前記第1のブロックのための前記クラスに関連付けられたフィルタを適用することと、
    前記第1のブロックのための前記クラスに関連付けられた前記フィルタと前記第2のブロックのための前記クラスに関連付けられたフィルタとが、両方とも、前記第1のブロックと前記第2のブロックとの重複する部分中の再構築されたサンプルに適用されるように、前記第2のブロックの各再構築されたサンプルに、前記第2のブロックのための前記クラスに関連付けられた前記フィルタを適用することと
    を行うように構成された、
    請求項27に記載の装置。
  41. 前記1つまたは複数のプロセッサが、前記現在ピクチャの前記現在ブロックに複数のクラスインデックスを割り当てるようにさらに構成され、前記複数のクラスインデックスの各それぞれのクラスインデックスが、前記複数のフィルタ中のそれぞれのフィルタに関連付けられ、
    前記1つまたは複数のプロセッサは、前記複数のフィルタの前記特定の関数を適用することの一部として、前記1つまたは複数のプロセッサが、前記現在ブロックの再構築されたサンプルに、前記現在ブロックに割り当てられた前記複数のクラスインデックスに関連付けられた前記フィルタを適用するように構成された、
    請求項27に記載の装置。
  42. 前記1つまたは複数のプロセッサは、前記現在ブロックに前記複数のクラスインデックスを割り当てることの一部として、前記1つまたは複数のプロセッサが、
    複数のウィンドウサイズに基づいて前記現在ブロックに前記複数のクラスインデックスを割り当てること
    を行うように構成された、請求項41に記載の装置。
  43. 前記1つまたは複数のプロセッサは、前記現在ブロックに前記複数のクラスインデックスを割り当てることの一部として、前記1つまたは複数のプロセッサが、
    前記現在ブロックに隣接するブロックから前記複数のクラスインデックスのうちの第1のクラスインデックスを継承することと、
    前記現在ブロック内の再構築されたサンプルに基づいて前記複数のクラスインデックスのうちの第2のクラスインデックスを導出することと
    を行うように構成された、請求項41に記載の装置。
  44. 前記複数のフィルタが適応ループフィルタ(ALF)を含み、
    前記1つまたは複数のプロセッサは、
    前記現在ピクチャの符号化表現を備えるビットストリームから、前記ALFが有効にされるのか無効にされるのかを示すシンタックス要素を取得することと、ここにおいて、前記シンタックス要素が、クワッドツリー以外のツリーのタイプの深度に従ってシグナリングされる、
    前記シンタックス要素に基づいて前記ALFが有効にされたと決定したことに応答して、前記現在ピクチャの再構築されたサンプルに前記ALFを適用することと
    を行うようにさらに構成された、
    請求項27に記載の装置。
  45. 前記複数のフィルタが適応ループフィルタ(ALF)を含み、
    前記1つまたは複数のプロセッサは、マージ/高度動きベクトル予測(AMVP)モード、コード化ブロックフラグ(CBF)、またはブロックサイズに基づいて、適応ループフィルタ(ALF)が有効にされるのか無効にされるのかを示すシンタックス要素をビットストリームが含むかどうかを決定するようにさらに構成され、
    前記1つまたは複数のプロセッサは、前記複数のフィルタの前記特定の関数を適用することの一部として、前記1つまたは複数のプロセッサが、前記ALFが有効にされたと決定したことに応答して、前記現在ピクチャの再構築されたサンプルに前記ALFを適用するように構成された
    請求項27に記載の装置。
  46. 前記1つまたは複数のプロセッサが、
    前記ビデオデータの複数のピクチャの符号化表現を備えるビットストリームを受信すること
    を行うようにさらに構成された、請求項27に記載の装置。
  47. 前記1つまたは複数のプロセッサは、前記現在ブロックに前記複数のフィルタの前記特定の関数を適用した後に、前記現在ピクチャを出力するようにさらに構成された、請求項27に記載の装置。
  48. 前記1つまたは複数のプロセッサは、前記現在ピクチャを再構築することの一部として、前記1つまたは複数のプロセッサが、前記ビデオデータの前記現在ピクチャを符号化した後に、前記現在ピクチャを再構築するように構成され、
    前記1つまたは複数のプロセッサが、前記ビデオデータの別のピクチャを符号化する際に参照ピクチャとして前記現在ピクチャを使用するようにさらに構成された、
    請求項27に記載の装置。
  49. 前記1つまたは複数のプロセッサが、ビットストリーム中に、隣接ブロックのための重み付け係数を示すデータを含めるようにさらに構成され、
    前記隣接ブロックの各それぞれの隣接ブロックについて、前記複数のフィルタが、前記それぞれの隣接ブロックのためのそれぞれのフィルタを含み、
    前記1つまたは複数のプロセッサは、前記特定の関数を適用することの一部として、前記1つまたは複数のプロセッサが、前記特定の関数を適用するとき、前記隣接ブロックのための前記重み付け係数を使用するように構成された、
    請求項48に記載の装置。
  50. 前記1つまたは複数のプロセッサは、
    ビットストリーム中に、隣接ブロックに関連付けられたすべての重み付け係数が0に等しいかどうかを示すシンタックス要素を含めることと、
    前記シンタックス要素が、前記隣接ブロックに関連付けられたすべての重み付け係数が0に等しいとは限らないことを示すことに基づいて、前記ビットストリームから、前記隣接ブロックに関連付けられた前記重み付け係数を示すデータを取得することと
    を行うようにさらに構成され、
    前記1つまたは複数のプロセッサは、前記特定の関数を適用することの一部として、前記1つまたは複数のプロセッサが、前記特定の関数を適用するために前記隣接ブロックに関連付けられた前記重み付け係数を使用するように構成された、
    請求項48に記載の装置。
  51. 前記複数のフィルタが適応ループフィルタ(ALF)を含み、
    前記1つまたは複数のプロセッサは、前記ビデオデータの現在ピクチャの符号化表現を備えるビットストリーム中に、前記ALFが有効にされるのか無効にされるのかを示すシンタックス要素を含めるようにさらに構成され、ここにおいて、前記シンタックス要素が、クワッドツリー以外のツリーのタイプの深度に従ってシグナリングされる、
    請求項48に記載の装置。
  52. 前記1つまたは複数のプロセッサは、マージ/高度動きベクトル予測(AMVP)モード、コード化ブロックフラグ(CBF)、またはブロックサイズに基づいて、適応ループフィルタ(ALF)が有効にされるのか無効にされるのかを示すシンタックス要素をビットストリーム中に含めるべきかどうかを決定するようにさらに構成され、
    前記1つまたは複数のプロセッサは、前記複数のフィルタの前記特定の関数を適用することの一部として、前記1つまたは複数のプロセッサが、前記ALFが有効にされたと決定したことに応答して、前記現在ピクチャの再構築されたサンプルに前記ALFを適用するように構成された
    請求項48に記載の装置。
  53. 前記装置が、
    集積回路、
    マイクロプロセッサ、または
    ワイヤレス通信デバイス
    のうちの少なくとも1つを備える、請求項27に記載の装置。
  54. 復号ビデオデータを表示するように構成されたディスプレイをさらに備える、請求項27に記載の装置。
  55. 前記ビデオデータをキャプチャするように構成されたカメラをさらに備える、請求項27に記載の装置。
  56. ビデオデータを復号または符号化するための装置であって、前記装置が、
    前記ビデオデータの現在ピクチャの1つまたは複数のブロックを再構築するための手段と、前記現在ピクチャの前記1つまたは複数のブロックが、前記現在ピクチャの再構築されたサンプルを備える、
    前記現在ピクチャを再構築した後に、前記現在ピクチャの現在ブロックに複数のフィルタの特定の関数を適用するための手段と、前記現在ブロックが、前記現在ピクチャの前記再構築されたサンプルを備える、
    を備える、装置。
  57. 命令を記憶したコンピュータ可読データ記憶媒体であって、前記命令が、実行されたとき、ビデオデータを復号または符号化するためのデバイスを、
    前記ビデオデータの現在ピクチャの1つまたは複数のブロックを再構築することと、前記現在ピクチャの前記1つまたは複数のブロックが、前記現在ピクチャの再構築されたサンプルを備える、
    前記現在ピクチャの前記1つまたは複数のブロックを再構築した後に、前記現在ピクチャの現在ブロックに複数のフィルタの特定の関数を適用することと、前記現在ブロックが、前記現在ピクチャの前記再構築されたサンプルを備える、
    を行うように構成する、コンピュータ可読データ記憶媒体。
JP2018560086A 2016-05-16 2017-05-16 ビデオコーディングにおける適応ループフィルタ処理における複数のフィルタの混同 Pending JP2019519982A (ja)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US201662337243P 2016-05-16 2016-05-16
US62/337,243 2016-05-16
US201662440877P 2016-12-30 2016-12-30
US62/440,877 2016-12-30
US15/595,018 US10419755B2 (en) 2016-05-16 2017-05-15 Confusion of multiple filters in adaptive loop filtering in video coding
US15/595,018 2017-05-15
PCT/US2017/032853 WO2017201011A1 (en) 2016-05-16 2017-05-16 Confusion of multiple filters in adaptive loop filtering in video coding

Publications (2)

Publication Number Publication Date
JP2019519982A true JP2019519982A (ja) 2019-07-11
JP2019519982A5 JP2019519982A5 (ja) 2020-05-28

Family

ID=60297166

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018560086A Pending JP2019519982A (ja) 2016-05-16 2017-05-16 ビデオコーディングにおける適応ループフィルタ処理における複数のフィルタの混同

Country Status (9)

Country Link
US (1) US10419755B2 (ja)
EP (1) EP3459245B1 (ja)
JP (1) JP2019519982A (ja)
KR (1) KR102519780B1 (ja)
CN (1) CN109076218B (ja)
BR (1) BR112018073380A2 (ja)
CA (1) CA3020233A1 (ja)
TW (1) TW201743619A (ja)
WO (1) WO2017201011A1 (ja)

Families Citing this family (70)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10223612B2 (en) * 2016-09-01 2019-03-05 Microsoft Technology Licensing, Llc Frame aggregation network for scalable video face recognition
KR102543752B1 (ko) * 2016-12-22 2023-06-14 주식회사 케이티 비디오 신호 처리 방법 및 장치
CN116760980A (zh) 2017-07-05 2023-09-15 艾锐势有限责任公司 对视频编码、解码的方法和计算机可读存储器或存储装置
EP3454556A1 (en) * 2017-09-08 2019-03-13 Thomson Licensing Method and apparatus for video encoding and decoding using pattern-based block filtering
WO2019089695A1 (en) * 2017-11-01 2019-05-09 Vid Scale, Inc. Methods for simplifying adaptive loop filter in video coding
CN115955562A (zh) 2017-11-29 2023-04-11 韩国电子通信研究院 采用环内滤波的图像编码/解码方法和装置
EP4246973A3 (en) * 2018-03-09 2023-12-06 Huawei Technologies Co., Ltd. Method and apparatus for image filtering with adaptive multiplier coefficients
US11451773B2 (en) * 2018-06-01 2022-09-20 Qualcomm Incorporated Block-based adaptive loop filter (ALF) design and signaling
KR102648120B1 (ko) 2018-06-29 2024-03-18 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 슬라이스/타일/lcu 행마다의 룩업 테이블 리셋
TWI744661B (zh) 2018-06-29 2021-11-01 大陸商北京字節跳動網絡技術有限公司 要根據模式檢查的查找表中的運動候選的數量
CN110662052B (zh) 2018-06-29 2022-07-08 北京字节跳动网络技术有限公司 更新查找表(lut)的条件
KR20240005239A (ko) 2018-06-29 2024-01-11 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 Lut와 amvp 사이의 상호작용
BR112020024142A2 (pt) 2018-06-29 2021-03-02 Beijing Bytedance Network Technology Co., Ltd. método para processamento de vídeo, aparelho para codificação de dados de vídeo, meio de armazenamento e meio de gravação legíveis por computador não transitório
KR20210025537A (ko) 2018-06-29 2021-03-09 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 하나 또는 다수의 룩업 테이블들을 사용하여 이전에 코딩된 모션 정보를 순서대로 저장하고 이를 사용하여 후속 블록들을 코딩하는 개념
WO2020003257A1 (en) * 2018-06-29 2020-01-02 Beijing Bytedance Network Technology Co., Ltd. Boundary filtering for sub-block
CN114845108A (zh) 2018-06-29 2022-08-02 抖音视界(北京)有限公司 查找表的更新:fifo、约束的fifo
CN110662056B (zh) 2018-06-29 2022-06-07 北京字节跳动网络技术有限公司 哪个查找表需要更新或不更新
CN114885173A (zh) 2018-06-29 2022-08-09 抖音视界(北京)有限公司 Lut中的运动候选的检查顺序
TWI731364B (zh) 2018-07-02 2021-06-21 大陸商北京字節跳動網絡技術有限公司 Hmvp+非相鄰運動
GB2590310B (en) 2018-09-12 2023-03-22 Beijing Bytedance Network Tech Co Ltd Conditions for starting checking HMVP candidates depend on total number minus K
US11122264B2 (en) * 2018-12-06 2021-09-14 Qualcomm Incorporated Adaptive loop filter (ALF) coefficients in video coding
CN113498605A (zh) 2018-12-23 2021-10-12 华为技术有限公司 编码器、解码器及使用自适应环路滤波器的相应方法
KR20240010576A (ko) 2019-01-10 2024-01-23 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 Lut 업데이트의 호출
WO2020143824A1 (en) 2019-01-13 2020-07-16 Beijing Bytedance Network Technology Co., Ltd. Interaction between lut and shared merge list
WO2020147773A1 (en) 2019-01-16 2020-07-23 Beijing Bytedance Network Technology Co., Ltd. Inserting order of motion candidates in lut
EP3915253A4 (en) 2019-01-25 2022-11-09 HFI Innovation Inc. METHOD AND APPARATUS FOR NON-LINEAR ADAPTIVE LOOP FILTERING IN VIDEO CODING
CN117560509A (zh) * 2019-03-04 2024-02-13 北京字节跳动网络技术有限公司 视频处理中滤波信息的两级信令
EP3935860A1 (en) * 2019-03-08 2022-01-12 Canon Kabushiki Kaisha An adaptive loop filter
US11159791B2 (en) * 2019-03-16 2021-10-26 Mediatek Inc. Method and apparatus for signaling adaptive loop filter parameters in video coding
CN113615193A (zh) 2019-03-22 2021-11-05 北京字节跳动网络技术有限公司 Merge列表构建和其他工具之间的交互
US11546587B2 (en) 2019-04-11 2023-01-03 Mediatek Inc. Adaptive loop filter with adaptive parameter set
WO2020211769A1 (en) * 2019-04-15 2020-10-22 Beijing Bytedance Network Technology Co., Ltd. Clipping parameter derivation in adaptive loop filter
EP3949394A4 (en) 2019-05-02 2022-09-21 Beijing Bytedance Network Technology Co., Ltd. INTRA VIDEO CODING USING MULTIPLE REFERENCE FILTERS
CN113812152B (zh) * 2019-05-14 2023-10-03 北京字节跳动网络技术有限公司 帧内视频编解码的滤波器选择
CN114097228B (zh) 2019-06-04 2023-12-15 北京字节跳动网络技术有限公司 具有几何分割模式编解码的运动候选列表
KR102627821B1 (ko) 2019-06-04 2024-01-23 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 이웃 블록 정보를 사용한 모션 후보 리스트 구성
US11134275B2 (en) * 2019-06-04 2021-09-28 Tencent America LLC Method and apparatus for performing primary transform based on filtering of blocks
CN113994671A (zh) 2019-06-14 2022-01-28 北京字节跳动网络技术有限公司 基于颜色格式处理视频单元边界和虚拟边界
KR20220030953A (ko) 2019-07-09 2022-03-11 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 적응적 루프 필터링을 위한 샘플 결정
MX2022000123A (es) 2019-07-11 2022-02-16 Beijing Bytedance Network Tech Co Ltd Relleno de muestras en filtrado de bucle adaptativo.
CN114175636B (zh) * 2019-07-14 2024-01-12 北京字节跳动网络技术有限公司 自适应参数集中的自适应环路滤波的指示
WO2021008546A1 (en) 2019-07-15 2021-01-21 Beijing Bytedance Network Technology Co., Ltd. Accessing samples across video unit boundaries in adaptive loop filtering
KR20220044271A (ko) 2019-08-10 2022-04-07 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 비디오 비트스트림들에서의 서브픽처 의존적 시그널링
MX2022002815A (es) * 2019-09-14 2022-04-06 Bytedance Inc Parametro de cuantificacion para filtrado de desbloqueo de croma.
EP4018652A4 (en) 2019-09-22 2022-11-02 Beijing Bytedance Network Technology Co., Ltd. FILLING METHOD IN AN ADAPTIVE LOOP FILTER
EP4022910A4 (en) 2019-09-27 2022-11-16 Beijing Bytedance Network Technology Co., Ltd. ADAPTIVE LOOP FILTERING BETWEEN DIFFERENT VIDEO UNITS
CN114450959A (zh) 2019-09-28 2022-05-06 北京字节跳动网络技术有限公司 视频编解码中的几何分割模式
KR102609308B1 (ko) 2019-10-02 2023-12-05 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 비디오 비트스트림에서의 서브픽처 시그널링을 위한 신택스
WO2021072177A1 (en) 2019-10-09 2021-04-15 Bytedance Inc. Cross-component adaptive loop filtering in video coding
CN114556939A (zh) 2019-10-10 2022-05-27 北京字节跳动网络技术有限公司 自适应环路滤波中不可用样点位置处的填充处理
CN114556924B (zh) 2019-10-14 2024-01-26 字节跳动有限公司 视频处理中色度残差的联合编解码与滤波的方法、装置及介质
EP4032290A4 (en) 2019-10-18 2022-11-30 Beijing Bytedance Network Technology Co., Ltd. SYNTAX CONSTRAINTS IN REPORTING SUBPICTURE PARAMETER SETS
JP7389252B2 (ja) * 2019-10-29 2023-11-29 北京字節跳動網絡技術有限公司 クロスコンポーネント適応ループフィルタ
WO2021112652A1 (ko) * 2019-12-05 2021-06-10 한국전자통신연구원 영역 차등적 영상 부호화/복호화를 위한 방법, 장치 및 기록 매체
KR20220106116A (ko) 2019-12-09 2022-07-28 바이트댄스 아이엔씨 비디오 코딩에서 양자화 그룹 사용
WO2021118265A1 (ko) * 2019-12-12 2021-06-17 엘지전자 주식회사 적응적 루프 필터를 적용하는 비디오 또는 영상 코딩
JP2023509052A (ja) * 2019-12-31 2023-03-06 ホアウェイ・テクノロジーズ・カンパニー・リミテッド エンコーダ、デコーダ、および対応する方法
WO2021138293A1 (en) 2019-12-31 2021-07-08 Bytedance Inc. Adaptive color transform in video coding
CN115280768A (zh) * 2020-01-13 2022-11-01 抖音视界有限公司 视频编解码中的子图片边界滤波
US11303892B2 (en) * 2020-01-23 2022-04-12 Qualcomm Incorporated Adaptive rounding for loop filters
CN115443653A (zh) 2020-04-07 2022-12-06 抖音视界有限公司 高级别语法中的帧间预测的信令通知
KR20240027894A (ko) * 2020-04-08 2024-03-04 베이징 다지아 인터넷 인포메이션 테크놀로지 컴퍼니 리미티드 비디오 코딩에서의 신택스 요소들의 시그널링을 위한 방법 및 장치
WO2021204233A1 (en) 2020-04-09 2021-10-14 Beijing Bytedance Network Technology Co., Ltd. Constraints on adaptation parameter set based on color format
WO2021204251A1 (en) 2020-04-10 2021-10-14 Beijing Bytedance Network Technology Co., Ltd. Use of header syntax elements and adaptation parameter set
CN115868159A (zh) 2020-04-17 2023-03-28 抖音视界有限公司 自适应参数集单元的存在
WO2021222036A1 (en) 2020-04-26 2021-11-04 Bytedance Inc. Conditional signaling of video coding syntax elements
CN117882370A (zh) * 2021-08-14 2024-04-12 抖音视界有限公司 视频编解码中的自适应环路滤波器的高级融合模式
CN117882371A (zh) * 2021-08-14 2024-04-12 抖音视界有限公司 视频编解码中的自适应环路滤波器的融合模式
WO2023020305A1 (en) * 2021-08-14 2023-02-23 Beijing Bytedance Network Technology Co., Ltd. Improved fusion mode for adaptive loop filter in video coding
US20230179763A1 (en) * 2021-12-06 2023-06-08 Tencent America LLC Interpolation Filters for Adaptive Motion Vector Difference Resolution

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011005317A2 (en) * 2009-07-07 2011-01-13 Thomson Licensing Methods and apparatus for collaborative partition coding for region based filters
WO2011152425A1 (ja) * 2010-06-03 2011-12-08 シャープ株式会社 フィルタ装置、画像復号装置、画像符号化装置、および、フィルタパラメータのデータ構造
JP2013009241A (ja) * 2011-06-27 2013-01-10 Nippon Telegr & Teleph Corp <Ntt> 映像符号化方法,装置,映像復号方法,装置およびそれらのプログラム

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7065212B1 (en) * 2000-10-27 2006-06-20 Matsushita Electric Industrial Co., Ltd. Data hiding in communication
US7346226B2 (en) 2003-12-16 2008-03-18 Genesis Microchip Inc. Method and apparatus for MPEG artifacts reduction
US8295633B2 (en) * 2007-04-04 2012-10-23 Samsung Electronics Co., Ltd. System and method for an adaptive de-blocking filter after decoding of compressed digital video
EP2266321B1 (en) 2008-04-23 2017-12-13 Telefonaktiebolaget LM Ericsson (publ) Template-based pixel block processing
KR101098739B1 (ko) 2008-11-24 2011-12-23 한국전자통신연구원 비디오 신호의 부호화/복호화 장치 및 방법
WO2010134973A1 (en) 2009-05-18 2010-11-25 Thomson Licensing Methods and apparatus for a generalized filtering structure for video coding and decoding
KR101701342B1 (ko) * 2009-08-14 2017-02-01 삼성전자주식회사 적응적인 루프 필터링을 이용한 비디오의 부호화 방법 및 장치, 비디오 복호화 방법 및 장치
JP5604825B2 (ja) * 2009-08-19 2014-10-15 ソニー株式会社 画像処理装置および方法
WO2011031332A1 (en) * 2009-09-14 2011-03-17 Thomson Licensing Methods and apparatus for efficient video encoding and decoding of intra prediction mode
US9456111B2 (en) * 2010-06-15 2016-09-27 Mediatek Inc. System and method for content adaptive clipping
US9819966B2 (en) * 2010-09-01 2017-11-14 Qualcomm Incorporated Filter description signaling for multi-filter adaptive filtering
US9813738B2 (en) * 2010-10-05 2017-11-07 Hfi Innovation Inc. Method and apparatus of adaptive loop filtering
US9445126B2 (en) 2011-01-05 2016-09-13 Qualcomm Incorporated Video filtering using a combination of one-dimensional switched filter and one-dimensional adaptive filter
US8964852B2 (en) * 2011-02-23 2015-02-24 Qualcomm Incorporated Multi-metric filtering
CN102857751B (zh) * 2011-07-01 2015-01-21 华为技术有限公司 一种视频编解码方法和装置
US9386305B2 (en) * 2011-11-28 2016-07-05 Qualcomm Incorporated Largest coding unit (LCU) or partition-based syntax for adaptive loop filter and sample adaptive offset in video coding
US8983218B2 (en) * 2012-04-11 2015-03-17 Texas Instruments Incorporated Virtual boundary processing simplification for adaptive loop filtering (ALF) in video coding
RS56322B1 (sr) * 2012-04-16 2017-12-29 Hfi Innovation Inc Postupak i aparat za filtriranje u petlji preko granica režnja ili pločice
US9596461B2 (en) * 2012-11-26 2017-03-14 Qualcomm Incorporated Loop filtering across constrained intra block boundaries in video coding
US10009621B2 (en) * 2013-05-31 2018-06-26 Qualcomm Incorporated Advanced depth inter coding based on disparity of depth blocks
US20150365703A1 (en) * 2014-06-13 2015-12-17 Atul Puri System and method for highly content adaptive quality restoration filtering for video coding
US11064195B2 (en) 2016-02-15 2021-07-13 Qualcomm Incorporated Merging filters for multiple classes of blocks for video coding
US10223612B2 (en) * 2016-09-01 2019-03-05 Microsoft Technology Licensing, Llc Frame aggregation network for scalable video face recognition

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011005317A2 (en) * 2009-07-07 2011-01-13 Thomson Licensing Methods and apparatus for collaborative partition coding for region based filters
WO2011152425A1 (ja) * 2010-06-03 2011-12-08 シャープ株式会社 フィルタ装置、画像復号装置、画像符号化装置、および、フィルタパラメータのデータ構造
JP2013009241A (ja) * 2011-06-27 2013-01-10 Nippon Telegr & Teleph Corp <Ntt> 映像符号化方法,装置,映像復号方法,装置およびそれらのプログラム

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
MARTA KARCZEWICZ ET AL.: "EE2.5: Improvements on adaptive loop filter", JOINT VIDEO EXPLORATION TEAM (JVET) OF ITU-T SG 16 WP 3 AND ISO/IEC JTC 1/SC 29/WG 11, vol. JVET-C0038, JPN6021020418, May 2016 (2016-05-01), pages 1 - 4, ISSN: 0004519751 *
MARTA KARCZEWICZ ET AL.: "Improvements on adaptive loop filter", JOINT VIDEO EXPLORATION TEAM (JVET) OF ITU-T SG 16 WP 3 AND ISO/IEC JTC 1/SC 29/WG 11, vol. JVET-B0060, JPN6021020417, February 2016 (2016-02-01), pages 1 - 6, ISSN: 0004519750 *

Also Published As

Publication number Publication date
CN109076218B (zh) 2021-12-21
EP3459245B1 (en) 2022-07-27
KR102519780B1 (ko) 2023-04-07
EP3459245A1 (en) 2019-03-27
TW201743619A (zh) 2017-12-16
CA3020233A1 (en) 2017-11-23
KR20190008230A (ko) 2019-01-23
CN109076218A (zh) 2018-12-21
WO2017201011A1 (en) 2017-11-23
BR112018073380A2 (pt) 2019-03-06
US20170332075A1 (en) 2017-11-16
US10419755B2 (en) 2019-09-17

Similar Documents

Publication Publication Date Title
KR102519780B1 (ko) 비디오 코딩에서 적응적 루프 필터링에서의 다중 필터들의 혼동
JP7055833B2 (ja) 並列処理のためのイントラブロックコピー予測制限
US10419757B2 (en) Cross-component filter
KR102310752B1 (ko) 슬라이스 레벨 인트라 블록 카피 및 기타 비디오 코딩 개선
TWI782904B (zh) 合併用於視訊寫碼之用於多類別區塊之濾波器
JP6339183B2 (ja) Hevcにおけるサブ予測ユニット(pu)ベースの時間的動きベクトル予測および3d−hevcにおけるサブpu設計
KR102465720B1 (ko) 필터링 정보의 시그널링
JP6783788B2 (ja) ビデオコーディングにおけるサブブロックの動き情報の導出
JP2023159110A (ja) 時間的スケーラビリティサポートのための修正された適応ループフィルタ時間的予測
US9491458B2 (en) Scalable video coding prediction with non-causal information
JP2019514292A (ja) ビデオコーディングにおけるコロケート参照インデックスのための適合制約
US20130258052A1 (en) Inter-view residual prediction in 3d video coding
US20180199055A1 (en) Encoding optimization with illumination compensation and integer motion vector restriction
JP2016537839A (ja) Hevcにおけるサブ予測ユニット(pu)ベースの時間的動きベクトル予測および3d−hevcにおけるサブpu設計
JP2020526956A (ja) ビデオコーディングにおける改善されたイントラ予測
JP2016507966A (ja) 高効率ビデオコーディングに基づくビデオ情報のスケーラブルコーディングのためのデバイスおよび方法
JP2015525988A (ja) 3dビデオコーディングのための深度マップのイントラコーディング
JP2015529065A (ja) スケーラブルビデオコーディングおよび3dビデオコーディングのための多重仮説動き補償
JP2018511234A (ja) コード化パラメータのhevc予測についての利用可能性検査を低減するためのパディング
JP2016533119A (ja) サブpuレベル高度残差予測
WO2020038232A1 (zh) 一种图像块的运动信息的预测方法及装置

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200420

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200420

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210520

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210601

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20211221