KR101632116B1 - 이진 데이터의 압축 및 복원 방법과 장치 - Google Patents

이진 데이터의 압축 및 복원 방법과 장치 Download PDF

Info

Publication number
KR101632116B1
KR101632116B1 KR1020140153198A KR20140153198A KR101632116B1 KR 101632116 B1 KR101632116 B1 KR 101632116B1 KR 1020140153198 A KR1020140153198 A KR 1020140153198A KR 20140153198 A KR20140153198 A KR 20140153198A KR 101632116 B1 KR101632116 B1 KR 101632116B1
Authority
KR
South Korea
Prior art keywords
mosaic
binary
clusters
binary data
data
Prior art date
Application number
KR1020140153198A
Other languages
English (en)
Other versions
KR20160021416A (ko
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 김정훈
Publication of KR20160021416A publication Critical patent/KR20160021416A/ko
Application granted granted Critical
Publication of KR101632116B1 publication Critical patent/KR101632116B1/ko

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/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

본 발명은 이진데이터 압축장치에 의해 수행되는 이진데이터의 압축방법으로 서, 원본 이진데이터의 각 비트의 값이 반전될 때마다 상기 원본 이진데이터를 분할하여 복수의 바이너리 클러스터를 획득하는 단계; 상기 복수의 바이너리 클러스터 중 최상위비트로부터 짝수번째에 있는 바이너리 클러스터의 각 비트값을 반전시키는 단계; 상기 원본 이진데이터로부터 복수의 모자이크 클러스터를 획득하는 단계로서, 상기 모자이크 클러스터는 상기 반전시키는 단계 후 상기 원본 이진데이터로부터 얻어지는 각 분할된 바이너리 클러스터를 의미하는, 단계; 상기 복수의 모자이크 클러스터의 각 값과, 유니버설 코드 간의 대응관계를 정의한 매핑사전을 생성하는 단계; 및 상기 매핑사전을 참조하여, 상기 원본 이진데이터로부터 압축데이터를 생성하는 단계를 포함하되, 상기 유니버설 코드는 적어도 하나의 1 또는 0으로만 이루어진 이진수를 의미하는 것을 특징으로 하는 이진 데이터의 압축방법에 관한 것이다.

Description

이진 데이터의 압축 및 복원 방법과 장치{BINARY DATA COMPRESSION AND RESTORATION METHOD AND APPARATUS}
본 발명은 이진 데이터의 압축 및 복원 방법과 장치에 관한 것으로서, 보다 구체적으로는 간단한 연산과 하드웨어적 구성을 통해 이진 데이터를 효과적이고 효율적으로 압축하고 복원할 수 있을 뿐만 아니라 데이터 전송 속도와 효율도 향상시킬 수 있는 이진 데이터의 압축 및 복원 방법과 장치에 관한 것이다.
일반적으로, 통상의 전송 채널에서 이용 가능한 주파수 대역폭은 제한되어 있으므로, 많은 양의 데이터를 전송하기 위해서 모뎀과 같은 다양한 전송 시스템은 전송 데이터의 양을 압축하거나 줄일 수 있는 효과적인 데이터 압축 기법을 이용해 왔다.
다양한 압축기법 중의 하나로서, 국제 전기 통신 동맹(ITU : International Telecommunication Union)에 의해 표준화된 부호화 알고리즘으로, 모뎀과 같은 데이터 전송 시스템에서 채용하고 있는 CCITT V.42 bis 가 있다. 이 부호화 표준안에 적용된 기초는 Ziv-Lempel code(ZLC)이며, 이 방식은 입력 데이터로부터 적응적으로 사전을 형성해 가면서 앞의 입력 데이터와 동일한 구문(phrase)이 저장되어 있는 사전의 주소값을 부호어로 전송하는 방법이다. 사전화(dictionary) 작업은 입력 데이터와 계속적인 스트링 매칭(string matching)을 수행하여 최대 길이의 매칭 스트링에 매칭안된 문자를 결합하여 사전에 추가하는 과정으로 사전을 업데이트한다.
그러나, 이러한 종래의 압축 방식은 데이터의 압축 및 복원에 대한 처리 연산이 복잡하고 비교적 고사양의 하드웨어적 장치를 필요로 하며, 처리 속도의 향상에 제한이 따르고 압축 결과값에 대한 신뢰성을 높이기 힘든 문제점이 있었다.
본 발명의 배경기술은 대한민국 공개특허공보 제 1999-0022960호(1999. 3. 25 공개)에 개시되어 있다.
본 발명이 이루고자하는 기술적 과제는, 간단한 연산과 하드웨어적 구성을 통해 이진 데이터를 신속하고 효율적으로 압축하고 복원할 수 있고, 압축률도 뛰어나며 압축 데이터 및 복원 데이터의 신뢰성도 높일 수 있을 뿐만 아니라 데이터 전송시 전송효율과 속도도 향상시킬 수 있는 이진 데이터의 압축 및 복원 방법과 장치를 제공하는 데에 있다.
본 발명의 일측면에 따르면, 본 발명은 이진데이터 압축장치에 의해 수행되는 이진데이터의 압축방법으로서, 원본 이진데이터의 각 비트의 값이 반전될 때마다 상기 원본 이진데이터를 분할하여 복수의 바이너리 클러스터를 획득하는 단계; 상기 복수의 바이너리 클러스터 중 최상위비트로부터 짝수번째에 있는 바이너리 클러스터의 각 비트값을 반전시키는 단계; 상기 원본 이진데이터로부터 복수의 모자이크 클러스터를 획득하는 단계로서, 상기 모자이크 클러스터는 상기 반전시키는 단계 후 상기 원본 이진데이터로부터 얻어지는 각 분할된 바이너리 클러스터를 의미하는, 단계; 상기 복수의 모자이크 클러스터의 각 값과, 유니버설 코드 간의 대응관계를 정의한 매핑사전을 생성하는 단계; 및 상기 매핑사전을 참조하여, 상기 원본 이진데이터로부터 압축데이터를 생성하는 단계를 포함하되, 상기 유니버설 코드는 적어도 하나의 1 또는 0으로만 이루어진 이진수를 의미하는 것을 특징으로 하는 이진 데이터의 압축방법을 제공한다.
본 발명에서, 상기 압축데이터를 생성하는 단계는, 상기 매핑사전을 참조하여, 상기 원본 이진데이터에 포함된 각 모자이크 클러스터들을 이에 대응하는 유니버설 코드들로 변환하는 단계; 상기 변환된 유니버설 코드들 중 짝수번째에 있는 유니버설 코드들의 각 비트값을 반전시키는 단계; 및 상기 유니버설 코드들을 결합하여 압축데이터를 생성하는 단계를 포함하는 것을 특징으로 한다.
본 발명에서, 상기 매핑사전은 오름차순으로 정렬된 상기 복수의 모자이크 클러스터의 각 값과, 오름차순으로 순차적으로 정렬된 유니버설 코드 간의 대응관계를 정의한 것임을 특징으로 한다.
본 발명에서, 상기 매핑사전을 생성하는 단계에서, 상기 이진데이터 압축장치는 오름차순으로 정렬된 상기 복수의 모자이크 클러스터의 각 값과 오름차순으로 순차적으로 정렬된 유니버설 코드의 값이 달라질 때부터, 상기 복수의 모자이크 클러스터의 각 값과 상기 유니버설 코드 간의 대응관계를 정의하여 상기 매핑사전을 생성하는 것을 특징으로 한다.
본 발명에서, 상기 매핑사전을 생성하는 단계에서, 상기 이진데이터 압축장치는 오름차순으로 정렬된 상기 복수의 모자이크 클러스터의 각 값을 상위비트 방향 또는 하위비트방향으로 일렬로 배열하여 생성하되, 상위비트 방향 또는 하위비트방향으로 짝수번째 모자이크 클러스터의 각 비트값을 반전시켜 생성하는 것을 특징으로 한다.
본 발명에서, 상기 매핑사전을 생성하는 단계에서, 상기 오름차순으로 정렬된 복수의 모자이크 클러스터의 각 비트길이에 대응하는 이진수값들과, 오름차순으로 순차적으로 정렬된 유니버설 코드 간의 대응관계를 정의하여 상기 매핑사전을 생성하는 것을 특징으로 한다.
본 발명에서, 상기 매핑사전을 생성하는 단계에서, 특정 비트길이가 되도록 상기 이진수값들의 각각에 적어도 0개 이상의 "0"을 추가하고, 이들 이진수값들을 상위비트 방향 또는 하위비트방향으로 일렬로 배열하여 상기 매핑사전을 생성하는 것을 특징으로 한다.
본 발명에서, 상기 복수의 바이너리 클러스터를 생성하는 단계 전에, 상기 원본 이진데이터의 최상위 비트 앞에 "1"을 추가하여 분할을 수행하는 것을 특징으로 한다.
본 발명은 상기 압축데이터와 상기 매핑사전을 결합한 결합데이터를 목적 장치로 전송하는 단계를 더 포함할 수 있다.
본 발명에서, 상기 매핑사전은, 모자이크 클러스터의 출현빈도수의 내림차순에 따라 정렬된 상기 복수의 모자이크 클러스터의 각 값과, 오름차순으로 순차적으로 정렬된 유니버설 코드 간의 대응관계를 정의한 것임을 특징으로 한다.
또한, 본 발명의 다른 측면에 따르면, 본 발명은 이진데이터 압축방법에 의해 압축된 이진 데이터를 복원장치가 복원하는 방법으로서, 복원부가 상기 매핑사전을 참조하여 상기 압축데이터로부터 이진데이터를 복원하는 것을 특징으로 하는, 복원장치의 이진데이터 복원방법을 제공한다.
본 발명의 또 다른 측면에 따르면, 본 발명은 원본 이진데이터의 각 비트의 값이 반전될 때마다 상기 원본 이진데이터를 분할하여 복수의 바이너리 클러스터를 획득하고, 상기 복수의 바이너리 클러스터 중 최상위비트로부터 짝수번째에 있는 바이너리 클러스터의 각 비트값을 반전시키며, 상기 원본 이진데이터로부터 복수의 모자이크 클러스터를 획득하는 모자이크 클러스터생성부로서, 상기 모자이크 클러스터는 상기 짝수번째에 있는 바이너리 클러스터의 각 비트값을 반전시킨 후 상기 원본 이진데이터로부터 얻어지는 각 분할된 바이너리 클러스터를 의미하는, 모자이크 클러스터생성부; 상기 복수의 모자이크 클러스터의 각 값과, 유니버설 코드 간의 대응관계를 정의한 매핑사전을 생성하는 사전생성부; 및 상기 매핑사전을 참조하여, 상기 원본 이진데이터로부터 압축데이터를 생성하는 압축부를 포함하되, 상기 유니버설 코드는 적어도 하나의 1만으로 이루어진 이진수를 의미하는 것을 특징으로 하는 이진 데이터의 압축장치를 제공한다.
본 발명에서, 상기 압축데이터의 생성함에 있어, 상기 압축부는 상기 매핑사전을 참조하여, 상기 원본 이진데이터에 포함된 각 모자이크 클러스터들을 이에 대응하는 유니버설 코드들로 변환하고, 상기 변환된 유니버설 코드들 중 짝수번째에 있는 유니버설 코드들의 각 비트값을 반전시킨 후, 상기 유니버설 코드들을 결합하여 압축데이터를 생성하는 것을 특징으로 한다.
본 발명에서, 상기 매핑사전은 오름차순으로 정렬된 상기 복수의 모자이크 클러스터의 각 값과, 오름차순으로 순차적으로 정렬된 유니버설 코드 간의 대응관계를 정의한 것임을 특징으로 한다.
본 발명에서, 상기 매핑사전의 생성시, 상기 사전생성부는 오름차순으로 정렬된 상기 복수의 모자이크 클러스터의 각 값과 오름차순으로 순차적으로 정렬된 유니버설 코드의 값이 달라질 때부터, 상기 복수의 모자이크 클러스터의 각 값과 상기 유니버설 코드 간의 대응관계를 정의하여 상기 매핑사전을 생성하는 것을 특징으로 한다.
본 발명에서, 상기 매핑사전의 생성시, 상기 사전생성부는 오름차순으로 정렬된 상기 복수의 모자이크 클러스터의 각 값을 상위비트 방향 또는 하위비트방향으로 일렬로 배열하여 생성하되, 상위비트 방향 또는 하위비트방향으로 짝수번째 모자이크 클러스터의 각 비트값을 반전시켜 생성하는 것을 특징으로 한다.
본 발명에서, 상기 매핑사전의 생성시, 상기 사전생성부는 상기 오름차순으로 정렬된 복수의 모자이크 클러스터의 각 비트길이에 대응하는 이진수값들과, 오름차순으로 순차적으로 정렬된 유니버설 코드 간의 대응관계를 정의하여 상기 매핑사전을 생성하는 것을 특징으로 한다.
본 발명에서, 상기 매핑사전의 생성시, 상기 사전생성부는 특정 비트길이가 되도록 상기 이진수값들의 각각에 적어도 0개 이상의 "0"을 추가하고, 이들 이진수값들을 상위비트 방향 또는 하위비트방향으로 일렬로 배열하여 상기 매핑사전을 생성하는 것을 특징으로 한다.
본 발명에서, 상기 모자이크 클러스터 생성부는 상기 복수의 바이너리 클러스터를 생성하기 전에, 상기 원본 이진데이터의 최상위 비트 앞에 "1"을 추가하여 분할을 수행하는 것을 특징으로 한다.
본 발명은 상기 압축데이터와 상기 매핑사전을 결합한 결합데이터를 목적 장치로 전송하는 송신부를 더 포함할 수 있다.
본 발명에서, 상기 매핑사전은, 모자이크 클러스터의 출현빈도수의 내림차순에 따라 정렬된 상기 복수의 모자이크 클러스터의 각 값과, 오름차순으로 순차적으로 정렬된 유니버설 코드 간의 대응관계를 정의한 것임을 특징으로 한다.
본 발명의 또 다른 측면에 따르면, 본 발명은 이진데이터 압축장치에 의해 압축된 이진 데이터를 복원하는 장치로서, 상기 매핑사전을 참조하여 상기 압축데이터로부터 이진데이터를 복원하는 복원부를 포함하는 것을 특징으로 한다.
본 발명에 따른 이진 데이터의 압축 및 복원 방법과 장치는, 간단한 연산과 하드웨어적 구성을 통해 이진 데이터를 신속하고 효율적으로 압축하고 복원할 수 있고, 압축률도 뛰어나며 압축 데이터 및 복원 데이터의 신뢰성도 높일 수 있을 뿐만 아니라 데이터 전송시 전송효율과 속도도 향상시킬 수 있다.
도 1은 본 발명에 의한 일 실시예에 따른 이진 데이터의 압축장치 및 복원장치의 구성을 도시한 것이다.
도 2는 본 발명에 의한 일 실시예에 따른 이진 데이터의 압축방법을 설명하기 위한 흐름도이다.
도 3은 비트길이가 증가함에 따라 모자이크 클러스터의 길이와 그에 대응하는 유니버설 코드의 길이 간의 관계를 예시적으로 나타낸 것이다.
도 4는 모자이크 클러스터의 빈도수, 모자이크 클러스터의 비트수(길이), 유니버설 코드의 비트수(길이), 압축된 비트수(길이) 간의 추이를 예시적으로 나타낸 것이다.
아래에서는 첨부한 도면을 참고로 하여 본 발명의 실시예에 대하여 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나, 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고, 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면부호를 붙였다.
명세서 전체에서, 어떤 부분이 어떤 구성 요소를 "포함" 한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
도 1은 본 발명에 의한 일 실시예에 따른 이진 데이터의 압축장치 및 복원장치의 구성을 도시한 것이고, 도 2는 본 발명에 의한 일 실시예에 따른 이진 데이터의 압축방법을 설명하기 위한 흐름도이고, 도 3은 비트길이가 증가함에 따라 모자이크 클러스터의 길이와 그에 대응하는 유니버설 코드의 길이 간의 관계를 예시적으로 나타낸 것이며, 도 4는 모자이크 클러스터의 빈도수, 모자이크 클러스터의 비트길이, 유니버설 코드의 비트길이, 압축된 비트길이 간의 추이를 예시적으로 나타낸 것으로서, 이를 참조하여 본 발명에 따른 실시예를 설명하면 다음과 같다.
도 1에 도시된 바와 같이, 본 실시예에 따른 이진데이터 압축장치는 모자이클 클러스터 생성부(110), 사전생성부(120), 압축부(130) 및 송신부(140)를 포함하여 구성된다.
모자이클 클러스터 생성부(110)는, 원본 이진데이터의 각 비트의 값이 반전될 때마다 상기 원본 이진데이터를 분할하여 복수의 바이너리 클러스터를 획득하고, 상기 복수의 바이너리 클러스터 중 최상위비트로부터 짝수번째에 있는 바이너리 클러스터의 각 비트값을 반전시키며, 상기 원본 이진데이터로부터 복수의 모자이크 클러스터를 획득한다. 이 때, 상기 모자이크 클러스터는 상기 짝수번째에 있는 바이너리 클러스터의 각 비트값을 반전시킨 후 상기 원본 이진데이터로부터 얻어지는 각 분할된 바이너리 클러스터를 의미한다. 모자이크 클러스터 생성부(110)는 상기 복수의 바이너리 클러스터를 생성하기 전에, 상기 원본 이진데이터의 최상위 비트 앞에 "1"을 추가하여 분할을 수행한다.
사전생성부(120)는 상기 복수의 모자이크 클러스터의 각 값과, 유니버설 코드 간의 대응관계를 정의한 매핑사전을 생성한다. 여기서, 유니버설 코드는 적어도 하나의 1만으로 이루어진 이진수를 의미한다.
압축부(130)는 상기 매핑사전을 참조하여, 상기 원본 이진데이터로부터 압축데이터를 생성한다. 이를 좀 더 자세히 설명하면, 상기 압축데이터의 생성함에 있어, 압축부(130)는 상기 매핑사전을 참조하여, 상기 원본 이진데이터에 포함된 각 모자이크 클러스터들을 이에 대응하는 유니버설 코드들로 변환하고, 상기 변환된 유니버설 코드들 중 짝수번째에 있는 유니버설 코드들의 각 비트값을 반전시킨 후, 상기 유니버설 코드들을 결합하여 압축데이터를 생성한다.
송신부(140)는 상기 압축데이터와 상기 매핑사전을 결합한 결합데이터를 목적 장치로 전송한다.
상기 매핑사전은 오름차순으로 정렬된 상기 복수의 모자이크 클러스터의 각 값과, 오름차순으로 순차적으로 정렬된 유니버설 코드 간의 대응관계를 정의한 것이다.
상기 매핑사전의 생성시, 사전생성부(120)는 오름차순으로 정렬된 상기 복수의 모자이크 클러스터의 각 값과 오름차순으로 순차적으로 정렬된 유니버설 코드의 값이 달라질 때부터, 상기 복수의 모자이크 클러스터의 각 값과 상기 유니버설 코드 간의 대응관계를 정의하여 상기 매핑사전을 생성할 수 있다.
그리고, 상기 매핑사전의 생성시, 사전생성부(120)는 오름차순으로 정렬된 상기 복수의 모자이크 클러스터의 각 값을 상위비트 방향 또는 하위비트방향으로 일렬로 배열하여 생성하되, 상위비트 방향 또는 하위비트방향으로 짝수번째 모자이크 클러스터의 각 비트값을 반전시켜 생성할 수도 있다.
또한, 상기 매핑사전의 생성시, 사전생성부(120)는 상기 오름차순으로 정렬된 복수의 모자이크 클러스터의 각 비트길이에 대응하는 이진수값들과, 오름차순으로 순차적으로 정렬된 유니버설 코드 간의 대응관계를 정의하여 상기 매핑사전을 생성할 수도 있다. 이 때, 사전생성부(120)는 특정 비트길이가 되도록 상기 이진수값들의 각각에 적어도 0개 이상의 "0"을 추가하고, 이들 이진수값들을 상위비트 방향 또는 하위비트방향으로 일렬로 배열하여 상기 매핑사전을 생성할 수도 있다.
본 실시예에 따른 이진데이터 복원장치(200)는 상기 매핑사전을 참조하여 상기 압축데이터로부터 이진데이터를 복원하는 복원부(220)를 포함한다.
이와 같이 구성된 본 실시예의 동작 및 작용을 도 1 내지 도 4를 참조하여 구체적으로 설명한다.
도 2에 도시된 바와 같이, 원본 이진데이터가 입력되면, 먼저 모자이크 클러스터 생성부(110)가 원본 이진데이터의 각 비트의 값이 반전될 때마다 상기 원본 이진데이터를 분할하여 복수의 바이너리 클러스터를 획득한다(S201). 이 때, 모자이크 클러스터 생성부(110)는 상기 복수의 바이너리 클러스터를 생성하기 전에, 상기 원본 이진데이터의 최상위 비트 앞에 "1"을 추가하여 분할을 수행할 수 있다. 다만, 본 발명은 이에 한정되지는 않고 상기 "1"을 추가하지 않도록 구현될 수도 있다.
모든 이진수 데이터는 최상위 비트에 "1" 을 붙이면 모두 1로 시작하게 되고, 1로 시작하는 모든 이진데이터는 그 다음에 반드시 "0"이 이어지게 되며, 그 후에 다시 "1"이 이어지게 된다. 즉, 결국 최소한 1개이상의 "1" 과 "0"의 반복형태인데 이러한 패턴을 연속된 "1" 또는 "0" 으로 나타낼 수 있게 된다. 예를 들면, 1101011010001010 과 같이 1로 시작하는 이진데이터는, "11" - "0" - "1" - "0" - "11" - "0" -"1"-"000" - "1"-"0" - "1" - "0" 과 같이 연속된 1개 이상의 "1" 과 "0" 의 반복임을 알 수 있다. 이렇게 이진수의 최상위 비트에서 최하위 비트로 이동하면서, "1" 에서 "0"으로 또는 "0"에서 "1"로 바뀌는 부분에서 각각 데이터를 분리하여 생성된 이진수 덩어리를 바이너리 클러스터라고 명명하기로 한다. 이와 같이 모자이크 클러스터 생성부(110)는 원본 이진데이터를 분할하여 복수의 바이너리 클러스터를 획득한다.
다음으로, 모자이크 클러스터 생성부(110)는 상기 복수의 바이너리 클러스터 중 최상위비트로부터 짝수번째에 있는 바이너리 클러스터의 각 비트값을 반전시키고(S202), 이를 통해 상기 원본 이진데이터로부터 복수의 모자이크 클러스터를 획득한다(S203).
일반적으로, 원본 이진데이터에서 연속된 1개 이상의 "0"을 "1"로 변환을 하더라도, 연속된 "1" 다음에 연속된 "0" 이 나오고 다시 이러한 패턴이 반복되는 것을 알기 때문에, 후술하는 바와 같이 추후 원본 이진데이터를 복원하는 데에는 문제가 없다.
예를 들어 1101011010001010로부터 단계(S201)를 통해
"11" - "0" - "1" - "0" - "11" - "0" -"1"-"000" - "1"-"0" - "1" - "0" 와 같은 바이너리 클러스터들을 획득하고, 여기서 단계(S202)를 통해 짝수번째 바이너리 클러스터의 비트값을 반전시키면
"11" - "1" - "1" - "1" - "11" - "1" -"1"-"111" - "1"-"1" - "1" - "1"
과 같은 바이너리 클러스터들이 얻어지며, 이들 바이너리 클러스터들을 상기 모자이크 클러스터로서 획득하는 것이다. 따라서, 모자이크 클러스터는 원본 이진데이터를 분할하여 바이너리 클러스터들을 얻고, 짝수번째 바이너리 클러스터들은 그 비트값들을 반전시킨 후 얻어지는 바이너리 클러스터들, 즉 원래 "1"로만 이루어져 있던 바이너리 클러스터들뿐만 아니라 원래는 "0"으로만 이루어져 있었으나 각 비트값을 반전시켜 "1"로만 이루어지도록 된 바이너리 클러스터들 모두를 일컫는 것이다. 다만, 본 실시예에서는 모자이크 클러스터가 "1"로만 이루어지도록 하는 예를 중심으로 하여 설명하고 있으나, 실시예에 따라서는 "0"으로만 이루어지도록 설계변경하는 것도 가능할 것이다.
모자이크 클러스터는 그대로 이어 붙이면, "1111111111111111" 과 같이 되어 원래의 데이터를 복구할 수는 없다. 따라서, 모자이크 클러스터를 이어 붙일 때에, 최초의 덩어리들은 덩어리의 비트수 길이만큼의 "1"로, 다음 덩어리는 해당 덩어리의 비트수 만큼의 "0"으로 변환하고, 이후부터는 이러한 변환과정을 반복하면서 이어붙여야만 원래의 데이터로 복구되며 이러한 과정은 후술할 매핑사전을 이용하여 복원장치(200)에서 이루어지게 된다. 즉, "11" - "1" - "1" - "1" - "11" - "1" -"1"-"111" - "1"-"1" - "1" - "1"을 "11" - "0" - "1" - "0" - "11" - "0" -"1" - "000" - "1" - "0" - "1" - "0" 으로 변환환 다음에 이어붙이면, "1101011010001010"과 같은 원본 이진데이터가 복원된다.
다음으로, 사전생성부(120)는 상기 복수의 모자이크 클러스터의 각 값과, 유니버설 코드 간의 대응관계를 정의한 매핑사전을 생성한다(S204). 매핑사전 생성에 대하여 자세히 설명한다.
상기 예로 든 원본 이진데이터에서, 연속된 "1" 형태로 변환한 모자이크 클러스터들을 살펴 보면, "1", "11", "111", "1111", "11111",.... 과 같이 모자이크 클러스터의 유형별로 출현빈도를 계산할 수 있다. 상기 예시데이터의 변환 데이터는 3종류의 모자이크 클러스터, 즉 "1" 이 8 개, "11" 이 2개, "111" 이 1개로 구성되어 있음을 알 수 있다.
이를 비트길이가 매우 긴 일반적인 원본 이진데이터로 확장하여 예로 들어 설명한다.
먼저, 상기 단계(S201) 내지 단계(S203)을 거쳐서, 원본 이진데이터의 최상위 비트에 "1"을 무조건 추가한 뒤에, 바이너리 클러스터들로 분리한 결과와 각 바이너리 클러스터에 대해 모자이크 클러스터로 변환한 결과를 아래 표 1에 보인다.
원본클러스터 모자이크 클러스터
1 1
0 1
11 11
0 1
1 1
0000 1111
11 11
00 11
1111 1111
000 111
1 1
000 111
1111 1111
00000 11111
1 1
0 1
1 1
0000 1111
11 11
0 1
11 11
000 111
1 1
000 111
11 11
0 1
1 1
.... ...
이렇게 원본 이진데이터로부터 얻어진 모자이크 클러스터를 오름차순으로 정리하여 모자이크 클러스터의 분포표를 생성하면 표 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
111111111111111111111111111111111111
1111111111111111111111111111111111111
11111111111111111111111111111111111111
111111111111111111111111111111111111111
1111111111111111111111111111111111111111
11111111111111111111111111111111111111111
11111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111
1111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111
1111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111
1111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111
1111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111
1111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
....
표 2에서 표시된 바와 같이, 일반적인 원본 이진데이터로부터 얻어지는 모자이크 클러스터는 규칙적으로 길이가 증가하지는 않고, 길이가 길어질수록 불규칙한 형태로 길이의 증가폭이 다름을 알 수 있다. 본 실시예에 따른 이진데이터 압축방법은 다른 압축발명과는 달리 데이터의 분포수를 기준으로 압축을 하는 것이 아니라, 데이터의 길이의 불규칙성이라는 특성을 이용하여 압축을 하는 점이 큰 특징이라고 할 수 있다.
이제 표 2와 같은 모자이크 클러스터 분포테이블에서, 모자이크 클러스터의 오름차순(또는 모자이크 클러스터의 비트수 길이의 오름차순)으로 이에 대응하는 출현빈도와 비트길이를 표시하여 정렬하면 표 3과 같다. 한편, 모자이크 클러스터의 정렬 기준과 관련하여 본 실시예에서는 모자이크 클러스터의 비트수 길이의 오름차순 정렬기준을 이용하는 것을 중심으로 하여 기술하고 있으나, 실시예에 따라서는 모자이크 클러스터의 출현빈도수(분포수)를 기준으로 내림차순 정렬하여 유니버설 코드를 순차적으로 대응시킨 후, 이하의 과정을 수행하도록 할 수도 있다.
모자이크 클러스터 출현빈도 모자이크 클러스터길이
1 36133 1
11 19121 2
111 9162 3
1111 4214 4
11111 2220 5
111111 1035 6
1111111 630 7
11111111 295 8
111111111 988 9
1111111111 526 10
11111111111 410 11
111111111111 204 12
1111111111111 230 13
11111111111111 254 14
111111111111111 73 15
1111111111111111 33 16
11111111111111111 21 17
111111111111111111 24 18
1111111111111111111 28 19
11111111111111111111 27 20
111111111111111111111 17 21
…….. ……… ………..
11111111111111111111111111111111111111111111 4 44
111111111111111111111111111111111111111111111 2 45
11111111111111111111111111111111111111111111111 2 47
111111111111111111111111111111111111111111111111 2 48
1111111111111111111111111111111111111111111111111 4 49
11111111111111111111111111111111111111111111111111 6 50
1111111111111111111111111111111111111111111111111111 2 52
111111111111111111111111111111111111111111111111111111111 4 57
1111111111111111111111111111111111111111111111111111111111 2 58
11111111111111111111111111111111111111111111111111111111111 6 59
1111111111111111111111111111111111111111111111111111111111111 2 61
11111111111111111111111111111111111111111111111111111111111111 2 62
111111111111111111111111111111111111111111111111111111111111111 4 63
1111111111111111111111111111111111111111111111111111111111111111 9 64
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 15 96
....... ...... ........
상기 표 3과 같은 형태로 모자이크 클러스터의 분포와 비트수 길이별로 정리된 자료에, 유니버설 코드를 생성하면 압축 및 해제를 위한 매핑사전이 완성되게 된다. 여기서, 상기 유니버설 코드는 적어도 하나의 1로만 이루어진 이진수를 의미한다. 물론, 실시예에 따라서는 유니버설 코드로 하나 이상의 0으로만 이루어진 이진수를 사용할 수도 있으나, 본 실시예에서는 유니버설 코드가 하나 이상의 1로만 이루어진 경우를 중심으로 하여 설명한다.
유니버설 코드를 "1" 부터 시작하여 "11","111","1111","11111" ... 과 같이 비트수를 하나씩 순차적으로 증가시키면서 "1"로만 이루어진 코드를 자동적으로 생성하여, 이를 상기 표 3에 있는 각 모자이크 클러스터에 1:1로 대응시키면 아래 표 4와 같다.
모자이크 클러스터 출현빈도 모자이크 클러스터길이 Universal 코드
1 36133 1 1
11 19121 2 11
111 9162 3 111
1111 4214 4 1111
11111 2220 5 11111
111111 1035 6 111111
1111111 630 7 1111111
11111111 295 8 11111111
111111111 988 9 111111111
1111111111 526 10 1111111111
11111111111 410 11 11111111111
….
1111111111111111111111111111111111111111 6 40 1111111111111111111111111111111111111111
11111111111111111111111111111111111111111 2 41 11111111111111111111111111111111111111111
11111111111111111111111111111111111111111111 4 44 111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111 2 45 1111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111 2 47 11111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111 2 48 111111111111111111111111111111111111111111111
1111111111111111111111111111111111111111111111111 4 49 1111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111 6 50 11111111111111111111111111111111111111111111111
1111111111111111111111111111111111111111111111111111 2 52 111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111 4 57 1111111111111111111111111111111111111111111111111
1111111111111111111111111111111111111111111111111111111111 2 58 11111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111 6 59 111111111111111111111111111111111111111111111111111
1111111111111111111111111111111111111111111111111111111111111 2 61 1111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111 2 62 11111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111 4 63 111111111111111111111111111111111111111111111111111111
1111111111111111111111111111111111111111111111111111111111111111 9 64 1111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 15 96 11111111111111111111111111111111111111111111111111111111
..... .... .... ....
상기 표 4에서 보듯이, 처음에는 모자이크 클러스터와 유니버설 코드 간의 비트길이 차이는 없다가, 유니버설 코드 길이가 42비트가 되는 지점부터 유니버설 코드가 더 짧아지기 시작하여, 그 비트길이의 차이가 점점 커지고 있음을 알 수 있다.
이때 (유니버설 코드 길이 - 모자이크 클러스터 길이) * 모자이크 클러스터 출현 빈도수가 압축되는 양을 나타낸다. 모든 모자이크 클러스터에 대한 상기 압축량을 더하면, 최종 압축률을 계산할 수 있다.
본 예시 데이터에서는 가장 긴 모자이크 클러스터가 4096 비트길이(크기)로 1개 존재하는데, 해당 모자이크 클러스터에 1:1로 대응된 유니버설 코드는 94비트길이(크기)로서, 4002비트의 크기가 절감된다.
상기 표 4와 같이 매핑사전은 오름차순으로 정렬된 상기 복수의 모자이크 클러스터의 각 값과, 오름차순으로 순차적으로 정렬된 유니버설 코드 간의 대응관계를 정의한 것이라고 할 수 있다.
다음으로, 압축부(130)는 상기 매핑사전을 참조하여, 상기 원본 이진데이터로부터 압축데이터를 생성한다(S205). 이를 좀 더 자세히 설명한다.
먼저, 원본 이진데이터 "11010110100010101.......1"의 예를 들면, 특히 마지막 1....1 은 "1" 이 연속하여 96개가 있는 상황을 가정할 때, 먼저 최상위 비트로부터 최하위 비트로 이동하면서, "1" 에서 "0"으로 또는 "0"에서 "1"로 바뀔 때마다 바이너리 클러스터를 분리하면 아래와 같다.
"11" - "0" - "1" - "0" - "11" - "0" -"1" - "000" - "1" - "0" - "1" - "0"-"1....1" 이 된다.
다음으로, 분리된 바이너리 클러스터 가운데, "0"으로만 이루어진 바이너리 클러스터를 동일한 비트수의 "1"로 변환하여, 다음과 같이 모자이크 클러스터를 획득한다.
"11" - "1" - "1" - "1" - "11" - "1" -"1" - "111" - "1" - "1" - "1" - "1" - "1....1"
이제 각 모자이크 클러스터에 대하여, 매핑사전에 따라 매핑된 유니버설 코드(Universal code)로 각 모자이크 클러스터를 치환한다. 모자이크 클러스터의 길이가 비교적 짧을 때에는 유니버설 코드와 동일하게 매핑이 되지만, 그 길이가 일정 수준 이상으로 증가하게 되면 모자이크 클러스터 대비 대응하는 유니버설 코드의 길이가 더 짧아져서 압축이 이루지게 된다. 일 예로, 96비트의 모자이크 클러스터는 56 비트의 유니버설 코드로 변환된다. 즉 "1"이 56개 연속된 이진수를 뜻한다.
참고로, 본 실시예의 경우, 아래 표 5에서 보듯이 모자이크 클러스터의 길이가 44 비트 즉, 44비트의 "1"로 이루어진 모자이크 클러스터부터 이에 대응하는 유니버설 코드가 이보다 짧기 때문에 변환을 통한 압축효과가 나타나게 된다.
모자이크 클러스터의 비트수 universal 코드의 비트수
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
36 36
37 37
38 38
39 39
40 40
41 41
44 42
45 43
47 44
48 45
49 46
50 47
52 48
57 49
58 50
59 51
61 52
62 53
63 54
64 55
96 56
97 57
99 58
100 59
126 60
130 61
171 62
184 63
186 64
192 65
195 66
224 67
231 68
248 69
289 70
290 71
300 72
301 73
320 74
363 75
364 76
384 77
385 78
395 79
397 80
399 81
408 82
411 83
413 84
512 85
596 86
792 87
928 88
1690 89
2296 90
2360 91
2713 92
3456 93
4096 94
도 3은 비트길이가 증가함에 따라 모자이크 클러스터의 길이와 그에 대응하는 유니버설 코드의 길이 간의 관계를 예시적으로 나타낸 것이다. 모자이크 클러스터의 비트수가 커질수록 유니버설 코드의 비트수는 그에 비해 매우 작은 비율로 순차적으로 증가함을 알 수 있다.
상기와 같이 매핑사전을 참조하여 각 모자이크 클러스터들을 유니버설 코드들로 변환한 다음, 압축부(130)는 상기 변환된 유니버설 코드들 중 짝수번째에 있는 유니버설 코드들의 각 비트값을 반전시킨다. 즉,
"11" - "1" - "1" - "1" - "11" - "1" -"1" - "111" - "1" - "1" - "1" - "1" - "1~~~1"
와 같이 변환된 일련의 유니버설 코드들 중, 첫번째 유니버설 코드는 그대로 "1"로만 이루어진 형태로 두고, 두번째는 "0"으로만 이루어진 형태로 바꾸고, 이후에는 이와 같은 과정을 반복하는 형태로 변환한다.
그리고, 압축부(130)는 이와 같이 변환된 유니버설 코드들을 결합하여 압축데이터를 생성한다. 즉,
"11" - "0" - "1" - "0" - "11" - "0" -"1" - "000" - "1" - "0" - "1" - "0" - "1~~~1"
형태로 바꾼 뒤에, 그대로 이어 붙이면, "11010110100010101~~~1" 형태가 되고, 원본 이진데이터에 비하여, 40비트가 감소한 압축코드로 변환된다. 물론, 복원(압축해제) 시에는 상기 과정의 반대과정을 진행하면 된다. 즉, 압축데이터 "11010110100010101~~~1" 에서, "1"에서 "0"으로 비트값이 변화할 때 또는 "0"에서 "1"로 변화할 때마다 압축클러스터를 분할하면
"11" - "0" - "1" - "0" - "11" - "0" -"1" - "000" - "1" - "0" - "1" - "0" - "1~~~1"와 같아진다.
그리고, "0" 으로 이루어진 압축클러스터를 모두 "1"로 이루어진 압축클러스터로 변환하여 주면
"11" - "1" - "1" - "1" - "11" - "1" -"1" - "111" - "1" - "1" - "1" - "1" - "1~~~1" 이 되고,
이제 매핑사전을 통해서, 유니버설 코드와 1:1로 매핑된 모자이크 클러스터로 치환을 하여 주는데, 짧은 유니버설 코드와 매핑된 모자이크 클러스터는 서로 동일할 수 있으나, "1~~~1"과 같은 매우 긴 유니버설 코드는 매핑사전에 따라 96 비트의 클클러스터 "1...1" 로 변환된다.
"11" - "1" - "1" - "1" - "11" - "1" -"1" - "111" - "1" - "1" - "1" - "1" - "1....1"
이제 변환된 클러스터들을 이어붙이면 되는데, 첫번째 바이너리 클러스터는 "1"로만 이루어진 클러스터로 약속되어 있으므로, 그대로 두되 두번째 바이너리 클러스터 및 네번째, 즉 짝수번째 바이너리 클러스터는 모두 "0"으로만 이루어진 값으면 변환한다.
"11" - "0" - "1" - "0" - "11" - "0" -"1" - "000" - "1" - "0" - "1" - "0" - "1....1"
그리고, 이들 바이너리 클러스터를 모두 이어 붙이면, "11010110100010101....1" 와 같은 원본 이진데이터로 완벽히 복원된다. 물론 이때 원본 이진데이터가 "0"으로 시작하여 최상위 비트에 강제적으로 "1"을 붙였을 경우에는, 최상위 비트의 "1"을 강제적으로 삭제하면 원본과 동일하게 되는 것은 물론이다.
구체적인 실시예로서, 아래와 같은 237,570 비트의 이진데이터의 경우
10110100001100111100010001111000001010000110110001000110101110000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001111100000000000000011000000001111111011111111000010010000000000000110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000....
바이너리 클러스터 단위로 분할하여 모자이크 클러스터로 만들 경우, 도 4와 같이 모자이크 클러스터의 길이가 짧을수록 높은 출현빈도를 보이고, 동일한 크기의 유니버설 코드가 대응되어 압축의 효과는 0 이 된다. 모자이크 클러스터는 그 길이가 길어질수록 낮은 출현빈도를 보이지만 대응하는 유니버설 코드의 길이는 순차적으로 늘어나기 때문에, 압축의 효과가 출현빈도와 모자이크 클러스터의 길이에 따라 증가하기 시작함을 알 수 있고, 도 4에서 볼 수 있듯이 압축된 비트수가 음의 영역에서 면적이 있으므로, 압축효과가 나타나게 된다. 계산해 본 바로는, 237,570 비트의 원본데이터에서, 24,292 비트의 압축효과가 발생하게 된다.
특히 허프만 알고리즘과 같은 방법을 전혀 쓰지 않고도, 매우 빠르고 효과적으로 대량의 원본 이진데이터를 높은 압축수율을 얻으면서 압축할 수 있는 장점이 있다.
이어서, 송신부(140)는 상기 압축데이터와 상기 매핑사전을 결합한 결합데이터를 복원 장치(200) 등의 목적 장치로 전송한다(S206).
이와 같이 압축된 압축데이터를 전송함으로써 데이터 전송 속도 및 전송 효율을 향상시킬 수 있다.
한편, 매핑사전을 구현할 때 보다 효율적으로 구현하는 다양한 실시예가 있을 수 있는 데 이에 대해 추가적으로 살펴 보면 다음과 같다.
첫번째로, 매핑사전의 생성시, 사전생성부(120)는 오름차순으로 정렬된 복수의 모자이크 클러스터의 각 값과 오름차순으로 순차적으로 정렬된 유니버설 코드의 값이 달라질 때부터, 상기 복수의 모자이크 클러스터의 각 값과 상기 유니버설 코드 간의 대응관계를 정의하여 상기 매핑사전을 생성할 수 있다.
예를 들어, 표 4에서는 모자이크 클러스터와 유니버설 코드 간의 대응관계를 처음부터 표시하였으나, 표 4 및 표 5를 참고하면 상기 원본 이진데이터의 경우 전체 94 순번까지의 유니버설 코드 중에서 42 순번의 유니버설 코드(42비트)부터는 모자이크 클러스터와 유니버설 코드 간에 비트수(길이)에서 차이가 나기 시작한다. 따라서, 매핑사전에 굳이 1번 순번부터 41번 순번까지의 모자이크 클러스터의 정보를 모두 담을 필요가 없고, 42번 순번부터 차이가 있다는 정보와, 그 때부터의 모자이크 클러스터의 정보들만 알고 있으면 매핑사전을 매우 적은 정보로도 구성할 수 있다.
즉, 매핑사전은 42번 순번의 유니버설 코드부터 시작한다는 정보와, 아래의 표 6의 정보만으로 표현이 가능하여 보다 더 간단해진다.
모자이크 클러스터 비트수
44
45
47
48
49
50
52
57
58
59
61
62
63
64
96
97
99
100
126
130
171
184
186
192
195
224
231
248
289
290
300
301
320
363
364
384
385
395
397
399
408
411
413
512
596
792
928
1690
2296
2360
2713
3456
4096
두번째로, 매핑사전의 생성시, 사전생성부(120)는 오름차순으로 정렬된 상기 복수의 모자이크 클러스터의 각 값을 상위비트 방향 또는 하위비트방향으로 일렬로 배열하여 생성할 수 있는데, 상위비트 방향 또는 하위비트방향으로 짝수번째 모자이크 클러스터의 각 비트값을 반전시켜 가면서 생성한다. 이 때, 매핑사전은 비트길이가 가장 짧은 모자이크 클러스터로부터 시작하여 오름차순으로 작성될 수도 있고; 오름차순으로 정렬된 상기 복수의 제너럴 클러스터의 각 값과 오름차순으로 순차적으로 정렬된 유니버셜 코드의 값이 달라질 때부터 작성될 수도 있다.
이 경우 매핑 사전의 실제적인 모습은 다음과 같다.
11...11 / 00...00 / 111...111 / 000...000 / 1111...1111 / 0000...0000 / .........
이 때 "/" 는 가상적인 구분자이며 실제로는 존재하지 않아도 제너럴 클러스터의 유일복호성에 따라 정확하게 매핑사전으로 복원된다. 유일복호성이란 상기와 같이 이진수가 일렬로 배열된 형태로 생성된 매핑사전에서 모자이크 클러스터가 복호화되는 방법이 하나밖에 없다는 것을 의미하는 것으로, 바이너리 형태의 매핑사전은 1에서 0 또는 0에서 1로 비트값이 반전될 때마다 분리하여 각각의 모자이크 클러스터가 분리된다.
세번째로, 상기 매핑사전의 생성시, 사전생성부(120)는 오름차순으로 정렬된 복수의 모자이크 클러스터의 각 비트길이에 대응하는 이진수값들과, 오름차순으로 순차적으로 정렬된 유니버설 코드 간의 대응관계를 정의하여 매핑사전을 생성할 수도 있다. 특히, 사전생성부(120)는 특정 비트길이가 되도록 상기 이진수값들의 각각의 앞에 적어도 0개 이상의 "0"을 추가하고, 이들 이진수값들을 상위비트 방향 또는 하위비트방향으로 일렬로 배열하여 상기 매핑사전을 생성할 수도 있다.
상기 표 6의 경우를 살펴보면, 44~ 4096까지의 모자이크 클러스터의 비트수 정보가 표시되어 있는데, 이 정보는 동일한 이진수값으로 표현이 가능하다. 샤논의 법칙에 따라, 최대수 4096은 12 비트의 이진수로 표현되므로(즉, Log2(4096) = 12), 전체 53개의 모자이크 클러스터의 비트수 정보 44~4096까지를 일정한 크기의 12비트로 표현하면 전체 636비트로 표현이 된다. 즉, 전체 비트절감수 24,292비트를 얻기 위하여 636비트의 매핑사전 정보와 42번순번부터 유니버설 코드의 차이가 생긴다는 정보만 있으면 압축이 되는 것이다. 따라서 효율높고 매우 빠른 속도의 압축효과를 달성할 수 있다. 물론 이 경우에도 매핑사전의 효율은 다소 떨어지더라도, 가장 짧은 모자이크 클러스터(즉, "1")부터 이러한 매핑사전을 생성할 수도 있을 것이다.
상기와 같이 특정비트길이(예를 들어 12비트길이)가 되도록 하는 이유는, 각각의 모자이크 클러스터의 비트길이에 대응하는 상기 이진수값들을 단순히 일렬로 정렬하면 각 이진수값들 간에 서로 구분할 수가 없기 때문에, 상기 각 이진수값의 앞에 "0"을 추가하여 상기 특정비트의 이진수로 만들어 상기 특정비트 단위로 각각의 이진수값들을 구분하여 식별하기 위함이다.
상기에서, 표 6에 표시된 44~4096까지의 모자이크 클러스터의 비트수 정보를 기존의 공지의 압축알고리즘에 따라 허프만 부호화나 LZE부호화, RLE부호화 등을 이용하여 각각 부호화할 수도 있다.
상기와 같은 과정을 통해 이진 데이터가 압축되어 전송되면, 이진 데이터 복원장치(200)는 수신부(210)를 통해 상기 압축데이터를 수신하여 복원부(220)에 전달한다. 복원부(220)는 상기 결합데이터(압축데이터+매핑사전)에 포함되어 있는 상기 매핑사전을 참조하여, 상기 압축데이터로부터 원본 이진 데이터를 복원한다. 이 때 복원부(220)는 상술한 압축과정과는 반대의 과정을 통해 이진 데이터를 복원한다. 만일 압축시 원본 이진데이터의 최상위비트에 "1"을 추가한 후 압축을 수행한 경우라면, 복원부(220)는 상기 매핑사전을 참조하여 복원된 이진데이터에서 최상위비트에 있는 "1"을 삭제하여 최종적인 원본 이진데이터를 복원한다. 이것은 상술한 압축과정에 최상위비트에 추가된 "1"을 삭제하기 위한 것이다.
이상 살펴 본 바와 같이, 본 실시예에 따른 이진 데이터의 압축 및 복원 방법과 장치는, 간단한 연산과 하드웨어적 구성을 통해 이진 데이터를 신속하고 효율적으로 압축하고 복원할 수 있고, 압축률도 뛰어나며 압축 데이터 및 복원 데이터의 신뢰성도 높일 수 있을 뿐만 아니라 데이터 전송시 전송효율과 속도도 향상시킬 수 있다.
이상에서 본 발명의 실시 예에 대하여 상세하게 설명하였지만 본 발명의 권리범위는 이에 한정되는 것은 아니고, 다음의 청구범위에서 정의하고 있는 본 발명의 기본 개념을 이용한 당업자의 여러 변형 및 개량 형태 또한 본 발명의 권리범위에 속하는 것이다.
100 : 이진데이터 압축장치
110 : 모자이크 클러스터 생성부
120 : 사전생성부
130 : 압축부
140 : 송신부
200 : 이진데이터 복원장치
210 : 수신부
220 : 복원부

Claims (22)

  1. 이진데이터 압축장치에 의해 수행되는 이진데이터의 압축방법으로서,
    원본 이진데이터의 각 비트의 값이 반전될 때마다 상기 원본 이진데이터를 분할하여 복수의 바이너리 클러스터를 획득하는 단계;
    상기 복수의 바이너리 클러스터 중 상기 원본 이진데이터의 최상위비트로부터 최하위비트 방향으로 짝수번째에 있는 바이너리 클러스터의 각 비트값을 반전시키는 단계;
    상기 원본 이진데이터로부터 복수의 모자이크 클러스터를 획득하는 단계로서, 상기 모자이크 클러스터는 상기 반전시키는 단계 후 상기 원본 이진데이터로부터 얻어지는 각 분할된 바이너리 클러스터를 의미하는, 단계;
    상기 복수의 모자이크 클러스터의 각 값과, 유니버설 코드 간의 대응관계를 정의한 매핑사전을 생성하는 단계; 및
    상기 매핑사전을 참조하여, 상기 원본 이진데이터로부터 압축데이터를 생성하는 단계를 포함하되,
    상기 유니버설 코드는 적어도 하나의 1 또는 0으로만 이루어진 이진수를 의미하는 것을 특징으로 하는 이진 데이터의 압축방법.
  2. 제 1항에 있어서,
    상기 압축데이터를 생성하는 단계는,
    상기 매핑사전을 참조하여, 상기 원본 이진데이터에 포함된 각 모자이크 클러스터들을 이에 대응하는 유니버설 코드들로 변환하는 단계;
    상기 변환된 유니버설 코드들 중 짝수번째 유니버설 코드들의 각 비트값을 반전시키는 단계; 및
    상기 유니버설 코드들을 결합하여 압축데이터를 생성하는 단계를 포함하는 것을 특징으로 하는 이진 데이터의 압축방법.
  3. 제 1항에 있어서,
    상기 매핑사전은 오름차순으로 정렬된 상기 복수의 모자이크 클러스터의 각 값과, 오름차순으로 순차적으로 정렬된 유니버설 코드 간의 대응관계를 정의한 것임을 특징으로 하는 이진데이터 압축방법.
  4. 제 3항에 있어서,
    상기 매핑사전을 생성하는 단계에서,
    상기 이진데이터 압축장치는 오름차순으로 정렬된 상기 복수의 모자이크 클러스터의 각 값이 오름차순으로 순차적으로 정렬된 유니버설 코드의 값과 동일하다가 달라질 때부터, 상기 복수의 모자이크 클러스터의 각 값과 상기 유니버설 코드 간의 대응관계를 정의하여 상기 매핑사전을 생성하는 것을 특징으로 하는, 이진데이터 압축방법.
  5. 제 3항에 있어서,
    상기 매핑사전을 생성하는 단계에서,
    상기 이진데이터 압축장치는 오름차순으로 정렬된 상기 복수의 모자이크 클러스터의 각 값을 상위비트 방향 또는 하위비트방향으로 일렬로 배열하여 생성하되, 상위비트 방향 또는 하위비트방향으로 짝수번째 모자이크 클러스터의 각 비트값을 반전시켜 생성하는 것을 특징으로 하는 이진데이터 압축방법.
  6. 제 3항에 있어서,
    상기 매핑사전을 생성하는 단계에서,
    상기 오름차순으로 정렬된 복수의 모자이크 클러스터의 각 비트길이에 대응하는 이진수값들과, 오름차순으로 순차적으로 정렬된 유니버설 코드 간의 대응관계를 정의하여 상기 매핑사전을 생성하는 것을 특징으로 하는 이진데이터 압축방법.
  7. 제 6항에 있어서,
    상기 매핑사전을 생성하는 단계에서,
    특정 비트길이가 되도록 상기 이진수값들의 각각에 적어도 n개 이상의 "0"(n≥0)을 추가하고, 이들 이진수값들을 상위비트 방향 또는 하위비트방향으로 일렬로 배열하여 상기 매핑사전을 생성하는 것을 특징으로 하는 이진데이터 압축방법.
  8. 제 1항에 있어서,
    상기 복수의 바이너리 클러스터를 생성하는 단계 전에, 상기 원본 이진데이터의 최상위 비트 앞에 "1"을 추가하여 분할을 수행하는 것을 특징으로 하는 이진데이터 압축방법.
  9. 제 1항에 있어서,
    상기 압축데이터와 상기 매핑사전을 결합한 결합데이터를 목적 장치로 전송하는 단계를 더 포함하는 것을 특징으로 하는 이진데이터 압축방법.
  10. 제 1항에 있어서,
    상기 매핑사전은, 모자이크 클러스터의 출현빈도수의 내림차순에 따라 정렬된 상기 복수의 모자이크 클러스터의 각 값과, 오름차순으로 순차적으로 정렬된 유니버설 코드 간의 대응관계를 정의한 것임을 특징으로 하는 이진데이터 압축방법.
  11. 제 1항 내지 제 10항 중 어느 한 항에 기재된 이진데이터 압축방법에 의해 압축된 이진 데이터를 복원장치가 복원하는 방법으로서,
    복원부가 상기 매핑사전을 참조하여 상기 압축데이터로부터 이진데이터를 복원하는 것을 특징으로 하는, 복원장치의 이진데이터 복원방법.
  12. 이진데이터 압축장치로서,
    원본 이진데이터의 각 비트의 값이 반전될 때마다 상기 원본 이진데이터를 분할하여 복수의 바이너리 클러스터를 획득하고, 상기 복수의 바이너리 클러스터 중 상기 원본 이진데이터의 최상위비트로부터 최하위비트 방향으로 짝수번째에 있는 바이너리 클러스터의 각 비트값을 반전시키며, 상기 원본 이진데이터로부터 복수의 모자이크 클러스터를 획득하는 모자이크 클러스터생성부로서, 상기 모자이크 클러스터는 상기 짝수번째에 있는 바이너리 클러스터의 각 비트값을 반전시킨 후 상기 원본 이진데이터로부터 얻어지는 각 분할된 바이너리 클러스터를 의미하는, 모자이크 클러스터생성부;
    상기 복수의 모자이크 클러스터의 각 값과, 유니버설 코드 간의 대응관계를 정의한 매핑사전을 생성하는 사전생성부; 및
    상기 매핑사전을 참조하여, 상기 원본 이진데이터로부터 압축데이터를 생성하는 압축부를 포함하되,
    상기 유니버설 코드는 적어도 하나의 1만으로 이루어진 이진수를 의미하는 것을 특징으로 하는 이진 데이터의 압축장치.
  13. 제 12항에 있어서,
    상기 압축데이터의 생성함에 있어, 상기 압축부는 상기 매핑사전을 참조하여, 상기 원본 이진데이터에 포함된 각 모자이크 클러스터들을 이에 대응하는 유니버설 코드들로 변환하고, 상기 변환된 유니버설 코드들 중 짝수번째 유니버설 코드들의 각 비트값을 반전시킨 후, 상기 유니버설 코드들을 결합하여 압축데이터를 생성하는 것을 특징으로 하는 이진 데이터의 압축장치.
  14. 제 12항에 있어서,
    상기 매핑사전은 오름차순으로 정렬된 상기 복수의 모자이크 클러스터의 각 값과, 오름차순으로 순차적으로 정렬된 유니버설 코드 간의 대응관계를 정의한 것임을 특징으로 하는 이진데이터 압축장치.
  15. 제 14항에 있어서,
    상기 매핑사전의 생성시,
    상기 사전생성부는 오름차순으로 정렬된 상기 복수의 모자이크 클러스터의 각 값이 오름차순으로 순차적으로 정렬된 유니버설 코드의 값과 동일하다가 달라질 때부터, 상기 복수의 모자이크 클러스터의 각 값과 상기 유니버설 코드 간의 대응관계를 정의하여 상기 매핑사전을 생성하는 것을 특징으로 하는, 이진데이터 압축장치.
  16. 제 14항에 있어서,
    상기 매핑사전의 생성시,
    상기 사전생성부는 오름차순으로 정렬된 상기 복수의 모자이크 클러스터의 각 값을 상위비트 방향 또는 하위비트방향으로 일렬로 배열하여 생성하되, 상위비트 방향 또는 하위비트방향으로 짝수번째 모자이크 클러스터의 각 비트값을 반전시켜 생성하는 것을 특징으로 하는 이진데이터 압축장치.
  17. 제 14항에 있어서,
    상기 매핑사전의 생성시,
    상기 사전생성부는 상기 오름차순으로 정렬된 복수의 모자이크 클러스터의 각 비트길이에 대응하는 이진수값들과, 오름차순으로 순차적으로 정렬된 유니버설 코드 간의 대응관계를 정의하여 상기 매핑사전을 생성하는 것을 특징으로 하는 이진데이터 압축장치.
  18. 제 17항에 있어서,
    상기 매핑사전의 생성시,
    상기 사전생성부는 특정 비트길이가 되도록 상기 이진수값들의 각각에 적어도 n개 이상의 "0"(n≥0)을 추가하고, 이들 이진수값들을 상위비트 방향 또는 하위비트방향으로 일렬로 배열하여 상기 매핑사전을 생성하는 것을 특징으로 하는 이진데이터 압축장치.
  19. 제 12항에 있어서,
    상기 모자이크 클러스터 생성부는 상기 복수의 바이너리 클러스터를 생성하기 전에, 상기 원본 이진데이터의 최상위 비트 앞에 "1"을 추가하여 분할을 수행하는 것을 특징으로 하는 이진데이터 압축장치.
  20. 제 12항에 있어서,
    상기 압축데이터와 상기 매핑사전을 결합한 결합데이터를 목적 장치로 전송하는 송신부를 더 포함하는 것을 특징으로 하는 이진데이터 압축장치.
  21. 제 12항에 있어서,
    상기 매핑사전은, 모자이크 클러스터의 출현빈도수의 내림차순에 따라 정렬된 상기 복수의 모자이크 클러스터의 각 값과, 오름차순으로 순차적으로 정렬된 유니버설 코드 간의 대응관계를 정의한 것임을 특징으로 하는 이진데이터 압축장치.
  22. 제 12항 내지 제 21항 중 어느 한 항에 기재된 이진데이터 압축장치에 의해 압축된 이진 데이터를 복원하는 장치로서,
    상기 매핑사전을 참조하여 상기 압축데이터로부터 이진데이터를 복원하는 복원부를 포함하는 것을 특징으로 하는, 이진데이터 복원장치.


KR1020140153198A 2014-08-17 2014-11-05 이진 데이터의 압축 및 복원 방법과 장치 KR101632116B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20140106615 2014-08-17
KR1020140106615 2014-08-17

Publications (2)

Publication Number Publication Date
KR20160021416A KR20160021416A (ko) 2016-02-25
KR101632116B1 true KR101632116B1 (ko) 2016-06-20

Family

ID=55446087

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140153198A KR101632116B1 (ko) 2014-08-17 2014-11-05 이진 데이터의 압축 및 복원 방법과 장치

Country Status (1)

Country Link
KR (1) KR101632116B1 (ko)

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100389702B1 (ko) * 2000-09-18 2003-06-27 주식회사 보람씨앤씨 비트치환에 의한 무손실 데이터압축 및 복원방법
KR101725223B1 (ko) * 2011-03-25 2017-04-11 삼성전자 주식회사 저장 장치에서의 데이터 압축 방법

Also Published As

Publication number Publication date
KR20160021416A (ko) 2016-02-25

Similar Documents

Publication Publication Date Title
CN113810057B (zh) 用于语义值数据压缩和解压缩的方法、设备和系统
KR20110094046A (ko) 정수-값 데이터의 스트림을 압축하는 시스템 및 방법
CN105573775B (zh) Fpga配置文件加载方法和解码器
KR101575939B1 (ko) 이진 데이터의 압축 및 복원 방법과 장치
KR101587944B1 (ko) 이진 데이터의 압축 및 복원 방법과 장치
KR101632116B1 (ko) 이진 데이터의 압축 및 복원 방법과 장치
KR101652735B1 (ko) 이진 데이터의 압축 및 복원 방법과 장치
EP4142229A1 (en) System and method for transition encoding with flexible word-size
KR101590790B1 (ko) 이진 데이터의 압축 및 복원 방법과 장치
KR101578608B1 (ko) 일반 코드 생성을 위한 데이터 부호화 장치 및 데이터 복호화 장치
KR20160100496A (ko) 바이너리 클러스터를 이용한 허프만 부호화 효율화 방법 및 그 장치
KR101612281B1 (ko) 이진 데이터의 압축 및 복원 방법과 장치
KR20160106229A (ko) 문맥기반 분포데이터의 블럭화를 이용한 허프만 부호화의 효율화 방법 및 그 장치
KR101632115B1 (ko) 이진 데이터의 압축 및 복원 방법과 장치
KR101471833B1 (ko) 이진 데이터의 압축 및 압축해제 방법과 장치
KR101760070B1 (ko) 데이터 부호화 및 복호화 방법과 장치
KR101573983B1 (ko) 데이터 압축 및 데이터 복원 방법과 장치
KR101791877B1 (ko) 유티에프-8 코드 문자의 압축 방법 및 장치
Al-Rababa'a et al. Using bit recycling to reduce the redundancy in plurally parsable dictionaries
KR102361730B1 (ko) 데이터 압축 방법 및 장치
KR20160049627A (ko) 바이너리 클러스터별 분할 및 출현빈도수 내림차순 정렬에 따라 1:1 유니버설 코드 대응을 통한 압축법의 효율화 방법
JPH0629861A (ja) データ圧縮方法
KR20160055985A (ko) 바이너리 클러스터 분할 및 유니버설 코드 매핑을 이용한 데이터 압축 및 그 해제방법
KR101752281B1 (ko) 유티에프-8 코드 문자의 압축 방법 및 장치
KR20170047484A (ko) 에러에 강한 유니버설 코드의 연산을 이용한 생성 및 복호화방법 및 그 장치

Legal Events

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