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

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

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

特開2024-19644ビデオコーディングのための方法、装置及びプログラム
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024019644
(43)【公開日】2024-02-09
(54)【発明の名称】ビデオコーディングのための方法、装置及びプログラム
(51)【国際特許分類】
   H04N 19/132 20140101AFI20240202BHJP
   H04N 19/136 20140101ALI20240202BHJP
【FI】
H04N19/132
H04N19/136
【審査請求】未請求
【請求項の数】1
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2023214704
(22)【出願日】2023-12-20
(62)【分割の表示】P 2022533336の分割
【原出願日】2021-08-05
(31)【優先権主張番号】63/086,280
(32)【優先日】2020-10-01
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】17/339,516
(32)【優先日】2021-06-04
(33)【優先権主張国・地域又は機関】US
(71)【出願人】
【識別番号】520353802
【氏名又は名称】テンセント・アメリカ・エルエルシー
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【弁理士】
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】ペリンガーサリー クリシュナン,マドゥー
(72)【発明者】
【氏名】ジャオ,シン
(72)【発明者】
【氏名】リィウ,シャン
(57)【要約】
【課題】本開示の態様は、ビデオ復号のための処理回路を含む方法及び装置を提供する。
【解決手段】処理回路は、コーディングされたビデオビットストリームから変換ブロック(TB)のコーディング情報を復号してもよい。コーディング情報は、TBについて一方向の変換スキップを示してもよい。処理回路は、以前の変換係数の以前に復号された符号値に基づいて、TB内の現在の変換係数の符号値を復号してもよい。現在の変換係数及び以前の変換係数は、TB内の同じ行及び同じ列のうち1つにあってもよい。同じ行及び同じ列のうち1つは、変換スキップの一方向に沿うものとしてもよい。処理回路は、現在の変換係数の復号された符号値に基づいてTB内の現在の変換係数を決定してもよい。
【選択図】図14
【特許請求の範囲】
【請求項1】
デコーダが実行するビデオ復号のための方法であって、
コーディングされたビデオビットストリームから変換ブロック(TB)のコーディング情報を復号するステップであって、前記コーディング情報は、前記TBについて一方向の変換スキップを示す、ステップと、
以前の変換係数の以前に復号された符号値に基づいて、前記TB内の現在の変換係数の符号値を復号するステップであって、前記現在の変換係数及び前記以前の変換係数は、前記TB内の同じ行及び同じ列のうち1つにあり、前記同じ行及び前記同じ列のうち前記1つは、前記変換スキップの前記一方向に沿うものである、ステップと、
前記現在の変換係数の前記復号された符号値に基づいて前記TB内の前記現在の変換係数を決定するステップと
を含む方法。
【発明の詳細な説明】
【技術分野】
【0001】
[関連出願の援用]
本出願は、2021年6月4日に出願された米国特許出願第17/339,516号「METHOD AND APPARATUS FOR VIDEO CODING」の優先権の利益を主張し、当該出願は、2020年10月1日に出願された米国仮出願第63/086,280号「CONTEXT DESIGN FOR ENTROPY CODING SIGN MAP FOR ONE-DIMENSIONAL TRANSFORM SKIP」の優先権の利益を主張する。先の出願の全開示の全内容を参照により援用する。
【0002】
[技術分野]
本開示は、概してビデオ符号化に関連する実施形態を記載する。
【背景技術】
【0003】
本明細書において提供される背景技術の説明は、本開示の背景を一般的に提示するためのものである。本願の発明者の研究は、当該研究がこの背景技術の段落に記載されている範囲において、また、出願時に従来技術として特に適することのない説明の側面も、本開示に対する従来技術として明示的にも暗示的にも認められるものではない。
【0004】
ビデオ符号化及び復号は、動き補償によるインターピクチャ予測を使用して実行できる。非圧縮ディジタルビデオは、一連のピクチャを含むことができ、各ピクチャは、例えば、1920×1080の輝度サンプル及び関連する色差サンプルの空間次元を有する。一連のピクチャは、例えば、毎秒60ピクチャ又は60Hzの固定又は可変のピクチャレート(フレームレートとしても非公式に知られている)を有することができる。非圧縮ビデオは、特定のビットレート要件を有する。例えば、サンプル当たり8ビットの1080p60 4:2:0ビデオ(60Hzのフレームレートの1920×1080の輝度サンプル解像度)は、1.5Gbit/sに近い帯域幅を必要とする。1時間のこのようなビデオは、600Gバイトを超える記憶空間を必要とする。
【0005】
ビデオ符号化及び復号の1つの目的は、圧縮を通じて入力ビデオ信号の冗長性を低減できることである。圧縮は、場合によっては2桁以上も上記の帯域幅及び/又は記憶空間の要件を低減するのに役立つことができる。可逆圧縮及び不可逆圧縮の双方並びにこれらの組み合わせを使用することができる。可逆圧縮とは、元の信号の正確なコピーが圧縮された元の信号から復元できる技術を示す。不可逆圧縮を使用する場合、復元された信号は、元の信号と同一ではない可能性があるが、元の信号と復元された信号との間の歪みは、復元された信号を目的のアプリケーションにとって有用にするほど十分に小さい。ビデオの場合、不可逆圧縮が広く使用されている。許容される歪みの量はアプリケーションに依存する。例えば、特定の消費者のストリーミングアプリケーションのユーザは、テレビ配信アプリケーションのユーザよりも高い歪みを許容する可能性がある。達成可能な圧縮比は、より高い許容可能な歪み/許容される歪みがより高い圧縮比をもたらすことができるということを反映できる。
【0006】
ビデオエンコーダ及びデコーダは、例えば、動き補償、変換、量子化及びエントロピー符号化を含むいくつかの広いカテゴリからの技術を利用することができる。
【0007】
ビデオコーデック技術は、イントラ符号化として知られる技術を含むことができる。イントラ符号化では、サンプル値は、前に復元された参照ピクチャからのサンプル又は他のデータを参照せずに表される。いくつかのビデオコーデックでは、ピクチャは空間的にサンプルのブロックに細分される。サンプルの全てのブロックがイントラモードで符号化される場合、そのピクチャはイントラピクチャとすることができる。イントラピクチャと、独立デコーダリフレッシュピクチャのようなそれらの派生物は、デコーダ状態をリセットするために使用でき、したがって、符号化ビデオビットストリーム及びビデオセッションにおける最初のピクチャとして或いは静止画像として使用できる。イントラブロックのサンプルは変換を受けさせることができ、変換係数はエントロピー符号化の前に量子化できる。イントラ予測は、変換前ドメインにおけるサンプル値を最小化する技術とすることができる。場合によっては、変換後のDC値が小さく、AC係数が小さいほど、エントロピー符号化後のブロックを表すために所与の量子化ステップサイズにおいて必要とされるビットが少なくなる。
【0008】
例えば、MPEG-2世代の符号化技術から知られているような従来のイントラ符号化は、イントラ予測を使用しない。しかし、いくつかのより新しいビデオ圧縮技術は、例えば、空間的に隣接しており復号順で前のデータのブロックを符号化及び/又は復号する間に取得された周囲のサンプルデータ及び/又はメタデータから試みる技術を含む。このような技術は、以下では「イントラ予測(intra prediction)」技術と呼ばれる。少なくともいくつかの場合、イントラ予測は復元中のカレントピクチャのみからの参照データを使用し、参照ピクチャからの参照データを使用しない点に留意すべきである。
【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個の角度モードに対応する)から知られている9個の予測子方向のサブセットである。矢印が収束する点(101)は、予測されるサンプルを表す。矢印は、サンプルが予測される方向を表す。例えば、矢印(102)は、サンプル(101)が、水平から45度の角度の右上に対する1つ又は複数のサンプルから予測されることを示す。同様に、矢印(103)は、サンプル(101)が、水平から22.5度の角度でサンプル(101)の左下に対する1つ又は複数のサンプルから予測されることを示す。
【0012】
依然として図1Aを参照すると、左上には、4×4のサンプルの正方形ブロック(104)が示されている(破線の太線で示されている)。正方形ブロック(104)は、16個のサンプルを含み、各サンプルは「S」と、Y次元におけるその位置(例えば、行インデックス)と、X次元におけるその位置(例えば、列インデックス)とでそれぞれラベル付けされる。例えば、サンプルS21は、Y次元における第2のサンプル(上から)及びX次元における第1のサンプル(左から)である。同様に、サンプルS44は、Y次元及びX次元の双方においてブロック(104)内の第4のサンプルである。ブロックのサイズが4×4のサンプルであるので、S44は右下にある。さらに、同様の番号付け方式に従った参照サンプルが示されている。参照サンプルは、Rと、ブロック(104)に対するそのY位置(例えば、行インデックス)及びX位置(列インデックス)とでラベル付けされる。H.264及びH.265の双方において、予測サンプルは復元中のブロックに隣接しており、したがって、負の値が使用される必要はない。
【0013】
イントラピクチャ予測は、伝達された予測方向に応じて、隣接サンプルから参照サンプル値をコピーすることによって機能できる。例えば、符号化ビデオビットストリームが、このブロックについて、矢印(102)と一致する予測方向を示す信号伝達を含むと仮定する。すなわち、サンプルは、水平から45度の角度で右上に対する1つ又は複数の予測サンプルから予測されると仮定する。この場合、サンプルS41、S32、S23及びS14は、同じ参照サンプルR05から予測される。次いで、サンプルS44は、参照サンプルR08から予測される。
【0014】
或る場合、特に方向が45度で均一に割り切れない場合、参照サンプルを計算するために、複数の参照サンプルの値が、例えば補間によって組み合わされてもよい。
【0015】
ビデオ符号化技術の発達に伴い、可能な方向の数が増加している。H.264(2003年)では、9個の異なる方向が表現可能であった。これは、H.265(2013年)で33個に増加し、開示の時点でのJEM/VVC/BMSでは、最大で65個の方向をサポートできる。最も可能性の高い方向を特定するために実験が行われており、エントロピー符号化における或る技術は、より可能性の低い方向に対して特定のペナルティを受け入れて、少数のビットでこれらの可能性の高い方向を表すために使用されている。さらに、場合によっては、方向自体が、隣接する既に復号されたブロックで使用される隣接方向から予測できる。
【0016】
図1Bは、時間と共に増加する予測方向の数を示す、JEMに従った65個のイントラ予測方向を示す概略図(180)を示す。
【0017】
方向を表す符号化ビデオビットストリームにおけるイントラ予測方向ビットのマッピングは、ビデオ符号化技術によって異なる可能性があり、例えば、予測方向の簡単な直接マッピングから、イントラ予測モード、コードワード、最確モードを含む複雑な適応方式、及び同様の技術まで及ぶ可能性がある。しかし、全ての場合で、ビデオコンテンツにおいて、特定の他の方向よりも統計的に生じにくい特定の方向が存在し得る。ビデオ圧縮の目標は冗長性の低減であるので、良好に機能するビデオ符号化技術において、これらのより可能性の低い方向は、より可能性の高い方向よりもより多くのビット数によって表される。
【0018】
動き補償は不可逆圧縮技術であり、前に復元されたピクチャ又はその一部(参照ピクチャ)からのサンプルデータのブロックが、動きベクトル(以下、MVという)によって示される方向に空間的にシフトされた後に、新たに復元されるピクチャ又はその一部の予測に使用されるという技術に関連付けることができる。場合によっては、参照ピクチャは現在復元中のピクチャと同じものにすることができる。MVは、X及びYの2次元を有してもよく、或いは、3次元を有してもよく、第3の次元は、使用中の参照ピクチャを示す(後者は、間接的に、時間次元とすることができる)。
【0019】
いくつかのビデオ圧縮技術では、サンプルデータの特定の領域に適用可能なMVは、他の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」, December 2016)には、様々なMV予測メカニズムが記載されている。H.265が提供する多くのMV予測メカニズムの中で、本明細書において「空間マージ(spatial merge)」と呼ばれる技術について説明する。
【0021】
図2を参照すると、カレントブロック(201)は、空間的にシフトされた同じサイズの前のブロックから予測可能であることが動き探索処理中にエンコーダによって見出されたサンプルを含む。そのMVを直接符号化する代わりに、MVは、1つ以上の参照ピクチャに関連するメタデータから、例えば、A0、A1及びB0、B1、B2(それぞれ202~206)と示される5つの周囲のサンプルのいずれか1つに関連するMVを使用して(復号順に)最新の参照ピクチャから導出できる。H.265では、MV予測は、隣接ブロックが使用しているのと同じ参照ピクチャからの予測子を使用できる。
【発明の概要】
【0022】
本開示の態様は、ビデオ符号化及び/又は復号のための方法及び装置を提供する。いくつかの例では、ビデオ復号のための装置は、処理回路を含む。処理回路は、コーディングされたビデオビットストリームから変換ブロック(TB, transform block)のコーディング情報を復号してもよい。コーディング情報は、TBについて一方向の変換スキップを示してもよい。処理回路は、以前の変換係数の以前に復号された符号値に基づいて、TB内の現在の変換係数の符号値を復号してもよい。現在の変換係数及び以前の変換係数は、TB内の同じ行及び同じ列のうち1つにあってもよい。同じ行及び同じ列のうち1つは、変換スキップの一方向に沿うものとしてもよい。処理回路は、現在の変換係数の復号された符号値に基づいてTB内の現在の変換係数を決定してもよい。
【0023】
一実施形態では、一方向は水平方向である。同じ行及び同じ列のうち1つは、変換スキップの一方向に沿った同じ行である。処理回路は、変換スキップの一方向に沿った同じ行における以前の変換係数の以前に復号された符号値に基づいて、TB内の現在の変換係数の符号値を復号してもよい。一例では、同じ行は、TB内の行のサブセットのうち1つに制限される。
【0024】
一実施形態では、一方向は垂直方向である。同じ行及び同じ列のうち1つは、変換スキップの一方向に沿った同じ列である。処理回路は、変換スキップの一方向に沿った同じ列における以前の変換係数の以前に復号された符号値に基づいて、TB内の現在の変換係数の符号値を復号してもよい。一例では、同じ列は、TB内の列のサブセットのうち1つに制限される。
【0025】
一実施形態では、処理回路は、フラグを復号してもよい。フラグは、同じ行における変換係数の符号値が同じであるか否かを示してもよい。同じ行における変換係数は、現在の変換係数及び以前の変換係数を含んでもよい。
【0026】
一実施形態では、処理回路は、フラグを復号してもよい。フラグは、同じ列における変換係数の符号値が同じであるか否かを示してもよい。同じ列における変換係数は、現在の変換係数及び以前の変換係数を含んでもよい。
【0027】
処理回路は、以前の変換係数の以前に復号された符号値と、TBの上側隣接ブロック内のDC変換係数の以前に復号された符号値と、TBの左側隣接ブロック内のDC変換係数の以前に復号された符号値とに基づいて、TB内の現在の変換係数の符号値を復号してもよい。TBの上側隣接ブロック内のDC変換係数及びTBの左側隣接ブロック内のDC変換係数は、DC空間周波数を有してもよい。
【0028】
一例では、処理回路は、以前の変換係数の以前に復号された符号値と、(i)TBの上側隣接ブロック内のDC変換係数の以前に復号された符号値及び(ii)TBの左側隣接ブロック内のDC変換係数の以前に復号された符号値の加重平均とに基づいて、TB内の現在の変換係数の符号値を復号する。重み付けは、それぞれTB内の変換係数と境界をなす上側隣接ブロック及び左側隣接ブロック内の変換係数の数に基づいてもよい。TB内の以前の変換係数の位置は、TB内の現在の変換係数の位置に隣接してもよい。
【0029】
一例では、TB内の以前の変換係数の位置は、走査方向に沿ったTB内の現在の変換係数の位置に隣接する。走査方向は、TB内の変換係数の符号値をコーディングするための走査順序に基づいてもよい。
【0030】
一実施形態では、処理回路は、以前の変換係数の以前に復号された符号値と、同じ行及び同じ列のうち1つにおけるそれぞれ1つ以上の変換係数の1つ以上の以前に復号された符号値とに基づいて、TB内の現在の変換係数の符号値を復号してもよい。
【0031】
また、本開示の態様は、ビデオ符号化及び/又は復号のためにコンピュータによって実行されると、コンピュータにビデオ符号化及び/又は復号のための方法を実行させる命令を記憶した非一時的なコンピュータ読み取り可能媒体を提供する。
【図面の簡単な説明】
【0032】
開示の対象物の更なる特徴、性質及び様々な利点は、以下の詳細な説明及び添付の図面からより明らかになる。
図1A】イントラ予測モードの例示的なサブセットの概略図である。
図1B】例示的なイントラ予測方向の図である。
図2】一例におけるカレントブロック及びその周囲の空間マージ候補の概略図である。
図3】一実施形態による通信システム(300)の簡略化したブロック図の概略図である。
図4】一実施形態による通信システム(400)の簡略化したブロック図の概略図である。
図5】一実施形態によるデコーダの簡略化したブロック図の概略図である。
図6】一実施形態によるエンコーダの簡略化したブロック図の概略図である。
図7】他の実施形態によるエンコーダのブロック図を示す。
図8】他の実施形態によるデコーダのブロック図を示す。
図9】本開示の実施形態による一次変換基底関数の例を示す。
図10A】本開示の実施形態による、変換ブロックサイズ及び予測モードに基づく様々な変換カーネルの可用性の例示的な依存関係を示す。
図10B】本開示の実施形態によるクロマ成分についてのイントラ予測モードに基づく例示的な変換タイプの選択を示す。
図11】本開示の一実施形態による、自己ループ重み及びエッジ重みによって特徴付けられる一般的なライングラフ変換(LGT, line graph transform)の一例を示す。
図12】本開示の一実施形態による例示的な一般化グラフラプラシアン(GGL, generalized graph Laplacian)行列を示す。
図13A】本開示の一実施形態による、変換ブロック(TB, transform block)及び隣接ブロックの一例を示す。
図13B】本開示の一実施形態によるTBの一例を示す。
図14】本開示の一実施形態によるプロセス(1400)を概略的に示すフローチャートを示す。
図15】一実施形態によるコンピュータシステムの概略図である。
【発明を実施するための形態】
【0033】
図3は、本開示の一実施形態による通信システム(300)の簡略化したブロック図を示す。通信システム(300)は、例えば、ネットワーク(350)を介して互いに通信できる複数の端末デバイスを含む。例えば、通信システム(300)は、ネットワーク(350)を介して相互接続された第1の対の端末デバイス(310)及び(320)を含む。図3の例では、第1の対の端末デバイス(310)及び(320)は、データの一方向伝送を実行する。例えば、端末デバイス(310)は、ネットワーク(350)を介して他の端末デバイス(320)に送信するために、ビデオデータ(例えば、端末デバイス(310)によってキャプチャされたビデオピクチャのストリーム)を符号化してもよい。符号化されたビデオデータは、1つ以上の符号化ビデオビットストリームの形式で送信されてもよい。端末デバイス(320)は、ネットワーク(350)から符号化ビデオデータを受信し、符号化ビデオデータを復号して、ビデオピクチャを復元して復元されたビデオデータに従ってビデオピクチャを表示してもよい。一方向データ伝送は、メディア提供アプリケーション等において一般的でもよい。
【0034】
他の例では、通信システム(300)は、例えば、テレビ会議中に発生し得る符号化ビデオデータの双方向伝送を実行する第2の対の端末デバイス(330)及び(340)を含む。データの双方向伝送のために、一例では、端末デバイス(330)及び(340)の各端末デバイスは、ネットワーク(350)を介して端末デバイス(330)及び(340)の他方の端末デバイスに送信するために、ビデオデータ(例えば、端末デバイスによってキャプチャされたビデオピクチャのストリーム)を符号化してもよい。また、端末デバイス(330)及び(340)の各端末デバイスは、端末デバイス(330)及び(340)の他方の端末デバイスによって送信された符号化ビデオデータを受信してもよく、符号化ビデオデータを復号してビデオピクチャを復元してもよく、復元されたビデオデータに従って、アクセス可能な表示デバイスにビデオピクチャを表示してもよい。
【0035】
図3の例では、端末デバイス(310)、(320)、(330)及び(340)は、サーバ、パーソナルコンピュータ及びスマートフォンとして示されることがあるが、本開示の原理はこれらに限定されない。本開示の実施形態は、ラップトップコンピュータ、タブレットコンピュータ、メディアプレイヤ及び/又は専用のテレビ会議機器に適用がある。ネットワーク(350)は、例えば、有線(配線接続)及び/又は無線通信ネットワークを含む、端末デバイス(310)、(320)、(330)及び(340)の間で符号化ビデオデータを伝達するいずれかの数のネットワークを表す。通信ネットワーク(350)は、回線交換チャネル及び/又はパケット交換チャネルにおいてデータを交換してもよい。代表的なネットワークは、電気通信ネットワーク、ローカルエリアネットワーク、広域ネットワーク及び/又はインターネットを含む。本説明の目的では、ネットワーク(350)のアーキテクチャ及びトポロジは、本明細書において以下に説明しない限り、本開示の動作には重要ではない。
【0036】
図4は、開示の対象物のアプリケーションの例として、ストリーミング環境におけるビデオエンコーダ及びビデオデコーダの配置を示す。開示の対象物は、例えば、テレビ会議、デジタルTV、デジタルメディア(CD、DVD、メモリスティック等を含む)上の圧縮ビデオの記憶等を含む、他のビデオ可能なアプリケーションにも同様に適用可能である。
【0037】
ストリーミングシステムはキャプチャサブシステム(413)を含んでもよく、当該キャプチャサブシステム(413)は、例えば、非圧縮のビデオピクチャのストリーム(402)を生成するビデオソース(401)(例えば、デジタルカメラ)を含んでもよい。一例では、ビデオピクチャのストリーム(402)は、デジタルカメラによって撮影されたサンプルを含む。符号化ビデオデータ(404)(又は符号化ビデオビットストリーム)と比較したときに高いデータ量であることを強調する太線として描かれるビデオピクチャのストリーム(402)は、ビデオソース(401)に結合されたビデオエンコーダ(403)を含む電子デバイス(420)によって処理されてもよい。ビデオエンコーダ(403)は、以下により詳細に説明するように、開示の対象物の態様を可能にするため或いは実装するために、ハードウェア、ソフトウェア又はこれらの組み合わせを含んでもよい。ビデオピクチャのストリーム(402)と比較したときにより低いデータ量であることを強調するために細線として描かれる符号化ビデオデータ(404)(又は符号化ビデオビットストリーム(404))は、将来の使用のためにストリーミングサーバ(405)に記憶されてもよい。図4におけるクライアントサブシステム(406)及び(408)のような1つ以上のストリーミングクライアントサブシステムは、ストリーミングサーバ(405)にアクセスして符号化ビデオデータ(404)のコピー(407)及び(409)を取得してもよい。クライアントサブシステム(406)は、例えば、電子デバイス(430)内にビデオデコーダ(410)を含んでもよい。ビデオデコーダ(410)は、符号化ビデオデータの入力コピー(407)を復号し、ディスプレイ(412)(例えば、表示画面)又は他のレンダリングデバイス(図示せず)上にレンダリングできるビデオピクチャの出力ストリーム(411)を生成する。いくつかのストリーミングシステムでは、符号化ビデオデータ(404)、(407)及び(409)(例えば、ビデオビットストリーム)は、特定のビデオ符号化/圧縮標準に従って符号化されてもよい。これらの標準の例は、ITU-T勧告H.265を含む。一例では、開発中のビデオ符号化標準は、VVC(Versatile Video Coding)として非公式に知られている。開示の対象物は、VVCの背景において使用されてもよい。
【0038】
電子デバイス(420)及び(430)は、他の構成要素(図示せず)を含んでもよい点に留意すべきである。例えば、電子デバイス(420)は、ビデオデコーダ(図示せず)を含んでもよく、また、電子デバイス(430)は、ビデオエンコーダ(図示せず)を含んでもよい。
【0039】
図5は、本開示の一実施形態によるビデオデコーダ(510)のブロック図を示す。ビデオデコーダ(510)は、電子デバイス(530)に含まれてもよい。電子デバイス(530)は、受信機(531)(例えば、受信回路)を含んでもよい。図4の例におけるビデオデコーダ(410)の代わりにビデオデコーダ(510)が使用されてもよい。
【0040】
受信機(531)は、ビデオデコーダ(510)によって復号されるべき1つ以上の符号化ビデオシーケンスを受信してもよく、同一又は他の実施形態では、一度に1つの符号化ビデオシーケンスを受信してもよく、各符号化ビデオシーケンスの復号は、他の符号化ビデオシーケンスとは独立している。符号化ビデオシーケンスは、チャネル(501)から受信されてもよく、当該チャネルは、符号化ビデオデータを記憶する記憶デバイスへのハードウェア/ソフトウェアリンクでもよい。受信機(531)は、符号化ビデオデータを、他のデータ(例えば、符号化オーディオデータ及び/又は補助データストリーム)と共に受信してもよく、これらは、それぞれの使用エンティティ(図示せず)に転送されてもよい。受信機(531)は、符号化ビデオシーケンスを他のデータから分離してもよい。ネットワークジッタを防止するために、バッファメモリ(515)は、受信機(531)とエントロピーデコーダ/パーサ(520)(以下、「パーサ(520)」という)との間に結合されてもよい。特定のアプリケーションでは、バッファメモリ(515)はビデオデコーダ(510)の一部である。他の場合には、ビデオデコーダ(510)の外側にあってもよい(図示せず)。更に他の場合には、例えば、ネットワークジッタを防止するために、ビデオデコーダ(510)の外側にバッファメモリ(図示せず)が存在してもよく、加えて、例えば、再生タイミングに対処するために、ビデオデコーダ(510)の内側に他のバッファメモリ(515)が存在してもよい。受信機(531)が、十分な帯域幅及び制御可能性を有する記憶/転送デバイスから、或いは、アイソクロナスネットワークからデータを受信している場合、バッファメモリ(515)は必要なくてもよく或いは小さくすることができる。インターネットのようなベストエフォート型パケットネットワークでの使用については、バッファメモリ(515)が必要とされてもよく、比較的大きくすることができ、有利には適応的なサイズとすることができ、ビデオデコーダ(510)の外側のオペレーティングシステム又は同様の要素(図示せず)に少なくとも部分的に実装されてもよい。
【0041】
ビデオデコーダ(510)は、符号化ビデオシーケンスからシンボル(521)を復元するためのパーサ(520)を含んでもよい。これらのシンボルのカテゴリは、ビデオデコーダ(510)の動作を管理するために使用される情報を含み、レンダリングデバイス(512)(例えば、表示画面)のようなレンダリングデバイスを制御するための情報を潜在的に含む。当該レンダリングデバイス(512)は、図5に示されているように、電子デバイス(530)の一体的な部分ではないが、電子デバイス(530)に結合されてもよい。レンダリングデバイスの制御情報は、補足エンハンスメント情報(SEI, Supplemental Enhancement Information)(SEIメッセージ)又はビデオユーザビリティ情報(VUI, Video Usability Information)パラメータセットフラグメント(図示せず)の形式でもよい。パーサ(520)は、受信した符号化ビデオシーケンスを解析/エントロピー復号してもよい。符号化ビデオシーケンスの符号化は、ビデオ符号化技術又は標準に従ってもよく、可変長符号化、ハフマン符号化、コンテキスト感度を伴う或いは伴わない算術符号化等を含む様々な原理に従ってもよい。パーサ(520)は、グループに対応する少なくとも1つのパラメータに基づいて、符号化ビデオシーケンスから、ビデオデコーダ内の画素のサブグループのうち少なくとも1つについてのサブグループパラメータのセットを抽出してもよい。サブグループは、グループオブピクチャ(GOP, Group of Picture)、ピクチャ、タイル、スライス、マクロブロック、符号化ユニット(CU, Coding Unit)、ブロック、変換ユニット(TU, Transformation Unit)、予測ユニット(PU, Prediction Unit)等を含んでもよい。また、パーサ(520)は、符号化ビデオシーケンスから、変換係数、量子化パラメータ値、動きベクトル等のような情報を抽出してもよい。
【0042】
パーサ(520)は、シンボル(521)を生成するために、バッファメモリ(515)から受信したビデオシーケンスに対してエントロピー復号/解析動作を実行してもよい。
【0043】
シンボル(521)の復元には、符号化ビデオピクチャ又はその部分のタイプ(例えば、インターピクチャ及びイントラピクチャ、インターブロック及びイントラブロック)及び他の要因に依存して、複数の異なるユニットが関与してもよい。どのユニットがどのように関与するかは、パーサ(520)によって符号化ビデオシーケンスから解析されたサブグループ制御情報によって制御されてもよい。パーサ(520)と以下の複数ユニットとの間のこのようなサブグループ制御情報の流れは、明確にするために図示されていない。
【0044】
上記の機能ブロックの他に、ビデオデコーダ(510)は、概念的に、以下に説明するような複数の機能ユニットに細分されてもよい。商用的な制約の下で動作する実用的な実装では、これらのユニットの多くは互いに密接に相互作用し、少なくとも部分的に互いに統合されてもよい。しかし、開示の対象物を説明する目的で、以下の機能ユニットに概念的に細分することが適切である。
【0045】
第1のユニットは、スケーラ/逆変換ユニット(551)である。スケーラ/逆変換ユニット(551)は、パーサ(520)からシンボル(521)として、制御情報(どの変換を使用するべきか、ブロックサイズ、量子化係数、量子化スケーリング行列等を含む)と共に、量子化された変換係数を受信する。スケーラ/逆変換ユニット(551)は、アグリゲータ(555)に入力できるサンプル値を含むブロックを出力してもよい。
【0046】
場合によっては、スケーラ/逆変換(551)の出力サンプルは、イントラ符号化ブロックに関連してもよく、すなわち、前に復元されたピクチャからの予測情報を使用していないが、カレントピクチャの前に復元された部分からの予測情報を使用できるブロックに関連してもよい。このような予測情報は、イントラピクチャ予測ユニット(552)によって提供されてもよい。場合によっては、イントラピクチャ予測ユニット(552)は、カレントピクチャバッファ(558)から取り出された周囲の既に復元された情報を使用して、復元中のブロックの同じサイズ及び形状のブロックを生成する。カレントピクチャバッファ(558)は、例えば、部分的に復元されたカレントピクチャ及び/又は完全に復元されたカレントピクチャをバッファする。場合によっては、アグリゲータ(555)は、サンプル毎に、イントラ予測ユニット(552)が生成した予測情報を、スケーラ/逆変換ユニット(551)によって提供された出力サンプル情報に追加する。
【0047】
他の場合には、スケーラ/逆変換ユニット(551)の出力サンプルは、インター符号化されて潜在的に動き補償されたブロックに関連してもよい。このような場合、動き補償予測ユニット(553)は、参照ピクチャメモリ(557)にアクセスして、予測に使用されるサンプルを取り出してもよい。ブロックに関連するシンボル(521)に従って、取り出されたサンプルを動き補償した後に、これらのサンプルは、出力サンプル情報を生成するために、アグリゲータ(555)によってスケーラ/逆変換ユニット(551)の出力(この場合には、残差サンプル又は残差信号と呼ばれる)に追加されてもよい。動き補償予測ユニット(553)に利用可能な、動き補償予測ユニット(553)が予測サンプルを取り出す参照ピクチャメモリ(557)内のアドレスは、例えば、X、Y及び参照ピクチャ成分を有することができるシンボル(521)の形式で、動きベクトルによって制御されてもよい。また、動き補償は、サブサンプルの正確な動きベクトルが使用されているときに参照ピクチャメモリ(557)から取り出されるサンプル値の補間、動きベクトル予測メカニズム等を含んでもよい。
【0048】
アグリゲータ(555)の出力サンプルは、ループフィルタユニット(556)内の様々なループフィルタリング技術を受けてもよい。ビデオ圧縮技術はループ内フィルタ技術を含んでもよく、当該ループ内フィルタ技術は、符号化ビデオシーケンス(符号化ビデオビットストリームとも呼ばれる)に含まれるパラメータによって制御され、パーサ(520)からシンボル(521)としてループフィルタユニット(556)に利用可能にされるが、符号化ピクチャ又は符号化ビデオシーケンスの(復号順に)前の部分の復号の間に取得されたメタ情報に応答すると共に、前に復元されてループフィルタリングされたサンプル値にも応答してもよい。
【0049】
ループフィルタユニット(556)の出力はサンプルストリームでもよく、当該サンプルストリームは、レンダリングデバイス(512)に出力されると共に、将来のインターピクチャ予測に使用するために参照ピクチャメモリ(557)に記憶されてもよい。
【0050】
特定の符号化ピクチャは、完全に復元されると、将来の予測のための参照ピクチャとして使用されてもよい。例えば、カレントピクチャに対応する符号化ピクチャが完全に復元され、符号化ピクチャが(例えば、パーサ(520)によって)参照ピクチャとして識別されると、カレントピクチャバッファ(558)は参照ピクチャメモリ(557)の一部となってもよく、新たなカレントピクチャバッファが、後続の符号化ピクチャの復元を開始する前に再割り当てされてもよい。
【0051】
ビデオデコーダ(510)は、ITU-T Rec. H.265のような標準における所定のビデオ圧縮技術に従って復号動作を実行してもよい。符号化ビデオシーケンスがビデオ圧縮技術又は標準のシンタックス及びビデオ圧縮技術又は標準に文書化されているプロファイルの双方に従うという意味で、符号化ビデオシーケンスは、使用されているビデオ圧縮技術又は標準によって指定されたシンタックスに適合してもよい。具体的には、プロファイルは、ビデオ圧縮技術又は標準で利用可能な全てのツールから特定のツールを、そのプロファイルで使用するのに利用可能な唯一のツールとして選択してもよい。また、コンプライアンスのために必要なことは、符号化ビデオシーケンスの複雑さが、ビデオ圧縮技術又は標準のレベルによって定義される範囲内にあることである。場合によっては、レベルは、最大ピクチャサイズ、最大フレームレート、最大復元サンプルレート(例えば、毎秒当たりのメガサンプル単位で測定される)、最大参照ピクチャサイズ等を制限する。場合によっては、レベルによって設定される制限は、仮想参照デコーダ(HRD, Hypothetical Reference Decoder)仕様及び符号化ビデオシーケンスで伝達されるHRDバッファ管理についてのメタデータを通じて更に制限されてもよい。
【0052】
一実施形態では、受信機(531)は、符号化ビデオと共に更なる(冗長な)データを受信してもよい。更なるデータは、符号化ビデオシーケンスの一部として含まれてもよい。更なるデータは、データを適切に復号するために、及び/又は元のビデオデータをより正確に復元するために、ビデオデコーダ(510)によって使用されてもよい。更なるデータは、例えば、時間、空間又は信号雑音比(SNR, signal noise ratio)エンハンスメント層、冗長スライス、冗長ピクチャ、前方誤り訂正コード等の形式でもよい。
【0053】
図6は、本開示の一実施形態によるビデオエンコーダ(603)のブロック図を示す。ビデオエンコーダ(603)は、電子デバイス(620)に含まれる。電子デバイス(620)は、送信機(640)(例えば、送信回路)を含む。図4の例におけるビデオエンコーダ(403)の代わりにビデオエンコーダ(603)が使用されてもよい。
【0054】
ビデオエンコーダ(603)は、ビデオソース(601)(図6の例では電子デバイス(620)の一部ではない)からビデオサンプルを受信してもよく、当該ビデオソース(601)は、ビデオエンコーダ(603)によって符号化されるべきビデオ画像をキャプチャしてもよい。他の例では、ビデオソース(601)は電子デバイス(620)の一部である。
【0055】
ビデオソース(601)は、デジタルビデオサンプルストリームの形式でビデオエンコーダ(603)によって符号化されるべきソースビデオシーケンスを提供してもよく、当該デジタルビデオサンプルストリームは、いずれかの適切なビット深度(例えば、8ビット、10ビット、12ビット等)、いずれかの色空間(例えば、BT.601 Y CrCB、RGB等)及びいずれかの適切なサンプリング構造(例えば、Y CrCb 4:2:0、Y CrCb 4:4:4)でもよい。メディア提供システムにおいて、ビデオソース(601)は、事前に準備されたビデオを記憶する記憶デバイスでもよい。テレビ会議システムでは、ビデオソース(601)は、ローカル画像情報をビデオシーケンスとしてキャプチャするカメラでもよい。ビデオデータは、順に見たときに動きを伝える複数の個々のピクチャとして提供されてもよい。ピクチャ自体は、画素の空間配列として構成されてもよく、各画素は、使用中のサンプリング構造、色空間等に依存して、1つ以上のサンプルを含んでもよい。当業者は、画素とサンプルとの関係を容易に理解することができる。以下の説明は、サンプルに焦点を当てる。
【0056】
一実施形態によれば、ビデオエンコーダ(603)は、リアルタイムで或いはアプリケーションによって要求されるいずれかの他の時間制約下で、ソースビデオシーケンスのピクチャを、符号化ビデオシーケンス(643)に符号化及び圧縮してもよい。適切な符号化速度を実現することは、コントローラ(650)の1つの機能である。いくつかの実施形態では、コントローラ(650)は、以下に説明するように、他の機能ユニットを制御し、他の機能ユニットに機能的に結合される。結合は、明確にするために図示されていない。コントローラ(650)によって設定されるパラメータは、レート制御関連パラメータ(ピクチャスキップ、量子化、レート歪み最適化技術のラムダ値等)、ピクチャサイズ、グループオブピクチャ(GOP)のレイアウト、最大動きベクトル探索範囲等を含んでもよい。コントローラ(650)は、特定のシステム設計のために最適化されたビデオエンコーダ(603)に関連する他の適切な機能を有するように構成されてもよい。
【0057】
いくつかの実施形態では、ビデオエンコーダ(603)は、符号化ループで動作するように構成される。非常に簡略化した説明として、一例では、符号化ループは、ソースコーダ(630)(例えば、符号化されるべき入力ピクチャ及び参照ピクチャに基づいて、シンボルストリームのようなシンボルを生成することを担う)と、ビデオエンコーダ(603)に埋め込まれた(ローカル)デコーダ(633)とを含んでもよい。デコーダ(633)は、(リモート)デコーダが生成するのと同様に(シンボルと符号化ビデオビットストリームとの間のいずれかの圧縮が、開示の対象物において検討されるビデオ圧縮技術において可逆であるように)、サンプルデータを生成するようにシンボルを復元する。復元されたサンプルストリーム(サンプルデータ)は、参照ピクチャメモリ(634)に入力される。シンボルストリームの復号は、デコーダの位置(ローカル又はリモート)と独立したビット単位の正確な結果をもたらすので、参照ピクチャメモリ(634)内の内容も、ローカルエンコーダとリモートエンコーダとの間でビット単位で正確である。言い換えると、エンコーダの予測部分は、デコーダが復号中に予測を使用するときに「見る」のと全く同じサンプル値を参照ピクチャサンプルとして「見る」。参照ピクチャの同期(例えば、チャネルエラーの理由で同期が維持できない場合の結果として生じるドリフトを含む)のこの基本原理は、いくつかの関連技術においても同様に使用される。
【0058】
「ローカル」デコーダ(633)の動作は、ビデオデコーダ(510)のような「リモート」デコーダと同じでもよく、これは、図5に関連して上記において既に詳細に説明した。しかし、図5を簡単に参照すると、シンボルが利用可能であり、エントロピーコーダ(645)及びパーサ(520)による符号化ビデオシーケンスへのシンボルの符号化/復号が可逆になり得るので、バッファメモリ(515)及びパーサ(520)を含むビデオデコーダ(510)のエントロピー復号部分は、ローカルデコーダ(633)に完全には実装されなくてもよい。
【0059】
この時点で行うことができる考察は、デコーダ内に存在する解析/エントロピー復号を除く如何なるデコーダ技術も、必然的に対応するエンコーダ内に実質的に同一の機能形式で存在する必要があることである。このため、開示の対象物はデコーダ動作に焦点を当てる。エンコーダ技術の説明は、包括的に記載されるデコーダ技術の逆であるので、省略できる。特定の領域においてのみ、より詳細な説明が必要であり、以下に提供される。
【0060】
いくつかの例では、動作中に、ソースコーダ(630)は、動き補償予測符号化を実行してもよく、当該動き補償予測符号化は、「参照ピクチャ」として指定されたビデオシーケンスからの1つ以上の前に符号化されたピクチャを参照して入力ピクチャを予測的に符号化する。このように、符号化エンジン(632)は、入力ピクチャの画素ブロックと、入力ピクチャに対する予測参照として選択され得る参照ピクチャの画素ブロックとの間の差を符号化する。
【0061】
ローカルビデオデコーダ(633)は、ソースコーダ(630)によって生成されたシンボルに基づいて、参照ピクチャとして指定され得るピクチャの符号化ビデオデータを復号してもよい。符号化エンジン(632)の動作は、有利には、不可逆処理でもよい。符号化ビデオデータがビデオデコーダ(図6に図示せず)で復号され得る場合、復元されたビデオシーケンスは、典型的には、いくつかのエラーを伴うソースビデオシーケンスのレプリカになり得る。ローカルビデオデコーダ(633)は、参照ピクチャに対してビデオデコーダによって実行され得る復号処理を複製し、復元された参照ピクチャを参照ピクチャキャッシュ(634)に記憶させてもよい。このように、ビデオエンコーダ(603)は、遠端のビデオデコーダによって取得される(送信エラーのない)復元された参照ピクチャとして、共通の内容を有する復元された参照ピクチャのコピーをローカルに記憶してもよい。
【0062】
予測器(635)は、符号化エンジン(632)のための予測探索を実行してもよい。すなわち、符号化されるべき新たなピクチャについて、予測器(635)は、(候補参照画素ブロックとしての)サンプルデータ又は特定のメタデータ(参照ピクチャ動きベクトル、ブロック形状等)を求めて参照ピクチャメモリ(634)を検索してもよい。これらは、新たなピクチャについての適切な予測参照として機能してもよい。予測器(635)は、適切な予測参照を検出するために、サンプルブロック毎画素ブロック毎(sample block-by-pixel block)に動作してもよい。場合によっては、予測器(635)によって取得された検索結果によって決定された入力ピクチャは、参照ピクチャメモリ(634)に記憶された複数の参照ピクチャから引き出された予測参照を有してもよい。
【0063】
コントローラ(650)は、例えば、ビデオデータを符号化するために使用されるパラメータ及びサブグループパラメータの設定を含む、ソースコーダ(630)の符号化動作を管理してもよい。
【0064】
全ての上記の機能ユニットの出力は、エントロピーコーダ(645)におけるエントロピー符号化を受けてもよい。エントロピーコーダ(645)は、ハフマン符号化、可変長符号化、算術符号化等のような技術に従って、シンボルを可逆圧縮することによって、様々な機能ユニットによって生成されたシンボルを符号化ビデオシーケンスに変換する。
【0065】
送信機(640)は、エントロピーコーダ(645)によって生成された符号化ビデオシーケンスをバッファして、通信チャネル(660)を介した送信の準備をしてもよく、当該通信チャネル(660)は、符号化ビデオデータを記憶する記憶デバイスへのハードウェア/ソフトウェアリンクでもよい。送信機(640)は、ビデオコーダ(603)からの符号化ビデオデータを、送信されるべき他のデータ(例えば、符号化オーディオデータ及び/又は補助データストリーム(図示せず))とマージしてもよい。
【0066】
コントローラ(650)は、ビデオエンコーダ(603)の動作を管理してもよい。符号化中に、コントローラ(650)は、各符号化ピクチャに、特定の符号化ピクチャタイプを割り当ててもよい。当該符号化ピクチャタイプは、各ピクチャに適用され得る符号化技術に影響を与えてもよい。例えば、ピクチャは、しばしば、以下のピクチャタイプのうち1つとして割り当てられてもよい。
【0067】
イントラピクチャ(Iピクチャ)は、予測のソースとしてシーケンス内の他のピクチャを使用せずに、符号化及び復号され得るものでもよい。いくつかのビデオコーデックは、例えば、独立デコーダリフレッシュ(IDR, Independent Decoder Refresh)ピクチャを含む、異なるタイプのイントラピクチャを許容する。当業者は、Iピクチャのこれらの変形例と、それぞれの用途及び特徴を認識する。
【0068】
予測ピクチャ(Pピクチャ)は、各ブロックのサンプル値を予測するために、最大で1つの動きベクトル及び参照インデックスを使用して、イントラ予測又はインター予測を使用して符号化及び復号され得るものでもよい。
【0069】
双方向予測ピクチャ(Bピクチャ)は、各ブロックのサンプル値を予測するために、最大で2つの動きベクトル及び参照インデックスを使用して、イントラ予測又はインター予測を使用して符号化及び復号され得るものでもよい。同様に、複数の予測ピクチャは、単一のブロックの復元のために、2つより多くの参照ピクチャ及び関連するメタデータを使用してもよい。
【0070】
一般的に、ソースピクチャは、空間的に複数のサンプルブロック(例えば、それぞれ4×4、8×8、4×8又は16×16のサンプルのブロック)に細分され、ブロック毎に符号化されてもよい。ブロックは、ブロックのそれぞれのピクチャに適用される符号化割り当てによって決定される通り、他の(既に符号化された)ブロックを参照して予測的に符号化されてもよい。例えば、Iピクチャのブロックは、非予測的に符号化されてもよく、或いは、同じピクチャの既に符号化されたブロックを参照して予測的に符号化されてもよい(空間予測又はイントラ予測)。Pピクチャの画素ブロックは、1つ前に符号化された参照ピクチャを参照して、空間予測又は時間予測を介して予測的に符号化されてもよい。Bピクチャのブロックは、1つ又は2つ前に符号化された参照ピクチャを参照して、空間予測又は時間予測を介して予測的に符号化されてもよい。
【0071】
ビデオエンコーダ(603)は、ITU-T Rec. H.265のような所定のビデオ符号化技術又は標準に従って符号化動作を実行してもよい。その動作において、ビデオエンコーダ(603)は、入力ビデオシーケンスにおける時間的及び空間的冗長性を利用する予測符号化動作を含む様々な圧縮動作を実行してもよい。したがって、符号化ビデオデータは、使用されているビデオ符号化技術又は標準によって指定されたシンタックスに適合してもよい。
【0072】
一実施形態では、送信機(640)は、符号化ビデオと共に更なるデータを送信してもよい。ソースコーダ(630)は、符号化ビデオシーケンスの一部としてこのようなデータを含んでもよい。更なるデータは、時間/空間/SNRエンハンスメント層、冗長ピクチャ及びスライス、SEIメッセージ、VUIパラメータセットフラグメント等のような他の形式の冗長データを含んでもよい。
【0073】
ビデオは、時系列において複数のソースピクチャ(ビデオピクチャ)としてキャプチャされてもよい。イントラピクチャ予測(しばしばイントラ予測と略される)は、所与のピクチャ内の空間的相関を利用し、インターピクチャ予測は、ピクチャ間の(時間的又は他の)相関を利用する。一例では、カレントピクチャと呼ばれる符号化/復号中の特定のピクチャは、ブロックに分割される。カレントピクチャ内のブロックがビデオにおける前に符号化されて依然としてバッファされている参照ピクチャ内の参照ブロックに類似する場合、カレントピクチャ内のブロックは、動きベクトルと呼ばれるベクトルによって符号化されてもよい。動きベクトルは、参照ピクチャ内の参照ブロックを指し、複数の参照ピクチャが使用されている場合には、参照ピクチャを識別する第3の次元を有してもよい。
【0074】
いくつかの実施形態では、双方向予測技術は、インターピクチャ予測において使用されてもよい。双方向予測技術によれば、ビデオにおけるカレントピクチャへの復号順で双方とも先行する(しかし、表示順ではそれぞれ過去及び将来のものでもよい)第1の参照ピクチャ及び第2の参照ピクチャのような2つの参照ピクチャが使用される。カレントピクチャ内のブロックは、第1の参照ピクチャ内の第1の参照ブロックを指す第1の動きベクトルと、第2の参照ピクチャ内の第2の参照ブロックを指す第2の動きベクトルとによって符号化されてもよい。ブロックは、第1の参照ブロックと第2の参照ブロックとの組み合わせによって予測されてもよい。
【0075】
さらに、符号化効率を改善するために、インターピクチャ予測においてマージモード技術が使用できる。
【0076】
本開示のいくつかの実施形態によれば、インターピクチャ予測及びイントラピクチャ予測のような予測は、ブロックの単位で実行される。例えば、HEVC標準によれば、ビデオピクチャのシーケンス内のピクチャは、圧縮のために符号化ツリーユニット(CTU, coding tree unit)に分割され、ピクチャ内のCTUは、64×64の画素、32×32の画素又は16×16の画素のように、同じサイズを有する。一般的に、CTUは、1つの輝度CTBと2つの色差CTBである3つの符号化ツリーブロック(CTB, coding tree block)を含む。各CTUは、1つ又は複数の符号化ユニット(CU, coding unit)に再帰的に四分木分割されてもよい。例えば、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の画素等のように、画素の値(例えば、輝度値)の行列を含む。
【0077】
図7は、本開示の他の実施形態によるビデオエンコーダ(703)の図を示す。ビデオエンコーダ(703)は、ビデオピクチャのシーケンス内のカレントビデオピクチャ内のサンプル値の処理ブロック(例えば、予測ブロック)を受信し、処理ブロックを符号化ビデオシーケンスの一部である符号化ピクチャに符号化するように構成される。一例では、ビデオエンコーダ(703)は、図4の例のビデオエンコーダ(403)の代わりに使用される。
【0078】
HEVCの例では、ビデオエンコーダ(703)は、8×8のサンプルの予測ブロック等のような処理ブロックのサンプル値の行列を受信する。ビデオエンコーダ(703)は、処理ブロックが、例えば、レート歪み最適化を使用して、イントラモードを使用して最も良く符号化されるか、インターモードを使用して最も良く符号化されるか、双方向予測モードを使用して最も良く符号化されるかを決定する。処理ブロックがイントラモードで符号化される場合、ビデオエンコーダ(703)は、処理ブロックを符号化ピクチャに符号化するためにイントラ予測技術を使用してもよい。処理ブロックがインターモード又は双方向予測モードで符号化される場合、ビデオエンコーダ(703)は、処理ブロックを符号化ピクチャに符号化するために、それぞれインター予測技術又は双方向予測技術を使用してもよい。特定のビデオ符号化技術では、マージモード(merge mode)は、動きベクトル予測子以外の符号化された動きベクトル成分の恩恵を受けずに、動きベクトルが1つ以上の動きベクトル予測子から導出されるインターピクチャ予測サブモードでもよい。特定の他のビデオ符号化技術では、対象のブロックに適用可能な動きベクトル成分が存在してもよい。一例では、ビデオエンコーダ(703)は、処理ブロックのモードを決定するためのモード決定モジュール(図示せず)のような他の構成要素を含む。
【0079】
図7の例では、ビデオエンコーダ(703)は、図7に示されるように共に結合されたインターエンコーダ(730)と、イントラエンコーダ(722)と、残差計算器(723)と、スイッチ(726)と、残差エンコーダ(724)と、全体コントローラ(721)と、エントロピーエンコーダ(725)とを含む。
【0080】
インターエンコーダ(730)は、カレントブロック(例えば、処理ブロック)のサンプルを受信し、当該ブロックを参照ピクチャ内の1つ以上の参照ブロック(例えば、前のピクチャ及び後のピクチャ内のブロック)と比較し、インター予測情報(例えば、インター符号化技術による冗長情報の記述、動きベクトル、マージモード情報)を生成し、いずれかの適切な技術を使用して、インター予測情報に基づいてインター予測結果(例えば、予測ブロック)を計算するように構成される。いくつかの例では、参照ピクチャは、符号化ビデオ情報に基づいて復号された復号参照ピクチャである。
【0081】
イントラエンコーダ(722)は、カレントブロック(例えば、処理ブロック)のサンプルを受信し、場合によっては、当該ブロックを、同じピクチャ内で既に符号化されたブロックと比較し、変換後に量子化係数を生成し、場合によっては、イントラ予測情報(例えば、1つ以上のイントラ符号化技術によるイントラ予測方向情報)も生成するように構成される。また、一例では、イントラエンコーダ(722)は、同じピクチャ内のイントラ予測情報及び参照ブロックに基づいて、イントラ予測結果(例えば、予測ブロック)を計算する。
【0082】
全体コントローラ(721)は、全体制御データを決定し、全体制御データに基づいてビデオエンコーダ(703)の他の構成要素を制御するように構成される。一例では、全体コントローラ(721)は、ブロックのモードを決定し、当該モードに基づいて制御信号をスイッチ(726)に提供する。例えば、モードがイントラモードである場合、全体コントローラ(721)は、残差計算器(723)によって使用されるイントラモード結果を選択するようにスイッチ(726)を制御し、イントラ予測情報を選択してイントラ予測情報をビットストリームに含めるようにエントロピーエンコーダ(725)を制御する。モードがインターモードである場合、全体コントローラ(721)は、残差計算器(723)によって使用されるインター予測結果を選択するようにスイッチ(726)を制御し、インター予測情報を選択してインター予測情報をビットストリームに含めるようにエントロピーエンコーダ(725)を制御する。
【0083】
残差計算器(723)は、受信したブロックと、イントラエンコーダ(722)又はインターエンコーダ(730)から選択された予測結果との差(残差データ)を計算するように構成される。残差エンコーダ(724)は、残差データに基づいて動作し、残差データを符号化して変換係数を生成するように構成される。一例では、残差エンコーダ(724)は、残差データを空間ドメインから周波数ドメインに変換し、変換係数を生成するように構成される。次いで、変換係数は、量子化された変換係数を取得するための量子化処理を受ける。また、様々な実施形態では、ビデオエンコーダ(703)は、残差デコーダ(728)も含む。残差デコーダ(728)は、逆変換を実行し、復号された残差データを生成するように構成される。復号された残差データは、イントラエンコーダ(722)及びインターエンコーダ(730)によって適切に使用されてもよい。例えば、インターエンコーダ(730)は、復号された残差データ及びインター予測情報に基づいて復号ブロックを生成してもよく、イントラエンコーダ(722)は、復号された残差データ及びイントラ予測情報に基づいて復号ブロックを生成してもよい。復号ブロックは、復号ピクチャを生成するように適切に処理され、復号ピクチャは、メモリ回路(図示せず)にバッファされ、いくつかの例では参照ピクチャとして使用されてもよい。
【0084】
エントロピーエンコーダ(725)は、符号化ブロックを含めるようにビットストリームをフォーマットするように構成される。エントロピーエンコーダ(725)は、HEVC標準のような適切な標準に従った様々な情報を含めるように構成される。一例では、エントロピーエンコーダ(725)は、全体制御データと、選択された予測情報(例えば、イントラ予測情報又はインター予測情報)と、残差情報と、他の適切な情報とをビットストリームに含めるように構成される。開示の対象物によれば、インターモード又は双方向予測モードのいずれかのマージサブモードでブロックを符号化する場合、残差情報は存在しない点に留意すべきである。
【0085】
図8は、本開示の他の実施形態によるビデオデコーダ(810)の図を示す。ビデオデコーダ(810)は、符号化ビデオシーケンスの一部である符号化ピクチャを受信し、符号化ピクチャを復号して復元ピクチャを生成するように構成される。一例では、ビデオデコーダ(810)は、図4の例のビデオデコーダ(410)の代わりに使用される。
【0086】
図8の例では、ビデオデコーダ(810)は、図8に示されるように共に結合されたエントロピーデコーダ(871)と、インターデコーダ(880)と、残差デコーダ(873)と、復元モジュール(874)と、イントラデコーダ(872)とを含む。
【0087】
エントロピーデコーダ(871)は、符号化ピクチャから、当該符号化ピクチャが構成されるシンタックスエレメントを表す特定のシンボルを復元するように構成されてもよい。このようなシンボルは、例えば、ブロックが符号化されるモード(例えば、イントラモード、インターモード、双方向予測モード、マージサブモード又は他のサブモードにおける後者の2つ等)、それぞれイントラデコーダ(872)又はインターデコーダ(880)によって予測のために使用される特定のサンプル又はメタデータを識別できる予測情報(例えば、イントラ予測情報又はインター予測情報等)、例えば、量子化された変換係数の形式の残差情報等を含んでもよい。一例では、予測モードがインターモード又は双方向予測モードである場合、インター予測情報はインターデコーダ(880)に提供され、予測タイプがイントラ予測タイプである場合には、イントラ予測情報がイントラデコーダ(872)に提供される。残差情報は、逆量子化を受けてもよく、残差デコーダ(873)に提供される。
【0088】
インターデコーダ(880)は、インター予測情報を受信し、インター予測情報に基づいてインター予測結果を生成するように構成される。
【0089】
イントラデコーダ(872)は、イントラ予測情報を受信し、イントラ予測情報に基づいて予測結果を生成するように構成される。
【0090】
残差デコーダ(873)は、逆量子化された変換係数を抽出するための逆量子化を実行し、逆量子化された変換係数を処理して残差を周波数ドメインから空間ドメインに変換するように構成される。また、残差デコーダ(873)は、特定の制御情報(量子化パラメータ(QP, Quantizer Parameter)を含む)を必要としてもよく、その情報は、エントロピーデコーダ(871)によって提供されてもよい(これは低ボリュームの制御情報のみである可能性があるので、データ経路は図示されていない)。
【0091】
復元モジュール(874)は、空間ドメインにおいて、残差デコーダ(873)によって出力された残差と、予測結果(場合によっては、インター予測モジュール又はイントラ予測モジュールによって出力されたもの)とを結合して復元ブロックを形成するように構成され、当該復元ブロックは、復元ピクチャの一部でもよく、また、復元ビデオの一部でもよい。視覚品質を改善するために、デブッキング動作のような他の適切な動作が実行されてもよい点に留意すべきである。
【0092】
ビデオエンコーダ(403)、(603)及び(703)並びにビデオデコーダ(410)、(510)及び(810)は、いずれかの適切な技術を使用して実装されてもよい点に留意すべきである。一実施形態では、ビデオエンコーダ(403)、(603)及び(703)並びにビデオデコーダ(510)、(610)及び(810)は、1つ以上の集積回路を使用して実装されてもよい。他の実施形態では、ビデオエンコーダ(403)、(603)及び(703)並びにビデオデコーダ(410)、(510)及び(810)は、ソフトウェア命令を実行する1つ以上のプロセッサを使用して実装されてもよい。
【0093】
本開示の態様は、一次元(1D)変換スキップのための符号マップをエントロピーコーディングするためのコンテキスト設計を含む。1D変換スキップ係数の符号値をエントロピーコーディングするためのコンテキスト設計を含む、ビデオデータの効率的な圧縮のために設計された一式のビデオコーディング技術が提供できる。
【0094】
AV1(AOMedia Video 1)で使用されるもののような一次変換の実施形態について、以下に説明する。拡張コーディングブロック分割をサポートするために、複数の変換サイズ(例えば、各次元について4ポイントから64ポイントまでの範囲)及び変換形状(例えば、正方形、高さに対する幅の比が2:1、1:2、4:1又は1:4を有する長方形)が、AV1等において使用されてもよい。
【0095】
2D変換プロセスは、コーディング残差ブロックの各次元について異なる1D変換を含み得るハイブリッド変換カーネルを使用してもよい。一次1D変換は、(a)4ポイント、8ポイント、16ポイント、32ポイント、64ポイントのDCT-2、(b)4ポイント、8ポイント、16ポイントの非対称DST(ADST, asymmetric DST)(例えばDST-4、DST-7)及び対応する反転バージョン(例えば、ADSTの反転バージョン又はFlipADSTが、逆の順序のADSTに適用できる)、及び/又は(c)4ポイント、8ポイント、16ポイント、32ポイントの恒等変換(IDTX, identity transform)を含んでもよい。図9は、本開示の実施形態による一次変換基底関数の例を示す。図9の例における一次変換基底関数は、Nポイントの入力を有するDCT-2及び非対称DST(DST-4及びDST-7)についての基底関数を含む。図9に示す一次変換基底関数は、AV1において使用されてもよい。
【0096】
ハイブリッド変換カーネルの可用性は、変換ブロックサイズ及び予測モードに依存してもよい。図10Aは、変換ブロックサイズ(例えば、第3列に示すサイズ)及び予測モード(例えば、第3列に示すイントラ予測及びインター予測)に基づく様々な変換カーネル(例えば、第1列に示してあり第2列に説明を示す変換タイプ)の可用性の例示的な依存性を示す。予測モード及び変換ブロックサイズに基づく例示的なハイブリッド変換カーネル及び可用性は、AV1において使用されてもよい。図10A参照すると、「→」及び「↓」の記号は、それぞれ水平次元(水平方向とも呼ばれる)及び垂直次元(垂直方向とも呼ばれる)を示す。
【0097】
【数1】
及び「×」の記号は、対応するブロックサイズ及び予測モードについての変換カーネルの可用性を示す。例えば、
【0098】
【数2】
の記号は、変換カーネルが利用可能であることを示し、「×」の記号は、変換カーネルが利用不可能であること示す。
【0099】
一例では、図10Aの第1列に示すように、変換タイプ(1010)はADST_DCTによって示される。図10Aの第2列に示すように、変換タイプ(1010)は、垂直方向のADSTと水平方向のDCTとを含む。図10Aの第3の列によれば、ブロックサイズが16×16(例えば、16×16サンプル、16×16ルマサンプル)以下である場合、変換タイプ(1010)は、イントラ予測及びインター予測に利用可能である。
【0100】
一例では、図10Aの第1列に示すように、変換タイプ(1020)はV_ADSTによって示される。図10Aの第2列に示すように、変換タイプ(1020)は、垂直方向のADSTと水平方向のIDTX(すなわち、単位行列)とを含む。したがって、変換タイプ(1020)(例えば、V_ADST)は垂直方向に実行され、水平方向に実行されない。図10Aの第3の列によれば、変換タイプ(1020)は、ブロックサイズにかかわらずイントラ予測に利用可能でない。ブロックサイズが16×16(例えば、16×16サンプル、16×16ルマサンプル)未満である場合、変換タイプ(1020)は、インター予測に利用可能である。
【0101】
一例では、図10Aはルマ成分に適用可能である。クロマ成分については、変換タイプ(又は変換カーネル)の選択が暗示的に実行されてもよい。一例では、イントラ予測残差については、図10Bに示すように、変換タイプは、イントラ予測モードに従って選択されてもよい。インター予測残差については、変換タイプは、同一位置のルマブロックの変換タイプ選択に従って選択されてもよい。したがって、一例では、クロマ成分の変換タイプは、ビットストリームで伝達されない。
【0102】
ライングラフ変換(LGT, line graph transform)は、例えばAV2(AOMedia Video 2)において一次変換のような変換で使用されてもよい。AV2において、8ビット/10ビット変換コアが使用されてもよい。一例では、LGTは、以下に説明するように、様々なDCT、離散サイン変換(DST, discrete sine transform)を含む。LGTは32ポイント及び64ポイントの一次元(1D)DSTを含んでもよい。
【0103】
グラフは、関心のあるオブジェクトの間のアフィニティ関係をモデル化するために使用できる頂点及びエッジのセットを含む一般的な数学的構造である。一式の重みがエッジに割り当てられ、任意選択で頂点に割り当てられる重み付きグラフは、信号/データのロバストなモデリングのための疎な表現を提供してもよい。LGTは、様々なブロック統計に対するより良い適応を提供することによりコーディング効率を改善できる。分離可能なLGTは、基礎となる行及び列毎のブロックの残差信号の統計をモデル化するためにデータからライングラフを学習することによって設計及び最適化でき、LGTを導出するために関連する一般化グラフラプラシアン(GGL, generalized graph Laplacian)行列が使用されてもよい。
【0104】
図11は、本開示の一実施形態による、自己ループ重み(例えば、vc1、vc2)及びエッジ重みwcによって特徴付けられる、一般的なLGTの一例を示す。重み付きグラフG(W,V)が与えられた場合、GGL行列は以下のように定義されてもよい。
Lc=D-W+V (式1)
ここで、Wは非負のエッジ重みwcを含む隣接行列でもよく、Dは対角次数行列でもよく、Vは自己ループ重みvc1及びvc2を示す対角行列でもよい。図12は、行列Lcの一例を示す。
【0105】
LGTは、以下のようにGGL行列Lcの固有分解によって導出されてもよい。
Lc=UΦUT (式2)
ここで、直交行列Uの列はLGTの基底ベクトルでもよく、Φは対角固有値行列でもよい。
【0106】
様々な例において、特定のDCT及びDST(例えば、DCT-2、DCT-8及びDST-7)は、特定の形式のGGLから導出されたLGTのセットのサブセットである。DCT-2は、vc1を0に設定すること(例えば、vc1=0)によって導出されてもよい。DST-7は、vc1をwcに設定すること(例えば、vc1=wc)によって導出されてもよい。DCT-8は、vc2をwcに設定すること(例えば、vc2=wc)によって導出されてもよい。DST-4は、vc1を2wcに設定すること(例えば、vc1=2wc)によって導出されてもよい。DCT-4は、vc2を2wcに設定すること(例えば、vc2=2wc)によって導出されてもよい。
【0107】
AV2のようないくつかの例では、LGTは行列乗算として実装されてもよい。4ポイント(4p)のLGTコアは、Lcにおいてvc1を2wcに設定することによって導出されてもよく、したがって、4pのLGTコアはDST-4である。8ポイント(8p)のLGTコアは、Lcにおいてvc1を1.5wcに設定することによって導出されてもよい。一例では、vc1をwcになるように設定し、vc2を0になるように設定することによって、16ポイント(16p)のLGTコア、32ポイント(32p)のLGTコア又は64ポイント(64p)のLGTコアのようなLGTコアが導出されてもよく、LGTコアはDST-7になってもよい。
【0108】
本開示の態様によれば、ブロックは変換ブロック(TB, transform block)を示してもよい。一例では、ブロック又はTBは変換係数を含む。ブロック内の行は、ブロック(例えば、TB)内の変換係数の行を示してもよい。ブロック内の列は、ブロック(例えば、TB)内の変換係数の列を示してもよい。
【0109】
変換タイプに追加されるときの「H」又は「V」の文字は、変換タイプがそれぞれ水平方向又は垂直方向のみに適用されることを示してもよい。例えば、V_DCTは、垂直方向のみにDCTを適用する1D変換方式を示してもよく、H_DCTは、水平方向のみにDCTを適用する1D変換方式を示してもよく、V_ADSTは、垂直方向のみにADST又はいずれか適切な非DCT変換を適用する1D変換方式を示してもよく、H_ADSTは、水平方向のみにADST又はいずれか適切な非DCT変換を適用する1D変換方式を示してもよい。V_FLIPADSTは、垂直方向のみにFLIPADSTを適用する1D変換方式を示してもよく、H_FLIPADSTは水平方向のみにFLIPADSTを適用する1D変換方式を示してもよい。V_LGTは、垂直方向のみにLGTを適用する1D変換方式を示してもよく、H_LGTは、水平方向のみにLGTを適用する1D変換方式を示してもよい。V_FLIPLGTは、垂直方向のみにFLIPLGTを適用する1D変換方式を示してもよく、H_FLIPLGTは、水平方向のみにFLIPLGTを適用する1D変換方式を示してもよく、FLIPLGTはLGTの反転バージョンである。さらに、V_KLTは、垂直方向のみにKarhunen-Loeve変換(KLT, Karhunen-Loeve transform)を適用する1D変換方式を示してもよく、H_KLTは、水平方向のみにKLTを適用する1D変換方式を示してもよい。
【0110】
水平方向に変換スキップを有する変換タイプのセットは、変換のセットAと呼ばれてもよい。変換のセットAは、垂直方向の変換を含んでもよい。変換のセットAの中の変換は、V_DCT、V_ADST、V_FLIPADST、V_LGT、V_FLIPLGT、V_KLT等のような所定の変換の1つ又は適切な組み合わせを含んでもよい。一例では、変換のセットAの中の変換は、垂直方向の一次変換を含む。一例では、変換のセットAの中の変換は、垂直方向の一次変換と、垂直方向の二次変換とを含む。一例では、変換タイプのセットAは、垂直方向のDCT、ADST、FLIPADST、LGT、FLIPLGT及びKLTのような所定の変換と、水平方向の変換スキップとのいずれか又は全ての組み合わせを網羅的に包含する。
【0111】
垂直方向に変換スキップを有する変換タイプのセットは、変換のセットBと呼ばれてもよい。変換のセットBは、水平方向の変換を含んでもよい。変換のセットBの中の変換は、H_DCT、H_ADST、H_FLIPADST、H_LGT、H_FLIPLGT、H_KLT等のような所定の変換の1つ又は適切な組み合わせを含んでもよい。一例では、変換のセットBの中の変換は、水平方向の一次変換を含む。一例では、変換のセットBの中の変換は、水平方向の一次変換と、水平方向の二次変換とを含む。一例では、変換タイプのセットBは、水平方向のDCT、ADST、FLIPADST、LGT、FLIPLGT及びKLTのような所定の変換と、垂直方向の変換スキップとのいずれか又は全ての組み合わせを網羅的に包含する。
【0112】
一実施形態では、AV1等において、レベルマップ係数コーディング方式が使用されてもよい。レベルマップ係数コーディング方式は、各2D変換係数を順次処理する関連するコーディング方式とは異なる。レベルマップ係数コーディング方式の一例について以下に説明する。各変換ユニット(例えば、図13AにおけるTB(1301))について、レベルマップ係数コーディングは、最初にスキップ符号をコーディングしてもよく、それに続いて、変換コーディングがスキップされない場合、一次変換カーネルタイプ及びブロック終端(EOB, end-of-block)位置を伝達する。続いて、係数値(すなわち、変換ユニット内の変換係数の値)は、符号値のコーディングと組み合わされた複数レベルマップ方式でコーディングされてもよい。
【0113】
一例では、複数レベルマップは、下位レベル面、中間レベル面及び上位レベル面のような3つのレベル面としてコーディングされる3つのレベルマップを含み、符号値は別々の面としてコーディングされる。下位レベル面、中間レベル面及び上位レベル面は、異なる範囲の係数の大きさに対応してもよい。一例では、下位レベル面は0~2の範囲に対応し、中間レベル面は3~14の範囲に対応し、上位レベル面は15以上の範囲に対応する。3つのレベル面は以下のようにコーディングされてもよい。(a)EOB位置がコーディングされる。(b)下位レベル面及び中間レベル面は、後方走査順序で一緒にコーディングされ、走査順序は、全体の変換ユニットベースで適用されるジグザグ走査を示してもよい。(c)符号面及び上位レベル面は、前方走査順序で一緒にコーディングされる。(d)残り(係数レベル-14)は、指数ゴロム(Exp-Golomb)符号を使用してエントロピーコーディングされる。下位レベル面に適用されるコンテキストモデルは、一次変換方向(例えば、双方向、水平及び垂直)と、変換サイズとに依存してもよく、周波数領域において5つまでの隣接係数がコンテキストを導出するために使用されてもよい。中間レベル面は、同様のコンテキストモデルを使用してもよい。一例では、コンテキスト隣接係数の数は、5から2に低減される。上位レベル面は、コンテキストモデルを使用せずに、指数ゴロム符号によってコーディングされてもよい。
【0114】
図13Aは、本開示の一実施形態による、TB(1301)及び隣接ブロック(例えば、TB(1302)及び(1303))の一例を示す。TB(1301)は、変換係数(例えば、t11-t14、t21-t24、t31-t34及びt41-t44)を含んでもよい。いくつかの例では、変換係数t11は、DC空間周波数を有するDC変換係数であり、TB(1301)内の残りの変換係数は、AC空間周波数を有するAC変換係数である。
【0115】
DC符号(又はDC符号値)、例えば、変換ユニット内のDC係数の符号値(例えば、TB(1301)内のDC変換係数t11)は、コンテキストモデリング手法を使用してコーディングされてもよい。一例では、DC係数が負である場合、DC符号値は「1」であり、DC係数が正である場合、DC符号値は「0」である。変換ユニットの隣接ブロックのDC符号値の加重平均は、コンテキスト情報を導出するために使用されてもよい。一例では、以下の式3に記載するように、上側隣接ブロック(例えば、TB(1302))のDC符号値(例えば、dc_sign(i)でありiは1である)及び左側隣接ブロック(例えば、TB(1303))のDC符号値(例えば、dc_sign(i)でありiは2である)がコンテキスト情報を導出するために使用される。重み付けは、隣接変換ブロックと変換ユニット(例えば、現在のTB)との交差の長さ(又は交差長さ)(例えば、overlap(i,curr_block)でありiは1又は2である)に依存してもよい。第1のブロックと第2のブロックとの交差長さは、第2のブロック内の変換係数と境界をなす第1のブロック内の変換係数の数を示してもよい。例えば、TB(1301)内の4つの変換係数(t11-t14)がTB(1302)内の4つの変換係数(a11-a14)と境界をなすので、TB(1301)とTB(1302)との間の交差長さ(例えば、overlap(1,curr_block))は4である。TB(1301)内の2つの変換係数(t11及びt12)がTB(1303)内の2つの変換係数(112及び122)と境界をなすので、TB(1301)とTB(1303)との間の交差長さ(例えば、overlap(2,curr_block))は2である。
【0116】
導出されたコンテキスト情報は、式4に記載するように、DC符号をコーディングするための3つの異なるコンテキストにアクセスするためのインデックス(例えば、dc_ctx)として使用されてもよい。例えば、加重平均が0である場合、インデックス0に対応するコンテキストが使用され、加重平均が0未満である場合、インデックス1に対応するコンテキストが使用され、加重平均が0よりも大きい場合、インデックス2に対応するコンテキストが使用される。変換ユニット内の他の係数の符号値は、コンテキストモデルを使用せずに直接コーディングされてもよい。
dc_sum=Σi∈neighborsdc_sign(i)*overlap(i,curr_block) (式3)
dc_ctx=0 (dc_sum=0である場合)
=1 (dc_sum<0である場合)
=2 (dc_sum>0である場合) (式4)
TB(1301)内の他の変換係数(例えば、AC変換係数)の符号値は、コンテキストモデルを使用せずに直接コーディングされてもよい。
【0117】
図13Aを参照して上記に説明したように、いくつかの例では、DC符号のコーディングは、現在の変換ブロック内のDC変換係数のDC符号をコーディングするために使用されるコンテキストを導出するために、上側及び左側隣接のDC符号のみを利用する。一例では、DC符号のコーディングは、コンテキスト情報を導出するために、上側及び左側隣接のDC符号のみを利用し、コンテキスト情報は、現在の変換ブロック内のDC変換係数のDC符号をコーディングするためのコンテキストを導出するために使用されてもよい。一方向の変換スキップを含む変換タイプを使用するTBについて、上の行の変換係数(水平変換スキップが使用される場合)又は左の列の係数(垂直変換スキップが使用される場合)のいずれかがDC係数である。したがって、いくつかの例では、最初の変換係数のみの符号をエントロピーコーディングするためにコンテキストモデリングを適用することは、符号値が強い行単位の相関(水平変換スキップの場合)又は列単位の相関(垂直変換スキップの場合)を示すので、準最適になる可能性がある。
【0118】
1D変換スキップは、一次元(例えば、水平次元又は垂直次元)の変換スキップを示してもよく、したがって、1D変換スキップを有する変換(例えば、一次変換、一次変換と二次変換との組み合わせ)は、ブロックの一次元で実行される。1D変換は、ブロックの一次元にのみ適用される変換を示してもよく、変換は1D変換スキップを含む。1D変換は1D水平変換又は1D垂直変換を示してもよい。1D水平変換は、ブロックの水平次元にのみ適用される変換を示してもよく、変換は垂直次元の1D変換スキップを含む。1D垂直変換は、ブロックの垂直次元にのみ適用される変換を示してもよく、変換は水平次元の1D変換スキップを含む。
【0119】
2D変換スキップは、二次元(例えば、水平次元及び垂直次元)の変換スキップを示してもよく、したがって、ブロックに対する変換は存在せず、変換行列は単位行列である。変換スキップが存在しない場合、ブロックに対して2次元で変換が実行されてもよい。
【0120】
本開示の態様によれば、コンテキストは、1D変換を使用して、ブロック(例えば、TB、CB、PB、ルマブロック、クロマブロック、ルマTB、クロマTB等)内の1つ以上の変換係数の1つ以上の符号値をエントロピーコーディングするために使用されてもよい。ブロックは、ルマブロック、クロマブロック等のようないずれか適切なブロックでもよい。使用されるコンテキストは、ブロック内の他の変換係数の符号情報(例えば、符号値)のような、いずれか適切なコンテキストでもよい。一例では、コンテキストは、変換のセットAの中の変換タイプを使用して、ブロック内の1つ以上の変換係数の1つ以上の符号値をエントロピーコーディングするために使用されてもよい。一例では、コンテキストは、変換のセットBの中の変換タイプを使用して、ブロック内の1つ以上の変換係数の1つ以上の符号値をエントロピーコーディングするために使用されてもよい。
【0121】
本開示の態様によれば、ブロック(例えば、TB)のコーディング情報は、コーディングされたビデオビットストリームから復号されてもよい。コーディング情報は、ブロックについての一方向の変換スキップを示してもよい。TB内の現在の変換係数の符号値は、以前の変換係数の以前にコーディング(例えば、符号化又は復号)された符号値に基づいてコーディング(例えば、符号化又は復号)されてもよい。現在の変換係数及び以前の変換係数は、TB内の同じ行及び同じ列のうち1つにあってもよい。同じ行及び同じ列のうち1つは、変換スキップの一方向に沿うものとしてもよい。さらに、TB内の現在の変換係数は、以前の変換係数のコーディング(例えば、符号化又は復号)された符号値に基づいて決定されてもよい。一例では、TB内の現在の変換係数の符号値は、以前の変換係数の以前に復号された符号値と、同じ行及び同じ列のうち1つにおけるそれぞれ1つ以上の変換係数の1つ以上の以前に復号された符号値とに基づいて復号される。
【0122】
一例では、一方向は水平方向である。同じ行及び同じ列のうち1つは、変換スキップの一方向に沿った同じ行である。したがって、変換は、変換のセットAの中の変換タイプのような1D垂直変換である。TB内の現在の変換係数の符号値は、変換スキップの一方向に沿った同じ行における以前の変換係数の以前にコーディング(例えば、符号化又は復号)された符号値に基づいてコーディング(例えば、符号化又は復号)されてもよい。一例では、同じ行は、TB内の行のサブセットのうち1つに制限される。
【0123】
一実施形態では、変換のセットAの中の変換タイプを使用してブロック内の現在の変換係数の符号値をエントロピーコーディングするためのコンテキスト導出プロセスは、同じ行における少なくとも1つの以前の変換係数の少なくとも1つの以前にコーディングされた符号値に基づく。一般的に、使用されるコンテキストは、同じ行における他の変換係数(例えば、少なくとも1つの以前の変換係数)の符号情報(例えば、少なくとも1つの以前にコーディングされた符号値)を含んでもよい。
【0124】
図13Bは、垂直次元又は水平次元における1D変換スキップで変換されるTB(1301)を示す。したがって、最初の変換係数(例えば、t11)に加えて、第1列(1321)又は第1行(1311)における残りの変換係数は、DC変換係数でもよい。
【0125】
図13Bを参照すると、TB(1301)は、変換のセットAの中の変換タイプ、例えば、水平次元における1D変換スキップを有する1D垂直変換で変換される。第1行(1311)は、DC変換係数t11-t14を含む。一例では、第1行(1311)の1つの変換係数(例えば、t13)の符号値は、第1行(1311)の1つ以上の以前にコーディングされた変換係数(例えば、t11及び/又はt12)に基づくコンテキスト導出プロセスを使用してエントロピーコーディングされる。上記の説明は、行(1311)における他の変換係数をコーディングするために適切に適合されてもよい。
【0126】
行(1312)-(1314)は、AC空間周波数を有するAC変換係数を含む。上記の説明は、行(1321)-(1324)のうち1つ以上に適切に適合されてもよい。一例では、第2行(1312)の1つの変換係数(例えば、t24)の符号値は、第2行(1312)における1つ以上の以前にコーディングされた変換係数(例えば、t21、t22及び/又はt24)に基づくコンテキスト導出プロセスを使用してエントロピーコーディングされる。一例では、デフォルトのコンテキストが、行(例えば、行(1312))における最初の変換係数(例えば、t21)をコーディングするために使用される。或いは、エントロピーコーディング符号値のためのコンテキストの使用は、変換のセットAの中の変換タイプを使用するブロック内の行のサブセット(例えば、行(1311)、行(1311)-(1312)等)にのみ有効である。一例では、符号値をエントロピーコーディングするためのコンテキストの使用は行(1311)-(1312)にのみ有効であり、行(1313)-(1314)についての符号値は、コンテキストモデルを使用せずに直接コーディングされてもよい。
【0127】
一例では、一方向は垂直方向である。同じ行及び同じ列のうち1つは、変換スキップの一方向に沿った同じ列である。したがって、変換は、変換のセットBの中の変換タイプのような1D水平変換である。TB内の現在の変換係数の符号値は、変換スキップの一方向に沿った同じ列における以前の変換係数の以前にコーディング(例えば、符号化又は復号)された符号値に基づいてコーディング(例えば、符号化又は復号)されてもよい。一例では、同じ列は、TB内の列のサブセットのうち1つに制限される。
【0128】
一実施形態では、変換のセットBの中の変換タイプを使用してブロック内の現在の変換係数の符号値をエントロピーコーディングするためのコンテキスト導出プロセスは、同じ列における少なくとも1つの以前の変換係数の少なくとも1つの以前にコーディングされた符号値に基づく。一般的に、使用されるコンテキストは、同じ列における他の変換係数(例えば、少なくとも1つの以前の変換係数)の符号情報(例えば、少なくとも1つの以前にコーディングされた符号値)を含んでもよい。
【0129】
図13Bに戻って参照すると、TB(1301)は、変換のセットBの中の変換タイプ、例えば、1D垂直変換スキップを有する1D水平変換で変換される。第1列(1321)は、DC変換係数t11、t21、t31及びt41を含む。一例では、第1列(1321)の1つの変換係数(例えば、t31)の符号値は、第1列(1321)の1つ以上の以前にコーディングされた変換係数(例えば、t11及び/又はt21)に基づくコンテキスト導出プロセスを使用してエントロピーコーディングされる。上記の説明は、列(1321)における他の変換係数をコーディングするために適切に適合されてもよい。
【0130】
列(1322)-(1324)は、AC空間周波数を有するAC変換係数を含む。上記の説明は、列(1322)-(1324)のうち1つ以上に適切に適合されてもよい。一例では、第2列(1322)の1つの変換係数(例えば、t42)の符号値は、第2列(1322)における1つ以上の以前にコーディングされた変換係数(例えば、t12、t22及び/又はt32)に基づくコンテキスト導出プロセスを使用してエントロピーコーディングされる。一例では、デフォルトのコンテキストが、列(例えば、列(1322))における最初の変換係数(例えば、t12)をコーディングするために使用される。或いは、エントロピーコーディング符号値のためのコンテキストの使用は、変換のセットBの中の変換タイプを使用するブロック内の列のサブセット(例えば、列(1321)、列(1321)-(1322)等)にのみ有効である。一例では、符号値をエントロピーコーディングするためのコンテキストの使用は列(1321)-(1322)にのみ有効であり、列(1323)-(1324)についての符号値は、コンテキストモデルを使用せずに直接コーディングされてもよい。
【0131】
一実施形態では、TB(例えば、図13におけるTB(1301))内の現在の変換係数の符号値は、以前の変換係数(例えば、t12)の以前に復号された符号値と、TBの上側隣接ブロック内のDC変換係数の以前に復号された符号値と、TBの左側隣接ブロック内のDC変換係数の以前に復号された符号値とに基づいて復号されてもよい。TBの上側隣接ブロック内のDC変換係数及びTBの左側隣接ブロック内のDC変換係数は、DC空間周波数を有する。
【0132】
一例では、TB内の現在の変換係数の符号値は、以前の変換係数の以前に復号された符号値と、TBの上側隣接ブロック内のDC変換係数の以前に復号された符号値及びTBの左側隣接ブロック内のDC変換係数の以前に復号された符号値の加重平均(例えば、式3に示す)とに基づいて復号されてもよい。重み付けは、それぞれTB内の変換係数と境界をなす上側隣接ブロック及び左側隣接ブロック内の変換係数の数に基づいてもよい。TB内の以前の変換係数の位置は、TB内の現在の変換係数の位置に隣接してもよい。TB内の以前の変換係数の位置は、走査方向に沿ったTB内の現在の変換係数の位置に隣接してもよい。走査方向は、TB内の変換係数の符号値をコーディングのための走査順序に基づいてもよい。
【0133】
式(3)-(4)に記載されるコンテキスト導出プロセスのようなコンテキスト導出プロセスは、変換のセットA及びセットBのうち1つにおける変換タイプを使用して、ブロック内の変換係数の符号値をエントロピーコーディングするために改良されてもよい。一実施形態では、ブロック内の変換係数の符号値をエントロピーコーディングするためのコンテキスト導出プロセスは、1つ以上の隣接ブロック(例えば、上側隣接ブロック及び左側隣接ブロックのDC符号値の加重平均)だけでなく、ブロック内の少なくとも1つの隣接係数(利用可能である場合)の少なくとも1つの以前にコーディングされた符号値にも基づく。一般的に、ブロック内の変換係数の符号値をエントロピーコーディングするために使用されるコンテキストは、他のブロック(例えば、上側隣接ブロック、左側隣接ブロック等)の符号情報、ブロック内の他の変換係数の符号情報等を含んでもよい。一例では、少なくとも1つの隣接係数は、ブロックの符号値をコーディングするために使用される走査順序に依存する。少なくとも1つの隣接係数は、走査順序に従って変換係数の前にコーディングされたブロック内の変換係数でもよい。
【0134】
図13Bを参照すると、TB(1301)は、垂直次元又は水平次元における1D変換スキップによって変換される。したがって、最初の変換係数t11に加えて、第1列(1321)又は第1行(1311)における残りの変換係数は、DC変換係数でもよい。TB(1301)内のDC変換係数のうち1つの符号値をエントロピーコーディングするためのコンテキスト導出プロセスは、TB(1302)-(1303)のような他のTBと、TB(1301)内の少なくとも1つの隣接係数の少なくとも1つの以前にコーディングされた符号値とに基づいてもよい。一例では、少なくとも1つの隣接係数は、DC変換係数のうち1つと同じ行又は列にある。一例では、少なくとも1つの隣接係数のうち1つは、DC変換係数のうち1つとは異なる行及び異なる列にある。
【0135】
一例では、TB(1301)は変換のセットAの中の変換タイプを使用し、行(1311)はDC変換係数t11-t14を含む。DC変換係数t11-t14のうち1つ(例えばt13)の符号値は、それぞれTB(1302)-(1303)のDC符号値と、TB(1301)内の隣接係数t12の以前にコーディングされた符号値とに基づいてもよい。
【0136】
TB(1301)内のAC変換係数のうち1つ(例えば、t23)の符号値は、それぞれTB(1302)-(1303)のDC符号値と、TB(1301)内の隣接係数(例えば、t13、t22等)の以前にコーディングされた符号値に基づいてもよい。
【0137】
上記の説明は、隣接ブロックのうち1つ以上が1D変換スキップを使用する場合に適切に適合されてもよい。一実施形態では、隣接ブロックのうち1つ(例えば、TB(1303))は、1D水平スキップを使用し、したがって、第1行は、DC変換係数l11-112を含む。ブロック内の変換係数の符号値をエントロピーコーディングするためのコンテキスト導出プロセスは、l11-l12の1つ以上のDC符号値と、TB(1302)のDC符号値と、TB(1301)内の少なくとも1つの隣接係数(利用可能である場合)の少なくとも1つの以前にコーディングされた符号値とに基づいてもよい。
【0138】
一例では、TBは水平方向に沿って1D変換スキップを使用し、同じ行における変換係数の符号値が同じであるか否かを示すフラグが復号されてもよい。一例では、同じ行における変換係数は、現在の変換係数と、以前の変換係数とを含み、上記のように、TB内の現在の変換係数の符号値は、以前の変換係数の以前にコーディング(例えば、符号化又は復号)された符号値に基づいてコーディング(例えば、符号化又は復号)されてもよい。
【0139】
一実施形態では、フラグのような符号制御情報は、ブロックに使用される変換タイプが変換のセットAの1つである場合、行(例えば、図13Bにおけるブロック(例えば、TB(1301))の行(1311))における変換係数(例えば、t11-t14)の符号(例えば、全ての符号)が同じであるか否かを示す。一例では、符号制御情報は、行における非ゼロの変換係数の数が閾値よりも大きい場合にのみ使用される。一例では、符号制御情報は、ブロックのブロック寸法(例えば、幅)が閾値以上である場合にのみ使用される。一例では、ブロック内の各行は、別々の符号制御情報を使用する。例えば、ブロックの各行における変換係数の符号(例えば、全ての符号)が同じであるか否かを示すために、別々のフラグが使用される。
【0140】
一例では、符号制御情報は、ブロック内の行のサブセットのみに使用され(例えば、伝達され)、ブロックの各行における変換係数の符号(例えば、全ての符号)が同じであるか否かを示すために、符号制御情報のそれぞれが使用される。
【0141】
一例では、符号制御情報は、1つの行内のN個の連続した変換係数毎に使用される(例えば、伝達される)。他の例では、符号制御情報は、1つの行内のN個の連続した非ゼロの変換係数毎に使用される(例えば、伝達される)。Nの例示的な値は、4、8、16を含んでもよいが、これらに限定されない。
【0142】
一例では、フラグが真である場合のように、行における全ての符号が同じであることを符号制御情報が示す場合、更なる符号情報は、その行についてコーディングされない。
【0143】
一例では、フラグが真である場合のように、行における全ての符号が同じであることを符号制御情報が示す場合、他のフラグのような更なる符号制御情報が、その行の符号値を示すために伝達される。
【0144】
一例では、フラグが偽である場合のように、行における全ての符号が同じではないことを符号制御情報が示す場合、符号情報(例えば、それぞれの符号値)は、行における変換係数毎にコーディングされる。
【0145】
一例では、フラグが偽である場合のように、行における全ての符号が同じではないことを符号制御情報が示し、行における(走査順序で)最後の非ゼロの変換係数を除く全ての非ゼロの変換係数についての符号情報が同じであり、且つ、伝達される場合、最後の非ゼロの変換係数についての符号情報は伝達されず、行における先行する非ゼロの変換係数の符号値の逆値として導出される。図13Bを参照すると、一例では、行(1312)におけるt21-t24は、+4、+1、0及び-2である。行(1312)における最後のもの(t24)を除く全ての非ゼロの変換係数の符号値は同じであり(正であり)、伝達される。フラグは偽であり、行(1312)における非ゼロの変換係数の全ての符号値が同じでないことを示す。したがって、最後の非ゼロの変換係数(t24)の符号情報は、負(例えば、行における先行する非ゼロの変換係数(t21及びt22)の符号値の逆値)として導出されてもよい。
【0146】
一実施形態では、フラグのような符号制御情報は、ブロックに使用される変換タイプが変換のセットBの1つである場合、列(例えば、図13Bにおけるブロック(例えば、TB(1301))の列(1321))における変換係数(例えば、t11、t21、t31及びt41)の符号(例えば、全ての符号)が同じであるか否かを示す。一例では、符号制御情報は、列における非ゼロの変換係数の数が閾値よりも大きい場合にのみ使用される。一例では、符号制御情報は、ブロックのブロック寸法(例えば、高さ)が閾値以上である場合にのみ使用される。一例では、ブロック内の各列は、別々の符号制御情報を使用する。例えば、ブロックの各列における変換係数の符号(例えば、全ての符号)が同じであるか否かを示すために、別々のフラグが使用される。
【0147】
一例では、符号制御情報は、ブロック内の列のサブセットのみに使用され(例えば、伝達され)、ブロックの各列における変換係数の符号(例えば、全ての符号)が同じであるか否かを示すために、符号制御情報のそれぞれが使用される。
【0148】
一例では、符号制御情報は、1つの列内のM個の連続した変換係数毎に使用される(例えば、伝達される)。他の例では、符号制御情報は、1つの列内のM個の連続した非ゼロの変換係数毎に使用される(例えば、伝達される)。Mの例示的な値は、4、8、16を含んでもよいが、これらに限定されない。
【0149】
一例では、フラグが真である場合のように、列における全ての符号が同じであることを符号制御情報が示す場合、更なる符号情報は、その列についてコーディングされない。
【0150】
一例では、フラグが真である場合のように、列における全ての符号が同じであることを符号制御情報が示す場合、他のフラグのような更なる符号制御情報が、その列の符号値を示すために伝達される。
【0151】
一例では、フラグが偽である場合のように、列における全ての符号が同じではないことを符号制御情報が示す場合、符号情報(例えば、それぞれの符号値)は、列における変換係数毎にコーディングされる。
【0152】
一例では、フラグが偽である場合のように、列における全ての符号が同じではないことを符号制御情報が示し、列における(走査順序で)最後の非ゼロの変換係数を除く全ての非ゼロの変換係数についての符号情報が同じであり、且つ、伝達される場合、最後の非ゼロの変換係数についての符号情報は伝達されず、列における先行する非ゼロの変換係数の符号値の逆値として導出される。図13Bを参照すると、一例では、列(1322)におけるt12、t22、t32及びt42は、+4、+1、0及び-2である。列(1322)における最後のもの(t42)を除く全ての非ゼロの変換係数の符号値は同じであり(正であり)、伝達される。フラグは偽であり、列(1322)における非ゼロの変換係数の全ての符号値が同じでないことを示す。したがって、最後の非ゼロの変換係数(t42)の符号情報は、負(例えば、列における先行する非ゼロの変換係数(t12及びt22)の符号値の逆値)として導出されてもよい。
【0153】
本開示の態様によれば、変換係数の符号値をエントロピーコーディングために使用されるコンテキストは、一次変換タイプ及び/又は二次変換カーネル(又はタイプ)に依存してもよい。一例では、カレントブロック(例えば、TB)の符号値をエントロピーコーディングするために使用されるコンテキストは、1D IDTXが使用されるか2D IDTXが使用されるかに依存する。例えば、カレントブロックについての変換は、1D IDTXが使用される場合に1D変換であり、コンテキスト又はコンテキストモデリングは、上記のように、カレントブロック内の複数の変換係数の符号値をエントロピーコーディングするために使用されてもよい。例えば、2D IDTXが使用される場合、カレントブロックに変換は適用されない。いくつかの例では、コンテキストは、カレントブロック内の複数の変換係数の符号値をエントロピーコーディングするために使用されてもよい。
【0154】
一例では、カレントブロックの符号値をエントロピーコーディングするために使用されるコンテキストは、二次変換がカレントブロックに適用されるか否かに依存する。
【0155】
図14は、本開示の一実施形態によるプロセス(1400)を概略的に示すフローチャートを示す。プロセス(1400)は、ブロック(例えば、TB)の復元において使用されてもよい。様々な実施形態では、プロセス(1400)は、端末デバイス(310)、(320)、(330)及び(340)内の処理回路、ビデオエンコーダ(403)の機能を実行する処理回路、ビデオデコーダ(410)の機能を実行する処理回路、ビデオデコーダ(510)の機能を実行する処理回路、ビデオエンコーダ(603)の機能を実行する処理回路等のような処理回路によって実行される。いくつかの実施形態では、プロセス(1400)は、ソフトウェア命令で実装され、したがって、処理回路がソフトウェア命令を実行すると、処理回路は、プロセス(1400)を実行する。プロセスは(S1401)において始まり、(S1410)に進む。
【0156】
コーディング情報は、ブロックについて一方向(例えば、水平方向又は垂直方向)の変換スキップを示してもよい。
【0157】
(S1420)において、ブロック内の現在の変換係数の符号値は、以前の変換係数の以前に復号された符号値に基づいて復号されてもよい。現在の変換係数及び以前の変換係数は、ブロック内の同じ行及び同じ列のうち1つにあってもよい。同じ行及び同じ列のうち1つは、変換スキップの一方向に沿うものとしてもよい。
【0158】
一例では、一方向が水平方向である場合、同じ行及び同じ列のうち1つは、変換スキップの一方向に沿った同じ行である。ブロック内の現在の変換係数の符号値は、変換スキップの一方向に沿った同じ行における以前の変換係数の以前に復号された符号値に基づいて復号されてもよい。一例では、同じ行は、ブロック内の行のサブセットのうち1つに制限される。
【0159】
一例では、一方向が垂直方向である場合、同じ行及び同じ列のうち1つは、変換スキップの一方向に沿った同じ列である。ブロック内の現在の変換係数の符号値は、変換スキップの一方向に沿った同じ列における以前の変換係数の以前に復号された符号値に基づいて復号されてもよい。一例では、同じ列は、ブロック内の列のサブセットのうち1つに制限される。
【0160】
(S1430)において、ブロック内の現在の変換係数は、現在の変換係数の復号された符号値に基づいて決定されてもよい。プロセス(1400)は(S1499)に進み、終了する。
【0161】
プロセス(1400)は、適切に適合されてもよい。プロセス(1400)におけるステップは、変更及び/又は省略されてもよい。更なるステップが追加されてもよい。いずれか適切な実施順序が使用されてもよい。
【0162】
一例では、同じ行における変換係数の符号値が同じであるか否かを示すフラグ又は他の符号制御情報が復号される。一例では、同じ行における変換係数は、現在の変換係数及び以前の変換係数を含む。
【0163】
一例では、同じ列における変換係数の符号値が同じであるか否かを示すフラグ又は他の符号制御情報が復号される。一例では、同じ列における変換係数は、現在の変換係数及び以前の変換係数を含む。
【0164】
一例では、TB内の現在の変換係数の符号値は、以前の変換係数の以前に復号された符号値と、他のブロック(例えば、隣接ブロック)内のDC変換係数の少なくとも1つの以前に復号された符号値とに基づいて復号される。例えば、TB内の現在の変換係数の符号値は、以前の変換係数の以前に復号された符号値と、TBの上側隣接ブロック内のDC変換係数の以前に復号された符号値と、TBの左側隣接ブロック内のDC変換係数の以前に復号された符号値とに基づいて復号される。TBの上側隣接ブロック内のDC変換係数及びTBの左側隣接ブロック内のDC変換係数は、DC空間周波数を有してもよい。
【0165】
本開示の実施形態は、ルマブロック及び/又はクロマブロックのようないずれか適切なブロックに適用されてもよい。本開示の実施形態は、別々に使用されてもよく或いはいずれかの順序で組み合わされてもよい。さらに、方法(又は実施形態)、エンコーダ及びデコーダのそれぞれは、処理回路(例えば、1つ以上のプロセッサ又は1つ以上の集積回路)によって実装されてもよい。一例では、1つ以上のプロセッサは、非一時的なコンピュータ読み取り可能媒体に記憶されたプログラムを実行する。
【0166】
上記の技術は、コンピュータ読み取り可能命令を使用してコンピュータソフトウェアとして実装され、1つ以上のコンピュータ読み取り可能媒体に物理的に記憶されてもよい。例えば、図15は、開示の対象物の特定の実施形態を実装するのに適したコンピュータシステム(1500)を示す。
【0167】
コンピュータソフトウェアは、いずれかの適切な機械コード又はコンピュータ言語を使用して符号化されてもよく、当該機械コード又はコンピュータ言語は、命令を含むコードを生成するために、アセンブリ、コンパイル、リンク又は類似のメカニズムを受けてもよく、当該命令は、1つ以上のコンピュータ中央処理装置(CPU, central processing unit)、グラフィックス処理ユニット(GPU, Graphics Processing Unit)等によって、直接的に或いはインタープリタ、マイクロコード実行等を通じて実行されてもよい。
【0168】
命令は、例えば、パーソナルコンピュータ、タブレットコンピュータ、サーバ、スマートフォン、ゲームデバイス、モノのインターネットのデバイス等を含む様々なタイプのコンピュータ又はその構成要素上で実行されてもよい。
【0169】
コンピュータシステム(1500)について図15に示される構成要素は、本質的に例示的なものであり、本開示の実施形態を実装するコンピュータソフトウェアの使用範囲又は機能に関する如何なる限定も示唆することを意図するものではない。また、構成要素の構成も、コンピュータシステム(1500)の例示的な実施形態に示される構成要素のいずれか1つ又は組み合わせに関する如何なる依存性又は要件も有するものとして解釈されるべきではない。
【0170】
コンピュータシステム(1500)は、特定のヒューマンインタフェース入力デバイスを含んでもよい。このようなヒューマンインタフェース入力デバイスは、例えば、触覚入力(キーストローク、スワイプ、データグローブの動き等)、オーディオ入力(音声、拍手等)、視覚入力(ジェスチャ等)、嗅覚入力(図示せず)を通じて、1人以上の人間のユーザによる入力に応答してもよい。また、ヒューマンインタフェースデバイスは、オーディオ(例えば、会話、音楽、周辺音)、画像(スキャンされた画像、静止画カメラから取得された写真画像等)、ビデオ(2次元ビデオ、立体ピクチャを含む3次元ビデオ等)のような、人間による意識的入力に必ずしも直接関連しない特定のメディアをキャプチャするために使用されてもよい。
【0171】
入力ヒューマンインタフェースデバイスは、キーボード(1501)、マウス(1502)、トラックパッド(1503)、タッチ画面(1510)、データグローブ(図示せず)、ジョイスティック(1505)、マイクロフォン(1506)、スキャナ(1507)、カメラ(1508)のうち1つ以上を含んでもよい。
【0172】
また、コンピュータシステム(1500)は、特定のヒューマンインタフェース出力デバイスを含んでもよい。このようなヒューマンインタフェース出力デバイスは、例えば、触覚出力、音、光及び嗅覚/味覚を通じて、1人以上の人間のユーザの感覚を刺激してもよい。このようなヒューマンインタフェース出力デバイスは、触覚出力デバイス(例えば、タッチ画面(1510)、データグローブ(図示せず)又はジョイスティック(1505)による触覚フィードバック、ただし、入力デバイスとして機能しない触覚フィードバックデバイスが存在してもよい)と、オーディオ出力デバイス(スピーカ(1509)、ヘッドフォン(図示せず)等)と、視覚出力デバイス(それぞれがタッチ画面入力機能を有しても有さなくてもよく、それぞれが触覚フィードバック機能を有しても有さなくてもよく、いくつかが2次元視覚出力又は立体出力のような手段を通じた3次元以上の出力を出力可能でもよいCRT画面、LCD画面、プラズマ画面、OLED画面を含む画面(1510)、仮想現実メガネ(図示せず)、ホログラフィックディスプレイ及びスモークタンク(図示せず))と、プリンタ(図示せず)とを含んでもよい。
【0173】
また、コンピュータシステム(1500)は、CD/DVD又は同様の媒体(1521)を有するCD/DVD ROM/RW(1520)を含む光媒体のような人間がアクセス可能な記憶デバイス及び関連する媒体、サムドライブ(1522)、取り外し可能ハードドライブ又はソリッドステートドライブ(1523)、テープ及びフロッピーディスク(図示せず)のようなレガシー磁気媒体、セキュリティドングル(図示せず)のような特殊なROM/ASIC/PLDに基づくデバイス等を含んでもよい。
【0174】
また、当業者は、ここに開示の対象物に関連して使用される用語「コンピュータ読み取り可能媒体」が伝送媒体、搬送波又は他の非一時的な信号を含まないことを理解すべきである。
【0175】
また、コンピュータシステム(1500)は、1つ以上の通信ネットワーク(1555)へのインタフェース(1554)を含んでもよい。ネットワークは、例えば、無線、有線、光でもよい。ネットワークは、ローカル、広域、メトロポリタン、車両及び産業、リアルタイム、遅延耐性等でもよい。ネットワークの例は、イーサネット、無線LAN、セルラネットワーク(GSM、3G、4G、5G、LTE等を含む)、TV有線又は無線広域デジタルネットワーク(ケーブルTV、衛星TV、及び地上放送TVを含む)、車両及び産業(CANBusを含む)等を含む。特定のネットワークは、一般的に、特定の汎用データポート又は周辺バス(1549)に取り付けられる外部ネットワークインタフェースアダプタ(例えば、コンピュータシステム(1500)のUSBポート等)を必要とし、他のネットワークインタフェースアダプタは、一般的に、以下に説明するシステムバス(例えば、PCコンピュータシステムへのイーサネットインタフェース又はスマートフォンコンピュータシステムへのセルラネットワーク)に取り付けられることによって、コンピュータシステム(1500)のコアに統合される。これらのネットワークのいずれかを使用して、コンピュータシステム(1500)は、他のエンティティと通信することができる。このような通信は、一方向の受信のみ(例えば、放送TV)、一方向の送信のみ(例えば、特定のCANbusデバイスへのCANbus)でもよく、或いは、例えば、ローカル又は広域デジタルネットワークを使用する他のコンピュータシステムへの双方向でもよい。特定のプロトコル及びプロトコルスタックは、上記のようなネットワーク及びネットワークインタフェースのそれぞれにおいて使用されてもよい。
【0176】
上記のヒューマンインタフェースデバイス、人間がアクセス可能な記憶デバイス及びネットワークインタフェースは、コンピュータシステム(1500)のコア(1540)に取り付けられてもよい。
【0177】
コア(1540)は、1つ以上の中央処理装置(CPU)(1541)、グラフィックス処理ユニット(GPU)(1542)、フィールドプログラマブルゲートアレイ(FPGA, Field Programmable Gate Area)(1543)の形式の特殊なプログラム可能処理ユニット、特定のタスク用のハードウェアアクセラレータ(1544)、グラフィックスアダプタ(1550)等を含んでもよい。これらのデバイスは、読み取り専用メモリ(ROM)(1545)、ランダムアクセスメモリ(1546)、内部大容量記憶装置(内部のユーザアクセス不可能なハードドライブ、SSD等)(1547)と共に、システムバス(1548)を通じて接続されてもよい。いくつかのコンピュータシステムでは、システムバス(1548)は、更なるCPU、GPU等による拡張を可能にするために、1つ以上の物理プラグの形式でアクセス可能でもよい。周辺デバイスは、コアのシステムバス(1548)に直接取り付けられてもよく、或いは、周辺バス(1549)を通じて取り付けられてもよい。一例では、画面(1510)はグラフィックスアダプタ(1550)に取り付けられてもよい。周辺バスのアーキテクチャは、PCI、USB等を含む。
【0178】
CPU(1541)、GPU(1542)、FPGA(1543)及びアクセラレータ(1544)は特定の命令を実行してもよく、当該特定の命令は、組み合わせによって上記のコンピュータコードを構成してもよい。当該コンピュータコードは、ROM(1545)又はRAM(1546)に記憶されてもよい。また、一時的なデータは、RAM(1546)に記憶されてもよいが、永続的なデータは、例えば、内部大容量記憶装置(1547)に記憶されてもよい。1つ以上のCPU(1541)、GPU(1542)、大容量記憶装置(1547)、ROM(1545)、RAM(1546)等と密接に関連してもよいキャッシュメモリを使用することによって、メモリデバイスのいずれかへの高速記憶及び検索が可能になってもよい。
【0179】
コンピュータ読み取り可能媒体は、様々なコンピュータに実装された動作を実行するためのコンピュータコードを有してもよい。媒体及びコンピュータコードは、本開示の目的のために特に設計及び構築されたものでよく、或いは、コンピュータソフトウェア分野における当業者に周知で入手可能なようなものでもよい。
【0180】
限定ではなく一例として、アーキテクチャ(1500)、具体的には、コア(1540)を有するコンピュータシステムは、1つ以上の有形のコンピュータ読み取り可能媒体に具現されたソフトウェアを実行するプロセッサ(CPU、GPU、FPGA、アクセラレータ等を含む)の結果として機能を提供できる。このようなコンピュータ読み取り可能媒体は、コア内部の大容量記憶装置(1547)又はROM(1545)のような非一時的な性質のコア(1540)の特定の記憶装置と同様に、上記のようなユーザがアクセス可能な大容量記憶装置に関連する媒体でもよい。本開示の様々な実施形態を実装するソフトウェアは、このようなデバイスに記憶されてコア(1540)によって実行されてもよい。コンピュータ読み取り可能媒体は、特定のニーズに従って、1つ以上のメモリデバイス又はチップを含んでもよい。ソフトウェアは、コア(1540)、具体的には、その中のプロセッサ(CPU、GPU、FPGA等を含む)に、RAM(1546)に記憶されたデータ構造を定義し、ソフトウェアによって定義された処理に従ってこのようなデータ構造を修正することを含む、本明細書に記載の特定の処理又は特定の処理の特定の部分を実行させてもよい。さらに或いは代替として、コンピュータシステムは、回路(例えば、アクセラレータ(1544))内に配線されたロジック又は他の方法で具現されたロジックの結果として、機能を提供してもよく、当該回路は、本明細書に記載の特定の処理又は特定の処理の特定の部分を実行するために、ソフトウェアの代わりに或いはソフトウェアと共に動作してもよい。ソフトウェアへの言及は、ロジックを含み、必要に応じて、その逆も可能である。コンピュータ読み取り可能媒体への言及は、必要に応じて、実行するためのソフトウェアを記憶する回路(集積回路(IC)等)、実行するためのロジックを具現する回路又はこれらの双方を含んでもよい。本開示は、ハードウェア及びソフトウェアのいずれかの適切な組み合わせを含む。
【0181】
[付録A:略語]
JEM: joint exploration model
VVC: versatile video coding
BMS: benchmark set
MV: Motion Vector
HEVC: High Efficiency Video Coding
SEI: Supplementary Enhancement Information
VUI: Video Usability Information
GOP: Group of Pictures
TU: Transform Unit
PU: Prediction Unit
CTU: Coding Tree Unit
CTB: Coding Tree Block
PB: Prediction Block
HRD: Hypothetical Reference Decoder
SNR: Signal Noise Ratio
CPU: Central Processing Unit
GPU: Graphics Processing Unit
CRT: Cathode Ray Tube
LCD: Liquid-Crystal Display
OLED: Organic Light-Emitting Diode
CD: Compact Disc
DVD: Digital Video Disc
ROM: Read-Only Memory
RAM: Random Access Memory
ASIC: Application-Specific Integrated Circuit
PLD: Programmable Logic Device
LAN: Local Area Network
GSM: Global System for Mobile communications
LTE: Long-Term Evolution
CANBus: Controller Area Network Bus
USB: Universal Serial Bus
PCI: Peripheral Component Interconnect
FPGA: Field Programmable Gate Areas
SSD: solid-state drive
IC: Integrated Circuit
CU: Coding Unit
本開示は、いくつかの例示的な実施形態を記載しているが、本開示の範囲内に入る変更、置換及び様々な代替の等価物が存在する。したがって、当業者は、本明細書に明示的に図示又は記載されていないが、本開示の原理を具現し、したがって、本開示の真意及び範囲内にある多数のシステム及び方法を考案することができることが認識される。
図1A
図1B
図2
図3
図4
図5
図6
図7
図8
図9
図10A
図10B
図11
図12
図13A
図13B
図14
図15
【外国語明細書】