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

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

Info

Publication number
KR101676421B1
KR101676421B1 KR1020150102329A KR20150102329A KR101676421B1 KR 101676421 B1 KR101676421 B1 KR 101676421B1 KR 1020150102329 A KR1020150102329 A KR 1020150102329A KR 20150102329 A KR20150102329 A KR 20150102329A KR 101676421 B1 KR101676421 B1 KR 101676421B1
Authority
KR
South Korea
Prior art keywords
type
region
significant bit
compressed
compression
Prior art date
Application number
KR1020150102329A
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 KR1020150102329A priority Critical patent/KR101676421B1/ko
Application granted granted Critical
Publication of KR101676421B1 publication Critical patent/KR101676421B1/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/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • H03M7/4006Conversion to or from arithmetic code
    • H03M7/4012Binary arithmetic codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M5/00Conversion of the form of the representation of individual digits
    • H03M5/02Conversion to or from representation by pulses
    • H03M5/04Conversion to or from representation by pulses the pulses having two levels
    • H03M5/06Code representation, e.g. transition, for a given bit cell depending only on the information in that bit cell
    • H03M5/12Biphase level code, e.g. split phase code, Manchester code; Biphase space or mark code, e.g. double frequency code
    • 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/3059Digital compression and data reduction techniques where the original information is represented by a subset or similar information, e.g. lossy compression
    • H03M7/3064Segmenting

Landscapes

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

Abstract

본 발명은 압축부가 원본 이진데이터를 복수의 클러스터로 분할하는 단계로서, 상기 원본 이진데이터에 포함된 01마다 0과 1을 경계로 하여 분할하는, 분할단계; 상기 압축부가 각 클러스터의 유형에 따라 상기 복수의 클러스터 각각을 압축하여 복수의 압축클러스터를 생성하는 압축단계; 및 출력부가 상기 복수의 압축클러스터를 출력하는 단계를 포함하는 것을 특징으로 하는, 데이터 압축방법에 관한 것이다.

Description

