(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-08-29
(54)【発明の名称】ブロックベースのビデオ符号化のための符号予測
(51)【国際特許分類】
H04N 19/61 20140101AFI20240822BHJP
【FI】
H04N19/61
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2024507965
(86)(22)【出願日】2022-08-16
(85)【翻訳文提出日】2024-02-07
(86)【国際出願番号】 US2022040442
(87)【国際公開番号】W WO2023023039
(87)【国際公開日】2023-02-23
(32)【優先日】2021-08-17
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】521248394
【氏名又は名称】ベイジン、ターチア、インターネット、インフォメーション、テクノロジー、カンパニー、リミテッド
【氏名又は名称原語表記】BEIJING DAJIA INTERNET INFORMATION TECHNOLOGY CO.,LTD.
(74)【代理人】
【識別番号】100120031
【氏名又は名称】宮嶋 学
(74)【代理人】
【識別番号】100107582
【氏名又は名称】関根 毅
(74)【代理人】
【識別番号】100217940
【氏名又は名称】三並 大悟
(72)【発明者】
【氏名】シウ、シャオユー
(72)【発明者】
【氏名】ヤン、ニン
(72)【発明者】
【氏名】チェン、イー-ウェン
(72)【発明者】
【氏名】クオ、チョー-ウェイ
(72)【発明者】
【氏名】チェン、ウェイ
(72)【発明者】
【氏名】チュー、ホン-チェン
(72)【発明者】
【氏名】ワン、シャンリン
(72)【発明者】
【氏名】ユイ、ビン
【テーマコード(参考)】
5C159
【Fターム(参考)】
5C159LC09
5C159MA04
5C159MA05
5C159MA21
5C159MC11
5C159MC35
5C159ME01
5C159PP16
5C159RC12
5C159TA37
5C159TA41
5C159TB08
5C159TC27
5C159TC42
5C159UA02
5C159UA05
5C159UA16
(57)【要約】
本開示の実装形態は、ビデオデコーダ側での変換係数符号予測のためのビデオ復号装置および方法を提供する。方法は、逆量子化された変換係数から変換係数候補のセットを選択することを含んでもよい。方法は、テンプレートベースの仮説生成スキームを適用して、変換係数候補のセットに対する複数の仮説候補から仮説を選択することを含んでもよい。方法は、選択された仮説に関連付けられた符号候補の組み合わせを、変換係数候補のセットに対する予測符号のセットであると決定することを含んでもよい。方法は、ビデオエンコーダから受信した予測符号のセットおよび符号シグナリングビットのシーケンスに基づいて、変換係数候補のセットの元の符号を推定することを含んでもよい。方法は、推定された変換係数候補のセットの元の符号に基づいて、逆量子化された変換係数を更新することを含んでもよい。
【特許請求の範囲】
【請求項1】
変換係数符号予測のためのビデオ復号方法であって、
1つまたは複数のプロセッサによって、逆量子化された変換係数から、前記変換係数符号予測のための変換係数候補のセットを選択することであって、前記逆量子化された変換係数が、ビデオからのビデオフレームの変換ブロックに関連付けられることと、
前記1つまたは複数のプロセッサによって、テンプレートベースの仮説生成スキームを適用して、前記変換係数候補のセットに対する複数の仮説候補から仮説を選択することと、
前記1つまたは複数のプロセッサによって、選択された前記仮説に関連付けられた符号候補の組み合わせを、前記変換係数候補のセットに対する予測符号のセットであると決定することと、
前記1つまたは複数のプロセッサによって、ビデオエンコーダから受信した予測符号のセットおよび符号シグナリングビットのシーケンスに基づいて、前記変換係数候補のセットの元の符号を推定することと、
前記1つまたは複数のプロセッサによって、前記変換係数候補のセットに対する推定された前記元の符号に基づいて、前記逆量子化された変換係数を更新することと、
を含む、ビデオ復号方法。
【請求項2】
符号シグナリングビットの前記シーケンスと、前記変換ブロックに関連付けられた量子化された変換係数とを含むビットストリームを受信することと、
前記量子化された変換係数から前記逆量子化された変換係数を生成すること、
をさらに含む、請求項1に記載のビデオ復号方法。
【請求項3】
前記逆量子化された変換係数に逆一次変換および逆二次変換を適用して、前記変換ブロックに対応する残差ブロック内に残差サンプルを生成することをさらに含む、請求項1に記載のビデオ復号方法。
【請求項4】
前記逆二次変換が、低周波非分離変換(LFNST)を含む二次変換に対応する、請求項3に記載のビデオ復号方法。
【請求項5】
前記逆一次変換が、DCT-II、DCT-V、DCT-VIII、DST-I、DST-IV、DST-VII、または恒等変換を含む一次変換に対応する、請求項3に記載のビデオ復号方法。
【請求項6】
前記変換係数候補のセットを選択することが、
前記逆量子化された変換係数の大きさに基づいて、前記逆量子化された変換係数から前記変換係数候補のセットを選択することを含む、請求項1に記載のビデオ復号方法。
【請求項7】
前記変換係数候補のセットを選択することが、
前記逆量子化された変換係数の量子化インデックスの大きさに基づいて、前記逆量子化された変換係数から前記変換係数候補のセットを選択することを含む、請求項1に記載のビデオ復号方法。
【請求項8】
前記変換係数候補のセットを選択することが、
ビデオ符号化に適用されるエントロピー符号化の係数走査順序に基づいて、前記逆量子化された変換係数から前記変換係数候補のセットを選択することを含む、請求項1に記載のビデオ復号方法。
【請求項9】
前記変換係数候補のセットを選択することが、
前記変換ブロックの再構築された境界線サンプルに対する前記逆量子化された変換係数の影響スコアに基づいて、前記逆量子化された変換係数から前記変換係数候補のセットを選択することを含む、請求項1に記載のビデオ復号方法。
【請求項10】
前記再構築された境界線サンプルに対する前記逆量子化された変換係数の前記影響スコアが、前記再構築された境界線サンプルに対する各逆量子化された変換係数の変動のL1ノルムとして測定される、請求項9に記載のビデオ復号方法。
【請求項11】
前記再構築された境界線サンプルに対する前記逆量子化された変換係数の前記影響スコアが、前記再構築された境界線サンプルに対する各逆量子化された変換係数の変動のL2ノルムとして測定される、請求項9に記載のビデオ復号方法。
【請求項12】
前記テンプレートベースの仮説生成スキームを適用して前記仮説を選択することが、
前記変換係数候補のセット内の変換係数候補の総数に基づいて、前記変換係数候補のセットに対する符号候補の複数の組み合わせを決定することと、
前記テンプレートベースの仮説生成スキームを適用して、符号候補の前記複数の組み合わせに対する前記複数の仮説候補をそれぞれ生成することと、
水平方向、垂直方向、および対角方向に沿った組み合わせ勾配を組み込んだコスト関数に基づいて、前記複数の仮説候補から最小コストに関連する仮説を決定すること、
を含む、請求項1に記載のビデオ復号方法。
【請求項13】
前記テンプレートベースの仮説生成スキームを適用して、符号候補の前記複数の組み合わせに対する前記複数の仮説候補をそれぞれ生成することが、
テンプレートの線形結合に基づいて、符号候補の各組み合わせに対する対応する仮説候補を生成することを含む、請求項12に記載のビデオ復号方法。
【請求項14】
各テンプレートが、前記変換係数候補のセット内の変換係数候補に対応し、
各テンプレートが、前記変換ブロックに逆二次変換および逆一次変換を適用することによって生成され、1に設定されるテンプレートに対応する変換係数候補を除いて、前記変換係数候補のセットのそれぞれがゼロに設定される、
請求項13に記載のビデオ復号方法。
【請求項15】
前記テンプレートベースの仮説生成スキームを適用して、符号候補の前記複数の組み合わせに対する前記複数の仮説候補をそれぞれ生成することが、
符号候補の前記複数の組み合わせをそれぞれ、前記複数の仮説候補に対する複数の仮説インデックスであると決定することと、
前記複数の仮説インデックスのゲイリー符号順序に基づいて前記複数の仮説インデックスを順序付けし、仮説インデックスの並べ替えられたシーケンスを生成することと、
仮説インデックスの前記並べ替えられたシーケンス内の第1の仮説インデックスについて、前記変換ブロックに逆二次変換および逆一次変換を適用することによって、前記第1の仮説インデックスに対応する第1の仮説候補を生成することであって、前記変換係数候補のセットのそれぞれが1に設定される、前記第1の仮説候補を生成することと、
前記第1の仮説インデックスの直後にある、仮説インデックスの前記並べ替えられたシーケンス内の第2の仮説インデックスについて、前記第1の仮説インデックスに対応する前記第1の仮説候補と、第2の仮説候補の調整項とに基づいて、前記第2の仮説インデックスに対応する前記第2の仮説候補を生成すること、
を含む、請求項12に記載のビデオ復号方法。
【請求項16】
前記コスト関数が、前記垂直方向および前記水平方向に沿った勾配を組み込んだ水平垂直コスト関数、左対角方向に沿った勾配を組み込んだ左対角コスト関数、ならびに右対角方向に沿った勾配を組み込んだ右対角コスト関数に基づいて決定される、請求項12に記載のビデオ復号方法。
【請求項17】
前記変換係数候補のセットに対する符号シグナリングビットの前記シーケンスが、前記ビデオエンコーダによって、
前記ビデオエンコーダによって、ベクトルベースの符号予測スキームを、ビデオエンコーダ側で選択された変換係数候補の別のセットに対する予測符号の別のセットに適用することによって生成され、
変換係数候補の前記別のセットが、ビデオデコーダ側の前記変換係数候補のセットに対応する前記ビデオエンコーダ側の変換係数である、請求項1に記載のビデオ復号方法。
【請求項18】
変換係数候補の前記別のセットに対する予測符号の前記別のセットに前記ベクトルベースの符号予測スキームを適用して、符号シグナリングビットの前記シーケンスを生成することが、
変換係数候補の前記別のセットを変換係数候補の複数のグループに分割することと、
変換係数候補のグループごとに、変換係数候補の前記グループの元の符号が変換係数候補の前記グループの予測符号と同一であるかどうかに基づいて、変換係数候補の前記グループに対して1つまたは複数の符号シグナリングビットを生成すること、
をさらに含む、請求項17に記載のビデオ復号方法。
【請求項19】
変換係数候補の前記グループに対する前記1つまたは複数の符号シグナリングビットを生成することが、
変換係数候補の前記グループの前記元の符号が変換係数候補の前記グループの前記予測符号と同一であることに応答して、
ゼロの値を有するビンを生成することと、
前記ビンを符号シグナリングビットとしてビットストリームに追加すること、
を含む、請求項18に記載のビデオ復号方法。
【請求項20】
変換係数候補の前記グループに対する前記1つまたは複数の符号シグナリングビットを生成することが、
変換係数候補の前記グループの前記元の符号が変換係数候補の前記グループの前記予測符号と同一ではないことに応答して、
1の値を有するビンを生成することと、
変換係数候補の前記グループの前記予測符号の対応する正しさを通知するための追加ビンのセットを生成することと、
前記ビンおよび前記追加ビンのセットを符号シグナリングビットとしてビットストリームに追加すること、
を含む、請求項18に記載のビデオ復号方法。
【請求項21】
変換係数符号予測のためのビデオ復号装置であって、
複数のビデオフレームを含むビデオを記憶するように構成されたメモリと、
前記メモリに結合され、
逆量子化された変換係数から、前記変換係数符号予測のための変換係数候補のセットを選択することであって、前記逆量子化された変換係数が、前記ビデオからのビデオフレームの変換ブロックに関連付けられる、変換係数候補のセットを選択することと、
テンプレートベースの仮説生成スキームを適用して、前記変換係数候補のセットに対する複数の仮説候補から仮説を選択することと、
選択された前記仮説に関連付けられた符号候補の組み合わせを、前記変換係数候補のセットに対する予測符号のセットであると決定することと、
前記ビデオエンコーダから受信した予測符号のセットおよび符号シグナリングビットのシーケンスに基づいて、前記変換係数候補のセットの元の符号を推定することと、
前記変換係数候補のセットに対する推定された前記元の符号に基づいて、前記逆量子化された変換係数を更新すること、
を行うように構成された1つまたは複数のプロセッサと、
を備える、ビデオ復号装置。
【請求項22】
前記変換係数候補のセットを選択するために、前記1つまたは複数のプロセッサが、
前記逆量子化された変換係数の大きさ、前記逆量子化された変換係数の量子化インデックスの大きさ、ビデオ符号化に適用されるエントロピー符号化の係数走査順序、または前記変換ブロックの再構築された境界線サンプルに対する前記逆量子化された変換係数の影響スコアに基づいて、前記逆量子化された変換係数から前記変換係数候補のセットを選択するように構成される、請求項21に記載のビデオ復号装置。
【請求項23】
前記テンプレートベースの仮説生成スキームを適用して前記仮説を選択するために、前記1つまたは複数のプロセッサが、
前記変換係数候補のセット内の変換係数候補の総数に基づいて、前記変換係数候補のセットに対する符号候補の複数の組み合わせを決定し、
前記テンプレートベースの仮説生成スキームを適用して、符号候補の前記複数の組み合わせに対して前記複数の仮説候補をそれぞれ生成し、
水平方向、垂直方向、および対角方向に沿った組み合わせ勾配を組み込んだコスト関数に基づいて、前記複数の仮説候補から最小コストに関連する仮説を決定する、
ように構成される、請求項21に記載のビデオ復号装置。
【請求項24】
前記コスト関数が、前記垂直方向および前記水平方向に沿った勾配を組み込んだ水平垂直コスト関数、左対角方向に沿った勾配を組み込んだ左対角コスト関数、ならびに右対角方向に沿った勾配を組み込んだ右対角コスト関数に基づいて決定される、請求項23に記載のビデオ復号装置。
【請求項25】
前記変換係数候補のセットに対する符号シグナリングビットの前記シーケンスが、前記ビデオエンコーダによって、
ベクトルベースの符号予測スキームを、ビデオエンコーダ側で選択された変換係数候補の別のセットに対する予測符号の別のセットに適用することによって生成され、
変換係数候補の前記別のセットが、ビデオデコーダ側の前記変換係数候補のセットに対応する前記ビデオエンコーダ側の変換係数である、請求項21に記載のビデオ復号装置。
【請求項26】
命令を記憶した非一時的コンピュータ可読記憶媒体であって、前記命令が、1つまたは複数のプロセッサによって実行されたとき、変換係数符号予測のためのビデオ復号方法を前記1つまたは複数のプロセッサに実行させ、
前記ビデオ復号方法が、
逆量子化された変換係数から、前記変換係数符号予測のための変換係数候補のセットを選択することであって、前記逆量子化された変換係数が、ビデオからのビデオフレームの変換ブロックに関連付けられることと、
テンプレートベースの仮説生成スキームを適用して、前記変換係数候補のセットに対する複数の仮説候補から仮説を選択することと、
選択された前記仮説に関連付けられた符号候補の組み合わせを、前記変換係数候補のセットに対する予測符号のセットであると決定することと、
前記予測符号のセットおよびビデオエンコーダからビットストリームを通じて受信された符号シグナリングビットのシーケンスに基づいて、前記変換係数候補のセットの元の符号を推定することと、
前記変換係数候補のセットに対する推定された前記元の符号に基づいて、前記逆量子化された変換係数を更新すること、
を含み、前記ビットストリームが前記非一時的コンピュータ可読記憶媒体に記憶される、
非一時的コンピュータ可読記憶媒体。
【請求項27】
ビデオ方法によって復号可能なビットストリームを記憶した非一時的コンピュータ可読記憶媒体であって、
前記ビデオ方法が、
変換係数符号予測のために逆量子化された変換係数から変換係数候補のセットを選択することであって、前記逆量子化された変換係数が、ビデオからのビデオフレームの変換ブロックに関連付けられることと、
テンプレートベースの仮説生成スキームを適用して、前記変換係数候補のセットに対する複数の仮説候補から仮説を選択することと、
選択された前記仮説に関連付けられた符号候補の組み合わせを、前記変換係数候補のセットに対する予測符号のセットであると決定することと、
前記予測符号のセットおよびビデオエンコーダからビットストリームを通じて受信された符号シグナリングビットのシーケンスに基づいて、前記変換係数候補のセットの元の符号を推定することと、
前記変換係数候補のセットに対する推定された前記元の符号に基づいて、前記逆量子化された変換係数を更新すること、
を含む、非一時的コンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本出願は、2021年8月17日に出願された米国仮出願第63/233,940号に基づき、当該仮出願に対する優先権を主張するものであり、当該仮出願の内容全体は、参照により本明細書に組み込まれる。
本出願は、ビデオの符号化および圧縮に関する。より詳細には、本出願は、ブロックベースのビデオ符号化における符号(sign)予測のためのビデオ処理システムおよび方法に関する。
【背景技術】
【0002】
デジタルビデオは、デジタルテレビ、ラップトップコンピュータまたはデスクトップコンピュータ、タブレットコンピュータ、デジタルカメラ、デジタル記録デバイス、デジタルメディアプレーヤ、ビデオゲーミングコンソール、スマートフォン、ビデオ電話会議デバイス、ビデオストリーミングデバイスなど、様々な電子デバイスによってサポートされている。電子デバイスは、通信ネットワークを介してデジタルビデオデータを送信および受信するか、もしくは他の方法で通信し、かつ/またはデジタルビデオデータを記憶デバイスに記憶する。通信ネットワークの帯域幅容量に制限があるため、また記憶デバイスのメモリリソースに制限があるため、ビデオデータが通信または記憶される前に1つまたは複数のビデオ符号化標準に従ってビデオデータを圧縮するためにビデオ符号化が使用される場合がある。例えば、ビデオ符号化標準は、多用途ビデオ符号化(VVC:Versatile Video Coding)、共同探索テスト・モデル(JEM:Joint Exploration test Model)、高効率ビデオ符号化(HEVC:High-Efficiency Video Coding/H.265)、高度ビデオ符号化(AVC:Advanced Video Coding/H.264)、動画像専門家グループ(MPEG:Moving Picture Expert Group)符号化などを含む。ビデオ符号化は、一般に、ビデオデータに固有の冗長性を活用する予測方法(例えば、インター予測、イントラ予測など)を利用する。ビデオ符号化は、ビデオ品質の低下を回避または最小化しながら、ビデオデータをより低いビットレートを使用する形式に圧縮することを目的としている。
【発明の概要】
【発明が解決しようとする課題】
【0003】
本開示の実装形態は、ビデオデコーダ側での変換係数符号予測のためのビデオ復号方法を提供する。
【課題を解決するための手段】
【0004】
ビデオ復号方法は、1つまたは複数のプロセッサによって、逆量子化(dequantize)された変換係数から、変換係数符号予測のための変換係数候補のセットを選択することを含んでもよい。逆量子化された変換係数は、ビデオからのビデオフレームの変換ブロックに関連付けられる。ビデオ復号方法は、1つまたは複数のプロセッサによって、テンプレートベースの仮説生成スキームを適用して、変換係数候補のセットに対する複数の仮説候補から仮説を選択することをさらに含んでもよい。ビデオ復号方法は、1つまたは複数のプロセッサによって、選択された仮説に関連付けられた符号候補の組み合わせを、変換係数候補のセットに対する予測符号のセットであると決定することをさらに含んでもよい。ビデオ復号方法は、1つまたは複数のプロセッサによって、ビデオエンコーダから受信した予測符号のセットおよび符号シグナリングビットのシーケンスに基づいて、変換係数候補のセットの元の符号を推定することをさらに含んでもよい。ビデオ復号方法は、1つまたは複数のプロセッサによって、推定された変換係数候補のセットの元の符号に基づいて、逆量子化された変換係数を更新することをさらに含んでもよい。
【0005】
本開示の実装形態は、ビデオデコーダ側での変換係数符号予測のためのビデオ復号装置も提供する。ビデオ復号装置は、複数のビデオフレームを含むビデオを記憶するように構成されたメモリと、メモリに結合された1つまたは複数のプロセッサとを含んでもよい。1つまたは複数のプロセッサは、変換係数符号予測のために逆量子化された変換係数から変換係数候補のセットを選択するように構成されてもよい。逆量子化された変換係数は、ビデオからのビデオフレームの変換ブロックに関連付けられる。1つまたは複数のプロセッサは、テンプレートベースの仮説生成スキームを適用して、変換係数候補のセットに対する複数の仮説候補から仮説を選択するようにさらに構成されてもよい。1つまたは複数のプロセッサは、選択された仮説に関連付けられた符号候補の組み合わせを、変換係数候補のセットに対する予測符号のセットであると決定するようにさらに構成されてもよい。1つまたは複数のプロセッサは、ビデオエンコーダから受信した予測符号のセットおよび符号シグナリングビットのシーケンスに基づいて、変換係数候補のセットの元の符号を推定するようにさらに構成されてもよい。1つまたは複数のプロセッサは、推定された変換係数候補のセットの元の符号に基づいて、逆量子化された変換係数を更新するようにさらに構成されてもよい。
【0006】
本開示の実装形態はまた、命令を記憶した非一時的コンピュータ可読記憶媒体も提供し、命令は、1つまたは複数のプロセッサによって実行されたとき、ビデオデコーダ側での変換係数符号予測のためのビデオ復号方法を1つまたは複数のプロセッサに実行させる。ビデオ復号方法は、逆量子化された符号予測の変換係数から変換係数候補のセットを選択することを含んでもよい。逆量子化された変換係数は、ビデオからのビデオフレームの変換ブロックに関連付けられる。ビデオ復号方法は、テンプレートベースの仮説生成スキームを適用して、変換係数候補のセットに対する複数の仮説候補から仮説を選択することをさらに含んでもよい。ビデオ復号方法は、選択された仮説に関連付けられた符号候補の組み合わせを、変換係数候補のセットに対する予測符号のセットであると決定するステップをさらに含んでもよい。ビデオ復号方法は、予測符号のセットおよびビデオエンコーダからビットストリームを通じて受信された符号シグナリングビットのシーケンスに基づいて、変換係数候補のセットの元の符号を推定することをさらに含んでもよい。ビデオ復号方法は、推定された変換係数候補のセットの元の符号に基づいて、逆量子化された変換係数を更新することをさらに含んでもよい。ビットストリームは、非一時的コンピュータ可読記憶媒体に記憶される。
【0007】
本開示の実装形態はまた、ビデオ方法によって復号可能なビットストリームを記憶した非一時的コンピュータ可読記憶媒体を提供する。ビデオ方法は、変換係数符号予測のために逆量子化された変換係数から変換係数候補のセットを選択するステップを含む。逆量子化された変換係数は、ビデオからのビデオフレームの変換ブロックに関連付けられる。ビデオ方法は、テンプレートベースの仮説生成スキームを適用して、変換係数候補のセットに対する複数の仮説候補から仮説を選択することを含む。ビデオ方法は、選択された仮説に関連付けられた符号候補の組み合わせを、変換係数候補のセットに対する予測符号のセットであると決定することを含む。ビデオ方法は、予測符号のセットおよびビデオエンコーダからビットストリームを通じて受信された符号シグナリングビットのシーケンスに基づいて、変換係数候補のセットの元の符号を推定することを含む。ビデオ方法は、推定された変換係数候補のセットの元の符号に基づいて、逆量子化された変換係数を更新することを含む。
【0008】
前述の概略的な説明と以下の詳細な説明はどちらも単なる例であり、本開示を限定するものではないことを理解されたい。
【0009】
本明細書に組み込まれ本明細書の一部を構成する添付図面は、本開示と一致する例を示し、説明とともに本開示の原理を説明する役割を果たす。
【図面の簡単な説明】
【0010】
【
図1】本開示のいくつかの実装形態に係るビデオブロックを符号化および復号するための例示的なシステムを示すブロック図である。
【
図2】本開示のいくつかの実装形態に係る例示的なビデオエンコーダを示すブロック図である。
【
図3】本開示のいくつかの実装形態に係る例示的なビデオデコーダを示すブロック図である。
【
図4A】本開示のいくつかの実装形態に係るフレームが異なるサイズおよび形状の複数のビデオブロックにどのように再帰的に区分されるかを示すグラフィカル表現である。
【
図4B】本開示のいくつかの実装形態に係るフレームが異なるサイズおよび形状の複数のビデオブロックにどのように再帰的に区分されるかを示すグラフィカル表現である。
【
図4C】本開示のいくつかの実装形態に係るフレームが異なるサイズおよび形状の複数のビデオブロックにどのように再帰的に区分されるかを示すグラフィカル表現である。
【
図4D】本開示のいくつかの実装形態に係るフレームが異なるサイズおよび形状の複数のビデオブロックにどのように再帰的に区分されるかを示すグラフィカル表現である。
【
図4E】本開示のいくつかの実装形態に係るフレームが異なるサイズおよび形状の複数のビデオブロックにどのように再帰的に区分されるかを示すグラフィカル表現である。
【
図5】いくつかの例に係る係数グループ内の変換係数の左上走査順序を示すグラフィカル表現である。
【
図6】いくつかの例に係る低周波非分離変換(LFNST:low-frequency non-separable transform)プロセスを示すグラフィカル表現である。
【
図7】いくつかの例に係る順方向LFNSTに入力される一次変換係数の左上領域を示すグラフィカル表現である。
【
図8】いくつかの例に係るイントラテンプレートマッチングの検索エリアを示すグラフィカル表現である。
【
図9】いくつかの例に係る符号予測の例示的なプロセスを示すグラフィカル表現である。
【
図10】いくつかの例に係る符号予測のためのコスト関数の算出を示すグラフィカル表現である。
【
図11】本開示のいくつかの実装形態に係るブロックベースのビデオ符号化における例示的な符号予測処理を示すブロック図である。
【
図12】本開示のいくつかの実装形態に係るテンプレートの線形結合に基づく例示的な仮説生成を示すグラフィカル表現である。
【
図13A】いくつかの例に係る既存の符号予測スキームの例示的な実装形態を示すグラフィック表現である。
【
図13B】本開示のいくつかの実装形態に係るベクトルベースの符号予測スキームの例示的な実装形態を示すグラフィカル表現である。
【
図14A】本開示のいくつかの実装形態に係る左対角方向に沿った左対角コスト関数の例示的な算出を示すグラフィカル表現である。
【
図14B】本開示のいくつかの実装形態に係る右対角方向に沿った右対角コスト関数の例示的な算出を示すグラフィカル表現である。
【
図15】本開示のいくつかの実装形態に係るブロックベースのビデオ符号化における符号予測のための例示的な方法のフローチャートである。
【
図16】本開示のいくつかの実装形態に係るブロックベースのビデオ符号化における符号予測のための別の例示的な方法のフローチャートである。
【
図17】本開示のいくつかの実装形態に係るユーザインターフェースと結合されたコンピューティング環境を示すブロック図である。
【
図18】本開示のいくつかの実装形態に係るビデオデコーダ側での変換係数符号予測のための例示的なビデオ復号方法のフローチャートである。
【発明を実施するための形態】
【0011】
次に、特定の実装形態を詳細に参照するが、その実装形態の例は添付の図面に示されている。以下の詳細な説明では、本明細書に提示される主題の理解を助けるために、非限定的な具体的な詳細が多数記載されている。しかしながら、特許請求の範囲から逸脱することなく様々な代替案が使用され得ること、および、これらの具体的な詳細なしに主題が実践され得ることは、当業者には明らかであろう。例えば、本明細書で提示される主題がデジタルビデオ能力を有する多くのタイプの電子デバイス上で実装され得ることは、当業者には明らかであろう。
【0012】
本開示の説明、特許請求の範囲、および添付の図面で使用される「第1」、「第2」などの用語は、対象物を区別するために使用されており、特定の順序またはシーケンスを説明するために使用されるものではないことが示されるべきである。このように使用されるデータは、本明細書に記載された本開示の実施形態が、添付図面に示されている順序または本開示に記載されている順序以外の順序で実施され得るように、適切な条件の下で交換されてもよいことを理解されたい。
【0013】
図1は、本開示のいくつかの実装形態に係るビデオブロックを並行して符号化および復号するための例示的なシステム10を示すブロック図である。
図1に示されるように、システム10は、宛先デバイス14によって後で復号されるビデオデータを生成および符号化するソースデバイス12を含む。ソースデバイス12および宛先デバイス14は、デスクトップまたはラップトップコンピュータ、タブレットコンピュータ、スマートフォン、セットトップ・ボックス、デジタルテレビ、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲーミングコンソール、ビデオストリーミングデバイスなどを含む、多種多様な電子デバイスのいずれかを含んでもよい。いくつかの実装形態では、ソースデバイス12および宛先デバイス14にはワイヤレス通信機能が装備されている。
【0014】
いくつかの実装形態では、宛先デバイス14は、復号対象となる符号化済みビデオデータを、リンク16を介して受信してもよい。リンク16は、符号化済みビデオデータをソースデバイス12から宛先デバイス14に転送することが可能な任意のタイプの通信媒体またはデバイスを含んでもよい。一例において、リンク16は、ソースデバイス12が符号化済みビデオデータを宛先デバイス14にリアルタイムで直接送信できるようにする通信媒体を含んでもよい。符号化済みビデオデータは、ワイヤレス通信プロトコルなどの通信標準に従って変調され、宛先デバイス14に送信されてもよい。通信媒体は、無線周波数(RF:Radio Frequency)スペクトルまたは1つもしくは複数の物理伝送線など、任意のワイヤレスまたはワイヤード通信媒体を含んでもよい。通信媒体は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはインターネットなどのグローバルネットワークなど、パケットベースのネットワークの一部を形成してもよい。通信媒体は、ルータ、スイッチ、基地局、またはソースデバイス12から宛先デバイス14への通信を容易にするのに有用であり得る任意の他の機器を含んでもよい。
【0015】
いくつかの他の実装形態では、符号化済みビデオデータは、出力インターフェース22から記憶デバイス32に送信されてもよい。その後、記憶デバイス32内の符号化済みビデオデータは、入力インターフェース28を介して宛先デバイス14によってアクセスされてもよい。記憶デバイス32は、ハードドライブ、ブルーレイディスク、デジタル多用途ディスク(DVD)、コンパクトディスク読み取り専用メモリ(CD-ROM)、フラッシュメモリ、揮発性もしくは不揮発性メモリ、または符号化済みビデオデータを記憶するための任意の他の好適なデジタル記憶媒体など、分散されたまたはローカルにアクセスされる様々なデータ記憶媒体のいずれかを含んでもよい。さらなる例では、記憶デバイス32は、ソースデバイス12によって生成された符号化済みビデオデータを記憶することができるファイルサーバまたは別の中間記憶デバイスに対応してもよい。宛先デバイス14は、ストリーミングまたはダウンロードを介して、記憶デバイス32から、記憶されたビデオデータにアクセスしてもよい。ファイルサーバは、符号化済みビデオデータを記憶し、符号化済みビデオデータを宛先デバイス14に送信することが可能な任意のタイプのコンピュータであってもよい。例示的なファイルサーバは、ウェブサーバ(例えば、ウェブサイト用)、ファイル転送プロトコル(FTP:File Transfer Protocol)サーバ、ネットワーク接続ストレージ(NAS:Network Attached Storage)デバイス、またはローカルディスクドライブを含む。宛先デバイス14は、ワイヤレスチャネル(例えば、ワイヤレスフィデリティ(Wi-Fi)接続)、ワイヤード接続(例えば、デジタル加入者線(DSL:Digital Subscriber Line)、ケーブルモデムなど)、またはファイルサーバに記憶されている符号化済みビデオデータにアクセスするのに好適なそれらの任意の組み合わせを含む任意の標準データ接続を通じて、符号化済みビデオデータにアクセスしてもよい。記憶デバイス32からの符号化済みビデオデータの送信は、ストリーミング送信、ダウンロード送信、または両方の組み合わせであってもよい。
【0016】
図1に示されるように、ソースデバイス12は、ビデオソース18、ビデオエンコーダ20、および出力インターフェース22を含む。ビデオソース18は、ビデオ捕捉デバイス、例えば、ビデオカメラ、以前に捕捉されたビデオを含むビデオアーカイブ、ビデオコンテンツプロバイダからビデオデータを受信するためのビデオフィードインターフェース、および/もしくはソースビデオとしてコンピュータグラフィックスデータを生成するためのコンピュータ・グラフィックス・システム、またはそのようなソースの組み合わせなどのソースを含んでもよい。一例として、ビデオソース18がセキュリティ監視システムのビデオカメラである場合、ソースデバイス12および宛先デバイス14は、カメラ電話またはビデオ電話を含んでもよい。しかしながら、本開示で説明される実装形態は、一般にビデオ符号化に適用可能であってもよく、ワイヤレスおよび/またはワイヤード・アプリケーションに適用可能であってもよい。
【0017】
捕捉されたビデオ、事前に捕捉されたビデオ、またはコンピュータ生成されたビデオは、ビデオエンコーダ20によって符号化されてもよい。符号化済みビデオデータは、ソースデバイス12の出力インターフェース22を介して宛先デバイス14に直接送信されてもよい。符号化済みビデオデータはまた(または代替として)、復号および/または再生のために宛先デバイス14または他のデバイスによって後でアクセスするために、記憶デバイス32に記憶されてもよい。出力インターフェース22は、モデムおよび/または送信機をさらに含んでもよい。
【0018】
宛先デバイス14は、入力インターフェース28、ビデオデコーダ30、およびディスプレイデバイス34を含む。入力インターフェース28は、受信機および/またはモデムを含み、リンク16を介して、符号化済みビデオデータを受信してもよい。リンク16を介して通信されるまたは記憶デバイス32上に提供される符号化済みビデオデータは、ビデオデータを復号する際にビデオデコーダ30によって使用するための、ビデオエンコーダ20によって生成される様々な構文要素を含んでもよい。このような構文要素は、通信媒体上で送信される、記憶媒体上に記憶される、またはファイルサーバ上に記憶される、符号化済みビデオデータ内に含まれてもよい。
【0019】
いくつかの実装形態では、宛先デバイス14は、ディスプレイデバイス34を含んでもよく、ディスプレイデバイス34は、一体化されたディスプレイデバイス、および宛先デバイス14と通信するように構成された外部ディスプレイデバイスであり得る。ディスプレイデバイス34は、復号されたビデオデータをユーザに表示し、液晶ディスプレイ(LCD:Liquid Crystal Display)、プラズマ・ディスプレイ、有機発光ダイオード(OLED:Organic Light Emitting Diode)ディスプレイ、または別のタイプのディスプレイデバイスなどの様々なディスプレイデバイスのいずれかを含んでもよい。
【0020】
ビデオエンコーダ20およびビデオデコーダ30は、VVC、HEVC、MPEG-4、Part10、AVC、またはそのような標準の拡張などの独自の標準または業界標準に従って動作してもよい。本開示は特定のビデオ符号化/復号標準に限定されず、他のビデオ符号化/復号標準にも適用可能であることを理解されたい。ソースデバイス12のビデオエンコーダ20が、これらの現在または将来の標準のいずれかに従ってビデオデータを符号化するように構成され得ることが一般に企図されている。同様に、宛先デバイス14のビデオデコーダ30が、これらの現在または将来の標準のいずれかに従ってビデオデータを復号するように構成され得ることも一般に企図されている。
【0021】
ビデオエンコーダ20およびビデオデコーダ30はそれぞれ、1つもしくは複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールド・プログラマブル・ゲート・アレイ(FPGA)、ディスクリート論理、ソフトウェア、ハードウェア、ファームウェア、またはそれらの任意の組み合わせなど、様々な好適なエンコーダおよび/またはデコーダ回路のいずれかとして実装されてもよい。電子デバイスは、ソフトウェアにおいて部分的に実装される場合、ソフトウェア用の命令を好適な非一時的コンピュータ可読媒体に記憶し、1つまたは複数のプロセッサを使用してハードウェアにおいて命令を実行して、本開示で開示されたビデオ符号化/復号動作を実施してもよい。ビデオエンコーダ20およびビデオデコーダ30のそれぞれは、1つもしくは複数のエンコーダまたはデコーダに含まれてもよく、そのいずれも、それぞれのデバイス内の組み合わされたエンコーダ/デコーダ(CODEC:combined encoder/decoder)の一部として統合されてもよい。
【0022】
図2は、本出願で説明されるいくつかの実装形態に係る、例示的なビデオエンコーダ20を示すブロック図である。ビデオエンコーダ20は、ビデオフレーム内のビデオブロックのイントラ予測符号化およびインター予測符号化を実施してもよい。イントラ予測符号化は、空間予測に依存して、所与のビデオフレームまたはピクチャ内のビデオデータにおける空間的冗長性を削減または除去する。インター予測符号化は、時間予測に依存して、ビデオシーケンスの隣接するビデオフレームまたはピクチャ内のビデオデータにおける時間的冗長性を削減または除去する。「フレーム」という用語は、ビデオ符号化の分野では「画像」または「ピクチャ」という用語と同義語として使用される場合があることに留意されたい。
【0023】
図2に示されるように、ビデオエンコーダ20は、ビデオデータメモリ40、予測処理ユニット41、復号化ピクチャバッファ(DPB:Decoded Picture Buffer)64、加算器50、変換処理ユニット52、量子化ユニット54、およびエントロピー符号化ユニット56を含む。予測処理ユニット41はさらに、動き推定ユニット42、動き補償ユニット44、区分ユニット45、イントラ予測処理ユニット46、イントラブロックコピー(BC)ユニット48を含む。いくつかの実装形態では、ビデオエンコーダ20は、ビデオブロック再構築のための逆量子化ユニット58、逆変換処理ユニット60、および加算器62も含む。ブロック境界をフィルタリングして、再構築されたビデオデータからブロックアーチファクトを除去するために、加算器62とDPB64との間にデブロッキングフィルタなどのループ内フィルタ63が配置されてもよい。加算器62の出力をフィルタリングするために、デブロッキングフィルタに加えて、SAOフィルタおよび/または適応ループ内フィルタ(ALF:Adaptive in-Loop Filter)などの別のループ内フィルタも使用されてもよい。いくつかの例では、ループ内フィルタは省略されてもよく、復号されたビデオブロックは、加算器62によってDPB64に直接提供されてもよい。ビデオエンコーダ20は、固定のもしくはプログラム可能なハードウェアユニットの形式をとってもよく、または、図示された固定のもしくはプログラム可能なハードウェアユニットの1つまたは複数に分割されてもよい。
【0024】
ビデオデータメモリ40は、ビデオエンコーダ20の構成要素によって符号化されるビデオデータを記憶してもよい。ビデオデータメモリ40内のビデオデータは、例えば、
図1に示されたビデオソース18から取得されてもよい。DPB64は、ビデオエンコーダ20によって(例えば、イントラ予測符号化モードまたはインター予測符号化モードで)ビデオデータを符号化する際に使用する参照ビデオデータ(例えば、参照フレームまたは参照ピクチャ)を記憶するバッファである。ビデオデータメモリ40およびDPB64は、様々なメモリ・デバイスのいずれかによって形成されてもよい。様々な例において、ビデオデータメモリ40は、ビデオエンコーダ20の他の構成要素とオンチップであってもよく、または、それらの構成要素に対してオフチップであってもよい。
【0025】
図2に示されるように、予測処理ユニット41内の区分ユニット45は、ビデオデータを受信した後、ビデオデータをビデオブロックに区分する。この区分は、ビデオデータに関連付けられた4分木(QT:Quad-Tree)構造などの事前定義された分裂構造に従ってビデオフレームをスライス、タイル(例えば、ビデオブロックのセット)、または他のより大きな符号化ユニット(CU)に区分することも含んでもよい。ビデオフレームは、サンプル値を有するサンプルの2次元配列または行列であるか、またはそれらとみなされてもよい。配列内のサンプルは、画素またはペルと呼ばれることもある。配列またはピクチャの水平方向および垂直方向(または軸)のサンプルの数が、ビデオフレームのサイズおよび/または解像度を定義する。ビデオフレームは、例えばQT区分を使用することによって複数のビデオブロックに分割されてもよい。ビデオブロックもやはり、ビデオフレームよりも小さい寸法ではあるが、サンプル値を有するサンプルの2次元配列または行列であるか、またはそれらとみなされてもよい。ビデオブロックの水平方向および垂直方向(または軸)のサンプルの数が、ビデオブロックのサイズを定義する。ビデオブロックは、例えば、QT区分、2分木(BT:Binary-Tree)区分、もしくは3分木(TT:Triple-Tree)区分、またはそれらの任意の組み合わせを反復的に使用することによって、(再びブロックを形成し得る)1つもしくは複数のブロック区分またはサブブロックにさらに区分されてもよい。本明細書で使用される「ブロック」または「ビデオブロック」という用語がフレームまたはピクチャの一部分、特に矩形(正方形または非正方形)部分であり得ることに留意されたい。例えば、HEVCおよびVVCを参照すると、ブロックまたはビデオブロックは、符号化木ユニット(CTU)、CU、予測ユニット(PU)、もしくは変換ユニット(TU)であるかもしくはそれらに対応してもよく、かつ/または、対応するブロック、例えば、符号化木ブロック(CTB)、符号化ブロック(CB)、予測ブロック(PB)、もしくは変換ブロック(TB)であるかもしくはそれらに対応してもよい。代替としてまたは追加として、ブロックまたはビデオブロックは、CTB、CB、PB、TBなどのサブブロックであるか、またはそれに対応してもよい。
【0026】
予測処理ユニット41は、誤差結果(例えば、符号化レートおよび歪みのレベル)に基づいて現在のビデオブロックに対して、複数のイントラ予測符号化モードのうちの1つ、または複数のインター予測符号化モードのうちの1つなど、複数の可能な予測符号化モードのうちの1つを選択してもよい。予測処理ユニット41は、結果として得られるイントラ予測符号化ブロックまたはインター予測符号化ブロック(例えば、予測ブロック)を、加算器50に提供して残差ブロックを生成し、加算器62に提供して、後で参照フレームの一部として使用するために符号化ブロックを再構築してもよい。予測処理ユニット41はまた、動きベクトル、イントラモードインジケータ、区分情報、および他のそのような構文情報などの構文要素をエントロピー符号化ユニット56に提供する。
【0027】
現在のビデオブロックにとって適切なイントラ予測符号化モードを選択するために、予測処理ユニット41内のイントラ予測処理ユニット46は、符号化対象となる現在ブロックと同じフレーム内の1つまたは複数の隣接ブロックに対する現在のビデオブロックのイントラ予測符号化を実行して、空間予測を提供してもよい。予測処理ユニット41内の動き推定ユニット42および動き補償ユニット44は、1つまたは複数の参照フレーム内の1つまたは複数の予測ブロックに対する現在のビデオブロックのインター予測符号化を実行して、時間予測を提供してもよい。ビデオエンコーダ20は、例えば、ビデオデータのブロックごとに適切な符号化モードを選択するために、複数の符号化パスを実行してもよい。
【0028】
いくつかの実装形態では、動き推定ユニット42は、ビデオフレームのシーケンス内の所定のパターンに従って、参照フレーム内の予測ブロックに対する現在のビデオフレーム内のビデオブロックの変位を示す動きベクトルを生成することによって、現在のビデオフレームのインター予測モードを決定する。動き推定ユニット42によって実行される動き推定は、ビデオブロックの動きを推定し得る動きベクトルを生成するプロセスであってもよい。動きベクトルは、例えば、参照フレーム内の予測ブロックに対する現在のビデオフレームまたはピクチャ内のビデオブロックの変位を示してもよい。所定のパターンは、シーケンス内のビデオフレームをPフレームまたはBフレームとして指定してもよい。イントラBCユニット48は、インター予測のための動き推定ユニット42による動きベクトルの決定と同様の方法で、イントラBC符号化のためのベクトル、例えばブロックベクトルを決定してもよく、または、動き推定ユニット42を利用してブロックベクトルを決定してもよい。
【0029】
ビデオブロックの予測ブロックは、差分絶対値和(SAD:Sum of Absolute Difference)、差分二乗和(SSD:Sum of Square Difference)、または他の差分メトリックによって決定され得る画素差分の観点から、符号化対象となるビデオブロックと厳密に一致するとみなされる参照フレームのブロックもしくは基準ブロックであるか、またはそれらに対応してもよい。いくつかの実装形態では、ビデオエンコーダ20は、DPB64に記憶された参照フレームのサブ整数画素位置の値を算出してもよい。例えば、ビデオエンコーダ20は、参照フレームの1/4画素位置、1/8画素位置、または他の分数画素位置の値を補間してもよい。したがって、動き推定ユニット42は、全体の画素位置および分数画素位置に対する動き探索を実行し、分数画素精度を有する動きベクトルを出力してもよい。
【0030】
動き推定ユニット42は、ビデオブロックの位置を第1の参照フレームリスト(リスト0)または第2の参照フレームリスト(リスト1)から選択された参照フレームの予測ブロックの位置と比較することによって、インター予測符号化フレーム内のビデオブロックの動きベクトルを算出し、参照フレームリストはそれぞれ、DPB64に記憶されている1つまたは複数の参照フレームを識別する。動き推定ユニット42は、算出された動きベクトルを動き補償ユニット44に送り、次いで、エントロピー符号化ユニット56に送る。
【0031】
動き補償ユニット44によって実行される動き補償は、動き推定ユニット42によって決定された動きベクトルに基づいて予測ブロックをフェッチまたは生成することを含んでもよい。動き補償ユニット44は、現在のビデオブロックの動きベクトルを受信すると、参照フレームリストのうちの1つにおいて動きベクトルが指し示す予測ブロックの位置を特定し、その予測ブロックをDPB64から取得し、その予測ブロックを加算器50に転送してもよい。次いで、加算器50は、符号化されている現在のビデオブロックの画素値から、動き補償ユニット44によって提供される予測ブロックの画素値を減算することによって、画素差分値の残差ブロックを形成する。残差ブロックを形成する画素差分値は、ルマ差分成分もしくはクロマ差分成分、またはその両方を含んでもよい。動き補償ユニット44はまた、ビデオフレームのビデオブロックを復号する際にビデオデコーダ30によって使用される、ビデオフレームのビデオブロックに関連付けられた構文要素を生成してもよい。構文要素は、例えば、予測ブロックを識別するために使用される動きベクトルを定義する構文要素、予測モードを示す任意のフラグ、または本明細書に記載の任意の他の構文情報を含んでもよい。動き推定ユニット42および動き補償ユニット44は統合されてもよく、概念的な目的のために
図2に別々に図示されていることに留意されたい。
【0032】
いくつかの実装形態では、イントラBCユニット48は、動き推定ユニット42および動き補償ユニット44に関連して上記で説明された方法と同様の方法で、ベクトルを生成して予測ブロックをフェッチしてもよいが、予測ブロックは、符号化されている現在ブロックと同じフレーム内にあり、ベクトルは、動きベクトルではなくブロックベクトルと呼ばれる。具体的には、イントラBCユニット48は、現在ブロックを符号化するために使用するイントラ予測モードを決定してもよい。いくつかの例では、イントラBCユニット48は、例えば別個の符号化パス中に、様々なイントラ予測モードを使用して現在ブロックを符号化し、レート歪み分析を通じてそれらの性能をテストしてもよい。次に、イントラBCユニット48は、テストされた様々なイントラ予測モードの中から、使用する適切なイントラ予測モードを選択し、それに応じてイントラモードインジケータを生成してもよい。例えば、イントラBCユニット48は、テストされた様々なイントラ予測モードに対するレート歪み分析を使用してレート歪み値を算出し、テストされたモードの中から、最良のレート歪み特性を有するイントラ予測モードを、使用する適切なイントラ予測モードとして選択してもよい。レート歪み分析は、一般に、符号化ブロックと、符号化ブロックを作成するために符号化された元の符号化されていないブロックとの間の歪み(または誤差)の量、および、符号化ブロックを作成するために使用されたビットレート(すなわち、ビット数)を決定する。イントラBCユニット48は、様々な符号化ブロックの歪みおよびレートから比率を算出して、どのイントラ予測モードがそのブロックに対して最良のレート歪み値を示すかを判定してもよい。
【0033】
他の例では、イントラBCユニット48は、動き推定ユニット42および動き補償ユニット44を全体的または部分的に使用して、本明細書に記載の実装形態に係るイントラBC予測のためのそのような機能を実行してもよい。いずれの事例においても、イントラブロックコピーの場合、予測ブロックは、SAD、SSD、または他の差分メトリックによって決定され得る画素差分の観点から、符号化対象となるブロックと厳密に一致するとみなされるブロックであってもよく、予測ブロックの識別は、サブ整数画素位置の値の算出を含んでもよい。
【0034】
予測ブロックがイントラ予測による同じフレームからのブロックであるか、インター予測による異なるフレームからのブロックであるかに関わらず、ビデオエンコーダ20は、符号化されている現在のビデオブロックの画素値から予測ブロックの画素値を減算することによって残差ブロックを形成し、画素差分値を形成してもよい。残差ブロックを形成する画素差分値は、ルマ成分差分とクロマ成分差分との両方を含んでもよい。
【0035】
イントラ予測処理ユニット46は、上記で説明されたように、動き推定ユニット42および動き補償ユニット44によって実行されるインター予測、またはイントラBCユニット48によって実行されるイントラブロックコピー予測の代替として、現在のビデオブロックをイントラ予測してもよい。具体的には、イントラ予測処理ユニット46は、現在ブロックを符号化するために使用するイントラ予測モードを決定してもよい。例えば、イントラ予測処理ユニット46は、例えば別個の符号化パス中に、様々なイントラ予測モードを使用して現在ブロックを符号化してもよく、イントラ予測処理ユニット46(または、いくつかの例では、モード選択ユニット)は、テストされたイントラ予測モードから、使用する適切なイントラ予測モードを選択してもよい。イントラ予測処理ユニット46は、ブロックに対して選択されたイントラ予測モードを示す情報をエントロピー符号化ユニット56に提供してもよい。エントロピー符号化ユニット56は、選択されたイントラ予測モードを示す情報をビットストリームに符号化してもよい。
【0036】
予測処理ユニット41がインター予測またはイントラ予測によって現在のビデオブロックの予測ブロックを決定した後、加算器50は、現在のビデオブロックから予測ブロックを減算することによって残差ブロックを形成する。残差ブロック内の残差ビデオデータは、1つまたは複数のTUに含まれてもよく、変換処理ユニット52に提供される。変換処理ユニット52は、離散コサイン変換(DCT:Discrete Cosine Transform)または概念的に同様の変換などの変換を使用して、残差ビデオデータを変換係数に変換する。
【0037】
変換処理ユニット52は、結果として生じる変換係数を量子化ユニット54に送ってもよい。量子化ユニット54は、変換係数を量子化してビットレートをさらに低減する。量子化プロセスはまた、係数の一部またはすべてに関連付けられたビット深度を低減してもよい。量子化の程度は、量子化パラメータを調整することによって修正されてもよい。いくつかの例では、量子化ユニット54は、次いで、量子化された変換係数を含む行列の走査を実行してもよい。代替として、エントロピー符号化ユニット56が走査を実行してもよい。
【0038】
量子化に続いて、エントロピー符号化ユニット56は、例えば、コンテキスト適応型可変長符号化(CAVLC:Context Adaptive Variable Length Coding)、コンテキスト適応型2値算術符号化(CABAC:Context Adaptive Binary Arithmetic Coding)、構文ベースのコンテキスト適応型2値算術符号化(SBAC:Syntax-based context-adaptive Binary Arithmetic Coding)、確率間隔区分エントロピー(PIPE:Probability Interval Partitioning Entropy)符号化、または別のエントロピー符号化方法論または技法を使用して、量子化された変換係数をビデオビットストリームに符号化するエントロピー符号化技法を使用してもよい。次いで、符号化されたビットストリームは、
図1に示されるようにビデオデコーダ30に送信されるか、または、後のビデオデコーダ30への送信もしくはビデオデコーダ30による取得のために、
図1に示されるように記憶デバイス32にアーカイブされてもよい。エントロピー符号化ユニット56はまた、エントロピー符号化技法を使用して符号化されている現在のビデオフレームの動きベクトルおよび他の構文要素を符号化してもよい。
【0039】
逆量子化ユニット58および逆変換処理ユニット60は、それぞれ逆量子化および逆変換を適用して、他のビデオブロックの予測のための基準ブロックを生成するために画素領域において残差ブロックを再構築する。再構築された残差ブロックは、そのように生成されてもよい。上述されたように、動き補償ユニット44は、DPB64に記憶されたフレームの1つまたは複数の基準ブロックから、動き補償された予測ブロックを生成してもよい。動き補償ユニット44はまた、1つまたは複数の補間フィルタを予測ブロックに適用して、動き推定で使用するためのサブ整数画素値を算出してもよい。
【0040】
加算器62は、再構築された残差ブロックを、動き補償ユニット44によって作成された動き補償された予測ブロックに加算して、DPB64に記憶するための基準ブロックを作成する。次いで、基準ブロックは、イントラBCユニット48、動き推定ユニット42、および動き補償ユニット44によって、後続のビデオフレーム内の別のビデオブロックをインター予測するための予測ブロックとして使用されてもよい。
【0041】
図3は、本出願のいくつかの実装形態に係る、例示的なビデオデコーダ30を示すブロック図である。ビデオデコーダ30は、ビデオデータメモリ79、エントロピー復号ユニット80、予測処理ユニット81、逆量子化ユニット86、逆変換処理ユニット88、加算器90、およびDPB92を含む。予測処理ユニット81はさらに、動き補償ユニット82、イントラ予測ユニット84、およびイントラBCユニット85を含む。ビデオデコーダ30は、
図2に関連してビデオエンコーダ20に関して上記で説明された符号化プロセスとほぼ逆の復号プロセスを実行してもよい。例えば、動き補償ユニット82は、エントロピー復号ユニット80から受信された動きベクトルに基づいて予測データを生成してもよく、一方、イントラ予測ユニット84は、エントロピー復号ユニット80から受信されたイントラ予測モード・インジケータに基づいて予測データを生成してもよい。
【0042】
いくつかの例では、ビデオデコーダ30のユニットは、本出願の実装形態を実行するようにタスクを課されてもよい。また、いくつかの例では、本開示の実装形態は、ビデオデコーダ30のユニットのうちの1つまたは複数に分割されてもよい。例えば、イントラBCユニット85は、単独で、または動き補償ユニット82、イントラ予測ユニット84、およびエントロピー復号ユニット80などのビデオデコーダ30の他のユニットと組み合わせて、本出願の実装形態を実行してもよい。いくつかの例では、ビデオデコーダ30は、イントラBCユニット85を含まなくてもよく、イントラBCユニット85の機能は、動き補償ユニット82などの予測処理ユニット81の他の構成要素によって実行されてもよい。
【0043】
ビデオデータメモリ79は、ビデオデコーダ30の他の構成要素によって復号される、符号化されたビデオビットストリームなどのビデオデータを記憶してもよい。ビデオデータメモリ79に記憶されるビデオデータは、例えば、記憶デバイス32から、カメラなどのローカルビデオソースから、ビデオデータのワイヤードもしくはワイヤレス・ネットワーク通信を介して、または物理的なデータ記憶媒体(例えば、フラッシュ・ドライブもしくはハード・ディスク)にアクセスすることによって取得されてもよい。ビデオデータメモリ79は、符号化されたビデオビットストリームからの符号化済みビデオデータを記憶する符号化ピクチャ・バッファ(CPB)を含んでもよい。ビデオデコーダ30のDPB92は、ビデオデコーダ30によって(例えば、イントラ予測符号化モードまたはインター予測符号化モードで)ビデオデータを復号する際に使用する参照ビデオデータを記憶する。ビデオデータメモリ79およびDPB92は、同期DRAM(SDRAM)、磁気抵抗RAM(MRAM)、抵抗RAM(RRAM)、または他のタイプのメモリ・デバイスを含むダイナミック・ランダムアクセスメモリ(DRAM)などの様々なメモリ・デバイスのいずれかによって形成されてもよい。例示のために、
図3では、ビデオデータメモリ79およびDPB92は、ビデオデコーダ30の2つの別個の構成要素として描写されている。しかしながら、当業者には、ビデオデータメモリ79およびDPB92が同じメモリ・デバイスまたは別個のメモリ・デバイスによって提供され得ることが明らかであろう。いくつかの例では、ビデオデータメモリ79は、ビデオデコーダ30の他の構成要素とオンチップであってもよく、または、それらの構成要素に対してオフチップであってもよい。
【0044】
復号プロセス中、ビデオデコーダ30は、符号化されたビデオフレームのビデオブロックおよび関連する構文要素を表す符号化されたビデオビットストリームを受信する。ビデオデコーダ30は、ビデオフレーム・レベルおよび/またはビデオブロック・レベルで構文要素を受信してもよい。ビデオデコーダ30のエントロピー復号ユニット80は、ビットストリームを復号するエントロピー復号技法を使用して、量子化係数、動きベクトルまたはイントラ予測モード・インジケータ、および他の構文要素を取得してもよい。次いで、エントロピー復号ユニット80は、動きベクトルまたはイントラ予測モード・インジケータおよび他の構文要素を予測処理ユニット81に転送する。
【0045】
ビデオフレームがイントラ予測符号化(例えば、I)フレームとしてまたは他のタイプのフレーム内のイントラ符号化予測ブロックに対して符号化されるとき、予測処理ユニット81のイントラ予測ユニット84は、信号伝達されたイントラ予測モード、および現在のフレームの以前に復号されたブロックからの参照データに基づいて、現在のビデオフレームのビデオブロックに対する予測データを生成してもよい。
【0046】
ビデオフレームがインター予測符号化(すなわち、BまたはP)フレームとして符号化されるとき、予測処理ユニット81の動き補償ユニット82は、エントロピー復号ユニット80から受信された動きベクトルおよび他の構文要素に基づいて、現在のビデオフレームのビデオブロックに対する1つまたは複数の予測ブロックを作成する。予測ブロックのそれぞれは、参照フレームリストのうちの1つの中の参照フレームから作成されてもよい。ビデオデコーダ30は、DPB92に記憶された参照フレームに基づくデフォルトの構築技法を使用して、参照フレームリストである、例えばリスト0およびリスト1を構築してもよい。
【0047】
いくつかの例では、ビデオブロックが本明細書に記載のイントラBCモードに従って符号化されるとき、予測処理ユニット81のイントラBCユニット85は、エントロピー復号ユニット80から受信されたブロックベクトルおよび他の構文要素に基づいて、現在のビデオブロックの予測ブロックを作成する。予測ブロックは、ビデオエンコーダ20によって処理された現在のビデオブロックと同じピクチャの再構築された領域内にあってもよい。
【0048】
動き補償ユニット82および/またはイントラBCユニット85は、動きベクトルおよび他の構文要素を解析することによって現在のビデオフレームのビデオブロックの予測情報を決定し、次いで、その予測情報を使用して、復号されている現在のビデオブロックの予測ブロックを作成する。例えば、動き補償ユニット82は、受信された構文要素のいくつかを使用して、ビデオフレームのビデオブロックを符号化するために使用される予測モード(例えば、イントラ予測またはインター予測)、インター予測フレーム・タイプ(例えば、BまたはP)、フレームの参照フレームリストのうちの1つまたは複数に関する構築情報、フレームの各インター予測符号化ビデオブロックの動きベクトル、フレームの各インター予測符号化ビデオブロックのインター予測ステータス、および現在のビデオフレーム内のビデオブロックを復号するための他の情報を決定する。
【0049】
同様に、イントラBCユニット85は、受信された構文要素のいくつか、例えばフラグを使用して、現在のビデオブロックがイントラBCモードを使用して予測されたこと、フレームのどのビデオブロックが再構築領域内にありDPB92に記憶されるべきであるかに関する構築情報、フレームの各イントラBC予測ビデオブロックのブロックベクトル、フレームの各イントラBC予測ビデオブロックのイントラBC予測ステータス、および現在のビデオフレーム内のビデオブロックを復号するための他の情報を決定してもよい。
【0050】
動き補償ユニット82はまた、ビデオブロックの符号化中にビデオエンコーダ20によって使用される補間フィルタを使用して補間を実行して、基準ブロックのサブ整数画素の補間値を算出してもよい。この場合、動き補償ユニット82は、受信された構文要素からビデオエンコーダ20によって使用される補間フィルタを決定し、その補間フィルタを使用して予測ブロックを作成してもよい。
【0051】
逆量子化ユニット86は、ビデオフレーム内のビデオブロックごとにビデオエンコーダ20によって算出された同じ量子化パラメータを使用して、ビットストリーム内に提供されエントロピー復号ユニット80によって復号された量子化変換係数を逆量子化して、量子化度を決定する。逆変換処理ユニット88は、画素領域内の残差ブロックを再構築するために、逆変換、例えば、逆DCT、逆整数変換、または概念的に同様の逆変換プロセスを変換係数に適用する。
【0052】
動き補償ユニット82またはイントラBCユニット85がベクトルおよび他の構文要素に基づいて現在のビデオブロックの予測ブロックを生成した後、加算器90は、逆変換処理ユニット88からの残差ブロックと動き補償ユニット82およびイントラBCユニット85によって生成された対応する予測ブロックとを加算することによって、現在のビデオブロックの復号されたビデオブロックを再構築する。復号されたビデオブロックは、現在のビデオブロックの再構築されたブロックと呼ばれることもある。復号されたビデオブロックをさらに処理するために、加算器90とDPBの間にデブロッキングフィルタ、SAOフィルタ、および/またはALFなどのループ内フィルタ91が配置されてもよい。いくつかの例では、ループ内フィルタ91は省略されてもよく、復号されたビデオブロックは加算器90によってDPB92に直接提供されてもよい。次いで、所与のフレーム内の復号されたビデオブロックは、次のビデオブロックの後続の動き補償に使用される参照フレームを記憶するDPB92に記憶される。DPB92またはDPB92とは別個のメモリ・デバイスは、
図1のディスプレイデバイス34などのディスプレイデバイス上に後で提示するために、復号されたビデオを記憶してもよい。
【0053】
(例えば、ビデオ符号化プロセスおよびビデオ復号プロセスを含む)典型的なビデオ符号化プロセスでは、ビデオシーケンスは、典型的には、順序付けされたフレームまたはピクチャのセットを含む。各フレームは、SL、SCb、およびSCrで示される3つのサンプル配列を含んでもよい。SLは、ルマサンプルの2次元配列である。SCbは、Cbクロマサンプルの2次元配列である。SCrは、Crクロマサンプルの2次元配列である。他の例では、フレームは、単色であってもよく、したがってルマサンプルの2次元配列を1つだけ含む。
【0054】
図4Aに示されるように、ビデオエンコーダ20(または、より具体的には区分ユニット45)は、最初にフレームを1組のCTUに区分することによって、フレームの符号化された表現を生成する。ビデオフレームは、ラスタ走査順序で左から右および上から下に連続して配置された整数個のCTUを含んでもよい。各CTUは最も大きい論理符号化単位であり、ビデオシーケンス内のすべてのCTUが128×128、64×64、32×32、および16×16のいずれか1つである同じサイズを有するように、CTUの幅および高さはシーケンスパラメータセットにおいてビデオエンコーダ20によって信号伝達される。しかしながら、本開示におけるCTUが必ずしも特定のサイズに限定されるわけではないことに留意されたい。
図4Bに示されるように、各CTUは、ルマサンプルの1つのCTBと、クロマサンプルの2つの対応する符号化木ブロックと、符号化木ブロックのサンプルを符号化するために使用される構文要素とを含んでもよい。構文要素は、画素の符号化されたブロックの異なるタイプの単位の特性、ならびにインター予測またはイントラ予測、イントラ予測モード、動きベクトル、および他のパラメータを含む、ビデオデコーダ30においてビデオシーケンスがどのように再構築され得るかを記述する。単色ピクチャまたは3つの別個の色平面を有するピクチャでは、CTUは、単一の符号化木ブロックと、符号化木ブロックのサンプルを符号化するために使用される構文要素とを含んでもよい。符号化木ブロックは、サンプルのN×Nブロックであってもよい。
【0055】
より良好な性能を実現するために、ビデオエンコーダ20は、CTUの符号化木ブロック上で2分木区分、3分木区分、4分木区分、またはそれらの組み合わせなどの木区分を再帰的に実行し、CTUをより小さいCUに分割してもよい。
図4Cに描写されるように、64×64のCTU400は、最初に、それぞれが32×32のブロックサイズを有する4つのより小さいCUに分割される。4つのより小さいCUのうち、CU410およびCU420はそれぞれ、ブロックサイズによって16×16の4つのCUに分割される。2つの16×16のCU430およびCU440はそれぞれ、ブロックサイズによって8×8の4つのCUにさらに分割される。
図4Dは、
図4Cに描写されたCTU400の区分プロセスの最終結果を示す4分木データ構造を描写しており、4分木の各葉ノードは、32×32から8×8までの範囲のそれぞれのサイズの1つのCUに対応する。
図4Bに描写されたCTUと同様に、各CUは、ルマサンプルのCBと、同じサイズのフレームのクロマサンプルの2つの対応する符号化ブロックと、符号化ブロックのサンプルを符号化するために使用される構文要素とを含んでもよい。単色ピクチャまたは3つの別個の色平面を有するピクチャでは、CUは、単一の符号化ブロックと、符号化ブロックのサンプルを符号化するために使用される構文構造とを含んでもよい。
図4Cおよび
図4Dに描写された4分木区分は説明のみを目的としており、様々な局所特定に適応するために、1つのCTUが4分木/3分木/2分木区分に基づいてCUに分裂され得ることに留意されたい。マルチタイプ木構造では、1つのCTUは4分木構造によって区分され、各4分木葉CUは2分木構造および3分木構造によってさらに区分され得る。
図4Eに示されるように、幅Wおよび高さHを有する符号化ブロックの複数の可能な区分タイプ、すなわち、4区分、垂直2区分、水平2区分、垂直3区分、垂直拡張3区分、水平3区分、および水平拡張3区分がある。
【0056】
いくつかの実装形態では、ビデオエンコーダ20は、CUの符号化ブロックを1つまたは複数のM×NのPBにさらに区分してもよい。PBは、インター予測またはイントラ予測の同じ予測が適用されるサンプルの矩形(正方形または非正方形)ブロックを含んでもよい。CUのPUは、ルマサンプルのPBと、クロマサンプルの2つの対応するPBと、PBを予測するために使用される構文要素とを含んでもよい。単色ピクチャまたは3つの別個の色平面を有するピクチャでは、PUは、単一のPBと、PBを予測するために使用される構文構造とを含んでもよい。ビデオエンコーダ20は、CUの各PUのルマ、Cb、およびCrのPBに対する予測ルマブロック、予測Cbブロック、および予測Crブロックを生成してもよい。
【0057】
ビデオエンコーダ20は、イントラ予測またはインター予測を使用してPUの予測ブロックを生成してもよい。ビデオエンコーダ20がイントラ予測を使用してPUの予測ブロックを生成する場合、ビデオエンコーダ20は、PUに関連付けられたフレームの復号されたサンプルに基づいてPUの予測ブロックを生成してもよい。ビデオエンコーダ20がインター予測を使用してPUの予測ブロックを生成する場合、ビデオエンコーダ20は、PUに関連付けられたフレーム以外の1つまたは複数のフレームの復号されたサンプルに基づいてPUの予測ブロックを生成してもよい。
【0058】
ビデオエンコーダ20がCUの1つまたは複数のPUに対して予測ルマブロック、予測Cbブロック、および予測Crブロックを生成した後、ビデオエンコーダ20は、CUのルマ残差ブロック内の各サンプルがCUの予測ルマブロックのうちの1つ内のルマサンプルとCUの元のルマ符号化ブロック内の対応するサンプルとの間の差分を示すように、CUの予測ルマブロックをその元のルマ符号化ブロックから減算することによってCUのルマ残差ブロックを生成してもよい。同様に、ビデオエンコーダ20は、CUのCb残差ブロック内の各サンプルがCUの予測Cbブロックのうちの1つ内のCbサンプルとCUの元のCb符号化ブロック内の対応するサンプルとの間の差分を示すように、またCUのCr残差ブロック内の各サンプルがCUの予測Crブロックのうちの1つ内のCrサンプルとCUの元のCr符号化ブロック内の対応するサンプルとの間の差分を示し得るように、CUのCb残差ブロックおよびCr残差ブロックをそれぞれ生成してもよい。
【0059】
さらに、
図4Cに示されるように、ビデオエンコーダ20は、4分木区分を使用して、CUのルマ残差ブロック、Cb残差ブロック、およびCr残差ブロックをそれぞれ1つまたは複数のルマ変換ブロック、Cb変換ブロック、およびCr変換ブロックに分解してもよい。変換ブロックは、同じ変換が適用されるサンプルの矩形(正方形または非正方形)ブロックを含んでもよい。CUのTUは、ルマサンプルの変換ブロックと、クロマサンプルの2つの対応する変換ブロックと、変換ブロック・サンプルを変換するために使用される構文要素とを含んでもよい。したがって、CUの各TUは、ルマ変換ブロック、Cb変換ブロック、およびCr変換ブロックに関連付けられてもよい。いくつかの例では、TUに関連付けられたルマ変換ブロックは、CUのルマ残差ブロックのサブブロックであってもよい。Cb変換ブロックは、CUのCb残差ブロックのサブブロックであってもよい。Cr変換ブロックは、CUのCr残差ブロックのサブブロックであってもよい。単色ピクチャまたは3つの別個の色平面を有するピクチャでは、TUは、単一の変換ブロックと、変換ブロックのサンプルを変換するために使用される構文構造とを含んでもよい。
【0060】
ビデオエンコーダ20は、TUのルマ変換ブロックに1つまたは複数の変換を適用して、TUのルマ係数ブロックを生成してもよい。係数ブロックは変換係数の2次元配列であってもよい。変換係数はスカラ量であってもよい。ビデオエンコーダ20は、TUのCb変換ブロックに1つまたは複数の変換を適用して、TUのCb係数ブロックを生成してもよい。ビデオエンコーダ20は、TUのCr変換ブロックに1つまたは複数の変換を適用して、TUのCr係数ブロックを生成してもよい。
【0061】
ビデオエンコーダ20は、係数ブロック(例えば、ルマ係数ブロック、Cb係数ブロック、またはCr係数ブロック)を生成した後、係数ブロックを量子化してもよい。量子化は、一般に、変換係数を表現するために使用されるデータ量を可能性として削減してさらなる圧縮を実現するために、変換係数が量子化されるプロセスを指す。ビデオエンコーダ20が係数ブロックを量子化した後、ビデオエンコーダ20は、エントロピー符号化技法を適用して量子化された変換係数を示す構文要素を符号化してもよい。例えば、ビデオエンコーダ20は、量子化された変換係数を示す構文要素に対してCABACを実行してもよい。最後に、ビデオエンコーダ20は、符号化されたフレームおよび関連データの表現を形成するビットのシーケンスを含むビットストリームを出力してもよく、ビットストリームは、記憶デバイス32に保存されるか、または宛先デバイス14に送信される。
【0062】
ビデオデコーダ30は、ビデオエンコーダ20によって生成されたビットストリームを受信した後、ビットストリームを解析してビットストリームから構文要素を取得してもよい。ビデオデコーダ30は、ビットストリームから取得された構文要素に少なくとも部分的に基づいてビデオデータのフレームを再構築してもよい。ビデオデータを再構築するプロセスは、ビデオエンコーダ20によって実行される符号化プロセスとほぼ逆である。例えば、ビデオデコーダ30は、現在のCUのTUに関連付けられた係数ブロックに対して逆変換を実行して、現在のCUのTUに関連付けられた残差ブロックを再構築してもよい。ビデオデコーダ30はまた、現在のCUのPUの予測ブロックのサンプルを現在のCUのTUの変換ブロックの対応するサンプルに加算することによって、現在のCUの符号化ブロックを再構築する。ビデオデコーダ30は、フレームの各CUについて符号化ブロックを再構築した後、フレームを再構築してもよい。
【0063】
上述されたように、ビデオ符号化は、主に2つのモード、すなわちフレーム内予測(またはイントラ予測)およびフレーム間予測(またはインター予測)を使用してビデオ圧縮を実現する。イントラブロックコピー(IBC)はフレーム内予測または第3のモードとみなされ得ることに留意されたい。参照ビデオブロックから現在のビデオブロックを予測するために動きベクトルを使用するので、2つのモードのうち、フレーム間予測の方がフレーム内予測よりも符号化効率に大きく寄与する。
【0064】
しかしながら、ビデオデータ捕捉技術が常に向上しており、ビデオデータの詳細を保持するためのビデオブロックサイズがより微細化されているため、現在のフレームの動きベクトルを表現するために必要なデータ量も大幅に増加している。この課題を克服する方法の1つは、空間領域と時間領域との両方における隣接するCUのグループが予測目的のために類似するビデオデータを有するだけでなく、これらの隣接するCU間の動きベクトルも類似しているという事実から恩恵を受けることである。したがって、空間的に隣接するCUおよび/または時間的に同じ場所にあるCUの動き情報を、それらの空間的相関および時間的相関を調査することによって現在のCUの動き情報(例えば、動きベクトル)の近似値として使用することが可能であり、これは、現在のCUの「動きベクトル予測子(MVP:Motion Vector Predictor)」とも呼ばれる。
【0065】
現在のCUの実際の動きベクトルをビデオビットストリームに符号化する代わりに(例えば、実際の動きベクトルは、
図2に関連して上記で説明されたように動き推定ユニット42によって決定される)、現在のCUの動きベクトル差分(MVD:Motion Vector Difference)を作成するために、現在のCUの実際の動きベクトルから現在のCUの動きベクトル予測子が減算される。そうすることにより、動き推定ユニット42によってフレームのCUごとに決定された動きベクトルをビデオビットストリームに符号化する必要がなくなり、ビデオビットストリーム内の動き情報を表現するために使用されるデータ量が大幅に削減され得る。
【0066】
符号ブロックのフレーム間予測中に参照フレーム内の予測ブロックを選ぶプロセスと同様に、現在のCUの空間的に隣接するCUおよび/または時間的に同じ位置にあるCUに関連付けられた潜在的な候補動きベクトルを使用して現在のCUの動きベクトル候補リスト(「マージ・リスト」とも呼ばれる)を構築し、次いで、動きベクトル候補リストから現在のCUの動きベクトル予測子として1つの要素を選択するために、ビデオエンコーダ20とビデオデコーダ30との両方によって一連の規則が採用され得る。そうすることにより、動きベクトル候補リスト自体をビデオエンコーダ20からビデオデコーダ30に送信する必要がなくなり、ビデオエンコーダ20およびビデオデコーダ30が現在のCUを符号化および復号するために動きベクトル候補リスト内の同じ動きベクトル予測子を使用するには、動きベクトル候補リスト内の選択された動きベクトル予測子のインデックスで十分である。したがって、選択された動きベクトル予測子のインデックスのみがビデオエンコーダ20からビデオデコーダ30に送られる必要がある。
【0067】
ブロックベースのビデオ符号化プロセスにおける(例えば、拡張圧縮モデル(ECM:Enhanced Compression Model)における)変換係数符号化に関する簡単な説明が、本明細書に提供される。具体的には、各変換ブロックは、最初に、複数の係数グループ(CG:coefficient group)に分割され、各係数グループは、ルマ成分の4×4サブブロックおよびクロマ成分の2×2サブブロックの変換係数を含む。変換ブロック内の変換係数の符号化は、係数グループ単位で実施される。例えば、変換ブロック内の係数グループは、第1の所定の走査順序に基づいて走査および符号化される。各係数グループを符号化するとき、係数グループの変換係数は、各サブブロック内の第2の所定の走査順序に基づいて走査される。ECMでは、変換ブロック内の係数グループと各係数グループ内の異なる変換係数とを走査するために、同じ左上走査順序が適用される(例えば、第1の所定の走査順序と第2の所定の走査順序はどちらも、左上走査順序である)。
図5は、いくつかの例に係る、係数グループ内の変換係数の左上走査順序を示すグラフィカル表現である。
図5の0から15の数字は、係数グループ内の各変換係数の対応する走査順序を示す。
【0068】
ECMにおける変換係数符号化方式によれば、最初に、変換ブロックごとに、その変換ブロックが非ゼロ変換係数を含むかどうかを示すためのフラグが信号伝達される。変換ブロック内に少なくとも非ゼロ変換係数がある場合、左上走査順序に従って走査された最後の非ゼロ変換係数の位置は、ビデオエンコーダ20からビデオデコーダ30に明示的に信号伝達される。最後の非ゼロ変換係数の位置が信号伝達されると、最後の係数グループ(すなわち、最後の非ゼロ係数を含む係数グループ)の前に符号化されるすべての係数グループについてフラグがさらに信号伝達される。同様に、フラグの数字は、各係数グループが非ゼロ変換係数を含むかどうかを示す。係数グループのフラグがゼロに等しい場合(係数グループ内のすべての変換係数がゼロであることを示す)、その係数グループに関してそれ以上の情報が送られる必要はない。それ以外の場合(例えば、係数グループのフラグが1に等しい場合)、絶対値、および係数グループ内の各変換係数の符号が、走査順序に従ってビットストリームで信号伝達される。しかしながら、既存の設計では、変換係数の符号がバイパス符号化され(例えば、コンテキスト・モデルが適用されない)、現在の設計における非効率的な変換符号化につながる。本開示によれば、変換符号化効率が改善され得るような、変換係数の符号予測を伴う改良されたLFNSTプロセスが以下でより詳細に説明される。
【0069】
図6は、いくつかの例に係る、LFNSTプロセスを示すグラフィカル表現である。VVCでは、一次変換後に、イントラ符号化されたブロックの変換係数のエネルギーを圧縮するために、二次変換ツール(例えば、LFNST)が適用される。
図6に示されるように、ビデオエンコーダ20において、順方向一次変換603と量子化605との間に順方向LFNST604が適用され、ビデオデコーダ30において、逆量子化607と逆一次変換609との間に逆LFNST608が適用される。例えば、LFNSTプロセスは、順方向LFNST604と逆LFNST608との両方を含んでもよい。いくつかの例として、4×4の順方向LFNST604の場合、16個の入力係数があり得、8×8の順方向LFNST604の場合、64個の入力係数があり得、4×4の逆LFNST608の場合、8個の入力係数があり得、8×8の逆LFNST608の場合、16個の入力係数があり得る。
【0070】
順方向LFNST604では、符号化ブロックのサイズに基づいて、可変変換サイズの非分離変換が適用され、これは、行列乗算プロセスを使用して表され得る。例えば、順方向LFNST604が4×4ブロックに適用されると仮定する。4×4ブロック内のサンプルは、次の式(1)に示されるように行列Xを使用して表現され得る。
【数1】
【0071】
【0072】
上記の式(1)または(2)において、Xは、順方向一次変換603を通じて得られる係数行列を指し、X
ijは、行列Xにおける一次変換係数を指す。次いで、式(3)に従って順方向LFNST604が次のように適用される。
【数3】
【0073】
【0074】
いくつかの実装形態では、LFNSTプロセスにおいて、縮小された非分離変換カーネルが適用され得る。例えば、上記の式(3)に基づけば、順方向LFNST604は、計算演算および変換係数を記憶するメモリソースの観点でコストが高い直接行列乗算に基づいている。したがって、縮小された非分離変換カーネルをLFNST設計で使用して、R<Nの場合においてN次元ベクトルを別の空間のR次元ベクトルにマッピングすることによって、LFNSTプロセスの実装コストを削減することができる。例えば、変換カーネルにN×N行列を使用する代わりに、順方向LFNST604の変換カーネルとして、式(4)に示されるようなR×N行列が使用される。
【数4】
【0075】
上記の式(4)において、TR×NのR基底ベクトルは、元のN次元変換カーネル(すなわち、N×N)の最初のR基底を選択することによって生成される。さらに、TR×Nが直交であるとすると、逆LFNST608の逆変換行列は、順変換行列TR×Nの転置である。
【0076】
8×8LFNSTの場合、因数N/R=4が適用される場合、順方向LFNST604では、64×64変換行列が16×48変換行列に縮小され、逆LFNST608では、64×64逆変換行列が48×16逆変換行列に縮小される。これは、一次変換係数の左上領域内の8×8サブブロックにLFNSTプロセスを適用することによって実現される。具体的には、16×48順方向LFNSTが適用されるとき、左上の8×8サブブロック(右下の4×4サブブロックを除く)内の3つの4×4サブブロックから48個の変換係数を入力として取得する。いくつかの例では、LFNSTプロセスは、左上の4×4サブブロックの外側のすべての変換係数がゼロである場合にのみ適用可能であるように制限され、これは、LFNSTが適用されるとき、すべての1次のみの変換係数がゼロでなければならないことを示す。さらに、(画素ごとの乗算に関して)最悪の場合の複雑性を制御するために、4×4符号化ブロックおよび8×8符号化ブロックのLFNST行列には、それぞれ8×16変換および8×48変換が強制される。4×M符号化ブロックおよびM×4符号化ブロック(M>4)の場合、LFNSTの非分離変換行列は16×16である。
【0077】
LFNST変換信号伝達において、合計4つの変換セットがあり、LFNST設計では変換セットごとに2つの非分離変換カーネルが有効である。イントラブロックのイントラ予測モードに従って、4つの変換セットの中から変換セットが選択される。イントラ予測モードから変換セットへのマッピングは、以下の表1に示されるように予め定められている。現在ブロック(81<=predModeIntra<=83)について、3つの交差成分線形モデル(CCLM:Cross-Component Linear Model)モード(例えば、INTRA_LT_CCLM、INTRA_T_CCLM、またはINTRA_L_CCLM)のうちの1つが使用される場合、現在のクロマブロックには変換セット「0」が選択される。変換セットごとに、選択された非分離二次変換候補は、ビットストリームにおいてLFNSTインデックスを信号伝達することによって示される。
【0078】
【0079】
いくつかの例では、最初の16×16サブブロックの外側のすべての変換係数がゼロである場合にLFNSTがイントラブロックに適用されるように制限されるので、LFNSTインデックス信号伝達は、最後の有効な(すなわち、非ゼロの)変換係数の位置に依存する。例えば、4×4符号化ブロックおよび8×8符号化ブロックの場合、LFNSTインデックスは、最後の有効な変換係数の位置が8未満の場合にのみ信号伝達される。他の符号化ブロックサイズの場合、LFNSTインデックスは、最後の有効な変換係数の位置が16未満の場合にのみ信号伝達される。それ以外の場合(すなわち、LFNSTインデックスが信号伝達されない場合)、LFNSTインデックスはゼロである、すなわち、LFNSTは無効であると推論される。
【0080】
さらに、変換係数をキャッシュするためのバッファのサイズを縮小するために、現在の符号化ブロックの幅または高さが、シーケンスパラメータセット(SPS)で信号伝達される最大変換サイズ(すなわち、64)より大きい場合、LFNSTは許可されない。一方、LFNSTは、一次変換がDCT2である場合にのみ適用される。さらに、LFNSTは、イントラスライスとインタースライスとの両方におけるイントラ符号化ブロックに対して、またルマ成分とクロマ成分との両方について適用される。二重ツリー(dual-tree)またはローカルツリー(local-tree)が有効である場合(すなわち、ルマ成分の区分とクロマ成分の区分とが整列していない場合)、LFNSTインデックスはルマ成分とクロマ成分とに対して個別に信号伝達される(すなわち、ルマ成分とクロマ成分は異なるLFNST変換を適用することができる)。それ以外の場合、単一木が適用されるとき(ルマ成分の区分とクロマ成分の区分とが整列している場合)、LFSNTは、単一のLFNSTインデックスが信号伝達される状態でルマ成分にのみ適用される。
【0081】
ECMにおけるLFNST設計は、大きなブロックサイズの残差サンプルのエネルギー圧縮の向上を実現するために追加のLFNSTカーネルが導入されることを除いて、VVCにおける設計と同様である。具体的には、変換ブロックの幅または高さが16以上であるとき、一次変換から生成された低周波変換係数の左上領域に新しいLFNST変換が導入される。現在のECMでは、
図7に示されるように、低周波領域は、一次変換係数の左上隅に6つの4×4サブブロック(例えば、
図7では灰色で示された6つの4×4サブブロック)を含む。この場合、順方向LFNST604への係数入力の数は96である。さらに、最悪の場合の計算複雑性を制御するために、順方向LFNST604の係数出力の数は32に設定される。具体的には、W>=16およびH>=16のW×H変換ブロックの場合、左上領域内の6つの4×4サブブロックから96個の変換係数を入力として取得して32個の変換係数を出力する、32×96順方向LFNSTが適用される。一方、ECMにおける8×8LFNSTは、4つの4×4サブブロックすべての変換係数を入力として利用し、32個の変換係数を出力する(すなわち、順方向LFNST604の場合は32×64行列であり、逆LFNST608場合は64×32行列である)。これは、8×8LFNSTが左上領域内の3つの4×4サブブロックにのみ適用されて16個の変換係数のみを生成する(すなわち、順方向LFNST604の場合は16×48行列であり、逆LFNST608の場合は48×16行列である)VVCとは異なる。さらに、LFNSTセットの総数は、VVCにおける4からECMにおける35に増加する。VVCと同様に、LFNSTセットの選択は現在の符号化単位のイントラ予測モードに依存し、各LFNSTセットは3つの異なる変換カーネルを含む。
【0082】
いくつかの例では、HEVCで使用されるDCT2変換に加えて、インター符号化ブロックとイントラ符号化ブロックとの両方の残差を変換するための多重変換選択(MTS:multiple transform selection)方式が適用される。MTS方式は、DCT8変換およびDST7変換から選択された複数の変換を使用する。
【0083】
例えば、イントラモードおよびインターモードのMTS方式を個別に有効にするために、シーケンスレベルで2つの制御フラグが指定される。MTS方式がシーケンスレベルで有効であるとき、MTS方式が適用されるか否かを示すために、別のCUレベルフラグがさらに信号伝達される。いくつかの実装形態では、MTS方式はルマ成分にのみ適用される。さらに、MTS方式は、次の条件(a)幅と高さとの両方が32以下であること、(b)符号化ブロックフラグ(CBF:Coded Block Flag)が1に等しいことが満たされる場合にのみ信号伝達される。MTSのCUフラグがゼロに等しい場合、DCT2は水平方向と垂直方向との両方に適用される。MTSのCUフラグが1に等しい場合、水平方向および垂直方向の変換タイプを個々に示すために、追加として他の2つのフラグが信号伝達される。次の表2には、MTSの水平制御フラグおよび垂直制御フラグと適用される変換との間のマッピングが示されている。
【0084】
【0085】
変換行列の精度に関しては、MTS変換係数はすべて、DCT2コア変換と同じ6ビット精度である。HEVCで使用されるすべての変換サイズをVVCがサポートしているとすると、4点、8点、16点、および32点DCT-2変換ならびに4点DST-7変換を含むHEVCで使用されるすべての変換コアは、VVCと同じに保たれる。一方、64点DCT-2、4点DCT-8、8点、16点、32点DST-7およびDCT-8を含む他の変換コアも、VVC変換設計においてさらにサポートされている。さらに、大きなサイズのDST-7およびDCT-8の複雑性を軽減するために、幅または高さのいずれかが32に等しいとき、DST-7およびDCT-8変換ブロックでは、16×16の低周波領域の外側に位置する高周波変換係数がゼロに設定される(ゼロアウトとも呼ばれる)。
【0086】
VVCでは、イントラ符号化およびインター符号化のために、DCT2に加えて、DST7およびDCT8変換カーネルのみが使用される。イントラ符号化の場合、通常、残差信号の統計的特性はイントラ予測モードに依存する。追加の一次変換は、残差特性の多様性を処理するのに有益な場合がある。
【0087】
DCT5、DST4、DST1、および恒等変換(IDT:identity transform)を含む追加の一次変換がECMで使用される。また、MTSセットは、TUサイズおよびイントラモード情報に依存して作成される。16の異なるTUサイズが考慮され、TUサイズごとにイントラモード情報に応じて5つの異なるクラスが考慮され得る。クラスごとに4つの異なる変換ペアが考慮される(VVCのものと同じ)。合計80の異なるクラスが考慮され得るが、多くの場合、それらの異なるクラスのうちのいくつかは同じ変換セットを共有する。したがって、結果として得られるルックアップ・テーブル(LUT)には58(80未満)の一意のエントリが存在する。
【0088】
角度モードの場合、TU形状およびイントラ予測にわたる結合対称性(joint symmetry)が考慮される。したがって、TU形状A×Bを有するモードi(i>34)は、TU形状B×Aを有するモードj=(68-i)に対応する同じクラスにマッピングされてもよい。しかしながら、変換ペアごとに、水平変換カーネルおよび垂直変換カーネルの順序が入れ替わる。例えば、モード18(水平予測)を有する16×4ブロックおよびモード50(垂直予測)を有する4×16ブロックは、垂直変換カーネルと水平変換カーネルとが入れ替わった状態で、同じクラスにマッピングされる。広角モードの場合、最も近い従来の角度モードが変換セットの決定に使用される。例えば、モード2は、-2から-14の間のすべてのモードに使用される。同様に、モード66は、モード67からモード80までに使用される。
【0089】
イントラテンプレートマッチング予測は、現在のフレームの再構築された部分から予測ブロックをコピーするイントラ予測モードの一例であり、予測ブロックのL字型テンプレートは、現在のテンプレートと一致する。所定の検索範囲について、ビデオエンコーダ20は、現在のフレームの再構築された部分において(例えば、SADコストに基づいて)現在のテンプレートに最も類似したテンプレートを検索し、対応するブロックを予測ブロックとして使用する。次いで、ビデオエンコーダ20は、このモードの使用を信号伝達し、デコーダ側で同じ予測動作が実行される。予測信号は、
図8に示されるように(a)現在のCTU(R1)、(b)左上のCTU(R2)、(c)上のCTU(R3)、および(d)左のCTU(R4)を含む所定の検索エリアにおいて、現在ブロックのL字型因果的隣接部(causal neighbor)を別のブロックと一致させることによって生成される。イントラテンプレートマッチングは、幅および高さが64以下のサイズのCUに対して有効である。一方、イントラテンプレートマッチング予測モードは、CUレベルでフラグを信号伝達することによって示される。幅または高さが4から16の間(4および16を含む)の符号化ブロックにイントラテンプレートマッチングが適用される場合、対応する寸法に適用される一次変換は、DST-VIIに設定される。それ以外の場合(すなわち、幅または高さが4より小さいか、または16より大きい場合)、DCT-IIがその寸法に適用される。
【0090】
図9は、いくつかの例に係る符号予測の例示的なプロセスを示すグラフィカル表現である。いくつかの実装形態では、符号予測は、変換ブロック内の変換係数の符号をその隣接ブロックのサンプルから推定し、推定された各符号と対応する真の符号との間の差を「0」(または「1」)を用いて符号化して、推定された符号が真の符号と同じである(または同じでない)ことを示すように意図され得る。符号が高割合で正確に推定され得る(例えば、符号の90%または95%が正しく推定される)場合、推定された符号と真の符号との間の差は0になる傾向があり、これは、VVCの変換係数のバイパス符号化された符号と比較された場合、CABACによって効率的にエントロピー符号化され得る。
【0091】
一般に、現在ブロックとその隣接ブロックとの間の境界におけるサンプル間には高相関があり、この高相関は、現在ブロックの変換係数の符号を予測するために符号予測スキームによって利用され得る。
図9に示されるように、現在ブロック内にM個の非ゼロ変換係数があると仮定する(M個の符号はそれぞれ+または-のどちらかである)。この場合、符号の可能な組み合わせの総数は2
M通りである。符号予測スキームは、符号の各組み合わせを使用して、対応する仮説(例えば、現在ブロックの上境界および左境界にある再構築されたサンプル)を生成し、対応する仮説内の再構築されたサンプルを隣接ブロックからの外挿サンプルと比較して、再構築されたサンプルと外挿サンプルとの間のサンプル差(例えば、SSDまたはSAD)を取得する。(符号の2
M通りの可能な組み合わせのうち)サンプル差を最小にする符号の組み合わせが、現在ブロック内の予測符号として選択される。
【0092】
いくつかの実装形態では、
図9に示されるように、M個の符号の各組み合わせに対する対応する仮説を生成するために、逆量子化演算および逆変換によってM個の対応する変換係数が処理されて、残差サンプルを得ることができる。残差サンプルが予測サンプルと加算されて、再構築されたサンプルを得ることができ、再構築されたサンプルは、(L字型の灰色のエリア902に示されるように)現在ブロックの上境界および左境界にある再構築されたサンプルを含む。
【0093】
いくつかの実装形態では、符号の組み合わせの選択のために、現在ブロックとその隣接ブロックとの境界におけるサンプル間の空間不連続性を測定するコスト関数が使用される。コスト関数は、L2ノルム(SSD)を使用する代わりに、以下の式(5)に示されるようにL1ノルム(SAD)に基づくことができる。
【数5】
【0094】
上記の式(5)において、B
i,n(i=-2、-1)は、上隣接ブロックからの現在ブロックの隣接サンプルを表す。C
m,j(j=-2、-1)は、左隣接ブロックからの現在ブロックの隣接サンプルを表す。P
0,nおよびP
m,0は、それぞれ、現在ブロックの上境界および左境界にある対応する再構築されたサンプルを表す。NおよびMは、それぞれ、現在ブロックの幅および高さを表す。
図10は、符号予測のためのコスト関数を算出するために使用される、現在ブロックの対応するサンプルP
0,nおよびP
m,0と、隣接ブロックの対応するサンプルB
i,nおよびC
m,jとを示す。
【0095】
いくつかの実装形態では、複数の逆変換を行うことの複雑さを回避するために、符号予測スキームにおいて、テンプレートベースの仮説再構築方法が適用され得る。各テンプレートは、現在ブロックの上境界および左境界にある再構築されたサンプルのセットとすることができ、係数行列に逆変換を適用することによって取得され得、特定の係数は1に設定され、他のすべての係数は0に等しい。逆変換(例えば、DCT、DST)が線形であるとすると、対応する仮説は、事前に算出されたテンプレートのセットの線形結合によって生成され得る。
【0096】
いくつかの実装形態では、予測符号は2つのセットに分類され、各セットは単一のCABACコンテキストによって符号化される。例えば、第1のセットは、変換ブロックの左上隅にある変換係数の予測符号を含み、第2のセットは、変換ブロックの他のすべての位置にある変換係数の予測符号を含む。
【0097】
符号予測スキームの現在の設計に存在するいくつかの例示的な欠陥が本明細書において特定される。第1の例では、現在のECMにおける符号予測は、一次変換(例えば、DCT変換およびDST変換)のみが適用される変換ブロックにおける変換係数に対する符号の予測にのみ適用可能である。上述されたように、イントラ符号化ブロックの残差サンプルのエネルギー圧縮の向上を実現するために、一次変換からの変換係数にLFNSTが適用され得る。しかしながら、現在のECM設計でLFNSTが適用される変換ブロックでは、符号予測がバイパスされる。
【0098】
第2の例では、符号予測の複雑性を制御するために、変換ブロックに対して予測符号の所定の最大数(「Lmax」と表記される)が決定される。現在のECMでは、ビデオエンコーダは、複雑性と符号化効率との間のトレードオフに基づいて最大数の値(例えば、Lmax=8)を決定し、その値をビデオデコーダに送る。さらに、変換ブロックごとに、ビデオエンコーダまたはデコーダは、すべての変換係数をラスタ走査順序で走査してもよく、最初のLmax個の非ゼロ変換係数が符号予測のための変換係数候補として選択される。変換ブロック内の異なる変換係数をこのように均等に処理することは、符号予測の正確性の観点からは最適ではない可能性がある。例えば、比較的大きな大きさの変換係数の場合、その符号の予測は、正しい予測を達成する可能性が高まることがある。これは、これらの変換係数に誤った符号を使用すると、ブロック境界上の再構築されたサンプル上に、比較的小さい大きさの変換係数を使用することによって生じる影響よりも大きな影響が生じる傾向があるからである。
【0099】
第3の例では、ビデオエンコーダまたはデコーダは、明示的な符号値を直接符号化する代わりに、予測符号の正しさを符号化することができる。例えば、正の符号を有する変換係数に関して、その予測符号も正である場合、ビデオエンコーダからビデオデコーダへのビットストリーム内で示される必要があるのはビン「0」のみである。この場合、予測符号は、変換係数の真の符号(または元の符号)と同じであり、この変換係数の符号予測が正しいことを示している。それ以外の場合(例えば、予測符号が負であるのに対し、真の符号が正である場合)、ビデオエンコーダからビデオデコーダへのビットストリーム内にビン「1」が含まれてもよい。すべての符号が正しく予測されている場合、ビットストリーム内で示される対応するビンは0であり、これは、CABACによって効率的にエントロピー符号化され得る。符号のうちのいくつかが誤って予測されている場合、ビットストリーム内で示される対応するビンは1である。算術符号化および適切なコンテキスト・モデルは、その対応する確率に従ってビンを符号化するのに効率的であり得るが、符号値を示すためにビットストリーム内に生成される無視できないビットが依然として存在する。
【0100】
第4の例では、ECMにおける符号予測の現在の設計における最良の符号予測の組み合わせの選択のために、現在ブロックとその隣接ブロックとの間の境界におけるサンプル間の空間不連続性が使用される。空間不連続性を捕捉するために、垂直方向および水平方向に沿った勾配差のL1ノルムが利用される。しかしながら、通常、画像信号の分布は不均一であるため、垂直方向および水平方向だけを使用すると、空間不連続性を正確に捕捉することができない場合がある。
【0101】
本開示によれば、上記の例示的な欠陥のうちの1つまたは複数に対処するために、ブロックベースのビデオ符号化における符号予測のためのビデオ処理方法およびシステムが本明細書で提供される。本明細書で開示される方法およびシステムは、ハードウェア・コーデック実装の使いやすさを考慮しながら、符号予測の符号化効率を向上させることができる。本明細書で開示される方法およびシステムは、ブロックの係数を変換するために符号予測技術を適用する変換ブロックの符号化効率を向上させることができる。
【0102】
例えば、上述されたように、符号予測は、変換ブロックとその空間的に隣接するブロックとの境界またはその境界近くに位置する境界サンプル(境界線サンプルとも呼ばれる)間の相関に基づいて、変換ブロック内の変換係数の符号を予測してもよい。相関の存在がどの特定の変換が適用されるかに依存しないとすると、2つの符号化ツール(すなわち、LFNSTおよび符号予測)は互いに干渉せず、共同で適用され得る。さらに、LFNSTは一次変換の変換係数のエネルギーをさらに圧縮するので、LFNSTの変換係数の符号予測は、一次変換の符号予測よりも正確になる可能性がある。これは、LFNSTからの変換係数の符号予測が正しくないと、境界サンプルの平滑性にさらに大きな不一致が生じる可能性があるからである。したがって、本開示によれば、LFNSTと符号予測との組み合わせを可能にして変換係数符号化の符号化効率を向上させる調和方式が本明細書に開示される。さらに、逆変換の数を低減するために、予測符号の異なる組み合わせに対する境界線サンプルを再構築するテンプレートベースの仮説生成スキームも本明細書で開示される。
【0103】
別の例では、上記で説明されたように、符号予測のための変換係数候補を選択するために変換ブロック内の異なる変換係数に同等の処理を与える代わりに、隣接ブロックの境界サンプル間の不一致につながる可能性がある変換係数の符号がより容易に予測されると仮定して、これらの変換係数に対してより高い重みが与えられてもよい。本開示によれば、本明細書に開示される方法およびシステムは、符号予測の正確性を向上させるために、1つまたは複数の選択基準に基づいて、符号予測のための変換係数候補(例えば、変換ブロックについてその符号が予測される変換係数)を選択することができる。例えば、符号予測の正確性を向上させることができるように、(再構築された境界線サンプルに対する影響が小さい変換係数ではなく)再構築された境界線サンプルにより大きな影響を与える変換係数が、符号予測のための変換係数候補として選択される。
【0104】
さらに別の例では、変換ブロック内の変換係数の符号が高い正確率で予測されるとき(例えば、予測符号の正しさが80%または90%などの閾値よりも高いとき)、変換ブロックとその隣接ブロックとの境界サンプル間には強い相関が存在する。この場合、ほとんどのシナリオについて正しく予測され得る連続した変換係数(例えば、特に変換ブロックの先頭のいくつかの非ゼロ変換係数)が存在する可能性があるという状況が一般的に生じる。このようなシナリオでは、(複数のビンの代わりに)単一のビンを使用して、すべての連続する変換係数の符号が正しく予測されているか否かを示し、符号予測の信号伝達オーバーヘッドを節約することができる。本開示によれば、符号予測の信号伝達オーバーヘッドを削減するために、ベクトルベースの符号予測スキームが本明細書に開示される。各非ゼロ変換係数の符号を個別に予測する既存の符号予測とは異なり、開示されたベクトルベースの符号予測スキームは、予測符号の正しさを示すために使用されるビン(またはビット)の平均数を効率的に低減できるように、連続する非ゼロ変換係数候補のセットをグループ化し、それらの対応する符号を一緒に予測する。
【0105】
さらに別の例では、垂直方向および水平方向のみを使用すると、現在ブロックとその隣接ブロックとの間の境界におけるサンプル間の空間不連続性を正確に捕捉できない可能性がある。したがって、空間不連続性をより正確に捕捉するために、より多くの方向が導入されてもよい。本開示によれば、空間不連続性をより正確に捕捉するために垂直方向および水平方向の勾配と対角方向の勾配との両方を考慮する改良されたコスト関数が本明細書に開示される。
【0106】
図11は、本開示のいくつかの実装形態に係るブロックベースのビデオ符号化における例示的な符号予測処理1100を示すブロック図である。いくつかの実装形態では、符号予測処理1100は、変換処理ユニット52によって実行されてもよい。いくつかの実装形態では、符号予測処理110は、ビデオエンコーダ20またはデコーダ30の1つまたは複数のプロセッサ(例えば、1つまたは複数のビデオプロセッサ)によって実行されてもよい。本開示全体を通して、LFNSTは、一般性を失うことなく二次変換の一例として使用される。本明細書において二次変換の他の例も適用され得ることが企図される。
【0107】
ECMの既存の設計では、符号予測は、LFNSTが適用される変換ブロックに対しては無効である。しかしながら、符号予測の原理は、変換ブロックとその空間的に隣接するブロックとの境界線サンプル間の相関に基づいて変換係数の符号を予測することであり、これは、変換ブロックに適用される特定の変換タイプ(例えば、変換タイプが一次変換か二次変換か)または変換コア(例えば、変換コアがDCTかDSTか)に依存しない。したがって、符号予測およびLFNSTを共同で適用して、本明細書の変換符号化の効率をさらに向上させることができる。本開示によれば、符号予測処理1100は、変換ブロック内の変換係数の符号を予測するために適用され得、一次変換および二次変換は共同で適用される。
【0108】
符号予測処理1100の例示的な概要が本明細書に提供される。最初に、符号予測処理1100は、ビデオからのビデオフレームの変換ブロックに一次変換および二次変換を適用して変換ブロックの変換係数を生成することによって、係数生成動作1102を実行してもよい。次に、符号予測処理1100は、符号予測の変換係数から変換係数候補のセットを選択することによって、係数選択動作1104を実行してもよい。続いて、符号予測処理1100は、テンプレートベースの仮説生成スキームを適用して、変換係数候補のセットに対する複数の仮説候補から仮説を選択することによって、仮説生成動作1106を実行してもよい。さらに、符号予測処理1100は、選択された仮説に関連付けられた符号候補の組み合わせを、変換係数候補のセットに対する予測符号のセットであると決定することによって、符号生成動作1108を実行してもよい。動作1102、1104、1106、および1108は、それぞれ以下でより詳細に説明される。
【0109】
例えば、ビデオエンコーダ20の変換処理ユニット52は、(例えば、順方向一次変換603および順方向LFNST604が一緒に適用される
図6に示されるように)一次変換および二次変換を共同で適用することによって、残差ビデオデータを変換ブロックの変換係数に変換してもよい。1≦L≦予測され得る符号の最大数として、以下に説明される1つまたは複数の選択基準に基づいて、変換ブロックの変換係数から所定数(例えば、L個)の非ゼロ変換係数が変換係数候補として選択され得る。次に、テンプレートベースの仮説生成スキームを適用することによって、L個の変換係数候補のそれぞれに符号候補の異なる組み合わせを使用して複数の仮説候補が生成され得、その結果、合計2
L個の仮説候補がもたらされることになる。各仮説候補には、変換ブロックの上境界および左境界における再構築されたサンプルを含んでもよい。次いで、水平方向、垂直方向、および対角方向に沿った組み合わせ勾配(combined gradient)を組み込んだコスト関数を使用して、仮説候補再構築ごとにコストが算出され得る。L個の変換係数候補の符号を予測するための仮説として、複数の仮説候補から最小コストに関連する仮説候補が決定され得る。例えば、最小コストに関連する仮説候補を生成するために使用される符号候補の組み合わせが、L個の変換係数候補の予測符号として使用される。
【0110】
まず、符号予測処理1100は、係数生成動作1102を実行することができ、この動作では、変換ブロックの変換係数を生成するために、一次変換(例えば、DCT、DSTなど)および二次変換(例えば、LFNST)が変換ブロックに共同で適用されてもよい。例えば、変換ブロックの一次変換係数を生成するために、一次変換が変換ブロックに適用されてもよい。次いで、一次変換係数に基づいてLFNST変換係数を生成するために、LFNSTが変換ブロックに適用されてもよい。
【0111】
符号予測処理1100は、続いて係数選択動作1104を実行してもよく、この動作では、1つまたは複数の選択基準に基づいて、変換ブロックの変換係数から符号予測のための変換係数候補のセットが選択され得る。変換係数候補を選択することにより、正しく予測され得る変換係数候補の数を最大化することができ、符号予測の正確性を向上させることができる。
【0112】
いくつかの実装形態では、変換係数候補のセットは、変換係数の大きさに基づいて変換ブロックの変換係数から選択され得る。例えば、変換係数候補のセットは、変換ブロック内の残りの変換係数よりも大きな大きさを有する1つまたは複数の変換係数を含むことができる。
【0113】
一般に、より大きな大きさを有する変換係数の場合、これらの変換係数の予測符号は正しい可能性がより高い。これは、より大きな大きさを有するこれらの変換係数が、再構築されたサンプルの品質により影響を与える傾向があり、これらの変換係数に誤った符号を使用すると、変換ブロックとその空間的に隣接するブロックとの境界サンプル間に不連続性が生じる可能性が高くなる場合があるからである。この理論的根拠に基づいて、符号予測のための変換係数候補のセットは、変換ブロック内の非ゼロ変換係数の大きさに基づいて、変換ブロックの変換係数から選択され得る。例えば、変換ブロック内のすべての非ゼロ変換係数は、走査され、その大きさの降順に従った係数リストを形成するようにソートされ得る。最も大きい大きさを有する変換係数が、係数リストから選択され、変換係数候補のセット内の第1の変換係数候補として配置され得、2番目に大きい大きさを有する変換係数が、係数リストから選択され、変換係数候補のセット内の第2の変換係数候補として配置され得、選択された変換係数候補の数が所定数Lに達するまで以下同様に行われる。いくつかの実装形態では、変換係数候補のセットを選択するとき、変換係数の大きさを表すために変換係数の量子化インデックスが使用され得る。
【0114】
いくつかの実装形態では、変換係数候補のセットは、ビデオ符号化に適用されるエントロピー符号化の係数走査順序に基づいて変換ブロックの変換係数から選択され得る。未加工のビデオコンテンツは豊富な低周波情報を含み得るので、ビデオコンテンツの処理から得られる非ゼロ変換係数の大きさは、低周波位置で大きくなり、高周波位置に向かうにつれて小さくなる傾向がある。したがって、エントロピー符号化のために変換ブロック内の変換係数を走査するために、最新のビデオコーデックにおいて係数走査順序(ジグザグ走査、左上走査、水平走査、または垂直走査など)が使用され得る。この係数走査順序を使用することにより、より小さな大きさを有する(通常、より高い周波数に対応する)変換係数の前に、より大きな大きさを有する(通常、より低い周波数に対応する)変換係数が走査される。この理論的根拠に基づいて、本明細書で開示される符号予測のための変換係数候補のセットは、エントロピー符号化のための係数走査順序に基づいて変換ブロックの変換係数から選択され得る。例えば、係数走査順序を使用して変換ブロック内のすべての変換係数を走査することによって、係数リストが取得され得る。次いで、係数リスト内の最初のL個の非ゼロ変換係数が、符号予測のための変換係数候補のセットとして自動的に選択され得る。
【0115】
いくつかの実装形態では、イントラ符号化されたブロックの場合、符号予測のための変換係数候補のセットは、ブロックのイントラ予測方向に基づいて、ブロックの変換係数から選択され得る。例えば、ビデオエンコーダ20とビデオデコーダ30との両方において、イントラ予測方向(例えば、VVCおよびECMにおける67通りのイントラ予測方向)と一貫性のある複数の走査順序が決定され、ルックアップ・テーブルとして記憶され得る。イントラブロックの変換係数を符号化するとき、ビデオエンコーダ20またはビデオデコーダ30は、走査順序の中からイントラブロックのイントラ予測に最も近い走査順序を識別してもよい。ビデオエンコーダ20またはビデオデコーダ30は、識別された走査順序を使用して、イントラブロックのすべての非ゼロ変換係数を走査して係数リストを取得し、係数リストから最初のL個の非ゼロ変換係数を変換係数候補のセットとして選択してもよい。
【0116】
いくつかの実装形態では、ビデオエンコーダ20は、変換ブロックの変換係数の走査順序を決定し、決定された走査順序をビデオデコーダ30に信号伝達してもよい。決定された走査順序を示す1つまたは複数の新しい構文要素が、ビットストリームを通じて信号伝達され得る。例えば、(例えば、異なる変換ブロックサイズおよび符号化モードに対する)複数の固定された走査順序が、ビデオエンコーダ20によって事前に決定され、ビデオデコーダ30と事前に共有され得る。次いで、固定された走査順序から走査順序を選択した後、ビデオエンコーダ20は、選択された走査順序を示す単一のインデックスをビデオデコーダ30に信号伝達するだけでよい。別の例では、変換係数の任意の選択された走査順序の信号伝達を可能にするために、1つまたは複数の新しい構文要素が使用されてもよい。いくつかの実装形態では、1つまたは複数の構文要素は、様々な符号化レベル、例えば、シーケンスパラメータセット(SPS)、ピクチャパラメータセット(PPS)、ピクチャ(またはスライス)レベル、CTU(またはCU)レベルなどで信号伝達され得る。
【0117】
いくつかの実装形態では、変換係数候補のセットは、変換ブロックの再構築された境界線サンプルに対する変換係数の影響スコアに基づいて変換ブロックの変換係数から選択され得る。具体的には、上記の式(5)に示されるように、符号(すなわち、予測符号、または符号予測子)の組み合わせの選択は、現在の変換ブロックとその空間的に隣接するブロックとの間のサンプルの勾配の不連続性を最小化するためのコスト関数に基づいている。したがって、現在の変換ブロックの上境界線および左境界線にある再構築されたサンプルに比較的大きな影響を与える変換係数の符号は、正確に予測される可能性が高くなる傾向があり、その理由は、これらの符号の反転により、(5)で算出された境界サンプル間の平滑性に大きな変動が生じることがあるからである。正確な符号予測の割合を最大化するために、これらの変換係数(すなわち、再構築された境界線サンプルに対してより大きな影響を与える変換係数)の符号は、他の変換係数(すなわち、再構築された境界線サンプルに対してより少ない影響を与える変換係数)よりも前に予測されてもよい。この理論的根拠に基づいて、本明細書で開示される符号予測のための変換係数候補のセットは、現在の変換ブロックの上境界線および左境界線における再構築されたサンプルに対する影響スコアに基づいて選択され得る。
【0118】
例えば、ビデオエンコーダ20またはデコーダ30は、変換ブロックの再構築された境界線サンプルに対する対応する影響スコアの測定に基づいて、すべての変換係数をソートしてもよい。変換係数が、再構築された境界線サンプルに対してより大きな影響スコアを有する場合、その変換係数は、より容易に正確に予測されるので、符号予測候補リスト内でより小さなインデックスが割り当てられてもよい。本明細書で開示される変換係数候補のセットは、符号予測候補リスト内のL個の最も小さいインデックスを有するL個の変換係数とすることができる。
【0119】
いくつかの実装形態では、再構築された境界線サンプルに対する変換係数の影響スコアを定量化するために、異なる基準が適用されてもよい。例えば、変換係数によって引き起こされる再構築された境界線サンプルの変動のエネルギーを測定する値が、影響スコアとして使用され得、この値は、(L1ノルムにおいて)次のように取得され得る。
【数6】
【0120】
上記の式(6)において、Ci,jは、変換ブロック内の位置(i,j)における変換係数を表す。Ti,j(l,k)は、変換係数Ci,jに関連付けられたテンプレートの位置(l,k)における対応する境界線サンプルを表す。NおよびMは、それぞれ変換ブロックの幅および高さを表す。Vは、位置(i,j)における変換係数の影響スコアを表す。
【0121】
別の例では、上記の式(6)のL1ノルムは、L2ノルムで置き換えられることが可能であり、その結果、影響スコア(例えば、変換係数によって引き起こされる再構築された境界線サンプルの変動のエネルギーの測定値)は、次のようにL2ノルムを使用して算出され得る。
【数7】
【0122】
本開示によれば、上記の(6)および式(7)では、(例えば、Ti,j(0,n)およびTi,j(m,0)によって示された)上境界サンプルおよび左境界サンプルのみが算出に使用されているが、本明細書で開示される変換係数選択方式は、対応するコスト関数で使用される現在の変換ブロックの再構築されたサンプルを変更することによって、任意の符号予測スキームにも適用され得る。
【0123】
符号予測処理1100は、続いて仮説生成動作1106を実行してもよく、この動作では、複数の仮説候補から変換係数候補のセットに対する仮説を選択するために、テンプレートベースの仮説生成スキームが適用され得る。最初に、変換係数候補のセットに含まれる係数の総数に基づいて、変換係数候補のセットに対して、符号候補の複数の組み合わせが決定され得る。例えば、合計でL個の変換係数候補が存在する場合、変換係数候補のセットに対する符号候補の複数の組み合わせは、符号候補の2L通りの組み合わせであり得る。各符号候補は、負の符号(-)または正の符号(+)のどちらかであり得る。符号候補の各組み合わせは、合計L個の負の符号または正の符号を含んでもよい。例えば、L=2である場合、符号候補の複数の組み合わせは、符号候補の22=4通りの組み合わせを含んでもよく、これらの組み合わせはそれぞれ、(+,+)、(+,-)、(-,-)、および(-,-)である。
【0124】
次に、符号候補の複数の組み合わせに対する複数の仮説候補をそれぞれ生成するために、テンプレートベースの仮説生成スキームが適用され得る。実行する必要がある逆一次変換および逆二次変換の複雑性を軽減するために、本明細書に開示されるテンプレートベースの仮説生成スキームを使用して、変換ブロックの再構築された境界線サンプルの生成を最適化することができる。テンプレートベースの仮説生成スキームを実装するための2つの例示的な手法が本明細書に開示される。テンプレートベースの仮説生成スキームを実装するための他の例示的な手法も可能であることが企図され、これは本明細書では限定されない。
【0125】
第1の例示的な手法では、符号候補の各組み合わせに対する対応する仮説候補は、テンプレートの線形結合に基づいて生成され得、その結果、符号候補の複数の組み合わせに対する複数の仮説候補がそれぞれ生成され得る。各テンプレートは、変換係数候補のセットからの変換係数候補に対応してもよい。各テンプレートは、変換ブロックの上境界および左境界にある再構築されたサンプルのグループを表してもよい。各テンプレートは、変換ブロックに逆二次変換および逆一次変換を適用することによって生成され得、1に設定されるテンプレートに対応する変換係数候補を除いて、変換係数候補のセットのそれぞれはゼロに設定される(例えば、テンプレートに対応する変換係数候補は1となるように設定され、残りの変換係数候補はそれぞれ0となるように設定される)。
【0126】
例えば、符号候補の各組み合わせに対する対応する仮説候補は、テンプレートの線形結合となるように設定され得る。それぞれの変換係数候補に対応するテンプレートの場合、テンプレートのそれぞれの重みは、それぞれの変換係数候補に対応する逆量子化された変換係数の大きさとなるように設定され得る。テンプレートの線形結合に基づく仮説生成の例が
図12に示されており、これについては以下でより詳細に説明される。
【0127】
変換係数候補の符号を予測するために、ビデオエンコーダ20またはデコーダ30は、コスト関数から算出されるコスト値を最小化できる符号候補の組み合わせに関連する仮説を識別する前に、すべての仮説候補を調査してもよい。上記で説明された第1の例示的な手法では、各仮説候補は、複数のテンプレートの組み合わせに基づいて生成され得るが、これは、そのような組み合わせに含まれるサンプルごとの算出(例えば、加算、乗算、およびシフト)を考慮すると比較的複雑である。コスト関数から計算されるコスト値を最小化する仮説の識別に関連する計算複雑性を軽減するために、本明細書では第2の例示的な手法が導入される。
【0128】
第2の例示的な手法では、複数の仮説候補に関連付けられた符号候補の複数の組み合わせは、それぞれ、複数の仮説候補に対する複数の仮説インデックスとして扱われ得る。例えば、デジタル0およびデジタル1は、それぞれ正の符号(+)および負の符号(-)を表すように構成され得る。仮説候補に対応する符号候補の組み合わせは、仮説候補に対する一意の表現(すなわち、仮説インデックス)として使用され得る。例えば、予測される符号が3つある(例えば、L=3)と仮定する。仮説インデックス000は、3つのすべての符号候補を正となるように設定することによって生成される仮説候補を表してもよい(例えば、3つの符号候補は(+,+,+)である)。同様に、仮説インデックス010は、第1の符号候補および第3の符号候補を正となるように設定し、第2の符号候補を負となるように設定することによって生成される仮説候補を表してもよい(例えば、3つの符号候補は(+,-,+)である)。
【0129】
次いで、複数の仮説インデックスのゲイリー符号順序に基づいて、複数の仮説候補が生成され得、その結果、前の仮説インデックスを有する前の仮説候補の再構築されたサンプルは、現在の仮説インデックスを有する現在の仮説候補を生成するために使用され得る。現在の仮説候補の現在の仮説インデックスは、複数の仮説インデックスのゲイリー符号順序において、前の仮説候補の前の仮説インデックスの直後にあり得る。現在の仮説インデックスは、前の仮説インデックスに関連付けられた符号候補を正(または負)から負(または正)に変更することによって生成され得る。例えば、現在の仮説インデックスは、前の仮説インデックス内の単一の「0」(または「1」)を「1」(または「0」)に変更することによって取得され得る。
【0130】
例えば、複数の仮説インデックスは、複数の仮説インデックスのゲイリー符号順序に基づいて並べ替えられ、仮説インデックスの並べ替えられたシーケンスが生成され得る。仮説インデックスの並べ替えられたシーケンス内の第1の仮説インデックスについて、第1の仮説インデックスに対応する第1の仮説候補は、変換ブロックに逆二次変換および逆一次変換を適用することによって生成され得、変換係数候補のセットのそれぞれは1に設定される。第1の仮説インデックスの直後にある、仮説インデックスの並べ替えられたシーケンス内の第2の仮説インデックスについて、第2の仮説インデックスに対応する第2の仮説候補は、(a)第1の仮説インデックスに対応する第1の仮説候補と、(b)第2の仮説候補の調整項(adjusting term)とに基づいて生成され得る。次の表3は、変換係数候補の数が3(例えば、L=3)である場合の、LFNSTのためのすべての仮説候補を生成する例示的なプロセスを示す。
【0131】
【0132】
上記の表3において、1列目は、それぞれ、23=8通りの符号候補の組み合わせを示している。2列目は、それぞれ、正の符号(+)および負の符号(-)をそれぞれ表すデジタル0および1を使用した、符号候補の組み合わせに対応する仮説インデックスを示している。2列目の仮説インデックスは、ゲイリー符号の順序に従って(例えば、000、001、011、010、110、111、101、100の順序で)順序付けされる。3列目は、それぞれ、符号候補と仮説インデックスとの組み合わせに対応する仮説候補を示している。4列目は、それぞれ、仮説候補の算出を示している。
【0133】
表3において、4列目のTXYZは、対応するテンプレート(すなわち、変換ブロックの上境界および左境界にある再構築されたサンプル)を表し、対応するテンプレートは、変換ブロックの係数行列に逆変換を適用することによって生成され得、特定の変換係数は1に設定され、他のすべての変換係数はゼロに等しい。例えば、T100は、係数行列に逆変換を適用することによって生成される対応するテンプレートを表し、第1の符号候補に対応する変換係数のみが1に設定され、係数行列中のすべての変換係数が0に設定される。C0、C1、およびC2は、それぞれ、第1、第2、および第3の符号候補に関連付けられた逆量子化された変換係数の絶対値を表す。
【0134】
表3を参照すると、第1の仮説インデックス000の場合、第1の仮説候補H000は、変換ブロックに関連付けられた係数行列に逆二次変換および逆一次変換を適用することによって生成され得、変換係数候補のそれぞれが1に設定される。第1の仮説インデックス000の直後にある第2の仮説インデックス001の場合、第2の仮説候補H001は、(a)第1の仮説候補H000と(b)第2の仮説候補の調整項(例えば、-C2*T001)とに基づいて生成され得る。同様に、第2の仮説インデックス001の直後にある第3の仮説インデックス011の場合、第3の仮説候補H011は、(a)第2の仮説候補H001と(b)第3の仮説候補の調整項(例えば、-C1*T010)とに基づいて生成され得る。第3の仮説インデックス011の直後にある第4の仮説インデックス010の場合、第4の仮説候補H010は、(a)第3の仮説候補H011と(b)第4の仮説候補の調整項(例えば、C2*T001)とに基づいて生成され得る。
【0135】
続いて、水平方向、垂直方向、および対角方向に沿った組み合わせ勾配を組み込んだコスト関数に基づいて、複数の仮説候補から最小コストに関連する仮説が決定され得る。上記で説明されたように、(例えば、式(5)において上記で示されたように)コスト関数が水平方向および垂直方向の勾配のみを利用する場合、コスト関数は、不均一性の高い画像信号に対しては良好に機能しない可能性がある。本開示によれば、コスト関数の正確性を向上させるために1つまたは複数の対角方向に沿った勾配も利用される。例えば、左対角方向と右対角方向とを含む2つの対角方向も、コスト関数に組み込まれ得る。例えば、2つの対角方向のコスト関数は、次の式(8)および式(9)に従って記述され得る。
【数8】
【数9】
【0136】
上記の式(8)または式(9)において、B-1,n-1、B-2,n-2、B-1,n+1、およびB-2,n+2は、上隣接ブロックからの変換ブロックの隣接サンプルを表す。Cm-1,-1、Cm-2,-2、Cm+1,-1、およびCm+2,-2は、変換ブロックのその左隣接ブロックからの隣接サンプルを表す。P0,nおよびPm,0は、それぞれ変換ブロックの上境界および左境界上の再構築されたサンプルを表す。NおよびMは、それぞれ変換ブロックの幅および高さを表す。costD1およびcostD1は、それぞれ、左対角方向および右対角方向に対する左対角コスト関数および右対角コスト関数を表す。
【0137】
対角方向の2つのコスト関数(例えば、costD1およびcostD2)は、水平垂直コスト関数(例えば、上記の式(5)に示されたcostHV)のコスト関数と併用され得る。次いで、水平方向および垂直方向に沿った勾配を組み込んだ水平垂直コスト関数、左対角方向に沿った勾配を組み込んだ左対角コスト関数、ならびに右対角方向に沿った勾配を組み込んだ右対角コスト関数に基づいて、符号予測のためのコスト関数が決定され得る。例えば、コスト関数は、式(10)で説明されているように、水平垂直コスト関数、左対角コスト関数、および右対角コスト関数の加重和であってもよい。
【数10】
【0138】
上記の式(10)において、ωは、左対角コスト関数および右対角コスト関数の重みを指す。
【0139】
別の例では、コスト関数は、式(11)で説明されているように、水平垂直コスト関数、左対角コスト関数、および右対角コスト関数の最小値であってもよい。
【数11】
【0140】
上記で示された式(5)と比較して、本明細書で開示された式(10)または式(11)のコスト関数は、対角方向に沿ったコスト関数costD1、costD2をサポートするためにより多くの隣接画素を必要とする可能性があり、これについては、
図14A~
図14Bを参照して以下でより詳細に説明される。
【0141】
いくつかの実装形態では、各仮説候補に対応するコストは、上記の式(10)または式(11)を使用して決定されてもよい。次いで、複数の仮説候補に対して複数のコストがそれぞれ算出され得る。複数のコストの中から最小コストが決定され得る。最小コストに関連する仮説候補が、複数の仮説候補から決定され、符号予測のための仮説として選択され得る。
【0142】
符号予測処理1100は、続いて符号生成動作1108を実行してもよく、この動作では、選択された仮説に関連付けられた符号候補の組み合わせが、変換係数候補のセットに対する予測符号のセットであると決定される。例えば、選択された仮説を生成するために使用される符号候補の組み合わせ(例えば、L個の符号候補)は、L個の変換係数候補に対する予測符号として使用され得る。
【0143】
いくつかの実装形態では、符号生成動作1108は、ベクトルベースの符号予測スキームを予測符号のセットに適用して、変換係数候補のセットに対する符号シグナリングビットのシーケンスを生成することを含んでもよい。符号シグナリングビットのシーケンスを含むビットストリームは、ビデオエンコーダ20によって生成され、
図1の記憶デバイス32に記憶されてもよい。代替としてまたは追加として、ビットストリームは、
図1のリンク16を通してビデオデコーダ30に送信されてもよい。
【0144】
上記で説明されたように、変換ブロック内の変換係数の符号が適切に予測される場合、複数の連続する変換係数の符号が正しく予測され得る可能性が非常に高い。この場合、既存の符号予測設計の信号伝達方式では、各変換係数の対応する符号が正しく予測され得ることを個別に示すために複数のビン「0」を信号伝達する必要があるため、変換ブロックの符号値を信号伝達するためのオーバーヘッドという観点では明らかに非効率である。既存の符号予測スキームの例示的な実装形態は、
図13Aを参照して以下でより詳細に説明される。
【0145】
本開示によれば、符号信号伝達の効率は、本明細書に開示されるベクトルベースの符号予測スキームを適用することによって向上し得る。具体的には、変換ブロックの変換係数候補は、複数のグループに分割され得、各グループ内の変換係数候補の符号は、まとめて予測され得る。この場合、グループ内の変換係数候補の元の符号(または真の符号)がそれぞれその予測符号と同じである場合、グループ内のすべての符号が正しく予測されていることを示すために、値「0」を有するビンがビットストリーム内で送られるだけでよい。それ以外の場合(すなわち、少なくとも、元の符号が予測符号とは異なる変換係数候補がグループ内に存在する場合)、最初に、グループ内の変換係数候補のすべての符号が正しく予測されるわけではないことを示すために、値「1」を有するビンがビットストリーム内で信号伝達されてもよい。次いで、グループ内の各予測符号の対応する正しさを個別に通知するために、追加ビンも、ビデオエンコーダ20からビデオデコーダ30へビットストリーム内で信号伝達されてもよい。本明細書に開示されるベクトルベースの符号予測スキームの例示的な実装形態は、
図13Bを参照して以下でより詳細に説明される。
【0146】
いくつかの実装形態では、変換係数候補のセットは、変換係数候補の複数のグループに分割され得る。変換係数候補のグループごとに、変換係数候補のグループの元の符号が変換係数候補のグループの予測符号と同一であるかどうかに基づいて、変換係数候補のグループに対して1つまたは複数の符号シグナリングビットが生成されてもよい。変換係数候補のグループの元の符号が変換係数候補のグループの予測符号と同一であることに応答して、ゼロの値(「0」)を有するビンが生成され、符号シグナリングビットとしてビットストリームに追加されてもよい。例えば、ビットストリームは、変換係数候補のグループの予測符号が正しく予測されていることを示す「0」を含んでもよい。
【0147】
一方、変換係数候補のグループの元の符号が変換係数候補のグループの予測符号と同一ではないことに応答して、1の値(「1」)を有するビンが生成されてもよい。変換係数候補のグループの予測符号の対応する正しさを通知するための追加ビンのセットも生成されてもよい。次いで、1の値を有するビンおよび追加ビンのセットは、符号シグナリングビットとしてビットストリームに追加され得る。例えば、追加ビンのセットは、変換係数候補のグループの元の符号および予測符号のXOR結果とすることができる。値「0」を有する追加ビンは、その追加ビンに対応する変換係数候補の予測符号が正しく予測されていることを示してもよく、一方、値「1」を有する追加ビンは、その追加ビンに対応する変換係数候補の予測符号が誤って予測されていることを示してもよい。ビットストリームは、(a)変換係数候補のグループの予測符号が正しく予測されていないことを示すための「1」、および(b)どの予測符号が正しく予測されており、どの予測符号が誤って予測されているかを示すための追加ビンのセットを含んでもよい。
【0148】
いくつかの実装形態では、変換係数候補の各グループのサイズは、1つまたは複数の所定の基準に基づいて適応的に変更され得る。1つまたは複数の所定の基準は、変換ブロックの幅または高さ、変換ブロックの符号化モード(例えば、イントラ符号化またはインター符号化)、および変換ブロック内の非ゼロ変換係数の数などを含んでもよい。いくつかの実装形態では、変換係数候補の各グループのサイズは、SPS、PPS、スライスもしくはピクチャレベル、CTUもしくはCUレベル、または変換ブロック・レベルなどの様々な符号化レベルにおいてビットストリーム内で信号伝達され得る。
【0149】
いくつかの実装形態では、本明細書に開示されるベクトルベースの符号予測スキームの適用シナリオを制限するために、1つまたは複数の制約が適用されてもよい。例えば、変換ブロック内の変換係数の第1の部分の符号を処理するために、本明細書で開示されるベクトルベースの符号予測スキームが適用され得る一方で、変換ブロック内の変換係数の第2の部分の符号は、既存の符号予測スキームを使用して処理され得る。さらなる例では、本明細書に開示されるベクトルベースの符号予測スキームは、変換ブロックからの最初のN個(例えば、N=2、3、4、5、6、7、または8など)の非ゼロ変換係数候補に適用可能であり得る一方で、変換ブロックからの他の変換係数候補の符号は、
図13Aに示された既存の符号予測スキームを使用して処理され得、これについては、本開示において後で説明される。
【0150】
本開示によれば、本明細書に開示される符号予測処理1100は、いくつかのシナリオの下では無効にされてもよい。例えば、イントラテンプレートマッチングモードによって符号化される符号化ブロックにLFNSTが適用される場合、一次変換はDST-VIIであり得る。ECMにおけるLFNSTコア変換は主に、一次変換がDCT-IIであるときに訓練されるとすると、イントラテンプレートマッチングブロックの対応するLFNST変換係数は、他のLFNSTブロックの係数と比較した場合に異なる特性を示す可能性がある。この理論的根拠に基づいて、現在の符号化ブロックがイントラテンプレートマッチングブロックであるとともにLFNSTを使用して符号化されている場合、符号予測処理1100は無効にされてもよい。
【0151】
本開示によれば、符号予測の計算複雑性を制御するために、LFNSTブロックに対する予測符号の最大数と非LFNSTブロックに対する予測符号の最大数とは異なっていてもよい。例えば、LFNSTブロックに対する予測符号の最大数は6(または4)となるように設定されてもよく、一方、非LFNSTブロックに対する予測符号の最大数は6(または4)とは異なる値を有してもよい。さらに、LFNSTを適用するビデオブロックおよびLFNSTを適用しないビデオブロックに対して、予測符号の最大数の異なる値が適用されてもよい。いくつかの実装形態では、ビデオエンコーダ20は、エンコーダの対応する複雑性または性能優先事項に基づいて、LFNSTブロックに対する予測符号の最大数を決定してもよく、その最大数をビデオデコーダ30に信号伝達してもよい。LFNSTブロックに対する予測符号の最大数がビデオデコーダ30に信号伝達されるとき、その最大数は、例えば、様々な符号化レベル、例えば、シーケンスパラメータセット(SPS)、ピクチャパラメータセット(PPS)、ピクチャもしくはスライス・レベル、またはCTUもしくはCUレベルで信号伝達されてもよい。いくつかの実装形態では、ビデオエンコーダ20は、LFNSTを適用するビデオブロックおよびLFNSTを適用しないビデオブロックに対する予測符号の最大数の異なる値を決定し、最大数の値をビデオエンコーダ20からビデオデコーダ30に信号伝達してもよい。
【0152】
本開示によれば、一次変換と二次変換との両方の変換係数が固定されているとすると、ビデオエンコーダ20またはビデオデコーダ30は、異なる変換ブロックサイズおよび一次変換と二次変換との組み合わせのうちの異なる組み合わせに対するテンプレート(例えば、テンプレートのサンプル)を事前に算出してもよい。ビデオエンコーダ20またはビデオデコーダ30は、最適化された実装のためにテンプレートのサンプルをオンザフライで作成する複雑性を回避するために、テンプレート(例えば、テンプレートのサンプル)を内部メモリまたは外部メモリに記憶してもよい。テンプレートのサンプルは、記憶サイズとサンプル精度との間の異なるトレードオフを達成するために、異なる小数精度で記憶されてもよい。例えば、ビデオエンコーダ20またはビデオデコーダ30は、テンプレートの浮動サンプルを固定された因数(例えば、64、128、または256)でスケーリングし、スケーリングされたサンプルをそれらの最も近い整数に丸めてもよい。丸められたサンプルはメモリに記憶されてもよい。次いで、テンプレートが、仮説候補を再構築するために使用されるとき、仮説候補内の生成されたサンプルが正しいダイナミックレンジ内にあることを保証するために、最初に、その対応するサンプルは、元の精度へスケーリング解除されてもよい。
【0153】
図12は、本開示のいくつかの実装形態に係る、テンプレートの線形結合に基づく例示的な仮説生成を示すグラフィカル表現である。
図12において、4つのパターン化されたブロック0~3は、符号が予測される変換係数候補を表す。因数C
0、C
1、C
2、およびC
3は、4つの変換係数候補の逆量子化された変換係数の対応する値を表す。テンプレート0~3は、それぞれ、4つの変換係数候補0~3に対応してもよい。例えば、変換係数候補0に対応するテンプレート0は、変換ブロックに逆二次変換および逆一次変換を適用することによって生成され得、変換係数候補0は1となるように設定され、変換ブロック内の残りの変換係数候補はゼロとなるように設定される。同様にして、テンプレート1~3がそれぞれ生成され得る。仮説候補は、テンプレート0~1および重みC
0~C
3をそれぞれ追加することによって生成され得る。
【0154】
図13Aは、いくつかの例に係る、既存の符号予測スキームの例示的な実装形態を示すグラフィック表現である。
図13Bは、本開示のいくつかの実装形態に係る、ベクトルベースの符号予測スキームの例示的な実装形態を示すグラフィック表現である。既存の符号予測スキームと本明細書に開示されるベクトルベースの符号予測スキームとの間の例示的な比較が、
図13A~
図13Bを参照して本明細書に示される。
【0155】
図13Aおよび
図13Bにおいて、変換ブロックには、符号予測のための変換係数候補として選択される6つの非ゼロ変換係数が存在する。変換係数候補は、ラスタ走査順序を使用して変換ブロックの係数行列から走査される。
図13A~
図13Bには、変換係数候補の元の符号および予測符号も示されている。例えば、値「-2」を有する第1の変換係数候補の元の符号および予測符号は、両方とも「-」である(
図13A~
図13Bでは「1」として表されている)。値「3」を有する第2の変換係数候補の元の符号および予測符号は、両方とも「+」である(
図13A~
図13Bでは「0」として表されている)。値「1」を有する第3の変換係数候補の元の符号および予測符号は、それぞれ「+」および「-」である(
図13A~
図13Bではそれぞれ「0」および「1」として表されている)。第3の変換係数候補の元の符号は、誤って予測されている。
図13A~
図13Bに示されるように、第3の変換係数を除いて、他のすべての変換係数候補の元の符号は、その対応する予測符号と同じである(すなわち、正しく予測されている)。
【0156】
図13Aを参照すると、合計6つのビン(すなわち、0、0、1、0、0、および0)が生成され、各ビンは変換係数候補に対応する。6つのビンは、6つの変換係数候補の元の符号と予測符号の間でXOR演算を実行することによって生成され得る。6つのビンは、6つの予測符号の対応する正しさを示すために使用され得る。例えば、それぞれ値「0」を有する第1のビンおよび第2のビンは、第1の変換係数候補および第2の変換係数候補の予測符号が正しいことを示す。値「1」を有する第3のビンは、第3の変換係数の予測符号が正しくないことを示す。6つのビンは、エントロピー符号化のためにCABACに送られ得る。
【0157】
図13Bを参照すると、本明細書で開示されるベクトルベースの符号予測スキームは、6つの変換係数候補を3つのグループに分割し、各グループは2つの連続する変換係数候補を含む。グループ#0およびグループ#2内の変換係数候補の符号は正しく予測され得るので、それぞれ値「0」を有する2つのビンのみが2つのグループに対して生成される。グループ#1の場合、符号が正しく予測されることができない第3の変換係数候補を含むので、そのグループが少なくとも、元の符号がその予測符号と異なる変換係数候補を含んでいることを示すために、(
図13Bでは下線が引かれている)値「1」を有するビンが生成され、ビットストリーム内で信号伝達される。続いて、グループ#1内の第3の係数および第4の係数について、それらの符号が正しく予測され得るかどうかを示すために、値「1」および値「0」を有する2つの追加ビンが生成される。これに対応して、本明細書で開示されるベクトルベースの符号予測スキームが適用される場合、CABACのために生成される合計5つのビンがあり、これは、
図13Aに示される既存の符号予測スキームによって生成されるビンよりも少ないビットを有する。したがって、本明細書に開示されるベクトルベースの符号予測スキームを適用することによって、信号伝達オーバーヘッドが低減される可能性があり、変換ブロックの符号化効率が向上する可能性がある。
【0158】
本開示によれば、
図13Bに示されるように変換ブロックの係数行列から変換係数候補を取得するためにラスタ走査順序が使用されるが、符号予測のための変換係数候補を選択するために、任意の他の走査順序も使用され得る。例えば、変換係数候補は、上記で説明された1つまたは複数の選択基準に基づいて選択され得る。同様の説明は本明細書では繰り返されない。
【0159】
図14Aは、本開示のいくつかの実装形態に係る、左対角方向に沿った左対角コスト関数の例示的な算出を示すグラフィカル表現である。
図14Bは、本開示のいくつかの実装形態に係る、右対角方向に沿った右対角コスト関数の例示的な算出を示すグラフィカル表現である。costHVの算出のための上記の式(6)と比較して、上記の式(10)または(11)に示された左対角コスト関数costD1または右対角コスト関数costD2は、対角方向に沿ったコスト関数costD1、costD2の算出をサポートするために、(
図14A~
図14Bでは、エリア1402、1404、および1406内にマーク付けされた画素として示された)より多くの隣接画素を必要とする場合がある。エリア1402、1404、および1406内のこれらの画素が利用できない場合、これらの利用できない位置を埋めるために、最近接パディング方法が採用され得る。例えば、エリア1406内のB
-1,4が利用できない場合、B
-1,4の位置を埋めるために、B
-1,4に最も近い利用可能な画素であるB
-1,3が使用される(例えば、B
-1,4=B
-1,3である)。エリア1402内のB
-1,-1(C
-1,-1とも表記されている)、B
-1,-2(C
-1,-1)、B
-2,-1(C
-1,-1)、およびB
-2,-2(C
-1,-1)が利用できない場合に、その利用できない位置を埋めるための2つの例示的な方法が本明細書に開示される。
【0160】
第1の例示的な方法では、以下の式(12)~(15)に示されるように、利用できない位置はそれぞれ、その最近傍の利用可能な画素を重み付けすることによって埋められ得る。
【数12】
【数13】
【数14】
【数15】
【0161】
第2の例示的な方法では、利用できない位置のいくつかはそれぞれ、その最近傍の利用可能な画素で埋められ得る。例えば、エリア1402内のB-1,-2が利用できない場合、これはC0,-2で埋められる。B-2,-1が利用できない場合は、B-2,0で埋められる。しかしながら、B-2,-2およびB-1,-1が利用できない場合、これらは、上記の式(12)および式(15)に従って算出されたそれらの2つの最近傍の隣接画素の平均で埋められ得る。
【0162】
本開示によれば、上記の式(10)または式(11)に示されたコスト関数の算出では、説明の目的で左対角線および右対角線(すなわち、
図14A~
図14Bに示される135°および45°)が使用されているが、任意の他の測定構成要素(例えば、1つまたは複数の任意の方向に沿った連続性測定)が符号予測のためのコスト関数の算出に組み込まれ得ることが企図される。
【0163】
図15は、本開示のいくつかの実装形態に係る、ブロックベースのビデオ符号化における符号予測のための例示的な方法1500のフローチャートである。方法1500は、ビデオエンコーダ20またはビデオデコーダ30に関連付けられたビデオプロセッサによって実施されてもよく、以下で説明されるステップ1502~1508を含んでもよい。本明細書で提供される開示を実行するために、ステップのうちのいくつかは任意選択であってもよい。さらに、ステップのうちのいくつかは、同時に、または
図15に示された順序とは異なる順序で実行されてもよい。
【0164】
ステップ1502において、ビデオプロセッサは、ビデオからのビデオフレームの変換ブロックに一次変換および二次変換を適用して、変換ブロックの変換係数を生成してもよい。
【0165】
ステップ1504において、ビデオプロセッサは、変換係数から符号予測のための変換係数候補のセットを選択してもよい。
【0166】
ステップ1506において、ビデオプロセッサは、テンプレートベースの仮説生成スキームを適用して、変換係数候補のセットに対する複数の仮説候補から仮説を選択してもよい。
【0167】
ステップ1508において、ビデオプロセッサは、選択された仮説に関連付けられた符号候補の組み合わせを、変換係数候補のセットに対する予測符号のセットであると決定してもよい。
【0168】
図16は、本開示のいくつかの実装形態に係る、ブロックベースのビデオ符号化における符号予測のための別の例示的な方法1600のフローチャートである。方法1600は、ビデオエンコーダ20またはビデオデコーダ30に関連付けられたビデオプロセッサによって実施されてもよく、以下で説明されるステップ1602~1616を含んでもよい。具体的には、方法1600のステップ1606~1610は、方法1500のステップ1506の例示的な実装形態として実行されてもよい。本明細書で提供される開示を実行するために、ステップのうちのいくつかは任意選択であってもよい。さらに、ステップのうちのいくつかは、同時に、または
図16に示された順序とは異なる順序で実行されてもよい。
【0169】
ステップ1602において、ビデオプロセッサは、ビデオプロセッサは、ビデオからのビデオフレームの変換ブロックに一次変換および二次変換を適用して、変換ブロックの変換係数を生成してもよい。
【0170】
ステップ1604において、ビデオプロセッサは、変換係数から符号予測のための変換係数候補のセットを選択してもよい。
【0171】
ステップ1606において、ビデオプロセッサは、変換係数候補のセット内の変換係数候補の総数に基づいて、変換係数候補のセットに対する符号候補の複数の組み合わせを決定してもよい。
【0172】
ステップ1608において、ビデオプロセッサは、テンプレートベースの仮説生成スキームを適用して、符号候補の複数の組み合わせに対する複数の仮説候補をそれぞれ生成してもよい。
【0173】
ステップ1610において、ビデオプロセッサは、水平方向、垂直方向、および対角方向に沿った組み合わせ勾配を組み込んだコスト関数に基づいて、複数の仮説候補から最小コストに関連する仮説を選択してもよい。
【0174】
ステップ1612において、ビデオプロセッサは、選択された仮説に関連付けられた符号候補の組み合わせを、変換係数候補のセットに対する予測符号のセットであると決定してもよい。
【0175】
ステップ1614において、ビデオプロセッサは、ベクトルベースの符号予測スキームを予測符号のセットに適用して、変換係数候補のセットに対する符号シグナリングビットのシーケンスを生成してもよい。
【0176】
ステップ1614において、ビデオプロセッサは、符号シグナリングビットのシーケンスを含むビットストリームを生成してもよい。
【0177】
本開示によれば、
図15の方法1500および
図16の方法1600は、ビデオエンコーダ側またはビデオデコーダ側で実行されてもよい。
図15の方法1500および
図16の方法1600がビデオエンコーダ側で実行されるとき、これらの方法は、ビデオエンコーダ側での変換係数の符号予測のための符号化方法とみなされてもよい。
図15の方法1500および
図16の方法1600がビデオデコーダ側で実行されるとき、これらの方法は、ビデオデコーダ側での変換係数の符号予測のための復号方法とみなされてもよい。ビデオデコーダ側での変換係数符号予測のための例示的な復号方法は、
図18を参照して以下で提供される。
【0178】
図17は、本開示のいくつかの実装形態に係る、ユーザインターフェース1750と結合されたコンピューティング環境1710を示す。コンピューティング環境1710は、データ処理サーバの一部であり得る。コンピューティング環境1710は、プロセッサ1720、メモリ1730、および入出力(I/O)インターフェース1740を含む。
【0179】
プロセッサ1720は、典型的には、表示、データ取得、データ通信、および画像処理に関連する動作など、コンピューティング環境1710の全体的な動作を制御する。プロセッサ1720は、上記で説明された方法におけるステップのすべてまたは一部を実施するよう求める命令を実行するための1つまたは複数のプロセッサを含んでもよい。さらに、プロセッサ1720は、プロセッサ1720と他の構成要素との間の対話を容易にする1つまたは複数のモジュールを含んでもよい。プロセッサ1720は、中央処理ユニット(CPU)、マイクロプロセッサ、シングル・チップ・マシン、グラフィック処理ユニット(GPU)などであってもよい。
【0180】
メモリ1730は、コンピューティング環境1710の動作をサポートするために様々なタイプのデータを記憶するように構成される。メモリ1730は、所定のソフトウェア1732を含んでもよい。そのようなデータの例は、コンピューティング環境1710上で動作される任意のアプリケーションまたは方法のための命令、ビデオデータセット、画像データなどを含む。メモリ1730は、スタティック・ランダムアクセスメモリ(SRAM)、電気的消去可能プログラマブル読み取り専用メモリ(EEPROM)、消去可能プログラマブル読み取り専用メモリ(EPROM)、プログラマブル読み取り専用メモリ(PROM)、読み取り専用メモリ(ROM)、磁気メモリ、フラッシュメモリ、磁気ディスクまたは光ディスクなど、任意のタイプの揮発性もしくは不揮発性メモリ・デバイスまたはそれらの組み合わせを使用することによって実装されてもよい。
【0181】
I/Oインターフェース1740は、プロセッサ1720と、キーボード、クリック・ホイール、ボタンなどの周辺インターフェースモジュールとの間のインターフェースを提供する。ボタンは、ホーム・ボタン、走査開始ボタン、走査停止ボタンを含んでもよいが、これらに限定されない。I/Oインターフェース1740は、エンコーダおよびデコーダと結合され得る。
【0182】
いくつかの実装形態では、例えばメモリ1730内に、コンピューティング環境1710内のプロセッサ1720によって実行可能な、上記で説明された方法を実行するための複数のプログラムを含む非一時的コンピュータ可読記憶媒体も提供される。代替として、非一時的コンピュータ可読記憶媒体は、ビデオデータを復号する際にデコーダ(例えば、
図3のビデオデコーダ30)によって使用するために、例えば上記で説明された符号化方法を使用してエンコーダ(例えば、
図2のビデオエンコーダ20)によって生成された符号化済みビデオ情報(例えば、1つまたは複数の構文要素を含むビデオ情報)を含むビットストリームまたはデータストリームを記憶していてもよい。非一時的コンピュータ可読記憶媒体は、例えば、ROM、ランダムアクセスメモリ(RAM)、CD-ROM、磁気テープ、フロッピーディスク、光データ記憶デバイスなどであってもよい。
【0183】
いくつかの実装形態では、1つまたは複数のプロセッサ(例えば、プロセッサ1720)と、1つまたは複数のプロセッサによって実行可能な複数のプログラムを記憶している非一時的コンピュータ可読記憶媒体またはメモリ1730とを備えるコンピューティング・デバイスも提供され、1つまたは複数のプロセッサは、複数のプログラムの実行時に、上記で説明された方法を実行するように構成される。
【0184】
いくつかの実装形態では、上記で説明された方法を実行するためにコンピューティング環境1710内のプロセッサ1720によって実行可能な、例えばメモリ1730内の複数のプログラムを含むコンピュータ・プログラム製品も提供される。例えば、コンピュータ・プログラム製品は、非一時的コンピュータ可読記憶媒体を含んでもよい。
【0185】
いくつかの実装形態では、コンピューティング環境1710は、上記の方法を実行するために、1つまたは複数のASIC、DSP、デジタル信号処理デバイス(DSPD)、プログラマブル・ロジック・デバイス(PLD)、FPGA、GPU、コントローラ、マイクロコントローラ、マイクロプロセッサ、または他の電子構成要素を用いて実装されてもよい。
【0186】
図18は、本開示のいくつかの実装形態に係る、ビデオデコーダ側での変換係数符号予測のためのビデオ復号方法1800のフローチャートである。方法1800は、ビデオデコーダ30に関連付けられたビデオプロセッサによって実施されてもよく、以下で説明されるステップ1802~1810を含んでもよい。本明細書で提供される開示を実行するために、ステップのうちのいくつかは任意選択であってもよい。さらに、ステップのうちのいくつかは、同時に、または
図18に示された順序とは異なる順序で実行されてもよい。
【0187】
ステップ1802において、ビデオプロセッサは、変換係数符号予測のために逆量子化された変換係数から変換係数候補のセットを選択してもよい。逆量子化された変換係数は、ビデオからのビデオフレームの変換ブロックに関連付けられる。ビデオデコーダ30における変換ブロックの逆量子化された変換係数は、ビデオエンコーダ20における変換ブロックの変換係数と同等であってもよい。
【0188】
いくつかの実装形態では、ビデオプロセッサは、符号シグナリングビットのシーケンスと、変換ブロックに関連付けられた量子化された変換係数とを含むビットストリームを受信してもよい。ビデオプロセッサは、
図3の逆量子化ユニット86を通じて、量子化された変換係数から逆量子化された変換係数を生成してもよい。
【0189】
いくつかの実装形態では、ビデオプロセッサは、逆量子化された変換係数の大きさに基づいて、逆量子化された変換係数から変換係数候補のセットを選択してもよい。いくつかの実装形態では、ビデオプロセッサは、逆量子化された変換係数の量子化インデックスの大きさに基づいて、逆量子化された変換係数から変換係数候補のセットを選択してもよい。いくつかの実装形態では、ビデオプロセッサは、ビデオ符号化に適用されるエントロピー符号化の係数走査順序に基づいて、逆量子化された変換係数から変換係数候補のセットを選択してもよい。
【0190】
いくつかの実装形態では、ビデオプロセッサは、変換ブロックの再構築された境界線サンプルに対する逆量子化された変換係数の影響スコアに基づいて、逆量子化された変換係数から変換係数候補のセットを選択してもよい。例えば、再構築された境界線サンプルに対する逆量子化された変換係数の影響スコアは、再構築された境界線サンプルに対する各逆量子化された変換係数の変動のL1ノルムとして測定される。別の例において、再構築された境界線サンプルに対する逆量子化された変換係数の影響スコアは、再構築された境界線サンプルに対する各逆量子化された変換係数の変動のL2ノルムとして測定される。
【0191】
いくつかの実装形態では、ビデオプロセッサは、
図11の係数選択動作1104を参照して上記で説明されたような動作を実行して、逆量子化された変換係数から変換係数候補のセットを選択してもよい。また、ビデオプロセッサは、
図15のステップ1504について上記で説明されたような動作を実行して、逆量子化された変換係数から変換係数候補のセットを選択してもよい。同様の説明は本明細書では繰り返されない。
【0192】
ステップ1804において、ビデオプロセッサは、テンプレートベースの仮説生成スキームを適用して、変換係数候補のセットに対する複数の仮説候補から仮説を選択してもよい。
【0193】
いくつかの実装形態では、ビデオプロセッサは、
図11の仮説生成動作1106を参照して上記で説明されたような動作を実行してもよい。また、ビデオプロセッサは、
図15のステップ1506について上記で説明されたような動作を実行して、複数の仮説候補から仮説を選択してもよい。同様の説明は本明細書では繰り返されない。
【0194】
ステップ1806において、ビデオプロセッサは、選択された仮説に関連付けられた符号候補の組み合わせを、変換係数候補のセットに対する予測符号のセットであると決定してもよい。
【0195】
いくつかの実装形態では、ビデオプロセッサは、
図11の符号生成動作1108を参照して上記で説明されたような動作を実行してもよい。また、ビデオプロセッサは、
図15のステップ1508について上記で説明されたような動作を実行して、変換係数候補のセットに対する予測符号のセットを決定してもよい。同様の説明は本明細書では繰り返されない。
【0196】
ステップ1808において、ビデオプロセッサは、ビデオエンコーダから受信した予測符号のセットおよび符号シグナリングビットのシーケンスに基づいて、変換係数候補のセットの元の符号を推定してもよい。
【0197】
例えば、
図13Bを参照すると、予測符号のセットは、値(1,0)を有するグループ#0、値(1,0)を有するグループ#2、および値(1,0)を有するグループ#3を含むことができ、1は負の符号を示し、0は正の符号を示す。符号シグナリングビットのシーケンスは、グループ#0のビット「0」、グループ#2のビット「1,1,0」、およびグループ#3のビット「0」を含むことができる。グループ#0のビットは値「0」を有し、値(1,0)を有するこのグループの予測符号が元の符号と同じであることを示しているため、グループ#0の推定される元の符号は(1,0)であると決定される。グループ#1のビットの1番目のビットは値「1」を有し、このグループの予測符号(1,0)が元の符号と同じではないことを示しているため、グループ#1の推定される元の符号(1,0)は、このグループの予測符号(1,0)と、グループ#1の2番目および3番目のビット「1,0」とのXOR結果であると決定される(例えば、推定される元の符号=XOR((1,0),(1,0))=(0,0))。グループ#2のビットは値「0」を有し、値(1,0)を有するこのグループの予測符号が元の符号と同じであることを示しているため、グループ#2の推定される元の符号は(1,0)であると決定される。次いで、変換係数候補のセットの推定される元の符号は、それぞれグループ#0、#1、および#2の推定される元の符号を連結することによって形成され、(1,0,0,0,1,0)を含む。
【0198】
ステップ1810において、ビデオプロセッサは、推定された変換係数候補のセットの元の符号に基づいて、逆量子化された変換係数を更新してもよい。例えば、ビデオプロセッサは、推定された元の符号を、変換係数候補のセットに対応する変換ブロック内の逆量子化された変換係数に対する真の符号として使用してもよい。
【0199】
いくつかの実装形態では、逆量子化された変換係数が更新された後、ビデオプロセッサはさらに、逆量子化された変換係数に逆一次変換および逆二次変換を適用して、変換ブロックに対応する残差ブロック内に残差サンプルを生成してもよい。逆二次変換は、LFNSTを含む二次変換に対応する。逆一次変換は、DCT-II、DCT-V、DCT-VIII、DST-I、DST-IV、DST-VII、または恒等変換を含む一次変換に対応する。
【0200】
いくつかの実装形態では、変換係数候補のセットに対する符号シグナリングビットのシーケンスは、ビデオエンコーダによって、ビデオエンコーダによって、ベクトルベースの符号予測スキームを、ビデオエンコーダ側で選択された変換係数候補の別のセットに対する予測符号の別のセットに適用すること、および符号シグナリングビットのシーケンスを含むビットストリームを生成することによって生成される。変換係数候補の他のセットは、ビデオデコーダ側の変換係数候補のセットに対応するビデオエンコーダ側の変換係数である。
【0201】
いくつかの実装形態では、変換係数候補の他のセットに対する予測符号の他のセットにベクトルベースの符号予測スキームを適用することは、変換係数候補の他のセットを変換係数候補の複数のグループに分割することと、変換係数候補のグループごとに、変換係数候補のグループの元の符号が変換係数候補のグループの予測符号と同一であるかどうかに基づいて、変換係数候補のグループに対して1つまたは複数の符号シグナリングビットを生成することとをさらに含む。
【0202】
いくつかの実装形態では、変換係数候補のグループに対する1つまたは複数の符号シグナリングビットを生成することは、変換係数候補のグループの元の符号が変換係数候補のグループの予測符号と同一であることに応答して、ゼロの値を有するビンを生成することと、ビンを符号シグナリングビットとしてビットストリームに追加することとを含む。
【0203】
いくつかの実装形態では、変換係数候補のグループに対する1つまたは複数の符号シグナリングビットを生成することは、変換係数候補のグループの元の符号が変換係数候補のグループの予測符号と同一ではないことに応答して、1の値を有するビンを生成することと、変換係数候補のグループの予測符号の対応する正しさを通知するための追加ビンのセットを生成することと、ビンおよび追加ビンのセットを符号シグナリングビットとしてビットストリームに追加することとを含む。
【0204】
本開示の説明は、例示を目的として提示されたものであり、本開示を網羅することも限定することも意図されていない。前述の説明および関連する図面に提示された教示の恩恵を受ける当業者には、多くの修正、変形、および代替の実装形態が明らかであろう。
【0205】
特に明記されない限り、本開示による方法のステップの順序は、例示のみを意図されており、本開示による方法のステップは、上記で具体的に説明された順序に限定されず、実際の条件に従って変更されてもよい。さらに、本開示による方法のステップのうちの少なくとも1つは、実際の要件に従って調整、結合、または削除されてもよい。
【0206】
例は、本開示の原理を説明し、当業者が様々な実装形態について本開示を理解できるようにし、企図される特定の使用に適するように様々な修正を加えて基礎となる原理および様々な実装形態を最大限に活用するために、選択され説明されたものである。したがって、本開示の範囲が、開示された実装形態の特定の例に限定されるものではないこと、また修正および他の実装形態が本開示の範囲内に含まれるよう意図されていることが理解されるべきである。
【手続補正書】
【提出日】2024-02-07
【手続補正1】
【補正対象書類名】明細書
【補正対象項目名】0083
【補正方法】変更
【補正の内容】
【0083】
例えば、イントラモードおよびインターモードのMTS方式を個別に有効にするために、シーケンスレベルで2つの制御フラグが指定される。MTS方式がシーケンスレベルで有効であるとき、MTS方式が適用されるか否かを示すために、別のCUレベルフラグがさらに信号伝達される。いくつかの実装形態では、MTS方式はルマ成分にのみ適用される。さらに、MTS方式は、次の条件(a)幅と高さとの両方が32以下であること、および(b)符号化ブロックフラグ(CBF:Coded Block Flag)が1に等しいことが満たされる場合にのみ信号伝達される。MTSのCUフラグがゼロに等しい場合、DCT2は水平方向と垂直方向との両方に適用される。MTSのCUフラグが1に等しい場合、水平方向および垂直方向の変換タイプを個々に示すために、追加として他の2つのフラグが信号伝達される。次の表2には、MTSの水平制御フラグおよび垂直制御フラグと適用される変換との間のマッピングが示されている。
【手続補正2】
【補正対象書類名】明細書
【補正対象項目名】0176
【補正方法】変更
【補正の内容】
【0176】
ステップ1616において、ビデオプロセッサは、符号シグナリングビットのシーケンスを含むビットストリームを生成してもよい。
【手続補正3】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
変換係数符号予測のためのビデオ復号方法であって、
逆量子化された変換係数から、前記変換係数符号予測のための変換係数候補のセットを選択することであって、前記逆量子化された変換係数が、ビデオフレームの変換ブロックに関連付けられることと、
テンプレートベースの仮説生成スキームを適用して、前記変換係数候補のセットに対する複数の仮説候補から仮説を選択することと、
選択された前記仮説に関連付けられた符号候補の組み合わせを、前記変換係数候補のセットに対する予測符号のセットであると決定することと、
ビデオエンコーダから受信した予測符号のセットおよび符号シグナリングビットのシーケンスに基づいて、前記変換係数候補のセットの元の符号を推定することと、
前記変換係数候補のセットに対する推定された前記元の符号に基づいて、前記逆量子化された変換係数を更新することと、
を含む、ビデオ復号方法。
【請求項2】
符号シグナリングビットの前記シーケンスと、前記変換ブロックに関連付けられた量子化された変換係数とを含むビットストリームを受信することと、
前記量子化された変換係数から前記逆量子化された変換係数を生成すること、
をさらに含む、請求項1に記載のビデオ復号方法。
【請求項3】
前記逆量子化された変換係数に逆一次変換および逆二次変換を適用して、前記変換ブロックに対応する残差ブロック内に残差サンプルを生成することをさらに含む、請求項1に記載のビデオ復号方法。
【請求項4】
前記逆二次変換が、低周波非分離変換(LFNST)を含む二次変換に対応し、および/または、
前記逆一次変換は、DCT-II、DCT-V、DCT-VIII、DST-I、DST-IV、DST-VII、または恒等変換を含む一次変換に対応する、請求項3に記載のビデオ復号方法。
【請求項5】
前記変換係数候補のセットを選択することが、
前記逆量子化された変換係数の大きさに基づいて、前記逆量子化された変換係数から前記変換係数候補のセットを選択すること、
前記逆量子化された変換係数の量子化インデックスの大きさに基づいて、前記逆量子化された変換係数から前記変換係数候補のセットを選択すること、
ビデオ符号化に適用されるエントロピー符号化の係数走査順序に基づいて、前記逆量子化された変換係数から前記変換係数候補のセットを選択すること、または、
前記変換ブロックの再構築された境界線サンプルに対する前記逆量子化された変換係数の影響スコアに基づいて、前記逆量子化された変換係数から前記変換係数候補のセットを選択すること、
のうちの少なくとも1つを含む、請求項1に記載のビデオ復号方法。
【請求項6】
前記再構築された境界線サンプルに対する前記逆量子化された変換係数の前記影響スコアが、前記再構築された境界線サンプルに対する各逆量子化された変換係数の変動のL1ノルムまたはL2ノルムとして測定される、請求項5に記載のビデオ復号方法。
【請求項7】
前記テンプレートベースの仮説生成スキームを適用して前記仮説を選択することが、
前記変換係数候補のセット内の変換係数候補の総数に基づいて、前記変換係数候補のセットに対する符号候補の複数の組み合わせを決定することと、
前記テンプレートベースの仮説生成スキームを適用して、符号候補の前記複数の組み合わせに対する前記複数の仮説候補をそれぞれ生成することと、
水平方向、垂直方向、および対角方向に沿った組み合わせ勾配を組み込んだコスト関数に基づいて、前記複数の仮説候補から最小コストに関連する仮説を決定すること、
を含む、請求項1に記載のビデオ復号方法。
【請求項8】
前記テンプレートベースの仮説生成スキームを適用して、符号候補の前記複数の組み合わせに対する前記複数の仮説候補をそれぞれ生成することが、
テンプレートの線形結合に基づいて、符号候補の各組み合わせに対する対応する仮説候補を生成することを含む、請求項7に記載のビデオ復号方法。
【請求項9】
各テンプレートが、前記変換係数候補のセット内の変換係数候補に対応し、
各テンプレートが、前記変換ブロックに逆二次変換および逆一次変換を適用することによって生成され、1に設定されるテンプレートに対応する変換係数候補を除いて、前記変換係数候補のセットのそれぞれがゼロに設定される、
請求項8に記載のビデオ復号方法。
【請求項10】
前記テンプレートベースの仮説生成スキームを適用して、符号候補の前記複数の組み合わせに対する前記複数の仮説候補をそれぞれ生成することが、
符号候補の前記複数の組み合わせをそれぞれ、前記複数の仮説候補に対する複数の仮説インデックスであると決定することと、
前記複数の仮説インデックスのゲイリー符号順序に基づいて前記複数の仮説インデックスを順序付けし、仮説インデックスの並べ替えられたシーケンスを生成することと、
仮説インデックスの前記並べ替えられたシーケンス内の第1の仮説インデックスについて、前記変換ブロックに逆二次変換および逆一次変換を適用することによって、前記第1の仮説インデックスに対応する第1の仮説候補を生成することであって、前記変換係数候補のセットのそれぞれが1に設定される、前記第1の仮説候補を生成することと、
前記第1の仮説インデックスの直後にある、仮説インデックスの前記並べ替えられたシーケンス内の第2の仮説インデックスについて、前記第1の仮説インデックスに対応する前記第1の仮説候補と、第2の仮説候補の調整項とに基づいて、前記第2の仮説インデックスに対応する前記第2の仮説候補を生成すること、
を含む、請求項7に記載のビデオ復号方法。
【請求項11】
前記コスト関数が、前記垂直方向および前記水平方向に沿った勾配を組み込んだ水平垂直コスト関数、左対角方向に沿った勾配を組み込んだ左対角コスト関数、ならびに右対角方向に沿った勾配を組み込んだ右対角コスト関数に基づいて決定される、請求項7に記載のビデオ復号方法。
【請求項12】
前記変換係数候補のセットに対する符号シグナリングビットの前記シーケンスが、前記ビデオエンコーダによって、
ベクトルベースの符号予測スキームを、ビデオエンコーダ側で選択された変換係数候補の別のセットに対する予測符号の別のセットに適用することによって生成され、
変換係数候補の前記別のセットが、ビデオデコーダ側の前記変換係数候補のセットに対応する前記ビデオエンコーダ側の変換係数である、請求項1に記載のビデオ復号方法。
【請求項13】
変換係数候補の前記別のセットに対する予測符号の前記別のセットに前記ベクトルベースの符号予測スキームを適用して、符号シグナリングビットの前記シーケンスを生成することが、
変換係数候補の前記別のセットを変換係数候補の複数のグループに分割することと、
変換係数候補のグループごとに、変換係数候補の前記グループの元の符号が変換係数候補の前記グループの予測符号と同一であるかどうかに基づいて、変換係数候補の前記グループに対して1つまたは複数の符号シグナリングビットを生成すること、
をさらに含む、請求項12に記載のビデオ復号方法。
【請求項14】
変換係数候補の前記グループに対する前記1つまたは複数の符号シグナリングビットを生成することが、
変換係数候補の前記グループの前記元の符号が変換係数候補の前記グループの前記予測符号と同一であると決定することに応答して、
ゼロの値を有するビンを生成することと、
前記ビンを符号シグナリングビットとしてビットストリームに追加すること、
を含む、請求項13に記載のビデオ復号方法。
【請求項15】
変換係数候補の前記グループに対する前記1つまたは複数の符号シグナリングビットを生成することが、
変換係数候補の前記グループの前記元の符号が変換係数候補の前記グループの前記予測符号と同一ではないと決定することに応答して、
1の値を有するビンを生成することと、
変換係数候補の前記グループの前記予測符号の対応する正しさを通知するための追加ビンのセットを生成することと、
前記ビンおよび前記追加ビンのセットを符号シグナリングビットとしてビットストリームに追加すること、
を含む、請求項13に記載のビデオ復号方法。
【請求項16】
変換係数符号予測のためのビデオ復号装置であって、
復号されるビットストリームを記憶するように構成されたメモリと、
前記メモリに結合され、前記ビットストリームで請求項1から15のいずれに記載のビデオ復号方法を行うように構成された1つまたは複数のプロセッサと、
を備える、ビデオ復号装置。
【請求項17】
命令および復号されるビットストリームを記憶した非一時的コンピュータ可読記憶媒体であって、前記命令が、1つまたは複数のプロセッサによって実行されたとき、前記ビットストリームで請求項1から15のいずれかに記載のビデオ復号方法を前記1つまたは複数のプロセッサに実行させる、
非一時的コンピュータ可読記憶媒体。
【請求項18】
請求項1から15のいずれかに記載のビデオ復号方法によって復号可能なビットストリームを記憶する、非一時的コンピュータ可読記憶媒体。
【請求項19】
1つまたは複数のプロセッサを有するコンピューティングデバイスによって実行される命令を含むコンピュータプログラムであって、前記命令は、前記1つまたは複数のプロセッサによって実行されると、前記コンピューティングデバイスにビットストリームを記憶させ、前記ビットストリームで請求項1から15のいずれかに記載のビデオ復号方法を実行させる、コンピュータプログラム。
【請求項20】
ビットストリームを記憶する方法であって、前記ビットストリームが請求項1から15のいずれかに記載のビデオ復号方法によって用いられる、方法。
【国際調査報告】