KR102016125B1 - Method for data compression and data decompression - Google Patents

Method for data compression and data decompression Download PDF

Info

Publication number
KR102016125B1
KR102016125B1 KR1020170116038A KR20170116038A KR102016125B1 KR 102016125 B1 KR102016125 B1 KR 102016125B1 KR 1020170116038 A KR1020170116038 A KR 1020170116038A KR 20170116038 A KR20170116038 A KR 20170116038A KR 102016125 B1 KR102016125 B1 KR 102016125B1
Authority
KR
South Korea
Prior art keywords
vector
index
data
compression
value
Prior art date
Application number
KR1020170116038A
Other languages
Korean (ko)
Other versions
KR20190029019A (en
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 KR1020170116038A priority Critical patent/KR102016125B1/en
Publication of KR20190029019A publication Critical patent/KR20190029019A/en
Application granted granted Critical
Publication of KR102016125B1 publication Critical patent/KR102016125B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/60General implementation details not specific to a particular type of compression
    • 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/3082Vector coding

Abstract

본 발명의 해결 과제를 달성하기 위하여, 본 발명의 일 실시 예에 따르는 데이터 압축 및 압축해제방법은, 복수의 원소를 포함하는 제1 벡터로 형성된 데이터로부터 최대값의 인덱스를 검출하는 단계, 검출된 인덱스에 근거하여 제2 벡터를 생성하는 단계, 상기 제1 벡터로부터 상기 제2 벡터를 감산하여, 제3 벡터를 생성하는 단계, 미리 설정된 제1 행렬과 관련된 정보를 이용하여, 상기 제3 벡터를 변환시키는 단계, 변환된 제3 벡터로부터 최대값의 인덱스를 다시 검출하는 단계; 및 검출된 복수의 인덱스를 이용하여, 상기 제1 벡터로 형성된 데이터의 압축 데이터를 생성하는 단계를 포함하고, 상기 제3 벡터를 생성하고, 생성된 제3 벡터를 변환하고, 변환된 제3 벡터로부터 최대값의 인덱스를 다시 검출하는 단계는 반복적으로 수행되는 것을 특징으로 한다.In order to achieve the object of the present invention, the data compression and decompression method according to an embodiment of the present invention, detecting the index of the maximum value from the data formed of the first vector containing a plurality of elements, Generating a second vector based on an index, subtracting the second vector from the first vector, generating a third vector, and using the information associated with a first matrix set in advance, Transforming, again detecting an index of the maximum value from the transformed third vector; And generating compressed data of the data formed from the first vector using the detected plurality of indices, generating the third vector, converting the generated third vector, and converting the converted third vector. Re-detecting the index of the maximum value from is characterized in that it is performed repeatedly.

Description

데이터 압축 및 압축해제방법{METHOD FOR DATA COMPRESSION AND DATA DECOMPRESSION}Data Compression and Decompression Method {METHOD FOR DATA COMPRESSION AND DATA DECOMPRESSION}

본 발명은 데이터 압축 및 압축해제방법에 대한 것으로서, 보다 상세하게는 손실 압축 및 압축해제 방법에 관한 것이다.The present invention relates to data compression and decompression methods, and more particularly, to lossy compression and decompression methods.

데이터 압축 기술은 무손실 압축(Non-Lossy Compression)과 손실 압축(Lossy Compression)으로 나눌 수 있다.Data compression techniques can be divided into non-loss compression and lossy compression.

무손실 압축 알고리즘에 의해 인코딩된 압축 데이터를 디코딩하는 경우, 디코딩의 결과로 원본 데이터와 동일한 결과를 획득할 수 있다.When decoding the compressed data encoded by the lossless compression algorithm, the same result as the original data can be obtained as a result of the decoding.

손실 압축 알고리즘에 의해 인코딩된 압축 데이터를 디코딩하는 경우, 디코딩의 결과와 원본 데이터 사이에는 손실이 발생하지만, 무손실 압축 알고리즘에 비해 압축률을 높일 수 있는 장점이 있다.When decoding the compressed data encoded by the lossy compression algorithm, a loss occurs between the result of decoding and the original data, but there is an advantage that the compression ratio can be increased compared to the lossless compression algorithm.

영상 코덱이나 오디오 코덱이 손실 압축 알고리즘에 포함되며, 상기 영상 코덱의 예로서, JPEG(Joint Photographic Expert Group), MPEG(Moving Picture Expert Groupt) 등이 널리 사용되고 있다.An image codec and an audio codec are included in a lossy compression algorithm. As examples of the image codec, JPEG (Joint Photographic Expert Group), MPEG (Moving Picture Expert Groupt), and the like are widely used.

한편, 종래에 개발된 손실 압축 알고리즘은 압축 대상인 데이터의 종류에 최적화되었다. 즉, 종래의 손실 압축 알고리즘은 영상이나 오디오 중 어느 하나만을 압축할 수 있으며, 데이터 종류에 특화되어 개발되었다.Meanwhile, the conventional lossy compression algorithm is optimized for the type of data to be compressed. That is, the conventional lossy compression algorithm can compress only one of an image and audio, and has been developed to be specialized in data types.

따라서, 종래에 개발된 손실 압축 알고리즘은 서로 다른 종류의 데이터들로 형성된 데이터군에 대해 적용할 수 없는 문제점이 있다.Therefore, the conventional lossy compression algorithm is not applicable to a data group formed of different types of data.

또한, 최근 시퀀싱 기술의 진보와 시퀀싱 비용의 급격한 하락으로 대량의 시퀀싱 데이터가 생성되고 있으며, 대부분의 데이터는 뉴클레오타이드(Nucleotide) 정보와 그 신뢰성을 나타내는 해당 품질 점수(Quality Score) 정보로 구성된다.In addition, the recent advances in sequencing technology and the sharp drop in sequencing cost have generated a large amount of sequencing data, and most of the data is composed of nucleotide information and corresponding quality score information indicating reliability thereof.

품질 점수 정보는 기존의 압축 알고리즘으로 더욱 압축이 어려우며, 자체적으로 노이즈를 많이 포함하고 있다.Quality score information is more difficult to compress with the existing compression algorithm, and contains a lot of noise by itself.

이에 따라, 압축데이터의 저장 비용을 줄이기 위해, 품질 점수 정보에 대한 손실 압축의 개발이 요구되고 있다.Accordingly, in order to reduce the storage cost of compressed data, development of lossy compression for quality score information is required.

본 발명이 해결하고자 하는 기술적 과제는, 복수 개의 원소를 포함하는 벡터로 형성된 데이터에 대해 손실 압축을 수행하는 방법을 제공하는 것이다.An object of the present invention is to provide a method of performing lossy compression on data formed of a vector including a plurality of elements.

또한, 본 발명의 목적은 데이터 종류에 제한되지 않은 손실 압축을 수행하는 방법을 제공하는 것이다.It is also an object of the present invention to provide a method for performing lossy compression that is not limited to data types.

또한, 본 발명의 목적은 수학적 접근을 이용하여 손실 압축을 수행하는 방법을 제공하는 것이다.It is also an object of the present invention to provide a method of performing lossy compression using a mathematical approach.

이와 같은 본 발명의 해결 과제를 달성하기 위하여, 본 발명의 일 실시예에 따르는 데이터 압축 및 압축해제 방법은 복수의 원소를 포함하는 제1 벡터로 형성된 데이터로부터 최대값의 인덱스를 검출하는 단계; 검출된 인덱스에 근거하여 제2 벡터를 생성하는 단계; 상기 제1 벡터로부터 상기 제2 벡터를 감산하여, 제3 벡터를 생성하는 단계; 미리 설정된 제1 행렬과 관련된 정보를 이용하여, 상기 제3 벡터를 변환시키는 단계; 변환된 제3 벡터로부터 최대값의 인덱스를 다시 검출하는 단계; 및 검출된 복수의 인덱스를 이용하여, 상기 제1 벡터로 형성된 데이터의 압축 데이터를 생성하는 단계를 포함하고, 상기 제3 벡터를 생성하고, 생성된 제3 벡터를 변환하고, 변환된 제3 벡터로부터 최대값의 인덱스를 다시 검출하는 단계는 반복적으로 수행되는 것을 특징으로 한다.In order to achieve the above object of the present invention, a data compression and decompression method according to an embodiment of the present invention comprises the steps of detecting the index of the maximum value from the data formed of the first vector containing a plurality of elements; Generating a second vector based on the detected index; Subtracting the second vector from the first vector to generate a third vector; Transforming the third vector using information associated with a first predetermined matrix; Detecting the index of the maximum value from the transformed third vector again; And generating compressed data of the data formed from the first vector using the detected plurality of indices, generating the third vector, converting the generated third vector, and converting the converted third vector. Re-detecting the index of the maximum value from is characterized in that it is performed repeatedly.

본 발명과 관련된 일 실시 예에 따르면, 상기 제1 벡터는 표준 가우시안 데이터인 것을 특징으로 한다.According to an embodiment related to the present invention, the first vector may be standard Gaussian data.

본 발명과 관련된 일 실시 예에 따르면, 상기 제1 벡터로 형성된 데이터로부터 최대값의 인덱스를 검출하는 단계는 상기 제1 벡터로부터 최대값의 인덱스를 검출하기 전에, 상기 제1 행렬과 관련된 정보를 이용하여, 상기 제1 벡터를 변환시키는 과정과, 변환된 제1 벡터로부터 최대값의 인덱스를 검출하는 과정을 포함하는 것을 특징으로 한다.According to an embodiment of the present disclosure, detecting the index of the maximum value from the data formed by the first vector may use information related to the first matrix before detecting the index of the maximum value from the first vector. The method may include converting the first vector and detecting an index of the maximum value from the transformed first vector.

본 발명과 관련된 일 실시 예에 따르면, 상기 제1 행렬은 랜덤직교행렬(Random Orthogonal Matrices)인 것을 특징으로 한다.According to an embodiment related to the present invention, the first matrix may be random orthogonal matrices.

본 발명과 관련된 일 실시 예에 따르면, 상기 제1 행렬은 제2 행렬과 제3 행렬의 곱 연산에 의해 산출되고, 상기 제2 행렬 및 상기 제3 행렬은 스트럭처드 행렬(Structured Matrices)인 것을 특징으로 한다.According to an embodiment related to the present invention, the first matrix is calculated by a product operation of a second matrix and a third matrix, and the second matrix and the third matrix are structured matrices. It is done.

본 발명과 관련된 일 실시 예에 따르면, 상기 제1 벡터로 형성된 데이터에 대해 압축률과 관련된 정보를 입력받는 단계를 더 포함하고, 변환된 제3 벡터로부터 최대값의 인덱스를 다시 검출하는 단계가 수행되는 회수는 상기 압축률과 관련된 정보에 의해 결정되는 것을 특징으로 한다.According to an embodiment of the present disclosure, the method may further include receiving information related to a compression rate with respect to the data formed by the first vector, and detecting the index of the maximum value from the converted third vector. The number of times is determined by the information related to the compression rate.

본 발명과 관련된 일 실시 예에 따르면, 복수의 원소를 포함하는 제1 벡터로 형성된 데이터로부터 최대값의 인덱스를 검출하는 단계 및 변환된 제3 벡터로부터 최대값의 인덱스를 다시 검출하는 단계는, 상기 데이터 또는 상기 변환된 제3 벡터에 포함된 복수의 원소 값 중 최대값의 인덱스부터 소정의 차수(k)번째로 큰 값의 인덱스까지, 소정의 차수(k)에 대응되는 개수의 인덱스를 검출하는 것을 특징으로 한다.According to an embodiment of the present disclosure, detecting the index of the maximum value from the data formed of the first vector including the plurality of elements and detecting the index of the maximum value from the converted third vector may include: A number of indices corresponding to a predetermined order k is detected from an index of the maximum value among the plurality of element values included in the data or the converted third vector to an index of the largest order kth value. It is characterized by.

본 발명과 관련된 일 실시 예에 따르면, 상기 차수(k)는, 미리 설정된 수학식에 따라, 상기 제1 벡터에 포함된 원수의 개수(n)에 의해 결정되는 것을 특징으로 한다.According to an embodiment related to the present invention, the order k may be determined by the number n of the enemies included in the first vector according to a preset equation.

본 발명과 관련된 일 실시 예에 따르면, 상기 수학식은, k= Log n인 것을 특징으로 한다.According to an embodiment related to the present invention, the equation is characterized in that k = Log n.

본 발명과 관련된 일 실시 예에 따르면, 상기 압축 데이터는 검출된 인덱스와 관련된 정보를 포함하는 인덱스 벡터를 원소로 포함하는 압축 벡터로 형성되는 것을 특징으로 한다.According to an embodiment of the present disclosure, the compressed data may be formed as a compressed vector including, as an element, an index vector including information related to the detected index.

본 발명과 관련된 일 실시 예에 따르면, 극단치이론(Extreme Value Theory)을 이용하여, 생성된 압축 데이터에 순차적으로 기록된 인덱스에 할당되는 값을 추정하는 단계; 및 추정된 값을 이용하여 상기 압축 데이터의 압축을 해제하는 단계를 더 포함하는 것을 특징으로 한다.According to an embodiment of the present disclosure, using an extreme value theory, estimating a value assigned to an index sequentially recorded in the generated compressed data; And decompressing the compressed data using the estimated value.

본 발명과 관련된 일 실시 예에 따르면, 상기 인덱스에 할당되는 값을 추정하는 단계는, 상기 인덱스 벡터 중 어느 하나와 관련된 검출된 인덱스에 할당되는 값을 동일하게 추정하는 것을 특징으로 한다.According to an embodiment of the present disclosure, the estimating of the value assigned to the index may include equally estimating a value assigned to the detected index associated with any one of the index vectors.

본 발명과 관련된 일 실시 예에 따르면, 상기 인덱스에 할당되는 값을 추정하는 단계는, 상기 인덱스 벡터 중 어느 하나와 관련된 인덱스가 검출된 순서에 근거하여, 상기 인덱스에 할당되는 값을 추정하는 것을 특징으로 한다.According to an embodiment of the present disclosure, the estimating of the value assigned to the index may include estimating a value assigned to the index based on the order in which the index associated with any one of the index vectors is detected. It is done.

본 발명과 관련된 일 실시 예에 따르면, 상기 인덱스에 할당되는 값을 추정하는 단계는, 상기 압축 데이터를 형성하는 압축 벡터의 소정의 차수(i)번째 원소인 인덱스 벡터가 생성된 순서에 근거하여, 상기 인덱스 벡터에 관련된 인덱스에 할당되는 값을 추정하는 것을 특징으로 한다.According to an embodiment of the present disclosure, the estimating of the value assigned to the index may be based on the order in which the index vector, the element of the predetermined order (i), of the compression vector forming the compressed data is generated. And estimating a value assigned to an index related to the index vector.

본 발명과 관련된 일 실시 예에 따르면, 상기 압축 벡터의 i번째 원소인 인덱스 벡터에 관련된 인덱스에 할당되는 값은, 상기 i번째 원소인 인덱스 벡터에 관련된 인덱스를 검출하는 대상인 상기 제3 벡터의 크기에 비례하는 것을 특징으로 한다.According to an embodiment of the present disclosure, a value assigned to an index associated with an index vector that is an i th element of the compression vector may be set to a size of the third vector that is an object for detecting an index associated with an index vector that is the i th element. It is characterized by the proportion.

본 발명에 따르는 데이터 압축 및 압축해제방법의 또 다른 실시예에 있어서, 압축대상인 임의의 벡터로 형성된 원본 데이터를 가우시안 소스로 변환하는 단계; 가우시안 소스로 변환된 원본 데이터로부터 최대값의 인덱스부터 소정 차수(k)번째 값의 인덱스까지 복수의 인덱스를 소정의 횟수만큼 반복적으로 검출하는 단계; 및 상기 k개씩 반복적으로 검출된 인덱스를 이용하여, 압축데이터를 생성하는 단계;를 포함하고, 상기 인덱스를 소정의 횟수만큼 반복적으로 검출하는 단계는, 인덱스 검출대상인 벡터로부터 k개의 인덱스를 검출하는 과정과, 검출된 인덱스를 이용하여, 상기 인덱스 검출대상인 벡터를 변환하는 과정 및 상기 변환된 벡터로부터 다시 인덱스를 검출하는 과정을 수행하기 전에, 상기 변환된 벡터를 가우시안 소스로 변환하기 위해, 상기 변환된 벡터에 미리 설정된 행렬을 곱 연산하는 과정을 포함하는 것을 특징으로 한다.According to another embodiment of the data compression and decompression method according to the present invention, the method includes: converting original data formed of any vector to be compressed into a Gaussian source; Repeatedly detecting a plurality of indices from the original data converted into the Gaussian source from the maximum value index to the index of the predetermined order kth number of times; And generating compressed data by using the k repeatedly detected indexes, wherein the repeatedly detecting the indexes a predetermined number of times comprises: detecting k indexes from a vector to be index detected. And converting the converted vector into a Gaussian source using the detected index before converting the vector to be the index detection target and detecting the index again from the converted vector. And multiplying the vector with a predetermined matrix.

본 발명과 관련된 일 실시 예에 따르면, 상기 압축대상인 임의의 벡터에 대한 압축률을 입력받는 단계를 더 포함하고, 상기 인덱스를 반복적으로 검출하는 횟수는, 상기 입력된 압축률에 의해 결정되는 것을 특징으로 한다.According to an embodiment of the present disclosure, the method may further include receiving a compression rate for any vector to be compressed, and the number of times of repeatedly detecting the index may be determined by the input compression rate. .

본 발명과 관련된 일 실시 예에 따르면, 상기 입력된 압축률은 상기 원본데이터의 압축 및 압축해제가 진행되는 과정에서 가변적인 것을 특징으로 한다.According to an embodiment related to the present invention, the input compression ratio may be variable during the process of compressing and decompressing the original data.

본 발명과 관련된 일 실시 예에 따르면, 상기 검출된 인덱스를 이용하여, 인덱스 검출대상인 벡터를 변환하는 과정은, 극단치이론(Extreme Value Theory)에 따라 수행되는 것을 특징으로 한다.According to an embodiment of the present invention, the process of converting the vector to be the index detection object using the detected index is characterized in that it is performed according to an Extreme Value Theory.

본 발명에 따른 데이어 압축 및 압축해제방법과 관련된 또 다른 실시예에 에 있어서, 게놈 데이터에 포함된 품질 점수 시퀀스(Quality Score Sequence)를 입력받는 단계; 추출된 품질 점수 시퀀스로부터 특이값 분해(Singular Value Decomposition, SVD)를 이용하여, 가우시안 소스인 서브 시퀀스를 추출하는 단계; 추출된 서브 시퀀스로부터 최대값의 인덱스부터 소정 차수(k)번째 값의 인덱스까지 복수의 인덱스를 소정의 횟수만큼 반복적으로 검출하는 단계; 및 상기 k개씩 반복적으로 검출된 인덱스를 이용하여, 상기 서브 시퀀스의 압축데이터를 생성하는 단계;를 포함하고, 상기 인덱스를 소정의 횟수만큼 반복적으로 검출하는 단계는, 인덱스 검출대상인 서브 시퀀스로부터 k개의 인덱스를 검출하는 과정과, 검출된 인덱스를 이용하여, 상기 인덱스 검출대상인 서브 시퀀스를 변환하는 과정 및 상기 변환된 서브 시퀀스로부터 다시 인덱스를 검출하는 과정을 수행하기 전에, 상기 변환된 서브 시퀀스를 가우시안 소스로 변환하기 위해, 상기 변환된 서브 시퀀스에 미리 설정된 행렬을 곱 연산하는 과정을 포함하는 것을 특징으로 한다.In another embodiment related to the method of compressing and decompressing data according to the present invention, the method comprises: receiving a quality score sequence included in genomic data; Extracting a subsequence that is a Gaussian source using Singular Value Decomposition (SVD) from the extracted quality score sequence; Repeatedly detecting a plurality of indices from the extracted subsequence up to a predetermined order k-th index from the extracted subsequence a predetermined number of times; And generating compressed data of the subsequence using the repeatedly detected indices of k pieces, and repeatedly detecting the indexes a predetermined number of times comprises k ks from the subsequences to be index detected. Before performing a process of detecting an index, converting a subsequence that is the index detection target using the detected index, and detecting an index again from the transformed subsequence, the transformed subsequence is a Gaussian source. In order to convert to, it characterized in that it comprises the step of multiplying a predetermined matrix by the transformed subsequence.

본 발명과 관련된 일 실시 예에 따르면, 극단치이론(Extreme Value Theory)을 이용하여, 생성된 압축 데이터에 순차적으로 기록된 인덱스에 할당되는 값을 추정하는 단계; 및 추정된 값을 이용하여 상기 압축 데이터의 압축을 해제하는 단계를 더 포함하는 것을 특징으로 한다.According to an embodiment of the present disclosure, using an extreme value theory, estimating a value assigned to an index sequentially recorded in the generated compressed data; And decompressing the compressed data using the estimated value.

본 발명과 관련된 일 실시 예에 따르면, 상기 압축을 해제하는 단계는, 압축 데이터에 순차적으로 기록된 인덱스에 할당되는 값을 추정하는 단계가 완료된 결과로 생성되는 벡터를, 특이값 분해(SVD) 및 품질 점수 시퀀스의 평균 값 중 적어도 하나를 이용하여 변환시키는 과정을 포함하는 것을 특징으로 한다.According to an embodiment related to the present disclosure, the decompressing may include singular value decomposition (SVD) and a vector generated as a result of estimating a value allocated to an index sequentially recorded on compressed data. And converting using at least one of average values of the quality score sequence.

본 발명과 관련된 압축 및 압축해제방법을 수행하는 연산처리장치에 있어서, 원본데이터 및 압축률과 관련된 정보를 입력받는 입력부; 미리 압축된 데이터인 압축데이터를 저장하는 메모리; 및 미리 설정된 압축 알고리즘에 근거하여 상기 원본데이터의 압축을 수행하거나, 압축데이터의 압축해제를 수행하는 제어부를 포함하고, 상기 제어부는, 복수의 원소를 포함하는 제1 벡터로 형성된 상기 원본데이터로부터 최대값의 인덱스를 검출하는 단계; 검출된 인덱스에 근거하여 제2 벡터를 생성하는 단계; 상기 제1 벡터로부터 상기 제2 벡터를 감산하여, 제3 벡터를 생성하는 단계; 미리 설정된 제1 행렬과 관련된 정보를 이용하여, 상기 제3 벡터를 변환시키는 단계; 변환된 제3 벡터로부터 최대값의 인덱스를 다시 검출하는 단계; 및 검출된 복수의 인덱스를 이용하여, 상기 제1 벡터로 형성된 데이터의 압축 데이터를 생성하는 단계를 수행하고, 상기 제3 벡터를 생성하고, 생성된 제3 벡터를 변환하고, 변환된 제3 벡터로부터 최대값의 인덱스를 다시 검출하는 단계를 반복적으로 수행하는 것을 특징으로 한다.An operation processing apparatus for performing a compression and decompression method according to the present invention, comprising: an input unit for receiving information related to original data and a compression ratio; A memory for storing compressed data which is pre-compressed data; And a controller configured to compress the original data or decompress the compressed data based on a preset compression algorithm, wherein the controller is configured to include a maximum from the original data formed of a first vector including a plurality of elements. Detecting an index of the value; Generating a second vector based on the detected index; Subtracting the second vector from the first vector to generate a third vector; Transforming the third vector using information associated with a first predetermined matrix; Detecting the index of the maximum value from the transformed third vector again; And generating compressed data of the data formed from the first vector using the detected plurality of indices, generating the third vector, converting the generated third vector, and converting the converted third vector. It is characterized in that the step of repeatedly detecting the index of the maximum value from.

본 발명과 관련된 일 실시 예에 따르면, 상기 제어부는 상기 제1 벡터로부터 최대값의 인덱스를 검출하기 전에, 상기 제1 행렬과 관련된 정보를 이용하여, 상기 제1 벡터를 변환시키고, 변환된 제1 벡터로부터 최대값의 인덱스를 검출하는 것을 특징으로 한다.According to an embodiment of the present disclosure, the controller converts the first vector by using information related to the first matrix and detects the index of the maximum value from the first vector, and then converts the first vector. The index of the maximum value is detected from the vector.

본 발명과 관련된 일 실시 예에 따르면, 상기 제어부는, 상기 제1 벡터 또는 변환된 제3 벡터로부터 최대값의 인덱스를 검출함에 있어서, 상기 제1 벡터 또는 상기 변환된 제3 벡터에 포함된 복수의 원소 값 중 최대값의 인덱스부터 소정의 차수(k)번째로 큰 값의 인덱스까지, 소정의 차수(k)에 대응되는 개수의 인덱스를 검출하는 것을 특징으로 한다.According to an embodiment related to the present disclosure, the control unit may be further configured to detect an index of the maximum value from the first vector or the converted third vector. The number of indices corresponding to the predetermined order k is detected from the index of the maximum value of the element values to the index of the largest value of the predetermined order k.

본 발명과 관련된 일 실시 예에 따르면, 상기 제어부는, 극단치이론(Extreme Value Theory)을 이용하여, 생성된 압축 데이터에 순차적으로 기록된 인덱스에 할당되는 값을 추정하는 것을 특징으로 한다.According to an embodiment related to the present disclosure, the control unit estimates a value assigned to an index sequentially recorded on the generated compressed data by using an extreme value theory.

본 발명과 관련된 일 실시 예에 따르면, 상기 제어부는, 상기 입력부를 통해 인가된 압축률에 근거하여, 생성된 압축 데이터에 기록된 복수의 인덱스 중 값을 할당시킬 일부를 결정하는 것을 특징으로 한다.According to an exemplary embodiment of the present disclosure, the controller may determine a portion of the plurality of indices recorded in the generated compressed data based on the compression ratio applied through the input unit.

본 발명과 관련된 일 실시 예에 따르면, 상기 제어부는, 상기 압축률이 변화함에 따라, 상기 복수의 인덱스 중 값을 할당시킬 일부를 변화시킴으로써, 연속최적압축(Successive Refinability Compression)을 구현하는 것을 특징으로 한다.According to an embodiment related to the present disclosure, the control unit may implement Successive Refinability Compression by changing a portion to which a value is allocated among the plurality of indices as the compression ratio is changed. .

본 발명과 관련된 데이터 압축 및 압축해제방법을 수행하는, 데이터 압축 및 압축해제시스템에 있어서, 인코더, 메모리 및 디코더를 포함하고, 상기 인코더는 CROM(Coding with Random Orthogonal Matrices) 알고리즘을 이용하여 원본 데이터를 압축함으로써 압축 데이터를 출력하고, 상기 메모리는 상기 압축 데이터를 저장하고, 상기 디코더는 극단치이론(Extreme Value Theory)을 이용하여, 상기 압축 데이터를 복원하고, 상기 CROM 알고리즘을 수행하는 상기 인코더는, 임의의 벡터로 형성된 상기 원본 데이터로부터, 상기 원본 데이터에 포함된 원소 중 최대값의 인덱스부터 소정 차수(k)번째 값의 인덱스까지, k개의 인덱스를 반복적으로 검출하는 것을 특징으로 한다.A data compression and decompression system, which performs a data compression and decompression method according to the present invention, includes an encoder, a memory, and a decoder, wherein the encoder uses original coding or random orthogonal matrices (CROM) algorithms to obtain original data. The encoder outputs compressed data by compressing the memory, and the memory stores the compressed data, and the decoder restores the compressed data using an extreme value theory, and performs the CROM algorithm. And k indexes are repeatedly detected from the original data formed by the arbitrary vector, from the index of the maximum value among the elements included in the original data to the index of the predetermined order (k) th value.

본 발명과 관련된 일 실시 예에 따르면, 상기 인코더는 상기 k개씩 반복적으로 검출된 인덱스를 이용하여, 압축데이터를 생성하는 것을 특징으로 한다.According to an embodiment related to the present invention, the encoder generates compressed data by using the k repeatedly detected indexes.

본 발명과 관련된 일 실시 예에 따르면, 상기 인코더는, 상기 원본 데이터에 대해 k개의 인덱스를 검출하는 과정을 미리 설정된 기준 횟수 이상 반복적으로 수행하는 것을 특징으로 한다.According to an embodiment related to the present disclosure, the encoder may repeatedly perform a process of detecting k indexes with respect to the original data more than a predetermined reference number.

본 발명과 관련된 일 실시 예에 따르면, 상기 인코더는, 상기 원본 데이터에 대해 k개의 인덱스를 검출하는 과정을 반복적으로 수행함에 있어서, 인덱스 검출대상인 벡터로부터 k개의 인덱스를 검출하고, 검출된 인덱스를 이용하여, 상기 인덱스 검출대상인 벡터를 변환시키고, 상기 변환된 벡터로부터 다시 인덱스를 검출하는 과정을 수행하기 전에, 상기 변환된 벡터를 가우시안 소스로 변환시키는 것을 특징으로 한다.According to an embodiment related to the present disclosure, the encoder may detect k indices from a vector to be index detected and repeatedly use the detected indices when repeatedly performing a process of detecting k indices with respect to the original data. By converting the vector to be the index detection target, and before performing the process of detecting the index again from the transformed vector, the transformed vector is converted into a Gaussian source.

본 발명과 관련된 일 실시 예에 따르면, 상기 인코더는, 상기 변환된 벡터를 가우시안 소스로 변환시키기 위해, 상기 변환된 벡터에 미리 설정된 행렬을 곱 연산하는 것을 특징으로 한다.According to an embodiment of the present disclosure, the encoder may multiply the transformed vector by a predetermined matrix to convert the transformed vector into a Gaussian source.

본 발명과 관련된 일 실시 예에 따르면, 상기 디코더는, 사용자로부터 입력된 압축률에 근거하여, 상기 메모리에 저장된 압축데이터 중 압축해제를 수행할 일부를 선택하는 것을 특징으로 한다.According to an embodiment related to the present disclosure, the decoder selects a part of the decompressed data from the compressed data stored in the memory based on the compression ratio input from the user.

본 발명과 관련된 일 실시 예에 따르면, 상기 디코더는, 극단치이론을 이용하여, 선택된 일부에 순차적으로 기록된 인덱스에 할당되는 값을 추정함으로써, 상기 압축데이터를 복원하는 것을 특징으로 한다.According to an embodiment related to the present invention, the decoder may reconstruct the compressed data by estimating a value assigned to an index sequentially recorded in a selected portion using an extreme value theory.

본 발명에 따르는 데이터 압축 방법은 데이터의 종류에 제한되지 않고 적용 가능한 장점이 있다.The data compression method according to the present invention is not limited to the type of data but has an advantage that can be applied.

또한, 본 발명에 따르는 데이터 압축 방법에 의하면, 연속최적압축(Successive Refinability Compression)을 구현할 수 있는 효과가 있다.In addition, according to the data compression method according to the present invention, there is an effect that can implement the successive compression (Successive Refinability Compression).

연속최적압축이 구현되면, 임의의 압축대상을 압축하기 전에, 디코더와 인코더가 특정한 압축률을 설정할 필요가 없고, 반복적으로 압축대상을 압축 또는 압축해제할 수 있다.If continuous optimal compression is implemented, the decoder and encoder do not need to set a specific compression rate before compressing any compression target, and can repeatedly compress or decompress the compression target.

손실 압축을 개시하기 전에, 적절한 압축률을 결정할 수 없는 것이 대부분인 점을 고려하면, 이와 같은 효과는 특히 손실 압축의 영역에서 유용하다.This effect is particularly useful in the area of lossy compression, considering that in most cases it is impossible to determine an appropriate compression rate before starting lossy compression.

또한, 본 발명에 따르는 손실 압축방법은 특정 압축률에서 무손실 압축방법으로 획득된 것과 유사한 성능을 획득할 수 있는 효과가 도출된다.In addition, the lossy compression method according to the present invention has the effect that can achieve a performance similar to that obtained by the lossless compression method at a specific compression ratio.

특히, 본 발명에 따르는 손실 압축방법은 게놈 데이터에 대해, 무손실 압축방법을 사용하여 게놈 데이터의 압축을 수행하는 다른 어플리케이션과 유사한 성능을 도출할 수 있다.In particular, the lossy compression method according to the present invention can derive performance similar to other applications that perform compression of genomic data on genomic data using a lossless compression method.

도 1은 본원발명에 따른 압축 및 압축해제방법을 수행하는 압축장치의 구성요소를 나타내는 블록도.
도 2는 본원발명에 따른 압축방법의 일 실시예를 나타내는 흐름도.
도 3은 본원발명에 따른 압축 알고리즘의 코드를 나타내는 개념도.
도 4는 본원발명에 따른 압축해제방법의 일 실시예를 나타내는 흐름도.
도 5는 본원발명에서 설명되는 랜덤직교행렬(Random Orthogonal Matrices)의 일 예를 나타내는 개념도.
도 6은 본원발명에서 설명되는 스트럭쳐드행렬(Structured Matrices)의 일 예를 나타내는 개념도.
도 7은 본원발명에 따른 압축 및 압축해제방법을 수행하는 시스템을 나타내는 개념도.
1 is a block diagram showing the components of a compression apparatus for performing the compression and decompression method according to the present invention.
2 is a flow chart showing an embodiment of a compression method according to the present invention.
3 is a conceptual diagram showing a code of a compression algorithm according to the present invention.
4 is a flow chart showing an embodiment of a decompression method according to the present invention.
5 is a conceptual diagram illustrating an example of random orthogonal matrices described in the present invention.
6 is a conceptual diagram illustrating an example of Structured Matrices described in the present invention.
7 is a conceptual diagram showing a system for performing the compression and decompression method according to the present invention.

이하, 첨부된 도면을 참조하여 본 명세서에 개시된 실시 예를 상세히 설명하되, 본 명세서에서 사용되는 기술적 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 명세서에 개시된 기술의 사상을 한정하려는 의도가 아님을 유의해야 한다.DETAILED DESCRIPTION Hereinafter, exemplary embodiments disclosed herein will be described in detail with reference to the accompanying drawings, and technical terms used herein are only used to describe specific embodiments, and are intended to limit the spirit of the technology disclosed herein. Note that is not.

본 발명에서는 압축률이 실질적으로 제로 레이트(zero-rate)에 가까운 비율인 단순한 손실 압축 및 압축해제방법을 제안한다.The present invention proposes a simple lossy compression and decompression method in which the compression ratio is substantially close to zero rate.

본 발명에 따르는 압축 방법을 수행하는 인코더는 원본 데이터로부터 단지 몇 개의 최대값에 대한 인덱스를 추출 및 기록할 뿐이며, 본 발명에 따르는 압축해제방법을 수행하는 디코더는 이러한 인덱스의 기록을 기반으로 자연스러운 추정을 통해 복원 데이터를 생성한다.The encoder which performs the compression method according to the present invention only extracts and records the indices for several maximum values from the original data, and the decoder which performs the decompression method according to the present invention makes natural estimation based on the recording of these indexes. Create the restore data through.

본 발명에 따르는 압축 및 압축해제방법은 왜곡률 함수(Distortion-Rate Function)의 제로 레이트 기울기를 달성하는 점에서, 가우시안 소스에 대해 최적의 성능을 도출할 수 있다.The compression and decompression method according to the present invention can derive optimal performance for Gaussian sources in that the zero rate slope of the distortion-rate function is achieved.

본 발명에 따르는 압축 및 압축해제방법을 유한-분산 에르고딕(Finite-Variance Ergodic) 데이터에 적용할 경우, 가우시안 소스의 왜곡률 함수를 획득할 수 있다.When the compression and decompression method according to the present invention is applied to finite-variance ergodic data, a distortion factor function of a Gaussian source can be obtained.

먼저, 본 발명에 따르는 압축방법의 압축 대상을 정의한다.First, the compression target of the compression method according to the present invention is defined.

압축 대상인 데이터는 복수의 원소를 포함하는 제1 벡터로 형성될 수 있다.The data to be compressed may be formed of a first vector including a plurality of elements.

이때, 상기 제1 벡터로 형성되는 데이터는 독립적이고 동일하게 분포된(Independently Identically Distributed) 표준 가우시안 소스일 수 있다.In this case, the data formed by the first vector may be a standard Gaussian source that is independently and identically distributed.

이하의 설명에서는 제1 벡터를

Figure 112017088077215-pat00001
으로 정의한다. 정수 n은 제1 벡터의 원소의 개수를 의미한다.In the following description, the first vector
Figure 112017088077215-pat00001
It is defined as The integer n means the number of elements of the first vector.

표준 가우시안 소스인 제1 벡터의 원소 중 최대값은 극단치이론(Extreme Value Theory)에 의해

Figure 112017088077215-pat00002
로 추정될 수 있다.The maximum value of the elements of the first vector, the standard Gaussian source, is determined by the Extreme Value Theory.
Figure 112017088077215-pat00002
Can be estimated as

본 발명에 따른 압축방법은 극단치이론에 의한 추정을 이용하여, 2차 왜곡 하에서 단순한 손실 압축을 수행할 수 있다.The compression method according to the present invention can perform simple lossy compression under second-order distortion using estimation by extreme value theory.

일 실시예에서, 본 발명에 따른 압축방법을 수행하는 인코더가 원본 데이터에 포함된 원소 중 최대값의 인덱스를 기록하면, 본 발명에 따른 압축해제방법을 수행하는 디코더는 아래의 수학식 1을 이용하여, 상기 인코더에 의해 기록된 인덱스로부터 복원을 수행할 수 있다.In one embodiment, if the encoder for performing the compression method according to the present invention records the index of the maximum value of the elements included in the original data, the decoder for performing the decompression method according to the present invention uses the following equation (1) Thus, it is possible to perform recovery from the index recorded by the encoder.

Figure 112017088077215-pat00003
Figure 112017088077215-pat00003

상기 수학식 1에서

Figure 112017088077215-pat00004
는 복원된 데이터를 의미한다.In Equation 1
Figure 112017088077215-pat00004
Means restored data.

다른 실시예에서, 인코더가 복수의 인덱스를 기록하는 경우, 디코더는 아래의 수학식 2를 이용하여, 상기 인코더에 의해 기록된 인덱스로부터 복원을 수행할 수 있다.In another embodiment, when the encoder records a plurality of indices, the decoder may perform restoration from the index recorded by the encoder using Equation 2 below.

Figure 112017088077215-pat00005
Figure 112017088077215-pat00005

상기 수학식 2에서

Figure 112017088077215-pat00006
는 제1 벡터의 원소 중 kn 번째로 큰 값의 기대값을 의미한다.In Equation 2
Figure 112017088077215-pat00006
Denotes the expected value of the k nth largest value among the elements of the first vector.

위와 같은 압축방법의 압축률(R)은 n이 커질수록 작아질 수 있다.The compression rate R of the above compression method may decrease as n increases.

구체적으로, 압축률(R)은 아래의 수학식 3에 의해 정의되며, 수학식 3을 참조하면, 본원발명에 따른 압축방법의 압축률이 실질적으로 제로 레이트(Zero-rate)임을 알 수 있다.Specifically, the compression rate R is defined by Equation 3 below, and referring to Equation 3, it can be seen that the compression rate of the compression method according to the present invention is substantially zero-rate.

Figure 112017088077215-pat00007
Figure 112017088077215-pat00007

이하의 도 1에서는 본원발명에 따른 압축 및 압축해제방법을 수행하는 장치의 구성요소가 설명된다.In the following Figure 1 describes the components of the apparatus for performing the compression and decompression method according to the present invention.

도 1에 도시된 것과 같이, 압축 및 압축해제방법을 수행하는 연산처리장치(100)는 통신부(110), 입력부(120), 출력부(150), 메모리(170), 제어부(180) 및 전원부(190) 중 적어도 하나를 포함할 수 있다.As shown in FIG. 1, the arithmetic processing apparatus 100 that performs the compression and decompression method includes a communication unit 110, an input unit 120, an output unit 150, a memory 170, a controller 180, and a power supply unit. It may include at least one of (190).

도 1에 도시된 구성요소들은 압축 및 압축해제방법을 수행하는 연산처리장치(100)를 구현하는데 있어서 필수적인 것은 아니어서, 본 명세서 상에서 설명되는 연산처리장치(100)는 위에서 열거된 구성요소들 보다 많거나, 또는 적은 구성요소들을 가질 수 있다.The components shown in FIG. 1 are not essential in implementing the arithmetic processing apparatus 100 that performs the compression and decompression methods, and thus, the arithmetic processing apparatus 100 described herein is better than the components listed above. It may have many or fewer components.

통신부(110)는, 연산처리장치(100)와 무선 통신 시스템 사이, 연산처리장치(100)와 다른 연산처리장치(100) 사이, 또는 연산처리장치(100)와 다른 연산처리장치(100), 또는 외부서버)가 위치한 네트워크 사이의 무선 통신을 가능하게 하는 하나 이상의 모듈을 포함할 수 있다.The communication unit 110 may be configured between the arithmetic processing apparatus 100 and a wireless communication system, between arithmetic processing apparatus 100 and another arithmetic processing apparatus 100, or arithmetic processing apparatus 100 and another arithmetic processing apparatus 100, Or an external server) that may include one or more modules that enable wireless communication between networks in which the external server is located.

