KR20160047686A - 분할된 클러스터 종류수 기준 데이터 분할을 이용한 인위적 엔트로피 확대를 이용한 데이터 압축 및 그 해제방법 - Google Patents

분할된 클러스터 종류수 기준 데이터 분할을 이용한 인위적 엔트로피 확대를 이용한 데이터 압축 및 그 해제방법 Download PDF

Info

Publication number
KR20160047686A
KR20160047686A KR1020140143761A KR20140143761A KR20160047686A KR 20160047686 A KR20160047686 A KR 20160047686A KR 1020140143761 A KR1020140143761 A KR 1020140143761A KR 20140143761 A KR20140143761 A KR 20140143761A KR 20160047686 A KR20160047686 A KR 20160047686A
Authority
KR
South Korea
Prior art keywords
cluster
bundle
data
universal
universal code
Prior art date
Application number
KR1020140143761A
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 KR1020140143761A priority Critical patent/KR20160047686A/ko
Publication of KR20160047686A publication Critical patent/KR20160047686A/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

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

Description

분할된 클러스터 종류수 기준 데이터 분할을 이용한 인위적 엔트로피 확대를 이용한 데이터 압축 및 그 해제방법{DATA COMPRESSION METHOD BY INCREASING VARIANCE OF CLUSTERS BY DIVIDING DATA BASED ON COLLECTED NUMBER OF THE SAME KIND OF CLUSTER}
데이터 압축
데이터 압축
발명을 실시하기 위한 구체적인 내용에 상술
발명을 실시하기 위한 구체적인 내용에 상술
본 발명을 이용하면 간단한 연산을 통해 빠르고 효율적인 데이터 압축이 가능해진다.
본 발명의 한 실시례로서 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 82388
11 42299
111 20079
1111 10650
11111 5213
111111 2686
1111111 1376
11111111 765
111111111 466
1111111111 202
11111111111 161
111111111111 55
1111111111111 157
11111111111111 7
111111111111111 155
1111111111111111 105
11111111111111111 59
111111111111111111 57
1111111111111111111 79
11111111111111111111 23
111111111111111111111 5
1111111111111111111111 2
11111111111111111111111 1
111111111111111111111111 41
1111111111111111111111111 50
11111111111111111111111111 43
111111111111111111111111111 41
1111111111111111111111111111 11
11111111111111111111111111111 156
111111111111111111111111111111 4
1111111111111111111111111111111 6
11111111111111111111111111111111 9
111111111111111111111111111111111 1
1111111111111111111111111111111111 2
11111111111111111111111111111111111 1
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 22
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 13
1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 11
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 10
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 6
1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 2
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 1
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 2
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 1
1111111111111111111111111....................... 3
1111111111111111111111111........................ 1
1111111111111111111111111........................ 1
총합계 167428
클러스터의 길이에 대한 분포는 아래와 같다. 이미 본 출원인의 다른 발명들에서 언급된 바와 같이 평균적인 클러스터 길이보다 유독 긴 클러스터들이 눈에 띄며 이러한 클러스터들에게 보다 짧은 길이의 유니버설 코드를 생성하여 줌으로써 압축효과를 나타냄은 이미 다른 발명들에서 보이고 있다.
Figure pat00001

이 두결과를 이용하여 표3과 같이 압축을 위한 매핑테이블을 구성하였었다.
표3에서의 매핑테이블에서 최소 클러스터 종류 및 대응되는 유니버설 코드 이렇게 최소한 2개의 필드만 있으면 매핑테이블은 기능하며 나머지 필드는 집계적 목적에 불과하여 부수적이며 불필요할 수 있다.
클러스터 종류 클러스터길이 출현빈도 유니버설코드 길이 유니버설코드 압축효과
1 1 82388 1 1 0
11 2 42299 2 11 0
111 3 20079 3 111 0
1111 4 10650 4 1111 0
11111 5 5213 5 11111 0
111111 6 2686 6 111111 0
1111111 7 1376 7 1111111 0
11111111 8 765 8 11111111 0
111111111 9 466 9 111111111 0
1111111111 10 202 10 1111111111 0
11111111111 11 161 11 11111111111 0
111111111111 12 55 12 111111111111 0
1111111111111 13 157 13 1111111111111 0
11111111111111 14 7 14 11111111111111 0
111111111111111 15 155 15 111111111111111 0
1111111111111111 16 105 16 1111111111111111 0
11111111111111111 17 59 17 11111111111111111 0
111111111111111111 18 57 18 111111111111111111 0
1111111111111111111 19 79 19 1111111111111111111 0
11111111111111111111 20 23 20 11111111111111111111 0
111111111111111111111 21 5 21 111111111111111111111 0
1111111111111111111111 22 2 22 1111111111111111111111 0
11111111111111111111111 23 1 23 11111111111111111111111 0
111111111111111111111111 24 41 24 111111111111111111111111 0
1111111111111111111111111 25 50 25 1111111111111111111111111 0
11111111111111111111111111 26 43 26 11111111111111111111111111 0
111111111111111111111111111 27 41 27 111111111111111111111111111 0
1111111111111111111111111111 28 11 28 1111111111111111111111111111 0
11111111111111111111111111111 29 156 29 11111111111111111111111111111 0
111111111111111111111111111111 30 4 30 111111111111111111111111111111 0
1111111111111111111111111111111 31 6 31 1111111111111111111111111111111 0
11111111111111111111111111111111 32 9 32 11111111111111111111111111111111 0
111111111111111111111111111111111 33 1 33 111111111111111111111111111111111 0
1111111111111111111111111111111111 34 2 34 1111111111111111111111111111111111 0
11111111111111111111111111111111111 35 1 35 11111111111111111111111111111111111 0
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 104 22 36 111111111111111111111111111111111111 -1496
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 105 13 37 1111111111111111111111111111111111111 -884
1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 106 11 38 11111111111111111111111111111111111111 -748
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 107 10 39 111111111111111111111111111111111111111 -680
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 108 6 40 1111111111111111111111111111111111111111 -408
1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 109 2 41 11111111111111111111111111111111111111111 -136
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 110 1 42 111111111111111111111111111111111111111111 -68
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 111 2 43 1111111111111111111111111111111111111111111 -136
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 137 1 44 11111111111111111111111111111111111111111111 -93
1111111111111111111111.............. 2048 3 45 111111111111111111111111111111111111111111111 -6009
1111111111111111111111................ 3633 1 46 1111111111111111111111111111111111111111111111 -3587
1111111111111111111111................ 3721 1 47 11111111111111111111111111111111111111111111111 -3674
총합계 167428 -17919
상기 표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와 같은 분포표를 이용하여 긴 클러스터에 대해 보다 짧은 클러스터로 대체하여 압축을 시행하는 기존 방식에서 벗어나 전체 원본데이터를 사용자 설정에 따라 클러스터들을 일정한 기준에 따라 묶을수가 있는데 본 발명에서는 아래와 같이 두개의 기준을 고안하였다.
[1] 원본데이터에서 읽어온 클러스터의 종류의 수가 특정한 N + 1 개에 도달하게 되면 즉, 표 1과 같은 클러스터별로 순서대로 배열한 원본데이터에서 i 번째부터 j 번째까지 어떤 특정한 위치에 있는 클러스터들을 원본데이터에서 읽어온 결과, 클러스터가 N 개의 종류였는데, j+1번째에서 N+1번째 종류의 새로운 클러스터를 읽게되는 순간에 i 번째에서 j 번째까지의 N종류의 클러스터들의 집합
이고 기준 [1]을 도식화하면 아래와 같다. 아래 모식도에서는 i = 1번째이고, j = X1+X2+X3번째로 이해할 수 있다. 아래 도면에서, 10종, 7종, 13종,.... 클러스터 수집은 가상의 결과이며, 데이터 특성에 따라 매우 다양한 것이다. 편의상 그 중간과정을 시각적으로 표현한것에 불과하다. 즉 X1번째 클러스터까지 10종류였다면, 1~X1+1번째까지는 11종류가되는 것으로도 표현을 할 수 있는 것이다.
Figure pat00003

