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

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

▶ フォンダシオン ベー-コムの特許一覧

特表2023-545042データストリームを復号する電子的方法及び置並びに関連するコンピュータプログラム
<>
  • 特表-データストリームを復号する電子的方法及び置並びに関連するコンピュータプログラム 図1
  • 特表-データストリームを復号する電子的方法及び置並びに関連するコンピュータプログラム 図2
  • 特表-データストリームを復号する電子的方法及び置並びに関連するコンピュータプログラム 図3
  • 特表-データストリームを復号する電子的方法及び置並びに関連するコンピュータプログラム 図4
  • 特表-データストリームを復号する電子的方法及び置並びに関連するコンピュータプログラム 図5
  • 特表-データストリームを復号する電子的方法及び置並びに関連するコンピュータプログラム 図6
  • 特表-データストリームを復号する電子的方法及び置並びに関連するコンピュータプログラム 図
  • 特表-データストリームを復号する電子的方法及び置並びに関連するコンピュータプログラム 図7
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2023-10-26
(54)【発明の名称】データストリームを復号する電子的方法及び置並びに関連するコンピュータプログラム
(51)【国際特許分類】
   H04N 19/91 20140101AFI20231019BHJP
   H04N 19/46 20140101ALI20231019BHJP
【FI】
H04N19/91
H04N19/46
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2023521083
(86)(22)【出願日】2021-10-01
(85)【翻訳文提出日】2023-05-30
(86)【国際出願番号】 EP2021077157
(87)【国際公開番号】W WO2022073885
(87)【国際公開日】2022-04-14
(31)【優先権主張番号】2010214
(32)【優先日】2020-10-06
(33)【優先権主張国・地域又は機関】FR
(81)【指定国・地域】
(71)【出願人】
【識別番号】521196970
【氏名又は名称】フォンダシオン ベー-コム
【氏名又は名称原語表記】FONDATION B-COM
(74)【代理人】
【識別番号】100099759
【弁理士】
【氏名又は名称】青木 篤
(74)【代理人】
【識別番号】100123582
【弁理士】
【氏名又は名称】三橋 真二
(74)【代理人】
【識別番号】100092624
【弁理士】
【氏名又は名称】鶴田 準一
(74)【代理人】
【識別番号】100114018
【弁理士】
【氏名又は名称】南山 知広
(74)【代理人】
【識別番号】100153729
【弁理士】
【氏名又は名称】森本 有一
(74)【代理人】
【識別番号】100151459
【弁理士】
【氏名又は名称】中村 健一
(72)【発明者】
【氏名】フェリクス アンリ
(72)【発明者】
【氏名】ゴルドン クラル
【テーマコード(参考)】
5C159
【Fターム(参考)】
5C159MA04
5C159ME01
5C159PP04
5C159RC11
5C159UA02
5C159UA05
(57)【要約】
ビットシーケンスを復号する方法は、- 人工ニューラルネットワーク(29)の入力において、以前に復号された値(V)を適用するステップ、- 以前に復号された値が適用される結果として、人工ニューラルネットワーク(29)の出力においてコンテキストインデックス(C)を生成するステップ、- 生成されたコンテキストインデックス(C)によって識別されたコンテキストでパラメータ化されたエントロピーデコーダ(30)にビットシーケンス(Fnn)の一部を適用することにより、新たな復号値(V)を取得するステップを含む。電子復号装置(20)及び関連するコンピュータプログラムも提供される。
【特許請求の範囲】
【請求項1】
バイナリ要素のシーケンス(Fnn)を復号する方法であって、
- 人工ニューラルネットワーク(29)の入力において、以前に復号された値(V)を適用するステップ(E72)、
- 前記適用の結果として、前記人工ニューラルネットワーク(29)の出力においてコンテキストインデックス(C)を生成するステップ、
- 前記生成されたコンテキストインデックス(C)によって識別されたコンテキストでパラメータ化されたエントロピーデコーダ(30)に前記バイナリ要素のシーケンス(Fnn)の一部を適用することにより、新たな復号値(V)を取得するステップ(E70)、
を含む方法。
【請求項2】
前記人工ニューラルネットワーク(29)の前記出力において、オーディオ又はビデオコンテンツを表すデータ(I)を生成するように、前記新たな復号値(V)を前記人工ニューラルネットワーク(29)の前記入力に適用するステップ(E72)をさらに含む、請求項1に記載の復号方法。
【請求項3】
前記エントロピーデコーダ(30)によるエントロピー復号のプロセスは、前記人工ニューラルネットワーク(29)の前記出力において新たなコンテキストインデックス(C)が生成されない限り一時停止される、請求項1又は2に記載の復号方法。
【請求項4】
前記バイナリ要素のシーケンス(Fnn)は、前記エントロピーデコーダ(30)内で使用可能なコンテキストのセットを示す情報(I1)をさらに含むデータストリームに含まれる、請求項1~3の何れか一項に記載の復号方法。
【請求項5】
前記情報(I1)は、前記エントロピーデコーダ(30)内で使用可能なコンテキストの数を示す、請求項4に記載の復号方法。
【請求項6】
前記バイナリ要素のシーケンス(Fnn)を含むデータストリームに含まれるパラメータ化データ(Iinit)を使用して、前記エントロピーデコーダ(30)内で使用可能な各コンテキストを初期化するステップ(E66)を含む、請求項1~5の何れか一項に記載の復号方法。
【請求項7】
前記人工ニューラルネットワーク(29)は、処理ユニット(26)によって実装され、前記方法は、前記バイナリ要素のシーケンス(Fnn)を含むデータストリームに含まれるデータに応じて前記処理ユニット(26)を構成するステップ(E60)を含む、請求項1~6の何れか一項に記載の復号方法。
【請求項8】
前記人工ニューラルネットワーク(29)は、所与の時点で同じタイプの複数の演算を並列に実行するように設計された並列処理ユニット(26)によって実装される、請求項1~7の何れか一項に記載の復号方法。
【請求項9】
前記エントロピーデコーダ(30)は、前記並列処理ユニット(26)とは別個のプロセッサ(24)によって実装される、請求項8に記載の復号方法。
【請求項10】
コンピュータプログラムであって、プロセッサによって実行可能な命令を含み、且つ前記命令が前記プロセッサによって実行されると、請求項1に記載の復号方法を実装するように設計されたコンピュータプログラム。
【請求項11】
バイナリ要素のシーケンス(Fnn)を復号するための電子装置(20)であって、
- 以前に復号された値(V)を入力として受け取り、且つコンテキストインデックス(C)を出力として生成するように設計された人工ニューラルネットワーク(29)、
- 前記バイナリ要素のシーケンス(Fnn)を入力として受け取るように設計されたエントロピーデコーダ(30)、
- 前記エントロピーデコーダ(30)の出力で新たな復号値(V)を取得するように、前記生成されたコンテキストインデックス(C)によって識別されたコンテキストで前記エントロピーデコーダ(30)をパラメータ化するように設計された制御モジュール(25)、
を含む電子装置(20)。
【請求項12】
前記人工ニューラルネットワーク(29)の前記出力において新たなコンテキストインデックス(C)が生成されない限り、前記エントロピーデコーダ(30)によるエントロピー復号プロセスを一時停止することができる同期機構を含む、請求項11に記載の電子復号装置。
【請求項13】
前記人工ニューラルネットワーク(29)を実装することができる処理ユニット(26)を含む、請求項11又は12に記載の電子復号装置。
【請求項14】
前記制御モジュール(25)は、前記バイナリ要素のシーケンス(Fnn)を含むデータストリームに含まれるデータ(R)に応じて前記処理ユニット(29)を構成するように設計される、請求項13に記載の電子復号装置。
【請求項15】
前記処理ユニット(26)とは別個であり、且つ前記エントロピーデコーダ(30)を実装するように設計されるプロセッサ(24)を含む、請求項13又は14に記載の電子復号装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、データ復号の技術分野に関する。
【0002】
特に、本発明は、データストリームを復号する方法及び電子装置並びに関連するコンピュータプログラムに関する。
【背景技術】
【0003】
エントロピー符号化は、データ内の異なるシンボルの出現統計を考慮してそれらのデータを最適に圧縮するために、特にオーディオ又はビデオコンテンツの符号化の分野で使用される。
【0004】
このフレームワーク内において、IEEE Transactions on Circuits and Systems for Video Technology,vol.13,no.7,pp.620-636,July 2003におけるD.Marpe、H.Schwarz及びT.Wiegandによる論文「Context-based adaptive binary arithmetic coding in the H.264/AVC video compression standard」に記載されるように、例えばCABAC(「コンテキスト適応バイナリ算術符号化」)が言及され得る。
【0005】
復号中、エントロピーデコーダは、常に、関連する規格で事前定義された方法において、以前に復号された構文要素に依存するコンテキストで構成される。
【発明の概要】
【課題を解決するための手段】
【0006】
本発明は、バイナリ要素のシーケンスを復号する方法であって、
- 人工ニューラルネットワークの入力において、以前に復号された値を適用するステップ、
- 前記適用の結果として、人工ニューラルネットワークの出力においてコンテキストインデックスを生成するステップ、
- 生成されたコンテキストインデックスによって識別されたコンテキストでパラメータ化されたエントロピーデコーダにバイナリ要素のシーケンスの一部を適用することにより、新たな復号値を取得するステップ、
を含む方法を提案する。
【0007】
人工ニューラルネットワークを用いてコンテキスト識別子を生成することにより、エントロピー符号化を使用する際の柔軟性が高まり、これは、特にデータのフォーマットが完全に事前定義されていない場合に興味深い。
【0008】
以下で説明するように、復号方法は、次に、複数の反復(現在の反復及び先行する反復を含む)のそれぞれにおいて、(上述のエントロピーデコーダを用いて)エントロピー復号によって復号値を取得することを含み得、上に定義した、バイナリ要素のシーケンスを復号する方法は、次に、
- 先行する反復でエントロピー復号によって取得された復号値を人工ニューラルネットワークの入力に適用するステップ、
- 前記適用の結果として、人工ニューラルネットワークの出力においてコンテキストインデックスを生成するステップ、
- 生成されたコンテキストインデックスによって識別されたコンテキストでパラメータ化されたエントロピーデコーダにバイナリ要素のシーケンスの一部を適用することにより、現在の反復で復号値を取得するステップ、
を含み得る。
【0009】
本方法は、人工ニューラルネットワークの出力において、オーディオ又はビデオコンテンツを表すデータを生成するように、新たな復号値を人工ニューラルネットワークの入力に適用するステップをさらに含み得る。したがって、この場合、人工ニューラルネットワークは、一方ではコンテキストインデックスを生成し、他方ではオーディオ又はビデオコンテンツを表すデータを生成する。
【0010】
例えば、人工ニューラルネットワークの第1の部分は、コンテキストインデックスを生成し(したがって、この第1の部分は、以下の説明では「コンテキスト決定人工ニューラルネットワーク」と呼ばれる)、及び人工ニューラルネットワークの第2の部分は、オーディオ又はビデオコンテンツを表すデータを生成する(したがって、この第2の部分は、以下の説明では「復号人工ニューラルネットワーク」と呼ばれる)ことが規定され得る。
【0011】
さらに、エントロピーデコーダによるエントロピー復号のプロセスは、人工ニューラルネットワークの出力において新たなコンテキストインデックスが生成されない限り一時停止されることが規定され得る。これにより、人工ニューラルネットワークとエントロピーデコーダとの間の同期が可能となる。
【0012】
バイナリ要素のシーケンスは、データストリームに含まれ得る。この場合、データストリームは、エントロピーデコーダ内で使用可能なコンテキストのセットを示す情報も含み得る。このような情報は、例えば、エントロピーデコーダ内で使用可能なコンテキストの数を示す。
【0013】
本方法は、例えば、バイナリ要素のシーケンスを含むデータストリームに含まれるパラメータ化データを用いて、エントロピーデコーダ内で使用可能な各コンテキストを初期化するステップをさらに含み得る。
【0014】
下記の実施形態において該当するように、人工ニューラルネットワークは、処理ユニットによって実装され得る。
【0015】
次に、本方法は、バイナリ要素のシーケンスを含むデータストリームに含まれるデータに応じて処理ユニットを構成するステップを含み得る。
【0016】
例えば、この構成ステップ中、(人工ニューラルネットワークの出力において)初期コンテキストインデックスを生成するように(エントロピーデコーダがバイナリ要素のシーケンスの復号を開始する前でも)、人工ニューラルネットワークの入力において事前定義された値を適用することも可能である。したがって、エントロピーデコーダは、(上記のプロセスを開始するために人工ニューラルネットワークの入力に適用する第1の復号値を取得するように)バイナリ要素のシーケンスの第1の要素をエントロピー復号するために、この初期コンテキストインデックスによって示されるコンテキストでパラメータ化される。
【0017】
別の可能性によれば、エントロピーデコーダは、人工ニューラルネットワークがコンテキストインデックスを生成しない限り、事前定義された初期コンテキストでパラメータ化され得る。したがって、エントロピー復号は、バイナリ要素のシーケンスの第1の要素を処理し、したがって人工ニューラルネットワークがコンテキストインデックスを生成するように人工ニューラルネットワークの入力に適用される第1の復号値を取得するために、この初期コンテキストにおいて実行され得る。
【0018】
人工ニューラルネットワークは、例えば、所与の時点で同じタイプの複数の演算を並列に実行するように設計された並列処理ユニットによって実装される。
【0019】
エントロピーデコーダは、並列処理ユニットとは別個のプロセッサによって実装され得る。
【0020】
本発明は、コンピュータプログラムであって、プロセッサによって実行可能な命令を含み、且つこれらの命令がプロセッサによって実行されると、上記の復号方法を実装するように設計されたコンピュータプログラムも提案する。
【0021】
最後に、本発明は、バイナリ要素のシーケンスを復号するための電子装置であって、
- 以前に復号された値を入力として受け取り、且つコンテキストインデックスを出力として生成するように設計された人工ニューラルネットワーク、
- バイナリ要素のシーケンスを入力として受け取るように設計されたエントロピーデコーダ、
- エントロピーデコーダの出力で新たな復号値を取得するように、生成されたコンテキストインデックスによって識別されたコンテキストでエントロピーデコーダをパラメータ化するように設計された制御モジュール、
を含む電子装置を提案する。
【0022】
以下で説明するように、以前に復号された値は、例えば、新たな復号値が取得される(すなわちエントロピーデコーダによって生成される)反復に先行する反復において、エントロピー復号によって復号される。
【0023】
この電子復号装置は、人工ニューラルネットワークの出力において新たなコンテキストインデックスが生成されない限り、エントロピーデコーダによるエントロピー復号プロセスを一時停止することができる同期機構を含み得る。
【0024】
この電子復号装置は、人工ニューラルネットワークを実装することができる処理ユニットも含み得る。
【0025】
次に、制御モジュールは、上に示したように処理ユニットが人工ニューラルネットワークを実装することができるように、バイナリ要素のシーケンスを含むデータストリームに含まれるデータに応じて処理ユニットを構成するように設計され得る。
【0026】
電子復号装置は、処理ユニットとは別個であり、且つエントロピーデコーダを実装するように設計されるプロセッサをさらに含み得る。
【0027】
当然のことながら、本発明の異なる特徴、代替形態及び実施形態は、相互に互換性がないか又は排他的でない限り、様々な組み合わせに従って互いに関連付けられ得る。
【0028】
さらに、本発明の様々な他の特徴は、本発明の非限定的な実施形態を示す図面を参照して行われる添付の説明から明らかになるであろう。
【図面の簡単な説明】
【0029】
図1】人工ニューラルネットワークのいくつかの部分を含むデータ処理アセンブリを示す。
図2図1の処理アセンブリ内で使用されるフィーチャマップを概略的に示す。
図3】本発明のフレームワーク内で使用される電子符号化装置を示す。
図4図3の電子符号化装置内で実装される符号化方法のステップを示すフローチャートである。
図5図3の電子符号化装置によって生成されたデータストリームを示す。
図6】本発明による電子復号装置の一例を示す。
図7図6の電子復号装置内に実装される復号方法のステップを示すフローチャートである。
【発明を実施するための形態】
【0030】
図1は、以下で説明するように、オーディオ若しくはビデオコンテンツを符号化するか、又はビデオコンテンツのオーディオをレンダリングするために符号化されたデータを復号するために異なる部分が使用されるデータ処理アセンブリを示す。
【0031】
このアセンブリは、符号化人工ニューラルネットワーク8と、エントロピーエンコーダ10と、コンテキスト決定人工ニューラルネットワーク40と、エントロピーデコーダ30と、復号人工ニューラルネットワーク28とを含む。
【0032】
符号化人工ニューラルネットワーク8は、オーディオ又はビデオコンテンツの表現(ここでは非圧縮)を形成するコンテンツデータBを入力として(すなわち入力層上で)受信するように設計される。例えば、ビデオコンテンツの場合、コンテンツデータは、画像シーケンスの各画像のピクセルごとに、ピクセルの輝度値を表すデータ及びピクセルのクロミナンス値を表すデータを含む。
【0033】
符号化人工ニューラルネットワーク8の入力層に所定の時点で適用されるコンテンツデータBは、画像のブロック、又は画像成分のブロック(例えば、この画像の輝度若しくはクロミナンス成分のブロック又は色成分のブロック)、又はビデオシーケンスの画像、又はビデオシーケンスの画像の成分(例えば、輝度若しくはクロミナンス成分又は色成分)、又はビデオシーケンスの一連の画像も表し得る。
【0034】
例えば、符号化人工ニューラルネットワーク8の入力層のニューロン(又はノード)の少なくともいくつかは、それぞれ画像成分のピクセル値を受け取り、前記値は、1つのコンテンツデータBによって表されることが規定され得る。
【0035】
これらのコンテンツデータBが符号化人工ニューラルネットワーク8の入力(すなわち入力層)に適用されると、符号化人工ニューラルネットワーク8は、それ自体がオーディオ又はビデオコンテンツを表す値Vを出力として生成する。
【0036】
しかしながら、符号化人工ニューラルネットワーク8の出力で生成される代表値Vは、符号化人工ニューラルネットワーク8の入力に適用された、対応するコンテンツデータBよりもコンパクトな表現を形成する。例えば、符号化人工ニューラルネットワーク8の出力層のノード数は、符号化人工ニューラルネットワーク8の入力層のノード数よりも少ない(例えば、4分の1又はさらに8分の1若しくは16分の1)。
【0037】
人工ニューラルネットワーク8の出力で生成された代表値Vは、ここで、図2に概略的に示されるようにフィーチャマップFのシーケンスに整理される。ここで、符号化人工ニューラルネットワーク8は、例えば、N個のフィーチャマップFを生成する。
【0038】
各フィーチャマップFは、例えば、2次元構造(又はマトリックス構造)を有する。したがって、ここでの各フィーチャマップFは、H個の行及びW個の列の行列を形成する。
【0039】
所与のフィーチャマップF内の所与の位置にある要素は、符号化人工ニューラルネットワーク8の出力ノード(又は出力層のノード)によって生成される代表値Vに対応し、この出力ノードは、事前定義された方法でこの所与の位置及びこの所与のフィーチャマップFに関連付けられる。ある可能な実施形態によれば、人工ニューラルネットワーク8は、所与の時点でN個のフィーチャマップのすべてを出力として(すなわちその出力層上で)生成する。別の可能な実施形態によれば、(例えば、画像内の異なる位置に対応する)コンテンツデータBの異なるセットは、異なる時点で人工ニューラルネットワーク8の入力(すなわち入力層)に適用され、人工ニューラルネットワーク8は、これらの異なる時点のそれぞれにおいて、対応するフィーチャマップFを出力として(すなわちその出力層上で)生成する(この場合、人工ニューラルネットワーク8の出力ノードは、単一のフィーチャマップFの異なる位置にそれぞれ関連付けられる)。
【0040】
代替として、符号化人工ニューラルネットワーク8の出力で生成された代表値Vは、代表値Vの順序付けられたシーケンスに整理され得る。符号化人工ニューラルネットワーク8の入力に適用されたコンテンツデータBが画像のあるブロック(又は画像成分のあるブロック)を表す場合、符号化人工ニューラルネットワーク8の出力で生成された代表値Vの順序付けられたシーケンスは、このブロックに関連付けられる。したがって、人工ニューラルネットワーク8によって連続して生成された代表値の異なるシーケンスは、画像の異なるブロック(又は画像の関連する成分の異なるブロック)にそれぞれ関連付けられる。
【0041】
さらに別の代替形態によれば、符号化人工ニューラルネットワーク8の出力で生成された代表値Vは、データの多次元(例えば、M次元)構造内に配置される。次に、この構造の各要素は、構造内のその位置、すなわち上述の例ではM個1組の座標によって識別される。次に、符号化人工ニューラルネットワーク8の所与の出力ノード(すなわち出力層の所与のノード)によって生成された代表値Vは、事前定義された方法でこの出力ノードに関連付けられた構造内の位置(すなわち事前定義された方法でこの出力ノードに関連付けられた座標)によって識別される構造の要素を形成する。
【0042】
符号化人工ニューラルネットワーク8の出力(すなわち出力層上)で生成された代表値Vは、一方ではエントロピーエンコーダ10の入力に適用され、他方ではコンテキスト決定人工ニューラルネットワーク40の入力(すなわち入力層)に適用される。
【0043】
したがって、コンテキスト決定人工ニューラルネットワーク40は、入力として(すなわちその入力層上で)代表値V(例えば、符号化されている画像のブロックに対応するか、又は符号化されている画像の成分のブロックに対応する)を受け取り、その結果として、コンテキストインデックスCを出力として生成する。コンテキストインデックスCは、ここで、コンテキスト決定人工ニューラルネットワーク40の出力ノード上で生成される。
【0044】
ここで説明する例では、コンテキスト決定人工ニューラルネットワーク40は、この一意の出力ノードのみを含む。しかしながら、代替方法として、コンテキスト決定人工ニューラルネットワーク40は、それぞれが少なくとも1つの代表値V(例えば、代表値Vのセット)にそれぞれ関連付けられた複数のコンテキストインデックスCを出力として生成し得る。上に記載した事例では、コンテキスト決定人工ニューラルネットワーク40の出力において生成されるコンテキストインデックスCは、異なるフィーチャマップF(各々が代表値Vのセットを含む)とそれぞれ関連付けられ得る。
【0045】
図1に見られるように、コンテキスト決定人工ニューラルネットワーク40によって生成されたコンテキストインデックスCは、エントロピーエンコーダ10及びエントロピーデコーダ30に適用される。
【0046】
エントロピーエンコーダ10は、符号化されるシンボルの特定の出現確率にそれぞれ対応するいくつかの統計ソースを符号化するように設計される。そのために、エントロピーエンコーダ10は、所与の統計ソースに関連付けられた特定のコンテキストであって、効果的に符号化されたシンボル(ここでは代表値V)がこの統計ソースの期待確率を満たす場合、エントロピーエンコーダ10が最適なエントロピー符号化を生成する特定のコンテキストでパラメータ化され得る。
【0047】
以下では、代表値Vのエントロピー符号化中にエントロピーエンコーダ10がパラメータ化され得るコンテキストの数(すなわち代表値Vによって形成される信号において処理され得る異なる統計ソースの数)は、Kで示される。例えば、K=160である。
【0048】
エントロピーエンコーダ10は、ここで、CABAC(「コンテキスト適応バイナリ算術符号化」)タイプのものである。代替として、それは、別のタイプのエントロピーエンコーダ、例えばハフマンタイプのエンコーダ、算術エンコーダ又はLZW(「Lempel-Ziv-Welch」)エンコーダであり得る。
【0049】
エントロピーエンコーダ10の入力で受け取った代表値Vは、エントロピーエンコーダ10によるエントロピー符号化のために、事前定義された方法で順序付けられる。
【0050】
例えば、代表値がフィーチャマップFのシーケンスに整理される、本明細書に記載される例では、異なるフィーチャマップFがこのシーケンスの順序で処理され、各フィーチャマップF内において、要素(すなわち代表値V)は、事前定義された(スキャン)順序で考慮される。
【0051】
エントロピーエンコーダ10は、コンテキスト決定人工ニューラルネットワーク40の出力で生成されたコンテキストインデックスCによって示されるコンテキストでパラメータ化される一方、入力として受け取った順序付けられた代表値Vのエントロピー符号化を実行する。複数のコンテキストインデックスCがコンテキスト決定人工ニューラルネットワーク40の出力で生成される代替実施形態では、それぞれ異なるフィーチャマップFに関連して、エントロピーエンコーダ10は、エントロピー符号化されているフィーチャマップFに関連付けられたコンテキストインデックスCによって示されるコンテキストで(常に)パラメータ化されながら、入力として受け取った順序付けられた代表値Vのエントロピー符号化を実行する。
【0052】
次に、エントロピーエンコーダ10は、バイナリ要素のシーケンスFnnを出力として生成する。以下で明らかになるように、バイナリ要素のこのシーケンスFnnは、オーディオ又はビデオコンテンツを表す圧縮データのストリーム(図3を参照して以下に説明する電子符号化装置2の出力で生成され、且つ図6を参照して以下に説明する電子復号装置20向けのデータストリーム)に対応する。
【0053】
バイナリ要素のシーケンスFnnは、エントロピーエンコーダ30の入力に適用され、エントロピーエンコーダ30は、コンテキスト決定人工ニューラルネットワーク40の出力で生成されたコンテキストインデックスCによって示されるコンテキストでパラメータ化される。
【0054】
エントロピーデコーダ30は、上に記載したエントロピーエンコーダ10によって実行されるエントロピー符号化の逆であるエントロピー復号を実行するように設計される。したがって、エントロピーデコーダ30は、ここで、CABAC(「コンテキスト適応バイナリ算術符号化」)タイプのエントロピーデコーダである。代替方法として、それは、別のタイプのエントロピーエンコーダ、例えば、ハフマンタイプのデコーダ、算術デコーダ又はLZW(「Lempel-Ziv-Welch」)デコーダであり得る。
【0055】
したがって、エントロピーデコーダ30は、エントロピーエンコーダ10の入力に適用されるものと同一の代表値Vを出力として生成する。(この点について、エントロピー符号化が無損失符号化であることを想起されたい。)
【0056】
エントロピーデコーダ30の出力で生成された代表値Vは、復号人工ニューラルネットワーク28の入力(すなわち入力層)に適用される。
【0057】
復号人工ニューラルネットワーク28の入力ノード(又は入力層のノード)への代表値Vのそれぞれの割り当ては、事前定義されている。(符号化人工ニューラルネットワーク8の出力層は、復号人工ニューラルネットワーク28の入力層に対応することがさらに観察される。実際、エントロピー符号化の使用は、データ圧縮の向上を可能にするが、これらのデータを変更しない。)
【0058】
復号人工ニューラルネットワーク28が代表値Vを入力として受け取ると、復号人工ニューラルネットワーク28は、オーディオ又はビデオ再生装置上での再生に適合したコンテンツの表現Iを出力として(すなわち出力層上で)生成する。
【0059】
したがって、ビデオコンテンツ(画像又は画像のシーケンスを含む)の場合、人工ニューラルネットワーク28は、出力として(すなわちその出力層上で)画像ブロック(若しくは画像成分のブロック又は代替方法として画像若しくは画像成分)の少なくとも1つの行列表現Iを生成する。
【0060】
上記に、図1を参照して、コンテンツデータBから、このコンテンツを表す圧縮ストリーム(バイナリ要素のシーケンスFnn)を生成し、この圧縮ストリームを使用して、オーディオ又はビデオ再生装置での再生を目的とした、このコンテンツの表現Iを生成することを可能にするデータ処理アセンブリを説明した。
【0061】
そのようなデータセットは、これまで説明したような異なる人工ニューラルネットワーク8、28、40の学習フェーズ中、特定のタイプのコンテンツ及び/又は特定のレート-ひずみ妥協に対して最適化され得る。
【0062】
まず、オーディオ又はビデオ学習コンテンツのシーケンス(例えば、ここでは一連の学習ビデオ)が選択される。これは、このデータ処理アセンブリで圧縮することが望まれるコンテンツのタイプを表すコンテンツのセットである。
【0063】
次に、学習シーケンスの各コンテンツ(ここでは各ビデオ)が符号化人工ニューラルネットワーク8の入力に(コンテンツデータBとして)適用され得、これにより(エントロピーエンコーダ10の出力において)バイナリ要素のシーケンスFnn及び(復号人工ニューラルネットワーク28の出力において)表示される表現Iを(上に説明したように)毎回生成することが可能となる。
【0064】
費用関数は、現在の構成におけるデータ処理アセンブリの効率を数値的に評価するために使用される。このような費用関数は、例えば、R+λ.Dなどのレート-ひずみ費用であり、Dは、(表現Iを使用して)レンダリングされるコンテンツと、(コンテンツデータBで表される)初期コンテンツとの間のひずみ(二乗誤差)であり、Rは、圧縮ストリーム(すなわちバイナリ要素のシーケンスFnn)の(実際又は推定の)レートであり、λは、圧縮及び品質間の妥協を選択することを可能にする、ユーザによって提供されるパラメータである。
【0065】
この費用関数は、費用関数を最小化するような方法において、人工ニューラルネットワーク8、28、40のニューロンに割り当てられた重みを変化させるために勾配逆伝搬学習アルゴリズム内で使用される。
【0066】
最小費用に達したと見なされるときの人工ニューラルネットワーク8、28、40のニューロンに割り当てられた重みは、それらが以下で使用されるため、これらの人工ニューラルネットワーク8、28、40、したがってデータ処理アセンブリを定義する。
【0067】
したがって、異なるタイプのコンテンツ(すなわち学習シーケンス)及び/又は圧縮及び品質間の異なる妥協(各妥協は、特定のパラメータλに対応する)に対して、それぞれこのタイプのいくつかの最適なデータ処理アセンブリを定義する(それぞれ特に人工ニューラルネットワーク8、28、40のニューロンに割り当てられた重みのセットによって定義される)ことが可能である。
【0068】
ここで、電子符号化装置及び電子復号装置内において、このようなデータ処理アセンブリの部分がどのように使用され得るかについて説明する。
【0069】
図3は、符号化人工ニューラルネットワーク8、コンテキスト決定人工ニューラルネットワーク40及びエントロピーエンコーダ10を使用する電子符号化装置2を示す。
【0070】
この電子符号化装置2は、プロセッサ4(例えば、マイクロプロセッサ)と、並列処理ユニット6、例えばグラフィック処理ユニット、すなわちGPU又はテンソル処理ユニット、すなわちTPUとを含む。
【0071】
プロセッサ4は、制御モジュール5及び前述のエントロピーエンコーダ10を実装するように、(例えば、プロセッサ4によって実行可能であり、且つプロセッサ4に関連付けられたメモリ(図示せず)に格納されたコンピュータプログラム命令によって)プログラムされる。
【0072】
図3に概略的に示されるように、制御モジュール5は、圧縮されるオーディオ又はビデオコンテンツを表すデータP、B、ここではフォーマットデータP及びコンテンツデータBを受信する。これらのコンテンツデータBは、図1の説明で前述したものと同じ性質のものであり、再度説明を行わない。
【0073】
フォーマットデータPは、オーディオ又はビデオコンテンツの表現のフォーマットの特性、例えばビデオコンテンツの場合、画像サイズ(ピクセル単位)、フレームレート、輝度情報のビット深さ及びクロミナンス情報のビット深さを示す。
【0074】
並列処理ユニット6は、プロセッサ4によって(例えば、制御モジュール5によって)構成された後、符号化人工ニューラルネットワーク8及びコンテキスト決定人工ニューラルネットワーク40(共に図1のデータ処理アセンブリなどのデータ処理アセンブリに属する)を実装するように設計される。そのために、並列処理ユニット6は、所与の時点で同じタイプの複数の演算を並列に実行するように設計される。
【0075】
以下では、符号化人工ニューラルネットワーク8及びコンテキスト決定人工ニューラルネットワーク40から形成される人工ニューラルネットワークを「全体的符号化ネットワーク」9と呼ぶ。並列処理ユニット6は、(既に示したように、プロセッサ4によって構成された後に)この全体的符号化ネットワーク9を実装するように設計される。
【0076】
ここで、電子符号化装置2によって実装される符号化方法の例を、図4を参照して説明する。
【0077】
図4の方法は、図1を参照して上に説明した内容に従い、複数のデータ処理アセンブリの中からデータ処理アセンブリを選択するステップE2から始まる。
【0078】
既に説明したように、これらの異なるデータ処理アセンブリは、(図1に示すように)同じ一般構造を有し得るが、異なる人工ニューラルネットワーク8、28、40は、データ処理アセンブリごとに異なる重み(ニューロンに関連付けられる)によって定義される(最適化基準は、データ処理アセンブリごとに異なる)。
【0079】
データ処理アセンブリは、例えば、復号人工ニューラルネットワーク28及びコンテキスト決定人工ニューラルネットワーク40(以下に説明するような全体的復号ネットワークを共に形成する)が電子復号装置(図6に示され、以下に記載される電子復号装置20など)のために使用可能なデータ処理アセンブリの中から選択され得る。そのために、電子符号化装置は、場合により、(電子復号装置又は専用サーバから)この電子復号装置によってアクセス可能な人工ニューラルネットワークのリストを事前に受け取ることができる。
【0080】
データ処理アセンブリは、(例えば、電子符号化装置2の図示しないユーザインタフェースを介してユーザによって示された)意図された用途に応じて選択することもできる。例えば、意図された用途がテレビ会議の場合、選択されたデータ処理アセンブリは、低レイテンシー復号を可能にする。他の用途では、選択されたデータ処理アセンブリは、ランダムアクセス復号を可能にし得る。
【0081】
低レイテンシーのビデオシーケンス復号プロセスでは、ビデオシーケンスの画像は、例えば、直ちに送信及び復号することができる符号化データによって表され、次に、このデータは、ビデオ画像の表示順序で送信することができ、これにより、この場合、符号化と復号との間に1フレームのレイテンシーが確保される。
【0082】
ランダムアクセスビデオシーケンス復号プロセスでは、複数の画像にそれぞれ関連する符号化データは、これらの画像の表示順序と異なる順序で送信され、これにより圧縮の向上が可能となる。次に、他の画像を参照しない符号化画像(いわゆるイントラフレーム)は、定期的に符号化することができ、これにより符号化されたストリーム内のいくつかの場所からビデオシーケンスの復号を開始することが可能となる。
【0083】
そのために、IEEE Transactions on Circuits and Systems for Video Technology,vol.22.,no.12,pp.1649-1668,Dec.2012におけるG.J.Sullivan、J.-R.Ohm、W.-J.Han及びT.Wiegandによる論文「Overview of the High Efficiency Video Coding(HEVC) Standard」を参照することができる。
【0084】
データ処理アセンブリは、可能な限り最良の圧縮-ひずみ妥協を得るために選択することもできる。
【0085】
データ処理アセンブリを選択するための異なる基準は、場合により、一緒に組み合わされ得る。
【0086】
一旦データ処理アセンブリが選択されると、制御モジュール5は、ステップE4において、並列処理ユニット6が、このデータ処理アセンブリにおいて意図した符号化プロセスを実装することができるように、並列処理ユニット6の構成に進む。
【0087】
このステップE4は、特に、並列処理ユニット6内における、選択されたデータ処理アセンブリの符号化人工ニューラルネットワーク8及びコンテキスト決定人工ニューラルネットワーク40を含む全体的符号化ネットワーク9のインスタンス生成を含む。
【0088】
このインスタンス生成は、特に、以下のステップ:
- 並列処理ユニット6内において、全体的符号化ネットワーク9を実装するために必要なメモリスペースを確保するステップ、及び/又は
- 全体的符号化ネットワーク9を定義する重みΓ及び活性化関数を使用して、並列処理ユニット6をプログラミングするステップ、及び/又は
- コンテンツデータBの少なくとも一部を並列処理ユニット6のローカルメモリにロードするステップ
を含み得る。
【0089】
以下のステップは、電子復号装置(例えば、図6を参照して以下に説明する電子復号装置20)向けのデータストリームの符号化(すなわち準備)に関する。
【0090】
したがって、この方法は、特に、オーディオ又はビデオコンテンツの表現のフォーマットに特有のデータ(ここでは例えば符号化されているビデオシーケンスのフォーマットにリンクされたデータ)を含む第1のヘッダ部分Fcを符号化するステップE6を含む。
【0091】
第1のヘッダ部分Fcを形成するこれらのデータは、例えば、画像サイズ(ピクセル単位)、フレームレート、輝度情報のバイナリ深度及びクロミナンス情報のバイナリ深度を示す。これらのデータは、例えば、上述のフォーマットデータPに基づいて構築される(潜在的な再フォーマット後)。
【0092】
制御モジュール5は、ステップE8において、ステップE2で選択されたデータ処理アセンブリに属する復号人工ニューラルネットワーク28及びコンテキスト決定人工ニューラルネットワーク40を含む全体的復号ネットワークを示すデータRを含む第2のヘッダ部分の符号化を実行する。
【0093】
第1の可能な実施形態によれば、これらの指示データRは、全体的復号ネットワークの識別子を含み得る。
【0094】
このような識別子は、(複数の全体的復号ネットワークの中で、例えば、電子復号装置に使用可能な全体的復号ネットワークのセットの中で)上述の全体的符号化ネットワーク9に対応する全体的復号ネットワークを示し、したがって、前記全体的復号ネットワークは、代表値Vを復号するために使用される必要がある。(このような全体的復号ネットワークは、一方では、全体的符号化ネットワーク9に含まれる符号化人工ニューラルネットワーク8に対応した復号人工ニューラルネットワークを含み、他方では、全体的符号化ネットワーク9に含まれるコンテキスト決定人工ニューラルネットワーク40を含む。)
【0095】
すなわち、そのような識別子は、(特に電子符号化装置及び電子復号装置によって共有される)慣例により、例えば電子復号装置が使用可能な(又は電子復号装置によってアクセス可能な)すべての全体的復号ネットワークのうちからこの全体的復号ネットワークを定義する。既に示したように、電子符号化装置2は、場合により、(電子復号装置又は専用サーバから)電子復号装置によってアクセス可能な人工ニューラルネットワークのリストを事前に受信することができる。
【0096】
第2の可能な実施形態によれば、これらの指示データRは、全体的復号ネットワークを記述するデータを含み得る。
【0097】
全体的復号ネットワーク(ステップE2で選択されたデータ処理アセンブリに属する復号人工ニューラルネットワーク28及びコンテキスト決定人工ニューラルネットワーク40を含む)は、例えば、MPEG-7 part 17などの規格に従って又はJSONなどのフォーマットを用いて、これらの記述データ(又は復号人工ニューラルネットワークの符号化データ)によって符号化(すなわち表現)される。
【0098】
そのために、Proceedings of the 36th International Conference on Machine Learning,Long Beach,California,PMLR 97,2019におけるS.Wiedemannらによる論文「DeepCABAC:Context-adaptive binary arithmetic coding for deep neural network compression」又はIEEE Transactions on Neural Networks and Learning Systems(Vol.31,Iss.3),March 2020におけるS.Wiedemannらによる論文「Compact and Computationally Efficient Representation of Deep Neural Networks」を参照することができる。
【0099】
指示データRは、全体的復号ネットワークが人工ニューラルネットワークの所定のセットに属するかどうか(この場合、上述の第1の可能な実施形態が使用される)、又は全体的復号ネットワークがデータストリームで符号化されているかどうか、すなわち上述の記述データによって表現されているかどうか(この場合、上述の第2の可能な実施形態が使用される)を示す標識を含むことも規定され得る。
【0100】
図4の方法は、電子復号装置が上記の全体的復号ネットワークを使用して復号プロセスを実装する可能性を決定するステップE10に続く。
【0101】
制御モジュール5は、例えば、電子復号装置が、この復号プロセスを実装するように設計されたモジュール又は電子復号装置によるこの復号プロセスの実装に適したソフトウェア(このソフトウェアが電子復号装置のプロセッサによって実行される場合)を含むかどうかを(潜在的に電子符号化装置2と電子復号装置との間の以前のやり取りを用いて)決定することにより、この可能性を決定する。
【0102】
制御モジュール5が、電子復号装置が復号プロセスを実装することが可能であると決定した場合、方法は、以下に説明するステップE14に続く。
【0103】
制御モジュール5が、電子復号装置が復号プロセスを実装することが不可能であると決定した場合、方法は、(ステップE14に進む前に)以下に説明するステップE12を実行する。
【0104】
代替として、(ステップE14を実行する前に)ステップE12を実行するか否かの選択は、別の基準に応じて、例えば電子符号化装置2内に格納された(及び場合により電子符号化装置2のユーザインタフェースを介してユーザによって調整可能な)専用標識に応じて又は(例えば、電子符号化装置2のユーザインタフェースを介して得られる)ユーザによって行われる選択に応じて行うことができる。
【0105】
制御モジュール5は、ステップE12において、電子復号装置のプロセッサによって実行可能なコンピュータプログラムExe(又はコード)を含む第3のヘッダ部分をデータストリームで符号化する。(電子復号装置内でのコンピュータプログラムExeの使用は、図7を参照して以下に説明する。)
【0106】
電子復号装置内での実行に適合させるために、コンピュータプログラムは、例えば、ライブラリ内において、電子復号装置のハードウェア構成に関連する情報(例えば、電子符号化装置2と電子復号装置との間の以前のやり取り中に受信した情報)に応じて選択される。
【0107】
次に、図4の方法は、ステップE2で選択されたデータ処理アセンブリ(したがってこの同じアセンブリのエントロピーデコーダ30)において使用されるエントロピーエンコーダ10の構成を表すデータを符号化するステップに進む。
【0108】
したがって、図4の方法は、まず、エントロピー符号化に使用されるコンテキストのセットを示す情報I1を含む第4のヘッダ部分を符号化するステップE14を含む。本明細書で説明する例では、情報I1は、エントロピー符号化に使用されるコンテキストの数Kを示す。
【0109】
次に、図4の方法は、エントロピー符号化に使用されるコンテキストごとに、関連するコンテキストをパラメータ化するためのデータIinitを含む第5のヘッダ部分を符号化するステップE16を含む。
【0110】
使用されるエントロピー符号化がCABACタイプである、ここで説明する事例では、所与のコンテキストに関連付けられたパラメータ化データIinitは、例えば、Recommendation ITU-T H.265,part“9.3.2.2 Initialization process for context variables”に記載されるように、このコンテキストを初期化するためのデータである。
【0111】
他の実施形態では、所与のコンテキストに関連付けられたパラメータ化データは、エントロピー符号化中に関連するコンテキストに使用される確率モデルを示すデータであり得る。
【0112】
図4の方法は、異なるコンテキストに関連する上述のパラメータ化データを用いて、エントロピーエンコーダ10を(制御モジュール5によって)初期化するステップE18に続く。このタイプの初期化については、上述の文献(Recommendation ITU-T H.265,part“9.3.2.2 Initialization process for context variables”)に記載されている。
【0113】
次に、図4の方法は、符号化プロセスを実装するステップE20、すなわちここではコンテンツデータBを全体的符号化ネットワーク9の入力に適用するステップ(又は言い換えると、入力としてコンテンツデータBを用いて全体的符号化ネットワーク9を活性化するステップ)を含む。(したがって、コンテンツデータBは、次に、符号化人工ニューラルネットワーク8の入力に適用される。)
【0114】
したがって、ステップE20は、(ここでは全体的符号化ネットワーク9の出力において)代表値V及びコンテキストインデックスCを生成することを可能にする。正確には、代表値Vは、符号化人工ニューラルネットワーク8の出力で生成され、これらの代表値Vは、コンテキスト決定人工ニューラルネットワーク40の入力に対して、このコンテキスト決定人工ニューラルネットワーク40が出力としてコンテキストインデックスCを生成するように適用される。
【0115】
次に、図4の方法は、エントロピーエンコーダ10によって代表値Vをエントロピー符号化するステップE22を含み、エントロピーエンコーダ10は、全体的符号化ネットワーク9の出力において(ここでは正確にはコンテキスト決定人工ニューラルネットワーク40の出力において)生成されたコンテキストインデックスCによって定義されるコンテキストで(場合により制御モジュール5を介して)パラメータ化される。コンテキスト決定人工ニューラルネットワーク40(したがって全体的符号化ネットワーク9)が代表値Vのセットにそれぞれ関連付けられた複数のコンテキストインデックスCを生成する代替実施形態では、エントロピーエンコーダ10による代表値Vのエントロピー符号化は、エントロピー符号化されている代表値Vを含むセットに関連付けられたコンテキストインデックスCによって定義されるコンテキストでエントロピーエンコーダ10をパラメータ化することによって行われる。
【0116】
したがって、エントロピーエンコーダ10は、オーディオ又はビデオコンテンツを圧縮形式で表すバイナリ要素のシーケンスFnnを出力として生成する。
【0117】
ステップE22は、場合により、上述の論文「Context-based adaptive binary arithmetic coding in the H.264/AVC video compression standard」に記載されるように、代表値Vを二値化するサブステップを含み得る(したがってエントロピー符号化前に)。この二値化ステップの目的は、多数の値を取ることができる代表値Vをバイナリ要素のシーケンスに変換することであり、各バイナリ要素は、エントロピー符号化によって符号化される(及びこの場合、コンテキストは、各バイナリ要素の符号化に関連付けられる)。
【0118】
特に、ステップE20が、圧縮されるオーディオ又はビデオコンテンツの一部のみの処理を可能にする場合(例えば、ステップE20が、圧縮されるビデオシーケンスのブロック、成分又は画像の処理を実行する場合)、ステップE20(コンテンツの連続部分の代表値を取得するため)及びステップE22(これらの代表値のエントロピー符号化を実行するため)の実施を繰り返すことが可能である。
【0119】
したがって、プロセッサ4は、ステップE24において、ヘッダFet及びバイナリ要素のシーケンスFnnを含む完全なデータストリームを構築することができる。
【0120】
完全なデータストリームは、ヘッダFet及びバイナリ要素のシーケンスFnnが個々に識別可能であるように構築される。
【0121】
ある可能な実施形態によれば、ヘッダFetは、完全なデータストリーム内で開始されるバイナリ要素シーケンスFnnの標識を含む。この標識は、例えば、ビット単位での、完全なデータストリームの先頭からのバイナリ要素のシーケンスFnnの先頭の場所である。(すなわち、この場合、ヘッダは、所定の固定長を有する。)
【0122】
ヘッダFet及びバイナリ要素のシーケンスFnnを識別するための他の手段は、代替として、例えばマーカ(すなわちバイナリ要素のシーケンスFnnの先頭を示すために使用されるビットの組み合わせであり、その使用は、データストリームの残りの部分又は少なくともヘッダFet内で禁止される)として企図され得る。
【0123】
ステップE24で構築されたデータストリームは、「パケットトランスポートシステム」又は「バイトストリーム」フォーマットなど、それ自体が知られている伝送フォーマットでカプセル化され得る。
【0124】
(例えば、RTPプロトコルによって提案される)「パケットトランスポートシステム」フォーマットの場合、データは、識別可能なパケットによって符号化され、且つ通信ネットワーク上で伝送される。ネットワークは、ネットワーク層によって提供されるパケット識別情報を使用して、データ(画像、画像群並びにここではヘッダFet及びバイナリ要素のシーケンスFnn)の境界を簡単に識別することができる。
【0125】
「バイトストリーム」フォーマットでは、具体的には、パケットが存在せず、ステップE24の構築は、一意のバイナリ組み合わせ(0x00000001など)がデータ間の境界を識別できるようにするネットワーク抽象化層(NAL)ユニットの使用などのさらなる手段を使用して、関連するデータの境界(各画像に対応するストリームの部分間の境界及びここではヘッダFetとバイナリ要素のシーケンスFnnとの間の境界など)を識別することを可能にする必要がある。
【0126】
次に、ステップE24で構築された完全なデータストリームは、ステップE26において、以下に説明する電子復号装置20に向けて(図示しない通信手段によって及び/又は少なくとも1つの通信ネットワークを介して)送られるか、又は(後に伝送するために又は代替として例えば電子符号化装置自体内で後に復号するために、この場合、電子符号化装置は、図6を参照して以下に説明する復号方法20をさらに実装するように設計される)電子符号化装置2内に格納され得る。
【0127】
したがって、このデータストリームは、図5に示されるように、ヘッダFet及びバイナリ要素のシーケンスFnnを含む。
【0128】
上記から明らかなように、ヘッダFetは、
- オーディオ又はビデオコンテンツ表現フォーマットのデータ特性を含む第1の部分Fc、
- (復号人工ニューラルネットワーク及びコンテキスト決定人工ニューラルネットワークを含む)全体的復号ネットワークを示すデータRを含む第2の部分と、
- 場合により、電子復号装置のプロセッサによって実行可能なコンピュータプログラムExeを含む第3の部分、
- エントロピー符号化に使用されるコンテキストのセットを示す情報I1を含む第4の部分、
- エントロピー符号化に使用されるコンテキストごとに、関連するコンテキストをパラメータ化するためのデータIinitを含む第5の部分、
を含む。
【0129】
考えられる代替形態によれば、エントロピー符号化に使用されるコンテキストのセットを示す情報I1を伝送しないように規定され得、この場合、エントロピーエンコーダ及びエントロピーデコーダは、事前に(慣例によって)定義されたコンテキストのセットを使用することができる。
【0130】
図6は、エントロピーデコーダ30、コンテキスト決定人工ニューラルネットワーク40及び復号人工ニューラルネットワーク28(これらの要素は、図1を参照して上に説明される)を使用する電子復号装置20を示す。
【0131】
この電子復号装置20は、受信ユニット21、プロセッサ24(例えば、マイクロプロセッサ)及び並列処理ユニット26、例えばグラフィック処理ユニット、すなわちGPU又はテンソル処理ユニット、すなわちTPUを含む。
【0132】
受信ユニット21は、例えば、通信回路(無線周波数通信回路など)であり、電子符号化装置2などの外部電子装置からデータ(特にここでは上記のデータストリーム)を受信すること及びこれらのデータをプロセッサ24(例えば、受信ユニット21は、バスによってプロセッサ24に接続される)に通信することを可能にする。
【0133】
電子復号装置20は、ストレージユニット22、例えばメモリ(場合により書き換え可能な不揮発性メモリ)又はハードドライブも含む。ストレージユニット22は、プロセッサ24の別個の要素として図5に示されているが、代替として、ストレージユニット22は、プロセッサ24に統合され得る(すなわち含まれ得る)。
【0134】
この場合、プロセッサ24は、例えば、ストレージユニット22に格納されたコンピュータプログラムの複数の命令を連続して実行するように適合される。
【0135】
これらの命令の一部は、プロセッサ24によって実行されると、特に後述する機能を有する制御モジュール25を実装することを可能にする。代替として、制御モジュール25の機能のいくつかは、後述するように、ステップE52において、ヘッダFet内で識別された命令をプロセッサ24によって実行することによって実装され得る。
【0136】
ストレージユニット22に格納された命令の別の部分は、プロセッサ24によって実行されると、前述のエントロピーデコーダ30を実装することを可能にする。代替として、エントロピーデコーダ30は、後述するように、ステップE52において、ヘッダFet内で識別された命令をプロセッサ24によって実行することによって実装され得る。
【0137】
並列処理ユニット26は、プロセッサ24によって(ここでは正確には制御モジュール25によって)構成された後にコンテキスト決定人工ニューラルネットワーク40及び復号人工ニューラルネットワーク28を実装するように設計される。そのために、並列処理ユニット26は、所与の時点で同じタイプの複数の演算を並列に実行するように設計される。
【0138】
既に示したように、コンテキスト決定人工ニューラルネットワーク40及び復号人工ニューラルネットワーク28は、ここでは「全体的復号ネットワーク」と呼ばれ、図6では29と表示される人工ニューラルネットワークを共に形成する。
【0139】
図5に概略的に示すように、プロセッサ24は、(ここでは受信ユニット21を介して)ヘッダFet及びバイナリ要素のシーケンスFnnを含むデータストリームを受信する。
【0140】
以下に説明するように、復号人工ニューラルネットワーク28は、バイナリ要素のシーケンスFnnの(エントロピーデコーダ30による)エントロピー復号によって取得されるデータの処理のフレームワーク内で使用され、このデータ処理は、最初のオーディオ又はビデオコンテンツBに対応するオーディオ又はビデオコンテンツを取得することを目的とする。
【0141】
ストレージユニット22は、複数のパラメータセットを格納することができ、各パラメータセットは、全体的復号ネットワーク(コンテキスト決定人工ニューラルネットワーク及び復号人工ニューラルネットワークを含む)を定義する。以下で説明するように、プロセッサ24は、この場合、これらのパラメータセットの中の特定のパラメータセットを用いて、並列処理ユニット26が、次に、この特定のパラメータセットによって定義される人工ニューラルネットワーク(すなわちここでは全体的復号ネットワーク)を実装することができるように、並列処理ユニット26を構成することができる。
【0142】
ストレージユニット22は、特に、ランダムアクセスデコーダを形成する第1の人工ニューラルネットワークを定義する第1のパラメータセット及び/又は低レイテンシーデコーダを形成する第2の人工ニューラルネットワークを定義する第2のパラメータセットを格納し得る。
【0143】
この場合、電子復号装置20は、コンテンツへのランダムアクセスが望まれる状況及びコンテンツが遅延なく表示されるべき状況の両方に対して、事前に復号オプションを有する。
【0144】
ここで、図7を参照して、電子復号装置20内に実装され、一方では(コンテキスト決定人工ニューラルネットワーク40によって生成されたコンテキストインデックスCに応じてパラメータ化される)エントロピーデコーダ30を使用し、他方では並列処理ユニット26によって実装される人工ニューラルネットワーク28を使用する復号方法について説明する。
【0145】
図7の方法は、ヘッダFet及びバイナリ要素のシーケンスFnnを含むデータストリームを(電子復号装置20、正確にはここでは受信ユニット21によって)受信するステップE50から始まる。受信ユニット21は、制御モジュール25による処理のために、受信したデータストリームをプロセッサ24に伝送する。
【0146】
次に、制御モジュール25は、例えば、(ステップE24の説明で既に述べた)バイナリ要素シーケンスの先頭の標識により、受信データストリーム内のヘッダFet及びバイナリ要素のシーケンスFnnを識別するステップE52に進む。
【0147】
制御モジュール25は、ステップE52において、(図5を参照して上に説明したように)ヘッダFetの異なる部分も識別することができる。
【0148】
ステップE52において、第1のデータ内で実行可能命令(コンピュータプログラムExeの命令など)が識別(すなわち検出)される場合、制御モジュール25は、ステップE54において、ヘッダデータの処理(及び場合によりエントロピー復号)の(後述の)ステップの少なくともいくつかを実装するために、これらの実行可能命令の実行を開始し得る。これらの命令は、プロセッサ24又は代替として電子復号装置20内でインスタンス生成された仮想マシンによって実行され得る。
【0149】
図7の方法は、オーディオ又はビデオコンテンツの表現のフォーマットの特徴を取得するように、このフォーマットの特徴であるデータFcを復号するステップE56に続く。例えば、ビデオコンテンツの場合、データ部分Fcの復号は、画像サイズ(ピクセル単位)、及び/又はフレームレート、及び/又は輝度情報のバイナリ深度、及び/又はクロミナンス情報のバイナリ深度を取得することを可能にする。
【0150】
次に、制御モジュール25は、使用される全体的復号ネットワークを示すデータRを復号するステップE58に進む。
【0151】
第1の可能性によれば、既に示したように、これらのデータRは、例えば、人工ニューラルネットワークの所定のセット内で全体的復号ネットワーク28を示す識別子である。
【0152】
この所定のセットは、例えば、電子復号装置20によってアクセス可能な全体的復号ネットワークのセット、すなわち(上に示したように)それに関して電子復号装置20が、関連する人工ニューラルネットワークを定義するパラメータのセットを格納するか、又は(以下に説明するように)サーバなどのリモート電子機器に接続することにより、このパラメータのセットにアクセスし得る全体的復号ネットワークのセットである。
【0153】
この場合、制御モジュール25は、例えば、ストレージユニット22において、復号された識別子に関連付けられたパラメータのセット(このパラメータのセットは、復号された識別子によって識別される全体的復号ネットワークを定義する)の読み取りに進み得る。
【0154】
代替として(又は復号された識別子によって識別される全体的復号ネットワークに関してストレージユニット22にパラメータのセットが格納されていない場合)、制御モジュール25は、パラメータのセットに対する要求をリモートサーバに伝送し(この要求は、例えば、復号された識別子を含む)、且つ復号された識別子によって識別される人工ニューラルネットワーク(ここでは全体的復号ネットワークを形成する)を定義するパラメータのセットを応答として受信することができる。
【0155】
(読み取られた又は受信された)パラメータのセットは、実際には、復号人工ニューラルネットワーク28を定義する特定のパラメータ及びコンテキスト決定人工ニューラルネットワーク40を定義する他のパラメータを含み得る。
【0156】
第2の可能な実施形態によれば、既に示したように、データRは、全体的復号ネットワーク29を記述するデータRcである。
【0157】
既に示したように、これらの記述データ(又は符号化データ)は、例えば、MPEG-7 part 17などの規格に従って又はJSONなどのフォーマットを用いて符号化される。
【0158】
これらの記述データの復号により、コンテキスト決定人工ニューラルネットワーク40及び復号人工ニューラルネットワーク28(これらに対して、以下に説明するように、バイナリ要素のシーケンスFnnからのエントロピー復号によって取得されたデータが適用される)を含む、使用される全体的復号ネットワーク29を定義するパラメータを取得することが可能となる。
【0159】
このようなパラメータは、実際には、復号人工ニューラルネットワーク28を定義する特定のパラメータ及びコンテキスト決定人工ニューラルネットワーク40を定義する他のパラメータを含み得る。
【0160】
いくつかの実施形態では、上述の第1の可能性又は第2の可能性の使用は、既に示したように、データRにも含まれる標識に依存する。
【0161】
何れの選択肢が使用されても、使用される全体的復号ネットワークを示すデータRの復号は、(ここでは制御モジュール25が)特に復号人工ニューラルネットワーク28のフィーチャを決定することを可能にする。したがって、例えば、本明細書に記載する例では、制御モジュール25は、復号人工ニューラルネットワーク28の入力で期待されるフィーチャマップの数N及びこれらのフィーチャマップのサイズH、Wを決定する。実際、上に説明したように、符号化人工ニューラルネットワーク8の出力層に対応する復号人工ニューラルネットワーク28の入力層、フィーチャマップFの各要素は、所定の方法で復号人工ニューラルネットワークの入力ノード(又は入力層のノード)に関連付けられる。したがって、フィーチャマップFの数及びサイズは、復号人工ニューラルネットワーク28のフィーチャ及び上述のデータFc(特に画像サイズを含む)などの特定のヘッダデータにリンクされる。
【0162】
次に、制御モジュール25は、ステップE60において、全体的復号ネットワーク29を定義するパラメータ(ステップE58で取得されたパラメータ)を用いて、並列処理ユニット26が、この全体的復号ネットワーク29(コンテキスト決定人工ニューラルネットワーク40及び復号人工ニューラルネットワーク28を含む)を実装することができるように、並列処理ユニット26の構成に進む。
【0163】
この構成ステップE60は、特に、並列処理ユニット26内での、ここではステップE58で取得されたパラメータを使用した、全体的復号ネットワーク29のインスタンス生成(したがってコンテキスト決定人工ニューラルネットワーク40及び復号人工ニューラルネットワーク28のインスタンス生成)を含む。
【0164】
このインスタンス生成は、特に、以下のステップ:
- 並列処理ユニット26内において、全体的復号ネットワーク29を実装するために必要なメモリスペースを確保するステップ、及び/又は、
- 全体的復号ネットワーク29を定義するパラメータ(例えば、重みΓ’及び活性化関数を含む)(ステップE58で取得されたパラメータ)を使用して、並列処理ユニット26をプログラミングするステップ、
を含み得る。
【0165】
構成ステップE60は、全体的復号ネットワーク29が活性化され、したがって、出力として(正確には、コンテキスト決定人工ニューラルネットワーク40の出力において)初期コンテキストインデックスCを生成するように、全体的復号ネットワーク29の入力層への(例えば、ストレージユニット22に格納された)事前定義された(初期)値の適用をさらに含み得る。
【0166】
次に、制御モジュール25は、ステップE62において、エントロピーデコーダ30内で使用可能なコンテキストのセットを示す(ここではエントロピーデコーダ30内で使用可能なコンテキストの数Kを示す)情報I1の復号に進む。既に示したように、例えばK=160である。
【0167】
次に、制御モジュール25は、ステップE64において、使用されるコンテキストのセット(このセットは、ステップE62で復号された情報I1のために決定される)の異なるコンテキストにそれぞれ関連するパラメータ化データIinitの復号に進む。
【0168】
次に、制御モジュール25は、(ステップE64で復号された)関連するコンテキストのパラメータ化データIinitを使用して、エントロピーデコーダ30内で使用可能な各コンテキストを初期化するステップE66を実装することができる。
【0169】
より正確には、エントロピーエンコーダ30は、ここで、適応型であり、各コンテキストは、このコンテキストに関連するパラメータ化データIinitによって定義される確率モデルを用いて初期化される。
【0170】
代替として、エントロピーデコーダ30が各コンテキストに対して固定確率モデルを使用する場合、制御モジュール25は、ステップE66において、エントロピーデコーダ30によって使用可能な各コンテキストを、このコンテキストに関連するパラメータ化データIinitによって定義される確率モデルを用いて構成する。
【0171】
次に、制御モジュール25は、全体的復号ネットワーク29の出力で生成された(すなわちここではコンテキスト決定人工ニューラルネットワーク40の出力で生成された)コンテキストインデックスCによって識別されたコンテキストでエントロピーデコーダ30をパラメータ化しながら、(受信ユニット21を介して受信された)バイナリ要素のシーケンスFnnをエントロピーデコーダ30の入力に適用する(ステップE70)。
【0172】
第1の反復中(すなわちステップE70への最初の移行中)、コンテキストインデックスCは、例えば、上に説明したように、ステップE60中に全体的復号ネットワーク29の予想活性化の結果として生成された上述の初期コンテキストインデックスCである。代替方法として、全体的復号ネットワーク29がコンテキストインデックスCを生成しない限り(すなわちここでは最初の反復中)、エントロピーデコーダ30は、場合により、ストレージユニット22に格納された事前定義された初期コンテキストでパラメータ化され得る(この場合、ステップE60は、全体的復号ネットワーク29の予想活性化のために全体的復号ネットワーク29に対して事前定義された値を適用することを含まない)。
【0173】
したがって、後の反復中(すなわちステップE76で後述するループに起因するステップE70への後の移行中)、エントロピーデコーダ30は、ステップE70への以前の移行中に(エントロピー復号によって)復号された代表値Vが、(ステップE72への以前の移行中に)全体的復号ネットワーク29の入力に適用されている場合、全体的復号ネットワーク29によって生成されたコンテキストインデックスCによって識別されたコンテキストでパラメータ化される。
【0174】
したがって、エントロピーデコーダ30は、ステップE70において、(バイナリ要素のシーケンスFnnのエントロピー復号によって)新たな代表値Vを生成する。
【0175】
実際には、(対応する代表値Vのエントロピー復号が行われる時点で、使用されるコンテキストインデックスCが使用可能であることを保証するように)全体的復号ネットワーク29とエントロピーエンコーダ30との間の同期のための機構が設けられ得る。この同期機構は、例えば、新たなコンテキストインデックスCが全体的復号ネットワーク29の出力において(すなわち正確にはコンテキスト決定人工ニューラルネットワーク40の出力において)使用可能でない限り、(エントロピーデコーダ30による)エントロピー復号の一時停止を含む。
【0176】
第1の可能な実施形態によれば、中間変数C’が、メモリ内(例えば、プロセッサ24のレジスタ内又はストレージユニット22内)に格納され、全体的復号ネットワーク29によって(すなわち正確にはコンテキスト決定人工ニューラルネットワーク40によって)更新される。新たなコンテキストインデックスCが全体的復号ネットワーク29によって(すなわち正確にはコンテキスト決定人工ニューラルネットワーク40によって)提供されない限り、(エントロピーデコーダ30による)エントロピー復号は、中断される。中間変数C’がメモリ内で更新されると直ちに、1つ(又は所定の数の)代表値Vのエントロピー復号が、中間変数C’によって定義されたコンテキスト(全体的復号ネットワーク29によって生成されるコンテキストインデックスCと同一)を用いて実行され、次に、エントロピー復号は、(さらに全体的復号ネットワーク29の出力、すなわちコンテキスト決定人工ニューラルネットワーク40の出力における新たなコンテキストインデックスCの生成への中間変数C’の新たな更新まで)再び一時停止される。
【0177】
第2の可能な実施形態によれば、同期機構は、(エントロピーデコーダ30による)エントロピー復号の進行を全体的復号ネットワーク29による(すなわち正確にはコンテキスト決定人工ニューラルネットワーク40による)コンテキストインデックスCの生成に依存させることにある。この第2の実施形態では、情報(例えば、コンテキストインデックスC自体又は代替方法として専用の同期情報)が、使用されるコンテキストインデックスCを提供するニューラルネットワークの部分(例えば、ニューラルネットワークの層)が活性化されるときに、全体的復号ネットワーク29から(例えば、コンテキスト決定人工ニューラルネットワーク40から)エントロピーデコーダ30に伝送される。この情報が伝送されると、代表値V(又は所定数の代表値V)が、エントロピー復号によって(現在のコンテキストインデックスCによって定義されたコンテキストでパラメータ化されたエントロピーデコーダ30によって)復号される。
【0178】
さらに、コンテキスト決定人工ニューラルネットワーク40(したがって全体的符号化ネットワーク29)が代表値Vのセットにそれぞれ関連付けられた複数のコンテキストインデックスCを生成する、既に述べた代替実施形態では、エントロピーエンコーダ30による代表値Vのエントロピー符号化は、その時点でエントロピー符号化によって取得される代表値Vを含むセットに関連付けられたコンテキストインデックスCによって定義されるコンテキストで、エントロピーエンコーダ30を常にパラメータ化することによって行われる。
【0179】
例えば、代表値VがフィーチャマップFのシーケンスに整理される、本明細書で説明する例では、エントロピーデコーダ30は、異なるフィーチャマップFの連続的な(エントロピー)復号を可能にし、したがって、制御モジュール25は、エントロピー復号されるフィーチャマップFに関連付けられたコンテキストインデックスCによって定義されるコンテキストでエントロピーデコーダ30を(常に)パラメータ化することができる。
【0180】
次に、プロセッサ24は(ここではエントロピーエンコーダ30の出力で直接的に又は代替方法として制御モジュール25を介して)、ステップE72において、代表値Vを、一方ではこれらのデータが少なくとも部分的に復号人工ニューラルネットワーク28を使用する復号プロセスによって処理され、他方ではコンテキスト決定人工ニューラルネットワーク40の出力で(新たな)コンテキストインデックスCが生成されるように、並列処理ユニット26によって実装された人工ニューラルネットワーク(全体的復号ネットワーク)29に対して適用(すなわち提示)することができる。
【0181】
ここで説明する例では、復号ニューラルネットワーク28は、代表値Vを入力として受信し、オーディオ又はビデオ再生装置での再生に適合した符号化コンテンツの表現Iを出力として生成する。すなわち、代表値V(ここではフィーチャマップFの形式における)が復号人工ニューラルネットワーク28の入力層に適用され、復号人工ニューラルネットワーク28の出力層が符号化コンテンツの上述の表現Iを生成する。したがって、ビデオコンテンツ(画像又は画像のシーケンスを含む)の場合、人工ニューラルネットワーク28は、出力として(すなわちその出力層上で)画像の少なくとも1つの行列表現Iを生成する。
【0182】
図1の説明で既述のように、フィーチャマップFの要素(すなわち代表値V)と復号人工ニューラルネットワーク28の入力ノード(又は入力層のノード)との関連付けは、事前に定義される。
【0183】
特定の実施形態では、(例えば、ブロック又は画像に対応する)特定の代表値Vを処理するために、復号人工ニューラルネットワーク28は、例えば、先行するブロック又は先行する画像に対応する以前のデータ(ここでは前の代表値V)の処理中、人工ニューラルネットワーク28の出力で生成されたデータの少なくともいくつかを入力として受信することができる。この場合、復号人工ニューラルネットワーク28の出力で生成されたデータを復号人工ニューラルネットワーク28の入力に再注入するステップE74に進む。
【0184】
次に、制御モジュール25は、ステップE76において、バイナリ要素のシーケンスFnnの処理が完了したかどうかを決定する。
【0185】
否定的決定(N)の場合、この方法は、ステップE70にループして、バイナリ要素のシーケンスFnnの後続の部分のエントロピー復号を実行し、(このエントロピー復号によって生成された)他の代表値Vを復号人工ニューラルネットワーク28に適用する。
【0186】
肯定的決定(P)の場合、この方法は、ステップE78で終了する。
図1
図2
図3
図4
図5
図6
【図
図7
【国際調査報告】