(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-12-06
(54)【発明の名称】画像エンコードおよびデコードの方法および装置
(51)【国際特許分類】
H04N 19/90 20140101AFI20241129BHJP
【FI】
H04N19/90
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2024532801
(86)(22)【出願日】2022-11-30
(85)【翻訳文提出日】2024-07-03
(86)【国際出願番号】 CN2022135204
(87)【国際公開番号】W WO2023098688
(87)【国際公開日】2023-06-08
(31)【優先権主張番号】202111470979.5
(32)【優先日】2021-12-03
(33)【優先権主張国・地域又は機関】CN
(81)【指定国・地域】
(71)【出願人】
【識別番号】503433420
【氏名又は名称】華為技術有限公司
【氏名又は名称原語表記】HUAWEI TECHNOLOGIES CO.,LTD.
【住所又は居所原語表記】Huawei Administration Building, Bantian, Longgang District, Shenzhen, Guangdong 518129, P.R. China
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100229448
【氏名又は名称】中槇 利明
(72)【発明者】
【氏名】グオ,ティエンシュヨン
(72)【発明者】
【氏名】ワーン,ジーン
【テーマコード(参考)】
5C159
【Fターム(参考)】
5C159MA04
5C159MA05
5C159MA23
5C159MC11
5C159MD02
5C159ME01
5C159UA02
5C159UA05
(57)【要約】
本願は、エンコードおよびデコード方法および装置を提供する。本願の画像エンコード方法は、処理されるべき第1の画像特徴を取得する段階と;第1の画像特徴に対して非線形変換処理を実行して、処理された画像特徴を取得する段階であって、非線形変換処理は、第1の非線形演算、畳み込み処理、および要素ごとの乗算演算を順次含む、段階と;処理された画像特徴に基づいてエンコードを実行して、ビットストリームを取得する段階とを含む。本願は、畳み込みパラメータに対する制限を回避して、エンコード/デコード・ネットワークにおいて効率的な非線形変換処理を実施し、画像/ビデオ圧縮アルゴリズムのレート歪み性能をさらに改善することができる。
【特許請求の範囲】
【請求項1】
画像エンコード方法であって:
処理されるべき第1の画像特徴を取得する段階と;
前記第1の画像特徴に対して非線形変換処理を実行して、処理された画像特徴を取得する段階であって、前記非線形変換処理は、第1の非線形演算、畳み込み処理、および要素ごとの乗算演算を順次含む、段階と;
前記処理された画像特徴に基づいてエンコードを実行して、ビットストリームを取得する段階とを含む、
方法。
【請求項2】
前記第1の画像特徴に対して非線形変換処理を実行して、処理された画像特徴を取得する前記段階は:
前記第1の画像特徴における各特徴値に対して前記第1の非線形演算を実行して、第2の画像特徴を得る段階と;
前記第2の画像特徴に対して前記畳み込み処理を実行して、第3の画像特徴を得る段階であって、前記第3の画像特徴における複数の特徴値は、前記第1の画像特徴における複数の特徴値に対応する、段階と;
前記要素ごとの乗算演算を、前記第1の画像特徴および前記第3の画像特徴における前記複数の対応する特徴値に対して実行して、前記処理された画像特徴を得る段階とを含む、
請求項1に記載の方法。
【請求項3】
前記非線形変換処理は、前記要素ごとの乗算演算の後に要素ごとの加算演算をさらに含む、請求項1に記載の方法。
【請求項4】
前記第1の画像特徴に対して非線形変換処理を実行して、処理された画像特徴を取得する前記段階は:
前記第1の画像特徴における各特徴値に対して前記第1の非線形演算を実行して、第2の画像特徴を得る段階と;
前記第2の画像特徴に対して前記畳み込み処理を実行して、第3の画像特徴を得る段階であって、前記第3の画像特徴における複数の特徴値は、前記第1の画像特徴における複数の特徴値に対応する、段階と;
前記要素ごとの乗算演算を、前記第1の画像特徴および前記第3の画像特徴における前記複数の対応する特徴値に対して実行して、第4の画像特徴を得る段階であって、前記第4の画像特徴における複数の特徴値は、前記第1の画像特徴における前記複数の特徴値に対応する、段階と;
前記第1の画像特徴および前記第4の画像特徴における前記複数の対応する特徴値に対して前記要素ごとの加算演算を実行して、前記処理された画像特徴を得る段階とを含む、
請求項3に記載の方法。
【請求項5】
前記非線形変換処理は、前記畳み込み処理と前記要素ごとの乗算演算との間に第2の非線形演算をさらに含み、前記第2の非線形演算は、前記第1の非線形演算と同じであるか、または異なる、請求項1ないし4のうちいずれか一項に記載の方法。
【請求項6】
前記第1の非線形演算は、シグモイド、Tanhまたは区分線形マッピングを含む、請求項1ないし5のうちいずれか一項に記載の方法。
【請求項7】
前記第2の非線形演算は、シグモイド、Tanhまたは区分線形マッピングを含む、請求項5または6に記載の方法。
【請求項8】
当該方法はさらに:
トレーニング・フェーズにおいて非線形変換ユニットを構築する段階であって、前記トレーニング・フェーズにおける非線形変換ユニットは、第1の非線形演算層と、畳み込み処理層と、要素ごとの乗算演算層と、要素ごとの加算演算層とを含む、段階と;
事前に得られたトレーニング・データに基づいてトレーニングを実行して、トレーニングされた非線形変換ユニットを得る段階であって、トレーニングされた非線形変換ユニットは、前記非線形変換処理を実装するために使用される、段階とを含む、
請求項1ないし7のうちいずれか一項に記載の方法。
【請求項9】
画像デコード方法であって:
処理されるべき第1の画像特徴を得る段階と;
前記第1の画像特徴に対して非線形変換処理を実行して、処理された画像特徴を得る段階であって、前記非線形変換処理は、第1の非線形演算、畳み込み処理、および要素ごとの乗算演算を順次含む、段階と;
前記処理された画像特徴に基づいて、再構成された画像を得る段階とを含む、
方法。
【請求項10】
前記第1の画像特徴に対して非線形変換処理を実行して、処理された画像特徴を取得する前記段階は:
前記第1の画像特徴における各特徴値に対して前記第1の非線形演算を実行して、第2の画像特徴を得る段階と;
前記第2の画像特徴に対して前記畳み込み処理を実行して、第3の画像特徴を得る段階であって、前記第3の画像特徴における複数の特徴値は、前記第1の画像特徴における複数の特徴値に対応する、段階と;
前記要素ごとの乗算演算を、前記第1の画像特徴および前記第3の画像特徴における前記複数の対応する特徴値に対して実行して、前記処理された画像特徴を得る段階とを含む、
請求項9に記載の方法。
【請求項11】
前記非線形変換処理は、前記要素ごとの乗算演算の後に要素ごとの加算演算をさらに含む、請求項9に記載の方法。
【請求項12】
前記第1の画像特徴に対して非線形変換処理を実行して、処理された画像特徴を取得する前記段階は:
前記第1の画像特徴における各特徴値に対して前記第1の非線形演算を実行して、第2の画像特徴を得る段階と;
前記第2の画像特徴に対して前記畳み込み処理を実行して、第3の画像特徴を得る段階であって、前記第3の画像特徴における複数の特徴値は、前記第1の画像特徴における複数の特徴値に対応する、段階と;
前記要素ごとの乗算演算を、前記第1の画像特徴および前記第3の画像特徴における前記複数の対応する特徴値に対して実行して、第4の画像特徴を得る段階であって、前記第4の画像特徴における複数の特徴値は、前記第1の画像特徴における前記複数の特徴値に対応する、段階と;
前記第1の画像特徴および前記第4の画像特徴における前記複数の対応する特徴値に対して前記要素ごとの加算演算を実行して、前記処理された画像特徴を得る段階とを含む、
請求項11に記載の方法。
【請求項13】
前記非線形変換処理は、前記畳み込み処理と前記要素ごとの乗算演算との間に第2の非線形演算をさらに含み、前記第2の非線形演算は、前記第1の非線形演算と同じであるか、または異なる、請求項9ないし12のうちいずれか一項に記載の方法。
【請求項14】
前記第1の非線形演算は、シグモイド、Tanhまたは区分線形マッピングを含む、請求項9ないし13のうちいずれか一項に記載の方法。
【請求項15】
前記第2の非線形演算は、シグモイド、Tanhまたは区分線形マッピングを含む、請求項13または14に記載の方法。
【請求項16】
当該方法はさらに:
トレーニング・フェーズにおいて非線形変換ユニットを構築する段階であって、前記トレーニング・フェーズにおける非線形変換ユニットは、第1の非線形演算層と、畳み込み処理層と、要素ごとの乗算演算層と、要素ごとの加算演算層とを含む、段階と;
事前に得られたトレーニング・データに基づいてトレーニングを実行して、トレーニングされた非線形変換ユニットを得る段階であって、トレーニングされた非線形変換ユニットは、前記非線形変換処理を実装するために使用される、段階とを含む、
請求項9ないし15のうちいずれか一項に記載の方法。
【請求項17】
エンコード装置であって:
処理されるべき第1の画像特徴を取得するように構成された取得モジュールと;
前記第1の画像特徴に対して非線形変換処理を実行して、処理された画像特徴を取得するように構成された変換モジュールであって、前記非線形変換処理は、第1の非線形演算、畳み込み処理、および要素ごとの乗算演算を順次含む、変換モジュールと;
前記処理された画像特徴に基づいてエンコードを実行して、ビットストリームを取得するように構成されたエンコード・モジュールとを有する、
装置。
【請求項18】
前記変換モジュールが具体的には:前記第1の画像特徴における各特徴値に対して前記第1の非線形演算を実行して、第2の画像特徴を得る段階と;前記第2の画像特徴に対して前記畳み込み処理を実行して、第3の画像特徴を得る段階であって、前記第3の画像特徴における複数の特徴値は、前記第1の画像特徴における複数の特徴値に対応する、段階と;前記要素ごとの乗算演算を、前記第1の画像特徴および前記第3の画像特徴における前記複数の対応する特徴値に対して実行して、前記処理された画像特徴を得る段階とを実行するように構成されている、請求項17に記載の装置。
【請求項19】
前記非線形変換処理は、前記要素ごとの乗算演算の後に要素ごとの加算演算をさらに含む、請求項17に記載の装置。
【請求項20】
前記変換モジュールが具体的には:前記第1の画像特徴における各特徴値に対して前記第1の非線形演算を実行して、第2の画像特徴を得る段階と;前記第2の画像特徴に対して前記畳み込み処理を実行して、第3の画像特徴を得る段階であって、前記第3の画像特徴における複数の特徴値は、前記第1の画像特徴における複数の特徴値に対応する、段階と;前記要素ごとの乗算演算を、前記第1の画像特徴および前記第3の画像特徴における前記複数の対応する特徴値に対して実行して、第4の画像特徴を得る段階であって、前記第4の画像特徴における複数の特徴値は、前記第1の画像特徴における前記複数の特徴値に対応する、段階と;前記第1の画像特徴および前記第4の画像特徴における前記複数の対応する特徴値に対して前記要素ごとの加算演算を実行して、前記処理された画像特徴を得る段階とを実行するように構成されている、請求項19に記載の装置。
【請求項21】
前記非線形変換処理は、前記畳み込み処理と前記要素ごとの乗算演算との間に第2の非線形演算をさらに含み、前記第2の非線形演算は、前記第1の非線形演算と同じであるか、または異なる、請求項17ないし20のうちいずれか一項に記載の装置。
【請求項22】
前記第1の非線形演算は、シグモイド、Tanhまたは区分線形マッピングを含む、請求項17ないし21のうちいずれか一項に記載の装置。
【請求項23】
前記第2の非線形演算は、シグモイド、Tanhまたは区分線形マッピングを含む、請求項21または22に記載の装置。
【請求項24】
トレーニング・フェーズにおいて非線形変換ユニットを構築する段階であって、前記トレーニング・フェーズにおける非線形変換ユニットは、第1の非線形演算層と、畳み込み処理層と、要素ごとの乗算演算層と、要素ごとの加算演算層とを含む、段階と;事前に得られたトレーニング・データに基づいてトレーニングを実行して、トレーニングされた非線形変換ユニットを得る段階であって、トレーニングされた非線形変換ユニットは、前記非線形変換処理を実装するために使用される、段階とを実行するように構成されたトレーニング・モジュールをさらに有する、
請求項17ないし23のうちいずれか一項に記載の装置。
【請求項25】
デコード装置であって:
処理されるべき第1の画像特徴を得るように構成された取得モジュールと;
前記第1の画像特徴に対して非線形変換処理を実行して、処理された画像特徴を得るように構成された変換モジュールであって、前記非線形変換処理は、第1の非線形演算、畳み込み処理、および要素ごとの乗算演算を含む、変換モジュールと;
前記処理された画像特徴に基づいて、再構成された画像を得るように構成された再構成モジュールとを有する、
装置。
【請求項26】
前記変換モジュールが具体的には:前記第1の画像特徴における各特徴値に対して前記第1の非線形演算を実行して、第2の画像特徴を得る段階と;前記第2の画像特徴に対して前記畳み込み処理を実行して、第3の画像特徴を得る段階であって、前記第3の画像特徴における複数の特徴値は、前記第1の画像特徴における複数の特徴値に対応する、段階と;前記要素ごとの乗算演算を、前記第1の画像特徴および前記第3の画像特徴における前記複数の対応する特徴値に対して実行して、前記処理された画像特徴を得る段階とを実行するように構成されている、
請求項25に記載の装置。
【請求項27】
前記非線形変換処理は、前記要素ごとの乗算演算の後に要素ごとの加算演算をさらに含む、請求項25に記載の装置。
【請求項28】
前記変換モジュールが具体的には:前記第1の画像特徴における各特徴値に対して前記第1の非線形演算を実行して、第2の画像特徴を得る段階と;前記第2の画像特徴に対して前記畳み込み処理を実行して、第3の画像特徴を得る段階であって、前記第3の画像特徴における複数の特徴値は、前記第1の画像特徴における複数の特徴値に対応する、段階と;前記要素ごとの乗算演算を、前記第1の画像特徴および前記第3の画像特徴における前記複数の対応する特徴値に対して実行して、第4の画像特徴を得る段階であって、前記第4の画像特徴における複数の特徴値は、前記第1の画像特徴における前記複数の特徴値に対応する、段階と;前記第1の画像特徴および前記第4の画像特徴における前記複数の対応する特徴値に対して前記要素ごとの加算演算を実行して、前記処理された画像特徴を得る段階とを実行するように構成されている、
請求項27に記載の装置。
【請求項29】
前記非線形変換処理は、前記畳み込み処理と前記要素ごとの乗算演算との間に第2の非線形演算をさらに含み、前記第2の非線形演算は、前記第1の非線形演算と同じであるか、または異なる、請求項25ないし28のうちいずれか一項に記載の装置。
【請求項30】
前記第1の非線形演算は、シグモイド、Tanhまたは区分線形マッピングを含む、請求項25ないし29のうちいずれか一項に記載の装置。
【請求項31】
前記第2の非線形演算は、シグモイド、Tanhまたは区分線形マッピングを含む、請求項29または30に記載の装置。
【請求項32】
当該装置はさらに:
トレーニング・フェーズにおいて非線形変換ユニットを構築する段階であって、前記トレーニング・フェーズにおける非線形変換ユニットは、第1の非線形演算層と、畳み込み処理層と、要素ごとの乗算演算層と、要素ごとの加算演算層とを含む、段階と;事前に得られたトレーニング・データに基づいてトレーニングを実行して、トレーニングされた非線形変換ユニットを得る段階であって、トレーニングされた非線形変換ユニットは、前記非線形変換処理を実装するために使用される、段階とを実行するように構成されたトレーニング・モジュールをさらに有する、、
請求項25ないし31のうちいずれか一項に記載の装置。
【請求項33】
エンコーダであって:
一つまたは複数のプロセッサと;
前記プロセッサに結合され、前記プロセッサによる実行のためのプログラムを記憶している非一時的なコンピュータ可読記憶媒体とを有しており、前記プロセッサによって実行されると、前記プログラムは、請求項1ないし8のうちいずれか一項に記載の方法を実行するように前記デコーダを構成する、
エンコーダ。
【請求項34】
デコーダであって:
一つまたは複数のプロセッサと;
前記プロセッサに結合され、前記プロセッサによる実行のためのプログラムを記憶している非一時的なコンピュータ可読記憶媒体とを有しており、前記プロセッサによって実行されると、前記プログラムは、請求項9ないし16のうちいずれか一項に記載の方法を実行するように前記デコーダを構成する、
デコーダ。
【請求項35】
プログラムコードを含むコンピュータ・プログラム・プロダクトであって、前記プログラムコードがコンピュータまたはプロセッサ上で実行されるとき、前記コンピュータ・プログラム・プロダクトは、請求項1ないし16のうちいずれか一項に記載の方法を実行するように構成される、コンピュータ・プログラム・プロダクト。
【請求項36】
命令を含むコンピュータ可読記憶媒体であって、前記命令がコンピュータ上で実行されると、前記コンピュータは、請求項1ないし16のうちいずれか一項に記載の方法を実行できるようにされる、コンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本願は、2021年12月3日に中国国家知識産権局に出願された「画像エンコードおよびデコードの方法および装置」という名称の中国特許出願第202111470979.5号の優先権を主張するものであり、同出願の全体が参照により本明細書に組み込まれる。
【0002】
技術分野
本願は、画像処理技術の分野に関し、特に、画像エンコードおよびデコードの方法および装置に関する。
【背景技術】
【0003】
畳み込みニューラルネットワーク(convolution neural network、CNN)は、画像認識およびターゲット検出などのコンピュータビジョン・タスクにおいて従来のアルゴリズムを凌駕するので、より多くの研究者が、深層学習ベースの画像/ビデオ圧縮方法を探索し始めている。一部の研究者は、エンドツーエンドの深層学習画像/ビデオ圧縮アルゴリズムを設計している。たとえば、エンコード・ネットワーク、エントロピー推定ネットワーク、エントロピー・エンコード・ネットワーク、エントロピー・デコード・ネットワーク、およびデコード・ネットワークなどのモジュールが、全体として最適化される。エンコード・ネットワークおよびデコード・ネットワークは、変換モジュールおよび逆変換モジュールと呼ばれることもあり、一般に、畳み込み層および非線形変換ユニットを含む。
【0004】
非線形変換ユニットは、画像/ビデオ圧縮ネットワークの基本的な構成要素の1つである。非線形変換ユニットの非線形特徴は、圧縮アルゴリズムのレート‐歪み性能に直接影響を及ぼす。したがって、より効率的な非線形変換ユニットを設計することは、画像/ビデオ圧縮アルゴリズムのレート‐歪み性能をさらに改善するための鍵である。
【発明の概要】
【発明が解決しようとする課題】
【0005】
本願の実施形態は、エンコード/デコード・ネットワークにおいて効率的な非線形変換処理を実施し、画像/ビデオ圧縮アルゴリズムのレート‐歪み性能をさらに改善するための、画像エンコードおよびデコードの方法および装置を提供する。
【課題を解決するための手段】
【0006】
第1の側面によれば、本願のある実施形態は、処理されるべき第1の画像特徴を取得する段階と;第1の画像特徴に対して非線形変換処理を実行して、処理された画像特徴を取得する段階であって、非線形変換処理は、第1の非線形演算、畳み込み処理、および要素ごとの乗算演算を順次含む、段階と;処理された画像特徴に基づいてエンコードを実行して、ビットストリームを取得する段階とを含む、画像エンコード方法を提供する。
【0007】
第1の画像特徴は、エンコーダ側が処理されるべき画像を取得し、処理されるべき画像を画像領域から特徴領域に変換した後に得られる。本明細書における変換は、以下を含むことができるが、これらに限定されない:1.畳み込み層が特徴を抽出するために使用され、畳み込み処理が局所受容野および重み共有機構を有する(すなわち、各フィルタが入力特徴を順次処理する)畳み込み処理と、2.多層パーセプトロン(multi-layer perceptron、MLP)または全接続層を使用することによって特徴を抽出すること。ここで、MLPまたは全接続層を使用することによって特徴を抽出することは、グローバル受容野特徴を有し、重みが共有されない;3.行列乗算、MLP、および正規化処理を含む変換器(transformer〔トランスフォーマ〕)処理であって、該変換器処理は、グローバル受容野特徴を有し、強い長距離捕捉依存性能力を有する。
【0008】
ある可能な実装では、非線形演算は、第2の画像特徴を得るために、第1の画像特徴における各特徴値に対して実行される。第2の画像特徴に対して畳み込み処理が実行されて、第3の画像特徴が得られ、第3の画像特徴における複数の特徴値は、第1の画像特徴における複数の特徴値に対応する。要素ごとの乗算演算は、第1の画像特徴および第3の画像特徴における複数の対応する特徴値に対して実行されて、処理された画像特徴が得られる。
【0009】
第1の非線形演算は、第1の画像特徴における各特徴値に対して実行される演算であり、絶対値演算、整流線形ユニット(rectified linear unit、ReLU)系、シグモイド、Tanh、区分的線形(piecewise linear、PWL)演算などを含みうる。整流線形ユニットは、レクティファイド線形ユニットとも呼ばれる。
【0010】
第1の非線形演算の後、第1の画像特徴は第2の画像特徴に変換される。第2の画像特徴および第1の画像特徴は、行列の形で表されうる。第1の非線形演算は第1の画像特徴における各特徴値について実行されるので、第1の画像特徴における各特徴値は、第2の画像特徴値における1つの特徴値に対応する。したがって、第2の画像特徴に対応する行列と第1の画像特徴に対応する行列とは同じサイズを有し、同じ位置における特徴値(行列要素の値)は互いに対応する。たとえば、第1の画像特徴が3×3行列として表される場合、第2の画像特徴も3×3行列として表されうる。しかしながら、第1の非線形演算は第1の画像特徴および第2の画像特徴に対して実行されるので、第1の画像特徴および第2の画像特徴における特徴値は完全に同じではない。対応して、第1の画像特徴および第2の画像特徴にそれぞれ対応する行列内の要素値は、完全に同じではない。
【0011】
第2の画像特徴に対して畳み込み処理が実行されて、第3の画像特徴を出力する。第3の画像特徴は、第2の画像特徴の局所的な応答(すなわち、洗練された値)と見なされてもよい。すなわち、第3の画像特徴は、第2の画像特徴に対して畳み込み処理を実行することによって得られる応答信号である。畳み込み処理の受容野は限られているため、畳み込み処理後に出力される画像特徴における各位置の応答値は、その位置に隣接する位置の入力特徴値のみに関連する。これは、局所応答と呼ばれる。
【0012】
局所注目機構が、前述の非線形演算、畳み込み処理、および要素ごとの乗算演算の後に実装されることがわかる。局所とは、非線形演算が要素ごとに行われ、各入力特徴値について、周囲の特徴量の影響を考慮せずに、入力特徴値の特徴のみに基づいて、出力値が得られることを意味する。注目機構は、第1の画像特徴におけるすべての特徴値のうちのいくつかが重要であり、いくつかが冗長であることを意味する。畳み込み処理の出力は、画像特徴における各特徴値の重みであってもよい。もとの特徴値は洗練されてもよく、重要な特徴値がハイライトされ、冗長な特徴値は抑制される。要素ごとの乗算演算では、第1の画像特徴における各特徴値の値は、前述の局所情報を使用することによって洗練され、畳み込みパラメータは、正の数である必要はない。これは、畳み込みパラメータの値の範囲に対する限定を回避し、より広い値の範囲においてより良好な畳み込みパラメータを得ることができる。このようにして、より良好な画像圧縮性能が達成される。
【0013】
ある可能な実装では、非線形変換処理は、要素ごとの乗算演算の後に要素ごとの加算演算をさらに含む。
【0014】
ある可能な実装では、第2の画像特徴を得るために、第1の画像特徴における各特徴値に対して非線形演算が実行される。第2の画像特徴に対して畳み込み処理が実行されて、第3の画像特徴が得られ、第3の画像特徴における複数の特徴値は、第1の画像特徴における複数の特徴値に対応する。第1の画像特徴および第3の画像特徴における複数の対応する特徴値に対して要素ごとの乗算演算が実行され、第4の画像特徴が得られ、第4の画像特徴における複数の特徴値は、第1の画像特徴における複数の特徴値に対応する。要素ごとの加算演算は、第1の画像特徴および第4の画像特徴における複数の対応する特徴値に対して実行されて、処理された画像特徴が得られる。
【0015】
要素ごとの加算演算は、ヘッドおよびテールが加えられる残差構造であり、それにより、前述の処理プロセスを使用するエンコードおよびデコード・ネットワークは、トレーニング中に容易に収束することができる。畳み込み処理conv1(x)は、畳み込み処理conv2(x)と同様である。違いは、畳み込み処理conv2(x)では、畳み込みバイアス・パラメータβに追加の1が加えられることにある。このようにして、前述の2つの実装は、前記畳み込み処理における畳み込みにおけるバイアス・パラメータβを微調整することによって変更されうる。具体的には、非線形変換ユニットが畳み込み処理conv1(x)と要素ごとの加算演算とを含む場合、畳み込み処理conv1(x)と要素ごとの加算演算とが畳み込み処理conv2(x)にマージされて、要素ごとの加算演算が省略されてもよい。処理された画像特徴が得られた後、エンコーダ側は、処理された画像特徴に対して畳み込み処理を実行することに進んでもよく、または、畳み込み処理の後、畳み込み処理された特徴に対して非線形変換処理を実行し、次いで、前述の処理の後に得られた特徴をエンコードして、ビットストリームを得てもよい。
【0016】
本願の実施形態では、エンコード・ネットワークにおける非線形変換処理が変更され、それにより、各入力特徴値について、周囲の特徴値の影響を考慮することなく、その入力特徴値の特徴のみに基づいて出力値が得られる。また、もとの特徴値が洗練され、重要な特徴量がハイライトされ、冗長な特徴量を抑制される。加えて、第1の画像特徴における各特徴値の値は、さらに洗練されてもよく、それにより、畳み込みパラメータに対する限定を回避し、エンコード・ネットワークにおける効率的な非線形変換処理を実装し、画像/ビデオ圧縮アルゴリズムのレート‐歪み性能をさらに改善する。
【0017】
非線形演算は、第1の画像特徴における各特徴値に対して実行される演算であり、区分的線形マッピング方法を使用することを含みうる。本方法は、絶対値を得る(入力特徴値の絶対値を得る)ことであってもよく、または、整流線形ユニット(ReLU)、または、漏れ整流線形ユニット(LeakyReLU)であってもよく、または、区分的線形(PWL)演算であってもよい。ReLUは、区分的線形マッピング方法である。入力特徴値について、0未満の特徴値は0として出力され、0以上の特徴量値そのままである。LeakyReLUは、区分的線形マッピング法である。ReLUに基づいて、0未満の入力特徴値は、事前設定された重みを使用することによってスケーリングされ、重みは、通例、0.01である。PWL演算はまた、区分的線形マッピング方法であり、PWL演算におけるセグメントの量はより大きくなりうる。PWL演算の具体的な定義については、以下の実施形態を参照されたい。加えて、非線形演算は、別の方法、たとえば、区分的非線形演算、Tanh、またはシグモイドをさらに含みうる。これは、本願の実施形態において特に限定されない。
【0018】
ある可能な実装では、非線形変換処理は、畳み込み処理と要素ごとの乗算演算との間に第2の非線形演算をさらに含む。第2の非線形演算は、第1の非線形演算と同じであるか、または異なる。たとえば、第1の非線形演算は絶対値演算であってよく、第2の非線形演算は絶対値演算、別の区分的線形マッピング方法、または別の非線形演算であってよい。あるいはまた、第1の非線形演算はReLUであってもよく、第2の非線形演算はReLU、シグモイド、または別の非線形演算であってもよい。あるいはまた、第1の非線形演算はLeakyReLUであってもよく、第2の非線形演算はLeakyReLU、Tanh、または別の非線形演算であってもよい。あるいはまた、第1の非線形演算はPWLであってもよく、第2の非線形演算はPWLまたは別の非線形演算であってもよい。第2の非線形演算がPWLを使用することによって実装されるとき、区分的線形マッピングは、異なるセグメント量を使用しうる。各セグメント上のマッピング勾配は、トレーニングを通して決定されうるか、または直接指定されうる。入力特徴画像の各チャネルについて異なる区分的線形関数が使用されてもよく、または、すべてのチャネルについて同じ区分的線形関数が使用されてもよく、または、いくつかのチャネルを処理するために同じ区分的線形関数を使用されてもよい。この実装では、モデル・トレーニングが完了した後、残差構造はもはや畳み込みとマージされないが、区分的線形関数とマージされうる。具体的には、もとの区分的線形関数の出力を1増加させて新たな区分的線形関数を形成する。
【0019】
ある可能な実装では、トレーニング・フェーズにおける非線形変換ユニットがさらに構築されうる。トレーニング・フェーズにおける非線形変換ユニットは、第1の非線形演算層と、畳み込み処理層と、要素ごとの乗算演算層と、要素ごとの加算演算層とを含む。
【0020】
事前に得られたトレーニング・データに基づいてトレーニングが実行されて、トレーニングされた非線形変換ユニットが得られる。トレーニングされた非線形変換ユニットは、非線形変換処理を実装するために使用される。
【0021】
第2の側面によれば、本願のある実施形態は、処理されるべき第1の画像特徴を得る段階と;第1の画像特徴に対して非線形変換処理を実行して、処理された画像特徴を得る段階であって、非線形変換処理は、第1の非線形演算、畳み込み処理、および要素ごとの乗算演算を順次含む、段階と;処理された画像特徴に基づいて、再構成された画像を得る段階とを含む、画像デコード方法を提供する。
【0022】
ある可能な実装では、第1の画像特徴に対して非線形変換処理を実行して、処理された画像特徴を得ることは:第1の画像特徴における各特徴値に対して第1の非線形演算を実行して第2の画像特徴を得る段階と;第2の画像特徴に対して畳み込み処理を実行して第3の画像特徴を得る段階であって、第3の画像特徴における複数の特徴値は第1の画像特徴における複数の特徴値に対応する、段階と;第1の画像特徴および第3の画像特徴における複数の対応する特徴値に対して要素ごとの乗算演算を実行して、処理された画像特徴を得る段階とを含む。
【0023】
ある可能な実装では、非線形変換処理は、要素ごとの加算演算をさらに含む。
【0024】
ある可能な実装では、第1の画像特徴に対して非線形変換処理を実行して、処理された画像特徴を得ることは:第1の画像特徴における各特徴値に対して第1の非線形演算を実行して第2の画像特徴を得る段階と;第2の画像特徴に対して畳み込み処理を実行して第3の画像特徴を得る段階であって、第3の画像特徴における複数の特徴値は第1の画像特徴における複数の特徴値に対応する、段階と;第1の画像特徴および第3の画像特徴における複数の対応する特徴値に対して要素ごとの乗算演算を実行して第4の画像特徴を得る段階であって、第4の画像特徴における複数の特徴値は第1の画像特徴における複数の特徴値に対応する、段階と;第1の画像特徴および第4の画像特徴における複数の対応する特徴値に対して要素ごとの加算演算を実行して、処理された画像特徴を得る段階とを含む。
【0025】
ある可能な実装形態では、非線形演算は、区分的線形マッピング、たとえばReLU、LeakyReLU、PWL、およびAbsを含む。別の可能な実装では、非線形演算は、連続関数、たとえば、Tanhまたはシグモイドを含む。別の可能な実装では、非線形演算は区分的非線形演算を含む。第2の側面および第2の側面の可能な実装において提供される画像デコード方法の技術的効果については、第1の側面および第1の側面に対応する可能な実装において提供される画像エンコード方法の技術的効果を参照されたい。詳細は、本明細書では再び説明されない。
【0026】
第3の側面によれば、本願のある実施形態は、処理されるべき第1の画像特徴を取得するように構成された取得モジュールと;第1の画像特徴に対して非線形変換処理を実行して、処理された画像特徴を得るように構成された変換モジュールであって、非線形変換処理は、第1の非線形演算と、畳み込み処理と、要素ごとの乗算演算とを順次含む、変換モジュールと;処理された画像特徴に基づいてエンコードを実行して、ビットストリームを得るように構成されたエンコード・モジュールとを含むエンコード装置を提供する。
【0027】
ある可能な実装では、変換モジュールは具体的には、第1の画像特徴における各特徴値に対して第1の非線形演算を実行して第2の画像特徴を得て、第2の画像特徴に対して畳み込み処理を実行して第3の画像特徴を得る段階であって、第3の画像特徴における複数の特徴値は第1の画像特徴における複数の特徴値に対応する、段階と、第1の画像特徴および第3の画像特徴における複数の対応する特徴値に対して要素ごとの乗算演算を実行して、処理された画像特徴を得る段階とを実行するように構成される。
【0028】
ある可能な実装では、非線形変換処理は、要素ごとの乗算演算の後に要素ごとの加算演算をさらに含む。
【0029】
ある可能な実装では、変換モジュールは、具体的には、第1の画像特徴における各特徴値に対して第1の非線形演算を実行して第2の画像特徴を得る段階と;第2の画像特徴に対して畳み込み処理を実行して第3の画像特徴を得る段階であって、第3の画像特徴における複数の特徴値は第1の画像特徴における複数の特徴値に対応する、段階と;第1の画像特徴および第3の画像特徴における複数の対応する特徴値に対して要素ごとの乗算演算を実行して、第4の画像特徴を得る段階であって、第4の画像特徴における複数の特徴値は第1の画像特徴における複数の特徴値に対応する、段階と;第1の画像特徴および第4の画像特徴における複数の対応する特徴値に対して要素ごとの加算演算を実行して、処理された画像特徴を取得する段階とを実行するように構成される。
【0030】
ある可能な実装では、非線形変換処理は、畳み込み処理と要素ごとの乗算演算との間に第2の非線形演算をさらに含む。第2の非線形演算は、第1の非線形演算と同じであるか、または異なる。たとえば、第1の非線形演算は絶対値演算であってもよく、第2の非線形演算もやはり絶対値演算であってもよく、第2の非線形演算は区分的線形マッピングまたは別の非線形演算と呼ばれてもよい。
【0031】
ある可能な実装では、非線形演算は、区分的線形マッピング、たとえば、ReLU、LeakyReLU、PWL、およびAbsを含む。別の可能な実装では、非線形演算は、連続関数、たとえばTanhまたはシグモイドを含む。別の可能な実装では、非線形演算は区分的非線形演算を含む。
【0032】
ある可能な実装では、装置は、トレーニング・フェーズにおいて非線形変換ユニットを構築する段階であって、トレーニング・フェーズにおける非線形変換ユニットは、第1の非線形演算層、畳み込み処理層、要素ごとの乗算演算層、および要素ごとの加算演算層を含む、段階と;事前取得されたトレーニング・データに基づいてトレーニングを実行して、トレーニングされた非線形変換ユニットを得る段階であって、トレーニングされた非線形変換ユニットは、非線形変換処理を実施するために使用される、段階とを実行するように構成されたトレーニング・モジュールをさらに含む。
【0033】
第4の側面によれば、本願のある実施形態は、処理されるべき第1の画像特徴を取得するように構成された取得モジュールと;第1の画像特徴に対して非線形変換処理を実行して、処理された画像特徴を得るように構成された変換モジュールであって、非線形変換処理は、第1の非線形演算、畳み込み処理、および要素ごとの乗算演算を含む、変換モジュールと;処理された画像特徴に基づいて、再構成された画像を得るように構成された再構成モジュールとを含むデコード装置を提供する。
【0034】
ある可能な実装では、変換モジュールは具体的には、第1の画像特徴における各特徴値に対して第1の非線形演算を実行して第2の画像特徴を得る段階と;第2の画像特徴に対して畳み込み処理を実行して第3の画像特徴を得る段階であって、第3の画像特徴における複数の特徴値は第1の画像特徴における複数の特徴値に対応する、段階と;第1の画像特徴および第3の画像特徴における複数の対応する特徴値に対して要素ごとの乗算演算を実行して、処理された画像特徴を得る段階とを実行するように構成される。
【0035】
ある可能な実装では、非線形変換処理は、要素ごとの乗算演算の後に要素ごとの加算演算をさらに含む。
【0036】
ある可能な実装では、変換モジュールは具体的には、第1の画像特徴における各特徴値に対して第1の非線形演算を実行して、第2の画像特徴を得る段階と;第2の画像特徴に対して畳み込み処理を実行して、第3の画像特徴を得る段階であって、第3の画像特徴における複数の特徴値は第1の画像特徴における複数の特徴値に対応する、段階と;第1の画像特徴および第3の画像特徴における複数の対応する特徴値に対して要素ごとの乗算演算を実行して、第4の画像特徴を得る段階であって、第4の画像特徴における複数の特徴値は第1の画像特徴における複数の特徴値に対応する、段階と;第1の画像特徴および第4の画像特徴における複数の対応する特徴値に対して要素ごとの加算演算を実行して、処理された画像特徴を取得する段階とを実行するように構成される。
【0037】
ある可能な実装では、非線形変換処理は、畳み込み処理と要素ごとの乗算演算との間に第2の非線形演算をさらに含む。第2の非線形演算は、第1の非線形演算と同じであるか、または異なる。
【0038】
ある可能な実装では、非線形演算は、区分的線形マッピング、たとえばReLU、LeakyReLU、PWL、およびAbsを含む。別の可能な実装では、非線形演算は、連続関数、たとえば、Tanhまたはシグモイドを含む。別の可能な実装では、非線形演算は区分的非線形演算を含む。
【0039】
ある可能な実装では、本装置は、トレーニング・フェーズにおいて非線形変換ユニットを構築する段階であって、トレーニング・フェーズにおける非線形変換ユニットは、第1の非線形演算層、畳み込み処理層、要素ごとの乗算演算層、および要素ごとの加算演算層を含む、段階と;事前取得されたトレーニング・データに基づいてトレーニングを実行して、トレーニングされた非線形変換ユニットを得る段階であって、トレーニングされた非線形変換ユニットは、非線形変換処理を実装するために使用される、段階とを実行するように構成されたトレーニング・モジュールをさらに含む。
【0040】
第5の側面によれば、本願のある実施形態は、一つまたは複数のプロセッサと;該プロセッサに結合され、該プロセッサによる実行のためのプログラムを記憶している非一時的なコンピュータ可読記憶媒体とを含むエンコーダを提供する。前記プログラムは、プロセッサによって実行されると、デコーダが上記の第1の側面のいずれか1つによる方法を実行できるようにする。
【0041】
第6の側面によれば、本願のある実施形態は、一つまたは複数のプロセッサと;該プロセッサに結合され、該プロセッサによる実行のためのプログラムを記憶している非一時的なコンピュータ可読記憶媒体とを含むデコーダを提供する。前記プログラムは、プロセッサによって実行されると、デコーダが上記の第2の側面のいずれか1つによる方法を実行できるようにする。
【0042】
第7の側面によれば、本願のある実施形態は、プログラムコードを含むコンピュータ・プログラム・プロダクトを提供する。プログラムコードがコンピュータまたはプロセッサ上で実行されるとき、コンピュータ・プログラム・プロダクトは、第1の側面および第2の側面のいずれか1つによる方法を実行するように構成される。
【0043】
第8の側面によれば、本願のある実施形態は、命令を含むコンピュータ可読記憶媒体を提供する。命令がコンピュータ上で実行されるとき、コンピュータは、第1の側面および第2の側面のいずれか1つによる方法を実行できるようにされる。
【0044】
第9の側面によれば、本願のある実施形態は、ビットストリームを提供し、ビットストリームは、第1の側面のいずれか1つによる方法を実行することによってプロセッサによって生成される。
【0045】
第10の側面によれば、本願のある実施形態は、ビットストリーム記憶装置を提供し、本装置は、受信機と少なくとも1つの記憶媒体とを含み、受信機は、ビットストリームを受信するように構成され、少なくとも1つの記憶媒体は、ビットストリームを記憶するように構成される。ビットストリームは、第1の側面のいずれか1つによる方法に従って生成されたビットストリームである。
【0046】
第11の側面によれば、本願のある実施形態は、ビットストリーム送信装置を提供し、本装置は、送信機と、少なくとも1つの記憶媒体とを含み、少なくとも1つの記憶媒体は、ビットストリームを記憶するように構成され、ビットストリームは、第1の側面のいずれか1つによる方法に従ってプロセッサによって生成されたビットストリームを含み、送信機は、ビットストリームを別の電子デバイスに送信するように構成される。
【0047】
第12の側面によれば、本願のある実施形態は、ビットストリーム配信システムを提供し、本システムは、少なくとも1つの記憶媒体とストリーミングメディアデバイスとを含み、少なくとも1つの記憶媒体は、少なくとも1つのビットストリームを記憶するように構成され、少なくとも1つのビットストリームは、第1の側面の実装のいずれか1つに従って生成されたビットストリームを含む。ストリーミングメディアデバイスは、少なくとも1つの記憶媒体からターゲットビットストリームを取得し、ターゲットビットストリームを端末側デバイスに送信するように構成され、ストリーミングメディアデバイスは、コンテンツサーバーまたはコンテンツ配信サーバーを含む。
【0048】
第13の側面によれば、本願のある実施形態は、ビットストリーム配信システムを提供し、本システムは、ターゲットビットストリームを取得するためのユーザーの要求を受信するように構成された通信インターフェースと、ユーザーの要求に応答してターゲットビットストリームの記憶位置を決定するように構成されたプロセッサとを含む。通信インターフェースは、ユーザーがターゲットビットストリームの記憶位置からターゲットビットストリームを取得するように、ターゲットビットストリームの記憶位置をユーザーに送信するようにさらに構成され、ターゲットビットストリームは、第1の側面のいずれか1つによる方法を実行することによってプロセッサによって生成される。
【図面の簡単な説明】
【0049】
【
図1A】コーディング・システム10の概略ブロック図である。
【0050】
【
図1B】ビデオ・コーディング・システム40の概略図である。
【0051】
【
図2】本発明のある実施形態によるビデオ・コーディング・デバイス400の概略図である。
【0052】
【
図3】ある実施形態による装置500の簡略化されたブロック図である。
【0053】
【
図4】エンドツーエンド深層学習画像エンコードおよびデコードのフレームワークの概略図である。
【0054】
【
図5】エンドツーエンド深層学習ビデオ・エンコードおよびデコードのフレームワークの概略図である。
【0055】
【
図6】本願のある実施形態による適用シナリオの概略図である。
【0056】
【
図7】本願のある実施形態による、適用シナリオの概略図である。
【0057】
【
図8】本願のある実施形態による、適用シナリオの概略図である。
【0058】
【
図9】本願のある実施形態による画像エンコード方法のプロセス900のフローチャートである。
【0059】
【
図10a】局所注目機構を有する非線形変換ユニットの構造の概略図である。
【0060】
【
図10b】局所注目機構を有する残差非線形変換ユニットの構造の概略図である。
【0061】
【
図10c】注目機構を有する残差非線形変換ユニットの構造の概略図である。
【0062】
【
図10d】注目機構を有する非線形変換ユニットの構造の概略図である。
【0063】
【0064】
【0065】
【
図13】エンコード・ネットワークの構造の概略図である。
【0066】
【
図14】本願のある実施形態による画像デコード方法のプロセス1300のフローチャートである。
【0067】
【
図15】デコード・ネットワークの構造の概略図である。
【0068】
【
図16a】ResAUの構造の例示的な概略図である。
【0069】
【
図16b】ResAUの構造の例示的な概略図である。
【0070】
【
図16c】ResAUの構造の例示的な概略図である。
【0071】
【
図16d】ResAUの構造の例示的な概略図である。
【0072】
【
図16e】ResAUの構造の例示的な概略図である。
【0073】
【
図17a】Kodakテスト・セットにおける24画像に対するResAUの全体的なパフォーマンスを示す。
【0074】
【
図17b】Kodakテスト・セットにおける24画像に対するResAUの全体的なパフォーマンスを示す。
【0075】
【
図18】本願のある実施形態によるエンコード装置1700の構造の概略図である。
【0076】
【
図19】本願のある実施形態によるデコード装置1800の構造の概略図である。
【発明を実施するための形態】
【0077】
本願の目的、技術的解決策、および利点をより明確にするために、以下は、本願における添付の図面を参照して、本願における技術的解決策を明確かつ完全に説明する。説明される実施形態は、本願の実施形態のすべてではなく、その一部にすぎないことは明らかである。創造的な努力なしに本願の実施形態に基づいて当業者によって得られるすべての他の実施形態は、本願の保護範囲内に入るものとする。
【0078】
本願の明細書、実施形態、特許請求の範囲、および添付図面において、「第1の」、「第2の」などの用語は、単に区別および説明を意図したものであり、相対的な重要性を示すまたは含意するもの、あるいは順序を示すまたは含意するものとして理解されてはならない。加えて、「含む」、「有する」という用語、およびそれらの任意の変形は、非排他的な包含をカバーすること、たとえば、一連の段階またはユニットを含むことが意図される。たとえば、方法、システム、プロダクト、またはデバイスは、明示的に列挙された段階またはユニットに必ずしも限定されず、明示的に列挙されていない、またはそのようなプロセス、方法、プロダクト、もしくはデバイスに内在的な他の段階またはユニットを含みうる。
【0079】
本願において、「少なくとも1つの(項目)」は一つまたは複数を指し、「複数の」は2つ以上を指すことを理解されたい。「および/または」という用語は、関連付けられたオブジェクト間の関連付け関係を記述するために使用され、3つの関係が存在しうることを表す。たとえば、「Aおよび/またはB」は、以下の3つの場合を表すことができる。Aのみが存在、Bのみが存在、AとBの両方が存在。ここで、AおよびBは、単数または複数でありうる。記号「/」は、一般に、関連付けられたオブジェクト間の「または」関係を示す。「以下の項目(ピース)のうちの少なくとも1つ」という表現または類似の表現は、これらの項目の任意の組み合わせを意味し、単一の項目(ピース)または複数の項目(ピース)の任意の組み合わせを含む。たとえば、a、b、またはcのうちの少なくとも1つは、a、b、c、aおよびb、aおよびc、bおよびc、またはa、b、およびcを示すことがあり、ここで、a、b、およびcは、単数または複数でありうる。
【0080】
本願の実施形態における用語が、以下で説明される。
【0081】
1. ビットレート:画像圧縮において単位ピクセルをエンコードするために必要とされる平均エンコード長である。
【0082】
2. レート‐歪み性能:圧縮アルゴリズムの性能を測るために使用される指標である。ビットレートとデコードされた画像の歪みが考慮される。
【0083】
3. 注目機構:限られた注目〔アテンション〕資源を使って大量の情報から高価値情報をスクリーニングする手段である。ニューラルネットワークは、入力における関連部分に対してより多くの注目を向け、無関係な部分に対してより少ない注目を向けることができる。
【0084】
4. 残差構造:残差構造は、ニューラルネットワークにおける一般的な接続構造であり、計算方式は、H(x)=x+f(x)として表されうる。この構造は、ネットワーク深さが増すときに発生しうる勾配消失および勾配爆発問題を防止することができる。
【0085】
5. 非線形変換ユニット:非線形変換ユニットは、非線形演算(たとえば、ReLU、シグモイド、Tanh、またはPWLなどの演算)を含むネットワークユニットであり、該ユニットの全体的な計算方式は、線形特徴に適合しない。
【0086】
本願の実施形態はニューラルネットワークの適用に関係するので、理解を容易にするために、以下ではまず、本願の実施形態で使用される関連する名詞または用語を説明し、記述する。
【0087】
1. ニューラルネットワーク
【0088】
ニューラルネットワーク(neural Network、NN)は、機械学習モデルである。ニューラルネットワークは、ニューロンを含みうる。ニューロンは、x
sと1の切片を入力とする演算ユニットであり、演算ユニットの出力は、次のようなものであってもよい:
【数1】
【0089】
s=1,2,…,またはnであり、nは1より大きい自然数であり、Wsはxsの重みであり、bはニューロンのバイアスである。fは、ニューロンの活性化関数(activation function)であり、ニューロンにおける入力信号を出力信号に変換するために、ニューラルネットワークに非線形特徴を導入するように構成される。活性化関数の出力信号は、次の畳み込み層の入力として使用されてもよい。活性化関数は、ReLUのような非線形関数であってもよい。ニューラルネットワークは、多数の単一ニューロンを接続して形成されるネットワークである。具体的には、あるニューロンの出力が別のニューロンの入力であってもよい。各ニューロンの入力は、前の層の局所受容野(local receptive field)に接続されて、局所受容野の特徴を抽出しうる。局所受容野は、いくつかのニューロンを含む領域でありうる。
【0090】
2. 多層パーセプトロン(multi-layer perceptron、MLP)
【0091】
MLPは、単純なディープニューラルネットワーク(deep neural network、DNN)(異なる層が全接続されている)であり、多層ニューラルネットワークとも呼ばれる。MLPは、複数の隠れ層を有するニューラルネットワークとして理解されうる。本明細書において、「複数の」についての特別な測定基準はない。DNNは、異なる層の位置に基づいて分割され、DNNにおけるニューラルネットワークは、入力層、隠れ層、および出力層の3つのタイプに分割されうる。一般に、最初の層は入力層であり、最後の層は出力層であり、中間層は隠れ層である。層は全接続されている。具体的には、i番目の層における任意のニューロンは、必ずi+1番目の層の任意のニューロンと接続される。DNNは複雑に見えるが、各層における作業の点では複雑ではない。簡単に言えば、DNNは、次の線形関係式である:
【数2】
ここで、ベクトルx〔便宜上、
→xと書くこともある;以下同様〕は入力ベクトルであり、
→yは出力ベクトルであり、
→bはオフセット・ベクトルであり、Wは、重み行列(係数ともいう)であり、α()は活性化関数である。各層において、入力ベクトル
→xに対してこのような単純な演算のみが行われて、出力ベクトル
→yが得られる。DNNは大量の層を含むので、大量の係数Wおよび大量のオフセット・ベクトル
→bがある。DNNにおけるこれらのパラメータの定義は、以下の通りである。係数Wが例として使用される。3層DNNにおいて、第2層の第4ニューロンから第3層の第2ニューロンへの線形係数をw
24
3と定義する。上付き文字3は、係数Wが位置する層を表、下付き文字は、出力である第3層のインデックス2および入力である第2層のインデックス4に対応する。結論として、第(L-1)層の第kニューロンから第L層の第jニューロンへの係数を、W
jk
Lと定義する。入力層にはパラメータWはないことに留意されたい。ディープニューラルネットワークでは、隠れ層が多いほど、ネットワークは、現実世界における複雑なケースを記述する能力が高くなる。理論的には、より多くのパラメータをもつモデルは、より高い複雑さおよびより大きい「容量」を有する。これは、モデルがより複雑な学習タスクを完了できることを示す。ディープニューラルネットワークのトレーニングは、重み行列を学習するプロセスであり、トレーニングの最終目的は、トレーニングされたディープニューラルネットワークのすべての層の重み行列(多くの層のベクトルWにより形成される重み行列)を取得することである。
【0092】
3 畳み込みニューラルネットワーク
【0093】
畳み込みニューラルネットワーク(convolutional neuron network、CNN)は、畳み込み構造および深層学習(deep learning)アーキテクチャーを有するディープニューラルネットワークである。深層学習アーキテクチャーでは、機械学習アルゴリズムに従って、異なる抽象レベルで多層学習が実行される。深層学習アーキテクチャーとして、CNNは、フィードフォワード(feed-forward)人工ニューラルネットワークである。フィードフォワード人工ニューラルネットワーク内のニューロンは、ニューラルネットワークに入力された画像に応答しうる。畳み込みニューラルネットワークは、畳み込み層とプーリング層によって構成される特徴抽出器を含む。特徴抽出器は、フィルタと見なされてもよい。畳み込みプロセスは、入力画像または畳み込み特徴平面(特徴マップ)に対して畳み込みを実行するためにトレーニング可能なフィルタを使用するものと見なされうる。
【0094】
畳み込み層は、畳み込みニューラルネットワーク内にあり、入力信号に対して畳み込み処理が実行されるニューロン層である。畳み込み層は、複数の畳み込み演算子を含みうる。畳み込み演算子は、カーネルとも呼ばれる。画像処理において、畳み込み演算子は、入力画像行列から特定の情報を抽出するフィルタとして機能する。畳み込み演算子は、本質的に重み行列であってもよく、重み行列は、通例、あらかじめ定義される。画像に対して畳み込み演算を実行するプロセスにおいて、重み行列は、通例、入力画像の水平方向に1ピクセル(またはストライドstrideの値に依存して2ピクセル)の粒度でピクセルを処理して、画像から特定の特徴を抽出するために使用される。重み行列のサイズは、画像のサイズに関連しているべきである。重み行列の深さ次元(depth dimension)は、入力画像の深さ次元と同じであることに留意されたい。畳み込み演算中、重み行列は入力画像の深さ全体に及ぶ。したがって、単一の深さ次元の畳み込み出力が、単一の重み行列との畳み込みを通して生成される。しかしながら、ほとんどの場合、単一の重み行列は使用されず、同じサイズ(行×列)の複数の重み行列、すなわち、複数の同じタイプの行列が適用される。重み行列の出力は積み重ねられて、畳み込み画像の深さ次元をなす。本明細書における次元は、前述の「複数」に基づいて決定されるものとして理解されうる。画像から異なる特徴を抽出するために、異なる重み行列が使用されてもよい。たとえば、画像のエッジ情報を抽出するためにある重み行列が使用され、画像の特定の色を抽出するために別の重み行列が使用され、画像内の不要なノイズをぼかすためにさらに別の重み行列が使用される。複数の重み行列のサイズ(行×列)は同じである。同じサイズを有する複数の重み行列から抽出された特徴マップのサイズも同じであり、次いで、同じサイズを有する複数の抽出された特徴マップが組み合わされて、畳み込み演算の出力を形成する。これらの重み行列における重み値は、実際の応用では、大規模なトレーニングを通じて取得される必要がある。トレーニングを通じて取得された重み値を使用することによって形成された各重み行列は、入力画像から情報を抽出するために使用されてもよく、畳み込みニューラルネットワークが正しい予測を実行することを可能にする。畳み込みニューラルネットワークが複数の畳み込み層を有する場合、通例、初期畳み込み層において比較的大量の一般特徴が抽出される。一般的特徴は、低レベル特徴とも呼ばれる。畳み込みニューラルネットワークの深さが増すにつれて、後続の畳み込み層で抽出される特徴は、より複雑になり、たとえば、高レベルの意味的特徴になる。より高いレベルの意味内容を有する特徴は、解決されるべき問題に対してより適用可能である。
【0095】
トレーニング・パラメータの量は、しばしば、低減される必要がある。したがって、プーリング層は、しばしば、畳み込み層の後に周期的に導入される必要がある。1つの畳み込み層の後に1つのプーリング層が続いてもよく、または複数の畳み込み層の後に一つまたは複数のプーリング層が続いてもよい。画像処理中、プーリング層は、画像の空間サイズを縮小するためにのみ使用される。プーリング層は、入力画像に対してサンプリングを実行して小さいサイズの画像を得るための、平均プーリング演算子および/または最大プーリング演算子を含んでいてもよい。平均プーリング演算子は、特定の範囲内の画像内のピクセル値を計算して平均値を生成するために使用されうる。その平均値が、平均プーリングの結果として使用される。最大プーリング演算子は、特定の範囲内の最大値を有するピクセルを最大プーリング結果として選択するために使用されうる。また、畳み込み層における重み行列のサイズが画像のサイズに関連する必要があることと同様に、プーリング層における演算子も画像のサイズに関連する必要がある。プーリング層から出力される処理された画像のサイズは、プーリング層に入力される画像のサイズより小さくてもよい。プーリング層から出力される画像内の各ピクセルは、プーリング層に入力される画像の対応する部分領域の平均値または最大値を表す。
【0096】
畳み込み層/プーリング層で実行される処理の後、畳み込みニューラルネットワークは、必要とされる出力情報を出力する準備ができていない。なぜなら、上述したように、畳み込み層/プーリング層では、特徴が抽出されるだけで、入力画像から生じるパラメータが低減されるからである。しかしながら、最終的な出力情報(必要とされるクラス情報または他の関連情報)を生成するためには、畳み込みニューラルネットワークは、ニューラルネットワーク層を使用して、1つの必要とされるクラスまたは必要とされるクラスのグループの出力を生成する必要がある。したがって、畳み込みニューラルネットワーク層は、複数の隠れ層を含んでいてもよい。複数の隠れ層に含まれるパラメータは、特定のタスク・タイプの関連するトレーニング・データに基づいた事前トレーニングを通じて得られてもよい。たとえば、タスク・タイプは、画像認識、画像分類、および超解像画像再構成を含みうる。
【0097】
任意的に、ニューラルネットワーク層において、複数の隠れ層の後に畳み込みニューラルネットワーク全体の出力層が続く。出力層は、カテゴリー交差エントロピーに類似した損失関数を有し、損失関数は、具体的には、予測誤差を計算するために使用される。畳み込みニューラルネットワーク全体の順方向伝搬が完了すると、逆方向伝搬が開始されて、上述の各層の重み値および偏差を更新して、畳み込みニューラルネットワークの損失、および出力層を使用することによって畳み込みニューラルネットワークによって出力される結果と理想的な結果との間の誤差を低減する。
【0098】
4. リカレントニューラルネットワーク
【0099】
リカレントニューラルネットワーク(recurrent neural network、RNN)は、シーケンス・データを処理するために使用される。従来のニューラルネットワーク・モデルでは、入力層から隠れ層、出力層までの各層が全接続されており、各層のノードどうしは接続されていない。そのような一般的なニューラルネットワークは、多くの問題を解決するが、他の多くの問題を解決することはできない。たとえば、文中の次の単語を予測するためには、通例、前の単語を使用する必要がある。文中の前の単語と次の単語は独立ではないからである。RNNがリカレントニューラルネットワークと呼ばれる理由は、シーケンスの現在の出力がシーケンスの前の出力にも関連するからである。具体的な表現形態としては、ネットワークが以前の情報を記憶し、該以前の情報を現在の出力の計算に適用するというものである。具体的には、隠れ層のノードどうしが接続され、隠れ層の入力は、入力層の出力を含むだけでなく、前の時点における隠れ層の出力も含む。理論的には、RNNは、任意の長さのシーケンス・データを処理することができる。RNNのためのトレーニングは、従来のCNNやDNNのためのトレーニングと同様である。誤差逆伝搬アルゴリズムも使用されるが、以下のような違いがある。RNNが拡大される場合、RNNのWなどのパラメータが共有される。これは、上記の例で説明した従来のニューラルネットワークとは異なる。また、勾配降下アルゴリズムを使用する際、各段階の出力は、現在の段階におけるネットワークだけでなく、いくつかの前の段階のネットワーク状態にも依存する。学習アルゴリズムは、時間を通じた逆伝播(back propagation through time、BPTT)アルゴリズムと呼ばれる。
【0100】
なぜ、畳み込みニューラルネットワークが利用可能な場合でも、リカレントニューラルネットワークが必要とされるのだろうか。理由は簡単である。畳み込みニューラルネットワークでは、要素が互いに独立であり、猫と犬のように、入力と出力も独立であることが前提となる。しかしながら、現実世界では、複数の要素が相互接続されている。たとえば、株式は時間とともに変化する。別の例として、ある人が「旅行が好きで、お気に入りの場所は雲南です。チャンスがあればそこに行くよ。」と言う。ここで、人々は、その人が「雲南」に行くことを知るはずである。人々は、文脈から推論を実行するからである。しかしながら、機械はどのようにしてそれを行うのか。そこでRNNが登場する。RNNは、機械が人間のように記憶できるようにすることを意図している。したがって、RNNの出力は、現在の入力情報および履歴の記憶された情報に依存する必要がある。
【0101】
5. 損失関数
【0102】
ディープニューラルネットワークをトレーニングするプロセスにおいて、ディープニューラルネットワークの出力が実際に期待される予測値にできるだけ近いことが期待されるので、現在のネットワークの予測値と実際に期待される目標値とが比較されてよく、次いで、ニューラルネットワークの各層の重みベクトルが、予測値と目標値との間の差に基づいて更新される(むろん、通例、最初の更新の前に初期化プロセスがあり、具体的には、パラメータがディープニューラルネットワークのすべての層について事前構成される)。たとえば、ネットワークの予測値が大きい場合、重みベクトルは、予測値を減少させるように調整され、ディープニューラルネットワークが実際に期待される目標値または実際に期待される目標値に近い値を予測することができるようになるまで、調整が継続的に実行される。したがって、「比較を通じて、予測値と目標値との間の差をどのように取得するか」が事前に定義される必要がある。これは、損失関数(loss function)または目的関数(objective function)である。損失関数および目的関数は、予測値と目標値との間の差を測る重要な式である。損失関数が例として使用される。損失関数の出力値(損失)が高いほど、差が大きいことを示す。したがって、ディープニューラルネットワークのトレーニングは、損失をできるだけ最小化するプロセスである。
【0103】
6. 逆伝播アルゴリズム
【0104】
畳み込みニューラルネットワークは、誤差逆伝搬(back propagation、BP)アルゴリズムに従って、トレーニング・プロセスにおいて初期超解像モデルにおけるパラメータの値を補正してよく、それにより、超解像モデルを再構成することの誤差損失がより小さくなる。具体的には、出力において誤差損失が発生するまで入力信号が順方向に転送され、逆伝搬誤差損失情報に基づいて初期超解像モデルのパラメータが更新され、誤差損失が収束させられる。逆伝播アルゴリズムは、最適な超解像モデルの重み行列などのパラメータを得ることを意図した、誤差損失中心の逆伝播運動である。
【0105】
7. 敵対的生成ネットワーク
【0106】
敵対的生成ネットワーク(generative adversarial network、GAN)は、深層学習モデルである。モデルは、少なくとも2つのモジュールを含む。一方のモジュールは生成モデル(Generative Model)であり、他方のモジュールは弁別モデル(Discriminative Model)である。2つのモジュールは、より良い出力を生成するよう、互いに対戦を通じて学習するために使用される。生成モデルと弁別モデルは、いずれもニューラルネットワークであってもよく、具体的には、ディープニューラルネットワークまたは畳み込みニューラルネットワークであってもよい。GANの基本原理は、以下の通りである。ピクチャーを生成するためのGANを例として使用して、2つのネットワーク、すなわちG(生成器)およびD(弁別器)があるとする。Gはピクチャーを生成するネットワークである。Gはランダムノイズzを受領し、該ノイズを使用することによってピクチャーを生成し、ここで、ピクチャーはG(z)として示される。Dは、ピクチャーが「本物」であるかどうかを決定するために使用される弁別器ネットワークである。Dの入力パラメータはxであり、xはピクチャーを表し、出力D(x)はxが本物のピクチャーである確率を表す。D(x)の値が1である場合、それは、ピクチャーが100%本物であることを示す。D(x)の値が0である場合、それは、ピクチャーが本物ではありえないことを示す。敵対的生成ネットワークをトレーニングするプロセスにおいて、生成ネットワークGの目的は、できるだけリアルなピクチャーを生成して、弁別ネットワークDを欺くことであり、弁別ネットワークDの目的は、Gによって生成されたピクチャーと本物のピクチャーとをできるだけ区別することである。このように、動的な「対戦」プロセス、具体的には「敵対的生成ネットワーク」における「敵対」が、GとDとの間に存在する。最終的な対戦結果では、理想的な状態では、Gは、本物の画像と区別することが困難な画像G(z)を生成することがあり、Dは、Gによって生成された画像が現実のものであるかどうかを判定することが困難であり、具体的には、D(G(z))=0.5である。このようにして、優れた生成モデルGが得られ、ピクチャーを生成するために使用されることができる。
【0107】
畳み込みニューラルネットワーク(convolution neural network、CNN)は、画像認識およびターゲット検出などのコンピュータビジョン・タスクにおいて従来のアルゴリズムよりも性能が優れているので、より多くの研究者が、深層学習ベースの画像/ビデオ圧縮方法を探索し始めている。一部の研究者は、エンドツーエンドの深層学習画像/ビデオ圧縮アルゴリズムを設計している。たとえば、エンコード・ネットワーク、エントロピー推定ネットワーク、エントロピー・エンコード・ネットワーク、エントロピー・デコード・ネットワーク、およびデコード・ネットワークなどのモジュールが、全体として最適化される。エンコード・ネットワークおよびデコード・ネットワークは、変換モジュールおよび逆変換モジュールと呼ばれることもあり、一般に、畳み込み層および非線形変換ユニットを含む。
【0108】
図1Aは、本願の技法を利用しうる例示的なコーディング・システム10、たとえば、ビデオ・コーディング・システム10(または略してコーディング・システム10)を示す概略ブロック図である。ビデオ・コーディング・システム10のビデオ・エンコーダ20(または略してエンコーダ20)およびビデオ・デコーダ30(または略してデコーダ30)は、本願で説明するさまざまな例による技法を実行するように構成されうるデバイスの例を表す。
【0109】
図1Aに示されるように、コーディング・システム10は、エンコードされた画像データ21をデコードするために、たとえば、エンコードされた画像データ21を宛先デバイス14に提供するように構成されたソース・デバイス12を含む。
【0110】
ソース・デバイス12は、エンコーダ20を含み、さらに、すなわち、任意的に、画像ソース16と、プリプロセッサ(または前処理ユニット)18、たとえば、画像プリプロセッサ18と、通信インターフェース(または通信ユニット)22とを含みうる。
【0111】
画像ソース16は、任意の種類の画像捕捉デバイス、たとえば、現実世界の画像を捕捉するためのカメラ、および/または任意のタイプの画像生成デバイス、たとえば、コンピュータアニメーション画像を生成するためのコンピュータグラフィックス処理ユニット、または現実世界の画像、コンピュータ生成画像(たとえば、スクリーンコンテンツ、仮想現実(VR)画像)、および/またはそれらの任意の組み合わせ(たとえば、拡張現実(AR)画像)を取得および/または提供するための任意のタイプの他のデバイスを含むか、またはそれらでありうる。画像ソースは、前述の画像のいずれかを記憶する任意のタイプのメモリまたは記憶装置であってもよい。
【0112】
プリプロセッサ(または前処理ユニット)18によって実行される処理を区別するために、画像(または画像データ)17は、生(または生画像データ)17と呼ばれることもある。
【0113】
プリプロセッサ18は、(生)画像データ17を受領し、画像データ17に対して前処理を実行して、前処理された画像(または前処理された画像データ)19を得るように構成される。プリプロセッサ18によって実行される前処理は、たとえば、トリミング、色フォーマット変換(たとえば、RGBからYCbCrへの)、色補正、またはノイズ除去を含みうる。前処理ユニット18は任意的な構成要素であってもよいことが理解されうる。
【0114】
ビデオ・エンコーダ(またはエンコーダ)20は、前処理された画像データ19を受領し、エンコードされた画像データ21を提供するように構成される(さらなる詳細は、たとえば、
図2に基づいて以下で説明される)。
【0115】
ソース・デバイス12の通信インターフェース22は、エンコードされた画像データ21を受領し、エンコードされた画像データ21(またはその任意のさらに処理されたバージョン)を通信チャネル13を通じて別のデバイス、たとえば、宛先デバイス14または任意の他のデバイスに、記憶または直接再構成のために、送信するように構成されうる。
【0116】
宛先デバイス14は、デコーダ30(たとえば、ビデオ・デコーダ30)を含み、さらに、すなわち、任意的に、通信インターフェース(または通信ユニット)28と、ポストプロセッサ32(または後処理ユニット)と、ディスプレイ・デバイス34とを含みうる。
【0117】
宛先デバイス14の通信インターフェース28は、たとえば、ソース・デバイス12から直接、または任意の他のソース、たとえば、記憶デバイス、たとえば、エンコード画像データ記憶デバイスから、エンコード画像データ21(またはその任意のさらに処理されたバージョン)を受領し、エンコード画像データ21をデコーダ30に与えるように構成される。
【0118】
通信インターフェース22および通信インターフェース28は、ソース・デバイス12と宛先デバイス14との間の直接通信リンク、たとえば、直接の有線もしくは無線接続を介して、または任意の種類のネットワーク、たとえば、有線もしくは無線ネットワークまたはそれらの任意の組み合わせ、または任意の種類のプライベートおよび公共ネットワーク、またはそれらの任意の種類の組み合わせを介して、エンコード画像データ(またはエンコード・データ)21を送信または受信するように構成されうる。
【0119】
通信インターフェース22は、たとえば、エンコード画像データ21を適切なフォーマット、たとえばパケットにパッケージ化するように、および/または通信リンクもしくは通信ネットワークを通じた送信のための任意の種類の送信エンコードもしくは処理を使用してエンコード画像データを処理するように構成されうる。
【0120】
通信インターフェース22の対応物を形成する通信インターフェース28は、たとえば、送信されたデータを受信し、任意のタイプの対応する送信デコードまたは処理および/またはデパッケージングを使用して送信データを処理して、エンコード画像データ21を得るように構成されうる。
【0121】
通信インターフェース22と通信インターフェース28の両方は、
図1Aの通信チャネル13についてソース・デバイス12から宛先デバイス14を指す矢印によって示されるような単方向通信インターフェース、または双方向通信インターフェースとして構成されてもよく、たとえば、メッセージを送信および受信するように、たとえば、接続をセットアップし、通信リンクおよび/またはデータ送信、たとえば、エンコード画像データ送信に関係する任意の他の情報を受け取り確認し、交換するように構成されうる。
【0122】
ビデオ・デコーダ(またはデコーダ)30は、エンコードされた画像データ21を受領し、デコードされた画像データ(またはデコードされた画像)31を提供するように構成される(さらなる詳細は、たとえば、
図3に基づいて以下で説明される)。
【0123】
ポストプロセッサ32は、デコード画像データ31(再構成画像データとも呼ばれる)、たとえば、デコード画像を後処理して、後処理画像データ33、たとえば、後処理画像を得るように構成される。後処理ユニット32によって実行される後処理は、たとえば、色フォーマット変換(たとえば、YCbCrからRGBへの)、色補正、トリミング、またはリサンプリング、あるいはディスプレイ・デバイス34などによる表示のためにデコード画像データ31を準備するためなどの任意の他の処理を含みうる。
【0124】
ディスプレイ・デバイス34は、たとえばユーザーまたは閲覧者に対して画像を表示するために、後処理された画像データ33を受領するように構成される。ディスプレイ・デバイス34は、たとえば、一体化されたまたは外部のディスプレイまたはモニターといった、再構成画像を表すための任意のタイプのディスプレイであってもよく、またはそれを含んでいてもよい。たとえば、ディスプレイは、液晶ディスプレイ(liquid crystal display、LCD)、有機発光ダイオード(organic light emitting diode、OLED)ディスプレイ、プラズマディスプレイ、プロジェクター、マイクロLEDディスプレイ、シリコン上の液晶(liquid crystal on silicon、LCoS)、デジタルライトプロセッサ(digital light processor、DLP)、または任意のタイプの他のディスプレイを含みうる。
【0125】
コーディング・システム10は、トレーニング・エンジン25をさらに含む。トレーニング・エンジン25は、画像領域と特徴領域との間の変換を実装するようにエンコーダ20またはデコーダ30をトレーニングするように構成される。
【0126】
本願の実施形態では、トレーニング・データは、データベース(図示せず)に記憶されてもよく、トレーニング・エンジン25は、トレーニング・データに基づいてトレーニングを実行して、エンコード/デコード・ネットワークを得る。トレーニング・データのソースは、本願の実施形態において限定されないことに留意されたい。たとえば、モデル・トレーニングを実行するために、クラウドや他の場所からトレーニング・データが取得されてもよい。
【0127】
図1Aは、ソース・デバイス12および宛先デバイス14が独立したデバイスであることを示しているが、デバイス実施形態は、ソース・デバイス12と宛先デバイス14の両方を含むか、またはソース・デバイス12と宛先デバイス14の両方の機能を含む、すなわち、ソース・デバイス12または対応する機能と宛先デバイス14または対応する機能の両方を含むこともできる。そのような実施形態では、ソース・デバイス12または対応する機能と宛先デバイス14または対応する機能とは、同じハードウェアおよび/またはソフトウェアを使用して、または別個のハードウェアおよび/またはソフトウェアによって、あるいはそれらの任意の組み合わせによって実装されうる。
【0128】
本説明に基づいて当業者には明らかになるように、
図1Aに示されるような、異なるユニットの機能の存在および(厳密な)分割、またはソース・デバイス12および/または宛先デバイス14内の機能の存在および(厳密な)分割は、実際のデバイスおよび応用に依存して異なりうる。
【0129】
エンコーダ20(たとえば、ビデオ・エンコーダ20)またはデコーダ30(たとえば、ビデオ・デコーダ30)またはエンコーダ20とデコーダ30の両方は、一つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ(digital signal processor、DSP)、特定用途向け集積回路(application-specific integrated circuit、ASIC)、フィールドプログラマブルゲートアレイ(field-programmable gate array、FPGA)、ディスクリートロジック、ハードウェア、専用のビデオ・エンコード、またはそれらの任意の組み合わせなどの、
図1Bに示されるような処理回路を介して実装されうる。エンコーダ20は、
図2のエンコーダ20および/または本明細書で説明する任意の他のエンコーダ・システムもしくはサブシステムに関して説明したさまざまなモジュールを具現するために、処理回路46を介して実装されうる。デコーダ30は、
図3のデコーダ30および/または本明細書で説明する任意の他のデコーダ・システムもしくはサブシステムに関して説明したさまざまなモジュールを具現するために処理回路46を介して実装されうる。処理回路46は、後述するようなさまざまな動作を実行するように構成されてもよい。
図8に示されるように、本技法が部分的にソフトウェアで実装される場合、デバイスは、ソフトウェアのための命令を好適な非一時的なコンピュータ可読記憶媒体に記憶してもよく、本発明の技法を実行するために一つまたは複数のプロセッサを使用してハードウェアで命令を実行してもよい。ビデオ・エンコーダ20およびビデオ・デコーダ30のいずれも、たとえば
図1Bに示されているように、単一のデバイスにおける複合エンコーダ/デコーダ(encoder/decoder、コーデック)の一部として統合されうる。
【0130】
ソース・デバイス12および宛先デバイス14は、任意のタイプのハンドヘルドまたは固定デバイス、たとえば、ノートブックまたはラップトップコンピュータ、モバイルフォン、スマートフォン、タブレットまたはタブレットコンピュータ、カメラ、デスクトップコンピュータ、セットトップボックス、テレビジョン、ディスプレイ・デバイス、デジタルメディアプレーヤー、ビデオゲームコンソール、ビデオストリーミングデバイス(コンテンツサービスサーバーまたはコンテンツ配信サーバーなど)、ブロードキャスト受信機デバイス、ブロードキャスト送信機デバイスなどを含む、幅広い範囲のデバイスのいずれかを含んでいてもよく、オペレーティングシステムを使用しなくてもよく、または任意のタイプのオペレーティングシステムを使用しうる。いくつかの場合には、ソース・デバイス12および宛先デバイス14は、無線通信のために装備されうる。したがって、ソース・デバイス12および宛先デバイス14は無線通信デバイスでありうる。
【0131】
場合によっては、
図1Aに示されたビデオ・コーディング・システム10は一例にすぎず、本願の技法は、エンコード・デバイスとデコード・デバイスとの間のデータ通信を必ずしも含むとは限らないビデオ・エンコード場面(たとえば、ビデオ・エンコードまたはビデオ・デコード)に適用されうる。他の例では、データは、ローカル・メモリから取り出されるか、ネットワークを通じて送信されるなどしてもよい。ビデオ・エンコード・デバイスは、データをエンコードし、エンコードされたデータをメモリに記憶してもよく、および/またはビデオ・デコード・デバイスは、メモリからデータを取り出し、データをデコードしてもよい。いくつかの例では、エンコードおよびデコードは、互いに通信しないが、単にデータをメモリ中にエンコードする、および/またはメモリからデータを取り出し、データをデコードする諸デバイスによって実行される。
【0132】
図1Bは、ビデオ・コーディング・システム40の概略図である。ビデオ・コーディング・システム40は、撮像デバイス41、ビデオ・エンコーダ20、ビデオ・デコーダ30(および/または処理回路46によって実装されるビデオ・エンコーダ/デコーダ)、アンテナ42、一つまたは複数のプロセッサ43、一つまたは複数のメモリ44、および/またはディスプレイ・デバイス45を含みうる。
【0133】
図1Bに示されるように、撮像デバイス41、アンテナ42、処理回路46、ビデオ・エンコーダ20、ビデオ・デコーダ30、プロセッサ43、メモリ44、および/またはディスプレイ・デバイス45は、互いに通信することができる。ビデオ・コーディング・システム40は、異なる例では、ビデオ・エンコーダ20のみを含むか、またはビデオ・デコーダ30のみを含みうる。
【0134】
いくつかの例では、アンテナ42は、ビデオ・データのエンコードされたビットストリームを送信または受領するように構成されうる。さらに、いくつかの例では、ディスプレイ・デバイス45は、ビデオ・データを提示するように構成されうる。処理回路46は、特定用途向け集積回路(application-specific integrated circuit、ASIC)ロジック、グラフィックス処理ユニット、汎用プロセッサなどを含みうる。ビデオ・コーディング・システム40はまた、任意的なプロセッサ43をも含みうる。任意的なプロセッサ43は、同様に、特定用途向け集積回路(application-specific integrated circuit、ASIC)ロジック、グラフィックス処理ユニット、汎用プロセッサなどを含みうる。加えて、メモリ44は、任意のタイプのメモリ、たとえば、揮発性メモリ(たとえば、スタティックランダムアクセスメモリ(static random access memory、SRAM)またはダイナミックランダムアクセスメモリ(dynamic random access memory、DRAM))または不揮発性メモリ(たとえば、フラッシュメモリ)であってもよい。非限定的な例では、メモリ44は、キャッシュメモリによって実装されうる。他の例では、処理回路46は、画像バッファを実装するためのメモリ(たとえば、キャッシュ)を含みうる。
【0135】
いくつかの例では、論理回路を使用することによって実装されるビデオ・エンコーダ20は、画像バッファ(たとえば、処理回路46またはメモリ44によって実装される)と、グラフィックス処理ユニット(たとえば、処理回路46によって実装される)とを含みうる。グラフィックス処理ユニットは、画像バッファに通信上結合されうる。グラフィックス処理ユニットは、
図2を参照して説明されるさまざまなモジュール、および/または本明細書で説明される任意の他のエンコーダ・システムもしくはサブシステムを実装するために、処理回路46を使用することによって実装されるビデオ・エンコーダ20を含みうる。論理回路は、本明細書に記載されたさまざまな動作を実行するように構成されうる。
【0136】
いくつかの例では、ビデオ・デコーダ30は、
図3におけるデコーダ30および/または本明細書で説明する任意の他のデコーダ・システムまたはサブシステムを参照して説明されるさまざまなモジュールを実装するために、同様の仕方で処理回路46によって実装されうる。いくつかの例では、論理回路を使用することによって実装されるビデオ・デコーダ30は、画像バッファ(処理回路46またはメモリ44によって実装される)と、グラフィックス処理ユニット(たとえば、処理回路46によって実装される)とを含みうる。グラフィックス処理ユニットは、画像バッファに通信上結合されうる。グラフィックス処理ユニットは、
図3を参照して説明されるさまざまなモジュール、および/または本明細書で説明される任意の他のデコーダ・システムもしくはサブシステムを実装するために、処理回路46を使用することによって実装されるビデオ・デコーダ30を含みうる。
【0137】
いくつかの例では、アンテナ42は、ビデオ・データのエンコードされたビットストリームを受信するように構成されうる。説明されるように、エンコードされたビットストリームは、本明細書で説明されるビデオ・フレーム・エンコードに関係するデータ、インジケータ、インデックス値、モード選択データなど、たとえば、コーディング区分に関係するデータ(たとえば、変換係数もしくは量子化された変換係数、(説明されるような)任意的なインジケータ、および/またはコーディング区分を定義するデータ)を含みうる。ビデオ・コーディング・システム40は、アンテナ42に結合され、エンコードされたビットストリームをデコードするように構成されたビデオ・デコーダ30をさらに含みうる。ディスプレイ・デバイス45は、ビデオ・フレームを提示するように構成される。
【0138】
本願の実施形態では、ビデオ・エンコーダ20を参照して説明される例について、ビデオ・デコーダ30は逆のプロセスを実行するように構成されうることを理解されたい。シグナリング・シンタックス要素に関して、ビデオ・デコーダ30は、そのようなシンタックス要素を受領およびパースし、対応して、関係するビデオ・データをデコードするように構成されうる。いくつかの例では、ビデオ・エンコーダ20は、シンタックス要素をエンコードされたビデオビットストリーム中にエントロピー・エンコードしうる。そのような例では、ビデオ・デコーダ30は、そのようなシンタックス要素をパースし、それに応じて関連するビデオ・データをデコードしうる。
【0139】
説明の便宜上、本発明の実施形態は、たとえば、高効率ビデオ・コーディング(High-Efficiency Video Coding、HEVC)、または、ITU-Tのビデオ・コーディング専門家グループ(Video Coding Experts Group、VCEG)およびISO/IECの動画像専門家グループ(Motion Picture Experts Group、MPEG)のビデオ・コーディングに関する統合協働チーム(Joint Collaboration Team on Video Coding、JCT-VC)によって開発された次世代ビデオ・コーディング規格である多用途ビデオ符号化(Versatile Video Coding、VVC)の参照ソフトウェアを参照することによって、本明細書で説明される。当業者は、本発明の実施形態がHEVCまたはVVCに限定されないことを理解するであろう。
【0140】
図2は、本開示の実施形態によるビデオ・コーディング・デバイス400の概略図である。ビデオ・コーディング・デバイス400は、本明細書に記載されるような開示される実施形態を実施するのに適している。ある実施形態では、ビデオ・コーディング・デバイス400は、
図1Aのビデオ・デコーダ30などのデコーダ、または
図1Aのビデオ・エンコーダ20などのエンコーダでありうる。
【0141】
ビデオ・コーディング・デバイス400は、データを受領するための入口ポート410(または入力ポート410)および受信ユニット(receiver unit、Rx)420と、データを処理するためのプロセッサ、論理ユニット、または中央処理ユニット(central processing unit、CPU)430と(たとえば、プロセッサ430はニューラルネットワーク処理ユニット430であってもよい)、データを送信するための送信機ユニット(transmitter unit、Tx)440および出口ポート450(または出力ポート450)と、データを記憶するためのメモリ460とを含む。ビデオ・コーディング・デバイス400はまた、光信号または電気信号の放出または進入のために、入口ポート410、受信ユニット420、送信機ユニット440、および出口ポート450に結合された光-電気(optical-to-electrical、OE)コンポーネントと電気-光(electrical-to-optical、EO)コンポーネントとを含みうる。
【0142】
プロセッサ430は、ハードウェアおよびソフトウェアによって実装される。プロセッサ430は、一つまたは複数のCPUチップ、コア(たとえば、マルチコアプロセッサ)、FPGA、ASIC、DSPとして実装されてもよい。プロセッサ430は、入口ポート410、受信ユニット420、送信機ユニット440、出口ポート450、およびメモリ460と通信する。プロセッサ430は、コーディング・モジュール470(たとえば、ニューラルネットワークNNベースのコーディング・モジュール470)を含む。コーディング・モジュール470は、上述の開示された実施形態を実装する。たとえば、コーディング・モジュール470は、さまざまなエンコード動作を実施、処理、準備、または提供する。したがって、エンコード/デコード・モジュール470を含むことは、ビデオ・コーディング・デバイス400の機能に実質的な改善を提供し、ビデオ・コーディング・デバイス400の異なる状態への切り換えに影響を及ぼす。代替的に、コーディング・モジュール470は、メモリ460に記憶され、プロセッサ430によって実行される命令として実装される。
【0143】
メモリ460は、一つまたは複数のディスク、テープドライブ、およびソリッドステートドライブを含むことができ、オーバーフローデータ記憶デバイスとして使用されてもよく、プログラムが実行のために選択されたときにそのようなプログラムを記憶してもよく、プログラム実行中に読まれる命令およびデータを記憶してもよい。メモリ460は、揮発性および/または不揮発性であってもよく、リードオンリメモリ(read-only memory、ROM)、ランダムアクセスメモリ(random access memory、RAM)、三値連想メモリ(ternary content-addressable memory、TCAM)、および/またはスタティックランダムアクセスメモリ(static random-access memory、SRAM)であってもよい。
【0144】
図3は、ある実施形態による、
図1A中のソース・デバイス12および宛先デバイス14のいずれかまたは両方として使用されうる装置500の簡略化されたブロック図である。
【0145】
装置500内のプロセッサ502は、中央処理装置であってもよい。あるいはまた、プロセッサ502は、現在存在するかまたは今後開発される情報を操作または処理することができる任意の他のタイプのデバイス、または複数のデバイスでありうる。開示された実装は、図示されたような単一のプロセッサ、たとえばプロセッサ502で実施されうるが、2つ以上のプロセッサを使用して速度および効率における利点が達成されうる。
【0146】
装置500内のメモリ504は、ある実装では、読み出し専用メモリ(ROM)デバイスまたはランダムアクセスメモリ(RAM)デバイスでありうる。任意の他の適切なクラスの記憶デバイスがメモリ504として使用されることができる。メモリ504は、バス512を使用してプロセッサ502によってアクセスされるコードおよびデータ506を含むことができる。メモリ504は、オペレーティングシステム508およびアプリケーションプログラム510をさらに含んでいてもよく、アプリケーションプログラム510は、プロセッサ502が本明細書に記載された方法を実行することを可能にする少なくとも1つのプログラムを含む。たとえば、アプリケーションプログラム510は、アプリケーション1~Nを含んでいてもよく、アプリケーション1~Nは、本明細書で説明される方法を実行するビデオ・コーディング・アプリケーションをさらに含む。
【0147】
装置500は、ディスプレイ518などの一つまたは複数の出力デバイスも含むことができる。ディスプレイ518は、一例では、タッチ入力を感知するように動作可能なタッチ感応性要素とディスプレイを組み合わせたタッチ感応性ディスプレイでありうる。ディスプレイ518は、バス512を介してプロセッサ502に結合されうる。
【0148】
ここでは単一のバスとして示されているが、装置500のバス512は、複数のバスから構成されうる。さらに、二次記憶装置が、装置500の他のコンポーネントに直接結合されてもよく、またはネットワークを介してアクセスされてもよく、メモリカードなどの単一の統合ユニット、または複数のメモリカードなどの複数のユニットを含んでいてもよい。このように、装置500は、幅広い多様な構成で実装されうる。
【0149】
図4は、エンドツーエンドの深層学習画像エンコードおよびデコード・フレームワークの概略図である。
図4に示されるように、画像エンコードおよびデコード・フレームワークは、エンコード・ネットワーク(エンコーダ)、量子化モジュール、およびエントロピー・エンコード・ネットワークというエンコーダ側と、エントロピー・デコード・ネットワーク、デコード・ネットワーク(デコーダ)、およびエントロピー推定ネットワークというデコーダ側とを含む。
【0150】
エンコーダ側では、もとの画像は、エンコード・ネットワークによって処理された後に、画像領域から特徴領域に変換される。変換された画像特徴は、量子化モジュールおよびエントロピー・エンコード・ネットワークによって処理された後、送信されるべきまたは記憶されるべきビットストリームにエンコードされる。デコーダ側では、ビットストリームは、エントロピー・デコード・ネットワークによって処理された後に画像特徴にデコードされる。画像特徴は、デコード・ネットワークによって処理された後に特徴領域から画像領域に変換されて、再構成画像が得られる。エントロピー推定ネットワークは、画像特徴に基づいて各特徴要素の推定確率値を推定して取得し、確率値は、エントロピー・エンコード・ネットワークおよびエントロピー・デコード・ネットワークの処理のために使用される。
【0151】
この実施形態では、エンコード・ネットワーク(エンコーダ)とデコード・ネットワーク(デコーダ)の両方が非線形変換ユニットを有する。
【0152】
図5は、エンドツーエンド深層学習ビデオ・エンコードおよびデコード・フレームワークの概略図である。
図5に示されるように、ビデオ・エンコードおよびデコード・フレームワークは、予測モジュール(predict model)および残差圧縮(residual compress)モジュールを含む。
【0153】
予測モジュールは、前のフレームの再構成画像を使用することによって現在のフレームを予測して、予測画像を得る。一方では、残差圧縮モジュールは、現在のフレームのもとの画像と予測画像との間の残差を圧縮する。他方では、残差圧縮モジュールは、残差を圧縮解除して、再構成された残差を得て、再構成された残差と予測画像とを合計して、現在のフレームの再構成された画像を得る。予測モジュールおよび残差圧縮モジュールにおけるエンコード・サブネットワークおよびデコード・サブネットワークの両方は、非線形変換ユニットを有する。
【0154】
この実施形態では、予測モジュール(predict model)と残差圧縮(residual compress)モジュールの両方が非線形変換ユニットを有する。
【0155】
図6は、本願のある実施形態による適用シナリオの概略図である。
図6に示されるように、適用シナリオは、端末、クラウドサーバー、またはビデオ監視における画像/ビデオの捕捉、記憶、または送信に関連するサービス、たとえば、端末による写真撮影/ビデオ記録、アルバム、クラウド・アルバム、またはビデオ監視であってもよい。
【0156】
エンコーダ側:カメラ(camera)が、画像/ビデオを捕捉する。人工知能(artificial intelligence、AI)画像/ビデオ・エンコード・ネットワークが、画像/ビデオについての特徴抽出から、冗長性が低い画像特徴を取得し、次いで、画像特徴に基づいて圧縮を実行してビットストリーム/画像ファイルを得る。
【0157】
デコーダ側:画像/ビデオが出力される必要があるとき、AI画像/ビデオ・デコード・ネットワークは、画像特徴を得るためにビットストリーム/画像ファイルを圧縮解除し、次いで、再構成された画像/ビデオを得るために画像特徴に対して逆特徴抽出を実行する。
【0158】
記憶/送信モジュールは、種々のサービスのために、圧縮によって得られたビットストリーム/画像ファイルを記憶(たとえば、端末による撮影、ビデオ監視、またはクラウドサーバー)または送信(たとえば、クラウドサービスまたはライブブロードキャスト技術)する。
【0159】
図7は、本願のある実施形態による適用シナリオの概略図である。
図7に示されるように、応用シナリオは、端末またはビデオ監視における画像/ビデオの捕捉、記憶または送信に関連するサービス、たとえば、端末アルバム、ビデオ監視またはライブブロードキャストであってもよい。
【0160】
エンコーダ側:エンコード・ネットワークは、画像/ビデオをより低い冗長度をもつ画像特徴に変換する。エンコード・ネットワークは、通例、非線形変換ユニットを含み、非線形特徴を有する。エントロピー推定ネットワークは、画像特徴における各データのエンコード確率を計算することを受け持つ。エントロピー・エンコード・ネットワークは、各データに対応する確率に基づいて画像特徴に対して可逆エンコードを実行して、ビットストリーム/画像ファイルを得る。これにより、画像圧縮プロセスにおけるデータ伝送量をさらに削減する。
【0161】
デコーダ側:エントロピー・デコード・ネットワークは、各データに対応する確率に基づいて、ビットストリーム/画像ファイルに対して可逆デコードを実行して、再構成された画像特徴を得る。デコード・ネットワークは、エントロピー・デコード・ネットワークによって出力された画像特徴に対して逆変換を実行し、画像特徴を画像/ビデオにパースする。エンコード・ネットワークに対応して、デコード・ネットワークは、通例、非線形変換ユニットを含み、非線形特徴を有する。記憶モジュールは、端末の対応する記憶位置にビットストリーム/画像ファイルを保存する。ロード・モジュールは、端末の対応する記憶位置からビットストリーム/画像ファイルをロードし、ビットストリーム/画像ファイルをエントロピー・デコード・ネットワークに入力する。
【0162】
図8は、本願のある実施形態による適用シナリオの概略図である。
図8に示されるように、本適用シナリオは、クラウドまたはビデオ監視における画像/ビデオの捕捉、記憶、または送信に関連するサービス、たとえば、クラウド・アルバム、ビデオ監視、またはライブブロードキャストであってもよい。
【0163】
エンコーダ側:ローカル・エンドは、画像/ビデオを取得し、画像/ビデオ(JPEG)をエンコードして圧縮された画像/ビデオを得て、次いで、圧縮された画像/ビデオをクラウドに送信する。クラウドは、圧縮された画像/ビデオに対してJPEGデコードを実行して画像/ビデオを得て、次いで、画像/ビデオを圧縮してビットストリーム/画像ファイルを得て、ビットストリーム/画像ファイルを記憶する。
【0164】
デコーダ側:画像/ビデオがクラウドからローカルに取得される必要があるとき、クラウドは、ビットストリーム/画像ファイルを圧縮解除して画像/ビデオを得て、画像/ビデオに対してJPEGエンコードを実行して圧縮された画像/ビデオを得て、圧縮された画像/ビデオをローカル・エンドに送信する。ローカル・エンドは、圧縮された画像/ビデオに対してJPEGデコードを実行して、画像/ビデオを得る。クラウドの構造および各モジュールの使用については、
図7の各モジュールの構造および使用を参照されたい。詳細は、本願の実施形態においてここでは説明されない。
【0165】
前述のエンコード/デコード・ネットワークおよび適用シナリオに基づいて、本願のある実施形態は、効率的な非線形変換処理を実施し、画像/ビデオ圧縮アルゴリズムのレート‐歪み性能を改善するための画像エンコード/デコード方法を提供する。
【0166】
図9は、本願のある実施形態による画像エンコード方法のプロセス900のフローチャートである。プロセス900は、前述の実施形態におけるエンコーダ側によって実行されてもよい。プロセス900は、一連の段階または動作として説明される。プロセス900の段階または動作は、さまざまな順序でおよび/または同時に実行されてもよく、
図9に示される実行順序に限定されないことを理解されたい。プロセス900は、以下の段階を含む。
【0167】
段階901:処理されるべき第1の画像特徴を取得する。
【0168】
第1の画像特徴は、エンコーダ側が処理されるべき画像を取得し、処理されるべき画像を画像領域から特徴領域に変換した後に得られる。ここでの変換は、以下を含んでいてもよい。1.畳み込み層が特徴を抽出するために使用される畳み込み処理。ここで、畳み込み処理は局所受容野および重み共有機構を有する(すなわち、各フィルタが入力特徴を順次処理する);2.MLPまたは全接続層を使用することによって特徴を抽出すること。ここで、MLPまたは全接続層を使用することによって特徴を抽出することは、グローバル受容野特徴を有し、重みが共有されない;3.行列乗算、MLP、および正規化処理を含む変換器(transformer〔トランスフォーマ〕)処理。ここで、変換器処理は、グローバル受容野特徴を有し、強い長距離捕捉依存性能力を有する。
【0169】
第1の画像特徴は、2次元行列(L×C、ここで、Lは長さを表し、Cはチャネル(channel)を表す)または3次元行列(C×H×W、ここで、Cはチャネルの数を表し、Hは高さを表し、Wは幅を表す)の形で表されてもよい。特定の形が、前述の変換態様に関連付けられる。たとえば、畳み込み処理を通じて、またはMLPを使用することによって抽出された第1の画像特徴は、一般に、3次元行列に対応し、変換器を使用することによる処理を通じて取得された第1の画像特徴は、一般に、2次元行列に対応する。
【0170】
たとえば、第1の画像特徴は、2次元行列として表される。
【数3】
【0171】
2次元行列Aは、3×3の行列であり、9個の要素を含む。各要素a(i,j)は、第1の画像特徴における1つの特徴値に対応する。iは、要素a(i,j)に対応する長さを表し、jは、要素a(i,j)が位置するチャネルを表す。
【0172】
別の例では、第1の画像特徴は、3次元行列として表される。
【数4】
【0173】
3次元行列Bは、3×3×2の行列であり、18個の要素を含む。各要素a(i,j,l)は、第1の画像特徴における特徴値に対応する。iは、要素a(i,j,l)が位置する行を表し、jは、要素a(i,j,l)が位置する列を示し、lは、要素a(i,j,l)が位置するチャネルを示す。
【0174】
第1の画像特徴を取得する態様は、本願の実施形態において特に限定されないことに留意されたい。
【0175】
処理されるべき画像は、ピクチャーであってもよく、またはビデオ内の画像のフレームであってもよく、または前述のピクチャーもしくは画像をセグメント化することによって取得された画像ブロックであってもよい。これは特に限定されない。
【0176】
段階902:第1の画像特徴に対して非線形変換処理を実行して、処理された画像特徴を得る。
【0177】
ある可能な実装では、第1の非線形演算は、第1の画像特徴における各特徴値に対して実行されて、第2の画像特徴が得られる。第2の画像特徴に対して畳み込み処理が実行されて、第3の画像特徴が得られる。ここで、第3の画像特徴における複数の特徴値は、第1の画像特徴における複数の特徴値に対応する。要素ごとの乗算演算は、第1の画像特徴および第3の画像特徴における複数の対応する特徴値に対して実行されて、処理された画像特徴が得られる。
【0178】
図10aは、注目機構を有する非線形変換ユニットの構造の概略図である。
図10aに示されるように、本願の諸実施形態において、非線形変換ユニットは、前述の非線形変換処理を実装するために使用され、第1の非線形演算、畳み込み処理、および要素ごとの乗算演算を含む。
【0179】
第1の非線形演算は、第1の画像特徴における各特徴値に対して実行される演算であり、絶対値演算、ReLU級数、シグモイド、Tanh、PWL演算などを含みうる。
【0180】
絶対値演算は、入力された特徴値の絶対値を求める演算である。これは、次の式を使用することによって表すことができる。
【数5】
【0181】
区分的線形マッピングは、整流線形ユニット(ReLU)、漏れ整流線形ユニット(LeakyReLU)、またはPWL演算を含む。ReLUは、区分的線形マッピング方法である。入力特徴値について、0未満の特徴値は0として出力され、0以上の特徴値はそのままである。これは、次の式を使用することによって表すことができる。
【数6】
【0182】
LeakyReLUは、区分的線形マッピング方法である。ReLUに基づいて、0未満の入力特徴値は、事前設定された重みを使用することによってスケーリングされ、重みは、通例、0.01である。これは、次の式を使用することによって表すことができる。
【数7】
【0183】
aは、事前設定された値であり、通例、0.01に設定される。
【0184】
シグモイドは、次の演算として表すことができる。
【数8】
【0185】
Tanhは、次の演算として表すことができる。
【数9】
【0186】
PWLは、次の演算として表すことができる。
【数10】
【0187】
Nは、セグメントの数を表し;B
Lは左境界を表し;B
Rは右境界を表し;Y
Pは、N+1個の境界点に対応するy軸座標値を表し;K
Lは、左端の傾きを表し;K
Rは、右端の傾きを表し;idxは、xが属するセグメントのインデックス番号を表し;B
idxおよびK
idxは、セグメントの対応する左境界および傾きであり;d=(B
R-B
L)/Nはセグメント長を表す。これらの値は以下のように計算される。
【数11】
【0188】
式(1)は、異なる粒度で(層ごとに、またはさらにはチャネルごとに)使用されうることに留意されたい。チャネルに基づいて式を使用する場合、BL、BR、YP、KL、KRは、チャネルごとのパラメータである。任意的に、同じハイパーパラメータNがすべてのPWL演算において使用されてもよい。
【0189】
PWLは、以下の利点を有する。一般的な近似として、PWLは、任意の連続有界スカラー関数を近似することができる。PWLは、パラメータ(ハイパーパラメータN以外)とともに連続的に変化し、これは、勾配に基づく最適化にとって非常に有用である。柔軟性は、境界領域に集中され、その結果、学習可能なパラメータが最大限に使用できる。PWL計算効率は、特に推論においては、均等なセグメント化のため、高い。
【0190】
図11は、PWL関数の概略図である。
図11に示されるように、セグメントの数Nはハイパーパラメータであり、PWL関数のフィッティング能力に影響を及ぼす。セグメントの数が多いほど、自由度が高く、モデル容量が大きいことを示す。左右の境界B
LおよびB
Rは、PWLが焦点を合わせる主有効エリアを定義する。[B
L,B
R]がN個のセグメントに均等に分割されて、N+1個の境界点が得られる。各境界点は、対応するy軸座標値Y
Pを有し、これらの座標は、PWL曲線の形状を決定する。[B
L,B
R]の外部のエリアについては、2つの傾きK
LおよびK
Rを用いることで、境界外のエリアの形状が制御できる。
【0191】
区分的線形マッピングは、代替的に、ReLUの別の変形態様を使用してもよく、または別の新しい第1の非線形演算態様を使用してもよいことに留意されたい。これは、本願の実施形態において特に限定されない。
【0192】
第1の非線形演算の後、第1の画像特徴は第2の画像特徴に変換される。第2の画像特徴は、第1の画像特徴のように行列の形で表されうる。第1の非線形演算は第1の画像特徴における各特徴値に対して実行されるので、第1の画像特徴における各特徴値は、第2の画像特徴値における1つの特徴値に対応する。したがって、第2の画像特徴に対応する行列と第1の画像特徴に対応する行列は同じサイズを有し、同じ位置における特徴値(行列要素の値)は互いに対応する。たとえば、第1の画像特徴が行列Aとして3×3行列として表される場合、第2の画像特徴も3×3行列として表されうる。しかしながら、第1の非線形演算は第1の画像特徴および第2の画像特徴に対して実行されるので、第1の画像特徴および第2の画像特徴における特徴値は完全に同じではない。対応して、第1の画像特徴および第2の画像特徴にそれぞれ対応する行列内の要素値は、完全に同じではない。
【0193】
第2の画像特徴に対して畳み込み処理が実行されて、第3の画像特徴が出力される。第3の画像特徴は、第2の画像特徴の局所応答(すなわち、洗練された値)と見なされてもよい。すなわち、第3の画像特徴は、第2の画像特徴に対して畳み込み処理を実行することによって得られる応答信号である。畳み込み処理の受容野は限られているため、畳み込み処理後に出力される画像特徴における各位置の応答値は、その位置に隣接する位置の入力特徴値のみに関連する。これは、局所応答と呼ばれる。畳み込み処理は、次の式で表すことができる。
conv1(x)=β+Σγ×x
【0194】
γは、畳み込み層の重みを表し、βは、畳み込み層のオフセット・パラメータを表す。
【0195】
畳み込み処理が実行された後、第3の画像特徴に対応する行列のサイズも、第1の画像特徴に対応する行列のサイズと同じである。
図12は、畳み込み処理の概略図である。
図12に示されるように、1*2行列が入力され、畳み込み層の処理後に1*4行列が出力される。畳み込み層は、2つのフィルタを含み、一方は2*50行列W1であり、他方は50*4行列W2である。まず、行列W1を使用することによって入力行列に対して畳み込み演算が実行されて、1*50行列が得られ、次いで、行列W2を使用することによって行列に対して畳み込み演算が実行されて、1*4出力行列が得られる。
【0196】
第1の画像特徴および第3の画像特徴における複数の対応する特徴値に対して要素ごとの乗算演算を実行することは、非線形変換ユニットの初期入力および畳み込み処理の出力に対して要素ごとの乗算を実行することである。これは、次の式によって表すことができる。
c(i,j)=a(i,j)×b(i,j)
【0197】
(i,j)は、特徴値が位置する画像特徴における特徴値のインデックスを表す。a(i,j)は、第1の画像特徴における特徴値を表し、b(i,j)は、第2の画像特徴における特徴値を表し、c(i,j)は、処理された画像特徴における特徴値を表す。
【0198】
処理された画像特徴に対応する行列と第1の画像特徴に対応する行列も同じサイズを有することがわかる。
【0199】
本願の諸実施形態では、2つのグラフィック特徴における複数の特徴値が互いに対応することは、2つの画像特徴がそれぞれ行列として表された後に、2つの行列における同じ位置にある要素の値が演算関係を有し、2つの画像特徴が互いに対応することを意味しうることに留意されたい。たとえば、第1の画像特徴と第3の画像特徴の両方が、前述の行列Aの形で表され、同じ位置a0,2における要素は、互いに対応する。
【0200】
また、畳み込み処理後に、第1の画像とは異なる特殊サイズをもつ第3の画像特徴が得られてもよい。これは、畳み込み処理の内部構造、特に畳み込み処理中のフィルタのチャネルの長さ、幅、および数に依存する。第3の画像特徴と第1の画像特徴が異なるサイズを有する場合、対応して、第3の画像特徴に対応する行列内の要素は、第1の画像特徴に対応する行列内の要素と1対1の対応関係にない。この場合、第1の画像特徴に対応する行列における複数の要素が、第3の画像特徴に対応する行列における同じ要素を乗算されると考えられてもよい。たとえば、第1の画像特徴に対応する行列のチャネルの数が3であり、第3の画像特徴に対応する行列のチャネルの数が1である場合、第3の画像特徴に対応する行列内の要素は、第1の画像特徴に対応する行列内の各チャネル内の同じ位置にある要素を別々に乗算されうる。これは、本願の実施形態において特に限定されない。
【0201】
第1の非線形演算、畳み込み処理、および要素ごとの乗算演算は、次の式(1)によって表されうる。
【数12】
【0202】
xは入力特徴値を表す。yは出力特徴値を表す。φ(xj)は、第1の非線形演算を表す。γは、畳み込み層の重みを表す。βは、畳み込み層のバイアス・パラメータを表す。
【0203】
上記の式では乗算演算が使用される。関連技術(GDN除算正規化)の畳み込み処理における
【数13】
の除算演算と比較。平方根が正の数である必要があるという制限を考慮するために、畳み込みパラメータγおよびβは正数である必要がある。また、除算を考慮して分母は0になれず、畳み込みパラメータγおよびβの値も制限されるという制限を課す必要がない。
【0204】
局所注目機構は、前述の第1の非線形演算、畳み込み処理、および要素ごとの乗算演算の後に実施される。局所とは、第1の非線形演算が要素ごとに実行され、各入力特徴値について、周囲の特徴値の影響を考慮せずに、入力特徴値の特徴のみに基づいて、出力値が得られることを意味する。注意機構は、第1の画像特徴におけるすべての特徴値のうちのいくつかが重要であり、いくつかが冗長であることを意味する。畳み込み処理の出力は、画像特徴における各特徴値の重みであってもよい。もとの特徴値は洗練されてもよく、重要な特徴値はハイライトされ、冗長な特徴値は抑制される。要素ごとの乗算演算において、第1の画像特徴における各特徴値の値は、前述の局所情報を使用することによって洗練され、それにより、畳み込みパラメータに対する制限を回避する。
【0205】
ある可能な実装では、第1の非線形演算は、第1の画像特徴における各特徴値に対して実行され、第2の画像特徴が得られる。第2の画像特徴に対して畳み込み処理が実行されて、第3の画像特徴が得られ、第3の画像特徴における複数の特徴値は、第1の画像特徴における複数の特徴値に対応する。第1の画像特徴および第3の画像特徴における複数の対応する特徴値に対して要素ごとの乗算演算が実行され、第4の画像特徴が得られる。第4の画像特徴における複数の特徴値は、第1の画像特徴における複数の特徴値に対応する。要素ごとの加算演算は、第1の画像特徴および第4の画像特徴における複数の対応する特徴値に対して実行されて、処理された画像特徴が得られる。
【0206】
図10bは、注目機構を有する残差非線形変換ユニットの構造の概略図である。
図10bに示されるように、本願の諸実施形態では、非線形変換ユニットは、前述の非線形変換処理を実施するために使用され、第1の非線形演算、畳み込み処理、要素ごとの乗算演算、および要素ごとの加算演算を含む。
【0207】
本願の諸実施形態において、第1の非線形演算、畳み込み処理、および要素ごとの乗算演算については、前述の実装における説明を参照されたい。詳細は、ここでは再び説明されない。
【0208】
第4の画像特徴が得られた後、要素ごとの加算演算が、第1の画像特徴および第4の画像特徴における複数の対応する特徴値に対して実行される。言い換えれば、要素ごとの加算は、非線形変換ユニットの初期入力および要素ごとの乗算演算の出力に対して実行される。これは、次の式によって表すことができる。
sum(i,j)=a(i,j)+c(i,j)
【0209】
(i,j)は、特徴値が位置する画像特徴における特徴値のインデックスを表す。a(i,j)は、第1の画像特徴における特徴値を表す。c(i,j)は、第4の画像特徴における特徴値を表す。sum(i,j)は、処理された画像特徴における特徴値を表す。
【0210】
要素ごとの加算演算は、ヘッドおよびテールが加えられる残差構造であり、それにより、前述の処理プロセスを使用するエンコードおよびデコード・ネットワークは、トレーニング中に容易に収束することができる。
【0211】
第1の非線形演算、畳み込み処理、要素ごとの乗算演算、および要素ごとの加算演算は、次の式(2)によって表すことができる。
【数14】
【0212】
xは入力特徴値を表す。yは出力特徴値を表す。φ(xj)は、第1の非線形演算を表す。γは、畳み込み層の重みを表す。βは、畳み込み層のバイアス・パラメータを表す。
【0213】
上記の式(2)を変形すると、
【数15】
が得られる。畳み込み処理は、式(1)と比較することによって得られ、次の式として表すことができる。
conv2(x)=β+1+Σγ×x
【0214】
畳み込み処理conv1(x)は畳み込み処理conv2(x)と同様であることがわかる。相違は、畳み込み処理conv2(x)において、畳み込みパラメータに追加の1が加わっている点にある。このようにして、前述の2つの実装は、畳み込み処理における畳み込みにおける畳み込みパラメータβを微調整することによって変更されうる。具体的には、非線形変換ユニットが要素ごとの加算演算を含まない場合には、畳み込み処理conv1(x)が使用されうる。また、非線形変換ユニットが要素ごとの加算演算を含む場合には、畳み込み処理conv2(x)が使用されうる。
【0215】
ある可能な実装では、前述の第1の実装に基づいて、第2の非線形演算が第3の画像特徴に対してさらに実行されてもよく、次いで、要素ごとの乗算演算が出力処理された第3の画像特徴および前記第1の画像特徴に対して実行される。あるいはまた、前述の第2の実装に基づいて、第2の非線形演算が第3の画像特徴に対して実行されてもよく、次いで、要素ごとの乗算演算が、出力処理された第3の画像特徴および前記第1の画像特徴に対して実行される。すなわち、非線形変換処理に第2の非線形演算が加えられる。第2の非線形演算の入力は、非線形変換処理における畳み込み処理の出力である。第2の非線形演算の出力は、要素ごとの乗算演算の入力として使用される。
【0216】
図10cは、注目機構を有する残差非線形変換ユニットの構造を概略図である。
図10cに示されるように、本願の諸実施形態では、非線形変換ユニットは、前述の非線形変換処理を実施するために使用され、第1の非線形演算、畳み込み処理、第2の非線形演算、および要素ごとの乗算演算を含む。
【0217】
第1の非線形演算、畳み込み処理、および要素ごとの乗算演算については、
図10aに示された実施形態の説明を参照されたい。詳細は、ここでは再び説明されない。第2の非線形演算と第1の非線形演算は、同じ演算方法を用いてもよいし、異なる演算方法を用いてもよい。第2の非線形演算は、絶対値演算、ReLU、LeakyReLUなどを含んでいてもよい。これは、本願の実施形態において特に限定されない。
【0218】
第1の非線形演算、畳み込み処理、第2の非線形演算、および要素ごとの乗算演算は、次の式(3)によって表すことができる。
【数16】
【0219】
xは入力特徴値を表す。yは出力特徴値を表す。φ1(xj)は、第1の非線形演算を表す。φ2(xj)は、第2の非線形演算を表す。γは、畳み込み層の重みを表す。βは、畳み込み層のバイアス・パラメータを表す。
【0220】
図10dは、注目機構を有する非線形変換ユニットの構造の概略図である。
図10dに示されるように、本願の諸実施形態では、非線形変換ユニットは、前述の非線形変換処理を実施するために使用され、第1の非線形演算、畳み込み処理、第2の非線形演算、要素ごとの乗算演算、および要素ごとの加算演算を含む。
【0221】
第1の非線形演算、畳み込み処理、要素ごとの乗算演算、および要素ごとの加算演算については、
図10bに示された実施形態の説明を参照されたい。詳細は、ここでは再び説明されない。第2の非線形演算と第1の非線形演算は、同じ演算方法を用いてもよいし、異なる演算方法を用いてもよい。第2非線形演算は、絶対値演算、ReLU、LeakyReLUなどを含んでいてもよい。これは、本願の実施形態において特に限定されない。
【0222】
第2の非線形演算が区分的線形マッピングを使用することによって実装されるとき、区分的線形マッピングは、異なるセグメント数を使用しうる。各セグメント上のマッピング勾配は、トレーニングを通して決定されてもよく、または直接指定されてもよい。入力特徴画像の各チャネルについて異なる区分的線形関数が使用されてもよく、または、すべてのチャネルについて同じ区分的線形関数が使用されてもよく、または、いくつかのチャネルを処理するために同じ区分的線形関数が使用されてもよい。この実装では、モデル・トレーニングが完了した後、残差構造はもはや畳み込みとマージされないが、区分的線形関数とマージされてもよい。具体的には、もとの区分的線形関数の出力を1増加させて、新たな区分的線形関数を形成する。
【0223】
第1の非線形演算、畳み込み処理、第2の非線形演算、要素ごとの乗算演算、および要素ごとの加算演算は、次の式(4)によって表されうる。
【数17】
【0224】
xは入力特徴値を表す。yは出力特徴値を表す。φ1(xj)は、第1の非線形演算を表す。φ2(xj)は、第2の非線形演算を表す。γは、畳み込み層の重みを表す。βは、畳み込み層のバイアス・パラメータを表す。
【0225】
段階903:処理された画像特徴に基づいてエンコードを実行して、ビットストリームを得る。
【0226】
処理された画像特徴が取得された後、エンコーダ側は、処理された画像特徴に対して畳み込み処理を実行することに進んでもよく、または、畳み込み処理の後、畳み込み処理の出力に対して非線形変換処理を再び実行し、次いで、前述の処理の結果に対してエントロピー・エンコードを実行して、ビットストリームを得てもよい。エントロピー・エンコードは、
図4ないし
図8に示される実施形態におけるエントロピー・エンコード・ネットワークを使用することによって実装されうる。詳細は、ここでは再び説明されない。あるいはまた、前述の処理の結果は、別のエンコード方式でエンコードされて、ビットストリームが得られてもよい。これは、本願において限定されない。
【0227】
図13は、エンコード・ネットワークの構造の概略図である。
図13に示されるように、エンコード・ネットワークは、4つの畳み込み層(conv)と3つの非線形変換ユニットとを含む。畳み込み層と非線形変換ユニットは、交差的に配置される。具体的には、入力画像に対して、畳み込み処理、非線形変換処理、畳み込み処理、非線形変換処理、畳み込み処理、非線形変換処理、畳み込み処理が順次実行されて、出力画像特徴が得られる。非線形変換ユニットは、
図10aまたは
図10bに示される実施形態の構造を使用することができる。次いで、出力画像特徴に対してエントロピー・エンコードが実行される。詳細は、ここでは再び説明されない。
【0228】
本願の諸実施形態では、デコード・ネットワークにおける非線形変換処理が変更され、それにより、各入力特徴値について、周囲の特徴値の影響を考慮することなく、入力特徴値の特徴のみに基づいて出力値が得られる。また、もとの特徴値が洗練され、重要な特徴値がハイライトされ、冗長な特徴値が抑制される。加えて、第1の画像特徴における各特徴値の値は、さらに洗練されてもよく、それにより、畳み込みパラメータに対する制限を回避し、エンコード・ネットワークにおける効率的な非線形変換処理を実施し、画像/ビデオ圧縮アルゴリズムのレート‐歪み性能をさらに改善する。
【0229】
図14は、本願のある実施形態による画像デコード方法のプロセス1300のフローチャートである。プロセス1300は、前述の実施形態においてデコーダ側によって実行されてもよい。プロセス1300は、一連の段階または動作として説明される。プロセス1300の段階または動作は、
図14に示される実行シーケンスに限定されず、さまざまなシーケンスで、および/または同時に実行されうることを理解されたい。プロセス1300は、以下の段階を含む。
【0230】
段階1301:処理されるべき第1の画像特徴を取得する。
【0231】
デコーダ側はエンコーダ側に対応する。第1の画像特徴は、デコーダ側がビットストリームに対してエントロピー・デコードを実行した後に取得されてもよい。エントロピー・デコードは、
図4ないし
図8に示される実施形態におけるエントロピー・デコード・ネットワークを使用することによって実施されうる。詳細は、ここでは再び説明されない。そして、畳み込み処理、脱畳み込み処理、転置畳み込み処理、補間+畳み込み処理、変換器処理等などが実行される。前述の処理の後、出力される第1の画像特徴のサイズが復元され(これはエンコーダ側に対して鏡映対称である)、入力画像特徴のサイズが変化してもよく、チャネルの数が変化してもよい、などであることを理解されたい。これは特に限定されない。上記の処理は、
図9に示される実施形態における段階901における変換態様と逆である。
【0232】
同様に、第1の画像特徴は、2次元行列または3次元行列の形で表されてもよい。原理については、段階901の説明を参照されたい。詳細は、ここでは再び説明されない。
【0233】
段階1302:第1の画像特徴に対して非線形変換処理を実行して、処理された画像特徴を得る。
【0234】
ある可能な実装では、第1の非線形演算は、第1の画像特徴における各特徴値に対して実行されて、第2の画像特徴が得られる。第2の画像特徴に対して畳み込み処理が実行されて第3の画像特徴が得られ、ここで、第3の画像特徴における複数の特徴値は、第1の画像特徴における複数の特徴値に対応する。要素ごとの乗算演算が、第1の画像特徴および第3の画像特徴における複数の対応する特徴値に対して実行されて、処理された画像特徴が得られる。
【0235】
この実施形態については、
図10aに示される実施形態を参照されたい。詳細は、ここでは再び説明されない。
【0236】
ある可能な実装では、第1の非線形演算は、第1の画像特徴における各特徴値に対して実行されて、第2の画像特徴が得られる。第2の画像特徴に対して畳み込み処理が実行されて第3の画像特徴が得られ、ここで、第3の画像特徴における複数の特徴値は、第1の画像特徴における複数の特徴値に対応する。第1の画像特徴および第3の画像特徴における複数の対応する特徴値に対して要素ごとの乗算演算が実行されて第4の画像特徴が得られ、ここで、第4の画像特徴における複数の特徴値は、第1の画像特徴における複数の特徴値に対応する。要素ごとの加算演算は、第1の画像特徴および第4の画像特徴における複数の対応する特徴値に対して実行されて、処理された画像特徴が得られる。
【0237】
この実施形態については、
図10bに示される実施形態を参照されたい。詳細は、ここでは再び説明されない。
【0238】
段階1303:処理された画像特徴に基づいて、再構成された画像を得る。
【0239】
処理された画像特徴が得られた後、デコーダ側は、処理された画像特徴に対して畳み込み処理を実行することに進んでもよく、または、畳み込み処理の後に畳み込み処理の出力に対して前記非線形変換処理を再び実行して、処理された画像特徴を特徴領域から画像領域に変換して、再構成画像を得てもよい。
【0240】
図15は、デコード・ネットワークの構造の概略図である。
図15に示されるように、デコード・ネットワークは、4つの脱畳み込み層(Deconv)と3つの非線形変換ユニットとを含む。前記脱畳み込み層と前記非線形変換ユニットは、交差的に配置される。具体的には、入力画像に対して、脱畳み込み処理、非線形変換処理、脱畳み込み処理、非線形変換処理、脱畳み込み処理、非線形変換処理、脱畳み込み処理が順次実行されて、再構成画像が得られる。非線形変換ユニットは、
図10aまたは
図10bに示される実施形態の構造を使用することができる。次いで、出力画像特徴に対してエントロピー・デコードが実行される。詳細は、ここでは再び説明されない。
【0241】
本願の諸実施形態では、デコード・ネットワークにおける非線形変換処理が変更され、それにより、各入力特徴値について、周囲の特徴値の影響を考慮することなく、入力特徴値の特徴のみに基づいて、出力値が得られる。また、もとの特徴値が洗練され、重要な特徴値がハイライトされ、冗長な特徴値が抑制される。加えて、第1の画像特徴における各特徴値の値は、さらに洗練されてもよく、それにより、畳み込みパラメータに対する制限を回避し、エンコード・ネットワークにおける効率的な非線形変換処理を実施し、画像/ビデオ圧縮アルゴリズムのレート‐歪み性能をさらに改善する。
【0242】
本願の実施形態は、エンコード/デコード・ネットワークのトレーニング態様をさらに提供し、それは、まず、エンコーダencoder、デコーダdecoder、およびエントロピー推定ユニットを含むエンドツーエンドのエンコード/デコード・ネットワークを構築することを含むことができることに留意されたい。トレーニング中、エンコードおよびデコード・ネットワークは全体として考慮され、トレーニング・データ(画像またはビデオ)がエンコーダに入力されて特徴データが得られる。一方では、特徴データは、エントロピー推定ユニットを使用することによってエンコード・ビットレート・オーバーヘッドを計算して、ビットレート損失を得る。他方では、特徴データは、デコーダ側を使用することによって、再構成されたデータを出力し、再構成されたデータおよび入力データについて歪み度が計算され、歪み損失が得られる。逆伝搬アルゴリズムは、ビットレート損失および歪み損失によって形成される重み付き損失に基づいて、モデル内の学習可能なパラメータを更新する。トレーニングが完了した後、モデル内のすべてのサブモジュールのパラメータが固定される。
【0243】
その後、エンコーダ(encoder)およびエントロピー推定ユニットがエンコーダ側に分割され、エンコードされるべきデータをビットストリーム・ファイルにエンコードするように構成される。デコーダおよびエントロピー推定ユニットは、デコーダ側に分割され、ビットストリーム・ファイルからデータを再構成するように構成される。
【0244】
以下では、いくつかの具体的な実施形態を使用することによって、前述の画像エンコード方法を説明する。本願の諸実施形態において提供される非線形変形ユニットは、以下ではResAUと呼ばれる。
【実施例1】
【0245】
実施形態1
図16aは、ResAUの構造の例示的な概略図である。
図16aに示されるように、ResAUは、
図10bに示される構造を使用し、第1の非線形演算、畳み込み処理、要素ごとの乗算演算、および要素ごとの加算演算を含む。第1の非線形演算については絶対値演算(abs)が用いられる。ResAUは、
図13に示されるエンコード・ネットワークまたは
図15に示されるデコード・ネットワークにおいて使用されうる。
【0246】
式(2)に基づいて、この実施形態におけるResAUは、以下の式によって表されうる。
yi=xi*(βi+Σjγij|xj|)+xi
【0247】
圧縮性能試験が、
図16aに示されるResAUに対して行われる。
【0248】
試験セット:Kodak試験セットは、768×512または512×768の解像度をもつ24個のポータブルネットワークグラフィックス(portable network graphics、PNG)画像を含む。
【0249】
実験:
図16aに示されるResAUは、ハイブリッド・ガウシアン・スーパー事前エントロピー推定を有するエンコード/デコード・ネットワーク構造において使用される。
【0250】
実験に対応する性能:
図17aは、Kodak試験セットにおける24個の画像に対するResAUの全体的な性能を示す。現在主流のGDN非線形ユニットと比較して、ResAUを使用するGMMネットワークのRD性能は、同じ計算量ベースでは、より良好である。より具体的には、同じデコード再構成の質が達成されるとき、GMMエンコード/デコード・ネットワークにおいてResAUを使用することは、ReLUを使用することと比較して約12%のエンコード・ビットレート・オーバーヘッドを節約することができ、GDNを使用することと比較して約5%のエンコード・ビットレート・オーバーヘッドを節約することができる。
【0251】
性能分析:本願の実施形態において提供されるResAUにおいて、絶対値演算を使用することによって非線形特徴を導入することは、実現可能な解決策である。基本的なGMM構造に基づいて、ResAUは、GDNよりも良好なレート‐歪み性能を達成することができる。
【実施例2】
【0252】
実施形態2
図16bは、ResAUの構造の例示的な概略図である。
図16bに示されるように、ResAUは、
図10bに示される構造を使用し、第1の非線形演算、畳み込み処理、要素ごとの乗算演算、および要素ごとの加算演算を含む。第1の非線形演算には、ReLU演算が用いられる。ResAUは、
図13に示されるエンコード・ネットワークまたは
図15に示されるデコード・ネットワークにおいて使用されうる。
【0253】
式(2)に基づいて、この実施形態におけるResAUは、次の式によって表されうる。
yi=xi*(βi+Σjγijφ(xj))+xi
【0254】
圧縮性能試験が、
図16bに示されるResAUに対して実行される。
【0255】
試験セット:24個のKodak試験画像。
【0256】
実験:
図16bに示されるResAUが、ハイブリッド・ガウシアン・スーパー事前エントロピー推定を有するエンコード/デコード・ネットワーク構造において使用される。本実験では、ResAUにおける非線形演算がReLUおよびLeakyReLUでそれぞれ置き換えられている。比較実験は、非線形演算なしでの恒等解と、実施形態1で説明した絶対値演算を用いるResAU解とを含む。
【0257】
実験に対応する性能:
図17bは、Kodak試験セットにおける24個の画像に対するResAUの全体的な性能を示す。RD曲線から、非線形演算を使用しない恒等解と比較して、要素ごとの非線形演算を使用することは、画像圧縮ネットワークのレート‐歪み性能を大幅に改善できることがわかる。ReLUクラスの非線形演算の効果は、絶対値演算の非線形演算の効果よりもやや優れている。
【実施例3】
【0258】
実施形態3
図16cは、ResAUの構造の例示的な概略図である。
図16cに示されるように、ResAUは、
図10dに示される構造を使用し、第1の非線形演算、畳み込み処理、第2の非線形演算、要素ごとの乗算演算、および要素ごとの加算演算を含む。第1の非線形演算と第2の非線形演算の両方がPWL演算である。ResAUは、
図13に示されるエンコード・ネットワークまたは
図15に示されるデコード・ネットワークにおいて使用されうる。
【0259】
ResAUは、区分的線形PWL関数を使用することによって非線形特徴を導入し、畳み込み、区分的線形PWL関数、および要素ごとの乗算演算を使用することによって局所注目機構を実装し、局所情報を使用して、特徴マップ内の各位置における各チャネル上の応答を補正する。要素ごとの乗算演算は、GDNにおける学習可能なパラメータ値の限られた空間の問題を回避しうる。また、ヘッドとテールが加えられた残差接続は、トレーニングの際にネットワークが収束しやすくすることができる。
【0260】
式(4)に基づいて、この実施形態におけるResAUは、次の式によって表されうる。
yi=xi*φ2(βi+Σjγijφ(xj))+xi
【0261】
φ1(・)およびφ2(・)の両方がPWL関数である。γは畳み込み層の重みであり、βは畳み込み層のオフセット・パラメータであり、両方のパラメータは、値の範囲が限定されない学習可能なパラメータである。
【0262】
この構造に含まれる演算の機能は、以下の通りである。
【0263】
第1のPWL演算:この関数は区分的線形関数であり、全体的な変換について非線形特徴を提供することができる。この演算の効果の下で、入力データの各値は、その値が位置する数値区間および異なるマッピング関係に基づいて計算されて、出力値が得られる。ある入力特徴について、異なるチャネル次元の特徴マップは、同じ区分的線形マッピング関数または異なる区分的線形マッピング関数を使用することによって計算されうる。PWL関数のパラメータは、事前設定された値であってもよく、またはトレーニングおよび学習を通じて得られてもよい。
【0264】
畳み込み処理:ResAUでは、畳み込み処理の入力は非線形演算の出力である。入力テンソルに対して畳み込み処理を行うことにより、固定サイズのテンソルが得られ、出力テンソルは、入力テンソルに対する局所応答とみなすことができる。
【0265】
第2のPWL演算:この関数は区分的線形関数であり、畳み込みの出力をスケーリングしてマッピングし、全体的な変換に非線形特徴を提供することができる。この演算の効果の下で、入力データの各値は、その値が位置する数値区間および異なるマッピング関係に基づいて計算されて、出力値が得られる。入力特徴について、異なるチャネル次元の特徴マップは、同じ区分的線形マッピング関数または異なる区分的線形マッピング関数を使用することによって計算されうる。PWL関数のパラメータは、事前設定された値であってもよく、またはトレーニングおよび学習を通じて得られてもよい。
【0266】
要素ごとの乗算演算:ResAUでは、要素ごとの乗算演算の入力は、当該ユニットのもとの入力と畳み込み処理の出力である。2つの入力テンソルのサイズは同じであり、対応する位置のデータに対して乗算演算が実行される。出力テンソルのサイズも入力テンソルのサイズと同じである。畳み込み処理と要素ごとの乗算演算とが組み合わされて、局所注目機構を実現し、入力特徴の局所情報が、特徴マップ内の各位置の応答を補正するために使用される。加えて、要素ごとの乗算演算は、現在の画像ビデオ圧縮ネットワークにおけるGDNにおける主流の非線形ユニットの学習可能なパラメータ値の限られた空間の問題を回避する。
【0267】
要素ごとの加算演算:ResAUでは、要素ごとの加算演算の入力は、当該ユニットのもとの入力および要素ごとの乗算演算の出力である。この演算は、ヘッドとテールが加えられた残差構造であり、そのため、非線形ユニットを使用するエンコードおよびデコード・ネットワークは、トレーニング中に容易に収束することができる。
【0268】
本実施形態で説明される区分的線形PWL関数を使用する残差注目非線形ユニットは、ディープニューラルネットワークに基づくエンドツーエンド画像圧縮ネットワークおよびビデオ圧縮ネットワークにおいて使用されうる。より具体的には、残差注目非線形ユニットは、一般に、エンドツーエンド画像圧縮ネットワークにおけるエンコード・モジュール(エンコーダ)およびデコード・モジュール(デコーダ)において使用され、エンドツーエンドのビデオ圧縮ネットワークの予測サブネットワークおよび残差圧縮サブネットワークのエンコード・モジュールおよびデコード・モジュールにおいて使用される。
【0269】
実験は、スーパー先験構造に基づいて、共通のエンドツーエンドのエンコードおよびデコード・ネットワーク上で実行される。この実施形態では、第1のPWL演算の事前設定値がLeaky ReLU関数であり、第2のPWL演算のセグメントの数が6であり、チャネル次元グループ化粒度が1である(すなわち、すべてのチャネルの特徴が異なる区分的線形関数を使用して出力値を計算する)とき、畳み込み演算後に非線形演算を実施するためにTanhが使用される解決策におけるものと比較して、圧縮比歪み性能を0.506%改善することができる。この実施形態では、第1のPWL演算の事前設定値がLeaky ReLU関数であり、第2のPWL演算のセグメントの数が6であり、チャネル次元グループ化粒度が8である(すなわち、8つのチャネルごとを単位として使用することによって特徴がグループ化され、同じグループ内のすべてのチャネルが同じ区分的線形関数を使用して出力値を計算する)とき、圧縮比歪み性能は、畳み込み演算の後に非線形演算を実施するためにTanhが使用される解決策におけるものと比較して0.488%低下する。この実施形態では、第1のPWL演算の事前設定値がLeaky ReLU関数であり、第2のPWL演算のセグメントの数が6であり、チャネル次元がグループ化されない(すなわち、同じ区分的線形関数が、すべてのチャネルの特徴についての出力値を計算するために使用される)とき、圧縮比歪み性能は、畳み込み演算の後に非線形演算を実施するためにTanhが使用される解決策におけるものと比較して0.659%低下する。
【0270】
任意的に、
図16dは、ResAUの構造の例示的な概略図である。
図16dに示されるように、ResAUは、
図10dに示される構造を使用し、第1の非線形演算、畳み込み処理、第2の非線形演算、要素ごとの乗算演算、および要素ごとの加算演算を含む。第1の非線形演算はLeaky ReLUであり、第2の非線形演算はTanhである。畳み込み処理はconv1×1であってもよく、conv1×1は、畳み込みカーネル(または畳み込み演算子)のサイズが1×1であることを示す。ResAUは、
図13に示されるエンコード・ネットワークまたは
図15に示されるデコード・ネットワークにおいて使用されうる。
【実施例4】
【0271】
実施形態4
図16eは、ResAUの構造の例示的な概略図である。
図16eに示されるように、ResAUは、
図10cに示される構造を使用し、第1の非線形演算、畳み込み処理、第2の非線形演算、および要素ごとの乗算演算を含む。第1の非線形演算と第2の非線形演算の両方がPWL演算である。ResAUは、
図13に示されるエンコード・ネットワークまたは
図15に示されるデコード・ネットワークにおいて使用されうる。
【0272】
式(3)に基づいて、この実施形態におけるResAUは、次の式によって表されうる。
yi=xi*φ2(βi+Σjγijφ(xj))
【0273】
φ1(・)およびφ2(・)の両方がPWL関数である。γは畳み込み層の重みであり、βは畳み込み層のオフセット・パラメータであり、両方のパラメータは、値の範囲が限定されない学習可能なパラメータである。
【0274】
この構造に含まれる動作の機能は、以下の通りである。
【0275】
第1のPWL演算:この関数は区分的線形関数であり、全体的な変換について非線形特徴を提供することができる。この演算の効果の下で、入力データの各値は、その値が位置する数値区間および異なるマッピング関係に基づいて計算されて、出力値が得られる。入力特徴について、異なるチャネル次元の特徴マップは、同じ区分的線形マッピング関数または異なる区分的線形マッピング関数を使用することによって計算されうる。PWL関数のパラメータは、事前設定された値であってもよく、またはトレーニングおよび学習を通じて取得されてもよい。
【0276】
畳み込み処理:ResAUでは、畳み込み処理の入力は非線形演算の出力である。入力テンソルに対して畳み込み処理を実行することにより、固定サイズのテンソルが得られ、出力テンソルは、入力テンソルに対する局所応答とみなすことができる。
【0277】
第2のPWL演算:この関数は区分的線形関数であり、畳み込みの出力をスケーリングしてマッピングし、全体的な変換について非線形特徴を提供することができる。この演算の効果の下で、入力データの各値は、その値が位置する数値区間および異なるマッピング関係に基づいて計算されて、出力値が得られる。入力特徴について、異なるチャネル次元の特徴マップは、同じ区分的線形マッピング関数または異なる区分的線形マッピング関数を使用することによって計算されうる。PWL関数のパラメータは、事前設定された値であってもよく、またはトレーニングおよび学習を通じて得られてもよい。
【0278】
要素ごとの乗算演算:ResAUでは、要素ごとの乗算演算の入力は、当該ユニットのもとの入力と畳み込み処理の出力である。2つの入力テンソルのサイズは同じであり、対応する位置にあるデータに対して乗算演算が実行される。出力テンソルのサイズも入力テンソルのサイズと同じである。畳み込み処理と要素ごとの乗算演算が組み合わされて、局所注目機構を実現し、入力特徴の局所情報を用いて特徴マップ内の各位置の応答を補正する。加えて、要素ごとの乗算演算は、現在の画像ビデオ圧縮ネットワークにおけるGDNにおける主流の非線形ユニットの学習可能なパラメータ値の限られた空間の問題を回避する。
【0279】
本実施形態で説明される、残差のない構造を使用し、区分的線形関数を使用する注目非線形ユニットは、ディープニューラルネットワークに基づく、エンドツーエンド画像圧縮ネットワークおよびビデオ圧縮ネットワークにおいて、使用されうる。より具体的には、注目非線形ユニットは、一般に、エンドツーエンド画像圧縮ネットワークにおけるエンコード・モジュール、エンコーダおよびデコード・モジュール、デコーダにおいて使用され、エンドツーエンドビデオ圧縮ネットワークの予測サブネットワークおよび残差圧縮サブネットワークのエンコード・モジュールおよびデコード・モジュールにおいて使用される。さらに、本実施形態で説明される、残差なし構造を使用し、区分的線形関数を使用する注目非線形ユニットは、区分的線形関数を使用する残差注目非線形ユニットを使用することによる変換を通じて取得されうる。トレーニングが完了した後、第2のPWL演算と、区分的線形関数を使用する残差注目非線形ユニットにおける要素ごとの加算演算とが組み合わされて(すなわち、第2のPWL演算の出力全体に1を加算して新しいPWL関数を形成し、要素ごとの加算演算を除去する)、残差なし構造を使用し、区分的線形関数を使用する対応する注目非線形ユニットを得ることができる。
【0280】
スーパー先験構造に基づいて、共通のエンドツーエンド・エンコードおよびデコード・ネットワーク上で実験が実行される。トレーニングが完了した後、実施形態4に対応する実験における残差注目非線形ユニットは、本実施形態で説明される残差なし構造を使用する非線形ユニットに変換され、それにより、実施形態4に対応する解決策におけるのと同じエンコードおよびデコード効果が得られる。
【0281】
この実施形態では、第1のPWL演算の事前設定値がLeaky ReLU関数であり、第2のPWL演算のセグメントの数が6であり、チャネル次元グループ化粒度が1である(すなわち、すべてのチャネルの特徴が異なる区分的線形関数を使用して出力値を計算する)とき、畳み込み演算の後に非線形演算を実施するためにTanhが使用される解決策と比較して、圧縮比歪み性能が0.506%改善できる。さらに、この実施形態における解決策は、要素ごとの加算演算における計算時間消費および電力消費を低減することができる。
【0282】
この実施形態では、第1のPWL演算の事前設定値がLeaky ReLU関数であり、第2のPWL演算のセグメントの数が6であり、チャネル次元グループ化粒度が8である(すなわち、8つのチャネルごとを単位として使用することによって特徴がグループ化され、同じグループ内のすべてのチャネルが同じ区分的線形関数を使用して出力値を計算する)とき、圧縮比歪み性能は、畳み込み演算の後に非線形演算を実施するためにTanhが使用される解決策におけるものと比較して0.488%低下する。さらに、この実施形態における解決策は、要素ごとの加算演算における計算時間消費および電力消費を低減することができる。
【0283】
この実施形態では、第1のPWL演算の事前設定値がLeaky ReLU関数であり、第2のPWL演算のセグメントの数が6であり、チャネル次元がグループ化されない(すなわち、同じ区分的線形関数が、すべてのチャネルの特徴についての出力値を計算するために使用される)とき、圧縮比歪み性能は、畳み込み演算の後に非線形演算を実施するためにTanhが使用される解決策におけるものと比較して0.659%低下する。さらに、この実施形態における解決策は、要素ごとの加算演算における計算時間消費および電力消費を低減することができる。
【0284】
図18は、本願のある実施形態によるエンコード装置1700の構造の概略図である。
図18に示されるように、この実施形態における装置1700は、エンコーダ側で使用されてもよい。装置1700は、取得モジュール1701、変換モジュール1702、エンコード・モジュール1703、およびトレーニング・モジュール1704を含みうる。具体的には:
【0285】
取得モジュール1701は、処理されるべき第1の画像特徴を取得するように構成される。変換モジュール1702は、第1の画像特徴に対して非線形変換処理を実行して、処理された画像特徴を得るように構成され、非線形変換処理は、第1の非線形演算、畳み込み処理、および要素ごとの乗算演算を順次含む。エンコード・モジュール1703は、処理された画像特徴に基づいてエンコードを実行してビットストリームを得るように構成される。
【0286】
ある可能な実装では、変換モジュール1702は具体的には、第1の画像特徴における各特徴値に対して第1の非線形演算を実行して第2の画像特徴を得る段階と、第2の画像特徴に対して畳み込み処理を実行して第3の画像特徴を得る段階であって、第3の画像特徴における複数の特徴値は、第1の画像特徴における複数の特徴値に対応する、段階と、第1の画像特徴および第3の画像特徴における複数の対応する特徴値に対して要素ごとの乗算演算を実行して、処理された画像特徴を得る段階とを実行するように構成される。
【0287】
ある可能な実装では、非線形変換処理は、要素ごとの乗算演算の後に要素ごとの加算演算をさらに含む。
【0288】
ある可能な実装では、変換モジュール1702は具体的には、第1の画像特徴における各特徴値に対して第1の非線形演算を実行して第2の画像特徴を取得する段階と、第2の画像特徴に対して畳み込み処理を実行して第3の画像特徴を取得する段階であって、第3の画像特徴における複数の特徴値は、第1の画像特徴における複数の特徴値に対応する、段階と、第1の画像特徴および第3の画像特徴における複数の対応する特徴値に対して要素ごとの乗算演算を実行して、第4の画像特徴を得る段階であって、第4の画像特徴における複数の特徴値は第1の画像特徴における複数の特徴値に対応する、段階と、第1の画像特徴および第4の画像特徴における複数の対応する特徴値に対して要素ごと加算算演算を実行して、処理された画像特徴を得るように構成される。
【0289】
ある可能な実装では、非線形変換処理は、畳み込み処理と要素ごとの乗算演算との間に第2の非線形演算をさらに含む。第2の非線形演算は、第1の非線形演算と同じであるか、または異なる。
【0290】
ある可能な実装では、非線形演算は、区分的線形マッピング、たとえば、ReLU、LeakyReLU、PWL、およびAbsを含む。別の可能な実装では、非線形演算は、連続関数、たとえば、Tanhまたはシグモイドを含む。別の可能な実装では、非線形演算は区分的非線形演算を含む。
【0291】
ある可能な実装では、本装置は、トレーニング・フェーズにおいて非線形変換ユニットを構築する段階であって、トレーニング・フェーズにおける非線形変換ユニットは、第1の非線形演算層、畳み込み処理層、要素ごとの乗算演算層、および要素ごとの加算演算層を含む、段階と;事前取得されたトレーニング・データに基づいてトレーニングを実行して、トレーニングされた非線形変換ユニットを得る段階であって、トレーニングされた非線形変換ユニットは、非線形変換処理を実施するために使用される、段階とを実行するように構成されたトレーニング・モジュール1704をさらに含む。
【0292】
この実施形態における装置は、
図9に示される方法実施形態における技術的解決策を実行するように構成されてもよく、その実装原理および技術的効果は同様である。詳細は、ここでは再び説明されない。
【0293】
図19は、本願のある実施形態によるデコード装置1800の構造の概略図である。
図19に示されるように、この実施形態における装置1800は、デコーダ側で使用されてもよい。装置1800は、取得モジュール1801、変換モジュール1802、再構成モジュール1803、およびトレーニング・モジュール1804を含みうる。具体的には:
【0294】
取得モジュール1801は、処理されるべき第1の画像特徴を取得するように構成される。変換モジュール1802は、第1の画像特徴に対して非線形変換処理を実行して、処理された画像特徴を得るように構成され、非線形変換処理は、第1の非線形演算、畳み込み処理、および要素ごとの乗算演算を含む。再構成モジュール1803は、処理された画像特徴に基づいて再構成画像を得るように構成される。
【0295】
ある可能な実装では、変換モジュール1802は具体的には、第1の画像特徴における各特徴値に対して第1の非線形演算を実行して第2の画像特徴を得る段階と、第2の画像特徴に対して畳み込み処理を実行して第3の画像特徴を得る段階であって、第3の画像特徴における複数の特徴値は、第1の画像特徴における複数の特徴値に対応する、段階と、第1の画像特徴および第3の画像特徴における複数の対応する特徴値に対して要素ごとの乗算演算を実行して、処理された画像特徴を得る段階とを実行するように構成される。
【0296】
ある可能な実装では、非線形変換処理は、要素ごとの乗算演算の後に要素ごとの加算演算をさらに含む。
【0297】
ある可能な実装では、変換モジュール1802は具体的には、第1の画像特徴における各特徴値に対して第1の非線形演算を実行して第2の画像特徴を取得する段階と、第2の画像特徴に対して畳み込み処理を実行して第3の画像特徴を取得する段階であって、第3の画像特徴における複数の特徴値は、第1の画像特徴における複数の特徴値に対応する、段階と、第1の画像特徴および第3の画像特徴における複数の対応する特徴値に対して要素ごとの乗算演算を実行して、第4の画像特徴を得る段階であって、第4の画像特徴における複数の特徴値は第1の画像特徴における複数の特徴値に対応する、段階と、第1の画像特徴および第4の画像特徴における複数の対応する特徴値に対して要素ごとの加算演算を実行して、処理された画像特徴を得るように構成される。
【0298】
ある可能な実装では、非線形変換処理は、畳み込み処理と要素ごとの乗算演算との間に第2の非線形演算をさらに含む。第2の非線形演算は、第1の非線形演算と同じであるか、または異なる。
【0299】
ある可能な実装では、非線形演算は、区分的線形マッピング、たとえば、ReLU、LeakyReLU、PWL、およびAbsを含む。別の可能な実装では、非線形演算は、連続関数、たとえば、Tanhまたはシグモイドを含む。別の可能な実装では、非線形演算は区分的非線形演算を含む。
【0300】
ある可能な実装では、トレーニング・モジュール1804は、トレーニング・フェーズにおいて非線形変換ユニットを構築する段階であって、トレーニング・フェーズにおける非線形変換ユニットは、第1の非線形演算層、畳み込み処理層、要素ごとの乗算演算層、および要素ごとの加算演算層を含む、段階と、事前取得されたトレーニング・データに基づいてトレーニングを実行して、トレーニングされた非線形変換ユニットを得る段階であって、トレーニングされた非線形変換ユニットは、非線形変換処理を実施するために使用される、段階とを実行するように構成される。
【0301】
この実施形態における装置は、
図14に示される方法実施形態における技術的解決策を実行するように構成されうる。装置の実装原理および技術的効果は、方法実施形態のものと同様である。詳細は、ここでは再び説明されない。
【0302】
本願のある実施形態はビットストリームを提供する。ビットストリームは、前述の実施形態における任意のエンコード方法を実行することによってプロセッサによって生成される。
【0303】
本願のある実施形態は、ビットストリーム記憶装置を提供し、装置は、受領器と少なくとも1つの記憶媒体とを含み、受領器は、ビットストリームを受領するように構成され、少なくとも1つの記憶媒体は、ビットストリームを記憶するように構成される。ビットストリームは、前述の実施形態における任意のエンコード方法によって生成されたビットストリームである。
【0304】
本願のある実施形態は、ビットストリーム送信装置を提供し、装置は、送信機と少なくとも1つの記憶媒体とを含み、少なくとも1つの記憶媒体は、ビットストリームを記憶するように構成され、ビットストリームは、前述の実施形態における任意のエンコード方法を実行することによってプロセッサによって生成され、送信機は、ビットストリームを別の電子デバイスに送信するように構成される。任意的に、ビットストリーム送信装置は、受領機とプロセッサとをさらに含む。受領機は、ユーザー要求を受領するように構成され、プロセッサは、ユーザー要求に応答して、記憶媒体からターゲットビットストリームを選択し、ターゲットビットストリームを送るように送信機に命令するように構成される。
【0305】
本願のある実施形態は、ビットストリーム配信システムを提供し、システムは、少なくとも1つの記憶媒体とストリーミングメディアデバイスとを含み、少なくとも1つの記憶媒体は、少なくとも1つのビットストリームを記憶するように構成され、少なくとも1つのビットストリームは、第1の側面の実装のいずれか1つに従って生成されたビットストリームを含む。ストリーミングメディアデバイスは、少なくとも1つの記憶媒体からターゲットビットストリームを取得し、ターゲットビットストリームを端末側デバイスに送信するように構成され、ストリーミングメディアデバイスは、コンテンツサーバーまたはコンテンツ配信サーバーを含む。
【0306】
本願のある実施形態は、ビットストリーム配信システムを提供し、システムは、ターゲットビットストリームを取得するためのユーザーの要求を受領するように構成された通信インターフェースと、ユーザーの要求に応答してターゲットビットストリームの記憶位置を決定するように構成されたプロセッサとを含む。通信インターフェースは、ターゲットビットストリームの記憶位置をユーザーに送信するようにさらに構成され、それにより、ユーザーは、ターゲットビットストリームの記憶位置からターゲットビットストリームを取得する。ここで、ターゲットビットストリームは、前述の実施形態における任意のエンコード方法を実行することによってプロセッサによって生成される。
【0307】
ある実装プロセスでは、前述の方法の実施形態における段階は、プロセッサ内のハードウェア集積論理回路を使用することによって、またはソフトウェアの形の命令を使用することによって実装されうる。プロセッサは、汎用プロセッサ、デジタル信号プロセッサ(digital signal processor、DSP)、特定用途向け集積回路(application-specific integrated circuit、ASIC)、フィールドプログラマブルゲートアレイ(field programmable gate array、FPGA)もしくは別のプログラマブル論理デバイス、離散的ゲートもしくはトランジスタ論理デバイス、または離散的ハードウェアコンポーネントであってもよい。汎用プロセッサはマイクロプロセッサであってもよく、またはプロセッサは任意の従来のプロセッサなどであってもよい。本願の実施形態において開示される方法の段階は、ハードウェアエンコードプロセッサによって実行され、完了されるものとして直接提示されてもよく、または、エンコードプロセッサ内のハードウェアとソフトウェアモジュールとの組み合わせによって実行され、完了されてもよい。ソフトウェアモジュールは、ランダムアクセスメモリ、フラッシュメモリ、読み出し専用メモリ、プログラマブル読み出し専用メモリ、電気的に消去可能なプログラマブルメモリ、またはレジスタなど、当技術分野における成熟した記憶媒体内に位置してもよい。記憶媒体はメモリ内に位置し、プロセッサはメモリ内の情報を読み、プロセッサのハードウェアと組み合わせて前述の方法における段階を完了する。
【0308】
前述の実施形態におけるメモリは、揮発性メモリまたは不揮発性メモリであってよく、あるいは揮発性メモリと不揮発性メモリの両方を含んでよい。不揮発性メモリは、読み出し専用メモリ(read-only memory、ROM)、プログラマブル読み出し専用メモリ(programmable ROM、PROM)、消去可能なプログラマブル読み出し専用メモリ(erasable PROM、EPROM)、電気的に消去可能なプログラマブル読み出し専用メモリ(electrically EPROM、EEPROM)、またはフラッシュメモリであってもよい。揮発性メモリは、外部キャッシュとして使用されるランダムアクセスメモリ(random access memory、RAM)であってよい。限定ではなく例として、多くの形のRAM、たとえば、スタティックランダムアクセスメモリ(static RAM、SRAM)、ダイナミックランダムアクセスメモリ(dynamic RAM、DRAM)、同期型ダイナミックランダムアクセスメモリ(synchronous DRAM、SDRAM)、ダブルデータレート同期型ダイナミックランダムアクセスメモリ(double data rate SDRAM、DDR SDRAM)、向上同期型ダイナミックランダムアクセスメモリ(enhanced SDRAM、ESDRAM)、同期型リンクダイナミックランダムアクセスメモリ(synchlink DRAM、SLDRAM)、およびダイレクトラムバスダイナミックランダムアクセスメモリ(direct rambus RAM、DR RAM)が使用されうる。本明細書に記載されたシステムおよび方法のメモリは、これらおよび別の適切なタイプの任意のメモリを含むが、これらに限定されないことに留意されたい。
【0309】
当業者は、本明細書に開示された実施形態に記載された例と組み合わせて、ユニットおよびアルゴリズム段階が、電子ハードウェア、またはコンピュータソフトウェアと電子ハードウェアとの組み合わせによって実装されうることを認識しうる。機能がハードウェアによって実行されるか、ソフトウェアによって実行されるかは、技術的解決策の特定の用途および設計上の制約に依存する。当業者は、各特定の用途について説明された機能を実装するために異なる方法を使用してもよいが、その実装が本願の実施形態の範囲を超えると考えられるべきではない。
【0310】
当業者であれば、簡便な説明のために、前述のシステム、装置、およびユニットの詳細な動作プロセスについては、前述の方法の実施形態における対応する手順を参照することが明確に理解されよう。詳細は、本明細書では再び説明されない。
【0311】
本願の実施形態において提供されるいくつかの実施形態において、開示されるシステム、装置、および方法は、他の方式で実装されうることを理解されたい。たとえば、説明された装置の実施形態は、単なる例である。たとえば、ユニットへの分割は、単に論理的な機能分割であり、実際の実装では他の分割であってもよい。たとえば、複数のユニットまたはコンポーネントは、別のシステムに組み合わされてもよく、または統合されてもよく、またはいくつかの特徴は無視されてもよく、または実行されなくてもよい。加えて、表示された、または論じられた相互結合または直接結合または通信接続は、いくつかのインターフェースを使用することによって実装されうる。装置またはユニット間の間接的な結合または通信接続は、電子的、機械的、または他の形態で実装されうる。
【0312】
別個の部分として説明されたユニットは、物理的に別個であってもなくてもよく、ユニットとして表示された部分は、物理的なユニットであってもなくてもよく、1つの位置に配置されてもよく、または複数のネットワークユニット上に分散されてもよい。ユニットの一部または全部は、実施形態の解決策の目的を達成するために実際の要件に基づいて選択されうる。
【0313】
加えて、本願の実施形態における機能ユニットは、1つの処理ユニットに統合されてもよく、またはユニットのそれぞれは、物理的に単独で存在してもよく、または2つ以上のユニットが1つのユニットに統合される。
【0314】
機能がソフトウェア機能ユニットの形で実装され、独立したプロダクトとして販売または使用されるとき、機能はコンピュータ可読記憶媒体に記憶されてもよい。そのような理解に基づいて、本願の実施形態の技術的解決策は本質的に、または従来技術に寄与する部分は、または技術的解決策のいくつかは、ソフトウェアプロダクトの形で実装されうる。コンピュータソフトウェアプロダクトは、記憶媒体に記憶され、コンピュータデバイス(パーソナルコンピュータ、サーバー、またはネットワークデバイス)に、本願の実施形態において説明された方法の段階のすべてまたはいくつかを実行するように命令するためのいくつかの命令を含む。代替的に、コンピュータソフトウェアプロダクトは、あるコンピュータ可読記憶媒体から別のコンピュータ可読記憶媒体に転送されうる。たとえば、コンピュータ命令は、有線(たとえば、同軸ケーブル、光ファイバー、またはデジタル加入者線(DSL))または無線(たとえば、赤外線、無線、またはマイクロ波)方式で、あるウェブサイト、コンピュータ、サーバー、またはデータセンターから別のウェブサイト、コンピュータ、サーバー、またはデータセンターに送信されてもよい。コンピュータ可読記憶媒体は、コンピュータによってアクセス可能な任意の使用可能な媒体、または1つもしくは複数の使用可能な媒体を統合するデータ記憶デバイス、たとえば、サーバーもしくはデータセンターであってもよい。使用可能な媒体は、磁気媒体(たとえば、フロッピー(登録商標)ディスク、ハードディスク、または磁気テープ)、光媒体(たとえば、DVD)、または半導体媒体(たとえば、ソリッドステートディスクSolid State Disk(SSD)、リードオンリメモリ(read-only memory、ROM)、またはランダムアクセスメモリ(random access memory、RAM))であってもよい。
【0315】
前述の説明は、単に本願の実施形態の具体的な実装にすぎない。しかしながら、本願の実施形態の保護範囲は、それに限定されない。本願の実施形態において開示される技術的範囲内で当業者によって容易に考え出される任意の変更または置換は、本願の実施形態の保護範囲内に入るものとする。したがって、本願の実施形態の保護範囲は、特許請求の範囲の保護範囲に従うものとする。
【手続補正書】
【提出日】2024-07-03
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
画像エンコード方法であって:
処理されるべき第1の画像特徴を取得する段階と;
前記第1の画像特徴に対して非線形変換処理を実行して、処理された画像特徴を取得する段階であって、前記非線形変換処理は、第1の非線形演算、畳み込み処理、および要素ごとの乗算演算を順次含む、段階と;
前記処理された画像特徴に基づいてエンコードを実行して、ビットストリームを取得する段階とを含む、
方法。
【請求項2】
前記第1の画像特徴に対して非線形変換処理を実行して、処理された画像特徴を取得する前記段階は:
前記第1の画像特徴における各特徴値に対して前記第1の非線形演算を実行して、第2の画像特徴を得る段階と;
前記第2の画像特徴に対して前記畳み込み処理を実行して、第3の画像特徴を得る段階であって、前記第3の画像特徴における複数の特徴値は、前記第1の画像特徴における複数の特徴値に対応する、段階と;
前記要素ごとの乗算演算を、前記第1の画像特徴および前記第3の画像特徴における前記複数の対応する特徴値に対して実行して、前記処理された画像特徴を得る段階とを含む、
請求項1に記載の方法。
【請求項3】
前記非線形変換処理は、前記要素ごとの乗算演算の後に要素ごとの加算演算をさらに含む、請求項1に記載の方法。
【請求項4】
前記第1の画像特徴に対して非線形変換処理を実行して、処理された画像特徴を取得する前記段階は:
前記第1の画像特徴における各特徴値に対して前記第1の非線形演算を実行して、第2の画像特徴を得る段階と;
前記第2の画像特徴に対して前記畳み込み処理を実行して、第3の画像特徴を得る段階であって、前記第3の画像特徴における複数の特徴値は、前記第1の画像特徴における複数の特徴値に対応する、段階と;
前記要素ごとの乗算演算を、前記第1の画像特徴および前記第3の画像特徴における前記複数の対応する特徴値に対して実行して、第4の画像特徴を得る段階であって、前記第4の画像特徴における複数の特徴値は、前記第1の画像特徴における前記複数の特徴値に対応する、段階と;
前記第1の画像特徴および前記第4の画像特徴における前記複数の対応する特徴値に対して前記要素ごとの加算演算を実行して、前記処理された画像特徴を得る段階とを含む、
請求項3に記載の方法。
【請求項5】
前記第1の非線形演算は、
整流線形ユニット系、シグモイド、Tanhまたは区分線形マッピングを含む、請求項1ないし
4のうちいずれか一項に記載の方法。
【請求項6】
当該方法はさらに:
トレーニング・フェーズにおいて非線形変換ユニットを構築する段階であって、前記トレーニング・フェーズにおける非線形変換ユニットは、第1の非線形演算層と、畳み込み処理層と、要素ごとの乗算演算層と、要素ごとの加算演算層とを含む、段階と;
事前に得られたトレーニング・データに基づいてトレーニングを実行して、トレーニングされた非線形変換ユニットを得る段階であって、トレーニングされた非線形変換ユニットは、前記非線形変換処理を実装するために使用される、段階とを含む、
請求項1ないし
4のうちいずれか一項に記載の方法。
【請求項7】
画像デコード方法であって:
処理されるべき第1の画像特徴を得る段階と;
前記第1の画像特徴に対して非線形変換処理を実行して、処理された画像特徴を得る段階であって、前記非線形変換処理は、第1の非線形演算、畳み込み処理、および要素ごとの乗算演算を順次含む、段階と;
前記処理された画像特徴に基づいて、再構成された画像を得る段階とを含む、
方法。
【請求項8】
前記第1の画像特徴に対して非線形変換処理を実行して、処理された画像特徴を取得する前記段階は:
前記第1の画像特徴における各特徴値に対して前記第1の非線形演算を実行して、第2の画像特徴を得る段階と;
前記第2の画像特徴に対して前記畳み込み処理を実行して、第3の画像特徴を得る段階であって、前記第3の画像特徴における複数の特徴値は、前記第1の画像特徴における複数の特徴値に対応する、段階と;
前記要素ごとの乗算演算を、前記第1の画像特徴および前記第3の画像特徴における前記複数の対応する特徴値に対して実行して、前記処理された画像特徴を得る段階とを含む、
請求項
7に記載の方法。
【請求項9】
前記非線形変換処理は、前記要素ごとの乗算演算の後に要素ごとの加算演算をさらに含む、請求項
7に記載の方法。
【請求項10】
前記第1の画像特徴に対して非線形変換処理を実行して、処理された画像特徴を取得する前記段階は:
前記第1の画像特徴における各特徴値に対して前記第1の非線形演算を実行して、第2の画像特徴を得る段階と;
前記第2の画像特徴に対して前記畳み込み処理を実行して、第3の画像特徴を得る段階であって、前記第3の画像特徴における複数の特徴値は、前記第1の画像特徴における複数の特徴値に対応する、段階と;
前記要素ごとの乗算演算を、前記第1の画像特徴および前記第3の画像特徴における前記複数の対応する特徴値に対して実行して、第4の画像特徴を得る段階であって、前記第4の画像特徴における複数の特徴値は、前記第1の画像特徴における前記複数の特徴値に対応する、段階と;
前記第1の画像特徴および前記第4の画像特徴における前記複数の対応する特徴値に対して前記要素ごとの加算演算を実行して、前記処理された画像特徴を得る段階とを含む、
請求項
9に記載の方法。
【請求項11】
前記第1の非線形演算は、
整流線形ユニット系、シグモイド、Tanhまたは区分線形マッピングを含む、請求項
7ないし
10のうちいずれか一項に記載の方法。
【請求項12】
当該方法はさらに:
トレーニング・フェーズにおいて非線形変換ユニットを構築する段階であって、前記トレーニング・フェーズにおける非線形変換ユニットは、第1の非線形演算層と、畳み込み処理層と、要素ごとの乗算演算層と、要素ごとの加算演算層とを含む、段階と;
事前に得られたトレーニング・データに基づいてトレーニングを実行して、トレーニングされた非線形変換ユニットを得る段階であって、トレーニングされた非線形変換ユニットは、前記非線形変換処理を実装するために使用される、段階とを含む、
請求項
7ないし
10のうちいずれか一項に記載の方法。
【請求項13】
エンコード装置であって:
処理されるべき第1の画像特徴を取得するように構成された取得モジュールと;
前記第1の画像特徴に対して非線形変換処理を実行して、処理された画像特徴を取得するように構成された変換モジュールであって、前記非線形変換処理は、第1の非線形演算、畳み込み処理、および要素ごとの乗算演算を順次含む、変換モジュールと;
前記処理された画像特徴に基づいてエンコードを実行して、ビットストリームを取得するように構成されたエンコード・モジュールとを有する、
装置。
【請求項14】
デコード装置であって:
処理されるべき第1の画像特徴を得るように構成された取得モジュールと;
前記第1の画像特徴に対して非線形変換処理を実行して、処理された画像特徴を得るように構成された変換モジュールであって、前記非線形変換処理は、第1の非線形演算、畳み込み処理、および要素ごとの乗算演算を含む、変換モジュールと;
前記処理された画像特徴に基づいて、再構成された画像を得るように構成された再構成モジュールとを有する、
装置。
【請求項15】
エンコーダであって:
一つまたは複数のプロセッサと;
前記プロセッサに結合され、前記プロセッサによる実行のためのプログラムを記憶している非一時的なコンピュータ可読記憶媒体とを有しており、前記プロセッサによって実行されると、前記プログラムは、請求項1ないし
4のうちいずれか一項に記載の方法を実行するように前記
エンコーダを構成する、
エンコーダ。
【請求項16】
デコーダであって:
一つまたは複数のプロセッサと;
前記プロセッサに結合され、前記プロセッサによる実行のためのプログラムを記憶している非一時的なコンピュータ可読記憶媒体とを有しており、前記プロセッサによって実行されると、前記プログラムは、請求項
7ないし
10のうちいずれか一項に記載の方法を実行するように前記デコーダを構成する、
デコーダ。
【請求項17】
プログラムコードを含むコンピュータ・プログラム・プロダクトであって、前記プログラムコードがコンピュータまたはプロセッサ上で実行されるとき、前記コンピュータ・プログラム・プロダクトは、請求項1ないし
4または請求項7ないし10のうちいずれか一項に記載の方法を実行するように構成される、コンピュータ・プログラム・プロダクト。
【請求項18】
命令を含むコンピュータ可読記憶媒体であって、前記命令がコンピュータ上で実行されると、前記コンピュータは、請求項1
ないし4または請求項7ないし
10のうちいずれか一項に記載の方法を実行できるようにされる、コンピュータ可読記憶媒体。
【手続補正2】
【補正対象書類名】明細書
【補正対象項目名】0040
【補正方法】変更
【補正の内容】
【0040】
第5の側面によれば、本願のある実施形態は、一つまたは複数のプロセッサと;該プロセッサに結合され、該プロセッサによる実行のためのプログラムを記憶している非一時的なコンピュータ可読記憶媒体とを含むエンコーダを提供する。前記プログラムは、プロセッサによって実行されると、エンコーダが上記の第1の側面のいずれか1つによる方法を実行できるようにする。
【国際調査報告】