입력부(120)는, 영상 신호 입력을 위한 카메라 또는 영상 입력부, 오디오 신호 입력을 위한 마이크로폰(microphone), 또는 오디오 입력부, 사용자로부터 정보를 입력받기 위한 사용자 입력부를 포함할 수 있다. 예를 들어, 사용자 입력부는 터치키(touch key)나, 푸시키(mechanical key)로 형성될 수 있다.The input unit 120 may include a camera or an image input unit for inputting an image signal, a microphone or an audio input unit for inputting an audio signal, and a user input unit for receiving information from a user. For example, the user input unit may be formed of a touch key or a mechanical key.

입력부(120)에서 수집한 음성 데이터나 이미지 데이터는 분석되어 사용자의 제어명령으로 처리될 수 있다.The voice data or the image data collected by the input unit 120 may be analyzed and processed as a control command of the user.

한편, 입력부(120)는 본원발명에서 제안하는 압축 알고리즘의 적용 대상인 원본데이터를 직접 입력받을 수도 있다.On the other hand, the input unit 120 may directly receive the original data to be applied to the compression algorithm proposed in the present invention.

또한, 입력부(120)는 압축 알고리즘의 압축률과 관련된 정보를 사용자로부터 입력받을 수도 있다.In addition, the input unit 120 may receive information related to the compression rate of the compression algorithm from the user.

