(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2023-10-12
(54)【発明の名称】特徴マップデータのシグナリング
(51)【国際特許分類】
H04N 19/70 20140101AFI20231004BHJP
H04N 19/85 20140101ALI20231004BHJP
【FI】
H04N19/70
H04N19/85
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2023516786
(86)(22)【出願日】2021-10-20
(85)【翻訳文提出日】2023-03-22
(86)【国際出願番号】 RU2021050347
(87)【国際公開番号】W WO2022086376
(87)【国際公開日】2022-04-28
(31)【優先権主張番号】PCT/RU2020/000559
(32)【優先日】2020-10-20
(33)【優先権主張国・地域又は機関】RU
(81)【指定国・地域】
(71)【出願人】
【識別番号】504161984
【氏名又は名称】ホアウェイ・テクノロジーズ・カンパニー・リミテッド
(74)【代理人】
【識別番号】100110364
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100133569
【氏名又は名称】野村 進
(72)【発明者】
【氏名】セルゲイ・ユリエヴィッチ・イコニン
(72)【発明者】
【氏名】アレクサンダー・アレクサンドロヴィッチ・カラブトフ
(72)【発明者】
【氏名】ミハイル・ヴヤチェスラヴォヴィッチ・ソスルニコフ
(72)【発明者】
【氏名】ヴィクトール・アレクセーヴィッチ・ステッピン
(72)【発明者】
【氏名】エレナ・アレクサンドロブナ・アルシナ
【テーマコード(参考)】
5C159
【Fターム(参考)】
5C159PP04
5C159RC11
5C159TA16
5C159TB04
5C159UA02
5C159UA05
(57)【要約】
本開示は、ニューラルネットワークを採用するシステムに対する特徴マップ情報の効率的なシグナリングに関する。特に、デコーダサイドでは、存在インジケータは、ビットストリームから解析された情報に基づき取得される。取得済み存在インジケータの値に基づき、特徴マップ領域に関係するさらなるデータが解析されるか、または解析はバイパスされる。存在インジケータは、たとえば、ビットストリームに特徴マップデータが含まれているかどうかを指示する領域存在インジケータであり得るか、または特徴マップデータに関係するサイド情報がビットストリームに含まれているかどうかを指示するサイド情報存在インジケータであり得る。同様に、エンコーディング方法、さらにはエンコーディングおよびデコーディングデバイスも提供される。したがって、特徴マップデータは、デコードの複雑度の低減さらにはバイパスを適用することによる伝送データの量の低減を含めてより効率的に処理され得る。
【特許請求の範囲】
【請求項1】
ビットストリームに基づきニューラルネットワークによる処理のための特徴マップをデコードするための方法であって、
前記特徴マップの領域について、前記ビットストリームからの情報に基づき領域存在インジケータを取得するステップ(S110)と、
前記領域をデコードするステップ(S150)であって、
前記領域存在インジケータが第1の値を有するとき、前記領域をデコードするために前記ビットストリームからのデータを解析するステップ(S130)、および
前記領域存在インジケータが第2の値を有するとき、前記領域をデコードするために前記ビットストリームからのデータを解析することをバイパスするステップ(S140)を含む、ステップ(S150)とを含む、方法。
【請求項2】
前記領域存在インジケータが第2の値を有するとき、前記領域をデコードする前記ステップ(S150)は、
所定の規則に従って前記領域を設定するステップ(S230)をさらに含む、請求項1に記載の方法。
【請求項3】
前記所定の規則は、前記領域の前記特徴を定数に設定するステップを指定する、請求項2に記載の方法。
【請求項4】
前記定数は、0である、請求項3に記載の方法。
【請求項5】
前記ビットストリームから前記定数をデコードするステップ(S240)を含む、請求項3または4に記載の方法。
【請求項6】
前記ビットストリームは、前記領域存在インジケータを含む、請求項1から5のいずれか一項に記載の方法。
【請求項7】
前記ビットストリームからサイド情報を取得するステップと、前記サイド情報に基づき前記領域存在インジケータを取得するステップとをさらに含む、請求項1から5のいずれか一項に記載の方法。
【請求項8】
前記ビットストリームからサイド情報存在インジケータを取得するステップ(S310)と、
前記サイド情報存在インジケータが第3の値を有するとき、前記ビットストリームからの前記サイド情報を解析するステップ(S330)と、
前記サイド情報存在インジケータが第4の値を有するとき、前記ビットストリームからの前記サイド情報を解析することをバイパスするステップ(S340)とを含み、
前記サイド情報は、前記領域存在インジケータ、および前記領域のエントロピーデコーディングにおいて使用するための推定確率モデルを取得するためにニューラルネットワークによって処理されることに関する情報、のうちの少なくとも1つを含む、請求項7に記載の方法。
【請求項9】
前記サイド情報存在インジケータが前記第4の値を有するとき、前記方法は、前記サイド情報を所定のサイド情報値に設定するステップ(S580)を含む、請求項8に記載の方法。
【請求項10】
前記領域存在インジケータは、前記第1の値および前記第2の値によって形成される2つの値のみのうちの一方を取ることができるフラグである、請求項1から9のいずれか一項に記載の方法。
【請求項11】
前記領域は、前記特徴マップのチャネルである、請求項1から10のいずれか一項に記載の方法。
【請求項12】
前記特徴マップの複数のチャネルの有意性を指示する有意性順序を取得するステップ(S610)と、
最後の有意なチャネルインジケータを取得するステップ(S630)と、
前記最後の有意なチャネルインジケータに基づき前記領域存在インジケータを取得するステップ(S640、S645)とをさらに含む、請求項11に記載の方法。
【請求項13】
最後の有意なチャネルの指示は、前記ビットストリームからデコードされる品質インジケータに対応し、前記特徴マップの前記領域の圧縮から結果として生じる符号化済み特徴マップの品質を指示する、請求項12に記載の方法。
【請求項14】
最後の有意なチャネルの指示は、前記有意性順序内の前記最後の有意なチャネルのインデックスに対応する、請求項12に記載の方法。
【請求項15】
前記有意性順序を取得する前記ステップは、前記ビットストリームからの前記有意性順序の指示をデコードするステップを含む、請求項12から14のいずれか一項に記載の方法。
【請求項16】
前記有意性順序を取得する前記ステップ(S630)は、前記特徴マップが生成されたソースデータに関する以前にデコードされた情報に基づき前記有意性順序を導出するステップを含む、請求項12から15のいずれか一項に記載の方法。
【請求項17】
前記有意性順序を取得する前記ステップ(S630)は、前記特徴マップが生成されたソースデータのタイプに関する以前にデコードされた情報に基づき前記有意性順序を導出するステップを含む、請求項12から16のいずれか一項に記載の方法。
【請求項18】
前記ビットストリームから、最も有意なチャネルから前記最後の有意なチャネルまでの前記有意性順序に従って前記ビットストリーム内でソートされたチャネルをデコードするステップ(S680)をさらに含む、請求項12から17のいずれか一項に記載の方法。
【請求項19】
前記ビットストリームから、特徴マップの前記領域をユニットに分割することを指示する領域分割情報をデコードし、
前記分割情報に応じて、特徴マップデータが前記ビットストリームから解析されるべきか、または前記領域のユニットをデコードするために解析されるべきでないかを指示するユニット存在指示を取得するステップをさらに含む、請求項1から18のいずれか一項に記載の方法。
【請求項20】
前記領域に対する前記領域分割情報は、前記ビットストリームが前記領域の前記ユニットの寸法および/または位置を指定するユニット情報を含んでいるか含んでいないかを指示するフラグを含み、
前記方法は、前記ビットストリームからの情報に基づき前記領域のユニット毎の前記ユニット存在指示を取得するステップと、
ユニットに対する前記ユニット存在指示の値に応じて、前記ビットストリームから前記ユニットに対する特徴マップデータを解析する、または解析しないステップとを含む、請求項18に記載の方法。
【請求項21】
前記ビットストリームは、前記ユニット存在インジケータを含む、請求項19または20に記載の方法。
【請求項22】
前記ユニット情報は、四分木、二分木、三分木、または三角分割のうちの少なくとも1つを含む前記領域(2000)の階層的分割を指定する、請求項20または21に記載の方法。
【請求項23】
前記ビットストリームから前記領域をデコードする前記ステップは、
前記ビットストリームから、前記領域の係数のうちの最後の係数の位置を指示する最後の有意な係数インジケータを抽出するステップ(S720)と、
前記ビットストリームから前記領域の有意な係数をデコードするステップ(S750、S760)と、
事前定義された規則に従って前記最後の有意な係数インジケータに続く前記係数を設定するステップ(S740)と、
前記領域の前記係数の逆変換によって前記領域の特徴データを取得するステップ(S770)とを含む、請求項1から22のいずれか一項に記載の方法。
【請求項24】
前記逆変換(S770)は、逆離散コサイン変換、逆離散サイン変換、または逆離散コサイン変換もしくは逆離散コサイン変換を修正することによって取得される逆変換、または畳み込みニューラルネットワーク変換である、請求項23に記載の方法。
【請求項25】
前記ビットストリームから、前記ビットストリームが前記特徴マップに対する任意のサイド情報を含むか含まないかを指示するサイド情報存在フラグをデコードするステップをさらに含み、前記サイド情報は、前記特徴マップのエントロピーデコーディングにおいて使用するための推定確率モデルを取得するためにニューラルネットワークによって処理されることに関する情報を含む、請求項1から24のいずれか一項に記載の方法。
【請求項26】
前記領域存在インジケータのデコードする前記ステップは、コンテキスト適応エントロピーデコーダによってデコードするステップを含む、請求項1から25のいずれか一項に記載の方法。
【請求項27】
ビットストリームからニューラルネットワークによる処理のための特徴マップをデコードするための方法であって、
前記ビットストリームから、前記特徴マップに関するサイド情報インジケータを取得するステップ(S310)と、
前記特徴マップをデコードするステップ(S350)であって
前記サイド情報インジケータが第5の値を有するとき、前記ビットストリームから、前記特徴マップをデコードするための前記サイド情報を解析するステップ(S330)、および
前記サイド情報インジケータが第6の値を有するとき、前記ビットストリームから、前記特徴マップをデコードするための前記サイド情報を解析することをバイパスするステップ(S340)を含む、ステップ(S350)とを含む方法。
【請求項28】
エントロピーデコーディング(S590)をさらに含み、前記エントロピーデコーディングは、ニューラルネットワークによって処理されたデコード済み特徴マップに基づく、請求項27に記載の方法。
【請求項29】
前記サイド情報インジケータが前記第6の値を有するとき、前記方法は、前記サイド情報を所定のサイド情報値に設定するステップ(S580)を含む、請求項28に記載の方法。
【請求項30】
前記所定のサイド情報値は、0である請求項29に記載の方法。
【請求項31】
前記ビットストリームから前記所定のサイド情報値をデコードするステップ(S590)を含む、請求項29または30に記載の方法。
【請求項32】
画像をデコードするための方法であって、
ビットストリームからニューラルネットワークによる処理のための特徴マップをデコードするための請求項1から31のいずれか一項に記載の前記方法と、
前記ニューラルネットワークによりデコード済み特徴マップを処理するステップを含むデコード済み画像を取得するステップとを含む方法。
【請求項33】
前記特徴マップは、
符号化済み画像データ、および/または
前記画像データをデコードするための符号化済みサイド情報を表す、請求項32に記載の方法。
【請求項34】
コンピュータビジョンのための方法であって、
ビットストリームからニューラルネットワークによる処理のための特徴マップをデコードするための請求項1から31のいずれか一項に記載の前記方法と、
前記ニューラルネットワークによりデコード済み特徴マップを処理することを含むコンピュータビジョンタスクを行うステップとを含む方法。
【請求項35】
前記コンピュータビジョンタスクは、物体検出、物体分類、および/または物体認識である請求項32に記載の方法。
【請求項36】
ビットストリーム内にニューラルネットワークによる処理のための特徴マップをエンコードするための方法であって、
前記特徴マップの領域について、領域存在インジケータを取得するステップ(S160)と、
取得済み領域存在インジケータに基づき、
前記領域存在インジケータが第1の値を有するとき、前記特徴マップの前記領域を前記ビットストリーム内にエンコードする(S180)か、
または前記領域存在インジケータが第2の値を有するとき、前記特徴マップの前記領域を前記ビットストリーム内にエンコードすることをバイパスする(S190)
決定を実施するステップ(S170)とを含む方法。
【請求項37】
前記領域存在インジケータは、前記ビットストリーム内に指示される請求項36に記載の方法。
【請求項38】
決定する前記ステップ(S170)は、前記領域の前記特徴の値を評価するステップを含む、請求項36に記載のエンコードするための方法。
【請求項39】
決定する前記ステップ(S170)は、前記ニューラルネットワーク処理の結果の品質に対する前記領域の影響に基づく、請求項36から38のいずれか一項に記載のエンコードするため方法。
【請求項40】
決定する前記ステップ(S170)は、
最も有意な領域のビットから始まり、合計が事前構成済み閾値を超えるまで有意性が低くなる領域を続ける前記特徴マップの伝送に必要なビットの合計を段階的に決定するステップ(S450)と、
前記合計が前記事前構成済み閾値を超えなかった前記領域と、エンコード済み領域に対する前記第1の値を有する前記領域存在インジケータとをエンコードするステップ(S270、S280)と、
非エンコード済み領域に対する前記第2の値を有する前記領域存在インジケータをエンコードするステップ(S470)とを含む、請求項36から39のいずれか一項に記載のエンコードするための方法。
【請求項41】
ビットストリーム内にニューラルネットワークによる処理のための特徴マップをエンコードするための方法であって、
前記特徴マップを取得するステップ(S360)と、
前記特徴マップに関するサイド情報を指示するかどうかを決定するステップ(S370)であって、前記ビットストリーム内に、
(S380)第3の値および前記サイド情報を指示するサイド情報インジケータ、
または(S390)第4の値を前記サイド情報なしで指示する前記サイド情報インジケータのいずれかを
指示する、ステップ(S370)とを含む方法。
【請求項42】
非一時的媒体に記憶されたコンピュータプログラムであって、1つまたは複数のプロセッサで実行されたとき方法1から41のいずれかの方法のステップを行うコードを含むコンピュータプログラム。
【請求項43】
ビットストリームに基づきニューラルネットワークによる処理のための特徴マップをデコードするためのデバイス(2300)であって、
前記特徴マップの領域について、前記ビットストリームからの情報に基づき領域存在インジケータを取得するように構成されている領域存在インジケータ取得モジュール(2310)と、
デコードモジュール(2320)であって、
前記領域存在インジケータが第1の値を有するとき、前記領域をデコードするために前記ビットストリームからのデータを解析するステップ、および
前記領域存在インジケータが第2の値を有するとき、前記領域をデコードするために前記ビットストリームからのデータを解析することをバイパスするステップ
を含んで、前記領域をデコードするように構成されているデコードモジュール(2320)とを含むデバイス(2300)。
【請求項44】
ビットストリームからニューラルネットワークによる処理のための特徴マップをデコードするためのデバイス(2400)であって、
前記ビットストリームから、前記特徴マップに関するサイド情報インジケータを取得するように構成されているサイド情報インジケータ取得モジュール(2410)と、
デコードモジュール(2420)であって、
前記サイド情報インジケータが第5の値を有するとき、前記ビットストリームから、前記特徴マップをデコードするための前記サイド情報を解析するステップ、および
前記サイド情報インジケータが第6の値を有するとき、前記ビットストリームから、前記特徴マップをデコードするための前記サイド情報を解析することをバイパスするステップ
を含んで、前記特徴マップをデコードするように構成されているデコードモジュール(2420)とを含むデバイス(2400)。
【請求項45】
ビットストリーム内にニューラルネットワークによる処理のための特徴マップをエンコードするためのデバイス(2350)であって、
特徴マップ領域存在インジケータを取得するように構成されている特徴マップ領域存在インジケータ取得モジュール(2360)と、
エンコード制御モジュール(2370)であって、取得済み特徴マップ領域存在インジケータに基づき、
前記特徴マップ領域存在インジケータが第1の値を有するとき、前記特徴マップの領域を前記ビットストリーム内にエンコードし、
前記特徴マップ領域存在インジケータが第2の値を有するとき、前記特徴マップの領域を前記ビットストリーム内にエンコードすることをバイパスする
決定を実施するように構成されているエンコード制御モジュール(2370)とを含むデバイス(2350)。
【請求項46】
ビットストリーム内にニューラルネットワークによる処理のための特徴マップをエンコードするためのデバイス(2450)であって、
前記特徴マップを取得するように構成されている特徴マップ取得モジュール(2460)と、
前記特徴マップに関するサイド情報を指示するかどうかを決定するように構成されているエンコード制御モジュール(2470)であって、前記ビットストリーム内に、
第3の値および前記サイド情報を指示するサイド情報インジケータか、
または第4の値を前記サイド情報なしで指示する前記サイド情報インジケータのいずれかを
指示する、エンコード制御モジュール(2470)とを含むデバイス(2450)。
【請求項47】
ビットストリームに基づきニューラルネットワークによる処理のための特徴マップをデコードするためのデバイスであって、請求項1から31のいずれか一項に記載の前記方法のステップを行うように構成されている処理回路を含むデバイス。
【請求項48】
ビットストリーム内にニューラルネットワークによる処理のための特徴マップをエンコードするためのデバイスであって、請求項36から41のいずれか一項に記載の前記方法のステップを行うように構成されている処理回路を含むデバイス。
【発明の詳細な説明】
【技術分野】
【0001】
本開示の実施形態は、概して、特徴マップまたは他のサイド情報などの、ニューラルネットワーク処理に関係する情報をシグナリングする分野に関する。
【背景技術】
【0002】
ハイブリッド画像およびビデオコーデックは、画像およびビデオデータを圧縮するために数十年にわたり使用されてきた。そのようなコーデックでは、信号は、典型的には、ブロックを予測し、元のブロックとその予測との間の差分のみをさらに符号化することによって、ブロックに関してエンコードされる。特に、そのような符号化は、変換、量子化、およびビットストリームの生成を含み得るが、通常、何らかのエントロピー符号化を含む。典型的には、ハイブリッド符号化法の3つの構成要素である変換、量子化、およびエントロピー符号化は、別々に最適化される。高効率ビデオ符号化(HEVC)、多用途ビデオ符号化(VVC)、および基本ビデオ符号化(EVC)のような最新のビデオ圧縮標準も、予測後に残差信号を符号化するために変換表現を使用する。
【0003】
近年、機械学習は、画像およびビデオ符号化に適用されている。一般に、機械学習は、画像およびビデオ符号化に対して様々な異なる方法で適用され得る。たとえば、いくつかのエンドツーエンドで最適化された画像またはビデオ符号化方式が議論されてきた。さらに、機械学習は、予測パラメータもしくは同様のものの選択または圧縮といった、エンドツーエンド符号化のいくつかの部分を決定または最適化するために使用されてきた。これらの適用は、エンコーダとデコーダとの間で伝達されるべきいくつかの特徴マップデータを生成する点で共通している。ビットストリームの効率的な構造は、画像/ビデオソース信号をエンコードするビット数の削減に大きく寄与し得る。
【0004】
特徴マップデータの効率的なシグナリングはまた、他の機械学習アプリケーションのために、または分散されていてもよい機械学習システムの層の間で特徴マップデータまたは関係する情報を伝達するために有益である。
【0005】
コラボレーティブインテリジェンスは、モバイル-クラウドインフラストラクチャ上でディープニューラルネットワークを効率的に展開するためのいくつかの新しいパラダイムのうちの1つである。ネットワークを、たとえば(モバイル)デバイスとクラウドとの間で分割することによって、システムの全体的なエネルギーおよび/またはレイテンシーが最小化されるように計算作業負荷を分散することが可能である。一般に、計算作業負荷を分散することは、リソースが限られたデバイスがニューラルネットワークのデプロイにおいて使用されることを可能にする。さらに、コンピュータビジョンタスクまたは機械用の画像/ビデオ符号化も、分散方式で動作し、コラボレーティブインテリジェンスを利用し得る、アプリケーションである。
【0006】
ニューラルネットワークは、通常、2つ以上の層を含む。特徴マップは、層の出力である。デバイス間、たとえばデバイスとクラウドとの間、または異なるデバイスの間で分割されるニューラルネットワークでは、分割する場所(たとえば、第1のデバイス)の出力における特徴マップは、圧縮され、ニューラルネットワークの残る層に(たとえば、第2のデバイスに)伝送される。
【0007】
伝送リソースは、典型的には、限られているので、品質に関する多様な要件をサポートする構成可能性を依然として提供しながら、転送されるデータの量を減らすことが望ましい。
【発明の概要】
【課題を解決するための手段】
【0008】
本発明は、ニューラルネットワークで使用されるデータを圧縮するための方法および装置に関するものである。そのようなデータは、限定はしないが、特徴(たとえば、特徴マップ)を含み得る。
【0009】
本発明は、独立請求項の範囲によって定められる。有利な実施形態のいくつかは、従属請求項で提供される。
【0010】
特に、本開示のいくつかの実施形態は、ニューラルネットワークによって使用可能な特徴マップのデータのシグナリングに関する。効率は、ビットストリーム構造を注意深く設計することによって改善され得る。特に、存在インジケータは、特徴マップデータまたは一般にサイド情報の存在または不存在を示すためにシグナリングされる。存在インジケータに応じて、特徴マップまたはその領域のエンコードおよび/またはデコードが行われるか、もしくはスキップされる。
【0011】
一態様によれば、ビットストリームに基づきニューラルネットワークによる処理のための特徴マップをデコードするための方法が提供され、この方法は、特徴マップの領域について、ビットストリームからの情報に基づき領域存在インジケータを取得することを含み、領域をデコードすることは、領域存在インジケータが第1の値を有するとき、領域をデコードするためにビットストリームからのデータを解析することと、領域存在インジケータが第2の値を有するとき、領域をデコードするためにビットストリームからのデータを解析することをバイパスすることとを含む。したがって、特徴マップデータは、ビットストリーム内に効率よく符号化され得る。特に、解析をスキップすることで、エントロピーデコーディングの複雑さを減らし、さらにはレートを減らし(ビットストリーム内に含まれるべきデータの量を減らし)得る。
【0012】
いくつかの実施形態において、領域存在インジケータは、ビットストリームからデコードされる。
【0013】
いくつかの実施形態において、領域存在インジケータは、ビットストリーム内でシグナリングされた情報に基づき導出される。たとえば、領域存在インジケータが第2の値を有するとき、領域をデコードすることは、所定の規則に従って領域を設定することをさらに含む。欠如している特徴マップデータの部分をどのように埋めるかを示す規則を有することが可能であることは、デコーダが非シグナリングデータを適切に補償することを可能とする。
【0014】
たとえば、所定の規則は、領域の特徴を定数に設定することを指定する。定数埋め込みは、すべての特徴要素のエントロピーデコーディングも伴わない欠落部分を埋める計算が単純で効率的な方法である。いくつかの実施形態において、定数は、ゼロである。
【0015】
この方法は、ビットストリームから前記定数をデコードするステップを含み得る。定数をシグナリングすることは、柔軟性を提供し、再構成された結果を改善し得る。
【0016】
例示的な一実装形態において、方法は、ビットストリームから、サイド情報存在インジケータを取得することと、サイド情報存在インジケータが第3の値を有するとき、ビットストリームからのサイド情報を解析することと、サイド情報存在インジケータが第4の値を有するとき、ビットストリームからのサイド情報を解析することをバイパスすることとを含み、サイド情報は、領域存在インジケータ、および領域のエントロピーデコーディングにおいて使用するための推定確率モデルを得るためにニューラルネットワークによって処理されることに関する情報、のうちの少なくとも1つをさらに含み得る。追加のサイド情報は、より洗練された設定を可能にし得る。サイド情報に対する存在インジケータは、その符号化モードを効率的にし得る。
【0017】
たとえば、サイド情報存在インジケータが第4の値を有するとき、方法は、サイド情報を所定のサイド情報値に設定することを含む。サイド情報を埋め込む機能の提供は、欠落(非シグナリング)データへの対処を可能にする。
【0018】
いくつかの実施形態において、領域存在インジケータは、第1の値および第2の値によって形成される2つの値のみのうちの一方を取ることができるフラグである。二値フラグは、特にレート効率の高い指示を提供する。
【0019】
いくつかの実施形態において、領域は、特徴マップのチャネルである。チャネルレベルは、自然な層粒度である。チャネルは、すでに別々に(分離可能)利用可能であるので、さらなるパーティショニングは必要ない。したがって、チャネル毎の粒度を利用することは、レートおよび歪みをスケーリングする効率的な方法である。しかしながら、チャネルの領域は、任意の他の粒度、たとえば、チャネルの部分領域またはユニット、部分領域またはユニットの同じ空間的配置に対応する異なるチャネルの値、特徴マップの単一の値、異なるチャネルにおける同じ空間的配置での値を有し得ることが理解される。
【0020】
この方法は、特徴マップの複数のチャネルの有意性を示す有意性順序(significance order)を取得することと、最後の有意なチャネルインジケータを取得することと、最後の有意なチャネルインジケータに基づき領域存在インジケータを取得することとをさらに含み得る。チャネル、または一般に特徴マップの領域を順序付けることは、領域存在のシグナリングを簡素化するのに役立ち得る。いくつかの実施形態において、最後の有意なチャネルの指示は、有意性順序内の最後の有意なチャネルのインデックスに対応する。領域毎にフラグをシグナリングする代わりに、ビットストリーム内のサイド情報として伝送される最後の有意な領域のシグナリングは、より効率的であり得る。
【0021】
最後の有意なチャネルの指示は、ビットストリームからデコードされる品質インジケータに対応し、特徴マップの領域の圧縮から結果として生じる符号化済み特徴マップの品質を示し得る。したがって、領域チャネル存在は、品質は通常他の目的のためにもビットストリーム中のサイド情報として示されるので、追加のシグナリングなしで導出され得る。
【0022】
たとえば、有意性順序の取得は、ビットストリームからの有意性順序の指示のデコーディングを含む。明示的なシグナリングは、順序を設定し/構成する完全な柔軟性を提供し得る。しかしながら、本開示は、有意性順序の明示的なシグナリングに限定されない。
【0023】
例示的な一実装形態において、有意性順序の取得は、特徴マップが生成されたソースデータに関する以前にデコードされた情報(またはサイド情報)に基づき有意性順序を導出することを含む。この実装形態の利点の1つは、追加のシグナリングオーバーヘッドが低いことである。
【0024】
たとえば、有意性順序の取得は、特徴マップが生成されたソースデータのタイプに関する以前にデコードされた情報に基づき有意性順序を導出することを含む。ソースデータのタイプは、データの目的および特性、したがって、その再構成に要求される品質についても良い指示を提供し得る。
【0025】
たとえば、ビットストリームから、最も有意なチャネルから最後の有意なチャネルまでの有意性順序に従ってビットストリーム内でソートされたチャネルをデコードすることを含む。これは、望ましい品質レベルに従って最も有意性の低いチャネルを落とす(カットする)ことによって再エンコードすることなくビットレートを減少させることを可能にするビットレートスケーラビリティ特徴が使用可能になるであろう。
【0026】
例示的な一実装形態において、方法は、ビットストリームから、特徴マップの領域をユニットに分割することを指示する領域分割情報をデコードし、分割情報に応じて、領域のユニットをデコードするために特徴マップデータがビットストリームから解析されるべきか解析されるべきでないかを指示するユニット存在指示をデコードするか、またはデコードしないステップをさらに含む。チャネルなどの領域をユニット(パーティション)にさらに分割(パーティション分割)することで、これらのユニットの存在を指示する粒度をさらに細かくし、したがって、オーバーヘッドをより柔軟にスケーリングし得る。
【0027】
たとえば、領域に対する領域分割情報は、ビットストリームが領域のユニットの寸法および/または位置を指定するユニット情報を含んでいるか含んでいないかを指示するフラグを含み、方法は、ビットストリームから領域のユニット毎のユニット存在指示をデコードすることと、ユニットに対するユニット存在指示の値に応じて、ビットストリームからユニットに対する特徴マップデータを解析すること、または解析しないこと、とを含む。分割のパラメータをシグナリングすることによって、レートおよび歪みの関係は、追加の自由度により制御され得る。
【0028】
いくつかの実施形態において、ユニット情報は、四分木、二分木、三分木、または三角分割のうちの少なくとも1つを含む領域の階層的分割を指定する。これらの分割は、たとえばハイブリッドコーデックのために開発されたような、効率的なシグナリングの利点を提供する。
【0029】
いくつかの例示的な実装形態において、ビットストリームからの領域のデコーディングは、ビットストリームから、領域の係数のうちの最後の係数の位置を指示する最後の有意な係数インジケータを抽出することと、ビットストリームから領域の有意な係数をデコードすることと、予め定められた規則に従って最後の有意な係数インジケータに続く係数を設定することと、領域の係数の逆変換によって領域の特徴データを取得することとを含む。変換の適用および変換後の係数の符号化は、有意な係数は典型的にはインデックスが低い係数の領域内に配置されるので有意な係数を容易に識別することを可能にする。これは、シグナリング効率をさらに高め得る。
【0030】
たとえば、逆変換は、逆離散コサイン変換、逆離散サイン変換、または逆離散コサイン変換もしくは逆離散コサイン変換を修正することによって取得される逆変換、または畳み込みニューラルネットワーク変換である。これらの例示的な変換は、残差符号化の目的ですでに使用されており、たとえば、既存のハードウェア/ソフトウェア/アルゴリズムアプローチで、効率的に実装され得る。
【0031】
この方法は、ビットストリームから、ビットストリームが前記特徴マップに対する任意のサイド情報を含むか含まないかを指示するサイド情報存在フラグをデコードすることをさらに含むものとしてよく、サイド情報は、特徴マップのエントロピーデコーディングにおいて使用するための推定確率モデルを取得するためにニューラルネットワークによって処理されることに関する情報を含む。サイド情報についての存在指示は、特徴マップ領域存在指示と同様に、より効率的なシグナリングを提供し得る。
【0032】
たとえば、領域存在インジケータのデコーディングは、コンテキスト適応エントロピーデコーダによるデコーディングを含む。適応エントロピー符号化によりさらにエンコード/デコードすることで、ビットストリームをさらにコンパクトにする。
【0033】
一態様によれば、ビットストリームからニューラルネットワークによる処理のための特徴マップをデコードするための方法が提供され、この方法は、ビットストリームから、特徴マップに関するサイド情報インジケータを取得することを含み、特徴マップをデコードすることはサイド情報インジケータが第5の値を有するとき、ビットストリームから、特徴マップをデコードするためのサイド情報を解析することと、サイド情報インジケータが第6の値を有するとき、ビットストリームから、特徴マップをデコードするためのサイド情報を解析することをバイパスすることとを含む。サイド情報についての存在指示は、特徴マップ領域存在指示と同様に、より効率的なシグナリングを提供し得る。
【0034】
この方法は、エントロピーデコーディングを含んでいてもよく、エントロピーデコーディングは、ニューラルネットワークによって処理されたデコード済み特徴マップに基づく。これは、エントロピーコーダーをコンテンツに効率的に適応させることを可能にする。
【0035】
たとえば、サイド情報インジケータが第6の値を有するとき、方法は、サイド情報を所定のサイド情報値に設定することを含む。したがって、サイド情報値のシグナリングは省かれ、それによりレート改善に至り得る。たとえば、所定のサイド情報値はゼロである。
【0036】
いくつかの実施形態において、この方法は、ビットストリームから前記所定のサイド情報値をデコードするステップを含む。既定で使用されるべき値の提供は、その設定の柔軟性を高める。
【0037】
一態様によれば、画像をデコードするための方法が提供され、この方法はビットストリームからニューラルネットワークによる処理のための特徴マップをデコードするための上述されている方法のいずれかによる方法と、ニューラルネットワークによりデコード済み特徴マップを処理することを含むデコード済み画像を取得するステップとを含む。機械学習ベースの画像またはビデオ符号化のための上記の方法の適用は、そのような符号化の効率をかなり改善し得る。たとえば、特徴マップは、符号化済み画像データ、および/または画像データをデコードするための符号化済みサイド情報を表す。
【0038】
別の態様では、コンピュータビジョンのための方法が提供され、この方法は、ビットストリームからニューラルネットワークによる処理のための特徴マップをデコードするための上述されている方法のいずれかによる方法と、ニューラルネットワークによりデコード済み特徴マップを処理することを含むコンピュータビジョンタスクを行うステップとを含む。マシンビジョンタスクに対する上記の方法の適用は、特に分散方式で実装される場合に、ニューラルネットワークなどの機械学習ベースのモデル内の情報の転送によって必要とされるレートを低減するのに役立ち得る。たとえば、コンピュータビジョンタスクは、物体検出、物体分類、および/または物体認識である。
【0039】
一態様によれば、ビットストリーム内にニューラルネットワークによる処理のための特徴マップをエンコードするための方法が提供され、この方法は、特徴マップの領域について、特徴マップの取得済み領域存在インジケータに基づき、領域存在インジケータを取得することと、領域存在インジケータが第1の値を有するとき、特徴マップの領域をエンコードし、領域存在インジケータが第2の値を有するとき、特徴マップの領域をエンコードすることをバイパスすることを決定することとを含む。
【0040】
いくつかの実施形態において、領域存在インジケータは、ビットストリーム内で指示される。
【0041】
いくつかの実施形態において、領域存在インジケータは、ビットストリーム内ですでにシグナリングされている情報に基づき導出される。
【0042】
本明細書において言及されているエンコード方法は、ビットストリームに特定の構造を付与し、対応するデコード方法について上述した利点を利用可能にする。
【0043】
たとえば、決定する(または領域存在インジケータを取得する)ことは、領域の特徴の値を評価することを含む。シグナリングのコンテキスト/コンテンツベースの適応は、特定の相関を利用し、符号化済みストリームのレートをしかるべく低減することを可能にする。そのような方法で、決定すること(または領域存在インジケータを取得すること)は、領域のコンテキストにおいて値を評価すること、言い換えれば、特徴マップの領域に空間的に隣接する値を評価することを含み得る。
【0044】
いくつかの実施形態において、決定することは、前記ニューラルネットワーク処理の結果の品質に対する領域の影響に基づく。そのような決定は、情報をカットした結果生じる歪みに敏感なレートの低減に至る。
【0045】
例示的な一実装形態によれば、決定することは、最も有意な領域のビットから始まり、合計が事前構成済み閾値を超えるまで有意性が低くなる領域まで続く特徴マップの伝送に必要なビットの合計を段階的に決定することと、合計が事前構成済み閾値を超えなかった領域をエンコードし、領域存在インジケータはエンコード済み領域に対する第1の値を有することと、非エンコード済み領域(未エンコード済み領域とも称される)に対して第2の値を有する領域存在インジケータをエンコードすることを含む。このアプローチは、結果として得られるストリームのレートおよび歪みに課された制約を満たす計算効率の高いアプローチを提供する。
【0046】
一態様によれば、ビットストリーム内にニューラルネットワークによる処理のための特徴マップをエンコードするための方法が提供され、この方法は、特徴マップを取得することと、特徴マップに関するサイド情報を指示するかどうかを決定することと、ビットストリーム内で、第3の値を指示するサイド情報インジケータ、およびサイド情報、またはサイド情報なしで第4の値を指示するサイド情報インジケータ、のいずれかを指示することとを含む。したがって、エンコーディングは、要求された品質/レートを達成するために事実上必要な情報のみをシグナリングすることが可能であり得る。
【0047】
いくつかの実施形態において、領域存在インジケータおよび/またはサイド情報インジケータは、第1の値および第2の値によって形成される2つの値のみのうちの一方を取ることができるフラグである。二値フラグは、特にレート効率の高い指示を提供する。いくつかの実施形態において、領域は、特徴マップのチャネルである。
【0048】
特徴マップの領域は、異なる粒度、たとえば、チャネルの部分領域またはユニット、部分領域またはユニットの同じ空間的配置に対応する異なるチャネルの値、特徴マップの単一の値、異なるチャネルにおける同じ空間的配置での値を有し得ることが理解される。
【0049】
この方法は、特徴マップの複数のチャネルの有意性を指示する有意性順序を取得することと、最後の有意なチャネルインジケータを取得することと、最後の有意なチャネルインジケータに基づき領域存在インジケータを取得することとをさらに含み得る。いくつかの実施形態において、最後の有意なチャネルの指示は、有意性順序内の最後の有意なチャネルのインデックスに対応する。
【0050】
最後の有意なチャネルの指示は、サイド情報としてビットストリーム内にエンコード(挿入)される品質インジケータに対応し、特徴マップの領域の圧縮から結果として生じる符号化済み特徴マップの品質を示し得る。
【0051】
たとえば、有意性順序指示は、サイド情報としてビットストリーム内に挿入(エンコード)される。
【0052】
例示的な一実装形態において、有意性順序の取得は、特徴マップが生成されたソースデータに関する以前にエンコードされた情報に基づき有意性順序を導出することを含む。たとえば、有意性順序の取得は、特徴マップが生成されたソースデータのタイプに関する以前にエンコードされた情報に基づき有意性順序を導出することを含む。
【0053】
たとえば、ビットストリーム内に、最も有意なチャネルから最後の有意なチャネルまでの有意性順序に従ってビットストリーム内でソートされたチャネルをエンコードすることを含む。
【0054】
例示的な一実装形態において、方法は、ビットストリーム内に、特徴マップの領域をユニットに分割することを指示する領域分割情報をエンコードし、分割情報に応じて、領域のユニットをデコードするために特徴マップデータがビットストリーム内に含まれるかどうかを指示するユニット存在指示をエンコード(ビットストリーム内に挿入)するか、またはエンコード(ビットストリーム内に挿入)しないステップをさらに含む。
【0055】
たとえば、領域に対する領域分割情報は、ビットストリームが領域のユニットの寸法および/または位置を指定するユニット情報を含んでいるか含んでいないかを指示するフラグを含み、方法は、ビットストリームから領域のユニット毎のユニット存在指示をデコードすることと、ユニットに対するユニット存在指示の値に応じて、ビットストリームからユニットに対する特徴マップデータを解析すること、または解析しないこと、とを含む。分割のパラメータをシグナリングすることによって、レートおよび歪みの関係は、追加の自由度により制御され得る。
【0056】
いくつかの実施形態において、ユニット情報は、四分木、二分木、三分木、または三角分割のうちの少なくとも1つを含む領域の階層的分割を指定する。
【0057】
いくつかの例示的な実装形態において、ビットストリーム内への領域のエンコーディングは、ビットストリーム内に、領域の係数のうちの最後の係数の位置を指示する最後の有意な係数インジケータを含めることと、ビットストリーム内に領域の有意な係数をエンコードすることと、変換によって領域の特徴データを変換し、それによって領域の係数を取得することとを含む。
【0058】
たとえば、逆変換は、逆離散コサイン変換、逆離散サイン変換、または逆離散コサイン変換もしくは逆離散コサイン変換を修正することによって取得される逆変換、または畳み込みニューラルネットワーク変換である。
【0059】
この方法は、ビットストリーム内に、ビットストリームが前記特徴マップに対する任意のサイド情報を含むか含まないかを指示するサイド情報存在フラグをエンコードすることをさらに含むものとしてよく、サイド情報は、特徴マップのエントロピーデコーディングにおいて使用するための推定確率モデルを取得するためにニューラルネットワークによって処理されることに関する情報を含む。
【0060】
たとえば、領域存在インジケータおよび/またはサイド情報インジケータのエンコーディングは、コンテキスト適応エントロピーエンコーダによるエンコーディングを含む。
【0061】
一態様によれば、ビットストリーム内にニューラルネットワークによる処理のための特徴マップをエンコードするための方法が提供され、この方法は、ビットストリーム内に、特徴マップに関するサイド情報インジケータを含めることを含み、特徴マップをエンコードすることは、ビットストリーム内に、サイド情報インジケータの第5の値を挿入し、サイド情報は特徴マップをデコードするための情報であり、サイド情報をビットストリーム内に含めるか、またはビットストリーム内にサイド情報インジケータの第6の値を含め、ビットストリーム内に特徴マップ領域に対するサイド情報を挿入しない、ことを含む。
【0062】
この方法は、エントロピーエンコーディングを含んでいてもよく、エントロピーエンコーディングは、ニューラルネットワークによって処理されたエンコード済み特徴マップに基づく。
【0063】
たとえば、サイド情報インジケータが第6の値を有するとき、エンコーダはそれによってサイド情報をデコーダ側の所定のサイド情報値に設定することを制御する。いくつかの実施形態において、この方法は、ビットストリーム内に前記所定のサイド情報値をエンコードするステップを含む。
【0064】
一態様によれば、画像をエンコードするための方法が提供され、この方法はニューラルネットワークにより入力画像を処理することによってエンコード済み画像を取得し、それによって特徴マップを取得することと、特徴マップをビットストリーム内にエンコードするための上述されている方法のいずれかによる方法とを含む。たとえば、特徴マップは、符号化済み画像データ、および/または画像データをデコードするための符号化済みサイド情報を表す。
【0065】
別の態様では、コンピュータビジョンのための方法が提供され、この方法は、ビットストリーム内にニューラルネットワークによって処理された特徴マップをエンコードするための上述されている方法のいずれかによる方法と、画像を処理しそれによってニューラルネットワークにより特徴マップを取得し、デコーダに、それに基づきコンピュータビジョンタスクを行うための特徴マップを提供するステップとを含む。たとえば、コンピュータビジョンタスクは、物体検出、物体分類、および/または物体認識である。
【0066】
一態様によれば、非一時的媒体に記憶されたコンピュータプログラムは、1つまたは複数のプロセッサで実行されたとき上に提示された方法のうちのいずれかの方法のステップを行うコードを含む。
【0067】
一態様によれば、ビットストリームに基づきニューラルネットワークによる処理のための特徴マップをデコードするためのデバイスが提供され、このデバイスは、特徴マップの領域について、ビットストリームからの情報に基づき領域存在インジケータを取得するように構成されている領域存在インジケータ取得モジュールと、デコードモジュールであって、領域存在インジケータが第1の値を有するとき、領域をデコードするためにビットストリームからのデータを解析することと、領域存在インジケータが第2の値を有するとき、領域をデコードするためにビットストリームからのデータを解析することをバイパスすることとを含んで、領域をデコードするように構成されているデコードモジュールとを含む。
【0068】
一態様によれば、ビットストリームからニューラルネットワークによる処理のための特徴マップをデコードするためのデバイスが提供され、このデバイスは、ビットストリームから、特徴マップに関するサイド情報インジケータを取得するように構成されているサイド情報インジケータ取得モジュールと、特徴マップをデコードするように構成されているデコードモジュールであって、デコードすることはサイド情報インジケータが第5の値を有するとき、ビットストリームから、特徴マップをデコードするためのサイド情報を解析することと、サイド情報インジケータが第6の値を有するとき、ビットストリームから、特徴マップをデコードするためのサイド情報を解析することをバイパスすることとを含む、デコードモジュールとを含む。
【0069】
一態様によれば、ビットストリーム内にニューラルネットワークによる処理のための特徴マップをエンコードするためのデバイスが提供され、このデバイスは、特徴マップを取得するように構成されている特徴マップ取得モジュールと、取得済み特徴マップに基づき、領域存在インジケータを取得し、取得済み領域存在インジケータに基づき、領域存在インジケータが第1の値を有するとき、特徴マップの領域をエンコードするか、または領域存在インジケータが第2の値を有するとき、特徴マップの領域をエンコードすることをバイパスすることを決定する、ように構成されているエンコード制御モジュールとを含む。
【0070】
一態様によれば、ビットストリーム内にニューラルネットワークによる処理のための特徴マップをエンコードするためのデバイスが提供され、このデバイスは、特徴マップを取得するように構成されている特徴マップ取得モジュールと、特徴マップに関するサイド情報を指示するかどうかを決定するように構成されているエンコード制御モジュールであって、ビットストリーム内で、第3の値を指示するサイド情報インジケータ、およびサイド情報、またはサイド情報なしで第4の値を指示するサイド情報インジケータ、のいずれかを指示する、エンコード制御モジュールとを含む。
【0071】
一態様によれば、ビットストリームに基づきニューラルネットワークによる処理のための特徴マップをデコードするためのデバイスが提供され、このデバイスは、前記の方法のいずれかによる方法のステップを行うように構成されている処理回路を含む。
【0072】
一態様によれば、ビットストリーム内にニューラルネットワークによる処理のための特徴マップをエンコードするためのデバイスが提供され、このデバイスは、前記の方法のいずれかによる方法のステップを行うように構成されている処理回路を含む。
【0073】
一態様によれば、デコーダデバイスは、クラウドによって実装される。そのようなシナリオにおいて、いくつかの実施形態は、伝送に必要なレートとニューラルネットワークの精度との間のよいトレードオフの関係を提供し得る。
【0074】
上述の装置のうちのいずれかは、集積チップ上に具現化され得る。
【0075】
上述の実施形態および例示的な実装形態のいずれかは、組み合わされ得る。
【0076】
以下では、本発明の実施形態が添付されている図および図面を参照しつつより詳細に説明される。
【図面の簡単な説明】
【0077】
【
図1】ニューラルネットワークの層によって処理されるチャネルを例示する概略図である。
【
図2】オートエンコーダ型のニューラルネットワークを例示する概略図である。
【
図3】超事前分布モデルを含むネットワークアーキテクチャを例示する概略図である。
【
図4】マシンビジョンタスクなどのマシンベースのタスクに対するクラウドベースのソリューションの構造を例示するブロック図である。
【
図5】エンドツーエンド訓練可能ビデオ圧縮フレームワーク(end-to-end trainable video compression framework)の構造を例示するブロック図である。
【
図6】動きベクトル(MV)圧縮のためのネットワークを例示するブロック図である。
【
図7】動き圧縮のためのネットワークを例示するブロック図である。
【
図8】画像領域に対する特徴マップデータをデコードするための例示的な一方法を例示するフローチャートである。
【
図9】画像領域に対する特徴マップデータをエンコードするための例示的な一方法を例示するフローチャートである。
【
図10】既定の値設定を含む画像領域に対する特徴マップデータをデコードするための例示的な一方法を例示するフローチャートである。
【
図11】画像領域に対する特徴マップデータをエンコードするための例示的な一方法を例示するフローチャートである。
【
図12】有意性に基づき、レート制約条件の下で、特徴マップデータをエンコードするための例示的な一方法を例示する流れ図である。
【
図13】サイド情報を含む画像領域に対する特徴マップデータをデコードするための例示的な一方法を例示するフローチャートである。
【
図14】サイド情報を含む画像領域に対する特徴マップデータをエンコードするための例示的な一方法を例示するフローチャートである。
【
図15】最後の有意なチャネルインジケータを含むビットストリームに基づき特徴データをデコードするための例示的な一方法を例示するフローチャートである。
【
図16】品質レベルとチャネルの設計順序さらには品質パラメータとの間の暗黙の関係を例示する概略図である。
【
図17】最後の有意なチャネルインジケータおよび有意性順序を含むビットストリームに基づき特徴データをデコードするための例示的な一方法を例示するフローチャートである。
【
図18】有意性の順序とチャネルの設計順序さらには品質パラメータとの間の明示的な関係を例示する概略図である。
【
図19】重要度順に、さらには品質スケーラビリティレベル順に記憶されているチャネル情報を含むビットストリーム構造を例示する概略図である。
【
図20】四分木法によってさらには特徴マップデータを含むユニットによってパーティション分割された特徴マップユニットを例示する概略図である。
【
図21】最後の有意な係数位置のデコーディングを含む、特徴データをデコードするための例示的な一方法を例示するフローチャートである。
【
図22】最後の有意な係数位置の符号化を含む、特徴データをエンコードするための例示的な一方法を例示するフローチャートである。
【
図23】特徴マップデータをデコードし、エンコードするための例示的な装置を例示するブロック図である。
【
図24】サイド情報データをデコードし、エンコードするための例示的な装置を例示するブロック図である。
【
図25】本発明の実施形態を実装するように構成されているビデオ符号化システムの一例を示すブロック図である。
【
図26】本発明の実施形態を実装するように構成されているビデオ符号化システムの他の例を示すブロック図である。
【
図27】エンコード装置またはデコード装置の一例を例示するブロック図である。
【
図28】エンコード装置またはデコード装置の他の例を例示するブロック図である。
【発明を実施するための形態】
【0078】
以下の説明では、本開示の一部を成し、例示により、本発明の実施形態の特定の態様または本発明の実施形態が使用され得る特定の態様を図示する添付の図面を参照する。本発明の実施形態は、他の態様で使用されてもよく、図には示されていない構造的または論理的変更を含み得ることが理解される。したがって、以下の詳細な説明は限定的な意味で解釈されるべきでなく、本発明の範囲は添付の請求項により定められる。
【0079】
たとえば、説明されている方法に関連する開示は、その方法を行うように構成されている対応するデバイスまたはシステムにも当てはまりうるものであり、またその逆も当てはまることが理解される。たとえば、1つもしくは複数の特定の方法ステップが説明されている場合、対応するデバイスが、説明されている1つもしくは複数の方法ステップを行うために、1つもしくは複数のユニット、たとえば、機能ユニット(たとえば、1つもしくは複数のステップを行う1つのユニット、または複数のステップのうちの1つもしくは複数のステップを各々行う複数のユニット)を、そのような1つもしくは複数のユニットが図に明示的に説明もしくは例示されていないとしても、含みうる。その一方で、たとえば、特定の装置が、1つもしくは複数のユニット、たとえば、機能ユニットに基づき説明されている場合、対応する方法は、1つもしくは複数のユニットの機能を行う1つのステップ(たとえば、1つもしくは複数のユニットの機能を行う1つのステップ、または複数のユニットのうちの1つもしくは複数のユニットの機能を各々行う複数のステップ)を、そのような1つもしくは複数のステップが図に明示的に説明もしくは例示されていないとしても、含み得る。さらに、本明細書において説明されている様々な例示的な実施形態および/または態様の特徴は、特に断りのない限り、互いに組み合わされ得ることが理解される。
【0080】
いくつかの実施形態は、ニューラルネットワークのためのデータの低複雑度圧縮を提供することを目的とする。たとえば、データは、特徴マップ、または重みもしくは他のパラメータなどのニューラルネットワークで使用される他のデータを含み得る。いくつかの例示的な実装形態において、ニューラルネットワークのための効率的なビットストリームを生成することが可能であり得るシグナリングが提供される。コラボレーティブインテリジェンスパラダイムにより、モバイルデバイスまたはエッジデバイスは、必要ならば、クラウドからのフィードバックを有し得る。しかしながら、本開示は、クラウドを含むコラボレーティブネットワークのフレームワークに限定されないことに留意されたい。これは任意の分散型ニューラルネットワークシステムにおいて採用され得る。さらに、必ずしも分散型でないニューラルネットワークにおいても、特徴マップを記憶するために採用され得る。
【0081】
次に、使用される術語のいくつかについて概要を述べる。
【0082】
人工ニューラルネットワーク
人工ニューラルネットワーク(ANN)またはコネクショニストシステムは、動物の脳を構成する生物学的ニューラルネットワークから漠然としたインスピレーションを受けた計算システムである。そのようなシステムは、一般的にタスク特有の規則をプログラムされることなく、例を考察することによってタスクを行うことを「学習」する。たとえば、画像認識では、「cat」または「no cat」と手作業でラベル付けされている例示的な画像を分析し、その結果を使用して他の画像内の猫を識別することによって猫を含む画像を識別することを学習することもあり得る。これらは、このことを、たとえば、毛皮、しっぽ、ひげ、および猫に似た顔を有するという、猫についての予備的知識なしで行う。その代わり、処理する例から識別特性を自動的に生成する。
【0083】
ANNは、人工ニューロンと呼ばれる、結合されたユニットまたはノードの集合体に基づいており、生物学的脳のニューロンを大まかにモデル化している。各結合は、生物学的脳内のシナプスと同様に、他のニューロンへ信号を伝達することができる。次に、信号を受信した人工ニューロンは、それを処理し、それを結合されているニューロンへ信号を送ることができる。
【0084】
ANNの実装形態において、結合部での「信号」は実数であり、各ニューロンの出力は、その入力の総和の何らかの非線形関数によって計算される。結合はエッジと呼ばれる。ニューロンおよびエッジは、典型的には、学習が進むにつれて調整される重みを有する。重みは結合部での信号の強さを加減する。ニューロンは、集約された信号がその閾値を超えた場合にのみ信号が送信されるような閾値を有してもよい。典型的には、ニューロンは層へと集約される。異なる層は、それらの入力に対して異なる変換を行い得る。信号は、最初の層(入力層)から最後の層(出力層)に、場合によっては複数回層をトラバースした後に、伝搬する。
【0085】
ANNアプローチの元々の目標は、人間の脳が解決するのと同じように問題を解決することであった。時が経つにつれ、特定のタスクを行うことに関心が移り、生物学から逸脱することになった。ANNは、コンピュータビジョン、音声認識、機械翻訳、ソーシャルネットワークフィルタリング、ボードゲームおよびビデオゲームのプレイ、医療診断を含む、さらには絵を描くなどの、伝統的に人間にしかできないと考えられていた活動における、様々なタスクに利用されている。
【0086】
畳み込みニューラルネットワーク
「畳み込みニューラルネットワーク」(CNN)という名称は、畳み込みと呼ばれる数学演算をネットワークが採用することを示している。畳み込みは、特化した種類の線形演算である。畳み込みネットワークは単に、それらの層のうちの少なくとも1つの層において、一般的な行列乗算の代わりに畳み込みを用いるニューラルネットワークである。
【0087】
図1は、CNNなどのニューラルネットワークによる処理の一般的概念の概略を例示している。畳み込みニューラルネットワークは、入力および出力層、さらには複数の隠れ層からなる。入力層は、入力(
図1に示されている画像の一部など)が処理のために提供される層である。CNNの隠れ層は、典型的には、乗算または他のドット積で畳み込む一連の畳み込み層からなる。層の結果は、時にはチャネルとも称される、1つまたは複数の特徴マップ(
図1のf.maps)である。層のいくつか、またはすべてにサブサンプリングが伴うことがあり得る。その結果、
図1に例示されているように、特徴マップはより小さくなり得る。CNNにおける活性化関数は、通常、RELU(正規化線形ユニット)層であり、その後、プーリング層、全結合層、および正規化層などの追加の畳み込みが後に続くが、これらは入力および出力が活性化関数および最終的な畳み込みによってマスクされるので隠れ層と称される。これらの層は、口語表現で畳み込みと称されるが、これは規約に過ぎない。数学的に言うと、これは技術的にはスライディングドット積または相互相関である。これは、行列内のインデックスについて、特定のインデックス点で重みがどのように決定されるかということに影響を及ぼすという点で有意性を有する。
【0088】
画像処理用のCNNをプログラムするとき、
図1に示されているように、入力は、形状(画像数)×(画像幅)×(画像高さ)×(画像奥行き)を有するテンソルである。次いで、畳み込み層を通過した後、画像は、形状(画像数)×(特徴マップ幅)×(特徴マップ高さ)×(特徴マップチャネル)を有する特徴マップに抽象化されるようになる。ニューラルネットワーク内の畳み込み層は、属性として、幅および高さによって定義される畳み込みカーネル(ハイパーパラメータ)、入力チャネルおよび出力チャネルの数(ハイパーパラメータ)を有するべきである。畳み込みフィルタ(入力チャネル)の深さは、入力特徴マップのチャネル数(深さ)に等しいものであるべきである。
【0089】
以前には、従来の多層パーセプトロン(MLP)モデルが、画像認識に使用されてきた。しかしながら、ノード間の全結合性に起因して、これらには高次元性の問題があり、高解像度画像にはうまく対応できなかった。RGBカラーチャネルを有する1000×1000ピクセル画像は、300万個の重みを有し、これは全結合性により十分効率的に実行可能に処理するのには高すぎる。また、そのようなネットワークアーキテクチャは、データの空間的構造を考慮せず、遠く離れている入力ピクセルを、すぐそばにあるピクセルと同様に取り扱う。これは、計算的にも意味的にも、画像データ内の参照の局所性を無視する。したがって、ニューロンの全結合性は、空間的に局所的な入力パターンによって支配される画像認識などの目的には無駄である。
【0090】
畳み込みニューラルネットワークは、視覚野の挙動をエミュレートするように特に設計されている多層パーセプトロンの生物学的にインスパイアされた変更形態である。これらのモデルは、自然画像内に存在する強い空間的な局所相関を利用することによってMLPアーキテクチャによって課される問題点を軽減する。畳み込み層は、CNNのコアビルディングブロックである。層のパラメータは、学習可能なフィルタ(上述のカーネル)のセットからなり、これらは小さい受容野を有するが、入力ボリュームの全深さを貫通する。前方パスにおいて、各フィルタは、入力ボリュームの幅および高さにわたって畳み込まれ、フィルタのエントリと入力との間のドット積を計算し、そのフィルタの2次元活性化マップを生成する。その結果、ネットワークは、入力内のある空間的位置における何らかの特定の種類の特徴を検出したとき活性化するフィルタを学習する。
【0091】
深さ寸法に沿ってすべてのフィルタに対する活性化マップをスタックすることで、畳み込み層の全出力ボリュームを形成する。したがって、出力ボリューム内の各エントリは、入力内の小さな領域を見て、同じ活性化マップ内のニューロンとパラメータを共有するニューロンの出力であると解釈することもできる。特徴マップ、または活性化マップは、所与のフィルタに対する出力活性化である。特徴マップおよび活性化は同じ意味を有する。いくつかの論文では、これは、画像の異なる部分の活性化に対応するマッピングであるので活性化マップと呼ばれ、またある種の特徴が画像内に見つかる場所のマッピングでもあるので特徴マップとも呼ばれる。高い活性化は、ある特徴が見つかったことを意味する。
【0092】
CNNの他の重要な概念は、プーリングであり、これは非線形のダウンサンプリングの一形態である。最大プーリングが最も一般的であるプーリングを実装するための非線形関数はいくつかある。これは、入力画像を、オーバーラップしない矩形のセットにパーティション分割し、各そのような部分領域について、最大値を出力する。
【0093】
直感的には、特徴の正確な配置は、他の特徴に関する大まかな配置に比べて重要度が低い。これは、畳み込みニューラルネットワークにおけるプーリングの使用の背景にある考え方である。プーリング層は、表現の空間的サイズを徐々に縮小し、ネットワーク内のパラメータ数、メモリフットプリント、および計算の量を減らし、したがってオーバーフィッティングも制御する役割を果たす。CNNアーキテクチャでは、連続する畳み込み層の間にプーリング層を周期的に挿入することが一般的である。プーリング演算は、他の形態の平行移動不変性を提供する。
【0094】
プーリング層は、入力のすべての深さスライスに対して独立して動作し、空間的にリサイズする。最も一般的な形態は、幅および高さの両方に沿って2ずつ入力内の深さスライス毎に2ダウンサンプルのストライドでサイズ2×2のフィルタが適用され、活性化の75%を破棄する、プーリング層である。この場合、すべてのmax演算は4つの数を取る。深さの次元は、変わらないままである。
【0095】
maxプーリングに加えて、プーリングユニットは、averageプーリングおよびl2-normプーリングなどの他の関数を使用することができる。averageプーリングは、しばしば歴史的に使用されてきたが、最近では、実際によりよい性能を有する、maxプーリングに比べ、人気がなくなってきている。表現のサイズのアグレッシブな縮小に起因して、最近ではより小さいフィルタを使用する、またはプーリング層を完全に破棄する傾向がある。「関心領域」プーリング(ROIプーリングとも呼ばれる)は、maxプーリングの一変更形態であり、出力サイズは固定され、入力矩形はパラメータである。プーリングはFast R-CNNアーキテクチャに基づく物体検出のための畳み込みニューラルネットワークの重要な構成要素である。
【0096】
上述のReLUはrectified linear unit(正規化線形ユニット)の略で、非飽和活性化関数を適用する。これは、活性化マップから負値を、0に設定することによって、効果的に除去する。これは、畳み込み層の受容野に影響を及ぼすことなく決定関数およびネットワーク全体の非線形特性を高める。他の関数、たとえば飽和双曲正接関数およびシグモイド関数も非線形性を高めるために使用される。ReLUは、汎化精度に対する著しいペナルティなしでニューラルネットワークを数倍速く訓練するので、他の関数よりも好まれることが多い。
【0097】
いくつかの畳み込み層およびmaxプーリング層の後に、ニューラルネットワークの高レベルの推論は、全結合層を介して行われる。全結合層内のニューロンは、通常の(非畳み込み型)人工ニューラルネットワークで見られるように、前の層におけるすべての活性化に対する接続を有する。したがって、その活性化は、アフィン変換として計算されるものとしてよく、行列乗算の後にバイアスオフセット(学習済みまたは固定バイアス項のベクトル加算)を行う。
【0098】
「損失層」は、訓練が予測されたラベル(出力)と真のラベルとの間の偏差に対してどのようにペナルティを課すかを指定し、通常は、ニューラルネットワークの最終層である。異なるタスクに適切な様々な損失関数が使用され得る。ソフトマックス損失は、K個の相互排他的なクラスのうちの単一のクラスを予測するために使用される。シグモイド交差エントロピー損失は、[0,1]内のK個の独立した確率値を予測するために使用される。ユークリッド損失は、実数値ラベルに回帰するために使用される。
【0099】
要約すると、
図1は、典型的な畳み込みニューラルネットワークのデータフローを示している。まず最初に、入力画像は、畳み込み層を通され、この層の学習可能フィルタのセット内のフィルタの数(たとえば、各フィルタ1チャネル)に対応する、複数のチャネルを含む特徴マップに抽象化されるようになる。次いで、特徴マップは、たとえばプーリング層を使用してサブサンプリングされ、それにより特徴マップ内の各チャネルの次元が下がる。次のデータは、異なる数の出力チャネルを有し得る他の畳み込み層に来るため、特徴マップ内のチャネル数も異なり得る。上述したように、入力チャネルおよび出力チャネルの数は、層のハイパーパラメータである。ネットワークの接続性を確立するために、それらのパラメータは、2つの接続層の間で同期される必要があり、たとえば現在の層に対する入力チャネルの数は前の層の出力チャネルの数に等しくなっているべきである。入力データ、たとえば画像を処理する最初の層については、入力チャネル数は、通常、データ表現のチャネルの数に等しく、たとえば画像もしくはビデオのRGBもしくはYUV表現に対しては3チャネル、またはグレースケール画像もしくはビデオ表現に対しては1チャネルである。
【0100】
オートエンコーダおよび教師なし学習
オートエンコーダは、教師なし学習で効率的なデータ符号化を学習するために使用される人工ニューラルネットワークの一種である。その概略図が
図2に示されている。オートエンコーダの目的は、信号「雑音」を無視するようにネットワークを訓練することによって、データのセットに対する表現(エンコーディング)を、典型的には次元削減のために、学習することである。削減側とともに、再構築側が学習され、オートエンコーダは、元の入力にできるだけ近い表現、したがってその名前を削減済みエンコーディングから生成しようとする。最も単純な場合において、1つの隠れ層を与えられた場合に、オートエンコーダのエンコーダ段は、入力xを受け取り、それをhにマッピングする、すなわち
h=σ(Wx+b)
である。
この画像hは、通常、符号、潜在変数、または潜在表現と称される。ここで、σはシグモイド関数または正規化線形ユニットなどの要素単位の活性化関数である。Wは重み行列であり、bはバイアスベクトルである。重みおよびバイアスは、通常、ランダムに初期化され、次いで、逆伝搬を通じて訓練するとき反復的に更新される。その後、オートエンコーダのデコーダ段は、hをxと同じ形状の再構成x'にマッピングする、すなわち
x'=σ'(W'h'+b')
である。
ここで、デコーダに対するσ'、W'、およびb'は、エンコーダに対する対応するσ、W、およびbと無関係であってもよい。
【0101】
変分オートエンコーダ(VAE)モデルは、潜在変数の分布に関して強い仮定を置く。これらは、潜在表現学習に変分アプローチを使用し、その結果、損失構成要素が追加され、確率的勾配変分ベイズ(SGVB)推定器と呼ばれる訓練アルゴリズムに対する特定の推定器が得られる。データは有向グラフモデルpθ(x|h)によって生成され、エンコーダは事後分布pθ(h|x)の近似qφ(h|x)を学習していると仮定し、φおよびθはそれぞれエンコーダ(認識モデル)およびデコーダ(生成モデル)のパラメータを表す。VAEの潜在ベクトルの確率分布は、典型的には、標準オートエンコーダよりもかなり近い訓練データの確率分布と一致する。VAEの目的変数は
【0102】
【0103】
の形をとる。
ここで、DKLはKullback-Leibler Divergenceを表す。潜在変数に対する事前分布は、通常、中心化等方性多変量ガウス分布pθ(h)=N(0,I)に設定される。一般に、変分分布および尤度分布の形状は、次のように因数分解されたガウシアンとなるように選択される。
qφ(h|x)=N(ρ(x),ω2(x)I)
pφ(x|h)=N(μ(h),σ2(h)I)
ここで、ρ(x)およびω2(x)はエンコーダ出力であり、μ(h)およびσ2(h)はデコーダ出力である。
【0104】
人工ニューラルネットワーク分野、特に畳み込みニューラルネットワークにおける近年の進歩は、ニューラルネットワークベースの技術を画像およびビデオ圧縮のタスクに適用することに研究者が注目することを可能にしている。たとえば、エンドツーエンド最適化画像圧縮が提案されており、これは変分オートエンコーダに基づくネットワークを使用する。したがって、データ圧縮は工学における基本的なよく研究されている問題として考えられており、最小エントロピーを有する所与の離散データアンサンブルに対する符号を設計するという目標で一般に定式化される。このソリューションは、データの確率的構造の知識に大きく依存しており、したがって問題は確率的ソースモデリングと密接に関係している。しかしながら、すべての実用的な符号は有限のエントロピーを有しなければならないので、連続値データ(画像ピクセル強度のベクトルなど)は離散値の有限集合に量子化されなければならず、誤差を持ち込む。このコンテキストでは、非可逆圧縮問題として知られており、離散化された表現のエントロピー(レート)と量子化から生じる誤差(歪み)という2つの競合するコストのトレードオフの関係を考慮しなければならない。データ記憶または容量の限られたチャネルでの伝送などの、異なる圧縮用途は、異なるレート-歪みトレードオフ関係の考慮を要求する。レートおよび歪みの同時最適化は困難である。さらなる制約条件なしでは、高次元空間における最適量子化の一般問題は手に負えない。このような理由から、大半の既存の画像圧縮方法は、データベクトルを好適な連続値表現に線形変換し、その要素を独立に量子化し、次いで可逆エントロピー符号を使用して、結果として得られた離散表現をエンコードすることによって動作する。この方式は、変換の中心的役割から、変換符号化と呼ばれる。たとえば、JPEGではピクセルのブロックに対して離散コサイン変換を使用し、JPEG2000ではマルチスケール直交ウェーブレット分解を使用する。典型的には、変換符号化方法の3つの構成要素--変換、量子化器、およびエントロピー符号--は、(多くの場合、手動パラメータ調整を通じて)別々に最適化される。HEVC、VVC、およびEVCのような最新のビデオ圧縮標準も、予測後の残差信号を符号化するために変換済み表現を使用する。離散コサイン変換および離散サイン変換(DCT、DST)、さらには低周波数非分離手動最適化変換(LFNST)などの、いくつかの変換は、その目的のために使用される。
【0105】
変分画像圧縮
J. Balle、L. Valero Laparra、およびE. P. Simoncelli (2015年).「Density Modeling of Images Using a Generalized Normalization Transformation」. In: arXiv e-prints. Presented at the 4th Int. Conf. for Learning Representations, 2016(以下では「Balle」と呼ぶ)において、著者らは、非線形変換に基づく画像圧縮モデルのエンドツーエンド最適化のためのフレームワークを提案した。以前、著者らは、知覚的歪みの尺度に対して最適化された線形-非線形ブロック変換からなるモデルが、平均二乗誤差(MSE)に対して最適化されたモデルと比較して、視覚的に優れた性能を示すことを実証した。ここでは、著者らは、MSEについて最適化するが、線形畳み込みおよび非線形性のカスケードから構築されたより柔軟な変換を使用している。特に、著者らは、生物学的視覚系におけるニューロンのモデルによってインスパイアされ、画像密度のガウス化に有効であることが実証されている一般化分割正規化(GDN)結合非線形性を使用している。このカスケード変換の後に、一様スカラー量子化(すなわち、各要素は最も近い整数に丸められる)が続き、これは、元の画像空間にベクトル量子化のパラメトリック形式を効果的に実装する。圧縮済み画像は、近似的パラメトリック非線形逆変換を使用して、これらの量子化済み値から再構成される。
【0106】
レート-歪み曲線に沿った任意の所望の点について、確率的勾配降下法を使用して分析変換および合成変換の両方のパラメータが同時最適化される。これを量子化(ほとんどどこでもゼロの勾配を生じる)の存在下で達成するために、著者らは、確率モデルの連続緩和に基づく代理損失関数を使用し、量子化ステップを加法的一様雑音に置き換える。緩和されたレート-歪み最適化問題は、生成画像モデル、特に変分オートエンコーダを当てはめるために使用される問題と幾分似ているが、すべてレート-歪み曲線に沿って離散問題を近似することを確実にするために著者らが課す制約条件の点で異なっている。最後に、著者らは、微分または離散エントロピー推定値を報告するのではなくむしろ、エントロピー符号を実装し、実際のビットレートを使用して性能を報告し、それにより完全な非可逆圧縮法としてのソリューションの実現可能性を実証している。
【0107】
J. Balleの論文では、変分オートエンコーダに基づく画像圧縮のためのエンドツーエンド訓練可能モデルについて説明されている。このモデルは、潜在表現における空間的依存性を効果的に捕らえるために、超事前分布を組み込む。この超事前分布は、デコード側にも伝達されるサイド情報に関係しており、事実上すべての現代の画像コーデックに普遍的な概念であるが、ANNを使用する画像圧縮では大々的に調査されていない。既存のオートエンコーダ圧縮方法とは異なり、このモデルは、複雑な事前分布を基礎となるオートエンコーダと一緒に訓練する。著者らは、このモデルが、人気のあるMS-SSIMインデックスを使用して視覚的品質を測定するとき最新技術の画像圧縮をもたらし、二乗誤差(PSNR)に基づくより従来のメトリックを使用して評価されるとき公開されているANNベースの方法を上回るレート-歪み性能を実現することを実証している。
【0108】
図3は、超事前分布モデルを含むネットワークアーキテクチャを示している。左側(g
a,g
s)は、画像オートエンコーダアーキテクチャを示し、右側(h
a,h
s)は、超事前分布を実装するオートエンコーダに対応する。因数分解事前分布モデルは、分析変換g
aおよび合成変換g
sに対して同一のアーキテクチャを使用する。Qは量子化を表し、AE、ADはそれぞれ算術エンコーダおよび算術デコーダを表す。エンコーダは、入力画像xにg
aを受けさせると、空間的に変化する標準偏差を有する応答y(潜在表現)を生じさせる。エンコーダg
aは、サブサンプリングによる複数の畳み込み層、および活性化関数として、一般化分割正規化(GDN)を含む。
【0109】
応答はhaに供給され、zにおける標準偏差の分布を要約する。次いで、zは量子化され、圧縮され、サイド情報として伝送される。次いで、エンコーダは、量子化済みベクトル
【0110】
【0111】
を使用して、算術符号化(AE)に対する確率値(または頻度値)を取得するために使用される標準偏差の空間分布
【0112】
【0113】
を推定し、それを使用して量子化済み画像表現
【0114】
【0115】
(または潜在表現)を圧縮して伝送する。デコーダは、まず最初に、圧縮済み信号から
【0116】
【0117】
を復元する。次いで、hsを使用して
【0118】
【0119】
を取得するが、これはその上
【0120】
【0121】
を正常に復元するための正しい確率推定値も与える。次いで、これは、
【0122】
【0123】
をgsに供給して、再構成済み画像を取得する。
【0124】
さらなる作業において、超事前分布による確率モデリングは、たとえばPixelCNN++アーキテクチャに基づく自己回帰モデルを導入することによってさらに改善されたが、これは、たとえば、L. Zhou、Zh. Sun、X. Wu、J. Wu、「End-to-end Optimized Image Compression with Attention Mechanism」、CVPR 2019(以下、「Zhou」と記す)の
図2に例示されているように、デコードされるべきさらなるシンボルのより良好な確率推定に対する潜在空間のすでにデコード済みのシンボルのコンテキストを利用することを可能にする。
【0125】
マシンタスクのためのクラウドソリューション
Video Coding for Machines(VCM)は、最近人気のある他のコンピュータサイエンスの方向性である。このアプローチの背後にある主な考え方は、物体のセグメンテーション、検出、および認識のようなコンピュータビジョン(CV)アルゴリズムによるさらなる処理の対象となる画像またはビデオ情報の符号化済み表現を伝送することである。人間の知覚を対象とする従来の画像およびビデオの符号化とは対照的に、品質特性は、再構成済み品質ではなくむしろ、コンピュータビジョンタスクの性能、たとえば物体検出精度である。これは、
図4に例示されている。
【0126】
Video Coding for Machinesは、コラボレーティブインテリジェンスとも称され、モバイル-クラウドインフラストラクチャにディープニューラルネットワークを効率的に展開するための比較的新しいパラダイムである。ネットワークを、モバイルとクラウドとの間に分割することによって、システムの全体的なエネルギーおよび/またはレイテンシーが最小化されるように計算作業負荷を分散させることが可能である。一般に、コラボレーティブインテリジェンスは、ニューラルネットワークの処理が2つ以上の異なる計算ノード、たとえばデバイスの間に分散されるパラダイムであるが、一般には、任意の機能的に定義されたノードである。ここで、「ノード」という術語は、上述のニューラルネットワークのノードを指すものではない。むしろ、(計算)ノードは、ここでは、ニューラルネットワークの一部を実装する、(物理的または少なくとも論理的に)別個のデバイス/モジュールを指す。そのようなデバイスは、異なるサーバ、異なるエンドユーザデバイス、サーバおよび/もしくはユーザデバイスおよび/もしくはクラウドおよび/もしくはプロセッサの混合体、または同様のものであってよい。言い換えれば、計算ノードは、同じニューラルネットワークに属し、ニューラルネットワーク内の/ニューラルネットワークのための符号化済みデータを伝達するために互いに通信するノードとみなされ得る。たとえば、複雑な計算を実行できるようにするために、1つまたは複数の層が第1のデバイス上で実行され、1つまたは複数の層が他のデバイス上で実行され得る。しかしながら、分布は、また、より細かく、単一の層が複数のデバイス上で実行され得る。本開示において、「複数」という語は、2つ以上を指す。いくつかの既存のソリューションでは、ニューラルネットワーク機能の一部は、デバイス(ユーザデバイスもしくはエッジデバイスもしくは同様のもの)または複数のそのようなデバイスにおいて実行され、次いで、出力(特徴マップ)がクラウドにわたされる。クラウドとは、ニューラルネットワークの一部を動作させている、デバイスの外側に配置されている処理システムまたは計算システムの集合体である。コラボレーティブインテリジェンスの概念は、モデルの訓練にも拡張されている。この場合、データは、訓練時の逆伝搬においてクラウドからモバイルへ、訓練時の前方パスにおいてモバイルからクラウドへ、の両方で流れ、さらに推論も同様である。
【0127】
いくつかの研究では、深層特徴をエンコードし、次いでそこから入力画像を再構成することによる意味画像圧縮を提示している。一様量子化に基づく圧縮が示されており、その後に、H.264からのコンテキストベース適応算術符号化(CABAC)が示されている。いくつかのシナリオにおいて、圧縮済み自然画像データをクラウドに送信し、再構成済み画像を使用して物体検出を行うことよりもむしろ、モバイル部分からクラウドへ隠れ層の出力(深層特徴マップ)を伝送する方が効率的であり得る。特徴マップの効率的圧縮は、人間の知覚およびマシンビジョンの両方について、画像およびビデオ圧縮ならびに再構成に有益である。エントロピー符号化方法、たとえば算術符号化は、深層特徴(すなわち特徴マップ)の圧縮に対する人気のあるアプローチである。
【0128】
現在、ビデオコンテンツは、インターネットトラフィックの80%超に寄与しており、その割合はなおいっそう増大すると予想されている。したがって、効率的なビデオ圧縮システムを構築し、所与の帯域幅バジェットでより高品質のフレームを生成することが重要である。それに加えて、ビデオ物体検出またはビデオ物体追跡などの大半のビデオ関係コンピュータビジョンタスクは、圧縮済みビデオの品質に敏感であり、効率的なビデオ圧縮は他のコンピュータビジョンタスクにも利益をもたらし得る。一方、ビデオ圧縮における技術は、アクション認識およびモデル圧縮にも役立つ。しかしながら、過去数十年間、ビデオ圧縮アルゴリズムは、上述のように、ビデオシーケンス中の冗長性を低減するために、手作りのモジュール、たとえば、ブロックベース動き推定および離散コサイン変換(DCT)に頼っている。各モジュールはよく設計されてはいるが、圧縮システム全体がエンドツーエンド最適化されているわけではない。圧縮システム全体を同時最適化することによってビデオ圧縮性能をさらに改善することが望ましい。
【0129】
エンドツーエンド画像またはビデオ圧縮
近年、画像圧縮のためのディープニューラルネットワーク(DNN)ベースのオートエンコーダが、JPEG、JPEG2000、またはBPGのような従来の画像コーデックと同等以上の性能を達成している。1つの可能な説明は、DNNベースの画像圧縮方法は、従来のアプローチでは使用されていない、大規模なエンドツーエンド訓練および高度に非線形の変換を利用することができることである。しかしながら、これらの技術を直接的に適用して、ビデオ圧縮のためのエンドツーエンド学習システムを構築することは自明ではない。最初に、ビデオ圧縮に合わせて手直しされた動き情報を生成し、圧縮する方法を学習することも未解決の課題として残されている。ビデオ圧縮方法は、ビデオシーケンスの時間的冗長性を減らすために動き情報に大幅に頼る。直接的なソリューションは、学習ベースのオプティカルフローを使用して動き情報を表現することである。しかしながら、現在の学習ベースのオプティカルフローアプローチは、可能な限り正確なフローフィールドを生成することを目的としている。正確なオプティカルフローは、特定のビデオタスクに最適でない場合が多い。それに加えて、オプティカルフローのデータ量は、従来の圧縮システムにおける動き情報と比較されたとき増大が著しく、既存の圧縮アプローチを直接的に適用してオプティカルフロー値を圧縮すると、動き情報を記憶するのに必要なビット数を著しく増大させる。第2に、残差情報と動き情報の両方に対して、レート-歪みベースの目的を最小化することによってDNNベースのビデオ圧縮システムを構築する方法は明確でない。レート-歪み最適化(RDO)は、圧縮のためのビット数(またはビットレート)が与えられたとき、より高品質の再構成済みフレーム(すなわち、より少ない歪み)を達成することを目的としている。RDOは、ビデオ圧縮性能に重要である。学習ベースの圧縮システムのエンドツーエンド訓練のパワーを利用するために、システム全体を最適化するためのRDO戦略が必要である。
【0130】
Guo Lu、Wanli Ouyang、Dong Xu、Xiaoyun Zhang、Chunlei Cai、Zhiyong Gao、「DVC: An End-to-end Deep Video Compression Framework」、Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR)、2019年、11006~11015頁において、著者らは、動き推定、動き圧縮、および残差符号化を一緒に学習するエンドツーエンドディープビデオ圧縮(DVC)モデルを提案した。
【0131】
そのようなエンコーダは、
図5に例示されている。特に、
図5は、エンドツーエンド訓練可能ビデオ圧縮フレームワークの全体的構造を示している。動き情報を圧縮するために、CNNは、オプティカルフローをより良い圧縮に適した対応する表現に変換するために指定されている。具体的には、オートエンコーダスタイルのネットワークがオプティカルフローを圧縮するために使用される。この動きベクトル(MV)圧縮ネットワークは
図6に示されている。ネットワークアーキテクチャは、
図3のga/gsに幾分類似している。特に、オプティカルフローは、一連の畳み込み演算ならびにGDNおよびIGDNを含む非線形変換に供給される。畳み込み(逆畳み込み)に対する出力チャネルの数は、2に等しい、最後の逆畳み込み層を除き、128である。M×N×2のサイズを有するオプティカルフローが与えられた場合、MVエンコーダは、M/16×N/16×128のサイズを有する動き表現を生成する。動き表現は量子化され、エントロピー符号化され、ビットストリームに送られる。MVデコーダは、量子化済み表現を受け取り、MVエンコーダを使用して動き情報を再構成する。
【0132】
図7は、動き補償部の構造を示す。ここで、前の再構成済みフレームx
t-1および再構成済み動き情報を使用することで、ワーピングユニットは、(通常、双線形補間フィルタなどの補間フィルタの助けを借りて)ワープされたフレームを生成する。次いで、3つの入力を有する別個のCNNが予測されたピクチャを生成する。動き補償CNNのアーキテクチャは、
図7にも示されている。
【0133】
元のフレームと予測済みフレームとの間の残差情報は、残差エンコーダネットワークによってエンコードされる。高度に非線形なニューラルネットワークは、残差を対応する潜在表現に変換するために使用される。従来のビデオ圧縮システムにおける離散コサイン変換と比較すると、このアプローチは、非線形変換のパワーをより適切に利用し、より高い圧縮効率を達成することができる。
【0134】
上記の概要から、CNNベースのアーキテクチャは、動き推定、動き補償、および残差符号化を含むビデオフレームワークの異なる部分を考慮して、画像圧縮およびビデオ圧縮の両方に適用できることがわかる。エントロピー符号化は、データ圧縮に使用される人気のある方法であり、業界で広く採用されており、人間の知覚またはコンピュータビジョンタスクのいずれかのための特徴マップ圧縮にも適用可能である。
【0135】
符号化効率の向上
チャネル情報は、最終タスクにとって等しく重要ではない。あるチャネルの情報は、最終画像もしくはビデオ再構成品質、または物体検出精度を著しく損なうことなく落とされうること、たとえばデコーダに伝送されないこと、が観察された。同時に、重要でない情報を落とすことで節約されるビットの量は、全体的なレート-歪みトレードオフ関係を改善し得る。
【0136】
さらに、エンコーディングおよびデコーディングレイテンシーは、圧縮システムの実用的実装のための圧縮システムの重要なパラメータの1つである。人工ニューラルネットワークの性質上、1つの層内の演算は、並列に行われ得、全体的なネットワークレイテンシーは、通常はそれほど高くない、その後接続される層の量によって決定される。超並列処理をサポートすることができる、現代的なグラフィックプロセッシングユニット(GPU)またはネットワークプロセッシングユニット(NPU)を活用することで、許容可能な実行時間が達成され得る。しかしながら、算術符号化や範囲符号化などのエントロピー符号化方法は、範囲区間計算、正規化、および確率区間マッチングに対する逐次的演算を暗示している。これらの演算が圧縮効率を犠牲にすることなく並列化され得ることはほとんどない。したがって、エントロピー符号化は、全体的なシステムレイテンシーを制限する、ボトルネックとなり得る。エントロピー符号化に通されるデータの量の削減が望ましい。
【0137】
本開示のいくつかの実施形態は、圧縮効率を改善し得る。さらに、それらは、CNNベースの画像およびビデオコーデックの潜在空間からの一部の特徴マップデータの伝送をバイパスすることを高速化し得る。そのようなアプローチに基づき、エントロピーエンコーディングおよびデコーディングプロセスの高速化が達成され得、これは、実用的な実装形態には重要であると考えられ得る。
【0138】
特に、いくつかの特徴マップ領域またはチャネルの情報の転送は、スキップされてもよい。特に、それらの特徴マップデータはスキップされてもよく、その欠如は、再構成済み品質の著しい劣化につながらないと決定される。したがって、圧縮効率が改善され得る。なおもさらに、エントロピーエンコーディングおよびデコーディングに通されるデータ量が減らされ、これにより、エンコーディングおよびデコーディング時間をさらに短縮し、全体的なエンドツーエンド圧縮システムレイテンシーを低減し得る。
【0139】
一実施形態によれば、ビットストリームに基づきニューラルネットワークによる処理のための特徴マップをデコードするための方法が提供される。この方法は、
図8に例示されている。この方法は、特徴マップの領域について、ビットストリームからの情報に基づき領域存在インジケータを取得するステップS110を含む。取得ステップS110の後に、領域をデコードするデコーディングステップS150が続く。デコーディングステップS150は、領域存在インジケータが第1の値を有するとき、領域をデコードするためにビットストリームからのデータを解析するステップS130を含む。領域存在インジケータが第1の値を有するかどうかは、判定ステップS120において決定され得る。他方では、(たとえばステップS120において)領域存在インジケータが第2の値を有するとき、デコーディングS150は、領域をデコードするためにビットストリームからのデータを解析することをバイパスするステップS140を含み得る。
【0140】
領域存在インジケータの取得S110は、ビットストリームから存在インジケータを解析することに対応し得る。言い換えると、ビットストリームは、インジケータを含み得る。取得は、たとえばエントロピーデコーダによる存在インジケータのデコーディングを含み得る。領域存在インジケータは、第1の値および第2の値のうちの1つを取ることができるフラグであってよい。これは、たとえば、単一のビットによって符号化され得る。しかし、本開示は、それに限定されない。一般に、取得ステップS110は、ビットストリームから解析された他のパラメータの値に基づく間接的な取得に対応し得る。
【0141】
デコーディングS150は、ビットストリームの一般化済み処理を指してもよく、これは、情報解析、エントロピーデコーディング情報、情報の解析のバイパス(スキップ)、情報のすでに解析されている要素の1つまたは複数に基づきさらなる解析に使用される情報の導出、または同様の操作のうちの1つまたは複数を含み得る。
【0142】
一実施形態によれば、ニューラルネットワークによる処理のための特徴マップをビットストリーム内にエンコードするための方法が提供される。この方法は、
図9に例示されており、
図8を参照しつつ説明されているデコーディング方法によって容易にデコードされ得るビットストリーム部分を提供し得る。方法は、特徴マップの領域に対する領域存在インジケータを取得するステップS160を含む。特徴マップのこの領域は、ニューラルネットワークの1つまたは複数の層によって生成された特徴マップから取得されてもよい。特徴マップは、メモリまたは他の記憶装置に記憶され得る。さらに、この方法は、取得された領域存在インジケータに基づき、ビットストリーム内の特徴マップの領域を指示するか指示しないかを決定するステップS170を含む。したがって、ステップS170において、ビットストリーム内の領域を指示すると決定された場合、ビットストリームは、特徴マップの領域を含むものとする。ステップS170において、ビットストリーム内の領域を指示しないと決定された場合、ビットストリームは、特徴マップの領域を含まないものとする。ステップS170~S190は、ビットストリームを生成する(エンコーディングとも称される)一般的なステップS165の一部であるとみなされ得る。
【0143】
可能な一実装形態において、領域存在インジケータは、ビットストリーム内で指示される。したがって、ステップS170において、ビットストリーム内の領域を指示すると決定された場合、ビットストリームは、第1の値を有する領域存在インジケータおよび特徴マップの領域を含むものとする。ステップS170において、ビットストリーム内の領域を指示しないと決定された場合、ビットストリームは、第2の値を有する領域存在インジケータを、特徴マップの領域なしで、含むものとする。
【0144】
「ある値を有する領域存在インジケータを含む」という言い回しは、実質的には、ある値を、たとえば2値化され、場合によってはエントロピー符号化された形で、ビットストリームに含めることを指す。ある値は、規約によって、たとえば標準によって定義されたセマンティックを用いて領域存在インジケータの意味を与えられる。
【0145】
非存在特徴マップ領域の取り扱い
例示的な一実装形態によれば、領域存在インジケータが第2の値を有するとき、領域をデコードすることは、所定の規則に従って領域を設定することをさらに含む。たとえば、所定の規則は、領域の特徴を定数に設定することを指定する。しかしながら、本開示は、所定の規則が、特徴量が定数に設定されるべきであることを指定する規則であることに限定されないことに留意されたい。むしろ、規則は、たとえば、以前にデコードされた特徴またはビットストリームからの情報に基づき特徴量の決定/計算の方法を定義してもよい。
【0146】
図10は、ビットストリームをデコードする方法を例示する図である。この例では、特徴マップの領域は、CNNチャネルに対応する。特に、画像またはビデオ情報デコード方法は、対応するCNNチャネル情報がビットストリーム内に存在するかどうかを指示するビットストリームからのシンタックス要素を解析することを含む。CNNチャネル情報は、対応するチャネルの特徴マップまたは特定のチャネルに関係する他の情報を含み得る。
図10に示されている例示的な実装形態において、デコーダは、生成モデル(または再構成ネットワーク)の入力チャネルにわたってS205を反復する。各反復S205において、チャネル存在フラグ(上述の領域存在フラグに対応する)がビットストリームから読み取られるS210。チャネル存在フラグが真に等しい場合、対応するチャネル情報は、ビットストリームから読み取られるS235。このデータは、算術デコーダなどの、エントロピーデコーダによってさらにデコードされ得るS240。そうでなければ、チャネル存在フラグが偽に等しい場合、チャネル情報を読み取ることはバイパスされ、対応するチャネル情報は、たとえば、すべてのチャネル値を定数に設定することによって、予め定められた規則によって初期化されるS230。たとえば、定数は0である。次いで、各チャネルについてステップS210~S240が繰り返される。その後、ステップS244において、再構成済みチャネルは、ニューラルネットワーク(たとえば、ニューラルネットワークの隠れ層または出力層のうちの1つであってよい、ニューラルネットワークの適切な層に入力される。次いで、ニューラルネットワークは、入力チャネル情報をさらに処理する。
【0147】
以下の表には、ビットストリームシンタックスの例示的な一実装形態が提供されている。
【0148】
【0149】
変数channels_numは、繰り返されるチャネルの数を定義する(
図10のステップS205参照)。変数latent_space_heightおよびlatent_space_widthは、ピクチャの幅および高さに関する高水準のシンタックス情報ならびに生成モデル(たとえば、再構成ネットワーク)のアーキテクチャに基づき導出され得る。結果として同じロジックに至る他の実装形態も可能である。たとえば、channel_presence_flagの条件付きチェックは、潜在空間の幅および高さを反復するループの外側で行われ得る。その場合、入力チャネル値y_cap[i]は、チャネルデータ読み取りループ以外の、別のループで初期化され得る。
【0150】
あるいは、チャネル存在インジケータは、反対の解釈、たとえば、channel_skip_flag(またはチャネルバイパスフラグ)を有してもよく、対応するチャネル情報の読み取りがスキップされるべきであることを指示する。言い換えると、チャネル(または一般的に領域)指示は、存在指示または非存在指示であってもよい。そのような指示は、2つの値、すなわち、第1の値および第2の値、のうちの1つを取るものとしてよい。これらの値のうちの1つは、チャネル(特徴マップ)データの存在を指示し、これらの値のうちの他の1つは、チャネル(特徴マップ)データの非存在を指示する。
図10では、チャネル全体が存在する/存在しないことを指示するチャネルインジケータがシグナリングされることにさらに留意されたい。しかしながら、本開示は、これに限定されず、特徴マップの一部(領域)に対して、または何らかの予め定められた方法でグループに編成されたチャネルのグループに対して、インジケータがシグナリングされ得る。
【0151】
この実施形態の技術的利点の1つは、画像またはビデオ再構成に不要な情報または重要でない情報または重要度の低い情報の伝送を除外することによるシグナリングオーバーヘッドの低減であり得る。他の技術的な利点は、エントロピーデコーディングによって不要な情報または重要でない情報を処理することを除外することにより、画像およびビデオ圧縮システムのボトルネックとして知られているエントロピーデコーディングプロセスを高速化することである。
【0152】
decode_latent_value()サブプロセス(シンタックス部分に対応する解析プロセス)は、エントロピーデコーディングを含み得る。channel_presence_flagは、コンテキスト適応エントロピー符号化を使用することによって(ae(v)と表記)、またはコンテキスト適応エントロピー符号化なしで(u(1)と表記)、符号なし整数1binフラグとして符号化され得る。コンテキスト適応型エントロピー符号化を使用することは、channel_presence_flagによって導入されるシグナリングオーバーヘッドを低減し、圧縮効率をさらに高めることを可能にする。
【0153】
上記のシンタックスでは、channel_presence_flagがチャネルデータがシグナリングされないことを指示する場合に、入力チャネル値は、定数に設定され、これはここでは0である(y_cap[i][y][x]=0)。しかしながら、本開示は、定数の0値に限定されない。定数は、異なる値を取り得るか、またはたとえばエンコーダによってプリセットされ、次いでビットストリームでシグナリングされることさえあってもよい。言い換えると、いくつかの実施形態において、方法は、ビットストリームから前記定数をデコードするステップをさらに含む。
【0154】
図10を参照しつつ説明されているデコーディング方法に対応して、
図11に示されているように、エンコーディング方法が提供され得る。このエンコーディング方法は、上述されているシンタックスに従ったビットストリームを生成し得る。これに対応して、画像またはビデオエンコーダは、対応するチャネル情報を受信サイドに伝送するか、またはバイパスするかどうかを決定するためのユニットを含みうる。エンコーディングモデルの各出力チャネル(生成モデルの入力チャネルであると想定される)について、エンコーダは、画像もしくはビデオ再構成またはマシンビジョンタスクに対する対応チャネルの重要性に関する決定を行う。
【0155】
図11のそのようなエンコーディング方法は、すべてのチャネルにわたるループを含む。各ステップS208において、チャネルが取られ、ステップS250において、チャネルの存在に関する決定が下される。エンコーダは、チャネルの重要度を評価することを可能にするいくつかの先験的な知識またはメトリックに基づき決定を下すことができる。
【0156】
たとえば、潜在表現における対応するチャネルの特徴マップの絶対値の総和、
【0157】
【0158】
はエンコーダ側で決定するためのメトリックとして使用されてよく、
ここで、ChannelPresenceFlagiはビットストリーム内のi番目のCNNチャネルの存在に関するエンコーダの決定を表すフラグであり、w,hはそれに対応してi番目のチャネル
【0159】
【0160】
の潜在表現の幅および高さであり、閾値は何らかの事前定義済み値、たとえば、0である。他の実装形態では、絶対値の総和は
【0161】
【0162】
のようにチャネルの要素数で正規化され得る。
【0163】
他の可能な実装形態では、絶対値の総和の代わりに、二乗値の総和が使用され得る。また、他の可能な基準は、チャネル内の特徴マップ要素の平均値からのチャネル内の各特徴マップ要素の二乗距離の総和をチャネル内の特徴マップ要素の数で割った値として定義される潜在表現における対応するチャネルの特徴マップの分散とすることもできる。
【0164】
【0165】
ここで、μは、チャネル内の特徴マップ要素の平均値であり、threshold_varは、閾値である。本開示は、任意の特定の決定アルゴリズムまたはメトリックに限定されない。さらなる代替的な実装形態も可能である。
【0166】
決定ステップS250の後、決定されたチャネル存在フラグはビットストリーム内に書き込まれるS255。次いで、チャネル存在フラグの値に基づき、ステップS260において、チャネルデータ(特徴マップデータの領域)をビットストリーム内に書き込むか書き込まないかが決定される。特に、チャネル存在フラグが真である場合、ステップ270において、チャネルデータは、ビットストリーム内に書き込まれ、これは、さらに、算術エンコーダなどの、エントロピーエンコーダによるチャネルデータのエンコーディングS280をさらに含んでもよい。他方では、チャネル存在フラグが偽である場合、ステップ270において、チャネルデータは、ビットストリーム内に書き込まれない、すなわち、書き込みはバイパスされる(またはスキップされる)。
【0167】
図12は、再構成されたピクチャ品質に対するチャネルの相対的重要度に基づきビットストリーム内の特定のチャネル存在に関する決定を行うためのエンコーダサイドの方法の例示的な実装形態を示している。エンコーディング方法のステップは、各チャネルについて行われる。
図12において、それらのチャネルにわたるループは、次のステップが行われるチャネルを設定するステップS410によって例示されている。
【0168】
最初のステップS420として、各チャネルについて、有意性メトリックが決定される。メトリックは、たとえば、チャネル内のすべての特徴マップ要素の絶対値の総和を計算することによって、またはチャネル内の特徴マップ要素の分散として決定され得る。特徴マップの値分布は、特徴マップが再構成済みデータに及ぼす影響に対する指示であり得る。ソートを行うための他の可能なメトリックは、レートに対応するチャネル情報を送信するために必要なビット数(言い換えれば、特定のチャネルの特徴マップデータを伝送するのに必要なビット数)の推定であり得る。ソートを行うための他の可能なメトリックは、たとえばdBで、またはマルチスケール構造類似度インデックス尺度(MS-SSIM)のような他の品質メトリック、または任意の他の客観的もしくは知覚的に重み付け/設計されたメトリックで評価された再構成済みピクチャ品質への特定のチャネルの寄与とすることができる。上述のおよび他のメトリックは組み合わされ得る。たとえば特定のチャネル再構成性能を除くすべてを引いた全チャネル再構成性能の比較によって評価される、たとえば物体検出精度のようなマシンビジョンタスクに適した他の性能基準もあり得る。言い換えれば、マシンビジョンタスクの品質/精度に対するチャネルデータの寄与のいくつかの推定値は、ソート基準として使用され得る。
【0169】
次のステップにおいて、すべてのチャネルは、計算済み有意性メトリックに従って、たとえば、最も有意なもの(カウントインデックスの開始に応じてindex=0またはindex=1)から最も有意でないものへとソートされるか、またはランク付けされる。
【0170】
次のステップ(S430~S470)において、ビットストリーム内への各チャネルの寄与(チャネル特徴マップ値を伝送するために必要なビットの量)および所望のターゲットビットレートの推定を入力パラメータとして有することで、エンコーダは、ビットストリーム内に特定のチャネル情報を入れることに関する決定を行う。特に、ステップS430では、結果として得られるビットストリーム部分のビット数numOfBitsは0に初期化される。さらに、チャネル存在フラグは、各チャネルについて0に初期化され、そのチャネルがビットストリームに含まれないことを指示する。次いで、ステップS440においていくつかのチャネルにわたるループが開始される。ループでは、最も有意なものから最も有意でないものまでの順序でチャネル上を走査する。ループ内の各チャネルについて、ステップS450において、チャネルのデータを符号化するのに必要なビット数channelNumOfBitsが取得され、総ビット数numOfBitsは、取得されたチャネルのデータを符号化するのに必要なビット数channelNumOfBitsで増分され、すなわちnumOfBits+=channelNumOfBits(numOfBits=numOfBits+channelNumOfBitsを意味する)である。
【0171】
ループのステップS460において、総ビット数numOfBitsは、必要なビット数requiredNumOfBitsと比較される。requiredNumOfBitsは、所望のレートに応じて設定され得るパラメータである。比較の結果numOfBits>=requiredNumOfBitsがTRUEの場合、これは総ビット数が必要なビット数に達したか、またはそれを超えたことを意味し、その場合、方法は終了する。これは、現在のチャネルiについて、ステップS430で初期化されたようにチャネル存在フラグは0のままであり、チャネルデータはビットストリーム内に含められないことを意味する。ステップS460において、比較の結果numOfBits>=requiredNumOfBitsがFALSEである場合、これはチャネルiのデータがビットストリームに加えられたとき総ビット数が必要なビット数に到していないことを意味する。したがって、ステップS470では、現在のチャネルiに対するチャネル存在フラグは1に設定され、そのチャネルのデータはビットストリームに含められる。
【0172】
要約すると、エンコーダは、最も有意なチャネルから始まるチャネルの伝送に必要なビットの増分和を計算し、channel_presence_flag[i]をTRUEに等しい値に設定する。ビットの総数が必要なビット数に達した後、残る最も有意でないチャネルは、伝送されないことに決定され、これらのチャネルに対してchannel_presence_flag[i]はFALSEに等しくなるように設定される。
【0173】
あるいは、所望の再構成済みピクチャ品質レベル(たとえば、dB単位またはMS-SSIMのような他のメトリック)は、伝送するチャネルの数を決定するための基準として使用され得る。最も有意なチャネルから始めて、エンコーダは、最も有意なチャネルの寄与により再構成済み品質を評価し、所望の品質が達成された後、残るチャネルは、必要ないと決定され、それらの対応するchannel_presence_flag[i]は、FALSEに等しくなるように設定される。言い換えれば、反復S440~S470は、各チャネルiとともに増大する品質カウンタを累計し、現在のチャネルiの追加によって所望の品質レベルに到するか、またはそれを超えたとき反復を停止することによって行われ得る。当業者には明らかなように、ビットレートおよび品質は、例示に過ぎず、両方の組合せが使用され得るか、または複雑度などのさらなる基準が追加されるか、もしくは代わりに使用され得る。
【0174】
図12を参照しつつ説明されている方法は、例示に過ぎない。伝送するチャネルを決定する他の代替方法は、次のように計算されるコスト値を最小化するレート-歪み最適化(RDO)手順を使用することである。
Cost=Distortion+Lambda*Rate、または
Cost=Rate+Beta*Distortion
ここで、LambdaおよびBetaは、制約条件付き最適化方法のラグランジュ乗数である。上述されているソリューションの技術的利点の1つは、圧縮システムの実用的使用の重要な態様である、所望の再構成済み品質の所望のターゲットビットレートにマッチすることができることである。
【0175】
図10および
図11を参照しつつ説明されている実施形態では、特徴マップの領域は、特徴マップ全体である。しかしながら、後で示されるように、本開示は、そのようなデータ粒度に限定されない。
【0176】
サイド情報シグナリング
図3を参照しつつ説明されているように、Balleにおいて提案された超事前分布は、入力信号の潜在表現と一緒に伝送されるサイド情報を生成するために使用されて、符号化システムが所与の入力信号に特有の統計的特性を捕らえることを可能にする、算術デコーダに必要な確率(または頻度)推定値を取得する。Zhouによってさらに実証されたように、確率推定は、潜在表現のすでにデコードされているシンボルに基づきコンテキストを組み込むことによってさらに改善され得る。
図3から、サイド情報zは畳み込み層の出力に基づくことがわかる。一般的な方式では、特徴マップは、それ自体サイド情報を表すと考えられ得る。
【0177】
本開示の一実施形態によれば、ビットストリームからニューラルネットワークによる処理のための特徴マップをデコードするための方法が提供される。方法は、
図13に例示されており、ビットストリームから、ビットストリーム内にサイド情報が存在するかどうかを指示する、サイド情報インジケータを取得するステップS310を含む。方法は、特徴マップをデコードすることS350をさらに含む。特徴マップのデコーディングS350は、ステップS320をさらに含み、そこではサイド情報インジケータの値が判定され、作用を受ける。特に、サイド情報インジケータが第5の値を有するとき、方法は、ビットストリームから、特徴マップをデコードするためのサイド情報を解析するステップS330を含む。そうでなければ、サイド情報インジケータが第6の値を有するとき、方法は、ビットストリームから、特徴マップをデコードするためのサイド情報を解析することをバイパスすることS340をさらに含む。第5の値は、ビットストリームがサイド情報を含むことを指示するが、第6の値は、ビットストリームが、特徴マップの特定の部分(たとえば、領域)、または特徴マップ全体または同様のものに対するサイド情報を含まないことを指示する。
【0178】
超事前分布モデルは、すでにデコードされているシンボルに基づく自己回帰的なコンテキストモデリングを含み得るので、サイド情報の伝送は、必要ない場合があり、超事前分布ネットワークは、コンテキストのみに基づく分布を効率的にモデル化することができる。同時に、コンテキストモデリングの効率は、入力画像またはビデオコンテンツの統計的特性に強く依存する。あるコンテンツは十分に予測可能であり得るが、あるコンテンツはそうでないこともあり得る。柔軟性のために、入力コンテンツの統計的特性に基づきエンコーダによって決定され得るサイド情報の伝送と利用のオプションを有することは有益である。これは、圧縮システムが入力コンテンツ特性に適応する可能性をさらに高める。
【0179】
図13のデコーダプロセスに対応して、ビットストリームの実施形態は、ビットストリームにおけるサイド情報(z_cap)の存在を制御する、シンタックス要素side_information_availableを含み得る。サイド情報が利用可能でない場合(たとえば、算術符号化のためのシンボル確率を取得するために必要でないとエンコーダによって決定された場合)、デコーダはサイド情報値を読み取ることをスキップし、
【0180】
【0181】
を何らかの値、たとえば0で初期化してから
【0182】
【0183】
を超事前分布の生成部(gs)に送る。これは、シグナリングをさらに最適化することを可能にする。以下に、例示的なビットストリームが示されている。
【0184】
【0185】
デコーディング方法に対応して、一実施形態によれば、ニューラルネットワークによる処理のための特徴マップをビットストリーム内にエンコードするための方法が提供される。方法は、
図14に例示されており、特徴マップ(または、特徴マップの少なくとも1つの領域)を取得するステップS360を含み得る。方法は、ビットストリーム内の特徴マップに関するサイド情報を指示するかどうかを決定するステップS370を含み得るエンコーディングのステップS365をさらに含む。決定が肯定的である場合、方法は、第3の値(たとえば、上述の第5の値に対応し、したがってエンコーダアンデコーダは互いに理解し、または同じシステムの一部となり得る)およびサイド情報を指示するサイド情報インジケータをビットストリームに挿入することS380をさらに含み得る。決定が肯定的である場合、方法は、第4の値(たとえば、上述の第6の値に対応し、したがってエンコーダおよびデコーダは互いに理解し、または同じシステムの一部となり得る)をサイド情報なしで指示するサイド情報インジケータをビットストリームに挿入することS390をさらに含み得る。サイド情報は、特徴マップの領域に、または特徴マップ全体に対応し得る。
【0186】
サイド情報は、
図3のオートエンコーダを参照しつつ説明されているようなサイド情報に対応し得ることに留意されたい。たとえば、デコーディング方法は、エントロピーデコーディングをさらに含んでもよく、エントロピーデコーディングは、ニューラルネットワークによって処理されたデコード済み特徴マップに基づく。それに対応して、エンコーディング方法は、ニューラルネットワークによって処理されたエンコード済み特徴マップに基づくエントロピーエンコーディングをさらに含み得る。特に、特徴マップは、
図3に示されているような超事前分布h
a/h
sからの特徴マップに対応し得る。特徴マップに基づくサイド情報は、zで要約される標準偏差の分布に対応し得る。zは、量子化され、さらに圧縮(たとえば、エントロピー符号化)され、サイド情報として伝送され得る。次いで、エンコーダ(さらにはデコーダ)は、量子化済みベクトル
【0187】
【0188】
を使用して、算術符号化(または、一般に、他の種類のエントロピー符号化)に対する確率値(または頻度値、発生回数)を取得するために実際に使用される標準偏差の空間分布
【0189】
【0190】
を推定し、それを使用して量子化済み画像表現
【0191】
【0192】
(または潜在表現)をエンコードする。デコーダは、最初に、圧縮済み信号から
【0193】
【0194】
を復元し、それに対応して潜在表現をデコードする。上で説明されたように、分布モデリングネットワークは、潜在表現のすでにデコードされているシンボルに基づきコンテキストモデリングによってさらに強化され得る。いくつかの場合において、zの伝送は必要ない場合があり、超事前分布ネットワーク(hs)の生成部の入力は、規則に従った値、たとえば定数によって初期化され得る。
【0195】
図3のエンコーダおよびデコーダは単なる例であることに留意されたい。一般に、サイド情報は、他の情報(
【0196】
【0197】
とは異なる)を伝え得る。たとえば、エントロピー符号化のための確率モデルは、直接的にシグナリングされ得るか、またはサイド情報においてシグナリングされる他のパラメータから導出され得る。エントロピー符号化は、算術符号化である必要はなく、他の種類のエントロピーまたは可変長符号化であってもよく、これは、たとえば、コンテキスト適応的であり、サイド情報によって制御され得る。
【0198】
例示的な一実装形態において、サイド情報インジケータが第6の値を有するとき、デコーディング方法は、サイド情報を所定のサイド情報値に設定することを含む。たとえば、所定のサイド情報値は0である。デコーディング方法は、ビットストリームから前記所定のサイド情報値をデコードするステップをさらに含み得る。
【0199】
それに対応して、例示的な一実装形態におけるエンコーディング方法では、サイド情報インジケータが第4の値を有するとき、エンコーディング方法は、0などの所定のサイド情報値に基づき導出されるエンコーディングパラメータに対して適用し得る。エンコーディング方法は、ビットストリームに前記所定のサイド情報値をエンコードするステップをさらに含み得る。言い換えると、ビットストリームは、たとえば、特徴マップの複数の領域について、または特徴マップ全体もしくは複数の特徴マップについて1回、所定のサイド情報を伝え得る。言い換えると、所定の値(定数であってもよい)は、サイド情報インジケータよりも低い頻度でシグナリングされ得る。しかしながら、これは必ずしもそうではなく、いくつかの実施形態において、所定の値は、チャネル(特徴マップデータの一部)毎に、またはチャネル領域毎に、または同様の方式で、個別にシグナリングされ得る。
【0200】
本開示は、所定の値をシグナリングすることに限定されず、その代わりに標準によって指定され得るか、またはビットストリームに含まれる他の何らかのパラメータから導出され得る。さらに、所定の値をシグナリングする代わりに、所定の情報が決定される際に従う規則を指示する情報がシグナリングされ得る。
【0201】
したがって、説明されている方法は、サイド情報の潜在表現
【0202】
【0203】
の伝送を最適化するためにも適用可能である。上述したように、サイド情報
【0204】
【0205】
(
図3)は、複数の出力チャネルを含む畳み込み層の出力に基づく。一般的な方式では、特徴マップは、それ自体サイド情報を表すと考えられ得る。したがって、上で説明され、
図10に例示されている方法は、サイド情報のシグナリングの最適化にも適用可能であり、サイド情報存在インジケータと組み合わせることもできる。
【0206】
以下は、これら2つの方法がどのように組み合わせられ得るかを例示する例示的なシンタックスの表である。
【0207】
【0208】
ビットストリームを解析するための方法は、ビットストリームからサイド情報存在インジケータ(side_information_available)を取得することを含み得る。方法は、サイド情報存在インジケータが第3の値(たとえばside_information_availableがTRUEである)を有するときビットストリームからサイド情報(z_cap)を解析することと、サイド情報存在インジケータが第4の値(たとえばside_information_availableがFALSEである)を有するときビットストリームからサイド情報を完全に解析することをバイパスすることとをさらに含み得る。さらに、ビットストリームにおいて指示されるサイド情報は、領域存在インジケータ(たとえば、上記のシンタックスに示され、
図8から
図11を参照しつつ説明されるside_infromation_channel_presence_flag)、および領域のエントロピーデコーディングに使用するための推定確率モデルを取得するためにニューラルネットワークによって処理されることについての情報(z_cap)のうちの少なくとも1つを含み得る。領域存在インジケータ(side_infromation_channel_presence_flag)の値に応じて、特徴マップデータ(z_cap)は、ビットストリームに含まれ得る。
【0209】
言い換えると、この例では、潜在空間y_capについて説明されたのと似た方法は、サイド情報z_capに適用され、これは同じくチャネルを含む特徴マップであってもよい。z_capはdecode_latent_valueによってデコードされる。これは、y_capと同じ、デコーディングのプロセスを利用し得るが、必ずしもそうではない.
【0210】
対応するエンコーディング方法およびデコーディング方法は、
図8から
図14を参照しつつ説明されているようなステップを組み合わせて含み得る。
【0211】
さらに、エンコーダは、超事前分布の潜在表現における値を初期化するためにどの定数値が使用されるべきであるかを決定し得る。その場合、値(side_information_init_value)は、次のシンタックスに例示されているようにビットストリームで伝送される。
【0212】
【0213】
言い換えると、いくつかの実施形態において、サイド情報存在インジケータは第4の値を有し、方法は、デコーダにおいてサイド情報を所定のサイド情報値に設定することを含む(サイド情報がエンコーディングにおいて使用される場合、エンコーダでも行われ得る)。上記の例示的なシンタックスでは、side_information_channel_presence_flagがFALSEである場合に、特徴マップ値(z_cap)は、0に設定される(または、side_information_init_valueシンタックス要素としてビットストリーム内で予め設定されるかまたは伝送される他の値に設定され、その場合、割り当ての前に予め解析されるべきである)。ただし、定数0は例示に過ぎない。上記の実施形態ですでに説明されているように、特徴マップデータは、標準によって事前定義されるか、ビットストリームでシグナリングされるか(たとえば、上記の例からのside_information_init_valueシンタックス要素は、その場合に、割り当ての前に予め解析されるべきである)、または事前定義済みもしくはシグナリング済み規則に従って導出され得る所定の特徴マップデータに設定され得る。
【0214】
いくつかの実施形態において、領域存在インジケータは、第1の値および第2の値によって形成される2つの値のみのうちの一方を取ることができるフラグである。いくつかの実施形態において、サイド情報存在インジケータは、第3の値および第4の値によって形成される2つの値のみのうちの一方を取ることができるフラグである。いくつかの実施形態において、サイド情報存在インジケータは、第5の値および第6の値によって形成される2つの値のみのうちの一方を取ることができるフラグである。これらの実施形態は、1ビットのみを使用する効率的なシグナリングを可能にし得る。
【0215】
深層特徴または特徴マップのうちの重要度の低いものをスキップ転送することで、エンコーディングおよびデコーディングのレートおよび複雑度に関して改善された効率を提供し得る。スキップは、チャネル単位であるか、またはチャネルの領域毎、または同様の方式であってよい。本開示は、スキップのいかなる特定の粒度にも限定されない。
【0216】
上述されている方法は、生成モデル(または再構成ネットワーク)に入力されると想定される、ビットストリームから伝送されおよび取得される任意の特徴マップに適用可能であることはさらに理解されるべきである。生成モデルは、たとえば、画像再構成、動き情報再構成、残留情報再構成、算術符号化(たとえば、上述の超事前分布による)のための確率値(または頻度値)の取得、物体検出および認識、またはさらなる用途に使用され得る。
【0217】
ソート順序
本開示の他の実施形態は、相対的重要度に応じてチャネルを並べ替えることである。いくつかの例示的な実装形態では、ビットストリームにおける順序に関する情報を伝えることが可能であり、シグナリングを簡略化し、ビットレートスケーラビリティ特徴を使用可能にする。すなわち、この実施形態では、チャネル重要度ソートが適用され、ソート順序は、ビットストリームで伝送されるか、または所定の情報を参照することによって、エンコーダとデコーダの両サイドで知られる。
【0218】
特に、特徴マップデータ(チャネルデータ)をデコードするための方法は、特定の層の複数のチャネル(特徴マップデータの一部)の重要度を指示する有意性順序を取得するステップを含み得る。チャネル有意性という術語はここでは、ニューラルネットワークによって行われるタスクの品質に対するチャネルの重要度の尺度を指す。たとえば、タスクがビデオ符号化である場合、有意性は、エンコード済みビデオの再構成済み品質および/または結果として得られるレートを測定する尺度(メトリック)であってよい。タスクが物体認識などのマシンビジョンである場合、有意性は、認識精度または同様のものに対するチャネルの寄与度を測定するものであってもよい。有意性順序の取得は、一般に任意の手段によって行われ得る。たとえば、有意性順序は、ビットストリームにおいて明示的にシグナリングされるか、または標準もしくは他の規約において事前定義されるか、またはたとえば、他のシグナリング済みパラメータに基づき暗黙のうちに導出され得る。
【0219】
方法は、最後の有意なチャネルインジケータを取得することと、最後の有意なチャネルインジケータに基づき領域存在インジケータを取得することとをさらに含み得る。最後の有意なチャネルインジケータは、特定の層またはネットワーク部分またはネットワークのチャネルのうちの最後の有意なチャネルを指示する。「最後の」という語は、有意性順序のコンテキスト内で理解されるべきである。いくつかの実施形態によれば、そのような最後の有意なチャネル指示は、最も有意性が低いチャネル指示であると解釈されることもできる。最後の有意なチャネルは、有意性に従って順序付けられたチャネルのうちの、その後に、ニューラルネットワークのタスクにとって重要でないと考えられる、有意性の低いチャネルが続く、チャネルである。たとえば、チャネル1からMが有意性に応じて降順に順序付けられた場合(最も有意性の高いものから最も有意性の低いものへ)、チャネルkは、チャネルk+1からMがニューラルネットワークタスクに対して重要(有意)ではないと考えられる場合に、最後の有意なチャネルである。そのようなチャネルk+1からMは、次いで、たとえば、ビットストリームに含まれる必要はない。この場合、最後の有意なチャネルインジケータは、ビットストリーム内にこれらのチャネルk+1からMがないことを指示するために使用され、それによりそれらのエンコード/デコードがバイパスされ得る。チャネル1からkに関係するデータは、次いで、それらのエンコード/デコードが行われるようにビットストリームで伝達される。
【0220】
例示的な一実装形態において、ソート順序は、設計段階において事前定義され、伝送されることを必要とせずにデコーダサイドで(さらにはエンコーダサイドで)知られている。最後の有意な係数のインデックスは、エンコーダにおいてビットストリーム内に挿入される。
図15は、デコーダでの方法の一例を例示している。最後の有意な係数のインデックスは、デコーダにおいてビットストリームからステップS510で取得される。最後の有意なチャネルインデックスは、直接的形式でビットストリームにおいてシグナリングされ得る、すなわち、シンタックス要素last_significant_channel_idxはビットストリームに含まれ得る(場合によってはエントロピー符号化される)。代替的アプローチおよび間接的シグナリングは、以下で説明される。
【0221】
ステップS520において、ニューラルネットワーク層または複数の層のすべてのチャネルにわたるループが行われる。現在のチャネルは、現在の反復iにおけるチャネル、すなわち、i番目のチャネルである。次いで、各i番目のチャネルについて、デコーダは、インデックスiを最後の有意なチャネルインデックスと比較することS530によって、channel_presence_flag[i]を決定する。iが最後の有意なインデックスより高い場合、channel_presence_flag[i]は、ステップS540においてFALSEに等しく設定される。そうでなければ、channel_presence_flag[i]は、ステップS550においてTRUEに等しく設定される。この実施形態では、最後の有意なチャネルの指示に関して、チャネル存在フラグは、ビットストリーム内に実際に含まれるフラグではないことに留意されたい。むしろ、この場合のチャネル存在フラグは、単に、ステップS520~S550において上に示されているように、シグナリングされた最後の有意なチャネルインデックスから導出される内部変数に過ぎない。
【0222】
ビットストリームの生成および解析プロセスの両方を例示する対応する例示的なシンタックステーブルが以下に提示されている。
【0223】
【0224】
次いで、チャネル情報(データ)解析段階において、ステップS560で、デコーダは、導出されたchannel_presence_flag[i]を使用して、ステップS570でビットストリームからチャネル情報を解析するかどうか(channel_presence_flag[i]=TRUEの場合)、またはその代わりにステップS580で解析をスキップ(バイパス)するかどうか(channel_presence_flag[i]=Falseの場合)を決定する。先の実施形態で述べたように、バイパスすることは、ステップS580において、チャネル情報を0などの事前定義された値で初期化することを含み得る。チャネル存在フラグの導出を示す
図15のフローチャートは、説明を目的としており、一例を表すに過ぎない。一般に、ステップS530は、チャネル存在フラグの中間導出なしでステップS570またはステップS580に進むかどうかを直接的に決定し得る。言い換えると、チャネル存在フラグは、暗黙のうちに導出されるのみであり、実装に応じて、解析プロセスまたは意味解釈プロセスの他の部分によってさらに使用する上で有益であれば記憶され得る。これは、上述のシンタックスにも適用される。
【0225】
この例では、デコーディングは、ビットストリームから、最も有意なチャネルから最後の有意なチャネルまでの有意性順序に従ってビットストリーム内でソートされたチャネルをデコードすることによって行われる。チャネル情報(データ)はエントロピー符号化されてもよく、その場合、上述の方法は、チャネルデータをエントロピーデコードするステップS590を含み得る。すべてのチャネルを収集した後に、ステップS595において、チャネルは、ニューラルネットワークの対応する層に供給される。
【0226】
しかしながら、本開示は、エンコーダとデコーダの両サイドで有意性順序が導出されるか、または知られている場合に限定されない。例示的な一実装形態によれば、有意性順序の取得は、ビットストリームからの有意性順序の指示のデコーディングを含む。
【0227】
特に、例示的な一実装形態では、デコーダは、対応するシンタックス要素を解析することによってビットストリームから有意性順序を取得する。有意性順序は、各有意性インデックスとチャネル設計インデックスとの間の対応関係を確立することを可能にする。ここで、チャネル設計インデックスの下で、チャネルがモデル設計においてインデックス付けされる際に従うインデックスは理解される。たとえば、チャネル設計順序は、ニューラルネットワーク処理におけるチャネルのコンテンツとは無関係に事前定義された規約に従って1つの層のチャネルが番号を付けられる順序であってもよい。
【0228】
有意性インデックスおよび対応する設計インデックスを含む有意性順序情報の例は、
図18のパートA)に与えられている。図を見るとわかるように、値0から191を有する設計インデックスは、チャネル、たとえば、ニューラルネットワーク内の特定の層のチャネルを表す。チャネルへのインデックスの割り当ては、上述されているように、インデックス付けが所定の有意性に従って行われる特定の場合において有意性順序と称される。
図18のパートA)において、最も有意性の低いチャネルインデックスは190であり、これは0から190までの191個のチャネルのデータがシグナリングされ、インデックス191を有する192番目のチャネルのデータはシグナリングされないことを意味している。
【0229】
同様に、
図17は、ステップS610において、ビットストリームから最後の有意なチャネルインジケータが取得される方法を例示している。次いで、ステップS620は、チャネルにわたるループを表す。各i番目のチャネルについて、ビットストリームから取得された有意性順序に従って、デコーダは、設計インデックスdを決定しS630、インデックスiを最後の有意なチャネルインデックスと比較するS635ことによって対応するchannel_presence_flag[d]を決定する。iが最後の有意なインデックスより高い場合、channel_presence_flag[d]は、ステップS645においてFALSEに等しく設定される。そうでなければ、channel_presence_flag[d]は、ステップS640においてTRUEに等しく設定される。次いで、チャネル情報解析段階において、デコーダは、channel_presence_flag[d]を使用して、ステップS670においてビットストリームからのチャネル情報を解析する(channel_presence_flag[d]=TRUEの場合)か、またはステップS660においてチャネル情報を事前定義された値、たとえば、0で初期化する(channel_presence_flag[d]=FALSEの場合)かを(たとえば、決定ステップS650において)定義する。さらに、ステップS680において、チャネル情報は、算術デコーダまたは同様のものなどのエントロピーデコーダによってさらにデコードされ得る。最後に、ステップS690において、すべてのチャネルのデコード済みチャネル情報は、対応するニューラルネットワーク層に提供される。
【0230】
ビットストリーム内で有意性順序がシグナリングされる実施形態に対するビットストリームの生成および解析のプロセスを例示する例示的なシンタックステーブルが以下に提示される。
【0231】
【0232】
有意性順序取得要素の例示的なシンタックスは次の通りである。
【0233】
【0234】
obtain_significance_order()のシンタックスからわかるように、有意性順序は、チャネルインデックスiにわたって繰り返し、各チャネルiにi番目に高い有意性を有する設計チャネルインデックスdesign_channel_idxを割り当てることによって取得される。このシンタックスは、対応するそれぞれのチャネルの有意性に従って順序付けられた設計チャネルインデックスのリストとしてもみなされ得る。しかしながら、このシンタックスは例示に過ぎず、エンコーダとデコーダとの間で有意性順序が伝達され得る方法を限定するものではないことに留意されたい。
【0235】
このアプローチ(最後の有意なチャネルインジケータをシグナリングする)の技術的利点の1つは、コンテンツ適応性である。実際、CNNの異なるチャネルは、自然画像またはビデオの異なる特徴を表現することができる。一般性のために、設計および訓練段階において、CNNは、可能な入力信号のより広範な変動をカバーするようにターゲットにされ得る。いくつかの実施形態において、エンコーダは、たとえば、上述されているような方法のうちの1つを使用することによって、シグナリングに対して情報量を識別し、最適化する柔軟性を有する。有意性順序情報(インジケータ)は、異なるレベルの粒度、たとえば、ピクチャ毎に1回、ピクチャの一部毎に1回、ピクチャのシーケンスまたはグループ毎に1回で伝送され得ることに留意されたい。粒度は、プリセットされ得るか、または標準によって事前定義され得る。あるいは、エンコーダは、コンテンツ特性に基づき、有意性順序情報をいつ、何回シグナリングするかを決定する柔軟性を有し得る。たとえば、シーケンス内で新しいシーンが検出された後、統計的特性が変化したことに起因して有意性順序情報を送信するか、または更新することが有益であり得る。
【0236】
いくつかの実施形態において、デコーダでは、有意性順序を取得することは、特徴マップが生成されたソースデータに関する以前にデコードされた情報に基づき有意性順序を導出することを含む。特に、デコーダは、ビットストリームで伝送されるエンコード済みコンテンツのタイプに関する補足情報を使用して有意性順序を決定し得る。たとえば、補足情報は、専門家生成コンテンツ、ユーザ生成コンテンツ、カメラキャプチャコンテンツもしくはコンピュータ生成コンテンツ、ビデオゲーム、または同様のものを区別し得る。あるいは、またはそれに加えて、補足情報は、YUV420、YUV422、またはYUV444などの、異なるクロマサンプリングレートタイプを区別してもよい。さらなるソース記述情報は、それに加えて、または代替的に使用され得る。
【0237】
例示的な一実装形態によれば、有意性順序の取得は、特徴マップが生成されたソースデータのタイプに関する以前にデコードされた情報に基づき有意性順序を導出することを含む。
【0238】
上述の実施形態および実装形態のいずれかにおいて、エンコード済みビットストリームは、何らかのビットレートスケーラビリティサポートを提供する方法で編成され得る。これは、たとえば、CNNチャネル情報がチャネルの相対的重要度に従ってビットストリーム内に置かれ、最も重要なチャネルは最初に、最も重要でないチャネルは最後に来る、という点で達成され得る。ビットストリームにおけるチャネル順序を定義する相対的チャネル重要度は、上述されているように設計段階で定義され得、ビットストリームで伝送される必要がないようにエンコーダとデコーダの両方に知られているものとしてよい。あるいは、有意性順序情報は、エンコーディングプロセスにおいて定義されるか、または調整され得、ビットストリームに含まれ得る。後者のオプションは、コンテンツの特定の特徴に対していくらかより大きな柔軟性および適応性を提供し、これはより高い圧縮効率を使用可能にし得る。
【0239】
例示的な一実装形態によれば、最後の有意なチャネルの指示は、ビットストリームからデコードされる品質インジケータに対応し、特徴マップの領域の圧縮から結果として生じる符号化済み特徴マップの品質を指示する。最後の有意なチャネルインデックスは、たとえば、ビットストリームで伝送される品質インジケータと、所望の品質レベルを有するピクチャを再構成するために使用される品質レベルとチャネルとの間の対応関係を定義するルックアップテーブルとを使用することによって、間接的な形態でシグナリングされ得る。たとえば、
図16のパートAおよびパートB)は、そのようなルックアップテーブルを示しており、各品質レベルは、対応する最後の有意なチャネルの設計インデックスに関連付けられている。言い換えると、入力済み(所望の)品質レベルに対して、ルックアップテーブルは、最後の有意なチャネルインデックスを提供する。したがって、ビットストリームの品質レベルがデコーダサイドでシグナリングされるか、または導出可能である場合に、最後の有意なチャネル指示はビットストリームでシグナリングされる必要はない。
【0240】
品質グラデーションの量は、モデル内のチャネルの量に対応し得ないことに留意されたい。たとえば、(
図16、パートB))の所与の例では、品質レベルの量は100(0から99まで)であり、チャネルの量は192(0から191まで)である。たとえば、所与の例において、品質レベル0については最後の有意なチャネルインデックスは1であり、品質レベル98については最後の有意なチャネルインデックスは190である。
【0241】
図18は、ルックアップテーブルのさらなる例を例示する。上述したように、たとえば
図17を参照すると、最後の有意なチャネルインデックスは、直接的な形態で、またはたとえばビットストリームで伝送される品質インジケータと、所望の品質レベルを有するピクチャを再構成するために使用される品質レベルとチャネルとの間の対応関係を定義するルックアップテーブルとを使用することによって間接的な形態で、ビットストリームにおいてシグナリングされ得る。また
図18において、品質レベルの量は100(0から99まで)であり、チャネルの量は192(0から191まで)である。その場合、最後の有意なチャネルは、指定された(所望の)品質レベルに対応する有意性順序の最後のチャネルと定義される。たとえば、所与の例において、品質レベル0については最後の有意なチャネルインデックスは1であり、品質レベル98については最後の有意なチャネルインデックスは190である。
図18のパートB)では、品質レベル、有意性インデックス、および設計インデックスの間の関係が示されている。これからわかるように、有意性インデックスは、設計インデックスと実質的に異なり得る。
【0242】
一般に、最後の有意なチャネルの指示は、有意性順序内の最後の有意なチャネルのインデックスに対応する。言い換えると、M個のチャネルは、1からMまでの有意性順序で順序付けられ、インデックス付けされる。
【0243】
たとえば、画像またはビデオ符号化を含むアプリケーションにおいて、(たとえば、ユーザまたはアプリケーションまたは同様のものによって)エンコーダで選択される品質設定があり得る。そのような品質設定(インジケータ)は、次いで、
図16および
図18に示されているように最後の有意なチャネルの特定の値に関連付けられ得る。たとえば、再構成後の所望の画像/ビデオ品質が高ければ高いほど、より多くのチャネルがシグナリングされるであろう、すなわち、(降順でその有意性に従って順序付けられたすべてのチャネルのインデックスのうちの)最後の有意なチャネルインデックスがより高くなるであろう。これらは例に過ぎず、チャネル順序付けは昇順で行われ得るか、または昇順/降順は選択可能でシグナリングされることすらあり得ることに留意されたい。
【0244】
たとえばアプリケーション要件によって定義される粒度の所望のレベルに応じて、スケーラビリティレベルは、
図19に描かれているように各CNNチャネルで、またはいくつかのチャネルを1つのスケーラビリティレベルにグループ化することによって、定義され得る。これは、アプリケーション固有のタスクによりよく適合できる追加の柔軟性を提供し、それによりスケーラビリティレベルに対応する最も重要でない特徴マップチャネルを落とすことによって再エンコードせずにビットレートを低減することを可能にする。
【0245】
チャネルの順序付けのための他の基準は、チャネルの類似度とすることもできるであろう。この類似度は、たとえば、チャネルの情報を符号化するのに必要なビットの量として見積もられ得る。チャネル情報を表現するのに必要なビットの類似の量は、チャネルの情報の類似のレベルと考えられ得る。情報の量は、チャネルをソートするための基準(ビットの最大の量から最小の量へ、または最小の量から最大の量へ)として使用され、ビットストリーム内に類似のチャネルを次々に入れることができる。これは、コンテキスト適応算術符号化(CABAC)を使用する場合に、シンボルデコーディングとともに更新される、確率モデルを安定させることに起因して、圧縮効率の累加の利点をもたらす。それは、モデルによるより正確な確率推定を提供し、圧縮効率を高める。
【0246】
特徴マップの一部分の存在
領域存在インジケータおよび/またはサイド情報存在インジケータのシグナリングは、特徴マップの領域について行われ得る。いくつかの実施形態において、領域は、特徴マップのチャネルである。畳み込み層によって生成される特徴マップは、入力ピクチャサンプルの空間的関係と同様に特徴マップ値の間の空間的関係を(少なくとも部分的に)保存し得る。したがって、特徴マップチャネルは、再構成品質に対して異なる重要度の領域、たとえば、物体のエッジを含む平坦領域および非平坦領域を有し得る。特徴マップデータをユニットに分割することは、たとえば平坦領域の特徴値の伝送をスキップすることによって、領域のこの構造をキャプチャして圧縮効率のためにそれを利用することを可能にする。
【0247】
例示的な一実装形態によれば、チャネル特徴マップを含むチャネル情報は、チャネルの特定の空間的領域がビットストリーム内に存在しているかどうかを指示する1つまたは複数のインジケータを有する。言い換えると、CNN領域はCNNチャネルの任意領域であり、ビットストリームは任意領域定義のための情報をさらに含む。領域を指定するためには、2次元空間のパーティション分割のための知られている方法が使用され得る。たとえば、四分木パーティション分割または他の階層的木パーティション分割法が適用され得る。四分木パーティション分割は、2次元空間を、4つの象限または領域に再帰的に細分することによってパーティション分割することを可能にするパーティション分割方法である。
【0248】
たとえば、デコーディング方法(上述の実施形態および例示的な実装形態のいずれかによる方法など)は、ビットストリームから、特徴マップの領域をユニットに分割することを指示する領域分割情報をデコードし、分割情報に応じて、領域のユニットをデコードするためでないビットストリームから特徴マップデータが解析されるかどうかを指示するユニット存在指示をデコードする(ビットストリームから解析する)かまたはデコードしない(解析をバイパスする)ステップをさらに含み得る。
【0249】
これに対応して、エンコーディング方法は、特徴マップの領域がさらにユニットに分割されるべきかどうかを決定する。肯定される場合、特徴マップの領域をユニットに分割することを指示する分割情報は、ビットストリーム内に挿入される。そうでない場合、特徴マップの領域をユニットに分割しないことを指示する分割情報は、ビットストリーム内に挿入される。分割情報は、さらにエントロピーエンコードされ得るフラグであってもよいことに留意されたい。しかしながら、本開示は、これに限定されず、分割情報は、また、分割が適用される場合の分割のパラメータを同時シグナリングし得る。
【0250】
分割が適用される場合、エンコーダは、特定のユニットがビットストリーム内に存在しているかどうかをさらに決定し得る。これに対応して、ユニットに対応する特徴マップデータがビットストリームに含まれるかどうかを指示するユニット存在指示が提供される。ユニット存在インジケータは、上述されている領域存在インジケータの特別な場合としてみなされてよく、上記の説明は、この実施形態にも適用されることに留意されたい。
【0251】
いくつかの実施形態において、領域に対する領域分割情報は、ビットストリームが領域のユニットの寸法および/または位置を指定するユニット情報を含んでいるか含んでいないかを指示するフラグを含む。デコーディング方法は、ビットストリームから領域のユニット毎のユニット存在指示をデコードすることを含む。ユニットに対するユニット存在指示の値に応じて、デコーディング方法は、ビットストリームからユニットに対する特徴マップデータを解析すること、または解析しないことを含む。
【0252】
いくつかの実施形態において、ユニット情報は、四分木、二分木、三分木、または三角分割のうちの少なくとも1つを含む領域の階層的分割を指定する。
【0253】
四分木は、各内部ノードがちょうど4つの子ノードを有する木データ構造である。四分木は、2次元空間を、4つの象限または領域に再帰的に細分することによってパーティション分割するために使用されることが最も多い。葉セルに関連付けられているデータは、用途によって異なるが、葉セルは「興味深い空間情報のユニット」を表す。四分木パーティション分割法では、細分された領域は正方形であり、その各々はさらに4つの子領域に分割され得る。また、二分木や三分木法は、長方形形状のユニットも含み得るが、これはそれに対応して各内部ノードに対して2個または3個の子を有する。さらに、任意の分割形状は、マスクまたは幾何学的規則を使用して、たとえば三角形ユニット形状を取得することによって実現され得る。このデータ構造は、パーティションツリーと名付けられる。分割方法は、1つの木構造内に四分木、二分木、および/または三分木のような異なる木の組合せを含み得る。異なる単位形状および分割規則を有することは、特徴マップデータの空間構造をより適切にキャプチャし、最も効率的な方法でビットストリームにシグナリングすることを可能にする。パーティションツリーのすべての形態はいくつかの共通特徴を共有する、すなわち、これらは空間を適応可能なセルに分解し、各セル(またはバケット)に最大容量を有し、最大容量に達したとき、バケットは分割され、木ディレクトリはパーティションツリーの空間分解に従う。
【0254】
図20は、ブロック(2次元画像または特徴マップのユニット)2000の四分木パーティション分割を例示する概略図である。各ブロックは、4つに階層分割する各ステップにおいて分割され得るが、分割されなくてもよい。第1ステップでは、ブロック2000は4等分のブロックに分割され、そのうちの1つは2010である。第2のステップにおいて、4つのブロックのうちの2つ(この例では右側のブロック)はさらにパーティション分割され、それらの各々は再度、ブロック2020を含む4つの等しいサイズのブロックに分割される。第3のステップにおいて、8つのブロックのうちの1つは、ブロック2030を含む4つの等しいサイズのブロックにさらに分割される。
【0255】
二分木および三分木パーティション分割のような他のパーティション分割方法は、任意の領域定義および対応する存在フラグの解析の同じ目的を達成するために使用され得ることに留意する価値がある。以下に示されるのは、シンタックスおよび対応する解析プロセス(および対応するビットストリーム生成プロセス)の可能な実装形態を例示するシンタックステーブルである。各CNNチャネルについて、まずparse_quad_tree_presence関数が呼ばれ、任意領域定義に関する情報(split_qt_flag)を読み取り、領域サイズ(幅、高さ)と位置(x、y)に関する情報を埋め、チャネルの各任意領域に対応するpresence_flagを解析する。
【0256】
同じ結果をもたらす実装の他の変更形態も可能であることに留意されたい。たとえば、領域存在フラグの解析は、解析ループの1つの反復におけるチャネル情報解析と組み合わされ得るか、または領域分割情報は、パーティション情報に関するシグナリングオーバーヘッドを低減するためにすべてのチャネルのチャネルグループ内で共有され得る。言い換えると、領域分割情報は、特徴マップの複数(2つ以上またはすべて)のチャネル(領域)の分割に適用される(べきである)分割を指定し得る。
【0257】
【0258】
以下のシンタックステーブルにおいて、領域分割情報を解析する一実装形態が提示されている。四分木法は、一例として使用される。
【0259】
【0260】
次のシンタックステーブルは、チャネルのグループ内の領域分割情報(channel_regions_info)を共有する一例を例示しており、これはまた特徴マップのすべてのチャネルであり得る。
【0261】
【0262】
存在情報は、階層的に編成され得る。たとえば、特定のチャネル(上述の例および実施形態のいくつかで説明されている)に対するchannel_presence_flagが、ビットストリーム内でFALSE(すべてのチャネル関係情報が省かれることを指示する)に等しい場合、チャネル関係情報のさらなる解析は、そのチャネルについては行われない。channel_presence_flagがTRUEに等しい場合、デコーダは、特定のチャネルに対応する領域存在情報を解析し、次いでチャネルのユニットに関係し得るビットストリームから領域単位のチャネル情報を取り出す。これは、以下に示されている例示的なシンタックスによって例示される。
【0263】
【0264】
あるいは、または前の実施形態と組み合わせて、追加のシンタックス要素は、任意領域存在シグナリングメカニズムが有効化されるべきかどうかを指示するために使用され得る。特に、有効化フラグは、チャネルパーティション分割が有効化(許可)されているかどうかをシグナリングするために使用され得る。
【0265】
【0266】
要素enable_channel_regions_flag[i]は、チャネルがビットストリーム内に存在している場合に各チャネルiについてシグナリングされ(channel_presence_flag[i]フラグで制御される)、チャネルパーティション分割が有効化されているかどうかを指示する。パーティション分割が有効化されている場合、デコーダは、parse_quad_tree_presence()関数を呼び出すことによって、ビットストリームからの領域分割情報さらには分割ユニットに対応する存在フラグを解析する。ユニット存在フラグ(channel_regions_info[i][n].presence_flag)が取得された後、分割ユニットの特徴マップ要素にわたってデコーダが繰り返す。ユニット存在フラグがTRUEに等しい場合、デコーダは、特徴マップ値を解析する(decode_latent_value(i,x,y))。そうでない場合、特徴マップ値y_cap[i][y][x]は、この所与の例において0などの定数に等しくなるように設定される。
【0267】
変換の適用
この実施形態によれば、チャネル情報を表す(CNN)チャネル特徴マップは、ビットストリームでシグナリングされる前に変換される。ビットストリームは、最後の有意な変換済みチャネル特徴マップ係数の位置を定義するシンタックス要素をさらに含む。変換(transformation)(本明細書では、変換(transform)とも称される)は、たとえば、結果として何らかのエネルギー圧縮をもたらし得る任意の好適な変換とすることができる。特徴マップデータの順方向変換を完了した後に、エンコーダは、変換済み係数行列の左上隅(左上隅は、x=0、y=0である開始点である)から始まる最後の非ゼロ係数についてジグザグ走査を行う。他の可能な実装形態において、エンコーダは、いくつかの非ゼロ係数を、最も重要でないとみなして落とすことを決定し得る。最後の有意な係数の位置(x,y)は、ビットストリーム内でシグナリングされる。
【0268】
受信サイドでは、たとえば、デコーダは、対応するシンタックス要素を解析して、対応するチャネルの特徴マップの最後の有意な変換係数の位置を定義する。位置が定義された後、デコーダは、左上隅(x=0,y=0)から始まる領域に属する変換済み特徴マップデータを解析し、最後の有意な係数の位置(x=last_significant_x,y=last_significant_y)で終了する。残る変換済み特徴マップデータは、定数値、たとえば0で初期化される。対応するCNNチャネルの変換済み係数が知られているとき、逆変換が行われ得る。これに基づき、チャネル特徴マップデータが取得され得る。そのようなプロセスは、すべての入力チャネルについて完了され得る。次いで、特徴マップデータは、生成モデルを表す再構成ネットワークに供給されてもよい。
【0269】
一般に、ビットストリームからの領域のデコーディングは、
図21に、領域がチャネルであるものとして例示されている。特に、ステップS710において、チャネルは、処理されるべきすべてのチャネルの中からフェッチされる。ステップS710は、処理されるべきチャネルにわたるループに対応する。デコーディングは、ビットストリームから、領域(ここでは例示的にチャネル)の係数のうちの最後の係数の位置を指示する最後の有意な係数インジケータを抽出することS720を含んだ。ステップS730は、係数にわたるループに相当する。特に、ループは、最も有意な係数から最後の有意な係数まで係数の各々にわたる。ループにおいて、方法は、(S710ループの領域に対する)ビットストリームからの有意な係数のデコーディング(解析S750および場合によってはエントロピーデコーディングS760を含む)および事前定義済み規則に従って最後の有意な係数インジケータに続く係数を設定することS740を実装する。
図21の例示的なフローチャートにおいて、事前定義済み規則は、有意性順序で最後の有意な係数の後に続く係数を0に設定することである。しかしながら、前に「事前定義済み規則」という言い回しについて説明されているように、規則は、異なる値への係数の設定を定義し得るか、または設定されるべき値がビットストリームから、または特定の方法(以前に使用された値からの導出など)によって、または同様の方法によって取得されるべきであることを定義し得る。一般に、本実施形態は、任意の特定の事前定義済み規則に限定されない。
【0270】
方法ステップに関して、ステップS735では、現在の係数(ループS730のステップによって与えられた係数)が有意な係数であるか、有意でない係数であるかがテスト(判定、チェック)される。ここで、有意な係数は、サンプル位置が最後の有意な係数より下および等しい係数である。有意でない係数は、最後の有意な係数より上の(超過する)係数である。この例では、有意性順序は変換後のサンプル順序に対応すると仮定されている。これは一般的に、DCおよび低周波係数はより高い周波の係数よりも有意であると仮定している。サンプル位置は、領域特徴マップの1D変換の結果得られる変換済み(場合によっては、予め1Dとなるように走査される)係数の位置(インデックス)である。本開示は、1D変換の適用または任意の特定のデータ形式に限定されないことに留意されたい。係数の有意性順序は、異なる方法で定義され得る--たとえば、標準でもしくは規約によって、またはさらにはビットストリームもしくは同様のもので提供されてもよい。
【0271】
すべての係数を取得した後に(ループS730を終了した後に)、デコーディング方法は、領域の係数の逆変換によって領域の特徴データを取得することS770を含む。
図21に示されているように、すべてのチャネルのデータがデコードされるとき、デコーディング方法は、すべてチャネルのデータを再構成ネットワークに供給するステップS780をさらに含み得る。
【0272】
例示的な一実装形態によれば、逆変換は、逆離散コサイン変換、逆離散サイン変換、または逆離散コサイン変換もしくは逆離散コサイン変換を修正することによって取得される逆変換、または畳み込みニューラルネットワーク変換である。たとえば、畳み込みニューラルネットワーク層は、変換とみなされてよく、上述されているような最後の有意な係数シグナリング方法で訓練されれば、エネルギー圧縮を望み通りに行えるであろう。さらに、オートエンコーダの分析部の最後の層(潜在空間表現yを生成する)およびオートエンコーダの生成部の第1の層(量子化済み潜在表現を受け入れる)は、それに対応して順変換と逆変換とみなされ得る。したがって、特徴マップ符号化段階の間に上述されているような最後の有意な係数シグナリング方法を有すれば、合同訓練中に取得された順方向畳み込み層変換の望ましいエネルギー圧縮が行われるであろう。本開示は、これらの種類の変換に限定されない。むしろ、KLT、フーリエ、アダマール、または他の直交および場合によってはユニタリー変換などの他の変換が使用されてもよい。
【0273】
以下に示されているのは、次元がインデックスxおよびyによって表されている、2次元チャネルの特徴マップデータに変換が適用されたときの解析プロセスを例示するシンタックステーブルである。本開示は、特徴マップデータの任意の特定の次元性に限定されないことに留意されたい。変換は、走査後、またはデータにいくつかの事前定義済み有意性順序内の位置を割り当てた後に適用され得る。
【0274】
【0275】
上記の例では、最後の有意な係数の位置は、2D特徴マップ(またはその領域)における最後の有意な係数の位置のxおよびy座標に対応する2つの数値によって表される。他の可能な実装形態において、最後の有意な係数の位置は、2D特徴マップ(その領域)のジグザグ走査の順序に対応する単一の数によってシンタックスで表され得る。
【0276】
図22は、エンコーダサイドで行われ得る、例示的な方法を例示するフローチャートを示している。
図22のエンコーディングは、
図21のデコーディングと互換性があり、したがって
図22のエンコーディング方法によって生成されたビットストリームは、
図21のデコーディング方法によって解析され/デコードされ得ることに留意されたい。
【0277】
エンコーディング方法は、特徴マップのチャネル(機械学習モデル、たとえばニューラルネットワークの層によって出力されるデータ)にわたるループS810を含む。ステップS820では、現在のチャネル(ループS810の現在のステップにおけるチャネル)のデータは、順変換によって変換される。上述したように、順変換は、ここでは、チャネル特徴を走査して1Dサンプルシーケンスに入れ、次いでそれを1D変換で変換して係数の1Dシーケンスを取得することを含み得る。係数のそのような1Dシーケンスは、有意性順序に従うと考えられ得る。上述のように、この例は限定するものではない。変換は、より多くの次元を有していてもよく、走査および/または有意性順序は異なっていてもよい。
【0278】
ステップS830において、最後の有意な位置が決定される。最後の有意な位置の決定は、所望の再構成品質および/またはレートに基づき行われ得る。たとえば、
図12を参照しつつ示されている方法と同様に、係数に対する品質および/もしくはレートは累計され、品質および/もしくはレートまたは両者の組合せが所望の閾値を超えるとすぐに、現在の係数は、最後の有意な係数としてみなされる。しかしながら、他のアプローチも可能である。ステップS840において、ステップS830で決定された最後の有意な係数の位置(その指示)は、ビットストリームに挿入される。ビットストリームに挿入する前に、その位置の指示は、算術符号化などのエントロピー符号化または他の可変長符号化方法によってエンコードされ得る。ステップS850は、変換された各係数に対するループを表す。係数位置が最後の有意な係数の位置より低いかまたは同じである場合、ステップS880において、現在の係数がビットストリームに挿入される(場合によってはステップS870において算術エンコーダにより符号化される)。すべてのチャネルの係数を符号化した後、ビットストリームは再構成ネットワークに供給(または送信)されてもよい。
【0279】
当業者には明らかなように、本実施形態は、上述した実施形態のいずれかと組み合わされてもよい。言い換えれば、最後の有意な係数表示は、最後の有意なチャネルと一緒にシグナリングされてもよい。シグナリングは、チャネルよりも小さい(たとえば、パーティショニングによって得られる)領域に対して行われてもよいし、より大きい領域に対して行われてもよい。また、サイド情報が提供されてもよい。一般に、上述した実施形態は、より柔軟性を提供するために組み合わされてもよい。
【0280】
さらに、すでに述べたように、本開示は、上述されている方法のステップを行うように構成されているデバイスも提供する。
図23は、ビットストリームに基づきニューラルネットワークによる処理のための特徴マップをデコードするためのデバイス2300を示している。デバイスは、特徴マップの領域について、ビットストリームからの情報に基づき領域存在インジケータを取得するように構成されている領域存在インジケータ取得モジュール2310を含む。さらに、装置2300は、デコードモジュールであって、領域存在インジケータが第1の値を有するとき、領域をデコードするためにビットストリームからのデータを解析することと、領域存在インジケータが第2の値を有するとき、領域をデコードするためにビットストリームからのデータを解析することをバイパスすることとを含んで、領域をデコードするように構成されているデコードモジュールをさらに含みうる。
【0281】
さらに、
図24は、ビットストリームからニューラルネットワークによる処理のための特徴マップをデコードするためのデバイス2400を示している。このデバイスは、ビットストリームから、特徴マップに関するサイド情報インジケータを取得するように構成されているサイド情報インジケータ2410取得モジュールと、特徴マップをデコードするように構成されているデコードモジュール2420であって、サイド情報インジケータが第5の値を有するとき、ビットストリームから、特徴マップをデコードするためのサイド情報を解析することと、サイド情報インジケータが第6の値を有するとき、ビットストリームから、特徴マップをデコードするためのサイド情報を解析することをバイパスすることとを含む、デコードモジュール2420とを含む。
【0282】
上述のデコーディングデバイス2300に対応して、
図23においてニューラルネットワークによる処理のための特徴マップをビットストリーム内にエンコードするためのデバイス2350が示されている。デバイスは、特徴マップの領域に対する領域存在インジケータを取得するように構成されている特徴マップ領域存在インジケータ取得モジュール2360を含む。さらに、デバイスは、取得済み特徴マップ領域存在インジケータに基づき、領域存在インジケータが第1の値を有するとき、特徴マップの領域を指示し、ビットストリームにおいて指示するかどうかを決定するか、または領域存在インジケータが第2の値を有するとき、特徴マップの領域を指示することをバイパスする、ように構成されているエンコード制御モジュール2370を含む。
【0283】
上述のデコーディングデバイス2400に対応して、
図24においてニューラルネットワークによる処理のための特徴マップをビットストリーム内にエンコードするためのデバイス2450が示されている。このデバイスは、特徴マップを取得するように構成されている特徴マップ取得モジュール2460を含みうる。さらに、デバイス2450は、特徴マップに関するサイド情報を指示するかどうかを決定するように構成され、ビットストリームにおいて、第3の値およびサイド情報を指示するサイド情報インジケータか、または第4の値をサイド情報なしで指示するサイド情報インジケータのいずれかを指示するエンコード制御モジュール2470をさらに含みうる。
【0284】
これらのデバイスは、上述の例示的な実装形態を含む追加の特徴のいずれかを行うようにさらに構成され得ることに留意されたい。たとえば、ビットストリームに基づきニューラルネットワークによる処理のための特徴マップをデコードするためのデバイスが提供され、このデバイスは、上述されているデコーディング方法のいずれかのステップを行うように構成されている処理回路を含む。同様に、ビットストリーム内にニューラルネットワークによる処理のための特徴マップをエンコードするためのデバイスが提供され、このデバイスは、上述されているエンコーディング方法のいずれかのステップを行うように構成されている処理回路を含む。
【0285】
さらなるデバイスが提供され、これらはデバイス2300、2350、2400、および/または2450を利用するたとえば、画像またはビデオエンコーディングのためのデバイスは、エンコーディングデバイス2400および/または2450を含み得る。それに加えて、これは、デコーディングデバイス2300または/または2350を含んでもよい。画像またはビデオデコーディングのためのデバイスは、デコーディングデバイス2300および/または2350を含み得る。
【0286】
要約すると、本開示のいくつかの実施形態において、デコーダ(ビデオまたは画像または特徴マップ)は、ビットストリームから特徴マップデータを取得するように構成されている人工ニューラルネットワークを含みうる。デコーダは、ビットストリームから領域存在フラグを読み取り、領域存在フラグがTRUEである場合に領域に対応する特徴マップデータを読み取り、領域存在フラグがFALSEである場合に特徴マップデータの領域を事前定義済み値(事前定義済み値は例示的に0である)で初期化し、取得された特徴マップデータに基づきデータを人工ニューラルネットワークに供給するよう構成され得る。人工ニューラルネットワークは、畳み込みニューラルネットワークであってもよい。領域は、畳み込みニューラルネットワークのチャネル出力であってもよい。代替的に、またはそれに加えて、領域は、畳み込みニューラルネットワークのチャネル出力の一部であり、ビットストリームは、領域定義に対する情報(位置、形状、サイズ)をさらに含み得る。言い換えると、領域パラメータは、ビットストリームにおいて定義されてもよい。人工ニューラルネットワークは、CNNでなければならないわけではない。一般に、ニューラルネットワークは、全結合ニューラルネットワークであってもよい。
【0287】
デコーダは、ハフマン(デ)コーディング、範囲符号化、算術符号化、非対称数系(ANS)、または他の種類の可変長符号のエントロピーなどの、エントロピーデコーディングによって特徴マップデータを読み取る(ビットストリームから抽出する)ようにさらに構成されてもよい。領域存在フラグは、対応する確率更新を有するコンテキスト符号化ビンとして符号化され得る。
【0288】
ハードウェアおよびソフトウェアにおけるいくつかの例示的な実装形態
上述のエンコーダ-デコーダ処理チェーンを展開し得る対応するシステムが
図25に例示されている。
図25は、本出願の技術を利用し得る例示的な符号化システム、たとえば、ビデオ、画像、オーディオ、および/または他の符号化システム(またはショートコーディングシステム(short coding system))を例示する概略ブロック図である。ビデオ符号化システム10のビデオエンコーダ20(またはショートエンコーダ(short encoder)20)およびビデオデコーダ30(またはショートデコーダ(short decoder)30)は、本出願において説明されている様々な例による技術を行うように構成され得るデバイスの例を表している。たとえば、ビデオ符号化およびデコーディングは、
図1から
図7に示されているようなニューラルネットワークを採用してもよく、これは分散型であってよく、分散計算ノード(2つ以上)の間で特徴マップを伝達するために上述のビットストリーム解析および/またはビットストリーム生成を適用し得る。
【0289】
図25に示されているように、符号化システム10は、エンコード済みピクチャデータ21を、たとえば、エンコード済みピクチャデータ13をデコードするためのデスティネーションデバイス14に提供するように構成されているソースデバイス12を含む。
【0290】
ソースデバイス12は、エンコーダ20を含み、それに加えて、すなわち任意選択で、ピクチャソース16と、プリプロセッサ(または前処理ユニット)18、たとえばピクチャプリプロセッサ18と、通信インターフェースまたは通信ユニット22とを含みうる。
【0291】
ピクチャソース16は、任意の種類のピクチャキャプチャデバイス、たとえば実世界のピクチャをキャプチャするためのカメラ、および/または任意の種類のピクチャ生成デバイス、たとえばコンピュータアニメーションピクチャを生成するためのコンピュータグラフィックスプロセッサ、または実世界のピクチャ、コンピュータ生成ピクチャ(たとえば、スクリーンコンテンツ、仮想現実(VR)ピクチャ)および/またはこれらの任意の組合せ(たとえば、拡張現実(AR)ピクチャ)を取得し、および/または提供するための任意の種類の他のデバイスを含むか、またはそれらであってもよい。ピクチャソースは、前述のピクチャのいずれかを記憶する任意の種類のメモリまたは記憶装置であってよい。
【0292】
プリプロセッサ18および前処理ユニット18によって行われる処理と区別して、ピクチャまたはピクチャデータ17は、生のピクチャまたは生のピクチャデータ17とも称され得る。
【0293】
プリプロセッサ18は、(生の)ピクチャデータ17を受信し、ピクチャデータ17に対して前処理を行って、前処理済みピクチャ19または前処理済みピクチャデータ19を取得するように構成される。プリプロセッサ18によって行われる前処理は、たとえば、トリミング、色形式変換(たとえば、RGBからYCbCrへ)、色補正、またはノイズ除去を含み得る。前処理ユニット18は、任意選択のコンポーネントであり得ることは理解できる。前処理は、存在インジケータシグナリングを使用するニューラルネットワーク(
図1から
図7のいずれかにおけるような)も採用し得ることに留意されたい。
【0294】
ビデオエンコーダ20は、前処理済みピクチャデータ19を受信し、エンコード済みピクチャデータ21を提供するように構成される。
【0295】
ソースデバイス12の通信インターフェース22は、エンコード済みピクチャデータ21を受信し、エンコード済みピクチャデータ21(またはその任意のさらに処理されたバージョン)を通信チャネル13上で他のデバイス、たとえば、デスティネーションデバイス14または任意の他のデバイスに、保存または直接再構成のために送信するように構成され得る。
【0296】
デスティネーションデバイス14は、デコーダ30(たとえば、ビデオデコーダ30)を含み、それに加えて、通信インターフェースまたは通信ユニット28、ポストプロセッサ32(または後処理ユニット32)、およびディスプレイデバイス34を含みうる。
【0297】
デスティネーションデバイス14の通信インターフェース28は、たとえば、ソースデバイス12から直接的に、または任意の他のソース、たとえば、記憶装置デバイス、たとえばエンコード済みピクチャデータ記憶装置デバイスから、エンコード済みピクチャデータ21(またはその任意のさらに処理されたバージョン)を受信し、エンコード済みピクチャデータ21をデコーダ30に提供するように構成される。
【0298】
通信インターフェース22および通信インターフェース28は、ソースデバイス12とデスティネーションデバイス14との間の直接通信リンク、たとえば、直接的な有線もしくはワイヤレス接続を介して、または任意の種類のネットワーク、たとえば、有線もしくはワイヤレスネットワークもしくはその任意の組合せ、または任意の種類のプライベートおよびパブリックネットワーク、またはその任意の組合せを介して、エンコード済みピクチャデータ21またはエンコード済みデータ13を伝送するか、または受信するように構成され得る。
【0299】
通信インターフェース22は、たとえば、エンコード済みピクチャデータ21を適切な形式、たとえば、パケットにパッケージ化し、および/または、通信リンクまたは通信ネットワーク上で伝送するための任意の種類の伝送エンコードまたは処理を使用してエンコード済みピクチャデータを処理するように構成され得る。
【0300】
通信インターフェース22の対を成す片方を形成する通信インターフェース28は、たとえば、伝送されたデータを受信し、任意の種類の対応する伝送デコードまたは処理および/または逆パッケージングを使用して伝送データを処理しエンコード済みピクチャデータ21を取得するように構成され得る。
【0301】
通信インターフェース22および通信インターフェース28は両方とも、ソースデバイス12からデスティネーションデバイス14に向かう
図25の通信チャネル13の矢印によって示されているような一方向通信インターフェースとして、または双方向通信インターフェースとして構成されてよく、たとえば、メッセージの送信および受信を行い、たとえば、接続をセットアップし、通信リンクおよび/またはデータ伝送、たとえば、エンコード済みピクチャデータ伝送に関係する任意の他の情報の確認応答および交換を行うように構成され得る。デコーダ30は、エンコード済みピクチャデータ21を受信し、デコード済みピクチャデータ31またはデコード済みピクチャ31を提供するように構成される(たとえば、
図1から
図7のうちの1つまたは複数に基づくニューラルネットワークを採用する)。
【0302】
デスティネーションデバイス14のポストプロセッサ32は、デコード済みピクチャデータ31(再構成済みピクチャデータとも呼ばれる)、たとえばデコード済みピクチャ31を後処理して、後処理済みピクチャデータ33、たとえば、後処理済みピクチャ33を取得するように構成される。後処理ユニット32によって行われる後処理は、たとえば、色形式変換(たとえば、YCbCrからRGBへ)、色補正、トリミング、もしくは再サンプリング、または、たとえば、ディスプレイデバイス34により表示するためにデコード済みピクチャデータ31を準備するための任意の他の処理を含み得る。
【0303】
デスティネーションデバイス14のディスプレイデバイス34は、たとえば、ユーザまたは視聴者にピクチャを表示するために、後処理済みピクチャデータ33を受信するように構成される。ディスプレイデバイス34は、再構成済みピクチャを表現するための任意の種類のディスプレイ、たとえば、一体型もしくは外部ディスプレイもしくはモニタであるか、またはそれらを含んでいてもよい。ディスプレイは、たとえば、液晶ディスプレイ(LCD)、有機発光ダイオード(OLED)ディスプレイ、プラズマディスプレイ、プロジェクター、マイクロLEDディスプレイ、液晶オンシリコン(LCoS)、デジタルライトプロセッサ(DLP)、または任意の種類の他のディスプレイを含み得る。
【0304】
図25は、ソースデバイス12およびデスティネーションデバイス14を別々のデバイスとして図示しているが、デバイスの実施形態は、両方または両方の機能性、すなわちソースデバイス12または対応する機能性、およびデスティネーションデバイス14または対応する機能性を含んでもよい。そのような実施形態において、ソースデバイス12または対応する機能性およびデスティネーションデバイス14または対応する機能性は、同じハードウェアおよび/もしくはソフトウェア、別個のハードウェアおよび/もしくはソフトウェア、またはそれらの任意の組合せを使用して実装されてもよい。
【0305】
説明に基づき当業者には明らかなように、異なるユニットの機能性の存在および(正確な)分割、または
図25に示されているようなソースデバイス12および/またはデスティネーションデバイス14の機能性は、実際のデバイスおよびアプリケーションによって異なり得る。
【0306】
エンコーダ20(たとえば、ビデオエンコーダ20)またはデコーダ30(たとえば、ビデオデコーダ30)またはエンコーダ20とデコーダ30の両方は、1つまたは複数のマイクロプロセッサ、デジタルシグナルプロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ディスクリートロジック、ハードウェア、ビデオ符号化専用装置、またはこれらの任意の組合せなどの、処理回路を介して実装され得る。エンコーダ20は、
図1から
図7またはその一部のいずれかに示されているものなどのニューラルネットワークを含む様々なモジュールを具現化するために処理回路46を介して実装されてもよい。デコーダ30は、
図1から
図7に関して説明されているような様々なモジュール、および/または本明細書において説明されている任意の他のデコーダシステムまたはサブシステムを具現化するために処理回路46を介して実装されてもよい。処理回路は、後述するような様々な動作を行うよう構成され得る。技術がソフトウェアで部分的に実装される場合、デバイスは、ソフトウェアのための命令を適切な非一時的コンピュータ可読記憶媒体に記憶し、本開示の技術を行うために、1つまたは複数のプロセッサを使用してハードウェアで命令を実行し得る。ビデオエンコーダ20およびビデオデコーダ30のいずれかは、たとえば、
図26に示されているように、単一のデバイスにおける組み合わされたエンコーダ/デコーダ(CODEC)の一部として一体化されてもよい。
【0307】
ソースデバイス12およびデスティネーションデバイス14は、任意の種類のハンドヘルドもしくは据え置きデバイス、たとえば、ノートブックもしくはラップトップコンピュータ、携帯電話、スマートフォン、タブレットもしくはタブレットコンピュータ、カメラ、デスクトップコンピュータ、セットトップボックス、テレビ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲーム機、ビデオストリーミングデバイス(コンテンツサービスサーバまたはコンテンツ配信サーバなど)、放送受信機デバイス、放送送信機デバイス、または同様のものを含む、広範なデバイスのいずれかを含むものとしてよく、オペレーティングシステムをまったく使用しないか、または任意の種類のオペレーティングシステムを使用し得る。いくつかの場合において、ソースデバイス12およびデスティネーションデバイス14は、ワイヤレス通信のために装備されてよい。したがって、ソースデバイス12およびデスティネーションデバイス14は、ワイヤレス通信デバイスであってよい。
【0308】
いくつかの場合において、
図25に例示されているビデオ符号化システム10は、単なる一例に過ぎず、本出願の技術は、必ずしもエンコードデバイスとデコードデバイスとの間のデータ通信を含まないビデオ符号化設定(たとえば、ビデオエンコードまたはビデオデコード)に適用可能であるものとしてよい。他の例では、データは、ローカルメモリから取り出されるか、ネットワーク上でストリーミング配信されるか、または同様の処理がなされる。ビデオエンコードデバイスは、データをエンコードしてメモリに記憶し、および/またはビデオデコードデバイスは、メモリからデータを取り出してデコードするものとしてよい。いくつかの例では、エンコードとデコードとは、互いに通信しないが、単に、データをエンコードしてメモリに入れ、および/またはメモリからデータを取り出してデコードするデバイスによって行われる。
【0309】
図27は、本開示の一実施形態による、ビデオ符号化デバイス1000の概略図である。ビデオ符号化デバイス1000は、本明細書において説明されているような開示された実施形態を実施するのに適している。一実施形態において、ビデオ符号化デバイス1000は、
図25のビデオデコーダ30などのデコーダ、または
図25のビデオエンコーダ20などのエンコーダであってよい。
【0310】
ビデオ符号化デバイス1000は、データを受信するための受信ポート1010(または入力ポート1010)および受信機ユニット(Rx)1020と、データを処理するためのプロセッサ、論理ユニット、または中央演算処理装置(CPU)1030と、データを伝送するための送信機ユニット(Tx)1040および送信ポート1050(または出力ポート1050)と、データを記憶するためのメモリ1060とを含む。ビデオ符号化デバイス1000は、光信号または電気信号の送信または受信のための、受信ポート1010、受信機ユニット1020、送信機ユニット1040、および送信ポート1050に結合された光電気(OE)コンポーネントおよび電気光(EO)コンポーネントも含みうる。
【0311】
プロセッサ1030は、ハードウェアおよびソフトウェアによって実装される。プロセッサ1030は、1つまたは複数のCPUチップ、コア(たとえば、マルチコアプロセッサとして)、FPGA、ASIC、およびDSPとして実装されてもよい。プロセッサ1030は、受信ポート1010、受信機ユニット1020、送信機ユニット1040、送信ポート1050、およびメモリ1060と通信する。プロセッサ1030は、符号化モジュール1070を含む。符号化モジュール1070は、上述されている開示された実施形態を実装する。たとえば、符号化モジュール1070は、様々な符号化動作を実装し、処理し、準備し、または提供する。したがって、符号化モジュール1070の搭載は、ビデオ符号化デバイス1000の機能に実質的な改善をもたらし、ビデオ符号化デバイス1000の異なる状態への変換をもたらす。あるいは、符号化モジュール1070は、メモリ1060に記憶され、プロセッサ1030によって実行される命令として実装される。
【0312】
メモリ1060は、1つまたは複数のディスク、テープドライブ、およびソリッドステートドライブを含み、そのようなプログラムが実行のために選択されたときプログラムを記憶し、プログラムの実行中に読み出される命令およびデータを記憶するために、オーバーフローデータ記憶装置デバイスとして使用され得る。メモリ1060は、たとえば、揮発性および/または不揮発性であってよく、リードオンリーメモリ(ROM)、ランダムアクセスメモリ(RAM)、三値連想メモリ(TCAM)、および/またはスタティックランダムアクセスメモリ(SRAM)であってよい。
【0313】
図28は、例示的な実施形態による、
図25からのソースデバイス12およびデスティネーションデバイス14のいずれかまたは両方として使用され得る装置800の簡略化されたブロック図である。
【0314】
装置1100内のプロセッサ1102は、中央演算処理装置であってよい。あるいは、プロセッサ1102は、現在存在しているまたはこの後開発される情報を操作するか、もしくは処理することができる、任意の他のタイプのデバイスまたは複数のデバイスであってよい。開示されている実装形態は、図示されているような単一のプロセッサ、たとえば、プロセッサ1102により実施され得るが、速度および効率に関する利点は、複数のプロセッサを使用することで達成され得る。
【0315】
装置1100内のメモリ1104は、一実装形態においてリードオンリーメモリ(ROM)デバイスまたはランダムアクセスメモリ(RAM)であってよい。他のタイプの記憶装置デバイスも適したものであれば、メモリ1104として使用できる。メモリ1104は、バス1112を使用してプロセッサ1102によってアクセスされるコードおよびデータ1106を含み得る。メモリ1104は、オペレーティングシステム1108およびアプリケーションプログラム1110をさらに含むことができ、アプリケーションプログラム1110はプロセッサ1102が本明細書において説明されている方法を行うことを可能にする少なくとも1つのプログラムを含む。たとえば、アプリケーションプログラム1110は、アプリケーション1からNを含むものとしてよく、これらは本明細書において説明されている方法を行うビデオ符号化アプリケーションをさらに含む。
【0316】
装置1100は、ディスプレイ1118などの、1つまたは複数の出力デバイスも含むことができる。ディスプレイ1118は、一例において、ディスプレイをタッチ入力を感知するように動作可能であるタッチセンサー式素子と組み合わせたタッチセンサー式ディスプレイであってよい。ディスプレイ1118は、バス1112を介してプロセッサ1102に結合することができる。
【0317】
ここでは単一のバスとして描かれているが、装置1100のバス1112は複数のバスから構成されてもよい。さらに、二次記憶装置は、装置1100の他のコンポーネントに直接的に結合されるか、またはネットワークを介してアクセスされ、メモリカードなどの単一の組み込みユニットまたは複数のメモリカードなどの複数のユニットを含むこともできる。したがって、装置1100は、多種多様な構成で実装することができる。
【0318】
いくつかの数学演算子および記号
本出願において使用される例示的なシンタックス記述中の数学演算子は、既存のコーデックにおいてシンタックスを記述するために使用されるものに類似している。番号付けおよびカウントの規約は、一般的に、0から始まり、たとえば、「第1」は0番目に相当し、「第2」は1番目に相当する、などである。
【0319】
次の算術演算子は次のように定義される。
+ 加算
- 減算(2引数演算子として)または否定(単項前置演算子として)
* 行列乗算を含む、乗算
/ 結果を0に近づけるように切り捨てる、整数除算。たとえば、7/4および-7/-4は1に切り捨てられ、-7/4および7/-4は-1に切り捨てられる。
x%y モジュロ。xをyで割ったあまりであり、整数xおよびyに対してのみ定義され、x>=0およびy>0である。
【0320】
次の論理演算子は次のように定義される。
x && y xおよびyのブール論理積「and」
x || y xおよびyのブール論理和「or」
! ブール論理否定「not」
x ? y : z xがTRUEであるか、または0に等しくない場合にyの値を評価し、そうでない場合に、zの値を評価する。
【0321】
次の関係演算子は次のように定義される。
> 大なり
>= 大なりまたは等しい
< 小なり
<= 小なりまたは等しい
== 等しい
!= 等しくない
【0322】
値「na」(適用可能でない)を割り当てられているシンタックス要素または変数に関係演算子が適用されるとき、値「na」はそのシンタックス要素または変数について別個の値として扱われる。値「na」は、他のどのような値とも等しくないとみなされる。
【0323】
次のビット演算子は次のように定義される。
& ビット毎の「and」。整数引数の演算の場合には、整数値の2の補数表現での演算である。他の引数より少ないビットを含むバイナリ引数の演算が行われるとき、短い引数は、0に等しいさらなる上位ビットを加えることによって拡張される。
| ビット毎の「or」。整数引数の演算の場合には、整数値の2の補数表現での演算である。他の引数より少ないビットを含むバイナリ引数の演算が行われるとき、短い引数は、0に等しいさらなる上位ビットを加えることによって拡張される。
^ ビット毎の「排他的or」。整数引数の演算の場合には、整数値の2の補数表現での演算である。他の引数より少ないビットを含むバイナリ引数の演算が行われるとき、短い引数は、0に等しいさらなる上位ビットを加えることによって拡張される。
x >> y 2の補数表現整数xに対してバイナリ桁数yの算術的右シフトを行う。この関数は、yの非負整数値に対してのみ定義される。右シフトの結果最上位ビット(MSB)にシフトされたビットは、シフト演算前のxのMSBに等しい値を有する。
x << y 2の補数表現整数xに対してバイナリ桁数yの算術的左シフトを行う。この関数は、yの非負整数値に対してのみ定義される。左シフトの結果最下位ビット(LSB)にシフトされたビットは、0に等しい値を有する。
【0324】
次の算術演算子は次のように定義される。
= 代入演算子
++ 増分する、すなわち、x++はx=x+1と等価である。配列のインデックスで使用されるとき、増分演算の前の変数の値を評価する。
-- 減分する、すなわち、x--はx=x-1と等価である。配列のインデックスで使用されるとき、減分演算の前の変数の値を評価する。
+= 指定された量だけ増分する、すなわち、x+=3はx=x+3と等価であり、x+=(-3)はx=x+(-3)と等価である。
-= 指定された量だけ減分する、すなわち、x-=3はx=x-3と等価であり、x-=(-3)はx=x-(-3)と等価である。
【0325】
次の表記は、値の範囲を指定するために使用される。
x=y..z xはyからzまでの整数値を取り、x、y、およびzは整数であり、zはyより大きい値である。
【0326】
式の優先順位が括弧を使用することによって明示的に指示されていないとき、次の規則が適用される。
- 高い優先順位の演算は、低い優先順位の演算の前に評価される。
- 同じ優先順位の演算は、左から右に順次評価される。
【0327】
以下の表は、演算の優先順位を最高から最低まで指定しており、表中の位置が高いほど、優先順位が高いことを示す。
【0328】
Cプログラミング言語でも使用されている演算子については、本明細書で使用されている優先順位は、Cプログラミング言語で使用されているのと同じである。
【0329】
表:最高(表の一番上)から最低(表の一番下)までの演算子の優先順位
【0330】
【0331】
テキストにおいて、数学的に次の形式で記述されるような論理演算のステートメント
if(条件0)
ステートメント0
else if(条件1)
ステートメント1
...
else /* 残る条件に関する参考となる備考 */
ステートメントn
は次の方式で記述され得る。
... as follows / ... the following applies:
- If 条件0, ステートメント0
- Otherwise, if 条件1, ステートメント1
- ...
- Otherwise (残る条件に関する参考となる備考), ステートメントn
【0332】
テキスト中の各「If ... Otherwise, if ... Otherwise, ...」ステートメントは、すぐ後に「If ...」が続く「... as follows」または「... the following applies」とともに導入される。「If ... Otherwise, if ... Otherwise, ...」の最後の条件は、常に「Otherwise, ...」である。インターリーブされた「If ... Otherwise, if ... Otherwise, ...」ステートメントは、「... as follows」または「... the following applies」と終わりの「Otherwise, ...」とのマッチングを行うことによって識別され得る。
【0333】
テキストにおいて、数学的に次の形式で記述されるような論理演算のステートメント
if( 条件0a && 条件0b )
ステートメント0
else if( 条件1a || 条件1b )
ステートメント1
...
else
ステートメントn
は次の方式で記述され得る。
... as follows / ... the following applies:
- If 次の条件のすべてがtrueである場合, ステートメント0:
- 条件0a
- 条件0b
- Otherwise, if 次の条件のうちの1つまたは複数がtrueである場合, ステートメント1:
- 条件1a
- 条件1b
- ...
- Otherwise, ステートメントn
【0334】
テキストにおいて、数学的に次の形式で記述されるような論理演算のステートメント
if(条件0)
ステートメント0
if(条件1)
ステートメント1
は次の方式で記述され得る。
- When 条件0, ステートメント0
- When 条件1, ステートメント1
【0335】
要約すると、本開示は、ニューラルネットワークを採用するシステムに対する特徴マップ情報の効率的なシグナリングに関係する。特に、デコーダサイドでは、存在インジケータは、ビットストリームから解析されるか、または、ビットストリームから解析された情報に基づき導出される。解析された存在インジケータの値に基づき、特徴マップ領域に関係するさらなるデータが解析されるか、または解析はバイパスされる。存在インジケータは、たとえば、ビットストリームに特徴マップデータが含まれているかどうかを指示する領域存在インジケータであり得るか、または特徴マップデータに関係するサイド情報がビットストリームに含まれているかどうかを指示するサイド情報存在インジケータであり得る。同様に、エンコーディング方法、さらにはエンコーディングおよびデコーディングデバイスも提供される。
【符号の説明】
【0336】
10 ビデオ符号化システム
12 ソースデバイス
13 エンコード済みピクチャデータ
14 デスティネーションデバイス
16 ピクチャソース
17 ピクチャまたはピクチャデータ
18 プリプロセッサ、前処理ユニット
19 前処理済みピクチャ、前処理済みピクチャデータ
20 ビデオエンコーダ、ショートエンコーダ
21 エンコード済みピクチャデータ
22 通信インターフェースまたは通信ユニット
28 通信インターフェースまたは通信ユニット
30 ビデオデコーダ、ショートデコーダ、デコーダ
31 デコード済みピクチャデータ
32 ポストプロセッサ
32 後処理ユニット
33 後処理済みピクチャデータ、後処理済みピクチャ
34 ディスプレイデバイス
46 処理回路
800 装置
1000 ビデオ符号化デバイス
1010 受信ポート、入力ポート
1020 受信機ユニット(Rx)
1030 中央演算処理装置(CPU)、プロセッサ
1040 送信機ユニット(Tx)
1050 送信ポート、出力ポート
1060 メモリ
1070 符号化モジュール
1100 装置
1102 プロセッサ
1104 メモリ
1106 コードおよびデータ
1108 オペレーティングシステム
1110 アプリケーションプログラム
1112 バス
1118 ディスプレイ
2000 ブロック
2020 ブロック
2030 ブロック
2300 デコーディングデバイス
2310 領域存在インジケータ取得モジュール
2350 エンコードするためのデバイス
2360 特徴マップ領域存在インジケータ取得モジュール
2370 エンコード制御モジュール
2400 デコーディングデバイス
2410 サイド情報インジケータ取得モジュール
2420 デコードモジュール
2450 エンコードするためのデバイス
2460 特徴マップ取得モジュール
2470 エンコード制御モジュール
【手続補正書】
【提出日】2023-03-22
【手続補正1】
【補正対象書類名】明細書
【補正対象項目名】0207
【補正方法】変更
【補正の内容】
【0207】
【手続補正2】
【補正対象書類名】明細書
【補正対象項目名】0208
【補正方法】変更
【補正の内容】
【0208】
ビットストリームを解析するための方法は、ビットストリームからサイド情報存在インジケータ(side_information_available)を取得することを含み得る。方法は、サイド情報存在インジケータが第3の値(たとえばside_information_availableがTRUEである)を有するときビットストリームからサイド情報(z_cap)を解析することと、サイド情報存在インジケータが第4の値(たとえばside_information_availableがFALSEである)を有するときビットストリームからサイド情報を完全に解析することをバイパスすることとをさらに含み得る。さらに、ビットストリームにおいて指示されるサイド情報は、領域存在インジケータ(たとえば、上記のシンタックスに示され、
図8から
図11を参照しつつ説明されるside_inf
ormation_channel_presence_flag)、および領域のエントロピーデコーディングに使用するための推定確率モデルを取得するためにニューラルネットワークによって処理されることについての情報(z_cap)のうちの少なくとも1つを含み得る。領域存在インジケータ(side_inf
ormation_channel_presence_flag)の値に応じて、特徴マップデータ(z_cap)は、ビットストリームに含まれ得る。
【手続補正3】
【補正対象書類名】明細書
【補正対象項目名】0212
【補正方法】変更
【補正の内容】
【0212】
【手続補正4】
【補正対象書類名】明細書
【補正対象項目名】0257
【補正方法】変更
【補正の内容】
【0257】
【手続補正5】
【補正対象書類名】明細書
【補正対象項目名】0261
【補正方法】変更
【補正の内容】
【0261】
【手続補正6】
【補正対象書類名】明細書
【補正対象項目名】0263
【補正方法】変更
【補正の内容】
【0263】
【手続補正7】
【補正対象書類名】明細書
【補正対象項目名】0285
【補正方法】変更
【補正の内容】
【0285】
さらなるデバイスが提供され、これらはデバイス2300、2350、2400、および/または2450を利用するたとえば、画像またはビデオエンコーディングのためのデバイスは、エンコーディングデバイス2400および/または2450を含み得る。それに加えて、これは、デコーディングデバイス2300および/または2350を含んでもよい。画像またはビデオデコーディングのためのデバイスは、デコーディングデバイス2300および/または2350を含み得る。
【国際調査報告】