KR20160117883A - 모자이크 클러스터의 길이 분산 표준값을 이용한 이진데이터의 압축전송방법 - Google Patents

모자이크 클러스터의 길이 분산 표준값을 이용한 이진데이터의 압축전송방법 Download PDF

Info

Publication number
KR20160117883A
KR20160117883A KR1020150045861A KR20150045861A KR20160117883A KR 20160117883 A KR20160117883 A KR 20160117883A KR 1020150045861 A KR1020150045861 A KR 1020150045861A KR 20150045861 A KR20150045861 A KR 20150045861A KR 20160117883 A KR20160117883 A KR 20160117883A
Authority
KR
South Korea
Prior art keywords
mosaic
cluster
compressed
mosaic cluster
clusters
Prior art date
Application number
KR1020150045861A
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 KR1020150045861A priority Critical patent/KR20160117883A/ko
Publication of KR20160117883A publication Critical patent/KR20160117883A/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

Landscapes

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

Abstract

본 발명은,
원본이진데이터에 대하여 모자이크 클러스터단위로 분리하여 순차적으로 길이들의 분산값을 분삭하면서, 특정 모자이크클러스터까지의 길이값의 분산정보가 특정값이상일 경우에 압축대상 모자이크 클러스터를 설정하는 단계; 압축대상 모자이크 클러스터에 대하여 압축을 시행하되, 기준값이상인 최소길이로 압축하는 단계; 압축된 양을 유니버설 코드로 변환하여 압축모자이크 클러스터에 부가하는 단계; 다시 이후 모자이크 클러스터를 읽어들이면서 압축대상 모자이크 클러스터를 확인하여 압축과정을 반복하는 단계를 포함하는 압축방법 및 그 장치와 그 압축해제방법을 포함하고, 임의의 이진데이터를 전송함에 있어서, 실시간으로 압축 및 압축해제를 수행할 수 있고, 별도의 부호화 및 복호화를 위한 사전이 필요없이 실시간으로 전송을 가능하도록 하는 압축 및 해제 그리고 전송방법에 관한 발명이다.

Description

