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

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

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

<>
  • 特許-ビデオ符号化のための方法及び機器 図1
  • 特許-ビデオ符号化のための方法及び機器 図2
  • 特許-ビデオ符号化のための方法及び機器 図3
  • 特許-ビデオ符号化のための方法及び機器 図4
  • 特許-ビデオ符号化のための方法及び機器 図5
  • 特許-ビデオ符号化のための方法及び機器 図6
  • 特許-ビデオ符号化のための方法及び機器 図7
  • 特許-ビデオ符号化のための方法及び機器 図8
  • 特許-ビデオ符号化のための方法及び機器 図9A
  • 特許-ビデオ符号化のための方法及び機器 図9B
  • 特許-ビデオ符号化のための方法及び機器 図9C
  • 特許-ビデオ符号化のための方法及び機器 図9D
  • 特許-ビデオ符号化のための方法及び機器 図10
  • 特許-ビデオ符号化のための方法及び機器 図11
  • 特許-ビデオ符号化のための方法及び機器 図12
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-08-23
(45)【発行日】2022-08-31
(54)【発明の名称】ビデオ符号化のための方法及び機器
(51)【国際特許分類】
   H04N 19/593 20140101AFI20220824BHJP
   H04N 19/105 20140101ALI20220824BHJP
   H04N 19/167 20140101ALI20220824BHJP
   H04N 19/176 20140101ALI20220824BHJP
