(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-10-24
(45)【発行日】2022-11-01
(54)【発明の名称】映像符号化における幾何学的区分モード
(51)【国際特許分類】
H04N 19/537 20140101AFI20221025BHJP
【FI】
H04N19/537
(21)【出願番号】P 2021556565
(86)(22)【出願日】2020-11-12
(86)【国際出願番号】 US2020060281
(87)【国際公開番号】W WO2021101791
(87)【国際公開日】2021-05-27
【審査請求日】2021-09-17
(32)【優先日】2019-11-21
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2020-11-06
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】520353802
【氏名又は名称】テンセント・アメリカ・エルエルシー
(74)【代理人】
【識別番号】100110364
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100150197
【氏名又は名称】松尾 直樹
(72)【発明者】
【氏名】リェン-フェイ・チェン
(72)【発明者】
【氏名】シアン・リ
(72)【発明者】
【氏名】グイチュン・リ
(72)【発明者】
【氏名】シャン・リュウ
【審査官】久保 光宏
(56)【参考文献】
【文献】Han Gao, et al.,"CE4: CE4-1.1, CE4-1.2 and CE4-1.14: Geometric Merge Mode (GEO)",JVET-P0068,version 2,[online], Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,2019年09月25日,Pages 1-7,[令和4年9月11日検索], インターネット, <URL: https://jvet-experts.org/doc_end_user/current_document.php?id=7857> and <URL: https://jvet-experts.org/doc_end_user/documents/16_Geneva/wg11/JVET-P0068-v2.zip>.
【文献】Ru-Ling Liao, et al.,"CE4-related: Simplification of blending weights and motion field storage in geometric merge mode",JVET-P0304,version 2,[online], Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,2019年10月02日,Pages 1-7,[令和4年9月11日検索], インターネット, <URL: https://jvet-experts.org/doc_end_user/current_document.php?id=8093> and <URL: https://jvet-experts.org/doc_end_user/documents/16_Geneva/wg11/JVET-P0304-v2.zip>.
【文献】Kevin Reuze, et al.,"Simplified GEO without multiplication and minimum blending mask storage (harmonization of JVET-P0107, JVET-P0264 and JVET-P0304)",JVET-P0885,version 4,[online], Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,2019年10月11日,Pages 1-7,[令和4年9月11日検索], インターネット, <URL: https://jvet-experts.org/doc_end_user/current_document.php?id=8700> and <URL: https://jvet-experts.org/doc_end_user/documents/16_Geneva/wg11/JVET-P0885-v4.zip>.
【文献】Jianle Chen, et al.,"Algorithm description for Versatile Video Coding and Test Model 10 (VTM 10)",JVET-S2002,version 2,[online], Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,2020年10月10日,Pages 1,8,9,48,53-55,[令和4年9月12日検索], インターネット, <URL: https://jvet-experts.org/doc_end_user/current_document.php?id=10412> and <URL: https://jvet-experts.org/doc_end_user/documents/19_Teleconference/wg11/JVET-S2002-v2.zip>.
(58)【調査した分野】(Int.Cl.,DB名)
H04N19/00-19/98
CSDB(日本国特許庁)
IEEEXplore(IEEE)
(57)【特許請求の範囲】
【請求項1】
映像デコーダでの映像復号の方法であって、
幾何学的区分モードでの予測のために、区分エッジに沿って第1の部分および第2の部分に区分された現在の符号化ブロックに関連付けられた符号化された映像のビットストリームから、シンタックス要素を受信するステップと、
前記現在の符号化ブロックのサンプル位置での加重インデックスを決定するステップであって、前記加重インデックスが、前記現在の符号化ブロックの前記第1の部分および前記第2の部分に対応する2つの予測信号を混合するための混合加重を導出するために使用される、ステップと、
第1の動き格納ユニットの動きインデックスに基づいて、前記現在の符号化ブロックの動きフィールドの前記第1の動き格納ユニットに対して、格納された動きベクトルタイプを決定するステップであって、前記現在の符号化ブロックの前記サンプル位置での前記加重インデックスが、前記第1の動き格納ユニットの前記動きインデックスとして使用される、ステップと、
前記現在の符号化ブロックの前記動きフィールドの前記第1の動き格納ユニットに対して決定された前記格納された動きベクトルタイプに基づいて、前記現在の符号化ブロックの前記動きフィールドを格納するステップとを含む方法。
【請求項2】
前記加重インデックスが前記第1の動き格納ユニットの前記動きインデックスとして使用される前記現在の符号化ブロックの前記サンプル位置が、前記符号化ブロックの前記動きフィールドの前記第1の動き格納ユニット内のサンプル位置である、請求項1に記載の方法。
【請求項3】
前記加重インデックスが前記第1の動き格納ユニットの前記動きインデックスとして使用される前記現在の符号化ブロックの前記サンプル位置が、前記符号化ブロックの前記動きフィールドの前記第1の動き格納ユニットの中心位置に隣接するサンプル位置である、請求項1に記載の方法。
【請求項4】
前記第1の動き格納ユニットが4×4サンプルのサイズを有し、前記加重インデックスが前記第1の動き格納ユニットの前記動きインデックスとして使用される前記現在の符号化ブロックの前記サンプル位置が、前記符号化ブロックの前記動きフィールドの前記第1の動き格納ユニット内の座標(2,2)のサンプル位置である、請求項1に記載の方法。
【請求項5】
前記第1の動き格納ユニットが、4×4サンプルのサイズを有し、前記現在の符号化ブロックの前記動きフィールドの(x
sb,y
sb)の位置にあり、前記現在の符号化ブロックの前記サンプル位置が、前記現在の符号化ブロックの((x
sb≪2)+2,(y
sb≪2)+2)の座標を有し、((x
sb≪2)+2,(y
sb≪2)+2)の前記座標における前記加重インデックスが、前記第1の動き格納ユニットの前記動きインデックスとして使用される、請求項1に記載の方法。
【請求項6】
前記現在の符号化ブロックの前記サンプル位置での前記加重インデックスを、前記2つの予測信号を混合するための前記混合加重に変換する計算を実行するステップであって、前記変換が、ルックアップテーブルを使用せずに、前記現在の符号化ブロックの前記サンプル位置での前記加重インデックスの線形関数に基づく、ステップをさらに含む、請求項1
から5のいずれか一項に記載の方法。
【請求項7】
前記現在の符号化ブロックの前記サンプル位置での前記加重インデックスを決定する前記ステップが、
前記現在の符号化ブロックの角から前記区分エッジをシフトするために使用される値ρ
marginに基づいて前記現在の符号化ブロックの前記サンプル位置での前記加重インデックスを決定するステップであって、前記値ρ
marginが、前記現在の符号化ブロックの幅または高さ、および前記区分エッジの角度に応じて変化する、ステップを含む、請求項1
から6のいずれか一項に記載の方法。
【請求項8】
前記現在の符号化ブロックの前記サンプル位置での前記加重インデックスを決定する前記ステップが、
【数1】
に基づいて前記現在の符号化ブロックの前記サンプル位置での前記加重インデックスを決定するステップであって、ここで、wIdxが、前記加重インデックスを表し、xおよびyが、前記現在の符号化ブロックの前記サンプル位置の座標を表し、wおよびhが、前記現在の符号化ブロックの幅および高さを表し、φが、前記区分エッジの角度を表し、nが、距離量子化ステップの数を表し、iが、距離量子化ステップインデックスを表す、ステップを含む、請求項1
から6のいずれか一項に記載の方法。
【請求項9】
前記現在の符号化ブロックの前記サンプル位置での前記加重インデックスを決定する前記ステップが、
【数2】
に基づいて前記現在の符号化ブロックの前記サンプル位置での前記加重インデックスを決定するステップであって、ここで、wIdxが、前記加重インデックスを表し、xおよびyが、前記現在の符号化ブロックの前記サンプル位置の座標を表し、wおよびhが、前記現在の符号化ブロックの幅および高さを表し、φが、前記区分エッジの角度を表し、nが、距離量子化ステップの数を表し、iが、距離量子化ステップインデックスを表す、ステップを含む、請求項1
から6のいずれか一項に記載の方法。
【請求項10】
前記現在の符号化ブロックの前記サンプル位置での前記加重インデックスを決定する前記ステップが、
【数3】
に基づいて前記現在の符号化ブロックの前記サンプル位置での前記加重インデックスを決定するステップであって、ここで、wIdxが、前記加重インデックスを表し、xおよびyが、前記現在の符号化ブロックの前記サンプル位置の座標を表し、wおよびhが、前記現在の符号化ブロックの幅および高さを表し、φが、前記区分エッジの角度を表し、nが、距離量子化ステップの数を表し、iが、距離量子化ステップインデックスを表す、ステップを含む、請求項1
から6のいずれか一項に記載の方法。
【請求項11】
前記現在の符号化ブロックの前記サンプル位置での前記加重インデックスを決定する前記ステップが、
固定オフセット値を有する前記現在の符号化ブロックの前記サンプル位置の左または上の隣接するサンプルの加重インデックスに基づいて、前記現在の符号化ブロックの前記サンプル位置での前記加重インデックスを決定するステップを含む、請求項1
から6のいずれか一項に記載の方法。
【請求項12】
前記現在の符号化ブロックの前記サンプル位置での前記加重インデックスを決定する前記ステップが、
前記現在の符号化ブロックの(0,0)の座標における加重インデックスに基づいて前記現在の符号化ブロックの前記サンプル位置での前記加重インデックスを決定するステップを含む、請求項1
から6のいずれか一項に記載の方法。
【請求項13】
【数4】
に基づいて前記現在の符号化ブロックの前記動きフィールドの第2の動き格納ユニットの動きインデックスを決定するステップであって、ここで、motionIdxが、前記第2の動き格納ユニットの前記動きインデックスを表し、x
sbおよびy
sbが、前記現在の符号化ブロックの前記動きフィールドの前記第2の動き格納ユニットの座標を表し、wおよびhが、前記現在の符号化ブロックの幅および高さを表し、φが、前記区分エッジの角度を表し、nが、距離量子化ステップの数を表し、iが、距離量子化ステップインデックスを表す、ステップをさらに含む、請求項1
から12のいずれか一項に記載の方法。
【請求項14】
請求項1から13のいずれか一項に記載の方法を実行するように構成された装置。
【請求項15】
コンピュータに請求項1から13のいずれか一項に記載の方法を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本出願は、2020年11月6日に出願された、発明の名称を「GEOMETRIC PARTITIONING MODE IN VIDEO CODING」とする米国特許出願第17/091,253号の利益を主張するものであり、米国特許出願第17/091,253号は、2019年11月21日に出願された、発明の名称を「SIMPLIFICATION FOR GEO/WEDGE INTER BLOCK」とする米国仮特許出願第62/938,894号の利益を主張するものである。先行出願の開示は、参照によりその全体が本明細書に組み込まれる。
【0002】
本開示は、概して映像符号化に関する実施形態を説明する。
【背景技術】
【0003】
本明細書で提供される背景技術の説明は、本開示に関連することを概して提示することを目的としている。本発明者らの研究は、この背景技術のセクションで説明する範囲において、ならびに提出時に先行技術としてその他の場合に認められないであろう説明の態様において、本開示に対する先行技術として明示的にも暗示的にも認められない。
【0004】
映像符号化および映像復号は、動き補償を用いたインターピクチャ予測を使用して実行することができる。非圧縮デジタル映像は、一連のピクチャを含んでもよく、各ピクチャは、例えば1920×1080のルミナンスサンプル、および関連付けられたクロミナンスサンプルの空間次元を有する。一連のピクチャは、例えば毎秒60個のピクチャまたは60Hzの固定ピクチャレートまたは可変ピクチャレート(非公式にはフレームレートとしても知られる)を有してもよい。非圧縮映像は、有意の大きさのビットレートの要件を有する。例えば、サンプルあたり8ビットの1080p60 4:2:0映像(60Hzのフレームレートで1920×1080のルミナンスサンプル解像度)は、1.5ギガビット/秒に近い帯域幅を必要とする。このような映像の1時間分は、600ギガバイトを超える記憶空間を必要とする。
【0005】
映像符号化および映像復号の1つの目的は、圧縮によって入力映像信号の冗長度を削減することであり得る。圧縮は、前述の帯域幅要件または記憶空間要件を、場合によっては2桁以上削減するのに役立ち得る。可逆圧縮および非可逆圧縮の両方、ならびにそれらの組み合わせを使用してもよい。可逆圧縮とは、元の信号の正確なコピーを、圧縮された元の信号から再構築することができる技術を指す。非可逆圧縮を使用する場合、再構築された信号は元の信号と同一ではない可能性があるが、元の信号と再構築された信号との間の歪みは十分小さいので、再構築された信号を意図された用途に有用にできる。映像の場合、非可逆圧縮が広く使用されている。許容される歪みの量は用途に依存し、例えば、特定の消費者ストリーミングアプリケーションのユーザは、テレビ配信アプリケーションのユーザよりも高い歪みを許容する場合がある。達成可能な圧縮比は、より高い度合いの歪みが許容可能であれば、より高い圧縮比をもたらすことができることを反映し得る。
【0006】
映像エンコーダおよびデコーダは、例えば、動き補償、変換、量子化、およびエントロピー符号化を含む、いくつかの広範なカテゴリからの技術を利用し得る。
【0007】
映像コーデック技術は、インター予測として知られる技術を含んでもよい。各インター予測された符号化ユニット(CU)に対して、動きパラメータは、動きベクトル、参照ピクチャインデックスおよび参照ピクチャリスト使用インデックス、ならびにインター予測されたサンプル生成に使用される追加情報を含む。動きパラメータは、明示的または暗黙的な方法でシグナリングすることができる。CUがスキップモードを用いて符号化されると、CUは1つの予測ユニット(PU)に関連付けられ、有意な残差係数、符号化された動きベクトルデルタ、または参照ピクチャインデックスを有しない。マージモードが指定され、マージモードによって、現在のCUの動きパラメータが、隣接するCUから取得され、隣接するCUは、空間および時間の候補と、例えばVVCに導入された追加のスケジュールとを含む。マージモードは、スキップモードに対してだけでなく、任意のインター予測されたCUに適用することができる。マージモードの代替は、動きパラメータを明示的に送信することである。動きベクトル、各参照ピクチャリストの対応する参照ピクチャインデックス、および参照ピクチャリスト使用フラグと他の必要な情報とは、各CUに明示的にシグナリングされる。
【0008】
いくつかのインター予測符号化ツールは、拡張されたマージ予測、動きベクトル差分を用いたマージモード(MMVD)、対称動きベクトル差分(MVD)シグナリングを用いた高度動きベクトル予測モード(AMVP)、アフィン動き補償予測、サブブロックベース時間的動きベクトル予測(SbTMVP)、適応動きベクトル解像度(AMVR)、動きフィールド格納(1/16のルマサンプルMV記憶装置および8×8の動きフィールド圧縮)、加重平均を用いた双予測(BWA)、双方向オプティカルフロー(BDOF)、デコーダ側動きベクトル精密化(DMVR)、三角形区分モード(TPM)、ならびに組み合わされたインターおよびイントラ予測(CIIP)を含む。
【0009】
場合によっては、拡張されたマージ予測が使用される。マージ候補リストは、以下の5つのタイプの候補、(1)空間隣接CUからの空間MVP、(2)配列されたCUからの一時的MVP、(3)FIFOテーブルからの履歴ベースMVP、(4)ペアでの平均MVP、および(5)ゼロMVを順に含むことによって構築される。
【0010】
マージリストのサイズはスライスヘッダでシグナリングされ、マージリストの最大許容サイズは、場合によっては例えば6である。マージモードの各CUコードに対して、最良のマージ候補のインデックスは、切り捨てられた単項2値化(TU)を使用して符号化される。マージインデックスの第1のビンはコンテキストを用いて符号化され、バイパス符号化は他のビンに使用される。
【0011】
図1Aは、空間マージ候補の例示的な位置を示す。場合によっては、
図1Aに示す位置にある候補の中から最大4つのマージ候補を選択することができる。選択順は、B1、A1、B0、A0、およびB2である。位置B2における候補は、位置A0、B0、B1、またはA1における任意のCUが利用可能でない(例えば、位置A0にあるCUは、別のスライスまたは別のタイルに属する)、またはインター符号化されていない場合にのみ考慮される。位置A1の候補がマージ候補リストに追加された後、残りの候補の追加は、符号化効率が向上するように、同じ動き情報を有する候補がマージ候補リストから除外されることを確実にする冗長検査を受ける。
【0012】
図1Bは、空間マージ候補の冗長検査のために考慮される候補ペアを示す。計算の複雑さを削減するために、すべての可能な候補ペアが冗長検査で考慮されるわけではない。代わりに、
図1Bの矢印を用いてつなげられたペアのみが考慮され、冗長検査に使用された対応する候補が同じ動き情報を有さない場合にのみ、候補がマージ候補リストに追加される。
【0013】
図1Cは、時間マージ候補の動きベクトルスケーリングを示す。場合によっては、マージ候補リストに1つの時間マージ候補しか追加できない。特に、この時間マージ候補の導出では、配列された参照ピクチャに属する、同じ場所に配置されたCUに基づいてスケーリングされた動きベクトルが導出される。同じ場所に配置されたCUの導出に使用される参照ピクチャリストは、スライスヘッダで明示的にシグナリングされる。時間マージ候補のスケーリングされた動きベクトルは、
図1Cの点線で示すように取得される。スケーリングされた動きベクトルは、ピクチャ順序カウント(POC)距離tbおよびtdを使用して同じ場所に配置されたCUの動きベクトルから導出され、tbは、現在のピクチャの参照ピクチャと現在のピクチャとの間のPOC差分として定義され、tdは、同じ場所に配置されたピクチャの参照ピクチャと同じ場所に配置されたピクチャとの間のPOC差分として定義される。時間マージ候補の参照ピクチャインデックスは0に等しく設定してもよい。
【0014】
図1Dは、時間マージ候補の例示的な位置を示す。時間マージ候補は、位置C0におけるCUと位置C1におけるCUとの間で選択される。位置C0におけるCUが、利用可能でない場合、インター符号化されていない場合、またはCTUの現在の行の外側にある場合、位置C1におけるCUが使用される。位置C1におけるCUが使用されない場合、位置C0におけるCUが、時間マージ候補の導出に使用される。
【発明の概要】
【課題を解決するための手段】
【0015】
本開示の態様は、映像符号化および映像復号のための方法および装置を提供する。いくつかの例では、映像復号のための装置は処理回路を含む。回路は、幾何学的区分モードでの予測のために、区分エッジに沿って第1の部分および第2の部分に区分された現在の符号化ブロックに関連付けられた符号化された映像のビットストリームから、シンタックス要素を受信し、現在の符号化ブロックのサンプル位置での加重インデックスを決定するように構成してもよい。加重インデックスが、現在の符号化ブロックの第1の部分および第2の部分に対応する2つの予測信号を混合するための混合加重を導出するために使用される。回路は、第1の動き格納ユニットの動きインデックスに基づいて、現在の符号化ブロックの動きフィールドの第1の動き格納ユニットに対して、格納された動きベクトルタイプを決定し、現在の符号化ブロックのサンプル位置での加重インデックスが、第1の動き格納ユニットの動きインデックスとして使用され、現在の符号化ブロックの動きフィールドの第1の動き格納ユニットに対して決定された格納された動きベクトルタイプに基づいて、現在の符号化ブロックの動きフィールドを格納するようにさらに構成されてもよい。
【0016】
一実施形態では、加重インデックスが第1の動き格納ユニットの動きインデックスとして使用される現在の符号化ブロックのサンプル位置が、符号化ブロックの動きフィールドの第1の動き格納ユニット内のサンプル位置である。一実施形態では、加重インデックスが第1の動き格納ユニットの動きインデックスとして使用される現在の符号化ブロックのサンプル位置が、符号化ブロックの動きフィールドの第1の動き格納ユニットの中心位置に隣接するサンプル位置である。一実施形態では、第1の動き格納ユニットが4×4サンプルのサイズを有し、加重インデックスが第1の動き格納ユニットの動きインデックスとして使用される現在の符号化ブロックのサンプル位置が、符号化ブロックの動きフィールドの第1の動き格納ユニット内の座標(2,2)のサンプル位置である。
【0017】
一実施形態では、第1の動き格納ユニットが、4×4サンプルのサイズを有し、現在の符号化ブロックの動きフィールドの(xsb,ysb)の位置にあり、現在の符号化ブロックのサンプル位置が、現在の符号化ブロックの((xsb≪2)+2,(ysb≪2)+2)の座標を有し、((xsb≪2)+2,(ysb≪2)+2)の座標における加重インデックスが、第1の動き格納ユニットの動きインデックスとして使用される。
【0018】
一実施形態では、回路が、現在の符号化ブロックのサンプル位置での加重インデックスを、2つの予測信号を混合するための混合加重に変換する計算を実行するようにさらに構成されてもよい。変換は、ルックアップテーブルを使用せずに、現在の符号化ブロックのサンプル位置での加重インデックスの線形関数に基づいてもよい。
【0019】
一実施形態では、回路が、現在の符号化ブロックの角から区分エッジをシフトするために使用される値ρmarginに基づいて現在の符号化ブロックのサンプル位置での加重インデックスを決定するステップであって、値ρmarginが、現在の符号化ブロックの幅または高さ、および区分エッジの角度に応じて変化するようにさらに構成されてもよい。
【0020】
一実施形態では、回路が、
【0021】
【0022】
に基づいて現在の符号化ブロックのサンプル位置での加重インデックスを決定し、ここで、wIdxが、加重インデックスを表し、xおよびyが、現在の符号化ブロックのサンプル位置の座標を表し、wおよびhが、現在の符号化ブロックの幅および高さを表し、φが、区分エッジの角度を表し、nが、距離量子化ステップの数を表し、iが、距離量子化ステップインデックスを表すようにさらに構成されてもよい。
【0023】
一実施形態では、回路が、
【0024】
【0025】
に基づいて現在の符号化ブロックのサンプル位置での加重インデックスを決定し、ここで、wIdxが、加重インデックスを表し、xおよびyが、現在の符号化ブロックのサンプル位置の座標を表し、wおよびhが、現在の符号化ブロックの幅および高さを表し、φが、区分エッジの角度を表し、nが、距離量子化ステップの数を表し、iが、距離量子化ステップインデックスを表すようにさらに構成されてもよい。
【0026】
一実施形態では、回路が、
【0027】
【0028】
に基づいて現在の符号化ブロックのサンプル位置での加重インデックスを決定し、ここで、wIdxが、加重インデックスを表し、xおよびyが、現在の符号化ブロックのサンプル位置の座標を表し、wおよびhが、現在の符号化ブロックの幅および高さを表し、φが、区分エッジの角度を表し、nが、距離量子化ステップの数を表し、iが、距離量子化ステップインデックスを表すようにさらに構成されてもよい。
【0029】
一実施形態では、回路が、固定オフセット値を有する現在の符号化ブロックのサンプル位置の左または上の隣接するサンプルの加重インデックスに基づいて、現在の符号化ブロックのサンプル位置での加重インデックスを決定するようにさらに構成される。一実施形態では、回路が、現在の符号化ブロックの(0,0)の座標における加重インデックスに基づいて現在の符号化ブロックのサンプル位置での加重インデックスを決定するようにさらに構成される。
【0030】
一実施形態では、回路が、
【0031】
【0032】
に基づいて現在の符号化ブロックの動きフィールドの第2の動き格納ユニットの動きインデックスを決定し、ここで、motionIdxが、第2の動き格納ユニットの動きインデックスを表し、xsbおよびysbが、現在の符号化ブロックの動きフィールドの第2の動き格納ユニットの座標を表し、wおよびhが、現在の符号化ブロックの幅および高さを表し、φが、区分エッジの角度を表し、nが、距離量子化ステップの数を表し、iが、距離量子化ステップインデックスを表すようにさらに構成される。
【0033】
本開示の態様はまた、映像復号のためにコンピュータによって実行されるとき、コンピュータに映像復号のための任意の方法、またはその組み合わせを実行させる命令を格納する非一時的コンピュータ可読媒体を提供する。
【0034】
開示された主題のさらなる特徴、性質、および様々な利点は、以下の詳細な説明および添付の図面からより明らかになるであろう。
【図面の簡単な説明】
【0035】
【
図1A】空間マージ候補の例示的な位置を示す図である。
【
図1B】空間マージ候補の冗長検査のために考慮される例示的な候補ペアを示す図である。
【
図1C】時間マージ候補に対する動きベクトルスケーリングの一例を示す図である。
【
図1D】時間マージ候補に対する例示的な位置を示す図である。
【
図2】一実施形態による通信システムの簡略化されたブロック図の概略図である。
【
図3】一実施形態による通信システムの簡略化されたブロック図の概略図である。
【
図4】一実施形態によるデコーダの簡略化されたブロック図の概略図である。
【
図5】一実施形態によるエンコーダの簡略化されたブロック図の概略図である。
【
図6】別の実施形態によるエンコーダのブロック図である。
【
図7】別の実施形態によるデコーダのブロック図である。
【
図8A】いくつかの実施形態による例示的な三角形区分を示す図である。
【
図8B】いくつかの実施形態による例示的な三角形区分を示す図である。
【
図9】いくつかの実施形態による三角形区分モードに対する単予測動きベクトル選択を示す図である。
【
図10A】いくつかの実施形態によるルマに対する例示的な加重マップを示す図である。
【
図10B】いくつかの実施形態によるクロマに対する例示的な加重マップを示す図である。
【
図11】本開示のいくつかの実施形態による例示的な幾何学的区分モードを示す図である。
【
図12】一実施形態による例示的な処理の概要を示すフローチャートである。
【
図13】一実施形態によるコンピュータシステムの概略図である。
【発明を実施するための形態】
【0036】
I.映像エンコーダおよび映像デコーダ
図2は、本開示の一実施形態による通信システム(200)の簡略化されたブロック図を図示する。通信システム(200)は、例えばネットワーク(250)を介して互いに通信することができる複数の端末装置を含む。例えば、通信システム(200)は、ネットワーク(250)を介して相互接続された端末装置(210)および(220)の第1のペアを含む。
図2の例では、端末装置(210)および(220)の第1のペアは、データを一方向送信することを実行する。例えば、端末装置(210)は、ネットワーク(250)を介して他の端末装置(220)に送信するために映像データ(例えば、端末装置(210)によって取り込まれた映像ピクチャのストリーム)を符号化してもよい。符号化された映像データは、1つ以上の符号化された映像ビットストリームの形式で送信することができる。端末装置(220)は、ネットワーク(250)から符号化された映像データを受信し、符号化された映像データを復号して映像ピクチャを復元し、復元された映像データに応じて映像ピクチャを表示することができる。一方向データ送信は、メディアサービングアプリケーションなどにおいて一般的である場合がある。
【0037】
別の例では、通信システム(200)は、例えば映像会議中に発生する可能性がある、符号化された映像データを双方向送信することを実行する端末装置(230)および(240)の第2のペアを含む。データを双方向送信するために、一例では、端末装置(230)および(240)の各端末装置は、ネットワーク(250)を介して端末装置(230)および(240)の他方の端末装置に送信するために、映像データ(例えば、端末装置によって取り込まれた映像ピクチャのストリーム)を符号化することができる。端末装置(230)および(240)の各端末装置はまた、端末装置(230)および(240)の他方の端末装置によって送信された符号化された映像データを受信することができ、符号化された映像データを復号して映像ピクチャを復元することができ、復元された映像データに応じてアクセス可能な表示装置に映像ピクチャを表示することができる。
【0038】
図2の例では、端末装置(210)、(220)、(230)、および(240)は、サーバ、パーソナルコンピュータ、およびスマートフォンとして示されてもよいが、本開示の原理はそのように限定されなくてもよい。本開示の実施形態には、ラップトップコンピュータ、タブレットコンピュータ、メディアプレーヤおよび/または専用映像会議機器を用いた応用形態が見出される。ネットワーク(250)は、例えば有線通信(有線)ネットワークおよび/または無線通信ネットワークを含む、端末装置(210)、(220)、(230)および(240)の間で、符号化された映像データを伝達する任意の数のネットワークを表す。通信ネットワーク(250)は、回路交換チャネルおよび/またはパケット交換チャネルにおいて、データを交換してもよい。代表的なネットワークには、電気通信ネットワーク、ローカルエリアネットワーク、ワイドエリアネットワーク、および/またはインターネットが含まれる。本説明の目的のために、ネットワーク(250)のアーキテクチャおよびネットワーク(250)のトポロジは、本明細書で以下に説明しない限り、本開示の動作に対して無関係であってもよい。
【0039】
図3は、開示された主題の応用形態の一例として、ストリーミング環境における映像エンコーダの配置および映像デコーダの配置を示す。開示された主題は、例えば、映像会議と、デジタルTVと、CD、DVD、メモリスティックなどを含むデジタル媒体への圧縮映像を格納することなどを含む、他の映像対応アプリケーションにも等しく適用可能であってもよい。
【0040】
ストリーミングシステムは、例えば非圧縮の映像ピクチャのストリーム(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の関連で使用されてもよい。
【0041】
電子装置(320)および(330)が他の構成要素(不図示)を含んでもよいことに留意されたい。例えば、電子装置(320)は映像デコーダ(不図示)を含んでもよく、電子装置(330)は映像エンコーダ(不図示)も含んでもよい。
【0042】
図4は、本開示の一実施形態による映像デコーダ(410)のブロック図を示す。映像デコーダ(410)は、電子装置(430)に含まれてもよい。電子装置(430)は、受信器(431)(例えば、受信回路)を含んでもよい。映像デコーダ(410)は、
図3の例の映像デコーダ(310)の代わりに使用してもよい。
【0043】
受信器(431)は、映像デコーダ(410)によって復号される、1つ以上の符号化された映像シーケンスを受信してもよく、同じ実施形態または別の実施形態では、一度に1つの符号化された映像シーケンスを受信し、ここで、各符号化された映像シーケンスの復号は他の符号化された映像シーケンスから独立している。符号化された映像シーケンスは、符号化された映像データを格納する記憶装置へのハードウェアリンク/ソフトウェアリンクであってもよいチャネル(401)から、受信されてもよい。受信器(431)は、他のデータ、例えば、符号化されたオーディオデータおよび/または補助データストリームと共に、符号化された映像データを受信してもよく、これらのデータは、それぞれを使用する要素(不図示)に転送されてもよい。受信器(431)は、符号化された映像シーケンスを他のデータから分離してもよい。ネットワークジッタに対抗するために、バッファメモリ(415)が、受信器(431)とエントロピーデコーダ/パーサー(420)(以下、パーサー(420))との間に接続されてもよい。特定の用途では、バッファメモリ(415)は、映像デコーダ(410)の一部である。他の用途では、映像デコーダ(410)の外部にあってもよい(不図示)。さらに他の用途では、例えばネットワークジッタに対抗するために映像デコーダ(410)の外部にバッファメモリ(不図示)があってもよく、さらに、例えば再生タイミングを処理するために映像デコーダ(410)の内部に別のバッファメモリ(415)があってもよい。受信器(431)が十分な帯域幅および制御可能性を有する格納装置/転送装置から、または非同期ネットワークからデータを受信している場合、バッファメモリ(415)は必ずしも必要ではなく、または小さくてもよい。インターネットなどのベストエフォートパケットネットワークで使用するために、バッファメモリ(415)が必要とされてもよく、比較的大きくてもよく、有利には適応性のあるサイズであってもよく、映像デコーダ(410)の外部のオペレーティングシステムまたは同様の要素(不図示)に少なくとも部分的に実現されてもよい。
【0044】
映像デコーダ(410)は、符号化された映像シーケンスからシンボル(421)を再構築するために、パーサー(420)を含んでもよい。これらのシンボルのカテゴリは、映像デコーダ(410)の動作を管理するために使用される情報を含み、
図4に示したように、電子装置(430)の不可欠な一部ではないが電子装置(430)に接続することができるレンダリング装置(412)(例えば、表示画面)などのレンダリング装置を制御するための情報を含む可能性がある。レンダリング装置に対する制御情報は、付加拡張情報(SEIメッセージ)または映像ユーザビリティ情報(VUI)の、パラメータの組の断片(不図示)の形式であってもよい。パーサー(420)は、受信された符号化された映像シーケンスを解析/エントロピー復号してもよい。符号化される映像シーケンスの符号化は、映像符号化技術または映像符号化規格に従ったものであってもよく、可変長符号化、ハフマン符号化、コンテキスト依存性がある算術符号化またはコンテキスト依存性がある算術符号化などを含む様々な原理に従うものであってもよい。パーサー(420)は、グループに対応する少なくとも1つのパラメータに基づいて、符号化された映像シーケンスから、映像デコーダにおける、画素のサブグループのうちの少なくとも1つのサブグループパラメータの組を抽出してもよい。サブグループには、ピクチャのグループ(GOP)、ピクチャ、タイル、スライス、マクロブロック、符号化ユニット(CU)、ブロック、変換ユニット(TU)、予測ユニット(PU)などが含まれてもよい。パーサー(420)はまた、符号化された映像シーケンスから、変換係数、量子化部パラメータ値、動きベクトルなどのような情報を抽出してもよい。
【0045】
パーサー(420)は、シンボル(421)を作成するために、バッファメモリ(415)から受信した映像シーケンスに対してエントロピー復号動作/エントロピー解析動作を実行してもよい。
【0046】
シンボル(421)の再構築は、符号化された映像ピクチャまたはその一部(例えば、インターピクチャおよびイントラピクチャ、インターブロックおよびイントラブロック)のタイプ、およびその他の要因に依存して、複数の異なるユニットを含んでもよい。どのユニットがどのように関与するかは、パーサー(420)によって符号化された映像シーケンスから解析されたサブグループ制御情報によって、制御することができる。パーサー(420)と以下の複数のユニットとの間のこのようなサブグループ制御情報のフローは、分かりやすくするために図示していない。
【0047】
既に述べた機能ブロックを超えて、映像デコーダ(410)は、以下に説明するように概念的にいくつかの機能ユニットに細分化することができる。商業的制約の下で動作する実際の実装では、これらのユニットの多くは互いに密接に相互作用し、少なくとも部分的に互いに統合することができる。しかしながら、開示された主題を説明する目的で、以下の機能ユニットに概念的に細分化することが適切である。
【0048】
第1のユニットはスケーラ/逆変換ユニット(451)である。スケーラ/逆変換ユニット(451)は、量子化された変換係数、ならびに制御情報などを、パーサー(420)からをシンボル(421)として受信し、この制御情報は、どの変換を使用するか、ブロックサイズ、量子化係数、量子化スケーリングマトリクスなどを含む。スケーラ/逆変換ユニット(451)は、集約器(455)に入力されてもよいサンプル値を含むブロックを出力してもよい。
【0049】
場合によっては、スケーラ/逆変換ユニット(451)の出力サンプルは、イントラ符号化されたブロックに関連してもよく、すなわち、このイントラ符号化されたブロックは、前に再構築されたピクチャからの予測情報を使用していないが、現在のピクチャの、前に再構築された部分からの予測情報を使用することができるブロックである。このような予測情報は、イントラピクチャ予測ユニット(452)によって提供することができる。場合によっては、イントラピクチャ予測ユニット(452)は、現在のピクチャバッファ(458)から取り出された、周囲の既に再構築された情報を使用して、再構築中のブロックと同じサイズおよび同じ形状のブロックを生成する。現在のピクチャバッファ(458)は、例えば、部分的に再構築された現在のピクチャおよび/または完全に再構築された現在のピクチャをバッファリングする。集約器(455)は、場合によっては、イントラ予測ユニット(452)が生成した予測情報を、スケーラ/逆変換ユニット(451)によって提供される出力サンプル情報に、サンプル単位で追加する。
【0050】
他の場合では、スケーラ/逆変換ユニット(451)の出力サンプルは、インター符号化されて動き補償された可能性があるブロックに関連してもよい。このような場合では、動き補償予測ユニット(453)は、予測に使用されるサンプルを取り出すために参照ピクチャメモリ(457)にアクセスしてもよい。ブロックに関連するシンボル(421)に応じて取り出されたサンプルを動き補償した後、これらのサンプルは、出力サンプル情報を生成するために、集約器(455)によって、スケーラ/逆変換ユニット(451)の出力(この場合、残差サンプルまたは残差信号と呼ばれる)に追加されてもよい。動き補償予測ユニット(453)が予測サンプルを取り出す、参照ピクチャメモリ(457)内のアドレスは、例えばX、Y、および参照ピクチャ構成要素を有してもよいシンボル(421)の形式の、動き補償予測ユニット(453)が利用可能な動きベクトルによって制御してもよい。動き補償はまた、サブサンプルの正確な動きベクトルが使用されている場合に参照ピクチャメモリ(457)から取り出される、サンプル値の補間と、動きベクトル予測機構となどを含んでもよい。
【0051】
集約器(455)の出力サンプルは、ループフィルタユニット(456)における様々なループフィルタ処理技術を適用されてもよい。映像圧縮技術は、ループ内フィルタ技術を含んでもよく、このループ内フィルタ技術は、符号化された映像シーケンス(符号化された映像ビットストリームとも呼ばれる)に含まれるパラメータによって制御され、パーサー(420)からのシンボル(421)としてループフィルタユニット(456)に利用可能にされるが、符号化されたピクチャまたは符号化された映像シーケンスの、(復号順での)前の部分を復号する間に取得されたメタ情報に応えてもよく、ならびに前に再構築されてループフィルタリングされたサンプル値に応えてもよい。
【0052】
ループフィルタユニット(456)の出力は、レンダリング装置(412)に出力してもよいサンプルストリームであって、将来のインターピクチャ予測に使用するために参照ピクチャメモリ(457)に格納されてもよい、サンプルストリームとしてもよい。
【0053】
完全に再構築されると、特定の符号化されたピクチャは、将来の予測のための参照ピクチャとして使用することができる。例えば、現在のピクチャに対応する符号化されたピクチャが完全に再構築され、符号化されたピクチャが参照ピクチャとして(例えば、パーサー(420)によって)識別されると、現在のピクチャバッファ(458)は参照ピクチャメモリ(457)の一部になってもよく、新しい現在のピクチャバッファは、後続の符号化されたピクチャの再構築を開始する前に再配置されてもよい。
【0054】
映像デコーダ(410)は、ITU-T勧告H.265などの規格における所定の映像圧縮技術に応じて、復号動作を実行してもよい。符号化された映像シーケンスは、シンタックスに準拠してもよく、このシンタックスは、映像圧縮技術または映像圧縮規格によって指定され、この映像圧縮技術または映像圧縮規格は、符号化された映像シーケンスが、映像圧縮技術または映像圧縮規格のシンタックスと、映像圧縮技術または映像圧縮規格に文書化されたプロファイルとの両方に準拠するという意味で使用される。具体的には、プロファイルは、映像圧縮技術または映像圧縮規格で利用可能なすべてのツールから、そのプロファイルの下で使用可能な唯一のツールとして特定のツールを選択してもよい。また、コンプライアンスのために必要である場合があるのは、符号化された映像シーケンスの複雑さが、映像圧縮技術または映像圧縮規格のレベルによって定義される範囲内にあることである。場合によっては、レベルによって、最大ピクチャサイズ、最大フレームレート、最大再構築サンプルレート(例えば、毎秒メガサンプルで測定される)、最大参照ピクチャサイズなどが制限される。レベルによって設定される制限は、場合によっては、符号化された映像シーケンスにおいてシグナリングされたHRDバッファ管理のためのメタデータおよび仮想参照デコーダ(HRD)仕様によってさらに制限されてもよい。
【0055】
一実施形態では、受信器(431)は、符号化された映像を有する追加の(冗長な)データを受信してもよい。追加のデータは、符号化された映像シーケンスの一部として含まれてもよい。追加のデータは、データを適切に復号するため、および/または元の映像データをより正確に再構築するために、映像デコーダ(410)によって使用されてもよい。追加のデータは、例えば、時間強化層、空間強化層、または信号雑音比(SNR)強化層と、冗長スライスと、冗長ピクチャと、転送エラー訂正コードとなどの形式であってもよい。
【0056】
図5は、本開示の一実施形態による映像エンコーダ(503)のブロック図を示す。映像エンコーダ(503)は、電子装置(520)に含まれる。電子装置(520)は、送信器(540)(例えば、送信回路)を含む。映像エンコーダ(503)は、
図3の例の映像エンコーダ(303)の代わりに使用してもよい。
【0057】
映像エンコーダ(503)は、映像エンコーダ(503)によって符号化される予定の映像画像を取り込んでもよい映像ソース(501)(
図5の例では電子装置(520)の一部ではない)から、映像サンプルを受信してもよい。別の例では、映像ソース(501)は電子装置(520)の一部である。
【0058】
映像ソース(501)は、映像エンコーダ(503)によって符号化される予定のソース映像シーケンスを、デジタル映像サンプルストリームの形式で提供してもよく、このデジタル映像サンプルストリームは、任意の適切なビット深度(例えば、8ビット、10ビット、12ビット、...)、任意の色空間(例えば、BT.601 Y CrCB、RGB、...)、および任意の適切なサンプリング構造(例えば、Y CrCb4:2:0、Y CrCb4:4:4)であってもよい。メディアサービングシステムでは、映像ソース(501)は、前準備された映像を格納する記憶装置であってもよい。映像会議システムでは、映像ソース(501)は、映像シーケンスとしてローカル画像情報を取り込むカメラであってもよい。映像データは、連続して見た場合に動きを与える複数の個々のピクチャとして提供されてもよい。ピクチャ自体は、画素の空間アレイとして編成してもよく、各画素は、使用中のサンプリング構造、色空間などに応じて1つ以上のサンプルを含んでもよい。当業者であれば、画素とサンプルとの関係を容易に理解することができる。以下の説明では、サンプルに重点を置いている。
【0059】
一実施形態によれば、映像エンコーダ(503)は、リアルタイムで、または応用形態によって要求される任意の他の時間制約下で、ソース映像シーケンスのピクチャを符号化して、符号化された映像シーケンス(543)に圧縮してもよい。適切な符号化速度を強制することは、制御器(550)の1つの機能である。いくつかの実施形態では、制御器(550)は、以下に説明するように他の機能ユニットを制御し、他の機能ユニットに機能的に接続されている。この接続は、分かりやすくするために図示していない。制御器(550)によって設定されるパラメータは、レート制御関連パラメータ(ピクチャスキップ、量子化部、レート歪み最適化技術のラムダ値、...)、ピクチャサイズ、ピクチャのグループ(GOP)レイアウト、最大動きベクトル探索領域などを含んでもよい。制御器(550)は、特定のシステム設計に最適化された映像エンコーダ(503)に関連する、他の適切な機能を有するように構成されてもよい。
【0060】
いくつかの実施形態では、映像エンコーダ(503)は、符号化ループで動作するように構成されている。過度に簡略化された説明として、一例では、符号化ループは、ソース符号化器(530)と(例えば、符号化される予定の入力ピクチャ、および参照ピクチャに基づいて、シンボルストリームなどのシンボルを生成する機能を担当する)、映像エンコーダ(503)に組み込まれた(ローカル)デコーダ(533)とを含んでもよい。デコーダ(533)は、(リモート)デコーダも作成するのと同様の方法でサンプルデータを作成するために、シンボルを再構築する(開示された主題で考慮される映像圧縮技術では、シンボルと符号化された映像ビットストリームとの間のいずれの圧縮も可逆的であるため)。再構築されたサンプルストリーム(サンプルデータ)は、参照ピクチャメモリ(534)に入力される。シンボルストリームの復号は、デコーダの位置(ローカルまたはリモート)とは無関係にビット単位で正確な結果をもたらすので、参照ピクチャメモリ(534)内の内容もローカルエンコーダとリモートエンコーダとの間においてもビット単位で正確である。言い換えれば、参照ピクチャとして、エンコーダの予測部が「見る」のは、復号中に予測を使用する場合にデコーダが「見る」のと全く同じサンプル値である。この参照ピクチャ同期性の基本原理(例えばチャネルエラーがあることにより同期性を維持することができない場合、結果として生じるドリフト)は、いくつかの関連技術においても使用される。
【0061】
「ローカル」デコーダ(533)の動作は、
図4に関連して詳細に既に前述した映像デコーダ(410)などの「リモート」デコーダの動作と同じであってもよい。しかしながら、
図4も簡単に参照すると、シンボルが利用可能であり、エントロピー符号化器(545)およびパーサー(420)によって符号化された映像シーケンスにシンボルを符号化/復号することは可逆であってもよいので、バッファメモリ(415)を含む映像デコーダ(410)のエントロピー復号部、およびパーサー(420)は、ローカルデコーダ(533)に完全には実現されない場合がある。
【0062】
ここまでの説明で考えることができる観察の結果は、デコーダ内に存在する解析/エントロピー復号を除く任意のデコーダ技術もまた、対応するエンコーダ内に実質的に同一の機能形式で存在する必要があるということである。このため、開示された主題では、デコーダ動作に重点を置いている。エンコーダ技術の説明は、エンコーダ技術が、包括的に説明したデコーダ技術の逆のものであるので省略することができる。特定の領域においてのみ、より詳細な説明が必要とされ、以下に提供される。
【0063】
動作の間に、いくつかの例では、ソース符号化器(530)は、動き補償された予測符号化を実行してもよく、この動き補償された予測符号化は、「参照ピクチャ」として指定された映像シーケンスからの1つ以上の前に符号化されたピクチャを参照して、入力ピクチャを予測的に符号化する。このようにして、符号化エンジン(532)は、入力ピクチャの画素ブロックと、入力ピクチャに対する予測参照として選択されてもよい参照ピクチャの画素ブロックとの間の差分を符号化する。
【0064】
ローカル映像デコーダ(533)は、ソース符号化器(530)によって作成されたシンボルに基づいて、参照ピクチャとして指定されてもよいピクチャの符号化された映像データを復号してもよい。符号化エンジン(532)の動作は、有利には非可逆処理であってもよい。符号化された映像データが映像デコーダ(
図5には不図示)で復号されてもよい場合、再構築された映像シーケンスは、通常、いくつかのエラーを有するソース映像シーケンスのレプリカであってもよい。ローカル映像デコーダ(533)は、復号処理を複製し、この復号処理は、映像デコーダによって参照ピクチャに対して実行されてもよく、再構築された参照ピクチャを参照ピクチャキャッシュ(534)に格納させてもよい。このようにして、映像エンコーダ(503)は、再構築された参照ピクチャのコピーをローカルに格納してもよく、この参照ピクチャのコピーは、遠端の映像デコーダによって取得される再構築された参照ピクチャとして、共通の内容を有する(送信エラーなしの場合)。
【0065】
予測器(535)は、符号化エンジン(532)の予測探索を実行してもよい。すなわち、符号化される予定の新しいピクチャに対して、予測器(535)は、参照ピクチャメモリ(534)を探索してもよく、この探索は、(候補参照画素ブロックとしての)サンプルデータ、または、新しいピクチャに対しての適切な予測参照として機能してもよい、参照ピクチャの動きベクトル、ブロック形状などの特定のメタデータを求めて行われる。予測器(535)は、適切な予測参照を見つけるために、サンプルブロック×画素ブロックの単位ごとに動作してもよい。場合によっては、予測器(535)によって取得された探索結果によって決定されるように、入力ピクチャは、参照ピクチャメモリ(534)に格納された複数の参照ピクチャから描画された予測参照を有してもよい。
【0066】
制御器(550)は、ソース符号化器(530)の符号化動作を管理してもよく、この符号化動作は、例えば、映像データを符号化するために使用されるパラメータおよびサブグループパラメータを設定することを含む。
【0067】
すべての前述の機能ユニットの出力は、エントロピー符号化器(545)においてエントロピー符号化を適用されてもよい。エントロピー符号化器(545)は、ハフマン符号化、可変長符号化、算術符号化などの技術に応じてシンボルを可逆圧縮することによって、様々な機能ユニットによって生成されたシンボルを符号化された映像シーケンスに変換する。
【0068】
送信器(540)は、エントロピー符号化器(545)によって作成された符号化された映像シーケンスをバッファリングして、通信路(560)を介した送信の準備をしてもよく、この通信路(560)は、符号化された映像データを格納する記憶装置へのハードウェアリンク/ソフトウェアリンクであってもよい。送信器(540)は、映像エンコーダ(503)からの符号化された映像データを、送信される他のデータ、例えば、符号化されたオーディオデータおよび/または補助データストリーム(ソースは不図示)とマージしてもよい。
【0069】
制御器(550)は、映像エンコーダ(503)の動作を管理してもよい。符号化中に、制御器(550)は、各符号化されたピクチャに特定の符号化されたピクチャタイプを割り当ててもよく、これにより、それぞれのピクチャに適用されてもよい符号化技術に影響を及ぼしてもよい。例えば、ピクチャは、以下のピクチャタイプのうちの1つとして割り当てられることが多い。
【0070】
イントラピクチャ(Iピクチャ)は、シーケンス内の他のピクチャを予測のソースとせずに符号化して復号可能なピクチャであってもよい。いくつかの映像コーデックは、例えば、独立復号リフレッシュ(「IDR」)ピクチャを含む異なるタイプのイントラピクチャを可能にする。当業者であれば、Iピクチャのこれらの変形形態と、変形形態それぞれの応用形態および特徴とを認識する。
【0071】
予測ピクチャ(Pピクチャ)は、イントラ予測またはインター予測を使用して、符号化されて復号されてもよいピクチャであってもよく、これらのイントラ予測またはインター予測は、各ブロックのサンプル値を予測するために、最大で1つの動きベクトルおよび1つの参照インデックスを使用する。
【0072】
双方向予測ピクチャ(Bピクチャ)は、イントラ予測またはインター予測を使用して、符号化されて復号されてもよいピクチャであってもよく、これらのイントラ予測またはインター予測は、各ブロックのサンプル値を予測するために、最大で2つの動きベクトルおよび2つの参照インデックスを使用する。同様に、複数予測ピクチャは、単一のブロックの再構築のために3つ以上の参照ピクチャおよび関連付けられたメタデータを使用することができる。
【0073】
ソースピクチャは、一般に、複数のサンプルブロック(例えば、それぞれ4×4、8×8、4×8、または16×16のサンプルのブロック)に空間的に細分化され、ブロックごとに符号化されてもよい。ブロックは、ブロックのそれぞれのピクチャに適用される符号化割当によって決定された他の(既に符号化された)ブロックを参照して予測的に符号化されてもよい。例えば、Iピクチャのブロックは、非予測的に符号化されてもよく、または同じピクチャの既に符号化されたブロックを参照して予測的に符号化されてもよい(空間予測またはイントラ予測)。Pピクチャの画素ブロックは、前に符号化された1つの参照ピクチャを参照して、空間予測、または時間予測を介して、予測的に符号化されてもよい。Bピクチャのブロックは、1つまたは2つの前に符号化された参照ピクチャを参照して、空間予測、または時間予測を介して、予測的に符号化されてもよい。
【0074】
映像エンコーダ(503)は、ITU-T勧告H.265などの所定の映像符号化技術または映像符号化規格に応じて符号化動作を実行してもよい。その動作では、映像エンコーダ(503)は、入力映像シーケンス内の時間冗長度および空間冗長度を利用する予測符号化動作を含む、様々な圧縮動作を実行してもよい。したがって、符号化された映像データは、使用されている映像符号化技術または映像符号化規格によって指定されたシンタックスに準拠してもよい。
【0075】
一実施形態では、送信器(540)は、符号化された映像と共に追加のデータを送信してもよい。ソース符号化器(530)は、符号化された映像シーケンスの一部としてこのようなデータを含んでもよい。追加のデータは、時間強化層/空間強化層/SNR強化層と、冗長ピクチャおよび冗長スライスなどの他の形式の冗長データと、SEIメッセージと、VUIパラメータの組の断片となどを含んでもよい。
【0076】
映像は、複数のソースピクチャ(映像ピクチャ)として時系列に取り込まれてもよい。イントラピクチャ予測(しばしばイントラ予測と略される)は、所与のピクチャにおける空間相関を利用し、インターピクチャ予測は、インターピクチャの(時間的または他の)相関を利用する。一例では、現在のピクチャと呼ばれる、符号化中/復号中の特定のピクチャが、ブロックに区分される。現在のピクチャのブロックが、映像内における前に符号化されてまだバッファされている参照ピクチャの参照ブロックに類似している場合、現在のピクチャのブロックは、動きベクトルと呼ばれるベクトルによって符号化することができる。動きベクトルは、参照ピクチャの参照ブロックを指し示し、複数の参照ピクチャが使用されている場合、参照ピクチャを識別する第3の次元を有してもよい。
【0077】
いくつかの実施形態では、インターピクチャ予測で双予測技術を使用してもよい。双予測技術によれば、第1の参照ピクチャおよび第2の参照ピクチャなどの2つの参照ピクチャが使用され、これらの参照ピクチャは両方とも、復号順において映像内の現在のピクチャより前にある(しかし、表示順では、それぞれ過去および未来にあってもよい)。現在のピクチャのブロックは、第1の参照ピクチャの第1の参照ブロックを指し示す第1の動きベクトル、および第2の参照ピクチャの第2の参照ブロックを指し示す第2の動きベクトルによって符号化することができる。ブロックは、第1の参照ブロックと第2の参照ブロックとの組み合わせによって予測することができる。
【0078】
さらに、符号化効率を改善するために、インターピクチャ予測でマージモード技術を使用することができる。
【0079】
本開示のいくつかの実施形態によれば、インターピクチャ予測およびイントラピクチャ予測などの予測は、ブロック単位で実行される。例えば、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画素などのような画素の値のマトリクス(例えば、ルマ値)を含む。
【0080】
図6は、本開示の別の実施形態による映像エンコーダ(603)の図を示す。映像エンコーダ(603)は、映像ピクチャのシーケンスにおける現在の映像ピクチャのサンプル値の処理ブロック(例えば、予測ブロック)を受信し、処理ブロックを、符号化された映像シーケンスの一部である符号化されたピクチャに符号化するように構成されている。一例では、映像エンコーダ(603)は、
図3の例の映像エンコーダ(303)の代わりに使用される。
【0081】
HEVCの例では、映像エンコーダ(603)は、8×8サンプルの予測ブロックなどのような処理ブロックに対するサンプル値のマトリクスを受信する。映像エンコーダ(603)は、処理ブロックが、例えばレート歪み最適化を使用する、イントラモード、インターモード、または双予測モードを使用して最適に符号化されるか否かを決定する。処理ブロックがイントラモードで符号化される予定の場合、映像エンコーダ(603)は、処理ブロックを符号化されたピクチャへ符号化するために、イントラ予測技術を使用してもよい。そして、処理ブロックがインターモードまたは双予測モードで符号化される予定の場合、映像エンコーダ(603)は、処理ブロックを符号化されたピクチャに符号化するために、それぞれインター予測技術または双予測技術を使用してもよい。特定の映像符号化技術では、マージモードは、インターピクチャ予測サブモードであってもよく、このモードでは、予測子の外側の符号化された動きベクトル成分の手助けなしに、動きベクトルが1つ以上の動きベクトル予測子から導出される。特定の他の映像符号化技術では、対象ブロックに適用可能な動きベクトル成分が存在してもよい。一例では、映像エンコーダ(603)は、処理ブロックのモードを決定するためのモード決定モジュール(不図示)などの他の構成要素を含む。
【0082】
図6の例では、映像エンコーダ(603)は、
図6に示すように互いに接続された、インターエンコーダ(630)、イントラエンコーダ(622)、残差計算器(623)、スイッチ(626)、残差エンコーダ(624)、全体制御器(621)、およびエントロピーエンコーダ(625)を含む。
【0083】
インターエンコーダ(630)は、現在のブロック(例えば、処理ブロック)のサンプルを受信し、このブロックを参照ピクチャの1つ以上の参照ブロック(例えば、前のピクチャおよび後のピクチャのブロック)と比較し、インター予測情報(例えば、インター符号化技術、動きベクトル、マージモード情報による冗長情報の説明)を生成し、任意の適切な技術を使用してインター予測情報に基づいてインター予測結果(例えば、予測ブロック)を計算するように構成されている。いくつかの例では、参照ピクチャは、符号化された映像情報に基づいて復号される復号された参照ピクチャである。
【0084】
イントラエンコーダ(622)は、現在のブロック(例えば、処理ブロック)のサンプルを受信し、場合によっては、このブロックを同じピクチャで既に符号化されたブロックと比較し、変換後に量子化係数を生成し、場合によっては、イントラ予測情報(例えば、1つ以上のイントラ符号化技術によるイントラ予測方向情報)も生成するように構成されている。一例では、イントラエンコーダ(622)は、イントラ予測情報と、同一ピクチャの参照ブロックとに基づいて、イントラ予測結果(例えば、予測ブロック)を計算する。
【0085】
全体制御器(621)は、全体制御データを決定し、全体制御データに基づいて映像エンコーダ(603)の他の構成要素を制御するように構成されている。一例では、全体制御器(621)は、ブロックのモードを決定し、モードに基づいてスイッチ(626)に制御信号を提供する。例えば、モードがイントラモードである場合、全体制御器(621)は、残差計算器(623)が使用するイントラモード結果を選択するようにスイッチ(626)を制御し、イントラ予測情報を選択してビットストリームにイントラ予測情報を含めるためにエントロピーエンコーダ(625)を制御し、そして、モードがインターモードである場合、全体制御器(621)は、残差計算器(623)が使用するインター予測結果を選択するようにスイッチ(626)を制御し、インター予測情報を選択してビットストリームにインター予測情報を含めるためにエントロピーエンコーダ(625)を制御する。
【0086】
残差計算器(623)は、受信されたブロックと、イントラエンコーダ(622)またはインターエンコーダ(630)から選択された予測結果との差分(残差データ)を計算するように構成されている。残差エンコーダ(624)は、変換係数を生成するために残差データを符号化するために残差データに基づいて動作するように構成されている。一例では、残差エンコーダ(624)は、残差データを空間領域から周波数領域に変換し、変換係数を生成するように構成されている。変換係数はその後、量子化された変換係数を取得するために量子化処理を適用される。様々な実施形態では、映像エンコーダ(603)はまた、残差デコーダ(628)を含む。残差デコーダ(628)は、逆変換を実行し、復号された残差データを生成するように構成されている。復号された残差データは、イントラエンコーダ(622)およびインターエンコーダ(630)が適切に使用することができる。例えば、インターエンコーダ(630)は、復号された残差データおよびインター予測情報に基づいて復号されたブロックを生成し、イントラエンコーダ(622)は、復号された残差データおよびイントラ予測情報に基づいて復号されたブロックを生成することができる。いくつかの例では、復号されたブロックは、復号されたピクチャを生成するために適切に処理され、復号されたピクチャは、メモリ回路(不図示)にバッファされ、参照ピクチャとして使用されてもよい。
【0087】
エントロピーエンコーダ(625)は、符号化されたブロックを含めるために、ビットストリームをフォーマットするように構成されている。エントロピーエンコーダ(625)は、HEVC規格などの適切な規格に応じて様々な情報を含めるように構成されている。一例では、エントロピーエンコーダ(625)は、全体制御データ、選択された予測情報(例えば、イントラ予測情報またはインター予測情報)、残差情報、および他の適切な情報を、ビットストリームに含めるように構成されている。開示された主題によれば、インターモードまたは双予測モードのいずれかのマージサブモードでブロックを符号化する場合、残差情報は存在しないことに留意されたい。
【0088】
図7は、本開示の別の実施形態による映像デコーダ(710)の図を示す。映像デコーダ(710)は、符号化された映像シーケンスの一部である符号化されたピクチャを受信し、符号化されたピクチャを復号して再構築されたピクチャを生成するように構成されている。一例では、映像デコーダ(710)は、
図3の例の映像デコーダ(310)の代わりに使用される。
【0089】
図7の例では、映像デコーダ(710)は、
図7に示すように互いに接続された、エントロピーデコーダ(771)、インターデコーダ(780)、残差デコーダ(773)、再構築モジュール(774)、およびイントラデコーダ(772)を含む。
【0090】
エントロピーデコーダ(771)は、符号化されたピクチャから、符号化されたピクチャが構成されているシンタックス要素を表す特定のシンボルを再構築するように構成されてもよい。このようなシンボルは、例えば、ブロックが符号化されるモード(例えば、イントラモード、インターモード、双予測モード、マージサブモードのインターモードおよびマージサブモードの双予測モード、または別のサブモードなど)と、イントラデコーダ(772)またはインターデコーダ(780)がそれぞれ予測に使用する特定のサンプルまたはメタデータを識別することができる予測情報(例えば、イントラ予測情報またはインター予測情報など)と、例えば量子化された変換係数の形式の残差情報となどを含んでもよい。一例では、予測モードがインター予測モードまたは双予測モードである場合、インター予測情報はインターデコーダ(780)に提供され、そして、予測タイプがイントラ予測タイプである場合、イントラ予測情報がイントラデコーダ(772)に提供される。残差情報は逆量子化を適用されてもよく、残差情報は残差デコーダ(773)に提供される。
【0091】
インターデコーダ(780)は、インター予測情報を受信し、インター予測情報に基づいてインター予測結果を生成するように構成されている。
【0092】
イントラデコーダ(772)は、イントラ予測情報を受信し、イントラ予測情報に基づいて予測結果を生成するように構成されている。
【0093】
残差デコーダ(773)は、逆量子化を実行して逆量子化された変換係数を抽出し、逆量子化された変換係数を処理して残差を周波数領域から空間領域に変換するように構成されている。残差デコーダ(773)はまた、(量子化部パラメータ(QP)を含むように)特定の制御情報を必要としてもよく、その情報はエントロピーデコーダ(771)によって提供されてもよい(低量の制御情報のみの可能性があるので、データ経路は不図示)。
【0094】
再構築モジュール(774)は、空間領域において、残差デコーダ(773)による出力としての残差と(場合によっての、インター予測モジュールまたはイントラ予測モジュールによる出力としての)予測結果とを組み合わせて、再構築されたブロックを形成するように構成され、再構築されたブロックは再構築されたピクチャの一部であってもよく、結果として再構築されたピクチャは再構築された映像の一部であってもよい。視覚的品質を改善するために、デブロッキング動作などのような他の適切な動作を実行することができることに留意されたい。
【0095】
映像エンコーダ(303)、(503)、および(603)と、映像デコーダ(310)、(410)、および(710)とは、任意の適切な技術を使用して実現することができることに留意されたい。一実施形態では、映像エンコーダ(303)、(503)、および(603)と、映像デコーダ(310)、(410)、および(710)とは、1つ以上の集積回路を使用して実現してもよい。別の実施形態では、映像エンコーダ(303)、(503)、および(603)と、映像デコーダ(310)、(410)、および(710)とは、ソフトウェア命令を実行する1つ以上のプロセッサを使用して実現してもよい。
【0096】
II.インター予測のための三角区分モード(TPM)
場合によっては、インター予測のために、TPMをサポートすることができる。TPMは、8×8以上のCUにのみ適用できる。TPMは、通常マージモード、MMVDモード、CIIPモード、およびサブブロックマージモードなどの他のマージモードと共に、1つの種類のマージモードとしてCUレベルフラグを使用して、シグナリングすることができる。
【0097】
TPMが使用されると、CUは、例えば
図8Aおよび
図8Bに示すように、対角分割または反対角分割のいずれかを使用して、2つの三角形の形状の区分に均等に分割することができる。CUにおける各三角形区分は、各三角形区分自体の動きパラメータを使用してインター予測することができる。各区分に対して単予測のみが許容され得る。すなわち、各区分は、1つの動きベクトルおよび1つの参照インデックスを有する。単予測動き制約を適用して、三角形区分が従来の双予測と同じであることを確実にする。すなわち、各CUに対して、2つの動き補償された予測しか必要でない。各区分に対する単予測動きは、
図1A~
図1Dに記載された処理を使用して導出してもよい。
【0098】
TPMが現在のCUに使用されると、TPMの方向(対角または反対角)および2つのマージインデックス(区分ごとに1つ)を示すフラグをさらにシグナリングすることができる。最大TPM候補サイズは、スライスレベルで明示的にシグナリングされ、TMPマージインデックスのシンタックス2値化を指定することができる。三角形区分の各々を予測した後、対角エッジまたは反対角エッジに沿ったサンプル値を、適応加重値を用いた混合処理を使用して調整することができる。CU全体に対する予測信号を導出した後、他の予測モードにおいてと同様に、変換処理および量子化処理をCU全体にさらに適用することができる。最後に、TPMを使用して予測されたCUの動きフィールドを格納してもよい。
【0099】
場合によっては、TPMは、サブブロック変換(SBT)と組み合わせて使用することができない。すなわち、シグナリングされた三角形モードが1に等しい場合、cu_sbt_flagはシグナリングなしで0であると推測される。
【0100】
II.1 単予測候補リスト構築
単予測候補リストは、拡張されたマージ予測処理に従って構築されたマージ候補リストから直接、導出してもよい。三角形単予測候補リストにおける単予測動きのインデックスをNと表す。N番目の拡張されたマージ候補のLX動きベクトルは、XがNのパリティに等しく、TPMに対するN番目の単予測動きベクトルとして使用される。これらの動きベクトルは、
図9では「X」でマークされている。N個の拡張されたマージ候補の対応するLX動きベクトルが存在しない場合、同じ候補のL(1-X)個の動きベクトルが、TPMに対する単予測動きベクトルとして代わりに使用される。
【0101】
II.2 三角形区分エッジに沿った混合
各三角形区分自体の動きパラメータを使用して各三角形区分を予測した後、混合処理を2つの予測信号に適用して、対角エッジまたは反対角エッジの周りのサンプルを導出してもよい。
図10Aおよび
図10Bに示すように、以下の加重値、ルマに対しては{7/8,6/8,5/8,4/8,3/8,2/8,1/8}、およびクロマに対しては{6/8,4/8,2/8}が混合処理で使用される。
【0102】
場合によっては、TPMにおいて符号化されたCUの動きベクトルを、以下の処理を使用して生成することができる。Mv1およびMv2が異なる参照ピクチャリストからのものである(例えば、一方はL0から、および他方はL1からである)場合、Mv1およびMv2を単に組み合わせて、双予測動きベクトルを形成する。そうではない場合で、Mv1およびMv2が同じリストからのものである場合、単予測動きMv2のみが格納される。
【0103】
III.幾何学的マージモード(GEO)
幾何学的マージモード(GEO)に関連する技術は、(i)~(iii)で説明され、(i)~(iii)は、(i)Han Gao、Semih Esenlik、Elena Alshina、Anand Meher Kotra、Biao Wang、Max Blaser、Johannes Sauer著、「CE4:CE4-1.1、CE4-1.2 and CE4-1.14:Geometric Merge Mode(GEO)」、JVET-P0068、Joint Video Experts Team(JVET)of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11、16th Meeting:Geneva、CH、2019年10月1-11日、(ii)Han Gao、Semih Esenlik、Elena Alshina、Anand Meher Kotra、Biao Wang、Max Blaser、Johannes Sauer著、「Simplified GEO without multiplication and minimum blending mask storage」、JVET-P0884、Joint Video Experts Team(JVET)of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,16th Meeting:Geneva,CH,2019年10月1-11日、(iii)Kevin Reuze1、Chun-Chi Chen2、Han Huang3、Wei-Jung Chien、Vadim Seregin、Marta Karczewicz、Ru-Ling Liao4、Jie Chen5、Yan Ye、Jiancong Luo、Max Blaser、Johannes Sauer著、ITU-T SG 16 WP 3およびISO/IEC JTC 1/SC 29/WG 11、16th Meeting:Geneva、CH、2019年10月1-11日、である。JVET-P0068、JVET-P0884、およびJVET-P0085の文献は、参照により本明細書に組み込まれる。
【0104】
幾何学的区分モード(GPM)とも呼ばれる幾何学的マージモード(GEO)は、複数の異なる区分方式をサポートすることができる。区分方式は、角度およびエッジによって定義することができる。例えば、140個の異なる区分方式は、CUの中心に対して相対的な、(11.25°等しく離れて、0~360°の間で量子化される)32個の角度および5個のエッジによって区別され得る。
【0105】
図11は、例示的なGEOを示す。
図11では、角度φ
iは、0度~360度の間の量子化角度を表し、距離オフセットρ
iは、最大距離ρ
maxの量子化されたオフセットを表す。ρ
maxの値は、8に等しく、log2スケーリングされた短いエッジの長さを用いてスケーリングされたwまたはhのいずれかに対して、式5によって幾何学的に導出してもよい。変数hおよびwは、現在のブロックの高さおよび幅を表す。φが0°に等しいとき、ρ
maxはw/2に等しい。φが90°に等しいとき、ρ
maxはh/2に等しい。式1では、ρ
margin=1.0は、分割境界が現在のブロックの角に近づきすぎることを防止するためのものである。
【0106】
【0107】
GEOにおける各区分モード(すなわち、角度インデックスとエッジインデックスとのペア)には、2つの区分された部分におけるサンプルを混合するための画素適応加重テーブルを割り当てることができる。サンプルの加重値は、例えば0~8の範囲であってもよく、画素の中心位置からエッジまでのL2距離によって決定されてもよい。加重値が割り当てられるとき、ユニット増加制約に従ってもよい。例えば、小さい加重値がGEO区分に割り当てられるとき、大きい相補的な加重値が他方の区分に割り当てられ、この加重値は合計8までである。
【0108】
IV.GEOのための加重されたサンプル予測処理
IV.1 混合加重計算
GEOでは、最終サンプル予測子PBは、式6に従って、2つの3ビット混合マスク(すなわち、加重値または加重係数)W0およびW1と2つの予測子P0およびP1とを用いて導出してもよい。
PB=(W0P0+W1P1+4)≫3 (式6)
【0109】
混合マスクW0およびW1は、それらの加重インデックスに基づいて、ルックアップテーブルから導出してもよい。式7に示すように、サンプル位置(x,y)と分割境界との間の距離に基づいて、混合加重インデックス(いくつかのコンテキストでは混合加重とも呼ばれる)を導出してもよい。
【0110】
【0111】
式10では、nは総距離量子化ステップを表し、iは角度φを有するGEOの距離ステップインデックスを表し、i<nである。
【0112】
最後に、サンプルの混合マスクW0およびW1(または加重値)は、式11に示すように、GeoFilterとして表す表3を使用して設定してもよい。
【0113】
【0114】
例示的な加重サンプル予測処理を以下に説明する。加重サンプル予測処理への入力は、現在の符号化ブロックの幅および高さを指定する2つの変数nCbWおよびnCbH、2つの(nCbW)x(nCbH)アレイpredSamplesLAおよびpredSamplesLB、幾何学的区分の角度インデックスを指定する変数angleIdx、幾何学的区分の距離idxを指定する変数distanceIdx、および色成分インデックスを指定する変数cIdxを含む。加重サンプル予測処理の出力は、予測サンプル値の(nCbW)x(nCbH)アレイpbSamples、および(nCbW≫2)x(nCbH≫2)アレイmotionIdxを含む。
【0115】
変数bitDepthは、以下のように導出してもよい。cIdx=0の場合、bitDepth=BitDepthYであり、cIdx=0でない場合、bitDepth=BitDepthCである。
【0116】
変数shift1=Max(5,17-bitDepth)およびoffset1=1≪(shift1-1)である。
【0117】
x=0..nCbW-1、およびy=0..nCbH-1を有する、ルマに対する加重アレイsampleWeightL[x][y]、およびクロマに対する加重アレイsampleWeightC[x][y]は、以下のように導出してもよい。
【0118】
変数wIdx=log2(nCbW)、およびhIdx=log2(nCbH)。
【0119】
変数whRatio=(wIdx≧hIdx)?wIdx-hIdx:hIdx-wIdx,scaleIdx=(wIdx≧hIdx)?hIdx-3:wIdx-3。
【0120】
変数displacementX=angleIdx、およびdisplacementY=(displacementX+8)%32。
【0121】
変数angleN=(wIdx≧hIdx)?(angleIdx≫3&1)?angleIdx%8:8-angleIdx%8:(angleIdx≫3&1)?8-angleIdx%8:angleIdx%8。
【0122】
変数rhoは、表1および表2で指定されたstepDisおよびDisとして表すルックアップテーブルを使用して、以下の値に設定してもよい。
rho=distanceIdx*(stepDis[whRatio][angleN]≪scaleIdx)+(Dis[displacementX]≪wIdx)+(Dis[displacementY]≪hIdx)
【0123】
変数weightIdxおよびweightIdxAbsは、x=0..nCbW-1およびy=0...nCbH-1を有するルックアップテーブル2を使用して計算できる。
weightIdx=((x≪1)+1)*Dis[displacementX]+((y≪1)+1))*Dis[displacementY]-rho、およびweightIdxAbs=Clip3(0,26,(abs(weightIdx)+4)≫3)
【0124】
x=0およびy=nCbH-1である場合、変数partIdxは、weightIdx>0に設定してもよい。
【0125】
x=0..nCbW-1およびy=0..nCbH-1を有するsampleWeightL[x][y]の値は、GeoFilterとして表す表3に従って設定してもよい。sampleWeightL[x][y]=weightIdx≦0?GeoFilter[weightIdxAbs]:8-GeoFilter[weightIdxAbs]。
【0126】
x=0..nCbW-1およびy=0..nCbH-1を有する値sampleWeightC[x][y]は、次のように設定してもよい。sampleWeightC[x][y]=sampleWeightL[(x≪(SubWidthC-1))][(y≪(SubHeightC-1))]]。
【0127】
【0128】
【0129】
【0130】
IV.2 最小混合加重マスク格納
事前計算された混合マスクの格納要件を削減するために、最小混合マスク格納方法は、混合加重格納のための84~91%のメモリ要件削減を達成することができる。
【0131】
g_sampleWeightL[]は、加重を混合するための事前定義されたマスクを表すものとする。Nが各組の事前定義されたマスクの数を表し、NがNA≫1に設定されると仮定すると、NAはGEOでサポートされる角度の数である。M×Mは、混合加重のための事前定義されたマスクのサイズを表し、Mは、128+((ND-1)×(128≫S))≪1に設定され、NDは、GEOにおいてサポートされるステップの数であり、Sは、ND-1に設定される。5ステップ設定の32個の角度に対して、Nは16に設定され、Mは192に設定される。4ステップ設定の24個の角度に対して、Nは12に設定され、Mは224に設定される。
【0132】
幾何学的区分インデックスKを有するサイズW×Hのブロックに対して、ルマサンプルに対する混合加重は以下のように導出される。変数である、角度φおよび距離ρは、幾何学的区分インデックスKを使用してルックアップテーブルから取得される。変数offsetXおよびoffsetYは、以下のように計算することができる。
【0133】
【0134】
GEOのための最小混合加重マスク格納を用いた例示的な加重サンプル予測処理を以下に説明する。加重サンプル予測処理への入力は、現在の符号化ブロックの幅および高さを指定する2つの変数nCbWおよびnCbH、2つの(nCbW)x(nCbH)アレイpredSamplesLAおよびpredSamplesLB、幾何学的区分の角度インデックスを指定する変数angleIdx、幾何学的区分の距離idxを指定する変数distanceIdx、および色成分インデックスを指定する変数cIdxを含む。この処理の出力は、予測サンプル値の(nCbW)x(nCbH)アレイpbSamples、および変数partIdxを含む。
【0135】
変数bitDepthは、以下のように導出してもよい。cIdx=0の場合、bitDepth=BitDepthYであり、cIdx=0でない場合、bitDepth=BitDepthCである。
【0136】
変数shift1=Max(5,17-bitDepth)、およびoffset1=1≪(shift1-1)である。
【0137】
x=0..nCbW-1、およびy=0..nCbH-1を有する、ルマに対する加重アレイsampleWeightL[x][y]、およびクロマに対する加重アレイsampleWeightC[x][y]は、以下のように導出してもよい。
【0138】
変数hwRatio=nCbH/nCbW。
【0139】
変数displacementX=angleIdx、およびdisplacementY=(displacementX+8)%32。
【0140】
変数partIdx=(angleIdx≧13&&angleIdx≦27)?1:0。
【0141】
変数rhoは、ルックアップテーブル2を使用して、以下の値に設定してもよい。
rho=(Dis[displacementX]≪8)+(Dis[displacementY]≪8)
【0142】
以下の条件のうちの1つが真である場合、変数shiftHor=0である。(1)angleIdx%16=8であること、および(2)angleIdx%16!=0およびhwRatio≧1であること。これらの条件が真でない場合、shiftHor=1である。
【0143】
shiftHor=0の場合、offsetX=(256-nCbW)≫1、
offsetY=(256-nCbH)≫1+angleIdx<16?(distanceIdx*nCbH)≫3:-((distanceIdx*nCbH)≫3)。
【0144】
そうではない場合で、shiftHor=1の場合、
offsetX=(256-nCbW)≫1+angleIdx<16?(distanceIdx*nCbW)≫3:-((distanceIdx*nCbW)≫3)、offsetY=(256-nCbH)≫1。
【0145】
変数weightIdxおよびweightIdxAbsは、以下のように、x=0..nCbW-1およびy=0..nCbH-1を有するルックアップテーブル2を使用して計算することができる。
weightIdx=(((x+offsetX)≪1)+1)*Dis[displacementX]+(((y+offsetY)≪1)+1))*Dis[displacementY]-rho、weightIdxAbs=Clip3(0,26,abs(weightIdx))
【0146】
x=0..nCbW-1およびy=0..nCbH-1を有するsampleWeightL[x][y]の値は、GeoFilterとして表す表3に従って設定してもよい。
sampleWeightL[x][y]=weightIdx≦0?GeoFilter[weightIdxAbs]:8-GeoFilter[weightIdxAbs]
【0147】
x=0..nCbW-1およびy=0..nCbH-1を有する値sampleWeightC[x][y]は、次のように設定してもよい。sampleWeightC[x][y]=sampleWeightL[(x≪(SubWidthC-1))][(y≪(SubHeightC-1))]]
【0148】
V.GEOのための動きベクトル格納処理
V.1 TPMのような動きベクトル導出
場合によっては、4×4の動き格納ユニットの4つの角のルミナンスサンプル加重を合計してもよい。合計を2つの閾値と比較して、2つの単予測動き情報、および双予測動き情報のうちの1つが格納されているか否かを決定してもよい。双予測動き情報は、TPMと同じ処理を使用して導出してもよい。
【0149】
GEOのための例示的な動きベクトル格納処理を以下に説明する。
【0150】
xSbIdx=0..(nCbW≫2)-1、およびySbIdx=0..(nCbH≫2)-1を有するアレイmotionIdx[xSbIdx][ySbIdx]は、以下のように導出してもよい。
【0151】
変数threshScaler=(wIdx+hIdx)≫1)-1,threshLower=32≫threshScaler,threshUpper=32-threshLower,Cnt=sampleWeightL[(xSbIdx≪2)][(ySbIdx≪2)]+sampleWeightL[(xSbIdx≪2)+3][(ySbIdx≪2)]+sampleWeightL[(xSbIdx≪2)][(ySbIdx≪2)+3]+sampleWeightL[(xSbIdx≪2)+3][(ySbIdx≪2)+3],Cnt=partIdx?32-Cnt:Cnt,motionIdx[xSbIdx][ySbIdx]=Cnt≦threshLower?0:Cnt≧threshUpper?1:2。
【0152】
merge_geo_flag[xCb][yCb]=1の場合、sType=motionIdx[xSbIdx][ySbIdx]であり、xSbIdx=0..numSbX-1、ySbIdx=0..numSbY-1である。
【0153】
V.2 簡略化された動きベクトル格納処理
場合によっては、動きベクトル格納処理はさらに単純化される。4×4動き格納ユニットの中心位置と分割境界との間の距離を計算し、固定閾値と比較して、4×4動き格納ユニットに対して単予測動き情報、または双予測動き情報が格納されるか否かを決定してもよい。距離の符号は、どの単予測動き情報を単予測格納ケースに格納するかを示す。混合マスクと動き格納の依存性を取り除くことができる。
【0154】
merge_geo_flag[xCb][yCb]=1である場合、wIdx=log2(cbWidth),hIdx=log2(cbHeight),whRatio=(wIdx≧hIdx)?wIdx-hIdx:hIdx-wIdx,scaleIdx=(wIdx≧hIdx)?hIdx-3:wIdx-3,displacementX=angleIdx,displacementY=(displacementX+8)%32,angleN=(wIdx≧hIdx)?(angleIdx≫3&1)?angleIdx%8:8-angleIdx%8:(angleIdx≫3&1)?8-angleIdx%8:angleIdx%8。
【0155】
変数rhoは、表1および表2で指定されたstepDisおよびDisとして表すルックアップテーブルを使用して以下の値に設定される。
rho=distanceIdx*(stepDis[whRatio][angleN]≪scaleIdx)+(Dis[displacementX]≪wIdx)+(Dis[displacementY]≪hIdx)
【0156】
変数motionOffsetは、表1および表2で指定されたDisとして表すルックアップテーブルを使用して以下の値に設定される。
motionOffset=3*Dis[displacementX]+3*Dis[displacementY]
【0157】
変数motionIdxは、ルックアップテーブル2を使用して以下のように計算される。motionIdx=((xSbIdx≪3)+1)*Dis[displacementX]+((xSbIdx≪3)+1))*Dis[displacementY]-rho+motionOffset。
【0158】
変数sTypeは以下のように導出される。partIdx=1の場合、sType=abs(motionIdx)<256?2:motionIdx≦0?1:0。partIdx=1でない場合、sType=abs(motionIdx)<256?2:motionIdx≦0?0:1。
【0159】
V.3 最小動きベクトル格納処理
動きフィールド格納のためのマスクを格納するのに必要なメモリを削減するために、処理において、動きフィールド格納のマスクに対して、事前定義されたマスクからのすべての情報を導出してもよい。この処理は、MergeWedgeFlag[xCb][yCb]=1で符号化ユニットを復号するときに呼び出される。この処理への入力は、現在のピクチャの左上ルマサンプルに対する現在の符号化ブロックの左上サンプルを指定するルマ位置(xCb,yCb)と、ルマサンプルの現在の符号化ブロックの幅を指定する変数cbWidthと、ルマサンプルの現在の符号化ブロックの高さを指定する変数cbHeightと、1/16分数サンプル精度mvAおよびmvBのルマ動きベクトルと、参照インデックスrefIdxAおよびrefIdxBと、予測リストフラグpredListFlagAおよびpredListFlagBとを含む。
【0160】
水平方向および垂直方向における現在の符号化ブロックの4×4ブロックの数を指定する変数numSbXおよびnumSbYは、numSbX=cbWidth≫2およびnumSbY=cbHeight≫2に等しく設定される。
【0161】
変数displacementX=angleIdx、displacementY=(displacementX+8)%32、hwRatio=nCbH/nCbW。
【0162】
以下の条件のうちの1つが真である場合、変数shiftHor=0である。(1)angleIdx%16=8であること、および(2)angleIdx%16!=0およびhwRatio≧1であること。これらの条件が真でない場合、shiftHor=1である。
【0163】
変数partIdx=(angleIdx≧13&&angleIdx≦27)?1:0。
【0164】
shiftHor=0の場合、offsetX=(64-numSbX)≫1、offsetY=(64-numSbY)≫1+angleIdx<16?(distanceIdx*nCbH)≫5:-((distanceIdx*nCbH)≫5)。shiftHor=0ではない場合で、shiftHor=1の場合、offsetX=(64-numSbX)≫1+angleIdx<16?(distanceIdx*nCbW)≫5:-((distanceIdx*nCbW)≫5)、offsetY=(64-numSbY)≫1。
【0165】
変数rhoの値は、以下の式に従って導出され、表2に指定されたDisルックアップテーブルに従って導出される。rho=(Dis[displacementX]≪8)+(Dis[displacementY]≪8)。
【0166】
変数motionOffsetは、表1および表2で指定されたDisとして表すルックアップテーブルを使用して、以下の値に等しく設定される。
motionOffset=3*Dis[displacementX]+3*Dis[displacementY]
【0167】
xSbIdx=0..numSbX-1、およびySbIdx=0..numSbY-1を有するサブブロックインデックス(xSbIdx,ySbIdx)における各4×4サブブロックに対して、以下のようにルックアップテーブル2を使用して変数motionIdxが計算される。
motionIdx=(((xSbIdx+offsetX)≪3)+1)*Dis[displacementX]+(((xSbIdx+offsetY≪3)+1))*Dis[displacementY]-rho+motionOffset
【0168】
VI.混合処理および動きフィールド格納
セクションIII、IV、およびVで説明しているようなGEOでは、加重サンプル予測処理および動きフィールド格納決定は計算コストが高い。いくつかの例では(例えば、第IV.1セクションおよび第V.1セクションで説明しているように)、混合加重および格納された動きベクトルタイプが動作中に計算される場合、サイズがW×Hのサンプルのブロックの乗算、シフト、および加算の数は、以下の通りとすることができる。
乗算:3+2×W×H+0×(W×H/16)
シフト:6+3×W×H+8×(W×H/16)
加算:10+6×W×H+7×(W×H/16)
例えば、8×8ブロックに対しては、サンプルごとに2.04回の乗算、3.09回のシフトおよび6.16回の加算が必要である。さらに、いくつかの例では、3つのルックアップテーブルが動作中の計算に使用される。式4のρは浮動小数点演算を伴う複雑な関数であり、ルックアップテーブルを使用して実現される。他の2つのルックアップテーブルは、混合加重インデックスを混合加重値に変換するための、cos[.]値ルックアップテーブルおよび変換テーブルを含む。したがって、各GEO符号化されたブロックに対する混合加重マスクおよび動きベクトルタイプマスクを動作中に計算することは計算上要求が厳しい。
【0169】
計算の複雑さを削減するために、いくつかの例では、混合加重マスクおよび動きベクトル格納タイプマスクを計算し、事前にメモリに格納してもよい。しかしながら、膨大なメモリ格納サイズは設計上の課題である。GEOの140モード変形例を例にとると、その情報を格納するのに必要なメモリは、以下のように計算することができる。
-混合加重に対して:(8×8+8×16+8×32+8×64+16×8+16×16+16×32+16×64+32×8+32×16+32×32+32×64+64×8+64×16+64×32+64×64+64×128+128×64+128×128)×140×4=26,414,080ビット=3,301,760バイト≒3.3メガバイト
-動きフィールド格納に対して:(2×2+2×4+2×8+2×16+4×2+4×4+4×8+4×16+8×2+8×4+8×8+8×16+16×2+16×4+16×8+16×16+16×32+32×16+32×32)×140×2=825,440ビット=103,180バイト≒103キロバイト
【0170】
前述の計算に基づいて、GEOの3つの変形例のメモリ格納要件を表4に列挙する。
【0171】
【0172】
多数の区分モードに起因して、実際の実装では、ブロックサイズおよび区分モードごとに対して、動きフィールド格納のためのすべての適応加重および動きベクトルタイプマスクを格納することは困難である可能性がある。動きフィールド格納のための適応加重および動きベクトルタイプマスクを格納するために必要とされるメモリを削減するために、一方が混合加重導出用であり、他方が動きフィールド格納のマスク用である2つの組の事前定義されたマスクを、セクションIV.2およびV.3で説明した技術を使用して使用してもよい。混合加重に対して必要なメモリおよび動きフィールド格納のためのマスクを削減することができる。しかし、実際の実装では、必要なメモリの量は依然として多い。NがNA≫1に設定され、NAがGEOにおいてサポートされる角度の数であり、Mが128+((ND-1)×(128≫S))≪1に設定され、NDがGEOモードにおいてサポートされるステップの数であり、SがND-1に設定されると仮定する。事前定義されたマスクを格納するために必要なビット数は、以下のように列挙される。
-混合加重に対して:(M×M)×N×4
-動きフィールド格納に対して:(M×M)/16×N×2
【0173】
GEOの3つの変形例についてのメモリ格納要件を以下の表5に列挙する。
【0174】
【0175】
GEOにおける加重混合処理および動きフィールド格納処理をさらに単純化するための実施形態を以下に説明する。これらの実施形態における技術は、三角関数値の小さいルックアップテーブル(例えば、コサイン値)を用いて、動作中の加重係数を計算すること、および動きベクトル格納タイプを決定することを可能にする。
【0176】
前述のように、幾何学的マージモードの混合加重マスクは、以下に再現される式7および式9を有するルックアップテーブルを使用して、サンプル位置および分割境界の距離から導出してもよい。
【0177】
【0178】
式3では、φは区分エッジに対応する角度値を表し、ρは現在の符号化ブロックの中心と分割境界との間の距離である。式5では、nは距離量子化ステップの総数を表し、iは角度φを有するGEO区分に対する距離ステップインデックスを表す。式5のシフトされた後方ρmargin値は、分割境界が現在の符号化ブロックの角に近くなりすぎることを回避するためのものである。一例として、8×8ブロックのρmarginの典型的な値は、いくつかの例では1.0であってもよい。
【0179】
ブロックおよび角度依存のρmargin
一実施形態では、式5の値ρmarginは、分割境界(区分エッジ)が符号化ブロックの角に近くなりすぎることを回避するために使用され、一定ではない。例えば、値ρmarginは、ブロック幅、および/または高さ、および/またはφ(分割境界の角度)に応じて変化してもよい。
【0180】
値ρmarginは、GEO区分角度φならびに現在の符号化ブロックの幅および高さの関数であると定義してもよい。例えば、ρmarginは、以下の式から導出してもよい。
【0181】
【0182】
式17および式18によると、距離オフセットρは、以下に示すように単純化することができる。
【0183】
【0184】
したがって、距離オフセットρの計算は、コサイン値ルックアップテーブル演算に加えて、シフト演算、乗算演算、および加算演算によって達成することができる。計算は、一定のρmargin値を使用する場合と比較して単純化されている。
【0185】
単一のルックアップテーブルを用いて、動作中に加重インデックス計算を混合する
一実施形態では、混合加重インデックス計算中にコサイン計算のためのルックアップテーブルのみが使用される。その結果、混合加重マスクを格納するために大きなテーブルをチェックすることなく、すべての加重インデックス計算を動作中に実施してもよい。
【0186】
前述の式18に基づいて、式3に示したように、サンプル位置から分割境界までの距離から導出されたGEOの混合マスクは、以下のようにさらに簡略化してもよい。
【0187】
【0188】
距離ステップ数nが2の累乗の値であると、式21の除算演算を、右シフトの前のオフセットの丸めを用いて、または用いずに、式22に示すように右シフト演算を使用して実現することができる。
【0189】
【0190】
式22によると、各サンプルに対する混合加重インデックスは、乗数、加数、および1つのcos[.]ルックアップテーブルを使用することによって得ることができる。また、式20は、ただ1つのcos[.]テーブルが現在のCU内のすべてのサンプルの混合加重インデックスに使用されることを示す。これはまた、このcos[.]値は、一度アクセスされた後、加重インデックス計算のために現在のCU内のすべてのサンプルに伝搬されてもよいことを暗示する。
【0191】
整数のみの計算
一実施形態では、浮動小数点演算を回避するために、混合加重インデックスを導出するための構成要素をスケールアップすることができ、加重インデックスのスケールアップされた値が得られる。スケールアップされた値は、後でその正常値範囲にスケールバックすることができる。
【0192】
例えば、cos[.]ルックアップテーブルの各コサイン値は、mビットの固定小数点値として実現してもよく、mは6または3などの正の値であってもよい。さらに、サンプル中心点は、混合加重インデックス計算のための離散サンプリングによるデジタル画像にも採用される。加重インデックスwIdx(x,y)は、浮動小数点演算を回避し、離散サンプリング状況を補償するために、2m+4のスケーリング係数を用いてスケーリングすることができる。したがって、式22は式23のように書き直すことができる。比較的高い精度を維持するために、丸めオフセットが適用されてもよい。
【0193】
【0194】
距離ステップ数nが2の累乗の値であると、式23の除算演算を、式24で示すように、右シフト演算を使用して実現することができる。また、丸めオフセットを適用してもよい。
【0195】
【0196】
4象限の角度
一実施形態では、分割境界の角度φの象限に応じて、異なる式を使用して加重インデックス計算を実施してもよい。例えば、分割境界計算に対して、cos(φ)および
【0197】
【0198】
の値の両方を正としてもよい。したがって、4つの異なる象限に対応する区分角度インデックスに対して、4つの異なる混合加重マスク式を使用してもよい。4つの異なる象限に対する混合加重インデックス式を以下に示す。
【0199】
【0200】
行ごとおよび列ごとに基づく混合加重インデックス計算
一実施形態では、加重インデックスwIdx(x,y)は、行ごとに計算してもよく、すなわち、現在の行wIdx(x,y)の値は、前の行wIdx(x,y-1)の値に基づいて導出される。あるいは、加重インデックスwIdx(x,y)は列ごとに計算してもよく、すなわち、現在の列wIdx(x,y)の加重インデックスは、前の列wIdx(x-1,y)の加重インデックスに基づいて導出される。
【0201】
サンプル位置(x,y)に対して、式26~28を使用して、式23に基づいて、混合マスクを導出してもよい。
【0202】
【0203】
式26に示すように、加重インデックスwIdx(x,y)は、固定オフセット値を有する前の列の隣接する左画素の混合加重インデックスから導出してもよい。固定オフセット値はcos(φ)であり、これは対応する角度インデックスを有する単純なルックアップテーブル値であり、スケーリング係数を用いる。したがって、マスク格納のためには、混合加重インデックス値の1列しか必要がない。加重インデックスの他の列は、固定オフセット値を有する前の列の混合加重インデックス値を使用することによって決定してもよい。
【0204】
サンプル位置(x,y)に対して、この画素サンプルの混合マスクまたは混合加重インデックスは、式23に基づいて式29~31を使用して導出される。
【0205】
【0206】
式29では、加重インデックスwIdx(x,y)は、固定オフセット値を有する上の行における上側に隣接する画素の混合加重インデックスから導出してもよい。固定オフセット値
【0207】
【0208】
は、単純なルックアップテーブルcos[.]から、所与の角度インデックスを
【0209】
【0210】
位相シフトと共に使用することによって導出される。したがって、マスク格納のために1行の混合加重値しか必要がない。他の行は、固定オフセット値を有する前の行の混合加重値を使用することによって実施してもよい。
【0211】
加重インデックスの独立導出
一実施形態では、符号化ブロックの位置(x,y)における加重インデックスは、座標(x,y)およびコサインテーブルに応じて、(ブロックサイズ、距離オフセットρ、区分角度φに基づいて決定してもよい)特定の加重インデックス値wIdx(0,0)から導出してもよい。このようにして、符号化ブロックの各サンプルの加重インデックスを独立して導出してもよい。
【0212】
式7において、以下の式を導出してもよい。
【0213】
【0214】
したがって、wIdx(0,0)の値を決定した後、ブロックの各サンプルの加重インデックスは、式32と並列に計算してもよい。
【0215】
ルックアップテーブルを用いない、加重インデックスから混合加重への変換
一実施形態では、最終的な混合加重変換に対するルックアップテーブルに基づく加重インデックスは、計算に基づく変換に置き換えられる。ルックアップテーブルをチェックする動作が取り除かれているので、各サンプルの最終的な加重係数を並行して導出してもよい。
【0216】
セクションVIで説明しているGEOの加重サンプル処理などのいくつかの例では、サンプル加重の値は、ルックアップテーブル(例えば、GeoFilter[ ]ルックアップテーブル、表3)に従って設定される。ルックアップテーブルに関連付けられた制約を取り除き、並列に加重導出することを可能にするために、サンプルの加重値は、加重インデックスの線形関数に基づいて動作中に導出してもよい。線形関数は、ルックアップテーブルの助けなしに加重インデックスを混合加重に変換することができる。
【0217】
一例として、以下の式(式34)を、加重インデックスを混合加重に変換するために使用してもよい。
weight(x,y)=(2idx2wShiftBit+2-wIdx(x,y))≫idx2wShiftBit (式34)
【0218】
浮動小数点演算に基づく計算(例えば、式19および式20)に対して、wIdx(x,y)を計算するためにスケールアップは使用せず、式32のidx2wShiftBitは「0」としてもよい。サンプル加重は、以下のように導出してもよい。
weight(x,y)=4-wIdx(x,y) (式35)
【0219】
固定小数点演算に基づく計算(例えば、式19および式20)の場合、式30のidx2wShiftBitは、式36にあるように説明してもよい。
idx2wShiftBit=m+3 (式36)
【0220】
サンプル加重は、式37に示すように右シフト演算を使用することによって動作中に導出してもよい。
weight(x,y)=(2m+5-wIdx(x,y))≫(m+3) (式37)
【0221】
mの典型的な値は、コサインテーブルの精度ビット数としてもよい。例えば、mは概して6または3であってもよい。
【0222】
ルックアップテーブルを用いない動きインデックス計算
一実施形態では、動きインデックスを決定するためにルックアップテーブルを用いない計算方法を使用することができる。例えば、現在の符号化ブロックの動き格納ユニットの動きインデックスは、例えば、動き格納ユニットの座標(xsb,ysb)、および現在の符号化ブロックの(nおよびiで表される)区分距離オフセットρ、現在の符号化ブロックの区分角度φ、および現在の符号化ブロックのブロックサイズに基づいて決定してもよい。結果として、現在の符号化ブロックの動きインデックスmotionIdx(xsb,ysb)を独立して(並列に)同時に導出してもよい。
【0223】
いくつかの例では、TPMのような動き格納処理を利用せずに、動き格納ユニット(サブブロック)の中心位置と分割境界との間の距離を使用して、動きベクトル格納処理を動作中に導出してもよい。動き格納ユニットは、4×4サンプルのサイズ、または他のサブブロックサイズ(例えば、8×8サンプル)を有してもよい。WxHサブブロックの中心位置は、(W/2、H/2)、もしくは(W/2-1、H/2-1)における整数位置、またはこれらの整数位置の隣接する位置として定義されてもよい。あるいは、サブペル位置((W-1)/2.0、(H-1)/2.0)が中心位置として定義されてもよい。前述の距離値は、単予測または双予測の動き情報が動き格納ユニットに格納されているか否かを決定するために固定閾値と比較される。距離の符号は、単予測格納ケースに格納可能な単予測動き情報を示す。したがって、混合マスクと動き格納との依存関係を取り除くことができる。
【0224】
一例では、動き格納ユニット(サブブロック)は4×4サンプルのサイズを有する。変数xsbおよびysbは、水平方向および垂直方向における、現在のw×h符号化ブロックの4×4サブブロックの位置を指定する。変数xsbおよびysbは、式、0≦xsb<(w≫2)および式、0≦ysb<(h≫2)を満たす。式21の概念、および式19のスケーリングを用いた離散サンプリングのために詳細に導出することを使用して、式38では、4×4の動き格納ユニットの中心位置と分割境界との間の距離を導出してもよい。
【0225】
【0226】
距離ステップ数nが2つの値の累乗であると、式39に示すように、右シフト演算を使用して式38の除算演算を実現してもよい。比較的高い精度を維持するために、丸めオフセットも適用されてもよい。
【0227】
【0228】
混合加重インデックスから導出された動きインデックス
一実施形態では、符号化ブロックの、動き格納ユニット(サブブロック)のmotionIdx(xsb,ysb)によって表す動きインデックスは、サブブロック内のサンプル位置の混合加重インデックスから直接導出される。このようにして、動きインデックスを決定するための計算コストを節約または削減することができる。
【0229】
セクションVで説明したように、動きインデックスは、動き格納ユニットの中心位置と分割境界との間の距離に基づいて導出してもよい。混合加重インデックスは、サンプルと分割境界との間の距離から導出してもよい。したがって、動きインデックスは、対応するサブブロック内にあるサンプルの混合加重インデックスから見積もってもよく、サブブロックの中心に位置しなくてもよい。
【0230】
一例では、見積もりは、式40に従って実現される。
【0231】
【0232】
式36では、符号化ブロックの動きフィールドの動き格納ユニットは、4×4サンプルのサイズを有すると仮定される。動き格納ユニット内のサンプル位置の座標は、(i,j)によって表される。例えば、動きフィールドに(1,0)の座標を有する動き格納ユニットに対して、および動きインデックスを計算するために指定されている動き格納ユニットに(2,2)の座標を有するサンプル位置に対して、符号化ブロックのサンプル位置((1≪2)+2、(0≪2)+2)、すなわち(6,2)での加重インデックスを、動き格納ユニットの動きインデックスとして使用してもよい。計算処理は以下のように示すことができる。
motionldx(1,0)=wIdx((1≪2)+2,(0≪2)+2)=wIdx(6,2)(式41)
【0233】
様々な例では、(i,j)は、対応するサブブロックの中心位置(1.5,1.5)に隣接するサンプル位置に対応する(1,1)、(1,2)、(2,1)、および(2,2)に等しくてもよい。
【0234】
より概して言えば、2nx2nサンプルのサイズを有する動き格納ユニットに対して、見積もりは、式42に従って実現してもよい。
【0235】
【0236】
式40~42では、wIdx(x,y)によって表す、符号化ブロックのサンプル位置(x,y)における混合加重インデックス値は、様々な例では様々な方法で取得することができる。加重混合処理中に混合加重インデックス値が計算された後、各動きベクトル格納ユニット内の指定された位置での混合加重インデックスは、各動き格納ユニットに対して格納されるべき動きベクトルタイプを決定するための動きインデックス値として直接使用してもよい。動き格納ユニット内の中央サンプル位置から区分エッジまでの距離に基づいて、動きインデックスを計算することと比較して、計算の複雑さを削減することができる。
【0237】
VII.幾何学的区分モードの例示的な処理
図12は、本開示のいくつかの実施形態による処理(1200)の概要を示すフローチャートを示す。様々な実施形態では、処理(1200)は、端末装置(210)、(220)、(230)および(240)の処理回路と、映像デコーダ(310)の機能を実行する処理回路と、映像デコーダ(410)の機能を実行する処理回路となどの処理回路によって実行される。いくつかの実施形態では、処理(1200)はソフトウェア命令で実施され、したがって、処理回路がソフトウェア命令を実行すると、処理回路は処理(1200)を実行する。処理(1200)は(S1201)から開始し、(S1210)に進む。
【0238】
(S1210)で、シンタックス要素を、符号化された映像のビットストリームから受信してもよい。シンタックス要素は、幾何学的区分モード(GPM)における予測のために区分エッジに沿って第1の部分と第2の部分とに区分される現在の符号化ブロックに関連付けてもよい。例えば、以下のシンタックス要素をビットストリーム内でシグナリングすることができる。GPMが現在の符号化ブロックに対して有効であることを示すCUレベルGPM有効化フラグ、現在の符号化ブロックに適用される(テーブルの区分角度インデックスおよび距離オフセットインデックスに対応する)区分モードを示すGPMインデックス、現在の符号化ブロックの第1の部分および第2の部分に対応する2つのGPMマージインデックス。
【0239】
(S1220)で、現在の符号化ブロックのサンプル位置での加重インデックスを決定してもよい。加重インデックスは、例えば、区分エッジまでのサンプル位置の距離に対応してもよい。続いて、加重インデックスが、現在の符号化ブロックの第1の部分および第2の部分に対応する2つの予測信号を混合するための混合加重を導出するために使用されてもよい。一例では、加重インデックスは、加重インデックスの線形関数を使用して混合加重に変換することができる。
【0240】
(S1230)で、現在の符号化ブロックの動きフィールドの第1の動き格納ユニットに対して、格納された動きベクトルタイプを、第1の動き格納ユニットの動きインデックスに基づいて決定してもよい。(S1220)で決定された現在の符号化ブロックのサンプル位置での加重インデックスが、第1の動き格納ユニットの動きインデックスとして使用される。例えば、(S1220)で決定された加重インデックスを使用して、格納された動きベクトルタイプを決定するために、第1の動き格納ユニットの中心位置での動きインデックスを見積もることができる。このようにして、第1の動き格納ユニットの中心位置での動きインデックスを計算するための計算コストを節約または削減することができる。GPMによる復号性能を向上させることができる。
【0241】
(S1240)で、現在の符号化ブロックの動きフィールドの第1の動き格納ユニットに対して決定された格納された動きベクトルタイプに基づいて、現在の符号化ブロックの動きフィールドを格納してもよい。例えば、2つのGPMマージインデックスに対応する2つの動きベクトルは、MV1およびMV2で表してもよい。格納された動きベクトルタイプに応じて、幾何学的区分の第1の部分からのMV1、幾何学的区分の第2の部分からのMV2、およびMV1とMV2との組み合わせMVは、第1の動き格納ユニットのための動きフィールドに格納される。処理(1200)は、(S1299)に進み、(S1299)で終了することができる。
【0242】
VIII.コンピュータシステム
前述の技術は、コンピュータ可読命令を使用し、1つ以上のコンピュータ可読媒体に物理的に格納されたコンピュータソフトウェアとして実現してもよい。例えば、
図13は、開示された主題の特定の実施形態を実現するのに適切なコンピュータシステム(1300)を示す。
【0243】
コンピュータソフトウェアは、任意の適切な機械コードまたはコンピュータ言語を使用して符号化してもよく、これらの機械コードまたはコンピュータ言語は、アセンブリ、コンパイル、リンキングなどの機構を適用されて、1つ以上のコンピュータ中央処理装置(CPU)、グラフィック処理装置(GPU)などによって直接実行してもよく、または解釈、マイクロコード実行などを介して実行してもよい命令を含むコードを作成してもよい。
【0244】
命令は、様々なタイプのコンピュータまたはその構成要素上で実行してもよく、コンピュータまたはその構成要素は、例えば、パーソナルコンピュータ、タブレットコンピュータ、サーバ、スマートフォン、ゲーム装置、モノのインターネット装置などを含む。
【0245】
コンピュータシステム(1300)に対して
図13に示す構成要素は、本質的に例示的なものであり、本開示の実施形態を実現するコンピュータソフトウェアの使用の範囲または機能の範囲に関する制限を示唆することを意図するものではない。構成要素の構成についても、コンピュータシステム(1300)の例示的な実施形態に図示されている構成要素のいずれかまたは組み合わせに関する依存関係または要件を有すると解釈されるべきではない。
【0246】
コンピュータシステム(1300)は、特定のヒューマンインタフェース入力装置を含んでもよい。このようなヒューマンインタフェース入力装置は、例えば、触覚入力(例えば、キーストローク、スワイプ、データグローブの動き)、音声入力(例えば、声、拍手)、視覚入力(例えば、ジェスチャ)、嗅覚入力(不図示)を介した、1人以上の人間のユーザによる入力に応えてもよい。ヒューマンインタフェース装置は、音声(例えば、発話、音楽、周囲の音)、画像(例えば、走査された画像、静止画像カメラから取得された写真画像)、映像(2次元映像、立体視映像を含む3次元映像など)など、必ずしも人間による意識的な入力に直接関連しない特定の媒体を取り込むために使用することもできる。
【0247】
入力ヒューマンインタフェース装置には、キーボード(1301)、マウス(1302)、トラックパッド(1303)、タッチスクリーン(1310)、データグローブ(不図示)、ジョイスティック(1305)、マイクロフォン(1306)、スキャナ(1307)、カメラ(1308)のうちの1つ以上(各々のうちの1つのみ図示)が含まれてもよい。
【0248】
コンピュータシステム(1300)はまた、特定のヒューマンインタフェース出力装置を含んでもよい。このようなヒューマンインタフェース出力装置は、例えば、触覚出力、音、光、および匂い/味によって、1人以上の人間のユーザの感覚を刺激してもよい。このようなヒューマンインタフェース出力装置には、触覚出力装置と(例えば、タッチスクリーン(1310)、データグローブ(不図示)、またはジョイスティック(1305)による触覚フィードバックであるが、入力装置として機能しない触覚フィードバック装置も存在してもよい)、音声出力装置と(例えば、スピーカ(1309)、ヘッドホン(不図示))、視覚出力装置と(例えば、CRTスクリーン、LCDスクリーン、プラズマスクリーン、OLEDスクリーンを含むスクリーン(1310)、タッチスクリーン入力機能を有する各々、またはタッチスクリーン入力機能を有さない各々、触覚フィードバック機能を有する各々、または触覚フィードバック機能を有さない各々であり、その一部は、ステレオ投影出力、仮想現実メガネ(不図示)、ホログラフィックディスプレイ、およびスモークタンク(不図示)などの手段を介して、2次元視覚出力または3次元以上の出力を出力できる場合がある)、プリンタ(不図示)とが含まれてもよい。これらの視覚出力装置(スクリーン(1310)など)は、グラフィックスアダプタ(1350)を介してシステムバス(1348)に接続することができる。
【0249】
コンピュータシステム(1300)はまた、人間がアクセス可能な記憶装置およびそれらに関連付けられた媒体、例えば、CD/DVDもしくは類似の媒体と共にCD/DVDのROM/RW(1320)を含む光学媒体(1321)、USBメモリ(1322)、外付けハードドライブまたは外付けソリッドステートドライブ(1323)、テープおよびフロッピーディスク(不図示)などのレガシー磁気媒体、セキュリティドングル(不図示)などの専用ROM/ASIC/PLDに基づく装置などを含んでもよい。
【0250】
当業者はまた、本開示の主題に関連して使用される「コンピュータ可読媒体」という用語が、伝送媒体、搬送波、または他の一時的信号を包含しないことを理解するであろう。
【0251】
コンピュータシステム(1300)はまた、1つ以上の通信ネットワーク(1355)へのネットワークインタフェース(1354)を含んでもよい。1つ以上の通信ネットワーク(1355)は、例えば、無線、有線、光であり得る。さらに、1つ以上の通信ネットワーク(1355)は、ローカル、広域、都市、車両および産業、リアルタイム、遅延耐性などであり得る。1つ以上の通信ネットワーク(1355)の例には、イーサネット、無線LANなどのローカルエリアネットワークと、GSM、3G、4G、5G、LTEなどを含む移動体通信ネットワークと、ケーブルTV、衛星TV、および地上波放送TVを含むテレビ有線通信広域デジタルネットワークまたはテレビ無線広域デジタルネットワークと、CANバスを含む車両および産業用ネットワークとなどが含まれる。特定のネットワークは、一般に、特定の汎用データポートまたは周辺機器用バス(1349)に取り付けられた外部ネットワークインタフェースアダプタを必要とし(例えば、コンピュータシステム(1300)のUSBポートなど)、他のネットワークは、一般に、以下で説明するようなシステムバスへの取り付け(例えば、PCコンピュータシステムへのイーサネットインタフェース、またはスマートフォンコンピュータシステムへの移動体通信ネットワークインタフェース)によってコンピュータシステム(1300)のコアに統合される。これらのネットワークのいずれかを使用して、コンピュータシステム(1300)は、他の要素と通信してもよい。このような通信は、例えば、ローカルデジタルネットワークまたは広域デジタルネットワークを使用する他のコンピュータシステムに対して、単方向受信のみ(例えば、放送TV)、単方向送信のみ(例えば、特定のCANバス装置へのCANバス)、または双方向であってもよい。特定のプロトコルおよびプロトコルスタックは、前述のように、それらのネットワークおよびネットワークインタフェースの各々で使用してもよい。
【0252】
前述のヒューマンインタフェース装置、人間がアクセス可能な記憶装置、およびネットワークインタフェースは、コンピュータシステム(1300)のコア(1340)に取り付けることができる。
【0253】
コア(1340)は、1つ以上の中央処理装置(CPU)(1341)、1つ以上のグラフィック処理装置(GPU)(1342)、フィールドプログラマブルゲートエリア(FPGA)(1343)の形式の1つ以上の専用プログラマブル処理装置、1つ以上の、特定のタスク用のハードウェアアクセラレータ(1344)などを含んでもよい。これらの装置は、読取り専用メモリ(ROM)(1345)、ランダムアクセスメモリ(1346)、内部の、ユーザがアクセス可能ではないハードドライブ、SSDなどの内部大容量ストレージ(1347)と共に、システムバス(1348)を介して接続されてもよい。いくつかのコンピュータシステムでは、システムバス(1348)は、追加のCPU、GPUなどによる拡張を可能にするために、1つ以上の物理プラグの形式でアクセス可能であってもよい。周辺装置は、コアのシステムバス(1348)に直接取り付けてもよく、または周辺機器用バス(1349)を介して取り付けてもよい。周辺バスのためのアーキテクチャには、PCI、USBなどが含まれる。
【0254】
CPU(1341)、GPU(1342)、FPGA(1343)、およびアクセラレータ(1344)は、組み合わせて前述のコンピュータコードを構成してもよい特定の命令を実行してもよい。そのコンピュータコードは、ROM(1345)またはRAM(1346)に格納してもよい。移行データはまた、RAM(1346)に格納してもよく、一方、永続データは、例えば内部大容量ストレージ(1347)に格納してもよい。メモリ装置のいずれかへの高速格納および取得は、1つ以上のCPU(1341)、1つ以上のGPU(1342)、1つ以上の大容量ストレージ(1347)、1つ以上のROM(1345)、1つ以上のRAM(1346)などと密接に関連付けることができるキャッシュメモリの使用によって可能にすることができる。
【0255】
コンピュータ可読媒体は、様々なコンピュータで実現される動作を実行するためのコンピュータコードを有してもよい。媒体およびコンピュータコードは、本開示の目的のために特別に設計および構築されたものであってもよく、またはコンピュータソフトウェア技術の当業者に周知で利用可能な種類のものであってもよい。
【0256】
限定ではなく、例として、アーキテクチャ、特にそのコア(1340)を有するコンピュータシステム(1300)は、1つ以上の有形のコンピュータ可読媒体において実施されたソフトウェアを実行するプロセッサ(CPU、GPU、FPGA、アクセラレータなどを含む)の結果として、機能を提供してもよい。このようなコンピュータ可読媒体は、前述のようなユーザアクセス可能な大容量ストレージに関連付けられた媒体、ならびにコア内部大容量ストレージ(1347)またはROM(1345)などの非一時的な性質の、コア(1340)の特定のストレージに関連付けられた媒体であってもよい。本開示の様々な実施形態を実現するソフトウェアは、このような装置に格納され、コア(1340)によって実行されてもよい。コンピュータ可読媒体は、特定のニーズに応じて、1つ以上のメモリ装置または1つ以上のチップを含んでもよい。ソフトウェアは、コア(1340)、具体的にはその中のプロセッサ(CPU、GPU、FPGA等を含む)に、RAM(1346)に格納されたデータ構造を定義すること、およびソフトウェアによって定義された処理に応じてこのようなデータ構造を修正することを含む、本明細書で説明する、特定の処理または特定の処理の特定の部分を実行させてもよい。加えて、または代替として、コンピュータシステムは、ハードワイヤードまたは他の方法で回路(例えば、アクセラレータ(1344))に実施されたロジックの結果として、機能を提供してもよく、このロジックは、ソフトウェアの代わりに、またはソフトウェアと共に動作して、本明細書で説明する、特定の処理または特定の処理の特定の部分を実行してもよい。ソフトウェアについての参照は、適切な場合には、ロジックを包含することができ、逆もまた同様である。コンピュータ可読媒体の参照は、適切な場合には、実行のためのソフトウェアを格納する回路(集積回路(IC)など)、実行のためのロジックを実施する回路、またはその両方を包含することができる。本開示は、ハードウェアとソフトウェアとの任意の適切な組み合わせを包含する。
【0257】
本開示はいくつかの例示的な実施形態を説明してきたが、本開示の範囲内に含まれる変更形態、置換形態、および様々な代替形態の同等物がある。したがって、当業者は、本明細書に明示的に示されていないまたは説明していないが、本開示の原理を実施し、したがって本開示の精神および範囲内にある多数のシステムおよび多数の方法を考案することができることが理解されよう。
【0258】
付記A:頭字語
ASIC:特定用途向け集積回路
BMS:ベンチマークの組
CANBus:コントローラエリアネットワークバス
CD:コンパクトディスク
CPU:中央処理装置
CRT:ブラウン管
CTB:符号化ツリーブロック
CTU:符号化ツリーユニット
CU:符号化ユニット
DVD:デジタル映像ディスク
FPGA:フィールドプログラマブルゲートエリア
GEO:幾何学的マージモード
GOP:ピクチャのグループ
GPU:グラフィック処理装置
GSM:グローバル移動体通信システム
HDR:高ダイナミックレンジ
HEVC:高効率映像符号化
HRD:仮想参照デコーダ
IC:集積回路
JEM:Joint Exploration Model
JVET:Joint Video Exploration Team
LAN:ローカルエリアネットワーク
LCD:液晶ディスプレイ
LTE:ロングタームエボリューション
MV:動きベクトル
OLED:有機発光ダイオード
PB:予測ブロック
PCI:周辺構成要素相互接続
PLD:プログラマブルロジック装置
PU:予測ユニット
RAM:ランダムアクセスメモリ
ROM:読取り専用メモリ
SDR:標準ダイナミックレンジ
SEI:付加拡張情報
SNR:信号雑音比
SSD:ソリッドステートドライブ
TPM:三角形区分モード
TU:変換ユニット
USB:ユニバーサルシリアルバス
VUI:映像ユーザビリティ情報
VVC:Versatile Video Coding
【符号の説明】
【0259】
200 通信システム
210 端末装置
220 端末装置
230 端末装置
240 端末装置
250 通信ネットワーク
301 映像ソース
302 ストリーム
303 映像エンコーダ
304 映像ビットストリーム
305 ストリーミングサーバ
306 クライアントサブシステム
307 映像データ
308 クライアントサブシステム
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 インターデコーダ
1200 処理
1300 コンピュータシステム
1301 キーボード
1302 マウス
1303 トラックパッド
1305 ジョイスティック
1306 マイクロフォン
1307 スキャナ
1308 カメラ
1309 スピーカ
1310 視覚出力装置スクリーン
1321 光学媒体
1322 USBメモリ
1323 外付けソリッドステートドライブ
1340 コア
1343 フィールドプログラマブルゲートエリア
1344 ハードウェアアクセラレータ
1345 読取り専用メモリROM
1346 ランダムアクセスメモリ
1347 コア内部大容量ストレージ
1348 システムバス
1349 周辺機器用バス
1350 グラフィックスアダプタ
1354 ネットワークインタフェース
1355 通信ネットワーク