모자이크 클러스터의 길이 분산 표준값을 이용한 이진데이터의 압축전송방법{MOSAIC CLUSTER TRANSFER METHOD BY DISTINGUISHING STANDARD LENGTH VARIANCE OF MOSAIC CLUSTERS}
이진데이터의 압축전송
이진데이터의 압축전송
발명을 실시하기 위한 구체적인 내용에 상술
발명을 실시하기 위한 구체적인 내용에 상술
발명을 실시하기 위한 구체적인 내용에 상술
본 발명은, 임의의 이진데이터를 전송함에 있어서, 실시간으로 압축 및 압축해제를 수행할 수 있고, 별도의 부호화 및 복호화를 위한 사전이 필요없이 실시간으로 전송을 가능하도록 하는 압축 및 해제 그리고 전송방법에 관한 발명이다.
예를들어, 임의의 이진수 앞에 강제적으로 "1"을 붙이면, 반드시 "1"으로 시작하는 이진수 스트리밍을 만들수 있다.
예를들어, 2,064,386 비트의 이진수 데이터에 있어서 최상위 비트앞에 "1"을 추가하면, 아래와 같은 이진수 스트리밍이 생성된다.
11011010000110011110001000111100000101000011011000100011010111000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111110000000000000001100000000111111101111111100001001000000000000011....
이제, 최상위 비트로부터 하위비트로 1비트씩 스캔하여 이동하면서, 비트값의 변화가 생길때마다, 이진수 스트리밍을 개념적으로 분리하면 아래와 같다. "-"은 이진수 스트리밍의 분할을 개념적으로 표기하기 위한 약속이며 실제 데이터에 존재하는 것은 아니다. 이렇게 "-"로 분할된 이진수 덩어리를 본 발명에서는 바이너리클러스터라고 명명하기로 한다.
11-0-11-0-1-0000-11-00-1111-000-1-000-1111-00000-1-0-1-0000-11-0-11-000-1-000-11-0-1-0-111-0000-1-0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000-11111-000000000000000-11-00000000-1111111-0-11111111-0000-1-00-1-0000000000000-11....
상기 결과에서 보듯이, "1"로 시작하는 이진수 스트리밍 데이터의 경우
짝수번째 바이너리 클러스터는 반드시 "0"으로만 이루어진 이진수로 구성되고, 홀수번째 바이너리 클러스터는 반드시 "1"로만 이루어진 이진수로 구성됨을 알 수 있다.
이때, 짝수번째 바이너리 클러스터를 동일한 길이의 "1"로만 이루어진 이진수로 변환하여도, 복호화시에, 짝수번째 바이너리 클러스터의 경우, 동일한 길이의 "0"으로만 이루어진 이진수로 바꾸어 주면 정확한 복호화가 가능하다. 따라서 아래와 같이
11-1-11-1-1-1111-11-11-1111-111-1-111-1111-11111-1-1-1-1111-11-1-11-111-1-111-11-1-1-1-111-1111-1-1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111-11111-111111111111111-11-11111111-1111111-1-11111111-1111-1-11-1-1111111111111-11....
바이너리 클러스터를 변환하여도 무방하며, 이렇게 "1"로만 이루어진 바이너리 클러스터를 본 발명에서 특별히 모자이크 클러스터라고 하자.
이제 이진스트리밍 데이터의 최상위부터 최하위 비트 방향으로 순차적으로 읽어가면서, 상기와 같이 모자이크 클러스터를 분리하고 및 각 모자이크 클러스터의 길이정보를 확인하면서, 압축대상이 되는 모자이크 클러스터가 나타나는지를 확인한다. 압축대상이 되는 모자이크 클러스터가 나타나는지는, 순차적으로 읽어들인 모자이크 클러스터의 길이들과 현재 읽고 있는 모자이크 클러스터의 길이정보정보까지를 포함한 분산값이 특정한 미리정하여진 값을 넘어설경우에 압축대상 모자이크 클러스터라고 하고 압축을 시행한다.
아래 표1는 순차적으로 원본스트리밍 데이터로부터 모자이크 클러스터를 읽어내고,모자이크 클러스터의 길이정보를 분석하면서, 분산값을 확인한 결과이다.
아래 표1처럼, 모자이크 클러스터를 순차적으로 분리해내면서, 길이값을 함께 분석한다. 예를들어, 첫번째 및 두번째 모자이크 클러스터를 수신하면, 이 두 모자이크 클러스터의 길이의 분산값은 0.5이다. 다음으로, 1번째~3번째 모자이크 클러스터를 수신하면, 이들의 길이의 분산값은 0.3333 이 되는 것과 같은 방식을 반복한다. 분리되는 모자이크 클러스터까지의 분산값을 계산한뒤, 기준값 이하일 경우에는, 바로 모자이크 클러스터를 압축하지 않고 저장하는데, 저장방법은 첫번째 모자이크 클러스터는 그대로 저장한다면, 다음 모자이크 클러스터는 비트반전하여 저장하고, 다음 모자이크 클러스터는 그대로 저장하는 방식으로 비트반전을 번갈아 가면서 시행하여 압축결과데이터에 이어서 저장한다. 이와 같은 방식으로 저장하여야만, 원본데이터를 복구하기 위한 모자이크 클러스터들을 정확하게 인식할 수 있다.
모자이크 클러스터 모자이크 클러스터길이 분산
11 2 N/A
1 1 0.5
11 2 0.3333
1 1 0.3333
1 1 0.3
1111 4 1.3667
11 2 1.1429
11 2 0.9821
1111 4 1.3611
111 3 1.2889
1 1 1.2909
111 3 1.2424
1111 4 1.3974
11111 5 1.8077
1 1 1.8286
1 1 1.8292
1 1 1.8162
1111 4 1.8824
11 2 1.7836
1 1 1.7763
11 2 1.6905
111 3 1.6364
1 1 1.6324
111 3 1.587
11 2 1.5233
1 1 1.5215
1 1 1.5157
1 1 1.5066
111 3 1.4803
1111 4 1.5448
1 1 1.5398
1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 130 512.2
이렇게 반복하다 보면, 표1의 마지막줄에 보듯, 32번째에서 갑자기 130비트의 모자이크 클러스터가 출현하게 되는데, 1번째~32번째까지의 모자이크 클러스터들의 길이의 분산값이 512.2가 되면서, 본 발명의 실시례에서 미리 설정한 100을 넘어선다. 따라서, 130비트의 32번째 모자이크 클러스터는 압축 대상 모자이크 클러스터가 된다.
이렇게 선정된 압축대상 모자이크 클러스터의 압축방법은 다음과 같다.
먼저 압축대상 모자이크 클러스터에 대하여 130비트로부터 시작하여 1비트씩 줄여가면서, 1번째~32번째 모자이크 클러스터까지의 분산값을 다시 계산하여 보았을때, 마지막으로 100을 넘을때의 길이를 압축대상 최소길이라고 정의하면 59비트일때 분산값이 102.4476이 되고, 58비트일때 98.92641 이 되는데, 따라서, 압축대상 모자이크 클러스터는 130비트에서 59비트까지 71비트를 줄일 수가 있다.
압축화일에는, 이렇게 원본 모자이크 클러스터 130비트에서 59비트로 줄어든 압축모자이크 클러스터를 부가하고, 71비트를 줄였다는 정보를 유니버설 코드로 압축모자이크 클러스터에 이어서 부가하면 되는데,
본 발명에서의 유니버설 코드는 정수 0부터 시작하여, 임의의 정수에 대하여 순차적으로 아래와 같이 매핑이 가능하다. 즉, "11"부터 시작하여, "100", "1000", "10000", "100000"의 n자리수(n>=3)의 1개의 "1"과 n-1개의 "0"으로 구성된 백그라운드 유니버설 코드 이진수에서, 최하위 비트로부터 순차적으로 "1"을 채워나가면서 생성되는 이진수를 유니버설 코드로 하되, "11"을 제외한 나머지 유니버설 코드에서는 "1"다음에 반드시"0"이 1개이상 포함되도록 한다. 만약, 최하위 비트로부터 순차적으로 "1"을 채워나가다가 상기조건을 만족시키지 못하면, n을 하나 증가시켜서 다음 백그라운드 유니버설 코드로부터 상기 과정을 반복한다. 이와 같은 규칙에 따라 아래 표2에 유니버설 코드를 일부 나열하였다.

