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

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

▶ 株式会社日立製作所の特許一覧

特開2022-182225データ処理システムおよびデータ処理方法
<>
  • 特開-データ処理システムおよびデータ処理方法 図1
  • 特開-データ処理システムおよびデータ処理方法 図2
  • 特開-データ処理システムおよびデータ処理方法 図3
  • 特開-データ処理システムおよびデータ処理方法 図4
  • 特開-データ処理システムおよびデータ処理方法 図5
  • 特開-データ処理システムおよびデータ処理方法 図6
  • 特開-データ処理システムおよびデータ処理方法 図7
  • 特開-データ処理システムおよびデータ処理方法 図8
  • 特開-データ処理システムおよびデータ処理方法 図9
  • 特開-データ処理システムおよびデータ処理方法 図10
  • 特開-データ処理システムおよびデータ処理方法 図11
  • 特開-データ処理システムおよびデータ処理方法 図12
  • 特開-データ処理システムおよびデータ処理方法 図13
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022182225
(43)【公開日】2022-12-08
(54)【発明の名称】データ処理システムおよびデータ処理方法
(51)【国際特許分類】
   H03M 7/30 20060101AFI20221201BHJP
   G06N 20/00 20190101ALI20221201BHJP
【FI】
H03M7/30 Z
G06N20/00
【審査請求】未請求
【請求項の数】8
【出願形態】OL
(21)【出願番号】P 2021089677
(22)【出願日】2021-05-28
(71)【出願人】
【識別番号】000005108
【氏名又は名称】株式会社日立製作所
(74)【代理人】
【識別番号】110002365
【氏名又は名称】特許業務法人サンネクスト国際特許事務所
(72)【発明者】
【氏名】成子 貴洋
(72)【発明者】
【氏名】圷 弘明
【テーマコード(参考)】
5J064
【Fターム(参考)】
5J064AA03
5J064BA08
5J064BA09
5J064BC01
5J064BC02
5J064BD03
(57)【要約】
【課題】圧縮および伸長が行われる圧縮伸長部を利用可能な高速伸長AIを提供する。
【解決手段】データを圧縮する圧縮器と、圧縮器により圧縮されたデータを伸長する伸長器とを含んで構成される圧縮伸長部を備えるデータ処理システムであって、圧縮伸長部は、圧縮器の構成情報を出力可能な第1のインタフェース部と、圧縮器により圧縮されたデータを出力可能な第2のインタフェース部と、を設けるようにした。
【選択図】図1
【特許請求の範囲】
【請求項1】
データを圧縮する圧縮器と、前記圧縮器により圧縮されたデータを伸長する伸長器とを含んで構成される圧縮伸長部を備えるデータ処理システムであって、
前記圧縮伸長部は、
前記圧縮器の構成情報を出力可能な第1のインタフェース部と、
前記圧縮器により圧縮されたデータを出力可能な第2のインタフェース部と、
を備えるデータ処理システム。
【請求項2】
前記第1のインタフェース部により出力された前記圧縮器の構成情報から前記圧縮器のモデルを生成し、前記圧縮器の構成情報と所定のAI(Artificial Intelligence)のモデルとから、前記圧縮器により圧縮されたデータを入力とする高速伸長AIのモデルを生成する生成部を備える、
請求項1に記載のデータ処理システム。
【請求項3】
前記生成部は、前記構成情報から、前記圧縮器により圧縮されたデータを前記所定のAIに入力されるデータ形式に変換するための前処理ユニットを生成し、生成した前処理ユニットと前記所定のAIのモデルとを結合し、前記高速伸長AIのモデルを生成する、
請求項2に記載のデータ処理システム。
【請求項4】
前記圧縮器のモデルが動作可能に読み込まれた圧縮器により学習データが圧縮されたデータを入力として、前記高速伸長AIのモデルが動作可能に読み込まれた高速伸長AIを学習する学習部を備える、
請求項2に記載のデータ処理システム。
【請求項5】
前記所定のAIは、データの分析処理を行うAIであり、
前記第2のインタフェース部により出力された前記圧縮器により圧縮されたデータと、前記学習部により学習された前記高速伸長AIとを用いて、前記データの分析処理を行う分析部を備える、
請求項4に記載のデータ処理システム。
【請求項6】
前記圧縮伸長部は、
前記圧縮器により圧縮されたデータを符号化する符号化器と、前記符号化器により符号化されたデータを復号する復号器とを含んで構成され、
前記符号化器を用いて前記圧縮器により圧縮されたデータを符号化したデータをストレージに記憶する第3のインタフェース部と、
前記ストレージからデータを読み出し、読み出したデータを前記復号器により復号し、復号したデータを前記伸長器により伸長し、伸長したデータを出力する第4のインタフェース部と、
を備え、
前記第2のインタフェース部は、前記ストレージからデータを読み出し、読み出したデータを前記復号器により復号し、復号したデータを出力する、
請求項1に記載のデータ処理システム。
【請求項7】
前記圧縮器は、入力されたデータを前記圧縮器のエンコーダ部が受領するデータサイズとするために、前記データにパディングするパディング器を備え、
前記符号化器は、前記圧縮器により圧縮されたデータを前記符号化器のハイパーエンコーダ部が受領するデータサイズとするために、前記データにパディングするパディング器を備える、
請求項6に記載のデータ処理システム。
【請求項8】
データを圧縮する圧縮器と、前記圧縮器により圧縮されたデータを伸長する伸長器とを含んで構成される圧縮伸長部を備えるデータ処理システムにおけるデータ処理方法であって、
前記圧縮伸長部が、
前記圧縮器の構成情報を出力することと、
前記圧縮器により圧縮されたデータを出力することと、
を含むデータ処理方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、概して、圧縮されているデータを処理するAI(Artificial Intelligence)に関する。
【背景技術】
【0002】
データ量を削減するストレージシステムが知られている(特許文献1参照)。その種のストレージシステムは、一般に、圧縮によりデータ量を削減する。既存の圧縮方法の1つとして、ランレングス法のように、所定のブロック単位内で出現頻度の高い文字列を辞書化し、より小さなサイズの符号に置換する方法が知られている。
【0003】
ランレングス法のような可逆圧縮よりも、データ量を削減する技術として、非可逆圧縮技術が知られている(特許文献2参照)。例えば、特許文献2に記載のストレージシステムは、ニューラルネットワークを用いた圧縮技術により、データを圧縮して格納するストレージシステムである。データが有する規則性を、ニューラルネットワークでモデル化することにより、データを圧縮する。
【0004】
ニューラルネットワークを用いた圧縮技術により圧縮したデータを、高速にAIで分析する技術が知られている(非特許文献1参照)。例えば、非特許文献1に記載の技術は、圧縮されたデータ(圧縮データ)を直接入力できるようにAIを改造することで、圧縮データの伸長処理を高速化する技術である。以下、非特許文献1で示されるようなAIを、高速伸長AIを呼ぶ。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2007-199891号公報
【特許文献2】特開2019-095913号公報
【非特許文献】
【0006】
【非特許文献1】Robert Torfason, Fabian Mentzer, Eirikur Agustsson, Michael Tschannen, Radu Timofte, Luc Van Gool, “Towards Image Understanding from Deep Compression without Decoding”, 2018.
【発明の概要】
【発明が解決しようとする課題】
【0007】
データの蓄積コスト削減の観点から、IoT(Internet-of-Things)機器が生成する大規模なデータの蓄積には、圧縮率の高い非可逆圧縮が求められると考えられる。また、大規模なデータを、高速に、AIで分析することが求められると考えられる。これらの要件を両立するために、特許文献2に記載のストレージシステムにより、非可逆圧縮して蓄積したデータを、高速伸長AIにより、高速に分析するシステムが考えられる。
【0008】
高速伸長AIの設計および学習には、入力となる圧縮データを生成するための、圧縮器の構成情報(例えば、圧縮データのテンソルのサイズ、値のレンジ、圧縮器本体等)が必要である。なぜなら、高速伸長AIが入力として受領するテンソルのサイズや値のレンジが、圧縮データのサイズや値のレンジと整合するように、高速伸長AIの構造を設計する必要があるためである。
【0009】
また、高速伸長AIの学習データを生成するために、圧縮器本体が必要である。例えば、画像分類を行うAIの学習においては、一般的に、画像データとクラスを表すラベルデータとのペアが学習データである。一方、高速伸長AIの学習においては、圧縮データとラベルデータとのペアが学習データとして必要である。このため、学習用の画像データに対応する圧縮データを生成するために、圧縮器本体が必要となる。
【0010】
また、高速伸長AIによりデータを分析する際には、伸長したデータではなく、圧縮データが必要である。
【0011】
しかしながら、特許文献2に示されるようなストレージシステムは、圧縮処理および伸長処理を内部で透過的に行うため、圧縮器本体や圧縮器の構成情報にストレージシステムの外部からアクセスすることができない。また、ストレージシステムの外部から、伸長前の圧縮データを取得することができない。このため、これらのストレージシステムにおいては、高速伸長AIを使用することができず、分析時の伸長時間が長くなるという課題がある。
【0012】
本発明は、以上の点を考慮してなされたもので、圧縮および伸長が行われる圧縮伸長部を利用可能な高速伸長AIを提供するためのデータ処理システム等を提案しようとするものである。
【課題を解決するための手段】
【0013】
かかる課題を解決するため本発明においては、データを圧縮する圧縮器と、前記圧縮器により圧縮されたデータを伸長する伸長器とを含んで構成される圧縮伸長部を備えるデータ処理システムであって、前記圧縮伸長部は、前記圧縮器の構成情報を出力可能な第1のインタフェース部と、前記圧縮器により圧縮されたデータを出力可能な第2のインタフェース部と、を設けるようにした。
【0014】
上記構成によれば、圧縮器の構成情報が出力されるので、例えば、当該圧縮器により圧縮されたデータを入力として分析処理等の推論が可能な高速伸長AIを生成し、生成した高速伸長AIを用いて推論できるようになる。また、上記構成によれば、圧縮伸長部の圧縮器により圧縮されたデータが伸長されることなく高速伸長AIに入力されるので、推論における伸長時間を短くすることができる。
【発明の効果】
【0015】
本発明によれば、圧縮および伸長が行われる圧縮伸長部を利用可能な高速伸長AIを提供できるようになる。
【図面の簡単な説明】
【0016】
図1】第1の実施の形態によるデータ処理システムの概要を説明するための図である。
図2】第1の実施の形態によるデータ処理システムの一例を示す図である。
図3】第1の実施の形態によるRAMの構成の一例を示す図である。
図4】第1の実施の形態によるRAMの構成の一例を示す図である。
図5】第1の実施の形態による圧縮器構成情報テーブルの構成の一例を示す図である。
図6】第1の実施の形態によるデータ書き込み処理の一例を示す図である。
図7】第1の実施の形態による伸長データ読み出し処理の一例を示す図である。
図8】第1の実施の形態による圧縮データ読み出し処理の一例を示す図である。
図9】第1の実施の形態による圧縮器構成情報応答処理の一例を示す図である。
図10】第1の実施の形態による高速伸長AI学習処理の一例を示す図である。
図11】第1の実施の形態による高速伸長AIモデルの生成例を示す図である。
図12】第1の実施の形態による高速伸長AI分析処理の一例を示す図である。
図13】第1の実施の形態による圧縮器および符号化器の構成の一例を示す図である。
【発明を実施するための形態】
【0017】
(I)第1の実施の形態
以下、本発明の一実施の形態を詳述する。本実施の形態は、データ量の削減と、高速な分析処理とに関するものである。ただし、本発明は、実施の形態に限定されるものではない。
【0018】
本実施の形態のデータ処理システムは、データを圧縮する圧縮器と、圧縮器により圧縮されたデータ(圧縮データ)を伸長する伸長器とを含んで構成される圧縮伸長部を備える。圧縮器および伸長器は、例えば、ニューラルネットワークである。圧縮伸長部は、第1のインタフェースにより、外部からの要求に対して、圧縮器の構成情報を応答する。さらに、データ処理システムは、取得した構成情報に基づいて、圧縮器モデルと高速伸長AIモデルとを生成するライブラリを備え、ライブラリによって、AIの学習プログラムが高速伸長AIを設計および学習できるようにする。さらに、圧縮伸長部は、第2のインタフェースにより、外部からの要求に対して、伸長前の圧縮データを応答する。
【0019】
上記構成によれば、例えば、ニューラルネットワークを用いた圧縮器によりデータを圧縮して蓄積するシステムにおいて、高速伸長AIを使用できるようになるため、特許文献2に記載の技術と比較して、分析時の伸長処理が高速化される。
【0020】
次に、本発明の実施の形態を図面に基づいて説明する。以下の記載および図面は、本発明を説明するための例示であって、説明の明確化のため、適宜、省略および簡略化がなされている。本発明は、他の種々の形態でも実施することが可能である。特に限定しない限り、各構成要素は、単数でも複数でも構わない。
【0021】
また、本明細書等における「第1」、「第2」、「第3」等の表記は、構成要素を識別するために付するものであり、必ずしも、数または順序を限定するものではない。また、構成要素の識別のための番号は、文脈毎に用いられ、1つの文脈で用いた番号が、他の文脈で必ずしも同一の構成を示すとは限らない。また、ある番号で識別された構成要素が、他の番号で識別された構成要素の機能を兼ねることを妨げるものではない。
【0022】
(1-1)概要
第1の実施の形態の概要について、図1を用いて説明する。
【0023】
本実施の形態のデータ処理システムは、データ生成源100、圧縮伸長部101、AI処理部102、およびストレージ112を含んで構成される。
【0024】
データ生成源100は、蓄積および分析の対象となるデータを生成する主体である。データ生成源100は、例えば、画像データを生成するイメージセンサである。データ生成源100およびデータ生成源100が生成するデータは、これに限定されるものではなく、例えば、動画データを生成する監視カメラ、1次元データを生成する振動センサ、ログデータを生成するソフトウェア等であってもよい。また、データ生成源100は、複数あってもよい。
【0025】
圧縮伸長部101は、データの圧縮およびデータの伸長を担うモジュールである。圧縮伸長部101は、圧縮器110、伸長器113、符号化器114、復号器115等を備える。圧縮器110および伸長器113は、例えば、ニューラルネットワークであり、オートエンコーダのエンコーダ部分およびデコーダ部分を用いて構成される。
【0026】
圧縮伸長部101は、データ生成源100からのデータの書き込み要求に対して、当該データを圧縮器110により圧縮データに変換したのち、符号化器114によりビット列に変換し、ストレージ112に格納する。
【0027】
圧縮伸長部101は、伸長したデータ(伸長データ103)の読み出し要求に対しては、対象となるデータのビット列をストレージ112から読み出したのち、復号器115で圧縮データに変換し、さらに、当該圧縮データに対して伸長器113により伸長処理を行い、伸長したデータ(伸長データ103)を要求元に応答する。
【0028】
一方、例えば高速伸長AI161による分析を行うために、圧縮データの読み出しを要求された場合、圧縮伸長部101は、対象となるデータのビット列をストレージ112から読み出したのち、復号器115で変換(復号)した圧縮データを要求元に応答する。この場合、伸長器113での伸長処理が省略されるため、伸長データの読み出し要求に応答する場合に比べ、分析時の伸長処理が高速化される。
【0029】
また、圧縮伸長部101は、圧縮器110に関する構成情報(圧縮器構成情報111)を管理しており、圧縮器構成情報111が要求された場合には、圧縮器構成情報111を要求元に応答する。
【0030】
AI処理部102は、高速伸長AI142の学習と、高速伸長AI142の学習が行われたAIである高速伸長AI161による分析とを行うモジュールである。AI処理部102は、ライブラリ120、高速伸長AI学習部140、高速伸長AI分析部160等を備える。
【0031】
ライブラリ120は、高速伸長AI142の学習に必要となる、圧縮器141のモデル(圧縮器モデル122)と、高速伸長AI142のモデル(高速伸長AIモデル123)とを提供するライブラリである。
【0032】
高速伸長AI学習部140は、高速伸長AI142の学習を行うプログラムである。高速伸長AI学習部140は、圧縮伸長部101に、圧縮器構成情報111を問い合わせ、ライブラリ120に設定情報121として設定する。ライブラリ120は、設定情報121に基づいて、学習済みの圧縮器モデル122と、未学習の高速伸長AIモデル123とを生成する。高速伸長AI学習部140は、学習データ130のうち、高速伸長AI142の入力となるデータ(学習入力データ131)を、圧縮器モデル122が動作可能に読み出されている圧縮器141により圧縮した圧縮データを入力として、正解ラベルデータ132を出力するように、損失関数143を用いて、高速伸長AIモデル123が動作可能に読み出されている高速伸長AI142を学習する。高速伸長AI学習部140は、学習が完了したのち、学習した高速伸長AI142のモデルをストレージ150に格納する。
【0033】
高速伸長AI分析部160は、ストレージ150から学習が完了した高速伸長AI142のモデルを取得し、高速伸長AI142のモデルを動作可能に読み出した高速伸長AI161を用いて、ストレージ112に蓄積したデータを分析するプログラムである。高速伸長AI分析部160は、圧縮伸長部101に、圧縮データの読み出しを要求し、取得した圧縮データを入力として、高速伸長AI161を実行し、分析結果を得る。
【0034】
(1-2)データ処理システム構成
本実施の形態のデータ処理システムの一例(データ処理システム200)について、図2を用いて説明する。
【0035】
圧縮伸長部101およびAI処理部102の各々は、プロセッサ、メモリ、ネットワークインタフェース等のハードウェア資源と、圧縮器、伸長器等のソフトウェア資源とを備えたコンピュータである。スイッチ201は、データ生成源100、圧縮伸長部101、およびAI処理部102を相互に接続する。
【0036】
圧縮伸長部101は、スイッチ210、プロセッサ220、I/F230(Front-end Interface)、RAM240、およびI/F250(Back-end Interface)を含んで構成される。I/F230は、圧縮伸長部101と、データ生成源100およびAI処理部102とを接続するためのインタフェースである。プロセッサ220は、スイッチ210を介して、RAM240に記録されたプログラム245および管理情報246(Metadata)を基に、圧縮伸長部101全体を制御する。I/F250は、圧縮伸長部101とストレージ112とを接続する。
【0037】
AI処理部102は、ストレージ150、I/F260(Front-end Interface)、スイッチ270、プロセッサ280、およびRAM290を含んで構成される。I/F260は、AI処理部102と、圧縮伸長部101等を接続するためのインタフェースである。プロセッサ280は、スイッチ270を介して、RAM290に記録されたプログラム291および管理情報292(Metadata)を基に、AI処理部102全体を制御する。
【0038】
プロセッサ220およびプロセッサ280は、CPU(Central Processing Unit)のような、汎用的な演算処理器のほかに、GPU(Graphical Processing Unit)やFPGA(Field Programmable Gate Array)のような、アクセラレータであってもよく、また、それらの組み合わせであってもよい。
【0039】
ストレージ112およびストレージ150は、HDD(Hard Disk Drive)、SSD(Solid State Drive)により構成されたブロックデバイスであってもよいし、ファイルストレージであってもよいし、コンテンツストレージであってもよいし、ストレージシステム上に構築されたボリュームであってもよいし、その他、データを蓄積する任意の方法で実現されてもよい。
【0040】
圧縮伸長部101とAI処理部102とは、以上で説明した構成要素を実装した、IC(Integrated Circuit)等のハードウェアを相互に接続した構成であってもよいし、そのいくつかが、ASIC(Application Specific Integrated Circuit)、FPGA等として、1つの半導体素子により実装される構成であってもよい。また、圧縮伸長部101とAI処理部102とは、異なるハードウェア装置あってもよいし、同一のコンピュータで動作する異なるVM(Virtual Machine)であってもよいし、同一のOS(Operating System)上で動作する異なるコンテナであってもよいし、同一のOS上で動作する異なるアプリケーションであってもよい。例えば、圧縮伸長部101、AI処理部102、およびストレージ112は、HCI(Hyper Converged Infrastructure)上で動作する個別のソフトウェアであってもよい。また、圧縮伸長部101およびAI処理部102は、複数のコンピュータから構成されるクラスタにより実現されてもよい。
【0041】
(1-3)RAM構成
図3に、AI処理部102のRAM290の構成の一例を示す。RAM290には、AI処理部102のプロセッサ280が実行するプログラム291と、プログラム291で用いる管理情報292とが含まれる。
【0042】
プログラム291は、高速伸長AI学習プログラム300、高速伸長AI分析プログラム301、圧縮器モデル生成プログラム302、および高速伸長AIモデル生成プログラム303を含んで構成される。管理情報292は、圧縮器構成情報設定テーブル310、学習入力データ131、および正解ラベルデータ132を含んで構成される。このうち、圧縮器モデル生成プログラム302、高速伸長AIモデル生成プログラム303、および圧縮器構成情報設定テーブル310は、ライブラリ120に含まれるプログラムおよび管理情報である。また、学習データ130は、RAM290に格納される代わりに、ストレージ150に格納されていてもよい。
【0043】
高速伸長AI学習プログラム300は、学習入力データ131と正解ラベルデータ132とからなる学習データ130を用いて、高速伸長AI142の学習を行うプログラムである。
【0044】
高速伸長AI分析プログラム301は、高速伸長AI学習プログラム300による学習が完了した高速伸長AI142、つまり高速伸長AI161を用いて、ストレージ112に蓄積したデータの分析を行うプログラムである。
【0045】
圧縮器モデル生成プログラム302は、高速伸長AI142の学習で必要となる学習済みの圧縮器141のモデルである圧縮器モデル122を、圧縮器構成情報設定テーブル310に設定された圧縮器110の構成情報に基づいて生成するプログラムである。
【0046】
高速伸長AIモデル生成プログラム303は、入力として与えられた所定のAIのモデル(入力AIモデル)を、圧縮器構成情報設定テーブル310に設定された、圧縮器110の構成情報に基づいて、高速伸長AIモデル123に変換するプログラムである。ただし、高速伸長AIモデル123は、未学習の状態で生成される。例えば、高速伸長AIモデル生成プログラム303は、画像を入力として、当該画像に写る数字を識別するニューラルネットワークのモデルを与えると、画像の圧縮データを入力として、数字を識別するような高速伸長AIのニューラルネットワークのモデルを生成する。詳細については、図11を用いて後述する。
【0047】
圧縮器構成情報設定テーブル310は、圧縮伸長部101から取得した圧縮器構成情報111(圧縮器110の構成情報)を管理するテーブルである。
【0048】
学習入力データ131および正解ラベルデータ132は、高速伸長AI142の学習に用いる学習データである。例えば、高速伸長AI142が、画像の圧縮データを入力として、当該画像に写る数字を識別するAIである場合は、学習入力データ131は、数字が写る画像群であり、正解ラベルデータ132は、各画像に写る数字を表すラベル群である。なお、学習データ130の構成は、学習入力データ131と正解ラベルデータ132とのペアに限定されるものではない。例えば、教師なし学習するAIを学習する場合、正解ラベルデータ132は存在しなくてもよい。また、入力に対して、複数のタスクを同時に実行する高速伸長AI142を学習する場合、学習データ130は、複数種類の正解ラベルデータ132を含んでいてもよい。また、ストレージ112に蓄積したデータを学習に用いる場合、学習データ130に学習入力データ131が含まれていなくてもよい。
【0049】
図4に、圧縮伸長部101のRAM240の構成の一例を示す。RAM240には、圧縮伸長部101のプロセッサ220が実行するプログラム245と、プログラム245で用いる管理情報246とが含まれる。
【0050】
プログラム245は、データ書き込みプログラム400、伸長データ読み出しプログラム401、圧縮データ読み出しプログラム402、および圧縮器構成情報応答プログラム403を含んで構成される。管理情報246は、圧縮器構成情報管理テーブル410を含んで構成される。
【0051】
データ書き込みプログラム400は、データ生成源100から受領したデータを、圧縮器110により圧縮し、符号化器114によりビット列に変換したのちに、ストレージ112に格納するプログラムである。
【0052】
伸長データ読み出しプログラム401は、外部からの伸長データの読み出し要求に対し、ストレージ112から対応するデータのビット列を読み出し、復号器115により圧縮データに復号したのち、伸長器113により伸長処理した伸長データを、要求元に応答するプログラムである。
【0053】
圧縮データ読み出しプログラム402は、外部からの圧縮データの読み出し要求に対し、ストレージ112から対応するデータのビット列を読み出し、復号器115により復号した圧縮データを、要求元に応答するプログラムである。
【0054】
圧縮器構成情報応答プログラム403は、外部からの圧縮器構成情報111の取得要求に対し、圧縮器構成情報管理テーブル410から圧縮器構成情報111を読み出し、要求元に応答するプログラムである。
【0055】
圧縮器構成情報管理テーブル410は、圧縮器構成情報111を管理するテーブルである。
【0056】
(1-4)テーブル構成
図5に、圧縮器構成情報テーブル500の構成の一例を示す。圧縮器構成情報設定テーブル310および圧縮器構成情報管理テーブル410は、圧縮器構成情報テーブル500の形式に基づいて圧縮器構成情報111を保持する。なお、圧縮器構成情報111の表現方法は、圧縮器構成情報テーブル500の形式に限られるものではなく、XML(Extensible Markup Language)、YAML(YAML Ain’t a Markup Language)、ハッシュテーブル、木構造等、テーブル以外のデータ構造によって表現されてもよい。
【0057】
圧縮器構成情報テーブル500は、構成パラメタ列510に示される圧縮器110のパラメタに対して、設定値列511に示される設定値を管理するテーブルである。図5に、圧縮器構成情報テーブル500で管理するパラメタの例を示す。なお、圧縮器構成情報テーブル500で管理するパラメタは、図5に示されるパラメタ以外に存在してもよいし、また、図5に示されるパラメタを除外してもよい。
【0058】
入力チャネル数520は、圧縮器110が入力するテンソルのチャネル数を表す。出力チャネル数521は、圧縮器110が出力するテンソルのチャネル数を表す。出力幅スケール522は、圧縮器110の入力テンソルの幅に対して、圧縮器110の出力テンソルの幅が何倍になるかを表す。出力高さスケール523は、圧縮器110の入力テンソルの高さに対して、圧縮器110の出力テンソルの高さが何倍になるかを表す。入力レンジ524は、圧縮器110が入力するテンソルの、各要素がとりうる値のレンジを表す。出力レンジ525は、圧縮器110が出力するテンソルの、各要素がとりうる値のレンジを表す。
【0059】
例えば、図5に示す構成では、圧縮器110は、RGB画像等の、各要素の値が0以上255以下の値を取る3チャネルの3次元データを入力として受領し、各要素の値が-3以上3以下で、チャネル数64かつ、高さおよび幅がそれぞれ入力の16分の1のサイズのテンソルを出力することを表す。
【0060】
重みパラメタ526は、圧縮器110を構成するニューラルネットワークの重み、バイアス等、学習されたパラメタを表す。パラメタは、Dictionary、ONNX(Open Neural Network eXchange)形式等、任意のデータ構造で表現されていればよい。
【0061】
(1-5)データ書き込み処理
図6は、データ書き込みプログラム400のフロー図である。圧縮伸長部101のプロセッサ220は、データ生成源100からのデータの書き込み要求をI/F230が受領するイベントを契機として、データ書き込みプログラム400を開始する(S600)。
【0062】
S601では、プロセッサ220が、I/F230で受領した書き込み対象のデータを取得し、圧縮器110により圧縮データに変換する。
【0063】
S602では、プロセッサ220が、S601で変換(生成)した圧縮データを、符号化器114によりビット列に変換する。例えば、単純には、テンソルの各要素の32ビット浮動小数点数を、Raster-scan Orderでバイナリ化することで、圧縮データを符号化できる。また、圧縮率を改善するために、圧縮データを算術符号等により、エントロピー符号化してもよい。ただし、符号化の方法は、これらに限定されるものではない。
【0064】
エントロピー符号化する場合の、圧縮器110と符号化器114との構成の一例を図13に示す。ただし、圧縮器110および符号化器114の構成は、これに限定されるものではない。
【0065】
圧縮器110は、パディング器1301、エンコーダ1303、および量子化器1304から構成される。エンコーダ1303は、例えば、畳み込みニューラルネットワークで構成されたオートエンコーダのエンコーダ部分である。畳み込みニューラルネットワークは、畳み込み層、バッチ正規化層(Batch Normalization層)、活性化関数等により構成され、一般に、実数からなるテンソルを出力する。量子化器1304は、エンコーダ1303が出力したテンソルの各要素の値を、離散的な値に丸める処理を行う。例えば、量子化器1304は、各要素の値を最も近い整数値に丸める量子化器や、各要素の値を、事前定義された有限個の値のうち、最も近いもので置き換える量子化器である。また、量子化器1304は、その他任意の量子化器でもよい。
【0066】
エンコーダ1303は、一般に、Pooling層やStride付きの畳み込み層により、入力テンソル1300よりも空間方向のサイズが小さいテンソルを出力する。例えば、Strideが「2」の畳み込み層を4段含む畳み込みニューラルネットワークの場合、入力テンソル1300の空間方向の各軸のサイズが16分の1になったテンソルが出力される。入力テンソル1300に、サイズが16の倍数でない空間方向の軸が含まれる場合、パディング器1301は、その軸のサイズが、元のサイズより大きい最小の16の倍数となるように、入力テンソル1300に要素を追加(パディング)する。
【0067】
パディング器1301は、例えば、「0」を追加するzero-paddingであってもよいし、その他任意の値を追加してもよい。例えば、入力テンソル1300の空間方向のサイズが幅126ピクセル、高さ129ピクセルである場合、パディング器1301は、左右に1ピクセルずつ、上に8ピクセル、下に7ピクセル分の「0」を挿入することで、幅128ピクセル、高さ144ピクセルのテンソル1302を生成し、エンコーダ1303および量子化器1304は、幅8ピクセル、高さ9ピクセルの圧縮データ1305を生成する。
【0068】
符号化器114は、パディング器1306、ハイパーエンコーダ1308、ハイパーデコーダ1310、コンテキスト推定器1311、ミキサ1312、確率生成器1313、およびエントロピー符号化器1314から構成される。ハイパーエンコーダ1308、ハイパーデコーダ1310、コンテキスト推定器1311、およびミキサ1312は、それぞれニューラルネットワークにより構成され、圧縮データ1305の各要素の値の出現確率を予測するためのパラメタを算出する。ハイパーエンコーダ1308およびハイパーデコーダ1310は、ハイパーエンコーダ1308の入力テンソルとハイパーデコーダ1310の出力テンソルのサイズが等しくなるように実装される。
【0069】
コンテキスト推定器1311は、例えば、Masked Convolution層により構成される。ミキサ1312は、ハイパーデコーダ1310の出力と、コンテキスト推定器1311の出力とを入力として、確率予測に必要なパラメタを出力する。確率生成器1313は、ミキサ1312の出力を基にして、圧縮データ1305の各要素の値の出現確率を算出する。例えば、ミキサ1312の出力は、圧縮データ1305の各要素の平均値と標準偏差とを表しており、確率生成器1313は、それらのパラメタで表されるガウス分布により、各要素の値の確率を計算する。エントロピー符号化器1314は、例えば、算術符号化器であり、確率生成器1313が生成した確率を使用して、圧縮データ1305をビット列1315に変換する。
【0070】
ハイパーエンコーダ1308およびハイパーデコーダ1310は、例えば、Stride付きの畳み込みニューラルネットワークで構成されるため、エンコーダ1303と同様に、ハイパーエンコーダ1308に入力されるテンソル1307は、空間方向の軸のサイズが特定の整数の倍数になっている必要がある。パディング器1306は、この条件を満たすように、圧縮データ1305のサイズを変換して、テンソル1307を出力する。パディング器1306は、パディング器1301と同様に、上下左右に均等に値が「0」の要素を追加するものでもよいが、コンテキスト推定器1311の出力テンソルと、ハイパーデコーダ1310の出力テンソルとの座標が整合するように、下と右に寄せて要素を追加してもよい。
【0071】
また、パディング器1301において、パディング器1306で必要となる量の要素をまとめて追加してもよい。例えば、エンコーダ1303がStride「2」の畳み込み層4段、ハイパーエンコーダ1308がStride「2」の畳み込み層2段から構成される場合、パディング器1301にて、空間軸のサイズが64の倍数となるように要素を追加することで、パディング器1306を省略してもよい。しかし、パディング器1301で16の倍数となるように、パディング器1306で4の倍数となるように、それぞれで要素を追加する、図13に示す構成とする方が、圧縮データ1305の要素数が小さくなるため、よりよい圧縮率が期待できる。
【0072】
S603では、プロセッサ220が、S602で生成したビット列をストレージ112に格納する。その後、データ書き込みプログラム400は終了する(S604)。
【0073】
(1-6)伸長データ読み出し処理
図7は、伸長データ読み出しプログラム401のフロー図である。圧縮伸長部101のプロセッサ220は、伸長データの読み出し要求をI/F230が受領するイベントを契機として、伸長データ読み出しプログラム401を開始する(S700)。なお、要求の発行主体は、例えば、AI処理部102であるが、その他、スイッチ201に接続された任意のハードウェア、仮想化されたハードウェア等であってもよい。
【0074】
S701では、プロセッサ220が、読み出し対象のデータに対応するビット列を、ストレージ112から取得する。
【0075】
S702では、プロセッサ220が、復号器115を用いて、ビット列を圧縮データに復号する。
【0076】
S703では、プロセッサ220が、伸長器113を用いて、圧縮データを、圧縮前と同一フォーマットのデータに伸長する。
【0077】
S704では、プロセッサ220が、S703において取得した伸長データを、I/F230を介して、要求元に応答する。その後、伸長データ読み出しプログラム401は、終了する(S705)。
【0078】
(1-7)圧縮データ読み出し処理
図8は、圧縮データ読み出しプログラム402のフロー図である。圧縮伸長部101のプロセッサ220は、圧縮データの読み出し要求をI/F230が受領するイベントを契機として、圧縮データ読み出しプログラム402を開始する(S800)。なお、要求の発行主体は、例えば、AI処理部102であるが、その他、スイッチ201に接続された任意のハードウェア、仮想化されたハードウェア等であってもよい。
【0079】
S801では、プロセッサ220が、読み出し対象のデータに対応するビット列を、ストレージ112から取得する。
【0080】
S802では、プロセッサ220が、復号器115を用いて、ビット列を圧縮データに復号する。
【0081】
S803では、プロセッサ220が、S802において取得した圧縮データを、I/F230を介して、要求元に応答する。その後、圧縮データ読み出しプログラム402は、終了する(S804)。
【0082】
圧縮データ読み出しプログラム402では、伸長データ読み出しプログラム401において必要であった、伸長器113で圧縮データを伸長するS703が不要であるため、分析時の伸長処理が高速化される。
【0083】
(1-8)圧縮器構成情報応答処理
図9は、圧縮器構成情報応答プログラム403のフロー図である。圧縮伸長部101のプロセッサ220は、圧縮器構成情報111の取得要求をI/F230が受領するイベントを契機として、圧縮器構成情報応答プログラム403を開始する(S900)。なお、要求の発行主体は、例えば、AI処理部102であるが、その他、スイッチ201に接続された任意のハードウェア、仮想化されたハードウェア等であってもよい。
【0084】
S901では、プロセッサ220が、圧縮器構成情報管理テーブル410から、圧縮器構成情報111を取得する。
【0085】
S902では、プロセッサ220が、S901で取得した圧縮器構成情報111を要求元に応答する。その後、圧縮器構成情報応答プログラム403は、終了する(S903)。
【0086】
(1-9)高速伸長AI学習処理
図10は、高速伸長AI学習プログラム300のフロー図である。AI処理部102のプロセッサ280が高速伸長AI学習プログラム300の実行を開始する契機は、例えば、ユーザがキーボード等の外部入力デバイスを用いてAI処理部102に指示したタイミングであるが、その他、任意のイベントを契機としてもよい。なお、高速伸長AI学習プログラム300は、AIの設計者によって記述されるものであり、図10に示すフローは一例であって、ライブラリ120を用いて高速伸長AI142を学習するプログラムであれば、これとは異なる処理が記述されていてもよい。
【0087】
S1001では、プロセッサ280が、I/F250を介して、圧縮伸長部101に、圧縮器構成情報111を要求する。この要求に基づいて、圧縮伸長部101にて、圧縮器構成情報応答プログラム403が実行され、応答された圧縮器構成情報111がI/F250で受領される。
【0088】
S1002では、プロセッサ280が、I/F250で受領した圧縮器構成情報111を、圧縮器構成情報設定テーブル310に設定する。プロセッサ280は、高速伸長AI学習プログラム300に記述されたステップに従って、ライブラリ120に含まれる圧縮器構成情報設定テーブル310に情報を書き込んでもよいし、ライブラリ120が提供するAPI(Application Programming Interface)を用いて書き込んでもよい。
【0089】
S1003では、プロセッサ280が、圧縮器モデル生成プログラム302をサブルーチンコールして、学習済みの圧縮器モデル122を取得する。圧縮器モデル生成プログラム302は、圧縮器構成情報設定テーブル310に格納された、圧縮器110のニューラルネットワークの構造や、重みパラメタ526の情報を基に、圧縮器モデル122を生成する。
【0090】
S1004では、プロセッサ280が、高速伸長AIモデル生成プログラム303をサブルーチンコールして、未学習の高速伸長AIモデル123を取得する。高速伸長AIモデル生成プログラム303は、圧縮器構成情報設定テーブル310に格納された圧縮器110の構成情報と、高速伸長AIモデル生成プログラム303の引数として与えられた入力AIモデルとを基にして、高速伸長AIモデル123を生成する。
【0091】
高速伸長AIモデル123の生成例を図11に示す。入力AIモデル1110のニューラルネットワークとして、128x128のRGB画像を入力として、当該RGB画像に写る数字を識別し、長さ10のワンホットベクトルとして出力するAI1105を想定する。また、圧縮器110として、RGB画像(各要素の値のレンジは0以上255以下)を入力して、幅および高さがそれぞれ16分の1となるチャネル数64のテンソル(各要素の値のレンジは-3以上3以下)を出力するものを想定する。
【0092】
この場合、高速伸長AIモデル生成プログラム303では、圧縮器構成情報設定テーブル310に格納された圧縮器110の構成情報を基に、値のレンジが-3~3でサイズが64x8x8の圧縮データを、値のレンジが0~255でサイズが3x128x128のテンソルに変換する前処理ユニット1100が構築される。
【0093】
前処理ユニット1100は、例えば、各要素の値を「3」で割ることにより、値のレンジを-3~3から-1~1に変換する正規化層1101、64チャネルのテンソルを3チャネルに変換する畳み込み層1102、線形補間によりテンソルの幅と高さとをそれぞれ16倍に拡大するInterpolation層1103、各要素の値を255倍することで、レンジを0~255に変換するDenormalization層1104により、構成することができる。このように、高速伸長AIモデル生成プログラム303は、生成した前処理ユニット1100と、与えられた入力AIモデル1110とを連結することにより、圧縮データを入力として、長さ10のベクトルを出力する、高速伸長AI1106の高速伸長AIモデル123を生成することができる。
【0094】
ただし、前処理ユニット1100は、ここで記した以外の方法で生成されてもよい。また、圧縮器110と同様に、AI1105が畳み込みニューラルネットワーク等で構成されている場合、高速伸長AIモデル生成プログラム303は、前処理ユニット1100を生成する代わりに、圧縮データのサイズのテンソルを入力できるように、入力AIモデル1110の前段の畳み込み層を除去することで、高速伸長AIモデル123を生成してもよいし、入力AIモデル1110の前段の畳み込み層のStrideを「1」に変更したり、Pooling層を除去したりすることで、高速伸長AIモデル123を生成してもよい。
【0095】
S1006では、プロセッサ280が、学習データ130から、学習入力データ131と正解ラベルデータ132とをサンプリングして取得する。
【0096】
S1007は、プロセッサ280が、S1006で取得した学習入力データ131と正解ラベルデータ132とに対して、水増し処理を行う。水増し処理は、例えば、ランダムに回転、反転、リサイズする処理や、データを同一サイズのパッチに切り出す処理等が含まれる。なお、水増し処理が不要であれば、このステップは省略されてもよい。
【0097】
S1008では、プロセッサ280が、S1007で生成した学習入力データ131を、S1003で取得した圧縮器モデル122が実行可能にRAM290にロードされた圧縮器141に入力し、圧縮データを取得する。
【0098】
S1009では、プロセッサ280が、S1008で生成した圧縮データを入力として、S1007で生成した正解ラベルデータ132を出力するように、S1004で取得した高速伸長AIモデル123が実行可能にRAM290にロードされた高速伸長AI142のパラメタを更新する。例えば、プロセッサ280は、ニューラルネットワークで構成された高速伸長AI142に対して、圧縮データを入力し、その出力値と正解ラベルデータ132との差を損失関数143で評価し、各パラメタにおける微分値を逆誤差伝播法等で算出し、Adam等の最適化アルゴリズムにより、各パラメタを更新する。ただし、高速伸長AI142の学習アルゴリズムは、これに限定されるものではない。
【0099】
S1006~S1009は、高速伸長AI142の学習が収束する等、所定の条件を満たすまで繰り返し実行される(S1005)。
【0100】
学習が終了したら、プロセッサ280は、学習した高速伸長AI142のモデルをストレージ150に格納し、高速伸長AI学習プログラム300を終了する(S1011)。
【0101】
(1-10)高速伸長AI分析処理
図12は、高速伸長AI分析プログラム301のフロー図である。AI処理部102のプロセッサ280が高速伸長AI分析プログラム301の実行を開始する契機は、例えば、ユーザがキーボード等の外部入力デバイスを用いてAI処理部102に指示したタイミングであるが、その他、任意のイベントを契機としてもよい。なお、高速伸長AI分析プログラム301は、AIの設計者によって記述されるものであり、図12に示すフローは一例であって、高速伸長AI161を実行するステップが含まれていれば、これと異なる処理が記述されていてもよい。
【0102】
S1201では、プロセッサ280が、学習済みの高速伸長AI142のモデルを、ストレージ150から取得する。
【0103】
S1202では、プロセッサ280が、I/F250を介して、圧縮伸長部101に、分析対象とする圧縮データを要求する。要求に基づいて、圧縮伸長部101にて、圧縮データ読み出しプログラム402が実行され、応答された圧縮データがI/F250で受領される。
【0104】
S1203では、プロセッサ280が、I/F250にて受領した圧縮データを、S1201で取得した高速伸長AI142のモデルが実行可能にRAM290にロードされた高速伸長AI161に入力し、分析結果を取得する。その後、プロセッサ280は、高速伸長AI分析プログラム301を終了する(S1204)。
【0105】
なお、プロセッサ280は、S1202~S1203を繰り返すことで、複数のデータに対して高速伸長AI161による分析を行ってもよいし、S1203で得た分析結果を、さらに加工する処理がS1203に続いてもよい。
【0106】
以上、本発明が適用されるシステムの例について説明した。
【0107】
(II)付記
上述の実施の形態には、例えば、以下のような内容が含まれる。
【0108】
上述の実施の形態においては、本発明をデータ処理システムに適用するようにした場合について述べたが、本発明はこれに限らず、この他種々のシステム、装置、方法、プログラムに広く適用することができる。
【0109】
また、上述の実施の形態において、プログラムの一部またはすべては、プログラムソースから、圧縮伸長部101、AI処理部102等を実現するコンピュータのような装置にインストールされてもよい。プログラムソースは、例えば、ネットワークで接続されたプログラム配布サーバまたはコンピュータが読み取り可能な記録媒体(例えば非一時的な記録媒体)であってもよい。また、上述の説明において、2以上のプログラムが1つのプログラムとして実現されてもよいし、1つのプログラムが2以上のプログラムとして実現されてもよい。
【0110】
上述した実施の形態は、例えば、以下の特徴的な構成を有する。
【0111】
(1)
データを圧縮する圧縮器(例えば、圧縮器110)と、上記圧縮器により圧縮されたデータを伸長する伸長器(例えば、伸長器113)とを含んで構成される圧縮伸長部(例えば、圧縮伸長部101)を備えるデータ処理システム(例えば、データ処理システム200)であって、上記圧縮伸長部は、上記圧縮器の構成情報を出力可能な第1のインタフェース部(例えば、圧縮器構成情報応答プログラム403、プロセッサ220、回路)と、上記圧縮器により圧縮されたデータを出力可能な第2のインタフェース部(例えば、圧縮データ読み出しプログラム402、プロセッサ220、回路)と、を備える。
【0112】
上記圧縮伸長部は、ストレージに設けられていてもよいし、VM、コンテナ、アプリケーション等であってもよい。
【0113】
上記構成によれば、圧縮器の構成情報が出力されるので、例えば、当該圧縮器により圧縮されたデータを入力として分析処理等の推論が可能な高速伸長AIを生成し、生成した高速伸長AIを用いて推論できるようになる。また、上記構成によれば、圧縮伸長部の圧縮器により圧縮されたデータが伸長されることなく高速伸長AIに入力されるので、推論における伸長時間を短くすることができる。
【0114】
(2)
上記データ処理システムは、上記第1のインタフェース部により出力された上記圧縮器の構成情報(例えば、圧縮器構成情報111)から上記圧縮器のモデル(例えば、圧縮器モデル122)を生成し、上記圧縮器の構成情報と所定のAI(Artificial Intelligence)のモデル(例えば、入力AIモデル1110)とから、上記圧縮器により圧縮されたデータを入力とする高速伸長AIのモデル(例えば、高速伸長AIモデル123)を生成する生成部(例えば、ライブラリ120、圧縮器モデル生成プログラム302および高速伸長AIモデル生成プログラム303、プロセッサ280、回路)を備える。
【0115】
上記構成によれば、圧縮器のモデルと、高速伸長AIのモデルが生成部により生成されるので、例えば、これらのモデルを手作業で生成する必要がなく、高速伸長AIを容易に生成することができる。
【0116】
(3)
上記生成部は、上記構成情報から、上記圧縮器により圧縮されたデータを上記所定のAIに入力されるデータ形式に変換するための前処理ユニット(例えば、前処理ユニット1100)を生成し、生成した前処理ユニットと上記所定のAIのモデルとを結合し、上記高速伸長AIのモデルを生成する。
【0117】
上記構成によれば、所定のAIのモデルにおける層等の構成を変更することなく、高速伸長AIを生成することができる。
【0118】
(4)
上記データ処理システムは、上記圧縮器のモデルが動作可能に読み込まれた圧縮器(例えば、圧縮器141)により学習データ(例えば、学習データ130)が圧縮されたデータを入力として、上記高速伸長AIのモデルが動作可能に読み込まれた高速伸長AI(例えば、高速伸長AI142)を学習する学習部(例えば、高速伸長AI学習部140、高速伸長AI学習プログラム300、プロセッサ280、回路)を備える。
【0119】
上記構成によれば、高速伸長AIが学習されるので、例えば、学習済みの高速伸長AIを容易に利用することができる。
【0120】
(5)
上記所定のAIは、データの分析処理を行うAI(例えば、AI1105)であり、上記データ処理システムは、上記第2のインタフェース部により出力された上記圧縮器により圧縮されたデータと、上記学習部により学習された上記高速伸長AIとを用いて、上記データの分析処理を行う分析部(例えば、高速伸長AI分析部160、高速伸長AI分析プログラム301、プロセッサ280、回路)を備える。
【0121】
上記構成によれば、例えば、データの分析処理を高速化することができる。
【0122】
(6)
上記圧縮伸長部は、上記圧縮器により圧縮されたデータを符号化する符号化器(例えば、符号化器114)と、上記符号化器により符号化されたデータを復号する復号器(例えば、復号器115)とを含んで構成され、上記データ処理システムは、上記符号化器を用いて上記圧縮器により圧縮されたデータを符号化したデータをストレージ(例えば、ストレージ112)に記憶する第3のインタフェース部(例えば、データ書き込みプログラム400、プロセッサ220、回路)と、上記ストレージからデータを読み出し、読み出したデータを上記復号器により復号し、復号したデータを上記伸長器により伸長し、伸長したデータを出力する第4のインタフェース部(例えば、伸長データ読み出しプログラム401、プロセッサ220、回路)と、を備え、上記第2のインタフェース部は、上記ストレージからデータを読み出し、読み出したデータを上記復号器により復号し、復号したデータを出力する(例えば、図8参照)。
【0123】
上記構成では、圧縮されて符号化されたデータがストレージに記憶されるので、例えば、ストレージのデータ量を削減すると共に、推論を高速化することができる。
【0124】
(7)
上記圧縮器は、入力されたデータを上記圧縮器のエンコーダ部(例えば、エンコーダ1303)が受領するデータサイズとするために、上記データにパディングするパディング器(例えば、パディング器1301)を備え、上記符号化器は、上記圧縮器により圧縮されたデータを上記符号化器のハイパーエンコーダ部(例えば、ハイパーエンコーダ1308)が受領するデータサイズとするために、上記データにパディングするパディング器(例えば、パディング器1306)を備える。
【0125】
上記構成によれば、圧縮器による圧縮後のデータの要素数を少なくすることができるので、例えば、圧縮率が向上し、ストレージのデータ量をさらに削減することができる。
【0126】
また上述した構成については、本発明の要旨を超えない範囲において、適宜に、変更したり、組み替えたり、組み合わせたり、省略したりしてもよい。
【符号の説明】
【0127】
101……圧縮伸長部、402……圧縮データ読み出しプログラム、403……圧縮器構成情報応答プログラム。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13