(57)【要約】  復元されたビデオデータにデブロッキングフィルタを適用するためのシステム及び方法が開示される。隣接する復元されたビデオブロック内のサンプル値は、デブロッキングフィルタの複数のパスに従って変更される。フィルタリングパスは、デブロックされるサンプルの全て又はサブセットの処理又は構築に対応し得る。所与のパスにおける各サンプルの処理又は構築の数は、パスインデックス又は順序に対応し得る。
2021520107.tif 000002
【特許請求の範囲】
【請求項１】
復元されたビデオデータをフィルタリングする方法であって、ビデオデータの成分に対する隣接する復元されたビデオブロックを含むサンプル値の配列を受信するステップと、前記隣接する復元されたビデオブロック内のサンプル値を、デブロッキングフィルタの複数のパスに従って変更するステップとを含む、方法。
【請求項２】
デブロッキングフィルタのフィルタパラメータが、各パスにおいて、1つ以上の符号化パラメータに基づいて決定される、請求項1に記載の方法。
【請求項３】
請求項1又は2に記載の任意のステップ及びステップの全ての組み合わせを実行するように構成された1つ以上のプロセッサを備える、ビデオデータを符号化するデバイス。
【請求項４】
ビデオエンコーダを含む、請求項3に記載のデバイス。
【請求項５】
ビデオデコーダを含む、請求項3に記載のデバイス。
【請求項６】
請求項4に記載のデバイスと、
請求項5に記載のデバイスと、を備えるシステム。
【請求項７】
請求項1又は2に記載の任意のステップ及びステップの全ての組み合わせを実行する手段を備える、ビデオデータを符号化する装置。
【請求項８】
記憶された命令を含む非一時的コンピュータ可読記憶媒体であって、前記命令は、実行されると、ビデオデータを符号化するデバイスの1つ以上のプロセッサに、請求項1又は2に記載の任意のステップ及びステップの全ての組み合わせを実行させる、非一時的コンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、ビデオ符号化、より具体的には、復元されたビデオデータのデブロッキングを実施するための技術に関する。
背景技術
【０００２】
デジタルビデオ能力は、デジタルテレビ、ラップトップ又はデスクトップコンピュータ、タブレット型コンピュータ、デジタル記録デバイス、デジタルメディアプレーヤ、ビデオゲーミングデバイス、いわゆるスマートフォンを含むセルラー電話、医療用イメージングデバイスなどを含む、広範囲のデバイスに組み込むことができる。デジタルビデオは、ビデオ符号化規格に従って符号化することができる。ビデオ符号化規格は、ビデオ圧縮技術を組み込むことができる。ビデオ符号化規格の例としては、ISO/IEC  MPEG-4  Visual及びITU-T  H.264(ISO/IEC  MPEG-4  AVCとしても公知である)並びにHigh-Efficiency  Video  Coding(HEVC)が挙げられる。HEVCは、High  Efficiency  Video  Coding(HEVC),Rec.ITU-T  H.265(2016年12月)に記載されており、参照により本明細書に組み込まれ、本明細書ではITU-T  H.265と称する。ITU-T  H.265に関する拡張及び改良が、次世代ビデオ符号化規格の開発のために現在考えられている。例えば、ITU-T  Video  Coding  Experts  Group(VCEG)及びISO/IEC  (Moving  Picture  Experts  Group(MPEG)(Joint  Video  Exploration  Team  (JVET)と集合的に呼ばれる)は、現在のHEVC規格の圧縮能力を著しく上回る圧縮能力を有する将来のビデオ符号化技術の標準化の潜在的必要性を検討している。The  Joint  Exploration  Model  7  (JEM  7),Algorithm  Description  of  Joint  Exploration  Test  Model  7(JEM  7),ISO/IEC  JTC1/SC29/WG11  Document:ビデオ符号化技術を、ITU-T  H.265の能力を超えて向上させる可能性を有するものとして、JVETによって協調的試験モデル研究中である符号化特徴について、JVET-G1001,July  2017,Torino,ITが記載しており、それが参照により本明細書に組み込まれる。JEM  7の符号化特徴は、JEM参照ソフトウェアで実施されることに留意されたい。本明細書で使用されるとき、JEMという用語は、JEM  7に含まれるアルゴリズム及びJEM参照ソフトウェアの実施を集合的に表し得る。
【０００３】
ビデオ圧縮技術は、ビデオシーケンス中の固有の冗長性を活用することによって、ビデオデータを記憶及び送信するためのデータ要件を低減させる。ビデオ圧縮技術は、ビデオ系列を連続的により小さな部分(すなわち、ビデオ系列内のフレームの群、フレームの群内のフレーム、フレーム内のスライス、スライス内の符号化ツリーユニット(例えば、マクロブロック)、符号化ツリーユニット内の符号化ブロックなど)に再分割することができる。イントラ予測符号化技術(例えば、ピクチャ内(空間的))及びインター予測技術(すなわち、ピクチャ間(時間的))を使用して、符号化されるビデオデータのユニットとビデオデータの参照ユニットとの間の差分値を生成することができる。差分値は、残差データと呼ばれることがある。残差データは、量子化された変換係数として符号化することができる。シンタックス要素は、残差データと参照符号化ユニットを関連付けることができる(例えば、イントラ予測モードインデックス、動きベクトル、及びブロックベクトル)。残差データ及びシンタックス要素は、エントロピ符号化することができる。エントロピ符号化された残差データ及びシンタックス要素は、準拠ビットストリームに含めることができる。準拠ビットストリーム及び関連メタデータは、データ構造に従ったフォーマットを有してもよい。
発明の概要
【０００４】
一実施例では、復元されたビデオデータをフィルタリングする方法は、ビデオデータの成分に対する隣接する復元されたビデオブロックを含むサンプル値の配列を受信することと、デブロッキングフィルタの複数のパスに従って、隣接する復元されたビデオブロック内のサンプル値を変更することとを含む。
【図面の簡単な説明】
【０００５】
【図１】本開示の1つ以上の技術による、四分ツリー二分ツリー分割に従って符号化されたピクチャの群の例を示す概念図である。
【図２】本開示の1つ以上の技術による、ビデオ成分のサンプリングフォーマットの例を示す概念図である。
【図３】本開示の1つ以上の技術による、ビデオデータのブロックについての可能な符号化構造を示す概念図である。
【図４Ａ】本開示の1つ以上の技術による、ビデオデータのブロックの符号化の例を示す概念図である。
【図４Ｂ】本開示の1つ以上の技術による、ビデオデータのブロックの符号化の例を示す概念図である。
【図５Ａ】本開示の1つ以上の技術による、デブロッキング境界を含むビデオデータのブロックを示す概念図である。
【図５Ｂ】本開示の1つ以上の技術による、デブロッキング境界を含むビデオデータのブロックを示す概念図である。
【図６】本開示の1つ以上の技術による、デブロッキングパラメータを判定するために使用することができる表の例である。
【図７】本開示の1つ以上の技術による、ビデオデータを符号化及び復号するように構成することができるシステムの例を示すブロック図である。
【図８】本開示の1つ以上の技術による、ビデオデータを符号化するように構成することができるビデオエンコーダの例を示すブロック図である。
【図９】本開示の1つ以上の技術による、ビデオデータを復号するように構成することができるビデオデコーダの一例を示すブロック図である。
【図１０】本開示の1つ以上の技術による、デブロッキングを実施する例を示すフローチャートである。
【図１１】本開示の1つ以上の技術による、デブロッキングを実施する例を示すフローチャートである。
【図１２】本開示の1つ以上の技術による、デブロッキングを実施する例を示すフローチャートである。
【図１３】本開示の1つ以上の技術による、デブロッキングパラメータを判定するために使用することができる表の例である。
【図１４Ａ】本開示の1つ以上の技術による、デブロッキング境界を含むビデオデータのブロックを示す概念図である。
【図１４Ｂ】本開示の1つ以上の技術による、デブロッキング境界を含むビデオデータのブロックを示す概念図である。発明を実施するための形態
【０００６】
概して、本開示は、ビデオデータを符号化する様々な技術を説明する。特に、本開示は、復元されたビデオデータのデブロッキングを実施するための技術を説明する。本開示の技術は、ITU-T  H.264、ITU-T  H.265、及びJEMに関して記載されているが、本開示の技術は、ビデオ符号化に一般的に適用可能であることに留意されたい。例えば、本明細書で説明する符号化技術は、ITU-T  H.265に含まれるもの以外のブロック構造、イントラ予測技術、インター予測技術、変換技術、フィルタリング技術、及び/又はエントロピ符号化技術を含むビデオ符号化システム(将来のビデオ符号化規格に基づくビデオ符号化システムを含む)に組み込むことができる。したがって、ITU-T  H.264、ITU-T  H.265、及びJEMの参照は、説明のためのものであり、本明細書で説明する技術の範囲を限定するように解釈すべきではない。更に、本明細書での文書の参照による組み込みは、本明細書で使用される用語に関して限定する又は曖昧さを生むように解釈されるべきではないことに留意されたい。例えば、組み込まれた参照が、別の組み込まれた参照とは、及び/又はその用語が本明細書で使用されるのとは異なる用語の定義を提供する場合では、その用語は、それぞれの対応する定義を幅広く含むように、及び/又は代わりに特定の定義のそれぞれを含むように解釈されるべきである。
【０００７】
一実施例では、ビデオ符号化のためのデバイスは、ビデオデータの成分に対する隣接する復元されたビデオブロックを含むサンプル値の配列を受信し、デブロッキングフィルタの複数のパスに従って、隣接する復元されたビデオブロック内のサンプル値を変更するように構成された1つ以上のプロセッサを備える。
【０００８】
一実施例では、非一時的コンピュータ可読記憶媒体は、そこに記憶された命令を含み、命令は、実行された場合に、デバイスの1つ以上のプロセッサに、ビデオデータの成分に対する隣接する復元されたビデオブロックを含むサンプル値の配列を受信させ、デブロッキングフィルタの複数のパスに従って、隣接する復元されたビデオブロック内のサンプル値を変更させる。
【０００９】
一実施例では、装置は、ビデオデータの成分に対する隣接する復元されたビデオブロックを含むサンプル値の配列を受信するための手段と、デブロッキングフィルタの複数のパスに従って、隣接する復元されたビデオブロック内のサンプル値を変更する手段とを備える。
【００１０】
1つ以上の実施例の詳細は、添付の図面及び以下の明細書に記述されている。他の特徴、目的、及び利点は、明細書及び図面から、並びに特許請求の範囲から明白であろう。
【００１１】
ビデオコンテンツは、典型的には、一連のフレームからなるビデオシーケンスを含む。一連のフレームはまた、ピクチャ群(group of pictures、GOP)と呼ばれることがある。各ビデオフレーム又はピクチャは、複数のスライス又はタイルを含むことができ、スライス又はタイルは、複数のビデオブロックを含む。本明細書で使用されるとき、ビデオブロックという用語は、一般的に、ピクチャの部分を指すことがある、又は、より具体的には、予測的に符号化することができるサンプル値の最大配列、その再分割、及び/又は対応する構造を指すことがある。更に、現在のビデオブロックという用語は、符号化又は復号されているピクチャの部分を指すことがある。ビデオブロックは、予測的に符号化することができるサンプル値の配列として定義することができる。いくつかの場合では、画素値が、色成分(例えば、ルマ成分(Y)及びクロマ成分(Cb及びCr)、又は赤色、緑色、及び青色の成分)とも称され得るビデオデータのそれぞれの成分のサンプル値を含むものとして説明され得ることに留意されたい。いくつかの場合では、画素値及びサンプル値という用語は互換的に使用されることに留意されたい。ビデオブロックは、走査パターン(例えば、ラスター走査)に従って、ピクチャ内で順序付けすることができる。ビデオエンコーダは、ビデオブロック及びその再分割に対して予測符号化を実行することができる。ビデオブロック及びその再分割は、ノードと呼ばれることがある。
【００１２】
ITU-T  H.264は、16×16のルマサンプルを含むマクロブロック構造を指定している。すなわち、ITU-T  H.264では、ピクチャはマクロブロックに分割される。ITU-T  H.265は、類似の符号化ツリーユニット(Coding Tree Unit)(CTU)構造を指定し、これは、最大符号化ユニット(LCU)とも称され得る。ITU-T  H.265では、ピクチャはCTUに分割される。ITU-T  H.265では、1つのピクチャに関して、CTUサイズは、16×16、32×32、又は64×64のルマサンプルを含むように設定することができる。ITU-T  H.265では、CTUは、ビデオデータのそれぞれの成分(例えば、ルマ(Y)及びクロマ(Cb及びCr))についてのそれぞれの符号化ツリーブロック(CTB)(Coding Tree Block)から構成される。更に、ITU-T  H.265では、CTUを四分ツリー(QT)分割構造に従って分割することができ、その結果、CTUのCTBが、符号化ブロック(CB:Coding Block)に分割される。すなわち、ITU-T  H.265では、CTUを四分ツリーリーフノードに分割することができる。ITU-T  H.265によれば、1つのルマCBは、2つの対応するクロマCB及び関連するシンタックス要素と共に、符号化ユニット(CU)と呼ばれる。ITU-T  H.265では、CBの最小許容サイズを通知することができる。ITU-T  H.265では、ルマCBの最も小さい最小許容サイズは、8×8のルマサンプルである。ITU-T  H.265では、イントラ予測又はインター予測を用いてピクチャ部分を符号化する決定は、CUレベルで行われる。
【００１３】
ITU-T  H.265では、CUは、CUにおけるルートを有する予測ユニット(PU)構造に関連付けられている。ITU-T  H.265では、PU構造は、対応する参照サンプルを生成する目的で、ルマCB及びクロマCBを分割することを可能にする。すなわち、ITU-T  H.265では、ルマCB及びクロマCBを、それぞれのルマ及びクロマ予測ブロック(PB)に分割することができ、ここでPBは、同じ予測が適用されるサンプル値のブロックを含む。ITU-T  H.265では、CBを1、2、又は4個のPBに分割することができる。ITU-T  H.265は、64×64のサンプルから4×4のサンプルまでのPBサイズをサポートする。ITU-T  H.265では、正方形のPBがイントラ予測のためにサポートされ、ここでCBはPBを形成することができるか、又はCBを4つの正方形のPBに分けることができる(すなわち、イントラ予測PBサイズタイプは、M×M又はM/2×M/2を含む。但し、Mは正方形のCBの高さ及び幅である)。ITU-T  H.265では、正方形のPBの他に、矩形のPBがインター予測のためにサポートされ、ここでCBを垂直又は水平に二等分してPBを形成することができる(すなわち、インター予測PBタイプはM×M、M/2×M/2、M/2×M、又はM×M/2を含む)。更に、ITU-T  H.265では、インター予測のために、4つの非対称PB分割がサポートされ、ここでCBは、CBの高さ(上部又は下部で)又は幅(左又は右)の4分の1で2つのPBに分割される(すなわち、非対称区分としては、M/4×M左、M/4×M右、M×M/4上部、及びM×M/4下部を含む)ことに留意されたい。PBに対応するイントラ予測データ(例えば、イントラ予測モードシンタックス要素)又はインター予測データ(例えば、動きデータシンタックス要素)を使用して、PBに関する参照サンプル値及び/又は予測サンプル値が生成される。
【００１４】
JEMは、256×256のルマサンプルの最大サイズを有するCTUを規定している。JEMは、四分ツリー+二分ツリー(QTBT)ブロック構造を規定している。JEMでは、QTBT構造は、四分ツリーリーフノードを二分ツリー構造(BT)によって更に分割することを可能にする。すなわち、JEMでは、二分ツリー構造は、四分ツリーリーフノードを垂直又は水平に再帰的に分割することを可能にする。図1は、四分ツリーリーフノードに分割され、また四分ツリーリーフノードが二分ツリーに従って更に分割された、CTU(例えば、256×256のルマサンプルのサイズを有するCTU)の例を示す。すなわち、図1では、破線が、四分ツリーにおける付加的な二分ツリー区分を示唆している。したがって、JEMでの二分ツリー構造は、正方形のリーフノード及び矩形のリーフノードを可能にし、それぞれのリーフノードは、1つのCBを含む。図1に示すように、GOPに含まれるピクチャは複数のスライスを含むことができ、各スライスは一連のCTUを含み、各CTUはQTBT構造に従って分割することができる。図1は、1つのスライスに含まれる1つのCTUのQTBT分割の例を示す。したがって、JEMでの二分ツリー構造は、正方形のリーフノード及び矩形のリーフノードを可能にし、それぞれのリーフノードは、1つのCBを含む。JEMでは、CBは、分割を一切行わない予測のために使用される。すなわち、JEMでは、CBは、同じ予測が適用されるサンプル値のブロックであってよい。したがって、JEM  QTBTリーフノードは、ITU-T  H.265におけるPBに類似するものであってよい。
【００１５】
クロマフォーマットと呼ばれることもあるビデオサンプリングフォーマットは、CUに含まれるルマサンプルの数に対してCUに含まれるクロマサンプルの数を定義することができる。例えば、4:2:0フォーマットに対して、ルマ成分に対するサンプリングレートは、水平方向及び垂直方向の両方に対してクロマ成分のサンプリングレートの2倍である。結果として、4:2:0フォーマットに従ってフォーマットされたCUに対して、ルマ成分に対するサンプルの配列の幅及び高さは、クロマ成分に対するサンプルのそれぞれの配列の幅及び高さの2倍である。図2は、4:2:0サンプルフォーマットに従ってフォーマットされた符号化ユニットの例を示す概念図である。図2は、CU内のルマサンプルに対するクロマサンプルの相対位置を示す。上述したように、CUは、典型的には、水平及び垂直のルマサンプルの数に従って定義される。したがって、図2に示すように、4:2:0サンプルフォーマットに従ってフォーマットされた16×16のCUは、ルマ成分の16×16のサンプル及びそれぞれのクロマ成分に対する8×8のサンプルを含む。更に、図2に示す例では、16×16のCUに近接するビデオブロックについてのルマサンプルに対する、クロマサンプルの相対位置が示されている。4:2:2フォーマットに従ってフォーマットされたCUに対して、ルマ成分に対するサンプルの配列の幅は、それぞれのクロマ成分に対するサンプルの配列の幅の2倍であるが、ルマ成分に対するサンプルの配列の高さは、それぞれのクロマ成分に対するサンプルの配列の高さに等しい。更に、4:4:4フォーマットに従ってフォーマットされたCUに対して、ルマ成分に対するサンプルの配列は、それぞれのクロマ成分に対するサンプルの配列と同じ幅及び高さを有する。
【００１６】
上述したように、イントラ予測データ又はインター予測データは、サンプル値のブロックに対する参照サンプル値を生成するために使用される。現在のPB又は別の種類のピクチャ部分構造に含まれるサンプル値と、関連する参照サンプル(例えば、予測を用いて生成された参照サンプル)との差は、残差データと呼ばれることがある。残差データは、ビデオデータのそれぞれの成分に対応する差分値のそれぞれの配列を含むことができる。残差データは、画素領域内とすることができる。離散コサイン変換(discrete cosine transform)、離散サイン変換(discrete sine transform)(DST)、整数変換、ウェーブレット変換、又は概念的に類似の変換などの変換を、差分値の配列に適用して、変換係数を生成することができる。ITU-T  H.265では、CUは、ルートをCUレベルにおいて有する変換ユニット(TU)構造に関連することに留意されたい。すなわち、ITU-T  H.265では、変換係数を生成する目的で、差分値の配列を再分割することができる(例えば、4つの8×8変換を残差値の16×16の配列に適用することができる)。ビデオデータの各成分について、差分値のこのような再分割は、変換ブロック(TB)(Transform Block)と呼ばれることがある。ITU-T  H.265では、TBをPBに整列する必要はないことに留意されたい。図3は、特定のCBを符号化するために使用することができる代替のPBとTBとの組み合わせの例を示す。更に、ITU-T  H.265では、TBは、以下のサイズ4×4、8×8、16×16、及び32×32を有することができることに留意されたい。JEMでは、CBに対応する残差値を使用して、更なる分割を行うことなく変換係数が生成される。すなわち、JEMでは、QTBTリーフノードは、ITU-T  H.265におけるPB及びTBの両方に類似のものとすることができる。JEMでは、コア変換及び後続の二次変換を(ビデオエンコーダで)適用して変換係数を生成することができる。ビデオデコーダに対しては、変換の順序は逆転される。更に、JEMでは、二次変換を適用して変換係数を生成するか否かは、予測モードに依存し得る。
【００１７】
変換係数は、量子化プロセスに従って量子化され得る。量子化は、特定の値のセットに制限された振幅によって変換係数を近似する。量子化は、変換係数の群を表すために必要なデータの量を変化させるために使用されてもよい。量子化は、倍率による変換係数の除算及び任意の関連する丸め機能(例えば、最も近い整数への丸め)によって実現されるものとして一般に記載され得る。逆量子化(Inverse quantization)(又は「脱量子化(dequantization)」)は、倍率による係数レベル値の乗算を含むことができる。本明細書で使用されるとき、量子化プロセスという用語は一般に、いくつかの場合では、レベル値を生成する倍率による除算、又は、いくつかの場合では、変換係数を回復する倍率による乗算を指す場合があることに留意されたい。すなわち、量子化プロセスは、いくつかの場合では、量子化、及び、いくつかの場合では、逆量子化を指すことがある。ビデオデータの現在のブロックは、レベル値に対して逆量子化を実行し、逆変換を実行し、予測値のセットを、結果として生じた残差に加えることによって復元される。復元されたブロックのサンプル値は、符号化プロセスに入力された現在のビデオブロックのサンプル値と異なっていてもよい。このように、符号化は非可逆であると言うことができる。しかしながら、サンプル値の差は、復元されたビデオの観察者に対して許容されると見なすことができることに留意すべきである。
【００１８】
量子化された変換係数(これはレベル値と呼ばれることがある)は、エントロピ符号化技術(例えば、コンテンツ適応可変長符号化(content adaptive variable length coding、CAVLC)、コンテキスト適応2値算術符号化(context adaptive binary arithmetic coding、CABAC)、確率区間分割エントロピ符号化(probability interval partitioning entropy coding、PIPE)など)に従ってエントロピ符号化することができる。更に、予測モードを示すシンタックス要素などのシンタックス要素も、エントロピ符号化することができる。エントロピ符号化され量子化された変換係数及び対応するエントロピ符号化されたシンタックス要素は、ビデオデータを再生成するために使用することができる準拠ビットストリームを形成することができる。二値化プロセスを、エントロピ符号化プロセスの一部としてシンタックス要素に対して実行することができる。二値化は、シンタックス値を一連の1つ以上のビットに変換するプロセスを指す。これらのビットは、「ビン」と呼ばれることがある。図4A〜図4Bは、ビデオデータのブロックを符号化する例を示す概念図である。図4Aに示すように、ビデオデータの現在のブロック(例えば、ビデオ成分に対応するCB)は、ビデオデータの現在のブロックから予測値のセットを減算して残差を生成し、残差に対して変換を実行し、変換係数を量子化してレベル値を生成することによって符号化される。図4Bに示すように、ビデオデータの現在のブロックは、レベル値に対して逆量子化を実行し、逆変換を実行し、予測値のセットを、結果として生じた残差に加えることによって復号される。図4A〜図4Bの例では、復元されたブロックのサンプル値は、符号化された現在のビデオブロックのサンプル値とは異なることに留意すべきである。このように、符号化は非可逆であると言うことができる。しかしながら、サンプル値の差は、復元されたビデオの観察者に対して許容されるか、又は知覚されないと見なすことができる。
【００１９】
図4Aに示すように、量子化された変換係数はビットストリームに符号化される。量子化された変換係数及びシンタックス要素(例えば、ビデオブロックの符号化構造を示すシンタックス要素)は、エントロピ符号化技術に従ってエントロピ符号化することができる。エントロピ符号化技術の例としては、コンテンツ適応型可変長符号化(content adaptive variable length coding)(CAVLC)、コンテキスト適応型バイナリ算術符号化(context adaptive binary arithmetic coding)(CABAC)、確率間隔分割エントロピ符号化(probability interval partitioning entropy coding)(PIPE)などが挙げられる。エントロピ符号化され量子化された変換係数及び対応するエントロピ符号化されたシンタックス要素は、ビデオデコーダでビデオデータを再生するために使用することができる適合したビットストリームを形成することができる。エントロピ符号化プロセスは、シンタックス要素に対する二値化の実行を含むことができる。二値化は、シンタックス値の値を一連の1つ以上のビットに変換するプロセスを指す。これらのビットは、「ビン」と呼ばれることがある。二値化は無損失のプロセスであり、以下の符号化技術:固定長符号化、単項符号化、短縮単項符号化、短縮Rice符号化、Golomb符号化、k次指数Golomb符号化、及びGolomb-Rice符号化のうちの1つ又は組み合わせを含むことができる。例えば、二値化は、8ビットの固定長二値化技術を使用して、00000101としてシンタックス要素の5の整数値を表すこと、又は単項符号化二値化技術を使用して、11110として5の整数値を表すことを含んでもよい。本明細書で使用されるとき、固定長符号化、単項符号化、短縮単項符号化、短縮Rice符号化、Golomb符号化、k次指数Golomb符号化、及びGolomb-Rice符号化という用語のそれぞれは、これらの技術の一般的な実装形態及び/又はこれらの符号化技術のより具体的な実装形態を指すことがある。例えば、Golomb-Rice符号化の実装形態は、ビデオ符号化規格、例えば、ITU-T  H.265に従って具体的に定義することができる。エントロピ符号化プロセスは、可逆データ圧縮アルゴリズムを使用してビン値を符号化することを更に含む。CAB  ACの例では、特定のビンに対して、コンテキストモデルは、ビンに関連する使用可能なコンテキストモデルのセットから選択することができる。いくつかの例では、コンテキストモデルは、前のビン及び/又は前のシンタックス要素の値に基づいて選択することができる。コンテキストモデルは、ビンが特定の値を有している確率を識別することができる。例えば、コンテキストモデルは、0の値のビンを符号化する0.7の確率、及び1の値のビンを符号化する0.3の確率を示すことができる。いくつかの場合では、0値のビンを符号化する確率及び1値ビンを符号化する確率は、合計で1にならない場合があることに留意されたい。使用可能なコンテキストモデルを選択した後で、CAB  ACエントロピエンコーダは、識別したコンテキストモデルに基づいて、ビンを算術的に符号化することができる。コンテキストモデルは、符号化されたビンの値に基づいて更新することができる。コンテキストモデルは、コンテキストと一緒に記憶された関連する変数、例えば、適応ウィンドウサイズ、コンテキストを使用して符号化されたビンの数に基づいて更新することができる。ITU-T  H.265に従って、一部のシンタックス��素が、明示的に割り当てられたコンテキストモデルの使用なしに、算術符号化を用いてエントロピ符号化することができるように、CABACエントロピエンコーダを実装することができ、そのような符号化はバイパス符号化と呼ばれることがあることに留意されたい。
【００２０】
上述したように、イントラ予測データ又はインター予測データは、ピクチャ(例えば、PB又はCB)の部分を、対応する参照サンプルと関連付けることができる。イントラ予測符号化のために、イントラ予測モードは、ピクチャ内の参照サンプルの位置を指定することができる。ITU-T  H.265では、定義された可能なイントラ予測モードは、プレーナ(すなわち、表面適合)予測モード(predMode:0)、DC(すなわち、フラット全体平均化)予測モード(predMode:1)、及び33角度予測モード(angular prediction mode)(predMode:2-34)を含む。JEMでは、定義された可能なイントラ予測モードは、プレーナ予測モード(predMode:0)、DC予測モード(predMode:1)、及び65角度予測モード(predMode:2-66)を含む。平面及びDC予測モードは、非方向性予測モードと呼ばれることがあり、角度予測モードは、方向性予測モードと呼ばれることがあることに留意されたい。本明細書で説明する技術は、定義された可能な予測モードの数にかかわらず、一般的に適用可能であり得ることに留意されたい。
【００２１】
インター予測符号化のために、動きベクトル(MV)は、符号化されるべきビデオブロックのピクチャ以外のピクチャ内の参照サンプルを識別し、それによってビデオの時間的冗長性を利用する。例えば、現在のビデオブロックは、以前に符号化されたフレーム(単数又は複数)内に位置する参照ブロック(単数又は複数)から予測することができ、動きベクトルは、参照ブロックの位置を示すために使用することができる。動きベクトル及び関連するデータは、例えば、動きベクトルの水平成分、動きベクトルの垂直成分、動きベクトルに対する解像度(例えば、四分の一画素の精度、二分の一画素の精度、一画素の精度、二画素の精度、四画素の精度)、予測方向、及び/又は参照ピクチャのインデックス値を記述することができる。更に、例えば、ITU-T  H.265などの符号化規格は、動きベクトル予測をサポートすることができる。動きベクトル予測は、隣接するブロックの動きベクトルを用いて動きベクトルを指定することを可能にする。動きベクトル予測の例としては、高度動きベクトル予測(advanced motion vector prediction)(AMVP)、時間動きベクトル予測(temporal motion vector prediction)(TMVP)、いわゆる「結合」モード、並びに「スキップ」及び「ダイレクト」動き推測が挙げられる。更に、JEMは、高度動きベクトル予測(advanced motion vector prediction)(AMVP)、時空間動きベクトル予測(spatial-temporal motion vector prediction)(STMVP)、フレームレートアップコンバージョン(FRUC)技術に基づく特別なマージモードであるパターンマッチ運動ベクトル導出(PMMVD)モード、及びアフィン変換動き補償予測技術をサポートする。
【００２２】
上述したように、量子化は、変換係数を倍率で除算することによって実現することができ、変換係数のグループを表すために必要なデータ量を変化させるために更に使用することができる。すなわち、倍率(又は量子化の程度)を増加させると、係数のグループを表すために必要なデータ量は減少する。ITU-T  H.265では、量子化の程度は、量子化パラメータQPによって決定することができる。ITU-T  H.265では、8ビットのビット長については、QPは、0から51の52個の値をとることができ、QPに対する1の変化は、一般的に、約12%の量子化倍率の値の変化に対応する。より一般的には、ITU-T  H.265では、ソースビット長に対するQP値の有効な範囲は以下になることに留意されたい。-6*(bitdepth-8)〜+51(inclusive)。したがって、例えば、ビット長が10ビットである場合、QPは、-12〜51の64個の値をとり、これは脱量子化中に0〜63の値にマッピングされ得る。ITU-T  H.265では、量子化パラメータは、CU毎に更新することができ、またそれぞれの量子化パラメータは、ルマ成分及びクロマ成分毎に導出することができる。量子化度が増加する(例えば、変換係数がより大きい倍率値で除算される)につれて、歪みの量は増加し得る(例えば、復元されたビデオデータは、より「ブロック状」に見え得る)ことに留意されたい。
【００２３】
いくつかの場合では、ブロック歪が、復元されたビデオデータの符号化ブロック境界をユーザに視覚的に知覚可能にすることができる。ブロック歪を低減させるために、復元されたサンプル値を変更して、ビデオ符号化プロセスによって導入される歪を最小限に抑えてもよい。このような変更は、一般に、フィルタリングと称される場合がある。フィルタリングは、インループフィルタリングプロセス又はポストループフィルタリングプロセスの一部として生じ得ることに留意されたい。インループフィルタリングプロセスの場合、フィルタリングプロセスの結果として得られるサンプル値は、予測ビデオブロックに使用されてもよい(例えば、ビデオエンコーダでの以降の符号化、及びビデオデコーダでの以降の復号のために参照フレームバッファに記憶される)。ポストループフィルタリングプロセスでは、フィルタリングプロセスの結果として得られるサンプル値は、単に復号プロセスの一部として出力される(例えば、以降の符号化に使用されない)。例えば、インループフィルタリングプロセスの場合、復元されたブロックをフィルタリングした結果として得られるサンプル値は、以降の復号に使用され(例えば、参照バッファに記憶される)、(例えば、ディスプレイに)出力される。ポストループフィルタリングプロセスの場合、変更なしで復元されたブロックは、後続の復号のために使用され、復元されたブロックをフィルタリングした結果として得られるサンプル値が出力される。
【００２４】
本明細書で使用される式に関して、以下の算術演算子が使用され得る。
+  加算
-  減算
*  行列乗算を含む乗算
/  ゼロへの結果切り捨てを伴う整数除算。例えば、7/4及び-7/-4は、1に切り捨てられ、-7/4及び7/-4は、-1に切り捨てられる。
【数１】
2021520107.tif 000003
f(i)の合計であり、iはxから最大でyであり、yを含む全ての整数をとる。
【００２５】
更に、以下の数学関数を使用することができる。
【数２】
2021520107.tif 000004
Clip1c(x)=Clip3(0,(1<<BitDepthc)-1,x)であり、BitDepthcはクロマチャネルのビット長である。
abs(x)は、xの絶対値である。
【数３】
2021520107.tif 000005
【００２６】
更に、論理演算子の以下の定義が適用されてもよい。
x&&y  xとyとのブール論理「積」
x||y  xとyとのブール論理「和」
!ブール論理「否」
x?y:z  xが真であるか又は0に等しくない場合はyの値を評価し、そうでない場合はzの値を評価する。
【００２７】
更に、以下の関係演算子が適用されてもよい。
>    大なり
>=  大なり又は等しい
<    小なり
<=  小なり又は等しい
==  等しい
!=  等しくない
【００２８】
更に、以下のビット演算子が適用されてもよい。
x>>y  y桁の2進数字によるxの2の補数整数表現の算術右シフトである。この関数は、yの非負整数値に対してのみ定義される。右シフトの結果として最上位ビット(MSB)にシフトされたビットは、シフト操作の前のxのMSBに等しい値を有する。
x<<y  y桁の2進数字によるxの2の補数整数表現の算術左シフトである。この関数は、yの非負整数値に対してのみ定義される。左シフトの結果として、最下位ビット(LSB)にシフトされたビットは、0に等しい値を有する。
【００２９】
デブロッキング(Deblocking)(又はデブロッキング(de-blocking))、デブロックフィルタリング、デブロッキングを実施すること、又はデブロッキングフィルタを適用することは、近接する復元されたビデオブロックのビデオブロック境界を平滑化する(すなわち、観察者にとって境界を、より知覚可能でなくする)プロセスを指す。隣接する復元されたビデオブロックの境界を平滑化することは、境界に隣接する行又は列に含まれるサンプル値を変更することを含むことができる。ITU-T  H.265は、デブロッキングフィルタが、インループフィルタリングプロセスの一部として、復元されたサンプル値に適用される場合を提供する。ITU-T  H.265は、ルマサンプルを変更するために使用することができる2種類のデブロッキングフィルタ、すなわち、境界に隣接する3つの行又は列内のサンプル値を変更する強いフィルタと、境界に直接隣接する行又は列内のサンプル値を変更し、条件付きで、境界から2番目の行又は列内のサンプル値を変更する弱いフィルタとを含む。更に、ITU-T  H.265は、クロマサンプルを変更するために使用することができる1種類のフィルタ、すなわち通常フィルタを含む。
【００３０】
図5A〜図5Bは、境界を有するビデオブロックP及びQに含まれるサンプル値を示す。本明細書で使用されるとき、ビデオブロックP及びQは、デブロッキングが適用され得るブロック境界を有する隣接するビデオブロックを指すために使用される。サンプル値が変更される方法は定義されたフィルタに基づくことができ、pi及びqiは、垂直境界に対する列内の対応するサンプル値、及び水平境界に対する行内のサンプル値を表し、pi’及びqi’は、変更されたサンプル値を表す。定義されたフィルタは、変更される(又はフィルタリングされる)サンプルと、サンプルがどのように変更されるかを決定するために使用されるサンプルとを定義することができる。例えば、図5Aに示すように、一実施例では、デブロッキング境界に隣接する最初の3つの列(フィルタリングされたサンプルと記す)のそれぞれにおけるサンプル値は、デブロッキング境界に隣接する最初の4つの列(サポートサンプルと記す)のそれぞれに含まれるサンプル値に基づいて変更されてもよい。
【００３１】
上述したように、ITU-T  H.265は、ルマサンプルを変更するために使用することができる2種類のフィルタ、すなわち強いフィルタ及び弱いフィルタを含む。ルマサンプル値を変更するための強いフィルタ及び弱いフィルタの式の簡略化した定義を、以下に提供する。定義は、ITU-T  H.265に提供されるクリッピング操作を含まないという点で簡略化されている(すなわち、ITU-T  H.265では、フィルタリングされた値は、以下に記載される値tCに基づいてクリッピングされる)が、完全な定義を提供するITU-T  H.265のセクション8.7.2.5.7が参照される。
強いフィルタ
【数４】
2021520107.tif 000006
弱いフィルタ
【数５】
2021520107.tif 000007
p1及びq1は、後述するように、以下のように条件付きで変更される。
【数６】
2021520107.tif 000008
【００３２】
更に、ITU-T  H.265は、クロマサンプルを変更するために使用することができる1種類のフィルタ、すなわち通常フィルタを含む。クロマサンプル値を変更するための通常フィルタの式に関する簡略化した定義を、以下に提供する。
通常フィルタ
【数７】
2021520107.tif 000009
【００３３】
デブロッキングは、デブロッキング粒度に基づいて実行することができる。ITU-T    H.265は、8×8のデブロッキング粒度を提供する。すなわち、ITU-T  H.265では、ピクチャの部分に対して、8×8のグリッド上に位置するそれぞれのエッジが、境界が存在するかを判定するために評価される。更に、ITU-T  H.265では、それぞれの境界に対して境界強度(boundary strength)(Bs)が判定される。ITU-T  H.265では、Bsは、以下のように0、1、又は2のうちの1つとして決定される。
P及びQが隣接する2つの符号化ブロックである場合、フィルタ強度Bsは、以下のように規定される。
ブロック(P又はQ)のうちの1つがイントラ予測モードを有する場合、Bs=2;
さもなければ、P及びQが異なるTBに属し、かつP又はQが少なくとも1つの非ゼロ変換係数を有する場合、Bs=1、
さもなければ、P及びQの参照ピクチャが等しくない場合、Bs=1、
さもなければ、P及びQのx又はyの動きベクトル成分の間の差が1整数サンプル以上である場合、Bs=1、
さもなければ、Bs=0。
【００３４】
ITU-T  H.265では、ビデオブロックP及びQを含むCBを符号化するために使用されるQP(QPP及びQPqと称される場合がある)に基づいて、変数tC’及びβ’が決定される。図6は、tC’及びβ’を判定するための表を提供する。ITU-T  H.265では、インデックスQは、以下のように決定される。
ルマに対して、
β’について:
【数８】
2021520107.tif 000010
tC’について
【数９】
2021520107.tif 000011
但し、
【数１０】
2021520107.tif 000012
slice_beta_offset_div2は、サンプルq0,0を含むビデオデータのスライスに適用されるオフセット値であり、
slice_tc_offset_div2は、サンプルq0,0を含むビデオデータのスライスに適用されるオフセット値である。
【００３５】
ITU-T  H.265、変数β及びQは、以下のように導出される。
【数１１】
2021520107.tif 000013
式中、BitDepthyは、ルマサンプルのビット長を指定する。
【００３６】
ITU-T  H.265は、変数dを定義し、dは、ルマサンプル値に基づいて以下のように決定される。
【数１２】
2021520107.tif 000014
【００３７】
更に、ITU-T  H.265では、変数dpqは、d及びβの値に基づく値に設定される。最後に、ITU-T  H.265では、Bs、tC、β、及びdのそれぞれを使用して、どのフィルタタイプを適用するか(例えば、強いフィルタ又は弱いフィルタ)を判定する。更に、ITU-T  H.265では、クロマ成分に対して、通常フィルタは、Bsが2に等しい場合にのみ適用される。すなわち、ITU-T  H.265では、デブロッキングは、イントラ予測モードを用いて1つのブロックP又はQが生成される場合のみ、クロマ成分に対して行われる。
【００３８】
デブロッキングフィルタを、フィルタパラメータのセットに従って、一般的に説明することが有用であり得ることに留意されたい。例えば、行又は列に含まれるサンプル値のセット{a...b}については、対応するデブロックされたサンプル値、y[n]は、以下の式に基づいて指定されてもよい。
【数１３】
2021520107.tif 000015
式中、
フィルタ長は、abs(a-b+1)として決定され、
coeff[m]は、フィルタタップ値(フィルタ係数とも称される)を提供する。例えば、{a...b}={0...4}の場合、タップ値のセットは{1,2,3,2,1}であってもよく、
x[n+m]は、サポートサンプルに対応する入力サンプル値を提供し、サポートサイズはフィルタ長さ以上であってもよいことに留意されたい。
【００３９】
更に、ITU-T  H.265では、デブロッキングフィルタは、スライス及びタイル境界と一致しないCTU境界と比較して、スライス及びタイル境界と一致するCTU境界に異なる方法で適用されてもよい。具体的には、ITU-T  H.265は、スライスセグメントヘッダに存在するフラグ、すなわちslice_loop_filter_across_slices_enabled_flagを指定し、これが、上部スライス境界及び左スライス境界と一致するCTU境界を超えるデブロッキングフィルタを有効化/無効化する。ITU-T  H.265は、slice_loop_filter_across_slices_enabled_flagに対して以下の定義を提供する。
1に等しいslice_loop_filter_across_slices_enabled_flagは、インループフィルタリング操作が、現在のスライスの左側境界及び上側境界を越えて実行され得ることを指定し、0に等しいslice_loop_filter_across_slices_enabled_flagは、インループ操作が、現在のスライスの左側境界及び上側境界を越えて実行されないことを指定する。ループ内フィルタリング操作は、デブロッキングフィルタ及びサンプル適応オフセットフィルタを含む。slice_loop_filter_across_slices_enabled_flagが存在しない場合、pps_loop_filter_across_slices_enabled_flagに等しいと推測される。
【００４０】
ここで、pps_loop_filter_across_slices_enabled_flagが、ピクチャパラメータセット(PPS)内に存在し、ITU-T  H.265は、pps_loop_filter_across_slices_enabled_flagに対する以下の定義を提供する場合、
1に等しいpps_loop_filter_across_slices_enabled_flagは、インループフィルタリング操作が、PPSを参照するスライスの左側境界及び上側境界を越えて実行され得ることを指定し、0に等しいpps_loop_filter_across_slices_enabled_flagは、インループフィルタリング操作が、PPSを参照するスライスの左側境界及び上側境界を越えて実行されないことを指定する。インループフィルタリング操作は、デブロッキングフィルタ及びサンプル適応オフセットフィルタ操作を含む。
【００４１】
注記-スライス境界に越えるループフィルタリングは、
タイル境界を越えるループフィルタリングが無効化されている間に有効化することができ、その逆も同様である。
同様に、PPS内に存在するフラグであるloop_filter_across_tiles_enabled_flagは、タイル境界と一致するCTU境界を越えるデブロッキングフィルタを有効化/無効化する。ITU-T  H.265は、loop_filter_across_tiles_enabled_flagについての以下の定義を提供する。1に等しいloop_filter_across_tiles_enabled_flagは、インループフィルタリング操作が、PPSを参照するピクチャ内のタイル境界を越えて実行され得ることを指定する。0に等しいloop_filter_across_tiles_enabled_flagは、インループフィルタリング操作が、PPSを参照するピクチャ内のタイル境界を越えて実行されないことを指定する。インループフィルタリング操作は、デブロッキングフィルタ及びサンプル適応オフセットフィルタ操作を含む。loop_filter_across_tiles_enabled_flagが存在しない場合、loop_filter_across_tiles_enabled_flagの値は1に等しいと推測される。
【００４２】
上述したように、デブロッキングのために、インデックスQは、slice_beta_offset_div2、及び、slice_tc_offset_div2に基づいて決定される。ITU-T  H.265では、slice_beta_offset_div2及びslice_tc_offset_div2の値はスライスセグメントヘッダに含まれてもよく、以下の定義を有する:
slice_beta_offset_div2及びslice_tc_offset_div2は、現在のスライスに対するβ及びtC(2で割ったもの)のデブロッキングパラメータオフセットを指定する。slice_beta_offset_div2及びslice_tc_offset_div2の値は両方とも、両端値を含む、-6〜6の範囲にあるものとする。slice_beta_offset_div2及びslice_tc_offset_div2が存在しない場合、slice_beta_offset_div2及びslice_tc_offset_div2の値は、それぞれ、pps_beta_offset_div2及びpps_tc_offset_div2と等しいと推測される。
【００４３】
pps_beta_offset_div2及びpps_tc_offset_div2がPPS中に存在し、ITU-T  H.265が、pps_beta_offset_div2及びpps_tc_offset_div2について以下の定義を提供する場合、
デフォルトのデブロッキングパラメータオフセットが、PPSを参照するスライスのスライスヘッダに存在するデブロッキングパラメータオフセットによって上書きされない限り、pps_beta_offset_div2及びpps_tc_offset_div2は、PPSを参照するスライスに対して適用される、β及びtC(2で割ったもの)に対するデフォルトのデブロッキングパラメータオフセットを指定する。pps_beta_offset_div2及びpps_tc_offset_div2の値は両方とも、両端値を含む、-6〜6の範囲にあるものとする。pps_beta_offset_div2及びpps_tc_offset_div2が存在しない場合、pps_beta_offset_div2及びpps_tc_offset_div2の値は0に等しいと推測される。
【００４４】
上述したように、ITU-T  H.265は、8×8のデブロッキング粒度を提供する。JEMでは、水平境界に対する変数minCUWidth及び垂直境界に対する変数minCUHeightによって指定されるグリッドに従ってデブロッキングが実行され、minCUWidth及びminCUHeightのデフォルト値は4である。dの値もまた、JEMにおいて決定され、dの算出はITU-T  H.265の算出と同じである。上記dの値に基づいて、境界上でデブロッキングを実行するかどうかの判定が行われる。すなわち、d<βである場合は、デブロッキングフィルタが現在の境界のために使用され、それ以外では、境界上にデブロッキングは実行されない。更に、JEMでは、強いフィルタを使用するか又は弱いフィルタを使用するかという判定は、ITU-T  H.265におけるものと同一である。最後に、JEM参照ソフトウェアでは、強いデブロッキングフィルタのためのルマフィルタ係数は、ITU-T  H.265で使用される係数と同一である。ITU-T  H.265及びJEMにおいて実施されるようにデブロッキングを実施することは、理想的ではない場合がある。具体的には、ITU-T  H.265及びJEMにおいて実行されるようなデブロッキングは、デブロッキングを実行するときに、復元されたビデオデータの様々な符号化パラメータ及び特性を考慮することに失敗する。
【００４５】
図7は、本開示の1つ以上の技術による、ビデオデータをコード化する(符号化及び/又は復号する)ように構成することができる、システムの例を示すブロック図である。システム100は、本開示の1つ以上の技術に従って、ビデオデータをカプセル化することができるシステムの例を表す。図7に示すように、システム100は、ソースデバイス102と、通信媒体110と、目的デバイス120と、を含む。図7に示す例では、ソースデバイス102は、ビデオデータを符号化し、符号化したビデオデータを通信媒体110に送信するように構成された、任意のデバイスを含むことができる。目的デバイス120は、通信媒体110を介して符号化したビデオデータを受信し、符号化したビデオデータを復号するように構成された、任意のデバイスを含むことができる。ソースデバイス102及び/又は目的デバイス120は、有線及び/又は無線通信用に装備された演算デバイスを含むことができ、かつ、例えば、セットトップボックス、デジタルビデオレコーダ、テレビ、デスクトップ、ラップトップ、又はタブレットコンピュータ、ゲーム機、医療用撮像デバイス、及び、例えば、スマートフォン、セルラー電話、パーソナルゲームデバイスを含むモバイルデバイス、を含むことができる。
【００４６】
通信媒体110は、無線及び有線の通信媒体並びに/又は記憶デバイスの任意の組み合わせを含むことができる。通信媒体110としては、同軸ケーブル、光ファイバケーブル、ツイストペアケーブル、無線送信機及び受信機、ルータ、スイッチ、リピータ、基地局、又は様々なデバイスとサイトとの間の通信を容易にするために有用であり得る任意の他の機器を挙げることができる。通信媒体110は、1つ以上のネットワークを含むことができる。例えば、通信媒体110は、ワールドワイドウェブ、例えば、インターネットへのアクセスを可能にするように構成されたネットワークを含むことができる。ネットワークは、1つ以上の電気通信プロトコルの組み合わせに従って動作することができる。電気通信プロトコルは、専用の態様を含むことができ、及び/又は規格化された電気通信プロトコルを含むことができる。標準化された電気通信プロトコルの例としては、Digital  Video  Broadcasting(DVB)規格、Advanced  Television  Systems  Committee(ATSC)規格、Integrated  Services  Digital  Broadcasting(ISDB)規格、Data  Over  Cable  Service  Interface  Specification(DOCSIS)規格、Global  System  Mobile  Communications(GSM)規格、符号分割多重アクセス(code division multiple access、CDMA)規格、第三世代パートナーシッププロジェクト(3rd Generation Partnership Project、3GPP)規格、欧州電気通信標準化機構(European Telecommunications Standards Institute、ETSI)規格、インターネットプロトコル(Internet Protocol、IP)規格、ワイヤレスアプリケーションプロトコル(Wireless Application Protocol、WAP)規格、及びInstitute  of  Electrical  and  Electronics  Engineers(IEEE)規格が挙げられる。
【００４７】
記憶デバイスは、データを記憶することができる任意の種類のデバイス又は記憶媒体を含むことができる。記憶媒体は、有形又は非一時的コンピュータ可読媒体を含むことができる。コンピュータ可読媒体としては、光学ディスク、フラッシュメモリ、磁気メモリ、又は任意の他の好適なデジタル記憶媒体を挙げることができる。いくつかの例では、メモリデバイス又はその一部分は不揮発性メモリとして説明されることがあり、他の例では、メモリデバイスの一部分は揮発性メモリとして説明されることがある。揮発性メモリの例としては、ランダムアクセスメモリ(random access memory、RAM)、ダイナミックランダムアクセスメモリ(dynamic random access memory、DRAM)、及びスタティックランダムアクセスメモリ(static random access memory、SRAM)を挙げることができる。不揮発性メモリの例としては、磁気ハードディスク、光学ディスク、フロッピーディスク、フラッシュメモリ、又は電気的プログラム可能メモリ(electrically programmable memory、EPROM)若しくは電気的消去可能及びプログラム可能メモリ(electrically erasable and programmable、EEPROM)の形態を挙げることができる。記憶デバイス(単数又は複数)としては、メモリカード(例えば、セキュアデジタル(Secure Digital、SD)メモリカード)、内蔵/外付けハードディスクドライブ、及び/又は内蔵/外付けソリッドステートドライブを挙げることができる。データは、定義されたファイルフォーマットに従って記憶デバイス上に記憶することができる。
【００４８】
図7を再び参照すると、ソースデバイス102は、ビデオソース104と、ビデオエンコーダ106と、データカプセル化装置107と、インターフェース108とを含む。ビデオソース104は、ビデオデータをキャプチャ及び/又は記憶するように構成された任意のデバイスを含むことができる。例えば、ビデオソース104は、ビデオカメラ及びそれに動作可能に結合された記憶デバイスを含むことができる。ビデオエンコーダ106は、ビデオデータを受信し、ビデオデータを表す適合したビットストリームを生成するように構成された、任意のデバイスを含むことができる。適合したビットストリームは、ビデオデコーダが受信し、それからビデオデータを再生することができるビットストリームを指すことがある。適合したビットストリームの態様は、ビデオ符号化標準に従って定義することができる。適合したビットストリームを生成するとき、ビデオエンコーダ106は、ビデオデータを圧縮することができる。圧縮は、非可逆的(視聴者に認識可能若しくは認識不可能)又は可逆的とすることができる。
【００４９】
図8は、本明細書で説明するビデオデータを符号化するための技術を実施することができる、ビデオエンコーダ200の例を示すブロック図である。例のビデオエンコーダ200は、別個の機能ブロックを有するように示されているが、そのような例示は、説明のためのものであり、ビデオエンコーダ200及び/又はそのサブコンポーネントを特定のハードウェア又はソフトウェアアーキテクチャに限定するものではないことに留意されたい。ビデオエンコーダ200の機能は、ハードウェア、ファームウェア、及び/又はソフトウェアの実装形態の任意の組み合わせを用いて実現することができる。一例では、ビデオエンコーダ200は、本明細書で説明する技術に従ってビデオデータを符号化するように構成することができる。ビデオエンコーダ200は、ピクチャ部分のイントラ予測符号化及びインター予測符号化を実行する場合があり、そのためにハイブリッドビデオエンコーダと称される場合がある。図8に示す例では、ビデオエンコーダ200は、ソースビデオブロックを受信する。いくつかの例では、ソースビデオブロックは、符号化構造に従って分割されているピクチャの部分を含むことができる。例えば、ソースビデオデータは、マクロブロック、CTU、CB、その再分割、及び/又は別の同等の符号化ユニットを含むことができる。いくつかの例では、ビデオエンコーダは、ソースビデオブロックの追加の再分割を実行するように構成することができる。本明細書で説明する技術は、符号化の前及び/又は符号化中にソースビデオデータがどのように分割されるかにかかわらず、ビデオ符号化に一般的に適用可能であることに留意されたい。図9に示す例では、ビデオエンコーダ200は、加算器202と、変換係数発生装置204と、係数量子化部206と、逆量子化/変換処理部208と、加算器210と、イントラ予測処理部212と、インター予測処理部214と、フィルタ部216と、エントロピ符号化ユニット218と、を含む。図8に示すように、ビデオエンコーダ200は、ソースビデオブロックを受信し、ビットストリームを出力する。
【００５０】
図8に示す例では、ビデオエンコーダ200は、ソースビデオブロックから予測ビデオブロックを減算することにより、残差データを生成することができる。加算器202は、この減算演算を実行するように構成された構成要素を表す。一実施例では、ビデオブロックの減算は、画素領域で行われる。変換係数発生装置204は、離散コサイン変換(DCT)、離散サイン変換(DST)、又は概念的に類似の変換などの変換を残差ブロック又はその再分割に適用し(例えば、4つの8×8の変換を残差値の16×16の配列に適用することができる)、残差変換係数のセットを生成する。変換係数発生装置204は、離散三角変換のファミリーに含まれる変換の任意の及び全ての組み合わせを実行するように構成することができる。変換係数発生装置204は、変換係数を係数量子化部206に出力することができる。
【００５１】
係数量子化部206は、変換係数の量子化を実行するように構成することができる。上述したように、量子化の程度は、量子化パラメータによって判定することができる量子化倍率を調節することにより、変更することができる。係数量子化部206は、量子化値を決定して、量子化パラメータを復元してビデオ復号中に逆量子化を実行するためにビデオ復号器によって使用することができるQPデータを出力するように、更に構成することができる。例えば、信号で伝えられるQPデータは、QPデルタ値を含むことができる。ITU-T  H.265では、変換係数のセットに適用される量子化の程度は、スライスレベルパラメータ、前の符号化ユニットから継承したパラメータ、及び/又は任意選択的に通知されたCUレベルデルタ値に依存し得る。
【００５２】
図8に示すように、量子化された変換係数は、逆量子化/変換処理部208に出力される。逆量子化/変換処理部208は、逆量子化及び/又は逆変換を適用し、復元された残差データを生成するように構成することができる。図8に示すように、加算器210において、復元された残差データを、予測ビデオブロックに加算することができる。この方法で、符号化したビデオブロックを復元することができ、結果として得られる復元されたビデオブロックを使用して、所与の予測、変換タイプ、及び/又は量子化のレベルに対する所与の品質に関して符号化品質を評価することができる。ビデオエンコーダ200は、複数の符号化パスを実行する(例えば、1つ以上の符号化パラメータを変化させている間に符号化を実行する)ように構成することができる。ビットストリームのレートディストーション又は他のシステムパラメータは、復元されたビデオブロックの評価に基づいて最適化することができる。更に、復元されたビデオブロックは、その後のブロックを予測するための参照として記憶して使用することができる。
【００５３】
上述したように、ビデオブロックは、イントラ予測を用いて符号化することができる。イントラ予測処理部212は、符号化することになるビデオブロックに対してイントラ予測モードを選択するように構成することができる。イントラ予測処理部212は、フレーム及び/又はその部分を評価し、現在のブロックを符号化するために使用するイントラ予測モードを判定するように構成することができる。図8に示すように、イントラ予測処理部212は、イントラ予測データ(例えば、シンタックス要素)をフィルタ部216及びエントロピ符号化部218に出力する。
【００５４】
インター予測処理部214は、現在のビデオブロックに対するインター予測符号化を実行するように構成することができる。インター予測処理部214は、ソースビデオブロックを受信し、ビデオブロックのPUなどに対する動きベクトルを算出するように構成することができる。動きベクトルは、参照フレーム内の予測ブロックに対する現在のビデオフレーム内のビデオブロックのPUなどの変位を示すことができる。インター予測符号化は、1つ以上の参照ピクチャを使用することができる。更に、動き予測は、単一予測(1つの動きベクトルを用いる)又は双予測(2つの動きベクトルを用いる)とすることができる。インター予測処理部214は、例えば、絶対差分和(sum of absolute difference)(SAD)、差分二乗和(sum of square difference)(SSD)、又は他の差の測定法によって判定された画素差を算出することにより、予測ブロックを選択するように構成することができる。動きベクトル及び関連するデータは、例えば、動きベクトルの水平成分、動きベクトルの垂直成分、動きベクトルに対する解像度(例えば、四分の一画素の精度)、予測方向、及び/又は参照ピクチャのインデックス値を記述することができる。更に、例えば、ITU-T  H.265などの符号化規格は、動きベクトル予測をサポートすることができる。動きベクトル予測は、隣接するブロックの動きベクトルを用いて動きベクトルを指定することを可能にする。動きベクトル予測の例としては、高度動きベクトル予測(advanced motion vector prediction)(AMVP)、時間動きベクトル予測(temporal motion vector prediction)(TMVP)、いわゆる「結合」モード、並びに「スキップ」及び「ダイレクト」動き推測が挙げられる。インター予測処理部214は、上述した技術のうちの1つ以上に従って動きベクトル予測を実行するように構成することができる。インター予測処理部214は、動き予測データを用いて予測ブロックを生成するように構成することができる。例えば、インター予測処理部214は、フレームバッファ(図8に示さない)内に予測ビデオブロックを配置することができる。インター予測処理部214は、復元された残差ブロックに1つ以上の補間フィルタを適用して、動き予測に使用するための整数未満の画素値を算出するように更に構成することができることに留意されたい。インター予測処理部214は、算出された動きベクトルに対する動き予測データをフィルタ部216及びエントロピ符号化部218に出力することができる。
【００５５】
上述したように、デブロッキングは、復元されたビデオブロックの境界を平滑化するプロセスを指す。図8に示すように、フィルタ部216は、復元されたビデオブロック及び符号化パラメータ(例えば、イントラ予測データ、インター予測データ、及びQPデータ)を受信し、変更された復元されたビデオデータを出力する。フィルタ部216は、デブロッキング及び/又はサンプル適応オフセット(Sample Adaptive Offset)(SAO)フィルタリングを実行するように構成することができる。SAOフィルタリングは、復元されたビデオデータにオフセットを加えることにより復元を向上するために使用することができる、非線形振幅マッピングである。図8に示すように、イントラ予測処理部212及びインター予測処理部214は、フィルタ部216を介して、変更した復元されたビデオブロックを受信することができることに留意されたい。すなわち、いくつかの場合では、デブロッキングは、インループで行うことができる、すなわち、参照バッファに記憶された予測ビデオブロックは、フィルタリングすることができる。いくつかの場合では、デブロッキングは、ポストループで、すなわち、例えば、ビデオデータが復元された後、かつディスプレイに出力される前に、行うことができる。本明細書で説明する技術は、インループデブロッキング、ポストループデブロッキング、及び/又はそれらの組み合わせで適用可能であってもよい。
【００５６】
上述したように、ITU-T  H.265及びJEMにおいて実施されるようにデブロッキングを実施することは、理想的ではない場合がある。一実施例では、本明細書の技術によれば、フィルタ部216は、境界の各側(一方又は両方)のブロックサイズ、境界の強さ、境界の各側のブロックによって使用される予測モード、デブロックされているサンプルの予測モード(例えば、イントラ、インター、スキップ)(例えば、参照サンプルに近い境界に対して、より弱いフィルタを使用)、デブロックされているサンプルのQP値、デブロックされているサンプルに対応するブロックサイズ、デブロッキングに使用されているサンプルに対応するブロックサイズ、デブロックされている境界の各側にあるブロックに対する動きベクトル、デブロックされているサンプルに対する動きベクトル、及び/又は、デブロッキングのために使用されているサンプルに対する動きベクトル、のうちの1つ以上に基づいて、異なるフィルタリングラインを選択するように構成してもよい(いくつかの場合では、境界の各側でデブロックされたサンプルの数は異なっていてもよい)。
【００５７】
ブロック境界(境界エッジに垂直)の各側のサンプルは、以下のように表され得る:
...p8  p7  p6  p5  p4  p3  p2  p1  p0|q0  q1  q2  q3  q4  q5  q6  q7  q8...
式中、
|はブロック境界エッジを表す。
xが0から始まる正の整数のとき、サンプルpxは境界のP側を表す。yが0から始まる正の整数のとき、サンプルqxは境界のQ側を表す。
【００５８】
一実施例では、P側は、現在のCUの外部のサンプルを表し、Q側は、現在のCUの内部のサンプルを表す。
【００５９】
一実施例では、P側は、現在のCUの内部のサンプルを表し、Q側は、現在のCUの外部のサンプルを表す。
【００６０】
一実施例では、P側は、現在のブロックの外部のサンプルを表し、Q側は、現在のブロックの内部のサンプルを表す。
【００６１】
一実施例では、P側は、現在のブロックの内部のサンプルを表し、Q側は、現在のブロックの外部のサンプルを表す。
【００６２】
図5Aを参照すると、サンプルpy>x及びqy>xは、垂直エッジをデブロックするときのラインR[x]に対応する。
【００６３】
図5Bを参照すると、サンプルpy>x及びqy>xは、水平エッジをデブロックするときのラインR[y]に対応する。
【００６４】
境界のP側に対する、より広い(より多数のサンプルがデブロックされている)、より強いフィルタの一例は、WS00P  P側フィルタと称され、以下のものである:
【数１４】
2021520107.tif 000016
式中、px’は、pxに対応する位置でのデブロッキング後のサンプル値を表す。
【００６５】
境界のQ側に対する、より広い(より多数のサンプルがデブロックされている)、より強いフィルタの一例は、WS00Q  Q側フィルタと称され、以下のものである:
【数１５】
2021520107.tif 000017
式中、qx’は、qxに対応する位置でのデブロッキング後のサンプル値を表す。
【００６６】
境界のP側に対する、狭い(すなわち、より少数のサンプルがデブロックされる)、強いフィルタは、
HEVC_P  P側フィルタと称され、
【数１６】
2021520107.tif 000018
式中、px’は、pxに対応する位置でのデブロッキング後のサンプル値を表す。
【００６７】
境界のQ側に対する、狭い(すなわち、より少数のサンプルがデブロックされる)、強いフィルタは、
HEVC_Q  Q側フィルタと称され、
【数１７】
2021520107.tif 000019
式中、qx’は、qxに対応する位置でのデブロッキング後のサンプル値を表す。
【００６８】
境界のP側に対する、狭い(より少数のサンプルがデブロックされている)、強いフィルタの一例は、NS00P  P側フィルタと称され、以下のものである:
【数１８】
2021520107.tif 000020
式中、px’は、pxに対応する位置でのデブロッキング後のサンプル値を表す。
【００６９】
境界のQ側に対する、狭い(より少数のサンプルがデブロックされている)、強いフィルタの一例は、NS00Q  Q側フィルタと称され、以下のものである:
【数１９】
2021520107.tif 000021
式中、qx’は、qxに対応する位置でのデブロッキング後のサンプル値を表す。
【００７０】
境界のP側に対する、狭い(より少数のサンプルがデブロックされている)、強いフィルタの一例は、NS00P  P側フィルタと称され、以下のものである:
【数２０】
2021520107.tif 000022
【００７１】
境界のQ側に対する、狭い(より少数のサンプルがデブロックされている)、強いフィルタの一例は、NS00Q  Q側フィルタと称され、以下のものである:
【数２１】
2021520107.tif 000023
【００７２】
境界のP側に対する、狭い(より少数のサンプルがデブロックされている)、強いフィルタの一例は、NS00P  P側フィルタと称され、以下のものである:
【数２２】
2021520107.tif 000024
【００７３】
境界のQ側に対する、狭い(より少数のサンプルがデブロックされている)、強いフィルタの一例は、NS00Q  Q側フィルタと称され、以下のものである:
【数２３】
2021520107.tif 000025
【００７４】
境界のP側に対する、狭い(より少数のサンプルがデブロックされている)、弱いフィルタの一例は、NW00P  P側フィルタと称され、以下のものである:
【数２４】
2021520107.tif 000026
式中、px’は、pxに対応する位置でのデブロッキング後のサンプル値を表す。
【００７５】
境界のQ側に対する、狭い(より少数のサンプルがデブロックされている)、弱いフィルタの一例は、NW00Q  Q側フィルタと称され、以下のものである:
【数２５】
2021520107.tif 000027
式中、qx’は、qxに対応する位置でのデブロッキング後のサンプル値を表す。
【００７６】
境界のP側に対するフィルタの一例は、F0P  P側フィルタと称され、以下のものである:
【数２６】
2021520107.tif 000028
【００７７】
境界のQ側に対するフィルタの一例は、F0Q  Q側フィルタと称され、以下のものである:
【数２７】
2021520107.tif 000029
【００７８】
境界のP側に対するフィルタの一例は、F1P  P側フィルタと称され、以下のものである:
【数２８】
2021520107.tif 000030
【００７９】
境界のQ側に対するフィルタの一例は、F1Q  Q側フィルタと称され、以下のものである:
【数２９】
2021520107.tif 000031
【００８０】
一実施例では、デブロックされているサンプルの、境界からの距離は、最大のタップ値が割り当てられているサポートサンプルと、デブロックされているサンプルとの間の距離に反比例し得る。更に、第2の最大タップ値の、デブロックされているサンプルからの距離は、境界からのサンプルの距離に比例し得る。以下に説明するフィルタF2P及びF2Qは、そのようなフィルタリングの例示的な実装を提供する。境界のP側に対するフィルタの一例は、F2P  P側フィルタと称され、以下のものである:
【数３０】
2021520107.tif 000032
【００８１】
境界のQ側に対するフィルタの一例は、F2Q  Q側フィルタと称され、以下のものである:
【数３１】
2021520107.tif 000033
【００８２】
境界のP側に対するフィルタの一例は、F4P  P側フィルタと称され、以下のものである:
【数３２】
2021520107.tif 000034
【００８３】
境界のQ側に対するフィルタの一例は、F4Q  Q側フィルタと称され、以下のものである:
【数３３】
2021520107.tif 000035
【００８４】
一実施例では、本明細書の技術によれば、勾配計算を、フィルタパラメータの選択、すなわちブロック境界の一方(又は両方)の側でデブロックされるサンプルの数の選択に使用してもよい。勾配は、ラインR[x]内のサンプルを使用して計算してもよい。
【００８５】
一実施例では、複数の勾配が、ラインR[x]内のサンプルを使用して計算され、これらの勾配が、フィルタパラメータの選択、すなわちブロック境界の一方(又は両方)の側でデブロックされるサンプルの数の選択に使用される。別の例では、ラインR[x]内のサンプルを使用して複数の勾配を計算してもよく、勾配の平均、最大勾配、最小勾配などの操作を、フィルタパラメータ、ブロック境界の一方(又は両方)の側でデブロックされるサンプルの数の選択に使用することができる。
【００８６】
一実施例では、関数呼び出しxCalDQp(R[x])は、以下のように勾配を計算する。
【数３４】
2021520107.tif 000036
【００８７】
一実施例では、関数呼び出しxCalDQq(R[x])は、以下のように勾配を計算する。
【数３５】
2021520107.tif 000037
【００８８】
一実施例では、関数呼び出しxCalDQpLargeBlock(R[x])は、以下のように勾配を計算する。
【数３６】
2021520107.tif 000038
【００８９】
一実施例では、関数呼び出しxCalDQqLargeBlock(R[x])は、以下のように勾配を計算する。
【数３７】
2021520107.tif 000039
【００９０】
一実施例では、関数呼び出しxCalDQpLargeBlock(R[x])は、以下のように勾配を計算する。
【数３８】
2021520107.tif 000040
【００９１】
一実施例では、関数呼び出しxCalDQqLargeBlock(R[x])は、以下のように勾配を計算する。
【数３９】
2021520107.tif 000041
【００９２】
一実施例では、関数呼び出しxCalDQpLargeBlock(R[x])は、以下のように勾配を計算する。
【数４０】
2021520107.tif 000042
【００９３】
一実施例では、関数呼び出しxCalDQqLargeBlock(R[x])は、以下のように勾配を計算する。
【数４１】
2021520107.tif 000043
【００９４】
一実施例では、関数呼び出しxCalDQpLargeBlock(R[x])は、以下のように勾配を計算する。
【数４２】
2021520107.tif 000044
【００９５】
一実施例では、関数呼び出しxCalDQqLargeBlock(R[x])は、以下のように勾配を計算する。
【数４３】
2021520107.tif 000045
【００９６】
一実施例では、関数呼び出しxCalDQpLargeBlock(R[x])は、以下のように勾配を計算する。
【数４４】
2021520107.tif 000046
【００９７】
一実施例では、関数呼び出しxCalDQqLargeBlock(R[x])は、以下のように勾配を計算する。
【数４５】
2021520107.tif 000047
【００９８】
一実施例では、関数呼び出しxCalDQpLargeBlock(R[x])は、以下のように勾配を計算する。
【数４６】
2021520107.tif 000048
【００９９】
一実施例では、関数呼び出しxCalDQqLargeBlock(R[x])は、以下のように勾配を計算する。
【数４７】
2021520107.tif 000049
【０１００】
一実施例では、p1,p2,...,p6で計算された2次差分のサブセットを使用して、XCalDQpLargeBlock(R[x])を計算してもよく、ここで、pnにおける2次差分は、abs(pn-1-2*pn+pn+1)である。同様に、q1,q2,...,q6において計算された2次差分のサブセットを使用して、xCalDQqLargeBlock(R[x])を計算してもよい。一実施例では、関数呼び出しxCalDQpLargeBlock(R[x])及びxCalDQqLargeBlock(R[x])における丸めオフセットを中止してもよい。
一実施例では、関数呼び出しxUseStrongFilteringLargeBlock(R[x0,d,bSidePisLargeBlk,bSideQisLargeBlk)は、以下のようにブール変数を計算し、決定されたbSidePisLargeBlk,bSideQisLargeBlkの例が以下に提示される。
【表１】
2021520107.tif 000050
式中、β及びtCは閾値である。
【０１０１】
一実施例では、関数呼び出しxUseStrongFilteringLargeBlock(R[x],d,bSidePisLargeBlk,bSideQisLargeBlk)は、以下のようにブール変数を計算する。
【表２】
2021520107.tif 000051
【０１０２】
一実施例では、関数呼び出しxUseStrongFilteringLargeBlock(R[x],d,bSidePisLargeBlk,bSideQisLargeBlk)は、以下のようにブール変数を計算する。
【表３】
2021520107.tif 000052
【０１０３】
一実施例では、関数呼び出しxUseStrongFilteringLargeBlock(R[x],d,bSidePisLargeBlk,bSideQisLargeBlk)は、以下のようにブール変数を計算する。
【表４】
2021520107.tif 000053
【０１０４】
一実施例では、関数呼び出しxUseStrongFilteringLargeBlockにおける丸めオフセットを中止してもよい。
【０１０５】
一実施例では、境界の一方(又は両方)の側でデブロックされるサンプルの数を選択する際に使用される条件は、ブロック境界に垂直な、閾値を超える(現在のブロック及び/又は近接するブロックの)サイズに対応する。いくつかの場合では、ブロックサイズに基づいて、ブロックの変換係数のサブセットがゼロに設定される場合、比較で使用される閾値は、ゼロ係数のサブセットの特性に基づいてもよい。例えば、32以上の列位置、及び32以上の行位置(行、列についてはインデックスは0から始まる)の係数に対して、変換係数がゼロに設定される場合、ブロック境界に垂直な方向のサイズは、閾値である32と比較される。
【０１０６】
一実施例では、サンプルのブロックについて全ての変換係数がゼロであるかどうかを示すビットストリームで、信号が受信されてもよい。このような信号は、例えば、各色成分に対して、色成分のグループに対して、サンプルのいくつかの空間的分割に対して、サンプルのいくつかの時空間分割に対して受信してもよい。HEVCでは、各色成分について、符号化ブロックフラグ(CBF)、すなわちcbf_luma、cbf_cb、cbf_crが(明示的に、又は、明示的な信号が存在しない場合は推論ルールの使用によって暗黙的に)通知され、更に、変換ツリーにおける色成分のいずれかが非ゼロ変換係数を含んでいたかどうかを示すフラグも(明示的に、及び暗黙的に)通知され、残差四分ツリールートCBF、すなわちrqt_root_cbfと称される。
【０１０７】
一実施例では、境界の一方(又は両方)の側でデブロックされるサンプルの数は、デブロックされているエッジのタイプ(例えば、垂直ブロックエッジ、水平ブロックエッジ)、チャネルタイプ(例えば、ルマ、クロマ)、境界の一方(又は両方)の側のサンプルのブロックに対して全ての変換係数がゼロであるかどうか、境界の一方(又は両方)の側のサンプルのブロックが、照度変化についての線形モデルに基づき得る局所照度補償(LIC)などの符号化モードを使用するかどうか、境界の一方(又は両方)の側のサンプルのブロックが、(線形モデルに基づき得る)成分間予測を使用するかどうか、境界の一方(又は両方)の側のサンプルのブロックが、変換よりも小さいブロックに対して決定された予測を使用するかどうか、境界の一方(又は両方)の側のサンプルのブロックが、大きなブロック(例えば、CU)がサブブロック(例えば、サブCU)に分割され、動き情報がこれらサブブロックに導出される技術を使用するかどうか、に基づいてもよい。
【０１０８】
一実施例では、本明細書の技術によれば、ブロック境界に垂直な現在のブロックのサイズが、閾値(例えば、32)以上の場合は、ブロック境界の各側で、より多数のサンプル(例えば、7)がデブロックされ、ブロック境界に垂直な現在のブロックの寸法が、閾値(例えば、32)未満の場合は、ブロック境界の各側で、より少数のサンプル(例えば、3)がデブロックされる。例えば、もし、((現在のブロックの幅>=32、かつ、エッジタイプが垂直である)、又は、(現在のブロックの高さ>=32、かつ、エッジタイプが水平である))、ならば、ブロック境界の各側において、より多数のサンプルをデブロックする。
【０１０９】
一実施例では、本
明細書の技術によれば、ブロック境界に垂直なブロックの寸法が、閾値(例えば、32)以上の場合は、ブロック境界の各側で、より多数のサンプル(例えば、7)がデブロックされ、ブロック境界に垂直なブロックの寸法が、閾値(例えば、32)未満の場合は、ブロック境界の各側で、より少数のサンプル(例えば、3)がデブロックされる。例えば、もし、((1つのブロックの幅>=32、かつ、エッジタイプが垂直である)、又は、(1つのブロックの高さ>=32、かつ、エッジタイプが水平である))、ならば、ブロック境界におけるそのブロックに対して、より多数のサンプルをデブロックする。ここで、垂直境界エッジの左側がブロックサイズ4(行)×64(列)を有し、右側がブロックサイズ4(行)×16(列)を有するならば、右側よりも左側において、より多数のサンプルがデブロックされ得る。
【０１１０】
一実施例では、本明細書の技術によれば、フィルタ部216は、デブロックされているサンプルの、境界からの距離(サンプル数で)、境界の各側のブロックサイズ、境界の強さ、境界の各側のブロックによって使用される予測モード、デブロックされているサンプルの予測モード(例えば、参照サンプルに近い境界に対して、より弱いフィルタを使用)、デブロックされているサンプルのQP(例えば、より大きいQPに対して、より強いフィルタを使用)、デブロックされているサンプルに対応するブロックサイズ(例えば、より大きなブロックサイズに対して、より強いフィルタを使用)、デブロッキングに使用されているサンプルに対応するブロックサイズ、デブロックされている境界の各側のブロックに対する動きベクトル(例えば、MV差が閾値よりも大きければ、いかなるデブロッキングも実施しない。その理由は境界の異なる側にあるサンプルは異なるオブジェクトに属する場合があるからである)、及び/又は、デブロックされているサンプルに対する動きベクトル、デブロッキングのために使用されているサンプルに対する動きベクトル、のうちの1つ以上に基づいてデブロッキングのために使用されるフィルタパラメータ(例えば、係数の数を含む)を選択するように構成してもよい。サンプルに対応するブロックサイズは、サンプルが属するCUのブロックサイズ、サンプルが属するTUのブロックサイズ、又はサンプルが属するPUのブロックサイズを含んでもよいことに留意されたい。
【０１１１】
一実施例では、本明細書の技術によれば、フィルタ部216は、デブロックされているエッジのタイプ(例えば、垂直ブロックエッジ、水平ブロックエッジ)、チャネルタイプ(例えば、ルマ、クロマ)、境界の一方(又は両方)の側のサンプルのブロックに対して全ての変換係数がゼロであるかどうか、境界の一方(又は両方)の側のサンプルのブロックが、照度変化についての線形モデルに基づき得る局所照度補償(LIC)などの符号化モードの使用するかどうか、境界の一方(又は両方)の側のサンプルのブロックが、(線形モデルに基づき得る)成分間予測を使用するかどうか、境界の一方(又は両方)の側のサンプルのブロックが、変換よりも小さいブロックに対して決定された予測を使用するかどうか、境界の一方(又は両方)の側のサンプルのブロックが、大きなブロック(例えば、CU)がサブブロック(例えば、サブCU)に分割され、動き情報がこれらサブブロックに導出される技術を使用するかどうか、のうちの1つ以上に基づいて、デブロッキングのために使用されるフィルタパラメータ(例えば、係数の数を含む)を選択するように構成してもよい。
【０１１２】
一実施例では、本明細書の技術によれば、フィルタ部216は、デブロックされているエッジのタイプ(例えば、垂直ブロックエッジ、水平ブロックエッジ)、チャネルタイプ(例えば、ルマ、クロマ)、境界の一方(又は両方)の側のサンプルのブロックに対して全ての変換係数がゼロであるかどうか、境界の一方(又は両方)の側のサンプルのブロックが、照度変化についての線形モデルに基づき得る局所照度補償(LIC)などの符号化モードの使用するかどうか、境界の一方(又は両方)の側のサンプルのブロックが、(線形モデルに基づき得る)成分間予測を使用するかどうか、境界の一方(又は両方)の側のサンプルのブロックが、変換よりも小さいブロックに対して決定された予測を使用するかどうか、境界の一方(又は両方)の側のサンプルのブロックが、大きなブロック(例えば、CU)がサブブロック(例えば、サブCU)に分割され、動き情報がこれらサブブロックに導出される技術を使用するかどうか、のうちの1つ以上に基づいて、デブロッキングのために使用されるフィルタパラメータ(例えば、係数の数を含む)を選択するように構成してもよい。
【０１１３】
一実施例では、フィルタパラメータを選択することは、より広いより強いフィルタリングを選択することを含み得る。
【０１１４】
一実施例では、本明細書の技術によれば、フィルタ部216は、ブロック境界に垂直な現在のブロックのサイズが閾値(例えば、32)以上である場合、両側に対してデブロッキングフィルタパラメータ(例えば、より強いフィルタリング)のセットを選択するように構成してもよい。例えば、もし、((現在のブロックの幅>=32、かつ、エッジタイプが垂直である)、又は、(現在のブロックの高さ>=32、かつ、エッジタイプが水平である))、ならば、ブロック境界の各側に対して、より広いより強いフィルタリングが選択される。
【０１１５】
一実施例では、本明細書の技術によれば、フィルタ部216は、ブロック境界の各側に対するフィルタパラメータを、対応する側に対する、ブロック境界に垂直なブロックのサイズに基づいて、独立して選択するように構成してもよい。例えば、一方の側のブロック境界に垂直なブロックのサイズが閾値(例えば、32)以上である場合、その側に対して、デブロッキングフィルタパラメータ(例えば、より広いより強いフィルタリング)のセットを選択することができる。例えば、もし、((1つのブロックの幅>=32、かつ、エッジタイプが垂直である)、又は、(1つのブロックの高さ>=32、かつ、エッジタイプが水平である))、ならば、そのブロックに対応するブロック境界の側に対して、より広いより強いフィルタリングが選択される。
【０１１６】
一実施例では、本明細書の技術によれば、境界の一方(又は両方)の側のブロック(例えば、CU)に対して全ての変換係数がゼロであるかどうかに基づいて、サブCU境界がデブロックされてもよい。例えば、CUに対する全ての変換係数がゼロである場合には、サブCU境界をデブロックする。
【０１１７】
一実施例では、本明細書の技術によれば、境界の一方(又は両方)の側のブロックに対して全ての変換係数がゼロであるかどうかに基づいて、サブブロック境界がデブロックされてもよい。例えば、ブロックに対する全ての変換係数がゼロである場合には、サブブロック境界をデブロックする。
【０１１８】
一実施例では、本明細書の技術によれば、境界の一方(又は両方)の側のブロック(例えば、CU)に対して全ての変換係数がゼロであるか、及び量子化ステップサイズは大きい(例えば、QPが閾値以上である)かどうかに基づいて、サブCU境界がデブロックされてもよい。例えば、CUに対する全ての変換係数がゼロであり、かつQPが閾値よりも大きい場合には、サブCU境界をデブロックする。
【０１１９】
一実施例では、本明細書の技術によれば、境界の一方(又は両方)の側のブロックに対して全ての変換係数がゼロであるか、及び量子化ステップサイズは大きい(例えば、QPが閾値以上である)かどうかに基づいて、サブブロック境界がデブロックされてもよい。例えば、ブロックに対する全ての変換係数がゼロであり、かつQPが閾値よりも大きい場合には、サブブロック境界をデブロックする。
【０１２０】
一実施例では、本明細書の技術によれば、局所照度補償(LIC)が境界の一方(又は両方)の側のブロックに対して使用され、かつそのブロックに対する全ての変換係数がゼロである場合には、ブロック境界がデブロックされてもよい。
【０１２１】
一実施例では、本明細書の技術によれば、ブロックの4つの境界全て(すなわち、左、右、上部、下部)は、局所照度補償(LIC)がブロックに対して使用され、かつそのブロックに対する全ての変換係数がゼロである場合には、ブロック境界がデブロックされてもよい。
【０１２２】
一実施例では、本明細書の技術によれば、局所照度補償(LIC)が境界の一方(又は両方)の側のブロックに対して使用され、そのブロックに対する全ての変換係数がゼロであり、量子化ステップサイズが大きい(例えば、QPが閾値以上である)場合には、ブロック境界がデブロックされてもよい。
【０１２３】
一実施例では、本明細書の技術によれば、ブロックの全ての4つの境界(すなわち、左、右、上部、下部)は、局所照度補償(LIC)がブロックに対して使用され、そのブロックに対する全ての変換係数がゼロであり、量子化ステップサイズが大きい(例えば、QPが閾値以上である)場合には、ブロック境界がデブロックされてもよい。
【０１２４】
一実施例では、本明細書の技術によれば、成分間予測が境界の一方(又は両方)の側のブロックに対して使用され、かつそのブロックに対する全ての変換係数がゼロである場合には、ブロック境界がデブロックされてもよい。
【０１２５】
一実施例では、本明細書の技術によれば、成分間予測が境界の一方(又は両方)の側のブロックに対して使用され、そのブロックに対する全ての変換係数がゼロであり、量子化ステップサイズが大きい(例えば、QPが閾値以上である)場合には、ブロック境界がデブロックされてもよい。
【０１２６】
一実施例では、本明細書の技術によれば、フィルタ部216は、複数のフィルタリングパスに従ってデブロッキングを実行するように構成されてもよい。一実施例では、フィルタリングパスは、デブロックされるサンプルの全て/サブセットの処理/構築に対応し得る。所与のパスにおける各サンプルの処理/構築の数は、パスインデックス/順序に対応し得る。デブロックされるサンプルのサブセットは、パスインデックス/順序に対応し得る。一実施例では、あらゆるパスは、厳密に1回だけデブロックされる全てのサンプルの処理/構築に対応し得る。そのような場合の一実施例では、以前の反復からのデブロックされたサンプル(並びにデブロックされていないサンプル)を使用して、現在の反復のためのデブロックされたサンプルを構築することができる。そのような場合の一実施例では、以前及び現在の反復からのデブロックされたサンプル(並びにデブロックされていないサンプル)を使用して、デブロックされたサンプルを構築することができる。この場合、デブロックされたサンプルを構築するための順序付けが指定されてもよい。一実施例では、反復の数は、スライスタイプ、ブロックサイズ、現在のCU及びその近接するCUのスキップフラグ、現在のCU及びその近接するCUの予測モード(Intra＼inter)、デブロックされるサンプル位置、d<βであるかどうか、及び/又は上述のJEMにおいて提供された強い又は弱いフィルタ判定条件、デブロックされているサンプルの境界からの距離(サンプルの数で)、境界の各側のブロックサイズ、境界の強さ、境界の各側のブロックによって使用される予測モード、デブロックされているサンプルの予測モード、デブロックされているサンプルのQP、デブロックされているサンプルに対応するサンプルブロックサイズ、デブロッキングのために使用されているサンプルに対応するブロックサイズ、デブロックされている境界の各側のブロックに対する動きベクトル、デブロックされているサンプルに対する動きベクトル、及び/又はデブロッキングのために使用されるサンプルに対する動きベクトル、のうちの1つ以上に基づいて決定されてもよい。一実施例では、反復数は、1つ以上のフィルタパラメータを決定することができる。
【０１２７】
一実施例では、所定のデブロッキングサポートによるNパスデブロッキングは、以下のように表され得る。
【表５】
2021520107.tif 000054
【０１２８】
式中、f_pos()は、以下の形の線形変換である。
【数４８】
2021520107.tif 000055
Coeff_pos[]は、デブロックされているサンプルの位置posに依存する値の配列である。使用されるsampleValue[]の各々は、以前の反復においてデブロッキングを使用して生成され得ることに留意されたい。また、デブロッキングサポートは、反復毎に変化することはない。
反復毎の分析を実行することにより、以下が得られる。
iterldx  0については、使用されるサンプルは、デブロックされないサンプルなので、各posに対して、
【数４９】
2021520107.tif 000056
Iterldx  1については、
【数５０】
2021520107.tif 000057
F_pos()は線形変換であり、デブロッキングサポートは変化しないので、上記は以下のように書き換えることができる。
Iterldx  1については、
【数５１】
2021520107.tif 000058
式中、g_pos()は、位置posに依存するが、異なる係数値を有するf_pos()と同様の線形変換である。
この単純化は、反復毎に再帰的に実行することができ、その結果、反復0における元のサンプル値のみに依存するフィルタリング操作になり、等価な単一パスにつながる。いくつかの場合で使用される有限の精度により、最終係数値は近似される場合があり、それにより、マルチパスフィルタリング操作の近似的なシングルパス表現につながる。
【０１２９】
一実施例では、本明細書の技術によれば、フィルタ部216は、フィルタライン及び対応するフィルタ係数を延ばすように構成され得る。一実施例では、フィルタリングされるサンプルラインは、一方の側で8まで延ばすことができる。一実施例では、ライン0及びライン1に関して、フィルタ係数は、{1,1,1,1,1,2,2,2,1,1,1,1,1}/16であってもよく、ライン2及びライン3については、フィルタ係数は{1,1,1,1,1,1,1,1}/8であってもよく、他のラインのフィルタ係数は{1,2,2,2,1}/8であってもよく、ここでライン0は境界に最も近いサンプルラインを示す。
【０１３０】
JEMでは、復元されたサンプルは、デブロッキングプロセスにおいてサンプルをフィルタリングするために常に使用されることに留意されたい。一実施例では、本明細書の技術によれば、フィルタ部216は、他のサンプル値をフィルタリングするためのデブロッキングの結果として得られる変更されたサンプル値を使用するように構成されてもよい。一実施例では、変更されたサンプル値は、他のサンプル値をフィルタリングするときに入力として使用されてもよい。一実施例では、フィルタリングの順序が指定されてもよい。一実施例では、フィルタ順序は、境界から最も遠いラインから、最も近いラインまでデブロッキングを実施してもよい。
【０１３１】
上述したように、デブロックされたサンプルは、典型的には、ある値の範囲内に存在するようにクリッピングされる。値の範囲は、元のサンプル値、及びビットストリームで受信された他のパラメータに基づいてもよい。一実施例では、値の範囲は、[元のサンプル値-t_c、元のサンプル値+t_c]である。一実施例では、本明細書の技術によれば、フィルタ部216は、複数パスデブロッキングにおける最後の1回以上のラウンドにおけるサンプル値、QP値、スライスタイプ、現在の予測モード(Intra/Inter)、現在のスキップフラグ値、デブロックされるサンプルのイントラ予測モード、デブロックされるサンプルの動きベクトル、サンプル位置(例えば、異なるサンプルが異なるクリッピング機能を使用し得る)、CU位置(例えば、異なるCUが異なるクリッピング機能を使用し得る)、及び/又は上記の他の条件のいずれか、のうちの1つ以上に基づいてクリッピング機能を調整するように構成されてもよい。
【０１３２】
一実施例では、本明細書の技術によれば、フィルタ部216は、ブロックサイズに基づいて、本明細書に記載されるフィルタリング技術を実行するように構成され得る。例えば、本明細書に記載されるフィルタリング技術のうちの1つ以上は、境界に適用されてもよく、境界の周りのブロックサイズは閾値よりも大きい。例えば、フィルタリング技術を実行するかどうかの判定は、以下の通りであってもよい。(1)4×4個のサンプルの各セットを境界の各側についてチェックする(すなわち、最小CUサイズが4×4のルマサンプルであるため);(2)もし、4×4個のサンプルのいずれか1つのセットが閾値(例えば、64)より大きいサイズのCUに属するならば、フィルタリング技術は、現在の境界で実行されることになる。一実施例では、本明細書の技術によれば、フィルタ部216は、スライスタイプ、ブロック形状が矩形であるかどうか、ブロック形状が正方形である場合、現在のCU及びその近接するCUのスキップフラグ、現在のCU及びその近接するCUの予測モード(Intra＼inter)、デブロックされるサンプル位置、のうちの1つ以上に基づいて本明細書に記載されるフィルタリング技術を実行するように構成されてもよい。
【０１３３】
一実施例では、本明細書の技術によれば、フィルタ部216は、より広い-より強いルマフィルタリングを以下のように実行するように構成されてもよい。
最初に、P側が以下のように大きなブロックを使用するかどうかを判定する:
【表６】
2021520107.tif 000059
次に、Q側が以下のように大きなブロックを使用するかどうかを判定する:
【表７】
2021520107.tif 000060
次に、以下の変数を導出する。
【数５２】
2021520107.tif 000061
次に、Condition1及びCondition2を以下のように評価する。
【表８】
2021520107.tif 000062
【０１３４】
Condition1、Condition2、及びbSidePisLargeBlkが真である場合、より広い-より強いフィルタが境界のP側に適用される(例えば、WS00P)。
【０１３５】
Condition1、Condition2、及びbSideQisLargeBlkが真である場合、より広い-より強いフィルタが境界のQ側に適用される(例えば、WS00Q)。
【０１３６】
一実施例では、Condition2は、以下のように変更されてもよい。
【表９】
2021520107.tif 000063
【０１３７】
一実施例では、本明細書の技術によれば、フィルタ部216は、クロマフィルタリングを以下のように実行するように構成されてもよい。
(エッジタイプが垂直であり、幅>=32であるCUにp0が属する)||(エッジタイプが水平であり、高さ>=32であるCUにp0が属する)  &&  (エッジタイプが垂直であり、幅>=32であるCUにq0が属する)||(エッジタイプが水平であり、高さ>=32であるCUにq0が属する)、である場合、狭い強いフィルタ(例えば、NS00P及びNS00Q)を使用することができ、それ以外の場合には、狭い弱いフィルタ(例えば、NW00P及びNW00Q)を使用することができる。
【０１３８】
一実施例では、本明細書の技術によれば、フィルタ部216は、クロマフィルタリングを以下のように実行するように構成されてもよい。
(幅>=32であるCUにp0が属する)||(高さ>=32であるCUにp0が属する)  &&  (幅>=32であるCUにq0が属する)||(高さ>=32であるCUにq0が属する)、である場合、狭い強いフィルタ(例えば、NS00P及びNS00Q)を使用することができ、それ以外の場合には、狭い弱いフィルタ(例えば、NW00P及びNW00Q)を使用することができる。
【０１３９】
一実施例では、本明細書の技術によれば、フィルタ部216は、図10に示す例示的フローチャートに従ってデブロックフィルタリングを実行するように構成されてもよい。一実施例では、フィルタ部216は、ルマサンプルについて、図10に示すフローチャートに従ってデブロックフィルタリングを実行するように構成されてもよい。図10は、現在のブロック(例えば、Pブロック又はQブロックのうちの1つ)について、デブロッキングのタイプ、すなわち、広くより強いフィルタ、強いフィルタ、弱いフィルタ、及びフィルタリングなし、のうちの1つが適用され得る例を示す。一実施例では、広くより強いフィルタを適用することは、上述のWS00P及びWS00Qフィルタを適用することを含み得る。一実施例では、強いフィルタを適用することは、上述のHEVC_P及びHEVC_Qフィルタを適用することを含み得る。一実施例では、弱いフィルタを適用することは、弱いフィルタとして上述した、HEVCにおける弱いフィルタを適用することを含み得る。図10に示すように、402において大きいブロック条件が真であるか、404において大きいブロック勾配条件が真であるか、406において大きいブロック強いフィルタ条件が真であるか、410において勾配条件が真であるか、及び414において強いフィルタ条件が真であるか、に基づき、408においてより広いフィルタが適用され、412においてフィルタが適用されず、416において強いフィルタが適用され、418において弱いフィルタが適用される。
【０１４０】
一実施例では、大きいブロック条件は、以下が真であるかどうかを含み得る。
【表１０】
2021520107.tif 000064
式中、
EDGE_VERは、垂直境界タイプであり、
EDGE_HORは、水平境界タイプであり、
cur_block_widthは、例えば、ルマサンプルにおける現在のブロック幅であり、
cur_block_heightは、例えば、ルマサンプルにおける現在のブロック高さであり、
adjacent_block_widthは、例えば、ルマサンプルにおける隣接するブロック幅であり、
adjacent_block_heightは、例えば、ルマサンプルにおける隣接するブロック高さである。
【０１４１】
一実施例では、大きいブロック勾配条件は、上述のCondition1が真であるかどうかを含み得る。一実施例では、大きいブロック強いフィルタ条件は、上述の例示的Condition2のうちの1つが真であるかどうかを含み得る。
【０１４２】
一実施例では、勾配条件は、d<βであるかどうかを含んでもよく、ここでdは以下のように決定される。
【数５３】
2021520107.tif 000065
【０１４３】
一実施例では、強いフィルタ条件は、以下が真であるかどうかを含み得る。
【表１１】
2021520107.tif 000066
一実施例では、本明細書の技術によれば、フィルタ部216は、図11に示す例示的フローチャートに従ってデブロックフィルタリングを実行するように構成されてもよい。一実施例では、フィルタ部216は、クロマサンプルについて、図11に示すフローチャートに従ってデブロックフィルタリングを実行するように構成されてもよい。図11は、現在のブロック(例えば、Pブロック又はQブロック)について、デブロッキングのタイプ、すなわち、広くより強いフィルタ、又は弱いフィルタ、のうちの1つが適用され得る例を示す。一実施例では、広くより強いフィルタを適用することは、上述のNS00P及びNS00Qフィルタを適用することを含み得る。一実施例では、弱いフィルタを適用することは、上述のNW00P及びNW00Qフィルタを適用することを含み得る。図11に示すように、502において大きいブロック条件が真であるかどうかに基づいて、504においてより広くより強いフィルタが適用され、506において弱いフィルタが適用される。
【０１４４】
一実施例では、大きいブロック条件は、以下が真であるかどうかを含み得る。
【表１２】
2021520107.tif 000067
式中、
EDGE_VERは垂直境界タイプであり、EDGE_HORは水平境界タイプであり、cur_block_widthは、例えばクロマサンプルにおける現在のブロック幅であり、cur_block_heightは、例えばクロマサンプルにおける現在のブロック高さであり、adjacent_block_widthは、例えばクロマサンプルにおける隣接ブロック幅であり、adjacent_block_heightは、例えばクロマサンプルにおける隣接ブロック高さである。
【０１４５】
一実施例では、フィルタ部216は、以下の条件セットに基づいて、Pブロック又はQブロックのクロマサンプルのためのデブロックフィルタリングを実行するように構成されてもよい。
【表１３】
2021520107.tif 000068
【０１４６】
【表１４】
2021520107.tif 000069
【０１４７】
式中、
EDGE_VERは、垂直境界タイプであり、
EDGE_HORは、水平境界タイプであり、
cur_Q_block_widthは、例えば、クロマサンプルにおける現在のQブロック幅であり、
cur_Q_block_heightは、例えば、クロマサンプルにおける現在のQブロック高さであり、
cur_P_block_widthは、例えば、クロマサンプルにおける現在のPブロック幅であり、
cur_P_block_heightは、例えば、クロマサンプルにおける現在のPブロック高さであり、
TH_wは、幅閾値(例えば、32サンプル)であり、
TH_hは、高さ閾値(例えば、32サンプル)である。
【０１４８】
閾値(例えば、TH_w及び/又はTH_h)は、いくつかの実施例では、既定値(例えば、16又は32)を含んでもよく、いくつかの実施例では、パラメータセットで通知されてもよく、いくつかの実施例では、スライスヘッダにおいて通知してもよく、そして、いくつかの実施例では、ビデオの現在の部分におけるCTUサイズであってもよいことに留意されたい。
【０１４９】
図11を参照して、一実施例では、大きなブロック条件は、ルマフィルタ条件で置き換えられてもよい。すなわち、例えば、もし、強いフィルタがルマブロックに適用されるならば、504において、広くより強いフィルタがコロケートクロマブロックに適用されてもよく、そうでなければ、506において、弱いフィルタがコロケートクロマブロックに適用されてもよい。
【０１５０】
一実施例では、本明細書の技術によれば、フィルタ部216は、図12に示す例示的フローチャートに従ってデブロックフィルタリングを実行するように構成されてもよい。一実施例では、フィルタ部216は、クロマサンプルについて、図12に示すフローチャートに従ってデブロックフィルタリングを実行するように構成されてもよい。図12は、現在のブロック(例えば、Pブロック又はQブロック)について、デブロッキングのタイプ、すなわち、広くより強いフィルタ、又は弱いフィルタ、のうちの1つが適用され得る例を示す。一実施例では、広くより強いフィルタを適用することは、上述のNS00P及びNSOOQフィルタを適用することを含み得る。一実施例では、弱いフィルタを適用することは、上述のNW00P及びNW00Qフィルタを適用することを含み得る。図12に示すように、602において大きいブロック条件が真であるかどうか、及び604において大きなブロック強いフィルタ条件が真であるかどうかに基づいて、608においてより広くより強いフィルタが適用され、606において弱いフィルタが適用される。
【０１５１】
一実施例では、大きいブロック条件は、以下が真であるかどうかを含み得る。
【表１５】
2021520107.tif 000070
式中、
EDGE_VERは、垂直境界タイプであり、
EDGE_HORは、水平境界タイプであり、
cur_block_widthは、例えば、クロマサンプルにおける現在のブロック幅であり、
cur_block_heightは、例えば、クロマサンプルにおける現在のブロック高さであり、
adjacent_block_widthは、例えば、クロマサンプルにおける隣接するブロック幅であり、
adjacent_block_heightは、例えば、クロマサンプルにおける隣接するブロック高さである。
TH_wは、幅閾値(例えば、32サンプル)であり、
TH_hは、高さ閾値(例えば、32サンプル)である。
【０１５２】
閾値(例えば、TH_w及び/又はTH_h)は、いくつかの実施例では、既定値(例えば、16又は32)を含んでもよく、いくつかの実施例では、パラメータセットで通知されてもよく、いくつかの実施例では、スライスヘッダにおいて通知してもよく、そして、いくつかの実施例では、ビデオの現在の部分におけるCTUサイズであってもよいことに留意されたい。一実施例では、閾値は4よりも大きい。
【０１５３】
一実施例では、より広い強いフィルタ条件は、第1の条件及び第2の条件の両方が真であるかどうかを含んでもよい。すなわち、第1の条件及び第2の条件の両方が真である場合、強いフィルタ条件が真になり得る。一実施例では、d<βであるときに第1の条件が真であってもよく、dは以下のように決定される。
【数５４】
2021520107.tif 000071
式中、
RC[N]は、デブロックされているエッジに垂直であって、デブロックされている現在のクロマセグメントの頂部から距離Nにあるクロマラインに対応する。
【０１５４】
一実施例では、Rc[0]及びRc[1]について、
【数５５】
2021520107.tif 000072
が真のときに、第2の条件が真であり得る。
【０１５５】
一実施例では、Rc[0]について、
【数５６】
2021520107.tif 000073
が真の場合に、第2の条件が真であり得る。
【０１５６】
一実施例では、エッジはセグメントとしてデブロックされ、セグメント長さは、CU/TU/PU/subPUに対して許容される最小サイズの関数であり得ることに留意されたい。更に、2xN及びNx2  CUがクロマチャネル内で許容される最短かつ最薄のブロックである場合、クロマセグメント長は2であってもよい。
【０１５７】
上記のクロマフィルタリングによれば、デブロックされるエッジに垂直な2つのラインが、基本セグメントとして処理されることに留意されたい。一実施例では、4つのラインが基本セグメントとして処理されてもよい。一実施例では、4つのラインが基本セグメントとして処理される場合、d<βであるときに第1の条件が真であってもよく、dは以下のように決定される。
【数５７】
2021520107.tif 000074
【０１５８】
更に、一実施例では、4つのラインが基本セグメントとして処理される場合、Rc[0]及びRc[3]について
((abs(p3-p0)+abs(q3-q0)<(β>3))  &&  (d<(β>>2))  &&  (abs(q0-p0)<((tC*5+1)>>1)))
が真の場合に、第2の条件が真であり得る。
【０１５９】
上述したように、ITU-T  H.265では、デブロッキングフィルタは、スライス及びタイル境界と一致しないCTU境界と比較して、スライス及びタイル境界と一致するCTU境界に異なる方法で適用されてもよい。具体的には、ITU-T  H.265では、slice_loop_filter_across_slices_enabled_flagは、上部スライス境界及び左スライス境界と一致するCTU境界を越えるデブロッキングフィルタを有効化/無効化する。一実施例では、本明細書の技術によれば、デブロッキングフィルタのサポートサンプルが境界(例えば、ピクチャ/スライス/タイル)を越える場合、サポートサンプルを使用するデブロッキングフィルタが許容されない場合がある。一実施例では、本明細書の技術によれば、デブロッキングフィルタのサポートサンプルが境界(例えば、ピクチャ/スライス/タイル)を越え、境界(例えば、スライス)を越えるサンプル値の使用が無効化された場合、パディング操作を使用してサポートサンプル値が生成されてもよい。例えば、サポートサンプルを生成するために、数値スカラー、円形、複製、又は対称のパディングのうちの1つを使用してもよく、数値スカラーパディング操作は一定値に従ってパディングし、円形パディング操作はサンプル値の円形の繰り返しでパディングし、複製パディング操作は辺縁サンプル値を繰り返すことによりパディングし、対称パディング操作はサンプル値のミラー反射でパディングする。
【０１６０】
上述したように、ITU-T  H.265では、フィルタリングされた値は、値tCに基づいてクリッピングされる。具体的には、上述のITU-T  H.265における強いフィルタについては、pi’値が(pi-2*tC,pi+2*tC)にクリッピングされ、qi’値が(qi-2*tC,qi+2*tC)にクリッピングされる。上述したように、ITU-T  H.265では、変数tC’(したがって、tCの値)は、qPLに基づいて決定されるインデックスQに基づいて決定され、これは(QPq+QPP+1)/2に等しい。ビデオ符号化のいくつかの場合(例えば、高ダイナミックレンジ(HDR)ビデオを符号化するための提案された技術)では、QPの値は、CUレベル又はCTUレベルで変えられてもよい。この場合、インデックスQに基づいてITU-T  H.265において提供されるクリッピング操作の範囲は不十分な場合がある。一実施例では、本明細書の技術によれば、P側サンプル及びQ側サンプルについて異なる値のtC’が決定されてもよい。すなわち、P側tC’値、すなわちtCP’、及び対応するP側tC値、すなわちtCp’を使用して、pi’値、及びQ側tC’値、すなわちtCQ’、をクリッピングしてもよく、対応するQ側tC値、すなわちtCQを使用して、qi’値をクリッピングしてもよい。一実施例では、対応するP側インデックスQ、すなわちQp、及びQ側インデックスQ、すなわちQqは、上記のQインデックスの式において、qPLをQPP及びQPqに対応する値に置換することによって決定されてもよい。したがって、本明細書の技術によれば、pi’値が(pi-2*tCP,pi+2*tCP)にクリッピングされてもよく、qi’値が(qi-2*tCQ,qi+2*tCQ)にクリッピングされてもよい。pi’値及びqi’値は、本明細書に記載される任意のフィルタに従って生成されたフィルタリングされた値を含んでもよいことに留意されたい。したがって、対応するtCP及びtCQに基づいてpi’値及びqi’値をクリッピングする技術は、本明細書に記載される任意のフィルタに適用可能であり得る。
【０１６１】
いくつかの場合では、ビデオブロック(例えば、CU)は内部TU境界を含んでもよく、ブロック歪がビデオブロック内に現れ得ることに留意されたい。いくつかの場合では、ビデオブロックが64よりも大きいサイズを有する場合、内部TU境界のデブロッキングが無効化されてもよい。一実施例では、本明細書の技術によれば、ビデオブロックが64より大きいサイズを有する場合であっても、デブロッキングが、ビデオブロック境界に沿って、また任意の内部TU境界に沿って実行されてもよい。
【０１６２】
図5A〜図5Bを参照すると、場合によっては、Pブロック又はQブロックは、複数のオブジェクトを含んでもよい。例えば、図5Aを参照すると、一実施例では、列p7〜p3は、第1のオブジェクトに対応してもよく、列p2〜p0は、第2のオブジェクトに対応してもよく、列q0〜q7は、第3のオブジェクトに対応してもよい。そのような場合、列p2〜p0のサンプルが、サポートサンプルとしてのp3及びq0〜q3の1つ以上の列のサンプルを使用してフィルタリングされた場合、結果として得られる列p2〜p0のフィルタサンプル値は、ぼやけて見える場合がある。更に、いくつかの場合では、デブロッキングは、優勢なサンプル値の不鮮明化をもたらし、及び/又は他の視覚的歪を導入する場合がある。
【０１６３】
上述したように、対応するデブロックされたサンプル値、サポートサンプルを有するy[n]は、以下の式に基づいて指定され得る。
【数５８】
2021520107.tif 000075
式中、
フィルタ長は、abs(a-b+1)として決定され、
coeff[m]は、フィルタタップ値(フィルタ係数とも称される)を提供し、
x[n+m]は、サポートサンプルに対応する入力サンプル値を提供する。
【０１６４】
一実施例では、本明細書の技術によれば、フィルタリングされたサンプル及びサポートサンプルに含まれる別個のオブジェクトによって引き起こされるぼやけ又は歪を回避するために、1つ以上のクリッピング操作を項x[n+m]に適用してもよい。一実施例では、項x[n+m]は、Clip3(x[n]-2*tC,x[n]+2*tC,x[n+m])で置き換えられてもよい。
【０１６５】
一実施例では、abs(x[n+m]-x[n])が閾値よりも大きければ、サポートサンプルx[n+m]が合計から除外されるように、項x[n+m]が変更されてもよい。Coeff[m]が平均分布に相当する場合(すなわち、coeff[m]=1/フィルタ長、フィルタ長は(abs(a-b+1))である)場合、coeff[m]は、1/(フィルタ長-除外サンプル)として算出されることに留意されたい。Coeff[m]がガウス分布に対応する場合(すなわち、
【数５９】
2021520107.tif 000076
であり、フィルタ長はabs(a-b+1)に等しい))には留意されたい。一実施例では、あらゆるサホ゜ートサンフ゜ルx[n+m]に対して、abs(x[n+m]-x[n])が閾値よりも大きいことが満足されるときに、サポートサンプルx[n+m]の値が[n]の値で置換されるように、項x[n+m]が変更され得る。閾値は、既定値(例えば、2又は4)、パラメータセット内で通知された値、スライスヘッダ内で通知された値、QP値に基づく値(例えば、現在のサンプル及び/又はサポートサンプルのQP値)、及び/又は予測情報(例えば、現在のサンプル及び/又はサポートサンプルの、イントラ予測モード及び/又は動き情報)に基づく値、のうちの1つ以上の組み合わせに基づいてもよいことに留意されたい。
【０１６６】
一実施例では、境界に対して異なるサンプル位置に異なるフィルタが適用されてもよい。例えば、境界に近いサンプルは、強いフィルタを使用してフィルタリングされてもよく、境界から遠いサンプルは、弱いフィルタを使用したフィルタであってもよい。例えば、列p0〜p1のサンプルは、強いフィルタに従ってフィルタリングされてもよく、列p2〜p4のサンプルは、弱いフィルタに従ってフィルタリングされてもよい。一実施例では、クロマデブロッキング(又はルマデブロッキング)について、現在のサンプルと、境界に最も近いサンプルとの間の位置距離が、閾値よりも小さければ、強いフィルタが適用されるように、閾値(例えば、2、3、4)が使用されてもよい。一実施例では、閾値は、境界の各側(一方又は両方)のブロックサイズ、境界の強さ、境界の各側のブロックによって使用される予測モード、デブロックされているサンプルの予測モード、デブロックされているサンプルのQP、デブロックされているサンプルに対応するブロックサイズ、デブロッキングに使用されているサンプルに対応するブロックサイズ、デブロックされている境界の各側のブロックに対する動きベクトル、デブロックされているサンプルに対する動きベクトル、及び/又は、デブロッキングのために使用されているサンプルに対する動きベクトル、のうちの1つ以上に基づいてもよい。
【０１６７】
ビデオ符号化のいくつかの場合では、CUに対応するルミナンス変換係数(例えば、量子化後)は0であってもよく、CUは、動き補償(例えば、ATMVP)のためにサブPUに分割されてもよいことに留意されたい。そのような場合、本明細書の技術によれば、ルミナンスデブロッキングは、サブPU境界に沿って、更に、いくつかの実施例ではCU境界に沿って実行されてもよい。
【０１６８】
ビデオ符号化のいくつかの場合では、CUに対応するクロミナンス変換係数(例えば、量子化後)は0であってもよく、CUは、動き補償(例えば、ATMVP)のためにサブPUに分割されてもよいことに留意されたい。そのような場合、本明細書の技術によれば、クロミナンスデブロッキングは、サブPU境界に沿って、更に、いくつかの実施例ではCU境界に沿って実行されてもよい。
【０１６９】
上述したように、ITU-T  H.265では、ルマについては、Bs、tC、β、及びdのそれぞれを使用して、どのフィルタタイプを適用するか(例えば、強いフィルタ又は弱いフィルタ)を判定する。特に、dがβ未満であれば、可変のdStrongは、以下のように決定される。
d_strong=abs(p3-p0)+abs(q0-q3)
強いフィルタが適用されるか、又は弱いフィルタが適用されるかは、d_strongの値に基づいて以下のように決定される。
【表１６】
2021520107.tif 000077
【０１７０】
一実施例では、本明細書の技術によれば、dStrongは、以下のように決定され得る。
【数６０】
2021520107.tif 000078
JEMにおけるデブロッキングフィルタの実現に関して、以下の条件のうちの1つが有効である場合、以下に示すように、ルマデブロッキングを並行して行うことができない。すなわち、例えば、デブロッキングが、ブロックの左と右の垂直境界の両方において、又はブロックの頂部と底部の水平境界の両方において、並列に実行されない場合がある。すなわち、1つの境界に対するフィルタリングプロセスが、別の境界に対するフィルタリングプロセスによってデブロックされたサンプルを伴う場合があるので、2つのブロック境界に対して並列にデブロッキングを実行することはできない。したがって、ブロックの中心にあるサンプルは、対応するエッジの各々における両方のデブロッキングフィルタによってカバーされ得る。
【０１７１】
もし、(Cur_EDGE_VER  &&  cur_block_width==4)、ならば、現在のブロックの垂直境界の並列デブロッキングは実行されない;
もし、(Cur_EDGE_VER  &&  adjacent_block_width==4)、ならば、隣接するブロックの垂直境界の並列デブロッキングは実行されない;
もし、(Cur_EDGE_HOR  &&  cur_block_height==4)、ならば、現在のブロックの水平境界の並列デブロッキングは実行されない;
もし、(Cur_EDGE_HOR  &&  adjacent_block_width==4)、ならば、隣接するブロックの水平境界の並列デブロッキングは実行されない。
式中、
Cur_EDGE_VERは現在の垂直境界であり、Cur_EDGE_HORは現在の水平境界であり、cur_block_widthは例えばルマサンプルにおける現在のブロック幅であり、cur_block_heightは例えばルマサンプルにおける現在のブロック高さであり、adjacent_block_widthは、例えばルマサンプルにおける隣接するブロック幅であり、adjacent_block_heightは例えばルマサンプルにおける隣接するブロック高さである。
【０１７２】
一実施例では、本明細書の技術によれば、上記の条件のそれぞれについて、境界においてルマサンプルに対してデブロッキングが以下のように実行され得る。
もし、(Cur_EDGE_VER  &&  cur_block_width==4  &&  adjacent_block_width>4)、ならば、Cur_EDGE_VERに対して、隣接するブロックサンプルにのみデブロッキングを実行する;
もし、(Cur_EDGE_VER  &&  cur_block_width==4  &&  adjacent_block_width==4)、ならば、Cur_EDGE_VERに対して、デブロッキングを実行しない;
もし、(Cur_EDGE_VER  &&  cur_block_width>4  &&  adjacent_block_width==4)、ならば、Cur_EDGE_VERに対して、現在のブロックサンプルにのみデブロッキングを実行する;
もし、(Cur_EDGE_VER  &&  cur_block_width>4  &&  adjacent_block_width>4)、ならば、Cur_EDGE_VERに対して、現在のブロックサンプル及び隣接するブロックサンプルにデブロッキングを実行する;
もし、(Cur_EDGE_HOR  &&  cur_block_height==4  &&  adjacent_block_height>4)、ならば、Cur_EDGE_HORに対して、隣接するブロックサンプルにのみデブロッキングを実行する;
もし、(Cur_EDGE_HOR  &&  cur_block_height==4  &&  adjacent_block_height==4)、ならば、Cur_EDGE_HORに対して、デブロッキングを実行しない;
もし、(Cur_EDGE_HOR  &&  cur_block_height==4  &&  adjacent_block_height==4)、ならば、Cur_EDGE_HORに対して、現在のブロックサンプルにのみデブロッキングを実行する;
もし、(Cur_EDGE_HOR  &&  cur_block_height>4  &&  adjacent_block_height>4)、ならば、Cur_EDGE_HORに対して、現在のブロックサンプル及び隣接するブロックサンプルにデブロッキングを実行する。
【０１７３】
上記したことと同様に、クロマデブロッキングのために、cur_block_height、adjacent_block_height、cur_block_width、adjacent_block_width、のそれぞれのブロックが閾値2に等しい場合に、並列デブロッキングが制限される場合が生じる。したがって、本明細書の技術によれば、クロマサンプルについては、条件文において閾値4が閾値2に置き換えられる場所で、上述したようにデブロッキングが実行されてもよい。
【０１７４】
一実施例では、本明細書の技術によれば、閾値以下のサイズを有するブロックのエッジに対してデブロッキングを実行しない代わりに、エッジにあるサンプルに、より狭いフィルタが適用されてもよい。例えば、(Cur_EDGE_VER  &&  cur_block_width==4  &&  adjacent_block_width>4)、である場合は、デブロッキングを以下のように実行してもよい。
Cur_EDGE_VERに対して、隣接するブロックサンプルにフィルタ幅に従ってデブロッキングを実行し、現在のブロックに対してCur_EDGE_VERにおける1つの隣接するサンプルの列上でデブロッキングを実行する。
【０１７５】
同様に、上述した各ケースについて、エッジにあるサンプルに対して、より狭いフィルタが適用されてもよい。したがって、一般に、本明細書の技術によれば、ビデオエンコーダ(及び/又はビデオデコーダ)は、例えば、重なり合うデブロッキングフィルタ(例えば、フィルタ幅がブロックの幅(又は高さ)の半分よりも大きい)に起因して、いつ並列デブロッキングが制限されるかを判定し、そうでなければデブロックされるであろうサンプルを変更するように構成されてもよい。いくつかの場合では、デブロッキングサポートのために使用されるサンプルに基づいて、並列デブロッキングが制限され得ることに留意されたい。本明細書の技術によれば、ビデオエンコーダ(及び/又はビデオデコーダ)は、複数のデブロッキングフィルタに対してデブロッキングサポートのために使用されているブロック内のサンプルに、いつ並列デブロッキングが制限されるかを判定するように構成されてもよい。
【０１７６】
上述したように、F4P  P側フィルタについては、計算のうちの1つが以下を含む。
【数６１】
2021520107.tif 000079
【０１７７】
q側がサイズ8であり、現在のエッジとは反対側のエッジに強いHEVCフィルタを使用するならば、サンプルq5及びq6は、反対側に対する強いHEVCデブロッキング操作によって変更され得ることに留意されたい。並列処理は、互いに平行なデブロッキングエッジでは生じ得ない。一実施例では、これを防止するために、(エッジに対して垂直な)q側の長さが16以上である場合にのみ、p側は長いフィルタ(すなわち、より強いフィルタ)を使用すべきである。この条件(例えば、LargeBlk条件)は、以下の方法のうちの1つでチェックされる。
【表１７】
2021520107.tif 000080
又は
【表１８】
2021520107.tif 000081
両方のブロックサイズ長さが同じである場合は、両方とも32以上であることが必要であることに留意されたい。より広いフィルタは、32以上の長さを有する側のみに使用される。
【０１７８】
一実施例では、本明細書の技術によれば、デブロッキングフィルタのセットは、バイリニア操作を使用してもよい。一実施例では、ブロック境界サンプルpi及びqiはi=0〜S-1について、以下のように線形補間によって置き換えられる。
【数６２】
2021520107.tif 000082
【０１７９】
一実施例では、fi、Middles,t、Ps、gi、及びQtは表1に提供されるように決定されてもよい。
【表１９】
2021520107.tif 000083
【０１８０】
表1に関して、7,5;7,3;5,3;5,7;及び3,7については、Middleにおけるpi及びqiの重みは同じではなく、追加の項を加えることによって7,7から導出されることに留意されたい。
【０１８１】
一実施例では、本明細書の技術によれば、デブロッキングフィルタのセットは、いずれかの側が32以上であるならば、バイリニア操作を使用してもよい。
【０１８２】
一実施例では、本技術によれば、いずれかの側が32以上である場合、バイリニアデブロッキングが、表2に提供されるように実行されてもよい。
【表２０】
2021520107.tif 000084
【０１８３】
一実施例では、本技術によれば、いずれかの側が32以上である場合、バイリニアデブロッキングが、表3に提供されるように実行されてもよい。
【表２１】
2021520107.tif 000085
【０１８４】
一実施例では、本技術によれば、いずれかの側が32以上である場合、バイリニアデブロッキングが、表4に提供されるように実行されてもよい。
【表２２】
2021520107.tif 000086
【０１８５】
一実施例では、本技術によれば、いずれかの側が32以上である場合、バイリニアデブロッキングが、表5に提供されるように実行されてもよい。
【表２３】
2021520107.tif 000087
【０１８６】
一実施例では、本技術によれば、いずれかの側が32以上である場合、バイリニアデブロッキングが、表6に提供されるように実行されてもよい。
【表２４】
2021520107.tif 000088
【０１８７】
一実施例では、本技術によれば、いずれかの側が32以上である場合、バイリニアデブロッキングが、表7に提供されるように実行されてもよい。
【表２５】
2021520107.tif 000089
【０１８８】
一実施例では、本明細書の技術によれば、デブロッキングフィルタのセットは、いずれかの側が16以上であるならば、バイリニア操作を使用してもよい。そのような場合、表2〜表7において、32が16で置き換えられてもよい。表5、表6、及び表7の一実施例では、Q側の長さに等しくないP側の長さを有する行の最終列(s,t)は、それぞれ、(3,3)、(5,5)、(3,3)のフィルタリングを使用してもよい。一実施例では、デブロッキングフィルタのセットがバイリニア操作を使用するかどうかに対して、強いフィルタ条件が真であるかどうかを追加的に条件付けさせてもよい。例えば、上記の強いフィルタ条件のいずれかが挙げられる。一実施例では、デブロッキングフィルタのセットがバイリニア操作を使用するかどうかに対して、以下を追加的に条件付けさせてもよい。
変数dpq0、dpq3、dp、dq、及びdは、以下のように導出される。
【数６３】
2021520107.tif 000090
次いで、
【数６４】
2021520107.tif 000091
dがβ未満である場合、次の順序付けされたステップが適用される:
変数dpqは、2*dpq0に等しく設定される。
【表２６】
2021520107.tif 000092
【０１８９】
いくつかの実施例では、以下のことに留意すべきである。ルマ及びクロマ用の制御パラメータ値(例えば、β、tCなど)は同じではなく、シンタックス要素の異なるセットを使用して通知されてもよい;クロマ用の制御パラメータ値はルマ用の制御パラメータ値から導出されてもよい;デブロッキングは、8×8(ルマ)及び4×4(クロマ)境界と整合するsubPUエッジのみで実行されてもよい;現在のブロックのエッジのデブロッキングは線形モデル(LM)クロマの使用に基づいてもよい;現在のブロックのエッジのデブロッキングは、別々の分割ツリーの使用に基づいてもよい;現在のブロックのエッジのデブロッキングは、パルスコード変調(PCM)の使用に基づいてもよい;及び/又は現在のブロックのエッジのデブロッキングは、変換量子化バイパスモードの使用に基づいてもよい。なお、PCMは、サンプルのブロックの可逆符号化モードであることに留意されたい。PCM符号化の一実施例では、サンプルは、既定のビット数で直接表される。PCMに使用されるビット長は、パラメータセットにおいて通知されてもよい。
【０１９０】
LMクロマの使用に基づく、現在のブロックのエッジのデブロッキングに関して、及び/又は、現在のブロックのエッジのデブロッキングは別々の分割ツリーの使用に基づいてもよく、一実施例では、クロマブロックにLMクロマが使用される場合、及び/又はルマ及びクロマに対して別々のツリーが使用される場合、及び/又は受信された変換係数がゼロである場合に、現在のブロックのエッジ上でデブロックが実行されてもよい。一実施例に関して、別々のツリーについては、デブロッキングは、4×4クロマグリッドと一致するクロマエッジ(例えば、TUエッジ、PUエッジ、サブPUエッジ、CUエッジ)上でのみに実行されてもよい。
【０１９１】
一実施例では、大きなブロック条件が真ではなく、強いフィルタ条件が真である場合、NS00P及びNS00Qが、エッジをデブロックするために使用される。
【０１９２】
一実施例では、大きなブロック条件が真ではなく、強いフィルタ条件が真である場合、(s,t)=3,3フィルタが、エッジをデブロックするために使用される。
【０１９３】
いくつかの場合では、デブロッキング境界は、水平CTU境界を含んでもよいことに留意されたい。例えば、図5Bを参照すると、いくつかの場合では、サンプルpy,xは、サンプルqy,xを含むCTU上にあるCTUに含まれてもよい。現在のCTU内で上部ラインを符号化する目的で、典型的なビデオコーダの実装は、現在のCTU上のCTUの下部ラインにN行のサンプルを記憶する。例えば、図5Bのデブロッキング境界がCTU境界である場所では、ビデオコーダは、ラインqx,0のイントラ予測符号化を行うための値px,0を記憶する。CTUラインバッファは、現在のCTUを符号化するために記憶された、現在のCTU上にあるサンプル値のラインを指す。CTUラインバッファに含まれるラインの数が増加するにつれて、ビデオコーダを実装するメモリコストが増加する。いくつかの場合では、サンプル値に対応するデータも記憶されることに留意されたい(例えば、予測モード(及び関連する情報、例えば、イントラ予測モード、bi-pred/uni-pred、動きベクトル、参照インデックスなど)、ブロックサイズ、係数符号化フラグなど)。したがって、実装コストの増加を回避するためには、デブロッキングを実行する目的だけのためにCTUラインバッファに含まれるラインの数を増加させること、を回避することが望ましい。例えば、提案されたビデオ符号化規格の全ての符号化特徴が、CTUラインバッファが4ラインのサンプル値を記憶することを要求する場合、7ラインのサンプル値を記憶するために、CTUラインバッファを増加させることを要求するデブロッキングフィルタは、実装コストを増加させるであろう。
【０１９４】
上述したように、ビデオ符号化技術を、ITU-T  H.265の能力を超えて潜在的に向上させるものとして、JVETによって共同テストモデル研究下の符号化特性について、JEMが記載している。更に、VCEG及びMPEGによって共同発行された「Joint  Call  for  Proposals  on  Video  Compression  with  Capabilities  beyond  HEVC」に応答して、ビデオ符号化に関する複数の説明が様々なグループによって、10th  Meeting  of  ISO/IEC  JTC1/SC29/WG11  16-20  April  2018,San  Diego,CA.において提案されている。ビデオ符号化の複数の説明の結果、ビデオ符号化仕様のドラフトテキストが、「Versatile Video Coding (Draft 1),」10th  Meeting  of  ISO/IEC  JTC1/SC29/WG11  16-20  April  2018,San  Diego,CA,document  JVET-J1001-v2において説明され、これは本明細書に参考として組み込まれ、JVET-J1001として参照される。本明細書に参考として組み込まれ、JVET-K1001と称する、「Versatile  Video  Coding(Draft  2),」11th  Meeting  of  ISO/IEC  JTC1/SC29/WG11  10-18  July  2018,Ljubljana,SI,document  JVET-K1001-v4、がJVET-J1001の更新版である。JVET-J1001及びJVET-K1001のそれぞれで提案された技術が、テストモデル(VTM)及びベンチマークセット(BMS)を使用して実施及び評価されている。BMSにおける既存のデブロッキングフィルタは、エッジに対して垂直な3つのサンプルを変更する。
【０１９５】
CE2-related:Longer  Tap  Deblocking  Filter,」  11th  Meeting  of  ISO/IEC  JTC1/SC29/WG11  10-18  July  2018,Ljubljana,SI,document  JVET-K0369-r3、を本明細書ではJVET-K0369と称し、これが、デブロックされているエッジに垂直な最大7個のサンプルを変更するデブロッキングフィルタについて記載している。更に、CTUラインバッファサイズを制限するために、JVET-K0369に記載されているフィルタは、CTU境界と重なり合う水平エッジのフィルタリング操作を制限する。具体的には、JVET-K0369は、表8Aに従ってサンプル値を変更するデブロッキングフィルタについて記載しており、CTU境界と重なり合う水平エッジについては、デブロッキングフィルタが表8Bに示すように変更される場所を提供する。
【表２７】
2021520107.tif 000093
【表２８】
2021520107.tif 000094
【０１９６】
CTU境界と重なり合う水平エッジについて、JVET-K0369で提供されているデブロッキングフィルタを変更することは、クロマサンプル値に対するラインバッファ要件を低減させないことに留意されたい。更に、表8Bに示すように、p7〜p4についてはフィルタ係数を「ゼロで埋める」ことに加えて、p3〜q7についてはフィルタ係数値が変えられている。したがって、JVET-K0369は、CTU境界をフィルタリングするために使用される追加のフィルタセットを記憶することを要求し、これは、係数を記憶するための追加のメモリを必要とする。
【０１９７】
一実施例では、本明細書の技術によれば、px,0〜px,iから最小の3本以上のラインを含むフィルタサポートを変更する及び/又は有するフィルタを含み得る長いタップフィルタの使用は制限され得る。一実施例では、ルマ及び/又はクロマデブロッキングについて、条件(EDGE_TYPEはEDGE_HORである  &&  現在の境界はCTU境界と整列している)が満たされる場合、P側には長いタップフィルタが適用されない。ここで、EDGE_TYPEはEDGE_HORである、は、現在の境界が水平境界であることを示す。一実施例では、ルマ及び/又はクロマデブロッキングについて、次の条件(EDGE_TYPEはEDGE_HORである  &&  curPos.y%ルマサンプルにおけるCTUSize==0)、が満たされる場合、長いタップフィルタはPに適用されない。ここで、curPos.yは、デブロックされる現在のブロックの垂直ルマ位置である。一実施例では、ルマ及び/又はクロマデブロッキングについて、次の条件(EDGE_TYPEはEDGE_HORである  &&  curPosC.y%クロマサンプルにおけるCTUSize==0)、が満たされる場合、長いタップフィルタはPに適用されない。ここで、curPosC.yは、デブロックされる現在のブロックの垂直クロマ位置である。一実施例では、ルマ及び/又はクロマデブロッキングについて、次の条件(EDGE_TYPEはEDGE_HORである  &&  現在の境界はCTU境界と整列している)、が満たされる場合、長いタップフィルタはQ側及びP側に適用されない。一実施例では、ルマ及び/又はクロマデブロッキングについて、次の条件(EDGE_TYPEはEDGE_HORである  &&  curPos.y%ルマサンプルにおけるCTUSize==0)、が満たされる場合、長いタップフィルタはQ側及びP側に適用されない。一実施例では、ルマ及び/又はクロマデブロッキングについて、次の条件(EDGE_TYPEはEDGE_HORである  &&  curPosC.y%クロマサンプルにおけるCTUSize==0)、が満たされる場合は、長いタップフィルタはQ側及びP側に適用されない。一実施例では、長いタップフィルタが適用されない場合、より少数のサンプルを変更する、及び/又はpx,0からpx,iまでの(すなわち、1本、2本、又は3本のライン)より少ないラインを利用するフィルタサポートを含む別のフィルタを適用する。例えば、本明細書に記載される弱いフィルタ又は強いフィルタは、長いタップフィルタが適用されることが許容されない場合に適用されてもよい。ITU-T  H.265において提供されるように、%演算子は、xをyで除算した剰余を提供することに留意されたい。
【０１９８】
一実施例では、長いタップフィルタが適用されない場合、目標ラインバッファ閾値(例えば、3つ又は4つ)を超えるサンプル値が利用不可にされてもよく、対応するサンプル位置に対して所定の値が使用されてもよい。表9は、長タップフィルタが、表8Aに関して上述した長いタップフィルタを含み、目標ラインバッファ閾値が4である例を示す。したがって、p4〜p7のサンプル値は利用不可である。表9に示すように、p4〜p7の値は、デブロッキングのために変更されることはない。更に、表9のp4〜p7に示すように、フィルタ係数はNAで示され、p4〜p7のそれぞれのサンプル値が、ラインバッファでは利用できないことを示す。一実施例では、p4〜p7の各々について、サンプル値を、p3のサンプル値に設定してもよく、表8Aのフィルタ係数を、p3’〜q2’に対して変更されたサンプル値を導出するために使用してもよい。
【表２９】
2021520107.tif 000095
【０１９９】
更に、一実施例では、利用可能なサンプル値から導出される値を、対応するサンプル位置に使用してもよい。一実施例では、p4〜p7の各々について、サンプル値を、p3とp2の平均サンプル値に設定してもよく、表8Aのフィルタ係数を、p3’〜q2’に対して変更されたサンプル値を導出するために使用してもよい。
【０２００】
一実施例では、長いタップフィルタが適用されない場合、フィルタリングプロセスは、デブロックされているサンプルの位置に基づいて(例えば、サンプル値がCTU水平境界上にあるか、又はCTU水平境界の一定距離以内にあるかに基づいて)変更されてもよく、目標ラインバッファ閾値を超えてサンプルにアクセス/デブロックしない対応をするフィルタが選択されてもよい。例えば、表9に示す例に関して、p4〜p7に対してサンプル値を導出したルールとは異なるルールが、p3’及びp2’に対して適用されてもよい。
【０２０１】
一実施例では、長いタップフィルタが適用されない場合、制御プロセスは、デブロックされているサンプルの位置に基づいて変更されてもよく、目標ラインバッファ閾値を超えてサンプルにアクセス/デブロックしない対応をするフィルタが選択されてもよい。例えば、ルマに対して表1の(s=3,t=7)フィルタ、ルマに対して表1の(s=3,t=5)フィルタ、ルマに対してF1P、及び/又はクロマに対して弱いクロマフィルタが選択されてもよい。
【０２０２】
一実施例では、長いタップフィルタが適用されない場合、目標ラインバッファ閾値を超えるサンプルがアクセス/デブロックされないように、デブロッキンググリッドが変えられてもよい。例えば、水平エッジが水平CTUエッジから4だけ下の距離にあるように、デブロッキンググリッドを移動させてもよい。
【０２０３】
上述したように、ITU-T  H.265では、ビデオブロックP及びQを含むCBを符号化するために使用されるQP値(QPP及びQPQと称される場合がある)に基づいて、変数tC’及びβ’が決定される。ルマチャネルについてのインデックスQの導出は、上述されている。クロマチャネルについては、ITU-T  H.265は、クロマが4:2:0の場合、変数QpCが、以下のインデックスqPiに基づいて、図13に示すテーブルで指定されるように決定される。
【数６５】
2021520107.tif 000096
但し、
cQpPicOffsetは、ピクチャレベルクロマ量子化パラメータオフセットを指定する変数であり、
Cbについて、cQpPicOffset=pps_cb_qp_offset、であり、
Crについて、cQpPicOffset=pps_cr_qp_offset、である。
【０２０４】
ITU-T  H.265では、クロマフォーマットが4:2:2又は4:4:4の場合は、QpCはMin(qPi、51)に等しく設定されることに留意されたい。
【０２０５】
クロマについては、tC’は、図6に示す表を使用して決定され、インデックスQは、tC’について以下のように決定される。
【数６６】
2021520107.tif 000097
【０２０６】
JVET-J1001及びJVET-K1001のそれぞれで提案された技術は、ルマチャネル及びクロマチャネルを分割するために、別々の分割ツリーが使用され得ることを提示している。ルマチャネル及びクロマチャネルを分割するために、別々の分割ツリーが使用される場合、ルマチャネルに対するQP値に対して、クロマチャネルに対するQP値を変化させることができる量まで増加させることが有用な場合がある。すなわち、例えば、クロマチャネルの各成分に対して、スライスレベルで通知され得る、対応するQPオフセット値を増加させることができる。ITU-T  H.265は、以下のクロマチャネルQPオフセットシンタックス要素を提供し、pps_cb_qp_offset、及びpps_cr_qp_offsetは、それぞれ、QP’Cb及びQp’Crを導出するために使用されるルマ量子化パラメータQp’yに対するオフセットを指定することに留意されたい。pps_cb_qp_offset、及びpps_cr_qp_offsetの値は、両端値を含む、-12〜+12の範囲にあるものとする。ChromaArrayTypeが0に等しい場合、pps_cb_qp_offset、及びpps_cr_qp_offsetは復号プロセスでは使用されず、デコーダはそれらの値を無視するものとする。
【０２０７】
slice_cb_qp_offsetは、量子化パラメータQp’Cbの値を決定するときに、pps_cb_qp_offsetの値に加算される差を指定する。slice_cb_qp_offsetの値は、両端値を含む、-12〜+12の範囲にあるものとする。slice_cb_qp_offsetが存在しない場合、これは0に等しいと推測される。pps_cb_qp_offset+slice_cb_qp_offsetの値は、両端値を含む、-12〜+12の範囲にあるものとする。
【０２０８】
slice_cr_qp_offsetは、量子化パラメータQp’Crの値を決定するときに、pps_cr_qp_offsetの値に加算される差を指定する。slice_cr_qp_offsetの値は、両端値を含む、-12〜+12の範囲にあるものとする。slice_cr_qp_offsetが存在しない場合、これは0に等しいと推測される。pps_cr_qp_offset+slice_cr_qp_offsetの値は、両端値を含む、-12〜+12の範囲にあるものとする。
【０２０９】
クロマQP値の導出への変更が、デブロッキングパラメータがQP値に基づく場合に、クロマチャネルのデブロッキングを遂行させる場合がある。本明細書の技術によれば、例えば、ルマチャネル及びクロマチャネルを分割するために別々の分割ツリーが使用され得る場合、デブロッキングパラメータに基づくQP値の導出が変更されてもよい。
【０２１０】
本明細書の技術による一実施例では、cQpPicOffsetは、以下のように導出され得る。
Cbについて、
【数６７】
2021520107.tif 000098
Crについて、
【数６８】
2021520107.tif 000099
一実施例では、CUレベルクロマQPオフセット値は、(例えば、パレットモード符号化中に)通知されてもよい。デブロッキングに使用されるクロマQP導出は、CUレベルクロマQPオフセットを使用してもよい。例えば、変数CuQpOffsetCb及びCuQpOffsetCrが、Cbオフセット及びCrオフセットを表す場合、クロマQPオフセットは、以下のように導出され得る。
Cbについて、
【数６９】
2021520107.tif 000100
Crについて、
【数７０】
2021520107.tif 000101
【０２１１】
いくつかの場合では、追加のルマ及びクロマQPオフセット値が、あるタイプの処理(例えば、適応的色変換)を受けているブロックに使用されてもよい。これらQPオフセットは、ルマ及びクロマのためにQPを導出するために使用されてもよい。結果として、デブロッキングプロセスは、追加のルマ及びクロマQPオフセットに依存し得る。
【０２１２】
いくつかの実施例では、ルマチャネル及びクロマチャネルを分割するために別々の分割ツリーが使用される場合、クロマQP値は、分割ツリータイプに基づいて計算されてもよい。例えば、一実施例では、クロマQP値は、以下のように決定され得る。
【数７１】
2021520107.tif 000102
式中、Qpblk_P、Qpbik_Qは、それぞれ、P側のクロマブロック、及びQ側のクロマブロックに対応するルマ量子化パラメータである。
【０２１３】
一実施例では、Qpblk_P、及び/又はQpbik_Qは、以下の1つ以上の組み合わせから導出され得る。複数の対応するルマブロックのQP値、クロマブロックに対応するルマブロックのサンプル数、所定のクロマ位置に対応するルマQP値等である。いくつかの実施例では、Qpblk_P及び/又はQpbik_Qは、例えば、丸め演算を伴う整数平均化、最大値関数などの関数を使用して導出することができる。クロマブロックに対応する部分ルマブロックを有することが可能であることに留意されたい。図14A〜図14Bは、クロマブロックP及びQに対応する可能なルマ分割の例を示し、各ルマブロックは、QP値であるQP_Xを有する。図14Aに示す実施例では、クロマブロックPは、QP値がQP_1及びQP_3であるルマブロックにコロケートされ、クロマブロックQは、QP値がQP_2及びQP_4であるルマブロックにコロケートされている。図14Bに示す実施例では、クロマブロックPは、QP値がQP_1、QP_3、及びQP_5であるルマブロックにコロケートされ、クロマブロックQは、QP値がQP_2及びQP_4であるルマブロックにコロケートされている。一実施例では、図14Aに示す例については、Qpblk_P、及びQpbik_Qは以下のように導出され得る。
【数７２】
2021520107.tif 000103
【０２１４】
一実施例では、図14Bに示す例については、Qpblk_P、及びQpbik_Qは以下のように導出され得る。
【数７３】
2021520107.tif 000104
【０２１５】
一実施例では、Qpblk_P及び/又はQpbik_Qは、クロマ位置のセットを特定し、各クロマ位置に対して、対応するルマ位置を特定することにより導出され得る。それぞれの対応するルマ位置について、対応するQP値が決定され得る。対応するQP値は、Qpblk_P、及び/又はQpbik_Qを導出するために使用され得る。
【０２１６】
上述したように、一実施例では、より広い強いフィルタ条件は、第1の条件及び第2の条件の両方が真であるかどうかを含んでもよく、d<βであるときに第1の条件が真であってもよく、dは以下のように決定される。
【数７４】
2021520107.tif 000105
式中、
RC[N]は、デブロックされているエッジに垂直であって、デブロックされている現在のクロマセグメントの頂部から距離Nにあるクロマラインに対応する。一実施例では、フィルタ条件は、d<βであるときに真である条件を含んでもよく、dは以下のように決定される。
【数７５】
2021520107.tif 000106
【０２１７】
いくつかの実施例では、クロマデブロッキング境界のxサンプルセグメント(例えば、x=2)について、条件がチェックされてもよい。これにより、勾配を計算する必要があるラインの、最悪の場合における数が低減される。最悪の場合では、第1の条件は勾配(あらゆるラインについてxCalcDQP)を計算するのに対して、上記条件は、2ライン毎に勾配を計算することに留意されたい。
【０２１８】
上述したように、ITU-T  H.265、変数β及びtCは、フィルタリング決定及びクリッピング操作のために使用される。例えば、β及び/又はtCは、強いフィルタが使用されたかどうか判定するために、及び/又はフィルタリングされたサンプル値をクリッピングするために使用される。JVET-K1001では、ピーク信号対雑音比(PSNR)は、ITU-T  H.265と比較して所与の量子化レベルよりも高いことに留意されたい。したがって、いくつかの場合では、デブロッキング強さを変更するために、β及び/又はtCを変更することが有用な場合がある。すなわち、歪みレベルが所与の量子化レベルにおいて、より低い場合、知覚されるブロックノイズの量はより少なく、したがって、必要なデブロッキングはより少ない。一実施例では、βはβ=β<<nのように変更されてもよい。一実施例では、βはβ=β>>nのように変更されてもよい。一実施例では、tC=tC<<nのように変更されてもよい。一実施例では、tC=tC>>nのように変更されてもよい。一実施例では、nは以下のうちの1つ以上の組み合わせに基づいて決定されてもよい:スライスタイプ、QP値、ブロックサイズ、ビット長、イントラ予測モード、動きベクトル(例えば、大きさ)、チャネルタイプ、及び/又はコンポーネントタイプ等である。例えば、一実施例では、tC=tC>>2をイントラスライスに使用してもよく、tC=tC>>4を、インタースライスに使用してもよい。一実施例では、tC=tC>>2をルマ成分に使用してもよく、tC=tC>>4をクロマ成分に使用してもよい。
【０２１９】
「CE2-2.1.1:Long  deblocking  filters  and  fixes,」11th  Meeting  of  ISO/IEC  JTC1/SC29/WG11  10-18  July  2018,Ljubljana,SI,document  JVET-K0307-vl、を本明細書ではJVET-K0307と称し、これは、長いフィルタ、及びルマ成分の決定について記載している。上述のフィルタリング技術に基づいて、JVET-K0307におけるフィルタリング技術が、長い非対称フィルタの使用を可能にするように変更されてもよい。長い非対称フィルタについては、より大きいブロック側でデブロックされたサンプルの数は、より小さいブロック側のものよりも大きい。この拡張されたフィルタセットから選択するためのデブロッキング決定プロセスは、以下に詳細に説明される。拡張されたフィルタセットは、デブロッキング全体にわたって強いデブロッキングのために使用されてもよい。
【０２２０】
一実施例では、本明細書の技術によれば、いずれかの側が大きいブロックを有し、変更された強いフィルタ条件が満たされた場合に、より強いルマフィルタが使用される。一実施例では、ルマの大きなブロックは、垂直エッジについては32以上の幅に対応し、及び水平エッジについては32以上の高さに対応する。
【０２２１】
一実施例では、ルマのより強いフィルタは以下のように定義され得る。
そのとき、ブロック境界サンプルpi及びqiはi=0〜S-1について、以下のように線形補間によって置き換えられる。
【数７６】
2021520107.tif 000107
式中、f_i、Middle_s,t、P_s、及びQ_sを以下の表10に示す。
【表３０】
2021520107.tif 000108
【０２２２】
一実施例では、制御プロセスは、4つのサンプルセグメントの2つのラインについて計算された勾配、絶対画素値差とtCとの比較、及び、他の絶対画素値差とβとの比較に更に基づく。大きなブロック側について、より多くの勾配が計算される。制御プロセスは、以下の通りであってもよい。
1.変数dpq0、dpq3、dp、dq、及びdは、以下のように導出される。
最初に、dp0、dp3、dq0、dq3が、ITU-T  H.265と同様に導出される。
次いで、dpq0、dpq3、dp、dq、dが、ITU-T  H.265と同様に導出される。
ITU-T  H.265と同様に、dが6未満である場合、次の順序付けされたステップが適用される。
a.dpqが、ITU-T  H.265と同様に導出される。
b.sp3-Abs(p3-p0)、ITU-T  H.265と同様に導出される。
【表３１】
2021520107.tif 000109
c.sp3=Abs(q0-q3)、ITU-T  H.265と同様に導出される。
【表３２】
2021520107.tif 000110
d.ITU-T  H.265の導出と同様に、
【表３３】
2021520107.tif 000111
d_strong1及びd_strong2を以下に従って計算する。
【数７７】
2021520107.tif 000112
下記を導出する。
【表３４】
2021520107.tif 000113
f.StrongFilterConditionが真である場合、より強いルマフィルタを使用する(エッジ境界におけるブロックサイズに基づいて選択され得る)。
【０２２３】
一実施例では、制御プロセスは以下の通りであってもよい。
変数dpq0、dpq3、dp、dq、及びdは、以下のように導出される。
最初に、dp0、dp3、dq0、dq3が、ITU-T  H.265と同様に導出される。
次いで、dpq0、dpq3、dp、dq、dが、ITU-T  H.265と同様に導出される。
ITU-T  H.265と同様に、dがβ未満である場合、次の順序付けされたステップが適用される。
dpqが、ITU-T  H.265と同様に導出される。
sp3-Abs(p3-p0)、ITU-T  H.265と同様に導出される。
【表３５】
2021520107.tif 000114
ITU-T  H.265と同様に導出する。
【表３６】
2021520107.tif 000115
ITU-T  H.265と同様に以下を導出する。
【表３７】
2021520107.tif 000116
【０２２４】
条件(p側が32以上である  &&  q側が16以上である)、及び、(q側が32以上である  &&  p側が16以上である)は、より強いルマフィルタが適用され得るかどうかを判定することに留意されたい。他の実施例では、追加の条件(例えば、1つ以上の先行条件)が適用されてもよく、より強いルマフィルタが適用され得るかどうかを判定するために使用されてもよいことに留意されたい。一実施例では、追加の条件は、以下のようであってもよい。
【表３８】
2021520107.tif 000117
しかし、(7,7,7,3,3,7)については、決定プロセスは(p側が32以上である||q側が32以上である)である。考え方は、β>>3の代わりに3*β>>5とした下限閾値選択を、決定プロセスに先行するより強いルマフィルタのいずれかに適用することである。
【０２２５】
一実施例では、本明細書に記載される技術によれば、ルマは、4×4ルマサンプルグリッドに従って(又は、8×8ルマサンプルグリッドに従って)デブロックされてもよい。この例では、WS00P  P側フィルタ及びWS00Q  Q側フィルタとして上述した、より強いルマフィルタが大きいブロックに使用されてもよい。ここで、大きいブロックとは、垂直エッジに対して幅が32以上、水平エッジに対して高さが32以上、隣接するブロックが16以上のブロックである。制御プロセスは、以下に更に詳細に記載されるように、4つのサンプルセグメントの2つのラインについて計算された勾配、絶対画素値差とtCとの比較、及び、他の絶対画素値差とβとの比較、に更に基づいてもよい。更に、p0が現在のCTU上のCTUに属する場合、上記の表8Bで提供される以下の制限されたサポートルマフィルタが使用されてもよい。
【０２２６】
いくつかの場合では、サンプルのサブセットはアクセス可能ではない。このような場合、サンプルのこのサブセットを使用する制御プロセスが影響を受ける場合がある。これは、勾配の計算において非対称性をもたらす場合がある。いくつかの実施例では、この場合、別の制御プロセスが使用され得る。
【０２２７】
一実施例では、制御プロセスは以下の通りであってもよい。
変数dpq0、dpq3、dp、dq、及びdは、以下のように導出される。
最初に、dp0、dp3、dq0、dq3が、ITU-T  H.265と同様に導出される。
【表３９】
2021520107.tif 000118
次いで、dpq0、dpq3、dp、dq、dが、ITU-T  H.265と同様に導出される。
ITU-T  H.265と同様に、dがβ未満である場合、次の順序付けされたステップが適用される。
dpqが、ITU-T  H.265と同様に導出される。
sp3-Abs(p3-p0)がITU-T  H.265と同様に導出される。
【表４０】
2021520107.tif 000119
sq3=Abs(q0-q3)がITU-T  H.265と同様に導出される。
【表４１】
2021520107.tif 000120
ITU-T  H.265の導出と同様に、
【表４２】
2021520107.tif 000121
StrongFilterConditionが真であり、LongTapDeblockingが真である場合、境界エッジに垂直な長さが32以上である、ルマのより強いフィルタを使用し、
そうでなければ、StrongFilterConditionが真であり、LongTapDeblockingが偽である場合、別の強いフィルタ(例えば、HEVCの強いフィルタHEVC_P、HEVC_Q)を使用する。
【０２２８】
一実施例では、比較に使用される閾値はまた、位置に基づいていてもよい。例えば、デブロックされているエッジがCTU境界と整列しているかどうか、である。
【０２２９】
一実施例では、4×4ルマデブロッキンググリッドのために、以下のうちの1つが必要であり得る。
ブロック幅/高さがそれぞれ、垂直エッジ/水平エッジについて4に等しく、HEVCフィルタオン/オフ条件(すなわち、d<Beta、ここでd=d0+d3、及びd0=dp0+dq0、及びd3=dp3+dq3)がそれぞれのエッジに対して真であるように評価される場合、この方法は、最大1つのサンプル変更を伴うHEVC正常/弱いフィルタを遂行する。したがって、以下のHEVC条件、すなわち、|δ|<10(tC)がチェックされ、ここで、δ=(9<<(q0-p0)-(3*(q1-p1))+8)>>4であり、条件が真であると評価された場合、サンプルp0及びq0は変更され、そうでなければフィルタリングは適用されない。
ブロック幅/高さがそれぞれ、垂直エッジ/水平エッジに対して4に等しい場合、最大で3つのサンプルがフィルタ決定に使用され、1つのサンプルのみがフィルタによって変更される。すなわち、強い/弱いフィルタ条件チェックにおいて、p2iはp3iを置き換え、強いフィルタ及び弱いフィルタの両方は、p0及びq0を変更することだけが許可されている。
【０２３０】
一実施例では、本明細書に記載される技術によれば、クロマは、2×2クロマサンプルグリッドに従って(又は、4×4ルマサンプルグリッドに従って)デブロックされてもよい。この例では、上述のHEVC_P  P側及びHEVC_Q  Q側フィルタが使用されてもよい。更に、p0が現在のCTU上のCTUに属する場合、NW00Pとして上述した弱いクロマフィルタが使用されてもよい。一実施例では、クロマについて計算されたHEVCの強いルマフィルタ条件が真であり、以下の条件のいずれかが真である場合に、強いフィルタが使用され得る。
-エッジタイプは垂直であり、p0は幅>=16(クロマサンプル)であるCUに属し、q0は幅>=16(クロマサンプル)であるCUに属する
-エッジタイプは水平であり、p0は高さ>=16(クロマサンプル)であるCUに属し、q0は高さ>=16(クロマサンプル)であるCUに属する。
【０２３１】
図8を再び参照すると、エントロピ符号化部218は、量子化された変換係数及び予測シンタックスデータ(すなわち、イントラ予測データ、動き予測データ)を受信する。いくつかの例では、係数量子化部206は、係数がエントロピ符号化部218に出力される前に、量子化された変換係数を含む行列の走査を実行することができることに留意されたい。他の例では、エントロピ符号化部218は、走査を実行することができる。エントロピ符号化部218は、本明細書で説明する技術の1つ以上に従ってエントロピ符号化を実行するように構成することができる。このようにして、ビデオエンコーダ200は、ビデオデータの成分に対する隣接する復元されたビデオブロックを含むサンプル値の配列を受信し、デブロッキングフィルタの複数のパスに従って、隣接する復元されたビデオブロック内のサンプル値を変更するように構成されたデバイスの一例を表す。
【０２３２】
図7を再び参照すると、データカプセル化部107は、符号化ビデオデータを受信し、定義されたデータ構造に従って、例えば、一連のNALユニットである準拠ビットストリームを生成することができる。準拠ビットストリームを受信するデバイスは、そこからビデオデータを再生成することができる。更に、準拠ビットストリームを受信するデバイスは、サブビットストリーム抽出プロセスを実行してもよく、サブビットストリーム抽出は、準拠ビットストリームを受信するデバイスが、受信したビットストリーム内のデータを破棄及び/又は変更することによって、新しい準拠ビットストリームを形成するプロセスを指す。適合ビットストリームという用語は、準拠ビットストリームという用語の代わりに使用され得ることに留意されたい。
【０２３３】
図7を再び参照すると、インターフェース108は、データカプセル化部107によって生成されたデータを受信し、そのデータを通信媒体に送信及び/又は記憶するように構成された任意のデバイスを含んでもよい。インターフェース108は、イーサネットカードなどのネットワークインターフェースカードを含むことができ、光送受信機、無線周波数送受信機、又は情報を送信及び/若しくは受信することができる任意の他の種類のデバイスを含むことができる。更に、インターフェース108は、ファイルを記憶デバイス上に記憶することを可能にすることができるコンピュータシステムインターフェースを含むことができる。例えば、インターフェース108は、Peripheral  Component  Interconnect(PCI)バスプロトコル及びPeripheral  Component  Interconnect  Express(PCIe)バスプロトコル、独自のバスプロトコル、ユニバーサルシリアルバス(Universal Serial Bus)(USB)プロトコル、FC、又はピアデバイスを相互接続するために使用することができる任意の他の論理及び物理構造をサポートする、チップセットを含むことができる。
【０２３４】
図7を再び参照すると、目的デバイス120は、インターフェース122と、データデカプセル化部123と、ビデオデコーダ124と、ディスプレイ126とを含む。インターフェース122は、通信媒体からデータ受信するように構成されている任意のデバイスを含むことができる。インターフェース122は、イーサネットカードなどのネットワークインターフェースカードを含むことができ、光送受信機、無線周波数送受信機、又は情報を受信及び/若しくは送信することができる任意の他の種類のデバイスを含むことができる。更に、インターフェース122は、適合したビデオビットストリームを記憶デバイスから取得することを可能にするコンピュータシステム用インターフェースを含むことができる。例えば、インターフェース122は、PCIバスプロトコル及びPCIeバスプロトコル、独自のバスプロトコル、USBプロトコル、FC、又はピアデバイスを相互接続するために使用することができる任意の他の論理及び物理構造をサポートする、チップセットを含むことができる。データデカプセル化部123は、本明細書に記載される例示的なパラメータセットのうちのいずれかを受信及び解析するように構成されてもよい。
【０２３５】
ビデオデコーダ124は、ビットストリーム及び/又はその許容可能な変形を受信し、それからビデオデータを再生するように構成されている任意のデバイスを含むことができる。ディスプレイ126は、ビデオデータを表示するように構成された任意のデバイスを含むことができる。ディスプレイ126は、液晶ディスプレイ(liquid crystal display、LCD)、プラズマディスプレイ、有機発光ダイオード(organic light emitting diode、OLED)ディスプレイ、又は別の種類のディスプレイなどの、様々なディスプレイデバイスのうちの1つを含むことができる。ディスプレイ126は、高解像度ディスプレイ又は超高解像度ディスプレイを含むことができる。図7に示す例では、ビデオデコーダ124は、データをディスプレイ126に出力するように説明されているが、ビデオデコーダ124は、ビデオデータを様々な種類のデバイス及び/又はそのサブコンポーネントに出力するように構成することができることに留意されたい。例えば、ビデオデコーダ124は、本明細書で説明するような任意の通信媒体にビデオデータを出力するように構成することができる。
【０２３６】
図9は、本開示の1つ以上の技術による、ビデオデータを復号するように構成することができるビデオデコーダの一例を示すブロック図である。
一実施例では、ビデオデコーダ300は、変換データを復号し、復号された変換データに基づいて変換係数から残差データを復元するように構成することができる。ビデオデコーダ300は、イントラ予測復号及びインター予測復号を実行するように構成される場合があり、そのために、ハイブリッドデコーダと称される場合がある。図9に示す例では、ビデオデコーダ300は、エントロピ復号部302と、逆量子化部304と、逆変換係数処理部306と、イントラ予測処理部308と、インター予測処理部310と、加算器312と、フィルタ部314と、参照バッファ316と、を含む。ビデオデコーダ300は、ビデオ符号化システムと合致するようにしてビデオデータを復号するように構成することができる。例のビデオデコーダ300が別個の機能ブロックを有するように示されているが、そのような例示は説明のためのものであり、ビデオデコーダ300及び/又はその下位構成要素を特定のハードウェア又はソフトウェアアーキテクチャに限定するものではないことに留意されたい。ビデオデコーダ300の機能は、ハードウェア、ファームウェア、及び/又はソフトウェアの実装形態の任意の組み合わせを用いて実現することができる。
【０２３７】
図9に示すように、エントロピ復号部302は、エントロピ符号化されたビットストリームを受信する。エントロピ復号部302は、エントロピ符号化プロセスとは逆の(reciprocal)プロセスに従って、ビットストリームからシンタックス要素及び量子化された係数を復号するように構成することができる。エントロピ復号部302は、上述したエントロピ符号化技術のいずれかに従ってエントロピ復号を実行するように構成することができる。エントロピ復号部802は、ビデオ符号化規格と合致するようにして、符号化されたビットストリーム中のシンタックス要素の値を判定することができる。図9に示すように、エントロピ復号部302は、ビットストリームから量子化された係数の値、及び断定データを判定することができる。図9に示す例では、逆量子化ユニット304が、量子化係数値を受信し、変換係数を出力する。逆変換処理部306は、変換係数を受信し、復元された残差データを出力する。
【０２３８】
図9を再び参照すると、復元された残差データを加算器312に提供することができる。加算器312は、復元された残差データを予測ビデオブロックに加えて、復元されたビデオデータを生成することができる。予測ビデオブロックは、予測ビデオ技術(すなわち、イントラ予測及びフレーム間予測)に従って判定することができる。イントラ予測処理部308は、イントラ予測シンタックス要素を受信し、参照バッファ316から予測ビデオブロックを取得するように構成することができる。参照バッファ316は、ビデオデータの1つ以上のフレームを記憶するように構成されたメモリデバイスを含むことができる。イントラ予測シンタックス要素は、上述したイントラ予測モードなどのイントラ予測モードを識別することができる。インター予測処理部308は、インター予測シンタックス要素を受信し、動きベクトルを生成して、参照バッファ316に記憶された1つ以上の参照フレーム内の予測ブロックを識別することができる。インター予測処理部310は、場合によっては補間フィルタに基づく補間を実行して、動き補償されたブロックを生成することができる。シンタックス要素には、画素未満の精度を有する動き予測に使用されることになる補間フィルタの識別子を含めることができる。インター予測処理部310は、補間フィルタを使用して、参照ブロックのサブ整数の画素に対する補間された値を算出することができる。
【０２３９】
フィルタ部314は、復元されたビデオデータに対してフィルタリングを実行するように構成することができる。例えば、フィルタ部314は、例えば、ビットストリームで指定されたパラメータに基づいて、デブロッキング及び/又はサンプル適応オフセット(SAO)フィルタリングを実行するように構成することができる。更に、いくつかの例では、フィルタ部314は、独自の任意フィルタリング(例えば、モスキートノイズリダクションなどの視覚強調)を実行するように構成することができることに留意されたい。フィルタ部314は、フィルタ部216と同様に動作し得る。図9に示すように、復元されたビデオブロックは、ビデオデコーダ300によって出力することができる。このようにして、ビデオデコーダ300は、ビデオデータの成分に対する隣接する復元されたビデオブロックを含むサンプル値の配列を受信し、デブロッキングフィルタの複数のパスに従って、隣接する復元されたビデオブロック内のサンプル値を変更するように構成されてもよい。
【０２４０】
1つ以上の例では、記載された機能は、ハードウェア、ソフトウェア、ファームウェア、又はこれらの任意の組み合わせで実装することができる。ソフトウェアで実装される場合に、この機能は、コンピュータ可読媒体上の1つ以上の命令又はコードとして記憶するか又は伝送され、ハードウェアベースの処理部によって実行することができる。コンピュータ可読媒体は、例えば、通信プロトコルに従って、ある場所から別の場所へのコンピュータプログラムの転送を容易にする任意の媒体を含む、データ記憶媒体又は通信媒体などの有形の媒体に対応する、コンピュータ可読記憶媒体を含むことができる。このようにして、コンピュータ可読媒体は、一般に、(1)非一時的な有形のコンピュータ可読記憶媒体、又は(2)信号又は搬送波などの通信媒体に対応することができる。データ記憶媒体は、本開示中に記載された技術の実現のための命令、コード、及び/又はデータ構造を取り出すために、1つ以上のコンピュータ又は1つ以上のプロセッサによってアクセスされ得る任意の利用可能な媒体であり得る。コンピュータプログラム製品は、コンピュータ可読媒体を含むことができる。
【０２４１】
一例として、非限定的に、このようなコンピュータ可読記憶媒体は、RAM、ROM、EEPROM、CD-ROM、又は他の光学ディスク記憶装置、磁気ディスク記憶装置、他の磁気記憶装置、フラッシュメモリ、又は任意の他の媒体、すなわち命令又はデータ構造の形式で所望のプログラムコードを記憶するために使用可能であり、かつコンピュータによりアクセス可能な任意の他の媒体を含むことができる。また、任意の接続は、コンピュータ可読媒体と適切に呼ばれる。例えば、命令がウェブサイト、サーバ、又は他のリモートソースから、同軸ケーブル、光ファイバケーブル、ツイストペア、デジタル加入者線(digital subscriber line、DSL)、あるいは赤外線、無線及びマイクロ波などの無線技術を使用して伝送される場合、同軸ケーブル、光ファイバケーブル、ツイストペア、DSL、あるいは赤外線、無線及びマイクロ波などの無線技術は、媒体の定義に含まれる。しかし、コンピュータ可読媒体及びデータ記憶媒体は、接続、搬送波、信号、又は他の一過性媒体を含まないが、代わりに非一時的な有形記憶媒体を対象としていることを理解すべきである。本発明で使用する場合、ディスク(disk)及びディスク(disc)は、コンパクトディスク(Compact Disc、CD)、レーザーディスク(laser disc)、光学ディスク(optical disc)、デジタル多用途ディスク(Digital Versatile Disc、DVD)、フロッピーディスク(floppy disk)及びブルーレイ(登録商標)ディスク(Blu-ray(登録商標)disc)を含み、ディスク(disk)は通常データを磁気的に再生し、ディスク(disc)はレーザを用いてデータを光学的に再生する。上記の組み合わせもまた、コンピュータ可読媒体の範囲内に含まれなければならない。
【０２４２】
命令は、1つ以上のデジタル信号プロセッサ(DSP)、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、又は他の同等の集積又はディスクリートロジック回路などの1つ以上のプロセッサによって実行することができる。したがって、本明細書で使用されるとき、用語「プロセッサ」は、前記の構造、又は本明細書で説明する技術の実装に好適な任意の他の構造のいずれかを指すことができる。加えて、いくつかの態様において、本明細書に記載の機能は、符号化及び復号化するように構成された、又は複合コーデックに組み込まれた専用のハードウェアモジュール及び/又はソフトウェアモジュール内に設けられ得る。また、この技術は、1つ以上の回路又は論理素子中に完全に実装することができる。
【０２４３】
本開示の技術は、無線ハンドセット、集積回路(integrated circuit、IC)、又はICのセット(例えば、チップセット)を含む多種多様なデバイス又は装置に実装することができる。様々なコンポーネント、モジュール、又はユニットは、開示された技術を実行するように構成されたデバイスの機能的な態様を強調するために本開示中に記載されているが、異なるハードウェアユニットによる実現は必ずしも必要ではない。むしろ、前述したように、様々なユニットは、コーデックハードウェアユニットと組み合わせてもよく、又は好適なソフトウェア及び/又はファームウェアと共に、前述の1つ以上のプロセッサを含む、相互動作ハードウェアユニットの集合によって提供することができる。
【０２４４】
更に、上述の各実装形態で用いた基地局装置や端末装置の各機能ブロックや各種の機能は、一般的には集積回路又は複数の集積回路である電気回路によって実現又は実行することができる。本明細書に記載の機能を実行するように設計された回路は、汎用プロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け又は汎用アプリケーション集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)若しくは他のプログラマブルロジックデバイス、ディスクリートゲート若しくはトランジスタロジック、若しくは個々のハードウェアコンポーネント、又はそれらの組み合わせを備えていてもよい。汎用プロセッサは、マイクロプロセッサでもよく、あるいは、プロセッサは、従来のプロセッサ、コントローラ、マイクロコントローラ、又はステートマシンでもよい。上述した汎用プロセッサ又は各回路は、デジタル回路で構成されても、又はアナログ回路で構成されてもよい。更に、半導体技術の進歩により現時点での集積回路に置き換わる集積回路化技術が現れれば、この技術による集積回路もまた使用可能となる。
【０２４５】
様々な実施例について説明した。これら及び他の実施例は、以下の特許請求の範囲内である。
【０２４６】
<相互参照>
この非仮出願は、米国特許法第119条の下で、2018年3月30日出願の米国特許仮出願第62/651,058号、2018年4月7日出願の同第62/654,379号、2018年4月9日出願の同第62/655,029号、2018年4月11日出願の同第62/656,291号、2018年5月29日出願の同第62/677,629号、2018年6月1日出願の同第62/679,716号、2018年7月10日出願の同第62/696,309号、2018年7月27日出願の同第62/711,420号、2018年8月5日出願の同第62/714,755号、2018年9月17日出願の同第62/732,556号、2018年9月18日出願の同第62/733,067号、2018年9月22日出願の同第62/735,090号、2018年9月27日出願の同第62/737,596号、の優先権を主張するものであり、その内容が本明細書に参照により組み込まれる。
【図１】
2021520107.tif 000122
【図２】
2021520107.tif 000123
【図３】
2021520107.tif 000124
【図４Ａ】
2021520107.tif 000125
【図４Ｂ】
2021520107.tif 000126
【図５Ａ】
2021520107.tif 000127
【図５Ｂ】
2021520107.tif 000128
【図６】
2021520107.tif 000129
【図７】
2021520107.tif 000130
【図８】
2021520107.tif 000131
【図９】
2021520107.tif 000132
【図１０】
2021520107.tif 000133
【図１１】
2021520107.tif 000134
【図１２】
2021520107.tif 000135
【図１３】
2021520107.tif 000136
【図１４Ａ】
2021520107.tif 000137
【図１４Ｂ】
2021520107.tif 000138
【国際調査報告】
2021520107.tif 000139
2021520107.tif 000140