출력부(150)는 시각, 청각 또는 촉각 등과 관련된 출력을 발생시키기 위한 것으로, 디스플레이부, 음향 출력부, 햅팁 모듈, 광 출력부 중 적어도 하나를 포함할 수 있다. 디스플레이부는 터치 센서와 상호 레이어 구조를 이루거나 일체형으로 형성됨으로써, 터치 스크린을 구현할 수 있다. 이러한 터치 스크린은, 연산처리장치(100)와 사용자 사이의 입력 인터페이스를 제공하는 사용자 입력부로써 기능함과 동시에, 연산처리장치(100)와 사용자 사이의 출력 인터페이스를 제공할 수 있다.The output unit 150 is for generating an output related to visual, auditory, or tactile, and may include at least one of a display unit, an audio output unit, a hap tip module, and an optical output unit. The display unit may form a layer structure or an integrated structure with the touch sensor, thereby implementing a touch screen. The touch screen may function as a user input unit that provides an input interface between the operation processing apparatus 100 and the user, and at the same time, may provide an output interface between the operation processing apparatus 100 and the user.

또한, 메모리(170)는 연산처리장치(100)의 다양한 기능을 지원하는 데이터를 저장한다. 메모리(170)는 연산처리장치(100)에서 구동되는 다수의 응용 프로그램(application program 또는 애플리케이션(application)), 연산처리장치(100)의 동작을 위한 데이터들, 명령어들을 저장할 수 있다. 이러한 응용 프로그램 중 적어도 일부는, 무선 통신을 통해 외부 서버로부터 다운로드 될 수 있다.In addition, the memory 170 stores data supporting various functions of the operation processing apparatus 100. The memory 170 may store a plurality of application programs or applications, data for operating the operation processor 100, and instructions that are driven by the operation processor 100. At least some of these applications may be downloaded from an external server via wireless communication.

