JP7336995B2 - ストレージシステム、及び、記憶制御方法 - Google Patents

ストレージシステム、及び、記憶制御方法 Download PDF

Info

Publication number
JP7336995B2
JP7336995B2 JP2020002919A JP2020002919A JP7336995B2 JP 7336995 B2 JP7336995 B2 JP 7336995B2 JP 2020002919 A JP2020002919 A JP 2020002919A JP 2020002919 A JP2020002919 A JP 2020002919A JP 7336995 B2 JP7336995 B2 JP 7336995B2
Authority
JP
Japan
Prior art keywords
data set
scale
data
dimension
multidimensional
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2020002919A
Other languages
English (en)
Other versions
JP2021111882A (ja
Inventor
弘明 圷
貴洋 成子
彬史 鈴木
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2020002919A priority Critical patent/JP7336995B2/ja
Priority to US17/761,782 priority patent/US11922018B2/en
Priority to PCT/JP2020/047314 priority patent/WO2021140867A1/ja
Publication of JP2021111882A publication Critical patent/JP2021111882A/ja
Application granted granted Critical
Publication of JP7336995B2 publication Critical patent/JP7336995B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0661Format or protocol conversion arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • G06N3/0455Auto-encoder networks; Encoder-decoder networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/0464Convolutional networks [CNN, ConvNet]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/0495Quantised networks; Sparse networks; Compressed networks
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/12Formatting, e.g. arrangement of data block or words on the record carriers
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/60General implementation details not specific to a particular type of compression
    • H03M7/6041Compression optimized for errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N7/00Computing arrangements based on specific mathematical models
    • G06N7/01Probabilistic graphical models, e.g. probabilistic networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Evolutionary Computation (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Artificial Intelligence (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Signal Processing (AREA)
  • Algebra (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Complex Calculations (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Description

本発明は、概して、記憶制御、例えば、圧縮制御に関する。
データの圧縮を行うストレージシステムとして、例えば特許文献1に開示の技術がある。
特開2019-95913号公報
産業界の生産性向上に向け、IoT(Internet of things)に対する期待が高まっており、IoTデータ(例えば、種々のデバイスから取得されるデータ)は増加し続けている。このため、多くの記憶容量が必要となる。
また、データの多次元化及び多様化が進んでいる。データの多次元化の一例として、データ次元の増加が挙げられる。データの多様化の一例として、データ次元の多様化が挙げられる。例えば、イメージセンサに関し、多波長のデータを取得する分光イメージングや、TOF(Time Of Flight)カメラによる距離計測などがある。多次元データは一次元データに比べればデータ量が多く、IoTデータとして、多次元データが増えると、ますます多くの記憶容量が必要となる。また、データの多次元化及び多様化は、最適な圧縮器の生成を煩雑化する。圧縮器が最適でないと、圧縮率が悪い。
以上のような課題は、IoT以外の分野についてもあり得る。
ストレージシステムが、多次元データセットのデータ次元毎の属性を表す情報である次元設定情報を参照し、当該次元設定情報を基に圧縮器を生成する。
多次元データセットの次元数及び様式に関わらず最適な(情報の劣化とそれに対するビットレートを最小化すること)圧縮器を生成することができる(可逆圧縮が採用される場合、情報の劣化は無く、情報の劣化が無い場合のビットレート最小化が期待される)。
実施形態1に係るシステム全体の構成を示す。 論物変換テーブルの構成を示す。 次元設定テーブルの構成を示す。 品質設定テーブルの構成を示す。 圧縮器生成処理の流れを示す。 ネットワーク学習の概要を示す。 ライト処理の流れを示す。 符号化処理の概要の一例を示す。 リード処理の流れを示す。 復号処理の概要の一例を示す。 パターン検索処理の流れを示す。 実施形態2の概要を示す。 実施形態3に係る符号化器のカーネル構成を示す。 実施形態3に係る復号器のカーネル構成を示す。 実施形態4に係る第1の超解像学習の概要を示す。 実施形態4に係る第1の超解像学習後の符号化処理の概要を示す。 実施形態4に係る第1の超解像学習後の復号処理の概要を示す。 実施形態4に係る第2の超解像学習の概要を示す。 実施形態5に係るネットワーク学習のうちスケール1に対応した部分の概要を示す。
以下の説明では、「インターフェース装置」は、一つ以上の通信インターフェースデバイスでよい。一つ以上の通信インターフェースデバイスは、一つ以上の同種の通信インターフェースデバイス(例えば一つ以上のNIC(Network Interface Card))であってもよいし二つ以上の異種の通信インターフェースデバイス(例えばNICとHBA(Host Bus Adapter))であってもよい。
また、以下の説明では、「メモリ」は、一つ以上のメモリデバイスであり、典型的には主記憶デバイスでよい。メモリにおける少なくとも一つのメモリデバイスは、揮発性メモリデバイスであってもよいし不揮発性メモリデバイスであってもよい。
また、以下の説明では、「永続記憶装置」は、一つ以上の永続記憶デバイスである。永続記憶デバイスは、典型的には、不揮発性の記憶デバイス(例えば補助記憶デバイス)であり、具体的には、例えば、HDD(Hard Disk Drive)又はSSD(Solid State Drive)である。
また、以下の説明では、「記憶装置」は、永続記憶装置のような物理的な記憶装置でもよいし、物理的な記憶装置に関連付けられた論理的な記憶装置でもよい。
また、以下の説明では、「プロセッサ」は、一つ以上のプロセッサデバイスである。少なくとも一つのプロセッサデバイスは、典型的には、CPU(Central Processing Unit)のようなマイクロプロセッサデバイスであるが、GPU(Graphics Processing Unit)のような他種のプロセッサデバイスでもよい。少なくとも一つのプロセッサデバイスは、シングルコアでもよいしマルチコアでもよい。少なくとも一つのプロセッサデバイスは、プロセッサコアでもよい。少なくとも一つのプロセッサデバイスは、処理の一部又は全部を行うハードウェア回路(例えばFPGA(Field-Programmable Gate Array)又はASIC(Application Specific Integrated Circuit))といった広義のプロセッサデバイスでもよい。
また、以下の説明では、「xxxテーブル」といった表現にて、入力に対して出力が得られる情報を説明することがあるが、当該情報は、どのような構造のデータでもよいし、入力に対する出力を発生するニューラルネットワークのような学習モデルでもよい。従って、「xxxテーブル」を「xxx情報」と言うことができる。また、以下の説明において、各テーブルの構成は一例であり、一つのテーブルは、二つ以上のテーブルに分割されてもよいし、二つ以上のテーブルの全部又は一部が一つのテーブルであってもよい。
また、以下の説明では、「yyy器」の表現にて機能を説明することがあるが、機能は、一つ以上のコンピュータプログラムがプロセッサによって実行されることで実現されてもよいし、一つ以上のハードウェア回路(例えばFPGA又はASIC)によって実現されてもよい。プログラムがプロセッサによって実行されることで機能が実現される場合、定められた処理が、適宜に記憶装置及び/又はインターフェース装置等を用いながら行われるため、機能はプロセッサの少なくとも一部とされてもよい。機能を主語として説明された処理は、プロセッサあるいはそのプロセッサを有する装置が行う処理としてもよい。プログラムは、プログラムソースからインストールされてもよい。プログラムソースは、例えば、プログラム配布計算機又は計算機が読み取り可能な記録媒体(例えば非一時的な記録媒体)であってもよい。各機能の説明は一例であり、複数の機能が一つの機能にまとめられたり、一つの機能が複数の機能に分割されたりしてもよい。なお、yyy器として、例えば、圧縮器、符号化器(エンコーダ)、復号器(デコーダ)、量子化器(クオンタイザ)、エントロピー見積器(エントロピーエスティメータ)、制御器がある。
また、以下の説明では、「データセット」は、アプリケーションプログラムのようなプログラムから見た1つの論理的な電子データの塊であり、例えば、レコード、ファイル、キーバリューペアおよびタプルのうちのいずれでもよい。
また、以下の説明では、同種の要素を区別しないで説明する場合には、参照符号のうちの共通部分を使用し、同種の要素を区別する場合は、参照符号を使用することがある。例えば、ストレージシステムを区別しない場合には、「ストレージシステム110」と言い、ストレージシステム110を区別する場合には、「ストレージシステム110E」、「ストレージシステム110C」のように言うことがある。
以下、本発明の幾つかの実施形態を説明する。なお、以下のいずれの実施形態でも、圧縮は、可逆圧縮でも非可逆圧縮でもよい。
[実施形態1]
図1は、実施形態1に係るシステム全体の構成を示す。
複数のエッジシステム101と一つ以上のコアシステム103が存在する。コアシステム103が、ネットワーク102(例えば、インターネット又はWAN(Wide Area Network))を介して、エッジシステム101と通信する。コアシステム103につき一つ以上のエッジシステム101が存在する。以下、説明を簡単にするため、一つのエッジシステム101と一つのコアシステム103を例に取る。
エッジシステム101は、ユーザシステム115Eとストレージシステム110Eとを含む。
ユーザシステム115Eは、物理的なシステム(例えば、物理的な一つ以上の計算機)であってもよいし、複数種類の計算資源(例えば、インターフェース装置、記憶装置、メモリ及びそれらに接続されたプロセッサ)を有する物理的なシステム上に設けられたシステム(例えば、仮想的な計算機)であってもよい。ユーザシステム115Eは、一つ以上のセンサが接続されたシステムであってもよいし、一つ以上のセンサを備えるシステムでもよい。ユーザシステム115Eは、センシング、エッジ処理、空間マッピング、データ書込み、データ読出し、及びパターン検索の少なくとも一つを行うことができる。
「センシング」とは、一つ以上のセンサから多次元データセットを収集することである。
「エッジ処理」とは、収集された多次元データセットをそのまま又は加工してコアシステム103に送信する処理である。なお、ユーザシステム115Eがエッジ処理を行うことに代えて又は加えて、ストレージシステム110Eに書き込まれた多次元データセットが、そのまま、又は、ストレージシステム110E及び110Cの少なくとも一つにより加工されて、コアシステム103内のストレージシステム110Cに書き込まれてよい。
「空間マッピング」とは、多次元データセットを、ストレージシステム110Eが提供する仮想空間61Eにマッピングすること、例えば、現実空間の座標系における座標(例えば、データ次元毎の値)を仮想空間61Eの座標系における座標(例えば、仮想次元毎のアドレス)に変換するアフィン変換である。
「データ書込み」とは、ライト対象の多次元データセットを仮想空間61Eに書き込むことのライト要求をストレージシステム110Eに送信することである。ライト要求に応答して、多次元データセットがストレージシステム110Eにより書き込まれる。
「データ読出し」とは、リード対象の多次元データセットを仮想空間61Eから読み出すことのリード要求をストレージシステム110Eに送信することである。リード要求に応答して、多次元データセットがストレージシステム110Eにより読み出されユーザシステム115Eに送信される。
「パターン検索」とは、指定したデータパターンとの類似度が一定値以上のパターンを持つデータの検索要求であるパターン検索要求をストレージシステム110Eに送信することである。パターン要求に応答して、見つかった多次元データセットのアドレス(又は、見つかったデータそれ自体)がストレージシステム110Eによりユーザシステム115Eに送信される。
ストレージシステム110Eは、図示しない内部ネットワーク(例えばLAN(Local Area Network))を介して、ユーザシステム115Eと通信する。ストレージシステム110Eは、インターフェース装置51E、永続記憶装置54E、メモリ52E及びそれらに接続されたプロセッサ53Eを有する。インターフェース装置51Eは、ネットワーク102、及び、上記図示しない内部ネットワークに接続される。メモリ52Eは、後述の論物テーブルを含む管理情報、及び、一つ以上のコンピュータプログラムを格納する。プロセッサ53Eが、一つ以上のコンピュータプログラムを実行する。
少なくとも一部のコンピュータプログラムがプロセッサ53Eにより実行されることで、圧縮器70E及び制御器71Eが実現される。
圧縮器70Eは、符号化(圧縮)と復号(伸張)の両方を行うことができる。圧縮器70Eは、「圧縮伸長器70E」と呼ばれてもよい。ライト対象の多次元データセットが、圧縮器70Eにより符号化される。また、物理空間60Eから読み出された符号化データ(圧縮された多次元データセット)が、圧縮器70Eにより復号される。
制御器71Eは、圧縮器70Eに学習を実行させたり、ストレージシステム110Eに対する要求を処理したりする。
制御器71Eが、一つ以上の仮想空間61Eを提供し、一つ以上の物理空間60Eを管理する。
仮想空間61Eは、多次元のアドレス空間である。仮想空間61Eを定義する複数の次元(複数の仮想次元)は、多次元データセットに属する複数の次元(複数のデータ次元)と同じである。仮想空間61Eへのアクセスに使用されるアドレス情報である論理アドレス情報は、仮想空間61EのIDと、当該仮想空間61Eを定義する複数の仮想次元の各々に属するアドレスとを含む。
物理空間60Eは、永続記憶装置54Eが提供する一次元のアドレス空間(例えば、LBA(Logical Block Address)の空間)である。
ユーザシステム115Eから論理アドレス情報(例えば、仮想空間61EのIDと当該仮想空間61Eにおけるアドレスとを含む情報)が指定されてもよいが、本実施例では、制御器71Eが、ユーザシステム115Eからのライト要求又はリード要求で指定されているアクセス先情報(例えば、多次元データセットのID、又は、現実空間におけるアドレス)を論理アドレス情報(例えば、次元毎のアドレス群を含んだ情報)に変換し、変換後の論理アドレス情報から物理アドレス情報(例えば、物理空間60EのIDと当該物理空間60Eにおけるアドレスとを含む情報)を特定してよい。
図1の例によれば、ストレージシステム110は、オンプレミス型のストレージシステムのような物理的なストレージシステム(例えば、一つ以上の物理的なストレージ装置)であるが、それに代えて、クラウド型のストレージシステムのような仮想的なストレージシステム(例えば、複数種類の計算資源を有するシステム上に実現されるシステム)でもよい。計算資源は、プロセッサやメモリのようなハードウェア資源でもよいし、インスタンスに相当してもよい。
コアシステム103は、ユーザシステム115Cとストレージシステム110Cとを含む。
ユーザシステム115Cは、ユーザシステム115Eと次の点で相違する。すなわち、ユーザシステム115Cは、センシング、エッジ処理及び空間マッピングを行わないでよい。また、ユーザシステム115Cは、コア処理を行う。「コア処理」とは、一つ以上のエッジシステム101の各々から多次元データセット(センシングにより取得された多次元データセット又はそれの加工後の多次元データセット)を受信する処理である。ユーザシステム115Cは、ストレージシステム110に、ライト要求、リード要求又はパターン検索要求を送信する。
ストレージシステム110Cは、ストレージシステム110Eと同じでよい。ストレージシステム110Eが物理的なストレージシステムであるか仮想的なストレージシステムであるかに関わらず、ストレージシステム110Cは物理的なストレージシステムと仮想的なストレージシステムのいずれでもよい。
ストレージシステム110Cが有する仮想空間61Cは、ストレージシステム110Eが有する仮想空間61Eに対応付けられてよい。この場合、多次元データセットが、仮想空間61E及び61Cのいずれにも格納される。仮想空間61Cに格納される多次元データセットのスケールは、仮想空間61Eに格納される多次元データセットのスケールと同じかそれより小さい。例えば、仮想空間61Eに書き込まれる多次元データセットは、制御器71Eによりデータ量が削減されて(例えば、スケールがより小さくされて及び/又は圧縮されて)、仮想空間61Cに書き込まれる。これにより、エッジシステム101とコアシステム103間のデータ通信量と、コアシステム103の消費記憶容量とを削減することができる。また、制御器71Eは、仮想空間61Eにおける一部の多次元データセット(例えば、比較的アクセス頻度が高い、及び/又は、最新アクセス時刻が現在時刻に比較的近い多次元データセット)を物理空間60Eに格納しておき、仮想空間61Eにおける残りの多次元データセットを物理空間60Eに格納せず仮想空間61Cに格納しておいてもよい(この場合、物理空間60Eに格納されていない多次元データセットは、制御器71Eにより、仮想空間61Cから読み出されて応答されてもよい)。
エッジシステム101とコアシステム103のうちの一方が無くてもよい。また、エッジシステム101及びコアシステム103の少なくとも一方において、ユーザシステム115は無くてもよい。
本発明の実施形態1に係るストレージシステムは、ストレージシステム110E及び110Cのいずれでもあるが、ストレージシステム110E及び110Cのうちの一方でもよい。
以下、ストレージシステムの説明は、ストレージシステム110E及び110Cのうちのストレージシステム110Eを代表的に例に取る。また、以下の説明では、多次元データセットは、センサの一例であるカメラにより或る時間撮影された動画データセット(例えば動画ファイル)であり、故に、複数のフレーム(静止画データセット)を含む。
図2は、論物変換テーブルの構成を示す。
論物変換テーブル200は、ストレージシステム110Eのメモリ52Eに格納されるテーブルである。論物変換テーブル200は、論理アドレス情報と物理アドレス情報との関係を表す。論物変換テーブル200は、複数のレコード210を有する。多次元データセット毎に、レコード210Lと、当該レコード210Lに対応したレコード群220とがある。レコード210L毎に、レコード群220が対応付けられている。例えば、仮想次元(データ次元)の数が3の場合、レコード210L(論理アドレス情報)とレコード群220(物理アドレス情報)は、Hashed-Octreeにより対応付けられてよい。
レコード210Lは、多次元データセットの論理アドレス情報が格納されるレコードである。論理アドレス情報は、例えば、仮想空間ID261、スケール262、及び、仮想次元毎のアドレス群263(例えば、四つの仮想次元にそれぞれ対応した四つのアドレス群263A~263D)といった情報を含む。
仮想空間ID261は、多次元データセットが書き込まれる仮想空間61EのIDを表す。
スケール262は、多次元データセットのスケールを表す。元の多次元データセットのスケールが最も大きい。スケールが小さい程、多次元データセットは粗く、多次元データセットのデータ量は減る。例えば、多次元データセットが動画像データセットの場合、スケールに応じてフレームが間引かれたり、フレームの縦横サイズが小さくされたりする。本実施形態では、スケールは多段階である。
各仮想次元について、アドレス群263は、仮想空間IDから同定される仮想空間61Eに属する当該仮想次元の全アドレスのうち、多次元データセットの位置に対応したアドレス群(一つ以上のアドレス)を表す。アドレス群が複数のアドレスの場合、当該複数のアドレスは、連続したアドレスでもよいし離散したアドレスでもよい。
レコード群220は、三つのレコード210Pである。レコード210Pは、物理アドレス情報が格納されるレコードである。物理アドレス情報は、例えば、物理空間ID271、物理アドレス272及び長さ273といった情報を含む。
物理空間ID271は、格納対象が書き込まれる物理空間60EのIDを表す。物理アドレス272は、物理空間ID271から同定される物理空間60Eに属する全アドレスのうち、格納対象の書込み先のアドレス(例えば、格納対象の先頭アドレス)を表す。長さは、格納対象の長さ(データサイズ)を表す。
ここで、「格納対象」は、モデル群、符号化データセット、及び未符号化データセットのうちのいずれかである。すなわち、レコード群220としての三つのレコード210Pは、モデル群の物理アドレス情報が格納されるレコード210P1と、符号化データセット(圧縮された多次元データセット)の物理アドレス情報が格納されるレコード210P2と、未符号化データセット(非圧縮の多次元データセット)の物理アドレス情報が格納されるレコード210P3である。ここで、「モデル群」は、一つ以上のモデル、例えば、圧縮器70Eに含まれる後述の符号化器のモデル、復号器のモデル、及び、エントロピー見積器のモデルである。各々のモデルは、例えば、畳み込みニューラルネットワークである。符号化器、復号器及びエントロピー見積器の少なくとも一つのモデルは、畳み込みニューラルネットワーク以外のモデル(例えば、GMM(Gaussian Mixture Models)、HMM(Hidden Markov Model)、SCFG(Stochastic Context-Free Grammar)、GAN(Generative Adversarial Nets)、VAE(Variational Auto Encoder)又は遺伝的プログラミング)でもよい。また、データモデルの情報量削減のためにMimic Model等のモデル圧縮が適用されてもよい。
仮想空間61Eに格納される多次元データセットの論理アドレス情報がレコード210Lに格納され、当該レコード210Lに対応付けられるレコード群220に関し、例えば以下の通りである。
・当該仮想空間61Eについて、モデル群が生成され生成されたモデル群が物理空間60Eに格納された又は格納済の場合、当該モデル群の物理アドレス情報が格納されたレコード210P1を含むレコード群220が、レコード210Lに関連付けられる。
・当該多次元データセットが符号化されて符号化データセット(例えば、特徴量マップ)が物理空間60Eに格納された場合、当該符号化データセットの物理アドレス情報がレコード210P2に格納される。当該多次元データセットは符号化されているため、レコード210P3はヌルとなる。
・当該仮想空間61Eについてモデル群が未生成である又はその他の理由により、当該多次元データセットが符号化されずに物理空間60Eに格納された場合、当該未符号化データセットの物理アドレス情報がレコード210P3に格納される。当該多次元データセットは符号化されていないため、レコード210P2はヌルとなる。
図2によれば、ストレージシステム110Eでは、多次元データセットのI/O(Input/Output)は、仮想空間61Eを通じて行われる。仮想空間61Eに対するライト要求及びリード要求では、論理アドレス情報、すなわち、仮想空間61EのIDと、多次元データセットに属する複数の次元の各々についてアドレス群とを含んだ情報が指定される。例えば、次元“時間”については、次元“時間”に対応したアドレスとして、多数のフレームのうち1番目~10番目のフレームといった指定が可能である。制御器71Eは、指定された論理アドレス情報をキーに論物変換テーブル200から物理アドレス情報を特定し、特定された物理アドレス情報を基に、モデル及び多次元データセットの少なくとも一つのI/Oを物理空間60Eに対して行う。本実施形態では、制御器71Eが、ユーザシステム115Eから指定されたアドレス情報(例えば、現実空間におけるアドレスを表す情報)をキーに例えば図示しないアドレス変換テーブル(例えば、現実空間のアドレス情報と論理アドレス情報との対応関係を表すテーブル)を参照することで論理アドレス情報を特定するが、論理アドレス情報はユーザシステム115Eからのライト要求又はリード要求で指定されていてもよい。また、本実施形態では、多次元データのスケールが多段階であり、論理アドレス情報では、ライト対象又はリード対象の多次元データのスケールが指定されるが、論理アドレス情報は、必ずしもスケールを含まなくてもよい。
図2によれば、多次元データセット毎に、当該多次元データセットに属する全次元についてスケールが共通である(言い換えれば、多次元データセット毎に、代表的なスケールが指定される)。例えば、スケール262として、最大のスケールよりも小さいスケールが指定された場合、各仮想次元について、アドレス群263として、当該スケールに応じて縮小された値が設定される。スケールは、次元毎に指定されてもよい。
図3は、次元設定テーブルの構成を示す。
次元設定テーブル300は、ストレージシステム110Eのメモリ52Eに格納されるテーブルである。次元設定テーブル300は、仮想空間61Eの各仮想次元に関する情報を表す。次元設定テーブル300は、例えば仮想空間61E毎に存在する。次元設定テーブル300は、例えば、仮想次元(データ次元)毎にレコードを有する。各レコードは、仮想空間ID311、次元ID312、属性313、サイズ314、スケール315及び名称316といった情報を格納する。以下、一つの仮想次元を例に取る(図3の説明において「注目次元」)。
仮想空間ID311は、注目次元が属する仮想空間60EのIDを表す。次元ID312は、注目次元のIDを表す。
属性313は、注目次元の属性、具体的には、“連続”(注目次元に属する複数のアドレスが連続したアドレスである)か“離散”(注目次元に属する複数のアドレスが離散したアドレスである)かを表す。図3の例によれば、注目次元が“時間”(撮影時間長)、“縦”(フレームの縦)又は“横”(フレームの横)の場合、アドレス(例えばサイズ)は連続する。一方、注目次元が“センサID”の場合、複数のカメラのIDが連続しているとは限らず、通常、故に、注目次元のアドレス(カメラのID)は離散する。
サイズ314は、注目次元のサイズを表し、仮想空間61Eでは注目次元のアドレスに相当する。例えば、図3の例によれば、多次元データセットにおける各フレームの縦と横のいずれのサイズ(ピクセル数)も“1024”である。なお、サイズ314は、多次元データセットのスケールが最大の場合のサイズを表す。多次元データセットのスケールとして最大スケールより小さいスケールが指定された場合、例えば属性“連続”の次元について、当該指定されたスケールに応じて、多次元データセットの当該次元のサイズが、制御器71Eにより、サイズ314が表すサイズよりも小さいサイズとされる。
スケール315は、注目次元について取り得るスケールの範囲を表す。例えば、属性が“連続”であるいずれの次元についても、スケール1~3のいずれも取り得る。スケールn(nは自然数)のnの値が大きい程、スケールが大きい(多次元データセットのデータ量が多い)ことを意味する。スケール3が、本実施形態での最大スケールである。スケール315は、次元によって異なっていてもよい。例えば、或る次元では、スケール2又は3が有効であり、別の次元では、スケール3のみが有効であってもよい。また、スケール315は、注目次元の属性が“連続”の場合に有効でよい。
名称316は、注目次元の名称を表す。本実施形態では、仮想次元として、“時間”(撮影時間長)、“縦”、“横”、“センサID”といった四つの仮想次元がある。四つの仮想次元のうちの少なくとも一つに代えて又は加えて、一つ以上の別の仮想次元、例えば、“奥行”及び“周波数”のうちの少なくとも一つが採用されてもよい。
次元設定テーブル300は、ユーザシステム115Eのユーザにより設定されるが、他の者により設定されてもよいし、自動設定されてもよい。自動設定の方法として、例えば次の方法がある。
すなわち、制御器71Eが、入力された多次元データセットの統計を解析し、当該解析の結果を基に、次元設定テーブル300を作成又は更新してよい。当該多次元データセットの格納先の仮想空間61EのIDは、ランダムに決定されてもよいし、所定の規則に沿って決定されよい。多次元データセットの統計の解析から、次元数、属性及びサイズがわかる。例えば、多次元データセットが、a[i1][i2]…[in]と表現される場合(“a”は、多次元データセットの識別子であり、“[ix]”は、次元xに対応し、“ix”は、当該次元xについてのサイズであり)、制御器71Eが、a[i1][i2]…[in]を圧縮器70Eに入力することで圧縮率cと劣化度dを得る。制御器71Eが、f(a, i1…n, n)->(c,d)といった関数において、c及びdが最適になるi1…n,及びnを算出する(fは、関数であり、i1…nは、i1、i2、・・・、inであり、nは、次元数である)。自動設定の具体例は、例えば、下記の通りである。
・多次元データセットが次元数及びサイズを表す情報を保持している場合(例えば、多次元データセットがnpy(テンソル)形式のファイルの場合)、制御器71Eが、次元間のアドレス(値)の相関係数が閾値以上か否かに応じて、属性が“連続”か“離散”かを決定し、決定された属性が反映された次元設定テーブルを作成してよい。例えば、相関係数が閾値以上であれば、属性が“連続”であり、相関係数が閾値未満であれば、属性が“離散”である。その他、スケールや名称等の情報は、プリセットの値から適宜設定してもよいし、ユーザの使用履歴の統計を基に適宜設定されてもよい。
・多次元データセットの次元構造が失われている場合(例えば、多次元データセットが一般バイナリ形式のファイルの場合)、制御器71Eが、多次元データセットの次元数と次元毎のサイズ、属性等の次元設定テーブルの情報項目をパラメータとした強化学習(例えば、圧縮率を報酬とした強化学習)により決定し、決定されたパラメータが反映された次元設定テーブルを作成してよい。その他、スケールや名称等の情報は、プリセットの値から適宜設定してもよいし、ユーザの使用履歴の統計を基に適宜設定されてもよい。
図4は、品質設定テーブルの構成を示す。
品質設定テーブル400は、ストレージシステム110Eのメモリ52Eに格納されるテーブルである。品質設定テーブル400は、仮想空間61Eに格納される多次元データセットの品質の条件(言い換えれば、許容される品質)を表す。品質設定テーブル400は、例えば、仮想空間61E毎にレコードを有する(例えば、品質の条件は、仮想空間61E毎に代えて、仮想空間61Eにおける範囲毎といった任意の単位で設定されてもよい)。各レコードは、仮想空間ID411、属性412、値域413、許容誤差指標414及び許容誤差量415といった情報を格納する。
仮想空間ID411は、仮想空間61EのIDを表す。属性412は、仮想空間61Eに格納される多次元データセットの圧縮が“可逆”か“非可逆”かを表す。値域413は、多次元データセットの値の範囲(例えば、画像におけるピクセルの値の範囲など)を表す。
許容誤差指標414及び許容誤差量415は、圧縮が“非可逆”の場合に有効な情報である。許容誤差指標414は、算出される誤差の種類(例えば、“RMSE”(Root Mean Squared Error))を表す。許容誤差量415は、算出された誤差の値として許容される値の条件(例えば、許容誤差の範囲)を表す。
以下、本実施形態で行われる幾つかの処理を説明する。
図5は、圧縮器生成処理の流れを示す。なお、圧縮器生成処理の前に、所定の初期化処理において、次元設定テーブル300及び品質設定テーブル400の設定が済んでいる。また、本実施形態では、符号化器、復号器及びエントロピー見積器のいずれのモデルも畳み込みニューラルネットワークである。
この圧縮器生成処理は、例えば以下のいずれかを契機に開始されてよい。
・制御器71Eが、仮想空間IDを指定した圧縮器生成要求(圧縮器を生成することの要求)を受信する。圧縮器生成要求は、例えば、ユーザシステム115E(又は、ストレージシステム110Eの管理システム(図示せず))から送信される。
・制御器71Eが、定期的又は不定期的に、仮想空間61E毎に、モデル群を作成済か否かチェックすることで(例えば、論物変換テーブル200を参照することで)、モデル群が未作成の仮想空間61Eが見つかる。
以下、図5の説明において、圧縮器生成処理の対象の仮想空間61Eを、「注目仮想空間61E」と言う。
制御器71Eが、次元設定テーブル300を参照する(S501)。
制御器71Eが、注目未処理次元の属性313が“離散”か否かを判定する(S502)。「未処理次元」とは、注目仮想空間に属する仮想次元のうち未だ属性313が参照されていない仮想次元である。「注目未処理次元」とは、一つ以上の未処理次元のうち制御器71Eにより注目(選択)された未処理次元である。
S502の判定結果が真の場合(S502:Yes)、つまり、注目未処理次元の属性313が“離散”の場合、制御器71Eが、NChannel(チャネル数)に値の設定があるか否かを判定する(S503)。
S503の判定結果が偽の場合(S503:No)、制御器71Eが、NChannelに注目未処理次元のサイズ314の値を設定する(S504)。これにより、NChannelに値の設定がある状態となる。
S503の判定結果が真の場合(S503:Yes)、制御器71Eが、NChannelの値を、NChannelに設定されている値と、注目未処理次元のサイズ314の値との積に変更する(S505)。
S502の判定結果が偽の場合(S502:No)、つまり、注目未処理次元の属性313が“連続”の場合、NKernel(カーネル次元数)の値を1インクリメントする(S506)。
S504~S506の後、制御器71Eが、注目仮想空間の全仮想次元の属性313を参照したか否かを判定する(S507)。S507の判定結果が偽の場合(S507:No)、いずれかの未処理次元についてS501が行われることで、当該未処理次元の属性503が特定される。
S507の判定結果が真の場合(S507:Yes)、制御器71Eが、符号化器、復号器及びエントロピー見積器の各々のCNN(畳み込みニューラルネットワーク)を構成する(S508)。CNNの構成は、NChannel及びNKernelを基に決定される。S508では、例えば、NKernelに基づきカーネルの型が決まり、NChannelに基づきチャネル数が決まり、NNのパラメータ群が初期化される。
その後、制御器71Eが、ネットワーク学習(CNNの学習)を行う(S509)。
CNNによれば、チャネル方向に俯瞰的な処理が行われ(例えば、全結合層が存在し)、また、カーネルの範囲で処理がされる。このため、CNNの特性としては、非連続的で順番に依存しない入力はチャネルであることが好ましく、連続した入力はカーネルを用いて処理されることが好ましい。そこで、図5の例によれば、属性“離散”の仮想次元の個数及びサイズ314が、NChannel(チャネル数)に影響し、属性“連続”の仮想次元の個数が、NKernel(カーネル次元数)に影響する。これは、多次元データセットの次元数及び様式に最適なCNNを自動で生成することに貢献する。
図6は、ネットワーク学習(S509)の概要を示す。
圧縮器70Eは、以下のように構成される。
すなわち、スケールがm段階の場合(mは自然数)、すなわち、スケール1、スケール2、…、スケールmがある場合、圧縮器70Eが、スケール毎に、処理ユニット601を含む。本実施形態では、m=3のため、スケール1~3にそれぞれ対応した処理ユニット601-1~601-3がある。スケールn(nは、1~mまでの各々の整数、本例では、n=1、2又は3)に対応した要素の符号は、適宜、nを含む。
処理ユニット601-nが、符号化器En、復号器Dn及びエントロピー見積器Hnを含む。量子化器qは、複数の処理ユニット601-1~601-3で共通であるが、処理ユニット601毎に量子化器qがあってもよい。処理ユニット60-1nにおいて特徴量マップFMnが生成される。Ldは、劣化度を表し、具体的には、例えば、誤差指標関数(例えば、PSNR(Peak Signal-to-Noise Ratio)、MSE(Mean Square Error)、又は、MS-SSIM(Multi-Scale Structural Similarity))である。Leが、ビットレートを表し、具体的には、例えば、特徴量マップFMnが入力されたエントロピー見積器Hnからの出力が表すエントロピー(例えば、各シンボルの予測される出現確率を表す確率分布)と特徴量マップFMn(例えば、各シンボルの正解としての出現確率を表す確率分布)とを比較する関数である。制御器71Eが、LdとLeをラグランジュマルチプライヤー(λ)により結合し、その式をロス関数として学習する。
処理ユニット601-1~601-3がスケールの順序でシーケンシャルに関連付いている。具体的には、処理ユニット601-nの出力が、処理ユニット601-(n+1)の入力に影響する。
このような構成の圧縮器70Eについて、以下のようなネットワーク学習が行われる。
多次元データセットd3aが入力される。多次元データセットd3aが、元の多次元データセットである。多次元データセットd3aは、教師データセットとして別途用意された多次元データセットでもよいし、ユーザシステム115Eから入力されたライト対象の多次元データセットであってもよい。
圧縮器70Eが、多次元データセットd3aを多次元データセットd2aにダウンサンプリングする。例えば、スケールが1段階下がる毎のサイズの縮小比率(例えば1/2倍)が決まっていて、多次元データセットd3aに属する各データ次元に関し、当該データ次元についてのサイズが、当該縮小比率に従い縮小される。例えば、フレームの縦横のピクセル数や、1秒当たりのフレーム数が、半分に縮小される。
圧縮器70Eが、多次元データセットd2aを多次元データセットd1aにダウンサンプリングする。
このようにして、圧縮器70Eが、多次元データセットd3aのスケールを段階的に最小スケールまで下げる、すなわち、多次元データセットd3aを段階的にダウンサンプリングしていく。最小のスケールに対応した多次元データセットd1aまでダウンサンプリングが終了したら、最小のスケールから最大のスケールにかけて段階的に以下の処理が行われる。以下、スケール1~3の各々について行われる処理を説明する。
<スケール1についての処理>
圧縮器70Eが、例えば多次元データセットd1aのデータ形式を所定の形式にし、多次元データセットd1aを符号化器E1に入力する。符号化器E1が、入力された多次元データセットd1aを符号化し、量子化器qが、符号化された多次元データセットd1aの特徴量マップFM1を生成する。エントロピー見積器H1が、特徴量マップFM1を用いて自己回帰モデル等による予測や、その他の確率予測のために保存された情報、またはそれらを併用した予測などを基に算出された各シンボルの出現確率と、特徴量マップFM1から直接算出した正解の各シンボルの出現確率とを基に、Le(例えばクロスエントロピーなどの確率を比較する関数)を算出する。復号器D1が、特徴量マップFM1を基に多次元データセットd1b(復号された多次元データセット)を生成する。制御器71Eが、多次元データセットd1a及びd1bの誤差を、Ldを用いて算出する。
<スケール2についての処理>
圧縮器70Eが、多次元データセットd1bを多次元データセットd2bにアップサンプリングする。例えば、スケールが1段階上がる毎のサイズの拡大比率(例えば2倍)が決まっていて、多次元データセットd1bに属する各データ次元に関し、当該データ次元についてのサイズが、当該拡大比率に従い拡大される。なお、拡大比率は、縮小比率の逆数でよい。
多次元データセットd2bは、多次元データセットd2aと同じスケールのデータセットであるが、多次元データセットd2aのダウンサンプリング、符号化、復号及びアップサンプリングを経て得られたデータセットであるため、多次元データセットd2aと完全に同じとは限らない。圧縮器70Eが、多次元データセットd2aと多次元データセットd2bとの差分データセットd2cを算出する。圧縮器70Eが、例えば差分データセットd2cのデータ形式を所定の形式にし、差分データセットd2cを符号化器E2に入力する。符号化器E2が、入力された差分データセットd2cを符号化し、量子化器qが、符号化された差分データセットd2cの特徴量マップFM2を生成する。エントロピー見積器H2が、特徴量マップFM2を基に算出された値と、特徴量マップFM2とを基に、Leを算出する。復号器D2が、特徴量マップFM2を基に差分データセットd2d(復号された差分データセット)を生成する。差分データセットd2dは、多次元データセットd2a及びd2bの差分データセットd2cの非可逆圧縮後の復号データセットである。このため、多次元データセットd2bと差分データセットd2dとの和が、多次元データセットd2aの非可逆圧縮後の復号データセットである復号データセット2に相当する。制御器71Eが、多次元データセットd2aと復号データセット2との誤差を、Ldを用いて算出する。
<スケール3についての処理>
スケール2についての処理と実質的に同様である。すなわち、圧縮器70Eが、多次元データセットd2bと差分データセットd2dとの和を多次元データセットd3bにアップサンプリングする。圧縮器70Eが、多次元データセットd3aと多次元データセットd3bの差分データセットd3cを算出する。圧縮器70Eが、例えば差分データセットd3cのデータ形式を所定の形式にし、差分データセットd3cを符号化器E3に入力する。符号化器E3が、入力された差分データセットd3cを符号化し、量子化器qが、符号化された差分データセットd3cの特徴量マップFM3を生成する。エントロピー見積器H3が、特徴量マップFM3を基に算出された値と、特徴量マップFM3とを基に、Leを算出する。復号器D3が、特徴量マップFM3を基に差分データセットd3d(復号された差分データセット)を生成する。多次元データセットd3bと差分データセットd3dとの和が、多次元データセットd3aの非可逆圧縮後の復号データセットである復号データセット3に相当する。制御器71Eが、多次元データセットd3aと復号データセット3との誤差を、Ldを用いて算出する。
以上が、スケール1~3の各々についての処理である。
制御器71Eが、以下の数1の通りのロス関数を用いて算出されるLが最小になるように、圧縮器70Eにおける符号化器En、復号器Dn及びエントロピー見積器Hnの各々のCNNを学習する。制御器71Eが、LdとLeをラグランジュマルチプライヤー(λ)により結合し、その式の一例が、数1の通りのロス関数である。
Figure 0007336995000001
図6の例によれば、スケール毎に、処理ユニット601があり、各スケールの処理ユニット601が学習される。後述するように、ライト処理では、ライト要求で指定されたスケール以下の各スケールについて、当該スケールに対応した処理ユニット601により符号化されたデータセットが格納される。リード処理では、リード要求で指定されたスケールに対応した符号化データセットが当該指定されたスケールに対応した処理ユニット601により復号される。一比較例として、複数のスケールに共通の一つの処理ユニットを圧縮器とすることが考えられるが、この場合、リード要求で指定されたスケールによっては、復号データセットのダウンサンプリングが必要になる。本実施形態では、このような比較例よりも効率的にリード処理を行うことが実現できる。
また、そのようなライト処理及びリード処理によれば、指定されたスケール以外のスケールについてもデータを格納する必要がある。このため、消費される記憶容量が増えることになる。そこで、本実施形態では、複数のスケールにそれぞれ対応した複数の処理ユニット601がスケールの順にシーケンシャルに関連付けられていて、スケールnが最小のスケールでなければ、スケールnの多次元データセットそれ自体の符号化データセットに代えて、スケールnの多次元データセットとスケールnの復号データセットとの差分が符号化されたデータセットが格納される。これにより、消費記憶容量の増大を低減することができる。なお、「スケールnの復号データセット」とは、スケールnの多次元データセットを非可逆圧縮しその後に復号したデータセット又はそれに相当するデータセットである。
また、ネットワーク学習は、ユーザシステム115Eからライト対象の多次元データセットを受け付ける前段階において行われてもよいが、ユーザシステム115Eから入力されるライト対象の多次元データセットを用いて(つまり動的に)行われてもよい。ネットワーク学習で使用される多次元データセットは、ユーザシステム115Eから入力される各多次元データセットでもよいし、ユーザシステム115Eから受けた一つ以上の多次元データセットのうちユーザシステム115Eから学習用として(教師データとして)指定された多次元データセットでもよい。また、制御器71Eが、ユーザシステム115Eから受け付けるライト対象の多次元データセットの統計を分析し、多次元データセットのデータ特性が変わったと検知した場合に、変更後のデータ特性に属する多次元データセットを用いてネットワーク学習を行ってもよい。適宜、モデル群が更新され、新たなモデル群が物理空間60Eに追加され、同一の仮想空間61Eについて、論理アドレス情報によって、対応付けられるモデル群(モデル群の物理アドレス情報)が異なっていてもよい。つまり、圧縮器70Eは、一つの仮想空間61Eにつき一つ又は複数存在してよい。
図6に例示の構成及び処理は、例えば下記のように表現できる。
・圧縮器が、スケール毎に、当該スケールに対応した処理ユニットを含む。各処理ユニットは、符号化器、復号器、及び、エントロピー見積器(当該符号化器により符号化された多次元データセットに基づく特徴量マップを基に、当該符号化器に入力された多次元データセットのエントロピーを見積もる見積器)を含む。
・各スケールの処理ユニットについて得られる誤差が、圧縮器全体の誤差の要素である。
・各スケールに関し、当該スケールの処理ユニットについて得られる誤差は、劣化度とビットレートとに基づく。
・スケールnが最小スケールの場合、スケールnについての劣化度は、(A)と(B)との誤差に基づく。
(A)は、入力された多次元データセットがスケールn向けにダウンサンプリングされたデータセットである。
(B)は、(A)がスケールnの符号化器に入力されることでスケールnの復号器から出力されたデータセットである。
・スケールnが最小スケール以外のいずれかのスケールの場合、スケールnについての劣化度は、(C)と(D)との誤差に基づく。
(C)は、入力された多次元データセット、又は、当該多次元データセットがスケールn向けにダウンサンプリングされたデータセットである。
(D)は、(d1)と(d2)との和である。
(d1)は、スケールnが2番目に小さいスケールの場合、(d11)であり、スケールnが2番目に小さいスケール以外のいずれかのスケールの場合、(d12)である。
(d11)は、(B)がスケールn向けにアップサンプリングされたデータセットである。
(d12)は、スケール(n-1)に対応した(D)がスケールn向けにアップサンプリングされたデータセットである。
(d2)スケールnの差分データセットがスケールnの符号化器に入力されることでスケールnの復号器から出力されたデータセット。スケールnの差分データセットは、(C)と(d1)との差分である。
・各スケールに関し、当該スケールの処理ユニットについて得られるビットレートは、(A)又は(C)に基づく特徴量マップと、当該特徴量マップに基づき当該スケールのエントロピー見積器により算出されたエントロピーとに基づく。
ところで、注目仮想空間が、属性412が“可逆”である仮想空間61Eの場合、当該仮想空間61Eに対応した圧縮器70Eは、可逆圧縮用の圧縮器70Eとされる。この場合、圧縮器70Eには、スケール毎の非可逆圧縮用の符号化器En、量子化器q及び復号器Dnが不要である。圧縮器70Eは、スケール毎に(或いは、全スケールに共通の)可逆圧縮用の処理ユニットを有してよい。入力が浮動小数点の場合の圧縮は、浮動小数点をucharで分割しシンボル化する(例えば、圧縮方式としてfloat32が採用されている場合、ucharで浮動小数点を4個に分割し、それぞれで256シンボルの情報を4チャネルとする)ことで当該処理ユニット内のエントロピー見積器の入力とすればよい。
図7は、ライト処理の流れを示す。
ライト処理は、ライト対象の多次元データセットのライト要求を制御器71Eが受けた場合に行われる。論理アドレス情報が制御器71Eにより特定される。論理アドレス情報は、ライト要求で指定されていてもよいし、ライト要求で指定されているアドレス情報から特定されてもよい。
制御器71Eは、特定された論理アドレス情報をキーに論物変換テーブル200を参照し、当該論理アドレス情報に対応する、モデル群の物理アドレス情報が存在するか否かを判定する(S701)。例えば、特定された論理アドレス情報と同じ論理アドレス情報が論物変換テーブル200に無い場合、或いは、ライト先の仮想空間61E(特定された論理アドレス情報が含む仮想空間IDから同定される仮想空間61E)についてモデル群が無い場合、S701の判定結果が偽である。
S701の判定結果が偽の場合(S701:No)、制御器71Eは、ライト対象の多次元データセットを符号化せずにライト先の仮想空間61E(特定された論理アドレス情報が含む仮想空間IDから同定される仮想空間61E)に書き込む(S707)。制御器71Eは、論物変換テーブル200を更新、具体的には、ライト要求について特定された論理アドレス情報と、当該論理アドレス情報に対応する、未符号化データセットの物理アドレス情報を更新する(S708)。
S701の判定結果が真の場合(S701:Yes)、制御器71Eは、特定された論理アドレス情報に対応する、モデル群の物理アドレス情報を特定し、当該物理アドレス情報を基に、物理空間60Eからモデル群を取得する(S702)。制御器71Eは、モデル作成(モデル群を含む圧縮器の再学習)の必要があるか否かを判定する(S703)。例えば、制御器71Eが、ライト先の仮想空間61Eに書き込まれる多次元データセットのデータ特性の傾向が変わったことを検知した場合、S703の判定結果が真となる。
S703の判定結果が真の場合(S703:Yes)、制御器71Eが、ライト先の仮想空間61Eについてネットワーク学習を行う(S704)。そのネットワーク学習に使用される多次元データセットは、ユーザから指定された多次元データセットでもよいし、ライト対象の多次元データセットでもよいし、直近の所定期間に書き込まれた多次元データセットでもよい。ネットワーク学習は、図6を参照して説明した通りである。
S703の判定結果が偽の場合(S703:No)、又は、S704の後、符号化処理が行われる(S705)。すなわち、ライト対象の多次元データセットが制御器71Eにより圧縮器70Eに入力されることで、ライト対象の多次元データセットが符号化される。制御器71Eは、S705で符号化された多次元データセットをライト先の仮想空間61Eに書き込む(S706)。制御器71Eは、論物変換テーブル200を更新、具体的には、ライト要求について特定された論理アドレス情報に対応する、符号化データセットの物理アドレス情報を更新する(S708)。なお、ネットワーク学習(S704)が行われた場合、制御器71Eは、S706において、モデル群もライト先の仮想空間61Eに書き込み、S708において、ライト要求について特定された論理アドレス情報に対応する、モデル群の物理アドレス情報を更新する。
なお、制御器71Eは、定期的に又は不定期的に、論物変換テーブル200における各レコード210Lについて、未符号化データセットの有無をチェックし、未符号化データセットがあれば、当該未符号化データセットのライト先仮想空間61Eに対応したモデル群を含む圧縮器70Eを用いて(当該圧縮器70Eが無ければ圧縮器生成処理を経て圧縮器70Eを生成して)、当該未符号化データセットを符号化データセットに変換し、当該未符号化データセットに代えて(又は加えて)当該符号化データセットを物理空間60Eに格納し、論物変換テーブル200を更新してもよい。
図8は、符号化処理(S705)の概要の一例を示す。なお、スケールnについての要素の符号は、図6と同様、nを含む(nは1~3のいずれかの自然数)。
ライト要求について特定された論理アドレス情報から、制御器71Eによりスケールが特定される。符号化は、ライト要求について特定されたスケールについてのみ行われてもよいが、本実施形態では、当該特定されたスケール以下のスケール毎に行われる。これにより、後述のリード処理の速度が高いことが期待される。なお、特定されたスケールよりも大きいスケールについての符号化は不要である。
図8の例によれば、特定されたスケールは、スケール3(最大のスケール)であり、スケール3以下のスケールは、スケール3、スケール2及びスケール1である。このため、本実施形態では、スケール1~3の各々について符号化が行われる。符号化処理の流れは、圧縮器70Eの構成に従う。
すなわち、圧縮器70Eは、入力されたライト対象の多次元データセットw3aをスケール2向けにダウンサンプリングする。これにより、スケール2の多次元データセットw2aが生成される。また、圧縮器70Eは、多次元データセットw2aをスケール1向けにダウンサンプリングする。これにより、スケール1の多次元データセットw1aが生成される。
多次元データセットw1aが符号化器E1及び量子化器qを通じて特徴量マップFM1wに変換される。特徴量マップFM1wと、特徴量マップFM1wに基づくエントロピー(特徴量マップFM1wがエントロピー見積器H1に入力されることで得られた値)とを基に、AE(アリスメティックコーディングのエンコーディング処理)が行われ、ビットストリームw1cが生成される。ビットストリームw1cが、多次元データセットw1aの符号化データセットに相当する。
同様に、スケール2及びスケール3の各々についても、符号化データセットとしてのビットストリームが生成される。
スケール2についてのビットストリーム生成は次の通りである。すなわち、差分データセットw2cが符号化器E2及び量子化器qを通じて特徴量マップFM2wに変換される。特徴量マップFM2wと、特徴量マップFM2wに基づくエントロピー(特徴量マップFM2wがエントロピー見積器H2に入力されることで得られた値)とを基に、AEが行われ、ビットストリームw2eが生成される。なお、差分データセットw2cは、多次元データセットw2aと多次元データセットw2aw2bとの差分である。多次元データセットw2bは、多次元データセットw1bがスケール2向けにアップサンプリングされたデータセットである。多次元データセットw1bは、FM1wが復号器D1に入力されることで復号器D1から出力されたデータセットである。
スケール3についてのビットストリーム生成は次の通りである。すなわち、差分データセットw3cが符号化器E3及び量子化器qを通じて特徴量マップFM3wに変換される。特徴量マップFM3wと、特徴量マップFM3wに基づくエントロピー(特徴量マップFM3wがエントロピー見積器H3に入力されることで得られた値)とを基に、AEが行われ、ビットストリームw3eが生成される。なお、差分データセットw3cは、多次元データセットw3aと多次元データセットw3bとの差分である。多次元データセットw3bは、多次元データセットw2bと多次元データセットw2dとの和がスケール3向けにアップサンプリングされたデータセットである。多次元データセットw2dは、FM2wが復号器D2に入力されることで復号器D2から出力されたデータセットである。
ビットストリームw1c、w2e及びw2dが、S706において、多次元データセットw3aの符号化データセットとして、物理空間60Eに書き込まれる。書込み先の範囲に対応した物理アドレス情報が、S708において、ライト要求について特定された論理アドレス情報に対応付けられる。
図9は、リード処理の流れを示す。
リード処理は、リード要求を制御器71Eが受けた場合に行われる。リード要求に従うリード対象の多次元データセットの論理アドレス情報は、リード要求で指定されていてもよいし、リード要求で指定されているアドレス情報から特定されてもよい。また、リード要求で論理アドレス情報又はアドレス情報の全体が必ずしも指定されていなくてもよい。例えば、仮想空間IDが特定された場合、リード対象の多次元データセットの論理アドレス情報は、当該仮想空間IDから同定される仮想空間61Eに最近書き込まれた多次元データセットの論理アドレス情報でよい。また、リード要求を基に特定される論理アドレス情報において、属性が“離散”である次元についてのアドレス群は、Onehot vector指定でよい。
制御器71Eは、特定された論理アドレス情報をキーに論物変換テーブル200を参照し(S901)、当該論理アドレス情報に対応した物理空間部分(物理空間60Eの一部)にデータがあるか否か、具体的には、当該論理アドレス情報に対応するレコード群220が存在するか否かを判定する(S902)。なお、当該論理アドレス情報に対応するデータ(モデル群やデータセット)の少なくとも一部が物理空間60Eに代えてコアシステム103の物理空間60Cに格納されている場合、当該論理アドレス情報に対応する物理空間部分の少なくとも一部は、物理空間60Cの物理アドレス情報に対応した論理アドレス情報(仮想空間61Cの論理アドレス情報)が表す範囲でもよい。
S902の判定結果が偽の場合(S902:No)、制御器71Eは、データ無しをリード要求に対する応答として返す(S908)。
S902の判定結果が真の場合(S902:Yes)、制御器71Eは、当該論理アドレス情報に対応した物理空間部分に格納されているデータセットが未符号化データセットであるか否か、具体的には、当該論理アドレス情報に対応したレコード210P3が有効か否かを判定する(S903)。
S903の判定結果が真の場合(S903:Yes)、制御器71Eは、当該論理アドレス情報に対応したレコード210P3が表す物理空間部分から未符号化データセットを読み出し(S906)、当該未符号化データセットをリード要求に対する応答として返す(S907)。
S903の判定結果が偽の場合(S903:No)、制御器71Eは、当該論理アドレス情報に対応したレコード210P1及び210P2が表す物理空間部分からモデル群及び符号化データセットを読み出す(S904)。当該モデル群を含む圧縮器70Eにて当該符号化データセットを復号する復号処理が行われる(S905)。制御器71Eは、復号処理にて復号されたデータセットをリード要求に対する応答として返す(S907)。
図10は、復号処理(S905)の概要の一例を示す。なお、スケールnについての要素の符号は、図6及び図8と同様、nを含む(nは1~3のいずれかの自然数)。
リード要求について特定された論理アドレス情報から、制御器71Eによりスケールが特定される。本実施形態では、リード要求について特定されるスケールは、リード対象の多次元データセットについて論物変換テーブル200に登録されている論理アドレス情報が表すスケール以下である。なぜなら、当該論理アドレス情報が表すスケールを超えるスケールについてビットストリームが存在しないためである。復号は、特定されたスケール以下のスケール毎に行われる。図10の例によれば、特定されたスケールは、スケール3である。また、図10の例によれば、リード要求について特定された論理アドレス情報に対応した物理アドレス情報が表す物理空間部分にあるビットストリームが、ビットストリームr1a、r2a及びr3aである。復号処理の流れは、圧縮器70Eの構成に従う。
ビットストリームr1aについて、AD(アリスメティックコーディングのデコーディング処理)が行われる。ビットストリームr1aの一部からADにより復元済みの一部のFM1r、又はその他の確率予測のために保存された情報、又はそれらの両方をエントロピー見積器H1に入力することで得られる確率分布と、復元対象のビットストリームr1aの一部とから、復元対象のFM1rの一部が復元される。FM1rが復号器D1に入力されることで、多次元データセットr1bが得られる。多次元データセットr1bが、スケール2向けにアップサンプリングされることで、多次元データセットr2cが得られる。
ビットストリームr2aについて、ADが行われる。ビットストリームr2aの一部からADにより復元済みの一部のFM2r、又はその他の確率予測のために保存された情報、又はそれらの両方をエントロピー見積器H2に入力することで得られる確率分布と、復元対象のビットストリームr2aの一部とから、復元対象のFM2rの一部が復元される。FM2rが復号器D2に入力されることで、差分データセットr2bが得られる。多次元データセットr2cに差分データセットr2bが加算されることで、多次元データセットr2dが得られる。多次元データセットr2dが、スケール3向けにアップサンプリングされることで、多次元データセットr3cが得られる。
ビットストリームr3aについて、ADが行われる。ビットストリームr3aの一部からADにより復元済みの一部のFM3r、又はその他の確率予測のために保存された情報、又はそれらの両方をエントロピー見積器H3に入力することで得られる確率分布と、復元対象のビットストリームr3aの一部とから、復元対象のFM3rの一部が復元される。FM3rが復号器D3に入力されることで、差分データセットr3bが得られる。多次元データセットr3cに差分データセットr3bが加算されることで、多次元データセットr3dが得られる。多次元データセットr3dが、スケール3の多次元データセット、すなわち、リード対象の多次元データセットである。得られたスケール3の多次元データセットが、S907において応答される。
図11は、パターン検索処理の流れを示す。
パターン検索処理は、検索対象のデータパターンを持つパターン検索要求を制御器71Eが受けた場合に行われる。以下の処理は、パターン検索要求で指定された仮想空間IDについてのみ行われてもよいし、仮想空間61E毎に行われてもよい。以下、一つの仮想空間61Eを例に取る。
制御器71Eが、検索対象のデータパターンを、仮想空間61Eに対応したモデル群を含む圧縮器70Eにて符号化する(S1101)。これにより、各スケールについて、検索対象のデータパターンの符号化データセット(ビットストリーム及び/又は特徴量マップ)が得られる。
制御器71Eが、仮想空間61Eに属する未チェックレコード210Lに対応した符号化データセット(例えば、各スケールについてのビットストリーム及び/又は特徴量マップ)に、S1101で得られた符号化データセットと一致する符号化データセット(例えば、差分がゼロ、又は、差分が許容範囲である符号化データセット)が存在するか否かを判定する(S1102)。「未チェックレコード210L」とは、このパターン検索処理においてS1102で参照されていないレコード210Lである。
S1102の判定結果が真の場合(S1102:Yes)、制御器71Eが、一致リストに、当該未チェックレコード210Lが有する論理アドレス情報を追記する(S1103)。「一致リスト」とは、S1102の判定結果が真となった論理アドレス情報が記録されるリストであり、パターン検索要求に対する応答として送信されるリストである。
S1102の判定結果が偽の場合(S1102:No)、又は、S1103の後、制御器71Eが、仮想空間61Eに属する全てのレコード210LについてS1102を行ったか否かを判定する(S1104)。S1104の判定の判定結果が偽の場合(S1104:No)、S1102が行われる。
S1104の判定結果が真の場合(S1104:Yes)、制御器71Eが、一致リストをパターン検索要求に対する応答として返す(S1105)。一致リストに代えて又は加えて、一致が得られた符号化データセットのうちの少なくとも一つの符号化データセットが応答として返ってよい。例えば、一致が得られたレコード210Lの数が所定数以下の場合、一致リストに代えて又は加えて、一致が得られた符号化データセットが応答として返ってよい。
[実施形態2]
実施形態2を説明する。その際、実施形態1との相違点を主に説明し、実施形態1との共通点については説明を省略又は簡略する。
図12は、実施形態2の概要を示す。
例えば、ストレージシステム110Eが、複数のノード1200Eを有する。各ノード1200Eは、例えば、物理ストレージ装置又は汎用計算機である。各ノード1200Eが、永続記憶デバイス1201Eを有する。物理空間60Eが、当該複数のノード1200Eが提供する複数の記憶空間に基づく。
複数のスケールのうちスケール1を代表的に例に取る。スケール1向けの多次元データセットが符号化器D1(及び図示しない量子化器q)を通じて特徴量マップに変換される。圧縮器70E(又は制御器71E)が、特徴量マップをチャネル方向に分割する。これにより、複数の部分特徴量マップf1が得られる。図12の例では、四つの部分特徴量マップf1a~f1dが得られる。部分特徴量マップf1の数は、データの格納先となり得る記憶装置(例えば、ノード1200又は永続記憶デバイス1201)の数以下でよい。言い換えれば、圧縮器70E(又は制御器71E)が、二つ以上の部分特徴量マップf1を同一の記憶装置に格納する必要が無いように特徴量マップをチャネル方向に分割してよい。また、エントロピー見積器H1に代えて、部分特徴量マップf1a~f1dにそれぞれ対応したエントロピー見積器H1~H1が用意される。エントロピー見積器H1は、チャネル間の依存関係に基づく見積を行うが、エントロピー見積器H1~H1は、当該エントロピー見積器に対応したチャネルについて見積を行い、他のチャネルとの依存関係を考慮しない独立したエントロピー見積器である。
ネットワーク学習において、制御器71Eが、複数の部分特徴量マップf1の各々について、当該部分特徴量マップを所定の確率でゼロにし、圧縮器70E全体の誤差を最小にする学習を行う。各部分特徴量マップf1について、「所定の確率」は、複数の部分特徴量マップf1に共通の確率でよいし、当該部分特徴量マップf1の格納先の記憶装置(ノード1200E又は永続記憶デバイス1201E)の実際の不具合発生確率(障害や遅延といった不具合の発生確率)であってもよい。Leが、エントロピー見積器H1~H1にそれぞれ対応した四つのクロスエントロピーの合計でよい。エントロピー見積器H1~H1の各々について、クロスエントロピーは、当該エントロピー見積器が、当該エントロピー見積器に対応した部分特徴量マップf1やその他の確率予測のために保存された情報などを基に算出されたシンボルの出現確率と、当該部分特徴量マップf1から直接算出した正解のシンボルの出現確率とを基に算出されてよい。
ライト処理において、制御器71Eが、ライト要求について特定されたスケール以下の各スケールについて、当該スケールについての入力データセット(元の多次元データセット又はダウンサンプリングされた多次元データセット)の特徴量マップを、チャネル方向に四つの部分特徴量マップ(複数の部分特徴量マップの一例)に分割する。制御器71Eが、当該四つの部分特徴量マップと、学習済みのエントロピー見積器H1~H1とを基に、四つの符号化データセット(例えば四つのビットストリーム)を生成する。制御器71Eが、四つの符号化データセットを、それぞれ異なる四つのノード1200Ea~1200Edに書き込む。スケール毎に、部分特徴量マップの格納先の記憶装置が異なってよい。例えば、三つのスケール1~3の各々について四つの部分特徴量マップが得られる場合、12(=4×3)の記憶装置が必要であってもよい。
リード処理において、例えば、四つのノード1200Ea~1200Edのうちのいずれかのノード1200E(又は、当該ノード1200E内の永続記憶デバイス1201E)に不具合(例えば、障害又は遅延)が生じ、当該ノード1200Eから符号化データセット(例えばビットストリーム)を、リード要求を受け付けてから一定期間内に読み出すことができないとする。この場合、制御器71Eが、当該ノード1200Eに対応した部分特徴量マップをゼロとし、残り三つのノード1200Eの各々から読み出される符号化データセットに基づき、スケール1の符号化データセットを復号してよい。
実施形態2によれば、リード要求について特定された論理アドレス情報に対応する物理空間部分の基になっているいずれかの記憶装置に不具合が生じても、リード対象のデータセットの復号が可能である。つまり、耐障害性を高めることができる。なお、実施形態2は、実施形態1で述べているスケールに対して階層的なデータの圧縮、伸張方法と組み合わされてもよい。
[実施形態3]
実施形態3を説明する。その際、実施形態1及び2との相違点を主に説明し、実施形態1及び2との共通点については説明を省略又は簡略する。
図13は、実施形態3に係る符号化器のカーネル構成を示す。図14は、実施形態3に係る復号器のカーネル構成を示す。
制御器71Eが、次元設定テーブル300を基に(例えば、次元毎の名称や属性を基に)、複数のデータ次元グループを決定する。いずれのデータ次元同士を同一グループにするかは、例えば、次元の相関関係を表す情報や過去の履歴等を基に決定されてよい。図13及び図14に示すように、符号化器及び復号器の少なくとも一つ(例えば、符号化器及び復号器の各々)について、制御器71Eが、上記決定した複数のデータ次元グループにそれぞれ対応した複数のカーネルを構成する。当該複数のカーネルにそれぞれ対応した複数のコンボリューション層がシーケンシャルであり、当該複数のカーネルもシーケンシャルである。複数のデータ次元グループの各々は、相関の高い一つ以上のデータ次元が属するグループである。つまり、制御器71Eが、圧縮器生成処理において、カーネルの構成時に、相関の高い次元の集合(例えば、任意の基準の次元との相関係数が所定値以上の次元の集合)でカーネルを形成し、それぞれ形成された複数のカーネルを数珠繋ぎにする。例えば、相関の高い次元の集合の一例として、“縦”と“横”がある。“縦”及び“横”のいずれとも“時間”という次元は比較的相関が低いと考えられ、故に、“時間”は、“縦”及び“横”が属する集合とは異なる集合に属すると考えられる。
このように、複数のカーネルの各々が、相関の高い次元の集合に対応し、複数のカーネルが数珠繋ぎである。このため、各カーネルについて、相関の低い次元を考慮した計算が不要となるため計算量が減り(処理効率が高まり)、且つ、圧縮率が高まる。
なお、図13及び図14において、“e”は、符号化器を意味し、“d”は、復号器を意味し、“i”は、入力層を意味し、“m”は、中間層を意味し、“o”は、出力層を意味する。カーネルが数珠つなぎとは、複数のカーネルの各々について、当該カーネルの出力チャネル数が、当該カーネルの下流側に隣接するカーネルの入力チャネル数と同じであることを意味する(例えば、ceo1=cei2である)。符号化器及び復号器の各々について、数珠繋ぎのカーネルが構成された場合、復号器におけるカーネルの並び順は、符号化器におけるカーネルの並び順と逆である。
[実施形態4]
実施形態4を説明する。その際、実施形態1~3との相違点を主に説明し、実施形態1~3との共通点については説明を省略又は簡略する。
実施形態4では、ネットワーク学習が超解像学習を含む。これにより、符号化データセットのスケールを超えたスケールのデータセットを復号するリード処理が実現される。
超解像学習は、例えば、第1の超解像学習と、第2の超解像学習とのうちの少なくとも一つである。第1の超解像学習は、スケール3(圧縮器70Eに入力される多次元データセットのスケールの一例)よりも大きいスケールに対応した処理ユニット601を構成し、当該大きいスケール向けにアップサンプリングされたデータセットを、当該大きいスケールに対応した処理ユニット601に対する入力とした学習である。
図15は、第1の超解像学習の概要を示す。図16は、第1の超解像学習後の符号化処理の概要を示す。図17は、第1の超解像学習後の復号処理の概要を示す。
例えば、図3に例示の次元設定テーブル300において、サイズ314は、スケール3を基準にした値でよいが、スケール315は、スケール1~3の他に、スケール3を超える一つ以上のスケールを表してもよい。スケール3を超えるスケールが例えばユーザにより指定された場合、サイズ314が表す値を基に、指定されたスケールに対応したサイズが決定されてよい。例えば、スケール(n-3)(nは、3より大きい整数)に対応したサイズは、スケール3に対応したサイズの2(n-3)倍でよい。スケール3を超える指定されたスケールとして、スケール4を例に取る。図15によれば、スケール4に対応した処理ユニット601-4が構成されている。ネットワーク学習において、圧縮器70Eに入力された多次元データセット(スケール3の多次元データセット)が、スケール4向けにアップサンプリングされた後、一旦スケール3向けにダウンサンプリングされ、その後、スケール4向けにアップサンプリングされてから、符号化器E4に入力される。その後、スケール1~3と同様に、Le4及びLd4が得られ、Le及びLdに基づく誤差が最小になる学習が行われる。このようにして、符号化器E4について、スケールがスケール3からスケール4に拡大された場合のデータセットを符号化することの学習がされる。
図16によれば、ライト要求についてスケール4が指定された場合、符号化処理において、スケール3のデータセット(例えば、図8のデータセットw3c)が、スケール4のデータセットにアップサンプリングされてから、符号化器E4に入力される。結果として、スケール4のデータセットのビットストリームが格納される。
図17によれば、復号処理において、リード要求についてスケール4が指定されている場合、当該スケール4のビットストリームが復号されればよい。
図18は、第2の超解像学習の概要を示す。
第2の超解像学習は、スケール3以外のスケール1及び2の各々について、当該スケール向けにアップサンプリングされたデータを当該スケールに対応した処理ユニット601に対する入力とした学習である。学習時に各スケールでリード時にデータ入力を必要としないリファインネットワーク(Ri)が学習される。すなわち、最小スケール1以外のスケール2及び3の各々について、一つ小さいスケールについて得られたデータセットのアップサンプリング後のデータセットのリファインネットワーク(例えば、畳み込みニューラルネットワーク)が学習される。これにより、例えば、スケール3のデータセットが無くても、スケール2のデータセットからスケール3のデータセットを生成できる。ネットワーク学習では、例えば下記数2が採用される。数1との相違点は、真ん中の項である。Lrdは、下記(x)及び(y)に基づく劣化度を表す関数でよい。
(x)圧縮器70Eに入力されたスケール3のデータセットがスケールn向けにダウンサンプリングされたデータセット(又は、圧縮器70Eに入力されたスケール3のデータセット)。
(y)スケール(n-1)に対応した処理ユニット601-(n-1)から出力されたデータセットがスケールn向けにアップサンプリングされたデータセット(又は、スケール(n-1)に対応した処理ユニット601-(n-1)から出力されたデータセットと、スケール(n-2)に対応した処理ユニット601-(n-2)から出力されたデータセットがスケール(n-1)向けにアップサンプリングされたデータセットとの和が、スケールn向けにアップサンプリングされたデータセット)。
Figure 0007336995000002
[実施形態5]
実施形態5を説明する。その際、実施形態1~4との相違点を主に説明し、実施形態1~4との共通点については説明を省略又は簡略する。
実施形態1~4でのロス関数に代えて、本実施形態において便宜上「無指向性ロス関数」と呼ぶ数3のような関数が採用される。圧縮データをアプリケーションで使う場合に、ブロックノイズなどの規則性のあるアーティファクトはアプリケーションの誤判定につながりやすい。それをなくすため、以下の数3のように、入力データと圧縮展開後のデータの差分(アーティファクト)のエントロピーが最大となり(誤差が予測不能、ランダム性が高い)、かつアーティファクトとデータサイズが最小となるように、minimaxゲームとして符号化器及び復号器などのニューラルネットワークを学習することにより、規則性のないアーティファクトとなるようにする。例えば、下記数3が採用される。数3は、スケール毎に適用されてもよい。
Figure 0007336995000003
Eは符号化器、Dは復号器、qは量子化器である。Hは、特徴量マップのエントロピー見積器である。λは、ラグランジュマルチプライヤー(トレードオフの調整用パラメータ)である。Hは、入力された多次元データセット(スケール3の多次元データセット)とD(E(x))(圧縮伸長後のデータセット)との誤差データ(アーティファクト)のエントロピー見積器である。Lは、前述のとおり、誤差指標関数(例えば、PSNRや、MSE、MS-SSIMなどを用いる)である。xは、入力された多次元データセットである。数3によれば、図19に例示の通り(図19は、スケール1を例の取る)、新たなエントロピー見積器Hがある。エントロピー見積器Hに、符号化器E1に入力されるデータセットd1aと、復号器D1から出力されたデータセットd1bとの差が入力されて、無指向性度Leが算出される。新たなエントロピー見積器H(例えば、畳み込みニューラルネットワーク)は、符号化器E1に入力されるデータセットd1aと、復号器D1から出力されたデータセットd1bとの差を入力として、確率分布を出力し、ガウス分布などの無指向性のランダムな確率分布とのクロスエントロピーなどにより、無指向性度を算出してもよい。また、本実施例で述べたd1aとd1bの差は、単純な差分だけでなく、より高度なSSIMなどや、畳み込みニューラルネットワークなど、微分可能なモデルで構成されるその他データに対する何らかの処理による結果自体の差分を用いてもよい。LeとLeとの和に基づくLeが算出される。Leは、数3のλ(q(E(x)))に相当する。「λ(x-D(q(E(x))))」は、入力と出力とに基づいて(例えば、入力と出力の差に基づいて)所定の指標についての距離を計算することを意味する。「λ(x-D(q(E(x))))」を「Ld(x,D(q(E(x)))+λ(q(E(x))))」から引くことが、劣化の規則性が無指向になるような学習(言い換えれば、誤差の予測をできないようにすること、すなわち、エントロピーを最大化すること)を意味する。数3によれば、ロス関数が最小になるようにE、D及びHが学習され、その後に、ロス関数が最大になるようにHが学習される。数3は、テンソル圧縮(例えば画像圧縮)全般に適用できる。
以上、幾つかの実施形態を説明したが、これらは本発明の説明のための例示であって、本発明の範囲をこれらの実施形態にのみ限定する趣旨ではない。本発明は、他の種々の形態でも実行することが可能である。
110:ストレージシステム

Claims (16)

  1. 記憶装置と、メモリと、データ入出力を制御するプロセッサと、を有するストレージシステムにおいて、
    前記メモリが、多次元データセットのデータ次元毎の属性を表す情報である次元設定情報を格納し、
    前記プロセッサが、前記次元設定情報を基に圧縮器を生成する処理である圧縮器生成処理を行い、
    前記プロセッサが、前記生成された圧縮器を用いてライト対象の多次元データセットを圧縮して圧縮されたデータを前記記憶装置に書き込む処理であるライト処理を行い、
    データ次元毎の属性は、当該データ次元に属する値が連続した値であることを意味する連続と、当該データ次元に属する値が離散した値であることを意味する離散とのいずれかであり、
    前記圧縮器は、処理ユニットを含み、
    前記処理ユニットは、入力されたデータセットを符号化する符号化器と、当該符号化器から出力されたデータが量子化されることにより生成された特徴量マップを基にデータセットを復号する復号器と、特徴量マップを基にエントロピーを見積もるエントロピー見積器とのうち、少なくともエントロピー見積器を含み、
    前記圧縮器生成処理は、前記次元設定情報が表す、データ次元毎の属性を基に、処理ユニットを構成することを含む、
    ストレージシステム。
  2. 前記次元設定情報は、更に、データ次元毎に、データサイズを表し、
    前記処理ユニットにおけるエントロピー見積器のモデルは、畳み込みニューラルネットワークであり、
    前記処理ユニットが符号化器及び復号器を含んでいる場合、符号化器及び復号器の各々のモデルは、畳み込みニューラルネットワークであり、
    前記圧縮器生成処理は、チャネル数及びカーネル次元数を決定することを含み、
    前記プロセッサは、
    属性が離散である一つ以上のデータ次元があれば、当該一つ以上のデータ次元の各々についてのデータサイズを基に、チャネル数を決定し、
    属性が連続であるデータ次元があれば、属性が連続であるデータ次元の数に基づいて、カーネル次元数を決定する、
    請求項に記載のストレージシステム。
  3. 前記圧縮器生成処理は、前記処理ユニットを、多次元データセットの取り得る複数のスケールの各々について構成することを含む、
    請求項に記載のストレージシステム。
  4. 前記複数のスケールのうちの最小のスケールに対応した入力データセットは、入力された多次元データセットが当該最小のスケール向けにダウンサンプリングされた後のデータセットであり、
    前記複数のスケールのうちの最小のスケール以外の一つ以上のスケールの各々について、当該スケールに対応した入力データセットは、入力された多次元データセットが当該スケール向けにダウンサンプリングされたデータセットと、当該スケールより一つ小さいスケールに対応した復号器から出力されたデータセットが当該スケール向けにアップサンプリングされたデータセットとの差分としてのデータセットである、
    請求項に記載のストレージシステム。
  5. 前記圧縮器生成処理は、処理ユニットの学習であって、誤差を最小にする学習であるネットワーク学習を含む、
    請求項に記載のストレージシステム。
  6. 前記圧縮器生成処理は、前記処理ユニットを、多次元データセットの取り得る複数のスケールの各々について構成することを含み、
    前記ネットワーク学習は、スケール毎の処理ユニットの学習であって、スケール毎の誤差を要素とした全体誤差を最小にする学習であり、
    各スケールについて、誤差は、入力された多次元データセットに関し、劣化度及びビットレートに基づく関数から得られ、
    各スケールについて、劣化度は、当該スケールについての入力データセットと、当該入力データセットの当該スケールに対応した符号化器及び復号器を通じて得られた出力データセットとの差分に基づき、
    各スケールについて、ビットレートは、当該スケールについて得られた特徴量マップと、当該特徴量マップに基づき当該スケールに対応したエントロピー見積器により算出されたエントロピーとの差分に基づく、
    請求項に記載のストレージシステム。
  7. 前記ライト処理は、ライト要求を前記プロセッサが受け付けた場合に行われ、
    前記ライト要求は、ライト対象の多次元データセットを書き込むことの要求であって、スケールと当該多次元データセットのデータ次元毎のアドレスとが指定された要求であり、
    前記ライト処理は、
    多次元データセットの取り得る複数のスケールうちの最大のスケールよりも小さい一つ以上のスケールの各々について、前記ライト対象の多次元データセットを、当該スケール向けにダウンサンプリングすることと、
    前記ライト要求で指定されたスケールについて、前記ライト対象の多次元データセットに関し当該スケールについて得られた特徴量マップと、当該特徴量マップに基づき当該スケールに対応したエントロピー見積器により算出されたエントロピーとをエンコーディング処理することにより得られたデータである符号化データセットを書き込むことと、
    前記ライト要求で指定されたスケールとデータ次元毎のアドレスと、符号化データセットの書込み先の記憶領域の物理アドレスとの関連付けを表す論物情報を生成することと
    を含む、
    請求項に記載のストレージシステム。
  8. 前記プロセッサが、リード要求を受け付けた場合に、リード処理を行い、
    前記リード要求は、リード対象の多次元データセットを読み出すことの要求であって、スケールと当該多次元データセットのデータ次元毎のアドレスとが指定された要求であり、
    前記リード処理は、
    前記論物情報を基に、前記リード要求で指定されたスケールとデータ次元毎のアドレスとに対応した物理アドレスを特定することと、
    前記特定された物理アドレスが表す記憶領域から、符号化データセットを読み出すことと、
    読み出された符号化データをデコーディング処理することにより得られたデータセットに従う、前記リード要求で指定されたスケールでの多次元データセットを返すことと
    を含む、
    請求項に記載のストレージシステム。
  9. 前記プロセッサが、データパターンの特徴量マップが関連付いたパターン検索要求を受け付けた場合、パターン検索処理を行い、
    前記パターン検索処理は、
    前記パターン検索要求に関連付いた特徴量マップを符号化処理することにより得られた符号化データセットのパターンに一致するパターンを持つ符号化データセットを前記記憶装置から探すことと、
    見つかった符号化データセットの物理アドレスに関連付いている、スケールとデータ次元毎のアドレスとを、返すことと
    を含む、
    請求項に記載のストレージシステム。
  10. 前記ネットワーク学習において、前記プロセッサは、
    特徴量マップを、チャネル方向に複数の部分特徴量マップに分割し、
    当該複数の部分特徴量マップの各々について、当該部分特徴量マップを所定の確率でゼロにし、前記誤差を最小にする学習を行い、
    前記プロセッサは、ライト処理において、
    ライト対象の多次元データセットに基づく入力データセットの特徴量マップを、チャネル方向に複数の部分特徴量マップに分割し、
    当該複数の部分特徴量マップにそれぞれ対応した複数の符号化データセットをそれぞれ複数の記憶装置に書き込み、
    前記プロセッサは、リード処理において、
    前記複数の記憶装置のうち障害のある記憶装置がある場合、当該記憶装置以外の一つ以上の記憶装置からそれぞれ一つ以上の符号化データセットを読み出し、当該読み出された一つ以上の符号化データセットの各々を復号処理することにより得られたデータセットに基づくデータセットを、返す、
    請求項に記載のストレージシステム。
  11. 前記プロセッサは、前記次元設定情報を基に、複数のデータ次元グループを決定し、
    前記プロセッサは、前記符号化器及び前記復号器の少なくとも一つについて、
    前記決定した複数のデータ次元グループにそれぞれ対応した複数のカーネルを構成し、
    前記複数のカーネルにそれぞれ対応した複数のコンボリューション層をシーケンシャルとし、
    前記複数のデータ次元グループの各々は、相関の高い一つ以上のデータ次元が属するグループである、
    請求項に記載のストレージシステム。
  12. 前記圧縮器生成処理は、前記処理ユニットを、多次元データセットの取り得る複数のスケールの各々について構成することを含み、
    前記ネットワーク学習は、スケール毎の処理ユニットの学習であって、スケール毎の誤差を要素とした全体誤差を最小にする学習であり、
    前記ネットワーク学習は、超解像学習を含み、
    前記超解像学習は、
    前記圧縮器に入力される多次元データセットのスケールよりも大きいスケール向けにアップサンプリングされたデータセットを、当該大きいスケールに対応した処理ユニットに対する入力とした学習と、
    前記圧縮器に入力される多次元データセットのスケール以外の一つ以上のスケールの各々について、当該スケール向けにアップサンプリングされたデータを当該スケールに対応した処理ユニットに対する入力とした学習と
    のうちの少なくとも一つである、
    請求項に記載のストレージシステム。
  13. 前記処理ユニットは、前記符号化器に入力されるデータセットと前記復号器から出力されたデータセットとの差のエントロピーを見積もる別のエントロピー見積器を含み、
    前記ネットワーク学習は、ロス関数が最小となるよう前記符号化器、前記復号器及び前記エントロピー見積器を学習し、当該ロス関数が最大となるように前記別のエントロピー見積器を学習することを含む、
    請求項に記載のストレージシステム。
  14. 記憶装置と、メモリと、データ入出力を制御するプロセッサと、を有するストレージシステムにおいて、
    前記メモリが、多次元データセットのデータ次元毎の属性を表す情報である次元設定情報を格納し、
    前記プロセッサが、前記次元設定情報を基に圧縮器を生成する処理である圧縮器生成処理を行い、
    前記プロセッサが、ライト処理を行い、
    前記ライト処理は、前記生成された圧縮器を用いてライト対象の多次元データセットを圧縮し、圧縮されたデータを前記記憶装置に書き込む処理であり、
    前記プロセッサは、
    入力された多次元データセットの統計を解析し、
    当該解析の結果を基に、データ次元数と、データ次元毎の属性とを特定し、
    特定されたデータ次元数と、データ次元毎の属性とを基に、前記次元設定情報を作成又は更新する、
    ストレージシステム。
  15. 多次元データセットのデータ次元毎の属性を表す情報である次元設定情報を参照し、
    当該次元設定情報をに圧縮器を生成する処理である圧縮器生成処理を行い
    ライト処理を行う
    ことをストレージシステムにより行い、
    前記ライト処理は、前記生成された圧縮器を用いてライト対象の多次元データセットを圧縮し、圧縮されたデータを記憶装置に書き込む処理であり、
    データ次元毎の属性は、当該データ次元に属する値が連続した値であることを意味する連続と、当該データ次元に属する値が離散した値であることを意味する離散とのいずれかであり、
    前記圧縮器は、処理ユニットを含み、
    前記処理ユニットは、入力されたデータセットを符号化する符号化器と、当該符号化器から出力されたデータが量子化されることにより生成された特徴量マップを基にデータセットを復号する復号器と、特徴量マップを基にエントロピーを見積もるエントロピー見積器とのうち、少なくともエントロピー見積器を含み、
    前記圧縮器生成処理は、前記次元設定情報が表す、データ次元毎の属性を基に、処理ユニットを構成することを含む、
    記憶制御方法。
  16. 多次元データセットのデータ次元毎の属性を表す情報である次元設定情報を参照し、
    当該次元設定情報を基に圧縮器を生成する処理である圧縮器生成処理を行い、
    前記生成された圧縮器を用いてライト対象の多次元データセットを圧縮して圧縮されたデータを記憶装置に書き込む処理であるライト処理を行い、
    入力された多次元データセットの統計を解析し、
    当該解析の結果を基に、データ次元数と、データ次元毎の属性とを特定し、
    特定されたデータ次元数と、データ次元毎の属性とを基に、前記次元設定情報を作成又は更新する、
    ことをストレージシステムにより行う記憶制御方法。
JP2020002919A 2020-01-10 2020-01-10 ストレージシステム、及び、記憶制御方法 Active JP7336995B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2020002919A JP7336995B2 (ja) 2020-01-10 2020-01-10 ストレージシステム、及び、記憶制御方法
US17/761,782 US11922018B2 (en) 2020-01-10 2020-12-18 Storage system and storage control method including dimension setting information representing attribute for each of data dimensions of multidimensional dataset
PCT/JP2020/047314 WO2021140867A1 (ja) 2020-01-10 2020-12-18 ストレージシステム、及び、記憶制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2020002919A JP7336995B2 (ja) 2020-01-10 2020-01-10 ストレージシステム、及び、記憶制御方法

Publications (2)

Publication Number Publication Date
JP2021111882A JP2021111882A (ja) 2021-08-02
JP7336995B2 true JP7336995B2 (ja) 2023-09-01

Family

ID=76787962

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020002919A Active JP7336995B2 (ja) 2020-01-10 2020-01-10 ストレージシステム、及び、記憶制御方法

Country Status (3)

Country Link
US (1) US11922018B2 (ja)
JP (1) JP7336995B2 (ja)
WO (1) WO2021140867A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102492906B1 (ko) * 2021-10-29 2023-01-30 한국전자기술연구원 강화학습 기반 인메모리 스토리지의 압축 최적화 방법 및 시스템
CN114091085B (zh) * 2022-01-10 2022-04-15 北京一流科技有限公司 用于二元操作的数据访问控制系统及其方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011530234A (ja) 2008-07-31 2011-12-15 マイクロソフト コーポレーション 大規模なデータストレージのための効率的な列ベースデータの符号化
WO2016163025A1 (ja) 2015-04-10 2016-10-13 株式会社日立製作所 データ量削減機能に関する課金額を算出する方法及び管理システム
JP2018074604A (ja) 2017-12-19 2018-05-10 株式会社高速屋 データ圧縮符号化方法、復号化方法、その装置、及び、そのプログラム

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3952518B2 (ja) * 1996-03-29 2007-08-01 株式会社日立製作所 多次元データ処理方法
US7698285B2 (en) * 2006-11-09 2010-04-13 International Business Machines Corporation Compression of multidimensional datasets
US10360240B2 (en) * 2016-08-08 2019-07-23 International Business Machines Corporation Providing multidimensional attribute value information
JP6826021B2 (ja) 2017-11-20 2021-02-03 株式会社日立製作所 ストレージシステム
US11334280B2 (en) * 2020-06-30 2022-05-17 Western Digital Technologies, Inc. Storage device feature extraction optimization

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011530234A (ja) 2008-07-31 2011-12-15 マイクロソフト コーポレーション 大規模なデータストレージのための効率的な列ベースデータの符号化
WO2016163025A1 (ja) 2015-04-10 2016-10-13 株式会社日立製作所 データ量削減機能に関する課金額を算出する方法及び管理システム
JP2018074604A (ja) 2017-12-19 2018-05-10 株式会社高速屋 データ圧縮符号化方法、復号化方法、その装置、及び、そのプログラム

Also Published As

Publication number Publication date
JP2021111882A (ja) 2021-08-02
US20220382459A1 (en) 2022-12-01
US11922018B2 (en) 2024-03-05
WO2021140867A1 (ja) 2021-07-15

Similar Documents

Publication Publication Date Title
US11252441B2 (en) Hierarchical point cloud compression
US11508095B2 (en) Hierarchical point cloud compression with smoothing
US11276203B2 (en) Point cloud compression using fixed-point numbers
US11010928B2 (en) Adaptive distance based point cloud compression
US11935272B2 (en) Point cloud compression
US10897269B2 (en) Hierarchical point cloud compression
US11409998B2 (en) Trimming search space for nearest neighbor determinations in point cloud compression
US11604584B2 (en) Storage system
JP7336995B2 (ja) ストレージシステム、及び、記憶制御方法
EP3738080A1 (en) Learning compressible features
CN111727445A (zh) 局部熵编码的数据压缩
JP2022145701A (ja) ストレージシステム、及び、記憶コスト適正化方法
CN114245896A (zh) 向量查询方法、装置、电子设备及存储介质
Fan et al. Deep geometry post-processing for decompressed point clouds
US7705754B2 (en) Method and system for the compression of probability tables
CN107231556B (zh) 一种图像云储存设备
US20230086264A1 (en) Decoding method, encoding method, decoder, and encoder based on point cloud attribute prediction
JP7233875B2 (ja) 作成方法、コンピュータ及びプログラム
US20220392117A1 (en) Data compression and decompression system and method thereof
Mamatha et al. Significance of pre-processing and its impact on lossless hyperspectral image compression
US20240070927A1 (en) Image compression performance optimization for image compression
WO2023248427A1 (ja) 学習装置、自己符号化装置、学習方法、自己符号化方法及びプログラム
WO2023218232A1 (en) Time-series dimension compression
JP2023124660A (ja) 情報圧縮システム及び情報圧縮方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220725

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230516

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230713

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20230815

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230822

R150 Certificate of patent or registration of utility model

Ref document number: 7336995

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150