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

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

Info

Publication number
WO2021140867A1
WO2021140867A1 PCT/JP2020/047314 JP2020047314W WO2021140867A1 WO 2021140867 A1 WO2021140867 A1 WO 2021140867A1 JP 2020047314 W JP2020047314 W JP 2020047314W WO 2021140867 A1 WO2021140867 A1 WO 2021140867A1
Authority
WO
WIPO (PCT)
Prior art keywords
scale
data set
dimension
data
multidimensional
Prior art date
Application number
PCT/JP2020/047314
Other languages
English (en)
French (fr)
Inventor
弘明 圷
貴洋 成子
彬史 鈴木
Original Assignee
株式会社日立製作所
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 株式会社日立製作所 filed Critical 株式会社日立製作所
Priority to US17/761,782 priority Critical patent/US11922018B2/en
Publication of WO2021140867A1 publication Critical patent/WO2021140867A1/ja

Links

Images

Classifications

    • 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
    • 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
    • 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
    • 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
    • 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
    • G06N7/00Computing arrangements based on specific mathematical models
    • G06N7/01Probabilistic graphical models, e.g. probabilistic networks

Definitions

  • the present invention generally relates to memory control, for example compression control.
  • Patent Document 1 As a storage system that compresses data, for example, there is a technique disclosed in Patent Document 1.
  • IoT Internet of things
  • IoT data for example, data acquired from various devices
  • data is becoming more multidimensional and diversified.
  • An example of increasing the number of dimensions of data is an increase in the number of data dimensions.
  • One example of data diversification is the diversification of data dimensions.
  • Multidimensional data has a larger amount of data than one-dimensional data, and as IoT data increases, more and more storage capacity is required.
  • the multidimensionalization and diversification of data complicates the generation of the optimum compressor. If the compressor is not optimal, the compression ratio will be poor.
  • the storage system refers to the dimension setting information, which is information representing the attributes of each data dimension of the multidimensional data set, and generates a compressor based on the dimension setting information.
  • the configuration of the entire system according to the first embodiment is shown.
  • the structure of the theory conversion table is shown.
  • the structure of the dimension setting table is shown.
  • the structure of the quality setting table is shown.
  • the flow of the compressor generation process is shown.
  • An overview of network learning is given.
  • the flow of light processing is shown.
  • An example of the outline of the coding process is shown.
  • the flow of read processing is shown.
  • An example of the outline of the decryption process is shown.
  • the flow of the pattern search process is shown.
  • the outline of the second embodiment is shown.
  • the kernel configuration of the encoder according to the third embodiment is shown.
  • the kernel configuration of the decoder according to the third embodiment is shown.
  • the outline of the first super-resolution learning which concerns on Embodiment 4 is shown.
  • the outline of the coding process after the first super-resolution learning which concerns on Embodiment 4 is shown.
  • the outline of the decoding process after the first super-resolution learning which concerns on Embodiment 4 is shown.
  • the outline of the second super-resolution learning which concerns on Embodiment 4 is shown.
  • the outline of the portion corresponding to the scale 1 in the network learning according to the fifth embodiment is shown.
  • the "interface device” may be one or more communication interface devices.
  • One or more communication interface devices may be one or more communication interface devices of the same type (for example, one or more NICs (Network Interface Cards)) or two or more different types of communication interface devices (for example, NICs). It may be HBA (Host Bus Adapter).
  • the "memory” is one or more memory devices, and typically may be a main memory device. At least one memory device in the memory may be a volatile memory device or a non-volatile memory device.
  • a "permanent storage device” is one or more permanent storage devices.
  • the permanent storage device is typically a non-volatile storage device (for example, an auxiliary storage device), and specifically, for example, an HDD (Hard Disk Drive) or an SSD (Solid State Drive).
  • the "storage device” may be a physical storage device such as a permanent storage device, or a logical storage device associated with the physical storage device.
  • a "processor” is one or more processor devices.
  • the at least one processor device is typically a microprocessor device such as a CPU (Central Processing Unit), but may be another type of processor device such as a GPU (Graphics Processing Unit).
  • At least one processor device may be single-core or multi-core.
  • At least one processor device may be a processor core.
  • At least one processor device may be a processor device in a broad sense such as a hardware circuit (for example, FPGA (Field-Programmable Gate Array) or ASIC (Application Specific Integrated Circuit)) that performs a part or all of the processing.
  • FPGA Field-Programmable Gate Array
  • ASIC Application Specific Integrated Circuit
  • information that can be obtained as an output for an input may be described by an expression such as "xxx table", but the information may be data of any structure and may be an output for an input. It may be a learning model such as a neural network that generates. Therefore, the "xxx table” can be referred to as "xxx information”. Further, in the following description, the configuration of each table is an example, and one table may be divided into two or more tables, or all or a part of the two or more tables may be one table. You may.
  • the function may be described by the expression of "yyy device", but the function may be realized by executing one or more computer programs by the processor, or one. It may be realized by the above hardware circuit (for example, FPGA or ASIC).
  • a function is realized by executing a program by a processor, the specified processing is appropriately performed using a storage device and / or an interface device, so that the function may be at least a part of the processor.
  • the process described with the function as the subject may be a process performed by a processor or a device having the processor.
  • the program may be installed from the program source.
  • the program source may be, for example, a program distribution computer or a computer-readable recording medium (eg, a non-temporary recording medium).
  • each function is an example, and a plurality of functions may be combined into one function, or one function may be divided into a plurality of functions.
  • Examples of the yyy device include a compressor, an encoder (encoder), a decoder (decoder), a quantizer (quantizer), an entropy estimator (entropy estimator), and a controller.
  • a "data set” is a single logical chunk of electronic data as seen by a program such as an application program, for example any of records, files, key-value pairs and tuples. Good.
  • the common part of the reference codes may be used when the same type of elements are not distinguished, and the reference code may be used when the same type of elements are distinguished.
  • the storage system when the storage system is not distinguished, it may be referred to as "storage system 110", and when the storage system 110 is distinguished, it may be referred to as “storage system 110E” or “storage system 110C”.
  • the compression may be lossless compression or lossy compression.
  • FIG. 1 shows the configuration of the entire system according to the first embodiment.
  • the core system 103 communicates with the edge system 101 via a network 102 (for example, the Internet or a WAN (Wide Area Network)).
  • a network 102 for example, the Internet or a WAN (Wide Area Network)
  • edge systems 101 per core system 103.
  • one edge system 101 and one core system 103 will be taken as an example.
  • the edge system 101 includes a user system 115E and a storage system 110E.
  • the user system 115E may be a physical system (eg, one or more physical computers), or may be a plurality of types of computational resources (eg, an interface device, a storage device, a memory, and a processor connected to them). ) May be a system (for example, a virtual computer) provided on a physical system.
  • the user system 115E may be a system in which one or more sensors are connected, or may be a system including one or more sensors.
  • the user system 115E can perform at least one of sensing, edge processing, spatial mapping, data writing, data reading, and pattern search.
  • Sensing is the collection of multidimensional datasets from one or more sensors.
  • “Edge processing” is a processing in which the collected multidimensional data set is directly or processed and transmitted to the core system 103.
  • the multidimensional data set written in the storage system 110E is processed as it is or by at least one of the storage systems 110E and 110C to perform the core. It may be written to the storage system 110C in the system 103.
  • the "spatial mapping” is to map a multidimensional data set to the virtual space 61E provided by the storage system 110E, for example, to map coordinates (for example, values for each data dimension) in the coordinate system of the real space to the virtual space 61E. It is an affine transformation that converts the coordinates in the coordinate system (for example, the address for each virtual dimension).
  • Data writing is to send a write request for writing a multidimensional data set to be written to the virtual space 61E to the storage system 110E.
  • the multidimensional dataset is written by the storage system 110E.
  • Data read is to send a read request for reading a multidimensional data set to be read from the virtual space 61E to the storage system 110E.
  • the multidimensional data set is read by the storage system 110E and transmitted to the user system 115E.
  • Pattern search is to send a pattern search request, which is a search request for data having a pattern having a degree of similarity to a specified data pattern of a certain value or more, to the storage system 110E.
  • the address of the found multidimensional dataset (or the found data itself) is transmitted by the storage system 110E to the user system 115E.
  • the storage system 110E communicates with the user system 115E via an internal network (for example, LAN (Local Area Network)) (not shown).
  • the storage system 110E includes an interface device 51E, a permanent storage device 54E, a memory 52E, and a processor 53E connected to them.
  • the interface device 51E is connected to the network 102 and the internal network (not shown above).
  • the memory 52E stores management information including a discussion table described later, and one or more computer programs.
  • Processor 53E executes one or more computer programs.
  • the compressor 70E and the controller 71E are realized by executing at least a part of the computer programs by the processor 53E.
  • the compressor 70E can perform both coding (compression) and decoding (decompression).
  • the compressor 70E may be referred to as a "compression decompressor 70E".
  • the multidimensional data set to be written is encoded by the compressor 70E. Further, the coded data (compressed multidimensional data set) read from the physical space 60E is decoded by the compressor 70E.
  • the controller 71E causes the compressor 70E to perform learning and processes a request for the storage system 110E.
  • the controller 71E provides one or more virtual spaces 61E and manages one or more physical spaces 60E.
  • the virtual space 61E is a multidimensional address space.
  • the plurality of dimensions (plurality of virtual dimensions) that define the virtual space 61E are the same as the plurality of dimensions (plurality of data dimensions) that belong to the multidimensional data set.
  • the logical address information which is the address information used for accessing the virtual space 61E, includes the ID of the virtual space 61E and the address belonging to each of the plurality of virtual dimensions that define the virtual space 61E.
  • the physical space 60E is a one-dimensional address space (for example, an LBA (Logical Block Address) space) provided by the permanent storage device 54E.
  • LBA Logical Block Address
  • Logical address information (for example, information including the ID of the virtual space 61E and the address in the virtual space 61E) may be specified from the user system 115E, but in this embodiment, the controller 71E is from the user system 115E. Converts the access destination information (for example, the ID of a multidimensional data set or the address in the real space) specified in the write request or the read request into logical address information (for example, information including an address group for each dimension). , The physical address information (for example, the information including the ID of the physical space 60E and the address in the physical space 60E) may be specified from the converted logical address information.
  • the storage system 110 is a physical storage system (eg, one or more physical storage devices) such as an on-premises storage system, but instead is a cloud type. It may be a virtual storage system such as a storage system (for example, a system realized on a system having a plurality of types of computational resources). Computational resources may be hardware resources such as processors and memory, or may correspond to instances.
  • the core system 103 includes a user system 115C and a storage system 110C.
  • the user system 115C differs from the user system 115E in the following points. That is, the user system 115C does not have to perform sensing, edge processing, and spatial mapping. In addition, the user system 115C performs core processing.
  • the "core process” is a process of receiving a multidimensional data set (a multidimensional data set acquired by sensing or a multidimensional data set after processing thereof) from each of one or more edge systems 101.
  • the user system 115C transmits a write request, a read request, or a pattern search request to the storage system 110.
  • the storage system 110C may be the same as the storage system 110E. Regardless of whether the storage system 110E is a physical storage system or a virtual storage system, the storage system 110C may be either a physical storage system or a virtual storage system.
  • the virtual space 61C included in the storage system 110C may be associated with the virtual space 61E included in the storage system 110E.
  • the multidimensional data set is stored in both the virtual spaces 61E and 61C.
  • the scale of the multidimensional data set stored in the virtual space 61C is equal to or smaller than the scale of the multidimensional data set stored in the virtual space 61E.
  • a multidimensional dataset written to the virtual space 61E is written to the virtual space 61C with the amount of data reduced (eg, reduced in scale and / or compressed) by the controller 71E.
  • the amount of data communication between the edge system 101 and the core system 103 and the consumption storage capacity of the core system 103 can be reduced.
  • the controller 71E uses a part of the multidimensional data set in the virtual space 61E (for example, a multidimensional data set having a relatively high access frequency and / or a latest access time relatively close to the current time) in the physical space. It may be stored in the 60E, and the remaining multidimensional data set in the virtual space 61E may be stored in the virtual space 61C instead of being stored in the physical space 60E (in this case, the multidimensional data not stored in the physical space 60E). The data set may be read from the virtual space 61C by the controller 71E and responded to).
  • a part of the multidimensional data set in the virtual space 61E for example, a multidimensional data set having a relatively high access frequency and / or a latest access time relatively close to the current time
  • the data set may be read from the virtual space 61C by the controller 71E and responded to).
  • One of the edge system 101 and the core system 103 may not be present. Further, the user system 115 may be omitted in at least one of the edge system 101 and the core system 103.
  • the storage system according to the first embodiment of the present invention is either the storage system 110E or 110C, but may be one of the storage systems 110E and 110C.
  • the description of the storage system takes the storage system 110E of the storage systems 110E and 110C as a representative example.
  • the multidimensional data set is a moving image data set (for example, a moving image file) taken for a certain period of time by a camera which is an example of a sensor, and therefore includes a plurality of frames (still image data set). ..
  • FIG. 2 shows the structure of the theory conversion table.
  • the theory conversion table 200 is a table stored in the memory 52E of the storage system 110E.
  • the theory conversion table 200 shows the relationship between the logical address information and the physical address information.
  • the theory conversion table 200 has a plurality of records 210. For each multidimensional data set, there is a record 210L and a record group 220 corresponding to the record 210L. A record group 220 is associated with each record 210L. For example, when the number of virtual dimensions (data dimensions) is 3, the record 210L (logical address information) and the record group 220 (physical address information) may be associated with each other by Hashed-Octree.
  • Record 210L is a record in which the logical address information of the multidimensional data set is stored.
  • the logical address information includes, for example, information such as a virtual space ID 261 and a scale 262, and an address group 263 for each virtual dimension (for example, four address groups 263A to 263D corresponding to each of the four virtual dimensions).
  • the virtual space ID 261 represents the ID of the virtual space 61E in which the multidimensional data set is written.
  • Scale 262 represents the scale of a multidimensional data set.
  • the original multidimensional dataset has the largest scale.
  • the smaller the scale the coarser the multidimensional dataset and the smaller the amount of data in the multidimensional dataset.
  • the scale is multi-step.
  • the address group 263 is an address group (one or more addresses) corresponding to the position of the multidimensional data set among all the addresses of the virtual dimension belonging to the virtual space 61E identified from the virtual space ID. Represent.
  • the address group is a plurality of addresses
  • the plurality of addresses may be continuous addresses or discrete addresses.
  • the record group 220 is three records 210P.
  • the record 210P is a record in which physical address information is stored.
  • the physical address information includes, for example, information such as a physical space ID 271, a physical address 272, and a length 273.
  • the physical space ID 271 represents the ID of the physical space 60E in which the storage target is written.
  • the physical address 272 represents the address of the writing destination of the storage target (for example, the start address of the storage target) among all the addresses belonging to the physical space 60E identified from the physical space ID 271.
  • the length represents the length (data size) of the storage target.
  • the "storage target” is one of a model group, a coded data set, and an uncoded data set. That is, the three records 210P as the record group 220 include the record 210P1 in which the physical address information of the model group is stored and the record 210P2 in which the physical address information of the encoded data set (compressed multidimensional data set) is stored. And the record 210P3 in which the physical address information of the unencoded data set (uncompressed multidimensional data set) is stored.
  • the "model group” is one or more models, for example, a model of a encoder described later, a model of a decoder, and a model of an entropy estimator included in the compressor 70E.
  • Each model is, for example, a convolutional neural network.
  • At least one model of the encoder, decoder and entropy estimator is a model other than a convolutional neural network (for example, GMM (Gaussian Mixture Models), HMM (Hidden Markov Model), SCFG (StochasticContext-Free Grammar), GAN. (Generative Adversarial Nets), VAE (Variational Auto Encoder) or genetic programming) may be used.
  • model compression such as Mimic Model may be applied to reduce the amount of information in the data model.
  • the logical address information of the multidimensional data set stored in the virtual space 61E is stored in the record 210L, and the record group 220 associated with the record 210L is, for example, as follows. -For the virtual space 61E, when the model group is generated and the generated model group is stored or already stored in the physical space 60E, the record group 220 including the record 210P1 in which the physical address information of the model group is stored is stored. , Associated with record 210L. When the multidimensional data set is encoded and the coded data set (for example, feature amount map) is stored in the physical space 60E, the physical address information of the coded data set is stored in the record 210P2. Since the multidimensional data set is encoded, record 210P3 is null.
  • the physical address information of the unencoded data set is obtained. It is stored in the record 210P3. Record 210P2 is null because the multidimensional dataset is unencoded.
  • the I / O (Input / Output) of the multidimensional data set is performed through the virtual space 61E.
  • the logical address information that is, the information including the ID of the virtual space 61E and the address group for each of the plurality of dimensions belonging to the multidimensional data set is specified. For example, with respect to the dimension "time”, it is possible to specify the first to tenth frames among a large number of frames as addresses corresponding to the dimension "time".
  • the controller 71E identifies the physical address information from the theory conversion table 200 using the specified logical address information as a key, and based on the specified physical address information, at least one I / O of the model and the multidimensional data set. Is performed on the physical space 60E.
  • the controller 71E uses the address information (for example, information representing the address in the real space) specified by the user system 115E as a key, for example, an address conversion table (for example, the address information and the logical address in the real space) (not shown).
  • the logical address information is specified by referring to (a table showing the correspondence with the information), but the logical address information may be specified by a write request or a read request from the user system 115E.
  • the scale of the multidimensional data is multistage, and the scale of the multidimensional data of the write target or the read target is specified in the logical address information, but the logical address information does not necessarily include the scale. You may.
  • the scale is common for all dimensions belonging to the multidimensional data set for each multidimensional data set (in other words, a representative scale is specified for each multidimensional data set). For example, when a scale smaller than the maximum scale is specified as the scale 262, a value reduced according to the scale is set as the address group 263 for each virtual dimension.
  • the scale may be specified for each dimension.
  • FIG. 3 shows the configuration of the dimension setting table.
  • the dimension setting table 300 is a table stored in the memory 52E of the storage system 110E.
  • the dimension setting table 300 represents information about each virtual dimension of the virtual space 61E.
  • the dimension setting table 300 exists for each virtual space 61E, for example.
  • the dimension setting table 300 has, for example, a record for each virtual dimension (data dimension).
  • Each record stores information such as virtual space ID 311, dimension ID 312, attribute 313, size 314, scale 315, and name 316.
  • one virtual dimension will be taken as an example (“attention dimension” in the explanation of FIG. 3).
  • the virtual space ID 311 represents the ID of the virtual space 60E to which the dimension of interest belongs.
  • Dimension ID 312 represents the ID of the dimension of interest.
  • the attribute 313 is an attribute of the attention dimension, specifically, "continuous" (a plurality of addresses belonging to the attention dimension are consecutive addresses) or “discrete” (a plurality of addresses belonging to the attention dimension are discrete addresses). ).
  • the addresses for example, size
  • the dimension of interest is “sensor ID”
  • the IDs of a plurality of cameras are not always continuous, and therefore, the addresses of the dimension of interest (camera IDs) are usually discrete.
  • the size 314 represents the size of the attention dimension, and corresponds to the address of the attention dimension in the virtual space 61E. For example, according to the example of FIG. 3, both the vertical and horizontal sizes (number of pixels) of each frame in the multidimensional data set are "1024". Note that size 314 represents the size when the scale of the multidimensional data set is maximum. When a scale smaller than the maximum scale is specified as the scale of the multidimensional data set, for example, for the dimension of the attribute "continuous", the size of the dimension of the multidimensional data set is determined by the controller 71E according to the specified scale. Therefore, the size is smaller than the size represented by the size 314.
  • Scale 315 represents the range of scales that can be taken for the dimension of interest. For example, any of the scales 1 to 3 can be taken for any dimension whose attribute is "continuous". The larger the value of n of the scale n (n is a natural number), the larger the scale (the amount of data in the multidimensional data set). Scale 3 is the maximum scale in this embodiment.
  • the scale 315 may vary from dimension to dimension. For example, in one dimension scale 2 or 3 may be valid and in another dimension only scale 3 may be valid. Further, the scale 315 may be effective when the attribute of the attention dimension is "continuous".
  • Name 316 represents the name of the dimension of interest.
  • there are four virtual dimensions such as “time” (shooting time length), “vertical”, “horizontal”, and “sensor ID”.
  • time shooting time length
  • vertical vertical
  • horizontal horizontal
  • sensor ID the number of virtual dimensions
  • depth the number of virtual dimensions
  • frequency the number of virtual dimensions
  • the dimension setting table 300 is set by the user of the user system 115E, but may be set by another person or may be automatically set.
  • a method of automatic setting for example, there is the following method.
  • the controller 71E may analyze the statistics of the input multidimensional data set and create or update the dimension setting table 300 based on the result of the analysis.
  • the ID of the virtual space 61E in which the multidimensional data set is stored may be randomly determined or may be determined according to a predetermined rule. Analysis of statistics on multidimensional datasets reveals the number of dimensions, attributes and sizes. For example, if a multidimensional dataset is expressed as a [i 1 ] [i 2 ]... [i n ] (“a” is the identifier of the multidimensional dataset, and “[i x ]” is Corresponding to the dimension x, "i x " is the size for the dimension x), and the controller 71E inputs a [i 1 ] [i 2 ] ...
  • the controller 71E calculates i 1 ... n , and n for which c and d are optimal in a function such as f (a, i 1 ... n , n)-> (c, d) (f is a function.
  • f a, i 1 ... n , n
  • n the number of dimensions.
  • the control 71E is an address (value) between dimensions.
  • the attribute is “continuous” or “discrete”
  • a dimension setting table reflecting the determined attribute may be created. For example, if the correlation coefficient is greater than or equal to the threshold value, the attribute is "continuous”, and if the correlation coefficient is less than or equal to the threshold value, the attribute is "discrete”.
  • information such as scale and name may be appropriately set from preset values, or may be appropriately set based on statistics of user's usage history.
  • the controller 71E determines the number of dimensions of the multidimensional data set and the size and attributes of each dimension. It is determined by reinforcement learning using the information items of the dimension setting table such as, etc. as parameters (for example, reinforcement learning using the compression rate as a reward), and a dimension setting table reflecting the determined parameters may be created.
  • information such as scale and name may be appropriately set from preset values, or may be appropriately set based on statistics of user's usage history.
  • FIG. 4 shows the structure of the quality setting table.
  • the quality setting table 400 is a table stored in the memory 52E of the storage system 110E.
  • the quality setting table 400 represents the quality condition (in other words, acceptable quality) of the multidimensional data set stored in the virtual space 61E.
  • the quality setting table 400 has a record for each virtual space 61E (for example, the quality condition may be set in an arbitrary unit such as for each range in the virtual space 61E instead of each virtual space 61E).
  • Each record stores information such as virtual space ID 411, attribute 412, range 413, margin of error index 414, and margin of error amount 415.
  • the virtual space ID 411 represents the ID of the virtual space 61E.
  • Attribute 412 indicates whether the compression of the multidimensional data set stored in the virtual space 61E is "lossless” or "lossy”.
  • Range 413 represents a range of values in a multidimensional dataset (eg, a range of pixel values in an image).
  • the margin of error index 414 and the margin of error amount 415 are useful information when the compression is "lossy".
  • the margin of error index 414 represents the type of error to be calculated (for example, “RMSE” (Root Mean Squared Error)).
  • the margin of error amount 415 represents a condition (for example, a range of margin of error) of a value that is allowed as the calculated error value.
  • FIG. 5 shows the flow of the compressor generation process.
  • the dimension setting table 300 and the quality setting table 400 have been set in a predetermined initialization process.
  • all the models of the encoder, the decoder and the entropy estimator are convolutional neural networks.
  • This compressor generation process may be started, for example, at any of the following.
  • the controller 71E receives a compressor generation request (request for generating a compressor) in which the virtual space ID is specified.
  • the compressor generation request is transmitted from, for example, the user system 115E (or the management system (not shown) of the storage system 110E).
  • the model group can be displayed. An uncreated virtual space 61E is found.
  • the virtual space 61E that is the target of the compressor generation processing is referred to as "attention virtual space 61E".
  • the controller 71E refers to the dimension setting table 300 (S501).
  • the controller 71E determines whether or not the attribute 313 of the attention unprocessed dimension is "discretized” (S502).
  • the "unprocessed dimension” is a virtual dimension that belongs to the virtual space of interest and whose attribute 313 has not yet been referenced.
  • the "attention unprocessed dimension” is an unprocessed dimension of one or more unprocessed dimensions that is noticed (selected) by the controller 71E.
  • S502 If the determination result of S502 is true (S502: Yes), that is, if the attribute 313 of the attention unprocessed dimension is "discrete”, whether or not the controller 71E has a value set in N Channel (number of channels). Is determined (S503).
  • the controller 71E sets the value of the size 314 of the attention unprocessed dimension in the N Channel (S504). As a result, the value is set in N Channel.
  • the controller 71E changes the value of N Channel, a value set in the N Channel, the product of the value of the target raw dimension size 314 (S505).
  • the controller 71E constitutes each CNN (convolutional neural network) of the encoder, the decoder, and the entropy estimator (S508).
  • the configuration of CNN is determined based on N Channel and N Kernel.
  • the kernel type is determined based on N Kernel
  • the number of channels is determined based on N Channel
  • the NN parameter group is initialized.
  • controller 71E performs network learning (CNN learning) (S509).
  • non-continuous and order-independent inputs are channels, and continuous inputs are preferably processed by using a kernel. Therefore, according to the example of FIG. 5, the number and size 314 of the virtual dimensions of the attribute "discrete" affect the N Channel (number of channels), and the number of virtual dimensions of the attribute "continuous” is N Kernel (kernel dimension). Affects the number). This contributes to the automatic generation of optimal CNNs for the number and format of dimensions in multidimensional datasets.
  • FIG. 6 shows an outline of network learning (S509).
  • the compressor 70E is configured as follows.
  • the compressor 70E includes a processing unit 601 for each scale.
  • m 3
  • processing units 601-1 to 601-3 corresponding to the scales 1 to 3, respectively.
  • the processing unit 601-n includes a encoder En, a decoder Dn and an entropy estimator Hn.
  • the quantizer q is common to a plurality of processing units 601-1 to 601-3, but there may be a quantizer q for each processing unit 601.
  • the feature map FMn is generated in the processing unit 60-1n.
  • Ld i represents the degree of deterioration, specifically, for example, the error indicator function (e.g., PSNR (Peak Signal-to- Noise Ratio), MSE (Mean Square Error), or, MS-SSIM (Multi-Scale Structural Similarity)).
  • Le i represents the bit rate, and specifically, for example, the entropy represented by the output from the entropy estimator Hn in which the feature amount map FMn is input (for example, the probability distribution representing the predicted probability of appearance of each symbol). This is a function for comparing the feature amount map FMn (for example, a probability distribution representing the probability of appearance of each symbol as a correct answer).
  • Controller 71E has a Ld i and Le i linked by Lagrange multiplier (lambda), we learn that expression as a loss function.
  • Processing units 601-1 to 601-3 are sequentially associated in scale order. Specifically, the output of the processing unit 601-n affects the input of the processing unit 601- (n + 1).
  • the following network learning is performed on the compressor 70E having such a configuration.
  • the multidimensional data set d3a is input.
  • the multidimensional data set d3a is the original multidimensional data set.
  • the multidimensional data set d3a may be a multidimensional data set separately prepared as a teacher data set, or may be a multidimensional data set to be written to be input from the user system 115E.
  • the compressor 70E downsamples the multidimensional data set d3a to the multidimensional data set d2a. For example, the size reduction ratio (for example, 1/2 times) is determined for each scale reduction by one step, and the size of each data dimension belonging to the multidimensional data set d3a is reduced according to the reduction ratio. Will be done. For example, the number of vertical and horizontal pixels of a frame and the number of frames per second are reduced by half.
  • the compressor 70E downsamples the multidimensional data set d2a to the multidimensional data set d1a.
  • the compressor 70E gradually lowers the scale of the multidimensional data set d3a to the minimum scale, that is, gradually downsamples the multidimensional data set d3a.
  • the following processing is performed stepwise from the minimum scale to the maximum scale.
  • the processing performed for each of the scales 1 to 3 will be described.
  • the compressor 70E sets the data format of the multidimensional data set d1a into a predetermined format, and inputs the multidimensional data set d1a to the encoder E1.
  • the encoder E1 encodes the input multidimensional data set d1a, and the quantizer q generates the feature map FM1 of the encoded multidimensional data set d1a.
  • Le 1 (for example, a function for comparing probabilities such as cross entropy) is calculated based on the probabilities and the appearance probabilities of each correct symbol calculated directly from the feature map FM1.
  • the decoder D1 generates a multidimensional data set d1b (decoded multidimensional data set) based on the feature map FM1.
  • the controller 71E calculates the error of the multidimensional data sets d1a and d1b
  • the compressor 70E upsamples the multidimensional data set d1b to the multidimensional data set d2b.
  • the size expansion ratio (for example, double) is determined for each step of scale increase, and for each data dimension belonging to the multidimensional data set d1b, the size for the data dimension is expanded according to the expansion ratio. ..
  • the enlargement ratio may be the reciprocal of the reduction ratio.
  • the multidimensional data set d2b is a data set having the same scale as the multidimensional data set d2a, but is multidimensional because it is a data set obtained through downsampling, coding, decoding, and upsampling of the multidimensional data set d2a. It is not always exactly the same as the dimensional data set d2a.
  • the compressor 70E calculates the difference data set d2c between the multidimensional data set d2a and the multidimensional data set d2b.
  • the compressor 70E sets the data format of the difference data set d2c to a predetermined format, for example, and inputs the difference data set d2c to the encoder E2.
  • the encoder E2 encodes the input difference data set d2c, and the quantizer q generates the feature map FM2 of the encoded difference data set d2c.
  • the entropy estimator H2 calculates Le 2 based on the value calculated based on the feature map FM2 and the feature map FM2.
  • the decoder D2 generates a difference data set d2d (decoded difference data set) based on the feature map FM2.
  • the difference data set d2d is a lossy-compressed decryption data set of the difference data sets d2c of the multidimensional data sets d2a and d2b.
  • the controller 71E calculates the error between the multidimensional data set d2a and the decoded data set 2 using Ld 2.
  • the compressor 70E upsamples the sum of the multidimensional data set d2b and the difference data set d2d into the multidimensional data set d3b.
  • the compressor 70E calculates the difference data set d3c between the multidimensional data set d3a and the multidimensional data set d3b.
  • the compressor 70E sets the data format of the difference data set d3c to a predetermined format, for example, and inputs the difference data set d3c to the encoder E3.
  • the encoder E3 encodes the input difference data set d3c, and the quantizer q generates the feature map FM3 of the encoded difference data set d3c.
  • the entropy estimator H3 calculates Le 3 based on the value calculated based on the feature map FM3 and the feature map FM3.
  • the decoder D3 generates a difference data set d3d (decoded difference data set) based on the feature map FM3.
  • the sum of the multidimensional data set d3b and the difference data set d3d corresponds to the decrypted data set 3 which is the decrypted data set after the lossy compression of the multidimensional data set d3a.
  • the controller 71E calculates the error between the multidimensional data set d3a and the decoded data set 3 using Ld 3.
  • Controller 71E has a Ld i and Le i linked by Lagrange multiplier (lambda), one example of a formula is a loss function of the street number 1.
  • FIG. 6 there is a processing unit 601 for each scale, and the processing unit 601 of each scale is learned.
  • a data set encoded by the processing unit 601 corresponding to the scale is stored for each scale below the scale specified by the write request.
  • the coded data set corresponding to the scale specified in the read request is decoded by the processing unit 601 corresponding to the specified scale.
  • one processing unit common to a plurality of scales may be used as a compressor, but in this case, downsampling of the decoded data set may be required depending on the scale specified in the read request. In the present embodiment, it is possible to realize read processing more efficiently than in such a comparative example.
  • the storage capacity consumed increases. Therefore, in the present embodiment, if a plurality of processing units 601 corresponding to the plurality of scales are sequentially associated with each other in the order of the scales and the scale n is not the smallest scale, the multidimensional data set itself of the scale n itself. Instead of the encoded data set, a data set in which the difference between the multidimensional data set of scale n and the decoded data set of scale n is encoded is stored. Thereby, the increase in the consumption storage capacity can be reduced.
  • the "decoded data set of scale n" is a data set obtained by irreversibly compressing a multidimensional data set of scale n and then decoding or a data set corresponding thereto.
  • the network learning may be performed before accepting the multidimensional data set to be written from the user system 115E, but the network learning may be performed using the multidimensional data set to be written to be input from the user system 115E (that is, dynamically). May be done.
  • the multidimensional data set used in network learning may be each multidimensional data set input from the user system 115E, or one or more multidimensional data sets received from the user system 115E for learning from the user system 115E. It may be a multidimensional dataset specified as (as teacher data).
  • the controller 71E analyzes the statistics of the multidimensional data set to be written received from the user system 115E and detects that the data characteristics of the multidimensional data set have changed, the multidimensional data belonging to the changed data characteristics Network learning may be performed using the set. Even if the model group is updated as appropriate, a new model group is added to the physical space 60E, and the associated model group (physical address information of the model group) is different depending on the logical address information for the same virtual space 61E. Good. That is, there may be one or more compressors 70E per virtual space 61E.
  • the configuration and processing illustrated in FIG. 6 can be expressed as follows, for example.
  • -The compressor includes a processing unit corresponding to the scale for each scale.
  • Each processing unit is a encoder, a decoder, and an entropy estimator (multidimensional input to the encoder based on a feature quantity map based on a multidimensional data set encoded by the encoder). Includes an estimator) that estimates the entropy of the dataset.
  • the error obtained for each scale processing unit is a factor in the error of the entire compressor.
  • -For each scale, the error obtained for the processing unit of that scale is based on the degree of deterioration and the bit rate.
  • the degree of deterioration with respect to the scale n is based on the error between (A) and (B).
  • A) is a data set in which the input multidimensional data set is downsampled for the scale n.
  • B is a data set output from the scale n decoder when (A) is input to the scale n encoder.
  • the degree of deterioration with respect to the scale n is based on the error between (C) and (D).
  • C) is an input multidimensional data set or a data set in which the multidimensional data set is downsampled for scale n.
  • D) is the sum of (d1) and (d2).
  • (D1) is (d11) when the scale n is the second smallest scale, and (d12) when the scale n is any scale other than the second smallest scale.
  • (D11) is a data set in which (B) is upsampled for scale n.
  • (D12) is a data set in which (D) corresponding to the scale (n-1) is upsampled for the scale n.
  • (D2) A data set output from a scale n decoder by inputting a scale n difference data set to a scale n encoder.
  • the difference data set of scale n is the difference between (C) and (d1).
  • the bit rate obtained for the processing unit of the scale is based on the feature map based on (A) or (C) and the entropy calculated by the entropy estimator of the scale based on the feature map. Based on.
  • the compressor 70E corresponding to the virtual space 61E is a compressor 70E for lossless compression.
  • the compressor 70E does not require a encoder En, a quantizer q, and a decoder Dn for lossy compression for each scale.
  • the compressor 70E may have a processing unit for lossless compression for each scale (or common to all scales).
  • the floating point is divided by uchar and symbolized (for example, when float32 is adopted as the compression method, uchar divides the floating point into 4 pieces, each of which has 256 symbols.
  • the information may be input to the entropy estimator in the processing unit (with 4 channels).
  • FIG. 7 shows the flow of light processing.
  • the write process is performed when the controller 71E receives a write request for the multidimensional data set to be written.
  • the logical address information is specified by the controller 71E.
  • the logical address information may be specified in the write request, or may be specified from the address information specified in the write request.
  • the controller 71E refers to the theory conversion table 200 using the specified logical address information as a key, and determines whether or not the physical address information of the model group corresponding to the logical address information exists (S701). For example, when the same logical address information as the specified logical address information does not exist in the theory conversion table 200, or the virtual space 61E of the write destination (the virtual space 61E identified from the virtual space ID included in the specified logical address information). ), The determination result of S701 is false.
  • the controller 71E When the determination result of S701 is false (S701: No), the controller 71E does not encode the multidimensional data set to be written, and the write destination virtual space 61E (virtual space ID including the specified logical address information). Write to the virtual space 61E) identified from (S707).
  • the controller 71E updates the theory conversion table 200, specifically, the logical address information specified for the write request and the physical address information of the unencoded data set corresponding to the logical address information ( S708).
  • the controller 71E identifies the physical address information of the model group corresponding to the specified logical address information, and based on the physical address information, the physical space 60E The model group is acquired from (S702).
  • the controller 71E determines whether or not model creation (re-learning of the compressor including the model group) is necessary (S703). For example, when the controller 71E detects that the tendency of the data characteristics of the multidimensional data set written in the virtual space 61E to be written has changed, the determination result of S703 becomes true.
  • the controller 71E performs network learning for the virtual space 61E of the write destination (S704).
  • the multidimensional data set used for the network learning may be a multidimensional data set specified by the user, a multidimensional data set to be written, or a multidimensional data set written in the latest predetermined period. Good.
  • the network learning is as described with reference to FIG.
  • the coding process is performed (S705). That is, when the multidimensional data set to be written is input to the compressor 70E by the controller 71E, the multidimensional data set to be written is encoded.
  • the controller 71E writes the multidimensional data set encoded in S705 to the virtual space 61E to be written (S706).
  • the controller 71E updates the theory conversion table 200, specifically, the physical address information of the coded data set corresponding to the logical address information specified for the write request (S708).
  • network learning S704
  • the controller 71E also writes the model group to the write destination virtual space 61E in S706, and corresponds to the logical address information specified for the write request in S708. Update the physical address information of the group.
  • the controller 71E periodically or irregularly checks each record 210L in the theory conversion table 200 for the presence or absence of an uncoded data set, and if there is an uncoded data set, the uncoded data set is present.
  • the compressor 70E including the model group corresponding to the write destination virtual space 61E of the converted data set if there is no such compressor 70E, the compressor 70E is generated through the compressor generation process
  • the uncoded data Using the compressor 70E including the model group corresponding to the write destination virtual space 61E of the converted data set (if there is no such compressor 70E, the compressor 70E is generated through the compressor generation process), the uncoded data.
  • the set may be converted into a coded data set, the coded data set may be stored in the physical space 60E in place of (or in addition to) the uncoded data set, and the theory conversion table 200 may be updated.
  • FIG. 8 shows an example of an outline of the coding process (S705).
  • the sign of the element with respect to the scale n includes n (n is a natural number of any of 1 to 3) as in FIG.
  • the scale is specified by the controller 71E from the logical address information specified for the write request.
  • the coding may be performed only for the scale specified for the write request, but in the present embodiment, it is performed for each scale below the specified scale. As a result, it is expected that the read processing speed described later will be high. It should be noted that coding for a scale larger than the specified scale is unnecessary.
  • the specified scale is scale 3 (maximum scale), and the scales below scale 3 are scale 3, scale 2 and scale 1. Therefore, in the present embodiment, coding is performed for each of the scales 1 to 3.
  • the flow of the coding process follows the configuration of the compressor 70E.
  • the compressor 70E downsamples the input multidimensional data set w3a to be written for scale 2. As a result, the scale 2 multidimensional data set w2a is generated. The compressor 70E also downsamples the multidimensional data set w2a for scale 1. As a result, the scale 1 multidimensional data set w1a is generated.
  • the multidimensional data set w1a is converted into the feature map FM1w through the encoder E1 and the quantizer q. Based on the feature map FM1w and the entropy based on the feature map FM1w (value obtained by inputting the feature map FM1w to the entropy estimator H1), AE (encoding processing of alicemetic coding) is performed. This is done and the bitstream w1c is generated.
  • the bitstream w1c corresponds to the coded data set of the multidimensional data set w1a.
  • Bitstream generation for scale 2 is as follows. That is, the difference data set w2c is converted into the feature map FM2w through the encoder E2 and the quantizer q. Based on the feature map FM2w and the entropy based on the feature map FM2w (value obtained by inputting the feature map FM2w to the entropy estimator H2), AE is performed and a bit stream w2e is generated.
  • the difference data set w2c is a difference between the multidimensional data set w2a and the multidimensional data set w2aw2b.
  • the multidimensional data set w2b is a data set in which the multidimensional data set w1b is upsampled for scale 2.
  • the multidimensional data set w1b is a data set output from the decoder D1 when the FM1w is input to the decoder D1.
  • Bitstream generation for scale 3 is as follows. That is, the difference data set w3c is converted into the feature map FM3w through the encoder E3 and the quantizer q. Based on the feature map FM3w and the entropy based on the feature map FM3w (value obtained by inputting the feature map FM3w into the entropy estimator H3), AE is performed and a bit stream w3e is generated.
  • the difference data set w3c is a difference between the multidimensional data set w3a and the multidimensional data set w3b.
  • the multidimensional data set w3b is a data set in which the sum of the multidimensional data set w2b and the multidimensional data set w2d is upsampled for scale 3.
  • the multidimensional data set w2d is a data set output from the decoder D2 when the FM2w is input to the decoder D2.
  • bitstreams w1c, w2e and w2d are written in the physical space 60E as a coded data set of the multidimensional data set w3a in S706.
  • the physical address information corresponding to the range of the write destination is associated with the logical address information specified for the write request in S708.
  • FIG. 9 shows the flow of lead processing.
  • Read processing is performed when the controller 71E receives a read request.
  • the logical address information of the multidimensional data set to be read according to the read request may be specified in the read request or may be specified from the address information specified in the read request. Further, the logical address information or the entire address information may not necessarily be specified in the read request.
  • the logical address information of the multidimensional data set to be read may be the logical address information of the multidimensional data set recently written in the virtual space 61E identified from the virtual space ID. ..
  • the address group for the dimension whose attribute is "discrete" may be specified as Onehot vector.
  • the controller 71E refers to the theory conversion table 200 using the specified logical address information as a key (S901), and whether or not there is data in the physical space portion (a part of the physical space 60E) corresponding to the logical address information. Or, specifically, it is determined whether or not the record group 220 corresponding to the logical address information exists (S902).
  • the physical corresponding to the logical address information is stored.
  • At least a part of the space portion may be a range represented by the logical address information (logical address information of the virtual space 61C) corresponding to the physical address information of the physical space 60C.
  • the controller 71E specifically determines whether or not the data set stored in the physical space portion corresponding to the logical address information is an unencoded data set. Is determined whether or not the record 210P3 corresponding to the logical address information is valid (S903).
  • the controller 71E reads the unencoded data set from the physical space portion represented by the record 210P3 corresponding to the logical address information (S906), and the unencoded data. The set is returned as a response to the read request (S907).
  • the controller 71E reads the model group and the coded data set from the physical space portion represented by the records 210P1 and 210P2 corresponding to the logical address information (S904). Decoding processing for decoding the coded data set is performed by the compressor 70E including the model group (S905). The controller 71E returns the data set decoded by the decoding process as a response to the read request (S907).
  • FIG. 10 shows an example of an outline of the decoding process (S905).
  • the sign of the element with respect to the scale n includes n (n is a natural number of any one of 1 to 3) as in FIGS. 6 and 8.
  • the scale is specified by the controller 71E from the logical address information specified for the read request.
  • the scale specified for the read request is equal to or less than the scale represented by the logical address information registered in the theory conversion table 200 for the multidimensional data set to be read. This is because there is no bitstream for a scale that exceeds the scale represented by the logical address information. Decryption is performed for each scale below the specified scale.
  • the specified scale is scale 3.
  • the bitstreams in the physical space portion represented by the physical address information corresponding to the logical address information specified for the read request are the bitstreams r1a, r2a, and r3a.
  • the flow of the decoding process follows the configuration of the compressor 70E.
  • AD Arimetic coding decoding processing
  • a probability distribution obtained by inputting some FM1r restored by AD from a part of the bitstream r1a, or other information saved for probability prediction, or both into the entropy estimator H1.
  • a part of FM1r to be restored is restored from a part of the bitstream r1a to be restored.
  • a multidimensional data set r1b is obtained.
  • the multidimensional data set r1b is upsampled for scale 2 to obtain the multidimensional data set r2c.
  • AD is performed on the bitstream r2a.
  • a part of FM2r to be restored is restored from a part of the bitstream r2a to be restored.
  • the difference data set r2b is obtained.
  • the multidimensional data set r2d is obtained.
  • the multidimensional data set r2d is upsampled for scale 3 to obtain the multidimensional data set r3c.
  • AD is performed on the bitstream r3a.
  • a probability distribution obtained by inputting some FM3r restored by AD from a part of the bitstream r3a, or other information saved for probability prediction, or both into the entropy estimator H3.
  • a part of FM3r to be restored is restored from a part of the bitstream r3a to be restored.
  • the difference data set r3b is obtained.
  • the multidimensional data set r3d is obtained.
  • the multidimensional data set r3d is a scale 3 multidimensional data set, that is, a multidimensional data set to be read.
  • the resulting scale 3 multidimensional data set is responsive in S907.
  • FIG. 11 shows the flow of the pattern search process.
  • the pattern search process is performed when the controller 71E receives a pattern search request having a data pattern to be searched.
  • the following processing may be performed only for the virtual space ID specified in the pattern search request, or may be performed for each virtual space 61E.
  • one virtual space 61E will be taken as an example.
  • the controller 71E encodes the data pattern to be searched by the compressor 70E including the model group corresponding to the virtual space 61E (S1101). As a result, for each scale, a coded data set (bitstream and / or feature map) of the data pattern to be searched is obtained.
  • the controller 71E matches the coded data set (eg, bitstream and / or feature map for each scale) corresponding to the unchecked record 210L belonging to the virtual space 61E with the coded data set obtained in S1101. It is determined whether or not there is a coded data set (for example, a coded data set having a difference of zero or a difference within an allowable range) (S1102).
  • the “unchecked record 210L” is a record 210L that is not referenced in S1102 in this pattern search process.
  • the controller 71E adds the logical address information of the unchecked record 210L to the match list (S1103).
  • the "match list” is a list in which the logical address information in which the determination result of S1102 is true is recorded, and is a list transmitted as a response to the pattern search request.
  • S1102 When the determination result of S1102 is false (S1102: No), or after S1103, it is determined whether or not the controller 71E has performed S1102 for all the records 210L belonging to the virtual space 61E (S1104). If the determination result of the determination in S1104 is false (S1104: No), S1102 is performed.
  • the controller 71E If the determination result of S1104 is true (S1104: Yes), the controller 71E returns the match list as a response to the pattern search request (S1105). In place of or in addition to the match list, at least one of the coded datasets for which a match was obtained may be returned as a response. For example, if the number of matched records 210L is less than or equal to a predetermined number, the matched encoded dataset may be returned as a response in place of or in addition to the match list. [Embodiment 2]
  • the second embodiment will be described. At that time, the differences from the first embodiment will be mainly described, and the common points with the first embodiment will be omitted or simplified.
  • FIG. 12 shows an outline of the second embodiment.
  • the storage system 110E has a plurality of nodes 1200E.
  • Each node 1200E is, for example, a physical storage device or a general-purpose computer.
  • Each node 1200E has a persistent storage device 1201E.
  • the physical space 60E is based on a plurality of storage spaces provided by the plurality of nodes 1200E.
  • scale 1 is typically taken as an example.
  • a multidimensional dataset for scale 1 is transformed into a feature map through encoder D1 (and quantizer q not shown).
  • the compressor 70E (or controller 71E) divides the feature map in the channel direction.
  • a plurality of partial feature amount maps f1 can be obtained.
  • four partial feature amount maps f1a to f1d are obtained.
  • the number of partial feature amount maps f1 may be less than or equal to the number of storage devices (for example, node 1200 or permanent storage device 1201) that can store data.
  • the compressor 70E (or controller 71E) may divide the feature map in the channel direction so that it is not necessary to store two or more partial feature maps f1 in the same storage device.
  • the entropy estimators H1 a to H1 d corresponding to the partial feature amount maps f1a to f1d are prepared.
  • the entropy estimator H1 makes an estimate based on the dependency between channels, while the entropy estimators H1 a to H1 d make an estimate for the channel corresponding to the entropy estimator and consider the dependency with other channels. Not an independent entropy estimator.
  • the controller 71E learns for each of the plurality of partial feature map f1 by making the partial feature map zero with a predetermined probability and minimizing the error of the entire compressor 70E.
  • the "predetermined probability” may be a probability common to a plurality of partial feature amount maps f1, and the storage device (node 1200E or permanent storage device 1201E) of the storage destination of the partial feature amount map f1.
  • Le 1 may be the sum of four cross entropies corresponding to the entropy estimators H1 a to H1 d, respectively.
  • the cross entropy is based on the information stored by the entropy estimator for the partial feature amount map f1 corresponding to the entropy estimator and other probability predictions. It may be calculated based on the calculated symbol appearance probability and the appearance probability of the correct symbol directly calculated from the partial feature amount map f1.
  • the controller 71E features a feature map of the input dataset (original multidimensional dataset or downsampled multidimensional dataset) for each scale below the scale specified for the write request. Is divided into four partial feature map (an example of a plurality of partial feature maps) in the channel direction.
  • the controller 71E generates four coded data sets (for example, four bitstreams) based on the four partial feature maps and the trained entropy estimators H1 a to H1 d.
  • the controller 71E writes the four coded data sets to four different nodes 1200Ea-1200Ed.
  • a defect for example, failure or delay
  • the node 1200E or the persistent storage device 1201E in the node 1200E of any of the four nodes 1200Ea to 1200Ed, and the node 1200E is coded.
  • the converted data set for example, a bit stream
  • the controller 71E sets the partial feature map corresponding to the node 1200E to zero, and decodes the scale 1 coded data set based on the coded data set read from each of the remaining three nodes 1200E. Good.
  • the second embodiment even if any of the storage devices underlying the physical space portion corresponding to the logical address information specified for the read request fails, the data set to be read can be decoded. is there. That is, the fault tolerance can be improved.
  • the second embodiment may be combined with a method of compressing and decompressing data hierarchically with respect to the scale described in the first embodiment. [Embodiment 3]
  • the third embodiment will be described. At that time, the differences from the first and second embodiments will be mainly described, and the common points with the first and second embodiments will be omitted or simplified.
  • FIG. 13 shows the kernel configuration of the encoder according to the third embodiment.
  • FIG. 14 shows the kernel configuration of the decoder according to the third embodiment.
  • the controller 71E determines a plurality of data dimension groups based on the dimension setting table 300 (for example, based on the names and attributes of each dimension). Which data dimension is to be grouped in the same group may be determined based on, for example, information representing the correlation of the dimensions, past history, and the like. As shown in FIGS. 13 and 14, for at least one of the encoders and decoders (eg, each of the encoders and decoders), the controller 71E corresponds to the plurality of data dimension groups determined above, respectively. Configure multiple kernels. The plurality of convolution layers corresponding to the plurality of kernels are sequential, and the plurality of kernels are also sequential.
  • Each of the plurality of data dimension groups is a group to which one or more highly correlated data dimensions belong. That is, in the compressor generation process, the controller 71E forms a kernel with a set of highly correlated dimensions (for example, a set of dimensions whose correlation coefficient with an arbitrary reference dimension is equal to or greater than a predetermined value) when the kernel is configured. Then, multiple kernels formed in each are connected in a string. For example, there are “vertical” and “horizontal” as an example of a set of highly correlated dimensions. The dimension “time” is considered to have a relatively low correlation with both “vertical” and “horizontal”, and therefore "time” is considered to belong to a set different from the set to which "vertical” and “horizontal” belong. Be done.
  • each of the plurality of kernels corresponds to a set of highly correlated dimensions, and the plurality of kernels are connected in a row. Therefore, for each kernel, the calculation amount considering the dimension having low correlation becomes unnecessary, so that the calculation amount is reduced (processing efficiency is increased) and the compression rate is increased.
  • the fourth embodiment will be described. At that time, the differences from the first to third embodiments will be mainly described, and the common points with the first to third embodiments will be omitted or simplified.
  • network learning includes super-resolution learning.
  • Super-resolution learning is, for example, at least one of a first super-resolution learning and a second super-resolution learning.
  • the first super-resolution learning constitutes a processing unit 601 corresponding to a scale larger than the scale 3 (an example of the scale of the multidimensional data set input to the compressor 70E), and is upsampled for the large scale. This is learning using the data set as an input to the processing unit 601 corresponding to the large scale.
  • FIG. 15 shows an outline of the first super-resolution learning.
  • FIG. 16 shows an outline of the coding process after the first super-resolution learning.
  • FIG. 17 shows an outline of the decoding process after the first super-resolution learning.
  • the size 314 may be a value based on the scale 3, but the scale 315 may have one or more scales exceeding the scale 3 in addition to the scales 1 to 3. It may be represented.
  • the size corresponding to the specified scale may be determined based on the value represented by the size 314.
  • the size corresponding to the scale (n-3) (n is an integer greater than 3) may be 2 (n-3) times the size corresponding to the scale 3.
  • the processing unit 601-4 corresponding to the scale 4 is configured.
  • the multidimensional data set (multidimensional data set of scale 3) input to the compressor 70E is upsampled for scale 4, then downsampled for scale 3, and then for scale 4. After being upsampled to, it is input to the encoder E4. Then, as the scale 1 ⁇ 3, Le4 and Ld4 is obtained, learning is performed for error based on Le 4 and Ld 4 is minimized. In this way, the encoder E4 is learned to encode the data set when the scale is expanded from the scale 3 to the scale 4.
  • the scale 3 data set (eg, the data set w3c of FIG. 8) is upsampled to the scale 4 data set in the coding process.
  • the bitstream of the scale 4 dataset is stored.
  • the bit stream of the scale 4 may be decoded.
  • FIG. 18 shows an outline of the second super-resolution learning.
  • the second super-resolution learning is learning in which the data upsampled for the scale is input to the processing unit 601 corresponding to the scale for each of the scales 1 and 2 other than the scale 3.
  • a refined network (Ri) that does not require data input at the time of reading is learned at each scale during learning. That is, for each of scales 2 and 3 other than the minimum scale 1, a refined network (for example, a convolutional neural network) of the data set after upsampling of the data set obtained for one smaller scale is learned.
  • the scale 3 data set can be generated from the scale 2 data set without the scale 3 data set.
  • the following number 2 is adopted. The difference from the number 1 is the middle term.
  • Lrd n may be a function representing the degree of deterioration based on the following (x) and (y).
  • (Y) The data set output from the processing unit 601- (n-1) corresponding to the scale (n-1) corresponds to the data set (or the scale (n-1)) upsampled for the scale n.
  • the data set output from the processing unit 601- (n-1) and the data set output from the processing unit 601- (n-2) corresponding to the scale (n-2) are for the scale (n-1).
  • the sum of the upsampled dataset is the upsampled dataset for scale n).
  • the fifth embodiment will be described. At that time, the differences from the first to fourth embodiments will be mainly described, and the common points with the first to fourth embodiments will be omitted or simplified.
  • Equation 3 a function such as the number 3 which is called "omnidirectional loss function" for convenience in this embodiment is adopted.
  • regular artifacts such as block noise can easily lead to misjudgment of the application.
  • the entropy of the difference (artifact) between the input data and the data after compression and decompression is maximized (error is unpredictable and randomness is high), and the artifact and data size are minimum, as shown in Equation 3 below.
  • the artifacts have no regularity. For example, the following number 3 is adopted. Equation 3 may be applied on a scale-by-scale basis.
  • E is a encoder
  • D is a decoder
  • q is a quantizer
  • H f is an entropy estimator for the feature map.
  • is a Lagrange multiplier (a parameter for adjusting trade-offs).
  • H d is an entropy estimator of error data (artifacts) between the input multidimensional data set (multidimensional data set of scale 3) and D (E (x)) (data set after compression / decompression).
  • L d is an error index function (for example, PSNR, MSE, MS-SSIM, etc. are used).
  • x is the input multidimensional data set.
  • Equation 3 illustrated as in Figure 19 ( Figure 19 takes the scale 1 of example), there is a new entropy estimator H d.
  • Entropy estimator H d and data sets d1a input to the encoder E1, the difference between the data sets d1b output from the decoder D1 is input, omnidirectional degree Le d is calculated.
  • the new entropy estimator H d (for example, a convolutional neural network) outputs a probability distribution by inputting the difference between the data set d1a input to the encoder E1 and the data set d1b output from the decoder D1.
  • the degree of omnidirectionality may be calculated by cross entropy with an omnidirectional random probability distribution such as a Gaussian distribution.
  • the difference between d1a and d1b described in this embodiment is not only a simple difference, but also the result itself by some processing on other data composed of a differentiable model such as a more advanced SSIM or a convolutional neural network.
  • the difference of may be used.
  • Le x is calculated based on the sum of the le 1 and le d. Le x corresponds to ⁇ f H f (q (E (x))) of the number 3. " ⁇ d H d (x-D (q (E (x))))" calculates the distance for a given index based on the input and the output (eg, based on the difference between the input and the output). Means that.
  • Equation 3 " ⁇ d H d (x-D (q (E (x))))” is changed to "Ld (x, D (q (E (x))) + ⁇ f H f (q (E (x))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
  • Equation 3 can be applied to tensor compression (for example, image compression) in general.

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)

Abstract

多次元データセットの次元数及び様式に関わらず最適な圧縮器を生成する。ストレージシステムが、多次元データセットのデータ次元毎の属性を表す情報である次元設定情報を参照し、当該次元設定情報を基に圧縮器を生成する。

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 JPOXMLDOC01-appb-M000001
 図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 JPOXMLDOC01-appb-M000002
[実施形態5]
 実施形態5を説明する。その際、実施形態1~4との相違点を主に説明し、実施形態1~4との共通点については説明を省略又は簡略する。
 実施形態1~4でのロス関数に代えて、本実施形態において便宜上「無指向性ロス関数」と呼ぶ数3のような関数が採用される。圧縮データをアプリケーションで使う場合に、ブロックノイズなどの規則性のあるアーティファクトはアプリケーションの誤判定につながりやすい。それをなくすため、以下の数3のように、入力データと圧縮展開後のデータの差分(アーティファクト)のエントロピーが最大となり(誤差が予測不能、ランダム性が高い)、かつアーティファクトとデータサイズが最小となるように、minimaxゲームとして符号化器及び復号器などのニューラルネットワークを学習することにより、規則性のないアーティファクトとなるようにする。例えば、下記数3が採用される。数3は、スケール毎に適用されてもよい。
Figure JPOXMLDOC01-appb-M000003
 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.  データ次元毎の属性は、当該次元に属する値が連続した値であることを意味する連続と、当該次元に属する値が離散した値であることを意味する離散とのいずれかであり、
     前記圧縮器は、処理ユニットを含み、
     前記処理ユニットは、入力されたデータセットを符号化する符号化器と、当該符号化器から出力されたデータが量子化されることにより生成された特徴量マップを基にデータセットを復号する復号器と、特徴量マップを基にエントロピーを見積もるエントロピー見積器とのうち、少なくともエントロピー見積器を含み、
     前記圧縮器生成処理は、前記次元設定情報が表す、データ次元毎の属性を基に、処理ユニットを構成することを含む、
    請求項1に記載のストレージシステム。
  3.  前記次元設定情報は、更に、データ次元毎に、データサイズを表し、
     前記処理ユニットにおけるエントロピー見積器のモデルは、畳み込みニューラルネットワークであり、
     前記処理ユニットが符号化器及び復号器を含んでいる場合、符号化器及び復号器の各々のモデルは、畳み込みニューラルネットワークであり、
     前記圧縮器生成処理は、チャネル数及びカーネル次元数を決定することを含み、
     前記プロセッサは、
      属性が離散である一つ以上のデータ次元があれば、当該一つ以上のデータ次元の各々についてのデータサイズを基に、チャネル数を決定し、
      属性が連続であるデータ次元があれば、属性が連続であるデータ次元の数に基づいて、カーネル次元数を決定する、
    請求項2に記載のストレージシステム。
  4.  前記圧縮器生成処理は、前記処理ユニットを、多次元データセットの取り得る複数のスケールの各々について構成することを含む、
    請求項2記載のストレージシステム。
  5.  前記複数のスケールのうちの最小のスケールに対応した入力データセットは、入力された多次元データセットが当該最小のスケール向けにダウンサンプリングされた後のデータセットであり、
     前記複数のスケールのうちの最小のスケール以外の一つ以上のスケールの各々について、当該スケールに対応した入力データセットは、入力された多次元データセットが当該スケール向けにダウンサンプリングされたデータセットと、当該スケールより一つ小さいスケールに対応した復号器から出力されたデータセットが当該スケール向けにアップサンプリングされたデータセットとの差分としてのデータセットである、
    請求項4に記載のストレージシステム。
  6.  前記圧縮器生成処理は、処理ユニットの学習であって、誤差を最小にする学習であるネットワーク学習を含む、
    請求項2に記載のストレージシステム。
  7.  前記圧縮器生成処理は、前記処理ユニットを、多次元データセットの取り得る複数のスケールの各々について構成することを含み、
     前記ネットワーク学習は、スケール毎の処理ユニットの学習であって、スケール毎の誤差を要素とした全体誤差を最小にする学習であり、
     各スケールについて、誤差は、入力された多次元データセットに関し、劣化度及びビットレートに基づく関数から得られ、
     各スケールについて、劣化度は、当該スケールについての入力データセットと、当該入力データセットの当該スケールに対応した符号化器及び復号器を通じて得られた出力データセットとの差分に基づき、
     各スケールについて、ビットレートは、当該スケールについて得られた特徴量マップと、当該特徴量マップに基づき当該スケールに対応したエントロピー見積器により算出されたエントロピーとの差分に基づく、
    請求項6に記載のストレージシステム。
  8.  前記ライト処理は、ライト要求を前記プロセッサが受け付けた場合に行われ、
     前記ライト要求は、ライト対象の多次元データセットを書き込むことの要求であって、スケールと当該多次元データセットのデータ次元毎のアドレスとが指定された要求であり、
     前記ライト処理は、
      前記複数のスケールうちの最大のスケールよりも小さい一つ以上のスケールの各々について、前記ライト対象の多次元データセットを、当該スケール向けにダウンサンプリングすることと、
      前記ライト要求で指定されたスケールについて、前記ライト対象の多次元データセットに関し当該スケールについて得られた特徴量マップと、当該特徴量マップに基づき当該スケールに対応したエントロピー見積器により算出されたエントロピーとをエンコーディング処理することにより得られたデータである符号化データセットを書き込むことと、
      前記ライト要求で指定されたスケールとデータ次元毎のアドレスと、符号化データセットの書込み先の記憶領域の物理アドレスとの関連付けを表す論物情報を生成することと
    を含む、
    請求項2に記載のストレージシステム。
  9.  前記プロセッサが、リード要求を受け付けた場合に、リード処理を行い、
     前記リード要求は、リード対象の多次元データセットを読み出すことの要求であって、スケールと当該多次元データセットのデータ次元毎のアドレスとが指定された要求であり、
     前記リード処理は、
      前記論物情報を基に、前記リード要求で指定されたスケールとデータ次元毎のアドレスとに対応した物理アドレスを特定することと、
      前記特定された物理アドレスが表す記憶領域から、符号化データセットを読み出すことと、
      読み出された符号化データをデコーディング処理することにより得られたデータセットに従う、前記リード要求で指定されたスケールでの多次元データセットを返すことと
    を含む、
    請求項8に記載のストレージシステム。
  10.  前記プロセッサが、データパターンの特徴量マップが関連付いたパターン検索要求を受け付けた場合、パターン検索処理を行い、
     前記パターン検索処理は、
      前記パターン検索要求に関連付いた特徴量マップを符号化処理することにより得られた符号化データセットのパターンに一致するパターンを持つ符号化データセットを前記記憶装置から探すことと、
      見つかった符号化データセットの物理アドレスに関連付いている、スケールとデータ次元毎のアドレスとを、返すことと
    を含む、
    請求項8に記載のストレージシステム。
  11.  前記ネットワーク学習において、前記プロセッサは、
      特徴量マップを、チャネル方向に複数の部分特徴量マップに分割し、
      当該複数の部分特徴量マップの各々について、当該部分特徴量マップを所定の確率でゼロにし、前記誤差を最小にする学習を行い、
     前記プロセッサは、ライト処理において、
      ライト対象の多次元データセットに基づく入力データセットの特徴量マップを、チャネル方向に複数の部分特徴量マップに分割し、
      当該複数の部分特徴量マップにそれぞれ対応した複数の符号化データセットをそれぞれ複数の記憶装置に書き込み、
     前記プロセッサは、リード処理において、
      前記複数の記憶装置のうち障害のある記憶装置がある場合、当該記憶装置以外の一つ以上の記憶装置からそれぞれ一つ以上の符号化データセットを読み出し、当該読み出された一つ以上の符号化データセットの各々を復号処理することにより得られたデータセットに基づくデータセットを、返す、
    請求項6に記載のストレージシステム。
  12.  前記プロセッサは、前記次元設定情報を基に、複数のデータ次元グループを決定し、
     前記プロセッサは、前記符号化器及び前記復号器の少なくとも一つについて、
      前記決定した複数のデータ次元グループにそれぞれ対応した複数のカーネルを構成し、
      前記複数のカーネルにそれぞれ対応した複数のコンボリューション層をシーケンシャルとし、
     前記複数のデータ次元グループの各々は、相関の高い一つ以上のデータ次元が属するグループである、
    請求項3に記載のストレージシステム。
  13.  前記圧縮器生成処理は、前記処理ユニットを、多次元データセットの取り得る複数のスケールの各々について構成することを含み、
     前記ネットワーク学習は、スケール毎の処理ユニットの学習であって、スケール毎の誤差を要素とした全体誤差を最小にする学習であり、
     前記ネットワーク学習は、超解像学習を含み、
     前記超解像学習は、
      前記圧縮器に入力される多次元データセットのスケールよりも大きいスケール向けにアップサンプリングされたデータセットを、当該大きいスケールに対応した処理ユニットに対する入力とした学習と、
      前記圧縮器に入力される多次元データセットのスケール以外の一つ以上のスケールの各々について、当該スケール向けにアップサンプリングされたデータを当該スケールに対応した処理ユニットに対する入力とした学習と
    のうちの少なくとも一つである、
    請求項6に記載のストレージシステム。
  14.  前記処理ユニットは、前記符号化器に入力されるデータセットと前記復号器から出力されたデータセットとの差のエントロピーを見積もる別のエントロピー見積器を含み、
     前記ネットワーク学習は、ロス関数が最小となるよう前記符号化器、前記復号器及び前記エントロピー見積器を学習し、当該ロス関数が最大となるように前記別のエントロピー見積器を学習することを含む、
    請求項6に記載のストレージシステム。
  15.  前記プロセッサは、
      入力された多次元データセットの統計を解析し、
      当該解析の結果を基に、データ次元数と、データ次元毎の属性とを特定し、
      特定されたデータ次元数と、データ次元毎の属性とを基に、前記次元設定情報を作成又は更新する、
    請求項1に記載のストレージシステム。
  16.  多次元データセットのデータ次元毎の属性を表す情報である次元設定情報を参照し、
     当該次元設定情報が表す、データ次元毎の属性を表す情報を基に、圧縮器を生成する、
    方法。
PCT/JP2020/047314 2020-01-10 2020-12-18 ストレージシステム、及び、記憶制御方法 WO2021140867A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
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

Applications Claiming Priority (2)

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

Publications (1)

Publication Number Publication Date
WO2021140867A1 true WO2021140867A1 (ja) 2021-07-15

Family

ID=76787962

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2020/047314 WO2021140867A1 (ja) 2020-01-10 2020-12-18 ストレージシステム、及び、記憶制御方法

Country Status (3)

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

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114091085A (zh) * 2022-01-10 2022-02-25 北京一流科技有限公司 用于二元操作的数据访问控制系统及其方法

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102492906B1 (ko) * 2021-10-29 2023-01-30 한국전자기술연구원 강화학습 기반 인메모리 스토리지의 압축 최적화 방법 및 시스템

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 株式会社高速屋 データ圧縮符号化方法、復号化方法、その装置、及び、そのプログラム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114091085A (zh) * 2022-01-10 2022-02-25 北京一流科技有限公司 用于二元操作的数据访问控制系统及其方法
CN114091085B (zh) * 2022-01-10 2022-04-15 北京一流科技有限公司 用于二元操作的数据访问控制系统及其方法

Also Published As

Publication number Publication date
JP2021111882A (ja) 2021-08-02
US20220382459A1 (en) 2022-12-01
JP7336995B2 (ja) 2023-09-01
US11922018B2 (en) 2024-03-05

Similar Documents

Publication Publication Date Title
US11508095B2 (en) Hierarchical point cloud compression with smoothing
US11010928B2 (en) Adaptive distance based point cloud compression
US11935272B2 (en) Point cloud compression
US10897269B2 (en) Hierarchical point cloud compression
US20200111236A1 (en) Point cloud compression using fixed-point numbers
US8990217B2 (en) Lossless compression of high nominal-range data
US11604584B2 (en) Storage system
WO2021140867A1 (ja) ストレージシステム、及び、記憶制御方法
US20070233477A1 (en) Lossless Data Compression Using Adaptive Context Modeling
US11610124B2 (en) Learning compressible features
US20220365699A1 (en) Storage system and storage cost optimization method
CN111727445A (zh) 局部熵编码的数据压缩
Fan et al. Deep geometry post-processing for decompressed point clouds
CN107231556B (zh) 一种图像云储存设备
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
Ihler et al. Using sample-based representations under communications constraints
US11256422B2 (en) Storage system and compressed sensor data recording method for sensors grouped based on parameters
US20240070927A1 (en) Image compression performance optimization for image compression
US20230274465A1 (en) Information compression system and information compression method
WO2023218232A1 (en) Time-series dimension compression
CN116979971A (zh) 数据编码、解码方法、装置、计算机设备和存储介质
Sathappan et al. An Enhanced Vector Quantization Method For Image Compression With Modified Fuzzy Possibilistic C-Means Using Repulsion
Sathappan et al. Vector Quantization for Image Compression using Repulsion based FPCM

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 20912157

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 20912157

Country of ref document: EP

Kind code of ref document: A1