또한 이러한 응용 프로그램 중 다른 적어도 일부는, 연산처리장치(100)의 기본적인 기능(예를 들어, 부팅, 전원 온/오프)을 위하여 출고 당시부터 연산처리장치(100)상에 존재할 수 있다. 한편, 응용 프로그램은, 메모리(170)에 저장되고, 연산처리장치(100) 상에 설치되어, 제어부(180)에 의하여 상기 연산처리장치의 동작(또는 기능)을 수행하도록 구동될 수 있다.In addition, at least some of these application programs may be present on the processing unit 100 from the time of shipment for basic functions (eg, booting, power on / off) of the processing unit 100. Meanwhile, the application program may be stored in the memory 170 and installed on the arithmetic processing apparatus 100 to be driven by the controller 180 to perform an operation (or function) of the arithmetic processing apparatus.

제어부(180)는 상기 응용 프로그램과 관련된 동작 외에도, 통상적으로 연산처리장치(100)의 전반적인 동작을 제어한다. 제어부(180)는 위에서 살펴본 구성요소들을 통해 입력 또는 출력되는 신호, 데이터, 정보 등을 처리하거나 메모리(170)에 저장된 응용 프로그램을 구동함으로써, 사용자에게 적절한 정보 또는 기능을 제공 또는 처리할 수 있다.In addition to the operation related to the application program, the controller 180 typically controls the overall operation of the operation processing apparatus 100. The controller 180 may provide or process information or a function appropriate to a user by processing signals, data, information, and the like, which are input or output through the above-described components, or by driving an application program stored in the memory 170.

또한, 제어부(180)는 메모리(170)에 저장된 응용 프로그램을 구동하기 위하여, 도 1에 도시된 구성요소들 중 적어도 일부를 제어할 수 있다. 나아가, 제어부(180)는 상기 응용 프로그램의 구동을 위하여, 연산처리장치(100)에 포함된 구성요소들 중 적어도 둘 이상을 서로 조합하여 동작시킬 수 있다.In addition, the controller 180 may control at least some of the components shown in FIG. 1 to drive an application program stored in the memory 170. In addition, the controller 180 may operate at least two or more of the components included in the operation processing apparatus 100 in combination with each other to drive the application program.

전원부(190)는 제어부(180)의 제어 하에서, 외부의 전원, 내부의 전원을 인가 받아 연산처리장치(100)에 포함된 각 구성요소들에 전원을 공급한다. 이러한 전원부(190)는 배터리를 포함하며, 상기 배터리는 내장형 배터리 또는 교체가능한 형태의 배터리가 될 수 있다.The power supply unit 190 receives power from an external power source and an internal power source under the control of the controller 180 to supply power to each component included in the operation processing apparatus 100. The power supply unit 190 includes a battery, which may be an internal battery or a replaceable battery.

상기 각 구성요소들 중 적어도 일부는, 이하에서 설명되는 다양한 실시 예들에 따른 연산처리장치의 동작, 제어, 또는 제어방법을 구현하기 위하여 서로 협력하여 동작할 수 있다. 또한, 상기 연산처리장치의 동작, 제어, 또는 제어방법은 상기 메모리(170)에 저장된 적어도 하나의 응용 프로그램의 구동에 의하여 이동 단말기 상에서 구현될 수 있다.At least some of the components may operate in cooperation with each other in order to implement an operation, control, or control method of the operation processing apparatus according to various embodiments described below. In addition, the operation, control, or control method of the arithmetic processing unit may be implemented on a mobile terminal by driving at least one application program stored in the memory 170.

참고로, 연산처리장치(100)는 데스크탑 컴퓨터, 랩탑 컴퓨터, 이동 단말기 등 다양한 형태로 구현될 수 있다.For reference, the operation processing apparatus 100 may be implemented in various forms such as a desktop computer, a laptop computer, and a mobile terminal.

이하의 도 2에서는 본원발명에 따른 압축방법이 설명된다.In the following Figure 2 is described a compression method according to the present invention.

도 2에 도시된 것과 같이, 제어부(180)는 복수의 원소를 포함하는 제1 벡터로 형성된 데이터로부터 최대값의 인덱스를 검출할 수 있다(S101).As illustrated in FIG. 2, the controller 180 may detect an index of the maximum value from data formed of a first vector including a plurality of elements (S101).

구체적으로, 제어부(180)는 최대값의 인덱스를 검출하는 단계(S101)를 수행하기 전에, 제1 행렬과 관련된 정보를 이용하여 상기 제1 벡터를 변환시킬 수 있다.In detail, the controller 180 may convert the first vector using information related to the first matrix before performing the step S101 of detecting the index of the maximum value.

즉, 최대값의 인덱스를 검출하는 단계(S101)는, 제1 벡터로부터 최대값의 인덱스를 검출하기 전에, 제1 행렬과 관련된 정보를 이용하여 상기 제1 벡터를 변환시키는 과정과, 변환된 제1 벡터로부터 최대값의 인덱스를 검출하는 과정을 포함할 수 있다.That is, the detecting of the index of the maximum value (S101) may include converting the first vector using information related to the first matrix before detecting the index of the maximum value from the first vector, and converting the first vector. The method may include detecting an index of the maximum value from one vector.

예를 들어, 제1 행렬은 랜덤직교행렬(Random Orthogonal Matrices)일 수 있다. 도 5를 참조하면, 랜덤직교행렬의 일 예가 도시된다.For example, the first matrix may be random orthogonal matrices. 5, an example of a random orthogonal matrix is shown.

구체적으로, 압축 대상인 제1 벡터가 가우시안 특성을 만족하지 않는 경우, 본원발명에서 제안하는 압축방법이 적용될 수 없으므로, 압축대상이 가우시안 특성을 만족하는 것을 보다 확실하게 보장할 필요가 있다.Specifically, when the first vector to be compressed does not satisfy the Gaussian characteristic, the compression method proposed in the present invention cannot be applied, so it is necessary to more reliably ensure that the compression target satisfies the Gaussian characteristic.

따라서, 제어부(180)는 압축대상인 제1 벡터로부터 최대값의 인덱스를 검출하기 전에, 제1 벡터에 랜덤직교행렬을 곱함으로써, 제1 벡터를 가우시안 소스로 변환시킬 수 있다.Accordingly, the controller 180 may convert the first vector into a Gaussian source by multiplying the first vector by a random orthogonal matrix before detecting the maximum index from the first vector to be compressed.

참고로, 임의의 벡터가 구형 분포(Spherical Distribution)를 갖고, 상기 벡터의 놈(Norm)의 분산이 충분히 작으면, 상기 벡터는 대략적으로 가우시안 랜덤 벡터인 것으로 간주될 수 있다.For reference, if any vector has a spherical distribution, and if the variance of the norm of the vector is sufficiently small, the vector may be considered to be approximately a Gaussian random vector.

즉, 본원발명의 제어부(180)는 압축대상인 임의의 벡터에 랜덤직교행렬을 곱함으로써, 상기 임의의 벡터가 구형 분포를 갖도록 유도할 수 있다.That is, the controller 180 of the present invention may induce the arbitrary vector to have a spherical distribution by multiplying the random vector by a random orthogonal matrix.

구체적으로, 임의의 벡터가 구형 분포를 형성하기 위해, 제어부(180)는 상기 임의의 벡터에 충분한 밀도(Dense)를 갖는 랜덤직교행렬을 곱할 수 있다.Specifically, in order for an arbitrary vector to form a spherical distribution, the controller 180 may multiply the random vector by a random orthogonal matrix having a sufficient density (Dense).

랜덤직교행렬과 압축대상인 제1 벡터의 곱 연산의 결과인 벡터는, 가우시안 소스인 것으로 기대하며, 여기에서 상기 결과의 놈이 작은 분산을 가질 수 있다.A vector that is the result of the product of the random orthogonal matrix and the first vector to be compressed is expected to be a Gaussian source, where the norm of the result may have a small variance.

즉, 원본 데이터인 제1 벡터로부터 인덱스를 검출하기 전에, 상기 제1 벡터와 제1 행렬을 곱 연산함으로써, 상기 제1 벡터를 가우시안 소스로 변환시킬 수 있다.That is, the first vector may be converted into a Gaussian source by multiplying the first vector and the first matrix before detecting the index from the first vector as the original data.

이로써, 제1 벡터가 가우시안 분포의 특성을 갖지 않는 경우에도, 인덱스를 검출하는 대상이 가우시안 분포의 특성을 만족하도록 보장할 수 있다.Thus, even when the first vector does not have the characteristics of the Gaussian distribution, it is possible to ensure that the object for detecting the index satisfies the characteristics of the Gaussian distribution.

또 다른 예에서, 제1 행렬은 제2 행렬과 제3 행렬의 곱 연산에 의해 산출될 수 있다. 이때, 상기 제2 행렬 및 상기 제3 행렬은 스트럭쳐드 행렬(Structured Matrices)로 정의될 수 있다.In another example, the first matrix may be calculated by the product operation of the second matrix and the third matrix. In this case, the second matrix and the third matrix may be defined as structured matrices.

제1 행렬이 랜덤직교행렬인 경우, 제3 벡터를 변환시키기 위해 제어부(180)가 수행해야하는 계산량이 상대적으로 많을 수 있다. 따라서, 이러한 문제점을 해결하기 위해, 제어부(180)는 제1 행렬을 두 개의 스트럭쳐드 행렬의 곱으로 정의할 수도 있다.When the first matrix is a random orthogonal matrix, the amount of calculation that the controller 180 needs to perform to convert the third vector may be relatively large. Accordingly, to solve this problem, the controller 180 may define the first matrix as a product of two structured matrices.

구체적으로, 제2 행렬은 스트럭쳐드 직교행렬(Structured Orthogonal Matrices)로 정의된다. 도 6를 참조하면, 제2 행렬의 일 예가 도시된다.Specifically, the second matrix is defined as structured orthogonal matrices. Referring to FIG. 6, an example of the second matrix is shown.

또한, 제3 행렬은 DCT 행렬(Discrete Cosine Transform Matrices)로 정의된다. 도 6을 참조하면, 제3 행렬의 일 예가 도시된다. DCT 행렬은 본원발명의 기술분야에서 자명한 사항이므로, 상세한 설명은 생략하도록 한다.In addition, the third matrix is defined as DCT matrix (Discrete Cosine Transform Matrices). Referring to FIG. 6, an example of a third matrix is shown. Since the DCT matrix is obvious in the technical field of the present invention, a detailed description thereof will be omitted.

위와 같이 정의된 제2 행렬 및 제3 행렬을 인덱스 검출 대상인 임의의 벡터에 곱하기 위해 소요되는 계산량은, 제1 행렬을 인덱스 검출 대상인 임의의 벡터에 곱하기 위해 소요되는 계산량보다 작을 수 있다.The amount of computation required to multiply the second matrix and the third matrix defined as described above to an arbitrary vector to be index detected may be smaller than the amount of computation required to multiply the first matrix to an arbitrary vector to be index detected.

즉, 도 5 및 도 6을 비교하면, 스트럭쳐드 직교행렬인 제2 행렬은, 0 값을 랜덤직교행렬보다 더 많이 포함하고 있으므로, 제어부(180)가 제2 행렬 및 제3 행렬을 인덱스 검출 대상인 임의의 벡터에 곱할 때 수행하는 계산량은, 제1 행렬을 인덱스 검출 대상인 임의의 벡터에 곱할때 수행하는 계산량보다 감소될 수 있다.5 and 6, since the second matrix, which is a structured orthogonal matrix, contains more zero values than a random orthogonal matrix, the controller 180 determines that the second matrix and the third matrix are index detection objects. The amount of computation performed when multiplying any vector may be reduced than the amount of computation performed when multiplying the first matrix to any vector to be index detected.

한편, 제어부(180)는 단지 1개의 최대값의 인덱스를 검출하는 것이 아니라, 제1 벡터로 형성된 데이터로부터, 최대값의 인덱스부터 소정의 차수(k)번째 원소의 인덱스까지 검출할 수도 있다.On the other hand, the controller 180 may not detect the index of one maximum value, but may detect the index of the maximum value to the index of the predetermined order k-th element from the data formed by the first vector.

제어부(180)는 인덱스를 검출하는 과정에서 모호한 경우, 더 작은 인덱스를 우선적으로 검출할 수 있다.The controller 180 may preferentially detect a smaller index when the index is ambiguous in the process of detecting the index.

이후, 제어부(180)는 검출된 인덱스에 근거하여 제2 벡터를 생성할 수 있다(S102).Thereafter, the controller 180 can generate a second vector based on the detected index (S102).

구체적으로, 제어부(180)는 검출된 인덱스에 할당되는 값을

Figure 112017088077215-pat00008
로 결정하고, 검출된 인덱스를 제외하고 나머지 인덱스에 할당되는 값을
Figure 112017088077215-pat00009
으로 결정할 수 있다.In detail, the controller 180 determines a value assigned to the detected index.
Figure 112017088077215-pat00008
The value to be assigned to the remaining indexes except the detected index
Figure 112017088077215-pat00009
Can be determined.

즉, 제어부(180)는 제1 벡터와 동일한 개수의 원소를 갖는 제2 벡터를 생성하며, 상기 제2 벡터 중 검출된 인덱스에는 제1 값을 할당시키고, 나머지 인덱스에는 상기 제1 값과 상이한 제2 값을 할당시킬 수 있다.That is, the controller 180 generates a second vector having the same number of elements as the first vector, assigns a first value to the detected indexes of the second vectors, and assigns a first value to the remaining indices different from the first value. 2 values can be assigned.

