(57)【要約】【課題】歪みが少なく、かつ、圧縮効率の高いデータ圧縮を実現する。【解決手段】オートエンコーダ装置は、圧縮対象となるデータの入力を受け付ける、入力部と、前記入力部に入力されたデータを複数の値に変換し出力する、エンコードネットワーク部と、前記エンコードネットワーク部から出力された複数の値のうち、少なくとも前記エンコードネットワーク部の最深層を含む２以上の層が示す値を、所定平均値及び所定分散値となるようにバッチ正規化をする、バッチ正規化部と、前記バッチ正規化部によってバッチ正規化された値を量子化する、量子化部と、前記量子化部にて量子化した値をデコードする、デコードネットワーク部と、を備える。【選択図】図１
2019140680.tif 000002
【特許請求の範囲】
【請求項１】
圧縮対象となるデータの入力を受け付ける、入力部と、
前記入力部に入力されたデータを複数の値に変換し出力する、エンコードネットワーク部と、
前記エンコードネットワーク部から出力された複数の値のうち、少なくとも前記エンコードネットワーク部の最深層を含む２以上の層が示す値を、所定平均値及び所定分散値となるようにバッチ正規化をする、バッチ正規化部と、
前記バッチ正規化部によってバッチ正規化された値を量子化する、量子化部と、
前記量子化部にて量子化した値をデコードする、デコードネットワーク部と、
を備える、オートエンコーダ装置。
【請求項２】
前記エンコードネットワーク部と前記デコードネットワーク部とを所定の目的関数に基づいて学習する、
請求項１記載のオートエンコーダ装置。
【請求項３】
請求項１又は請求項２に記載のオートエンコーダ装置の前記エンコードネットワーク部と、前記バッチ正規化部と、前記量子化部と、を備え、前記量子化部により量子化された第１圧縮データを出力する、第１圧縮装置、
を備えるデータ処理システム。
【請求項４】
前記第１圧縮データはさらに、前記オートエンコーダ装置の前記デコードネットワーク部を形成するパラメータを備える、請求項３に記載のデータ処理システム。
【請求項５】
前記第１圧縮装置は、連続で微分可能な疑似量子化関数を用いて学習をして前記オートエンコーダ装置を生成する、第１圧縮モデル生成部を備える、請求項３又は請求項４に記載のデータ処理システム。
【請求項６】
前記第１圧縮モデル生成部は、前記エンコードネットワーク部から出力されたデータ圧縮を行うデータについて、バッチ正規化後に、クリッピング処理をし、スケール変換処理をしてから量子化をする、請求項５に記載のデータ処理システム。
【請求項７】
前記オートエンコーダ装置は、ＣＮＮ（Convolutional Neural Network）に基づくオートエンコーダにより生成されたモデルであり、複数の異なる解像度をもつ特徴量を離散化する請求項３乃至請求項６のいずれかに記載のデータ処理システム。
【請求項８】
請求項３乃至請求項７のいずれかに記載の前記第１圧縮装置により圧縮された前記第１圧縮データを復元する前記デコードネットワーク部を、当該第１圧縮データに備えられるパラメータに基づいて生成し、生成した当該デコードネットワーク部に、当該第１圧縮データを入力し、当該第１圧縮データから復元された第１復元データを出力する、第１復元装置、
を備えるデータ処理システム。
【請求項９】
量子化されたデータを圧縮する第２圧縮装置であって、データを所定のルールにより分割し、当該分割されたデータのうち１つのデータである基礎データの値に基づいた当該分割された他のデータにおける、量子化された値の存在する確率分布を算出する第２モデルを生成し、前記基礎データを前記第２モデルに入力して取得される確率分布に基づいて、前記量子化されたデータを可逆圧縮して第２圧縮データを出力する、第２圧縮装置、
を備えるデータ処理システム。
【請求項１０】
前記第２圧縮データはさらに、前記第２モデルを形成するパラメータを備える、請求項９に記載のデータ処理システム。
【請求項１１】
請求項９又は請求項１０に記載の前記第２圧縮装置により圧縮された前記第２圧縮データを復元する第２復元モデルを、当該第２圧縮データに備えられるパラメータに基づいて生成し、生成した当該第２復元モデルに、当該第２圧縮データを入力し、当該第２圧縮データから復元された第２復元データを出力する、第２復元装置、
を備えるデータ処理システム。
【請求項１２】
請求項３乃至請求項８のいずれかに記載の前記第１圧縮装置と、
請求項９乃至請求項１１のいずれかに記載の前記第２圧縮装置と、
を備えるデータ処理システムであって、
前記第２圧縮装置の入力データは、前記第１圧縮装置から出力された前記第１圧縮データである、データ処理システム。
【請求項１３】
前記第２圧縮装置は、前記第１圧縮装置により量子化された値を、その値をとる確率に応じて符号長を割り当てる算術符号により圧縮を行うように、量子化された値のとる同時確率を条件付分布の積により表現し、当該条件付分布をＣＮＮにより学習したモデルに基づいて、データの圧縮を行う、請求項１２に記載のデータ処理システム。
【請求項１４】
前記ＣＮＮにより学習したモデルは、前記量子化された値に条件付独立性を仮定し、同時分布を条件付分布の積により表現したものをＣＮＮにより学習されたモデルである、請求項１３に記載のデータ処理システム。
【請求項１５】
オートエンコーダにより生成された第１モデルのエンコード層を備える学習済みの第１圧縮モデルに基づいた圧縮を行うデータ処理方法であって、
処理回路が、前記エンコード層における最深層から最浅層へ向けて複数の所定数の層のそれぞれにおいて、データ圧縮を行うデータを取得するステップと、
前記処理回路が、取得したデータを所定平均値及び所定分散値となるようにバッチ正規化処理をするステップと、
前記処理回路が、バッチ正規化処理されたデータを量子化してデータを非可逆圧縮し、第１圧縮データとして出力するステップと、
を備えるデータ処理方法。
【請求項１６】
コンピュータを、
圧縮対象となるデータの入力を受け付ける手段
複数の層により、入力されたデータを複数の値に変換し出力する手段、
出力された複数の値のうち、少なくとも前記複数の層の最深層を含む２以上の層が示すそれぞれの値を、所定平均値及び所定分散値となるようにバッチ正規化をする手段、
バッチ正規化されたそれぞれの値を量子化する手段
量子化されたそれぞれの値をデコードする手段、
として機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、オートエンコーダ装置、データ処理システム、データ処理方法及びプログラムに関する。
【背景技術】
【０００２】
インターネット等のネットワークを介してデータを転送する手法は、日々発展しており、帯域を有効に使用することにより、データ転送速度も高速となってきている。一方、４Ｋ解像度の動画を取得できるカメラやビットレートの高い音声データを取得できる音声レコーダといったデバイスの性能も発展している。このため、データ転送の帯域を有効に用いたとしても、高精度の動画、音声等を転送するには、帯域が十分ではないことがある。また、データの圧縮は、データ転送のみならず、その容量を削減することができることからデータ格納の際にも有用な技術となる。
【０００３】
このような各種データのデータ量増大に鑑みると、データ圧縮技術は、今日においても重要度が高いものである。特に、圧縮性の高い非可逆圧縮技術において歪みを減少させること、又は、従来技術と同等の歪みであっても圧縮率を高くすることが望まれる。ニューラルネットワークを用いたデータ圧縮も研究されているが、上記の目的を達成するのは困難である。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特許第４３０３１３５号公報
【特許文献２】国際公開第２０１７／１３６０８３号
【発明の概要】
【発明が解決しようとする課題】
【０００５】
そこで、本発明の実施形態は、ニューラルネットワークを用いた歪みが少なく圧縮効率の高いデータ圧縮を行うためのオートエンコーダ装置、データ処理システム、データ処理方法及びプログラムを提供する。
【課題を解決するための手段】
【０００６】
一実施形態に係るオートエンコーダ装置は、オートエンコーダ装置は、圧縮対象となるデータの入力を受け付ける、入力部と、前記入力部に入力されたデータを複数の値に変換し出力する、エンコードネットワーク部と、前記エンコードネットワーク部から出力された複数の値のうち、少なくとも前記エンコードネットワーク部の最深層を含む２以上の層が示す値を、所定平均値及び所定分散値となるようにバッチ正規化をする、バッチ正規化部と、前記バッチ正規化部によってバッチ正規化された値を量子化する、量子化部と、前記量子化部にて量子化した値をデコードする、デコードネットワーク部と、を備える。
【図面の簡単な説明】
【０００７】
【図１】一実施形態に係るデータ処理システムを示す図。
【図２】一実施形態に係る第１圧縮装置の機能を示すブロック図。
【図３】一実施形態に係る第１復元装置の機能を示すブロック図。
【図４】一実施形態に係る非可逆圧縮ネットワークの一例を示す図。
【図５】一実施形態に係るクリッピングの一例を示す図。
【図６】一実施形態に係るデータ変換関数の一例を示す図。
【図７】一実施形態に係る疑似量子化関数の一例を示す図。
【図８】一実施形態に係る疑似量子化関数の出力の一例を示す図。
【図９】一実施形態に係る非可逆圧縮処理を示すフローチャート。
【図１０】一実施形態に係る非可逆圧縮データの復元処理を示すフローチャート。
【図１１】一実施形態に係る第２圧縮装置の機能を示すブロック図。
【図１２】一実施形態に係る第２復元装置の機能を示すブロック図。
【図１３】一実施形態に係る第２圧縮過程の概略を示す図。
【図１４】一実施形態に係る第２圧縮における符号化の一例を示す図。
【図１５】一実施形態に係る第２復元における復号の一例を示す図。
【図１６】一実施形態に係る第２復元の一例を示す図。
【図１７】一実施形態に係る第２復元の一例を示す図。
【図１８】一実施形態に係る第２復元の一例を示す図。
【図１９】一実施形態に係る圧縮データの格納の一例を示す図。
【発明を実施するための形態】
【０００８】
本実施形態においては、２つのニューラルネットワークが利用される。第１のニューラルネットワークは、与えられたデータを特徴量に変換し、その特徴量を離散化する。離散化においては、複数の解像度をもつ特徴量を離散化することで、大域的な情報を保持する特徴量と、局所的な情報を保持する特徴量の両方を量子化する。量子化された特徴量は、第２のニューラルネットワークによって可逆圧縮が行われる。第２のニューラルネットワークは、特徴量の生起確率を推定する。推定された生起確率をもとに算術符号によって符号化が行われる。第２のニューラルネットワークの特徴は、特徴量の生起確率に条件付き独立性を仮定し、それぞれの条件付き確率を推定する点にあり、条件付き独立性を利用することで、符号化、復号化に掛かる計算時間を短縮する。
【０００９】
なお、第１のニューラルネットワークと第２のニューラルネットワークは独立したものとして扱うことも可能であり、第１のニューラルネットワークのみを用いたデータ圧縮、及び、第２のニューラルネットワークのみを用いたデータ圧縮も行うことが可能である。
【００１０】
図１は、本実施形態に係るデータ圧縮装置を備えるデータ処理システムを模式的に示すブロック図である。データ処理システム１は、データを圧縮する圧縮装置１０と、圧縮装置１０により圧縮されたデータを復元する復元装置２０と、を備える。圧縮装置１０及び復元装置２０は、同じ装置に備えられていてもよいし、ネットワーク等で接続された別の装置に備えられていてもよい。
【００１１】
圧縮装置１０は、第１圧縮装置１２と、第２圧縮装置１４と、を備える。第１圧縮装置１２は、ニューラルネットワークを用いてデータの非可逆圧縮をする装置である。第２圧縮装置１４は、同じくニューラルネットワークを用いてデータの圧縮を行うが、第１圧縮装置１２とは異なり、可逆圧縮をする装置である。
【００１２】
復元装置２０は、第１復元装置２２と、第２復元装置２４と、を備える。第１復元装置２２は、第１圧縮装置１２により圧縮された圧縮データを復元する装置である。第２復元装置２４は、第２圧縮装置１４により圧縮された圧縮データを復元する装置である。本明細書において、圧縮されたデータ及び圧縮データとは、圧縮手段により圧縮され、そのデータ量が元のデータ量よりも少なくなっている（バイナリ）データそのもののことを示す。
【００１３】
圧縮装置１０は、第１圧縮装置１２により非可逆圧縮されたデータを、さらに第２圧縮装置１４により可逆圧縮することによりデータを圧縮する。復元装置２０は、この２段階の圧縮過程を経たデータを、第２復元装置２４を用いて非可逆圧縮されたデータへと復元し、続いて第１復元装置２２を用いて非可逆圧縮されたデータを復元することにより、データを復元する。
【００１４】
図１においては、データ処理システム１は、第１圧縮装置１２及び第２圧縮装置１４を備える圧縮装置１０と、第１復元装置２２及び第２復元装置２４を備える復元装置２０とを備える構成としているが、これには限られない。
【００１５】
例えば、破線で示されるように、第１圧縮装置１２及び第１復元装置２２を備え、非可逆圧縮、復元を行う第１データ処理システム２、又は、第２圧縮装置１４及び第２復元装置２４を備え、可逆圧縮、復元を行う第２データ処理システム３がそれぞれ独立してデータ処理システムを構成していてもよい。本実施形態に係るデータ処理システムは、このように、非可逆圧縮のみを行うシステム、又は、可逆圧縮のみを行うシステムとしても機能することが可能である。
【００１６】
圧縮する信号をｘ、圧縮後の信号をｘ＾とする。ｘ＾は、離散値であるのに対し、ｘは、連続値又は離散値である。歪みあり符号化（非可逆圧縮）においては、圧縮後の信号ｘ＾と、圧縮前の信号ｘとの歪みであるロスＬ（ｘ，ｘ＾）を小さくする一方で、ｘ＾の符号長ｌ（ｘ＾）を最小化することが目的となる。ロスＬは、例えば、ＭＳＳＳＩＭ（Multi-Scale Structural Similarity for Image Quality Assessment）を用いる。これには限られず、人間の主観と誤差との差が近くなるような評価関数をロスＬとして用いることができる。
【００１７】
ここで、信号を符号化するエンコーダ（Ｆ）によりｚ＝Ｆ（ｘ）と、多値量子化関数ＱＡによりｚ＾＝ＱＡ（ｚ）と、量子化後の信号を復号するデコーダ（Ｇ）によりｘ＾＝Ｇ（ＱＡ（Ｆ（ｘ））と表されるものとする。多値量子化関数は、ｚが多次元変数の場合、次元ごとに独立に量子化を行う。量子化は、連続的な値をとる連続変数を４値や７値といったあらかじめ定めた所定の数の離散値のいずれかに丸める演算を指すものとする。このように示すとき、上記の目的は、Ｅ［・］がデータの生起確率についての期待値を表すものとし、ｍｉｎＦ，Ｇ，ＱＡＥ［Ｌ（ｘ，ｘ＾）］、及び、ｍｉｎＦ，ＱＡｌ（ｘ＾）という２つの問題に帰着される。
【００１８】
この２つの問題は、しばしば、一方をある値以下にさせるという制約付最適化問題として定式化されたり歪みと符号長（又は下限となるエントロピー）に定数を掛けたものの和であるレート歪み関数を小さくする最小化問題として定式化されたりする。歪みと符号長のトレードオフを代える場合、基本的には、量子化すべき変数の数を増やすことで対応するが、量子化関数の量子化数を変えたり、ｘ＾の符号化において異なる符号を同一符号にまとめることを許容する歪みあり符号を同時に行ったりすることでも実現できる。
【００１９】
すなわち、以下のような２つのことを解決策として考慮することができる。
（１）多値量子化関数に最適化したオートエンコーダによる圧縮（非可逆）。
（２）ニューラルネットによる予測値を基に多値量子化テンソルの算術符号化（可逆）。
【００２０】
以下、（１）の非可逆圧縮、（２）の可逆圧縮についてそれぞれ詳しく説明する。
【００２１】
（第１圧縮装置、第１復元装置）
図２は、第１圧縮装置１２の機能を示すブロック図である。第１圧縮装置１２は、第１データ入力部１２０と、第１圧縮モデル記憶部１２１と、第１圧縮モデル生成部１２２と、第１データ圧縮部１２３と、第１圧縮データ出力部１２４と、を備える。
【００２２】
第１データ入力部１２０は、圧縮する対象となるデータの入力を受け付けるインタフェースである。また、この第１データ入力部１２０を介して、復号したときの歪みロスと圧縮したときの符号長のどちらをどれだけ重視して、圧縮するかといったハイパーパラメータ等のモデルの生成又はあらかじめ学習され最適化されたモデルの選択に必要となる情報が入力されてもよい。
【００２３】
第１圧縮モデル記憶部１２１は、圧縮を行うモデルのひな形を記憶している。この他、処理に必要となるプログラムやデータを記憶していてもよい。あらかじめ学習されたパラメータ等を上記のモデル選択に必要となる情報、例えば、圧縮率等に紐付けて記憶してもよい。
【００２４】
第１圧縮モデル生成部１２２は、非可逆圧縮を行うモジュールであり、第１圧縮モデル記憶部１２１に記憶されているひな形のニューラルネットワークモデルを用い、圧縮のためのモデルを選択または生成する。ひな形となるニューラルネットワークモデルは、例えば、ＣＮＮ（Convolutional Neural Network）に基づいたオートエンコーダとして形成されているモデルである。データの圧縮は、生成されたオートエンコーダのエンコーダ部分（エンコードネットワーク部）を用いて実行される。
【００２５】
この第１圧縮モデル生成部１２２は、第１データ入力部１２０から入力されたデータを圧縮するための第１圧縮モデルを、学習により生成する。学習が終了した後、学習に用いたモデルの形成に必要となるパラメータ、特に、当該オートエンコーダのデコーダ層（デコードネットワーク部）の生成に必要となるパラメータを、第１パラメータとして、第１圧縮データ出力部１２４へと送信する。
【００２６】
第１データ圧縮部１２３は、第１圧縮モデル生成部１２２により生成された第１圧縮モデルを用いて、第１データ入力部１２０から入力されたデータを圧縮する。圧縮されたデータは、第１圧縮データ出力部１２４へと送信される。
【００２７】
例えば、上述したように、オートエンコーダのエンコーダを備える層に入力データを入力し、エンコーダの出力を量子化したものを圧縮データとしてもよい。別の例としては、エンコーダ部分によりエンコードされる過程において、層ごとに異なる解像度の特徴量が抽出されるが、この各層における出力データから適切にデータを抽出し、量子化することにより、圧縮データとしてもよい。なお、第１圧縮に続き第２圧縮をする場合には量子化が必要であるが、第１圧縮装置１２及び第１復元装置２２のみを用いたデータの圧縮を行う場合には、量子化は必須の構成ではない。
【００２８】
第１圧縮データ出力部１２４は、非可逆圧縮されたデータを出力する。第１データ圧縮部１２３により圧縮されたデータのみならず、復号に必要となる第１圧縮モデルを再現するために必要となる各レイヤのパラメータを出力するようにしてもよい。
【００２９】
図３は、第１復元装置２２の機能を示すブロック図である。第１復元装置２２は、第１圧縮データ入力部２２０と、第１復元モデル記憶部２２１と、第１復元モデル生成部２２２と、第１データ復元部２２３と、第１復元データ出力部２２４と、を備える。
【００３０】
第１圧縮データ入力部２２０は、第１圧縮装置１２が出力した非可逆圧縮データの入力を受け付ける。第１圧縮に続き第２圧縮を行う場合、第２復元装置２４が出力した復元された第１圧縮済のデータが第１圧縮データ入力部２２０へと入力される。
【００３１】
第１復元モデル記憶部２２１は、第１圧縮装置１２が出力した非可逆圧縮データを復元するための第１復元モデルのひな形となるデータを記憶する。このひな形は、パラメータを設定することにより第１復元モデルとなるモデルであり、例えば、第１圧縮モデルがオートエンコーダのエンコーダ部分である場合、当該オートエンコーダのデコーダ部分に対応するものである。
【００３２】
第１復元モデル生成部２２２は、第１圧縮データ入力部に入力された非可逆圧縮データのうち、第１復元モデルを生成するために必要なパラメータである第１パラメータを抽出し、当該データ及び第１復元モデル記憶部２２１に記憶されているモデルに基づいて、第１復元モデルを生成する。
【００３３】
第１データ復元部２２３は、第１復元モデル生成部２２２が生成した第１復元モデルに第１圧縮データ入力部２２０から入力された圧縮データのうち、第１パラメータ以外である非可逆圧縮データを入力し、非可逆圧縮されたデータを復元する。
【００３４】
第１復元データ出力部２２４は、第１データ復元部２２３により復元されたデータを出力する。
【００３５】
図４は、本実施形態に係る非可逆圧縮及び復元のネットワーク構成の概略を示す図である。以下、ＣＮＮを用いたオートエンコーダとして圧縮装置の説明を行うが、ＣＮＮではない他のニューラルネットワークモデルあるいは他の調整可能なパラメータをもつ関数を用い同様の処理を行っても構わない。入力画像は、例えば、ＲＧＢの３チャネルの画像であるが、これには限られず、デプス情報を含めた４チャネルの画像、又は、アルファチャネルを加えた４チャネルの画像等他の画像であってもよいし、グレースケール画像のように１チャネルの画像であってもよい。１次元時系列の音声信号であってもよい。以下では画像を圧縮する場合のネットワークの例をあげて説明を行う。
【００３６】
第１圧縮装置１２は、目的関数を最適化するように学習を行うことにより、この図４の左半分に示すエンコードネットワーク部と、右半分に示すデコードネットワーク部と、を備えるオートエンコーダを生成する。エンコードネットワーク部は、データを複数の値へと変換する。変換された値はバッチ正規化され、さらに量子化される。デコードネットワーク部は、この量子化された値をデコードする。目的関数は、例えば、入力したデータと、オートエンコーダより出力されたデータとの誤差であってもよいし、最適化の際に得られる誤差逆伝播を行うロス関数（損失関数）であってもよい。
【００３７】
図４に示すネットワークは、一例として、５層の構造としたオートエンコーダとして説明しているが、この層の数は５層には限られない。また、圧縮データとして用いるデータとして、第３層〜第５層のデータを用いているが、これには限られない。例えば、処理速度、歪み許容度、圧縮後のデータサイズに基づいて動的に、データ圧縮の際にユーザが変更できるものであってもよい。この場合、ネットワークを選択させる際のハイパーパラメータとしてこれらのパラメータを用いるようにしてもよい。
【００３８】
すなわち、所定数ｎ、ｍを用いると、このネットワークは、ｎ層の処理をエンコード、デコードで行うオートエンコーダであり、第ｍ層から第ｎ層までのデータをそれぞれ第ｍ所定数、第ｍ＋１所定数、・・・、第ｎ所定数ずつ取得して、圧縮を行う。それらを量子化することによりさらなるデータの圧縮を行ってもよい。さらにまた、取得した量子化されたデータに対して可逆圧縮を行うことにより、データの圧縮を行ってもよい。
【００３９】
図４において、各層のつながりは、３×３ピクセルのコンボリューションカーネル（フィルタ）により、２×２ピクセルごとに演算される。ネットワークの最適化(学習)時には、畳み込みの後の出力値の平均や分散といった統計量が特定の値をとるように強制するバッチ正規化が行われ、ＲｅＬＵ（Rectified Linear Unit）を用いて活性化される。
【００４０】
このバッチ正規化を行うことによって、第１圧縮（非可逆圧縮）に続いて第２圧縮（可逆圧縮）をする場合、第２圧縮の効率を高めることが出来る。これは出力の統計量が揃っている場合、出力毎に独立に関数を推定する必要がなくなり、出力間で共通部分もつ関数を用いて可逆圧縮したときの圧縮効率を高められること、また出力のエントロピーを小さくすることにより可逆圧縮を行ったときの平均符号長を小さく出来ることによる。
【００４１】
図中のＨとＷは、入力されたデータが画像の場合の画像の高さと画像の幅をそれぞれ示す。１層の処理ごとに、この高さＨ及び幅Ｗは、エンコードにおいては、それぞれ１／２倍となり、デコードにおいては、それぞれ２倍となる。
【００４２】
エンコードについては、以下のようにそれぞれの層においてデータが処理される。例えば、３チャネルのデータが入力層に入力された場合、第１層において、上記の畳み込み処理の後、６４チャネルのデータへと変換される。その後、同様に、第２層の処理により、１２８チャネルへと変換される。
【００４３】
同様に、第３層の処理により、２５６＋Ｃ３チャネル分のデータへと変換される。第４層の処理により、第３層において生成されたデータのうち、２５６チャネル分のデータが５１２＋Ｃ４チャネル分のデータへと変換される。そして、第５層の処理により、第４層において生成されたデータのうち、５１２チャネル分のデータを用いて、Ｃ５チャネル分のデータへと変換される。
【００４４】
このＣ３、Ｃ４及びＣ５チャネル分のデータを生成するフィルタは、あらかじめ設定されていてもよいし、オートエンコーダの学習過程において獲得されるものであってもよい。ＣＮＮを使うとＣ３チャネル分のデータを取得する第３層目などの浅い層においては解像度の高い局所的な特徴量が出力され、Ｃ５チャネル分のデータを取得する第５層目などの深い層においては解像度の低い大域的な特徴量が出力される。そのため、なるべく局部の精細な情報を保存したい場合は、Ｃ３の数を増やしたネットワークを用いるのが望ましい。逆に、圧縮効率を優先したい場合は、相対的にＣ３を減らし、Ｃ５を増やしたネットワークを用いるのが望ましい。
【００４５】
復号化した際の歪みを小さくするためには、Ｃ３、Ｃ４及びＣ５のデータの量子化数を細かくとることでも実現できる。一例として、Ｃ３=２４、Ｃ４=２４及びＣ５=３２としてオートエンコーダを生成する。歪み又は圧縮率等を考慮し、Ｃ３〜Ｃ５の値を変更したモデルをいくつか生成しておき、データ圧縮においてユーザから指定された圧縮率等のパラメータに基づいて、圧縮に用いるモデルを選択するようにしてもよい。このような場合、どのモデルを用いたかを圧縮データにおいて、例えば、ヘッダ部分に格納するようにしてもよい。
【００４６】
これらＣ３、Ｃ４及びＣ５チャネル分のデータを生成するフィルタについても、オートエンコーダによる学習中に最適化されるものであってもよい。すなわち、圧縮データを作成するためのフィルタをどのようなフィルタにすれば復元性がよいかを学習により最適化してもよい。
【００４７】
これらのＣ３、Ｃ４及びＣ５チャネル分のデータは、バッチ正規化により、所定の平均値及び所定の分散値を持つように変換される。所定の平均値は、例えば、０であり、所定の分散値は、例えば、１である。このバッチ正規化をするために、第１圧縮装置１２内に、図示しないバッチ正規化部をさらに備えていてもよい。
【００４８】
バッチ正規化された、Ｃ３、Ｃ４及びＣ５チャネル分のデータは、量子化され、圧縮データとして、転送、保存等される。この量子化を行うために、第１圧縮装置１２内に、図示しない量子化部をさらに備えていてもよい。これらのバッチ正規化部及び量子化部は、第１圧縮装置１２内に独立して備えられていてもよいし、第１データ圧縮部１２３内に備えられているものであってもよい。
【００４９】
デコードについては、エンコードと逆の操作を行うことによりデータが復元される。まず、量子化されたＣ５チャネル分のデータは、第５層において、３×３のコンボリューションカーネルにより畳み込み、結合、バッチ正規化、活性化をされることにより、５１２チャネルのデータへと変換される。
【００５０】
この５１２チャネルのデータに、量子化されたＣ４チャネル分のデータを結合し、第４層の処理を行う。第４層の処理により、チャネル数は２５６チャネルになる。続いて、同様に、この２５６チャネルのデータに、量子化されたＣ３チャネル分のデータを結合し、第３層の処理を行う。第３層の処理により、１２８チャネルへ、そして、第２層の処理により６４チャネル、第１層の処理により、３チャネルのデータへと復元される。
【００５１】
エンコード時において、量子化されたＣ３、Ｃ４及びＣ５チャネル分のデータとともに、各層において使用するフィルタ、及び、パラメータ等を圧縮データに備えておくことにより、デコーダ側においては、エンコーダのモデルに対称な構造をもつデコーダのモデルを生成することが可能となる。
【００５２】
パラメータ等とは、例えば、ＣＮＮの層数、それぞれの層におけるハイパーパラメータ及び学習で得られた層を形成するために必要なフィルタなど各層からの出力に掛けられる重みのパラメータ等である。フィルタ自体を圧縮データに備えてもよいが、フィルタは、予め学習にとって最適化した所定のものを用いることとして学習済みのフィルタをもつモデルを生成するようにしてもよい。
【００５３】
異なる構造をもつモデルをそれぞれ学習しておいて、希望する圧縮条件に適したモデルをそれらのうちから選択して生成するようにしてもよい。モデルの学習の一例として、所定の数のフィルタをいくつか用意しておき、これらのフィルタの初期値を定めてモデルを作成し、そのモデルの出力がもっとも歪みロスを小さくするように当該フィルタの結合係数を最適化して第１圧縮モデル記憶部１２１と第１復元モデル記憶部２２１に備えるようにしてもよい。
【００５４】
エンコーダ、デコーダの最適化は、上述したように、歪みロスの期待値Ｅ［Ｌ（ｘ，ｘ＾）］の値が小さくなるように最適化を行う。エンコーダＦとデコーダＧの最適化は、パラメトリックな関数を用いて最適化を行ってもよい。例えば、エンコーダＦとデコーダＧが、パラメータθ、φで特徴付けられている場合、ｍｉｎθ，φＥ［Ｌ（ｘ，ｘ＾）］ のような最適化をしてもよい。
【００５５】
期待値Ｅ［・］は、圧縮、符号化したい信号源からランダムに得られる信号のサンプル平均で近似してもよい。また、エンコーダＦの最適化に関しては、前述したレート歪み関数を最小化するようにしてもよい。このような最適化は、一般的なニューラルネットワークの最適化と同様の手法で実行される。上述した例であれば、一般的なＣＮＮを用いたオートエンコーダの最適化と同様に行われる。
【００５６】
次に、エンコーダにより取得されたデータについての量子化について説明する。量子化の対象となるデータに対して、バッチ正規化、クリッピング、スケール変換、量子化関数による演算を施すことにより本実施形態の量子化は実行される。
【００５７】
（バッチ正規化）
一般的に、バッチ正規化は、パラメータに線形変換を施すことにより、その平均、標準偏差といった統計量が特定の値をもつように正規化を行う。たとえば、出力Ｏに対するバッチ正規化はγ(Ｏ＋β)のように出力と定数βの和とそれらへの定数γの積で表わされる。定数βとγは、たとえばγ(Ｏ＋β)の平均が０、標準偏差が１となるように学習の間に調整され、その値を使うことで正規化が行われる。
【００５８】
このように、あらかじめ平均及び標準偏差を特定の値をもつように誘導することで、量子化前にデータ（各層が出力するデータ）の分布に偏りを持たせることが可能となり、すなわち、ランダムに分布している場合に比べエントロピーを小さくすることが可能となる。したがって、この処理により、第１圧縮後に第２圧縮を行う場合、第２圧縮を施したときの平均符号長を短くすることが可能となる。このバッチ正規化は、上述したように第１圧縮装置１２内の図示しないバッチ正規化部により実行されてもよい。
【００５９】
（クリップ）
続いて、バッチ正規化されたデータをクリッピングする。クリッピングは、例えば、［ｔ，ｕ］（ただし、ｔ＜ｕ）といった定められた範囲にデータを整形することを指す。
【００６０】
図５は、本実施形態に係るクリッピングの例を示す図である。図５は、ｔ＝０，ｕ＝２としてデータのクリッピングを行っている。このグラフに示されるように、ｔ以下のデータはｔと、ｕ以上のデータはｕとなるようにクリッピングする。［ｔ，ｕ］のデータに関しては、変換を行わない。すなわち、出力ｘの［ｔ，ｕ］へのクリッピングは、ｍａｘ（ｍｉｎ（ｘ，ｕ），ｔ）とかける。
【００６１】
（スケール変換）
量子化後のデータを０，１，・・・，Ｎ−１とする場合、グラフにより変換されたデータを、（Ｎ−１）／ｕ倍する。このようにクリッピング及び倍率を掛けることにより、量子化後のデータを、０，１，・・・，Ｎ−１のＮ値に制限することが可能となる。
【００６２】
（量子化関数）
スケール変換後のデータを量子化することによりデータを離散化する。ここでいう量子化とは、データの小数点以下の値を何らかの手法により丸め、整数にする処理のことを言う。例えば、ＱＡを、小数値を四捨五入して整数値へと変換する関数、すなわち、ＱＡ（ｚ）＝ｒｏｕｎｄ（ｚ）とする。ｒｏｕｎｄ（ｚ）は、扱うシステムにより異なる関数であってもよく、例えば、スカラー値ａに対して、ＱＡ（ａ）＝ｉ，ｉｆ  ａ∈［ｉ−０．５，ｉ＋０．５）等の関数である。エンコーダの出力層において、量子化関数として多値に量子化されるような関数を用いることにより、エンコーダの出力を量子化する。
【００６３】
多値量子化は、上記のように、小数点以下四捨五入に限られるものではなく、例えば、小数点以下の値について、切り捨て、切り上げ、０への丸め、正又は負の無限大への丸め、偶数丸め、奇数丸め等他の丸め手法であってもよい。
【００６４】
エンコーダＦ及びデコーダＧを特徴付けるパラメータをθ，φと陽に表すと、上述したように、ｚ＝Ｆ（ｘ，θ）、ｚ＾＝ＱＡ（ｚ）、ｘ＾＝Ｇ（ｚ＾，φ）、ｌ＝Ｌ（ｘ，ｘ＾）と書くことができる。ｌを、θ，φで微分すると、以下のように示される。
【数１】
2019140680.tif 000003
【数２】
2019140680.tif 000004
【００６５】
ここで、ＱＡが通常のステップ関数による量子化、例えば、変数ａが整数ｉに対して、ａ∈［ｉ−０．５，ｉ＋０．５）を満たす場合にＱＡ（ａ）＝ｉとするような量子化であると、ａ∈（ｉ−０．５，ｉ＋０．５）では∂ＱＡ／∂ｚ＝０、ａ＝ｉ−０．５では微分が定義されない。そのため、誤差逆伝播により学習させることができなくなる。そこで、誤差逆伝播を用いる本実施形態においては、一例として、∂ＱＡ／∂ｚ＝１と置き換えて勾配を計算してネットワークを更新するようにする。このような置き換えをすると、勾配は、以下のように表される。
【数３】
2019140680.tif 000005
【００６６】
（量子化の第１変形例）
量子化関数ＱＡのｚによる微分を１にするのに加え、ＱＡに入力する前に、次のような変換関数を用いてｚを変換してから、活性化を行い、誤差逆伝播を行ってもよい。
【数４】
2019140680.tif 000006
【００６７】
ここで、α∈［０，１］を満たす所定の値である。図６は、［数４］で表される変換関数において、α＝０．５とした例を示す図である。この図に示すように、この変換関数は入力が整数値の周りでは、その微分係数が０に近づくことでステップ関数に近い形状となり、整数値から遠くなるほど緩やかに前後の整数値と接続されるような微分可能な連続関数である。
【００６８】
このような関数をＱＡに掛ける前に適用することにより、ｚを整数値へと近づけることが可能となり、量子化関数を恒等写像に近似した誤差逆伝播を行った際の近似誤差を小さくすることが可能となる。
【００６９】
（量子化の第２変形例）
上述したエンコーダ、デコーダの最適化においては、量子化という微分不可能な演算を近似することにより勾配法を用いた最適化を可能とした。本変形例では、量子化の演算を確率的に行い、その確率について微分をすることにより、バイアスなしに勾配を求め最適化を行う手法について説明する。
【００７０】
スカラー量子化器をＱＡ（ｙ）＝ｙｉ＾（ｉｆ  ｙ∈Ｓｉ）と表す。ここで、ｙｉ＾＜ｙｉ＋１＾、Ｓｉ∩Ｓｉ＋１＝φ（φ：空集合とする。）とする。確率的な量子化は、ｙ∈｛Ｓｉ∪Ｓｉ＋１｝に対して、量子化後の値ｙ＾を確率的に決定することにより実行される。
【００７１】
確率を特徴付けるパラメータをθとし、ｙ∈｛Ｓｉ∪Ｓｉ＋１｝に対して、ｐθ（ｙ＾＝ｙｉ＾）を定める。パラメータθによって確率的な揺らぎの強さを調整できるものとする。例えば、ｐθは、シグモイド関数のように、０と１の間を滑らかに接続する関数である。確率ｐθ（ｙ＾＝ｙｉ＋１＾）＝１−ｐθ（ｙ＾＝ｙｉ＾）で、ｙ＾をｙｉ＋１＾とする。歪みＬ（ｙ，ｙ＾）の期待値は、Ｅθ［Ｌ（ｙ，ｙ＾）］＝∫ｐθ（ｙ＾｜ｘ）ｐ（ｘ）Ｌ（ｙ，ｙ＾）ｄｙｄｙ＾と表される。この期待値をθで微分したものは、期待値の形式として表すことができ、サンプル平均を用いることで、バイアスなしに微分の推定値を求めることが可能となる。
【００７２】
すなわち、このようにして得られた微分をもとに誤差逆伝搬法によるネットワークの最適化が可能となる。一方で、この確率的な量子化の場合、確率的な揺らぎの強さを調整して、弱めることで決定論的な量子化に近づけることが出来る。学習後は、決定論的な量子化を行うことになるので、学習の間に確率的な揺らぎの強さを少しずつ弱めていくことで本来、最適化したい目的関数のもとでのネットワークの最適化に近づけることが出来る。
【００７３】
（量子化の第３変形例）
上述したエンコーダ、デコーダは、学習中から完全に量子化することにより、量子化された出力に適したエンコーダ、量子化された入力に適したデコーダの作成を行う例を説明した。本変形例においては、学習中には完全に量子化を実行せずに、量子化された出力に適したエンコーダ、量子化された入力に適したデコーダの作成を可能とする方法を説明する。
【００７４】
生成されたモデルにおける画像圧縮時の多値量子化関数ＱＡと区別するために、学習中において中間層（オートエンコーダの最深層）で実行される量子化を、疑似量子化関数ＱＡ’として表し、このＱＡ’を用いて疑似量子化を行うことにより学習を行うものとする。
【００７５】
疑似量子化関数ＱＡ’（ｙ）をステップ関数に近い連続関数とする。連続であり、微分可能である疑似量子化関数として、例えば、［数４］で示したｓｎａｋｅ関数を合成した関数が上げられる。図７は、疑似量子化関数ＱＡ’の一例を示す図である。この図７は、疑似量子化関数として、以下に示すように、ｓｎａｋｅ関数を４回合成した関数である。
【数５】
2019140680.tif 000007
【００７６】
このように表されるＱＡ’は、連続であり、かつ、微分可能な関数である。さらに、図５に示されるように、［数５］で表されるＱＡ’は、整数値の近くの値を多くとることが分かる。この結果、当該疑似量子化関数ＱＡ’を用いた場合、最適化においてＱＡ’を用いずに完全なステップ関数（ＱＡ）で量子化したものとロスＬの値が、このような疑似量子化関数を用いなかった場合と比較して増大する幅が小さくなる。
【００７７】
図８は、［数５］に示す疑似量子化関数ＱＡ’に、正規分布にしたがう１０００００個の乱数を入力した場合における出力の分布を示す図である。この図８に示すように、入力された値は、整数値の周辺へと変換されている。
【００７８】
このように、値を入力値よりも整数値へと近づけることにより、実際に量子化した場合における量子化データの値と、疑似量子化した場合における疑似量子化データの値との差が、入力値と、量子化データの値との差よりも小さくすることが可能である。この結果、量子化を行った結果と、疑似量子化を行った結果が近い状態を保持しつつ、疑似量子化関数が微分可能であることによる誤差逆伝播を可能とする最適化を行うことが可能となる。
【００７９】
上記で示された各量子化関数、各疑似量子化関数、確率的量子化のための関数は、学習において学習の対象として最適化され、変更されるものであってもよい。
【００８０】
図９は、本実施形態に係るエンコーダＦ及びデコーダＧをオートエンコーダにより生成し、非可逆圧縮処理をする流れを示すフローチャートである。
【００８１】
まず、第１圧縮装置１２は、第１データ入力部１２０を介して圧縮元となるデータの入力を受け付ける（Ｓ１００）。入力されるデータは、例えば、３チャネルの画像データである。
【００８２】
次に、第１圧縮モデル生成部１２２は、第１圧縮モデル記憶部１２１から生成するモデルのひな形を取得し、モデル生成の準備をする（Ｓ１０２）。これらは、画像データとともにユーザ等により入力されたパラメータに基づいて取得されてもよいし、あらかじめ決められたひな形を取得するようにしてもよい。別の例としては、画像データに前処理を行うことにより、例えば、解像度、画像サイズ等に基づいてモデルが変更されるものであってもよい。
【００８３】
次に、第１圧縮モデル生成部１２２は、データ圧縮を行うエンコーダＦ及びデータ復元を行うデコーダＧを備えるオートエンコーダとして第１データ処理モデルを生成する（Ｓ１０４）。第１データ処理モデルは、例えば、図４に示すようなＣＮＮを用いたオートエンコーダである。
【００８４】
このモデルの入力層及び出力層に、第１データ入力部１２０を介して入力された画像データが入力される。入力層に入力されたデータは、上述したように、そのエンコーダＦの層において、第１層、・・・、第５層により処理され、Ｃ３、Ｃ４及びＣ５チャネル分のデータを出力する。
【００８５】
エンコーダＦから出力された各層において処理されたデータは、上記にいくつか例を挙げた例のように、誤差逆伝播が行えるように処理され、多値に量子化する量子化関数ＱＡ（又は疑似量子化関数ＱＡ’）により量子化される。
【００８６】
量子化されたＣ３、Ｃ４及びＣ５チャネル分のデータは、デコーダＧの適切な層から入力される。デコーダＧの第１層の処理後、処理、すなわち、復元されたデータと、入力データとのロスを算出し、誤差を逆伝播することによりモデルを最適化していく。
【００８７】
このモデルの最適化は、一般的な機械学習と同様におこなってよい。学習の終了は、例えば、ロスＬの値が所定の値よりも小さくなった、又は、所定の回数、順伝播と誤差逆伝播を行った、等により決定される。
【００８８】
モデルの最適化が終了すると、第１圧縮モデル生成部１２２は、デコーダＧにおける同等のモデルを生成するために必要なパラメータを出力する（Ｓ１０６）。図２に示されるように、圧縮データとともに、これらのパラメータをまとめて、１つのバイナリファイルとして出力するようにしてもよいし、別のファイルとして出力するようにしてもよい。
【００８９】
続いて、第１データ圧縮部１２３は、第１圧縮モデル生成部１２２が生成したモデルに基づいて入力データの圧縮を行い出力する（Ｓ１０８）。第１データ圧縮部１２３は、第１圧縮モデル生成部１２２が生成したモデルのうち、エンコーダＦの部分を用いて、Ｃ３、Ｃ４及びＣ５チャネル分のデータを算出し、当該データにステップ関数（例えば、ｒｏｕｎｄ関数）を適用することにより多値化し、圧縮データを算出し、第１圧縮データ出力部１２４を介して出力する。上記と同様にこの多値化は、いずれの手法を用いてもよいが、学習時に多値化を用いた場合には、学習時と同じ多値化関数を用いることが望ましい。
【００９０】
なお、この第１データ圧縮部１２３は、必ずしも必要な構成要素ではない。例えば、第１圧縮モデル生成部１２２がモデルを生成するタイミングにおいて、最適なモデルを生成した際に量子化されたデータ作成しておき、当該データを圧縮データとして記憶しておいてもよく、この場合、第１データ圧縮部１２３を介さずに圧縮データを算出することも可能である。このように算出された圧縮データは、第１圧縮データ出力部１２４を介して出力される。
【００９１】
出力先は、例えば、第１圧縮装置１２が備えられているコンピュータ等におけるメモリ領域であってもよいし、圧縮したデータをインターネット等のネットワークを介して別の装置へと転送するように出力してもよい。
【００９２】
次に、圧縮されたデータの復元処理について説明する。図１０は、非可逆圧縮されたデータを復元する処理の流れを示すフローチャートである。
【００９３】
まず、第１圧縮データ入力部２２０を介して、第１復元装置２２は、第１圧縮装置１２により圧縮された非可逆圧縮データ、の入力を受け付ける（Ｓ１１０）。第２圧縮されている場合は、第１復元装置２２には、第２復元装置２４により復元された、第１圧縮されているデータが入力される。
【００９４】
次に、第１復元モデル生成部２２２は、入力されたデータのうち、第１復元モデル、すなわち、上述したモデルのうちデコーダＧの層を生成するために必要なパラメータを取得する（Ｓ１１２）。
【００９５】
続いて、第１復元モデル生成部２２２取得したパラメータ及び第１復元モデル記憶部２２１に記憶されているひな形データから、第１復元モデルを生成する（Ｓ１１４）。このように、第１復元装置２２内でデコーダＧを生成して再現することにより、第１圧縮装置１２において圧縮された非可逆圧縮データを各層に入力可能な状態となる。
【００９６】
次に、第１データ復元部２２３は、第１復元モデル生成部２２２が生成した第１復元モデル（デコーダＧ）に、非可逆圧縮データを入力することにより、データを復元する（Ｓ１１６）。非可逆圧縮データは、例えば、図４に示すように、デコーダＧの各層に入力されるべきデータが入力され、データの復元が実行される。
【００９７】
次に、第１復元データ出力部２２４は、第１データ復元部２２３が復元したデータを出力する（Ｓ１１８）。
【００９８】
このように、第１復元装置２２は、第１圧縮装置１２により非可逆圧縮されたデータの復元を行う。
【００９９】
以上のように、オートエンコーダを用いてエンコーダＦを生成し、エンコーダＦの所定の層からの所定の出力を取得して、量子化することにより非可逆なデータの圧縮を行うことが可能となる。この非可逆圧縮データの復元は、エンコーダＦと同じタイミングで生成される、量子化されたデータが入力されるデコーダＧにより復元を行うことが可能となる。
【０１００】
このように、オートエンコーダの中間層（最深層）において、量子化を行うことにより、データの離散化を行うことが可能となる。さらに、この量子化を、例えば、連続で微分可能な疑似量子化関数により実行することにより、勾配の逆伝播をすることを可能とし、オートエンコーダの学習をうまく行うことができる。
【０１０１】
また、エンコーダＦにおいて、中間層（最深層）に近い複数の層（最深層から最浅層へ向かって選択される所定数の層）、すなわち、解像度の異なる複数の層の出力の一部を量子化し、圧縮データとして取得することにより、オートエンコーダにより自己符号化された元データの特徴を取得し、復元されたデータにおける歪みを小さくするとともに、高い圧縮率で圧縮することを可能とした。
【０１０２】
入力データのビット数と量子化したデータのビット数の比をｒ＝（量子化ビット数）／（入力ビット数）とおくと、データ量は、（Ｃ３／６４＋Ｃ４／２５６＋Ｃ５／１０２４）×ｒとなる。望ましい圧縮率になるように、Ｃ３、Ｃ４、Ｃ５の値及び量子化ビット数を変更できるようしておいてもよい。
【０１０３】
なお、量子化されたデータは、ハフマン符号、算術符号、レンジコーダ等の符号化手法によりさらに圧縮されてもよい。量子化することにより、様々なデータの圧縮手法を効率的に適用可能であるので、エンコーダＦから出力された量子化データを圧縮し、デコーダＧにおいて復元する前にこれらの算術符号等でさらに圧縮されたデータから量子化データへと変換し、デコーダＧの入力とするようにしてもよい。
【０１０４】
この量子化した後の圧縮方法として、本実施形態では、可逆圧縮手法をさらに提案する。第１圧縮装置１２により圧縮されたデータをさらに圧縮する可逆圧縮装置である第２圧縮装置１４、及び、第２圧縮装置１４により可逆圧縮されたデータを復元する第２復元装置２４について以下説明する。可逆圧縮をすることにより、非可逆圧縮で発生する歪みが量子化されたデータの圧縮の際に増大してしまうことを抑制する。
【０１０５】
上述した例においては、データの圧縮を行うタイミングでモデルを生成する例を説明したがこれには限られない。すなわち、第１圧縮装置１２及び第１復元装置２２として、学習済みのモデルを用いてデータの圧縮及び復元を行うようにしてもよい。このようにする利点は、データ圧縮の時間を削減できるとともに、１枚の画像ではなく、例えば、ビッグデータとして格納されている他の画像を用いて大局的にモデルの生成が可能となり、また、モデル生成の時間を十分にとることができるので、圧縮率の向上及び歪みの抑制等、最適化をより高度に行うことができることである。
【０１０６】
このような構成の場合、学習装置として図２に示すような装置を構成する。そして、学習により圧縮モデルが生成された後、当該圧縮モデルのうち、エンコーダ層を第１圧縮モデル記憶部１２１へと格納し、デコーダ層を第１復元モデル記憶部２２１へと格納する。
【０１０７】
学習済みモデルを用いる場合には、図２、図３に示す装置よりも単純な装置として第１圧縮装置１２及び第１復元装置２２を構成することが可能である。すなわち、第１圧縮モデル生成部１２２と、第１復元モデル生成部２２２は、必須の構成ではなくなる。
【０１０８】
第１データ圧縮部１２３は、あらかじめ学習され第１圧縮モデル記憶部１２１に格納されている第１圧縮モデル（すなわち、学習された圧縮モデルのエンコーダ層）の入力層にデータを入力することにより、データの圧縮を実行する。圧縮データは、Ｃ３、Ｃ４及びＣ５チャネル分のデータを量子化したデータを備えて構成される。
【０１０９】
この圧縮データの復元は、第１復元装置２２により学習済みモデルのデコーダである第１復元モデルを用いて行われる。デコーダ層の最下層から圧縮されたデータ、すなわち、Ｃ３、Ｃ４及びＣ５チャネル分のデータを量子化したデータが入力されることにより、第１圧縮されたデータの復元が実行される。
【０１１０】
上述した場合と同じように、圧縮率、歪み等の優先度に基づいて、複数のモデルをあらかじめ学習により生成しておいてもよい。複数のモデルは、そのエンコーダ層を第１圧縮モデル記憶部１２１に、そのデコーダ層を第１復元モデル記憶部２２１に格納しておく。この場合、第１圧縮装置１２において、ユーザのリクエストに応じて、複数あるモデルのうち、どのモデルを用いて圧縮するかを指定できるようにしておく。例えば、圧縮データのヘッダ部分にどのモデルを用いて圧縮したのかを格納しておき、第１復元装置２２において、復元をするタイミングでこのヘッダに格納されている情報から、どのモデルを用いて復元をするかを選択して、データの復元を行う。
【０１１１】
圧縮モデルの選択は、複数用意されたモデルであることには限られず、パラメータとして設定できる数値を入力できるようにしてもよい。例えば、Ｃ３、Ｃ４及びＣ５の数値をユーザがある程度選択できるようにしたり、又は、第２層目においてＣ２チャネル分のデータを取得して圧縮データに加えるようにしたりしてもよい。
【０１１２】
（第２圧縮装置、第２復元装置）
図１１は、第２圧縮装置１４の機能を示すブロック図である。第２圧縮装置１４は、第２データ入力部１４０と、第２圧縮モデル記憶部１４１と、第２圧縮モデル生成部１４２と、第２データ圧縮部１４３と、第２圧縮データ出力部１４４と、を備える。各機能の説明において、第１圧縮装置１２の機能と重なる部分に関しては、詳しい説明は省略する。
【０１１３】
第２データ入力部１４０は、第１圧縮装置１２により出力された各層の出力データが入力される。
【０１１４】
第２圧縮モデル記憶部１４１は、第２圧縮装置１４における圧縮モデルとなる第２圧縮モデルのひな形を記憶する。
【０１１５】
第２圧縮モデル生成部１４２は、可逆圧縮である第２圧縮を行うための確率分布を推定する、第２圧縮モデルを生成する。
【０１１６】
第２データ圧縮部１４３は、入力データに生成された第２圧縮モデルを適用することによって得られる確率分布、及び、入力データに基づいて、可逆圧縮を行う。可逆圧縮には、例えば、レンジコーダを用いる。第２圧縮モデルは、データを後述するように所定のルールに従って分割し、分割されたデータ同士の値における確率分布を算出することにより、レンジコーダを使用することを可能とする。
【０１１７】
第２圧縮データ出力部１４４は、第２データ圧縮部１４３により圧縮されたデータを出力する。
【０１１８】
図１２は、第２復元装置２４の機能を示すブロック図である。第２復元装置２４は、第２圧縮データ入力部２４０と、第２データ復元部２４３と、第２復元データ出力部２４４と、を備える。
【０１１９】
第２圧縮データ入力部２４０は、第２圧縮装置１４が出力した第２圧縮データが入力される。
【０１２０】
第２データ復元部２４３は、入力された第２圧縮データをそのデータに基づいて復元する。
【０１２１】
第２復元データ出力部２４４は、復元されたデータを出力する。
【０１２２】
（第２圧縮処理）
図１３は、第２圧縮処理の概略を示す図である。
【０１２３】
離散化された値ｚ＾のそれぞれの生起確率がｐ（ｚ＾）であるとき、ｚ＾に符号長ｌｏｇ２  ｐ（ｚ＾）を与えるような符号化を行うと可逆圧縮として最適となる。このような符号の割当を、算術符号化により行う。
【０１２４】
算術符号化を行うために、ｚ＾の生起確率を推定する必要がある。ｚ＾は多次元変数であるので、各次元の取り得る値がＮ通り、次元数をｍとすると、この組み合わせはＮｍとなり、一般的に膨大な数値となり、ヒストグラムを求めることが困難となる。
【０１２５】
そこで、ｚ＾の生起確率を条件付確率の積として表す。すなわち、ｚ＾＝（ｚ＾１，・・・，ｚ＾ｍ）とおいた場合に、ｐ（ｚ＾）＝ｐ（ｚ＾１）Πｐ（ｚ＾ｉ＋１｜ｚ＾１，・・・，ｚ＾ｍ）とする。各条件付分布は、Ｎ通りの値をとるｚ＾ｉの値を予測するクラス分類を実行する問題へと帰着される。
【０１２６】
上記の式を単純に条件付分布として表すと、シーケンシャルにｍ回のニューラルネットワークの出力を得なければ生起確率を求めることができない。ｍが大きくなると、この計算時間は、大きくなり、短時間で圧縮・復号を行うことが困難となる。
【０１２７】
そこで、ｚ＾をいくつかの部分集合に分割し、部分集合内の要素間の条件付独立性を仮定し、上記の確率分布の推定を行う。一例として、データを４つのサブセットに分割して行う場合について、以下説明する。上記の式を、さらに以下の式のように書き直すことにより、確率分布の推定を行う。
【数６】
2019140680.tif 000008
【０１２８】
ここで、Ｋはサブセットの数（以下の例では４）、Ｉｋをサブセットにおける要素数とする。このように確率分布を仮定することにより、条件付独立を仮定し、シーケンシャルな演算をＫ回に押さえ、Ｉｋの演算を並列に行うことを可能とする。
【０１２９】
まず、入力データは、４つのデータへと分割される。例えば、図に示すように、横縞、右下がり斜線、右上がり斜線、縦縞の２×２のデータを４つのデータに区切り、結合することにより、４つのデータへと分割される。なお、計算機への実装においては、実際に４つのデータへと分割、再結合する必要は無く、必要なタイミングにおいて必要なデータが呼び出せるようにしておけばよい。以下、横縞のデータを第１データ、右下がり斜線のデータを第２データ、右上がり斜線のデータを第３データ、及び、縦縞のデータを第４データと置く。
【０１３０】
このうち１つのデータを基礎データとして、基礎データのピクセルの値から、他の３つのデータの値の確率分布を推定するモデルをニューラルネットワーク、例えば、ＣＮＮにより生成する。この推定モデルは、データそのものを推定するものではなく、基礎データのあるピクセルの値から、他のデータの対応するピクセルの値が存在する確率分布を求めるモデルとして生成される。
【０１３１】
例えば、第１データを基礎データとした場合に、当該基礎データから他の３つのデータである第２データ、第３データ、第４データとなるような確率分布を推定するモデルを生成する。一番左上のピクセルに着目してみると、Ａ１の値からＡ２、Ａ３及びＡ４の値となるような確率分布を推定するモデルを生成する。
【０１３２】
Ａ２、Ａ３及びＡ４の値全てをＡ１から確率分布を推定する必要は無く、例えば、Ａ１からＡ４の値の確率分布を推定し、続いて、Ａ１及びＡ４の双方の値を用いてＡ２及びＡ３の値の確率分布を推定するようにしてもよい。このように、どのデータを基準にしてどのデータの確率分布を推定するかは、任意で選択することが可能である。
【０１３３】
具体例として、まず、第１データから第４データの値の分布を推定するモデルを生成する。ＣＮＮの入力層に第１データを入力すると、出力層に第４データが出力（推定）されるモデルを以下のように生成する。教師付学習により、入力層に第１データを入力すると、各ピクセルについて、入力層に入力された量子化された値に対して、量子化における各値、例えば、４（Ｎ）値で量子化されている場合には、第４データの値が０，１，２，３（，・・・，Ｎ−１）のそれぞれになる確率を示すような４（Ｎ）チャネルのデータを出力層が出力するようなモデルを生成する。
【０１３４】
入力データが複数チャネルを備える場合には、入力されたチャネルごとに、Ｎのサブチャネルを有するような確率分布を出力する層を生成し、入力されたチャネル数のデータを出力層で出力するようなモデルを生成する。このようなモデルを生成することにより、第１データが入力された場合に、第４データの各ピクセルにおいて、量子化された各値になる確率が出力される。
【０１３５】
出力層及びその直前の層についての出力以外は、一般的なＣＮＮを形成して最適化を行う。同様に、第２データ及び第３データを教師データとし、量子化された各値になる確率分布を出力するモデルを生成する。
【０１３６】
なお、上記においては、第１データから第４データ、続いて、第２データ及び第３データというように説明したが、これには限られない。すなわち、第１データから第２データ、第３データ及び第４データに対する確率分布を同じタイミングで求めるような同時確率分布によるモデルを生成しても構わない。
【０１３７】
さらには、第１データから第４データの確率分布を求めた後、第１データ及び第４データを用いて第２データ及び第３データの確率分布を求めるようなモデルを生成してもよい。この場合、上記と同様に、第１データから第４データに対するモデルを生成するのに併せて、第１データ及び第４データを入力層に入力すると、第２データ及び第３データが推定できるようなモデルを教師付学習により生成してもよい。これらのデータ推定の順番や組み合わせは、自由に変更することが可能である。
【０１３８】
第１データの各ピクセルの値に対して他の分割データの値が確率として表現できると、第１データの各ピクセル値及び他の分割データへの確率分布にしたがって、第２データ、第３データ及び第４データの値をレンジコーダ等の符号により表現することが可能である。本実施形態では、ＣＮＮを用いることによりこの確率分布を精度よく求めることが可能であるので、レンジコーダ等の確率に基づいてデータを圧縮する符号化においては、高い圧縮率を実現することができる。
【０１３９】
必要に応じて、第１データをさらに４分割してさらに第１データ自体を圧縮するようにしてもよい。この場合、上記の処理と同様の処理を第１データに関しても適用することにより、データの圧縮を行う。この圧縮は、ピクセルごとに、レンジコーダにより圧縮したものをまとめて圧縮し、データを羅列して格納するものであってもよいし、ベクトル量子化のように、多次元空間内の点を表す量として圧縮したデータを格納するものであってもよい。
【０１４０】
上記の処理のうち、第２圧縮モデル生成部１４２は、ＣＮＮの生成を行い、第２データ圧縮部１４３は、第２圧縮モデル生成部１４２が生成したモデルにより推定された入力データから得られた確率分布に基づいて、第２圧縮されたデータを出力する。圧縮されたデータには、上記の第１データのピクセル値及び必要となるＣＮＮを形成するためのパラメータを備えておく。さらに、圧縮されたデータには、第２圧縮モデルを形成するためのパラメータが備えられていてもよい。
【０１４１】
推定は、あくまでも、確率分布を取得するために用いられ、実際のデータ圧縮はレンジコーダにより行われるので、仮に推定が不確かな推定であっても、この圧縮は可逆圧縮となる。推定の精度は、可逆か非可逆かの要素ではなく、圧縮率に影響を及ぼす。
【０１４２】
第２復元装置２４は、第２圧縮装置１４により圧縮されたデータから、まず、第２圧縮モデルを再現し、データを復元する。
【０１４３】
以下、データの圧縮及び復元について、具体的に説明する。図１４は、本実施形態に係る第２圧縮装置１４における圧縮処理の概略を示す図である。
【０１４４】
まず、第１データから第４データを推定するモデルをＣＮＮにより生成する。出力層の直前の層において、図の破線で囲ったように、各量子化値に対する確率分布が出力される。例えば、左上のピクセルに着目すると、第１データは、０であり、第４データは、０である。
【０１４５】
この場合、生成されたモデルに第１データを入力して得られる確率分布の左上ピクセルの値は、左上のピクセルについて第１データが０である場合に第４データが０，１，・・・，Ｎ−１になる確率である。図示した例では、０．５の確率で第４データの左上ピクセルは０であり、同様に、０．３の確率で１、・・・、０．０の確率でＮ−１の値になると言うことを意味している。
【０１４６】
ＣＮＮによるモデルを生成した後、生成したモデルに第１データを入力し、第１データと、第４データと、各量子化値になる確率と、に基づいて、レンジコーダによりバイナリコード００１１０１１．．．を出力する。このバイナリコードが圧縮データに備えられる。
【０１４７】
図１５は、本実施形態に係る第２復元装置２４における復元処理の概略を示す図である。
【０１４８】
まず、第２復元装置２４は、圧縮データに格納されているモデルを形成するパラメータから確率分布を求めるためのモデルを再現する。
【０１４９】
続いて、再現されたモデルに圧縮データに格納されている第１データを入力し、第１データから第４データへのデータ遷移の確率分布を取得する。
【０１５０】
次に、取得された確率分布及び圧縮データに格納されているバイナリコードに基づいて、第４データを復元する。
【０１５１】
このように、圧縮データに格納されている第１データ及び第１データと第４データとの確率分布に基づいたバイナリデータをもちいることにより、圧縮された第４データを正確に復元することが可能となる。
【０１５２】
チャネルが複数の場合は、チャネルごとに圧縮、復元処理を行う。第１データがさらに分割されている場合には、まず、分割された第１データのサブデータから、第１データを復元し、復元されたデータに基づいて、他のデータを復元することにより、チャネルのデータ、すなわち、図１３における入力データを復元する。
【０１５３】
この分割は、任意の回数行うことが可能である。圧縮データの生成に関しては、例えば、この分割の回数を決めておく、データのピクセル数が所定数以下となるまで分割を行う、又は、分割による圧縮効率が所定の数値以下となるまで分割を行う、等と決めておいてもよい。
【０１５４】
分割による圧縮効率が所定の数値以下となるとは、例えば、モデル生成のパラメータ等を含めた圧縮データのサイズが、圧縮前のサブデータのサイズよりも大きくなる場合等である。
【０１５５】
なお、データ圧縮及びデータ復元の全体的な処理の流れは、主要な部分において図９、図１０に示すフローチャートと同様のものであるので、詳しくは省略する。
【０１５６】
図１６は、確率分布から各ピクセルの値を復元する一例を概念的に示す図である。この図に示すように、まず、第１データから第４データを復元する。次に第１データ及び第４データから、第２データと第３データを復元する。この復元は、２×２ピクセル内の閉じた演算とすることが可能であるので、並列して行うことが可能となる。
【０１５７】
サブセットを２×２の中に存在するピクセルとして用いるのではなく、さらにスパースな行列を用いて行うようにしてもよい。図１７は、スパースな行列からの復元例として、４×４のサブセットから復元する一例を概念的に示す図である。まず、図１６にある第１データに対応するデータをスパースな行列から復元する。その後の処理は、図１６の処理と同等の処理を行う。
【０１５８】
復元された各層のデータ、すなわち解像度の異なるデータは、ＣＮＮの各層へ入力することにより統合される。図１８は、解像度の異なるデータから１つのデータを統合する場合における一例を示す図である。
【０１５９】
この図１８に示すように、ＣＮＮの各層に、解像度の異なるデータをアンプーリングして入力する。アンプーリングは、それぞれの解像度の異なる画像が同じ大きさになるように実行される。異なる解像度のデータからデータの統合を行う場合、共通するチャネルのデータを推定する場合がある。このような場合には、共通するチャネルのデータとなる推定を１回だけ行うようにし、共通するデータとなるような他の演算を行わないようにすることにより、演算コストを抑制することが可能である。
【０１６０】
以上のように、量子化されたデータである第１圧縮データのうち、ピクセル値のデータを直接示すデータ、すなわち、図４における、Ｃ３、Ｃ４及びＣ５チャネル分のデータに対応するデータに関して、第２圧縮を行うことにより、高圧縮率でデータを圧縮することが可能となる。
【０１６１】
また、エンコード、デコードにおいてともに、１ピクセルごとに次のピクセルの値を求めるのではなく、テンソル全体として同じタイミングで並列にエンコード、デコードを行うことができるので、エンコード、デコードの時間を短縮することが可能となる。
【０１６２】
なお、前述したように、第２圧縮装置１４及び第２復元装置２４は、必ずしも第１圧縮装置１２及び第１復元装置２２とともに用いる必要は無く、単独としてデータの圧縮を行うことも可能である。この場合、第２データ入力部１４０には、圧縮の対象となるデータの入力を受け付ける。第２圧縮装置１４においては、量子化されたデータ、すなわち、有限個の値に離散化されているデータを扱うことが可能であるので、その応用範囲は広い。
【０１６３】
上述した第１圧縮装置１２及び第１復元装置２２と同様に、第２圧縮装置１４及び第２復元装置２４についても、あらかじめ学習しておき、学習しておいたモデルを格納しておくことにより、高速に可逆圧縮及び復元を行うことが可能となる。さらに、使用するモデルも、入力されたデータの形状、例えば、何層目から何層目のデータを用いているか、等に基づいて、選択されるようにしておいてもよい。
【０１６４】
（データ処理システム）
前述した実施形態のデータ処理システム１としての全体の処理は以下のようにまとめることができる。
【０１６５】
［非可逆圧縮］
入力されたデータは、第１圧縮装置１２において、オートエンコーダにより出力層から入力されたデータが出力されるようなモデルを生成する。このオートエンコーダは、ＣＮＮにより形成される。オートエンコーダのエンコーダ層における中間層に最も近い所定数の層（上述では３層）においては、一般的なＣＮＮの各層の出力に加え、圧縮データの本体を形成するようなデータが出力されるように最適化される。当該所定数の層からの出力用のデータは、量子化され、非可逆圧縮されたデータとして出力される。オートエンコーダの最適化において、デコーダＧは、この量子化されたデータが入力されたデータへとデコードされるように最適化される。上述したように、オートエンコーダはあらかじめ学習により最適化されていてもよい。この場合、圧縮率等により使用するエンコーダＦ、デコーダＧを、例えば、第１圧縮モデル記憶部１２１から取得して、さらに、必要であれば取得したパラメータ等からモデルを生成して使用してもよい。
【０１６６】
［可逆圧縮］
非可逆圧縮されたデータは、第２圧縮装置１４において、周辺のピクセルに対する確率分布が推定できるようなＣＮＮに基づいたモデルを生成することにより、当該確率分布を用いて算術符号化等の手法により可逆圧縮される。
【０１６７】
この可逆圧縮されたデータは、適宜適切な処理を施し、最終的な圧縮データとして出力される。
【０１６８】
［可逆圧縮されたデータの復元］
可逆圧縮されたデータは、第２復元装置２４において、復元される。この復元は、算術符号化等により圧縮されたデータの復元である。復元されたデータは、上記の第１圧縮装置１２から出力された非可逆圧縮されたデータと同じものとなる。
【０１６９】
［非可逆圧縮されたデータの復元］
非可逆圧縮されたデータは、第１圧縮装置１２により生成されたモデルのデコーダＧの層を第１復元装置２２において、そのパラメータを取得することにより再現し、デコーダＧの中間層に近い層に入力されることにより、復元され、出力される。
【０１７０】
以上のように、本実施形態によれば、第１圧縮により歪みの少ない量子化を行ってデータを圧縮し、第２圧縮により量子化されたデータのさらなる圧縮を行う。このように歪みの少ない非可逆圧縮及び高い圧縮率と処理時間の短い可逆圧縮を実行することにより、歪みが少なく、圧縮率が高く、かつ、処理時間の短いデータ圧縮及び復元を提供することが可能となる。
【０１７１】
［圧縮データの格納例］
第１圧縮及び第２圧縮をしたデータには、各復元装置における復元モデルを生成するためのパラメータが格納される。当該データは、圧縮されるデータの内容を示すデータと比較して小さいものであるので、圧縮率等にはほとんど寄与しない。そこで、このようなパラメータ以外のデータについての格納方法について説明する。
【０１７２】
図１９は、本実施形態に係る圧縮データの格納例を模式的に示す図である。以下、図４に示すピクセル数によるものについて説明する。
【０１７３】
第１圧縮モデルのエンコーダＦからは、第３層からＣ３チャネル、第４層からＣ４チャネル、第５層からＣ５チャネル分の量子化されたデータが出力される。
【０１７４】
まず、Ｃ５チャネル分のデータのうち当該データの第１データ（Ｃ５１）に該当する（Ｗ／６４）×（Ｈ／６４）×Ｃ５のデータが格納される。続いてＣ４チャネル分のデータのうち当該データの第１データ（Ｃ４１）に該当する（Ｗ／３２）×（Ｈ／３２）×Ｃ４のデータが格納される。そして、Ｃ３チャネル分のデータのうち当該データの第１データ（Ｃ３１）に該当する（Ｗ／１６）×（Ｈ／１６）×Ｃ３のデータが格納される。このように、第１圧縮のみの場合よりも圧縮率を高くすることが可能となる。
【０１７５】
なお、第２圧縮においては、例えば、Ｃ４チャネル分の圧縮をする際に、Ｃ５チャネル分のデータを用いるようにしてもよい。すなわち、Ｃ５チャネル分と、Ｃ４１のデータを用いてＣ４１に対する第２データ、第３データ、第４データの数値の確率分布を推定するモデルにより圧縮を行ってもよい。
【０１７６】
同様に、Ｃ３チャネル分の圧縮をする際に、Ｃ５チャネル分のデータを２×２ピクセル分拡張したデータ、例えば、１ピクセルの値を右、下、右下のピクセルの値として幅を２倍、高さを２倍としたデータと、Ｃ４チャネル分のデータと、を用いてＣ３１に対する第２データ、第３データ、第４データの数値の確率分布を推定するモデルにより圧縮を行ってもよい。これらの解像度の異なる各層の統合は、上述した図１８に示すようにアンプーリングを層ごとにおこなうことにより行われる。
【０１７７】
本実施形態に係るデータ処理システム１におけるデータの圧縮は、ＣＮＮを用いていることから分かるとおり、画像、音声等に見られるように、周辺のデータとの依存性が比較的高いデータに対してより効果を発揮する。
【０１７８】
（応用例）
前述した第１データ処理システム２、又は、第２データ処理システム３は、信号の近似的な生成確率を表現することによりデータの圧縮及び復元を行っている。この信号の生成確率は、ベイズ推定における事前分布として用いることもできる。事前分布として用いることにより、統計推定の精度を向上させることも考えられる。
【０１７９】
例えば、画像の超解像、ノイズ除去、又は、顔像補間等の問題においては、以下の最適化問題を解くことに帰着される。
【数７】
2019140680.tif 000009
【０１８０】
ここで、ｘは、求めたい画像、ｙは、ｘを求めるための手がかりとなる画像である。ｙは、例えば、超解像であれば与えられる低解像度画像、ノイズ除去であればノイズが含まれている画像である。第１項Ｌｏｓｓ（ｘ，ｙ）は、ｌｏｇ  ｐ（ｘ｜ｙ）という観測分布、すなわち、ｘからどのような観測画像ｙが得られるかという（物理的な）観測過程を表す。第２項Ｒ（ｘ）は、ｌｏｇ  ｐ（ｘ｜ｙ）という事前確率、すなわち、どのようなｘが生成されやすいか、を表す。λは、第１項と第２項とのバランスをとるためのパラメータである。
【０１８１】
超解像、ノイズ除去と言った個々の問題は、第１項をどのように記述するかで特徴づけられる。このような問題は、第１項の観測過程と得られた観測画像の情報だけでは一意に解が定まらない不良設定問題となる。すなわち、ノイズの入った画像や劣化した低解像度画像と同じ観測を与える可能性がある元のノイズの入っていない画像や高解像度な画像の候補は複数生じる。この不良設定性を解消し、より精度の高い解を得るために第２項の情報が必要となる。第２項によって解となる画像をより確率の高い尤もらしい画像に近づけることにより、より高精度な推定を行うことが可能となる。
【０１８２】
このＲ（ｘ）として、本実施形態で最適化された圧縮装置を利用することが可能である。デコーダＧを用いて、得たい解ｘは、ｘ＝Ｇ（ｚ）と表現される。圧縮装置は、量子化されたｙの確率を近似的に求めているため、量子化を行わないｚの確率ｐ（ｚ）は、量子化後のｚの確率を、例えば、線形補間する形で求めることができる。この表現を利用することにより、以下のような式が得られる。
【数８】
2019140680.tif 000010
【０１８３】
すなわち、画像ｘは、この［数８］の最適化を行うことにより求めることが可能となる。このように、ベイズ推定の事前確率として、本実施形態の各圧縮装置を用いることが可能となる。
【０１８４】
以上のように、一実施形態によれば、ニューラルネットワークを用いて、局所的な情報を保持する特徴量を利用することで細部まで歪みが少なく、かつ、大域的な情報を保持する特徴量を利用することで圧縮効率を高めることができる。さらに条件付確率を推定したニューラルネットワークを利用することで、量子化された特徴量の生起確率をよく近似することで算術符号化における圧縮効率を高めつつ、その符号化にかかる演算回数を減らすことでデータ圧縮とデータの復号を高速に実現することができる。
【０１８５】
前述した実施形態においては、入力データは画像データであるとしたがこれには限られない。例えば、空間的に次元を増やした３次元空間を示すボクセルデータであってもよいし、時間的に次元を増やした動画データであってもよい。また、別の例として、音声データであっても構わない。さらには、一般的なバイナリデータに対しても、例えば、バイナリ値を数値化する等、所定の前処理により変換して適用することも可能である。
【０１８６】
このような種々のデータに対して、前述した実施形態に係るデータ処理システム１を適用することが可能である。これらのデータは、第１データ処理システム２又は第２データ処理システム３を個別に利用してデータ処理されるものであってもよい。
【０１８７】
図２、図３、図１１、図１２に示すような各実施形態における各装置において、各部における各機能のそれぞれの制御は、図示しない制御部がその全て又は一部を、一括に又は個別に行うようにしてもよい。この制御部は、アナログ、デジタル、或いは、ＦＰＧＡ（Field Programmable Gate Array）等により実装された制御回路であってもよい。
【０１８８】
上記の全ての記載において、各装置又は各システムの少なくとも一部はハードウェアで構成されていてもよいし、ソフトウェアで構成され、ソフトウェアの情報処理によりＣＰＵ等が実施をしてもよい。ソフトウェアで構成される場合には、その全て又はその少なくとも一部の機能を実現するプログラムをフレキシブルディスクやＣＤ−ＲＯＭ等の記憶媒体に収納し、コンピュータに読み込ませて実行させるものであってもよい。記憶媒体は、磁気ディスクや光ディスク等の着脱可能なものに限定されず、ハードディスク装置やメモリなどの固定型の記憶媒体であってもよい。すなわち、ソフトウェアによる情報処理がハードウェア資源を用いて具体的に実装されるものであってもよい。さらに、ソフトウェアによる処理は、ＦＰＧＡ等の回路に実装され、ハードウェアが実行するものであってもよい。モデルの生成や、モデルに入力をした後の処理は、例えば、ＧＰＵ等のアクセラレータを使用して行ってもよい。
【０１８９】
また、本実施形態に係る各装置及び各システムは、人工知能ソフトウェアの一部であるプログラムモジュールとして利用することが可能である。すなわち、コンピュータのＣＰＵが格納部に格納されているモデルに基づいて、演算を行い、結果を出力するように動作する。
【０１９０】
上記の全ての記載に基づいて、本発明の追加、効果又は種々の変形を当業者であれば想到できるかもしれないが、本発明の態様は、上記した個々の実施形態に限定されるものではない。特許請求の範囲に規定された内容及びその均等物から導き出される本発明の概念的な思想と趣旨を逸脱しない範囲において種々の追加、変更及び部分的削除が可能である。例えば、前述した全ての実施形態において、説明に用いた数値は、一例として示したものであり、これらに限られるものではない。
【符号の説明】
【０１９１】
１：データ処理システム、２：第１データ処理システム、３：第２データ処理システム、
１０：圧縮装置、１２：第１圧縮装置、１４：第２圧縮装置、１２０：第１データ入力部、１２１：第１圧縮モデル記憶部、１２２：第１圧縮モデル生成部、１２３：第１データ圧縮部、１２４：第１圧縮データ出力部、１４０：第２データ入力部、１４１：第２圧縮モデル記憶部、１４２：第２圧縮モデル生成部、１４３：第２データ圧縮部、１４４：第２圧縮データ出力部、
２０：復元装置、２２：第１復元装置、２４：第２復元装置、２２０：第１圧縮データ入力部、２２１：第１復元モデル記憶部、２２２：第１復元モデル生成部、２２３：第１データ復元部、２２４：第１復元データ出力部、２４０：第２圧縮データ入力部、２４３：第２データ復元部、２４４：第２復元データ出力部
【図１】
2019140680.tif 000011
【図２】
2019140680.tif 000012
【図３】
2019140680.tif 000013
【図４】
2019140680.tif 000014
【図５】
2019140680.tif 000015
【図６】
2019140680.tif 000016
【図７】
2019140680.tif 000017
【図８】
2019140680.tif 000018
【図９】
2019140680.tif 000019
【図１０】
2019140680.tif 000020
【図１１】
2019140680.tif 000021
【図１２】
2019140680.tif 000022
【図１３】
2019140680.tif 000023
【図１４】
2019140680.tif 000024
【図１５】
2019140680.tif 000025
【図１６】
2019140680.tif 000026
【図１７】
2019140680.tif 000027
【図１８】
2019140680.tif 000028
【図１９】
2019140680.tif 000029