(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-01-12
(54)【発明の名称】固定されたフィルタを用いる適応ループフィルタ
(51)【国際特許分類】
H04N 19/117 20140101AFI20240104BHJP
H04N 19/82 20140101ALI20240104BHJP
【FI】
H04N19/117
H04N19/82
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2023535712
(86)(22)【出願日】2021-12-22
(85)【翻訳文提出日】2023-06-12
(86)【国際出願番号】 US2021064898
(87)【国際公開番号】W WO2022140567
(87)【国際公開日】2022-06-30
(32)【優先日】2020-12-23
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2021-02-11
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2021-12-21
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】595020643
【氏名又は名称】クゥアルコム・インコーポレイテッド
【氏名又は名称原語表記】QUALCOMM INCORPORATED
(74)【代理人】
【識別番号】110003708
【氏名又は名称】弁理士法人鈴榮特許綜合事務所
(72)【発明者】
【氏名】カルチェビチ、マルタ
(72)【発明者】
【氏名】フー、ナン
(72)【発明者】
【氏名】セレジン、バディム
【テーマコード(参考)】
5C159
【Fターム(参考)】
5C159TA69
5C159TB08
5C159TC02
5C159UA16
(57)【要約】
ビデオデコータは、再構築サンプルについての第1のクラスインデックスを決定し、第1のクラスインデックスに基づいて、フィルタの第1のセットからフィルタを選択し、第1の中間サンプル値を決定するために、再構築サンプルに、フィルタの第1のセットからのフィルタを適用することによって、再構築サンプルに、第1の段階の適応ループフィルタ(ALF)を適用することと、再構築サンプルについての第2のクラスインデックスを決定し、第2のクラスインデックスに基づいて、フィルタの第2のセットから第2のフィルタを選択し、第1のサンプル変更値を決定するために、再構築サンプルに、第2のフィルタを適用し、第1の中間サンプル値に基づいて、第2のサンプル変更値を決定することによって、再構築サンプルに、第2の段階のALFを適用することと、再構築サンプルと、第1および第2のサンプル変更値とに基づいて、フィルタリングされた再構築サンプルを決定することとを行うように構成され得る。
【特許請求の範囲】
【請求項1】
ビデオデータを復号する方法であって、前記方法が、
再構築ブロックの再構築サンプルに、第1の段階の適応ループフィルタ(ALF)を適用することと、ここにおいて、前記第1の段階のALFを適用することが、
前記再構築サンプルについての第1のクラスインデックスを決定することと、
前記第1のクラスインデックスに基づいて、フィルタの第1のセットからフィルタを選択することと、
第1の中間サンプル値を決定するために、前記再構築サンプルに、フィルタの前記第1のセットからの前記フィルタを適用することと
を備え、
前記再構築サンプルに、第2の段階のALFを適用することと、ここにおいて、前記第2の段階のALFを適用することが、
前記再構築サンプルについての第2のクラスインデックスを決定することと、
前記第2のクラスインデックスに基づいて、フィルタの第2のセットから第2のフィルタを選択することと、
第1のサンプル変更値を決定するために、前記再構築サンプルに、前記第2のフィルタを適用することと、
前記第1の中間サンプル値に基づいて、第2のサンプル変更値を決定することと
を備え、
前記再構築サンプルと、前記第1のサンプル変更値と、前記第2のサンプル変更値とに基づいて、フィルタリングされた再構築サンプルを決定することと
を備える、方法。
【請求項2】
フィルタの前記第1のセットが、固定されたフィルタを備える、請求項1に記載の方法。
【請求項3】
フィルタの前記第2のセットが、前記ビデオデータ内においてシグナリングされたシンタックスに基づいて決定された、シグナリングされたフィルタを備える、請求項1に記載の方法。
【請求項4】
前記第1のクラスインデックスを決定することが、
前記再構築サンプルについてのアクティビティ値を決定することと、
前記再構築サンプルについての方向を決定することと、
前記アクティビティ値と、前記方向とに基づいて、前記第1のクラスインデックスを決定することと
を備える、請求項1に記載の方法。
【請求項5】
前記方向を決定することが、前記方向に56個の値のうちの1つを割り当てることを備える、請求項4に記載の方法。
【請求項6】
フィルタの前記第1のセットが、9×9のダイヤモンド形状フィルタを含む、請求項1に記載の方法。
【請求項7】
前記再構築サンプルと、前記第1のサンプル変更値と、前記第2のサンプル変更値とに基づいて、前記フィルタリングされた再構築サンプルを決定することが、前記再構築サンプルに、前記第1のサンプル変更値と、前記第2のサンプル変更値とを加算することを備える、請求項1に記載の方法。
【請求項8】
前記第1の中間サンプル値に基づいて、前記第2のサンプル変更値を決定することが、クリッピングされたサンプル変更値を決定するために、前記第2のサンプル変更値をクリッピングすることと、前記再構築サンプルに、前記第1のサンプル変更値と、前記クリッピングされたサンプル変更値とを加算することとを備える、請求項1に記載の方法。
【請求項9】
前記ビデオデータ内において、前記クリッピングされたサンプル変更値を受信すること
をさらに備える、請求項8に記載の方法。
【請求項10】
前記第1の中間サンプル値に基づいて、前記第2のサンプル変更値を決定することが、前記再構築サンプルと前記第1の中間サンプル値との間の差を決定することを備える、請求項1に記載の方法。
【請求項11】
前記再構築ブロックについての量子化パラメータに基づいて、固定されたフィルタの複数のセットからフィルタの前記第1のセットを選択すること
をさらに備える、請求項1に記載の方法。
【請求項12】
前記第1の段階のALFを適用することが、前記再構築サンプルについての第3のクラスインデックスを決定することと、前記第3のクラスインデックスに基づいて、フィルタの第2のセットから第3のフィルタを選択することと、第2の中間サンプル値を決定するために、前記再構築サンプルに、フィルタの前記第2のセットからの前記第3のフィルタを適用することとをさらに備え、
前記再構築サンプルに、前記第2の段階のALFを適用することが、前記第1の中間サンプル値と、前記第2の中間サンプル値とに基づいて、前記第2のサンプル変更値を決定することをさらに備える、
請求項1に記載の方法。
【請求項13】
前記再構築サンプルを決定するために、残差サンプル値に、予測サンプル値を加算すること
をさらに備える、請求項1に記載の方法。
【請求項14】
前記再構築サンプルを決定するために、前記予測サンプル値と前記残差サンプル値との和に、デブロッキングフィルタを適用すること
をさらに備える、請求項13に記載の方法。
【請求項15】
前記ビデオデータの復号ピクチャを出力し、ここにおいて、前記復号ピクチャが、前記フィルタリングされた再構築サンプルを備えることをさらに備える、
請求項1に記載の方法。
【請求項16】
復号の前記方法が、ビデオ符号化プロセスの一部として実行される、請求項1に記載の方法。
【請求項17】
ビデオデータを復号するためのデバイスであって、前記デバイスが、
ビデオデータを記憶するように構成されたメモリと、
回路で実施され、
再構築ブロックの再構築サンプルに、第1の段階の適応ループフィルタ(ALF)を適用することと、ここにおいて、前記第1の段階のALFを適用するために、1つまたは複数のプロセッサが、
前記再構築サンプルについての第1のクラスインデックスを決定することと、
前記第1のクラスインデックスに基づいて、フィルタの第1のセットからフィルタを選択することと、
第1の中間サンプル値を決定するために、前記再構築サンプルに、フィルタの前記第1のセットからの前記フィルタを適用することと
を行うようにさらに構成され、
前記再構築サンプルに、第2の段階のALFを適用することと、ここにおいて、前記第2の段階のALFを適用するために、前記1つまたは複数のプロセッサが、
前記再構築サンプルについての第2のクラスインデックスを決定することと、
前記第2のクラスインデックスに基づいて、フィルタの第2のセットから第2のフィルタを選択することと、
第1のサンプル変更値を決定するために、前記再構築サンプルに、前記第2のフィルタを適用することと、
前記第1の中間サンプル値に基づいて、第2のサンプル変更値を決定することと
を行うようにさらに構成され、
前記再構築サンプルと、前記第1のサンプル変更値と、前記第2のサンプル変更値とに基づいて、フィルタリングされた再構築サンプルを決定することと
を行うように構成された、1つまたは複数のプロセッサと
を備える、デバイス。
【請求項18】
フィルタの前記第1のセットが、固定されたフィルタを備える、請求項17に記載のデバイス。
【請求項19】
フィルタの前記第2のセットが、前記ビデオデータ内においてシグナリングされたシンタックスに基づいて決定された、シグナリングされたフィルタを備える、請求項17に記載のデバイス。
【請求項20】
前記第1のクラスインデックスを決定するために、前記1つまたは複数のプロセッサが、
前記再構築サンプルについてのアクティビティ値を決定することと、
前記再構築サンプルについての方向を決定することと、
前記アクティビティ値と、前記方向とに基づいて、前記第1のクラスインデックスを決定することと
を行うようにさらに構成される、請求項17に記載のデバイス。
【請求項21】
前記方向を決定するために、前記1つまたは複数のプロセッサが、前記方向に56個の値のうちの1つを割り当てるようにさらに構成される、請求項20に記載のデバイス。
【請求項22】
フィルタの前記第1のセットが、9×9のダイヤモンド形状フィルタを含む、請求項17に記載のデバイス。
【請求項23】
前記再構築サンプルと、前記第1のサンプル変更値と、前記第2のサンプル変更値とに基づいて、前記フィルタリングされた再構築サンプルを決定するために、前記1つまたは複数のプロセッサが、前記再構築サンプルに、前記第1のサンプル変更値と、前記第2のサンプル変更値とを加算するようにさらに構成される、請求項17に記載のデバイス。
【請求項24】
前記第1の中間サンプル値に基づいて、前記第2のサンプル変更値を決定するために、前記1つまたは複数のプロセッサが、クリッピングされたサンプル変更値を決定するために、前記第2のサンプル変更値をクリッピングすることと、前記再構築サンプルに、前記第1のサンプル変更値と、前記クリッピングされたサンプル変更値とを加算することとを行うようにさらに構成される、請求項17に記載のデバイス。
【請求項25】
前記1つまたは複数のプロセッサが、
前記ビデオデータ内において、前記クリッピングされたサンプル変更値を受信する
ようにさらに構成される、請求項24に記載のデバイス。
【請求項26】
前記第1の中間サンプル値に基づいて、前記第2のサンプル変更値を決定するために、前記1つまたは複数のプロセッサが、前記再構築サンプルと前記第1の中間サンプル値との間の差を決定するようにさらに構成される、請求項17に記載のデバイス。
【請求項27】
前記1つまたは複数のプロセッサが、
前記再構築ブロックについての量子化パラメータに基づいて、固定されたフィルタの複数のセットからフィルタの前記第1のセットを選択する
ようにさらに構成される、請求項17に記載のデバイス。
【請求項28】
前記第1の段階のALFを適用するために、前記1つまたは複数のプロセッサが、前記再構築サンプルについての第3のクラスインデックスを決定することと、前記第3のクラスインデックスに基づいて、フィルタの第2のセットから第3のフィルタを選択することと、第2の中間サンプル値を決定するために、前記再構築サンプルに、フィルタの前記第2のセットからの前記第3のフィルタを適用することとを行うようにさらに構成され、
前記再構築サンプルに、前記第2の段階のALFを適用するために、前記1つまたは複数のプロセッサが、前記第1の中間サンプル値と、前記第2の中間サンプル値とに基づいて、前記第2のサンプル変更値を決定するようにさらに構成される、
請求項17に記載のデバイス。
【請求項29】
前記1つまたは複数のプロセッサが、
前記再構築サンプルを決定するために、残差サンプル値に、予測サンプル値を加算する
ようにさらに構成される、請求項17に記載のデバイス。
【請求項30】
前記1つまたは複数のプロセッサが、
前記再構築サンプルを決定するために、前記予測サンプル値と前記残差サンプル値との和に、デブロッキングフィルタを適用する
ようにさらに構成される、請求項29に記載のデバイス。
【請求項31】
前記1つまたは複数のプロセッサが、
前記ビデオデータの復号ピクチャを出力し、ここにおいて、前記復号ピクチャが、前記フィルタリングされた再構築サンプルを備える
ようにさらに構成される、請求項17に記載のデバイス。
【請求項32】
前記デバイスが、ビデオ符号化デバイスを備える、請求項17に記載のデバイス。
【請求項33】
前記デバイスが、符号化ビデオデータを受信するように構成された受信機をさらに備える、ワイヤレス通信デバイスを備える、請求項32に記載のデバイス。
【請求項34】
前記ワイヤレス通信デバイスが、電話ハンドセットを備え、ここにおいて、前記受信機が、前記符号化ビデオデータを備える信号を、ワイヤレス通信規格に従って、復調するように構成される、請求項33に記載のデバイス。
【請求項35】
復号ビデオデータを表示するように構成されたディスプレイ
をさらに備える、請求項17に記載のデバイス。
【請求項36】
前記デバイスが、カメラ、コンピュータ、モバイルデバイス、放送受信機デバイス、またはセットトップボックスのうちの1つまたは複数を備える、請求項17に記載のデバイス。
【請求項37】
前記デバイスが、ビデオ符号化デバイスを備える、請求項17に記載のデバイス。
【請求項38】
1つまたは複数のプロセッサによって実行されたときに、前記1つまたは複数のプロセッサに、
再構築ブロックの再構築サンプルに、第1の段階の適応ループフィルタ(ALF)を適用することと、ここにおいて、前記第1の段階のALFを適用するために、前記1つまたは複数のプロセッサが、
前記再構築サンプルについての第1のクラスインデックスを決定することと、
前記第1のクラスインデックスに基づいて、フィルタの第1のセットからフィルタを選択することと、
第1の中間サンプル値を決定するために、前記再構築サンプルに、フィルタの前記第1のセットからの前記フィルタを適用することと
を行うようにさらに構成され、
前記再構築サンプルに、第2の段階のALFを適用することと、ここにおいて、前記第2の段階のALFを適用するために、前記1つまたは複数のプロセッサが、
前記再構築サンプルについての第2のクラスインデックスを決定することと、
前記第2のクラスインデックスに基づいて、フィルタの第2のセットから第2のフィルタを選択することと、
第1のサンプル変更値を決定するために、前記再構築サンプルに、前記第2のフィルタを適用することと、
前記第1の中間サンプル値に基づいて、第2のサンプル変更値を決定することと
を行うようにさらに構成され、
前記再構築サンプルと、前記第1のサンプル変更値と、前記第2のサンプル変更値とに基づいて、フィルタリングされた再構築サンプルを決定することと
を行わせる命令を記憶した、コンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
[0001] 本出願は、各々の内容全体が参照によって本明細書に組み込まれる、2021年12月21日に出願された米国特許出願第17/557,706号、2021年2月11日に出願された米国仮特許出願第63/148,538号、および2020年12月23日に出願された米国仮特許出願第63/130,275号に基づく優先権を主張する。2021年12月21日に出願された米国特許出願第17/557,706号は、2021年2月11日に出願された米国仮特許出願第63/148,538号、および2020年12月23日に出願された米国仮特許出願第63/130,275号に基づく利益を主張する。
【0002】
[0002] 本開示は、ビデオ符号化(video encoding)およびビデオ復号(video decoding)に関する。
【背景技術】
【0003】
[0003] デジタルビデオ能力は、デジタルテレビジョン、デジタルダイレクトブロードキャストシステム、ワイヤレスブロードキャストシステム、携帯情報端末(PDA)、ラップトップまたはデスクトップコンピュータ、タブレットコンピュータ、電子ブックリーダー、デジタルカメラ、デジタル記録デバイス、デジタルメディアプレーヤ、ビデオゲーミングデバイス、ビデオゲームコンソール、セルラー電話または衛星無線電話、いわゆる「スマートフォン」、ビデオ遠隔会議デバイス、ビデオストリーミングデバイスなどを含む、広範囲のデバイスに組み込まれ得る。デジタルビデオデバイスは、MPEG-2、MPEG-4、ITU-T H.263、ITU-T H.264/MPEG-4、Part10,アドバンストビデオコーディング(AVC)、ITU-T H.265/高効率ビデオコーディング(HEVC)によって定義された規格、およびそのような規格の拡張に記載されているビデオコーディング技法など、ビデオコーディング技法を実装する。ビデオデバイスは、そのようなビデオコーディング技法を実装することによって、デジタルビデオ情報をより効率的に送信、受信、符号化、復号、および/または記憶し得る。
【0004】
[0004] ビデオコーディング技法は、ビデオシーケンスに固有の冗長性を低減または除去するための空間(ピクチャ内)予測および/または時間(ピクチャ間)予測を含む。ブロックベースのビデオコーディングでは、ビデオスライス(たとえば、ビデオピクチャまたはビデオピクチャの一部分)が、コーディングツリーユニット(CTU)、コーディングユニット(CU)および/またはコーディングノードと呼ばれることもある、ビデオブロックに区分され得る。ピクチャのイントラコード化(I)スライス中のビデオブロックは、同じピクチャ中の隣接ブロック中の参照サンプルに対する空間予測を使用して符号化される。ピクチャのインターコード化(PまたはB)スライス中のビデオブロックは、同じピクチャ中の隣接ブロック中の参照サンプルに対する空間予測、または他の参照ピクチャ中の参照サンプルに対する時間予測を使用し得る。ピクチャはフレームと呼ばれることがあり、参照ピクチャは参照フレームと呼ばれることがある。
【発明の概要】
【0005】
[0005] 本開示の技法によれば、ビデオデコーダ(video decoder)は、2段階の適応ループフィルタリングを実行するように構成され得る。ALFの第1の段階については、ビデオデコーダは、フィルタリングされる再構築サンプル(reconstructed sample)についての、アクティビティ値(activity value)と、方向値(direction value)とを決定するように構成され得る。アクティビティ値は、一般に、フィルタリングされるサンプルの周囲のサンプルの近傍における、サンプル値の分散を示し得る。方向値は、一般に、サンプル値が、水平方向に増加しているか、垂直方向に増加しているか、45度方向に増加しているか、135度方向に増加しているか、それともまったく増加していないかなど、サンプル値が変化している方向(direction)を示し得る。アクティビティ値と、方向値とに基づいて、ビデオデコーダは、フィルタリングされるサンプルについてのクラスインデックス(class index)を決定し得る。クラスインデックスは、フィルタ(filter)の第1のセットからのフィルタと関連付けられ得、各フィルタは、形状(shape)と、係数値(coefficient value)のセットとによって、定義される。ビデオデコーダは、ビットストリーム内に含まれるシンタックス(syntax)に基づいて、フィルタの第1のセットと、どの分類器がどのフィルタに対応するかとを決定し得る。ビデオデコーダは、第1の中間サンプル値(first intermediate sample value)を決定するために、再構築サンプルに、フィルタを適用し得る。
【0006】
[0006] ALFの第2の段階については、ビデオデコーダは、再構築サンプルに、第2のフィルタ(second filter)を適用することによって、第1のサンプル変更値(first sample modification value)を決定し、第1の中間サンプル値に基づいて、第2のサンプル変更値(second sample modification value)を決定する。次いで、ビデオデコーダは、再構築サンプルと、第1のサンプル変更値と、第2のサンプル変更値とに基づいて、フィルタリングされた再構築サンプル(filtered reconstructed sample)を決定する。本明細書において説明されるように、再構築ブロック(reconstructed block)の再構築サンプルに、第1の段階のALFを適用し、再構築サンプルに、第2の段階のALF(second stage ALF)を適用することによって、本開示の技法は、ビデオデータ(video data)の局所的特徴を考慮することによって、1段階のALFによって行われ得るよりも良好に、復号ビデオデータ(decoded video data)の全体的品質を改善し得る。
【0007】
[0007] 一例によれば、ビデオデータを復号する方法は、再構築ブロックの再構築サンプルに、第1の段階の(first stage)適応ループフィルタ(ALF:adaptive loop filter)を適用することと、ここにおいて、第1の段階のALFを適用することは、再構築サンプルについての第1のクラスインデックス(first class index)を決定することと、第1のクラスインデックスに基づいて、フィルタの第1のセットからフィルタを選択することと、第1の中間サンプル値を決定するために、再構築サンプルに、フィルタの第1のセットからのフィルタを適用することとを備え、再構築サンプルに、第2の段階のALFを適用することと、ここにおいて、第2の段階のALFを適用することは、再構築サンプルについての第2のクラスインデックス(second class index)を決定することと、第2のクラスインデックスに基づいて、フィルタの第2のセットから第2のフィルタを選択することと、第1のサンプル変更値を決定するために、再構築サンプルに第2のフィルタを適用することと、第1の中間サンプル値に基づいて、第2のサンプル変更値を決定することとを備え、再構築サンプルと、第1のサンプル変更値と、第2のサンプル変更値とに基づいて、フィルタリングされた再構築サンプルを決定することとを含む。
【0008】
[0008] 一例によれば、ビデオデータを復号するためのデバイスは、ビデオデータを記憶するように構成されたメモリと、回路で実施され、再構築ブロックの再構築サンプルに、第1の段階の適応ループフィルタ(ALF)を適用することと、ここにおいて、第1の段階のALFを適用するために、1つまたは複数のプロセッサ(processor)が、再構築サンプルについての第1のクラスインデックスを決定することと、第1のクラスインデックスに基づいて、フィルタの第1のセットからフィルタを選択することと、第1の中間サンプル値を決定するために、再構築サンプルに、フィルタの第1のセットからのフィルタを適用することとを行うようにさらに構成され、再構築サンプルに、第2の段階のALFを適用することと、ここにおいて、第2の段階のALFを適用するために、1つまたは複数のプロセッサが、再構築サンプルについての第2のクラスインデックスを決定することと、第2のクラスインデックスに基づいて、フィルタの第2のセットから第2のフィルタを選択することと、第1のサンプル変更値を決定するために、再構築サンプルに第2のフィルタを適用することと、第1の中間サンプル値に基づいて、第2のサンプル変更値を決定することとを行うようにさらに構成され、再構築サンプルと、第1のサンプル変更値と、第2のサンプル変更値とに基づいて、フィルタリングされた再構築サンプルを決定することとを行うように構成された、1つまたは複数のプロセッサとを含む。
【0009】
[0009] 一例によれば、コンピュータ可読記憶媒体(computer-readable storage medium)は、1つまたは複数のプロセッサによって実行されたとき、1つまたは複数のプロセッサに、再構築ブロックの再構築サンプルに、第1の段階の適応ループフィルタ(ALF)を適用することと、ここにおいて、第1の段階のALFを適用するために、1つまたは複数のプロセッサが、再構築ブロックについての第1のクラスインデックスを決定することと、第1のクラスインデックスに基づいて、フィルタの第1のセットからフィルタを選択することと、第1の中間サンプル値を決定するために、再構築サンプルに、フィルタの第1のセットからのフィルタを適用することとを行うようにさらに構成され、再構築サンプルに、第2の段階のALFを適用することと、ここにおいて、第2の段階のALFを適用するために、1つまたは複数のプロセッサが、再構築サンプルについての第2のクラスインデックスを決定することと、第2のクラスインデックスに基づいて、フィルタの第2のセットから第2のフィルタを選択することと、第1のサンプル変更値を決定するために、再構築サンプルに第2のフィルタを適用することと、第1の中間サンプル値に基づいて、第2のサンプル変更値を決定することとを行うようにさらに構成され、再構築サンプルと、第1のサンプル変更値と、第2のサンプル変更値とに基づいて、フィルタリングされた再構築サンプルを決定することとを行わせる、命令を記憶する。
【0010】
[0010] 1つまたは複数の例の詳細が添付の図面および以下の説明に記載される。他の特徴、目的、および利点は、説明、図面、および特許請求の範囲から明らかになろう。
【図面の簡単な説明】
【0011】
【
図1】[0011] 本開示の技法を実施し得る例示的なビデオ符号化および復号システムを示すブロック図。
【
図2A】[0012] 本開示の技法に従って使用され得る、例示的な適応ループフィルタ形状を示す概念図。
【
図2B】本開示の技法に従って使用され得る、例示的な適応ループフィルタ形状を示す概念図。
【
図3】[0013] 本開示の技法に従って使用され得る、4×4サブブロック適応ループフィルタ分類についての例示的なサブサンプリングされたラプラシアン値を示す概念図。
【
図4】[0014] 本開示の技法に従って使用され得る、ルーマサンプルについての例示的なラプラシアン値を示す概念図。
【
図5】[0015] 本開示の技法に従って使用され得る、適応ループフィルタクラスマージングの例を示す概念図。
【
図6】[0016] 本開示の技法に従って使用され得る、7×7ダイヤモンドフィルタ形状の例示的な幾何学的変換を示す概念図。
【
図7A】[0017] 本開示の技法に従って使用され得る、ALFにおける対称サンプルパディングの例を示す図。
【
図7B】本開示の技法に従って使用され得る、ALFにおける対称サンプルパディングの例を示す図。
【
図7C】本開示の技法に従って使用され得る、ALFにおける対称サンプルパディングの例を示す図。
【
図8】[0018] 本開示の技法に従って使用され得る、ALF 4×4サブブロック分類の例を示す図。
【
図9】[0019] 本開示の技法に従った、複数の固定されたフィルタセットと、複数のシグナリングされたフィルタセットとを使用して、ビデオデータの再構築サンプルをフィルタリングするための、例示的なフレームワークを示す図。
【
図10A】[0020] 本開示の技法に従って使用され得る、5×5フィルタの例を示す図。
【
図10B】本開示の技法に従って使用され得る、7×7フィルタの例を示す図。
【
図10C】本開示の技法に従って使用され得る、9×9フィルタの例を示す図。
【
図10D】本開示の技法に従って使用され得る、11×11フィルタの例を示す図。
【
図10E】本開示の技法に従って使用され得る、13×13フィルタの例を示す図。
【
図11】[0021] 本開示の技法に従った、1つのシグナリングされたフィルタ(signaled filter)を伴った、複数の固定されたフィルタ(fixed filter)を実施するための例を示す図。
【
図12A】[0022] 本開示の技法に従って使用され得る、2部分フィルタの例を示す図。
【
図12B】本開示の技法に従って使用され得る、2部分フィルタの例を示す図。
【
図12C】本開示の技法に従って使用され得る、2部分フィルタの例を示す図。
【
図12D】本開示の技法に従って使用され得る、2部分フィルタの例を示す図。
【
図12E】本開示の技法に従って使用され得る、2部分フィルタの例を示す図。
【
図13】[0023] 本開示の技法に従った、例示的なALFフレームワークを示す概念図。
【
図14】本開示の技法に従った、例示的なALFフレームワークを示す概念図。
【
図15】[0024] 本開示の技法を実施し得る例示的なビデオエンコーダを示すブロック図。
【
図16】[0025] 本開示の技法を実施し得る例示的なビデオデコーダを示すブロック図。
【
図17】[0026] 本開示の技法を実行するための例示的なフィルタユニットを示すブロック図。
【
図18】[0027] 本開示の技法に従った、現在ブロックを符号化するための例示的なプロセスを示すフローチャート。
【
図19】[0028] 本開示の技法に従った、現在ブロックを復号するための例示的なプロセスを示すフローチャート。
【
図20】[0029] 本開示の技法に従った、現在ブロックを復号するための例示的なプロセスを示すフローチャート。
【発明を実施するための形態】
【0012】
[0030] ビデオコーディング(たとえば、ビデオ符号化および/またはビデオ復号)は、一般に、同じピクチャ中のビデオデータのすでにコーディングされたブロックからビデオデータのブロックを予測すること(すなわち、イントラ予測)または異なるピクチャ中のビデオデータのすでにコーディングされたブロックからビデオデータのブロックを予測すること(すなわち、インター予測)のいずれかを伴う。いくつかの事例では、ビデオエンコーダはまた、予測的ブロックを元のブロックと比較することによって残差データ(residual data)を計算する。したがって、残差データは、予測的ブロックと元のブロックとの間の差分を表す。ビデオエンコーダは、残差データを変換および量子化し、変換および量子化された残差データを符号化ビットストリーム中でシグナリングする。ビデオデコーダは、予測的ブロック単独でよりもぴったり元のビデオブロックに一致する再構築ビデオブロックを生成するために、残差データを予測的ブロックに加算する。復号ビデオの品質をさらに改善するために、ビデオデコーダは、再構築ビデオブロックに対して1つまたは複数のフィルタ処理演算を実施することができる。これらのフィルタ処理演算の例は、デブロックフィルタ処理(deblock filtering)と、サンプル適応オフセット(SAO:sample adaptive offset)フィルタ処理と、適応ループフィルタ処理(ALF:adaptive loop filtering)とを含む。これらのフィルタ処理演算のためのパラメータは、ビデオエンコーダによって決定され、符号化ビデオビットストリーム中で明示的にシグナリングされるか、またはパラメータが符号化ビデオビットストリーム中で明示的にシグナリングされる必要なしにビデオデコーダによって暗黙的に決定されるかのいずれかであり得る。
【0013】
[0031] 本開示は、ビデオ符号化および/またはビデオ復号プロセスにおける、再構築ビデオデータをフィルタリングすることと関連付けられた技法について説明し、より詳細には、本開示は、ALFに関連する技法について説明する。しかしながら、説明される技法は、潜在的に、他のフィルタリングスキームにも適用され得る。
【0014】
[0032] 本開示の技法によれば、ビデオデコーダは、2段階の適応ループフィルタリングを実行するように構成され得る。ALFの第1の段階については、ビデオデコーダは、フィルタリングされる再構築サンプルについての、アクティビティ値と、方向値とを決定するように構成され得る。アクティビティ値は、一般に、フィルタリングされるサンプルの周囲のサンプルの近傍における、サンプル値の分散を示し得る。方向値は、一般に、サンプル値が、水平方向に増加しているか、垂直方向に増加しているか、45度方向に増加しているか、135度方向に増加しているか、それともまったく増加していないかなど、サンプル値が変化している方向を示し得る。アクティビティ値と、方向値とに基づいて、ビデオデコーダは、フィルタリングされるサンプルについてのクラスインデックスを決定し得る。クラスインデックスは、フィルタの第1のセットからのフィルタと関連付けられ得、各フィルタは、形状と、係数値のセットとによって、定義される。ビデオデコーダは、ビットストリーム内に含まれるシンタックスに基づいて、フィルタの第1のセットと、どの分類器がどのフィルタに対応するかとを決定し得る。ビデオデコーダは、第1の中間サンプル値を決定するために、再構築サンプルに、フィルタを適用し得る。
【0015】
[0033] ALFの第2の段階については、ビデオデコーダは、再構築サンプルに、第2のフィルタを適用することによって、第1のサンプル変更値を決定し、第1の中間サンプル値に基づいて、第2のサンプル変更値を決定する。次いで、ビデオデコーダは、再構築サンプルと、第1のサンプル変更値と、第2のサンプル変更値とに基づいて、フィルタリングされた再構築サンプルを決定する。本明細書において説明されるように、再構築ブロックの再構築サンプルに、第1の段階のALFを適用し、再構築サンプルに、第2の段階のALFを適用することによって、本開示の技法は、ビデオデータの局所的特徴を考慮することによって、1段階のALFによって行われ得るよりも良好に、復号ビデオデータの全体的品質を改善し得る。
【0016】
[0034]
図1は、本開示の技法を実施し得る例示的なビデオ符号化および復号システム100を示すブロック図である。本開示の技法は、概して、ビデオデータをコーディング(符号化および/または復号)することを対象とする。概して、ビデオデータは、ビデオを処理するための何らかのデータを含む。したがって、ビデオデータは、生の符号化されていないビデオ、符号化されたビデオ、復号された(たとえば、再構築された)ビデオ、およびシグナリングデータなどのビデオメタデータを含み得る。
【0017】
[0035]
図1に示されているように、システム100は、この例では、宛先デバイス116によって復号および表示されるべき符号化ビデオデータ(encoded video data)を提供するソースデバイス102を含む。特に、ソースデバイス102は、コンピュータ可読媒体110を介して宛先デバイス116にビデオデータを提供する。ソースデバイス102と宛先デバイス116とは、デスクトップコンピュータ、ノートブック(すなわち、ラップトップ)コンピュータ、モバイルデバイス、タブレットコンピュータ、セットトップボックス、スマートフォンなどの電話ハンドセット、テレビジョン、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲーミングコンソール、ビデオストリーミングデバイス、ブロードキャスト受信機デバイスなどを含む、広範囲のデバイスのいずれかを備え得る。いくつかの場合には、ソースデバイス102と宛先デバイス116とは、ワイヤレス通信のために装備され得、したがって、ワイヤレス通信デバイスと呼ばれることがある。
【0018】
[0036]
図1の例では、ソースデバイス102は、ビデオソース104と、メモリ106と、ビデオエンコーダ200と、出力インターフェース108とを含む。宛先デバイス116は、入力インターフェース122と、ビデオデコーダ300と、メモリ120と、ディスプレイデバイス118とを含む。本開示によれば、ソースデバイス102のビデオエンコーダ200と、宛先デバイス116のビデオデコーダ300は、本明細書において説明される方式で、第1および第2の段階を使用する適応ループフィルタリングのための技法を適用するように構成され得る。したがって、ソースデバイス102はビデオ符号化デバイス(video encoding device)の一例を表し、宛先デバイス116はビデオ復号デバイスの一例を表す。他の例では、ソースデバイスと宛先デバイスとは、他の構成要素または配置を含み得る。たとえば、ソースデバイス102は、外部カメラなどの外部ビデオソースからビデオデータを受信し得る。同様に、宛先デバイス116は、一体型ディスプレイデバイスを含むのではなく、外部ディスプレイデバイスとインターフェースし得る。
【0019】
[0037]
図1に示されているシステム100は一例にすぎない。一般に、いずれのデジタルビデオ符号化および/または復号デバイスも、本明細書において説明される適応ループフィルタリングのための技法を実行し得る。ソースデバイス102と宛先デバイス116とは、ソースデバイス102が宛先デバイス116への送信のためにコード化ビデオデータを生成するようなコーディングデバイスの例にすぎない。本開示では、データのコーディング(符号化および/または復号)を実施するデバイスとして「コーディング」デバイスに言及する。したがって、ビデオエンコーダ200とビデオデコーダ300とは、コーディングデバイス、特に、それぞれビデオエンコーダとビデオデコーダとの例を表す。いくつかの例では、ソースデバイス102および宛先デバイス116は、ソースデバイス102および宛先デバイス116の各々がビデオ符号化構成要素およびビデオ復号構成要素を含むように、実質的に対称的に動作し得る。したがって、システム100は、たとえば、ビデオストリーミング、ビデオ再生、ビデオブロードキャスティング、またはビデオテレフォニーのための、ソースデバイス102と宛先デバイス116との間の一方向または双方向ビデオ送信をサポートし得る。
【0020】
[0038] 概して、ビデオソース104は、ビデオデータ(すなわち、生の符号化されていないビデオデータ)のソースを表し、ビデオデータの連続的な一連のピクチャ(「フレーム」とも呼ばれる)をビデオエンコーダ200に提供し、ビデオエンコーダ200は、ピクチャのためにデータを符号化する。ソースデバイス102のビデオソース104は、ビデオカメラ、前にキャプチャされた生のビデオを含んでいるビデオアーカイブ、および/またはビデオコンテンツプロバイダからビデオを受信するためのビデオフィードインターフェースなど、ビデオキャプチャデバイスを含み得る。さらなる代替として、ビデオソース104は、ソースビデオとして、コンピュータグラフィックスベースのデータ、またはライブビデオとアーカイブビデオとコンピュータ生成されたビデオとの組合せを生成し得る。各場合において、ビデオエンコーダ200は、キャプチャされたビデオデータ、プリキャプチャされたビデオデータ、またはコンピュータ生成されたビデオデータを符号化する。ビデオエンコーダ200は、ピクチャを、(「表示順序」と呼ばれることがある)受信順序から、コーディングのためのコーディング順序に並べ替え得る。ビデオエンコーダ200は、符号化ビデオデータを含むビットストリームを生成し得る。ソースデバイス102は、次いで、たとえば、宛先デバイス116の入力インターフェース122による受信および/または取出しのために、出力インターフェース108を介して符号化ビデオデータをコンピュータ可読媒体110上に出力し得る。
【0021】
[0039] ソースデバイス102のメモリ106と、宛先デバイス116のメモリ120とは、汎用メモリを表す。いくつかの例では、メモリ106、120は、生のビデオデータ、たとえば、ビデオソース104からの生のビデオ、およびビデオデコーダ300からの生の復号ビデオデータを記憶し得る。追加または代替として、メモリ106、120は、たとえば、それぞれ、ビデオエンコーダ200とビデオデコーダ300とによって実行可能なソフトウェア命令を記憶し得る。メモリ106およびメモリ120は、この例ではビデオエンコーダ200およびビデオデコーダ300とは別個に示されているが、ビデオエンコーダ200およびビデオデコーダ300は、機能的に同様のまたは等価な目的で内部メモリをも含み得ることを理解されたい。さらに、メモリ106、120は、符号化ビデオデータ、たとえば、ビデオエンコーダ200からの出力、およびビデオデコーダ300への入力を記憶し得る。いくつかの例では、メモリ106、120の部分は、たとえば、生の復号および/または符号化ビデオデータを記憶するために、1つまたは複数のビデオバッファとして割り振られ得る。
【0022】
[0040] コンピュータ可読媒体110は、ソースデバイス102から宛先デバイス116に符号化ビデオデータを移送することが可能な任意のタイプの媒体またはデバイスを表し得る。一例では、コンピュータ可読媒体110は、ソースデバイス102が、たとえば、無線周波数ネットワークまたはコンピュータベースのネットワークを介して、符号化ビデオデータを宛先デバイス116にリアルタイムで直接送信することを可能にするための通信媒体を表す。ワイヤレス通信プロトコルなどの通信規格に従って、出力インターフェース108は、符号化ビデオデータを含む送信信号を変調し得、入力インターフェース122は、受信された送信信号を復調し得る。通信媒体は、無線周波数(RF)スペクトルまたは1つまたは複数の物理伝送線路など、任意のワイヤレスまたはワイヤード通信媒体を備え得る。通信媒体は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはインターネットなどのグローバルネットワークなど、パケットベースネットワークの一部を形成し得る。通信媒体は、ルータ、スイッチ、基地局、またはソースデバイス102から宛先デバイス116への通信を容易にするために有用であり得る任意の他の機器を含み得る。
【0023】
[0041] いくつかの例では、ソースデバイス102は、出力インターフェース108から記憶デバイス112に符号化データを出力し得る。同様に、宛先デバイス116は、入力インターフェース122を介して記憶デバイス112から符号化データにアクセスし得る。記憶デバイス112は、ハードドライブ、Blu-ray(登録商標)ディスク、DVD、CD-ROM、フラッシュメモリ、揮発性または不揮発性メモリ、あるいは符号化ビデオデータを記憶するための任意の他の好適なデジタル記憶媒体など、様々な分散されたまたはローカルにアクセスされるデータ記憶媒体のいずれかを含み得る。
【0024】
[0042] いくつかの例では、ソースデバイス102は、ソースデバイス102によって生成された符号化ビデオデータを記憶し得るファイルサーバ114または別の中間記憶デバイスに符号化ビデオデータを出力し得る。宛先デバイス116は、ストリーミングまたはダウンロードを介して、ファイルサーバ114から、記憶されたビデオデータにアクセスし得る。
【0025】
[0043] ファイルサーバ114は、符号化ビデオデータを記憶し、その符号化ビデオデータを宛先デバイス116に送信することが可能な任意のタイプのサーバデバイスであり得る。ファイルサーバ114は、(たとえば、ウェブサイトのための)ウェブサーバ、(ファイル転送プロトコル(FTP)または単方向トランスポート上ファイル配信(FLUTE:File Delivery over Unidirectional Transport)プロトコルなどの)ファイル転送プロトコルサービスを提供するように構成されたサーバ、コンテンツ配信ネットワーク(CDN)デバイス、ハイパーテキスト転送プロトコル(HTTP)サーバ、マルチメディアブロードキャストマルチキャストサービス(MBMS)または拡張MBMS(eMBMS)サーバ、および/あるいはネットワーク接続ストレージ(NAS)デバイスを表し得る。ファイルサーバ114は、追加または代替として、動的適応ストリーミングオーバーHTTP(DASH)、HTTPライブストリーミング(HLS)、リアルタイムストリーミングプロトコル(RTSP)、HTTP動的ストリーミングなど、1つまたは複数のHTTPストリーミングプロトコルを実装し得る。
【0026】
[0044] 宛先デバイス116は、インターネット接続を含む任意の標準的なデータ接続を通してファイルサーバ114から符号化ビデオデータにアクセスし得る。これは、ファイルサーバ114に記憶された符号化ビデオデータにアクセスするのに好適であるワイヤレスチャネル(たとえば、Wi-Fi(登録商標)接続)、ワイヤード接続(たとえば、デジタル加入者回線(DSL)、ケーブルモデムなど)、またはその両方の組合せを含み得る。入力インターフェース122は、ファイルサーバ114からメディアデータを取り出すまたは受信するための上記で説明された様々なプロトコル、あるいはメディアデータを取り出すための他のそのようなプロトコルのうちのいずれか1つまたは複数に従って動作するように構成され得る。
【0027】
[0045] 出力インターフェース108と入力インターフェース122とは、ワイヤレス送信機/受信機、モデム、ワイヤードネットワーキング構成要素(たとえば、イーサネット(登録商標)カード)、様々なIEEE802.11規格のいずれかに従って動作するワイヤレス通信構成要素、または他の物理的構成要素を表し得る。出力インターフェース108と入力インターフェース122とがワイヤレス構成要素を備える例では、出力インターフェース108と入力インターフェース122とは、4G、4G-LTE(登録商標)(ロングタームエボリューション)、LTEアドバンスト、5Gなど、セルラー通信規格に従って、符号化ビデオデータなどのデータを転送するように構成され得る。出力インターフェース108がワイヤレス送信機を備えるいくつかの例では、出力インターフェース108と入力インターフェース122とは、IEEE802.11仕様、IEEE802.15仕様(たとえば、ZigBee(登録商標))、Bluetooth(登録商標)規格など、他のワイヤレス規格に従って、符号化ビデオデータなどのデータを転送するように構成され得る。いくつかの例では、ソースデバイス102および/または宛先デバイス116は、それぞれのシステムオンチップ(SoC)デバイスを含み得る。たとえば、ソースデバイス102は、ビデオエンコーダ200および/または出力インターフェース108に帰属する機能を実施するためのSoCデバイスを含み得、宛先デバイス116は、ビデオデコーダ300および/または入力インターフェース122に帰属する機能を実施するためのSoCデバイスを含み得る。
【0028】
[0046] 本開示の技法は、オーバージエアテレビジョン放送、ケーブルテレビジョン送信、衛星テレビジョン送信、動的適応ストリーミングオーバーHTTP(DASH)などのインターネットストリーミングビデオ送信、データ記憶媒体上に符号化されたデジタルビデオ、データ記憶媒体に記憶されたデジタルビデオの復号、または他の適用例など、様々なマルチメディア適用例のいずれかをサポートするビデオコーディングに適用され得る。
【0029】
[0047] 宛先デバイス116の入力インターフェース122は、コンピュータ可読媒体110(たとえば、通信媒体、記憶デバイス112、ファイルサーバ114など)から符号化ビデオビットストリームを受信する。符号化ビデオビットストリームは、ビデオブロックまたは他のコード化ユニット(たとえば、スライス、ピクチャ、ピクチャのグループ、シーケンスなど)の特性および/または処理を記述する値を有するシンタックス要素など、ビデオデコーダ300によっても使用される、ビデオエンコーダ200によって定義されるシグナリング情報を含み得る。ディスプレイデバイス118は、復号ビデオデータの復号ピクチャ(decoded picture)をユーザに表示する。ディスプレイデバイス118は、液晶ディスプレイ(LCD)、プラズマディスプレイ、有機発光ダイオード(OLED)ディスプレイ、または別のタイプのディスプレイデバイスなど、様々なディスプレイデバイスのいずれかを表し得る。
【0030】
[0048]
図1には示されていないが、いくつかの例では、ビデオエンコーダ200とビデオデコーダ300とは各々、オーディオエンコーダおよび/またはオーディオデコーダと統合され得、共通のデータストリーム中にオーディオとビデオの両方を含む多重化ストリームをハンドリングするために、適切なMUX-DEMUXユニット、あるいは他のハードウェアおよび/またはソフトウェアを含み得る。適用可能な場合、MUX-DEMUXユニットは、ITU H.223マルチプレクサプロトコル、またはユーザデータグラムプロトコル(UDP)などの他のプロトコルに準拠し得る。
【0031】
[0049] ビデオエンコーダ200とビデオデコーダ300とは各々、1つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ディスクリート論理、ソフトウェア、ハードウェア、ファームウェアなど、様々な好適なエンコーダおよび/またはデコーダ回路のいずれか、あるいはそれらの任意の組合せとして実装され得る。本技法が部分的にソフトウェアで実装されるとき、デバイスは、好適な非一時的コンピュータ可読媒体にソフトウェアのための命令を記憶し、本開示の技法を実施するために1つまたは複数のプロセッサを使用してその命令をハードウェアで実行し得る。ビデオエンコーダ200とビデオデコーダ300との各々は、1つまたは複数のエンコーダまたはデコーダに含まれ得、それらのいずれかが、それぞれのデバイス中の複合エンコーダ/デコーダ(CODEC)の一部として統合され得る。ビデオエンコーダ200および/またはビデオデコーダ300を含むデバイスは、集積回路、マイクロプロセッサ、および/またはセルラー電話機などのワイヤレス通信デバイスを備え得る。
【0032】
[0050] ビデオエンコーダ200とビデオデコーダ300とは、高効率ビデオコーディング(HEVC)とも呼ばれるITU-T H.265、あるいはマルチビューおよび/またはスケーラブルビデオコーディング拡張などのそれらの拡張など、ビデオコーディング規格に従って動作し得る。代替的に、ビデオエンコーダ200とビデオデコーダ300とは、汎用ビデオコーディング(VVC)とも呼ばれるITU-T H.266など、他のプロプライエタリまたは業界規格に従って動作し得る。VVC規格のドラフトは、Brossら、「Versatile Video Coding (Draft 10)」、ITU-T SG16 WP3およびISO/IEC JTC 1/SC29/WG11のジョイントビデオエキスパートチーム(JVET)、第18回会合、テレビ会議による、2020年6月22日~7月1日、JVET-S2001-v17(以下本明細書においては、「VVCドラフト10」)において説明されている。しかしながら、本開示の技法は、いずれか特定のコーディング規格に限定されず、さらに、本明細書において説明される技法は、VVCの後継規格と併せて使用され得ることが、明示的に企図されている。
【0033】
[0051] 概して、ビデオエンコーダ200とビデオデコーダ300とは、ピクチャのブロックベースのコーディングを実施し得る。「ブロック」という用語は、概して、処理されるべき(たとえば、符号化されるべき、復号されるべき、あるいは符号化および/または復号プロセスにおいて他の方法で使用されるべき)データを含む構造を指す。たとえば、ブロックは、ルミナンスおよび/またはクロミナンスデータのサンプルの2次元行列を含み得る。概して、ビデオエンコーダ200とビデオデコーダ300とは、YUV(たとえば、Y、Cb、Cr)フォーマットで表されるビデオデータをコーディングし得る。すなわち、ピクチャのサンプルのために赤色、緑色、および青色(RGB)データをコーディングするのではなく、ビデオエンコーダ200とビデオデコーダ300とは、ルミナンス成分とクロミナンス成分とをコーディングし得、ここで、クロミナンス成分は、赤色相と青色相の両方のクロミナンス成分を含み得る。いくつかの例では、ビデオエンコーダ200は、符号化より前に、受信されたRGBフォーマットのデータをYUV表現にコンバートし、ビデオデコーダ300は、YUV表現をRGBフォーマットにコンバートする。代替的に、前処理および後処理ユニット(図示せず)が、これらのコンバージョンを実施し得る。
【0034】
[0052] 本開示は、概して、ピクチャのデータを符号化または復号するプロセスを含むように、ピクチャのコーディング(たとえば、符号化および復号)に言及することがある。同様に、本開示は、ブロックについてのデータを符号化または復号するプロセス、たとえば、予測および/または残差コーディングを含むように、ピクチャのブロックのコーディングに言及することがある。符号化ビデオビットストリームは、概して、コーディング決定(たとえば、コーディングモード)とブロックへのピクチャの区分とを表すシンタックス要素についての一連の値を含む。したがって、ピクチャまたはブロックをコーディングすることへの言及は、概して、ピクチャまたはブロックを形成するシンタックス要素についての値をコーディングすることとして理解されるべきである。
【0035】
[0053] HEVCは、コーディングユニット(CU)、予測ユニット(PU)、および変換ユニット(TU)を含む、様々なブロックを定義する。HEVCに従って、(ビデオエンコーダ200などの)ビデオコーダは、クワッドツリー構造に従ってコーディングツリーユニット(CTU)をCUに区分する。すなわち、ビデオコーダは、CTUとCUとを4つの等しい重複しない正方形に区分し、クワッドツリーの各ノードは、0個または4つのいずれかの子ノードを有する。子ノードのないノードは、「リーフノード」と呼ばれることがあり、そのようなリーフノードのCUは、1つまたは複数のPUおよび/または1つまたは複数のTUを含み得る。ビデオコーダは、PUとTUとをさらに区分し得る。たとえば、HEVCでは、残差クワッドツリー(RQT)は、TUの区分を表す。HEVCでは、PUはインター予測データを表すが、TUは残差データを表す。イントラ予測されるCUは、イントラモード指示などのイントラ予測情報を含む。
【0036】
[0054] 別の例として、ビデオエンコーダ200とビデオデコーダ300とは、VVCに従って動作するように構成され得る。VVCに従って、(ビデオエンコーダ200などの)ビデオコーダは、ピクチャを複数のコーディングツリーユニット(CTU)に区分する。ビデオエンコーダ200は、クワッドツリーバイナリツリー(QTBT)構造またはマルチタイプツリー(MTT)構造など、ツリー構造に従ってCTUを区分し得る。QTBT構造は、HEVCのCUとPUとTUとの間の分離など、複数の区分タイプの概念を除去する。QTBT構造は、2つのレベル、すなわち、クワッドツリー区分に従って区分される第1のレベルと、バイナリツリー区分に従って区分される第2のレベルとを含む。QTBT構造のルートノードは、CTUに対応する。バイナリツリーのリーフノードは、コーディングユニット(CU)に対応する。
【0037】
[0055] MTT区分構造では、ブロックは、クワッドツリー(QT)区分と、バイナリツリー(BT)区分と、1つまたは複数のタイプのトリプルツリー(TT)(ターナリツリー(TT)とも呼ばれる)区分とを使用して区分され得る。トリプルツリーまたはターナリツリー区分は、ブロックが3つのサブブロックにスプリットされる区分である。いくつかの例では、トリプルツリーまたはターナリツリー区分は、中心を通して元のブロックを分割することなしにブロックを3つのサブブロックに分割する。MTTにおける区分タイプ(たとえば、QT、BT、およびTT)は、対称的または非対称的であり得る。
【0038】
[0056] いくつかの例では、ビデオエンコーダ200とビデオデコーダ300とは、ルミナンス成分とクロミナンス成分との各々を表すために単一のQTBTまたはMTT構造を使用し得、他の例では、ビデオエンコーダ200とビデオデコーダ300とは、ルミナンス成分のための1つのQTBT/MTT構造、および両方のクロミナンス成分のための別のQTBT/MTT構造(またはそれぞれのクロミナンス成分のための2つのQTBT/MTT構造)など、2つまたはそれ以上のQTBTまたはMTT構造を使用し得る。
【0039】
[0057] ビデオエンコーダ200とビデオデコーダ300とは、HEVCに従うクワッドツリー区分、QTBT区分、MTT区分、または他の区分構造を使用するように構成され得る。説明の目的で、本開示の技法の説明はQTBT区分に関して提示される。しかしながら、本開示の技法は、クワッドツリー区分、または同様に他のタイプの区分を使用するように構成されたビデオコーダにも適用され得ることを理解されたい。
【0040】
[0058] いくつかの例では、CTUは、ルーマサンプルのコーディングツリーブロック(CTB)、3つのサンプルアレイを有するピクチャのクロマサンプルの2つの対応するCTB、あるいはモノクロームピクチャ、またはサンプルをコーディングするために使用される3つの別個の色平面とシンタックス構造とを使用してコーディングされるピクチャのサンプルのCTBを含む。CTBは、CTBへの成分の分割が区分になるような何らかの値のNについて、サンプルのN×Nブロックであり得る。成分は、ピクチャを4:2:0、4:2:2、または4:4:4色フォーマットに構成する3つのアレイ(ルーマおよび2つのクロマ)のうちの1つからのアレイまたは単一のサンプル、あるいはピクチャをモノクロームフォーマットに構成するアレイまたはアレイの単一のサンプルである。いくつかの例では、コーディングブロックは、コーディングブロックへのCTBの分割が区分になるような何らかの値のMとNとについて、サンプルのM×Nブロックである。
【0041】
[0059] ブロック(たとえば、CTUまたはCU)は、ピクチャ中で様々な方法でグループ化され得る。一例として、ブリックは、ピクチャ中の特定のタイル内のCTU行の矩形領域を指し得る。タイルは、ピクチャ中の特定のタイル列および特定のタイル行内のCTUの矩形領域であり得る。タイル列は、ピクチャの高さに等しい高さと、(たとえば、ピクチャパラメータセット中などの)シンタックス要素によって指定された幅とを有するCTUの矩形領域を指す。タイル行は、(たとえば、ピクチャパラメータセット中などの)シンタックス要素によって指定された高さと、ピクチャの幅に等しい幅とを有するCTUの矩形領域を指す。
【0042】
[0060] いくつかの例では、タイルは複数のブリックに区分され得、それらの各々は、タイル内に1つまたは複数のCTU行を含み得る。複数のブリックに区分されないタイルもブリックと呼ばれることがある。しかしながら、タイルの真のサブセットであるブリックは、タイルと呼ばれないことがある。
【0043】
[0061] ピクチャ中のブリックはまた、スライス中に配置され得る。スライスは、もっぱら単一のネットワークアブストラクションレイヤ(NAL)ユニット中に含まれていることがあるピクチャの整数個のブリックであり得る。いくつかの例では、スライスは、いくつかの完全なタイル、または1つのタイルの完全なブリックの連続シーケンスのみのいずれかを含む。
【0044】
[0062] 本開示は、垂直寸法と水平寸法とに関して(CUまたは他のビデオブロックなどの)ブロックのサンプル寸法を指すために、「N×N(NxN)」および「N×N(N by N)」、たとえば、16×16サンプル(16x16 samples)または16×16サンプル(16 by 16 samples)を互換的に使用し得る。概して、16×16のCUは、垂直方向に16個のサンプルを有し(y=16)、水平方向に16個のサンプルを有する(x=16)。同様に、N×NのCUは、概して、垂直方向にN個のサンプルを有し、水平方向にN個のサンプルを有し、ここで、Nは非負整数値を表す。CU中のサンプルは、行と列とに配置され得る。その上、CUは、必ずしも、水平方向において垂直方向と同じ数のサンプルを有する必要があるとは限らない。たとえば、CUはN×Mサンプルを備え得、ここで、Mは必ずしもNに等しいとは限らない。
【0045】
[0063] ビデオエンコーダ200は、予測および/または残差情報、ならびに他の情報を表すCUのためにビデオデータを符号化する。予測情報は、CUについて予測ブロックを形成するためにCUがどのように予測されるべきかを示す。残差情報は、概して、符号化より前のCUのサンプルと予測ブロックとの間のサンプルごとの差分を表す。
【0046】
[0064] CUを予測するために、ビデオエンコーダ200は、概して、インター予測またはイントラ予測を通してCUについて予測ブロックを形成し得る。インター予測は、概して、前にコーディングされたピクチャのデータからCUを予測することを指すが、イントラ予測は、概して、同じピクチャの前にコーディングされたデータからCUを予測することを指す。インター予測を実施するために、ビデオエンコーダ200は、1つまたは複数の動きベクトルを使用して予測ブロックを生成し得る。ビデオエンコーダ200は、概して、たとえば、CUと参照ブロックとの間の差分に関して、CUにぴったり一致する参照ブロックを識別するために動き探索を実施し得る。ビデオエンコーダ200は、参照ブロックが現在CUにぴったり一致するかどうかを決定するために、絶対差分和(SAD)、2乗差分和(SSD)、平均絶対差(MAD)、平均2乗差(MSD)、または他のそのような差分計算を使用して差分メトリックを計算し得る。いくつかの例では、ビデオエンコーダ200は、単方向予測または双方向予測を使用して現在CUを予測し得る。
【0047】
[0065] VVCのいくつかの例はまた、インター予測モードと見なされ得るアフィン動き補償モードを提供する。アフィン動き補償モードでは、ビデオエンコーダ200は、ズームインまたはアウト、回転、パースペクティブの動き、あるいは他の変則の動きタイプなど、非並進の動きを表す2つまたはそれ以上の動きベクトルを決定し得る。
【0048】
[0066] イントラ予測を実施するために、ビデオエンコーダ200は、予測ブロックを生成するようにイントラ予測モードを選択し得る。VVCのいくつかの例は、様々な方向性モード、ならびに平面モードおよびDCモードを含む、67個のイントラ予測モードを提供する。概して、ビデオエンコーダ200は、現在ブロック(たとえば、CUのブロック)のサンプルをそれから予測すべき、現在ブロックに対する隣接サンプルを記述するイントラ予測モードを選択する。そのようなサンプルは、ビデオエンコーダ200がラスタ走査順序で(左から右に、上から下に)CTUとCUとをコーディングすると仮定すると、概して、現在ブロックと同じピクチャ中の現在ブロックの上、左上、または左にあり得る。
【0049】
[0067] ビデオエンコーダ200は、現在ブロックについて予測モードを表すデータを符号化する。たとえば、インター予測モードでは、ビデオエンコーダ200は、様々な利用可能なインター予測モードのうちのどれが使用されるか、ならびに対応するモードのための動き情報を表すデータを符号化し得る。たとえば、単方向または双方向インター予測では、ビデオエンコーダ200は、高度動きベクトル予測(AMVP)またはマージモードを使用して動きベクトルを符号化し得る。ビデオエンコーダ200は、アフィン動き補償モードのための動きベクトルを符号化するために、同様のモードを使用し得る。
【0050】
[0068] ブロックのイントラ予測またはインター予測などの予測に続いて、ビデオエンコーダ200は、ブロックについて残差データを計算し得る。残差ブロックなどの残差データは、ブロックと、対応する予測モードを使用して形成された、ブロックについての予測ブロックとの間の、サンプルごとの差分を表す。ビデオエンコーダ200は、サンプル領域ではなく変換領域中に変換データを生成するために、残差ブロックに1つまたは複数の変換を適用し得る。たとえば、ビデオエンコーダ200は、離散コサイン変換(DCT)、整数変換、ウェーブレット変換、または概念的に同様の変換を残差ビデオデータに適用し得る。さらに、ビデオエンコーダ200は、第1の変換に続いて、モード依存非分離可能2次変換(MDNSST:mode-dependent non-separable secondary transform)、信号依存変換、カルーネンレーベ変換(KLT)などの2次変換を適用し得る。ビデオエンコーダ200は、1つまたは複数の変換の適用に続いて変換係数を生成する。
【0051】
[0069] 上述のように、変換係数を生成するための任意の変換に続いて、ビデオエンコーダ200は、変換係数の量子化を実施し得る。量子化は、概して、変換係数を表すために使用されるデータの量をできるだけ低減するために変換係数が量子化され、さらなる圧縮を行うプロセスを指す。量子化プロセスを実施することによって、ビデオエンコーダ200は、変換係数の一部または全部に関連付けられたビット深度を低減し得る。たとえば、ビデオエンコーダ200は、量子化中にnビット値をmビット値に丸めることがあり、ここで、nはmよりも大きい。いくつかの例では、量子化を実施するために、ビデオエンコーダ200は、量子化されるべき値のビット単位右シフトを実施し得る。
【0052】
[0070] 量子化に続いて、ビデオエンコーダ200は、変換係数を走査して、量子化された変換係数を含む2次元行列から1次元ベクトルを生成し得る。走査は、より高いエネルギー(したがって、より低い頻度)の変換係数をベクトルの前方に配置し、より低いエネルギー(したがって、より高い頻度)の変換係数をベクトルの後方に配置するように設計され得る。いくつかの例では、ビデオエンコーダ200は、あらかじめ定義された走査順序を利用して、量子化された変換係数を走査してシリアル化ベクトルを生成し、次いで、ベクトルの量子化された変換係数をエントロピー符号化し得る。他の例では、ビデオエンコーダ200は適応型走査を実施し得る。量子化された変換係数を走査して1次元ベクトルを形成した後に、ビデオエンコーダ200は、たとえば、コンテキスト適応型バイナリ算術コーディング(CABAC)に従って、1次元ベクトルをエントロピー符号化し得る。ビデオエンコーダ200はまた、ビデオデータを復号する際のビデオデコーダ300による使用のために、符号化ビデオデータに関連付けられたメタデータを記述するシンタックス要素についての値をエントロピー符号化し得る。
【0053】
[0071] CABACを実施するために、ビデオエンコーダ200は、コンテキストモデル内のコンテキストを、送信されるべきシンボルに割り当て得る。コンテキストは、たとえば、シンボルの隣接値が0値であるか否かに関係し得る。確率決定は、シンボルに割り当てられたコンテキストに基づき得る。
【0054】
[0072] ビデオエンコーダ200は、さらに、ブロックベースのシンタックスデータ、ピクチャベースのシンタックスデータ、およびシーケンスベースのシンタックスデータなどのシンタックスデータを、たとえば、ピクチャヘッダ、ブロックヘッダ、スライスヘッダ、あるいはシーケンスパラメータセット(SPS)、ピクチャパラメータセット(PPS)、またはビデオパラメータセット(VPS)などの他のシンタックスデータ中で、ビデオデコーダ300に対して生成し得る。ビデオデコーダ300は、対応するビデオデータをどのように復号すべきかを決定するために、そのようなシンタックスデータを同様に復号し得る。
【0055】
[0073] このようにして、ビデオエンコーダ200は、符号化ビデオデータ、たとえば、ブロック(たとえば、CU)へのピクチャの区分ならびにブロックのための予測および/または残差情報を記述するシンタックス要素を含むビットストリームを生成し得る。最終的に、ビデオデコーダ300は、ビットストリームを受信し、符号化ビデオデータを復号し得る。
【0056】
[0074] 概して、ビデオデコーダ300は、ビットストリームの符号化ビデオデータを復号するために、ビデオエンコーダ200によって実施されたものの逆プロセスを実施する。たとえば、ビデオデコーダ300は、ビデオエンコーダ200のCABAC符号化プロセスと逆ではあるが、それと実質的に同様の様式でCABACを使用してビットストリームのシンタックス要素についての値を復号し得る。シンタックス要素は、CTUのCUを定義するために、ピクチャをCTUに区分するための区分情報と、QTBT構造などの対応する区分構造に従う、各CTUの区分とを定義し得る。シンタックス要素は、ビデオデータのブロック(たとえば、CU)についての予測および残差情報をさらに定義し得る。
【0057】
[0075] 残差情報は、たとえば、量子化された変換係数によって表され得る。ビデオデコーダ300は、ブロックのための残差ブロックを再生するために、ブロックの量子化された変換係数を逆量子化し、逆変換し得る。ビデオデコーダ300は、ブロックのための予測ブロックを形成するために、シグナリングされた予測モード(イントラまたはインター予測)と、関連する予測情報(たとえば、インター予測のための動き情報)とを使用する。ビデオデコーダ300は、次いで、元のブロックを再生するために(サンプルごとに)予測ブロックと残差ブロックとを組み合わせ得る。ビデオデコーダ300は、ブロックの境界に沿って視覚的アーティファクトを低減するためにデブロッキングプロセスを実施することなど、追加の処理を実施し得る。
【0058】
[0076] 本開示は、概して、シンタックス要素など、ある情報を「シグナリング」することに言及することがある。「シグナリング」という用語は、概して、符号化ビデオデータを復号するために使用されるシンタックス要素および/または他のデータについての値の通信を指し得る。すなわち、ビデオエンコーダ200は、ビットストリームにおいてシンタックス要素についての値をシグナリングし得る。概して、シグナリングは、ビットストリームにおいて値を生成することを指す。上述のように、ソースデバイス102は、実質的にリアルタイムでビットストリームを宛先デバイス116に移送するか、または、宛先デバイス116による後の取出しのためにシンタックス要素を記憶デバイス112に記憶するときに行われ得るように、非リアルタイムでビットストリームを宛先デバイス116に移送し得る。
【0059】
[0077] H.266/VVC規格などのビデオコーディングにおいては、フィルタリングされたサンプルと元のサンプルとの間の平均2乗誤差を最小化するために、ALFが、適用される。ALFに対する入力サンプルは、たとえば、SAOの出力サンプルであり得る。ALFの出力サンプルは、復号ピクチャバッファ(DPB)内に記憶され、または視認可能なピクチャとして出力され得る。共同調査モデル(JEM)ソフトウェアにおいて採用された、ALFについてのフィルタ形状は、5×5、7×7、および9×9のダイヤモンド形状であった。JEMにおいては、フィルタ形状は、ピクチャレベルで選択され、シグナリングされ得る。コーディング効率とフィルタの複雑さとの間のより良いトレードオフを得るために、VVCにおいては、それぞれ、ルーマ成分およびクロマ成分に対して、7×7のダイヤモンド形状および5×5のダイヤモンド形状のみが、サポートされる。
【0060】
[0078]
図2Aは、7×7のダイヤモンド形状フィルタである、例示的なフィルタ140を示している。
図2Bは、5×5のダイヤモンド形状フィルタである、例示的なフィルタ142を示している。フィルタ140および142の各々において、整数係数ciは、7ビットの分数精度で表される。c
iの絶対値は、0次の指数ゴロムコードを使用することによって、コーディングされ、非ゼロ係数のための符号ビットによって後続される。
図2Aおよび2Bにおいては、各四角形は、ルーマサンプルまたはクロマサンプルに対応し、中央の四角形が、現在フィルタリングされるサンプルに対応する。係数を送信するオーバーヘッドと、乗算の数とを減らすために、
図2Aおよび
図2Bにおけるフィルタ形状は、点対称である。加えて、式(1)に示されるように、すべてのフィルタ係数の和は、7ビットの分数精度で、1.0の固定小数点表現である、128に等しく設定される。
【0061】
【0062】
[0079] 式(1)においては、Nは、係数の数であり、Nは、それぞれ、7×7および5×5のフィルタ形状に対して、13および7に等しい。
【0063】
[0080] VVCにおいては、非線形性が、ALFに導入される。隣接サンプル値と現在フィルタリングされるサンプル値との間の差(difference)が、大きすぎるとき、隣接サンプル値の影響を減らすために、単純なクリッピング関数が、適用される。サンプルをフィルタリングするために、ALFは、
【0064】
【0065】
として実行され得、ここで、R(x,y)は、SAO後のサンプル値である。
【0066】
[0081] 非線形関数が、クリッピング関数を用いて、
【0067】
【0068】
として定義され、ここで、jは、0または1に等しく、(xi,j,yi,j)は、第iの係数ciのフィルタタップ位置オフセットである。
【0069】
[0082] VVCバージョン1においては、式(4)に示されるように、係数ciについてのクリッピングパラメータbiは、クリッピングインデックスdiによって決定される。BDは、内部ビット深度である。
【0070】
【0071】
[0083] フィルタについては、シグナリングされる係数の数と、シグナリングされるクリッピングインデックスの数は、両方とも、N-1である。各係数は、7ビットの分数精度で、[-1.0,1.0]に等価である、[-128,127]の範囲に制限される。各クリッピングインデックスdiは、0、1、2、または3であることができ、2ビットの固定長コードを使用することによって、シグナリングされる。式(4)におけるように、クリッピング演算を単純化するために、クリッピングパラメータbiの値は、2の累乗のみに制限され得る。したがって、クリッピング演算として、ビット単位の論理演算が、適用され得る。
【0072】
[0084] ビデオエンコーダ200およびビデオデコーダ300は、サブブロックレベルフィルタ適応を実行するように構成され得る。VVCバージョン1においては、ALFは、JEM-7.0におけるALFと同じルーマ分類フレームワークに従う。コーディング効率と計算の複雑さとの間のより良いトレードオフを獲得するために、分類のためのブロックサイズは、2×2サンプルから4×4サンプルに増やされ得る。4×4ブロックのクラスインデックスを決定するために、8×8のルーマサンプルを含む囲み窓が、方向と、アクティビティ情報とを導出するために、利用される。この8×8ルーマサンプル窓においては、
図3に示されるように、あらゆる第2のサンプルの4つの勾配値が、最初に計算される。
図3は、ALF分類のための4×4サブブロック150についてのサブサンプリングされたラプラシアン値を示している。ドットを用いてマークされたサンプルの勾配値が、計算される。他のサンプルの勾配値は、0に設定される。
【0073】
[0085]
図4は、各サンプルについての4つの勾配値を、座標(k,l)を用いて示している。ドットは、勾配が計算されているサンプルを表す。ブロック160は、水平勾配(H)を示し、ブロック162は、垂直勾配(V)を示す。ブロック164は、135度勾配(D1)を示し、ブロック166は、45度勾配(D2)を示す。H、V、D1、およびD2は、次のように導出される。
【0074】
【0075】
[0086] 変数iおよびjは、4×4ブロックにおける左上サンプルの座標を示すことができる。計算された水平勾配の合計gH、計算された垂直勾配の合計gV、計算された135度勾配の合計gD1、および計算された45度勾配の合計gD2は、次のように計算される。
【0076】
【0077】
[0087] RH,Vによって表される水平勾配と垂直勾配の最大値と、水平勾配と垂直勾配の最小値との比、およびRD1,D2によって表される2つの対角線勾配の最大値と、2つの対角線勾配の最小値との比は、式(7)に示されるように計算される。
【0078】
【0079】
[0088] 次いで、方向性Dを導出するために、RH,VとRD1,D2が、2つのしきい値t1=2およびt2=4.5を用いて、互いに比較される。
【0080】
ステップ1:RH,V≦t1と、RD1,D2≦t1の両方である場合、Dは、0(テクスチャ)に設定され、それ以外の場合、ステップ2を続行する。
【0081】
ステップ2:RD1,D2>RH,Vの場合、ステップ3を続行し、それ以外の場合、ステップ4を続行する。
【0082】
ステップ3:RD1,D2≦t2の場合、Dは、1(弱い対角線)に設定され、それ以外の場合、Dは、2(強い対角線)に設定される。
【0083】
ステップ4:RH,V≦t2の場合、Dは、3(弱い水平/垂直)に設定され、
それ以外の場合、Dは、4(強い水平/垂直)に設定される。
【0084】
[0089] アクティビティ値Aは、次のように計算される:
【0085】
【0086】
[0090]
図5は、25個のルーマクラスを7個のマージされたクラス(0から6)にマージする例を示しており、ここで、各四角形は、Dおよび
【0087】
【0088】
の値に基づいた、クラスを表す。5×5グリッド170は、25個のクラスを表し、5×5グリッド170の各ボックス内の数字は、0から6までのマージされたクラスを表す。各クラス、すなわち5×5グリッド170の各四角形は、0以上24以下のインデックスを有することができる。Aは、0以上4以下の範囲にマッピングされ、量子化された値は、
【0089】
【0090】
として表される。したがって、各4x4ブロックは、次のように、25個のクラスのうちの1つにカテゴライズされる。
【0091】
【0092】
[0091] ルーマフィルタセットは、25個のフィルタを含む。しかしながら、コーディング効率を維持しながら、フィルタ係数を表すために必要とされるビット数を減らすために、異なるクラスは、マージされ得、マージされたクラスは、同じフィルタを使用する。マージングテーブルが、シグナリングされる。マージングテーブルにおいては、各クラスについてのフィルタインデックスが、たとえば、固定長コードを使用して、シグナリングされる。
図5についての例示的なフィルタセットにおいては、7個のルーマフィルタが、シグナリングされる。クラスごとに、フィルタインデックス(この例においては0から6)が、ALF_APSで通知される。
【0093】
[0092] 4×4ブロックのクラスインデックスCと、マージングテーブルとに基づいて、ルーマフィルタセットからフィルタを決定した後、4×4ブロックのサンプルをフィルタリングする前に、表1に示されるように、4x4ブロックについて計算された勾配値に応じて、幾何学的変換が、フィルタに適用され得る。
【0094】
【0095】
[0093]
図6は、
図2Aにおけるフィルタ140の幾何学的変換の例を示している。
図6に見られ得るように、フィルタ180は、フィルタ140の対角線反転に対応する。フィルタ182は、フィルタ140の垂直反転に対応し、フィルタ184は、フィルタ140の右回転に対応する。
【0096】
[0094] ビデオエンコーダ200およびビデオデコーダ300は、コーディングツリーブロックレベル適応を実行するように構成され得る。JEM-7.0においては、ただ1つのルーマフィルタセットが、スライスのすべてのルーマCTBに適用され、ただ1つのクロマフィルタが、スライスのすべてのクロマCTBに適用される。しかしながら、2つの潜在的な不都合が、存在する。第1に、CTB間の統計情報が、ある程度異なるとき、色成分のすべてのCTBのために同じフィルタまたはフィルタセットを使用することは、特に、高解像度シーケンス、および混合コンテンツのビデオシーケンスについて、ALFのコーディング効率を制限することがある。第2に、スライスのためのフィルタを導出するとき、スライス全体の統計情報が、収集されるまで、フィルタは、計算され得ない。このマルチプルパスコーディングは、低遅延アプリケーションには向いていない。この問題に対処するためには、以前にコーディングされたスライスからの統計を使用することが、1つのソリューションになる。しかしながら、これは、いくらかのパフォーマンス低下をもたらし得る。
【0097】
[0095] ルーマ4×4ブロックレベルフィルタ適応に加えて、VVCは、CTBレベルフィルタ適応をサポートする。スライスにおいては、異なるルーマCTBは、異なるルーマフィルタセットを使用することが許容され、異なるクロマCTBは、異なるクロマフィルタを使用することができる。同様の統計を有するCTBは、同じフィルタを使用し得る。このCTBレベルフィルタ適応は、特に、低遅延アプリケーションについて、コーディング効率を改善する。加えて、VVCバージョン1は、以前にコーディングされたピクチャからのフィルタが、CTBのために使用されることを許容する。この一時的なフィルタ再利用メカニズムは、フィルタ係数シグナリングのオーバーヘッドを減すことができる。VVCバージョン1においては、最大で7つのシグナリングされたルーマフィルタセットと、8つのシグナリングされたクロマフィルタが、スライスに適用され得る。いかなるシグナリングされたフィルタも、存在しないとき、16個の固定されたフィルタセットのうちの1つが、ルーマCTBに適用され得る。ALFが、有効であるとき、固定されたフィルタセットまたはシグナリングされたルーマフィルタセットのいずれかのフィルタセットインデックスが、ルーマCTBのためにシグナリングされる。シグナリングされたクロマフィルタのフィルタインデックスが、クロマCTBのためにシグナリングされる。以前にコーディングされたピクチャからシグナリングされたフィルタと、固定されたフィルタとを使用することによって、低遅延アプリケーションにおいて、現在CTUを符号化するとき、現在CTUの統計情報のみを使用することによって、3つのCTUレベルオン/オフフラグと、フィルタ/フィルタセットインデックスが、決定され得る。したがって、各CTUの符号化されたビットストリームは、オンザフライで、ピクチャ全体の統計が利用可能になるのを待たずに、生成され得る。
【0098】
[0096] ビデオエンコーダ200およびビデオデコーダ300は、ラインバッファ削減のための技法を実行するように構成され得る。
図2Aおよび
図2Bに示されるように、垂直方向において、フィルタ形状は、それぞれ、ルーマ成分およびクロマ成分について、7タップおよび5タップを有する。結果として、VVCテストモデル2.0(VTM-2.0)においては、CTUの行を復号するとき、デブロッキングフィルタ(deblocking filter)およびSAOフィルタの遅延のせいで、上側CTU行の7つのルーマラインと4つのクロマラインが、ALFのためのラインバッファ内に記憶されなければならない。しかしながら、追加のラインバッファは、特に、高解像度(HD)および超高解像度(UHD)ビデオシーケンスについて、大きなチップ領域を必要とする。
【0099】
[0097] (たとえば、ラインバッファ要件を低減することによって)ALFをハードウェアフレンドリにするために、仮想境界(VB)の概念が、ALFについてのすべてのラインバッファオーバーヘッドを除去するために、適用され得る。VVCバージョン1におけるデブロッキングフィルタおよびSAOフィルタを考慮すると、VBの位置は、水平CTU境界の上方4ルーマサンプルおよび2クロマサンプルである。VBの一方の側上の1つのサンプルが、フィルタリングされるとき、VBの他方の側上のサンプルは、利用され得ず、対称サンプルパディングを用いる変更されたフィルタリングが、適用され得る。
【0100】
[0098]
図7A~
図7Cは、ALF VBにおけるルーマALFフィルタリングについての対称サンプルパディングの例を示している。
図7A~
図7Cの例においては、フィルタ190の中央の四角形は、現在のフィルタリングされるサンプルの位置であり、太線は、VB(VB192)の位置である。
図7A~
図7Cにおいては、破線を有するフィルタタップ位置が、パディングされる。
図7Aは、フィルタ190の1つのフィルタタップ位置が、VB192の上または下にある、例を示している。この例においては、1つのフィルタタップ位置が、パディングされる。
図7Bは、フィルタ190の4つのフィルタタップ位置が、VB192の上または下にある、例を示している。この例においては、4つのフィルタタップ位置が、パディングされる。
【0101】
[0099] しかしながら、
図7Cに示されるように、サンプルが、VB192の各側における最も近い行上にある場合、2Dフィルタは、水平フィルタと等価である。これは、視覚的なアーティファクトを導入し得る。この問題に対処するために、式(10)に示されるように、現在のフィルタリングされるサンプルが、VBの各側における最も近い行上に配置されるとき、フィルタ強度が、補償され得る。式(10)を式(2)と比較すると、さらに3ビットが、右にシフトされていることが見られ得る。
【0102】
【0103】
[0100] VB処理が、適用されるとき、4×4ブロックの分類も、変更され得る。VBの一方の側における4×4ブロックのクラスインデックスを計算するとき、VBの他方の側における勾配およびサンプルは、
図8に示されるように、使用され得ない。
【0104】
[0101]
図8は、ALF VBにおけるALF 4×4サブブロック分類の例を示している。VBに隣接するサンプルの勾配値を計算するとき、VBの他方の側におけるサンプルは、利用され得ない。したがって、現在の側の境界サンプルが、
図8に示されるように、繰り返し拡張される。すなわち、VBの現在の側における境界サンプルが、VBの他方の側にミラーされる。利用可能な勾配値の数が、減らされるので、式(8)におけるアクティビティ導出は、
【0105】
【0106】
にリスケールされる。
【0107】
[0102] ビデオエンコーダ200およびビデオデコーダ300は、フィルタ係数シグナリングを実行するように構成され得る。VVCバージョン1においては、ALF係数は、ALF適応パラメータセット(APS)でシグナリングされる。1つのAPSは、最大25個のフィルタを有するルーマフィルタの1つのセットと、最大8個のクロマフィルタと、最大8個のクロス成分ALF(CC-ALF)フィルタとを含み得る。ルーマフィルタの各セットは、ルーマの25個のクラスにALFを適用することをサポートする。VVCバージョン1においては、最大8つのALF_APSが、サポートされる。
【0108】
[0103] 以下の表2は、本開示の技法に従ってフィルタ係数をシグナリングするための例示的なシンタックスシグナルテーブルを示している。
【0109】
【0110】
[0104] 本開示は、ALFの性能をさらに改善し得る技法について説明する。たとえば、VVCにおいては、サンプルをフィルタリングするとき、ただ1つの分類器および1つのフィルタが、適用され得る。しかしながら、本開示は、より多くの局所的特徴を捕捉するために、複数の分類器およびフィルタを適用するための技法について説明した。本開示は、サンプルをフィルタリングするために、複数のフィルタおよび分類器を使用するフレームワークのための技法について説明する。
【0111】
[0105]
図9は、ビデオデータの再構築サンプルをフィルタリングするために、複数の固定されたフィルタセットと、複数のシグナリングされたフィルタセットとを使用するための、例示的なフレームワークを示している。ビデオエンコーダ200およびビデオデコーダ300は、
図9の技法に従って、複数の固定されたフィルタセットと、複数のシグナリングされたフィルタセットとを実施するように構成され得る。
図10~
図15の技法は、ビデオデコーダ300に関して説明されるが、ビデオエンコーダ200によっても実行され得る。
【0112】
[0106]
図9の例においては、ビデオデコーダ300は、中間フィルタリング信号R’を決定するために、再構築サンプルR(x,y)に、第1の段階のALF400を適用する。次いで、ビデオデコーダ300は、フィルタリングされたサンプル430についての値を決定するために、R’に第2の段階のALF410を適用する。
【0113】
[0107] 第1の段階のALF400の態様が、今から、より詳細に説明される。
・ NsおよびNfは、サンプルに適用され得る、シグナリングされたフィルタセットおよび固定(事前定義)されたフィルタセットの数を表す。Rsは、ALFへの入力サンプルである。
・ F(f,i)、i=0...Nf-1は、第iの固定されたフィルタセットを表す。
・ C(f,i)、i=0...Nf-1は、第iの固定されたフィルタセットのための分類器を表す。C(f,i)を通して、サンプルごとに、フィルタインデックスが、計算される。フィルタインデックスに基づいて、固定されたフィルタセットF(f,i)からのフィルタが、そのサンプルをフィルタリングするために、選択される。加えて、C(f,i)は、係数に幾何学的変換をどのように適用するかを決定する。
・ F(s,i)、i=0...Ns-1は、第iのシグナリングされたフィルタセットを表す。
・ C(s,i)、i=0...Ns-1は、第iのシグナリングされたフィルタセットと一緒の分類器を表す。C(s,i)を通して、サンプルごとに、フィルタインデックスが、計算される。フィルタインデックスに基づいて、固定されたフィルタセットF(s,i)からのフィルタが、そのサンプルをフィルタリングするために、選択される。加えて、C(s,i)は、係数に幾何学的変換をどのように適用するかを決定する。
【0114】
[0108] 再構築サンプルR(x,y)については、再構築サンプル自体と、隣接サンプルとを使用することによって、ビデオデコーダ300は、複数のフィルタセットを適用し得る。(固定されたフィルタセットまたはシグナリングされたフィルタセットであり得る)フィルタセットを与えられると、分類器が、適用され得る。分類器は、フィルタセットからのどのフィルタが適用され得るか、およびフィルタ係数をどのように転置するかを決定する。第1の段階の後、各フィルタセットおよび対応する分類器について、中間的にフィルタリングされた信号R’が、たとえば、
【0115】
【0116】
ように計算され得る。
【0117】
[0109] 第iのフィルタ、i=0...Nf+Ns-1について、ci,jは、第iのフィルタセットからの選択されたフィルタの第jの係数であり、Niは、係数の数であり、fi,j,k、k=0または1は、1つの隣接サンプルと現在サンプルとの関数であり、たとえば、fi,j,kは、VVCにおけるように、クリッピング関数として実施され得る。
【0118】
【0119】
(xi,j,k,yi,j,k)は、現在サンプルに対する、隣接サンプルの座標オフセットである。
【0120】
[0110] いくつかの例においては、固定されたフィルタまたはシグナリングされたフィルタのフィルタ形状は、5×5、7×7、9×9、11×11、および13×13であり得る。
図10Aは、5×5のダイヤモンドフィルタ形状である、フィルタ510の例を示しており、
図10Bは、7×7のダイヤモンドフィルタ形状である、フィルタ520の例を示している。
図10Cは、9×9のダイヤモンド形状フィルタ形状である、フィルタ530の例を示しており、
図10Dは、11×11のダイヤモンドフィルタ形状である、フィルタ540の例を示している。
図10Eは、13×13のダイヤモンドフィルタ形状である、フィルタ550の例を示している。
【0121】
[0111] 一例においては、ビデオデコーダ300は、2-Dラプラシアン/勾配値に基づいて、分類器C(f/s,i)と、アクティビティ値および方向値とを決定するように構成され得る。分類器は、各サンプルまたはブロックに適用され得る。分類器が、ブロックに適用されるとき、ブロック内のすべてのサンプルは、同じクラスインデックスと、同じ転置型とを有する。たとえば、wiは、ブロックの幅を表すことができ、hiは、ブロックの高さを表すことができ、(x,y)は、ブロックの左上サンプルの座標を表すことができる。
【0122】
[0112] 座標(k,l)を有するサンプルについて、4つのラプラシアン(勾配)値、すなわち、水平勾配H、垂直勾配V、135度勾配D1、および45度勾配D2が、
【0123】
【0124】
として導出され得る。
(14)
[0113] ビデオデコーダ300は、
【0125】
【0126】
のように、垂直および水平勾配を使用することによって、アクティビティ値Aiを導出するように構成され得、ここで、aiおよびbiは、それぞれ、分類器C(f/s,i)についての水平方向および垂直方向における窓サイズである。
【0127】
[0114] ビデオデコーダ300は、Aiを0以上MA,i-1以下の範囲に量子化するように構成され得る。量子化された値は、
【0128】
【0129】
と表される。
【0130】
[0115] ビデオデコーダ300は、水平勾配Hと、垂直勾配Vと、135度勾配D1と、45度勾配D2とを使用して、方向を決定するように構成され得る。
【0131】
[0116] ビデオデコーダ300は、次のように、水平勾配gi,Hと、垂直勾配gi,Vと、2つの対角線勾配gi,D1およびgi,D2との値を最初に計算するように構成され得る。
【0132】
【0133】
[0117] 方向性Diを割り当てるために、ビデオエンコーダ200およびビデオデコーダ300は、次のように、水平勾配と垂直勾配の最大値および最小値と、2つの対角線勾配の最大値および最小値とを導出するように構成され得る。
【0134】
【0135】
次いで、VVCと同じように、方向Diが、導出され得、方向の数MD,i=5である。
ステップ1.
【0136】
【0137】
および
【0138】
【0139】
の両方である場合、Diは、0に設定される(ブロックは、「テクスチャ」にカテゴライズされる)。
ステップ2.
【0140】
【0141】
である場合、ステップ3から続行し、それ以外の場合、ステップ4から続行する。
ステップ3.
【0142】
【0143】
である場合、Diは、2に設定され(ブロックは、「強い水平/垂直」としてカテゴライズされ)、それ以外の場合、Diは、1に設定される(ブロックは、「弱い水平/垂直」としてカテゴライズされる)。
ステップ4.
【0144】
【0145】
である場合、Diは、4に設定され(ブロックは、「強い対角線」としてカテゴライズされ)、それ以外の場合、Diは、3に設定される(ブロックは、「弱い対角線」としてカテゴライズされる)。
【0146】
[0118] いくつかの例においては、より多くの方向が、サポートされ得る。
【0147】
[0119] ビデオデコーダ300は、比率
【0148】
【0149】
を閾値の配列(Th)と比較することによって、水平/垂直方向のエッジ強度(ESi,HV)を計算するように構成され得る。しきい値の配列のサイズは、Sによって表され、しきい値は、昇順にソートされる。方角の数は、MD,i=(S+1)×(S+2)である。
【0150】
ステップ1.m=0、ESi,HV=0と初期化する。
【0151】
ステップ2.mが、Sに等しい場合、停止し、それ以外の場合、ステップ3に進む。
【0152】
ステップ3.
【0153】
【0154】
である場合、m=m+1、ESi,HV=ESi,HV+1として、ステップ2に進み、それ以外の場合、停止する。
【0155】
[0120] ビデオデコーダ300は、次のように、対角線方向方向(Ei,D)を計算するように構成され得る。
【0156】
ステップ1.m=0、Ei,D=0と初期化する。
【0157】
ステップ2.mが、Sに等しい場合、停止し、それ以外の場合、ステップ3に進む。
【0158】
ステップ3.
【0159】
【0160】
である場合、m=m+1、Ei,D=Ei,D+1として、ステップ2に進み、それ以外の場合、停止する。
【0161】
[0121] 閾値の配列の例は、Th=[1.25,1.5,2,3,4.5,8]であり、S=6である。
【0162】
[0122] ビデオデコーダ300は、次のように、主エッジ強度(ESM)と、2次エッジ強度(ESS)とを決定するように構成され得る。
【0163】
【0164】
である場合、ESMは、ESHVとして設定され、ESSは、ESDとして設定され、それ以外の場合、ESMは、ESDとして設定され、ESSは、ESHVとして設定される。
【0165】
ESSが、ESMよりも大きい場合、Diは、0に設定される。それ以外の場合で、
【0166】
【0167】
である場合、Di=ESM×(ESM+1)/2+ESSであり、さもなければ、Di=ESM×(ESM+1)/2+ESS+MD,i/2である。
【0168】
[0123] ビデオデコーダ300は、クラスインデックスCiを、
【0169】
【0170】
として導出するように構成され得る。
【0171】
[0124] Ciに基づいて、ビデオエンコーダ200およびビデオデコーダ300は、フィルタセットF(f/s,i)からフィルタを選択するように構成され得る。
【0172】
[0125] 第2の段階のALF410の態様が、今から、より詳細に説明される。第2の段階のALF410においては、F’は、フィルタセットであり、C’は、対応する分類器である。中間フィルタリング結果が、現在サンプルと、それの隣接サンプルとを用いて、さらにフィルタリングされ得る。C’は、F’内のどのフィルタが適用されるか、および係数をどのように転置するかを決定するために、使用され得る。一例においては、F’は、シグナリングされたフィルタセット、または固定(事前定義)されたフィルタセットであり得る。一例においては、第1の段階と同じ方法で、アクティビティと、方向とを計算することによって、フィルタセットF’についてのフィルタインデックスを決定するために、C’は、Rsおよび/またはR’sを使用し得る。F’を適用するとき、転置が、適用され得る。
【0173】
[0126] 固定されたフィルタセットF(f,i)と、対応する分類器C(f,i)が、1つまたは複数の候補となる固定されたフィルタセットから選択され得る。一例においては、iを与えられると、固定されたフィルタセットF(f,i)および分類器C(f,i)について、いくつかの候補となる固定されたフィルタセットが、存在し得る。また、固定されたフィルタセットF(f,i)と、分類器C(f,i)は、ピクチャ/CTU/CU/PU/TUサイズ、量子化パラメータ(QP)、非ゼロ量子化係数の数、動きベクトル、および窓サイズ(ai,bi)などの、コーディング情報に基づいて、選択され得る。いくつかの例においては、F(f、i)ごとに、第iの固定されたフィルタセットについての候補となる固定されたフィルタセットから、どの固定されたフィルタセットが使用されるかを示すために、シンタックス要素が、シグナリングされ得る。シンタックス要素は、SPS、PPS、VPS、APS、ピクチャヘッダ(PH)、スライスヘッダ(SH)、サブピクチャ、CTU、またはブロックの一部として、シグナリングされ得る。いくつかの例においては、これらすべてのシンタックス要素が、同じ値を有することがあり、ただ1つのシンタックス要素が、シグナリングされる必要がある。いくつかの例においては、F(f,i)のために、1つの候補となる固定されたフィルタセットのみが、利用可能であることがあり、そのため、シンタックス要素は、シグナリングされる必要がない。
【0174】
[0127] 一例においては、NsおよびNfは、SPS、VPS、APS、PH、SH、CTU、またはサブブロックレベルなどの、高レベルにおいては、暗黙的に決定され、または明示的にシグナリングされ得る。
【0175】
[0128] ビデオデコーダ300は、複数の固定されたフィルタと、1つのシグナリングされたフィルタとを実施するように構成され得る。別の例においては、適応性を維持しながら、ビットストリームシグナリングオーバーヘッドを減らすために、ビデオエンコーダ200およびビデオデコーダ300は、
図11に示されるように、複数の固定されたフィルタとともに、ただ1つのシグナリングされたフィルタを使用して、現在サンプルをフィルタリングするように構成され得る。
【0176】
[0129]
図11は、本開示の技法に従った、1つのシグナリングされたフィルタを伴った、複数の固定されたフィルタを実施するための、例示的なフレームワークを示している。
図11の例においては、ビデオエンコーダ200およびビデオデコーダ300は、再構築ブロックの再構築サンプルR(x,y)に第1の段階のALF540を適用する。第1の段階のALF540を適用するために、ビデオエンコーダ200およびビデオデコーダ300は、再構築サンプルについての第1のクラスインデックスを決定するために、分類器(C)を適用し、第1のクラスインデックスに基づいて、フィルタの第1のセット(F)からフィルタ(f)を選択する。ビデオエンコーダ200およびビデオデコーダ300は、第1の中間サンプル値(R’)を決定するために、再構築サンプルに、フィルタの第1のセットからのフィルタを適用する。
図11に示されるように、第1の段階540において、ビデオエンコーダ200およびビデオデコーダ300は、複数の中間サンプル値を決定するために、複数の分類器と、複数のフィルタとを使用し得る。
【0177】
[0130] ビデオエンコーダ200およびビデオデコーダ300は、再構築サンプルに、第2の段階のALF542を適用する。以下の式(28)は、ビデオエンコーダ200およびビデオデコーダ300が、第2の段階のALFをどのように適用し得るかの例を示す。
【0178】
[0131] Nfは、サンプルに適用され得る、固定(事前定義)されたフィルタセットの数を表す。Rsは、ALFへの入力である。F(f,i)、i=0...Nf-1は、第iの固定されたフィルタセットを表す。C(f,i)、i=0...Nf-1は、第iの固定されたフィルタセットと一緒の分類器を表す。C(f,i)を通して、サンプルごとに、フィルタインデックスが、計算される。フィルタインデックスに基づいて、固定されたフィルタセットF(f,i)からのフィルタが、そのサンプルをフィルタリングするために、選択される。加えて、C(f,i)は、係数に幾何学的変換をどのように適用するかを決定する。
【0179】
[0132] 第1の段階が、今から、説明される。第1の段階においては、再構築サンプルR(x,y)について、再構築サンプル自体と、隣接サンプルとを使用することによって、ビデオエンコーダ200およびビデオデコーダ300は、複数の固定されたフィルタセットを適用するように構成され得る。固定されたフィルタセットF(f,i)を与えられると、ビデオエンコーダ200およびビデオデコーダ300は、分類器C(f,i)を適用し得る。導出されたクラスインデックスに基づいて、ビデオエンコーダ200およびビデオデコーダ300は、フィルタセットF(f,i)からのフィルタを適用し得る。加えて、幾何学的変換が、C(f,i)において決定され、幾何学的変換が、選択されたフィルタの係数に適用され得る。第1の段階の後、各フィルタセットおよび対応する分類器について、ビデオエンコーダ200およびビデオデコーダ300は、たとえば、次のように、中間フィルタリング信号R’を計算し得る。
【0180】
【0181】
[0133] 第iのフィルタ、i=0...Nf-1について、ci,jは、第iのフィルタセットF(f,i)から選択されたフィルタの第jの係数であり、Niは、係数の数であり、fi,j,k、k=0または1は、1つの隣接サンプルと現在サンプルとの関数であり、たとえば、fi,j,kは、VVCにおけるように、クリッピング関数として実施され得る。
【0182】
【0183】
(xi,j,k,yi,j,k)は、現在サンプルに対する、隣接サンプルの座標オフセットであり、bi,jは、第iのフィルタセットから選択されたフィルタの第jのクリッピングパラメータである。
【0184】
[0134] いくつかの例においては、固定されたフィルタまたはシグナリングされたフィルタのフィルタ形状は、
図9に示されるように、5×5、7×7、9×9、11×11、および13×13であり得る。
【0185】
[0135] 一例においては、ビデオエンコーダ200およびビデオデコーダ300は、分類器C(f,i)において、2-Dラプラシアン値に基づいて、アクティビティ値と、方向値とを決定し得る。分類器は、各サンプルまたはブロックに適用され得る。分類器が、ブロックに適用されるとき、ブロック内のすべてのサンプルは、同じクラスインデックスと、同じ転置型とを有する。たとえば、wiは、ブロックの幅を表すことができ、hiは、ブロックの高さを表すことができ、(x,y)は、ブロックの左上サンプルの座標を表すことができる。
【0186】
[0136] 座標(k,l)を有するサンプルについて、ビデオエンコーダ200およびビデオデコーダ300は、次のように、4つのラプラシアン(勾配)値、すなわち、水平勾配H、垂直勾配V、135度勾配D1、および45度勾配D2を導出するように構成され得る。
【0187】
【0188】
[0137] ビデオエンコーダ200およびビデオデコーダ300は、次のように、垂直勾配および水平勾配を使用することによって、アクティビティ値Aiを導出し得る。
【0189】
【0190】
ここで、aiおよびbiは、それぞれ、分類器C(f,i)についての水平方向および垂直方向における窓サイズである。
【0191】
[0138] ビデオエンコーダ200およびビデオデコーダ300は、Aiを0以上MA,i-1以下の範囲に量子化するように構成され得、量子化された値は、
【0192】
【0193】
と表される。
【0194】
[0139] 一例においては、
【0195】
【0196】
bitdepthは、R(x,y)のビット深度であり、multiは、窓サイズ(ai,bi)に依存し得、multiは、以下の値と等しくなり得る。
【0197】
【0198】
[0140] ビデオエンコーダ200およびビデオデコーダ300は、水平勾配Hと、垂直勾配Vと、135度勾配D1と、45度勾配D2とを使用することによって、方向を決定するように構成され得る。
【0199】
[0141] ビデオエンコーダ200およびビデオデコーダ300は、次のように、水平勾配gi,Hと、垂直勾配gi,Vと、2つの対角線勾配gi,D1およびgi,D2との値を最初に計算するように構成され得る。
【0200】
【0201】
[0142] 方向性Diを割り当てるために、ビデオエンコーダ200およびビデオデコーダ300は、次のように、水平勾配と垂直勾配の最大値および最小値と、2つの対角線勾配の最大値および最小値とを導出するように構成され得る。
【0202】
【0203】
[0143] 次いで、ビデオエンコーダ200およびビデオデコーダ300は、次のように、方向Diを導出するように構成され得、方向の数MD,i=5である。
ステップ1.
【0204】
【0205】
および
【0206】
【0207】
の両方である場合、Diは、0に設定される(ブロックは、「テクスチャ」にカテゴライズされる)。
ステップ2.
【0208】
【0209】
である場合、ステップ3から続行し、それ以外の場合、ステップ4から続行する。
ステップ3.
【0210】
【0211】
である場合、Diは、2に設定され(ブロックは、「強い水平/垂直」としてカテゴライズされ)、それ以外の場合、Diは、1に設定され(ブロックは、「弱い水平/垂直」としてカテゴライズされる)。
ステップ4.
【0212】
【0213】
である場合、Diは、4に設定され(ブロックは、「強い対角線」としてカテゴライズされ)、それ以外の場合、Diは、3に設定される。(ブロックは、「弱い対角線」としてカテゴライズされる)。
【0214】
[0144] いくつかの例においては、より多くの方向が、サポートされ得る。
【0215】
[0145] ビデオエンコーダ200およびビデオデコーダ300は、比率
【0216】
【0217】
を閾値の配列(Th)と比較することによって、水平/垂直方向のエッジ強度(ESi,HV)を計算するように構成され得る。しきい値の配列のサイズは、Sであることができ、しきい値は、昇順にソートされ得る。方角の数は、MD,i=(S+1)×(S+2)である。
【0218】
ステップ1.m=0、ESi,HV=0と初期化する。
【0219】
ステップ2.mが、Sに等しい場合、停止し、それ以外の場合、ステップ3に進む。
【0220】
ステップ3.
【0221】
【0222】
である場合、m=m+1、ESi,HV=ESi,HV+1として、ステップ2に進み、それ以外の場合、停止する。
【0223】
[0146] ビデオエンコーダ200およびビデオデコーダ300は、次のように、対角線方向(Ei,D)を計算するように構成され得る。
【0224】
ステップ1.m=0、Ei,D=0と初期化する。
【0225】
ステップ2.mが、Sに等しい場合、停止し、それ以外の場合、ステップ3に進む。
【0226】
ステップ3.
【0227】
【0228】
である場合、m=m+1、Ei,D=Ei,D+1として、ステップ2に進み、それ以外の場合、停止する。
【0229】
[0147] 閾値の配列の例は、Th=[1.25,1.5,2,3,4.5,8]であり、S=6である。
【0230】
[0148] ビデオエンコーダ200およびビデオデコーダ300は、次のように、主エッジ強度(ESM)と、2次エッジ強度(ESS)とを決定するように構成され得る。
【0231】
【0232】
である場合、ESMは、ESHVとして設定され、ESSは、ESDとして設定され、それ以外の場合、ESMは、ESDとして設定され、ESSは、ESHVとして設定される。
【0233】
ESSが、ESMよりも大きい場合、Diは、0に設定される。それ以外の場合で、
【0234】
【0235】
である場合、Di=ESM×(ESM+1)/2+ESSであり、さもなければ、Di=ESM×(ESM+1)/2+ESS+MD,i/2である。
【0236】
クラスインデックスCiは、
【0237】
【0238】
として導出され得る。
【0239】
Ciに基づいて、C(f,i)からのフィルタが、選択される。
【0240】
[0149] ビデオエンコーダ200およびビデオデコーダ300は、1つまたは複数の候補となる固定されたフィルタセットから、固定されたフィルタセットF(f,i)と、対応する分類器C(f,i)とを選択し得る。一例においては、iを与えられると、固定されたフィルタセットF(f,i)および分類器C(f,i)について、いくつかの候補となる固定されたフィルタセットが、存在し得る。また、固定されたフィルタセットF(f,i)と、分類器C(f,i)は、ピクチャ/CTU/CU/PU/TUサイズ、QP、非ゼロ量子化係数の数、動きベクトル、および窓サイズ(ai,bi)などの、コーディング情報に基づいて、選択され得る。いくつかの例においては、F(f、i)ごとに、第iの固定されたフィルタセットについての候補となる固定されたフィルタセットから、どの固定されたフィルタセットが使用されるかを示すために、シンタックス要素が、シグナリングされ得る。シンタックス要素は、SPS、PPS、VPS、APS、PH、SH、サブピクチャ、CTU、またはブロックレベルで、シグナリングされ得る。いくつかの例においては、これらすべてのシンタックス要素が、同じ値を有することがあり、ただ1つのシンタックス要素が、シグナリングされる必要がある。いくつかの例においては、候補となる固定されたフィルタセットは、1つの固定されたフィルタセットのみを有することがあり、そのため、シンタックス要素は、シグナリングされる必要がない。
【0241】
[0150] 一例においては、窓サイズ(ai,bi)を与えられると、すべての利用可能な固定されたフィルタの数は、Tである。たとえば、QPは、現在サンプルの量子化パラメータを表すことができ、QP_MIN、QP_MAX、およびQP_OFFSETは、事前定義された値である。2つの候補となる固定されたフィルタセットのインデックスは、
【0242】
【0243】
として決定され得る。F(f,i)のために、第l0の候補となる固定されたフィルタセットが使用されるか、それとも第l1の候補となる固定されたフィルタセットが使用されるかを示すために、シンタックス要素が、シグナリングされ得る。いくつかの例においては、すべての固定されたフィルタセットは、同じシンタックス要素を共有し得る。
【0244】
[0151] 第2の段階の態様が、今から、説明される。第2の段階においては、F’は、シグナリングされたフィルタまたは事前定義されたフィルタセットであり、C’は、対応する分類器である。中間フィルタリング結果は、現在サンプルおよび/またはそれの隣接サンプルを用いて、さらにフィルタリングされ得る。C’は、F’内のどのフィルタが適用されるか、および係数をどのように転置するかを決定するために、使用され得る。第1の段階のように、アクティビティと、方向とを計算することによって、フィルタセットF’についてのフィルタインデックスを決定するために、C’は、Rsおよび/またはR’sを使用し得る。F’を適用するとき、転置が、適用され得る。
【0245】
[0152] 一例においては、座標(k,l)を有するサンプルについて、4つのラプラシアン(勾配)値、すなわち、水平勾配H、垂直勾配V、135度勾配D1、および45度勾配D2が、
【0246】
【0247】
として導出され得る。
【0248】
[0153] ビデオエンコーダ200およびビデオデコーダ300は、次のように、垂直および水平勾配を使用することによって、アクティビティ値Aを導出するように構成され得、
【0249】
【0250】
ここで、aおよびbは、それぞれ、分類器C’についての水平方向および垂直方向における窓サイズであり、wおよびhは、すべてのサンプルが、同じ分類インデックスと、同じ転置インデックスとを有するブロックの幅および高さである。
【0251】
[0154] ビデオエンコーダ200およびビデオデコーダ300は、Aを0以上MA-1以下の範囲に量子化するように構成され得、量子化された値は、
【0252】
【0253】
と表される。たとえば、
【0254】
【0255】
bitdepthは、R(x,y)のビット深度であり、multは、窓サイズa×bに依存し得、multは、以下の値と等しくなり得る。
【0256】
【0257】
[0155] 方向と、転置をどのように実行するかは、それらのすべてが参照によって本明細書に組み込まれる、米国特許公開第2017/0238020A1号、米国特許公開第2017/0237981A1号、または米国特許公開第2017/0237982A1号において説明されている方式で計算され得る。
【0258】
[0156] フィルタリングのさらなる態様が、今から、説明される。C’からサンプルのクラスインデックスを取得した後、ビデオエンコーダ200およびビデオデコーダ300は、クラスインデックスに基づいて、フィルタセットF’からフィルタを選択するように構成され得る。ビデオエンコーダ200およびビデオデコーダ300は、
【0259】
【0260】
のように、フィルタを適用するように構成され得る。
【0261】
(28)においては、フィルタリングは、2つの部分に分けられている。
・フィルタ部分1:
【0262】
【0263】
:隣接サンプルを使用することによって、フィルタリングし、幾何学的変換が、適用され得、N
0は、適用されるフィルタ形状の係数の数である。フィルタは、
図9に示されるような、5×5、7×7、9×9、11×11、または13×13のダイヤモンドフィルタであり得る。
・フィルタ部分2:
【0264】
【0265】
:中間的にフィルタリングされたサンプルを使用することによって、フィルタリングし、幾何学的変換が、適用され得る。N0およびN1は、潜在的に一意的な係数の数を表す。
【0266】
関数fi,j、j=0または1は、
【0267】
【0268】
のように、クリッピング関数を用いて定義され得る。
【0269】
関数giは、
【0270】
【0271】
のように、クリッピング関数を用いて定義され得る。
【0272】
biは、係数ciに対応する、クリッピングパラメータである。
【0273】
[0157]
図12A~
図12Eは、2部分フィルタの例を示している。
図12Aは、フィルタ部分1(フィルタ560)が、5×5 N
1=7であり、フィルタ部分2(フィルタ562)については、N
1=2である、例を示している。
図12Bは、フィルタ部分1(フィルタ564)が、7×7 N
0=13であり、フィルタ部分2(フィルタ566)については、N
1=2である、例を示している。
図12Cは、フィルタ部分1(フィルタ568)が、9×9 N
1=21であり、フィルタ部分2(フィルタ570)については、N
1=2である、例を示している。
図12Dは、フィルタ部分1(フィルタ572)が、11×11 N
1=31であり、フィルタ部分2(フィルタ574)については、N
1=2である、例を示している。
図12Eは、フィルタ部分1(フィルタ576)が13×13 N
1=43であり、フィルタ部分2(フィルタ578)については、N
1=2である、例を示している。
【0274】
[0158] いくつかの例においては、N0および/またはN1の値は、明示的にシグナリングされ、またはSPS、VPS、PPS、APS、PH、SH、サブピクチャヘッダ、もしくはブロックレベルで、暗黙的に決定され得る。
【0275】
[0159] いくつかの例においては、フラグは、明示的にシグナリングされ、またはこのフラグが、1つの値に等しいとき、すべての係数ci、i=0...N0-1と、クリッピングパラメータbi、i=0...N0-1が、シグナリング/使用されるとは限らず、0であると推論されるように、SPS、VPS、PPS、APS、PH、SH、サブピクチャヘッダ、ブロックレベル、もしくはフィルタレベルで、暗黙的に決定され得る。
【0276】
[0160] いくつかの例においては、フラグは、明示的にシグナリングされ、またはこのフラグが、1つの値に等しいとき、すべての係数ci、i=N0...N0+N1-1と、クリッピングパラメータbi、i=N0...N0+N1-1が、シグナリング/使用されるとは限らず、0であると推論されるように、SPS、VPS、PPS、APS、PH、SH、サブピクチャヘッダ、ブロックレベル、もしくはフィルタレベルで、暗黙的に決定され得る。
【0277】
[0161] 1つのフィルタセットにおいて、N0の値は、フィルタごとに異なり得る。1つのフィルタセットにおいては、N1の値は、フィルタごとに異なり得る。
【0278】
[0162] 本開示は、ALF性能が、JVET-U0100、および米国仮特許出願第63/130,275号において説明されている技法よりも改善され得ることを認識している。第1の段階からのフィルタリングされたサンプルのみが、好まれ、第2の段階におけるフィルタリングが、必要とされないとき、F’のフィルタ係数ci、i=0...N0-2は、依然として、シグナリングされ、それらは、すべてゼロである。しかしながら、これらすべてのゼロ係数をシグナリングすることが、必要であるとは限らない。したがって、コーディング効率を改善するために、代替的なシグナリングプロセスが、適用され得る。
【0279】
[0163] いくつかの例においては、ビデオエンコーダ200およびビデオデコーダ300は、固定されたフィルタのみを使用するのではなく、ビットストリーム内に1つまたは複数のフィルタF(f,i)を表すデータをコーディングするように構成され得る。加えて、または代替として、ビデオエンコーダ200およびビデオデコーダ300は、上で論じられたようなフィルタリングの第2の段階を実行するかどうかを決定するように構成され得る。第2の段階が、実行されないとき、ビデオエンコーダ200およびビデオデコーダ300は、第2の段階中に適用される1つまたは複数のフィルタについての係数をコーディング(符号化および/または復号)することを回避し得、それが、ビットストリームにおけるシグナリングオーバーヘッドと、ビデオエンコーダ200とビデオデコーダ300の両方によって実行される処理とを減らし得る。
【0280】
[0164]
図13は、本開示の技法に従った、例示的なALFフレームワークを示す概念図である。ビデオデコーダ300は、
図3に関して説明された技法を実行するように構成され得る。
図13に示されるように、例示的なALFフレームワークは、第1の段階580と第2の段階582の両方を含む。本開示の技法によれば、ビデオエンコーダ200およびビデオデコーダ300は、第2の段階が実行されるべきかどうかを決定するために、フィルタ使用情報を使用し得る。第2の段階が、実行されるべきでないとき、ビデオエンコーダ200およびビデオデコーダ300は、
図13に示されるように、第2の段階におけるフィルタリング(C’、F’)をバイパスし得る。したがって、ビデオエンコーダ200およびビデオデコーダ300は、フィルタリングされたサンプルを計算するために、第1の段階からの中間フィルタリングサンプル(R’(x,y,0)...R’(x,y,N
f-1))のみを使用し得る。
【0281】
[0165] さらに、ビデオデコーダ300は、たとえば、
【0282】
【0283】
に従って、様々なフィルタからの中間フィルタリングサンプルの加重和を計算し得、ここで、wiは、R’(x,y,i)の重みである。
【0284】
[0166] いくつかの例においては、フィルタ使用情報は、シーケンス、ピクチャ、スライス、サブピクチャ、CTU、CTB、またはサブブロックレベルで、シグナリングされ得る。たとえば、ビデオエンコーダ200およびビデオデコーダ300は、シーケンスパラメータセット(SPS)、ピクチャパラメータセット(PPS)、スライスヘッダ、サブピクチャヘッダ、コーディングツリーユニット(CTU)ヘッダ、コーディングツリーブロック(CTB)ヘッダ、またはサブブロックヘッダのうちの1つまたは複数内に、フィルタ使用情報をコーディングし得る。
【0285】
[0167] 別の例においては、フィルタ使用情報は、シグナリングされないことがある。代わりに、ビデオデコーダ300は、量子化パラメータ(QP)、ブロックサイズ、インター/イントラモード、または他のそのようなデータなどの、コーディング情報に基づいて、フィルタ使用情報を適応的に導出し得る。
【0286】
[0168] 重みwi、i=0...Nf-1は、フィルタ使用情報の値を与えられると、固定され得、またはビデオエンコーダ200およびビデオデコーダ300は、シーケンス、ピクチャ、スライス、サブピクチャ、CTU、CTB、サブブロックレベルで、ビットストリーム内に、重みについての値をコーディングし得る。重みwiのいくつかの組合せが、使用され得、現在サンプルのために、重みのどの組合せが使用されるかを決定するために、フィルタ使用情報が、使用され得る。
【0287】
[0169] 一例においては、第1のフラグが、シグナリングされ得る。この第1のフラグが、1に等しいとき、ビデオエンコーダ200およびビデオデコーダ300は、値(C’、F’)をバイパスし得る。次いで、第2のフラグが、シグナリングされ得る。ビデオエンコーダ200およびビデオデコーダ300は、第2のフラグの値を、重みwi、i=0...Nf-1の組合せと関連付け得る。たとえば、第2のフラグが、iに等しく、iが、0...Nf-1であることができるとき、R’(x,y,i)が、フィルタリングされたサンプルとして、使用され得る。
【0288】
[0170]
図14は、本開示の技法に従った、別の例示的なALFフレームワークを示す概念図である。ビデオエンコーダ200およびビデオデコーダ300は、
図14に関して説明された技法に従って、構成され得る。特に、
図14においては、フィルタリングされたサンプルを取得するために、スケーリングが、フィルタリング結果に適用され得る。
【0289】
[0171]
図14は、ビデオデータの再構築サンプルをフィルタリングするために、複数の固定されたフィルタセットと、複数のシグナリングされたフィルタセットとを使用するための、例示的なフレームワークを示している。ビデオデコーダ300は、
図14の技法に従って、複数の固定されたフィルタと、複数のシグナリングされたフィルタとを実施するように構成され得る。
図14の例においては、ビデオデコーダ300は、中間フィルタリング信号R’を決定するために、再構築サンプルR(x,y)に、第1の段階のALF584を適用する。次いで、ビデオデコーダ300は、フィルタリングされたサンプル588についての値を決定するために、R’に、第2のALF段階586を適用する。
【0290】
[0172]
図15は、本開示の技法を実行し得る、例示的なビデオエンコーダ200を示すブロック図である。
図15は、説明の目的で提供されており、本開示において広く例示および説明されるような技法を限定するものと見なされるべきではない。説明の目的で、本開示は、VVC(ITU-T H.266、開発中)およびHEVC(ITU-T H.265)の技法に従った、ビデオエンコーダ200について説明する。しかしながら、本開示の技法は、他のビデオコーディング規格に合わせて構成された、ビデオ符号化デバイスによって実行され得る。
【0291】
[0173]
図15の例では、ビデオエンコーダ200は、ビデオデータメモリ230と、モード選択ユニット202と、残差生成ユニット204と、変換処理ユニット206と、量子化ユニット208と、逆量子化ユニット210と、逆変換処理ユニット212と、再構築ユニット214と、フィルタユニット216と、DPB218と、エントロピー符号化ユニット220とを含む。ビデオデータメモリ230と、モード選択ユニット202と、残差生成ユニット204と、変換処理ユニット206と、量子化ユニット208と、逆量子化ユニット210と、逆変換処理ユニット212と、再構築ユニット214と、フィルタユニット216と、DPB218と、エントロピー符号化ユニット220とのいずれかまたはすべては、1つまたは複数のプロセッサにおいてまたは処理回路において実装され得る。たとえば、ビデオエンコーダ200のユニットは、1つまたは複数の回路または論理要素として、ハードウェア回路の一部として、あるいはプロセッサ、ASIC、またはFPGAの一部として実装され得る。その上、ビデオエンコーダ200は、これらおよび他の機能を実施するための追加または代替のプロセッサまたは処理回路を含み得る。
【0292】
[0174] ビデオデータメモリ230は、ビデオエンコーダ200の構成要素によって符号化されるべきビデオデータを記憶し得る。ビデオエンコーダ200は、たとえば、ビデオソース104(
図1)から、ビデオデータメモリ230に記憶されるビデオデータを受信し得る。DPB218は、ビデオエンコーダ200による後続のビデオデータの予測において使用するための参照ビデオデータを記憶する参照ピクチャメモリとして働き得る。ビデオデータメモリ230とDPB218とは、同期ダイナミックランダムアクセスメモリ(DRAM)(SDRAM)を含むDRAM、磁気抵抗RAM(MRAM)、抵抗性RAM(RRAM(登録商標))、または他のタイプのメモリデバイスなど、様々なメモリデバイスのいずれかによって形成され得る。ビデオデータメモリ230とDPB218とは、同じメモリデバイスまたは別個のメモリデバイスによって提供され得る。様々な例では、ビデオデータメモリ230は、図示のように、ビデオエンコーダ200の他の構成要素とともにオンチップであるか、またはそれらの構成要素に対してオフチップであり得る。
【0293】
[0175] 本開示では、ビデオデータメモリ230への言及は、特にそのように説明されない限り、ビデオエンコーダ200の内部のメモリに限定されるものとして解釈されるべきではなく、または特にそのように説明されない限り、ビデオエンコーダ200の外部のメモリに限定されるものとして解釈されるべきではない。そうではなく、ビデオデータメモリ230への言及は、ビデオエンコーダ200が符号化のために受信するビデオデータ(たとえば、符号化されるべきである現在ブロックのためのビデオデータ)を記憶する参照メモリとして理解されるべきである。
図1のメモリ106はまた、ビデオエンコーダ200の様々なユニットからの出力の一時的記憶を提供し得る。
【0294】
[0176]
図15の様々なユニットは、ビデオエンコーダ200によって実施される動作を理解するのを支援するために示されている。ユニットは、固定機能回路、プログラマブル回路、またはそれらの組合せとして実装され得る。固定機能回路は、特定の機能を提供する回路を指し、実施され得る動作に関してプリセットされる。プログラマブル回路は、様々なタスクを実施するように、および実施され得る動作においてフレキシブルな機能を提供するようにプログラムされ得る回路を指す。たとえば、プログラマブル回路は、ソフトウェアまたはファームウェアの命令によって定義される様式でプログラマブル回路を動作させるソフトウェアまたはファームウェアを実行し得る。固定機能回路は、(たとえば、パラメータを受信するかまたはパラメータを出力するために)ソフトウェア命令を実行し得るが、固定機能回路が実施する動作のタイプは、概して不変である。いくつかの例では、ユニットのうちの1つまたは複数は、別個の回路ブロック(固定機能またはプログラマブル)であり得、いくつかの例では、ユニットのうちの1つまたは複数は、集積回路であり得る。
【0295】
[0177] ビデオエンコーダ200は、算術論理ユニット(ALU)、基本機能ユニット(EFU)、デジタル回路、アナログ回路、および/またはプログラマブル回路から形成されるプログラマブルコアを含み得る。ビデオエンコーダ200の動作が、プログラマブル回路によって実行されるソフトウェアを使用して実施される例では、メモリ106(
図1)は、ビデオエンコーダ200が受信し、実行するソフトウェアの命令(たとえば、オブジェクトコード)を記憶し得るか、またはビデオエンコーダ200内の別のメモリ(図示せず)が、そのような命令を記憶し得る。
【0296】
[0178] ビデオデータメモリ230は、受信されたビデオデータを記憶するように構成される。ビデオエンコーダ200は、ビデオデータメモリ230からビデオデータのピクチャを取り出し、ビデオデータを残差生成ユニット204とモード選択ユニット202とに提供し得る。ビデオデータメモリ230中のビデオデータは、符号化されるべきである生のビデオデータであり得る。
【0297】
[0179] モード選択ユニット202は、動き推定ユニット222と、動き補償ユニット224と、イントラ予測ユニット226とを含む。モード選択ユニット202は、他の予測モードに従ってビデオ予測を実施するための追加の機能ユニットを含み得る。例として、モード選択ユニット202は、パレットユニット、(動き推定ユニット222および/または動き補償ユニット224の一部であり得る)イントラブロックコピーユニット、アフィンユニット、線形モデル(LM)ユニットなどを含み得る。
【0298】
[0180] モード選択ユニット202は、概して、符号化パラメータの組合せと、そのような組合せについての得られたレートひずみ値とをテストするために、複数の符号化パスを協調させる。符号化パラメータは、CUへのCTUの区分、CUのための予測モード、CUの残差データのための変換タイプ、CUの残差データのための量子化パラメータなどを含み得る。モード選択ユニット202は、他のテストされた組合せよりも良好であるレートひずみ値を有する符号化パラメータの組合せを最終的に選択し得る。
【0299】
[0181] ビデオエンコーダ200は、ビデオデータメモリ230から取り出されたピクチャを一連のCTUに区分し、スライス内の1つまたは複数のCTUをカプセル化し得る。モード選択ユニット202は、上記で説明されたHEVCのQTBT構造またはクワッドツリー構造など、ツリー構造に従ってピクチャのCTUを区分し得る。上記で説明されたように、ビデオエンコーダ200は、ツリー構造に従ってCTUを区分することから1つまたは複数のCUを形成し得る。そのようなCUは、概して「ビデオブロック」または「ブロック」と呼ばれることもある。
【0300】
[0182] 概して、モード選択ユニット202はまた、現在ブロック(たとえば、現在CU、またはHEVCでは、PUとTUとの重複する部分)のための予測ブロックを生成するように、それの構成要素(たとえば、動き推定ユニット222、動き補償ユニット224、およびイントラ予測ユニット226)を制御する。現在ブロックのインター予測のために、動き推定ユニット222は、1つまたは複数の参照ピクチャ(たとえば、DPB218に記憶された1つまたは複数の前にコーディングされたピクチャ)中で1つまたは複数のぴったり一致する参照ブロックを識別するために動き探索を実施し得る。特に、動き推定ユニット222は、たとえば、絶対差分和(SAD)、2乗差分和(SSD)、平均絶対差(MAD)、平均2乗差(MSD)などに従って、現在ブロックに対して潜在的参照ブロックがどのくらい類似しているかを表す値を計算し得る。動き推定ユニット222は、概して、現在ブロックと考慮されている参照ブロックとの間のサンプルごとの差分を使用してこれらの計算を実施し得る。動き推定ユニット222は、現在ブロックに最もぴったり一致する参照ブロックを示す、これらの計算から得られた最も低い値を有する参照ブロックを識別し得る。
【0301】
[0183] 動き推定ユニット222は、現在ピクチャ中の現在ブロックの位置に対して参照ピクチャ中の参照ブロックの位置を定義する1つまたは複数の動きベクトル(MV)を形成し得る。動き推定ユニット222は、次いで、動きベクトルを動き補償ユニット224に提供し得る。たとえば、単方向インター予測では、動き推定ユニット222は、単一の動きベクトルを提供し得るが、双方向インター予測では、動き推定ユニット222は、2つの動きベクトルを提供し得る。動き補償ユニット224は、次いで、動きベクトルを使用して予測ブロックを生成し得る。たとえば、動き補償ユニット224は、動きベクトルを使用して参照ブロックのデータを取り出し得る。別の例として、動きベクトルが部分サンプル精度を有する場合、動き補償ユニット224は、1つまたは複数の補間フィルタに従って予測ブロックについての値を補間し得る。その上、双方向インター予測では、動き補償ユニット224は、それぞれの動きベクトルによって識別された2つの参照ブロックについてデータを取り出し、たとえば、サンプルごとの平均化または重み付き平均化を通して、取り出されたデータを組み合わせ得る。
【0302】
[0184] 別の例として、イントラ予測、またはイントラ予測コーディングのために、イントラ予測ユニット226は、現在ブロックに隣接しているサンプルから予測ブロックを生成し得る。たとえば、方向性モードでは、イントラ予測ユニット226は、概して、予測ブロックを生成するために、隣接サンプルの値を数学的に組み合わせ、現在ブロックにわたって定義された方向にこれらの計算された値をポピュレートし得る。別の例として、DCモードでは、イントラ予測ユニット226は、現在ブロックに対する隣接サンプルの平均を計算し、予測ブロックの各サンプルについてこの得られた平均を含むように予測ブロックを生成し得る。
【0303】
[0185] モード選択ユニット202は、予測ブロックを残差生成ユニット204に提供する。残差生成ユニット204は、ビデオデータメモリ230から現在ブロックの生の符号化されていないバージョンを受信し、モード選択ユニット202から予測ブロックを受信する。残差生成ユニット204は、現在ブロックと予測ブロックとの間のサンプルごとの差分を計算する。得られたサンプルごとの差分は、現在ブロックのための残差ブロックを定義する。いくつかの例では、残差生成ユニット204はまた、残差差分パルスコード変調(RDPCM)を使用して残差ブロックを生成するために、残差ブロック中のサンプル値間の差分を決定し得る。いくつかの例では、残差生成ユニット204は、バイナリ減算を実施する1つまたは複数の減算器回路を使用して形成され得る。
【0304】
[0186] モード選択ユニット202がCUをPUに区分する例では、各PUは、ルーマ予測ユニットと、対応するクロマ予測ユニットとに関連付けられ得る。ビデオエンコーダ200とビデオデコーダ300とは、様々なサイズを有するPUをサポートし得る。上記で示されたように、CUのサイズは、CUのルーマコーディングブロックのサイズを指し得、PUのサイズは、PUのルーマ予測ユニットのサイズを指し得る。特定のCUのサイズが2N×2Nであると仮定すると、ビデオエンコーダ200は、イントラ予測のための2N×2NまたはN×NのPUサイズと、インター予測のための2N×2N、2N×N、N×2N、N×N、または同様のものの対称PUサイズとをサポートし得る。ビデオエンコーダ200とビデオデコーダ300とはまた、インター予測のための2N×nU、2N×nD、nL×2N、およびnR×2NのPUサイズの非対称区分をサポートし得る。
【0305】
[0187] モード選択ユニット202がCUをPUにさらに区分しない例では、各CUは、ルーマコーディングブロックと、対応するクロマコーディングブロックとに関連付けられ得る。上記のように、CUのサイズは、CUのルーマコーディングブロックのサイズを指し得る。ビデオエンコーダ200とビデオデコーダ300とは、2N×2N、2N×N、またはN×2NのCUサイズをサポートし得る。
【0306】
[0188] いくつかの例として、イントラブロックコピーモードコーディング、アフィンモードコーディング、および線形モデル(LM)モードコーディングなどの他のビデオコーディング技法では、モード選択ユニット202は、コーディング技法に関連付けられたそれぞれのユニットを介して、符号化されている現在ブロックのための予測ブロックを生成する。パレットモードコーディングなど、いくつかの例では、モード選択ユニット202は、予測ブロックを生成せず、代わりに、選択されたパレットに基づいてブロックを再構築すべき様式を示すシンタックス要素を生成し得る。そのようなモードでは、モード選択ユニット202は、符号化されるべきこれらのシンタックス要素をエントロピー符号化ユニット220に提供し得る。
【0307】
[0189] 上記で説明されたように、残差生成ユニット204は、現在ブロックのためのビデオデータと、対応する予測ブロックとを受信する。残差生成ユニット204は、次いで、現在ブロックのための残差ブロックを生成する。残差ブロックを生成するために、残差生成ユニット204は、予測ブロックと現在ブロックとの間のサンプルごとの差分を計算する。
【0308】
[0190] 変換処理ユニット206は、(本明細書では「変換係数ブロック」と呼ばれる)変換係数のブロックを生成するために、残差ブロックに1つまたは複数の変換を適用する。変換処理ユニット206は、変換係数ブロックを形成するために、残差ブロックに様々な変換を適用し得る。たとえば、変換処理ユニット206は、離散コサイン変換(DCT)、方向性変換、カルーネンレーベ変換(KLT)、または概念的に同様の変換を残差ブロックに適用し得る。いくつかの例では、変換処理ユニット206は、残差ブロックに複数の変換、たとえば、回転変換などの1次変換および2次変換を実施し得る。いくつかの例では、変換処理ユニット206は、残差ブロックに変換を適用しない。
【0309】
[0191] 量子化ユニット208は、量子化された変換係数ブロックを生成するために、変換係数ブロック中の変換係数を量子化し得る。量子化ユニット208は、現在ブロックに関連付けられた量子化パラメータ(QP)値に従って変換係数ブロックの変換係数を量子化し得る。ビデオエンコーダ200は(たとえば、モード選択ユニット202を介して)、CUに関連付けられたQP値を調整することによって、現在ブロックに関連付けられた変換係数ブロックに適用される量子化の程度を調整し得る。量子化は、情報の損失をもたらし得、したがって、量子化された変換係数は、変換処理ユニット206によって生成された元の変換係数よりも低い精度を有し得る。
【0310】
[0192] 逆量子化ユニット210および逆変換処理ユニット212は、変換係数ブロックから残差ブロックを再構築するために、それぞれ、量子化された変換係数ブロックに逆量子化および逆変換を適用し得る。再構築ユニット214は、再構築された残差ブロックと、モード選択ユニット202によって生成された予測ブロックとに基づいて、(潜在的にある程度のひずみを伴うが)現在ブロックに対応する再構築されたブロックを生成し得る。たとえば、再構築ユニット214は、再構築されたブロックを生成するために、モード選択ユニット202によって生成された予測ブロックからの対応するサンプルに、再構築された残差ブロックのサンプルを加算し得る。
【0311】
[0193] フィルタユニット216は、再構築されたブロックに対して1つまたは複数のフィルタ演算を実施し得る。たとえば、フィルタユニット216は、CUのエッジに沿ってブロッキネスアーティファクトを低減するためのデブロッキング動作を実施し得る。フィルタユニット216の動作は、いくつかの例では、スキップされ得る。
【0312】
[0194] ビデオエンコーダ200は、再構築されたブロックをDPB218に記憶する。たとえば、フィルタユニット216の動作が実施されない例では、再構築ユニット214は、再構築されたブロックをDPB218に記憶し得る。フィルタユニット216の動作が実施される例では、フィルタユニット216は、フィルタ処理された再構築されたブロックをDPB218に記憶し得る。動き推定ユニット222と動き補償ユニット224とは、後で符号化されるピクチャのブロックをインター予測するために、再構築(および潜在的にフィルタ処理)されたブロックから形成された参照ピクチャをDPB218から取り出し得る。さらに、イントラ予測ユニット226は、現在ピクチャ中の他のブロックをイントラ予測するために、現在ピクチャのDPB218中の再構築されたブロックを使用し得る。
【0313】
[0195] 概して、エントロピー符号化ユニット220は、ビデオエンコーダ200の他の機能構成要素から受信されたシンタックス要素をエントロピー符号化し得る。たとえば、エントロピー符号化ユニット220は、量子化ユニット208からの量子化された変換係数ブロックをエントロピー符号化し得る。別の例として、エントロピー符号化ユニット220は、モード選択ユニット202からの予測シンタックス要素(たとえば、インター予測のための動き情報、またはイントラ予測のためのイントラモード情報)をエントロピー符号化し得る。エントロピー符号化ユニット220は、エントロピー符号化データを生成するために、ビデオデータの別の例であるシンタックス要素に対して1つまたは複数のエントロピー符号化動作を実施し得る。たとえば、エントロピー符号化ユニット220は、コンテキスト適応型可変長コーディング(CAVLC)動作、CABAC動作、可変対可変(V2V)長コーディング動作、シンタックスベースコンテキスト適応型バイナリ算術コーディング(SBAC)動作、確率間隔区分エントロピー(PIPE)コーディング動作、指数ゴロム符号化動作、または別のタイプのエントロピー符号化動作をデータに対して実施し得る。いくつかの例では、エントロピー符号化ユニット220は、シンタックス要素がエントロピー符号化されないバイパスモードで動作し得る。
【0314】
[0196] ビデオエンコーダ200は、スライスまたはピクチャのブロックを再構築するために必要とされるエントロピー符号化シンタックス要素を含むビットストリームを出力し得る。特に、エントロピー符号化ユニット220がビットストリームを出力し得る。
【0315】
[0197] 上記で説明された動作は、ブロックに関して説明される。そのような説明は、ルーマコーディングブロックおよび/またはクロマコーディングブロックのための動作であるものとして理解されるべきである。上記で説明されたように、いくつかの例では、ルーマコーディングブロックおよびクロマコーディングブロックは、CUのルーマ成分およびクロマ成分である。いくつかの例では、ルーマコーディングブロックおよびクロマコーディングブロックは、PUのルーマ成分およびクロマ成分である。
【0316】
[0198] いくつかの例では、ルーマコーディングブロックに関して実施される動作は、クロマコーディングブロックのために繰り返される必要はない。一例として、ルーマコーディングブロックのための動きベクトル(MV)と参照ピクチャとを識別するための動作は、クロマブロックのためのMVと参照ピクチャとを識別するために繰り返される必要はない。むしろ、ルーマコーディングブロックのためのMVは、クロマブロックのためのMVを決定するためにスケーリングされ得、参照ピクチャは同じであり得る。別の例として、イントラ予測プロセスは、ルーマコーディングブロックおよびクロマコーディングブロックについて同じであり得る。
【0317】
[0199]
図16は、本開示の技法を実施し得る例示的なビデオデコーダ300を示すブロック図である。
図16は、説明の目的で提供されており、本開示において広く例示され、説明される技法を限定するものではない。説明の目的で、本開示は、VVC(ITU-T H.266、開発中)およびHEVC(ITU-T H.265)の技法に従った、ビデオデコーダ300について説明する。しかしながら、本開示の技法は、他のビデオコーディング規格に構成されたビデオコーディングデバイスによって実施され得る。
【0318】
[0200]
図16の例では、ビデオデコーダ300は、コード化ピクチャバッファ(CPB)メモリ320と、エントロピー復号ユニット302と、予測処理ユニット304と、逆量子化ユニット306と、逆変換処理ユニット308と、再構築ユニット310と、フィルタユニット312と、DPB314とを含む。CPBメモリ320と、エントロピー復号ユニット302と、予測処理ユニット304と、逆量子化ユニット306と、逆変換処理ユニット308と、再構築ユニット310と、フィルタユニット312と、DPB314とのいずれかまたはすべては、1つまたは複数のプロセッサにおいてまたは処理回路において実装され得る。たとえば、ビデオデコーダ300のユニットは、1つまたは複数の回路または論理要素として、ハードウェア回路の一部として、あるいはプロセッサ、ASIC、またはFPGAの一部として実装され得る。その上、ビデオデコーダ300は、これらおよび他の機能を実施するための追加または代替のプロセッサまたは処理回路を含み得る。
【0319】
[0201] 予測処理ユニット304は、動き補償ユニット316と、イントラ予測ユニット318とを含む。予測処理ユニット304は、他の予測モードに従って予測を実施するための追加のユニットを含み得る。例として、予測処理ユニット304は、パレットユニット、(動き補償ユニット316の一部を形成し得る)イントラブロックコピーユニット、アフィンユニット、線形モデル(LM)ユニットなどを含み得る。他の例では、ビデオデコーダ300は、より多数の、より少数の、または異なる機能構成要素を含み得る。
【0320】
[0202] CPBメモリ320は、ビデオデコーダ300の構成要素によって復号されるべき、符号化ビデオビットストリームなどのビデオデータを記憶し得る。CPBメモリ320に記憶されるビデオデータは、たとえば、コンピュータ可読媒体110(
図1)から取得され得る。CPBメモリ320は、符号化ビデオビットストリームからの符号化ビデオデータ(たとえば、シンタックス要素)を記憶するCPBを含み得る。また、CPBメモリ320は、ビデオデコーダ300の様々なユニットからの出力を表す一時データなど、コード化ピクチャのシンタックス要素以外のビデオデータを記憶し得る。DPB314は、概して、ビデオデコーダ300が符号化ビデオビットストリームの後続のデータまたはピクチャを復号するときに出力しおよび/または参照ビデオデータとして使用し得る復号ピクチャを記憶する。CPBメモリ320とDPB314とは、SDRAMを含むDRAM、MRAM、RRAM、または他のタイプのメモリデバイスなど、様々なメモリデバイスのいずれかによって形成され得る。CPBメモリ320とDPB314とは、同じメモリデバイスまたは別個のメモリデバイスによって提供され得る。様々な例では、CPBメモリ320は、ビデオデコーダ300の他の構成要素とともにオンチップであるか、またはそれらの構成要素に対してオフチップであり得る。
【0321】
[0203] 追加または代替として、いくつかの例では、ビデオデコーダ300は、メモリ120(
図1)からコード化ビデオデータを取り出し得る。すなわち、メモリ120は、CPBメモリ320とともに上記で説明されたようにデータを記憶し得る。同様に、メモリ120は、ビデオデコーダ300の機能の一部または全部が、ビデオデコーダ300の処理回路によって実行されるべきソフトウェアにおいて実装されたとき、ビデオデコーダ300によって実行されるべき命令を記憶し得る。
【0322】
[0204]
図16に示されている様々なユニットは、ビデオデコーダ300によって実施される動作を理解するのを支援するために示されている。ユニットは、固定機能回路、プログラマブル回路、またはそれらの組合せとして実装され得る。
図15と同様に、固定機能回路は、特定の機能を提供する回路を指し、実施され得る動作に関してプリセットされる。プログラマブル回路は、様々なタスクを実施するように、および実施され得る動作においてフレキシブルな機能を提供するようにプログラムされ得る回路を指す。たとえば、プログラマブル回路は、ソフトウェアまたはファームウェアの命令によって定義される様式でプログラマブル回路を動作させるソフトウェアまたはファームウェアを実行し得る。固定機能回路は、(たとえば、パラメータを受信するかまたはパラメータを出力するために)ソフトウェア命令を実行し得るが、固定機能回路が実施する動作のタイプは、概して不変である。いくつかの例では、ユニットのうちの1つまたは複数は、別個の回路ブロック(固定機能またはプログラマブル)であり得、いくつかの例では、ユニットのうちの1つまたは複数は、集積回路であり得る。
【0323】
[0205] ビデオデコーダ300は、ALU、EFU、デジタル回路、アナログ回路、および/またはプログラマブル回路から形成されるプログラマブルコアを含み得る。ビデオデコーダ300の動作が、プログラマブル回路上で実行するソフトウェアによって実施される例では、オンチップまたはオフチップメモリは、ビデオデコーダ300が受信し、実行するソフトウェアの命令(たとえば、オブジェクトコード)を記憶し得る。
【0324】
[0206] エントロピー復号ユニット302は、CPBから符号化ビデオデータを受信し、シンタックス要素を再生するためにビデオデータをエントロピー復号し得る。予測処理ユニット304と、逆量子化ユニット306と、逆変換処理ユニット308と、再構築ユニット310と、フィルタユニット312とは、ビットストリームから抽出されたシンタックス要素に基づいて復号ビデオデータを生成し得る。
【0325】
[0207] 概して、ビデオデコーダ300は、ブロックごとにピクチャを再構築する。ビデオデコーダ300は、各ブロックに対して個々に再構築動作を実施し得る(ここで、現在再構築されているブロック、すなわち、現在復号されているブロックは、「現在ブロック」と呼ばれることがある)。
【0326】
[0208] エントロピー復号ユニット302は、量子化された変換係数ブロックの量子化された変換係数を定義するシンタックス要素、ならびに量子化パラメータ(QP)および/または(1つまたは複数の)変換モード指示などの変換情報をエントロピー復号し得る。逆量子化ユニット306は、量子化の程度と、同様に、逆量子化ユニット306が適用すべき逆量子化の程度とを決定するために、量子化された変換係数ブロックに関連付けられたQPを使用し得る。逆量子化ユニット306は、量子化された変換係数を逆量子化するために、たとえば、ビット単位の左シフト演算を実施し得る。逆量子化ユニット306は、それにより、変換係数を含む変換係数ブロックを形成し得る。
【0327】
[0209] 逆量子化ユニット306が変換係数ブロックを形成した後に、逆変換処理ユニット308は、現在ブロックに関連付けられた残差ブロックを生成するために、変換係数ブロックに1つまたは複数の逆変換を適用し得る。たとえば、逆変換処理ユニット308は、逆DCT、逆整数変換、逆カルーネンレーベ変換(KLT)、逆回転変換、逆方向変換、または別の逆変換を変換係数ブロックに適用し得る。
【0328】
[0210] さらに、予測処理ユニット304は、エントロピー復号ユニット302によってエントロピー復号された予測情報シンタックス要素に従って予測ブロックを生成する。たとえば、予測情報シンタックス要素が、現在ブロックがインター予測されることを示す場合、動き補償ユニット316は、予測ブロックを生成し得る。この場合、予測情報シンタックス要素は、参照ブロックをそれから取り出すべきDPB314中の参照ピクチャ、ならびに現在ピクチャ中の現在ブロックのロケーションに対する参照ピクチャ中の参照ブロックのロケーションを識別する動きベクトルを示し得る。動き補償ユニット316は、概して、動き補償ユニット224(
図15)に関して説明されたものと実質的に同様である様式で、インター予測プロセスを実施し得る。
【0329】
[0211] 別の例として、予測情報シンタックス要素が、現在ブロックがイントラ予測されることを示す場合、イントラ予測ユニット318は、予測情報シンタックス要素によって示されるイントラ予測モードに従って予測ブロックを生成し得る。この場合も、イントラ予測ユニット318は、概して、イントラ予測ユニット226(
図15)に関して説明されたものと実質的に同様である様式で、イントラ予測プロセスを実施し得る。イントラ予測ユニット318は、DPB314から、現在ブロックに対する隣接サンプルのデータを取り出し得る。
【0330】
[0212] 再構築ユニット310は、予測ブロックと残差ブロックとを使用して現在ブロックを再構築し得る。たとえば、再構築ユニット310は、現在ブロックを再構築するために、予測ブロックの対応するサンプルに残差ブロックのサンプルを加算し得る。
【0331】
[0213] フィルタユニット312は、再構築されたブロックに対して1つまたは複数のフィルタ演算を実施し得る。たとえば、フィルタユニット312は、再構築されたブロックのエッジに沿ってブロッキネスアーティファクトを低減するためのデブロッキング動作を実施し得る。フィルタユニット312の動作は、必ずしもすべての例において実施されるとは限らない。
【0332】
[0214] ビデオデコーダ300は、再構築されたブロックをDPB314に記憶し得る。たとえば、フィルタユニット312の動作が実施されない例では、再構築ユニット310は、再構築されたブロックをDPB314に記憶し得る。フィルタユニット312の動作が実施される例では、フィルタユニット312は、フィルタ処理された再構築されたブロックをDPB314に記憶し得る。上記で説明されたように、DPB314は、イントラ予測のための現在ピクチャのサンプル、および後続の動き補償のための前に復号されたピクチャなど、参照情報を、予測処理ユニット304に提供し得る。その上、ビデオデコーダ300は、DPB314からの復号ピクチャ(たとえば、復号ビデオ)を、
図1のディスプレイデバイス118などのディスプレイデバイス上での後続の提示のために、出力し得る。
【0333】
[0215]
図17は、
図16におけるフィルタユニット312の例示的な実施を示している。
図15におけるフィルタユニット216は、同じ方式で実施され得る。フィルタユニット216、312は、場合によっては、ビデオエンコーダ200またはビデオデコーダ300の他の構成要素と併せて、本開示の技法を実行し得る。
図16においては、フィルタユニット312は、デブロックフィルタ342と、SAOフィルタ344と、ALFユニット346とを含む。SAOフィルタ344は、たとえば、本開示において説明される方式で、ブロックのサンプルについてのオフセット値を決定するように構成され得る。ALFユニット346は、同様に、本開示において説明される方式で、ビデオデータのブロックをフィルタリングし得る。たとえば、ALFユニット346は、第1のサンプル変更値を決定するために、再構築ブロックの再構築サンプルに、第1の段階のALFを適用し、第2のサンプル変更値を決定するために、再構築サンプルに、第2の段階のALFを適用し、再構築サンプルと、第1のサンプル変更値と、第2のサンプル変更値とに基づいて、フィルタリングされた再構築サンプルを決定するように構成され得る。
【0334】
[0216] フィルタユニット312は、より少ないフィルタを含み得、および/または追加のフィルタを含み得る。加えて、
図17に示される特定のフィルタは、異なる順序で実施され得る。ピクセル遷移を滑らかにするために、または他の方法でビデオ品質を改善するために、(コーディングループ内またはコーディングループ後のいずれかにおける)他のループフィルタが、使用され得る。フィルタユニット312によって出力された、フィルタリングされた再構築ビデオブロックは、その後の動き補償のために使用される参照ピクチャを記憶する、DPB314内に記憶され得る。DPB314は、
図1のディスプレイデバイス118などのディスプレイデバイス上における後の提示のために、復号ビデオを記憶する、追加のメモリの一部であり得、または追加のメモリとは別個であり得る。
【0335】
[0217]
図18は、本開示の技法に従った、現在ブロックを符号化するための例示的なプロセスを示すフローチャートである。現在ブロックは現在CUを備え得る。ビデオエンコーダ200(
図1および
図14)に関して説明されるが、他のデバイスが
図18のプロセスと同様のプロセスを実施するように構成され得ることを理解されたい。
【0336】
[0218] この例では、ビデオエンコーダ200は、最初に、現在ブロックを予測する(650)。たとえば、ビデオエンコーダ200は、現在ブロックのための予測ブロックを形成し得る。ビデオエンコーダ200は、次いで、現在ブロックのための残差ブロックを計算し得る(652)。残差ブロックを計算するために、ビデオエンコーダ200は、元の符号化されていないブロックと、現在ブロックのための予測ブロックとの間の差分を計算し得る。ビデオエンコーダ200は、次いで、残差ブロックを変換し、残差ブロックの変換係数を量子化し得る(654)。次に、ビデオエンコーダ200は、残差ブロックの量子化された変換係数を走査し得る(656)。走査中に、または走査に続いて、ビデオエンコーダ200は、変換係数をエントロピー符号化し得る(658)。たとえば、ビデオエンコーダ200は、CAVLCまたはCABACを使用して変換係数を符号化し得る。ビデオエンコーダ200は、次いで、ブロックのエントロピー符号化データを出力し得る(660)。
【0337】
[0219]
図19は、本開示の技法に従った、ビデオデータの現在ブロックを復号するための例示的なプロセスを示すフローチャートである。現在ブロックは現在CUを備え得る。ビデオデコーダ300(
図1および
図15)に関して説明されるが、他のデバイスが
図19のプロセスと同様のプロセスを実施するように構成され得ることを理解されたい。
【0338】
[0220] ビデオデコーダ300は、エントロピー符号化予測情報、および現在ブロックに対応する残差ブロックの変換係数についてのエントロピー符号化データなど、現在ブロックについてのエントロピー符号化データを受信し得る(670)。ビデオデコーダ300は、現在ブロックのための予測情報を決定するために、および残差ブロックの変換係数を再生するために、エントロピー符号化データをエントロピー復号し得る(672)。ビデオデコーダ300は、現在ブロックのための予測ブロックを計算するために、たとえば、現在ブロックのための予測情報によって示されるイントラ予測またはインター予測モードを使用して、現在ブロックを予測し得る(674)。ビデオデコーダ300は、次いで、量子化された変換係数のブロックを作成するために、再生された変換係数を逆走査し得る(676)。ビデオデコーダ300は、次いで、残差ブロックを生成するために、変換係数を逆量子化し、変換係数に逆変換を適用し得る(678)。ビデオデコーダ300は、予測ブロックと残差ブロックとを組み合わせることによって、最終的に現在ブロックを復号し得る(680)。
【0339】
[0221]
図20は、本開示の技法に従った、ビデオデータの現在ブロックを復号するための例示的なプロセスを示すフローチャートである。ビデオデコーダ300(
図1および
図15)に関して説明されているが、他のデバイスが、
図20のそれと類似のプロセスを実行するように構成され得ることが理解されるべきである。たとえば、フィルタユニット216を含む、ビデオエンコーダ200のビデオ復号ループは、
図20の技法を実行し得る。
【0340】
[0222] ビデオデコーダ300は、再構築ブロックの再構築サンプルに、第1の段階のALFを適用し、ここにおいて、第1の段階のALFを適用することは、(710)を備える。この文脈においては、再構築サンプルは、デブロックフィルタリング前の再構築サンプル、またはデブロックフィルタリング後の再構築サンプルのいずれかであり得る。第1の段階のALFを適用するために、ビデオデコーダ300は、再構築サンプルについての第1のクラスインデックスを決定し(712)、第1のクラスインデックスに基づいて、フィルタの第1のセットからフィルタを選択し(714)、第1の中間サンプル値を決定するために、再構築サンプルに、フィルタの第1のセットからのフィルタを適用する(716)。上で説明されたように、ビデオデコーダ300は、再構築ブロックについての量子化パラメータに基づいて、固定されたフィルタの複数のセットからフィルタの第1のセットを選択し得る。フィルタの第1のセットは、たとえば、固定されたフィルタであり得る。すなわち、フィルタの第1のセットは、ビデオデータでシグナリングされるのではなく、ビデオコーデック内に記憶された、フィルタのセットであり得る。フィルタの第1のセットは、たとえば、少なくとも1つの9×9のダイヤモンド形状フィルタ(9x9 diamond-shaped filter)、または上で説明された任意のサイズもしくは形状のフィルタを含み得る。
図9および
図11に示されるように、ビデオデコーダは、複数の中間サンプル値を決定し得る。
【0341】
[0223] 第1のクラスインデックスを決定するために、ビデオデコーダ300は、再構築サンプルについてのアクティビティ値を決定し、再構築サンプルについての方向を決定し、アクティビティ値と、方向とに基づいて、分類器を決定し得る。上で説明されたように、方向の数は、MD,i=(S+1)×(S+2)であり得、これは、6に等しいSを用いると、56個の方向があることを意味する。
【0342】
[0224] ビデオデコーダ300は、再構築サンプルに、第2の段階のALFを適用する(720)。第2の段階のALFを適用するために、ビデオデコーダ300は、再構築サンプルについての第2のクラスインデックスを決定し(722)、第2のクラスインデックスに基づいて、フィルタの第2のセットから第2のフィルタを選択し(724)、第1のサンプル変更値を決定するために、再構築サンプルに、第2のフィルタを適用し(726)、第1の中間サンプル値に基づいて、第2のサンプル変更値を決定する。フィルタの第2のセットは、たとえば、シグナリングされたフィルタであり得、これは、第2のセット内のフィルタが、少なくとも部分的に、ビデオデータ内においてシグナリングされることを意味する。
【0343】
[0225] ビデオデコーダ300は、再構築サンプルと、第1のサンプル変更値と、第2のサンプル変更値とに基づいて、フィルタリングされた再構築サンプルを決定する(730)。再構築サンプルと、第1のサンプル変更値と、第2のサンプル変更値とに基づいて、フィルタリングされた再構築サンプルを決定するために、ビデオデコーダ300は、たとえば、再構築サンプルに、第1のサンプル変更値と、第2のサンプル変更値とを加算し得る。上記の式(28)は、ビデオデコーダ300が、フィルタリングされた再構築サンプルについての値をどのように決定し得るかの一例を表す。
【0344】
[0226] 第1の中間サンプル値に基づいて、第2のサンプル変更値を決定するために、ビデオデコーダ300は、クリッピングされたサンプル変更値を決定するために、第2のサンプル変更値をクリッピングし、再構築サンプルに、第1のサンプル変更値と、クリッピングされたサンプル変更値とを加算し得る。ビデオデコーダ300は、ビデオデータ内において、クリッピングされたサンプル変更値を受信し得る。第1の中間サンプル値に基づいて、第2のサンプル変更値を決定するために、ビデオデコーダ300は、再構築サンプルと第1の中間サンプル値との間の差(difference)を決定することによっても、第1の中間サンプル値に基づいて、第2のサンプル変更値を決定し得る。上記の式(28)および式(30)は、ビデオデコーダ300が、第2のサンプル変更値をどのように決定し得るかの例を表す。
【0345】
[0227] ビデオデコーダ300は、フィルタリングされた再構築サンプルを含む、ビデオデータの復号ピクチャを出力し得る。いくつかのコーディングシナリオにおいては、ビデオデコーダ300は、出力前に、フィルタリングされた再構築サンプルに対して、1つまたは複数の追加のフィルタリング操作を実行し得る。ビデオデコーダ300は、後続のピクチャを復号する際に使用するために、復号ピクチャバッファ内にピクチャを記憶すること、後の表示のために、記憶媒体に復号ピクチャを記憶することによって、またはリアルタイムもしくはほぼリアルタイムの表示のために、ディスプレイデバイスに復号ピクチャを出力することによって、復号ピクチャを出力し得る。
図20の技法が、ビデオエンコーダによって実行される、例においては、ビデオエンコーダは、たとえば、後続のピクチャを符号化する際に使用するために、復号ピクチャバッファ内にピクチャを記憶することによって、復号ピクチャを出力し得る。
【0346】
[0228] 以下の番号付きの条項は、本開示において説明されるデバイスおよび技法の1つまたは複数の態様を示す。
【0347】
[0229] 条項1A。ビデオデータを復号する方法であって、方法は、ビデオデータの再構築ブロックを決定することと、フィルタリングされた再構築ブロックを生成するために、ビデオデータの再構築ブロックのサンプルに、フィルタを適用することとを備える。
【0348】
[0230] 条項2A。サンプルにフィルタを適用することが、サンプルについてのアクティビティ値とサンプルについての方向の一方または両方を決定することと、決定されたアクティビティ値および/または方向に基づいて、フィルタのセットからフィルタを選択することとを備える、条項1Aに記載の方法。
【0349】
[0231] 条項3A。フィルタのセットが、固定されたフィルタのセットを備える、条項2Aに記載の方法。
【0350】
[0232] 条項4A。フィルタのセットが、シグナリングされたフィルタのセットを備える、条項2Aに記載の方法。
【0351】
[0233] 条項5A。サンプルにフィルタを適用することが、中間フィルタリングサンプルを決定するために、サンプルに、第1のフィルタを適用することと、サンプリングされた最終的フィルタを決定するために、中間フィルタリングサンプルに、第2のフィルタを適用することとを備える、条項1A~4Aのいずれかに記載の方法。
【0352】
[0234] 条項6A。復号の方法が、ビデオコーディングプロセスの一部として実行される、条項1A~5Aのいずれかに記載の方法。
【0353】
[0235] 条項7A。ビデオデータをコーディングするためのデバイスであって、デバイスが、条項1A~6Aのいずれかに記載の方法を実行するための1つまたは複数の手段を備える。
【0354】
[0236] 条項8A。1つまたは複数の手段が、回路で実施された1つまたは複数のプロセッサを備える、条項7Aに記載のデバイス。
【0355】
[0237] 条項9A。ビデオデータを記憶するためのメモリをさらに備える、条項7Aおよび8Aのいずれかに記載のデバイス。
【0356】
[0238] 条項10A。復号ビデオデータを表示するように構成されたディスプレイ(display)をさらに備える、条項7A~9Aのいずれかに記載のデバイス。
【0357】
[0239] 条項11A。デバイスが、カメラ、コンピュータ、モバイルデバイス、放送受信機デバイス、またはセットトップボックスのうちの1つまたは複数を備える、条項7A~10Aのいずれかに記載のデバイス。
【0358】
[0240] 条項12A。デバイスが、ビデオデコーダを備える、条項7A~11Aのいずれかに記載のデバイス。
【0359】
[0241] 条項13A。デバイスが、ビデオエンコーダを備える、条項7A~12Aのいずれかに記載のデバイス。
【0360】
[0242] 条項14A。実行されたときに、1つまたは複数のプロセッサに、条項1A~6Aのいずれかに記載の方法を実行させる命令をその上に記憶した、コンピュータ可読記憶媒体。
【0361】
[0243] 条項1B。ビデオデータを復号する方法であって、方法は、ビデオデータのピクチャの少なくとも一部を復号することと、ピクチャの少なくとも一部についてのフィルタリングされたサンプルを生成するために、ALFの第1の段階中に、ピクチャの少なくとも一部に、1つまたは複数の適応ループフィルタ(ALF)を適用することと、ピクチャの少なくとも一部に対してALFの第2の段階を実行するかどうかを決定することと、決定がALFの第2の段階を実行しないであるとき、ALFの第2の段階についての1つまたは複数のALFのためのフィルタ係数の復号を回避し、ピクチャの少なくとも一部に対してALFの第2の段階を実行することを回避することと、ピクチャの少なくとも一部についての最終的サンプルを生成するために、フィルタリングされたサンプルを使用することとを備える。
【0362】
[0244] 条項2B。最終的サンプルを生成するために、フィルタリングされたサンプルを使用することが、
【0363】
【0364】
に従って、最終的サンプルを計算することを備え、ここにおいて、
【0365】
【0366】
は、位置(x、y)における最終的サンプルのうちの1つを表し、wiは、1つまたは複数のALFのうちの第iのALFについての重み値を備え、R’(x,y,i)は、位置(x,y)において第iのALFによって生成された、フィルタリングされたサンプルの1つを備える、条項1Bに記載の方法。
【0367】
[0245] 条項3B。固定された構成データから重み値wiを決定することをさらに備える、条項2Bに記載の方法。
【0368】
[0246] 条項4B。復号されたフィルタ使用情報から重み値wiを決定することをさらに備える、条項2Bに記載の方法。
【0369】
[0247] 条項5B。重み値wiを復号することをさらに備える、条項2Bに記載の方法。
【0370】
[0248] 条項6B。重み値wiを復号することが、シーケンスパラメータセット(SPS)、ピクチャパラメータセット(PPS)、スライスヘッダ、サブピクチャヘッダ、コーディングツリーユニット(CTU)ヘッダ、コーディングツリーブロック(CTB)ヘッダ、またはサブブロックヘッダのうちの1つまたは複数から重み値wiを復号することを備える、条項5Bに記載の方法。
【0371】
[0249] 条項7B。最終的サンプルのうちの1つまたは複数のために使用される重み値wiの組合せを表すシンタックス要素についてのデータを復号することをさらに備える、条項2B~6Bのいずれかに記載の方法。
【0372】
[0250] 条項8B。ALFの第2の段階を実行するかどうかを決定することが、ALFの第2の段階を実行するかどうかを表すデータを復号することを備える、条項1B~7Bのいずれかに記載の方法。
【0373】
[0251] 条項9B。ALFの第2の段階を実行するかどうかを表すデータを復号することが、シーケンスパラメータセット(SPS)、ピクチャパラメータセット(PPS)、スライスヘッダ、サブピクチャヘッダ、コーディングツリーユニット(CTU)ヘッダ、コーディングツリーブロック(CTB)ヘッダ、またはサブブロックヘッダのうちの1つまたは複数のデータを復号することを備える、条項8Bに記載の方法。
【0374】
[0252] 条項10B。ALFの第2の段階を実行するかどうかを表すデータを復号することが、シンタックス要素についての値を復号することを備え、値が、ALFの第2の段階がバイパスされるべきであることを示す、条項8Bおよび9Bのいずれかに記載の方法。
【0375】
[0253] 条項11B。ALFの第2の段階を実行するかどうかを決定することが、以前に復号されたコーディング情報に従って、ALFの第2の段階を実行するかどうかを適応的に導出することを備える、条項1B~7Bのいずれかに記載の方法。
【0376】
[0254] 条項12B。以前に復号されたコーディング情報が、ピクチャの少なくとも一部におけるブロックについての量子化パラメータ(QP)、ブロックのサイズ、またはブロックがイントラ予測を使用して予測されるか、それともインター予測を使用して予測されるかのうちの1つまたは複数を備える、条項11Bに記載の方法。
【0377】
[0255] 条項13B。最終的サンプルを生成するために、フィルタリングされたサンプルを使用することが、最終的サンプルを生成するために、フィルタリングされたサンプルをスケーリングすることを備える、条項1B~12Bのいずれかに記載の方法。
【0378】
[0256] 条項14B。ピクチャの少なくとも一部を復号する前に、ピクチャの少なくとも一部を符号化することをさらに備える、条項1B~13Bのいずれかに記載の方法。
【0379】
[0257] 条項15B。ビデオデータを復号するためのデバイスであって、デバイスは、条項1B~14Bのいずれかに記載の方法を実行するための1つまたは複数の手段を備える。
【0380】
[0258] 条項16B。1つまたは複数の手段が、回路で実施された1つまたは複数のプロセッサを備える、条項15Bに記載のデバイス。
【0381】
[0259] 条項17B。復号ビデオデータを表示するように構成されたディスプレイをさらに備える、条項15Bおよび16Bのいずれかに記載のデバイス。
【0382】
[0260] 条項18B。デバイスが、カメラ、コンピュータ、モバイルデバイス、放送受信機デバイス、またはセットトップボックスのうちの1つまたは複数を備える、条項15B~17Bのいずれかに記載のデバイス。
【0383】
[0261] 条項19B。ビデオデータを記憶するように構成されたメモリをさらに備える、条項15B~18Bに記載のデバイス。
【0384】
[0262] 条項20B。実行されたときに、ビデオデータを復号するためのデバイスのプロセッサに、条項1B~14Bのいずれかに記載の方法を実行させる命令をその上に記憶した、コンピュータ可読記憶媒体。
【0385】
[0263] 条項21B。ビデオデータを復号するためのデバイスであって、デバイスは、ビデオデータのピクチャの少なくとも一部を復号するための手段と、ピクチャの少なくとも一部についてのフィルタリングされたサンプルを生成するために、ALFの第1の段階中に、ピクチャの少なくとも一部に、1つまたは複数の適応ループフィルタ(ALF)を適用するための手段と、ピクチャの少なくとも一部に対してALFの第2の段階を実行するかどうかを決定するための手段と、決定がALFの第2の段階を実行しないであるとき、ALFの第2の段階についての1つまたは複数のALFのためのフィルタ係数の復号を回避するための手段と、決定がALFの第2の段階を実行しないであるとき、ピクチャの少なくとも一部に対してALFの第2の段階を実行することを回避するための手段と、ピクチャの少なくとも一部についての最終的サンプルを生成するために、フィルタリングされたサンプルを使用するための手段とを備える。
【0386】
[0264] 条項1C。ビデオデータを復号する方法であって、方法は、再構築ブロックの再構築サンプルに、第1の段階の適応ループフィルタ(ALF)を適用することと、ここにおいて、第1の段階のALFを適用することが、再構築サンプルについての第1のクラスインデックスを決定することと、第1のクラスインデックスに基づいて、フィルタの第1のセットからフィルタを選択することと、第1の中間サンプル値を決定するために、再構築サンプルに、フィルタの第1のセットからのフィルタを適用することとを備え、再構築サンプルに、第2の段階のALFを適用することと、ここにおいて、第2の段階のALFを適用することが、再構築サンプルについての第2のクラスインデックスを決定することと、第2のクラスインデックスに基づいて、フィルタの第2のセットから第2のフィルタを選択することと、第1のサンプル変更値を決定するために、再構築サンプルに、第2のフィルタを適用することと、第1の中間サンプル値に基づいて、第2のサンプル変更値を決定することとを備え、再構築サンプルと、第1のサンプル変更値と、第2のサンプル変更値とに基づいて、フィルタリングされた再構築サンプルを決定することとを備える。
【0387】
[0265] 条項2C。フィルタの第1のセットが、固定されたフィルタを備える、条項1Cに記載の方法。
【0388】
[0266] 条項3C。フィルタの第2のセットが、ビデオデータ内においてシグナリングされたシンタックスに基づいて決定された、シグナリングされたフィルタを備える、条項1C~2Cのいずれかに記載の方法。
【0389】
[0267] 条項4C。第1のクラスインデックスを決定することが、再構築サンプルについてのアクティビティ値を決定することと、再構築サンプルについての方向を決定することと、アクティビティ値と、方向とに基づいて、第1のクラスインデックスを決定することとを備える、条項1C~3Cのいずれかに記載の方法。
【0390】
[0268] 条項5C。方向を決定することが、方向に56個の値のうちの1つを割り当てることを備える、条項4Cに記載の方法。
【0391】
[0269] 条項6C。フィルタの第1のセットが、9×9のダイヤモンド形状フィルタを含む、条項1C~5Cのいずれかに記載の方法。
【0392】
[0270] 条項7C。再構築サンプルと、第1のサンプル変更値と、第2のサンプル変更値とに基づいて、フィルタリングされた再構築サンプルを決定することが、再構築サンプルに、第1のサンプル変更値と、第2のサンプル変更値とを加算することを備える、条項1C~6Cのいずれかに記載の方法。
【0393】
[0271] 条項8C。第1の中間サンプル値に基づいて、第2のサンプル変更値を決定することが、クリッピングされたサンプル変更値を決定するために、第2のサンプル変更値をクリッピングすることと、再構築サンプルに、第1のサンプル変更値と、クリッピングされたサンプル変更値とを加算することとを備える、条項1C~7Cのいずれかに記載の方法。
【0394】
[0272] 条項9C。ビデオデータ内において、クリッピングされたサンプル変更値を受信することをさらに備える、条項8Cに記載の方法。
【0395】
[0273] 条項10C。第1の中間サンプル値に基づいて、第2のサンプル変更値を決定することが、再構築サンプルと第1の中間サンプル値との間の差を決定することを備える、条項1C~9Cのいずれかに記載の方法。
【0396】
[0274] 条項11C。再構築ブロックについての量子化パラメータに基づいて、固定されたフィルタの複数のセットからフィルタの第1のセットを選択することをさらに備える、条項1C~10Cのいずれかに記載の方法。
【0397】
[0275] 条項12C。第1の段階のALFを適用することが、再構築サンプルについての第3のクラスインデックス(third class index)を決定することと、第3のクラスインデックスに基づいて、フィルタの第2のセットから第3のフィルタ(third filter)を選択することと、第2の中間サンプル値(second intermediate sample value)を決定するために、再構築サンプルに、フィルタの第2のセットからの第3のフィルタを適用することとをさらに備え、再構築サンプルに、第2の段階のALFを適用することが、第1の中間サンプル値と、第2の中間サンプル値とに基づいて、第2のサンプル変更値を決定することをさらに備える、条項1C~11Cのいずれかに記載の方法。
【0398】
[0276] 条項13C。再構築サンプルを決定するために、残差サンプル値(residual sample value)に、予測サンプル値(predicted sample value)を加算することをさらに備える、条項1C~12Cのいずれかに記載の方法。
【0399】
[0277] 条項14C。再構築サンプルを決定するために、予測サンプル値と残差サンプル値との和(sum)に、デブロッキングフィルタを適用することをさらに備える、条項13Cのいずれかに記載の方法。
【0400】
[0278] 条項15C。ビデオデータの復号ピクチャを出力し、ここにおいて、復号ピクチャが、フィルタリングされた再構築サンプルを備えることをさらに備える、条項1C~14Cのいずれかに記載の方法。
【0401】
[0279] 条項16C。復号(decoding)の方法が、ビデオ符号化プロセス(video encoding process)の一部として実行される、条項1C~14Cのいずれかに記載の方法。
【0402】
[0280] 条項17C。ビデオデータを復号するためのデバイスであって、デバイスは、ビデオデータを記憶するように構成されたメモリと、回路で実施され、再構築ブロックの再構築サンプルに、第1の段階の適応ループフィルタ(ALF)を適用することと、ここにおいて、第1の段階のALFを適用するために、1つまたは複数のプロセッサが、再構築サンプルについての第1のクラスインデックスを決定することと、第1のクラスインデックスに基づいて、フィルタの第1のセットからフィルタを選択することと、第1の中間サンプル値を決定するために、再構築サンプルに、フィルタの第1のセットからのフィルタを適用することとを行うようにさらに構成され、再構築サンプルに、第2の段階のALFを適用することと、ここにおいて、第2の段階のALFを適用するために、1つまたは複数のプロセッサが、再構築サンプルについての第2のクラスインデックスを決定することと、第2のクラスインデックスに基づいて、フィルタの第2のセットから第2のフィルタを選択することと、第1のサンプル変更値を決定するために、再構築サンプルに、第2のフィルタを適用することと、第1の中間サンプル値に基づいて、第2のサンプル変更値を決定することとを行うようにさらに構成され、再構築サンプルと、第1のサンプル変更値と、第2のサンプル変更値とに基づいて、フィルタリングされた再構築サンプルを決定することとを行うように構成された、1つまたは複数のプロセッサとを備える。
【0403】
[0281] 条項18C。フィルタの第1のセットが、固定されたフィルタを備える、条項17Cに記載の装置。
【0404】
[0282] 条項19C。フィルタの第2のセットが、ビデオデータ内においてシグナリングされたシンタックスに基づいて決定された、シグナリングされたフィルタを備える、条項17C~18Cのいずれかに記載のデバイス。
【0405】
[0283] 条項20C。第1のクラスインデックスを決定するために、1つまたは複数のプロセッサが、再構築サンプルについてのアクティビティ値を決定することと、再構築サンプルについての方向を決定することと、アクティビティ値と、方向とに基づいて、第1のクラスインデックスを決定することとを行うようにさらに構成される、条項17C~19Cのいずれかに記載のデバイス。
【0406】
[0284] 条項21C。方向を決定するために、1つまたは複数のプロセッサが、方向に56個の値のうちの1つを割り当てるようにさらに構成される、条項20Cに記載のデバイス。
【0407】
[0285] 条項22C。フィルタの第1のセットが、9×9のダイヤモンド形状フィルタを含む、条項17C~21Cのいずれかに記載の装置。
【0408】
[0286] 条項23C。再構築サンプルと、第1のサンプル変更値と、第2のサンプル変更値とに基づいて、フィルタリングされた再構築サンプルを決定するために、1つまたは複数のプロセッサが、再構築サンプルに、第1のサンプル変更値と、第2のサンプル変更値とを加算するようにさらに構成される、条項17C~22Cのいずれかに記載のデバイス。
【0409】
[0287] 条項24C。第1の中間サンプル値に基づいて、第2のサンプル変更値を決定するために、1つまたは複数のプロセッサが、クリッピングされたサンプル変更値を決定するために、第2のサンプル変更値をクリッピングすることと、再構築サンプルに、第1のサンプル変更値と、クリッピングされたサンプル変更値とを加算することとを行うようにさらに構成される、条項17C~23Cのいずれかに記載のデバイス。
【0410】
[0288] 条項25C。1つまたは複数のプロセッサが、ビデオデータ内において、クリッピングされたサンプル変更値を受信するようにさらに構成される、条項24Cに記載のデバイス。
【0411】
[0289] 条項26C。第1の中間サンプル値に基づいて、第2のサンプル変更値を決定するために、1つまたは複数のプロセッサが、再構築サンプルと第1の中間サンプル値との間の差を決定するようにさらに構成される、条項17C~25Cのいずれかに記載のデバイス。
【0412】
[0290] 条項27C。1つまたは複数のプロセッサが、再構築ブロックについての量子化パラメータに基づいて、固定されたフィルタの複数のセットからフィルタの第1のセットを選択するようにさらに構成される、条項17~26Cのいずれかに記載のデバイス。
【0413】
[0291] 条項28C。第1の段階のALFを適用するために、1つまたは複数のプロセッサが、再構築サンプルについての第3のクラスインデックスを決定することと、第3のクラスインデックスに基づいて、フィルタの第2のセットから第3のフィルタを選択することと、第2の中間サンプル値を決定するために、再構築サンプルに、フィルタの第2のセットからの第3のフィルタを適用することとを行うようにさらに構成され、再構築サンプルに、第2の段階のALFを適用するために、1つまたは複数のプロセッサが、第1の中間サンプル値と、第2の中間サンプル値とに基づいて、第2のサンプル変更値を決定するようにさらに構成される、条項17C~27Cのいずれかに記載のデバイス。
【0414】
[0292] 条項29C。1つまたは複数のプロセッサが、再構築サンプルを決定するために、残差サンプル値に、予測サンプル値を加算するようにさらに構成される、条項17C~28Cのいずれかに記載のデバイス。
【0415】
[0293] 条項30C。1つまたは複数のプロセッサが、再構築サンプルを決定するために、予測サンプル値と残差サンプル値との和に、デブロッキングフィルタを適用するようにさらに構成される、条項28Cに記載のデバイス。
【0416】
[0294] 条項31C。1つまたは複数のプロセッサが、ビデオデータの復号ピクチャを出力し、ここにおいて、復号ピクチャが、フィルタリングされた再構築サンプルを備えるようにさらに構成される、条項17C~30Cのいずれかに記載のデバイス。
【0417】
[0295] 条項32C。デバイスが、ビデオ符号化デバイスを備える、条項17C~31Cのいずれかに記載のデバイス。
【0418】
[0296] 条項33C。1つまたは複数のプロセッサが、ビデオデータの復号ピクチャを出力し、ここにおいて、復号ピクチャが、フィルタリングされた再構築サンプルを備えるようにさらに構成される、条項17C~32Cのいずれかに記載のデバイス。
【0419】
[0297] 条項34C。デバイスが、符号化ビデオデータ(encoded video data)を受信するように構成された受信機をさらに備える、ワイヤレス通信デバイスを備える、条項33Cに記載のデバイス。
【0420】
[0298] 条項35C。ワイヤレス通信デバイスが、電話ハンドセットを備え、ここにおいて、受信機が、符号化ビデオデータを備える信号を、ワイヤレス通信規格(wireless communication standard)に従って、復調するように構成される、条項34Cに記載のデバイス。
【0421】
[0299] 条項36C。復号ビデオデータを表示するように構成されたディスプレイをさらに備える、条項17C~35Cのいずれかに記載のデバイス。
【0422】
[0300] 条項37C。デバイスが、カメラ、コンピュータ、モバイルデバイス、放送受信機デバイス、またはセットトップボックスのうちの1つまたは複数を備える、条項17C~36Cのいずれかに記載のデバイス。
【0423】
[0301] 条項38C。デバイスが、ビデオ符号化デバイスを備える、条項17C~37Cのいずれかに記載のデバイス。
【0424】
[0302] 条項39C。1つまたは複数のプロセッサによって実行されたときに、1つまたは複数のプロセッサに、再構築ブロックの再構築サンプルに、第1の段階の適応ループフィルタ(ALF)を適用することと、ここにおいて、第1の段階のALFを適用するために、1つまたは複数のプロセッサが、再構築サンプルについての第1のクラスインデックスを決定することと、第1のクラスインデックスに基づいて、フィルタの第1のセットからフィルタを選択することと、第1の中間サンプル値を決定するために、再構築サンプルに、フィルタの第1のセットからのフィルタを適用することとを行うようにさらに構成され、再構築サンプルに、第2の段階のALFを適用することと、ここにおいて、第2の段階のALFを適用するために、1つまたは複数のプロセッサが、再構築サンプルについての第2のクラスインデックスを決定することと、第2のクラスインデックスに基づいて、フィルタの第2のセットから第2のフィルタを選択することと、第1のサンプル変更値を決定するために、再構築サンプルに、第2のフィルタを適用することと、第1の中間サンプル値に基づいて、第2のサンプル変更値を決定することとを行うようにさらに構成され、再構築サンプルと、第1のサンプル変更値と、第2のサンプル変更値とに基づいて、フィルタリングされた再構築サンプルを決定することとを行わせる命令を記憶した、コンピュータ可読記憶媒体。
【0425】
[0303] 条項1D。ビデオデータを復号する方法であって、方法は、再構築ブロックの再構築サンプルに、第1の段階の適応ループフィルタ(ALF)を適用することと、ここにおいて、第1の段階のALFを適用することが、再構築サンプルについての第1のクラスインデックスを決定することと、第1のクラスインデックスに基づいて、フィルタの第1のセットからフィルタを選択することと、第1の中間サンプル値を決定するために、再構築サンプルに、フィルタの第1のセットからのフィルタを適用することとを備え、再構築サンプルに、第2の段階のALFを適用することと、ここにおいて、第2の段階のALFを適用することが、再構築サンプルについての第2のクラスインデックスを決定することと、第2のクラスインデックスに基づいて、フィルタの第2のセットから第2のフィルタを選択することと、第1のサンプル変更値を決定するために、再構築サンプルに、第2のフィルタを適用することと、第1の中間サンプル値に基づいて、第2のサンプル変更値を決定することとを備え、再構築サンプルと、第1のサンプル変更値と、第2のサンプル変更値とに基づいて、フィルタリングされた再構築サンプルを決定することとを備える。
【0426】
[0304] 条項2D。フィルタの第1のセットが、固定されたフィルタを備える、条項1Dに記載の方法。
【0427】
[0305] 条項3D。フィルタの第2のセットが、ビデオデータ内においてシグナリングされたシンタックスに基づいて決定された、シグナリングされたフィルタを備える、条項1Dに記載の方法。
【0428】
[0306] 条項4D。第1のクラスインデックスを決定することが、再構築サンプルについてのアクティビティ値を決定することと、再構築サンプルについての方向を決定することと、アクティビティ値と、方向とに基づいて、第1のクラスインデックスを決定することとを備える、条項1Dに記載の方法。
【0429】
[0307] 条項5D。方向を決定することが、方向に56個の値のうちの1つを割り当てることを備える、条項4Dに記載の方法。
【0430】
[0308] 条項6D。フィルタの第1のセットが、9×9のダイヤモンド形状フィルタを含む、条項1Dに記載の方法。
【0431】
[0309] 条項7D。再構築サンプルと、第1のサンプル変更値と、第2のサンプル変更値とに基づいて、フィルタリングされた再構築サンプルを決定することが、再構築サンプルに、第1のサンプル変更値と、第2のサンプル変更値とを加算することを備える、条項1Dに記載の方法。
【0432】
[0310] 条項8D。第1の中間サンプル値に基づいて、第2のサンプル変更値を決定することが、クリッピングされたサンプル変更値を決定するために、第2のサンプル変更値をクリッピングすることと、再構築サンプルに、第1のサンプル変更値と、クリッピングされたサンプル変更値とを加算することとを備える、条項1Dに記載の方法。
【0433】
[0311] 条項9D。ビデオデータ内において、クリッピングされたサンプル変更値を受信することをさらに備える、条項8Dに記載の方法。
【0434】
[0312] 条項10D。第1の中間サンプル値に基づいて、第2のサンプル変更値を決定することが、再構築サンプルと第1の中間サンプル値との間の差を決定することを備える、条項1Dに記載の方法。
【0435】
[0313] 条項11D。再構築ブロックについての量子化パラメータに基づいて、固定されたフィルタの複数のセットからフィルタの第1のセットを選択することをさらに備える、条項1Dに記載の方法。
【0436】
[0314] 条項12D。第1の段階のALFを適用することが、再構築サンプルについての第3のクラスインデックスを決定することと、第3のクラスインデックスに基づいて、フィルタの第2のセットから第2のフィルタを選択することと、第2の中間サンプル値を決定するために、再構築サンプルに、フィルタの第2のセットからの第2のフィルタを適用することとをさらに備え、再構築サンプルに、第2の段階のALFを適用することが、第1の中間サンプル値と、第2の中間サンプル値とに基づいて、第2のサンプル変更値を決定することをさらに備える、条項1Dに記載の方法。
【0437】
[0315] 条項13D。再構築サンプルを決定するために、残差サンプル値に、予測サンプル値を加算することをさらに備える、条項1Dに記載の方法。
【0438】
[0316] 条項14D。再構築サンプルを決定するために、予測サンプル値と残差サンプル値との和に、デブロッキングフィルタを適用することをさらに備える、条項13Dに記載の方法。
【0439】
[0317] 条項15D。ビデオデータの復号ピクチャを出力し、ここにおいて、復号ピクチャが、フィルタリングされた再構築サンプルを備えることをさらに備える、条項1Dに記載の方法。
【0440】
[0318] 条項16D。復号の方法が、ビデオ符号化プロセスの一部として実行される、条項1Dに記載の方法。
【0441】
[0319] 条項17D。ビデオデータを復号するためのデバイスであって、デバイスは、ビデオデータを記憶するように構成されたメモリと、回路で実施され、再構築ブロックの再構築サンプルに、第1の段階の適応ループフィルタ(ALF)を適用することと、ここにおいて、第1の段階のALFを適用するために、1つまたは複数のプロセッサが、再構築サンプルについての第1のクラスインデックスを決定することと、第1のクラスインデックスに基づいて、フィルタの第1のセットからフィルタを選択することと、第1の中間サンプル値を決定するために、再構築サンプルに、フィルタの第1のセットからのフィルタを適用することとを行うようにさらに構成され、再構築サンプルに、第2の段階のALFを適用することと、ここにおいて、第2の段階のALFを適用するために、1つまたは複数のプロセッサが、再構築サンプルについての第2のクラスインデックスを決定することと、第2のクラスインデックスに基づいて、フィルタの第2のセットから第2のフィルタを選択することと、第1のサンプル変更値を決定するために、再構築サンプルに、第2のフィルタを適用することと、第1の中間サンプル値に基づいて、第2のサンプル変更値を決定することとを行うようにさらに構成され、再構築サンプルと、第1のサンプル変更値と、第2のサンプル変更値とに基づいて、フィルタリングされた再構築サンプルを決定することとを行うように構成された、1つまたは複数のプロセッサとを備える。
【0442】
[0320] 条項18D。フィルタの第1のセットが、固定されたフィルタを備える、条項17Dに記載の装置。
【0443】
[0321] 条項19D。フィルタの第2のセットが、ビデオデータ内においてシグナリングされたシンタックスに基づいて決定された、シグナリングされたフィルタを備える、条項17Dに記載のデバイス。
【0444】
[0322] 条項20D。第1のクラスインデックスを決定するために、1つまたは複数のプロセッサが、再構築サンプルについてのアクティビティ値を決定することと、再構築サンプルについての方向を決定することと、アクティビティ値と、方向とに基づいて、第1のクラスインデックスを決定することとを行うようにさらに構成される、条項17Dに記載のデバイス。
【0445】
[0323] 条項21D。方向を決定するために、1つまたは複数のプロセッサが、方向に56個の値のうちの1つを割り当てるようにさらに構成される、条項20Dに記載のデバイス。
【0446】
[0324] 条項22D。フィルタの第1のセットが、9×9のダイヤモンド形状フィルタを含む、条項17Dに記載のデバイス。
【0447】
[0325] 条項23D。再構築サンプルと、第1のサンプル変更値と、第2のサンプル変更値とに基づいて、フィルタリングされた再構築サンプルを決定するために、1つまたは複数のプロセッサが、再構築サンプルに、第1のサンプル変更値と、第2のサンプル変更値とを加算するようにさらに構成される、条項17Dに記載のデバイス。
【0448】
[0326] 条項24D。第1の中間サンプル値に基づいて、第2のサンプル変更値を決定するために、1つまたは複数のプロセッサが、クリッピングされたサンプル変更値を決定するために、第2のサンプル変更値をクリッピングすることと、再構築サンプルに、第1のサンプル変更値と、クリッピングされたサンプル変更値とを加算することとを行うようにさらに構成される、条項17Dに記載のデバイス。
【0449】
[0327] 条項25D。1つまたは複数のプロセッサが、ビデオデータ内において、クリッピングされたサンプル変更値を受信するようにさらに構成される、条項24Dに記載のデバイス。
【0450】
[0328] 条項26D。第1の中間サンプル値に基づいて、第2のサンプル変更値を決定するために、1つまたは複数のプロセッサが、再構築サンプルと第1の中間サンプル値との間の差を決定するようにさらに構成される、条項17Dに記載のデバイス。
【0451】
[0329] 条項27D。1つまたは複数のプロセッサが、再構築ブロックについての量子化パラメータに基づいて、固定されたフィルタの複数のセットからフィルタの第1のセットを選択するようにさらに構成される、条項17Dに記載のデバイス。
【0452】
[0330] 条項28D。第1の段階のALFを適用するために、1つまたは複数のプロセッサが、再構築サンプルについての第3のクラスインデックスを決定することと、第3のクラスインデックスに基づいて、フィルタの第2のセットから第2のフィルタを選択することと、第2の中間サンプル値を決定するために、再構築サンプルに、フィルタの第2のセットからの第2のフィルタを適用することとを行うようにさらに構成され、再構築サンプルに、第2の段階のALFを適用するために、1つまたは複数のプロセッサが、第1の中間サンプル値と、第2の中間サンプル値とに基づいて、第2のサンプル変更値を決定するようにさらに構成される、条項17Dに記載のデバイス。
【0453】
[0331] 条項29D。1つまたは複数のプロセッサが、再構築サンプルを決定するために、残差サンプル値に、予測サンプル値を加算するようにさらに構成される、条項17Dに記載のデバイス。
【0454】
[0332] 条項30D。1つまたは複数のプロセッサが、再構築サンプルを決定するために、予測サンプル値と残差サンプル値との和に、デブロッキングフィルタを適用するようにさらに構成される、条項28Dに記載のデバイス。
【0455】
[0333] 条項31D。1つまたは複数のプロセッサが、ビデオデータの復号ピクチャを出力し、ここにおいて、復号ピクチャが、フィルタリングされた再構築サンプルを備えるようにさらに構成される、条項17Dに記載のデバイス。
【0456】
[0334] 条項32D。デバイスが、ビデオ符号化デバイスを備える、条項17Dに記載のデバイス。
【0457】
[0335] 条項33D。1つまたは複数のプロセッサが、ビデオデータの復号ピクチャを出力し、ここにおいて、復号ピクチャが、フィルタリングされた再構築サンプルを備えるようにさらに構成される、条項17Dに記載のデバイス。
【0458】
[0336] 条項34D。デバイスが、符号化ビデオデータを受信するように構成された受信機をさらに備える、ワイヤレス通信デバイスを備える、条項33Dに記載のデバイス。
【0459】
[0337] 条項35D。ワイヤレス通信デバイスが、電話ハンドセットを備え、ここにおいて、受信機が、符号化ビデオデータを備える信号を、ワイヤレス通信規格に従って、復調するように構成される、条項34Dに記載のデバイス。
【0460】
[0338] 条項36D。復号ビデオデータを表示するように構成されたディスプレイをさらに備える、条項17Dに記載のデバイス。
【0461】
[0339] 条項37D。デバイスが、カメラ、コンピュータ、モバイルデバイス、放送受信機デバイス、またはセットトップボックスのうちの1つまたは複数を備える、条項17Dに記載のデバイス。
【0462】
[0340] 条項38D。デバイスが、ビデオ符号化デバイスを備える、条項17Dに記載のデバイス。
【0463】
[0341] 条項39D。1つまたは複数のプロセッサによって実行されたときに、1つまたは複数のプロセッサに、再構築ブロックの再構築サンプルに、第1の段階の適応ループフィルタ(ALF)を適用することと、ここにおいて、第1の段階のALFを適用するために、1つまたは複数のプロセッサが、再構築サンプルについての第1のクラスインデックスを決定することと、第1のクラスインデックスに基づいて、フィルタの第1のセットからフィルタを選択することと、第1の中間サンプル値を決定するために、再構築サンプルに、フィルタの第1のセットからのフィルタを適用することとを行うようにさらに構成され、再構築サンプルに、第2の段階のALFを適用することと、ここにおいて、第2の段階のALFを適用するために、1つまたは複数のプロセッサが、再構築サンプルについての第2のクラスインデックスを決定することと、第2のクラスインデックスに基づいて、フィルタの第2のセットから第2のフィルタを選択することと、第1のサンプル変更値を決定するために、再構築サンプルに、第2のフィルタを適用することと、第1の中間サンプル値に基づいて、第2のサンプル変更値を決定することとを行うようにさらに構成され、再構築サンプルと、第1のサンプル変更値と、第2のサンプル変更値とに基づいて、フィルタリングされた再構築サンプルを決定することとを行わせる命令を記憶した、コンピュータ可読記憶媒体。
【0464】
[0342] 上記例に応じて、本明細書で説明された技法のいずれかのいくつかの行為またはイベントは、異なるシーケンスで実施され得、追加、マージ、または完全に除外され得る(たとえば、すべての説明された行為またはイベントが本技法の実践のために必要であるとは限らない)ことを認識されたい。その上、いくつかの例では、行為またはイベントは、連続的にではなく、たとえば、マルチスレッド処理、割込み処理、または複数のプロセッサを通して同時に実施され得る。
【0465】
[0343] 1つまたは複数の例では、説明された機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。ソフトウェアで実装される場合、機能は、1つまたは複数の命令またはコードとして、コンピュータ可読媒体上に記憶されるか、あるいはコンピュータ可読媒体を介して送信され、ハードウェアベースの処理ユニットによって実行され得る。コンピュータ可読媒体は、データ記憶媒体などの有形媒体に対応するコンピュータ可読記憶媒体、または、たとえば、通信プロトコルに従って、ある場所から別の場所へのコンピュータプログラムの転送を可能にする任意の媒体を含む通信媒体を含み得る。このようにして、コンピュータ可読媒体は、概して、(1)非一時的である有形コンピュータ可読記憶媒体、あるいは(2)信号または搬送波などの通信媒体に対応し得る。データ記憶媒体は、本開示で説明された技法の実装のための命令、コードおよび/またはデータ構造を取り出すために、1つまたは複数のコンピュータまたは1つまたは複数のプロセッサによってアクセスされ得る、任意の利用可能な媒体であり得る。コンピュータプログラム製品はコンピュータ可読媒体を含み得る。
【0466】
[0344] 限定ではなく例として、そのようなコンピュータ可読記憶媒体は、RAM、ROM、EEPROM(登録商標)、CD-ROMまたは他の光ディスクストレージ、磁気ディスクストレージ、または他の磁気ストレージデバイス、フラッシュメモリ、あるいは、命令またはデータ構造の形態の所望のプログラムコードを記憶するために使用され得、コンピュータによってアクセスされ得る任意の他の媒体を備えることができる。また、いかなる接続もコンピュータ可読媒体と適切に呼ばれる。たとえば、命令が、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者回線(DSL)、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、DSL、または赤外線、無線、およびマイクロ波などのワイヤレス技術は媒体の定義に含まれる。ただし、コンピュータ可読記憶媒体およびデータ記憶媒体は、接続、搬送波、信号、または他の一時的媒体を含まないが、代わりに非一時的有形記憶媒体を対象とすることを理解されたい。本明細書で使用されるディスク(disk)およびディスク(disc)は、コンパクトディスク(disc)(CD)、レーザーディスク(登録商標)(disc)、光ディスク(disc)、デジタル多用途ディスク(disc)(DVD)、フロッピー(登録商標)ディスク(disk)およびBlu-rayディスク(disc)を含み、ここで、ディスク(disk)は、通常、データを磁気的に再生し、ディスク(disc)は、データをレーザーで光学的に再生する。上記の組合せもコンピュータ可読媒体の範囲内に含まれるべきである。
【0467】
[0345] 命令は、1つまたは複数のDSP、汎用マイクロプロセッサ、ASIC、FPGA、あるいは他の等価な集積またはディスクリート論理回路など、1つまたは複数のプロセッサによって実行され得る。したがって、本明細書で使用される「プロセッサ」および「処理回路」という用語は、上記の構造、または本明細書で説明された技法の実装に好適な任意の他の構造のいずれかを指し得る。さらに、いくつかの態様では、本明細書で説明された機能は、符号化および復号のために構成された専用ハードウェアおよび/またはソフトウェアモジュール内に提供されるか、あるいは複合コーデックに組み込まれ得る。また、本技法は、1つまたは複数の回路または論理要素において十分に実装され得る。
【0468】
[0346] 本開示の技法は、ワイヤレスハンドセット、集積回路(IC)またはICのセット(たとえば、チップセット)を含む、多種多様なデバイスまたは装置において実装され得る。本開示では、開示される技法を実施するように構成されたデバイスの機能的態様を強調するために、様々な構成要素、モジュール、またはユニットが説明されたが、それらの構成要素、モジュール、またはユニットは、必ずしも異なるハードウェアユニットによる実現を必要とするとは限らない。むしろ、上記で説明されたように、様々なユニットが、好適なソフトウェアおよび/またはファームウェアとともに、上記で説明された1つまたは複数のプロセッサを含めて、コーデックハードウェアユニットにおいて組み合わせられるか、または相互動作可能なハードウェアユニットの集合によって提供され得る。
【0469】
[0347] 様々な例が説明された。これらおよび他の例は以下の特許請求の範囲内に入る。
【国際調査報告】