(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2025-01-24
(54)【発明の名称】ブロックベースの映像コーディングのための符号予測
(51)【国際特許分類】
H04N 19/61 20140101AFI20250117BHJP
H04N 19/46 20140101ALI20250117BHJP
【FI】
H04N19/61
H04N19/46
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2024539868
(86)(22)【出願日】2023-01-17
(85)【翻訳文提出日】2024-07-01
(86)【国際出願番号】 US2023010901
(87)【国際公開番号】W WO2023137217
(87)【国際公開日】2023-07-20
(32)【優先日】2022-01-17
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】PCT/US2022/053150
(32)【優先日】2022-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
5C159MA23
5C159MC11
5C159MC30
5C159MC36
5C159ME01
5C159PP04
5C159RB09
5C159RC12
5C159TA41
5C159TB08
5C159TB14
5C159TC43
5C159UA02
5C159UA05
(57)【要約】
本開示の実装によれば、映像デコーダ側における変換係数符号予測のための映像復号装置および方法が提供される。本方法は、映像からの映像フレームの変換ブロックの変換係数の符号化データを含むビットストリームを受け取ることを含んでよい。本方法は、デコーダにより、変換ブロックにおいて複数の領域を決定することであって、複数の領域は、符号予測を実施する符号予測エリアと、少なくとも1つの他の領域とを含むことを更に含んでよい。本方法は、デコーダにより、ビットストリームを構文解析し、変換ブロックの複数の領域と関連する変換係数の符号を、変換係数の符号を信号送達するのに使用される領域ベースの順序に従って取得することを更に含んでよい。本方法は、また、デコーダにより、変換ブロックの符号予測エリアと関連する一連の候補変換係数に対する元の符号を推定することと、推定された元の符号に基づいて、符号予測エリアと関連する変換係数を更新することとを含んでよい。
【特許請求の範囲】
【請求項1】
変換係数の符号予測のための映像復号方法であって、
映像からの映像フレームの変換ブロックの変換係数の符号化データを含むビットストリームを受け取ることと、
デコーダにより、前記変換ブロックにおいて複数の領域を決定することであって、前記複数の領域は、前記符号予測を実施するための符号予測エリアと、少なくとも1つの他の領域とを含むことと、
前記デコーダにより、前記ビットストリームを構文解析し、前記変換ブロックの前記複数の領域と関連する変換係数の符号を、前記変換係数の前記符号を信号送達するのに使用される領域ベースの順序に従って取得することと、
前記デコーダにより、前記変換ブロックの前記符号予測エリアと関連する一連の候補変換係数に対する元の符号を推定することと、
推定された前記元の符号に基づいて、前記符号予測エリアと関連する前記変換係数を更新することと
を含む方法。
【請求項2】
前記変換ブロックにおける前記複数の領域は、エリアサイズ閾値に基づいて決定される、請求項1に記載の映像復号方法。
【請求項3】
前記符号予測エリアは、前記エリアサイズ閾値に等しい幅および高さを有する前記変換ブロックの左上の角における第1の領域であると決定される、請求項2に記載の映像復号方法。
【請求項4】
前記少なくとも1つの他の領域は、前記第1の領域の外側の前記変換ブロックの残りのエリアを包含する第2の領域を含む、請求項3に記載の映像復号方法。
【請求項5】
前記第1の領域における前記変換係数の前記符号は、第1のスキャン順序に従ってコード化され、前記第2の領域における前記変換係数の前記符号は、前記第1のスキャン順序とは異なる第2のスキャン順序に従ってコード化される、請求項4に記載の映像復号方法。
【請求項6】
前記第1のスキャン順序は、水平スキャン順序であり、前記第2のスキャン順序は、斜めのスキャン順序である、請求項5に記載の映像復号方法。
【請求項7】
前記ビットストリームを構文解析し、前記変換ブロックの前記複数の領域と関連する変換係数の符号を、前記変換係数の前記符号を信号送達するのに使用される領域ベースの順序に従って取得することは、
前記第2の領域、続いて、前記第1の領域の前記領域ベースの順序に従って、前記ビットストリームから前記変換係数の前記符号を読み取ること
を更に含む、請求項4に記載の映像復号方法。
【請求項8】
前記少なくとも1つの他の領域は、最大エリアサイズ閾値に等しい幅および高さを有する前記変換ブロックの前記左上の角におけるエリアを包含し、かつ前記第1の領域の外側である第2の領域を含み、前記少なくとも1つの他の領域は、前記第1の領域および前記第2の領域の外側の、前記変換ブロックの残りのエリアを取り囲む第3の領域を更に含む、請求項3に記載の映像復号方法。
【請求項9】
前記第1の領域、前記第2の領域、および前記第3の領域における前記変換係数の前記符号は、少なくとも2つの異なるスキャン順序に従ってコード化される、請求項8に記載の映像復号方法。
【請求項10】
前記第1の領域および前記第2の領域における前記変換係数の前記符号は、水平スキャン順序に従ってコード化され、前記第3の領域における前記変換係数は、斜めのスキャン順序に従ってコード化される、請求項9に記載の映像復号方法。
【請求項11】
前記ビットストリームを構文解析し、前記変換ブロックの前記複数の領域と関連する変換係数の符号を、前記変換係数の前記符号を信号送達するのに使用される領域ベースの順序に従って取得することは、
前記第3の領域、続いて前記第1の領域、および続いて前記第2の領域の前記領域ベースの順序に従って、前記ビットストリームから前記変換係数の前記符号を読み取ること
を更に含む、請求項5に記載の映像復号方法。
【請求項12】
前記エリアサイズ閾値は、前記映像の全ての変換ブロックに対して固定値であり、前記エリアサイズ閾値は、前記ビットストリームで信号伝達されない、請求項2に記載の映像復号方法。
【請求項13】
前記エリアサイズ閾値は、前記変換ブロックに対して適応的に決定され、前記エリアサイズ閾値は、前記ビットストリームで信号伝達される、請求項2に記載の映像復号方法。
【請求項14】
前記エリアサイズ閾値は、映像パラメータセット、シーケンスパラメータセット、ピクチャパラメータセット、またはスライスヘッダーおよびコーディングブロックレベルにおいて信号伝達される、請求項13に記載の映像復号方法。
【請求項15】
前記ビットストリームは、一連の符号信号伝達ビットを更に含み、前記変換ブロックの前記符号予測エリアと関連する前記一連の候補変換係数に対する前記元の符号を推定することは、
前記変換ブロックの前記符号予測エリアと関連する一連の候補変換係数に対する符号を予測することと、
一連の予測された前記符号と前記一連の符号信号伝達ビットとに基づいて、前記一連の候補変換係数に対する元の符号を推定することと
を更に含む、請求項1に記載の映像復号方法。
【請求項16】
前記変換ブロックの前記符号予測エリアと関連する一連の候補変換係数に対する符号を予測することは、
前記一連の候補変換係数における候補変換係数の総数に基づいて、前記一連の候補変換係数に対する符号候補の複数の組み合わせを決定することと、
テンプレートベースの仮説生成スキームを適用し、前記符号候補の複数の組み合わせに対する複数の候補仮説をそれぞれ生成することと、
前記一連の候補変換係数に対する一連の予測符号として、前記複数の候補仮説から仮説を選択することと
を更に含む、請求項15に記載の映像復号方法。
【請求項17】
前記変換ブロックの前記変換係数に逆方向一次変換および逆低周波数非分離変換(LFNST)を適用し、前記変換ブロックに対応する残差ブロックにおいて残差サンプルを生成すること
を更に含む、請求項1に記載の映像復号方法。
【請求項18】
ビットストリームを保存するように構成されたメモリと、
前記メモリに接続され、請求項1~17の何れかに記載の変換係数の符号予測のための映像復号方法を実施するように構成されたプロセッサと
を備える映像復号装置。
【請求項19】
プロセッサにより実行されたとき、プロセッサに請求項1~17の何れかに記載の変換係数の符号予測のための映像復号方法を実施させる指示を中に保存した非一時的コンピュータ読み取り可能な記憶媒体であって、
前記ビットストリームは、前記コンピュータ読み取り可能な記憶媒体に保存される、非一時的コンピュータ読み取り可能な記憶媒体。
【請求項20】
変換ブロックの変換係数の符号化データを含むビットストリームを中に保存した非一時的コンピュータ読み取り可能な記憶媒体であって、前記ビットストリームは、請求項1~17の何れかに記載の変換係数の符号予測のための映像復号方法により復号可能である、非一時的コンピュータ読み取り可能な記憶媒体。
【請求項21】
変換係数の符号予測のための映像符号化方法であって、
エンコーダにより、映像からの映像フレームの変換ブロックの変換係数を生成することと、
前記エンコーダにより、前記変換ブロックにおいて複数の領域を決定することであって、前記複数の領域は、前記符号予測を実施するための符号予測エリアと、少なくとも1つの他の領域とを含むことと、
前記エンコーダにより、前記変換ブロックの前記符号予測エリアと関連する一連の候補変換係数に対する符号を予測することと、
前記エンコーダにより、ビットストリームを生成し、領域ベースの順序に従って前記変換ブロックの前記複数の領域と関連する前記変換係数の符号を信号送達することと
を含む方法。
【請求項22】
前記変換ブロックにおける前記複数の領域は、エリアサイズ閾値に基づいて決定される、請求項21に記載の映像符号化方法。
【請求項23】
前記符号予測エリアは、前記エリアサイズ閾値に等しい幅および高さを有する前記変換ブロックの左上の角における第1の領域であると決定される、請求項22に記載の映像符号化方法。
【請求項24】
前記少なくとも1つの他の領域は、前記第1の領域の外側の、前記変換ブロックの残りのエリアを包含する第2の領域を含む、請求項23に記載の映像符号化方法。
【請求項25】
第1のスキャン順序に従って前記第1の領域における前記変換係数を符号化することと、
前記第1のスキャン順序とは異なる第2のスキャン順序に従って前記第2の領域における前記変換係数を符号化することと
を更に含む、請求項24に記載の映像符号化方法。
【請求項26】
前記第1のスキャン順序は、水平スキャン順序であり、前記第2のスキャン順序は、斜めのスキャン順序である、請求項25に記載の映像符号化方法
【請求項27】
前記変換ブロックの前記複数の領域と関連する前記変換係数の前記符号は、前記第2の領域、および続いて前記第1の領域の前記領域ベースの順序に従って信号伝達される、請求項24に記載の映像符号化方法。
【請求項28】
前記少なくとも1つの他の領域は、最大エリアサイズ閾値に等しい幅および高さを有する前記変換ブロックの前記左上の角におけるエリアを包含し、かつ前記第1の領域の外側である第2の領域を含み、前記少なくとも1つの他の領域は、前記第1の領域および前記第2の領域の外側の、前記変換ブロックの残りのエリアを取り囲む第3の領域を更に含む、請求項23に記載の映像符号化方法。
【請求項29】
少なくとも2つの異なるスキャン順序に従って、前記第1の領域、前記第2の領域、および前記第3の領域における前記変換係数の前記符号をコード化すること
を更に含む、請求項28に記載の映像符号化方法。
【請求項30】
前記第1の領域および前記第2の領域における前記変換係数は、水平スキャン順序に従ってコード化され、前記第3の領域における前記変換係数は、斜めのスキャン順序に従ってコード化される、請求項29に記載の映像符号化方法。
【請求項31】
前記変換ブロックの前記複数の領域と関連する変換係数の前記符号は、前記第3の領域、続いて前記第1の領域、および続いて前記第2の領域の前記領域ベースの順序に従って信号伝達される、請求項25に記載の映像符号化方法。
【請求項32】
前記エリアサイズ閾値は、前記映像の全ての変換ブロックに対して固定値であり、前記エリアサイズ閾値は、前記ビットストリームで信号伝達されない、請求項22に記載の映像符号化方法。
【請求項33】
前記変換ブロックに対する前記エリアサイズ閾値を適応的に決定することと、
前記ビットストリームで前記エリアサイズ閾値を信号伝達することと
を更に含む、請求項22に記載の映像符号化方法。
【請求項34】
前記エリアサイズ閾値は、映像パラメータセット、シーケンスパラメータセット、ピクチャパラメータセット、またはスライスヘッダーおよびコーディングブロックレベルにおいて信号伝達される、請求項33に記載の映像符号化方法。
【請求項35】
前記一連の候補変換係数に対して予測された前記符号に基づいて、一連の符号信号伝達ビットを生成することと、
前記ビットストリームにおいて、前記一連の符号信号伝達ビットを信号伝達することと
を更に含む、請求項21に記載の映像符号化方法。
【請求項36】
前記変換ブロックの前記符号予測エリアと関連する一連の候補変換係数に対する符号を予測することは、
前記一連の候補変換係数における候補変換係数の総数に基づいて、前記一連の候補変換係数に対する符号候補の複数の組み合わせを決定することと、
テンプレートベースの仮説生成スキームを適用し、前記符号候補の複数の組み合わせに対する複数の候補仮説をそれぞれ生成することと、
前記一連の候補変換係数に対する一連の予測符号として、前記複数の候補仮説から仮説を選択することと
を更に含む、請求項21に記載の映像符号化方法。
【請求項37】
一次変換および低周波数非分離変換(LFNST)を適用し、前記変換ブロックの前記変換係数を生成すること
を更に含む、請求項1に記載の映像符号化方法。
【請求項38】
請求項21~37の何れかに記載の変換係数の符号予測のための映像符号化方法を実施するように構成されたプロセッサと、
前記プロセッサに接続され、前記ビットストリームを保存するように構成されたメモリと
を備える、映像符号化装置。
【請求項39】
プロセッサにより実行されたとき、前記プロセッサに請求項21~37の何れかに記載の変換係数の符号予測のための映像符号化方法を実施させる指示を中に保存した非一時的コンピュータ読み取り可能な記憶媒体であって、
前記ビットストリームは、前記コンピュータ読み取り可能な記憶媒体に保存される、非一時的コンピュータ読み取り可能な記憶媒体。
【請求項40】
請求項21~37の何れかに記載の変換係数の符号予測のための映像符号化方法により生成されたビットストリームを中に保存した非一時的コンピュータ読み取り可能な記憶媒体。
【発明の詳細な説明】
【関連出願】
【0001】
本出願は、2022年1月17日に出願された米国仮特許出願第63/300,187号に基づき、その優先権を主張するものである。本出願は、2021年12月16日に出願された米国仮特許出願第63/290,307号の優先権を主張する、2022年12月16日に出願されたPCT出願第PCT/US22/53150号に更に基づき、その優先権を主張するものである。本出願は、2021年11月10日に出願された米国仮特許出願第63/277,705号の優先権を主張する、2022年11月8日に出願されたPCT出願第PCT/US22/49264号に更に基づき、その優先権を主張するものである。本出願は、2021年9月15日に出願された米国仮特許出願第63/244,317号、および2021年9月30日に出願された米国仮特許出願第63/250,797号の優先権を更に主張する、2022年9月15日に出願されたPCT出願第PCT/US22/43607号に更に基づき、その優先権を主張するものである。本出願は、2021年8月17日に出願された米国仮特許出願第63/233,940号の優先権を更に主張する、2022年8月16日に出願されたPCT出願第PCT/US22/40442号にも基づき、その優先権を主張するものである。上記の全ての出願の内容は、参照により、その全体を本明細書に援用する。
【技術分野】
【0002】
本出願は、映像コーディングおよび圧縮に関する。より具体的には、本出願は、ブロックベースの映像コーディングにおける符号予測のための映像処理システムおよび方法に関する。
【背景技術】
【0003】
デジタル映像は、デジタルテレビ、ラップトップまたはデスクトップコンピュータ、タブレット型コンピュータ、デジタルカメラ、デジタル記録装置、デジタルメディアプレーヤー、ビデオゲーム機、スマートフォン、ビデオ電話会議装置、ビデオストリーミングデバイスなど、さまざまな電子デバイスによりサポートされている。電子デバイスは、通信ネットワークを介してデジタル映像データを送受信もしくはやり取りする、かつ/または記憶装置にデジタル映像データを保存する。通信ネットワークの帯域幅容量が限られているため、かつ記憶装置のメモリ資源が限られているため、映像コーディングを使用し、映像データをやり取りまたは保存する前に、1つまたは複数の映像コーディング規格に従って、その映像データを圧縮してよい。例えば、映像コーディング規格としては、Versatile Video Coding(VVC)、Joint Exploration test Model(JEM)、High-Efficiency Video Coding(HEVC/H.265)、Advanced Video Coding(AVC/H.264)、Moving Picture Expert Group(MPEG)コーディングなどが挙げられる。映像コーディングは、通常、映像データにつきものの冗長性を活用する予測方法(例えば、インター予測、イントラ予測など)を利用する。映像コーディングは、より低いビットレートを使用する形式に映像データを圧縮することを目指す一方で、映像品質の劣化を回避または最小化する。
【発明の概要】
【0004】
本開示の実装によれば、変換係数の符号予測のための映像復号方法が提供される。本方法は、映像からの映像フレームの変換ブロックの変換係数の符号化データを含むビットストリームを受け取ることを含んでよい。本方法は、デコーダにより、変換ブロックにおいて複数の領域を決定することであって、複数の領域は、符号予測を実施するための符号予測エリアと、少なくとも1つの他の領域とを含むことを更に含んでよい。本方法は、デコーダにより、ビットストリームを構文解析し、変換ブロックの複数の領域と関連する変換係数の符号化データを、変換係数の符号化データを信号送達するのに使用される領域ベースの順序に従って取得することを更に含んでよい。本方法は、また、デコーダにより、変換ブロックの符号予測エリアと関連する一連の候補変換係数に対する元の符号を推定することと、推定された元の符号に基づいて、符号予測エリアと関連する変換係数を更新することとを含んでよい。
【0005】
本開示の実装によれば、映像復号装置も提供される。映像復号装置は、上にまとめたような、変換係数の符号予測のための映像復号方法を実施するように構成されたメモリを備えてよい。
【0006】
本開示の実装によれば、プロセッサにより実行されたとき、プロセッサに、上にまとめたような変換係数の符号予測のための映像復号方法を実施させる指示を中に保存した非一時的コンピュータ読み取り可能な記憶媒体も提供される。本開示の実装によれば、変換ブロックの変換係数の符号化データを含むビットストリームを中に保存した非一時的コンピュータ読み取り可能な記憶媒体が更に提供される。ビットストリームは、上にまとめたような、変換係数の符号予測のための映像復号方法により復号可能である。
【0007】
本開示の実装によれば、変換係数の符号予測のための映像符号化方法も提供される。映像符号化方法は、エンコーダにより、映像からの映像フレームの変換ブロックの変換係数を生成することを含んでよい。本方法は、エンコーダにより、変換ブロックにおいて複数の領域を決定することであって、複数の領域は、符号予測を実施する符号予測エリアと、少なくとも1つの他の領域とを含むことを更に含んでよい。本方法は、また、エンコーダにより、変換ブロックの符号予測エリアと関連する一連の候補変換係数に対する符号を予測することと、エンコーダにより、ビットストリームを生成し、領域ベースの順序に従って、変換ブロックの複数の領域と関連する変換係数の符号を信号送達することとを含んでよい。
【0008】
本開示の実装によれば、映像符号化装置も提供される。映像復号装置は、上にまとめたような変換係数の符号予測のための映像符号化方法を実施するように構成されたメモリを備えてよい。
【0009】
本開示の実装によれば、プロセッサにより実行されたとき、プロセッサに、上にまとめたような変換係数の符号予測のための映像符号化方法を実施させる指示を中に保存した非一時的コンピュータ読み取り可能な記憶媒体も提供される。本開示の実装は、上にまとめたような、変換係数の符号予測のための映像符号化方法により生成されたビットストリームを中に保存した非一時的コンピュータ読み取り可能な記憶媒体が更に提供される。
【0010】
先の概要および以下の詳細な説明は共に、単なる例であって、本開示を制限するものではないことを理解されたい。
【0011】
本明細書に組み込まれ、本明細書の一部を成す添付の図面は、明細書と共に、本開示と一致する例を示し、本開示の原則を説明するのに役立つ。
【図面の簡単な説明】
【0012】
【
図1】本開示のいくつかの実装に係る、映像ブロックを符号化および復号するシステム例を示すブロック図である。
【
図2】本開示のいくつかの実装に係る、映像エンコーダ例を示すブロック図である。
【
図3】本開示のいくつかの実装に係る、映像デコーダ例を示すブロック図である。
【
図4A】本開示のいくつかの実装に係る、フレームが、どのように異なるサイズおよび形状の複数の映像ブロックに再帰的に分割されるかを示すグラフィカル表現である。
【
図4B】本開示のいくつかの実装に係る、フレームが、どのように異なるサイズおよび形状の複数の映像ブロックに再帰的に分割されるかを示すグラフィカル表現である。
【
図4C】本開示のいくつかの実装に係る、フレームが、どのように異なるサイズおよび形状の複数の映像ブロックに再帰的に分割されるかを示すグラフィカル表現である。
【
図4D】本開示のいくつかの実装に係る、フレームが、どのように異なるサイズおよび形状の複数の映像ブロックに再帰的に分割されるかを示すグラフィカル表現である。
【
図4E】本開示のいくつかの実装に係る、フレームが、どのように異なるサイズおよび形状の複数の映像ブロックに再帰的に分割されるかを示すグラフィカル表現である。
【
図5】いくつかの例に従った、係数グループにおける変換係数の左上へのスキャン順序を示すグラフィカル表現である。
【
図6】いくつかの例に従った、低周波数非分離変換(low-frequency non-separable transform(LFNST))プロセスを示すグラフィカル表現である。
【
図7】いくつかの例に従った、順方向LFNSTに入力される一次変換係数の左上の領域を示すグラフィカル表現である。
【
図8】いくつかの例に従った、イントラテンプレートマッチングのサーチエリアを示すグラフィカル表現である。
【
図9】いくつかの例に従った、符号予測のプロセス例を示すグラフィカル表現である。
【
図10】いくつかの例に従った、符号予測のためのコスト関数の計算を示すグラフィカル表現である。
【
図11】いくつかの例に従った、依存スカラー量子化において使用されるスカラー量子化器の2つの例を示すグラフィカル表現である。
【
図12A】いくつかの例に従った、依存スカラー量子化において使用される4つの状態を有する状態機械を使用した状態遷移を示すグラフィカル表現である。
【
図12B】いくつかの例に従った、
図12Aの状態遷移に係る、量子化器の選択例を示す表である。
【
図13】本開示のいくつかの実装に係る、ブロックベースの映像コーディングにおける符号予測プロセス例を示すブロック図である。
【
図14】本開示のいくつかの実装に係る、テンプレートの線形結合に基づいた仮説生成例を示すグラフィカル表現である。
【
図15A】いくつかの例に従った、既存の符号予測スキームの実装例を示すグラフィカル表現である。
【
図15B】本開示のいくつかの実装に係る、ベクトルベースの符号予測スキームの実装例を示すグラフィカル表現である。
【
図16A】本開示のいくつかの実装に係る、左斜めの方向に沿った左斜めのコスト関数の計算例を示すグラフィカル表現である。
【
図16B】本開示のいくつかの実装に係る、右斜めの方向に沿った右斜めのコスト関数の計算例を示すグラフィカル表現である。
【
図17】本開示のいくつかの実装に係る、現ブロックの隣接する再構成サンプル内の支配的な勾配方向をキャプチャする方法のフローチャートである。
【
図18A】本開示のいくつかの実装に係る、コスト関数に対するサンプル外挿方向の勾配ベースの選択における、テンプレートのサンプルおよび勾配フィルタウィンドウの例を示すグラフィカル表現である。
【
図18B】本開示のいくつかの実装に係る、コスト関数に対するサンプル外挿方向の勾配ベースの選択における勾配のヒストグラム(histogram of gradient(HoG))例を示すグラフィカル表現である。
【
図19】いくつかの例に従った、変換係数の符号を予測する符号予測エリアを示すグラフィカル表現である。
【
図20】いくつかの例に従った、エンコーダからデコーダに変換係数の符号を信号伝達する順序例を実装する変換ブロックの区分けを示すグラフィカル表現である。
【
図21】いくつかの例に従った、変換係数の符号をスキャンするさまざまなスキャン順序を示すグラフィカル表現である。
【
図22】いくつかの例に従った、
図20に従って区分けされた変換ブロックに対するさまざまなスキャン順序の実装を示すグラフィカル表現である。
【
図23】いくつかの例に従った、エンコーダからデコーダに変換係数の符号を信号伝達する順序の別の例を実装する変換ブロックの区分けを示すグラフィカル表現である。
【
図24】いくつかの例に従った、
図20に従って区分けされた変換ブロックに対するさまざまなスキャン順序の実装を示すグラフィカル表現である。
【
図25A】本開示のいくつかの実装に係る、変換係数符号予測のためのコンテキストモデリング例を示すグラフィカル表現である。
【
図25B】本開示のいくつかの実装に係る、変換係数符号予測のためのコンテキストモデリングの別の例を示すグラフィカル表現である。
【
図26】本開示のいくつかの実装に係る、ブロックベースの映像コーディングにおける符号予測のための方法例のフローチャートである。
【
図27】本開示のいくつかの実装に係る、映像エンコーダにより実施される変換係数符号予測のための映像符号化方法例のフローチャートである。
【
図28】本開示のいくつかの実装に係る、映像デコーダにより実施される変換係数符号予測のための映像復号方法例のフローチャートである。
【
図29】本開示のいくつかの実装に係る、ユーザーインターフェースと接続した計算環境を示すブロック図である。
【発明を実施するための形態】
【0013】
添付の図面に示される例である特定の実装について、以下で詳細に説明する。以下の詳細な説明において、本明細書に提示される対象の理解を助けるために、多数の非限定的な具体的詳細が述べられる。しかしながら、特許請求の範囲から逸脱することなく、さまざまな代替となるものが使用され、これらの具体的詳細なしに本対象が実践されてもよいことは、当業者には明らかであろう。例えば、本明細書に提示された対象が、デジタル映像機能を有する多様な電子デバイスで実装されうることは、当業者には明らかであろう。
【0014】
本開示の明細書、特許請求の範囲、および添付の図面で使用される「第1の」、「第2の」などの用語は、オブジェクトを区別するために使用されるのであって、特定の順序またはシーケンスを説明するために使用されるのではないことは、説明されるべきである。本明細書に記載される本開示の実施形態が、順序正しく、そして添付の図面に示される順序、または本開示で説明される順序で実装されるように、本方法で使用されるデータが、適切な条件の下で置き換えられてよいことが理解されよう。
【0015】
図1は、本開示のいくつかの実装に係る、並行して映像ブロックを符号化し、復号する例示のシステム10を示すブロック図である。
図1に示すように、システム10は、後に宛先デバイス14により復号される映像データを生成し、符号化するソースデバイス12を備える。ソースデバイス12および宛先デバイス14は、デスクトップまたはラップトップコンピュータ、タブレット型コンピュータ、スマートフォン、セットトップボックス、デジタルテレビ、カメラ、表示装置、デジタルメディアプレーヤー、ビデオゲーム機、ビデオストリーミングデバイスなどを含む、多種多様な電子デバイスの何れかを含んでよい。いくつかの実装においては、ソースデバイス12および宛先デバイス14は、無線通信能力を備える。
【0016】
いくつかの実装においては、宛先デバイス14は、リンク16を介して、復号される符号化映像データを受信してよい。リンク16は、ソースデバイス12から宛先デバイス14に符号化映像データを転送できる任意のタイプの通信媒体またはデバイスを含んでよい。1例においては、リンク16は、通信媒体を含み、ソースデバイス12が宛先デバイス14にリアルタイムで符号化映像データを直接送信できるようにしてよい。符号化映像データは、無線通信プロトコルなどの通信規格に従って変調され、宛先デバイス14に送信されてよい。通信媒体は、無線周波数(Radio Frequency(RF))スペクトルまたは1つもしくは複数の物理的な伝送回線など、任意の無線または有線通信媒体を含んでよい。通信媒体は、ローカルエリアネットワーク、広域ネットワーク、またはインターネットなどのグローバルネットワークなど、パケットベースのネットワークの一部を形成してよい。通信媒体は、ソースデバイス12から宛先デバイス14への通信を促進するのに役立ちうる、ルータ、スイッチ、基地局、または任意の他の機器を含んでよい。
【0017】
いくつかの他の実装においては、符号化映像データは、出力インターフェース22から記憶装置32に送信されてよい。続いて、記憶装置32内の符号化映像データは、入力インターフェース28を介して宛先デバイス14によりアクセスされてよい。記憶装置32は、ハードドライブ、ブルーレイディスク、デジタル多用途ディスク(Digital Versatile Disk(DVD))、コンパクトディスク読み取り専用メモリ(Compact Disc Read-Only Memory(CD-ROM))、フラッシュメモリ、揮発性もしくは非揮発性メモリ、または符号化映像データを保管するための任意の他の適切なデジタル記憶媒体など、さまざまな分散型またはローカルアクセスのデータ記憶媒体の何れかを含んでよい。更なる例においては、記憶装置32は、ソースデバイス12により生成された符号化映像データを保存できるファイルサーバまたは別の中間記憶装置に対応してよい。宛先デバイス14は、ストリーミングまたはダウンロードにより、記憶装置32から保存された映像データにアクセスしてよい。ファイルサーバは、符号化映像データを保管し、宛先デバイス14に符号化映像データを送信できる任意のタイプのコンピュータであってよい。ファイルサーバとしては、例えば、(例えば、ウェブサイトに対する)ウェブサーバ、ファイル転送プロトコル(File Transfer Protocol(FTP))サーバ、ネットワーク接続ストレージ(Network Attached Storage(NAS))デバイス、またはローカルディスクドライブが挙げられる。宛先デバイス14は、ファイルサーバに保存された符号化映像データにアクセスするのに適した、無線チャネル(例えば、ワイヤレスフィディリティー(Wireless Fidelity(Wi-Fi))接続)、有線接続(例えば、デジタル加入者回線(Digital Subscriber Line(DSL))、ケーブルモデムなど)、または任意のそれらの組み合わせを含む、任意の標準データ接続を通じて、符号化映像データにアクセスしてよい。記憶装置32からの符号化映像データの送信は、ストリーミング伝送、ダウンロード伝送、または両者の組み合わせであってよい。
【0018】
図1に示すように、ソースデバイス12は、映像ソース18と、映像エンコーダ20と、出力インターフェース22とを備える。映像ソース18は、映像キャプチャ装置、例えば、ビデオカメラ、あらかじめキャプチャされた映像を含む映像アーカイブ、映像コンテンツプロバイダーから映像データを受け取る映像供給インターフェース、および/もしくはソース映像などのコンピュータグラフィックスデータを生成するコンピュータグラフィックスシステムなどのソース、またはそのようなソースの組み合わせを含んでよい。1例として、映像ソース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は、ユーザのために復号された映像データを表示するものであって、液晶ディスプレー(Liquid Crystal Display(LCD))、プラズマディスプレー、有機発光ダイオード(Organic Light Emitting Diode(OLED))ディスプレー、または別のタイプの表示装置など、さまざまな表示装置の何れかを含んでよい。
【0022】
映像エンコーダ20および映像デコーダ30は、VVC、HEVC、MPEG-4、Part 10、AVC、またはそのような規格の拡張機能など、プロプライエタリな規格又は工業規格に従って作動してよい。本開示が特定の映像符号化/復号規格に限定されず、他の映像符号化/復号規格に適用可能であってよいことが理解されよう。通常、ソースデバイス12の映像エンコーダ20は、これらの現在または将来の規格の何れかに従って映像データを符号化するように構成されると考えられる。同様に、通常、宛先デバイス14の映像デコーダ30は、これらの現在または将来の規格の何れかに従って映像データを復号するように構成されるとも考えられる。
【0023】
映像エンコーダ20および映像デコーダ30は、それぞれ、1つまたは複数のマイクロプロセッサ、デジタルシグナルプロセッサ(Digital Signal Processor(DSP))、特定用途向け集積回路(Application Specific Integrated Circuit(ASIC))、フィールドプログラマブルゲートアレイ(Field Programmable Gate Array(FPGA))、個別論理、ソフトウェア、ハードウェア、ファームウェア、またはそれらの任意の組み合わせなど、さまざまな適切なエンコーダおよび/またはデコーダ回路の何れかとして実装されてよい。ソフトウェアにおいて部分的に実装されたとき、電子デバイスは、適切な、非一時的なコンピュータ読み取り可能な媒体にソフトウェアに対する指示を保存し、1つまたは複数のプロセッサを使用してハードウェアにおいて指示を実行し、本開示で示された映像符号化/復号操作を実施してよい。映像エンコーダ20および映像デコーダ30の各々は、1つまたは複数のエンコーダまたはデコーダに含まれてよく、そのどちらも、それぞれのデバイスにおける複合エンコーダ/デコーダ(combined encoder/decoder(CODEC))の一部として統合されてよい。
【0024】
図2は、本願に記載のいくつかの実装に係る、例示の映像エンコーダ20を示すブロック図である。映像エンコーダ20は、映像フレーム内の映像ブロックのイントラおよびインター予測コーディングを実施してよい。イントラ予測コーディングは、空間的予測に依存し、所与の映像フレームまたはピクチャ内の映像データの空間的冗長性を低減または除去する。インター予測コーディングは、時間予測に依存し、映像シーケンスの隣接した映像フレームまたはピクチャ内の映像データの時間冗長性を低減または除去する。なお、「フレーム」という用語は、映像コーディングの分野において「画像」または「ピクチャ」という用語の同義語として使用できることに注意されたい。
【0025】
図2に示すように、映像エンコーダ20は、映像データメモリ40と、予測処理ユニット41と、復号ピクチャバッファ(Decoded Picture Buffer(DPB))64と、アナログ加算器50と、変換処理ユニット52と、量子化ユニット54と、エントロピー符号化ユニット56とを備える。予測処理ユニット41は、動き推定ユニット42と、動き補正ユニット44と、分割ユニット45と、イントラ予測処理ユニット46と、イントラブロックコピー(Block Copy(BC))ユニット48とを更に備える。いくつかの実装においては、映像エンコーダ20は、映像ブロック再構成のために、逆量子化ユニット58と、逆変換処理ユニット60と、アナログ加算器62とも備える。デブロッキングフィルタなどのインループフィルタ63は、アナログ加算器62とDPB64との間に位置し、ブロック境界をフィルタリングし、再構成された映像データからブロックアーチファクトを除去してよい。SAOフィルタおよび/または適応インループフィルタ(Adaptive in-Loop Filter(ALF))などの別のインループフィルタが、デブロッキングフィルタに加えて使用され、アナログ加算器62の出力をフィルタリングしてもよい。いくつかの例においては、インループフィルタは省略されてもよく、復号映像ブロックが、アナログ加算器62によりDPB64に直接提供されてもよい。映像エンコーダ20は、書き換え不能な又は書き換え可能なハードウェアユニットの形式を取ってもよいし、示された書き換え不能な又は書き換え可能なハードウェアユニットの1つまたは複数の間で分けられてもよい。
【0026】
映像データメモリ40は、映像エンコーダ20のコンポーネントにより符号化される映像データを保存してよい。映像データメモリ40内の映像データは、例えば、
図1に示すような映像ソース18から取得されてよい。DPB64は、(例えば、イントラまたはインター予測コーディングモードにおいて)映像エンコーダ20により映像データを符号化する際に使用される参照映像データ(例えば、参照フレームまたはピクチャ)を保存するバッファである。映像データメモリ40およびDPB64は、さまざまなメモリデバイスの何れかにより形成されてよい。さまざまな例において、映像データメモリ40は、映像エンコーダ20の他のコンポーネントとオンチップであってもよいし、それらのコンポーネントに対してオフチップであってもよい。
【0027】
図2に示すように、映像データを受け取った後、予測処理ユニット41内の分割ユニット45は、映像データを映像ブロックに分割する。この分割には、映像フレームを、映像データと関連する4分木(Quad-Tree(QT))構造などの事前に定義されたスプリット構造に従って、スライス、タイル(例えば、映像ブロックのセット)、または他のより大きなコーディングユニット(Coding Unit(CU))に分割することを含んでもよい。映像フレームは、サンプル値を有するサンプルの2次元配列または行列と見なされる、または見なされてよい。配列内のサンプルは、ピクセルまたはペルと呼ばれてもよい。配列またはピクチャの水平および垂直方向(または軸)における多数のサンプルにより、映像フレームのサイズおよび/または解像度を定義される。映像フレームは、例えば、QTパーティショニングを使用して、複数の映像ブロックに区分けされてよい。さらに、映像ブロックは、映像フレームよりも寸法が小さいものの、サンプル値を有するサンプルの2次元配列または行列と見なされる、または見なされてよい。映像ブロックの水平および垂直方向(または軸)における多数のサンプルにより、映像ブロックのサイズが定義される。映像ブロックは、例えば、QTパーティショニング、2分木(Binary-Tree(BT))パーティショニング、3分木(Triple-Tree(TT))パーティショニング、またはそれらの任意の組み合わせを繰り返し使用して、(さらにブロックを形成しうる)1つまたは複数のブロック区画またはサブブロックに更に分割されてよい。なお、本明細書で使用される「ブロック」または「映像ブロック」という用語は、フレームまたはピクチャの一部分、特に、長方形(正方形または非正方形)の部分であってよいことに注意すべきである。例えば、HEVCおよびVVCを参照すると、ブロックまたは映像ブロックは、コーディングツリーユニット(Coding Tree Unit(CTU))、CU、予測ユニット(Prediction Unit(PU))、もしくは変換ユニット(Transform Unit(TU))であってもよいし、これらに対応してもよい、かつ/または、対応するブロック、例えば、コーディングツリーブロック(Coding Tree Block(CTB))、コーディングブロック(Coding Block(CB))、予測ブロック(Prediction Block(PB))、もしくは変換ブロック(Transform Block(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は、インター予測のための動き推定ユニット42による動きベクトルの決定と類似の方法で、イントラBCコーディングのためのベクトル、例えば、ブロックベクトルを決定してもよいし、動き推定ユニット42を利用し、ブロックベクトルを決定してもよい。
【0031】
映像ブロックに対する予測ブロックは、差分絶対値和(Sum of Absolute Difference(SAD))、2乗差分和(Sum of Square Difference(SSD))、または他の差分メトリクスにより決定されうるピクセル差の観点で、コード化される映像ブロックと厳密に一致すると見なされる参照フレームのブロックまたは参照ブロックであってもよいし、それらに対応してもよい。いくつかの実装においては、映像エンコーダ20は、DPB64に保存された参照フレームのサブ整数ピクセル位置に対する値を計算してよい。例えば、映像エンコーダ20は、参照フレームの4分の1ピクセル位置、8分の1ピクセル位置、または他の分数ピクセル位置の値を補間してよい。そのため、動き推定ユニット42は、フルピクセル位置および分数ピクセル位置に対する動きサーチを実施し、分数ピクセル精度を有する動きベクトルを出力してよい。
【0032】
動き推定ユニット42は、映像ブロックの位置を、第1の参照フレームリスト(リスト0)または第2の参照フレームリスト(リスト1)から選択された参照フレームの予測ブロックの位置と比較することにより、インター予測コード化フレーム内の映像ブロックに対する動きベクトルを計算する。第1の参照フレームリスト(リスト0)および第2の参照フレームリスト(リスト1)の各々は、DPB64に保存された1つまたは複数の参照フレームを識別する。動き推定ユニット42は、計算された動きベクトルを、動き補正ユニット44に、それからエントロピー符号化ユニット56に送信する。
【0033】
動き補正ユニット44により実施される動き補正は、動き推定ユニット42により決定された動きベクトルに基づいて、予測ブロックをフェッチまたは生成することを伴ってよい。現映像ブロックに対する動きベクトルを受け取ると、動き補正ユニット44は、参照フレームリストの1つに動きベクトルが指し示す予測ブロックを位置付け、DPB64からの予測ブロックを検索し、アナログ加算器50に予測ブロックを転送してよい。アナログ加算器50は、続いて、コード化されている現映像ブロックのピクセル値から、動き補正ユニット44により提供された予測ブロックのピクセル値を引くことにより、ピクセル差分値の残差ブロックを形成する。残差ブロックを形成しているピクセル差分値は、ルーマもしくはクロマ差分コンポーネントまたはその両方を含んでよい。動き補正ユニット44は、映像フレームの映像ブロックを復号する際に映像デコーダ30が使用する映像フレームの映像ブロックと関連する構文要素を生成してもよい。構文要素は、例えば、予測ブロックを識別するのに使用される動きベクトルを定義する構文要素、予測モードを示す任意のフラグ、または本明細書に記載の任意の他の構文情報を含んでよい。
図2では概念的目的のため別々に示されている動き推定ユニット42および動き補正ユニット44は、1つに統合されてもよいことに留意する。
【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は、離散コサイン変換(Discrete Cosine Transform(DCT))または概念的に類似の変換などの変換を使用して、残差映像データを変換係数に変換する。
【0039】
変換処理ユニット52は、得られた変換係数を量子化ユニット54に送信してよい。量子化ユニット54は、変換係数を量子化し、ビットレートを更に低減させる。量子化プロセスは、係数のいくつかまたは全てと関連するビット深度も低減させてよい。量子化の程度は、量子化パラメータを調整することにより修正されてよい。いくつかの例においては、量子化ユニット54は、続いて、量子化変換係数を含む行列のスキャンを実施してよい。代替的に、エントロピー符号化ユニット56が、スキャンを実施してもよい。
【0040】
量子化に続いて、エントロピー符号化ユニット56は、エントロピー符号化技術を使用して、例えば、コンテキスト適応型可変長コーディング(Context Adaptive Variable Length Coding(CAVLC))、コンテキスト適応型バイナリ算術コーディング(Context Adaptive Binary Arithmetic Coding(CABAC))、シンタックスベースコンテキスト適応型バイナリ算術コーディング(Syntax-based context-adaptive Binary Arithmetic Coding(SBAC))、確率間隔分割エントロピー(Probability Interval Partitioning Entropy(PIPE))コーディング、または別のエントロピー符号化方法論もしくは技術を使用して、量子化変換係数を映像ビットストリームに符号化してよい。符号化されたビットストリームは、続いて、
図1に示すような映像デコーダ30に送信されてもよいし、後の映像デコーダ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は、符号化された映像ビットストリームからの符号化映像データを保存するコード化ピクチャバッファ(Coded Picture Buffer(CPB))を含んでよい。映像デコーダ30のDPB92は、(例えば、イントラまたはインター予測コーディングモードで)映像デコーダ30により映像データを復号する際に使用するための参照映像データを保存する。映像データメモリ79およびDPB92は、同期型ダイナミックランダムアクセスメモリ(Synchronous dynamic random access memory(SDRAM))を含むDRAM、磁気抵抗RAM(Magneto-resistive RAM(MRAM))、抵抗RAM(Resistive RAM(RRAM))、または他のタイプのメモリデバイスなど、さまざまなメモリデバイスの何れかにより形成されてよい。例示を目的として、映像データメモリ79およびDPB92は、
図3において、映像デコーダ30の2つの違ったコンポーネントとして描かれている。しかし、映像データメモリ79およびDPB92が、同じメモリデバイスまたは別々のメモリデバイスにより提供されうることは、当業者には明らかであろう。いくつかの例においては、映像データメモリ79は、映像デコーダ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は、ビットストリームで提供され、映像フレーム内の映像ブロックごとに映像エンコーダ20により計算された同じ量子化パラメータを使用してエントロピー復号ユニット80により復号された、量子化変換係数を逆量子化し、量子化の程度を決定する。逆変換処理ユニット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は、ルーマサンプルの2次元配列である。SCbは、Cbクロマサンプルの2次元配列である。SCrは、Crクロマサンプルの2次元配列である。他の例においては、フレームはモノクロであり、そのため、ルーマサンプルの1つの2次元配列のみを含む。
【0056】
図4Aに示すように、映像エンコーダ20(または、より具体的には分割ユニット45)は、初めに、フレームを一連のCTUに分割することにより、フレームの符号化表現を生成する。映像フレームは、ラスタスキャン順序で、左から右に、かつ上から下に連続して配置された整数個のCTUを含んでよい。各CTUは、最大の論理コーディングユニットであり、CTUの幅および高さは、シーケンスパラメータセット(sequence parameter set)で映像エンコーダ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のコーディングツリーブロックにおいて、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および440は、それぞれ、ブロックサイズが8×8の4つのCUに更に区分けされる。
図4Dは、
図4Cに示すようなCTU400の分割プロセスの最終結果を示す4分木データ構造を示し、4分木の各葉節点は、32×32から8×8の範囲のそれぞれのサイズの1つのCUに対応する。
図4Bに示すCTUのように、各CUは、同じサイズのフレームのルーマサンプルの1つのCBおよびクロマサンプルの2つの対応するコーディングブロック、ならびにコーディングブロックのサンプルをコード化するのに使用される構文要素を含んでよい。モノクロのピクチャまたは3つの別々のカラープレーンを有するピクチャにおいて、CUは、単一のコーディングブロックと、コーディングブロックのサンプルをコード化するのに使用される構文構造とを含んでよい。なお、
図4Cおよび
図4Dに示す4分木パーティショニングは、例示を目的とするのみであり、1つのCTUは、複数のCUに分けられ、4/3/2分木分割に基づいて、さまざまな局所特性に適合できることに注意すべきである。マルチタイプツリー構造において、1つのCTUは、4分木構造により分割され、各4分木の葉であるCUは、2および3分木構造により更に分割されうる。
図4Eに示すように、幅Wおよび高さHを有するコーディングブロックには、可能性がある分割タイプが複数ある、すなわち、4分割(quaternary partitioning)、垂直2分割(vertical binary partitioning)、水平2分割(horizontal binary partitioning)、垂直3分割(vertical ternary partitioning)、垂直拡張3分割(vertical extended ternary partitioning)、水平3分割(horizontal ternary partitioning)、および水平拡張3分割(horizontal extended ternary partitioning)である。
【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に対するルーマ残差ブロックを生成してよい。同様に、映像エンコーダ20は、CUのCb残差ブロックにおける各サンプルが、CUの予測Cbブロックの1つにおけるCbサンプルと、CUの元のCbコーディングブロックにおける対応するサンプルとの間の差を示し、CUのCr残差ブロックにおける各サンプルが、CUの予測Crブロックの1つにおけるCrサンプルと、CUの元のCrコーディングブロックにおける対応するサンプルとの間の差を示すように、それぞれ、CUに対するCb残差ブロックおよびCr残差ブロックを生成してよい。
【0061】
さらに、
図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は、単一の変換ブロックと、変換ブロックのサンプルを変換するのに使用される構文構造とを含んでよい。
【0062】
映像エンコーダ20は、1つまたは複数の変換をTUのルーマ変換ブロックに適用し、TUに対するルーマ係数ブロックを生成してよい。係数ブロックは、変換係数の2次元配列であってよい。変換係数は、スカラー量であってよい。映像エンコーダ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つのモード、すなわち、イントラフレーム予測(またはイントラ予測)およびインターフレーム予測(またはインター予測)を使用して、映像を圧縮する。イントラブロックコピー(intra block copy(IBC))は、イントラフレーム予測または第3のモードの何れかと見なされる可能性があることには注意すること。2つのモード間で、インターフレーム予測は、参照映像ブロックから現映像ブロックを予測するのに動きベクトルを使用しているため、イントラフレーム予測よりコーディング効率がよい。
【0066】
しかし、映像データキャプチャ技術が日々進歩し、映像データの詳細を保持するための映像ブロックサイズも精緻化しているため、現フレームに対する動きベクトルを表すのに必要なデータ量も大幅に増加している。この難問を乗り越える1つの方法は、空間的および時間的ドメインの両方において隣接するCUのグループが予測目的に類似の映像データを有するだけでなく、これらの隣接するCU間の動きベクトルも類似しているという事実から利益を得ることである。そのため、現CUの「動きベクトル予測子(Motion Vector Predictor(MVP))」とも呼ばれる、空間的および時間的相関関係を調査することにより、現CUの動き情報(例えば、動きベクトル)の近似値として、空間的に隣接するCUおよび/または時間的に同位置のCUの動き情報を使用することができる。
【0067】
現CUの実際の動きベクトルを映像ビットストリーム(例えば、
図2に関連して上述したような動き推定ユニット42により決定されている実際の動きベクトル)に符号化する代わりに、現CUの動きベクトル予測子を、現CUの実際の動きベクトルから差し引くことにより、現CUに対する動きベクトル差(Motion Vector Difference(MVD))が作成される。そうすることにより、フレームのCUごとに動き推定ユニット42により決定される動きベクトルを映像ビットストリームに符号化する必要がなくなり、映像ビットストリーム内の動き情報を表すのに使用されるデータ量を大幅に削減できる。
【0068】
コードブロックのインターフレーム予測中に参照フレームにおいて予測ブロックを選択するプロセスと同様に、現CUの空間的に隣接するCUおよび/または時間的に同位置のCUと関連する候補となる可能性がある動きベクトルを使用して、現CUに対する動きベクトル候補リスト(「マージリスト」としても知られる)を構成し、続いて、現CUに対する動きベクトル予測子として動きベクトル候補リストから1つのメンバーを選択するために、映像エンコーダ20および映像デコーダ30の両方が、一連の規則を採用することができる。そうすることにより、映像エンコーダ20から映像デコーダ30に動きベクトル候補リスト自体を送信する必要がなくなり、映像エンコーダ20および映像デコーダ30が、現CUを符号化および復号するための動きベクトル候補リスト内の同じ動きベクトル予測子を使用するのには、動きベクトル候補リスト内の選択された動きベクトル予測子のインデックスがあれば十分となる。よって、映像エンコーダ20から映像デコーダ30に送信する必要があるのは、選択された動きベクトル予測子のインデックスのみとなる。
【0069】
本明細書において、ブロックベースの映像コーディングプロセスにおける(例えば、強化圧縮モデル(Enhanced Compression Model(ECM))における)変換係数コーディングに関して、簡潔に説明する。具体的には、各変換ブロックは、初めに、複数の係数グループ(coefficient group(CG))に区分けされ、各係数グループは、ルーマコンポーネントに対する4×4のサブブロックおよびクロマコンポーネントに対する2×2のサブブロックの変換係数を含む。変換ブロックにおける変換係数のコーディングは、係数グループ単位で実施される。例えば、変換ブロックの内側の係数グループは、第1の所定のスキャン順序に基づいて、スキャンされ、コード化される。各係数グループをコード化するとき、係数グループの変換係数は、各サブブロック内の第2の所定のスキャン順序に基づいてスキャンされる。ECMにおいては、同じ左上へのスキャン順序が適用され、変換ブロックの内側の係数グループ、および各係数グループにおける異なる変換係数がスキャンされる(例えば、第1および第2の所定のスキャン順序は共に、左上へのスキャン順序である)。
図5は、いくつかの例に従った、係数グループにおける変換係数の左上へのスキャン順序を示すグラフィカル表現である。
図5の数字0~15は、係数グループにおける各変換係数の対応するスキャン順序を示す。
【0070】
ECMにおける変換係数コーディングスキームによれば、初めに、変換ブロックごとにフラグが信号伝達され、変換ブロックが任意の非ゼロ変換係数を含むかどうかが示される。変換ブロックに少なくとも1つの非ゼロ変換係数が存在する場合、左上へのスキャン順序に従ってスキャンされた最後の非ゼロ変換係数の位置が、映像エンコーダ20から映像デコーダ30に明示的に信号伝達される。信号伝達されている最後の非ゼロ変換係数の位置により、最後の係数グループ(すなわち、最後の非ゼロ係数を含む係数グループ)の前にコード化される係数グループ全てに対して、フラグが更に信号伝達される。それに応じて、フラグは、それぞれの係数グループが非ゼロ変換係数を含むか否かを示す。係数グループのフラグがゼロに等しい(係数グループにおける変換係数が全てゼロであることを示す)場合、その係数グループに関してこれ以上情報を送信する必要はない。そうでなければ(例えば、係数グループのフラグが1に等しい場合)、係数グループにおける各変換係数の絶対値および符号が、スキャン順序に従ってビットストリームで信号伝達される。しかしながら、既存の設計においては、変換係数の符号はバイパスコード化されており(例えば、コンテキストモデルが適用されない)、現設計における非効率的な変換コーディングにつながっている。本開示と一致して、変換係数の符号予測を伴う改善されたLFNSTプロセスについて以下でより詳細に記載し、変換コーディング効率を向上させる。
【0071】
図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の入力係数がある。
【0072】
順方向LFNST604においては、コーディングブロックのサイズに基づいて、さまざまな変換サイズを有する非分離変換が適用されるが、これは、行列の乗算プロセスを使用して示すことができる。例えば、順方向LFNST604が4×4のブロックに適用されると仮定する。4×4のブロックにおけるサンプルは、以下の式(1)に示すような行列Xを使用して表すことができる。
【数1】
【0073】
【0074】
上記の式(1)または(2)において、Xは、順方向一次変換603を通じて取得された係数行列を示し、X
ijは、行列Xにおける一次変換係数を示す。続いて、式(3)に従って、以下の通り、順方向LFNST604が適用される。
【数3】
【0075】
【0076】
いくつかの実装においては、LFNSTプロセスにおいて、縮小非分離変換カーネル(reduced non-separable transform kernel)が適用されうる。例えば、上記の式(3)に基づくと、順方向LFNST604は、計算操作および変換係数を保存するメモリソースの観点では高くつく、直接行列乗算に基づいている。そのため、LFNST設計において、縮小非分離変換カーネルを使用し、N次元のベクトルを異なる空間におけるR次元のベクトルにマップすることにより(ここで、R<N)、LFNSTプロセスの実装コストを削減することができる。例えば、変換カーネルに対してN×Nの行列を使用する代わりに、式(4)に示すように、順方向LFNST604における変換カーネルとして、R×Nの行列を使用する。
【数4】
【0077】
上記の式(4)において、TR×NにおけるRベースのベクトルは、元のN次元の変換カーネル(すなわち、N×N)の第1のRベースを選択することにより生成される。追加的に、TR×Nが直交であると仮定すると、逆方向LFNST608に対する逆変換行列は、順方向変換行列TR×Nの転置行列である。
【0078】
8×8のLFNSTについて、係数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のサブブロックの外側の変換係数が全てゼロである場合のみ適用可能であるように制限されており、これは、LFNSTで適用されたとき、全ての一次のみの変換係数がゼロである必要があることを示す。さらに、(ピクセルごとの乗算の観点で)最悪の場合の複雑性を制御するため、4×4および8×8のコーディングブロックに対するLFNST行列は、それぞれ、8×16および8×48の変換とすることを強いられる。4×MおよびM×4のコーディングブロック(M>4)の場合、LFNSTの非分離変換行列は、16×16である。
【0079】
LFNST変換の信号伝達において、合計で4つの変換セットがあり、LFNST設計においては、変換セットごとに2つの非分離変換カーネルが使用可能である。変換セットは、イントラブロックのイントラ予測モードに従って、4つの変換セットから選択される。イントラ予測モードから変換セットへのマッピングは、以下の表1に示すように予め決められている。現ブロック(81≦predModeIntra≦83)に対して3つのクロスコンポーネント線形モデル(Cross-Component Linear Model(CCLM))モード(例えば、INTRA_LT_CCLM、INTRA_T_CCLM、またはINTRA_L_CCLM)の1つが使用される場合、現クロマブロックに対しては、変換セット「0」が選択される。変換セットごとに、ビットストリームでLFNSTインデックスを信号伝達することにより、選択された非分離二次変換候補が示される。
【表1】
【0080】
いくつかの例においては、LFNSTは、第1の16×16のサブブロックの外側の全ての変換係数がゼロである場合に、イントラブロックに適用されると制限されているため、LFNSTインデックスの信号伝達は、最後の有意な(すなわち、非ゼロ)変換係数の位置に依存している。例えば、4×4および8×8のコーディングブロックの場合、LFNSTインデックスは、最後の有意な変換係数の位置が8未満のときにのみ信号伝達される。他のコーディングブロックサイズの場合、LFNSTインデックスは、最後の有意な変換係数の位置が16未満のときにのみ信号伝達される。そうでなければ(すなわち、LFNSTインデックスが信号伝達されない場合)、LFNSTインデックスはゼロであると推定される、すなわち、LFNSTは機能しない。
【0081】
さらに、変換係数をキャッシュに格納するためのバッファのサイズを削減するため、現コーディングブロックの幅または高さの何れかが、シーケンスパラメータセット(SPS)で信号伝達されたときの最大変換サイズ(すなわち、64)より大きいとき、LFNSTは拒否される。一方、LFNSTは、一次変換がDCT2であるときのみ適用される。また、LFNSTは、イントラおよびインタースライスの両方において、かつルーマおよびクロマコンポーネントの両方に対して、イントラコーディングブロックに適用される。デュアルツリーまたはローカルツリーが使用可能な場合(ここで、ルーマおよびクロマコンポーネントの分割は、正しく位置合わせされていない)、LFNSTインデックスは、ルーマおよびクロマコンポーネントに対して別々に信号伝達される(すなわち、ルーマおよびクロマコンポーネントは、異なるLFNST変換を適用できる)。そうでなければ、シングルツリーが適用されたとき(ここで、ルーマおよびクロマコンポーネントの分割は、位置合わせされている)、LFSNTは、信号伝達されされている単一のLFNSTインデックスを有するルーマコンポーネントにのみ適用される。
【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×8のLFNSTは、4つの4×4のサブブロック全てにおける変換係数を入力として利用し、32の変換係数を出力する(すなわち、順方向LFNST604に対する32×64の行列、および逆方向LFNST608に対する64×32の行列)。これは、8×8のLFNSTが、左上の領域における3つの4×4のサブブロックにのみ適用され、16の変換係数のみを生成する(すなわち、順方向LFNST604に対する16×48の行列、および逆方向LFNST608に対する48×16の行列)VVCとは異なる。追加的に、LFNSTセットの総数は、VVCにおける4から、ECMにおける35に増加している。VVCと同様に、LFNSTセットの選択は現コーディングユニットのイントラ予測モードに依存し、各LFNSTセットは3つの異なる変換カーネルを含む。
【0084】
いくつかの例においては、HEVCで使用されたDCT2変換に加えて、インターおよびイントラコード化ブロックの両方の残差を変換するために、多重変換選択(multiple transform selection(MTS))スキームが適用される。MTSスキームは、DCT8およびDST7変換から、複数の選択された変換を使用する。
【0085】
例えば、シーケンスレベルにおいて、2つの制御フラグが特定されると、イントラおよびインターモードに対するMTSスキームが、別々に使用可能になる。シーケンスレベルでMTSスキームが使用可能となったとき、別のCUレベルフラグが更に信号伝達され、MTSスキームが適用されるか否かを示す。いくつかの実装においては、MTSスキームは、ルーマコンポーネントにのみ適用される。さらに、MTSスキームは、以下の条件が満たされたときのみ信号伝達される:(a)幅および高さの両方が32以下である、かつ(b)コード化ブロックフラグ(Coded Block Flag(CBF))が1に等しい。MTS CUフラグがゼロに等しい場合、DCT2が水平および垂直方向の両方で適用される。MTS CUフラグが1に等しい場合、2つの他のフラグが追加的に信号伝達され、水平および垂直方向に対する変換タイプを、それぞれ示す。MTS水平および垂直制御フラグと、適用された変換との間のマッピングは、以下の表2に示される。
【表2】
【0086】
変換行列の精度に関して、MTS変換係数は全て6ビット精度であり、これはDCT2コア変換と同じである。VVCがHEVCにおいて使用される変換サイズを全てサポートする仮定すると、HEVCにおいて使用される変換コアは全て、VVCと同じに保たれ、4点、8点、16点、および32点のDCT-2変換ならびに4点のDST-7変換を含む。一方、64点のDCT-2、4点のDCT-8、8点、16点、32点のDST-7およびDCT-8を含む他の変換コアは、VVC変換設計において追加的にサポートされる。さらに、大きなサイズのDST-7およびDCT-8の複雑性を低減するため、16×16の低周波領域の外側に置かれている高周波変換係数は、幅または高さの何れかが32に等しいとき、DST-7およびDCT-8変換ブロックに対してゼロに設定される(ゼロ設定としても知られる)。
【0087】
VVCにおいては、DCT2に加えて、DST7およびDCT8変換カーネルのみが、イントラおよびインターコーディングに利用される。イントラコーディングの場合、通常、残差信号の統計的特性は、イントラ予測モードに依存する。追加的な一次変換は、残りの特性の多様性に対処するのに有益となりうる。
【0088】
DCT5、DST4、DST1、および恒等変換(identity transform(IDT))を含む追加的な一次変換が、ECMにおいて採用される。また、MTSセットは、TUサイズおよびイントラモード情報によって作成される。16の異なるTUサイズが考えられ、イントラ-モード情報によって、TUサイズごとに5つの異なるクラスが考えられる。クラスごとに、4つの異なる変換ペアが考えられる(VVCの場合と同じ)。合計で80の異なるクラスが考えられるが、それらの異なるクラスのいくつかは、同じ変換セットを共有することも多い。よって、結果として得られるルックアップテーブル(Lookup Table(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字型の因果関係のある隣接ブロックを、(a)現CTU(R1)、(b)左上のCTU(R2)、(c)上のCTU(R3)、および(d)左のCTU(R4)を含む、
図8に示すような所定のサーチエリアの別のブロックと一致させることにより生成される。イントラテンプレートマッチングは、幅および高さが64以下のサイズを有するCUで使用可能である。一方、イントラテンプレートマッチング予測モードは、CUレベルでフラグを信号伝達することにより示される。イントラテンプレートマッチングが4と16との間(4と16とを含める)の幅または高さを有するコーディングブロックに適用されたとき、対応する次元に適用される一次変換は、DST-VIIに設定される。そうでなければ(すなわち、幅または高さが、4より小さい、または16より大きい場合)、DCT-IIが、次元に適用される。
【0091】
図9は、いくつかの例に従った、符号予測のプロセス例を示すグラフィカル表現である。いくつかの実装においては、符号予測を実施し、変換ブロックにおける変換係数の符号を、それに隣接するブロックのサンプルから推定することができる。推定された符号の正確さは、コンテキストモデルに従ってコード化され、符号予測が正確かどうかを示すことができる。例えば、1つのコンテキストモデルにおいて、推定された各符号間の差分を符号化することができ、対応する「0」(又は「1」)を有する真の符号は、推定された符号が真の符号と同じである(又は同じでない)ことを示す。符号を高い割合で正確に推定できた(例えば、90%または95%の符号が正しく推定された)場合、推定された符号と本当の符号との間の差は、0となる傾向があり、VVCにおける変換係数に対するバイパスコード化された符号と比較して、CABACにより効率的にエントロピーコード化できている。本開示と一致すれば、他のコンテキストモデルを使用して、符号予測の正確さをエントロピーコード化し、コーディング効率を更に向上させることができる。これらの他のコンテキストモデル例は、以下でより詳細に説明される。
【0092】
概して、現ブロックとそれに隣接するブロックとの間の境界におけるサンプル間には高い相関関係があり、これを符号予測スキームにより利用して、現ブロックの変換係数の符号を予測することができる。
図9に示すように、現ブロックにM個の非ゼロ変換係数があると仮定する(Mの符号は、各々、+または-の何れかである)。このとき、符号の可能性がある組み合わせの総数は2
Mである。符号予測スキームは、符号の各組み合わせを使用して、対応する仮説(例えば、現ブロックの上および左の境界における再構成サンプル)を生成し、対応する仮説における再構成サンプルを、隣接するブロックから外挿されたサンプルと比較し、再構成サンプルと外挿されたサンプルとの間のサンプル差(例えば、SSDまたはSAD)を取得する。サンプル差を最小化する(符号の2
M個の可能性がある組み合わせの内の)符号の組み合わせは、現ブロックにおける予測符号として選択される。
【0093】
いくつかの実装においては、
図9に示すように、M個の符号の組み合わせごとに対応する仮説を生成するため、M個の対応する変換係数を逆量子化操作および逆変換により処理し、残差サンプルを取得することができる。残差サンプルを予測サンプルと共に追加し、再構成サンプルを取得することができ、これには、(L字型の灰色のエリア902に示す)現ブロックの上および左の境界における再構成サンプルが含まれる。
【0094】
いくつかの実装においては、符号の組み合わせの選択のために、現ブロックの境界におけるサンプルと、それに隣接するブロックとの間の空間不連続を測定するコスト関数が使用される。L2ノルム(SSD)を使用する代わりに、コスト関数は、以下に式(5)で示すようなL1ノルム(SAD)に基づくことができる。
【数5】
【0095】
上記式(5)において、B
i,n(ここで、i=-2,-1)は、上に隣接ブロックの、現ブロックに隣接するサンプルを表す。C
m,j(ここで、j=-2,-1)は、左に隣接するブロックの、現ブロックに隣接するサンプルを表す。P
n,0およびP
m,0は、それぞれ、現ブロックの上および左の境界上の対応する再構成サンプルを表す。NおよびMは、それぞれ、現ブロックの幅および高さを表す。
図10は、符号予測のためのコスト関数を計算するのに使用される、現ブロックの対応するサンプルP
n,0およびP
m,0、ならびに隣接するブロックの対応サンプルB
i,nおよびC
m,jを示す。
【0096】
いくつかの実装においては、テンプレートベースの仮説再構成方法を符号予測スキームにおいて適用し、複数の逆変換を実施する複雑性を回避することができる。各テンプレートは、現ブロックの上および左の境界上の一連の再構成サンプルとすることができ、特定の係数が1に設定される一方で、他の係数は全てゼロに等しい係数行列に逆変換を適用することにより取得できる。逆変換(例えば、DCT、DST)が線形であると仮定すると、対応する仮説は、一連の事前に計算されたテンプレートの線形結合により生成することができる。
【0097】
いくつかの実装においては、予測符号は2つのセットに分類され、各セットは単一のCABACコンテキストによりコード化される。例えば、第1のセットは、変換ブロックの左上の角の変換係数の予測符号を含み、第2のセットは、変換ブロックの他の全ての場所の変換係数の予測符号を含む。
【0098】
HEVCのように、スカラー量子化は、VVCにおいて使用される。いくつかの実装においては、VVCにおけるスカラー量子化は、依存スカラー量子化として実装されてよい。依存スカラー量子化は、変換係数に対する許容可能な再構成値のセットが、再構成順序において現変換係数レベルに先行する変換係数レベルの値に依存するアプローチを指す。このアプローチの主な効果は、HEVCにおいて使用される従来型の独立スカラー量子化と比較して、許容可能な再構成ベクトルが、N次元のベクトル空間(Nは、変換ブロックにおける変換係数の数を表す)においてより密にまとめられることである。つまり、N次元の単位体積当たりの許容可能な再構成ベクトルの所与の平均数に対して、入力ベクトルとそれに最も近い再構成ベクトルとの間の平均の歪みが低減されることを意味する。
【0099】
依存スカラー量子化は、(a)異なる再構成レベルで2つのスカラー量子化器を定義する、および(b)2つのスカラー量子化器間の切り替えのプロセスを定義することにより実装できる。
図11は、本開示のいくつかの実装に係る、VVCの依存スカラー量子化において使用される2つのスカラー量子化器の例を示す。
図11に示すように、2つのスカラー量子化器は、Q0およびQ1で示され、VVCの量子化設計に適用される。利用可能な再構成レベルの位置は、量子化ステップサイズΔにより一意的に特定される。本実装においては、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】
それに応じて、デコーダにおいては、式(6)に従って、1つの変換係数の再構成量子化インデックスを計算することができる。
【数6】
ここで、abs()は、入力の絶対値を計算する関数であり、stateは、現変換係数のレベルを構文解析するときの状態遷移機械の現在の状態である。さらに、デコーダ側では、式(7)に従って、逆量子化後の再構成変換係数を取得できる:
【数7】
【0104】
本明細書において、符号予測スキームの現設計に存在する不備がいくつか特定される。第1の例においては、現ECMにおける符号予測は、一次変換(例えば、DCTおよびDST変換)のみに適用される変換ブロックにおける変換係数に対する符号の予測にのみ適用可能である。上述したように、LFNSTは、一次変換からの変換係数に適用でき、イントラコード化ブロックの残差サンプルのより良好なエネルギー圧縮をもたらすことができる。しかしながら、符号予測は、現ECM設計においてLFNSTが適用される変換ブロックでは、バイパスされる。
【0105】
第2の例においては、変換ブロックに対して、所定の最大数の予測符号(「Lmax」で示される)が決定され、符号予測の複雑性が制御される。現ECMにおいて、映像エンコーダは、複雑性とコーディング効率との間のトレードオフに基づいて最大数の値(例えば、Lmax=8)を決定し、映像デコーダにその値を送信する。また、変換ブロックごとに、映像エンコーダまたはデコーダは、ラスタスキャン順序で変換係数を全てスキャンしてよく、第1のLmax非ゼロ変換係数は、符号予測のための候補変換係数として選択される。変換ブロックにおける異なる変換係数をそのように同等に扱うことは、符号予測の正確さの観点からは最適ではないかもしれない。例えば、比較的大きな大きさの変換係数の場合、それらの符号の予測は、正確な予測を実現する可能性が高いかもしれない。これは、それらの変換係数に対して間違った符号を使用すると、比較的小さな大きさの変換係数を使用した場合よりも、ブロック境界上の再構成サンプルに大きな影響を及ぼす傾向があるからである。
【0106】
第3の例においては、明確な符号値を直接コード化する代わりに、映像エンコーダまたはデコーダは、予測符号の正確さをコード化できる。例えば、正符号を有する変換係数の場合、その予測符号も正であれば、映像エンコーダから映像デコーダへのビットストリームで、ビン「0」だけを示せばよい。この場合、予測符号は、変換係数の本当の符号(または元の符号)と同じであり、この変換係数に対する符号予測が正確であることが示される。そうでなければ(例えば、本当の符号が正であるのに対して予測符号が負である場合)、映像エンコーダから映像デコーダへのビットストリームに、ビン「1」が含まれうる。符号が全て正しく予測された場合、ビットストリームで示される対応するビンはゼロであり、CABACにより効率的にエントロピーコード化されうる。符号のいくつかが間違って予測された場合、ビットストリームで示される対応するビンは1である。算術コーディング、さらに適切なコンテキストモデルは、ビンをそれらに対応する確率に従ってコード化するのに効率的となりうるが、符号値を示すためにビットストリームで生成される、無視できないビットがなお存在する。
【0107】
第4の例においては、ECMにおける符号予測の現設計において、最良の符号予測の組み合わせの選択のために、現ブロックとそれに隣接するブロックと間の境界におけるサンプル間の空間不連続が使用される。垂直方向および水平方向に沿った勾配差のL1ノルムが、空間不連続をキャプチャするのに利用される。しかしながら、画像信号の分布は通常不均一であるため、垂直および水平方向のみを使用しても、空間不連続を正確にキャプチャできないかもしれない。
【0108】
本開示と一致して、本明細書において、上記の不備の例の1つまたは複数に対処するため、ブロックベースの映像コーディングにおける符号予測のための映像処理方法およびシステムが提供される。本明細書に開示の方法およびシステムは、ハードウェアコーデック実装の親しみやすさを考慮しつつ、符号予測のコーディング効率を改善させることができる。本明細書に開示の方法およびシステムは、ブロックの変換係数に符号予測技術を適用する変換ブロックのコーディング効率を改善させることができる。
【0109】
例えば、上述したように、符号予測は、変換ブロックとそれに空間的に隣接するブロックとの境界に、またはその境界の近くに位置する境界サンプル(ボーダーサンプルとも呼ばれる)間の相互関係に基づいて、変換ブロックにおける変換係数の符号を予測してよい。相互関係の存在がどの特定の変換が適用されるかに依存しないと仮定すると、2つのコーディングツール(すなわち、LFNSTおよび符号予測)は、互いに干渉せず、一緒に適用することができる。追加的に、LFNSTは、一次変換の変換係数のエネルギーを更に圧縮するため、LFNSTの変換係数に対する符号予測は、一次変換に対するものより正確となりうる。これは、LFNSTからの変換係数の間違った符号予測は、境界サンプルの滑らかさに対してより多くの不一致をもたらしうるからである。よって、本開示と一致して、本明細書において、LFNSTおよび符号予測の組み合わせを可能にし、変換係数コーディングのコーディング効率を高めるため、調和スキームが開示される。さらに、本明細書において、予測符号の異なる組み合わせに対してボーダーサンプルを再構成し、逆変換の数を減少させるため、テンプレートベースの仮説生成スキームも開示される。
【0110】
別の例においては、上述したように、符号予測のための候補変換係数の選択に対して、変換ブロックにおける異なる変換係数を同等に扱う代わりに、隣接するブロックの境界サンプル間の不一致につながりうる変換係数に、それらの変換係数の符号がより容易に予測されると仮定して、より高い重みを与えてよい。本開示と一致して、本明細書に開示の方法およびシステムは、1つまたは複数の選択基準に基づいて、符号予測のための候補変換係数(例えば、変換ブロックに対して符号が予測されるべき変換係数)を選択し、符号予測の正確さを改善することができる。例えば、(再構成されたボーダーサンプルへの影響力が少ない変換係数ではなく)再構成されたボーダーサンプルへの影響力がより大きい変換係数を、符号予測のための候補変換係数として選択し、符号予測の正確さが改善されるようにする。
【0111】
更に別の例においては、変換ブロックにおける変換係数の符号が高い正確さの割合で予測された(例えば、予測符号の正確さが、80%または90%などの閾値より高い)とき、変換ブロックとそれに隣接するブロックとの境界サンプル間に、強力な相互関係が存在する。この場合、ほとんどのシナリオに対して正しく予測されうる連続的な変換係数(例えば、特に、変換ブロックの初めのわずかな非ゼロ変換係数)が存在することはよくある。このようなシナリオにおいては、(複数のビンの代わりに)単一のビンを使用して、連続的な変換係数の全ての符号が正しく予測されたか否かを示し、符号予測の信号伝達オーバーヘッドを保存することができる。本開示と一致して、本明細書において、符号予測の信号伝達オーバーヘッドを削減するため、ベクトルベースの符号予測スキームが開示される。各非ゼロ変換係数の符号を別々に予測する既存の符号予測とは異なり、開示されたベクトルベースの符号予測スキームは、一連の連続的な非ゼロ候補変換係数をグループ化し、それらに対応する符号を一緒に予測し、予測符号の正確さを示すのに使用されるビン(またはビット)の平均数を効率的に削減できるようにする。
【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は、一次変換および二次変換を一緒に適用する(例えば、
図6に示すように、順方向一次変換603および順方向LFNST604が一緒に適用される)ことにより、残差映像データを変換ブロックの変換係数に変換してよい。変換ブロックの変換係数からの所定の数(例えば、L個)の非ゼロ変換係数を、以下に記載するような1つまたは複数の選択基準に基づいて、候補変換係数として選択することができ、1≦L≦予測されうる符号の最大数、となる。次に、テンプレートベースの仮説生成スキームを適用することにより、複数の候補仮説を、それぞれ、L個の候補変換係数に対する符号候補の異なる組み合わせを使用して生成することができ、結果として合計で2
L個の候補仮説がもたらされる。各候補仮説は、変換ブロックの上および左の境界上の再構成サンプルを含んでよい。続いて、水平、垂直、および斜めの方向に沿った複合勾配を組み込むコスト関数を使用して、候補仮説再構成ごとにコストを計算することができる。複数の候補仮説のうち、最小コストと関連する候補仮説を、L個の候補変換係数の符号を予測する仮説として決定することができる。例えば、最小コストと関連する候補仮説を生成するのに使用される符号候補の組み合わせは、L個の候補変換係数に対する予測符号として使用される。
【0117】
初めに、符号予測プロセス1300は、一次変換(例えば、DCT、DSTなど)および二次変換(例えば、LFNST)を変換ブロックに一緒に適用し、変換ブロックに対する変換係数を生成する、係数生成操作1302を実施してよい。例えば、一次変換を変換ブロックに適用し、変換ブロックに対する一次変換係数を生成してよい。続いて、LFNSTを変換ブロックに適用し、一次変換係数に基づいてLFNST変換係数を生成してよい。
【0118】
符号予測プロセス1300は、続いて、符号予測のための一連の候補変換係数を、1つまたは複数の選択基準に基づいて変換ブロックの変換係数から選択することができる、係数選択操作1304を実施してよい。候補変換係数の選択によって、正しく予測できる候補変換係数の数が最大化され、符号予測の正確さを改善することができる。
【0119】
いくつかの実装においては、一連の候補変換係数は、変換係数の大きさに基づいて、変換ブロックの変換係数から選択することができる。例えば、一連の候補変換係数は、変換ブロックにおける残りの変換係数より大きな大きさを有する1つまたは複数の変換係数を含むことができる。
【0120】
概して、より大きな大きさの変換係数の場合、これらの変換係数の予測符号は、正確である可能性が高い。これは、より大きな大きさのこれらの変換係数は、再構成サンプルの質により大きな影響を与える傾向があり、これらの変換係数に対して間違った符号を使用すると、変換ブロックとそれに空間的に隣接するブロックとの境界サンプル間に切れ目が生成される可能性が高いためである。この論拠に基づくと、符号予測のための一連の候補変換係数は、変換ブロックにおける非ゼロ変換係数の大きさに基づいて、変換ブロックの変換係数から選択することができる。
【0121】
符号予測のための、変換係数の大きさに基づいた並べ替えスキームを実装する方法は複数考えられる。第1の実装においては、スキームは、符号予測のため、より大きな大きさの逆量子化変換係数がより小さな大きさの逆量子化変換係数に先んじて置かれるようなソーティングに、逆量子化後に再構成される変換係数(すなわち、逆量子化変換係数)を直接使用することができる。例えば、変換ブロックにおける非ゼロ変換係数を全てスキャンし、ソートして、それらの大きさが大きい順に係数リストを形成することができる。選択された候補変換係数の数が所定の数Lに達するまで、最大の大きさの変換係数を係数リストから選択し、一連の候補変換係数における第1の候補変換係数として配置し、2番目に大きい大きさの変換係数を係数リストから選択し、一連の候補変換係数における第2の候補変換係数として配置することができる、等である。
【0122】
第2の実装においては、逆量子化変換係数を直接使用する代わりに、各変換係数の量子化インデックス(例えば、式(6)に従って取得されるようなquantIdx)を、変換係数の大きさを表すのに使用し、そのようなソーティングに使用することができる。式(7)に示すように、1つの逆量子化変換係数の値はその量子化インデックスquantIdxと対応するステップサイズΔとの積に等しく、ステップサイズは、1つの変換ブロックにおける変換係数全ての逆量子化に共通するため、2つの実装は、実際、数学的に同一である。しかしながら、量子化インデックスquantIdxを、(逆量子化変換係数の取得よりも早い)構文解析段階で取得できると仮定すると、第2の実装は、いくつかの特定のハードウェアにより実装されたとき、一定の利益をもたらしうる。
【0123】
いくつかの実装においては、一連の候補変換係数は、映像コーディングに適用されるエントロピーコーディングの係数スキャン順序に基づいて、変換ブロックの変換係数から選択することができる。加工していない映像コンテンツは低周波情報が多いため、映像コンテンツの処理から取得された非ゼロ変換係数の大きさは、低周波位置でより大きく、高周波位置に向けて小さくなる傾向がある。よって、係数スキャン順序(ジグザグスキャン、左上へのスキャンする、水平スキャン、または垂直スキャンなど)を現代の映像コーデックで使用し、エントロピーコーディングのために変換ブロックにおける変換係数をスキャンすることができる。この係数スキャン順序を使用することにより、(通常、低周波数に対応する)より大きな大きさの変換係数は、(通常、高周波数に対応する)より小さな大きさの変換係数より前にスキャンされる。この論拠に基づくと、本明細書に開示の符号予測のための一連の候補変換係数は、エントロピーコーディングのための係数スキャン順序に基づいて、変換ブロックの変換係数から選択することができる。例えば、係数リストは、係数スキャン順序を使用して変換ブロックにおける変換係数を全てスキャンすることにより、取得することができる。続いて、係数リストにおける第1のL個の非ゼロ変換係数を、符号予測のための一連の候補変換係数として、自動的に選択することができる。
【0124】
いくつかの実装においては、イントラコード化ブロックの場合、符号予測のための一連の候補変換係数は、ブロックのイントラ予測方向に基づいて、ブロックの変換係数から選択することができる。例えば、イントラ予測方向(例えば、VVCおよびECMにおける67のイントラ予測方向)と一致した複数のスキャン順序を、映像エンコーダ20および映像デコーダ30の両方におけるルックアップテーブルとして決定し、保存することができる。イントラブロックの変換係数をコード化するとき、映像エンコーダ20または映像デコーダ30は、スキャン順序のうち、イントラブロックのイントラ予測に最も近いスキャン順序を識別してよい。映像エンコーダ20または映像デコーダ30は、識別されたスキャン順序を使用し、イントラブロックの非ゼロ変換係数を全てスキャンし、係数リストを取得し、一連の候補変換係数として係数リストから第1のL個の非ゼロ変換係数を選択してよい。
【0125】
いくつかの実装においては、映像エンコーダ20は、変換ブロックの変換係数に対するスキャン順序を決定し、決定されたスキャン順序を映像デコーダ30に信号送達してよい。決定されたスキャン順序を示す1つまたは複数の新たな構文要素は、ビットストリームによって信号伝達できる。例えば、(例えば、異なる変換ブロックサイズおよびコーディングモードに対する)複数の固定されたスキャン順序を、映像エンコーダ20が予め決定し、映像デコーダ30と事前に共有することができる。続いて、固定されたスキャン順序からスキャン順序を選択した後、映像エンコーダ20は、映像デコーダ30に、選択されたスキャン順序を示す単一インデックスを信号送達するだけでよい。別の例においては、1つまたは複数の新たな構文要素を使用し、変換係数の任意の選択されたスキャン順序の信号伝達を可能にしてよい。いくつかの実装においては、1つまたは複数の構文要素は、さまざまなコーディングレベル、例えば、シーケンスパラメータセット(SPS)、ピクチャパラメータセット(picture parameter set(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】
本開示と一致して、上記の式(8)および(9)における計算に、(例えば、Ti,j(0,n)およびTi,j(m,0)により示されるような)上および左の境界サンプルのみを使用したが、本明細書に開示の変換係数選択スキームは、対応するコスト関数で使用される現変換ブロックの再構成サンプルを変更することにより、任意の符号予測スキームにも適用することができる。
【0132】
変換係数の大きさに基づいたスキームと同様に、影響スコアに基づいたスキームを実装する異なる方法も考えられる。第1の実装においては、スキームは、式(8)および(9)に示すように、逆量子化変換係数C
i,jの大きさを直接使用することができる。第2の実装においては、量子化インデックス値quantIdxが代わりに適用され、逆量子化変換係数Ci,jを置き換え、対応するコスト測定値を計算することができる。具体的には、量子化インデックス値quantIdxが適用されたとき、式(8)および(9)は、以下の式(10)および(11)になる。
【数10】
ここで、quantIdx
i,jは、変換ブロックの位置(i、j)における変換係数の量子化インデックスを表す。
【0133】
1つの逆量子化変換係数の値はその量子化インデックスquantIdxと対応するステップサイズΔとの積に等しく、ステップサイズは、1つの変換ブロックにおける変換係数全ての逆量子化に共通するため、2つの方法は、実際、数学的に同一である。
【0134】
符号予測プロセス1300は、続いて、テンプレートベースの仮説生成スキームを適用し、複数の候補仮説から一連の候補変換係数に対する仮説を選択することができる、仮説生成操作1106を実施してよい。初めに、一連の候補変換係数に含まれる係数の総数に基づいて、符号候補の複数の組み合わせを、一連の候補変換係数に対して決定することができる。例えば、合計でL個の候補変換係数がある場合、一連の候補変換係数に対する符号候補の複数の組み合わせは、符号候補の2L個の組み合わせとすることができる。各符号候補は、負符号(-)または正符号(+)の何れかとすることができる。符号候補の各組み合わせは、合計L個の負または正符号を含んでよい。例えば、L=2の場合、符号候補の複数の組み合わせは、それぞれ(+、+)、(+、-)、(-、-)、および(-、-)である、符号候補の22=4の組み合わせを含んでよい。
【0135】
次に、テンプレートベースの仮説生成スキームを適用し、符号候補の複数の組み合わせに対する複数の候補仮説を、それぞれ生成することができる。実施する必要がある逆方向一次および二次変換の複雑性を低減するため、本明細書に開示のテンプレートベースの仮説生成スキームを使用し、変換ブロックの再構成されたボーダーサンプルの生成を最適化することができる。テンプレートベースの仮説生成スキームを実装する2つのアプローチ例が、本明細書に開示される。テンプレートベースの仮説生成スキームを実装する他のアプローチ例も可能であると考えられ、本明細書に限定されない。
【0136】
第1のアプローチ例においては、テンプレートの線形結合に基づいて、符号候補の組み合わせごとに対応する候補仮説を生成でき、符号候補の複数の組み合わせに対して、複数の候補仮説を、それぞれ生成することができる。各テンプレートは、一連の候補変換係数からの候補変換係数に対応してよい。各テンプレートは、変換ブロックの上および左の境界上の再構成サンプルのグループを表してよい。各テンプレートは、変換ブロックに逆方向二次変換および逆方向一次変換を適用することにより生成でき、ここで、一連の候補変換係数の各々は、1に設定されるテンプレートに対応する候補変換係数を除いて、ゼロに設定される(例えば、テンプレートに対応する候補変換係数は1に設定されるのに対して、残りの候補変換係数の各々は0に設定される)。
【0137】
例えば、符号候補の組み合わせごとに対応する候補仮説は、テンプレートの線形結合となるように設定できる。それぞれの候補変換係数に対応するテンプレートに対して、テンプレートに対するそれぞれの重みは、それぞれの候補変換係数に対応する逆量子化変換係数の大きさとなるように設定できる。テンプレートの線形結合に基づいた仮説生成の例は、
図14に示され、以下でより詳細に説明される。
【0138】
候補変換係数の符号を予測するため、映像エンコーダ20またはデコーダ30は、コスト関数から計算されるコスト値を最小化できる符号候補の組み合わせと関連する仮説を識別する前に、候補仮説を全て検討してよい。上述した第1のアプローチ例において、各候補仮説は、複数のテンプレートの組み合わせに基づいて生成することができるが、そのような組み合わせに伴うサンプルごとの計算(例えば、加算、乗算、およびシフト)を考慮すると、比較的複雑になる。コスト関数から計算されるコスト値を最小化する仮説の識別と関連する計算の複雑性を軽減するため、本明細書においては、第2のアプローチ例が導入される。
【0139】
第2のアプローチ例においては、複数の候補仮説と関連する符号候補の複数の組み合わせは、複数の候補仮説に対する複数の仮説インデックスとして、それぞれ扱うことができる。例えば、0および1の数字は、それぞれ、正符号(+)および負符号(-)を表すように構成できる。候補仮説に対応する符号候補の組み合わせは、候補仮説に対して固有な表現(すなわち、仮説インデックス)として使用することができる。例えば、予測される3つの符号(例えば、L=3)があると仮定する。仮説インデックス000は、3つの符号候補全てを正に設定する(例えば、3つの符号候補が(+、+、+)である)ことにより生成される候補仮説を表してよい。同様に、仮説インデックス010は、第1の符号候補および第3の符号候補を正に設定する一方、第2の符号候補を負に設定する(例えば、3つの符号候補が(+、-、+)である)ことにより生成される候補仮説を表してよい。
【0140】
続いて、複数の仮説インデックスのグレイコード(Gary code)の順序に基づいて、複数の候補仮説が生成し、前の仮説インデックスを有する前の候補仮説の再構成サンプルを、現仮説インデックスを有する現候補仮説を生成するのに使用できるようにする。現候補仮説の現仮説インデックスは、複数の仮説インデックスのグレイコードの順序における前の候補仮説の前の仮説インデックスのすぐ後とすることができる。現仮説インデックスは、前の仮説インデックスと関連する符号候補を正(または負)から負(または正)に変更することにより生成することができる。例えば、現仮説インデックスは、前の仮説インデックスにおける単一の「0」(または「1」)を「1」(または「0」)に変更することにより取得することができる。
【0141】
例えば、複数の仮説インデックスは、複数の仮説インデックスのグレイコードの順序に基づいて並べ替えられ、並べ替えられた一連の仮説インデックスを生成することができる。並べ替えられた一連の仮説インデックスにおける第1の仮説インデックスについて、第1の仮説インデックスに対応する第1の候補仮説は、一連の候補変換係数の各々が1に設定される変換ブロックに逆方向二次変換および逆方向一次変換を適用することにより生成することができる。第1の仮説インデックスのすぐ後の、並べ替えられた一連の仮説インデックスにおける第2の仮説インデックスについて、第2の仮説インデックスに対応する第2の候補仮説は、(a)第1の仮説インデックスに対応する第1の候補仮説、および(b)第2の候補仮説に対する調整期間に基づいて生成することができる。以下の表3は、候補変換係数の数が3(例えば、L=3)であるとき、LFNSTに対する候補仮説を全て生成するプロセス例を示す。
【表3】
【0142】
上記の表3において、第1列は、それぞれ、符号候補の23=8の組み合わせを示す。第2列は、数字0および1を使用して、それぞれ正符号(+)および負符号(-)を表すことにより、それぞれ、符号候補の組み合わせに対応する仮説インデックスを示す。第2列の仮説インデックスは、グレイコードの順序に従って(例えば、000、001、011、010、110、111、101、100の順で)並べられている。第3列は、それぞれ、符号候補の組み合わせおよび仮説インデックスに対応する候補仮説を示す。第4列は、それぞれ、候補仮説の計算を示す。
【0143】
表3において、第4列のTXYZは、対応するテンプレート(すなわち、変換ブロックの上および左の境界上の再構成サンプル)を表し、これは、特定の変換係数が1に設定される一方、他の変換係数は全てゼロに等しい変換ブロックの係数行列に逆変換を適用することにより生成することができる。例えば、T100は、第1の符号候補に対応する変換係数のみが1に設定される一方、係数行列における変換係数は全てゼロに設定される係数行列に逆変換を適用することにより生成される、対応するテンプレートを表す。C0、C1、およびC2は、それぞれ、第1、第2、および第3の符号候補と関連する逆量子化変換係数の絶対値を表す。
【0144】
表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)に基づいて生成することができる。
【0145】
続いて、最小コストと関連する仮説を、水平、垂直、および斜めの方向に沿った複合勾配を組み込むコスト関数に基づいて、複数の候補仮説から決定することができる。上述したように、コスト関数が(例えば、式(5)において上で示したような)水平および垂直方向の勾配のみを利用する場合、非常に不均一な画像信号に対しては上手く機能しないかもしれない。本開示と一致して、1つまたは複数の斜めの方向に沿った勾配も、コスト関数の正確さを改善するために利用される。例えば、左斜めの方向および右斜めの方向を含む2つの斜めの方向も、コスト関数に組み込むことができる。例えば、2つの斜めの方向に対するコスト関数は、以下の式(12)および(13)に従って説明できる。
【数11】
【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)に示すような、水平および垂直コスト関数、左斜めのコスト関数、ならびに右斜めのコスト関数の加重和としてよい。
【数12】
【0148】
上記の式(14)において、ωは、左斜めのコスト関数および右斜めのコスト関数に対する重みを示す。
【0149】
別の例においては、コスト関数は、式(15)に示すような、水平および垂直コスト関数、左斜めのコスト関数、ならびに右斜めのコスト関数の最小値としてよい。
【数13】
【0150】
上で示した式(5)と比較して、本明細書に開示の式(14)または(15)のコスト関数は、より多くの隣接ピクセルを必要とし、斜めの方向に沿ったコスト関数costD1、costD2をサポートしてよく、
図16A~
図16Bを参照して、以下でより詳細に説明される。
【0151】
いくつかの実装においては、候補仮説ごとに対応するコストは、上記の式(14)または(15)を使用して決定してよい。続いて、複数の候補仮説に対して、それぞれ、複数のコストを計算することができる。複数のコストのうち、最小コストを決定することができる。最小コストと関連する候補仮説は、複数の候補仮説から決定し、符号予測のための仮説となるように選択することができる。
【0152】
符号予測プロセス1300は、続いて、選択された仮説と関連する符号候補の組み合わせを、一連の候補変換係数に対する一連の予測符号であると決定する、符号生成操作1108を実施してよい。例えば、選択された仮説を生成するのに使用される符号候補の組み合わせ(例えば、L個の符号候補)は、L個の候補変換係数に対する予測符号として使用することができる。
【0153】
いくつかの実装においては、符号生成操作1308は、一連の予測符号にベクトルベースの符号予測スキームを適用し、一連の候補変換係数に対する一連の符号信号伝達ビットを生成することも含んでよい。一連の符号信号伝達ビットを含むビットストリームは、映像エンコーダ20により生成され、
図1の記憶装置32に保存されてよい。代替的または追加的に、ビットストリームは、
図1のリンク16を通じて映像デコーダ30に送信されてよい。
【0154】
上述したように、変換ブロックにおける変換係数の符号が上手く予測されたとき、複数の連続的な変換係数の符号は、正しく予測できる可能性が非常に高い。この場合、既存の符号予測設計における信号伝達スキームは、各変換係数の対応する符号を正しく予測できることを別々に示す「0」の複数のビンを信号送達する必要があるため、変換ブロックの符号値を信号伝達するオーバーヘッドの観点から、明らかに非効率である。既存の符号予測スキームの実装例は、
図15Aを参照し、以下でより詳細に説明される。
【0155】
本開示と一致して、符号信号伝達の効率は、本明細書に開示のベクトルベースの符号予測スキームを適用することにより改善できる。具体的には、変換ブロックに対する候補変換係数は、複数のグループに区分けすることができ、各グループにおける候補変換係数の符号はまとめて予測できる。この場合、グループにおける候補変換係数の元の符号(または本当の符号)がそれらの予測符号とそれぞれ同じであるとき、グループにおける符号が全て正しく予測されていることを示すため、「0」の値のビンのみを、ビットストリームで送信すればよい。そうでなければ(すなわち、グループに元の符号が予測符号とは異なる候補変換係数が少なくとも1つあるとき)、グループにおける候補変換係数に対する符号の全てが正しく予測されたわけではないことを示すため、「1」の値のビンが、ビットストリームでまず信号伝達されうる。続いて、映像エンコーダ20からに映像デコーダ30にビットストリームで追加的なビンを信号伝達し、グループにおける各予測符号の対応する正確さを別々に知らせてもよい。本明細書に開示のベクトルベースの符号予測スキームの実装例は、
図15Bを参照し、以下でより詳細に説明される。
【0156】
いくつかの実装においては、一連の候補変換係数を、候補変換係数の複数のグループに区分けすることができる。候補変換係数のグループごとに、1つまたは複数の符号信号伝達ビットが候補変換係数のグループに対して生成され、予測符号の正確さを示してよい。
【0157】
1例においては、符号信号伝達ビットは、候補変換係数のグループの元の符号が、候補変換係数のグループの予測符号と同一かどうかに基づいて生成されてよい。候補変換係数のグループの元の符号が候補変換係数のグループの予測符号と同一であることに応じて、ゼロ(「0」)の値のビンが生成され、符号信号伝達ビットとしてビットストリームに追加されてよい。例えば、ビットストリームは、候補変換係数のグループの予測符号が正しく予測されていることを示す「0」を含んでよい。
【0158】
一方、候補変換係数のグループの元の符号が候補変換係数のグループの予測符号と同一でないことに応じて、1(「1」)の値のビンが生成されてよい。候補変換係数のグループの予測符号の対応する正確さを知らせる一連の追加的なビンも、生成されてよい。続いて、1の値のビンおよび一連の追加的なビンを、符号信号伝達ビットとしてビットストリームに追加することができる。例えば、一連の追加的なビンは、候補変換係数のグループの元の符号および予測符号のXOR結果とすることができる。「0」の値の追加的なビンが、追加的なビンに対応する候補変換係数の予測符号が正しく予測されていることを示すのに対して、「1」の値の追加的なビンは、追加的なビンに対応する候補変換係数の予測符号が間違って予測されていることを示してよい。ビットストリームは、(a)候補変換係数のグループの予測符号が正しく予測されていないことを示す「1」、および(b)どの予測符号が正しく予測され、どの予測符号が間違って予測されているかを示す一連の追加的なビンを含んでよい。
【0159】
符号信号伝達ビットは、他のコンテキストモデルを使用しても、同様に生成することができる。例えば、符号信号伝達ビットは、候補変換係数のグループの予測符号が正しく予測されていることを示す「0」、および予測符号が正確ではないことを示す1(「1」)の値のビンを含んでよい。符号予測が間違っている候補変換係数のグループの予測符号の、対応する正確さを知らせるための一連の追加的なビンも、生成されてよい。
【0160】
いくつかの実装においては、候補変換係数の各グループのサイズは、1つまたは複数の所定の基準に基づいて、適応的に変更することができる。1つまたは複数の所定の基準は、変換ブロックの幅または高さ、変換ブロックのコーディングモード(例えば、イントラまたはインターコーディング)、および変換ブロック内の非ゼロ変換係数の数、などを含んでよい。いくつかの実装においては、候補変換係数の各グループのサイズは、SPS、PPS、スライスもしくはピクチャレベル、CTUもしくはCUレベル、または変換ブロックレベルなど、さまざまなコーディングレベルで、ビットストリームで信号伝達することができる。
【0161】
いくつかの実装においては、1つまたは複数の制約が適用され、本明細書に開示のベクトルベースの符号予測スキームのアプリケーションシナリオが制限されうる。例えば、本明細書に開示のベクトルベースの符号予測スキームは、変換ブロックにおける変換係数の第1の部分に対する符号を処理するのに適用可能であるのに対して、変換ブロックにおける変換係数の第2の部分の符号は、既存の符号予測スキームを使用して処理されうる。更なる例においては、本明細書に開示のベクトルベースの符号予測スキームは、変換ブロックのうち、初めのN(例えば、N=2、3、4、5、6、7、または8など)個の非ゼロ候補変換係数に適用可能であるのに対して、変換ブロックの他の候補変換係数の符号は、本開示において後で説明する、
図15Aに示す既存の符号予測スキームを使用して処理されうる。
【0162】
本開示と一致して、本明細書に開示の符号予測プロセス1100は、いくつかのシナリオの下では機能しない可能性がある。例えば、LFNSTがイントラテンプレートマッチングモードによりコード化されるコーディングブロックに適用されるとき、一次変換は、DST-VIIとすることができる。ECMにおけるLFNSTコア変換が、一次変換がDCT-IIであるときに主に訓練されると仮定すると、イントラテンプレートマッチングブロックの対応するLFNST変換係数は、他の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
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とを足し合わせることにより生成することができる。
【0166】
図15Aは、いくつかの例に従った、既存の符号予測スキームの実装例を示すグラフィカル表現である。
図15Bは、本開示のいくつかの実装に係る、ベクトルベースの符号予測スキームの実装例を示すグラフィカル表現である。既存の符号予測スキームと本明細書に開示のベクトルベースの符号予測スキームとの間の比較例が、
図15A~
図15Bを参照して、本明細書において説明される。
【0167】
図15A~
図15Bにおいて、変換ブロックに、符号予測のための候補変換係数として選択される6つの非ゼロ変換係数が存在する。候補変換係数は、ラスタスキャン順序を使用して、変換ブロックの係数行列からスキャンされる。候補変換係数の元の符号および予測符号は、
図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つの予測符号の対応する正確さを示すことができる。例えば、第1のビンおよび第2のビンは、それぞれ、第1および第2の候補変換係数に対する予測符号が正確であることを示す「0」の値を有する。第3のビンは、第3の変換係数に対する予測符号が正確ではないことを示す「1」の値を有する。6つのビンを、エントロピーコーディングのためにCABACに送信することができる。
【0169】
図15Bを参照すると、本明細書に開示のベクトルベースの符号予測スキームは、6つの候補変換係数を3つのグループに区分けし、各グループは2つの連続的な候補変換係数を含む。グループ#0および#2における候補変換係数の符号は正しく予測できているため、2つのグループに対しては、各々「0」の値を有する2つのビンだけが生成される。グループ#1については、符号が正しく予測できていない第3の候補変換係数を含んでいるため、(
図15Bにおいて下線が引かれている)「1」の値のビンが生成され、ビットストリームで信号伝達され、グループが、元の符号がその予測符号とは異なる、少なくとも1つの候補変換係数を含むことが示される。続いて、グループ#1の第3および第4の係数に対して「1」および「0」の値の2つの追加的なビンが生成され、それらの符号が正しく予測できているかどうかが示される。従って、本明細書に開示のベクトルベースの符号予測スキームが適用されたとき、CABACに対して合計で5つのビンが生成され、これは、
図15Aに示す既存の符号予測スキームにより生成されたビンよりビットが少なくなる。よって、本明細書に開示のベクトルベースの符号予測スキームを適用することにより、信号伝達オーバーヘッドを削減させることができ、変換ブロックのコーディング効率が改善される。
【0170】
本開示と一致して、
図15Bに示すように、変換ブロックの係数行列から候補変換係数を取得するためにラスタスキャン順序が使用されているが、符号予測のための候補変換係数を選択するためには、任意の他のスキャン順序も使用できる。例えば、候補変換係数は、上述した1つまたは複数の選択基準に基づいて選択することができる。本明細書において、同様の説明は繰り返さない。
【0171】
図16Aは、本開示のいくつかの実装に係る、左斜めの方向に沿った左斜めのコスト関数の計算例を示すグラフィカル表現である。
図16Bは、本開示のいくつかの実装に係る、右斜めの方向に沿った右斜めのコスト関数の計算例を示すグラフィカル表現である。costHVの計算のための上記の式(8)と比較すると、上記の式(14)または(15)に示す左斜めのコスト関数costD1または右斜めのコスト関数costD2は、斜めの方向に沿ったコスト関数costD1,costD2の計算をサポートするために、より多くの隣接ピクセルを必要とする可能性がある(
図16A~
図16Bにおけるエリア1602、1604、および16606内の印のついたピクセルとして示される)。エリア1602、1604、および1606のこれらのピクセルが利用できないとき、これらの利用できない位置を埋めるため、最近接パディング法(nearest padding method)を採用することができる。例えば、エリア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)で以下に示すように、それに最も近い利用可能なピクセルに重みを加えることにより、埋めることができる。
【数14】
【0173】
第2の方法例においては、利用できない位置のいくつかは、それぞれ、それらに最も近い利用可能なピクセルで埋めることができる。例えば、エリア1602のB-1,-2が利用できない場合、C0,-2で埋められる。B-2,-1が利用できない場合、B-2,0で埋められる。ただし、B-2,-2およびB-1,-1が利用できない場合、それらは、上記の式(16)および(17)に従って計算される、2つのそれらに最も近い隣接ピクセルの平均値で埋めることができる。
【0174】
第3の方法例においては、利用可能な隣接する再構成サンプルのみを使用し、コスト関数を計算する。現ブロックの上/左の境界に沿った1つの境界サンプルのコスト計算が、利用できない再構成サンプルを伴う場合、それらは、対応する方向におけるコストを計算する際には使用されない。例えば、
図16Bにおいて、右上方向におけるコスト関数の値を計算するためには、境界サンプルP
0,0、P
0,1、およびP
1,0のみが使用される一方、P
0,2、P
0,3、P
2,0、およびP
3,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行およびN列の隣接する再構成サンプルのテンプレートが、勾配導出のための参照サンプルとして使用される。
図18Aの例において、テンプレートサイズは3に等しい。
【0179】
ステップ1704において、勾配のヒストグラム(HoG)が初期化される。例えば、HoGは、多数のエントリにより生成されてよく、ここで、勾配のヒストグラムの各エントリは、事前に定義された角度方向における勾配の累積された大きさに対応する。各エントリは、ゼロとして初期化されてよい。例えば、
図18Bは、本開示のいくつかの実装に係る、コスト関数に対するサンプル外挿方向の勾配ベースの選択における勾配のヒストグラム(HoG)の例を示すグラフィカル表現である。実際、開示された勾配分析スキームにおいては、さまざまな事前に定義された方向が使用されてよい。1つの実装においては、VVC/ECMにおける通常のイントラ予測の65の角度方向に対して定義されたものと同じ方向が使用される。
【0180】
ステップ1706において、それぞれの勾配を計算するために、参照サンプルに勾配フィルタウィンドウが適用される。
図18Aに示すように、テンプレートの真ん中の行/列に位置する各テンプレートサンプルに、1つのN×Nの勾配フィルタウィンドウが適用され(すなわち、フィルタウィンドウは、サンプル位置に中心がある)、それに対応する水平勾配G
hおよび垂直勾配G
vがそれぞれ計算される。
【0181】
ステップ1708において、各参照サンプルの勾配の角度(Angle)および大きさ(Amp)が計算される。例えば、サンプルの勾配は、式(20)および(21)に従って計算することができる。
【数15】
【0182】
ステップ1710において、勾配の角度は、事前に定義された方向の1つに変換でき、HoGにおける対応するエントリが更新される。例えば、
図18に示すように、AngleごとのHoGにおけるAmplitudeは、そのAngleのサンプル勾配の大きさ(Amp)を追加することにより更新される。結果として、Amplitudeは、累積された大きさである。
【0183】
ステップ1712において、最大の累積された大きさを有するHoGのエントリが、現ブロックのコスト関数に対する隣接サンプルを外挿するのに使用される方向として選択されることになる。例えば、
図18に示すように、最大のエントリは丸で囲まれている。
【0184】
上記の方法において、最大の大きさを有する方向は、サンプル外挿に対する方向として選択される。このような方法は、何らかのノイズ(例えば、量子化エラーおよび/または他のコーディングモジュールにより生じるコーディングノイズ)があるとき、必ずしも信頼できるものではないかもしれない。このような問題を解消するため、支配的な勾配方向が外挿方向として採用される前に、特定の条件が適用されうる。
【0185】
例えば、1つの実装においては、選択された支配的な勾配方向は、選択された勾配方向に属するテンプレートサンプルが十分にある(例えば、選択された方向に属するサンプルの割合が、所定の閾値を超えるなど、十分に大きい)ときのみ、コスト関数計算のサンプル外挿に対して使用可能であってよい。そうでなければ(例えば、選択された方向に属するテンプレートサンプルの数が十分に多くないとき)、デフォルトの外挿(例えば、上に隣接するサンプルに対する垂直外挿、および左に隣接するサンプルに対する水平外挿)がそれまで通り適用される。
【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のエリアの符号は、予測に対して選択でき、ここで、AおよびBは、式(22)に従って計算される。
【数16】
ここで、widthおよびheightは、変換ブロックの幅および高さであり、THは、符号予測のための最大エリアサイズである(エリアサイズ閾値とも呼ばれる)。THの値を操作することにより、符号予測技術に対して異なる性能および複雑性トレードオフがもたらされる可能性がある。符号予測のエリアを拡大することにより、符号が予測されることになる変換係数の数を増加させることができるが、エンコーダおよびデコーダの両方においてテストされる必要がある符号の組み合わせの数が増加するため、計算複雑性が増加するという代償を伴うかもしれない。
【0192】
いくつかの実装においては、THの値の決定のため、さまざまな方法が使用できる。1つの実装においては、全てのシーケンスおよびコーディングシナリオにおいて、THに対して固定値(例えば、8、16、32など)が使用されうる。エリアサイズ閾値THが固定であると仮定すると、エンコーダおよびデコーダは、符号予測のための変換係数を位置付けるときに、同じ値を使用し(すなわち、信号伝達されずに)、対応するエリアを決定することになる。別の実装においては、エンコーダには柔軟性が与えられ、映像シーケンスの特定の特性、およびその好ましい性能/複雑性トレードオフに従って最適なエリアサイズ閾値が決定され、エンコーダからデコーダに対応値が信号送達されてよい。
【0193】
1つの方法例において、エリアサイズ閾値は、どのサイズが選択されるかを示すために定数のビットのみがビットストリームでデコーダに信号伝達される必要があるように、一連の定数から選択されてよい。例えば、4つの許容されているエリアサイズ閾値{4、8、16、32}があると仮定すると、2つのビットのみを信号伝達し、グループから選択された特定の値を示す必要がある。別の方法例において、エリアサイズ閾値は、エンコーダ側において変換ブロックに対して適応的に決定されてよい。そのため、エリアサイズ閾値の値は、任意の数であってよい。このような場合、その未知の値のため、固定長の符号語は使用できず、代わりに、いくつかの可変長の符号語(例えば、指数ゴロム、単項コードなど)が、決定されたエリアサイズ閾値の値を示すためにビットストリームで適用されてよい。
【0194】
追加的に、THの値がビットストリームで送信されたとき、さまざまなレベルで、例えば、映像パラメータセット(VPS)、シーケンスパラメータセット(SPS)、ピクチャパラメータセット(PPS)、スライスヘッダー、およびコーディングブロックレベルで信号伝達されうる。(例えば、VPSまたはSPSにおいて)シーケンスレベルで信号伝達されたとき、THの値は、1つの同じエリアサイズ閾値が映像シーケンスにおける変換ブロック全てに共有されることになることを意味する。ピクチャ/スライスレベルで(すなわち、PPSまたはスライスヘッダーにおいて)信号伝達されたとき、THの値は、エリアサイズ閾値を、ピクチャからピクチャに、またはスライスからスライスに、それぞれ変化させることができる。同様に、値がコーディングブロックで信号伝達されたとき、値は、符号予測領域の最大適応能力をもたらすが、個々のコーディングブロックごとに、別々に、値を信号伝達する必要があると考えると、より多くのコーディングビットが消費される。
【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は、変換ブロックのwidthおよびエリアサイズ閾値THより小さな値であると決定され、符号予測エリアの高さBは、変換ブロックのheightおよびエリアサイズ閾値THより小さな値であると決定される。
【0199】
上述したように、符号予測の効率を改善させるため、変換係数の符号予測が適用される符号予測エリアは、エンコーダからデコーダに信号伝達される可能性がある。デコーダ側においてこの拡張された符号予測エリアを実装するため、デコーダは、エンコーダにより選択される、可能性がある拡張された領域サイズを全て対処できなければならず、これにより、デコーダがさまざまなサイズのブロックに対する符号を構文解析するときに、曖昧さがもたらされる可能性がある。拡張された符号予測エリアの実装を促進するため、特定の順序で1つの変換ブロックの符号を信号送達するために、領域ベースの方法が使用されてよい。
【0200】
エンコーダからデコーダに信号伝達され、デコーダにより適用され、符号予測のための変換係数を位置付ける、N個の可能性があるエリアサイズ閾値、TH
0、TH
1、・・・、TH
N-1があると仮定する。上での説明と一致して、これらのエリアサイズ閾値は、所定の値とすることもできるし、エンコーダにより適応的に決定される値とすることもできる。TH
maxは、これらの可能性がある閾値のうち最大のエリアサイズ閾値であり、すなわち、TH
max=max{TH
0、TH
1、・・・、TH
N-1}である。TH
curは、符号予測エリアを決定するために使用される選択された閾値であるため、デコーダに信号伝達される値であり、ここで、
である。単純化のため、以下の説明では、現変換ブロックの幅および高さは両方、TH
maxより大きいと仮定する。すなわち、式(22)を適用すると、A=B=TH
maxである。
【0201】
いくつかの実装においては、特定の順序で1つの変換ブロックの符号を信号送達するため、まず、変換ブロックが複数の領域に区分けされ、続いて、複数の領域と関連する変換係数の符号が、1つの領域から別の領域へと信号伝達される。
【0202】
例えば、
図20は、いくつかの例に従った、エンコーダからデコーダに変換係数の符号を信号伝達する順序例を実装するための、変換ブロックの区分けを示すグラフィカル表現である。
図20に示すように、変換ブロックの領域全体が、3つの異なる領域に区分けされうる:
(1)第1の領域(領域#1)は、符号付き符号予測領域サイズTH
curにより囲まれた左上の領域内にある変換係数を含む、すなわち、0≦x<TH
curおよび0≦y<TH
curである;
(2)第2の領域(領域#2)は、符号付き符号予測領域により囲まれた領域と最大符号予測領域サイズとの間にある変換係数を含む、すなわち、{TH
cur≦x<TH
maxおよび0≦y<TH
cur}、{0≦x<TH
curおよびTH
cur≦y<TH
max}、{TH
cur≦x<TH
maxおよびTH
cur≦y<TH
max}である;かつ
(3)第3の領域(領域#3)は、変換ブロック内にある他の変換係数全てを含む、すなわち、x>TH
maxまたはy>TH
maxである、
ここで、xおよびyは、変換ブロックにおける変換係数の水平および垂直座標である。
【0203】
図20は、上記の分割/区分けスキームが1つの変換ブロックに適用された後に得られた領域を示す。領域#1は、符号が予測できる、または予測できない何れかの変換係数を含む一方、領域#2および領域#3における変換係数の符号は、純粋に予測可能ではない、すなわち、それらはビットストリームで直接信号伝達される。いくつかの実装においては、
図20の分割構造の下、領域#3における変換係数の符号が、まず信号伝達され、続いて、領域#1における変換係数の符号、最後に、領域#2における変換係数の符号が信号伝達される。
【0204】
いくつかの実装においては、異なる領域からの変換係数の符号をコード化するため、エンコーダにより異なるスキャン順序が適用されてよい。例えば、
図21は、いくつかの例に従った、変換係数の符号をスキャンするためのさまざまなスキャン順序を示すグラフィカル表現である。
図21のパート(a)は斜めのスキャンを示し、パート(b)は水平スキャンを示し、パート(c)は垂直スキャンを示す。
【0205】
いくつかの実装においては、変換ブロックの区分けされた領域に、異なるスキャン順序が適用されてよい。例えば、
図22は、いくつかの例に従った、
図20に従って区分けされた変換ブロックに対するさまざまなスキャン順序の実装を示すグラフィカル表現である。
図22に示すように、領域#1および#2における変換係数の符号は、水平スキャンによりスキャンされてよく、領域#3における変換係数の符号は、斜めのスキャンによりスキャンされてよい。
【0206】
別の例として、
図23は、いくつかの例に従った、エンコーダからデコーダに変換係数の符号を信号伝達するための別の順序例を実装する変換ブロックの区分けを示すグラフィカル表現である。本例において、変換ブロックは、2つの領域にのみ分割される:
(1)第1の領域(領域#1)は、符号付き符号予測領域サイズTH
curにより囲まれた左上の領域内にある変換係数を含む、すなわち、0≦x<TH
curおよび0≦y<TH
curである;かつ
(2)第2の領域(領域#2)は、変換ブロック内にある他の変換係数全てを含む、すなわち、x>TH
curまたはy>TH
curである、
ここで、xおよびyは、変換ブロックにおける変換係数の水平および垂直座標である。
【0207】
図22は、上記の分割スキームが1つの変換ブロックに適用された後に得られた領域を示す。領域#1は、符号が予測できる、または予測できない何れかの変換係数を含む一方、領域#2における変換係数の符号は、純粋に予測可能ではない、すなわち、それらはビットストリームで直接信号伝達される。
図22の分割構造の下、いくつかの実装においては、領域#2における変換係数の符号がまず信号伝達され、続いて、領域#1における変換係数の符号が信号伝達される。
【0208】
いくつかの実施形態においては、2つの領域に属する変換係数の符号をスキャンするため、エンコーダにより異なるスキャン順序が適用されてよい。例えば、
図24は、いくつかの例に従った、
図22に従って区分けされた変換ブロックに対する異なるスキャン順序の実装を示すグラフィカル表現である。1例においては、
図24に示すように、エンコーダは、水平スキャンにより領域#1における変換係数の符号をスキャンし、斜めのスキャンにより領域#2における変換係数の符号をスキャンしてよい。
【0209】
図22および
図24の例においては、変換係数の符号をスキャンするのに、水平および斜めのスキャンのみが適用されたが、現代の映像コーディング技術に精通している者であれば、1つの変換ブロックの符号を信号送達する開示された領域ベースの信号伝達方法に、スキャン順序の他の組み合わせも適用可能であることは、容易に受け入れるであろう。
【0210】
エンコーダ側においては、信号は、領域ベースの順序(例えば、
図20に示す分割の場合、領域#3、領域#1、続いて領域#2)でビットストリームにおいて符号化されるため、デコーダ側においては、符号化データは、同じ順序に従って構文解析される。デコーダは、符号予測および他の映像復号ステップを実施する前に、まず、信号伝達されたTH
cur(および、任意にTH
max)を使用して領域を決定し、それら各々の領域に対するデータを読み取ってよい。例として
図20の分割を使用して、デコーダは、ビットストリームを構文解析し、まず領域#3、続いて領域#1、続いて領域#2に対する、符号および符号化された変換係数を取得してよい。デコーダは、続いて、領域#1(変換ブロックに対する符号予測エリア)における変換係数に対する符号予測を実施してよい。
【0211】
拡張された符号予測エリアスキームは、上に開示された符号予測技術の何れとも干渉しないと考えられ、これらの技術は、拡張された符号予測エリアに容易に適合され、組み合わせることができ、コーディング性能を改善させる。1つの特定の例として、拡張された符号予測エリアは、符号予測並べ替えおよびLFNST符号予測と組み合わせることができる。
【0212】
上での説明において、1つのコンテキストモデルが、符号信号伝達ビットにおける予測符号の正確さをコード化する例として説明されている。具体的には、各予測符号間の差分を符号がすることができ、対応する「0」(又は「1」)を有する真の符号は、推定された符号が真の符号と同じである(又は同じでない)ことを示す。本開示のいくつかの実装と一致して、符号予測の正確さをエントロピーコード化するのに他のコンテキストモデルも使用し、コーディング効率を更に改善させることができる。
【0213】
第1の方法例においては、符号予測の正確さをエントロピーコード化するために、変換係数のレベル値(すなわち、大きさ)のコンテキストを使用することができる。これは、1つのより大きな大きさによれば、正確な予測を行う可能性が高くなる傾向にあるためである。例えば、このような方法が適用されたとき、可能性がある大きさの値の範囲は、いくつかのセグメントに区分けされてよく、異なるコンテキストが、異なるセグメントにおける係数の符号予測エントロピーコーディングに割り当てられてよい。
【0214】
いくつかの実装においては、変換係数の大きさの範囲は、複数の大きさセグメントに区分けされ、コンテキストが各大きさセグメントに割り当てられ、その大きさセグメントに属する変換係数に対する符号信号伝達ビットをエントロピー符号化してよい。複数の大きさセグメントのうち、それぞれ2つの連続的な大きさセグメントが、閾値により分けられ、大きさセグメントが重ならないようにしてよい。
【0215】
1つの特定の例においては、閾値thresを使用して、変換係数の大きさの範囲を2つのセグメント、すなわち、(1、thres)および[thres、+∞]に区分けしてよい。このような区分けにより、1つの変換係数が第1のセグメントに属す場合、1つの第1のコンテキストが割り当てられ、変換係数の符号をコード化する。そうではなく、変換係数が第2のセグメントに該当する場合、1つの第2のコンテキストが割り当てられ、変換係数の符号をコード化する。
【0216】
さまざまな実装においては、閾値の値(または複数の閾値の複数の値)を、異なる方法で決定し、特定することができる。1つの方法例においては、値は、固定され(例えば、2、3、・・・、など)、エンコーダおよびデコーダの両方で事前にプログラムされてよい。従って、固定値は、それを信号送達する必要なく、エンコーダおよびデコーダ側の両方で使用される。別の方法例においては、エンコーダには、最適な閾値を選択する自由が与えられ、対応値をデコーダに信号送達してよい。
【0217】
上述したように、各変換係数の大きさは、エンコーダ側において変換係数の符号値をコード化するためのコンテキストを決定するのに使用される。従って、デコーダ側においては、各変換係数の大きさが、それに応じて、変換係数の符号値を復号するためのコンテキストを決定するのに使用される。変換係数が、デコーダ側において逆量子化が行われた後にのみ取得されうると仮定すると、このようなスキームは、逆量子化は構文解析段階で実施される必要があるという事実のため、構文解析ビットストリームの複雑性を著しく増加させうる。このような複雑性の問題を解消するため、1つの実装においては、デコーダは、1つの変換係数の符号をコード化するコンテキストを決定するための変換係数のレベルk(すなわち、逆量子化が適用されることなく、ビットストリームから直接構文解析された変換係数の量子化された値)を直接使用してよい。
【0218】
別の実装においては、ビットストリームから構文解析されるレベルkを直接使用する代わりに、デコーダは、量子化インデックス(すなわち、quantIdx)を使用し、1つの変換係数の符号を符号化するコンテキストを決定してよい。上述のように、VVC/ECMにおいては、量子化/逆量子化に2つのスカラー量子化器が適用されてよい。1つの変換係数に使用される実際の量子化器は、現変換係数に先行する変換係数のパリティにより決定される。そのため、変換係数に対する量子化インデックスを使用し、符号を符号化するためのコンテキストを決定してよい。上述のように、量子化インデックスは、例えば、式(6)に従って、現変換係数の遷移状態(すなわち、state)に基づいて、レベルkの値から計算することができる。
【0219】
さまざまな実装において、上記の大きさ/レベルベースのコンテキストモデリング方法は全て、
図13に関連して説明したように、開示された変換係数選択スキームと組み合わせることができる。例えば、このような組み合わせは、2つの異なる方法で実装される可能性がある。1つの方法においては、変換係数が並べ替えられ、並べ替えられた変換係数の大きさ/レベル(すなわち、変換係数が並べ替えられた後の大きさ/レベル)により、1つの変換ブロックにおける変換係数の符号をコード化するのに適用される対応するコンテキストを決定してよい。別の方法においては、変換係数は並べ替えられず、変換係数の大きさ/レベルは、並べ替えられずに使用され(すなわち、変換係数が並べ替えられる前の大きさ/レベル)、変換ブロックにおける変換係数の符号をコード化するのに適用されるコンテキストが決定される。
【0220】
図25Aおよび
図25Bは、それぞれ、上述した2つのスキームを実装する、変換係数符号予測のためのコンテキストモデリングの2つの例を示す。
図25Aに示すように、第1のスキームが適用されたとき、変換係数は、例えば、6、3、2、2、1、1、1、および1の順で、それらの大きさ/レベルに従って並べ替えられる。並べ替えられた変換係数の大きさ/レベルは、ビットストリームに含まれている符号信号伝達ビットのコンテキストを選択するのに使用される。この第1のスキームの利点は、コンテキストモデリング使用される対応する大きさ/レベルが、符号がコード化されている変換係数と一致することである。この第1のスキームが適用されたとき、エンコーダ/デコーダは、符号がコード化/復号される前に変換係数を並べ替える必要があり、これにより、ビットストリーム構文解析の複雑性が増加し、ひいては構文解析スループットが減少する可能性がある。
図25Bは、この構文解析問題を回避しうる第2のスキームの実装を示す。この第2のスキーム、第2の方法においては、並べ替えられていない変換係数の大きさ/レベルが、符号を符号化するためのコンテキスト決定に使用される。そのため、並べ替えは、構文解析段階において適用される必要がない。従って、コンテキストモデリングに使用される大きさ/レベルは、符号と位置合わせされていなくてよい。
【0221】
第2の方法においては、符号予測をエントロピーコード化するために、変換係数のスキャン位置のコンテキストが使用されてよい。例えば、1つの単独のコンテキストが、1つの変換ブロックの第1のL個の位置に位置付けられた変換係数のコーディングに適用される一方で、別のコンテキストが、他の位置における係数の符号のコーディングに適用されてよい。1つの特定の例においては、Lの値は、1に等しく設定されてよい。従って、1つの変換係数の第1の変換係数(すなわち、DC係数)の符号をコード化するのに1つのコンテキストが割り当てられ、他の変換係数(すなわち、AC係数)全ての符号をコード化するのに別のコンテキストが割り当てられる。代替的に、1つの変換ブロックにおける符号予測位置は全て、それら各々の重要性(または正確な予測の可能性)に従って異なるグループに分類でき、異なるコンテキストが、各グループに別々に割り当てられてよい。
【0222】
第3の方法においては、コーディングモードのコンテキスト、ブロックサイズ、およびコンポーネントチャネル情報などのコーディングに関する情報が、符号予測コーディングに使用されてよい。例えば、異なるコンテキストを、インターおよびイントラモードに使用することができる。別の例においては、異なるコンテキストモデルが、異なるブロックに使用されてよい。更に別の例においては、異なるコンテキストが、ルーマおよびクロマコンポーネントに使用されてよい。
【0223】
第4の方法においては、変換係数を決定するための変換タイプが、符号予測のためのコンテキストとして使用されてよい。上述したように、MTSおよびLFNSTなど、1つの変換ブロックにおける係数のエネルギーを圧縮するのに適用される複数の変換コアが存在する。異なる変換コアから得られた変換係数が異なる統計的特性を提示しうると仮定すると、異なるコンテキストが、異なる変換の変換係数の符号をエントロピー符号化するのに使用されてよい。
【0224】
上記のコンテキストモデリングスキームは別々に説明されたが、これらは何れも一緒に使用されうることも考えられる。実際、各方法は、他の方法と自由に組み合わせて、異なるコンテキスト設計を実現することができる。
【0225】
図26は、本開示のいくつかの実装に係る、ブロックベースの映像コーディングにおける符号予測のための例示の方法2600のフローチャートである。方法2600は、映像エンコーダ20または映像デコーダ30と関連する映像プロセッサにより実施されてよく、以下に記載するようなステップ2602~2608を含んでよい。ステップのいくつかは、本明細書において提供される開示を実施するために任意であってよい。さらに、ステップのいくつかは、同時に実施されてもよいし、
図26に示すものとは異なる順序で実施されてもよい。
【0226】
ステップ2602において、映像プロセッサは、映像からの映像フレームの変換ブロックに一次変換および二次変換を適用し、変換ブロックに対する変換係数を生成してよい。
【0227】
ステップ2604において、映像プロセッサは、符号予測のための変換係数から一連の候補変換係数を選択してよい。
【0228】
ステップ2606において、映像プロセッサは、テンプレートベースの仮説生成スキームを適用し、一連の候補変換係数に対する複数の候補仮説から仮説を選択してよい。
【0229】
ステップ2608において、映像プロセッサは、選択された仮説と関連する符号候補の組み合わせが一連の候補変換係数に対する一連の予測符号であると決定してよい。
【0230】
本開示と一致して、方法2600および
図26は、映像エンコーダ側または映像デコーダ側で実行されてよい。方法2600が映像エンコーダ側で実行されたとき、映像エンコーダ側における変換係数符号予測のための符号化方法と見なされてよい。続いて、符号予測の正確さを示す符号信号伝達ビットが生成され、デコーダに送信されるビットストリームに含まれるように符号化される。方法2600が映像デコーダ側で実行されたとき、映像デコーダ側における変換係数符号予測のための復号方法と見なされてよい。符号信号伝達ビットは、量子化されたレベルの変換係数の符号化データも含むビットストリームで、デコーダに信号伝達される。デコーダは、符号信号伝達ビットを使用してその符号予測を修正し、受け取った変換係数の元の符号を推定してよい。符号化方法例、および映像デコーダ側における変換係数符号予測のための復号方法例は、それぞれ、
図27および
図28を参照して、以下で提供される。
【0231】
図27は、本開示のいくつかの実装に係る、映像エンコーダにより実施される、変換係数符号予測のための例示の映像符号化方法2700のフローチャートである。方法2700は、映像エンコーダ20と関連する映像プロセッサにより実施されてよく、以下に記載するようなステップ2702~2716を含んでよい。ステップのいくつかは、本明細書において提供される開示を実施するために任意であってよい。さらに、ステップのいくつかは、同時に実施されてもよいし、
図27に示すものとは異なる順序で実施されてもよい。
【0232】
ステップ2702において、映像プロセッサは、映像からの映像フレームの変換ブロックに一次変換および二次変換を適用し、変換ブロックに対する変換係数を生成してよい。いくつかの実装においては、二次変換は、順方向LFNSTであってよい。
【0233】
ステップ2704において、映像プロセッサは、エリアサイズ閾値に基づいて、変換係数符号予測を実施するための符号予測エリアを決定してよい。いくつかの実装においては、映像プロセッサは、エリアサイズ閾値を選択し、エリアサイズ閾値を信号送達してよい。いくつかの実装においては、映像プロセッサは、式(22)に従って変換ブロックの左上の角において符号予測エリアを決定してよい。
【0234】
ステップ2706において、映像プロセッサは、変換ブロックを、符号予測エリアと、少なくとも1つの他の領域とを含む複数の領域に区分け/分割してよい。いくつかの実装においては、変換ブロックは、符号予測エリアの第1の領域と、最大エリアサイズ閾値に等しい幅および高さを有する長方形のエリアを包含し、かつ符号予測エリアの外側である第2の領域と、第1および第2の領域の外側の変換ブロックの残りのエリアをカバーする第3の領域とを含む、3つの領域に区分けされてよい。いくつかの実装においては、変換ブロックは、符号予測エリアの第1の領域と、第1の領域の外側の変換ブロックの残りのエリアをカバーする第2の領域とを含む、2つの領域に区分けされてよい。
【0235】
ステップ2708において、映像プロセッサは、符号予測のための符号予測エリアにおける変換係数から一連の候補変換係数を選択してよい。
【0236】
ステップ2710において、映像プロセッサは、一連の候補変換係数に対する符号を予測してよい。いくつかの実装においては、映像プロセッサは、一連の候補変換係数における候補変換係数の総数に基づいて、一連の候補変換係数に対する符号候補の複数の組み合わせを決定してよい。映像プロセッサは、続いて、テンプレートベースの仮説生成スキームを適用し、符号候補の複数の組み合わせに対する複数の候補仮説を、それぞれ生成してよい。映像プロセッサは、コスト関数に基づいて、複数の候補仮説から最小コストと関連する仮説を選択してよい。映像プロセッサは、選択された仮説と関連する符号候補の組み合わせを、一連の候補変換係数に対する一連の予測符号であると決定してよい。
【0237】
ステップ2712において、映像プロセッサは、1つまたは複数のコンテキストに従って、一連の候補変換係数に対する一連の符号信号伝達ビットを生成してよい。さまざまなコンテキストモデルおよびそれらの組み合わせを使用し、予測符号の正確さをコード化してよい。いくつかの実装においては、一連の符号信号伝達ビットは、ベクトルベースの符号予測スキームを適用することにより生成されてよい。
【0238】
ステップ2714において、映像プロセッサは、それぞれのスキャン順序を使用して、複数の領域の変換係数の符号をコード化してよい。いくつかの実装においては、複数の領域に、異なるスキャン順序が適用される。例えば、変換ブロックがステップ2706において3つの領域に区分けされたとき、第1の領域および第2の領域は水平スキャン順序でスキャンされ、第3の領域は斜めのスキャン順序でスキャンされてよい。別の例として、変換ブロックがステップ2706において2つの領域に区分けされたとき、第1の領域は水平スキャン順序でスキャンされ、第2の領域は斜めのスキャン順序でスキャンされてよい。
【0239】
ステップ2716において、映像プロセッサは、ビットストリームを生成し、領域ベースの順序および一連の符号信号伝達ビットに従って、複数の領域と関連する変換係数の符号を信号送達してよい。いくつかの実装においては、変換ブロックがステップ2706において3つの領域に区分けされたとき、第3の領域の変換係数の符号が、まずビットストリームで信号伝達され、続いて、第1の領域の変換係数の符号、最後に、第2の領域の変換係数の符号がビットストリームで信号伝達される。いくつかの実装においては、変換ブロックがステップ2706において2つの領域に区分けされたとき、第2の領域の変換係数の符号が、まずビットストリームで信号伝達され、続いて、第1の領域の変換係数の符号がビットストリームで信号伝達される。
【0240】
ステップ2716において生成されたビットストリームは、映像フレームの変換ブロックを再構成するために、デコーダに送信されてよい。エリアサイズ閾値が(ステップ2704において)エンコーダにより選択された場合、エリアサイズ閾値も、同様にビットストリームに含められ、デコーダに信号伝達されてよい。
【0241】
図28は、本開示のいくつかの実装に係る、映像デコーダにより実行される、変換係数符号予測のための例示の映像復号方法2800のフローチャートである。方法2800は、映像デコーダ30と関連する映像プロセッサにより実行されてよく、以下に記載するような、ステップ2802~2818を含んでよい。ステップのいくつかは、本明細書において提供される開示を実施するために任意であってよい。さらに、ステップのいくつかは、同時に実施されてもよいし、
図28に示すものとは異なる順序で実施されてもよい。
【0242】
ステップ2802において、映像プロセッサは、変換ブロックの複数の領域と関連する変換係数のコード化されたデータと、一連の符号信号伝達ビットとを含むビットストリームを受け取ってよい。いくつかの実装においては、ビットストリームは、
図27の方法2700などの映像符号化方法を使用して生成されてよい。
【0243】
ステップ2804において、映像プロセッサは、エリアサイズ閾値に基づいて、変換係数符号予測を実施するための符号予測エリアを決定してよい。いくつかの実装においては、エリアサイズ閾値は、エンコーダにより選択され、ビットストリームでデコーダに信号伝達されてよい。いくつかの実装においては、映像プロセッサは、式(22)に従って、変換ブロックの左上の角で符号予測エリアを決定してよい。
【0244】
ステップ2806において、映像プロセッサは、変換ブロックを、符号予測エリアと、少なくとも1つの他の領域とを含む複数の領域に区分け/分割してよい。いくつかの実装においては、変換ブロックは、符号予測エリアの第1の領域と、最大エリアサイズ閾値に等しい幅および高さを有する長方形のエリアを包含し、かつ符号予測エリアの外側である第2の領域と、第1および第2の領域の外側の変換ブロックの残りのエリアをカバーする第3の領域とを含む、3つの領域に区分けされてよい。いくつかの実装においては、変換ブロックは、符号予測エリアの第1の領域と、第1の領域の外側の変換ブロックの残りのエリアをカバーする第2の領域とを含む、2つの領域に区分けされてよい。
【0245】
ステップ2808において、映像プロセッサは、ビットストリームを構文解析し、領域ベースの順序および複数の領域に適用されたスキャン順序に従って、変換ブロックの複数の領域と関連する変換係数のコード化されたデータを取得してよい。いくつかの実装においては、変換ブロックがステップ2806において3つの領域に区分けされたとき、第3の領域の変換係数の符号が、まずビットストリームから読み取られ、続いて、第1の領域の変換係数の符号、最後に、第2の領域の変換係数の符号がビットストリームから読み取られる。いくつかの実装においては、変換ブロックがステップ2806において2つの領域に区分けされたとき、第2の領域の変換係数の符号が、まずビットストリームから読み取られ、続いて第1の領域の変換係数の符号がビットストリームから読み取られる。
【0246】
各領域内で、データは、エンコーダにより適用されたそれぞれのスキャン順序に従って構文解析され、変換係数の符号がコード化される。例えば、変換ブロックがステップ2806において3つの領域に区分けされたとき、第1の領域および第2の領域は水平スキャン順序でスキャンされ、第3の領域は斜めのスキャン順序でスキャンされてよい。別の例として、変換ブロックがステップ2806において2つの領域に区分けされたとき、第1の領域は水平スキャン順序でスキャンされ、第2の領域は斜めのスキャン順序でスキャンされてよい。
【0247】
ステップ2810において、映像プロセッサは、変換ブロックの変換係数を逆量子化してよい。映像プロセッサは、
図3の逆量子化ユニット86によって、量子化変換係数から逆量子化変換係数を生成してよい。映像デコーダ30における変換ブロックの逆量子化変換係数は、映像エンコーダ20における変換ブロックの変換係数に相当してよい。
【0248】
ステップ2812において、映像プロセッサは、符号予測のための符号予測エリアと関連する逆量子化変換係数から、一連の候補変換係数を選択してよい。
【0249】
ステップ2814において、映像プロセッサは、一連の候補変換係数に対する符号を予測してよい。いくつかの実装においては、映像プロセッサは、一連の候補変換係数における候補変換係数の総数に基づいて、一連の候補変換係数に対する符号候補の複数の組み合わせを決定してよい。映像プロセッサは、続いて、テンプレートベースの仮説生成スキームを適用し、符号候補の複数の組み合わせに対する複数の候補仮説を、それぞれ生成してよい。映像プロセッサは、コスト関数に基づいて、複数の候補仮説から最小コストと関連する仮説を選択してよい。映像プロセッサは、選択された仮説と関連する符号候補の組み合わせを、一連の候補変換係数に対する一連の予測符号であると決定してよい。
【0250】
ステップ2816において、映像プロセッサは、一連の予測符号と、ステップ2802において受け取ったビットストリームにおける一連の復号された符号信号伝達ビットとに基づいて、一連の候補変換係数に対する元の符号を推定してよい。
【0251】
例えば、
図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))。グループ#2に対するビットが「0」の値を有するため、(1、0)の値を有するこのグループに対する予測符号が正確である(例えば、予測符号が元の符号と同じである)ことが示され、グループ#2に対する推定された元の符号は、(1、0)であると決定される。続いて、一連の候補変換係数に対する推定された元の符号が、それぞれ(1、0、0、0、1、0)を含む、グループ#0、#1、および#2の推定された元の符号を連結させることにより形成される。上述したように、映像エンコーダは、異なるコンテキストモデルを使用し、予測符号の正確さをコード化してよく、予測符号の修正は、それらのコンテキストモデルに従って適合される。
【0252】
ステップ2818において、映像プロセッサは、一連の候補変換係数に対する推定された元の符号に基づいて、逆量子化変換係数を更新してよい。例えば、映像プロセッサは、一連の候補変換係数に対応する、変換ブロックにおける逆量子化変換係数に対する本当の符号として、推定された元の符号を使用してよい。
【0253】
いくつかの実装においては、逆量子化変換係数が更新された後、映像プロセッサは、逆量子化変換係数に逆方向一次変換および逆方向二次変換を更に適用し、変換ブロックに対応する残差ブロックにおいて残差サンプルを生成してよい。逆方向二次変換は、LFNSTを含む二次変換に対応する。逆方向一次変換は、DCT-II、DCT-V、DCT-VIII、DST-I、DST-IV、DST-VII、または、および恒等変換を含む一次変換に対応する。
【0254】
いくつかの実装においては、一連の候補変換係数に対する一連の符号信号伝達ビットは、映像エンコーダにより、ベクトルベースの符号予測スキームを、映像エンコーダ側において選択された別の一連の候補変換係数に対する別の一連の予測符号に適用し、一連の符号信号伝達ビットを含むビットストリームを生成することにより、映像エンコーダにより生成される。他の一連の候補変換係数は、映像デコーダ側における一連の候補変換係数に対応する、映像エンコーダ側における変換係数である。
【0255】
いくつかの実装においては、ベクトルベースの符号予測スキームを、他の一連の候補変換係数に対する他の一連の予測符号に適用することは、他の一連の候補変換係数を候補変換係数の複数のグループに区分けすることと、候補変換係数のグループごとに、候補変換係数のグループの元の符号が候補変換係数のグループの予測符号と同一かどうかに基づいて、候補変換係数のグループに対する1つまたは複数の符号信号伝達ビットを生成することとを更に含む。
【0256】
いくつかの実装においては、候補変換係数のグループに対する1つまたは複数の符号信号伝達ビットを生成することは、候補変換係数のグループの元の符号が候補変換係数のグループの予測符号と同一であることに応じて、ゼロの値のビンを生成することと、ビットストリームに、符号信号伝達ビットとしてビンを追加することとを含む。いくつかの実装においては、候補変換係数のグループに対する1つまたは複数の符号信号伝達ビットを生成することは、候補変換係数のグループの元の符号が候補変換係数のグループの予測符号と同一でないことに応じて、1の値のビンを生成することと、候補変換係数のグループの予測符号の対応する正確さを知らせるための一連の追加的なビンを生成することと、ビットストリームに、符号信号伝達ビットとしてビンおよび一連の追加的なビンを追加することとを含む。
【0257】
図29は、本開示のいくつかの実装に係る、ユーザーインターフェース2950と接続した計算環境2910を示す。計算環境2910は、データ処理サーバの一部とすることができる。例えば、上で開示された、映像エンコーダ20または映像デコーダ30における映像プロセッサは、計算環境2910を使用して実装できる。計算環境2910は、プロセッサ2920と、メモリ2930と、入力/出力(I/O)インターフェース2940とを備える。
【0258】
プロセッサ2920は、典型的に、表示、データ取得、データ通信、および画像処理と関連する操作など、計算環境2910の操作全体を制御する。プロセッサ2920は、1つまたは複数のプロセッサを備え、指示を実行し、上述した方法におけるステップの全てまたはいくつかを実施してよい。また、プロセッサ2920は、プロセッサ2920と他のコンポーネントとの間の相互作用を促進する1つまたは複数のモジュールを備えてよい。プロセッサ2920は、中央処理装置(Central Processing Unit(CPU))、マイクロプロセッサ、シングルチップマシン、グラフィカルプロセッシングユニット(Graphical Processing Unit(GPU))などであってよい。
【0259】
メモリ2930は、さまざまなタイプのデータを保存し、計算環境2910の操作をサポートするように構成されている。メモリ2930は、所定のソフトウェア2932を含んでよい。このようなデータの例としては、映像データセット、画像データなど、計算環境2910において操作される任意のアプリケーションまたは方法に対する指示が挙げられる。メモリ2930は、スタティックランダムアクセスメモリ(Static Random Access Memory(SRAM))、電気的に消去可能なプログラマブル読み出し専用メモリ(Electrically Erasable Programmable Read-Only Memory(EEPROM))、消去可能プログラマブル読み出し専用メモリ(Erasable Programmable Read-Only Memory(EPROM))、プログラマブル読み出し専用メモリ(Programmable Read-Only Memory(PROM))、読み出し専用メモリ(Read-Only Memory(ROM))、磁気メモリ、フラッシメモリ、磁気もしくは光ディスクなど、任意のタイプの揮発性または非揮発性メモリデバイス、またはそれらの組み合わせを使用することにより実装されてよい。
【0260】
I/Oインターフェース2940は、プロセッサ2920と、キーボード、クリックホイール、ボタンなどの周辺インターフェースモジュールとの間のインターフェースを提供する。ボタンには、限定されないが、ホームボタン、スキャン開始ボタン、およびスキャン停止ボタンが含まれてよい。I/Oインターフェース2940は、エンコーダおよびデコーダと接続できる。
【0261】
いくつかの実装においては、例えば、メモリ2930に、計算環境2910におけるプロセッサ2920により実行可能な、上述した方法を実施するための、複数のプログラムを含む非一時的コンピュータ読み取り可能な記憶媒体も提供される。1例においては、複数のプログラムを、計算環境2910におけるプロセッサ2920により実行し、符号化された映像情報(例えば、符号化された映像フレームを表す映像ブロック、および/または関連した1つまたは複数の構文要素、など)を含むビットストリームまたはデータストリームを(例えば、
図2における映像エンコーダ20から)受け取ってもよいし、複数のプログラムを、計算環境2910におけるプロセッサ2920により実行し、受け取ったビットストリームまたはデータストリームに従って、上述した復号方法を実施してもよい。別の例においては、複数のプログラムを、計算環境2910におけるプロセッサ2920により実行し、上述した符号化方法を実施し、映像情報(例えば、映像フレームを表す映像ブロック、および/または関連した1つまたは複数の構文要素、など)をビットストリームまたはデータストリームに符号化してもよいし、複数のプログラムを、計算環境2910におけるプロセッサ2920により実行し、ビットストリームまたはデータストリームを(例えば、
図3における映像デコーダ30に)送信してもよい。代替的に、非一時的コンピュータ読み取り可能な記憶媒体は、映像データを復号する際にデコーダ(例えば、
図3における映像デコーダ30)により使用するための、例えば、上述した符号化方法を使用して、エンコーダ(例えば、
図2における映像エンコーダ20)により生成された符号化された映像情報(例えば、符号化された映像フレームを表す映像ブロック、および/または関連した1つまたは複数の構文要素、など)を含むビットストリームまたはデータストリームを中に保存していてよい。非一時的コンピュータ読み取り可能な記憶媒体は、例えば、ROM、ランダムアクセスメモリ(Random Access Memory(RAM))、CD-ROM、磁気テープ、フロッピーディスク、光学データ記憶装置などであってよい。
【0262】
いくつかの実装においては、1つまたは複数のプロセッサ(例えば、プロセッサ2920)と、1つまたは複数のプロセッサにより実行可能な複数のプログラムを中に保存した非一時的コンピュータ読み取り可能な記憶媒体またはメモリ2930とを備える計算装置も提供され、1つまたは複数のプロセッサは、複数のプログラムを実行する際、上述した方法を実施するように構成されている。
【0263】
いくつかの実装においては、例えば、メモリ2930に、計算環境2910におけるプロセッサ2920により実行可能な、上述した方法を実施するための、複数のプログラムを含むコンピュータプログラム製品も提供される。例えば、コンピュータプログラム製品は、非一時的コンピュータ読み取り可能な記憶媒体を含んでよい。
【0264】
いくつかの実装においては、計算環境2910は、上記の方法を実施するための、1つまたは複数のASI、DSP、デジタル信号処理装置(Digital Signal Processing Device(DSPD))、プログラム可能論理回路(Programmable Logic Device(PLD))、FPGA、GPU、コントローラ、マイクロコントローラ、マイクロプロセッサ、または他の電子部品により実装されてよい。
【0265】
本開示の説明は、説明のために提示されており、網羅的である意図、または本開示に制限される意図はない。多くの修正、変更、および代替的な実装は、先の説明および関連した図面に提示された教示の利点を有する当業者には明らかであろう。
【0266】
特に明記しない限り、本開示に係る方法のステップの順序は、例示的であることのみを意図しており、本開示に係る方法のステップは、上で具体的に説明した順序に限定されず、実際の条件に従って変更されてもよい。加えて、本開示に係る方法のステップの少なくとも1つは、実際の要件に従って、調整され、組み合わせられ、または削除されてよい。
【0267】
開示の原理を説明するため、かつ他の当事者が、さまざまな実装の開示を理解し、基礎となる原理およびさまざまな実装が、考えられる特定の用途に適するようにさまざまな修正を伴い、最善に利用できるようにするため、例が選択され、説明された。そのため、本開示の範囲は、開示された実装の特定の例に制限されず、修正および他の実装も本開示の範囲内に含めることを意図していることを理解されたい。
【国際調査報告】