여기에서, n이 증가할 수록 상기 제2 값은 0에 가깝게 설정될 수 있다. Here, as n increases, the second value may be set closer to zero.

참고로, 제2 벡터를 생성하는 방법은 수학식 1에서도 동일한 취지로 설명된다.For reference, the method of generating the second vector is described in the same sense in Equation 1.

한편, 제1 값 및 제2 값은 수학식 1에 기재된 것에 한정되지 않으며, 제1 값 및 제2 값은 수학식 2에 기재된 것과 같이 결정될 수도 있다. 즉, 제1 값은

Figure 112017088077215-pat00010
으로 결정되고, 제2 값은
Figure 112017088077215-pat00011
으로 결정될 수 있다.Meanwhile, the first value and the second value are not limited to those described in Equation 1, and the first value and the second value may be determined as described in Equation 2. That is, the first value is
Figure 112017088077215-pat00010
And the second value is
Figure 112017088077215-pat00011
Can be determined.

이와 같이 제2 벡터의 검출된 인덱스에 할당되는 값을 원본 데이터의 검출된 인덱스에 대응되는 값과 달리, 극단치이론을 적용한 값으로 설정하면, 디코더 측에서도 제2 벡터의 값을 알 수 있다.In this way, if the value assigned to the detected index of the second vector is set to a value to which the extreme value theory is applied, unlike the value corresponding to the detected index of the original data, the value of the second vector can be known also at the decoder side.

즉, 본원발명의 제어부(180)는 압축방법을 수행함에 있어서, 이러한 제2 벡터를 연속적으로 생성하므로, 연속최적압축(Successive Refinability Compression)의 구현이 가능해진다.That is, the controller 180 of the present invention continuously generates such a second vector when performing the compression method, thereby enabling the implementation of successive refinability compression.

제어부(180)는 제1 벡터로부터 제2 벡터를 감산하여, 제3 벡터를 생성할 수 있다(S103).The controller 180 may generate a third vector by subtracting the second vector from the first vector (S103).

구체적으로, 제어부(180)는 제2 벡터에 가변적 상수를 곱한 결과를 제1 벡터로부터 감산할 수 있다. 이때, 상기 가변적 상수는 인덱스가 검출되는 과정이 반복될 때마다 점차적으로 감소시킬 수 있다. 아울러, 상기 가변적 상수의 초기 값은 원본 데이터의 분산 크기에 따라 설정될 수 있다.In detail, the controller 180 may subtract the result of multiplying the second vector by the variable constant from the first vector. In this case, the variable constant may be gradually decreased each time the process of detecting the index is repeated. In addition, the initial value of the variable constant may be set according to the variance size of the original data.

제어부(180)는 미리 설정된 제1 행렬과 관련된 정보를 이용하여, 제3 벡터를 변환시킬 수 있다(S104).The controller 180 may convert the third vector by using information related to the first matrix set in advance (S104).

상술한 것과 같이, 제3 벡터는 가우시안 소스인 제1 벡터(혹은 가우시안 소스로 변환된 제1 벡터)로부터 제2 벡터가 감산됨으로써 생성되므로, 상기 제3 벡터가 가우시안 특성을 만족하지 않을 수 있다.As described above, since the third vector is generated by subtracting the second vector from the first vector (or the first vector converted to the Gaussian source), the third vector may not satisfy the Gaussian characteristic.

따라서, 제어부(180)는 제3 벡터에 제1 행렬을 곱 연산함으로써, 제3 벡터를 가우시안 소스로 변환시킬 수 있다.Therefore, the controller 180 may convert the third vector into a Gaussian source by multiplying the third vector by the first matrix.

제어부(180)는 변환된 제3 벡터로부터 최대값의 인덱스를 다시 검출할 수 있다(S105).The controller 180 may detect the index of the maximum value again from the converted third vector (S105).

한편, 제어부(180)는 제3 벡터를 생성하고, 생성된 제3 벡터를 변환하고, 변환된 제3 벡터로부터 최대값의 인덱스를 다시 검출하는 단계(S103, S104, S105)를 반복적으로 수행할 수 있다.Meanwhile, the controller 180 may repeatedly perform steps S103, S104, and S105 of generating the third vector, converting the generated third vector, and detecting the index of the maximum value again from the converted third vector. Can be.

즉, 제어부(180)는 변환된 제3 벡터에 대해 최대값의 인덱스를 검출(S105)하할 수 있다. 또한, 제어부(180)는 변환된 제3 벡터에서 검출된 인덱스를 이용하여, 제2 벡터를 다시 생성할 수 있고, 변환된 제3 벡터에서 제2 벡터를 감산함으로써, 제3 벡터를 다시 생성할 수 있다. 아울러, 제어부(180)는 다시 생성된 제3 벡터를 다시 가우시안 소스로 변환시킬 수 있다(S104).That is, the controller 180 can detect an index of the maximum value with respect to the converted third vector (S105). In addition, the controller 180 may regenerate the second vector by using the index detected in the converted third vector, and subtract the second vector from the converted third vector to generate the third vector again. Can be. In addition, the controller 180 may convert the regenerated third vector into a Gaussian source (S104).

참고로, 제어부(180)는 인덱스 검출 과정을 미리 설정된 횟수만큼 수행할 수 있다. 바람직하게는, 상기 미리 설정된 횟수는 압축데이터의 왜곡률이 소정의 값 이하로 떨어질만큼 충분히 크게 설정될 수 있다.For reference, the controller 180 may perform the index detection process a predetermined number of times. Preferably, the predetermined number of times may be set large enough so that the distortion rate of the compressed data falls below a predetermined value.

한편, 제어부(180)는 제1 벡터로 형성된 데이터에 대해 압축률(R)과 관련된 정보를 입력받을 수도 있다. 제어부(180)는 입력된 압축률(R)과 관련된 정보에 근거하여, 변환된 제3 벡터로부터 최대값의 인덱스를 다시 검출하는 단계가 수행되는 회수를 결정할 수 있다.Meanwhile, the controller 180 may receive information related to the compression rate R with respect to the data formed by the first vector. The controller 180 may determine the number of times that the step of detecting the index of the maximum value again from the converted third vector is performed based on the information related to the input compression ratio R. FIG.

또한, 제어부(180)는 변환된 제3 벡터로부터 최대값의 인덱스를 다시 검출하는 단계(S105)를 수행함에 있어서, 상기 변환된 제3 벡터에 포함된 복수의 원소 값 중 최대값의 인덱스부터 소정의 차수(k)번째로 큰 값의 인덱스까지, 소정의 차수(k)에 대응되는 개수의 인덱스를 검출할 수도 있다.In addition, the controller 180 may detect the index of the maximum value again from the converted third vector (S105), and the predetermined value is determined from the index of the maximum value among the plurality of element values included in the converted third vector. The number of indices corresponding to the predetermined order k may be detected up to the index of the order kth largest value of.

예를 들어, 상기 차수(k)는 이하의 수학식 4에 따라, 상기 제1 벡터에 포함된 원소의 개수(n)에 의해 결정될 수 있다.For example, the order k may be determined by the number n of elements included in the first vector according to Equation 4 below.

Figure 112017088077215-pat00012
Figure 112017088077215-pat00012

또 다른 예에서, 상기 차수(k)는 Log n 이하의 값으로 결정될 수 있다.In another example, the order k may be determined to be less than or equal to Log n.

상술한 바와 같이 반복적으로 수행되는 알고리즘은 코드가 도 3에 도시된다.As described above, an algorithm that is repeatedly performed has a code shown in FIG. 3.

도 3의 A는 유니폼랜덤직교행렬(Uniform Random Orthogonal Matrices)이고, X(1)은 변환된 제1 벡터이다.3, A is uniform random orthogonal matrices, and X (1) is the transformed first vector.

Ln은 인덱스 검출을 반복하는 횟수를 의미하고, i 및 j는 각각 이터레이터(Iterator)이며, n은 압축대상인 벡터의 원소 개수이고, U(i)는 유닛벡터이다.L n means the number of times to repeat the index detection, i and j are respectively an iterator, n is the number of elements of the vector to be compressed, and U (i) is a unit vector.

gk()은 함수로서, 벡터 X(i)를 입력받고, 벡터에 포함된 원소 중 최대값부터 k번째로 큰 값까지의 인덱스를 검출하는 것으로 정의된다.g k () is defined as a function of receiving a vector X (i) and detecting an index from the maximum value to the k th largest value among the elements included in the vector.

αi는 가변적인 스케일 변수이고, X(i)의 놈 값에 의해 결정된다. 즉, αi는 인덱스의 검출하는 차수인 i가 증가할 때마다 점차적으로 감소되도록 설정될 수 있다.α i is a variable scale variable and is determined by the norm value of X (i) . That is, α i may be set to gradually decrease every time i, the order of detection of the index, increases.

구체적으로, 제어부(180)는, 인덱스의 검출대상인 벡터의 크기는 i가 하나씩 증가할 때마다 유닛 벡터만큼 감소하는 점을 고려하여, αi의 크기를 점차적으로 감소시킬 수 있다.In detail, the controller 180 may gradually reduce the size of α i in consideration of the fact that the size of the vector to be detected as the index decreases by one unit vector each time i increases.

도 3을 참조하면, 본원발명에 따른 압축 알고리즘을 수행하는 제어부(180)는 함수 gk의 출력 값인 m을 원소로 포함하는 벡터만을 기록함으로써, 압축데이터를 생성할 수 있다.Referring to FIG. 3, the controller 180 performing a compression algorithm according to the present invention may generate compressed data by recording only a vector including m as an element, an output value of the function g k .

즉, 제어부(180)는 인덱스 검출 단계가 반복적으로 수행됨에 따라, 순차적으로 검출된 복수의 인덱스를 기록함으로써, 상기 제1 벡터로 형성된 데이터의 압축 데이터를 생성할 수 있다(S106).That is, as the index detection step is repeatedly performed, the controller 180 may generate compressed data of the data formed by the first vector by recording a plurality of sequentially detected indexes (S106).

따라서, 압축데이터는 인덱스 검출 단계를 반복한 횟수만큼의 원소를 갖는 벡터이며, 압축데이터의 일 원소는 검출된 인덱스와 관련된 정보를 포함하는 벡터이다.Therefore, the compressed data is a vector having as many elements as the number of times the index detection step is repeated, and one element of the compressed data is a vector including information related to the detected index.

본 명세서에서는 설명의 편의를 위해, 압축데이터를 형성하는 벡터를 압축 벡터로 정의하고, 압축 벡터의 일 원소를 인덱스 벡터로 정의한다.In the present specification, for convenience of description, a vector for forming compressed data is defined as a compression vector, and one element of the compressed vector is defined as an index vector.

구체적으로, 인덱스 벡터가 포함하는 원소의 개수는, 원본 데이터가 포함하는 원소의 개수와 동일할 수 있다. 예를 들어, 인덱스 벡터의 검출된 인덱스에는 1이 할당되고, 나머지 인덱스에 0이 할당될 수 있다. 이와 같이, 제어부(180)는 인덱스 벡터를 순차적으로 기록하여, 압축 벡터를 생성할 수 있다.In detail, the number of elements included in the index vector may be the same as the number of elements included in the original data. For example, 1 may be allocated to the detected index of the index vector, and 0 may be allocated to the remaining indexes. As such, the controller 180 may sequentially record the index vectors to generate a compressed vector.

한편, 제어부(180)는 인덱스 벡터를 그대로 기록하지 않고, 엔트로피 코딩을 이용하여 기록할 수 있다. 즉, 제어부(180)는 엔트로피 코딩(Entropy Coding)을 이용하여, 인덱스 벡터를 한번 더 압축시킬 수 있다.On the other hand, the controller 180 can record using entropy coding, without recording the index vector as it is. That is, the controller 180 can compress the index vector once more by using entropy coding.

도 3에 도시된 알고리즘은 CROM(Coding with Random Orthogonal Matrices)로 정의된다. 즉, 도 3에 도시된 알고리즘은 유니폼랜덤직교행렬인 A를 이용하여, 인덱스 검출을 수행하기 전에, 인덱스 검출대상인 벡터를 가우시안 소스로 변환시킬 수 있다.The algorithm shown in FIG. 3 is defined as Coding with Random Orthogonal Matrices (CROM). That is, the algorithm illustrated in FIG. 3 may convert the vector, which is the index detection target, into a Gaussian source, before performing index detection using A, which is a uniform random orthogonal matrix.

한편, 도 3에 도시되지는 않았으나, 인덱스 검출대상인 벡터를 가우시안 소스로 변환시키기 위해, 제어부(180)는 유닛 벡터 U에 곱하는 가변적 상수를 정의할 수도 있다. 즉, 제어부(180)는 제1 벡터 또는 변환된 제3 벡터로부터 인덱스를 검출한 후, 상기 제1 벡터 또는 변환된 제3 벡터에 가변적 상수와 유닛 벡터의 곱을 감산할 수 있다. 이와 같이, 제어부(180)는 인덱스를 반복적으로 검출하기 전에, 인덱스의 검출 대상인 벡터를 가우시안 소스로 변환시킬 수 있다.Although not shown in FIG. 3, the controller 180 may define a variable constant that is multiplied by the unit vector U in order to convert the vector to be a Gaussian source. That is, after detecting an index from the first vector or the converted third vector, the controller 180 may subtract the product of the variable constant and the unit vector to the first vector or the converted third vector. As described above, the controller 180 may convert the vector, which is the detection target of the index, into a Gaussian source before repeatedly detecting the index.

도 4에서는 이와 같이 압축된 압축데이터의 압축해제방법이 도시된다.4 illustrates a method of decompressing the compressed data compressed in this way.

먼저, 제어부(180)는 극단치이론(Extreme Value Theory)을 이용하여, 생성된 압축 데이터에 순차적으로 기록된 인덱스에 할당되는 값을 추정할 수 있다(S401).First, the controller 180 may estimate a value allocated to an index sequentially recorded in the generated compressed data by using an extreme value theory (S401).

아울러, 제어부(180)는 추정된 값을 이용하여 상기 압축 데이터의 압축을 해제할 수 있다(S402).In addition, the controller 180 can decompress the compressed data using the estimated value (S402).

