KR20160046083A - 데이터 분할을 이용한 인위적 엔트로피 확대를 이용한 데이터 압축 및 그 해제방법 - Google Patents

데이터 분할을 이용한 인위적 엔트로피 확대를 이용한 데이터 압축 및 그 해제방법 Download PDF

Info

Publication number
KR20160046083A
KR20160046083A KR1020140141361A KR20140141361A KR20160046083A KR 20160046083 A KR20160046083 A KR 20160046083A KR 1020140141361 A KR1020140141361 A KR 1020140141361A KR 20140141361 A KR20140141361 A KR 20140141361A KR 20160046083 A KR20160046083 A KR 20160046083A
Authority
KR
South Korea
Prior art keywords
bundle
cluster
mapping
clusters
data
Prior art date
Application number
KR1020140141361A
Other languages
English (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 KR1020140141361A priority Critical patent/KR20160046083A/ko
Publication of KR20160046083A publication Critical patent/KR20160046083A/ko

Links

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/3084Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction using adaptive string matching, e.g. the Lempel-Ziv method
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/60General implementation details not specific to a particular type of compression
    • H03M7/6011Encoder aspects
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/60General implementation details not specific to a particular type of compression
    • H03M7/6017Methods or arrangements to increase the throughput

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

원본이진데이터로부터 특정 갯수의 클러스터별로 분할하여, 클러스터 번들 및 클러스터 종류 및 각 빈도를 분석하는 단계 및 각 번들내의 각 클러스터별로 유니버설 코드를 매핑하는 단계 및 각 번들내에서의 매핑사전 및 압축데이터를 생성하는 단계 및 압축효율이 없거나 미미한 번들ID를 저장하는 단계를 포함하는 데이터 압축방법 및 장치 및 압축결과데이터로부터 특정 갯수의 유니버설 코드별로 분할하여 유니버설 코드번들 및 유니버설코드 종류 및 빈도를 분석하는 단계 및 각 번들당 매핑사전정보로부터 매핑테이블을 생성하는 단계 및 각 번들내에서 각 유니버설 코드별로 클러스터 정보를 매핑테이블을 이용하여 매핑하는 단계 및 매핑된 유니버설코드-클러스터 정보를 이용하여 압축결과데이터의 각 번들을 압축해제하는 단계를 포함하되 압축효과가 미미하거나 없는 번들ID에 해당할 경우 매핑사전해독 및 매핑테이블 번역없이 바로 유니버설 코드로부터 이와 동일한 클러스터를 생성하여 번들을 압축해제하는 단계를 포함하는 데이터 압축해제방법 및 장치로서 전체 원본데이터를 사용자 설정에 따라 다양한 클러스터 갯수마다 분리하여 세부분포표의 특성상 전체 모집단 데이터를 특정 N개단위의 클러스터의 묶음(=번들)으로 분리함으로써 갯수가 적어짐에 따른 통계적인 분산이 커짐에 따라 불규칙적인 클러스터 갯수가 많이 출현하게 되어 압축효과가 높아지는 현상을 이용하는데,
세부 분포표를 작성한뒤 각 세부분포표마다 긴 클러스터에 대해 보다 짧은 클러스터로 대체함으로써 압축효율을 높이도록 하였다.

Description

데이터 분할을 이용한 인위적 엔트로피 확대를 이용한 데이터 압축 및 그 해제방법{DATA COMPRESSION METHOD BY INCREASING VARIANCE OF CLUSTERS BY DIVIDING DATA}
데이터 압축
데이터 압축
발명을 실시하기 위한 구체적인 내용에 상술
발명을 실시하기 위한 구체적인 내용에 상술
본 발명을 이용하면 간단한 연산을 통해 빠르고 효율적인 데이터 압축이 가능해진다.
본 발명의 한 실시례로서 1로 시작하는 377,540 비트의 이진데이터 "1001010000010010110000001100000100000101000000000000000110000000000000100000000000000000000000000000100001000000000011000101011110111010001100100101111000000000100000..." 를 예를들수 있는데,
먼저 "1"로 시작하지 않는 데이터의 경우에는, 반드시 "1"로 시작하도록 최상위 비트에 "1"을 추가한다음 향후 복호화에서 최상위의 "1"을 제거하는 방식으로 원본데이터는 복구할수 있다.
한편, 상기와 같이 1로 시작하는 데이터의 경우에, 최상위 비트로부터 최하위 비트로 이동하면서 비트변화가 생길때마다 이진수 클러스터(이진수의 묶음)로 나눌 수 있는데, 상기 데이터를 예로들면, 아래와 같은 형태로 분리가 가능하다 "-"는 클러스터를 구분하기 위하여 편의상 표기한 사항이다.
1-00-1-0-1-00000-1-00-1-0-11-000000-11-00000-1-00000-1-0-1-000000000000000-11-0000000000000-1-00000000000000000000000000000-1-0000-1-0000000000-11-00....
상기 데이터를 보면 알수 있듯이 1로 시작하는 모든 이진수는 연속된 1개이상의 "1" 다음에 연속된 1개이상의 "0"이 나오는 형태가 무수히 반복되는 형태로 구성됨을 알 수 있다. 따라서 짝수번째인 "0"으로만 이루어진 클러스터도 "1"로만 이루어진 동일한 길이로 변환하여도, 연속된 1개이상의 "1" 다음에 연속된 1개이상의 "0"이 나오는 형태가 무수히 반복되는 형태임을 알고있는 이상, 원본데이터로 변환하는데에는 문제가 없다.
따라서 상기와 같은 데이터는 아래와 같이 표현하여도 무방하다.
1-11-1-1-1-11111-1-11-1-1-11-111111-11-11111-1-11111-1-1-1-111111111111111-11-1111111111111-1-11111111111111111111111111111-1-1111-1-1111111111-11-11....
클러스터 구분상태 및 순서만 유지될 수 있다면 짝수번째 클러스터가 원래는 모두 "0"으로 이루어진 클러스터임을 알고있기 때문에 원본데이터로 정확하게 복원이 가능하다.
상기의 데이터를 표로 순차적으로 표현하면 아래 표1과 같다. 상기 377,540 비트의 이진데이터의 경우, 전체 167,428개의 클러스터로 구분이 되었다.
클러스터
1
11
1
1
1
11111
1
11
1
1
11
111111
11
11111
1
11111
1
1
1
111111111111111
11
1111111111111
1
11111111111111111111111111111
1
1111
1
1111111111
....
표2에 클러스터의 분포표를 보인다.
클러스터 종류
1
11
111
1111
11111
111111
1111111
11111111
111111111
1111111111
11111111111
111111111111
1111111111111
11111111111111
111111111111111
1111111111111111
11111111111111111
111111111111111111
1111111111111111111
11111111111111111111
111111111111111111111
1111111111111111111111
11111111111111111111111
111111111111111111111111
1111111111111111111111111
11111111111111111111111111
111111111111111111111111111
1111111111111111111111111111
11111111111111111111111111111
111111111111111111111111111111
1111111111111111111111111111111
11111111111111111111111111111111
111111111111111111111111111111111
1111111111111111111111111111111111
11111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
.....
클러스터의 길이에 대한 분포는 아래와 같다. 이미 본 출원인의 다른 발명들에서 언급된 바와 같이 평균적인 클러스터 길이보다 유독 긴 클러스터들이 눈에 띄며 이러한 클러스터들에게 보다 짧은 길이의 유니버설 코드를 생성하여 줌으로써 압축효과를 나타냄은 이미 다른 발명들에서 보이고 있다.
Figure pat00001

이 두결과를 이용하여 표3과 같이 압축을 위한 매핑테이블을 구성하였었다.
클러스터 종류 클러스터길이 출현빈도 유니버설코드 길이 유니버설코드
1 1 82388 1 1
11 2 42299 2 11
111 3 20079 3 111
1111 4 10650 4 1111
11111 5 5213 5 11111
111111 6 2686 6 111111
1111111 7 1376 7 1111111
11111111 8 765 8 11111111
111111111 9 466 9 111111111
1111111111 10 202 10 1111111111
11111111111 11 161 11 11111111111
111111111111 12 55 12 111111111111
1111111111111 13 157 13 1111111111111
11111111111111 14 7 14 11111111111111
111111111111111 15 155 15 111111111111111
1111111111111111 16 105 16 1111111111111111
11111111111111111 17 59 17 11111111111111111
111111111111111111 18 57 18 111111111111111111
1111111111111111111 19 79 19 1111111111111111111
11111111111111111111 20 23 20 11111111111111111111
111111111111111111111 21 5 21 111111111111111111111
1111111111111111111111 22 2 22 1111111111111111111111
11111111111111111111111 23 1 23 11111111111111111111111
111111111111111111111111 24 41 24 111111111111111111111111
1111111111111111111111111 25 50 25 1111111111111111111111111
11111111111111111111111111 26 43 26 11111111111111111111111111
111111111111111111111111111 27 41 27 111111111111111111111111111
1111111111111111111111111111 28 11 28 1111111111111111111111111111
11111111111111111111111111111 29 156 29 11111111111111111111111111111
111111111111111111111111111111 30 4 30 111111111111111111111111111111
1111111111111111111111111111111 31 6 31 1111111111111111111111111111111
11111111111111111111111111111111 32 9 32 11111111111111111111111111111111
111111111111111111111111111111111 33 1 33 111111111111111111111111111111111
1111111111111111111111111111111111 34 2 34 1111111111111111111111111111111111
11111111111111111111111111111111111 35 1 35 11111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 104 22 36 111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 105 13 37 1111111111111111111111111111111111111
1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 106 11 38 11111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 107 10 39 111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 108 6 40 1111111111111111111111111111111111111111
1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 109 2 41 11111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 110 1 42 111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 111 2 43 1111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 137 1 44 11111111111111111111111111111111111111111111
11111111..................... 2048 3 45 111111111111111111111111111111111111111111111
11111111.................... 3633 1 46 1111111111111111111111111111111111111111111111
111111111..................... 3721 1 47 11111111111111111111111111111111111111111111111
총합계 167428
상기 표3에서의 유니버설코드는 연속된 1개이상의 "1"로만 이루어진 이진수이며, 클러스터 종류 47종에 대응하여 1개부터 연속된 47개의 "1"로만 이진수로 자동적으로 생성하여 매핑한 것이다. 맨 마지막 3721 비트 길이의 원본 클러스터는 47비트의 유니버설 코드로 변환되어 큰 압축효과를 보이고 있음을 알수있다.
표3과 같은 매핑테이블을 이용하여 표1의 클러스터를 1:1로 대응한 각각 유니버설 코드로 모두 변환하면 표4와 같이 된다. 예측하듯이 클러스터의 길이가 긴것들이 짧은 유니버설 코드로 매핑됨을 알 수 있다.
클러스터 유니버설코드
1 1
11 11
1 1
1 1
1 1
11111 11111
1 1
11 11
1 1
1 1
11 11
111111 111111
11 11
11111 11111
1 1
11111 11111
1 1
1 1
1 1
111111111111111 111111111111111
11 11
1111111111111 1111111111111
1 1
11111111111111111111111111111 11111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 1111111111111111111111111111111111111
1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 11111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 1111111111111111111111111111111111111111
... ...
이렇게 순차적인 클러스터대 대응하여 순서대로 유니버설 코드가 생성되고
이를 압축데이터에 담을 때에는, 짝수번째 유니버설 코드는 동일한 길이의 연속된 "0"으로 바꾸어 주면서 저장하게 되면, 유니버설 코드의 순서와 길이와 그 분리상태가 그대로 유지되면서 압축데이터에 모두 저장이 되게 된다.
참고로 표3과 같은 매핑테이블에서는, 아래표5와 같이 클러스터 길이와 유니버설 코드와의 길이 차이가 처음으로 발생한 지점직전인 35번번째 클러스터까지는 유니버설 코드와 클러스터와 완전히 동일하므로, 35라는 클러스터와 유니버설 코드가완전 일치하는순번과, 36번 클러스터부터는, 유니버설 코드와 비트길이의 차이인 68,68,68,68,..., 3674 라는 정보를 매핑사전이라고 하고 이를 압축데이터에 함께 저장을 하게된다.
상기 설명한 매핑사전을 구성하는 방법의 개요도는 아래와 같다. 매핑사전은 아래그림처럼 1) 클러스터와 유니버설 코드와의 불일치 시작순번 또는 일치 마지막 순번정보와 2) 불일치 순번 7,8,9,10에서의 클러스터와 유니버설 코드의 길이의 차이정보를 저장한다. 이때 1) 또는 2)의 경우에는 다양한 방식으로 기존의 압축알고리즘인 허프만코드등을 이용하여 추가적으로 더욱 효율적으로 표현할 수 있음은 물론이다.
Figure pat00002
압축해제시에는 매핑사전을통해 클러스터별 유니버설코드를 복원한 표5와 같은 또는 동등한 형태의 매핑테이블을 구성하고, 압축데이터를 이 매핑테이블을 이용해서 복원할 수 있다. "35"라는 정보로부터 우선 길이 1부터 길이 35까지의 유니버설 코드를 먼저 생성한뒤, 35번 순번까지는 클러스터도 유니버설 코드와 완전히 동일하므로, 동일하게 생성한다. 다음으로, 비트 차이를 나타내는 갯수만큼 36번순번부터 유니버설 코드를 계속 연장하면 47번 유니버설 코드까지를 자동생성하고,
클러스터는 비트차이 숫자만큼이 유니버설 코드보다 더 긴 길이의 "1"로만 이루어진 클러스터를 생성하면 된다. 한 예로 36번 순번에서의 유니버설 코드는 36비트 길이의 연속된 "1"로 구성된 이진수이나, 클러스터는, 비트차이 68비트만큼 더 긴 104 비트짜리 "1"로만 이루어진 이진수로 자동생성하면 되는 것이다.
이러한 과정을 이후비트차이 있는 순번에 모두 적용하면, 압축해제부에서도 표5와 같은 매핑테이블을 생성할 수 있게 된다.
클러스터길이 유니버설코드 길이 비트차이
1 1
2 2
3 3
4 4
5 5
6 6
7 7
8 8
9 9
10 10
11 11
12 12
13 13
14 14
15 15
16 16
17 17
18 18
19 19
20 20
21 21
22 22
23 23
24 24
25 25
26 26
27 27
28 28
29 29
30 30
31 31
32 32
33 33
34 34
35 35
104 36 -68
105 37 -68
106 38 -68
107 39 -68
108 40 -68
109 41 -68
110 42 -68
111 43 -68
137 44 -93
2048 45 -2003
3633 46 -3587
3721 47 -3674
이제 다음으로, 본 발명은 이러한 상기와 같은 본 출원인의 기존 발명을 더욱 개선하여, 전체 원본데이터를 단순히 1개의 표2와 같은 분포표를 이용하여 긴 클러스터에 대해 보다 짧은 클러스터로 대체하여 압축을 시행하는 기존 방식에서 벗어나 전체 원본데이터를 사용자 설정에 따라 다양한 클러스터 갯수마다 분리하여 세부분포표의 특성상 전체 모집단 데이터를 특정 N개단위의 클러스터의 묶음으로 분리함으로써 갯수가 적어짐에 따른 통계적인 분산이 커짐에 따라 불규칙적인 클러스터 갯수가 많이 출현하게 되어 압축효과가 높아지는 현상을 이용하는데,
세부 분포표를 작성한뒤 각 세부분포표마다 긴 클러스터에 대해 보다 짧은 클러스터로 대체함으로써 압축효율을 높이도록 하였다.
먼저, 표1과 같이 상기 377,540 비트의 이진데이터의 경우, 전체 167,428개의 클러스터로 구분이 되었는데, 이를 세분화하여 분리하기 위하여, 사용자 설정으로 N개씩의 클러스터들의 묶음이 완성되면 상기 표3과 같은 집계표를 만드는 작업을 실시한다. 본 발명의 일 실시례로서, 100개의 클러스터를 만날때마다 그때 까지 집계된 100개 클러스터의 클러스터별 빈도와 종류정보를 이용하여 표3과 같은 테이블을 만든것이 아래 표6이다. 참고로 본 발명에서 이와 같이 N개 단위의 클러스터 묶음을 클러스터 번들이라고 명명하였다. 이렇게 나누어보니 1675개의 클러스터 번들이 생성되었고 그중 일부를 표6과 같이 표현한 것이다.
클러스터번들 클러스터종류순번 클러스터 출현횟수 클러스터길이(비트) 유니버설코드 비트수 차이 압축효과 참고
1 1 1 49 1 1 0 0
1 2 11 24 2 2 0 0
1 3 111 7 3 3 0 0
1 4 1111 7 4 4 0 0
1 5 11111 3 5 5 0 0
1 6 111111 1 6 6 0 0
1 7 1111111 1 7 7 0 0
1 8 11111111 1 8 8 0 0
1 9 111111111 1 9 9 0 0
1 10 1111111111 1 10 10 0 0
1 11 1111111111111 1 13 11 -2 -2 불일치시작순번
1 12 111111111111111 1 15 12 -3 -3
1 13 11111111111111111 1 17 13 -4 -4
1 14 1111111111111111111 1 19 14 -5 -5
1 15 11111111111111111111111111111 1 29 15 -14 -14
2 1 1 60 1 1 0 0
2 2 11 16 2 2 0 0
2 3 111 12 3 3 0 0
2 4 1111 4 4 4 0 0
2 5 11111 5 5 5 0 0
2 6 1111111 1 7 6 -1 -1 불일치시작순번
2 7 1111111111111111111 1 19 7 -12 -12
2 8 11111111111111................... 1 3721 8 -3713 -3713
3 1 1 59 1 1 0 0
3 2 11 22 2 2 0 0
3 3 111 8 3 3 0 0
3 4 1111 5 4 4 0 0
3 5 11111 2 5 5 0 0
3 6 111111 2 6 6 0 0
3 7 11111111 1 8 7 -1 -1 불일치시작순번
3 8 111111111 1 9 8 -1 -1
4 1 1 50 1 1 0 0
4 2 11 28 2 2 0 0
4 3 111 14 3 3 0 0
4 4 1111 2 4 4 0 0
4 5 11111 4 5 5 0 0
4 6 1111111 2 7 6 -1 -2 불일치시작순번
5 1 1 43 1 1 0 0
5 2 11 34 2 2 0 0
5 3 111 9 3 3 0 0
5 4 1111 7 4 4 0 0
5 5 11111 5 5 5 0 0
5 6 111111111 2 9 6 -3 -6 불일치시작순번
6 1 1 37 1 1 0 0
6 2 11 33 2 2 0 0
6 3 111 14 3 3 0 0
6 4 1111 7 4 4 0 0
6 5 11111 4 5 5 0 0
6 6 111111 2 6 6 0 0
6 7 1111111 2 7 7 0 0
6 8 11111111 1 8 8 0 0
7 ... ... ... ... ... ... ... ...
... ... ... ... ... ... ... ... ...
상기 표6에서 보면 알수있듯이, 클러스터 존재 횟수의 합이 100개가 될때마다 정확하게 번들의 번호가 하나씩 증가함을 알수있고, 데이터의 특성에 따라 클러스터 존재횟수의 합이 100이 되지만, 각 구성 클러스터의 종류는 15종, 8종, ... 등으로 다양함을 알 수 있다.
한편, 각 클러스터 번들중들에는 번들 6과 같이 구성하고 있는 순번 1번부터 8번까지 연속된 "1"의 배열이 순차적으로 1비트에서 부터 8비트까지 이기 때문에 유니버설 코드로 매핑을 하여도 클러스터와 유니버설 코드가 완벽히 일치하여 압축효과가 존재하지 않는다. 이와 같은 클러스터 번들들의 경우 각 번들 ID(순번)만을 별도의 정보로 저장하여 둔다. 압축해제시에는, 상기 표6위의 그림과 같이 100개의 유니버설 코드를 만날때마다 자동적으로 클러스터 번들을 역으로 형성하기 위하여 압축화일과 함께 저장된 각 매핑사전정보를 이용하여 매핑테이블을 새롭게 만드는데, 해당 번들ID와 일치하게 되는 클러스터 번들의 순번을 복호화할 경우에는, 유니버설 코드와 클러스터를 완벽히 일치하여 그대로 변환하는과정을 거치면 되기 때문에 압축의 효율이 높아진다.
Figure pat00003

