# US 10,482,157 B2 · Data compression apparatus and data compression method and storage medium

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 10,482,157 B2
- Document ID: US10482157B2
- Status: Granted
- Kind: B2
- Application number: 16/287,540
- Filed: 2019-02-27
- Published: 2019-06-27
- Granted: 2019-11-19
- Earliest claimed: 2017-01-17
- Assignees: Fujitsu Limited
- Applicants: Fujitsu Limited
- Inventors: Makiko Konoshima
- Web page: https://patentgrep.com/patent/US10482157B2

## CPC

- G06F 17/16: Matrix or vector computation {, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization (matrix transposition G06F7/78)}
- H03M 7/30: Compression (speech analysis-synthesis for redundancy reduction G10L19/00; for image communication H04N); Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M 7/3088: {employing the use of a dictionary, e.g. LZ78}
- G06N 20/00: Machine learning
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- H03M: CODING; DECODING; CODE CONVERSION IN GENERAL (using fluidic means F15C4/00; optical analogue/digital converters G02F7/00; coding, decoding or code conversion, specially adapted for particular applications, see the relevant subclasses, e.g. G01D, G01R, G06F, G06T, G09G, G10L, G11B, G11C, H04B, H04L, H04M, H04N; ciphering or deciphering for cryptography or other purposes involving the need for secrecy G09C)
- G06N: COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS

## Abstract

A data compression apparatus includes a memory; and a processor configured to generate compressed matrix data, compare a threshold and an index value calculated about a specific value data string that is a data string obtained by coupling specific values specified from element values that are not zero values in each row of the compressed matrix data, specify a given constant as respective coefficients when the index value is larger than the threshold, calculate reciprocals of respective specific values as the respective coefficients when the index value is equal to or smaller than the threshold, and output matrix data after operation that is a result of rounding based on the number of places of significant figures of a decimal part in each element that corresponds about products of respective elements of the compressed matrix data and the respective coefficients calculated, regarding the respective elements of the compressed matrix data.

## Claims

### Claim 1

A data compression apparatus, comprising:
a memory; and
a processor coupled to the memory and configured to:
generate dictionary matrix data used for compression based on matrix data for learning,
generate compressed matrix data that is a result of compression of compression-target matrix data and information on positions at which matrix elements are not zero among respective matrix elements of the compressed matrix data based on the compression-target matrix data and the generated dictionary matrix data,
compare a threshold and an index value calculated about a specific value data string that is a data string obtained by coupling specific values specified from element values that are not zero values in each row of the generated compressed matrix data,
specify a given constant as respective coefficients when the index value is larger than the threshold,
calculate reciprocals of respective specific values as the respective coefficients when the index value is equal to or smaller than the threshold, and
output, as a compression result, matrix data after operation that is a result of rounding based on a number of places of significant figures of a decimal part in each element that corresponds about products of respective elements of the compressed matrix data and the respective coefficients, regarding the respective elements of the compressed matrix data.

### Claim 2 (depends on 1)

The data compression apparatus according to claim 1, wherein the processor is configured to:
extract column data of the dictionary matrix data that provides a largest inner product with column data of the matrix data for learning and position information based on the column data of the matrix data for learning,
calculate a least squares solution based on the column data extracted and the column data of the matrix data for learning, and
generate the dictionary matrix data based on the calculated least squares solution, the position information, and the matrix data for learning.

### Claim 3 (depends on 1)

The data compression apparatus according to claim 1, wherein the processor is configured to:
extract column data of the dictionary matrix data that provides a largest inner product with column data of the compression-target matrix data and position information based on the column data of the compression-target matrix data, and
calculate a least squares solution based on the column data extracted and the column data of the compression-target matrix data.

### Claim 4 (depends on 1)

The data compression apparatus according to claim 1, wherein the processor is configured to:
calculate the products of the respective elements of the compressed matrix data and the respective coefficients,
calculate the number of digits based on a first coefficient, a second coefficient obtained based on the number of significant digits of the compression-target matrix data and whether or not a sign of the compression-target matrix data exists, and whether or not a sign of the respective elements of the compressed matrix data exists, and
process fractions of the calculated products based on the calculated number of digits.