상술한 바와 같이, 압축대상인 제1 벡터(혹은 변환된 제1 벡터)는 가우시안 소스인 것으로 정의하였다. 따라서, 극단치이론에 따르면, 임의의 가우시안 소스인 벡터의 크기에 근거하여, 상기 가우시안 소스인 벡터에 포함된 원소 중 최대 값을 추정할 수 있다.As described above, the first vector (or transformed first vector) to be compressed is defined as a Gaussian source. Therefore, according to the extreme value theory, the maximum value of elements included in the vector which is the Gaussian source may be estimated based on the magnitude of the vector which is the Gaussian source.

참고로, 압축해제단계에서는 압축대상인 원본데이터를 제어부(180)가 알 수 없는 것으로 가정하는 것은 자명하다.For reference, in the decompression step, it is obvious to assume that the controller 180 does not know the original data to be compressed.

즉, 본원발명의 제어부(180)는 압축단계에서는 압축대상을 가우시안 소스로 변환시키고, 압축해제단계에서는 극단치이론에 근거하여, 최대값의 인덱스만을 이용하면서도, 해당 인덱스에 할당될 값을 추정할 수 있다. 이러한 과정을 통해, 본원발명에서는 실질적으로 압축률이 0에 가까운 압축방법 및 압축해제방법을 구현할 수 있다.That is, the controller 180 of the present invention converts a compression target to a Gaussian source in the compression step, and estimates a value to be assigned to the index while using only the maximum value index based on the extreme value theory in the decompression step. Can be. Through this process, in the present invention, it is possible to implement a compression method and a decompression method of which the compression ratio is substantially close to zero.

먼저, 제어부(180)는 사용자로부터 입력부를 통해 인가된 압축률에 근거하여, 압축데이터 중 일부를 압축해제의 대상으로 선택할 수 있다.First, the controller 180 may select some of the compressed data as an object of decompression based on the compression ratio applied from the user through the input unit.

상술한 바와 같이, 본원발명에 따른 압축방법에서는 원본데이터에 대해 인덱스 검출을 충분히 큰 횟수로 반복한다.As described above, in the compression method according to the present invention, the index detection is repeated a sufficiently large number of times with respect to the original data.

제어부(180)는 상술한 압축방법에 의해 압축된 압축데이터를 압축해제할 때, 입력된 압축률을 만족시킬 수 있을만큼 압축데이터 중 일부를 선택하여, 압축대상으로 결정할 수 있다.When the controller 180 decompresses the compressed data compressed by the above-described compression method, the controller 180 may select some of the compressed data to satisfy the input compression ratio and determine the compression target.

즉, 제어부(180)는 압축데이터의 일부에 관련된 복수의 인덱스에 할당되는 값들을 추정할 수 있다.That is, the controller 180 can estimate values allocated to a plurality of indices related to a part of the compressed data.

일 실시예에서, 검출된 인덱스에 할당되는 값을 추정하는 단계(S401)가 수행됨에 있어서, 제어부(180)는 압축 데이터를 형성하는 압축 벡터에 포함된 복수의 원소 중 어느 하나인 인덱스 벡터와 관련된 모든 인덱스에 할당되는 값을 동일하게 추정할 수 있다.In an embodiment, in operation S401 of estimating a value assigned to the detected index, the controller 180 is associated with an index vector which is any one of a plurality of elements included in the compressed vector forming the compressed data. The same value can be estimated for all indexes.

즉, 제어부(180)는 압축 벡터에 포함된 복수의 인덱스 벡터 중 어느 하나관련된 k개의 인덱스에 모두 같은 값을 할당할 수 있다.That is, the controller 180 may assign the same value to all k indexes related to any one of the plurality of index vectors included in the compression vector.

또 다른 실시예에서, 검출된 인덱스에 할당되는 값을 추정하는 단계(S401)가 수행됨에 있어서, 제어부(180)는 압축 데이터를 형성하는 압축 벡터에 포함된 복수의 원소 중 어느 하나인 인덱스 벡터와 관련된 인덱스가 검출된 순서에 근거하여, 상기 인덱스에 할당되는 값을 추정할 수도 있다.In another embodiment, in operation S401 of estimating a value assigned to the detected index, the controller 180 may include an index vector that is any one of a plurality of elements included in a compression vector forming compressed data. The value assigned to the index may be estimated based on the order in which the related index is detected.

즉, 제어부(180)는 압축 벡터에 포함된 복수의 인덱스 벡터 중 어느 하나와 관련된 복수의 인덱스 중 첫 번째로 검출된 인덱스에 할당된 값보다 두번째로 검출된 인덱스에 더 작은 값을 할당할 수 있다.That is, the controller 180 may assign a smaller value to the second detected index than the value assigned to the first detected index among the plurality of indexes associated with any one of the plurality of index vectors included in the compression vector. .

한편, 인덱스에 할당되는 값을 추정하는 단계(S401)가 수행됨에 있어서, 제어부(180)는 압축 데이터를 형성하는 압축 벡터의 소정의 차수(i)번째 원소인 인덱스 벡터가 생성된 순서에 근거하여, 상기 i번째 원소인 인덱스 벡터와 관련된 인덱스에 할당되는 값을 추정할 수 있다.Meanwhile, in the step S401 of estimating a value assigned to the index, the controller 180 is based on the order in which the index vector which is the predetermined order (i) element of the compression vector forming the compressed data is generated. The value assigned to the index associated with the index vector which is the i th element may be estimated.

즉, 제어부(180)는 인덱스 벡터가 순차적으로 반복 생성되는 과정에서, 인덱스를 검출하는 대상인 벡터의 크기가 점차 감소되므로, 제i 번째 인덱스 벡터와, 제i+1 번째 인덱스 벡터에 각각 관련된 인덱스에 서로 다른 값을 할당할 수 있다.That is, the controller 180 gradually decreases the size of the vector, which is the target for detecting the index, in the process of repeatedly generating the index vector, so that the control unit 180 is assigned to the index associated with the i th index vector and the i + 1 th index vector, respectively. You can assign different values.

예를 들어, 압축 벡터의 i번째 원소인 인덱스 벡터와 관련된 인덱스에 할당되는 값은, 상기 i번째 원소인 인덱스 벡터와 관련된 인덱스를 검출하는 대상인, 제3 벡터(또는 변환된 제3 벡터)의 크기에 비례할 수 있다.For example, a value assigned to an index associated with an index vector that is an i th element of a compression vector may be a size of a third vector (or transformed third vector) that is an object for detecting an index associated with an index vector that is an i th element. Can be proportional to

따라서, 제어부(180)는 압축 벡터에 포함된 복수의 인덱스 벡터에 대해, 생성된 순서가 늦을수록, 인덱스 벡터와 관련된 인덱스에 더 작은 값을 할당할 수 있다.Accordingly, the controller 180 may assign a smaller value to the index associated with the index vector as the generated order is later for the plurality of index vectors included in the compression vector.

이하의 도 7에서는 인코더(801), 메모리(802) 및 디코더(803)를 포함하는 압축 및 압축해제시스템을 설명한다.7, a compression and decompression system including an encoder 801, a memory 802, and a decoder 803 is described.

본원발명에서 제안되는 압축 및 압축해제 알고리즘이 연속최적압축을 구현하는 방식은 다음과 같다.The compression and decompression algorithm proposed in the present invention implements continuous optimal compression as follows.

예를 들어, 본원발명에 따른 압축방법을 동영상 스트리밍 서비스에 적용하는 경우, 스트리밍 서비스를 제공하는 서버의 인코더(801)는 원본 동영상에 대해 미리 설정된 기준 횟수(Z)만큼 반복적으로 k씩 인덱스를 검출하고, 검출된 인덱스를 기록할 수 있다. 이때, 기준 횟수(Z)는 사용자가 요구하는 압축률의 최대값을 커버할 수 있을 정도로 충분히 크게 설정되는 것이 바람직하다.For example, when the compression method according to the present invention is applied to a video streaming service, the encoder 801 of a server that provides a streaming service repeatedly detects an index by k by a predetermined reference number Z for the original video. And the detected index can be recorded. At this time, the reference number Z is preferably set large enough to cover the maximum value of the compression rate required by the user.

즉, 서버의 인코더(801)는 본원발명에서 제안하는 압축방법을 이용하여, 원본데이터를 Z개의 원소를 갖는 압축데이터로 압축시킬 수 있다. 이와 같이 압축된 압축데이터는 서버의 메모리에 저장될 수 있다.That is, the encoder 801 of the server may compress the original data into compressed data having Z elements by using the compression method proposed in the present invention. The compressed data compressed as described above may be stored in a memory of the server.

이때, 스트리밍 서비스의 사용자 측에서 압축된 동영상을 압축해제하는 디코더(803)는, 상기 사용자가 최초에 선택한 제1 화질에 대응되는 제1 압축율에 근거하여, 상기 압축데이터 중 제1 일부에 대해 극단치이론을 적용함으로써, 압축해제를 수행할 수 있다.At this time, the decoder 803, which decompresses the compressed video at the user side of the streaming service, is extreme for the first part of the compressed data based on a first compression ratio corresponding to the first image quality first selected by the user. By applying the theory, decompression can be performed.

또한, 디코더(803)는 사용자가 최초에 선택한 제1 화질을 제2 화질로 변경하는 경우, 제2 화질에 대응되는 제2 압축율에 근거하여, 상기 압축데이터 중 제2 일부에 대해 극단치이론을 적용함으로써, 압축해제를 수행할 수 있다.In addition, the decoder 803 changes the extreme value theory of the second portion of the compressed data based on the second compression ratio corresponding to the second image quality when the first image quality selected by the user is changed to the second image quality. By applying, decompression can be performed.

이때, 제2 화질이 제1 화질보다 높다면, 상기 제2 일부의 크기는 상기 제1 일부의 크기보다 크며, 상기 제2 일부는 상기 제1 일부를 포함할 수 있다.In this case, when the second image quality is higher than the first image quality, the size of the second portion may be larger than the size of the first portion, and the second portion may include the first portion.

즉, 인코더(801)는 특정 원본데이터에 대해 미리 설정된 횟수(Z)만큼 인덱스 검출과정을 수행하여 순차적으로 검출된 인덱스와 관련된 정보를 누적시킴으로써 하나의 압축데이터를 생성할 수 있다.That is, the encoder 801 may generate one piece of compressed data by accumulating information related to the sequentially detected indexes by performing an index detection process on a specific number of times of the predetermined original data Z.

디코더(803)는 이와 같이 생성된 압축데이터 중 일부의 데이터에 대해 극단치이론을 적용하여 압축해제를 수행할 수 있다. 예를 들어, 사용자가 제1 화질을 선택한 경우, 디코더(803)는 압축데이터 중 제1 화질의 데이터에 대응되는 제1 일부에 대해 압축해제를 수행할 수 있다. 구체적으로, 디코더(803)는 제1 화질의 데이터를 획득하기 위해, 상기 횟수(Z)보다는 작은 제1 횟수까지의 인덱스 검출 결과에 대해 압축해제를 수행할 수 있다.The decoder 803 may perform decompression by applying extreme value theory to some of the compressed data generated as described above. For example, when the user selects the first image quality, the decoder 803 may decompress the first portion of the compressed data corresponding to the data of the first image quality. In detail, the decoder 803 may decompress the index detection result up to the first number smaller than the number Z in order to obtain data of the first image quality.

또한, 디코더(803)는 사용자로부터 제1 화질을 제2 화질로 증가시키는 입력을 인가받으면, 압축데이터 중 제2 화질의 데이터에 대응되는 제2 일부에 대해 압축해제를 수행할 수 있다. 구체적으로, 디코더(803)는 제2 화질의 데이터를 획득하기 위해, 상기 횟수(Z)보다는 작고, 상기 제1 횟수보다는 큰 제2 횟수까지의 인덱스 검출 결과에 대해 압축해제를 수행할 수 있다.In addition, when the decoder 803 receives an input for increasing the first image quality to the second image quality from the user, the decoder 803 may decompress the second portion of the compressed data corresponding to the second image quality data. In detail, the decoder 803 may decompress the index detection result up to a second number smaller than the number Z and larger than the first number to obtain data having a second quality.

참고로, 인코더(801)는 횟수(Z)만큼 반복적으로 검출된 인덱스를 순차적으로 기록시킴으로써 압축데이터를 생성하므로, 상기 제2 일부는 상기 제1 일부와 상기 압축데이터 중 제3 일부의 합에 대응될 수 있다.For reference, since the encoder 801 generates compressed data by sequentially recording the index repeatedly detected by the number Z, the second part corresponds to the sum of the first part and the third part of the compressed data. Can be.

이와 같이, 동영상 스트리밍 서비스를 제공하는 서버의 인코더(801)는 충분한 횟수(Z)만큼 반복적으로 인덱스 검출과정을 수행함으로써 하나의 압축데이터만을 생성하므로, 서버의 메모리(802)는 다양한 화질에 대응되는 압축데이터를 각각 별도로 저장할 필요가 없다.As such, since the encoder 801 of the server providing the video streaming service generates only one compressed data by repeatedly performing the index detection process by a sufficient number Z, the memory 802 of the server corresponds to various image quality. There is no need to store compressed data separately.

또한, 디코더(803)는 서버의 인코더(801)가 어떤 압축률로 원본 데이터를 압축했는지 알지 못하는 경우에도, 사용자의 선택에 따라 다양한 화질의 데이터를 획득하게 된다.In addition, even if the encoder 801 of the server does not know at what compression rate the original data is compressed, the decoder 803 acquires data of various image quality according to a user's selection.

또한, 종래의 압축방법에 따르면, 서버가 다양한 화질에 대응되는 압축데이터를 복수 개 저장한다고 해도, 제1 화질과 제2 화질 사이의 제3 화질에 대응되는 데이터를 사용자에게 제공할 수 없는 문제점이 있다.In addition, according to the conventional compression method, even if the server stores a plurality of compressed data corresponding to various image quality, there is a problem that can not provide the user with data corresponding to the third image quality between the first image quality and the second image quality have.

그러나, 본원발명의 압축방법에 따르면, 서버는 단지 하나의 압축데이터만을 저장하고, 디코터(803) 측에서 입력된 화질에 따라 순차적으로 누적된 압축데이터 중 일부를 다운로드하기 때문에, 연속최적압축의 구현이 가능하다.However, according to the compression method of the present invention, since the server stores only one compressed data and downloads some of the compressed data accumulated sequentially according to the image quality input from the decoder 803 side, the continuous optimal compression is performed. Implementation is possible.

한편, 이하에서는 본원발명에 따른 압축 및 압축해제방법은 게놈 데이터에 적용하는 방법이 설명된다.On the other hand, the following describes a method of applying the compression and decompression method according to the present invention to genomic data.