정수 유니버설코드 유니버설코드길이
0 11 2
1 101 3
2 1001 4
3 1011 4
4 10001 5
5 10011 5
6 10111 5
7 100001 6
8 100011 6
9 100111 6
10 101111 6
11 1000001 7
12 1000011 7
13 1000111 7
14 1001111 7
15 1011111 7
16 10000001 8
17 10000011 8
18 10000111 8
19 10001111 8
20 10011111 8
21 10111111 8
22 100000001 9
23 100000011 9
24 100000111 9
25 100001111 9
26 100011111 9
27 100111111 9
28 101111111 9
29 1000000001 10
30 1000000011 10
31 1000000111 10
32 1000001111 10
33 1000011111 10
34 1000111111 10
35 1001111111 10
36 1011111111 10
37 10000000001 11
38 10000000011 11
39 10000000111 11
40 10000001111 11
41 10000011111 11
42 10000111111 11
43 10001111111 11
44 10011111111 11
45 10111111111 11
46 100000000001 12
47 100000000011 12
48 100000000111 12
49 100000001111 12
50 100000011111 12
51 100000111111 12
52 100001111111 12
53 100011111111 12
54 100111111111 12
55 101111111111 12
56 1000000000001 13
57 1000000000011 13
58 1000000000111 13
59 1000000001111 13
60 1000000011111 13
61 1000000111111 13
62 1000001111111 13
63 1000011111111 13
64 1000111111111 13
65 1001111111111 13
66 1011111111111 13
67 10000000000001 14
68 10000000000011 14
69 10000000000111 14
70 10000000001111 14
71 10000000011111 14
72 10000000111111 14
... ... ...
한편, 압축대상 모자이크 클러스터 130비트에서 59비트로 감소시키고, 압축해제를 위해서, 71비트 감소에 대하여 모자이크 클러스터에 이어서 상기 유니버설 코드를 부가해야 하는 방법을 구체적인 그림으로 아래에 보인다. 압축대상 모자이크 클러스터는 결국 압축모자이크 클러스터에 이어서 유니버설 코드부를 비트 반전하여 부가된 형태의 최종 압축데이터로 변환된다.
그런데 상기 설명하였듯이 압축데이터 생성시 모자이크 클러스터를 순차적으로 비트반전을 번갈아 가면서 수행하기 때문에, 본 실시례의 압축대상 모자이크 클러스터는 출현순번에 따르면 "0"으로 비트반전된 형태로 변환되는 순번에 위치하고 있으므로, "0"으로 비트반전된 형태의 압축모자이크 클러스터가 압축데이터의 일부로서 저장된다. 따라서, "0"으로 끝난 이후 부가되는 유니버설 코드는 "10"으로 시작하는 경우와 "11"인 경우 모두, 유니버설 코드에 대하여는 별도의 비트 반전은 필요없이 그대로 부가하면 된다.
Figure pat00001