[2] 표1과 같은 원본데이터의 클러스터에서 i 번째부터 j번째까지 N-1 개 종류의 클러스터를 수집했는데, j+1번째 클러스터에서 새로운 N번째 종류의 클러스터가 수집되었다면, 그 새로운 N번째 종류의 클러스터 1개포함한 i번째부터 j번째까지의 N종류의 클러스터들의 집합
이고 이를 도식화 하면 아래와 같다. 이때 i 는 1 번째이고, j는 X1+X2+X3+1번째이다
Figure pat00004

이렇게 두가지 기준으로 수집된 N종류의 클러스터들이 수집된 i 번째부터 j 번째 클러스터들을 "번들"이라고 명명하고, 이 번들내에서의 클러스터종류별로 세부적인 분포표를 작성하며, 세부분포표(BUNDLE CLUSTER DISTRIBUTION TABLE) 의 특성상 전체 모집단 데이터를 특정 N 종류로 구성된 클러스터의 묶음("번들")으로 분리함으로써 표본집단의 특성상 모집단에 비하여 통계적인 분산이 커짐에 따라 불규칙적인 클러스터 갯수가 많이 출현하게 되어 압축효과가 높아지는 현상을 이용하는데, 세부 분포표를 작성한뒤 각 세부분포표마다 긴 클러스터에 대해 보다 짧은 유니버설 코드로 대체함으로써 압축효율을 높이도록 하였다.
한편 기준[1] 과 기준[2]의 경우 어떤 경우에 압축효율이 좋을지는 원본데이터의 분포특성에 따라 달라질 수 있다.
그리고 기준[1] 또는 기준[2] 어느한쪽을 가지고 압축에 활용했다면, 당연히 압축해제시에는 압축시에 선택된 기준에 따라 압축해제해야함은 물론이다.
한편, 먼저, 표1과 같이 상기 377,540 비트의 이진데이터의 경우, 전체 167,428개의 클러스터로 구분이 되었는데, 이를 세분화하여 분리하기 위하여, 사용자 설정으로 N 종류의 클러스터 묶음("번들") 들이 생성되도록 하는데, 본 발명의 일 실시례로서, N=30으로 하여 30 종류의 클러스터를 만날때마다 그때 까지 집계된 클러스터들 번들내의 클러스터별 빈도와 종류정보를 이용하여 표3과 같은 테이블을 만든것이 아래 표6이다.
참고로 본 실시례에서의 N종류의 클러스터를 묶은 번들의 생성기준은, 기준[2]인
표1과 같은 원본데이터의 클러스터에서 i 번째부터 j번째까지 N-1 개 종류의 클러스터를 수집했는데, j+1번째 클러스터에서 새로운 N번째 종류의 클러스터가 수집되었다면, 그 새로운 N번째 종류의 클러스터 1개포함한 i번째부터 j번째까지의 N종류의 클러스터들의 집합
기준을 사용했으며, 즉 N번째 종류의 클러스터는 1개만 존재하도록 하여 번들을 구성하는 방식이다. 표6에서 볼수 있듯이, 클러스터 종류는 30종씩 분류되었으며, 참고적으로 이중에 출현빈도가 1인 것들가운데 수집기준 [2] 에따라 N번째 클러스터가 포함되어 있으나, 압축이나 압축해제를 위하여 특정할 추가분석은 필요치 않다.
클러스터번들ID 클러스터종류순번 클러스터 출현빈도 클러스터길이(비트) 유니버설코드 유니버설코드길이 비트수차이 압축효과
1 1 1 18227 1 1 1 0 0
1 2 11 9153 2 11 2 0 0
1 3 111 4454 3 111 3 0 0
1 4 1111 2353 4 1111 4 0 0
1 5 11111 1160 5 11111 5 0 0
1 6 111111 606 6 111111 6 0 0
1 7 1111111 308 7 1111111 7 0 0
1 8 11111111 186 8 11111111 8 0 0
1 9 111111111 104 9 111111111 9 0 0
1 10 1111111111 40 10 1111111111 10 0 0
1 11 11111111111 19 11 11111111111 11 0 0
1 12 111111111111 12 12 111111111111 12 0 0
1 13 1111111111111 22 13 1111111111111 13 0 0
1 14 11111111111111 1 14 11111111111111 14 0 0
1 15 111111111111111 15 15 111111111111111 15 0 0
1 16 1111111111111111 23 16 1111111111111111 16 0 0
1 17 11111111111111111 5 17 11111111111111111 17 0 0
1 18 111111111111111111 4 18 111111111111111111 18 0 0
1 19 1111111111111111111 11 19 1111111111111111111 19 0 0
1 20 11111111111111111111 7 20 11111111111111111111 20 0 0
1 21 111111111111111111111 1 21 111111111111111111111 21 0 0
1 22 111111111111111111111111 6 24 1111111111111111111111 22 -2 -12
1 23 1111111111111111111111111 10 25 11111111111111111111111 23 -2 -20
1 24 11111111111111111111111111 2 26 111111111111111111111111 24 -2 -4
1 25 111111111111111111111111111 1 27 1111111111111111111111111 25 -2 -2
1 26 11111111111111111111111111111 14 29 11111111111111111111111111 26 -3 -42
1 27 1111111111111111111111111111111111 1 34 111111111111111111111111111 27 -7 -7
1 28 111111………….. 1 2048 1111111111111111111111111111 28 -2020 -2020
1 29 111111………….. 1 3633 11111111111111111111111111111 29 -3604 -3604
1 30 111111………….. 1 3721 111111111111111111111111111111 30 -3691 -3691
2 1 1 41107 1 1 1 0 0
2 2 11 20827 2 11 2 0 0
2 3 111 10078 3 111 3 0 0
2 4 1111 5140 4 1111 4 0 0
2 5 11111 2527 5 11111 5 0 0
2 6 111111 1339 6 111111 6 0 0
2 7 1111111 690 7 1111111 7 0 0
2 8 11111111 369 8 11111111 8 0 0
2 9 111111111 210 9 111111111 9 0 0
2 10 1111111111 113 10 1111111111 10 0 0
2 11 11111111111 54 11 11111111111 11 0 0
2 12 111111111111 28 12 111111111111 12 0 0
2 13 1111111111111 23 13 1111111111111 13 0 0
2 14 11111111111111 4 14 11111111111111 14 0 0
2 15 111111111111111 18 15 111111111111111 15 0 0
2 16 1111111111111111 22 16 1111111111111111 16 0 0
2 17 11111111111111111 7 17 11111111111111111 17 0 0
2 18 111111111111111111 4 18 111111111111111111 18 0 0
2 19 1111111111111111111 9 19 1111111111111111111 19 0 0
2 20 11111111111111111111 2 20 11111111111111111111 20 0 0
2 21 111111111111111111111 1 21 111111111111111111111 21 0 0
2 22 1111111111111111111111 1 22 1111111111111111111111 22 0 0
2 23 11111111111111111111111 1 23 11111111111111111111111 23 0 0
2 24 111111111111111111111111 8 24 111111111111111111111111 24 0 0
2 25 1111111111111111111111111 9 25 1111111111111111111111111 25 0 0
2 26 11111111111111111111111111 1 26 11111111111111111111111111 26 0 0
2 27 111111111111111111111111111 6 27 111111111111111111111111111 27 0 0
2 28 1111111111111111111111111111 3 28 1111111111111111111111111111 28 0 0
2 29 11111111111111111111111111111 14 29 11111111111111111111111111111 29 0 0
2 30 11111111111111111111111111111111 1 32 111111111111111111111111111111 30 -2 -2
3 1 1 9271 1 1 1 0 0
3 2 11 4976 2 11 2 0 0
3 3 111 2361 3 111 3 0 0
3 4 1111 1266 4 1111 4 0 0
3 5 11111 727 5 11111 5 0 0
3 6 111111 318 6 111111 6 0 0
3 7 1111111 163 7 1111111 7 0 0
3 8 11111111 85 8 11111111 8 0 0
3 9 111111111 68 9 111111111 9 0 0
3 10 1111111111 20 10 1111111111 10 0 0
3 11 11111111111 9 11 11111111111 11 0 0
3 12 111111111111 6 12 111111111111 12 0 0
3 13 1111111111111 24 13 1111111111111 13 0 0
3 14 11111111111111 1 14 11111111111111 14 0 0
3 15 111111111111111 27 15 111111111111111 15 0 0
3 16 1111111111111111 31 16 1111111111111111 16 0 0
3 17 11111111111111111 3 17 11111111111111111 17 0 0
3 18 111111111111111111 12 18 111111111111111111 18 0 0
3 19 1111111111111111111 7 19 1111111111111111111 19 0 0
3 20 111111111111111111111111 11 24 11111111111111111111 20 -4 -44
3 21 1111111111111111111111111 9 25 111111111111111111111 21 -4 -36
3 22 11111111111111111111111111 20 26 1111111111111111111111 22 -4 -80
3 23 111111111111111111111111111 10 27 11111111111111111111111 23 -4 -40
3 24 1111111111111111111111111111 5 28 111111111111111111111111 24 -4 -20
3 25 11111111111111111111111111111 28 29 1111111111111111111111111 25 -4 -112
3 26 111111111111111111111111111111 1 30 11111111111111111111111111 26 -4 -4
3 27 1111111111111111111111111111111 2 31 111111111111111111111111111 27 -4 -8
3 28 11111111111111111111111111111111 3 32 1111111111111111111111111111 28 -4 -12
3 29 111111111111111111111111111111111 1 33 11111111111111111111111111111 29 -4 -4
3 30 11111111111111111111111111111111111 1 35 111111111111111111111111111111 30 -5 -5
4 1 1 8007 1 1 1 0 0
4 2 11 4182 2 11 2 0 0
4 3 111 2033 3 111 3 0 0
4 4 1111 1143 4 1111 4 0 0
4 5 11111 564 5 11111 5 0 0
4 6 111111 308 6 111111 6 0 0
4 7 1111111 119 7 1111111 7 0 0
4 8 11111111 77 8 11111111 8 0 0
4 9 111111111 57 9 111111111 9 0 0
4 10 1111111111 16 10 1111111111 10 0 0
4 11 11111111111 9 11 11111111111 11 0 0
4 12 111111111111 4 12 111111111111 12 0 0
4 13 1111111111111 20 13 1111111111111 13 0 0
4 14 111111111111111 22 15 11111111111111 14 -1 -22
4 15 1111111111111111 26 16 111111111111111 15 -1 -26
4 16 11111111111111111 3 17 1111111111111111 16 -1 -3
4 17 1111111111111111111 10 19 11111111111111111 17 -2 -20
4 18 11111111111111111111 3 20 111111111111111111 18 -2 -6
4 19 111111111111111111111 1 21 1111111111111111111 19 -2 -2
4 20 111111111111111111111111 9 24 11111111111111111111 20 -4 -36
4 21 1111111111111111111111111 18 25 111111111111111111111 21 -4 -72
4 22 11111111111111111111111111 5 26 1111111111111111111111 22 -4 -20
4 23 111111111111111111111111111 5 27 11111111111111111111111 23 -4 -20
4 24 1111111111111111111111111111 2 28 111111111111111111111111 24 -4 -8
4 25 11111111111111111111111111111 24 29 1111111111111111111111111 25 -4 -96
4 26 111111111111111111111111111111 1 30 11111111111111111111111111 26 -4 -4
4 27 1111111111111111111111111111111 1 31 111111111111111111111111111 27 -4 -4
4 28 11111111111111111111111111111111 2 32 1111111111111111111111111111 28 -4 -8
4 29 11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 1 137 11111111111111111111111111111 29 -108 -108
4 30 11111………. 2 2048 111111111111111111111111111111 30 -2018 -4036
5 1 1 1558 1 1 1 0 0
5 2 11 885 2 11 2 0 0
5 3 111 255 3 111 3 0 0
5 4 1111 184 4 1111 4 0 0
5 5 11111 46 5 11111 5 0 0
5 6 111111 37 6 111111 6 0 0
5 7 1111111 26 7 1111111 7 0 0
5 8 11111111 20 8 11111111 8 0 0
5 9 111111111 10 9 111111111 9 0 0
5 10 1111111111 3 10 1111111111 10 0 0
5 11 11111111111 18 11 11111111111 11 0 0
5 12 111111111111 1 12 111111111111 12 0 0
5 13 1111111111111 18 13 1111111111111 13 0 0
5 14 111111111111111 18 15 11111111111111 14 -1 -18
5 15 1111111111111111 3 16 111111111111111 15 -1 -3
5 16 11111111111111111 14 17 1111111111111111 16 -1 -14
5 17 111111111111111111 9 18 11111111111111111 17 -1 -9
5 18 1111111111111111111 15 19 111111111111111111 18 -1 -15
5 19 11111111111111111111 6 20 1111111111111111111 19 -1 -6
5 20 111111111111111111111 1 21 11111111111111111111 20 -1 -1
5 21 1111111111111111111111111 1 25 111111111111111111111 21 -4 -4
5 22 11111111111111111111111111 1 26 1111111111111111111111 22 -4 -4
5 23 111111111111111111111111111 3 27 11111111111111111111111 23 -4 -12
5 24 11111111111111111111111111111 18 29 111111111111111111111111 24 -5 -90
5 25 11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 8 104 1111111111111111111111111 25 -79 -632
5 26 111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 2 105 11111111111111111111111111 26 -79 -158
5 27 1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 4 106 111111111111111111111111111 27 -79 -316
5 28 11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 2 107 1111111111111111111111111111 28 -79 -158
5 29 1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 1 109 11111111111111111111111111111 29 -80 -80
5 30 111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 1 111 111111111111111111111111111111 30 -81 -81
6 1 1 1285 1 1 1 0 0
6 2 11 731 2 11 2 0 0
6 3 111 265 3 111 3 0 0
6 4 1111 173 4 1111 4 0 0
6 5 11111 50 5 11111 5 0 0
6 6 111111 22 6 111111 6 0 0
6 7 1111111 26 7 1111111 7 0 0
6 8 11111111 8 8 11111111 8 0 0
6 9 111111111 8 9 111111111 9 0 0
6 10 1111111111 1 10 1111111111 10 0 0
6 11 11111111111 16 11 11111111111 11 0 0
6 12 111111111111 1 12 111111111111 12 0 0
6 13 1111111111111 15 13 1111111111111 13 0 0
6 14 111111111111111 15 15 11111111111111 14 -1 -15
6 15 11111111111111111 6 17 111111111111111 15 -2 -12
6 16 111111111111111111 10 18 1111111111111111 16 -2 -20
6 17 1111111111111111111 10 19 11111111111111111 17 -2 -20
6 18 11111111111111111111 3 20 111111111111111111 18 -2 -6
6 19 1111111111111111111111 1 22 1111111111111111111 19 -3 -3
6 20 111111111111111111111111 3 24 11111111111111111111 20 -4 -12
6 21 11111111111111111111111111 2 26 111111111111111111111 21 -5 -10
6 22 111111111111111111111111111 5 27 1111111111111111111111 22 -5 -25
6 23 11111111111111111111111111111 16 29 11111111111111111111111 23 -6 -96
6 24 1111111111111111111111111111111 2 31 111111111111111111111111 24 -7 -14
6 25 11111111111111111111111111111111 1 32 1111111111111111111111111 25 -7 -7
6 26 11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 3 104 11111111111111111111111111 26 -78 -234
6 27 111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 6 105 111111111111111111111111111 27 -78 -468
6 28 1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 1 106 1111111111111111111111111111 28 -78 -78
6 29 11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 4 107 11111111111111111111111111111 29 -78 -312
6 30 111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 1 108 111111111111111111111111111111 30 -78 -78
7 1 1 1309 1 1 1 0 0
7 2 11 728 2 11 2 0 0
7 3 111 295 3 111 3 0 0
7 4 1111 184 4 1111 4 0 0
7 5 11111 64 5 11111 5 0 0
7 6 111111 25 6 111111 6 0 0
7 7 1111111 21 7 1111111 7 0 0
7 8 11111111 7 8 11111111 8 0 0
7 9 111111111 5 9 111111111 9 0 0
7 10 1111111111 1 10 1111111111 10 0 0
7 11 11111111111 15 11 11111111111 11 0 0
7 12 111111111111 3 12 111111111111 12 0 0
7 13 1111111111111 14 13 1111111111111 13 0 0
7 14 11111111111111 1 14 11111111111111 14 0 0
7 15 111111111111111 17 15 111111111111111 15 0 0
7 16 11111111111111111 8 17 1111111111111111 16 -1 -8
7 17 111111111111111111 12 18 11111111111111111 17 -1 -12
7 18 1111111111111111111 5 19 111111111111111111 18 -1 -5
7 19 111111111111111111111111 1 24 1111111111111111111 19 -5 -5
7 20 1111111111111111111111111 1 25 11111111111111111111 20 -5 -5
7 21 11111111111111111111111111 6 26 111111111111111111111 21 -5 -30
7 22 111111111111111111111111111 6 27 1111111111111111111111 22 -5 -30
7 23 11111111111111111111111111111 17 29 11111111111111111111111 23 -6 -102
7 24 11111111111111111111111111111111 1 32 111111111111111111111111 24 -8 -8
7 25 11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 3 104 1111111111111111111111111 25 -79 -237
7 26 111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 4 105 11111111111111111111111111 26 -79 -316
7 27 1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 3 106 111111111111111111111111111 27 -79 -237
7 28 11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 1 107 1111111111111111111111111111 28 -79 -79
7 29 111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 2 108 11111111111111111111111111111 29 -79 -158
7 30 11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 1 110 111111111111111111111111111111 30 -80 -80
8 1 1 739 1 1 1 0 0
8 2 11 375 2 11 2 0 0
8 3 111 158 3 111 3 0 0
8 4 1111 96 4 1111 4 0 0
8 5 11111 34 5 11111 5 0 0
8 6 111111 15 6 111111 6 0 0
8 7 1111111 10 7 1111111 7 0 0
8 8 11111111 6 8 11111111 8 0 0
8 9 1111111111 4 10 111111111 9 -1 -4
8 10 11111111111 10 11 1111111111 10 -1 -10
8 11 1111111111111 10 13 11111111111 11 -2 -20
8 12 111111111111111 11 15 111111111111 12 -3 -33
8 13 11111111111111111 5 17 1111111111111 13 -4 -20
8 14 111111111111111111 2 18 11111111111111 14 -4 -8
8 15 1111111111111111111 5 19 111111111111111 15 -4 -20
8 16 111111111111111111111 1 21 1111111111111111 16 -5 -5
8 17 111111111111111111111111 2 24 11111111111111111 17 -7 -14
8 18 1111111111111111111111111 1 25 111111111111111111 18 -7 -7
8 19 11111111111111111111111111 3 26 1111111111111111111 19 -7 -21
8 20 111111111111111111111111111 2 27 11111111111111111111 20 -7 -14
8 21 1111111111111111111111111111 1 28 111111111111111111111 21 -7 -7
8 22 11111111111111111111111111111 12 29 1111111111111111111111 22 -7 -84
8 23 111111111111111111111111111111 2 30 11111111111111111111111 23 -7 -14
8 24 1111111111111111111111111111111 1 31 111111111111111111111111 24 -7 -7
8 25 11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 3 104 1111111111111111111111111 25 -79 -237
8 26 111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 1 105 11111111111111111111111111 26 -79 -79
8 27 1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 1 106 111111111111111111111111111 27 -79 -79
8 28 11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 2 107 1111111111111111111111111111 28 -79 -158
8 29 111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 1 108 11111111111111111111111111111 29 -79 -79
8 30 111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 1 111 111111111111111111111111111111 30 -81 -81
참고로 본 발명에서 이와 같이 N개 단위의 클러스터 묶음을 클러스터 번들이라고 명명하였다. 이렇게 나누어보니 8개의 클러스터 번들이 생성되었고, 각 번들별로 클러스터 순번에 따라 1에서부터 k 까지 순차적으로 유니버설 코드의 비트수를 증가시켜 매핑한 "매핑테이블"을 상기 표6에 나타내었다.상기 표6에서 보면 알수있듯이, 클러스터 종류가 30종이 될때마다 정확하게 번들의 번호가 하나씩 증가함을 알수있고, 데이터의 특성에 따라 클러스터 존재횟수의 합이 각각 36748개, 82616개, 19466개등 다양함을 알수있다.
한편 표5와 같은 기존발명의 매핑사전 구성방식과 차이점을 개요도로 보이면 아래와 같다. 클러스터 종류갯수기준 분할법에 따른 매핑사전은 번들의 갯수만큼 생성할 수 있는데,
매핑사전은 아래그림처럼 1) 클러스터와 유니버설 코드와의 불일치 시작순번 또는 일치 마지막 순번정보와 2) 불일치 순번을 포함한 마지막 N=30순번까지의 클러스터와 유니버설 코드의 길이의 차이정보를 저장한다. 이때 1) 또는 2)의 경우에는 다양한 방식으로 기존의 압축알고리즘인 허프만코드등을 이용하여 추가적으로 더욱 효율적으로 표현할 수 있음은 물론이다. 한편, 더욱 클러스터 종류별로 분할하는 방식이 효율적인 점은 N=30이라는 것은 setting으로 고정되어 있기 때문에, 불일치 순번만 알면, 몇개의 불일치 순번이 이후에 더 존재하는지에 대한 정보는 압축해제시에 불필요하다는 점이다. 예를들어, 불일치 순번시작이 16이라고 하면, 불일치 순번의 전체 갯수는 당연히 15개(30-16+1) 임을 계산으로 알수 있게 되는 것이 압축효율을 높이는데 중요한 장점이 될 수 있다.
Figure pat00005