그외의 번들의 경우에는, 불일치 시작순번이 클러스터 순번내에 존재하고 있으므로 압축의 효과가 관찰된다. 한편 이때, 압축의 효과가 미미하여 즉 압축사전 및 불일치 시작순번 또는 불일치 시작 직전순번 정보, 비트수 차이정보보다 압축의 효과가 적은 클러스터 번들ID의 경우에도 상기와 압축효과 없는 번들과 같이 취급할 수 있는데, 다만 유니버설 코드는 번들 6과 같이 자동으로 순차적으로 생성하는 것이 아니라, 해당 클러스터 번들의 클러스터와 완전 동일하게 생성하여 압축화일에 저장한다.
즉 상기 표6과 같은 상황을 토대로 설명하면, 클러스터 번들 3, 4, 5 의 경우에 압축효과가 수비트에 지나지 않아서, 복호화 정보를 포함하면 압축의 효과가 사라지므로, 이런 경우 번들 6과 같이 압축효과 없는 번들정보에 별도 저장을 하고, 압축효과 있는 번들에 대해서만 각 번들마다 매핑사전 구성을 위하여 불일치 시작순번, 비트 차이정보를 저장하고 압축해제에서 활용하게 된다.
따라서, 클러스터 번들 3,4,5,6 은 아래와 같이 유니버설 코드와 클러스터가 완벽히 일치된 상태로 최종압축데이터에 반영되게 된다. 단순히 이러한 번들 ID만 압축데이터의 별도 공간에, 저장되어 있면, 압축해제시에 100개 유니버설 코드를 읽을때마다 번들ID를 순차적으로 확인이 가능하고, 해당 번들ID이 압축효과가 없는 번들인 3,4,5,6 에 해당된다면 해독순서에서 바로 유니버설 코드를 클러스터로 압축해제하면 해당번들에 대하여는 간단하게 압축해제가 끝난다.
Figure pat00004