데이터의 압축 및 복원 방법과 장치{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 공개)에 개시되어 있다.
본 발명의 일측면에 따르면, 본 발명이 이루고자 하는 기술적 과제는, 간단한 연산과 하드웨어적 구성을 통해 이진 데이터를 신속하고 효율적으로 압축하고 복원할 수 있고, 압축률도 뛰어나며 압축 데이터 및 복원 데이터의 신뢰성도 높일 수 있을 뿐만 아니라 데이터 전송시 전송효율과 속도도 향상시킬 수 있는 데이터의 압축 및 복원 방법과 장치를 제공하는 데에 있다.
본 발명의 일 측면에 따르면, 본 발명은 압축부가 원본 이진데이터를 복수의 클러스터로 분할하는 단계로서, 상기 원본 이진데이터에 포함된 01마다 0과 1을 경계로 하여 분할하는, 분할단계; 상기 압축부가 각 클러스터의 유형에 따라 상기 복수의 클러스터 각각을 압축하여 복수의 압축클러스터를 생성하는 압축단계; 및 출력부가 상기 복수의 압축클러스터를 출력하는 단계를 포함하는 것을 특징으로 하는, 데이터 압축방법을 제공한다.
본 발명에서, 상기 각 클러스터는 제 1타입, 제 2타입 및 제 3타입 중 어느 한 타입이고, 상기 제 1타입은 자신의 최상위 비트의 하나의 1, 및 하위비트 방향으로의 적어도 하나의 0을 포함하고, 상기 제 2타입은 자신의 최하위 비트의 하나의 0, 및 상위비트 방향으로의 적어도 2개 이상의 1을 포함하며, 제 3타입은 2개 이상의 1로 이루어진 제 1영역 및 2개 이상의 0으로 이루어진 제 2영역을 포함하고 상기 제 1영역은 상기 제 2영역보다 상위비트쪽에 있는 것을 특징으로 한다.
본 발명에서, 상기 압축단계에서 상기 압축부는, 상기 제 1타입에 대해서는 최상위비트에 있는 1을 삭제하여 압축하거나, 최상위비트에 있는 1을 삭제한 후 각 비트값을 반전시켜 압축하고; 상기 제 2타입에 대해서는 최하위비트쪽에 있는 10을 삭제하여 압축하거나, 최하위비트쪽에 있는 10을 삭제한 후 각 비트값을 반전시켜 압축하며; 상기 제 3타입에 대해서는 상기 제 1영역에 있는 1을 삭제할 때마다 상기 제 2영역에 1을 더하는 가산연산에 의해 압축하되, 상기 제 1영역의 1이 모두 없어질 때까지, 또는 상기 제 1영역의 최하위비트의 1과 상기 가산연산결과 상기 제 2영역에서 생성되는 최상위비트의 1이 충돌할 때까지 압축하는 것을 특징으로 한다.
본 발명에서, 상기 분할단계 전에, 상기 압축부가 상기 원본 이진데이터의 최상위비트 앞에는 1을, 최하위비트 뒤에는 0을 추가하는 단계를 더 포함하는 것을 특징으로 한다.
본 발명에서, 상기 출력부는 상기 복수의 압축클러스터를 순차전송 방식에 의해 전송하는 것을 특징으로 하며, 특히 상기 순차전송 방식으로서 맨체스터 코딩방식에 의한 순차전송방식에 의해 전송할 수 있다.
본 발명의 다른 측면에 따르면, 본 발명은 상기 데이터 압축방법에 의해 압축된 이진 데이터를 복원장치가 복원하는 데이터 복원방법을 제공한다.
본 발명의 또 다른 측면에 따르면, 본 발명은 상기 데이터 압축방법에 의해 압축된 이진 데이터를 복원장치가 복원하는 방법으로서, 복원부가, 상기 제 1타입에 대응하는 압축클러스터에 대해서는 최상위 비트에 1을 추가하여 복원하고, 상기 제 2타입에 대응하는 압축클러스터에 대해서는 최하위 비트에 10을 추가하여 복원하고, 상기 제 3타입에 대응하는 압축클러스터에 대해서는, 상기 제 2영역에 대응하는 압축클러스터 부분의 이진수만큼의 1을 상기 제 1영역에 대응하는 압축클러스터 부분에 추가하고 제 2영역의 모든 1을 0으로 치환하여 복원하는 것을 특징으로 하는 데이터 복원방법을 제공한다.
본 발명의 또 다른 측면에 따르면, 본 발명은 원본 이진데이터를 복수의 클러스터로 분할하고, 각 클러스터의 유형에 따라 상기 복수의 클러스터 각각을 압축하여 복수의 압축클러스터를 생성하는 압축부; 및 상기 복수의 압축클러스터를 출력하는 출력부를 포함하되, 상기 압축부는 상기 원본 이진데이터의 분할시, 상기 원본 이진데이터에 포함된 01마다 0과 1을 경계로 하여 분할하는 것을 특징으로 하는, 데이터 압축장치를 제공한다.
본 발명에서, 상기 각 클러스터는 제 1타입, 제 2타입 및 제 3타입 중 어느 한 타입이고, 상기 제 1타입은 자신의 최상위 비트의 하나의 1, 및 하위비트 방향으로의 적어도 하나의 0을 포함하고, 상기 제 2타입은 자신의 최하위 비트의 하나의 0, 및 상위비트 방향으로의 적어도 2개 이상의 1을 포함하며, 제 3타입은 2개 이상의 1로 이루어진 제 1영역 및 2개 이상의 0으로 이루어진 제 2영역을 포함하고 상기 제 1영역은 상기 제 2영역보다 상위비트쪽에 있는 것을 특징으로 한다.
본 발명에서, 상기 압축부는, 상기 제 1타입에 대해서는 최상위비트에 있는 1을 삭제하여 압축하거나, 최상위비트에 있는 1을 삭제한 후 각 비트값을 반전시켜 압축하고; 상기 제 2타입에 대해서는 최하위비트쪽에 있는 10을 삭제하여 압축하거나, 최하위비트쪽에 있는 10을 삭제한 후 각 비트값을 반전시켜 압축하며; 상기 제 3타입에 대해서는 상기 제 1영역에 있는 1을 삭제할 때마다 상기 제 2영역에 1을 더하는 가산연산에 의해 압축하되, 상기 제 1영역의 1이 모두 없어질 때까지, 또는 상기 제 1영역의 최하위비트의 1과 상기 가산연산결과 상기 제 2영역에서 생성되는 최상위비트의 1이 충돌할 때까지 압축하는 것을 특징으로 한다.
본 발명에서, 상기 원본 이진데이터의 분할 전에, 상기 압축부가 상기 원본 이진데이터의 최상위비트 앞에는 1을, 최하위비트 뒤에는 0을 추가하는 것을 특징으로 한다.
본 발명에서, 상기 출력부는 상기 복수의 압축클러스터를 순차전송 방식에 의해 전송하는 것을 특징으로 하며, 특히 상기 순차전송 방식으로서 맨체스터 코딩방식에 의한 순차전송방식에 의해 전송할 수 있다.
본 발명의 또 다른 측면에 따르면, 본 발명은 상기 데이터 압축장치에 의해 압축된 이진 데이터를 복원하는 데이터 복원장치를 제공한다.
또한, 본 발명은 상기 데이터 압축장치에 의해 압축된 이진 데이터를 복원하는 데이터 복원장치로서, 상기 제 1타입에 대응하는 압축클러스터에 대해서는 최상위 비트에 1을 추가하여 복원하고, 상기 제 2타입에 대응하는 압축클러스터에 대해서는 최하위 비트에 10을 추가하여 복원하고, 상기 제 3타입에 대응하는 압축클러스터에 대해서는, 상기 제 2영역에 대응하는 압축클러스터 부분의 이진수만큼의 1을 상기 제 1영역에 대응하는 압축클러스터 부분에 추가하고 제 2영역의 모든 1을 0으로 치환하여 복원하는 것을 특징으로 하는 데이터 복원장치를 제공한다.
본 발명의 일 측면에 따른 데이터의 압축 및 복원 방법과 장치는, 간단한 연산과 하드웨어적 구성을 통해 이진 데이터를 신속하고 효율적으로 압축하고 복원할 수 있고, 압축률도 뛰어나며 압축 데이터 및 복원 데이터의 신뢰성도 높일 수 있을 뿐만 아니라 데이터 전송시 전송효율과 속도도 향상시킬 수 있다.
도 1은 본 발명에 의한 일 실시예에 따른 데이터 압축장치 및 복원장치의 구성을 도시한 것이다.
도 2는 본 발명에 의한 일 실시예에 따른 데이터의 압축방법을 설명하기 위한 흐름도이다.
도 3은 맨체스터 코딩을 설명하기 위한 타이밍도이다.
아래에서는 첨부한 도면을 참고로 하여 본 발명의 실시예에 대하여 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나, 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고, 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면부호를 붙였다.
명세서 전체에서, 어떤 부분이 어떤 구성 요소를 "포함" 한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
도 1은 본 발명에 의한 일 실시예에 따른 데이터 압축장치 및 복원장치의 구성을 도시한 것으로서, 이를 참조하여 본 발명에 따른 실시예를 설명하면 다음과 같다.
도 1에 도시된 바와 같이, 본 실시예에 따른 이진 데이터 압축장치(100)는 압축부(110) 및 출력부(120)를 포함한다.
먼저, 압축부(110)는 원본 이진데이터를 복수의 클러스터로 분할하고, 각 클러스터의 유형에 따라 상기 복수의 클러스터 각각을 압축하여 복수의 압축클러스터를 생성한다. 여기서, 압축부(110)는 상기 원본 이진데이터의 분할시, 상기 원본 이진데이터에 포함된 "01"마다 0과 1을 경계로 하여 분할한다.
출력부(120)는 상기 복수의 압축클러스터를 출력한다.
상기에서, 상기 각 클러스터는 제 1타입, 제 2타입 및 제 3타입 중 어느 한 타입이다. 상기 제 1타입은 자신의 최상위 비트의 하나의 1, 및 하위비트 방향으로의 적어도 하나의 0을 포함하고; 상기 제 2타입은 자신의 최하위 비트의 하나의 0, 및 상위비트 방향으로의 적어도 2개 이상의 1을 포함하며; 제 3타입은 2개 이상의 1로 이루어진 제 1영역 및 2개 이상의 0으로 이루어진 제 2영역을 포함한다. 이 때 상기 제 1영역은 상기 제 2영역보다 상위비트쪽에 있다.
압축부(110)는, 상기 제 1타입에 대해서는 최상위비트에 있는 1을 삭제하여 압축하고; 상기 제 2타입에 대해서는 최하위비트쪽에 있는 10을 삭제하여 압축하며; 상기 제 3타입에 대해서는 상기 제 1영역에 있는 1을 삭제할 때마다 상기 제 2영역에 1을 더하는 가산연산에 의해 압축하되, 상기 제 1영역의 1이 모두 없어질 때까지, 또는 상기 제 1영역의 최하위비트의 1과 상기 가산연산결과 상기 제 2영역에서 생성되는 최상위비트의 1이 충돌할 때까지 압축한다.
본 실시예에서, 상기 원본 이진데이터의 분할 전에, 압축부(110)는 상기 원본 이진데이터의 최상위비트 앞에는 1을, 최하위비트 뒤에는 0을 추가할 수 있다.
또한, 도 1에 도시된 바와 같이, 본 실시예에 따른 데이터 복원장치(200)는 입력부(210) 및 복원부(220)를 포함한다. 입력부(210)는 출력부(120) 등을 통해 전달된 압축데이터를 수신하여 복원부(220)에 전달한다. 복원부(220)는 상기 압축데이터를 복원한다.
이 때, 복원부(220)는 상기 제 1타입에 대응하는 압축클러스터에 대해서는 최상위 비트에 1을 추가하여 복원하고, 상기 제 2타입에 대응하는 압축클러스터에 대해서는 최하위 비트에 10을 추가하여 복원하고, 상기 제 3타입에 대응하는 압축클러스터에 대해서는, 상기 제 2영역에 대응하는 압축클러스터 부분의 이진수만큼의 1을 상기 제 1영역에 대응하는 압축클러스터 부분에 추가하여 복원한다.
이와 같이 구성된 본 실시예의 동작 및 작용을 도 1 및 도 2를 참조하여 구체적으로 설명한다.
도 2는 본 발명에 의한 일 실시예에 따른 데이터의 압축방법을 설명하기 위한 흐름도로서, 이를 참조하여 본 실시예에 따른 데이터 압축방법 및 복원방법을 설명한다.
먼저 데이터 압축방법에 대하여 살펴 보면, 압축부(110)는 원본 이진데이터의 최상위 비트 앞에 1을 추가하고 최하위비트 뒤에 0을 추가할 수 있다. 즉, 이진데이터 010010111001101100 을 예로 들면, 이 이진데이터의 최상위 비트 앞에 1을 추가하고 최하위비트 뒤에 0을 추가하여
1 010010111001101100 0
이라는 데이터를 얻을 수 있다.
다음으로, 압축부(110)는 상기 얻어진 이진데이터를 복수의 클러스터로 분할하는데, 상기 이진데이터에 포함된 "01"마다 0과 1을 경계로 하여 분할한다(S201). 즉, 상기 예의 경우
10/100/10/11100/110/11000
으로 분할한다. 그 결과 상위비트쪽에 하나 이상의 1, 하위비트에 하나 이상의 0으로 이루어진 복수의 바이너리 클러스터를 얻을 수 있다.
이어서, 압축부(110)는 각 클러스터의 유형에 따라 상기 복수의 클러스터 각각을 압축하여 복수의 압축클러스터를 생성한다(S202). 상기 단계(S201)에 의해 생성되는 압축클러스터들은 제 1타입, 제 2타입 및 제 3타입 중 어느 한 타입이다. 여기서, 상기 제 1타입은 자신의 최상위 비트의 하나의 1, 및 하위비트 방향으로의 적어도 하나의 0을 포함하는 클러스터로서, 예를 들어 10, 100, 1000,...등과 같은 형태를 가지는 유형의 클러스터이다. 상기 제 2타입은 자신의 최하위 비트의 하나의 0, 및 상위비트 방향으로의 적어도 2개 이상의 1을 포함하는 클러스터로서, 예를 들어 110, 1110, 11110,...등과 같은 형태를 가지는 유형의 클러스터이다.
상기 제 3타입은 2개 이상의 1로 이루어진 제 1영역 및 2개 이상의 0으로 이루어진 제 2영역을 포함하고 상기 제 1영역은 상기 제 2영역보다 상위비트쪽에 있는 클러스터로서, 예를 들어 1100, 11100, 111100, 11000, 111000, 1110000...등과 같은 형태를 가지는 유형의 클러스터이다.
이 때, 압축부(120)는 상기 제 1타입에 대해서는 최상위비트에 있는 1을 삭제하여 압축한다. 예를 들어, 압축부(120)는 다음과 같이 제 1타입의 클러스터들을 압축한다.
Figure 112015070003875-pat00001
또한, 압축부(120)는 상기 제 2타입에 대해서는 최하위비트쪽에 있는 10을 삭제하여 압축한다. 예를 들어, 압축부(120)는 다음과 같이 제 2타입의 클러스터들을 압축한다.
Figure 112015070003875-pat00002
물론 이 때 제 1타입과 제 2타입의 압축결과가 각각 "0"로만 이루어져 있는 압축클러스터와, 그리고 "1"로만 이루어져 있는 압축클러스터로 되어 있는데 0, 1을 서로 바꾸어서(반전시켜서) 할당할 수도 있다. 즉 제 1타입의 경우 상기 그림의 예로 0==>1, 00==>11, 000==> 111로 반전시켜 압축하고, 제2타입의 경우 상기 그림의 예로 1==>0, 11==>00, 111==>000으로 반전시켜 압축할 수도 있다. 단 이와 같은 경우에는 복호화할 때도 동일하게 고려하여 비트값에 따라 제 1타입에 할당할지 제 2타입에 할당할지를 고려하여 압축해제해야 한다.
또한, 압축부(120)는 상기 제 3타입에 대해서는 상기 제 1영역에 있는 1을 삭제할 때마다 상기 제 2영역에 1을 더하는 가산연산에 의해 압축하되, 상기 제 1영역의 1이 모두 없어질 때까지, 또는 상기 제 1영역의 최하위비트의 1과 상기 가산연산결과 상기 제 2영역에서 생성되는 최상위비트의 1이 충돌할 때(만날 때)까지 압축한다.
제 3타입의 클러스터 "1111000"을 예로 들면, 다음과 같은 방식으로 압축된다. 즉 제 1영역(A)에 있는 1들이 모두 없어질 때까지 압축한다.
Figure 112015070003875-pat00003
제 3타입의 클러스터 "1111100"을 예로 들면, 다음과 같은 방식으로 압축된다. 즉 제 1영역(A)에 있는 최하위비트의 1과, 상기 가산연산결과 상기 제 2영역(B)에서 생성되는 최상위비트의 1이 충돌할 때(만날 때)까지 압축한다.
Figure 112015070003875-pat00004
다음으로, 출력부(120)는 압축부(110)에 의해 생성된 상기 복수의 압축클러스터를 데이터 복원장치(200) 등의 목적 장치로 출력한다. 이 때 출력부(120)는 상기 생성된 복수의 압축클러스터들을 순차적으로 전송하여 데이터 복원장치(200) 등의 목적 장치가 각 압축클러스터들을 구분하여 인식하고 이를 복원하도록 할 수 있다. 이를 위해 다양한 전송방식이 적용될 수 있는데, 이하에서는 순차 전송방식 중에서 맨체스터 코딩방식을 예로 들어 설명하며, 본 발명은 이에 한정되지는 않는다.
본 실시예에서 상기와 같이 각 압축클러스터를 구분하는 정보를 무시하고 연결하면, 무왜곡 부호의 성질을 상실하기 때문에 원본데이터를 복구할 수 없다. 그런데 본 실시예는 이러한 무왜곡 부호를 구현하는 것이 아니라, 압축클러스터를 통신망을 통하여 또는 목적 장치에 압축클러스터 별로 각각 순차적으로 전송한다. 그리고, 수신측에서 각 압축클러스터를 순차적으로 원본 클러스터로 복원하는 과정에서 보다 효율적으로 할 수 있도록 하기 위한 이진데이터의 전처리 과정으로서, 출력부(120)는 상술한 전처리 과정을 거친 뒤 압축클러스터들을 전송한다. 이러한 전처리 과정을 거쳐서 압축클러스터들을 전송하면, 전송에 필요한 클럭을 대폭 절감할 수 있어서 고속전송이 가능하고, 에너지를 절감하여 효율적 전송이 가능하게 된다. 이것은 무왜곡 부호를 통한 데이터 압축을 의미하는 것이 아닌, 이진데이터인 압축클러스터들을 물리적으로 전송할 때 이진데이터의 전처리를 통해 보다 더 전송효율을 증대시키기 위한 것이다.
본 실시예에 따라 실제 통신망에서 전송을 위한 Line coding방법으로서 맨체스터 코딩을 도 3을 참조하여 설명한다. 도 3은 맨체스터 코딩을 설명하기 위한 타이밍도이다.
실제 수신측에서 송신측의 코드를 왜곡되지 않게 전송하기 위해서는 본 압축클러스터를 시간의 순서대로 순차적으로 하나씩 전송하면 되는데, 이러한 전송에 적합한 라인 코딩방식 중의 하나로서 맨체스터 코딩이 있다. 맨체스터 코딩은 아래와 같이 IEEE 802.3 이더넷(Ethernet)에서 사용되는 표준 디지털 부호화 방식으로서, 이 방식에서는 각 비트 시간을 반으로 나누었을 때 중간에서 항상 전압의 변화가 발생하고, 비트 1은 비트 시간 한가운데에서의 전압 변화가 +V에서 -V로 변하고, 비트 0은 전압 변화가 -V에서 +V로 변한다.
맨체스터 부호화는 NRZ나 RZ에 비해서 복잡하고 일반적으로 신호가 더 높은 주파수를 형성하므로 전송시에 더 큰 대역폭을 필요로 하지만, 동기화가 유리하고 약간의 오류 검출 기능을 제공한다.
본 실시예에서는 압축클러스터를 맨체스터 방식으로 전송을 하고자 한다. 바이너리 맨체스터는 +V, -V, 0의 3가지를 가질수 있는데, 비트 1은 비트 시간 한가운데에서의 전압 변화가 음전하고, 비트 0은 전압 변화가 양전함으로써 표현할 수 있다. 기존 맨체스터 코딩방식과 다른점은 추가로 바이너리 클러스터의 사이사이에 전압 zero(0 voltage)를 특정하게 상호 약속된 클럭시간동안 전송 함으로써, 바이너리 클러스터 간 구분정보가 전송가능하다는 점이다.
이러한 규칙에 따라서 하기 압축클러스터는 맨체스터 코드로 변환되어 전송될 수 있다.
000 / 0 / 0 / 0010 / 1 / 0 / 0 / 011 / 11 / 110 / 1
상기에서 설명한 바와 같이 0의 경우에서는 전압변화를 양전시키고, 1의 경우에는 음전시키고, 각 압축클러스터의 구분(/)을 위하여 특정하게 상호 약속된 클럭시간 동안 0 voltage를 중간 중간에 한번씩 전송하는 형태가 그 일 실시례가 될 수 있다.
이 때, 0 voltage는 압축바이너리 클러스터 구분정보의 특성상 양전 또는 음전의 연속사이에서 1번씩만 삽입되므로, 0 영속의 문제 또는 DC balance의 문제는 발생하지 않는다.
특히, 압축클러스터 사이라는 정보를 0 voltage로 특정하게 상호 약속된 클럭시간동안 보내지만 오로지 1개의 0 volatage를 전송하므로, 또한 연속된 2개이상의 0 전압은 존재하지 않는다. 따라서, 2개 이상의 0전압일 경우 신호가 없는 것으로 간주할 수 있다. 이것은 영연속이 존재하지 않으므로 영연속에 대한 제약조건이 없으며, 역시 직류성분은 또한 존재하지 않게 전송이 가능하다.
상기와 같은 방식 외에도, 이진수 "0" , "1" 그리고 압축클러스터 간을 구분할 수 있도록 전송이 가능한 어떠한 line coding 방법, 전자적/광학적/자기적/물리적 저장, 통신방법 등 다양한 방법이 적용가능하다.
상기와 같은 과정을 통해 이진 데이터가 압축되어 출력되면, 데이터 복원장치(200)는 입력부(210)를 통해 상기 복수의 압축클러스터를 입력받아 복원부(220)에 전달하고, 복원부(220)는 전달받은 상기 복수의 압축클러스터를 복원한다.
이 때 복원부(220)는 상기 압축장치(100)에서의 압축동작과는 반대로 복원을 수행한다. 즉, 복원부(220)는 상기 제 1타입에 대응하는 압축클러스터에 대해서는 최상위 비트에 1을 추가하여 복원하는바, 예를 들어 00은 100으로, 000은 1000으로 복원한다. 그리고, 상기 제 2타입에 대응하는 압축클러스터에 대해서는, 복원부(220)는 최하위 비트에 10을 추가하여 복원하는바, 예를 들어 1은 110으로, 11은 1110으로, 111은 11110으로 복원한다.
또한, 상기 제 3타입에 대응하는 압축클러스터에 대해서는, 다음과 같은 방법을 통해 복원하는데, 이 때에는 압축클러스터 내에 "01"이 포함되어 있느냐의 여부가 중요하며, 만약 "01"이 포함되어 있다면 압축클러스터 자체가 상기 제 2영역(B)이 되기 때문이다.
[1] "01" 포함되어 있는 압축바이너리 클러스터
이 경우에는, 압축바이너리 클러스터의 자체가 상기 제 2영역(B)이다. 이렇게 압축 바이너리 클러스터의 종류에 따라 설정된, B영역에서 1씩 카운트다운하면서 압축클러스터의 최상위 비트 앞에 "1"을 하나씩 추가하여 가면서, B영역이 "0"으로만 이루어진 이진수가 되면 해당 압축클러스터의 복원과정이 종료된다.
예를 들어, "00110" 이라는 압축바이너리 클러스터가 있다면, "01" 이 포함된 압축바이너리 클러스터이므로, 압축클러스터 자체가 B영역이다.
이제 B 영역을 카운트 다운하면서, 복원(압축해제)을 수행하면,
1) 1회차 압축해제
00110 ==> 100101
2) 2회차 압축해제
100101 ==> 1100100
3) 3회차 압축해제
1100100 ==>11100011
4)4회차 압축해제
11100011 ==>111100010
5)5회차 압축해제
111100010 ==> 1111100001
6)6회차 압축해제
1111100001 ==> 11111100000
상기과정을 더 빠르게 수행한다면, B영역에서 최상위의 연속된 "0"을 제외하면 "110"이 남는데 "110"은 십진수로 6이므로, 6회차의 압축과정이 수행될 수 있음을 알 수 있다. 따라서 빠르게 복원(압축해제)하면, 최상위 비트 앞에 6비트의 "1"을 첨가하고, B 영역을 모두 "0"으로 reset하면 된다.
[2] "10" 이 포함된 압축 바이너리 클러스터로서, "01" 이 포함되지 않는 형태
이 경우는 최상위비트에서 최하위 비트로 스캔하면서 "10" 이 처음 시작하는 위치부터 최하위비트까지가 B영역이다.
예를 들어, "100" 이라는 압축바이너리 클러스터를 생각해 볼 수 있다. 이 경우에는 "10"은 포함되어 있고 "01"은 포함되어 있지 않은 경우로서, 최상위비트에서 최하위비트로 스캔하면서 "10" 이 처음 시작하는 위치부터 최하위비트까지가 B영역이다. "10"이 가장 최상위 비트에서 처음으로 만나므로, B영역은 최상위비트에서부터 시작한다.
이 경우에는 제 1영역(A) 자체가 모두 압축을 통해 없어졌고, 제 2영역(B)만 남은 경우로서, B영역을 카운트 다운하면서 압축클러스터의 최상위비트 앞에서 순차적으로 A영역을 1비트씩 복원하면 된다.
1) 1회차 압축해제
100 ==> 1011
2) 2회차 압축해제
1011 ==> 11010
3) 3회차 압축해제
11010 ==> 111001
4)4회차 압축해제
111001 ==> 1111000
상기 4회차 압축해제가 끝나면 B영역은 "0" 으로만 이루어진 이진수가 되므로, 압축해제는 종료하고 바이너리 클러스터 "111000"이 복원(복호화)된다. 상기 복원과정을 정리하면 아래와 같다.
Figure 112015070003875-pat00005
또 다른 유형의 예로서, "1111000" 이라는 압축클러스터를 생각해 볼 수 있다. 이 압축클러스터는 사실 압축당시에 AB영역 충돌이 일어나서 그 회차에서 압축이 종료되는 경우들이다.
"10"이 시작되는 위치부터 최하위 비트까지가 B영역이므로 다음과 같다. 앞의 "111"은 압축이 되다가 남은 A영역의 잔재비트들이다.
Figure 112015070003875-pat00006
B영역을 모두 "0"으로 만들 때까지 순차적으로 1 씩 빼나가면서 최상위비트앞에 "1"을 추가하면 된다.
1) 1회차 압축해제
1111000 ==> 11110111
2) 2회차 압축해제
11110111 ==> 111110110
3) 3회차 압축해제
111110110 ==> 1111110101
4) 4회차 압축해제
1111110101 ==> 11111110100
5)5회차 압축해제
11111110100 ==> 111111110011
6)6회차 압축해제
111111110011 ==>1111111110010
7) 7회차 압축해제
1111111110010 ==>11111111110001
8) 8회차 압축해제
11111111110001 ==> 111111111110000
상기 압축과정을 정리하면 아래와 같다.
Figure 112015070003875-pat00007
[2]유형의 경우 B 영역이 나타내는 값만큼의 갯수에 해당하는 연속된 "1"을 최상위비트 앞에 추가하고, B영역은 모두 "0" 으로 reset하면 매우 빠르게 압축해제가 된다.
즉 "1111000" 의 경우에 B영역은 "1000" 인데 "1000"은 십진수로 8이므로, 8비트의 "1"로만 이루어진 이진수를 압축클러스터 최상위 비트 앞에 추가하고, B영역은 "0"으로 reset하면 압축이 해제된다.
압축클러스터 "100" 의 경우에도 B영역은 "100" 인데 "100"은 십진수로 4이므로, 4비트의 "1"로만 이루어진 이진수를 압축클러스터의 최상위 비트 앞에 추가하고, B영역은 "0"으로 reset하면 압축이 해제된다.
복원부(220)는 상기 제 2영역에 대응하는 압축클러스터 부분의 이진수만큼의 1을 상기 제 1영역에 대응하는 압축클러스터 부분에 추가하고 제 2영역의 모든 1을 0으로 치환하여 복원한다. 즉, 예를 들어 1011의 경우에는 제 2영역에 대응하는 부분은 011이므로 그 값은 3이기 때문에 제 1영역에 대응되는 부분인 1앞에 3개의 1(즉 111)을 추가하고, 제 2영역에 대응하는 부분인 011의 모든 1은 0으로 치환함으로써, 1111000이라는 클러스터를 얻는다. 또한, 예를 들어 11110의 경우에는 제 1영역에 대응하는 부분의 1과 제 2영역에 대응하는 부분의 1이 충돌하는 부분을 경계로 하여 111/10으로 구분할 수 있으므로, 제 1영역에 대응하는 부분은 111이고 제 2영역에 대응하는 부분은 10이다. 따라서, 제 2영역에 대응하는 부분은 10이므로 그 값은 2이기 때문에 제 1영역에 대응되는 부분인 111앞에 2개의 1(즉 11)을 추가하고, 제 2영역에 대응하는 부분인 10의 모든 1은 0으로 치환함으로써, 1111100이라는 클러스터를 얻는다.
이어서, 복원부(220)는 복원된 상기 복수의 클러스터를 결합하여 최종적으로 이진데이터를 복원한다.
이상 살펴 본 바와 같이, 본 실시예에 따른 데이터의 압축 및 복원 방법과 장치는, 간단한 연산과 하드웨어적 구성을 통해 이진 데이터를 신속하고 효율적으로 압축하고 복원할 수 있고, 압축률도 뛰어나며 압축 데이터 및 복원 데이터의 신뢰성도 높일 수 있을 뿐만 아니라 데이터 전송시 전송효율과 속도도 향상시킬 수 있다.
이상에서 본 발명의 실시 예에 대하여 상세하게 설명하였지만 본 발명의 권리범위는 이에 한정되는 것은 아니고, 다음의 청구범위에서 정의하고 있는 본 발명의 기본 개념을 이용한 당업자의 여러 변형 및 개량 형태 또한 본 발명의 권리범위에 속하는 것이다.
100 : 데이터 압축장치
110 : 압축부 120 : 출력부
200 : 데이터 복원장치
210 : 입력부 220 : 복원부