압축해제시에는 매핑사전을통해 클러스터별 유니버설코드를 복원한 표5와 같은 또는 동등한 형태의 매핑테이블을 구성하고, 압축데이터를 이 매핑테이블을 이용해서 복원할 수 있다. 예를들어, 표6의 매핑테이블의 클러스터 번들1에 대하여 매핑사전을 구성한다면 매핑사전내에서 "23"라는 불일치 시작 순번 정보로부터 우선 길이 1부터 길이 22까지의 "1"로만 구성된 유니버설 코드를 먼저 생성한뒤, 1번부터 22번 순번까지는 순번까지는 클러스터도 유니버설 코드와 완전히 동일하므로, 대응될 클러스터를 유니버설 코드와 동일하게 생성한다. 다음으로, N=30이란 정보는 알고있으므로, 23번부터 30번 순번까지의 갯수인 9개를 자동계산하고 이어서, 유니버설 코드를 역시 같은 방식으로 23비트 길이~30비트 길이로 자동생성한뒤, 상기 계산된 9개의 비트차이 정보인 2,2,2,2,3,7,2020,3604,3691 비트를 매핑사전에서 직접 얻어온뒤
이에 대응한 클러스터는 비트차이 숫자만큼이 유니버설 코드보다 더 긴 길이의 "1"로만 이루어진 클러스터를 생성하면 된다. 한 예로 22번 순번에서의 유니버설 코드는 22비트 길이의 연속된 "1"로 구성된 이진수이나, 이에 대응하는 클러스터는 비트차이 2비트만큼 더 긴 24 비트짜리 "1"로만 이루어진 이진수로 자동생성하면 되는 것이다. 이러한 과정을 이후비트차이 있는 순번에 모두 적용하면, 압축해제부에서도 표10와 같은 매핑테이블을 생성할 수 있게 된다.
클러스터길이(비트) 유니버설코드길이 비트수차이
1 1 0
2 2 0
3 3 0
4 4 0
5 5 0
6 6 0
7 7 0
8 8 0
9 9 0
10 10 0
11 11 0
12 12 0
13 13 0
14 14 0
15 15 0
16 16 0
17 17 0
18 18 0
19 19 0
20 20 0
21 21 0
24 22 -2
25 23 -2
26 24 -2
27 25 -2
29 26 -3
34 27 -7
2048 28 -2020
3633 29 -3604
3721 30 -3691
한편, 본 표 6에는 구체적으로 나타나지는 않았으나, 데이터의 특성에 따라 클러스터 번들중들에는 순번 1번부터 특정 k번까지의 특정 번들내의 클러스터가 연속된 "1"의 배열이 순차적으로 1비트에서 부터 k비트까지 이기 때문에 유니버설 코드로 매핑을 하여도 클러스터와 유니버설 코드가 완벽히 일치하여 압축효과가 존재하지 않는 번들이 있을 수가 있는데. 이와 같은 클러스터 번들들의 경우 각 번들 ID(순번)만을 별도의 정보로 저장하여 둔다.
예를들면, 아래 표7과 같은 가상의 m 번째 번들을 생각해보면, 각 클러스터와 유니버설코드가 완벽히 일치하여 비트수 차이가 없어서 압축효과가 전혀 없을 수 있다.
클러스터번들ID 클러스터종류순번 클러스터 출현빈도 클러스터길이(비트) 유니버설코드 유니버설코드길이 비트수차이 압축효과
m 1 1 8007 1 1 1 0 0
m 2 11 4182 2 11 2 0 0
m 3 111 2033 3 111 3 0 0
m 4 1111 1143 4 1111 4 0 0
m 5 11111 564 5 11111 5 0 0
m 6 111111 308 6 111111 6 0 0
m 7 1111111 119 7 1111111 7 0 0
m 8 11111111 77 8 11111111 8 0 0
m 9 111111111 57 9 111111111 9 0 0
m 10 1111111111 16 10 1111111111 10 0 0
m 11 11111111111 9 11 11111111111 11 0 0
m 12 111111111111 4 12 111111111111 12 0 0
m 13 1111111111111 20 13 1111111111111 13 0 0
m 14 11111111111111 22 14 11111111111111 14 0 0
m 15 111111111111111 26 15 111111111111111 15 0 0
m 16 1111111111111111 3 16 1111111111111111 16 0 0
m 17 11111111111111111 10 17 11111111111111111 17 0 0
m 18 111111111111111111 3 18 111111111111111111 18 0 0
m 19 1111111111111111111 1 19 1111111111111111111 19 0 0
m 20 11111111111111111111 9 20 11111111111111111111 20 0 0
m 21 111111111111111111111 18 21 111111111111111111111 21 0 0
m 22 1111111111111111111111 5 22 1111111111111111111111 22 0 0
m 23 11111111111111111111111 5 23 11111111111111111111111 23 0 0
m 24 111111111111111111111111 2 24 111111111111111111111111 24 0 0
m 25 1111111111111111111111111 24 25 1111111111111111111111111 25 0 0
m 26 11111111111111111111111111 1 26 11111111111111111111111111 26 0 0
m 27 111111111111111111111111111 1 27 111111111111111111111111111 27 0 0
m 28 1111111111111111111111111111 2 28 1111111111111111111111111111 28 0 0
m 29 11111111111111111111111111111 1 29 11111111111111111111111111111 29 0 0
m 30 111111111111111111111111111111 2 30 111111111111111111111111111111 30 0 0
이러한 클러스터번들만의 압축 및 압축해제를 위하여 아이디(m)을 별도로 저장하여 두면 압축 효율을 높일수가 있다.
압축해제시에는, 상기 표6위의 그림과 같이 기준[1]에 따라 압축을 했다면 그에 따라 30번째의 새로운 종류의 유니버설 코드를 처음 만날때마다 자동적으로 클러스터 번들을 역으로 형성하기 위하여 압축화일과 함께 저장된 각 매핑사전정보를 이용하여 매핑테이블을 새롭게 만드는데, 해당 번들ID (m) 와 일치하게 되는 클러스터 번들의 순번을 복호화할 경우에는 매핑사전의 도움을 받을 필요없이 , 유니버설 코드와 클러스터 자체가 완벽히 일치하기 때문에 그대로 유니버설코드를 클러스터로 변환하는 과정을 거치면 되기 때문에 압축의 효율이 높아진다.
그외의 번들의 경우에는, 표6을 보면 불일치 시작순번이 클러스터 순번내에 존재하고 있으므로 압축의 효과가 관찰된다.
한편 압축의 효과가 미미하여 즉 압축사전 및 불일치 시작순번 또는 불일치 시작 직전순번 정보, 비트수 차이정보보다 압축의 효과가 적은 클러스터 번들ID의 경우에도 상기와 압축효과 없는 번들과 같이 취급할 수 있는데, 다만 유니버설 코드는 번들 m과 같이 자동으로 순차적으로 생성하는 것이 아니라, 해당 클러스터 번들의 클러스터와 완전 동일하게 생성하여 압축화일에 저장한다.
즉 표8과 같은 가상의 클러스터 번들 j 의 경우에 압축효과가 수비트에 지나지 않아서, 복호화 정보를 포함하면 압축의 효과가 사라질 가능성이 크므로,
클러스터번들ID 클러스터종류순번 클러스터 출현빈도 클러스터길이(비트) 유니버설코드 유니버설코드길이 비트수차이 압축효과
j 1 1 8007 1 1 1 0 0
j 2 11 4182 2 11 2 0 0
j 3 111 2033 3 111 3 0 0
j 4 1111 1143 4 1111 4 0 0
j 5 11111 564 5 11111 5 0 0
j 6 111111 308 6 111111 6 0 0
j 7 1111111 119 7 1111111 7 0 0
j 8 11111111 77 8 11111111 8 0 0
j 9 111111111 57 9 111111111 9 0 0
j 10 1111111111 16 10 1111111111 10 0 0
j 11 11111111111 9 11 11111111111 11 0 0
j 12 111111111111 4 12 111111111111 12 0 0
j 13 1111111111111 20 13 1111111111111 13 0 0
j 14 11111111111111 22 14 11111111111111 14 0 0
j 15 111111111111111 26 15 111111111111111 15 0 0
j 16 1111111111111111 3 16 1111111111111111 16 0 0
j 17 11111111111111111 10 17 11111111111111111 17 0 0
j 18 111111111111111111 3 18 111111111111111111 18 0 0
j 19 1111111111111111111 1 19 1111111111111111111 19 0 0
j 20 11111111111111111111 9 20 11111111111111111111 20 0 0
j 21 111111111111111111111 18 21 111111111111111111111 21 0 0
j 22 1111111111111111111111 5 22 1111111111111111111111 22 0 0
j 23 11111111111111111111111 5 23 11111111111111111111111 23 0 0
j 24 111111111111111111111111 2 24 111111111111111111111111 24 0 0
j 25 1111111111111111111111111 24 25 1111111111111111111111111 25 0 0
j 26 11111111111111111111111111 1 26 11111111111111111111111111 26 0 0
j 27 111111111111111111111111111111 1 30 111111111111111111111111111 27 -3 -3
j 28 1111111111111111111111111111111 2 31 1111111111111111111111111111 28 -3 -6
j 29 11111111111111111111111111111111 1 32 11111111111111111111111111111 29 -3 -3
j 30 111111111111111111111111111111111 2 33 111111111111111111111111111111 30 -3 -6
이런 경우 번들 j과 같이 압축효과가 크기 않는 번들정보에 별도 저장을 하고, 압축효과 큰 번들에 대해서만 각 번들마다 매핑사전 구성을 위하여 불일치 시작순번, 비트 차이정보를 저장하고 압축해제에서 활용하게 된다.
단순히 이러한 번들 ID만 압축데이터의 별도 공간에, 저장되어 있면, 압축시에 기준[1] 또는 기준[2] 에따라 번들을 생성했다면 압축해제시에 기준[1] 또는 기준[2] 에 따른 30종류의 유니버설 코드번들을 읽을때마다 번들ID를 순차적으로 확인이 가능하고, 해당 번들ID이 압축효과가 없는 번들인 예를들면 j 번들에 해당된다면 해독순서에서 아래 그림과 같이, 바로 유니버설 코드를 클러스터로 압축해제하면 해당번들에 대하여는 간단하게 압축해제가 끝난다. 아래 그림은, j번째 번들과 j+1번째 번들이 압축효과가 없어서 번들아이디 정보만을 별도로 저장한뒤, 원본데이터로 동일치환하여 복구하는 모습의 모식도이다.
Figure pat00006
이때 물론 어느정도의 비트절감효과를 threshold로 하여 압축효과가 있는지 없는지를 판단할지 여부는 설정값으로 미리 setting할 수 있다.
반면, 압축효과가 있는 번들에 대해서는 예를 들어 표6과 같이 번들1~8 에 대해서는 아래 그림과 같이, 별도로 저장된 매핑사전 에서 매핑테이블 1~8 를 각각 복원한뒤에, 기준 [1] 또는 기준[2] 에따라 압축해제시에는 각 읽어들이는 N=30개의 종류씩의 유니버설 코드에 대하여 유니버설 코드 번들을 구성한뒤, 번들내에서 각각 1:1로 매핑된 클러스터로 변환하여 원본데이터를 복구한다. 최종압축데이터에서, 최초 1번째 부터 30번째 종류까지의 유니버설 코드들의 집합이 번들 1을 구성하고, 다음 새롭게 30종류까지의 유니버설 코드들의 집합이 번들2, 다시 새롭게 30종류까지의 유니버설 코드들의 집합이 번들3을 구성하며 이런과정이 계속 반복되므로, 유니버설 코드들을 순서대로 읽다보면 번들정보를 확인할 수 가 있고, 어떤 매핑사전을 찾아서 어떤 매핑테이블을 생성할지, 혹은 압축효과가 없어서 매핑사전이나 매핑테이블을 찾을 필요가 없이 바로 유니버설 코드에서 클러스터로 바꿀수 있는지를 알 수 있게 된다.
----------------------------------------------------------------------------
Figure pat00007

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

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