반면, 압축효과가 있는 번들 1,2에 대해서는, 아래 그림과 같이, 별도로 저장된 매핑사전 1, 2 에서 매핑테이블 1,2 를 각각 복원한뒤에, 각 읽어들이는 100개씩의 유니버설 코드에 대하여 1:1로 매핑된 클러스터로 변환하여 원본데이터를 복구한다. 최종압축데이터에서, 최초 1번째 부터 100번째까지의 유니버설 코드가 번들 1을 구성하고, 다음 101번째부터 200번째까지가 번들2, 201번째부터 300번째까지가 번들3을 구성하며 이런과정이 계속 반복되므로, 유니버설 코드의 순서정보를 통해 번들정보를 확인할 수 가 있고, 어떤 매핑사전을 찾아서 어떤 매핑테이블을 생성할지, 혹은 압축효과가 없어서 매핑사전이나 매핑테이블을 찾을 필요가 없이 바로 유니버설 코드에서 클러스터로 바꿀수 있는지를 알 수 있게 된다.
Figure pat00005

상기 그림에서 매핑사전 1, 2, .... 등은 상술한 매핑사전의 표현방법에 따라 구성할 수 있는데, 매핑사전의 두가지 요소인 1) 일치 또는 불일치 순번에 대한 정보 2)유니버설코드와 각 클러스터간의 길이차이 정보를 모든 매핑사전의 1), 2)를 순차적으로 모두 통합하고 허프만 부호화등으로 압축하여 저장하는 방식도 가능하다.
Figure pat00006
상기와 같이 매핑사전을 통합하였을때, 길이차이정보가 일렬로 허프만 부호화 또는 일반 부호화로 연결되더라도, 아래 그림과 예시와 같이, 최종 압축데이터에서 순차적으로 100개씩 유니버설 코드를 읽은뒤, 유니버설 코드 집계표를 만들게 되면 해당 번들에 있어서, 전체 순번은 알 수 있게 된다. 다음으로 매핑사전의 1) 정보에서, 하나씩을 읽어서, 일치 순번 또는 불일치 순번의 포인트를 알게 되면, 집계표의 나머지 순번의 갯수로부터 불일치 순번의 갯수를 알수있고, 그 갯수만큼 2)에서 허프만 코드등을 읽어오면 되므로 , 2)의 정보를 통합하여도 통합매핑사전에서 1), 2) 의 정보를 번들별로 정확하게 모두 가져올 수 있기 때문에 매핑 사전의 통합이 가능하다.
Figure pat00007

