(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2023-10-16
(54)【発明の名称】データストリームを復号する方法及び電子装置並びに関連するコンピュータプログラム及びデータストリーム
(51)【国際特許分類】
H04N 19/91 20140101AFI20231006BHJP
H04N 19/46 20140101ALI20231006BHJP
【FI】
H04N19/91
H04N19/46
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2023519767
(86)(22)【出願日】2021-09-28
(85)【翻訳文提出日】2023-05-23
(86)【国際出願番号】 EP2021076582
(87)【国際公開番号】W WO2022069437
(87)【国際公開日】2022-04-07
(32)【優先日】2020-09-30
(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)【要約】
データストリームは、複数の識別子及びビットシーケンス(Fnn)を含む。前記データストリームをそれぞれの所定のタイプのデータ(V)のシーケンスに復号する方法は、シーケンスのデータ(V)の各項目を取得するための以下のステップ:- 複数の識別子のうち、関連するデータ項目のタイプを有する識別子に基づいてコンテキスト(C)を決定するステップ、- ビットシーケンス(Fnn)を入力として受信し、且つ決定されたコンテキスト(C)でパラメータ化されるエントロピーデコーダ(23)により、ビットシーケンス(Fnn)の一部を復号するステップを含む。本発明は、電子復号装置(20)及び関連するコンピュータプログラムにも関する。
【特許請求の範囲】
【請求項1】
複数の識別子(I2_map[i])及びバイナリ要素のシーケンス(Fnn)を含むデータストリームをそれぞれの所定のタイプのデータ(V)のシーケンスに復号する方法であって、前記シーケンスの各データ(V)を取得するための以下のステップ:
- 前記複数の識別子のうち、前記関連するデータの前記タイプに関連付けられる識別子(I2_map[i])に基づいてコンテキスト(C)を決定するステップ、
- 前記バイナリ要素のシーケンス(Fnn)を入力として受信し、且つ前記決定されたコンテキスト(C)でパラメータ化されたエントロピーデコーダ(23)により、前記バイナリ要素のシーケンス(Fnn)の一部を復号するステップ、
を含む復号方法。
【請求項2】
前記データストリームは、前記エントロピーデコーダ(23)内で使用可能なコンテキストのセットを示す情報(I1)を含む、請求項1に記載の復号方法。
【請求項3】
前記情報(I1)は、前記エントロピーデコーダ(23)内で使用可能なコンテキストの数を示す、請求項2に記載の復号方法。
【請求項4】
前記データストリームは、前記エントロピーデコーダ内で使用可能な各コンテキストについて、前記関連するコンテキストをパラメータ化するためのデータ(Iinit)を含む、請求項1~3の何れか一項に記載の復号方法。
【請求項5】
前記関連するコンテキストをパラメータ化するための前記データ(Iinit)を使用して、前記エントロピーデコーダ(23)内で使用可能な各コンテキストを初期化するステップ(E66)を含む、請求項4に記載の復号方法。
【請求項6】
前記取得されたデータ(V)を人工ニューラルネットワーク(28)の入力に適用するステップ(E72)を含む、請求項1~5の何れか一項に記載の復号方法。
【請求項7】
前記人工ニューラルネットワーク(28)は、処理ユニット(26)によって実装され、前記方法は、前記データストリームに含まれるデータ(R)に応じて前記処理ユニット(26)を構成するステップ(E60)を含む、請求項6に記載の復号方法。
【請求項8】
前記データのシーケンスは、フィーチャマップ(F)のセットを形成する、請求項1~7の何れか一項に記載の復号方法。
【請求項9】
前記複数の識別子のうちの前記識別子は、前記フィーチャマップのセットの前記フィーチャマップ(F)にそれぞれ関連付けられ、所与のフィーチャマップ(F)の要素を取得するために決定される前記コンテキストは、前記所与のフィーチャマップ(F)に関連付けられた前記識別子に基づいて決定される、請求項8に記載の復号方法。
【請求項10】
前記フィーチャマップのセットの前記フィーチャマップ(F)は、フィーチャマップの各要素が位置によって定義される共通の構造を有し、前記複数の識別子のうちの前記識別子は、前記共通の構造における前記異なる位置にそれぞれ関連付けられ、フィーチャマップ(F)の所与の要素を取得するために決定される前記コンテキストは、前記所与の要素を定義する前記位置に関連付けられた前記識別子に基づいて決定される、請求項8に記載の復号方法。
【請求項11】
複数の識別子(I2_map[i])及びバイナリ要素のシーケンス(Fnn)を含むデータストリームをそれぞれの所定のタイプのデータ(V)のシーケンスに復号するための電子装置(20)であって、
- 前記バイナリ要素のシーケンス(Fnn)を入力として受信するエントロピーデコーダ(23)と、
- 前記複数の識別子のうち、取得される前記データの前記タイプに関連付けられる識別子(I2_map[i])に基づいてコンテキスト(C)を決定し、且つ前記エントロピーデコーダ(23)の出力で前記データを取得するために、前記決定されたコンテキスト(C)で前記エントロピーデコーダ(23)をパラメータ化するように設計された構成モジュール(25)と、
を含む電子装置(20)。
【請求項12】
コンピュータプログラムであって、プロセッサ(24)によって実行可能な命令を含み、且つ前記命令が前記プロセッサ(24)によって実行されると、請求項1に記載の復号方法を実装するように適合されたコンピュータプログラム。
【請求項13】
データストリームであって、それぞれの所定のタイプのデータ(V)のシーケンスを表し、且つ複数の識別子(I2_map[i])及びバイナリ要素のシーケンス(Fnn)を含み、各識別子(I2_map[i])は、エントロピーデコーダ(23)が前記バイナリ要素のシーケンス(Fnn)の一部を入力として受信するとき、前記エントロピーデコーダ(23)が、前記識別子(I2_map[i])に関連付けられたタイプを有する少なくとも1つのデータを取得するようにパラメータ化されるコンテキスト(C)を表す、データストリーム。
【発明の詳細な説明】
【技術分野】
【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】
データストリームは、エントロピーデコーダ内で使用可能な各コンテキストについて、関連するコンテキストをパラメータ化するためのデータをさらに含み得る。
【0011】
復号方法は、したがって、関連するコンテキストをパラメータ化するためのデータを使用して、エントロピーデコーダ内で使用可能な各コンテキストを初期化するステップを含み得る。
【0012】
したがって、上述の指示情報及びパラメータ化データは、エントロピー復号の効果的な実装前にエントロピーデコーダを構成することを可能にする。
【0013】
復号方法は、取得されたデータを人工ニューラルネットワークの入力に適用するステップをさらに含み得る。
【0014】
このような人工ニューラルネットワークは、例えば、処理ユニット(場合により並列処理ユニット)によって実装される。したがって、この方法は、データストリームに含まれるデータに応じて処理ユニットを構成するステップを含み得る。
【0015】
本発明は、扱われる異なるデータ(又は代表値)のそれぞれの技術的性質が、使用される人工ニューラルネットワーク(それ自体が前述のようにデータによって定義される)に依存し、したがって予め決定されないため、特定のデータのエントロピー符号化に使用されるコンテキストが事前に定義できない(既に示したように、そのような事前の定義は、例えば、規格で与えられ得る)この状況で特に興味深い。
【0016】
しかしながら、既に示したように、本発明は、この状況に限定されず、符号化されるデータ及びエントロピー符号化コンテキストのそれぞれの関連付けが事前に定義できない場合に関心があるものである。したがって、本発明は、異なるアルファベットを使用していくつかの言語で記述されたテキストのエントロピー符号化に有利に使用することができる。アルファベットの記号の数及びその出現確率は、言語ごとに異なり、本発明は、そのような状況において、ある言語に固有の記号又は単語のエントロピー符号化に使用されるコンテキストを指定することを可能にする。
【0017】
一般に、復号方法は、深層学習法又はランダムフォレスト学習法などの機械学習法をさらに含み得る。したがって、データストリームは、この機械学習法の構成のためのデータを含み得、且つ/又は、この機械学習法を実装するように、これらの構成データを用いて処理ユニットを構成するためのステップが提供され得る。
【0018】
一般に、本発明は、ニューラルネットワークに由来するデータを符号化するか、又はニューラルネットワークに提供されるデータを復号するために使用され得る。ニューラルネットワークは、多数の類似のステップを含む処理プロセスとして理解されるべきであり、これらのステップのパラメータのみが互いに異なり、且つ学習プロセスによって設定され、これらのステップは、大規模に並列で実装されるように適合される。したがって、「ニューラルネットワーク」は、入力層又は先行する層に由来するデータの線形フィルタリングを実行する一連の層を指し得、各フィルタリング後、非線形関数(従来の意味ではニューラルネットワーク)の適用が続く。代替として、ニューラルネットワークは、一連のテストを指し得、各テストの結果は、適用される後続のテストを決定するか(ランダムフォレスト)、又は上述の特性を有する他の処理プロセスも指し得る。
【0019】
以下に説明する実施形態によれば、上述のデータのシーケンスは、フィーチャマップのセットを形成する。
【0020】
この場合、第1の可能性によれば、複数の識別子のうちの識別子は、フィーチャマップのセットのフィーチャマップにそれぞれ関連付けられる。この場合、所与のフィーチャマップの要素を取得するために決定されるコンテキストは、所与のフィーチャマップに関連付けられた識別子に基づいて決定されることが規定され得る。
【0021】
第2の可能性によれば、フィーチャマップのセットのフィーチャマップは、フィーチャマップの各要素が位置によって定義される共通の構造を有し、複数の識別子のうちの識別子は、共通の構造における異なる位置にそれぞれ関連付けられ得る。したがって、フィーチャマップの所与の要素を取得するために決定されるコンテキストは、この所与の要素を定義する位置に関連付けられた識別子に基づいて決定されることが規定され得る。
【0022】
本発明は、複数の識別子及びバイナリ要素のシーケンスを含むデータストリームをそれぞれの所定のタイプのデータのシーケンスに復号するための電子装置であって、バイナリ要素のシーケンスを入力として受信するエントロピーデコーダと、複数の識別子のうち、取得されるデータのタイプに関連付けられる識別子に基づいてコンテキストを決定し、且つエントロピーデコーダの出力で前記データを取得するために、決定されたコンテキストでエントロピーデコーダをパラメータ化するように設計された構成モジュールとを含む電子装置も提案する。
【0023】
本発明は、コンピュータプログラムであって、プロセッサによって実行可能な命令を含み、且つこれらの命令がプロセッサによって実行されると、上に提案したような復号方法を実装するように設計されたコンピュータプログラムをさらに提案する。
【0024】
最後に、本発明は、データストリームであって、それぞれの所定のタイプのデータのシーケンスを表し、且つ複数の識別子及びバイナリ要素のシーケンスを含み、各識別子は、エントロピーデコーダがバイナリ要素のシーケンスの一部を入力として受信するとき、このエントロピーデコーダが、この識別子に関連付けられたタイプを有する少なくとも1つのデータを取得するようにパラメータ化されるコンテキストを表す、データストリームを提案する。
【0025】
当然のことながら、本発明の異なる特徴、代替形態及び実施形態は、相互に互換性がないか又は排他的でない限り、様々な組み合わせに従って互いに関連付けられ得る。
【0026】
さらに、本発明の様々な他の特徴は、本発明の非限定的な実施形態を示す図面を参照して行われる添付の説明から明らかになるであろう。
【図面の簡単な説明】
【0027】
【
図1】本発明のフレームワーク内で使用される電子符号化装置を示す。
【
図2】
図1の電子符号化装置によって使用されるフィーチャマップを概略的に示す。
【
図3】
図1の電子符号化装置内で実装される符号化方法のステップを示すフローチャートである。
【
図4】
図1の電子符号化装置によって生成されたデータストリームを示す。
【
図6】
図5の電子復号装置内で実装される復号方法のステップを示すフローチャートである。
【発明を実施するための形態】
【0028】
図1は、エントロピーエンコーダ10を含む電子符号化装置2を示す。
【0029】
この電子符号化装置2は、プロセッサ4(例えば、マイクロプロセッサ)と、並列処理ユニット6、例えばグラフィック処理ユニット、すなわちGPU又はテンソル処理ユニット、すなわちTPUとを含む。
【0030】
プロセッサ4は、制御モジュール5及び前述のエントロピーエンコーダ10を実装するように、(例えば、プロセッサ4によって実行可能であり、且つプロセッサ4に関連付けられたメモリ(図示せず)に格納されたコンピュータプログラム命令によって)プログラムされる。
【0031】
図1に概略的に示されるように、制御モジュール5は、圧縮されるオーディオ又はビデオコンテンツを表すデータP、B、ここではフォーマットデータP及びコンテンツデータBを受信する。
【0032】
フォーマットデータPは、オーディオ又はビデオコンテンツの表現のフォーマットの特性、例えばビデオコンテンツの場合には画像サイズ(ピクセル単位)、フレームレート、輝度情報のバイナリ深度及びクロミナンス情報のバイナリ深度を示す。
【0033】
コンテンツデータBは、オーディオ又はビデオコンテンツの表現(ここでは圧縮されていない)を形成する。例えば、ビデオコンテンツの場合、コンテンツデータは、画像シーケンスの各画像のピクセルごとに、ピクセルの輝度値を表すデータと、ピクセルのクロミナンス値を表すデータとを含む。
【0034】
並列処理ユニット6は、プロセッサ4(例えば、制御モジュール5)によって構成された後、人工ニューラルネットワーク8を実装するように設計される。そのために、並列処理ユニット6は、所与の時点で同じタイプの複数の演算を並列に実行するように設計される。
【0035】
以下に説明するように、人工ニューラルネットワーク8は、オーディオ又はビデオコンテンツを表す値Vを取得することを目的としたコンテンツデータBの処理のフレームワーク内で使用される。
【0036】
代替として、人工ニューラルネットワークと異なる別のタイプの機械学習法、例えば別のタイプの深層学習法又はランダムフォレスト学習法を使用することができる。
【0037】
ここで説明する実施形態では、コンテンツデータBが人工ニューラルネットワーク8の入力に適用されると、人工ニューラルネットワーク8は、代表値Vを出力として生成する。
【0038】
人工ニューラルネットワーク8の入力に適用される(すなわち人工ニューラルネットワーク8の入力層に適用される)コンテンツデータBは、画像のブロック、又は画像成分のブロック(例えば、この画像の輝度若しくはクロミナンス成分のブロック又はこの画像の色成分のブロック)、又はビデオシーケンスの画像、又はビデオシーケンスの画像の成分(例えば、輝度若しくはクロミナンス成分又は色成分)、又はビデオシーケンスの一連の画像も表し得る。
【0039】
例えば、この場合、入力層のニューロン(又はノード)の少なくともいくつかは、それぞれ画像成分のピクセル値を受け取り、前記値は、コンテンツデータBの1つによって表されることが規定され得る。
【0040】
代替として、コンテンツデータBの処理は、例えば、Guo Luらによる上述の論文「DVC:An End-to-end Deep Video Compression Framework」(2019 IEEE/CVF Conference on Computer Vision and Pattern Recognition(CVPR),June 2019)に記載されるように、いくつかの人工ニューラルネットワークの使用を含み得る。
【0041】
人工ニューラルネットワーク8の出力で生成された代表値Vは、ここで、
図2に概略的に示されるようにフィーチャマップFのシーケンスに整理される。ここで、人工ニューラルネットワーク8は、例えば、N個のフィーチャマップFを生成する。
【0042】
各フィーチャマップFは、例えば、2次元構造(又はマトリックス構造)を有する。したがって、ここでの各フィーチャマップFは、H個の行及びW個の列の行列を形成する。
【0043】
所与のフィーチャマップF内の所与の位置にある要素は、人工ニューラルネットワークの出力ノード(又は出力層のノード)によって生成される代表値Vに対応し、この出力ノードは、事前定義された方法でこの所与の位置及びこの所与のフィーチャマップFに関連付けられる。ある可能な実施形態によれば、人工ニューラルネットワーク8は、所与の時点でN個のフィーチャマップのすべてを出力として(すなわちその出力層上で)生成する。別の可能な実施形態によれば、(例えば、画像内の異なる位置に対応する)コンテンツデータBの異なるセットは、異なる時点で人工ニューラルネットワーク8の入力(すなわち入力層)に適用され、人工ニューラルネットワーク8は、これらの異なる時点のそれぞれにおいて、対応するフィーチャマップFを出力として(すなわちその出力層上で)生成する(この場合、人工ニューラルネットワーク8の出力ノードは、単一のフィーチャマップFの異なる位置にそれぞれ関連付けられる)。
【0044】
代替として、人工ニューラルネットワーク8の出力で生成された代表値Vは、代表値Vの順序付けられたシーケンスに整理され得る。人工ニューラルネットワーク8の入力に適用されたコンテンツデータBが画像のあるブロック(又は画像成分のあるブロック)を表す場合、人工ニューラルネットワーク8の出力で生成された代表値Vの順序付けられたシーケンスは、このブロックに関連付けられる。したがって、人工ニューラルネットワーク8によって連続して生成された代表値の異なるシーケンスは、画像の異なるブロック(又は画像の関連する成分の異なるブロック)にそれぞれ関連付けられる。
【0045】
さらに別の代替形態によれば、人工ニューラルネットワーク8の出力で生成された代表値Vは、データの多次元(例えば、M次元)構造内に配置される。次に、この構造の各要素は、構造内のその位置、すなわち上述の例ではM個1組の座標によって識別される。次に、人工ニューラルネットワーク8の所与の出力ノード(すなわち出力層の所与のノード)によって生成された代表値Vは、事前定義された方法でこの出力ノードに関連付けられた構造内の位置(すなわち事前定義された方法でこの出力ノードに関連付けられた座標)によって識別される構造の要素を形成する。
【0046】
人工ニューラルネットワーク8の出力で生成された代表値Vは、エントロピーエンコーダ10の入力に適用される。
【0047】
これらの代表値Vは、例えば、事前定義された順序で適用される。したがって、代表値VがフィーチャマップFの(順序付けられた)シーケンスに整理される場合、異なるフィーチャマップFが(上述のシーケンス順序で)次々に適用され、同じフィーチャマップFの異なる要素(それぞれが1つの代表値に対応する)は、フィーチャマップF内で事前定義されたスキーム(それらの位置)に従って適用される。
【0048】
エントロピーエンコーダ10は、符号化されるシンボルの特定の出現確率にそれぞれ対応するいくつかの統計ソースを符号化するように設計される。そのために、エントロピーエンコーダ10は、所与の統計ソースに関連付けられた特定のコンテキストであって、効果的に符号化されたシンボル(ここでは代表値V)がこの統計ソースの期待確率を満たす場合、エントロピーエンコーダ10が最適なエントロピー符号化を生成する特定のコンテキストでパラメータ化され得る。
【0049】
エントロピーエンコーダ10は、ここで、CABAC(「コンテキスト適応バイナリ算術符号化」)タイプのものである。代替として、それは、別のタイプのエントロピーエンコーダ、例えばハフマンタイプのエンコーダ、算術エンコーダ又はLZW(「Lempel-Ziv-Welch」)エンコーダであり得る。
【0050】
以下に説明するように、エントロピーエンコーダ10は、常に、その時点で符号化される代表値V(人工ニューラルネットワーク8に由来する代表値V)のタイプに依存するコンテキストCで制御モジュール5によってパラメータ化される。
【0051】
代表値VがフィーチャマップFのシーケンスに整理される、ここで説明される事例では、フィーチャマップFの要素のエントロピー符号化のためにエントロピーエンコーダ10をパラメータ化するために制御モジュール5によって選択されるコンテキストCは、例えば、(事前定義された方法で)関連するフィーチャマップF及び/又はフィーチャマップF内の要素の位置に依存し得る。(特定のコンテキストと、あるフィーチャマップ及び/又はそのフィーチャマップ内の位置との関連付けは、例えば、符号化人工ニューラルネットワーク8によって処理された多数の画像に関する、このフィーチャマップ内又はこの位置におけるシンボルの出現確率の以前の統計的測定値を使用して行われる。このような関連付けは、異なる統計ソースのそれぞれを特定のコンテキストで符号化し、したがって圧縮を最大化するために、代表値Vにおいてこれらの統計ソースを分離する目的を有する。)
【0052】
エントロピーエンコーダ10は、バイナリ要素のシーケンス(又はビットのシーケンス)Fnnを出力として生成する。
【0053】
ここで、電子符号化装置2によって実装される符号化方法の例を、
図3を参照して説明する。
【0054】
図3の方法は、符号化プロセス-復号プロセス対を選択するステップE2から始まる。符号化プロセスについて既に示したように、符号化プロセス及び復号プロセスは、それぞれ少なくとも1つの人工ニューラルネットワークを使用する。
【0055】
ここで説明する例では、符号化プロセスは、符号化人工ニューラルネットワークによって実装され、復号プロセスは、復号人工ニューラルネットワークによって実装される。
【0056】
符号化人工ニューラルネットワーク及び復号人工ニューラルネットワークによって形成されるユニット(符号化人工ニューラルネットワーク出力が復号人工ニューラルネットワーク入力に適用される)は、例えば、オートエンコーダを形成する。
【0057】
符号化プロセス-復号プロセス対は、例えば、複数の事前定義された符号化プロセス-復号プロセス対、すなわちここでは複数の符号化人工ニューラルネットワーク-復号人工ニューラルネットワーク対のうちから選択される。
【0058】
符号化プロセス-復号プロセス対は、例えば、電子復号装置(
図5に示され、且つ以下に説明される電子復号装置20など)に使用可能な人工ニューラルネットワークを復号プロセスが使用する符号化プロセス-復号プロセス対のうちから選択され得る。そのために、電子符号化装置は、場合により、(電子復号装置又は専用サーバから)この電子復号装置によってアクセス可能な人工ニューラルネットワークのリストを事前に受信することができる。
【0059】
符号化プロセス-復号プロセス対は、(例えば、電子符号化装置2の図示しないユーザインタフェースを介してユーザによって示された)意図された用途に応じて選択することもできる。例えば、意図された用途がテレビ会議である場合、選択された符号化プロセス-復号プロセス対は、低レイテンシー復号プロセスを含む。他の用途では、選択された符号化プロセス-復号プロセス対は、ランダムアクセス復号プロセスを含む。
【0060】
低レイテンシーのビデオシーケンス復号プロセスでは、ビデオシーケンスの画像は、例えば、直ちに送信及び復号することができる符号化データによって表され、次に、このデータは、ビデオ画像の表示順序で送信することができ、これにより、この場合、符号化と復号との間に1フレームのレイテンシーが確保される。
【0061】
ランダムアクセスビデオシーケンス復号プロセスでは、複数の画像にそれぞれ関連する符号化データは、これらの画像の表示順序と異なる順序で送信され、これにより圧縮の向上が可能となる。次に、他の画像を参照しない符号化画像(いわゆるイントラフレーム)は、定期的に符号化することができ、これにより符号化されたストリーム内のいくつかの場所からビデオシーケンスの復号を開始することが可能となる。
【0062】
そのために、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」を参照することができる。
【0063】
符号化プロセス-復号プロセス対を選択するための様々な基準は、場合により一緒に組み合わせることができる。
【0064】
符号化プロセス-復号プロセス対が選択されると、制御モジュール5は、ステップE4において、並列処理ユニット6が選択された符号化プロセスを実装することができるように並列処理ユニット6の構成に進む。
【0065】
このステップE4は、特に、並列処理ユニット6内において、選択された符号化プロセスによって使用される符号化人工ニューラルネットワーク8のインスタンス生成を含む。
【0066】
このインスタンス生成は、特に、以下のステップ:
- 並列処理ユニット6内において、符号化人工ニューラルネットワークを実装するために必要なメモリスペースを確保するステップ、及び/又は、
- 符号化人工ニューラルネットワーク8を定義する重みΓ及び活性化関数を使用して、並列処理ユニット6をプログラミングするステップ、及び/又は、
- コンテンツデータBの少なくとも一部を並列処理ユニット6のローカルメモリにロードするステップ、
を含み得る。
【0067】
次に、
図3の方法は、符号化プロセスを実装するステップE6、すなわち、ここではコンテンツデータBを符号化人工ニューラルネットワーク8の入力に適用するステップ(又は換言すると、入力としてコンテンツデータBを用いて符号化人工ニューラルネットワーク8を活性化するステップ)を含む。
【0068】
したがって、ステップE6は、代表値Vを生成することを可能にする(ここでは符号化人工ニューラルネットワーク8の出力において)。
【0069】
以下のステップは、電子復号装置(例えば、
図5を参照して以下に説明する電子復号装置20)向けのデータストリームの符号化(すなわち準備)に関する。
【0070】
したがって、この方法は、特に、オーディオ又はビデオコンテンツ表現フォーマットに特有のデータ(ここでは例えば符号化されているビデオシーケンスのフォーマットにリンクされたデータ)を含む第1のヘッダ部分Fcを符号化するステップE8を含む。
【0071】
第1のヘッダ部分Fcを形成するこれらのデータは、例えば、画像サイズ(ピクセル単位)、フレームレート、輝度情報のビット深さ及びクロミナンス情報のビット深さを示す。これらのデータは、例えば、上述のフォーマットデータPに基づいて構築される(潜在的な再フォーマット後)。
【0072】
制御モジュール5は、ステップE10で、復号人工ニューラルネットワーク(ステップE2で選択された符号化プロセス-復号プロセス対に関連する)を示すデータRを含む第2のヘッダ部分の符号化を実行する。
【0073】
第1の可能な実施形態によれば、これらの指示データRは、復号人工ニューラルネットワークの識別子を含み得る。
【0074】
このような識別子は、(複数の復号人工ニューラルネットワーク、例えば電子復号装置で利用可能なすべての復号人工ニューラルネットワークのうち)上述の符号化人工ニューラルネットワーク8に対応する復号人工ニューラルネットワークを示し、したがって、そのような復号人工ニューラルネットワークは、代表値Vを復号するために使用される必要がある。
【0075】
すなわち、そのような識別子は、(特に電子符号化装置及び電子復号装置によって共有される)慣例により、例えば電子復号装置が使用可能な(又は電子復号装置によってアクセス可能な)すべての復号人工ニューラルネットワークのうちからこの復号人工ニューラルネットワークを定義する。既に示したように、電子符号化装置2は、場合により、(電子復号装置又は専用サーバから)電子復号装置によってアクセス可能な人工ニューラルネットワークのリストを事前に受信することができる。
【0076】
第2の可能な実施形態によれば、これらの指示データRは、復号人工ニューラルネットワークの記述データを含み得る。
【0077】
(上述の符号化人工ニューラルネットワーク8に対応する)復号人工ニューラルネットワークは、例えば、MPEG-7 Part 17などの規格に従って又はJSONなどのフォーマットを用いて、これらの記述データ(又は復号人工ニューラルネットワークを符号化するデータ)によって符号化(すなわち表現)される。
【0078】
そのために、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」を参照することができる。
【0079】
指示データRは、復号人工ニューラルネットワークが人工ニューラルネットワークの所定のセットに属するかどうか(この場合、上述の第1の可能な実施形態が使用される)、又は復号人工ニューラルネットワークがデータストリームで符号化されているかどうか、すなわち上述の記述データによって表現されているかどうか(この場合、上述の第2の可能な実施形態が使用される)を示す標識を含むことも規定され得る。
【0080】
図3の方法は、電子復号装置が復号人工ニューラルネットワークを使用して復号プロセスを実装する可能性を決定するステップE12に続く。
【0081】
制御モジュール5は、例えば、電子復号装置が、この復号プロセスを実装するのに適したモジュール又は電子復号装置によるこの復号プロセスの実装に適したソフトウェア(このソフトウェアが電子復号装置のプロセッサによって実行される場合)を含むかどうかを(潜在的に電子符号化装置2と電子復号装置との間の以前のやり取りを用いて)決定することにより、この可能性を決定する。
【0082】
制御モジュール5が、電子復号装置が復号プロセスを実装することが可能であると決定した場合、方法は、以下に説明するステップE16に続く。
【0083】
制御モジュール5が、電子復号装置が復号プロセスを実装することが不可能であると決定した場合、方法は、(ステップE16に進む前に)以下に説明するステップE14を実行する。
【0084】
代替として、(ステップE16を実行する前に)ステップE14を実行するか否かの選択は、別の基準、例えば電子符号化装置2内に格納された(及び場合により電子符号化装置2のユーザインタフェースを介してユーザによって調整可能な)専用標識に応じて又は(例えば、電子符号化装置2のユーザインタフェースを介して得られる)ユーザによって行われる選択に応じて行うことができる。
【0085】
制御モジュール5は、ステップE14において、電子復号装置のプロセッサによって実行可能なコンピュータプログラムExe(又はコード)を含む第3のヘッダ部分をデータストリームで符号化する。(電子復号装置内でのコンピュータプログラムExeの使用は、
図5を参照して以下に説明する。)
【0086】
電子復号装置内での実行に適合させるために、コンピュータプログラムは、例えば、ライブラリ内において、電子復号装置のハードウェア構成に関連する情報(例えば、電子符号化装置2と電子復号装置との間の以前のやり取り中に受信した情報)に応じて選択される。
【0087】
次に、ステップE16では、制御モジュール5は、エントロピー符号化の構成を実行する。
【0088】
この構成ステップ16中、制御モジュール5は、それによってエントロピー符号化を実行する統計ソースのセットを決定する。制御モジュール5は、例えば、エントロピー符号化に使用される統計ソース(したがってコンテキスト)の数を決定する。
【0089】
そのために、制御モジュール5は、例えば、上に示したように生成された代表値Vを分析し、そのとき、その中にいくつの異なる統計ソースが含まれているかを識別することができる。別の可能性によれば、制御モジュール5は、符号化及び/又は復号中に許容されることが望まれる複雑さに応じて統計ソースの数を選択し得る。
【0090】
したがって、制御モジュール5は、代表値Vのセットによって形成された信号を、事前定義された基準に従い、サブ信号の数(例えば、所定の数以下又は代替としてその数に制限なく)に細分化することができる。
【0091】
以下では、代表値Vによって形成される信号において識別される異なる統計ソースの数(すなわち代表値Vのエントロピー符号化中にエントロピーエンコーダがパラメータ化されるコンテキストの数)は、Kで示される。例えば、K=160である。
【0092】
ここで説明する例では、制御モジュール5は、フィーチャマップFと同数のサブ信号又はフィーチャマップF内の場所(すなわち別個の位置)と同数のサブ信号を生成することができる。場合により、制御モジュール5は、同じ統計分布(又は非常に類似した統計分布)を有するサブ信号をマージできることがさらに規定され得る。
【0093】
したがって、制御モジュール5は、構成ステップE16中、何れの統計ソース(したがって何れのコンテキスト)が代表値Vの各タイプ(すなわちここではフィーチャマップの各要素)に関連付けられるかも決定する。
【0094】
例えば、制御モジュール5がフィーチャマップFと同数のサブ信号を生成する場合、フィーチャマップFの1つの要素に関連付けられた(すなわちこの要素のエントロピー符号化をパラメータ化するために使用される)コンテキストは、関連するフィーチャマップFに依存する。
【0095】
一方、制御モジュール5が各フィーチャマップF内の場所と同数のサブ信号を生成する場合、フィーチャマップFの1つの要素に関連付けられた(すなわちこの要素のエントロピー符号化をパラメータ化するために使用される)コンテキストは、フィーチャマップFにおけるこの要素の場所に依存する。
【0096】
次に、
図3の方法は、ステップE16で決定されたエントロピーエンコーダ構成を表すデータを符号化するステップに続く。
【0097】
したがって、
図3の方法は、まず、エントロピー符号化に使用されるコンテキストのセットを示す情報I1を含む第4のヘッダ部分を符号化するステップE18を含む。本明細書で説明する例では、情報I1は、エントロピー符号化に使用されるコンテキストの数Kを示す。
【0098】
次に、
図3の方法は、エントロピー符号化に使用されるコンテキストごとに、関連するコンテキストをパラメータ化するためのデータIinitを含む第5のヘッダ部分を符号化するステップE20を含む。
【0099】
使用されるエントロピー符号化がCABACタイプである、ここで説明する事例では、所与のコンテキストに関連付けられたパラメータ化データIinitは、例えば、Recommendation ITU-T H.265,part“9.3.2.2 Initialization process for context variables”に記載されるように、このコンテキストを初期化するためのデータである。
【0100】
他の実施形態では、所与のコンテキストに関連付けられたパラメータ化データは、エントロピー符号化中に関連するコンテキストに使用される確率モデルを示すデータであり得る。
【0101】
次に、
図3の方法は、代表値Vのタイプごとに、このタイプを有する代表値Vのエントロピー符号化が行われるコンテキストを示すデータI2を含む第6のヘッダ部分を符号化するステップE22を含む。
【0102】
説明した例では、既に示したように、制御モジュール5は、異なるフィーチャマップFのそれぞれに対する(サブ信号を形成する各フィーチャマップF)又はフィーチャマップFで定義された異なる位置(又は場所)のそれぞれに対する(要素は、サブ信号を形成する所与の位置を有する)異なるコンテキストの割り当てを、既に示したように選択する。
【0103】
したがって、ここで、データI2は、
- 値が0である場合、コンテキストが各フィーチャマップFに関連付けられることを示し、値が1である場合、コンテキストがフィーチャマップFの各位置に対して使用されることを示す標識I2_mode、
- 異なるタイプの代表値Vに使用されるコンテキストをそれぞれ示す複数の識別子I2_map[i]、
を含むことが提案される。
【0104】
標識I2_modeが0に等しい場合、異なるタイプの代表値は、異なるフィーチャマップFに対応する。標識I2_modeが1に等しい場合、異なるタイプの代表値は、フィーチャマップF内の異なる位置に対応する。
【0105】
以下では、(特に明記しない限り)制御モジュール5が異なるフィーチャマップに対して異なるコンテキストの割り当てを選択する事例、すなわち標識I2_modeが0に等しい事例について説明する。
【0106】
図3の方法は、異なるコンテキストに関連する上述のパラメータ化データを用いて、エントロピーエンコーダ10を(制御モジュール5によって)初期化するステップE24に続く。このタイプの初期化については、上述の文献(Recommendation ITU-T H.265,part“9.3.2.2 Initialization process for context variables”)に記載されている。
【0107】
次に、
図3の方法は、エントロピーエンコーダ10による代表値Vのエントロピー符号化のステップE26を含み、エントロピーエンコーダ10は、常に、処理されている代表値Vのタイプに関して、(上に記載したように行われた選択に基づいて)使用されるコンテキストCで(制御モジュール5によって)パラメータ化される。
【0108】
例えば、本明細書で説明する例では、所与のフィーチャマップFに含まれる代表値Vをエントロピー符号化するために、制御モジュール5は、この所与のフィーチャマップFに関連付けられたコンテキストCでエントロピーエンコーダ10をパラメータ化し、このフィーチャマップFの要素をエントロピーエンコーダ10の入力に連続的に(事前定義された順序で)適用する。
【0109】
したがって、エントロピーエンコーダ10は、オーディオ又はビデオコンテンツを圧縮形式で表すバイナリ要素のシーケンスFnnを出力として生成する。
【0110】
ステップE26は、場合により、上述の論文「Context-based adaptive binary arithmetic coding in the H.264/AVC video compression standard」に記載されるように、代表値Vを二値化するサブステップを含み得る(したがってエントロピー符号化前に)。この二値化ステップの目的は、多数の値を取ることができる代表値Vをバイナリ要素のシーケンスに変換することであり、各バイナリ要素は、エントロピー符号化によって符号化される(及びこの場合、コンテキストは、各バイナリ要素の符号化に関連付けられる)。
【0111】
特に、ステップE6が、圧縮されるオーディオ又はビデオコンテンツの一部のみの処理を可能にする場合(例えば、ステップE6が、圧縮されるビデオシーケンスのブロック、成分又は画像の処理を実行する場合)、ステップE6(コンテンツの連続部分の代表値を取得するため)及びステップE26(これらの代表値のエントロピー符号化を実行するため)の実施を繰り返すことが可能である。
【0112】
したがって、プロセッサ4は、ステップE28において、ヘッダFet及びバイナリ要素のシーケンスFnnを含む完全なデータストリームを構築することができる。
【0113】
完全なデータストリームは、ヘッダFet及びバイナリ要素のシーケンスFnnが個々に識別可能であるように構築される。
【0114】
ある可能な実施形態によれば、ヘッダFetは、完全なデータストリーム内で開始されるバイナリ要素シーケンスFnnの標識を含む。この標識は、例えば、ビット単位での、完全なデータストリームの先頭からのバイナリ要素のシーケンスFnnの先頭の場所である。(すなわち、この場合、ヘッダは、所定の固定長を有する。)
【0115】
ヘッダFet及びバイナリ要素のシーケンスFnnを識別するための他の手段は、代替として、例えばマーカ(すなわちバイナリ要素のシーケンスFnnの先頭を示すために使用されるビットの組み合わせであり、その使用は、データストリームの残りの部分又は少なくともヘッダFet内で禁止される)として企図され得る。
【0116】
ステップE28で構築されたデータストリームは、「パケットトランスポートシステム」又は「バイトストリーム」フォーマットなど、それ自体が知られている伝送フォーマットでカプセル化され得る。
【0117】
(例えば、RTPプロトコルによって提案される)「パケットトランスポートシステム」フォーマットの場合、データは、識別可能なパケットによって符号化され、且つ通信ネットワーク上で伝送される。ネットワークは、ネットワーク層によって提供されるパケット識別情報を使用して、データ(画像、画像群並びにここではヘッダFet及びバイナリ要素のシーケンスFnn)の境界を簡単に識別することができる。
【0118】
「バイトストリーム」フォーマットでは、具体的には、パケットが存在せず、ステップE28の構築は、一意のバイナリ組み合わせ(0x00000001など)がデータ間の境界を識別できるようにするネットワーク抽象化層(NAL)ユニットの使用などのさらなる手段を使用して、関連するデータの境界(各画像に対応するストリームの部分間の境界及びここではヘッダFetとバイナリ要素のシーケンスFnnとの間の境界など)を識別することを可能にする必要がある。
【0119】
次に、ステップE28で構築された完全なデータストリームは、ステップE30において、以下に説明する電子復号装置20に向けて(図示しない通信手段によって及び/又は少なくとも1つの通信ネットワークを介して)送られるか、又は(後に伝送するために又は代替として例えば電子符号化装置自体内で後に復号するために、この場合、電子符号化装置は、
図5を参照して以下に説明する復号方法20をさらに実装するように設計される)電子符号化装置2内に格納され得る。
【0120】
したがって、このデータストリームは、
図4に示されるように、ヘッダFet及びバイナリ要素のシーケンスFnnを含む。
【0121】
上記から明らかなように、ヘッダFetは、
- オーディオ又はビデオコンテンツ表現フォーマットのデータ特性を含む第1の部分Fc、
- 復号人工ニューラルネットワークを示すデータR(又は一般に復号に使用される機械学習法を示すデータ)を含む第2の部分、
- 場合により、電子復号装置のプロセッサによって実行可能なコンピュータプログラムExeを含む第3の部分、
- エントロピー符号化に使用されるコンテキストのセットを示す情報I1を含む第4の部分、
- エントロピー符号化に使用されるコンテキストごとに、関連するコンテキストをパラメータ化するためのデータIinitを含む第5の部分、
- 以下に説明するように、特定のタイプのデータのエントロピー符号化のためにエントロピーエンコーダがパラメータ化され、したがってエントロピーデコーダがバイナリ要素のシーケンスの一部を入力として受信するとき、このタイプのデータを取得するためにエントロピーデコーダがパラメータ化されるコンテキストをそれぞれ表す複数の識別子I2_map[i]を含む第6の部分I2、
を含む。
【0122】
考えられる代替形態によれば、エントロピー符号化に使用されるコンテキストのセットを示す情報I1を伝送しないように規定され得、この場合、エントロピーエンコーダ及びエントロピーデコーダは、事前に(慣例によって)定義されたいくつかのコンテキストを使用することができる。
【0123】
図5は、エントロピーデコーダ23を使用する電子復号装置20を示す。
【0124】
この電子復号装置20は、受信ユニット21、プロセッサ24(例えば、マイクロプロセッサ)及び並列処理ユニット26、例えばグラフィック処理ユニット、すなわちGPU又はテンソル処理ユニット、すなわちTPUを含む。
【0125】
受信ユニット21は、例えば、通信回路(無線周波数通信回路など)であり、電子符号化装置2などの外部電子装置からデータ(特にここでは上記のデータストリーム)を受信すること及びこれらのデータをプロセッサ24(例えば、受信ユニット21は、バスによってプロセッサ24に接続される)に通信することを可能にする。
【0126】
電子復号装置20は、ストレージユニット22、例えばメモリ(場合により書き換え可能な不揮発性メモリ)又はハードドライブも含む。ストレージユニット22は、プロセッサ24とは別個の要素として
図5に示されているが、代替として、ストレージユニット22は、プロセッサ24に統合され得る(すなわち含まれ得る)。
【0127】
この場合、プロセッサ24は、例えば、ストレージユニット22に格納されたコンピュータプログラムの複数の命令を連続して実行するように適合される。
【0128】
これらの命令の一部は、プロセッサ24によって実行されると、特に後述する機能を有する制御モジュール25を実装することを可能にする。代替として、制御モジュール25の機能のいくつかは、後述するように、ステップE52において、ヘッダFet内で識別された命令をプロセッサ24によって実行することによって実装され得る。
【0129】
ストレージユニット22に格納された命令の別の部分は、プロセッサ24によって実行されると、前述のエントロピーデコーダ23を実装することを可能にする。代替として、エントロピーデコーダ23は、後述するように、ステップE52において、ヘッダFet内で識別された命令をプロセッサ24によって実行することによって実装され得る。
【0130】
エントロピーデコーダ23は、
図1を参照して上に説明した電子符号化装置2のエントロピーエンコーダ10によって実行されるエントロピー符号化の逆であるエントロピー復号を実行するように設計される。したがって、エントロピーデコーダ23は、ここで、CABAC(「コンテキスト適応バイナリ算術符号化」)タイプのエントロピーデコーダである。代替として、それは、別のタイプのエントロピーエンコーダ、例えばハフマンタイプのデコーダ、算術デコーダ又はLZW(「Lempel-Ziv-Welch」)デコーダであり得る。
【0131】
並列処理ユニット26は、プロセッサ24(ここでは正確には制御モジュール25)によって構成された後、人工ニューラルネットワーク28を実装するように設計される。そのために、並列処理ユニット26は、所与の時点で同じタイプの複数の演算を並列に実行するように設計される。
【0132】
一般に、並列処理ユニット26は、例えば、データストリーム内で受信された機械学習法(例えば、深層学習法又はランダムフォレスト学習法など)を構成するためのデータを用いて、プロセッサ24によって構成された後、そのような機械学習法を実装するように設計される。
【0133】
図5に概略的に示すように、プロセッサ24は、(ここでは受信ユニット21を介して)ヘッダFet及びバイナリ要素のシーケンスFnnを含むデータストリームを受信する。
【0134】
以下に説明するように、人工ニューラルネットワーク28は、バイナリ要素のシーケンスFnnのエントロピー復号によって取得されるデータの処理のフレームワーク内で使用され、このデータ処理は、最初のオーディオ又はビデオコンテンツBに対応するオーディオ又はビデオコンテンツを取得することを目的とする。
【0135】
ストレージユニット22は、複数のパラメータセットを格納することができ、各パラメータセットは、復号人工ニューラルネットワークを定義する。以下で説明するように、プロセッサ24は、この場合、これらのパラメータセットのうちの特定のパラメータセットを用いて、並列処理ユニット26が、次に、この特定のパラメータセットによって定義される人工ニューラルネットワークを実装することができるように、並列処理ユニット26を構成することができる。
【0136】
ストレージユニット22は、特に、ランダムアクセスデコーダを形成する第1の人工ニューラルネットワークを定義する第1のパラメータセット及び/又は低レイテンシーデコーダを形成する第2の人工ニューラルネットワークを定義する第2のパラメータセットを格納し得る。
【0137】
この場合、電子復号装置20は、コンテンツへのランダムアクセスが望まれる状況及びコンテンツが遅延なく表示されるべき状況の両方に対して、事前に復号オプションを有する。
【0138】
ここで、
図6を参照して、電子復号装置20内に実装され、一方ではエントロピーデコーダ23を使用し、他方では並列処理ユニット26によって実装される人工ニューラルネットワーク28を使用する復号方法について説明する。
【0139】
図6の方法は、ヘッダFet及びバイナリ要素のシーケンスFnnを含むデータストリームを(電子復号装置20、正確にはここでは受信ユニット21によって)受信するステップE50から始まる。受信ユニット21は、制御モジュール25による処理のために、受信したデータストリームをプロセッサ24に伝送する。
【0140】
次に、制御モジュール25は、例えば、(ステップE28の説明で既に述べた)バイナリ要素シーケンスの先頭の標識により、受信データストリーム内のヘッダFet及びバイナリ要素のシーケンスFnnを識別するステップE52に進む。
【0141】
制御モジュール25は、ステップE52において、(
図4を参照して上に説明したように)ヘッダFetの異なる部分も識別することができる。
【0142】
ステップE52において、第1のデータ内で実行可能命令(コンピュータプログラムExeの命令など)が識別(すなわち検出)される場合、制御モジュール25は、ステップE54において、ヘッダデータの処理(及び場合によりエントロピー復号)の(後述の)ステップの少なくともいくつかを実装するために、これらの実行可能命令の実行を開始し得る。これらの命令は、プロセッサ24又は代替として電子復号装置20内でインスタンス生成された仮想マシンによって実行され得る。
【0143】
図6の方法は、オーディオ又はビデオコンテンツ表現フォーマットの特徴を取得するように、このフォーマットの特徴であるデータFcを復号するステップE56に続く。例えば、ビデオコンテンツの場合、データ部分Fcの復号は、画像サイズ(ピクセル単位)、及び/又はフレームレート、及び/又は輝度情報のバイナリ深度、及び/又はクロミナンス情報のバイナリ深度を取得することを可能にする。
【0144】
次に、制御モジュール25は、使用される復号人工ニューラルネットワークを示すデータRを復号するステップE58に進む。
【0145】
第1の可能性によれば、既に示したように、これらのデータRは、例えば、人工ニューラルネットワークの所定のセット内で復号人工ニューラルネットワーク28を示す識別子である。
【0146】
この所定のセットは、例えば、電子復号装置20によってアクセス可能な復号人工ニューラルネットワークのセット、すなわち(上に示したように)それに関して電子復号装置20が、関連する人工ニューラルネットワークを定義するパラメータのセットを格納するか、又は(以下に説明するように)サーバなどのリモート電子機器に接続することにより、このパラメータのセットにアクセスし得る人工ニューラルネットワークのセットである。
【0147】
この場合、制御モジュール25は、例えば、ストレージユニット22において、復号された識別子に関連付けられたパラメータのセット(このパラメータのセットは、復号された識別子によって識別される人工ニューラルネットワークを定義する)の読み取りに進み得る。
【0148】
代替として(又は復号された識別子によって識別される人工ニューラルネットワークに関してストレージユニット22にパラメータのセットが格納されていない場合)、制御モジュール25は、パラメータのセットに対する要求をリモートサーバに伝送し(この要求は、例えば、復号された識別子を含む)、且つ復号された識別子によって識別される人工ニューラルネットワークを定義するパラメータのセットを応答として受信することができる。
【0149】
第2の可能な実施形態によれば、データRは、復号人工ニューラルネットワーク28を記述するデータRcである。
【0150】
既に示したように、これらの記述データ(又は符号化データ)は、例えば、MPEG-7 part 17などの規格に従って又はJSONなどのフォーマットを用いて符号化される。
【0151】
これらの記述データの復号は、バイナリ要素のシーケンスFnnから(エントロピー復号によって)取得されたデータを復号するために使用される人工ニューラルネットワークを定義するパラメータを取得することを可能にする。
【0152】
いくつかの実施形態では、上述の第1の可能性又は第2の可能性の使用は、既に示したように、データRにも含まれる標識に依存する。
【0153】
何れの選択肢が使用されても、使用される復号人工ニューラルネットワークを示すデータRの復号は、(ここでは制御モジュール25が)復号人工ニューラルネットワーク28のフィーチャを決定することを可能にする。したがって、例えば、本明細書に記載する例では、制御モジュール25は、復号人工ニューラルネットワーク28の入力で期待されるフィーチャマップの数N及びこれらのフィーチャマップのサイズH、Wを決定する。実際、上に説明したように(例えば、ステップE2の説明を参照されたい)、符号化人工ニューラルネットワーク8の出力層に対応する復号人工ニューラルネットワーク28の入力層、フィーチャマップFの各要素は、所定の方法で復号人工ニューラルネットワークの入力ノード(又は入力層のノード)に関連付けられる。したがって、フィーチャマップFの数及びサイズは、復号人工ニューラルネットワーク28のフィーチャ及び上述のデータFc(特に画像サイズを含む)などの特定のヘッダデータにリンクされる。
【0154】
次に、制御モジュール25は、ステップE60において、並列処理ユニット26が復号人工ニューラルネットワーク28(又は一般に機械学習法、例えば代替として別の深層学習法若しくはランダムフォレスト学習法)を実装することができるように、復号人工ニューラルネットワーク28を定義するパラメータ(ステップE58で取得されたパラメータ)又は一般に使用される機械学習法を定義するパラメータを用いた並列処理ユニット26の構成に進む。
【0155】
この構成ステップE60は、特に、ここではステップE58で取得されたパラメータを使用して、並列処理ユニット26内での復号人工ニューラルネットワーク28のインスタンス生成を含む。
【0156】
このインスタンス生成は、特に、以下のステップ:
- 並列処理ユニット26内において、復号人工ニューラルネットワーク28を実装するために必要なメモリスペースを確保するステップ、及び/又は、
- 復号人工ニューラルネットワーク28を定義するパラメータ(例えば、重みΓ’及び活性化関数を含む)(ステップE58で取得されたパラメータ)を使用して、並列処理ユニット26をプログラミングするステップ、
を含み得る。
【0157】
次に、制御モジュール25は、ステップE62において、エントロピーデコーダ23内で使用可能なコンテキストのセットを示す(ここではエントロピーデコーダ23内で使用可能なコンテキストの数Kを示す)情報I1の復号に進む。既に示したように、例えばK=160である。
【0158】
次に、制御モジュール25は、ステップE64において、使用されるコンテキストのセット(このセットは、ステップE62で復号された情報I1のために決定される)の異なるコンテキストにそれぞれ関連するパラメータ化データIinitの復号に進む。
【0159】
次に、制御モジュール25は、(ステップE64で復号された)関連するコンテキストのパラメータ化データIinitを使用して、エントロピーデコーダ23内で使用可能な各コンテキストを初期化するステップE66を実装することができる。
【0160】
より正確には、エントロピーエンコーダ23は、ここで、適応型であり、各コンテキストは、このコンテキストに関連するパラメータ化データIinitによって定義される確率モデルを用いて初期化される。
【0161】
代替として、エントロピーデコーダ23が各コンテキストに対して固定確率モデルを使用する場合、制御モジュール25は、ステップE66において、エントロピーデコーダによって使用可能な各コンテキストを、このコンテキストに関連するパラメータ化データIinitによって定義される確率モデルを用いて構成する。
【0162】
次に、制御モジュール25は、エントロピー復号によって取得されるデータのタイプごとに、このタイプを有するデータのエントロピー符号化が行われ、したがってエントロピーエンコーダ23が、このデータのエントロピー復号のためにパラメータ化される必要があるコンテキストを示すデータI2を復号するステップE68を実行する。
【0163】
本明細書に記載する例では、制御モジュール25は、まず、値が0である場合、コンテキストが各フィーチャマップFに関連付けられることを示し、値が1である場合、コンテキストがフィーチャマップFの各位置に対して使用されることを示す標識I2_modeを復号する(すなわちここでは参照する)。
【0164】
したがって、標識I2_modeの値、数K及びフィーチャマップのサイズH、Wに応じて、制御モジュール25は、エントロピーデコーダ23がバイナリ要素のシーケンスFnnの一部を入力として受信するとき、このタイプのデータを取得するためにエントロピーデコーダ23がパラメータ化される必要があるコンテキストをそれぞれ表す識別子I2_map[i]を復号する(すなわちここではデータストリームを読み込む)。
【0165】
例えば、標識I2_modeが0に等しい場合、制御モジュール25は、N個のフィーチャマップFのそれぞれについて、このフィーチャマップFに関連するデータ(ここでは代表値V)を取得するためにエントロピーデコーダ23がパラメータ化される必要があるコンテキストを表す識別子I2_map[i]を復号する(又は読み取る)。すなわち、この場合、データのタイプは、このデータが属するフィーチャマップFによって定義される(このデータは、ここで、代表値Vである)。
【0166】
標識I2_modeが1に等しい場合、制御モジュール25は、各フィーチャマップF内のW×H個の位置(又は場所)のそれぞれについて、この位置にあるデータ(ここでは代表値V)を取得するためにエントロピーデコーダ23がパラメータ化される必要があるコンテキストを表す識別子I2_map[i]を復号する(又は読み取る)。すなわち、この場合、データのタイプは、関連するフィーチャマップF内のこのデータ(ここでは代表値V)の位置によって定義される。
【0167】
期待データのシーケンスの各データについて(すなわちここでは復号人工ニューラルネットワーク28の入力に適用される代表値Vのそれぞれについて)、ステップE70において、制御モジュール25は、
- このデータのタイプに関連付けられた識別子I2_map[i]に基づいて、このデータを復号するために使用されるコンテキストを決定し、
- そのように決定されたコンテキストCでエントロピーデコーダ23をパラメータ化し、及び
- エントロピーデコーダ23が、ステップE26においてエントロピー符号化によって符号化されたものと同一の期待データ(ここでは代表値V)を出力として生成するように、バイナリ要素のシーケンスFnnの一部を(これらのバイナリ要素を受信した順序で)エントロピーデコーダ23の入力に適用する。
【0168】
既に示したように(上記のステップE58の説明を参照されたい)、制御モジュール25は、フィーチャマップの数N及びサイズH、Wを以前に決定しており、したがってエントロピー復号ステップE70中に取得される代表値V(又は期待データ)の数を知っている。さらに、ステップE26の説明で述べたように、異なる代表値Vは、事前定義された順序でエントロピー符号化によって符号化され、したがって、代表値V(期待データ)は、この同じ事前定義された順序で復号される。
【0169】
既に説明した内容によれば、標識I2_modeが0に等しい場合、所与のフィーチャマップFの要素(すなわち代表値V)を復号するために決定されるコンテキストCは、したがって、この所与のフィーチャマップFに関連付けられた識別子I2_map[i]に基づいて決定される(この場合、このデータを含むフィーチャマップに対応するデータのタイプ)。
【0170】
同様に、標識I2_modeが1に等しい場合、フィーチャマップFの所与の要素(すなわち代表値V)を復号するために決定されるコンテキストCは、フィーチャマップ内のこの所与の要素の位置に関連付けられた識別子I2_map[i]に基づいて決定される(この場合、データの位置に対応するデータのタイプ)。
【0171】
したがって、エントロピーデコーダ23は、ステップE70において、期待データシーケンス、すなわちここではそれぞれの値Vのセットを生成する。
【0172】
次に、プロセッサ24(ここではエントロピーエンコーダ23の出力で直接的に又は代替として制御モジュール25を介して)は、ステップE72において、代表値Vが少なくとも部分的に人工ニューラルネットワーク28を使用する復号プロセスによって処理されるように、並列処理ユニット26によって実装される人工ニューラルネットワーク28に対してこれらのデータを適用(すなわち提示)することができる。
【0173】
ここで説明する例では、人工ニューラルネットワーク28は、代表値Vを入力として受信し、オーディオ又はビデオ再生装置での再生に適合した符号化コンテンツの表現Iを出力として生成する。すなわち、代表値V(ここではフィーチャマップFの形式における)が人工ニューラルネットワーク28の入力層に適用され、人工ニューラルネットワーク28の出力層が符号化コンテンツの上述の表現Iを生成する。したがって、ビデオコンテンツ(画像又は画像のシーケンスを含む)の場合、人工ニューラルネットワーク28は、出力として(すなわちその出力層上で)画像の少なくとも1つの行列表現Iを生成する。
【0174】
上述のステップE6における符号化について既に理解されるように、フィーチャマップFの要素(すなわち代表値V)と入力ノード(又は入力層のノード)との関連付けは、事前に定義される。
【0175】
特定の実施形態では、(例えば、ブロック又は画像に対応する)特定の代表値Vを処理するために、人工ニューラルネットワーク28は、例えば、先行するブロック又は先行する画像に対応する以前のデータ(ここでは前の代表値V)の処理中、人工ニューラルネットワーク28の出力で生成されたデータの少なくともいくつかを入力として受信することができる。この場合、人工ニューラルネットワーク28の出力で生成されたデータを人工ニューラルネットワーク28の入力に再注入するステップE74に進む。
【0176】
さらに、他の可能な実施形態によれば、復号プロセスは、コンテンツデータBの処理について既に上述したように、複数の人工ニューラルネットワークを使用し得る。
【0177】
次に、制御モジュール25は、ステップE76において、人工ニューラルネットワーク28によるバイナリ要素のシーケンスFnnの処理が完了したかどうかを決定する。
【0178】
否定的決定(N)の場合、この方法は、ステップE70にループして、バイナリ要素のシーケンスFnnの後続の部分のエントロピー復号を実行し、(このエントロピー復号によって生成された)他の代表値Vを人工ニューラルネットワーク28に適用する。
【0179】
肯定的決定(P)の場合、この方法は、ステップE78で終了する。
【国際調査報告】