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

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

▶ ベイジン ダージャー インターネット インフォメーション テクノロジー カンパニー リミテッドの特許一覧

特表2024-546895ブロックベースビデオ符号化のための符号予測
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-12-26
(54)【発明の名称】ブロックベースビデオ符号化のための符号予測
(51)【国際特許分類】
   H04N 19/13 20140101AFI20241219BHJP
   H04N 19/18 20140101ALI20241219BHJP
【FI】
H04N19/13
H04N19/18
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2024535669
(86)(22)【出願日】2022-12-16
(85)【翻訳文提出日】2024-06-14
(86)【国際出願番号】 US2022053150
(87)【国際公開番号】W WO2023114468
(87)【国際公開日】2023-06-22
(31)【優先権主張番号】63/290,307
(32)【優先日】2021-12-16
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】PCT/US2022/049264
(32)【優先日】2022-11-08
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】PCT/US2022/043607
(32)【優先日】2022-09-15
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】PCT/US2022/040442
(32)【優先日】2022-08-16
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】521147444
【氏名又は名称】ベイジン ダージャー インターネット インフォメーション テクノロジー カンパニー リミテッド
【氏名又は名称原語表記】BEIJING DAJIA INTERNET INFORMATION TECHNOLOGY CO., LTD.
(74)【代理人】
【識別番号】100147485
【弁理士】
【氏名又は名称】杉村 憲司
(74)【代理人】
【識別番号】230118913
【弁護士】
【氏名又は名称】杉村 光嗣
(74)【代理人】
【識別番号】100163511
【弁理士】
【氏名又は名称】辻 啓太
(72)【発明者】
【氏名】シュウ シャオユウ
(72)【発明者】
【氏名】ヤン ニン
(72)【発明者】
【氏名】チェン イーウェン
(72)【発明者】
【氏名】クオ チェウェイ
(72)【発明者】
【氏名】チェン ウェイ
(72)【発明者】
【氏名】チュウ ホンチェン
(72)【発明者】
【氏名】ガオ ハン
(72)【発明者】
【氏名】ワン シャンリン
(72)【発明者】
【氏名】ユ ビン
【テーマコード(参考)】
5C159
【Fターム(参考)】
5C159MA04
5C159MA05
5C159MA21
5C159MC01
5C159MC11
5C159PP16
5C159TA59
5C159TB13
5C159TC01
5C159TC04
5C159TC26
5C159TC27
5C159TC31
5C159TC42
5C159TD05
5C159TD10
5C159UA02
5C159UA05
5C159UA16
(57)【要約】
本開示の実施形態はビデオデコーダ側における変換係数符号予測のためのビデオ復号装置及び方法を提供する。本方法は、候補変換係数のセットのための符号シグナリングビットのシーケンスを含むビットストリームを受信することを含み得る。本方法は、デコーダのプロセッサにより、ビデオのビデオフレームの変換ブロックに関連付けられた候補変換係数のセットに対する予測符号のセットを生成することを更に含み得る。本方法は、プロセッサにより、符号シグナリングビットのシーケンスをエントロピー符号化して候補変換係数のそれぞれの予測符号の正しさの指標を得るために使用される1つ又は複数のコンテキストに基づき、符号シグナリングビットのシーケンスを復号することを更に含み得る。本方法は、プロセッサにより、予測符号のセット及び復号された符号シグナリングビットのシーケンスに基づき候補変換係数のセットの元の符号を推定することを更に含み得る。
【特許請求の範囲】
【請求項1】
変換係数の符号予測のためのビデオ復号方法であって、
候補変換係数のセットのための符号シグナリングビットのシーケンスを含むビットストリームを受信することと、
デコーダのプロセッサにより、ビデオのビデオフレームの変換ブロックに関連付けられた前記候補変換係数の前記セットに対する予測符号のセットを生成することと、
前記プロセッサにより、前記符号シグナリングビットの前記シーケンスをエントロピー符号化して前記候補変換係数のそれぞれの前記予測符号の正しさの指標を得るために使用される1つ又は複数のコンテキストに基づいて、前記符号シグナリングビットの前記シーケンスを復号することと、
前記プロセッサにより、前記予測符号の前記セット及び復号された前記符号シグナリングビットの前記シーケンスに基づいて前記候補変換係数の前記セットの元の符号を推定することと
を含む方法。
【請求項2】
請求項1に記載のビデオ復号方法であって、
前記予測符号の前記セット及び前記符号シグナリングビットの前記シーケンスに基づいて前記候補変換係数の前記セットの前記元の符号を推定することが、
前記符号シグナリングビットのそれぞれによって示された前記正しさに応じて前記候補変換係数の前記予測符号を更新して、前記候補変換係数の前記元の符号を決定することと
を更に含む方法。
【請求項3】
請求項1に記載のビデオ復号方法であって、
前記符号シグナリングビットのそれぞれを復号することが、
前記符号シグナリングビットに対応する前記候補変換係数の強度に基づいて、前記符号シグナリングビットをエントロピー符号化するために使用されるコンテキストを決定すること
を更に含む方法。
【請求項4】
請求項3に記載のビデオ復号方法であって、
前記候補変換係数の強度が、複数の強度セグメントに含まれ、複数のコンテキストが、前記強度セグメントのそれぞれに属する変換係数のための符号シグナリングビットをエントロピー符号化するために割り当てられ、
前記符号シグナリングビットをエントロピー符号化するために使用される前記コンテキストを決定することが、
前記複数の強度セグメントの中から、前記符号シグナリングビットに対応する前記候補変換係数の前記強度が属する強度セグメントを決定することと、
前記符号シグナリングビットをエントロピー符号化するために使用される前記コンテキストとして前記強度セグメントに割り当てられる前記コンテキストを決定することと
を更に含む、
方法。
【請求項5】
請求項4に記載のビデオ復号方法であって、
前記複数の強度セグメントの中で連続する強度セグメントが2つごとに、閾値によって分離される、
方法。
【請求項6】
請求項5に記載のビデオ復号方法であって、
前記閾値が、前記デコーダに予めプログラムされた固定値である、
方法。
【請求項7】
請求項5に記載のビデオ復号方法であって、
前記閾値が、エンコーダによって決定され、前記ビットストリームに含めて前記デコーダにシグナリングされる
方法。
【請求項8】
請求項3に記載のビデオ復号方法であって、前記ビットストリームが、前記候補変換係数の前記セットの量子化レベルの符号化されたデータを更に含み、
逆量子化なしで前記ビットストリームから前記候補変換係数の量子化レベルを直接パースすることによって前記候補変換係数の前記強度を決定すること
を更に含む方法。
【請求項9】
請求項3に記載のビデオ復号方法であって、前記ビットストリームが、前記候補変換係数の前記セットの量子化レベルの符号化されたデータを更に含み、
前記ビットストリームから前記候補変換係数の量子化レベルをパースすることと、
前記候補変換係数の前記量子化レベル及び前記候補変換係数の遷移状態に基づいて前記候補変換係数の量子化インデックスを決定することと、
前記候補変換係数の前記量子化インデックスに基づいて前記候補変換係数の前記強度を決定することと
を更に含む方法。
【請求項10】
請求項1に記載のビデオ復号方法であって、前記候補変換係数の前記セットが、強度に応じて並べ替えられた前記変換ブロックの変換係数から選択され、
前記ビットストリームからパースされた前記候補変換係数の前記セットを並べ替えること
を更に含む方法。
【請求項11】
請求項10に記載のビデオ復号方法であって、
前記符号シグナリングビットをエントロピー符号化するために使用される前記コンテキストが、並べ替えられた前記変換係数の前記強度に基づいて決定される、
方法。
【請求項12】
請求項10に記載のビデオ復号方法であって、
前記符号シグナリングビットをエントロピー符号化するために使用される前記コンテキストが、前記並べ替え前の前記変換係数の前記強度に基づいて決定される、
方法。
【請求項13】
請求項1に記載のビデオ復号方法であって、
前記符号シグナリングビットのそれぞれを復号することが、
前記符号シグナリングビットに対応する前記候補変換係数のスキャン位置に基づいて、前記符号シグナリングビットをエントロピー符号化するために使用されるコンテキストを決定すること
を更に含む方法。
【請求項14】
請求項13に記載のビデオ復号方法であって、
前記変換係数のスキャン位置が、複数のグループに分類され、複数のコンテキストが、前記グループのそれぞれに属する変換係数のための符号シグナリングビットをエントロピー符号化するために割り当てられ、
前記符号シグナリングビットをエントロピー符号化するために使用される前記コンテキストを決定することが、
前記複数のグループの中から、前記符号シグナリングビットに対応する前記候補変換係数の前記スキャン位置が属するグループを決定することと、
前記符号シグナリングビットをエントロピー符号化するために使用される前記コンテキストとして前記グループに割り当てられた前記コンテキストを決定することと
を更に含む、
方法。
【請求項15】
請求項1に記載のビデオ復号方法であって、
前記符号シグナリングビットのそれぞれを復号することが、
前記符号シグナリングビットに対応する前記候補変換係数の符号化モード、ブロックサイズ又はコンポーネントチャネル情報に基づいて前記符号シグナリングビットをエントロピー符号化するために使用されるコンテキストを決定すること
を更に含む、
方法。
【請求項16】
請求項1に記載のビデオ復号方法であって、
前記ビットストリーム内の前記変換係数の前記セットが、複数の異なる変換コアを適用することによって生成され、
前記符号シグナリングビットのそれぞれを復号することが、
前記符号シグナリングビットに対応する前記候補変換係数を生成するために適用された前記変換コアに基づいて前記符号シグナリングビットをエントロピー符号化するために使用されるコンテキストを決定すること
を更に含む、
方法。
【請求項17】
請求項16に記載のビデオ復号方法であって、
前記変換コアが、多重変換選択(MTS)及び低周波数非分離変換(LFNST)を含む、
方法。
【請求項18】
請求項1に記載のビデオ復号方法であって、
前記候補変換係数の前記セットに対する前記予測符号の前記セットを生成することが、
前記候補変換係数の前記セットのための複数の候補仮説を生成することと、
前記候補変換係数の前記セットに対する前記予測符号の前記セットとして前記複数の候補仮説から仮説を選択することと
を更に含む、
方法。
【請求項19】
候補変換係数のセット及び前記候補変換係数の前記セットのための符号シグナリングビットのシーケンスを含むビットストリームを記憶するように構成されたメモリと、
前記メモリに結合されたプロセッサであって、請求項1から18のいずれか一項に記載の変換係数の符号予測のためのビデオ復号方法を実行するように構成されたプロセッサと
を備えるビデオ復号装置。
【請求項20】
プロセッサによって実行されたときに、前記プロセッサが、請求項1から18のいずれか一項に記載の変換係数の符号予測のためのビデオ復号方法を実行するように仕向ける命令を記憶した非一時的なコンピュータ読取り可能な記憶媒体であって、
前記ビットストリームが、前記コンピュータ読取り可能な記憶媒体に記憶される、
非一時的なコンピュータ読取り可能な記憶媒体。
【請求項21】
候補変換係数のセットのための符号シグナリングビットのシーケンスを含むビットストリームを記憶した非一時的なコンピュータ読取り可能な記憶媒体であって、
前記ビットストリームが、請求項1から18のいずれか一項に記載の変換係数の符号予測のためのビデオ復号方法によって復号可能である、
非一時的なコンピュータ読取り可能な記憶媒体。
【請求項22】
変換係数の符号予測のためのビデオ符号化方法であって、
エンコーダのプロセッサにより、ビデオのビデオフレームの変換ブロックに関連付けられた候補変換係数のセットに対する予測符号のセットを生成することと、
前記プロセッサにより、前記候補変換係数の前記セットのための符号シグナリングビットのシーケンスをエントロピー符号化するための1つ又は複数のコンテキストを決定することと、
前記プロセッサにより、前記1つ又は複数のコンテキストに応じて符号シグナリングビットのシーケンスをエントロピー符号化することであって、前記符号シグナリングビットが、前記候補変換係数の前記セットの元の符号に比較した前記候補変換係数のそれぞれの前記予測符号の正しさを示すために使用される、エントロピー符号化することと、
前記候補変換係数の量子化レベルの符号化されたデータ及び前記候補変換係数のための符号化された前記符号シグナリングビットの前記シーケンスをビットストリーム内に記憶することと
を含む方法。
【請求項23】
請求項22に記載のビデオ符号化方法であって、
前記符号シグナリングビットの前記シーケンスをエントロピー符号化するための前記1つ又は複数のコンテキストが、前記符号シグナリングビットに対応する前記候補変換係数の前記セットの強度に基づいて決定される、
方法。
【請求項24】
請求項23に記載のビデオ符号化方法であって、
前記候補変換係数の前記セットのための前記符号シグナリングビットの前記シーケンスをエントロピー符号化するための前記1つ又は複数のコンテキストを決定することが、
前記変換係数の強度の範囲を複数の強度セグメントに分割することと、
前記強度セグメントに属する前記変換係数のための前記符号シグナリングビットをエントロピー符号化するためにコンテキストを前記強度セグメントのそれぞれに割り当てることと
ことを更に含む、
方法。
【請求項25】
請求項24に記載のビデオ符号化方法であって、
前記複数の強度セグメントの中で連続する強度セグメントが2つごとに、閾値によって分離される、
方法。
【請求項26】
請求項25に記載のビデオ符号化方法であって、
前記閾値が、前記エンコーダ内に予めプログラムされた固定値である、
方法。
【請求項27】
請求項25に記載のビデオ符号化方法であって、
前記閾値を決定することと、
前記閾値を前記ビットストリームに含めてデコーダにシグナリングすることと
を更に含む方法。
【請求項28】
請求項23に記載のビデオ符号化方法であって、
それぞれの強度に応じて前記変換ブロックの変換係数を並べ替えることと、
並べ替えられた前記変換係数から前記候補変換係数の前記セットを選択することと
を更に含む方法。
【請求項29】
請求項28に記載のビデオ復号方法であって、
前記符号シグナリングビットの前記シーケンスをエントロピー符号化するための前記1つ又は複数のコンテキストが、並べ替えられた前記変換係数の前記強度に基づいて決定される、
方法。
【請求項30】
請求項28に記載のビデオ復号方法であって、
前記符号シグナリングビットの前記シーケンスをエントロピー符号化するための前記1つ又は複数のコンテキストが、前記並べ替え前の前記変換係数の前記強度に基づいて決定される、
方法。
【請求項31】
請求項23に記載のビデオ符号化方法であって、
前記符号シグナリングビットの前記シーケンスをエントロピー符号化するための前記1つ又は複数のコンテキストが、前記候補変換係数の前記量子化レベルを使用して決定される、
方法。
【請求項32】
請求項23に記載のビデオ符号化方法であって、
前記符号シグナリングビットの前記シーケンスをエントロピー符号化するための前記1つ又は複数のコンテキストが、それぞれが前記候補変換係数の前記量子化レベル及び前記遷移状態に基づいて決定された前記候補変換係数の量子化インデックスを使用して決定される、
方法。
【請求項33】
請求項22に記載のビデオ符号化方法であって、
前記符号シグナリングビットの前記シーケンスをエントロピー符号化するための前記1つ又は複数のコンテキストが、前記候補変換係数のスキャン位置に基づいて決定される、
方法。
【請求項34】
請求項33に記載のビデオ符号化方法であって、
前記候補変換係数の前記セットのための前記符号シグナリングビットの前記シーケンスをエントロピー符号化するための前記1つ又は複数のコンテキストを決定することが、
前記候補変換係数の前記スキャン位置を複数のグループに分類することと、
前記グループに属する前記変換係数のための前記符号シグナリングビットをエントロピー符号化するために前記グループのそれぞれにコンテキストを割り当てることと
を更に含む、
方法。
【請求項35】
請求項22に記載のビデオ符号化方法であって、
前記符号シグナリングビットの前記シーケンスをエントロピー符号化するための前記1つ又は複数のコンテキストが、候補変換係数のそれぞれの符号化モード、ブロックサイズ又はコンポーネントチャネル情報に基づいて決定される、
方法。
【請求項36】
請求項22に記載のビデオ符号化方法であって、
前記変換係数の前記セットの前記量子化レベルが、複数の異なる変換コアを適用することによって生成され、
前記符号シグナリングビットの前記シーケンスをエントロピー符号化するための前記1つ又は複数のコンテキストが、前記候補変換係数を生成するために適用された前記変換コアに基づいて決定される、
方法。
【請求項37】
請求項36に記載のビデオ符号化方法であって、
前記変換コアが、多重変換選択(MTS)及び低周波数非分離変換(LFNST)を含む、
方法。
【請求項38】
請求項22に記載のビデオ符号化方法であって、
前記候補変換係数の前記セットに対する前記予測符号の前記セットを生成することが、
前記候補変換係数の前記セットのための複数の候補仮説を生成することと、
前記候補変換係数の前記セットに対する前記予測符号の前記セットとして前記複数の候補仮説から仮説を選択することと
を更に含む、
方法。
【請求項39】
ビデオ符号化装置であって、
請求項22から38のいずれか一項に記載の変換係数の符号予測のためのビデオ復号方法を実行するように構成されたプロセッサと、
前記プロセッサに結合されたメモリであって、前記ビットストリームを記憶するように構成されたメモリと
を備えるビデオ符号化装置。
【請求項40】
プロセッサによって実行されたときに、前記プロセッサが、請求項22から38のいずれか一項に記載の変換係数の符号予測のためのビデオ符号化方法を実行するように仕向ける命令を記憶した非一時的なコンピュータ読取り可能な記憶媒体であって、
前記ビットストリームが、前記コンピュータ読取り可能な記憶媒体に記憶される、
非一時的なコンピュータ読取り可能な記憶媒体。
【請求項41】
請求項22から38のいずれか一項に記載の変換係数の符号予測のためのビデオ符号化方法によって符号化されたビットストリームを記憶した非一時的なコンピュータ読取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本出願は、2021年12月16日に出願された米国仮特許出願第63/290,307号に基づくものであり、米国仮特許出願第63/290,307号の優先権を主張する。本出願は更に、2022年11月8日に出願されたPCT出願第PCT/US22/49264号に基づくものであり、PCT出願第PCT/US22/49264号の優先権を主張する。PCT出願第PCT/US22/49264号は更に、2021年11月10日に出願された米国仮特許出願第63/277,705号の優先権を主張する。本出願は更に、2022年9月15日に出願されたPCT出願第PCT/US22/43607号に基づくものであり、PCT出願第PCT/US22/43607号の優先権を主張する。PCT出願第PCT/US22/43607号は更に、2021年9月15日に出願された米国仮特許出願第63/244,317号及び2021年9月30日に出願された米国仮特許出願第63/250,797号の優先権を主張する。本出願は更に、2022年8月16日に出願されたPCT出願第PCT/US22/40442号に基づくものであり、PCT出願第PCT/US22/40442号の優先権を主張する。PCT出願第PCT/US22/40442号は更に、2021年8月17日に出願された米国仮特許出願第63/233,940号の優先権を主張する。上記のすべての出願の内容は、その全体が参照により本明細書に組み込まれる。
【0002】
本出願は、ビデオ符号化及び圧縮に関する。より厳密には、本出願は、ブロックベースビデオ符号化における符号予測のためのビデオ処理システム及び方法に関する。
【背景技術】
【0003】
デジタルビデオは、デジタルテレビ、ラップトップ又はデスクトップコンピュータ、タブレットコンピュータ、デジタルカメラ、デジタル記録デバイス、デジタルメディアプレーヤー、ビデオゲームコンソール、スマートフォン、ビデオ会議デバイス、ビデオストリーミングデバイス等の多様な電子機器によってサポートされる。電子機器は、通信ネットワークを介してデジタルビデオデータを送受信若しくは通信し、及び/又は記憶装置にデジタルビデオデータを記憶する。通信ネットワークの帯域幅の容量が限られていること、及び記憶装置のメモリリソースが限られていることを理由にして、ビデオデータを通信又は記憶する前に1つ又は複数のビデオ符号化規格に従ってビデオデータを圧縮するためにビデオ符号化が使用され得る。例えば、ビデオ符号化規格には、多用途ビデオ符号化(VVC)、共同探索テストモデル(JEM)、高効率ビデオ符号化(HEVC/H.265)、高度ビデオ符号化(AVC/H.264)又はムービング・ピクチャ・エキスパート・グループ(MPEG)符号化等が挙げられる。ビデオ符号化は一般に、ビデオデータに固有の冗長性を活用する予測方法(例えば、インター予測又はイントラ予測等)を利用する。ビデオ符号化は、ビデオ品質の劣化を回避又は最小化しながら、ビデオデータを、より低いビットレートを用いる形態に圧縮することを目的とする。
【発明の概要】
【発明が解決しようとする課題】
【0004】
本開示の実装形態は、変換係数の符号予測のためのビデオ復号方法を提供する。ビデオ復号方法は、候補変換係数のセットのための符号シグナリングビットのシーケンスを含むビットストリームを受信することを含み得る。ビデオ復号方法は、デコーダのプロセッサにより、ビデオのビデオフレームの変換ブロックに関連付けられた候補変換係数のセットに対する予測符号のセットを生成することを更に含み得る。ビデオ復号方法は、プロセッサにより、符号シグナリングビットのシーケンスをエントロピー符号化するために使用される1つ又は複数のコンテキストに基づいて符号シグナリングビットのシーケンスを復号して、候補変換係数のそれぞれの予測符号の正しさの指標を得ることを更に含み得る。ビデオ復号方法は、プロセッサにより、予測符号のセット及び復号された符号シグナリングビットのシーケンスに基づいて候補変換係数のセットの元の符号を推定することを更に含み得る。
【0005】
本開示の実装形態は、ビデオ復号装置も提供する。ビデオ復号装置は、上記において要約された変換係数の符号予測のためのビデオ復号方法を実行するように構成されたメモリを含むことができる。
【0006】
本開示の実装形態は、プロセッサによって実行されたときに、プロセッサが、上記において要約された変換係数の符号予測のためのビデオ復号方法を実行するように仕向ける命令を記憶した非一時的なコンピュータ読取り可能な記憶媒体も提供する。本開示の実装形態は、候補変換係数のセットのための符号シグナリングビットのシーケンスを含むビットストリームを記憶した非一時的なコンピュータ読取り可能な記憶媒体を更に提供する。ビットストリームは、上記において要約された変換係数の符号予測のためのビデオ復号方法によって復号可能である。
【0007】
本開示の実装形態は、変換係数の符号予測のためのビデオ符号化方法も提供する。ビデオ符号化方法は、エンコーダのプロセッサにより、ビデオのビデオフレームの変換ブロックに関連付けられた候補変換係数のセットに対する予測符号のセットを生成することを含み得る。ビデオ符号化方法は、プロセッサにより、候補変換係数のセットのための符号シグナリングビットのシーケンスをエントロピー符号化するための1つ又は複数のコンテキストを決定することを更に含み得る。ビデオ符号化方法は、プロセッサにより、1つ又は複数のコンテキストに応じて符号シグナリングビットのシーケンスを決定することを更に含み得る。符号シグナリングビットは、候補変換係数のセットの元の符号に比較して候補変換係数のそれぞれの予測符号の正しさを示すために、1つ又は複数のコンテキストを使用してエントロピー符号化される。ビデオ符号化方法は、候補変換係数の量子化レベルの符号化されたデータ及び候補変換係数のための符号化された符号シグナリングビットのシーケンスをビットストリーム内に記憶することを更に含み得る。
【0008】
本開示の実装形態は、ビデオ符号化装置も提供する。ビデオ復号装置は、上記において要約された変換係数の符号予測のためのビデオ符号化方法を実行するように構成されたメモリを含むことができる。
【0009】
本開示の実装形態は、プロセッサによって実行されたときに、プロセッサが、上記において要約された変換係数の符号予測のためのビデオ符号化方法を実行するように仕向ける命令を記憶した非一時的なコンピュータ読取り可能な記憶媒体も提供する。本開示の実装形態は、候補変換係数のセットのための符号シグナリングビットのシーケンスを含むビットストリームを記憶した非一時的なコンピュータ読取り可能な記憶媒体を更に提供する。ビットストリームは、上記において要約された変換係数の符号予測のためのビデオ符号化方法によって復号可能である。
【0010】
上記の一般的な説明と下記の詳細な説明は両方とも例にすぎず、本開示に限定を加えるものではないことを理解すべきである。
【0011】
本明細書に組み込まれて本明細書の一部を構成する添付の図面は、本開示による例を示すものであり、本明細書と一緒になって、本開示の原理を説明するのに役立つ。
【図面の簡単な説明】
【0012】
図1】本開示のいくつかの実装形態によるビデオブロックを符号化及び復号するための例示的なシステムを示すブロック図である。
図2】本開示のいくつかの実装形態による例示的なビデオエンコーダを示すブロック図である。
図3】本開示のいくつかの実装形態による例示的なビデオデコーダを示すブロック図である。
図4A】本開示のいくつかの実装形態による、どのようにフレームがサイズ及び形状が異なる複数のビデオブロックに再帰的に分割されるかを示す図式である。
図4B】本開示のいくつかの実装形態による、どのようにフレームがサイズ及び形状が異なる複数のビデオブロックに再帰的に分割されるかを示す図式である。
図4C】本開示のいくつかの実装形態による、どのようにフレームがサイズ及び形状が異なる複数のビデオブロックに再帰的に分割されるかを示す図式である。
図4D】本開示のいくつかの実装形態による、どのようにフレームがサイズ及び形状が異なる複数のビデオブロックに再帰的に分割されるかを示す図式である。
図4E】本開示のいくつかの実装形態による、どのようにフレームがサイズ及び形状が異なる複数のビデオブロックに再帰的に分割されるかを示す図式である。
図5】いくつかの例による係数グループ内の変換係数の左上スキャン順序を示す図式である。
図6】いくつかの例による低周波数非分離変換(LFNST)プロセスを示す図式である。
図7】いくつかの例による順方向LFNSTに入力された一次変換係数の左上領域を示す図式である。
図8】いくつかの例によるイントラテンプレートマッチングの検索領域を示す図式である。
図9】いくつかの例による符号予測の例示的なプロセスを示す図式である。
図10】いくつかの例による符号予測のためのコスト関数の計算を示す図式である。
図11】いくつかの例による従属スカラー量子化において使用される2つの例示的なスカラー量子化器を示す図式である。
図12A】いくつかの例による従属スカラー量子化において4つの状態が使用されるステートマシンを使用する状態遷移を示す図式である。
図12B】いくつかの例による図12Aの状態遷移に応じた例示的な量子化器の選択を示す表である。
図13】本開示のいくつかの実装形態によるブロックベースビデオ符号化における例示的な符号予測プロセスを示すブロック図である。
図14】本開示のいくつかの実装形態によるテンプレートの線形結合に基づいた例示的な仮説生成を示す図式である。
図15A】いくつかの例による既存の符号予測スキームの例示的な実装形態を示す図式である。
図15B】本開示のいくつかの実装形態によるベクトルベース符号予測スキームの例示的な実装形態を示す図式である。
図16A】本開示のいくつかの実装形態による左斜め方向に沿った左斜めコスト関数の例示的な計算を示す図式である。
図16B】本開示のいくつかの実装形態による右斜め方向に沿った右斜めコスト関数の例示的な計算を示す図式である。
図17】本開示のいくつかの実装形態による再構成された現在ブロックの隣接サンプルの支配的な勾配方向をキャプチャするための方法の流れ図である。
図18A】本開示のいくつかの実装形態による、コスト関数のサンプル外挿方向の勾配ベース選択における例示的なテンプレートサンプル及び勾配フィルターウィンドウを示す図式である。
図18B】本開示のいくつかの実装形態による、コスト関数のサンプル外挿方向の勾配ベース選択における例示的な勾配ヒストグラム(HoG)を示す図式である。
図19】いくつかの例による変換係数の符号を予測するための符号予測エリアを示す図式である。
図20A】本開示のいくつかの実装形態による変換係数符号予測のための例示的なコンテキストモデリングを示す図式である。
図20B】本開示のいくつかの実装形態による変換係数符号予測のための別の例示的なコンテキストモデリングを示す図式である。
図21】本開示のいくつかの実装形態によるブロックベースビデオ符号化における符号予測のための例示的な方法の流れ図である。
図22】本開示のいくつかの実装形態によるビデオエンコーダによって実行される変換係数符号予測のための例示的なビデオ符号化方法の流れ図である。
図23】本開示のいくつかの実装形態によるビデオデコーダによって実行される変換係数符号予測のための例示的なビデオ復号方法の流れ図である。
図24】本開示のいくつかの実装形態による使用者インターフェースと結合されたコンピューティング環境を示すブロック図である。
【発明を実施するための形態】
【0013】
次に、特定の実装形態について詳細に言及する。これらの特定の実装形態の例は、添付の図面において示される。下記の詳細な説明において、数多くの非限定的な特定の詳細が、本明細書において提供された主題の理解を補助するために記載される。しかしながら、様々な代替形態が、特許請求の範囲から逸脱することなく使用され得ること、及び主題が、これらの特定の詳細なしで実施され得ることは当業者には明らかであろう。例えば、本明細書において提示された主題が、デジタルビデオ機能を有する任意の種類の電子機器に実装され得ることは当業者には明らかであろう。
【0014】
本開示の本明細書、特許請求の範囲及び添付の図面において使用される「第1」及び「第2」等の用語は、対象物を区別するために使用され、任意の特定の順番又はシーケンスを記載するためには使用されないことは、説明されるべきことである。このように使用されるデータは、適切な条件下においては相互に置き換え可能であることを理解すべきであり、したがって、本明細書に記載された本開示の実施形態が添付の図面に示された又は本開示において記載された順序以外の順序で実装されてもよい。
【0015】
図1は、本開示のいくつかの実装形態による、ビデオブロックを並列に符号化及び復号するための例示的なシステム10を示すブロック図である。図1に示されるように、システム10は、後で宛先デバイス14によって復号されることになるビデオデータを生成及び符号化する、ソースデバイスソースデバイス12を備える。ソースデバイス12及び宛先デバイス14は、デスクトップ若しくはラップトップコンピュータ、タブレットコンピュータ、スマートフォン、セットトップボックス、デジタルテレビ、カメラ、表示装置、デジタルメディアプレーヤー、ビデオゲームコンソール又はビデオストリーミングデバイス等を含む、多種多様な電子機器のいずれかを含み得る。いくつかの実装形態において、ソースデバイス12及び宛先デバイス14は、無線通信機能を備える。
【0016】
いくつかの実装形態において、宛先デバイス14は、リンク16を介して、復号すべき符号化されたビデオデータを受信することができる。リンク16は、符号化されたビデオデータを、ソースデバイス12から宛先デバイス14に送付することが可能な任意の種類の通信媒体又はデバイスを備えることができる。一例において、リンク16は、ソースデバイス12が、符号化されたビデオデータを宛先デバイス14にリアルタイムで直接伝送することを可能にするための通信媒体を備えることができる。符号化されたビデオデータは、無線通信プロトコル等の通信規格に従って変調され、宛先デバイス14に伝送され得る。通信媒体は、無線周波数(RF)帯域又は1つ若しくは複数の物理的伝送路等の任意の無線又は有線通信媒体を備えることができる。通信媒体は、ローカルエリアネットワーク、広域ネットワーク又はインターネット等のグローバルネットワーク等のパケットベースネットワークの一部を形成し得る。通信媒体は、ルーター、スイッチ、基地局、又は、ソースデバイス12から宛先デバイス14への通信を容易化するのに有用であり得る任意の他の機器を備えることができる。
【0017】
いくつかの他の実装形態において、符号化されたビデオデータは、出力インターフェース22から記憶装置32に伝送され得る。続いて、記憶装置32内の符号化されたビデオデータは、入力インターフェース28を介して宛先デバイス14によってアクセスされ得る。記憶装置32は、ハードドライブ、ブルーレイディスク、デジタル多用途ディスク(DVD)、コンパクトディスクリードオンリーメモリー(CD-ROM)、フラッシュメモリ、揮発性若しくは不揮発性メモリ、又は、符号化されたビデオデータを記憶するための任意の他の適切なデジタル記憶媒体等、多様な分散型又はローカルアクセス型データ記憶媒体のいずれかを備えることができる。更なる一例において、記憶装置32は、ソースデバイス12によって生成された符号化されたビデオデータを記憶することができるファイルサーバ又は別の中間記憶装置に対応し得る。宛先デバイス14は、記憶装置32からのストリーミング又はダウンロードによって、記憶されたビデオデータにアクセスすることができる。ファイルサーバは、符号化されたビデオデータを記憶し、符号化されたビデオデータを宛先デバイス14に伝送することが可能な任意の種類のコンピュータであり得る。例示的なファイルサーバは、ウェブサーバ(例えば、ウェブサイト用のウェブサーバ)、ファイル転送プロトコル(FTP)サーバ、ネットワーク接続ストレージ(NAS)デバイス又はローカルディスクドライブを含む。宛先デバイス14は、無線チャネル(例えば、ワイヤレス・フィデリティ(Wi-Fi)接続)、有線接続(例えば、デジタル加入者線(DSL)、ケーブルモデム等)、又は、ファイルサーバ上に記憶された符号化されたビデオデータへのアクセスに適するこれらの任意の組合せを含む任意の標準的なデータ接続によって符号化されたビデオデータにアクセスすることができる。記憶装置32からの符号化されたビデオデータの伝送は、ストリーミング伝送、ダウンロード伝送又はこれらの両方の組合せであってもよい。
【0018】
図1に示されるように、ソースデバイス12は、ビデオソース18、ビデオエンコーダ20及び出力インターフェース22を備える。ビデオソース18は、ビデオキャプチャデバイス、例えば、ビデオカメラ、事前にキャプチャされたビデオを含むビデオアーカイブ、ビデオコンテンツプロバイダからビデオデータを受信するためのビデオ配信インターフェース、及び/又は、ソースビデオとしてコンピュータグラフィックスデータを生成するためのコンピュータグラフィックスシステム又はこのようなソースの組合せ等のソースを含み得る。一例として、ビデオソース18が安全監視システムのビデオカメラである場合、ソースデバイス12及び宛先デバイス14は、カメラフォン又はテレビ電話を備えることができる。しかしながら、本開示に記載された実装形態は、一般にビデオ符号化に適用可能なものであり得、無線及び/又は有線用途に適用することができる。
【0019】
キャプチャされた、予めキャプチャされた又はコンピュータ生成されたビデオは、ビデオエンコーダ20によって符号化され得る。符号化されたビデオデータは、ソースデバイス12の出力インターフェース22を介して宛先デバイス14に直接伝送され得る。更には(又は代替的には)、符号化されたビデオデータは、復号及び/又はプレイバックを目的として後で宛先デバイス14又は他のデバイスがアクセスするために、記憶装置32に記憶されてもよい。出力インターフェース22は、モデム及び/又は伝送器を更に備えることができる。
【0020】
宛先デバイス14は、入力インターフェース28、ビデオデコーダ30及び表示装置34を備える。入力インターフェース28は、受信機及び/又はモデムを備え、リンク16を介して符号化されたビデオデータを受信することができる。リンク16を介して通信される又は記憶装置32に提供される符号化されたビデオデータは、ビデオデータの復号においてビデオデコーダ30が使用するための、ビデオエンコーダ20によって生成された多様なシンタックス要素を含み得る。このようなシンタックス要素は、通信媒体によって伝送される符号化されたビデオデータに含まれる、こともあるし、記憶媒体に記憶されることもあるし、又はファイルサーバに記憶されることもある。
【0021】
いくつかの実装形態において、宛先デバイス14は表示装置34を備えることができ、表示装置34は、宛先デバイス14と通信するように構成された組込み型表示装置及び外部表示装置であり得る。表示装置34は、ユーザのために復号されたビデオデータを表示し、液晶ディスプレイ(LCD)、プラズマディスプレイ、誘起発光ダイオード(OLED)ディスプレイ又は別の種類の表示装置等の多様な表示装置のいずれかを備えることができる。
【0022】
ビデオエンコーダ20及びビデオデコーダ30は、VVC、HEVC、MPEG-4、Part10、AVC又はこのような規格の拡張版等のプロプライエタリな規格又は工業規格に従って動作することができる。本開示は、特定のビデオ符号化/復号規格に限定されないこと、及び他のビデオ符号化/復号規格にも適用可能であり得ることを理解すべきである。一般には、ソースデバイス12のビデオエンコーダ20は、前述の現在又は未来の規格のいずれかに従ってビデオデータを符号化するように構成され得ることが企図される。同様に、一般には、宛先デバイス14のビデオデコーダ30が、前述の現在の規格又は未来の規格のいずれかに従ってビデオデータを復号するように構成され得ることも企図される。
【0023】
ビデオエンコーダ20及びビデオデコーダ30はそれぞれ、1つ又は複数のマイクロプロセッサ、デジタルシグナルプロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ディスクリートロジック、ソフトウェア、ハードウェア、ファームウェア又はこれらの任意の組合せ等、多様な適切なエンコーダ及び/又はデコーダ回路のいずれかとして実装され得る。部分的にソフトウェアで実装される場合、電子機器は、適切で非一時的なコンピュータ読取り可能な媒体内にソフトウェア用の命令を記憶することができ、1つ又は複数のプロセッサを使用してハードウェア内の命令を実行して、本開示において開示されたビデオ符号化/復号操作を実行することができる。ビデオエンコーダ20及びビデオデコーダ30のそれぞれが、1つ又は複数のエンコーダ又はデコーダに含まれ得、エンコーダ又はデコーダのいずれもが、各デバイス内の複合型エンコーダ/デコーダ(CODEC)の一部として組み込まれ得る。
【0024】
図2は、本出願に記載されたいくつかの実装形態による例示的なビデオエンコーダ20を示すブロック図である。ビデオエンコーダ20は、ビデオフレーム内のビデオブロックのイントラ予測符号化及びインター予測符号化を実行することができる。イントラ予測符号化は、所与のビデオフレーム又はピクチャ内のビデオデータの空間的冗長性を削減又は除去するために、空間的予測に依存する。インター予測符号化は、ビデオシーケンスの隣接ビデオフレーム又は隣接ピクチャ内でのビデオデータの時間的冗長性を削減又は除去するために時間的予測に依存する。「フレーム」という用語が、ビデオ符号化の分野における「画像」又は「ピクチャ」という用語の同義語として使用され得ることに留意すべきである。
【0025】
図2に示されるように、ビデオエンコーダ20は、ビデオデータメモリ40、予測処理ユニット41、復号ピクチャバッファー(DPB)64、加算器50、変換処理ユニット52、量子化ユニット54及びエントロピー符号化ユニット56を含む。予測処理ユニット41は、動き推定ユニット42、動き補償ユニット44、分割ユニット45、イントラ予測処理ユニット46及びイントラブロックコピー(BC)ユニット48を更に備える。いくつかの実装形態において、ビデオエンコーダ20は、ビデオブロック再構成のために逆量子化ユニット58、逆変換処理ユニット60及び加算器62を更に備える。デブロッキングフィルタ等のインループフィルタ63は、ブロック境界をフィルタリングして再構成されたビデオデータからブロックアーティファクトを除去するために加算器62とDPB64との間に配置され得る。デブロッキングフィルタに加えて、SAOフィルタ及び/又はアダプティブインループフィルタ(ALF)等の別のインループフィルタが、加算器62の出力をフィルタリングするために使用されてもよい。いくつかの例において、インループフィルタは省略されてもよく、復号されたビデオブロックが加算器62によってDPB64に直接提供されてもよい。ビデオエンコーダ20は、書き換え不能な又は書き換え可能なハードウェアユニットの形態であってもよいし、又は、例示された書き換え不能な又は書き換え可能なハードウェアユニットのうちの1つ若しくは複数にわたって分割されてもよい。
【0026】
ビデオデータメモリ40は、ビデオエンコーダ20の構成要素によって符号化すべきビデオデータを記憶することができる。ビデオデータメモリ40内のビデオデータは、例えば、図1に示されるようなビデオソース18から得ることができる。DPB64は、ビデオエンコーダ20による(例えば、イントラ又はインター予測符号化モードでの)ビデオデータの符号化における使用のための参照ビデオデータ(例えば、参照フレーム又はピクチャ)を記憶するバッファーである。ビデオデータメモリ40及びDPB64は、多様なメモリデバイスのいずれかによって形成され得る。様々な例において、ビデオデータメモリ40は、ビデオエンコーダ20の他の構成要素と一緒にしたオンチップ型のものであってもよいし、又は、ビデオデコーダ20の他の構成要素に対してオフチップ型のものであってもよい。
【0027】
図2に示されるように、ビデオデータを受信した後、予測処理ユニット41内の分割ユニット45は、ビデオデータをビデオブロックに分割する。この分割は、ビデオデータに関連付けられた四分木(QT)構造等の予め規定された分割構造に従って、ビデオフレームをスライス、タイル(例えば、ビデオブロックのセット)又は他のより大きな符号化単位(CU)に分割することも含み得る。ビデオフレームは、サンプル値を有するサンプルの二次元配列若しくは行列であり、又はこのような二次元配列若しくは行列であると考えることができる。配列内のサンプルは、画素又はペルと呼ばれることもある。配列又はピクチャの水平及び垂直方向(又は軸)のいくつかのサンプルは、ビデオフレームのサイズ及び/又は解像度を規定する。ビデオフレームは、例えばQT分割を使用することによって、複数のビデオブロックに分割され得る。やはり、ビデオブロックは、ビデオフレームより寸法が小さいがサンプル値を有するサンプルの二次元配列又は行列の二次元配列若しくは行列であり、又はこのような二次元配列若しくは行列であると考えることができる。ビデオブロックの水平及び垂直方向(又は軸)のいくつかのサンプルが、ビデオブロックのサイズを規定する。ビデオブロックは、例えばQT分割、二分木(BT)分割、三分木(TT)分割又はこれらの任意の組合せを反復して使用することによって、1つ又は複数のブロックパーティション又はサブブロック(やはりブロックを形成し得る)に更に分割され得る。本明細書において使用される「ブロック」又は「ビデオブロック」という用語は、フレーム又はピクチャの部分、特に矩形(正方形又は非正方形)部分であり得ることに留意すべきである。例えばHEVC及びVVCに関しては、ブロック又はビデオブロックは、符号化ツリーユニット(CTU)、CU、予測ユニット(PU)若しくは変換ユニット(TU)であり得、若しくはこれらに対応し得、及び/又は、対応するブロック、例えば、符号化ツリーブロック(CTB)、符号化ブロック(CB)、予測ブロック(PB)若しくは変換ブロック(TB)であり得、若しくはこれらに対応し得る。代替的には又は更には、ブロック又はビデオブロックは、CTB、CB、PB、TB等のサブブロックであり得、又はこのようなサブブロックに対応し得る。
【0028】
予測処理ユニット41は、誤り結果(例えば、符号化レート及び歪みのレベル)に基づいて現在ビデオブロックのために、複数のイントラ予測符号化モードのうちの1つ、又は複数のインター予測符号化モードのうちの1つ等の、複数の可能な予測符号化モードのうちの1つを選択することができる。予測処理ユニット41は、得られたイントラ又はインター予測符号化ブロック(例えば、予測ブロック)を加算器50に提供して残差ブロックを生成することができ、加算器62に提供して、参照フレームの一部として後で使用するための符号化されたブロックを再構成することができる。予測処理ユニット41は、動きベクトル、イントラモード指示子、分割情報及び他のこのようなシンタックス情報等のシンタックス要素もエントロピー符号化ユニット56に適用する。
【0029】
現在ビデオブロックに適したイントラ予測符号化モードを選択するために、予測処理ユニット41内のイントラ予測処理ユニット46は、符号化すべき現在ブロックと同じフレーム内の1つ又は複数の隣接ブロックに対する現在ビデオブロックのイントラ予測符号化を実行して、空間的予測を実行することができる。予測処理ユニット41内の動き推定ユニット42及び動き補償ユニット44は、1つ又は複数の参照フレーム内の1つ又は複数の予測ブロックに対する現在ビデオブロックのインター予測符号化を実行して、時間的予測を実行する。ビデオエンコーダ20は、例えばビデオデータの各ブロックに適した符号化モードを選択するために、複数の符号化パスを実行することができる。
【0030】
いくつかの実装形態において、動き推定ユニット42は、ビデオフレームのシーケンス内の所定のパターンに応じて、参照フレーム内の予測ブロックに対する現在ビデオフレーム内のビデオブロックの変位を示す動きベクトルを生成することによって、現在ビデオフレームのためのインター予測モードを決定する。動き推定ユニット42によって実行される動き推定は、ビデオブロックについての動きを推定することができる動きベクトルを生成するプロセスであり得る。動きベクトルは例えば、参照フレーム内の予測ブロックに対する現在ビデオフレーム又はピクチャ内のビデオブロックの変位を示し得る。所定のパターンは、シーケンス内のビデオフレームをPフレーム又はBフレームとして指定することができる。イントラBCユニット48は、イントラBC符号化のためのベクトル、例えば、インター予測のための動き推定ユニット42による動きベクトルの決定と同様の方法によってブロックベクトルを決定することもできるし、又は動き推定ユニット42を利用してブロックベクトルを決定することもできる。
【0031】
ビデオブロックに対する予測ブロックは、差分絶対和(SAD)、差分二乗和(SSD)又は他の差分メトリクスによって決定され得る画素差分の観点において、符号化すべきビデオブロックと密接にマッチングするものとして解釈される参照フレームのブロック又は参照ブロックであり得る又はこれらに対応し得る。いくつかの実装形態において、ビデオエンコーダ20は、DPB64に記憶された参照フレームのサブ整数画素位置の値を計算することができる。例えば、ビデオエンコーダ20は、参照フレームの1/4画素位置、1/8画素位置又は他の分数画素位置の値を補間することができる。したがって、動き推定ユニット42は、1画素位置及び分数画素位置に対する動き検索を実行し、分数画素精度で動きベクトルを出力することができる。
【0032】
動き推定ユニット42は、ビデオブロックの位置を第1の参照フレームリスト(リスト0)又は第2の参照フレームリスト(リスト1)から選択される参照フレームの予測ブロックの位置に比較することによって、インター予測符号化されたフレーム内のビデオブロックについての動きベクトルを計算し、これらの参照フレームリストのそれぞれは、DPB64に記憶された1つ又は複数の参照フレームを特定する。動き推定ユニット42は、計算された動きベクトルを動き補償ユニット44に送信し、次いでエントロピー符号化ユニット56に送信する。
【0033】
動き補償ユニット44によって実行される動き補償は、動き推定ユニット42によって決定される動きベクトルに基づいて予測ブロックをフェッチ又は生成することを包含し得る。現在ビデオブロックについての動きベクトルを受信した際、動き補償ユニット44は、参照フレームリストのうちの1つの中で動きベクトルが指し示す予測ブロックを探し当て、DPB64から予測ブロックを取り出し、順方向予測ブロックを加算器50に送付することができる。次いで、加算器50は、符号化されている現在ビデオブロックの画素値から動き補償ユニット44によって提供される予測ブロックの画素値を減算することによって、画素差分値の残差ブロックを形成する。残差ブロックを形成する画素差分値は、ルマ若しくはクロマ差分成分又はこれらの両方を含み得る。動き補償ユニット44は、ビデオフレームのビデオブロックの復号におけるビデオデコーダ30の使用のためにビデオフレームのビデオブロックと関連付けられたシンタックス要素も生成することができる。シンタックス要素は例えば、予測ブロックを特定するために使用される動きベクトルを規定するシンタックス要素、予測モードを示す任意のフラグ又は本明細書に記載された任意の他のシンタックス情報を含み得る。動き推定ユニット42及び動き補償ユニット44は一緒に組み込まれることも可能であるが、図2においては概念的な目的について別々に示されることに留意する。
【0034】
いくつかの実装形態において、イントラBCユニット48は、上記において動き推定ユニット42及び動き補償ユニット44に関して記述された方法と同様の方法によってベクトルを生成し、予測ブロックをフェッチすることができるが、ここで、予測ブロックは、符号化されている現在ブロックと同じフレームであり、ベクトルは、動きベクトルとの対比でブロックベクトルと呼ばれる。特に、イントラBCユニット48は、現在ブロックを符号化するために使用すべきイントラ予測モードを決定することができる。いくつかの例において、イントラBCユニット48は、例えば別々の符号化パス中に様々なイントラ予測モードを使用して現在ブロックを符号化し、レート歪み分析によって性能をテストすることができる。次に、イントラBCユニット48は、テストされた様々なイントラ予測モードの中から、使用すべき適切なイントラ予測モードを選択し、これに応じてイントラモード指示子を生成することができる。例えば、イントラBCユニット48は、テストされた様々なイントラ予測モードのためのレート歪み分析を使用してレート歪み値を計算し、テストされたモードの中で最良のレート歪み特性を有するイントラ予測モードを、使用すべき適切なイントラ予測モードとして選択することができる。レート歪み分析は、符号化されたブロックと、当該符号化されたブロックを生成するために符号化された、符号化されていない元のブロックとの間での歪み(又は誤り)の量、及び、符号化されたブロックを生成するために使用されたビットレート(すなわち、ビットの数)を概略的に決定する。イントラBCユニット48は、様々な符号化されたブロックに関する歪み及びレートから比を計算して、どのイントラ予測モードがブロックに関する最良のレート歪み値を示すかを決定することができる。
【0035】
他の例において、イントラBCユニット48は、動き推定ユニット42及び動き補償ユニット44の全体又は一部を使用して、本明細書に記載された実装形態によるイントラBC予測のための前述の機能を実行することができる。いずれの場合においても、イントラブロックコピーの場合、予測ブロックは、SAD、SSD又は他の差分メトリクスによって決定され得る画素差分の観点において、符号化すべきブロックと密接にマッチングするものとして解釈されるブロックであり得、予測ブロックの特定は、サブ整数画素位置の値の計算を含み得る。
【0036】
予測ブロックがイントラ予測に従って同じフレームから得られたものであるか、インター予測に従って異なるフレームから得られたものであるかにかかわらず、ビデオエンコーダ20は、符号化されている現在ビデオブロックの画素値から予測ブロックの画素値を減算し、画素差分値を形成することによって、残差ブロックを形成することができる。残差ブロックを形成する画素差分値は、ルマ成分差分とクロマ成分差分の両方を含み得る。
【0037】
イントラ予測処理ユニット46は、上記のように、動き推定ユニット42及び動き補償ユニット44によって実行されるインター予測又はイントラBCユニット48によって実行されるイントラブロックコピー予測の代替として、現在ビデオブロックをイントラ予測することができる。特に、イントラ予測処理ユニット46は、現在ブロックを符号化するために使用するイントラ予測モードを決定することができる。例えば、イントラ予測処理ユニット46は、例えば別々の符号化パス中に、様々なイントラ予測モードを使用して現在ブロックを符号化することができ、イントラ予測処理ユニット46(又はいくつかの例においては、モード選択ユニット)は、テストされたイントラ予測モードから使用すべき適切なイントラ予測モードを選択することができる。イントラ予測処理ユニット46は、ブロックのために選択されたイントラ予測モードを示す情報をエントロピー符号化ユニット56に提供することができる。エントロピー符号化ユニット56は、選択されたイントラ予測モードを示す情報を符号化してビットストリームに含めることができる。
【0038】
予測処理ユニット41がインター予測又はイントラ予測によって現在ビデオブロックに対する予測ブロックを決定した後、加算器50は、現在ビデオブロックから予測ブロックを減算することによって残差ブロックを形成する。残差ブロック内の残差ビデオデータは、1つ又は複数のTUに含まれ得、変換処理ユニット52に提供される。変換処理ユニット52は、離散コサイン変換(DCT)又は概念的に類似する変換等の変換を使用して、残差ビデオデータを変換係数に変換する。
【0039】
変換処理ユニット52は、得られた変換係数を量子化ユニット54に送信することができる。量子化ユニット54は、変換係数を量子化してビットレートを更に削減する。量子化プロセスは、係数のうちの一部又はすべてに関連付けられたビット深度を低下させることもできる。量子化の度合いは、量子化パラメータを調整することによって修正され得る。いくつかの例において、量子化ユニット54は次いで、量子化された変換係数を含む行列のスキャンを実行することができる。代替的には、エントロピー符号化ユニット56がスキャンを実行することができる。
【0040】
量子化後、エントロピー符号化ユニット56は、エントロピー符号化技法を使用して、例えば、コンテキストアダプティブ可変長符号化(CAVLC)、コンテキストアダプティブ二値算術符号化(CABAC)、シンタックスベースコンテキストアダプティブ二値算術符号化(SBAC)、確率区間分割エントロピー(PIPE)符号化又は別のエントロピー符号化方法若しくは技法を使用して、量子化された変換係数を符号化してビデオビットストリームに含めることができる。符号化されたビットストリームは次いで、図1に示されたビデオデコーダ30に伝送されてもよいし、又は、後でビデオデコーダ30が伝送又は取り出すために図1に示された記憶装置32にアーカイブされてもよい。エントロピー符号化ユニット56は、エントロピー符号化技法を使用して、符号化されている現在ビデオフレームについての動きベクトル及び他のシンタックス要素を符号化することもできる。
【0041】
逆量子化ユニット58及び逆変換処理ユニット60は、それぞれ逆量子化及び逆変換を適用して、他のビデオブロックの予測のための参照ブロックを生成するために画素ドメイン内の残差ブロックを再構成する。こうすることにより、再構成された残差ブロックが生成され得る。上記のように、動き補償ユニット44は、動き補償された予測ブロックを、DPB64に記憶されたフレームの1つ又は複数の参照ブロックから生成することができる。動き補償ユニット44は、1つ又は複数の補間フィルタを予測ブロックに適用して、動き推定における使用のためのサブ整数画素値を計算することもできる。
【0042】
加算器62は、再構成された残差ブロックを、動き補償ユニット44によって生成された動き補償された予測ブロックに追加して、DPB64に記憶するための参照ブロックを生成する。次いで、参照ブロックは、イントラBCユニット48、動き推定ユニット42及び動き補償ユニット44によって、後続のビデオフレーム内の別のビデオブロックをインター予測するための予測ブロックとして使用され得る。
【0043】
図3は、本出願のいくつかの実装形態による例示的なビデオデコーダ30を示すブロック図である。ビデオデコーダ30は、ビデオデータメモリ79、エントロピー復号ユニット80、予測処理ユニット81、逆量子化ユニット86、逆変換処理ユニット88、加算器90及びDPB92を備える。予測処理ユニット81は、動き補償ユニット82、イントラ予測ユニット84及びイントラBCユニット85を更に備える。ビデオデコーダ30は、図2との関連でビデオエンコーダ20に関して上述された符号化プロセスとは概ね逆の復号プロセスを実行することができる。例えば、動き補償ユニット82は、エントロピー復号ユニット80から受信した動きベクトルに基づいて予測データを生成することができるが、イントラ予測ユニット84は、エントロピー復号ユニット80から受信したイントラ予測モードに基づいて予測データを生成することができる。
【0044】
いくつかの例において、ビデオデコーダ30のユニットは、本出願の実装形態を実行するようにタスク化され得る。更に、いくつかの例において、本開示の実装形態は、ビデオデコーダ30のユニットのうちの1つ又は複数の間で分割されてもよい。例えば、イントラBCユニット85は、本出願の実装形態を単独で実行することもできるし、又は、動き補償ユニット82、イントラ予測ユニット84及びエントロピー復号ユニット80等のビデオデコーダ30の他のユニットと組み合わせられて実行することもできる。いくつかの例において、ビデオデコーダ30は、イントラBCユニット85を備えなくてもよく、イントラBCユニット85の機能は、動き補償ユニット82等の予測処理ユニット81の他の構成要素によって実行されてもよい。
【0045】
ビデオデータメモリ79は、ビデオデコーダ30の他の構成要素によって復号されることになる、符号化されたビデオビットストリーム等のビデオデータを記憶することができる。ビデオデータメモリ79に記憶されたビデオデータは例えば、記憶装置32から、カメラ等のローカルビデオソースから、ビデオデータの有線又は無線ネットワーク通信を介して、又は物理的データ記憶媒体(例えば、フラッシュドライブ又はハードディスク)へのアクセスによって得ることができる。ビデオデータメモリ79は、符号化されたビデオビットストリームから符号化されたビデオデータを記憶する符号化ピクチャバッファー(CPB)を含み得る。ビデオデコーダ30のDPB92は、ビデオデコーダ30による(例えば、イントラ又はインター予測符号化モードにおける)ビデオデータの復号における使用のための参照ビデオデータを記憶する。ビデオデータメモリ79及びDPB92は、同期型DRAM(SDRAM)を含むダイナミックランダムアクセスメモリ(DRAM)、磁気抵抗型RAM(MRAM)、抵抗変化型RAM(RRAM)又は他の種類のメモリデバイス等の多様なメモリデバイスのいずれかによって形成され得る。例示用として、ビデオデータメモリ79及びDPB92は、図3において、ビデオデコーダ30の2つの異なる構成要素として示される。しかしながら、ビデオデータメモリ79及びDPB92が同じメモリデバイス又は別個のメモリデバイスによって提供され得ることが当業者には明らかであろう。いくつかの例において、ビデオデータメモリ79は、ビデオデコーダ30の他の構成要素と一緒にしたオンチップ型のものであってもよいし、又は、ビデオデコーダ30の他の構成要素に対してオフチップ型のものであってもよい。
【0046】
復号プロセス中、ビデオデコーダ30は、符号化されたビデオフレームのビデオブロック及び関連するシンタックス要素を表現する符号化されたビデオビットストリームを受信する。ビデオデコーダ30は、ビデオフレームレベル及び/又はビデオブロックレベルでシンタックス要素を受信することができる。ビデオデコーダ30のエントロピー復号ユニット80は、エントロピー復号技法を使用してビットストリームを復号し、これによって、量子化された係数、動きベクトル又はイントラ予測モード指示子及び他のシンタックス要素を得ることができる。次いで、エントロピー復号ユニット80は、動きベクトル又はイントラ予測モード指示子及び他のシンタックス要素を予測処理ユニット81に送付する。
【0047】
ビデオフレームがイントラ予測符号化された(例えば、I)フレームとして符号化され、又は他の種類のフレーム内のイントラ符号化された予測ブロック用に符号化される場合、予測処理ユニット81のイントラ予測ユニット84は、シグナリングされたイントラ予測モードと、事前に復号された現在フレームのブロックからの参照データとに基づいて、現在ビデオフレームのビデオブロックに対する予測データを生成することができる。
【0048】
ビデオフレームがインター予測符号化された(すなわち、B又はP)フレームとして符号化された場合、予測処理ユニット81の動き補償ユニット82は、エントロピー復号ユニット80から受信した動きベクトル及び他のシンタックス要素に基づいて現在ビデオフレームのビデオブロックに対する1つ又は複数の予測ブロックを生成する。予測ブロックのそれぞれは、参照フレームリストのうちの1つの中の参照フレームから生成され得る。ビデオデコーダ30は、DPB92に記憶された参照フレームに基づいてデフォルトの構成技法を使用して参照フレームリスト、例えばリスト0及びリスト1を構成することができる。
【0049】
いくつかの例において、ビデオブロックが本明細書に記載されたイントラBCモードに応じて符号化されると、予測処理ユニット81のイントラBCユニット85は、エントロピー復号ユニット80から受信したブロックベクトル及び他のシンタックス要素に基づいて現在ビデオブロックに対する予測ブロックを生成する。予測ブロックは、ビデオエンコーダ20によって処理される現在ビデオブロックと同じピクチャの再構成された領域内にあってよい。
【0050】
動き補償ユニット82及び/又はイントラBCユニット85は、動きベクトル及び他のシンタックス要素をパースすることによって現在ビデオフレームのビデオブロックに対する予測情報を決定し、次いで予測情報を使用して、復号されている現在ビデオブロックに対する予測ブロックを生成する。例えば、動き補償ユニット82は、受信したシンタックス要素のうちの一部を使用して、ビデオフレームのビデオブロックを符号化するために使用される予測モード(例えば、イントラ又はインター予測)と、インター予測フレームタイプ(例えば、B又はP)と、フレームに対する参照フレームリストのうちの1つ又は複数についての構成情報と、インター予測符号化されたフレームのビデオブロックのそれぞれについての動きベクトルと、インター予測符号化されたフレームのビデオブロックのそれぞれに対するインター予測ステータスと、現在ビデオフレーム内のビデオブロックを復号するための他の情報とを決定する。
【0051】
同様に、イントラBCユニット85は、受信したシンタックス要素、例えば、フラグのうちの一部を使用して、現在ビデオブロックがイントラBCモードを使用して予測されたことと、フレームのどのビデオブロックが再構成された領域に含まれるか及びDPB92に記憶されるべきであるかに関する構成情報と、イントラBC予測されたフレームのビデオブロックのそれぞれについてのブロックベクトルと、イントラBC予測されたフレームのビデオブロックのそれぞれに対するイントラBC予測ステータスと、現在ビデオフレーム内のビデオブロックを復号するための他の情報とを決定することができる。
【0052】
動き補償ユニット82は、ビデオブロックの符号化中にビデオエンコーダ20によって使用されるような補間フィルタを使用して補間を実行して、参照ブロックのサブ整数画素の補間された値を計算することもできる。この場合、動き補償ユニット82は、受信したシンタックス要素からビデオエンコーダ20によって使用された補間フィルタを決定し、補間フィルタを使用して予測ブロックを生成することができる。
【0053】
逆量子化ユニット86は、ビットストリームに含めて提供されてエントロピー復号ユニット80により復号された量子化された変換係数を、ビデオフレーム内の各ビデオブロックのためにビデオエンコーダ20によって計算された同じ量子化パラメータを使用して逆量子化して、量子化の度合いを決定する。逆変換処理ユニット88は、画素ドメイン内の残差ブロックを再構成するために逆変換、例えば逆DCT、逆整数変換又は概念的に類似する逆変換プロセスを変換係数に適用する。
【0054】
動き補償ユニット82又はイントラBCユニット85がベクトル及びシンタックス要素に基づいて現在ビデオブロックに対する予測ブロックを生成した後、加算器90は、逆変換処理ユニット88からの残差ブロックと、動き補償ユニット82及びイントラBCユニット85によって生成された対応する予測ブロックとを合算することによって、現在ビデオブロックに対して復号されたビデオブロックを再構成する。復号されたビデオブロックは、現在ビデオブロックについての再構成されたブロックと呼ばれることもある。デブロッキングフィルタ、SAOフィルタ及び/又はALF等のインループフィルタ91は、復号されたビデオブロックを更に処理するために、加算器90とDPB92との間に配置され得る。いくつかの例において、インループフィルタ91は省略されてもよく、復号されたビデオブロックが加算器90によってDPB92に直接提供されてもよい。所与のフレーム内の復号されたビデオブロックは次いで、DPB92に記憶され、DPB92は、後で次のビデオブロックを動き補償するために使用される参照フレームを記憶する。DPB92又はDPB92から独立したメモリデバイスは、後で図1の表示装置34等の表示装置で表示するために、復号されたビデオを記憶することもできる。
【0055】
典型的なビデオ符号化プロセス(例えば、ビデオ符号化プロセス及びビデオ復号プロセスを含む)において、ビデオシーケンスは一般的に、順序付けられたフレーム又はピクチャのセットを含む。各フレームは、SL、SCb及びSCrと表される3つのサンプル配列を含み得る。SLは、ルマサンプルの二次元配列である。SCbは、Cbクロマサンプルの二次元配列である。SCrは、Crクロマサンプルの二次元配列である。他の場合において、フレームはモノクロであってもよく、したがって、ルマサンプルの二次元配列を1つのみ含む。
【0056】
図4Aに示されるように、ビデオエンコーダ20(又はより厳密には分割ユニット45)は、最初にフレームを1セットのCTUに分割することによって、符号化されたフレームの表現を生成する。ビデオフレームは、ラスタスキャン順序で左から右及び上から下に連続的に配列された整数のCTUを含み得る。各CTUは、最大の論理符号化ユニットであり、CTUの幅及び高さは、ビデオエンコーダ20によってシーケンスパラメータセットに含めてシグナリングされ、結果として、ビデオシーケンス内のすべてのCTUが、128×128、64×64、32×32及び16×16のうちの1つである同じサイズを有する。しかしながら、本開示のCTUは、必ずしも特定のサイズに限定されるとは限らないことに留意すべきである。図4Bに示されるように、各CTUは、ルマサンプルの1つのCTB、対応する2つのクロマサンプルの符号化ツリーブロック及び符号化ツリーブロックのサンプルを符号化するために使用されるシンタックス要素を含み得る。シンタックス要素は、画素の符号化ブロックの様々な種類のユニットの特性、及びビデオシーケンスがビデオデコーダ30でどのように再構成され得るかを記述し、インター又はイントラ予測、イントラ予測モード、動きベクトル及び他のパラメータを含む。モノクロのピクチャ又は3つの異なる色平面を有するピクチャにおいて、CTUは、単一の符号化ツリーブロック及び符号化ツリーブロックのサンプルを符号化するために使用されるシンタックス要素を含み得る。符号化ツリーブロックは、サンプルのN×Nブロックであり得る。
【0057】
より良好な性能を達成するために、ビデオエンコーダ20は、二分木分割、三分木分割、四分木分割又はこれらの組合せ等のツリー分割をCTUの符号化ツリーブロックに再帰的に実行し、CTUをより小さいCUに分割することができる。図4Cに示されるように、64×64CTU400は最初に、それぞれが32×32のブロックサイズを有する4つの小さなCUに分割される。4つのより小さいCUの中で、CU410及びCU420はそれぞれ、ブロックサイズが16×16である4つのCUに分割される。2つの16×16CU430及び440はそれぞれ、ブロックサイズが8×8である4つのCUに更に分割される。図4Dは、図4Cに示されるCTU400の分割プロセスの最終結果を示す四分木データ構造を示し、四分木の各リーフノードは、それぞれのサイズが32×32から8×8の範囲である1つのCUに対応する。図4Bに示されたCTUと同様に、各CUは、ルマサンプルからなるCB及び対応する同じサイズのフレームのクロマサンプルからなる2つの符号化ブロック、並びに、符号化ブロックのサンプルを符号化するために使用されるシンタックス要素を含み得る。モノクロのピクチャ又は3つの異なる色平面を有するピクチャにおいて、CUは、単一の符号化ブロック及び符号化ブロックのサンプルを符号化するために使用されるシンタックス構造を含み得る。図4C及び図4Dに示された四分木分割は、例示用のものにすぎず、四分木/三分木/二分木パーティションに基づいて1つのCTUをCUに分割して、種々の局所的な特性に適応させることができることに留意すべきである。多分木構造において、1つのCTUは、四分木構造によって分割され、各四分木リーフCUは、二分木構造及び三分木構造によって更に分割され得る。図4Eに示されるように、幅W及び高さHを有する符号化ブロックの複数の可能な分割方式、すなわち、四分割、垂直二分割、水平二分割、垂直三分割、垂直拡張三分割、水平三分割及び水平拡張三分割が存在する。
【0058】
いくつかの実装形態において、ビデオエンコーダ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ブロックを生成することができる。
【0059】
ビデオエンコーダ20は、イントラ予測又はインター予測を使用して、PUに対する予測ブロックを生成することができる。ビデオエンコーダ20がイントラ予測を使用してPUの予測ブロックを生成する場合、ビデオエンコーダ20は、PUに関連付けられたフレームの復号されたサンプルに基づいてPUの予測ブロックを生成することができる。ビデオエンコーダ20がインター予測を使用してPUの予測ブロックを生成する場合、ビデオエンコーダ20は、PUに関連付けられたフレーム以外の1つ又は複数のフレームの復号されたサンプルに基づいてPUの予測ブロックを生成することができる。
【0060】
ビデオエンコーダ20がCUの1つ又は複数のPUに対する予測ルマ、Cb及びCrブロックを生成した後、ビデオエンコーダ20は、CUのルマ残差ブロック内の各サンプルが、CUの予測ルマブロックの1つの中のルマサンプルと、CUの元のルマ符号化ブロックの中の対応サンプルとの差分を示すように、CUの元のルマ符号化ブロックからCUの予測ルマブロックを減算することによって、CUのルマ残差ブロックを生成することができる。同様に、ビデオエンコーダ20は、CUのCb残差ブロック内の各サンプルがCUの予測Cbブロックの1つの中のCbサンプルと、CUの元のCb符号化ブロックの中の対応サンプルとの差分を示し、CUのCr残差ブロック内の各サンプルがCUの予測Crブロックのうちの1つの中のCrサンプルと、CUの元のCr符号化ブロック内の対応サンプルとの差分を示し得るように、CUのCb残差ブロック及びCr残差ブロックをそれぞれ生成することができる。
【0061】
更に、図4Cに示されるように、ビデオエンコーダ20は四分木分割を使用して、CUのルマ残差ブロック、Cb残差ブロック及びCr残差ブロックを、それぞれ1つ又は複数のルマ、Cb及びCr変換ブロックに分解することができる。変換ブロックは、同じ変換が適用されるサンプルの矩形(正方形又は非正方形)ブロックを含み得る。CUのTUは、ルマサンプルからなる変換ブロック、対応するクロマサンプルからなる2つの変換ブロック、及び、変換ブロックサンプルを変換するために使用されるシンタックス要素を含み得る。したがって、CUの各TUは、ルマ変換ブロック、Cb変換ブロック及びCr変換ブロックに関連付けられ得る。いくつかの例において、TUに関連付けられたルマ変換ブロックは、CUのルマ残差ブロックのサブブロックであってもよい。Cb変換ブロックは、CUのCb残差ブロックのサブブロックであってもよい。Cr変換ブロックは、CUのCr残差ブロックのサブブロックであってもよい。モノクロのピクチャ又は3つの別個の色平面を有するピクチャにおいて、TUは、単一の変換ブロック及び変換ブロックのサンプルを変換するために使用されるシンタックス構造を含み得る。
【0062】
ビデオエンコーダ20は、1つ又は複数の変換をTUのルマ変換ブロックに適用して、TUについてのルマ係数ブロックを生成することができる。係数ブロックは、変換係数の二次元配列であり得る。変換係数は、スカラー量であり得る。ビデオエンコーダ20は、1つ又は複数の変換をTUのCb変換ブロックに適用して、TUについてのCb係数ブロックを生成することができる。ビデオエンコーダ20は、1つ又は複数の変換をTUのCr変換ブロックに適用して、TUについてのCr係数ブロックを生成することができる。
【0063】
係数ブロック(例えば、ルマ係数ブロック、Cb係数ブロック又はCr係数ブロック)を生成した後、ビデオエンコーダ20は、係数ブロックを量子化することができる。量子化は一般に、変換係数を量子化して、変換係数を表現するために使用されるデータの量を潜在的に削減し、更なる圧縮を実現するプロセスを指す。ビデオエンコーダ20が係数ブロックを量子化した後、ビデオエンコーダ20は、量子化された変換係数を示すシンタックス要素を符号化するためにエントロピー符号化技法を適用することができる。例えば、ビデオエンコーダ20は、量子化された変換係数を示すシンタックス要素にCABACを実行することができる。最後に、ビデオエンコーダ20は、符号化されたフレーム及び関連データの表現を形成するビットのシーケンスを含むビットストリームを出力することができ、このビットストリームは、記憶装置32に記憶され、又は宛先デバイス14に伝送される。
【0064】
ビデオエンコーダ20によって生成されたビットストリームを受信した後、ビデオデコーダ30は、ビットストリームをパースして、ビットストリームからシンタックス要素を得ることができる。ビデオデコーダ30は、ビットストリームから得られたシンタックス要素を少なくとも部分的にベースにしてビデオデータのフレームを再構成することができる。ビデオデータを再構成するプロセスは、ビデオエンコーダ20によって実行される符号化プロセスとは概ね逆のものである。例えば、ビデオデコーダ30は、現在CUのTUに関連付けられた係数ブロックに逆変換を実行して、現在CUのTUに関連付けられた残差ブロックを再構成することができる。ビデオデコーダ30は、現在CUのPUに対する予測ブロックのサンプルを現在CUのTUの変換ブロックの対応サンプルに追加することによって現在CUの符号化ブロックを再構成もする。フレームの各CUについて符号化ブロックを再構成した後、ビデオデコーダ30は、フレームを再構成することができる。
【0065】
上記のように、ビデオ符号化は、主に2つのモード、すなわち、イントラフレーム予測(又はイントラ予測)及びインターフレーム予測(又はインター予測)を使用してビデオ圧縮を達成する。イントラブロックコピー(IBC)は、イントラフレーム予測又は第3のモードとして解され得ることに留意する。2つのモードのうち、イントラフレーム予測よりインターフレーム予測の方が、参照ビデオブロックから現在ビデオブロックを予測するための動きベクトルを使用するおかげで符号化効率により多く寄与する。
【0066】
しかしながら、ビデオデータキャプチャ技術が絶え間なく向上し、ビデオデータ内の詳細事項を記憶するためのより洗練されたビデオブロックサイズがより洗練されるのに伴って、現在フレームについての動きベクトルを表現するために必要なデータの量も大幅に増大する。この難点を克服する方法の1つは、空間的ドメイン及び時間的ドメインの両方で隣接CUのグループが予測用の類似ビデオデータを有するだけでなく、これらの隣接CU間の動きベクトルも類似することからも利益を受けることである。したがって、空間的に隣接するCU及び/又は時間的に同じ場所に位置するCUの動き情報は、空間的及び時間的な相関関係を探索することによって、現在CUの動き情報(例えば、動きベクトル)の近似として使用することができ、この近似は、現在CUの「動きベクトル予測子(MVP)」とも呼ばれる。
【0067】
現在CUの実際の動きベクトルをビデオビットストリーム(例えば、見かけの動きベクトルは、図2に関して上述したように、動き推定ユニット42によって決定される。)に符号化する代わりに、現在CUの見かけの動きベクトルから現在CUの動きベクトル予測子を減算して、現在CUについての動きベクトル差分(MVD)を生成する。このようにすることによって、動き推定ユニット42によって決定されるフレームの各CUに対する動きベクトルを符号化してビデオビットストリームに含める必要がなく、ビデオビットストリーム内の動き情報を表現するために使用されるデータの量を顕著に減少させることができる。
【0068】
符号ブロックのインターフレーム予測中に参照フレーム内の予測ブロックを選択するプロセスと同様に、現在CUの空間的に隣接するCU及び/又は時間的に同じ場所に位置するCUに関連付けられた可能な候補動きベクトルを使用して現在CUに対する動きベクトル候補リスト(「マージリスト」としても知られる)を構成した後、現在CUのための動きベクトル予測子として動きベクトル候補リストから1つのメンバーを選択するために、1セットのルールがビデオエンコーダ20とビデオデコーダ30の両方によって採用され得る。このようにすることによって、動きベクトル候補リスト自体をビデオエンコーダ20からビデオデコーダ30に伝送する必要がなく、選択された動きベクトル候補リスト内の動きベクトル予測子のインデックスは、ビデオエンコーダ20及びビデオデコーダ30が、現在CUを符号化及び復号するための動きベクトル候補リスト内の同じ動きベクトル予測子を使用するのに十分である。したがって、選択された動きベクトル予測子のインデックスのみは、ビデオエンコーダ20からビデオデコーダ30に送信される必要がある。
【0069】
本明細書において、ブロックベースビデオ符号化プロセス(例えば、向上型圧縮モデル(ECM))における変換係数符号化に関する簡単な説明が提供される。厳密には、各変換ブロックは最初に、複数の係数グループ(CG)に分割され、各係数グループは、ルマ成分についての4×4サブブロックの変換係数及びクロマ成分についての2×2サブブロックの変換係数を含む。変換ブロック内の変換係数の符号化は、係数グループのユニットにおいて実行される。例えば、変換ブロックの内部の係数グループは、第1の所定のスキャン順序に基づいてスキャン及び符号化される。各係数グループを符号化するとき、係数グループの変換係数は、各サブブロック内で第2の所定のスキャン順序に基づいてスキャンされる。ECMにおいて、同じ左上スキャン順序を適用して、変換ブロックの内部の係数グループ及び各係数グループ内の異なる変換係数をスキャンする(例えば、第1の所定のスキャン順序と第2の所定のスキャン順序の両方が左上スキャン順序である)。図5は、いくつかの例による係数グループ内の変換係数の左上スキャン順序を示す図式である。図5の番号0~15は、対応する係数グループ内の変換係数のそれぞれのスキャン順序を示す。
【0070】
ECMにおける変換係数符号化スキームによれば、最初に、各変換ブロックに対して、変換ブロックが何らかの非0変換係数を含むかを示すフラグがシグナリングされる。変換ブロック内に少なくとも0でない変換係数が存在する場合、左上スキャン順序に従ってスキャンされた最後の非0変換係数の位置は、ビデオエンコーダ20からビデオデコーダ30に明示的にシグナリングされる。最後の非0変換係数の位置がシグナリングされることによって、最後の係数グループ(すなわち、最後の非0係数を含む係数グループ)の前に符号化されたすべての係数グループについてのフラグが更にシグナリングされる。これに対応して、フラグの数は、各係数グループが非0変換係数を含むか否かを示す。係数グループのフラグが0に等しい(係数グループ内のすべての変換係数が0であることを示す)場合、係数グループに関する更なる情報を送信する必要がない。そうでない場合(例えば、係数グループのフラグが1に等しい場合)、係数グループ内の変換係数のそれぞれの絶対値及び符号が、スキャン順序に従ってビットストリームに含めてシグナリングされる。しかしながら、既存の設計において、変換係数の符号はバイパス符号化される(例えば、コンテキストモデルが適用されない)ので、現在の設計の変換符号化は非効率的なものである。本開示による場合、変換符号化効率を改善することができるように変換係数の符号予測を用いる改良型LFNSTプロセスについては、下記においてより詳細に記述する。
【0071】
図6は、いくつかの例によるLFNSTプロセスを示す図式である。VVCにおいて、二次変換ツール(例えば、LFNST)が、一次変換後のイントラ符号化ブロックの変換係数のエネルギーを圧縮するために適用される。図6に示されるように、順方向LFNST604は、ビデオエンコーダ20において、順方向一次変換603と量子化605との間で適用され、逆LFNST608は、ビデオデコーダ30において、逆量子化607と逆一次変換609との間で適用される。例えば、LFNSTプロセスは、順方向LFNST604と逆LFNST608の両方を含み得る。いくつかの例として、4×4順方向LFNST604の場合、16の入力係数が存在し得、8×8順方向LFNST604、64の入力係数が存在し得、4×4逆LFNST608の場合、8の入力係数が存在し得、8×8逆LFNST608の場合、16の入力係数が存在し得る。
【0072】
順方向LFNST604では、行列乗算プロセスを使用して表すことができる符号化ブロックのサイズに基づいて、種々の変換サイズを用いる非分離変換が適用される。例えば、順方向LFNST604が4×4ブロックに適用されると仮定する。4×4ブロック内のサンプルは、下記式(1)に示される行列Xを使用して表すことができる。
【数1】
【0073】
行列Xは、下記式(2)に示される
として直列化することができる。
【数2】
【0074】
上記式(1)又は(2)中、Xは、順方向一次変換603によって得られた係数行列を表し、Xijは、行列X内の一次変換係数を表す。次いで、順方向LFNST604は、下記の式(3)に従って適用される。
【数3】
【0075】
【0076】
いくつかの実装形態において、縮小した非分離変換カーネルが、LFNSTプロセスにおいて適用され得る。例えば、上記式(3)に基づくと、順方向LFNST604は、変換係数を記憶するための計算操作及びメモリソースの観点から費用のかかるものである直接行列乗算に基づく。したがって、縮小した非分離変換カーネルは、R<Nの異なる空間内でN次元ベクトルをR次元ベクトルにマッピングすることによって、LFNSTプロセスの実装コストを削減するためにLFNST設計において使用され得る。例えば、変換カーネルのためのN×N行列を使用する代わりに、R×N行列は、式(4)に示される順方向LFNST604において、変換カーネルとして使用される。
【数4】
【0077】
上記式(4)中、TR×N中のR基底ベクトルは、元のN次元変換カーネル(すなわち、N×N)の第1のR基底を選択することによって生成される。更に、TR×Nが直行するので、逆LFNST608のための逆変換行列は、順方向変換行列TR×Nの転置である。
【0078】
8×8LFNSTの場合、係数N/R=4が適用されると、64×64変換行列は、順方向LFNST604の場合には16×48変換行列に縮小され、64×64逆変換行列は、逆LFNST608用の48×16逆変換行列に縮小される。これは、LFNSTプロセスを一次変換係数の左上領域内の8×8サブブロックに適用することによって達成される。厳密には、16×48順方向LFNSTが適用された場合、左上8×8サブブロック(右下4×4サブブロックを除く)内の3つの4×4サブブロックから48の変換係数が入力として利用される。いくつかの例において、LFNSTプロセスは、左上4×4サブブロックの外部にあるすべての変換係数が0である場合にのみ適用可能であるように制限される。このことは、LFNSTが適用された場合、一次のみの変換係数のすべてが0でなければならないことを示す。更に、(1画素当たりの乗算の観点から)最悪の場合の複雑度を制御するために、4×4符号化ブロック及び8×8符号化ブロックのLFNST行列は、それぞれ8×16変換及び8×48変換を強制的に受ける。4×M及びM×4符号化ブロック(M>4)の場合、LFNSTの非分離変換行列は、16×16である。
【0079】
LFNST変換シグナリングにおいて、合計4つの変換セットが存在し、変換セット1つ当たり2つの非分離変換カーネルは、LFNST設計において有効化される。変換セットは、イントラブロックのイントラ予測モードに従って4つの変換セットから選択される。イントラ予測モードから変換セットへのマッピングは、下記の表1に示されるように予め決定される。3つの交差成分線形モデル(CCLM)モード(例えば、inTRA_LT_CCLM、inTRA_T_CCLM又はINTRA_L_CCLM)のうちの1つが現在ブロック(81≦predModeIntra≦83)に対して使用された場合、変換セット「0」が現在クロマブロックのために選択される。各変換セットに関しては、選択された非分離二次変換候補は、ビットストリーム内のLFNSTインデックスをシグナリングすることによって示される。
【表1】
【0080】
いくつかの例において、第1の16×16サブブロックの外部にあるすべての変換係数が0である場合ではLFNSTがイントラブロックに適用されるように制限されるので、LFNSTインデックスのシグナリングは、最後の有意な(すなわち、非0)変換係数の位置に依存する。例えば、4×4及び8×8符号化ブロックの場合、LFNSTインデックスは、最後の有意な変換係数の位置が8未満である場合にのみシグナリングされる。他の符号化ブロックサイズの場合、LFNSTインデックスは、最後の有意な変換係数の位置が16未満である場合にのみシグナリングされる。そうでない場合(すなわち、LFNSTインデックスがシグナリングされない場合)、LFNSTインデックスが0であると推論され、すなわち、LFNSTが無効化される。
【0081】
更に、変換係数をキャッシュするためのバッファーのサイズを削減するために、シーケンスパラメータセット(SPS)に含めてシグナリングされる現在符号化ブロックの幅又は高さが最大変換サイズ(すなわち、64)より大きい場合には、LFNSTが許可されない。一方、LFNSTは、一次変換がDCT2である場合にのみ適用される。加えて、LFNSTは、イントラスライスとインタースライスの両方において、ルマ成分とクロマ成分の両方に対して、イントラ符号化ブロックに適用される。デュアルツリー又はローカルツリーが有効化される場合(ルマ成分のパーティションとクロマ成分のパーティションとが整合しない場合)、LFNSTインデックスは、ルマ成分及びクロマ成分に対して別々にシグナリングされる(すなわち、ルマ成分及びクロマ成分は、異なるLFNST変換を適用することができる。)。そうでない場合、シングルツリーが適用される場合(ルマ成分及びクロマ成分のパーティションが整合する場合)、単一のLFNSTインデックスがシグナリングされて、LFSNTがルマ成分にのみ適用される。
【0082】
ECMにおけるLFNST設計は、ブロックサイズの大きい残差サンプルのエネルギー圧縮を向上するために追加的なLFNSTカーネルが導入されるという点を除いて、VVCにおけるLFNST設計と同様である。厳密には、変換ブロックの幅又は高さが16より小さくない場合、新たなLFNST変換は、一次変換から生成された低周波数変換係数の左上領域に導入される。現在のECMにおいて、図7に示されるように、低周波数領域は、一次変換係数の左上隅の6つの4×4サブブロック(例えば、図7Aにおいて灰色で示される6つの4×4サブブロック)を含む。この場合、順方向LFNST604への係数入力の数は、96である。更には、最悪の場合の計算複雑度を制御するために、順方向LFNST604の係数出力の数は、32に設定される。
【0083】
厳密には、W≧16及びH≧16であるW×H変換ブロックの場合、32×96順方向LFNSTが適用され、左上領域内の6つの4×4サブブロック96の変換係数が入力として利用され、32の変換係数を出力する。他方、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つの異なる変換カーネルを含む。
【0084】
いくつかの例において、HEVCにおいて使用されるDCT2変換に加えて、多重変換選択(MTS)スキームが、インター符号化ブロックとイントラ符号化ブロックの両方の残差を変換するために適用される。MTSスキームは、DCT8及びDST7変換から選択される多重変換を使用する。
【0085】
例えば、イントラモード及びインターモードのためのMTSスキームを別々に有効化にするために、2つの制御フラグがシーケンスレベルで指定される。MTSスキームがシーケンスレベルで有効化される場合、MTSスキームが適用されたか否かを示すために、別のCUレベルフラグが更にシグナリングされる。いくつかの実装形態において、MTSスキームは、ルマ成分にのみ適用される。更に、MTSスキームは、(a) 幅と高さの両方が32以下であることという条件と、(b) 符号化ブロックフラグ(CBF)が1に等しいことという条件が満たされたときにのみシグナリングされる。MTS CUフラグが0に等しい場合、DCT2が水平方向と垂直方向の両方に適用される。MTS CUフラグが1に等しい場合、水平方向及び垂直方向のための変換方式のそれぞれを示すために、2つの他のフラグが追加的にシグナリングされる。MTS水平制御フラグ及びMTS垂直制御フラグとのマッピング及び適用された変換は、下記の表2に示される。
【表2】
【0086】
変換行列の精度に関しては、すべてのMTS変換係数が6ビット精度であり、これは、DCT2コア変換と同じである。VVCがHEVCにおいて使用されるすべての変換サイズをサポートするので、4点、8点、16点及び32点DCT-2変換及び4点DST-7変換を含むHEVCにおいて使用されるすべての変換コアは、VVCと同じであるように保たれる。一方、VVC変換設計においては、64点DCT-2、4点DCT-8、8点、16点、32点DST-7及びDCT-8を含む他の変換コアが追加的にサポートされる。更に、サイズが大きいDST-7及びDCT-8の複雑度を削減するために、DST-7及びDCT-8変換ブロックでは、幅又は高さが32に等しい場合、16×16低周波数領域の外部に位置する高周波数変換係数は、0に設定される(ゼロアウトとしても知られる)。
【0087】
VVCにおいて、DCT2以外では、DST7及びDCT8変換カーネルのみが、イントラ符号化及びインター符号化のために利用される。イントラ符号化の場合、残差信号の統計学的特性は通常、イントラ予測モードに依存する。追加的な一次変換は、残差特性の多様性を取り扱うために有益であり得る。
【0088】
ECMにおいては、DCT5、DST4、DST1及び恒等変換(IDT)を含む追加的な一次変換が採用される。更に、TUサイズ及びイントラモード情報に応じたMTSセットが作成される。16の異なるTUサイズが考えられ得るが、各TUサイズに関しては、イントラモード情報に応じて5つの異なるクラスが考えられ得る。各クラスについては、4つの異なる変換ペアが考えられる(VVCのものと同じ)。合計80の異なるクラスが考えられ得るが、これらの異なるクラスの一部は、大抵の場合、同じ変換セットを共有する。したがって、ルックアップテーブル(LUT)中には、58(80未満)の一意な成分が存在する。
【0089】
角度モードの場合、TU形状とイントラ予測に関する共同対称性が考慮される。したがって、TU形状A×Bを有するモードi(i>34)は、TU形状B×Aを用いるモードj=(68-i)に対応する同じクラスにマッピングされ得る。しかしながら、各変換ペアでは、水平変換カーネル及び垂直変換カーネルの次数が入れ替えられる。例えば、モード18(水平予測)を用いる16×4ブロック及びモード50(垂直予測)を用いる4×16ブロックは、垂直変換カーネル及び水平変換カーネルを入れ替えて、同じクラスにマッピングされる。広角モードの場合、最も近い従来の角度モードが変換セットの決定のために使用される。例えば、モード2は、-2から-14の間のすべてのモードのために使用される。同様に、モード66は、モード67~モード80のために使用される。
【0090】
イントラテンプレートマッチング予測は、L字形テンプレートが現在テンプレートとマッチングする現在フレームの再構成された部分から予測ブロックをコピーするイントラ予測モードの例である。所定の検索範囲に関しては、ビデオエンコーダ20は、現在フレームの再構成された部分内で(例えば、SADコストに基づいて)現在テンプレートに最も類似するテンプレートを検索し、対応するブロックを予測ブロックとして使用する。次いで、ビデオエンコーダ20がこのモードの使用をシグナリングし、同じ予測操作がデコーダ側で実行される。予測信号は、現在ブロックのL字形の臨時的な隣を、図8に示される、所定の検索領域内の別のブロックとマッチングすることによって生成され、この検索領域は、(a) 現在CTU(R1)、(b) 左上CTU(R2)、(c) 上CTU(R3)及び(d) 左CTU(R4)を含む。イントラテンプレートマッチングは、幅及び高さが64以下のサイズのCUに対して有効化される。一方、イントラテンプレートマッチング予測モードは、CUレベルでフラグをシグナリングすることによって示される。イントラテンプレートマッチングが、4~16(上限と下限を含む)の間の幅又は高さを有する符号化ブロックに適用される場合、対応する次元に適用される一時変換は、DST-VIIに設定される。そうでない場合(すなわち、幅又は高さが4より小さい又は16より大きい場合)、上記次元にはDCT-IIが適用される。
【0091】
図9は、いくつかの例による符号予測の例示的なプロセスを示す図式である。いくつかの実装形態において、符号予測は、隣接ブロックのサンプルから変換ブロック内の変換係数の符号を推定するために実行され得る。推定された符号の正しさは、符号予測が正しいかを示すためにコンテキストモデルに従って符号化され得る。例えば、1つのコンテキストモデルにおいて、推定された各符号間の差分を符号化することができ、対応する「0」(又は「1」)を有する真の符号は、推定された符号が真の符号と同じである(又は同じでない)ことを示す。符号が高い百分率で正確に推定され得る(例えば、符号の90%又は95%が正しく推定される)場合、推定された符号と真の符号との差分は0になる傾向があり、このような差分は、VVCにおける変換係数についてのバイパス符号化された符号に比較して、CABACによって効率的にエントロピー符号化され得る。本開示による場合、符号化効率を更に改善するために、他のコンテキストモデルを使用して符号予測の正しさをエントロピー符号化することができる。上記の他の例示的なコンテキストモデルについては、下記においてより詳細に記述する。
【0092】
一般に、現在ブロックと隣接ブロックとの境界にあるサンプル間には高い相関関係があり、これは、現在ブロックの変換係数の符号を予測するために符号予測スキームによって利用され得る。図9に示されるように、現在ブロック内にM個の非0変換係数(ここで、M個の符号はそれぞれ+又は-である)が存在すると仮定する。次いで、可能な符号の組合せの合計数は、2である。符号予測スキームは、符号の組合せのそれぞれを使用して対応する仮説(例えば、現在ブロックの上境界及び左境界にある再構成されたサンプル)を生成し、対応する仮説における再構成されたサンプルを、隣接ブロックから外挿されたサンプルと比較して、再構成されたサンプルと外挿されたサンプルとのサンプル差分(例えば、SSD又はSAD)を得る。(可能な2個の符号の組合せの中から)サンプル差分を最小化する符号の組合せが、現在ブロック内の予測符号として選択される。
【0093】
図9に示されるいくつかの実装形態において、M個の符号の組合せのそれぞれのための対応する仮説を生成するために、対応するM個の変換係数を逆量子化操作及び逆変換によって処理して残差サンプル残差サンプルを得ることができる。残差サンプルを予測サンプルと足し合わせて再構成されたサンプルを得ることができ、これらの再構成されたサンプルは、現在ブロックの上境界及び左境界上の再構成されたサンプル(L字形の灰色エリア902に示される)を含む。
【0094】
いくつかの実装形態において、現在ブロックと隣接ブロックとの境界にあるサンプル間の空間的不連続性を測定するコスト関数が、符号の組合せの選択のために使用される。L2ノルム(SSD)を使用する代わりに、コスト関数は、下記の式(5)に示されるL1ノルム(SAD)に基づき得る。
【数5】
【0095】
上記式(5)中、Bi,n(ここで、i=-2,-1)は、上隣接ブロックからの現在ブロックの隣接サンプルを表現する。Cm,j(ここで、j=-2,-1)は、左隣接ブロックからの現在ブロックの隣接サンプルを表現する。Pn,0及びPm,0は、それぞれ現在ブロックの上境界及び左境界上の再構成された対応サンプルを表現する。N及びMは、それぞれ現在ブロックの幅及び高さを表現する。図10は、符号予測のためのコスト関数を計算するために使用される、現在ブロックの対応サンプルPn,0及びPm,0並びに隣接ブロックの対応サンプルBi,n及びCm,jを示す。
【0096】
いくつかの実装形態において、テンプレートベース仮説再構成方法を符号予測スキームに適用して、複数の逆変換を実行する複雑さを回避することができる。各テンプレートは、現在ブロックの上境界及び左境界上の再構成されたサンプルのセットであり得、特定の係数が1に設定されるが他のすべての係数が0に等しい係数行列に逆変換を適用することによって取得することができる。逆変換(例えば、DCT、DST)が線形であるので、対応する仮説は、予め計算されたテンプレートのセットの線形結合によって生成され得る。
【0097】
いくつかの実装形態において、予測符号は、2つのセットに分類され、各セットは、単一のCABACコンテキストによって符号化される。例えば、第1のセットは、変換ブロックの左上隅にある変換係数の予測符号を含み、第2のセットは、他のすべての変換ブロックの場所にある変換係数の予測符号を含む。
【0098】
HEVCと同様に、スカラー量子化は、VVCにおいても使用される。いくつかの実装形態において、VVCにおけるスカラー量子化は、従属スカラー量子化として実装され得る。従属スカラー量子化は、変換係数の許容可能な再構成値のセットが、再構成順序で現在変換係数レベルに先行する変換係数レベルの値に依存するアプローチを指す。このアプローチの主な効果は、HEVCにおいて使用される従来の従属スカラー量子化に比較して、許容可能な再構成ベクトルが、N次元ベクトル空間(Nは、変換ブロック内の変換係数の数を表現する。)においてより高密度に詰め込まれることである。つまり、N次元単位体積当たりの許容可能な再構成ベクトルの平均数が与えられた場合、入力ベクトルと最も近い再構成ベクトルとの平均歪みが削減される。
【0099】
従属スカラー量子化は、(a) 異なる再構成レベルが異なる2つのスカラー量子化器を規定すること及び(b) 2つのスカラー量子化器を切り替えるためのプロセスを規定することによって実装され得る。図11は、本開示のいくつかの実装形態によるVVCの従属スカラー量子化において使用される2つの例示的なスカラー量子化器を示す。図11に示されるように、VVCの量子化設計においては、Q0及びQ1によって表される2つのスカラー量子化器が適用される。利用不能の再構成レベルの場所は、量子化ステップサイズΔによって一意に指定される。この実装形態において、2つのスカラー量子化器Q0及びQ1間の選択は、ビットストリーム含めて明示的にシグナリングされない。代わりに、現在変換係数のために使用される量子化器は、ビデオエンコーダ20による符号化順序又はビデオデコーダ30による再構成順序において現在変換係数に先行する変換係数レベルのパリティによって決定される。
【0100】
いくつかの実装形態において、2つのスカラー量子化器の切替えは、ステートマシンによって実行される。例えば、図12Aは、いくつかの例による4つの状態が従属スカラー量子化において使用されるステートマシンを使用する状態遷移を示す図式である。図12に示されるように、状態は、0、1、2、3という4つの異なる値をとり得る。状態は、符号化/再構成順序において現在変換係数に先行する変換係数レベルのパリティによって一意に決定される。
【0101】
いくつかの実装形態において、変換ブロックの逆量子化の開始時において、状態は、0に等しくなるように設定される。変換係数は、スキャン順序で再構成される(すなわち、同じ順序で変換係数をエントロピー復号する。)。
【0102】
現在変換係数が再構成された後、状態は、ステートマシンに応じて更新される。例えば、図12Aにおいて、kは、変換係数レベルの値を表す。各状態において、次の状態は、変換係数レベルkのパリティ、すなわち、(k&1)に基づいて決定される。(k&1)==1の場合の次の状態は、(k&1)==0の場合の次の状態とは異なる。図12Aに示されるように、ステートマシンは、4つの状態のそれぞれから2つの異なる状態を指し示す2つの矢印を含む。図12Bは、いくつかの例による図12Aの状態遷移に応じた例示的な量子化器の選択を示す表である。例えば、図12A及び図12Bによれば、状態1において、次の状態は、(k&1)==0の場合では2であり、(k&1)==1の場合では0である。
【0103】
これに対応して、デコーダにおいて、1つの変換係数の再構成された量子化インデックスは、式(6)に従って計算することができる。
【数6】
(式中、abs()は、入力の絶対値を計算する関数であり、状態は、現在変換係数のレベルをパースしたときの状態遷移マシンの現在の状態である。)。更に、デコーダ側において、逆量子化後に再構成された変換係数は、式(7)に従って得ることができる。
【数7】
【0104】
本明細書において、符号予測スキームの現在の設計に存在するいくつかの例示的な欠点が明確化される。第1の例において、現在のECMにおける符号予測は、一次変換(例えば、DCT及びDST変換)のみが適用される変換ブロック内の変換係数に対する符号の予測にのみ適用可能である。上記のように、LFNSTは、イントラ符号化ブロックの残差サンプルのより良好なエネルギー圧縮を実現するために、一次変換からの変換係数に適用され得る。しかしながら、現在のECM設計において、LFNSTが適用される変換ブロックに対しては、符号予測がバイパスされる。
【0105】
第2の例において、符号予測の複雑度を制御するために、変換ブロックについて所定の予測符号の最大数(「Lmax」として表される)が決定される。現在のECMにおいて、ビデオエンコーダは、複雑度と符号化効率とのトレードオフに基づいて最大数の値(例えば、Lmax=8)を決定し、値をビデオデコーダに送信する。更に、各変換ブロックについて、ビデオエンコーダ又はデコーダは、ラスタスキャン順序ですべての変換係数をスキャンすることができ、第1のLmax非0変換係数は、符号予測のための候補変換係数として選択される。変換ブロック内の異なる変換係数に対するこのような等しい扱いは、符号予測の正確度の観点から最適でないこともある。例えば、比較的大きな強度を有する変換係数の場合、これらの変換係数の符号の予測は、正しい予測を達成する可能性を高め得る。理由としては、これらの変換係数に対して誤った符号を使用すると、ブロック境界上の再構成されたサンプルに、比較的小さい強度を有する変換係数の使用によって発生するものより大きな影響が発生する傾向があるという点が挙げられる。
【0106】
第3の例において、明示的な符号値を直接符号化する代わりに、ビデオエンコーダ又はデコーダが予測符号の正しさを符号化することができる。例えば、正の符号を有する変換係数の場合において、この変換係数の予測符号も正であるとき、ビン「0」をビデオエンコーダからビデオデコーダへのビットストリームに含めて示すだけでよい。この場合、予測符号は、変換係数の真の符号(又は元の符号)と同じであり、このことは、この変換係数に対する符号予測が正しいことを示す。そうでない場合(例えば、予測符号は負であるが真の符号は正である場合)、ビン「1」は、ビデオエンコーダからビデオデコーダへのビットストリームに含まれ得る。すべての符号が正しく予測された場合、ビットストリーム内に示される対応するビンは0であり、CABACによって効率的にエントロピー符号化され得る。符号の一部が誤って予測された場合、ビットストリーム内に示される対応するビンは1である。算術符号化+適切なコンテキストモデルは、これらの対応する可能性に応じてビンを符号化するために効率的であり得るが、符号値を示すためにビットストリーム内に生成された無視できないビットが依然として存在する。
【0107】
第4の例において、現在ブロックと隣接ブロックとの境界にあるサンプル間の空間的不連続性は、ECMにおける符号予測の現在の設計において最良の符号予測組合せを選択するために使用される。垂直方向及び水平方向に沿った勾配差分のL1ノルムは、空間的不連続性をキャプチャするために利用される。しかしながら、画像信号の分布は通常非一様であるので、垂直方向及び水平方向のみを使用することでは、空間的不連続性を正確にキャプチャすることができないこともあり得る。
【0108】
本開示による場合、ブロックベースビデオ符号化における符号予測のためのビデオ処理方法及びシステムは、本明細書において、上記例示的な欠点のうちの1つ又は複数に対処するために提供される。本明細書において開示された方法及びシステムは、ハードウェアコーデックの実装し易さを考慮に入れながら、符号予測の符号化効率を改善することができる。本明細書において開示された方法及びシステムは、符号予測技術をブロックの変換係数に適用する変換ブロックの符号化効率を改善することができる。
【0109】
例えば、上記のように、符号予測は、変換ブロックと空間的隣接ブロックとの境界に位置する又はこの境界の近くに位置する境界サンプル(ボーダーサンプルとも呼ばれる)間の相関関係に基づいて変換ブロック内の変換係数の符号を予測することができる。相関関係の存在は、どの変換が適用されるかに無関係であるので、2つの符号化ツール(すなわち、LFNST及び符号予測)は互いに干渉せず、共同で適用することができる。更には、LFNSTが一次変換の変換係数のエネルギーを更に圧縮するので、LFNSTの変換係数に対する符号予測は、一次変換用のものより正確であり得る。これは、LFNSTからの変換係数の誤った符号予測が、境界サンプルの平滑度により多くの不一致をもたらし得ることを理由にする。したがって、本開示による場合、LFNSTと符号予測との組合せを可能にして変換係数符号化の符号化効率を向上するための協調スキームが、本明細書において開示される。更に、逆変換の回数を削減するために予測符号の異なる組合せに対してボーダーサンプルを再構成するためのテンプレートベース仮説生成スキームも本明細書において開示される。
【0110】
別の例において、上述のように符号予測のための候補変換係数の選択のために変換ブロック内の異なる変換係数に等しい扱いを与える代わりに、隣接ブロックの境界サンプル間の不一致につながり得る変換係数には、これらの変換係数の符号がより容易に予測されることを考慮して、より大きな重みを与えることができる。本開示による場合、本明細書において開示された方法及びシステムは、符号予測の正確度を改善するための1つ又は複数の選択基準に基づいて符号予測のための候補変換係数(例えば、変換ブロックに対して符号を予測すべき変換係数)を選択することができる。例えば、再構成されたボーダーサンプルへの影響が大きい変換係数(再構成されたボーダーサンプルへの影響が小さい変換係数ではなく)が、符号予測のための候補変換係数として選択され、結果として、符号予測の正確度が改善され得る。
【0111】
更に別の例において、変換ブロック内の変換係数の符号が高い正解率(例えば、予測符号の正しさが80%又は90%等の閾値より高い)で予測された場合、変換ブロック及び隣接ブロックの境界サンプル間に強い相関関係が存在する。この場合、大抵のシナリオで正しく予測することができる連続する変換係数(例えば、特に、変換ブロックの先頭にあるいくつかの非0変換係数)が存在し得ることが一般的に起きる。このようなシナリオにおいて、(複数のビンの代わりに)単一のビンを使用して、連続する変換係数の符号が正しく予測されたか否かを示すことで、符号予測のシグナリングオーバーヘッドを節減する。本開示による場合、符号予測のシグナリングオーバーヘッドを削減するためのベクトルベース符号予測スキームが、本明細書において開示される。各非0変換係数の符号を別々に予測する既存の符号予測とは異なり、本開示のベクトルベース符号予測スキームは、連続する非0候補変換係数のセットをグループ化し、予測符号の正しさを示すために使用されるビン(又はビット)の平均数を効率的に削減することができるように、対応する符号を一緒に予測する。
【0112】
更に別の例において、垂直方向及び水平方向のみを使用することでは、現在ブロックと隣接ブロックとの境界にあるサンプル間の空間的不連続性を正確にキャプチャすることができないこともあり得る。したがって、より多くの方向を導入して空間的不連続性をより正確にキャプチャすることもできる。本開示による場合、垂直方向及び水平方向の両方の勾配及び斜め方向の勾配を考慮して空間的不連続性をより正確にキャプチャする改良型コスト関数が本明細書において開示される。
【0113】
図13は、本開示のいくつかの実装形態によるブロックベースビデオ符号化における例示的な符号予測プロセス1100を示すブロック図である。いくつかの実装形態において、符号予測プロセス1300は、変換処理ユニット52によって実行され得る。いくつかの実装形態において、符号予測プロセス1300は、ビデオエンコーダ20又はデコーダ30の1つ又は複数のプロセッサ(例えば、1つ又は複数のビデオプロセッサ)によって実行され得る。本開示の全体を通して、LFNSTは、一般性を失うことなく二次変換の例として使用される。本明細書においては、二次変換の他の例も適用され得ることが企図される。
【0114】
ECMの既存設計において、LFNSTが適用される変換ブロックに対しては、符号予測が無効化される。しかしながら、符号予測の原理は、変換ブロックに適用される特定の変換方式(例えば、一次変換であるか二次変換であるか)又は変換コア(例えば、DCTであるかDSTであるか)に依存しない変換ブロック及び空間的隣接ブロックのボーダーサンプル間の相関関係に基づいて変換係数の符号を予測することである。したがって、本明細書においては変換符号化の効率を更に改善するために、符号予測とLFNSTを一緒に適用することができる。本開示による場合、符号予測プロセス1300を適用して、一次変換及び二次変換が共同で適用される変換ブロック内の変換係数の符号を予測することができる。
【0115】
符号予測プロセス1300の例示的な概要が、本明細書において提供される。最初に、符号予測プロセス1300は、一次変換及び二次変換をビデオのビデオフレームの変換ブロックに適用して変換ブロックのための変換係数を生成することによって、係数生成操作1302を実行することができる。次に、符号予測プロセス1300は、符号予測のための変換係数から候補変換係数のセットを選択することによって係数選択操作1304を実行することができる。続いて、符号予測プロセス1300は、テンプレートベース仮説生成スキームを適用して、候補変換係数のセットのための複数の候補仮説から仮説を選択することによって、仮説生成操作1306を実行することができる。更には、符号予測プロセス1300は、選択された仮説に関連付けられた符号候補の組合せが、候補変換係数のセットに対する予測符号のセットであることを決定することによって、符号生成操作1108を実行することができる。操作1302、1304、1306及び1308は、それぞれ下記においてより詳細に記述される。
【0116】
例えば、ビデオエンコーダ20の変換処理ユニット52は、(例えば、順方向一次変換603及び順方向LFNST604が一緒に適用される図6に示されるように)一次変換及び二次変換を共同で適用することによって、残差ビデオデータを変換ブロックの変換係数に変換することができる。変換ブロックの変換係数からの所定の数(例えば、L)の非0変換係数は、後述する1つ又は複数の選択基準に基づいて候補変換係数として選択され得、ただし、1≦L≦予測され得る符号の最大数である。次に、テンプレートベース仮説生成スキームを適用することによって、複数の候補仮説が、L個の候補変換係数に対する符号候補の異なる組合せをそれぞれ使用して生成され得、これにより、合計2個の候補仮説が生じ得る。各候補仮説は、変換ブロックの上境界及び左境界上の再構成されたサンプルを含み得る。次いで、水平方向、垂直方向及び斜め方向に沿った複合的な勾配を組み込んだコスト関数を使用して、各候補仮説の再構成のためのコストを計算することができる。複数の候補仮説から、最小コストに関連付けられた候補仮説が、L個の候補変換係数の符号を予測するための仮説として決定され得る。例えば、最小コストに関連付けられた候補仮説を生成するための使用される符号候補の組合せは、L個の候補変換係数に対する予測符号として使用される。
【0117】
始めに、符号予測プロセス1300は、係数生成操作1302を実行することができ、係数生成操作1302において、一次変換(例えば、DCT、DST等)及び二次変換(例えば、LFNST)を共同で変換ブロックに適用して、変換ブロックのための変換係数を生成することができる。例えば、一次変換を変換ブロックに適用して、変換ブロックのための一次変換係数を生成することができる。次いで、LFNSTを変換ブロックに適用して、一次変換係数に基づいてLFNST変換係数を生成することができる。
【0118】
符号予測プロセス1300は、係数選択操作1304を実行し続けることができ、係数選択操作1304において、符号予測のための候補変換係数のセットは、1つ又は複数の選択基準に基づいて変換ブロックの変換係数から選択することができる。候補変換係数の選択によって、正しく予測され得る候補変換係数の数を最大化することができ、符号予測の正確度を改善することができる。
【0119】
いくつかの実装形態において、候補変換係数のセットは、変換係数の強度に基づいて変換ブロックの変換係数から選択することができる。例えば、候補変換係数のセットは、変換ブロック内の残りの変換係数の強度より大きな強度を有する1つ又は複数の変換係数を含み得る。
【0120】
一般に、より大きな強度を有する変換係数の場合、これらの変換係数の予測符号が正しい可能性がより高くなる。理由としては、これらのより大きな強度を有する変換係数が、再構成されたサンプルの品質により大きな影響を及ぼす傾向があり、これらの変換係数に対して誤った符号を使用することは、変換ブロック及び空間的隣接ブロックの境界サンプル間に不連続性を発生させる可能性を高めるという点が挙げられる。この基本原理に基づいて、符号予測のための候補変換係数のセットは、変換ブロック内の非0変換係数の強度に基づいて変換ブロックの変換係数から選択することができる。
【0121】
符号予測のための変換係数強度ベースの並べ替えスキームを実装するための複数の方法が存在し得る。第1の実装形態において、スキームは、逆量子化後に再構成された変換係数(すなわち、逆量子化された変換係数)を、符号予測のために、より大きな強度を有する逆量子化された変換係数がより小さな強度を有する逆量子化された変換係数より前に配置されるようなソート処理に直接使用することができる。例えば、変換ブロック内のすべての非0変換係数をスキャンし、強度の降順に応じて係数リストを形成するようにソートすることができる。最も強度が大きい変換係数は、係数リストから選択され、候補変換係数のセット内に第1の候補変換係数として配置されることができ、2番目に強度が大きい変換係数は、係数リストから選択され、候補変換係数のセット等の中に第2の候補変換係数として配置されることができ、以降、選択された候補変換係数の数が所定の数Lに到達するまでは同様である。
【0122】
第2の実装形態において、逆量子化された変換係数を直接使用する代わりに、変換係数のそれぞれの量子化インデックス(例えば、式(6)に従って得られるquantIdx)を使用して変換係数の強度を表現し、このようなソート処理のために使用することができる。式(7)に示されるように、1つの逆量子化された変換係数の値は、当該変換係数の量子化インデックスquantIdxと対応するステップサイズΔとの積に等しく、ステップサイズは、1つの変換ブロック内のすべての変換係数の逆量子化に関して同じであるので、2つの実装形態は、実際に数学的に同一である。しかしながら、量子化インデックスquantIdxはパース段階(逆量子化された変換係数の取得より早い)で得ることができので、第2の実装形態は、一部の特定のハードウェアによって実装されたときに特定の利益を提供することができる。
【0123】
いくつかの実装形態において、候補変換係数のセットは、ビデオ符号化において適用されるエントロピー符号化の係数スキャン順序に基づいて変換ブロックの変換係数から選択することができる。無処理のビデオコンテンツは大量の低周波数情報を有し得るので、ビデオコンテンツの処理から得られた非0変換係数の強度は、低周波数位置においてはより大きく、高周波数位置に向かって小さくなる傾向がある。したがって、係数スキャン順序(ジグザグスキャン、左上スキャン、水平スキャン又は垂直スキャン等)をモダンなビデオコーデックで使用して、エントロピー符号化のための変換ブロック内の変換係数をスキャンすることができる。この係数スキャン順序を使用することによって、より大きな強度(通常、より低い周波数に対応する)を有する変換係数は、より小さな強度を有する(通常、より高い周波数に対応する)変換係数より前にスキャンされる。この基本原理に基づいて、本明細書において開示された符号予測のための候補変換係数のセットは、エントロピー符号化のための係数スキャン順序に基づいて変換ブロックの変換係数から選択することができる。例えば、係数リストは、係数スキャン順序を使用して変換ブロック内のすべての変換係数をスキャンすることによって得ることができる。次いで、係数リスト内の第1のL個の非0変換係数は、符号予測のための候補変換係数のセットとして自動的に選択することができる。
【0124】
いくつかの実装形態において、イントラ符号化ブロックの場合、符号予測のための候補変換係数のセットは、ブロックのイントラ予測方向に基づいてブロックの変換係数から選択することができる。例えば、イントラ予測方向(例えば、VVC及びECMにおける67のイントラ予測方向)との間に整合性がある複数のスキャン順序を決定し、ビデオエンコーダ20とビデオデコーダ30の両方でルックアップテーブルとして記憶することができる。イントラブロックの変換係数を符号化するとき、ビデオエンコーダ20又はビデオデコーダ30は、スキャン順序からイントラブロックのイントラ予測に最も近いスキャン順序を特定することができる。ビデオエンコーダ20又はビデオデコーダ30は、特定されたスキャン順序を使用して、イントラブロックのすべての非0変換係数をスキャンし、これによって係数リストを得、係数リストから候補変換係数のセットとして第1のL個の非0変換係数を選択することができる。
【0125】
いくつかの実装形態において、ビデオエンコーダ20は、変換ブロックの変換係数のスキャン順序を決定し、決定されたスキャン順序をビデオデコーダ30にシグナリングすることができる。決定されたスキャン順序を示す1つ又は複数の新たなシンタックス要素は、ビットストリームを介してシグナリングされ得る。例えば、(例えば、異なる変換ブロックサイズ及び符号化モードのための)固定された複数のスキャン順序がビデオエンコーダ20によって予め決定され、ビデオデコーダ30と予め共有されてもよい。次いで、固定されたスキャン順序からスキャン順序を選択した後、ビデオエンコーダ20は、選択されたスキャン順序を示すための単一のインデックスをビデオデコーダ30にシグナリングするだけでよい。別の例において、1つ又は複数の新たなシンタックス要素は、選択された任意の変換係数のスキャン順序のシグナリングを可能にするために使用され得る。いくつかの実装形態において、1つ又は複数のシンタックス要素は、様々な符号化レベル、例えば、シーケンスパラメータセット(SPS)、ピクチャパラメータセット(PPS)、ピクチャ(又はスライス)レベル、CTU(又はCU)レベル等でシグナリングされ得る。
【0126】
いくつかの実装形態において、候補変換係数のセットは、再構成された変換ブロックのボーダーサンプルに対する変換係数の影響度スコアに基づいて変換ブロックの変換係数から選択することができる。厳密には、上記式(5)に示されるように、符号の組合せ(すなわち、予測符号又は符号予測子)の選択は、現在変換ブロックと空間的隣接ブロックとの間のサンプルの勾配の不連続性を最小化するためのコスト関数に基づく。したがって、現在変換ブロックの上ボーダー及び左ボーダー上の再構成されたサンプルに対して比較的大きな影響を伴う変換係数の符号は、正確に予測される可能性がより高い。理由としては、これらの符号の反転が、(5)において計算される境界サンプル間の平滑度に大きな変動を起こし得るという点が挙げられる。正確な符号予測の百分率を最大化するために、これらの変換係数(すなわち、再構成されたボーダーサンプルに対する影響がより大きい変換係数)の符号は、他の変換係数(すなわち、再構成されたボーダーサンプルに対する影響がより小さい変換係数)より前に予測され得る。この基本原理に基づいて、本明細書において開示された符号予測のための候補変換係数のセットは、現在変換ブロックの上ボーダー及び左ボーダー上の再構成されたサンプルに対する影響度スコアに基づいて選択することができる。
【0127】
例えば、ビデオエンコーダ20又はデコーダ30は、変換ブロックの再構成されたボーダーサンプルへの対応する影響度スコアの測定に基づいてすべての変換係数をソートすることができる。変換係数は、再構成されたボーダーサンプルに対してより大きい影響度スコアを有する場合、正しく予測するのがより容易なので、符号予測候補リスト内で最小のインデックスを割り当てられ得る。本明細書において開示された候補変換係数のセットは、符号予測候補リスト内で最小のL個のインデックスを有するL個の変換係数であり得る。
【0128】
いくつかの実装形態において、異なる判断基準を適用して、再構成されたボーダーサンプルに対する変換係数の影響度スコアを定量化することができる。例えば、変換係数に起因する再構成されたボーダーサンプルの変動のエネルギーを測定する値は、下記のように(L1ノルムで)得ることができる影響度スコアとして使用され得る。
【数8】
【0129】
上記式(6)中、Ci,jは、変換ブロック内の位置(i,j)にある変換係数を表現する。Ti,j(l,k)は、変換係数Ci,jに関連付けられたテンプレートの位置(l,k)にある対応するボーダーサンプルを表現する。N及ビMは、それぞれ変換ブロックの幅及び高さを表現する。Vは、位置(i,j)にある変換係数の影響度スコアを表現する。
【0130】
別の例において、上記式(8)中のL1ノルムは、L2ノルムによって置き換えることができ、したがって、影響度スコア(例えば、変換係数に起因する再構成されたボーダーサンプルの変動のエネルギーの測定値)は、下記のL2ノルムを使用して計算することができる。
【数9】
【0131】
本開示による場合、(例えば、Ti,j(0,n)及びTi,j(m,0)によって示されるような)上境界及び左境界サンプルのみが上記式(8)及び(9)中の計算のために使用されるが、本明細書において開示された変換係数選択スキームは、対応するコスト関数内で使用される現在変換ブロックの再構成されたサンプルを変更することによって、任意の符号予測スキームに適用することもできる。
【0132】
変換係数強度ベースのスキームと同様に、スキームに基づいて影響度スコアを実装するための様々な方法が存在し得る。第1の実装形態において、スキームは、式(8)及び(9)に示されるように、逆量子化された変換係数Ci,jの強度を直接使用することができる。第2の実装形態において、量子化インデックス値quantIdxを代わりに適用して、逆量子化された変換係数Ci,jを置きかえ、これによって、対応するコスト測定値を計算することができる。厳密には、量子化インデックス値quantIdxが適用された場合、式(8)及び(9)は、下記の式(10)及び(11)になる。
【数10】
【数11】
(式中、quantIdxi,jは、変換ブロック内の位置(i,j)における変換係数の量子化インデックスを表す。)。
【0133】
1つの逆量子化された変換係数の値は、当該変換係数の量子化インデックスquantIdxと、対応するステップサイズΔとの積に等しく、ステップサイズは、1つの変換ブロック内のすべての変換係数の逆量子化に関して同じであるので、2つの方法は、実際に数学的に同一である。
【0134】
符号予測プロセス1300は、仮説生成操作1106を実行し続けることができ、仮説生成操作1106においては、テンプレートベース仮説生成スキームを適用して、複数の候補仮説から候補変換係数のセットのための仮説を選択することができる。最初に、符号候補の複数の組合せを、候補変換係数のセットに含まれる係数の合計数に基づいて決定することができる。例えば、合計L個の候補変換係数が存在する場合、候補変換係数のセットのための符号候補の複数の組合せは、符号候補の2個の組合せであり得る。各符号候補は、負の符号(-)又は正の符号(+)のいずれかであり得る。符号候補の組合せのそれぞれは、L個の負の符号又は正の符号の合計を含み得る。例えば、L=2である場合、符号候補の複数の組合せは、それぞれ(+,+)、(+,-)、(-,-)及び(-,-)である符号候補からなる2=4組合せを含み得る。
【0135】
次に、テンプレートベース仮説生成スキームを適用して、符号候補の複数の組合せのための複数の候補仮説をそれぞれ生成することができる。実行される必要がある逆一次変換及び逆二次変換の複雑度を低下させるために、本明細書において開示されたテンプレートベース仮説生成スキームを使用して、再構成された変換ブロックのボーダーサンプルの生成を最適化することができる。テンプレートベース仮説生成スキームを実行するための2つの例示的なアプローチが、本明細書において開示される。テンプレートベース仮説生成スキームを実装するための他の例示的なアプローチも可能であることが企図され、このようなアプローチは、本明細書において限定されない。
【0136】
第1の例示的なアプローチにおいて、符号候補の組合せのそれぞれのための対応する候補仮説を、テンプレートの線形結合に基づいて生成することができ、したがって、複数の候補仮説を、符号候補の複数の組合せのそれぞれについて生成することができる。各テンプレートは、候補変換係数のセットからの候補変換係数に対応し得る。各テンプレートは、変換ブロックの上境界及び左境界上の再構成されたサンプルのグループを表現し得る。各テンプレートは、逆二次変換及び逆一次変換を変換ブロックに適用することによって生成され得、ここで、候補変換係数のセットのそれぞれは、1に設定されたテンプレートに対応する候補変換係数(例えば、テンプレートに対応する候補変換係数が1に設定されるが、残りの候補変換係数のそれぞれが0に設定される)を除いて0に設定される。
【0137】
例えば、符号候補の組合せのそれぞれのための対応する候補仮説は、テンプレートの線形結合に設定され得る。候補変換係数のそれぞれに対応するテンプレートに関しては、テンプレートの重みのそれぞれは、候補変換係数のそれぞれに対応する逆量子化された変換係数の強度であるように設定され得る。テンプレートの線形結合に基づいた仮説生成の一例が図14に示され、これについては、下記においてより詳細に記述する。
【0138】
候補変換係数の符号を予測するために、ビデオエンコーダ20又はデコーダ30は、コスト関数から計算されたコスト値を最小化することができる符号候補の組合せに関連付けられた仮説を特定する前に、すべての候補仮説を通過することができる。上記第1の例示的なアプローチにおいて、各候補仮説は、複数のテンプレートの組合せに基づいて生成することができるが、このような組合せに伴われるサンプル1つ当たりの計算(例えば、加算、乗算及びシフト)を考慮すると、比較的複雑なものである。コスト関数から計算されたコスト値を最小化する仮説の特定に関連付けられた計算複雑度を削減するために、本明細書においては、第2の例示的なアプローチが導入される。
【0139】
第2の例示的なアプローチにおいて、複数の候補仮説に関連付けられた符号候補の複数の組合せは、それぞれ複数の候補仮説のための複数の仮説インデックスとして扱われ得る。例えば、デジタル0及び1は、それぞれ正の符号(+)及び負の符号(-)を表現するように構成され得る。候補仮説に対応する符号候補の組合せは、候補仮説に対する一意な表現(すなわち、仮説インデックス)として使用され得る。仮説インデックス000は、すべての3つの符号候補を正に設定する(例えば、3つの符号候補が(+,+,+)である)ことによって生成される候補仮説を表現し得る。同様に、仮説インデックス010は、第1の符号候補及び第3の符号候補を正に設定する一方で、第2の符号候補を負に設定する(例えば、3つの符号候補は(+,-,+)である。)ことによって生成された候補仮説を表現することができる。
【0140】
次いで、複数の候補仮説は、複数の仮説インデックスのGary符号順序に基づいて生成することができ、結果として、過去の仮説インデックスを有する過去の候補仮説の再構成されたサンプルを使用して、現在の仮説インデックスを有する現在候補仮説を生成することができる。現在候補仮説の現在の仮説インデックスは、複数の仮説インデックスのGary符号順序において、過去の候補仮説の過去の仮説インデックスの直後にあり得る。現在の仮説インデックスは、過去の仮説インデックスに関連付けられた符号候補を正(又は負)から負(又は正)に変更することによって生成され得る。例えば、現在の仮説インデックスは、過去の仮説インデックス内の単一の「0」(又は「1」)を「1」(又は「0」)に変更することによって得ることができる。
【0141】
例えば、複数の仮説インデックスのGary式符号順序に基づいて複数の仮説インデックスを並べ替えて、並べ替えられた仮説インデックスのシーケンスを生成することができる。並べ替えられた仮説インデックスのシーケンス内の第1の仮説インデックスの場合、第1の仮説インデックスに対応する第1の候補仮説は、候補変換係数のセットのそれぞれが1に設定された変換ブロックに逆二次変換及び逆一次変換を適用することによって生成され得る。第1の仮説インデックスの直後にある並べ替えられた仮説インデックスのシーケンス内の第2の仮説インデックスの場合、第2の仮説インデックスに対応する第2の候補仮説は、(a) 第1の仮説インデックスに対応する第1の候補仮説及び(b) 第2の候補仮説のための調整項に基づいて生成され得る。下記の表3は、候補変換係数の数が3である(例えば、L=3)場合に、LFNST用のすべての候補仮説を生成する例示的なプロセスを示す。
【表3】
【0142】
上記表3中、第1列は、符号候補からなる2=8組合せをそれぞれ示す。第2列は、デジタル0及び1を使用して正の符号(+)及び負の符号(-)のそれぞれを表現することによって、符号の組合せ候補に対応する仮説インデックスをそれぞれ示す。第2列の仮説インデックスは、Gary式符号の順序(例えば、000、001、011、010、110、111、101、100の順序で)に従って順序付けられる。第3列は、符号の組合せ候補及び仮説インデックスに対応する候補仮説をそれぞれ示す。第4列は、それぞれ候補仮説の計算を示す。
【0143】
表3中、第4列のTXYZは、特定の変換係数が1に設定されるが他のすべての変換係数が0に等しい変換ブロックの係数行列に逆変換を適用することによって生成され得る、対応するテンプレート(すなわち、変換ブロックの上境界及び左境界上の再構成されたサンプル)を表現する。例えば、T100は、第1の符号候補に対応する変換係数のみが1に設定されるが係数行列内のすべての変換係数が0に設定される係数行列に逆変換を適用することによって生成される、対応するテンプレートを表現する。C、C及びCは、それぞれ第1の符号候補、第2の符号候補及び第3の符号候補に関連付けられた逆量子化された変換係数の絶対値を表現する。
【0144】
表3を参照すると、第1の仮説インデックス000の場合、第1の候補仮説H000は、候補変換係数のそれぞれが1に設定された変換ブロックに関連付けられた係数行列に逆二次変換及び逆一次変換を適用することによって生成され得る。第1の仮説インデックス000の直後にある第2の仮説インデックス001の場合、第2の候補仮説H001は、(a) 第1の候補仮説H000及び(b) 第2の候補仮説のための調整項(例えば、-C T001)に基づいて生成され得る。同様に、第2の仮説インデックス001の直後にある第3の仮説インデックス011の場合、第3の候補仮説H011は、(a) 第2の候補仮説H001及び(b) 第3の候補仮説のための調整項(例えば、-C T010)に基づいて生成され得る。第3の仮説インデックス011の直後にある第4の仮説インデックス010の場合、第4の候補仮説H010は、(a) 第3の候補仮説H011及び(b) 第4の候補仮説のための調整項(例えば、C T001)に基づいて生成され得る。
【0145】
続いて、最小コストに関連付けられた仮説は、水平方向、垂直方向及び斜め方向に沿った複合的な勾配を組み込んだコスト関数に基づいて複数の候補仮説から決定され得る。上述のように、コスト関数が(例えば、上記の式(5)に示されるように)水平及び垂直方向の勾配のみを利用する場合、コスト関数は、非常に非一様な画像信号用にはうまく機能しないこともある。本開示による場合、1つ又は複数の斜め方向に沿った勾配も、コスト関数の正確度を改善するために利用される。例えば、左斜め方向及び右斜め方向を含む2つの斜め方向もコスト関数に組み込まれ得る。例えば、2つの斜め方向用のコスト関数は、下記式(12)及び(13)に従って表すことができる。
【数12】
【数13】
【0146】
上記式(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はそれぞれ、左斜め方向及び右斜め方向用の左斜めコスト関数及び右斜めコスト関数を表現する。
【0147】
斜め方向の2つのコスト関数(例えば、costD1及びcostD2)は、水平及び垂直コスト関数のもの(例えば、上記式(5)に示されるcostHV)と共同で使用されてもよい。次いで、符号予測のためのコスト関数が、水平及び垂直方向に沿った勾配を組み込んだ水平及び垂直コスト関数、左斜め方向に沿った勾配を組み込んだ左斜めコスト関数及び右斜め方向に沿った勾配を組み込んだ右斜めコスト関数に基づいて決定され得る。例えば、コスト関数は、式(14)に記載された水平及び垂直コスト関数、左斜めコスト関数及び右斜めコスト関数の重み付けされた和であり得る。
【数14】
【0148】
上記式(14)中、ωは、左斜めコスト関数及び右斜めコスト関数用の重みを表す。
【0149】
別の例において、コスト関数は、式(15)に記載された水平及び垂直コスト関数、左斜めコスト関数及び右斜めコスト関数の最小値であり得る。
【数15】
【0150】
上記に示された式(5)に比較したとき、本明細書において開示された式(14)又は(15)中のコスト関数は、下記において図16A及び図16Bを参照しながらより詳細に記述する斜め方向に沿ったコスト関数costD1、costD2をサポートするために、より多くの隣接画素を必要とし得る。
【0151】
いくつかの実装形態において、各候補仮説についての対応するコストは、上記式(14)又は(15)を使用して決定され得る。次いで、複数のコストを、複数の候補仮説のそれぞれについて計算することができる。複数のコストの中での最小コストが決定され得る。最小コストに関連付けられた候補仮説を複数の候補仮説から決定し、符号予測のための仮説であるように選択することができる。
【0152】
符号予測プロセス1300は、符号生成操作1108を実行し続けることができ、符号生成操作1108においては、選択された仮説に関連付けられた符号候補の組合せが、候補変換係数のセットに対する予測符号のセットであることが決定される。例えば、選択された仮説を生成するために使用された符号候補(例えば、L個の符号候補)の組合せは、L個の候補変換係数に対する予測符号として使用され得る。
【0153】
いくつかの実装形態において、符号生成操作1308は、ベクトルベース符号予測スキームを予測符号のセットに適用して、候補変換係数のセットのための符号シグナリングビットのシーケンスを生成することを更に含み得る。符号シグナリングビットのシーケンスを含むビットストリームは、ビデオエンコーダ20によって生成され、図1の記憶装置32に記憶され得る。代替的には又は更には、ビットストリームは、図1のリンク16を介してビデオデコーダ30に伝送され得る。
【0154】
上記のように、変換ブロック内の変換係数の符号がうまく予測される場合、連続する複数の変換係数の符号を正しく予測することができる可能性が非常に高い。この場合、既存の符号予測設計のシグナリングスキームは、変換係数のそれぞれの対応する符号を正しく予測することができることを別に示すために、複数の「0」のビンをシグナリングする必要があるので、変換ブロックの符号値をシグナリングするためのオーバーヘッドの観点から明らかに非効率的である。既存の符号予測スキームの例示的な実装形態は、下記において図15Aを参照しながらより詳細に記述する。
【0155】
本開示による場合、符号シグナリングの効率は、本明細書において開示されたベクトルベース符号予測スキームを適用することによって改善され得る。厳密には、変換ブロックのための候補変換係数を複数のグループに分割することができ、各グループ内の候補変換係数の符号を一緒に予測することができる。この場合、グループ内の候補変換係数の元の符号(又は真の符号)がそれぞれ予測符号と同じであるとき、グループ内のすべての符号が正しく予測されたことを示すために、「0」の値を有するビンのみをビットストリームに含めて送信すればよい。そうでない場合(すなわち、元の符号が予測符号と異なる候補変換係数がグループ内に少なくとも1つ存在する場合)、最初に、グループ内の候補変換係数についての符号のすべてが正しく予測されていないことを示すために、「1」の値を有するビンをビットストリームに含めてシグナリングすることができる。次いで、グループ内の予測符号のそれぞれの対応する正しさを別々に通知するために、追加ビンが、ビットストリームに含めてビデオエンコーダ20からビデオデコーダ30にシグナリングされてもよい。本明細書において開示されたベクトルベース符号予測スキームの例示的な実装形態については、下記において図15Bを参照しながらより詳細に記述する。
【0156】
いくつかの実装形態において、候補変換係数のセットは、候補変換係数の複数のグループに分割することができる。候補変換係数のグループのそれぞれに対しては、予測符号の正しさを示すために、1つ又は複数の符号シグナリングビットが、候補変換係数のグループのために生成され得る。
【0157】
一例において、符号シグナリングビットは、候補変換係数のグループの元の符号が候補変換係数のグループの予測符号と同一であるかに基づいて生成され得る。候補変換係数のグループの元の符号が候補変換係数のグループの予測符号と同一であることに応答して、ゼロ(「0」)の値を有するビンが生成され得、符号シグナリングビットとしてビットストリームに追加され得る。例えば、ビットストリームは、候補変換係数のグループの予測符号が正しく予測されたことを示す「0」を含み得る。
【0158】
一方、候補変換係数のグループの元の符号が候補変換係数のグループの予測符号と同一でないことに応答して、イチ(「1」)の値を有するビンが生成され得る。候補変換係数のグループの予測符号の対応する正しさを通知するための追加ビンのセットも生成され得る。次いで、1の値を有するビン及び追加ビンのセットは、符号シグナリングビットとしてビットストリームに追加され得る。例えば、追加ビンのセットは、元の符号と候補変換係数のグループの予測符号とのXOR結果であり得る。「0」の値を有する追加ビンは、追加ビンに対応する候補変換係数の予測符号が正しく予測されたことを示し得るが、「1」の値を有する追加ビンは、追加ビンに対応する候補変換係数の予測符号が誤って予測されたことを示し得る。ビットストリームは、(a) 候補変換係数のグループの予測符号が正しく予測されないことを示す「1」と、(b) どの予測符号が正しく予測されたか及びどの予測符号が誤って予測されたかを示す追加ビンのセットとを含み得る。
【0159】
符号シグナリングビットは、他のコンテキストモデルを使用して同様に生成することもできる。例えば、符号シグナリングビットは、候補変換係数のグループの予測符号が正しく予測されたことを示す「0」及び予測符号が正しくないことを示すイチ(「1」)の値を有するビンを含み得る。符号予測が誤っている候補変換係数のグループの予測符号の対応する正しさを通知するための追加ビンのセットも生成され得る。
【0160】
いくつかの実装形態において、候補変換係数のグループのそれぞれのサイズは、1つ又は複数の所定の判断基準に基づいて適応的に変更することができる。1つ又は複数の所定の判断基準は、変換ブロックの幅又は高さ、変換ブロックの符号化モード(例えば、イントラ符号化又はインター符号化)及び変換ブロック内の非0変換係数の数等を含み得る。いくつかの実装形態において、候補変換係数のグループのそれぞれのサイズは、SPS、PPS、スライス若しくはピクチャレベル、CTU若しくはCUレベル又は変換ブロックレベル等の様々な符号化レベルでビットストリームに含めてシグナリングされ得る。
【0161】
いくつかの実装形態において、1つ又は複数の制約事項が、本明細書において開示されたベクトルベース符号予測スキームの適用シナリオを限定するために適用され得る。例えば、本明細書において開示されたベクトルベース符号予測スキームを適用して、変換ブロック内の変換係数の第1の部分の符号を処理することができるが、変換ブロック内の変換係数の第2の部分の符号は、既存の符号予測スキームを使用して処理することができる。更なる例において、本明細書において開示されたベクトルベース符号予測スキームは、変換ブロックからの第1のN(例えば、N=2、3、4、5、6、7又は8等)非0候補変換係数に適用可能であり得るが、変換ブロックのうちの他の候補変換係数の符号は、本開示において後述する図15Aに示される既存の符号予測スキームを使用して処理することができる。
【0162】
本開示による場合、本明細書において開示された符号予測プロセス1100は、シナリオによっては無効化されることもある。例えば、LFNSTがイントラテンプレートマッチングモードによって符号化された符号化ブロックに適用される場合、一次変換は、DST-VIIであり得る。ECMにおけるLFNSTコア変換は主に、一次変換がDCT-IIである場合に学習されるので、イントラテンプレートマッチングブロックの対応するLFNST変換係数は、他のLFNSTブロックのものに比較して異なる特性を示し得る。この基本原理基づいて、符号予測プロセス1300は、現在符号化ブロックがイントラテンプレートマッチングブロックであり、LFNSTを使用して符号化される場合には無効化され得る。
【0163】
本開示による場合、LFNSTブロックに対する予測符号の最大数及び非LFNSTブロックに対する予測符号の最大数は、符号予測の計算複雑度を制御することが難しいこともある。例えば、LFNSTブロックに対する予測符号の最大数は、6(又は4)に設定され得るが、非LFNSTブロックに対する予測符号の最大数は、6(又は4)と異なる値を有し得る。更には、予測符号の最大数の異なる値を、LFNSTを適用するビデオブロック及びLFNSTを適用しないビデオブロックに対して適用することができる。いくつかの実装形態において、ビデオエンコーダ20は、対応する複雑度又はエンコーダの性能の優先順位に基づいてLFNSTブロックに対する予測符号の最大数を決定することができ、ビデオデコーダ30にシグナリングすることができる。LFNSTブロックに対する予測符号の最大数がビデオデコーダ30にシグナリングされる場合、この予測符号の最大数は、様々な符号化レベル、例えば、シーケンスパラメータセット(SPS)、ピクチャパラメータセット(PPS)、ピクチャ若しくはスライスレベル又はCTU若しくはCUレベルでシグナリングされ得る。いくつかの実装形態において、ビデオエンコーダ20は、LFNSTを適用するビデオブロック及びLFNSTを適用しないビデオブロックの予測符号の最大数の異なる値を決定し、ビデオエンコーダ20からビデオデコーダ30に最大数の値をシグナリングすることができる。
【0164】
本開示による場合、一次変換と二次変換の両方の変換係数は固定であるので、ビデオエンコーダ20又はビデオデコーダ30は、異なる変換ブロックサイズ及び一次変換と二次変換との異なる組合せのためのテンプレート(例えば、テンプレートのサンプル)を予め計算することができる。ビデオエンコーダ20又はビデオデコーダ30は、最適化された実装のためにテンプレートのサンプルをオンザフライ方式で生成する複雑さを回避するために、テンプレート(例えば、テンプレートのサンプル)を内部メモリ又は外部メモリに記憶することができる。テンプレートのサンプルは、ストレージサイズとサンプル精度との異なるトレードオフを実現するために、異なる分数精度で記憶され得る。例えば、ビデオエンコーダ20又はビデオデコーダ30は、固定係数(例えば、64、128又は256)を用いて流動的なテンプレートのサンプルをスケーリングし、スケーリングされたサンプルを最も近い整数に丸めることができる。丸められたサンプルは、メモリに記憶され得る。次いで、テンプレートが候補仮説を再構成するために使用された場合、最初に、当該テンプレートの対応サンプルを元の精度にスケーリング解除して、候補仮説における生成されたサンプルが正しい動的範囲に収まることを確実にすることができる。
【0165】
図14は、本開示のいくつかの実装形態によるテンプレートの線形結合に基づいた例示的な仮説生成を示す図式である。図14において、パターン化された4つのブロック0~3は、符号を予測すべき候補変換係数を表現する。係数C、C、C及びCは、4つの候補変換係数の逆量子化された変換係数の対応値を表現する。テンプレート0~3は、それぞれ4つの候補変換係数0~3に対応し得る。例えば、候補変換係数0に対応するテンプレート0は、逆二次変換及び逆一次変換を変換ブロックに適用することによって生成され得、ここで、候補変換係数0が1に設定され、変換ブロック内の残りの候補変換係数が0に設定される。同様に、テンプレート1~3のそれぞれが生成され得る。候補仮説は、テンプレート0~1と重みC~Cとをそれぞれ足し合わせることによって生成され得る。
【0166】
図15Aは、いくつかの例による既存の符号予測スキームの例示的な実装形態を示す図式である。図15Bは、本開示のいくつかの実装形態によるベクトルベース符号予測スキームの例示的な実装形態を示す図式である。既存の符号予測スキームと、本明細書において開示されたベクトルベース符号予測スキームとの例示的な比較は、本明細書において、図15A及び図15Bを参照しながら説明される。
【0167】
図15A及び図15Bにおいて、符号予測のための候補変換係数として選択される変換ブロック内の6つの非0変換係数が存在する。候補変換係数は、ラスタスキャン順序を使用して変換ブロックの係数行列からスキャンされる。候補変換係数の元の符号及び予測符号も、図15A及び図155Bに示される。例えば、「-2」の値を有する第1の候補変換係数の元の符号と予測符号は両方とも、「-」である(図15A及び図155Bにおいて「1」と表現される)。「3」の値を有する第2の候補変換係数の元の符号と予測符号は両方とも、「+」である(図13A及び図13Bにおいては「0」として表現される)。「1」の値を有する第3の候補変換係数の元の符号及び予測符号は、それぞれ「+」及び「-」である(図13A及び図13Bにおいては、それぞれ「0」及び「1」と表現される)。第3の候補変換係数の元の符号は、誤って予測される。図15A及び15Bに示されるように、第3の変換係数を除いて、他のすべての候補変換係数の元の符号は、対応する予測符号と同じである(すなわち、正しく予測されている)。
【0168】
図15Aを参照すると、合計6つのビン(すなわち、0、0、1、0、0及び0)が生成され、各ビンは、候補変換係数に対応する。6つのビンは、6つの候補変換係数の元の符号と予測符号とのXOR演算を実行することによって生成され得る。6つのビンを使用して、対応する6つの予測符号の正しさを示すことができる。例えば、それぞれが「0」の値を有する第1のビン及び第2のビンは、第1及び第2の候補変換係数に対する予測符号が正しいことを意味する。「1」の値を有する第3のビンは、第3の変換係数に対する予測符号が正しくないことを示す。6つのビンが、エントロピー符号化のためにCABACに送信され得る。
【0169】
図15Bを参照すると、本明細書において開示されたベクトルベース符号予測スキームは、6つの候補変換係数を3つのグループに分割し、各グループは、連続する2つの候補変換係数を含む。グループ#0及び#2内の候補変換係数の符号を正しく予測することができるので、それぞれが「0」の値を有する2つのビンのみが、2つのグループのために生成される。グループ#1の場合、グループ#1は、符号を正しく予測することができない第3の候補変換係数を含むので、「1」の値を有するビン(図15Bでは下線が引かれている)が生成され、グループが少なくとも、元の符号が予測符号と異なる候補変換係数を少なくとも含むことを示すためにビットストリームに含めてシグナリングされる。続いて、グループ#1内の第3及び第4の係数について、符号が正しく予測され得るかを示すために、「1」及び「0」の値を有する2つの追加ビンが生成される。これに対応して、本明細書において開示されたベクトルベース符号予測スキームが適用された場合、CABAC用に生成された合計5つのビンが存在するが、これは、図15Aに示される既存の符号予測スキームによって生成されたビンより少ないビットを有する。したがって、本明細書において開示されたベクトルベース符号予測スキームを適用することによって、シグナリングオーバーヘッドを削減することができ、変換ブロックの符号化効率を改善することができる。
【0170】
本開示による場合、図15Bに示されるようにラスタスキャン順序が変換ブロックの係数行列から候補変換係数を得るために使用されるが、任意の他のスキャン順序が、符号予測のための候補変換係数を選択するために使用されてもよい。例えば、候補変換係数は、上記1つ又は複数の選択基準に基づいて選択することができる。類似の記述は、本明細書では繰り返されない。
【0171】
図16Aは、本開示のいくつかの実装形態による左斜め方向に沿った左斜めコスト関数の例示的な計算を示す図式である。図16Bは、本開示のいくつかの実装形態による右斜め方向に沿った右斜めコスト関数の例示的な計算を示す図式である。costHVの計算のための上記式(8)に比較すると、上記式(14)又は(15)に示された左斜めコスト関数costD1又は右斜めコスト関数costD2は、斜め方向に沿ったコスト関数costD2の計算をサポートするためにより多くの隣接画素(図16A及び図16Bのエリア1602、1604及び16606内でマーキングされた画素として示される)を必要とすることがある。これらの画素がエリア1602、1604及び1606内で利用可能でない場合、これらの利用不能の位置を埋めるために最近接パディング法が採用され得る。例えば、エリア1606内のB-1,4が利用不能である場合、B-1,4に最も近い利用不能の画素であるB-1,3が、B-1,4の位置を埋めるために使用される(例えば、B-1,4=B-1,3)。エリア1602内のB-1,-1(C-1,-1とも表される)、B-1,-2(C-1,-1)、B-2,-1(C-1,-1)及びB-2,-2(C-1,-1)が利用不能である場合、利用不能の位置を埋めるためのいくつかの例示的な方法が本明細書において開示される。
【0172】
第1の例示的な方法において、利用不能の位置のそれぞれは、下記の式(16)~(19)に示されるように最も近い利用不能の画素を重み付けすることによって埋められ得る。
【数16】
【数17】
【数18】
【数19】
【0173】
第2の例示的な方法において、利用不能の位置のうちの一部は、それぞれ最も近い利用不能の画素によって埋められ得る。例えば、エリア1602内のB-1,-2が利用不能である場合、B-1,-2は、C0,-2によって埋められる。B-2,-1が利用不能である場合、B-2,-1は、B-2,0によって埋められる。しかしながら、B-2,-2及びB-1,-1が利用不能である場合、B-2,-2及びB-1,-1は、上記式(16)及び(17)に従って計算される2つの最も近い隣接画素の平均によって埋めることができる。
【0174】
第3の例示的な方法において、利用不能の再構成された隣接サンプルのみを使用してコスト関数を計算する。現在ブロックの上/左境界に沿った1つの境界サンプルのコスト計算が、何らかの利用不能の再構成されたサンプルを包含する場合、これらの利用不能の再構成されたサンプルは、対応する方向のコストの計算に使用されない。例えば、図16Bでは、境界サンプルP0,0、P0,1及びP1,0のみが右上方向のコスト関数の値を計算するために使用される一方で、P0,2、P0,3、P2,0及びP3,0は、これらのコスト計算が利用可能でない少なくとも1つの参照サンプルを参照するので、使用されない。
【0175】
本開示による場合、左対角線及び右対角線(すなわち、図16A及び図16Bにおいて示される135°及び45°)は、上記式(14)又は(15)に示されるコスト関数の計算において、例示用として使用されるが、任意の他の測定成分(例えば、1つ又は複数の任意の方向に沿った連続性測定値)が符号予測のためのコスト関数の計算に導入され得ることが企図される。
【0176】
第4の実装形態において、1つの現在ブロックの隣接サンプル間のテクスチャ情報の勾配分析に基づくサンプル外挿方法は、符号予測のためのコスト関数の精度を改善するために実装され得る。固定された外挿方向(例えば、上記隣接サンプルに対する垂直外挿及び水平隣接サンプルに対する水平外挿)を常に使用する代わりに、再構成された現在ブロックの上隣接及び左隣接サンプルのテクスチャ分析をエンコーダとデコーダの両方で実行することができ、隣接サンプルの勾配の最も支配的な方向は、現在ブロックの上境界及び左境界に沿って境界サンプルを外挿するために選択され得る。
【0177】
例えば、図17は、本開示のいくつかの実装形態による再構成された現在ブロックの隣接サンプル内における支配的な勾配方向をキャプチャするための方法1700の流れ図である。方法1700は、ビデオエンコーダ20又はビデオデコーダ30に関連付けられたビデオプロセッサによって実装され得、後述するステップ1702~1712を含み得る。ステップのうちの一部は、本明細書において提供された本開示を実行するための任意選択的なものであり得る。更に、ステップのうちの一部は、同時に実行されてもよいし、又は図17に示されたものとは異なる順序で実行されてもよい。
【0178】
ステップ1702において、勾配導出のために現在ブロックに対して参照サンプルが選択される。いくつかの実装形態において、参照サンプルは、テンプレートを形成する。例えば、図18Aは、本開示のいくつかの実装形態による、コスト関数のサンプル外挿方向の勾配ベース選択における例示的なテンプレートサンプル及び勾配フィルターウィンドウを示す図式である。図18Aに示されるように、現在ブロックに対して上及び左にある再構成された隣接サンプルのN行及び列のテンプレートは、勾配導出用の参照サンプルとして使用される。図18Aの例において、テンプレートサイズは、3に等しい。
【0179】
ステップ1704において、勾配ヒストグラム(HoG)が初期化される。例えば、HoGは、いくつかの成分を伴って生成され得、ここで、勾配ヒストグラムの各成分は、予め規定された角度方向における勾配の累積強度に対応する。各成分は、0として初期化され得る。例えば、図18Bは、本開示のいくつかの実装形態による、コスト関数のサンプル外挿方向の勾配ベース選択における例示的な勾配ヒストグラム(HoG)を示す図式である。実際、本開示の勾配分析スキームにおいては、予め規定された異なる方向を使用することができる。一実装形態において、VVC/ECMにおける常用のイントラ予測の65の角度方向に関して規定されたものと同じ方向が使用される。
【0180】
ステップ1706において、勾配フィルターウィンドウを参照サンプルに適用して勾配のそれぞれを計算する。図18Aに示されるように、1つのN×N勾配フィルターウィンドウを、テンプレートの中央の行/列に位置するテンプレートサンプルのそれぞれに適用して(すなわち、フィルターウィンドウは、サンプル位置を中心とする。)、対応する水平勾配G及び垂直勾配Gのそれぞれを計算する。
【0181】
ステップ1708において、参照サンプルの勾配の角度(Angle)及び強度(Amp)を計算する。例えば、サンプルの勾配は、式(20)及び(21)に従って計算することができる。
【数20】
【数21】
【0182】
ステップ1710において、勾配の角度は、予め規定された方向のうちの1つに変換することができ、HoG中の対応する成分が更新される。例えば、図18に示されるように、各Angleに対するHoG中のAmplitudeは、当該Angleのサンプル勾配の強度(Amp)を加算することによって更新される。結果として、Amplitudeは、累積強度である。
【0183】
ステップ1712において、最大の累積強度を有するHoGの成分は、現在ブロックのコスト関数用の隣接サンプルを外挿するために使用される方向として選択される。例えば、図18に示されるように、最大の成分は丸で囲まれる。
【0184】
上記方法において、最大の強度を伴う方向が、サンプル外挿のための方向として選択される。このような方法は、何らかのノイズ(例えば、量子化誤り及び/又は他の符号化モジュールに起因する符号化ノイズ)が存在する場合、必ずしも信頼性が高いものであるとは限らないこともあり得る。このような課題を解決するために、支配的な勾配方向が外挿方向として採用される前に特定の条件を適用することができる。
【0185】
例えば、一実装形態において、選択された支配的な勾配方向は、選択された勾配方向に属する十分なテンプレートサンプルが存在する場合(例えば、選択された方向に属するサンプルの百分率が、所定の閾値を超える等、十分に高い場合)場合にのみコスト関数計算のサンプル外挿のために有効化され得る。そうでない場合(例えば、選択された方向に属するテンプレートサンプルの数が十分に多くない場合)、デフォルトの外挿(例えば、上隣に対する垂直外挿及び左隣に対する水平外挿)が依然として適用される。
【0186】
別の実装形態において、選択された支配的な勾配方向は、支配的な勾配方向に関連付けられた勾配強度が十分に大きい場合(例えば、選択された勾配方向の強度の、すべての勾配方向の強度の和に対する比が別の所定の閾値より大きい場合)場合にのみコスト関数計算のサンプル外挿のために有効化され得る。そうでない場合(例えば、選択された方向の勾配強度が有意でない場合)、デフォルトの外挿が依然として適用される。
【0187】
更に別の実装形態において、上記制約事項は一緒に適用される。すなわち、選択された方向に関連付けられたテンプレートサンプルの数が十分に多く、勾配強度が十分に有意である場合にのみ、選択された方向のみが、現在ブロックのサンプル外挿のために有効化される。そうでない場合、デフォルトの外挿が依然として適用される。
【0188】
更に別の実装形態において、選択された支配的な勾配方向が有効化される場合、選択された方向に対して直行する方向は、1つのブロック内の符号を予測するときのコスト関数の計算においてサンプル外挿のために使用される。例えば、選択された方向が45度である場合、現在ブロックの上境界及び左境界に沿ってサンプルを外挿する方向として135度が使用される。同様に、選択された方向が135度である場合、現在ブロックの上境界及び左境界に沿ってサンプルを外挿する方向として45度が使用される。
【0189】
上記の開示された実装形態において、符号予測は、(例えば、図7に示されるように)1つの変換ブロックの左上4×4サブブロック内に位置する係数の符号を予測するためにのみ適用可能である。一般に、一般的な変換ブロックのエネルギーの大部分は通常、低周波数においていくつかの変換係数に沿って集中するので、このような方法は合理的である。これに対応して、左上隅の変換係数の符号は、他の場所にある変換係数より統計学的に簡単である。しかしながら、この仮定は、常に真であるとは限らないこともある。例えば、複雑なモーションフィールドを有するインターブロックの場合(例えば、1つのインターブロックが複数のサブブロックに分割され、各サブブロックが固有のMVを有し得るサブブロックインターモード)、予測信号においては、異なる動き間の境界に沿って生成された大量のエッジが存在し得る。このような場合、DCT/DST変換を適用した後に、無視できない高周波数変換係数が生成されることになるが、これらの係数は、左上4×4隅から突出し得る。前述の高周波数係数の符号は、上記の開示された符号予測設計に従って予測することができない。
【0190】
いくつかの代替的な実装形態において、順方向LFNSTに入力され、したがって、後で符号予測のために使用される変換係数のエリアは、符号化性能を更に改善するために、(例えば、図7に示されるような)いくつかの左上4×4サブブロックから拡大されてもよい。例えば、図19は、いくつかの例による変換係数の符号を予測するための符号予測エリアを示す図式である。
【0191】
厳密には、現在変換ブロックの左上A×Bエリアの符号は、予測のために選択することができ、ここで、M及びNは、(22)に従って計算される。
【数22】
(式中、幅及び高さは、変換ブロックの幅及び高さであり、THは、符号予測のための最大エリアサイズ(エリアサイズ閾値とも呼ばれる)である。)。THの値の操作は、符号予測技法に関する異なる性能と複雑度のトレードオフをもたらし得る。符号予測のエリアを拡大することで、符号を予測する予定の変換係数の数を増大させることができるが、これは、エンコーダとデコーダの両方でテストされる必要がある符号組合せの数が増大することによる計算複雑度の増大との引き換えで成立し得る。
【0192】
いくつかの実装形態において、異なる方法が、THの値の決定のために使用され得る。一実装形態において、すべてのシーケンス及び符号化シナリオのTHには固定値(例えば、8、16及び32等)を使用することができる。エリアサイズ閾値THが固定であれば、エンコーダ及びデコーダは、符号予測のための変換係数を探し当てるときに、同じ値(すなわち、シグナリングされることがない)を使用して、対応するエリアを決定する。別の実装形態において、エンコーダには、ビデオシーケンスの特定の特性及び好ましい性能と複雑度とのトレードオフに応じて最適なエリアサイズ閾値を決定し、対応する値をエンコーダからデコーダにシグナリングする柔軟性が与えられ得る。
【0193】
例示的な一方法において、エリアサイズ閾値は、どのサイズが選択されたかを示すために固定数のビットのみをビットストリームに含めてデコーダにシグナリングする必要があるような、固定数のセットから選択され得る。例えば、4つの許容エリアサイズ閾値値{4、8、16、32}が存在すると仮定したとき、グループから選択された特定の値を示すために2ビットのみをシグナリングする必要がある。別の例示的な方法において、エリアサイズ閾値は、エンコーダ側で変換ブロック用に適応的に決定され得る。したがって、エリアサイズ閾値の値は、任意の数であり得る。このような場合、エリアサイズ閾値の値が未知の値であるので、固定長コードワードを使用することができない。代わりに、何らかの可変長コードワード(例えば、指数ゴロム及び一進法符号等)を適用して、ビットストリーム内の決定されたエリアサイズ閾値の値を示すことができる。
【0194】
更に、THの値がビットストリームに含めて送信される場合、THの値は、異なるレベル、例えばビデオパラメータセット(VPS)、シーケンスパラメータセット(SPS)、ピクチャパラメータセット(PPS)、スライスヘッダー及び符号化ブロックレベルでシグナリングされ得る。THの値がシーケンスレベル(例えば、VPS又はSPS)でシグナリングされる場合、これは、1つの同じエリアサイズ閾値が、ビデオシーケンス内のすべての変換ブロックに対して共有されることを意味する。THの値がピクチャ/スライスレベル(すなわち、PPS又はスライスヘッダー)でシグナリングされる場合、エリアサイズ閾値を、ピクチャごとに、又はスライスごとにそれぞれ変化させることができる。同様に、値が符号化ブロックでシグナリングされる場合、符号予測領域の適応能力が最大になるが、これは、個別の符号化ブロックのそれぞれのために値を別々にシグナリングしなければならないので、より多くの符号化ビットを消費する。
【0195】
デコーダ側において、デコーダは、変換ブロックのサイズ及びエリアサイズ閾値THに基づいて符号予測エリアを決定することができる。THが固定値である場合、THは、ビットストリームに含めてシグナリングされるのではなく、デコーダ内に予めプログラムされてもよい。デコーダは、この予めプログラムされた固定値を、すべてのシーケンス及びシナリオのために使用することができる。そうでない場合、THが固定値でないがエンコーダによって決定された値であるとき、THは、ビットストリームに含めてデコーダにシグナリングされる。したがって、デコーダは、変換ブロックのサイズ及びシグナリングされたエリアサイズ閾値THに基づいて符号予測エリアを決定する。
【0196】
いくつかの実装形態において、デコーダは最初に、どのレベルでエリアサイズ閾値がシグナリングされるかを決定することができる。上述のように、THは、VPS、SPS、PPS、スライスヘッダー及び符号化ブロックレベル等の異なるレベルでシグナリングされ得る。THがシグナリングされるレベルに基づいて、デコーダは、シグナリングされたTHを適用すべき程度を決定することができる。例えば、THがVPS又はSPSレベルでシグナリングされる場合、デコーダは、THをビデオシーケンス内のすべての変換ブロックに適用する。THがPPS又はスライスヘッダーレベルでシグナリングされた場合、デコーダは、現在ピクチャ/スライス内のすべての変換ブロックにTHを適用し、異なるピクチャ/スライスのそれぞれについて異なるTHを読み取る。THが符号化ブロックレベルでシグナリングされる場合、デコーダは、ビットストリームから読み出された異なるTHを異なる符号化ブロックのそれぞれに適用する。
【0197】
エリアサイズ閾値が変換ブロック用に適応的に決定された値である場合、デコーダは、ビットストリームに含めてシグナリングされたコードワードに基づいてTHの値を決定することができる。上述のように、THは、所定の値のグループから選択された場合には、固定長コードワードを使用してシグナリングされ得、又は変換ブロックのために適応的に決定された任意の数である場合には、可変長コードワードを使用してシグナリングされる。
【0198】
いくつかの実装形態において、どのようなTHの値を現在変換ブロックに適用するかを決定した後、デコーダは、例えば式(22)に従って、変換ブロックのサイズ及びエリアサイズ閾値THに基づいて符号予測エリアを決定することができる。例えば、図19に示されるように、符号予測エリアAの幅は、変換ブロックの幅及びエリアサイズ閾値THのうちの小さい方であるように決定され、符号予測エリアBの高さは、変換ブロックの高さ及びエリアサイズ閾値THのうちの小さい方であるように決定される。
【0199】
拡張符号予測エリアスキームは、上記に開示された符号予測技法のいずれとも干渉しないことが企図され、容易に適応させ、拡張符号予測エリアと組み合わせて、改善された符号化性能を提供することができる。単なる一具体例として、拡張符号予測エリアは、符号予測並べ替え及びLFNST符号予測と組み合わせることができる。
【0200】
上記の記述において、符号シグナリングビット内の予測符号の正しさを符号化する例として1つのコンテキストモデルが記述される。厳密には、各予測符号間の差分を符号化することができ、対応する「0」(又は「1」)を有する真の符号は、推定された符号が真の符号と同じである(又は同じでない)ことを示す。本開示のいくつかの実装形態による場合、符号化効率を更に改善するために、他のコンテキストモデルを使用して符号予測の正しさをエントロピー符号化することができる。
【0201】
第1の例示的な方法において、変換係数のレベル値(すなわち、強度)のコンテキストは、符号予測の正しさをエントロピー符号化するために使用され得る。理由としては、1つの強度が大きいほど、正しい予測をなす可能性がより高くなる傾向があるという点が挙げられる。例えば、このような方法が適用された場合、可能な強度値の範囲が、いくつかのセグメントに分割され得、異なるコンテキストが、異なるセグメント内の係数の符号予測エントロピー符号化に割り当てられ得る。
【0202】
いくつかの実装形態において、変換係数の強度の範囲は、複数の強度セグメントに分割され、コンテキストは、強度セグメントに属する変換係数のための符号シグナリングビットをエントロピー符号化するために、強度セグメントのそれぞれに割り当てられ得る。複数の強度セグメントの中で連続する強度セグメントは2つごとに、強度セグメントが重複しないように閾値によって分離され得る。
【0203】
一具体例において、閾値thresを使用して変換係数強度の範囲を2つのセグメント、すなわち、(1,thres)及び[thres、+∞]に分割することができる。このような分割を用いる場合、1つの変換係数が第1のセグメントに属する場合、1つの第1のコンテキストが、変換係数の符号を符号化するために割り当てられる。そうでない場合、変換係数が第2のセグメントに含まれる場合、1つの第2のコンテキストが、変換係数の符号を符号化するために割り当てられる。
【0204】
様々な実装形態において、閾値の値(又は複数の閾値の値)は、様々な方法によって決定及び指定することができる。例示的な一方法において、値は、固定(例えば、2、3、...等)であってもよく、エンコーダ側とデコーダの両方に予めプログラムされてもよい。したがって、エンコーダ側とデコーダ側に両方において固定値が使用され、固定値をシグナリングする必要がなくなる。別の例示的な方法において、エンコーダには、最適な閾値を選択する自由が与えられ、対応する値をデコーダにシグナリングすることができる。
【0205】
上述のように、変換係数のそれぞれの強度は、エンコーダ側の変換係数の符号値を符号化するためのコンテキストを決定するために使用される。したがって、デコーダ側において、変換係数のそれぞれの強度は、変換係数の符号値を復号するためにコンテキストを決定するために相応に使用される。変換係数は、逆量子化がデコーダ側で実行された後にのみ得られるので、このようなスキームは、逆量子化がパース段階で実行される必要があるという理由で、ビットストリームをパースする複雑度を顕著に増大させ得る。このような複雑度の課題を解決するために、一実装形態において、デコーダは、1つの変換係数の符号を符号化するコンテキストを決定するために、変換係数のレベルk(すなわち、逆量子化を適用することなくビットストリームから直接パースされた変換係数の量子化された値)を直接使用することができる。
【0206】
別の実装形態において、ビットストリームからパースされるレベルkを直接使用する代わりに、デコーダは、1つの変換係数の符号を符号化するコンテキストを決定するために量子化インデックス(すなわち、quantIdx)を使用することができる。記述したように、VVC/ECMにおいて、2つのスカラー量子化器が量子化/逆量子化のために適用され得る。1つの変換係数のために使用される見かけの量子化器は、現在変換係数に先行する変換係数のパリティによって決定される。したがって、変換係数についての量子化インデックスは、符号を符号化するためのコンテキストを決定するために使用され得る。先述のように、量子化インデックスは、現在変換係数の遷移状態(すなわち、状態)に基づいて、例えば式(6)に従ってレベルkの値から計算することができる。
【0207】
様々な実装形態において、すべての上記強度/レベルベースコンテキストモデリング方法は、図13に関して記述された本開示の変換係数選択スキームと組み合わせることができる。例えば、このような組合せは、2つの異なる方法で実装され得る。1つの方法において、変換係数を並べ替えることができ、並べ替えられた変換係数の強度/レベル(すなわち、変換係数が並べ替えられた後の強度/レベル)は、1つの変換ブロック内の変換係数の符号を符号化するために適用される対応するコンテキストを決定する。別の方法において、変換係数は並べ替えられず、変換係数の強度/レベルを並べ替えなしで(すなわち、変換係数が並べ替えられる前の変換係数の強度/レベル)使用して、変換ブロック内の変換係数の符号を符号化するために適用されるコンテキストを決定する。
【0208】
図20A及び図20Bは、それぞれ上記2つのスキームを実装する、変換係数符号予測のためのコンテキストモデリングの2つの例を示す。図20Aに示されるように、第1のスキームが適用される場合、変換係数は、強度/レベルに応じて、例えば6、3、2、2、1、1、1及び1の順序で並べ替えられる。並べ替えられた変換係数の強度/レベルは、ビットストリームに含まれる符号シグナリングビットのコンテキストを選択するために使用される。この第1のスキームの利益は、コンテキストモデリングのために使用される対応する強度/レベルと、符号が符号化されている変換係数とがマッチングされることである。この第1のスキームが適用された場合、エンコーダ/デコーダは、符号が符号化/復号されている前に変換係数を並べ替える必要があり、これにより、ビットストリームパース処理の複雑度を増大させ、したがって、パース処理能力を低下させる可能性がある。図20Bは、このパース処理の課題を回避することができる第2のスキームの実装形態を示す。第2の方法であるこの第2のスキームにおいて、並べ替えられていない変換係数の強度/レベルは、符号を符号化するためのコンテキストの決定のために使用される。したがって、並べ替えは、パース段階においては適用される必要がない。つまり、コンテキストモデリングのために使用される強度/レベルは、符号と整合しない可能性がある。
【0209】
第2の方法において、変換係数のスキャン位置のコンテキストは、符号予測をエントロピー符号化するために使用され得る。例えば、ある単一のコンテキストは、1つの変換ブロックの第1のL位置に位置する変換係数の符号化に適用することができるが、別のコンテキストは、他の位置の係数の符号の符号化に適用することができる。一具体例において、Lの値は、1に等しいように設定され得る。したがって、あるコンテキストが、ある変換係数の第1の変換係数(すなわち、DC係数)の符号を符号化するために割り当てられ、別のコンテキストが、他のすべての変換係数(すなわち、AC係数)の符号を符号化するために割り当てられる。代替的には、1つの変換ブロック内のすべての符号予測位置は、それぞれの重要性(又は正しい予測の可能性)に応じて異なるグループに分類され得、グループのそれぞれには、異なるコンテキストが別々に割り当てられ得る。
【0210】
第3の方法において、符号化モードのコンテキスト、ブロックサイズ及びコンポーネントチャネル情報等の符号化に関する情報は、符号予測のための符号化のために使用され得る。例えば、異なるコンテキストを、インターモード及びイントラモードのために使用することができる。別の例において、異なるコンテキストモデルが、異なるブロックのために使用され得る。更に別の例において、異なるコンテキストが、ルマ成分及びクロマ成分のために使用され得る。
【0211】
第4の方法において、変換係数を決定するための変換方式は、符号予測のためのコンテキストとして使用され得る。上述のように、MTS及びLFNST等、1つの変換ブロック内の係数のエネルギーを圧縮するために適用される複数の変換コアが存在する。異なる変換コアから得られる変換係数が異なる統計学的特性を与えうるのであれば、異なるコンテキストは、異なる変換の変換係数の符号をエントロピー符号化するために使用され得る。
【0212】
上記コンテキストモデリングスキームは別々に記述されたが、上記コンテキストモデリングスキームのいずれもが一緒に使用され得ることが企図される。実際、各方法を自由に組み合わせて、異なるコンテキスト設計を達成することができる。
【0213】
図21は、本開示のいくつかの実装形態によるブロックベースビデオ符号化における符号予測のための例示的な方法2100の流れ図である。方法2100は、ビデオエンコーダ20又はビデオデコーダ30に関連付けられたビデオプロセッサによって実装され得、後述するステップ2102~2108を含み得る。本明細書において提供された本開示を実行するためのステップのうちの一部は、任意選択的なものであり得る。更に、ステップのうちの一部は、同時に実行されてもよいし、又は図21に示されたものとは異なる順序で実行されてもよい。
【0214】
ステップ2102において、ビデオプロセッサは、一次変換及び二次変換をビデオのビデオフレームの変換ブロックに適用して、変換ブロックのための変換係数を生成することができる。
【0215】
ステップ2104において、ビデオプロセッサは、符号予測のための変換係数から候補変換係数のセットを選択することができる。
【0216】
ステップ2106において、ビデオプロセッサは、テンプレートベース仮説生成スキームを適用して、候補変換係数のセットのための複数の候補仮説から仮説を選択することができる。
【0217】
ステップ2108において、ビデオプロセッサは、選択された仮説に関連付けられた符号候補の組合せが、候補変換係数のセットに対する予測符号のセットであることを決定することができる。
【0218】
本開示による場合、方法2100及び図21は、ビデオエンコーダ側又はビデオデコーダ側で実行され得る。方法2100がビデオエンコーダ側で実行される場合、方法2100は、ビデオエンコーダ側での変換係数符号予測のための符号化方法として考えることができる。次いで、符号予測の正しさを示す符号シグナリングビットが生成され、デコーダに送信されるビットストリームに含まれるように符号化される。方法2100がビデオデコーダ側で実行される場合、方法2100は、ビデオデコーダ側での変換係数符号予測のための復号方法として考えることができる。符号シグナリングビットは、符号化された変換係数の量子化レベルのデータを更に含むビットストリームに含めてデコーダにシグナリングされる。デコーダは、受信した変換係数の元の符号を推定するために、符号シグナリングビットを使用して符号予測を訂正することができる。例示的な符号化方法、及びビデオデコーダ側での変換係数符号予測のための例示的な復号方法は、それぞれ下記において図22及び図23を参照しながら提供される。
【0219】
図22は、本開示のいくつかの実装形態によるビデオエンコーダによって実行される変換係数符号予測のための例示的なビデオ符号化方法2200の流れ図である。方法2200は、ビデオエンコーダ20に関連付けられたビデオプロセッサによって実装され得、後述するステップ2202~2122を含み得る。本明細書において提供された本開示を実行するためのステップのうちの一部は、任意選択的なものであり得る。更に、ステップのうちの一部は、同時に実行されてもよいし、又は図22に示されたものとはとは異なる順序で実行されてもよい。
【0220】
ステップ2202において、ビデオプロセッサは、一次変換をビデオのビデオフレームの変換ブロックに適用して、変換ブロックのための係数を生成することができる。
【0221】
ステップ2104において、ビデオプロセッサは、二次変換を変換ブロック内のサブブロックに適用して、変換ブロックのための変換係数を生成することができる。いくつかの実装形態において、二次変換は、順方向LFNSTであり得る。いくつかの実装形態において、ビデオプロセッサは、変換係数符号予測を実行するための符号予測エリアを決定することができる。
【0222】
ステップ2206において、ビデオプロセッサは、符号予測のための変換係数から候補変換係数のセットを選択することができる。いくつかの実装形態において、候補変換係数は、強度に基づいて並べ替えられた変換ブロックの変換係数から選択され得る。例えば、変換係数は、最高の強度から最低の強度に並べ替えることができ、最高の強度を有する変換係数が、符号予測を実行するために選択される。
【0223】
ステップ2208において、ビデオプロセッサは、候補変換係数のセット内の候補変換係数の合計数に基づいて候補変換係数のセットに対する符号候補の複数の組合せを決定することができる。
【0224】
ステップ2210において、ビデオプロセッサは、テンプレートベース仮説生成スキームを適用して、符号候補の複数の組合せに対する複数の候補仮説をそれぞれ生成することができる。
【0225】
ステップ2212において、ビデオプロセッサは、コスト関数に基づいて複数の候補仮説から最小コストに関連付けられた仮説を選択することができる。いくつかの実装形態において、コスト関数は、支配的な勾配方向に基づいて隣接サンプルを外挿することによって計算することができる。いくつかの実装形態において、上述のように、支配的な勾配方向は、コスト関数を計算するという目的で外挿方向として採用される前に特定の条件を満たさなければならない。ビデオプロセッサは、前述の条件が満たされるかを判定することができる。もしそうであるならば、コスト関数の計算において、支配的な勾配方向に沿って隣接サンプル外挿を実行される。そうでない場合、デフォルトの外挿方向(例えば、上隣に対する垂直外挿及び左隣に対する水平外挿)が使用され得る。
【0226】
ステップ2214において、ビデオプロセッサは、選択された仮説に関連付けられた符号候補の組合せが、候補変換係数のセットに対する予測符号のセットであることを決定することができる。
【0227】
ステップ2216において、ビデオプロセッサは、候補変換係数のセットのための符号シグナリングビットのシーケンスをエントロピー符号化するための1つ又は複数のコンテキストを決定することができる。いくつかの実装形態において、変換ブロックについて、1つのコンテキストモデルが決定され得る。いくつかの他の実装形態において、変換ブロックの異なる変換係数について、異なるコンテキストモデルが決定され得る。異なるコンテキストは、変換係数の異なる特徴量に基づいて符号シグナリングビットのシーケンスをエントロピー符号化することができる。第1の例において、コンテキストは、符号シグナリングビットに対応する候補変換係数のセットの強度に基づいて決定される。第2の例において、コンテキストは、候補変換係数のスキャン位置に基づいて決定される。第3の例において、コンテキストは、候補変換係数のそれぞれの符号化モード、ブロックサイズ又はコンポーネントチャネル情報に基づいて決定される。第4の例において、コンテキストは、候補変換係数を生成するために適用された変換コアに基づいて決定される。
【0228】
ステップ2218において、ビデオプロセッサは、1つ又は複数のコンテキストに応じて候補変換係数のセットのための符号シグナリングビットのシーケンスを生成することができる。上述のように、様々なコンテキストモデル及びコンテキストモデルの組合せを使用して予測符号の正しさを符号化することができる。いくつかの実装形態において、符号シグナリングビットのシーケンスは、ベクトルベース符号予測スキームを適用することによって生成され得る。
【0229】
ステップ2220において、ビデオプロセッサは、候補変換係数を量子化して候補変換係数の量子化レベルを得ることができる。
【0230】
ステップ2222において、ビデオプロセッサは、符号シグナリングビットのシーケンス及び候補変換係数の量子化レベルの符号化されたデータを含むビットストリームを生成することができる。
【0231】
図23は、本開示のいくつかの実装形態によるビデオデコーダによって実行される変換係数符号予測のための例示的なビデオ復号方法2300の流れ図である。方法2300は、ビデオデコーダ30に関連付けられたビデオプロセッサによって実装され得、後述するステップ2302~2318を含み得る。本明細書において提供された本開示を実行するためのステップのうちの一部は、任意選択的なものであり得る。更に、ステップのうちの一部は、同時に実行されてもよいし、又は図23に示されたものとは異なる順序で実行されてもよい。
【0232】
ステップ2302において、ビデオプロセッサは、候補変換係数のセットを逆量子化することができる。いくつかの実装形態において、ビデオプロセッサは、符号シグナリングビットのシーケンスを含むビットストリーム及び変換ブロックに関連付けられた量子化された変換係数を受信することができる。ビデオプロセッサは、図3の逆量子化ユニット86によって、量子化された変換係数から逆量子化された変換係数を生成することができる。
【0233】
候補変換係数のセットは、変換係数符号予測のために使用される。逆量子化された変換係数は、変換ブロックに関連付けられる。逆量子化されたビデオデコーダ30内の変換ブロックの変換係数は、ビデオエンコーダ20内の変換ブロックの変換係数と等価であり得る。いくつかの実装形態において、候補変換係数のセットがエンコーダ側で強度に応じて並べ替えられた変換ブロックの変換係数から選択される場合、デコーダのビデオプロセッサは、ビットストリームからパースされた候補変換係数のセットを並べ替えることができる。
【0234】
ステップ2304において、ビデオプロセッサは、候補変換係数のセット内の候補変換係数の合計数に基づいて候補変換係数のセットのための符号候補の複数の組合せを決定することができる。
【0235】
ステップ2306において、ビデオプロセッサは、テンプレートベース仮説生成スキームを適用して、符号候補の複数の組合せのための複数の候補仮説をそれぞれ生成することができる。
【0236】
ステップ2308において、ビデオプロセッサは、コスト関数に基づいて複数の候補仮説から最小コストに関連付けられた仮説を選択することができる。いくつかの実装形態において、コスト関数は、上記のように、支配的な勾配方向に基づいて隣接サンプルを外挿することによって計算することができる。
【0237】
ステップ2310において、ビデオプロセッサは、選択された仮説に関連付けられた符号候補の組合せが、候補変換係数のセットに対する予測符号のセットであることを決定することができる。
【0238】
ステップ2312において、ビデオプロセッサは、エンコーダから受信した符号シグナリングビットのシーケンスをエントロピー符号化するために使用される1つ又は複数のコンテキストを決定することができる。符号シグナリングビットのシーケンスは、デコーダに送信されるビットストリームに含まれる。上記のように、単一のコンテキストモデル又は複数のコンテキストモデルを使用して、エンコーダによって符号シグナリングビットをエントロピー符号化することができる。デコーダは、符号シグナリングビットを復号して候補変換係数に対する符号予測の正しさの指標を得るためにこのようなコンテキストを決定することができる。
【0239】
第1の例において、コンテキストは、符号シグナリングビットに対応する候補変換係数のセットの強度に基づいて決定される。例えば、変換係数の強度は、複数の強度セグメントに含まれ、コンテキストは、強度セグメントのそれぞれに属する変換係数のための符号シグナリングビットをエントロピー符号化するために割り当てられる。ビデオプロセッサは、候補変換係数のそれぞれの強度が属する強度セグメントを決定することができ、符号シグナリングビットをエントロピー符号化するために使用されるコンテキストとして強度セグメントに割り当てられるコンテキストを決定することができる。複数の強度セグメントの中で連続する強度セグメントは2つごとに、デコーダに予めプログラムされた固定値であってもよいし、又はエンコーダによって決定され、デコーダにシグナリングされた値であってもよい閾値によって分離される。いくつかの実装形態において、候補変換係数の強度は、逆量子化なしでビットストリームから直接パースされた候補変換係数の量子化レベルである。いくつかの実装形態において、候補変換係数の強度は、候補変換係数の量子化インデックスである。
【0240】
第2の例において、コンテキストは、候補変換係数のスキャン位置に基づいて決定される。例えば、変換係数のスキャン位置は、複数のグループに分類され、コンテキストは、グループのそれぞれに属する変換係数のための符号シグナリングビットをエントロピー符号化するために割り当てられる。ビデオプロセッサは、複数のグループの中から、符号シグナリングビットに対応する候補変換係数のスキャン位置が属するグループを決定することができ、符号シグナリングビットをエントロピー符号化するために使用されるコンテキストとしてグループに割り当てられるコンテキストを決定することができる。
【0241】
第3の例において、コンテキストは、候補変換係数のそれぞれの符号化モード、ブロックサイズ又はコンポーネントチャネル情報に基づいて決定される。第4の例において、コンテキストは、候補変換係数を生成するために適用された変換コアに基づいて決定される。
【0242】
ステップ2314において、ビデオプロセッサは、1つ又は複数のコンテキストに基づいて符号シグナリングビットのシーケンスを復号することができる。
【0243】
ステップ2316において、ビデオプロセッサは、予測符号のセット及びビデオエンコーダから受信した復号された符号シグナリングビットのシーケンスに基づいて候補変換係数のセットの元の符号を推定することができる。
【0244】
例えば、図15Bを参照すると、予測符号のセットは、値(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))XOR結果ことが決定される。グループ#2のビットが「0」の値を有し、このことは、(1,0)の値を有するこのグループに対する予測符号が正しい(例えば、予測符号が元の符号と同じである)ことを示すので、推定されたグループ#2の元の符号が(1,0)であることが決定される。次いで、推定された候補変換係数のセットの元の符号が、推定されたグループ#0、#1及び#2の元の符号のそれぞれを連結することによって形成されるが、これは、(1,0,0,0,1,0)を含む。上述のように、ビデオエンコーダは、異なるコンテキストモデルを使用して予測符号の正しさを符号化することができ、予測符号の訂正は、これらのコンテキストモデルに応じて適応される。
【0245】
ステップ2318において、ビデオプロセッサは、推定された候補変換係数のセットの元の符号に基づいて逆量子化された変換係数を更新することができる。例えば、ビデオプロセッサは、推定された元の符号を、候補変換係数のセットに対応する変換ブロック内の逆量子化された変換係数の真の符号として使用することができる。
【0246】
いくつかの実装形態において、逆量子化された変換係数が更新された後、ビデオプロセッサは、逆一次変換及び逆二次変換を逆量子化された変換係数に更に適用して、変換ブロックに対応する残差ブロック内の残差サンプルを生成することができる。逆二次変換は、LFNSTを含む二次変換に対応する。逆一次変換は、DCT-II、DCT-V、DCT-VIII、DST-I、DST-IV、DST-VII又は/及び恒等変換を含む一次変換に対応する。
【0247】
いくつかの実装形態において、候補変換係数のセットのための符号シグナリングビットのシーケンスは、ビデオエンコーダにより、ベクトルベース符号予測スキームを、ビデオエンコーダ側で選択された別の候補変換係数のセットに対する予測符号の別のセットに適用することと、符号シグナリングビットのシーケンスを含むビットストリームを生成することとによって、ビデオエンコーダによって生成される。他の候補変換係数のセットは、ビデオデコーダ側の候補変換係数のセットに対応するビデオエンコーダ側の変換係数である。
【0248】
いくつかの実装形態において、ベクトルベース符号予測スキームを、他の候補変換係数のセットに対する予測符号の他のセットに適用することは、他の候補変換係数のセットを候補変換係数の複数のグループに分割することと、候補変換係数のグループのそれぞれに対して、候補変換係数のグループの元の符号が候補変換係数のグループの予測符号と同一であるかに基づいて、候補変換係数のグループについての1つ又は複数の符号シグナリングビットを生成することとを更に含む。
【0249】
いくつかの実装形態において、候補変換係数のグループについての1つ又は複数の符号シグナリングビットを生成することは、候補変換係数のグループの元の符号が候補変換係数のグループの予測符号と同一であることに応答して、0の値を有するビンを生成することと、符号シグナリングビットとしてビンをビットストリームに追加することとを含む。いくつかの実装形態において、候補変換係数のグループについての1つ又は複数の符号シグナリングビットを生成することは、候補変換係数のグループの元の符号が候補変換係数のグループの予測符号と同一でないことに応答して、1の値を有するビンを生成することと、候補変換係数のグループの予測符号の対応する正しさを通知するための追加ビンのセットを生成することと、ビン及び追加ビンのセットを符号シグナリングビットとしてビットストリームに追加することとを含む。
【0250】
図24は、本開示のいくつかの実装形態による使用者インターフェース2450と結合されたコンピューティング環境2410を示す。コンピューティング環境2410は、データ処理サーバの一部であってよい。例えば、上記に開示されたビデオエンコーダ20又はビデオデコーダ30内のビデオプロセッサは、コンピューティング環境2410を使用して実装され得る。コンピューティング環境2410は、プロセッサ2420、メモリ2430及び入/出力(I/O)インターフェース2440を備える。
【0251】
プロセッサ2420は一般的に、表示、データ取得、データ通信及び画像処理に関連付けられた操作等のコンピューティング環境2410の全体的な操作を制御する。プロセッサ2420は、上記方法のステップのうちのすべて又は一部を実行する命令を実行するための1つ又は複数のプロセッサを備えることができる。更に、プロセッサ2420は、プロセッサ2420と他の構成要素との連携を容易化する1つ又は複数のモジュールを備えることができる。プロセッサ2420は、中央処理装置(CPU)、マイクロプロセッサ、シングルチップマシン又はグラフィカルプロセシングユニット(GPU)等であり得る。
【0252】
メモリ2430は、コンピューティング環境2410の操作をサポートするための様々な種類のデータを記憶するように構成される。メモリ2430は、所定のソフトウェア2432を含み得る。このようなデータの例は、コンピューティング環境2410上で操作される任意のアプリケーション又は方法に対する命令、ビデオデータ、画像データ等を含む。メモリ2430は、スタティックランダムアクセスメモリ(SRAM)、電子的消去可能プログラマブルリードオンリーメモリ(EEPROM)、消去及び書込み可能リードオンリーメモリ(EPROM)、書込み可能リードオンリーメモリ(PROM)、リードオンリーメモリ(ROM)、磁気メモリ、フラッシュメモリ、磁気又は光学ディスク等の、任意の種類の揮発性若しくは不揮発性メモリデバイス又はこれらの組合せを使用することによって実装され得る。
【0253】
I/Oインターフェース2440は、プロセッサ2420と、キーボード、クリックホイール又はボタン等のペリフェラルインターフェースモジュールとの間のインターフェースを提供する。ボタンは、ホームボタン、スキャン開始ボタン及びスキャン停止ボタンを含み得るが、これらに限定されるわけではない。I/Oインターフェース2440は、エンコーダ及びデコーダと結合され得る。
【0254】
いくつかの実装形態において、上記方法を実行するためにコンピューティング環境2410のプロセッサ2420において実行可能な複数のプログラム、例えば、メモリ2430内の複数のプログラムを含む非一時的なコンピュータ読取り可能な記憶媒体も提供される。一例において、(例えば、図2のビデオエンコーダ20から)符号化されたビデオ情報(例えば、符号化されたビデオフレーム及び/又は関連する1つ又は複数のシンタックス要素等を表現するビデオブロック)を含むビットストリーム又はデータストリームを受信するために、複数のプログラムが、コンピューティング環境2410のプロセッサ2420によって実行されてもよく、更には、受信したビットストリーム又はデータストリームに応じて上記復号方法を実行するために、複数のプログラムが、コンピューティング環境2410内のプロセッサ2420によって実行されてもよい。別の例において、上記符号化方法を実行して、ビデオ情報(例えば、ビデオフレームを表現するビデオブロック及び/又は関連する1つ又は複数のシンタックス要素等)を符号化してビットストリーム又はデータストリームに含めるために、複数のプログラムがコンピューティング環境2410内のプロセッサ2420によって実行されてもよく更には、ビットストリーム又はデータストリームを(例えば、図3のビデオデコーダ30に)伝送するために、複数のプログラムがコンピューティング環境2410内のプロセッサ2420によって実行されてもよい。代替的には、非一時的なコンピュータ読取り可能な記憶媒体は、例えばビデオデータの復号においてデコーダ(例えば、図3のビデオデコーダ30)が使用するための上記符号化方法を使用してエンコーダ(例えば、図2のビデオエンコーダ20)によって生成された、符号化されたビデオ情報(例えば、符号化されたビデオフレーム及び/又は関連する1つ又は複数のシンタックス要素等を表現するビデオブロック)を含むビットストリーム又はデータストリームを記憶しておくことができる。非一時的なコンピュータ読取り可能な記憶媒体は、例えば、ROM、ランダムアクセスメモリ(RAM)、CD-ROM、磁気テープ、フロッピーディスク又は光学式データ記憶装置等であり得る。
【0255】
いくつかの実装形態において、1つ又は複数のプロセッサ(例えば、プロセッサ2420)と、1つ又は複数のプロセッサによって実行可能な複数のプログラムを記憶した非一時的なコンピュータ読取り可能な記憶媒体又はメモリ2430とを備える計算デバイスであって、1つ又は複数のプロセッサが、複数のプログラムの実行が実行されたときに上記方法を実行するように構成される、計算デバイスも提供される。
【0256】
いくつかの実装形態において、上記方法を実行するためにコンピューティング環境2410内のプロセッサ2420によって実行可能な複数のプログラム、例えば、メモリ2430内の複数のプログラムを含むコンピュータプログラム製品も提供される。例えば、コンピュータプログラム製品は、非一時的なコンピュータ読取り可能な記憶媒体を備え得る。
【0257】
いくつかの実装形態において、コンピューティング環境2410は、上記方法を実行するための1つ又は複数のASIC、DSP、デジタル信号処理デバイス(DSPD)、プログラマブルロジックデバイス(PLD)、FPGA、GPU、コントローラ、マイクロコントローラ、マイクロプロセッサ又は他の電子部品によって実行され得る。
【0258】
本開示の記述は説明を目的として提供されており、排他的なものである又は本開示に限定されることを意図されていない。数多くの修正形態、変更形態及び代替的な実装形態は、上記の説明及び添付の図面において提供された利益を受ける当業者には明らかであろう。
【0259】
そうではないと明示的に記載されていない限り、本開示による方法のステップの順番は、例示用として意図されたものにすぎず、本開示による方法のステップは、上記において具体的に記載された順番に限定されないが、実際の条件に応じて変更することが可能である。更に、本開示による方法のステップのうちの少なくとも1つは、実際の要件に応じて調整され、組み合わされ、又は削除され得る。
【0260】
上記の例は、本開示の原理を説明するため、並びに、当業者が様々な実装形態について本開示を理解し、基礎となる原理及び様々な実装形態を、企図される特定の使用に適するように様々な修正を加えて最良の態様で利用できるようにするために選択及び記述された。したがって、本開示の範囲は、開示された実装形態の具体例に限定されず、修正形態及び他の実装形態が本開示の範囲に含まれることを意図されることを理解すべきである。
図1
図2
図3
図4A
図4B
図4C
図4D
図4E
図5
図6
図7
図8
図9
図10
図11
図12A
図12B
図13
図14
図15A
図15B
図16A
図16B
図17
図18A
図18B
図19
図20A
図20B
図21
図22
図23
図24
【国際調査報告】