Claims (16)

  1. 압축부가 원본 이진데이터를 복수의 클러스터로 분할하는 단계로서, 상기 원본 이진데이터에 포함된 01마다 0과 1을 경계로 하여 분할하는, 분할단계;
    상기 압축부가 각 클러스터의 유형에 따라 상기 복수의 클러스터 각각을 압축하여 복수의 압축클러스터를 생성하는 압축단계; 및
    출력부가 상기 복수의 압축클러스터를 출력하는 단계를 포함하는 것을 특징으로 하는, 데이터 압축방법.
  2. 제 1항에 있어서,
    상기 각 클러스터는 제 1타입, 제 2타입 및 제 3타입 중 어느 한 타입이고,
    상기 제 1타입은 자신의 최상위 비트의 하나의 1, 및 하위비트 방향으로의 적어도 하나의 0을 포함하고,
    상기 제 2타입은 자신의 최하위 비트의 하나의 0, 및 상위비트 방향으로의 적어도 2개 이상의 1을 포함하며,
    제 3타입은 2개 이상의 1로 이루어진 제 1영역 및 2개 이상의 0으로 이루어진 제 2영역을 포함하고 상기 제 1영역은 상기 제 2영역보다 상위비트쪽에 있는 것을 특징으로 하는 데이터 압축방법.
  3. 제 2항에 있어서,
    상기 압축단계에서 상기 압축부는,
    상기 제 1타입에 대해서는 최상위비트에 있는 1을 삭제하여 압축하거나, 최상위비트에 있는 1을 삭제한 후 각 비트값을 반전시켜 압축하고;
    상기 제 2타입에 대해서는 최하위비트쪽에 있는 10을 삭제하여 압축하거나, 최하위비트쪽에 있는 10을 삭제한 후 각 비트값을 반전시켜 압축하며;
    상기 제 3타입에 대해서는 상기 제 1영역에 있는 1을 삭제할 때마다 상기 제 2영역에 1을 더하는 가산연산에 의해 압축하되, 상기 제 1영역의 1이 모두 없어질 때까지, 또는 상기 제 1영역의 최하위비트의 1과 상기 가산연산결과 상기 제 2영역에서 생성되는 최상위비트의 1이 충돌할 때까지 압축하는 것을 특징으로 하는 데이터 압축방법.
  4. 제 1항에 있어서,
    상기 분할단계 전에, 상기 압축부가 상기 원본 이진데이터의 최상위비트 앞에는 1을, 최하위비트 뒤에는 0을 추가하는 단계를 더 포함하는 것을 특징으로 하는 데이터 압축방법.
  5. 제 1항에 있어서, 상기 출력부가 상기 복수의 압축클러스터를 출력하는 단계에서, 상기 출력부는 상기 복수의 압축클러스터를 순차전송 방식에 의해 특정 목적 장치로 출력하는 것을 특징으로 하는, 데이터 압축방법.
  6. 삭제
  7. 삭제
  8. 제 3항에 기재된 데이터 압축방법에 의해 압축된 이진 데이터를 복원장치가 복원하는 방법으로서, 복원부가,
    상기 제 1타입에 대응하는 압축클러스터에 대해서는 최상위 비트에 1을 추가하여 복원하고,
    상기 제 2타입에 대응하는 압축클러스터에 대해서는 최하위 비트에 10을 추가하여 복원하고,
    상기 제 3타입에 대응하는 압축클러스터에 대해서는, 상기 제 2영역에 대응하는 압축클러스터 부분의 이진수만큼의 1을 상기 제 1영역에 대응하는 압축클러스터 부분에 추가하고 제 2영역의 모든 1을 0으로 치환하여 복원하는 것을 특징으로 하는 데이터 복원방법.
  9. 원본 이진데이터를 복수의 클러스터로 분할하고, 각 클러스터의 유형에 따라 상기 복수의 클러스터 각각을 압축하여 복수의 압축클러스터를 생성하는 압축부; 및
    상기 복수의 압축클러스터를 출력하는 출력부를 포함하되,
    상기 압축부는 상기 원본 이진데이터의 분할시, 상기 원본 이진데이터에 포함된 01마다 0과 1을 경계로 하여 분할하는 것을 특징으로 하는, 데이터 압축장치.
  10. 제 9항에 있어서,
    상기 각 클러스터는 제 1타입, 제 2타입 및 제 3타입 중 어느 한 타입이고,
    상기 제 1타입은 자신의 최상위 비트의 하나의 1, 및 하위비트 방향으로의 적어도 하나의 0을 포함하고,
    상기 제 2타입은 자신의 최하위 비트의 하나의 0, 및 상위비트 방향으로의 적어도 2개 이상의 1을 포함하며,
    제 3타입은 2개 이상의 1로 이루어진 제 1영역 및 2개 이상의 0으로 이루어진 제 2영역을 포함하고 상기 제 1영역은 상기 제 2영역보다 상위비트쪽에 있는 것을 특징으로 하는 데이터 압축장치.
  11. 제 10항에 있어서,
    상기 압축부는,
    상기 제 1타입에 대해서는 최상위비트에 있는 1을 삭제하여 압축하거나, 최상위비트에 있는 1을 삭제한 후 각 비트값을 반전시켜 압축하고;
    상기 제 2타입에 대해서는 최하위비트쪽에 있는 10을 삭제하여 압축하거나, 최하위비트쪽에 있는 10을 삭제한 후 각 비트값을 반전시켜 압축하며;
    상기 제 3타입에 대해서는 상기 제 1영역에 있는 1을 삭제할 때마다 상기 제 2영역에 1을 더하는 가산연산에 의해 압축하되, 상기 제 1영역의 1이 모두 없어질 때까지, 또는 상기 제 1영역의 최하위비트의 1과 상기 가산연산결과 상기 제 2영역에서 생성되는 최상위비트의 1이 충돌할 때까지 압축하는 것을 특징으로 하는 데이터 압축장치.
  12. 제 9항에 있어서,
    상기 원본 이진데이터의 분할 전에, 상기 압축부가 상기 원본 이진데이터의 최상위비트 앞에는 1을, 최하위비트 뒤에는 0을 추가하는 것을 특징으로 하는 데이터 압축장치.
  13. 제 9항에 있어서, 상기 출력부는 상기 복수의 압축클러스터를 순차전송 방식에 의해 특정 목적장치로 출력하는 것을 특징으로 하는, 데이터 압축장치.
  14. 삭제
  15. 삭제
  16. 제 11항에 기재된 데이터 압축장치에 의해 압축된 이진 데이터를 복원하는 데이터 복원장치로서,
    상기 제 1타입에 대응하는 압축클러스터에 대해서는 최상위 비트에 1을 추가하여 복원하고,
    상기 제 2타입에 대응하는 압축클러스터에 대해서는 최하위 비트에 10을 추가하여 복원하고,
    상기 제 3타입에 대응하는 압축클러스터에 대해서는, 상기 제 2영역에 대응하는 압축클러스터 부분의 이진수만큼의 1을 상기 제 1영역에 대응하는 압축클러스터 부분에 추가하고 제 2영역의 모든 1을 0으로 치환하여 복원하는 것을 특징으로 하는 데이터 복원장치.