【FI】
H04N19/593
H04N19/105
H04N19/167
H04N19/176
【請求項の数】 9
(21)【出願番号】P 2021547814
(86)(22)【出願日】2020-06-26
(65)【公表番号】
(43)【公表日】2022-04-06
(86)【国際出願番号】 US2020039773
(87)【国際公開番号】W WO2021040876
(87)【国際公開日】2021-03-04
【審査請求日】2021-08-17
(31)【優先権主張番号】62/892,918
(32)【優先日】2019-08-28
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】16/912,223
(32)【優先日】2020-06-25
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】520353802
【氏名又は名称】テンセント・アメリカ・エルエルシー
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【弁理士】
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】シュイ,シアオジョォン
(72)【発明者】
【氏名】リィウ,シャン
【審査官】久保 光宏
(56)【参考文献】
【文献】特表2018-509059(JP,A)
【文献】特表2022-521167(JP,A)
【文献】Xiaoyu Xiu, et al.,"CE8-related: Encoder improvements on IBC search",JVET-N0329 (version 1),[online], Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,2019年03月13日,Pages 1-4,[令和4年8月1日検索], インターネット, <URL: https://jvet-experts.org/doc_end_user/current_document.php?id=6050> and <URL: https://jvet-experts.org/doc_end_user/documents/14_Geneva/wg11/JVET-N0329-v1.zip>.
(58)【調査した分野】(Int.Cl.,DB名)
H04N19/00-19/98
CSDB(日本国特許庁)
IEEEXplore(IEEE)
(57)【特許請求の範囲】
【請求項1】
ビデオデコーダにおけるビデオ復号の方法であって、
ビットストリームの中のイントラブロックコピー(IBC)により符号化された現在ブロックのデータを受信するステップと、
履歴に基づくブロックベクトル予測(HBVP)テーブルの中のエントリを、それぞれ分類HBVPテーブルに格納された異なるグループに分類するステップであって、前記HBVPテーブルは、前の復号ブロックにそれぞれ対応する1つ以上のエントリを含み、各エントリは、前記対応する前の復号ブロックのブロックベクトル、サイズ情報、及び前記対応する前の復号ブロックの位置を含む、ステップと、
前記分類HBVPテーブルに基づき、前記現在ブロックのブロックベクトルを決定するステップと、
前記現在ブロックの前記決定したブロックベクトルに基づき、前記現在ブロックを再構成するステップと、
を含む方法。
【請求項2】
前記現在ブロックの前記ブロックベクトル、位置、幅、及び高さを前記HBVPテーブルに格納するステップ、を更に含む請求項1に記載の方法。
【請求項3】
前記HBVPテーブルの中の前記エントリを、それぞれの分類HBVPテーブルにそれぞれ格納された異なるグループに分類する前記ステップは、
前記HBVPテーブルの前記エントリのうちの1つの対応する前の復号ブロックのサイズが、ブロックサイズ条件を満たすとき、前記HBVPテーブルの前記エントリのうちの前記1つを、前記分類HBVPテーブルのうちの1つに格納するステップを更に含む、請求項1又は2に記載の方法。
【請求項4】
前記ブロックサイズ条件は、前記HBVPテーブルの前記エントリのうちの前記1つの前記対応する前の復号ブロックのルマサンプルの数が閾値以上であるとき、満たされる、請求項3に記載の方法。
【請求項5】
前記HBVPテーブルの前記エントリを、それぞれの分類HBVPテーブルにそれぞれ格納された異なるグループに分類する前記ステップは、
前記HBVPテーブルに格納された前記対応する前の復号ブロックの各々のx座標、y座標、又はx及びy座標の組合せに基づき、前記HBVPテーブルの前記エントリを前記分類HBVPテーブルに分類するステップを更に含む、請求項1~4のいずれか一項に記載の方法。
【請求項6】
前記分類HBVPテーブルに基づき、前記現在ブロックの前記ブロックベクトルを決定する前記ステップは、
前記分類HBVPテーブルのうちの1つを示すインデックスを受信するステップと、
前記示された分類HBVPテーブルから1つのエントリを選択するステップであって、前記選択された1つのエントリは、前記示された分類HBVPテーブルの中の1つ以上のエントリの前記前の復号ブロックの中で、最近の復号ブロックに対応し、前記選択された1つのエントリのブロックベクトルは、前記現在ブロックの前記ブロックベクトルのブロックベクトル予測子として使用される、ステップと、
を更に含む、請求項1~5のいずれか一項に記載の方法。
【請求項7】
前記分類HBVPテーブルに基づき前記現在ブロックの前記ブロックベクトルを決定する前記ステップは、
前記分類HBVPテーブルから選択されたブロックベクトルをそれぞれ含む1つ以上のBVP候補を含むBVP候補リストを構成するステップと、
前記ビットストリームから受信したインデックスに基づき、前記BVP候補リストから、前記現在ブロックの前記ブロックベクトルのブロックベクトル予測子であるBVP候補を選択するステップと、
を更に含む、請求項1~6のいずれか一項に記載の方法。
【請求項8】
ビデオ復号の機器であって、請求項1~6のいずれか一項に記載の方法を実行する機器。
【請求項9】
コンピュータプログラムであって、ビデオ復号のための機器に、請求項1~7のいずれか一項に記載の方法を実行させる、コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
[関連出願]
本開示は、米国仮特許出願番号第62/892,918号、「History Based Block Vector Prediction for Intra Picture Block Compensation」、2019年8月28日出願、の優先権の利益を主張する米国特許出願番号第16/912,223号、「Method and Apparatus for Video Coding」、2020年6月25日出願の利益を主張する。前述の出願の全開示は、それらの全体が参照によりここに組み込まれる。
【0002】
[技術分野]
本開示は、概して、ビデオ符号化に関連する実施形態を記載する。
【背景技術】
【0003】
ここに提供される背景の説明は、本開示のコンテキストの概要を提示するためである。現在名前の挙げられた発明者の研究は、この背景の章に記載された研究の範囲で、出願時に従来技術として見なされない可能性のある記載の態様と同様に、本開示に対する従来技術として明示的に又は暗示的にも認められるものではない。
【0004】
ビデオ符号化及び復号は、動き補償を伴うインターピクチャ予測を用いて実行できる。非圧縮デジタルビデオは、一連のピクチャを含むことができ、各ピクチャは、例えば1920×1080個のルミナンスサンプル及び関連するクロミナンスサンプルの空間次元を有する。一連のピクチャは、例えば毎秒60ピクチャ又は60Hzの固定又は可変ピクチャレート(略式にフレームレートとしても知られている)を有し得る。非圧縮ビデオは、かなりのビットレート要件を有する。例えば、8ビット/サンプルの1080p60 4:2:0ビデオ(60Hzフレームレートで1920×1080ルミナンスサンプル解像度)は、1.5Gbit/sの帯域幅を必要とする。1時間のこのようなビデオは600Gbyteより多くの記憶空間を必要とする。
【0005】
ビデオ符号化及び復号の1つの目的は、圧縮を通じて、入力ビデオ信号の中の冗長性の削減であり得る。圧縮は、幾つかの場合には大きさで2桁以上も、前述の帯域幅又は記憶空間要件を軽減するのを助けることができる。損失又は無損失圧縮の両方、及びそれらの組み合わせが利用できる。無損失圧縮は、元の信号の正確なコピーが圧縮された元の信号から再構成可能である技術を表す。損失圧縮を用いると、再構成された信号は、元の信号と同一ではないが、元の信号と再構成された信号との間の歪みは、意図される用途のために有用な再構成された信号を生成するのに十分に小さい。ビデオの場合には、損失圧縮が広く利用される。耐えうる歪みの量は、アプリケーションに依存し、特定の消費者ストリーミングアプリケーションのユーザは、テレビジョン配信アプリケーションのユーザよりも高い歪みに耐え得る。達成可能な圧縮比は、許容可能/耐性歪みが高いほど、高い圧縮比を生じ得ることを反映できる。
【0006】
動き補償は、損失圧縮技術であり、前に再構成されたピクチャ又はその部分(参照ピクチャ)からのサンプルデータのブロックが、動きベクトル(以後、MV)により示される方向に空間的にシフトされた後に、新しく再構成されたピクチャ又はピクチャ部分の予測のために使用される技術に関連し得る。幾つかの場合には、参照ピクチャは、現在再構成中のピクチャと同じであり得る。MVは、2つの次元X及びY、又は第3の次元が使用中の参照ピクチャの指示である3つの次元を有することができる(後者は、間接的に時間次元であり得る)。
【0007】
幾つかのビデオ圧縮技術では、サンプルデータの特定領域に適用可能なMVは他のMVから、例えば再構成中の領域に空間的に隣接するサンプルデータの別の領域に関連し且つ復号順序の中で当該MVに先行するMVから、予測できる。そうすることは、結果として、MVを符号化するために必要なデータ量を削減でき、それにより、冗長性を除去し圧縮を向上する。MV予測は、例えばカメラから得られた入力ビデオ信号(自然なビデオ(natural video)として知られる)を符号化するとき、単一のMVが適用可能な領域より大きな領域が同様の方向に動き、したがって、幾つかの場合には近隣領域のMVから導出した同様の動きベクトルを用いて予測可能である、統計的可能性がある。これは、周囲のMVから予測したMVと同様の又は同じ、所与の領域について見付かったMVをもたらす。また、これは、エントロピー符号化の後に、MVを直接符号化する場合に使用され得るより少ない数のビットで提示され得る。幾つかの場合には、MV予測は、元の信号(つまり、サンプルストリーム)から得た信号(つまり、MV)の無損失圧縮の一例であり得る。他の場合には、MV予測自体は、例えば幾つかの周囲のMVから予測子を計算するとき、誤りを丸め込むので、損失になり得る。
【0008】
種々のMV予測メカニズムは、H.265/HEVC(ITU-T Rec. H.265, "High Efficiency Video Coding", December 2016)に記載されている。ここに記載される、H.265の提供する多くのMV予測メカニズムのうちの1つは、以下で、「空間マージ(spatial merge)」と呼ばれる技術である。
【0009】
図1を参照すると、現在ブロック(101)は、動き探索処理の間に、空間的にシフトされたものと同じサイズの前のブロックから予測可能であるとしてエンコーダにより見付けられたサンプルを含む。MVを直接符号化する代わりに、MVは、1つ以上の参照ピクチャに関連付けられたメタデータから、例えば(復号順で)最近の参照ピクチャから、A0、A1、及びB0、B1、B2(それぞれ102~106)5個の周囲のサンプルのうちのいずれか1つに関連付けられたMVを用いて導出できる。H.265では、MV予測は、近隣ブロックの使用するのと同じ参照ピクチャからの予測子を使用できる。
【発明の概要】
【0010】
開示の態様は、ビデオ符号化/復号のための方法及び機器を提供する。幾つかの例では、ビデオ復号のための機器は、処理回路を含む。前記処理回路は、ビットストリームの中のイントラブロックコピー(IBC)モードで符号化された現在ブロックのデータを受信するよう構成され得る。前記現在ブロックのブロックベクトルは、前の復号ブロックにそれぞれ対応する1つ以上のエントリを含む履歴に基づくブロックベクトル予測(HBVP)テーブルに基づき決定できる。各エントリは、対応する前の復号ブロックのブロックベクトルと、対応する前の復号ブロックの位置と、を含むことができる。前記現在ブロックは、前記現在ブロックの前記決定されたブロックベクトルに基づき再構成できる。実施形態では、前記現在ブロックの前記ブロックベクトル、位置、幅、及び高さは、前記HBVPテーブルに格納される。
【0011】
更に、各エントリは、対応する前の復号ブロックの角のx座標及びy座標を含むことができる。更なる実施形態では、各エントリは、対応する前の復号ブロックの角の位置のうちの1つと、対応する前の復号ブロックの幅及び高さと、を含むことができる。
【0012】
実施形態では、前記回路は、前記HBVPテーブルに基づき、ブロックベクトル予測(BVP)候補リストを構成するよう構成され得る。前記BVP候補リストは、第1候補及び第2候補のうちの1つ以上を含み得る。前記第1候補は、前記HBVPテーブルの中の前記ブロックベクトルのうちの第1ブロックベクトルを含み得る。前記第1ブロックベクトルの前記対応するそれぞれの復号ブロックは、前記現在ブロックの左の位置を有する。前記第2候補は、前記HBVPテーブルの中の前記ブロックベクトルのうちの第2ブロックベクトルを含み得る。前記第2ブロックベクトルの前記対応するそれぞれの復号ブロックは、前記現在ブロックの上の位置を有する。
【0013】
前記回路は、前記HBVPテーブルの中の前記エントリを、それぞれ分類HBVPテーブルに格納された異なるグループに分類するよう構成される。前記回路は、前記HBVPテーブルの前記エントリのうちの1つの対応する前の復号ブロックのサイズが、ブロックサイズ条件を満たすとき、前記HBVPテーブルの前記エントリのうちの前記1つは、前記分類HBVPテーブルのうちの1つに格納される。前記ブロックサイズ条件は、前記HBVPテーブルの前記エントリのうちの前記1つの前記対応する前の復号ブロックのルマサンプルの数が閾値以上であることであり得る。
【0014】
更なる例では、前記HBVPテーブルの中の前記エントリは、前記HBVPテーブルに格納された前記対応する前の復号ブロックの各々のx座標、y座標、又はx及びy座標の組合せに基づき、前記分類HBVPテーブルに分類される。
【0015】
実施形態では、前記分類HBVPテーブルのうちの1つを示すインデックスが受信される。1つのエントリが、前記示された分類HBVPテーブルの中の1つ以上のエントリの前の復号ブロックの中で最近の復号ブロックに対応する前記示された分類HBVPテーブルから選択される。前記選択された1つのエントリの前記ブロックベクトルは、前記現在ブロックの前記ブロックベクトルのブロックベクトル予測子として使用される。
【0016】
実施形態では、BVP候補リストが構成される。前記BVP候補リストは、それぞれ前記分類HBVPテーブルから選択されたブロックベクトルを含む1つ以上のBVP候補を含む。BVP候補は、前記ビットストリームから受信したインデックスに基づき、前記現在ブロックの前記ブロックベクトルのブロックベクトル予測子であるとして、前記BVP候補リストから選択できる。種々の実施形態では、前記現在ブロックは、スキップモード、マージモード、又は高度動きベクトル予測(advanced motion vector prediction (AMVP))モードのうちの1つで符号化されることができる。
【0017】
本開示の態様は、ビデオ復号のためのコンピュータにより実行されると該コンピュータにビデオ復号のための方法を実行させる命令を格納する非一時的コンピュータ可読媒体も提供する。
【図面の簡単な説明】
【0018】
開示の主題の更なる特徴、特性、及び種々の利点は、以下の詳細な説明及び添付の図面から一層明らかになるだろう。
【0019】
図1】一例における現在ブロック及びその周囲の空間的マージ候補の概略図である。
【0020】
図2】一実施形態による、通信システム(200)の簡易ブロック図の概略図である。
【0021】
図3】一実施形態による、通信システム(300)の簡易ブロック図の概略図である。
【0022】
図4】一実施形態による、デコーダの簡易ブロック図の概略図である。
【0023】
図5】一実施形態による、エンコーダの簡易ブロック図の概略図である。
【0024】
図6】別の実施形態による、エンコーダのブロック図を示す。
【0025】
図7】別の実施形態による、デコーダのブロック図を示す。
【0026】
図8】イントラピクチャブロック補償の例を示す。
【0027】
図9A】再構成サンプルを格納する1CTUサイズのメモリによるイントラピクチャブロック補償の例を示す。
図9B】再構成サンプルを格納する1CTUサイズのメモリによるイントラピクチャブロック補償の例を示す。
図9C】再構成サンプルを格納する1CTUサイズのメモリによるイントラピクチャブロック補償の例を示す。
図9D】再構成サンプルを格納する1CTUサイズのメモリによるイントラピクチャブロック補償の例を示す。
【0028】
図10】現在ブロック(1010)の空間マージ候補の例を示す。
【0029】
図11】本開示の幾つかの実施形態による、処理(1100)の概要を示すフローチャートを示す
【0030】
図12】一実施形態による、コンピュータシステムの概略図である。
【発明を実施するための形態】
【0031】
I.ビデオ符号化エンコーダ及びデコーダ
【0032】
図2は、本発明の一実施形態による通信システム(200)の簡易ブロック図を示す。通信システム(200)は、例えばネットワーク(250)を介して互いに通信できる複数の端末装置を含む。例えば、通信システム(200)は、ネットワーク(250)を介して相互接続された端末装置(210)及び(220)の第1ペアを含む。図2の例では、端末装置(210)及び(220)の第1ペアは、データの単方向伝送を実行する。例えば、端末装置(210)は、ネットワーク(250)を介して他の端末装置(220)への送信のために、ビデオデータ(端末装置(210)によりキャプチャされたビデオピクチャのストリーム)を符号化する。符号化ビデオデータは、1つ以上の符号化ビデオビットストリームの形式で、送信できる。端末装置(220)は、ネットワーク(250)から符号化ビデオデータを受信し、符号化ビデオデータを復号してビデオピクチャを復元し、復元したビデオデータに従いビデオピクチャを表示してよい。単方向データ伝送は、メディアサービングアプリケーション等で共通であってよい。
【0033】
別の例では、通信システム(200)は、例えばビデオ会議の間に生じ得る符号化ビデオデータの双方向伝送を実行する端末装置(230)及び(240)の第2ペアを含む。データの双方向伝送では、端末装置(230)及び(240)は、ネットワーク(250)を介して端末装置(230)及び(240)への送信のために、ビデオデータ(例えば、端末装置によりキャプチャされたビデオピクチャのストリーム)を符号化してよい。端末装置(230)及び(240)のうちの各端末装置は、端末装置(230)及び(240)のうちの他方の端末装置により送信された符号化ビデオデータを受信してよく、符号化ビデオデータを復号してビデオピクチャを復元してよく、復元したビデオデータに従い、アクセス可能なディスプレイ装置においてビデオピクチャを表示してよい。
【0034】
図2の例では、端末装置(210)、(220)、(230)及び(240)は、サーバ、パーソナルコンピュータ、及びスマートフォンとして示されてよいが、本開示の原理はこれらに限定されない。本開示の実施形態は、ラップトップコンピュータ、タブレットコンピュータ、メディアプレイヤ、及び/又は専用ビデオ会議設備による適用がある。ネットワーク(250)は、端末装置(210)、(220)、(230)、及び(240)の間で符号化ビデオデータを運ぶ任意の数のネットワークを表し、例えば有線(ワイヤード)及び/又は無線通信ネットワークを含む。通信ネットワーク250は、回線切り替え及び/又はパケット切り替えチャネルでデータを交換してよい。代表的なネットワークは、電子通信ネットワーク、ローカルエリアネットワーク、広域ネットワーク、及び/又はインターネットを含む。本発明の議論の目的で、ネットワーク(250)のアーキテクチャ及びトポロジは、以下で特に断りの無い限り、本開示の動作にとって重要でないことがある。
【0035】
図3は、開示の主題の適用の一例として、ストリーミング環境におけるビデオエンコーダ及びビデオデコーダの配置を示す。開示の主題は、例えばビデオ会議、デジタルTV、CD、DVD、メモリスティック、等を含むデジタル媒体への圧縮ビデオの格納、他のビデオ可能アプリケーション、等に等しく適用可能である。
【0036】
ストリーミングシステムは、例えば非圧縮のビデオピクチャストリーム(302)を生成するビデオソース(301)を含み得るキャプチャサブシステム(313)を含んでよい。一例では、ビデオピクチャストリーム(302)は、デジタルカメラにより取り込まれたサンプルを含む。ビデオピクチャストリーム(302)は、符号化ビデオデータ(304)(又は符号化ビデオビットストリーム)と比べたとき、高データ容量を強調するために太線で示され、ビデオソース(301)と結合されたビデオエンコーダ(303)を含む電子装置(320)により処理され得る。ビデオエンコーダ(303)は、ハードウェア、ソフトウェア、又はそれらの組み合わせを含み、以下に詳述するように開示の主題の態様を可能にする又は実装することができる。符号化ビデオデータ(304)(又はビデオビットストリーム(304))は、ビデオピクチャストリーム(302)と比べたとき、低データ容量を強調するために細線で示され、将来の使用のためにストリーミングサーバに格納され得る。図3のクライアントサブシステム(306)及び(308)のような1つ以上のストリーミングクライアントサブシステムは、ストリーミングサーバ(305)にアクセスして、符号化ビデオデータ(304)のコピー(307)及び(309)を読み出すことができる。クライアントサブシステム(306)は、例えば電子装置(330)内にビデオデコーダ(310)を含み得る。ビデオデコーダ(310)は、符号化ビデオデータの入力コピー(307)を復号し、ディスプレイ(312)(例えばディスプレイスクリーン)又は他のレンダリング装置(図示しない)上でレンダリングできる出力ビデオピクチャストリーム(311)を生成する。幾つかのストリーミングシステムでは、符号化ビデオデータ(304)、(307)、及び(309)(例えば、ビデオビットストリーム)は、特定のビデオ符号化/圧縮標準に従い符号化され得る。これらの標準の例は、ITU-T Recommendation H.265を含む。一例では、策定中のビデオ符号化標準は、略式にVVC(Versatile Video Coding)として知られている。開示の主題は、VVCの文脈で使用されてよい。
【0037】
電子装置(320)及び(330)は他のコンポーネント(図示しない)を含み得ることに留意する。例えば、電子装置(320)は、ビデオデコーダ(図示しない)を含むことができ、電子装置(330)もビデオエンコーダ(図示しない)を含むことができる。
【0038】
図4は、本開示の一実施形態によるビデオデコーダ(410)のブロック図を示す。ビデオデコーダ(410)は、電子装置(430)に含まれ得る。電子装置(430)は、受信機(431)(例えば、受信回路)を含み得る。ビデオデコーダ(410)は、図3の例では、ビデオデコーダ(310)の代わりに使用できる。
【0039】
受信機(431)は、ビデオデコーダ(410)により符号化されるべき1つ以上の符号化ビデオシーケンス、同じ又は別の実施形態では、一度に1つの符号化ビデオシーケンスを受信してよい。ここで、各符号化ビデオシーケンスの復号は、他の符号化ビデオシーケンスと独立している。符号化ビデオシーケンスは、符号化ビデオデータを格納する記憶装置へのハードウェア/ソフトウェアリンクであってよいチャネル(401)から受信されてよい。受信機(431)は、他のデータ、例えば、それぞれの使用エンティティ(図示しない)へと転送され得る符号化音声データ及び/又は補助データストリームと共に、符号化ビデオデータを受信してよい。受信機(431)は、他のデータから符号化ビデオシーケンスを分離してよい。ネットワークジッタを除去するために、バッファメモリ(415)は、受信機(431)とエントロピーデコーダ/パーサ(420)(以後、「パーサ(420)」)との間に結合されてよい。特定の適用では、バッファメモリ(415)は、ビデオデコーダ(410)の一部である。他に、ビデオデコーダ(410)(図示しない)の外部にあり得る。更に他では、例えばネットワークジッタを除去するために、ビデオデコーダ(410)の外部に、例えば再生(playout)タイミングを処理するために、ビデオデコーダ(410)の内部にある別のバッファメモリ(415)に加えて、バッファメモリ(図示しない)が存在し得る。受信機(431)が、十分な帯域幅の記憶/転送装置から制御可能に、又はアイソクロナス(isosynchronous)ネットワークから、データを受信しているとき、バッファメモリ(415)は、必要なくてよく又は小さくできる。インターネットのようなベストエフォート型パケットネットワークで使用するために、バッファメモリ(415)が必要とされてよく、比較的大きくなり、有利なことに適応型サイズであり、少なくとも部分的にオペレーティングシステム又はビデオデコーダ(410)の外部の同様の要素(図示しない)に実装されてよい。
【0040】
ビデオデコーダ(410)は、符号化ビデオシーケンスからシンボル(421)を再構成するために、パーサ(420)を含んでよい。これらのシンボルのカテゴリは、ビデオデコーダ(410)の動作を管理するために使用される情報、及び場合によっては図4に示したように電子装置(430)の統合部分ではないが電子装置(430)に結合され得るレンダー装置(412)(例えば、ディスプレイスクリーン)のようなレンダリング装置を制御するための情報を含む。レンダリング装置のための制御情報は、SEI(Supplemental Enhancement Information)メッセージ又はVUI(Video Usability Information)パラメータセットフラグメント(図示しない)の形式であってよい。パーサ(420)は、受信された符号かビデオシーケンスをパース/エントロピー復号してよい。符号化ビデオシーケンスの符号化は、ビデオ符号化技術又は標準に従うことができ、可変長符号化、ハフマン符号化、コンテキスト依存性を有する又は有しない算術符号化、等を含む、種々の原理に従うことができる。パーサ(420)は、符号化ビデオシーケンスから、ビデオデコーダの中のピクセルのサブグループのうちの少なくとも1つについて、該グループに対応する少なくとも1つのパラメータに基づき、サブグループパラメータのセットを抽出してよい。サブグループは、GOP(Groups of Picture)、ピクチャ、タイル、スライス、マクロブロック、符号化ユニット(Coding Units:CU)、ブロック、変換ユニット(Transform Units:TU)、予測ユニット(Prediction Units:PU)、等を含み得る。パーサ(420)は、符号化ビデオシーケンスから、変換係数、量子化パラメータ値、動きベクトル、等のような情報も抽出してよい。
【0041】
パーサ(420)は、バッファメモリ(415)から受信したビデオシーケンスに対してエントロピー復号/パース動作を実行して、シンボル(421)を生成してよい。
【0042】
シンボル(421)の再構成は、符号化ビデオピクチャ又はその部分の種類(例えば、インター及びイントラピクチャ、インター及びイントラブロック)及び他の要因に依存して、複数の異なるユニットを含み得る。どのユニットがどのように含まれるかは、パーサ(420)により符号化ビデオシーケンスからパースされたサブグループ制御情報により制御できる。パーサ(420)と以下の複数のユニットとの間のこのようなサブグループ制御情報のフローは、明確さのために示されない。
【0043】
既に言及した機能ブロックを超えて、ビデオデコーダ(410)は、後述のように、多数の機能ユニットに概念的に細分化できる。商用的制約の下で動作する実際の実装では、これらのユニットの多くは、互いに密に相互作用し、少なくとも部分的に互いに統合され得る。しかしながら、開示の主題を説明する目的で、機能ユニットへの以下の概念的細分化は適切である。
【0044】
第1ユニットは、スケーラ/逆変換ユニット(451)である。スケーラ/逆変換ユニット(451)は、量子化済み変換係数、及び、どの変換を使用すべきか、ブロックサイズ、量子化係数、量子化スケーリングマトリクス、等を含む制御情報を、パーサ(420)からのシンボル(421)として受信する。スケーラ/逆変換ユニット(451)は、アグリゲータ(455)に入力され得るサンプル値を含むブロックを出力できる。
【0045】
幾つかの例では、スケーラ/逆変換ユニット(451)の出力サンプルは、イントラ符号化ブロック、つまり、前に再構成されたピクチャからの予測情報を使用しないが現在ピクチャの前に再構成された部分からの予測情報を使用可能なブロック、に属することができる。このような予測情報は、イントラピクチャ予測ユニット452により提供できる。幾つかの場合には、イントラピクチャ予測ユニット(452)は、再構成中のブロックと同じサイズ及び形状のブロックを、現在ピクチャバッファ(458)からフェッチした周囲の既に再構成された情報を用いて、生成する。現在ピクチャバッファ(458)は、例えば、再構成された現在ピクチャを部分的に及び/又は再構成された現在ピクチャを完全にバッファリングする。アグリゲータ(455)は、幾つかの場合には、サンプル毎に、イントラ予測ユニット(452)の生成した予測情報を、スケーラ/逆変換ユニット(451)により提供された出力サンプル情報に追加する。
【0046】
他の場合には、スケーラ/逆変換ユニット(451)の出力サンプルは、インター符号化された、場合によっては動き補償されたブロックに関連し得る。このような場合には、動き補償予測ユニット(453)は、参照ピクチャメモリ(457)にアクセスして、予測ために使用されるサンプルをフェッチできる。ブロックに関連するシンボル(421)に従いフェッチしたサンプルを動き補償した後に、これらのサンプルは、アグリゲータ(455)により、出力サンプル情報を生成するために、スケーラ/逆変換ユニット(451)の出力に追加され得る(この場合、残差サンプル又は残差信号と呼ばれる)。動き補償予測ユニット(453)が予測サンプルをフェッチする参照ピクチャメモリ(457)内のアドレスは、例えばX、Y及び参照ピクチャコンポーネントを有し得るシンボル(421)の形式で、動き補償予測ユニット(453)の利用可能な動きベクトルにより制御できる。動き補償は、サブサンプルの正確な動きベクトルが使用中であるとき参照ピクチャメモリ(457)からフェッチされたサンプル値の補間、動きベクトル予測メカニズム、等を含み得る。
【0047】
アグリゲータ(455)の出力サンプルは、ループフィルタユニット(456)において種々のループフィルタリング技術を受け得る。ビデオ圧縮技術は、符号化ビデオシーケンス(符号化ビデオビットストリームとも呼ばれる)に含まれ且つパーサ(420)からのシンボル(421)としてループフィルタユニット(456)に利用可能にされたパラメータにより制御されるが、符号化ピクチャ又は符号化ビデオシーケンスの(複合順序で)前の部分の複合中に取得されたメタ情報にも応答し、前に再構成されループフィルタリングされたサンプル値にも応答し得るインループフィルタ技術を含み得る。
【0048】
ループフィルタユニット(456)の出力は、レンダー装置(412)へと出力でき及び将来のインターピクチャ予測で使用するために参照ピクチャメモリ(457)に格納され得るサンプルストリームであり得る。
【0049】
特定の符号化ピクチャは、一旦完全に再構成されると、将来の予測のための参照ピクチャとして使用できる。例えば、現在ピクチャに対応する符号化ピクチャが完全に再構成され、符号化ピクチャが(例えばパーサ(420)により)参照ピクチャとして識別されると、現在ピクチャバッファ(458)は、参照ピクチャメモリ(457)の一部になることができ、後続の符号化ピクチャの再構成を開始する前に、新鮮な現在ピクチャバッファを再割り当てできる。
【0050】
ビデオデコーダ(410)は、ITU-T Rec. H.265のような標準の所定のビデオ圧縮技術に従い復号動作を実行してよい。符号化ビデオシーケンスがビデオ圧縮技術又は標準、及びビデオ圧縮技術又は標準において文書化されたプロファイルの両方に従うという意味で、符号化ビデオシーケンスは、使用中のビデオ圧縮技術又は標準により指定されたシンタックスに従ってよい。具体的に、プロファイルは、ビデオ圧縮技術又は標準において利用可能な全部のツールから、プロファイルの下でのみ使用可能なツールとして、特定のツールを選択できる。また、遵守のために必要なことは、符号化ビデオシーケンスの複雑さが、ビデオ圧縮技術又は標準のレベルにより定められる限界の範囲内であることであり得る。幾つかの場合には、レベルは、最大ピクチャサイズ、最大フレームレート、最大再構成サンプルレート(例えばメガサンプル/秒で測定される)、最大参照ピクチャサイズ、等を制限する。レベルにより設定される限界は、幾つかの場合には、HRD(Hypothetical Reference Decoder)仕様及び符号化ビデオシーケンスの中でシグナリングされるHDRバッファ管理のためのメタデータを通じて更に制限され得る。
【0051】
一実施形態では、受信機(431)は、符号化ビデオと共に追加(冗長)データを受信してよい。追加データは、符号化ビデオシーケンスの部分として含まれてよい。追加データは、データを正しく復号するため及び/又は元のビデオデータをより正確に再構成するために、ビデオデコーダ(410)により使用されてよい。追加データは、例えば、時間的、空間的、又は信号雑音比(SNR)の拡張レイヤ、冗長スライス、冗長ピクチャ、前方誤り訂正符号、等の形式であり得る。
【0052】
図5は、本開示の一実施形態によるビデオエンコーダ(503)のブロック図を示す。ビデオエンコーダ(503)は、電子装置(520)に含まれる。電子装置(520)は、送信機(540)(例えば、送信回路)を含む。ビデオエンコーダ(503)は、図3の例では、ビデオエンコーダ(303)の代わりに使用できる。
【0053】
ビデオエンコーダ(503)は、ビデオサンプルを、ビデオエンコーダ(503)により符号化されるべきビデオ画像をキャプチャし得るビデオソース(501)(図5の例では、電子装置(520)の部分ではない)から受信してよい。別の例では、ビデオソース(501)は、電子装置(520)の一部である。
【0054】
ビデオソース(501)は、ビデオエンコーダ(503)により符号化されるべきソースビデオシーケンスを、任意の適切なビット深さ(例えば、8ビット、10ビット、12ビット、...)、任意の色空間(例えば、BT.601 YCrCb、RGB、...)、及び任意の適切なサンプリング構造(例えば、YCrCb 4:2:0、YCrCb 4:4:4)のデジタルビデオサンプルストリームの形式で、提供してよい。メディア提供システムでは、ビデオソース501は、前に準備されたビデオを格納する記憶装置であってよい。ビデオ会議システムでは、ビデオソース501は、ビデオシーケンスとしてローカル画像情報をキャプチャするカメラであってよい。ビデオデータは、続けて閲覧されると動きを与える複数の個別ピクチャとして提供されてよい。ピクチャ自体は、ピクセルの空間的配列として組織化されてよい。各ピクセルは、使用中のサンプリング構造、色空間、等に依存して、1つ以上のサンプルを含み得る。当業者は、ピクセルとサンプルとの間の関係を直ちに理解できる。以下の説明はサンプルに焦点を当てる。
【0055】
一実施形態によると、ビデオエンコーダ(503)は、ソースビデオシーケンスのピクチャを、符号化ビデオシーケンス(543)へと、リアルタイムに又はアプリケーションにより要求される任意の他の時間制約の下で符号化し圧縮してよい。適切な符号化速度の実施は、制御部(550)の1つの機能である。幾つかの実施形態では、制御部(550)は、後述する他の機能ユニットを制御し、他の機能ユニットに機能的に結合される。結合は、明確さのために図示されない。制御部(550)により設定されるパラメータは、レート制御関連パラメータ(ピクチャスキップ、量子化器、レート歪み最適化技術のラムダ値、...)、ピクチャサイズ、GOP(group of pictures)レイアウト、最大動きベクトル探索範囲、等を含み得る。制御部(550)は、特定のシステム設計に最適化されたビデオエンコーダ(503)に関連する他の適切な機能を有するよう構成され得る。
【0056】
幾つかの実施形態では、ビデオエンコーダ(503)は、符号化ループの中で動作するよう構成される。非常に簡略化された説明として、一例では、符号化ループは、ソースコーダ(530)(例えば、シンボルストリームのようなシンボルを、符号化されるべき入力ピクチャ及び参照ピクチャに基づき生成することを担う)、及びビデオエンコーダ(503)に内蔵された(ローカル)デコーダ(533)を含み得る。デコーダ(533)は、(シンボルと符号化ビットストリームとの間の任意の圧縮が、開示の主題において検討されるビデオ圧縮技術において無損失であるとき)(遠隔にある)デコーダが生成するのと同様の方法で、シンボルを再構成して、サンプルデータを生成する。再構成されたサンプルストリーム(サンプルデータ)は、参照ピクチャメモリ(534)に入力される。シンボルストリームの復号が、デコーダ位置(ローカル又はリモート)と独立にビット正確な結果をもたらすとき、参照ピクチャメモリ(534)の内容も、ローカルエンコーダとリモートエンコーダとの間でビット正確である。言い換えると、エンコーダの予測部分が、復号中に予測を用いるときデコーダが「見る」のと正確に同じサンプル値を、参照ピクチャサンプルとして「見る」。参照ピクチャ同期性のこの基本原理(及び、例えばチャネルエラーのために同期生が維持できない場合には、結果として生じるドリフト)は、幾つかの関連技術で同様に使用される。
【0057】
「ローカル」デコーダ(533)の動作は、図4と関連して以上に詳述したビデオデコーダ(410)のような「リモート」デコーダのものと同じであり得る。簡単に一時的に図4も参照すると、しかしながら、シンボルが利用可能であり、エントロピーコーダ(545)及びパーサ(420)による符号化ビデオシーケンスへのシンボルの符号化/復号が無損失であり得るので、バッファメモリ(415)を含むビデオデコーダ(410)のエントロピー復号部分、及びパーサ(420)は、ローカルデコーダ(533)に完全に実装されなくてよい。
【0058】
この点で行われる考察は、デコーダ内に存在するパース/エントロピー復号を除く任意のデコーダ技術も、対応するエンコーダ内と実質的に同一の機能形式で存在する必要があるということである。この理由から、開示の主題は、デコーダ動作に焦点を当てる。エンコーダ技術の説明は、それらが包括的に説明されるデコーダ技術の逆であるので、省略できる。特定の領域においてのみ、より詳細な説明が必要であり、以下に提供される。
【0059】
動作中、幾つかの例では、ソースコーダ(530)は、動き補償された予測符号化を実行してよい。これは、「参照ピクチャ」として指定されたビデオシーケンスからの1つ以上の前の符号化ピクチャを参照して予測的に入力ピクチャを符号化する。この方法では、符号化エンジン(532)は、入力ピクチャのピクセルブロックと、入力ピクチャに対する予測基準として選択されてよい参照ピクチャのピクセルブロックとの間の差分を符号化する。
【0060】
ローカルビデオデコーダ(533)は、ソースコーダ(530)により生成されたシンボルに基づき、参照ピクチャとして指定されてよいピクチャの符号化ビデオデータを復号してよい。符号化エンジン(532)の動作は、有利なことに、損失処理であってよい。符号化ビデオデータがビデオデコーダ(図5に図示されない)において復号され得るとき、再構成ビデオシーケンスは、標準的に、幾つかのエラーを有するソースビデオシーケンスの複製であってよい。ローカルビデオデコーダ(533)は、参照ピクチャに対してビデオデコーダにより実行され得る復号処理を複製し、参照ピクチャキャッシュ(534)に格納されるべき再構成参照ピクチャを生じ得る。このように、ビデオエンコーダ(503)は、(伝送誤りが無ければ)遠端ビデオデコーダにより取得される再構成参照ピクチャと共通の内容を有する再構成参照ピクチャのコピーを格納してよい。
【0061】
予測器(535)は、符号化エンジン(532)のために予測探索を実行してよい。つまり、符号化されるべき新しいピクチャについて、予測器(535)は、新しいピクチャのための適切な予測基準として機能し得る(候補参照ピクセルブロックのような)サンプルデータ又は参照ピクチャ動きベクトル、ブロック形状、等のような特定のメタデータについて、参照ピクチャメモリ(534)を検索してよい。予測器(535)は、適切な予測基準を見付けるために、サンプルブロック-ピクセルブロック毎に動作してよい。幾つかの例では、予測器(535)により取得された検索結果により決定されるように、入力ピクチャは、参照ピクチャメモリ(534)に格納された複数の参照ピクチャから引き出された予測基準を有してよい。
【0062】
制御部(550)は、例えば、ビデオデータの符号化のために使用されるパラメータ及びサブグループパラメータの設定を含む、ソースコーダ(530)の符号化動作を管理してよい。
【0063】
全ての前述の機能ユニットの出力は、エントロピーコーダ(545)におけるエントロピー符号化を受けてよい。エントロピーコーダ(545)は、ハフマン符号化、可変長符号化、算術符号化、等のような技術に従いシンボルを無損失圧縮することにより、種々の機能ユニットにより生成されたシンボルを、符号化ビデオシーケンスへと変換する。
【0064】
送信機(540)は、符号化ビデオデータを格納し得る記憶装置へのハードウェア/ソフトウェアリンクであってよい通信チャネル(560)を介する伝送のために準備するために、エントロピーコーダ(545)により生成された符号化ビデオシーケンスをバッファリングしてよい。送信機(540)は、ビデオコーダ(503)からの符号化ビデオデータを、送信されるべき他のデータ、例えば符号化音声データ及び/又は補助データストリーム(図示されないソース)とマージ(merge)してよい。
【0065】
制御部(550)は、ビデオエンコーダ(503)の動作を管理してよい。符号化中、制御部(550)は、それぞれのピクチャに適用され得る符号化技術に影響し得る特定の符号化ピクチャタイプを、各符号化ピクチャに割り当ててよい。例えば、ピクチャは、多くの場合、以下のピクチャタイプのうちの1つとして割り当てられてよい。
【0066】
イントラピクチャ(Iピクチャ)は、予測のソースとしてシーケンス内の任意の他のピクチャを使用せずに符号化及び復号され得るピクチャであってよい。幾つかのビデオコーデックは、例えばIDR(Independent Decoder Refresh)ピクチャを含む異なる種類のイントラピクチャを許容する。当業者は、Iピクチャの変形、及びそれらの個々の適用及び特徴を認識する。
【0067】
予測ピクチャ(Pピクチャ)は、殆どの場合、各ブロックのサンプル値を予測するために1つの動きベクトル及び参照インデックスを用いてイントラ予測又はインター予測を用いて符号化及び復号され得るピクチャであってよい。
【0068】
双方向予測ピクチャ(Bピクチャ)は、各ブロックのサンプル値を予測するために最大2つの動きベクトル及び参照インデックスを用いてイントラ予測又はインター予測を用いて符号化及び復号され得るピクチャであってよい。同様に、マルチ予測ピクチャは、単一のブロックの再構成のために、2つより多くの参照ピクチャ及び関連付けられたメタデータを使用できる。
【0069】
ソースピクチャは、共通に、複数のサンプルブロック(例えば、それぞれ4×4、8×8、4×8、又は16×16個のサンプルのブロック)に空間的に細分化され、ブロック毎に符号化されてよい。ブロックは、ブロックのそれぞれのピクチャに適用される符号化割り当てにより決定される他の(既に符号化された)ブロックへの参照により予測的に符号化されてよい。例えば、Iピクチャのブロックは、非予測的に符号化されてよく、又はそれらは同じピクチャの既に符号化されたブロックを参照して予測的に符号化されてよい(空間予測又はイントラ予測)。Pピクチャのピクセルブロックは、1つの前に符号化された参照ピクチャを参照して、空間予測を介して又は時間予測を介して、予測的に符号化されてよい。Bピクチャのブロックは、1つ又は2つの前に符号化された参照ピクチャを参照して、空間予測を介して又は時間予測を介して、予測的に符号化されてよい。
【0070】
ビデオエンコーダ(503)は、ITU-T Rec. H.265のような所定のビデオ符号化技術又は標準に従い符号化動作を実行してよい。その動作において、ビデオエンコーダ(503)は、入力ビデオシーケンスの中の時間的及び空間的冗長性を利用する予測符号化動作を含む種々の圧縮動作を実行してよい。符号化ビデオデータは、したがって、使用されているビデオ符号化技術又は標準により指定されたシンタックスに従ってよい。
【0071】
一実施形態では、送信機(540)は、符号化ビデオと共に追加データを送信してよい。ソースコーダ(530)は、このようなデータを符号化ビデオシーケンスの部分として含んでよい。追加データは、時間/空間/SNR拡張レイヤ、冗長ピクチャ及びスライスのような他の形式の冗長データ、SEIメッセージ、VUIパラメータセットフラグメント、等を含んでよい。
【0072】
ビデオは、時系列の中の複数のソースピクチャ(ビデオピクチャ)としてキャプチャされてよい。イントラピクチャ予測(イントラ予測と省略されることがある)は、所与のピクチャの中の空間的相関を利用し、インターピクチャ予測は、ピクチャ間の(時間的又は他の)相関を利用する。一例では、符号化/復号中の特定のピクチャは、現在ピクチャと呼ばれ、ブロックにパーティションされる。現在ピクチャの中のブロックが、ビデオの中の前に符号化され且つ未だバッファリングされている参照ピクチャの中の参照ブロックと同様であるとき、現在ピクチャの中のブロックは、動きベクトルと呼ばれるベクトルにより符号化できる。動きベクトルは、参照ピクチャ内の参照ブロックを指し、複数の参照ピクチャが使用中である場合には、参照ピクチャを識別する第3次元を有することができる。
【0073】
幾つかの実施形態では、双予測(bi-prediction)技術が、インターピクチャ予測で使用できる。双予測技術によると、両方とも復号順序でビデオの中の現在ピクチャより前にある(が、それぞれ表示順序で過去及び未来にあってよい)第1参照ピクチャ及び第2参照ピクチャのような2つの参照ピクチャが使用される。現在ピクチャ内のブロックは、第1参照ピクチャ内の第1参照ブロックを指す第1動きベクトル、及び第2参照ピクチャ内の第2参照ブロックを指す第2動きベクトルにより符号化できる。ブロックは、第1参照ブロック及び第2参照ブロックの結合により予測できる。
【0074】
さらに、符号化効率を向上するために、インターピクチャ予測においてマージモード技術が使用できる。
【0075】
本開示の幾つかの実施形態によると、インターピクチャ予測及びイントラピクチャ予測のような予測は、ブロックのユニットの中で実行される。例えば、HEVC標準によると、ビデオピクチャシーケンスの中のピクチャは、圧縮のために符号化木単位(coding tree unit:CTU)にパーティションされる。ピクチャ内のCTUは、64×64ピクセル、32×32ピクセル、又は16×16ピクセルのような、同じサイズを有する。通常、CTUは、3個の符号化木ブロック(coding tree blocks:CTB)、つまり1個のルマCTB及び2個のクロマCTB、を含む。各CTUは、1又は複数の符号化ユニット(coding unit:CU)に再帰的に4分木分割できる。例えば、64×64ピクセルのCTUは、64×64ピクセルの1個のCU、又は32×32ピクセルの4個のCU、又は16×16ピクセルの16個のCUに分割できる。一例では、各CUは、インター予測タイプ又はイントラ予測タイプのようなCUの予測タイプを決定するために分析される。CUは、時間的及び/又は空間的予測性に依存して、1つ以上の予測ユニット(prediction unit:PU)に分割される。通常、各PUは、ルマ予測ブロック(prediction block:PB)、及び2個のクロマPBを含む。一実施形態では、符号化(符号化/復号)における予測演算が、予測ブロックのユニットの中で実行される。ルマ予測ブロックを予測ブロックの一例として用いると、予測ブロックは、8×8ピクセル、16×16ピクセル、8×16ピクセル、16×8ピクセル、等のようなピクセルについて値(例えば、ルマ値)のマトリクスを含む。
【0076】
図6は、本開示の別の実施形態によるビデオエンコーダ(603)の図を示す。ビデオエンコーダ(603)は、ビデオピクチャシーケンスの中の現在ビデオピクチャ内のサンプル値の処理ブロック(例えば、予測ブロック)を受信し、処理ブロックを符号化ビデオシーケンスの部分である符号化ピクチャに符号化するよう構成される。一例では、ビデオエンコーダ(603)は、図3の例では、ビデオエンコーダ(303)の代わりに使用される。
【0077】
HEVCの例では、ビデオエンコーダ(603)は、8×8サンプル等の予測ブロックのような、処理ブロックのサンプル値のマトリクスを受信する。ビデオエンコーダ(603)は、例えばレート歪み最適化を用いて、処理ブロックがイントラモード、インターモード、又は双予測モードを用いて最適に符号化されるかを決定する。処理ブロックはイントラモードで符号化されるとき、ビデオエンコーダ(603)は、処理ブロックを符号化ピクチャへと符号化するために、イントラ予測技術を使用してよい。処理ブロックがインターモード又は双予測モードで符号化されるとき、ビデオエンコーダ(603)は、処理ブロックを符号化ピクチャへと符号化するために、それぞれインター予測又は双予測技術を使用してよい。特定のビデオ符号化技術では、マージモードは、予測器のギア部の符号化動きベクトル成分無しに、動きベクトルが1つ以上の動きベクトル予測器から得られるインターピクチャ予測サブモードであり得る。特定の他のビデオ符号化技術では、対象ブロックに適用可能な動きベクトル成分が存在し得る。一例では、ビデオエンコーダ(603)は、処理ブロックのモードを決定するために、モード決定モジュール(図示しない)のような他のコンポーネントを含む。
【0078】
図6の例では、ビデオエンコーダ(603)は、図6に示したように一緒にインターエンコーダ(630)、イントラエンコーダ(622)、残差計算器(623)、スイッチ(626)、残差エンコーダ(624)、一般制御部(621)、及びエントロピーエンコーダ(625)を含む。
【0079】
インターエンコーダ(630)は、現在ブロック(例えば、処理中のブロック)のサンプルを受信し、ブロックを参照ピクチャ内の1つ以上の参照ブロック(例えば、前のピクチャ及び後のピクチャの中のブロック)と比較し、インター予測情報(例えば、インター符号化技術による冗長情報の説明、動きベクトル、マージモード情報)を生成し、任意の適切な技術を用いてインター予測情報に基づきインター予測結果(例えば、予測ブロック)を計算するよう構成される。幾つかの例では、参照ピクチャは、符号化ビデオ情報に基づき復号された、復号参照ピクチャである。
【0080】
イントラエンコーダ(622)は、現在ブロック(例えば、処理中のブロック)のサンプルを受信し、幾つかの場合には、ブロックをサンプルピクチャ内の既に符号化されたブロックと比較し、変換後に量子化済み係数を、幾つかの場合にはイントラ予測情報(例えば、1つ以上のイントラ符号化技術によるイントラ予測方向情報)も生成するよう構成される。一例では、イントラエンコーダ(622)は、イントラ予測情報及び同じピクチャ内の参照ブロックに基づき、イントラ予測結果(例えば、予測したブロック)も計算する。
【0081】
一般制御部(621)は、一般制御データを決定し、一般制御データに基づきビデオエンコーダ(603)の他のコンポーネントを制御するよう構成される。一例では、一般制御部(621)は、ブロックのモードを決定し、モードに基づき、制御信号をスイッチ(626)に提供する。例えば、モードがイントラモードであるとき、一般制御部(621)は、残差計算器(623)による使用のためにイントラモード結果を選択するようスイッチ(626)を制御し、イントラ予測情報を選択してビットストリーム内にイントラ予測情報を含めるよう、エントロピーエンコーダ(625)を制御し、モードがインターモードであるとき、一般制御部(621)は、残差計算器(623)による使用のためにインター予測結果を選択するようスイッチ(626)を制御し、インター予測情報を選択してビットストリーム内にインター予測情報を含めるよう、エントロピーエンコーダ(625)を制御する。
【0082】
残差計算器(623)は、受信したブロックとイントラエンコーダ(622)又はインターエンコーダ(630)からの選択された予測結果との間の差(残差データ)を計算するよう構成される。残差エンコーダ(624)は、残差データに基づき動作して、残差データを符号化し、変換係数を生成するよう構成される。一例では、残差エンコーダ(624)は、残差データを空間ドメインから周波数ドメインへと変換し、変換係数を生成するよう構成される。変換係数は、次に、量子化変換係数を得るために、量子化処理を受ける。種々の実施形態では、ビデオエンコーダ(603)も残差デコーダ(628)を含む。残差デコーダ(628)は、逆変換を実行し、復号残差データを生成するよう構成される。復号残差データは、イントラエンコーダ(622)及びインターエンコーダ(630)により適切に使用できる。例えば、インターエンコーダ(630)は、復号残差データ及びインター予測情報に基づき復号ブロックを生成でき、イントラエンコーダ(622)は、復号残差データ及びイントラ予測情報に基づき復号ブロックを生成できる。復号ブロックは、復号ピクチャを生成するために適切に処理され、復号ピクチャは、幾つかの例ではメモリ回路(図示しない)にバッファリングされ、参照ピクチャとして使用できる。
【0083】
エントロピーエンコーダ(625)は、符号化ブロックを含めるために、ビットストリームをフォーマットするよう構成される。エントロピーエンコーダ(625)は、HEVC標準のような適切な標準に従い種々の情報を含むよう構成される。一例では、エントロピーエンコーダ(625)は、ビットストリームに、一般制御データ、選択された予測情報(例えば、イントラ予測情報又はインター予測情報)、残差情報、及び他の適切な情報を含めるよう構成される。開示の主題によると、インターモード又は双予測モードのいずれかのマージサブモードでブロックを符号化するとき、残差情報は存在しないことに留意する。
【0084】
図7は、本開示の別の実施形態によるビデオエンコーダ(710)の図を示す。ビデオデコーダ(710)は、符号化ビデオシーケンスの部分である符号化ピクチャを受信し、符号化ピクチャを復号して再構成ピクチャを生成するよう構成される。一例では、ビデオデコーダ(710)は、図3の例では、ビデオデコーダ(310)の代わりに使用される。
【0085】
図7の例では、ビデオデコーダ(710)は、図7に示したように一緒にエントロピーデコーダ(771)、インターデコーダ(780)、残差デコーダ(773)、再構成モジュール(774)、イントラデコーダ(772)を含む。
【0086】
エントロピーデコーダ(771)は、符号化ピクチャから、符号化ピクチャの生成されたシンタックス要素を表す特定のシンボルを再構成するよう構成され得る。このようなシンボルは、例えば、ブロックの符号化されたモード(例えば、イントラモード、インターモード、双方向モード、マージサブモード又は別のサブモードの後者の2つ)、それぞれイントラデコーダ(772)又はインターデコーダ(780)による予測のために使用される特定のサンプル又はメタデータを特定できる予測情報(例えば、イントラ予測情報又はインター予測情報)、例えば量子化された変換係数の形式の残差情報、等を含み得る。一例では、予測モードがインター又は双方向予測モードであるとき、インター予測情報がインターデコーダ(780)に提供され、予測タイプがイントラ予測タイプであるとき、イントラ予測情報がイントラデコーダ(772)に提供される。残差情報は、逆量子化され、残差デコーダ(773)に提供される。
【0087】
インターデコーダ(780)は、インター予測情報を受信し、インター予測情報に基づきインター予測結果を生成するよう構成される。
【0088】
イントラデコーダ(772)は、イントラ予測情報を受信し、イントラ予測情報に基づき予測結果を生成するよう構成される。
【0089】
残差デコーダ(773)は、逆量子化を実行して、逆量子化された変換係数を抽出し、逆量子化された変換係数を処理して、残差を周波数ドメインから空間ドメインへと変換するよう構成される。残差デコーダ(773)は、(量子化器パラメータ(Quantizer Parameter:QP)を含むための)特定の制御情報も要求してよい。この情報は、エントロピーデコーダ(771)により提供されてよい(これは低容量制御情報のみなので、データ経路は示されない)。
【0090】
再構成モジュール(774)は、空間ドメインで、残差デコーダ(773)による出力としての残差と(場合によりインター又はイントラ予測モジュールによる出力としての)予測結果とを結合して、再構成ピクチャの部分であり得る、一方で再構成ビデオの部分であり得る、再構成ブロックを形成するよう構成される。デブロッキング動作などのような他の適切な動作が、視覚的品質を向上するために実行できる。
【0091】
ビデオエンコーダ(303)、(503)、及び(603)、並びにビデオデコーダ(310)、(410)、及び(710)は、任意の適切な技術を用いて実装できることに留意する。一実施形態では、ビデオエンコーダ(303)、(503)、及び(603)、並びにビデオデコーダ(310)、(410)、及び(710)は、1つ以上の集積回路を用いて実装できる。別の実施形態では、ビデオエンコーダ(303)、(503)、及び(503)、並びにビデオデコーダ(310)、(410)、及び(710)は、ソフトウェア命令を実行する1つ以上のプロセッサを用いて実装できる。
【0092】
II.イントラブロックコピー(Intra Block Copy)
【0093】
ビデオ符号化に基づくハイブリッドブロックでは、異なるピクチャからの動き補償(インターピクチャ動き補償)がよく知られている。同様に、動き補償は、同じピクチャ内の前の再構成領域からも実行できる。これは、イントラピクチャブロック補償、現在ピクチャ参照(current picture referencing (CPR))、又はイントラブロックコピー(intra block copy (IBC))と呼ばれる。IBCでは、現在ブロックと参照ブロックとの間のオフセットを示す変位ベクトルは、ブロックベクトル(block vector (BV))と呼ばれる。任意の値(x又はy方向のいずれかにおいて正又は負)であり得る異なるピクチャからの動き補償における動きベクトルと異なり、ブロックベクトルは、ポイントされる参照ブロックが利用可能であり既に再構成されていることを保証するために、幾つかの制約を有する。また、並列処理を考慮するために、タイル境界又は波面はしご形状境界である特定の参照領域は、IBCでは排除される。
【0094】
ブロックベクトルの符号化は、明示的又は暗示的であり得る。明示的モード(又はインター符号化では高度移動ベクトル予測(advanced motion vector prediction (AMVP))モードと呼ばれる)では、ブロックベクトルとその予測子との間の差分がシグナリングされる。暗示的モードでは、ブロックベクトルは、マージモードで取得された動きベクトルと同様の方法で、その予測子から純粋に復元される。ブロックベクトルの分解能は、幾つかの実装では整数位置に制限され、他のシステムでは分数位置を指すことが許容されてよい。
【0095】
実施形態では、ブロックベクトルにおけるIBCの使用は、IBCフラグと呼ばれるブロックレベルフラグを用いてシグナリングできる。例では、現在ブロックがマージモードで符号化されないとき、IBCフラグがシグナリングされる。別の例では、IBCの使用は、参照インデックスアプローチによりシグナリングされ、現在復号ピクチャは参照ピクチャとして取り扱われる。例えば、HEVCスクリーンコンテンツ符号化(Screen Content Coding (SCC))では、このような参照ピクチャは、参照ピクチャリストの最後の位置に置かれる。この特別な参照ピクチャは、また、復号ピクチャバッファ(decoded picture buffer (DPB))内の他の時間的参照ピクチャと一緒にマージされる。
【0096】
IBCを第3のモードとして取り扱うような、IBCの幾つかの変形も存在し、これはイントラ又はインター予測モードのいずれとも異なる。こうすることにより、IBCのマージモード及びAMVPモードにおけるブロックベクトル予測は、通常のインターモードと分けられる。例えば、IBCモードのために別個のマージ候補リストが定義され、リスト内の全部のエントリが全部ブロックベクトルである。同様に、IBC AMVPモードにおけるブロックベクトル予測リストは、ブロックベクトルで構成される。両方のリストに適用される一般的ルールは、ルールが候補導出処理の観点でインターマージ候補リスト又はAMVP予測子リストと同じロジックに従ってよいことである。例えば、HEVC又はVVCインターマージモードにおける5個の空間的に近隣の位置(図10に示される)は、IBCのためのマージ候補リストを導出するためにアクセスされる。
【0097】
図8は、イントラピクチャブロック補償の例を示す。処理中のピクチャ(810)(現在ピクチャと呼ばれる)は、CTU(811~825)にパーティションされる。CTU(811~822)は、復号されている。現在CTU(823)は処理中である。現在CTU(823)内のIBC符号化現在ブロック(801)を復号するために、ブロックベクトル(803)が先ず決定され得る。ブロックベクトル(803)に基づき、CTU(817)内の参照ブロック(802)(予測ブロック又は予測子ブロックとも呼ばれる)が位置を特定され得る。従って、現在ブロック(801)は、参照ブロック(802)を現在ブロック(801)の残差と結合することにより、再構成できる。図示のように、参照ブロック(802)及び現在ブロック(801)は、同じ現在ピクチャ(810)内に存在する。
【0098】
図9A~9Dは、再構成サンプルを格納する1CTUサイズのメモリによるイントラピクチャブロック補償の例を示す。第1の例では、IBCモードの探索範囲は、現在CTU内であるよう制約されることができる。従って、IBCモードの参照サンプルを格納するための効率的なメモリ要件は、1CTUサイズのサンプルである。例として、128×128現在CTUは、4個の4×64領域にパーティションできる。現在64×64領域の中の再構成サンプルを格納するために既存の参照サンプルメモリを考えると、更に3個の64×64サイズの参照サンプルメモリが必要である。この事実に基づき、第2の例では、IBCモードの効率的な探索範囲は、左CTUの何らかの部分にまで拡張されることができ、一方で、参照ピクセルを格納するための合計メモリ要件は不変のままである(1CTUサイズ、全部で4個の64×64参照サンプルメモリ)。
【0099】
図9A~9Dは、1CTUサイズのメモリが左CTUを探索するためにどのように再利用されるかを示す。図9A~9Dは、それぞれ、128×128サンプルのサイズを有する左CTU及び右CTUを示す。各CTUは、4個の64×64領域にパーティションされる。図9Aでは、左CTU内の再構成領域(901~903)、及び処理中の現在領域904が、1CTUサイズのメモリに格納できる。図9Bには、左CTU内の2個の再構成領域(911~912)、現在CTU内の1個の再構成領域(913)、及び現在領域(914)が、1CTUサイズのメモリに格納できる。図9Cでは、左CTU内の再構成領域(921)、現在CTU内の2個の再構成領域(922~923)、及び現在領域924が、1CTUサイズのメモリに格納できる。図9Dでは、現在CTU内の3個の再構成領域(931~933)及び現在領域934が、1CTUサイズのメモリに格納できる。
【0100】
幾つかの実施形態では、ビットストリーム内でシグナリングされるブロックベクトルはビットストリーム適合条件セットに従うことが要求される。例として、mvL及び1/16ペル(pel)分解能により示される有効ルマブロックベクトルは、以下のビットストリーム適応条件に従うべきである。
【0101】
A1:ブロック利用可能性の導出処理が、(xCb,yCb)に等しく設定された現在ルマ位置(xCurr,yCurr)、及び近隣ルマ位置(xCb+(mvL[0]>>4),yCb+(mvL[1]>>4))を入力として呼び出されるとき、出力はTRUE(真)(既に再構成されており、従って利用可能であることを意味する)に等しいべきである。ブロック利用可能性の導出処理は、近隣ブロック利用可能性チェック処理とも呼ばれる。条件A1は、位置(xCb+(mvL[0]>>4),yCb+(mvL[1]>>4))にある参照ブロックの左上角サンプルが利用可能である(既に再構成されている)ことを検証する。
【0102】
A2:ブロック利用可能性の導出処理が、(xCb,yCb)に等しく設定された現在ルマ位置(xCurr,yCurr)、及び近隣ルマ位置(xCb+(mvL[0]>>4)+cbWidth-1,yCb+(mvL[1]>>4)+cbHeight-1)を入力として呼び出されるとき、出力はTRUEに等しいべきである。条件A2は、位置(xCb+(mvL[0]>>4)+cbWidth-1,yCb+(mvL[1]>>4)+cbHeight-1)にある参照ブロックの右下角サンプルが利用可能であることを検証する。
【0103】
B1:以下の条件のうちの一方又は両方が真であるべきである。(mvL[0]>>4)+cbWidthの値が、0以下であること。(mvL[1]>>4)+cbHeightの値が、0以下であること。条件B1は、参照ブロックが現在ブロックと重ならないことを検証する。
【0104】
C1:以下の条件が真であるべきである。
【数1】
条件C1は、参照ブロックが現在CTU又は現在CTUの左CTU内に位置することを検証する。
【0105】
C2:(xCb+(mvL[0]>>4))>>CtbLog2SizeYが(xCb>>CtbLog2SizeY)-1であり、ブロック利用可能性の導出処理が、(xCb,yCb)に等しく設定された現在ルマ位置(xCurr,yCurr)、及び近隣ルマ位置(((xCb+(mvL[0]>>4)+CtbSizeY)>>(CtbLog2SizeY-1))<<(CtbLog2SizeY-1),((yCb+(mvL[1]>>4))>>(CtbLog2SizeY-1))<<(CtbLog2SizeY-1))を入力として呼び出されるとき、出力はFALSE(偽)(未だ再構成されていない)に等しいべきである。条件C2は、左CTU内の参照領域(例えば、図9Cの領域(921))が、現在CTU内の未だ再構成されていない領域に対応することを検証する。
【0106】
III.現在ブロックの空間マージ候補
【0107】
図10は、現在ブロック(1010)の5個の空間マージ候補を示す。空間マージ候補は、現在ブロック(1010)のブロックベクトル予測のための予測子リストを構成するために使用できる。例えば、現在ブロック(1010)は、スキップモード、マージモード、又はAMVPモードで構成中である。候補リストが構成できる。候補リストにある候補は、空間候補位置A1、A0、B2、B0、及びB1から選択できる。一例では、空間候補位置の利用可能性は、以下の順序、つまりA0、B0、B1、A1、及びB2でチェックされる。利用可能なとき、候補位置における動き情報は、候補リストに候補として追加できる。候補リストに対するインデックスは、ビットストリーム内で受信できる。インデックスに対応する候補は、現在ブロック1010の動きベクトルを決定するための動きベクトル予測(又は予測子)として使用できる。
【0108】
IV.履歴に基づく動きベクトル予測(History Based Motion Vector Prediction (HMVP))
【0109】
幾つかの例では、履歴に基づく動きベクトル予測(history based motion vector prediction (HMVP))方式がブロックを符号化するために使用される。例えば、HMVPマージ候補は、空間動きベクトル予測(spatial motion vector prediction (SMVP))及び時間動きベクトル予測(temporal motion vector prediction (TMVP))の後に、マージリストに追加される。この方法では、前の符号化ブロックの動き情報は、テーブル(HMVPテーブルと呼ばれる)に格納され、現在CUの動きベクトル予測子(motion vector predictor (MVP))として使用される。複数のHMVP候補を有するHMVPテーブルは、符号化又は復号処理の間、維持される。HMVPテーブルは、幾つかの例では、新しいCTU行に遭遇するとリセットされる(空にされる)。幾つかの例では、サブブロックインター符号化CUが存在しないときは常に、関連する動き情報は、新しいHMVP候補として、HMVPテーブルの最後のエントリに追加される。
【0110】
実施形態では、HMVPテーブルのサイズSは、6に設定される。これは、最大6個のHMVP候補がHMVPテーブルに追加されてよいことを示す。HMVPテーブルに新しい動き候補を挿入するとき、制約付き先入れ先出し(first-in-first-out (FIFO))ルールが利用される。先ず、HMVPテーブル内に同一のHMVPが存在するかどうかを見付けるために、冗長性チェックが適用される。見付かった場合、同一のHMVPはテーブルから削除され、以降の全部のHMVP候補が前方に移動される。
【0111】
HMVP候補は、マージ候補リスト構成処理で使用され得る。例では、HMVPテーブル内の最後の幾つかのHMVP候補は、順番にチェックされ、TMVP候補の後に候補リストに挿入される。冗長性チェックは、空間又は時間マージ候補に対して、HMVP候補に適用される。
【0112】
実施形態では、冗長性チェック演算の数を削減するために、以下の簡略化が導入される。(1)マージリスト生成のために使用されるHMVP候補の数は(N<=4)?M:(8-N)として設定される。ここで、Nは、マージリスト内に存在する候補の数を示し、Mは、HMVPテーブル内の利用可能なHMVP候補の数を示す。(2)一例では、利用可能なマージ候補の合計数が最大許容候補数-1に達すると、HMVPからのマージ候補リスト構成処理は終了する。
【0113】
V.HBVPテーブルに基づくイントラブロックコピー(Intra Block Copy (IBC))
【0114】
種々の実施形態では、IBCモードは、インターモード(現在ピクチャと異なるピクチャからの動き補償)とは別個のモードとして動作する。履歴に基づくブロックベクトル予測(history-based block vector prediction (HBVP))バッファと呼ばれる別個の履歴バッファが、前に処理された(エンコーダ側で符号化された/デコーダ側で復号された)IBCブロックベクトルを格納するために使用される。IBCモードで符号化された現在ブロックを処理するとき、エンコーダ側又はデコーダ側のいずれかで、現在ブロックのブロックベクトルは、HBVPバッファに基づき決定できる。HBVPバッファは、HBVPテーブル又はHBVPリストとも呼ばれ得る。この詳細な説明では、HBVPバッファ、HBVPテーブル、及びHBVPリストは、同義的に使用される。
【0115】
ここで説明する実施形態は、別個に使用され又は任意の順序で結合されてよい。更に、方法(又は実施形態)は、エンコーダ、及びデコーダの各々は、処理回路(例えば、1つ以上のプロセッサ又は1つ以上の集積回路)により実施されてよい。一例では、1つ以上のプロセッサは、非一時的コンピュータ可読媒体に格納されたプログラムを実行する。詳細な説明では、用語「ブロック」は、予測ブロック、符号化ブロック、又は符号化単位(CU)として解釈されてよい。
【0116】
実施形態A
【0117】
既に処理されたブロックのブロックベクトルをHBVPテーブルに追加するとき、既に処理されたブロックの位置(position又はlocation)情報は、HBVPテーブルに記録できる。言い換えると、HBVPテーブル内のエントリ毎に、ブロックベクトル情報に加えて、ブロックベクトルの関連付けられる符号化ブロック(前の符号化又は復号ブロック)の位置も格納される。
【0118】
例では、新しいブロックベクトル及び関連する位置情報をHBVPテーブルに追加するとき、符号化ブロックの各位置は異なるので、冗長性チェックは実行されない。別の例では、新しいブロックベクトル及び関連する位置情報をHBVPテーブルに追加するとき、冗長性チェックが実行される。例えば、新しいブロックベクトルは、HBVPテーブルに前に格納されたブロックベクトルと比較される。同様の又は同一の古いブロックベクトルが見付かった場合、古いブロックベクトルを含む古いエントリを削除でき、新しいブロックベクトル及び関連する位置情報を含む新しいエントリが、最新候補としてHBVPテーブルに追加できる。
【0119】
符号化ブロックの位置は、種々の例で、符号化ブロックの4つの角のうちの1つにより表すことができる。例えば、符号化ブロックの角のx及びy座標は、位置を示すために使用できる。例では、符号化ブロックの位置は、符号化ブロックの右下角の位置により表わされる。別の例では、符号化ブロックの位置は、符号化ブロックの左下角の位置により表すことができる。
【0120】
例では、符号化ブロックの位置は、符号化ブロックの4つの角のうちの1つの位置と符号化ブロックのサイズ(例えば、幅及び高さ)情報との和により表すことができる。
【0121】
例では、HBVPテーブルは、各CTU行の始めにリセットされる(例えば、空にされる)。このような構成では、HBVPテーブル内のエントリの位置情報は、それぞれ、それぞれの符号化ブロックのy座標について、それぞれのCTUの上端からの相対的なyオフセットを用いて記録できる。別の実施形態では、HBVPテーブルは、各CTUの始めにリセットされる。従って、HBVPにおけるエントリの位置情報は、それぞれ、それぞれの符号化ブロックのx及びy座標について、それぞれのCTUの原点からの相対的なx及びyオフセットを用いて記録できる。更なる例では、HBVPテーブル内のエントリのx及びy座標を記録するとき、それぞれの符号化ブロックのそれぞれのCTU原点からのオフセットは、HBVPテーブルリセット動作と無関係に記録される。
【0122】
実施形態B
【0123】
幾つかの例では、ブロックベクトル予測(block vector prediction (BVP))候補リストは、HBVPテーブルに基づき構成される。HBVPからのエントリを、BVP候補リストにあるBVP候補であるとして選択するとき、エントリの位置(locations又はpositions)(それぞれのエントリに対応する符号化ブロックの位置を参照する)が考慮される。
【0124】
例では、現在ブロックの位置及びエントリの位置が比較される。エントリの位置が現在ブロックの右下位置にある場合、エントリの位置情報は調整される。調整された位置情報に基づき、符号化ブロックと現在ブロックとの間の位置関係が決定できる。
【0125】
例えば、HBVPテーブル内の1つのエントリに対する現在ブロックの相対位置を計算するとき、現在ブロックのx及びy座標の両方がそれぞれエントリのx及びy座標より小さい場合(前の符号化ブロックが現在ブロックに対して右下位置にあることを意味し、これは不可能である)、計算を実行するときに(-CTU幅,0)のオフセットがエントリの座標に追加される。結果として、このようなエントリは、現在ブロックの左へと移動される(それぞれのブロックベクトルが、いまや、現在CTUの左のCTUからであることを意味する)。
【0126】
例では、現在ブロックの左に位置するエントリが、HBVPテーブルから選択され、(例えば、BVP候補リストに追加された)ブロックベクトル予測子として使用できる。例えば、HBVPテーブル内のエントリは、符号化ブロックの左上角に対応するx座標を含む。x座標が現在ブロックの左上角のx座標より小さい場合、エントリ(又は対応する符号化ブロック)は現在ブロックの左に位置すると決定できる。
【0127】
同様に、現在ブロックの上にあるブロックベクトルが、HBVPテーブルから選択できる。例えば、HBVPテーブル内のエントリは、符号化ブロックの左上角に対応するy座標を含む。y座標が現在ブロックの左上角のy座標より小さい場合、エントリ(又は対応する符号化ブロック)は現在ブロックの上に位置すると決定できる。
【0128】
従って、幾つかの例では、BVP候補リストは、現在ブロックの左にある又は上にある、HBVPテーブルから選択されたエントリに基づき、構成できる。
【0129】
幾つかの例では、(例えば、BVP候補リストに追加された)最大数2*N個の予測子が、現在ブロックのブロックベクトルを予測するために採用される。一例では、N=1であり、2*N個の予測子のうちの1つは、HBVPテーブル内の左に位置するエントリからであり(現在ブロックの左に位置するエントリを参照する)、2*N個の予測子のうちの他の1つは、HBVPテーブル内の上に位置するエントリからである(現在ブロックの上に位置するエントリを参照する)。別の例では、N=2であり、HBVPテーブル内に十分なエントリが存在すると仮定すると、BVP候補リストの中の予測子の順序は、1番左→1番上→左から2番目→上から2番目であってよい。十分なエントリが存在しないとき、予測子リスト(BVP候補リスト)内の対応するアイテムは、空になり、次のアイテムにより満たされ得る。
【0130】
幾つかの例では、HBVPテーブル内の最近の符号化エントリから開始して、現在ブロックの左にある第1エントリが左予測子として選択される。現在ブロックの左にある次のエントリは、第2左予測子として選択される。この方法では、左予測子は、連続的に選択できる。
【0131】
幾つかの例では、HBVPテーブル内の最近の符号化エントリから開始して、現在ブロックの上にある第1エントリが第1上予測子として選択できる。現在ブロックの上にある次のエントリは、第2上予測子として選択できる。この方法では、上予測子は、連続的に選択できる。
【0132】
例では、2候補の予測子リスト(BVP候補リスト)が、HBVPテーブル内の最初のN個のHBVPエントリをスキャンすることにより構成される。最初のN個のエントリは、最近符号化されたN個のエントリであり得るか、又は異なる例では最も前に符号化されたN個のエントリであり得る。例えば、NはHBVPテーブルのサイズSより小さいことができる。現在ブロックの左にある第1エントリは、第1候補として予測子リストに入れることができる。現在ブロックの上にある第1エントリは、第2候補として予測子リストに入れることができる。HBVPテーブルに上のみ又は左のみの候補がある場合、最初の2個の利用可能なエントリが予測子として選択できる。
【0133】
実施形態C
【0134】
幾つかの実施形態では、BVP候補リスト(予測子リスト)は、以下の方法で構成できる。ブロックベクトルが現在ブロックの隣にある関連位置を有する場合、HBVPテーブル内のブロックベクトルは予測子として導出される。例えば、HBVPテーブル内のエントリは、例えば最新のものから最古のものへと、順序に従いスキャンされ得る。エントリが現在ブロックの隣にある場合(エントリが現在ブロックの隣にある位置を含む)、このエントリのブロックベクトルは予測子リストに入れられる。この処理は、予測子リスト内の最大候補数に達するまで、続けることができる。例えば、図10では、5個の空間近隣位置が、現在ブロック(1010)の隣にあると考えられる。図10の5個の位置に対応する位置を有する、HBVPテーブル内のエントリが、検討され、特定の順序(例えば、QA0、B0、B1、A1、及びB2)に従い、予測子リスト内の候補として選択できる。
【0135】
例では、HBVPバッファ内のブロックベクトルが現在ブロックの隣にない場合、それは、空間的に近隣のエントリの後の、予測子リスト内の後の位置に入れられてよい。別の例では、HBVPバッファ内のブロックベクトルが現在ブロックの隣にない場合、それは、予測子リスト内で使用されなくてよい。
【0136】
実施形態D
【0137】
幾つかの例では、ブロックベクトルを予測子リストに入れるとき、新しい予測子が予測子リスト内の他の既存の予測子と異なることを保証するために、冗長性検査が実行され得る。
【0138】
実施形態E
【0139】
種々の例では、予測子リストは、HBVPテーブルに基づき構成され、現在ブロックのブロックベクトル(ブロックベクトル予測)を符号化するためのマージモード、スキップモード、又はAMVPモード(差分符号化によるベクトル予測)で使用され得る。
【0140】
実施形態F
【0141】
実施形態では、復号処理の間、複数のHBVPテーブルが維持できる。各HBVPテーブルは、新しい符号化ブロックベクトル(前の復号ブロックのブロックベクトル)を取り入れるために、異なる基準に関連付けられることができる。この方法では、符号化ブロックのブロックベクトルは、異なるグループに分類され、対応するHBVPテーブルに格納され得る。現在IBC符号化ブロックを符号化するとき、1つ以上のブロックベクトルが、それらの別個のHBVPテーブルから選択され、現在ブロックのブロックベクトルを符号化するための予測子として使用できる。同様に、これらのHBVPテーブル内のエントリは、それぞれ、符号化ブロックのブロックベクトル、符号化ブロックの位置(x及びy座標)、符号化ブロックのサイズ(幅及び高さ)、又は他の関連情報を含むことができる。
【0142】
第1の例では、HBVPテーブルのうちの1つが符号化ブロックの新しいブロックベクトルを取り入れる基準は、符号化ブロックがブロックサイズ条件を満たすことである。符号化ブロックのブロックサイズは、種々の方法で測定できる。例えば、ブロックサイズは、符号化ブロックの幅に高さを乗じることにより計算された、符号化ブロック内のルマサンプルの数であり得る。例では、ブロックサイズ条件は、ブロックサイズが閾値T_size1以上、且つ別の閾値T_size2未満であることである。例では、ブロックサイズ条件は、ブロックサイズが閾値以上であることである。
【0143】
第2の例では、HBVPテーブルのうちの1つが符号化ブロックの新しいブロックベクトルを取り入れる基準は、符号化ブロックが、以下の条件を満たす左上角のx座標xcを有することである:xc%ctuSizeYが、閾値T_x0上であり、且つ別の閾値T_x1未満であること。記号%はモジュロ演算を表し、ctuSizeYはCTUのサイズを表す。
【0144】
第3の例では、HBVPテーブルのうちの1つが符号化ブロックの新しいブロックベクトルを取り入れる基準は、符号化ブロックが、以下の条件を満たす左上角のy座標ycを有することである:yc%ctuSizeYが、閾値T_y0上であり、且つ別の閾値T_y1未満であること。
【0145】
第4の例では、HBVPテーブルのうちの1つが符号化ブロックの新しいブロックベクトルを取り入れる基準は、符号化ブロックが、以下の条件を満たす右下角のx座標xcを有することである:xc%ctuSizeYが、閾値T_x0上であり、且つ別の閾値T_x1未満であること。
【0146】
第5の例では、HBVPテーブルのうちの1つが符号化ブロックの新しいブロックベクトルを取り入れる基準は、符号化ブロックが、以下の条件を満たす右下角のy座標ycを有することである:yc%ctuSizeYが、閾値T_y0上であり、且つ別の閾値T_y1未満であること。
【0147】
上述の例では、新しいブロックベクトルをHBVPテーブルに入れるとき、枝刈り処理が適用されてよい。例えば、新しいブロックベクトルと同じブロックベクトル値を有するHBVPテーブル内のエントリが見付かったとき、該エントリは削除されてよい。新しいブロックベクトルを含む新しいエントリは、最近の符号化ブロックのブロックベクトルを含むエントリを格納する位置に入れられ得る。
【0148】
実施形態G
【0149】
実施形態では、IBC符号化ブロックのブロックベクトル予測のために、1つ以上のHBVPテーブルが維持される。各HBVPテーブルは、新しいブロックベクトルを取り入れる特定の基準に関連付けられる。全部でN個のHBVPテーブルが生成され維持されると仮定する。Nは、正整数であり、1以上である。
【0150】
第1の例では、格納されたエントリを有しない各HBVPテーブルについて、HBVPテーブルを満たすために、規定ブロックベクトル予測子のセットが使用される。例えば、規定ブロックベクトル予測子は、ゼロの値のブロックベクトル(x及びy座標がゼロである)であり得る。
【0151】
第2の例では、N個のHBVPテーブルのうちの1つを指すインデックスが、デコーダにおいてビットストリームから受信できる。これに応答して、インデックスにより示されたHBVPテーブル内のエントリが、現在ブロックのブロックベクトル予測のために選択できる。例えば、インデックスにより指された、HBVPテーブル内の最近のエントリ(最近に追加されたエントリ)は、現在IBC符号化ブロックのブロックベクトル予測子として選択できる。別の例では、インデックスにより指された、HBVPテーブル内の最古のエントリ(最も古く追加されたエントリ)は、現在IBC符号化ブロックのブロックベクトル予測子として選択できる。
【0152】
実施形態H
【0153】
実施形態では、デコーダにおいうて、復号処理の間、単一のHBVPテーブル、HBVP0が維持される。現在IBC符号化ブロックを復号している間、現在ブロックのブロックベクトル予測子を決定するために、HBVP0内のエントリは、異なるグループに分類される。各グループは、分類HBVPテーブルと呼ばれる個別HBVPテーブルに格納される。各分類HBVPテーブルは、HBVP0からのエントリを取り入れるための特定の基準を割り当てられ得る。分類動作は、従って、それらの基準に基づくことができる。
【0154】
例えば、HBVP0は、サイズMを有することができる。分類HBVPテーブルの数はNであり、NはM以下である。分類HBVPテーブルは、HBVP1~HBVPNと表すことができる。
【0155】
例えば、実施形態Fで説明した新しい符号化ブロックベクトルを分類するための基準は、HBVP0のエントリをHBVP1~HBVPNのテーブルに分類するために使用できる。他の例では、実施形態Fと異なる基準が利用できる。新しいエントリをHBVPxテーブル(x=0、1、...、N)に入れるとき、枝刈り処理が適用されてよい。例えば、HBVPx内に、新しいエントリのブロックベクトル値と同じブロックベクトル値を有する古いエントリが存在するとき、古いエントリは除去され、新しいエントリが、最近の符号化ブロックの情報を格納するための位置に入れられる。
【0156】
例では、HBVP1~HBVPNのテーブルが生成された後に、エントリは、ビットストリームから受信されたインデックスに従い、HBVP1~HBVPNのテーブルのうちの1つから選択できる。選択されたエントリのブロックベクトルは、現在ブロックのブロックベクトル予測子として使用できる。
【0157】
第1のケースでは、インデックスは、HBVP1~HBVPNのテーブルのうちの1つを示すことができる。インデックスを受信することに応答して、最後のエントリ(最近のエントリ)が、インデックスにより示されたHBVPテーブルから選択できる。
【0158】
第2のケースでは、(例えば、実施形態Cで説明したような)幾つかのルールに従いHBVP1~HBVPNのテーブルからエントリを選択することにより、先ず予測子リストが構成できる。インデックスは、予測子リスト上の候補を示すことができる。インデックスを受信することに応答して、予測子リスト上の候補が、現在ブロックのブロックベクトル予測子として使用できる。
【0159】
VI.HBVPテーブルに基づくIBCモード復号処理の例
【0160】
図11は、本開示の幾つかの実施形態による、処理(1100)の概要を示すフローチャートを示す。処理(1100)は、再構成中のブロックについて予測ブロックを生成するために、IBC符号化ブロックの再構成において使用できる。種々の実施形態では、処理(1100)は、端末装置(210)、(220)、(230)、及び(240)内の処理回路、ビデオデコーダ(310)の機能を実行する処理回路、ビデオデコーダ(410)の機能を実行する処理回路、等のような処理回路により実行される。幾つかの実施形態では、処理(1100)は、ソフトウェア命令で実装され、したがって、処理回路がソフトウェア命令を実行すると、処理回路が処理(1100)を実行する。処理は(S1101)で開始し、(S1110)に進む。
【0161】
(S1101)で、HBVPテーブルが、デコーダにおいてピクチャを復号する処理の間、維持され得る。例えば、HBVPテーブルは、1つ以上のエントリを含むことができ、各エントリは、前に復号されたIBC符号化ブロックに対応する。各エントリは、対応する前の復号ブロックのブロックベクトルと、対応する前の復号ブロックの位置と、を含むことができる。位置は、前の符号化ブロックの4角のうちの1つのx座標及びy座標であり得る。例では、各エントリは、それぞれの前の復号ブロックのサイズ情報(例えば、幅及び高さ)を更に含むことができる。
【0162】
(S1120)は、で、IBCモードで符号化された現在ブロックのデータがビットストリームの中で受信できる。例えば、データは、現在ブロックに対応する、ブロックレベルのシンタックス要素のセットを含むことができる。シンタックス要素のうちの1つは、現在ブロックがIBCモードで符号化されたことを示すことができる。
【0163】
(S1130)で、現在ブロックのブロックベクトルは、HBVPテーブルに基づき決定できる。現在ブロックのブロックベクトルを決定するために、現在ブロックのブロックベクトルのブロックベクトル予測子が先ず決定できる。
【0164】
例では、BVP候補リストが、HBVPテーブルに基づき構成できる。候補は、次に、BVP候補リストから、例えばビットストリーム内で受信されたBVP候補リストにある候補へのインデックスに基づき、選択される。選択された候補は、ブロックベクトル予測子として使用されるブロックベクトルを含むことができる。BVP候補リストは、第1候補及び第2候補のうちの1つ以上を含み得る。第1候補は、HBVPテーブルの中のブロックベクトルのうちの第1ブロックベクトルを含み得る。第1ブロックベクトルの対応するそれぞれの復号ブロックは、現在ブロックの左の位置を有する。第2候補は、HBVPテーブルの中のブロックベクトルのうちの第2ブロックベクトルを含み得る。第2ブロックベクトルの対応するそれぞれの復号ブロックは、現在ブロックの上の位置を有する。
【0165】
幾つかの例では、ブロックベクトル予測子を決定するために、HBVPテーブル内のエントリは、先ず、それぞれ分類HBVPテーブルに格納された異なるグループに分類される。各分類HBVPテーブルは、新しいエントリを取り入れるための基準に関連付けられ得る。例えば、HBVPテーブルのエントリのうちの1つの対応する前の復号ブロックのサイズが、ブロックサイズ条件を満たすとき、HBVPテーブルのエントリのうちの1つは、分類HBVPテーブルのうちの1つに格納される。例えば、ブロックサイズ条件は、HBVPテーブルのエントリのうちの1つの対応する前の復号ブロックのルマサンプルの数が閾値以上であることであり得る。
【0166】
別の例では、HBVPテーブルの中のエントリは、HBVPテーブルに格納された対応する前の復号ブロックの各々のx座標、y座標、又はx及びy座標の組合せに基づき、分類HBVPテーブルに分類できる。従って、現在ブロックと異なる位置に置かれた符号化ブロックのエントリは、異なる分類テーブルに格納できる。
【0167】
分類HBVPテーブルに基づき、ブロックベクトル予測子が決定できる。例では、分類HBVPテーブルのうちの1つを示すインデックスが、ビットストリームの中で受信できる。従って、1つのエントリが、示された分類HBVPテーブルから選択できる。選択されたエントリは、示された分類HBVPテーブルの中のエントリの復号ブロックの中で、最近の復号ブロックに対応し得る。選択されたエントリのブロックベクトルは、現在ブロックのブロックベクトルのブロックベクトル予測子として使用できる。
【0168】
別の例では、BVP候補リストが、分類HBVPテーブルに基づき構成できる。BVP候補リストは、それぞれ分類HBVPテーブルから選択されたブロックベクトルを含む1つ以上のBVP候補を含むことができる。その後、BVP候補は、ビットストリームから受信したインデックスに基づき、現在ブロックのブロックベクトルのブロックベクトル予測子であるとして、BVP候補リストから選択できる。
【0169】
ブロックベクトル予測子が決定された後に、相応して、現在ブロックのブロックベクトルが決定できる。例えば、現在ブロックは、スキップモード、マージモード、又はAMVPモードのうちの1つの中のIBCモードにより符号化できる。スキップモード及びマージモードでは、ブロックベクトル予測子は現在ブロックのブロックベクトルとして使用できる。AMVPモードでは、ベクトル差がビットストリームの中で受信され、ブロックベクトル予測子に追加され、現在ブロックのブロックベクトルを形成できる。
【0170】
(S1140)で、現在ブロックは、現在ブロックの決定されたブロックベクトルに基づき再構成できる。例えば、参照ブロックが、ピクチャの既に復号された領域の中でブロックベクトルに基づき決定でき、現在ブロックの残差と結合されて再構成ブロックを形成できる。
【0171】
(S1150)で、HBVPテーブルは、現在ブロックのブロックベクトルにより更新されることができる。例えば、現在ブロックのブロックベクトル、現在ブロックの位置、幅、及び高さは、HBVPテーブルに格納できる。HBVPテーブルを更新するとき、冗長性検査が実行されてよい。処理(1100)は(S1199)に進み、(S1199)で終了する。
【0172】
VIII.コンピュータシステム
【0173】
上述の技術は、コンピュータ可読命令を用いてコンピュータソフトウェアとして実装でき、1つ以上のコンピュータ可読媒体に物理的に格納でる。例えば、図12は、本開示の主題の特定の実施形態を実装するのに適するコンピュータシステム(1200)を示す。
【0174】
コンピュータソフトウェアは、アセンブリ、コンパイル、リンク等のメカニズムにより処理されて、1つ以上のコンピュータ中央処理ユニット(CPU)、グラフィック処理ユニット(GPU)、等により直接又はインタープリット、マイクロコード実行、等を通じて実行可能な命令を含むコードを生成し得る、任意の適切な機械コードまたはコンピュータ言語を用いて符号化できる。
【0175】
命令は、例えばパーソナルコンピュータ、タブレットコンピュータ、サーバ、スマートフォン、ゲーム装置、モノのインターネット装置、等を含む種々のコンピュータ又はそのコンポーネントで実行できる。
【0176】
コンピュータシステム(1200)の図12に示すコンポーネントは、本来例示であり、本開示の実施形態を実装するコンピュータソフトウェアの使用又は機能の範囲に対するようないかなる限定も示唆しない。さらに、コンポーネントの構成も、コンピュータシステム(1200)の例示的な実施形態に示されたコンポーネントのうちのいずれか又は組み合わせに関連する任意の依存性又は要件を有すると解釈されるべきではない。
【0177】
コンピュータシステム(1200)は、特定のヒューマンインタフェース入力装置を含んでよい。このようなヒューマンインタフェース入力装置は、例えば感覚入力(例えば、キーストローク、スワイプ、データグラブ動作)、音声入力(例えば、音声、クラッピング)、視覚的入力(例えば、ジェスチャ)、嗅覚入力(示されない)を通じた1人以上の人間のユーザによる入力に応答してよい。ヒューマンインタフェース装置は、必ずしも人間による意識的入力に直接関連する必要のない特定の媒体、例えば音声(例えば、会話、音楽、環境音)、画像(例えば、スキャンされた画像、デジタルカメラから取得された写真画像)、ビデオ(例えば、2次元ビデオ、3次元ビデオ、立体ビデオを含む)をキャプチャするためにも使用できる。
【0178】
入力ヒューマンインタフェース装置は、キーボード(1201)、マウス(1202)、トラックパッド(1203)、タッチスクリーン(1210)、データグラブ(図示しない)、ジョイスティック(1205)、マイクロフォン(1206)、スキャナ(1207)、カメラ(1208)、のうちの1つ以上を含んでよい(そのうちの1つのみが示される)。
【0179】
コンピュータシステム(1200)は、特定のヒューマンインタフェース出力装置も含んでよい。このようなヒューマンインタフェース出力装置は、例えば感覚出力、音声、光、及び匂い/味を通じて1人以上の人間のユーザの感覚を刺激してよい。このようなヒューマンインタフェース出力装置は、感覚出力装置を含んでよい(例えば、タッチスクリーン(1210)、データグラブ(図示しない)、又はジョイスティック(1205(による感覚フィードバック、しかし入力装置として機能しない感覚フィードバック装置も存在し得る)、音声出力装置(例えば、スピーカ(1209)、ヘッドフォン(図示しない)、視覚的出力装置(例えば、スクリーン(1210)、CRTスクリーン、LCDスクリーン、プラズマスクリーン、OLEDスクリーンを含み、それぞれタッチスクリーン入力能力を有し又は有さず、それぞれ感覚フィードバック能力を有し又は有さず、これらのうちの幾つかは例えば立体出力、仮想現実眼鏡(図示しない)、ホログラフィックディスプレイ、及び発煙剤タンク(図示しない)、及びプリンタ(図示しない)のような手段を通じて2次元視覚出力又は3次元以上の出力を出力可能であってよい))。
【0180】
コンピュータシステム(1200)は、人間のアクセス可能な記憶装置、及び、例えばCD/DVD等の媒体(1221)を備えるCD/DVD ROM/RW(1220)のような光学媒体、サムドライブ(1222)、取り外し可能ハードドライブ又は個体状態ドライブ(1223)、テープ及びフロッピディスク(図示しない)のようなレガシー磁気媒体、セキュリティドングル(図示しない)等のような専用ROM/ASIC/PLDに基づく装置のような関連する媒体も含み得る。
【0181】
当業者は、本開示の主題と関連して使用される用語「コンピュータ可読媒体」が伝送媒体、搬送波、又は他の一時的信号を包含しないことも理解すべきである。
【0182】
コンピュータシステム(1200)は、1つ以上の通信ネットワーク(1255)へのインタフェース(1254)も含み得る。ネットワークは、例えば無線、有線、光であり得る。ネットワークへは、更に、ローカル、広域、都市域、車両及び産業、リアルタイム、耐遅延性、等であり得る。ネットワークの例は、イーサネットのようなローカルエリアネットワーク、無線LAN、GSM、3G、4G、5G、LET等を含むセルラネットワーク、ケーブルTV、衛星TV、地上波放送TVを含むTV有線又は無線広域デジタルネットワーク、CANBusを含む車両及び産業、等を含む。特定のネットワークは、一般に、特定の汎用データポート又は周辺機器バス(1249)(例えば、コンピュータシステム(1200)のUSBポート)に取り付けられる外部ネットワークインタフェースを必要とする。他のものは、一般に、後述するようなシステムバスへの取り付けによりコンピュータシステム(1200)のコアに統合される(例えば、イーサネットインタフェースをPCコンピュータシステムへ、又はセルラネットワークインタフェースをスマートフォンコンピュータシステムへ)。これらのネットワークを用いて、コンピュータシステム(1200)は、他のエンティティと通信できる。このような通信は、単方向受信のみ(例えば、放送TV)、単方向送信のみ(例えば、特定のCANbus装置へのCANbus)、又は例えばローカル又は広域デジタルネットワークを用いて他のコンピュータシステムへの双方向であり得る。特定のプロトコル及びプロトコルスタックが、上述のネットワーク及びネットワークインタフェースの各々で使用され得る。
【0183】
前述のヒューマンインタフェース装置、人間のアクセス可能な記憶装置、及びネットワークインタフェースは、コンピュータシステム(1200)のコア(1240)に取り付け可能である。
【0184】
コア(1240)は、1つ以上の中央処理ユニット(CPU)(1241)、グラフィック処理ユニット(GPU)(1242)、GPGAの形式の専用プログラマブル処理ユニット(1243)、特定タスクのためのハードウェアアクセラレータ(1244)、グラフィックアダプタ(1250)、等を含み得る。これらの装置は、読み出し専用メモリ(ROM)(1245)、ランダムアクセスメモリ(1246)、内部のユーザアクセス不可能なハードドライブ、SSD、等のような内蔵大容量記憶装置(1247)と共に、システムバス(1248)を通じて接続されてよい。幾つかのコンピュータシステムでは、追加CPU、GPU、等による拡張を可能にするために、システムバス(1248)は、1つ以上の物理プラグの形式でアクセス可能である。周辺機器は、コアのシステムバス(1248)に直接に、又は周辺機器バス(1249)を通じて、取り付け可能である。図12では、スクリーン(1210)は、グラフィックアダプタ(1250)に接続される。周辺機器バスのアーキテクチャは、PCI、USB、等を含む。
【0185】
CPU(1241)、GPU(1242)、FPGA(1243)、及びアクセラレータ(1244)は、結合されて前述のコンピュータコードを生成可能な特定の命令を実行できる。該コンピュータコードは、ROM(1245)又はRAM(1246)に格納できる。一時的データもRAM(1246)に格納でき、一方で、永久的データは例えば内蔵大容量記憶装置(1247)に格納できる。メモリ装置のうちのいずれかへの高速記憶及び読み出しは、CPU(1241)、GPU(1242)、大容量記憶装置(1247)、ROM(1245)、RAM(1246)等のうちの1つ以上に密接に関連付けられ得るキャッシュメモリの使用を通じて可能にできる。
【0186】
コンピュータ可読媒体は、種々のコンピュータにより実施される動作を実行するためのコンピュータコードを有し得る。媒体及びコンピュータコードは、本開示の目的のために特別に設計され構成されたものであり得、又は、コンピュータソフトウェア分野の当業者によく知られ利用可能な種類のものであり得る。
【0187】
例として及び限定ではなく、アーキテクチャを有するコンピュータシステム(1200)、及び具体的にはコア(1240)は、プロセッサ(CPU、GPU、FPGA、アクセラレータ、等を含む)が1つ以上の有形コンピュータ可読媒体内に具現化されたソフトウェアを実行した結果として、機能を提供できる。このようなコンピュータ可読媒体は、コア内蔵大容量記憶装置(1247)又はROM(1245)のような非一時的特性のコア(1240)の特定の記憶装置、及び上述のようなユーザアクセス可能な大容量記憶装置と関連付けられた媒体であり得る。本開示の種々の実施形態を実装するソフトウェアは、このような装置に格納されコア(1240)により実行できる。コンピュータ可読媒体は、特定の必要に従い、1つ以上のメモリ装置又はチップを含み得る。ソフトウェアは、コア(1240)及び具体的にはその中のプロセッサ(CPU、GPU、FPGA、等を含む)に、ソフトウェアにより定義された処理に従うRAM(1246)に格納されたデータ構造の定義及び該データ構造の変更を含む、ここに記載した特定の処理又は特定の処理の特定の部分を実行させることができる。追加又は代替として、コンピュータシステムは、ここに記載の特定の処理又は特定の処理の特定の部分を実行するためにソフトウェアと一緒に又はそれに代わって動作可能な論理ハードワイヤド又は他の回路内の実装(例えば、アクセラレータ(1244))の結果として機能を提供できる。ソフトウェアへの言及は、ロジックを含み、適切な場合にはその逆も同様である。コンピュータ可読媒体への言及は、適切な場合には、実行のためにソフトウェアを格納する(集積回路(IC)のような)回路、実行のためにロジックを実装する回路、又はそれらの両方を含み得る。本開示は、ハードウェア及びソフトウェアの任意の適切な組み合わせを含む。
付録A:用語集
AMVP: Advanced Motion Vector Prediction
ASIC: Application-Specific Integrated Circuit
BMS: benchmark set
BV: Block Vector
CANBus: Controller Area Network Bus
CD: Compact Disc
CPR: Current Picture Referencing
CPUs: Central Processing Units
CRT: Cathode Ray Tube
CTBs: Coding Tree Blocks
CTU: Coding Tree Unit
CU: Coding Unit
DPB: Decoded Picture Buffer
DVD: Digital Video Disc
FIFO: First-in-First-out
FPGA: Field Programmable Gate Areas
GOPs: Groups of Pictures
GPUs: Graphics Processing Units
GSM: Global System for Mobile communications
HBVP: History-based Block Vector Prediction
HEVC SCC: HEVC screen content coding
HEVC: High Efficiency Video Coding
HMVP: History-based Motion Vector Prediction
HRD: Hypothetical Reference Decoder
IBC: Intra Block Copy
IC: Integrated Circuit
JEM: joint exploration model
LAN: Local Area Network
LCD: Liquid-Crystal Display
LTE: Long-Term Evolution
MV: Motion Vector
MVP: Motion vector predictor
OLED: Organic Light-Emitting Diode
PBs: Prediction Blocks
PCI: Peripheral Component Interconnect
PLD: Programmable Logic Device
PUs: Prediction Units
RAM: Random Access Memory
ROM: Read-Only Memory
SEI: Supplementary Enhancement Information
SNR: Signal Noise Ratio
SSD: solid-state drive
TMVP: Temporal Motion Vector Prediction
TUs: Transform Units,
USB: Universal Serial Bus
VTM: VVC test model
VUI: Video Usability Information
VVC: versatile video coding
【0188】
本開示は、幾つかの例示的な実施形態を記載したが、代替、置換、及び種々の代用の均等物が存在し、それらは本開示の範囲に包含される。当業者に明らかなことに、ここに明示的に示され又は説明されないが、本開示の原理を実施し、したがって、本開示の精神及び範囲に含まれる多数のシステム及び方法を考案可能である。
図1
図2
図3
図4
図5
図6
図7
図8
図9A
図9B
図9C
図9D
図10
図11
図12