그런데 만약, 압축모자이크 클러스터가 "1"로 비트반전 없이 저장되는 형태였다면, 아래와 같이 이어지는 유니버설 코드는 비트 반전하여 저장하여야 한다.
Figure pat00002

한편, 압축모자이크 클러스터와 유니버설 코드에 이어서, 다음 모자이크 클러스터의 경우의 반전 여부는, 유니버설 코드부의 최하위 비트값이 "1" 이었다면, 모자이크 클러스터는 "0"으로 비트반전된 상태로 새롭게 시작하고, "0"이었다면, 모자이크 클러스터는 "1"로 비트반전된 형태로 저장한다. 그리고 다시 상술한것처럼, 이어서 계속 비트반전은 순번에 따라 번갈아 가면서 압축데이터로서 저장하는것은 동일한 과정이다.
표3은 표1의 32번째까지의 모자이크 클러스터에 대해 압축수행한 결과를 상세히 보인 내용이다.
모자이크 클러스터 원본모자이크클러스터길이 압축결과 압축모자이크클러스터길이 압축 모자이크클러스터부 유니버설코드부 유니버설코드부길이 초기분산 압축후분산
11 2 11 2 11
1 1 0 1 0
11 2 11 2 11
1 1 0 1 0
1 1 1 1 1
1111 4 0000 4 0000
11 2 11 2 11
11 2 00 2 00
1111 4 1111 4 1111
111 3 000 3 000
1 1 1 1 1
111 3 000 3 000
1111 4 1111 4 1111
11111 5 00000 5 00000
1 1 1 1 1
1 1 0 1 0
1 1 1 1 1
1111 4 0000 4 0000
11 2 11 2 11
1 1 0 1 0
11 2 11 2 11
111 3 000 3 000
1 1 1 1 1
111 3 000 3 000
11 2 11 2 11
1 1 0 1 0
1 1 1 1 1
1 1 0 1 0
111 3 111 3 111
1111 4 0000 4 0000
1 1 1 1 1
1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 130 00000000000000000000000000000000000000000000000000000000000100000000011111 59 00000000000000000000000000000000000000000000000000000000000 100000000011111 15 512.2006 102.4476
이제 다음 33번째 모자이크 클러스터부터 다시 데이터를 읽어들이면서 분산값을 계산하게 된다.
이때, 분산값을 구하는 기준은 상기 표3의 마지막 압축된 모자이크 클러스터를 길이를 포함하여(유니버설 코드부는 제외함) 이후 다음 모자이크 클러스터들의 길이값들을 모아서 분산값을 계산해나갈 수도 있는데, 이것이 가능한 이유는 압축해제시에는 비트반전과정을 순차적으로 진행함을 통해 모자이크 클러스터를 ㅈ인식하면정확히 , 압축해제 대상 모자이크 클러스터(즉 압축모자이크 클러스터)를 발견하면 이후 유니버설 코드부는 동일비트가 연속되어 2개 있는 형태(즉, "11"을 상징)이거나 AB..BC..C 형태와 같이(A="1", B="0", C="1" 또는 A="0", B="1", C="0")과 같은 1비트의 A를 포함하여 3번의 비트변경이 있는 형태임을 압축해제부가 인식할 수 있기 때문에, 압축모자이크 클러스터만을 별도로 인식할 수 있다. 따라서 압축 모자이크 클러스터의 길이를 생각하면서 다음 모자이크 클러스터와의 길이를 구하고 이들의 분산값을 이용하여 이후 모자이크 클러스터중에 압축 클러스터 대상인지를 파악하는 기존의 과정을 반복하면서 진행해도 문제없이 압축화 복호화 된다.
한편, 상기 표3 이후부터 아예 새롭게 모자이크 클러스터를 처음 클러스터라고 간주하고 분산값을 분석하는 방법이 있다, 전자가 보다 압축효율이 높지만 다소 복호화 알고리즘이 복잡하고, 후자는 복호화시에 간명하다.
본 명세서에서는 전자의 예시를 실시례로 설명하고자 한다.
모자이크 클러스터 원본모자이크클러스터길이 압축결과 압축모자이크클러스터길이 압축 모자이크클러스터부 유니버설코드부 유니버설코드부길이 초기분산 압축후분산
1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 130 00000000000000000000000000000000000000000000000000000000000100000000011111 59 00000000000000000000000000000000000000000000000000000000000 100000000011111 15
11111 5 010001 1 0 10001 5 1458 1682
전자의 예에 따라, 59비트(직전 압축모자이크 클러스터 길이)와 바로 이어서 5비트의 모자이크가 출현하면,이때의 분산(본 실시례에서의 분산은 표본분산을 의미함)은 1458이므로, 미리 설정한 기준인 100을 넘었다. 따라서, 5비트짜리 모자이크 클러스터는 압축대상 모자이크 클러스터이다. 상기 첫번째 압축과정과 동일하게, 1비트씩 압축대상 모자이크 클러스터의 비트수를 감소시키면서, 분산이 언제까지 100을 넘길수 있을지를 확인하면되는데 본 실시례에서는 비트가 감소될수록 오히려 분산값이 더욱 커진다. 이런 경우에도 동일하게 계속 비트감소를 실시하되, 다만 모자이크 클러스터는 최소 1비트 이상이어야 하므로, 4비트를 감소시키는 것이 최대로 감소시키는 것이고 이때 분산은 1682가 된다. 한편, 5비트의 압축바이너리 클러스터의 압축모자이크 클러스터의 비트반전 저장 여부를 확인하기 위해서, 직전 압축데이터를 보면, 직전 압축데이터에는 압축 모자이크클러스터와 유니버설 코드부가 붙어있고, 이것의 최후 비트가 "1"이므로, 현재 압축모자이크 클러스터는 "0"으로 비트반전하여 1비트의 "0"으로 저장되고, 4비트감소를 뜻하는 유니버설코드는 표2에서 확인해보면 "10001" 이다. 한편, 모자이크 클러스터가 "0"으로 비트반전되면, 유니버설 코드는 그대로 비트반전없이 이어붙일수 있다. 따라서, "010001" 이 최종압축 데이터가 된다.
이제 다시 계속진행하여 표4의 5비트의 모자이크 클러스터에 대한 압축 모자이크 클러스터의 길이를 포함해서, 이어서 계속 다음 모자이크 클러스터를 읽어오면서, 모자이크 클러스터부의 길이 기준 분산이 미리 설정한 값인 본 실시례이 100을 처음으로 넘길때까지의 새로운 모자이크 클러스터들의 수집결과는 아래 표5와 같다.
모자이크 클러스터 원본모자이크클러스터길이 압축결과 압축모자이크클러스터길이 압축 모자이클러스터부 유니버설코드부 유니버설코드부길이 초기분산 압축후분산
11111 5 010001 1 0 10001 5
111111111111111 15 000000000000000 15 000000000000000
11 2 11 2 11
11111111 8 00000000 8 00000000
1111111 7 1111111 7 1111111
1 1 0 1 0
11111111 8 11111111 8 11111111
1111 4 0000 4 0000
1 1 1 1 1
11 2 00 2 00
1 1 1 1 1
1111111111111 13 0000000000000 13 0000000000000
11 2 11 2 11
1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 94 000000000000000000000000000000000000000101111111111 39 000000000000000000000000000000000000000 101111111111 12 587.1703 103.956
표5를 보면 세번째 압축대상 모자이크 클러스터를 찾게 되는데 94비트짜리의 모자이크 클러스터를 만나면, 직전 압축대상 모자이크 클러스터의 압축모자이크 클러스터 길이포함하여 현재 모자이크 클러스터까지의 길이에 대한 분산값이 처음으로 100을 넘어선 587.17 이 된다. 따라서, 94비트의 모자이크 클러스터는 압축대상 모자이크 클러스터가 된다. 나머지 그 사이의 모자이크 클러스터들은 그대로 비트반전만 순번에 따라 번갈아 가면서 진행하면서 압축데이터로 변환함도 동일하다.
94비트의 모자이크 클러스터의 길이를 1비트씩 감소시키면서, 분산의 변화를 확인하면서, 100을 넘는 최소의 길이가 39비트임을 알수있고, 55비트를 감소시킴을 계산할 수 있다. 따라서, 압축모자이크 클러스터는 39비트의 "1"로만 이루어진 이진수인데, 직전 압축모자이크크러스터가 "11" 로 비트반전없이 압축데이터로 되는 순번이었으므로, 현재 압축모자이크 클러스터 39비트는 "0"으로 반전하여 저장되고, 이어서, 55를 나타내는 유니버설 코드는 표2에 따르면 101111111111 이고, 압축모자이크 클러스터의 최후비트가 "0"이므로, 유니버설 코드는 별도의 비트반전없이 부가되어 최종 압축데이터로 저장된다.
이러한 과정을 전체 이진데이터를 스캔하면서, 모자이크 클러스터를 분리하여, 그 길이값들의 분산을 이용하여 압축대상 모자이크 클러스터를 확인한뒤 압축을 진행하면 된다. 한편 압축대상 모자이크 클러스터가 더이상 찾아지지 않고 원본데이터의 끝에 도달하면 압축과정은 종료된다.
압축데이터는 결국 표3,표4,표5에서의 압축데이터를 물리적으로 연속된 형태로 저장된 결과값들이 되겠으며, 엔트로피 부호화나 LZW등 기존 알고리즘과 달리 부호화 및 복호화를 위한 사전정보는 필요치 않으며, 표2의 유니버설 코드는 부호화부와 복호화부에서 자체적으로 연산을 통해 자동적으로 생성가능하거나 임의의 정수가 주어지면 연산을 통해 유니버설 코드를 생성할 수 있기 때문에 사전정보로서 압축데이터에 포함될 필요가 없다.
압축해제 방법은, 이러한 압축데이터를 상위부터 하위방향으로 순차적으로 읽어오면서, 비트값의 변화가 생길때마다 압축모자이크 클러스터를 인식하고, 그 길이들의 분산값을 확인하면서, 분산값이 압축시에 미리 설정된 값(본 실시례에서는 100)을 넘지 못할경우에는, 압축모자이크 클러스터 각각을 바로 비트반전 순번에 따라 비트반전이 필요한 경우(즉 순번에서 직전 순번에 비트반전 없었다면, 이번 순번에서는 비트반전이 필요함) 비트반전하여 바로 바이너리 클러스터로 간주할 수 있다.이렇게 원본데이터가 순차적으로 복구된다.
이러한 과정을 거치다가, 압축데이터로부터 특정 압축모자이크 클러스터를 만났고, 그 길이까지 포함하여 분산값이 100을 넘어서면 그 압축모자이크 클러스터가 바로 압축해제 대상 모자이크 클러스터가 된다. 이 압축해제 대상 모자이크 클러스터를 우선 복호하여 모자이크 클러스터로 복호화하고, 이후 부가된 유니버설 코드부를 추가로 복호화하는데, 이후 부가된 유니버설 코드부의 분리방법은 압축 해제 대상 모자이크 클러스터 이후에 연속된 동일한 값으로 구성된 2비트가 있을 경우에는, 단지 2비트의 값만이 유니버설 코드부임을 알수 있고, "11"이라는 유니버설 코드를 의미하고, 또 다른 경우로 압축 해제 대상 모자이크 클러스터 이후에 1비트의 값 + 직전값에서 반전된 n 비트 + 다시 직전값에서 반전되 m 비트의 이진수 패턴이 있다면, 그 패턴은 "100..001...1" 과 같은 유니버설 코드를 의미하는것이다. 1비트+n비트+m비트의 이진수가 유니버설 코드부임을 알 수 있는 것이다.
이렇게 유니버설 코드부에서 유니버설 코드를 확인하면, 표2와 같은 정수별 유니버설 코드 매핑테이블 또는 공식을 이용하여 정수를 확인할 수 있고, 그 정수값만큼을 압축해제 대상 모자이크클러스터의 길이가 더 길어지면 원본 모자이크 클러스터와 동일한 길이로 복구될 수 있다.
아래 표6은 상기 과정을 표3에서 생성된 압축데이터를 기준으로 다시 설명하고자 나타내었다.
아래 표6을 살펴보면, 압축결과의 연속된 형태가 압축데이터이다. 즉 "110110100001100111100010001111...."
모자이크 클러스터 원본모자이크클러스터길이 압축결과 압축모자이크클러스터길이 압축 모자이크클러스터부 유니버설코드부 유니버설코드부길이 초기분산 압축후분산
11 2 11 2 11
1 1 0 1 0
11 2 11 2 11
1 1 0 1 0
1 1 1 1 1
1111 4 0000 4 0000
11 2 11 2 11
11 2 00 2 00
1111 4 1111 4 1111
111 3 000 3 000
1 1 1 1 1
111 3 000 3 000
1111 4 1111 4 1111
11111 5 00000 5 00000
1 1 1 1 1
1 1 0 1 0
1 1 1 1 1
1111 4 0000 4 0000
11 2 11 2 11
1 1 0 1 0
11 2 11 2 11
111 3 000 3 000
1 1 1 1 1
111 3 000 3 000
11 2 11 2 11
1 1 0 1 0
1 1 1 1 1
1 1 0 1 0
111 3 111 3 111
1111 4 0000 4 0000
1 1 1 1 1
1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 130 00000000000000000000000000000000000000000000000000000000000100000000011111 59 00000000000000000000000000000000000000000000000000000000000 100000000011111 15 512.2006 102.4476
순차적으로 압축결과에서 비트반전이 있을때마다 압축모자이크 클러스터를 분리해낼수 있다.
11-0-11-0-1-0000-11-00-1111-000-1-000-1111-....-00000000000000000000000000000000000000000000000000000000000-[1-000000000-11111]-...
이렇게 분리된 압축 모자이크 클러스터는 비트반전의 순번에 따라 변환한뒤 바로 바이너리 클러스터로 간주하여 원본데이터를 복구해나간다. 표6을 보면, 이러한과정을 거치다가, 32번째 압축모자이크 클러스터 59비트를 분리하고 그동안의 압축모자이크 클러스터의 길이를 포함하여 분산을 구해보면, 처음으로 100이 넘는 102.447이 나온다. 따라서 32번?? 59비트짜리의 압축모자이크 클러스터는 압축해제 대상 모자이크 클러스터이고, 따라서 몇비트를 더 압축해제해야할지를 결정하기 위해 이후 부가된 유니버설코드부를 추가로 해독하게 된다. 압축모자이크 클러스터에서 처음으로 비트변화가 일어나서 유지된 길이가 2비트일경우에는, 유니버설 코드는 "11"을 상징하는 것이다. 예를들어, 000000110... 이라면, "000000" 이 압축해제대상 모자이크 클러스터이고, "11" 이 유니버설 코드인것이다.
다른 경우로, AB..BC...C 패턴일 경우(A="1", B="0", C="1" 또는 A="0", B="1", C="0"일 경우) 이 패턴이 바로, "10..01...1"을 의미하는 유니버설 코드인 것이다.
예를들어, 000000100001110... 이면, "000000" 이 압축해제 대상 모자이크 클러스터이고 "10000111" 이 유니버설 코드인것이고 다음 "0"은 참고로 다시 이후의 압축모자이크클러스터를 상징하는 값의 일부인 것이다.
따라서, 상기 표6을 다시보면 59비트의 압축해제대상 모자이크 클러스터이후의
100000000011111 은 유니버설 코드를 의마하고, 이 값은 표2를 보듯이 71을 상징하므로 71비트가 신장된 것이 바로 압축해제 모자이크 클러스터란 의미이며, 비트반전 순번에 따라 비트반전여부를 결정하여 수행한 결과가 바이너리 클러스터로 복호화되는 것이다.
다음으로 압축해제 대상 모자이크 클러스터를 찾는 방식은 상기와 동일하며, 직전 압축해제 대상 모자이크 클러스터의 길이를 포함하여 이후 수집된 압축모자이크 클러스터의 길이값들의 분산값의 특정 수치가 넘는 경우에 다시 압축해제대상 모자이크 클러스터이며 이후 부가된 유니버설 코드를 획득하여 압축해제하여 다시 비트반전순서에 따라 비트반전한뒤, 바이너리 클러스터로 변환하여 압축해제함은 동일하다.이러한 과정을 압축데이터의 끝까지 진행하면서 반복하게 된다.
이렇게 최종 복구된 원본데이터에 있어서, 압축시에 최초부가한 최상위 비트의 "1"인 compulsory header를 제거하면 완벽하게 원본데이터와 일치함을 알수있다.
본발명은 압축사전이 필요없고, 순차적으로 상위에서 하위방향으로 이동하면서 압축 및 압축해제가 가능하므로 대규모 데이터의 압축시의 속도이득이 있고 실시간 전송처리가 가능하다.

