(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-11-25
(45)【発行日】2022-12-05
(54)【発明の名称】ビデオ符号化のための方法および装置
(51)【国際特許分類】
H04N 19/593 20140101AFI20221128BHJP
H04N 19/52 20140101ALI20221128BHJP
【FI】
H04N19/593
H04N19/52
(21)【出願番号】P 2021547116
(86)(22)【出願日】2020-06-25
(86)【国際出願番号】 US2020039614
(87)【国際公開番号】W WO2020264157
(87)【国際公開日】2020-12-30
【審査請求日】2021-08-11
(32)【優先日】2019-06-27
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2020-06-24
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】520353802
【氏名又は名称】テンセント・アメリカ・エルエルシー
(74)【代理人】
【識別番号】100110364
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100150197
【氏名又は名称】松尾 直樹
(72)【発明者】
【氏名】シャオジョン・シュ
(72)【発明者】
【氏名】シャン・リュウ
【審査官】鉢呂 健
(56)【参考文献】
【文献】LI, Guichun et al.,CE2-5.1: Affine HMVP with modified affine inheritance,Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11 14th Meeting: Geneva, CH, 17-29 Mar. 2019, [JVET-N0377],JVET-N0377 (version 2),ITU-T,2019年03月13日,<URL:http://phenix.it-sudparis.eu/jvet/doc_end_user/documents/14_Geneva/wg11/JVET-N0377-v2.zip>: JVET-N0377-CE2-5.1.docx: pp.1-4
【文献】CAO, Siqi et al.,Affine motion mode in intra coding,Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11 13th Meeting: Marrakech, MA, 9-18 Jan. 2019, [JVET-M0634-v3],JVET-M0634 (version 5),ITU-T,2019年01月14日,<URL:http://phenix.it-sudparis.eu/jvet/doc_end_user/documents/13_Marrakech/wg11/JVET-M0634-v5.zip: JVET-M0634.docx: pp.1-2
【文献】BROSS, Benjamin et al.,Versatile Video Coding (Draft 5),Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11 14th Meeting: Geneva, CH, 19-27 Mar. 2019, [JVET-N1001-v9],JVET-N1001 (version 9),ITU-T,2019年06月25日,<URL:http://phenix.it-sudparis.eu/jvet/doc_end_user/documents/14_Geneva/wg11/JVET-N1001-v9.zip>: JVET-N1001-v9.docx: pp.248-249
(58)【調査した分野】(Int.Cl.,DB名)
H04N 19/00-19/98
(57)【特許請求の範囲】
【請求項1】
ビデオデコーダにおけるビデオ復号の方法であって、
ビットストリームにおいてイントラブロックコピー(IBC)モードで符号化された現在のブロックのデータを受信するステップと、
履歴ベースブロックベクトル予測(HBVP)テーブルに基づいて、前記現在のブロック
を復号するためのブロックベクトル予測(BVP)候補リストを構成するステップであって、前記HBVPテーブルが、以前に復号されたブロックに各々対応する1つ以上のエントリを含み、各エントリが、前記以前に復号された対応するブロックのブロックベクトルおよび前記以前に復号された対応するブロックの位置を含
み、前記位置が、前記以前に復号された対応するブロックの同一の角のx座標およびy座標によって表され、前記HBVPテーブル内のブロックベクトルが、当該ブロックベクトルに対応する前記以前に復号されたブロックの前記x座標または前記y座標のうちの少なくとも一方に従って、前記BVP候補リストに含まれるように選択される、ステップと、
前記現在のブロックを復号するための前記BVP候補リストに従って、前記現在のブロックのブロックベクトルを決定するステップと、
前記現在のブロックの前記決定されたブロックベクトルに基づいて、前記現在のブロックを再構成するステップと
を含む方法。
【請求項2】
前記現在のブロックの、前記ブロックベクトル、位置、幅、および高さを前記HBVPテーブルに格納するステップ
をさらに含む、請求項1に記載の方法。
【請求項3】
各エントリが、前記以前に復号された対応するブロックの
左上角の
前記x座標および
前記y座標を含む、請求項1に記載の方法。
【請求項4】
各エントリが
、前記以前に復号された対応するブロックの、幅および高
さを含む、請求項1に記載の方法。
【請求項5】
前記BVP候補リストが、
前記HBVPテーブル内の前記ブロックベクトルのうちの第1のブロックベクトルを含む第1の候補であって、前記第1のブロックベクトルの前記以前に復号された対応するブロックが、前記現在のブロックの左の位置を有する、第1の候補、または
前記HBVPテーブル内の前記ブロックベクトルのうちの第2のブロックベクトルを含む第2の候補であって、前記第2のブロックベクトルの前記以前に復号された対応するブロックが、前記現在のブロックの上の位置を有する、第2の候補
のうちの1つ以上を含む
、請求項1に記載の方法。
【請求項6】
前記現在のブロックが、スキップモード、マージモード、または高度動きベクトル予測(AMVP)モードのうちの1つで符号化される、請求項1に記載の方法。
【請求項7】
BVP候補リストを構成する前記ステップが、
順序に従って前記HBVPテーブル内の前記エントリを走査するステップと、
前記BVP候補リストの最大数に達するまで、個々のエントリが前記現在のブロックの次の位置を有する度に、前記HBVPテーブル内の前記エントリのうちの1つの前記ブロックベクトルを前記BVP候補リストに追加するステップと
を含む、請求項1に記載の方法。
【請求項8】
ビデオ復号の装置であって、
ビットストリームにおいてイントラブロックコピー(IBC)モードで符号化された現在のブロックのデータを受信することと、
履歴ベースブロックベクトル予測(HBVP)テーブルに基づいて、前記現在のブロック
を復号するためのブロックベクトル予測(BVP)候補リストを構成することであって、前記HBVPテーブルが、以前に復号されたブロックに各々対応する1つ以上のエントリを含み、各エントリが、前記以前に復号された対応するブロックのブロックベクトルおよび前記以前に復号された対応するブロックの位置を含
み、前記位置が、前記以前に復号された対応するブロックの同一の角のx座標およびy座標によって表され、前記HBVPテーブル内のブロックベクトルが、当該ブロックベクトルに対応する前記以前に復号されたブロックの前記x座標または前記y座標のうちの少なくとも一方に従って、前記BVP候補リストに含まれるように選択される、ことと、
前記現在のブロックを復号するための前記BVP候補リストに従って、前記現在のブロックのブロックベクトルを決定することと、
前記現在のブロックの前記決定されたブロックベクトルに基づいて、前記現在のブロックを再構成することと
を行うように構成された回路を備える、装置。
【請求項9】
前記回路が、
前記現在のブロックの、前記ブロックベクトル、位置、幅、および高さを前記HBVPテーブルに格納すること
を行うようにさらに構成される、請求項
8に記載の装置。
【請求項10】
各エントリが、前記以前に復号された対応するブロックの
左上角の
前記x座標および
前記y座標を含む、請求項
8に記載の装置。
【請求項11】
各エントリが
、前記以前に復号された対応するブロックの、幅および高
さを含む、請求項
8に記載の装置。
【請求項12】
前記BVP候補リストが、
前記HBVPテーブル内の前記ブロックベクトルのうちの第1のブロックベクトルを含む第1の候補であって、前記第1のブロックベクトルの前記以前に復号された対応するブロックが、前記現在のブロックの左の位置を有する、第1の候補、または
前記HBVPテーブル内の前記ブロックベクトルのうちの第2のブロックベクトルを含む第2の候補であって、前記第2のブロックベクトルの前記以前に復号された対応するブロックが、前記現在のブロックの上の位置を有する、第2の候補
のうちの1つ以上を含む
、請求項
8に記載の装置。
【請求項13】
前記現在のブロックが、スキップモード、マージモード、または高度動きベクトル予測(AMVP)モードのうちの1つで符号化される、請求項8に記載の装置。
【請求項14】
前記回路が、
順序に従って前記HBVPテーブル内の前記エントリを走査することと、
前記BVP候補リストの最大数に達するまで、個々のエントリが前記現在のブロックの次の位置を有する度に、前記HBVPテーブル内の前記エントリのうちの1つの前記ブロックベクトルを前記BVP候補リストに追加することと
を行うようにさらに構成される、請求項8に記載の装置。
【請求項15】
コンピュータに、請求項1から7のいずれか一項に記載の方法のステップを実行させる、コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本開示は、2020年6月24日に出願された、「Method and Apparatus for Video Coding」と題した米国特許出願第16/911,256号の利益を主張し、2019年6月27日に出願された、「History Based Block Vector Prediction for Intra Picture Block Compensation」と題した米国仮出願第62/867,658号の利益を主張するものである。先行出願の開示全体は、参照によりその全体が本明細書に組み込まれる。
【0002】
本開示は、広くはビデオ符号化に関連する実施形態を説明する。
【背景技術】
【0003】
本明細書で提供される背景技術の説明は、本開示に関連することを大まかに提示することを目的としている。本発明者らの研究は、この背景技術のセクションで説明する範囲において、ならびに出願時に先行技術としてその他の場合に認められないであろう説明の態様において、本開示に対する先行技術として明示的にも暗示的にも認められない。
【0004】
ビデオ符号化およびビデオ復号は、動き補償を用いた画像(picture)間予測を使用して実行することができる。非圧縮デジタルビデオは、一連の画像を含んでもよく、各画像は、例えば1920×1080の輝度サンプル、および関連付けられたクロミナンスサンプルの空間次元を有する。一連の画像は、例えば毎秒60個の画像または60Hzの固定画像レートまたは可変画像レート(非公式にはフレームレートとしても知られる)を有してもよい。非圧縮ビデオは、かなりの大きさのビットレートの要件を有する。例えば、サンプルあたり8ビットの1080p60 4:2:0ビデオ(60Hzのフレームレートで1920×1080の輝度サンプル解像度)は、1.5ギガビット/秒に近い帯域幅を必要とする。このようなビデオの1時間分は、600ギガバイトを超える記憶空間を必要とする。
【0005】
ビデオ符号化およびビデオ復号の1つの目的は、圧縮によって入力ビデオ信号の冗長度を削減することであってもよい。圧縮は、前述の帯域幅要件または記憶空間要件を、場合によっては2桁以上削減するのに役立ってもよい。可逆圧縮および非可逆圧縮の両方、ならびにそれらの組み合わせを使用してもよい。可逆圧縮とは、元の信号の正確なコピーを、圧縮された元の信号から再構成することができる技術を指す。非可逆圧縮を使用する場合、再構成された信号は元の信号と同一ではない可能性があるが、元の信号と再構成された信号との間の歪みは十分小さいので、再構成された信号を意図された用途に有用にできる。ビデオの場合、非可逆圧縮が広く使用されている。許容される歪みの量は用途に依存し、例えば、特定の消費者ストリーミングアプリケーションのユーザは、テレビ配信アプリケーションのユーザよりも高い歪みを許容する場合がある。達成可能な圧縮比は、より高い度合いの歪みが許容可能であれば、より高い圧縮比をもたらすことができることを反映し得る。
【0006】
動き補償は非可逆圧縮技術であってもよく、以前に再構成された画像またはその一部(参照画像)からのサンプルデータのブロックが、動きベクトル(以下、MV)によって示される方向に空間的にシフトされた後、新たに再構成された画像または画像の一部の予測に使用される技術に関してもよい。場合によっては、参照画像は、現在再構成中の画像と同じであってもよい。MVは、2つの次元XおよびY、または3つの次元を有することができ、第3の次元は、使用中の参照画像の表示である(後者の第3の次元は、間接的に、時間次元とすることができる)。
【0007】
いくつかのビデオ圧縮技術では、サンプルデータの特定の領域に適用可能なMVは、他のMVから、例えば再構成中の領域に空間的に隣接し、復号順でそのMVに先行するサンプルデータの別の領域に関連するMVから予測することができる。そうすることにより、MVの符号化に必要なデータ量を大幅に削減することができ、それによって冗長度が取り除かれ、圧縮が増加する。MV予測は効果的に機能することができ、その理由は、例えば、カメラ(未加工ビデオとして知られる)から導出された入力ビデオ信号を符号化する場合、単一のMVが適用可能な領域よりも大きい領域が同様の方向に移動する統計的尤度があり、したがって、場合によっては、隣接領域のMVから導出された同様の動きベクトルを使用して予測することができるからである。これにより、所与の領域に対して見つかったMVの結果は、周囲のMVから予測されたMVと類似または同じになり、エントロピー符号化後に、MVを直接符号化する場合に使用されるよりも少ないビット数で表すことができる。場合によっては、MV予測は、元の信号(すなわち、サンプルストリーム)から導出された信号(すなわち、MV)の可逆圧縮の一例である場合がある。他の場合では、例えば、いくつかの周囲のMVから予測子を算出する場合の丸め誤差があることにより、MV予測自体が非可逆であってもよい。
【0008】
様々なMV予測機構が、H.265/HEVCで説明されている(ITU-T勧告H.265、「High Efficiency Video Coding」、2016年12月)。本明細書では、H.265が提供する多くのMV予測機構のうち、「空間マージ」と呼ばれる技術について説明する。
【0009】
図1を参照すると、現在のブロック(101)は、空間的にシフトされた同じサイズの前のブロックから予測可能になるように、動き探索処理中にエンコーダによって見つけられたサンプルを含む。そのMVを直接符号化する代わりに、A0、A1、およびB0、B1、B2(それぞれ102~106)で表される5つの周囲のサンプルのいずれか1つに関連付けられたMVを使用して、1つ以上の参照画像に関連付けられたメタデータから、例えば(復号順序で)最新の参照画像から、MVを導出することができる。H.265では、MV予測は、隣接ブロックが使用しているのと同じ参照画像からの予測子を使用することができる。
【発明の概要】
【課題を解決するための手段】
【0010】
本開示の態様は、ビデオ符号化/ビデオ復号のための方法および装置を提供する。いくつかの例では、ビデオ復号のための装置は処理回路を含む。処理回路は、ビットストリームにおいてイントラブロックコピー(IBC)モードで符号化された現在のブロックのデータを受信するように構成することができる。現在のブロックのブロックベクトルは、履歴ベースブロックベクトル予測(HBVP)テーブルに基づいて決定されてもよく、HBVPテーブルが、以前に復号されたブロックに各々対応する1つ以上のエントリを含む。各エントリは、以前に復号された対応するブロックのブロックベクトルおよび以前に復号された対応するブロックの位置を含んでもよい。現在のブロックは、現在のブロックの決定されたブロックベクトルに基づいて、再構成されてよい。一実施形態では、現在のブロックのブロックベクトル、位置、幅、および高さは、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候補リストから選択し、ビットストリームから受信したインデックスに基づいて、現在のブロックのブロックベクトルのブロックベクトル予測子にしてもよい。様々な実施形態では、現在のブロックは、スキップモード、マージモード、または高度動きベクトル予測(AMVP)モードのうちの1つで符号化されてもよい。
【0017】
本開示の態様はまた、ビデオ復号のためにコンピュータによって実行されると、コンピュータにビデオ復号のための方法を実行させる命令を格納する非一時的コンピュータ可読媒体を提供する。
【0018】
開示された主題のさらなる特徴、性質、および様々な利点は、以下の詳細な説明および添付の図面からより明らかになるであろう。
【図面の簡単な説明】
【0019】
【
図1】一例における現在のブロックおよびその周囲の空間マージ候補の概略図である。
【
図2】一実施形態による通信システム(200)の簡略化されたブロック図の概略図である。
【
図3】一実施形態による通信システム(300)の簡略化されたブロック図の概略図である。
【
図4】一実施形態によるデコーダの簡略化されたブロック図の概略図である。
【
図5】一実施形態によるエンコーダの簡略化されたブロック図の概略図である。
【
図6】別の実施形態によるエンコーダのブロック図である。
【
図7】別の実施形態によるデコーダのブロック図である。
【
図9A】再構成されたサンプルを格納するために1CTUサイズのメモリを用いた、画像内ブロック補償の一例を示す図である。
【
図9B】再構成されたサンプルを格納するために1CTUサイズのメモリを用いた、画像内ブロック補償の一例を示す図である。
【
図9C】再構成されたサンプルを格納するために1CTUサイズのメモリを用いた、画像内ブロック補償の一例を示す図である。
【
図9D】再構成されたサンプルを格納するために1CTUサイズのメモリを用いた、画像内ブロック補償の一例を示す図である。
【
図10】現在のブロック(1010)の空間マージ候補の一例を示す図である。
【
図11】本開示のいくつかの実施形態による処理(1100)の概要を示すフローチャートを示す図である。
【
図12】一実施形態によるコンピュータシステムの概略図である。
【発明を実施するための形態】
【0020】
I.ビデオ符号化エンコーダおよびビデオ符号化デコーダ
図2は、本開示の一実施形態による通信システム(200)の簡略化されたブロック図を図示する。通信システム(200)は、例えばネットワーク(250)を介して互いに通信することができる複数の端末デバイスを含む。例えば、通信システム(200)は、ネットワーク(250)を介して相互接続された端末デバイスの第1のペア(210)および(220)を含む。
図2の例では、端末デバイスの第1のペア(210)および(220)は、データの一方向送信を実行する。例えば、端末デバイス(210)は、ネットワーク(250)を介して他の端末デバイス(220)に送信するためにビデオデータ(例えば、端末デバイス(210)によって取り込まれたビデオ画像のストリーム)を符号化してもよい。符号化されたビデオデータは、1つ以上の符号化されたビデオビットストリームの形式で送信することができる。端末デバイス(220)は、ネットワーク(250)から符号化されたビデオデータを受信し、符号化されたビデオデータを復号してビデオ画像を復元し、復元されたビデオデータに応じてビデオ画像を表示することができる。一方向データ送信は、メディアサービングアプリケーションなどにおいて一般的である場合がある。
【0021】
別の例では、通信システム(200)は、例えばビデオ会議中に発生する可能性がある符号化されたビデオデータの双方向送信を実行する端末デバイス(230)および(240)の第2のペアを含む。データの双方向送信のために、一例では、端末デバイス(230)および(240)の各端末デバイスは、ネットワーク(250)を介して端末デバイス(230)および(240)の他方の端末デバイスに送信するために、ビデオデータ(例えば、端末デバイスによって取り込まれたビデオ画像のストリーム)を符号化することができる。端末デバイス(230)および(240)の各端末デバイスはまた、端末デバイス(230)および(240)の他方の端末デバイスによって送信された符号化されたビデオデータを受信することができ、符号化されたビデオデータを復号してビデオ画像を復元することができ、復元されたビデオデータに応じてアクセス可能な表示デバイスにビデオ画像を表示することができる。
【0022】
図2の例では、端末デバイス(210)、(220)、(230)、および(240)は、サーバ、パーソナルコンピュータ、およびスマートフォンとして図示されてもよいが、本開示の原理はそのように限定されなくてもよい。本開示の実施形態には、ラップトップコンピュータ、タブレットコンピュータ、メディアプレーヤおよび/または専用ビデオ会議機器を用いた応用形態が見出される。ネットワーク(250)は、例えば有線通信(有線)ネットワークおよび/または無線通信ネットワークを含む、端末デバイス(210)、(220)、(230)および(240)の間で、符号化されたビデオデータを伝達する任意の数のネットワークを表す。通信ネットワーク(250)は、回路交換チャネルおよび/またはパケット交換チャネルにおいて、データを交換してもよい。代表的なネットワークには、電気通信ネットワーク、ローカルエリアネットワーク、ワイドエリアネットワーク、および/またはインターネットが含まれる。本説明の目的のために、ネットワーク(250)のアーキテクチャおよびネットワーク(250)のトポロジは、本明細書で以下に説明されない限り、本開示の動作に対して無関係であってもよい。
【0023】
図3は、開示された主題のアプリケーションの一例として、ストリーミング環境におけるビデオエンコーダの配置およびビデオデコーダの配置を図示する。開示された主題は、例えば、ビデオ会議と、デジタルTVと、CD、DVD、メモリスティックなどを含むデジタル媒体への圧縮ビデオを格納することなどを含む、他のビデオ対応アプリケーションにも等しく適用可能であってもよい。
【0024】
ストリーミングシステムは、例えば非圧縮のビデオ画像のストリーム(302)を生成する、例えばデジタルカメラなどのビデオソース(301)を含んでもよいキャプチャサブシステム(313)を含んでもよい。一例では、ビデオ画像のストリーム(302)は、デジタルカメラによって撮影されたサンプルを含む。符号化されたビデオデータ(304)(または符号化されたビデオビットストリーム)と比較して高いデータ量を強調するために太線として図示されている、ビデオ画像のストリーム(302)は、ビデオソース(301)に接続されたビデオエンコーダ(303)を含む電子デバイス(320)によって処理することができる。ビデオエンコーダ(303)は、以下でより詳細に説明するように、開示された主題の態様を可能にするため、または実装するために、ハードウェア、ソフトウェア、またはそれらの組み合わせを含んでもよい。ビデオ画像のストリーム(302)と比較してより低いデータ量を強調するために細い線として図示されている、符号化されたビデオデータ(304)(または符号化されたビデオビットストリーム(304))は、将来の使用のためにストリーミングサーバ(305)に格納することができる。
図3のクライアントサブシステム(306)および(308)などの、1つ以上のストリーミングクライアントサブシステムは、ストリーミングサーバ(305)にアクセスして、符号化されたビデオデータ(304)のコピー(307)および(309)を取得することができる。クライアントサブシステム(306)は、例えば電子デバイス(330)内のビデオデコーダ(310)を含んでもよい。ビデオデコーダ(310)は、符号化されたビデオデータの入力コピー(307)を復号し、ディスプレイ(312)(例えば、表示画面)または他のレンダリングデバイス(図示せず)上にレンダリングすることができる、ビデオ画像(311)の出力ストリームを作成する。いくつかのストリーミングシステムでは、符号化されたビデオデータ(304)、(307)、および(309)(例えば、ビデオビットストリーム)は、特定のビデオ符号化規格/ビデオ圧縮規格に応じて符号化することができる。これらの規格の例には、ITU-T勧告H.265が含まれる。一例では、開発中のビデオ符号化規格は、Versatile Video Coding(VVC)として非公式に知られている。開示された主題は、VVCの関連で使用されてもよい。
【0025】
電子デバイス(320)および(330)が他の構成要素(図示せず)を含んでもよいことに留意されたい。例えば、電子デバイス(320)はビデオデコーダ(図示せず)を含んでもよく、電子デバイス(330)はビデオエンコーダ(図示せず)も含んでもよい。
【0026】
図4は、本開示の一実施形態によるビデオデコーダ(410)のブロック図を示す。ビデオデコーダ(410)は、電子デバイス(430)に含まれてもよい。電子デバイス(430)は、受信器(431)(例えば、受信回路)を含んでもよい。ビデオデコーダ(410)は、
図3の例のビデオデコーダ(310)の代わりに使用してもよい。
【0027】
受信器(431)は、ビデオデコーダ(410)によって復号される、1つ以上の符号化されたビデオシーケンスを受信してもよく、同じ実施形態または別の実施形態では、一度に1つの符号化されたビデオシーケンスを受信し、ここで、各符号化されたビデオシーケンスの復号は他の符号化されたビデオシーケンスから独立している。符号化されたビデオシーケンスは、符号化されたビデオデータを格納する記憶デバイスへのハードウェアリンク/ソフトウェアリンクであってもよいチャネル(401)から、受信されてもよい。受信器(431)は、他のデータ、例えば、符号化されたオーディオデータおよび/または補助データストリームとともに、符号化されたビデオデータを受信することができ、これらのデータは、それぞれを使用する要素(図示せず)に転送されてもよい。受信器(431)は、符号化されたビデオシーケンスを他のデータから分離してもよい。ネットワークジッタに対抗するために、バッファメモリ(415)が、受信器(431)とエントロピーデコーダ/パーサ(420)(以下、パーサ(420))との間に接続されてもよい。特定の用途では、バッファメモリ(415)は、ビデオデコーダ(410)の一部である。他の用途では、ビデオデコーダ(410)の外部にあってもよい(図示せず)。さらに他の用途では、例えばネットワークジッタに対抗するためにビデオデコーダ(410)の外部にバッファメモリ(図示せず)があってもよく、さらに、例えば再生タイミングを処理するためにビデオデコーダ(410)の内部に別のバッファメモリ(415)があってもよい。受信器(431)が十分な帯域幅および制御可能性を有する格納デバイス/転送デバイスから、または非同期ネットワークからデータを受信している場合、バッファメモリ(415)は必ずしも必要ではなく、または小さくてもよい。インターネットなどのベストエフォートパケットネットワークで使用するために、バッファメモリ(415)が必要とされてもよく、比較的大きくてもよく、有利には適応性のあるサイズであってもよく、ビデオデコーダ(410)の外部のオペレーティングシステムまたは同様の要素(図示せず)に少なくとも部分的に実装されてもよい。
【0028】
ビデオデコーダ(410)は、符号化されたビデオシーケンスからシンボル(421)を再構成するために、パーサ(420)を含んでもよい。これらのシンボルのカテゴリは、ビデオデコーダ(410)の動作を管理するために使用される情報を含み、
図4に示したように、電子デバイス(430)の不可欠な一部ではないが電子デバイス(430)に接続することができるレンダリングデバイス(412)(例えば、表示画面)などのレンダリングデバイスを制御するための情報を含む可能性がある。レンダリングデバイスに対する制御情報は、付加拡張情報(SEIメッセージ)またはビデオユーザビリティ情報(VUI)の、パラメータの組の断片(図示せず)の形式であってもよい。パーサ(420)は、受信された符号化されたビデオシーケンスを解析/エントロピー復号することができる。符号化されるビデオシーケンスの符号化は、ビデオ符号化技術またはビデオ符号化規格に従ったものであってもよく、可変長符号化、ハフマン符号化、文脈依存性がある算術符号化または文脈依存性がある算術符号化などを含む様々な原理に従うものであってもよい。パーサ(420)は、グループに対応する少なくとも1つのパラメータに基づいて、符号化されたビデオシーケンスから、ビデオデコーダにおける、画素のサブグループのうちの少なくとも1つのサブグループパラメータの組を抽出してもよい。サブグループには、画像のグループ(GOP)、画像、タイル、スライス、マクロブロック、符号化ユニット(CU)、ブロック、変換ユニット(TU)、予測ユニット(PU)などが含まれてもよい。パーサ(420)はまた、符号化されたビデオシーケンスから、変換係数、量子化器パラメータ値、動きベクトルなどのような情報を抽出してもよい。
【0029】
パーサ(420)は、シンボル(421)を作成するために、バッファメモリ(415)から受信したビデオシーケンスに対してエントロピー復号動作/エントロピー解析動作を実行することができる。
【0030】
シンボル(421)の再構成は、符号化されたビデオ画像またはその一部(例えば、インター画像およびイントラ画像、インターブロックおよびイントラブロック)のタイプ、およびその他の要因に依存して、複数の異なるユニットを含んでもよい。どのユニットがどのように関与するかは、パーサ(420)によって符号化されたビデオシーケンスから解析されたサブグループ制御情報によって、制御することができる。パーサ(420)と以下の複数のユニットとの間のこのようなサブグループ制御情報のフローは、分かりやすくするために図示していない。
【0031】
既に述べた機能ブロックを超えて、ビデオデコーダ(410)は、以下に説明するように概念的にいくつかの機能ユニットに細分化することができる。商業的制約の下で動作する実際の実装形態では、これらのユニットの多くは互いに密接に相互作用し、少なくとも部分的に互いに統合することができる。しかしながら、開示された主題を説明する目的で、以下の機能ユニットに概念的に細分化することが適切である。
【0032】
第1のユニットはスケーラ/逆変換ユニット(451)である。スケーラ/逆変換ユニット(451)は、量子化された変換係数、ならびに制御情報などを、パーサ(420)からをシンボル(421)として受信し、この制御情報は、どの変換を使用するか、ブロックサイズ、量子化係数、量子化スケーリングマトリクスなどを含む。スケーラ/逆変換ユニット(451)は、集約器(455)に入力されてもよいサンプル値を含むブロックを出力してもよい。
【0033】
場合によっては、スケーラ/逆変換(451)の出力サンプルは、イントラ符号化されたブロックに関連してもよく、すなわち、このイントラ符号化されたブロックは、以前に再構成された画像からの予測情報を使用していないが、現在の画像の、以前に再構成された部分からの予測情報を使用することができるブロックである。このような予測情報は、画像内予測ユニット(452)によって提供することができる。場合によっては、画像内予測ユニット(452)は、現在画像バッファ(458)から取り出された、周囲の既に再構成された情報を使用して、再構成中のブロックと同じサイズおよび同じ形状のブロックを生成する。現在画像バッファ(458)は、例えば、部分的に再構成された現在の画像および/または完全に再構成された現在の画像をバッファリングする。集約器(455)は、場合によっては、イントラ予測ユニット(452)表記揺れが生成した予測情報を、スケーラ/逆変換ユニット(451)によって提供される出力サンプル情報に、サンプル単位で追加する。
【0034】
他の場合では、スケーラ/逆変換ユニット(451)の出力サンプルは、インター符号化されて動き補償された可能性があるブロックに関連してもよい。このような場合では、動き補償予測ユニット(453)は、予測に使用されるサンプルを取り出すために参照画像メモリ(457)にアクセスしてもよい。ブロックに関連するシンボル(421)に応じて取り出されたサンプルを動き補償した後、これらのサンプルは、出力サンプル情報を生成するために、集約器(455)によって、スケーラ/逆変換ユニット(451)の出力(この場合、残差サンプルまたは残差信号と呼ばれる)に追加されてもよい。動き補償予測ユニット(453)が予測サンプルを取り出す、参照画像メモリ(457)内のアドレスは、例えばX、Y、および参照画像構成要素を有してもよいシンボル(421)の形式の、動き補償予測ユニット(453)が利用可能な動きベクトルによって制御してもよい。動き補償はまた、サブサンプルの正確な動きベクトルが使用されている場合に参照画像メモリ(457)から取り出される、サンプル値の補間と、動きベクトル予測機構となどを含んでもよい。
【0035】
集約器(455)の出力サンプルは、ループフィルタユニット(456)における様々なループフィルタ処理技術を適用されてもよい。ビデオ圧縮技術は、ループ内フィルタ技術を含んでもよく、このループ内フィルタ技術は、符号化されたビデオシーケンス(符号化されたビデオビットストリームとも呼ばれる)に含まれるパラメータによって制御され、パーサ(420)からのシンボル(421)としてループフィルタユニット(456)に利用可能にされるが、符号化された画像または符号化されたビデオシーケンスの、(復号順での)前の部分を復号する間に取得されたメタ情報に応えてもよく、ならびに以前に再構成されてループフィルタリングされたサンプル値に応えてもよい。
【0036】
ループフィルタユニット(456)の出力は、レンダリングデバイス(412)に出力してもよいサンプルストリームであって、将来の画像間予測に使用するために参照画像メモリ(457)に格納されてもよい、サンプルストリームとしてもよい。
【0037】
完全に再構成されると、特定の符号化された画像は、将来の予測のための参照画像として使用することができる。例えば、現在の画像に対応する符号化された画像が完全に再構成され、符号化された画像が参照画像として(例えば、パーサ(420)によって)識別されると、現在画像バッファ(458)は参照画像メモリ(457)の一部になってもよく、新しい現在画像バッファは、後続の符号化された画像の再構成を開始する前に再配置されてもよい。
【0038】
ビデオデコーダ(410)は、ITU-T勧告H.265などの規格における所定のビデオ圧縮技術に応じて、復号動作を実行してもよい。符号化されたビデオシーケンスは、シンタックスに準拠してもよく、このシンタックスは、ビデオ圧縮技術またはビデオ圧縮規格によって指定され、このビデオ圧縮技術またはビデオ圧縮規格は、符号化されたビデオシーケンスが、ビデオ圧縮技術またはビデオ圧縮規格のシンタックスと、ビデオ圧縮技術またはビデオ圧縮規格に文書化されたプロファイルとの両方に準拠するという意味で使用される。具体的には、プロファイルは、ビデオ圧縮技術またはビデオ圧縮規格で利用可能なすべてのツールから、そのプロファイルの下で使用可能な唯一のツールとして特定のツールを選択してもよい。また、コンプライアンスのために必要である場合があるのは、符号化されたビデオシーケンスの複雑さが、ビデオ圧縮技術またはビデオ圧縮規格のレベルによって定義される範囲内にあることである。場合によっては、レベルによって、最大画像サイズ、最大フレームレート、最大再構成サンプルレート(例えば、毎秒メガサンプルで測定される)、最大参照画像サイズなどが制限される。レベルによって設定される制限は、場合によっては、符号化されたビデオシーケンスにおいてシグナリングされたHRDバッファ管理のためのメタデータおよび仮想参照デコーダ(HRD)仕様によってさらに制限されてもよい。
【0039】
一実施形態では、受信器(431)は、符号化されたビデオを有する追加の(冗長な)データを受信することができる。追加のデータは、符号化されたビデオシーケンスの一部として含まれてもよい。追加のデータは、データを適切に復号するため、および/または元のビデオデータをより正確に再構成するために、ビデオデコーダ(410)によって使用されてもよい。追加のデータは、例えば、時間強化層、空間強化層、または信号雑音比(SNR)強化層と、冗長スライスと、冗長画像と、転送エラー訂正コードとなどの形式であってもよい。
【0040】
図5は、本開示の一実施形態によるビデオエンコーダ(503)のブロック図を示す。ビデオエンコーダ(503)は、電子デバイス(520)に含まれる。電子デバイス(520)は、送信器(540)(例えば、送信回路)を含む。ビデオエンコーダ(503)は、
図3の例のビデオエンコーダ(303)の代わりに使用してもよい。
【0041】
ビデオエンコーダ(503)は、ビデオエンコーダ(503)によって符号化される予定のビデオ画像を取り込むことができるビデオソース(501)(
図5の例では電子デバイス(520)の一部ではない)から、ビデオサンプルを受信してもよい。別の例では、ビデオソース(501)は電子デバイス(520)の一部である。
【0042】
ビデオソース(501)は、ビデオエンコーダ(503)によって符号化される予定のソースビデオシーケンスを、デジタルビデオサンプルストリームの形式で提供することができ、このデジタルビデオサンプルストリームは、任意の適切なビット深度(例えば、8ビット、10ビット、12ビットなど)、任意の色空間(例えば、BT.601 YCrCb、RGBなど)、および任意の適切なサンプリング構造(例えば、YCrCb 4:2:0、YCrCb 4:4:4)であってもよい。メディアサービングシステムでは、ビデオソース(501)は、以前に準備されたビデオを格納する記憶デバイスであってもよい。ビデオ会議システムでは、ビデオソース(501)は、ビデオシーケンスとしてローカル画像情報を取り込むカメラであってもよい。ビデオデータは、連続して見た場合に動きを与える複数の個々の画像として提供されてもよい。画像自体は、画素の空間アレイとして編成することができ、各画素は、使用中のサンプリング構造、色空間などに応じて1つ以上のサンプルを含んでもよい。当業者であれば、画素とサンプルとの関係を容易に理解することができる。以下の説明では、サンプルに重点を置いている。
【0043】
一実施形態によれば、ビデオエンコーダ(503)は、リアルタイムで、またはアプリケーションによって要求される任意の他の時間制約下で、ソースビデオシーケンスの画像を符号化して、符号化されたビデオシーケンス(543)に圧縮することができる。適切な符号化速度を強制することは、コントローラ(550)の1つの機能である。いくつかの実施形態では、コントローラ(550)は、以下に説明するように他の機能ユニットを制御し、他の機能ユニットに機能的に接続されている。この接続は、分かりやすくするために図示していない。コントローラ(550)によって設定されるパラメータは、レート制御関連パラメータ(画像スキップ、量子化器、レート歪み最適化技術のラムダ値、…)、画像サイズ、画像のグループ(GOP)レイアウト、最大動きベクトル探索領域などを含んでもよい。コントローラ(550)は、特定のシステム設計に最適化されたビデオエンコーダ(503)に関連する、他の適切な機能を有するように構成されてもよい。
【0044】
いくつかの実施形態では、ビデオエンコーダ(503)は、符号化ループで動作するように構成されている。過度に簡略化された説明として、一例では、符号化ループは、ソースコーダ(530)と(例えば、符号化される予定の入力画像、および参照画像に基づいて、シンボルストリームなどのシンボルを生成する機能を担当する)、ビデオエンコーダ(503)に組み込まれた(ローカル)デコーダ(533)とを含んでもよい。デコーダ(533)は、(リモート)デコーダも作成するのと同様の方法でサンプルデータを作成するために、シンボルを再構成する(開示された主題で考慮されるビデオ圧縮技術では、シンボルと符号化されたビデオビットストリームとの間のいずれの圧縮も可逆的であるため)。再構成されたサンプルストリーム(サンプルデータ)は、参照画像メモリ(534)に入力される。シンボルストリームの復号は、デコーダの位置(ローカルまたはリモート)とは無関係にビット単位で正確な結果をもたらすので、参照画像メモリ(534)内の内容もローカルエンコーダとリモートエンコーダとの間においてもビット単位で正確である。言い換えれば、参照画像として、エンコーダの予測部が「見る」のは、復号中に予測を使用する場合にデコーダが「見る」のと全く同じサンプル値である。この参照画像同期性の基本原理(例えばチャネルエラーがあることにより同期性を維持することができない場合、結果として生じるドリフト)は、いくつかの関連技術においても使用される。
【0045】
「ローカル」デコーダ(533)の動作は、
図4に関連して詳細に既に前述したビデオデコーダ(410)などの「リモート」デコーダの動作と同じであってもよい。しかしながら、
図4も簡単に参照すると、シンボルが利用可能であり、エントロピーコーダ(545)およびパーサ(420)によって符号化されたビデオシーケンスにシンボルを符号化/復号することは可逆であってもよいので、バッファメモリ(415)を含むビデオデコーダ(410)のエントロピー復号部、およびパーサ(420)は、ローカルデコーダ(533)に完全に実装されない場合がある。
【0046】
ここまでの説明で考えることができる観察の結果は、デコーダ内に存在する解析/エントロピー復号を除く任意のデコーダ技術もまた、対応するエンコーダ内に実質的に同一の機能形式で存在する必要があるということである。このため、開示された主題では、デコーダ動作に重点を置いている。エンコーダ技術の説明は、エンコーダ技術が、包括的に説明されたデコーダ技術の逆のものであるので省略することができる。特定の領域においてのみ、より詳細な説明が必要とされ、以下に提供される。
【0047】
動作中に、いくつかの例では、ソースコーダ(530)は、動き補償予測符号化を実行してもよく、この動き補償予測符号化は、「参照画像」として指定されたビデオシーケンスからの1つ以上の以前に符号化された画像を参照して、入力画像を予測的に符号化する。このようにして、符号化エンジン(532)は、入力画像の画素ブロックと、入力画像に対する予測参照として選択されてもよい参照画像の画素ブロックとの間の差分を符号化する。
【0048】
ローカルビデオデコーダ(533)は、ソースコーダ(530)によって作成されたシンボルに基づいて、参照画像として指定されてもよい画像の符号化されたビデオデータを復号してもよい。符号化エンジン(532)の動作は、有利には非可逆処理であってもよい。符号化されたビデオデータがビデオデコーダ(
図5には図示せず)で復号されてもよい場合、再構成されたビデオシーケンスは、通常、いくつかのエラーを有するソースビデオシーケンスのレプリカであってもよい。ローカルビデオデコーダ(533)は、復号処理を複製し、この復号処理は、ビデオデコーダによって参照画像に対して実行されてもよく、再構成された参照画像を参照画像キャッシュ(534)に格納させてもよい。このようにして、ビデオエンコーダ(503)は、再構成された参照画像のコピーをローカルに格納することができ、この参照画像のコピーは、遠端のビデオデコーダによって取得される再構成された参照画像として、共通の内容を有する(送信エラーなしの場合)。
【0049】
予測器(535)は、符号化エンジン(532)の予測探索を実行してもよい。すなわち、符号化される予定の新しい画像に対して、予測器(535)は、参照画像メモリ(534)を探索してもよく、この探索は、(候補参照画素ブロックとしての)サンプルデータ、または、新しい画像に対しての適切な予測参照として機能してもよい、参照画像の動きベクトル、ブロック形状などの特定のメタデータを求めて行われる。予測器(535)は、適切な予測参照を見つけるために、サンプルブロック×画素ブロックの単位ごとに動作することができる。場合によっては、予測器(535)によって取得された探索結果によって決定されるように、入力画像は、参照画像メモリ(534)に格納された複数の参照画像から描画された予測参照を有してもよい。
【0050】
コントローラ(550)は、ソースコーダ(530)の符号化動作を管理してもよく、この符号化動作は、例えば、ビデオデータを符号化するために使用されるパラメータおよびサブグループパラメータを設定することを含む。
【0051】
すべての前述の機能ユニットの出力は、エントロピーコーダ(545)においてエントロピー符号化を適用されてもよい。エントロピーコーダ(545)は、ハフマン符号化、可変長符号化、算術符号化などの技術に応じてシンボルを可逆圧縮することによって、様々な機能ユニットによって生成されたシンボルを符号化されたビデオシーケンスに変換する。
【0052】
送信器(540)は、エントロピーコーダ(545)によって作成された符号化されたビデオシーケンスをバッファリングして、通信路(560)を介した送信の準備をしてもよく、この通信路(560)は、符号化されたビデオデータを格納する記憶デバイスへのハードウェアリンク/ソフトウェアリンクであってもよい。送信器(540)は、ビデオコーダ(503)からの符号化されたビデオデータを、送信される他のデータ、例えば、符号化されたオーディオデータおよび/または補助データストリーム(ソースは図示せず)とマージしてもよい。
【0053】
コントローラ(550)は、ビデオエンコーダ(503)の動作を管理してもよい。符号化中に、コントローラ(550)は、各符号化された画像に特定の符号化された画像タイプを割り当ててもよく、これにより、それぞれの画像に適用されてもよい符号化技術に影響を及ぼしてもよい。例えば、画像は、以下の画像タイプのうちの1つとして割り当てられることが多い。
【0054】
イントラ画像(I画像)は、シーケンス内の他の画像を予測のソースとせずに符号化して復号可能な画像であってもよい。いくつかのビデオコーデックは、例えば、独立復号リフレッシュ(「IDR」)画像を含む異なるタイプのイントラ画像を可能にする。当業者であれば、I画像のこれらの変形形態と、変形形態それぞれの応用形態および特徴とを認識する。
【0055】
予測画像(P画像)は、イントラ予測またはインター予測を使用して、符号化されて復号されてもよい画像であってもよく、これらのイントラ予測またはインター予測は、各ブロックのサンプル値を予測するために、最大で1つの動きベクトルおよび1つの参照インデックスを使用する。
【0056】
双方向予測画像(B画像)は、イントラ予測またはインター予測を使用して、符号化されて復号されてもよい画像であってもよく、これらのイントラ予測またはインター予測は、各ブロックのサンプル値を予測するために、最大で2つの動きベクトルおよび2つの参照インデックスを使用する。同様に、複数予測画像は、単一のブロックの再構成のために3つ以上の参照画像および関連付けられたメタデータを使用することができる。
【0057】
ソース画像は、一般に、複数のサンプルブロック(例えば、それぞれ4×4、8×8、4×8、または16×16のサンプルのブロック)に空間的に細分化され、ブロックごとに符号化されてもよい。ブロックは、ブロックのそれぞれの画像に適用される符号化割当によって決定された他の(既に符号化された)ブロックを参照して予測的に符号化されてもよい。例えば、I画像のブロックは、非予測的に符号化されてもよく、または同じ画像の既に符号化されたブロックを参照して予測的に符号化されてもよい(空間予測またはイントラ予測)。P画像の画素ブロックは、以前に符号化された1つの参照画像を参照して、空間予測、または時間予測を介して、予測的に符号化されてもよい。B画像のブロックは、1つまたは2つの以前に符号化された参照画像を参照して、空間予測、または時間予測を介して、予測的に符号化されてもよい。
【0058】
ビデオエンコーダ(503)は、ITU-T勧告H.265などの所定のビデオ符号化技術またはビデオ符号化規格に応じて符号化動作を実行してもよい。その動作では、ビデオエンコーダ(503)は、入力ビデオシーケンス内の時間冗長度および空間冗長度を利用する予測符号化動作を含む、様々な圧縮動作を実行してもよい。したがって、符号化されたビデオデータは、使用されているビデオ符号化技術またはビデオ符号化規格によって指定されたシンタックスに準拠してもよい。
【0059】
一実施形態では、送信器(540)は、符号化されたビデオとともに追加のデータを送信してもよい。ソースコーダ(530)は、符号化されたビデオシーケンスの一部としてこのようなデータを含んでもよい。追加のデータは、時間強化層/空間強化層/SNR強化層と、冗長画像および冗長スライスなどの他の形式の冗長データと、SEIメッセージと、VUIパラメータの組の断片となどを含んでもよい。
【0060】
ビデオは、複数のソース画像(ビデオ画像)として時系列に取り込まれてもよい。画像内予測(しばしばイントラ予測と略される)は、所与の画像における空間相関を利用し、画像間予測は、画像間の(時間的または他の)相関を利用する。一例では、現在の画像と呼ばれる、符号化中/復号中の特定の画像が、ブロックに分割される。現在の画像内のブロックが、ビデオ内における以前に符号化されてまだバッファされている参照画像内の参照ブロックに類似している場合、現在の画像内のブロックは、動きベクトルと呼ばれるベクトルによって符号化することができる。動きベクトルは、参照画像内の参照ブロックを指し示し、複数の参照画像が使用されている場合、参照画像を識別する第3の次元を有してもよい。
【0061】
いくつかの実施形態では、画像間予測で双予測技術を使用してもよい。双予測技術によれば、第1の参照画像および第2の参照画像などの2つの参照画像が使用され、これらの参照画像は両方とも、復号順においてビデオ内の現在の画像よりも前にある(しかし、表示順では、それぞれ過去および未来にあってもよい)。現在の画像内のブロックは、第1の参照画像内の第1の参照ブロックを指し示す第1の動きベクトル、および第2の参照画像内の第2の参照ブロックを指し示す第2の動きベクトルによって符号化することができる。ブロックは、第1の参照ブロックと第2の参照ブロックとの組み合わせによって予測することができる。
【0062】
さらに、符号化効率を改善するために、画像間予測でマージモード技術を使用することができる。
【0063】
本開示のいくつかの実施形態によれば、画像間予測および画像内予測などの予測は、ブロック単位で実行される。例えば、HEVC規格によれば、ビデオ画像のシーケンス内の画像は、圧縮のために符号化ツリーユニット(CTU)に分割され、画像内のCTUは、64×64画素、32×32画素、または16×16画素などの同じサイズを有する。一般に、CTUは、1個の輝度CTBおよび2個のクロマCTBである3個の符号化ツリーブロック(CTB)を含む。各CTUは、1つ以上の符号化ユニット(CU)に再帰的に4分木分割することができる。例えば、64×64画素のCTUは、64×64画素の1個のCU、32×32画素の4個のCU、または16×16画素の16個のCUに分割することができる。一例では、各CUは、インター予測タイプまたはイントラ予測タイプなどのCUに対する予測タイプを決定するために分析される。CUは、時間的予測可能性および/または空間的予測可能性に応じて、1つ以上の予測ユニット(PU)に分割される。一般に、各PUは、輝度予測ブロック(PB)と、2個のクロマPBとを含む。一実施形態では、符号化(符号化/復号)における予測動作は、予測ブロックの単位で実行される。予測ブロックの例として輝度予測ブロックを使用すると、予測ブロックは、8×8画素、16×16画素、8×16画素、16×8画素などのような画素の値のマトリクス(例えば、輝度値)を含む。
【0064】
図6は、本開示の別の実施形態によるビデオエンコーダ(603)の図を示す。ビデオエンコーダ(603)は、ビデオ画像のシーケンスにおける現在のビデオ画像内のサンプル値の処理ブロック(例えば、予測ブロック)を受信し、処理ブロックを、符号化されたビデオシーケンスの一部である符号化された画像に符号化するように構成されている。一例では、ビデオエンコーダ(603)は、
図3の例のビデオエンコーダ(303)の代わりに使用される。
【0065】
HEVCの例では、ビデオエンコーダ(603)は、8×8サンプルの予測ブロックなどのような処理ブロックに対するサンプル値のマトリクスを受信する。ビデオエンコーダ(603)は、処理ブロックが、例えばレート歪み最適化を使用する、イントラモード、インターモード、または双予測モードを使用して最適に符号化されるか否かを決定する。処理ブロックがイントラモードで符号化される予定の場合、ビデオエンコーダ(603)は、処理ブロックを符号化された画像へ符号化するために、イントラ予測技術を使用してもよい。そして、処理ブロックがインターモードまたは双予測モードで符号化される予定の場合、ビデオエンコーダ(603)は、処理ブロックを符号化された画像に符号化するために、それぞれインター予測技術または双予測技術を使用してもよい。特定のビデオ符号化技術では、マージモードは、画像間予測サブモードであってもよく、このモードでは、予測子の外側の符号化された動きベクトル成分の手助けなしに、動きベクトルが1つ以上の動きベクトル予測子から導出される。特定の他のビデオ符号化技術では、対象ブロックに適用可能な動きベクトル成分が存在してもよい。一例では、ビデオエンコーダ(603)は、処理ブロックのモードを決定するためのモード決定モジュール(図示せず)などの他の構成要素を含む。
【0066】
図6の例では、ビデオエンコーダ(603)は、
図6に示すように互いに接続された、インターエンコーダ(630)、イントラエンコーダ(622)、残差算出器(623)、スイッチ(626)、残差エンコーダ(624)、総合コントローラ(621)、およびエントロピーエンコーダ(625)を含む。
【0067】
インターエンコーダ(630)は、現在のブロック(例えば、処理ブロック)のサンプルを受信し、このブロックを参照画像内の1つ以上の参照ブロック(例えば、前の画像および後の画像内のブロック)と比較し、インター予測情報(例えば、インター符号化技術、動きベクトル、マージモード情報による冗長情報の説明)を生成し、任意の適切な技術を使用してインター予測情報に基づいてインター予測結果(例えば、予測ブロック)を算出するように構成されている。いくつかの例では、参照画像は、符号化されたビデオ情報に基づいて復号される復号された参照画像である。
【0068】
イントラエンコーダ(622)は、現在のブロック(例えば、処理ブロック)のサンプルを受信し、場合によっては、このブロックを同じ画像内で既に符号化されたブロックと比較し、変換後に量子化係数を生成し、場合によっては、イントラ予測情報(例えば、1つ以上のイントラ符号化技術によるイントラ予測方向情報)も生成するように構成されている。一例では、イントラエンコーダ(622)は、イントラ予測情報と、同一画像内の参照ブロックとに基づいて、イントラ予測結果(例えば、予測ブロック)を算出する。
【0069】
総合コントローラ(621)は、総合制御データを決定し、総合制御データに基づいてビデオエンコーダ(603)の他の構成要素を制御するように構成されている。一例では、総合コントローラ(621)は、ブロックのモードを決定し、モードに基づいてスイッチ(626)に制御信号を提供する。例えば、モードがイントラモードである場合、総合コントローラ(621)は、残差算出器(623)が使用するイントラモード結果を選択するようにスイッチ(626)を制御し、イントラ予測情報を選択してビットストリームにイントラ予測情報を含めるためにエントロピーエンコーダ(625)を制御し、そして、モードがインターモードである場合、総合コントローラ(621)は、残差算出器(623)が使用するインター予測結果を選択するようにスイッチ(626)を制御し、インター予測情報を選択してビットストリームにインター予測情報を含めるためにエントロピーエンコーダ(625)を制御する。
【0070】
残差算出器(623)は、受信されたブロックと、イントラエンコーダ(622)またはインターエンコーダ(630)から選択された予測結果との差分(残差データ)を算出するように構成されている。残差エンコーダ(624)は、変換係数を生成するために残差データを符号化するために残差データに基づいて動作するように構成されている。一例では、残差エンコーダ(624)は、残差データを空間領域から周波数領域に変換し、変換係数を生成するように構成されている。変換係数はその後、量子化された変換係数を取得するために量子化処理を適用される。様々な実施形態では、ビデオエンコーダ(603)はまた、残差デコーダ(628)を含む。残差デコーダ(628)は、逆変換を実行し、復号された残差データを生成するように構成されている。復号された残差データは、イントラエンコーダ(622)およびインターエンコーダ(630)が適切に使用することができる。例えば、インターエンコーダ(630)は、復号された残差データおよびインター予測情報に基づいて復号されたブロックを生成し、イントラエンコーダ(622)は、復号された残差データおよびイントラ予測情報に基づいて復号されたブロックを生成することができる。いくつかの例では、復号されたブロックは、復号された画像を生成するために適切に処理され、復号された画像は、メモリ回路(図示せず)にバッファされ、参照画像として使用されてもよい。
【0071】
エントロピーエンコーダ(625)は、符号化されたブロックを含めるために、ビットストリームをフォーマットするように構成されている。エントロピーエンコーダ(625)は、HEVC規格などの適切な規格に応じて様々な情報を含めるように構成されている。一例では、エントロピーエンコーダ(625)は、総合制御データ、選択された予測情報(例えば、イントラ予測情報またはインター予測情報)、残差情報、および他の適切な情報を、ビットストリームに含めるように構成されている。開示された主題によれば、インターモードまたは双予測モードのいずれかのマージサブモードでブロックを符号化する場合、残差情報は存在しないことに留意されたい。
【0072】
図7は、本開示の別の実施形態によるビデオデコーダ(710)の図を示す。ビデオデコーダ(710)は、符号化されたビデオシーケンスの一部である符号化された画像を受信し、符号化された画像を復号して再構成された画像を生成するように構成されている。一例では、ビデオデコーダ(710)は、
図3の例のビデオデコーダ(310)の代わりに使用される。
【0073】
図7の例では、ビデオデコーダ(710)は、
図7に示すように互いに接続された、エントロピーデコーダ(771)、インターデコーダ(780)、残差デコーダ(773)、再構成モジュール(774)、およびイントラデコーダ(772)を含む。
【0074】
エントロピーデコーダ(771)は、符号化された画像から、符号化された画像が構成されているシンタックス要素を表す特定のシンボルを再構成するように構成されてもよい。このようなシンボルは、例えば、ブロックが符号化されるモード(例えば、イントラモード、インターモード、双予測モード、マージサブモードのインターモードおよびマージサブモードの双予測モード、または別のサブモードなど)と、イントラデコーダ(772)またはインターデコーダ(780)がそれぞれ予測に使用する特定のサンプルまたはメタデータを識別することができる予測情報(例えば、イントラ予測情報またはインター予測情報など)と、例えば量子化された変換係数の形式の残差情報となどを含んでもよい。一例では、予測モードがインター予測モードまたは双予測モードである場合、インター予測情報はインターデコーダ(780)に提供され、そして、予測タイプがイントラ予測タイプである場合、イントラ予測情報がイントラデコーダ(772)に提供される。残差情報は逆量子化を適用されてもよく、残差情報は残差デコーダ(773)に提供される。
【0075】
インターデコーダ(780)は、インター予測情報を受信し、インター予測情報に基づいてインター予測結果を生成するように構成されている。
【0076】
イントラデコーダ(772)は、イントラ予測情報を受信し、イントラ予測情報に基づいて予測結果を生成するように構成されている。
【0077】
残差デコーダ(773)は、逆量子化を実行して逆量子化された変換係数を抽出し、逆量子化された変換係数を処理して残差を周波数領域から空間領域に変換するように構成されている。残差デコーダ(773)はまた、(量子化器パラメータ(QP)を含むように)特定の制御情報を必要としてもよく、その情報はエントロピーデコーダ(771)によって提供されてもよい(低量の制御情報のみの可能性があるので、データ経路は図示していない)。
【0078】
再構成モジュール(774)は、空間領域において、残差デコーダ(773)による出力としての残差と(場合によっての、インター予測モジュールまたはイントラ予測モジュールによる出力としての)予測結果とを組み合わせて、再構成ブロックを形成するように構成され、再構成ブロックは再構成画像の一部であってもよく、結果として再構成画像は再構成ビデオの一部であってもよい。視覚的品質を改善するために、デブロッキング動作などのような他の適切な動作を実行することができることに留意されたい。
【0079】
ビデオエンコーダ(303)、(503)、および(603)と、ビデオデコーダ(310)、(410)、および(710)とは、任意の適切な技術を使用して実装することができることに留意されたい。一実施形態では、ビデオエンコーダ(303)、(503)、および(603)と、ビデオデコーダ(310)、(410)、および(710)とは、1つ以上の集積回路を使用して実装してもよい。別の実施形態では、ビデオエンコーダ(303)、(503)、および(503)と、ビデオデコーダ(310)、(410)、および(710)とは、ソフトウェア命令を実行する1つ以上のプロセッサを使用して実装してもよい。
【0080】
II.イントラブロックコピー
ハイブリッドブロックベースのビデオ符号化の場合、異なる画像からの動き補償(画像間動き補償)がよく知られている。同様に、同じ画像内の、以前に再構成された領域から動き補償を実行することもできる。これは、画像内ブロック補償、現在画像参照(CPR)、またはイントラブロックコピー(IBC)と呼ばれる。IBCでは、現在のブロックと参照ブロックとの間のオフセットを示す変位ベクトルは、ブロックベクトル(BV)と呼ばれる。任意の値(x方向またはy方向のいずれかで正または負の)とすることができる、異なる画像からの動き補償における動きベクトルとは異なり、ブロックベクトルは、いくつかの制約を有することで、指し示された参照ブロックが利用可能であり、既に再構成されていることを確実にする。また、並列処理を考慮して、タイル境界またはウェーブフロントラダー形状の境界である一部の参照領域も、IBCに対して除外する。
【0081】
ブロックベクトルを符号化することは、明示的または暗黙的のいずれかであってもよい。明示的モード(またはインター符号化における高度動きベクトル予測(AMVP)モードと呼ばれる)では、ブロックベクトルとその予測子との間の差分についてシグナリングされる。暗黙的モードでは、ブロックベクトルは、マージモードにおいて取得された動きベクトルと同様の方法で、その予測子のみから復元される。ブロックベクトルの解像度は、いくつかの実装形態では、整数位置に制限され、他のシステムでは、小数点位置を指し示すことができてもよい。
【0082】
一実施形態では、ブロックレベルでIBCを使用すると、IBCフラグと呼ばれるブロックレベルフラグを使用してシグナリングすることができる。一例では、IBCフラグは、現在のブロックがマージモードで符号化されていない場合にシグナリングされる。別の例では、IBCを使用すると、参照インデックスの手法によってシグナリングされてもよく、現在の復号された画像は、参照画像として扱われる。例えば、HEVCスクリーンコンテンツ符号化(SCC)では、このような参照画像は、参照画像リストの最後の位置に入れられる。この特殊な参照画像も、復号画像バッファ(DPB)において、他の時間参照画像とともに管理される。
【0083】
また、IBCをイントラ予測モードまたはインター予測モードとは異なる第3のモードとして扱うなど、IBCにはいくつかの変形形態がある。これにより、IBCのためのマージモードおよびAMVPモードのブロックベクトル予測は、通常のインターモードから分離される。例えば、IBCモードに対して別のマージ候補リストが定義され、リスト内のすべてのエントリはすべてブロックベクトルである。同様に、IBCのAMVPモードにおけるブロックベクトル予測リストはブロックベクトルからなる。両方のリストに適用される一般的な規則は、候補導出処理に関して、規則がインターマージ候補リストまたはAMVP予測子リストと同じロジックに従ってもよいことである。例えば、HEVCインターマージモードまたはVVCインターマージモードにおける5つの空間的に隣接する位置(
図10に示す)は、IBCのためのマージ候補リストを導出するためにアクセスされる。
【0084】
図8は、画像内ブロック補償の一例を示す。処理中の画像(810)(現在の画像と呼ばれる)は、CTU(811~825)に分割される。CTU(811~822)は既に復号されている。現在のCTU(823)は処理中である。現在のCTU(823)内のIBC符号化された現在のブロック(801)を復号するために、ブロックベクトル(803)を最初に決定してもよい。ブロックベクトル(803)に基づいて、CTU(817)内の参照ブロック(802)(予測ブロックまたは予測子ブロックとも呼ばれる)を見つけることができる。したがって、参照ブロック(802)を現在のブロック(801)の残差と組み合わせることによって、現在のブロック(801)を再構成することができる。図示されるように、参照ブロック(802)および現在のブロック(801)は、同じ現在の画像(810)内に存在する。
【0085】
図9A~
図9Dは、再構成されたサンプルを格納するために1CTUサイズのメモリを用いた画像内ブロック補償の一例を示す。第1の例では、IBCモードの探索領域を現在のCTU内に制限することができる。したがって、IBCモードのための参照サンプルを格納するために有効なメモリ要件は、サンプルの1CTUサイズである。一例として、128×128の現在のCTUを、4個の64×64領域に分割することができる。既存の参照サンプルメモリが現在の64×64領域に再構成サンプルを格納することを考慮すると、64×64サイズの参照サンプルメモリがあと3つ必要である。この事実に基づいて、第2の例では、IBCモードの有効な探索領域を左CTUの一部に拡張することができるが、参照画素を格納するための総メモリ要件は変更されない(1CTUサイズ、合計4個の64×64参照サンプルメモリ)。
【0086】
図9A~
図9Dは、左CTUを探索するために1CTUサイズのメモリがどのように再利用されるかを示す。
図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サイズのメモリに格納することができる。
【0087】
いくつかの実施形態では、ビットストリームでシグナリングされるブロックベクトルがビットストリーム適合条件の組に従うことが必要とされる。一例として、mvLおよび1/16ペルの解像度で表される有効な輝度ブロックベクトルは、以下のビットストリーム適合条件に従うべきである。
【0088】
A1:(xCb,yCb)に等しく設定された現在の輝度位置(xCurr,yCurr)および隣接する輝度位置(xCb+(mvL[0]>>4),yCb+(mvL[1]>>4))を入力としてブロック利用可能性のための導出処理が呼び出されると、出力はTRUEに等しくなる(既に構成されているため利用可能であることを意味する)。ブロック利用可能性導出処理は、隣接ブロック利用可能性検査処理とも呼ばれる。条件A1は、その位置(xCb+(mvL[0]>>4),yCb+(mvL[1]>>4))における参照ブロックの左上角サンプルが利用可能である(既に再構成されている)ことを検証する。
【0089】
A2:現在の輝度位置(xCurr,yCurr)が(xCb,yCb)に等しく設定され、隣接する輝度位置(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)の参照ブロックの右下角サンプルが利用可能であることを検証する。
【0090】
B1:以下の条件の一方または両方が真であるものとする。(mvL[0]>>4)+cbWidthの値が0以下であることと、(mvL[1]>>4)+cbHeightの値が0以下であること。条件B1は、参照ブロックが現在のブロックと重複しないことを検証する。
【0091】
C1:以下の条件が真であるものとする。
(yCb+(mvL[1]>>4))>>CtbLog2SizeY=yCb>>CtbLog2SizeY;
(yCb+(mvL[1]>>4)+cbHeight-1)>>CtbLog2SizeY=yCb>>CtbLog2SizeY;
(xCb+(mvL[0]>>4))>>CtbLog2SizeY>=(xCb>>CtbLog2SizeY)-1;
(xCb+(mvL[0]>>4)+cbWidth-1)>>CtbLog2SizeY<=(xCb>>CtbLog2SizeY)。
条件C1は、参照ブロックが現在のCTU、または現在のCTUの左側のCTUに位置することを検証する。
【0092】
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内の領域に対応することを検証する。
【0093】
III.現在のブロックの空間マージ候補
図10は、現在のブロック(1010)の5つの空間マージ候補を示す。空間マージ候補は、現在のブロック(1010)のブロックベクトル予測のための予測子リストを構成することに使用することができる。例えば、現在のブロック(1010)は、スキップモード、マージモード、またはAMVPモードを用いて構成中である。候補リストを構成することができる。候補リスト上の候補は、空間候補位置A1、A0、B2、B0、およびB1から選択してもよい。一例では、空間候補位置の利用可能性は、A0、B0、B1、A1、およびB2の順序で検査される。利用可能であれば、候補位置における動き情報を候補として候補リストに追加することができる。候補リストに対するインデックスは、ビットストリームで受信することができる。インデックスに対応する候補は、現在のブロック1010の動きベクトルを決定するための動きベクトル予測(または予測子)として使用することができる。
【0094】
IV.履歴ベース動きベクトル予測(HMVP)
いくつかの例では、履歴ベース動きベクトル予測(HMVP)方式がブロックを符号化することに使用される。例えば、HMVPマージ候補は、空間動きベクトル予測(SMVP)および時間動きベクトル予測(TMVP)候補の後に、マージリストに追加される。この方法では、以前に符号化されたブロックの動き情報がテーブル(HMVPテーブルと呼ばれる)に格納され、現在のCUの動きベクトル予測子(MVP)として使用される。複数のHMVP候補を有するHMVPテーブルは、符号化処理中または復号処理中に維持される。いくつかの例では、新しいCTU行を検出すると、HMVPテーブルがリセットされる(空にされる)。サブブロックインター符号化されていないCUが存在するときはいつでも、いくつかの例では、関連付けられた動き情報が新しいHMVP候補としてHMVPテーブルの最後のエントリに追加される。
【0095】
一実施形態では、HMVPテーブルサイズSは6に設定され、このサイズは最大6つのHMVP候補がHMVPテーブルに追加されてもよいことを示す。新しい動き候補をHMVPテーブルに挿入する場合、制約付きの先入れ先出し(FIFO)規則が利用される。HMVPテーブルに同一のHMVPが存在するか否かを明らかにするために、冗長検査が最初に適用される。同一のHMVPが見つかった場合、同一のHMVPがテーブルから取り除かれ、その後すべてのHMVP候補が前方に移動される。
【0096】
HMVP候補は、マージ候補リスト構成処理に使用することができる。一例では、HMVPテーブル内の最新のいくつかのHMVP候補が順番に検査され、TMVP候補の後の候補リストに挿入される。冗長検査は、空間マージ候補または時間マージ候補に関して、HMVP候補に対して適用される。
【0097】
一実施形態では、冗長検査動作の数を削減するために、以下の簡略化が導入される。(1)マージリスト生成に使用されるHMVP候補の数が(N<=4)に設定されているか?M:(8-N)、ここで、Nはマージリスト内の既存の候補の数を示し、MはHMVPテーブル内の利用可能なHMVP候補の数を示す。(2)利用可能なマージ候補の総数が最大許容マージ候補から1を引いた数に達すると、一例では、HMVPからのマージ候補リスト構成処理は終了する。
【0098】
V.HBVPテーブルベースのイントラブロックコピー(IBC)
様々な実施形態では、IBCモードは、インターモード(現在の画像とは異なる画像からの動き補償)とは別のモードとして動作する。履歴ベースブロックベクトル予測(HBVP)バッファと呼ばれる別の履歴バッファは、以前に処理された(エンコーダ側で符号化/デコーダ側で復号された)IBCブロックベクトルを格納するために使用される。エンコーダ側またはデコーダ側のいずれかで、IBCモードで符号化された現在のブロックを処理する場合、現在のブロックのブロックベクトルを、HBVPバッファに基づいて決定してもよい。HBVPバッファは、HBVPテーブルまたはHBVPリストとも呼ばれてもよい。本明細書の詳細な説明では、HBVPバッファ、HBVPテーブル、およびHBVPリストは同じ意味で使用される。
【0099】
本明細書で説明する実施形態は、別々に使用されてもよく、任意の順序で組み合わされてもよい。さらに、方法(または実施形態)、エンコーダ、およびデコーダの各々は、処理回路(例えば、1つ以上のプロセッサまたは1つ以上の集積回路)によって実施されてもよい。一例では、1つ以上のプロセッサは、非一時的コンピュータ可読媒体に格納されたプログラムを実行する。詳細な説明では、ブロックという用語は、予測ブロック、符号化ブロック、または符号化ユニット(CU)として解釈することができる。
【0100】
実施形態A
既に処理されたブロックのブロックベクトルをHBVPテーブルに追加する場合、既に処理されたブロックの位置(または位置)情報をHBVPテーブルに記録することができる。言い換えれば、HBVPテーブルの各エントリには、ブロックベクトル情報に加えて、そのブロックベクトルが関連付けられている符号化されたブロック(以前に符号化されたブロックまたは以前に復号されたブロック)の位置も格納される。
【0101】
一例では、符号化されたブロックの各位置が異なるので、新しいブロックベクトルおよび関連付けられた位置情報をHBVPテーブルに追加する場合、冗長検査は実行されない。別の例では、新しいブロックベクトルおよび関連付けられた位置情報をHBVPテーブルに追加する場合、冗長検査が実行される。例えば、新しいブロックベクトルは、HBVPテーブルに以前に格納されたブロックベクトルと比較される。類似または同一の、古いブロックベクトルが見つかった場合、古いブロックベクトルを含む古いエントリを取り除いてもよく、新しいブロックベクトルおよび関連付けられた位置情報を含むエントリを最新の候補としてHBVPテーブルに追加してもよい。
【0102】
符号化されたブロックの位置は、様々な例では、符号化されたブロックの4角のうちの1つによって表すことができる。例えば、符号ブロックの角のx座標およびy座標を使用して、位置を示すことができる。一例では、符号化されたブロックの位置は、符号化されたブロックの右下角の位置によって表される。別の例では、符号化されたブロックの位置は、符号化されたブロックの左下角の位置によって表してもよい。
【0103】
一例では、符号化されたブロックの位置は、符号化されたブロックの4角のうちの1つの位置と、符号化されたブロックのサイズ(例えば、幅および高さ)情報とによって表すことができる。
【0104】
一例では、各CTU行の先頭でHBVPテーブルがリセットされる(例えば、空にされる)。このような構成により、各それぞれの符号化されたブロックのy座標に対するそれぞれのCTU上縁からの相対的なyオフセットを使用して、HBVPテーブルのエントリの位置情報をそれぞれ記録することができる。別の実施形態では、HBVPテーブルは各CTUの先頭でリセットされる。したがって、HBVP内のエントリの位置情報はそれぞれ、各それぞれの符号化されたブロックのx座標およびy座標に対するそれぞれのCTUの先頭からの相対xオフセットおよび相対yオフセットを使用して、記録されてもよい。さらなる例では、HBVPテーブル内のエントリのx座標およびy座標を記録する場合、それぞれの符号化されたブロックのそれぞれのCTU原点からのオフセットは、HBVPテーブルリセット動作とは無関係に記録される。
【0105】
実施形態B
いくつかの例では、ブロックベクトル予測(BVP)候補リストは、HBVPテーブルに基づいて構成される。BVP候補リストでBVP候補となるHBVPからエントリを選択する場合、エントリの場所(または位置)(それぞれのエントリに対応する符号化されたブロックの位置を指す)が考慮される。
【0106】
一例では、現在のブロックの位置とエントリの位置とが比較される。エントリの位置情報は、エントリの位置が現在のブロックの右下位置にある場合に調整される。調整された位置情報に基づいて、符号化されたブロックと現在のブロックとの間の位置関係を決定することができる。
【0107】
例えば、HBVPテーブル内の1つのエントリに対する現在のブロックの相対位置を算出するとき、現在のブロックのx座標およびy座標の両方がそれぞれ、エントリのx座標およびy座標よりも小さい場合(以前に符号化されたブロックが現在のブロックに対して相対的に右下の位置にあり、不可能であることを意味する)、算出を実行する際にエントリの座標に(-CTU幅,0)のオフセットが追加される。結果として、このようなエントリは現在のブロックの左に移動される(それぞれのブロックベクトルがこの時、現在のCTUで始まり現在のCTUの左まで指していることを意味する)。
【0108】
一例では、現在のブロックの左に位置するエントリをHBVPテーブルから選択し、ブロックベクトル予測子として使用(例えば、BVP候補リストに追加)してもよい。例えば、符号化されたブロックの左上角に対応するx座標を含むHBVPテーブル内のエントリを選択して使用してもよい。このx座標が現在のブロックの左上角のx座標よりも小さい場合、エントリ(または対応する符号化されたブロック)は現在のブロックの左に位置すると決定してもよい。
【0109】
同様に、ブロックベクトルは、現在のブロックの上にあるHBVPテーブルから選択してもよい。例えば、符号化されたブロックの左上角に対応するy座標を含むHBVPテーブル内のエントリを選択してもよい。このy座標が現在のブロックの左上角のy座標よりも小さい場合、エントリ(または対応する符号化されたブロック)は現在のブロックの上に位置すると決定してもよい。
【0110】
したがって、いくつかの例では、現在のブロックの左または上にある、HBVPテーブルから選択されたエントリに基づいて、BVP候補リストを構成してもよい。
【0111】
いくつかの例では、現在のブロックのブロックベクトルを予測するために、最大数の2×N個の予測子が採用される(例えば、BVP候補リストに追加される)。一例では、N=1である場合、2×N個の予測子のうちの1つは、HBVPテーブル内の左に位置するエントリ(現在のブロックの左に位置するエントリを指す)からのものであり、2×N個の予測子のうちの他のもう1つは、HBVPテーブル内の上に位置するエントリ(現在のブロックの上に位置するエントリを指す)からのものである。N=2の別の例では、HBVPテーブルに十分なエントリがあると仮定すると、BVP候補リスト内の予測子の順序は、第1の左→第1の上→第2の左→第2の上であってもよい。十分なエントリがない場合、予測子リスト(BVP候補リスト)内の対応する項目は空であってもよく、次の項目で満たされてもよい。
【0112】
HBVPテーブル内の最後に符号化されたエントリから開始されたいくつかの例では、現在のブロックの左にある第1のエントリが左予測子として選択される。現在のブロックの左にある次のエントリを、第2の左予測子として選択する。このようにして、左予測子を連続的に選択してもよい。
【0113】
HBVPテーブル内の最後に符号化されたエントリから開始されたいくつかの例では、現在のブロックの上にある第1のエントリを、第1の上予測子として選択してもよい。現在のブロックの上にある次のエントリを、第2の上予測子として選択してもよい。このようにして、上予測子を連続的に選択してもよい。
【0114】
一例では、HBVPテーブル内の最初のN個のHBVPエントリを走査することによって、2候補予測子リスト(BVP候補リスト)が構成される。最初のN個のエントリは、最後に符号化されたN個のエントリであってもよく、または異なる例では、最初に符号化されたN個のエントリであってもよい。例えば、Nは、HBVPテーブルのサイズSよりも小さくてもよい。現在のブロックの左の第1のエントリは、第1の候補として予測子リスト内に入れてもよい。現在のブロックの上の第1のエントリは、第2の候補として予測子リスト内に入れてもよい。HBVPテーブル内に上の候補のみまたは左の候補のみがある場合、最初の2つの利用可能なエントリを予測子として選択してもよい。
【0115】
実施形態C
いくつかの実施形態では、BVP候補リスト(予測子リスト)は、以下の方法で構成することができる。ブロックベクトルが現在のブロックの隣に関連付けられた位置を有する場合、HBVPテーブル内のブロックベクトルが予測子として導出される。例えば、HBVPテーブル内のエントリは、例えば、最新から最も古い順に走査することができる。エントリが現在のブロックの隣にある(エントリが現在のブロックの隣の位置を含む)場合、このエントリのブロックベクトルが予測子リストに入れられる。この処理は、予測子リスト内の候補の最大数に達するまで継続してもよい。例えば、
図10では、5つの空間的に隣接する位置は、現在のブロックの隣にあると見なされる(1010)。
図10の5つの位置に対応する位置を有する、HBVPテーブル内のエントリを考慮し、特定の順序(例えば、A0、B0、B1、A1、そしてB2)に応じて、予測子リスト内の候補として選択してもよい。
【0116】
一例では、HBVPバッファ内のブロックベクトルが現在のブロックの隣にない場合、HBVPバッファ内のブロックベクトルは、空間的隣接エントリの後の予測子リスト内の後の位置に置かれてもよい。別の例では、HBVPバッファ内のブロックベクトルが現在のブロックの隣にない場合、HBVPバッファ内のブロックベクトルは予測子リスト内で使用されなくてもよい。
【0117】
実施形態D
いくつかの例では、ブロックベクトルを予測子リストに入れる場合、新しい予測子が予測子リスト内の他の既存の予測子と異なることを確実にするために冗長検査を実行してもよい。
【0118】
実施形態E
様々な例では、予測子リストは、HBVPテーブルに基づいて構成され、現在のブロックのブロックベクトル(ブロックベクトル予測)を符号化するためのマージモード、スキップモード、またはAMVPモード(差分符号化を伴うベクトル予測)で使用されてもよい。
【0119】
実施形態F
一実施形態では、復号処理中に複数のHBVPテーブルを維持してもよい。各HBVPテーブルは、新たな符号化されたブロックベクトル(以前に復号されたブロックのブロックベクトル)を取得するための異なる基準と関連付けてもよい。このようにして、符号化されたブロックのブロックベクトルを異なるグループに分類し、対応するHBVPテーブルに格納してもよい。現在のIBC符号化されたブロックを符号化する場合、それらの別のHBVPテーブルから、1つ以上のブロックベクトルを選択し、現在のブロックのブロックベクトルを符号化するための予測子として使用してもよい。同様に、それらのHBVPテーブル内のエントリはそれぞれ、符号化されたブロックのブロックベクトル、符号ブロックの位置(x座標およびy座標)、符号化されたブロックのサイズ(幅および高さ)、または他の関連情報を含んでもよい。
【0120】
第1の例では、符号化されたブロックの新しいブロックベクトルを取得するHBVPテーブルの1つの基準は、符号化されたブロックがブロックサイズ条件を満たすことである。符号化されたブロックのブロックサイズは、様々な方法で測定することができる。例えば、ブロックサイズは、符号化されたブロックの高さに幅を乗算することによって算出された、符号化されたブロックにおける輝度サンプルの数であってもよい。一例では、ブロックサイズ条件は、ブロックサイズが閾値T_size1以上であり、別の閾値T_size2よりも小さいことである。一例では、ブロックサイズ条件は、ブロックサイズが閾値以上であることである。
【0121】
第2の例では、符号化されたブロックの新しいブロックベクトルを取得するHBVPテーブルのうちの1つの基準は、符号化されたブロックが、以下の条件を満たす左上角のx座標xcを有することである。この条件は、xc%ctuSizeYが閾値T_x0以上であり、別の閾値T_x1よりも小さいことである。シンボル「%」は剰余演算を表し、ctuSizeYはCTUのサイズを表す。
【0122】
第3の実施形態では、符号化されたブロックの新しいブロックベクトルを取得するHBVPテーブルの1つの基準は、符号化されたブロックが、以下の条件を満たす左上角のy座標ycを有することである。この条件は、yc%ctuSizeYが閾値T_y0以上であり、別の閾値T_y1よりも小さいことである。
【0123】
第4の例では、符号ブロックの新しいブロックベクトルを取得するHBVPテーブルのうちの1つの基準は、符号ブロックが、以下の条件を満たす右下角のx座標xcを有することである。この条件は、xc%ctuSizeYが閾値T_x0以上であり、別の閾値T_x1よりも小さいことである。
【0124】
第5の例では、符号化されたブロックの新しいブロックベクトルを取得するHBVPテーブルの1つの基準は、符号化されたブロックが、以下の条件を満たす右下角のy座標ycを有することである。この条件は、yc%ctuSizeYが閾値T_y0以上であり、別の閾値T_y1よりも小さいことである。
【0125】
前述の例では、新しいブロックベクトルをHBVPテーブルに入れる場合に除去処理を適用してもよい。例えば、新しいブロックベクトルと同じブロックベクトル値を有するHBVPテーブル内のエントリが見つかった場合、そのエントリは取り除かれてもよい。新しいブロックベクトルを含む新しいエントリは、最後に符号化されたブロックのブロックベクトルを含むエントリを格納する位置に入れてもよい。
【0126】
実施形態G
一実施形態では、IBC符号化されたブロックのブロックベクトル予測のために、1つ以上のHBVPテーブルが維持される。各HBVPテーブルは、新しいブロックベクトルを取得するための特定の基準に関連付けられている。合計N個のHBVPテーブルが作成され維持されると仮定する。Nは正の整数であり、1以上である。
【0127】
第1の例では、いずれのエントリも格納されていない各HBVPテーブルに対して、デフォルトのブロックベクトル予測子の組が、HBVPテーブルを埋めるために使用される。例えば、デフォルトのブロックベクトル予測子は、値が0のブロックベクトル(x座標およびy座標が0である)であってもよい。
【0128】
第2の例では、N個のHBVPテーブルのうちの1つを指し示すインデックスは、デコーダにおいてビットストリームから受信してもよい。これに応じて、現在のブロックのブロックベクトル予測のために、インデックスによって示されるHBVPテーブル内のエントリを選択してもよい。例えば、インデックスによって示される、HBVPテーブル内の最新のエントリ(最後に追加されたエントリ)を、現在のIBC符号化されたブロックのブロックベクトル予測子として選択してもよい。別の例では、インデックスによって示される、HBVPテーブル内の最初のエントリ(最初に符号化されたエントリ)が、現在のIBC符号ブロックのブロックベクトル予測子として選択される。
【0129】
実施形態H
一実施形態では、単一のHBVPテーブル、HBVP0は、デコーダにおける復号処理中に維持される。現在のIBC符号化されたブロックを復号する間、現在のブロックのブロックベクトル予測子を決定するために、HBVP0内のエントリは異なるグループに分類される。各グループは、分類HBVPテーブルと呼ばれる別のHBVPテーブルに格納される。各分類HBVPテーブルには、HBVP0からエントリを取得するための特定の基準を割り当ててもよい。したがって、分類動作は、これらの基準に基づくことができる。
【0130】
例えば、HBVP0は、Mのサイズを有してもよい。分類HBVPテーブルの数は、M以下であるNであってもよい。分類HBVPテーブルは、HBVP1~HBVPNであるように表してもよい。
【0131】
例えば、HBVP0のエントリをHBVP1~HBVPNのテーブルに分類するために、実施形態Fで説明したような新たに符号化されたブロックベクトルを分類するための基準を使用してもよい。他の例では、実施形態Fとは異なる基準を使用してもよい。新しいエントリをHBVPxテーブル(x=0,1,…,N)に入れる場合、除去処理を適用してもよい。例えば、新しいエントリのブロックベクトル値と同じブロックベクトル値を有する古いエントリがHBVPx内に存在する場合、古いエントリは取り除かれてもよく、新しいエントリは、最後に符号化されたブロックの情報を格納するための位置に入れられる。
【0132】
一例では、HBVP1~HBVPNのテーブルが生成された後、ビットストリームから受信したインデックスに応じて、HBVP1~HBVPNのテーブルのうちの1つからエントリを選択してもよい。選択されたエントリ内のブロックベクトルは、現在のブロックのブロックベクトル予測子として使用してもよい。
【0133】
第1のケースでは、インデックスは、HBVP1~HBVPNのテーブルのうちの1つを示すことができる。インデックスを受信することに応答して、インデックスによって示されるHBVPテーブルから、最新のエントリを選択してもよい。
【0134】
第2のケースでは、予測子リストは、いくつかの規則に応じてHBVP1~HBVPNのテーブルからエントリを選択することによって最初に構成してもよい(例えば、実施形態Cで説明したように)。インデックスは、予測子リスト上の候補を示してもよい。インデックスの受信に応答して、予測子リスト上の候補を現在のブロックのブロックベクトル予測子として使用してもよい。
【0135】
VI.HBVPテーブルベースのIBCモード復号処理の例
図11は、本開示のいくつかの実施形態による処理(1100)の概要を示すフローチャートを示す。処理(1100)は、再構成中のブロックに対する予測ブロックを生成するために、IBC符号化されたブロックを再構成することに使用してもよい。様々な実施形態では、処理(1100)は、端末デバイス(210)、(220)、(230)および(240)の処理回路と、ビデオデコーダ(310)の機能を実行する処理回路と、ビデオデコーダ(410)の機能を実行する処理回路となどの処理回路によって実行される。いくつかの実施形態では、処理(1100)はソフトウェア命令で実装され、したがって、処理回路がソフトウェア命令を実行すると、処理回路は処理(1100)を実行する。処理は(S1101)で開始し、(S1110)に進む。
【0136】
(S1110)で、デコーダにおいて画像を復号する処理の間、HBVPテーブルを維持してもよい。例えば、HBVPテーブルは、以前に復号されたIBC符号化されたブロックに各々対応する1つ以上のエントリを含んでもよい。各エントリは、以前に復号された対応するブロックのブロックベクトルおよび以前に復号された対応するブロックの位置を含んでもよい。この位置は、以前に符号化されたブロックの4角のうちの1つのx座標およびy座標であってもよい。一例では、各エントリは、それぞれの、以前に復号されたブロックのサイズ情報(例えば、幅および高さ)をさらに含んでもよい。
【0137】
(S1120)で、IBCモードで符号化された現在のブロックのデータをビットストリームで受信してもよい。例えば、データは、現在のブロックに対応するブロックレベルのシンタックス要素の組を含んでもよい。シンタックス要素のうちの1つは、現在のブロックがIBCモードで符号化されていることを示すことができる。
【0138】
(S1130)で、現在のブロックのブロックベクトルは、HBVPテーブルに基づいて決定してもよい。現在のブロックのブロックベクトルを決定するために、現在のブロックのブロックベクトルのブロックベクトル予測子を最初に決定してもよい。
【0139】
一例では、HBVPテーブルに基づいてBVP候補リストを構成してもよい。その後、例えば、ビットストリームで受信されたBVP候補リスト上の候補に対するインデックスに基づいて、候補がBVP候補リストから選択される。選択された候補は、ブロックベクトル予測子として使用されるブロックベクトルを含んでもよい。BVP候補リストは、第1の候補および第2の候補のうちの1つ以上を含んでもよい。第1の候補は、HBVPテーブル内のブロックベクトルのうちの第1のブロックベクトルを含んでもよい。第1のブロックベクトルの、以前に復号された対応するブロックは、現在のブロックの左の位置を有する。第2の候補は、HBVPテーブル内のブロックベクトルのうちの第2のブロックベクトルを含んでもよい。第2のブロックベクトルの、以前に復号された対応するブロックは、現在のブロックの上の位置を有してもよい。
【0140】
いくつかの例では、ブロックベクトル予測子を決定するために、HBVPテーブル内のエントリは最初に、分類HBVPテーブルにそれぞれ格納された異なるグループに分類される。各分類HBVPテーブルは、新しいエントリを取得するための基準と関連付けてもよい。例えば、HBVPテーブルのエントリのうちの1つの、以前に復号された対応するブロックのサイズがブロックサイズ条件を満たす場合、HBVPテーブルのエントリのうちの1つが、分類HBVPテーブルのうちの1つに格納される。例えば、ブロックサイズ条件は、HBVPテーブルのエントリのうちの1つの、以前に復号された対応するブロックの輝度サンプルの数が、閾値以上であることであってもよい。
【0141】
別の例では、HBVPテーブル内のエントリは、HBVPテーブルに格納された以前に復号された対応するブロックの各々のx座標、y座標、またはx座標とy座標との組み合わせに基づいて分類HBVPテーブルに分類してもよい。したがって、現在のブロックに対して異なる位置に位置する、符号化されたブロックのエントリを、異なる分類テーブルに格納してもよい。
【0142】
分類HBVPテーブルに基づいて、ブロックベクトル予測子を決定してもよい。一例では、分類HBVPテーブルのうちの1つを示すインデックスをビットストリームで受信してもよい。したがって、示された分類HBVPテーブルから1つのエントリを選択してもよい。選択されたエントリは、示された分類HBVPテーブル内のエントリの復号されたブロックのうちの、最後に復号されたブロックに対応してもよい。選択されたエントリのブロックベクトルは、現在のブロックのブロックベクトルのブロックベクトル予測子として使用してもよい。
【0143】
別の例では、分類HBVPテーブルに基づいてBVP候補リストを構成してもよい。BVP候補リストは、分類HBVPテーブルから選択されたブロックベクトルをそれぞれ含む1つ以上のBVP候補を含んでもよい。その後、BVP候補は、BVP候補リストから選択し、ビットストリームから受信したインデックスに基づいて、現在のブロックのブロックベクトルのブロックベクトル予測子にしてもよい。
【0144】
ブロックベクトル予測子が決定された後、それに応じて現在のブロックのブロックベクトルを決定してもよい。例えば、現在のブロックは、スキップモード、マージモード、またはAMVPモードのうちの1つのIBCモードを用いて符号化してもよい。スキップモードおよびマージモードに対しては、ブロックベクトル予測子を現在のブロックのブロックベクトルとして使用してもよい。AMVPモードに対しては、ベクトル差分を、ビットストリームで受信し、ブロックベクトル予測子に追加して、現在のブロックのブロックベクトルを形成してもよい。
【0145】
(S1140)で、現在のブロックは、現在のブロックの決定されたブロックベクトルに基づいて、再構成されてもよい。例えば、ブロックベクトルに基づいて、画像の既に復号された領域内で参照ブロックを決定し、参照ブロックを現在のブロックの残差と組み合わせて、再構成ブロックを形成してもよい。
【0146】
(S1150)で、HBVPテーブルを現在のブロックのブロックベクトルを用いて更新してもよい。例えば、現在のブロックのブロックベクトルと、現在のブロックの位置、幅、および高さとをHBVPテーブルに格納してもよい。冗長検査が、HBVPテーブルを更新する場合に実行されてもよい。その後、処理(1100)は(S1199)に進み、(S1199)で終了してもよい。
【0147】
VII.コンピュータシステム
前述の技術は、コンピュータ可読命令を使用し、1つ以上のコンピュータ可読媒体に物理的に格納されたコンピュータソフトウェアとして実装してもよい。例えば、
図12は、開示された主題の特定の実施形態を実装するのに適切なコンピュータシステム(1200)を示す。
【0148】
コンピュータソフトウェアは、任意の適切な機械コードまたはコンピュータ言語を使用してコード化されてもよく、これらの機械コードまたはコンピュータ言語は、アセンブリ、コンパイル、リンキングなどの機構を適用されて、1つ以上のコンピュータ中央処理装置(CPU)、グラフィック処理装置(GPU)などによって直接実行されてもよく、または解釈、マイクロコード実行などを介して実行されてもよい命令を含むコードを作成してもよい。
【0149】
命令は、様々な種類のコンピュータまたはその構成要素上で実行されてもよく、コンピュータまたはその構成要素は、例えば、パーソナルコンピュータ、タブレットコンピュータ、サーバ、スマートフォン、ゲームデバイス、モノのインターネットデバイスなどを含む。
【0150】
コンピュータシステム(1200)に対して
図12に示す構成要素は、本質的に例示的なものであり、本開示の実施形態を実装するコンピュータソフトウェアの使用の範囲または機能の範囲に関する制限を示唆することを意図するものではない。構成要素の構成についても、コンピュータシステム(1200)の例示的な実施形態に図示されている構成要素のいずれかまたは組み合わせに関する依存関係または要件を有すると解釈されるべきではない。
【0151】
コンピュータシステム(1200)は、特定のヒューマンインタフェース入力デバイスを含んでもよい。このようなヒューマンインタフェース入力デバイスは、例えば、触覚入力(例えば、キーストローク、スワイプ、データグローブの動き)、音声入力(例えば、声、拍手)、視覚入力(例えば、ジェスチャ)、嗅覚入力(図示せず)を介した、1人以上の人間のユーザによる入力に応えることができる。ヒューマンインタフェースデバイスは、音声(例えば、発話、音楽、周囲の音)、画像(例えば、走査された画像、静止画像カメラから取得された写真画像)、ビデオ(2次元ビデオ、立体視ビデオを含む3次元ビデオなど)など、必ずしも人間による意識的な入力に直接関連しない特定の媒体を取り込むために使用することもできる。
【0152】
入力ヒューマンインタフェースデバイスには、キーボード(1201)、マウス(1202)、トラックパッド(1203)、タッチスクリーン(1210)、データグローブ(図示せず)、ジョイスティック(1205)、マイクロフォン(1206)、スキャナ(1207)、カメラ(1208)のうちの1つ以上(各々のうちの1つのみ図示)が含まれてもよい。
【0153】
コンピュータシステム(1200)はまた、特定のヒューマンインタフェース出力デバイスを含んでもよい。このようなヒューマンインタフェース出力デバイスは、例えば、触覚出力、音、光、および匂い/味によって、1人以上の人間のユーザの感覚を刺激してもよい。このようなヒューマンインタフェース出力デバイスには、触覚出力デバイス(例えば、タッチスクリーン(1210)、データグローブ(図示せず)、またはジョイスティック(1205)による触覚フィードバックであるが、入力デバイスとして機能しない触覚フィードバックデバイスも存在してもよい)と、音声出力デバイス(例えば、スピーカ(1209)、ヘッドホン(図示せず))と、視覚出力デバイス(例えば、CRTスクリーン、LCDスクリーン、プラズマスクリーン、OLEDスクリーンを含むスクリーン(1210)、タッチスクリーン入力機能を有する各々、またはタッチスクリーン入力機能を有さない各々、触覚フィードバック機能を有する各々、または触覚フィードバック機能を有さない各々であり、その一部は、ステレオ投影出力、仮想現実メガネ(図示せず)、ホログラフィックディスプレイ、およびスモークタンク(図示せず)などの手段を介して、2次元視覚出力または3次元以上の出力を出力することができてもよい)と、プリンタ(図示せず)とが含まれてもよい。
【0154】
コンピュータシステム(1200)はまた、人間がアクセス可能な記憶デバイスおよびそれらに関連付けられた媒体、例えば、CD/DVDもしくは類似の媒体(1221)とともにCD/DVDのROM/RW(1220)を含む光学媒体、USBメモリ(1222)、外付けハードドライブまたは外付けソリッドステートドライブ(1223)、テープおよびフロッピー(登録商標)ディスク(図示せず)などのレガシー磁気媒体、セキュリティドングル(図示せず)などの専用ROM/ASIC/PLDベースのデバイスなどを含んでもよい。
【0155】
当業者はまた、本開示の主題に関連して使用される「コンピュータ可読媒体」という用語が、伝送媒体、搬送波、または他の一時的信号を包含しないことを理解するであろう。
【0156】
コンピュータシステム(1200)はまた、1つ以上の通信ネットワーク(1255)へのインタフェース(1254)を含んでもよい。ネットワークは、例えば、無線、有線、光通信のものであってもよい。ネットワークはさらに、ローカル、広域、メトロポリタン、車両および産業、リアルタイム、遅延耐性などのものであってもよい。ネットワークの例には、イーサネット(登録商標)、無線LANなどのローカルエリアネットワークと、GSM、3G、4G、5G、LTEなどを含む移動体通信ネットワークと、ケーブルTV、衛星TV、および地上波放送TVを含むテレビ有線通信広域デジタルネットワークまたはテレビ無線広域デジタルネットワークと、CANバスを含む車両および産業用ネットワークとなどが含まれる。特定のネットワークは、一般に、特定の汎用データポートまたは周辺機器用バス(1249)に取り付けられた外部ネットワークインタフェースアダプタを必要とし(例えば、コンピュータシステム(1200)のUSBポートなど)、他のネットワークは、一般に、以下で説明するようなシステムバスへの取り付け(例えば、PCコンピュータシステムへのイーサネット(登録商標)インタフェース、またはスマートフォンコンピュータシステムへの移動体通信ネットワークインタフェース)によってコンピュータシステム(1200)の中心部に統合される。これらのネットワークのいずれかを使用して、コンピュータシステム(1200)は、他の要素と通信してもよい。このような通信は、例えば、ローカルデジタルネットワークまたは広域デジタルネットワークを使用する他のコンピュータシステムに対して、単方向受信のみ(例えば、放送TV)、単方向送信のみ(例えば、特定のCANバスデバイスへのCANバス)、または双方向であってもよい。特定のプロトコルおよびプロトコルスタックは、前述のように、それらのネットワークおよびネットワークインタフェースの各々で使用してもよい。
【0157】
前述のヒューマンインタフェースデバイス、人間がアクセス可能な記憶デバイス、およびネットワークインタフェースは、コンピュータシステム(1200)の中心部(1240)に取り付けることができる。
【0158】
中心部(1240)は、1つ以上の中央処理装置(CPU)(1241)、1つ以上のグラフィック処理装置(GPU)(1242)、1つ以上の、フィールドプログラマブルゲートアレイ(FPGA)(1243)の形式の1つ以上の専用プログラマブル処理装置、1つ以上の、特定のタスク用のハードウェアアクセラレータ(1244)、1つ以上のグラフィックアダプタ(1250)などを含んでもよい。これらのデバイスは、読取り専用メモリ(ROM)(1245)、ランダムアクセスメモリ(RAM)(1246)、内部の、ユーザがアクセス可能ではないハードドライブ、SSDなどの内部大容量ストレージ(1247)とともに、システムバス(1248)を介して接続されてもよい。いくつかのコンピュータシステムでは、システムバス(1248)は、追加のCPU、GPUなどによる拡張を可能にするために、1つ以上の物理プラグの形式でアクセス可能であってもよい。周辺デバイスは、中心部のシステムバス(1248)に直接取り付けてもよく、または周辺機器用バス(1249)を介して取り付けてもよい。
図12では、スクリーン(1210)はグラフィックアダプタ(1250)に接続されている。周辺バスのためのアーキテクチャには、PCI、USBなどが含まれる。
【0159】
CPU(1241)、GPU(1242)、FPGA(1243)、およびアクセラレータ(1244)は、組み合わせて前述のコンピュータコードを構成してもよい特定の命令を実行してもよい。そのコンピュータコードは、ROM(1245)またはRAM(1246)に格納されてもよい。移行データはまた、RAM(1246)に格納されてもよく、一方、永続データは、例えば内部大容量ストレージ(1247)に格納されてもよい。メモリデバイスのいずれかへの高速格納および取得は、1つ以上のCPU(1241)、1つ以上のGPU(1242)、1つ以上の大容量ストレージ(1247)、1つ以上のROM(1245)、1つ以上のRAM(1246)などと密接に関連付けることができるキャッシュメモリの使用によって可能にすることができる。
【0160】
コンピュータ可読媒体は、様々なコンピュータ実装動作を実行するためのコンピュータコードを有してもよい。媒体およびコンピュータコードは、本開示の目的のために特別に設計および構成されたものであってもよく、またはコンピュータソフトウェア技術の当業者に周知で利用可能な種類のものであってもよい。
【0161】
限定ではなく、例示として、アーキテクチャを有するコンピュータシステム(1200)、特にその中心部(1240)は、1つ以上の有形のコンピュータ可読媒体において実装されたソフトウェアを実行するプロセッサ(CPU、GPU、FPGA、アクセラレータなどを含む)の結果として、機能を提供してもよい。このようなコンピュータ可読媒体は、前述のようなユーザアクセス可能な大容量ストレージに関連付けられた媒体、ならびに中心部内部大容量ストレージ(1247)またはROM(1245)などの非一時的な性質の、中心部(1240)の特定のストレージに関連付けられた媒体であってもよい。本開示の様々な実施形態を実装するソフトウェアは、このようなデバイスに格納され、中心部(1240)によって実行されてもよい。コンピュータ可読媒体は、特定のニーズに応じて、1つ以上のメモリデバイスまたは1つ以上のチップを含んでもよい。ソフトウェアは、中心部(1240)、具体的にはその中のプロセッサ(CPU、GPU、FPGA等を含む)に、RAM(1246)に格納されたデータ構造を定義すること、およびソフトウェアによって定義された処理に応じてこのようなデータ構造を修正することを含む、本明細書で説明する、特定の処理または特定の処理の特定の部分を実行させてもよい。加えて、または代替として、コンピュータシステムは、ハードワイヤードまたは他の方法で回路(例えば、アクセラレータ(1244))に実施されたロジックの結果として、機能を提供してもよく、このロジックは、ソフトウェアの代わりに、またはソフトウェアとともに動作して、本明細書で説明する、特定の処理または特定の処理の特定の部分を実行してもよい。ソフトウェアについての参照は、適切な場合には、ロジックを包含することができ、逆もまた同様である。コンピュータ可読媒体の参照は、適切な場合には、実行のためのソフトウェアを格納する回路(集積回路(IC)など)、実行のためのロジックを実施する回路、またはその両方を包含することができる。本開示は、ハードウェアとソフトウェアとの任意の適切な組み合わせを包含する。
【0162】
添付A:頭字語
AMVP:高度動きベクトル予測
ASIC:特定用途向け集積回路
BMS:ベンチマークの組
BV:ブロックベクトル
CANバス:Controller Area Networkバス
CD:コンパクトディスク
CPR:現在画像参照
CPU:中央処理装置
CRT:ブラウン管
CTB:符号化ツリーブロック
CTU:符号化ツリーユニット
CU:符号化ユニット
DPB:復号画像バッファ
DVD:デジタルビデオディスク
FIFO:先入れ先出し
FPGA:フィールドプログラマブルゲートアレイ
GOP:画像のグループ
GPU:グラフィック処理装置
GSM:グローバル移動体通信システム
HBVP:履歴ベースブロックベクトル予測
HEVC SCC:HEVCスクリーンコンテンツ符号化
HEVC:高効率ビデオ符号化
HMVP:履歴ベース動きベクトル予測
HRD:仮想参照デコーダ
IBC:イントラブロックコピー
IC:集積回路
JEM:Joint Exploration Model
LAN:ローカルエリアネットワーク
LCD:液晶ディスプレイ
LTE:ロングタームエボリューション
MV:動きベクトル
MVP:動きベクトル予測子
OLED:有機発光ダイオード
PB:予測ブロック
PCI:周辺構成要素相互接続
PLD:プログラマブルロジックデバイス
PU:予測ユニット
RAM:ランダムアクセスメモリ
ROM:読取り専用メモリ
SEI:付加拡張情報
SNR:信号雑音比
SSD:ソリッドステートドライブ
TMVP:時間動きベクトル予測
TU:変換ユニット
USB:ユニバーサルシリアルバス
VTM:VVCテストモデル
VUI:ビデオユーザビリティ情報
VVC:Versatile Video Coding
【0163】
本開示はいくつかの例示的な実施形態を説明してきたが、本開示の範囲内に含まれる変更形態、置換形態、および様々な代替形態の同等物がある。したがって、当業者は、本明細書に明示的に示されていないまたは説明されていないが、本開示の原理を実施し、したがって本開示の精神および範囲内にある多数のシステムおよび多数の方法を考案することができることが理解されよう。
【符号の説明】
【0164】
101 現在のブロック
200 通信システム
210,220,230,240 端末デバイス
250 通信ネットワーク
300 通信システム
301 ビデオソース
302 ビデオ画像のストリーム
303 ビデオエンコーダ
304 ビデオデータ(ビデオビットストリーム)
305 ストリーミングサーバ
306,308 クライアントサブシステム
307,309 ビデオデータのコピー
310 ビデオデコーダ
311 ビデオ画像
312 ディスプレイ
313 キャプチャサブシステム
320 電子デバイス
330 電子デバイス
401 チャネル
410 ビデオデコーダ
412 レンダリングデバイス
415 バッファメモリ
420 パーサ
421 シンボル
430 電子デバイス
431 受信器
451 逆変換ユニット
452 画像内予測ユニット、イントラ予測ユニット
453 動き補償予測ユニット
455 集約器
456 ループフィルタユニット
457 参照画像メモリ
458 現在画像バッファ
501 ビデオソース
503 ビデオエンコーダ
520 電子デバイス
530 ソースコーダ
532 符号化エンジン
533 ローカルデコーダ
534 参照画像メモリ
535 予測器
540 送信器
543 ビデオシーケンス
545 エントロピーコーダ
550 コントローラ
560 通信路
603 ビデオエンコーダ
621 総合コントローラ
622 イントラエンコーダ
623 残差算出器
624 残差エンコーダ
625 エントロピーエンコーダ
626 スイッチ
628 残差デコーダ
630 インターエンコーダ
710 ビデオデコーダ
771 エントロピーデコーダ
772 イントラデコーダ
773 残差デコーダ
774 再構成モジュール
780 インターデコーダ
801 現在のブロック
802 参照ブロック
803 ブロックベクトル
810 現在の画像
901,902,903 再構成領域
904 現在の領域
911,912,913 再構成領域
914 現在の領域
921,922,923 再構成領域
924 現在の領域
931,932,933 再構成領域
934 現在の領域
1010 現在のブロック
1100 処理
1200 コンピュータシステム
1201 キーボード
1202 マウス
1203 トラックパッド
1205 ジョイスティック
1206 マイクロフォン
1207 スキャナ
1208 カメラ
1209 スピーカ
1210 タッチスクリーン
1221 媒体
1222 USBメモリ
1223 外付けソリッドステートドライブ
1240 中心部
1243 フィールドプログラマブルゲートアレイ(FPGA)
1244 ハードウェアアクセラレータ
1245 読取り専用メモリ(ROM)
1246 ランダムアクセスメモリ(RAM)
1247 中心部内部大容量ストレージ
1248 システムバス
1249 周辺機器用バス
1250 グラフィックアダプタ
1254 インタフェース
1255 通信ネットワーク