KR1020150102329A 2015-07-20 2015-07-20 데이터의 압축 및 복원 방법과 장치 KR101676421B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020150102329A KR101676421B1 (ko) 2015-07-20 2015-07-20 데이터의 압축 및 복원 방법과 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150102329A KR101676421B1 (ko) 2015-07-20 2015-07-20 데이터의 압축 및 복원 방법과 장치

Publications (1)

Publication Number Publication Date
KR101676421B1 true KR101676421B1 (ko) 2016-11-15

Family

ID=57525373

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150102329A KR101676421B1 (ko) 2015-07-20 2015-07-20 데이터의 압축 및 복원 방법과 장치

Country Status (1)

Country Link
KR (1) KR101676421B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106992786A (zh) * 2017-03-21 2017-07-28 深圳三星通信技术研究有限公司 一种基带数据压缩方法、装置和系统

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150094078A (ko) * 2014-02-10 2015-08-19 유상규 플렉서블디스플레이의 높이 조절 장치

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150094078A (ko) * 2014-02-10 2015-08-19 유상규 플렉서블디스플레이의 높이 조절 장치

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106992786A (zh) * 2017-03-21 2017-07-28 深圳三星通信技术研究有限公司 一种基带数据压缩方法、装置和系统

Similar Documents

Publication Publication Date Title
CN108768403B (zh) 基于lzw的无损数据压缩、解压方法及lzw编码器、解码器
JP3541930B2 (ja) 符号化装置及び復号化装置
US8872677B2 (en) Method and apparatus for compressing data-carrying signals
CN113810057B (zh) 用于语义值数据压缩和解压缩的方法、设备和系统
US9094039B2 (en) Efficient deflate decompression
CN108702160B (zh) 用于压缩和解压缩数据的方法、设备和系统
CN112399479B (zh) 用于数据传输的方法、电子设备和存储介质
US6778109B1 (en) Method for efficient data encoding and decoding
KR101676421B1 (ko) 데이터의 압축 및 복원 방법과 장치
JP6426212B2 (ja) 制限されたキャリー演算による算術コーディングを遂行するための方法及び装置
CN110191341B (zh) 一种深度数据的编码方法和解码方法
KR101575939B1 (ko) 이진 데이터의 압축 및 복원 방법과 장치
EP4216442A1 (en) Generalized near optimal packet encoding
Kwon et al. Error detection algorithm for Lempel-Ziv-77 compressed data
KR100636370B1 (ko) 결정 비트를 이용한 부호화 장치 및 그 방법과 그에 따른복호화 장치 및 그 방법
KR20150093060A (ko) 이진 데이터의 압축 및 복원 방법과 장치
KR101471833B1 (ko) 이진 데이터의 압축 및 압축해제 방법과 장치
CN115733606A (zh) 用于对数据进行编码和解码的方法以及转换编码器
KR101549740B1 (ko) 이진 데이터의 압축 및 압축해제 방법과 장치
KR102361730B1 (ko) 데이터 압축 방법 및 장치
KR101676420B1 (ko) 데이터의 압축 및 복원 방법과 장치
KR101573983B1 (ko) 데이터 압축 및 데이터 복원 방법과 장치
KR101652735B1 (ko) 이진 데이터의 압축 및 복원 방법과 장치
KR101603866B1 (ko) 데이터 압축 및 데이터 복원 방법과 장치
KR20190091586A (ko) TCP/IP 패킷에 있어서 고정비트 길이 이진데이터의 Octet 규격사이즈 압축을 위한 패킷 데이터 압축 방법 및 그 장치

Legal Events

Date Code Title Description
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20191112

Year of fee payment: 4