(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-06-07
(45)【発行日】2024-06-17
(54)【発明の名称】コンテキスト適応変換セット
(51)【国際特許分類】
H04N 19/12 20140101AFI20240610BHJP
H04N 19/157 20140101ALI20240610BHJP
H04N 19/46 20140101ALI20240610BHJP
【FI】
H04N19/12
H04N19/157
H04N19/46
(21)【出願番号】P 2022538768
(86)(22)【出願日】2021-06-29
(86)【国際出願番号】 US2021039665
(87)【国際公開番号】W WO2022055599
(87)【国際公開日】2022-03-17
【審査請求日】2022-06-22
(32)【優先日】2020-09-10
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2020-09-11
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2021-06-22
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】520353802
【氏名又は名称】テンセント・アメリカ・エルエルシー
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】ジャオ,シン
(72)【発明者】
【氏名】クリシュナン,マドゥー ペリンガーサリー
(72)【発明者】
【氏名】リィウ,シャン
【審査官】田中 純一
(56)【参考文献】
【文献】特表2018-530245(JP,A)
【文献】国際公開第2019/185883(WO,A1)
【文献】特表2021-519546(JP,A)
【文献】米国特許出願公開第2021/0084301(US,A1)
【文献】特表2012-516625(JP,A)
【文献】米国特許出願公開第2011/0268183(US,A1)
【文献】特表2019-534624(JP,A)
【文献】米国特許出願公開第2018/0098081(US,A1)
【文献】特表2018-524923(JP,A)
【文献】米国特許出願公開第2018/0199037(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
H04N 7/12
H04N 19/00 - 19/98
(57)【特許請求の範囲】
【請求項1】
少なくとも1つのプロセッサによって実行される方法であって、
コーディングされたビットストリームを受信するステップと、
前記コーディングされたビットストリームから画像のブロックをデコードするステップと、を含み、
前記デコードするステップは、
1つ以上の、先行してデコードされた近接ブロックからの、又は先行してデコードされた画像からの少なくとも1つの近接する再構成されたサンプルに基づいて変換セットを選択するステップと、
前記変換セットからの変換を使用して前記ブロックの係数を逆変換するステップと、を含
み、
前記変換セットを選択するステップは、
イントラ予測モード又はインター予測モードのコーディングされた情報に基づいて変換セットのグループから変換セットのサブグループを選択するステップと、
前記サブグループから変換セットを選択するステップと、を含み、
前記サブグループから変換セットを選択するステップは、前記イントラ予測モード又は前記インター予測モードのタイプ、ブロックサイズ、前記ブロックの予測ブロックサンプル又は前記少なくとも1つの近接する再構成されたサンプルに基づいて前記変換セットを選択するステップを含み、
前記方法はさらに、前記コーディングされたビットストリームにおいてシグナリングされたインデックス値に基づいて前記変換セットから変換候補を選択するステップを含む、
方法。
【請求項2】
前記サブグループから前記変換セットを選択するステップは、
前記イントラ予測モード又は前記インター予測モードのタイプの前記コーディングされた情報に基づ
いて前記変換セットを選択するステップを含む、
請求項1記載の方法。
【請求項3】
前記サブグループから前記変換セットを選択するステップは、前記インター予測モードのタイプの前記コーディングされた情報
に基づいて前記変換セットを選択するステップを含む、
請求項2記載の方法。
【請求項4】
前記少なくとも1つの近接する再構成されたサンプルは、前記1つ以上の、先行してデコードされた近接するブロックから再構成されたサンプルを含む、
請求項1記載の方法。
【請求項5】
前記変換セットのグループは二次変換カーネルのみを含む、
請求項1記載の方法。
【請求項6】
前記二次変換カーネルは非分離可能である、
請求項
5記載の方法。
【請求項7】
前記変換セットの選択は、ニューラルネットワークへの前記少なくとも1つの近接する再構成されたサンプルの情報を入力するステップ、及び、前記ニューラルネットワークからの出力であるインデックスに基づいて前記変換セットを識別するステップ、によって実行される、
請求項1記載の方法。
【請求項8】
前記変換セットは二次変換である、
請求項1記載の方法。
【請求項9】
少なくとも1つのプロセッサによって実行される方法であって、
前記方法は画像のブロックをエンコードするステップを含み、
前記エンコードするステップは、
1つ以上の、先行してエンコードされた近接ブロックからの、又は先行してエンコードされた画像からの少なくとも1つの近接する再構成されたサンプルに基づいて変換セットを選択するステップと、
前記変換セットからの変換を使用して前記ブロックの係数を変換するステップと、を含み、
前記変換セットを選択するステップは、
イントラ予測モード又はインター予測モードのコーディングされた情報に基づいて変換セットのグループから変換セットのサブグループを選択するステップと、
前記サブグループから変換セットを選択するステップと、を含み、
前記サブグループから変換セットを選択するステップは、前記イントラ予測モード又は前記インター予測モードのタイプ、ブロックサイズ、前記ブロックの予測ブロックサンプル又は前記少なくとも1つの近接する再構成されたサンプルに基づいて前記変換セットを選択するステップを含み、
前記方法はさらに、前記変換セットから変換候補を選択するステップを含む、
方法。
【請求項10】
コンピュータプログラムコードを格納するように構成された少なくとも1つのメモリと、
前記コンピュータプログラムコードにアクセスし、前記コンピュータプログラムコードによって命令されるように動作するように構成された少なくとも1つのプロセッサと、
を備えるシステムであって、
前記コンピュータプログラム
コードは、
前記少なくとも1つのプロセッサに、請求項1乃至
9いずれか1項記載の方法を実施させるように構成されている、
システム。
【請求項11】
少なくとも1つのプロセッサによって実行されると、前記少なくとも1つのプロセッサに、受信されたコーディングビットストリームからの画像のブロックをデコードさせるように構成されたコンピュータ命令
を含むプログラムであって、前記コンピュータ命令は:
前記少なくとも1つのプロセッサに請求項1乃至
8いずれか1項記載の方法を実行させるように構成されている、プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本出願は、2020年9月10日に出願された米国仮出願第63/076,817号及び2020年9月11日に出願された米国仮出願第63/077,381号、に基づく優先権を主張し、それらの開示の全体が参照により本明細書に組み込まれている。
【0002】
本開示の実施形態は、セットの高度なビデオコーディング技術、より具体的には、一次変換セット及び二次変換セット選択スキームに関する。
【背景技術】
【0003】
AOMedia Video 1 (AV1)は、インターネットを介したビデオ伝送用に設計されたオープンビデオコーディングフォーマットである。これは、半導体企業、ビデオオンデマンドプロバイダー、ビデオコンテンツプロデューサー、ソフトウェア開発会社、およびWebブラウザーベンダーを含む、2015年に設立されたコンソーシアムであるAlliance for Open Media(AOMedia)によってVP9の後継として開発された。AV1プロジェクトのコンポーネントの多くは、アライアンスメンバーによるこれまでの研究努力から調達された。個々のコントリビュータは、数年前に実験的なテクノロジープラットフォームを開始した:Xiph/MozillaのDaalaは2010年にコードを公開し、Googleの実験的なVP9進化プロジェクトVP10は2014年9月12日に発表され、CiscoのThorは2015年8月11日に公開された。VP9のコードベースに基づいて、AV1には追加の技術が組み込まれており、そのいくつかはこれらの実験的フォーマットで開発された。AV1参照コーデックのバージョン0.1.0の最初のバージョンは、2016年4月7日に公表された。アライアンスは、2018年3月28日に、リファレンス、ソフトウェアベースのエンコーダ及びデコーダとともに、AV1ビットストリーム仕様のリリースを発表した。2018年6月25日に、検証済みのバージョン1.0.0の仕様がリリースされた。2019年1月8日に「AV1 Bitstream & Decoding Process Specification」がリリースされ、Errata 1のバリデーション済みバージョン1.0.0である。AV1ビットストリーム仕様は、参照ビデオコーデックを含む。「AV1 Bitstream & Decoding Process Specification」(Version 1.0.0 with Errata 1)、The Alliance for Open Media (Alliance for Open Media)(2019年1月8日)は、参照によりその全体が本書に組み込まれる。
【0004】
高効率ビデオコーディング(High Efficiency Video Coding:HEVC)規格は、ITU-Tビデオコーディングエキスパートグループ(Video Coding Experts Group:VCEG)とISO/IEC動画エキスパートグループ(Moving Picture Experts Group:MPEG)標準化団体によって共同で開発されている。HEVC規格を開発するために、これらの2つの標準化組織は、JCT-VC(Joint Collaborative Team on Video Coding)と呼ばれるパートナーシップの中で協力している。HEVC規格の初版は、2013年1月に完成し、ITU-TとISO/IECの両方で発行された整列されたテキストになった。その後、標準を拡張して、精度とカラーフォーマットのサポートが強化された拡張範囲の使用、スケーラブルなビデオコーディング、3D /ステレオ/マルチビュービデオコーディングを含む、いくつかの追加のアプリケーションシナリオをサポートするための追加作業が組織された。ISO/IECではHEVC規格がMPEG-H Part 2(ISO/IEC 23008-2)となり、ITU-TではITU-T勧告H.265となった。HEVC規格「SERIES H: AUDIOVISUAL AND MULTIMEDIA SYSTEMS, Infrastructure of Audiovision Services - Coding of moving video」、ITU-T H.265, International Telecommunication Union (2015年4月)の仕様は、参照により、本願明細書において組み込まれる。
【0005】
ITU-T VCEG (Q6/16)及びISO/IEC MPEG (JTC 1/SC 29/WG 11)は、2013年(バージョン1)、2014年(バージョン2)、2015年(バージョン3)、2016年(バージョン4)にH.265/HEVC (High Efficiency Video Coding)規格を公表した。それ以来、圧縮能力においてHEVCを大幅に上回る性能を持つ将来のビデオコーディング技術の標準化の潜在的ニーズを研究してきた。2017年10月には、HEVC (CfP)を超える能力を有する映像圧縮に関する提案を共同で募集した。2018年2月15日までに、標準ダイナミックレンジ(SDR)上の22のCfP応答、高ダイナミックレンジ(HDR)上の12のCfP応答、及び360のビデオカテゴリー上の12のCfP応答をそれぞれ提出した。2018年4月には、122 MPEG /10合同映像探査チーム-合同映像エキスパートチーム(JVET)会合において、受け取ったCfP回答の全てが評価された。JVETは慎重に評価し、HEVCを越えて次世代ビデオコーディングの標準化、すなわち、いわゆるVVC(Versatile Video Coding)を正式に開始した。VVC規格「Versatile Video Coding (Draft 7)」、JVET-P2001-vE、Joint Video Experts Team (2019年10月)の仕様は、その全体が参照により本明細書に組み込まれている。VVC規格「Versatile Video Coding (Draft 10)」、JVET-S2001-vE、Joint Video Experts Team (2020年7月)の別の仕様は、その全体が参照により本明細書に組み込まれている。
【発明の概要】
【0006】
実施形態によれば、近接する再構成されたサンプルを使用する一次変換セット及び二次変換セットの選択スキームが提供される。実施形態によれば、画像及びビデオ圧縮のためのニューラルネットワークベースの変換セット選択スキームが提供される。
【0007】
1つ以上の実施形態によれば、少なくとも1つのプロセッサによって実行される方法が提供される。この方法は、コーディングされたビットストリームを受信するステップと、コーディングされたビットストリームから画像のブロックをデコードするステップとを含む。デコードするステップは、1つ以上の、先行してデコードされた近接ブロックから又は先行してデコードされた画像から少なくとも1つの近接する再構成されたサンプルに基づいて変換セットを選択するステップと、変換セットからの変換を使用してブロックの係数を逆変換するステップと、を含む。
【0008】
1つ以上の実施形態によれば、変換セットを選択するステップは、さらに、予測モードのコーディングされた情報に基づく。
【0009】
一実施形態によれば、コーディングされた情報はインター予測モードのものである。
【0010】
一実施形態によれば、変換セットを選択するステップは:第1コーディング情報に基づいて変換セットのグループから変換セットのサブグループを選択するステップと;サブグループから変換セットを選択するステップと;を含む。
【0011】
一実施形態によれば、サブグループから変換セットを選択するステップは、第2コーディング情報に基づいて変換セットを選択するステップを含み、方法はさらに、コーディングされたビットストリーム内でシグナリングされたインデックス値に基づいて変換セットから変換候補を選択するステップを含む。
【0012】
一実施形態によれば、少なくとも1つの近接する再構成サンプルは、1つ以上の、先行してデコードされた近接するブロックから再構成されたサンプルを含む。
【0013】
一実施形態によれば、変換セットを選択するステップは、変換セットのグループから変換セットを選択するステップを含み、変換セットのグループは二次変換カーネルのみを含む。
【0014】
一実施形態によれば、第2変換カーネルは非分離可能(non-separable)である。
【0015】
一実施形態によれば、変換セットを選択するステップは、ニューラルネットワークに少なくとも1つの近接する再構成サンプルの情報を入力するステップと、ニューラルネットワークからの出力であるインデックスに基づいて変換セットを識別するステップと、によって実行される。
【0016】
一実施形態によれば、変換セットは二次変換である。
【0017】
1つ以上の実施形態によれば、システムが提供される。システムは、コンピュータプログラムコードを格納するように構成された少なくとも1つのメモリと、プログラムコードにアクセスし、コンピュータプログラムコードによって命令されるように動作するように構成された少なくとも1つのプロセッサと、を備え、コンピュータプログラムコードは、少なくとも1つのプロセッサに、受信されたコーディングされたビットストリームから画像のブロックをデコードさせるように構成されたデコードコードを含む。デコードコードは、少なくとも1つのプロセッサに、1つ以上の、先行してデコードされた近接ブロックから又は先行してデコードされた画像から少なくとも1つの近接する再構成されたサンプルに基づいて変換セットを選択させるように構成された変換セット選択コードと、少なくとも1つのプロセッサに、変換セットからの変換を使用してブロックの係数を逆変換させるように構成された変換コードと、
を含む。
【0018】
一実施形態によれば、変換セットは、さらに予測モードのコーディング情報に基づいて選択されたものである。
【0019】
一実施形態によれば、コーディング情報はインター予測モードのものである。
【0020】
一実施形態によれば、変換セット選択コードは、少なくとも1つのプロセッサに、第1コーディング情報に基づいて前記変換セットのグループから変換セットのサブグループを選択させ、サブグループから変換セットを選択させる
【0021】
一実施形態によれば、変換セット選択コードは、少なくとも1つのプロセッサに、第2コーディング情報に基づいて変換セットを選択させるように構成されており、デコードコードはさらに、少なくとも1つのプロセッサに、コーディングされたビットストリーム内でシグナリングされたインデックス値に基づいて変換セットから変換候補を選択させるように構成された変換選択コードを含む。
【0022】
一実施形態によれば、少なくとも1つの近接する再構成サンプルは、1つ以上の、先行してデコードされた近接するブロックから再構成されたサンプルを含む。
【0023】
一実施形態によれば、変換セット選択コードは、変換セットのグループから変換セットを選択するように構成されており、変換セットのグループは二次変換カーネルのみを含む。
【0024】
一実施形態によれば、第2変換カーネルは非分離可能である。
【0025】
一実施形態によれば、変換セット選択コードは、少なくとも1つのプロセッサに、ニューラルネットワークに少なくとも1つの近接する再構成サンプルの情報を入力させ、ニューラルネットワークからの出力であるインデックスに基づいて変換セットを識別させる、ように構成されている。
【0026】
1つ以上の実施形態によれば、コンピュータ命令を格納する非一時的コンピュータ可読媒体が提供される。コンピュータコードは、少なくとも1つのプロセッサによって実行されると、前記少なくとも1つのプロセッサに、受信されたコーディングビットストリームからの画像のブロックを:1つ以上の、先行してデコードされた近接ブロックから又は先行してデコードされた画像から少なくとも1つの近接する再構成されたサンプルに基づいて変換セットを選択するステップと、変換セットからの変換を使用してブロックの係数を逆変換するステップと、によってデコードさせるように構成されている。
【図面の簡単な説明】
【0027】
開示された主題のさらなる特徴、性質、及び様々な利点は、以下の詳細な説明及び添付の図面からより明らかになるであろう。
【
図1】
図1は、一実施形態による通信システムの簡略ブロック図を模式的に示す図である。
【
図2】
図2は、一実施形態による通信システムの簡略ブロック図を模式的に示す図である。
【
図3】
図3は、一実施形態によるデコーダの簡略ブロック図を模式的に示す図である。
【
図4】
図4は、一実施形態によるエンコーダの簡略ブロック図を模式的に示す図である。
【
図5A】
図5Aは、VP9の第1例示的パーテション構造を示す図である。
【
図5B】
図5Bは、VP9の第2例示的パーテション構造を示す図である。
【
図5C】
図5Cは、VP9の第3例示的パーテション構造を示す図である。
【
図5D】
図5Dは、VP9の第4例示的パーテション構造を示す図である。
【
図6A】
図6Aは、AV1の第1例示的パーテション構造を示す図である。
【
図6B】
図6Bは、AV1の第2例示的パーテション構造を示す図である。
【
図6C】
図6Cは、AV1の第3例示的パーテション構造を示す図である。
【
図6D】
図6Dは、AV1の第4例示的パーテション構造を示す図である。
【
図6E】
図6Eは、AV1の第5例示的パーテション構造を示す図である。
【
図6F】
図6Fは、AV1の第6例示的パーテション構造を示す図である。
【
図6G】
図6Gは、AV1の第7例示的パーテション構造を示す図である。
【
図6H】
図6Hは、AV1の第8例示的パーテション構造を示す図である。
【
図6I】
図6Iは、AV1の第9例示的パーテション構造を示す図である。
【
図6J】
図6Jは、AV1の第10例示的パーテション構造を示す図である。
【
図7】
図7は、AV1における8つの公称角度を示す図である。
【
図8】
図8は、現在ブロックとサンプルを示す図である。
【
図9】
図9は、再帰的イントラフィルタリングモードの例を示す図である。
【
図10】
図10は、コーディングブロックユニットに近接する参照ラインを示す図である。
【
図11】
図11は、AV1ハイブリッド変換カーネル及びそれらの利用可能性の表である。
【
図12】
図12は、低周波非分離可能変換プロセスの図である。
【
図14】
図14は、カーネル及び画像の二次元コンボリューションを説明するための図である。
【
図15】
図15は、画像のパッチの最大プーリングを示すための図である。
【
図17】
図17は、畳み込みニューラルネットワークフィルタアーキテクチャの一例を示す図である。
【
図18】
図18は、畳み込みニューラルネットワークフィルタアーキテクチャの一例を示す図である。
【
図19】
図19は、高密度残差ユニット構造の一例を示す図である。
【
図22】
図22は、イントラ予測モードから変換セットインデックスへのマッピングの表である。
【
図24】
図24は、本開示の一実施例によるデコーダの概略図である。
【
図25】
図25は、実施形態を実施するのに適したコンピュータシステムの図である。
【発明を実施するための形態】
【0028】
本開示において、ブロックという用語は、予測ブロック、コーディングブロック、又はコーディングユニット(CU)として解釈され得る。ここでの「ブロック」という用語は、変換ブロックを指すためにも使用され得る。
【0029】
本開示において、用語「変換セット(transform set)」は、変換カーネル(又は候補)オプションのグループを指す。変換セットは一つ以上の変換カーネル(又は候補)オプションを含むことがある。本開示の実施形態によれば、1つ以上の変換オプションが利用可能である場合、インデックスは、変換セット内の変換オプションのうちのいずれが現在のブロックに適用されるかを示すためにシグナリングされ得る。
【0030】
本開示において、用語「予測モードセット」は、予測モードオプションのグループを指す。予測モードセットは、複数の予測モードオプションを含み得る。本開示の実施形態によれば、複数の予測モードオプションが利用可能である場合に、インデックスは、予測モードセットにおける予測モードオプションのうちの1つが予測を実行するために現在のブロックに適用されるものを示すために、さらにシグナリングされ得る。
【0031】
本開示において、用語「近接する再構成されたサンプルセット(neighboring reconstructed samples set)」は、先行してデコードされた近接するブロックから再構成されたサンプル、又は先行してデコードされた画像内の再構成されたサンプルのグループを指す。
【0032】
本開示において、「ニューラルネットワーク」という用語は、「ビデオコーディングのための深層学習」に関して本明細書で説明されるように、1つまたは複数の層を有するデータ処理構造の一般的な概念を指す。本開示の実施形態によれば、任意のニューラルネットワークは、実施形態を実施するように構成され得る。
【0033】
図1は、本開示の一実施形態による通信システム(100)の簡略化されたブロック図を示す。システム(100)は、ネットワーク(150)を介して相互接続された少なくとも2つの端末(110、120)を含み得る。データの一方向伝送のために、第1端末(110)は、ネットワーク(150)を介して他の端末(120)に伝送するために、ローカル位置でビデオデータをコーディングし得る。第2端末(120)は、ネットワーク(150)から他方の端末のコーディングされたビデオデータを受信し、コーディングされたデータをデコードし、復元されたビデオデータを表示することができる。一方向性データ伝送は、メディア提供アプリケーション等において一般的であり得る。
【0034】
図1は、例えば、テレビ会議中に発生し得るコーディングビデオの双方向伝送をサポートするために設けられた第2端末ペア(130、140)を示す。データの双方向伝送のために、各端末(130, 140)は、ネットワーク(150)を介して他方の端末に伝送するために、ローカル位置で捕捉されたビデオデータをコーディングし得る。各端末(130,140)はまた、他の端末によって送信されたコーディングビデオデータを受信することができ、コーディングビデオデータをデコードすることができ、復元されたビデオデータをローカル表示装置に表示することができる。
【0035】
図1において、端末(110~140)は、サーバ、パーソナルコンピュータ、及びスマートフォン、及び/又は任意の他のタイプの端末として示されることができる。例えば、端末(110~140)は、ラップトップコンピュータ、タブレットコンピュータ、メディアプレーヤ、及び/又は専用のテレビ会議装置であることができる。ネットワーク(150)は、例えば、有線及び/又は無線通信ネットワークを含む、端末(110~140)間でコーディングされたビデオデータを伝達する任意の数のネットワークを表す。通信ネットワーク(150)は、回線交換及び/又はパケット交換チャネル内のデータを交換することができる。代表的なネットワークには、テレコミュニケーションネットワーク、ローカルエリアネットワーク、ワイドエリアネットワーク及び/又はインターネットが含まれる。本説明の目的のためには、以下に説明しない限り、ネットワーク(150)のアーキテクチャ及びトポロジーは本発明の動作には重要ではない。
【0036】
図2は、開示された主題のアプリケーションの例として、ストリーミング環境におけるビデオエンコーダ及びデコーダの配置を示す。開示された主題は、例えば、ビデオ会議、デジタルTVや、CD、DVD、メモリースティック等を含むデジタルメディアへの圧縮ビデオの保存等を含む、他のビデオ対応アプリケーションに等しく適用することができる。
【0037】
図2に示すように、ストリーミングシステム(200)は、ビデオソース(201)及びエンコーダ(203)を含むことができるキャプチャサブシステム(213)を含み得る。ビデオソース(201)は、例えば、デジタルカメラであり得、非圧縮ビデオサンプルストリーム(202)を生成するように構成され得る。非圧縮ビデオサンプルストリーム(202)は、エンコードされたビデオビットストリームと比較した場合に、高いデータボリュームを提供することができ、カメラ(201)に結合されたエンコーダ(203)によって処理することができる。エンコーダ(203)は、ハードウェア、ソフトウェア、又はそれらの組み合わせを含むことができ、以下により詳細に説明されるように、開示された主題の態様を可能にし、又は実現する。エンコードされたビデオビットストリーム(204)は、サンプルストリームと比較した場合、より低いデータボリュームを含むことができ、将来の使用のためにストリーミングサーバ(205)に格納することができる。1つ以上のストリーミングクライアント(206)は、ストリーミングサーバ(205)にアクセスして、エンコードされたビデオビットストリーム(204)のコピーであり得るビデオビットストリーム(209)を検索することができる。
【0038】
実施形態において、ストリーミングサーバ(205)はまた、メディアアウェアネットワーク要素(MANE)として機能し得る。例えば、ストリーミングサーバ(205)は、潜在的に異なるビットストリームを1つ以上のストリーミングクライアント(206)に合わせて調整するために、エンコードされたビデオビットストリーム(204)をプルーニングするように構成され得る。実施形態において、MANEは、ストリーミングシステム(200)内のストリーミングサーバ(205)から別々に提供され得る。
【0039】
ストリーミングクライアント(206)は、ビデオデコーダ(210)及びディスプレイ(212)を含むことができる。ビデオデコーダ(210)は、例えば、エンコードされたグビデオビットストリーム(204)の受信コピーであるビデオビットストリーム(209)をデコードし、ディスプレイ(212)又は他のレンダリングデバイス(図示せず)上でレンダリング可能な送信ビデオサンプルストリーム(211)を生成することができる。いくつかのストリーミングシステムでは、ビデオビットストリーム(204、209)は、特定のビデオコーディング/圧縮標準に従ってエンコードされることができる。このような標準の例としては、ITU-T勧告H.265が挙げられるが、これに限定されるものではない。多用途ビデオコーディング(Versatile Video Coding:VCC)として知られるビデオコーディング規格は開発中である。本開示の実施形態は、VVCに関連して使用され得る。
【0040】
図3は、本開示の一実施形態による、ディスプレイ(212)に取り付けられたビデオデコーダ(210)の機能ブロック図の一例を示す。
【0041】
ビデオデコーダ(210)は、チャネル(312)、受信器(310)、バッファメモリ(315)、エントロピデコーダ/パーサ(320)、スカラ/逆変換ユニット(351)、イントラ予測ユニット(352)、モーション補償予測ユニット(353)、アグリゲータ(355)、ループフィルタユニット(356)、参照画像メモリ(357)、及び現在画像メモリ(357)を含み得る。少なくとも1つの実施形態では、ビデオデコーダ(210)は、集積回路、一連の集積回路、及び/又は他の電子回路を含むことができる。ビデオデコーダ(210)はまた、関連するメモリを備えた1つ以上のCPU上で実行されるソフトウェアで部分的又は完全に実施され得る。
【0042】
この実施形態及び他の実施形態では、受信器(310)は、1つのコーディングビデオシーケンスがデコーダ(210)によってデコードされるべき、1つ以上のコーディングビデオシーケンスを受信することができ、各コーディングビデオシーケンスのデコードは、他のコーディングビデオシーケンスから独立している。コーディングされたビデオシーケンスは、チャネル(312)から受信することができ、このチャネルは、エンコードされたビデオデータを格納するストレージデバイスへのハードウェア/ソフトウェアリンクであり得る。受信器(310)は、エンコードされたビデオデータを、他のデータ、例えばコーディングされたオーディオデータ及び/又は補助的なデータストリームと共に受信することができ、これらのデータは、それぞれのエンティティ(図示せず)を使用して転送され得る。受信器(310)は、コーディングされたビデオシーケンスを他のデータから分離することができる。ネットワークジッタに対抗するために、バッファメモリ(315)が、受信器(310)とエントロピデコーダ/パーサ(320)(以後「パーサ」)との間に結合され得る。受信器(310)が、十分な帯域幅及び可制御性のストア/フォワードデバイスから、又は、等同期ネットワーク(isosynchronous network)からデータを受信している場合、バッファ(315)は使用されないか、又は小さい可能性がある。インターネットのようなベストエフォート型パケット網上の使用のために、バッファ(315)は、必要とされることができて、比較的大きくなることができて、適応サイズであることができる。
【0043】
ビデオデコーダ(210)は、コーディングされたビデオシーケンスからシンボル(321)を再構成するためのパーサ(320)を含み得る。これらのシンボルのカテゴリには、例えば、デコーダ(210)の動作を管理するために使用される情報、及び
図2に示すようにデコーダに結合され得るディスプレイ(212)のようなレンダリングデバイスを制御するための潜在的な情報が含まれる。(1つ以上の)レンダリングデバイスの制御情報は、付加拡張情報(SEI)メッセージ又はビデオユーザビリティ情報(VUI)パラメータセットフラグメント(図示せず)の形態であり得る。パーサ(320)は、受信されるコーディングされたビデオシーケンスをパースし/エントロピデコードすることができる。コーディングされたビデオシーケンスのコーディングは、ビデオコーディング技術又は標準に従うことができ、可変長コーディング、ハフマンコーディング、コンテキスト感度を伴う又は伴わない算術コーディングなどを含む原理に従うことができる。パーサ(320)は、グループに対応する少なくとも1つのパラメータに基づいて、ビデオデコーダ内のピクセルのサブグループのうちの少なくとも1つに対するサブグループパラメータのセットを、コーディングされたビデオシーケンスから抽出し得る。サブグループは、画像グループ(GOP)、画像、タイル、スライス、マクロブロック、コーディングユニット(CU)、ブロック、変換ユニット(TU)、予測ユニット(PU)等を含み得る。
【0044】
パーサ(320)はまた、変換係数、量子化パラメータ値、動きベクトル等の情報を、コーディングされたビデオシーケンスから抽出し得る。パーサ(320)は、シンボル(321)を生成するように、バッファ(315)から受信したビデオシーケンスに、エントロピデコード/パース動作を実行し得る。
【0045】
シンボル(321)の再構成は、コーディングされたビデオ画像又はその部分のタイプ(例えば、画像間及び画像内、ブロック間及びブロック内)及び他の要因に応じて、複数の異なるユニットを含むことができる。どのユニットが、どのように含まれているかは、パーサ(320)によってコーディングされたビデオシーケンスからパースされたサブグループ制御情報によって制御されることができる。パーサ(320)と以下の複数ユニットとの間のかかるサブグループ制御情報のフローは、明確さのために図示されていない。
【0046】
すでに述べた機能ブロックの他に、デコーダ(210)は、概念的に、以下に説明するように、いくつかの機能ユニットに分割されることができる。商業的制約の下で動作する実用的な実装では、これらのユニットの多くは互いに密接に相互作用し、少なくとも部分的に互いに統合されることができる。しかしながら、開示された主題を説明するの目的で、以下の機能単位に概念的に細分化することが適切である。
【0047】
1つのユニットは、スケーラ/逆変換ユニット(351)であり得る。スケーラ/逆変換ユニット(351)は、パーサー(320)から(1つ以上の)シンボル(321)として、量子化された変換係数並びに使用する変換、ブロックサイズ、量子化係数、量子化スケーリングマトリクス等を含む制御情報を受信することができるスケーラ/逆変換ユニット(351)は、アグリゲータ(355)に入力可能なサンプル値を含むブロックを出力することができる。
【0048】
いくつかの場合には、スケーラ/逆変換ユニット(351)の出力サンプルは、イントラコーディングされたブロックに関係することができる;すなわち、先行して再構成された画像からの予測情報を使用していないが、現在の画像の、先行して再構成された部分からの予測情報を使用できるブロック。かかる予測情報は、イントラ画像予測ユニット(352)によって提供されることができる。場合によっては、イントラ画像予測ユニット(352)は、現在の画像メモリ(358)から、(部分的に再構成された)現在の画像からフェッチされた周囲のすでに再構成された情報を使用して、再構成中のブロックと同じサイズ及び形状のブロックを生成する。アグリゲータ(355)は、場合によっては、サンプル毎に、イントラ予測ユニット(352)が生成した予測情報を、スケーラ/逆変換ユニット(351)によって提供される出力サンプル情報に加算する。
【0049】
他の場合には、スケーラ/逆変換ユニット(351)の出力サンプルは、インターコーディングに関係し、潜在的にモーション補償ブロックに関係することができる。かかる場合、動き補償予測ユニット(353)は、予測に使用されるサンプルをフェッチするために参照画像メモリ(357)にアクセスすることができる。ブロックに関連するシンボル(321)にしたがって、フェッチされたサンプルを動き補償した後、これらのサンプルは、アグリゲータ(355)によってスケーラ/逆変換ユニット(351)の出力(この場合は残差サンプル又は残差信号と称される)に追加して、出力サンプル情報を生成できる。動き補償予測ユニット(353)が予測サンプルをフェッチする参照画像メモリ(357)内のアドレスは、動きベクトルによって制御することができる。動きベクトルは、例えば、X、Y、及び参照画像コンポーネントを有することができるシンボル(321)の形態で、動き補償予測ユニット(353)に利用可能であり得る。動き補償はまた、サブサンプルの正確な動きベクトルが使用されている場合には、参照画像メモリ(357)からフェッチされるようにサンプル値を補間すること、動きベクトル予測機構、等を含むことができる。
【0050】
アグリゲータ(355)の出力サンプルは、ループフィルタユニット(356)内の種々のループフィルタリング技術を受けることができる。ビデオ圧縮技術は、コーディングされたビデオビットストリームに含まれるパラメータによって制御され、パーサー(320)からのシンボル(321)としてループフィルターユニット(356)に利用可能になるインループフィルター技術を含むことができるが、コーディングされた画像又はコーディングされたビデオシーケンスの先行した(デコード順の)部分的なデコード中に取得されたメタ情報に応答することも、先行して再構成及びループフィルタリングされたサンプル値に応答することもできます。
【0051】
ループフィルタユニット(356)の出力は、ディスプレイ(212)等のレンダリングデバイスに出力されることができ、また将来のインター画像予測に使用するために参照画像メモリ(357)に記憶されることができるサンプルストリームであることができる。
【0052】
コーディングされた画像は、一旦完全に再構成されると、将来の予測のための参照画像として使用されることができる。コーディングされた画像が完全に再構成されており、コーディングされた画像が参照画像として(例えば、パーサー(320)によって)識別され、現在の参照画像は、参照画像メモリ(357)の一部となり、新たな現在の画像メモリは、後続のコーディング画像の再構成を開始する前に再割当てされ得る。
【0053】
ビデオデコーダ(210)は、ITU-T Rec.265などの標準に文書化され得る所定のビデオ圧縮技術に従ってデコード動作を実行することができる。コーディングされたビデオシーケンスは、使用されているビデオ圧縮技術または標準によって指定された構文に準拠している可能性があり、その意味で ビデオ圧縮技術ドキュメント又は標準、特にその中のプロファイルドキュメントで指定されているように、ビデオ圧縮技術又は標準の構文に準拠しています。また、一部のビデオ圧縮技術又は標準に準拠するために、コーディングされたビデオシーケンスの複雑さは、ビデオ圧縮技術又は標準のレベルによって定義される範囲内にある場合がある。場合によっては、レベルは、最大画像サイズ、最大フレームレート、最大再構成サンプルレート(例えば、毎秒メガサンプルで測定される)、最大参照画像サイズなどを制限する。レベルによって設定された制限は、場合によっては、仮想参照デコーダ(HRD:Hypothetical Reference Decoder)の仕様と、コーディングされたビデオシーケンスでシグナリングされるHRDバッファ管理のメタデータによってさらに制限され得る。
【0054】
一実施形態では、受信器(310)は、エンコードされたビデオと共に追加の(冗長な)データを受信することができる。追加データは、コーディングされた(複数の)ビデオシーケンスの部分として含まれ得る。追加のデータは、データを適切にデコードするため、及び/又は元のビデオデータをより正確に再構成するために、ビデオデコーダ(210)によって使用され得る。追加のデータは、例えば、時間的、空間的、又はSNR拡張層、冗長スライス、冗長画像、前方エラー補正コードなどの形態であり得る。
【0055】
図4は、本開示の一実施形態による、ビデオ・ソース(201)に関連付けられたビデオ・エンコーダ(203)の機能ブロック図の一例を示す。
【0056】
ビデオエンコーダ(203)は、例えば、ソースコーダ(430)、コーディングエンジン(432)、(ローカル)デコーダ(433)、基準画像メモリ(434)、予測器(435)、送信器(440)、エントロピコーダ(445)、コントローラ(450)、及びチャネル(460)であるエンコーダを含むことができる。
【0057】
エンコーダ(203)は、エンコーダ(203)によってコーディングされるべきビデオ画像を捕捉することができるビデオソース(201)(エンコーダの一部ではない)からビデオサンプルを受信することができる。
【0058】
ビデオソース(201)は、任意の適切なビット深さ(例えば、8ビット、10ビット、12ビット、...)、任意の色空間(例えば、BT.601 Y CrCB、RGB、...)及び任意の適切なサンプリング構造(例えば、Y CrCb 4:2:0、Y CrCb 4:4:4)であり得るデジタルビデオサンプルストリームの形態で、エンコーダ(203)によってコーディングされるソースビデオシーケンスを提供することができる。メディア配信システムにおいて、ビデオソース(201)は、予め準備されたビデオを記憶する記憶デバイスであり得る。ビデオ会議システムでは、ビデオソース(203)は、局所映像情報をビデオシーケンスとして捕捉するカメラであり得る。ビデオデータは、シーケンスで見たときに動きをもたらす複数の個々の画像として提供され得る。画像自体は、ピクセルの空間アレイとして組織化されることができ、各ピクセルは、使用中のサンプリング構造、色空間等に応じて、1つ以上のサンプルを含むことができる。当業者は、ピクセルとサンプルとの関係を容易に理解することができる。以下の説明は、サンプルに焦点を当てている。
【0059】
一実施例によれば、エンコーダ(203)は、リアルタイムで、又はアプリケーションによって必要とされる他の任意の時間制約の下で、ソースビデオシーケンスの画像をコーディングされたビデオシーケンス(443)にコーディングして圧縮することができる。適切なコーディング速度を強制することは、コントローラー(450)の1つの機能である。コントローラ(450)はまた、以下に説明されるように他の機能ユニットを制御することができ、これらのユニットに機能的に結合することができる。カップリングは、明確にするため表されない。コントローラ(450)によって設定されるパラメータは、レート制御関連パラメータ(画像スキップ、量子化器、レート歪み最適化技術のラムダ値、...)、画像サイズ、画像グループレイアウト、最大動きベクトルサーチレンジ等を含むことができる。当業者は、コントローラ(450)の他の機能を、特定のシステム設計のために最適化されたビデオエンコーダ(203)に関連し得るので、容易に識別することができる。
【0060】
いくつかのビデオエンコーダは、当業者が「コーディングループ」として容易に認識できるもので動作する。単純化されすぎた説明として、コーディングループは、ソースコーダ(430)のエンコード部分(コーディングされるべき入力ピクチャ及び(1つ以上の)参照ピクチャに基づいてシンボルを生成する責任がある)と、エンコーダ(203)に埋め込まれた(ローカル)デコーダ(433)とから構成され、これは、シンボルを再構成し、(リモート)デコーダがまた、特定のビデオ圧縮技術においてシンボルとコーディングされたビデオビットストリームとの間の圧縮がロスレスであるときに生成するであろうサンプルデータを生成する。再構成されたサンプルストリームは、参照画像メモリ(434)に入力される。シンボルストリームのデコーディングは、デコーダロケーション(ローカル又はリモート)に依存しないビットイクザクトな結果(bit-exact results)をもたらすので、参照画像メモリ内容もまた、ローカルエンコーダとリモートエンコーダとの間でビットイクザクトである。換言すれば、エンコーダの予測部分は、デコーダがデコード中に予測を使用するときに「見る」のとまったく同じサンプル値を参照画像サンプルとして「見る」。参照画像同期性のこの基本原理(及び、例えばチャンネルエラーのために、同期性が維持できない場合の結果として生じるドリフト)は、当業者に知られている。
【0061】
「ローカル」デコーダ(433)の動作は、「リモート」デコーダ(210)の動作と同じであり得、これは、
図3と関連して詳細に既に上述したとおりである。しかしながら、シンボルが利用可能であり、エントロピコーダ(445)及びパーサ(320)によるコーディングビデオシーケンスへのシンボルのエンコード/デコードがロスレスであるため、チャネル(312)、受信器(310)、バッファ(315)及びパーサ(320)を含むデコーダ(210)のエントロピデコード部分は、ローカルデコーダ(433)に完全には実装されないことがある。
【0062】
この点で行うことができる観察は、デコーダ内に存在するパース/エントロピデコードを除く任意のデコーダ技術であり、対応するエンコーダ内に実質的に同一の機能的形態で存在する必要があり得ることである。このために、開示された主題は、デコーダ動作に集中する。エンコーダ技術の記述は、総合的に記述されたデコーダ技術の逆であり得るため、省略することができる。特定の分野においてのみ、より詳細な説明が必要であり、以下に提供される。
【0063】
その動作の一部として、ソースコーダ(430)は、動き補償予測コーディングを実行することができ、これは、「参照フレーム」として指定されたビデオシーケンスからの1つ以上の、先行してコーディングされたフレームを参照して入力フレームをコーディングする。このようにして、コーディングエンジン(432)は、入力フレームのピクセルブロックと、入力フレームに対する(1つ以上の)予測参照として選択され得る(1つ以上の)参照フレームのピクセルブロックとの間の差分をコーディングする。
【0064】
ローカルビデオデコーダ(433)は、ソースコーダ(430)によって生成されたシンボルに基づいて、参照画像として指定され得るフレームのコーディングされたビデオデータをデコードし得る。コーディングエンジン(432)の動作は、有利には、非可逆プロセスであり得る。コーディングされたビデオデータがビデオデコーダ(
図4には示されていない)でデコードされ得る場合、再構成されたビデオシーケンスは、典型的には、いくつかのエラーを伴うソースビデオシーケンスのレプリカであり得る。ローカルビデオデコーダ(433)は、参照フレーム上でビデオデコーダによって実行され、参照画像メモリ(434)に格納されるべき再構成された参照フレームを生じさせ得るデコード処理を繰り返す。このようにして、エンコーダ(203)は、遠位端ビデオデコーダ(送信エラーがない)によって得られるであろう再構成された参照フレームとして、共通のコンテンツを有する再構成された参照フレームのコピーをローカルに格納することができる。
【0065】
予測器(435)は、コーディングエンジン(432)について予測サーチを実行し得る。すなわち、コーディングされるべき新たなフレームのために、予測器(435)は、参照画像メモリ(434)を検索して、サンプルデータ(候補参照ピクセルブロックとして)又は参照画像動きベクトル、ブロック形状などの特定のメタデータをサーチすることができ、これは、新たな画像の適切な予測参照として役立つ可能性がある。予測器(435)は、適切な予測参照を見出すために、サンプルブロック毎に動作し得る。場合によっては、予測器(435)によって得られたサーチ結果によって決定されるように、入力画像は、参照画像メモリ(434)に記憶された複数の参照画像から引き出された予測参照を有し得る。
【0066】
コントローラ(450)は、例えば、ビデオデータをエンコードするために使用されるパラメータ及びサブグループパラメータの設定を含む、ビデオコーダ(430)のコーディング動作を管理し得る。
【0067】
上述した機能ユニットの全ての出力は、エントロピコーダ(445)におけるエントロピコーディングを受け得る。エントロピコーダは、例えばハフマンコーディング、可変長コーディング、算術コーディング等の当業者に知られた技術にしたがって、シンボルをロスレスに圧縮することによって、種々の機能ユニットによって生成されたシンボルをコーディングされたビデオシーケンスに変換する。
【0068】
送信器(440)は、エントロピコーダー(445)によって作成された(1つ以上の)コーディングビデオシーケンスをバッファリングして、エンコードされたビデオデータを格納し得るストレージデバイスへのハードウェア/ソフトウェアリンクあり得る通信チャネル(460)を介した送信に備えることができる。送信器(440)は、ビデオコーダ(430)からのコーディングされたビデオデータを、例えばコーディングされたオーディオデータ及び/又は補助的なデータストリーム(図示せず)等の、送信されるべき他のデータとともにマージし得る。
【0069】
コントローラ(450)は、エンコーダ(203)の動作を管理し得る。コーディングの間、コントローラ(450)は、各コーディングされた画像に、特定のコーディングされた画像タイプを割り当てることができ、これは、各画像に適用され得るコーディング技術に影響を及ぼし得る。例えば、画像は多くの場合、イントラ画像(I画像)、予測画像(P画像)又は双方向予測画像(B画像)として割り当てられます。
【0070】
イントラ画像(I画像)は、予測の出所としてシーケンスの他の任意のフレームを使用せずにコーディング及びデコードされることができるものであり得る。いくつかのビデオコーデックは、例えば、独立デコーダリフレッシュ(IDR:Independent Decoder Refresh)画像を含む、異なるタイプのイントラ画像を許容する。当業者は、I画像のこれらの変形例、並びにそれらのそれぞれの用途及び特徴を認識している。
【0071】
予測画像(P画像)は、各ブロックのサンプル値を予測するために、最大で1つの動きベクトルと参照インデックスを用いるインター予測又はイントラ予測を使用して、コーディングされ、デコードされ得るものであり得る。
【0072】
双方向(bi-directionally)予測画像(B画像)は、各ブロックのサンプル値を予測するために、最大で2つの動きベクトルと参照インデックスを用いるインター予測又はイントラ予測を使用して、コーディングされ、デコードされ得るものであり得る。同様に、複数の予測画像は、1つのブロックの再構成のために、2つ以上の参照画像及び関連するメタデータを使用することができる。
【0073】
ソース画像は、通常、空間的に複数のサンプルブロック(例えば、4×4、8×8、4×8、又は16×16の各サンプルのブロック)に分割され、ブロック毎にコーディングされる。ブロックは、ブロックのそれぞれの画像に適用されるコーディング割り当てによって決定された、他の(既にコーディングされた)ブロックを参照して予測的にコーディングされ得る。例えば、I画像のブロックは、非予測的にコーディングされるか、又は、それらは、同じ画像の既にコーディングされたブロック(空間予測又はイントラ予測)を参照して予測的にコーディングされ得る。空間予測を経て、又は、1つの、先行してコードかされた参照画像に関する時間予測を経て、P画像のピクセルブロックは、非予測的にコーディングされることができる。B画像のブロックは、1つ又は2つの、先行してコーディングされた参照画像を参照して、空間的予測を介して、又は時間的予測を介して非予測的にコーディングされ得る。
【0074】
ビデオエンコーダ(203)は、所定のビデオコーディング技術又はITU-T Rec.H.265.等の標準にしたがってコーディング動作を実行し得る。その動作において、ビデオコーダ(203)は、入力ビデオシーケンスにおける時間的及び空間的冗長性を活用する予測コーディング動作を含む種々の圧縮動作を実行し得る。したがって、コーディングされたビデオデータは、使用されているビデオコーディング技術又は標準によって指定された構文に準拠し得る。
【0075】
一実施例において、送信器(440)は、エンコードされたビデオとともに付加的なデータを送信することができる。ソースコーダ(430)は、コーディングされたビデオシーケンスの一部としてかかるデータを含むことができる。追加のデータは、時間的/空間的/SNR強調レイヤーや、他の形式の冗長データ、例えば冗長画像及びスライス、補足強化情報(SEI:Supplementary Enhancement Information)メッセージ、視覚ユーザビリティ情報(VUI:Visual Usability Information)パラメータセットフラグメント等を含み得る。
【0076】
[VP9とAV1のコーディングブロックパーテション]
【0077】
図5A~Dのパーテション構造(502)~(508)を参照すると、VP9は、64x64レベルから4x4レベルまでの4ウェイパーテションツリーを使用するが、ブロック8x8にはいくつかの追加の制限がある。
図5DにおいてRとして示されたパーテションは、最低の4×4レベルに達するまで、同じパーテションツリーがより低いスケールで繰り返されるという点で、再帰を意味することに留意されたい。
【0078】
図6A~Jのパーテション構造(511)~(520)を参照する。AV1は、パーテションツリーを10ウェイ構造に拡張するだけでなく、最大サイズ(VP9/AV1用語ではスーパーブロックと称される)を128x128から開始するように拡張する。これには、VP9に存在しなかった4:1/1:4の矩形パーテションが含まれていることに留意されたい。
図6C~Fに示すように、3つのサブパーテションを持つパーテションタイプは”T型”パーテションと称される。矩形パーテションは、さらに細分化することはできない。コーディングブロックのサイズに加えて、ルートノートからの分割深さを示すために、コーディングツリー深さを画定することができる。具体的には、ルートノードのコーディングツリー深さ、例えば128x128を0に設定し、ツリーブロックをさらに分割した後、コーディングツリー深さを1増やす。
【0079】
VP9のように固定された変換ユニットのサイズを実施する代わりに、AV1を使用すると、ルマコーディングブロックを複数のサイズの変換ユニットにパーテション化でき、この変換ユニットは、最大2レベル下がる再帰パーテションで表すことができる。AV1の拡張コーディングブロックパーテションを組み込むために、正方形、2:1/1:2及び4:1/1:4の、4x4から64x64へのサイズ変換がサポートされ得る。クロマブロックでは、可能な最大の変換ユニットのみが許可される。
【0080】
[HEVCのブロックパーテション化]
【0081】
HEVCでは、コーディングツリーユニット(CTU)は、様々なローカル特性に適応するためにコーディングツリーとして示される四分木(QT)構造を使用することによってコーディングユニット(CU)に分割され得る。インター画像(時間的)予測又はイントラ画像(空間的)予測を使用して画像領域をコーディングするかどうかの決定を、CUレベルで行うことができる。各CUはさらに、PU分割タイプにしたがって、1つ、2つ、又は4つの予測ユニット(PU)に分割することができる。1つのPUの内部では、同じ予測プロセスが適用され、関連情報がPUベースでデコーダに送信される。PU分割型に基づく予測プロセスを適用して残留ブロックを取得した後、CUを、CUのコーディングツリーのような別の四分木構造に従って変換ユニット(TU)に分割できる。HEVC構造の重要な特徴の一つは、CU、PU、及びTUを含む多重パーテション概念を有することである。HEVCでは、CU又はTUは正方形の形状のみを有することができ、一方、PUは、インター予測ブロックに対して正方形又は長方形の形状を有することができる。HEVCでは、1つのコーディングブロックをさらに4つの正方形サブブロックに分割し、変換を各サブブロック(すなわち、TU)に対して実行することができる。各TUはさらに再帰的に(四分木分割を用いて)より小さなTUに分割することができ、これは残差四分木(RQT)と呼ばれる。
【0082】
画像境界では、HEVCは、ブロックが画像境界に合うサイズになるまで四分木分割を維持するように、暗黙的四分木分割(implicit quad-tree split)を採用する。
【0083】
[VVCにおけるネスト型マルチタイプツリーコーディングブロック構造を持つ四分木]
【0084】
VVCでは、2進分割・3進分割セグメンテーション構造を用いた、ネストされたマルチタイプツリーを有する四分木が、複数のパーテションユニットタイプの概念を置き換える。つまり、VVCには、最大変換長に対してサイズが大きすぎるCUに必要な場合を除いて、CU、PU、及びTUの概念の分離は含まれず、CUパーテション形状の柔軟性を向上させる。コーディングツリー構造では、CUは正方形又は長方形のいずれかの形をとることができる。コーディングツリーユニット(CTU)は、先ず四次ツリー(別名、四分木)構造によって分割される。その後、四次ツリーリーフノードは、マルチタイプツリー構造によってさらに分割することができる。マルチタイプツリー構造には、垂直二分法(SPLIT_BT_VER)、水平二分法(SPLIT_BT_HOR)、垂直三分法(SPLIT_TT_VER)、水平三分法(SPLIT_TT_HOR)の4つの分法がある。マルチタイプツリーリーフノードは、コーディングユニット(CU)と呼ばれることがあり、CUが最大変換長に対して大きすぎない限り、このセグメンテーションは、さらなる分割なしに、予測及び変換処理に使用され得る。これは、ほとんどの場合、CU、PU、及びTUは、ネストされたマルチタイプのツリーコーディングブロック構造を持つ四分木において同じブロックサイズを持つことを意味する。例外は、サポートされる変換長の最大値がCUの色成分の幅又は高さよりも小さい場合に発生する。ブロックパーテションの一例は、CTUが、四分木とネスト型マルチタイプツリーコーディングブロック構造を備えた複数のCUに分割され、四分木パーテションとマルチタイプツリーパーテションを備えていることである。ネストされたマルチタイプツリーパーテションを持つ四分木は、CUから構成されるコンテンツ適応コーディングツリー構造を提供する。
【0085】
VVCでは、最大サポートされるルミナンス変換サイズは64×64、最大サポートされるクロミナンス変換サイズは32×32です。マ形質転換サイズは32×32である。CBの幅又は高さが最大変換幅又は高さよりも大きい場合、CBは自動的に水平方向及び/又は垂直方向に分割され、その方向の変換サイズの制限を満たすことができる。
【0086】
VTM7では、コーディングツリー方式はルマとクロマが別々のブロックツリー構造を持つ能力をサポートする。P及びBスライスの場合、1つのCTUのルマ及びクロマCTBは、同一のコーディングツリー構造を共有しなければならない可能性がある。しかしながら、Iスライスの場合、ルマとクロマは別々のブロックツリー構造を持つことができる。個別のブロックツリーモードを適用すると、ルマCTBは1つのコーディングツリー構造によってCUにパーテションされ、クロマCTBは別のコーディングツリー構造によってクロマCUにパーテションされる。これは、Iスライス中のCUは、ルマ成分のコーディングブロック又は2つのクロマ成分のコーディングブロックを含むことができ、Pスライス又はBスライス中のCUは、ビデオがモノクロでない限り、3つのカラー成分すべてのコーディングブロックを含むことができることを意味する。
【0087】
[AV1における指向性イントラ予測]
【0088】
VP9は、45度から207度までの角度に対応する8方向モードをサポートする。AV1では、指向性テクスチャにおけるより多様な空間冗長性を利用するために、指向性イントラモード(directional intra modes)をより細かい粒度で設定した角度に拡張した。元の8つの角度は、わずかに変更され、公称角度として作られ、これらの8つの公称角度は、現在ブロック(541)に関して
図7に示される、V_PRED(542)、H_PRED(543)、D45_PRED(544)、D135_PRED(545)、D113_PRED(5446)、D157_PRED(547)、D203_PRED(548)、及びD67_PRED(549)として命名される。各公称角度に対して、7つのより細かい角度があるため、AV1は合計56の方向角度を有する。予測角度は、公称内角度に角度デルタを加えたもので、ステップサイズの3度の-3~3倍である。AV1では、8つの公称モードと5つの非角度平滑モードが先ずシグナリングされる。その後、現在モードが角度モードである場合、対応する公称角度に対する角度デルタを示すために、インデックスがさらにシグナリングされる。汎用の方法を介してAV1に方向予測モードを実装するために、AV1の56方向イントラ予測モードはすべて、各ピクセルを参照サブピクセル位置に投影し、2タップ双線形フィルタによって参照ピクセルを補間する統一された方向予測器で実装される。
【0089】
[AV1における非指向性平滑イントラ予測子]
【0090】
AV1には、DC、PAETH、SMOOOTH、SMOOTH_V、SMOOTH_Hの5つの非指向性平滑イントラ予測モード(non-directional smooth intra prediction modes)がある。DC予測のために、左上の近接サンプルの平均が予測すべきブロックの予測子として使用される。PAETH予測子は、先ず上部、左側、左上の参照サンプルを取り出し、その後予測する画素の予測子として、最も近い(上+左-左)値を設定する。
図8は、現在ブロック(550)内のピクセル(552)に対する、上部サンプル(554)、左側サンプル(556)、及び左上サンプル(558)の位置を示す。SMOOTH、SMOOTH_V、及びSMOOOTH_Hモードでは、垂直方向又は水平方向の2次補間、又は両方向の平均を使用して、現在ブロック(550)が予測される。
【0091】
[再帰フィルタリングベースのイントラ予測子]
【0092】
エッジ上の参照による減衰空間相関を捕捉するために、フィルタイントラモードがルマブロック用に設計されている。5つのフィルタイントラモードがAV1に画定されており、それぞれが4x2パッチのピクセルとそれに近接する7つの近接部(neighbors)との間の相関を反映する8つの7タップフィルタのセットで表される。換言すると、7タップフィルタの重み付け係数は位置に依存する。例えば、
図9に示すように、8×8ブロック(560)を8×42パッチに分割することができる。これらのパッチは、
図9においてB0、B1、B2、B3、B4、B5、B6、及びB7として示されている。各パッチについて、R0~R6で示される7つの近接部、現在のパッチ内のピクセルを予測するために使用され得る。パッチB0では、すべての近接部がすでに再構成されている可能性がある。しかしながら、他のパッチでは、いくつかの近接部が再構成されない可能性があり、近接部の予測値が参照として使用される。例えば、パッチB7のすべての近接部が再構成されないので、近接部の予測サンプルが代わりに使用される。
【0093】
[ルマから予測されるクロマ]
【0094】
ルマ(CfL)からのクロマは、クロマピクセルを同時再構成ルマピクセルの線形関数としてモデル化するクロマのみのイントラ予測子である。CfL予測は、式(1)において以下のように表すことができる:
CfL(α)=α×LAC+DC(式1)
ここで、LACはルマ成分のAC寄与を示し、αは線形モデルのパラメータを示し、DCはクロマ成分のDC寄与を示す。具体的には、再構成されたルマピクセルをクロマ解像度にサブサンプリングし、その後平均値を差し引いてAC寄与を形成する。AC寄与からクロマAC成分を近似するために、一部の背景技術のようにデコーダにスケーリングパラメータの計算を要求する代わりに、AV1 CfLは、元のクロマピクセルに基づいてパラメータαを決定し、ビットストリームでそれらをシグナリングすることができる。これは、デコーダの複雑さを低減し、より正確な予測をもたらす。クロマ成分のDC寄与に関しては、ほとんどのクロマコンテンツに十分であり、成熟した高速実装を有するイントラDCモードを用いて計算することができる。
【0095】
[複数行イントラ予測]
【0096】
マルチラインイントラ予測は、イントラ予測のためにより多くの参照ラインを使用することができ、エンコーダは、どの参照ラインがイントラ予測子を生成するために使用されるかを決定し、シグナリングする。参照ラインインデックスは、イントラ予測モードの前にシグナリングされることができ、ゼロでない参照ラインインデックスがシグナリングされる場合には、最も可能性の高いモードのみが許されることができる。
図10では、4つの参照ライン(570)の例が示され、各参照ライン(570)は、左上の参照サンプルと共に、6つのセグメント、すなわち、セグメントA~Fからなる。さらに、セグメントAとFには、それぞれセグメントBとEの最も近いサンプルが詰め込まれている。
【0097】
[AV1の一次変換]
【0098】
拡張コーディングブロックパーテションをサポートするために、複数の変換サイズ(例えば、各次元に対して4点から64点までの範囲)及び変換形状(例えば、正方形;幅/高さ比が2:1/1:2及び4:1/1:4の矩形)がAV1に導入される。
【0099】
2D変換プロセスは、ハイブリッド変換カーネル(例えば、コーディング残留ブロックの各次元に対して異なる一次元(1D)変換で構成される)の使用を含むことができる。一実施形態によれば、一次1D変換は、(a)4ポイント、8ポイント、16ポイント、32ポイント、又は64ポイントのDCT-2;(b)4ポイント、8ポイント、又は16ポイントの非対称DST(DST-4、DST-7)及びそれらの反転バージョン;及び(c)4ポイント、8ポイント、16ポイント、又は32ポイントの識別変換である。AV1で使用されるDCT-2及び非対称DSTの基底関数を以下の表1に示す。表1は、N点入力のためのAV1一次変換基底関数DCT-2、DST-4及びDST-7を示す。
【表1】
【0100】
ハイブリッド変換カーネルの可用性は、変換ブロックサイズ及び予測モードに基づくことができる。この依存関係は、
図11の表580にリストされている。表580は、AV1ハイブリッド変換カーネルと、予測モード及びブロックサイズに基づくそれらの可用性を示す。表580において、記号”→”及び”↓”はそれぞれ水平及び垂直次元を示し、”レ”及び”×”はそれぞれそのブロックサイズ及び予測モードのカーネルの可用性及び不可用性を示す。
【0101】
クロマ成分について、変換タイプの選択は暗黙的に行われることができる。イントラ予測残差について、変換タイプは、以下の表2で指定されるように、イントラ予測モードに従って選択されることができる。インター予測残差について、変換タイプは、コロケーションされた(co-located)ルマブロックの変換タイプ選択に従って選択することができる。したがって、クロマ成分については、ビットストリームにシグナリングする変換タイプが存在しない可能性がある。
【表2】
【0102】
[VVCにおける二次変換]
【0103】
図12を参照すると、VVCでは、縮小二次変換として知られている低周波非分離可能変換(LFNST)が、順方向一次変換(591)と量子化(593)(エンコーダで)との間、及び脱量子化(de-quantization)(594)と逆一次変換(596)(デコーダ側)との間に適用されて、一次変換係数をさらに非相関化することができる。例えば、順方向LFNST(592)がエンコーダによって適用されることができ、逆方向LFNST(595)がデコーダによって適用されることができる。LFNSTでは、ブロックサイズに応じて、4×4非分離可能変換又は8×8非分離可能変換を適用することができる。例えば、4×4LFNSTは小さなブロック(すなわち、min(width,height)<8)に適用され、8×8LFNSTは、より大きなブロック(すなわち、min(width,height)>4)に適用され得る。4×4順LFNST及び8×8順LFNSTについて、順LFNST(592)は、それぞれ16及び64の入力係数を有することができる。4×4逆LFNST及び8×8逆LFNSTについて、逆LFNST(595)は、それぞれ8及び16の入力係数を有することができる。
【0104】
LFNSTで使用される非分離可能変換の適用は、例として入力を用いて以下のように記述される。4×4LFNSTを適用するために、下記式(2)に示される4×4の入力ブロックXは、まず、下記式(3)に示されるように、ベクトル
(以下、X ̄とも表す。)として表すことができる:
【数1】
【数2】
【0105】
非分離可能変換は、
【数3】
として計算されることができ、ここで、
(以下、F ̄とも表す。)は変換係数ベクトルを示し、Tは16x16変換行列です16×1係数ベクトルF ̄は、その後、そのブロックに対する走査順序(水平、垂直、又は対角)を使用して、4×4ブロックとして再編成される。より小さいインデックスを有する係数は、4×4係数ブロック内のより小さい走査インデックスで配置される。
【0106】
A. 縮小非分離可能変換(Reduced Non-Separable Transform)
【0107】
LFNSTは、直接行列乗算アプローチに基づくことができ、多重反復なしに単一パスで実装されるように非分離可能変換を適用する。しかしながら、非分離可能変換マトリクス次元は、縮小又は低減されることができ、計算複雑性及び変換係数を格納するためのメモリ空間を最小化する。従って、縮小非分離可能変換(RST)法をLFNSTで使用することができる。低減された非分離可能変換の主なアイデアは、N(8×8NSSTではNは通常64に等しい)次元ベクトルを、異なる空間内のR次元ベクトルにマッピングすることである。ここで、N/R(R<N)は縮小係数である。従って、NxN行列の代わりに、RST行列は、
図13に示されるように、R×N行列(600)になる。
【0108】
R×N行列(600)には、N次元空間のR基底である変換のR行がある。RTの逆変換行列は、その順方向変換の転置行列とすることができる。8×8のLFNSTに対しては、4の縮小係数が適用されることができ、従来の8×8の非分離可能変換行列サイズである64×64の直接行列は、16×48の直接行列に低減されることができる。したがって、48×16の逆RST行列をデコーダ側で用いて、8×8の左上領域でコア(一次)変換係数を生成することができる。16×48行列は、同じ変換集合構成を有する16×64の代わりに適用され、各行列は、左上の8×8ブロックにおいて、右下の4×4ブロックを除き、3つの4×4ブロックから48の入力データを取り得る。縮小次元の助けを借りて、すべてのLFNST行列を格納するためのメモリ使用量を、合理的な性能低下で10KBから8KBに低減することができる。複雑さを低減するために、LFNSTは、第1係数サブグループ外の全ての係数が有意でない場合にのみ、適用できるように制限することができる。したがって、LFNSTが適用される場合、すべての一次変換係数はゼロでなければならない場合がある。これは、LFNSTインデックスシグナリングを最後の有効位置(last-significant position)に条件付けることを可能にし、従って、現在のLFNST設計における余分な(extra)係数スキャニングを回避し、これは特定の位置のみで有意な係数をチェックするために必要とされる可能性がある。LFNSTの最悪ケース処理(画素あたりの乗算の観点から)は、4×4及び8×8ブロックの非分離可能変換を、それぞれ8×16及び8×48変換に制限する。そのような場合、LFNSTを適用したときの最後の有効スキャン位置は、16未満の別のサイズの場合は8未満でなければならない場合がある。4×N及びN×4及びN>8の形状を有するブロックについて、制限は、LFNSTが現在は1回のみ、左上の4x4領域のみに適用されることを意味する場合がある。LFNSTが適用される場合、全ての一次のみの係数はゼロであることができる、このような場合、一次変換のための演算の数は低減されることができる。エンコーダの観点から、係数の量子化は、LFNST変換がテストされるとき、著しく単純化される。レート歪み最適量子化は、最初の16個の係数に対して(スキャン順に)最大で行うことができ、残りの係数はゼロであるように強制することができる。
【0109】
B.LFNST変換選択
【0110】
LFNSTで使用される変換集合ごとに、4つの変換セットと2つ非分離可能変換行列(カーネル)があり得る。イントラ予測モードから変換集合へのマッピングは、以下の表3に示すように、予め定義することができる。現在のブロックに3つのCCLMモード(INTRA_LT_CCLM,INTRA_T_CCLM,又はINTRA_L_CCLM)のいずれかが使用されている場合(81<=predModeIntra=83)、現在のクロマブロックに変換セット0を選択できる。各変換集合に対して、選択された非分離可能二次変換候補は、明示的にシグナリングされたLFNSTインデックスによってさらに指定されることができる。インデックスは、変換係数の後、イントラCU毎に一度ビットストリームでシグナリングされることができる。
【表3】
【0111】
C.LFNSTインデックスシグナリング及び他のツールとの相互作用
【0112】
LFNSTは、第1係数サブグループ外の全ての係数が有意でない場合にのみ適用できるように制限されることができるため、LFNSTインデックスコーディングは、最後の有意な係数の位置に依存する可能性がある。加えて、LFNSTインデックスは、コンテキストコーディングされることがあるが、イントラ予測モードに依存しないことがあり、最初のビンのみがコンテキストコーディングされることがある。さらに、LFNSTは、イントラスライスとインタースライスの両方でイントラCUに、さらにルマとクロマの両方に適用することができる。デュアルツリーが有効にされている場合、ルマとクロマに対するLFNSTインデックスは、別々にシグナリングされることができる。インタースライス(デュアルツリーが無効)では、単一のLFNSTインデックスがシグナリングされ、ルマとクロマの両方に使用することができる。
【0113】
イントラサブパーテション(ISP)モードが選択された場合、LFNSTが無効にされ、RSTインデックスがシグナリングされないことがある。RSTがすべての実現可能なパーテションブロックに適用されたとしても、パフォーマンスの改善はわずかであり得るからである。さらに、ISP予測された残差に対してRSTを無効にすることは、エンコードの複雑さを低減し得る。また、マトリクスベースのイントラ予測(MIP)モードが選択される場合、LFNSTは無効にされることができ、インデックスはシグナリングされないことができる。
【0114】
64×64を超える大きなCUが、既存の最大変換サイズ制限(例えば、64×64)のために暗黙的に分割(TUタイリング)され得ることを考慮すると、LFNSTインデックスサーチは、特定の数のデコードパイプラインステージに対して、データバッファリングを4倍増加させ得る。従って、LFNSTが許される最大サイズは64x64に制限され得る。実施形態によれば、LFNSTは、DCT2のみで有効にすることができる。
【0115】
[AV1の残差コーディング]
【0116】
各変換ユニットについて、AV1係数コーディングは、スキップサインのシグナリングから始まり、変換カーネルタイプ及びスキップ記号がゼロのときのブロック終端(end-of-block:eob)位置が続き得る。次いで、各係数値は、複数のレベルマップ及びサインにマッピングされ得る。
【0117】
eob位置がコーディングされた後、下位レベルマップ及び中位レベルマップは、逆スキャン順序でコーディングされることができ、前者は、係数の大きさが0から2の間であるかどうかを示すことができ、後者は、範囲が3から14の間であるかどうかを示すことができる。次のステップでは、係数のサインと、指数ゴロムコード(Exp-Golomb code)による14より大きい係数の残差値を、順スキャン順序でコーディングすることができる。
【0118】
コンテキストモデリングの使用に関しては、下位レベルマップコーディングは、変換サイズ及び方向、ならびに5つまでの近接係数情報を組み込むことができる。他方、中位レベルマップコーディングは、近接係数の数が2まで減少することを除いて、下位レベルアンプコーディングと同様のアプローチをとることができる。残差レベルに対する指数ゴロムコード及びAC係数のサインは、コンテキストモデルなしでコーディングすることができ、一方、DC係数のサインは、その近接変換ユニットのdcサインを用いてコーディングされる。
【0119】
[ビデオコーディングのための深層学習]
【0120】
深層学習は、異なる非線形変換を組み合わせた複雑なアーキテクチャでデータをモデル化しようとする一連の学習方法である。深層学習の基本的なブリックはニューラルネットワークであり、それが結合されて深層ニューラルネットワークを形成する。
【0121】
人工ニューラルネットワークは、エントリx及び出力y=f (x,θ)に関連するパラメータθに関して非線形のアプリケーションである。パラメータθは、学習サンプルから推定される。ニューラルネットワークは、回帰又は分類に使用することができる。ニューラルネットワークのアーキテクチャにはいくつかのタイプが存在する:(a)ニューラルネットワークの最も古い形態である多層パーセプトロン;(b)画像処理に特に適した畳み込みニューラルネットワーク(CNN);(c)テキスト又は時系列等のシーケンシャルデータに使用される反復ニューラルネットワーク。
【0122】
深層学習及びニューラルネットワークは、ビデオコーディングにおいて主に2つの理由により使用され得る:第1に、従来の機械学習アルゴリズムとは異なり、深層学習アルゴリズムはデータをスキャンし、特徴エンジニアリングが不要な特徴をサーチする。第2に、深層学習モデルは、特に画像関連のタスクにおいて、新しいデータと良好に一般化される。
【0123】
A.CNN層
【0124】
多層パーセプトロンと比較した場合のCNNの長所は2つある:CNNは、層内のニューロンがその前の小さな領域にのみ接続されるため、重みの量が大幅に減少される;さらに、CNNは並進不変性であり、空間情報を失うことなく画像を処理するのに特に適している。CNNは、数種類の層、すなわち、畳み込み層、プーリング層及び完全に接続された層から構成される。
【0125】
(1)畳み込み層
【0126】
2つの関数fとgとの間の離散畳み込みは、下記式(4)で示されるように定義される:
【数4】
【0127】
画像などの2次元信号については、2次元畳み込みについて以下の式(5)は考慮され得る:
【数5】
ここで、Kは2D信号(又は画像)Iに適用される畳み込みカーネルである。
【0128】
図14を参照すると、2Dコンボリューションの原理は、コンボリューションカーネル(612)を画像(610)上にドラッグすることである。各位置で、コンボリューションカーネルと現在処理されている画像の一部(611)との間にコンボリューションが適用される。その後、畳み込みカーネルは、ピクセルの数sによって移動し、ここで、sはストライドと呼ばれる。時には、出力のサイズを制御するために、画像の周囲にゼロ値を含むサイズpのマージンであるゼロパディングが追加される。画像にそれぞれサイズk×kのC0カーネル(フィルターとも呼ばれる)が適用されていると仮定する。入力画像のサイズがW
i×H
i×C
iの場合(W
iは幅、H
iは高さ、C
iはチャンネル数、通常C
i=3)、出力ボリュームはW
0×H
0×C
0となり、C0はカーネル数に対応し、W0とH0は式(6)と(7)で示される関係を有する
【数6】
【0129】
畳み込み演算は、ネットワークに非線形性を加えるために、活性化関数φと組み合わせることができる:z(x)=φ(K*x+b)ここで、bはバイアスである。一例は、max(0,x)演算を実行する正規化線形ユニット(Rectified Linear Unit:ReLU)活性化関数である。
【0130】
(2)プーリング層
【0131】
また、CNNはプーリング層を有し、画像のパッチ上の平均又は最大をとることによって(平均プーリング又は最大プーリング)、サブサンプリングとも称されるネットワーク次元を縮小することができる。畳み込み層のように、プーリング層はストライドで画像の小さなパッチに作用する。一例において、
図15を参照して、最大プーリングがストライドs=2で実行される4×4入力パッチ(620)を考慮すると、出力(622)の出力次元は、水平方向及び垂直方向の入力次元の半分である。また、ゼロ埋め込みなしに、1よりも大きなストライドをとることによって、畳み込み層を用いて次元を低減することも可能であるが、プーリングの利点は、入力画像の小さな変換に対するネットワークの感度を低下させることである。
【0132】
(3)全結合層
【0133】
複数の畳み込み層及びプーリング層の後、CNNは、一般に、いくつかの全結合層(fully connected layers)で終わる。先行する畳み込み/プーリング層の出力であるテンソルは、値の単一ベクトルに変換される。
【0134】
B.CNNのビデオコーディングへの適用
【0135】
(1)ループフィルタリング
【0136】
JVET-I0022では、イントラフレーム用の畳み込みニューラルネットワークフィルタ(CNNF)が提供されている。CNNFは、Joint Exploration Model (JEM)のフィルタ、すなわちバイラテラルフィルタ(BF)、デブロッキングフィルタ(DF)、及びサンプル適応オフセット(SAO)を置き換えるイントラフレームのためのループフィルタとして機能する。
図16Aは、エントロピデコーディング(631)、逆量子化(inverse quantization)(632)、逆変換(633)、BF(634)、DF(635)、SAO (636)、予測(637)及び適応ループフィルタ(ALF)(638)を含むJEMのイントラデコーディングプロセス(630)を示す。
図16Bは、BF(634)、DF(635)、及びSAO(636)の代わりにCNNF(644)を含む、イントラでコーディングプロセスを示す。BフレームとPフレームについて、フィルタはJEM7.0と同じに保たれる。
【0137】
図16B及び17を参照すると、CNNF(644)は、再構成パラメータ(652)及び量子化パラメータ(QP)(654)の2つの入力を含むことができ、これは、異なる品質を有する再構成に適応するために、単一セットのパラメータを使用することを可能にし得る。訓練プロセスにおけるより良い収束のために、2つの入力の両方を正規化することができる。複雑さを低減するために、10層の単純なCNNを採用してもよい。CNNは、1つの連結層(656)、7つの畳み込み層(658A~G)、それぞれに続くReLU層、1つの畳み込み層(660)、及び1つの加算層(summation layer)(662)から構成されてもよい。これらの層は、1つずつ結合され、ネットワークを形成することができる。上記の層パラメータは、畳み込み層に含まれ得ることが理解され得る。再構成されたY,U,Vを加算層に結合することにより、ネットワークは再構成画像と元の画像との間の残差の特性を学習するために正規化される。一実施形態によれば、シミュレーション結果は、ルマについて-3.57%、-6.17%及び-7.06%のBDレート節約と、AI構成を有するJEM-7.0についての両方のクロマ成分と、エンコーディング及びデコーディング時間はアンカーと比較してそれぞれ107%及び12887%であることと、を報告する。
【0138】
JVET‐N0254では、インループフィルタ(DRNLF)に基づく高密度残差畳み込みニューラルネットワークの実験結果が報告されている。ここで
図18を参照すると、高密度残差ネットワーク(DRN)(670)の一例の構造ブロック図が示されている。ネットワーク構造は、N密度の残差ユニット(DRU)(672A~N)を含むことができ、Mは多数の畳み込みカーネルを示すことができる。例えば、計算効率と性能との間のトレードオフとして、Nを4に設定し、Mを32に設定することができる。正規化QPマップ(674)は、DRN(670)への入力として、再構成フレームと連結されることができる。
【0139】
実施形態によれば、DRU(672A~N)は、それぞれ、
図19に示される構造(680)を有することができる。DRUは、ショートカットを介して、入力を後続のユニットに直接伝搬することができる。計算コストをさらに低減するために、3×3の深さ方向分離可能畳み込み(DSC)層をDRUに適用することができる。
【0140】
ネットワークの出力は、Y、Cb、Crにそれぞれ対応する3つのチャネルを有することができる。フィルタは、イントラ画像とインター画像の両方に適用することができる。DRNLFのオン/オフを示すために、各CTUに対して追加フラグがシグナリングされることができる。一実施形態の実験結果は、全イントラ構成では、Y、Cb、及びCr成分のそれぞれ-1.52%、-2.12%及び-2.73%のBDレート、ランダムアクセス構成では、-1.45%、-4.37%及び-4.27%のBDレート、並びに、低遅延構成における-1.54%、-6.04%及び-5.86%のBDレートを示す。本実施形態では、デコーディング時間は、AI、RA及びLDB構成において4667%、7156%及び9127%である。
【0141】
(2)イントラ予測
【0142】
ここで、
図20及び21を参照すると、イントラ予測モードのための第1のプロセス(690A)及び第2のプロセス(690B)の図が示される。イントラ予測モードを使用して、将来のビデオコーデックにおいて矩形ブロック上にイントラ画像予測信号を生成することができる。これらのイントラ予測モードは、以下の2つの主要なステップを実行する:第1に、デコードされたサンプルから1セットの特徴を抽出する。第2には、これらの特徴を用いて、予め定義された画像パターンのアフィン線形結合を予測信号として選択する。また、特定の信号化方式が、イントラ予測モードのために使用され得る。
【0143】
図20を参照すると、M≦32及びN≦32を有する所与のMxNブロック(692A)上で、ルマ予測信号predの生成は、ニューラルネットワークを介して1セットの参照サンプルrを処理することによって実行される。参照サンプルrは、ブロック(692A)の上のサイズN+KのK行と、左側のサイズMのK列で構成されることができる。数KはMとNに依存し得る。例えば、KはすべてのMとNに対して2に設定され得る。
【0144】
ニューラルネットワーク(696A)は、以下のように、再構成されたサンプルから特徴のベクトルftrを抽出することができる。d0=K*(N+M+K)がrのサンプル数を示す場合、rは次元d0の実数ベクトル空間のベクトルと見なされる。それぞれd0行の列を有する固定積分正方行列A1及びA2と、及び次元d0の固定積分バイアスベクトルb1とb2とについて、最初に下記式(8)を計算する。
t1=ρ(A1・r+b1)(式8)
【0145】
式(8)「・」、通常の行列ベクトル積を意味する。さらに、関数ρは、ELU関数ρ0さらに、関数ρはELU関数ρ0の整数近似であり、 ここで、後者の関数は、下記式(9)に示すように、p次元ベクトルvで定義される。
【数7】
ここで、ρ
0(v)
i及びv
iはベクトルのi番目の成分を示す。同様の操作をt
1に適用し、式(10)に示すようにt
2を計算する。
t
2=ρ(A
2・t
1+b
2)(式10)
【0146】
0≦d1≦d0を有する固定整数d1の場合、d1の行及びd0の列と、1つ以上のバイアス重み(694A)とを有する所定の積分行列A3、例えば、次元d1の所定の積分バイアスベクトルb3が存在することができ、したがって、下記の式(11)に示されるように特徴ベクトルftrを計算する。
ftr=ρ(A・t2+b3)(式11)
【0147】
d1の値はMとNに依存する。現時点では、d1=d0とする。
【0148】
フィーチャーベクトルftrのうち、最終的な予測信号predは、アフィン線形マップを使用して生成され、その後、ビット深度に依存する標準的なクリッピング操作が続く。したがって、M*N行とd1列を有する所定の行列A4と、次元M*Nの所定のバイアスベクトルb4があり、したがって、式(12)において以下のように計算される。
pred=Clip(A4・ftr+b4)(式12)
【0149】
ここで
図21を参照すると、n個の異なるイントラ予測モード(698B)が使用され、ここでnはmax(M、N)<32の場合は35に設定され、それ以外の場合は11に設定される。従って、0≦premode<nを有するインデックスpremodeはエンコーダによってシグナリングされ、デコーダによってパースされるものであり、以下の高文化使用され得る。1つはn=3+2
kを有し、ここで、max(M,N)=32の場合はk=3、それ以外の場合はk=5である。第1のステップでは、0≦predIdx<nを有するインデックスpredIdxが、次のコードを使用してシグナリングされる。まず、1つのビンがpredIdx<3かどうかをエンコードする。predIdx<3の場合、第2のビンはpredIdx=0かどうかをエンコードし、predIdx≠0の場合、別のビンはpredIdxが1又は等しいかどうかをエンコードする。predIdx≧3の場合、predIdxの値は、k個のビンを使用して標準的な方法(canonical way)でシグナリングされる。
【0150】
インデックスpredIdxから、実際のインデックスpredmodeは、1つの隠れ層を持つ完全に接続されたニューラルネットワーク(696B)を使用して導出され、これは、上記のサイズN+2の2つの行と、ブロック(692B)の左側のサイズMの2つの列に、再構成されたサンプルr’を入力として有する。
【0151】
再構成したサンプルr’は、次元2*(M+N+2)の実ベクトル空間におけるベクトルと考えられる。固定正方行列A1’があり、2*(M+N+2)の実数ベクトル空間内の固定バイアスベクトルb1’のように、2*(M+N+2)行列及び1つ以上のバイアス重み(694B)を有し、したがって下記式(13)に示すようにt1’を計算する。
t1’=ρ(A1’・r’+b1)(式13)
【0152】
n行と2*(M+N+2)列を有する行列A2’が存在することができ、次元nの実数ベクトル空間に固定バイアスベクトルb2’が存在することができ、下記式(14)に示すようにlgtを計算する。
lgt=A2’・t1’+b2’(式14)
【0153】
ここで、インデックスpredmodeは、lgtのpredIdx番目に大きい成分の位置として導出される。ここで、2つのコンポーネント(lgt)k及び(lgt)lがk≠lに対して等しい場合、(lgt)kは(lgt)lよりも大きいと見なされ、fk<l及び(lgt)lは、(lgt)kよりも大きいと見なされる。
【0154】
[マルチ変換選択]
【0155】
HEVCで使用されてきたDCT‐IIに加えて、マルチ変換選択(MTS)スキームが、インター及びイントラブロックの両方の残差コーディングに使用される。スキームには、DCT8/DST7から選択された複数の変換が含まれ得る。実施形態によれば、DST-VII及びDCT-VIIIが含まれ得る。表4は、Nポイント入力用に選択されたDST/DCTの変換基底関数を示している。
【表4】
【0156】
変換行列の直交性を維持するために、変換行列をHEVCにおける変換行列よりも正確に量子化され得る。変換された係数の中間値を、水平変換の後、垂直変換の後に、16ビットの範囲内に維持するために、すべての係数は10ビットである必要があり得る。
【0157】
MTSスキームを制御するために、別々のイネーブルフラグが、それぞれイントラ及びインターに対してSPSレベルで指定され得る。SPSでMTSがイネーブルにされると、CUレベルフラグはMTSが適用されているか否かを示すためにシグナリングされる。実施形態によれば、MTSはルマに対してのみ適用することができる。MTSシグナリングは、以下の条件のうちのの1つが適用される場合にスキップされることができる:(1)ルマTBの最後の有意な係数の位置が1未満(すなわち、DCのみ)であるか、又は(2)ルマTBの最後の有意な係数がMTSゼロアウト領域内にある。
【0158】
MTS CUフラグがゼロに等しい場合、DCT2は両方向に適用され得る。しかしながら、もしMTS CUフラグが1に等しい場合、2つの他のフラグが水平方向と垂直方向のそれぞれの変換タイプを示すために追加的にシグナリングされ得る。下記の表5は、変換及びシグナリングマッピングテーブルの例を示す。ISPと黙示的MTSに対する変換選択は、イントラモードとブロック形状依存性を除去することによって統一することができる。現在のブロックがISPモードの場合、又は現在のブロックがイントラブロックであり、かつイントラ及びインターの明示的MTSがオンの場合、水平及び垂直変換コアの両方にDST7のみを使用することができる。変換マトリックスの精度については、8ビットの一次変換コアが使用され得る。したがって、HEVCで使用される変換コアは、すべて同じに保たれ、4点DCT-2及びDST-7、8点、16点、32点DCT-2を含む。また、64点DCT-2、4点DCT-8、8点、16点、32点DCT-7及びDCT-8を含む他の変換コアは、8ビット一次変換コアを使用し得る。
【表5】
【0159】
大きなサイズのDST-7及びDCT-8の複雑さを低減するために、サイズ(幅又は高さ、又は、幅及び高さの両方)が32に等しいDST-7及びDCT-8ブロックに対しては、高周波変換係数がゼロ出力され得る。16×16のより低い周波領域内の係数のみが保持され得る。
【0160】
HEVCの場合と同様に、残りのブロックは変換スキップモードでコーディングすることができる。構文コーディングの冗長性を避けるために、CUレベルMTS_CU_flagがゼロに等しくない場合、変換スキップフラグはシグナリングされないことができる。実施形態によれば、暗黙的MTS変換は、LFNST又はMIPが現在のCUに対して活性化される場合、DCT2に設定され得る。また、暗黙的MTSは、インターコーディングブロックに対してMTSが有効である場合でも有効であることができる。
【0161】
[非分離可能二次変換]
【0162】
JEMでは、モード依存非分離二次変換(NSST)を順方向コア変換と量子化(エンコーダにおける)との間、及び脱量子化と逆コア変換(デコーダのける)との間に適用することができる。低い複雑性を維持するために、NSSTは一次変換後の低周波数係数にのみ適用される。変換係数ブロックの幅(W)と高さ(H)の両方が8以上であれば、8×8の非分離可能二次変換を変換係数ブロックの左上の8×8領域に適用することができる。さもなければ、変換係数ブロックのW又はHのいずれかが4に等しい場合、4×4の非分離可能二次変換が適用され、4×4の非分離可能変換が変換係数ブロックの左上の最小(8,W)×最小(8,H)領域に対して実行され得る。上記の変換選択規則は、ルマ成分とクロマ成分の両方に適用することができる。
【0163】
非分離可能変換の行列乗算の実装は、式(2)~(3)に関して、「VVCにおける二次変換」のサブセクションで上述したように実施することができる。実施形態によれば、非分離可能二次変換は、直接行列乗算を使用して実現することができる。
【0164】
[モード依存変換コア選択]
【0165】
4×4及び8×8ブロックサイズの両方に対して、35×3の非分離可能二次変換があり得、ここで、35は、イントラ予測モードによって指定される変換セットの数であり、3は、各イントラ予測モードに対する非分離可能二次変換(NSST)候補の数である。イントラ予測モードから変換セットへのマッピングは、
図22に示す表700に示すように定義することができる。ルマ/クロマ変換係数に適用される変換セットは、表700にしたがって、対応するルマ/クロマイントラ予測モードによって指定することができる。34(斜め予測方向)より大きいイントラ予測モードの場合、変換係数ブロックは、エンコーダ/デコーダにおける二次変換の前後に入れ替えられることができる。
【0166】
各変換セットに対して、選択された非分離可能二次変換候補は、明示的にシグナリングされたCUレベルNSSTインデックスによってさらに指定されことができる。変換係数及び切り捨て単項二値化(truncated unary binarization)を使用した後、インデックスは、イントラCU毎に一度ビットストリームでシグナリングすることができる。切り捨て値は、平面又はDCモードの場合は2であり、角度イントラ予測モードの場合は3であり得る。このNSSTインデックスは、CU内に1つより多い非ゼロ係数がある場合にのみ、シグナリングすることができる。デフォルト値は、シグナリングされていない場合、ゼロになることがあります。この構文要素のゼロ値は、二次変換が現在のCUに適用されていないことを示すことができ、値1-3は、セットから適用されるべき二次変換を示すことができる。
【0167】
JEMでは、NSSTは、変換スキップモードでコーディングされたブロックに適用されないことができる。NSSTインデックスがCUに対してシグナリングされ、ゼロに等しくない場合、NSSTは、CUにおいて変換スキップモードでコーディングされた成分のブロックに対して使用されないことができる。全ての成分のブロックを有するCUが変換スキップモードでコーディングされるか、又は非変換スキップモードCBの非ゼロ係数の数が2未満である場合、NSSTインデックスは、CUに対してシグナリングされないことができる。
【0168】
[比較実施形態の形変換スキームの課題]
【0169】
比較実施態様において、分離可能変換スキームは、指向性テクスチャパターン(directional texture patterns)(例えば、45/135度方向のエッジ)を捕捉するのにあまり効率的ではない。非分離可能変換スキームは、これらのシナリオにおけるコーディング効率を改善するために有用である。計算の複雑さとメモリフットプリントを低減するために、非分離可能変換スキームは、通常、一次変換の低周波数係数の上に適用される二次変換として考案される。既存の実装では、(一次/二次及び分離/非分離の両方の変換カーネルのグループから)使用される変換カーネルの選択は、予測モード情報に基づいて行われる。しかし、予測モード情報だけでは、
図23A~Dの表示710、720、730、及び740によって示されるように、その予測モードについて観察された残差パターンの空間全体の大まかな表現を提供することができるだけである。表示710、720、730及び730は、AV1におけるD45(45°)イントラ予測モードについて観察された残差パターンを示す。近隣の再構成されたサンプルは、これらの残留パターンのより効率的な表現のための追加情報を提供することができる。
【0170】
複数の変換カーネル候補を有する変換スキームのために、変換セットはエンコーダ及びデコーダの両方で利用可能なコーディング情報を使って識別される必要があり得る。MTS及びNSST等の既存のマルチ変換スキームでは、変換セットはイントラ予測モード等のコーディング予測モード情報に基づいて選択される。しかしながら、予測モードは予測残差のすべての統計を完全にカバーし、近隣の再構成サンプルは予測残差のより効率的な分類のための追加情報を提供することができる。ニューラルネットワークベースの方法は、予測残差の効率的な分類のために適用でき、従って、より効率的な変換セット選択を提供する。
【0171】
[本開示の実施形態の例示的態様]
【0172】
本開示の実施形態は、別々に、又は任意の順序で組み合わせて使用され得る。さらに、各実施形態(例えば、方法、エンコーダ、及びデコーダ)は、処理回路(例えば、1つ以上のプロセッサ、又は1つ以上の集積回路)によって実装され得る。一実施例では、1つ以上のプロセッサは、非一時的コンピュータ可読媒体に格納されたプログラムを実行する。
【0173】
本開示の実施形態は、上述の任意の数の態様を組み込むことができる。また、本開示の実施形態は、以下に記載される態様の1つ以上を組み込み、上述の問題及び/又は他の問題を解決して得る。
【0174】
A.第1態様
【0175】
実施形態によれば、近接する再構成されたサンプルは、変換セットを選択するために使用され得る。1つ以上の実施形態において、変換セットのグループから、変換セットのサブグループが、予測モード(例えば、イントラ予測モード又はインター予測モード)などのコーディングされた情報を使用して選択される。一実施形態では、変換セットの選択されたサブグループから、1つの変換セットが、イントラ/インター予測モードのタイプ、ブロックサイズ、現在のブロックの予測ブロックサンプル、及び現在のブロックの近接する再構成されたサンプルなどの、他のコーディングされた情報を使用して識別される。最後に、現在のブロックのための変換候補が、ビットストリームでシグナリングされた関連するインデックスを使用して識別された変換セットから選択される。一実施形態では、変換セットの選択されたサブグループから、イントラ/インター予測モードのタイプ、ブロックサイズ、現在ブロックの予測ブロックサンプル、及び現在ブロックの近接する再構成サンプルなどの他のコーディングされた情報を使用して、最終変換候補が暗黙的に識別される。
【0176】
1つ以上の実施形態において、近接する再構成されたサンプルセットは、先行して再構成された近接するブロックからのサンプルを含むことができる。一実施形態では、近接する再構成されたサンプルセットは、上部及び左側の近接する再構成されたサンプルの1つ以上のラインを含むことができる。一実施例において、上部及び/又は左側の近接する再構成されたサンプルのライン数は、イントラ予測に使用される近接する再構成されたサンプルのラインの最大数と同じである。一実施例では、上部及び/又は左側の近接する再構成されたサンプルのライン数は、CfL予測モードに使用される近接する再構成されたサンプルの最大ライン数と同じである。一実施形態では、近接する再構成されたサンプルセットは、近接する再構成されたブロックからの全てのサンプルを含むことができる。
【0177】
1つ以上の実施形態において、変換セットのグループは、一次変換カーネルのみ、二次変換カーネルのみ、又は一次変換カーネルと二次変換カーネルの組み合わせを含む。変換セットのグループが一次変換カーネルのみを含む場合、一次変換カーネルは分離可能であるか、非分離可能であるか、異なるタイプのDCT/DSTを使用するか、又は異なるセルフループレートを有する異なるライングラフ変換を使用することができる。変換セットのグループが二次変換カーネルのみを含む場合、二次変換カーネルは非分離可能であるか、異なるセルフループレートを有する異なる非分離可能ライングラフ変換を使用することができる。
【0178】
1つ以上の実施形態において、近接する再構成されたサンプルは、特定の変換セットに関連するインデックスを導出するように処理されることができる。一実施形態では、近接する再構成されたサンプルは、変換プロセスに入力され、変換係数は、特定の変換セットに関連するインデックスを識別するために使用される。一実施形態では、近接する再構成されたサンプルが複数の変換プロセスに入力され、コスト関数が各変換プロセスのコスト値を評価するために使用される。その後、コスト値は、変換集合インデックスを選択するために使用される。例示的なコスト値は、限定されるものではないが、あるスキャン順序に沿った最初のN(例えば、1、2、3、4、...、16)個の変換係数の大きさの合計を含む。一実施形態では、分類器が予め定義され、近接する再構成されたサンプルが分類器に入力されて、変換セットインデックスを識別する。
【0179】
B.第2態様
【0180】
実施形態によれば、ニューラルネットワークベースの変換セット選択スキームが提供されることができる。ニューラルネットワークの入力は、現在のブロックの予測ブロックサンプル、現在のブロックの近接する再構成されたサンプルを含むことができ、出力は、変換セットを識別するために使用されるインデックスであることができるが、これらに限定されない。
【0181】
1つ以上の実施形態では、変換集合のグループが定義され、変換集合のサブグループが、予測モード(例えば、イントラ予測モード又はインター予測モード)などのコーディングされた情報を使用して選択され、その後、変換セットの選択されたサブグループの1つの変換セットが、現在のブロックの予測ブロックサンプル、現在ブロックの近接する再構成サンプルなどの他のコード情報を使用して識別される。その後、現在のブロックに対する変換候補が、ビットストリームでシグナリングされた関連するインデックスを使用して識別された変換セットから選択される。
【0182】
1つ以上の実施形態において、近接する再構成されたサンプルは、上部及び左側の近接する再構成されたサンプルの1つ以上のラインを含むことができる。一実施例において、上部及び/又は左側の近接する再構成されたサンプルのライン数は、イントラ予測に使用される近接する再構成されたサンプルのラインの最大数と同じである。一実施例では、上部及び/又は左側の近接する再構成されたサンプルのラインの数は、CfL予測モードに使用される近接する再構成されたサンプルのラインの最大数と同じである。
【0183】
1つ以上の実施形態において、現在のブロックの近接する再構成されたサンプル及び/又は予測ブロックサンプルは、ニューラルネットワークの入力であり、出力は、変換セットに対する識別子を含むだけでなく、予測モードセットに対する識別子も含む。換言すれば、ニューラルネットワークは、変換セット及び予測モードの特定の組み合わせを識別するために、近接する再構成されたサンプル及び/又は現在ブロックの予測ブロックサンプルを使用する。
【0184】
1つ以上の実施形態において、ニューラルネットワークは、二次変換のための変換セットを識別するために使用される。あるいは、ニューラルネットワークは、一次変換に使用される変換セットを識別するために使用される。あるいは、ニューラルネットワークは、二次変換と一次変換の組み合わせを指定するために使用される変換セットを識別するために使用される。一実施形態では、二次変換は、非分離可能変換スキームを使用する。一実施形態では、一次変換は、異なるタイプのDCT/DSTを使用することができる。別の実施形態では、一次変換は、異なるセルフループレートを有する異なるライングラフ変換を使用することができる。
【0185】
1つ以上の実施形態において、異なるブロックサイズについて、隣接する再構成されたサンプル及び/又は現在のブロックの予測ブロックサンプルは、ニューラルネットワークの入力として使用される前に、さらにアップサンプリング又はダウンサンプリングされ得る。
【0186】
1つ以上の実施形態では、異なる内部ビット深度に対して、近接する再構成されたサンプル及び/又は現在のブロックの予測ブロックサンプルは、ニューラルネットワークの入力として使用される前に、内部ビット深度値に従ってさらにスケーリング(又は量子化)され得る。
【0187】
1つ以上の実施形態において、ニューラルネットワークで使用されるパラメータは:ブロックがイントラコーディングされているか否か、ブロック幅及び/又はブロック高さ、量子化パラメータ、現在の画像がイントラ(キー)フレームとしてコーディングされているか否か、及びイントラ予測モードを含むが、これらに限定されないコーディングされた情報に依存する。
【0188】
実施形態によれば、コンピュータプログラム命令を格納する少なくとも1つのプロセッサ及びメモリが提供されることができる。コンピュータプログラム命令は、少なくとも1つのプロセッサによって実行されると、エンコーダ又はデコーダを実施することができ、本開示に記載される任意の数の機能を実行することができる。例えば、
図24を参照すると、少なくとも1つのプロセッサは、デコーダ(800)を実装してもよい。コンピュータプログラム命令は、例えば、少なくとも1つのプロセッサが、受信されたコーディングされたビットストリーム(例えば、エンコーダ)から、画像のブロックをデコードするように構成されたデコードコード(810)を含むことができる。デコーディングコード(810)は、例えば、変換セット選択コード(820)、変換選択コード(830)、及び変換コード(840)を含むことができる。
【0189】
変換セット選択コード(820)は、本開示の実施形態にしたがって、少なくとも1つのプロセッサに変換セットを選択させることができる。例えば、変換セット選択コード(820)は、少なくとも1つのプロセッサに、1つ以上の、先行してデコードされた近接ブロックから又は先行してデコードされた画像から少なくとも1つの近接する再構成されたサンプルに基づいて変換セットを選択させることができる。実施形態によれば、変換セット選択コード(820)は、本開示の実施形態にしたがって、少なくとも1つのプロセッサに、第1コーディング情報に基づいて変換セットのグループから変換セットのサブグループを選択させ、サブグループから変換セットを選択させるように構成されることができる。
【0190】
変換選択コード(830)は、少なくとも1つのプロセッサに、本開示の実施形態にしたがって、変換セットから変換候補を選択させることができる。例えば、変換選択コード(830)は、本開示の実施形態にしたがって、少なくとも1つのプロセッサに、コーディングされたビットストリームにおいてシグナリングされたインデックス値に基づいて、変換セットから変換候補を選択させることができる。
【0191】
変換コード(840)は、本開示の実施形態にしたがって、変換セットからの変換(例えば、変換候補)を使用して、少なくとも1つのプロセッサにブロックの係数を逆変換させることができる。
【0192】
実施形態によれば、デコードコード810は、本開示の実施形態によれば、ニューラルネットワークが、変換グループ、変換サブグループ、変換セット、及び/又は変換を選択する際に、使用されるようにすることができ、又はそうでなければ、デコードの少なくとも一部を実行させることができる。実施形態によれば、デコーダ(800)は、本開示の実施形態にしたがって、少なくとも1つのプロセッサにニューラルネットワークを実装させるように構成されたニューラルネットワークコード(850)をさらに含んでもよい。
【0193】
実施形態によれば、上記のプロセスに対応するエンコーダ側のプロセスは、上記の説明に基づいて、当業者によって理解されるように、画像をエンコードするためのエンコードコードによって実施することができる。
【0194】
上記の本開示の実施例の技術は、コンピュータ可読命令を用いたコンピュータソフトウェアとして行うことができて、物理的に一つ以上のコンピュータ可読媒体に格納されることができる。例えば、
図25は、開示された主題の実施例を実施するのに適しているコンピュータシステム(900)を示す。
【0195】
コンピュータソフトウェアは、アセンブリ、コンパイル、リンク、又は同様のメカニズムの対象となり得る任意の適切な機械コード又はコンピュータ言語を使用してコーディングされることができ、コンピュータ中央処理ユニット(CPU)、グラフィックス処理ユニット(GPU)などによって、直接実行され、又は解釈、マイクロコード実行などを介して、実行され得る命令を含むコードを生成し得る。
【0196】
命令は、例えば、パーソナルコンピュータ、タブレットコンピュータ、サーバ、スマートフォン、ゲームデバイス、物品のインターネット等を含む種々のタイプのコンピュータ又はその構成要素上で実行されることができる。
【0197】
コンピュータシステム(900)のための
図25に示されるコンポーネントは、例示的な性質のものであり、本開示の実施形態を実装するコンピュータソフトウェアの使用範囲又は機能性に関する制限を示唆することを意図するものではない。また、コンポーネントの構成は、コンピュータシステム(900)の例示的な実施形態に示されるコンポーネントのいずれか1つ又は組み合わせに関連する依存性又は要件を有すると解釈されるべきではない。
【0198】
コンピュータシステム(900)は、特定のヒューマンインタフェース入力デバイスを含み得る。このようなヒューマンインタフェース入力デバイスは、例えば、触覚入力(例えば、キーストローク、スイッピング、データグローブの動き)、音声入力(例えば、音声、拍手)、視覚入力(例えば、ジェスチャ)、嗅覚入力(図示せず)を介して、一人又は複数の人間ユーザによる入力に応答し得る。また、ヒューマンインタフェースデバイスは、オーディオ(例えば、音声、音楽、周囲の音声)、画像(例えば、走査画像、静止画像カメラから得られる写真画像)、ビデオ(例えば、2次元ビデオ、立体画像を含む3次元ビデオ)等の、人間による意識的入力に必ずしも直接関係しない特定の媒体を捕捉するために用いられ得る。
【0199】
入力ヒューマンインタフェースデバイスには、次のものが1つ以上含まれ得る(それぞれ1つのみ表されている):キーボード(901)、マウス(902)、トラックパッド(903)、タッチスクリーン(910)、データグローブ、ジョイスティック(905)、マイクロホン(906)、スキャナ(907)、及びカメラ(908)。
【0200】
コンピュータシステム(900)はまた、特定のヒューマンインタフェース出力デバイスを含み得る。かかるヒューマンインタフェース出力デバイスは、例えば、触覚出力、音、光、及び嗅覚/味覚を通して、1人又は複数の人間ユーザの感覚を刺激し得る。かかるヒューマンインタフェース出力デバイスには、触覚出力デバイスが含むことができ(たとえば、タッチスクリーン(910)、データグローブ、またはジョイスティック(905)による触覚フィードバックであるが、入力デバイスとして機能しない触覚フィードバックデバイスであることもできる)。例えば、かかるデバイスは、オーディオ出力デバイス(例えば、スピーカー(909)、ヘッドホン(図示せず))、視覚出力デバイス(例えば、CRTスクリーン、LCDスクリーン、プラズマスクリーン、OLEDスクリーンを含むスクリーン(910)など、それぞれタッチスクリーン入力機能を備えるか又は備えない、それぞれ触覚フィードバック機能を備えるか又は備えない、ーそのうちのいくつかは、ステレオグラフィック出力などの手段を介して、2次元の視覚的出力又は3次元以上の出力を出力できる場合がある:バーチャルリアリティグラス(図示せず)、ホログラフィックディスプレイ、及びスモークタンク(図示せず))、プリンタ(図示せず)などであり得る。
【0201】
コンピュータシステム(900)はまた、人間がアクセス可能な記憶デバイスと、それらのアクセス可能な媒体とを含むことができ、媒体は、例えば、CD/DVD等の媒体(921)によるCD/DVD ROM/RWを含む光学媒体ドライブ(920)、USBメモリ(922)、着脱可能ヘッドドライブ又はソリッドステートドライブ(923)、テープ、フロッピーディスク(図示せず)等の従来の磁気媒体、セキュリティドングル等の特殊化されたROM/ASIC/PLDベースデバイス等である。
【0202】
当業者はまた、現在開示されている主題に関連して使用される「コンピュータ可読媒体」という用語は、伝送媒体、搬送波、又は他の一時的な信号を包含しないことを理解されたい。
【0203】
コンピュータシステム(900)はまた、1つ以上の通信ネットワークへのインタフェースを含むことができる。ネットワークは、例えば、無線、有線、光であり得る。ネットワークは、さらに、ローカル、広域、大都市、車両及び工業、リアルタイム、遅延耐性等であり得る。ネットワークの例としては、イーサネット、無線LAN、GSM、3G、4G、5G、LTE等を含むセルラーネットワーク、ケーブルTV、衛星TV、及び地上放送TV、CANBusを含む産業用及び車両用を含む。特定のネットワークは、特定の汎用データポート又はペリフェラルバス(949)(たとえば、コンピュータシステム(900)のUSBポート)に接続された外部ネットワークインターフェイスアダプタを必要とする;他には、一般に、以下に説明するようにシステムバス(たとえば、PCコンピュータシステムへのイーサネットインターフェイス又はスマートフォンコンピュータシステムへのセルラーネットワークインタフェース)に接続することによってコンピュータシステム(900)のコアに統合される。これらのネットワークのいずれかを使用して、コンピュータシステム(900)は、他のエンティティと通信することができる。かかる通信は、単指向性通信、受信のみ(例えば、放送テレビ)通信、単指向性送信専用(例えば、特定のCANバスデバイスへのCANバス)通信、又は、例えばローカル又は広域デジタルネットワークを使用する他のコンピュータシステムへの、双方向通信であることができる。この種の通信は、クラウドコンピューティング環境(955)との通信を含むことができる。特定のプロトコル及びプロトコルスタックは、上述のように、それらのネットワーク及びネットワークインタフェースの各々で使用されることができる。
【0204】
前述のヒューマンインタフェースデバイス、人間がアクセス可能な記憶デバイス、及びネットワークインタフェース(954)は、コンピュータシステム(900)のコア(940)に接続されることができる。
【0205】
コア(940)は、1つ以上の中央処理デバイス(CPU)(941)、グラフィックス処理デバイス(GPU)(942)、フィールドプログラマブルゲートエリア(FPGA)(943)の形態の特殊なプログラマブル処理デバイス、特定のタスクのためのハードウェアアクセラレータ844等を含むことができる。これらのデバイスは、読出し専用メモリ(ROM)(945)、ランダムアクセスメモリ(946)、内部大容量記憶デバイス、例えば内部非ユーザアクセス可能ハードドライブ、SSD等(947)と共に、システムバス(948)を介して接続され得る。いくつかのコンピュータシステムでは、システムバス(948)は、追加のCPU、GPU等による拡張を可能にするために、1つ又は複数の物理プラグの形態でアクセス可能である。周辺デバイスは、コアのシステムバス(948)に直接接続するか、又は周辺バス(949)を介して接続することができる。周辺バスのアーキテクチャは、PCI、USB等を含む。グラフィックアダプタ(950)は、コア(940)に含まれることができる。
【0206】
CPU(941)、GPU(942)、FPGA(943)、及びアクセラレータ(944)は、組み合わされて、上述のコンピュータコードを構成することができる特定の命令を実行することができる。そのコンピュータコードは、ROM(945)又はRAM(946)に格納されることができる。移行データは、RAM(946)に格納されることもできるが、永久データは例えば内部大容量記憶デバイス(947)に格納されことができる。1つ以上のCPU(941)、GPU(942)、大容量記憶デバイス(947)、ROM(945)、RAM(946)等と密接に関連付けることができるキャッシュメモリを使用することによって、メモリデバイスのいずれかへの高速記憶及び検索を可能にすることができる。
【0207】
コンピュータ可読媒体は、各種のコンピュータ実施動作(computer-implemented operations)を実行するためにその上のコンピュータコードを有することができる。メディアおよびコンピュータコードは特別に設計されたそれらであることができて、本開示のために作成されることができる、または、それらはよく公知で、コンピュータソフトウェア技術の技術を有するそれらが利用できる種類でありえる。
【0208】
一例として、限定するものではなく、アーキテクチャ(900)、具体的にはコア(940)を有するコンピュータシステムは、1つ以上の有形のコンピュータ可読媒体に具現化されたソフトウェアを実行するプロセッサ(CPU、GPU、FPGA、アクセラレータ等を含む)の結果として機能性を提供することができる。かかるコンピュータ可読媒体は、コア-内部大容量記憶デバイス(947)又はROM(945)等の一時的でない性質のコア(940)の特定の記憶デバイスと同様に、上述のようにユーザがアクセス可能な大容量記憶デバイスに関連する媒体であってもよい。本開示の様々な実施形態を実装するソフトウェアは、かかるデバイスに記憶され、コア(940)によって実行され得る。コンピュータ読取可能媒体は、特定のニーズに応じて、1つ以上のメモリデバイス又はチップを含むことができる。ソフトウェアは、コア(940)及びその中の具体的にプロセッサ(CPU、GPU、FPGA等を含む)に、RAM(946)に記憶されたデータ構造を定義し、ソフトウェアによって定義されたプロセスにしたがって、かかるデータ構造を変更することを含む、本明細書に記載された特定のプロセス又は特定の部分を実行させることができる。付加的に又は代替的に、コンピュータシステムは、回路(例えば、アクセラレータ(944))内に配線された、又は他の方法で具現化されたロジックの結果として、機能性を提供することができ、これは、本明細書に記載される特定のプロセス又は特定のプロセスの特定の部分を実行するために、ソフトウェアの代わりに、又はソフトウェアと共に動作することができる。ソフトウェアへの言及は、論理を含み、また、必要に応じて、その逆も可能である。コンピュータ読取り可能媒体への参照は、実行のためのソフトウェアを記憶する(集積回路(IC)等の)回路、実行のためのロジックを具体化する回路、又は適切な場合にはその両方を含むことができる。本開示は、ハードウェア及びソフトウェアの任意の適切な組み合わせを包含する。
【0209】
この開示は、いくつかの非限定的な例示的な実施形態を説明しているが、本開示の範囲内にある変更、順列、および様々な代替の同等物が存在する。したがって、当業者は、本明細書に明示的に示されていないか又は記載されていないが、本発明の原理を実施し、したがってその概念及び範囲内にある多数のシステム及び方法を創造することができることが理解されよう。