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

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

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

特開2024-19734ビデオコーディングのための方法および装置
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024019734
(43)【公開日】2024-02-09
(54)【発明の名称】ビデオコーディングのための方法および装置
(51)【国際特許分類】
   H04N 19/593 20140101AFI20240202BHJP
   H04N 19/70 20140101ALI20240202BHJP
【FI】
H04N19/593
H04N19/70
【審査請求】未請求
【請求項の数】1
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2024000299
(22)【出願日】2024-01-04
(62)【分割の表示】P 2022537784の分割
【原出願日】2021-06-29
(31)【優先権主張番号】63/082,806
(32)【優先日】2020-09-24
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】17/360,803
(32)【優先日】2021-06-28
(33)【優先権主張国・地域又は機関】US
(71)【出願人】
【識別番号】520353802
【氏名又は名称】テンセント・アメリカ・エルエルシー
(74)【代理人】
【識別番号】100110364
【弁理士】
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100150197
【弁理士】
【氏名又は名称】松尾 直樹
(72)【発明者】
【氏名】シン・ジャオ
(72)【発明者】
【氏名】リャン・ジャオ
(72)【発明者】
【氏名】シャン・リュウ
(57)【要約】
【課題】ビデオコーディングのための方法および装置を提供する。
【解決手段】本開示の態様は、ビデオエンコーディング/デコーディングのための方法、装置および非一時的コンピュータ可読記憶媒体を含む。装置は、コーディングされたビデオシーケンスの一部である現在ピクチャ内の現在ブロックの予測情報をデコードする処理回路を備える。予測情報は、現在ブロックについての複数のイントラ予測方向のうちの1つを示す。処理回路は、予測情報に示された複数のイントラ予測方向のうちの1つに基づいて、複数の参照ラインのサブセットを決定する。処理回路は、複数の参照ラインの決定されたサブセットに基づいて、現在ブロックのイントラ予測を実行する。処理回路は、現在ブロックのイントラ予測に基づいて、現在ブロックを再構成する。
【選択図】図20
【特許請求の範囲】
【請求項1】
デコーダにおけるビデオデコードの方法であって、
コーディングされたビデオシーケンスの一部である現在ピクチャ内の現在ブロックの予測情報をデコードするステップであって、前記予測情報は前記現在ブロックについての複数のイントラ予測方向のうちの1つを示す、ステップと、
前記予測情報に示される前記複数のイントラ予測方向のうちの前記1つに基づいて、複数の参照ラインのサブセットを決定するステップと、
前記複数の参照ラインの前記決定されたサブセットに基づいて、前記現在ブロックのイントラ予測を実行するステップと、
前記現在ブロックの前記イントラ予測に基づいて、前記現在ブロックを再構成するステップとを含む、方法。
【請求項2】
前記複数の参照ラインの前記決定されたサブセット内の前記参照ラインの数は、1よりも大きい、請求項1に記載の方法。
【請求項3】
前記複数の参照ラインのうちの第1の参照ラインに関連付けられた前記イントラ予測方向は、前記複数の参照ラインのうちの第2の参照ラインに関連付けられた前記イントラ予測方向とは異なる、請求項1に記載の方法。
【請求項4】
前記複数のイントラ予測方向は、前記複数の参照ラインのうちの第1の参照ラインに関連付けられ、前記複数のイントラ予測方向のサブセットは、前記複数の参照ラインのうちの第2の参照ラインに関連付けられる、請求項1に記載の方法。
【請求項5】
決定する前記ステップは、前記現在ブロックの各サンプルについて、前記イントラ予測方向のうちの前記1つとそれぞれの前記サンプルの位置とに基づいて、前記複数の参照ラインの前記サブセットのうちの1つを決定するステップを含む、請求項1に記載の方法。
【請求項6】
前記予測情報は、前記複数の参照ラインに基づいて前記現在ブロックについて前記イントラ予測が実行されるべきかどうかを示すシンタックス要素を含む、請求項1に記載の方法。
【請求項7】
前記現在ブロックは、前記現在ブロックを含むコーディングツリーユニットの上部境界に隣接して配置されない、請求項1に記載の方法。
【請求項8】
前記複数のイントラ予測方向のうちの前記1つに関連付けられた予測角度のタンジェント値およびコタンジェント値のうちの1つは整数である、請求項1に記載の方法。
【請求項9】
決定する前記ステップは、前記現在ブロックのサンプルの各行について、前記複数の参照ラインの前記サブセットのうちの1つの参照ラインインデックスを、前記イントラ予測方向のうちの前記1つに関連付けられた予測角度のタンジェント値と、前記現在ブロックのサンプルのそれぞれの前記行の行番号とに基づいて決定するステップを含む、請求項1に記載の方法。
【請求項10】
コーディングされたビデオシーケンスの一部である現在ピクチャ内の現在ブロックの予測情報をデコードし、前記予測情報は前記現在ブロックについての複数のイントラ予測方向のうちの1つを示し、
前記予測情報に示される前記複数のイントラ予測方向のうちの前記1つに基づいて、複数の参照ラインのサブセットを決定し、
前記複数の参照ラインの前記決定されたサブセットに基づいて、前記現在ブロックのイントラ予測を実行し、
前記現在ブロックの前記イントラ予測に基づいて、前記現在ブロックを再構成する
ように構成される処理回路を備える、装置。
【請求項11】
前記複数の参照ラインの前記決定されたサブセット内の前記参照ラインの数は、1よりも大きい、請求項10に記載の装置。
【請求項12】
前記複数の参照ラインのうちの第1の参照ラインに関連付けられた前記イントラ予測方向は、前記複数の参照ラインのうちの第2の参照ラインに関連付けられた前記イントラ予測方向とは異なる、請求項10に記載の装置。
【請求項13】
前記複数のイントラ予測方向は、前記複数の参照ラインのうちの第1の参照ラインに関連付けられ、前記複数のイントラ予測方向のサブセットは、前記複数の参照ラインのうちの第2の参照ラインに関連付けられる、請求項10に記載の装置。
【請求項14】
前記処理回路は、
前記現在ブロックの各サンプルについて、前記イントラ予測方向のうちの前記1つとそれぞれの前記サンプルの位置とに基づいて、前記複数の参照ラインの前記サブセットのうちの1つを決定するようにさらに構成される、請求項10に記載の装置。
【請求項15】
前記予測情報は、前記複数の参照ラインに基づいて前記現在ブロックについて前記イントラ予測が実行されるべきかどうかを示すシンタックス要素を含む、請求項10に記載の装置。
【請求項16】
前記現在ブロックは、前記現在ブロックを含むコーディングツリーユニットの上部境界に隣接して配置されない、請求項10に記載の装置。
【請求項17】
前記複数のイントラ予測方向のうちの前記1つに関連付けられた予測角度のタンジェント値およびコタンジェント値のうちの1つは整数である、請求項10に記載の装置。
【請求項18】
前記処理回路は、
前記現在ブロックのサンプルの各行について、前記複数の参照ラインの前記サブセットのうちの1つの参照ラインインデックスを、前記イントラ予測方向のうちの前記1つに関連付けられた予測角度のタンジェント値と、前記現在ブロックのサンプルのそれぞれの前記行の行番号とに基づいて決定するようにさらに構成される、請求項10に記載の装置。
【請求項19】
少なくとも1つのプロセッサによって実行されると、前記少なくとも1つのプロセッサに、
コーディングされたビデオシーケンスの一部である現在ピクチャ内の現在ブロックの予測情報をデコードするステップであって、前記予測情報は前記現在ブロックについての複数のイントラ予測方向のうちの1つを示す、ステップと、
前記予測情報に示される前記複数のイントラ予測方向のうちの前記1つに基づいて、複数の参照ラインのサブセットを決定するステップと、
前記複数の参照ラインの前記決定されたサブセットに基づいて、前記現在ブロックのイントラ予測を実行するステップと、
前記現在ブロックの前記イントラ予測に基づいて、前記現在ブロックを再構成するステップとを実行させる命令を格納する、非一時的コンピュータ可読記憶媒体。
【請求項20】
前記複数の参照ラインの前記決定されたサブセット内の前記参照ラインの数が、1よりも大きい、請求項19に記載の非一時的コンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本出願は、2021年6月28日に出願された米国特許出願第17/360,803号「METHOD AND APPARATUS FOR VIDEO CODING」に基づく優先権の利益を主張し、上記特許出願は、2020年9月24日に出願された米国仮出願第63/082,806号「INTERPOLATION-FREE DIRECTIONAL INTRA PREDICTION」に基づく優先権の利益を主張する。先行出願の開示全体は、参照によりその全体が本明細書に組み込まれる。
【0002】
本開示は、概してビデオコーディングに関する実施形態を説明する。
【背景技術】
【0003】
本明細書で提供される背景技術の説明は、本開示の文脈を一般的に提示することを目的としている。この背景技術の欄に記載されている限りにおいて、本明細書に記載されている発明者らの研究、ならびに出願時に先行技術として認められない可能性がある説明の態様は、本開示に対する先行技術として明示的にも暗示的にも認められない。
【0004】
ビデオコーディングおよびデコーディングは、動き補償を伴うピクチャ間予測を用いて行われ得る。非圧縮デジタルビデオは、一連のピクチャを含むことができ、各ピクチャは、例えば1920×1080のルマサンプルおよび関連する色差サンプルの空間次元を有する。一連のピクチャは、例えば、1秒毎に60ピクチャ、または60Hzの固定または可変のピクチャレート(非公式にはフレームレートとしても知られている)を有することができる。非圧縮ビデオは、かなりのビットレート要件を有する。例えば、サンプルあたり8ビットの1080p60 4:2:0ビデオ(60Hzのフレームレートで1920×1080のルマサンプル解像度)は、1.5Gbit/sに近い帯域幅を必要とする。そのようなビデオの1時間は、600GByteを超える記憶領域を必要とする。
【0005】
ビデオコーディングおよびデコーディングの目的の1つは、圧縮による入力ビデオ信号の冗長性の低減であり得る。圧縮は、前述の帯域幅または記憶領域要件を、場合によっては2桁以上低減するのに役立ち得る。可逆圧縮および非可逆圧縮の両方、ならびにそれらの組み合わせを採用し得る。可逆圧縮とは、圧縮された元信号から、元信号の正確なコピーを再構成することができる技術を指す。非可逆圧縮を使用する場合、再構成された信号は元信号と同一ではない可能性があるが、元信号と再構成された信号との間の歪みは十分小さいので、再構成された信号を意図された用途に使用できる。ビデオの場合、非可逆圧縮が広く採用されている。許容される歪みの量は用途に依存し、例えば、一定の消費者ストリーミング用途のユーザは、テレビ配信用途のユーザよりも高い歪みを許容し得る。達成可能な圧縮率は、許容可能な/耐えられる歪みが高いほど、より高い圧縮率が得られるということを反映できる。
【0006】
ビデオエンコーダおよびデコーダは、例えば、動き補償、変換、量子化、およびエントロピーコーディングを含む、いくつかの広範なカテゴリからの技術を利用し得る。
【0007】
ビデオコーデック技術は、イントラコーディングとして知られる技術を含み得る。イントラコーディングでは、サンプル値は、サンプルまたは以前に再構成された参照ピクチャからの他のデータを参照せずに表される。いくつかのビデオコーデックでは、ピクチャは、サンプルのブロックへと空間的に細分される。サンプルのすべてのブロックがイントラモードでコーディングされる場合、そのピクチャは、イントラピクチャであり得る。イントラピクチャと、独立したデコーダリフレッシュピクチャといったそれらの派生物は、デコーダ状態をリセットするために使用され得、したがって、コーディングされたビデオビットストリームおよびビデオセッションの中の最初のピクチャとして、または静止画像として使用され得る。イントラブロックのサンプルは、変換を受けることができ、変換係数は、エントロピーコーディングの前に量子化され得る。イントラ予測は、変換前領域におけるサンプル値を最小化する技術であり得る。場合によっては、変換後のDC値が小さいほど、およびAC係数が小さいほど、エントロピーコーディング後のブロックを表すための所与の量子化ステップサイズで必要とされるビットが少なくなる。
【0008】
例えばMPEG-2世代のコーディング技術から知られているような従来のイントラコーディングは、イントラ予測を使用しない。しかしながら、いくつかのより新しいビデオ圧縮技術は、例えば、空間的に近傍の、および、デコード順で先行するデータブロックのエンコードおよび/またはデコード中に取得された周囲のサンプルデータおよび/またはメタデータから試みる技術を含む。以下、そのような技術を「イントラ予測」技術と称する。少なくともいくつかの場合において、イントラ予測は、参照ピクチャからではなく、再構成中の現在ピクチャからの参照データのみを使用することに留意されたい。
【0009】
イントラ予測には、多くの異なる形があり得る。そのような技術のうちの2つ以上が所与のビデオコーディング技術において使用され得る場合、使用される技術は、イントラ予測モードでコーディングされ得る。ある場合には、モードはサブモードおよび/またはパラメータを有することができ、それらは個別にコーディングされるかまたはモードのコードワードに含まれ得る。所与のモード、サブモード、および/またはパラメータの組み合わせにどのコードワードを使用するかは、イントラ予測を介したコーディング効率向上に影響を与える可能性があり、コードワードをビットストリームに変換するために使用されるエントロピーコーディング技術も影響を与える可能性がある。
【0010】
イントラ予測の一定のモードは、H.264で導入され、H.265で改良され、共同探索モデル(JEM)、多用途ビデオコーディング(VVC)、およびベンチマークセット(BMS)などの新しいコーディング技術でさらに改良された。予測子ブロックは、既に利用可能なサンプルに属する近傍サンプル値を使用して形成され得る。近傍サンプルのサンプル値は、方向に従って予測子ブロックへとコピーされる。使用される方向への参照は、ビットストリームにコーディングされ得るか、またはそれ自体が予測され得る。
【0011】
図1Aを参照すると、右下に示されているのは、H.265の33個の可能な予測子方向から知られている9つの予測子方向のサブセットである(35個のイントラモードのうちの33個の角度モードに対応する)。矢印が収束する点(101)は、予測されるサンプルを表す。矢印は、サンプルが予測される方向を表す。例えば、矢印(102)は、サンプル(101)が1つまたは複数のサンプルから右上に、水平から45度の角度で予測されることを示す。同様に、矢印(103)は、サンプル(101)が1つまたは複数のサンプルから左下のサンプル(101)に、水平から22.5度の角度で予測されることを示す。
【0012】
さらに図1Aを参照すると、左上には、4×4サンプル(破線太字で示す)の正方形ブロック(104)が示されている。正方形ブロック(104)は16個のサンプルを含み、それぞれ「S」と、Y次元におけるその位置(例えば、行インデックス)と、X次元におけるその位置(例えば、列インデックス)とでラベル付けされている。例えば、サンプルS21は、Y次元で(上から)2番目のサンプルであり、X次元で(左から)1番目のサンプルである。同様に、サンプルS44は、Y次元およびX次元の両方において、ブロック(104)の4番目のサンプルである。ブロックのサイズは4×4サンプルであるため、S44は右下にある。同様の番号付け方式に従う参照サンプルをさらに示す。参照サンプルは、ブロック(104)に対してR、そのY位置(例えば、行インデックス)およびX位置(列インデックス)でラベル付けされる。H.264とH.265の両方で、予測サンプルは再構成中のブロックの近傍であり、したがって、負の値を使用する必要はない。
【0013】
イントラピクチャ予測は、シグナリングされた予測方向によって適切にされるように近傍のサンプルからの参照サンプル値をコピーすることによって機能できる。例えば、コーディングされたビデオビットストリームが、このブロックについて、矢印(102)と一致する予測方向を示すシグナリングを含むこと、すなわち、サンプルは、1つまたは複数の予測サンプルから右上に、水平から45度の角度で予測されると仮定する。その場合、サンプル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個のイントラ予測方向を示す概略図(105)を示している。
【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から予測子を計算するときの丸め誤差により、MV予測自体が非可逆であり得る。
【0020】
様々なMV予測メカニズムがH.265/HEVC(ITU-T Rec.H.265、「High Efficiency Video Coding」、2016年12月)に記載されている。H.265が提供する多くのMV予測メカニズムのうち、本明細書に記載されるのは、以下、「空間マージ」と呼ばれる技術である。
【0021】
図1Cを参照すると、現在ブロック(111)は、空間的にシフトされた同じサイズの前のブロックから予測可能であることが動き探索プロセス中にエンコーダによって見いだされたサンプルを含むことができる。そのMVを直接コーディングする代わりに、A0、A1、およびB0、B1、B2(それぞれ112~116)で示される5つの周囲サンプルのいずれか1つに関連付けられたMVを使用して、1つまたは複数の参照ピクチャに関連付けられたメタデータから、例えば、(デコード順で)最新の参照ピクチャから、MVを導出することができる。H.265では、MV予測は、近傍ブロックが使用しているのと同じ参照ピクチャからの予測子を使用することができる。
【発明の概要】
【課題を解決するための手段】
【0022】
本開示の態様は、ビデオのエンコーディング/デコーディングのための装置を提供する。装置は、コーディングされたビデオシーケンスの一部である現在ピクチャ内の現在ブロックの予測情報をデコードする処理回路を備える。予測情報は、現在ブロックについての複数のイントラ予測方向のうちの1つを示す。処理回路は、予測情報に示された複数のイントラ予測方向のうちの1つに基づいて、複数の参照ラインのサブセットを決定する。処理回路は、複数の参照ラインの決定されたサブセットに基づいて、現在ブロックのイントラ予測を実行する。処理回路は、現在ブロックのイントラ予測に基づいて、現在ブロックを再構成する。
【0023】
一実施形態では、複数の参照ラインの決定されたサブセット内の参照ラインの数は、1よりも大きい。
【0024】
一実施形態では、複数の参照ラインのうちの第1の参照ラインに関連付けられたイントラ予測方向は、複数の参照ラインのうちの第2の参照ラインに関連付けられたイントラ予測方向とは異なる。
【0025】
一実施形態では、複数のイントラ予測方向は、複数の参照ラインのうちの第1の参照ラインに関連付けられ、複数のイントラ予測方向のサブセットは、複数の参照ラインのうちの第2の参照ラインに関連付けられる。
【0026】
一実施形態では、処理回路は、現在ブロックの各サンプルについて、複数のイントラ予測方向のうちの1つとそれぞれのサンプルの位置とに基づいて、複数の参照ラインのサブセットのうちの1つを決定する。
【0027】
一実施形態では、予測情報は、複数の参照ラインに基づいて現在ブロックについてイントラ予測が実行されるべきかどうかを示すシンタックス要素を含む。
【0028】
一実施形態では、現在ブロックは、現在ブロックを含むコーディングツリーユニットの上部境界に隣接して配置されない。
【0029】
一実施形態では、複数のイントラ予測方向のうちの1つに関連付けられた予測角度のタンジェント値およびコタンジェント値のうちの1つは整数である。
【0030】
一実施形態では、処理回路は、現在ブロックのサンプルの各行について、複数の参照ラインのサブセットのうちの1つの参照ラインインデックスを、イントラ予測方向のうちの1つに関連付けられた予測角度のタンジェント値と、現在ブロックのサンプルのそれぞれの行の行番号とに基づいて決定する。
【0031】
本開示の態様は、ビデオエンコーディング/デコーディングのための方法を提供する。方法では、コーディングされたビデオシーケンスの一部である現在ピクチャ内の現在ブロックの予測情報がデコードされる。予測情報は、現在ブロックについての複数のイントラ予測方向のうちの1つを示す。複数の参照ラインのサブセットは、予測情報に示される複数のイントラ予測方向のうちの1つに基づいて決定される。決定された複数の参照ラインのサブセットに基づいて、現在ブロックのイントラ予測が実行される。現在ブロックは、現在ブロックのイントラ予測に基づいて再構成される。
【0032】
本開示の態様はまた、少なくとも1つのプロセッサによって実行されると、少なくとも1つのプロセッサに、ビデオデコーディングのための方法のうちの任意の1つまたは組み合わせを実行させる命令を格納する非一時的コンピュータ可読媒体を提供する。
【0033】
開示された主題のさらなる特徴、性質、および様々な利点は、以下の詳細な説明および添付の図面からより明らかにされよう。
【図面の簡単な説明】
【0034】
図1A】イントラ予測モードの例示的なサブセットの概略図である。
図1B】例示的なイントラ予測方向の図である。
図1C】現在ブロックおよびその周囲の空間マージ候補の一例における概略図である。
図2】一実施形態による通信システムの簡略ブロック図の概略図である。
図3】一実施形態による通信システムの簡略ブロック図の概略図である。
図4】一実施形態によるデコーダの簡略ブロック図の概略図である。
図5】一実施形態によるエンコーダの簡略ブロック図の概略図である。
図6】他の実施形態によるエンコーダのブロック図である。
図7】他の実施形態によるデコーダのブロック図である。
図8】本開示のいくつかの実施形態による例示的なブロックパーティションを示す図である。
図9】本開示のいくつかの実施形態による例示的なブロックパーティションを示す図である。
図10】本開示のいくつかの実施形態による例示的なブロックパーティションを示す図である。
図11】本開示の一実施形態による、ネストされたマルチタイプツリーコーディングブロック構造を有する例示的な四分木を示す図である。
図12】本開示の一実施形態による例示的な公称角度を示す図である。
図13】本開示の一実施形態による、現在ブロック内の1つの画素の上、左、および左上サンプルの位置を示す図である。
図14】本開示の一実施形態による、小数位置における予測サンプルを導出するための例示的なバイリニア補間を示す図である。
図15】本開示の一実施形態による、コーディングブロックユニットに隣接する4つの参照ラインを使用する例示的なマルチラインイントラ予測を示す図である。
図16】本開示の一実施形態によるイントラ予測方向の例示的な角度を示す図である。
図17】本開示のいくつかの実施形態による例示的な予測角度を示す図である。
図18】本開示の一実施形態による、2つの参照ラインを使用する例示的なイントラ予測を示す図である。
図19】本開示の一実施形態による、3つの参照ラインを使用する例示的なイントラ予測を示す図である。
図20】本開示の一実施形態による例示的なフローチャートを示す図である。
図21】一実施形態によるコンピュータシステムの概略図である。
【発明を実施するための形態】
【0035】
I.ビデオデコーダおよびエンコーダシステム
図2は、本開示の一実施形態による通信システム(200)の簡略ブロック図を示している。通信システム(200)は、例えばネットワーク(250)を介して互いに通信可能な複数の端末デバイスを含む。例えば、通信システム(200)は、ネットワーク(250)を介して相互接続された端末デバイスの第1のペア(210)および(220)を含む。図2の例では、端末デバイスの第1のペア(210)および(220)は、データの一方向の送信を実行する。例えば、端末デバイス(210)は、ネットワーク(250)を介して他の端末デバイス(220)に送信するために、ビデオデータ(例えば、端末デバイス(210)によって取り込まれたビデオピクチャのストリーム)をコーディングし得る。エンコードされたビデオデータは、1つまたは複数のコーディングされたビデオビットストリームの形で送信され得る。端末デバイス(220)は、ネットワーク(250)からコーディングされたビデオデータを受信し、コーディングされたビデオデータをデコードしてビデオピクチャを復元し、復元されたビデオデータに従ってビデオピクチャを表示することができる。一方向のデータ送信は、メディアサービングアプリケーションなどにおいて一般的であり得る。
【0036】
別の例では、通信システム(200)は、例えばビデオ会議中に発生することがあるコーディングされたビデオデータの双方向送信を実行する端末デバイスの第2のペア(230)および(240)を含む。データの双方向送信のために、一例では、端末デバイス(230)および(240)の各端末デバイスは、ネットワーク(250)を介して端末デバイス(230)および(240)の他方の端末デバイスに送信するために、ビデオデータ(例えば、端末デバイスによって取り込まれたビデオピクチャのストリーム)をコーディングすることができる。端末デバイス(230)および(240)の各端末デバイスはまた、端末デバイス(230)および(240)の他の端末デバイスによって送信されたコーディングされたビデオデータを受信することができ、コーディングされたビデオデータをデコードしてビデオピクチャを回復することができ、回復されたビデオデータに従って、アクセス可能なディスプレイデバイスでビデオピクチャを表示することができる。
【0037】
図2の例では、端末デバイス(210)、(220)、(230)、および(240)は、サーバ、パーソナルコンピュータ、およびスマートフォンとして示され得るが、本開示の原理はそのように限定されなくてもよい。本開示の実施形態は、ラップトップコンピュータ、タブレットコンピュータ、メディアプレーヤおよび/または専用ビデオ会議機器に適用される。ネットワーク(250)は、例えば有線(配線された)および/または無線通信ネットワークを含む、端末デバイス(210)、(220)、(230)および(240)の間で、コーディングされたビデオデータを伝達する任意の数のネットワークを表す。通信ネットワーク(250)は、回線交換チャネルおよび/またはパケット交換チャネルでデータをやり取りできる。代表的なネットワークには、電気通信ネットワーク、ローカルエリアネットワーク、ワイドエリアネットワーク、および/またはインターネットが含まれる。本説明の目的のために、ネットワーク(250)のアーキテクチャおよびトポロジーは、本明細書で以下に説明されない限り、本開示の動作にとって重要ではない可能性がある。
【0038】
図3は、開示された主題に対する用途の例として、ストリーミング環境におけるビデオエンコーダおよびビデオデコーダの配置を示している。開示された主題は、例えば、ビデオ会議、デジタルTV、そしてCD、DVD、メモリスティックなどを含むデジタル媒体への圧縮ビデオの格納を含む他のビデオ対応アプリケーションに等しく適用可能であり得る。
【0039】
ストリーミングシステムは、例えば非圧縮のビデオピクチャのストリーム(302)を生成する、デジタルカメラなどのビデオソース(301)を含むことができるキャプチャサブシステム(313)を含み得る。一例では、ビデオピクチャのストリーム(302)は、デジタルカメラによって撮影されたサンプルを含む。エンコードされたビデオデータ(304)(またはコーディングされたビデオビットストリーム)と比較して、高いデータ量を強調するために太線として示されているビデオピクチャのストリーム(302)は、ビデオソース(301)に結合されたビデオエンコーダ(303)を含む電子デバイス(320)によって処理され得る。ビデオエンコーダ(303)は、以下でより詳細に説明されるように、開示された主題の態様を可能にするまたは実装するためのハードウェア、ソフトウェア、またはそれらの組み合わせを含むことができる。ビデオピクチャのストリーム(302)と比較して、より低いデータ量を強調するために細い線として示されているエンコードされたビデオデータ(304)(またはエンコーディングされたビデオビットストリーム(304))は、将来使用するために、ストリーミングサーバ(305)に格納され得る。図3のクライアントサブシステム(306)および(308)などの1つまたは複数のストリーミングクライアントサブシステムは、ストリーミングサーバ(305)にアクセスして、エンコードされたビデオデータ(304)のコピー(307)および(309)を取得することができる。クライアントサブシステム(306)は、例えば電子デバイス(330)内のビデオデコーダ(310)を含むことができる。ビデオデコーダ(310)は、エンコードされたビデオデータの入力コピー(307)をデコーし、ディスプレイ(312)(例えば、表示画面)または他の描画デバイス(図示せず)上に、描画され得るビデオピクチャの出力ストリーム(311)を作成する。いくつかのストリーミングシステムでは、エンコードされたビデオデータ(304)、(307)、および(309)(例えば、ビデオビットストリーム)は、一定のビデオコーディング/圧縮規格に従ってエンコードされ得る。これらの規格の例として、ITU-T勧告H.265が挙げられる。一例では、開発中のビデオ規格は、多用途ビデオコーディング(VVC)として非公式に知られている。開示された主題は、VVCの文脈で使用され得る。
【0040】
電子デバイス(320)および(330)は、他の構成要素(図示せず)を含むことができることに留意されたい。例えば、電子デバイス(320)は、ビデオデコーダ(図示せず)を含むことができ、電子デバイス(330)は、ビデオエンコーダ(図示せず)も含むことができる。
【0041】
図4は、本開示の一実施形態によるビデオデコーダ(410)のブロック図を示している。ビデオデコーダ(410)は、電子デバイス(430)に含まれ得る。電子デバイス(430)は、受信器(431)(例えば、受信回路)を含むことができる。ビデオデコーダ(410)は、図3の例のビデオデコーダ(310)の代わりに使用され得る。
【0042】
受信器(431)は、ビデオデコーダ(410)によってデコードされる1つまたは複数のコーディングされたビデオシーケンスを受信し得、同じまたは他の実施形態では、一度に1つのコーディングされたビデオシーケンスを受信し得、各コーディングされたビデオシーケンスのデコードは、他のコーディングされたビデオシーケンスから独立している。エンコードされたビデオデータを格納する記憶デバイスへのハードウェアリンク/ソフトウェアリンクであり得るチャネル(401)から、コーディングされたビデオシーケンスが受信され得る。受信器(431)は、エンティティ(図示せず)を使用してそれぞれに転送され得る他のデータ、例えば、コーディングされたオーディオデータおよび/または補助データストリーム、を有するエンコードされたビデオデータを受信し得る。受信器(431)は、コーディングされたビデオシーケンスを他のデータから分離し得る。ネットワークジッタに対抗するために、バッファメモリ(415)が、受信器(431)とエントロピーデコーダ/パーサ(420)(以下、「パーサ(420)」)との間に結合され得る。一定の用途では、バッファメモリ(415)は、ビデオデコーダ(410)の一部である。他の場合には、ビデオデコーダ(410)の外部にあってもよい(図示せず)。さらに他の場合には、例えば、ネットワークジッタに対抗するためにビデオデコーダ(410)の外部にバッファメモリ(図示せず)があり、さらに、例えばプレイアウトタイミングを処理するためにビデオデコーダ(410)の内部に別のバッファメモリ(415)があり得る。受信器(431)が十分な帯域幅および制御可能性がある格納/転送デバイスから、またはアイソシンクロナスネットワークからデータを受信しているとき、バッファメモリ(415)は必要ないか、または小さくてよい。インターネットなどのベストエフォートパケットネットワークで使用するために、バッファメモリ(415)が必要とされることがあり、比較的大きくてもよく、有利には適応サイズであってもよく、ビデオデコーダ(410)の外部のオペレーティングシステムまたは同様の要素(図示せず)に少なくとも部分的に実装され得る。
【0043】
ビデオデコーダ(410)は、コーディングされたビデオシーケンスからシンボル(421)を再構成するために、パーサ(420)を含み得る。これらのシンボルのカテゴリは、ビデオデコーダ(410)の動作を管理するために使用される情報、および潜在的に、図4に示すように、電子デバイス(430)の不可欠な部分ではないが電子デバイス(430)に結合され得る描画デバイス(412)(例えば、表示画面)などの描画デバイスを制御するための情報を含む。描画デバイス(複数可)の制御情報は、補足エンハンスメント情報(SEIメッセージ)またはビデオユーザビリティ情報(VUI)のパラメータセット断片(図示せず)の形態であってもよい。パーサ(420)は、受信されたコーディングされたビデオシーケンスを解析/エントロピーデコードし得る。コーディングされたビデオシーケンスのコーディングは、ビデオコーディング技術または規格に従うことができ、可変長符号化、ハフマン符号化、文脈依存の有無にかかわらず算術符号化などを含む様々な原理に従うことができる。パーサ(420)は、グループに対応する少なくとも1つのパラメータに基づいて、コーディングされたビデオシーケンスから、ビデオデコーダ内の画素サブグループのうちの少なくとも1つに対して、サブグループパラメータのセットを抽出し得る。サブグループは、Groups of Pictures(GOP)、ピクチャ、タイル、スライス、マクロブロック、コーディングユニット(CU)、ブロック、変換ユニット(TU)、予測ユニット(PU)などを含み得る。パーサ(420)はまた、変換係数、量子化パラメータ値、MVなどのコーディングされたビデオシーケンス情報から抽出し得る。
【0044】
パーサ(420)は、シンボル(421)を作成するために、バッファメモリ(415)から受信したビデオシーケンスに対してエントロピーデコーディング/解析動作を実行し得る。
【0045】
シンボル(421)の再構成は、コーディングされたビデオピクチャまたはその一部(例えば、インターピクチャおよびイントラピクチャ、インターブロックおよびイントラブロックなど)のタイプ、およびその他の要因に依存して、複数の異なるユニットを含むことができる。どのユニットがどのように関与するかは、パーサ(420)によってコーディングされたビデオシーケンスから解析されたサブグループ制御情報によって制御され得る。パーサ(420)と以下の複数のユニットとの間のそのようなサブグループ制御情報のフローは、明確性のため図示されていない。
【0046】
既に述べた機能ブロックを超えて、ビデオデコーダ(410)を、以下に説明するように概念的にいくつかの機能ユニットに細分することができる。商業的制約の下で動作する実際の実装では、これらのユニットの多くは互いに密接に相互作用し、少なくとも部分的に互いに統合することができる。しかしながら、開示された主題を説明する目的で、以下の機能ユニットへの概念的細分化が適切である。
【0047】
第1のユニットはスケーラ/逆変換ユニット(451)である。スケーラ/逆変換ユニット(451)は、量子化された変換係数、ならびに使用する変換、ブロックサイズ、量子化係数、量子化スケーリング行列などを含む制御情報を、パーサ(420)からシンボル(複数可)(421)として受け取る。スケーラ/逆変換ユニット(451)は、アグリゲータ(455)に入力することができるサンプル値を含むブロックを出力することができる。
【0048】
場合によっては、スケーラ/逆変換(451)の出力サンプルは、イントラコーディングされたブロックに関係することができ、つまり、以前に再構成されたピクチャからの予測情報を使用していないが、現在ピクチャの以前に再構成された部分からの予測情報を使用できるブロックである。そのような予測情報は、イントラピクチャ予測ユニット(452)によって提供され得る。場合によっては、イントラピクチャ予測ユニット(452)は、現在ピクチャのバッファ(458)から取り出された、既に再構成された周囲の情報を用いて、再構成中のブロックと同じサイズおよび形状のブロックを生成する。現在ピクチャのバッファ(458)は、例えば、部分的に再構成された現在ピクチャおよび/または完全に再構成された現在ピクチャをバッファリングする。アグリゲータ(455)は、場合によっては、サンプルごとに、イントラ予測ユニット(452)が生成した予測情報を、スケーラ/逆変換ユニット(451)によって提供される出力サンプル情報に追加する。
【0049】
他の場合では、スケーラ/逆変換ユニット(451)の出力サンプルは、インターコーディングされ、潜在的に動き補償されたブロックに関連し得る。そのような場合、動き補償予測ユニット(453)は、予測に使用されるサンプルを取り出すために参照ピクチャメモリ(457)にアクセスすることができる。ブロックに関連するシンボル(421)に従って取り出されたサンプルを動き補償した後、これらのサンプルは、出力サンプル情報を生成するために、アグリゲータ(455)によってスケーラ/逆変換ユニット(451)の出力に追加され得る(この場合、残差サンプルまたは残差信号と呼ばれる)。動き補償予測ユニット(453)が予測サンプルを取り出す参照ピクチャメモリ(457)内のアドレスは、例えば、X、Y、および参照ピクチャ成分を有することができるシンボル(421)の形態で動き補償予測ユニット(453)に利用できるように、MVによって制御され得る。動き補償はまた、サブサンプルの正確なMVが使用されているときに参照ピクチャメモリ(457)から取り出されたサンプル値の補間、MV予測メカニズムなどを含むことができる。
【0050】
アグリゲータ(455)の出力サンプルは、ループフィルタユニット(456)において様々なループフィルタリング技術の対象となり得る。ビデオ圧縮技術は、コーディングされたビデオシーケンス(コーディングされたビデオビットストリームとも呼ばれる)に含まれるパラメータによって制御され、パーサ(420)からのシンボル(421)としてループフィルタユニット(456)に利用可能になるインループフィルタ技術を含むことができるが、コーディングされたピクチャまたはコーディングされたビデオシーケンスの(デコード順で)前の部分のデコード中に取得されたメタ情報に反応を示すことができ、以前に再構成およびループフィルタリングされたサンプル値に反応を示すこともできる。
【0051】
ループフィルタユニット(456)の出力は、描画デバイス(412)に出力することができて、将来のピクチャ間予測で使用するために参照ピクチャメモリ(457)に格納することができるサンプルストリームとすることができる。
【0052】
一定のコーディングされたピクチャは、完全に再構成されると、将来の予測のための参照ピクチャとして使用され得る。例えば、現在ピクチャに対応するコーディングされたピクチャが完全に再構成され、コーディングされたピクチャが(例えば、パーサ(420)によって)参照ピクチャとして識別されると、現在ピクチャのバッファ(458)は参照ピクチャメモリ(457)の一部になることができ、新しい現在ピクチャのバッファは、後続のコーディングされたピクチャの再構成を開始する前に再配置され得る。
【0053】
ビデオデコーダ(410)は、ITU-T Rec.H.265などの標準規格における所定のビデオ圧縮技術に従ってデコード動作を実行し得る。コーディングされたビデオシーケンスがビデオ圧縮技術または規格のシンタックス、およびビデオ圧縮技術または規格に文書化されたプロファイルの両方に準拠するという意味で、コーディングされたビデオシーケンスは、使用されているビデオ圧縮技術または規格によって指定されたシンタックスに準拠し得る。具体的には、プロファイルは、ビデオ圧縮技術または規格で利用可能なすべてのツールから、そのプロファイルの下で使用可能な唯一のツールとして、一定のツールを選択することができる。また、コンプライアンスのために必要なのは、コーディングされたビデオシーケンスの複雑さが、ビデオ圧縮技術または規格のレベルによって定義される境界内にあることであり得る。場合によっては、レベルは、最大ピクチャサイズ、最大フレームレート、最大再構成サンプルレート(例えば、毎秒メガサンプルで測定される)、最大参照ピクチャサイズなどを制限する。レベルによって設定される制限は、場合によっては、仮想参照デコーダ(HRD)仕様、およびコーディングされたビデオシーケンスにおいて通知されるHRDバッファ管理のためのメタデータによってさらに制限され得る。
【0054】
一実施形態では、受信器(431)は、エンコードされたビデオを有する追加の(冗長な)データを受信し得る。追加データは、コーディングされたビデオシーケンス(複数可)の一部として含まれ得る。追加データは、データを適切にデコードするために、および/または元のビデオデータをより正確に再構成するために、ビデオデコーダ(410)によって使用され得る。追加データは、例えば、時間、空間、または信号雑音比(SNR)エンハンスメントレイヤ、冗長スライス、冗長ピクチャ、前方誤り訂正符号などの形態であり得る。
【0055】
図5は、本開示の一実施形態によるビデオエンコーダ(503)のブロック図を示している。ビデオエンコーダ(503)は、電子デバイス(520)に含まれる。電子デバイス(520)は、送信器(540)(例えば、送信回路)を含む。ビデオエンコーダ(503)を、図3の例のビデオエンコーダ(303)の代わりに使用することができる。
【0056】
ビデオエンコーダ(503)は、ビデオエンコーダ(503)によってコーディングされるビデオ画像(複数可)を取り込むことができるビデオソース(501)(図5の例では電子デバイス(520)の一部ではない)からビデオサンプルを受信することができる。別の例では、ビデオソース(501)は電子デバイス(520)の一部である。
【0057】
ビデオソース(501)は、任意の適切なビット深度(例えば、8ビット、10ビット、12ビット、…)、任意の色空間(例えば、BT.601 Y CrCB、RGB、…)、および任意の適切なサンプリング構造(例えば、Y CrCb 4:2:0、Y CrCb 4:4:4)であり得るデジタルビデオサンプルストリームの形式で、ビデオエンコーダ(503)によってコーディングされるソースビデオシーケンスを提供し得る。メディアサービングシステムにおいて、ビデオソース(501)は、予め用意されたビデオを格納する記憶デバイスであってもよい。ビデオ会議システムでは、ビデオソース(501)は、ビデオシーケンスとしてローカル画像情報を取り込むカメラであってもよい。ビデオデータは、連続して見たときに動きを与える、複数の個々のピクチャとして提供され得る。ピクチャ自体を、画素の空間アレイとして編成することができ、各画素は、使用中のサンプリング構造、色空間などに応じて、1つまたは複数のサンプルを含むことができる。当業者であれば、画素とサンプルとの関係を容易に理解することができる。以下、サンプルに着目して説明する。
【0058】
一実施形態によれば、ビデオエンコーダ(503)は、リアルタイムで、またはアプリケーションによって要求される任意の他の時間制約下で、ソースビデオシーケンスのピクチャをコーディングして、コーディングされたビデオシーケンス(543)に圧縮し得る。適切なコーディング速度を適用することがコントローラ(550)の一機能である。いくつかの実施形態では、コントローラ(550)は、以下に説明するように他の機能ユニットを制御し、他の機能ユニットに機能的に結合される。分かりやすくするために、結合は描かれていない。コントローラ(550)によって設定されるパラメータは、レート制御関連パラメータ(ピクチャスキップ、量子化器、レート歪み最適化技術のラムダ値など)、ピクチャサイズ、group of pictures(GOP)レイアウト、最大MV許容参照領域などを含むことができる。コントローラ(550)は、一定のシステム設計に最適化されたビデオエンコーダ(503)に関する他の適切な機能を有するように構成され得る。
【0059】
いくつかの実施形態では、ビデオエンコーダ(503)は、コーディング・ループで動作するように構成される。過度に簡略化された説明として、一例では、コーディング・ループは、ソースコーダ(530)(例えば、コーディングされる入力ピクチャおよび参照ピクチャ(複数可)に基づいて、シンボルストリームのようなシンボルを生成することを担当する)、およびビデオエンコーダ(503)に組み込まれた(ローカル)デコーダ(533)を含むことができる。デコーダ(533)はシンボルを再構成し、(開示された主題で考慮されるビデオ圧縮技術においては、シンボルとコーディングされたビデオビットストリームとの間の任意の圧縮が可逆的であるため)、(リモート)デコーダが作成するのと同様の方法でサンプルデータを作成する。再構成されたサンプルストリーム(サンプルデータ)は、参照ピクチャメモリ(534)に入力される。シンボルストリームのデコードは、デコーダ位置(ローカルまたはリモート)とは無関係に、ビットに正確な結果をもたらすので、参照ピクチャメモリ(534)内のコンテンツも、ローカルエンコーダとリモートエンコーダとの間でビットに正確である。言い換えると、参照ピクチャとしてエンコーダが「見る」予測部分は、デコーディング中に予測を使用するときに、デコーダが「見る」のとまったく同じサンプル値をサンプリングする。参照ピクチャ同期性のこの基本原理(および、例えばチャネル誤差のために同期性を維持することができない場合、結果として生じるドリフト)は、いくつかの関連技術においても使用される。
【0060】
「ローカル」デコーダ(533)の動作は、ビデオデコーダ(410)などの「リモート」デコーダの動作と同じであってもよく、これは、図4に関連して上記で詳細に説明されている。しかし、図4も簡単に参照すると、シンボルが利用可能であり、エントロピーコーダ(545)およびパーサ(420)によるコーディングされたビデオシーケンスへのシンボルのエンコーディング/デコーディングは可逆的であり得るため、バッファメモリ(415)およびパーサ(420)を含むビデオデコーダ(410)のエントロピー・デコーディン部分は、ローカルデコーダ(533)に完全に実装されていなくてもよい。
【0061】
この時点で行うことができる観察は、デコーダに存在する解析/エントロピーデコーディング以外のデコーダ技術も、対応するエンコーダにおいて、実質的に同一の機能形式で必ず存在する必要があるということである。このため、開示された主題は、デコーダ動作に焦点を合わせている。エンコーダ技術の説明は、それらが包括的に説明されたデコーダ技術の逆であるので、省略され得る。一定の領域においてのみ、より詳細な説明が必要とされ、以下に提供される。
【0062】
動作中、いくつかの例では、ソースコーダ(530)は、「参照ピクチャ」として指定されたビデオシーケンスからの1つまたは複数の以前にコーディングされたピクチャを参照して入力ピクチャを予測的にコーディングする動き補償予測コーディングを実行し得る。このようにして、コーディングエンジン(532)は、入力ピクチャの画素ブロックと、入力ピクチャに対する予測参照(複数可)として選択され得る参照ピクチャ(複数可)の画素ブロックとの間の差分をコーディングする。
【0063】
ローカルビデオデコーダ(533)は、ソースコーダ(530)によって生成されたシンボルに基づいて、参照ピクチャとして指定され得るピクチャのコーディングされたビデオデータをデコードし得る。コーディングエンジン(532)の動作は、有利には非可逆プロセスであり得る。コーディングされたビデオデータが、ビデオデコーダ(図5では図示せず)でデコードされ得る場合、再構成されたビデオシーケンスは、通常、いくつかのエラーを有するソースビデオシーケンスの複製であり得る。ローカルビデオデコーダ(533)は、ビデオデコーダによって参照ピクチャに対して実行され得るデコード処理を複製し、再構成された参照ピクチャを参照ピクチャキャッシュ(534)に格納させることができる。このようにして、ビデオエンコーダ(503)は、(送信エラーがないとき)遠端ビデオデコーダによって取得されることになる再構成された参照ピクチャとして共通のコンテンツを有する再構成された参照ピクチャのコピーをローカルに格納することができる。
【0064】
予測器(535)は、コーディングエンジン(532)について予測探索を実行し得る。すなわち、コーディングされるべき新しいピクチャについて、(候補参照画素ブロックとしての)サンプルデータ、または、新しいピクチャの適切な予測参照として機能し得る参照ピクチャのMV、ブロック形状などの一定のメタデータを求めて、予測器(535)が、参照ピクチャメモリ(534)を探索し得る。予測器(535)は、適切な予測参照を見つけるために、画素ブロックごとのサンプルブロックを基本として動作し得る。場合によっては、予測器(535)によって取得された探索結果によって決定されるように、入力ピクチャは、参照ピクチャメモリ(534)に格納された複数の参照ピクチャから描画された予測参照を有してもよい。
【0065】
コントローラ(550)は、例えば、ビデオデータをエンコードするために使用されるパラメータおよびサブグループパラメータの設定を含む、ソースコーダ(530)のコーディング動作を管理し得る。
【0066】
前述のすべての機能ユニットの出力は、エントロピーコーダ(545)においてエントロピーコーディングを受けることができる。エントロピーコーダ(545)は、ハフマン符号化、可変長符号化、算術符号化などの技術に従ってシンボルを可逆圧縮することによって、様々な機能ユニットによって生成されたシンボルをコーディングされたビデオシーケンスに変換する。
【0067】
送信器(540)は、エントロピーコーダ(545)によって生成されたコーディングされたビデオシーケンス(複数可)をバッファリングして、通信チャネル(560)を介した送信の準備をすることができ、これは、エンコードされたビデオデータを格納する記憶デバイスへのハードウェア/ソフトウェアリンクであり得る。送信器(540)は、ビデオコーダ(503)からのコーディングされたビデオデータを、送信される他のデータ、例えば、コーディングされたオーディオデータおよび/または補助データストリーム(ソースは図示せず)とマージすることができる。
【0068】
コントローラ(550)は、ビデオエンコーダ(503)の動作を管理し得る。コーディング中、コントローラ(550)は、各コーディングされたピクチャに一定のコーディングされたピクチャタイプを割り当てることができ、これは、それぞれのピクチャに適用され得るコーディング技術に影響を及ぼし得る。例えば、ピクチャは、しばしば以下のピクチャタイプのうちの1つとして割り当てられる。
【0069】
イントラピクチャ(Iピクチャ)は、シーケンス内の他のピクチャを予測ソースとして使用せずにコーディングおよびデコーディングされ得るものであってもよい。いくつかのビデオコーデックは、例えば、独立デコーダリフレッシュ(「IDR」)ピクチャを含む異なるタイプのイントラピクチャを可能にする。当業者は、Iピクチャのこれらの変形ならびにそれらのそれぞれの用途および特徴を認識している。
【0070】
予測ピクチャ(Pピクチャ)は、各ブロックのサンプル値を予測するために、最大で1つのMVおよび参照インデックスを使用するイントラ予測またはインター予測を使用して、コーディングおよびデコーディングされ得るピクチャであり得る。
【0071】
双方向予測ピクチャ(Bピクチャ)は、各ブロックのサンプル値を予測するために、最大で2つのMVおよび参照インデックスを使用するイントラ予測またはインター予測を使用して、コーディングおよびデコーディングされ得るピクチャであり得る。同様に、複数の予測ピクチャは、単一ブロックの再構成のために3つ以上の参照ピクチャおよび関連するメタデータを使用することができる。
【0072】
ソースピクチャは、一般に、複数のサンプルブロック(例えば、各々、4x4、8x8、4x8、または16x16サンプルのブロック)に空間的に細分され、ブロックごとにコーディングされ得る。ブロックは、ブロックのそれぞれのピクチャに適用されるコーディング割当によって決定されるように、他の(既にコーディングされた)ブロックを参照して、予測的にコーディングされ得る。例えば、Iピクチャのブロックは、非予測的にコーディングされ得るか、または同じピクチャの既にコーディングされたブロックを参照して予測的にコーディングされ得る(空間予測またはイントラ予測)。Pピクチャの画素ブロックは、以前にコーディングされた1つの参照ピクチャを参照して、空間予測を介して、または時間予測を介して、予測的にコーディングされ得る。Bピクチャのブロックは、1つまたは2つの以前にコーディングされた参照ピクチャを参照して、空間予測を介して、または時間予測を介して、予測的にコーディングされ得る。
【0073】
ビデオエンコーダ(503)は、例えばITU-T Rec.H.265などの所定のビデオコーディング技術または規格に従ってコーディング動作を実行し得る。その動作において、ビデオエンコーダ(503)は、入力ビデオシーケンス内の時間的および空間的冗長性を利用する予測コーディング動作を含む、様々な圧縮動作を実行し得る。したがって、コーディングされたビデオデータは、使用されているビデオコーディング技術または規格によって指定されたシンタックスに準拠し得る。
【0074】
一実施形態では、送信器(540)は、エンコードされたビデオと共に追加のデータを送信し得る。ソースコーダ(530)は、コーディングされたビデオシーケンスの一部としてそのようなデータを含み得る。追加のデータは、時間/空間/SNR エンハンスメントレイヤ、冗長ピクチャおよびスライスなどの他の形態の冗長データ、SEIメッセージ、VUIパラメータセット断片などを含み得る。
【0075】
ビデオは、複数のソースピクチャ(ビデオピクチャ)として時系列に取り込まれてもよい。ピクチャ内予測(イントラ予測と略されることが多い)は、所与のピクチャにおける空間相関を利用し、ピクチャ間予測は、ピクチャ間の(時間的または他の)相関を利用する。一例では、現在ピクチャと呼ばれる、エンコーディング/デコーディング中の一定のピクチャがブロックにパーティション化される。現在ピクチャ内のブロックがビデオ内の以前にコーディングされてまだバッファリングされている参照ピクチャ内の参照ブロックに類似している場合、現在ピクチャ内のブロックは、MVと呼ばれるベクトルによってコーディングされ得る。MVは、参照ピクチャ内の参照ブロックを指し、複数の参照ピクチャが使用されている場合、参照ピクチャを識別する3次元を有することができる。
【0076】
いくつかの実施形態では、ピクチャ間予測に双予測技術を使用することができる。双予測技術によれば、第1の参照ピクチャおよび第2の参照ピクチャなどの2つの参照ピクチャが使用され、これらは両方ともビデオ内の現在ピクチャのデコード順より前にある(ただし、表示順序は、それぞれ過去および未来のものであってもよい)。現在ピクチャ内のブロックは、第1の参照ピクチャ内の第1の参照ブロックを指す第1のMV、および第2の参照ピクチャ内の第2の参照ブロックを指す第2のMVによってコーディングされ得る。ブロックは、第1の参照ブロックと第2の参照ブロックとの組み合わせによって予測され得る。
【0077】
さらに、コーディング効率を改善するために、ピクチャ間予測にマージモード技術を使用することができる。
【0078】
本開示のいくつかの実施形態によれば、ピクチャ間予測およびピクチャ内予測などの予測は、ブロック単位で実行される。例えば、HEVC規格によれば、ビデオピクチャのシーケンス内のピクチャは、圧縮のためにコーディングツリーユニット(CTU)にパーティション化され、ピクチャ内のCTUは、64x64画素、32x32画素、または16x16画素などの同じサイズを有する。一般に、CTUは、1つのルマCTBおよび2つのクロマCTBである3つのコーディングツリーブロック(CTB)を含む。各CTUは、1つまたは複数のコーディングユニット(CU)に、再帰的に四分木分割され得る。例えば、64x64画素のCTUを、64x64画素の1つのCU、または32x32画素の4つのCU、または16x16画素の16個のCUに分割できる。一例では、各CUは、インター予測タイプまたはイントラ予測タイプなどのCUの予測タイプを決定するために分析される。CUは、時間的および/または空間的な予測可能性に応じて、1つまたは複数の予測ユニット(PU)に分割される。一般に、各PUは、ルマ予測ブロック(PB)と、2つのクロマPBsとを含む。一実施形態では、コーディング(エンコーディング/デコーディング)における予測演算は、予測ブロックの単位で実行される。予測ブロックの例としてルマ予測ブロックを使用すると、予測ブロックは、8x8画素、16x16画素、8x16画素、16x8画素などの画素の値(例えば、ルマ値)の行列を含む。
【0079】
図6は、本開示の他の実施形態によるビデオエンコーダ(603)の図を示している。ビデオエンコーダ(603)は、ビデオピクチャのシーケンス内の現在ビデオピクチャ内のサンプル値の処理ブロック(例えば、予測ブロック)を受信し、処理ブロックを、コーディングされたビデオシーケンスの一部であるコーディングされたピクチャへとエンコードするように構成される。一例では、ビデオエンコーダ(603)は、図3の例のビデオエンコーダ(303)の代わりに使用される。
【0080】
HEVCの例では、ビデオエンコーダ(603)は、例えば8x8サンプルの予測ブロックなどの処理ブロックのためのサンプル値の行列を受信する。ビデオエンコーダ(603)は、イントラモード、インターモード、または双予測モードを使用して、例えば、レート歪み最適化を使用して、処理ブロックが最良にコーディングされるかどうかを判定する。処理ブロックがイントラモードでコーディングされる場合、ビデオエンコーダ(603)は、処理ブロックをコーディングされたピクチャへとエンコードするために、イントラ予測技術を使用し得、そして、処理ブロックがインターモードまたは双予測モードでコーディングされる場合、ビデオエンコーダ(603)は、処理ブロックをコーディングされたピクチャへとエンコードするために、インター予測技術または双予測技術をそれぞれ使用し得る。一定のビデオコーディング技術では、マージモードは、インターピクチャ予測サブモードであり得、そこでは、予測子の外側のコーディングされたMV成分の恩恵を受けずに、MVが1つまたは複数のMV予測子から導出される。一定の他のビデオコーディング技術では、対象ブロックに適用可能なMV成分が存在し得る。一例では、ビデオエンコーダ(603)は、処理ブロックのモードを決定するためのモード決定モジュール(図示せず)などの他の構成要素を含む。
【0081】
図6の例では、ビデオエンコーダ(603)は、図6に示すように互いに結合されたインターエンコーダ(630)、イントラエンコーダ(622)、残差計算器(623)、スイッチ(626)、残差エンコーダ(624)、汎用コントローラ(621)、およびエントロピーエンコーダ(625)を含む。
【0082】
インターエンコーダ(630)は、現在ブロック(例えば、処理ブロック)のサンプルを受信し、そのブロックを参照ピクチャ(例えば、前のピクチャおよび後のピクチャ内のブロック)内の1つまたは複数の参照ブロックと比較し、インター予測情報(例えば、インターエンコーディング技術、MV、マージモード情報による冗長情報の記述)を生成し、任意の適切な技術を使用してインター予測情報に基づいてインター予測結果(例えば、予測ブロック)を計算するように構成される。いくつかの例では、参照ピクチャは、エンコードされたビデオ情報に基づいてデコードされるデコード参照ピクチャである。
【0083】
イントラエンコーダ(622)は、現在ブロック(例えば、処理ブロック)のサンプルを受信し、場合によっては、ブロックを同じピクチャ内で既にコーディングされているブロックと比較し、変換後に量子化係数を生成し、場合によってはイントラ予測情報(例えば、1つまたは複数のイントラエンコーディング技術によるイントラ予測方向情報)も生成するように構成される。一例では、イントラエンコーダ(622)は、イントラ予測情報と、同一ピクチャ内の参照ブロックとに基づいて、イントラ予測結果(例えば、予測ブロック)を算出する。
【0084】
汎用コントローラ(621)は、汎用制御データを決定し、汎用制御データに基づいてビデオエンコーダ(603)の他の構成要素を制御するように構成される。一例では、汎用コントローラ(621)は、ブロックのモードを決定し、モードに基づいてスイッチ(626)に制御信号を提供する。例えば、モードがイントラモードである場合、汎用コントローラ(621)は、残差計算器(623)が用いるイントラモード結果を選択するようにスイッチ(626)を制御し、イントラ予測情報を選択してイントラ予測情報をビットストリームに含めるようにエントロピーエンコーダ(625)を制御し;モードがインターモードである場合、汎用コントローラ(621)は、残差計算器(623)が用いるインター予測結果を選択するようにスイッチ(626)を制御し、インター予測情報を選択してインター予測情報をビットストリームに含めるようにエントロピーエンコーダ(625)を制御する。
【0085】
残差計算器(623)は、受信されたブロックと、イントラエンコーダ(622)またはインターエンコーダ(630)から選択された予測結果との差分(残差データ)を算出するように構成される。残差エンコーダ(624)は、残差データをエンコードするために残差データに基づいて動作し、変換係数を生成するように構成される。一例では、残差エンコーダ(624)は、残差データを空間領域から周波数領域に変換し、変換係数を生成するように構成される。変換係数はその後、量子化された変換係数を得るために量子化処理を受ける。様々な実施形態において、ビデオエンコーダ(603)はまた、残差デコーダ(628)を含む。残差デコーダ(628)は、逆変換を実行し、デコードされた残差データを生成するように構成される。イントラエンコーダ(622)およびインターエンコーダ(630)が、デコードされた残差データを好適に用いることができる。例えば、インターエンコーダ(630)は、デコードされた残差データとインター予測情報とに基づいてデコードされたブロックを生成することができ、イントラエンコーダ(622)は、デコードされた残差データとイントラ予測情報とに基づいてデコードされたブロックを生成することができる。いくつかの例では、デコードされたブロックは、デコードされたピクチャを生成するために適切に処理され、デコードされたピクチャは、メモリ回路(図示せず)にバッファリングされ、参照ピクチャとして使用され得る。
【0086】
エントロピーエンコーダ(625)は、エンコードされたブロックを含むようにビットストリームをフォーマットするように構成される。エントロピーエンコーダ(625)は、HEVCなどの適切な規格に従って様々な情報を含むように構成される。一例では、エントロピーエンコーダ(625)は、汎用制御データ、選択された予測情報(例えば、イントラ予測情報またはインター予測情報)、残差情報、および他の適切な情報をビットストリームに含めるように構成される。開示された主題によれば、インターモードまたは双予測モードのいずれかのマージサブモードでブロックをコーディングするとき、残差情報は存在しないことに留意されたい。
【0087】
図7は、本開示の他の実施形態によるビデオデコーダ(710)の図を示している。ビデオデコーダ(710)は、コーディングされたビデオシーケンスの一部であるコーディングされたピクチャを受信し、再構成されたピクチャを生成するためにコーディングされたピクチャをデコードするように構成される。一例では、ビデオデコーダ(710)は、図3の例のビデオデコーダ(310)の代わりに使用される。
【0088】
図7の例では、ビデオデコーダ(710)は、図7に示すように互いに結合されたエントロピーデコーダ(771)、インターデコーダ(780)、残差デコーダ(773)、再構成モジュール(774)、およびイントラデコーダ(772)を含む。
【0089】
エントロピーデコーダ(771)は、コーディングされたピクチャから、コーディングされたピクチャが構成されるシンタックス要素を表す一定のシンボルを再構成するように構成され得る。そのようなシンボルは、例えば、ブロックがコーディングされるモード(例えば、イントラモード、インターモード、双予測モード、後者の2つはマージサブモードまたは別のサブモードである)、イントラデコーダ(772)またはインターデコーダ(780)によって、それぞれ予測に使用される一定のサンプルまたはメタデータを識別することができる予測情報(例えば、イントラ予測情報またはインター予測情報)、例えば量子化変換係数の形の残差情報など、を含むことができる。一例では、予測モードが、インター予測モードまたは双予測モードである場合、インター予測情報が、インターデコーダ(780)に提供され、予測タイプがイントラ予測タイプである場合、イントラ予測情報が、イントラデコーダ(772)に提供される。残差情報は逆量子化を受けることができ、残差デコーダ(773)に提供される。
【0090】
インターデコーダ(780)は、インター予測情報を受信し、インター予測情報に基づいてインター予測結果を生成するように構成される。
【0091】
イントラデコーダ(772)は、イントラ予測情報を受信し、イントラ予測情報に基づいて予測結果を生成するように構成される。
【0092】
残差デコーダ(773)は、逆量子化を実行して逆量子化された変換係数を抽出し、逆量子化された変換係数を処理して残差を周波数領域から空間領域に変換するように構成される。残差デコーダ(773)はまた、(量子化器パラメータ(QP)を含むために)一定の制御情報を必要とする場合があり、その情報はエントロピーデコーダ(771)によって提供される場合がある(これは低ボリューム制御情報のみであり得るためデータ経路は図示されていない)。
【0093】
再構成モジュール(774)は、空間領域において、残差デコーダ(773)による出力としての残差と(場合によってはインターまたはイントラ予測モジュールによる出力としての)予測結果とを組み合わせて、再構成されたピクチャの一部であり得る再構成されたブロックを形成するように構成され、再構成されたブロックは再構成されたビデオの一部であり得る。視覚的品質を改善するために、デブロッキング動作などの他の適切な動作を実行できることに留意されたい。
【0094】
ビデオエンコーダ(303)、(503)、および(603)、ならびにビデオデコーダ(310)、(410)、および(710)は、任意の好適な技術を使用して実装され得ることに留意されたい。一実施形態では、ビデオエンコーダ(303)、(503)、および(603)、ならびにビデオデコーダ(310)、(410)、および(710)は、1つまたは複数の集積回路を使用して実装され得る。他の実施形態では、ビデオエンコーダ(303)、(503)、および(603)、ならびにビデオデコーダ(310)、(410)、および(710)は、ソフトウェア命令を実行する1つまたは複数のプロセッサを使用して実装され得る。
【0095】
II.ブロックパーティション
図8は、本開示のいくつかの実施形態による例示的なブロックパーティションを示している。一実施形態では、図8の例示的なブロックパーティションは、Alliance for Open Media(AOMedia)によって提案されているVP9において使用され得る。図8に示すように、4方向パーティションツリーを使用することができ、これは、8x8のブロックに対していくつかの追加の制限を伴って64x64レベルから開始して4x4レベルまである。なお、Rとして指定されたパーティションは、再帰パーティションと呼ぶことができる。すなわち、同じパーティションツリーが、最も低い4×4レベルに達するまでより低いスケールで繰り返される。
【0096】
図9は、本開示のいくつかの実施形態による例示的なブロックパーティションを示している。一実施形態では、図9の例示的なブロックパーティションは、AOMediaによって提案されているAV1において使用され得る。図9に示すように、パーティションツリーを10ウェイ構造に拡張することができ、最大のコーディングブロックサイズ(VP9/AV1用語ではスーパーブロックと呼ばれる)は128x128から始まるように増加される。図9の1行目の4:1/1:4の長方形のパーティションはVP9には存在しないことに留意されたい。図9の2行目の3つのサブパーティションを有するパーティションタイプは、T型パーティションと呼ばれる。長方形のパーティションのいずれもさらに細分することはできない。コーディングブロックサイズに加えて、コーディングツリー深度は、ルートノードからの分割深度を示すように定義される。一実施形態では、ルートノードのコーディングツリー深度、例えば128x128は0に設定され得る。コーディングブロックがさらに1回分割された後、コーディングツリー深度は1だけ増加する。
【0097】
VP9において固定された変換ユニットサイズを使用するように強制される代わりに、AV1におけるルマ・コーディング・ブロックは、最大2つのレベルだけ下がる再帰的パーティションによって表すことができる複数のサイズの変換ユニットにパーティション化されることが可能にされる。AV1に拡張されたコーディング・ブロック・パーティションを組み込むために、正方形、2:1/1:2、および4:1/1:4変換サイズが4x4から64x64までサポートされる。クロマ・コーディング・ブロックの場合、可能な最大の変換ユニットのみが許容される。
【0098】
HEVCなどのいくつかの関連する例では、CTUは、様々なローカル特性に適応するためにコーディングツリーとして示される四分木構造を使用することによってCUに分割され得る。ピクチャ間(時間的)またはピクチャ内(空間的)予測を使用してピクチャ領域をコーディングするかどうかの決定は、CUレベルで行われ得る。各CUは、PU分割タイプに応じて、1つ、2つ、または4つのPUにさらに分割され得る。1つのPU内で、同じ予測プロセスが適用され得、関連情報がPUベースでデコーダに送信され得る。PU分割タイプに基づいて予測プロセスを適用することによって残差ブロックを取得した後、CUは、CUのコーディングツリーのような別の四分木構造に従ってTUにパーティション化され得る。HEVC構造の1つの重要な特徴は、CU、PU、およびTUを含む複数のパーティションの概念を有することである。HEVCでは、CUまたはTUは正方形形状のみとすることができ、PUはインター予測ブロックの正方形または長方形形状とすることができる。HEVCでは、1つのコーディングブロックを4つの正方形サブブロックにさらに分割することができ、各サブブロック、すなわちTUに対して変換プロセスを実行することができる。各TUを、より小さいTUに(例えば、四分木分割を使用して)さらに再帰的に分割することができる。四分木分割は、残差四分木(RQT)と呼ぶことができる。
【0099】
ピクチャ境界では、HEVCは暗黙的な四分木分割を採用し、ブロックのサイズがピクチャ境界に適合するまでブロックが四分木分割を実行し続けることができる。
【0100】
VVCなどのいくつかの関連する例では、バイナリおよびターナリセグメント化構造を使用するネストされたマルチタイプツリーを有する四分木は、複数のパーティションユニットタイプの概念を置き換えることができる。すなわち、最大変換長に対して大きすぎるサイズを有するCUのために必要とされる場合を除き、CU、PU、およびTU概念を分けることが取り除かれる。したがって、これらの例では、CUパーティション形状のより高い柔軟性をサポートすることができる。VVCのコーディングツリー構造では、CUは正方形または長方形のいずれかの形状を有することができる。CTUは、まず4進木(または四分木)構造によってパーティション化され得る。次いで、4進木リーフノードは、マルチタイプツリー構造によってさらにパーティション化され得る。
【0101】
図10は、本開示のいくつかの実施形態による、マルチタイプツリー分割モードのための例示的なブロックパーティションを示している。一実施形態では、図10の例示的なブロックパーティションをVVCで使用することができる。図10に示すように、マルチタイプツリー構造には、垂直バイナリ分割(SPLIT_BT_VER)、水平バイナリ分割(SPLIT_BT_HOR)、垂直ターナリ分割(SPLIT_TT_VER)、および水平ターナリ分割(SPLIT_TT_HOR)の4つの分割タイプがある。マルチタイプツリーのリーフノードは、CUと呼ばれる。CUが最大変換長に対して大きすぎない限り、マルチタイプツリー構造は、さらなるパーティション化なしで予測プロセスおよび変換プロセスに使用される。これは、ほとんどの場合、CU、PU、およびTUが、ネストされたマルチタイプツリーコーディングブロック構造を有する四分木において同じブロックサイズを有することができることを意味する。1つの例外は、最大サポート変換長がCUの色成分の幅または高さよりも小さい場合に発生する。
【0102】
図11は、本開示の一実施形態による、ネストされたマルチタイプツリーコーディングブロック構造を有する例示的な四分木を示している。
【0103】
VVCなどのいくつかの関連する例では、最大サポートルマ変換サイズは64×64であり、最大サポートクロマ変換サイズは32×32である。CBの幅または高さが最大変換幅または高さよりも大きい場合、CBは、水平方向および/または垂直方向に沿って自動的に分割され、その方向の変換サイズの制限を満たすことができる。
【0104】
VTM7などのいくつかの関連する例では、コーディングツリー方式は、別々のブロックツリー構造を有するように1つのCTU内のルマCTBおよびクロマCTBをサポートすることができる。例えば、PスライスとBスライスの場合、1つのCTU内のルマCTBとクロマCTBが同じコーディングツリー構造を共有する。しかしながら、Iスライスの場合、1つのCTU内のルマCTBおよびクロマCTBは、別個のブロックツリー構造を有することができる。別個のブロックツリーモードが適用される場合、ルマCTBは1つのコーディングツリー構造によってCUにパーティション化され、クロマCTBは他のコーディングツリー構造によってクロマCUにパーティション化される。これは、Iスライス内のCUがルマ成分のコーディングブロックまたは2つのクロマ成分のコーディングブロックを含んでもよく、PまたはBスライス内のCUは、ビデオがモノクロでない限り、常に3つすべての色成分のコーディングブロックを含むことを意味する。
【0105】
III.イントラ予測
VP9などのいくつかの関連する例では、45度~207度の角度に対応する8つの指向性モードがサポートされる。指向性テクスチャにおけるより多様な空間的冗長性を活用するために、AV1などのいくつかの関連する例では、指向性イントラモードは、より細かい粒度で設定された角度に拡張される。元の8つの角度はわずかに変更され、公称角度と呼ばれ、これらの8つの公称角度は、V_PRED、H_PRED、D45_PRED、D135_PRED、D113_PRED、D157_PRED、D203_PRED、およびD67_PREDと称される。
【0106】
図12は、本開示の一実施形態による例示的な公称角度を示している。各公称角度は、より細かい7つの角度に関連付けることができるため、AV1などの合計56個の指向角があり得る。予測角度は、公称イントラ角度に角度デルタを加えたもので表され、これは3度のステップサイズの-3~3倍である。一般的な方法でAV1の指向性予測モードを実施するために、AV1の56個の指向性イントラ予測角度のすべては、各画素を基準サブ画素位置に投影し、2タップのバイリニアフィルタによって基準サブ画素を補間する統一された指向性予測子で実施され得る。
【0107】
AV1などのいくつかの関連する例では、DC、PAETH、SMOOTH、SMOOTH_V、およびSMOOTH_Hである5つの無指向性平滑イントラ予測モードがある。DC予測のために、左および上方の隣接サンプルの平均が、予測されるべきブロックの予測子として使用される。PAETH予測では、最初に上、左、および左上の参照サンプルがフェッチされ、次に(上+左-左上)に最も近い値が予測対象の画素の予測子として設定される。
【0108】
図13は、本開示の一実施形態による、現在ブロック内の1つの画素の上、左、および左上サンプルの位置を示している。SMOOTH、SMOOTH_V、およびSMOOTH_Hモードの場合、ブロックは、垂直方向または水平方向の二次補間、または両方向の平均を使用して予測される。
【0109】
クロマ成分の場合、56個の指向性モードおよび5個の無指向性モードの他に、ルマからのクロマ(CfL)モードと呼ぶことができるクロマのみのイントラ予測モードが、クロマ画素を、一致する再構成されたルマ画素の線形関数としてモデル化する。CfL予測は、以下のように表すことができる:
CfL(α)=α×LAC+DC 式(1)
ここで、LACはルマ成分のAC寄与を表し、αは線形モデルのパラメータを表し、DCはクロマ成分のDC寄与を表す。一例では、再構成されたルマ画素がクロマ分解能にサブサンプルされ、次いで平均値が差し引かれてAC寄与が形成される。AC寄与からクロマAC成分を近似するために、いくつかの関連する例のようにスケーリングパラメータを計算するためにデコーダを必要とする代わりに、AC1のCfLモードは、元のクロマ画素に基づいてパラメータαを決定し、それらをビットストリームでシグナリングする。これにより、デコーダの複雑さが低減され、より正確な予測が得られる。クロマ成分のDC寄与に関して、それは、ほとんどのクロマコンテンツに十分であり、成熟した高速実装を有するイントラDCモードを使用して計算される。
【0110】
クロマイントラ予測モードのシグナリングのために、8つの公称指向性モード、5つの無指向性モード、およびCfLモードが最初にシグナリングされる。これらのモードをシグナリングするためのコンテキストは、現在ブロックの左上位置の対応するルマモードに依存する。次に、現在のクロマモードが指向性モードである場合、公称角度に対するデルタ角度を示すために1つの追加のフラグがシグナリングされる。
【0111】
スクリーンコンテンツビデオ符号化は、デスクトップ共有、ビデオ会議、および遠隔教育などの様々なアプリケーションにおいてますます重要になってきている。一般に、自然なカメラ撮影コンテンツと比較して、スクリーンコンテンツは、鋭いエッジなどの異なる特性を有する。上述した指向性イントラ予測モードなどの従来の指向性イントラ予測モードでは、小数サンプル位置で予測サンプル値を生成するために補間演算(例えば、2タップのバイリニア補間、4タップのキュービック補間)が必要である。補間演算は、鋭いエッジを必然的に平滑化し、エンコードに費用がかかる残差ブロックに高周波数を生成する。
【0112】
イントラ予測において鋭いエッジを保存するために、補間演算を適用する代わりに、最近傍(NN)補間方法を適用することができる。2つの選択肢を以下に記載する。暗黙的な画素ベースの方法である第1の代替形態では、エンコーダとデコーダの両方が、予測画素に基づいてNN補間を実行するかどうかを決定することができる。第2の代替形態では、エンコーダは、ブロックレベルでレート歪み探索を実行し、NN補間をいつ使用するかを示すためにデコーダにフラグを明示的にシグナリングする。
【0113】
図14は、本開示の一実施形態による、小数位置における予測サンプルを導出するための例示的なバイリニア補間を示している。NN補間は、基本的に、複数の参照サンプルの加重和を使用する代わりに、予測方向に沿って参照サンプルのうちの1つを選択する。例えば、図14では、バイリニア補間フィルタを使用して、2つの参照サンプルAおよびBを使用してサンプルCの予測値を導出する。バイリニア補間では、予測サンプル値は(A*b+B*a)/(a+b)として計算される。NN補間により、予測サンプル値は、(a>b)?B:Aとして導出される。
【0114】
図15は、本開示の一実施形態による、コーディングブロックユニットに隣接する4つの参照ラインを使用する例示的なマルチラインイントラ予測を示している。マルチラインイントラ予測のために、エンコーダは、イントラ予測子を生成するためにどの参照ラインが使用されるかを決定してシグナリングする。参照ラインインデックスが、イントラ予測モードの前にシグナリングされ、非ゼロの参照ラインインデックスがシグナリングされた場合、最確モードのみが許容される。図15に、4つの参照ラインの例が示されており、各々の参照ラインは、6つのセグメント、すなわちセグメントA~Fと、左上の参照サンプルとで構成される。さらに、セグメントAおよびFは、それぞれセグメントBおよびEからの最も近いサンプルでパディングされる。
【0115】
IV.補間無し指向性イントラ予測
AV1などのいくつかの関連する例では、各指向性公称モードに対して複数のデルタ角度(例えば、7)があり、すべてのデルタ角度は、隣接する公称モードの方向に関係なくシグナリングされ解析されるが、これは最適ではない。
【0116】
本開示は、補間無し指向性イントラ予測の方法を含む。
【0117】
本開示では、1つの指向性イントラ予測モードが別の指向性イントラ予測モードに近い場合、これは、これら2つのモード間の予測角度の絶対差が所与の閾値T内にあることを意味する。一例では、Tは1または2に設定される。
【0118】
図16は、本開示の一実施形態によるイントラ予測方向の例示的な角度を示している。図16では、αは予測角度であり、実線矢印は予測方向を示し、予測角度のタンジェント値はtan(α)=y/xである。
【0119】
本開示の態様によれば、予測されるべき現在ブロックの各サンプルについて、複数のイントラ予測方向のうちの1つが与えられると、複数の参照ラインのうちの1つからの1つのサンプルが予測サンプルとして選択され、選択された予測サンプルは、複数の参照ラインのうちの1つにおける整数サンプル位置に位置する。
【0120】
一実施形態では、複数の参照ラインの数は閾値未満である。例えば、現在ブロックのイントラ予測には、最大N本の参照ラインが使用される。Nの値の例には、2、3、4、5、6、7、および8が含まれるが、これらに限定されない。
【0121】
一実施形態では、複数のイントラ予測方向に関連する予測角度のタンジェント値は±Nまたは±1/Nを含み、Nは整数であり、Nの値の例は1、2、3、4、5、6、7、および8である。
【0122】
本開示のいくつかの実施形態によれば、参照ラインインデックスm(mは、図15に示すように、0、1、2、...およびN-1であり得る)を有する複数の参照ラインのうちの1つについて、インデックスmを有する参照ライン内の参照サンプルは、複数のイントラ予測方向のサブセットでのみ使用され得る。いくつかの実施形態では、1つまたは複数の参照ラインは、複数のイントラ予測方向のサブセットと共にのみ使用され得る。異なる実施形態では、1つまたは複数の参照ラインに対する複数のイントラ予測方向のサブセットは、異なっていてもよく、重なっていてもよく、または同じであってもよい。複数のイントラ予測方向のサブセットに関連付けられた予測角度のタンジェント値は、±(m+1)および±1/(m+1)である。
【0123】
図17は、本開示のいくつかの実施形態による例示的な予測角度を示している。
【0124】
いくつかの実施形態では、異なる参照ラインを異なるイントラ予測方向に関連付けることができる。例えば、実線は、イントラ予測を実行するために図15の参照ライン0と共に使用されるイントラ予測方向を示すことができる。実線は、3つの対角線方向(タンジェント値は±1)、水平方向(タンジェント値は0)、および垂直方向(タンジェント値は∞)を含む。破線は、イントラ予測を実行するために図15の参照ライン1と共に使用されるイントラ予測方向を示すことができる。破線は、4つの予測方向(タンジェント値は±1/2および±2)を含む。点線は、イントラ予測を実行するために図15の参照ライン2と共に使用されるイントラ予測方向を示すことができる。点線は、4つの予測方向(タンジェント値は±1/3および±3)を含む。破線および点線は、イントラ予測を実行するために図15の参照ライン3と共に使用されるイントラ予測方向を示すことができる。破線および点線は、4つの予測方向(タンジェント値は±1/4および±4)を含む。
【0125】
いくつかの実施形態では、異なる参照ラインを異なるイントラ予測方向のサブセットに関連付けることができる。一定の参照ラインに関連付けられた異なるイントラ予測方向のサブセットは、同じイントラ予測方向を共有することなどによって重複することができる。例えば、実線は、イントラ予測を実行するために参照ライン0と共に使用されるイントラ予測方向を示すことができる。実線は、3つの対角線方向(タンジェント値は±1)、水平方向(タンジェント値は0)、および垂直方向(タンジェント値は∞)を含む。破線は、イントラ予測を実行するために参照ライン0および/または1と共に使用されるイントラ予測方向を示すことができる。破線は、4つの予測方向(タンジェント値は±1/2および±2)を含む。点線は、イントラ予測を実行するために参照ライン0、1、および/または2と共に使用されるイントラ予測方向を示すことができる。点線は、4つの予測方向(タンジェント値は±1/3および±3)を含む。破線および点線は、イントラ予測を実行するために参照ライン0、1、2、および/または3と共に使用されるイントラ予測方向を示すことができる。破線および点線は、4つの予測方向(タンジェント値は±1/4および±4)を含む。
【0126】
一実施形態では、参照ラインインデックスm(mは、図15に示すように、0、1、2、...およびN-1であり得る)を有する複数の参照ラインのうちの1つについて、インデックスmを有する参照ライン内の参照サンプルは、複数のイントラ予測方向のサブセットでのみ使用され得る。複数のイントラ予測方向のサブセットに関連付けられた予測角度のタンジェント値は、±(m+1)および±1/(m+1)である。予測角度のうちの1つが所与の参照ラインインデックス内の小数サンプル位置を指すとき、最も近い整数位置のサンプルを参照サンプルとして使用することができる。
【0127】
本開示の態様によれば、所与のイントラ予測角度でイントラ予測を実行する場合、現在ブロックの画素の異なる行の予測サンプルは、現在ブロックの異なる参照ラインからのものであり得る。例えば、イントラ予測にどの参照ラインが使用されるかは、現在ブロックの画素の1つまたは複数の行で異なり得る。
【0128】
いくつかの実施形態では、イントラ予測を実行するとき、タンジェント値が±mまたは±1/mである予測角度の場合、n行目の画素の予測サンプルは、ラインインデックスが(m-1)-(n%m)である参照ラインからのものであり得、%はモジュロ演算である。
【0129】
図18は、本開示の一実施形態による、2つの参照ラインを使用する例示的なイントラ予測を示している。図18では、黒丸は参照(または予測)サンプルを示し、破線の円は、予測されるサンプルを示し、実線は予測方向を示す。予測されるサンプルのn行目の予測サンプルは、ラインインデックスが(m-1)-(n%m)である参照ラインからのものであり得る。この例では、m=2である。したがって、偶数行(行0、2、4、...)の予測サンプルは参照ライン1からのものであり、奇数行(行1、3、5、...)の予測サンプルは参照ライン0からのものである。
【0130】
図19は、本開示の一実施形態による、3つの参照ラインを使用する例示的なイントラ予測を示している。図19では、黒丸は参照(または予測)サンプルを示し、破線の円は、予測されるサンプルを示し、実線は予測方向を示す。予測されるサンプルのn行目の予測サンプルは、ラインインデックスが(m-1)-(n%m)である参照ラインからのものであり得る。この例では、m=3である。したがって、第1の複数の行(行0、3、6、...)の予測サンプルは参照ライン2からのものであり、第2の複数の行(行1、4、7、...)の予測サンプルは参照ライン1からのものであり、第3の複数の行(行2、5、8、...)の予測サンプルは参照ライン0からのものである。
【0131】
本開示の態様によれば、上述したイントラ予測モードは、補間無しイントラ予測モードと呼ばれ、イントラ予測を実行するための従来のイントラ予測モードの代替方法としてシグナリングされ得る。補間無しイントラ予測モードと従来のイントラ予測モードのどちらを利用するかを決定することができる。例えば、従来のイントラ予測モード(例えば、モードセット#0、補間有り)と、上述したイントラ予測モード(例えば、モードセット#1、補間無し指向性モード)のいずれが適用されるかを示すために、ブロックに対して1つのフラグをシグナリングすることができる。
【0132】
一実施形態では、モードセット#0(補間有り)およびモードセット#1(補間無し)に対して異なるイントラ予測モード方式を適用することができる。
【0133】
一実施形態では、モードセット#1の予測角度は、モードセット#0の予測角度のサブセットである。
【0134】
一実施形態では、垂直、水平、および45度の角度のうちの1つまたは複数は、モードセット#1に含まれない。
【0135】
一実施形態では、モードセット#1(補間無し)で指向性予測モードをシグナリングするために、最確モード(MPM)が適用されるかどうかを示すために1つのフラグが最初にシグナリングされる。MPMが適用されない場合、固定長符号を使用して残りのイントラ予測モードのうちの1つを符号化することができる。
【0136】
一実施形態では、モードセット#1について、上述した補間無し指向性モードに加えて、DCモード、Planarモード、SMOOTHモード、SMOOTH_Hモード、SMOOTH_Vモード、Paethモード、再帰フィルタリングモード、および/または行列ベースのイントラ予測モード(MIP)を含むが、これらに限定されない他の無指向性モードもシグナリングすることができる。
【0137】
一実施形態では、モードセット#1が選択されると、参照ラインインデックスはビットストリーム内でシグナリングも解析もされない。
【0138】
一実施形態では、モードセット#1が選択されると、参照ラインインデックスはビットストリーム内でシグナリングまたは解析されないが、非ゼロインデックスを有する参照ラインは依然としてイントラ予測に使用され得る。
【0139】
一実施形態では、上述した補間無しイントラ予測モードは、ブロックがブロックを含むCTUの上部境界に位置していない場合など、一定のブロック位置にのみ適用され得る。
【0140】
V.フローチャート
図20は、本開示の一実施形態による例示的なプロセス(2000)を概説するフローチャートを示している。様々な実施形態では、プロセス(2000)は、端末デバイス(210)、(220)、(230)および(240)の処理回路、ビデオエンコーダ(303)の機能を実行する処理回路、ビデオデコーダ(310)の機能を実行する処理回路、ビデオデコーダ(410)の機能を実行する処理回路、イントラ予測モジュール(452)の機能を実行する処理回路、ビデオエンコーダ(503)の機能を実行する処理回路、予測器(535)の機能を実行する処理回路、イントラエンコーダ(622)の機能を実行する処理回路、イントラデコーダ(772)の機能を実行する処理回路などの処理回路によって実行される。いくつかの実施形態では、プロセス(2000)はソフトウェア命令内に実装され、したがって、処理回路がソフトウェア命令を実行すると、処理回路はプロセス(2000)を実行する。
【0141】
プロセス(2000)は、一般に、ステップ(S2010)で開始することができ、プロセス(2000)は、コーディングされたビデオシーケンスの一部である現在ピクチャ内の現在ブロックの予測情報をデコードする。予測情報は、現在ブロックについての複数のイントラ予測方向のうちの1つを示す。次いで、プロセス(2000)は、ステップ(S2020)に進む。
【0142】
ステップ(S2020)において、プロセス(2000)は、予測情報に示された複数のイントラ予測方向のうちの1つに基づいて複数の参照ラインのサブセットを決定する。次いで、プロセス(2000)は、ステップ(S2030)に進む。
【0143】
ステップ(S2030)において、プロセス(2000)は、複数の参照ラインの決定されたサブセットに基づいて現在ブロックのイントラ予測を実行する。次いで、プロセス(2000)は、ステップ(S2040)に進む。
【0144】
ステップ(S2040)において、プロセス(2000)は、現在ブロックのイントラ予測に基づいて現在ブロックを再構成する。そして、プロセス(2000)は終了する。
【0145】
一実施形態では、複数の参照ラインの決定されたサブセット内の参照ラインの数は、1よりも大きい。
【0146】
一実施形態では、複数の参照ラインのうちの第1の参照ラインに関連付けられたイントラ予測方向は、複数の参照ラインのうちの第2の参照ラインに関連付けられたイントラ予測方向とは異なる。
【0147】
一実施形態では、複数のイントラ予測方向は、複数の参照ラインのうちの第1の参照ラインに関連付けられ、複数のイントラ予測方向のサブセットは、複数の参照ラインのうちの第2の参照ラインに関連付けられる。例えば、第1の参照ラインはイントラ予測方向のセットに関連付けられ得、残りの参照ラインはイントラ予測方向のサブセットに関連付けられる。
【0148】
一実施形態では、プロセス(2000)は、現在ブロックの各サンプルについて、複数のイントラ予測方向のうちの1つとそれぞれのサンプルの位置とに基づいて、複数の参照ラインのサブセットのうちの1つを決定する。
【0149】
一実施形態では、予測情報は、複数の参照ラインに基づいて現在ブロックについてイントラ予測が実行されるべきかどうかを示すシンタックス要素を含む。
【0150】
一実施形態では、現在ブロックは、現在ブロックを含むコーディングツリーユニットの上部境界に隣接して配置されない。
【0151】
一実施形態では、複数のイントラ予測方向のうちの1つに関連付けられた予測角度のタンジェント値およびコタンジェント値のうちの1つは整数である。
【0152】
一実施形態では、プロセス(2000)は、現在ブロックのサンプルの各行について、複数の参照ラインのサブセットのうちの1つの参照ラインインデックスを、イントラ予測方向のうちの1つに関連付けられた予測角度のタンジェント値と、現在ブロックのサンプルのそれぞれの行の行番号とに基づいて決定する。
【0153】
VI.コンピュータシステム
上記の技術は、コンピュータ可読命令を使用してコンピュータソフトウェアとして実装され、1つまたは複数のコンピュータ可読媒体に物理的に格納され得る。例えば、図21は、開示された主題の一定の実施形態を実施するのに適したコンピュータシステム(2100)を示している。
【0154】
コンピュータソフトウェアは、1つまたは複数のコンピュータ中央処理装置(CPU)、グラフィック処理装置(GPU)などによって、直接実行することができるか、または解釈、マイクロコード実行などを介して実行することができる命令を含むコードを作成するために、アセンブリ、コンパイル、リンクなどのメカニズムを受けることができる任意の適切な機械コードまたはコンピュータ言語を使用して符号化され得る。
【0155】
命令は、例えば、パーソナルコンピュータ、タブレットコンピュータ、サーバ、スマートフォン、ゲームデバイス、モノのインターネットデバイスなどを含む様々な種類のコンピュータまたはその構成要素上で、実行され得る。
【0156】
コンピュータシステム(2100)について図21に示される構成要素は、本質的に例示的なものであり、本開示の実施形態を実施するコンピュータソフトウェアの使用範囲または機能に関する制限を示唆することを意図するものではない。また、構成要素の構成は、コンピュータシステム(2100)の例示的な実施形態に示される構成要素のいずれか1つまたは組み合わせに関連する依存性または要件を有すると解釈されるべきではない。
【0157】
コンピュータシステム(2100)は、一定のヒューマンインタフェース入力デバイスを含み得る。そのようなヒューマンインタフェース入力デバイスは、例えば、触覚入力(キーストローク、スワイプ、データグローブの動きなど)、音声入力(声、拍手など)、視覚入力(ジェスチャなど)、嗅覚入力(図示せず)を介した、1人または複数の人間のユーザによる入力に反応を示し得る。ヒューマンインタフェースデバイスは、オーディオ(音声、音楽、周囲音など)、画像(走査画像、静止画像カメラから取得した写真画像など)、ビデオ(2次元ビデオ、立体ビデオを含む3次元ビデオなど)など、必ずしも人間による意識的な入力に直接関連しない一定の媒体を取り込むために使用され得る。
【0158】
入力ヒューマンインタフェースデバイスは、キーボード(2101)、マウス(2102)、トラックパッド(2103)、タッチスクリーン(2110)、データグローブ(図示せず)、ジョイスティック(2105)、マイクロフォン(2106)、スキャナ(2107)、およびカメラ(2108)のうちの1つまたは複数(図示された各々のうちのただ1つ)を含み得る。
【0159】
コンピュータシステム(2100)はまた、一定のヒューマンインタフェース出力デバイスを含み得る。そのようなヒューマンインタフェース出力デバイスは、例えば、触覚出力、音、光、および匂い/味によって1人または複数の人間のユーザの感覚を刺激し得る。このようなヒューマンインタフェース出力デバイスは、触覚出力デバイス(例えば、タッチスクリーン(2110)、データグローブ(図示せず)、またはジョイスティック(2105)による触覚フィードバックが含まれることがあるが、入力デバイスとして機能しない触覚フィードバックデバイスもあり得る)、オーディオ出力デバイス(スピーカ(2109)、ヘッドホン(図示せず)など)、視覚出力デバイス(CRTスクリーン、LCDスクリーン、プラズマスクリーン、OLEDスクリーンを含むスクリーン(2110)などであり、それぞれにタッチスクリーン入力機能が有っても無くてもよく、それぞれに触覚フィードバック機能が有っても無くてもよく、それらの一部は、ステレオグラフィック出力、仮想現実ガラス(図示せず)、ホログラフィックディスプレイおよびスモークタンク(図示せず)などの手段を通じて2次元視覚出力または3次元以上の出力が可能であり得る)およびプリンタ(図示せず)を含み得る。これらの視覚出力デバイス(スクリーン(2110)など)は、グラフィックスアダプタ(2150)を介してシステムバス(2148)に接続され得る。
【0160】
コンピュータシステム(2100)はまた、CD/DVDなどの媒体(2121)を有するCD/DVD ROM/RW(2120)を含む光学媒体、サムドライブ(2122)、リムーバブルハードドライブまたはソリッドステートドライブ(2123)、テープおよびフロッピーディスクなどのレガシー磁気媒体(図示せず)、セキュリティドングルなどの専用ROM/ASIC/PLDベースのデバイス(図示せず)など、人間がアクセス可能な記憶デバイスおよびそれらの関連媒体を含むことができる。
【0161】
当業者はまた、本開示の主題に関連して使用される「コンピュータ可読媒体」という用語が、伝送媒体、搬送波、または他の一時的信号を包含しないことを理解すべきである。
【0162】
コンピュータシステム(2100)はまた、1つまたは複数の通信ネットワーク(2155)へのネットワークインタフェース(2154)を含むことができる。1つまたは複数の通信ネットワーク(2155)は、例えば、無線、有線、光であり得る。さらに、1つまたは複数の通信ネットワーク(2155)は、ローカル、広域、都市、車両および産業、リアルタイム、遅延耐性などであり得る。1つまたは複数の通信ネットワーク(2155)の例には、イーサネット、無線LANなどのローカルエリアネットワーク、GSM、3G、4G、5G、LTEなどを含むセルラネットワーク、ケーブルTV、衛星TV、地上波TVなどを含むテレビ有線もしくは無線広域デジタルネットワーク、CANBusを含む車両用もしくは産業用ネットワークなどが含まれる。一定のネットワークは、一般に、一定の汎用データポートまたは周辺バス(2149)に取り付けられた外部ネットワークインタフェースアダプタ(例えば、コンピュータシステム(2100)のUSBポートなど)を必要とし、他のものは、一般に、後述するようなシステムバスへの取り付け(例えば、PCコンピュータシステムへのイーサネットインタフェースまたはスマートフォンコンピュータシステムへのセルラネットワークインタフェース)によってコンピュータシステム(2100)のコアに統合される。これらのネットワークのいずれかを使用して、コンピュータシステム(2100)は、他のエンティティと通信することができる。そのような通信は、例えば、ローカルまたは広域デジタルネットワークを使用する他のコンピュータシステムに対して、単方向で受信のみ(例えば、放送TV)、単方向で送信のみ(例えば、一定のCANbusデバイスへのCANbus)、または双方向であり得る。一定のプロトコルおよびプロトコルスタックは、上述したように、それらのネットワークおよびネットワークインタフェースのそれぞれで使用され得る。
【0163】
前述のヒューマンインタフェースデバイス、ヒューマンアクセス可能な記憶デバイス、およびネットワークインタフェースを、コンピュータシステム(2100)のコア(2140)に取り付けることができる。
【0164】
コア(2140)は、1つまたは複数の中央処理装置(CPU)(2141)、グラフィック処理装置(GPU)(2142)、フィールドプログラマブルゲートエリア(FPGA)(2143)の形態の専用プログラマブル処理装置、一定のタスク用のハードウェアアクセラレータ(2144)、グラフィックスアダプタ(2150)などを含むことができる。これらのデバイスは、読み出し専用メモリ(ROM)(2145)、ランダムアクセスメモリ(2146)、内部の、ユーザがアクセス可能ではないハードドライブ、SSDなどの内部大容量ストレージ(2147)と共に、システムバス(2148)を介して接続されてもよい。一部のコンピュータシステムでは、追加のCPU、GPUなどによる拡張を可能にするために、1つまたは複数の物理プラグの形式でシステムバス(2148)にアクセスすることができる。周辺デバイスを、コアのシステムバス(2148)に直接取り付けることも、周辺バス(2149)を介して取り付けることもできる。一例では、スクリーン(2110)をグラフィックスアダプタ(2150)に接続することができる。周辺バスのアーキテクチャには、PCI、USBなどが含まれる。
【0165】
CPU(2141)、GPU(2142)、FPGA(2143)、およびアクセラレータ(2144)は、組み合わせて前述のコンピュータコードを構成できる一定の命令を実行できる。そのコンピュータコードは、ROM(2145)またはRAM(2146)に格納され得る。移行データはまた、RAM(2146)に格納され得、一方、永続データは、例えば内部大容量ストレージ(2147)に格納され得る。メモリデバイスのいずれかへの高速記憶および取得は、1つまたは複数のCPU(2141)、GPU(2142)、大容量ストレージ(2147)、ROM(2145)、RAM(2146)などと密接に関連付けることができるキャッシュメモリの使用によって可能にすることができる。
【0166】
コンピュータ可読媒体は、様々なコンピュータ実装動作を実行するためのコンピュータコードを有することができる。媒体およびコンピュータコードは、本開示の目的のために特別に設計および構成されたものであってもよく、またはコンピュータソフトウェア技術の当業者に、良く知られた利用可能な種類のものであってもよい。
【0167】
一例として、限定するものではないが、アーキテクチャ(2100)、具体的にはコア(2140)を有するコンピュータシステムは、1つまたは複数の有形のコンピュータ可読媒体に組み込まれたソフトウェアを実行するプロセッサ(複数可)(CPU、GPU、FPGA、アクセラレータなどを含む)の結果として機能を提供することができる。そのようなコンピュータ可読媒体は、上述のようなユーザアクセス可能な大容量ストレージ、ならびにコア内部大容量ストレージ(2147)またはROM(2145)などの非一時的な性質のコア(2140)の一定のストレージに関連付けられた媒体とすることができる。本開示の様々な実施形態を実施するソフトウェアは、そのようなデバイスに格納され、コア(2140)によって実行され得る。コンピュータ可読媒体は、特定の必要性に応じて、1つまたは複数のメモリデバイスまたはチップを含むことができる。ソフトウェアは、コア(2140)、具体的にはその中のプロセッサ(CPU、GPU、FPGAなどを含む)に、本明細書に記載の特定プロセスまたは特定プロセスの特定部分を実行させることができ、プロセスには、RAM(2146)に格納されたデータ構造を定義すること、および、ソフトウェアによって定義されたプロセスに従ってそのようなデータ構造を修正することが含まれる。加えて、または代替として、コンピュータシステムは、ハードワイヤードまたは他の方法で回路(例えば、アクセラレータ(2144))に具現化された論理の結果として、機能を提供することができ、ソフトウェアの代わりに、またはソフトウェアと共に動作して、本明細書に記載の特定プロセスまたは特定プロセスの特定部分を実行することができる。ソフトウェアへの参照は、論理を包含することができ、適切な場合には逆もまた同様である。コンピュータ可読媒体への参照は、適切な場合には、実行のためにソフトウェアを格納する回路(集積回路(IC)など)、実行のための論理を具現化する回路、またはその両方を包含することができる。本開示は、ハードウェアとソフトウェアの任意の適切な組み合わせを包含する。
【0168】
本開示はいくつかの例示的な実施形態を説明してきたが、本開示の範囲内に入る変更、置換、および様々な代替等価物がある。したがって、当業者は、本明細書に明示的に示されていないまたは記載されていないが、本開示の原理を具体化し、したがってその趣旨および範囲内にある、多数のシステムおよび方法を考案し得ることが理解されよう。
【0169】
別表A:略語
ALF:Adaptive Loop Filter 適応ループフィルタ
AMVP:Advanced Motion Vector Prediction 高度動きベクトル予測
APS:Adaptation Parameter Set 適応パラメータセット
ASIC:Application-Specific Integrated Circuit 特定用途向け集積回路
ATMVP:Alternative/Advanced Temporal Motion Vector Prediction 代替/高度時間動きベクトル予測
AV1:AOMedia Video 1 AOMediaビデオ1
AV2:AOMedia Video 2 AOMediaビデオ2
BMS:Benchmark Set ベンチマークセット
BV:Block Vector ブロックベクトル
CANBus:Controller Area Network Bus コントローラエリアネットワークバス
CB:Coding Block コーディングブロック
CC-ALF:Cross-Component Adaptive Loop Filter クロスコンポーネント適応ループフィルタ
CD:Compact Disc コンパクトディスク
CDEF:Constrained Directional Enhancement Filter 制約付き指向性エンハンスメントフィルタ
CPR:Current Picture Referencing 現在ピクチャ参照
CPU:Central Processing Units 中央処理装置
CRT:Cathode Ray Tube ブラウン管
CTB:Coding Tree Blocks コーディングツリーブロック
CTU:Coding Tree Units コーディングツリーユニット
CU:Coding Unit コーディングユニット
DPB:Decoder Picture Buffer デコーダピクチャバッファ
DPS:Decoding Parameter Set デコーディングパラメータセット
DVD:Digital Video Disc デジタルビデオディスク
FPGA:Field Programmable Gate Areas フィールドプログラマブルゲートエリア
JCCR:Joint CbCr Residual Coding 共同CbCr残差符号化
JVET:Joint Video Exploration Team 共同ビデオ探索チーム
GOP:Groups of Pictures ピクチャグループ
GPU:Graphics Processing Units グラフィックス処理装置
GSM:Global System for Mobile communications グローバル移動体通信システム
HDR:High Dynamic Range ハイダイナミックレンジ
HEVC:High Efficiency Video Coding 高効率ビデオ符号化
HRD:Hypothetical Reference Decoder 仮想参照デコーダ
IBC:Intra Block Copy イントラブロックコピー
IC:Integrated Circuit 集積回路
ISP:Intra Sub-Partitions イントラサブパーティション
JEM:Joint Exploration Model 共同探索モデル
LAN:Local Area Network ローカルエリアネットワーク
LCD:Liquid-Crystal Display 液晶ディスプレイ
LR:Loop Restoration Filter ループ復元フィルタ
LTE:Long-Term Evolution ロングタームエボリューション
MPM:Most Probable Mode 最確モード
MV:Motion Vector 動きベクトル
OLED:Organic Light-Emitting Diode 有機発光ダイオード
PBs:Prediction Blocks 予測ブロック
PCI:Peripheral Component Interconnect 周辺構成要素相互接続
PDPC:Position Dependent Prediction Combination 位置依存予測組み合わせ
PLD:Programmable Logic Device プログラマブルロジックデバイス
PPS:Picture Parameter Set ピクチャパラメータセット
PU:Prediction Units 予測ユニット
RAM:Random Access Memory ランダムアクセスメモリ
ROM:Read-Only Memory 読み出し専用メモリ
SAO:Sample Adaptive Offset サンプル適応オフセット
SCC:Screen Content Coding スクリーンコンテンツ符号化
SDR:Standard Dynamic Range 標準ダイナミックレンジ
SEI:Supplementary Enhancement Information 補足エンハンスメント情報
SNR:Signal Noise Ratio 信号雑音比
SPS:Sequence Parameter Set シーケンスパラメータセット
SSD:Solid-state Drive ソリッドステートドライブ
TU:Transform Units 変換ユニット
USB:Universal Serial Bus ユニバーサルシリアルバス
VPS:Video Parameter Set ビデオパラメータセット
VUI:Video Usability Information ビデオユーザビリティ情報
VVC:Versatile Video Coding 多用途ビデオ符号化
WAIP:Wide-Angle Intra Prediction 広角イントラ予測
【符号の説明】
【0170】
101 サンプル
102 矢印
103 矢印
104 ブロック
111 現在ブロック
112 サンプル
113 サンプル
114 サンプル
115 サンプル
116 サンプル
200 通信システム
210 端末デバイス
220 端末デバイス
230 端末デバイス
240 端末デバイス
250 ネットワーク
301 ビデオソース
302 ビデオピクチャのストリーム
303 ビデオエンコーダ
304 エンコードされたビデオデータ
305 ストリーミングサーバ
306 クライアントサブシステム
307 ビデオデータ304のコピー
308 クライアントサブシステム
309 ビデオデータ304のコピー
310 ビデオデコーダ
311 出力ストリーム
312 ディスプレイ
313 キャプチャサブシステム
320 電子デバイス
330 電子デバイス
401 チャネル
410 ビデオデコーダ
412 描画デバイス
415 バッファメモリ
420 パーサ
421 シンボル
430 電子デバイス
431 受信器
451 スケーラ/逆変換ユニット
452 イントラ予測ユニット
453 動き補償予測ユニット
455 アグリゲータ
456 ループフィルタユニット
457 参照ピクチャメモリ
458 現在ピクチャのバッファ
501 ビデオソース
503 ビデオエンコーダ
520 電子デバイス
530 ソースコーダ
532 コーディングエンジン
533 デコーダ
534 参照ピクチャメモリ
535 予測器
540 送信器
543 コーディングされたビデオシーケンス
545 エントロピーコーダ
550 コントローラ
560 通信チャネル
603 ビデオエンコーダ
621 汎用コントローラ
622 イントラエンコーダ
623 残差計算器
624 残差エンコーダ
625 エントロピーエンコーダ
626 スイッチ
628 残差デコーダ
630 インターエンコーダ
710 ビデオデコーダ
771 エントロピーデコーダ
772 イントラデコーダ
773 残差デコーダ
774 再構成モジュール
780 インターデコーダ
2000 プロセス
2100 コンピュータシステム
2101 キーボード
2102 マウス
2103 トラックパッド
2105 ジョイスティック
2106 マイクロフォン
2107 スキャナ
2108 カメラ
2109 スピーカ
2110 スクリーン
2120 CD/DVD ROM/RW
2121 CD/DVDなどの媒体
2122 サムドライブ
2123 リムーバブルハードドライブまたはソリッドステートドライブ
2140 コア
2141 中央処理装置(CPU)
2142 グラフィック処理装置(GPU)
2143 フィールドプログラマブルゲートエリア(FPGA)
2144 アクセラレータ
2145 読み出し専用メモリ(ROM)
2146 ランダムアクセスメモリ(RAM)
2147 内部大容量ストレージ
2148 システムバス
2149 周辺バス
2150 グラフィックスアダプタ
2154 ネットワークインタフェース
2155 通信ネットワーク
図1A
図1B
図1C
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21
【手続補正書】
【提出日】2024-01-05
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
デコーダにおけるビデオデコードの方法であって、
コーディングされたビデオシーケンスの一部である現在ピクチャ内の現在ブロックの予測情報をデコードするステップであって、前記予測情報は前記現在ブロックについての複数のイントラ予測方向のうちの1つを示す、ステップと、
前記予測情報に示される前記複数のイントラ予測方向のうちの前記1つに基づいて、複数の参照ラインのサブセットを決定するステップと、
前記複数の参照ラインの前記決定されたサブセットに基づいて、前記現在ブロックのイントラ予測を実行するステップと、
前記現在ブロックの前記イントラ予測に基づいて、前記現在ブロックを再構成するステップとを含む、方法。
【外国語明細書】