상기와 같이, 데이터의 분할을 통한 엔트로피 증가를 이용한 압축법을 설명하였다.
전체 데이터에 대한 매핑테이블구성을 한뒤, 압축과 매핑사전을 생성하는 방법과 유사하게, 각각 데이터를 특정 클러스터의 갯수단위로 분할하여 번들을 구성하고 각 번들당 매핑테이블을 구성한 압축및 매핑사전을 생성하는 방법을 통하여 보다 압축효율을 높일수 있으며, 특히 압축효과가 미비한 번들의 경우 번들ID를 별도로 묶어서 해당 번들의 경우 압축화일에서 읽은 번들내의 유니버설 코드를 모두 바로 클러스터로 하여 압축해제 하면 된다.
압축효율이 낮거나 없는 번들ID의 경우끼리는 추가로 허프만 코딩을 이용하거나, 번들ID간의 거리정보를 이용하는 방법을 이용하여 보다 더 효율적인 번들ID만의 저장이 가능하다.

Claims (2)

  1. 원본이진데이터로부터 특정 갯수의 클러스터별로 분할하여, 클러스터 번들 및 클러스터 종류 및 각 빈도를 분석하는 단계 및 각 번들내의 각 클러스터별로 유니버설 코드를 매핑하는 단계 및 각 번들내에서의 매핑사전 및 압축데이터를 생성하는 단계 및 압축효율이 없거나 미미한 번들ID를 저장하는 단계를 포함하는 데이터 압축방법 및 장치
  2. 압축결과데이터로부터 특정 갯수의 유니버설 코드별로 분할하여 유니버설 코드번들 및 유니버설코드 종류 및 빈도를 분석하는 단계 및 각 번들당 매핑사전정보로부터 매핑테이블을 생성하는 단계 및 각 번들내에서 각 유니버설 코드별로 클러스터 정보를 매핑테이블을 이용하여 매핑하는 단계 및 매핑된 유니버설코드-클러스터 정보를 이용하여 압축결과데이터의 각 번들을 압축해제하는 단계를 포함하되 압축효과가 미미하거나 없는 번들ID에 해당할 경우 매핑사전해독 및 매핑테이블 번역없이 바로 유니버설 코드로부터 이와 동일한 클러스터를 생성하여 번들을 압축해제하는 단계를 포함하는 데이터 압축해제방법 및 장치