### Claim 5 (depends on 4)

The data compression apparatus according to claim 4, wherein the processor is configured to
calculate the number of digits based on the first coefficient, the second coefficient obtained based on the number of significant digits of the compression-target matrix data, whether or not a sign of the compression-target matrix data exists, and whether or not a decimal point of the compression-target matrix data exists, and whether or not a sign of the respective elements of the compressed matrix data exists and whether or not a decimal point of the respective elements of the compressed matrix data exists.

### Claim 6 (depends on 4)

The data compression apparatus according to claim 4, wherein the processor is configured to
process the fractions after a digit place corresponding to the calculated number of digits for the calculated products.

### Claim 7 (depends on 1)

The data compression apparatus according to claim 1,
wherein the threshold is determined based on a maximum value and a minimum value of the specific values.

### Claim 8 (depends on 1)

The data compression apparatus according to claim 1, wherein
the specific value is an average, a median, a maximum value, or a mean square of the element values that are not zero values in each row of the generated compressed matrix data, and
the index value is a variance of the specific value data string that is the data string obtained by coupling the specific values.

### Claim 9 (depends on 1)

The data compression apparatus according to claim 1,
wherein the index value represents a degree of variation of the specified specific values.

### Claim 10

A non-transitory computer-readable storage medium storing a program that causes a computer to execute a process, the process comprising:
generating dictionary matrix data used for compression based on matrix data for learning;
generating compressed matrix data that is a result of compression of compression-target matrix data and information on positions at which matrix elements are not zero among respective matrix elements of the compressed matrix data based on the compression-target matrix data and the generated dictionary matrix data;
comparing a threshold and an index value calculated about a specific value data string that is a data string obtained by coupling specific values specified from element values that are not zero values in each row of the generated compressed matrix data;
specifying a given constant as respective coefficients when the index value is larger than the threshold;
calculating reciprocals of respective specific values as the respective coefficients when the index value is equal to or smaller than the threshold; and
outputting, as a compression result, matrix data after operation that is a result of rounding based on a number of places of significant figures of a decimal part in each element that corresponds about products of respective elements of the compressed matrix data and the respective coefficients, regarding the respective elements of the compressed matrix data.

### Claim 11

A data compression method executed by a processor included in a data compression apparatus, the data compression method comprising:
generating dictionary matrix data used for compression based on matrix data for learning;
generating compressed matrix data that is a result of compression of compression-target matrix data and information on positions at which matrix elements are not zero among respective matrix elements of the compressed matrix data based on the compression-target matrix data and the generated dictionary matrix data;
comparing a threshold and an index value calculated about a specific value data string that is a data string obtained by coupling specific values specified from element values that are not zero values in each row of the generated compressed matrix data;
specifying a given constant as respective coefficients when the index value is larger than the threshold;
calculating reciprocals of respective specific values as the respective coefficients when the index value is equal to or smaller than the threshold; and
outputting, as a compression result, matrix data after operation that is a result of rounding based on a number of places of significant figures of a decimal part in each element that corresponds about products of respective elements of the compressed matrix data and the respective coefficients, regarding the respective elements of the compressed matrix data.

### Claim 12

A non-transitory computer-readable storage medium storing a program that causes a computer to execute a process, the process comprising:
acquiring compressed matrix data obtained based on compression-target matrix data and dictionary matrix data;
acquiring a specific value based on each piece of row data of the acquired compressed matrix data;
calculating an index value based on a plurality of the acquired specific values; and
specifying coefficients to correct the compressed matrix data based on the calculated index value and a threshold.

### Claim 13 (depends on 11)

The storage medium according to claim 11, wherein the process further comprises:
multiplying the compressed matrix data by the coefficients to figure out multiplication values; and
executing fraction processing of the multiplication values based on the number of significant digits of the compression-target matrix data.