상술한 바와 같이, 최근 시퀀싱 기술의 진보와 시퀀싱 비용의 급격한 하락으로 대량의 시퀀싱 데이터가 생성되고 있으며, 대부분의 게놈 데이터는 염기서열(Nlucleotide) 정보와, 그 신뢰성을 나타내는 해당 품질 점수 시퀀스(Quality Score Sequence)로 구성된다.As described above, the recent advances in sequencing technology and the sharp drop in sequencing cost have generated a large amount of sequencing data, and most of the genomic data includes nucleotide sequences and corresponding quality scores indicating their reliability. Sequence).

품질 점수 시퀀스가 매우 방대한 양의 시퀀싱 데이터인 점을 고려하면, 임의의 벡터에 대해 적용 가능한 본원발명의 압축방법을 이용하여, 상기 품질 점수 시퀀스의 압축을 시도할 수 있다.Considering that the quality score sequence is a very large amount of sequencing data, compression of the quality score sequence can be attempted using the compression method of the present invention applicable to any vector.

즉, 이하에서는 길이 n의 N개 인 품질 점수 시퀀스의 손실 압축방법을 설명한다.That is, the following describes a lossy compression method of N quality score sequences of length n.

품질 점수 시퀀스의 원본데이터(Q)는 아래의 수학식 5로 정의될 수 있다.The original data Q of the quality score sequence may be defined by Equation 5 below.

Figure 112017088077215-pat00013
Figure 112017088077215-pat00013

마찬가지의 방법으로 품질 점수 시퀀스의 재구성된 데이터(

Figure 112017088077215-pat00014
)는 아래의 수학식 6으로 정의될 수 있다.Similarly, the reconstructed data of the quality score sequence (
Figure 112017088077215-pat00014
) May be defined by Equation 6 below.

Figure 112017088077215-pat00015
Figure 112017088077215-pat00015

품질 점수 시퀀스에 대해 연속최적압축을 구현하는 손실압축방법을 적용하면, 디코더가 압축데이터 중 일부분만으로도 품질 점수 시퀀스를 재구성할 수 있다.By applying a lossy compression method that implements continuous optimal compression for the quality score sequence, the decoder can reconstruct the quality score sequence with only a portion of the compressed data.

재구성된 데이터와 원본 데이터 사이에는 이하의 수학식 7과 같이 왜곡 D가 발생된다.Distortion D is generated between the reconstructed data and the original data as shown in Equation 7 below.

Figure 112017088077215-pat00016
Figure 112017088077215-pat00016

수학식 7을 참조하면, 왜곡 D는 원본데이터와 재구성데이터의 평균 제곱 오차에 의해 산출된다.Referring to Equation 7, the distortion D is calculated by the mean square error of the original data and the reconstructed data.

그러나, 품질 점수 시퀀스에 대한 통계는 알려진 바 없으므로, 품질 점수 시퀀스는 평균μQ 및 공분산 행렬 ΣQ를 갖는 다변수 가우시안으로서 독립 항등 분포(IID)로 가정하는 것이 적절하다.However, since statistics on the quality score sequence are unknown, it is appropriate to assume that the quality score sequence is an independent identity distribution (IID) as a multivariate Gaussian with mean μQ and covariance matrix ΣQ.

특히, 복수의 품질 점수 사이의 높은 상관 관계로 인해, 상기 공분산 행렬은 일반적으로 다이어고널(Diagonal)이 아니다.In particular, due to the high correlation between the plurality of quality scores, the covariance matrix is generally not Diagonal.

즉, 품질 점수 시퀀스는 유한분산 에르고딕 정보가 아니므로, 가우시안 소스로 인정된 데이터에 적용했던 본원발명의 압축방법을 그대로 적용할 수 없다.That is, since the quality score sequence is not finite dispersion ergodic information, the compression method of the present invention applied to data recognized as a Gaussian source cannot be applied as it is.

따라서, 본원발명의 제어부(180)는 압축대상으로 품질 점수 시퀀스가 입력된 경우, 특이값 분해(Singular Value Decomposition, SVD)를 이용하여, 입력된 품질 점수 시퀀스로부터 가우시안 특성을 만족하는 서브 시퀀스 집합을 추출할 수 있다.Therefore, when the quality score sequence is input to the compression target, the controller 180 of the present invention uses a singular value decomposition (SVD) to obtain a subsequence set that satisfies the Gaussian characteristic from the input quality score sequence. Can be extracted.

이후, 제어부(180)는 상술한 바와 같이, 서브 시퀀스 집합에 대해 본원발명에 따른 압축방법을 적용할 수 있다.Thereafter, the controller 180 may apply the compression method according to the present invention to the subsequence set as described above.

구체적으로, 제어부(180)는 SVD에서 추출된 V행렬을 이용하여, 품질 점수 시퀀스의 원본데이터(Q)를 품질 점수 시퀀스의 변환데이터(Q')로 변환시킬 수 있다. 변환데이터(Q')와 관련된 수학식 8은 아래와 같다.In detail, the controller 180 may convert original data Q of the quality score sequence into converted data Q ′ of the quality score sequence using the V matrix extracted from the SVD. Equation 8 associated with the conversion data Q 'is as follows.

Figure 112017088077215-pat00017
Figure 112017088077215-pat00017