Claims (1)

  1. 원본이진데이터에 대하여 모자이크 클러스터단위로 분리하여 순차적으로 길이들의 분산값을 분삭하면서, 특정 모자이크클러스터까지의 길이값의 분산정보가 특정값이상일 경우에 압축대상 모자이크 클러스터를 설정하는 단계; 압축대상 모자이크 클러스터에 대하여 압축을 시행하되, 기준값이상인 최소길이로 압축하는 단계; 압축된 양을 유니버설 코드로 변환하여 압축모자이크 클러스터에 부가하는 단계; 다시 이후 모자이크 클러스터를 읽어들이면서 압축대상 모자이크 클러스터를 확인하여 압축과정을 반복하는 단계를 포함하는 압축방법 및 그 장치


KR1020150045861A 2015-04-01 2015-04-01 모자이크 클러스터의 길이 분산 표준값을 이용한 이진데이터의 압축전송방법 KR20160117883A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020150045861A KR20160117883A (ko) 2015-04-01 2015-04-01 모자이크 클러스터의 길이 분산 표준값을 이용한 이진데이터의 압축전송방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150045861A KR20160117883A (ko) 2015-04-01 2015-04-01 모자이크 클러스터의 길이 분산 표준값을 이용한 이진데이터의 압축전송방법