Claims (2)

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

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020140143761A KR20160047686A (ko) 2014-10-23 2014-10-23 분할된 클러스터 종류수 기준 데이터 분할을 이용한 인위적 엔트로피 확대를 이용한 데이터 압축 및 그 해제방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140143761A KR20160047686A (ko) 2014-10-23 2014-10-23 분할된 클러스터 종류수 기준 데이터 분할을 이용한 인위적 엔트로피 확대를 이용한 데이터 압축 및 그 해제방법

Publications (1)

Publication Number Publication Date
KR20160047686A true KR20160047686A (ko) 2016-05-03

Family

ID=56022395

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140143761A KR20160047686A (ko) 2014-10-23 2014-10-23 분할된 클러스터 종류수 기준 데이터 분할을 이용한 인위적 엔트로피 확대를 이용한 데이터 압축 및 그 해제방법

Country Status (1)

Country Link
KR (1) KR20160047686A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116597187A (zh) * 2023-07-17 2023-08-15 山东宇信铸业有限公司 一种高纯生铁制备过程的数据分析方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116597187A (zh) * 2023-07-17 2023-08-15 山东宇信铸业有限公司 一种高纯生铁制备过程的数据分析方法
CN116597187B (zh) * 2023-07-17 2023-09-08 山东宇信铸业有限公司 一种高纯生铁制备过程的数据分析方法

