IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ テンセント・アメリカ・エルエルシーの特許一覧

特開2024-19652ビデオフィルタリングのための方法および装置
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024019652
(43)【公開日】2024-02-09
(54)【発明の名称】ビデオフィルタリングのための方法および装置
(51)【国際特許分類】
   H04N 19/117 20140101AFI20240202BHJP
   H04N 19/14 20140101ALI20240202BHJP
   H04N 19/167 20140101ALI20240202BHJP
   H04N 19/176 20140101ALI20240202BHJP
   H04N 19/186 20140101ALI20240202BHJP
   H04N 19/70 20140101ALI20240202BHJP
   H04N 19/80 20140101ALI20240202BHJP
【FI】
H04N19/117
H04N19/14
H04N19/167
H04N19/176
H04N19/186
H04N19/70
H04N19/80
【審査請求】未請求
【請求項の数】24
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2023215040
(22)【出願日】2023-12-20
(62)【分割の表示】P 2022560379の分割
【原出願日】2021-09-30
(31)【優先権主張番号】63/160,560
(32)【優先日】2021-03-12
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】17/449,199
(32)【優先日】2021-09-28
(33)【優先権主張国・地域又は機関】US
(71)【出願人】
【識別番号】520353802
【氏名又は名称】テンセント・アメリカ・エルエルシー
(74)【代理人】
【識別番号】100110364
【弁理士】
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100150197
【弁理士】
【氏名又は名称】松尾 直樹
(72)【発明者】
【氏名】イシン・ドゥ
(72)【発明者】
【氏名】シン・ジャオ
(72)【発明者】
【氏名】シャン・リュウ
(57)【要約】
【課題】本開示の態様は、ビデオエンコーディング/デコーディングのための方法および装置を提供する。
【解決手段】いくつかの例では、ビデオデコーディングのための装置は処理回路を含む。処理回路は、ビデオを搬送するコーディングされたビデオビットストリーム内の信号に基づいて、ビデオフィルタの第1のフィルタ形状構成に関連付けられたオフセット値を決定する。ビデオフィルタは非線形マッピングに基づく。第1のフィルタ形状構成のフィルタタップの数は5未満である。処理回路は、第1のフィルタ形状構成に関連付けられたオフセット値を使用して、フィルタリング対象のサンプルにビデオフィルタを適用する。
【選択図】図31
【特許請求の範囲】
【請求項1】
ビデオデコーディングにおけるフィルタリングのための方法であって、
プロセッサによって、ビデオを搬送するコーディングされたビデオビットストリーム内の信号に基づいてビデオフィルタの第1のフィルタ形状構成に関連付けられたオフセット値を決定するステップであって、前記第1のフィルタ形状構成のフィルタタップの数は5未満であり、前記ビデオフィルタは非線形マッピングに基づく、ステップと、
前記プロセッサによって、前記第1のフィルタ形状構成に関連する前記オフセット値を使用して、フィルタリング対象のサンプルに前記非線形マッピングベースのフィルタを適用するステップと
を含む、方法。
【請求項2】
前記ビデオフィルタは、クロスコンポーネントサンプルオフセット(CCSO)フィルタおよびローカルサンプルオフセット(LSO)フィルタのうちの少なくとも1つを含む、請求項1に記載の方法。
【請求項3】
前記第1のフィルタ形状構成の前記フィルタタップの位置は、前記サンプルの位置を含む、請求項1に記載の方法。
【請求項4】
前記第1のフィルタ形状構成の前記フィルタタップの位置は、前記サンプルの位置を除く、請求項1に記載の方法。
【請求項5】
前記第1のフィルタ形状構成は単一フィルタタップを含み、前記方法は、
エリア内の平均サンプル値を決定するステップと、
前記単一フィルタタップの位置における再構成サンプル値と前記エリア内の前記平均サンプル値との差を計算するステップと、
前記単一フィルタタップの前記位置における前記再構成サンプル値と前記エリア内の前記平均サンプル値との前記差に基づいてフィルタリングされる前記サンプルに前記ビデオフィルタを適用するステップと
を含む、請求項1に記載の方法。
【請求項6】
前記ビデオフィルタのフィルタ形状構成のグループから前記第1のフィルタ形状構成を選択するステップ
をさらに含む、請求項1に記載の方法。
【請求項7】
前記グループ内の前記フィルタ形状構成はそれぞれ、前記フィルタタップの数を有する、請求項6に記載の方法。
【請求項8】
前記グループ内の1つまたは複数のフィルタ形状構成は、前記第1のフィルタ形状構成とは異なる数のフィルタタップを有する、請求項6に記載の方法。
【請求項9】
前記ビデオを搬送する前記コーディングされたビデオビットストリームからインデックスをデコードするステップであって、前記インデックスは、前記ビデオフィルタの前記グループからの前記第1のフィルタ形状構成の選択を示す、ステップ
をさらに含む、請求項6に記載の方法。
【請求項10】
ブロックレベル、コーディングツリーユニット(CTU)レベル、スーパーブロック(SB)レベル、ビデオパラメータセット(VPS)、シーケンスパラメータセット(SPS)、ピクチャパラメータセット(PPS)、適応パラメータセット(APS)、スライスヘッダ、タイルヘッダ、およびフレームヘッダのうちの少なくとも1つのシンタックスシグナリングから前記インデックスをデコードするステップ
をさらに含む、請求項9に記載の方法。
【請求項11】
2つのフィルタタップの位置におけるサンプル値のデルタ値を可能な量子化出力の数のうちの1つに量子化するステップであって、前記可能な量子化出力の数は、包括的に1から1024までの範囲の整数である、ステップ
をさらに含む、請求項1に記載の方法。
【請求項12】
ブロックレベル、コーディングツリーユニット(CTU)レベル、スーパーブロック(SB)レベル、ビデオパラメータセット(VPS)、シーケンスパラメータセット(SPS)、ピクチャパラメータセット(PPS)、適応パラメータセット(APS)、スライスヘッダ、タイルヘッダ、およびフレームヘッダのうちの少なくとも1つのシンタックスシグナリングからインデックスをデコードするステップであって、前記インデックスは前記可能な量子化出力の数を示す、ステップ
をさらに含む、請求項11に記載の方法。
【請求項13】
処理回路を備えるビデオデコーディングのための装置であって、前記処理回路は、
ビデオを搬送するコーディングされたビデオビットストリーム内の信号に基づいてビデオフィルタの第1のフィルタ形状構成に関連付けられたオフセット値を決定し、前記第1のフィルタ形状構成のフィルタタップの数は5未満であり、前記ビデオフィルタは非線形マッピングに基づき、
前記第1のフィルタ形状構成に関連する前記オフセット値を使用して、ファイル対象のサンプルに前記非線形マッピングベースのフィルタを適用する
ように構成される、装置。
【請求項14】
前記ビデオフィルタは、クロスコンポーネントサンプルオフセット(CCSO)フィルタおよびローカルサンプルオフセット(LSO)フィルタのうちの少なくとも1つを含む、請求項13に記載の装置。
【請求項15】
前記第1のフィルタ形状構成の前記フィルタタップの位置は、前記サンプルの位置を含む、請求項13に記載の装置。
【請求項16】
前記第1のフィルタ形状構成の前記フィルタタップの位置は、前記サンプルの位置を除く、請求項13に記載の装置。
【請求項17】
前記第1のフィルタ形状構成は単一フィルタタップを含み、前記処理回路は、
エリア内の平均サンプル値を決定し、
前記単一フィルタタップの位置における再構成サンプル値と前記エリア内の前記平均サンプル値との差を計算し、
前記単一フィルタタップの前記位置における前記再構成サンプル値と前記エリア内の前記平均サンプル値との前記差に基づいて前記サンプルに前記ビデオフィルタを適用する
ようにさらに構成される、請求項13に記載の装置。
【請求項18】
前記処理回路は、
前記ビデオフィルタのフィルタ形状構成のグループから前記第1のフィルタ形状構成を選択する
ように構成される、請求項13に記載の装置。
【請求項19】
前記グループ内の前記フィルタ形状構成はそれぞれ、前記フィルタタップの数を有する、請求項18に記載の装置。
【請求項20】
前記グループ内の1つまたは複数のフィルタ形状構成は、前記第1のフィルタ形状構成とは異なる数のフィルタタップを有する、請求項18に記載の装置。
【請求項21】
前記処理回路は、
前記ビデオを搬送する前記コーディングされたビデオビットストリームからインデックスをデコードし、前記インデックスは、前記ビデオフィルタの前記グループからの前記第1のフィルタ形状構成の選択を示す
ように構成される、請求項18に記載の装置。
【請求項22】
前記処理回路は、
ブロックレベル、コーディングツリーユニット(CTU)レベル、スーパーブロック(SB)レベル、ビデオパラメータセット(VPS)、シーケンスパラメータセット(SPS)、ピクチャパラメータセット(PPS)、適応パラメータセット(APS)、スライスヘッダ、タイルヘッダ、およびフレームヘッダのうちの少なくとも1つのシンタックスシグナリングから前記インデックスをデコードする
ように構成される、請求項21に記載の装置。
【請求項23】
前記処理回路は、
2つのフィルタタップの位置におけるサンプル値のデルタ値を可能な量子化出力の数のうちの1つに量子化し、前記可能な量子化出力の数は、包括的に1から1024までの範囲の整数である
ように構成される、請求項13に記載の装置。
【請求項24】
前記処理回路は
ブロックレベル、コーディングツリーユニット(CTU)レベル、スーパーブロック(SB)レベル、ビデオパラメータセット(VPS)、シーケンスパラメータセット(SPS)、ピクチャパラメータセット(PPS)、適応パラメータセット(APS)、スライスヘッダ、タイルヘッダ、およびフレームヘッダのうちの少なくとも1つのシンタックスシグナリングからインデックスをデコードし、前記インデックスは前記可能な量子化出力の数を示す
ように構成される、請求項23に記載の装置。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本出願は、2021年3月12日に出願された米国仮出願第63/160,560号「FLEXIBLE FILTER SHAPE FOR SAMPLE OFFSET」の優先権の利益を主張する、2021年9月28日に出願された米国特許出願第17/449,199号「METHOD AND APPARATUS FOR VIDEO FILTERING」の優先権の利益を主張する。上記出願の開示全体は、参照によりその全体が本明細書に組み込まれる。
【0002】
本開示は、一般にビデオコーディングに関連する実施形態を説明する。
【背景技術】
【0003】
本明細書で提供される背景技術の説明は、本開示の文脈を一般的に提示することを目的としている。本発明者らの研究は、この研究がこの背景技術の項で説明されている限りにおいて、および出願時に従来技術と見なされ得ない説明の態様は、本開示に対する従来技術として明示的にも暗示的にも認められない。
【0004】
ビデオコーディングおよびデコーディングは、動き補償を伴うインターピクチャ予測を使用して行わされ得る。非圧縮デジタルビデオは、一連のピクチャを含むことができ、各ピクチャは、例えば1920×1080の輝度サンプルおよび関連する色差サンプルの空間次元を有する。一連のピクチャは、例えば毎秒60枚のピクチャまたは60Hzの固定もしくは可変のピクチャレート(非公式にはフレームレートとしても知られている)を有することができる。非圧縮ビデオは、特定のビットレート要件を有する。例えば、サンプルあたり8ビットの1080p60 4:2:0ビデオ(60Hzのフレームレートで1920×1080の輝度サンプル解像度)は、1.5Gbit/sに近い帯域幅を必要とする。1時間のこのようなビデオは、600GByteを超える記憶空間を必要とする。
【0005】
ビデオコーディングおよびデコーディングの1つの目的は、圧縮による入力ビデオ信号の冗長性の低減であり得る。圧縮は、前述の帯域幅および/または記憶空間の要件を、場合によっては2桁以上低減するのに役立ち得る。可逆圧縮および非可逆圧縮の両方、ならびにそれらの組み合わせを使用することができる。可逆圧縮とは、原信号の正確なコピーを圧縮された原信号から再構成することができる技術を指す。非可逆圧縮を使用する場合、再構成された信号は原信号と同一ではあり得ないが、原信号と再構成された信号との間の歪みは、再構成された信号を意図された用途に利用するのに十分小さい。ビデオの場合、非可逆圧縮が広く用いられている。許容される歪みの量は用途に依存し、例えば、特定の消費者ストリーミング用途のユーザは、テレビ配信用途のユーザよりも高い歪みを許容し得る。達成可能な圧縮比は、より高い容認可能/許容可能な歪みがより高い圧縮比をもたらし得ることを反映し得る。
【0006】
ビデオエンコーダおよびデコーダは、例えば動き補償、変換、量子化、およびエントロピーコーディングを含む、いくつかの広範なカテゴリからの技術を利用し得る。
【0007】
ビデオコーデック技術は、イントラコーディングとして知られる技術を含み得る。イントラコーディングでは、以前に再構成された参照ピクチャからのサンプルまたは他のデータを参照することなく、サンプル値が表される。一部のビデオコーデックでは、ピクチャは、空間的にサンプルのブロックに細分される。サンプルのすべてのブロックがイントラモードでコーディングされる場合、そのピクチャは、イントラピクチャであり得る。イントラピクチャ、および独立デコーダリフレッシュピクチャなどのそれらの派生は、デコーダ状態をリセットするために使用され得、したがって、コーディングされたビデオビットストリームおよびビデオセッション内の1番目のピクチャとして、または静止画像として使用され得る。イントラブロックのサンプルは、変換を受け得、変換係数は、エントロピーコーディング前に量子化され得る。イントラ予測は、変換前ドメインにおけるサンプル値を最小化する技術であり得る。場合によっては、変換後のDC値が小さいほど、およびAC係数が小さいほど、エントロピーコーディング後のブロックを表すために所与の量子化ステップのサイズで必要とされるビットは少なくなる。
【0008】
例えばMPEG-2世代のコーディング技術から知られているような従来のイントラコーディングは、イントラ予測を使用しない。しかし、いくつかのより新規のビデオ圧縮技術は、例えば、空間的に近隣のデータのブロックやデコーディング順で先行するデータのブロックのエンコーディング/デコーディングの際に得られる周囲のサンプルデータおよび/またはメタデータから試行する技術を含む。そのような技術は、以後「イントラ予測」技術と呼ばれる。少なくともいくつかの場合において、イントラ予測は、再構成中の現在のピクチャからの参照データのみを使用し、参照ピクチャからの参照データは使用しないことに留意されたい。
【0009】
イントラ予測には多くの異なる形式があり得る。このような技術のうちの1つより多くが、所与のビデオコーディング技術において使用され得る場合、使用中の技術はイントラ予測モードでコーディングされ得る。特定の場合には、モードは下位モードおよび/またはパラメータを有することができ、これを個別にコーディングしたりモードコードワードに含ませたりすることができる。所与のモード/下位モード/パラメータの組み合わせにどのコードワードを用いるかによって、イントラ予測によるコーディング効率の向上に影響を及ぼすことができるので、コードワードをビットストリームに変換するのに用いられるエントロピーコーディング技術に影響を及ぼすことができる。
【0010】
イントラ予測の特定のモードは、H.264において導入され、H.265において改良され、共同探索モデル(JEM:joint exploration model)、多用途ビデオコーディング(VVC:versatile video coding)、およびベンチマークセット(BMS:benchmark set)などのより新しいコーディング技術でさらに改良された。予測子ブロックは、すでに利用可能なサンプルに属する近傍サンプル値を使用して形成され得る。近傍サンプルのサンプル値は、方向に従って予測子ブロックにコピーされる。使用中の方向への参照は、ビットストリーム内でコーディングされ得るか、またはそれ自体が予測され得る。
【0011】
図1Aを参照すると、右下に示されているのは、H.265の33個の可能な予測子方向(35個のイントラモードのうちの33個のAngularモードに対応する)から知られる9つの予測子方向のサブセットである。矢印が収束している点(101)は、予測されているサンプルを表す。矢印は、サンプルが予測されている方向を表す。例えば、矢印(102)は、サンプル(101)が水平から45度の角度で右上にあるサンプルまたは複数のサンプルから予測されることを示す。同様に、矢印(103)は、サンプル(101)が水平から22.5度の角度でサンプル(101)の左下にあるサンプルまたは複数のサンプルから予測されることを示す。
【0012】
さらに図1Aを参照すると、左上には、4×4サンプルの正方形ブロック(104)(太い破線で示されている)が示されている。正方形ブロック(104)は、16個のサンプルを含み、これら16個のサンプルはそれぞれ、「S」、Y次元におけるその位置(例えば、行インデックス)、およびX次元におけるその位置(例えば、列インデックス)でラベル付けされている。例えば、サンプルS21は、Y次元において(上から)2番目のサンプルであり、X次元において(左から)1番目のサンプルである。同様に、サンプルS44は、Y次元およびX次元の両方において4番目の、ブロック(104)内のサンプルである。ブロックのサイズが4×4サンプルであるため、S44は右下にある。同様の番号付けスキームに従う参照サンプルがさらに示されている。参照サンプルは、ブロック(104)に対してR、そのY位置(例えば、行インデックス)、およびX位置(列インデックス)でラベル付けされている。H.264およびH.265の両方において、予測サンプルは、再構成中のブロックの近傍であり、したがって、負の値が使用される必要はない。
【0013】
イントラピクチャ予測は、シグナリングされた予測方向によって割り当てられるように、近傍サンプルからの参照サンプル値をコピーすることによって機能し得る。例えば、コーディングされたビデオビットストリームが、このブロックに関して、矢印(102)と一致する予測方向を示すシグナリングを含む、すなわち、サンプルが水平から45度の角度で右上にある予測サンプルまたは複数の予測サンプルから予測されると仮定する。その場合、同じ参照サンプルR05からサンプルS41、S32、S23、およびS14が予測される。次に、参照サンプルR08からサンプルS44が予測される。
【0014】
特定の場合には、特に、方向が45度で均等に割り切れない場合、参照サンプルを計算するために、例えば補間によって、複数の参照サンプルの値が組み合わされ得る。
【0015】
可能な方向の数は、ビデオコーディング技術が発展するにつれて増加している。H.264(2003年)では、9つの異なる方向が表され得る。これは、H.265(2013年)では33に増加しており、本開示の時点では、JEM/VVC/BMSが、最大で65の方向をサポートし得る。最も可能性の高い方向を特定するために実験が行われており、エントロピーコーディングの特定の技術は、それらの可能性の高い方向を少数のビットで表すために使用され、可能性の低い方向に関しては一定のペナルティを受け入れている。さらに、方向自体が、近傍のすでにデコードされたブロックで使用された近傍の方向から予測され得る場合がある。
【0016】
図1Bは、経時的に増加する予測方向の数を示すためにJEMによる65のイントラ予測方向を示す概略図(180)を示す。
【0017】
方向を表す、コーディングされたビデオビットストリーム内のイントラ予測方向ビットのマッピングは、ビデオコーディング技術ごとに異なり得、例えば、予測方向からイントラ予測モードへの単純な直接マッピング、コードワード、最確モードを含む複雑な適応方式、および同様の技術におよび得る。しかしながら、すべての場合において、ビデオコンテンツで特定の他の方向よりも統計的に可能性の低い特定の方向が存在し得る。ビデオ圧縮の目的は冗長性の低減であるため、それらの可能性の低い方向は、うまく機能するビデオコーディング技術では、可能性の高い方向よりも多くのビット数で表される。
【0018】
動き補償は、非可逆圧縮技術であり得、以前に再構成されたピクチャまたはその部分(参照ピクチャ)からのサンプルデータのブロックが、動きベクトル(以下MV)によって示される方向に空間的にシフトされた後に、新たに再構成されるピクチャまたはピクチャ部分の予測に使用される技術に関し得る。場合によっては、参照ピクチャは、現在再構成中のピクチャと同じであり得る。MVは、2つの次元XおよびY、または3つの次元を有し得、第3の次元は、使用中の参照ピクチャの指示である(後者は、間接的に時間次元であり得る)。
【0019】
一部のビデオ圧縮技術では、サンプルデータの特定のエリアに適用可能なMVは、他のMVから、例えば、再構成中のエリアに空間的に隣接し、かつデコーディング順序でそのMVに先行するサンプルデータの別のエリアに関連するMVから予測され得る。そうすることにより、MVのコーディングに必要なデータ量を実質的に削減することができ、それによって冗長性が排除され、圧縮が増加する。例えば、カメラ(自然なビデオとして知られている)から導出された入力ビデオ信号をコーディングするとき、単一のMVが適用可能なエリアよりも大きいエリアが同様の方向に移動する統計的尤度があり、したがって、場合によっては、近傍エリアのMVから導出された同様の動きベクトルを使用して予測することができるため、MV予測は、効果的に機能することができる。これにより、所与のエリアについて見つかったMVは、周囲のMVから予測されたMVと類似または同じになり、エントロピーコーディング後に、MVを直接コーディングする場合に使用されるよりも少ないビット数で表すことができる。場合によっては、MV予測は、原信号(すなわち、サンプルストリーム)から導出された信号(すなわち、MV)の可逆圧縮の一例であり得る。他の場合には、例えば、いくつかの周囲のMVから予測子を計算するときの丸め誤差のために、MV予測自体は非可逆であり得る。
【0020】
H.265/HEVC(ITU-T Rec.H.265、「High Efficiency Video Coding」、2016年12月)に様々なMV予測機構が記載されている。ここでは、H.265が提供する多くのMV予測機構のうち、「空間マージ」と呼ばれる技術について説明する。
【0021】
図2を参照すると、現在のブロック(201)は、空間的にシフトされた同じサイズの前のブロックから予測可能であるように動き検索プロセス中にエンコーダによって見つけられたサンプルを含む。そのMVを直接コーディングする代わりに、MVは、A0、A1、およびB0、B1、B2(それぞれ202~206)で示される5つの周囲サンプルのいずれか1つに関連付けられたMVを使用して、1つまたは複数の参照ピクチャに関連付けられたメタデータから、例えば最新の(デコーディング順序の)参照ピクチャから導出することができる。H.265では、MV予測は、近傍ブロックが使用しているのと同じ参照ピクチャからの予測子を使用することができる。
【発明の概要】
【課題を解決するための手段】
【0022】
本開示の態様は、ビデオエンコーディング/デコーディングのための方法および装置を提供する。いくつかの例では、ビデオデコーディングのための装置は処理回路を含む。処理回路は、ビデオを搬送するコーディングされたビデオビットストリーム内の信号に基づいて、非線形マッピングベースのフィルタの第1のフィルタ形状構成に関連付けられたオフセット値を決定する。第1のフィルタ形状構成のフィルタタップの数は5未満である。処理回路は、第1のフィルタ形状構成に関連付けられたオフセット値を使用して、フィルタリング対象のサンプルに非線形マッピングベースのフィルタを適用する。
【0023】
いくつかの例では、非線形マッピングベースのフィルタは、クロスコンポーネントサンプルオフセット(CCSO)フィルタおよびローカルサンプルオフセット(LSO)フィルタのうちの少なくとも1つを含む。
【0024】
一例では、第1のフィルタ形状構成のフィルタタップの位置は、フィルタリング対象のサンプルの位置を含む。別の例では、第1のフィルタ形状構成のフィルタタップの位置は、フィルタリング対象のサンプルの位置を除く。
【0025】
いくつかの例では、第1のフィルタ形状構成は、単一フィルタタップを含む。処理回路は、エリア内の平均サンプル値を決定し、単一フィルタタップの位置における再構成サンプル値とエリア内の平均サンプル値との差を計算する。次いで、処理回路は、単一フィルタタップの位置における再構成サンプル値とエリア内の平均サンプル値との差に基づいて、フィルタリング対象のサンプルに非線形マッピングベースのフィルタを適用する。
【0026】
いくつかの例では、処理回路は、非線形マッピングベースのフィルタのフィルタ形状構成のグループから第1のフィルタ形状構成を選択する。一例では、グループ内のフィルタ形状構成はそれぞれフィルタタップの数を有する。別の例では、グループ内の1つまたは複数のフィルタ形状構成は、第1のフィルタ形状構成とは異なる数のフィルタタップを有する。いくつかの例では、処理回路は、ビデオを搬送するコーディングされたビデオビットストリームからインデックスをデコードし、インデックスは、非線形マッピングベースのフィルタのグループからの第1のフィルタ形状構成の選択を示す。例えば、処理回路は、ブロックレベル、コーディングツリーユニット(CTU)レベル、スーパーブロック(SB)レベル、ビデオパラメータセット(VPS)、シーケンスパラメータセット(SPS)、ピクチャパラメータセット(PPS)、適応パラメータセット(APS)、スライスヘッダ、タイルヘッダ、およびフレームヘッダのうちの少なくとも1つのシンタックスシグナリングからインデックスをデコードする。
【0027】
いくつかの例では、処理回路は、2つのフィルタタップの位置におけるサンプル値のデルタ値を可能な量子化出力の数のうちの1つに量子化し、可能な量子化出力の数は、包括的に1から1024までの範囲の整数である。例えば、処理回路は、ブロックレベル、コーディングツリーユニット(CTU)レベル、スーパーブロック(SB)レベル、ビデオパラメータセット(VPS)、シーケンスパラメータセット(SPS)、ピクチャパラメータセット(PPS)、適応パラメータセット(APS)、スライスヘッダ、タイルヘッダ、およびフレームヘッダのうちの少なくとも1つのシンタックスシグナリングからインデックスをデコードし、インデックスは可能な量子化出力の数を示す。
【0028】
本開示の態様はまた、コンピュータによって実行されると、コンピュータにビデオエンコーディング/デコーディングのための方法のいずれかを行わせる命令を格納する非一時的コンピュータ可読媒体を提供する。
【0029】
以下の詳細な説明と添付の図面とから、開示されている保護対象のさらなる特徴、性質および様々な効果がより明らかになる。
【図面の簡単な説明】
【0030】
図1A】イントラ予測モードの例示的なサブセットの概略図である。
図1B】例示的なイントラ予測方向の図である。
図2】一例における現在のブロックおよびその周囲の空間マージ候補の概略図である。
図3】一実施形態による通信システム(300)の簡略化された概略ブロック図である。
図4】一実施形態による通信システム(400)の簡略化された概略ブロック図である。
図5】一実施形態によるデコーダの簡略ブロック図の概略図である。
図6】一実施形態によるエンコーダの簡略ブロック図の概略図である。
図7】別の実施形態によるエンコーダのブロック図である。
図8】別の実施形態によるデコーダのブロック図である。
図9】本開示の実施形態によるフィルタ形状の例を示す図である。
図10A】本開示の実施形態による勾配を計算するために使用されるサブサンプリングされた位置の一例を示す図である。
図10B】本開示の実施形態による勾配を計算するために使用されるサブサンプリングされた位置の別の例を示す図である。
図10C】本開示の実施形態による勾配を計算するために使用されるサブサンプリングされた位置のさらに別の例を示す図である。
図10D】本開示の実施形態による勾配を計算するために使用されるサブサンプリングされた位置のさらに別の例を示す図である。
図11A】本開示の実施形態による仮想境界フィルタリングプロセスの一例を示す図である。
図11B】本開示の実施形態による仮想境界フィルタリングプロセスの別の例を示す図である。
図12A】本開示の実施形態による仮想境界における対称パディング動作の一例を示す図である。
図12B】本開示の実施形態による仮想境界における対称パディング動作の別の例を示す図である。
図12C】本開示の実施形態による仮想境界における対称パディング動作のさらに別の例を示す図である。
図12D】本開示の実施形態による仮想境界における対称パディング動作のさらに別の例を示す図である。
図12E】本開示の実施形態による仮想境界における対称パディング動作のさらに別の例を示す図である。
図12F】本開示の実施形態による仮想境界における対称パディング動作のさらに別の例を示す図である。
図13】本開示のいくつかの実施形態によるピクチャのパーティション例を示す図である。
図14】いくつかの例におけるピクチャの四分木分割パターンを示す図である。
図15】本開示の一実施形態によるクロスコンポーネントフィルタを示す図である。
図16】本開示の一実施形態によるフィルタ形状の一例を示す図である。
図17】本開示のいくつかの実施形態によるクロスコンポーネントフィルタのシンタックス例を示す図である。
図18A】本開示の一実施形態による、ルマサンプルに対するクロマサンプルの例示的な位置を示す図である。
図18B】本開示の別の実施形態による、ルマサンプルに対するクロマサンプルの例示的な位置を示す図である。
図19】本開示の一実施形態による方向探索の一例を示す図である。
図20】いくつかの例における部分空間投影の一例を示す図である。
図21】本開示の一実施形態による複数のサンプル適応オフセット(SAO)タイプの表である。
図22】いくつかの例におけるエッジオフセットにおける画素分類のためのパターンの例を示す図である。
図23】いくつかの例におけるエッジオフセットの画素分類規則の表である。
図24】シグナリングされ得るシンタックスの例を示す図である。
図25】本開示のいくつかの実施形態によるフィルタサポートエリアの例を示す図である。
図26】本開示のいくつかの実施形態による別のフィルタサポートエリアの例を示す図である。
図27A】本開示の一実施形態による81の組み合わせを有する表である。
図27B】本開示の一実施形態による81の組み合わせを有する表である。
図27C】本開示の一実施形態による81の組み合わせを有する表である。
図28】一例における3つのフィルタタップの8つのフィルタ形状構成を示す図である。
図29】一例における3つのフィルタタップの12のフィルタ形状構成を示す図である。
図30】非線形マッピングベースのフィルタのための2つの候補フィルタ形状構成の一例を示す図である。
図31】本開示の一実施形態によるプロセスの概要を示すフローチャートである。
図32】本開示の一実施形態によるプロセスの概要を示すフローチャートである。
図33】一実施形態によるコンピュータシステムの概略図である。
【発明を実施するための形態】
【0031】
図3は、本開示の一実施形態による通信システム(300)の簡略ブロック図を示す。通信システム(300)は、例えばネットワーク(350)を介して互いに通信可能な複数の端末デバイスを含む。例えば、通信システム(300)は、ネットワーク(350)を介して相互接続された端末デバイス(310)および(320)の第1の対を含む。図3の例では、端末デバイス(310)および(320)の第1の対は、データの一方向送信を行う。例えば、端末デバイス(310)は、ネットワーク(350)を介して他の端末デバイス(320)に送信するためのビデオデータ(例えば、端末デバイス(310)によってキャプチャされたビデオピクチャのストリーム)をコーディングし得る。エンコードされたビデオデータは、1つまたは複数のコーディングされたビデオビットストリームの形態で送信され得る。端末デバイス(320)は、ネットワーク(350)からコーディングされたビデオデータを受信し、コーディングされたビデオデータをデコードしてビデオピクチャを復元し、復元されたビデオデータに従ってビデオピクチャを表示することができる。単方向データ送信は、メディアサービング用途などで一般的であり得る。
【0032】
別の例では、通信システム(300)は、例えばビデオ会議中に発生することがあるコーディングされたビデオデータの双方向送信を行う端末デバイス(330)および(340)の第2の対を含む。データの双方向送信のために、一例では、端末デバイス(330)および(340)の各端末デバイスは、ネットワーク(350)を介して端末デバイス(330)および(340)の他方の端末デバイスに送信するためのビデオデータ(例えば、端末デバイスによってキャプチャされたビデオピクチャのストリーム)をコーディングし得る。端末デバイス(330)および(340)の各端末デバイスはまた、端末デバイス(330)および(340)の他方の端末デバイスによって送信されたコーディングされたビデオデータを受信し得、コーディングされたビデオデータをデコードしてビデオピクチャを復元し得、復元されたビデオデータに従ってアクセス可能な表示デバイスにビデオピクチャを表示し得る。
【0033】
図3の例では、端末デバイス(310)、(320)、(330)、および(340)は、サーバ、パーソナルコンピュータ、およびスマートフォンとして示され得るが、本開示の原理はそのように限定されなくてもよい。本開示の実施形態は、ラップトップコンピュータ、タブレットコンピュータ、メディアプレーヤ、および/または専用ビデオ会議機器に適用される。ネットワーク(350)は、例えば、有線および/または無線通信ネットワークを含む、端末デバイス(310)、(320)、(330)および(340)間でコーディングされたビデオデータを伝達する任意の数のネットワークを表す。通信ネットワーク(350)は、回線交換および/またはパケット交換チャネルでデータを交換し得る。代表的なネットワークには、電気通信ネットワーク、ローカルエリアネットワーク、ワイドエリアネットワーク、および/またはインターネットが含まれる。本議論の目的のために、ネットワーク(350)のアーキテクチャおよびトポロジは、本明細書で以下に説明されない限り、本開示の動作にとって重要ではないことがある。
【0034】
図4は、開示されている主題の用途の例として、ストリーミング環境におけるビデオエンコーダおよびビデオデコーダの配置を示す。開示された主題は、例えば、ビデオ会議、デジタルTV、ならびにCD、DVD、およびメモリスティックなどを含むデジタルメディアへの圧縮ビデオの記憶などを含む他のビデオ対応用途に等しく適用可能であり得る。
【0035】
ストリーミングシステムは、ビデオソース(401)、例えば、圧縮されていないビデオピクチャのストリーム(402)を作成する、例えば、デジタルカメラを含むことができるキャプチャサブシステム(413)を含み得る。一例では、ビデオピクチャのストリーム(402)は、デジタルカメラによって撮影されたサンプルを含む。エンコードされたビデオデータ(404)(またはコーディングされたビデオビットストリーム)と比較して高いデータ量を強調するために太線として示されているビデオピクチャのストリーム(402)は、ビデオソース(401)に結合されたビデオエンコーダ(403)を含む電子デバイス(420)によって処理され得る。ビデオエンコーダ(403)は、ハードウェア、ソフトウェア、またはそれらの組み合わせを含み、以下により詳細に説明されるように、開示された主題の態様を可能にするかまたは実施することができる。エンコードされたビデオデータ(404)(またはエンコードされたビデオビットストリーム(404))は、ビデオピクチャのストリーム(402)と比較してより少ないデータ量を強調するために細い線として描かれ、将来の使用のためにストリーミングサーバ(405)に格納することができる。図4のクライアントサブシステム(406)および(408)などの1つまたは複数のストリーミングクライアントサブシステムは、エンコードされたビデオデータ(404)のコピー(407)および(409)を検索するためにストリーミングサーバ(405)にアクセスし得る。クライアントサブシステム(406)は、例えば電子デバイス(430)内のビデオデコーダ(410)を含むことができる。ビデオデコーダ(410)は、エンコードされたビデオデータの入力コピー(407)をデコードし、ディスプレイ(412)(例えば、表示画面)または他のレンダリングデバイス(図示せず)上にレンダリングすることができるビデオピクチャの出力ストリーム(411)を作成する。いくつかのストリーミングシステムでは、エンコードされたビデオデータ(404)、(407)、および(409)(例えば、ビデオビットストリーム)を、特定のビデオコーディング/圧縮規格に従ってエンコードすることができる。例えば、ITU-T勧告H.265などが挙げられる。一例では、開発中のビデオコーディング規格は、多用途ビデオコーディング(VVC)として非公式に知られている。開示されている主題は、VVCの文脈で使用され得る。
【0036】
電子デバイス(420)および(430)は、他の構成要素(図示せず)を含むことができることに留意されたい。例えば、電子デバイス(420)はビデオデコーダ(図示せず)を含むことができ、電子デバイス(430)はビデオエンコーダ(図示せず)も含むことができる。
【0037】
図5は、本開示の一実施形態によるビデオデコーダ(510)のブロック図を示す。ビデオデコーダ(510)は、電子デバイス(530)に含まれ得る。電子デバイス(530)は、受信器(531)(例えば、受信回路)を含むことができる。ビデオデコーダ(510)は、図4の例のビデオデコーダ(410)の代わりに使用され得る。
【0038】
受信器(531)は、ビデオデコーダ(510)によってデコードされる1つまたは複数のコーディングされたビデオシーケンスを受信し得、同じまたは別の実施形態では、一度に1つのコーディングされたビデオシーケンスを受信し、各コーディングされたビデオシーケンスのデコーディングは、他のコーディングされたビデオシーケンスから独立している。コーディングされたビデオシーケンスは、チャネル(501)から受信され得、チャネル(501)は、エンコードされたビデオデータを格納する記憶デバイスへのハードウェア/ソフトウェアリンクであり得る。受信器(531)は、それぞれの使用エンティティ(図示せず)に転送され得る他のデータ、例えば、コーディングされたオーディオデータおよび/または補助データストリームとともにエンコードされたビデオデータを受信し得る。受信器(531)は、コーディングされたビデオシーケンスを他のデータから分離し得る。ネットワークジッタに対抗するために、バッファメモリ(515)を、受信器(531)とエントロピーデコーダ/パーサ(520)(以下、「パーサ(520)」)との間に結合し得る。特定の用途では、バッファメモリ(515)は、ビデオデコーダ(510)の一部である。他の場合には、ビデオデコーダ(510)の外部にあってもよい(図示せず)。さらに他の場合には、例えばネットワークジッタに対抗するためにビデオデコーダ(510)の外部にバッファメモリ(図示せず)があり、さらに例えば再生タイミングを処理するためにビデオデコーダ(510)の内部に別のバッファメモリ(515)があり得る。受信器(531)が十分な帯域幅および制御可能性の格納/転送デバイスから、またはアイソシンクロナスネットワークからデータを受信しているとき、バッファメモリ(515)は必要ないか、または小さくてよい。インターネットなどのベストエフォートパケットネットワークで使用するために、バッファメモリ(515)が必要とされることがあり、比較的大きくてもよく、好適には適応サイズであってもよく、ビデオデコーダ(510)の外部のオペレーティングシステムまたは同様の要素(図示せず)に少なくとも部分的に実装され得る。
【0039】
ビデオデコーダ(510)は、コーディングされたビデオシーケンスからシンボル(521)を再構成するためのパーサ(520)を含み得る。これらのシンボルのカテゴリは、ビデオデコーダ(510)の動作を管理するために使用される情報と、潜在的に、図5に示したように、電子デバイス(530)の不可欠な部分ではないが電子デバイス(530)に結合することができるレンダデバイス(512)(例えば、表示画面)などのレンダリングデバイスを制御するための情報を含む。レンダリングデバイス(複数可)の制御情報は、補足拡張情報(SEI(Supplemental Enhancement Information)メッセージ)またはビデオユーザビリティ情報(VUI:Video Usability Information)パラメータセットフラグメント(図示せず)の形式であり得る。パーサ(520)は、受信したコーディングされたビデオシーケンスを解析/エントロピーデコードし得る。コーディングされたビデオシーケンスのコーディングは、ビデオコーディング技術または規格に従うことができ、可変長コーディング、ハフマンコーディング、文脈依存の有無にかかわらず算術コーディングなどを含む様々な原則に従うことができる。パーサ(520)は、グループに対応する少なくとも1つのパラメータに基づいて、コーディングされたビデオシーケンスから、ビデオデコーダ内の画素のサブグループの少なくとも1つのサブグループパラメータのセットを抽出し得る。サブグループには、Group of Pictures(GOP)、ピクチャ、タイル、スライス、マクロブロック、コーディングユニット(CU)、ブロック、変換ユニット(TU)、予測ユニット(PU)などを含めることができる。パーサ(520)はまた、変換係数、量子化器パラメータ値、動きベクトルなどのコーディングされたビデオシーケンス情報から抽出し得る。
【0040】
パーサ(520)は、バッファメモリ(515)から受信したビデオシーケンスに対してエントロピーデコーディング/解析動作を行って、シンボル(521)を作成し得る。
【0041】
シンボル(521)の再構成は、コーディングされたビデオピクチャまたはその一部(インターピクチャおよびイントラピクチャ、インターブロックおよびイントラブロックなど)のタイプ、および他の要因に応じて、複数の異なるユニットを含むことができる。どのユニットがどのように関与するかは、パーサ(520)によってコーディングされたビデオシーケンスから解析されたサブグループ制御情報によって制御することができる。パーサ(520)と以下の複数のユニットとの間のそのようなサブグループ制御情報の流れは、分かりやすくするために描かれていない。
【0042】
すでに述べた機能ブロックを超えて、ビデオデコーダ(510)は、以下に説明するように、いくつかの機能ユニットに概念的に細分され得る。商業的制約の下で動作する実際の実装では、これらのユニットの多くは互いに密接に相互作用し、少なくとも部分的には互いに統合することができる。しかしながら、開示されている主題を説明する目的のために、以下の機能ユニットに概念的に細分するのが適切である。
【0043】
第1のユニットはスケーラ/逆変換ユニット(551)である。スケーラ/逆変換ユニット(551)は、量子化された変換係数と、使用する変換、ブロックサイズ、量子化係数、量子化スケーリング行列などを含む制御情報とをパーサ(520)からシンボル(521)として受け取る。スケーラ/逆変換ユニット(551)は、アグリゲータ(555)に入力され得るサンプル値を含むブロックを出力することができる。
【0044】
場合によっては、スケーラ/逆変換(551)の出力サンプルは、イントラコーディングされたブロックに関係することができ、つまり、以前に再構成されたピクチャからの予測情報を使用していないが、現在のピクチャの以前に再構成された部分からの予測情報を使用できるブロックである。そのような予測情報を、イントラピクチャ予測ユニット(552)によって提供することができる。場合によっては、イントラピクチャ予測ユニット(552)は、現在のピクチャバッファ(558)からフェッチされた周囲のすでに再構成された情報を使用して、再構成中のブロックと同じサイズおよび形状のブロックを生成する。現在のピクチャバッファ(558)は、例えば、部分的に再構成された現在のピクチャおよび/または完全に再構成された現在のピクチャをバッファに入れる。アグリゲータ(555)は、場合によっては、サンプルごとに、イントラ予測ユニット(552)が生成した予測情報を、スケーラ/逆変換ユニット(551)によって提供される出力サンプル情報に追加する。
【0045】
他の場合では、スケーラ/逆変換ユニット(551)の出力サンプルは、インターコーディングされ、潜在的に動き補償されたブロックに関係し得る。このような場合、動き補償予測ユニット(553)は、参照ピクチャメモリ(557)にアクセスして、予測に使用されるサンプルをフェッチすることができる。ブロックに関連するシンボル(521)に従ってフェッチされたサンプルを動き補償した後、これらのサンプルは、出力サンプル情報を生成するために、アグリゲータ(555)によってスケーラ/逆変換ユニット(551)の出力に追加できる(この場合、残差サンプルまたは残差信号と呼ばれる)。動き補償予測ユニット(553)が予測サンプルをフェッチする参照ピクチャメモリ(557)内のアドレスは、動きベクトルによって制御され得、例えば、X、Y、および参照ピクチャコンポーネントを有することができるシンボル(521)の形式で動き補償予測ユニット(553)に利用可能である。動き補償はまた、サブサンプルの正確な動きベクトルが使用されているときに参照ピクチャメモリ(557)からフェッチされたサンプル値の補間、動きベクトル予測機構などを含むことができる。
【0046】
アグリゲータ(555)の出力サンプルは、ループフィルタユニット(556)において様々なループフィルタリング技術の対象となり得る。ビデオ圧縮技術は、コーディングされたビデオシーケンス(コーディングされたビデオビットストリームとも呼ばれる)に含まれるパラメータによって制御され、パーサ(520)からのシンボル(521)としてループフィルタユニット(556)に利用可能になるインループフィルタ技術を含むことができるが、コーディングされたピクチャまたはコーディングされたビデオシーケンスの前の(デコーディング順序で)部分のデコーディング中に取得されたメタ情報に応答することができ、以前に再構成およびループフィルタリングされたサンプル値に応答することもできる。
【0047】
ループフィルタユニット(556)の出力は、レンダデバイス(512)に出力され得るだけでなく、将来のインターピクチャ予測で使用するために参照ピクチャメモリ(557)に格納され得るサンプルストリームであり得る。
【0048】
特定のコーディングされたピクチャは、完全に再構成されると、将来の予測のための参照ピクチャとして使用され得る。例えば、現在のピクチャに対応するコーディングされたピクチャが完全に再構成され、コーディングされたピクチャが(例えば、パーサ(520)によって)参照ピクチャとして識別されると、現在のピクチャバッファ(558)は、参照ピクチャメモリ(557)の一部になることができ、次のコーディングされたピクチャの再構成を開始する前に、新しい現在のピクチャバッファを再割り当てすることができる。
【0049】
ビデオデコーダ(510)は、ITU-T Rec.H.265などの規格における所定のビデオ圧縮技術に従ってデコーディング動作を行い得る。コーディングされたビデオシーケンスは、コーディングされたビデオシーケンスが、ビデオ圧縮技術または規格で文書化されているようなビデオ圧縮技術または規格のシンタックスおよびプロファイルの両方に準拠するという意味で、使用されているビデオ圧縮技術または規格によって指定されたシンタックスに準拠し得る。具体的には、プロファイルは、ビデオ圧縮技術または規格で利用可能なすべてのツールの中から、そのプロファイルの下での使用に利用可能な唯一のツールとして特定のツールを選択し得る。また、コンプライアンスのために必要なのは、コーディングされたビデオシーケンスの複雑さが、ビデオ圧縮技術または規格のレベルによって定義された範囲内にあることであり得る。場合によっては、レベルは、最大ピクチャサイズ、最大フレームレート、最大再構成サンプルレート(例えば毎秒メガサンプルで測定される)、および最大参照ピクチャサイズなどを制限する。レベルによって設定された限界は、場合によっては、仮想参照デコーダ(HRD:Hypothetical Reference Decoder)の仕様、およびコーディングされたビデオシーケンスでシグナリングされるHRDバッファ管理のメタデータによってさらに制限され得る。
【0050】
一実施形態では、受信器(531)は、エンコードされたビデオとともに追加の(冗長な)データを受信し得る。追加のデータは、コーディングされたビデオシーケンス(複数可)の一部として含まれることがある。追加のデータは、データを適切にデコードするため、および/または元のビデオデータをより正確に再構成するために、ビデオデコーダ(510)によって使用され得る。追加のデータは、例えば、時間、空間、または信号雑音比(SNR:signal noise ratio)拡張レイヤ、冗長スライス、冗長ピクチャ、および前方誤り訂正コードなどの形式であり得る。
【0051】
図6は、本開示の一実施形態によるビデオエンコーダ(603)のブロック図を示す。ビデオエンコーダ(603)は、電子デバイス(620)に含まれる。電子デバイス(620)は、送信器(640)(例えば、送信回路)を含む。ビデオエンコーダ(603)を、図4の例のビデオエンコーダ(403)の代わりに使用することができる。
【0052】
ビデオエンコーダ(603)は、ビデオエンコーダ(603)によってコーディングされるビデオ画像(複数可)をキャプチャし得るビデオソース(601)(図6の例では電子デバイス(620)の一部ではない)からビデオサンプルを受信することができる。別の例では、ビデオソース(601)は電子デバイス(620)の一部である。
【0053】
ビデオソース(601)は、ビデオエンコーダ(603)によってコーディングされるソースビデオシーケンスを、任意の適切なビット深度(例えば、8ビット、10ビット、12ビット、…)、任意の色空間(例えば、BT.601 Y CrCB、RGB、…)、および任意の適切なサンプリング構造(例えば、Y CrCb 4:2:0、Y CrCb 4:4:4)のものとすることができるデジタルビデオサンプルストリームの形態で提供し得る。メディアサービングシステムにおいて、ビデオソース(601)は、予め用意されたビデオを格納する記憶デバイスであってもよい。ビデオ会議システムにおいて、ビデオソース(601)は、ローカル画像情報をビデオシーケンスとしてキャプチャするカメラであってもよい。ビデオデータは、順番に見たときに動きを与える複数の個別のピクチャとして提供され得る。ピクチャ自体は、画素の空間配列として編成することができ、各画素は、使用中のサンプリング構造、色空間などに応じて、1つまたは複数のサンプルを含むことができる。当業者は、画素とサンプルとの間の関係を容易に理解することができる。以下の説明は、サンプルに焦点を合わせている。
【0054】
一実施形態によれば、ビデオエンコーダ(603)は、リアルタイムで、または用途によって要求される他の任意の時間制約の下で、ソースビデオシーケンスのピクチャをコーディングされたビデオシーケンス(643)へとコーディングおよび圧縮し得る。適切なコーディング速度を強制することは、コントローラ(650)の1つの機能である。いくつかの実施形態では、コントローラ(650)は、以下に説明するように他の機能ユニットを制御し、他の機能ユニットに機能的に結合される。分かりやすくするために、結合は描かれていない。コントローラ(650)によって設定されるパラメータには、レート制御関連のパラメータ(ピクチャスキップ、量子化器、レート歪み最適化手法のラムダ値など)、ピクチャサイズ、Group of Pictures(GOP)レイアウト、最大動きベクトル検索範囲などが含まれ得る。コントローラ(650)は、特定のシステム設計に最適化されたビデオエンコーダ(603)に関する他の適切な機能を有するように構成され得る。
【0055】
いくつかの実施形態では、ビデオエンコーダ(603)は、コーディングループで動作するように構成される。過度に簡略化された説明として、一例では、コーディングループは、ソースコーダ(630)(例えば、コーディングされる入力ピクチャと、参照ピクチャ(複数可)とに基づいて、シンボルストリームのようなシンボルを生成することを担当する)と、ビデオエンコーダ(603)に組み込まれた(ローカル)デコーダ(633)とを含むことができる。デコーダ(633)は、(リモート)デコーダも作成するのと同様の方法でサンプルデータを作成するためにシンボルを再構成する(開示された主題で考慮されるビデオ圧縮技術では、シンボルとコーディングされたビデオビットストリームとの間の任意の圧縮が可逆的であるため)。その再構成されたサンプルストリーム(サンプルデータ)は、参照ピクチャメモリ(634)に入力される。シンボルストリームのデコーディングにより、デコーダ位置(ローカルまたはリモート)に関係なくビットイグザクト(bit-exact)結果が得られるため、参照ピクチャメモリ(634)内のコンテンツもまたローカルエンコーダとリモートエンコーダとの間でビットイグザクトになる。言い換えると、エンコーダの予測部分は、デコーディング中に予測を使用するときにデコーダが「見る」のとまったく同じサンプル値を参照ピクチャサンプルとして「見る」。参照ピクチャの同期性(および例えばチャネルエラーに起因して同期性が維持され得ない場合に結果として生じるドリフト)のこの基本原理は、一部の関連技術でも使用される。
【0056】
「ローカル」デコーダ(633)の動作は、ビデオデコーダ(510)などの「リモート」デコーダの動作と同じであり得、これは、図5に関連して上記で詳細に説明されている。しかしながら、図5も簡単に参照すると、シンボルが利用可能であり、エントロピーコーダ(645)およびパーサ(520)によるコーディングされたビデオシーケンスへのシンボルのエンコーディング/デコーディングは可逆であり得、バッファメモリ(515)およびパーサ(520)を含むビデオデコーダ(510)のエントロピーデコーディング部分は、ローカルデコーダ(633)に完全に実装されていないことがある。
【0057】
この点で行われ得る観察は、デコーダに存在する解析/エントロピーデコーディング以外のデコーダ技術が、実質的に同一の機能形式で、対応するエンコーダにも必ず存在する必要があることである。このため、開示されている主題はデコーダ動作に焦点を合わせている。エンコーダ技術の説明は、包括的に説明されているデコーダ技術の逆であるため、省略され得る。特定のエリアに関してのみ、より詳細な説明が必要とされ、以下で提供される。
【0058】
動作中、いくつかの例では、ソースコーダ(630)は、動き補償予測コーディングを行ってもよく、これは、「参照ピクチャ」として指定されたビデオシーケンスからの1つまたは複数の以前にコーディングされたピクチャを参照して入力ピクチャを予測的にコーディングする。このようにして、コーディングエンジン(632)は、入力ピクチャの画素ブロックと、入力ピクチャへの予測参照(複数可)として選択され得る参照ピクチャ(複数可)の画素ブロックとの間の差異をコーディングする。
【0059】
ローカルビデオデコーダ(633)は、ソースコーダ(630)によって作成されたシンボルに基づいて、参照ピクチャとして指定され得るピクチャのコーディングされたビデオデータをデコードし得る。コーディングエンジン(632)の動作は、好適には、非可逆プロセスであり得る。コーディングされたビデオデータがビデオデコーダ(図6には示されていない)でデコードされ得るとき、再構成されたビデオシーケンスは通常、いくらかの誤差を有するソースビデオシーケンスのレプリカであり得る。ローカルビデオデコーダ(633)は、参照ピクチャ上でビデオデコーダによって行わされ得るデコーディングプロセスを複製し、再構成された参照ピクチャを参照ピクチャキャッシュ(634)に格納させ得る。このようにして、ビデオエンコーダ(603)は、遠端ビデオデコーダによって取得される再構成された参照ピクチャとして共通のコンテンツを有する再構成された参照ピクチャのコピーをローカルに格納し得る(送信エラーがない)。
【0060】
予測子(635)は、コーディングエンジン(632)の予測検索を行い得る。すなわち、コーディングされる新しいピクチャに対して、予測子(635)は、サンプルデータ(候補参照画素ブロックとして)または新しいピクチャの適切な予測参照として役立ち得る参照ピクチャ動きベクトル、ブロック形状などの特定のメタデータについて、参照ピクチャメモリ(634)を検索し得る。予測子(635)は、適切な予測参照を見つけるために、画素ブロックごとに1つのサンプルブロックで動作し得る。場合によっては、予測子(635)によって取得された検索結果によって決定されるように、入力ピクチャは、参照ピクチャメモリ(634)に格納された複数の参照ピクチャから引き出された予測参照を有し得る。
【0061】
コントローラ(650)は、例えば、ビデオデータをエンコードするために使用されるパラメータおよびサブグループパラメータの設定を含む、ソースコーダ(630)のコーディング動作を管理し得る。
【0062】
前述のすべての機能ユニットの出力は、エントロピーコーダ(645)でエントロピーコーディングを受けることがある。エントロピーコーダ(645)は、ハフマンコーディング、可変長コーディング、算術コーディングなどの技術に従ってシンボルを可逆圧縮することにより、様々な機能ユニットによって生成されたシンボルをコーディングされたビデオシーケンスに変換する。
【0063】
送信器(640)は、エントロピーコーダ(645)によって作成されたコーディングされたビデオシーケンス(複数可)をバッファに入れて、通信チャネル(660)を介した送信のために準備し得、通信チャネル(660)は、エンコードされたビデオデータを格納する記憶デバイスへのハードウェア/ソフトウェアリンクであり得る。送信器(640)は、ビデオコーダ(603)からのコーディングされたビデオデータを、送信される他のデータ、例えば、コーディングされたオーディオデータおよび/または補助データストリーム(ソースは図示せず)とマージし得る。
【0064】
コントローラ(650)は、ビデオエンコーダ(603)の動作を管理し得る。コーディング中に、コントローラ(650)は、それぞれのコーディングされたピクチャに特定のコーディングされたピクチャタイプを割り当てることがあり、これは、それぞれのピクチャに適用され得るコーディング技術に影響を及ぼし得る。例えば、ピクチャは、多くの場合、以下のピクチャタイプのうちの1つとして割り当てられ得る。
【0065】
イントラピクチャ(Iピクチャ)は、シーケンス内の他のピクチャを予測のソースとして使用せずにコーディングされおよびデコードされ得るものであり得る。一部のビデオコーデックは、例えば独立デコーダリフレッシュ(「IDR:Independent Decoder Refresh」)ピクチャを含む様々なタイプのイントラピクチャに対応する。当業者は、Iピクチャのそれらの変種ならびにそれらのそれぞれの用途および特徴を認識している。
【0066】
予測ピクチャ(Pピクチャ)は、各ブロックのサンプル値を予測するために、最大で1つの動きベクトルおよび参照インデックスを使用するイントラ予測またはインター予測を使用して、コーディングされおよびデコードされ得るピクチャであり得る。
【0067】
双方向予測ピクチャ(Bピクチャ)は、各ブロックのサンプル値を予測するために、最大で2つの動きベクトルおよび参照インデックスを使用するイントラ予測またはインター予測を使用して、コーディングされおよびデコードされ得るピクチャであり得る。同様に、複数予測ピクチャは、単一のブロックの再構成のために2つより多くの参照ピクチャおよび関連メタデータを使用することができる。
【0068】
ソースピクチャは、一般的には、複数のサンプルブロック(例えば、4×4、8×8、4×8、または16×16のサンプルそれぞれのブロック)に空間的に細分され、ブロックごとにコーディングされ得る。ブロックは、ブロックのそれぞれのピクチャに適用されたコーディング割り当てによって決定されるように他の(すでにコーディングされた)ブロックを参照して予測的にコーディングされ得る。例えば、Iピクチャのブロックは、非予測的にコーディングされ得るか、または同じピクチャのすでにコーディングされたブロックを参照して予測的にコーディングされ得る(空間予測またはイントラ予測)。Pピクチャの画素ブロックは、空間予測によってまたは時間予測によって、以前にコーディングされた1つの参照ピクチャを参照して予測的にコーディングされ得る。Bピクチャのブロックは、空間予測によってまたは時間予測によって、以前にコーディングされた1つまたは2つの参照ピクチャを参照して予測的にコーディングされ得る。
【0069】
ビデオエンコーダ(603)は、例えばITU-T Rec.H.265などの所定のビデオコーディング技術または規格に従ってコーディング動作を行い得る。その動作において、ビデオエンコーダ(603)は、入力ビデオシーケンスにおける時間的および空間的冗長性を利用する予測コーディング動作を含む、様々な圧縮動作を行い得る。したがって、コーディングされたビデオデータは、使用されているビデオコーディング技術または規格によって指定されたシンタックスに準拠し得る。
【0070】
一実施形態では、送信器(640)は、エンコードされたビデオとともに追加のデータを送信し得る。ソースコーダ(630)は、コーディングされたビデオシーケンスの一部としてそのようなデータを含み得る。追加のデータは、時間/空間/SNR拡張レイヤ、冗長ピクチャおよびスライスなどの他の形式の冗長データ、SEIメッセージ、およびVUIパラメータセットフラグメントなどを含み得る。
【0071】
ビデオは、時系列の複数のソースピクチャ(ビデオピクチャ)として取り込まれ得る。イントラピクチャ予測(しばしばイントラ予測と略される)は、所与のピクチャにおける空間的相関を利用し、インターピクチャ予測は、ピクチャ間の(時間的または他の)相関を利用する。一例では、現在のピクチャと呼ばれる、エンコーディング/デコーディング中の特定のピクチャがブロックに分割される。現在のピクチャ中のブロックがビデオ中の、以前にコーディングされて依然としてバッファリングされている参照ピクチャ中の参照ブロックに類似する場合、現在のピクチャ中のブロックを、動きベクトルと呼ばれるベクトルによってコーディングすることができる。動きベクトルは、参照ピクチャ内の参照ブロックを指し示し、複数の参照ピクチャが使用されている場合、参照ピクチャを識別する第3の次元を有してもよい。
【0072】
いくつかの実施形態では、インターピクチャ予測で双予測技術を使用してもよい。双予測技術によれば、第1の参照ピクチャおよび第2の参照ピクチャなどの2つの参照ピクチャが使用され、これらは両方ともビデオ内の現在のピクチャのデコーディング順序より前にある(しかし、表示順序は、それぞれ過去および未来のものであってもよい)。第1の参照ピクチャ中で第1の参照ブロックの方に向いている第1の動きベクトルと、第2の参照ピクチャ中で第2の参照ブロックの方に向いている第2の動きベクトルとによって現在のピクチャ中のブロックをコーディングすることができる。ブロックは、第1の参照ブロックと第2の参照ブロックとの組み合わせによって予測され得る。
【0073】
さらに、コーディング効率を改善するために、インターピクチャ予測でマージモード技術を使用することができる。
【0074】
本開示のいくつかの実施形態によれば、インターピクチャ予測およびイントラピクチャ予測などの予測は、ブロック単位で行われる。例えば、HEVC規格によれば、ビデオピクチャのシーケンス内のピクチャは、圧縮のためにコーディングツリーユニット(CTU:coding tree unit)に分割され、ピクチャ内のCTUは、64×64画素、32×32画素、または16×16画素などの同じサイズを有する。一般に、CTUは、1つのルマコーディングツリーブロック(CTB)および2つのクロマCTBである3つのCTBを含む。各CTUは、1つまたは複数のコーディングユニット(CU)に再帰的に四分木分割され得る。例えば、64×64画素のCTUは、64×64画素の1つのCU、または32×32画素の4つのCU、または16×16画素の16個のCUに分割され得る。一例では、各CUは、インター予測タイプまたはイントラ予測タイプなどのCUの予測タイプを決定するために分析される。CUは、時間的および/または空間的な予測可能性に応じて、1つまたは複数の予測ユニット(PU:prediction unit)に分割される。一般に、各PUは、ルマ予測ブロック(PB:prediction block)と、2つのクロマPBとを含む。一実施形態では、コーディング(エンコーディング/デコーディング)における予測動作は、予測ブロックの単位で行われる。予測ブロックの例としてルマ予測ブロックを使用すると、予測ブロックは、8×8画素、16×16画素、8×16画素、16×8画素などの画素の値の行列(例えば、ルマ値)を含む。
【0075】
図7は、本開示の別の実施形態によるビデオエンコーダ(703)の図を示す。ビデオエンコーダ(703)は、ビデオピクチャのシーケンス内の現在のビデオピクチャ内のサンプル値の処理ブロック(例えば、予測ブロック)を受信し、処理ブロックを、コーディングされたビデオシーケンスの一部であるコーディングされたピクチャにエンコードするように構成される。一例では、ビデオエンコーダ(703)は、図4の例のビデオエンコーダ(403)の代わりに使用される。
【0076】
HEVCの例では、ビデオエンコーダ(703)は、8×8サンプルの予測ブロックなどの処理ブロックのサンプル値の行列を受信する。ビデオエンコーダ(703)は、処理ブロックが、例えばレート歪み最適化を使用して、イントラモード、インターモード、または双予測モードを使用して最良にコーディングされるかどうかを決定する。処理ブロックがイントラモードでコーディングされるとき、ビデオエンコーダ(703)は、処理ブロックをコーディングされたピクチャにコーディングするために、イントラ予測技術を使用し得、処理ブロックがインターモードまたは双予測モードでコーディングされるとき、ビデオエンコーダ(703)は、処理ブロックをコーディングされたピクチャにエンコードするために、それぞれインター予測技術または双予測技術を使用し得る。特定のビデオコーディング技術では、マージモードは、予測子の外側のコーディングされた動きベクトル成分の恩恵を受けずに動きベクトルが1つまたは複数の動きベクトル予測子から導出されるインターピクチャ予測サブモードであり得る。特定の他のビデオコーディング技術では、対象ブロックに適用可能な動きベクトル成分が存在し得る。一例では、ビデオエンコーダ(703)は、処理ブロックのモードを決定するためのモード決定モジュール(図示せず)などの他の構成要素を含む。
【0077】
図7の例では、ビデオエンコーダ(703)は、図7に示すように互いに結合されたインターエンコーダ(730)、イントラエンコーダ(722)、残差算出部(723)、スイッチ(726)、残差エンコーダ(724)、一般コントローラ(721)、およびエントロピーエンコーダ(725)を含む。
【0078】
インターエンコーダ(730)は、現在のブロック(例えば、処理ブロック)のサンプルを受信し、そのブロックを参照ピクチャ内の1つまたは複数の参照ブロック(例えば、前のピクチャおよび後のピクチャ内のブロック)と比較し、インター予測情報(例えば、インターエンコーディング技術、動きベクトル、マージモード情報による冗長情報の記述)を生成し、任意の適切な技術を使用してインター予測情報に基づいてインター予測結果(例えば、予測ブロック)を算出するように構成される。いくつかの例では、参照ピクチャは、エンコードされたビデオ情報に基づいてデコードされた復号参照ピクチャである。
【0079】
イントラエンコーダ(722)は、現在のブロック(例えば、処理ブロック)のサンプルを受信し、場合によっては、そのブロックを同じピクチャ内ですでにコーディングされているブロックと比較し、変換後に量子化係数を生成し、場合によってはイントラ予測情報(例えば、1つまたは複数のイントラエンコーディング技術によるイントラ予測方向情報)も生成するように構成される。一例では、イントラエンコーダ(722)は、イントラ予測情報と、同一ピクチャ内の参照ブロックとに基づいて、イントラ予測結果(例えば、予測ブロック)も算出する。
【0080】
一般コントローラ(721)は、一般制御データを決定し、一般制御データに基づいてビデオエンコーダ(703)の他の構成要素を制御するように構成される。一例では、一般コントローラ(721)は、ブロックのモードを決定し、モードに基づいてスイッチ(726)に制御信号を提供する。例えば、モードがイントラモードである場合、一般コントローラ(721)は、残差算出部(723)が用いるイントラモード結果を選択するためにスイッチ(726)を制御し、イントラ予測情報を選択してビットストリームに含めるためにエントロピーエンコーダ(725)を制御し、モードがインターモードである場合、一般コントローラ(721)は、残差算出部(723)が用いるインター予測結果を選択するためにスイッチ(726)を制御し、インター予測情報を選択してビットストリームに含めるためにエントロピーエンコーダ(725)を制御する。
【0081】
残差算出部(723)は、受信されたブロックと、イントラエンコーダ(722)またはインターエンコーダ(730)から選択された予測結果との差分(残差データ)を算出するように構成される。残差エンコーダ(724)は、残差データに基づいて動作して、変換係数を生成するために残差データをエンコードするように構成される。一例では、残差エンコーダ(724)は、残差データを空間ドメインから周波数ドメインに変換し、変換係数を生成するように構成される。変換係数はその後、量子化された変換係数を得るために量子化処理を受ける。様々な実施形態において、ビデオエンコーダ(703)はまた、残差デコーダ(728)を含む。残差デコーダ(728)は、逆変換を行い、デコードされた残差データを生成するように構成される。デコードされた残差データは、イントラエンコーダ(722)およびインターエンコーダ(730)によって好適に使用され得る。例えば、インターエンコーダ(730)は、デコードされた残差データとインター予測情報とに基づいてデコードされたブロックを生成することができ、イントラエンコーダ(722)は、デコードされた残差データとイントラ予測情報とに基づいてデコードされたブロックを生成することができる。一部の例では、デコードされたブロックは、デコードされたピクチャを生成するために適切に処理され、デコードされたピクチャは、メモリ回路(図示せず)にバッファリングされ、参照ピクチャとして使用され得る。
【0082】
エントロピーエンコーダ(725)は、エンコードされたブロックを含むようにビットストリームをフォーマットするように構成される。エントロピーエンコーダ(725)は、HEVC規格などの適切な規格に従って様々な情報を含むように構成される。一例では、エントロピーエンコーダ(725)は、一般制御データ、選択された予測情報(例えば、イントラ予測情報またはインター予測情報)、残差情報、および他の適切な情報をビットストリームに含めるように構成される。開示されている主題によれば、インターモードまたは双予測モードのいずれかのマージサブモードでブロックをコーディングする場合、残差情報は存在しないことに留意されたい。
【0083】
図8は、本開示の別の実施形態によるビデオデコーダ(810)の図を示す。ビデオデコーダ(810)は、コーディングされたビデオシーケンスの一部であるコーディングされたピクチャを受信し、コーディングされたピクチャをデコードして再構成されたピクチャを生成するように構成される。一例では、ビデオデコーダ(810)は、図4の例のビデオデコーダ(410)の代わりに使用される。
【0084】
図8の例では、ビデオデコーダ(810)は、図8に示すように互いに結合されたエントロピーデコーダ(871)、インターデコーダ(880)、残差デコーダ(873)、再構成モジュール(874)、およびイントラデコーダ(872)を含む。
【0085】
エントロピーデコーダ(871)は、コーディングされたピクチャから、コーディングされたピクチャを構成するシンタックス要素を表す特定のシンボルを再構成するように構成され得る。そのようなシンボルは、例えば、ブロックがコーディングされるモード(例えば、イントラモード、インターモード、双方向予測モード、後者の2つは、マージサブモードまたは別のサブモード)、イントラデコーダ(872)またはインターデコーダ(880)によってそれぞれ予測に使用される特定のサンプルまたはメタデータを識別することができる予測情報(例えば、イントラ予測情報やインター予測情報など)、例えば量子化変換係数の形態の残差情報などを含むことができる。一例では、予測モードがインター予測モードまたは双方向予測モードである場合、インター予測情報はインターデコーダ(880)に提供され、予測タイプがイントラ予測タイプである場合、イントラ予測情報がイントラデコーダ(872)に提供される。残差情報は逆量子化を受けることができ、残差デコーダ(873)に提供される。
【0086】
インターデコーダ(880)は、インター予測情報を受信し、インター予測情報に基づいてインター予測結果を生成するように構成される。
【0087】
イントラデコーダ(872)は、イントラ予測情報を受信し、イントラ予測情報に基づいて予測結果を生成するように構成される。
【0088】
残差デコーダ(873)は、逆量子化を行って逆量子化された変換係数を抽出し、逆量子化された変換係数を処理して残差を周波数ドメインから空間ドメインに変換するように構成される。残差デコーダ(873)はまた、(量子化器パラメータ(QP)を含むために)特定の制御情報を必要とする場合があり、その情報はエントロピーデコーダ(871)によって提供される場合がある(これとして示されていないデータ経路は、低量制御情報のみであり得る)。
【0089】
再構成モジュール(874)は、空間ドメインにおいて、残差デコーダ(873)による出力としての残差と、(場合によってはインターまたはイントラ予測モジュールによる出力としての)予測結果とを組み合わせて、再構成されたピクチャの一部であり得る再構成されたブロックを形成するように構成され、再構成されたブロックは再構成されたビデオの一部であり得る。視覚的品質を改善するために、デブロッキング動作などの他の適切な動作が行われ得ることに留意されたい。
【0090】
ビデオエンコーダ(403)、(603)、および(703)、ならびにビデオデコーダ(410)、(510)、および(810)は、任意の適切な技術を使用して実施され得ることに留意されたい。一実施形態では、ビデオエンコーダ(403)、(603)、および(703)、ならびにビデオデコーダ(410)、(510)、および(810)は、1つまたは複数の集積回路を使用して実施され得る。別の実施形態では、ビデオエンコーダ(403)、(603)、および(603)、ならびにビデオデコーダ(410)、(510)、および(810)は、ソフトウェア命令を実行する1つまたは複数のプロセッサを使用して実施され得る。
【0091】
本開示の態様は、ビデオコーディング/デコーディングのためのフィルタリング技術を提供する。
【0092】
ブロックベースのフィルタ適応を有する適応ループフィルタ(ALF)は、アーチファクトを低減するためにエンコーダ/デコーダによって適用されることができる。ルマ成分について、例えば、局所的な勾配の方向およびアクティビティに基づいて、4×4のルマブロックに対して複数のフィルタ(例えば、25個のフィルタ)のうちの1つを選択することができる。
【0093】
ALFは、任意の適切な形状およびサイズを有することができる。図9を参照すると、ALF(910)~(911)は、ALF(910)についての5×5の菱形形状およびALF(911)についての7×7の菱形形状といった、菱形形状を有する。ALF(910)において、要素(920)~(932)は、菱形形状を形成し、フィルタリングプロセスにおいて使用され得る。要素(920)~(932)に対して、7つの値(例えば、C0~C6)を使用することができる。ALF(911)において、要素(940)~(964)は、菱形形状を形成し、フィルタリングプロセスにおいて使用され得る。要素(940)~(964)のために、13個の値(例えば、C0~C12)が使用されることができる。
【0094】
図9を参照すると、いくつかの例では、菱形フィルタ形状を有する2つのALF(910)~(911)が使用される。5×5の菱形形状のフィルタ(910)は、クロマ成分(例えば、クロマブロック、クロマCB)に適用されることができ、7×7の菱形形状のフィルタ(911)は、ルマ成分(例えば、ルマブロック、ルマCB)に適用されることができる。ALFおいて、他の適切な形状およびサイズが使用されることができる。例えば、9×9の菱形形状のフィルタが使用されることができる。
【0095】
値(例えば、(910)におけるC0~C6または(920)におけるC0~C12)によって示される位置におけるフィルタ係数は、非ゼロであり得る。さらに、ALFがクリッピング関数を含む場合、それらの位置におけるクリップ値は非ゼロであり得る。
【0096】
ルマ成分のブロック分類について、4×4ブロック(またはルマブロック、ルマCB)は、複数の(例えば、25個の)クラスのうちの1つとしてカテゴライズもしくは分類されることができる。分類インデックスCは、式(1)を用いて、方向性パラメータDとアクティビティ値Aの量子化値
【数1】
とに基づいて導出されることができる。
【数2】
方向性パラメータDおよび量子化値
【数3】
を計算するために、垂直方向、水平方向、および2つの対角方向(例えば、d1およびd2)の勾配gv、gh、gd1、およびgd2は、それぞれ、以下のように1-Dラプラシアンを使用して計算することができる。
【数4】
【数5】
【数6】
【数7】
ここで、添え字iおよびjは、4×4ブロック内の左上サンプルの座標を指し、R(k,l)は、座標(k,l)における再構成サンプルを示す。方向(例えば、d1およびd2)は、2つの対角方向を指すことができる。
【0097】
上述したブロック分類の複雑さを低減するために、サブサンプリングされた1-Dラプラシアン計算が適用されることができる。図10A図10Dは、垂直方向(図10A)、水平方向(図10B)、ならびに2つの対角方向d1(図10C)およびd2(図10D)の勾配gv、gh、gd1、およびgd2をそれぞれ計算するために使用されるサブサンプリングされた位置の例を示す。同じサブサンプリングされた位置は、異なる方向の勾配計算に使用され得る。図10Aにおいて、ラベル「V」は、垂直勾配gvを計算するためのサブサンプリングされた位置を示す。図10Bにおいて、ラベル「H」は、水平勾配ghを計算するためのサブサンプリングされた位置を示す。図10Cにおいて、ラベル「D1」は、d1対角勾配gd1を計算するためのサブサンプリングされた位置を示す。図10Dにおいて、ラベル「D2」は、d2対角勾配gd2を計算するためのサブサンプリングされた位置を示す。
【0098】
水平方向gvおよび垂直方向ghの勾配の最大値
【数8】
および最小値
【数9】
を、以下のように設定することができる。
【数10】
2つの対角方向gd1およびgd2の勾配の最大値
【数11】
および最小値
【数12】
を、以下のように設定することができる。
【数13】
方向性パラメータDを、上記の値と、以下のような2つの閾値t1およびt2に基づいて導出することができる。
ステップ1.(1)
【数14】
および(2)
【数15】
が真である場合、Dは0に設定される。
ステップ2.
【数16】
の場合、ステップ3に進む。そうでなければステップ4に進む。
ステップ3.
【数17】
の場合、Dは2に設定される。そうでない場合、Dは1に設定される。
ステップ4.
【数18】
の場合、Dは4に設定される。そうでない場合、Dは3に設定される。
【0099】
アクティビティ値Aを、以下のように計算することができる。
【数19】
Aを、包括的に0~4の範囲にさらに量子化することができ、量子化値は
【数20】
として表される。
【0100】
ピクチャ内のクロマ成分の場合、ブロック分類は適用されず、したがって、各クロマ成分に対して単一のセットのALF係数が適用されることができる。
【0101】
幾何学的変換を、フィルタ係数および対応するフィルタクリップ値(クリップ値とも呼ばれる)に適用することができる。ブロック(例えば、4×4のルマブロック)をフィルタリングする前に、例えば、ブロックに対して計算された勾配値(例えば、gv、gh、gd1および/またはgd2)に応じて、回転または対角および垂直反転などの幾何学的変換をフィルタ係数f(k,l)および対応するフィルタクリップ値c(k,l)に適用することができる。フィルタ係数f(k,l)および対応するフィルタクリップ値c(k,l)に適用される幾何学的変換は、フィルタによってサポートされる領域内のサンプルに幾何学的変換を適用することと等価であり得る。幾何学的変換は、それぞれの方向性を整列させることによって、ALFが適用される異なるブロックをより類似させることができる。
【0102】
式(9)~式(11)によってそれぞれ説明されるように、対角フリップ、垂直フリップ、および回転を含む3つの幾何学的変換を行うことができる。
fD(k,l)=f(l,k),cD(k,l)=c(l,k) 式(9)
fV(k,l)=f(k,K-l-1),cV(k,l)=c(k,K-l-1) 式(10)
fR(k,l)=f(K-l-1,k),cR(k,l)=c(K-l-1,k) 式(11)
ここで、KはALFまたはフィルタのサイズであり、0≦k,1≦K-1は係数の座標である。例えば、フィルタfまたはクリップ値行列(またはクリップ行列)cの左上隅に位置(0,0)があり、右下隅に位置(K-1,K-1)がある。変換は、ブロックに対して計算された勾配値に応じて、フィルタ係数f(k,l)およびクリップ値c(k,l)に適用することができる。変換と4つの勾配との関係の一例を表1にまとめる。
【0103】
【表1】
【0104】
いくつかの実施形態では、ALFフィルタパラメータは、ピクチャの適応パラメータセット(APS)でシグナリングされる。APSでは、ルマフィルタ係数およびクリップ値インデックスの1つまたは複数のセット(例えば、最大25セット)をシグナリングすることができる。一例では、1つまたは複数のセットのうちのセットは、ルマフィルタ係数および1つまたは複数のクリップ値インデックスを含むことができる。クロマフィルタ係数およびクリップ値インデックスの1つまたは複数のセット(例えば、最大8セット)をシグナリングすることができる。シグナリングオーバーヘッドを低減するために、ルマ成分の異なる分類(例えば、異なる分類インデックスを有する)のフィルタ係数をマージすることができる。スライスヘッダでは、現在のスライスに使用されるAPSのインデックスをシグナリングすることができる。
【0105】
一実施形態では、クリップ値インデックス(クリッピングインデックスとも呼ばれる)をAPSからデコードすることができる。クリップ値インデックスは、例えば、クリップ値インデックスと対応するクリップ値との間の関係に基づいて、対応するクリップ値を決定するために使用され得る。関係は、予め定義され、デコーダに格納され得る。一例では、関係は、クリップ値インデックスおよび対応するクリップ値のルマテーブル(例えば、ルマCBに使用される)、クリップ値インデックスおよび対応するクリップ値のクロマテーブル(例えば、クロマCBに使用される)などの表によって記述される。クリップ値はビット深度Bに依存し得る。ビット深度Bは、内部ビット深度、フィルタリングされるCB内の再構成サンプルのビット深度などを指すことができる。いくつかの例では、表(例えば、ルマテーブル、クロマテーブル)は、式(12)を用いて得られる。
【数21】
ここで、AlfClipはクリップ値であり、Bはビット深度(例えば、bitDepth)であり、N(例えば、N=4)は許容されるクリップ値の数であり、(n-1)はクリップ値インデックス(クリッピングインデックスまたはclipIdxとも呼ばれる)である。N=4として式(12)を用いて得られた表の一例を表2に示す。クリッピングインデックス(n-1)は、表2の0、1、2、および3とすることができ、nは、それぞれ1、2、3、および4とすることができる。表2は、ルマブロックまたはクロマブロックに使用され得る。
【0106】
【表2】
【0107】
現在のスライスのスライスヘッダでは、1つまたは複数のAPSインデックス(例えば、最大7個のAPSインデックス)をシグナリングして、現在のスライスに使用できるルマフィルタセットを指定することができる。フィルタリングプロセスは、ピクチャレベル、スライスレベル、CTBレベルなどの1つまたは複数の適切なレベルで制御され得る。一実施形態では、フィルタリングプロセスを、CTBレベルでさらに制御することができる。ALFがルマCTBに適用されるかどうかを示すためにフラグをシグナリングすることができる。ルマCTBは、APSでシグナリングされる複数の固定フィルタセット(例えば、16個の固定フィルタセット)およびフィルタセット(シグナリングされたフィルタセットとも呼ばれる)の中からフィルタセットを選択することができる。適用されるフィルタセット(例えば、複数の固定フィルタセットおよびシグナリングされたフィルタセットの中のフィルタセット)を示すために、ルマCTBに対してフィルタセットインデックスをシグナリングすることができる。複数の固定フィルタセットは、エンコーダおよびデコーダにおいて事前定義およびハードコーディングすることができ、事前定義フィルタセットと呼ぶことができる。
【0108】
クロマ成分の場合、APSインデックスをスライスヘッダでシグナリングして、現在のスライスに使用されるクロマフィルタセットを示すことができる。CTBレベルでは、APSに2つ以上のクロマフィルタセットがあるならば、各クロマCTBに対してフィルタセットインデックスをシグナリングすることができる。
【0109】
フィルタ係数は、128に等しいノルムで量子化されることができる。乗算の複雑さを低減するために、非中央位置の係数値が、包括的に-27から27-1までの範囲内になるように、ビットストリーム適合性を適用することができる。一例では、中央位置係数はビットストリームでシグナリングされず、128に等しいと考えられることができる。
【0110】
いくつかの実施形態では、クリッピングインデックスおよびクリップ値のシンタックスおよびセマンティクスは以下のように定義される。
alf_luma_clip_idx[sfIdx][j]は、sfIdxで示されるシグナリングされたルマフィルタのj番目の係数を乗算する前に、使用するクリップ値のクリッピングインデックスを指定するために使用され得る。ビットストリーム適合性の要件は、sfIdx=0からalf_luma_num_filters_signalled_minus1かつj=0から11であるとき、alf_luma_clip_idx[sfIdx][j]の値が、包括的に0~3の範囲内にあることを含むことができる。
要素AlfClipL[adaptation_parameter_set_id][filtIdx][j]を有するルマフィルタクリップ値AlfClipL[adaptation_parameter_set_id]は、filtIdx=0からNumAlfFilters-1かつj=0から11であるとき、BitDepthYに等しいbitDepthセットおよびalf_luma_clip_idx[alf_luma_coeff_delta_idx[filtIdx]][j]に等しいclipIdxセットに応じて、表2に指定されるように導出され得る。
alf_chroma_clip_idx[altIdx][j]は、インデックスaltIdxを有する代替クロマフィルタのj番目の係数を乗算する前に、使用するクリップ値のクリッピングインデックスを指定するために使用することができる。ビットストリーム適合性の要件は、altIdx=0からalf_chroma_num_alt_filters_minus1かつj=0から5であるとき、alf_chroma_clip_idx[altIdx][j]の値が、包括的に0~3の範囲にあることを含むことができる。
要素AlfClipC[adaptation_parameter_set_id][altIdx][j]を有するクロマフィルタクリップ値AlfClipC[adaptation_parameter_set_id][altIdx]は、altIdx=0からalf_chroma_num_alt_filters_minus1かつj=0から5であるとき、BitDepthCに等しいbitDepthセットおよびalf_chroma_clip_idx[altIdx][j]に等しいclipIdxセットに応じて表2に指定されるように導出され得る。
【0111】
一実施形態では、フィルタリングプロセスを以下のように説明することができる。デコーダ側では、ALFがCTBに対して有効にされると、CU(またはCB)内のサンプルR(i,j)をフィルタリングすることができ、以下の式(13)を使用して示すようにフィルタリングされたサンプル値R’(i,j)が得られる。一例では、CU内の各サンプルがフィルタリングされる。
【数22】
ここで、f(k,l)はデコードされたフィルタ係数を表し、K(x,y)はクリップ関数であり、c(k,l)はデコードされたクリッピングパラメータ(またはクリップ値)を表す。変数kおよびlは、-L/2とL/2との間で変化することができ、Lはフィルタ長を表す。クリップ関数K(x,y)=min(y,max(-y,x))は、クリップ関数Clip3(-y,y,x)に対応する。クリップ関数K(x,y)を組み込むことにより、ループフィルタリング法(例えば、ALF)は非線形処理となり、非線形ALFと呼ぶことができる。
【0112】
非線形ALFでは、クリップ値の複数のセットを表3に提供することができる。一例では、ルマセットは4つのクリップ値{1024,181,32,6}を含み、クロマセットは4つのクリップ値{1024,161,25,4}を含む。ルマセット内の4つのクリップ値は、ルマブロックのサンプル値(10ビットでコーディング)の全範囲(例えば、1024)を対数ドメインでほぼ等しく分割することによって選択することができる。この範囲は、クロマセットについて、4から1024でありうる。
【0113】
【表3】
【0114】
選択されたクリップ値を、以下のように「alf_data」シンタックス要素でコーディングすることができる。すなわち、適切なエンコーディング方式(例えば、ゴロムエンコーディング方式)を使用して、表3に示すような選択されたクリップ値に対応するクリッピングインデックスをエンコードすることができる。エンコーディング方式は、フィルタセットインデックスをエンコードするために使用されるのと同じエンコーディング方式とすることができる。
【0115】
一実施形態では、仮想境界フィルタリングプロセスを使用して、ALFのラインバッファ要件を低減することができる。したがって、CTU境界付近のサンプル(例えば、水平CTU境界)に対して、修正されたブロック分類およびフィルタリングを使用することができる。仮想境界(1130)は、図11Aに示すように、水平CTU境界(1120)を「Nsamples」サンプルだけシフトすることによって線として定義され得、Nsamplesは正の整数とすることができる。一例では、Nsamplesは、ルマ成分については4に等しく、Nsamplesは、クロマ成分については2に等しい。
【0116】
図11Aを参照すると、変更されたブロック分類はルマ成分に適用されることができる。一例では、仮想境界(1130)の上方の4×4ブロック(1110)の1Dラプラシアン勾配計算には、仮想境界(1130)の上方のサンプルのみが使用される。同様に、図11Bを参照すると、CTU境界(1121)からシフトした仮想境界(1131)の下の4×4ブロック(1111)の1Dラプラシアン勾配計算では、仮想境界(1131)の下のサンプルのみが使用される。したがって、アクティビティ値Aの量子化は、1Dラプラシアン勾配計算で使用されるサンプル数の減少を考慮することによってスケーリングされることができる。
【0117】
フィルタリングプロセスのために、仮想境界における対称パディング演算は、ルマ成分およびクロマ成分の両方に使用され得る。図12A図12Fは、仮想境界におけるルマ成分のためのそのような修正されたALFフィルタリングの例を示す。フィルタリングされているサンプルが仮想境界の下に位置する場合、仮想境界の上に位置する近傍サンプルをパディングされ得る。フィルタリングされているサンプルが仮想境界の上方に位置する場合、仮想境界の下方に位置する近傍サンプルをパディングされ得る。図12Aを参照すると、近傍サンプルC0は、仮想境界(1210)の下に位置するサンプルC2でパディングされ得る。図12Bを参照すると、近傍サンプルC0は、仮想境界(1220)の上方に位置するサンプルC2でパディングされ得る。図12Cを参照すると、近傍サンプルC1~C3は、仮想境界(1230)の下に位置するサンプルC5~C7でそれぞれパディングされ得る。図12Dを参照すると、近傍サンプルC1~C3は、仮想境界(1240)の上方に位置するサンプルC5~C7でそれぞれパディングされ得る。図12Eを参照すると、近傍サンプルC4~C8は、仮想境界(1250)の下に位置するサンプルC10、C11、C12、C11、およびC10でそれぞれパディングされ得る。図12Fを参照すると、近傍サンプルC4~C8は、仮想境界(1260)の上方に位置するサンプルC10、C11、C12、C11、およびC10でそれぞれパディングされ得る。
【0118】
いくつかの例では、サンプル(複数可)および近傍サンプル(複数可)が仮想境界の左(または右)および右(または左)に位置する場合、上記の説明を適切に適合させることができる。
【0119】
本開示の態様によれば、コーディング効率を改善するために、ピクチャは、フィルタリングプロセスに基づいて分割され得る。いくつかの例では、CTUは最大コーディングユニット(LCU)とも呼ばれる。一例では、CTUまたはLCUは、64×64画素のサイズを有することができる。いくつかの実施形態では、LCU整列ピクチャ四分木分割は、フィルタリングベースのパーティションに使用され得る。いくつかの例では、コーディングユニット同期ピクチャ四分木ベースの適応ループフィルタを使用することができる。例えば、ルマピクチャは複数のマルチレベル四分木パーティションに分割され、各パーティションの境界はLCUの境界に整列される。各パーティションは、それ自体のフィルタリングプロセスを有し、したがって、フィルタユニット(FU)と呼ばれる。
【0120】
いくつかの例では、2パスエンコーディングフローを使用することができる。2パスエンコーディングフローの最初のパスで、ピクチャの四分木分割パターンおよび各FUの最良フィルタを決定することができる。いくつかの実施形態では、ピクチャの四分木分割パターンの決定およびFUの最良のフィルタの決定は、フィルタリング歪みに基づく。フィルタリング歪みを、決定プロセス中の高速フィルタリング歪み推定(FFDE)技術によって推定することができる。ピクチャは、四分木パーティションを使用して分割される。決定された四分木分割パターンと、すべてのFUの選択されたフィルタに従って、再構成ピクチャがフィルタリングされ得る。
【0121】
2パスエンコーディングフローの2番目のパスでは、CU同期ALFのオン/オフ制御が行われる。ALFのオン/オフ結果に従って、最初にフィルタリングされたピクチャが再構成ピクチャによって部分的に復元される。
【0122】
具体的には、いくつかの例では、トップダウン分割手段を採用して、レート歪み基準を用いてピクチャをマルチレベル四分木パーティションに分ける。各パーティションはフィルタユニット(FU)と呼ばれる。分割処理では、四分木パーティションをLCUの境界に整列させる。FUのエンコーディング順序は、z走査順序に従う。
【0123】
図13は、本開示のいくつかの実施形態によるパーティション例を示す。図13の例では、ピクチャ(1300)は10個のFUに分割され、エンコーディング順序は、FU0、FU1、FU2、FU3、FU4、FU5、FU6、FU7、FU8、FU9である。
【0124】
図14は、ピクチャ(1300)の四分木分割パターン(1400)を示す。図14の例では、分割フラグを用いてピクチャのパーティションパターンを示している。例えば、「1」は、ブロックに対して四分木パーティションが行われることを示し、「0」はブロックをそれ以上分割しないことを示す。いくつかの例では、最小サイズFUはLCUサイズを有し、最小サイズFUには分割フラグは不要である。分割フラグは、図14に示すようにz順序でエンコードされて送信される。
【0125】
いくつかの例では、各FUのフィルタは、レート歪み基準に基づいて2つのフィルタセットから選択される。第1のセットは、現在のFUに対して導出された1/2対称の正方形および菱形のフィルタを有する。第2のセットは、時間遅延フィルタバッファから得られ、時間遅延フィルタバッファは、前のピクチャのFUについて以前に導出されたフィルタを格納する。これらの2つのセットの最小のレート歪みコストを有するフィルタを、現在のFUに対して選択することができる。同様に、現在のFUが最小のFUではなく、4つの子FUにさらに分割できる場合、4つの子FUのレート歪みコストが算出される。分割事例と非分割事例とのレート歪みコストを再帰的に比較することによって、ピクチャ四分木分割パターンを決定することができる。
【0126】
いくつかの例では、最大四分木分割レベルを使用して、FUの最大数を制限することができる。一例では、最大四分木分割レベルが2である場合、FUの最大数は16である。さらに、四分木分割決定中、最下位の四分木レベル(最小FU)の16個のFUのウィーナー係数を導出するための相関値を再利用することができる。残りのFUは、最下位の四分木レベルの16個のFUの相関から、それらのウィーナーフィルタを導出することができる。したがって、この例では、すべてのFUのフィルタ係数を導出するために1回のフレームバッファアクセスのみが行われる。
【0127】
四分木分割パターンが決定された後、フィルタリング歪みをさらに低減するために、CU同期ALFのオン/オフ制御を行うことができる。各リーフCUにおけるフィルタリング歪みと、非フィルタリング歪みとを比較することによって、リーフCUはそのローカル領域でALFのオン/オフを明示的に切り替えることができる。いくつかの例では、ALFのオン/オフ結果に従ってフィルタ係数を再設計することによって、コーディング効率をさらに向上させることができる。
【0128】
クロスコンポーネントフィルタリングプロセスは、クロスコンポーネント適応ループフィルタ(CC-ALF)などのクロスコンポーネントフィルタを適用することができる。クロスコンポーネントフィルタは、ルマ成分(例えば、ルマCB)のルマサンプル値を使用して、クロマ成分(例えば、ルマCBに対応するクロマCB)をリファインすることができる。一例では、ルマCBおよびクロマCBはCUに含まれる。
【0129】
図15は、本開示の一実施形態による、クロマ成分を生成するために使用されるクロスコンポーネントフィルタ(例えば、CC-ALF)を示す。いくつかの例では、図15は、第1のクロマ成分(例えば、第1のクロマCB)、第2のクロマ成分(例えば、第2のクロマCB)、およびルマ成分(例えば、ルマCB)のフィルタリングプロセスを示す。ルマ成分は、サンプル適応オフセット(SAO)フィルタ(1510)によってフィルタリングされて、SAOフィルタリングされたルマ成分(1541)を生成することができる。SAOフィルタリングされたルマ成分(1541)は、ALFルマフィルタ(1516)によってさらにフィルタリングされて、フィルタリングされたルマCB(1561)(例えば、「Y」)になることができる。
【0130】
第1のクロマ成分は、SAOフィルタ(1512)およびALFクロマフィルタ(1518)によってフィルタリングされて、第1の中間成分(1552)を生成することができる。さらに、SAOフィルタリングされたルマ成分(1541)は、第1のクロマ成分のためのクロスコンポーネントフィルタ(例えば、CC-ALF)(1521)によってフィルタリングされて、第2の中間成分(1542)を生成することができる。続いて、第2の中間成分(1542)および第1の中間成分(1552)のうちの少なくとも一方に基づいて、フィルタリングされた第1のクロマ成分(1562)(例えば、「Cb」)を生成することができる。一例では、第2の中間成分(1542)および第1の中間成分(1552)を加算器(1522)と組み合わせることによって、フィルタリングされた第1のクロマ成分(1562)(例えば、「Cb」)を生成することができる。第1のクロマ成分のためのクロスコンポーネント適応ループフィルタリングプロセスは、CC-ALF(1521)によって行われるステップと、例えば加算器(1522)によって行われるステップとを含むことができる。
【0131】
上記の説明は、第2のクロマ成分に適合させることができる。第2のクロマ成分は、SAOフィルタ(1514)およびALFクロマフィルタ(1518)によってフィルタリングされて、第3の中間成分(1553)を生成することができる。さらに、SAOフィルタリングされたルマ成分(1541)は、第2のクロマ成分のためのクロスコンポーネントフィルタ(例えば、CC-ALF)(1531)によってフィルタリングされて、第4の中間成分(1543)を生成することができる。続いて、第4の中間成分(1543)および第3の中間成分(1553)のうちの少なくとも一方に基づいて、フィルタリングされた第2のクロマ成分(1563)(例えば、「Cr」)を生成され得る。一例では、フィルタリングされた第2のクロマ成分(1563)(例えば、「Cr」)は、第4の中間成分(1543)および第3の中間成分(1553)を加算器(1532)と組み合わせることによって生成され得る。一例では、第2のクロマ成分のためのクロスコンポーネント適応ループフィルタリングプロセスは、CC-ALF(1531)によって行われるステップと、例えば加算器(1532)によって行われるステップとを含むことができる。
【0132】
クロスコンポーネントフィルタ(例えば、CC-ALF(1521)、CC-ALF(1531))は、任意の適切なフィルタ形状を有する線形フィルタをルマ成分(またはルマチャネル)に適用して各クロマ成分(例えば、第1のクロマ成分、第2のクロマ成分)をリファインすることによって動作することができる。
【0133】
図16は、本開示の一実施形態によるフィルタ(1600)の一例を示す。フィルタ(1600)は、非ゼロフィルタ係数およびゼロフィルタ係数を含むことができる。フィルタ(1600)は、フィルタ係数(1610)(黒塗りの円で示す)によって形成された菱形形状(1620)を有する。一例では、フィルタ(1600)内の非ゼロフィルタ係数はフィルタ係数(1610)に含まれ、フィルタ係数(1610)に含まれないフィルタ係数はゼロである。したがって、フィルタ(1600)の非ゼロフィルタ係数は、菱形形状(1620)に含まれ、菱形形状(1620)に含まれないフィルタ係数はゼロである。一例では、フィルタ(1600)のフィルタ係数の数は、フィルタ係数(1610)の数に等しく、図16に示す例では18である。
【0134】
CC-ALFは、任意の適切なフィルタ係数(CC-ALFフィルタ係数とも呼ばれる)を含むことができる。図15に戻って参照すると、CC-ALF(1521)およびCC-ALF(1531)は、図16に示す菱形形状(1620)などの同じフィルタ形状、および同じ数のフィルタ係数を有することができる。一例では、CC-ALF(1521)内のフィルタ係数の値は、CC-ALF(1531)内のフィルタ係数の値とは異なる。
【0135】
一般に、CC-ALFのフィルタ係数(例えば、非ゼロフィルタ係数)は、例えば、APSで送信され得る。一例では、フィルタ係数を係数(例えば、210)でスケーリングすることができ、固定小数点表現のために丸めることができる。CC-ALFの適用は、可変ブロックサイズで制御され、サンプルの各ブロックについて受信されたコンテキストコーディングされたフラグ(例えば、CC-ALF有効化フラグ)によってシグナリングされ得る。CC-ALF有効化フラグなどのコンテキストコーディングされたフラグは、ブロックレベルなどの任意の適切なレベルでシグナリングされ得る。CC-ALF有効化フラグとともにブロックサイズは、各クロマ成分についてスライスレベルで受信され得る。いくつかの例では、ブロックサイズ(クロマサンプル単位)16×16、32×32、および64×64をサポートすることができる。
【0136】
図17は、本開示のいくつかの実施形態によるCC-ALFのシンタックス例を示す。図17の例では、alf_ctb_cross_component_cb_idc[xCtb>>CtbLog2SizeY][yCtb>>CtbLog2SizeY]は、クロスコンポーネントCbフィルタを使用するか否かを示すインデックスであり、使用する場合はクロスコンポーネントCbフィルタのインデックスである。例えば、alf_ctb_cross_component_cb_idc[xCtb>>CtbLog2SizeY][yCtb>>CtbLog2SizeY]が0に等しい場合、クロスコンポーネントCbフィルタは、ルマ位置(xCtb,yCtb)にあるCb色成分サンプルのブロックに適用されない。alf_ctb_cross_component_cb_idc[xCtb>>CtbLog2SizeY][yCtb>>CtbLog2SizeY]が0でない場合、alf_ctb_cross_component_cb_idc[xCtb>>CtbLog2SizeY][yCtb>>CtbLog2SizeY]は、適用するフィルタのインデックスである。例えば、alf_ctb_cross_component_cb_idc[xCtb>>CtbLog2SizeY][yCtb>>CtbLog2SizeY]番目のクロスコンポーネントCbフィルタは、ルマ位置(xCtb,yCtb)にあるCb色成分サンプルのブロックに適用される。
【0137】
また、図17の例では、alf_ctb_cross_component_cr_idc[xCtb>>CtbLog2SizeY][yCtb>>CtbLog2SizeY]を用いて、クロスコンポーネントCrフィルタを用いるか、クロスコンポーネントCrフィルタのインデックスを用いるかを示している。例えば、alf_ctb_cross_component_cr_idc[xCtb>>CtbLog2SizeY][yCtb>>CtbLog2SizeY]が0に等しい場合、クロスコンポーネントCrフィルタは、ルマ位置(xCtb,yCtb)にあるCr色成分サンプルのブロックに適用されない。alf_ctb_cross_component_cr_idc[xCtb>>CtbLog2SizeY][yCtb>>CtbLog2SizeY]が0でない場合、alf_ctb_cross_component_cr_idc[xCtb>>CtbLog2SizeY][yCtb>>CtbLog2SizeY]は、クロスコンポーネントCrフィルタのインデックスである。例えば、alf_cross_component_cr_idc[xCtb>>CtbLog2SizeY][yCtb>>CtbLog2SizeY]番目のクロスコンポーネントCrフィルタは、ルマ位置(xCtb,yCtb)でCr色成分サンプルのブロックに適用され得る。
【0138】
いくつかの例では、クロマサブサンプリング技術が使用され、したがって、クロマブロック(複数可)の各々のサンプル数は、ルマブロックのサンプル数より少なくすることができる。クロマサブサンプリングフォーマット(クロマサブサンプリングフォーマットとも呼ばれ、例えば、chroma_format_idcによって指定される)は、クロマブロック(複数可)の各々と対応するルマブロックとの間のクロマ水平サブサンプリング係数(例えば、SubWidthC)およびクロマ垂直サブサンプリング係数(例えば、SubHeightC)を示すことができる。一例では、クロマサブサンプリングフォーマットは4:2:0であり、したがって、図18A図18Bに示されるように、クロマ水平サブサンプリング係数(例えば、SubWidthC)およびクロマ垂直サブサンプリング係数(例えば、SubHeightC)は2である。一例では、クロマサブサンプリングフォーマットは4:2:2であり、したがって、クロマ水平サブサンプリング係数(例えば、SubWidthC)は2であり、クロマ垂直サブサンプリング係数(例えば、SubHeightC)は1である。一例では、クロマサブサンプリングフォーマットは4:4:4であり、したがって、クロマ水平サブサンプリング係数(例えば、SubWidthC)およびクロマ垂直サブサンプリング係数(例えば、SubHeightC)は1である。クロマサンプル形式(クロマサンプル位置とも呼ばれる)は、ルマブロック内の少なくとも1つの対応するルマサンプルに対するクロマブロック内のクロマサンプルの相対位置を示すことができる。
【0139】
図18A図18Bは、本開示の実施形態による、ルマサンプルに対するクロマサンプルの例示的な位置を示す。図18Aを参照すると、ルマサンプル(1801)は、行(1811)~(1818)に位置する。図18Aに示すルマサンプル(1801)は、ピクチャの一部を表すことができる。一例では、ルマブロック(例えば、ルマCB)はルマサンプル(1801)を含む。ルマブロックは、4:2:0のクロマサブサンプリングフォーマットを有する2つのクロマブロックに対応することができる。一例では、各クロマブロックは、クロマサンプル(1803)を含む。各クロマサンプル(例えば、クロマサンプル(1803(1))は、4つのルマサンプル(例えば、ルマサンプル(1801(1))~(1801(4)))に対応する。一例では、4つのルマサンプルは、左上サンプル(1801(1))、右上サンプル(1801(2))、左下サンプル(1801(3))、および右下サンプル(1801(4))である。クロマサンプル(例えば、(1803(1)))は、左上サンプル(1801(1))と左下サンプル(1801(3))との間の左中央位置に位置し、クロマサンプル(1803)を有するクロマブロックのクロマサンプル形式は、クロマサンプル形式0と呼ぶことができる。クロマサンプル形式0は、左上サンプル(1801(1))と左下サンプル(1801(3))の中間の左中央位置に対応する相対位置0を示す。4つのルマサンプル(例えば、(1801(1))~(1801(4)))は、クロマサンプル(1803)(1)の近傍ルマサンプルと呼ぶことができる。
【0140】
一例では、各クロマブロックは、クロマサンプル(1804)を含む。クロマサンプル(1803)に関する上記の説明は、クロマサンプル(1804)に適合させることができ、したがって、簡潔にするために詳細な説明を省略することができる。クロマサンプル(1804)の各々は、4つの対応するルマサンプルの中央位置に位置することができ、クロマサンプル(1804)を有するクロマブロックのクロマサンプル形式は、クロマサンプル形式1と呼ぶことができる。クロマサンプル形式1は、4つのルマサンプル(例えば、(1801(1))~(1801(4)))の中央位置に対応する相対位置1を示す。例えば、クロマサンプル(1804)のうちの1つは、ルマサンプル(1801(1))~(1801(4))の中央部分に位置することができる。
【0141】
一例では、各クロマブロックは、クロマサンプル(1805)を含む。クロマサンプル(1805)の各々は、4つの対応するルマサンプル(1801)の左上サンプルと同じ位置にある左上位置に位置することができ、クロマサンプル(1805)を有するクロマブロックのクロマサンプル形式は、クロマサンプル形式2と呼ぶことができる。したがって、クロマサンプル(1805)の各々は、それぞれのクロマサンプルに対応する4つのルマサンプル(1801)の左上サンプルと同じ位置にある。クロマサンプル形式2は、4つのルマサンプル(1801)の左上位置に対応する相対位置2を示す。例えば、クロマサンプル(1805)のうちの1つは、ルマサンプル(1801(1))~(1801(4))の左上位置に位置することができる。
【0142】
一例では、各クロマブロックは、クロマサンプル(1806)を含む。クロマサンプル(1806)の各々は、対応する左上サンプルと対応する右上サンプルとの間の上部中央位置に位置することができ、クロマサンプル(1806)を有するクロマブロックのクロマサンプル形式は、クロマサンプル形式3と呼ぶことができる。クロマサンプル形式3は、左上サンプルと右上サンプルとの間の上部中央位置に対応する相対位置3を示す。例えば、クロマサンプル(1806)のうちの1つは、ルマサンプル(1801(1))~(1801(4))の上部中央位置に位置することができる。
【0143】
一例では、各クロマブロックは、クロマサンプル(1807)を含む。クロマサンプル(1807)の各々は、4つの対応するルマサンプル(1801)の左下サンプルと同じ位置にある左下位置に位置することができ、クロマサンプル(1807)を有するクロマブロックのクロマサンプル形式は、クロマサンプル形式4と呼ぶことができる。したがって、クロマサンプル(1807)の各々は、それぞれのクロマサンプルに対応する4つのルマサンプル(1801)の左下サンプルと同じ位置にある。クロマサンプル形式4は、4つのルマサンプル(1801)の左下位置に対応する相対位置4を示す。例えば、クロマサンプル(1807)のうちの1つは、ルマサンプル(1801(1))~(1801(4))の左下位置に位置することができる。
【0144】
一例では、各クロマブロックは、クロマサンプル(1808)を含む。各クロマサンプル(1808)は、左下サンプルと右下サンプルとの間の下部中央位置に位置し、クロマサンプル(1808)を有するクロマブロックのクロマサンプル形式は、クロマサンプル形式5と呼ぶことができる。クロマサンプル形式5は、4つのルマサンプル(1801)の左下サンプルと右下サンプルとの間の下部中央位置に対応する相対位置5を示す。例えば、クロマサンプル(1808)のうちの1つは、ルマサンプル(1801(1))~(1801(4))の左下サンプルと右下サンプルとの間に位置することができる。
【0145】
一般に、クロマサブサンプリングフォーマットには、任意の適切なクロマサンプル形式を使用することができる。クロマサンプル形式0~5は、クロマサブサンプリングフォーマット4:2:0で記述されるクロマサンプル形式の例である。クロマサブサンプリングフォーマット4:2:0には、追加のクロマサンプル形式を使用することができる。さらに、他のクロマサンプル形式および/またはクロマサンプル形式0~5のバリエーションを、4:2:2、4:4:4などの他のクロマサブサンプリングフォーマットに使用することができる。一例では、クロマサブサンプリングフォーマット4:2:2には、クロマサンプル(1805)と(1807)とを結合するクロマサンプル形式が使用される。
【0146】
一例では、ルマブロックは、4つのルマサンプル(例えば、(1801(1))~(1801(4)))のうちの上位2つのサンプル(例えば、(1801(1))~(180)(2))と、4つのルマサンプル(例えば、(1801(1)~(1801(4)))のうちの下位2つのサンプル(例えば、(1801(3))~(1801(4)))とをそれぞれ含む行(1811)~(1812)などの交互の行を有すると考えられる。したがって、行(1811)、(1813)、(1815)、および(1817)は、現在の行(トップフィールドとも呼ばれる)と呼ぶことができ、行(1812)、(1814)、(1816)、および(1818)は、次の行(ボトムフィールドとも呼ばれる)と呼ぶことができる。4つのルマサンプル(例えば、(1801(1))~(1801(4)))は、現在の行(例えば、(1811))および次の行(例えば、(1812))に位置する。相対位置2~3は現在の行に位置し、相対位置0~1は各現在の行とそれぞれの次の行との間に位置し、相対位置4~5は次の行に位置する。
【0147】
クロマサンプル(1803)、(1804)、(1805)、(1806)、(1807)、または(1808)は、各クロマブロック内の行(1851)~(1854)に位置する。行(1851)~(1854)の特定の位置は、クロマサンプルのクロマサンプル形式に依存し得る。例えば、それぞれのクロマサンプル形式0~1を有するクロマサンプル(1803)~(1804)について、行(1851)は、行(1811)~(1812)の間に位置する。それぞれのクロマサンプル形式2~3を有するクロマサンプル(1805)~(1806)について、行(1851)は、現在の行(1811)と同じ位置にある。それぞれのクロマサンプル形式4~5を有するクロマサンプル(1807)~(1808)について、行(1851)は、次の行(1812)と同じ位置にある。上記の説明は、行(1852)~(1854)に適切に適合させることができ、簡潔にするために詳細な説明は省略する。
【0148】
図18Aで上述したルマブロックおよび対応するクロマブロックを表示、格納、および/または送信するために、任意の適切な走査方法を使用することができる。一例では、順次走査が使用される。
【0149】
図18Bに示すように、飛び越し走査を使用することができる。上述したように、クロマサブサンプリングフォーマットは、4:2:0(例えば、chroma_format_idcは1に等しい)である。一例では、可変クロマロケーション形式(例えば、ChromaLocType)は、現在の行(例えば、ChromaLocTypeは、chroma_sample_loc_type_top_fieldである)または次の行(例えば、ChromaLocTypeは、chroma_sample_loc_type_bottom_fieldである)を示す。現在の行(1811)、(1813)、(1815)、および(1817)と次の行(1812)、(1814)、(1816)、および(1818)を別々に走査することができ、例えば、現在の行(1811)、(1813)、(1815)、および(1817)を最初に走査し、続いて次の行(1812)、(1814)、(1816)、および(1818)を走査することができる。現在の行はルマサンプル(1801)を含むことができ、次の行はルマサンプル(1802)を含むことができる。
【0150】
同様に、対応するクロマブロックを飛び越し走査することができる。塗りつぶしがないクロマサンプル(1803)、(1804)、(1805)、(1806)、(1807)、または(1808)を含む行(1851)および(1853)は、現在の行(または現在のクロマ行)と呼ぶことができ、グレー塗りつぶしがあるクロマサンプル(1803)、(1804)、(1805)、(1806)、(1807)、または(1808)を含む行(1852)および(1854)は、次の行(または次のクロマ行)と呼ぶことができる。一例では、飛び越し走査中に、行(1851)および(1853)が最初に走査され、続いて行(1852)および(1854)が走査される。
【0151】
いくつかの例では、コンストレインド・ディレクショナル・エンハンスメント・フィルタリング技術を使用することができる。ループ内コンストレインド・ディレクショナル・エンハンスメント・フィルタ(CDEF)の使用は、画像の詳細を保持しながらコーディングアーチファクトを除去することである。一例(例えばHEVC)では、サンプル適応オフセット(SAO)アルゴリズムが、異なるクラスの画素のシグナルオフセットを定義することによって、同様の目的を達成することができる。SAOとは異なり、CDEFは非線形空間フィルタである。いくつかの例では、CDEFを、容易にベクトル化可能であるように制約することができる(すなわち、単一命令複数データ(SIMD)操作で実行可能である)。メディアンフィルタ、バイラテラルフィルタなどの他の非線形フィルタも同様に扱うことはできないことに留意されたい。
【0152】
場合によっては、コーディングされた画像のリンギングアーチファクトの量は、量子化ステップサイズにほぼ比例する傾向がある。詳細度は入力画像の性質であるが、量子化画像に保持される最小の詳細度も量子化ステップサイズに比例する傾向がある。所与の量子化ステップサイズでは、一般にリンギングの振幅は詳細の振幅よりも小さくなる。
【0153】
CDEFは、各ブロックの方向を識別し、識別された方向に沿って、また識別された方向から45度回転した方向に沿って、より少ない角度で適応的にフィルタリングするために使用され得る。いくつかの例では、エンコーダはフィルタ強度を検索することができ、フィルタ強度を明示的にシグナリングすることができ、これによりぼけに対する高度な制御が可能になる。
【0154】
具体的には、いくつかの例では、方向探索は、デブロッキングフィルタの直後に再構成画素に対して行われる。これらの画素はデコーダに利用可能であるため、デコーダによって方向を探索することができ、したがって、一例では方向はシグナリングを必要としない。いくつかの例では、方向探索は、非直線エッジを適切に処理するのに十分小さいが、量子化画像に適用されたときに方向を確実に推定するのに十分大きい8×8ブロックなどの特定のブロックサイズで動作することができる。また、8×8領域に一定の方向性を持たせることで、フィルタのベクトル化が容易になる。いくつかの例では、各ブロック(例えば、8×8)を完全方向性ブロックと比較して差を決定することができる。完全方向性ブロックとは、ある方向の線に沿ったすべての画素が同じ値を有するブロックである。一例では、二乗差の和(SSD)、二乗平均平方根(RMS)誤差などの、ブロックおよび各完全方向性ブロックの差分尺度を計算することができる。次に、最小差(例えば、最小SSD、最小RMSなど)を有する完全方向性ブロックを決定することができ、決定された完全方向性ブロックの方向は、ブロック内のパターンに最もよく一致する方向であり得る。
【0155】
図19は、本開示の実施形態による、方向探索の一例を示す。一例では、ブロック(1910)は、再構成され、デブロッキングフィルタから出力される8×8ブロックである。図19の例では、方向探索は、ブロック(1910)に対して(1920)で示す8方向から方向を決定することができる。8つの完全方向性ブロック(1930)は、8つの方向(1920)にそれぞれ対応して形成される。ある方向に対応する完全方向性ブロックは、方向の線に沿った画素が同じ値を有するブロックである。さらに、ブロック(1910)および各完全方向性ブロック(1930)のSSD、RMS誤差などの差分尺度を計算することができる。図19の例では、RMS誤差を(1940)で示している。(1943)に示すように、ブロック(1910)と完全方向性ブロック(1933)のRMS誤差が最も小さく、したがって方向(1923)はブロック(1910)のパターンに最もよく一致する方向である。
【0156】
ブロックの方向が識別された後、非線形ローパスディレクショナルフィルタを決定することができる。例えば、非線形ローパスディレクショナルフィルタのフィルタタップは、方向エッジまたはパターンを維持しながらリンギングを低減するために、識別された方向に沿って整列させることができる。ただし、いくつかの例では、ディレクショナルフィルタリングだけでは、リンギングを十分に低減できない。一例では、識別された方向に沿っていない画素にも追加のフィルタタップが使用される。ぼけのリスクを低減するために、余分なフィルタタップはより控えめに扱われる。このため、CDEFは1次フィルタタップと2次フィルタタップを含む。一例では、完全な2D CDEFフィルタを、式(14)で表すことができる:
【数23】
ここで、Dは減衰パラメータを示し、S(p)は一次フィルタタップの強度を示し、S(s)は二次フィルタタップの強度を示し、round(・)は0から離れるようにタイを丸める演算を示し、wはフィルタ重みを示し、f(d,S,D)はフィルタリングされた画素と近傍画素の各々との間の差に対して演算する制約関数である。一例では、小さな差の場合、関数f(d,S,D)はDに等しく、フィルタを線形フィルタのように動作させることができる。差が大きい場合、関数f(d,S,D)は0に等しく、フィルタタップを効果的に無視することができる。
【0157】
いくつかの例では、一般にノイズを除去しエッジの品質を向上させるために、デブロッキング動作以外に、デブロッキング後のビデオコーディングでループ内復元方式が使用される。一例では、ループ内復元方式は、適切なサイズのタイルごとにフレーム内で切り替え可能である。ループ内復元方式は、分離可能な対称ウィーナーフィルタ、部分空間投影による二重自己誘導フィルタ、およびドメイン変換再帰フィルタに基づいている。コンテンツ統計はフレーム内で実質的に変化する可能性があるため、ループ内復元方式は、フレームの異なる領域で異なる方式をトリガできる切り替え可能なフレームワークに統合されている。
【0158】
分離可能な対称ウィーナーフィルタは、ループ内復元方式の1つであり得る。いくつかの例では、劣化したフレームのすべての画素を、その周りのw×wウィンドウ内の画素の非因果フィルタバージョンとして再構成することができ、ここでw=2r+1は整数rについては奇数である。2次元フィルタタップが列ベクトル化形態のw2×1要素ベクトルFによって表される場合、直接的なLMMSE最適化によって、F=H-1Mによって与えられるフィルタパラメータが導かれ、ここで、H=E[XXT]はxの自己共分散であり、画素の周りのw×wのウィンドウ中のw2のサンプルの列方向にベクトル化したバージョンであり、M=E[YXT]は、推定されるべき、xとスカラソースサンプルyとの相互相関である。一例では、エンコーダは、デブロックされたフレームとソースとの実現からHおよびMを推定し、得られたフィルタFをデコーダに送信することができる。しかし、そうすると、w2のタップを送信する際にかなりのビットレートコストを招くだけでなく、分離不可能なフィルタリングよってデコーディング化が非常に複雑になる。いくつかの実施形態では、Fの性質にいくつかの追加の制約が課される。第1の制約について、Fは分離可能であるように制約され、フィルタリングは分離可能な水平方向および垂直方向のwタップ畳み込みとして実施することができる。第2の制約について、水平フィルタおよび垂直フィルタの各々は対称になるように制約される。第3の制約について、水平フィルタ係数と垂直フィルタ係数の両方の和が1になると仮定する。
【0159】
部分空間投影を用いた二重自己ガイド付きフィルタリングは、ループ内復元方式の1つであり得る。ガイド付きフィルタリングは、式(15)によって示されるローカル線形モデルを用いる画像フィルタリング技術である:
y=Fx+G 式(15)
上式は、フィルタリングされていないサンプルxから、フィルタリングされた出力yを計算するために使用される。ここで、FおよびGは、劣化した画像およびフィルタリングされた画素の近傍のガイダンス画像の統計に基づいて決定される。ガイド画像が劣化した画像と同じである場合、得られたいわゆる自己ガイド付きフィルタリングは、エッジ維持平滑化の効果を有する。一例では、特定の形態の自己ガイド付きフィルタリングを使用することができる。自己ガイド付きフィルタリングの特定の形態は、2つのパラメータ、すなわち半径rおよびノイズパラメータeに依存し、以下のステップとして列挙される。
1.すべての画素の周りの(2r+1)×(2r+1)窓内の画素の平均μおよび分散σ2を取得する。このステップは、積分イメージングに基づくボックスフィルタリングで効率的に実装可能である。
2.すべての画素について計算する:f=σ2/(σ2+e);g=(1-f)μ
3.すべての画素のFおよびGを、使用する画素の周りの3×3のウィンドウ内のfおよびgの値の平均として計算する。
【0160】
自己ガイド付きフィルタの特定の形態はrおよびeで制御され、rが大きいほど空間分散が大きくなり、eが大きいほど範囲分散が大きくなる。
【0161】
図20は、いくつかの例における部分空間投影の一例を示す。図20に示すように、安価な復元X1、X2のいずれもソースYに近接していなくても、適切な乗算器{α,β}は、それらが幾分正しい方向に移動している限り、それらをソースYにかなり近接させることができる。
【0162】
いくつかの例(例えばHEVC)では、サンプル適応オフセット(SAO)と呼ばれるフィルタリング技術を使用することができる。いくつかの例では、SAOは、デブロッキングフィルタの後に再構成信号に適用される。SAOは、スライスヘッダで与えられたオフセット値を使用することができる。いくつかの例では、ルマサンプルの場合、エンコーダは、スライスにSAOを適用する(イネーブルする)かどうかを決定することができる。SAOがイネーブルされると、現在のピクチャは、コーディングユニットの4つのサブ領域への再帰的分割を可能にし、各サブ領域は、サブ領域内の特徴に基づいて複数のSAOタイプからSAOタイプを選択することができる。
【0163】
図21は、本開示の一実施形態による複数のSAOタイプの表(2100)を示す。表(2100)には、SAOタイプ0~6が示されている。SAOタイプ0は、SAOアプリケーションがないことを示すために使用されることに留意されたい。さらに、SAOタイプ1~SAOタイプ6の各SAOタイプは、複数のカテゴリを含む。SAOは、サブ領域の再構成された画素をカテゴリに分類し、サブ領域内の各カテゴリの画素にオフセットを追加することによって歪みを低減することができる。いくつかの例では、エッジ特性をSAOタイプ1~4における画素分類に使用することができ、画素強度をSAOタイプ5~6における画素分類に使用することができる。
【0164】
具体的には、SAOタイプ5~6などの一実施形態では、バンドオフセット(BO)を使用して、サブ領域のすべての画素を複数のバンドに分類することができる。複数のバンドの各バンドは、同じ強度インターバルの画素を含む。いくつかの例では、強度範囲は、0から最大強度値(例えば、8ビット画素の場合は255)までの32個のインターバルなどの複数のインターバルに等しく分割され、各インターバルはオフセットに関連付けられる。さらに、一例では、32個のバンドは、第1のグループおよび第2のグループなどの2つのグループに分けられる。第1のグループは、中央の16個のバンド(例えば、強度範囲の中央にある16個のインターバル)を含み、第2のグループは、残りの16個のバンド(例えば、強度範囲の低い側にある8つのインターバル、および強度範囲の高い側にある8つのインターバル)を含む。一例では、2つのグループのうちの1つのオフセットのみが送信される。いくつかの実施形態では、BOにおける画素分類演算が使用されるとき、各画素の5つの最上位ビットをバンドインデックスとして直接使用することができる。
【0165】
さらに、SAOタイプ1~4などの一実施形態では、エッジオフセット(EO)を画素分類およびオフセットの決定に使用することができる。例えば、画素分類は、エッジ方向情報を考慮して1次元3画素パターンに基づいて決定され得る。
【0166】
図22は、いくつかの例におけるエッジオフセットにおける画素分類のための3画素パターンの例を示す。図22の例では、第1のパターン(2210)(3つのグレー画素によって示される)は、0度パターン(0度パターンには水平方向が関連付けられている)と呼ばれ、第2のパターン(2220)(3つのグレー画素によって示される)は、90度パターン(90度パターンには垂直方向が関連付けられている)と呼ばれ、第3のパターン(2230)(3つのグレー画素によって示される)は、135度パターン(135度パターンには135度対角方向が関連付けられている)と呼ばれ、第4のパターン(2240)(3つのグレー画素によって示される)は、45度パターン(45度パターンには45度対角方向が関連付けられている)と呼ばれる。一例では、サブ領域のエッジ方向情報を考慮して、図22に示す4つの方向パターンのうちの1つを選択することができる。選択は、一例ではサイド情報としてコーディングされたビデオビットストリームで送信され得る。次に、各画素を、方向パターンと関連付けられた方向の2つの近傍画素と比較することによって、サブ領域内の画素を複数のカテゴリに分類することができる。
【0167】
図23は、いくつかの例におけるエッジオフセットの画素分類規則の表(2300)を示す。具体的には、画素c(図22の各パターンに示されている)は、2つの近傍画素(図22の各パターンにグレーで示されている)と比較され、画素cを、図23に示す画素分類規則による比較に基づいてカテゴリ0~4のいずれかに分類することができる。
【0168】
いくつかの実施形態では、デコーダ側のSAOは、ラインバッファを節約することができるように、最大コーディングユニット(LCU)(例えば、CTU)とは無関係に動作することができる。いくつかの例では、各LCU内の最上段および最下段の画素は、90度、135度、および45度の分類パターンが選択されたときにSAO処理されない。各LCU内の左端および右端の列の画素は、0度、135度、および45度のパターンが選択されたときにSAO処理されない。
【0169】
図24は、パラメータが近傍CTUからマージされない場合、CTUのためにシグナリングされる必要があり得るシンタックスの例(2400)を示す。例えば、シンタックス要素sao_type_idx[cldx][rx][ry]をシグナリングして、サブ領域のSAOタイプを示すことができる。SAOタイプは、BO(バンドオフセット)またはEO(エッジオフセット)であってもよい。sao_type_idx[cldx][rx][ry]の値が0の場合、SAOがOFFであることを示し、1から4の値は、0°、90°、135°、および45°に対応する4つのEOカテゴリのうちの1つが使用されることを示し、5の値は、BOが使用されることを示す。図24の例では、BOおよびEOタイプの各々は、シグナリングされる4つのSAOオフセット値(sao_offset[cIdx][rx][ry][0]to sao_offset[cIdx][rx][ry][3])を有する。
【0170】
一般に、フィルタリングプロセスは、出力を生成するために入力(例えば、YまたはCbまたはCr、あるいはRまたはGまたはB)として第1の色成分の再構成されたサンプルを使用することができ、フィルタリングプロセスの出力は、第1の色成分と同じであり得るか、または第1の色成分とは異なる別の色成分であり得る第2の色成分に適用される。
【0171】
クロスコンポーネントフィルタリング(CCF)の関連する例では、いくつかの数学方程式に基づいてフィルタ係数が導出される。導出されたフィルタ係数は、エンコーダ側からデコーダ側にシグナリングされ、導出されたフィルタ係数は、線形結合を使用してオフセットを生成するために使用される。次いで、生成されたオフセットは、フィルタリングプロセスとして再構成されたサンプルに追加される。例えば、オフセットは、フィルタリング係数とルマサンプルとの線形結合に基づいて生成され、生成されたオフセットは、再構成されたクロマサンプルに追加される。CCFの関連する例は、再構成されたルマサンプル値と、元のクロマサンプルと再構成されたクロマサンプルとの間のデルタ値との間の線形マッピング関係の仮定に基づいている。しかしながら、再構成されたルマサンプル値と、元のクロマサンプルと再構成されたクロマサンプルとの間のデルタ値との間のマッピングは、必ずしも線形マッピングプロセスに従わず、したがって、CCFのコーディング性能は、線形マッピング関係の仮定の下で制限され得る。
【0172】
いくつかの例では、非線形マッピング技術は、著しいシグナリングオーバーヘッドなしに、クロスコンポーネントフィルタリングおよび/または同色成分フィルタリングに使用され得る。一例では、非線形マッピング技術は、クロスコンポーネントサンプルオフセットを生成するためにクロスコンポーネントフィルタリングで使用され得る。別の例では、非線形マッピング技術は、ローカルサンプルオフセットを生成するために同色成分フィルタリングで使用され得る。
【0173】
便宜上、非線形マッピング技術を使用するフィルタリングプロセスは、非線形マッピングによるサンプルオフセット(SO-NLM)と呼ぶことができる。クロスコンポーネントフィルタリングプロセスにおけるSO-NLMは、クロスコンポーネントサンプルオフセット(CCSO)と呼ぶことができる。同色成分フィルタリングにおけるSO-NLMは、ローカルサンプルオフセット(LSO)と呼ぶことができる。非線形マッピング技術を使用するフィルタは、非線形マッピングベースのフィルタと呼ぶことができる。非線形マッピングベースのフィルタは、CCSOフィルタ、LSOフィルタなどを含むことができる。
【0174】
一例では、再構成されたサンプルの歪みを低減するために、CCSOおよびLSOをループフィルタリングとして使用することができる。CCSOおよびLSOは、関連する例示的なCCFで使用される線形マッピングの仮定に依存しない。例えば、CCSOは、ルマ再構成サンプル値と、元のクロマサンプルとクロマ再構成サンプルとの間のデルタ値との間の線形マッピング関係の仮定に依存しない。同様に、LSOは、色成分の再構成されたサンプル値と、色成分の元のサンプルと色成分の再構成されたサンプルとの間のデルタ値との間の線形マッピング関係の仮定に依存しない。
【0175】
以下の説明では、第1の色成分の再構成されたサンプルを入力(例えば、YまたはCbまたはCr、あるいはRまたはGまたはB)として使用して出力を生成するSO-NLMフィルタリングプロセスについて説明し、フィルタリングプロセスの出力は第2の色成分に適用される。第2の色成分が第1の色成分と同じ色成分である場合、説明はLSOに適用可能であり、第2の色成分が第1の色成分と異なる場合、この説明はCCSOに適用可能である。
【0176】
SO-NLMでは、エンコーダ側で非線形マッピングが導出される。非線形マッピングは、フィルタサポート領域内の第1の色成分の再構成されたサンプルと、フィルタサポート領域内の第2の色成分に追加されるオフセットとの間にある。第2の色成分が第1の色成分と同じである場合、非線形マッピングは、LSOで使用され、第2の色成分が第1の色成分と異なる場合、非線形マッピングがCCSOで使用される。非線形マッピングのドメインは、処理された入力の再構成サンプルの異なる組み合わせ(可能な再構成サンプル値の組み合わせとも呼ばれる)によって決定される。
【0177】
SO-NLMの技術は、特定の例を使用して例示することができる。具体例では、フィルタサポートエリア(「フィルタサポート領域」とも呼ばれる)に位置する第1の色成分からの再構成サンプルが決定される。フィルタサポートエリアは、フィルタを適用することができるエリアであり、フィルタサポートエリアは、任意の適切な形状を有することができる。
【0178】
図25は、本開示のいくつかの実施形態によるフィルタサポートエリア(2500)の一例を示す。フィルタサポートエリア(2500)は、第1の色成分の4つの再構成サンプル:P0、P1、P2、およびP3を含む。図25の例では、4つの再構成サンプルは垂直方向および水平方向に十字形を形成することができ、十字形の中央位置はフィルタリング対象のサンプルの位置である。中央位置にある、P0~P3と同じ色成分のサンプルは、Cで示される。中央位置にある、第2の色成分のサンプルは、Fで示される。第2の色成分は、P0~P3の第1の色成分と同じであってもよいし、P0~P3の第1の色成分と異なっていてもよい。
【0179】
図26は、本開示のいくつかの実施形態による別のフィルタサポートエリア(2600)の一例を示す。フィルタサポートエリア(2600)は、正方形を形成する第1の色成分の4つの再構成サンプルP0、P1、P2、およびP3を含む。図26の例では、正方形の中央位置は、フィルタリング対象のサンプルの位置である。中央位置にある、P0~P3と同じ色成分のサンプルは、Cで示される。中央位置にある、第2の色成分のサンプルは、Fで示される。第2の色成分は、P0~P3の第1の色成分と同じであってもよいし、P0~P3の第1の色成分と異なっていてもよい。
【0180】
再構成されたサンプルは、SO-NLMフィルタに入力され、フィルタタップを形成するために適切に処理される。一例では、SO-NLMフィルタへの入力である再構成されたサンプルの位置は、フィルタタップ位置と呼ばれる。特定の例では、再構成されたサンプルは、以下の2つのステップで処理される。
【0181】
第1のステップでは、P0~P3とCとの間のデルタ値がそれぞれ計算される。例えば、m0は、P0からCの間のデルタ値を示し、m1は、P1からCの間のデルタ値を示し、m2は、P2からCの間のデルタ値を示し、m3は、P3からCの間のデルタ値を示す。
【0182】
第2のステップでは、デルタ値m0-m3がさらに量子化され、量子化された値はd0、d1、d2、d3として示される。一例では、量子化値は、量子化プロセスに基づいて-1、0、1のうちの1つであり得る。例えば、mが-Nより小さい場合(Nは正の値であり、量子化ステップサイズと呼ばれる)、値mを-1に量子化することができ、mが[-N,N]の範囲内にある場合、値mを0に量子化することができ、mがNより大きい場合、値mを1に量子化することができる。いくつかの例では、量子化ステップサイズNは、4、8、12、16などのうちの1つとすることができる。
【0183】
いくつかの実施形態では、量子化値d0~d3はフィルタタップであり、フィルタドメイン内の1つの組み合わせを識別するために使用され得る。例えば、フィルタタップd0~d3は、フィルタドメインにおいて組み合わせを形成することができる。各フィルタタップは3つの量子化値を有することができ、したがって、4つのフィルタタップが使用される場合、フィルタドメインは81(3×3×3×3)の組み合わせを含む。
【0184】
図27A図27Cは、本開示の一実施形態による81の組み合わせを有する表(2700)を示す。表(2700)は、81の組み合わせに対応する81行を含む。組み合わせに対応する各行において、第1列は、組み合わせのインデックスを含み、第2列は、組み合わせに対するフィルタタップd0の値を含み、第3列は、組み合わせに対するフィルタタップd1の値を含み、第4列は、組み合わせに対するフィルタタップd2の値を含み、第5列は、組み合わせに対するフィルタタップd3の値を含み、第6列は、非線形マッピングのための組み合わせに関連付けられたオフセット値を含む。一例では、フィルタタップd0~d3が決定されると、d0~d3の組み合わせに関連付けられたオフセット値(sで表される)を表(2700)に従って決定することができる。一例では、オフセット値s0~s80は、0、1、-1、3、-3、5、-5、-7などの整数である。
【0185】
いくつかの実施形態では、SO-NLMの最終フィルタリングプロセスは、式(16)に示すように適用され得る:
f’=clip(f+s) 式(16)
ここで、fは、フィルタリングされる第2の色成分の再構成サンプルであり、sは、表(2700)を使用するなど、第1の色成分の再構成サンプルの処理結果であるフィルタタップに従って決定されるオフセット値である。再構成サンプルFとオフセット値sとの和は、第2の色成分の最終的なフィルタリングされたサンプルf’を決定するためにビット深度に関連付けられた範囲にさらにクリップされる。
【0186】
なお、LSOの場合、上記の説明における第2の色成分は、第1の色成分と同じであり、CCSOの場合、上記の説明における第2の色成分は、第1の色成分とは異なり得る。
【0187】
上記の説明は、本開示の他の実施形態について調整することができることに留意されたい。
【0188】
いくつかの例では、エンコーダ側で、エンコーディングデバイスは、フィルタサポート領域内の第1の色成分の再構成サンプルと、第2の色成分の再構成サンプルに追加されるオフセットとの間のマッピングを導出することができる。マッピングは、任意の適切な線形または非線形マッピングであり得る。次に、フィルタリングプロセスを、マッピングに基づいてエンコーダ側および/またはデコーダ側で適用することができる。例えば、マッピングは、デコーダに適切に通知され(例えば、マッピングは、エンコーダ側からデコーダ側へ送信されるコーディングされたビデオビットストリームに含まれる)、その後、デコーダは、マッピングに基づいてフィルタリングプロセスを行うことができる。
【0189】
本開示のいくつかの態様によれば、CCSOフィルタ、LSOフィルタなどの非線形マッピングベースのフィルタの性能は、フィルタ形状構成に依存する。フィルタのフィルタ形状構成(フィルタ形状とも呼ばれる)は、フィルタタップ位置によって形成されるパターンの特性を指すことができる。パターンは、フィルタタップの数、フィルタタップ位置の幾何学的形状、パターンの中心までのフィルタタップ位置の距離などの様々なパラメータによって定義され得る。固定フィルタ形状構成を使用すると、非線形マッピングベースのフィルタの性能が制限される場合がある。
【0190】
図24および図25ならびに図27A図27Cに示すように、いくつかの例は、非線形マッピングベースのフィルタのフィルタ形状構成に5タップフィルタ設計を使用する。5タップフィルタ設計は、P0、P1、P2、P3、およびCのタップ位置を使用することができる。フィルタ形状構成の5タップフィルタ設計は、図27A図27Cに示すように、81個のエントリを有するルックアップテーブル(LUT)をもたらすことができる。サンプルオフセットのLUTは、エンコーダ側からデコーダ側にシグナリングされる必要があり、LUTのシグナリングは、シグナリングオーバーヘッドの大部分に寄与し、非線形マッピングベースのフィルタを使用するコーディング効率に影響を与える可能性がある。本開示のいくつかの態様によれば、フィルタタップの数は5とは異なり得る。いくつかの例では、フィルタタップの数を減らすことができ、フィルタサポートエリア内の情報を依然として取り込むことができ、コーディング効率を改善することができる。
【0191】
本開示の一態様によれば、CCSOフィルタ、LSOフィルタなどの非線形マッピングベースのフィルタのフィルタタップの数は、1~Mの任意の整数とすることができ、Mは整数である。いくつかの例では、Mの値は1024または任意の他の適切な数である。
【0192】
いくつかの例では、非線形マッピングベースのフィルタのフィルタタップの数は3である。一例では、3つのフィルタタップの位置は中央位置を含む。別の例では、3つのフィルタタップの位置は中央位置を除く。中央位置は、フィルタリングされる再構成されたサンプルの位置を指す。
【0193】
いくつかの例では、非線形マッピングベースのフィルタのフィルタタップの数は5である。一例では、5つのフィルタタップの位置は中央位置を含む。別の例では、5つのフィルタタップの位置は中央位置を除く。中央位置は、フィルタリングされる再構成されたサンプルの位置を指す。
【0194】
いくつかの例では、非線形マッピングベースのフィルタのフィルタタップの数は1である。一例では、1つのフィルタタップの位置は中央位置である。別の例では、1つのフィルタタップの位置は中央位置ではない。中央位置は、フィルタリングされる再構成されたサンプルの位置を指す。一例では、CCSOフィルタは1タップフィルタ設計を有し、CCSOフィルタのデルタ値を(p-μ)として計算することができ、pはフィルタタップに位置する再構成サンプル値であり、μは所与のエリアs内の平均サンプル値である。sは、コーディングブロック、またはCTU/SB、またはピクチャとすることができる。
【0195】
いくつかの実施形態では、非線形マッピングベースのフィルタのフィルタ形状構成は、フィルタ形状構成のグループ間で切り替え可能である。いくつかの例では、フィルタ形状構成のグループは、非線形マッピングベースのフィルタの候補とすることができる。エンコーディング/デコーディング中、非線形マッピングベースのフィルタのフィルタ形状構成は、グループ内のフィルタ形状構成の1つからグループ内のフィルタ形状構成の別の1つに変化することができる。
【0196】
本開示の一態様によれば、非線形マッピングベースのフィルタのグループ内のフィルタ形状構成は、同じ数のフィルタタップを有することができる。
【0197】
いくつかの例では、非線形マッピングベースのフィルタのグループ内のフィルタ形状構成は、それぞれ3つのフィルタタップを有する。
【0198】
図28は、一例における3つのフィルタタップの8つのフィルタ形状構成を示す。具体的には、第1のフィルタ形状構成は、「1」および「C」とラベル付けされた位置に3つのフィルタタップを含み、位置「C」は位置「1」の中央位置である。第2のフィルタ形状構成は、「2」および位置「C」とラベル付けされた位置に3つのフィルタタップを含み、位置「C」は位置「2」の中央位置である。第3のフィルタ形状構成は、「3」および位置「C」とラベル付けされた位置に3つのフィルタタップを含み、位置「C」は位置「3」の中央位置である。第4のフィルタ形状構成は、「4」および位置「C」とラベル付けされた位置に3つのフィルタタップを含み、位置「C」は位置「4」の中央位置である。第5のフィルタ形状構成は、「5」および「C」とラベル付けされた位置に3つのフィルタタップを含み、位置「C」は位置「5」の中央位置である。第6のフィルタ形状構成は、「6」および位置「C」とラベル付けされた位置に3つのフィルタタップを含み、位置「C」は位置「6」の中央位置である。第7のフィルタ形状構成は、「7」および位置「C」とラベル付けされた位置に3つのフィルタタップを含み、位置「C」は位置「7」の中央位置である。第8のフィルタ形状構成は、「8」および位置「C」とラベル付けされた位置に3つのフィルタタップを含み、位置「C」は位置「8」の中央位置である。
【0199】
一例では、8つのフィルタ形状構成は、非線形マッピングベースのフィルタの候補である。エンコーディング/デコーディング中、非線形マッピングベースのフィルタは、8つのフィルタ形状構成のうちの1つから8つのフィルタ形状構成のうちの別のものに切り替えることができる。
【0200】
図29は、一例における3つのフィルタタップの12のフィルタ形状構成を示す。具体的には、第1のフィルタ形状構成は、「1」および「C」とラベル付けされた位置に3つのフィルタタップを含み、位置「C」は位置「1」の中央位置である。第2のフィルタ形状構成は、「2」および位置「C」とラベル付けされた位置に3つのフィルタタップを含み、位置「C」は位置「2」の中央位置である。第3のフィルタ形状構成は、「3」および位置「C」とラベル付けされた位置に3つのフィルタタップを含み、位置「C」は位置「3」の中央位置である。第4のフィルタ形状構成は、「4」および位置「C」とラベル付けされた位置に3つのフィルタタップを含み、位置「C」は位置「4」の中央位置である。第5のフィルタ形状構成は、「5」および「C」とラベル付けされた位置に3つのフィルタタップを含み、位置「C」は位置「5」の中央位置である。第6のフィルタ形状構成は、「6」および位置「C」とラベル付けされた位置に3つのフィルタタップを含み、位置「C」は位置「6」の中央位置である。第7のフィルタ形状構成は、「7」および位置「C」とラベル付けされた位置に3つのフィルタタップを含み、位置「C」は位置「7」の中央位置である。第8のフィルタ形状構成は、「8」および位置「C」とラベル付けされた位置に3つのフィルタタップを含み、位置「C」は位置「8」の中央位置である。第9のフィルタ形状構成は、「9」および「C」とラベル付けされた位置に3つのフィルタタップを含み、位置「C」は位置「9」の中央位置である。第10のフィルタ形状構成は、「10」および位置「C」とラベル付けされた位置に3つのフィルタタップを含み、位置「C」は位置「10」の中央位置である。第11のフィルタ形状構成は、「11」および位置「C」とラベル付けされた位置に3つのフィルタタップを含み、位置「C」は位置「11」の中央位置である。第12のフィルタ形状構成は、「12」および位置「C」とラベル付けされた位置に3つのフィルタタップを含み、位置「C」は位置「12」の中央位置である。
【0201】
一例では、12つのフィルタ形状構成は、非線形マッピングベースのフィルタの候補である。エンコーディング/デコーディング中、非線形マッピングベースのフィルタは、12のフィルタ形状構成のうちの1つから12のフィルタ形状構成のうちの別のものに切り替えることができる。
【0202】
本開示の別の態様によれば、非線形マッピングベースのフィルタのグループ内のフィルタ形状構成は、異なる数のフィルタタップを有することができる。
【0203】
図30は、非線形マッピングベースのフィルタのための2つの候補フィルタ形状構成の一例を示す。例えば、2つの候補フィルタ形状構成の第1のフィルタ形状構成は3つのフィルタタップを含み、2つの候補フィルタ形状構成の第2のフィルタ形状構成は5つのフィルタタップを含む。具体的には、第1のフィルタ形状構成は、「p0」、「C」、および「p2」とラベル付けされた位置に3つのフィルタタップを含み(例えば、破線の円の位置に)、第2のフィルタ形状構成は、「p0」、「p1」、「p2」、「p3」、および「C」とラベル付けされた位置に5つのフィルタタップを含む。
【0204】
一例では、2つのフィルタ形状構成は、非線形マッピングベースのフィルタの候補である。エンコーディング/デコーディング中、非線形マッピングベースのフィルタは、2つのフィルタ形状構成のうちの1つから2のフィルタ形状構成のうちの別のものに切り替えることができる。
【0205】
非線形マッピングベースのフィルタのフィルタ形状構成は、様々なレベルで切り替えることができることに留意されたい。一例では、非線形マッピングベースのフィルタのフィルタ形状構成は、シーケンスレベルで切り替えることができる。別の例では、非線形マッピングベースのフィルタのフィルタ形状構成は、ピクチャレベルで切り替えることができる。別の例では、非線形マッピングベースのフィルタのフィルタ形状構成は、CTUレベルまたはスーパーブロック(SB)レベルで切り替えることができる。スーパーブロックは、いくつかの例では最大のコーディングブロックである。別の例では、非線形マッピングベースのフィルタのフィルタ形状構成は、コーディングブロックレベル(例えば、CUレベル)で切り替えることができる。
【0206】
いくつかの例では、フィルタ形状構成のグループからのフィルタ形状構成の選択は、ビデオを搬送するコーディングビットストリームでシグナリングされる。一例では、選択されたフィルタ形状構成を示すインデックスは、ビデオパラメータセット(VPS)、シーケンスパラメータセット(SPS)、ピクチャパラメータセット(PPS)、適応パラメータセット(APS)、スライスヘッダ、フレームヘッダなどの高レベルシンタックス(HLS)でシグナリングされる。
【0207】
上記の説明は、フィルタ形状構成を切り替える技術を示すために非線形マッピングベースのフィルタを使用し、フィルタ形状構成を切り替える技術は、クロスコンポーネント適応ループフィルタ、適応ループフィルタ、ループ復元フィルタなどを含むがこれらに限定されない他のループフィルタに適用され得ることに留意されたい。例えば、ループフィルタは、候補フィルタ形状構成のグループを有することができる。エンコーディング/デコーディング中、ループフィルタは、フィルタ形状構成を候補フィルタ形状構成の1つから候補フィルタ形状構成の別の1つに切り替えることができる。グループ内の候補フィルタ形状構成は、異なる数のフィルタタップ、および/またはフィルタリング対象のサンプルに対する異なる相対位置を有することができる。非線形マッピングベースのフィルタのフィルタ形状構成は、様々なレベルで切り替えることができることに留意されたい。一例では、ループフィルタのフィルタ形状構成はシーケンスレベルで切り替えることができる。別の例では、ループフィルタのフィルタ形状構成はピクチャレベルで切り替えることができる。別の例では、ループフィルタのフィルタ形状構成は、CTUレベルまたはスーパーブロック(SB)レベルで切り替えることができる。別の例では、ループフィルタのフィルタ形状構成は、コーディングブロックレベル(例えば、CUレベル)で切り替えることができる。いくつかの例では、フィルタ形状構成のグループからのフィルタ形状構成の選択は、ビデオを搬送するコーディングビットストリームでシグナリングされる。一例では、選択されたフィルタ形状構成を示すインデックスは、ビデオパラメータセット(VPS)、シーケンスパラメータセット(SPS)、ピクチャパラメータセット(PPS)、適応パラメータセット(APS)、スライスヘッダ、フレームヘッダなどの高レベルシンタックス(HLS)でシグナリングされる。
【0208】
本開示の別の態様によれば、非線形マッピングベースのフィルタのフィルタリングプロセス中に量子化が使用される。例えば、SO-NLMの第2のステップでは、デルタ値m0~m3を量子化してd0、d1、d2、d3を決定し、d0、d1、d2、d3の各々を3つの量子化出力(例えば、-1、0および1)のうちの1つとすることができる。いくつかの例では、非線形マッピングベースのフィルタの量子化出力の数は、任意の適切な整数であり得ることに留意されたい。一例では、非線形マッピングベースのフィルタの量子化出力の数は、1024など、1から上限までの数とすることができる。なお、上限は1024に限定されない。
【0209】
いくつかの例では、量子化出力の数は3であり、量子化出力は-1、0、1として表すことができる。
【0210】
いくつかの例では、量子化出力の数は5であり、量子化出力は-2、-1、0、1、2として表すことができる。
【0211】
本開示の一態様によれば、非線形マッピングベースのフィルタの量子化出力の数は、エンコーディング/デコーディング中に様々なレベルで切り替える(例えば、ある整数から別の整数に変更する)ことができる。一例では、非線形マッピングベースのフィルタの量子化出力の数は、シーケンスレベルで切り替えることができる。別の例では、非線形マッピングベースのフィルタの量子化出力の数は、ピクチャレベルで切り替えることができる。別の例では、非線形マッピングベースのフィルタの量子化出力の数は、CTUレベルまたはスーパーブロック(SB)レベルで切り替えることができる。別の例では、非線形マッピングベースのフィルタの量子化出力の数は、コーディングブロックレベル(例えば、CUレベル)で切り替えることができる。いくつかの例では、量子化出力の数の選択は、ビデオを搬送するコーディングビットストリームでシグナリングされる。一例では、選択された数の量子化出力を示すインデックスは、ビデオパラメータセット(VPS)、シーケンスパラメータセット(SPS)、ピクチャパラメータセット(PPS)、適応パラメータセット(APS)、スライスヘッダ、フレームヘッダなどの高レベルシンタックス(HLS)でシグナリングされる。
【0212】
図31は、本開示の一実施形態によるプロセス(3100)の概要を示すフローチャートを示す。プロセス(3100)は、コーディングされたビデオビットストリームで搬送されるビデオを再構成するために使用され得る。ブロックという用語が使用される場合、ブロックは、予測ブロック、コーディングユニット、ルマブロック、クロマブロックなどとして解釈され得る。様々な実施形態では、プロセス(3100)は、端末デバイス(310)、(320)、(330)、および(340)の処理回路、ビデオエンコーダ(403)の機能を行う処理回路、ビデオデコーダ(410)の機能を行う処理回路、ビデオデコーダ(510)の機能を行う処理回路、ビデオエンコーダ(603)の機能を行う処理回路などの処理回路によって実行される。いくつかの実施形態では、プロセス(3100)はソフトウェア命令で実施され、したがって、処理回路がソフトウェア命令を実行するとき、処理回路はプロセス(3100)を行う。(S3101)からプロセスが開始され、(S3110)に進む。
【0213】
(S3110)において、非線形マッピングベースのフィルタの第1のフィルタ形状構成に関連付けられたオフセット値が、ビデオを搬送するコーディングされたビデオビットストリーム内の信号に基づいて決定される。第1のフィルタ形状構成のフィルタタップの数は5未満である。
【0214】
一例では、第1のフィルタ形状構成のフィルタタップの位置は、フィルタリング対象のサンプルの位置を含む。別の例では、第1のフィルタ形状構成のフィルタタップの位置は、フィルタリング対象のサンプルの位置を除く。
【0215】
いくつかの例では、第1のフィルタ形状構成は、単一フィルタタップを含む。そして、あるエリアにおける平均サンプル値と、そのエリアにおけるシングルフィルタタップの位置における再構成サンプル値と平均サンプル値との差を算出する。さらに、非線形マッピングベースのフィルタは、単一フィルタタップの位置における再構成サンプル値とエリア内の平均サンプル値との差に基づいて、フィルタリング対象のサンプルに適用される。
【0216】
いくつかの例では、第1のフィルタ形状構成は、非線形マッピングベースのフィルタのフィルタ形状構成のグループから選択される。一例では、グループ内のフィルタ形状構成はそれぞれ同じ数のフィルタタップを有する。別の例では、グループ内の1つまたは複数のフィルタ形状構成は、第1のフィルタ形状構成とは異なる数のフィルタタップを有する。
【0217】
いくつかの例では、ビデオを搬送するコーディングされたビデオビットストリームからインデックスがデコードされる。インデックスは、非線形マッピングベースのフィルタのグループからの第1のフィルタ形状構成の選択を示す。インデックスは、ブロックレベル、コーディングツリーユニット(CTU)レベル、スーパーブロック(SB)レベル、ビデオパラメータセット(VPS)、シーケンスパラメータセット(SPS)、ピクチャパラメータセット(PPS)、適応パラメータセット(APS)、スライスヘッダ、タイルヘッダ、およびフレームヘッダのうちの少なくとも1つのシンタックスシグナリングからデコードされ得る。
【0218】
(S3120)において、非線形マッピングベースのフィルタは、第1のフィルタ形状構成に関連付けられたオフセット値を使用して、フィルタリング対象のサンプルに適用される。
【0219】
いくつかの例では、非線形マッピングベースのフィルタを適用するために、2つのフィルタタップの位置におけるサンプル値のデルタ値が、可能な量子化出力の数のうちの1つに量子化される。可能な量子化出力の数は、包括的に1から1024までの範囲の整数である。例えば、インデックスは、ブロックレベル、コーディングツリーユニット(CTU)レベル、スーパーブロック(SB)レベル、ビデオパラメータセット(VPS)、シーケンスパラメータセット(SPS)、ピクチャパラメータセット(PPS)、適応パラメータセット(APS)、スライスヘッダ、タイルヘッダ、およびフレームヘッダのうちの少なくとも1つのシンタックスシグナリングからデコードされ、インデックスは可能な量子化出力の数を示す。
【0220】
プロセス(3100)は(S3199)に進み、終了する。
【0221】
いくつかの例では、非線形マッピングベースのフィルタは、クロスコンポーネントサンプルオフセット(CCSO)フィルタであり、いくつかの他の例では、非線形マッピングベースのフィルタは、ローカルサンプルオフセット(LSO)フィルタであることに留意されたい。
【0222】
プロセス(3100)は、適切に適合させることができる。プロセス(3100)のステップ(複数可)を、修正および/または省略することができる。追加のステップ(複数可)を追加することができる。任意の適切な実施順序を使用することができる。
【0223】
図32は、本開示の一実施形態によるプロセス(3200)の概要を示すフローチャートを示す。プロセス(3200)は、コーディングされたビデオビットストリームにおいてビデオをエンコードするために使用され得る。ブロックという用語が使用される場合、ブロックは、予測ブロック、コーディングユニット、ルマブロック、クロマブロックなどとして解釈され得る。様々な実施形態では、プロセス(3200)は、端末デバイス(310)、(320)、(330)および(340)の処理回路、ビデオエンコーダ(403)の機能を行う処理回路、ビデオエンコーダ(603)の機能を行う処理回路などの処理回路によって実行される。いくつかの実施形態では、プロセス(3200)はソフトウェア命令で実施され、したがって、処理回路がソフトウェア命令を実行するとき、処理回路はプロセス(3200)を行う。プロセスは(S3201)で開始し、(S3210)に進む。
【0224】
(S3210)において、非線形マッピングベースのフィルタは、第1のフィルタ形状構成に関連付けられたオフセット値を使用して、ビデオ内のフィルタリング対象のサンプルに適用される。第1のフィルタ形状構成のフィルタタップの数は5未満である。
【0225】
一例では、第1のフィルタ形状構成のフィルタタップの位置は、フィルタリング対象のサンプルの位置を含む。別の例では、第1のフィルタ形状構成のフィルタタップの位置は、フィルタリング対象のサンプルの位置を除く。
【0226】
いくつかの例では、第1のフィルタ形状構成は、単一フィルタタップを含む。そして、あるエリアにおける平均サンプル値と、そのエリアにおけるシングルフィルタタップの位置における再構成サンプル値と平均サンプル値との差を算出する。さらに、非線形マッピングベースのフィルタは、単一フィルタタップの位置における再構成サンプル値とエリア内の平均サンプル値との差に基づいて、フィルタリング対象のサンプルに適用される。
【0227】
いくつかの例では、第1のフィルタ形状構成は、非線形マッピングベースのフィルタのフィルタ形状構成のグループから選択される。一例では、グループ内のフィルタ形状構成はそれぞれ同じ数のフィルタタップを有する。別の例では、グループ内の1つまたは複数のフィルタ形状構成は、第1のフィルタ形状構成とは異なる数のフィルタタップを有する。
【0228】
いくつかの例では、ビデオを搬送するコーディングされたビデオビットストリームにおいてインデックスがエンコードされる。インデックスは、非線形マッピングベースのフィルタのグループからの第1のフィルタ形状構成の選択を示す。インデックスは、ブロックレベル、コーディングツリーユニット(CTU)レベル、スーパーブロック(SB)レベル、ビデオパラメータセット(VPS)、シーケンスパラメータセット(SPS)、ピクチャパラメータセット(PPS)、適応パラメータセット(APS)、スライスヘッダ、タイルヘッダ、およびフレームヘッダのうちの少なくとも1つのシンタックスシグナリングによってシグナリングされ得る。
【0229】
いくつかの例では、非線形マッピングベースのフィルタを適用するために、2つのフィルタタップの位置におけるサンプル値のデルタ値が、可能な量子化出力の数のうちの1つに量子化される。可能な量子化出力の数は、包括的に1から1024までの範囲の整数である。例えば、インデックスは、ブロックレベル、コーディングツリーユニット(CTU)レベル、スーパーブロック(SB)レベル、ビデオパラメータセット(VPS)、シーケンスパラメータセット(SPS)、ピクチャパラメータセット(PPS)、適応パラメータセット(APS)、スライスヘッダ、タイルヘッダ、およびフレームヘッダのうちの少なくとも1つのシンタックスシグナリングによってコーディングされたビデオビットストリームにおいてエンコードされ、インデックスは可能な量子化出力の数を示す。
【0230】
(S3220)において、オフセット値は、ビデオを搬送するコーディングされたビデオビットストリームにおいてコーディングされる。
【0231】
プロセス(3200)は、(S3299)に進み、終了する。
【0232】
いくつかの例では、非線形マッピングベースのフィルタは、クロスコンポーネントサンプルオフセット(CCSO)フィルタであり、いくつかの他の例では、非線形マッピングベースのフィルタは、ローカルサンプルオフセット(LSO)フィルタであることに留意されたい。
【0233】
プロセス(3200)は、適切に適合させることができる。プロセス(3200)のステップ(複数可)を、修正および/または省略することができる。追加のステップ(複数可)を追加することができる。任意の適切な実施順序を使用することができる。
【0234】
本開示の実施形態は、別々に使用されてもよく、任意の順序で組み合わされてもよい。さらに、方法(または実施形態)、エンコーダ、およびデコーダのそれぞれは、処理回路(例えば、1つもしくは複数のプロセッサまたは1つもしくは複数の集積回路)によって実装され得る。一例では、1つまたは複数のプロセッサは、非一時的コンピュータ可読媒体に格納されたプログラムを実行する。
【0235】
上記で説明された技術は、1つまたは複数のコンピュータ可読媒体に物理的に格納された、コンピュータ可読命令を使用するコンピュータソフトウェアとして実施され得る。例えば、図33は、開示されている主題の特定の実施形態を実施するのに適したコンピュータシステム(3300)を示す。
【0236】
コンピュータソフトウェアは、アセンブリ、コンパイル、リンクなどの機構を受けることができる任意の適切な機械コードまたはコンピュータ言語を使用してコーディングされ、1つまたは複数のコンピュータ中央処理装置(CPU)、グラフィックス処理装置(GPU)などによって直接、または解釈、マイクロコード実行などを介して、実行することができる命令を含むコードを作成することができる。
【0237】
命令は、例えばパーソナルコンピュータ、タブレットコンピュータ、サーバ、スマートフォン、ゲーミングデバイス、およびモノのインターネットデバイスなどを含む様々なタイプのコンピュータまたはその構成要素上で実行され得る。
【0238】
コンピュータシステム(3300)に関して図33に示されている構成要素は、本質的に例示であり、本開示の実施形態を実施するコンピュータソフトウェアの使用または機能の範囲に関する限定を示唆することを意図されていない。構成要素の構成は、コンピュータシステム(3300)の例示的な実施形態に示されている構成要素のいずれか1つまたは組み合わせに関して依存性も要件も有していないと解釈されるべきである。
【0239】
コンピュータシステム(3300)は、特定のヒューマンインターフェース入力デバイスを含み得る。このようなヒューマンインターフェース入力デバイスは、例えば触覚入力(キーストローク、スワイプ、データグローブの動きなど)、オーディオ入力(声、拍手など)、視覚入力(ジェスチャなど)、嗅覚入力(図示せず)を用いた1人以上の人間のユーザによる入力に応答し得る。ヒューマンインターフェースデバイスは、オーディオ(音声、音楽、環境音など)、画像(走査画像、静止画像カメラから取得される写真画像など)、ビデオ(2次元ビデオ、立体ビデオを含む3次元ビデオなど)などの、必ずしも人間による意識的な入力に直接関連しない特定の媒体を取り込むためにも使用され得る。
【0240】
入力ヒューマンインターフェースデバイスは、キーボード(3301)、マウス(3302)、トラックパッド(3303)、タッチ画面(3310)、データグローブ(図示せず)、ジョイスティック(3305)、マイクロフォン(3306)、スキャナ(3307)、カメラ(3308)のうちの1つまたは複数(図示される各々のうちの1つのみ)を含んでもよい。
【0241】
コンピュータシステム(3300)はまた、特定のヒューマンインターフェース出力デバイスを含み得る。このようなヒューマンインターフェース出力デバイスは、例えば触覚出力、音、光、および臭い/味によって1人以上の人間のユーザの感覚を刺激し得る。このようなヒューマンインターフェース出力デバイスは、触覚出力デバイス(例えば、タッチ画面(3310)、データグローブ(図示せず)、またはジョイスティック(3305)による触覚フィードバックであるが、入力デバイスとして機能しない触覚フィードバックデバイスもあり得る)、オーディオ出力デバイス(スピーカ(3309)、ヘッドフォン(図示せず)など)、視覚出力デバイス(CRT画面、LCD画面、プラズマ画面、OLED画面(それぞれタッチ画面入力機能の有無にかかわらない、それぞれ触覚フィードバック機能の有無にかかわらない、これらの一部は、2次元視覚出力、またはステレオグラフィック出力などの手段による3次元を超える出力を出力することができ得る)を含む画面(3310)、仮想現実眼鏡(図示せず)、ホログラフィックディスプレイ、およびスモークタンク(図示せず)など)、ならびにプリンタ(図示せず)を含み得る。
【0242】
コンピュータシステム(3300)はまた、CD/DVDまたは同様の媒体(3321)を伴うCD/DVD ROM/RW(3320)を含む光学媒体、サムドライブ(3322)、取り外し可能なハードドライブまたはソリッドステートドライブ(3323)、テープおよびフロッピーディスクなどのレガシー磁気媒体(図示せず)、ならびにセキュリティドングル(図示せず)などの専用のROM/ASIC/PLDベースのデバイスなど、人間がアクセス可能な記憶デバイスおよびこれに関連する媒体を含み得る。
【0243】
当業者はまた、本開示の主題に関連して使用される「コンピュータ可読媒体」という用語が伝送媒体、搬送波、または他の一時的信号を包含しないことを理解すべきである。
【0244】
コンピュータシステム(3300)はまた、1つまたは複数の通信ネットワーク(3355)へのインターフェース(3354)を含むことができる。ネットワークは、例えば、無線、有線、光であり得る。ネットワークはさらに、ローカル、広域、メトロポリタン、車両および産業、リアルタイム、遅延耐性などであり得る。ネットワークの例には、Ethernetなどのローカルエリアネットワーク、無線LAN、GSM、3G、4G、5G、LTEなどを含むセルラネットワーク、ケーブルテレビ、衛星テレビおよび地上波テレビを含むテレビの有線または無線広域デジタルネットワーク、CANBusを含む車両用および産業用などが含まれる。特定のネットワークは、一般的には、特定の一般データポートまたは周辺バス(3349)(例えば、コンピュータシステム3300)のUSBポートなど)に接続される外部ネットワークインターフェースアダプタを必要とし、他のものは、一般的には、以下で説明されるようにシステムバスへの接続によってコンピュータシステム(3300)のコアに統合される(例えば、PCコンピュータシステムへのイーサネットインターフェースまたはスマートフォンコンピュータシステムへのセルラーネットワークインターフェース)。これらのネットワークのいずれかを使用して、コンピュータシステム(3300)は他のエンティティと通信することができる。このような通信は、単方向、受信のみ(例えば、放送TV)、単方向送信のみ(例えば、特定のCANbusデバイスへのCANbus)、または例えばローカルもしくはワイドエリアデジタルネットワークを使用した他のコンピュータシステムに対する双方向のものであり得る。特定のプロトコルおよびプロトコルスタックは、上記で説明されたように、それらのネットワークおよびネットワークインターフェースの各々で使用され得る。
【0245】
前述のヒューマンインターフェースデバイス、人間がアクセス可能な記憶デバイス、およびネットワークインターフェースは、コンピュータシステム(3300)のコア(3340)に接続され得る。
【0246】
コア(3340)は、1つまたは複数の中央処理装置(CPU)(3341)、グラフィックス処理装置(GPU)(3342)、フィールドプログラマブルゲートエリア(FPGA)(3343)の形態の専用プログラマブル処理装置、特定のタスク用のハードウェアアクセラレータ(3344)、グラフィックスアダプタ(3350)などを含むことができる。このようなデバイスは、読み出し専用メモリ(ROM)(3345)、ランダムアクセスメモリ(3346)、内部のユーザがアクセスできないハードドライブ、SSDなどの内部大容量ストレージ(3347)とともに、システムバス(3348)を介して接続されてもよい。一部のコンピュータシステムでは、システムバス(3348)は、追加のCPUおよびGPUなどによる拡張を可能にするために1つまたは複数の物理プラグの形式でアクセス可能であり得る。周辺デバイスは、コアのシステムバス(3348)に直接接続され得るか、または周辺バス(3349)を介して接続され得る。一例では、ディスプレイ(3310)は、グラフィックスアダプタ(3350)に接続され得る。周辺バスのアーキテクチャは、PCIおよびUSBなどを含む。
【0247】
CPU(3341)、GPU(3342)、FPGA(3343)、およびアクセラレータ(3344)は、組み合わせで前述のコンピュータコードを構成し得る特定の命令を実行することができる。このコンピュータコードは、ROM(3345)またはRAM(3346)に格納され得る。RAM(3346)には一時的なデータも格納され得、一方、恒久的なデータは、例えば内部大容量ストレージ(3347)に格納され得る。メモリデバイスのいずれかへの高速記憶および検索は、1つまたは複数のCPU(3341)、GPU(3342)、大容量ストレージ(3347)、ROM(3345)、およびRAM(3346)などに密接に関連付けられ得るキャッシュメモリの使用によって可能になり得る。
【0248】
コンピュータ可読媒体は、様々なコンピュータ実装動作を行うためのコンピュータコードを有し得る。媒体およびコンピュータコードは、本開示の目的のために特別に設計および構成されたものであり得るし、またはそれらは、コンピュータソフトウェア技術の当業者に周知の利用可能な種類のものであり得る。
【0249】
限定としてではなく一例として、アーキテクチャを有するコンピュータシステム(3300)、具体的にはコア(3340)は、1つまたは複数の有形のコンピュータ可読媒体で具現化されたソフトウェアを実行するプロセッサ(CPU、GPU、FPGA、およびアクセラレータなどを含む)の結果として機能を提供し得る。このようなコンピュータ可読媒体は、上記で紹介されたユーザアクセス可能な大容量ストレージ、およびコア内部の大容量ストレージ(3347)またはROM(3345)などの非一時的性質を有するコア(3340)の特定のストレージに関連付けられた媒体であり得る。本開示の様々な実施形態を実施するソフトウェアは、このようなデバイスに格納され、コア(3340)によって実行され得る。コンピュータ可読媒体は、特定の必要性に応じて、1つまたは複数のメモリデバイスまたはチップを含み得る。ソフトウェアは、コア(3340)に、具体的にはその中のプロセッサ(CPU、GPU、およびFPGAなどを含む)に、RAM(3346)に格納されたデータ構造を定義すること、およびソフトウェアによって定義されたプロセスに従ってこのようなデータ構造を変更することを含む、本明細書で説明されている特定のプロセスまたは特定のプロセスの特定の部分を実行させ得る。加えて、または代替として、コンピュータシステムは、本明細書で説明されている特定のプロセスまたは特定のプロセスの特定の部分を実行するために、ソフトウェアの代わりにまたはソフトウェアとともに動作し得る回路(例えば、アクセラレータ(3344))にハードワイヤードされた、または他の方法で具現化された論理の結果として機能を提供し得る。適切な場合には、ソフトウェアへの言及は論理を包含し得、その逆もまた同様である。適切な場合には、コンピュータ可読媒体への言及は、実行のためのソフトウェアを格納する回路(集積回路(IC:integrated circuit)など)、実行のための論理を具現化する回路、またはこれらの両方を包含し得る。本開示は、ハードウェアとソフトウェアの任意の適切な組み合わせを包含する。
付記A:頭字語
JEM:共同探索モデル
VVC:多用途ビデオコーディング
BMS:ベンチマークセット
MV:動きベクトル
HEVC:高効率ビデオコーディング
MPM:最確モード
WAIP:広角イントラ予測
SEI:補足拡張情報
VUI:ビデオユーザビリティ情報
GOP:Group of Pictures
TU:変換ユニット
PU:予測ユニット
CTU:コーディングツリーユニット
CTB:コーディングツリーブロック
PB:予測ブロック
HRD:仮想参照デコーダ
SDR:スタンダートダイナミックレンジ
SNR:信号雑音比
CPU:中央処理装置
GPU:グラフィックス処理装置
CRT:ブラウン管
LCD:液晶ディスプレイ
OLED:有機発光ダイオード
CD:コンパクトディスク
DVD:デジタルビデオディスク
ROM:読み出し専用メモリ
RAM:ランダムアクセスメモリ
ASIC:特定用途向け集積回路
PLD:プログラマブル論理デバイス
LAN:ローカルエリアネットワーク
GSM:グローバル移動体通信システム
LTE:ロングタームエボリューション
CANBus:コントローラエリアネットワークバス
USB:ユニバーサルシリアルバス
PCI:周辺構成要素相互接続
FPGA:フィールドプログラマブルゲートエリア
SSD:ソリッドステートドライブ
IC:集積回路
CU:コーディングユニット
PDPC:位置依存予測組み合わせ
ISP:イントラサブパーティション
SPS:シーケンスパラメータ設定
【0250】
本開示はいくつかの例示的な実施形態を説明してきたが、本開示の範囲内にある修正例、置換例、および様々な代替均等例がある。したがって、当業者は、本明細書に明示的に示されていないまたは記載されていないが、本開示の原理を具現化し、したがってその趣旨および範囲内にある多数のシステムおよび方法を考案することができることが理解されよう。
【符号の説明】
【0251】
101 サンプル
102 矢印
103 矢印
104 正方形ブロック
201 現在のブロック
202 サンプル
203 サンプル
204 サンプル
205 サンプル
206 サンプル
300 通信システム
310 端末デバイス
320 端末デバイス
330 端末デバイス
340 端末デバイス
350 ネットワーク
400 通信システム
401 ビデオソース
402 ビデオピクチャのストリーム
403 ビデオエンコーダ
404 エンコードされたビデオデータ、エンコードされたビデオビットストリーム
405 ストリーミングサーバ
406 クライアントサブシステム
407 エンコードされたビデオデータ、入力コピー
408 クライアントサブシステム
409 エンコードされたビデオデータ、コピー
410 ビデオデコーダ
411 ビデオピクチャの出力ストリーム
412 ディスプレイ
413 キャプチャサブシステム
420 電子デバイス
430 電子デバイス
501 チャネル
510 ビデオデコーダ
512 レンダデバイス
515 バッファメモリ
520 パーサ
521 シンボル
530 電子デバイス
531 受信器
551 スケーラ/逆変換ユニット
552 イントラピクチャ予測ユニット
553 動き補償予測ユニット
555 アグリゲータ
556 ループフィルタユニット
557 参照ピクチャメモリ
558 現在のピクチャバッファ
601 ビデオソース
603 ビデオコーダ、ビデオエンコーダ
620 電子デバイス
630 ソースコーダ
632 コーディングエンジン
633 ローカルビデオデコーダ
634 参照ピクチャメモリ、参照ピクチャキャッシュ
635 予測子
640 送信器
643 コーディングされたビデオシーケンス
645 エントロピーコーダ
650 コントローラ
660 通信チャネル
703 ビデオエンコーダ
721 一般コントローラ
722 イントラエンコーダ
723 残差算出部
724 残差エンコーダ
725 エントロピーエンコーダ
726 スイッチ
728 残差デコーダ
730 インターエンコーダ
810 ビデオデコーダ
871 エントロピーデコーダ
872 イントラデコーダ
873 残差デコーダ
874 再構成モジュール
880 インターデコーダ
910 菱形形状のフィルタ
911 菱形形状のフィルタ
920~932 要素
940~964 要素
1110 ブロック
1111 ブロック
1120 水平CTU境界
1121 CTU境界
1130 仮想境界
1131 仮想境界
1210 仮想境界
1220 仮想境界
1230 仮想境界
1240 仮想境界
1250 仮想境界
1260 仮想境界
1300 ピクチャ
1400 四分木分割パターン
1510 サンプル適応オフセットフィルタ
1512 SAOフィルタ
1514 SAOフィルタ
1516 LFルマフィルタ
1518 ALFクロマフィルタ
1522 加算器
1532 加算器
1541 SAOフィルタリングされたルマ成分
1542 第2の中間成分
1543 第4の中間成分
1552 第1の中間成分
1553 第3の中間成分
1561 フィルタリングされたルマCB
1562 フィルタリングされた第1のクロマ成分
1563 フィルタリングされた第2のクロマ成分
1600 フィルタ
1610 フィルタ係数
1620 菱形形状
1801 ルマサンプル
1802 ルマサンプル
1803 クロマサンプル
1804 クロマサンプル
1805 クロマサンプル
1806 クロマサンプル
1807 クロマサンプル
1808 クロマサンプル
1811~1818 行
1851~1854 行
1910 ブロック
1920 方向
1923 方向
1930 完全方向性ブロック
1933 完全方向性ブロック
1940 RMS誤差
2210 第1のパターン
2220 第2のパターン
2230 第3のパターン
2240 第4のパターン
2500 フィルタサポートエリア
2600 フィルタサポートエリア
3300 コンピュータシステム
3301 キーボード
3302 マウス
3303 トラックパッド
3305 ジョイスティック
3306 マイクロフォン
3307 スキャナ
3308 カメラ
3309 スピーカ
3310 タッチ画面、ディスプレイ
3320 CD/DVD ROM/RW
3321 媒体
3322 サムドライブ
3323 取り外し可能なハードドライブまたはソリッドステートドライブ
3341 中央処理装置
3342 グラフィックス処理装置
3343 フィールドプログラマブルゲートエリア
3344 アクセラレータ
3345 読み出し専用メモリ
3346 ランダムアクセスメモリ
3347 内部大容量ストレージ
3348 システムバス
3349 周辺バス
3350 グラフィックスアダプタ
3354 インターフェース
3355 通信ネットワーク
図1A
図1B
図2
図3
図4
図5
図6
図7
図8
図9
図10A
図10B
図10C
図10D
図11A
図11B
図12A
図12B
図12C
図12D
図12E
図12F
図13
図14
図15
図16
図17
図18A
図18B
図19
図20
図21
図22
図23
図24
図25
図26
図27A
図27B
図27C
図28
図29
図30
図31
図32
図33
【外国語明細書】