상기 수학식 8에 의해 생성된 품질 점수 시퀀스의 변환데이터(Q')는 N(0, S)에 따르는 독립 항등 분포(IID)이며, 이때 상기 S는 공분산 행렬(ΣQ)의 특이값(singular values)들을 포함하는 다이어고널 행렬(Diagonal Matrices)로 정의된다.The transformed data Q 'of the quality score sequence generated by Equation 8 is an independent identity distribution IID according to N (0, S), where S is a singular value of the covariance matrix ΣQ. Are defined as Diagonal Matrices.

이러한 변환에 따라, 길이 N인 n개의 서로 다른 분산(Variance)을 가질 수 있는 가우시안 소스인 시퀀스를 압축해야하는 것이 문제점으로 발생된다.According to this transformation, a problem arises in that a sequence that is a Gaussian source that can have n different variances of length N is generated.

즉, 각각의 서브 시퀀스는 상이한 분산을 가질 수 있기 때문에, 이러한 서브 시퀀스에 본원발명에 따른 압축방법을 적용하기 위해서는, 상기 각각의 서브 시퀀스에 대해 적절한 비율을 할당할 필요가 있다.That is, since each subsequence may have a different variance, in order to apply the compression method according to the present invention to such a subsequence, it is necessary to allocate an appropriate ratio for each subsequence.

참고로, 길이 N은 무한대 값을 가질 수 없기 때문에, 왜곡 D의 이론적 최적값인 0은 얻을 수 없다.For reference, since the length N cannot have an infinite value, 0, which is a theoretical optimal value of the distortion D, cannot be obtained.

또한, 계산상의 이유로, 각각의 서브 시퀀스는 길이 N'의 블록으로 분할될 수 있다.Also for computational reasons, each subsequence may be divided into blocks of length N '.

예를 들어, N'는 65,536일 수 있다. 이와 같은 블록 길이의 경우, 상술한 압축 알고리즘인 CROM을 수행하는 제어부(180)는 이하의 수학식 9에 의해 대략적으로 왜곡 함수를 획득할 수 있다. 획득된 왜곡 함수는 압축율을 입력받을 수 있다.For example, N 'may be 65,536. In the case of such a block length, the controller 180 which performs the above-described compression algorithm CROM may obtain a distortion function approximately by Equation 9 below. The obtained distortion function may receive a compression rate.

즉, 제어부(180)는 관련된 왜곡들이 모두 동일하도록 각 서브 시퀀스에 대한 압축률을 선택받을 수 있다.That is, the controller 180 can be selected a compression rate for each subsequence so that the related distortions are all the same.

또한, 각 서브 시퀀스에 대한 인덱스 검출과정의 반복 횟수는 이하의 수학식 9에 의해 정의된다.In addition, the number of repetitions of the index detection process for each subsequence is defined by Equation 9 below.

Figure 112017088077215-pat00018
Figure 112017088077215-pat00018

상기 수학식 9에서 대문자 L은 인덱스 검출과정의 반복 횟수를 의미하고, 소문자 l은 0보다 크고, n보다는 작거나 같은 정수로 정의된다.In Equation 9, the uppercase letter L denotes the number of repetitions of the index detection process, and the lowercase letter l is defined as an integer greater than 0 and smaller than or equal to n.

예를 들어, 제어부(180)는 길이가 65,536인 서브 시퀀스를 매번 압축하므로, 서브 시퀀스를 압축할 때 요구되는 제2 행렬은 65,536 X 65,536으로 형성될 수 있다.For example, since the controller 180 compresses a subsequence having a length of 65,536 each time, the second matrix required when compressing the subsequence may be formed as 65,536 × 65,536.

도 6에 도시된 것과 같이, 제2 행렬은 체계적으로 구성되어 있으며, 제1 행렬에 비해 상대적으로 0 값을 많이 포함하므로, 서브 시퀀스의 압축이 수행될 때마다 요구되는 제2 행렬을 설명하는데, 65,536의 8배의 실수만 기록하면 충분하다.As shown in FIG. 6, since the second matrix is systematically configured and includes a large number of zero values relative to the first matrix, the second matrix required every time the compression of the subsequence is performed will be described. It is enough to record an error of eight times 65,536.

복수의 서브 시퀀스는 각각 상이한 분산을 갖기 때문에, 이론적으로는 CROM이 반복될 때마다, 인덱스를 검출하기 전에, 인덱스 검출대상을 가우시안 소스로 변환하기 위하여, 서로 다른 랜덤직교행렬 또는 스트럭쳐드행렬을 이용해야한다.Since a plurality of subsequences each have different variances, in theory, each time a CROM is repeated, different random orthogonal or structured matrices are used to convert the index detection object to a Gaussian source before detecting the index. Should be.

그러나, 충분히 많은 수의 행렬을 구성하면, CROM의 성능이 크게 저하되지 않으므로, 일 실시예에서는 50개의 행렬을 생성하고, 이를 반복적으로 사용한다.However, if a sufficiently large number of matrices are constructed, the performance of the CROM is not significantly reduced, so in one embodiment, 50 matrices are generated and used repeatedly.

참고로, 제어부(180)는 복수의 서브 시퀀스에 대해, 각각 독립적으로 압축 알고리즘(CROM)을 적용하므로, 각 서브 시퀀스에 대해 본원발명에 따른 압축방법을 수행함에 있어서, 동일한 행렬 집합을 이용할 수 있다.For reference, since the controller 180 independently applies a compression algorithm (CROM) to a plurality of subsequences, the same matrix set may be used in performing the compression method according to the present invention for each subsequence. .

상술한 방법으로, 제어부(180)는 게놈 데이터에 본 발명에서 제안하는 압축 알고리즘을 적용함으로써, 상기 게놈 데이터의 압축데이터를 생성할 수 있다.In the above-described method, the controller 180 can generate compressed data of the genomic data by applying the compression algorithm proposed by the present invention to the genomic data.

한편, 제어부(180)가 상기 압축데이터에 대한 압축해제를 수행할 경우, 연속최적압축(Successive Refinability Compression) 덕분에, 왜곡이 감소하면서 서로 다른 집합의 서브 시퀀스를 순차적으로 재구성할 수 있다.On the other hand, when the controller 180 decompresses the compressed data, thanks to the successive refinability compression, the sub-sequences of different sets can be sequentially reconstructed with reduced distortion.

아울러, 제어부(180)는 품질 점수를 재구성하기 위해, 이하의 수학식 10에 따른 과정을 추가적으로 수행한다.In addition, the controller 180 additionally performs a process according to Equation 10 to reconstruct the quality score.

Figure 112017088077215-pat00019
Figure 112017088077215-pat00019

본 발명에 따르는 데이터 압축 방법은 데이터의 종류에 제한되지 않고 적용 가능한 장점이 있다.The data compression method according to the present invention is not limited to the type of data but has an advantage that can be applied.

또한, 본 발명에 따르는 데이터 압축 방법에 의하면, 연속최적압축(Successive Refinability Compression)을 구현할 수 있는 효과가 있다.In addition, according to the data compression method according to the present invention, there is an effect that can implement the successive compression (Successive Refinability Compression).

연속최적압축이 구현되면, 임의의 압축대상을 압축하기 전에, 디코더와 인코더가 특정한 압축률을 설정할 필요가 없고, 반복적으로 압축대상을 압축 또는 압축해제할 수 있다.If continuous optimal compression is implemented, the decoder and encoder do not need to set a specific compression rate before compressing any compression target, and can repeatedly compress or decompress the compression target.

손실 압축을 개시하기 전에, 적절한 압축률을 결정할 수 없는 것이 대부분인 점을 고려하면, 이와 같은 효과는 특히 손실 압축의 영역에서 유용하다.This effect is particularly useful in the area of lossy compression, considering that in most cases it is impossible to determine an appropriate compression rate before starting lossy compression.

또한, 본 발명에 따르는 손실 압축방법은 특정 압축률에서 무손실 압축방법으로 획득된 것과 유사한 성능을 획득할 수 있는 효과가 도출된다.In addition, the lossy compression method according to the present invention has the effect that can achieve a performance similar to that obtained by the lossless compression method at a specific compression ratio.

특히, 본 발명에 따르는 손실 압축방법은 게놈 데이터에 대해, 무손실 압축방법을 사용하여 게놈 데이터의 압축을 수행하는 다른 어플리케이션과 유사한 성능을 도출할 수 있다.In particular, the lossy compression method according to the present invention can derive performance similar to other applications that perform compression of genomic data on genomic data using a lossless compression method.

Claims (25)

복수의 원소를 포함하는 제1 벡터로 형성된 데이터로부터, 상기 제1 벡터의 원소 중 최대값인 원소의 인덱스를 검출하는 제1 단계;
상기 제1 벡터의 검출된 인덱스를 제외한 나머지 인덱스에 대응되는 원소의 값을 변경하여 제2 벡터를 생성하는 제2 단계;
상기 제1 벡터로부터 상기 제2 벡터를 감산하여, 제3 벡터를 생성하는 제3 단계;
미리 설정된 제1 행렬과 관련된 정보를 이용하여, 상기 제3 벡터를 변환시키는 제4 단계;
상기 제1 벡터 대신 변환된 제3 벡터를 이용하여, 상기 제1 내지 제4 단계를 소정의 횟수만큼 반복적으로 수행하여, 복수의 최대값의 인덱스를 다시 검출하는 단계; 및
검출된 복수의 최대값의 인덱스를 이용하여, 상기 제1 벡터로 형성된 데이터의 압축 데이터를 생성하는 단계를 포함하는 것을 특징으로 하는 데이터 압축방법.
A first step of detecting an index of an element which is the maximum value among the elements of the first vector, from data formed of the first vector including a plurality of elements;
Generating a second vector by changing a value of an element corresponding to a remaining index except for the detected index of the first vector;
A third step of subtracting the second vector from the first vector to generate a third vector;
A fourth step of converting the third vector by using information associated with a first predetermined matrix;
Repeatedly detecting the indices of the plurality of maximum values by repeatedly performing the first to fourth steps by a predetermined number of times by using the converted third vector instead of the first vector; And
And generating compressed data of the data formed by the first vector using the detected indexes of the maximum values.
제1항에 있어서,
상기 제1 벡터는 표준 가우시안 데이터인 것을 특징으로 하는 데이터 압축방법.
The method of claim 1,
And the first vector is standard Gaussian data.
제2항에 있어서,
상기 제1 벡터로 형성된 데이터로부터 최대값의 인덱스를 검출하는 단계는
상기 제1 벡터로부터 최대값의 인덱스를 검출하기 전에, 상기 제1 행렬과 관련된 정보를 이용하여, 상기 제1 벡터를 변환시키는 과정과,
변환된 제1 벡터로부터 최대값의 인덱스를 검출하는 과정을 포함하는 것을 특징으로 하는 데이터 압축방법.
The method of claim 2,
The step of detecting the index of the maximum value from the data formed by the first vector
Before the index of the maximum value is detected from the first vector, converting the first vector using information associated with the first matrix;
And detecting the index of the maximum value from the transformed first vector.
제1항에 있어서,
상기 제1 행렬은 랜덤직교행렬(Random Orthogonal Matrices)인 것을 특징으로 하는 데이터 압축방법.
The method of claim 1,
The first matrix is a random orthogonal matrix (Random Orthogonal Matrices) characterized in that the data compression method.
제1항에 있어서,
상기 제1 행렬은 제2 행렬과 제3 행렬의 곱 연산에 의해 산출되고,
상기 제2 행렬 및 상기 제3 행렬은 스트럭처드 행렬(Structured Matrices)인 것을 특징으로 하는 데이터 압축방법.
The method of claim 1,
The first matrix is calculated by the product operation of the second matrix and the third matrix,
And the second matrix and the third matrix are structured matrices.
제1항에 있어서,
상기 제1 벡터로 형성된 데이터에 대해 압축률과 관련된 정보를 입력받는 단계를 더 포함하고,
변환된 제3 벡터로부터 최대값의 인덱스를 다시 검출하는 단계가 수행되는 회수는 상기 압축률과 관련된 정보에 의해 결정되는 것을 특징으로 하는 데이터 압축방법.
The method of claim 1,
And receiving information related to a compression rate with respect to the data formed by the first vector.
The number of times the step of detecting the index of the maximum value from the converted third vector is performed is determined by the information related to the compression ratio.
제1항에 있어서,
상기 최대값의 인덱스를 검출하는 단계는,
상기 제1 벡터 또는 상기 변환된 제3 벡터에 포함된 복수의 원소 값 중 최대값의 인덱스부터 소정의 정수인 k번째로 큰 값의 인덱스까지, 상기 k에 대응되는 개수의 인덱스를 검출하는 것을 특징으로 하는 데이터 압축방법.
The method of claim 1,
Detecting the index of the maximum value,
Detecting the number of indices corresponding to k from an index of the maximum value among the plurality of element values included in the first vector or the converted third vector to an index of the k-th largest value that is a predetermined integer. Data compression method.
제7항에 있어서,
상기 k는 Log n 이하의 값으로 결정되고,
상기 n은 상기 제1 벡터의 원소 개수인 것을 특징으로 하는 데이터 압축방법.
The method of claim 7, wherein
K is determined to be less than or equal to Log n,
And n is the number of elements of the first vector.
제7항에 있어서,
상기 압축 데이터는 검출된 인덱스와 관련된 정보를 포함하는 인덱스 벡터를 원소로 포함하는 압축 벡터로 형성되는 것을 특징으로 하는 데이터 압축방법.
The method of claim 7, wherein
And the compressed data is formed as a compressed vector including, as an element, an index vector including information related to the detected index.
제1항 내지 제9항 중 어느 한 항에 따라 형성된 압축 데이터의 압축해제방법에 있어서,
상기 압축 데이터는, 상기 검출된 복수의 최대값의 인덱스가 순차적으로 기록되는 벡터로 형성되고,
상기 압축해제방법은,
극단치이론(Extreme Value Theory)을 이용하여, 상기 압축 데이터에 순차적으로 기록된 인덱스에 대응되는 값을 추정하는 단계; 및
추정된 값을 상기 순차적으로 기록된 인덱스에 할당하여, 상기 압축 데이터의 압축을 해제하는 단계를 더 포함하는 것을 특징으로 하는 데이터 압축해제방법.
In the decompression method of the compressed data formed according to any one of claims 1 to 9,
The compressed data is formed of a vector in which indices of the detected plurality of maximum values are sequentially recorded,
The decompression method,
Estimating a value corresponding to an index sequentially recorded in the compressed data using an extreme value theory; And
And decompressing the compressed data by assigning an estimated value to the sequentially recorded indexes.
삭제delete 제10항에 있어서,
상기 압축 데이터를 형성하는 벡터는 압축 벡터로 정의되고, 상기 압축 벡터의 일 원소는 인덱스 벡터로 정의되며,
상기 인덱스에 할당되는 값을 추정하는 단계는,
상기 압축 데이터를 형성하는 압축 벡터에 포함된 어느 하나의 인덱스 벡터가 생성된 순서에 근거하여, 상기 인덱스 벡터에 관련된 인덱스에 할당되는 값을 추정하는 것을 특징으로 하는 데이터 압축해제방법.
The method of claim 10,
The vector forming the compressed data is defined as a compression vector, one element of the compressed vector is defined as an index vector,
Estimating a value assigned to the index,
And estimating a value assigned to an index related to the index vector, based on the order in which one index vector included in the compressed vector forming the compressed data is generated.
제12항에 있어서,
상기 어느 하나의 인덱스 벡터에 관련된 인덱스에 할당되는 값은,
상기 어느 하나의 인덱스 벡터에 관련된 인덱스를 검출하는 대상인 상기 제3 벡터의 크기에 비례하는 것을 특징으로 하는 데이터 압축해제방법.
The method of claim 12,
The value assigned to the index associated with any one of the index vectors is
The data decompression method according to claim 1, wherein the data is proportional to the size of the third vector, which is an object for detecting an index related to the one index vector.
삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 압축 및 압축해제를 수행하는 연산처리장치에 있어서,
원본데이터 및 압축률과 관련된 정보 중 적어도 하나를 입력받는 입력부;
미리 압축된 데이터인 압축데이터를 저장하는 메모리; 및
미리 설정된 압축 알고리즘에 근거하여 상기 원본데이터의 압축을 수행하거나, 상기 압축데이터의 압축해제를 수행하는 제어부를 포함하고,
상기 제어부는,
복수의 원소를 포함하는 제1 벡터로 형성된 데이터로부터, 상기 제1 벡터의 원소 중 최대값인 원소의 인덱스를 검출하는 제1 단계;
상기 제1 벡터의 검출된 인덱스를 제외한 나머지 인덱스에 대응되는 원소의 값을 변경하여 제2 벡터를 생성하는 제2 단계;
상기 제1 벡터로부터 상기 제2 벡터를 감산하여, 제3 벡터를 생성하는 제3 단계;
미리 설정된 제1 행렬과 관련된 정보를 이용하여, 상기 제3 벡터를 변환시키는 제4 단계;
상기 제1 벡터 대신 변환된 제3 벡터를 이용하여, 상기 제1 내지 제4 단계를 소정의 횟수만큼 반복적으로 수행하여, 복수의 최대값의 인덱스를 다시 검출하는 단계; 및
검출된 복수의 인덱스를 이용하여, 상기 제1 벡터로 형성된 데이터의 압축 데이터를 생성하는 단계를 수행하는 것을 특징으로 하는 연산처리장치.
In the processing unit for performing the compression and decompression,
An input unit configured to receive at least one of original data and information related to a compression ratio;
A memory for storing compressed data which is pre-compressed data; And
And a controller configured to compress the original data or decompress the compressed data based on a preset compression algorithm.
The control unit,
A first step of detecting an index of an element which is the maximum value among the elements of the first vector, from data formed of the first vector including a plurality of elements;
Generating a second vector by changing a value of an element corresponding to a remaining index except for the detected index of the first vector;
A third step of subtracting the second vector from the first vector to generate a third vector;
A fourth step of converting the third vector by using information associated with a first predetermined matrix;
Repeatedly detecting the indices of the plurality of maximum values by repeatedly performing the first to fourth steps by a predetermined number of times by using the converted third vector instead of the first vector; And
And generating compressed data of the data formed by the first vector using the detected plurality of indices.
제21항에 있어서,
상기 제어부는
상기 제1 벡터로부터 최대값의 인덱스를 검출하기 전에, 상기 제1 행렬과 관련된 정보를 이용하여, 상기 제1 벡터를 표준 가우시안 데이터로 변환시키고,
변환된 제1 벡터로부터 최대값의 인덱스를 검출하는 것을 특징으로 하는 연산처리장치.
The method of claim 21,
The control unit
Before detecting the index of the maximum value from the first vector, converting the first vector into standard Gaussian data using information associated with the first matrix,
And an index of the maximum value from the transformed first vector.
제22항에 있어서,
상기 제어부는,
상기 제1 벡터 또는 변환된 제3 벡터로부터 최대값의 인덱스를 검출함에 있어서, 상기 제1 벡터 또는 상기 변환된 제3 벡터에 포함된 복수의 원소 값 중 최대값의 인덱스부터 소정의 정수인 k번째로 큰 값의 인덱스까지, 상기 k에 대응되는 개수의 인덱스를 검출하는 것을 특징으로 하는 연산처리장치.
The method of claim 22,
The control unit,
In detecting the index of the maximum value from the first vector or the transformed third vector, k-th is a predetermined integer from the index of the maximum value among the plurality of element values included in the first vector or the transformed third vector. And detecting the number of indices corresponding to k up to a large index.
제21항에 있어서,
상기 제어부는,
상기 검출된 복수의 최대값의 인덱스를 순차적으로 기록하여, 벡터인 상기 압축 데이터를 생성하고,
상기 입력부를 통해 인가된 압축률에 근거하여, 생성된 압축 데이터에 기록된 복수의 인덱스 중 압축을 해제시킬 일부를 선택하고,
극단치이론(Extreme Value Theory)을 이용하여, 선택된 일부의 인덱스에 할당되는 값을 추정하는 것을 특징으로 하는 연산처리장치.
The method of claim 21,
The control unit,
Sequentially recording the indexes of the detected plurality of maximum values to generate the compressed data that is a vector,
Select a part of the plurality of indices to be decompressed from the plurality of indices recorded in the generated compressed data based on the compression ratio applied through the input unit,
And an extreme value theory to estimate a value assigned to a selected index.
제24항에 있어서,
상기 제어부는,
상기 압축률이 변화함에 따라, 상기 압축을 해제시킬 일부를 증가 또는 감소시킴으로써, 연속최적압축(Successive Refinability Compression)을 구현하는 것을 특징으로 하는 연산처리장치.
The method of claim 24,
The control unit,
And as the compression ratio changes, increasing or decreasing a portion to decompress the compression, thereby implementing successive refinability compression.
KR1020170116038A 2017-09-11 2017-09-11 Method for data compression and data decompression KR102016125B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170116038A KR102016125B1 (en) 2017-09-11 2017-09-11 Method for data compression and data decompression

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170116038A KR102016125B1 (en) 2017-09-11 2017-09-11 Method for data compression and data decompression

Publications (2)

Publication Number Publication Date
KR20190029019A KR20190029019A (en) 2019-03-20
KR102016125B1 true KR102016125B1 (en) 2019-08-29

Family

ID=66036467

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170116038A KR102016125B1 (en) 2017-09-11 2017-09-11 Method for data compression and data decompression

Country Status (1)

Country Link
KR (1) KR102016125B1 (en)

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
CROMqs: an infinitesimal successive refinement lossy compressor for the quality scores (IEEE information theory workship, 2016년 9월)

Also Published As

Publication number Publication date
KR20190029019A (en) 2019-03-20

Similar Documents

Publication Publication Date Title
US20190266490A1 (en) Enhanced coding efficiency with progressive representation
US8805106B2 (en) System and method for compressing and decompressing images and video
JP6956803B2 (en) Tiling image compression using neural networks
US20190393903A1 (en) Efficient encoding and decoding sequences using variational autoencoders
US7916958B2 (en) Compression for holographic data and imagery
US10382789B2 (en) Systems and methods for digital media compression and recompression
US7634148B2 (en) Image signal transforming and inverse-transforming method and computer program product with pre-encoding filtering features
JP4775756B2 (en) Decoding device and program thereof
KR20200089635A (en) Systems and methods for image compression at multiple, different bitrates
US20140072240A1 (en) Method and apparatus for converting an image, and method and apparatus for inverse converting an image
Pal et al. An efficient codebook initialization approach for LBG algorithm
US10021423B2 (en) Method and apparatus to perform correlation-based entropy removal from quantized still images or quantized time-varying video sequences in transform
CN103517071B (en) Image encoding apparatus and method for encoding images
CN115668777A (en) System and method for improved machine learning compression
KR102016125B1 (en) Method for data compression and data decompression
JP2006270737A (en) Decoder, distribution estimating method, decoding method and their programs
CN106664099B (en) Method for encoding pulse vector using statistical properties
Chen et al. A two-part predictive coder for multitask signal compression
Hadi Medical Image Compression using DCT and DWT Techniques
Nugroho et al. A Comparative Study On Image Compression in Cloud Computing
US8260070B1 (en) Method and system to generate a compressed image utilizing custom probability tables
JP4697111B2 (en) Image comparison apparatus and method, and image search apparatus and method
CN114998457B (en) Image compression method, image decompression method, related device and readable storage medium
JP4448055B2 (en) Image signal conversion method, image signal inverse conversion method, image encoding device, image decoding device, image encoding method, image decoding method, image encoding program, and image decoding program
CN115880379A (en) Semantic scalable image coding method, system, device and storage medium

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E90F Notification of reason for final refusal
E701 Decision to grant or registration of patent right