KR1020140141361A 2014-10-20 2014-10-20 데이터 분할을 이용한 인위적 엔트로피 확대를 이용한 데이터 압축 및 그 해제방법 KR20160046083A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020140141361A KR20160046083A (ko) 2014-10-20 2014-10-20 데이터 분할을 이용한 인위적 엔트로피 확대를 이용한 데이터 압축 및 그 해제방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140141361A KR20160046083A (ko) 2014-10-20 2014-10-20 데이터 분할을 이용한 인위적 엔트로피 확대를 이용한 데이터 압축 및 그 해제방법

Publications (1)

Publication Number Publication Date
KR20160046083A true KR20160046083A (ko) 2016-04-28

Family

ID=55915062

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140141361A KR20160046083A (ko) 2014-10-20 2014-10-20 데이터 분할을 이용한 인위적 엔트로피 확대를 이용한 데이터 압축 및 그 해제방법

Country Status (1)

Country Link
KR (1) KR20160046083A (ko)

Similar Documents

Publication Publication Date Title
KR101841103B1 (ko) Vlsi 효율적인 허프만 인코딩 장치 및 방법
US7375660B1 (en) Huffman decoding method
US20140266816A1 (en) Method and apparatus for compressing data-carrying signals
WO2013102818A1 (en) Generating a code alphabet of symbols to generate codewords for words used with a program
CN101800761B (zh) 一种基于网络字典的无损数据压缩方法
KR20160047686A (ko) 분할된 클러스터 종류수 기준 데이터 분할을 이용한 인위적 엔트로피 확대를 이용한 데이터 압축 및 그 해제방법
GB2539239A (en) Encoders, decoders and methods
JP2011114525A (ja) 数値データ列の符号化/復号化の方法および装置
KR20160046083A (ko) 데이터 분할을 이용한 인위적 엔트로피 확대를 이용한 데이터 압축 및 그 해제방법
KR101575939B1 (ko) 이진 데이터의 압축 및 복원 방법과 장치
KR20160100496A (ko) 바이너리 클러스터를 이용한 허프만 부호화 효율화 방법 및 그 장치
KR101590790B1 (ko) 이진 데이터의 압축 및 복원 방법과 장치
KR20160049627A (ko) 바이너리 클러스터별 분할 및 출현빈도수 내림차순 정렬에 따라 1:1 유니버설 코드 대응을 통한 압축법의 효율화 방법
KR101652735B1 (ko) 이진 데이터의 압축 및 복원 방법과 장치
KR101578608B1 (ko) 일반 코드 생성을 위한 데이터 부호화 장치 및 데이터 복호화 장치
KR20160048607A (ko) 바이너리 클러스터 데이터 분할 및 유니버설 코드 대응을 통한 압축법의 효율화 방법
KR20160102593A (ko) 분포데이터의 블럭화를 이용한 허프만 부호화의 효율화 방법 및 그 장치
US20080281984A1 (en) Hub and spoke compression
US7750826B2 (en) Data structure management for lossless data compression
KR101632115B1 (ko) 이진 데이터의 압축 및 복원 방법과 장치
JP2014078994A (ja) 数値データ列の符号化/復号化の方法および装置
KR20160055985A (ko) 바이너리 클러스터 분할 및 유니버설 코드 매핑을 이용한 데이터 압축 및 그 해제방법
KR20160055986A (ko) 바이너리 클러스터 분할 및 유니버설 코드 매핑을 이용한 데이터 압축 및 그 해제방법
KR20200010717A (ko) 모자이크 클러스터 유니버설코드 기반의 데이터 최대 압축방법 및 그 장치
KR101632116B1 (ko) 이진 데이터의 압축 및 복원 방법과 장치

Legal Events

Date Code Title Description
WITN Withdrawal due to no request for examination