Similar Documents

Publication Publication Date Title
CN110603595B (zh) 用于从压缩的基因组序列读段重建基因组参考序列的方法和系统
JP6616877B2 (ja) Vlsiでの効率的なハフマン符号化を行う装置および方法
EP2734980B1 (en) Method for adaptive entropy coding of tree structures
KR101049699B1 (ko) 데이터의 압축방법
CN101783788B (zh) 文件压缩、解压缩方法、装置及压缩文件搜索方法、装置
US7764202B2 (en) Lossless data compression with separated index values and literal values in output stream
US8872677B2 (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
JP5913748B2 (ja) セキュアで損失のないデータ圧縮
CN104682966B (zh) 列表数据的无损压缩方法
KR20160047686A (ko) 분할된 클러스터 종류수 기준 데이터 분할을 이용한 인위적 엔트로피 확대를 이용한 데이터 압축 및 그 해제방법
KR20160106229A (ko) 문맥기반 분포데이터의 블럭화를 이용한 허프만 부호화의 효율화 방법 및 그 장치
KR20160100496A (ko) 바이너리 클러스터를 이용한 허프만 부호화 효율화 방법 및 그 장치
Sailunaz et al. Data compression considering text files
Chudasama et al. Survey of image compression method lossless approach
JP5626440B2 (ja) 数値データ列の符号化/復号化の方法および装置
Rani et al. A survey on lossless text data compression techniques
US7750826B2 (en) Data structure management for lossless data compression
KR20160102593A (ko) 분포데이터의 블럭화를 이용한 허프만 부호화의 효율화 방법 및 그 장치
KR101268934B1 (ko) 데이터 압축/해제장치 및 방법
KR20160049627A (ko) 바이너리 클러스터별 분할 및 출현빈도수 내림차순 정렬에 따라 1:1 유니버설 코드 대응을 통한 압축법의 효율화 방법
KR20160046083A (ko) 데이터 분할을 이용한 인위적 엔트로피 확대를 이용한 데이터 압축 및 그 해제방법
KR20160048607A (ko) 바이너리 클러스터 데이터 분할 및 유니버설 코드 대응을 통한 압축법의 효율화 방법
Azeem et al. A Survey: Different Loss-less Compression Techniques
Rawat et al. Evaluation of Burrows Wheeler Transform based image compression algorithm for multimedia applications

Legal Events

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