Publications (1)

Publication Number Publication Date
KR20160117883A true KR20160117883A (ko) 2016-10-11

Family

ID=57161977

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150045861A KR20160117883A (ko) 2015-04-01 2015-04-01 모자이크 클러스터의 길이 분산 표준값을 이용한 이진데이터의 압축전송방법

Country Status (1)

Country Link
KR (1) KR20160117883A (ko)

Similar Documents

Publication Publication Date Title
US6771824B1 (en) Adaptive variable length decoding method
JP4479530B2 (ja) データ圧縮装置、及びデータ復元装置
KR20110094046A (ko) 정수-값 데이터의 스트림을 압축하는 시스템 및 방법
US7375660B1 (en) Huffman decoding method
CN104378634B (zh) 输入符号二值化的方法以及从码字中产生索引值的方法
GB2539239A (en) Encoders, decoders and methods
KR100636370B1 (ko) 결정 비트를 이용한 부호화 장치 및 그 방법과 그에 따른복호화 장치 및 그 방법
KR20160106229A (ko) 문맥기반 분포데이터의 블럭화를 이용한 허프만 부호화의 효율화 방법 및 그 장치
KR20160117883A (ko) 모자이크 클러스터의 길이 분산 표준값을 이용한 이진데이터의 압축전송방법
KR20160100496A (ko) 바이너리 클러스터를 이용한 허프만 부호화 효율화 방법 및 그 장치
KR101612281B1 (ko) 이진 데이터의 압축 및 복원 방법과 장치
KR101652735B1 (ko) 이진 데이터의 압축 및 복원 방법과 장치
US20020196167A1 (en) NEO method and system for lossless compression and decompression
KR101760070B1 (ko) 데이터 부호화 및 복호화 방법과 장치
KR20160102593A (ko) 분포데이터의 블럭화를 이용한 허프만 부호화의 효율화 방법 및 그 장치
KR101632116B1 (ko) 이진 데이터의 압축 및 복원 방법과 장치
KR101573983B1 (ko) 데이터 압축 및 데이터 복원 방법과 장치
KR20210012580A (ko) 이진데이터의 압축 방법 및 장치
US20160323603A1 (en) Method and apparatus for performing an arithmetic coding for data symbols
KR101752281B1 (ko) 유티에프-8 코드 문자의 압축 방법 및 장치
Rawat et al. Evaluation of Burrows Wheeler Transform based image compression algorithm for multimedia applications
KR101632115B1 (ko) 이진 데이터의 압축 및 복원 방법과 장치
KR101578608B1 (ko) 일반 코드 생성을 위한 데이터 부호화 장치 및 데이터 복호화 장치
KR20170047484A (ko) 에러에 강한 유니버설 코드의 연산을 이용한 생성 및 복호화방법 및 그 장치
KR20180002145A (ko) Utf-8코드로 구성된 데이터의 유니버설 코드를 이용한 실시간 무손실 무사전 압축방법