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

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

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

(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-03-21
(45)【発行日】2024-03-29
(54)【発明の名称】イントラ文字列コピーの方法及び機器
(51)【国際特許分類】
   H04N 19/593 20140101AFI20240322BHJP
   H04N 19/91 20140101ALI20240322BHJP
   H04N 19/46 20140101ALI20240322BHJP
   H04N 19/11 20140101ALI20240322BHJP
   H04N 19/136 20140101ALI20240322BHJP
   H04N 19/182 20140101ALI20240322BHJP
【FI】
H04N19/593
H04N19/91
H04N19/46
H04N19/11
H04N19/136
H04N19/182
【請求項の数】 22
(21)【出願番号】P 2022560885
(86)(22)【出願日】2021-10-18
(65)【公表番号】
(43)【公表日】2023-06-15
(86)【国際出願番号】 US2021055452
(87)【国際公開番号】W WO2022220872
(87)【国際公開日】2022-10-20
【審査請求日】2022-10-05
(31)【優先権主張番号】63/173,929
(32)【優先日】2021-04-12
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】17/450,935
(32)【優先日】2021-10-14
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】520353802
【氏名又は名称】テンセント・アメリカ・エルエルシー
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【弁理士】
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】シュー,シャオゾン
(72)【発明者】
【氏名】リウ,シャン
【審査官】田部井 和彦
(56)【参考文献】
【文献】米国特許出願公開第2018/0205971(US,A1)
【文献】国際公開第2020/142596(WO,A1)
【文献】特表2022-512109(JP,A)
【文献】Feng Zou et al.,CE 3 Related: MV and Run coding for Intra String Copy [online],JCTVC-T0113(JCTVC-T0113r1.doc等),インターネット <URL: http://phenix.it-sudparis.eu/jct/doc_end_user/documents/20_Geneva/wg11/JCTVC-T0113-v3.zip>,2015年02月14日
【文献】Shih-Ta Hsiang et al.,CE-3: Results of Test B.5 on entropy coding ISC syntax elements [online],JCTVC-T0128,インターネット <URL: http://phenix.it-sudparis.eu/jct/doc_end_user/documents/20_Geneva/wg11/JCTVC-T0128-v1.zip>,2015年01月31日
(58)【調査した分野】(Int.Cl.,DB名)
H04N 19/593
H04N 19/91
H04N 19/46
H04N 19/11
H04N 19/136
H04N 19/182
(57)【特許請求の範囲】
【請求項1】
デコーダのビデオ復号化の方法であって、当該方法は、
コーディングしたビデオ・ビットストリームからコーディングされる領域内のブロックのコーディング情報を受信するステップであって、該コーディング情報には、前記ブロックに関連付けられたシグナリング情報及びシンタックス要素が含まれ、前記シンタックス要素のそれぞれには1つ又は複数のビンが含まれ、前記ブロックにはコーディングユニット(CU)内の全サンプルを分割することにより得られた複数サンプルからなるストリングが含まれ、前記ブロックは、ストリングマッチングモードによってコーディングされる、ステップと、
コンテキスト・コーディングモードによってコーディングが許容される、前記ブロックに関連付けられたビンの最大数に基づいて閾値を決定するステップと、
前記シンタックス要素のうちの第1のシンタックス要素のビンの数を決定するステップと、
前記第1のシンタックス要素の前記1つ又は複数のビンを使用して、前記ブロックを前記ストリングマッチングモードで復号化するステップと、を含み、
前記第1のシンタックス要素の前記ビンの数は、前記コンテキスト・コーディングモードに許容される前記ビンの最大数を示す閾値によって制限される、
方法。
【請求項2】
前記第1のシンタックス要素は、(i)前記第1のシンタックス要素の前記ビンの数が前記閾値未満であることに応答して、前記コンテキスト・コーディングモード、及び(ii)前記第1のシンタックス要素の前記ビンの数が前記閾値以上であることに応答して、バイパス・コーディングモードのうちの1つに基づいてコーディングされる、請求項1に記載の方法。
【請求項3】
ストリングマッチングモードは、(i)ストリングオフセットベクトルによって示されるそれぞれの参照ストリングに基づいて、前記ブロック内の複数のストリングのそれぞれを再構成するように構成されたイントラストリングコピー(ISC)モード、及び(ii)参照ストリングの値を対応するストリングの上にコピーするか、又は該対応するストリングの第1のサンプルの値を用いて前記対応するストリング内の他のサンプルの値を設定することによって、前記ブロック内の前記複数のストリングのそれぞれを再構成するように構成された等値ストリング(EVS)モードのうちの1つを含む、請求項1に記載の方法。
【請求項4】
前記閾値を決定するステップは、
前記コンテキスト・コーディングモードによってコーディングが許容される、前記ブロックの前記サンプルのそれぞれにおけるビンの平均数を示す平均閾値を決定するステップと、
該平均閾値と前記ブロック内の前記サンプルの総数との積となるように前記閾値を決定するステップと、を含む、請求項3に記載の方法。
【請求項5】
前記平均閾値は、(i)スライスヘッダ、ピクチャヘッダ、及びシーケンスヘッダのうちの1つにおいてシグナリングされる、前記コーディング情報のシグナリング情報、及び(ii)予め規定した値のうちの1つに基づいて決定される、請求項4に記載の方法。
【請求項6】
前記平均閾値は、1.125、1.25、及び1.75のうちの1つを含む、請求項4に記載の方法。
【請求項7】
前記平均閾値は、前記EVSモードでコーディングされる前記ブロックに基づいて、前記コンテキスト・コーディングモードによってコーディングが許容される、前記ブロックに関連付けられたビンの最大数に基づく、請求項4に記載の方法。
【請求項8】
前記平均閾値は、前記ブロックが、イントラ予測モード、イントラブロックコピーモード、及びインター予測モードのうちの1つによってコーディングされるときに、前記コンテキスト・コーディングモードによってコーディングが許容される、前記ブロックに関連付けられたビンの最大数に基づく、請求項4に記載の方法。
【請求項9】
前記閾値を決定するステップは、
(i)スライスヘッダ、ピクチャヘッダ、及びシーケンスヘッダのうちの1つにおいてシグナリングされる、前記コーディング情報のシグナリング情報、及び(ii)予め規定した値のうちの1つに基づくカットオフ数を決定するステップと、
(i)前記平均閾値と前記ブロック内の前記サンプルの総数との積から(ii)前記カットオフ数を引いた値となるように前記閾値を決定するステップと、をさらに含む、請求項4に記載の方法。
【請求項10】
前記カットオフ数は、
前記第1のシンタックス要素について前記コンテキスト・コーディングモードによってコーディングが許容されるビンの最大数、
前記ストリングマッチングモードによってコーディングされる前記ブロックに関連付けられた前記シンタックス要素のうちの1つについて、前記コンテキスト・コーディングモードによってコーディングが許容されるビンの最大数、
定数値と前記平均閾値との積、及び
前記ストリングマッチングモードによってコーディングされる前記ブロックに関連付けられた前記シンタックス要素のうちの1つについて、前記コンテキスト・コーディングモードによってコーディングが許容される前記ビンの最大数の半分のうちの1つに設定される、請求項9に記載の方法。
【請求項11】
エンコーダのビデオ符号化の方法であって、当該方法は、
ピクチャ内の領域のブロックを受け取るステップであって、前記ブロックはストリングマッチングモードでコーディングされ、前記ブロックにはコーディングユニット(CU)内の全サンプルを分割することにより得られた複数サンプルからなるストリングが含まれる、ステップと
コンテキスト・コーディングモードによってコーディンが許容される、前記ブロックに関連付けられたビンの最大数に基づいて閾値を決定するステップと、
前記ブロックに関連付けられるシンタックス要素のうちの第1のシンタックス要素のビンの数を決定するステップと、
前記第1のシンタックス要素の1つ又は複数のビンを使用して、前記ブロックをストリングマッチングモードでコーディングするステップと、
前記シンタックス要素を送信するステップであって、前記シンタックス要素のそれぞれには、前記1つ又は複数のビンが含まれる、ステップと、を含み、
前記第1のシンタックス要素の前記ビンの数は、前記コンテキスト・コーディングモードに許容される前記ビンの最大数を示す閾値によって制限される、
方法。
【請求項12】
前記第1のシンタックス要素は、(i)前記第1のシンタックス要素の前記ビンの数が前記閾値未満であることに応答して、前記コンテキスト・コーディングモード、及び(ii)前記第1のシンタックス要素の前記ビンの数が前記閾値以上であることに応答して、バイパス・コーディングモードのうちの1つに基づいてコーディングされる、請求項11に記載の方法。
【請求項13】
ストリングマッチングモードは、(i)ストリングオフセットベクトルによって示されるそれぞれの参照ストリングに基づいて、前記ブロック内の複数のストリングのそれぞれを再構成するように構成されたイントラストリングコピー(ISC)モード、及び(ii)参照ストリングの値を対応するストリングの上にコピーするか、又は該対応するストリングの第1のサンプルの値を用いて前記対応するストリング内の他のサンプルの値を設定することによって、前記ブロック内の前記複数のストリングのそれぞれを再構成するように構成された等値ストリング(EVS)モードのうちの1つを含む、請求項11に記載の方法。
【請求項14】
前記閾値を決定するステップは、
前記コンテキスト・コーディングモードによってコーディングが許容される、前記ブロックの前記サンプルのそれぞれにおけるビンの平均数を示す平均閾値を決定するステップと、
該平均閾値と前記ブロック内の前記サンプルの総数との積となるように前記閾値を決定するステップと、をさらに含む、請求項13に記載の方法。
【請求項15】
シグナリング情報を含むコーディングしたビットストリームを出力するステップをさらに含み、前記シグナリング情報は、スライスヘッダ、ピクチャヘッダ、及びシーケンスヘッダのうちの1つに含められ、前記決定した平均閾値を示す、請求項14に記載の方法。
【請求項16】
前記平均閾値は、1.125、1.25、及び1.75のうちの1つを含む、請求項14に記載の方法。
【請求項17】
前記平均閾値は、前記EVSモードでコーディングされる前記ブロックに基づいて、前記コンテキスト・コーディングモードによってコーディングが許容される前記ブロックに関連付けられたビンの最大数に基づく、請求項14に記載の方法。
【請求項18】
前記平均閾値は、前記ブロックが、イントラ予測モード、イントラブロックコピーモード、インター予測モードのうちの1つによってコーディングされるときに、前記コンテキスト・コーディングモードによってコーディングが許容される、前記ブロックに関連付けられたビンの最大数に基づく、請求項14に記載の方法。
【請求項19】
前記閾値を決定するステップは、
カットオフ数を決定するステップと、
(i)前記平均閾値と前記ブロック内の前記サンプルの総数との積から(ii)前記カットオフ数を引いた値となるように前記閾値を決定するステップと、をさらに含む、請求項14に記載の方法。
【請求項20】
前記カットオフ数は、
前記第1のシンタックス要素について前記コンテキスト・コーディングモードによってコーディングが許容されるビンの最大数、
前記ストリングマッチングモードによってコーディングされる前記ブロックに関連付けられた前記シンタックス要素のうちの1つについて、前記コンテキスト・コーディングモードによってコーディングが許容されるビンの最大数、
定数値と前記平均閾値との積、及び
前記ストリングマッチングモードによってコーディングされる前記ブロックに関連付けられた前記シンタックス要素のうちの1つについて、前記コンテキスト・コーディングモードによってコーディングが許容される前記ビンの最大数の半分のうちの1つに設定される、請求項19に記載の方法。
【請求項21】
コンピュータプログラムであって、該コンピュータプログラムがコンピュータのプロセッサによって実行されると、該プロセッサに、請求項1乃至10のいずれか一項に記載の方法を実行させる、
コンピュータプログラム。
【請求項22】
コンピュータプログラムであって、該コンピュータプログラムがコンピュータのプロセッサによって実行されると、該プロセッサに、請求項11乃至20のいずれか一項に記載の方法を実行させる、
コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、2021年10月14日に出願した、“METHOD AND APPARATUS FOR INTRA STRING COPY”という米国特許出願第17/450,935号に対する優先権の利益を主張するものであり、この文献は、2021年4月12日に出願した、“STRING MATCHING WITH REFERENCE LOCATION CONSTRAINTS”という米国仮出願第63/173,929号に対する優先権の利益を主張する。先行出願の全開示は、その全体が参照により本明細書に組み込まれる。
【0002】
本開示は、イントラ文字列(intra string)コピーモードに基づくビデオ内の領域のブロックの符号化/復号化等、一般にビデオコーディングに関連する実施形態について説明する。
【背景技術】
【0003】
本明細書で提供する背景技術の説明は、本開示の文脈を概ね提示することを目的としている。本願の名前が記載された発明者の業績は、この背景技術の段落に記載している範囲で、出願時に先行技術として認められない説明の態様と同様に、明示的又は黙示的に本開示に対する先行技術として認められるものではない。
【0004】
ビデオ符号化及び復号化は、動き補償を伴うインターピクチャ(inter picture:ピクチャ間)予測を使用して実行することができる。非圧縮デジタルビデオには、一連のピクチャが含まれ得、各ピクチャは、例えば、1920×1080の輝度サンプル及び関連する色差サンプルの空間次元を有する。一連のピクチャは、例えば1秒あたり60ピクチャつまり60Hzの、固定又は可変のピクチャレート(非公式にはフレームレートとも呼ばれる)を有することができる。非圧縮ビデオには特定のビットレート要件がある。例えば、サンプルあたり8ビットの1080p60 4:2:0ビデオ(60Hzフレームレートで1920×1080輝度サンプル解像度)は、1.5Gbit/sに近い帯域幅を必要とする。このようなビデオを1時間再生するには、600GBを超えるストレージ容量が必要である。
【0005】
ビデオ符号化及び復号化の1つの目的は、圧縮によって入力ビデオ信号の冗長性を削減することであり得る。圧縮は、前述の帯域幅及び/又はストレージ容量の要件を、場合によっては2桁以上削減するのに役立ち得る。可逆圧縮と非可逆圧縮との両方、及びそれらの組合せを使用することができる。可逆圧縮とは、圧縮した元の信号から元の信号の正確なコピーを再構成できる技術を指す。非可逆圧縮を使用する場合に、再構成した信号は元の信号と同一ではない可能性があるが、元の信号と再構成した信号との間の歪みは、再構成した信号が意図したアプリケーションに有用なほど十分小さいものである。ビデオの場合に、非可逆圧縮が広く使用されている。許容される歪みの量はアプリケーションによって異なり、例えば、特定の消費者向けストリーミングアプリケーションのユーザは、テレビ配信アプリケーションのユーザよりも高い歪みを許容する場合がある。達成可能な圧縮率は、より高い許容/容認歪みが、より高い圧縮率をもたらす可能性があることを反映している場合がある。
【0006】
ビデオエンコーダ及びビデオデコーダは、例えば、動き補償、変換、量子化、及びエントロピーコーディングを含む、いくつかの広いカテゴリからの技術を利用することができる。
【0007】
ビデオコーデック技術は、イントラコーディングとして知られる技術を含むことができる。イントラコーディングでは、サンプル値は、以前に再構成した参照ピクチャからのサンプル又は他のデータを参照せずに表される。一部のビデオコーデックでは、ピクチャは空間的にサンプルのブロックに細分化される。サンプルの全てのブロックがイントラモードでコーディングされる場合に、そのピクチャはイントラピクチャとなり得る。イントラピクチャと独立したデコーダ・リフレッシュピクチャ等の派生物とは、デコーダの状態をリセットするために使用できるため、コーディングしたビデオ・ビットストリーム及びビデオセッションの最初のピクチャとして、又は静止画像として使用できる。イントラブロックのサンプルは、変換を受けることができ、変換係数がエントロピーコーディングの前に量子化され得る。イントラ予測は、変換前のドメインでサンプル値を最小化する技術である。場合によっては、変換後のDC値が小さいほど、またAC係数が小さいほど、所与の量子化ステップサイズでエントロピーコーディング後のブロックを表すために必要なビット数が少なくなる。
【0008】
例えばMPEG-2世代コーディング技術により知られているような従来のイントラコーディングは、イントラ予測を使用しない。ただし、一部の新しいビデオ圧縮技術には、例えば、空間的に隣接し、復号順序で先行するデータのブロックの符号化/復号化中に取得したメタデータ及び/又は周囲のサンプルデータから試行する技術が含まれている。このような技術を、以後「イントラ予測」技術と呼ぶ。少なくともいくつかのケースでは、イントラ予測は、参照ピクチャからではなく、再構成中の現在のピクチャからの参照データのみを使用していることに留意されたい。
【0009】
イントラ予測には多くの異なる形態があり得る。そのような技術の複数を所与のビデオコーディング技術で使用できる場合に、使用中の技術をイントラ予測モードでコーディングすることができる。場合によっては、モードにサブモード及び/又はパラメータを含めることができ、それらを個別にコーディングするか、又はモード・コードワードに含めることができる。所与のモード、サブモード、及び/又はパラメータの組合せに使用するコードワードは、イントラ予測によるコーディング効率の向上に影響を与える可能性があり、コードワードをビットストリームに変換するために使用されるエントロピーコーディング技術も同様であり得る。
【0010】
イントラ予測の特定のモードが、H.264で導入され、H.265で改良され、JEM(joint exploration model)、VVC(versatile video
coding)、及びBMS(benchmark set)等の新しいコーディング技術でさらに改良された。予測子ブロックは、既に利用可能なサンプルに属する隣接するサンプル値を使用して形成できる。隣接するサンプルのサンプル値は、ある方向に従って予測ブロック内にコピーされる。使用中の方向への参照は、ビットストリームでコーディングするか、又はそれ自体を予測することができる。
【0011】
図1を参照すると、H.265の33個の可能な予測方向(35個のイントラモードのうちの33個の角度モードに対応)から既知の9つの予測方向のサブセットが、図1の右下に示される。矢印が収束するポイント(101)は、予測されるサンプルを表す。矢印は、サンプルが予測される方向を表す。例えば、矢印(102)は、サンプル(101)が、1つ又は複数のサンプルから水平から45°の角度で右上に予測されることを示す。同様に、矢印(103)は、サンプル(101)が、1つ又は複数のサンプルから水平から22.5°の角度でサンプル(101)の左下に予測されることを示す。
【0012】
引き続き図1を参照すると、4×4サンプルの正方形ブロック(104)(太い破線で示される)が図1の左上に示される。正方形ブロック(104)は16個のサンプルを含み、それぞれ、「S」、Y次元におけるその位置(例えば、行インデックス)及びX次元におけるその位置(例えば、列インデックス)でラベル付けされる。例えば、サンプルS21は、Y次元で(上から)2番目のサンプルであり、X次元で(左から)1番目のサンプルである。同様に、サンプルS44は、Y次元とX次元との両方でブロック(104)の4番目のサンプルである。ブロックのサイズが4×4サンプルであるので、S44は右下にある。さらに、同様の番号付けスキームに従う参照サンプルが示される。参照サンプルは、ブロック(104)に対するそのY位置(例えば、行インデックス)及びX位置(列インデックス)にRでラベル付けされる。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】
図2は、予測方向の数が経時的に増加することを示すJEMによる65個のイントラ予測方向を示す概略図(201)を示している。
【0017】
方向を表すイントラ予測方向ビットをコーディングしたビデオ・ビットストリームにマッピングすることは、ビデオコーディング技術毎に異なる可能性があり、例えば、予測方向のイントラ予測モードへの単純な直接マッピングから、コードワード、最も可能性の高いモードを含む複雑な適応スキーム、及び同様の技術にまで及ぶ。ただし、全ての場合において、他の特定の方向よりもビデオコンテンツで発生する可能性が統計的に低い特定の方向が存在する可能性がある。ビデオ圧縮の目標が冗長性の削減であるため、適切に機能するビデオコーディング技術では、これらの可能性が低い方向は、可能性が高い方向よりも多くのビット数で表される。
【発明の概要】
【0018】
本開示の態様は、イントラ文字列コピーに基づく方法等、ビデオの符号化/復号化のための方法を提供する。
【0019】
本開示の一態様によれば、デコーダのビデオ復号化の方法が提供される。この方法では、コーディングされる領域内のブロックのコーディング情報を、コーディングしたビデオ・ビットストリームから受信することができる。コーディング情報には、ブロックに関連付けられたシグナリング情報及びシンタックス要素が含まれ得、シンタックス要素のそれぞれには1つ又は複数のビンが含まれ得、ブロックには複数の文字列が含まれ得、ブロックは、文字列マッチングモードによってコーディングされ得る。閾値が、コンテキスト・コーディングモードによってコーディンが許容されるブロックに関連付けられたビンの最大数に基づいて決定され得る。シンタックス要素のうちの第1のシンタックス要素のビンの数が決定され得る。第1のシンタックス要素の1つ又は複数のビンを使用して、文字列マッチングモードのブロックが復号化され得る。ここで、第1のシンタックス要素のビンの数は、コンテキスト・コーディングモードに許容されるビンの最大数を示す閾値によって制限される。
【0020】
いくつかの実施形態では、第1のシンタックス要素は、(i)第1のシンタックス要素のビンの数が閾値未満であることに応答して、コンテキスト・コーディングモード、及び(ii)第1のシンタックス要素のビンの数が閾値以上であることに応答して、バイパス・コーディングモードのうちの1つに基づいてコーディングされ得る。
【0021】
この方法では、複数の文字列のそれぞれには1つ又は複数のサンプルが含まれ得る。一例では、文字列マッチングモードは、イントラ文字列コピー(ISC)モードを含むことができる。ISCモードは、文字列オフセットベクトルによって示されるそれぞれの参照文字列に基づいて、ブロック内の複数の文字列のそれぞれを再構成するように構成され得る。別の例では、文字列マッチングモードは等値文字列(EVS)モードを含むことができる。EVSモードは、参照文字列の値を対応する文字列の上にコピーするか、又は対応する文字列の第1のサンプルの値を用いて対応する文字列内の他のサンプルの値を設定することによって、ブロック内の複数の文字列のそれぞれを再構成するように構成され得る。
【0022】
一実施形態では、閾値を決定するために、平均閾値が決定され得る。平均閾値は、コンテキスト・コーディングモードによってコーディンが許容される、ブロックのサンプルのそれぞれにおけるビンの平均数を示すことができる。さらに、閾値は、平均閾値とブロック内のサンプルの総数との積となるようように決定することができる。
【0023】
いくつかの例では、平均閾値は、(i)スライスヘッダ、ピクチャヘッダ、及びシーケンスヘッダのうちの1つにおいてシグナリングされる、コーディング情報のシグナリング情報、及び(ii)予め規定した値のうちの1つに基づいて決定され得る。
【0024】
いくつかの例では、平均閾値は1.125、1.25、及び1.75のうちの1つを含み得る。
【0025】
いくつかの例では、平均閾値は、EVSモードでコーディングしたブロックに基づいて、コンテキスト・コーディングモードによってコーディングが許容されるブロックに関連付けられたビンの最大数に基づき得る。
【0026】
いくつかの例では、平均閾値は、ブロックが、イントラ予測モード、イントラブロックコピーモード、インター予測モードのうちの1つによってコーディングされるときに、コンテキスト・コーディングモードによってコーディングが許容される、ブロックに関連付けられたビンの最大数に基づき得る。
【0027】
別の実施形態では、閾値を決定するために、カットオフ数が決定され得る。カットオフ数は、(i)スライスヘッダ、ピクチャヘッダ、及びシーケンスヘッダのうちの1つにおいてシグナリングされる、コーディング情報のシグナリング情報、及び(ii)予め規定した値のうちの1つに基づき得る。閾値は、さらに、(i)平均閾値とブロック内のサンプルの総数との積から(ii)カットオフ数を引いた値となるように決定され得る。
【0028】
カットオフ数は、第1のシンタックス要素についてコンテキスト・コーディングモードによってコーディングが許容されるビンの最大数、文字列マッチングモードによってコーディングしたブロックに関連付けられたシンタックス要素の1つについて、文字列マッチングモードによってコーディングが許容されるビンの最大数、定数値と平均閾値との積、及び文字列マッチングモードによってコーディングしたブロックに関連付けられたシンタックス要素のうちの1つについて、コンテキスト・コーディングモードによってコーディングが許容されるビンの最大数の半分のうちの1つに設定され得る。
【0029】
本開示の別の態様によれば、エンコーダのビデオ符号化の方法が提供される。この方法では、ビデオ内の領域のブロックに関連付けられたシンタックス要素が受け取られ得る。ブロックは文字列マッチングモードでコーディングされ得、シンタックス要素のそれぞれには1つ又は複数のビンが含まれ得、ブロックには複数の文字列が含まれ得る。閾値が、コンテキスト・コーディングモードによってコーディンが許容される、ブロックに関連付けられたビンの最大数に基づいて決定され得る。シンタックス要素のうちの第1のシンタックス要素のビンの数が決定され得る。文字列マッチングモードのブロックは、第1のシンタックス要素の1つ又は複数のビンを使用してコーディングされ得、第1のシンタックス要素のビンの数は、コンテキスト・コーディングモードに許容されるビンの最大数を示す閾値によって制限される。
【0030】
いくつかの実施形態では、第1のシンタックス要素は、さらに、(i)第1のシンタックス要素のビンの数が閾値未満であることに応答して、コンテキスト・コーディングモード、及び(ii)第1のシンタックス要素のビンの数が閾値以上であることに応答して、バイパス・コーディングモードのうちの1つに基づいてコーディングされ得る。
【0031】
この方法では、複数の文字列のそれぞれには1つ又は複数のサンプルが含まれ得る。一例では、文字列マッチングモードはISCモードを含むことができる。ISCモードは、文字列オフセットベクトルによって示されるそれぞれの参照文字列に基づいて、ブロック内の複数の文字列のそれぞれを再構成するように構成され得る。別の例では、文字列マッチングモードはEVSモードを含むことができる。EVSモードは、参照文字列の値を対応する文字列の上にコピーするか、又は対応する文字列の第1のサンプルの値を用いて対応する文字列の他のサンプルの値を設定することによって、ブロック内の複数の文字列のそれぞれを再構成するように構成され得る。
【0032】
一実施形態では、閾値を決定するために、平均閾値が決定され得る。平均閾値は、コンテキスト・コーディングモードによってコーディンが許容される、ブロックのサンプルのそれぞれにおけるビンの平均数を示し得る。さらに、閾値は、平均閾値とブロック内のサンプルの総数との積となるように決定され得る。
【0033】
この方法では、シグナリング情報を含むコーディングしたビットストリームが出力され得、シグナリング情報は、スライスヘッダ、ピクチャヘッダ、及びシーケンスヘッダのうちの1つでシグナリングされ、決定した平均閾値を示し得る。
【0034】
いくつかの例では、平均閾値は、1.125、1.25、及び1.75のうちの1つを含み得る。
【0035】
いくつかの例では、平均閾値は、EVSモードでコーディングしたブロックに基づいて、コンテキスト・コーディングモードによってコーディングが許容される、ブロックに関連付けられたビンの最大数に基づき得る。
【0036】
いくつかの例では、平均閾値は、ブロックが、イントラ予測モード、イントラブロックコピーモード、インター予測モードのうちの1つによってコーディングされるときに、コンテキスト・コーディングモードによってコーディングが許容される、ブロックに関連付けられたビンの最大数に基づき得る。
【0037】
別の実施形態では、閾値を決定するために、カットオフ数が決定され得る。閾値は、(i)平均閾値とブロック内のサンプルの総数との積から(ii)カットオフ数を引いた値となるようにさらに決定され得る。
【0038】
カットオフ数は、第1のシンタックス要素についてコンテキスト・コーディングモードによってコーディングが許容されるビンの最大数、文字列マッチングモードによってコーディングしたブロックに関連付けられたシンタックス要素のうちの1つについて、コンテキスト・コーディングモードによってコーディングが許容されるビンの最大数、定数値と平均閾値との積、及び文字列マッチングモードによってコーディングしたブロックに関連付けられたシンタックス要素のうちの1つについて、コンテキスト・コーディングモードによってコーディングが許容されるビンの最大数の半分のうちの1つに設定され得る。
【図面の簡単な説明】
【0039】
開示する主題の更なる特徴、性質、及び様々な利点は、以下の詳細な説明及び添付の図面からより明らかになろう。
図1】イントラ予測モードの例示的なサブセットの概略図である。
図2】例示的なイントラ予測方向の図である。
図3】一実施形態による通信システム(300)の簡略ブロック図の概略図である。
図4】一実施形態による通信システム(400)の簡略ブロック図の概略図である。
図5】一実施形態によるデコーダの簡略化したブロック図の概略図である。
図6】一実施形態によるエンコーダの簡略化したブロック図の概略図である。
図7】別の実施形態によるエンコーダのブロック図である。
図8】別の実施形態によるデコーダのブロック図である。
図9】一実施形態によるイントラピクチャブロック補償の例示的な実施形態を示す図である。
図10A】イントラピクチャブロック補償の例示的な実施形態を示す図である。
図10B】イントラピクチャブロック補償の例示的な実施形態を示す図である。
図10C】イントラピクチャブロック補償の例示的な実施形態を示す図である。
図10D】イントラピクチャブロック補償の例示的な実施形態を示す図である。
図11】一実施形態による空間マージ候補の例示的な位置を示す図である。
図12】イントラ文字列コピーの例示的な実施形態を示す図である。
図13】本開示のいくつかの実施形態による第1のプロセス例を概説するフローチャートである。
図14】本開示のいくつかの実施形態による第2のプロセス例を概説するフローチャートである。
図15】一実施形態によるコンピュータシステムの概略図である。
【発明を実施するための形態】
【0040】
図3は、本開示の一実施形態による通信システム(300)の簡略ブロック図を示す。通信システム(300)は、例えばネットワーク(350)を介して互いに通信可能な複数の端末装置を含む。例えば、通信システム(300)は、ネットワーク(350)を介して相互接続された第1のペアの端末装置(310)及び(320)を含む。図3の例では、第1のペアの端末装置(310)及び(320)は、データの一方向送信を行う。例えば、端末装置(310)は、ビデオデータ(例えば、端末装置(310)によって取り込まれたビデオピクチャのストリーム)をコーディングして、ネットワーク(350)を介して他の端末装置(320)に送信することができる。符号化したビデオデータは、1つ又は複数のコーディングしたビデオ・ビットストリームの形式で送信され得る。端末装置(320)は、ネットワーク(350)からコーディングしたビデオデータを受信し、コーディングしたビデオデータを復号化してビデオピクチャを復元し、復元したビデオデータに従ってビデオピクチャを表示することができる。一方向データ送信は、メディア提供アプリケーション等では一般的であり得る。
【0041】
別の例では、通信システム(300)は、例えばテレビ会議中に起こり得るコーディングしたビデオデータの双方向送信を行う第2のペアの端末装置(330)及び(340)を含む。データの双方向送信の場合に、一例では、端末装置(330)及び(340)の各端末装置は、ビデオデータ(例えば、端末装置によって取り込まれたビデオピクチャのストリーム)をコーディングして、ネットワーク(350)を介して端末装置(330)及び(340)の他方の端末に送信することができる。端末装置(330)及び(340)の各端末装置はまた、端末装置(330)及び(340)の他方の端末装置によって送信されたコーディングしたビデオデータを受信し、コーディングしたビデオデータを復号化してビデオを復元することができ、そして、復元したビデオデータに従って、アクセス可能な表示装置にビデオピクチャを表示することもできる。
【0042】
図3の例では、端末装置(310)、(320)、(330)、及び(340)は、サーバ、パーソナルコンピュータ、及びスマートフォンとして示されるが、本開示の原理はそれに限定されない場合がある。本開示の実施形態は、ラップトップコンピュータ、タブレットコンピュータ、メディアプレーヤ、及び/又は専用ビデオ会議機器に用途を見出される。ネットワーク(350)は、端末装置(310)、(320)、(330)及び(340)の間でコーディングしたビデオデータを伝達する、例えば有線(有線接続された)及び/又は無線通信ネットワークを含む任意の数のネットワークを表す。通信ネットワーク(350)は、回線交換チャネル及び/又はパケット交換チャネルでデータを交換することができる。代表的なネットワークには、電気通信ネットワーク、ローカルエリアネットワーク、ワイドエリアネットワーク、及び/又はインターネットが含まれる。本議論の目的のために、ネットワーク(350)のアーキテクチャ及びトポロジーは、本明細書で以下に説明しない限り、本開示の動作にとって重要ではないかもしれない。
【0043】
図4は、開示する主題のアプリケーションの例として、ストリーミング環境におけるビデオエンコーダ及びビデオデコーダの配置を示す。開示する主題は、例えば、ビデオ会議、デジタルTV、及びCD、DVD、メモリスティック等を含むデジタルメディアへの圧縮ビデオの格納等を含む、他のビデオ対応アプリケーションにも同様に適用可能である。
【0044】
ストリーミングシステムは、ビデオソース(401)、例えば圧縮していないビデオピクチャ(402)のストリームを作成するデジタルカメラを含むことができる取込みサブシステム(413)を含むことができる。一例では、ビデオピクチャ(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)として非公式に知られている。開示する主題は、VVCの文脈で使用され得る。
【0045】
電子装置(420)及び(430)は、他のコンポーネント(図示せず)を含むことができることに留意されたい。例えば、電子装置(420)はビデオデコーダ(図示せず)を含むことができ、電子装置(430)はビデオエンコーダ(図示せず)も含むことができる。
【0046】
図5は、本開示の一実施形態によるビデオデコーダ(510)のブロック図を示す。ビデオデコーダ(510)は、電子装置(530)に含めることができる。電子装置(530)は、受信機(531)(例えば、受信回路)を含むことができる。ビデオデコーダ(510)は、図4の例のビデオデコーダ(410)の代わりに使用することができる。
【0047】
受信機(531)は、ビデオデコーダ(510)によって復号化される1つ又は複数のコーディングしたビデオシーケンスを受信することができる。同じ又は別の実施形態では、一度に1つのビデオシーケンスがコーディングされ、各コーディングしたビデオシーケンスの復号化は、他のコーディングしたビデオシーケンスから独立している。コーディングしたビデオシーケンスは、チャネル(501)から受信され得、チャネルは、符号化したビデオデータを記憶する記憶装置へのハードウェア/ソフトウェアリンクであり得る。受信機(531)は、符号化したビデオデータを他のデータ、例えばコーディングした音声データ及び/又は補助データストリームと共に受信し得、それらはそれぞれの使用エンティティ(図示せず)に転送され得る。受信機(531)は、コーディングしたビデオシーケンスを他のデータから分離することができる。ネットワークのジッタに対処するために、バッファメモリ(515)が、受信機(531)とエントロピーデコーダ/パーサー(520)(以後、「パーサー(520)」)との間に結合され得る。特定のアプリケーションでは、バッファメモリ(515)はビデオデコーダ(510)の一部である。他の場合には、そのバッファメモリ(515)はビデオデコーダ(510)の外部にあってもよい(図示せず)。さらに他の例では、ビデオデコーダ(510)の外側にバッファメモリ(図示せず)を設けて、例えばネットワークジッタに対処し、さらに、ビデオデコーダ(510)の内部に別のバッファメモリ(515)を設けて、プレイアウト(playout)のタイミングを処理する。受信機(531)が、十分な帯域幅及び制御可能性の格納装置/転送装置から、又は等同期ネットワークからデータを受信している場合に、バッファメモリ(515)は必要ないか、又は小さくてよい。インターネット等のベストエフォート型パケットネットワークで使用する場合に、バッファメモリ(515)が必要になる場合があり、バッファメモリ(515)は、比較的大きくすることができ、サイズを有利に適応させることができ、ビデオデコーダ(510)の外にあるオペレーティングシステム又は同様の要素(図示せず)で少なくとも部分的に実装することができる。
【0048】
ビデオデコーダ(510)は、コーディングしたビデオシーケンスからシンボル(521)を再構成するパーサー(520)を含み得る。図5に示されるように、これらのシンボルのカテゴリには、ビデオデコーダ(510)の動作を管理するために使用される情報と、電子装置(530)の必須の部分ではないが電子装置(530)に結合され得るレンダリング装置(512)(例えば、表示画面)等のレンダリング装置を制御するための潜在的な情報とが含まれる。レンダリング装置の制御情報は、SEIメッセージ(Supplemental Enhancement Information)又はVUI(Video
Usability Information)パラメータセット・フラグメント(図示せず)の形式であり得る。パーサー(520)は、受信したコーディングしたビデオシーケンスを解析/エントロピー復号化することができる。コーディングされるビデオシーケンスのコーディングは、ビデオコーディング技術又は規格に従うことができ、可変長コーディング、ハフマン・コーディング、コンテキスト依存又はコンテキスト非依存の算術コーディング等を含む様々な原則に従うことができる。パーサー(520)は、グループに対応する少なくとも1つのパラメータに基づいて、ビデオデコーダ内のピクセルのサブグループのうちの少なくとも1つに対するサブグループ・パラメータのセットをコーディングしたビデオシーケンスから抽出することができる。サブグループには、GOP(Group of Pictures)、ピクチャ、タイル、スライス、マクロブロック、コーディングユニット(CU)、ブロック、変換ユニット(TU)、予測ユニット(PU)等を含めることができる。パーサー(520)はまた、変換係数、量子化パラメータ値、動きベクトル等の情報を、コーディングしたビデオシーケンスから抽出することができる。
【0049】
パーサー(520)は、バッファメモリ(515)から受信したビデオシーケンスに対してエントロピー復号化/解析動作を実行して、シンボル(521)を作成することができる。
【0050】
シンボルの再構成(521)は、コーディングしたビデオピクチャ又はその部分(インターピクチャ及びイントラピクチャ、インターブロック及びイントラブロック等)のタイプ、及び他の要因に応じて、複数の異なるユニットを含むことができる。どのユニットがどのように関与するかは、パーサー(520)がコーディングしたビデオシーケンスから解析したサブグループ制御情報によって制御され得る。パーサー(520)と以下の複数のユニットとの間のそのようなサブグループ制御情報の流れは、明確にするために図示していない。
【0051】
既に述べた機能ブロックを超えて、ビデオデコーダ(510)は、以下に説明するように、概念的にいくつかの機能ユニットに細分化され得る。商業的な制約の下で動作する実際の実施態様では、これらのユニットの多くは、互いに密接に相互作用し、少なくとも部分的に互いに統合することができる。しかしながら、開示する主題を説明する目的のために、以下の機能ユニットへの概念的な細分化は適切である。
【0052】
第1のユニットは、スケーラー/逆変換ユニット(551)である。スケーラー/逆変換ユニット(551)は、量子化した変換係数と、使用する変換、ブロックサイズ、量子化係数、量子化スケーリング・マトリックス等を含む制御情報とを、パーサー(520)からシンボル(521)として受信する。スケーラー/逆変換ユニット(551)は、アグリゲータ(aggregator)(555)に入力することができるサンプル値を含むブロックを出力することができる。
【0053】
場合によっては、スケーラー/逆変換(551)の出力サンプルは、イントラコーディングブロック、つまり、以前に再構成したピクチャからの予測情報を使用しないが、現在のピクチャの以前に再構成した部分からの予測情報を使用することができるブロックに関係し得る。そのような予測情報は、イントラピクチャ予測ユニット(552)によって提供され得る。場合によっては、イントラピクチャ予測ユニット(552)は、現在のピクチャバッファ(558)からフェッチされた周囲の再構成済みの情報を使用して、再構成中のブロックと同じサイズ及び形状のブロックを生成する。現在のピクチャバッファ(558)は、例えば、部分的に再構成した現在のピクチャ及び/又は完全に再構成した現在のピクチャをバッファリングする。アグリゲータ(555)は、場合によっては、サンプル毎に、イントラ予測ユニット(552)が生成した予測情報を、スケーラー/逆変換ユニット(551)によって提供される出力サンプル情報に追加する。
【0054】
他の場合では、スケーラー/逆変換ユニット(551)の出力サンプルは、インターコーディングされ、潜在的に動き補償されたブロックに関係することができる。そのような場合に、動き補償予測ユニット(553)は、参照ピクチャメモリ(557)にアクセスして、予測に使用されるサンプルをフェッチすることができる。ブロックに関連するシンボル(521)に従ってフェッチされたサンプルを動き補償した後に、これらのサンプルは、アグリゲータ(555)によって、スケーラー/逆変換ユニット(551)の出力に追加され(この場合、残差サンプル又は残差信号と呼ばれる)、出力サンプル情報を生成することができる。動き補償予測ユニット(553)が予測サンプルをフェッチする参照ピクチャメモリ(557)内のアドレスは、例えば、X、Y、及び参照ピクチャ成分を有し得るシンボル(521)の形式で動き補償予測ユニット(553)に利用可能な動きベクトルによって制御することができる。動き補償は、サブサンプルの正確な動きベクトルが使用される場合に、参照ピクチャメモリ(557)からフェッチされたサンプル値の補間、動きベクトル予測メカニズム等も含むことができる。
【0055】
アグリゲータ(555)の出力サンプルは、ループフィルタユニット(556)において様々なループフィルタリング技術を受け得る。ビデオ圧縮技術には、コーディングしたビデオシーケンス(コーディングしたビデオ・ビットストリームとも呼ばれる)に含まれるパラメータによって制御され、パーサー(520)からのシンボル(521)としてループフィルタユニット(556)に利用可能にされるが、コーディングしたピクチャ又はコーディングしたビデオシーケンスの以前の(デコード順で)部分の復号化中に取得したメタ情報に応答することも、以前に再構成しループフィルタ処理したサンプル値に応答することもできるインループフィルタ技術を含むことができる。
【0056】
ループフィルタユニット(556)の出力は、レンダリング装置(512)に出力することができるとともに、将来のインターピクチャ予測で使用するために参照ピクチャメモリ(557)に格納することができるサンプルストリームであり得る。
【0057】
特定のコーディングしたピクチャは、完全に再構成されると、将来の予測のための参照ピクチャとして使用することができる。例えば、現在のピクチャに対応するコーディングしたピクチャが完全に再構成され、コーディングしたピクチャが(例えば、パーサー(520)によって)参照ピクチャとして特定されると、現在のピクチャバッファ(558)は参照ピクチャメモリ(557)一部になることができ、新しい現在のピクチャバッファは、次のコーディングしたピクチャの再構成を開始する前に再割り当てされ得る。
【0058】
ビデオデコーダ(510)は、ITU-T Rec.H.265等の規格で所定のビデオ圧縮技術に従って復号化動作を行うことができる。コーディングしたビデオシーケンスは、コーディングしたビデオシーケンスが、ビデオ圧縮技術又は規格のシンタックスと、ビデオ圧縮技術又は規格で文書化されているプロファイルとの両方に準拠しているという意味で、使用しているビデオ圧縮技術又は規格によって指定されたシンタックスに準拠することができる。具体的には、プロファイルは、ビデオ圧縮技術又は規格で利用可能な全てのツールから、そのプロファイルで使用できる唯一のツールとして特定のツールを選択することができる。また、コーディングしたビデオシーケンスの複雑さが、ビデオ圧縮技術又は規格のレベルによって規定した範囲内にあることも、コンプライアンスに必要な場合がある。場合によっては、レベルによって、最大ピクチャサイズ、最大フレームレート、最大再構成サンプルレート(例えば、1秒あたりのメガサンプル数で測定される)、最大参照ピクチャサイズ等が制限される。レベルによって設定された制限は、場合によっては、HRD(Hypothetical Reference Decoder)仕様と、コーディングしたビデオシーケンスで通知されるHRDバッファ管理のメタデータとによってさらに制限され得る。
【0059】
一実施形態では、受信機(531)は、符号化したビデオと共に追加の(冗長な)データを受信することができる。追加のデータは、コーディングしたビデオシーケンスの一部として含めることができる。追加データは、データを適切にデコードする及び/又は元のビデオデータをより正確に再構成するために、ビデオデコーダ(510)によって使用され得る。追加データは、例えば、時間的、空間的、又は信号雑音比(SNR)エンハンスメントレイヤ、冗長スライス、冗長ピクチャ、前方誤り訂正符号等の形態をとることができる。
【0060】
図6は、本開示の一実施形態によるビデオエンコーダ(603)のブロック図を示す。ビデオエンコーダ(603)は、電子装置(620)内に含まれる。電子装置(620)は、送信機(640)(例えば、送信回路)を含む。ビデオエンコーダ(603)は、図4の例のビデオエンコーダ(403)の代わりに使用することができる。
【0061】
ビデオエンコーダ(603)は、ビデオエンコーダ(603)によってコーディングされるビデオ画像を取り込むことができるビデオソース(601)(図6の例では電子装置(620)の一部ではない)からビデオサンプルを受信することができる。別の例では、ビデオソース(601)は電子装置(620)の一部である。
【0062】
ビデオソース(601)は、ビデオエンコーダ(603)によってコーディングされるソース・ビデオシーケンスを、任意の適切なビット深度(例えば、8ビット、10ビット、12ビット等)、任意の色空間(BT.601 Y CrCB、RGB等)、及び適切なサンプリング構造(Y CrCB 4:2:0、Y CrCB 4:4:4等)であり得るデジタルビデオサンプルストリームの形態で提供することができる。メディア提供システムでは、ビデオソース(601)は、以前に準備したビデオを格納する記憶装置であり得る。ビデオ会議システムでは、ビデオソース(601)は、ローカル画像情報をビデオシーケンスとして取り込むカメラであり得る。ビデオデータは、連続して見たときに動きを与える複数の個別のピクチャとして提供され得る。ピクチャ自体は、ピクセルの空間アレイとして編成することができ、各ピクセルは、使用中のサンプリング構造、色空間等に応じて、1つ又は複数のサンプルを含むことができる。当業者は、ピクセルとサンプルとの間の関係を容易に理解することができる。以下の説明は、サンプルに焦点を当てている。
【0063】
一実施形態によれば、ビデオエンコーダ(603)は、ソース・ビデオシーケンスのピクチャをコーディングして、アプリケーションによって必要とされる任意の他の時間制約の下で、コーディングしたビデオシーケンス(643)にリアルタイムで圧縮することができる。適切なコーディング速度を強制することは、コントローラ(650)の1つの機能である。いくつかの実施形態では、コントローラ(650)は、後述するように他の機能ユニットを制御し、他の機能ユニットに機能的に結合される。明確にするために、結合は描いていない。コントローラ(650)によって設定されるパラメータには、レート制御関連パラメータ(ピクチャスキップ、量子化器、レート歪み最適化技術のラムダ値等)、ピクチャサイズ、GOP(group of pictures)レイアウト、最大動きベクトル検索範囲等が含まれ得る。コントローラ(650)は、特定のシステム設計のために最適化されたビデオエンコーダ(603)に関連する他の適切な機能を有するように構成され得る。
【0064】
いくつかの実施形態では、ビデオエンコーダ(603)は、コーディングループで動作するように構成される。非常に単純化した説明として、例では、コーディングループは、ソースコーダ(630)(例えば、コーディングされる入力ピクチャ及び参照ピクチャに基づいて、シンボルストリーム等のシンボルを作成する役割を担う)、及びビデオエンコーダ(603)に埋め込まれた(ローカル)デコーダ(633)を含むことができる。デコーダ(633)は、シンボルを再構成して、(開示する主題で考慮されるビデオ圧縮技術では、シンボルとコーディングしたビデオ・ビットストリームとの間の圧縮は可逆であるため)(リモート)デコーダも作成するのと同様の方法でサンプルデータを作成する。再構成したサンプルストリーム(サンプルデータ)は、参照ピクチャメモリ(634)に入力される。シンボルストリームの復号化は、デコーダの位置(ローカル又はリモート)とは無関係にビット単位の正確な結果をもたらすため、参照ピクチャメモリ(634)の内容も、ローカルエンコーダとリモートエンコーダとの間でビット単位で正確である。換言すると、エンコーダの予測部分は、デコーダが復号化中に予測を使用するときに「見る」のとまったく同じサンプル値を参照ピクチャサンプルとして「見る」。参照ピクチャ同期のこの基本原理(及び、例えばチャネルエラーのために同期が維持できない場合に生じるドリフト)は、一部の関連技術でも使用されている。
【0065】
「ローカル」デコーダ(633)の動作は、図5に関連して上で既に説明したビデオデコーダ(510)等の「リモート」デコーダの動作と同じであり得る。図5についても簡単に参照すると、ただし、シンボルが利用可能であり、エントロピーコーダ(645)及びパーサー(520)によるコーディングしたビデオシーケンスに対するシンボルの符号化/復号化は可逆であり得るので、バッファメモリ(515)を含むビデオデコーダ(510)及びパーサー(520)のエントロピー復号化部分は、ローカルデコーダ(633)に完全には実装されない場合がある。
【0066】
この時点で観察できることは、デコーダに存在する解析/エントロピー復号化を除く任意のデコーダ技術も、対応するエンコーダにおいて実質的に同一の機能形式で必然的に存在する必要があるということである。このため、開示する主題は、デコーダの動作に焦点を当てている。エンコーダ技術の説明は、包括的に説明しているデコーダ技術の逆であるため、省略できる。特定の領域でのみ、より詳細な説明が必要であり、以下で説明している。
【0067】
動作中に、いくつかの例では、ソースコーダ(630)は、「参照ピクチャ」として指定されたビデオシーケンスからの1つ又は複数の以前にコーディングしたピクチャを参照して入力ピクチャを予測的にコーディングする動き補償予測コーディングを実行することができる。このようにして、コーディングエンジン(632)は、入力ピクチャのピクセルブロックと、入力ピクチャに対する予測参照として選択され得る参照ピクチャのピクセルブロックとの間の差分をコーディングする。
【0068】
ローカルビデオデコーダ(633)は、ソースコーダ(630)によって作成されたシンボルに基づいて、参照ピクチャとして指定され得るピクチャのコーディングしたビデオデータを復号化し得る。コーディングエンジン(632)の動作は、不可逆プロセスであることが有利となり得る。コーディングしたビデオデータがビデオデコーダ(図6には図示せず)で復号化され得る場合に、再構成したビデオシーケンスは、典型的に、いくつかのエラーを含むソース・ビデオシーケンスの複製であり得る。ローカルビデオデコーダ(633)は、ビデオデコーダが参照ピクチャに対して実行し得、再構成した参照ピクチャを参照ピクチャキャッシュ(634)に格納させ得る復号化プロセスを複製する。このようにして、ビデオエンコーダ(603)は、ファーエンドビデオデコーダ(不在送信エラー)によって取得される再構成した参照ピクチャと共通の内容を有する再構成参照ピクチャのコピーをローカルに格納することができる。
【0069】
予測器(predictor)(635)は、コーディングエンジン(632)の予測検索を実行することができる。すなわち、コーディングされる新しいピクチャについて、予測器(635)は、サンプルデータ(候補参照ピクセルブロックとして)又は参照ピクチャ動きベクトル、ブロック形状等の特定のメタデータを求めて参照ピクチャメモリ(634)を検索することができ、それは、新しいピクチャの適切な予測参照として機能し得る。予測器(635)は、適切な予測参照を見つけるために、サンプルブロック対ピクセルブロック(sample block-by-pixel block)のベースで動作することができる。場合によっては、予測器(635)が得た検索結果によって決定されるように、入力ピクチャは、参照ピクチャメモリ(634)に格納された複数の参照ピクチャから引き出された予測参照を有し得る。
【0070】
コントローラ(650)は、例えば、ビデオデータを符号化するために使用したパラメータ及びサブグループ・パラメータの設定を含む、ソースコーダ(630)のコーディング動作を管理することができる。
【0071】
前述の全ての機能ユニットの出力は、エントロピーコーダ(645)においてエントロピーコーディングを受け得る。エントロピーコーダ(645)は、ハフマン・コーディング、可変長コーディング、算術コーディング等の技術に従ってシンボルを可逆圧縮することにより、様々な機能ユニットによって生成されたシンボルをコーディングされるビデオシーケンスに変換する。
【0072】
送信機(640)は、エントロピーコーダ(645)が作成したコーディングしたビデオシーケンスをバッファリングして、(符号化したビデオデータを格納する)ストレージデバイスへのハードウェア/ソフトウェアリンクであり得る通信チャネル(660)を介した送信に備えることができる。送信機(640)は、ビデオコーダ(603)からのコーディングしたビデオデータを、送信すべき他のデータ、例えばコーディングしたオーディオデータ及び/又は補助データストリーム(ソースは図示せず)とマージすることができる。
【0073】
コントローラ(650)は、ビデオエンコーダ(603)の動作を管理することができる。コーディング中に、コントローラ(650)は、それぞれのピクチャに適用され得るコーディング技術に影響を及ぼし得る特定のコーディングしたピクチャタイプを各コーディングしたピクチャに割り当て得る。例えば、大抵の場合、ピクチャは次のいずれかのピクチャタイプとして割り当てられる。
【0074】
イントラピクチャ(Iピクチャ)は、予測のソースとしてシーケンス内の他のピクチャを使用せずに符号化及び復号化され得るピクチャであり得る。一部のビデオコーデックは、例えば独立デコーダリフレッシュ(IDR)ピクチャを含む、様々なタイプのイントラピクチャを許容する。当業者は、Iピクチャのそれらの変形、並びにそれらのそれぞれの用途及び特徴を知っている。
【0075】
予測ピクチャ(Pピクチャ)は、各ブロックのサンプル値を予測するために最大1つの動きベクトル及び参照インデックスを使用するイントラ予測又はインター予測を使用して符号化及び復号化され得るピクチャであり得る。
【0076】
双方向予測ピクチャ(Bピクチャ)は、各ブロックのサンプル値を予測するために最大2つの動きベクトル及び参照インデックスを使用するイントラ予測又はインター予測を使用して符号化及び復号化され得るピクチャであり得る。同様に、複数の予測ピクチャは、単一ブロックの再構成のために、3つ以上の参照画像及び関連するメタデータを使用することができる。
【0077】
ソースピクチャは、一般に、空間的に複数のサンプルブロック(例えば、それぞれ4×4、8×8、4×8、又は16×16サンプルのブロック)に細分化され、ブロック毎にコーディングされ得る。ブロックは、ブロックのそれぞれのピクチャに適用されるコーディング割当てによって決定されるように、他の(既にコーディングした)ブロックを参照して予測的にコーディングされ得る。例えば、Iピクチャのブロックは、非予測的にコーディングしてもよく、又は同じピクチャの既にコーディングしたブロックを参照して予測的にコーディング(空間予測又はイントラ予測)してもよい。Pピクチャのピクセルブロックは、空間的予測を介して、又は以前にコーディングした1つの参照ピクチャを参照した時間的予測を介して、予測的にコーディングされ得る。Bピクチャのブロックは、空間予測を介して、又は以前にコーディングした1つ又は2つの参照ピクチャを参照して時間的予測を介して、予測的にコーディングされ得る。
【0078】
ビデオエンコーダ(603)は、ITU-T Rec.H.265等の所定のビデオコーディング技術又は規格に従ってコーディング動作を実行することができる。その動作において、ビデオエンコーダ(603)は、入力ビデオシーケンスにおける時間的及び空間的冗長性を利用する予測コーディング動作を含む、様々な圧縮動作を実行することができる。従って、コーディングしたビデオデータは、使用しているビデオコーディング技術又は規格によって指定されたシンタックスに準拠し得る。
【0079】
一実施形態では、送信機(640)は、符号化したビデオと共に追加のデータを送信することができる。ソースコーダ(630)は、コーディングしたビデオシーケンスの一部としてそのようなデータを含み得る。追加のデータは、時間/空間/SNRエンハンスメントレイヤ、冗長ピクチャ及びスライス等の他の形式の冗長データ、SEIメッセージ、VUIパラメータセット・フラグメント等を含み得る。
【0080】
ビデオは、時系列における複数のソースピクチャ(ビデオピクチャ)として取り込まれられ得る。イントラピクチャ予測(大抵の場合、イントラ予測と省略される)は、所与のピクチャの空間相関を利用し、インターピクチャ予測は、ピクチャ同士の間の(時間的又は他の)相関を利用する。一例では、現在のピクチャと呼ばれる符号化/復号化中の特定のピクチャが、ブロックにパーティション分割される。現在のピクチャ内のブロックが、ビデオ内の以前にコーディングし、依然としてバッファリングされている参照ピクチャ内の参照ブロックに類似している場合に、現在のピクチャ内のブロックは、動きベクトルと呼ばれるベクトルによってコーディングされ得る。動きベクトルは、参照ピクチャ内の参照ブロックを指し、複数の参照ピクチャが使用されている場合に、参照ピクチャを特定する第3の次元を有することができる。
【0081】
いくつかの実施形態では、双方向予測技術がインターピクチャ予測に使用され得る。双方向予測技術によれば、第1の参照ピクチャ及び第2の参照ピクチャ等の2つの参照ピクチャが使用され、両方の参照ピクチャともビデオ内の現在のピクチャよりもデコード順で前になる(が、表示順でそれぞれ過去及び未来になり得る)。現在のピクチャ内のブロックは、第1の参照ピクチャ内の第1の参照ブロックを指す第1の動きベクトル、及び第2の参照ピクチャ内の第2の参照ブロックを指す第2の動きベクトルによってコーディングされ得る。ブロックは、第1の参照ブロック及び第2の参照ブロックの組合せによって予測され得る。
【0082】
また、コーディング効率を向上させるために、インターピクチャ予測にマージモード技術を使用することができる。
【0083】
本開示のいくつかの実施形態によれば、インターピクチャ予測及びイントラピクチャ予測等の予測は、ブロック単位で実行される。例えば、HEVC規格によれば、ビデオピクチャのシーケンス内のピクチャは、圧縮のためにコーディングツリーユニット(CTU)にパーティション分割され、ピクチャ内のCTUは、64×64ピクセル、32×32ピクセル、又は16×16ピクセル等の同じサイズを有する。一般に、CTUは、1つのルマCTB及び2つのクロマCTBである3つのコーディングツリーブロック(CTB)を含む。各CTUは、1つ又は複数のコーディングユニット(CU)に再帰的に四分木分割され得る。例えば、64×64ピクセルのCTUは、64×64ピクセルの1つのCU、32×32ピクセルの4つのCU、又は16×16ピクセルの16個のCUに分割され得る。一例では、インター予測タイプ又はイントラ予測タイプ等のCUの予測タイプを決定するために、各CUが解析される。CUは、時間的及び/又は空間的な予測可能性に応じて、1つ又は複数の予測単位(PU)に分割される。一般に、各PUは、ルマ(luma:輝度)予測ブロック(PB)、及び2つのクロマ(chroma:色差)PBを含む。一実施形態では、コーディング(符号化/復号化)における予測演算は、予測ブロック単位で実行される。予測ブロックの例としてルマ予測ブロックを使用すると、予測ブロックは、8×8ピクセル、16×16ピクセル、8×16ピクセル、16×8ピクセル等のピクセルの値(例えば、ルマ値)のマトリックスを含む。
【0084】
図7は、本開示の別の実施形態によるビデオエンコーダ(703)の図を示す。ビデオエンコーダ(703)は、ビデオピクチャのシーケンスにおける現在のビデオピクチャ内のサンプル値の処理ブロック(例えば、予測ブロック)を受信し、処理ブロックをコーディングしたビデオシーケンスの一部であるコーディングしたピクチャに符号化するように構成される。一例では、ビデオエンコーダ(703)は、図4の例のビデオエンコーダ(403)の代わりに使用される。
【0085】
HEVCの例では、ビデオエンコーダ(703)は、8×8サンプルの予測ブロック等の処理ブロックのサンプル値のマトリックスを受信する。ビデオエンコーダ(703)は、例えばレート歪み最適化を使用するイントラモード、インターモード、又は双予測モードを使用して、処理ブロックが最良にコーディングされるかどうかを判定する。処理ブロックがイントラモードでコーディングされる場合に、ビデオエンコーダ(703)は、イントラ予測技術を使用して、処理ブロックをコーディングしたピクチャに符号化することができる。処理ブロックがインターモード又は双方向予測モードでコーディングされる場合に、ビデオエンコーダ(703)は、インター予測又は双方向予測技術をそれぞれ使用して、処理ブロックをコーディングしたピクチャに符号化することができる。特定のビデオコーディング技術では、マージモードは、動きベクトルが、1つ又は複数の動きベクトル予測子から予測子の外側のコーディングした動きベクトル成分の恩恵を受けずに導出される、インターピクチャ予測サブモードとすることができる。ある他のビデオコーディング技術では、対象ブロックに適用可能な動きベクトル成分が存在し得る。一例では、ビデオエンコーダ(703)は、処理ブロックのモードを決定するモード決定モジュール(図示せず)等の他のコンポーネントを含む。
【0086】
図7の例では、ビデオエンコーダ(703)は、図7に示されるように一緒に結合されるインターエンコーダ(730)、イントラエンコーダ(722)、残差計算器(723)、スイッチ(726)、残差エンコーダ(724)、汎用コントローラ(721)、及びエントロピーエンコーダ(725)を含む。
【0087】
インターエンコーダ(730)は、現在のブロック(例えば、処理ブロック)のサンプルを受信し、そのブロックを参照ピクチャ内の1つ又は複数の参照ブロック(例えば、以前のピクチャ及び後のピクチャ内のブロック)と比較し、インター予測情報(例えば、インター符号化技術、動きベクトル、マージモード情報による冗長情報の記述)を生成し、任意の適切な技術を使用してインター予測情報に基づいてインター予測結果(例えば、予測ブロック)を計算するように構成される。いくつかの例では、参照ピクチャは、符号化したビデオ情報に基づいて復号化される復号化した参照ピクチャである。
【0088】
イントラエンコーダ(722)は、現在のブロック(例えば、処理ブロック)のサンプルを受け取り、場合によっては、そのブロックを同じピクチャ内で既にコーディングしたブロックと比較し、変換後に量子化した係数を生成し、場合によっては、イントラ予測情報(例えば、1つ又は複数のイントラ符号化技術によるイントラ予測方向情報)も生成する。一例では、イントラエンコーダ(722)は、イントラ予測情報及び同じピクチャ内の参照ブロックに基づいて、イントラ予測結果(例えば、予測ブロック)も計算する。
【0089】
汎用コントローラ(721)は、汎用制御データを決定し、汎用制御データに基づいてビデオエンコーダ(703)の他のコンポーネントを制御するように構成される。一例では、汎用コントローラ(721)は、ブロックのモードを決定し、モードに基づいて制御信号をスイッチ(726)に供給する。例えば、モードがイントラモードである場合に、汎用コントローラ(721)は、スイッチ(726)を制御して、残差計算器(723)が使用するイントラモードの結果を選択し、エントロピーエンコーダ(725)を制御してイントラ予測情報を選択し、イントラ予測情報をビットストリームに含める。モードがインターモードである場合に、汎用コントローラ(721)は、スイッチ(726)を制御して、残差計算器(723)が使用するインター予測の結果を選択し、エントロピーエンコーダ(725)を制御してインター予測情報を選択し、インター予測情報をビットストリームに含める。
【0090】
残差計算器(723)は、受信ブロックと、イントラエンコーダ(722)又はインターエンコーダ(730)から選択した予測結果との差(残差データ)を計算するように構成される。残差エンコーダ(724)は、残差データに基づいて動作し、残差データを符号化して変換係数を生成するように構成される。一例では、残差エンコーダ(724)は、残差データを空間ドメインから周波数ドメインに変換し、変換係数を生成するように構成される。次に、変換係数は量子化処理を受け、量子化した変換係数が得られる。様々な実施形態では、ビデオエンコーダ(703)は残差デコーダ(728)も含む。残差デコーダ(728)は、逆変換を実行し、復号化した残差データを生成するように構成される。復号化した残差データは、イントラエンコーダ(722)及びインターエンコーダ(730)によって適切に使用され得る。例えば、インターエンコーダ(730)は、復号化した残差データ及びインター予測情報に基づいて復号化ブロックを生成することができ、イントラエンコーダ(722)は、復号化した残差データ及びイントラ予測情報に基づいて復号化ブロックを生成することができる。復号化ブロックは、復号化したピクチャを生成するために適切に処理され、復号化したピクチャは、メモリ回路(図示せず)にバッファリングされ、いくつかの例では参照ピクチャとして使用され得る。
【0091】
エントロピーエンコーダ(725)は、符号化したブロックを含むようにビットストリームをフォーマットするように構成される。エントロピーエンコーダ(725)は、HEVC規格等の適切な規格に従って様々な情報を含むように構成される。一例では、エントロピーエンコーダ(725)は、汎用制御データ、選択した予測情報(例えば、イントラ予測情報又はインター予測情報)、残差情報、及び他の適切な情報をビットストリームに含めるように構成される。開示する主題によれば、インターモード又は双方向予測モードのいずれかのマージサブモードでブロックをコーディングするときに、残差情報がないことに留意されたい。
【0092】
図8は、本開示の別の実施形態によるビデオデコーダ(810)の図を示す。ビデオデコーダ(810)は、コーディングしたビデオシーケンスの一部であるコーディングしたピクチャを受信し、コーディングしたピクチャを復号化して再構成したピクチャを生成するように構成される。一例では、ビデオデコーダ(810)は、図4の例のビデオデコーダ(410)の代わりに使用される。
【0093】
図8の例では、ビデオデコーダ(810)は、図8に示されるように一緒に結合されるエントロピーデコーダ(871)、インターデコーダ(880)、残差デコーダ(873)、再構成モジュール(874)、及びイントラデコーダ(872)を含む。
【0094】
エントロピーデコーダ(871)は、コーディングしたピクチャから、コーディングしたピクチャを構成するシンタックス要素を表す特定のシンボルを再構成するように構成され得る。そのようなシンボルは、例えば、ブロックがコーディングされるモード(例えば、イントラモード、インターモード、双方向予測モード、後者の2つのマージサブモード又は別のサブモード等)、イントラデコーダ(872)又はインターデコーダ(880)が予測にそれぞれ使用する特定のサンプル又はメタデータを特定することができる予測情報(例えば、イントラ予測情報又はインター予測情報)、例えば量子化した変換係数の形式の残差情報等を含むことができる。一例では、予測モードがインター又は双予測モードである場合に、インター予測情報はインターデコーダ(880)に提供される。予測タイプがイントラ予測タイプである場合に、イントラ予測情報はイントラデコーダ(872)に提供される。残差情報は、逆量子化を受けることができ、残差デコーダ(873)に提供される。
【0095】
インターデコーダ(880)は、インター予測情報を受信し、インター予測情報に基づいてインター予測の結果を生成するように構成される。
【0096】
イントラデコーダ(872)は、イントラ予測情報を受信し、イントラ予測情報に基づいて予測結果を生成するように構成される。
【0097】
残差デコーダ(873)は、逆量子化を実行して逆量子化変換係数を抽出し、逆量子化変換係数を処理して、残差を周波数ドメインから空間ドメインに変換するように構成される。残差デコーダ(873)はまた、(量子化パラメータ(QP)を含めるための)特定の制御情報を必要とすることがあり、その情報はエントロピーデコーダ(871)によって提供され得る(これは少量の制御情報のみであり得るため、データパスは示していない)。
【0098】
再構成モジュール(874)は、残差デコーダ(873)が出力した残差及び(場合によってはインター又はイントラ予測モジュールが出力した)予測結果を空間ドメインで結合して、(再構成したピクチャの一部である可能性のある)再構成したブロックを形成するように構成され、これは再構成したビデオの一部であり得る。視覚的品質を向上させるために、デブロッキング操作等の他の適切な操作を実行できることに留意されたい。
【0099】
ビデオエンコーダ(403)、(603)、及び(703)、並びにビデオデコーダ(410)、(510)、及び(810)は、任意の適切な技術を使用して実装できることに留意されたい。一実施形態では、ビデオエンコーダ(403)、(603)、及び(703)、並びにビデオデコーダ(410)、(510)、及び(810)は、1つ又は複数の集積回路を使用して実装することができる。別の実施形態では、ビデオエンコーダ(403)、(603)、及び(603)、並びにビデオデコーダ(410)、(510)、及び(810)は、ソフトウェア命令を実行する1つ又は複数のプロセッサを使用して実装することができる。
【0100】
異なるピクチャからのブロックベースの補償は、動き補償と呼ばれ得る。同様に、同じピクチャ内の以前に再構成した領域からブロックベースの補償を実行することもでき、これは、イントラピクチャブロック補償、現在のピクチャ参照(CPR)、又はイントラブロックコピー(IBC)と呼ばれ得る。現在ブロックと参照ブロックとの間のオフセットを示す変位ベクトルは、ブロックベクトル(BV)と呼ばれ得る。任意の値(x方向又はy方向のいずれかで正又は負)になり得る動き補償の動きベクトルとは異なり、ブロックベクトルにはいくつかの制約があり得る。例えば、現在のブロックによって参照される(指示される)参照ブロックは、使用可能であり、既に再構成されている必要がある。さらに、並列処理の考慮事項として、タイル境界又は波面ラダー形状境界であるいくつかの参照領域は除外される。
【0101】
ブロックベクトルは、明示的モード又は暗黙的モードのいずれかによってコーディングされ得る。明示的モード(インターコーディングではAMVPモードとも呼ばれる)では、ブロックベクトルとブロックベクトルの予測子との間の差が通知され得る。暗示的モード(マージモード)では、ブロックベクトルは、マージ/スキップモードの動きベクトルと同様の方法で、ブロックベクトルの予測子から純粋に復元され得る。いくつかの実施態様では、ブロックベクトルの解像度を整数位置に制限することができる。他のシステム又は実施態様では、解像度が分数位置を指すのを許容することができる。
【0102】
イントラブロックコピーは、IBCフラグ等のブロックレベルフラグをシグナリングすることによってブロックレベルで適用され得る。一実施形態では、IBCフラグは、現在のブロックがマージモードでコーディングされていないときにシグナリングされ得る。別の実施形態では、IBCフラグは、復号化した現在のピクチャを参照ピクチャとして扱うことができる参照インデックス手法によってシグナリングされ得る。HEVCスクリーンコンテンツコーディング(SCC)では、そのような参照ピクチャ(例えば、復号化される現在のピクチャ)は、参照ピクチャのリストの最後の位置に置かれ得る。いくつかの実施形態では、そのような特別な参照ピクチャ(例えば、復号化される現在のピクチャ)はまた、復号化ピクチャバッファ(DPB)内の他の時間参照ピクチャとともに管理され得る。
【0103】
いくつかの実施形態では、イントラブロックコピーは、イントラ予測モード又はインター予測モードとは異なる第3のモードとして扱われ得る。従って、マージモード及びAMVPモードにおけるブロックベクトル予測は、通常のインター予測モードから分離され得る。例えば、イントラブロックコピーモードのマージモードに対して別個のマージ候補リストを規定することができ、マージ候補リスト内のエントリは全てブロックベクトルである。同様に、イントラブロックコピーモードのAMVPモードのブロックベクトル予測リストには、ブロックベクトルのみを含めることができる。上述した両方のリストに適用される一般的な規則によれば、両方のリストは、候補導出プロセスに関して、インターマージ候補リスト又はAMVP予測子リストと同じロジックに従うことができる。例えば、HEVC又はVVCインターマージモードにおける空間的に隣接する5つの位置は、イントラブロックコピーのためのマージ候補リストを導出するために、イントラブロックコピーのためにアクセスされ得る。
【0104】
イントラブロックコピーの例示的な実施形態が図9に示される。図9に示されるように、ピクチャ(900)は、第1のCTU(902)及び第2のCTU(904)等の複数のコーディングツリーユニット(CTU)を含むことができる。現在のブロック(906)が第1のCTU(902)に位置付けされ得、現在のブロック(906)の参照ブロック(908)が第2のCTU(904)に位置付けされ得る。ブロックベクトル(910)を適用して、現在のブロック(906)と参照ブロック(908)との間のオフセットを示すことができる。
【0105】
CPRモード(又はIBCモード)の検索範囲は、例えばVVCで使用されるように、現在のCTU内にあるように制約され得る。CPRモードの参照サンプルを格納するための有効なメモリ要件は、1CTUサイズのサンプルである。再構成したサンプルを現在の64×64領域に格納するための既存の参照サンプルメモリを考慮すると、さらに3つの64×64サイズの参照サンプルメモリが必要である。上記の事実に基づいて、CPRモードの有効な検索範囲は、現在のCTUの左側のCTUのいくつかの部分に拡張され得るが、参照ピクセルを格納するための合計メモリ要件(例えば、1CTUサイズ、合計で4つの64×64参照サンプルメモリ)は変更されずに維持され得る。
【0106】
図10A図10Dは、現在のCTUの左側のCTUのいくつかの部分に拡張されるCPRモード(又はIBCモード)の例示的な検索範囲を示すが、参照ピクセルを格納するための総メモリ要件は変更されずに維持され得る。図10A図10Bでは、縦縞模様のブロック(例えば、図10Aの(1002))は現在のコーディング領域であり得、灰色の領域内のサンプルはコーディングしたサンプルであり得、線を引いて消された(「X」でマークした)領域は、線を引いて消された領域が、現在のCTUのコーディング領域によって参照サンプルメモリ内で置き換えられているため、参照に使用できない領域であり得る。典型的に、現在のCTU内の現在のコーディング領域(64×64領域等)が符号化/復号化を開始すると、左側のCTU内の配置された領域に参照サンプルを格納するメモリ位置を空にして、現在の領域の再構成したサンプルを格納することができる。従って、必要なメモリの合計は1CTUサイズとして維持することができる。従って、左側のCTUの線を引いて消された領域は、それらの領域がメモリから削除されたためにもはや使用できなくなったことを示し得る。
【0107】
図10A図10Dに示されるように、現在のCTU(1000A)は、4つのコーディング領域(1002)、(1004)、(1006)、及び(1008)を含むことができ、現在のCTU(1000A)の左側のCTU(1000B)は、例えば、4つのコーディング領域(1010)、(1012)、(1014)、及び(1016)を含むことができる。図10Aにおいて、コーディング領域(1002)は、IBCモードによって復号化される現在のコーディング領域であり得る。検索範囲は、左側のCTU(1000B)のコーディング領域(1012)、(1014)、及び(1016)を含むことができる。コーディング領域(1010)を除外して、参照ピクセルを格納するための合計メモリ要件を1CTUサイズと4つの64×64参照サンプルメモリに抑えることができる。図10Bにおいて、コーディング領域(1004)は、IBCモードによって復号化される現在のコーディング領域であり得る。検索範囲は、コーディング領域(1002)、(1014)、及び(1016)を含むことができ、コーディング領域(1010)及び(1012)を除外することができる。図10Cにおいて、コーディング領域(1006)は、IBCモードによって復号化される現在のコーディング領域であり得る。検索範囲は、コーディング領域(1002)、(1004)、及び(1016)を含むことができ、左側のCTU(1000B)内のコーディング領域(1010)、(1012)、及び(1014)を除外することができる。同様に、図10Dにおいて、コーディング領域(1008)は、IBCモードによって復号化される現在のコーディング領域であり得る。検索範囲には、コーディング領域(1002)、(1004)、及び(1006)を含めることができ、左側のCTU(1000B)のコーディング領域は全て除外され、合計メモリ要件は変更されずに維持される。
【0108】
図11では、HEVC及びVVC等における現在のブロック(1101)の5つの空間マージ候補A0、A1、B0、B1、及びB2が示される。図11に示される位置から候補リストを作成する順番は、A0→B0→B1→A1→B2とすることができる。
【0109】
履歴ベースのMVP(HMVP)マージ候補は、空間動きベクトル予測(MVP)及び時間動きベクトル予測(TMVP)の後にマージリストに追加することができる。以前にコーディングしたブロックの動き情報は、テーブルに格納され、現在のCUのMVPとして使用され、例えば、HMVPで使用され得る。複数のHMVP候補を含むテーブルは、符号化/復号化プロセス中に維持され得る。新しいCTU行に直面すると、テーブルをリセットする(空にする)ことができる。非サブブロックのインターコーディングしたCUに直面すると、関連する動き情報をテーブルの最後のエントリに新しいHMVP候補として追加することができる。
【0110】
HMVPテーブルサイズSは、所定の値に設定され得る。一実施形態では、HMVPテーブルサイズSは6に設定され、これは、例えばVTM3で使用されるように、6つまでのHMVP候補をテーブルに追加できることを示す。新しい動き(モーション)候補がテーブルに挿入されると、制約付き先入れ先出し(FIFO)ルールを使用でき、ここでは、同一のHMVPがテーブルに存在するかどうかを確認するために最初に冗長性チェックが適用される。同一のHMVPが見つかった場合に、同一のHMVPをテーブルから削除し、その後の全てのHMVP候補を前方に移動させることができる。
【0111】
HMVP候補を使用して、マージ候補リストを構築することができる。テーブル内の最新のいくつかのHMVP候補を順番にチェックして、TMVP候補の後のマージ候補リストに挿入又は追加することができる。さらに、空間的又は時間的マージ候補に関して、冗長性チェックをHMVP候補に適用することができる。
【0112】
冗長検査操作の数を減らすために、以下の単純化を導入することができる。(a)マージリスト生成に使用されるHMVP候補の数は、(N<=4)?M:(8-N)に設定され得、ここで、HMVP候補の数は、Nが4以下である場合にMに等しく設定され、Nが4より大きい場合に8-Nに等しく設定される。Nはマージ候補リスト内の既存の候補の数を示し、Mはテーブル内の使用可能なHMVP候補の数を示す。(b)利用可能なマージ候補の総数が、許容されたマージ候補の最大数から1を引いた数に達すると、HMVPからのマージ候補リストの構築プロセスを終了することができる。
【0113】
イントラブロックコピーがインターモードとは別のモードとして実行されるときに、以前に符号化したイントラブロックコピーのブロックベクトルを格納するために、履歴ベースのベクトル予測(HBVP)とも呼ばれる別の履歴バッファを使用することができる。インター予測とは別のモードとして、簡略化したブロックベクトル導出プロセスをイントラブロックコピーモードに適用することができる。同様の履歴ベースのブロックベクトル予測子バッファを使用して、BV予測を実行することができる。
【0114】
HBVPでは、HBVPバッファを確立して、以前にIBCコーディングしたブロックのBV情報を記録することができ、これは、ブロックサイズ、ブロック位置等のいくつかの他のサイド情報を含むことができる。記録した情報に基づいて、各現在のブロックについて、特定の条件を満たすHBVPのBVは、対応するカテゴリに分類され得る。例示的な条件には、(1)クラス0:コーディングしたブロックの領域(例えば、幅×高さ)が閾値(例えば、64ピクセル)以上である、(2)クラス1:BVの頻度が2等の一定値以上である、(3)クラス2:コーディングしたブロックの座標(例えば、左上隅)が現在のブロックの左側にある、(4)クラス3:コーディングしたブロックの座標(例えば、左上隅)が現在のブロックの上にある、(5)クラス4:コーディングしたブロック座標(例えば、左上隅)が現在のブロックの左上側にある、(6)クラス5:コーディングしたブロックの座標(例えば、左上隅)が現在のブロックの右上側にある、(7)クラス6:コーディングしたブロック座標(例えば、左上隅)が現在のブロックの左下側にあることの1つ又は複数を含むことができる。カテゴリ毎に、最新のコーディングしたブロックのBVをBV予測器候補として導出することができる。コーディングしたブロックベクトル予測子(CBVP)リストは、各カテゴリのBV予測子を0~6の順序で追加することによって作成することができる。
【0115】
コーディングしたブロックは、複数の(例えば、2つ以上の)連続する文字列(つまり、ストリング)に分割することができ、各文字列の後に、規定したスキャン順序に沿って後続の文字列が続くことができる。スキャン順序は、ラスタースキャン又はトラバーススキャンであり得る。文字列毎に、文字列オフセットベクトル(SV)及び文字列の長さを通知又は推測することができる。SVを使用して、参照文字列が参照領域内のどこから来たのかを示すことができる。長さは、現在の/参照文字列の長さを示すために使用することができる。イントラ文字列マッチング又はイントラ文字列コピー(ISC)モードの例が図12に示され得、ここで、8×8サンプルを含むCU(1200A)は、ラスタースキャン順序を使用して、第1の文字列(1202)及び第2の文字列(1204)に分割され得る。第1の文字列(1202)は最初の27個のサンプルを含むことができ、第2の文字列(1204)は最後の36個のサンプルを含むことができる。第1の文字列(1202)及び第2の文字列(1204)の参照は、それぞれ文字列オフセットベクトル(SV)(1206)及び(1208)によって示され得る。図12の1200B等の灰色の領域は、既に再構成した領域であり、参照のために使用することができる。例えば(1200B)内の第1の参照領域(1210)は、第1の文字列(1202)のための参照領域であり得、SV(1206)によって示され得る。(1200B)内の第2の参照領域(1212)は、第2の文字列(1204)のための参照領域であり得、SV(1208)によって示され得る。現在のブロックのサンプルについて参照領域内で一致を見つけることができない場合に、サンプルはエスケープサンプル又は不一致サンプルとして決定され得る。不一致サンプルを通知することができ、不一致サンプルの値を直接コーディングすることができる。図12に示されるように、サンプル(1214)は、参照サンプルによって予測できないサンプル値を有する不一致(又はエスケープ)サンプルであり得る。サンプルのサンプル値(1214)は、ビットストリームから直接通知され得る。
【0116】
IBCモードで使用される利用可能な参照サンプルを同期させるために、いくつかの方法では、文字列マッチングの参照領域をIBCモードの参照領域と整列させることができる。従って、現在のCTUの再構成した部分に加えて、同じ参照サンプルのロジックが利用可能である左側のCTUの一部の領域は、文字列マッチングにも適用することができる。
【0117】
文字列マッチングモードに関連するシンタックス要素のいくつかは、コンテキストモデルを使用してコンテキストベースの適応バイナリ算術コーディング(CABAC)でコーディングすることができ、シンタックス要素のそれぞれは複数のビンを含むことができる。CABACは、コンテキスト・コーディングモード及びバイパス・コーディングモードを含むことができる。コンテキスト・コーディングモードでは、エンコーダによって各ビンに確率モデルを割り当てることができる。次に、ビンの値及び関連する確率モデルをバイナリ算術エンコーダに送信することができる。バイパス・コーディングモードでは、各ビンを直接コーディングするためにバイパスエンコーダに送信することができる。このようなシンタックス要素の例には、isc_match_type(例えば、現在の文字列の一致タイプ)、isc_next_remaining_pixel_in_cu(例えば、現在のコーディングユニットに残っている復号化していないサンプルの数)、isc_pixel_match_type(例えば、現在のピクセルサンプルの一致タイプ)、及びisc_sv_above_flag(現在のCUの文字列ベクトルが(0,-1)であるかどうかを示す)等が含まれ得る。複数の文字列又は不一致サンプルがブロックに含まれる場合に、コンテキスト・コーディングしたビンの総数(例えば、コンテキスト・コーディングモードによってコーディングしたビン)が高くなる可能性があり、これは実装の観点からは望ましくない場合がある。本開示では、そのような問題に対処する方法が提供される。
【0118】
EVS(等値文字列)モードと呼ばれる文字列コピーモードの変形では、文字列は、参照位置からの同じ値によって、又はビットストリームから直接の同じ値によって予測することができる。別の例では、文字列は、その上の隣接する文字列(例えば、上のコピー(copy above))から予測することができる。さらに別の例では、不一致サンプルが通知され得る。こうして、図12に示されるような参照文字列を使用する文字列マッチングは、文字列オフセットベクトル(例えば(1206)及び(1208))を適用することができる「イントラ文字列コピーの通常のサブモード」と呼ぶことができ、文字列オフセットベクトルは、AMVP又はマージモードを使用してコーディングすることができる。EVSモードは、ISCのEVSサブモードと呼ぶことができる。EVSサブモードでは、例として、参照文字列を文字列の上にコピーすることで文字列を予測することができる。別の例では、文字列内の他の全てのサンプルは、文字列の最初のサンプルと同じ値を有することができる。最初のサンプルの値は、イントラ予測等の適切な予測モードによって取得することができる。コーディングプロセスでは、エンコーダは、文字列がISCによってコーディングされている場合に、デコーダに通知するための第1の信号を提供し、次に、文字列がEVSサブモードの通常のサブモードによってコーディングされている場合に、デコーダに通知するための第2の信号を提供することができる。EVSサブモードには文字列オフセットベクトルがないことに留意されたい。
【0119】
本開示では、文字列マッチングモードでコーディングしたブロックのコンテキスト・コーディングしたビンの数を目標数に制限できるように、文字列マッチングモードに関連するシンタックス要素にいくつかの制約を課す実施形態を提供する。提案する実施形態は、別々に、又は任意の順序で組み合わせて使用することができる。さらに、ブロックという用語は、予測ブロック、コーディングブロック、又はコーディングユニット(CU)として解釈され得る。
【0120】
単純化及び明確化のために、本開示の例示的な実施形態は、ISCの通常のサブモードに基づいて説明することができる。しかしながら、本開示の例示的な実施形態は、ISCのEVSサブモードにも適用することができる。
【0121】
本開示では、サンプル当たりのコンテキスト・コーディングしたビン(つまり、コンテキスト・コーディングモードによってコーディングしたビン)の平均数が、予め規定した閾値Th_ave以下になるように、目標を設定することができる。換言すると、ブロック内のコンテキスト・コーディングしたビンの総数が制約され、その総数が、ブロック内のサンプルの総数で乗算した所定の閾値Th_aveを超えないように、目標は設定され得る。一実施形態では、予め規定した閾値Th_aveとブロック内のサンプルの総数との積である目標は、ブロックに設定された許容最大数と呼ばれることもある。
【0122】
ブロックのコーディングプロセス中に、以前のコーディングしたシンタックス要素内のコンテキスト・コーディングしたビンの総数が、ブロックの目標(つまり、最大許容数セット)に達した(例えば、それ以上になった)場合に、ブロックに関連付けられている他の残りの全てのシンタックス要素は、コンテキストを使用せずにバイパスモードを使用してコーディングされ得る。
【0123】
一実施形態では、Th_aveは、1.125、1.25、1.75等の固定定数に設定することができる。
【0124】
別の実施形態では、Th_aveは、同じサイズであり、EVSサブモードでコーディングした別のブロックを他のブロック内のサンプル数で除算することができる最大可能数に設定され得る。換言すると、ISCモードでのコンテキスト・コーディングしたビン(例えば、コンテキスト・コーディングモードによってコーディングしたビン)の数は、ブロックがEVSモードでコーディングされる場合に、その数がコンテキスト・コーディングしたビンの最大可能数を超えないように制限することができる。
【0125】
別の実施形態では、Th_aveは、スライスヘッダ、ピクチャヘッダ、又はシーケンスヘッダ等のビットストリームでシグナリングすることができる。別の実施形態では、Th_aveを予め規定することができる。
【0126】
さらに別の実施形態では、Th_aveは、ブロックが任意の他のモード、例えばイントラ予測、インター予測、又はIBCでコーディングされる場合に、ブロック内のコンテキスト・コーディングしたビンの総数が、コンテキスト・コーディングしたビンの最大可能数を超えないように設定され得る。このような制約は、イントラ文字列コピーモードを他のモード(IBC、インター予測モード、又はイントラ予測モード等)と比較するときに、イントラ文字列コピーモードが特定のサイズのブロックに対して最大数のコンテキスト・コーディングしたビンを生成するのを防ぐために設定することができる。
【0127】
上で議論したように、コーディングプロセス中に、シンタックス要素は、複数のコンテキスト・コーディングしたビンを含むことができる。シンタックス要素のビンをコーディングする場合に、コンテキスト・コーディングモードの使用からバイパス・コーディングモードの使用への変更は、シンタックス要素全体をコーディングした後に発生し得る。場合によっては、ブロックのそのようなシンタックス要素をコーディングする前に、ブロック内のコンテキスト・コーディングしたビンの総数(つまり、コンテキスト・コーディングモードによってコーディングしたビンの総数)が、ブロックに設定した最大許容数を依然として下回っている可能性がある。シンタックス要素をコーディングした後に、総数が上限(又は最大許容数セット)を超える場合がある。このような状態を回避するために、cut_numと呼ばれるカットオフ数と呼ばれ得る追加の変数を使用して、最初に割り当てられたコンテキスト・コーディングモードの代わりにバイパスモードを使用してシンタックス要素をコーディングする必要があるかどうかを判定することができる。より具体的には、ブロックに関連付けられたシンタックス要素の場合に、シンタックス要素の前のコンテキスト・コーディングしたビンの総数にcut_numを加えた数が、ブロックに設定された許容最大数よりも大きい場合に、シンタックス要素は、バイパスモードを使用してコーディングされ得る。それ以外の場合に、シンタックス要素の前のコンテキスト・コーディングしたビンの総数にcut_numを加えた数が、ブロックに設定された許容最大数以下である場合に、シンタックス要素は、コンテキスト・コーディングモードに基づいて、コーディングのために最初に割り当てられたコンテキストを適用することができる。
【0128】
一実施形態では、cut_numを固定値に設定することができる。固定値は、例えば10又は20であり得る。
【0129】
一実施形態では、cut_numは、現在のシンタックス要素のコンテキスト・コーディングしたビンの最大数(つまり、コンテキスト・コーディングモードによってコーディングが許容されるビンの最大数)に設定することができる。
【0130】
一実施形態では、cut_numは、現在のシンタックス要素とは異なる、ISCモードでコーディングしたブロック内の別のシンタックス要素について、コンテキスト・コーディングしたビンの最大数に基づいて決定することができる。こうして、cut_numは、イントラ文字列コピーモードでコーディングしたブロック内の任意の他のシンタックス要素について、コンテキスト・コーディングしたビンの最大数に設定することができる。
【0131】
別の実施形態では、cut_numは、Th_aveに基づいて決定することができる。例えば、cut_numは、Th_aveの分数、Th_aveの1/8、1/10、又は1/16等として決定することができる。
【0132】
一実施形態では、cut_numは、イントラ文字列コピーモードでコーディングしたブロック内の現在のシンタックス要素とは異なる任意の他のシンタックス要素について、コンテキスト・コーディングしたビンの最大数に従って設定することができる。例えば、cut_numは、現在のシンタックス要素とは異なる別のシンタックス要素について、コンテキスト・コーディングしたビンの最大数の半分に設定することができる。
【0133】
一実施形態では、cut_numをシグナリングすることができる。cut_numは、スライスヘッダ、ピクチャヘッダ、又はシーケンスヘッダ等のビットストリームでシグナリングすることができる。さらに別の実施形態では、cut_numは、予め規定した数であり得る。
【0134】
図13は、本開示のいくつかの実施形態による、デコーダのためのビデオ復号化の第1のプロセス(1300)を概説する例示的なフローチャートを示し、図14は、エンコーダのためのビデオ符号化の第2のプロセス(1400)を概説する例示的なフローチャートを示す。様々な実施形態において、第1のプロセス(1300)及び第2のプロセス(1400)は、端末装置(310)、(320)、(330)、及び(340)内の処理回路、ビデオエンコーダ(403)の機能を実行する処理回路、ビデオデコーダ(410)の機能を実行する処理回路、ビデオデコーダ(510)の機能を実行する処理回路、ビデオエンコーダ(603)の機能を実行する処理回路等の処理回路によって実行することができる。いくつかの実施形態では、第1のプロセス(1300)及び第2のプロセス(1400)はソフトウェア命令で実施することができ、こうして、処理回路がソフトウェア命令を実行するときに、処理回路は、第1のプロセス(1300)及び第2のプロセス(1400)それぞれを実行する。
【0135】
図13に示されるように、プロセス(1300)は、(S1301)で始まり、(S1310)に進む。(S1310)において、コーディングされる領域内のブロックのコーディング情報が、コーディングしたビデオ・ビットストリームから受信され得る。コーディング情報には、ブロックに関連付けられたシグナリング情報及びシンタックス要素が含まれ得、シンタックス要素のそれぞれには1つ又は複数のビンが含まれ得、ブロックには複数の文字列が含まれ得、ブロックは、文字列マッチングコピーモードによってコーディングされ得る。
【0136】
(S1320)において、閾値は、コンテキスト・コーディングモードによってコーディングが許容される、ブロックに関連付けられたビンの最大数に基づいて決定され得る。
【0137】
(S1330)において、シンタックス要素のうちの第1のシンタックス要素のビンの数を決定することができる。
【0138】
(S1340)において、文字列マッチングモードのブロックは、第1のシンタックス要素の1つ又は複数のビンを使用して復号化することができ、第1のシンタックス要素のビンの数は、コンテキスト・コーディングモードに許容されるビンの最大数を示す閾値によって制限される。
【0139】
プロセス(1300)において、第1のシンタックス要素は、(i)第1のシンタックス要素のビンの数が閾値未満であることに応答して、コンテキスト・コーディングモード、及び(ii)第1のシンタックス要素のビンの数が閾値以上であることに応答して、バイパス・コーディングモードのうちの1つに基づいてコーディングされ得る。
【0140】
プロセス(1300)において、複数の文字列のそれぞれには1つ又は複数のサンプルが含まれ得る。一例では、文字列マッチングモードは、ISCモード等の第1のサブモードを含むことができる。ISCモードは、文字列オフセットベクトルによって示されるそれぞれの参照文字列に基づいて、ブロック内の複数の文字列のそれぞれを再構成するように構成され得る。別の例では、文字列マッチングモードは、EVSモード等の第2のサブモードを含むことができる。EVSモードは、参照文字列の少なくとも1つの値を対応する文字列の上にコピーすることによって、ブロック内の複数の文字列のそれぞれを再構成するように構成され得る。例えば、ブロック内の複数の文字列のそれぞれは、参照文字列の値を対応する文字列の上にコピーするか、又は対応する文字列の第1の(first:最初の)サンプルの値を用いて対応する文字列内の他のサンプルの値を設定することによって再構成され得る。
【0141】
一実施形態では、閾値を決定するために、平均閾値が決定され得る。平均閾値は、コンテキスト・コーディングモードによってコーディンが許容される、ブロックのサンプルのそれぞれ(のサンプル)におけるビンの平均数を示すことができる。さらに、閾値は、平均閾値とブロック内のサンプルの総数との積となるように決定され得る。
【0142】
いくつかの例では、平均閾値は、(i)スライスヘッダ、ピクチャヘッダ、及びシーケンスヘッダのうちの1つにおいてシグナリングされるコーディング情報のシグナリング情報、及び(ii)予め規定した値のうちの1つに基づいて決定され得る。
【0143】
いくつかの例では、平均閾値は、1.125、1.25、及び1.75のうちの1つを含むことができる。
【0144】
いくつかの例では、平均閾値は、EVSモードでコーディングされているブロックに基づいて、コンテキスト・コーディングモードによってコーディングが許容されるブロックに関連付けられたビンの最大数に基づき得る。
【0145】
いくつかの例では、平均閾値は、ブロックが、イントラ予測モード、イントラ予測ブロックコピーモード、及びインター予測モードのうちの1つによってコーディングされるときに、コンテキスト・コーディングモードによってコーディングが許容される、ブロックに関連付けられたビンの最大数に基づき得る。
【0146】
別の実施形態では、閾値を決定するために、カットオフ数が決定され得る。カットオフ数は、(i)スライスヘッダ、ピクチャヘッダ、及びシーケンスヘッダのうちの1つにおいてシグナリングされるコーディング情報のシグナリング情報、及び(ii)予め規定した値のうちの1つに基づき得る。閾値はさらに、(i)平均閾値とブロック内のサンプルの総数との積から(ii)カットオフ数を引いた値となるように決定され得る。
【0147】
カットオフ数は、第1のシンタックス要素についてコンテキスト・コーディングモードによってコーディングが許容されるビンの最大数、文字列マッチングモードによってコーディングしたブロックに関連付けられたシンタックス要素のうちの1つについて、モードコンテキスト・コーディングによってコーディングが許容されるビンの最大数、定数値と平均閾値との積、及び文字列マッチングモードによってコーディングしたブロックに関連付けられたシンタックス要素のうちの1つについて、コンテキスト・コーディングモードによってコーディングが許容されるビンの最大数の半分のうちの1つに設定され得る。
【0148】
図14に示されるように、プロセス(1400)は、(S1401)で始まり(S1410)に進む。(S1410)において、ビデオ内の領域のブロックに関連付けられたシンタックス要素が受信され得る。ブロックは文字列マッチングモードでコーディングされ得、シンタックス要素のそれぞれには1つ又は複数のビンが含まれ得、ブロックには複数の文字列が含まれ得る。
【0149】
(S1420)において、閾値は、コンテキスト・コーディングモードによってコーディングが許容される、ブロックに関連付けられたビンの最大数に基づいて決定され得る。
【0150】
次に、プロセス(1400)は(S1430)に進むことができ、ここでシンタックス要素のうちの第1のシンタックス要素のビンの数が決定され得る。
【0151】
(S1440)において、文字列マッチングモードのブロックは、第1のシンタックス要素の1つ又は複数のビンを使用してコーディングされ得、第1のシンタックス要素のビンの数は、コンテキスト・コーディングモードに許容されるビンの最大数を示す閾値によって制限される。
【0152】
プロセス(1400)において、第1のシンタックス要素は、(i)第1のシンタックス要素のビンの数が閾値未満であることに応答して、コンテキスト・コーディングモード、及び(ii)第1のシンタックス要素のビンの数が閾値以上であることに応答して、バイパス・コーディングモードのうちの1つに基づいてさらにコーディングされ得る。
【0153】
プロセス(1400)において、複数の文字列のそれぞれには1つ又は複数のサンプルが含まれ得る。一例では、文字列マッチングモードは、ISCモード等の第1のサブモードを含むことができる。ISCモードは、文字列オフセットベクトルによって示されるそれぞれの参照文字列に基づいて、ブロック内の複数の文字列のそれぞれを再構成するように構成され得る。別の例では、文字列マッチングモードは、EVSモード等の第2のサブモードを含むことができる。EVSモードは、参照文字列の少なくとも1つの値を対応する文字列の上にコピーすることによって、ブロック内の複数の文字列のそれぞれを再構成するように構成され得る。例えば、ブロック内の複数の文字列のそれぞれは、参照文字列の値を対応する文字列の上にコピーするか、又は対応する文字列の第1の(first:最初の)サンプルの値を用いて対応する文字列の他のサンプルの値を設定することによって再構成され得る。
【0154】
一実施形態では、閾値を決定するために、平均閾値が決定され得る。平均閾値は、コンテキスト・コーディングモードによってコーディンが許容されるブロックのサンプルのそれぞれにおけるビンの平均数を示すことができる。さらに、閾値は、平均閾値とブロック内のサンプルの総数との積となるように決定され得る。
【0155】
この方法では、シグナリング情報を含むコーディングしたビットストリームを出力することができ、シグナリング情報は、スライスヘッダ、ピクチャヘッダ、及びシーケンスヘッダのうちの1つでシグナリングされ、決定した平均閾値を示すことができる。
【0156】
いくつかの例では、平均閾値は、1.125、1.25、及び1.75のうちの1つを含むことができる。
【0157】
いくつかの例では、平均閾値は、EVSモードでコーディングされているブロックに基づいて、コンテキスト・コーディングモードによってコーディングが許容される、ブロックに関連付けられたビンの最大数に基づき得る。
【0158】
いくつかの例では、平均閾値は、ブロックが、イントラ予測モード、イントラブロックコピーモード、及びインター予測モードのうちの1つによってコーディングされるときに、コンテキスト・コーディングモードによってコーディングが許容される、ブロックに関連付けられたビンの最大数に基づき得る。
【0159】
別の実施形態では、閾値を決定するために、カットオフ数が決定され得る。閾値は、さらに、(i)平均閾値とブロック内のサンプルの総数との積から(ii)カットオフ数を引いた値となるように決定され得る。
【0160】
カットオフ数は、第1のシンタックス要素についてコンテキスト・コーディングモードによってコーディングが許容されるビンの最大数、文字列マッチングモードによってコーディングしたブロックに関連付けられたシンタックス要素のうちの1つについて、コンテキスト・コーディングモードによってコーディングが許容されるビンの最大数、定数値と平均閾値との積、及び文字列マッチングモードによってコーディングしたブロックに関連付けられたシンタックス要素のうちの1つについて、コンテキスト・コーディングモードによってコーディングが許容されるビンの最大数の半分のうちの1つに設定され得る。
【0161】
本開示で提供する方法は、別々に使用することも、任意の順序で組み合わせることができることに留意されたい。さらに、方法(又は実施形態)、エンコーダ、及びデコーダのそれぞれは、処理回路(例えば、1つ又は複数のプロセッサ又は1つ又は複数の集積回路)によって実装することができる。一例では、1つ又は複数のプロセッサは、非一時的なコンピュータ可読媒体に格納したプログラムを実行する。さらに、ブロックという用語は、予測ブロック、コーディングブロック、又はコーディングユニット、すなわちCUとして解釈され得る。
【0162】
上で議論した技術は、コンピュータ可読命令を使用してコンピュータソフトウェアとして実装することができ、1つ又は複数のコンピュータ可読媒体に物理的に格納することができる。例えば、図15は、開示する主題の特定の実施形態を実装するのに適したコンピュータシステム(1800)を示している。
【0163】
コンピュータソフトウェアは、任意の適切なマシンコード又はコンピュータ言語を使用してコーディングされ得、そのコーディングは、アセンブリ、コンパイル、リンク、又は同様のメカニズムの対象となり、1つ又は複数のコンピュータ中央処理装置(CPU)、グラフィック処理装置(GPU)等によって直接又は解釈を通じて命令を含むコード、マイクロコード実行等を作成する。
【0164】
命令は、例えば、パーソナルコンピュータ、タブレットコンピュータ、サーバ、スマートフォン、ゲーム装置、モノのインターネット装置等を含む、様々なタイプのコンピュータ又はそのコンポーネント上で実行され得る。
【0165】
図15に示されるコンピュータシステム(1800)のコンポーネントは、本質的に例示であり、本開示の実施形態を実施するコンピュータソフトウェアの使用又は機能の範囲に関していかなる限定も示唆することを意図しない。コンポーネントの構成は、コンピュータシステム(1800)の例示的実施形態に示されるコンポーネントのいずれか1つ又は組み合わせに関連する依存性又は要件を有するものとして解釈すべきではない。
【0166】
コンピュータシステム(1800)は、特定のヒューマン・インターフェイス入力装置を含むことができる。このようなヒューマン・インターフェイス入力装置は、例えば、触覚入力(キーストローク、スワイプ、データグローブの動き等)、音声入力(声、拍手等)、視覚入力(ジェスチャー等)、嗅覚入力(図示せず)を通じて、1人又は複数の人間のユーザによる入力に応答することができる。ヒューマン・インターフェイス装置を使用して、音声(発話、音楽、周囲の音等)、画像(スキャンした画像、静止画カメラから取得した撮影画像)、ビデオ(二次元ビデオ、立体動画を含む三次元ビデオ等)等、人間による意識的な入力に必ずしも直接関係しない特定のメディアを取り込むことができる。
【0167】
入力ヒューマン・インターフェイス装置は、キーボード(1801)、マウス(1802)、トラックパッド(1803)、タッチスクリーン(1810)、データグローブ(図示せず)、ジョイスティック(1805)、マイク(1806)、スキャナ(1807)、カメラ(1808)(1つのみを図示している)のうちの1つ又は複数を含むことができる。
【0168】
コンピュータシステム(1800)は、特定のヒューマン・インターフェイス出力装置も含み得る。このようなヒューマン・インターフェイス出力装置は、例えば、触覚出力、音、光、及び匂い/味を通じて、1人又は複数の人間のユーザの感覚を刺激し得る。このようなヒューマン・インターフェイス出力装置は、触覚出力装置(例えば、タッチスクリーン(1810)、データグローブ(図示せず)、又はジョイスティック(1805)による触覚フィードバックであるが、入力装置として機能しない触覚フィードバック装置も存在し得る)、オーディオ出力装置(スピーカ(1809)、ヘッドフォン(図示せず)等)、視覚出力装置(CRTスクリーン、LCDスクリーン、プラズマスクリーン、OLEDスクリーンを含むスクリーン(1810)等、それぞれがタッチスクリーン入力機能を含む又は含まない、それぞれが触覚フィードバック機能を含む又は含まないもので、そのいくつかが、立体画像出力等の手段を介して、2次元の視覚出力又は3次元以上の出力を出力できるものもある、仮想現実眼鏡(図示せず)、ホログラフィックディスプレイ及びスモークタンク(図示せず))、及びプリンタ(図示せず)を含み得る。
【0169】
コンピュータシステム(1800)はまた、人間がアクセス可能な記憶装置、及びCD/DVDを含むCD/DVD ROM/RW(1820)を含む光学媒体又は同様の媒体(1821)、サムドライブ(1822)、リムーバブルハードドライブ又はソリッドステートドライブ(1823)、テープ及びフロッピーディスク(図示せず)等の従来の磁気メディア、セキュリティドングル(図示せず)等の特殊なROM/ASIC/PLDベースの装置等の関連媒体を含むことができる。
【0170】
当業者はまた、現在開示している主題に関連して使用される「コンピュータ可読媒体」という用語が、伝送媒体、搬送波、又は他の一時的な信号を含まないことを理解すべきである。
【0171】
コンピュータシステム(1800)はまた、1つ又は複数の通信ネットワーク(1855)へのインターフェイス(1854)を含むことができる。ネットワークは、例えば、無線、有線、光等である。ネットワークはさらに、ローカル、広域、メトロポリタン、車両及び産業用、リアルタイム、遅延耐性等であり得る。ネットワークの例には、イーサネット、ワイヤレスLAN等のローカルエリアネットワーク、GSM、3G、4G、5G、LTE等を含むセルラーネットワーク、ケーブルTV、衛星TV、及び地上放送TVを含むTV有線又は無線広域デジタルネットワーク、CANBus等を含む車両及び産業用が含まれる。特定のネットワークは、通常、特定の汎用データポート又は周辺バス(1849)(例えば、コンピュータシステムのUSBポート(1800)等)に接続された外部ネットワーク・インターフェイス・アダプタを必要とする。他のものは、一般に、以下に説明するようにシステムバス(例えば、PCコンピュータシステムへのイーサネットインターフェイス又はスマートフォン・コンピュータシステムへのセルラーネットワークインターフェイス)に接続することによって、コンピュータシステム(1800)のコアに統合される。これらのネットワークのいずれかを使用して、コンピュータシステム(1800)は他のエンティティと通信することができる。このような通信は、一方向、受信のみ(例えば、TV放送)、一方向送信のみ(例えば、CANbus装置から特定のCANbus装置に)、又は双方向(例えば、ローカル又はワイドエリアデジタルネットワークを使用する他のコンピュータシステムへ)のいずれかである。上記のように、これらのネットワーク及びネットワークインターフェイスのそれぞれで、特定のプロトコル及びプロトコルスタックを使用することができる。
【0172】
前述のヒューマン・インターフェイス装置、ヒューマン・アクセス可能なストレージデバイス、及びネットワークインターフェイスは、コンピュータ・システム(1800)のコア(1840)に取り付けることができる。
【0173】
コア(1840)は、1つ又は複数の中央処理装置(CPU)(1841)、グラフィック処理装置(GPU)(1842)、フィールドプログラマブルゲートエリア(FPGA)(1843)の形態の特殊なプログラマブル処理装置、特定のタスクのためのハードウェア・アクセラレータ(1844)、グラフィックアダプタ(1850)等を含むことができる。これらの装置は、読み取り専用メモリ(ROM)(1845)、ランダムアクセスメモリ(1846)、ユーザがアクセスできない内部ハードドライブ、SSD等の内部大容量記憶装置(1847)とともに、システムバス(1848)を介して接続され得る。一部のコンピュータシステムでは、追加のCPU、GPU等による拡張を可能にするために、システムバス(1848)に1つ又は複数の物理プラグの形態でアクセスすることができる。周辺装置は、コアのシステムバス(1848)に直接接続するか、周辺バス(1849)を介して接続することができる。一例では、ディスプレイ(1810)をグラフィックスアダプタ(1850)に接続することができる。周辺バスのアーキテクチャには、PCI、USB等が含まれる。
【0174】
CPU(1841)、GPU(1842)、FPGA(1843)、及びアクセラレータ(1844)は、組み合わせて前述のコンピュータコードを構成できる特定の命令を実行できる。そのコンピュータコードは、ROM(1845)又はRAM(1846)に格納され得る。移行データはRAM(1846)に格納され得るが、永久データは、例えば内部大容量記憶装置(1847)に格納され得る。1つ又は複数のCPU(1841)、GPU(1842)、大容量記憶装置(1847)、ROM(1845)、RAM(1846)等に密接に関連し得るキャッシュメモリを使用することで、任意のメモリ装置への高速の格納及び取得が可能になる。
【0175】
コンピュータ可読媒体は、様々なコンピュータで実施される操作を実行するためのコンピュータコードをその上に有することができる。メディア及びコンピュータコードは、本開示の目的のために特別に設計及び構築されたものであるか、又はコンピュータソフトウェア技術の当業者によく知られており利用可能な種類のものであり得る。
【0176】
限定ではなく一例として、アーキテクチャ(1800)を有するコンピュータシステム、具体的にはコア(1840)は、1つ又は複数の有形のコンピュータ可読媒体に組み込まれたソフトウェアを実行するプロセッサ(CPU、GPU、FPGA、アクセラレータ等を含む)の結果として機能を提供することができる。このようなコンピュータ可読媒体は、上で紹介したように、ユーザがアクセスできる大容量記憶装置、及びコア内部大容量記憶装置(1847)又はROM(1845)等の非一時的な性質のコア(1840)の特定の記憶装置に関連付けられた媒体とすることができる。本開示の様々な実施形態を実施するソフトウェアは、そのような装置に記憶され、コア(1840)によって実行され得る。コンピュータ可読媒体は、特定の必要に応じて、1つ又は複数のメモリ装置又はチップを含むことができる。ソフトウェアは、コア(1840)、具体的にはその中のプロセッサ(CPU、GPU、FPGA等を含む)に、RAM(1846)に格納したデータ構造を規定すること、及びソフトウェアによって規定したプロセスに従ってそのようなデータ構造を変更することを含む、本明細書に記載の特定のプロセス又は特定のプロセスの特定の部分を実行させることができる。加えて又は代替として、コンピュータシステムは、特定のプロセス又は本明細書に記載の特定のプロセスの特定の部分を実行するソフトウェアの代わりに又はこれと共に動作することができる、回路(例えば、アクセレータ(1844)にロジックハードワイヤされた又は他に埋め込まれた結果として機能を提供することができる。ソフトウェアへの言及は、必要に応じてロジックを含む場合があり、その逆も同様である。コンピュータ可読媒体への言及は、必要に応じて、実行のためのソフトウェアを格納する回路(集積回路(IC)等)、実行のためのロジックを具現化する回路、又はその両方を含むことができる。本開示は、ハードウェア及びソフトウェアの任意の適切な組合せを包含する。
【0177】
付録A:頭字語
JEM:共同探査モデル
VVC:多用途ビデオコーディング
BMS:ベンチマークセット
MV:動きベクトル
HEVC:高効率ビデオコーディング
SEI:補足拡張情報
VUI:ビデオユーザビリティ情報
GOP:ピクチャのグループ
TU:変換ユニット
PU:予測ユニット
CTU:コーディングツリーユニット
CTB:コーディングツリーブロック
PB:予測ブロック
HRD:仮想参照デコーダ
SNR:信号雑音比
CPU:中央処理装置
GPU:グラフィック処理装置
CRT:陰極線管
LCD:液晶ディスプレイ
OLED:有機発光ダイオード
CD:コンパクトディスク
DVD:デジタルビデオディスク
ROM:読み取り専用メモリ
RAM:ランダムアクセスメモリ
ASIC:特定用途向け集積回路
PLD:プログラマブル論理装置
LAN:ローカルエリアネットワーク
GSM:モバイル通信用グローバルシステム
LTE:ロングタームエボリューション
CANBus:コントローラエリアネットワークバス
USB:ユニバーサルシリアルバス
PCI:周辺コンポーネント相互接続
FPGA:フィールドプログラマブルゲート領域
SSD:ソリッドステートドライブ
IC:集積回路
CU:コーディングユニット
【0178】
本開示はいくつかの例示的な実施形態について説明してきたが、本開示の範囲内にある変更、置換、及び様々な代替同等物が存在する。こうして、当業者は、本明細書では明示的に図示又は説明していないが、本開示の原理を具現化し、こうして本開示の精神及び範囲内にある多数のシステム及び方法を想起し得ることを理解されたい。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10A
図10B
図10C
図10D
図11
図12
図13
図14
図15