(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2023-11-21
(54)【発明の名称】サブネットワークを含むニューラルネットワークを用いてピクチャを符号化又は復号する方法及び機器
(51)【国際特許分類】
H04N 19/59 20140101AFI20231114BHJP
H04N 19/85 20140101ALI20231114BHJP
G06N 3/0455 20230101ALI20231114BHJP
G06N 3/0464 20230101ALI20231114BHJP
【FI】
H04N19/59
H04N19/85
G06N3/0455
G06N3/0464
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2023525968
(86)(22)【出願日】2020-12-18
(85)【翻訳文提出日】2023-04-27
(86)【国際出願番号】 EP2020087334
(87)【国際公開番号】W WO2022128139
(87)【国際公開日】2022-06-23
(81)【指定国・地域】
(71)【出願人】
【識別番号】503433420
【氏名又は名称】華為技術有限公司
【氏名又は名称原語表記】HUAWEI TECHNOLOGIES CO.,LTD.
【住所又は居所原語表記】Huawei Administration Building, Bantian, Longgang District, Shenzhen, Guangdong 518129, P.R. China
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】アルシナ,エレナ アレクサンドロブナ
(72)【発明者】
【氏名】ガオ,ハン
(72)【発明者】
【氏名】エセンリク,セミ
【テーマコード(参考)】
5C159
【Fターム(参考)】
5C159LA00
5C159LB05
(57)【要約】
本開示は、複数のサブネットワークを含むニューラルネットワークを用いてピクチャを符号化する方法及びニューラルネットワークを用いてピクチャを表すビットストリームを復号する方法に関する。復号用のニューラルネットワークも同様に複数のサブネットワークを含むことができる。エンコーダのサブネットワークは1つ以上のダウンサンプリング層を含み、デコーダのサブネットワークは1つ以上のアップサンプリング層を含む。対応するエンコーダとデコーダについて同様に説明する。
【特許請求の範囲】
【請求項1】
ニューラルネットワーク(NN)を使用してピクチャを符号化する方法であって、前記NNが少なくとも2つのサブネットワークを含み、前記少なくとも2つのサブネットワークのうちの少なくとも1つのサブネットワークが少なくとも2つのダウンサンプリング層を含み、前記少なくとも1つのサブネットワークが、少なくとも1つの次元でサイズS
1を持つ行列を表す入力にダウンサンプリングを適用し、前記方法は、
少なくとも2つのダウンサンプリング層を含む前記少なくとも1つのサブネットワークで前記入力を処理する前に、前記入力に再スケーリングを適用するステップであって、前記再スケーリングが、S
-
1が前記少なくとも1つのサブネットワークの結合ダウンサンプリング比R
1の整数倍になるように、前記少なくとも1つの次元のサイズS
1をS
-
1に変更することを含む、ステップと、
前記再スケーリングの後、少なくとも2つのダウンサンプリング層を含む前記少なくとも1つのサブネットワークにより前記入力を処理し、サイズS
2の出力を提供するステップであって、S
2はS
1より小さい、ステップと、
前記NNを使用して前記ピクチャを処理した後、ビットストリームを出力として提供するステップと、
を含む方法。
【請求項2】
前記NNが以下:
【数80】
を含み、各々が少なくとも2つのダウンサンプリング層を含み、前記方法は、さらに、
少なくとも1つの次元でサイズS
kを持つ行列を表す入力をサブネットワークkで処理する前に、前記サイズS
kが前記サブネットワークの前記結合ダウンサンプリング比R
kの整数倍でない場合、前記入力に再スケーリングを適用するステップであって、前記再スケーリングは、前記少なくとも1つの次元のサイズS
kを以下:
【数81】
になるように変更することを含む、ステップ、
を含む請求項1に記載の方法。
【請求項3】
前記サブネットワークのうちの少なくとも2つの各々が、出力としてサブビットストリームを提供する、請求項1又は2に記載の方法。
【請求項4】
前記サイズS
kを持つ前記入力に前記再スケーリングを適用する前に、S
kが前記サブネットワークkの前記結合ダウンサンプリング比R
kの整数倍であるかどうかを決定し、S
kが前記サブネットワークkの前記結合ダウンサンプリング比R
kの整数倍でないと決定された場合、前記少なくとも1つの次元で前記サイズS
kが変更されて以下:
【数82】
のようになるよう、前記入力に前記再スケーリングが適用される、請求項2又は3に記載の方法。
【請求項5】
前記入力の前記サイズSkが前記サブネットワークkの前記結合ダウンサンプリング比R
kの整数倍である場合、前記サブネットワークkにより前記入力を処理する前に、以下のサイズ:
【数83】
への再スケーリングは前記入力に適用されない、請求項2~4のいずれかに記載の方法。
【請求項6】
S
kが前記結合ダウンサンプリング比R
kの整数倍であるかどうかの決定は、前記サイズS
kを前記サブネットワークkの許容入力サイズと比較することを含む、請求項4又は5に記載の方法。
【請求項7】
前記サブネットワークkの前記許容入力サイズは、前記結合ダウンサンプリング比R
kと前記サイズS
kのうちの少なくとも1つに基づいて計算される、請求項6に記載の方法。
【請求項8】
前記比較は、S
kと前記サブネットワークkの前記許容入力サイズとの差を計算することを含む、請求項6又は7に記載の方法。
【請求項9】
前記許容入力サイズは、以下:
【数84】
に従って決定される、請求項6~7のいずれかに記載の方法。
【請求項10】
以下:
【数85】
が決定され、
【数86】
前記サイズS
kの前記入力に前記再スケーリングが適用される、請求項9に記載の方法。
【請求項11】
以下:
【数87】
が決定され、
【数88】
前記サイズS
kの前記入力に前記再スケーリングが適用される、請求項10に記載の方法。
【請求項12】
前記サイズS
-
kは、前記結合ダウンサンプリング比R
k又は前記サイズS
kのうちの少なくとも1つを使用して決定される、請求項11に記載の方法。
【請求項13】
サイズS
-
kは、ceil、int、floorのうちの少なくとも1つを含む関数を使用して決定される、請求項12に記載の方法。
【請求項14】
【数89】
請求項13に記載の方法。
【請求項15】
サブネットワークkの入力に適用される前記再スケーリングは、前記NNの他のサブネットワークの前記結合ダウンサンプリング比R
l、l≠kとは独立であり、及び/又は、サブネットワークkの入力に適用される前記再スケーリングは、前記NNの他のサブネットワークのダウンサンプリング層のダウンサンプリング比r
l,m、l≠kとは独立である、請求項2~14のいずれかに記載の方法。
【請求項16】
サブネットワークkへの前記入力が、前記少なくとも1つの次元において、前記サブネットワークkの前記結合ダウンサンプリング比R
kの最も近い小さい整数倍と前記サブネットワークkの前記結合ダウンサンプリング比R
kの最も近い大きい整数倍の間の値を持つサイズS
kを持ち、条件に応じて、前記入力の前記サイズS
kが、前記結合ダウンサンプリング比R
kの前記最も近い小さい整数倍に一致するか、又は前記結合ダウンサンプリング比R
kの前記最も近い大きい整数倍に一致するように、前記再スケーリングの間に変更される、請求項1~15のいずれかに記載の方法。
【請求項17】
サブネットワークkへの前記入力が、前記少なくとも1つの次元において、前記サブネットワークkの前記結合ダウンサンプリング比R
kの整数倍ではない値を持つサイズS
kを持ち、前記入力の前記サイズS
kが、前記結合ダウンサンプリング比R
kの前記最も近い小さい整数倍に一致するか、又は前記結合ダウンサンプリング比R
kの前記最も近い大きい整数倍に一致するように、前記再スケーリングの間に変更される、請求項16に記載の方法。
【請求項18】
前記サブネットワークkへの前記入力が、前記少なくとも1つの次元でサイズS
kを持ち、
【数90】
及びR
kが前記サブネットワークkの前記結合ダウンサンプリング比であり、前記サイズS
kが条件に応じて以下:
【数91】
に再スケーリングされる、請求項16~17のいずれかに記載の方法。
【請求項19】
前記入力の前記サイズS
kが、前記結合ダウンサンプリング比R
kの前記最も近い大きい整数倍よりも、前記サブネットワークkの前記結合ダウンサンプリング比R
kの前記最も近い小さい整数倍に近い場合、前記入力の前記サイズS
kは、前記結合ダウンサンプリング比R
kの前記最も近い小さい整数倍に一致するサイズS
-
kに減少される、請求項16~18のいずれかに記載の方法。
【請求項20】
前記入力の前記サイズS
kを前記サイズS
-
kに減少することが、前記入力をクロッピングすることを含む、請求項19に記載の方法。
【請求項21】
前記サブネットワークkへの前記入力の前記サイズS
kが、前記結合ダウンサンプリング比R
kの前記最も近い小さい整数倍よりも、前記サブネットワークkの前記結合ダウンサンプリング比R
kの前記最も近い大きい整数倍に近い場合、前記入力の前記サイズS
kは、前記結合ダウンサンプリング比R
kの前記最も近い大きい整数倍に一致するサイズS
-
kに増大される、請求項16~20のいずれかに記載の方法。
【請求項22】
前記入力の前記サイズS
kを前記サイズS
-
kに増大することは、前記サイズS
kの前記入力をゼロで又は前記サイズS
kの前記入力から得られたパディング情報でパディングすることを含む、請求項21に記載の方法。
【請求項23】
前記サイズS
kの前記入力から得られた前記パディング情報は、前記入力の前記サイズS
kを前記サイズS
-
kに増大するために、冗長パディング情報として適用される、請求項22に記載の方法。
【請求項24】
冗長パディング情報による前記パディングが、投影パディングと反復パディングのうちの少なくとも1つを含む、請求項23に記載の方法。
【請求項25】
前記パディング情報が、前記冗長パディング情報が追加される前記入力の領域に最も近い前記サイズS
kを持つ前記入力の少なくとも1つの値であるか又はそれを含む、請求項23又は24に記載の方法。
【請求項26】
前記サブネットワークkへの前記入力の前記サイズS
kが、前記結合ダウンサンプリング比R
kの前記最も近い大きい整数倍に一致するサイズS
-
kに増大される、請求項16に記載の方法。
【請求項27】
前記条件が以下:
【数92】
を利用し、前記条件が以下:
Minが|S
k-lR
k|を投げる場合、前記入力の前記サイズS
kがS
-
k=lR
kに減少され、
Minが|S
k-R
k(l+1)|を投げる場合、前記入力の前記サイズS
kがS
-
k=(l+1)R
kに増大される、
ことを含む、請求項19に記載の方法。
【請求項28】
lが、前記サブネットワークkへの前記入力の前記サイズS
kと前記サブネットワークkの前記結合ダウンサンプリング比R
kのうちの少なくとも1つを使用して決定される、請求項27に記載の方法。
【請求項29】
lが以下:
【数93】
によって決定される、及び/又は、
l+1が以下:
【数94】
によって決定される、請求項28に記載の方法。
【請求項30】
少なくとも1つのサブネットワークの前記ダウンサンプリング層のうちの少なくとも1つが、2つの次元で前記入力にダウンサンプリングを適用し、第1次元のダウンサンプリング比が第2次元のダウンサンプリング比に等しい、請求項1~29のいずれかに記載の方法。
【請求項31】
サブネットワークのすべてのダウンサンプリング層の前記ダウンサンプリング比が等しい、請求項1~30のいずれかに記載の方法。
【請求項32】
すべてのサブネットワークが同数のダウンサンプリング層を含む、請求項1~31のいずれかに記載の方法。
【請求項33】
すべてのサブネットワークのすべてのダウンサンプリング層の前記ダウンサンプリング比が等しい、請求項32に記載の方法。
【請求項34】
前記NNの少なくとも2つのサブネットワークが異なる数のダウンサンプリング層を含む、請求項1~31のいずれかに記載の方法。
【請求項35】
サブネットワークkの少なくとも1つのダウンサンプリング層mの少なくとも1つのダウンサンプリング比r
k,mが、サブネットワークlの少なくとも1つのダウンサンプリング層nの少なくとも1つのダウンサンプリング比r
l,nと異なる、請求項1~32又は34のいずれかに記載の方法。
【請求項36】
前記サブネットワークk及びlが異なるサブネットワークである、請求項35に記載の方法。
【請求項37】
前記ダウンサンプリング層m及び前記ダウンサンプリング層nは、前記サブネットワークを介した前記入力の処理順序で見たときに、前記サブネットワークk及びl内の異なる位置にある、請求項35又は36に記載の方法。
【請求項38】
サブネットワークkへの入力の前記サイズS
kが、前記結合ダウンサンプリング比R
kの整数倍でないと決定された場合、前記再スケーリングは、補間フィルタを適用することを含む、請求項2に記載の方法。
【請求項39】
ニューラルネットワーク(NN)を使用してピクチャを表すビットストリームを復号する方法であって、前記NNが少なくとも2つのサブネットワークを含み、前記少なくとも2つのサブネットワークのうちの少なくとも1つのサブネットワークが少なくとも2つのアップサンプリング層を含み、前記少なくとも1つのサブネットワークが、少なくとも1つの次元でサイズT
1を持つ行列を表す入力にアップサンプリングを適用し、前記方法は、
前記少なくとも2つのサブネットワークのうちの第1サブネットワークにより前記入力を処理し、前記第1サブネットワークの出力を提供するステップであって、前記出力が、前記サイズT
1とU
1の積に対応するサイズT
-
2を有し、U
1が前記第1サブネットワークの結合アップサンプリング比U
1である、ステップと、
前記NNを介する前記ビットストリームの処理順序で処理中のサブネットワークによって前記第1サブネットワークの前記出力を処理する前に、前記第1サブネットワークの前記出力に再スケーリングを適用するステップであって、前記再スケーリングは、得られた情報に基づいて、前記少なくとも1つの次元の前記出力の前記サイズT
-
2を前記少なくとも1つの次元のサイズT^
2に変更することを含む、ステップと、
第2サブネットワークによって前記再スケーリングされた出力を処理し、前記第2サブネットワークの出力を提供するステップであって、前記出力は、T^
2とU
2の積に対応するサイズT
-
3を有し、U
2は、前記第2サブネットワークの前記結合アップサンプリング比である、ステップと、
前記NNを使用して前記ビットストリームを処理した後、復号ピクチャを出力として提供するステップと、
を含む方法。
【請求項40】
前記方法は、少なくとも2つのサブネットワークによって、サブビットストリームを受信するステップ、を更に含む請求項39に記載の方法。
【請求項41】
少なくとも1つのサブネットワークのうちの少なくとも1つのアップサンプリング層が、転置畳み込み又は畳み込み層を含む、請求項39又は40に記載の方法。
【請求項42】
前記情報が、前記復号されたピクチャの高さHと前記復号されたピクチャの幅Wの少なくとも1つを含む前記復号されたピクチャの目標サイズ、前記結合アップサンプリング比U
1、前記結合アップサンプリング比U
2、前記第1サブネットワークのアップサンプリング層の少なくとも1つのアップサンプリング比u
1m、前記第2サブネットワークのアップサンプリング層の少なくとも1つのアップサンプリング比u
2m、前記第2サブネットワークの目標出力サイズT^
3、前記サイズT^
2、のうちの少なくとも1つを含む、請求項39~41のいずれかに記載の方法。
【請求項43】
前記情報が、前記ビットストリーム、第2ビットストリーム、デコーダで利用可能な情報、のうちの少なくとも1つから得られる、請求項39~42のいずれかに記載の方法。
【請求項44】
T^
3とU
2に依存する式に基づいて、前記少なくとも1つの次元のサイズT
-
2を前記サイズT^
2に変更するための前記再スケーリングが決定され、T^
3が前記第2サブネットワークの前記出力の目標出力サイズであり、U
2が前記第2サブネットワークの結合アップサンプリング比である、請求項39~43のいずれかに記載の方法。
【請求項45】
前記少なくとも1つの次元の前記サイズT
-
2を前記サイズT^
2に変更するための前記再スケーリングが、U
2とNに依存する式に基づいて決定され、Nは前記NNを介して前記ビットストリームの処理順序で前記第1サブネットワークを処理するサブネットワークの総数である、請求項39~44のいずれかに記載の方法。
【請求項46】
前記式が以下:
【数95】
で与えられ、T
outputは前記NNの前記出力の目標サイズである、請求項45に記載の方法。
【請求項47】
前記式が以下:
【数96】
で与えられ、T
outputは前記NNの前記出力の目標サイズであり、Uは結合アップサンプリング比である、請求項46に記載の方法。
【請求項48】
前記サイズT
outputを示す指示が前記ビットストリームに含まれる、請求項47に記載の方法。
【請求項49】
前記式が以下:
【数97】
で与えられる、又は、
前記式が以下:
【数98】
で与えられる、請求項48に記載の方法。
【請求項50】
前記複数の所定の式のうちどれが選択されるかを示す指示が前記ビットストリームから得られる、請求項49に記載の方法。
【請求項51】
前記方法は、さらに、前記サイズT
-
2を有する前記出力を再スケーリングする前に、前記出力の前記サイズT
-
2が前記サイズT^
2と一致するかどうかを決定するステップを含む、請求項39~50のいずれかに記載の方法。
【請求項52】
前記サイズT
-
2が前記サイズT^
2と一致すると決定された場合、前記サイズT
-
2を変更する再スケーリングは適用されない、請求項51に記載の方法。
【請求項53】
前記方法はさらに、T
-
2がT^
2より大きいかどうか、又はT
-
2がT^
2より小さいかどうかを決定するステップを含む請求項51又は52に記載の方法。
【請求項54】
T
-
2がT^
2より大きいと決定された場合、前記再スケーリングは、前記サイズT
-
2が前記サイズT^
2に減少されるように、前記サイズT
-
2を有する前記出力にクロッピングを適用することを含む、請求項53に記載の方法。
【請求項55】
T
-
2がT^
2より小さいと決定された場合、前記再スケーリングは、前記サイズT
-
2が前記サイズT^
2に増大されるように、前記サイズT
-
2を有する前記出力にパディングを適用することを含む、請求項53又は54に記載の方法。
【請求項56】
前記パディングは、前記サイズT
-
2の前記出力をゼロで又は前記サイズT
-
2の前記出力から得られたパディング情報でパディングすることを含む、請求項55に記載の方法。
【請求項57】
前記サイズT
-
2の前記出力から得られた前記パディング情報は、前記出力の前記サイズT
-
2を前記サイズT^
2に増大するために、冗長パディング情報として適用される、請求項56に記載の方法。
【請求項58】
前記パディングが、投影パディング又は反復パディングを含む、請求項57に記載の方法。
【請求項59】
前記パディング情報が、前記冗長パディング情報が追加される前記出力の領域に最も近い前記サイズT
-
2を持つ前記出力の少なくとも1つの値であるか又はそれを含む、請求項57又は58に記載の方法。
【請求項60】
T
-
2がT^
2に等しくないと決定された場合、前記再スケーリングは、補間フィルタを適用することを含む、請求項53に記載の方法。
【請求項61】
前記情報が前記ビットストリーム又はさらなるビットストリームで提供され、前記ビットストリームを符号化したエンコーダの少なくとも1つのダウンサンプリング層mを含む少なくとも1つのサブネットワークkの結合ダウンサンプリング比R
kを含み、前記サブネットワークkが前記入力を処理する順序でデコーダのサブネットワークに対応する、請求項39~60のいずれかに記載の方法。
【請求項62】
前記NNの少なくとも1つのサブネットワークの少なくとも1つのアップサンプリング層が、2つの次元でアップサンプリングを適用し、第1次元のアップサンプリング比が2次元のアップサンプリング比に等しい、請求項39~61のいずれかに記載の方法。
【請求項63】
サブネットワークのすべてのアップサンプリング層の前記アップサンプリング比が等しい、請求項39~62のいずれかに記載の方法。
【請求項64】
すべてのサブネットワークが同数のアップサンプリング層を含む、請求項39~63のいずれかに記載の方法。
【請求項65】
すべてのサブネットワークのすべてのアップサンプリング層の前記アップサンプリング比が等しい、請求項64に記載の方法。
【請求項66】
前記NNの少なくとも2つのサブネットワークが異なる数のアップサンプリング層を含む、請求項39~62のいずれかに記載の方法。
【請求項67】
サブネットワークkの少なくとも1つのアップサンプリング層mの少なくとも1つのアップサンプリング比u
k,mが、サブネットワークlの少なくとも1つのアップサンプリング層nの少なくとも1つのアップサンプリング比u
l,nと異なる、請求項39~63又は66のいずれかに記載の方法。
【請求項68】
前記サブネットワークk及びlが異なるサブネットワークである、請求項67に記載の方法。
【請求項69】
前記アップサンプリング層m及び前記アップサンプリング層nは、前記サブネットワークを介した前記入力の処理順序で見たときに、前記サブネットワークk及びl内の異なる位置にある、請求項67又は68に記載の方法。
【請求項70】
少なくとも2つの異なるサブネットワークの前記結合アップサンプリング比が等しい、請求項39~69のいずれかに記載の方法。
【請求項71】
すべてのサブネットワークの前記結合アップサンプリング比が対ごとに互いに素である、請求項39~69のいずれかに記載の方法。
【請求項72】
前記NNは、前記NNを介した前記ビットストリームの処理順序において、前記少なくとも1つの次元の前記入力の前記サイズを変更しない変換を前記入力に適用する更なるユニットを含み、
前記方法は、前記再スケーリングの結果、前記少なくとも1つの次元の前記入力の前記サイズが増大する場合には、前記更なるユニットによる前記入力の処理の後、前記NNの次のサブネットワークによる前記入力の処理の前に、前記再スケーリングを適用するステップを含み、及び/又は、
前記方法は、前記再スケーリングが、前記少なくとも1つの次元の前記入力の前記サイズの減少を含む場合には、前記更なるユニットによる前記入力の処理の前に、前記再スケーリングを適用するステップを含む、請求項1から71のいずれかに記載の方法。
【請求項73】
前記更なるユニットがバッチ正規化器及び/又はReLU(rectified linear unit)である又はそれらを含む、請求項72に記載の方法。
【請求項74】
前記ビットストリームが、前記ピクチャの異なるカラーチャネルに対応するサブビットストリームを含み、前記NNがサブネットワーク(sNN)を含み、各sNNは、請求項1~73のいずれかに記載の方法を前記sNNへの入力として提供される前記サブビットストリームに適用するように適応される、請求項1~73のいずれかに記載の方法。
【請求項75】
前記再スケーリングが前記サイズS
mを前記サイズS
-
mに増大することを含む場合、前記サイズS
-
mは次式:
【数99】
で与えられ、
前記再スケーリングが前記サイズS
mを前記サイズS
-
mに減少させることを含む場合、前記サイズS
-
mは次式:
【数100】
で与えられる、請求項1~38のいずれかに記載の方法。
【請求項76】
前記再スケーリングが前記サイズT
-
2を前記サイズT
^
2に増大することを含む場合、前記サイズT
^
2は次式:
【数101】
で与えられ、
前記再スケーリングが前記サイズT
-
2を前記サイズT
^
2に減少させることを含む場合、前記サイズT
^
2は次式:
【数102】
で与えられる、請求項39~74のいずれかに記載の方法。
【請求項77】
ピクチャを符号化するためのエンコーダであって、前記エンコーダは、
ピクチャを受信するための受信機と、
ニューラルネットワーク(NN)を実装するように構成された1つ以上のプロセッサであって、前記NNは、前記NNを介した前記ピクチャの処理順序において、少なくとも2つのサブネットワークを含み、前記少なくとも2つのサブネットワークのうちの少なくとも1つのサブネットワークは、少なくとも2つのダウンサンプリング層を含み、前記少なくとも1つのサブネットワークは、入力にダウンサンプリングを適用するように適合される、プロセッサと、
ビットストリームを出力するための送信機と、
を含み、前記エンコーダは、請求項1~38又は72~75又は76のいずれかに記載の方法を実行するように適合されている、エンコーダ。
【請求項78】
ピクチャを符号化するためのエンコーダであって、前記エンコーダは、ニューラルネットワーク(NN)を実装するための1つ以上のプロセッサを含み、前記1つ以上のプロセッサは、請求項1~37又は72~75又は76のいずれかに記載の方法を実行するように適合されている、エンコーダ。
【請求項79】
ピクチャを符号化するエンコーダであって、前記エンコーダは、ニューラルネットワーク(NN)を実装するよう構成される1つ以上のプロセッサを含み、前記NNは、前記NNを介するピクチャの処理順序で、少なくとも2つのサブネットワークを含み、前記少なくとも2つのサブネットワークのうちの少なくとも1つのサブネットワークが少なくとも2つのダウンサンプリング層を含み、前記少なくとも1つのサブネットワークが、少なくとも1つの次元でサイズS
1を持つ行列を表す入力にダウンサンプリングを適用するよう適応され、前記エンコーダは、以下:
少なくとも2つのダウンサンプリング層を含む前記少なくとも1つのサブネットワークで前記入力を処理する前に、前記入力に再スケーリングを適用し、前記再スケーリングが、S
-
1が前記少なくとも1つのサブネットワークの結合ダウンサンプリング比R
1の整数倍になるように、前記少なくとも1つの次元のサイズS
1をS
-
1に変更することを含み、
前記再スケーリングの後、少なくとも2つのダウンサンプリング層を含む前記少なくとも1つのサブネットワークにより前記入力を処理し、サイズS
2の出力を提供し、S
2はS
1より小さく、
前記NNを使用して前記ピクチャを処理した後、ビットストリームを出力として提供する、
ことによりピクチャを符号化するよう適応される、エンコーダ。
【請求項80】
ピクチャを表すビットストリームを復号するためのデコーダであって、前記デコーダは、
ビットストリームを受信するための受信機と、
ニューラルネットワーク(NN)を実装するように構成された1つ以上のプロセッサであって、前記NNは、前記NNを介した前記ビットストリームの処理順序において、少なくとも2つのサブネットワークを含み、少なくとも1つのサブネットワークは、少なくとも2つのアップサンプリング層を含み、前記少なくとも1つのサブネットワークは、入力にアップサンプリングを適用するように適合される、プロセッサと、
復号されたピクチャを出力するための送信機と、
を含み、前記デコーダは、請求項39~74又は75のいずれかに記載の方法を実行するように適合されている、デコーダ。
【請求項81】
ピクチャを表すビットストリームを復号するデコーダであって、前記デコーダは、
ビットストリームを受信する受信機と、
ニューラルネットワーク(NN)を実装するよう構成される1つ以上のプロセッサであって、前記NNは、前記NNを介したビットストリームの処理順序で、少なくとも2つのサブネットワークを含み、前記少なくとも2つのサブネットワークのうちの少なくとも1つのサブネットワークが少なくとも2つのアップサンプリング層を含み、前記少なくとも1つのサブネットワークが、少なくとも1つの次元でサイズT
1を持つ行列を表す入力にアップサンプリングを適用するよう適応される、プロセッサと
を含み、前記デコーダは、以下:
前記少なくとも2つのサブネットワークのうちの第1サブネットワークにより前記入力を処理し、前記第1サブネットワークの出力を提供し、前記出力が、前記サイズT
1とU
1の積に対応するサイズT
-
2を有し、U
1が前記第1サブネットワークの結合アップサンプリング比U
1であり、
前記NNを介する前記ビットストリームの前記処理順序で処理中のサブネットワークによって前記第1サブネットワークの前記出力を処理する前に、前記第1サブネットワークの前記出力に再スケーリングを適用し、前記再スケーリングは、得られた情報に基づいて、前記少なくとも1つの次元の前記出力の前記サイズT
-
2を前記少なくとも1つの次元のサイズT^
2に変更することを含み、
第2サブネットワークによって前記再スケーリングされた出力を処理し、前記第2サブネットワークの出力を提供し、前記出力は、T^
2とU
2の積に対応するサイズT
-
3を有し、U
2は、前記第2サブネットワークの前記結合アップサンプリング比であり、
前記NNを使用して前記ビットストリームを処理した後、復号されたピクチャを前記NNの出力として提供する、
ことによりビットストリームを復号するよう構成される、デコーダ。
【請求項82】
ピクチャを表すビットストリームを復号するためのデコーダであって、前記デコーダは、ニューラルネットワーク(NN)を実装するための1つ以上のプロセッサを含み、前記1つ以上のプロセッサは、請求項39~74又は75のいずれかに記載の方法を実行するように適応されている、デコーダ。
【請求項83】
コンピュータシステムにより実行されると、前記コンピュータシステムに請求項1~76のいずれかに記載の方法を実行させるコンピュータ実行命令を含むコンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、少なくとも2つのサブネットワークを含むニューラルネットワークを用いてピクチャを符号化する方法、及び少なくとも2つのサブネットワークを含むニューラルネットワークを用いてピクチャを復号する方法に関する。さらに、本開示は、ピクチャを符号化するためのニューラルネットワークを実装するエンコーダ、及びピクチャを復号するためのニューラルネットワークを実装するデコーダ、並びにコンピュータが実行可能な命令を有するコンピュータ可読記憶媒体に言及する。
【背景技術】
【0002】
ビデオ符号化(ビデオ符号化及び復号)は、広範囲のデジタルビデオアプリケーション、例えば、放送用デジタルテレビ、インターネット及び移動体ネットワークを介するビデオ送信、ビデオチャットのようなリアルタイム会話アプリケーション、ビデオ会議、DVD及びBlue-rayディスク、ビデオコンテンツ取得及び編集システム、及びセキュリティアプリケーションのカムコーダで使用される。
【0003】
比較的短いビデオでも描写するために必要なビデオデータの量は相当なものになり得る。これは、データが限られた帯域幅能力を有する通信ネットワークに渡りストリーミングされる又はその他の場合に通信されるとき、困難をもたらすことがある。したがって、ビデオデータは、通常、今日の電気通信ネットワークに渡り通信される前に、圧縮される。ビデオが記憶装置に格納されるとき、メモリリソースが限られていることがあるので、ビデオのサイズも問題になり得る。ビデオ圧縮装置は、送信又は記憶の前に、ソースにおいてビデオデータをコーディングするためにソフトウェア及び/又はハードウェアを度々使用し、それによりデジタルビデオ画像を表現するために必要なデータの量を削減する。圧縮されたデータは、次に、ビデオデータを復号するビデオ伸長装置により宛先において受信される。限られたネットワークリソース及びより高いビデオ品質の増え続ける要求に伴い、ピクチャ品質を僅かしか又は全く犠牲にせずに圧縮率を向上する改良された圧縮及び伸長技術が望ましい。
【0004】
現在では、ビデオや画像などの符号化及び復号の技術分野でも、ニューラルネットワーク、及びニューラルネットワークを利用した深層学習技術が以前から使用されている。
【0005】
このような場合、ビットストリームは通常、値の2次元行列によって合理的に表現できるデータを表すか、又はそのようなデータである。例えば、これは画像、ビデオシーケンスなどのデータを表すか又はそれらであるビットストリームに当てはまる。2Dデータとは別に、本開示で言及されているニューラルネットワークとフレームワークは、通常1D信号として表されるオーディオ信号やその他の信号などのさらなるソース信号に適用することができる。
【0006】
例えば、複数のダウンサンプリング層を含むニューラルネットワークは、ピクチャのように、符号化されるべき入力にダウンサンプリング(ダウンサンプリング層が畳み込み層の場合には畳み込み)を適用することができる。このダウンサンプリングを入力ピクチャに適用することで、そのサイズが減少され、最終的なサイズが得られるまでこれを繰り返すことができる。このようなニューラルネットワークは、深層学習ニューラルネットワークによる画像認識とピクチャの符号化の両方に使用できる。同様に、このようなネットワークを使用して符号化ピクチャを復号できる。2つより少ない又は多い次元の信号のような他のソース信号も、同様のネットワークによって処理される場合がある。
【0007】
サイズが異なる可能性のある様々な異なる信号に効率的に適用できるニューラルネットワークフレームワークを提供することが望ましい場合がある。
【発明の概要】
【0008】
ここに示す開示の実施例は、入力されたピクチャを符号化するエンコーダから得られたビットストリームのサイズを小さくすることを可能し、このビットストリームは符号化されたピクチャの情報を運び、同時に、元のピクチャを可能な限り少ない情報損失で再構成できることを保証する。
【0009】
ここに示す幾つかの実施例は、ニューラルネットワークを使用してピクチャを符号化する独立請求項1に記載の方法だけでなく、ニューラルネットワークを使用してビットストリームを復号する請求項39に記載の方法、並びに、ビットストリームを符号化する請求項77~79に記載のエンコーダ、及びビットストリームを復号するための請求項80~82に記載のデコーダ、及びコンピュータ実行可能命令を含む請求項83に記載のコンピュータ可読記憶媒体を提供する。
【0010】
本開示は、ニューラルネットワーク(NN)を使用してピクチャを符号化する方法であって、前記NNが少なくとも2つのサブネットワークを含み、前記少なくとも2つのサブネットワークのうちの少なくとも1つのサブネットワークが少なくとも2つのダウンサンプリング層を含み、前記少なくとも1つのサブネットワークが、少なくとも1つの次元でサイズS1を持つ行列を表す入力にダウンサンプリングを適用し、前記方法は、
少なくとも2つのダウンサンプリング層を含む前記少なくとも1つのサブネットワークで前記入力を処理する前に、前記入力に再スケーリングを適用するステップであって、前記再スケーリングが、S-
1が前記少なくとも1つのサブネットワークの結合ダウンサンプリング比R1の整数倍になるように、前記少なくとも1つの次元のサイズS1をS-
1に変更することを含む、ステップと、
前記再スケーリングの後、少なくとも2つのダウンサンプリング層を含む前記少なくとも1つのサブネットワークにより前記入力を処理し、サイズS2の出力を提供するステップであって、S2はS1より小さい、ステップと、
前記NNを使用して前記ピクチャを処理した後(例えば、前記NNの各サブネットワークによる処理の後)、ビットストリームを出力として(例えば前記NNの出力として)提供するステップと、
を含む方法を提供する。
【0011】
本開示の文脈において、ピクチャは、ビデオ又はビデオシーケンス又はその一部という意味での静止画又は動画として理解できる。具体的には、ピクチャは、全体的又はより大きなピクチャ又はより大きな又はより長いビデオシーケンスの一部又は全体的を表す場合がある。この点に関して、本発明は限定されない。更に、本開示の文脈において、ピクチャは画像又はフレームと呼ばれることもある。ピクチャは、いかなる場合でも、値の2次元以上の配列によって表現可能であると考えることができる。これらの値は通常、「サンプル」と呼ばれる。この2次元以上の配列は、具体的には行列の形式であってよく、その後、上記で指定され及び更に以下で指定される方法で、ニューラルネットワークのダウンサンプリング層を含むニューラルネットワークによって処理することができる。
【0012】
本開示では、サブネットワーク、又は具体的にはエンコーダのサブネットワークをニューラルネットワークの一部と見なすことができ、この部分がニューラルネットワークの層のサブセットを含む。この点に関して、ニューラルネットワークのサブネットワークは、ダウンサンプリング層のみを含むことにも、すべてが同じ数のダウンサンプリング層を含むことにも限定されない。具体的には、1つのサブネットワークは2つのダウンサンプリング層を含むことができるが、別のサブネットワークは1つのダウンサンプリング層と、入力にダウンサンプリングを適用しないが別の方法で変換する別の層のみを含むことができる。更にサブネットワークは、3、5、又は10個のダウンサンプリング層など、2つ以上のダウンサンプリング層を含むこともできる。
【0013】
本開示の文脈において、サブネットワークの結合ダウンサンプリング比は、サブネットワーク内のすべてのダウンサンプリング層のダウンサンプリング比の積に対応するか又はそれを表す整数値であってもよい。これは、所与のサブネットワークのすべてのダウンサンプリング比の積を計算することによって得られる場合もあれば、サブネットワークのダウンサンプリング層のダウンサンプリング比に加えて、(例えばエンコーダに)利用可能なプリセット値であってもよい。サブネットワークの結合ダウンサンプリング比は、サブネットワークの入力とサブネットワークの出力のサイズの比を表す所定の数値であってもよい。
【0014】
本開示によるビットストリームは、符号化ピクチャであってもよく、又は符号化ピクチャを含んでもよい。更に、ニューラルネットワークによって出力されるビットストリームは、以下ではサイド情報とも呼ばれる追加情報を含む場合がある。この追加情報は、ビットストリームによって符号化される画像を再構築するためにビットストリームを復号するために必要な情報を指す場合がある。例えば、この情報は、前述のような結合ダウンサンプリング比、又はサブネットワークの各々のダウンサンプリング層のダウンサンプリング比を含む場合がある。
【0015】
ビットストリームは、一般に、サイズが減少されていると見なされるか、又は少なくとも1つの次元で元のピクチャと比較してサイズが減少された元のピクチャの表現を含むと見なされる場合がある。これは、例えば、符号化ピクチャの2次元表現(例えば行列の形式)が、高さや幅などで元のピクチャのサイズの半分しかないことを意味する場合がある。ビットストリームは、バイナリ形式(「0」と「1」を含む)での入力画像の表現と考えることができる。ビデオ圧縮の目的は、ビットストリームに基づいて又はビットストリームから取得できる再構成ピクチャの品質を許容可能なレベルに維持しながら、ビットストリームのサイズを可能な限り小さくすることである。
【0016】
ここに示す文脈において、「サイズ」という用語は、例えば、1つ以上の次元(ピクチャの幅又は高さ)における多数のサンプル及び/又はピクチャを表すピクセル数を指すことがある。更に、サイズはピクチャの解像度を表すことがある。解像度は通常、ピクチャ又はピクチャ領域ごとのサンプル数で指定され、このピクチャ領域は1次元又は2次元の場合がある。
【0017】
一般的な用語では、ニューラルネットワークの出力(又は一般的にネットワークの1つ以上の層の出力)は第3次元を有する場合がある。この第3次元は、入力ピクチャの対応する次元よりも大きなサイズを持つ場合がある。第3次元は、チャネルとも呼ばれる特徴マップの数を表すことができる。具体的な例では、第3次元のサイズは、入力(例えば3つの色成分を有するニューラルネットワークの元のピクチャ入力)では3であり、出力(すなわち、バイナリ化(ビットストリームへの符号化)の前の特徴マップ)では192である。特徴マップのサイズは、通常、入力を効率的に分類するためにエンコーダによって増大される。
【0018】
ニューラルネットワークのダウンサンプリング層によって適用されるダウンサンプリングは、既知の方法又は技術的に合理的な方法で達成することができる。具体的には、これは、ニューラルネットワークの各々のダウンサンプリング層の入力に畳み込みを適用することによるダウンサンプリングを含むことができる。ダウンサンプリングは、1次元のみで実行することもでき、入力ピクチャ又は行列の形で表現されている場合は一般的に入力の2次元で実行することもできる。これは、合計でサブネットワークによって適用されるダウンサンプリングと、各々のサブネットワークの各ダウンサンプリング層によって適用されるダウンサンプリングの両方に関係する。例えば、サブネットワークは2次元の入力にダウンサンプリングを適用する場合があるが、このサブネットワークの第1ダウンサンプリング層は1次元のダウンサンプリングのみを適用し、サブネットワークの別のダウンサンプリング層は別の次元又は2次元の入力にダウンサンプリングを適用する場合がある。
【0019】
一般に、ここに示す開示は、特定のダウンサンプリングの方法に限定されない。以下に説明するニューラルネットワークの1つ以上の層は、例えば入力ピクチャ又は入力特徴マップ(2次元行列の表現で見た場合)の全ての2番目の、3番目の又は同様の行及び/又は列を削除(除去)することによって、畳み込みとは異なる方法でダウンサンプリングを適用することができる。
【0020】
ここに示す実施形態は、サブネットワーク内ではく、ダウンサンプリング層を含むサブネットワークによる入力の処理の直前に、適用される再スケーリングを指すものとして理解されるべきである。これは、再スケーリングに関しては、サブネットワークは、複数の層と潜在的に多数のダウンサンプリング層を含むが、結合ダウンサンプリング比を有するダウンサンプリングを入力に適用し、再スケーリングされた入力のサイズS-が、この入力が処理されるサブネットワークの結合ダウンサンプリング比の整数倍に一致するように入力の再スケーリングを適用する1つのエンティティと見なされる。
【0021】
後述するように、サブネットワークの入力に適用される再スケーリングは、必ずしも各サブネットワークの前に適用されるとは限らない。具体的には、幾つかの実施形態は、サブネットワークの入力に再スケーリングを適用する前に、この入力又は入力のサイズが、各々のサブネットワークの結合ダウンサンプリング比の整数倍にすでに一致するかどうかを決定することを含む場合がある。一致する場合、入力に再スケーリングを適用しないか、又は入力のサイズSを変更しない「同一の再スケーリング」を適用することができる。ここでの「再スケーリング」という用語は、「サイズ変更」と同じ意味で使用される。
【0022】
サブネットワーク単位で入力に再スケーリングを適用することによって、サブネットワークによって出力される「中間出力」又は中間ビットストリームを提供する可能性のある各サブネットワークを考慮することができる。例えば、ピクチャを符号化するときに提供される出力が、単一のビットストリームを含むだけでなく、ニューラルネットワークの第1数のサブネットワークのみによって入力ピクチャを処理したときに得られる複数のビットストリームと、ニューラルネットワークのすべてのサブネットワークによって元の入力を処理したことによる第2ビットストリームを含む場合を考える。この場合、サブネットワーク単位で適用される再スケーリングによって、少なくとも1つのビットストリームのサイズが減少され、その結果、結合されたビットストリームのサイズが減少されるため、ビットストリームのサイズを比較的小さく保ちながら、符号化されたピクチャの品質を(再度復号するときに)高く保つことができる。
【0023】
なお、結合ダウンサンプリング比は、他のサブネットワークの他のダウンサンプリング層に関係なく独立して、少なくとも1つのサブネットワークのダウンサンプリング層のすべてのダウンサンプリング比に従って決定される場合がある。具体的には、サイズS
-を求めるときに、これは、各々のサブネットワークの結合ダウンサンプリング比の整数倍に等しくなるように決定される場合がある。具体的には、サブネットワークkの結合ダウンサンプリング比R
kは、ここで、kは自然数であり、入力の処理順序におけるサブネットワークの位置を示し、サブネットワークkのすべてのダウンサンプリング層のダウンサンプリング比rの積を計算することによって得られる場合がある。これは、サブネットワークkについて、次式で表すことができる:
【数1】
ここで、r
k,mは、サブネットワークkのダウンサンプリング層mのダウンサンプリング比を示す。サブネットワークは、全部でM個(Mは0より大きい自然数である)のダウンサンプリング層を含む場合がある。r
k,mのインデックスmを使用して、入力を処理する順序でサブネットワークkのダウンサンプリング層を列挙した場合、mは1から始まり、Mまでの値を取る場合がある。また、ダウンサンプリング層と各々のダウンサンプリング比r
k,mを列挙する他の方法も使用できる。Mは0又は-1から始まる値を取る場合がある。一般に、サブネットワークkのダウンサンプリング層mは、このダウンサンプリング比がどのサブネットワークk及びサブネットワークk内のどのダウンサンプリング層kに属するかの情報を提供するために、関連するダウンサンプリング比r
k,mを持つ場合がある。インデックスkは、サブネットワークを列挙するためにのみ提供することができることに注意する。0から始まる整数値にすることができる。また、-1以上の整数値を含むこともでき、又は、任意の妥当な開始点から開始することもできる(例えば、k=-10)。インデックスkの値及びインデックスmの値については、0以上又は-1以上の自然数が好ましいが、発明はこれに限定されない。
【0024】
なお、上記の結合ダウンサンプリング比を求めるための積は、明示的に計算されてもよいし、例えば、ダウンサンプリング層のダウンサンプリング比とルックアップテーブルを用いて得られ、ルックアップテーブルは、例えば、結合ダウンサンプリング比を表すエントリを含み、サブネットワークの各々の結合ダウンサンプリング比が、サブネットワークのダウンサンプリング比をテーブルのインデックスとして用いて得られる。同様に、インデックスkは、ルックアップテーブルに対するインデックスとして機能する場合がある。代替として、結合ダウンサンプリング比は、各サブネットワーク用に保存されている又は各サブネットワークに関連付けられているプリセット値又は事前に計算された値である場合がある。
【0025】
一実施形態では、NNが以下:
【数2】
を含み、各々が少なくとも2つのダウンサンプリング層を含み、方法は、さらに、
少なくとも1つの次元でサイズS
kを持つ行列を表す入力をサブネットワークkで処理する前に、サイズS
kがサブネットワークの結合ダウンサンプリング比R
kの整数倍でない場合、入力に再スケーリングを適用するステップであって、再スケーリングは、少なくとも1つの次元のサイズS
kを以下:
【数3】
になるように変更することを含む、ステップ、
を含む。
【0026】
インデックスkは0で始まることができ、したがって0以上であってよい。また、他の開始値を選択することもでき、例えばkが-1以上であり、又はkが1で始まることがあり、すなわちkが1以上である。インデックスkの選択に関して、本発明は限定されず、各々のサブネットワークを区別する任意の方法が本開示に含まれる。
【0027】
この実施形態では、各サブネットワークの前の再スケーリングは、必要に応じて、各々のサブネットワークに必要な場合にのみ適用されるため、ビットストリームのサイズが更に小さくなる可能性がある。
【0028】
更なる実施形態では、少なくとも2つのサブネットワークが各々サブビットストリームを出力として提供する。サブビットストリームはそれ自体で完全なビットストリームと見なすことができる。それにもかかわらず、同様に「ビットストリーム」と呼ばれるニューラルネットワークの出力は、各々のサブネットワークによって得られるサブビットストリームから構成されることもあれば、少なくともその一部を含むこともある。この実施形態では、すべてのサブネットワークのうちの少なくとも2つのサブネットワークが各々サブビットストリームを出力として提供する。これは、サブネットワーク単位で適用される再スケーリングと組み合わせて利点を持つ場合がある。
【0029】
一実施形態では、サイズS
kを持つ入力に再スケーリングを適用する前に、S
kがサブネットワークkの結合ダウンサンプリング比R
kの整数倍であるかどうかを決定し、S
kがサブネットワークkの結合ダウンサンプリング比R
kの整数倍でないと決定された場合、少なくとも1つの次元でサイズS
kが変更されて以下:
【数4】
のようになるよう、入力に再スケーリングが適用される。
【0030】
これは、S-
kがサブネットワークkの結合ダウンサンプリング比の整数倍であることを意味する。この決定により、例えばSkが既に結合ダウンサンプリング比の整数倍である場合、不必要な再スケーリングを回避することができる。
【0031】
一実施形態では、入力のサイズSkがサブネットワークkの結合ダウンサンプリング比Rkの整数倍である場合、サブネットワークkにより入力を処理する前に、サイズS-
k≠Skへの再スケーリングは入力に適用されない。この実施例は、この結果、「ニュートラル」又は「同一」の再スケーリングとなり、再スケーリングの正式なステップがそれにもかかわらずデフォルトで適用される一方で、入力サイズがすでにサブネットワークの結合ダウンサンプリング比の整数倍である場合、この再スケーリングは実際には入力のサイズの変更を生じない、ことを含む場合がある。これにより、全体的に特定の条件に応じてステップを省略する必要がなく、入力の処理を計算効率的に設計することができる。
【0032】
一実施例では、Skが結合ダウンサンプリング比Rkの整数倍であるかどうかの決定は、サイズSkをサブネットワークkの許容入力サイズと比較することを含む。
【0033】
許容入力サイズは、例えば、ルックアップテーブルから得ることができ、又は、結合ダウンサンプリング比の一連の可能な整数倍を得ることによって計算することもできる。
【0034】
より具体的な実施形態では、サブネットワークkの許容入力サイズは、結合ダウンサンプリング比RkとサイズSkのうちの少なくとも1つに基づいて計算される。この計算により、特にサブネットワークで処理される入力の実際のサイズに応じて、各サブネットワークの適切な許容入力サイズを得ることができ、様々な入力サイズにも適用できる。
【0035】
更なる実施例では、比較は、Skとサブネットワークkの許容入力サイズとの差を計算することを含む。
【0036】
差の計算は、サブネットワークkへの入力のサイズSkを、このサブネットワークへの許容入力サイズから減算することによって行うことができる。この文脈では、許容入力サイズはS-
kと同一であると考えることができる。代替として又は追加で、この差の絶対値を求め、この差の符号を用いて、サイズの増大又はサイズの減少を適用するかを決定することもできる。これにより、再スケーリングが実際に必要かどうかを確実に決定することができる。
【0037】
一実施例では、許容入力サイズは次式に従って決定される:
【数5】
これらの演算を用いることで、結合ダウンサンプリング比R
kに応じて、サブネットワークkへの入力の実際のサイズS
kに最も近いサイズを決定することができる。具体的には、結合ダウンサンプリング比の最も近い大きい整数倍が何であるかを(ceil関数を使用して)、及び結合ダウンサンプリング比の最も近い小さい整数倍が何であるかを(floor関数を使用して)、決定することができる。これにより、再スケーリングを適用する場合は、入力の元のサイズに対する変更が最も少なくて済む方法で行われ、その結果、入力に追加される情報や入力から削除される情報は可能な限り少なくなる。
【0038】
一実施形態では、以下:
【数6】
が決定され、
【数7】
サイズS
kの入力に再スケーリングが適用される。代替又は追加の実施形態では、以下:
【数8】
が決定され、
【数9】
サイズS
kの入力に再スケーリングが適用される。
【0039】
これらの値が(両方とも)0に等しい場合、これは、サブネットワークkへの入力サイズSkがすでにこのサブネットワークの各々の結合ダウンサンプリング比Rkの整数倍であることを意味し、異なるサイズS-
kへの再スケーリングが必要ないことを意味する。
【0040】
更なる実施形態では、サイズS-
kは、結合ダウンサンプリング比Rk又はサイズSkのうちの少なくとも1つを使用して決定される。この文脈では、サイズS-
kはサブネットワークの許容入力サイズと考えることができる。
【0041】
より具体的には、サイズS-
kは、ceil、int、floorのうちの少なくとも1つを含む関数を使用して決定できる。
【0042】
【0043】
これらの実施例では、サイズS-
kは元の入力サイズSkに最も近い方法で得られ、結果として入力に対する小さな又は僅かな変更のみになる可能性がある。
【0044】
更なる実施例では、サブネットワークkの入力に適用される再スケーリングは、NNの他のサブネットワークの結合ダウンサンプリング比Rl、l≠kとは独立であり、及び/又は、サブネットワークkの入力に適用される再スケーリングは、NNの他のサブネットワークのダウンサンプリング層のダウンサンプリング比rl,m、l≠kとは独立である。各サブネットワークkを他のサブネットワーク又はそのダウンサンプリング層から分離して考慮し、サブネットワークk自体の値にのみ依存する対応する再スケーリングをこのサブネットワークへの入力Skに適用することによって、ビットストリームのサイズの削減という利点を更に高めることができる。
【0045】
更に以下を提供できる:サブネットワークkへの入力が、少なくとも1つの次元において、サブネットワークkの結合ダウンサンプリング比Rkの最も近い小さい整数倍とサブネットワークkの結合ダウンサンプリング比Rkの最も近い大きい整数倍の間の値を持つサイズSkを持ち、条件に応じて、入力のサイズSkが、結合ダウンサンプリング比Rkの最も近い小さい整数倍に一致するか、又は結合ダウンサンプリング比Rkの最も近い大きい整数倍に一致するように、再スケーリングの間に変更される。条件は、例えば、サブネットワークの特性に依存するか、又は、例えば再スケーリングを適用する際に元の入力サイズに情報を追加するだけであるか(つまり、再スケーリングが必要な場合は常に入力のサイズを大きくする)、情報を削除するか(例えばクロッピングによる)、情報を追加するか(例えばパディングによる)のいずれかによって、入力に対する変更を可能な限り少なくするという意図に依存することができる。
【0046】
これにより、再スケーリングの結果、サブネットワークで処理できる再スケーリングされた入力が確実に得られるようにするのに役立つ、サイズSkの入力に対する変更のみが適用される。
【0047】
一実施形態では、サブネットワークkへの入力が、少なくとも1つの次元において、サブネットワークkの結合ダウンサンプリング比Rkの整数倍ではない値を持つサイズSkを持ち、入力のサイズSkが、結合ダウンサンプリング比Rkの最も近い小さい整数倍に一致するか、又は結合ダウンサンプリング比Rkの最も近い大きい整数倍に一致するように、再スケーリングの間に変更される。
【0048】
更なる実施形態では、サブネットワークkへの入力が、少なくとも1つの次元でサイズS
kを持ち、
【数11】
及びR
kがサブネットワークkの結合ダウンサンプリング比であり、サイズS
kが条件に応じて以下:
【数12】
に再スケーリングされる。これは、サブネットワークkへの入力のサイズS
kが、このサブネットワークの結合ダウンサンプリング比の最も近い小さい整数倍(lR
kで表される)と、このサブネットワークの結合ダウンサンプリング比の最も近い大きい整数倍(R
k=(l+1)で表される)の間にあることを意味する。
【0049】
これは、サイズSkを持つ入力に対して、サブネットワークkの結合ダウンサンプリング比の最も近い大きい整数倍と最も近い小さい整数倍を取得するための合理的な定式化を構成し、様々な入力サイズにも再スケーリングの柔軟な適応を可能にする。
【0050】
更なる実施形態では以下を提供できる:入力のサイズSkが、結合ダウンサンプリング比Rkの最も近い大きい整数倍よりも、サブネットワークkの結合ダウンサンプリング比Rkの最も近い小さい整数倍に近い場合、入力のサイズSkは、結合ダウンサンプリング比Rkの最も近い小さい整数倍に一致するサイズS-
kに減少される。これにより、入力に対する変更は小さく保たれる。
【0051】
具体的に、入力のサイズS
kをサイズS
-
kに減少することは、入力をクロッピングすることを含む。クロッピングは、入力のサイズを減少する計算効率の高い方法であり、例えば、入力の境界又は少なくとも1つの次元の入力の両方の境界に適用することができる。例えば、値1から値Sに配置できるサンプル値を持つサイズS
kを持つ入力を考える。ピクチャの表現において、これは、値1がピクチャの左境界の第1サンプルを示すのに対して、値Sはピクチャの右上境界のサンプルを示すことを指す場合があるクロッピングは、入力のサイズをMだけ減少させるクロッピングが適用された場合に、SからS-Mまでで示されるサンプルを削除することを含む場合がある。これにより、入力の右境界からのサンプルのみが移動され、再スケーリングされた入力のサイズはS-Mになる。代替として、1からM-1までで示されるサンプルを削除することもできる。これにより、左境界の値のみが削除される。代替として、1からM/2-1までで示されるサンプルを削除し、SからS-M/2までで示されるサンプルを削除することで、左境界と右境界の値を削除することもできる。これは、Mが2の整数倍である場合に当てはまり、他のケースでは、例えば、Mが2の整数倍でない場合に、左境界から以下:
【数13】
のサンプルを削除し、右境界から以下:
【数14】
のサンプルを削除することを含む場合がある。単一の境界からサンプルを削除する一方で、単一の境界線からサンプルを削除することによって元の入力の情報を偏った方法で変更しないようにするために、両方の境界からサンプルを削除することが望ましい場合がある。ただし、1つの境界からのみサンプルを削除するクロッピングの方が、場合によっては計算効率が高い場合がある。
【0052】
一実施形態では、サブネットワークkへの入力のサイズSkが、結合ダウンサンプリング比Rkの最も近い小さい整数倍よりも、サブネットワークkの結合ダウンサンプリング比Rkの最も近い大きな整数倍に近い場合、入力のサイズSkは、結合ダウンサンプリング比Rkの最も近い大きな整数倍に一致するサイズS-
kに増大する。増大すると、元の入力の情報が失われないという利点がある場合がある。
【0053】
具体的に、以下を提供できる:入力のサイズSkをサイズS-
kに増大することは、サイズSkの入力をゼロで又はサイズSkの入力から得られたパディング情報でパディングすることを含む。ゼロによるパディングは、入力に情報を追加しない一方で、入力から得られた情報によるパディングは、例えば、入力自体からの情報を使用した投影(reflection)パディング又は反復(repetition)パディングを含むことができる。入力から得られた情報によるパディングは、入力の境界での導出(derivation)の値が大きく変化しない可能性がある一方で、ゼロによるパディングと比較して計算上複雑になる可能性がある。
【0054】
より具体的な実施形態では、サイズSkの入力から得られたパディング情報は、入力のサイズSkをサイズS-
kに増大するために、冗長パディング情報として適用される。具体的に、冗長パディング情報によるパディングは、投影パディングと反復パディングのうちの少なくとも1つを含む場合がある。投影パディングと反復パディングは、パディング処理で情報を追加する各々の境界に最も近い情報を使用するため、歪みが少なくなるという利点を提供できる。
【0055】
また、以下を提供できる:パディング情報が、冗長パディング情報が追加される入力の領域に最も近いサイズSkを持つ入力の少なくとも1つの値であるか又はそれを含む。具体的には、例えば入力の境界にM個のサンプルを追加する場合、これらのM個のサンプルと各々の値は、入力のこの境界に最も近いM個のサンプルから取得できる。これにより、入力の他の部分に対する意図しない関係が人為的に作成されることを回避できる。
【0056】
更なる実施形態では、サブネットワークkへの入力のサイズSkが、ダウンサンプリング比Rkの最も近い大きい整数倍に一致するサイズS-
kに増大される。デフォルトで入力のサイズを最も大きな整数倍に増大させると、元の入力の情報が失われない。
【0057】
一実施形態では、上記の条件は以下:
【数15】
を利用しており、その条件は、
Minが|S
k-lR
k|を投げる場合、入力のサイズS
kは、以下に減少され:
【数16】
Minが|S
k-R
k(l+1)|を投げる場合、入力のサイズS
kは、以下に増大される:
【数17】
ことを含んでもよい。これにより、各々の最も近い大きい整数倍と最も近い小さい整数倍へのサイズの増大と減少の比較が提供され、これを使用して計算上最も効率的な変更を再スケーリングの入力に適用することができる。
【0058】
より具体的な実施形態では、lが、サブネットワークkへの入力のサイズSkとサブネットワークkの結合ダウンサンプリング比Rkのうちの少なくとも1つを使用して決定される。最も近い小さい整数倍と最も近い大きい整数倍を計算するための数値lは、入力サイズSkの変化を考慮してプリセットされていない場合があるため、何らかの方法で取得される場合がある。結合ダウンサンプリング比Rkと入力サイズSkを使用することで、実際の入力サイズに依存する方法でlを求めることができ、柔軟にlを求めることができる。
【0059】
具体的には、lは次式により決定でき:
【数18】
及び/又は、l+1は次式により決定できる:
【数19】
これにより、各々計算効率の良いl又はl+1の計算が可能になる。lとl+1は、floorとceilの両方を使用して2段階で計算することができる。代替として、floorを使用してlのみを計算し、この計算からl+1を求めることもできる。代替として、ceil関数を使用してl+1を計算し、この値からlを求めることも考えられる。
【0060】
更に、以下を提供できる:少なくとも1つのサブネットワークのダウンサンプリング層のうちの少なくとも1つが、2つの次元で入力にダウンサンプリングを適用し、第1次元のダウンサンプリング比が第2次元のダウンサンプリング比に等しい。
【0061】
更に、以下を提供できる:サブネットワークのすべてのダウンサンプリング層のダウンサンプリング比が等しい。具体的には、ダウンサンプリング比はすべて2に等しい可能性がある。
【0062】
一実施形態では、すべてのサブネットワークは同じ数のダウンサンプリング層を含む。サブネットワークkのダウンサンプリング層の数は、Mkで表すことができ、Mkは自然数である。Mkは、すべてのサブネットワークkについて、同じ値Mを持つことができる。
【0063】
更に、以下を提供できる:サブネットワークのすべてのダウンサンプリング層のダウンサンプリング比が等しい。
【0064】
各々のダウンサンプリング層mのダウンサンプリング比はrmで表すことができるが、mは、サブネットワークを介した入力の処理の方向で、具体的にダウンサンプリング層の実際の番号に対応する。この文脈では、ダウンサンプリング比をrk,mで表すことも想定され、kは自然数であり、mは自然数であり、kはダウンサンプリング比rk,mを持つダウンサンプリング層mが属するサブネットワークkを示す。
【0065】
更に、以下を提供できる:NNの少なくとも2つのサブネットワークが異なる数のダウンサンプリング層を持つ。
【0066】
サブネットワークkの少なくとも1つのダウンサンプリング層mの少なくとも1つのダウンサンプリング比rk,mが、サブネットワークlの少なくとも1つのダウンサンプリング層nの少なくとも1つのダウンサンプリング比rl,nと異なる。具体的には、サブネットワークkとlは異なるサブネットワークである。ダウンサンプリング層m及びダウンサンプリング層nは、サブネットワークを介した入力の処理順序で見たときに、サブネットワークk及びl内の異なる位置にあってよい。
【0067】
更に、以下を提供できる:サブネットワークkへの入力のサイズSkが、結合ダウンサンプリング比Rkの整数倍でないと決定された場合、再スケーリングは、補間フィルタを適用することを含む。この文脈では、サイズを増やすために補間を使用することができる。例えばサイズSkを持つ入力の近隣の2つのサンプル値を使用して中間サンプル値を計算し、近隣のサンプルの間にそれを新たなサンプルとして加えることで、入力にサンプルを追加し、サイズSkを1増やす。これは、入力サイズSkをサイズS-
kに増やすために必要な回数だけ行うことができる。代替として、サイズを小さくするために補間を使用することもできる。例えば、サイズSkを持つ入力の近隣の2つのサンプル値の平均値を求め、これらの近隣の2つのサンプル値の代わりに、補間によって得られたこの平均値を1つのサンプルとして使用する。これにより、サイズSkは1だけ小さくなる。
【0068】
補間は、上の例よりも数学的に複雑になる可能性があり、例えば、隣接のものだけでなく、少なくとも4つの隣接するサンプルの値を考慮することによって得ものも含む可能性がある。補間は、例えば、2つの隣接する列と行の4つのサンプルを含む2次元行列の4つのサンプル値から中間サンプル値を得るために、多次元的に行う場合もある。これにより、本来利用可能な情報を利用して、入力のサイズSkの効率的な増減を得ることができ、その結果、望ましいことに、可能な限り情報損失が少なくなる。
【0069】
本開示は、更に、ニューラルネットワーク(NN)を使用してピクチャを表すビットストリームを復号する方法であって、NNが少なくとも2つのサブネットワークを含み、少なくとも2つのサブネットワークのうちの少なくとも1つのサブネットワークが少なくとも2つのアップサンプリング層を含み、少なくとも1つのサブネットワークが、少なくとも1つの次元でサイズT1を持つ行列を表す入力にアップサンプリングを適用し、方法は、
少なくとも2つのサブネットワークのうちの第1サブネットワークにより入力を処理し、第1サブネットワークの出力を提供するステップであって、出力が、サイズT1とU1の積に対応するサイズT-
2を有し、U1が第1サブネットワークの結合アップサンプリング比U1である、ステップと、
NNを介するビットストリームの処理順序で処理中のサブネットワークによって第1サブネットワークの出力を処理する前に、第1サブネットワークの出力に再スケーリングを適用するステップであって、再スケーリングは、得られた情報に基づいて、少なくとも1つの次元の出力のサイズT-
2を少なくとも1つの次元のサイズT^2に変更することを含む、ステップと、
第2サブネットワークによって再スケーリングされた出力を処理し、第2サブネットワークの出力を提供するステップであって、出力は、T^2とU2の積に対応するサイズT-
3を有し、U2は、第2サブネットワークの結合アップサンプリング比である、ステップと、
NNを使用してビットストリームを処理した後、復号画像を出力として、例えばNNの出力として提供するステップと、
を含む方法を提供する。
【0070】
この文脈において、アップサンプリングは、前の実施形態に従って適用されるダウンサンプリングの逆と考えてもよい。これにより、ニューラルネットワークでビットストリームを処理したときに、再構成又は復号されたピクチャをニューラルネットワークの出力として得ることができる。第1サブネットワークの結合アップサンプリング比U1と第2サブネットワークの結合アップサンプリング比U2は、異なる方法で得ることができ、又は例えば事前に計算される等できる。
【0071】
ニューラルネットワークのアップサンプリング層によって適用されるアップサンプリングは、既知の方法又は技術的に合理的な方法で達成することができる。具体的には、これは、ニューラルネットワークの各々のアップサンプリング層の入力に逆畳み込みを適用することによるアップサンプリングを含むことができる。アップサンプリングは、1次元のみで実行することもでき、行列の形で表現されている場合は入力の2つの次元で実行することもできる。これは、合計でサブネットワークによって適用されるアップサンプリングと、各々のサブネットワークの各アップサンプリング層によって適用されるアップサンプリングの両方に関係する。例えば、サブネットワークは2つの次元で入力にアップサンプリングを適用する場合があるが、このサブネットワークの第1アップサンプリング層は1次元のアップサンプリングのみを適用し、サブネットワークの別のアップサンプリング層は別の次元又は2つの次元で入力にアップサンプリングを適用する場合がある。
【0072】
一般に、ここに示す開示は、特定のアップサンプリングの方法に限定されない。以下に説明するニューラルネットワークの1つ以上の層は、(2次元行列の表現で見たとき)例えば入力ピクチャ又は入力の2つ又は4つの行又は列毎の間のような中間行又は列を追加することによって、逆畳み込みとは異なる方法でアップサンプリングを適用することができる。
【0073】
ここに示す実施形態は、サブネットワーク内ではく、アップサンプリング層を含むサブネットワークによる入力の処理の直後に、適用される再スケーリングを指すものとして理解されるべきである。これは、再スケーリングに関しては、サブネットワークは、複数の層と潜在的に多数のアップサンプリング層を含むが、結合アップサンプリング比を有するアップサンプリングを入力に適用し、再スケーリングされた出力のサイズT-が、例えば後続のサブネットワークのための目標入力サイズであるサイズT^に一致するように、結合アップサンプリング比を有するアップサンプリングを入力に適用し、及びサブネットワークの出力の再スケーリングを適用する1つのエンティティと見なされる。
【0074】
なお、結合アップサンプリング比は、他のサブネットワークの他のアップサンプリング層に関係なく独立して、少なくとも1つのサブネットワークのアップサンプリング層のすべてのアップサンプリング比に従って決定される場合がある。よりs具体的には、サブネットワークkの結合アップサンプリング比U
kは、ここで、kは自然数であり、入力の処理順序におけるサブネットワークの位置を示し、サブネットワークkのすべてのアップサンプリング層のアップサンプリング比uの積を計算することによって得られる場合がある。これは、サブネットワークkについて、次式で表すことができる:
【数20】
ここで、項u
k,mは、サブネットワークkのアップサンプリング層mのアップサンプリング比を示す。サブネットワークは、全部でM個(Mは0より大きい自然数である)のアップサンプリング層を含む場合がある。u
k,mのインデックスmを使用して、入力を処理する順序でサブネットワークkのアップサンプリング層を列挙した場合、mは1から始まり、Mまでの値を取る場合がある。また、アップサンプリング層と各々のアップサンプリング比u
k,mを列挙する他の方法も使用できる。Mは0又は-1から始まる値を取る場合がある。一般に、サブネットワークkのアップサンプリング層mは、このアップサンプリング比がどのサブネットワークk及びサブネットワークk内のどのアップサンプリング層mに属するかの情報を提供するために、関連するアップサンプリング比u
k,mを持つ場合がある。インデックスkは、サブネットワークを列挙するためにのみ提供することができることに注意する。0から始まる整数値にすることができる。また、-1以上の整数値を含むこともでき、又は、任意の妥当な開始点から開始することもできる(例えば、k=-10)。インデックスkの値及びインデックスmの値については、0以上又は-1以上の自然数が好ましいが、発明はこれに限定されない。
【0075】
なお、上記の結合アップサンプリング比を求めるための積は、明示的に計算されてもよいし、例えば、アップサンプリング層のアップサンプリング比とルックアップテーブルを用いて得られ、ルックアップテーブルは、例えば、結合アップサンプリング比を表すエントリを含み、サブネットワークの各々の結合アップサンプリング比が、サブネットワークのアップサンプリング比をテーブルのインデックスとして用いて得られる。同様に、インデックスkは、ルックアップテーブルに対するインデックスとして機能する場合がある。代替として、結合アップサンプリング比は、各サブネットワーク用に保存されている又は各サブネットワークに関連付けられているプリセット値又は事前に計算された値である場合がある。
【0076】
この方法では、例えば上記の1つ以上の実施形態を使用して得られた、減少したサイズのピクチャを符号化するビットストリームからでも、復号されたピクチャを得ることができる。
【0077】
一実施形態では、この方法は、少なくとも2つのサブネットワークによってサブビットストリームを受信するステップを更に含む。これらの少なくとも2つのサブネットワークの各々によって受信されるサブビットストリームは異なる場合がある。前述したように、符号化中に、第1サブビットストリームは、使用可能なサブネットワークのサブセットのみによって元の入力ピクチャを処理し、入力ピクチャのこの部分的な処理の後に出力を提供することによって得ることができる。次に、第2サブビットストリーム又は第2サブビットストリームは、例えば、入力ピクチャをニューラルネットワーク全体、つまりすべてのダウンサンプリング層によって処理した後に得られる。ピクチャを復号する場合、エンコーダのサブネットワークのサブセットによってのみ処理されたサブビットストリームが、同様に、復号されたピクチャを取得する前に最後の幾つかのサブネットワークによってのみ処理されるように、処理を逆順にすることができる。
【0078】
更なる実施形態では、少なくとも1つのサブネットワークの少なくとも1つのアップサンプリング層は、転置畳み込み又は畳み込み層を含む。転置畳み込みは、例えば、ピクチャを符号化する対応するエンコーダに適用されている畳み込みの逆として実装することができる。
【0079】
更なる実施形態では、情報が、復号されたピクチャの高さHと復号されたピクチャの幅Wの少なくとも1つを含む復号されたピクチャの目標サイズ、結合アップサンプリング比U1、結合アップサンプリング比U2、第1サブネットワークのアップサンプリング層の少なくとも1つのアップサンプリング比u1m、第2サブネットワークのアップサンプリング層の少なくとも1つのアップサンプリング比u2m、第2サブネットワークの目標出力サイズT^3、サイズT^2、のうちの少なくとも1つを含む。これらの情報の1つ以上を使用すると、画像の信頼性の高い再構成が可能になる。
【0080】
以下を提供できる:情報が、ビットストリーム、第2ビットストリーム、デコーダで利用可能な情報、のうちの少なくとも1つから得られる。幾つかの情報は、有利なことに、例えば、元のピクチャの高さと幅のようにビットストリームに含めることができるが、幾つかの他の情報、例えば、アップサンプリング比は、上記の実施形態の1つに従う復号方法を実行するデコーダで既に利用可能である。これは、この情報は通常、エンコーダには知られていない場合があるが、デコーダでは利用可能である場合があるため、デコーダ自体からこの情報を取得することがより効率的になり、デコーダに提供されるビットストリームに更なる情報として含める必要がなくなるためである。追加のビットストリームは、例えば、一方の側の追加情報を、他方の側の符号化されたピクチャに関連又はそれを構成する情報から分離するために使用することもでき、そのような情報の間の区別を計算上容易にする。追加のビットストリームを含めるもう1つの利点は、並列処理によって処理を高速化できることである。例えば、サブネットワークがビットストリームの1つの部分のみを必要とし、第2サブネットワークがビットストリームの第2部分のみを必要とする場合(各部分が分離されている)、1つのビットストリームを2つのビットストリームに分割すると有利である。これにより、第2サブネットワークから独立して第1サブネットワークの処理を開始することができ、並列処理能力を高めることができる。一実施形態では、T^3とU2に依存する式に基づいて、少なくとも1つの次元のサイズT-
2をサイズT^2に変更するための再スケーリングが決定され、T^3が第2サブネットワークの出力の目標出力サイズであり、U2が第2サブネットワークの結合アップサンプリング比である。目標出力サイズT^3は、プリセットすることもできるし、例えば復号されたピクチャの意図されたサイズに基づいて逆算することもできる。この実施形態では、サイズT^2は、サブネットワークに関する情報及び/又は得られる出力に基づいて決定することができる。
【0081】
更に、以下を提供できる:少なくとも1つの次元のサイズT-
2をサイズT^2に変更するための再スケーリングが、U2とNに依存する式に基づいて決定され、NはNNを介してビットストリームの処理順序で第1サブネットワークを処理するサブネットワークの総数である。
【0082】
これにより、サイズT-
2は進行中のサブネットワークの数に依存し、更に復号されたピクチャに対して得られる実際の出力サイズに依存する。
【0083】
具体的には、式は、次式で与えられ:
【数21】
ここで、T
outputは、NNの出力の目標サイズである。更に、以下を提供できる:式が以下:
【数22】
で与えられ、T
outputはNNの出力の目標サイズであり、Uは結合アップサンプリング比である。この場合、サイズT
outputを示す指示がビットストリームに含まれてよい。T
outputのサイズをビットストリームに含めることで、復号によって得られる様々な出力サイズも、復号にシグナリングすることができる。
【0084】
更なる実施形態では、式が以下:
【数23】
で与えられる、又は、
式がが以下:
【数24】
で与えられる。
【0085】
複数の定義済みの式のうちどれが選択されているかを示す指示をビットストリーム内に設け、そこから取得することができる。これにより、符号化中にどのような処理が適用されたかを復号にシグナリングすることができ、信頼性の高い方法でピクチャの再構成を可能にする。
【0086】
方法は、さらに、サイズT-
2を有する出力を再スケーリングする前に、出力のサイズT-
2がサイズT^2と一致するかどうかを決定することを含む場合がある。これにより、不必要な再スケーリングや、どの再スケーリングを適用するかの決定に関わる可能性のある計算を回避できる。
【0087】
これに関して、以下を提供できる:サイズT-
2がサイズT^2と一致すると決定された場合、サイズT-
2を変更する再スケーリングは適用されない。これは、例えばデフォルトではT-
2がT^2に一致する場合に同一の再スケーリングが適用される場合を含む。この「同一の」再スケーリングでは、サイズT-
2に変更が適用されない。
【0088】
一実施形態では、方法はさらに、T-
2がT^2より大きいかどうか、又はT-
2がT^2より小さいかどうかを決定するステップを含む。T-
2がT^2より小さいか大きいかを決定することによって、適用される再スケーリングに更なる結果をもたらすことができる。具体的に、T-
2がT^2より大きいと決定された場合、再スケーリングは、サイズT-
2がサイズT^2に減少されるように、サイズT-
2を有する出力にクロッピングを適用することを含んでよい。これにより、サイズT-
2からサイズT^2への計算効率のよい減少が提供される。代替として、T-
2がT^2より小さいと決定された場合、再スケーリングは、サイズT-
2がサイズT^2に増大されるように、サイズT-
2を有する出力にパディングを適用することを含んでよい。
【0089】
具体的には、クロッピング操作は、サイズT-
2が減少されてT^2と等しくなるように、出力の端からサンプルを破棄することに相当する。デコーダでは、通常、クロッピング操作はサブネットワークの最後に適用される。その理由は、エンコーダでは通常、サブネットワークの前にサイズ変更のためのパディングを適用することが望ましいためである。これは、パディングにより、情報が失われないこと、及び情報が変更されないこと(情報を含む入力のサイズだけが増大する)が保証されるからである。デコーダでは、エンコーダが適用した操作を逆に戻すため、サブネットワークの後にクロッピングが適用される。
【0090】
具体的に、パディングは、サイズT-
2の出力をゼロで又はサイズT-
2の出力から得られたパディング情報でパディングすることを含んでよい。ゼロを使用した情報で、又はサイズT-
2の出力から取得した情報でパディングすると、同じ出力の一部ではなかった出力に情報が追加されないか、又は0でパディングすることで計算効率の良い方法で実装できる。
【0091】
更なる実施形態では、サイズT-
2の出力から得られたパディング情報は、出力のサイズT-
2をサイズT^2に増大するために、冗長パディング情報として適用される。冗長パディングを適用しても追加情報は追加されないが、すでに存在する情報が出力に追加されるため、再構築された画像の歪みが少なくなる可能性がある。
【0092】
より具体的には、パディングは投影パディング又は反復パディングを含む場合がある。
【0093】
更に、以下を提供できる:パディング情報が、冗長パディング情報が追加される出力の領域に最も近いサイズT-
2を持つ出力の少なくとも1つの値であるか又はそれを含む。
【0094】
更なる実施形態では、T-
2がT^2に等しくないと決定された場合、再スケーリングは、補間フィルタを適用することを含む。補間を適用することは、再構成されたピクチャの品質を向上させるのに役立つ可能性がある。
【0095】
更なる実施形態では、情報がビットストリーム又はさらなるビットストリームで提供され、ビットストリームを符号化したエンコーダの少なくとも1つのダウンサンプリング層mを含む少なくとも1つのサブネットワークkの結合ダウンサンプリング比Rkを含み、サブネットワークkが入力を処理する順序でデコーダのサブネットワークに対応する。これにより、復号中に行われた処理が符号化によって反転されることを保証できる。
【0096】
更に、以下を提供できる:NNの少なくとも1つのサブネットワークの少なくとも1つのアップサンプリング層が、2つの次元でアップサンプリングを適用し、第1次元のアップサンプリング比が第2次元のアップサンプリング比に等しい。
【0097】
更に、サブネットワークのすべてのアップサンプリング層のアップサンプリング比は等しくてもよい。これは計算効率よく実装できる。
【0098】
一実施形態では、すべてのサブネットワークは同じ数のアップサンプリング層を含む。アップサンプリング層の数は2以上である。
【0099】
更に、以下を提供できる:サブネットワークのすべてのアップサンプリング層のアップサンプリング比が等しい。
【0100】
代替として、NNの少なくとも2つのサブネットワークが異なる数のアップサンプリング層を持つ場合がある。任意で、サブネットワークkの少なくとも1つのアップサンプリング層mの少なくとも1つのアップサンプリング比uk,mが、サブネットワークlの少なくとも1つのアップサンプリング層nの少なくとも1つのアップサンプリング比ul,nと異なる場合がある。インデックスk、l、m、nは、0より大きい整数値であってよく、各々NNへの入力の処理順序におけるサブネットワーク又はアップサンプリング層の位置を示すことができる。
【0101】
以下を提供できる:サブネットワークkとlは異なるサブネットワークである。更に、アップサンプリング層m及びアップサンプリング層nは、サブネットワークを介した入力の処理順序で見たときに、サブネットワークk及びl内の異なる位置にあってよい。
【0102】
更に、以下を提供できる:少なくとも2つの異なるサブネットワークの結合アップサンプリング比が等しいか、又はすべてのサブネットワークの結合アップサンプリング比が対ごとに互いに素であってもよい。
【0103】
上記の実施形態を考慮して、以下を提供できる:NNは、NNを介したビットストリームの処理順序において、少なくとも1つの次元の入力のサイズを変更しない変換を入力に適用する更なるユニットを含み、
方法は、再スケーリングの結果、少なくとも1つの次元の入力のサイズが増大する場合には、更なるユニットによる入力の処理の後、NNの次のサブネットワークによる入力の処理の前に、再スケーリングを適用するステップを含み、及び/又は、
方法は、再スケーリングが、少なくとも1つの次元の入力のサイズの減少を含む場合には、更なるユニットによる入力の処理の前に、再スケーリングを適用するステップを含む。各々の更なるユニットの前又は後に再スケーリングを適用することによって、再スケーリングを計算効率の良い方法で実装することができ、例えば、例えば補間の信頼性を低下させる可能性がある、更なるユニットによっていずれにせよ変更される入力への再スケーリングを回避する。
【0104】
具体的には、更なるユニットは、バッチ正規化器及び/又はReLU(rectified linear unit)であるか又はそれらを含むことができる。このようなユニットは、今日では幾つかのニューラルネットワークの一部であり、ニューラルネットワークを介した入力の処理の品質を高めることができる。
【0105】
ビットストリームが、ピクチャの異なるカラーチャネルに対応するサブビットストリームを含む場合があり、NNがサブネットワーク(sNN)を含み、各sNNは、上述の実施形態のいずれかに記載の方法をsNNへの入力として提供されるサブビットストリームに適用するように適応される。このようなサブニューラルネットワークの適用は、各サブニューラルネットワークが、サブネットワークが互いに影響を与えることなく、上記のいずれかの実施形態に沿って入力の再スケーリングと処理を実行する方法で提供することができる。したがって、これらは互いに独立していて、各々の入力を互いに独立して処理することができ、これはまた、別のサブニューラルネットワークへの入力の処理中に適用される再スケーリングと比較して、異なる再スケーリングがサブニューラルネットワークの1つによって適用されることを含むことができる。更に、サブニューラルネットワークは、サブネットワーク又は各々の層に関する構成、又はサブネットワーク内の層の構造に関して必ずしも同一ではない。
【0106】
符号化に関して、以下を提供できる:再スケーリングがサイズS
mをサイズS
-
mに増大することを含む場合、サイズS
-
mは次式:
【数25】
で与えられ、
再スケーリングがサイズS
mをサイズS
-
mに減少させることを含む場合、サイズS
-
mは次式:
【数26】
で与えられる。
【0107】
復号に関して、以下を提供できる:再スケーリングがサイズT
-
2をサイズT
^
2に増大することを含む場合、サイズT
^
2は次式:
【数27】
で与えられ、
再スケーリングがサイズT
-
2をサイズT
^
2に減少させることを含む場合、サイズT
^
2は次式:
【数28】
で与えられる。
【0108】
本開示は、更に、ピクチャを符号化するためのエンコーダであって、エンコーダは、
ピクチャを受信するための受信機と、
ニューラルネットワーク(NN)を実装するように構成された1つ以上のプロセッサであって、NNは、NNを介したピクの処理順序において、少なくとも2つのサブネットワークを含み、各サブネットワークは少なくとも2つの層を含み、少なくとも2つのサブネットワークのうちの少なくとも1つのサブネットワークの少なくとも2つの層は、入力にダウンサンプリングを適用するように適合される少なくとも1つのダウンサンプリング層を含む、プロセッサと、
ビットストリームを出力するための送信機と、
を含み、前記エンコーダは、上述の実施形態のうちのいずれかに記載の方法を実行するように適合されている、エンコーダを提供する。
【0109】
更に、ビットストリームを符号化するためのエンコーダであって、エンコーダは、ニューラルネットワーク(NN)を実装するための1つ以上のプロセッサを含み、1つ以上のプロセッサは、上述の実施形態のいずれかに記載の方法を実行するように適応されている、エンコーダが提供される。
【0110】
更に、ピクチャを符号化するエンコーダであって、エンコーダは、ニューラルネットワーク(NN)を実装するよう構成される1つ以上のプロセッサを含み、NNは、NNを介するピクチャの処理順序で、少なくとも2つのサブネットワークを含み、少なくとも2つのサブネットワークのうちの少なくとも1つのサブネットワークが少なくとも2つのダウンサンプリング層を含み、少なくとも1つのサブネットワークが、少なくとも1つの次元でサイズS1を持つ行列を表す入力にダウンサンプリングを適用するよう適応され、エンコーダ及び/又は1つ以上のプロセッサは、以下:
少なくとも2つのダウンサンプリング層を含む少なくとも1つのサブネットワークで入力を処理する前に、入力に再スケーリングを適用し、再スケーリングが、S-
1が少なくとも1つのサブネットワークの結合ダウンサンプリング比R1の整数倍になるように、少なくとも1つの次元のサイズS1をS-
1に変更することを含み、
再スケーリングの後、少なくとも2つのダウンサンプリング層を含む少なくとも1つのサブネットワークにより入力を処理し、サイズS2の出力を提供し、S2はS1より小さく、
NNを使用してピクチャを処理した後、ビットストリームを出力として提供する、
ことによりピクチャを符号化するよう適応される、エンコーダが提供される。
【0111】
エンコーダの更なる実施形態は、上記で説明した符号化方法の特徴を実装するように構成される。
【0112】
これらの実施形態は、上記の実施形態で説明した符号化方法の利点をエンコーダに実装することを可能にする。
【0113】
更に、ピクチャを表すビットストリームを復号するためのデコーダであって、デコーダは、
ビットストリームを受信するための受信機と、
ニューラルネットワーク(NN)を実装するように構成された1つ以上のプロセッサであって、NNは、NNを介したビットストリームの処理順序において、少なくとも2つのサブネットワークを含み、各サブネットワークは少なくとも2つの層を含み、少なくとも2つのサブネットワークの各々の少なくとも2つの層は少なくとも1つのアップサンプリング層を含み、各アップサンプリング層は、入力にアップサンプリングを適用するように適合される、プロセッサと、
復号されたピクチャを出力するための送信機と、
を含み、デコーダは、上述の実施形態のうちのいずれかに記載の方法を実行するように適合されている、デコーダを提供する。
【0114】
本開示では、更に、ピクチャを表すビットストリームを復号するためのデコーダであって、デコーダは、ニューラルネットワーク(NN)を実装するための1つ以上のプロセッサを含み、1つ以上のプロセッサは、上述の実施形態のいずれかに記載の方法を実行するように適応されている、デコーダが提供される。
【0115】
更に、ピクチャを表すビットストリームを復号するデコーダであって、デコーダは、
ビットストリームを受信する受信機と、
ニューラルネットワーク(NN)を実装するよう構成される1つ以上のプロセッサであって、NNは、NNを介したビットストリームの処理順序で、少なくとも2つのサブネットワークを含み、少なくとも2つのサブネットワークのうちの少なくとも1つのサブネットワークが少なくとも2つのアップサンプリング層を含み、少なくとも1つのサブネットワークが、少なくとも1つの次元でサイズT1を持つ行列を表す入力にアップサンプリングを適用するよう適応される、プロセッサと
を含み、エンコーダ及び/又は1つ以上のプロセッサは、以下:
少なくとも2つのサブネットワークのうちの第1サブネットワークにより入力を処理し、第1サブネットワークの出力を提供し、出力が、サイズT1とU1の積に対応するサイズT-
2を有し、U1が第1サブネットワークの結合アップサンプリング比U1であり、
NNを介するビットストリームの処理順序で処理中のサブネットワークによって第1サブネットワークの出力を処理する前に、第1サブネットワークの出力に再スケーリングを適用し、再スケーリングは、得られた情報に基づいて、少なくとも1つの次元の出力のサイズT-
2を少なくとも1つの次元のサイズT^2に変更することを含み、
第2サブネットワークによって再スケーリングされた出力を処理し、第2サブネットワークの出力を提供し、出力は、T^2とU2の積に対応するサイズT-
3を有し、U2は、第2サブネットワークの結合アップサンプリング比であり、
NNを使用してビットストリームを処理した後、復号されたピクチャを出力として、例えばNNの出力として提供する、
ことによりビットストリームを復号するよう構成される、デコーダが提供される。
【0116】
デコーダの更なる実施形態は、上記で説明した復号方法の特徴を実装するように構成される。
【0117】
これらの実施形態は、デコーダにビットストリームを復号するための上記の実施形態を有利に実装する。
【0118】
更に、コンピュータシステムにより実行されると、コンピュータシステムに上述の実施形態のいずれかに記載の方法を実行させるコンピュータ実行命令を含むコンピュータ可読(非一時的)記憶媒体が提供される。
【図面の簡単な説明】
【0119】
【
図1A】本開示の実施形態を実施するよう構成されるビデオコーディングシステムの例を示すブロック図である。
【
図1B】本開示の幾つかの実施形態を実施するよう構成されるビデオコーディングシステムの別の例を示すブロック図である。
【
図2】符号化機器又は復号機器の例を示すブロック図である。
【
図3】符号化機器又は復号機器の別の例を示すブロック図である。
【
図4】一実施形態によるエンコーダとデコーダを一緒に示している。
【
図6】VAEフレームワークに沿ったエンコーダとデコーダを示している。
【
図7】一実施形態に従った
図4によるエンコーダの構成要素を示す。
【
図8】一実施形態に従った
図4によるデコーダの構成要素を示す。
【
図8A】
図8のデコーダのより具体的な実施形態を示す。
【
図11】更なるエンコーダ及び更なるデコーダを示す。
【
図12】一実施形態による入力の再スケーリングと処理を示す。
【
図13】一実施形態による再スケーリングオプションをシグナリングする実施形態を示している。
【
図16】パディング操作の様々な可能性の比較を示している。
【
図17】パディング操作の様々な可能性の更なる比較を示している。
【
図18】一実施形態に沿った、エンコーダとデコーダ、及びエンコーダとデコーダへの入力の処理における関係を示している。
【
図19】一実施形態によるエンコーダの概略図を示している。
【
図20】一実施形態によるピクチャの符号化の方法のフロー図を示している。
【
図21】一実施形態による再スケーリングを得るフロー図を示している。
【
図22】一実施形態によるデコーダの概略図を示している。
【
図23】一実施形態によるビットストリームの復号の方法のフロー図を示している。
【
図24】一実施形態による再スケーリングを得るフロー図を示している。
【
図25】一実施形態によるエンコーダの概略図を示している。
【
図26】一実施形態によるデコーダの概略図を示している。
【発明を実施するための形態】
【0120】
以下では、図を参照して幾つかの実施形態を説明する。
図1から3は、後の図に記載されている本発明のより具体的な実施形態とともに使用できるビデオコーディングシステム及び方法を参照する。具体的には、
図1から3に関連して説明されている実施形態は、ビットストリームの符号化及び/又はビットストリームの復号にニューラルネットワークを利用する、以下に説明する符号化/復号技術とともに使用できる。
【0121】
以下の説明では、本開示の部分を形成し、図示により本開示の特定の態様又は本開示の実施形態が使用され得る特定の態様を示す、添付の図面を参照する。実施形態は、他の態様で使用され、図に示されない構造的又は論理的変化を含んでよいことが理解される。以下の詳細な説明は、従って、限定的意味と考えられるべきではなく、本開示の範囲は添付の特許請求の範囲により定められる。
【0122】
例えば、記載の方法に関連する開示は、方法を実行するよう構成される対応する装置又はシステムについても当てはまり、逆も同様である。例えば、1又は複数の特定の方法のステップが説明される場合、1つ以上のユニットが明示的に説明され又は図示されない場合でも、対応する装置は、説明される1又は複数の方法のステップを実行するために、1又は複数のユニット、例えば機能ユニットを含んでよい(例えば、1つのユニットが1又は複数のステップを実行し、又は複数のユニットの各々が複数のステップのうちの1つ以上を実行する)。他方で、例えば、特定の機器が1又は複数のユニット、例えば機能ユニットに基づき説明される場合、1又は複数のステップが明示的に説明され又は図示されない場合でも、対応する方法は、1又は複数のユニットの機能を実行するための1つのステップを含んでよい(例えば、1つのステップが1又は複数のユニットの機能を実行し、又は複数のステップの各々が複数のユニットのうちの1つ以上の機能を実行する)。更に、ここで説明される種々の例示的な実施形態及び/又は態様の特徴は、特に断りのない限り、互いに結合されてよいことが理解される。
【0123】
ビデオコーディングは、標準的に、ビデオ又はビデオシーケンスを形成する、ピクチャのシーケンスの処理を表す。用語「ピクチャ」の代わりに、用語「フレーム」又は「画像」がビデオ符号化の分野では同義語として使用され得る。ビデオコーディング(又は一般的にコーディング)は、ビデオ符号化及びビデオ復号の2つの部分を含む。ビデオ符号化は、ソース側で実行され、標準的に、元のビデオピクチャを処理して(例えば、圧縮による)、(より効率的な記憶及び/又は伝送のために)ビデオピクチャを表現するために必要なデータ量を削減することを含む。ビデオ復号は、宛先側で実行され、標準的に、エンコーダと比べて逆の処理を含み、ビデオピクチャを再構成する。ビデオピクチャ(又は一般的にピクチャ)の「コーディング」を参照する実施形態は、ビデオピクチャ又は各々のビデオシーケンスの「符号化」又は「復号」に関連すると理解されるべきである。符号化部分及び復号部分の結合は、コーデック(CODEC (Coding and Decoding))とも呼ばれる。
【0124】
無損失ビデオ符号化の場合には、元のビデオピクチャが再構成可能である。つまり、再構成されたビデオピクチャは、元のビデオピクチャと同じ品質を有する(伝送損失、又は記憶若しくは伝送中に他のデータ損失が無いと仮定する)。損失ビデオ符号化の場合には、例えば量子化による更なる圧縮が実行され、ビデオピクチャを表現するデータ量を削減する。これは、デコーダで完全に再構成できない。つまり、再構成されたビデオピクチャの品質は、元のビデオピクチャの品質と比べて低い又は悪い。
【0125】
幾つかのビデオ符号化標準は、「損失ハイブリッドビデオコーデック」のグループに属する(つまり、サンプルドメインにおける空間及び時間予測と、変換ドメインにおける量子化を適用する2D変換符号化と、を結合する)。ビデオシーケンスの各ピクチャは、標準的に、重なり合わないブロックのセットにパーティションされ、コーディングは、標準的に、ブロックレベルで実行される。言い換えると、エンコーダにおいて、例えば空間(イントラピクチャ)予測及び/又は時間(インターピクチャ)予測を用いて予測ブロックを生成し、予測ブロックを現在ブロック(現在処理されている/処理されるべきブロック)から減算して残差ブロックを取得し、残差ブロックを変換し、及び変換ドメインで残差ブロックを量子化して、伝送されるべきデータ量を削減し(圧縮)することにより、ビデオは標準的にブロック(ビデオブロック)レベルで処理され、つまり符号化される。一方で、デコーダにおいて、エンコーダと比べて逆の処理が、符号化又は圧縮されたブロックに対して適用されて、提示するために現在ブロックを再構成する。更に、エンコーダは、デコーダ処理ループを複製して、後続のブロックを処理する、つまりコーディングするために、両方が同一の予測(例えば、イントラ及びインター予測)及び/又は再構成を生成するようにする。最近では、一部又は符号化と復号のチェーン全体が、ニューラルネットワーク、又は一般に任意の機械学習又は深層学習フレームワークを使用して実装されている。
【0126】
ビデオコーディングシステム10の以下の実施形態では、ビデオエンコーダ20及びビデオデコーダ30は
図1に基づき説明される。
【0127】
図1Aは、本願の技術を利用し得る例示的なコーディングシステム10、例えばビデオコーディングシステム10(又は略してコーディングシステム10)を示す概略的ブロック図である。ビデオコーディングシステム10のビデオエンコーダ20(又は略してエンコーダ20)及びビデオデコーダ30(又は略してデコーダ30)は、本願で説明される種々の例に従う技術を実行するよう構成され得る装置の例を表す。
【0128】
図1Aに示すように、コーディングシステム10は、符号化ピクチャデータ21を例えば符号化ピクチャデータ13を復号する宛先装置14に提供するよう構成されるソース装置12を含む。
【0129】
ソース装置12は、エンコーダ20を含み、追加でつまり任意で、ピクチャソース16、プリプロセッサ(又は前処理ユニット)18、例えばピクチャプリプロセッサ18、及び通信インタフェース又は通信ユニット22を含んでよい。本開示の幾つかの実施形態(例えば、2つの処理層の間の初期再スケーリング又は再スケーリングに関連する)は、エンコーダ20によって実装することができる。幾つかの実施形態(例えば、初期再スケーリングに関連する)は、ピクチャプリプロセッサ18によって実装することができる。
【0130】
ピクチャソース16は、任意の種類のピクチャキャプチャ装置、例えば現実のピクチャをキャプチャするカメラ、及び/又は任意の種類のピクチャ生成装置、例えばコンピュータアニメーションピクチャを生成するコンピュータグラフィックプロセッサ、又は現実世界のピクチャ、コンピュータの生成したピクチャ(例えば、スクリーンコンテンツ、仮想現実(virtual reality (VR))ピクチャ)及び/又はそれらの任意の組み合わせ(例えば、拡張現実(augmented reality (AR))ピクチャ)を取得し及び/又は提供する任意の種類の他の装置、を含み又はそれであってよい。ピクチャソースは、前述のピクチャのうちのいずれかを格納する任意の種類のメモリ又は記憶であってよい。
【0131】
プリプロセッサ18及び前処理ユニット18により実行される処理と対照的に、ピクチャ又はピクチャデータ17は、生ピクチャ又は生ピクチャデータ17とも呼ばれてよい。
【0132】
プリプロセッサ18は、(生)ピクチャデータ17を受信し、ピクチャデータ17に前処理を実行して、前処理されたピクチャ19又は前処理されたピクチャデータ19を取得するよう構成される。プリプロセッサ18により実行される前処理は、例えばトリミング、色形式変換(例えば、RGBからYCbCrへ)、色補正、又はノイズ除去を含んでよい。前処理ユニット18は任意的コンポーネントであってよいことが理解できる。
【0133】
ビデオエンコーダ20は、前処理されたピクチャデータ19を受信し、符号化ピクチャデータ21を提供するよう構成される。
【0134】
ソース装置12の通信インタフェース22は、符号化ピクチャデータ21を受信し、符号化ピクチャデータ21(又はその任意の更なる処理されたバージョン)を通信チャネル13を介して別の装置、例えば宛先装置14又は任意の他の装置へ記憶又は直接再構成のために送信するよう構成されてよい。
【0135】
宛先装置14は、デコーダ30(例えば、ビデオデコーダ30)を含み、追加で、つまり任意で、通信インタフェース又は通信ユニット28、ポストプロセッサ32(又は後処理ユニット32)、及びディスプレイ装置34を含んでよい。
【0136】
宛先装置14の通信インタフェース28は、符号化ピクチャデータ21(又はその任意の更なる処理されたバージョン)を、例えばソース装置12から直接に又は任意の他のソース、例えば記憶装置、例えば符号化ピクチャデータ記憶装置から受信し、符号化ピクチャデータ21をデコーダ30へ提供するよう構成される。
【0137】
通信インタフェース22及び通信インタフェース28は、符号化ピクチャデータ21又は符号化データ13を、ソース装置12と宛先装置14との間の直接通信リンク、例えば直接有線又は無線接続、又は任意の種類のネットワーク、例えば有線又は無線ネットワーク、又はそれらの任意の組み合わせ、又は任意の種類の私設及び公衆ネットワーク、又はそれらの任意の種類の組み合わせを介して送信又は受信するよう構成されてよい。
【0138】
通信インタフェース22は、通信リンク又は通信ネットワークを介して送信するために、例えば、符号化ピクチャデータ21を適切な形式、例えばパケットにパッケージし、及び/又は任意の種類の送信符号化若しくは処理を用いて符号化ピクチャデータを処理するよう構成されてよい。
【0139】
通信インタフェース28は、通信インタフェース22の相手方を形成し、例えば、送信されたデータを受信し、任意の種類の対応する送信復号若しくは処理を用いて送信データを処理し、及び/又はパッケージ解除して符号化ピクチャデータ21を取得するよう構成されてよい。
【0140】
通信インタフェース22及び通信インタフェース28の両方は、の
図1Aでソース装置12から宛先装置14を指す通信チャネル13の矢印により示されるように、単方向通信インタフェース、又は、双方向通信インタフェースとして構成されてよく、例えば接続を確立するため、通信リンク及び/又はデータ送信、例えば符号化ピクチャデータ送信に関連する任意の他の情報に確認応答しこれを交換するために、例えばメッセージを送信し及び受信するよう構成されてよい。
【0141】
デコーダ30は、符号化ピクチャデータ21を受信し、復号されたピクチャデータ31又は復号されたピクチャ31を提供するよう構成される(更なる詳細は、例えば
図3に基づき後述される)。
【0142】
宛先装置14のポストプロセッサ32は、復号されたピクチャデータ31(再構成ピクチャデータとも呼ばれる)、例えば復号されたピクチャ31を後処理して、後処理されたピクチャデータ33、例えば後処理されたピクチャ33を取得するよう構成される。後処理ユニット32により実行される後処理は、例えば色形式変換(例えば、YCbCrからRGBへ)、色補正、トリミング、又は再サンプリング、又は、例えば復号されたピクチャデータ31を例えばディスプレイ装置34による表示のために準備するための任意の他の処理、を含んでよい。
【0143】
本開示の幾つかの実施形態は、デコーダ30又はポストプロセッサ32によって実装されることができる。
【0144】
宛先装置14のディスプレイ装置34は、例えばユーザ又はビューアにピクチャを表示するために、後処理されたピクチャデータ33を受信するよう構成される。ディスプレイ装置34は、再構成ピクチャを提示する任意の種類のディスプレイ、例えば内蔵又は外部ディスプレイ又はモニタであり又はそれを含んでよい。ディスプレイは、例えば液晶ディスプレイ(liquid crystal displays (LCD))、有機発光ダイオード(organic light emitting diodes (OLED))ディスプレイ、プラズマディスプレイ、プロジェクタ、マイクロLEDディスプレイ、シリコン上の液晶(liquid crystal on silicon (LCoS))、デジタル光プロセッサ(digital light processor(DLP))又は任意の種類の他のディスプレイを含んでよい。
【0145】
図1Aはソース装置12及び宛先装置14を別個の装置として示すが、装置の実施形態は、ソース装置12又は対応する機能と宛先装置14又は対応する機能の両方又は両方の機能を含んでもよい。このような実施形態では、ソース装置12又は対応する機能及び宛先装置14又は対応する機能は、同じハードウェア及び/又はソフトウェア又は別個のハードウェア及び/又はソフトウェアを用いて又はそれらの任意の組み合わせにより実装されてよい。
【0146】
説明に基づき当業者に明らかなように、
図1Aに示されるようなソース装置12及び/又は宛先装置14内の異なるユニットの機能又は機能の存在及び(正確な)分割は、実際の装置及び用途に依存して変化してよい。
【0147】
エンコーダ20(例えば、ビデオエンコーダ20)、又はデコーダ30(例えば、ビデオデコーダ30)、又はエンコーダ20及びデコーダ30の両方は、1つ以上のマイクロプロセッサ、デジタル信号プロセッサ(digital signal processors (DSP))、特定用途向け集積回路(application-specific integrated circuits (ASIC))、フィールドプログラマブルゲートアレイ(field-programmable gate arrays (FPGA))、個別ロジック、ハードウェア、ビデオ符号化専用若しくはそれらの任意の組み合わせのような、
図1Bに示される処理回路により実装されてよい。エンコーダ20は、種々のモジュール及び/又はここで説明される任意の他のエンコーダシステム若しくはサブシステムを実現するために、処理回路46により実装されてよい。デコーダ30は、種々のモジュール及び/又はここで説明された任意の他のデコーダシステム若しくはサブシステムを実現するために、処理回路46により実装されてよい。処理回路は、後に議論されるような種々の動作を実行するよう構成されてよい。
図3に示すように、技術が部分的にソフトウェアで実装される場合、装置は、適切な非一時的コンピュータ可読記憶媒体内のソフトウェアのための命令を格納してよく、該命令を1つ以上のプロセッサを用いるハードウェアで実行して、本開示の技術を実行してよい。ビデオエンコーダ20及びビデオデコーダ30のいずれも、例えばの
図1Bに示されるように、単一の装置内の結合されたエンコーダ/デコーダ(encoder/decoder (CODEC))の部分として統合されてよい。
【0148】
ソース装置12及び宛先装置14は、任意の種類のハンドヘルド又は固定装置、例えばノートブック又はラップトップコンピュータ、移動電話機、スマートフォン、タブレット又はタブレットコンピュータ、カメラ、デスクトップコンピュータ、セットトップボックス、テレビジョン、ディスプレイ装置、デジタルメディアプレイヤ、ビデオゲームコンソール、(コンテンツサービスサーバ、又はコンテンツ配信サーバのような)ビデオストリーミング装置、ブロードキャスト受信装置、ブロードキャスト送信装置、等を含む、広範な装置のうちのいずれかを含んでよく、任意の種類のオペレーティングシステムを使用してよく又は使用しなくてよい。幾つかの場合には、ソース装置12及び宛先装置14は、無線通信のために装備されてよい。従って、ソース装置12及び宛先装置14は、無線通信装置であってよい。
【0149】
幾つかの場合には、
図1Aに示されるビデオコーディングシステム10は単に例であり、本願の技術は、必ずしも符号化装置と復号装置との間の任意のデータ通信を含まないビデオコーディング設定(例えば、ビデオ符号化又はビデオ復号)に適用してよい。他の例では、データはローカルメモリから読み出される、ネットワークを介してストリーミングされる、等である。ビデオ符号化装置は、データを符号化しメモリに格納してよく、及び/又はビデオ復号装置はデータをメモリから読み出し復号してよい。幾つかの例では、符号化及び復号は、互いに通信しないが単にデータをメモリへと符号化し及び/又はメモリからデータを読み出し復号する装置により実行される。
【0150】
説明の便宜上、幾つかの実施形態は、ここで、例えば高効率ビデオコーディング(High-Efficiency Video Coding (HEVC))、又はバーサタイルビデオコーディング(Versatile Video coding(VVC))のリファレンスソフトウェア、ITU-Tビデオコーディング専門家グループ(ITU-T Video Coding Experts Group (VCEG))及びISO/IEC動画専門家グループ(Motion Picture Experts Group (MPEG))のビデオコーディングに関する共同作業部会(Joint Collaboration Team on Video Coding (JCT-VC))により開発された次世代ビデオコーディング規格を参照して説明される。当業者は、本発明の実施形態がHEVC又はVVCに限定されないことを理解するだろう。
【0151】
図2は、本開示の実施形態によるビデオコーディング装置400の概略図である。ビデオコーディング装置400は、ここに説明したような開示の実施形態を実施するのに適する。実施形態では、ビデオ符号化装置400は、
図1Aのビデオデコーダ30のようなデコーダ、又は
図1Aのビデオエンコーダ20のようなエンコーダであってよい。
【0152】
ビデオコーディング装置400は、データを受信するためのイングレスポート410(又は入力ポート410)及び受信機ユニット(receiver unit (Rx))420と、データを処理するためのプロセッサ、論理ユニット、又は中央処理ユニット(central processing unit (CPU))430と、データを送信するための送信機ユニット(transmitter unit (Tx))440及びイグレスポート450(又は出力ポート460)と、データを格納するためのメモリ460と、を含む。ビデオコーディング装置400は、イングレスポート410、受信機ユニット420、送信機ユニット440、及びイグレスポート450に接続された、光若しくは電気信号のイグレス若しくはイングレスのための光-電気(optical-to-electrical (OE))コンポーネント及び電気-光(electrical-to-optical (EO))コンポーネントも含んでよい。
【0153】
プロセッサ430は、ハードウェア及びソフトウェアにより実装される。プロセッサ430は、1つ以上のCPUチップ、コア(例えば、マルチコアプロセッサ)、FPGA、ASIC、及びDSPとして実装されてよい。プロセッサ430は、イングレスポート410、受信機ユニット420、送信機ユニット440、イグレスポート450、及びメモリ460と通信する。プロセッサ430は、コーディングモジュール470を含む。コーディングモジュール470は、上述の開示の実施形態を実装する。例えば、コーディングモジュール470は、種々のコーディング動作を実装し、処理し、準備し、又は提供する。コーディングモジュール470の中に含まれるものは、従って、ビデオコーディング装置400の機能に実質的な改良を提供し、ビデオコーディング装置400の異なる状態への変換をもたらす。代替として、コーディングモジュール470は、メモリ460に格納されプロセッサ430により実行される命令として実装される。
【0154】
メモリ460は、1つ以上のディスク、テープドライブ、及び固体ドライブを含んでよく、プログラムが実行のために選択されるとき該プログラムを格納するため及びプログラムの実行中に読み出される命令及びデータを格納するためのオーバフローデータ記憶装置として使用されてよい。メモリ460は、例えば、揮発性及び/又は不揮発性であってよく、読み出し専用メモリ(read-only memory (ROM))、ランダムアクセスメモリ(random access memory (RAM))、三値連想メモリ(ternary content-addressable memory (TCAM))、及び/又は静的ランダムアクセスメモリ(static random-access memory (SRAM))であってよい。
【0155】
図3は、例示的な実施形態による
図1からのソース装置12及び宛先装置14の一方又は両方として使用されてよい機器500の簡略ブロック図である。
【0156】
機器500内のプロセッサ502は、中央処理ユニットであり得る。代替として、プロセッサ502は、現在存在する又は将来開発される情報を操作し又は処理できる任意の他の種類の装置又は複数の装置であり得る。開示の実装は図示のように単一のプロセッサ、例えばプロセッサ502により実施できるが、速度及び効率における利益は、1つより多くのプロセッサを用いて達成できる。
【0157】
機器500内のメモリ504は、一実装では、読み出し専用メモリ(read only memory (ROM))装置又はランダムアクセスメモリ(random access memory, RAM)装置であり得る。任意の他の適切な種類の記憶装置が、メモリ504として使用できる。メモリ504は、バス512を用いてプロセッサ502によりアクセスされるコード及びデータ506を含み得る。メモリ504は、オペレーティングシステム508及びアプリケーションプログラム510を更に含み得る。アプリケーションプログラム510は、プロセッサ502がここに記載の方法を実行することを可能にする少なくとも1つのプログラムを含む。例えば、アプリケーションプログラム510は、ここに記載の方法を実行するビデオコーディングアプリケーションを更に含むアプリケーション1~Nを含むことができる。
【0158】
機器500は、ディスプレイ518のような1つ以上の出力装置も含み得る。ディスプレイ518は、一例では、タッチ入力を感知するよう動作するタッチ感応要素とディスプレイを結合するタッチ感応ディスプレイであってよい。ディスプレイ518は、バス512を介してプロセッサ502と結合され得る。
【0159】
ここでは単一のバスとして示されるが、機器500のバス512は複数のバスで構成できる。更に、2次記憶514は、機器500の他のコンポーネントに直接接続でき、又はネットワークを介してアクセスでき、メモリカードのような単一の統合ユニット又は複数のメモリカードのような複数のユニットを含むことができる。機器500は、従って、様々な構成で実装できる。
【0160】
以下、本発明のより具体的、非限定的、及び例示的な実施形態について説明する。その前に、開示の理解を助ける幾つかの説明を提供する。
【0161】
人工ニューラルネットワーク(Artificial neural networks (ANN))又はコネクショニストシステムは、動物の脳を構成する生体神経網から漠然と着想を得たコンピューティングシステムである。ANNは、人工ニューロンと呼ばれる接続されたユニット又はノードの集まりに基づいており、これは生物学的な脳のニューロンを大まかにモデル化している。各々の接続は、生物学的な脳のシナプスと同様に、他のニューロンに信号を伝達することができる。信号を受け取った人工ニューロンは、それを処理し、それに接続されたニューロンに信号を送ることができる。ANNの実装では、接続における「信号」は実数であり、各ニューロンの出力は、その入力の合計の何らかの非線形関数によって計算することができる。接続はエッジと呼ばれる。ニューロンとエッジには通常、学習が進むにつれて調整される重みがある。重みは接続における信号の強度を増減する。ニューロンには、集約信号がその閾値を超えた場合にのみ信号が送信されるような閾値がある場合がある。通常、ニューロンは複数の層に集約される。層が異なれば、入力に対して異なる変換を行うことができる。信号は、第1層(入力層)から、場合によっては複数回、層を通過した後に、最後の層(出力層)まで移動する。
【0162】
ANNアプローチの当初の目的は、人間の脳と同じ方法で問題を解決することであった。時間の経過とともに、特定のタスクを実行することに注意が移り、生物学からの逸脱が生じた。ANNは、コンピュータビジョンを含む様々なタスクに使用されてきている。
【0163】
「畳み込みニューラルネットワーク」(convolutional neural network (CNN))という名前は、ネットワークが畳み込みと呼ばれる数学的演算を採用していることを示している。畳み込みは特殊な種類の線形演算である。畳み込みネットワークは、少なくとも1つの層での一般的な行列乗算の代わりに、畳み込みを使用する単純なニューラルネットワークである。畳み込みニューラルネットワークは、入力層と出力層、及び複数の隠れ層を含む。入力層は、入力が処理のために提供される層である。例えば、
図6のニューラルネットワークはCNNである。CNNの隠れ層は通常、乗算や他のドット積(dot product)と共に畳み込む一連の畳み込み層で構成されている。層の結果は1つ以上の特徴マップであり、チャネルとも呼ばれる。層の一部又はすべてにサブサンプリングが含まれる場合がある。その結果、特徴マップが小さくなることがある。CNNの活性化関数は、既に上で例示したようにRELU(Rectified Linear Unit)層又はGDN層である場合があり、その後、プーリング層、全結合層及び正規化層のような追加の畳み込みが続き、それらは、それらの入力と出力は活性化関数と最終畳み込みによってマスクされるため、隠れ層と呼ばれる。層は口語的に畳み込みと呼ばれるが、これは単に慣習によるものである。数学的には、技術的にはスライディングドット積又は相互相関である。これは、特定のインデックスポイントで重みがどのように決定されるかに影響するという点で、行列内のインデックスに対して重要である。
【0164】
ピクチャ又は画像を処理するCNNをプログラミングするとき、入力は形状(画像の数)x(画像の幅)x(画像の高さ)x(画像の深度)を持つテンソルである。次に、畳み込み層を通過した後、画像は形状(画像の数)x(特徴マップの幅)x(特徴マップの高さ)x(特徴マップチャネル)を持つ特徴マップに抽象化される。ニューラルネットワーク内の畳み込み層は以下の属性を持つ必要がある。幅と高さで定義される畳み込みカーネル(ハイパーパラメータ)。入力チャネルと出力チャネルの数(ハイパーパラメータ)。畳み込みフィルタ(入力チャネル)の深さは、入力特徴マップのチャネル数(深さ)と等しい必要がある。
【0165】
従来、画像認識には伝統的な多層パーセプトロン(multilayer perceptron (MLP))モデルが使用されてきた。しかし、ノード間の全結合のため、高次元性に悩まされ、高解像度の画像では十分にスケーリングできなかった。RGBカラーチャネルを持つ1000×1000ピクセルの画像には300万の重みがあり、全結合を持つスケーリングで効率的に処理するには高すぎる。また、このようなネットワークアーキテクチャでは、データの空間構造が考慮されず、遠く離れた入力ピクセルを近くにあるピクセルと同じように扱う。これは、計算上でも意味上でも、画像データ内の参照の局所性を無視する。したがって、ニューロンの全結合は、空間的に局所的な入力パターンによって支配される画像認識などの目的には無駄である。CNNモデルは、自然画像に存在する強力な空間的局所相関を利用することによって、MLPアーキテクチャによってもたらされる課題を軽減する。畳み込み層はCNNの中核となるブロックである。層のパラメータは学習可能なフィルタのセット(前述のカーネル)で構成され、小さな受信フィールドを持つが、入力ボリュームの全深さまで拡張する。順方向パスの間、各フィルタは入力ボリュームの幅と高さにわたって畳み込まれ、フィルタと入力のエントリ間のドット積を計算し、そのフィルタの2次元活性化マップを生成する。その結果、ネットワークは、入力のある空間位置で特定のタイプの特徴を検出したときに活性化するフィルタを学習する。
【0166】
深度の次元に沿ってすべてのフィルタの活性化マップをスタックすると、畳み込み層の完全な出力ボリュームが形成される。したがって、出力ボリューム内のすべてのエントリは、入力内の小さな領域を見て、同じ活性化マップ内のニューロンとパラメータを共有するニューロンの出力として解釈することもできる。特徴マップ又は活性化マップは、所与のフィルタの出力活性化である。特徴マップと活性化は同じ意味である。幾つかの論文では、画像の異なる部分の活性化に対応するマッピングであるため活性化マップと呼ばれ、また、画像内のある種の特徴がどこにあるかのマッピングでもあるため特徴マップとも呼ばれる。高い活性化は、ある特徴が見つかったことを意味する。
【0167】
CNNのもう1つの重要な概念は、非線形ダウンサンプリングの一形態であるプーリングである。プーリングを実装するための非線形関数は幾つかあり、maxプーリングが最も一般的である。これは、入力画像を重ならない長方形の集合に分割し、そのようなサブ領域ごとに最大値を出力する。直感的には、特徴の正確な位置は、他の特徴と比較した大まかな位置よりも重要ではない。これは、畳み込みニューラルネットワークにおけるプーリングの使用の背後にあるアイデアである。プーリング層は、表現の空間サイズを段階的に減少し、ネットワーク内のパラメータ数、メモリ負荷及び計算量を削減し、したがって過学習も制御する役割を果たす。CNNアーキテクチャでは、連続する畳み込み層の間に周期的にプーリング層を挿入するのが一般的である。プーリング操作は、別の形式の変換不変性を提供する。
【0168】
前述のReLUは、非飽和活性化関数を適用した正規化線形ユニット(rectified linear unit)の略称である。これは、活性化マップから負の値を0に設定することで、それらを効果的に除去する。これは、畳み込み層の受信フィールドに影響を与えることなく、決定関数とネットワーク全体の非線形特性を増大させる。他の関数、例えば飽和双曲線正接やシグモイド関数も非線形性を高めるために使用される。ReLUは一般化精度に大きなペナルティを与えずに、ニューラルネットワークを数倍速くトレーニングするため、他の関数よりも好まれることが多い。
【0169】
幾つかの畳み込みプーリング層とmaxプーリング層の後、ニューラルネットワークにおける高レベル推論は全結合層を介して行われる。全結合層の中のニューロンは、通常の(非畳み込み)人工ニューラルネットワークにおいて見られるように、前の層の中の全ての活性化への接続を有する。したがって、それらの活性化は、行列乗算の後にバイアスオフセット(学習された又は固定されたバイアス項のベクトル加算)が続くアフィン変換として計算できる。
【0170】
オートエンコーダは、教師なしの方法で効率的なデータコーディングを学習するために使用される人工ニューラルネットワークの一種である。オートエンコーダの目的は、信号「ノイズ」を無視するようにネットワークをトレーニングすることによって、典型的には次元削減のために、一連のデータの表現(符号化)を学習することである。削減側と共に、再構成側も学習され、ここでオートエンコーダは、削減された符号化から元の入力に可能な限り近い表現を生成しようとするため、その名前が付けられている。
【0171】
ピクチャサイズ:ピクチャの幅又は高さ、又は幅と高さのペアを表す。画像の幅と高さは、通常ルマサンプルの数で測定される。
【0172】
ダウンサンプリング:ダウンサンプリングは、離散入力信号のサンプリングレート(サンプリング間隔)を小さくする処理である。例えば、入力信号が高さh及び幅w(又は以下ではH、Wと表す)のサイズを有する画像であり、ダウンサンプリングの出力が高さh2及び幅w2である場合、以下の少なくとも1つが真である:
h2<h
w2<w
【0173】
1つの例示的な実施形態では、ダウンサンプリングは、m番目の各サンプルだけを保持し、残りの入力信号(これは、発明の文脈では、基本的にピクチャである)を破棄するように実装できる。
【0174】
アップサンプリング:アップサンプリングは、離散入力信号のサンプリングレート(サンプリング間隔)を大きくする処理である。例えば、入力画像がh及びw(又は以下ではH、Wと表す)のサイズを有し、ダウンサンプリングの出力がh2及びw2である場合、以下の少なくとも1つが真である:
h<h2
w<w2
【0175】
再サンプリング:ダウンサンプリングとアップサンプリングのプロセスはどちらも再サンプリングの例である。再サンプリングは、入力信号のサンプリングレート(サンプリング間隔)を変更する処理である。
【0176】
補間フィルタリング:アップサンプリング又はダウンサンプリングの処理中に、フィルタリングを適用して、再サンプリングされた信号の精度を向上させ、エイリアシングの影響を軽減することができる。通常、補間フィルタには、再サンプリング位置周辺のサンプル位置におけるサンプル値の重み付けされた組み合わせが含まれる。これは次のように実装できる:
【数29】
ここで、f()は再サンプリングされた信号、(x
r,y
r)は再サンプリングされた座標、C(k)は補間フィルタ係数、s(x,y)は入力信号である。加算演算は、(x
r,y
r)の近傍にある(x,y)に対して行われる。
【0177】
クロッピング:デジタル画像の外縁を切り取ることである。クロッピングは、画像(のサンプル数)を小さくする、及び/又は画像の縦横比(長さと幅)を変更するために使用できる。
【0178】
パディング:パディングは、画像の境界に新しいサンプルを生成することによって、入力画像(又は画像)のサイズを大きくすることを表す。これは、例えば、事前に定義されたサンプル値を使用するか、又は入力画像内の位置のサンプル値を使用することによって行うことができる。
【0179】
リサイズ:リサイズは、入力画像のサイズを変更することの総称である。これは、パディング又はクロッピングのいずれかの方法を使用して行う場合がある。これは、補間を使用したリサイズ操作で行うことができる。以下では、リサイズは、再スケーリングと呼ばれてもよい。
【0180】
整数除算:整数除算とは、小数部(余り)が切り捨てられる除算である。
【0181】
畳み込み:畳み込みは次の一般式で与えられる。以下で、f()は入力信号として定義でき、g()はフィルタとして定義できる。
【数30】
【0182】
ダウンサンプリング層:ニューラルネットワークの層など、入力の次元のうちの少なくとも1つの削減をもたらす処理層。一般に、入力には3つ以上の次元があり、次元はチャネル数、幅、高さを含む場合がある。しかしながら、本開示はそのような信号に限定されない。むしろ、1次元又は2次元の信号(音声信号や複数のチャネルを持つ音声信号など)を処理することができる。通常、ダウンサンプリング層とは、幅及び/又は高さの次元を削減することを表す。畳み込み、平均化、maxプーリングなどの操作で実装できる。また、ダウンサンプリングの他の方法も可能であり、本発明はこの点に限定されない。
【0183】
アップサンプリング層:入力の次元のうちの1つの増大をもたらすニューラルネットワークの層などの処理層。一般に、入力には3つ以上の次元があり、次元はチャネル数、幅、高さを含む場合がある。通常、アップサンプリング層とは、幅及び/又は高さの次元を増大することを表す。これは、逆畳み込み、複製、などの操作で実装できる。また、アップサンプリングの他の方法も可能であり、本発明はこの点に限定されない。
【0184】
幾つかの深層学習に基づく画像及びビデオ圧縮アルゴリズムは、https://arxiv.org/abs/2003.02012で入手できるG-VAE: A Continuously Variable Rate Deep Image Compression Framework, (Ze Cui, Jing Wang, Bo Bai, Tiansheng Guo, Yihui Feng)など、Variational Auto-Encoder framework (VAE)に準拠している。
【0185】
VAEフレームワークは、非線形変換コーディングモデルとしてカウントできる。
【0186】
変換プロセスは主に4つの部分に分けることができる。
図4はVAEフレームワークを例示している。
図4では、エンコーダ601は入力画像xを関数y=f(x)を介して潜在表現(yで示される)にマッピングする。この潜在表現は、以下では「潜在空間」の一部又はその中の点と呼ばれることもある。関数f()は、入力信号xをより圧縮可能な表現yに変換する変換関数である。量子化器602は、潜在表現yを(離散)値を持つ量子化された潜在表現y^に、y^=Q(y)により変換し、Qは量子化関数を表す。エントロピーモデル、又はハイパーエンコーダ/デコーダ(ハイパープライアとも呼ばれる)603は、量子化された潜在表現の分布を推定し、可逆エントロピーソースコーディングで達成可能な最小レートを取得する。
【0187】
潜在空間は、類似のデータポイントが潜在空間内でより近くにある圧縮データの表現として理解できる。潜在空間は、データの特徴を学習するために、及び分析のためにデータのより単純な表現を見つけるために役立つ。
【0188】
ハイパープライア3の量子化された潜在表現T、y^、及びサイド情報z^は、算術コーディング(AE)を用いてビットストリーム2に含まれる(二値化される)。
【0189】
更に、量子化された潜在表現を再構成ピクチャx^、x^=g(y^)に変換するデコーダ604が提供される。信号x^は入力画像xの推定である。xは可能な限りx^に近いことが望ましく、言い換えれば再構成品質は可能な限り高い。しかし、x^とxの類似性が高いほど、送信される必要のあるサイド情報の量は多くなる。サイド情報には、
図4に示すビットストリーム1とビットストリーム2が含まれ、これらはエンコーダによって生成され、デコーダに送信される。通常、サイド情報の量が多いほど再構成品質は高くなる。しかし、サイド情報の量が多いということは圧縮率が低いということである。したがって、
図4に示すシステムの目的の1つは、再構成品質と、ビットストリームで伝達されるサイド情報の量とのバランスをとることである。
【0190】
図4では、コンポーネントAE605は算術符号化(Arithmetic Encoding (AE))モジュールであり、量子化された潜在表現y^とサイド情報z^のサンプルをバイナリ表現ビットストリーム1に変換する。y^とz^のサンプルは、例えば整数又は浮動小数点数を含む。算術符号化モジュールの1つの目的は、サンプル値を(バイナリ化のプロセスを介して)2進数の文字列に変換することである(これは、その後、符号化画像又はその他のサイド情報に対応する更なる部分を含むことのあるビットストリームに含まれる)。
【0191】
算術復号(arithmetic decoding (AD))606は、バイナリ化プロセスを元に戻すプロセスであり、2進数は変換されてサンプル値に戻される。算術復号は、算術復号モジュール606によって提供される。
【0192】
本開示は、この特定のフレームワークに限定されないことに注意する。更に、本開示は、画像又はビデオ圧縮に限定されず、オブジェクト検出、画像生成、及び認識システムにも適用することができる。
【0193】
図4では、2つのサブネットワークが互いに連結されている。この文脈におけるサブネットワークとは、ネットワーク全体の一部を論理的に分割したものである。例えば
図4では、モジュール601、602、604、605、及び606は、「エンコーダ/デコーダ」サブネットワークと呼ばれている。「エンコーダ/デコーダ」サブネットワークは、第1ビットストリーム「ビットストリーム1」の符号化(生成)と復号(パース)を担当する。
図4における第2ネットワークは、モジュール603、608、609、610、及び607を含み、「ハイパーエンコーダ/デコーダ」サブネットワークと呼ばれている。第2サブネットワークは、第2ビットストリーム「ビットストリーム2」の生成を担当する。2つのサブネットワークの目的は異なる。第1サブネットワークの以下を担う:
入力画像xの潜在表現y(xより圧縮しやすい)への変換601、
潜在表現yを量子化された潜在表現y^に量子化する602、
算術符号化モジュール605により、AEを使って量子化された潜在表現y^を圧縮し、ビットストリーム「ビットストリーム1」を得る。
算術復号モジュール606を使って、ADを介してビットストリーム1をパースする、
パースされたデータを使って再構成された画像(x^)を再構成する604。
【0194】
第2サブネットワークの目的は、第1サブネットワークによるビットストリーム1の圧縮がより効率的になるように、「ビットストリーム1」のサンプルの統計的特性(例えば、ビットストリーム1のサンプル間の平均値、分散、相関)を得ることである。第2サブネットワークは第2ビットストリーム「ビットストリーム2」を生成し、これは前述の情報(例えば、ビットストリーム1のサンプル間の平均値、分散、相関)を含む。
【0195】
第2ネットワークは、量子化された潜在表現y^をサイド情報zに変換し603、サイド情報zを量子化されたサイド情報z^に量子化し、量子化されたサイド情報z^をビットストリーム2に符号化(例えば、二値化)609する、符号化部を含む。この例では、二値化は算術符号化(arithmetic encoding (AE))によって行われる。第2ネットワークの復号部分には算術復号(AD)610が含まれており、入力ビットストリーム2を復号された量子化されたサイド情報z^'に変換する。算術符号化端の復号操作は可逆圧縮方式であるため、z^'はz^と同一である可能性がある。次に、復号された量子化されたサイド情報z^'は、607を復号されたサイド情報y^'に変換する。y^'は、y^の統計的特性(例えば、y^の標本の平均値、サンプル値の分散など)を表す。そして、復号された潜在表現y^'は、上記の算術エンコーダ605及び算術デコーダ606に提供され、y^の確率モデルを制御する。
【0196】
図4は、VAE(variational auto encoder)の例を示しており、その詳細は実装によって異なる可能性がある。例えば、特定の実装では、ビットストリーム1のサンプルの統計的特性をより効率的に取得するために、追加のコンポーネントが存在する場合がある。そのような実装の1つに、ビットストリーム1の相互相関情報を抽出することを目的としたコンテキストモデラーが存在する場合がある。第2サブネットワークによって提供される統計情報は、AE(算術エンコーダ)605及びAD(算術デコーダ)606コンポーネントによって使用される場合がある。
【0197】
図4は、エンコーダとデコーダを単一の図で示している。当業者には明らかなように、エンコーダとデコーダは、相互に異なる装置に組み込まれている場合があり、非常に多くの場合、組み込まれている。
【0198】
図7はエンコーダを示し、
図8はVAEフレームワークのデコーダコンポーネントを分離して示している。入力として、エンコーダは、幾つかの実施形態によると、ピクチャを受信する。入力ピクチャは、カラーチャネルや他の種類のチャネル、例えば深度チャネルや動き情報チャネルなど、1つ以上のチャネルを含むことができる。(
図7に示すように)エンコーダの出力は、ビットストリーム1とビットストリーム2である。ビットストリーム1はエンコーダの第1サブネットワークの出力であり、ビットストリーム2はエンコーダの第2サブネットワークの出力である。ビットストリーム1とビットストリーム2の両方が、NNによる出力として、ビットストリームを一緒に形成する場合がある。
【0199】
同様に
図8では、2つのビットストリーム、ビットストリーム1とビットストリーム2が入力として受信され、再構成(復号)された画像であるx^が出力で生成される。
【0200】
上記のように、VAEは異なるアクションを実行する異なる論理ユニットに分割することができる。これは
図7と
図8で例示されており、
図7はビデオのように信号の符号化に関与し、符号化された情報を提供するコンポーネントを示している。この符号化された情報は、例えば符号化のために
図8に示されているデコーダコンポーネントによって受信される。9xxと10xxで示されているエンコーダとデコーダのコンポーネントは、その機能において、
図4で上述した参照符号6xxで示されているコンポーネントに対応する場合があることに注意する。
【0201】
具体的には、
図7に示すように、エンコーダは、入力xを信号yに変換して量子化器902に提供するエンコーダ901を含む。量子化器902は、算術符号化モジュール905とハイパーエンコーダ903に情報を提供する。ハイパーエンコーダ903は、前述のビットストリーム2をハイパーデコーダ907に提供し、ハイパーデコーダ907は次に算術符号化モジュール605に情報をシグナリングする。
【0202】
符号化は、
図19に関して以下で更に詳細に説明するように、畳み込みを利用することができる。
【0203】
算術符号化モジュールの出力はビットストリーム1である。ビットストリーム1とビットストリーム2は、信号の符号化の出力であり、その後、復号プロセスに提供(送信)される。
【0204】
ユニット901は「エンコーダ」と呼ばれるが、
図7に示す完全なサブネットワークを「エンコーダ」と呼ぶこともできる。一般に、符号化のプロセスとは、入力を符号化された(例えば圧縮された)出力に変換するユニット(モジュール)を意味する。
図7から、ユニット901は、入力xをxの圧縮バージョンであるyに変換するため、実際にはサブネットワーク全体のコアとして考えることができることが分かる。エンコーダ901での圧縮は、例えばニューラルネットワークを適用することによって、又は一般に、1つ以上の層を持つ任意の処理ネットワークによって達成することができる。そのようなネットワークでは、入力のサイズ及び/又はチャネル数を削減するダウンサンプリングを含むカスケード処理によって圧縮を行うことができる。したがって、エンコーダは、例えばニューラルネットワーク(neural network (NN))に基づくエンコーダなどと呼ばれることがある。
【0205】
図の残りの部分(量子化ユニット、ハイパーエンコーダ、ハイパーデコーダ、算術エンコーダ/デコーダ)は、すべて符号化プロセスの効率を向上させるか、又は圧縮された出力yを一連のビット(ビットストリーム)に変換することを担う部分である。量子化は、非可逆圧縮によってNNエンコーダ901の出力を更に圧縮するために提供される場合がある。AE905を構成するために使用されるハイパーエンコーダ903及びハイパーデコーダ907と組み合わせたAE905は、量子化された信号を可逆圧縮によって更に圧縮することができる2値化を実行する場合がある。したがって、
図7のサブネットワーク全体を「エンコーダ」と呼ぶこともできる。
【0206】
深層学習(Deep Learning (DL))に基づく画像/ビデオ圧縮システムの大多数は、信号を2進数(ビット)に変換する前に信号の次元を削減する。例えば、VAEフレームワークでは、非線形変換であるエンコーダは、入力画像xをyにマッピングし、yはxよりも幅と高さが小さい。yは幅と高さが小さいため、サイズが小さくなり、信号の次元(のサイズ)が小さくなり、そのため信号yを圧縮しやすくなる。一般に、エンコーダは必ずしも両方の(又は一般的にすべての)次元でサイズを小さくする必要はないことに注意する。むしろ、幾つかの例示的な実装では、1つの次元(又は一般的にはそのサブセット)でのみサイズを小さくするエンコーダを提供する場合がある。
【0207】
圧縮の一般的な原理を
図5に例示する。エンコーダの出力とデコーダの入力である潜在空間は、圧縮されたデータを表している。潜在空間のサイズは、入力信号のサイズよりもはるかに小さい可能性があることに注意する。ここで、サイズという用語は、解像度、例えば、エンコーダによって出力される特徴マップのサンプル数を指す場合がある。解像度は、各次元のサンプル数の積(例えば、幅×高さ×入力画像又は特徴マップのチャネル数)として与えることができる。
【0208】
入力信号のサイズの減少は、深層学習に基づくエンコーダとデコーダを表す
図5に例示されている。
図5では、入力画像xは、エンコーダの入力である入力データに対応している。変換された信号yは、入力信号よりも小さい次元又は少なくとも1つの次元でサイズが小さい潜在空間に対応している。円の各列は、エンコーダ又はデコーダの処理チェーン内の層を表す。各層内の円の数は、その層における信号のサイズ又は次元を示す。
【0209】
図5から、符号化操作は入力信号のサイズの減少に対応し、復号操作は画像の元のサイズの再構成に対応することが分かる。
【0210】
信号サイズの減少のための方法の1つにダウンサンプリングがある。ダウンサンプリングは、入力信号のサンプリングレートを小さくする処理である。例えば、入力画像がh及びwのサイズを有し、ダウンサンプリングの出力がh2及びw2である場合、以下の少なくとも1つが真である:
h2<h
w2<w
【0211】
信号サイズの減少は通常、処理層のチェーンに沿って段階的に行われ、一度にすべて行われるわけではない。例えば、入力画像xの次元(又は次元のサイズ)がh及びw(高さと幅を示す)であり、潜在空間yの次元がh/16及びw/16である場合、サイズの減少は符号化中に4つの層で発生する可能性があり、各層は信号のサイズを各次元において2倍だけ減少する。
【0212】
深層学習に基づくビデオ/画像圧縮方法の中には、複数のダウンサンプリング層を採用しているものもある。例として、
図6のVAEフレームワークは、801から806でマークされた6つのダウンサンプリング層を使用している。ダウンサンプリングを含む層は、層の説明に下向き矢印で示される。層の説明「Conv Nx5x5/2↓」は、層がN個のチャネルの畳み込み層であり、畳み込みカーネルのサイズが5×5であることを意味する。前述のように、2↓は、係数2のダウンサンプリングがこの層で実行されることを意味する。係数2のダウンサンプリングでは、入力信号の次元の1つが出力においてに半分に減少する。
図6の2↓は、入力画像の幅と高さの両方が係数2により減少されていることを示している。6つのダウンサンプリング層があるため、入力画像814(xでも表される)の幅と高さがwとhで与えられた場合、出力信号z^813は各々w/64とh/64に等しい幅と高さを有する。AEとADで表されるモジュールは、算術エンコーダと算術デコーダであり、
図4、7、8に関して既に説明した。算術エンコーダとデコーダは、エントロピーコーディングの特定の実装である。AEとAD(コンポーネント813と815の一部として)は、他のエントロピーコーディングの手段で置き換えることができる。情報理論において、エントロピーコーディングは可逆データ圧縮方式であり、シンボルの値をバイナリ表現に変換するために使用され、これは可逆プロセスである。また、図の「Q」は、
図4に関連して前述した量子化操作に対応しており、「量子化」の項で更に上述した。また、量子化操作と、コンポーネント813又は815の一部として対応する量子化ユニットは、必ずしも存在するわけではなく、及び/又は別のユニットに置き換えることができる。
【0213】
図6には、アップサンプリング層807から812を含むデコーダも示されている。畳み込み層として実装されているが、受信した入力にアップサンプリングを提供しない更なる層820が、入力の処理順序でアップサンプリング層811と810の間に設けられる。デコーダに対応する畳み込み層830も示す。このような層は、入力のサイズを変更しないが、特定の特性を変更する、入力に対する操作を実行するためにNN内に設けることができる。ただし、このような層を設けることは必須ではない。
【0214】
幾つかの実施形態によれば、エンコーダの層801から804はエンコーダの1つのサブネットワークとみなされ、層830、805、及び806はエンコーダの第2サブネットワークとみなされることがある。同様に、層812、811、及び820は(デコーダを通じた処理順で)デコーダの第1サブネットワークとみなされ、層810、809、808、807はデコーダの第2サブネットワークとみなされることがある。サブネットワークはニューラルネットワークの層、特にエンコーダのダウンサンプリング層とデコーダのアップサンプリング層の蓄積とみなされることがある。蓄積は任意であり得る。ただし、サブネットワークは、入力を処理し、入力を処理した後に出力ビットストリームを提供するか、又は、ニューラルネットワークの他のすべてのサブネットワークにより受信されない可能性のあるビットストリームを入力として受信する、ニューラルネットワークの層の蓄積(accumulation)であることが提供され得る。この文脈では、エンコーダのサブネットワークは、第1ビットストリーム(第1サブネットワーク)と第2ビットストリーム(第2サブネットワーク)を出力するものである。デコーダのサブネットワークは、第2ビットストリーム(第1サブネットワーク)と第1ビットストリーム(第2サブネットワーク)を受け取るものである。
【0215】
サブネットワークのこの関係は必須ではない。例えば、層801と802はエンコーダの1つのサブネットワークであってよく、層803と804はエンコーダの別のサブネットワークとみなされることがある。その他にも様々な構成が可能である。
【0216】
デコーダを介してビットストリーム2の処理順序で見ると、アップサンプリング層は逆順に、つまりアップサンプリング層812からアップサンプリング層807へと実行される。ここでは、各アップサンプリング層が示され、↑で示されるアップサンプリング比2のアップサンプリングを提供している。もちろん、すべてのアップサンプリング層が同じアップサンプリング比を持つとは限らず、3、4、8などの他のアップサンプリング比を使用することもできる。層807から812は畳み込み層(conv)として実装される。具体的には、それらは、入力に対してエンコーダとは逆の操作を提供することを目的としている場合があるため、アップサンプリング層は、受信した入力に対して逆畳み込み操作を適用して、そのサイズをアップサンプリング比に対応する係数により大きくすることができる。ただし、本開示は一般的に逆畳み込みに限定されるものではなく、アップサンプリングは、2つの近隣サンプル間の双線形補間、又は最近接近隣サンプルコピーなど、他の方法で実行することもできる。
【0217】
これを、上記で説明したサブネットワークへの層の蓄積に拡張すると、サブネットワークはそれに関連する結合ダウンサンプリング比(又は結合アップサンプリング比)を有すると考えることができ、ここで、結合ダウンサンプリング比及び/又は結合アップサンプリング比は、各々のサブネットワーク内のダウンサンプリング層又はアップサンプリング層のダウンサンプリング比及び/又はアップサンプリング比から取得できる。
【0218】
エンコーダでは、例えば、サブネットワークの全ダウンサンプリング層のダウンサンプリング比の積を計算して、サブネットワークの結合ダウンサンプリング比を求めることができる。相応して、デコーダでは、全アップサンプリング層のアップサンプリング比の積を計算して、デコーダのサブネットワークの結合アップサンプリング比を求めることができる。前述のように、各々のサブネットワークのアップサンプリング層のアップサンプリング比を使用して、テーブルから結合アップサンプリング比を求めるなどの他の代替方法を適用して、結合アップサンプリング比を求めることもできる。
【0219】
第1サブネットワークでは、幾つかの畳み込み層(801から803)の後に、エンコーダ側では一般化分割正規化(generalized divisive normalization (GDN))、デコーダ側では逆GDN(inverse GDN (IGDN))が続く。第2サブネットワークでは、適用される活性化関数はReLuである。本開示は、そのような実装に限定されず、一般に、GDN又はReLuの代わりに他の活性化関数を使用することができることに留意されたい。
【0220】
一般に、画像及びビデオ圧縮システムは、任意の入力画像サイズを処理することはできない。その理由は、圧縮システムの一部の処理ユニット(変換ユニット、動き補償ユニットなど)が最小単位で動作し、入力画像サイズが最小処理単位の整数倍でない場合、画像を処理できないためである。
【0221】
例として、HEVCは4×4、8×8、16×16、及び32×32の4つの変換ユニット(transform unit (TU))サイズを指定して、予測残差をコーディングする。最小の変換ユニットサイズは4×4であるため、3×3のサイズの入力画像をHEVCエンコーダ及びデコーダを使用して処理することはできない。同様に、画像サイズが1つの次元で4の倍数でない場合も、有効な変換ユニット(4×4、8×8、16×16、及び32×32)で処理可能なサイズに画像をパーティションできないため、画像を処理することができない。したがって、入力画像が最小符号化ユニットサイズである8×8の倍数である必要があることがHEVC標準の要件である。それ以外の場合、入力画像はHEVCによって圧縮できない。同様の要件は他のコーデックによっても提起されている。既存のハードウェア又はソフトウェアを利用するため、又は既存のコーデックの一部又は一部の相互運用性を維持するために、このような制限を維持することが望ましい場合がある。しかしながら、本開示は特定の変換ブロックサイズに限定されない。
【0222】
一部のDNN(deep neural network)又はNN(neural network)に基づく画像及びビデオ圧縮システムは、複数のダウンサンプリング層を利用する。例えば、
図6では、第1サブネットワーク(層801から804)に4つのダウンサンプリング層が含まれ、第2サブネットワーク(層805から806)に2つの追加ダウンサンプリング層が含まれている。したがって、入力ピクチャのサイズを各々wとh(幅と高さを示す)で与えると、第1サブネットワークの出力はw/16とh/16であり、第2ネットワークの出力はw/64とh/64で与えられる。
【0223】
深層ニューラルネットワークで「深層」という用語は、通常、入力に順番に適用される処理層の数を表す。層の数が多い場合、ニューラルネットワークは深層ニューラルネットワークと呼ばれるが、どのネットワークを深層ネットワークと呼ぶべきかについての明確な説明や指針はない。したがって、本願の目的上、DNNとNNに大きな違いはない。DNNは、複数の層を持つNNを指す場合がある。
【0224】
ダウンサンプリング中、例えば入力に畳み込みが適用されている場合、符号化されたピクチャの分数(最終)サイズが得られる場合がある。このような分数サイズは、ニューラルネットワークの後続層やデコーダによって合理的に処理することはできない。
【0225】
言い換えると、(畳み込みのような)一部のダウンサンプリング操作は、ニューラルネットワークの特定の層への入力のサイズが特定の条件を満たすことを(例えば、設計により)期待しているため、ダウンサンプリングを実行するニューラルネットワークの層内で実行される操作や、ダウンサンプリングに続く操作は、依然として十分に定義された数学的演算である。例えば、少なくとも1つの次元の入力のサイズを比rだけ小さくするダウンサンプリング比:
【数31】
を持つダウンサンプリング層の場合、この次元の入力のサイズがダウンサンプリング比rの整数倍である場合、妥当な出力が得られる。rによるダウンサンプリングとは、1つの次元(例えば幅)又は複数の次元(例えば幅と高さ)の入力サンプル数を2で割って出力サンプル数を得ることを意味する。
【0226】
数値例として、層のダウンサンプリング比を4とすることができる。第1入力は、ダウンサンプリングが適用される次元でサイズが512である。128×4=512であるため、512は4の整数倍である。したがって、入力の処理はダウンサンプリング層によって実行でき、妥当な出力が得られる。第2入力は、ダウンサンプリングが適用される次元でサイズが513である場合がある。513は4の整数倍ではなく、したがって、この入力は、例えば設計上、特定の(例えば、512)入力サイズを想定している場合、ダウンサンプリング層又は後続のダウンサンプリング層で合理的に処理することはできない。この観点から、入力のサイズが常に同じではない場合でも、入力がニューラルネットワークの各層によって合理的な方法で(事前に定義された層の入力サイズに準拠して)処理できることを保証するために、ニューラルネットワークによる入力の処理の前に再スケーリングを適用することができる。この再スケーリングは、入力の実際のサイズをニューラルネットワーク(例えばニューラルネットワークの入力層)に変更又は適応させることを含み、ニューラルネットワークのすべてのダウンサンプリング層に関して上記の条件を満たすようにする。この再スケーリングは、ダウンサンプリングが適用される次元の入力のサイズを増減することにより行われ、サイズは以下のようになり:
【数32】
ここで、r
iはダウンサンプリング層のダウンサンプリング比、Kは0より大きい整数である。つまり、ダウンサンプリング方向の入力ピクチャ(信号)の入力サイズSは、ダウンサンプリング方向(次元)のネットワーク処理チェーンの入力ピクチャ(信号)に適用されるすべてのダウンサンプリング比の積の整数倍になるように適応されている。
【0227】
これにより、ニューラルネットワークへの入力のサイズは、各層が各々の入力を処理できることを保証する、例えば、層の定義された入力サイズ構成に準拠しているサイズを有する。
【0228】
しかし、このような再スケーリングを提供することによって、符号化されるピクチャのサイズの減少には限界があり、それに対応して、例えば、符号化された情報を再構成するためのデコーダに提供できる符号化されたピクチャのサイズにも下限がある。更に、これまで提供されてきたアプローチでは、ビットストリームにかなりの量のエントロピーが追加されたり(再スケーリングによってサイズが大きくなる場合)、又はかなりの量の情報損失が発生したりする可能性がある(再スケーリングによってビットストリームのサイズが小さくなる場合)。どちらも、復号後のビットストリームの品質に悪影響を及ぼす可能性がある。
【0229】
そのため、符号化/復号されたビットストリームとそれが表すデータの高品質を得ると同時に、サイズを減少した符号化されたビットストリームを提供することは困難である。
【0230】
ネットワーク内の層の出力サイズは小数にはできないため(サンプルの行と列の数が整数である必要がある)、入力画像サイズに制限がある。
図6では、信頼性の高い処理を確保するために、入力画像サイズを水平方向と垂直方向の両方で64の整数倍にサイズ変更することができ、又はすでに整数倍である場合がある。そうでない場合、第2サブネットワークの出力は整数にならない。
【0231】
この問題を解決するには、入力画像にゼロをパディングする方法を使用して、各方向で64個のサンプルの倍数にすることができる。このソリューションによると、入力画像のサイズを次の量だけ幅と高さにおいて拡張できる:
【数33】
ここで、「Int」は整数変換である。整数変換では、第1値aと第2値bの商を計算し、すべての小数桁を無視する出力を提供することができるため、整数のみになる。新しく生成されたサンプル値は0に設定できる。
【0232】
上記の問題を解決するもう1つの可能性は、入力ピクチャをクロッピングすること、つまり入力画像の端からサンプルの行と列を破棄して、入力画像サイズを64サンプルの倍数にすることである。クロッピングする必要がある行とサンプルの最小量は、次のように計算できる:
【数34】
ここで、w
diffとw
diffは各々、画像の端から破棄する必要があるサンプルの行と列の量に対応する。
【0233】
上記を使用すると、水平(h
new)及び垂直(w
new)次元における入力画像の新しいサイズは次のようになる:
パディングの場合、
【数35】
クロッピングの場合、
【数36】
【0234】
これは、
図10及び11にも示される。
図10では、エンコーダとデコーダ(一緒に1200と示されている)が、多数のダウンサンプリング層とアップサンプリング層を含むことができることが示されている。各層は、係数2のダウンサンプリング又は係数2のアップサンプリングを適用する。更に、エンコーダとデコーダは、エンコーダ側では一般化分割正規化(generalized divisive normalization (GDN))1201、デコーダ側では逆GDN(inverse GDN (IGDN))1202によるように、更にコンポーネント含むことができる。更に、エンコーダとデコーダの両方が、1つ以上のReLu、具体的にはleaky ReLu1203を含むことができる。エンコーダに因子分解エントロピーモデル(factorized entropy model)1205を、デコーダにガウスエントロピーモデル(Gaussian entropy model)1206を設けることもできる。更に、複数の畳み込みマスク1204を設けることもできる。更に、エンコーダは、
図10及び11の実施形態において、汎用量子化器(UnivQuan)1207を含み、デコーダは、アテンション(attention)モジュール1208を含む。参照しやすいように、機能的に対応するコンポーネントは、
図11の対応する参照符号を有する。
【0235】
ダウンサンプリング操作とストライドの総数は、入力チャネルサイズ、すなわちニューラルネットワークへの入力のサイズに関する条件を定義する。
【0236】
ここで、入力チャネルサイズが64=2×2×2×2×2の整数倍である場合、すべての処理中のダウンサンプリング操作の後もチャネルサイズは整数のままである。アップサンプリング中にデコーダで対応するアップサンプリング操作を適用することにより、及び、アップサンプリング層を介した入力の処理の最後に同じ再スケーリングを適用することにより、出力サイズは再びエンコーダでの入力サイズと同じになる。
【0237】
これにより、元の入力の信頼できる再構成が得られる。
【0238】
図11では、
図10で説明されているもののより一般的な例が示されている。この例では、1300で一緒に示されているエンコーダとデコーダも示している。m個のダウンサンプリング層(及び対応するアップサンプリング層)はダウンサンプリング比s
iと対応するアップサンプリング比を持つ。ここで、入力チャネルサイズが次式:
【数37】
の整数倍である場合、すべてのm個の処理中の(連続又は後続又はカスケードされたとも表される)ダウンサンプリング操作の後も、チャネルサイズは整数のままである。入力をエンコーダ内のニューラルネットワークで処理する前に、対応する再スケーリングすることは、上記の式が満たされることを保証する。つまり、ダウンサンプリング方向の入力チャネルサイズは、(サブネットワーク)の各々m個のダウンサンプリング層によって入力に適用されるすべてのダウンサンプリング比の積となる。
【0239】
上記で説明したように入力のサイズを変更するこのモードには、幾つかの欠点がまだある可能性がある。
【0240】
図6では、「ビットストリーム1」と「ビットストリーム2」で示されるビットストリームのサイズは、ニューラルネットワークで入力を処理する前に再スケーリングが適用される場合と、ニューラルネットワークの層間でそれ以上再スケーリングせずに入力を処理できるように再スケーリングが適用される場合、各々次式に等しい:
【数38】
AとBは、圧縮率を記述するスカラパラメータである。圧縮率が高いほど、数値AとBは小さくなる。したがって、ビットストリームの合計サイズは次式で与えられる:
【数39】
【0241】
圧縮の目的は、再構成された画像の品質を高く維持しながらビットストリームのサイズを小さくすることであるため、hnew及びwnewをビットレートを減らすために可能な限り小さくする必要があることは明らかである。
【0242】
したがって、「0によるパディング」の問題は、入力サイズの増大によるビットレートの増大である。つまり、入力画像に冗長なデータを追加することで入力画像のサイズが大きくなるため、入力信号の再構成のために、より多くのサイド情報をエンコーダからデコーダに送信する必要がある。その結果、ビットストリームのサイズが大きくなる。
【0243】
例として、
図6のエンコーダ/デコーダのペアを使用すると、入力画像のサイズが、一般にWQVGA(Wide Quarter Video Graphics Array)として知られる画像サイズ形式である416×240である場合、入力画像は448×256と同じサイズになるようにパディングされる必要があり、これは冗長データを含めることによるビットレートの15%の増大に相当する。
【0244】
第2アプローチ(入力画像のクロッピング)に伴う問題は、情報の損失である。圧縮と伸長の目的は、忠実度を高く保ちながら入力信号を伝送することであるため、信号の一部を破棄することは目的に反する。したがって、入力信号の一部に不要な部分があることが分かっていない限り、クロッピングは有利ではないが、通常はそうではない。
【0245】
一実施形態によると、入力画像のサイズ調整は、
図6に関連して前述したように、DNNに基づくピクチャ又はビデオ圧縮システムのすべてのサブネットワークの前で実行される。より具体的には、サブネットワークの結合ダウンサンプリング比が、例えば2(サブネットワークの出力で入力サイズが半分になる)の場合、サンプル行又は列の数が奇数の場合はサブネットワークの入力に入力サイズ変更が適用され、サンプル行又は列の数が偶数(2の倍数)の場合はパディングが適用されない。
【0246】
更に、対応するダウンサンプリング層が(その)入力でサイズ変更を適用している場合は、最後に、例えばアップサンプリング層の出力でサイズ変更操作を適用できる。ダウンサンプリング層の対応する層は、再構成された画像から始まるアップサンプリング層の数をカウントし、入力画像から始まるダウンサンプリング層の数をカウントすることによって見つけることができる。これは
図18に例示されており、アップサンプリング層1とダウンサンプリング層1が対応する層であり、アップサンプリング層2とダウンサンプリング層2が対応する層である、というようになっている。
【0247】
ダウンサンプリング層(又は、1つ以上のダウンサンプリング層を含む対応するサブネットワーク)の入力において適用されるサイズ変更操作と、アップサンプリング層(又は、1つ以上のアップサンプリング層を含む対応するサブネットワーク)の出力において適用されるサイズ変更操作は、両方の出力におけるデータのサイズが同じに保たれるように補完的である。
【0248】
その結果、ビットストリームのサイズの増大が最小限に抑えられる。別のアプローチを説明する
図9とは対照的に、例示的な実施形態を
図12を参照して説明することができる。
図9では、入力のサイズ変更は、入力がDNNに提供される前に行われ、サイズ変更された入力がDNN全体を通じて処理できるように行われる。
図9に示す例は、
図6に示すように、エンコーダ/デコーダを使用して実現(実装)することができる。
【0249】
図12では、任意のサイズを有する入力画像がニューラルネットワークに提供される。この実施形態のニューラルネットワークは、N個のダウンサンプリング層を含み、各層i(1<=i<=N)はダウンサンプリング比r
iを持つ。「<=」は、「以下」を示す。ダウンサンプリング比r
iは、iの異なる値に対して必ずしも同じではないが、幾つかの実施形態では、すべて等しい場合があり、例えば、すべてr
i=r=2とすることができる。
図12では、ダウンサンプリング層1からMは、ダウンサンプリング層のサブネット1として要約される。サブネット1(又はサブネットワーク1)は、ビットストリーム1を出力として提供する。サブネットワーク1に関連付けて、ダウンサンプリング層のダウンサンプリング比の積から得られる結合ダウンサンプリング比を提供することができる。すべてのダウンサンプリング比は2に等しいため、サブネットワーク1の結合ダウンサンプリング比はR
1=2
Mとなる。例えば、M=4と仮定すると、2
4=16であるため、サブネットワーク1の結合ダウンサンプリング比は16となる。層M+1からNを含む第2サブネット2(又はサブネットワーク2)は、ビットストリーム2を出力として提供する。また、第2サブネットワークは、R
2で示される可能性のある、それに関連する結合ダウンサンプリング比を有する。結合ダウンサンプリング比R
2は、R
2=2
N-Mであってよい。
【0250】
この実施形態では、サブネットワーク2などのサブネットワークへの入力をサブネットワークに提供する前に、それが前のサブネットワーク(この場合、サブネットワーク1)で処理された後に、サブネットワーク2への入力がR2の整数倍のサイズになるように、サイズ変更操作を適用して入力をサイズ変更する。R2は、サブネットワーク2の結合ダウンサンプリング比を表し、プリセット値である可能性があるため、エンコーダですでに使用可能である可能性がある。この実施形態では、特定のサブネットワークと各々の結合ダウンサンプリング比について上記の条件が満たされるように、各サブネットワークの前にこのサイズ変更操作が実行される。つまり、入力のサイズSは、次の(一連の処理におけるダウンサンプリングに続く)サブネットワークの結合ダウンサンプリング比に適合するか、又はその整数倍として設定される。
【0251】
図9では、データを順次処理するすべてのサブネットワーク(ここでは説明を簡単にするためにのみ示す)のすべてのダウンサンプリング層を考慮して、入力画像がパディングされる(画像サイズ変更の形式である)。
図9では、説明を目的として、すべてのダウンサンプリング層でダウンサンプリング比が例示的に2に等しいように選択されている。この場合、2の比でダウンサンプリングを行うN個の層があるため、入力画像サイズは2
Nの整数倍になるように(ゼロで)パディングすることによって調整される。ここで、整数「倍」は依然として1に等しい可能性があることに注意する。つまり、倍は複数の意味ではなく、(例えば、1以上による)乗算の意味を持つ。
【0252】
実施形態を
図12に例示する。
図12では、各サブネットワークの前に入力サイズ変更が適用される。入力は、各サブネットワークの結合ダウンサンプリング比の整数倍になるようサイズ変更される。例えば、サブネットワークの結合ダウンサンプリング比が9:1(入力サイズ:出力サイズ)の場合、層の入力は9の倍数になるようサイズ変更される。
【0253】
幾つかの実施形態は、
図6にも適用できる。
図6では、ダウンサンプリングされた6つの層、すなわち層801、802、803、804、805、及び806がある。ダウンサンプリング層はすべて2の係数を持つ場合がある。一実施形態によれば、上記の
図6に関連して説明されているように、各サブネットワークの前に入力サイズ変更が適用される。
図6では、対応するアップサンプリング層(807、808、809、810、811及び812)を含むデコーダのサブネットワークのうち、各サブネットワークの後にも、対応する方法でサイズ変更が適用される(上記の段落で説明されている)。これは、エンコーダのニューラルネットワーク内の特定の順序又は位置にある1つ以上のダウンサンプリング層を含むサブネットワークの前に適用されるサイズ変更が、デコーダ内の対応する位置で適用されることを意味する。
【0254】
幾つかの実施形態では、入力を再スケーリングするための2つのオプションが存在する場合があり、例えば、以下で更に説明するような状況や条件に応じて、そのうちの1つを選択することができる。
図13~153を参照して、これらの実施形態が記載される。
【0255】
第1オプション1501は、入力のサイズを結合ダウンサンプリング比の整数倍に一致するサイズに増大させるために、例えばゼロ又は入力自体からの冗長情報で入力をパディングすることを含むことができる。デコーダ側では、再スケーリングするために、入力のサイズを、例えば進行中のサブネットワークの目標入力サイズに一致するサイズに減少させるために、このオプションでクロッピングを使用することができる。
【0256】
このオプションは、計算効率的に実装できるが、エンコーダ側でのみサイズを増やすことができる。
【0257】
第2オプション1502は、入力の再スケーリング/サイズ変更のために、エンコーダでの補間とデコーダでの補間を利用できる。これは、エンコーダの進行中のサブネットワークの結合ダウンサンプリング比の整数倍、又はデコーダの進行中のサブネットワークの目標入力サイズのように、入力のサイズを意図したサイズに増やすために補間を使用することができ、又は、少なくとも1つのダウンサンプリング層を含む進行中のサブネットワークの結合ダウンサンプリング比の整数倍、又は少なくとも1つのアップサンプリング層を含む進行中のサブネットワークの目標入力サイズのように、入力のサイズを意図したサイズに減らすために補間を使用することができる。これにより、入力のサイズを増大又は減少することで、エンコーダにおいてサイズ変更を適用することができる。更に、このオプション1502では、異なる補間フィルタを使用して、スペクトル特性の制御を提供することができる。
【0258】
異なるオプション1501と1502は、例えばビットストリームでサイド情報としてシグナリングできる。第1オプション(オプション1)1501と第2オプション(オプション2)1502の区別は、シンタックス要素methodIdxのような、2つの値のうちの1つを取ることができる指示によりシグナリングできる。例えば、第1値(例えば、0)はパディング/クロッピングを示すものであり、第2値(例えば、1)はサイズ変更に使用される補間を示すものである。例えば、デコーダは、ピクチャを符号化し及び場合によっては要素methodIdxを含むサイド情報を含むビットストリームを受信できる。このビットストリームをパースすると、サイド情報が取得でき、methodIdxの値を導出することができる。methodIdxの値に基づいて、デコーダは対応するサイズ変更又は再スケーリングの方法を進めることができ、methodIdxが第1値を有する場合はパディング/クロッピングを使用し、methodIdxが第2値を有する場合は補間を使用する。
【0259】
これは
図13に示される。methodIdxの値が0又は1であることに応じて、クリッピング(パディング又はクロッピングのいずれかを含む)又は補間のいずれかが選択される。
【0260】
なお、
図13の実施形態では、サイズ変更を実現するために使用される方法として、クリッピング(パディング/クロッピングのうちの1つを含む)と補間との間のmethodIdxに基づく選択又は決定について言及しているが、本発明はこの点に関して限定されない。
図13に関連して説明されている方法は、第1オプション1501がサイズ変更操作中にサイズを増大させる補間であり、第2オプション1502がサイズ変更操作中にサイズを減少させる補間である場合にも実現できる。以上及び以下で説明されているように、任意の2つ又はそれ以上の(methodIdxのバイナリサイズに依存する)異なるサイズ変更方法の中から選択し、methodIdxでシグナリングすることができる。一般に、methodIdxは別個のシンタックス要素である必要はない。これは、他の1つ以上のパラメータと一緒に示され又はコーディングされることができる。
【0261】
図14に示すように、更なる指示又はフラグを提供することができる。methodIdxに加えて、第2オプション1502の場合にのみ、サイズ変更(Size Change)フラグ(1ビット)SCIdxが条件付きでシグナリングされることがある。
図14の実施形態では、第2オプション1502は、サイズ変更を実現するための補間の使用を含む。
図14では、第2オプション1502は、methodIdx=1の場合に選択される。サイズ変更フラグSCIdxは、第3又は第4の値を持つことがあり、これは0(例えば第3値の場合)又は1(例えば第4の値の場合)のいずれかの値であってよい。本実施形態では、「0」はダウンサイジングを示してよく、「1」はアップサイジングを示してよい。このようにSCIdxが0の場合、サイズ変更を実現するための補間は、入力のサイズが小さくなるように行われる。SCIdxが1の場合、サイズ変更を実現するための補間は、入力のサイズが大きくなるように行われる。SCIdxの条件付きコーディングは、より簡潔で効率的なシンタックスを提供する可能性がある。しかしながら、本開示は、そのような条件付きシンタックスによって制限されるものではなく、SCIdxは、methodIdxとは独立して示されてもよいし、methodIdxと一緒に示されて(コーディングされて)もよい(例えば、SCIdxとmethodIdxのすべての組み合わせを示す値から値のサブセットのみを取り出すことができる共通のシンタックス要素の範囲内で)。
【0262】
指示methodIdxの場合と同様に、SCIdxもまた、再構成されるピクチャを復号する可能性のあるビットストリームをパースすることによって、デコーダによって取得されてもよい。SCIdxの値を取得すると、ダウンサイジング又はアップサイジングを選択することができる。
【0263】
上記の指示に加えて又は代替として、
図15に示すように、サイズ変更フィルタインデックス(ResizingFilterIndex、RFIDx)の追加(サイド)指示がシグナリングされることがある(ビットストリーム内で示される)。
【0264】
幾つかの例示的な実装では、RFIDxは第2オプション1502に対して条件付きで示されることがあり、これは、methodIdx=1の場合はRFIDxがシグナリングされ、methodIdx=0の場合はシグナリングされないことを含んでよい。RFIDxは、1ビットより大きいサイズを持つことがあり、例えば、その値に応じて、サイズ変更を実現するための補間でどの補間フィルタが使用されるかをシグナリングすることがある。代替として又は追加で、RFIDxは、複数の補間フィルタからフィルタ係数を指定することもできる。これは、例えば、Bilinear、Bicubic、Lanczos3、Lanczos5、Lanczos8などである。
【0265】
前述のように、methodIdx、SCIdx、RFIDxのうち少なくとも1つ、又はそれらのすべて、又はそれらのうち少なくとも2つが、再構成されるピクチャをも符号化するビットストリームであるか、追加のビットストリームであるビットストリームで提供される場合がある。その後、デコーダは各々のビットストリームをパースし、methodIdx及び/又はSCIdx及び/又はRFIDxの値を取得することができる。値によっては、上記のようなアクションが実行されることがある。
【0266】
サイズ変更を実現するための補間に使用するフィルタは、例えば倍率によって決定することができる。
【0267】
図15の右下の項目1701に示されているように、RFIDxの値は明示的にシグナリングされる場合がある。代替として又は追加で、RFIDx=LUT(SCIdx)となるように、ルックアップテーブルからRFIDxを取得することもできる。
【0268】
別の例では、2つのルックアップテーブルがあり、1つはアップサイジングの場合、もう1つはダウンサイジングの場合のためである。この場合、LUT1(SCIdx)はダウンサイジングが選択されたときのサイズ変更フィルタを示し、LUT2(SCIdx)はアップサイジングの場合のサイズ変更フィルタを示すことがある。
【0269】
一般に、本開示は、RFIDxのための特定のシグナリング方法に限定されない。それは、他の要素から独立した個別のものであってもよいし、共同でシグナリングされてもよい。
【0270】
図16と17は、サイズ変更方法の幾つかの例を示している。
図16と17では、3種類の異なるパディング操作とその性能が示されている。図の横軸はサンプル位置を示している。縦軸は各々のサンプルの値を示している。
【0271】
以下の説明は例示的なものであり、発明を特定の種類のパディング操作に限定することを意図していないことに注意されたい。直線の垂直線は入力の境界(実施形態によるとピクチャ)を示し、境界の右側はパディング操作を適用して新しいサンプルを生成するサンプル位置である。これらの部分は、以下では「使用できない部分」とも呼ばれ、元の入力には存在しないが、その後の処理のために再スケーリング操作中にパディングによって追加されることを意味する。入力境界の左側は、使用可能であり入力の一部であるサンプルを表す。図に示されている3つのパディング方法は、複製(replication)パディング、投影(reflection)パディング、ゼロで埋めることである。幾つかの実施形態に沿って実行されるダウンサンプリング操作の場合、NNのサブネットワークへの入力は、パディングされた情報、すなわち適用されたパディングによって拡張された元の入力となる。
【0272】
図16では、使用できない、パディングによって埋められる可能性のある位置(すなわちサンプル位置)は、位置4と5である。ゼロによるパディングの場合、使用できない位置は値0のサンプルで埋められる。投影パディングの場合、位置4のサンプル値は位置2のサンプル値と等しく設定され、位置5の値は位置1の値と等しく設定される。つまり、投影パディングは、入力境界で最後に使用可能なサンプルである位置3にある使用可能なサンプルをミラーリングすることと同じである。複製パディングの場合、位置3のサンプル値は位置4と5にコピーされる。アプリケーションごとに異なるパディングタイプが優先される場合がある。
【0273】
具体的には、適用されるパディングタイプは、実行されるタスクに依存する場合がある。例えば、
ゼロによるパディング又は埋め込みは、認識や検出タスクなどのコンピュータビジョン(Computer Vision (CV))タスクに使用するのに適している。これにより、元の入力にすでに存在する情報の量/値/重要度を変更しないよう、情報が追加されない。
【0274】
投影パディングは、追加される値は定義された「投影線」(すなわち、元の入力の境界)に沿って既存の値からコピーされるだけでよいため、計算上簡単な方法である場合がある。
【0275】
反復パディング(繰り返しパディングとも呼ばれる)は、ほとんどのサンプル値と導関数(derivative)の連続性が保存されるため、畳み込み層を使用した圧縮タスクに適している場合がある。サンプル(使用可能なサンプルとパディングされたサンプルを含む)の導関数は、
図16と17の右側に記載されている。例えば、投影パディングの場合、信号の導関数は4の位置で急激な変化を示す(図に示されている例示的な値では、この位置で-9の値に達する)。滑らかな信号(導関数が小さい信号)は圧縮しやすいため、ビデオ圧縮タスクの場合に投影パディングを使用することは望ましくない場合がある。
【0276】
示されている例では、複製パディングは導関数の変化が最小である。これは、ビデオ圧縮タスクの観点からは有利だが、境界で追加される情報の冗長性が高くなる。これにより、境界での情報が他のタスクで意図されているよりも重くなる可能性があるため、実装によっては、ゼロによるパディングの全体的な性能が投影パディングよりも優先される場合がある。
【0277】
図18は更なる実施形態を示す。ここではエンコーダ2010とデコーダ2020を並べて示す。図の実施形態では、エンコーダは複数のダウンサンプリング層1からNを含む。この実施形態によれば、ダウンサンプリング層は、エンコーダ2010内のニューラルネットワークのサブネットワーク2011及び2012を一緒にグループ化するか、又はその一部を形成する。これらのサブネットワークは、例えば、デコーダ2020に提供できる特定のビットストリーム1及び2を提供する役割を果たすことができる。この意味で、エンコーダのダウンサンプリング層のサブネットワークは、合理的に分離できない論理ユニットを形成する可能性がある。
図18に示すように、エンコーダ2020の第1サブネット2011(又はサブネットワーク2011)は、各々のダウンサンプリング比を持つダウンサンプリング層1から3を含む。第2サブネットワーク2012は、各々のダウンサンプリング比を持つダウンサンプリング層MからNを含む。
【0278】
デコーダ2020は、アップサンプリング層1からNの対応する構造を持つ。デコーダ2020の一方のサブネットワーク2022は、アップサンプリング層NからMを含み、他方のサブネットワーク2021は、(ここでは、各々の入力の処理順序で見たときに、デコーダに沿った番号付けになるように、降順に)アップサンプリング層3から1を含む。
【0279】
前述のように、エンコーダの第1サブネットワーク2011の前に入力に適用された再スケーリングは、デコーダのサブネットワーク2021の出力に対応して適用される。これは、前述のように、第1サブネットワーク2011への入力のサイズがサブネットワーク2021の出力のサイズと同じであることを意味する。
【0280】
より一般的には、エンコーダのサブネットワークnの入力に適用される再スケーリングは、再スケーリングされた入力のサイズが再スケーリングされた出力のサイズと同じになるように、サブネットワークnの出力に適用される再スケーリングに対応する。インデックスnは、エンコーダを介して入力を処理する順序でサブネットワークの数を示すことができる。
【0281】
図19は、例えば
図25に従ったエンコーダにおけるようなエンコーダ(ここでは更に描かれていない)におけるニューラルネットワーク2100の実装を示している。しかし、説明を容易にするために、ここではエンコーダの更なる構成要素に関係なく、ニューラルネットワーク2100のみが描かれている。
【0282】
ニューラルネットワーク2100は、そのようにして複数の層2111、2112、2121、2122を含む。これらの層は、それらが受け取った入力を処理するために提供される。各々の層への各々の入力は、2101、2102、2103、及び2104で示される。最終的に破線で、元の入力2101がニューラルネットワークの各層によって処理された後に、ニューラルネットワーク2105の出力が提供される。
【0283】
図19によるニューラルネットワーク2100は、ピクチャを符号化するために提供される。この点に関して、入力2101は、ピクチャ又はこのピクチャの前処理された形式と見なすことができる。このピクチャの前処理された形式は、ここには示されていないニューラルネットワーク2100の先行する層によって既に処理されていること、及び/又は、ピクチャが例えば解像度を変更するなどによって他の方法で前処理されたことを含むことができる。前処理はこの点に関して制限されない。
【0284】
更なる説明のために、入力2101は少なくとも1つの次元で所与のサイズを持ち、例えば、行列の各エントリが入力のサンプル値を構成する行列の形で表される2つの次元を持つ入力を構成することができると仮定される。入力2101がピクチャであるという意味で、行列内の値は、例えば特定のカラーチャネルにおけるピクチャのサンプルの値に対応することができる。ピクチャは、すでに説明したように、静止画又はビデオシーケンス又はビデオの意味での動画であることができる。ビデオのピクチャは、ピクチャ又はフレームなどと呼ばれることもある。
【0285】
ニューラルネットワーク2100による、具体的には各々の層による入力2101の処理中に、符号化されたピクチャを表す出力2105が作成され、バイナリ化又はNN層からの出力のビットストリームへの符号化後にビットストリームの形で提供されることがある。特徴マップ(チャネル)のバイナリ化/符号化は、NNの出力に対して実行されることがある。ただし、特徴マップのバイナリ化/符号化自体がNNの層と見なされることがある。符号化は、例えばエントロピー符号化である。本開示は、符号化されたピクチャを表すビットストリームのサイズが、入力ピクチャのサイズよりも小さいことを含む。
【0286】
これは、幾つかの実施形態によれば、1つ以上のダウンサンプリング層を含む層2111、2112、2121、2122によって達成される。説明を容易にするために、
図19に示されているニューラルネットワーク2100の各層2111、2112、2121、2122は、受信した各々の入力にダウンサンプリングを適用するダウンサンプリング層であると仮定する。このダウンサンプリングは、ダウンサンプリング層が受信する入力のサイズを、各々のダウンサンプリング層に関連付けられたダウンサンプリング比で減らすことを含む。所与のダウンサンプリング層mに関連付けられたダウンサンプリング比は、r
mで表すことができ、自然数である。ここで、mは自然数である。
【0287】
ダウンサンプリングは、ダウンサンプリング層の出力のサイズにダウンサンプリング比rmを乗じたものが、ダウンサンプリング層に提供される入力のサイズと等しいことを包含する。
【0288】
ダウンサンプリングは、ダウンサンプリング層の入力に畳み込みを適用することによって提供することができる。
【0289】
このような畳み込みは、入力の元の行列(例えば、1024×512個のエントリを有する行列では、エントリはM
ijで示される)のエントリと、この行列上で実行(シフト)され、通常は入力のサイズよりも小さいサイズを持つカーネルKとの要素ごとの乗算を含む。2つの離散変数の畳み込み演算は、次のように記述できる:
【数40】
【0290】
したがって、すべての可能なnの値に対する関数(f*g)[n]の計算は、入力配列g[]に対してカーネル又はフィルタf[]を実行(シフト)し、シフトされた各位置で要素ごとの乗算を実行することと等価である。
【0291】
上の例では、カーネルKは2×2行列であり、ステップ範囲2によって入力に対して実行されるため、ダウンサンプリングされたビットストリームDの第1エントリD11は、カーネルKにエントリM11、M12、M21、M22を乗算することによって取得される。次に、水平方向の次のエントリD12は、エントリとカーネル、又はエントリM13、M14、M23、M24と削減された行列の内積を計算することによって取得される。垂直方向では、これが対応して実行されるため、最終的には、MとKの各内積を計算して得られたエントリDijを持ち、方向又は次元ごとに半分のエントリしか持たない行列Dが得られる。
【0292】
つまり、畳み込み出力を得るために使用されるシフト量がダウンサンプリング比を決定する。カーネルが各計算ステップ間で2サンプルシフトされた場合、出力は2の係数でダウンサンプリングされる。ダウンサンプリング比2は上記の式で次の通り表すことができる:
【数41】
【0293】
転置畳み込み演算(以下で説明するように復号中に適用できる)は、畳み込み演算と同じ方法で数学的に表すことができる。「転置」という用語は、当該転置畳み込み演算が特定の畳み込み演算の反転に対応することに対応する。しかし、実装的には、転置畳み込み演算は上記の式を使用して同様に実装することができる。転置畳み込みを使用したアップサンプリング演算は、次の関数を使用して実装することができる:
【数42】
【0294】
上記の式において、uはアップサンプリング比に対応し、int()関数は整数への変換に対応する。例えばint()演算は丸め演算として実装できる。
【0295】
上記の式では、畳み込みカーネル又はフィルタf()と入力変数配列g()が1次元配列の場合、値m及びnはスカラインデックスとすることができる。また、カーネルと入力配列が多次元の場合、これらは多次元インデックスと理解することもできる。
【0296】
本発明は、畳み込みと逆畳み込みによるダウンサンプリング又はアップサンプリングに限定されない。ダウンサンプリング又はアップサンプリングのあらゆる可能な方法は、ニューラルネットワーク(NN)の層で実装することができる。
【0297】
本開示の文脈において、エンコーダ2100の1つ又は複数の層は、エンコーダのサブネットワークの形で要約される。
図19において、これは破線の長方形2110と2120で表される。サブネットワーク2110はダウンサンプリング層2111と2112を含み、サブネットワーク2120はダウンサンプリング層2121と2122を含む。本開示の文脈において、サブネットワークは同数のダウンサンプリング層を含むことに制限されない。したがって、
図19のように各々2つのダウンサンプリング層を持つサブネットワーク2110及び2120を提供することは、説明の目的のためにのみ提供される。更に、サブネットワークの少なくとも1つが少なくとも2つのダウンサンプリング層を含む一方で、他のサブネットワークのダウンサンプリング層の数は制限されないが、少なくとも2つであってもよいことが、本開示に含まれる。
【0298】
更に、1つ以上のサブネットワークは、ダウンサンプリング層ではないが入力に対して異なる操作を実行する更なる層を含むことができる。追加又は代替として、サブネットワークは、既に上記で例示されているように、更なるユニットを含むことができる。
【0299】
更に、ニューラルネットワークの層は、ニューラルネットワークの対応する層の各々の入力及び/又は出力に対して他の操作を実行する更なるユニットを含むことができる。例えば、サブネットワーク2110の層2111は、ダウンサンプリング層であってもよく、ダウンサンプリング前のこの層への入力の処理順序において、正規化線形ユニット(ReLu)及び/又はバッチ正規化器が提供されていてもよい。
【0300】
正規化線形ユニットは、次式の形式で修正されたエントリP’
ijを得るために、行列PのエントリP
ijに正規化(rectification)を適用することが知られている:
【数43】
【0301】
これにより、修正された行列の値がすべて0以上になることが保証される。これは、一部のアプリケーションで必要又は有利な場合がある。
【0302】
バッチ正規化器は、まず、次式:
【数44】
の形でサイズMxNを持つ行列PのエントリP
ijから平均値を計算することによって、行列の値を正規化することが知られている。
【0303】
この平均値Vを使って、エントリP’
ijを持つバッチ正規化行列P'は、次式により得られる:
【数45】
【0304】
バッチ正規化器によって得られた計算も、正規化線形ユニットによって得られた計算も、エントリの数(又はサイズ)を変更するのではなく、行列内の値を変更するだけである。
【0305】
このようなユニットは、状況に応じて、各々のダウンサンプリング層の前又は各々のダウンサンプリング層の後に配置することができる。具体的には、ダウンサンプリング層が行列内のエントリ数を減らすので、バッチ正規化器は、各々のダウンサンプリング層の後のビットストリームの処理順序で配置する方が適切な場合がある。これにより、VとP’ijを求めるために必要な計算回数を減らすことができる。ダウンサンプリング層で畳み込みを使用している場合は、エントリによっては0になることがあるため、正規化線形ユニットは乗算を簡略化して減少したサイズの行列を得ることができるため、ダウンサンプリング層で畳み込みを適用する前に正規化線形ユニットを配置することが有利になる。
【0306】
ただし、本発明はこの点に限定されず、バッチ正規化器又は正規化線形ユニットをダウンサンプリング層に対して別の順序で配置することができる。
【0307】
更に、ニューラルネットワークの各層が必ずしもこれらの更なるユニットの1つを持つわけではなく、又は他の修正又は計算を実行する他の更なるユニットを使用することもできる。
【0308】
サブネットワークの提供は、それらが有するダウンサンプリング層の数に関して一般的に任意であってよいが、2つの異なるサブネットワークは、ニューラルネットワークのどの層も(それがダウンサンプリング層又は他の層を構成するかどうかに関係なく)2つのサブネットワークの一部ではないという点で、異なる層を持つ。
【0309】
更に、ニューラルネットワークの特定の層の特定のサブネットワークへの関連付けは任意であるかもしれないが、ニューラルネットワークの層は、受信した入力を処理し、サブネットワークの層による処理の後に出力としてビットストリームを提供する場合には、サブネットワークに要約されることが望ましい場合がある。
図19の文脈では、これは、層2112の出力である出力2103が、入力として後続のサブネットワーク2120とそのダウンサンプリング層2121に提供されるだけでなく、更に第1サブネットワークの出力として第1サブビットストリームとして提供される場合があることを含む。その後、後続のサブネットワーク2120は入力2103を処理し、出力として更にサブビットストリーム2105を提供する場合がある。
【0310】
第1サブビットストリーム2103のサイズは、入力2101のサイズよりも小さく、少なくとも1つの次元のサブビットストリーム2105のサイズよりも大きいことが望ましい。
【0311】
この入力を処理するサブネットワークによる入力(例えば入力2101)の信頼できる処理を確保するために、本開示に従って、必要に応じて、少なくとも1つの次元の入力2101に再スケーリングが適用されることが想定される。この再スケーリングは、入力を処理する各サブネットワークのすべてのダウンサンプリング層の結合ダウンサンプリング比の整数倍に一致するように、入力のサイズを変更することを含む。
【0312】
これをより詳細に説明するために、入力2101のように、サブネットワークには入力を処理する順序で番号が付けられていると仮定してもよい。この入力を処理する第1サブネットワークには1を番号付けし、第2サブネットワークには2を番号付けするというように、最後のサブネットワークKまで番号が付けられてよく、kは自然数である。したがって、任意のサブネットワークをサブネットワークkとして示すことができ、kは自然数である。サブネットワークk内のダウンサンプリング層は、上記で説明したように、関連するダウンサンプリング比を持つ。サブネットワークkは、Mのダウンサンプリング層を含むことができ、Mは自然数である。参考までに、サブネットワークkのダウンサンプリング層mは、rk,mで示されるダウンサンプリング比に関連付けられることがあり、ここで、インデックスkはこのダウンサンプリング比をサブネットワークkに関連付け、インデックスmはダウンサンプリング比rk,mがどのダウンサンプリング層に属するかを示す。
【0313】
その後、これらの各サブネットワークは、関連付けられた結合ダウンサンプリング比を有する。
【0314】
具体的には、サブネットワークkの全ダウンサンプリング層のダウンサンプリング比rk,mの積を計算することで、サブネットワークkの結合ダウンサンプリング比Rkを求めることができる。
【0315】
前述の再スケーリングを参照すると、サブネットワークkの入力に適用される再スケーリングは、各々のサブネットワークkの結合ダウンサンプリング比Rkにのみ依存し、lがkに等しくない別のサブネットワークlのダウンサンプリング比には依存しないことが望ましい場合がある。これにより、このサブネットワークの結果として生じる出力が別のサブネットワークで合理的に処理できるかどうかに関係なく、各々のサブネットワークとそのダウンサンプリング層で確実に処理できるように、入力のサイズのみを変更する再スケーリングが得られる。
【0316】
図19の文脈では、これは、第1サブネットワーク2110で処理するために、第1再スケーリングを入力2101に適用できることを意味する。その処理の後に得られる出力は、後続のサブネットワーク2120への入力として、及び/又は出力サブビットストリームとして機能することができる出力2103である。出力2103が後続のサブネットワーク2120への入力として更に使用されるという意味で、この出力2103のサイズは、サブネットワーク2110について以前に説明したのと同じ方法でこの結合ダウンサンプリング比が得られる可能性があるサブネットワーク2120の結合ダウンサンプリング比Rの整数倍に一致するように再スケーリングされてもよい。このプロセスは、別のサブネットワークがこの出力2105を処理する場合に備えて、サブネットワーク2120の出力2105に対して繰り返すことができる。
【0317】
より一般的に言えば、サブネットワークkへの入力を考えることができる。この入力は、少なくとも1つの次元にサイズSkを持つ行列の形式で表すことができ、kはこれがサブネットワークkへの入力であることを示す。入力は行列の形式を持つため、Skは少なくとも1である整数値である。入力のサイズSkがすでに上で定義されている結合ダウンサンプリング比Rkの整数倍である場合、すなわちSk=nRk、nは自然数である、ならば、サブネットワークkで入力の合理的な処理が可能である。そうでない場合は、サイズSkを持つ入力に再スケーリングを適用して、そのサイズをこの要件を満たす、つまりサブネットワークkの結合ダウンサンプリング比Rkの整数倍である、新しいサイズS-
kに変更することができる。
【0318】
図20は、再スケーリングがどのように取得されサブネットワークkの入力に適用されるかのより具体的な実施形態を示している。
【0319】
方法2200は、サイズSkの入力をサブネットワークkで受信する第1ステップ2201から始まる。サイズSkのこの入力は、例えば、ニューラルネットワークの先行サブネットワークから受信される可能性があり、したがって、符号化される入力ピクチャと同じサイズを構成しない可能性がある。ただし、インデックスkのサブネットワークが入力ピクチャを処理する第1サブネットワークである場合、サイズSkは元のピクチャに対応する入力を構成することもできる。
【0320】
その後のステップ2202で、サイズSkが、サイズSkの入力を処理するサブネットワークkの結合ダウンサンプリング比Rkの整数倍に対応するかどうかを評価してもよい。
【0321】
この決定は、例えば、サイズS
kを、結合ダウンサンプリング比R
kとサイズS
kに依存する関数と比較することからなる。具体的には、以下の値:
【数46】
をサイズS
kと比較することができる。追加又は代替として、以下の値:
【数47】
をサイズS
kと比較することができる。この比較は特に以下の差の計算を含むことができる:
【数48】
関数ceilとfloorの両方が除算:
【数49】
の結果の最も近い整数を提供するため、これらの値が0の場合、S
kはすでに結合ダウンサンプリング比R
kの整数倍である。この最も近い整数に結合ダウンサンプリング比を乗算すると、S
kがすでに結合ダウンサンプリング比R
kの整数倍である場合にのみS
kと等しくなる。
【0322】
この比較の結果を使用して、各々のサブネットワークkで入力の処理を実行する前に、サイズSkの入力に再スケーリングを適用してそのサイズを新しいサイズS-
kに変更するかどうかを判断することができる。
【0323】
この状況では、2つのケースが発生する可能性がある。ステップ2202で、サイズSkがサブネットワークkの結合ダウンサンプリング比Rkの整数倍であり、したがって、このサブネットワークkで入力を合理的に処理できるサブネットワークの許容入力サイズに対応することがすでに決定されている場合、ステップ2210での決定を行うことができる。この場合、後続のステップ2211では、サイズSkの入力に対して、各々のサブネットワークkでダウンサンプリング操作を行うことができる。これは、サブネットワークkでのダウンサンプリング中に、サイズSkをサイズSk+1に減少することを含んでおり、ここでは、サブネットワークへの入力にダウンサンプリングが適用されるため、Sk+1はSkよりも小さい。この場合、サイズSkとサイズSk+1は、サブネットワークkの結合ダウンサンプリング比Rkによって関連付けられる。この場合、Skは、Sk+1と結合ダウンサンプリング比Rkの積に対応する。
【0324】
サブネットワークでこのダウンサンプリングを実行すると、ステップ2212でサイズSk+11の出力を提供できる。
【0325】
計算効率のために、以下が提供できる:サイズSkがすでに各サブネットワークkの結合ダウンサンプリング比Rkの整数倍に対応していると決定されても、サイズSkの元の入力のサイズ変更が実行される。ただし、サイズSkはすでに許容入力サイズに対応しているため、このサイズ変更の結果、サイズSkは変更されねい。
【0326】
ステップ2202でサイズSkが結合ダウンサンプリング比Rkの整数倍に対応していないと決定された場合は、サブネットワークkへの許容入力サイズであるサイズS-
kにサイズSkを変更する再スケーリングを行い、サブネットワークによる入力の信頼性のある処理を保証する。これは、決定2220からステップ2221への処理の流れで示される。
【0327】
この文脈では、ステップ2221で、サイズがS
kの入力に再スケーリングが適用され、入力サイズが、S
-
kとであると考えられるサブネットワークの許容入力サイズに変更される。この許容入力サイズは、いずれの場合も、結合ダウンサンプリング比R
kの整数倍である。この再スケーリングを元の入力に適用することで、そのサイズは再スケーリングされた入力サイズS
-
kに変更される。これは、
図20のステップ2222に示される。
【0328】
この再スケーリングされた入力は、各々のサブネットワークでダウンサンプリングを適用することによってステップ2211で処理される。再スケーリングは、ステップ2211の処理を適用するときに、サブネットワークによって適用されるダウンサンプリングは、しかしながら、サイズSkをサイズS-
kに増大させることを含む可能性があっても、入力サイズSkよりも小さい減少したサイズSk+1になるように選択されることが望ましい。これは、例えば、サイズS-
kを、サブネットワークkのダウンサンプリング比Rkの最も近い小さい整数倍又はサブネットワークkの結合ダウンサンプリング比Rkの最も近い最大の整数倍のいずれかに対応するサイズS-
kに変更することによって、以下で説明するように確実にすることができる。
【0329】
これは、例えば、結合ダウンサンプリング比の最も近い大きい整数倍を求める以下の関数:
【数50】
を使用することによって実現することができる。この値は、サブネットワークkの許容入力サイズとして設定又は考慮することができ、S
-
kで表すことができる。サイズS
kが結合ダウンサンプリング比の整数倍でなかった場合、S
-
kはサイズS
kよりも大きくなり、再スケーリングは入力のサイズをサイズS
-
kに増大することを含むことができる。代替として、結合ダウンサンプリング比の最も近い小さい整数倍を次式を使用して取得することもできる:
【数51】
サイズS
kが結合ダウンサンプリング比R
kの整数倍でない場合、この値はS
kより小さくなる。その後、サイズS
kをこの値に再スケーリングして、サイズS
kを減少することができる。
【0330】
サイズSkを結合ダウンサンプリング比の最も近い大きな整数倍に増やすか、サイズSkを結合ダウンサンプリング比の最も近い小さな整数倍に減らすかの決定は、更なる検討に依存する場合がある。
【0331】
例えば、ピクチャを符号化する場合、符号化されたピクチャを構成するビットストリームを再度復号するときに、ビットストリームから得られる復号されたピクチャの品質が、最初にエンコーダに入力されたピクチャの品質と同等であることを保証することが重要である。これは、例えば、サブネットワークkへの入力のサイズを、このサブネットワークの結合ダウンサンプリング比の最も大きな整数倍に増やすだけで、情報が失われないようにすることで実現できる。これは、例えば、
図13から
図17の実施形態に関連して既に説明したように、ゼロによるパディングを適用するか、投影パディング又は反復パディングを使用して新しいサンプルを作成し、その後、入力のサイズをS
-
kに増やすために使用することを含むことができる。更に、既に存在する隣接するサンプル間の平均値として新しいサンプルを作成することを含む場合のある補間を使用することができる。
【0332】
一方、このパディングは、再度復号されたときにピクチャの境界に悪影響を与える可能性のある情報が入力に追加されることになるため、サイズを小さくする方法でクロッピング又は補間を使用して、サイズSkをサブネットワークkの結合ダウンサンプリング比Rkの最も近い小さい整数倍に減少することが考えられる。クロッピングは、元の入力からサンプルを削除することで、サイズを小さくすることを含む。サイズを小さくするための補間は、サイズSkの元の入力の1つ以上の隣接するサンプルの平均値を計算し、この平均値を元のサンプルの代わりに単一のサンプルとして使用することを含むことができる。
【0333】
この再スケーリングをサブネットワーク単位で適用することにより、最終的にエンコーダによって出力される、結果として生じたビットストリームのサイズの削減が得られる。これについては、
図19に関連する記述も利用した数値例に関して、以下で説明する。
【0334】
図19では、2つのサブネットワーク2110と2120があった。以下では、ニューラルネットワーク2100が正確にこれら2つのサブネットワークを含むと仮定する。更に、説明のために、第1サブネットワーク2110は、各々のダウンサンプリング比が2の2つのダウンサンプリング層を含むとする。第2サブネットワークは、以下では、ダウンサンプリング比が2の4つのダウンサンプリング層を含むサブネットワークであるとする。
【0335】
更に、
図19に例示されているように、第1サブネットワーク2110の後に、サブビットストリーム2103を出力することができる。このサブビットストリーム2103は、エンコーダによって最終的に出力されるビットストリームの一部を形成することができる。更に、第1サブネットワークと第2サブネットワークを含むニューラルネットワーク全体を通じて元の入力を処理した後、第2サブネットワーク2120によって第2サブビットストリーム2105が出力されることもある。
【0336】
上記の数値例に戻ると、ニューラルネットワークへの入力に適用されるダウンサンプリング全体は、実際にはニューラルネットワークのサブネットワークへの分離から独立している。これは、すべてのダウンサンプリング比の積である、ネットワーク全体の全体ダウンサンプリング比を計算することによって得られる。これは、各々2のダウンサンプリング比を持つ6つのダウンサンプリング層があるため、ニューラルネットワーク全体のダウンサンプリング比は64であることを意味する。したがって、入力をニューラルネットワーク全体で処理した後、入力のサイズは64倍に減少される。
【0337】
従来技術では、入力をニューラルネットワークで処理する前に再スケーリングを適用し、ニューラルネットワーク全体で処理できるようにしていた。つまり、入力サイズをニューラルネットワーク全体の全体ダウンサンプリング比の整数倍に相当する値に再スケーリングする必要がある。この例の文脈では、これは入力サイズのみが先行技術に従って64の整数倍であることを意味する。
【0338】
例えば入力サイズを540とする。これは全ダウンサンプリング比64の整数倍ではないことが分かる。先行技術における信頼性のある処理を保証するために、これらは元のサイズに最も近い全ダウンサンプリング比64の整数倍であるため、576又は512のいずれかに再スケーリングが行われる。
【0339】
以下の議論では、入力のサイズが576に増大した後、先行技術に従ってダウンサンプリング層によって処理され、位置2103において(すなわち、2つのダウンサンプリング層で入力を処理した後)第1ビットストリームを作成し、すべてのダウンサンプリング層で入力を処理した後に第2ビットストリームを作成すると仮定する。第12つのダウンサンプリング層により再スケーリングされたサイズ576を有する入力を処理することにより、第1ビットストリームが得られる。第1ダウンサンプリング層の後、サイズ576の入力は、サイズ288に対してダウンサンプリング比2だけ減少する。次のダウンサンプリング層は、このサイズを値144に減少させる。したがって、先行技術による第1出力ビットストリーム2103のサイズは144になる。
【0340】
これは、残りのダウンサンプリング層によって更に処理され、合計で16のダウンサンプリング比を有する。これにより、先行技術による後続のダウンサンプリング層への入力2103のサイズは、最初に72に、次に36に、次に18に、最後に9に減少される。先行技術に従いニューラルネットワークにより入力を処理した後に出力される第2ビットストリーム2105は、したがって9のサイズになる。
【0341】
第1出力2103と第2ビットストリーム2105をエンコーダの出力として結合ビットストリームに結合すると、153=144+9のサイズになる。
【0342】
ただし、現在の開示によると、状況は異なる。
【0343】
前述のように、入力に適用される再スケーリングは、入力のサイズSkが、各々の入力を処理するサブネットワークkの結合ダウンサンプリング比Rkの整数倍に等しくない場合に、入力のサイズを変更するように再スケーリングが適用されるように求められる。
【0344】
上記の例に従って、1つの実施形態によれば、第1サブネットワークは、各々がダウンサンプリング比2を持つ2つのダウンサンプリング層を含み、その結果、結合ダウンサンプリング比R1=4となる。入力のサイズは、上記のように540である。512は4の整数倍である(4x135=540)。これは、第1サブネットワークで入力を処理する場合、再スケーリングは必要なく、出力2103は第1サブネットワーク2110で処理された後に135のサイズになることを意味する。したがって、第1ビットストリームは、先行技術による方法で得られた第1ビットストリームのサイズよりも小さいサイズを有する。そこで第1ビットストリームのサイズは144となった。
【0345】
次のステップでは、この第1サブネットワークの出力2103という形の中間結果が、組み合わされたダウンサンプリング比R2=24=16(ダウンサンプリング比が各々2である4つのダウンサンプリング層)を持つ第2サブネットワークへへの入力として提供される。135は16の整数倍ではないため、第2サブネットワークで入力2103を処理する前に入力の再スケーリングが必要になる。再び、従来技術と同等の結果を得るためにサイズが増大すると仮定すると、結合ダウンサンプリング比R2=16の入力サイズ135の最も近い大きな整数倍は144である。入力2103のサイズを144に増大させた後、更に処理を行うと、第2サブネットワークでダウンサンプリングを適用することによって得られる第2ビットストリーム2105になる。この第2ビットストリームのサイズは9に等しい(144/16=9)。
【0346】
これは、この例では、本開示の実施形態に従って第1ビットストリームと第2ビットストリームを含むニューラルネットワークで入力を処理した後のビットストリーム出力が135+9=144のサイズを持つことを意味する。これは、上記で説明した従来技術による出力サイズよりも約5%小さく、同じ情報を符号化しながらビットストリームのサイズを大幅に削減することになる。
【0347】
より具体的な例を提供するために、サブネットワーク2110及び2120は、例えば、
図4に従ってエンコーダ601及びハイパーエンコーダ603を形成するネットワークとすることができる。エンコーダ601は第1ビットストリームを出力として提供し、ハイパーエンコーダ603は第2ビットストリームを提供する。これは、
図6及び
図7だけでなく、
図10及び
図11に沿ったニューラルネットワークの実施形態にも転用することができる。この文脈では、第1サブネットワーク2110は、各々
図10及び
図11(マスク畳み込みを適用する前)のエンコーダの左側のサブネットワークであってもよいが、一方、
図19の第2サブネットワーク2120は、マスク畳み込み1204を適用した後、各々
図10又は
図11の右側として実装されてもよい。
【0348】
図21は、サブネットワークkの結合ダウンサンプリング比R
kの整数倍に等しくない入力への必要な再スケーリングがどのようにして得られるかに関する更なる実施形態を示している。
【0349】
サイズS
kの入力を再スケーリングする必要があるかどうかを決定する方法2300は、サイズS
kがlR
kに等しくない(lは自然数であり、R
kはサブネットワークkの結合ダウンサンプリング比である)入力をサブネットワークで受信するステップ2301から始まる。次のステップ2302では、結合ダウンサンプリング比R
kの最も近い小さい整数倍と、結合ダウンサンプリング比R
kの最も近い大きい整数倍が何であるかを決定することができる。ステップ2302は、結合ダウンサンプリング比の最も近い小さい整数倍をサイズS
kに示す値lを得るために、以下の関数を計算することを含むことができる:
【数52】
代替として又は追加で、値l+1は次式を計算することによって得られる:
【数53】
floorの代わりに、floorとintの両方として以下の関数を使用しても:
【数54】
この除算の最も小さい整数倍を結果として得る。
【0350】
これらの計算は、lとl+1の値を明示的に取得する代わりに使用できる。更に、lとl+1の値を取得するために、floor、int、ceilのいずれか1つの関数のみを使用することが想定できる。例えば、ceilを使うと、値l+1が得られる。ここから、1を引くと値lが得られる。同様に、int又はfloorを使うと、値lが得られ、1を足すと値l+1が得られる。
【0351】
更に条件によっては、条件の評価とそれに対応するステップ2310又は2320で得られた結果によって、サイズSkを大きくするか小さくするかがステップ2403で決定される場合がある。例えば、片側のlRkとSkの差の絶対値と、(l+1)RkとSkの差の絶対値を決定できる、すなわち|Sk-lRk|と|Sk-lRk(l+1)|を求めることができる。どちらが小さいかによって(例えば、2つの値のうちの小さい方を投げる関数Minを使うと)、入力のサイズSkが、結合ダウンサンプリング比Rkの最も近い小さい整数倍に近いか、あるいは結合ダウンサンプリング比Rkの最も近い大きい整数倍に近いかを決定することができる。
【0352】
条件2403が、サイズSkを持つ元の入力に対して可能な限り少ない修正が適用されることを含む場合、サイズを増加するか減少するかの決定は、その後、上記で説明した比較の結果を評価することによって行うことができる。これは、Skが、結合ダウンサンプリング比の最も近い大きい整数倍よりも、結合ダウンサンプリング比の最も近い小さい整数倍に近い場合、ステップ2320で、サイズSkがダウンサンプリング比Rkの最も近い小さい整数倍、すなわちステップ2321で最も近い小さい整数倍lRkに減少すると決定されることを意味する。
【0353】
サイズが減少したこの再スケーリングされた入力により、サブネットワークによってステップ2330でダウンサンプリングが実行され、それによって、すでに説明したような出力が得られることがある。
【0354】
対応して、最も近い大きな整数倍(l+1)Rkと入力サイズSkとの差が、結合ダウンサンプリング比Rkの最も近い小さな整数倍との差よりも小さい場合は、ステップ2311のこの結果2310に応じて、サイズが(l+1)Rkに等しいサイズS-
k、すなわち結合ダウンサンプリング比Rkの最も近い大きな整数倍に増大することがある。
【0355】
また、元の入力サイズSkをサイズS-
kに増やした後、ステップ2330で各サブネットワークkによる入力の処理を行ってもよい。
【0356】
すでに説明したように、再スケーリングの適用は、例えばパディングや補間の適用(より大きなサイズに再スケーリングする場合)を含むことができる。サイズSkがサイズS-
kに減少する場合は、クロッピングや補間の例を適用して再スケーリングを行うことができる。
【0357】
図13から
図15に関連して既に説明したように、再スケーリングの適用方法に関する特定の情報は、符号化を実行するエンコーダにすでにシグナリングされている場合がある。これは、追加のビットストリームの一部として、又はピクチャに関連する情報とともに提供することができる。
【0358】
図22は、ピクチャを表すビットストリームを符号化する方法を適用するために、1つ以上の処理ユニット又はプロセッサを含むエンコーダに実装できるニューラルネットワーク2400の実施形態を示す。デコーダは、例えば、ハイパーデコーダとデコーダを含む
図4又は
図8に関連して説明されている実施形態に沿って実装することができる。
【0359】
したがって、
図4及び
図8に関して上記で説明した詳細は、現在説明されている実施形態に関しても含まれる。
【0360】
図22に見られるように、ニューラルネットワーク2400は複数の層2411、2412、2421、及び2422を含む。これらの層はその機能に制限はないが、幾つかの実施形態では、少なくともそのうちの幾つかは、入力にアップサンプリングを適用できるアップサンプリング層として提供されることが想定されている。説明を容易にするために、すべての層2411、2412、2421及び2422がアップサンプリング層であると仮定するが、これは本開示をいかなる形でも制限することを意図したものではない。実際、他の層は、ニューラルネットワークの一部として、また、
図19に関して上記で言及されたバッチ正規化器及び正規化線形ユニットのような更なるユニットとして提供される場合がある。
【0361】
ニューラルネットワーク2400への入力はアイテム2401で示される。これは、ピクチャを符号化するビットストリームである場合もあれば、ニューラルネットワークの前の層から提供される入力である場合もあり、又は任意の合理的な方法で処理又は前処理された入力である場合もある。
【0362】
いずれにせよ、入力は、少なくとも1つの次元でサイズTを持つ2次元行列の形式で表現可能であることが望ましい。ニューラルネットワーク2400の層、特にアップサンプリング層は、入力に対して処理を実行する。これは、入力2401が層2411によって処理され、この層の出力2402が後続の層2412などに提供されることを意味する。最後に、ニューラルネットワーク2400の出力2405が得られる。この出力2405がニューラルネットワーク2400の最後の層の出力である場合、それはビットストリームから得られた復号されたピクチャであるか又はそれを表すと考えられることがある。
【0363】
本開示によれば、
図19のエンコーダに関して既に説明したものに対応する方法で、ニューラルネットワーク2400をサブネットワーク2410及び2420に分離することができる。これは、各々が1つ以上の層、具体的には1つ以上のアップサンプリング層を含む複数のサブネットワーク2410及び2420(又は更にサブネットワーク)が提供されることを意味する。
【0364】
幾つかの実施形態に沿って、これらのサブネットワークの少なくとも1つが少なくとも2つのアップサンプリング層を含むことが想定される。この文脈において、例えば、サブネットワーク2410は2つのアップサンプリング層2411と2412を含むことができる。それとは別に、本開示で提供される実施形態は、各々のサブネットワークに提供されるアップサンプリング層又は追加層の数に関して制限されない。
【0365】
また、本開示では、ニューラルネットワークに提供されるビットストリームが1つより多い場合も含まれる。この文脈において、入力2401は、ニューラルネットワークのすべてのサブネットワーク2410及び2420、及び可能な更なるサブネットワークによって処理される場合がある一方で、少なくとも1つの更なる入力ビットストリーム、例えば位置2403に提供される入力は、ニューラルネットワークのすべてのサブネットワークによって処理されることはなく、サブネットワーク2420及び可能な後続サブネットワークによってのみ処理され、サブネットワーク2410によっては処理されない場合がある。
【0366】
ニューラルネットワーク2400を介したすべての入力の処理の最後に、例えばサイズToutputの出力2405を得ることができ、ここでこの出力は復号されたピクチャに対応する場合がある。本開示に沿って、出力のサイズToutputは一般的に入力のサイズTよりも大きくなる。入力のサイズTは事前に定義されていない場合があり、エンコーダによって最初に符号化された情報によって変化する場合があるため、例えば、最初にサイズToutputを持っていたピクチャの再構成を確実に実行できるように、ビットストリーム又は追加のビットストリームで出力サイズToutputを示すことは有利である。
【0367】
このような情報に基づいて、入力をサブネットワークで処理した後、このサブネットワークから得られた出力に可能な再スケーリングを適用してから、出力(可能な再スケーリングされた出力も含む)をニューラルネットワークの処理順序で次のサブネットワークで処理することも含まれる。
【0368】
この情報は、後続のサブネットワークによるサブネットワークの出力の処理の前に適用される可能な再スケーリングを決定するために使用される可能性があり、最終的な目標出力サイズToutputを含むだけでなく、追加情報を含む場合もあり、又は、例えば、各々のサブネットワークでの処理後に取得される予定の出力サイズや、後続のサブネットワークでの入力に対する予定の入力サイズのような追加情報を含む場合もある。この情報は、復号方法を実行するデコーダで利用できるか、デコーダに提供されるビットストリーム又は追加のビットストリームで提供することができる。
【0369】
本開示の実施形態に沿って、各サブネットワークk(例えば、サブネットワーク2410、2420)は、結合アップサンプリング比Ukに関連付けられている。ここで、インデックスkは、ニューラルネットワークを介した入力の処理順序におけるサブネットワークの数を列挙し、上記ですでに説明したように、他の列挙も可能であるが、0より大きい整数値であってよい。kが1から始まり、最後のサブネットワークである値Kまで続く整数値である場合、kは、ニューラルネットワークを介したビットストリームの処理順序におけるサブネットワークの位置を示すと考えることができる。
【0370】
この列挙は、上記で説明したように、エンコーダのサブネットワークの列挙と一致するように選択することができる。ただし、エンコーダとデコーダで各々のサブネットワークによって実行される処理の一致のために、インデックス付けの順序が異なることが想定される場合がある。これは、エンコーダで適用されたものと比較して、デコーダ内のサブネットワークの列挙に逆の順序が適用されることを意味する。例えば、エンコーダの第1サブネットワークは、インデックスk=1で示される場合がある。エンコーダで入力に適用された処理を反転させるデコーダでの対応するサブネットワークは、デコーダでのニューラルネットワークの入力の処理順序では、最後のサブネットワークである。これは、同様にインデックスk=1で示される場合もあれば、インデックスKで示される場合もあり、Kはニューラルネットワークのすべてのサブネットワークの数を示す。第1ケースでは、デコーダのサブネットワークとエンコーダの対応するサブネットワーク間のマッピングが可能である。後者のケースでは、変換を適用して各々のマッピングを得ることができる。
【0371】
図23は、ニューラルネットワークのサブネットワークの出力への可能な再スケーリングを提供するために実行される方法の例示的な実施形態を提供する。
【0372】
方法2200は、サイズT
kの入力をサブネットワークkで処理する第1ステップ2501から始まる。この処理は、サイズT
kを持つ入力をサイズT
-
k+1を持つ出力にアップスケーリングすることを含む。このアップサンプリングは、各々のアップサンプリング比u
k,mを持つサブネットワークkのアップサンプリング層mを介してサイズT
kを持つ入力を処理することによって得られる。ここで、kとmは自然数を示し、mはサブネットワークkを介した入力の処理順におけるアップサンプリング層mの位置を示すことができ、kは前述のようにサブネットワークの数を示す。サイズT
kは、このアップサンプリングにより、サイズT
-
k+1に増大する。サブネットワークは、各アップサンプリング層が受信する入力のサイズを各々のアップサンプリング比だけ(例えば逆畳み込みの適用により)増大させるアップサンプリングを各々のアップサンプリング層で適用するため、サブネットワークkへの入力のサイズT
kとサブネットワークkの出力のサイズT
-
k+1は互いに関係がある。この関係は、サブネットワークkの出力のサイズT
-
k+1が、サブネットワークへの入力のサイズT
kに、このサブネットワークのすべてのアップサンプリング層のアップサンプリング比の積を乗じた積に等しいことを意味する。これは、どの層がどのアップサンプリングを提供するかに依存しない。したがって、明示的な積の代わりに、結合ダウンサンプリング比U
kを使用してこの関係を記述することができ、U
kはサブネットワークkのすべてのアップサンプリング層のアップサンプリング比u
k,mの積であってもよい。これはで表すことができる:
【数55】
この結合アップサンプリング比U
kは、例えば、所与のサブネットワークkのすべてのアップサンプリング比u
k,mの積を明示的に計算することによって得られる。あるいは、結合アップサンプリング比U
kは、デコーダがすぐに使用できるようにプリセット又は指定することもできる。
【0373】
サブネットワークkによって実行されるアップサンプリングは、ニューラルネットワーク内の他のサブネットワークによって実行されるアップサンプリングから独立していることが望ましい。
【0374】
図23に戻ると、ステップ2502で、サイズT
-
k+1の出力をインデックスk+1の後続サブネットワークで受信する。すでに前述したように、方法の一部として、幾つかの追加又は更なる情報が取得され、この情報を使用して、このサイズT
-
k+1が後続サブネットワークk+1の意図された入力サイズと一致するサイズを持つかどうかを決定する。意図された又は許容入力サイズは、ハット(^)を付されたT^
k+1で示される場合がある。T^
k+1は、ビットストリーム又はその他の合理的な方法でデコーダにプリセット又は提供できる。
【0375】
代替として又は追加で、サイズT^k+1は、サブネットワークk+1の結合アップサンプリング比Uk+1とこのサブネットワークの目標出力サイズに依存する式に基づいて決定され、この目標出力サイズはT^k+2で示される可能性があることも想定できる。目標出力サイズは、後続のサブネットワークk+2への目標入力サイズを同様に構成することができる。
【0376】
例えば、次のサブネットワークk+2の目標入力サイズと現在のサブネットワークk+1の結合アップサンプリング比を使用して、目標入力サイズT^
k+1を取得できる。例えば、次のサブネットワークk+2の目標入力サイズを現在のサブネットワークk+1の結合アップサンプリング比U
k+1により除算して、目標入力サイズT^
k+1を取得できる。具体的には、これを以下のように表すことができる:
【数56】
代替として、以下のいずれかを用いて、サイズT^
k+1を取得することもできる:
【数57】
これにより、T^
k+1の取得値は常に整数値になる。
【0377】
T^k+1を決定すると、サイズT-
k+1からサイズT^k+1への再スケーリングは、サブネットワークk+1への目標入力サイズがT-
k+1より小さいか大きいかに応じて、サイズT-
k+1を増加又は減少することにより適用できる。この再スケーリングはステップ2503で適用される。
【0378】
次に、サブネットワークk+1の目標入力サイズに一致する再スケーリングされたサイズT^k+1を有するサブネットワークkの再スケーリングされた出力(又は、相応してサブネットワークk+1への再スケーリングされた入力)は、ステップ2504でサブネットワークk+1によって処理される。これにより、サブネットワークkと同様に、サイズT^k+1の入力にアップサンプリングが適用され、サイズT-
k+2の出力が得られる。好ましくは、サブネットワークk+1の出力のサイズT-
k+2が、再スケーリングが適用された前の入力の元のサイズT-
k+1より大きくなるように再スケーリングが適用され、サイズT-
k+1が目標入力サイズT^k+1に変更される。幾つかの実施形態では、サイズT-
k+1をサイズT^k+1に減少する再スケーリングを適用することが望ましい場合もあるが、このようにサイズの減少は、サブネットワークk+1でサイズT^k+1の入力を処理するときに、処理後に得られる出力がサイズT-
k+1よりもまだ大きいサイズT-
k+2を持つように提供される場合がある。
【0379】
サイズT
-
k+2の出力は、その後のサブネットワークk+2への入力として提供される場合があり、サブネットワークk+2の意図された目標入力サイズに一致するサイズT^
k+2への再スケーリングが再び必要になる可能性がある。上記と同様に目標入力サイズT^
k+2を計算し、最終出力サイズT
outputが既知であれば、最終出力サイズT
outputからの一般的なサブネットワークk(又は特定のサブネットワークk+2の場合はT^
k+2)のターゲット入力サイズT^
kと、サブネットワークk(又は各々k+2)を含む進行中のサブネットワークの結合アップサンプリング比を繰り返し求めることができる。具体的には、再スケーリングの必要がなく、すべてのサブネットワークでニューラルネットワークによる入力処理を行うと、すぐにサイズT
outputを持つ最終出力をもたらすと仮定する。その場合、サブネットワークkに対する入力サイズT^
kに、まだ入力を処理する必要があるすべてのサブネットワークの結合アップサンプリング比を掛けると、目標出力サイズT
outputに等しくなる。これは次式を意味し:
【数58】
結合アップサンプリング比のインデックスiはk(現在のサブネットワークkの場合)からKまでであり、Kはニューラルネットワークの最後のサブネットワークである。
【0380】
前述のように、これはサブネットワークkへの入力サイズT^
kが、再スケーリングを適用せずに後続のサブネットワークで処理できるサイズであり、すぐに目標出力サイズT
outputになる場合に当てはまる。それ以外の場合、サブネットワークkへの目標入力サイズT^
kはむしろ次式から求めることができる:
【数59】
したがって、実際の入力サイズT
-
kは、各サブネットワークの前にこれらの値のいずれかに設定することができる。すべてのサブネットワークの結合アップサンプリング比が同一であり、ここに示す一般的な計算の特殊なケースと考えることができる場合、すべての結合アップサンプリング比の積(その場合はすべてUで表すことができる)は、項U
Nに簡略化することができる。ここで、Nは、サイズT
-
kを持つ入力をまだ処理するサブネットワークの数を示す。
【0381】
一般に、目標サイズT^
k(T
-
kを再スケーリングして得られる、k番目のサブネットワークの入力となるサイズ)は、目標出力サイズT
outputと、k番目のサブネットワークの結合アップサンプリング比及び処理順でそれに続くサブネットワークの結合アップサンプリング比の少なくとも1つとの関数として取得できる。例えば、このような関数は次のような形式である以下の形式を有するだろう:
【数60】
ここで、、U
k、U
k+1、U
k+2、...は各々サブネットワークk、k+1、k+2、...の結合アップサンプリング比を示す。
【0382】
現在のサブネットワークの出力における目標サイズは、次の関数に従って計算することもできる:
【数61】
ここで、Uはスカラ(アップサンプリング比を示す事前定義された数である場合もある)を示し、Nは処理順序においてk番目のサブネットワークを含み、それに続くサブネットワークの数を示す。この関数は、サブネットワークのアップサンプリング比がすべてUと等しい場合に特に役立つ可能性がある。
【0383】
別の例では、目標サイズT^
kを次式のような関数に従って計算することができる:
【数62】
Scale
kは、事前に計算又は定義されているスカラ数である。一般に、複数のサブネットワークで構成されるデコーダネットワークの構造は、設計中に固定され、後で変更することはできない。このような場合(デコーダ構造が固定されている場合)、現在のサブネットワークに従うすべてのサブネットワークとそのアップサンプリング比は、デコーダの設計中に既知である。これは、個々のサブネットワークの結合アップサンプリング比に依存する全体アップサンプリング比を、k番目のサブネットワークごとに事前に計算できることを意味する。このような場合、T^
kの取得は、次式に従って実行され得る:
【数63】
ここで、Scale
kは、デコーダの設計中に決定(及び定数値パラメータとして格納)されたサブネットワークkに対応する事前に計算されたスカラである。この例では、k番目のサブネットワークを含むサブネットワークとそれに続くサブネットワークの個々のアップサンプリング比の代わりに、k番目のサブネットワークに対応する事前に計算されたスケール比(Scale
k)が関数の中で使用される。
【0384】
例えば
図8Aでは、
図8Aは
図8に示したデコーダのより具体的な例であり、1007aと1004aの2つのサブネットワークを含むデコーダーニューラルネットワークが示される。更に、1007aが各々2のアップサンプリング比を持つ2つのアップサンプリング層を含み、1004aが各々2のアップサンプリング比を持つ4つのアップサンプリング層を含むと仮定する。1007aの結合アップサンプリング比は4(2×2=4)に等しく、1004aの結合アップサンプリング比は16(2×2×2×2=16)に等しくなる。この例では、1007aの入力における目標入力サイズ(T
^
1007a)は、目標出力サイズT
output(x^の目的のサイズに等しい)とスカラ係数64(16×4=64)に従って計算できる。ここでのスカラ係数64は、サブネットワーク1004aとサブネットワーク1007aの結合アップサンプリング比の全体アップサンプリング比に相当する。つまり、サブネットワーク1007aに対応するScale
1007aは、この場合64に等しくなる。この例によると、サブネットワーク1007aの目標入力サイズであるT^
1007aは、次の式に従って計算できる:
【数64】
同様に、サブネットワーク1004aの目標入力サイズは、次式に従って計算できる:
【数65】
ここで、16はサブネットワーク1004aのScale
1004aである。
【0385】
目標出力サイズT
outputはビットストリームから取得できる。
図8Aの例では、T
outputは復号されたピクチャのサイズに対応しており、これは表示デバイスに表示される。
【0386】
関数f()は、ceil()、floor()、int()などであってよい。
【0387】
図22によるデコーダ2400で受信した入力又は複数の入力をニューラルネットワーク全体で処理した後、ステップ2505で、復号されたピクチャに対応する、又は復号されたピクチャである出力を提供できる。
【0388】
図24は、サブネットワークk+1によって処理される前の先行サブネットワークkの出力がどのように再スケーリングされるかを示す、本開示に沿った更なる実施形態を提供する。
【0389】
この実施形態では、デコーダに提供される追加情報は、ニューラルネットワークの目標出力サイズToutputを含み、この目標出力サイズは、最初にビットストリームに符号化されたピクチャのサイズと同じであってよい。
【0390】
図24の方法は、前のサブネットワークkからの出力としてサイズT
-
k+1の入力を受け取るステップ2601で始まる。
【0391】
次のステップ2602では、このサイズT-
k+1をサブネットワークk+1の目標入力サイズT^k+1と比較することができる。この比較は、T-
k+1とT^k+1の差の計算を含むことができる。
【0392】
目標入力サイズT^k+1は、既に説明したものに沿って得られる。具体的には、目標入力サイズT^k+1は、ステップ2610でニューラルネットワークの目標出力サイズToutputを使用して得られる。ニューラルネットワークの目標出力サイズToutputは、最初に符号化されたピクチャのサイズと同じであってもよい。目標入力サイズT^k+1を得ると、ステップ2602の比較で使用するために、ステップ2620で提供してもよい。
【0393】
比較ステップ2602に戻って、T-
k+1がT^k+1より大きいと(例えば、T^k+1とT-
k+1の差を明示的に計算することで)決定された場合は、再スケーリングの実行の一部として、ステップ2603でサイズT-
k+1をサイズT^k+1に減少するように再スケーリングを適用してもよい。このサイズの減少は、クロッピング又は補間を使用して、サンプル数を減らすことで、すでに説明したように、サブネットワークk+1への入力のサイズを減少することを含む場合がある。
【0394】
あるいは、サイズT-
k+1がT^k+1ハットより小さいと決定された場合は、ステップ2603で再スケーリングを適用して、サイズT-
k+1をT^k+1のサイズに増やしてもよい。
【0395】
その後、ステップ2604で、T^
k+1のサイズの入力のアップサンプリングをサブネットワークk+1で実行して、それによってステップ2604の一部としてサイズT
-
k+2の出力を提供してもよい。この出力は、すでに復号されたピクチャを含むか又はそれに対応しているか、又はステップ2601から始まる後続のサブネットワークによって処理されてもよく、ここでは、サイズT
-
k+2の入力があり、サブネットワークk+2の目標入力サイズに対して評価される。これは、
図24に関連して説明されているすべての更なるステップを繰り返すことを含む場合がある。
【0396】
上で説明したように、例えば次式を適用して目標の入力サイズを得るために反復プロセスを使用する場合:
【数66】
T^
kの値はビットストリームの一部として提供することができ、又はデコーダで計算することができ、又は、例えばルックアップテーブルで提供することもできる。ここで、入力を処理するサブネットワークのインデックスiを使用して、以下のように積について各々の値を導き出すことができる(したがって、各サブネットワークに対して明示的に計算しない):
【数67】
又は、目標の出力サイズT
outputがすでに固定値を持っている場合は、ルックアップテーブルからT^
kの値も取得できることに注意されたい。この文脈において、入力を処理するサブネットワークのインデックスkは、ルックアップテーブル内の値への指示として使用することができる。ルックアップテーブルに加えて又は代替として、各サブネットワークkに対応する積の以下の事前計算された値を定数値として定義することができる:
【数68】
したがって、目標サイズを求める演算は以下の通りである:
【数69】
ここで、f()は、floor演算、ceil演算、rounding演算などであってよい。例えば、関数f()は、f(x、y)=(y+x-1)>>log2(x)の形になり得る。ここで示す式は、xが2のべき乗の数のとき、ceil(y/x)と等価である。つまり、xが2のべき乗で表現できる整数である場合、関数(y/x)は等価的に(y+x-1)>>log2(x)として実装できる。別の例として、関数f(x、y)はy>>log2(x)であってよい。ここで、「>>」は下シフト演算を示し、以下で説明するように右シフト演算とも呼ばれる。
【0397】
図25は、ピクチャを符号化し、例えばビットストリームの形式で出力を提供するために、上記のいずれかの実施形態を実行するように適応されたエンコーダ2700の実施形態を示す。
【0398】
この目的のために、エンコーダ2700は、ピクチャを受信するための受信機2701と、場合によっては、上記で既に説明したように符号化を実行する方法に関連する追加情報を含むことができる。更に、エンコーダ2700は、ニューラルネットワークを実装するよう構成される1つ以上のプロセッサを含んでよく、これはここで2702により示され、ニューラルネットワークは、ニューラルネットワークを介するピクチャの処理順序で、少なくとも2つのサブネットワークを含み、これらのサブネットワークのうちの少なくとも1つ及び1つ以上のプロセッサが、更に、以下:
少なくとも2つのダウンサンプリング層を含む少なくとも1つのサブネットワークで入力を処理する前に、入力に再スケーリングを適用し、再スケーリングが、S-
1が少なくとも1つのサブネットワークの結合ダウンサンプリング比R1の整数倍になるように、少なくとも1つの次元のサイズS1をS-
1に変更することを含み、
少なくとも2つのダウンサンプリング層を含む少なくとも1つのサブネットワークにより入力を処理し、サイズS2の出力を提供し、S2はS1より小さく、
ニューラルネットワークを使用してピクチャを処理した後、ビットストリームを出力として、例えばニューラルネットワークの出力として提供する、
ことによりニューラルネットワークを使用してピクチャを符号化するよう適応される。
【0399】
更に、エンコーダは、ビットストリーム及び/又は前述のような追加のビットストリーム又は複数のビットストリームのような出力を提供する送信機2703を含むことができる。これらのビットストリームの1つは、符号化されたピクチャを構成又は表すことができるが、別のビットストリームが、前述のように追加情報に関係することがある。
【0400】
図26は、ピクチャを表すビットストリームを復号するためのデコーダを示す本開示の実施形態を示している。
【0401】
この目的のために、デコーダ2800は、ピクチャを表すビットストリーム(具体的には符号化されたピクチャを表す)を受信するための受信機2801を含むことができる。更に、デコーダ2800は、ニューラルネットワークを実装するように構成された1つ以上のプロセッサ2802を含むことができる。ここで、このニューラルネットワークは、ニューラルネットワークを介したビットストリームの処理順序で、少なくとも2つのサブネットワークを含む。これらの2つのサブネットワークのうちの1つは、少なくとも2つのアップサンプリング層を含む。更に、プロセッサ2802は、ニューラルネットワークを使用することによって、行列を表す入力(例えば、ビットストリーム又は先行するサブネットワークを延期(put off)したもの)にアップサンプリングを適用するように構成され、ここで、行列は、少なくとも1つの次元でサイズT1を持ち、プロセッサ及び/又はエンコーダは、更に以下:
少なくとも2つのサブネットワークのうちの第1サブネットワークにより入力を処理し、第1サブネットワークの出力を提供し、出力が、サイズT1とU1の積に対応するサイズT-
2を有し、U1が第1サブネットワークの結合アップサンプリング比U1であり、
NNを介するビットストリームの処理順序で処理中のサブネットワークによって第1サブネットワークの出力を処理する前に、第1サブネットワークの出力に再スケーリングを適用し、再スケーリングは、得られた情報に基づいて、少なくとも1つの次元の出力のサイズT-
2を少なくとも1つの次元のサイズT^2に変更することを含み、
第2サブネットワークによって再スケーリングされた出力を処理し、第2サブネットワークの出力を提供し、出力は、T^2とU2の積に対応するサイズT-
3を有し、U2は、第2サブネットワークの結合アップサンプリング比であり、
NNを使用してビットストリームを処理した後、復号されたピクチャを出力として、例えばNNの出力として提供する、
ことによりビットストリームを復号するよう構成される。
【0402】
更に、エンコーダ2800又は追加で提供される送信機2803は、ニューラルネットワークを使用してビットストリームを処理した後、復号されたピクチャをニューラルネットワークの出力として提供するように適合させることができる。
【0403】
ここに記載されている符号化方法又はエンコーダの実施形態では、例えばNNによって出力されるビットストリーム出力は、例えばNNの最後のサブネットワーク又はネットワーク層の出力又はビットストリーム、例えばビットストリーム2105とすることができる。
【0404】
ここに記載されている符号化方法又はエンコーダの更なる実施形態では、例えばNNによって出力されるビットストリーム出力は、サブビットストリーム、例えばビットストリーム1及びビットストリーム2(又は2103及び2105)のような2つのサブビットストリームによって形成されるビットストリーム、又はそれらを含むビットストリーム、あるいはより一般的には第1サブビットストリーム及び第2サブビットストリーム(例えば、NNの各々のサブネットワークによって生成及び/又は出力される各サブビットストリーム)とすることができる。両方のサブビットストリームは、別々に送信又は格納されるか、又は例えば1つのビットストリームとして結合される、例えば多重化されることもできる。
【0405】
ここに記載されている符号化方法又はエンコーダの更なる実施形態では、例えばNNによって出力されるビットストリーム出力は、2つより多くのサブビットストリーム、例えば第1サブビットストリーム、第2サブビットストリーム、第3サブビットストリーム、及び任意の更なるサブビットストリーム(例えば、各サブビットストリームはNNの各サブネットワークにより生成され及び/又は出力される)により形成されるか又はそれらを含むビットストリームであってよい。サブビットストリームは、別々に送信又は格納されるか、又は例えば1つのビットストリーム若しくは1つより多くの結合ビットストリームとして結合される、例えば多重化されることもできる。
【0406】
ここに記載されている復号方法又はデコーダの実施形態では、例えばNNによって受信される受信ビットストリームは、例えばNNの第1サブネットワーク又はネットワーク層の入力として使用されてよく、例えばビットストリーム2401とすることができる。
【0407】
ここに記載されている復号方法又はデコーダの更なる実施形態では、受信ビットストリームは、2つのサブビットストリーム、例えばサブビットストリームのビットストリーム1及びビットストリーム2(又は2401及び2403)によって形成されるビットストリーム、又はそれらを含むビットストリーム、あるいはより一般的には第1サブビットストリーム及び第2サブビットストリーム(例えば、NNの各々のサブネットワークによって受信及び/又は処理される各サブビットストリーム)とすることができる。両方のサブビットストリームは、別々に受信又は格納されるか、又は例えば1つのビットストリームとして結合される、例えば多重化され、サブビットストリームを得るために逆多重化されることもできる。
【0408】
ここに記載されている復号方法又はデコーダの更なる実施形態では、受信したビットストリームは、2つより多くのサブビットストリーム、例えば第1サブビットストリーム、第2サブビットストリーム、第3サブビットストリーム、及び任意の更なるサブビットストリーム(例えば、各サブビットストリームはNNの各サブネットワークにより受信され及び/又は処理される)により形成されるか又はそれらを含むビットストリームであってよい。サブビットストリームは、別々に送信又は格納されるか、又は例えば1つのビットストリーム若しくは1つより多くの結合ビットストリームとして結合される、例えば多重化され、サブビットストリームを得るために逆多重化されることもできる。
【0409】
数学演算子
本願で使用される数学演算子は、Cプログラミング言語で使用されるものと同様である。しかしながら、整数除算及び算術シフト演算の結果は、より正確に定義され、べき乗と実数値の除算のような追加の演算子が定義される。番号付け及び計数規則は、一般的に0から開始する。例えば、「第1」は0番目と等価であり、「第2」は1番目と等価である、等である。
【0410】
算術演算子
以下の算術演算子は以下のように定義される:
【数70】
【0411】
論理演算子
以下の論理演算子は以下のように定義される:
x&&y:xとyの間のブール論理「AND」。
x||y:xとyのブール論理「OR」。
!:ブール論理「NOT」。
x?y:xがTRUE(真)であるか、又は0に等しくない場合、yの値を評価し、その他の場合に、zの値を評価する。
【0412】
関係演算子
以下の関係演算子は以下のように定義される:
>:~より大きい。
>=:~以上である。
<:~より小さい。
<=:~以下である。
==:~に等しい。
!=:~に等しくない。
【0413】
関係演算子がシンタックス要素又は値「na」(not applicable)を割り当てられた変数に適用されるとき、値「na」は、シンタックス要素又は変数の異なった値として扱われる。値「na」は、任意の他の値に等しくないと考えられる。
【0414】
ビット演算子
以下のビット演算子は以下のように定義される。
&:ビット毎の「論理積」整数引数に作用するとき、2の補数整数表現に作用する。別の引数より少ないビットを含む2値引数に作用するとき、より短い引数は、0に等しい最上位ビットを追加することにより拡張される。
|:ビット毎の「論理和」整数引数に作用するとき、2の補数整数表現に作用する。別の引数より少ないビットを含む2値引数に作用するとき、より短い引数は、0に等しい最上位ビットを追加することにより拡張される。
^:ビット毎の「排他的論理和」整数引数に作用するとき、整数値の2の完全な表現に作用する。別の引数より少ないビットを含む2値引数に作用するとき、より短い引数は、0に等しい最上位ビットを追加することにより拡張される。
x>>y x×yの2進数の2の補数整数表現の算術右シフト。この関数は、yの非負整数値についてのみ定義される。右シフトの結果としての最上位ビット(most significant bit (MSB))へとシフトされたビットは、シフト演算の前のxのMSBに等しい値を有する。
x<<y x×yの2進数の2の補数整数表現の算術左シフト。この関数は、yの非負整数値についてのみ定義される。左シフトの結果としての最下位ビット(least significant bit(LSB))へとシフトされたビットは、0に等しい値を有する。
【0415】
代入演算子
以下の算術演算子は以下のように定義される:
=:代入演算子
++:インクリメント。つまり、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)と等価である。
【0416】
範囲表記
値の範囲を指定するために、次の表記を使用する:
x=y..z:xは、両端を含むyからzまでの整数値を取り、x、y、zは整数であり、zはyより大きい。
【0417】
数学関数
以下の数学関数が定義されている:
【数71】
Asin(x):両端を含む-1.0から1.0までの範囲にある引数xに対して動作する三角関数逆正弦関数であって、ラジアン単位で両端を含む-π÷2からπ÷2までの範囲の出力値を有する。
Atan(x):引数xに対して動作する三角関数逆正接関数であって、ラジアン単位で両端を含む-π÷2からπ÷2までの範囲の出力値を有する。
【数72】
Ceil(x):x以上の最小の整数である。
【数73】
Cos(x):ラジアン単位で引数xに作用する三角余弦関数である。
Floor(x):x以下の最大の整数である。
【数74】
Ln(x):xの自然対数である(eを底とする対数であり、eは自然対数の底定数2.718281828...である)。
Log2(x):2を底とするxの対数である。
Log10(x):10を底とするxの対数である。
【数75】
Sin(x):ラジアン単位で引数xに作用する三角正弦関数である。
【数76】
Tan(x):ラジアン単位で引数xに作用する三角正接関数である。
【0418】
演算の優先順位
式の優先順位が括弧を使用して明示的に示されていない場合は、次の規則が適用される:
・優先順位の高い演算は、優先順位の低い演算の前に評価される。
・同じ優先順位の演算は、左から右に順番に評価される。
【0419】
次の表は、演算の優先順位を高いものから低いものへと示している。表内の位置が高いほど、優先順位が高いことを示している。
【0420】
Cプログラミング言語でも使用される演算子については、この明細書で使用される優先順位はCプログラミング言語で使用されるものと同じである。
表:最高(表の一番上)から最低(表の一番下)への演算の優先順位
【表1】
【0421】
論理演算のテキスト記述
テキストでは、論理演算のステートメントは、以下の形式で数学的に記述される:
【数77】
【0422】
これは、以下のように説明される:
...as follows/ ... the following applies:
condition 0の場合、statement 0。
その他の場合、condition 1の場合、statement 1。
....
その他の場合(残りの条件(condition)についての有益な注釈)、statement n。
【0423】
テキスト内の「If ... Otherwise, if ... Otherwise, ...」の各文は、「... as follows」又は「... the following applies」で導入され直後に「If ...」が続く。「If ... Otherwise, if ... Otherwise, ...」の最後の条件は、常に、「Otherwise, ...」である。インタリーブされた「If ... Otherwise, if ... Otherwise, ...」文は、「... as follows」又は「... the following applies」を末尾の「Otherwise, ...」と照合することにより識別できる。
【0424】
テキストでは、論理演算のステートメントは、以下の形式で数学的に記述される:
【数78】
【0425】
これは、以下のように説明される:
...as follows/ ... the following applies:
以下の条件が真ならば、statement 0:
-condition 0a
-condition 0b
その他の場合、以下の条件のうちの1つ以上が真ならば、statement 1:
-condition 1a
-condition 1b
....
その他の場合、statement n。
【0426】
テキストでは、論理演算のステートメントは、以下の形式で数学的に記述される:
【数79】
【0427】
これは、以下のように説明される:
condition0の場合、statement0。
condition1の場合、statement1。
【0428】
本発明の実施形態は主にビデオ符号化に基づき説明されたが、留意すべきことに、符号化システム10、エンコーダ20、及びデコーダ30(及び相応してシステム10)の実施形態、並びにここに説明された他の実施形態は、静止画処理又は符号化、つまりビデオ符号化におけるような任意の先行する又は連続するピクチャと独立した個々のピクチャの処理又は符号化のために構成されてもよい。一般的に、ピクチャ処理コーディングが単一のピクチャ17に限定される場合、インター予測ユニット244(エンコーダ)及び344(デコーダ)のみが利用可能である必要はない。ビデオエンコーダ20及びビデオデコーダ30の全ての他の機能(ツール又は技術とも呼ばれる)は、静止画処理、例えば残差計算204/304、変換206、量子化208、逆量子化210/310、(逆)変換212/312、パーティション262/362、イントラ予測254/354、及び/又はループフィルタ220、320、及びエントロピー符号化270及びエントロピー復号304のために等しく使用されてよい。一般に、本開示の実施形態は、オーディオ信号、等のような他のソース信号にも適用できる。
【0429】
例えばエンコーダ20及びデコーダ30の実施形態、及び例えばエンコーダ20及びデコーダ30を参照してここに説明した機能は、ハードウェア、ソフトウェア、ファームウェア、又はそれらの任意の組合せで実装されてよい。ソフトウェアで実装される場合、機能は、1つ以上の命令又はコードとしてコンピュータ可読媒体に格納され又は通信媒体を介して送信され、ハードウェアに基づく処理ユニットにより実行されてよい。コンピュータ可読媒体は、データ記憶媒体のような有形媒体に対応するコンピュータ可読記憶媒体、又は例えば通信プロトコルに従いある場所から別の場所へのコンピュータプログラムの転送を実現する任意の媒体を含む通信媒体、を含んでよい。この方法では、コンピュータ可読媒体は、一般的に、(1)非一時的である有形コンピュータ可読記憶媒体、又は(2)信号若しくは搬送波のような通信媒体、に対応してよい。データ記憶媒体は、本開示で説明された技術の実装のために命令、コード、及び/又はデータ構造を読み出すために、1つ以上のコンピュータ又は1つ以上のプロセッサによりアクセス可能な任意の利用可能な媒体であってよい。コンピュータプログラムプロダクトは、コンピュータ可読媒体を含んでよい。
【0430】
例により、限定ではなく、このようなコンピュータ可読記憶媒体は、RAM、ROM、EEPROM、CD-ROM、又は他の光ディスク記憶、磁気ディスク記憶、又は他の磁気記憶装置、フラッシュメモリ、又は所要のプログラムコードを命令又はデータ構造の形式で格納するために使用可能な、コンピュータによりアクセス可能な任意の他の媒体、を含み得る。また、任意の接続は、適正にコンピュータ可読媒体と呼ばれる。例えば命令がウェブサイト、サーバ、又は他のリモートソースから、同軸ケーブル、光ファイバケーブル、より対線、デジタル加入者線(digital subscriber line (DSL))、又は赤外線、無線、及びマイクロ波のような無線技術を用いて送信される場合、同軸ケーブル、光ファイバケーブル、より対線、DSL、又は赤外線、無線、及びマイクロ波のような無線技術は、媒体の定義に含まれる。しかしながら、理解されるべきことに、コンピュータ可読記憶媒体及びデータ記憶媒体は、接続、搬送波、信号、又は他の一時的媒体を含まないが、実際には非一時的有形記憶媒体を対象とする。ディスク(disk)及びディクス(disc)は、ここで使用されるとき、コンパクトディスク(CD)、レーザディスク、光ディスク、デジタルバーサタイルディスク(DVD)、フロッピーディスク、及びブルーレイディスクを含み、ディスク(disk)は通常データを磁気的に再生し、ディスク(disc)はデータをレーザにより光学的に再生する。前述の結合も、コンピュータ可読媒体の範囲に含まれるべきである。
【0431】
命令は、1つ以上のデジタル信号プロセッサ(digital signal processor (DSP))、汎用マイクロプロセッサ、特定用途向け集積回路(application specific integrated circuit (ASIC))、フィールドプログラマブルロジックアレイ(field programmable logic array (FPGA))、又は他の等価な集積又は個別論理回路、のような1つ以上のプロセッサにより実行されてよい。従って、用語「プロセッサ」は、ここで使用されるとき、前述の構造のうちのいずれか、又はここに記載される技術の実装に適する任意の他の構造を表してよい。更に、幾つかの態様では、ここに説明された機能は、符号化及び復号又は結合されたコーデックに組み込まれるために構成される専用ハードウェア及び/又はソフトウェアモジュール内で提供されてよい。更に、技術は、全部、1つ以上の回路又は論理素子で実装され得る。
【0432】
本開示の技術は、無線ハンドセット、集積回路(integrated circuit (IC))、又はICのセット(例えば、チップセット)を含む種々の装置又は機器の中で実装されてよい。種々のコンポーネント、モジュール、又はユニットは、開示の技術を実行するよう構成される装置の機能的側面を強調するために、本開示で説明されたが、異なるハードウェアユニットによる達成を必ずしも要求しない。むしろ、上述のように、種々のユニットは、適切なソフトウェア及び/又はファームウェアと組み合わせて、コーデックハードウェアユニット内で結合され、又は上述のような1つ以上のプロセッサを含む相互運用ハードウェアユニットの集合により提供されてよい。
【国際調査報告】