KR20140145437A - 이진 데이터의 압축 및 압축해제 방법과 장치 - Google Patents

이진 데이터의 압축 및 압축해제 방법과 장치 Download PDF

Info

Publication number
KR20140145437A
KR20140145437A KR1020130067891A KR20130067891A KR20140145437A KR 20140145437 A KR20140145437 A KR 20140145437A KR 1020130067891 A KR1020130067891 A KR 1020130067891A KR 20130067891 A KR20130067891 A KR 20130067891A KR 20140145437 A KR20140145437 A KR 20140145437A
Authority
KR
South Korea
Prior art keywords
binary
cluster
carry
compression
compressed
Prior art date
Application number
KR1020130067891A
Other languages
English (en)
Other versions
KR101549740B1 (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 김정훈
Priority to KR1020130067891A priority Critical patent/KR101549740B1/ko
Publication of KR20140145437A publication Critical patent/KR20140145437A/ko
Application granted granted Critical
Publication of KR101549740B1 publication Critical patent/KR101549740B1/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

Landscapes

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

Abstract

본 발명은 압축연산부가 이진 데이터를 최하위비트로부터 미리 설정된 기준비트수 단위로 분할하여 적어도 하나의 바이너리 클러스터를 생성하는 단계; 상기 압축연산부가 각 바이너리 클러스터에 대하여, 상기 각 바이너리 클러스터가 제 1 캐리포인트를 기점으로 하여 최초로 캐리다운 이벤트(carry down event)를 일으키도록 하는, 상기 제 1 캐리포인트의 위치를 시점으로 하여 상위비트 방향으로 최소 개수의 1로만 이루어진 이진수를 상기 각 바이너리 클러스터에 감산하는 단계; 및 상기 압축연산부가 상기 제 1 캐리포인트의 위치를 한 자리씩 상위자리로 이동시키면서 캐리다운 이벤트가 더 이상 발생하지 않을 때까지 상기 각 바이너리 클러스터에 대하여 상기 감산하는 단계를 반복하여, 적어도 하나의 압축 클러스터를 생성하는 단계를 포함하되, 상기 캐리다운 이벤트는 상기 각 바이너리 클러스터에 대한 뺄셈시 윗자리로부터 숫자를 빌려오는 것을 의미하고, 상기 제 1 캐리포인트는 상기 각 바이너리 클러스터의 최하위자리로부터 시작하여 한 자리씩 상위자리로 이동하는 것을 특징으로 하는, 압축장치의 이진 데이터 압축방법에 관한 것이다.

Description

이진 데이터의 압축 및 압축해제 방법과 장치{BINARY DATA COMPRESSION AND DECOMPRESSION 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 캐리포인트를 기점으로 하여 최초로 캐리다운 이벤트(carry down event)를 일으키도록 하는, 상기 제 1 캐리포인트의 위치를 시점으로 하여 상위비트 방향으로 최소 개수의 1로만 이루어진 이진수를 상기 각 바이너리 클러스터에 감산하는 단계; 및 상기 압축연산부가 상기 제 1 캐리포인트의 위치를 한 자리씩 상위자리로 이동시키면서 캐리다운 이벤트가 더 이상 발생하지 않을 때까지 상기 각 바이너리 클러스터에 대하여 상기 감산하는 단계를 반복하여, 적어도 하나의 압축 클러스터를 생성하는 단계를 포함하되, 상기 캐리다운 이벤트는 상기 각 바이너리 클러스터에 대한 뺄셈시 윗자리로부터 숫자를 빌려오는 것을 의미하고, 상기 제 1 캐리포인트는 상기 각 바이너리 클러스터의 최하위자리로부터 시작하여 한 자리씩 상위자리로 이동하는 것을 특징으로 하는, 압축장치의 이진 데이터 압축방법을 제공한다.
본 발명에서, 송신부가 상기 압축연산부에 의해 생성된 상기 적어도 하나의 압축 클러스터를 목적 장치로 전송하는 단계를 더 포함하는 것을 특징으로 한다.
본 발명에서, 상기 전송하는 단계 전에, 상기 생성된 각 압축 클러스터에서, 최후로 이동된 상기 제 1 캐리포인트의 위치 앞에 있는 1은 모두 0으로 변경하는 것을 특징으로 한다.
본 발명에서, 상기 이진 데이터를 최하위비트로부터 분할하여 생성된 상기 적어도 하나의 바이너리 클러스터 중 비트수가 상기 기준비트수보다 적은 바이너리 클러스터는, 그에 대응하는 압축클러스터를 생성하지 않고 원본 자체로 상기 목적장치로 전송하거나, 대응하는 압축 클러스터를 생성한 후 상기 바이너리 클러스터에 대한 정보를 가지는 시그널 비트와 함께 전송하는 것을 특징으로 한다.
본 발명에서, 상기 적어도 하나의 바이너리 클러스터 중 최상위비트에 0이 포함된 바이너리 클러스터는 최상위비트로부터 연속하여 배치된 적어도 하나의 0을 제거한 후 상기 압축방법을 수행하는 것을 특징으로 한다.
본 발명의 다른 측면에 따르면, 본 발명은 이진 데이터 압축방법에 의해 압축된 이진 데이터를 압축해제하는 방법으로서, 상기 압축해제연산부가 각 압축 클러스터에 대하여, 상기 각 압축 클러스터가 제 2 캐리포인트를 기점으로 하여 최초로 캐리업 이벤트(carry up event)를 일으키도록 하는, 상기 제 2 캐리포인트의 위치를 시점으로 하여 상위비트 방향으로 최소 개수의 1로만 이루어진 이진수를 상기 각 압축 클러스터에 가산하는 단계; 상기 압축해제연산부가 상기 제 2 캐리포인트의 위치를 한 자리씩 하위자리로 이동시키면서 최하위 비트에 이를 때까지 상기 각 압축 클러스터에 대하여 상기 가산하는 단계를 반복하여, 적어도 하나의 압축 해제 바이너리 클러스터를 생성하는 단계; 및 상기 압축해제연산부가 상기 적어도 하나의 압축 해제 바이너리 클러스터를 결합하여 이진 데이터를 생성하는 단계를 포함하되, 상기 캐리업 이벤트는 상기 각 압축 클러스터에 대한 덧셈시 윗자리로 숫자를 올림하는 것을 의미하고, 상기 제 2 캐리포인트는 상기 각 압축 클러스터의 최상위자리로부터 배치된 적어도 0개 이상의 0에 의해 결정되는 자리로부터 시작하여 한 자리씩 하위자리로 이동하는 것을 특징으로 하는, 이진 데이터 압축해제방법을 제공한다.
본 발명에서, 상기 가산하는 단계 전에, 상기 각 압축 클러스터의 최상위비트에 0이 있는 경우 상기 0을 1로 변경하는 것을 특징으로 한다.
본 발명에서, 상기 압축 해제 바이너리 클러스터의 비트수가 상기 기준비트수보다 작은 경우 상기 압축 해제 바이너리 클러스터 앞에 적어도 하나의 0을 추가하여 상기 기준비트수가 되도록 하는 것을 특징으로 한다.
본 발명의 또 다른 측면에 따르면, 본 발명은 이진 데이터를 최하위비트로부터 미리 설정된 기준비트수 단위로 분할하여 적어도 하나의 바이너리 클러스터를 생성하고, 각 바이너리 클러스터에 대하여 상기 각 바이너리 클러스터가 제 1 캐리포인트를 기점으로 하여 최초로 캐리다운 이벤트를 일으키도록 하는, 상기 제 1 캐리포인트의 위치를 시점으로 하여 최소 개수의 1로만 이루어진 이진수를 상기 각 바이너리 클러스터에 감산하는 감산연산을 수행하되, 상기 제 1 캐리포인트의 위치를 한 자리씩 상위자리로 이동시키면서 캐리다운 이벤트가 더 이상 발생하지 않을 때까지 상기 각 바이너리 클러스터에 대하여 상기 감산연산을 반복하여 적어도 하나의 압축 클러스터를 생성하는 압축연산부를 포함하되, 상기 캐리다운 이벤트는 상기 각 바이너리 클러스터에 대한 뺄셈시 윗자리로부터 숫자를 빌려오는 것을 의미하고, 상기 제 1 캐리포인트는 상기 각 바이너리 클러스터의 최하위자리로부터 시작하여 한 자리씩 상위자리로 이동하는 것을 특징으로 하는, 이진 데이터 압축장치를 제공한다.
본 발명에서, 상기 압축연산부에 의해 생성된 상기 적어도 하나의 압축 클러스터를 목적 장치로 전송하는 송신부를 더 포함하는 것을 특징으로 한다.
본 발명에서, 상기 송신부에 의한 전송 전에, 상기 압축연산부는 상기 각 압축 클러스터에서, 최후로 이동된 상기 제 1 캐리포인트의 위치 앞에 있는 1은 모두 0으로 변경하는 것을 특징으로 한다.
본 발명에서, 상기 이진 데이터를 최하위비트로부터 분할하여 생성된 상기 적어도 하나의 바이너리 클러스터 중 비트수가 상기 기준비트수보다 적은 바이너리 클러스터는, 그에 대응하는 압축클러스터를 생성하지 않고 원본 자체로 상기 목적장치로 전송하거나, 대응하는 압축 클러스터를 생성한 후 상기 바이너리 클러스터에 대한 정보를 가지는 시그널 비트와 함께 전송하는 것을 특징으로 한다.
본 발명에서, 상기 압축연산부는, 상기 적어도 하나의 바이너리 클러스터 중 최상위비트에 0이 포함된 바이너리 클러스터의 경우 최상위비트로부터 연속하여 배치된 적어도 하나의 0을 제거한 후 상기 압축 클러스터를 생성하는 것을 특징으로 한다.
본 발명에서, 상기 압축연산부는 상기 이진 데이터를 분할하여 상기 적어도 하나의 바이너리 클러스터를 생성하는 데이터 분할부; 및 각 바이너리 클러스터에 대하여, 캐리다운 이벤트가 더 이상 발생하지 않을 때까지 상기 각 바이너리 클러스터에 대하여 상기 감산연산을 반복하여 상기 적어도 하나의 압축 클러스터를 생성하는 압축클러스터 생성부를 포함하는 것을 특징으로 한다.
본 발명의 또 다른 측면에 따르면, 본 발명은 압축 이진 데이터를 압축해제하는 이진 데이터 압축해제장치로서, 각 압축 클러스터에 대하여, 상기 각 압축 클러스터가 제 2 캐리포인트를 기점으로 하여 최초로 캐리업 이벤트(carry up event)를 일으키도록 하는, 상기 제 2 캐리포인트의 위치를 시점으로 하여 상위비트 방향으로 최소 개수의 1로만 이루어진 이진수를 상기 각 압축 클러스터에 가산하는 가산연산을 수행하되, 상기 제 2 캐리포인트의 위치를 한 자리씩 하위자리로 이동시키면서 최하위 비트에 이를 때까지 상기 각 압축 클러스터에 대하여 상기 가산연산을 반복하여 적어도 하나의 압축 해제 바이너리 클러스터를 생성하고, 상기 적어도 하나의 압축 해제 바이너리 클러스터를 결합하여 이진 데이터를 생성하는 압축해제연산부를 포함하되, 상기 캐리업 이벤트는 상기 각 압축 클러스터에 대한 덧셈시 윗자리로 숫자를 올림하는 것을 의미하고, 상기 제 2 캐리포인트는 상기 각 압축 클러스터의 최상위자리로부터 배치된 적어도 0개 이상의 0에 의해 결정되는 자리로부터 시작하여 한 자리씩 하위자리로 이동하는 것을 특징으로 하는 이진 데이터 압축해제장치를 제공한다.
본 발명에서, 상기 압축해제연산부는 상기 가산연산 수행 전에, 상기 각 압축 클러스터의 최상위비트에 0이 있는 경우 상기 0을 1로 변경하는 것을 특징으로 한다.
본 발명에서, 상기 압축해제연산부는 상기 압축 해제 바이너리 클러스터의 비트수가 상기 기준비트수보다 작은 경우 상기 압축 해제 바이너리 클러스터 앞에 적어도 하나의 0을 추가하여 상기 기준비트수가 되도록 하는 것을 특징으로 한다.
본 발명에서, 상기 압축해제연산부는 각 압축 클러스터에 대하여, 상기 제 2 캐리포인트의 위치를 한 자리씩 하위자리로 이동시키면서 최하위 비트에 이를 때까지 상기 각 압축 클러스터에 대하여 상기 가산연산을 반복하여 상기 적어도 하나의 압축 해제 바이너리 클러스터를 생성하는 압축해제 바이너리 클러스터 생성부; 및 상기 적어도 하나의 압축 해제 바이너리 클러스터를 결합하여 이진 데이터를 생성하는 클러스터 결합부를 포함하는 것을 특징으로 한다.
본 발명에 따른 이진 데이터의 압축 및 압축해제 방법과 장치는, 간단한 연산과 하드웨어적 구성을 통해 이진 데이터를 신속하고 효율적으로 압축하고 압축해제할 수 있을 뿐만 아니라, 압축률도 뛰어나며 압축 데이터 및 압축 해제 데이터의 신뢰성도 높일 수 있다.
도 1은 본 발명에 의한 일 실시예에 따른 이진 데이터의 압축장치 및 압축해제장치의 구성을 도시한 것이다.
도 2는 본 발명에 의한 일 실시예에 따른 이진 데이터의 압축방법을 설명하기 위한 흐름도이다.
도 3은 본 발명에 의한 일 실시예에 따른 이진 데이터의 압축해제방법을 설명하기 위한 흐름도이다.
아래에서는 첨부한 도면을 참고로 하여 본 발명의 실시예에 대하여 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면부호를 붙였다.
명세서 전체에서, 어떤 부분이 어떤 구성 요소를 "포함" 한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
도 1은 본 발명에 의한 일 실시예에 따른 이진 데이터의 압축장치 및 압축해제장치의 구성을 도시한 것으로서, 이를 참조하여 본 발명을 설명하면 다음과 같다.
도 1에 도시된 바와 같이, 본 실시예에 따른 이진 데이터 압축장치(100)는 압축연산부(110) 및 송신부(120)를 포함한다.
압축연산부(110)는 이진 데이터를 최하위비트로부터 미리 설정된 기준비트수 단위로 분할하여 적어도 하나의 바이너리 클러스터를 생성하고, 각 바이너리 클러스터에 대하여 상기 각 바이너리 클러스터가 제 1 캐리포인트를 기점으로 하여 최초로 캐리다운 이벤트를 일으키도록 하는, 상기 제 1 캐리포인트의 위치를 시점으로 하여 최소 개수의 1로만 이루어진 이진수를 상기 각 바이너리 클러스터에 감산하는 감산연산을 수행하되, 상기 제 1 캐리포인트의 위치를 한 자리씩 상위자리로 이동시키면서 캐리다운 이벤트가 더 이상 발생하지 않을 때까지 상기 각 바이너리 클러스터에 대하여 상기 감산연산을 반복하여 적어도 하나의 압축 클러스터를 생성한다. 여기서, 상기 캐리다운 이벤트는 상기 각 바이너리 클러스터에 대한 뺄셈시 윗자리로부터 숫자를 빌려오는 것을 의미하고, 상기 제 1 캐리포인트는 상기 각 바이너리 클러스터의 최하위자리로부터 시작하여 한 자리씩 상위자리로 이동하는 것을 특징으로 한다.
송신부(120)는 상기 압축연산부(110)에 의해 생성된 상기 적어도 하나의 압축 클러스터를 압축해제장치(200) 등의 목적 장치로 전송한다.
압축연산부(110)는 이진 데이터를 분할하여 상기 적어도 하나의 바이너리 클러스터를 생성하는 데이터 분할부(111); 및 각 바이너리 클러스터에 대하여 캐리다운 이벤트가 더 이상 발생하지 않을 때까지, 상기 각 바이너리 클러스터에 대하여 상기 감산연산을 반복하여 상기 적어도 하나의 압축 클러스터를 생성하는 압축클러스터 생성부(112)를 포함한다.
또한, 도 1에 도시된 바와 같이, 본 실시예에 따른 이진 데이터 압축해제장치(200)는 수신부(210) 및 압축해제연산부(220)를 포함한다.
수신부(210)는 압축장치(100)의 송신부(120)를 통하여 전송된 적어도 하나의 압축 클러스터를 수신하여 압축해제연산부(220)로 전달한다.
압축해제연산부(220)는 각 압축 클러스터에 대하여, 상기 각 압축 클러스터가 제 2 캐리포인트를 기점으로 하여 최초로 캐리업 이벤트(carry up event)를 일으키도록 하는, 상기 제 2 캐리포인트의 위치를 시점으로 하여 상위비트 방향으로 최소 개수의 1로만 이루어진 이진수를 상기 각 압축 클러스터에 가산하는 가산연산을 수행하되, 상기 제 2 캐리포인트의 위치를 한 자리씩 하위자리로 이동시키면서 최하위 비트에 이를 때까지 상기 각 압축 클러스터에 대하여 상기 가산연산을 반복하여 적어도 하나의 압축 해제 바이너리 클러스터를 생성하고, 상기 적어도 하나의 압축 해제 바이너리 클러스터를 결합하여 이진 데이터를 생성한다. 여기서, 상기 캐리업 이벤트는 상기 각 압축 클러스터에 대한 덧셈시 윗자리로 숫자를 올림하는 것을 의미하고, 상기 제 2 캐리포인트는 상기 각 압축 클러스터의 최상위자리로부터 배치된 적어도 0개 이상의 0에 의해 결정되는 자리로부터 시작하여 한 자리씩 하위자리로 이동하는 것을 특징으로 한다.
압축해제연산부(220)는 각 압축 클러스터에 대하여, 상기 제 2 캐리포인트의 위치를 한 자리씩 하위자리로 이동시키면서 최하위 비트에 이를 때까지 상기 각 압축 클러스터에 대하여 상기 가산연산을 반복하여 상기 적어도 하나의 압축 해제 바이너리 클러스터를 생성하는 압축해제 바이너리 클러스터 생성부(221); 및 상기 적어도 하나의 압축 해제 바이너리 클러스터를 결합하여 이진 데이터를 생성하는 클러스터 결합부(220)를 포함한다.
이와 같이 구성된 본 실시예의 동작 및 작용을 도 1 내지 도 3을 참조하여 구체적으로 설명한다.
도 2는 본 발명에 의한 일 실시예에 따른 이진 데이터의 압축방법을 설명하기 위한 흐름도로서, 이를 참조하여 본 실시예에 따른 이진 데이터의 압축방법을 설명한다.
먼저, 압축연산부(110)의 데이터 분할부(111)가 이진 데이터를 최하위비트로부터 미리 설정된 기준비트수 단위로 분할하여 적어도 하나의 바이너리 클러스터를 생성한다(S201). 이진 데이터 "10001010101010101111011"를 예로 들면, 압축장치(100)는 이 이진 데이터를 기준비트수 예를 들어 5비트 단위로 최하위비트로부터 다음과 같이 분할한다.
100 / 01010 / 10101 / 01011 / 11011
즉, 상기 분할 결과, 이진 데이터는 4개의 바이너리 클러스터(5비트수) 및 1개의 바이너리 클러스터(3비트수)로 분할된다. 물론, 상기 기준비트수는 5비트수 뿐만 아니라 다양한 비트수로 적용될 수 있다.
이어서, 압축연산부(110)의 압축 클러스터 생성부(112)는 각 바이너리 클러스터에 대하여, 상기 각 바이너리 클러스터가 제 1 캐리포인트를 기점으로 하여 최초로 캐리다운 이벤트(carry down event)를 일으키도록 하는 이진수를 감산한다(S202).
상기에서, "캐리다운 이벤트"란 복수의 자리(비트수)로 이루어진 제 1 이진수에서 다른 제 2 이진수를 뺄 때, 상기 제 1 이진수의 어떤 자리에서의 뺄셈을 위하여 그 윗자리로부터 숫자를 빌려오면서 자리내림 현상이 발생하는 것을 의미한다. 예를 들어, 이진수 101에서 이진수 1을 빼면 그 결과는 100이 되는데, 이 경우 뺄셈 후의 100은 뺄셈 전의 101과 비교하여 자리내림 현상이 발생하지 않는다. 즉, 뺄셈을 위하여 윗자리로부터 숫자를 빌려오는 현상인 캐리다운 이벤트가 발생하지 않는다. 반면, 이진수 101에서 이진수 11을 빼면 그 결과는 10이 되는데, 이 경우 뺄셈 후의 10은 뺄셈 전의 101과 비교하여 자리내림 현상이 발생한 것이다. 즉, 2번째자리에서의 뺄셈을 위하여 그 윗자리인 세번째자리로부터 숫자 1을 빌려와서 2번째자리에서의 뺄셈을 수행하는 "캐리다운 이벤트"가 발생하며, 이를 통해 101로부터 자리내림하여 10이라는 결과가 얻어진다. 이 캐리다운 이벤트는 원래 숫자의 비트수 자체가 작아지는 경우뿐만 아니라, 내부에서 일어나는 최초의 자리내림 현상까지 포함하는 개념으로 사용된다. 즉, 이진수 110에서 이진수 1을 빼면 101이 되는 경우와 같이, 두번째 자리에서 자리내림이 발생한 것도 110에서 1이라는 캐리키를 이용하여 자리내림인 캐리다운 이벤트가 발생한 것으로 본다.
또한, 원래 이진수에 대하여 캐리다운 이벤트를 일으키도록 하기 위하여 뺄셈을 하는 이진수는 상기 제 1 캐리포인트의 위치를 시점으로 하여 상위비트 방향으로 최소 개수의 1로만 이루어진 이진수(예를 들어, 1, 11, 111, 1111,...)를 말하며, 이하 "캐리키"라고 한다. 예를 들어 이진수 100의 경우에는 1을 빼면 11로 캐리다운 이벤트가 발생하여 이 때에는 캐리키가 1이 된다. 하지만, 101의 경우에는 1을 빼더라도 캐리다운 이벤트가 발생하지 않고 11을 빼야만 10이 되어 캐리다운 이벤트가 발생하므로 이 때 캐리키는 11이 된다.
그리고, 상기에서 "제 1 캐리포인트"는 상기 캐리다운 이벤트를 일으키기 위한 캐리키의 가장 낮은 비트가 위치하는 자리를 의미하며, 후술하는 바와 같이 이 제 1 캐리포인트는 처음에는 이진 데이터의 가장 낮은 자리(최하위비트)에 위치하다가 감산이 반복하여 수행됨에 따라 한자리씩 상위 비트 방향으로 이동한다.
자리수 4 3 2 1 0
원본데이터 1 1 0 1 1
(-) 캐리키 1 1 1
1차감산데이터 1 0 1 0 0
(-) 캐리키 1
2차감산데이터 1 0 0 1 0
(-) 캐리키 1
3차감산데이터 1 1 1 0
전송데이터 0 1 1 0
표 1은 바이너리 클러스터 "11011"에 대하여 감산연산을 통해 압축을 수행하는 과정을 예시로 나타낸 것이다. 바이너리 클러스터 "11011"의 경우, 먼저 제 1 캐리포인트는 "0"번째 비트자리가 되며, 뺄셈을 통해 처음으로 캐리다운 이벤트를 일으키게 하는 캐리키는 "111"이 된다.
다음으로, 압축클러스터 생성부(112)는 추가적인 캐리다운 이벤트가 발생할 수 있는지 판단한다(S203). 즉, 압축클러스터 생성부(112)는 단계(S202)에서의 캐리키 감산결과값에 대해 추가적인 캐리다운 이벤트가 발생할 수 있는지 판단한다. 표 1의 예를 참조하면, 표 1에서는 캐리키의 1차 감산결과 "10100"이라는 데이터가 생성되고, 이 데이터는 캐리키와의 감산에 의해 추가적인 캐리다운 이벤트가 발생할 수 있는 경우라고 할 수 있다.
상기 단계(S203)에서의 판단결과, 추가적인 캐리다운 이벤트가 발생할 수 있다고 판단되면, 압축클러스터 생성부(112)는 제 1 캐리포인트를 1자리만큼 상위 비트 방향으로 이동시키고(S204), 이후 단계(S202)의 과정을 반복한다. 즉, 단계(S202)에서의 2번째 감산연산의 경우에는, 그 이전 단계보다 제 1 캐리포인트를 1자리만큼 상위 비트방향으로 이동시켜 캐리키를 생성한 다음 감산연산을 수행한다. 표 1의 예를 참조하면, 1차 캐리키 감산 후 제 1 캐리포인트는 상위비트 방향으로 1자리만큼 이동되어 "1"번째 비트자리가 되고, 이 자리를 기점으로 하여 "10100"에 대해 최초 캐리다운 이벤트가 발생하게 하는 캐리키로서 "1"이 선택되어 감산연산이 수행되어 "10010"이 생성된다.
단계(S202) ~ 단계(S204)는 캐리다운 이벤트가 더 이상 발생되지 않을 때까지 반복된다. 표 1의 예시의 경우, 캐리키의 2차 감산 후 제 1 캐리포인트는 상위비트 방향으로 1자리만큼 더 이동되어 "2"번째 비트자리가 되고, 이 자리를 기점으로 하여 "10010"에 대해 최초 캐리다운 이벤트가 발생하게 하는 캐리키로서 "1"이 선택되어 감산연산이 수행되어 "1110"이 생성된다.
한편, 단계(S203)의 판단결과, 더 이상 캐리다운 이벤트가 발생하지 않는다고 판단되면 압축 클러스터 생성부(112)는 그 결과값인 압축 클러스터를 송신부(120)를 통하여 압축 해제장치(200) 등의 목적 장치로 전송한다(S205). 즉, 압축 클러스터 생성부(112)는 각각의 이진 데이터에 대하여 적어도 하나 이상의 압축 클러스터를 생성하여 송신부(120)를 통하여 목적장치로 전송한다.
추가적으로, 상기 목적 장치로 압축 클러스터를 전송함에 있어, 압축 클러스터 생성부(112)는 상기 생성된 각 압축 클러스터에서 제 1 캐리포인트의 최후 위치 앞에 있는 1은 모두 0으로 변경하여 전송할 수 있다. 이를 통해, 이후 압축 해제시 적용할 제 2 캐리포인트의 위치를 확인할 수 있다. 표 1의 예시의 경우, 최후로 이동된 제 1 캐리포인트의 위치는 "2"번째 비트자리이므로, "1110"에서 상기 최후 위치 앞에 있는 1은 0으로 변경하여 "0110"을 전송한다.
한편, 바이너리 클러스터 "01011"과 같이, 최상위비트에 0이 포함된 바이너리 클러스터의 경우에는 최상위비트로부터 연속하여 배치된 하나 이상의 0을 제거한 후 상기에서 설명한 압축방법을 수행하도록 한다. 즉, "01011"에서 먼저 0을 제거하여 "1011"로 만든 후, 아래와 같은 과정을 통해 압축을 수행한다.
1011
(-) 111
-----------
100
(-) 1
------------
10
이렇게 하여 전송함으로써, 앞에 배치된 0을 모두 포함하여 전송할 때와 비교하여, 전송데이터량을 감소시켜 압축 효율을 증가시킬 수 있다. 물론, 압축해제시에는 원본 바이너리 클러스터의 비트수가 이미 약속되어 있을 것이기 때문에, 이에 맞춰서 0을 앞에 추가하는 방법을 통해 압축해제가 이루어지면 될 것이다.
한편, 상기 이진 데이터를 최하위비트로부터 분할하여 생성된 적어도 하나 이상의 바이너리 클러스터 중, 비트수가 기준비트수(예를 들어, 5 비트)보다 적은 마지막 바이너리 클러스터의 경우에는, 기준비트수의 바이너리 클러스터와는 다른 방법에 따라 전송할 수 있다. 즉, 해당 마지막 바이너리 클러스터의 압축 클러스터를 전송하기에 앞서 먼저 시그널비트(예를 들어, 0, 00, 1...)를 전송하여, 해당 압축클러스터의 원본 바이너리 클러스터가 기준비트수보다 작은 크기의 마지막 바이너리 클러스터임을 나타내도록 할 수 있다. 예를 들어, 시그널비트로 "0"을 전송하는 경우에는 대응하는 압축클러스터의 원본 바이너리 클러스터는 앞에 0을 하나 가지는 데이터이고, 시그널비트로 "00"을 전송하는 경우에는 대응하는 압축클러스터의 원본 바이너리 클러스터는 앞에 00을 가지고 있는 데이터이며, 시그널비트로 1을 전송하는 경우에는 대응하는 압축클러스터 자체가 원본 바이너리 클러스터의 압축데이터임을 나타내는 것이다. 또한, 실시예에 따라서는, 기준비트수 미만 크기의 마지막 바이너리 클러스터는 그 갯수 및 데이터량 자체가 매우 작으므로, 압축하지 않고 그대로 목적장치로 전송할 수도 있다.
도 3은 본 발명에 의한 일 실시예에 따른 이진 데이터의 압축해제방법을 설명하기 위한 흐름도로서, 이를 참조하여 본 실시예에 따른 이진 데이터의 압축해제방법을 설명한다.
먼저, 압축해제장치(200)의 수신부(210)가 압축장치(100) 등의 목적장치로부터 압축 클러스터를 수신한다(S301). 즉, 압축해제장치(200)는 각각의 이진 데이터에 대한 적어도 하나 이상의 압축 클러스터를 압축장치(100)의 송신부(120)로부터 수신한다.
이어서, 압축해제 연산부(220)의 압축해제 바이너리 클러스터 생성부(221)는 각 압축 클러스터가 제 2 캐리포인트를 기점으로 하여 최초로 캐리업 이벤트(carry up event)를 일으키도록 하는 이진수를 가산한다(S302). 상기에서, "캐리업 이벤트"란 복수의 자리(비트수)로 이루어진 제 1 이진수에서 다른 제 2 이진수를 가산할 때, 상기 제 1 이진수의 어떤 자리에서의 덧셈 결과 그 자리에서 숫자가 넘쳐서 그 윗자리로의 자리올림 현상이 발생하는 것을 의미한다. 예를 들어, 이진수 100에서 이진수 1을 더하면 그 결과는 101이 되는데, 이 경우 덧셈 후의 101은 덧셈 전의 100과 비교하여 자리올림 현상이 발생하지 않는다. 즉, 덧셈을 위하여 윗자리로 숫자를 올려주는 현상인 캐리업 이벤트가 발생하지 않는다. 반면, 이진수 10에 이진수 11을 더하면 그 결과는 101이 되는데, 이 경우 덧셈 후의 101은 덧셈 전의 10과 비교하여 자리올림 현상, 즉 캐리업 이벤트가 발생한 것이다. 이를 통해 10로부터 자리올림하여 101이라는 결과가 얻어진다. 이 캐리업 이벤트는 원래 숫자의 비트수 자체가 커지는 경우뿐만 아니라, 내부에서 일어나는 최초의 자리올림 현상까지 포함하는 개념으로 사용된다. 즉, 이진수 101에 이진수 1을 더하면 110이 되는 경우와 같이, 첫번째 자리에서 자리올림이 발생한 것도 101에 1이라는 캐리키를 이용하여 자리올림인 캐리업 이벤트가 발생한 것으로 본다.
또한, 원래 이진수에 대하여 캐리업 이벤트를 일으키도록 하기 위하여 덧셈을 하는 이진수는 상기 제 2 캐리포인트의 위치를 시점으로 하여 상위비트 방향으로 최소 개수의 1로만 이루어진 이진수(예를 들어, 1, 11, 111, 1111,...)를 말하며, 이 또한 "캐리키"라고 할 수 있다. 예를 들어 이진수 11의 경우에는 1을 더하면 100로 캐리업 이벤트가 발생하여 이 때에는 캐리키가 1이 된다. 하지만, 110의 경우에는 1을 더하더라도 캐리업 이벤트가 발생하지 않고 11을 더해야만 1001이 되어 캐리업 이벤트가 발생하므로 이 때 캐리키는 11이 된다.
그리고, 상기에서 "제 2 캐리포인트"는 상기 캐리업 이벤트를 일으키기 위한 캐리키의 가장 낮은 자리의 비트가 위치하는 자리를 의미하며, 후술하는 바와 같이 이 제 2 캐리포인트는 처음에는 수신한 각 압축 클러스터의 최상위자리로부터 배치된 0개 이상의 "0"에 의해 결정되는 자리(즉, 연속한 0의 다음자리)로부터 시작하여 가산연산이 반복하여 수행됨에 따라 한자리씩 하위 비트 방향으로 이동한다.
자리수 4 3 2 1 0
압축클러스터 0 1 1 0
강제로 1로 변환 1차변환데이터 1 1 1 0
(+) 캐리키 1
2차변환데이터 1 0 0 1 0
(+) 캐리키 1
3차변환데이터 1 0 1 0 0
(+) 캐리키 1 1 1
압축해제데이터 1 1 0 1 1
표 2는 수신한 압축 클러스터 "0110"에 대하여 가산연산을 통해 압축해제를 수행하는 과정을 예시로 나타낸 것이다. 압축 클러스터 "0110"의 경우, 먼저 압축해제 바이너리 클러스터 생성부(221)는 상기 수신한 각 압축 클러스터에서 최상위비트로부터 연속하여 배치된 적어도 하나 이상의 0이 있는 경우 이를 모두 1로 변경한다. 이 적어도 하나 이상의 0은 압축장치(100)에서의 압축시 상기 제 1 캐리포인트의 최후 위치 앞에 있는 1을 모두 0으로 변경하여 생긴 것으로서, 본 압축 해제시 적용할 제 2 캐리포인트의 위치를 결정할 수 있도록 하기 위한 것이다. 따라서, 압축해제 바이너리 클러스터 생성부(221)는 이를 통해 제 2 캐리포인트의 위치를 결정하고, 최상위비트로부터 배치된 적어도 하나의 0을 모두 1로 변경한다. 물론, 수신한 압축클러스터에서 최상위 비트에 0이 없는 경우에는 제 2 캐리포인트의 위치는 압축클러스터의 최상위비트로 결정한다.
표 2의 예시의 경우, 수신한 압축클러스터 "0110"에서 최상위비트로부터 배치된 0을 1로 변경하여 "1110"로 변환하고, 제 2 캐리포인트를 "2"번째 비트자리로 결정한다. 즉, 제 2 캐리포인트는 "2"번째 비트자리가 되고, 덧셈을 통해 처음으로 캐리업 이벤트를 일으키게 하는 캐리키는 "1"이 되어 가산연산을 통해 "10010"이라는 데이터가 생성된다.
다음으로, 압축해제 바이너리 클러스터 생성부(221)는 추가적인 캐리업 이벤트가 발생할 수 있는지 판단한다(S303). 즉, 압축해제 바이너리 클러스터 생성부(221)는 단계(S302)에서의 캐리키 가산결과값에 대해 추가적인 캐리업 이벤트가 발생할 수 있는지 판단한다. 표 2의 예를 참조하면, 표 2에서는 캐리키의 1차 가산결과 "10010"이라는 데이터가 생성되고, 이 데이터는 캐리키와의 가산에 의해 추가적인 캐리업 이벤트가 발생할 수 있는 경우라고 할 수 있다.
상기 단계(S303)에서의 판단결과, 추가적인 캐리업 이벤트가 발생할 수 있다고 판단되면, 압축해제 바이너리 클러스터 생성부(221)는 제 2 캐리포인트를 1자리만큼 하위 비트 방향으로 이동시키고(S304), 이후 단계(S302)의 과정을 반복한다. 즉, 단계(S302)에서의 2번째 가산연산의 경우에는, 그 이전 단계보다 제 2 캐리포인트를 1자리만큼 하위 비트방향으로 이동시켜 캐리키를 생성한 다음 가산연산을 수행한다. 표 2의 예를 참조하면, 1차 캐리키 가산 후 제 2 캐리포인트는 하위비트 방향으로 1자리만큼 이동되어 "1"번째 비트자리가 되고, 이 자리를 기점으로 하여 "10010"에 대해 최초 캐리업 이벤트가 발생하게 하는 캐리키로서 "1"이 선택되어 가산연산이 수행되어 "10100"이 생성된다.
단계(S302) ~ 단계(S304)는 캐리업 이벤트가 더 이상 발생되지 않을 때까지 반복된다. 표 2의 예시의 경우, 캐리키의 2차 가산 후 제 2 캐리포인트는 하위비트 방향으로 1자리만큼 더 이동되어 "0"번째 비트자리가 되고, 이 자리를 기점으로 하여 "10100"에 대해 최초 캐리업 이벤트가 발생하게 하는 캐리키로서 "111"이 선택되어 가산연산이 수행되어 "11011"이 생성된다.
단계(S303)의 판단결과, 더 이상 캐리업 이벤트가 발생하지 않는다고 판단되면 압축해제 바이너리 클러스터 생성부(221)는 그 결과인 압축해제 바이너리 클러스터를 클러스터 결합부(222)에 전달하고, 클러스터 결합부(222)는 적어도 하나 이상의 압축해제 바이너리 클러스터를 결합하여 이진 데이터를 생성한다(S305).
한편, 압축 클러스터 "10"과 같이, 최상위비트가 1인 압축클러스터의 경우에는, 이 1이 있는 자리를 제 2 캐리포인트로 결정한 후 아래와 같은 과정을 통해 압축해제를 수행한다.
10
(+) 1
-----------
100
(+) 111
------------
1011
이와 같이 1011이라는 데이터가 얻어지면, 압축해제 바이너리 클러스터 생성부(221)는 1011의 앞에 0을 추가하여 기준비트수의 "01011"이라는 데이터를 압축해제 바이너리 클러스터로 생성한다. 즉, 원본 바이너리 클러스터의 기준비트수는 이미 약속되어 있을 것이기 때문에, 압축해제시에는 이에 맞춰서 0을 앞에 추가하는 방법을 통해 압축해제를 수행한다.
한편, 압축 해제 후의 바이너리 클러스터가 그 비트수가 기준비트수(예를 들어, 5 비트)보다 적은 마지막 바이너리 클러스터의 경우에는, 압축클러스터와 함께 수신된 시그널비트를 이용하여 압축해제 바이너리 클러스터를 생성한다. 예를 들어, 시그널비트로 "0"이 전송된 경우에는 대응하는 압축해제 바이너리 클러스터는 앞에 0을 하나 가지는 데이터이고, 시그널비트로 "00"이 전송된 경우에는 대응하는 압축해제 바이너리 클러스터는 앞에 00을 가지고 있는 데이터이며, 시그널비트로 1이 전송된 경우에는 대응하는 압축해제 바이너리 클러스터는 그 자체가 압축해제 데이터임을 나타내는 것이다. 또한, 실시예에 따라서는, 기준비트수 미만 크기의 마지막 바이너리 클러스터는 그 갯수 및 데이터량 자체가 매우 작으므로, 압축되지 않은 상태로 수신하여 이를 그대로 이진데이터 합성시 결합할 수도 있다.
이상 살펴 본 바와 같이, 본 발명에 따른 이진 데이터의 압축 및 압축해제 방법과 장치는, 간단한 연산과 하드웨어적 구성을 통해 이진 데이터를 신속하고 효율적으로 압축하고 압축해제할 수 있을 뿐만 아니라, 압축률도 뛰어나며 압축 데이터 및 압축 해제 데이터의 신뢰성도 높일 수 있다.
이상에서 본 발명의 실시 예에 대하여 상세하게 설명하였지만 본 발명의 권리범위는 이에 한정되는 것은 아니고 다음의 청구범위에서 정의하고 있는 본 발명의 기본 개념을 이용한 당업자의 여러 변형 및 개량 형태 또한 본 발명의 권리범위에 속하는 것이다.
100 : 이진 데이터 압축장치
110 : 압축 연산부 111 : 데이터 분할부
112 : 압축클러스터 생성부 120 : 송신부
200 : 압축해제장치
210 : 수신부 220 : 압축해제 연산부
221 : 압축해제 바이너리 클러스터 생성부
222 : 클러스터 결합부

Claims (16)

  1. 압축장치의 이진 데이터 압축 방법으로서,
    압축연산부가 이진 데이터를 최하위비트로부터 미리 설정된 기준비트수 단위로 분할하여 적어도 하나의 바이너리 클러스터를 생성하는 단계;
    상기 압축연산부가 각 바이너리 클러스터에 대하여, 상기 각 바이너리 클러스터가 제 1 캐리포인트를 기점으로 하여 최초로 캐리다운 이벤트(carry down event)를 일으키도록 하는, 상기 제 1 캐리포인트의 위치를 시점으로 하여 상위비트 방향으로 최소 개수의 1로만 이루어진 이진수를 상기 각 바이너리 클러스터에 감산하는 단계; 및
    상기 압축연산부가 상기 제 1 캐리포인트의 위치를 한 자리씩 상위자리로 이동시키면서 캐리다운 이벤트가 더 이상 발생하지 않을 때까지 상기 각 바이너리 클러스터에 대하여 상기 감산하는 단계를 반복하여, 적어도 하나의 압축 클러스터를 생성하는 단계를 포함하되,
    상기 캐리다운 이벤트는 상기 각 바이너리 클러스터에 대한 뺄셈시 윗자리로부터 숫자를 빌려오는 것을 의미하고, 상기 제 1 캐리포인트는 상기 각 바이너리 클러스터의 최하위자리로부터 시작하여 한 자리씩 상위자리로 이동하는 것을 특징으로 하는, 압축장치의 이진 데이터 압축방법.
  2. 제 1항에 있어서,
    송신부가 상기 압축연산부에 의해 생성된 상기 적어도 하나의 압축 클러스터를 목적 장치로 전송하는 단계를 더 포함하는 것을 특징으로 하는, 압축장치의 이진 데이터 압축방법.
  3. 제 1항에 있어서,
    상기 생성된 각 압축 클러스터에서, 최후로 이동된 상기 제 1 캐리포인트의 위치 앞에 있는 1은 모두 0으로 변경하는 것을 특징으로 하는, 압축장치의 이진 데이터 압축방법.
  4. 제 2항에 있어서,
    상기 이진 데이터를 최하위비트로부터 분할하여 생성된 상기 적어도 하나의 바이너리 클러스터 중 비트수가 상기 기준비트수보다 적은 바이너리 클러스터는, 그에 대응하는 압축클러스터를 생성하지 않고 원본 자체로 상기 목적장치로 전송하거나, 대응하는 압축 클러스터를 생성한 후 상기 바이너리 클러스터에 대한 정보를 가지는 시그널 비트와 함께 전송하는 것을 특징으로 하는, 압축장치의 이진 데이터 압축방법.
  5. 제 1항에 있어서,
    상기 적어도 하나의 바이너리 클러스터 중 최상위비트에 0이 포함된 바이너리 클러스터는 최상위비트로부터 연속하여 배치된 적어도 하나의 0을 제거한 후 상기 압축방법을 수행하는 것을 특징으로 하는, 압축장치의 이진 데이터 압축방법.
  6. 제 3항에 기재된 이진 데이터 압축방법에 의해 압축된 이진 데이터를 압축해제하는 방법으로서,
    상기 압축해제연산부가 각 압축 클러스터에 대하여, 상기 각 압축 클러스터가 제 2 캐리포인트를 기점으로 하여 최초로 캐리업 이벤트(carry up event)를 일으키도록 하는, 상기 제 2 캐리포인트의 위치를 시점으로 하여 상위비트 방향으로 최소 개수의 1로만 이루어진 이진수를 상기 각 압축 클러스터에 가산하는 단계;
    상기 압축해제연산부가 상기 제 2 캐리포인트의 위치를 한 자리씩 하위자리로 이동시키면서 최하위 비트에 이를 때까지 상기 각 압축 클러스터에 대하여 상기 가산하는 단계를 반복하여, 적어도 하나의 압축 해제 바이너리 클러스터를 생성하는 단계; 및
    상기 압축해제연산부가 상기 적어도 하나의 압축 해제 바이너리 클러스터를 결합하여 이진 데이터를 생성하는 단계를 포함하되,
    상기 캐리업 이벤트는 상기 각 압축 클러스터에 대한 덧셈시 윗자리로 숫자를 올림하는 것을 의미하고, 상기 제 2 캐리포인트는 상기 각 압축 클러스터의 최상위자리로부터 배치된 적어도 0개 이상의 0에 의해 결정되는 자리로부터 시작하여 한 자리씩 하위자리로 이동하는 것을 특징으로 하는, 이진 데이터 압축해제방법.
  7. 제 6항에 있어서,
    상기 가산하는 단계 전에, 상기 각 압축 클러스터의 최상위비트에 0이 있는 경우 상기 0을 1로 변경하는 것을 특징으로 하는, 이진 데이터 압축해제방법.
  8. 이진 데이터 압축 장치로서,
    이진 데이터를 최하위비트로부터 미리 설정된 기준비트수 단위로 분할하여 적어도 하나의 바이너리 클러스터를 생성하고, 각 바이너리 클러스터에 대하여 상기 각 바이너리 클러스터가 제 1 캐리포인트를 기점으로 하여 최초로 캐리다운 이벤트를 일으키도록 하는, 상기 제 1 캐리포인트의 위치를 시점으로 하여 최소 개수의 1로만 이루어진 이진수를 상기 각 바이너리 클러스터에 감산하는 감산연산을 수행하되, 상기 제 1 캐리포인트의 위치를 한 자리씩 상위자리로 이동시키면서 캐리다운 이벤트가 더 이상 발생하지 않을 때까지 상기 각 바이너리 클러스터에 대하여 상기 감산연산을 반복하여 적어도 하나의 압축 클러스터를 생성하는 압축연산부를 포함하되,
    상기 캐리다운 이벤트는 상기 각 바이너리 클러스터에 대한 뺄셈시 윗자리로부터 숫자를 빌려오는 것을 의미하고, 상기 제 1 캐리포인트는 상기 각 바이너리 클러스터의 최하위자리로부터 시작하여 한 자리씩 상위자리로 이동하는 것을 특징으로 하는, 이진 데이터 압축장치.
  9. 제 8항에 있어서,
    상기 압축연산부에 의해 생성된 상기 적어도 하나의 압축 클러스터를 목적 장치로 전송하는 송신부를 더 포함하는 것을 특징으로 하는, 압축장치의 이진 데이터 압축장치.
  10. 제 8항에 있어서,
    상기 압축연산부는 상기 각 압축 클러스터에서, 최후로 이동된 상기 제 1 캐리포인트의 위치 앞에 있는 1은 모두 0으로 변경하는 것을 특징으로 하는, 이진 데이터 압축장치.
  11. 제 8항에 있어서,
    상기 이진 데이터를 최하위비트로부터 분할하여 생성된 상기 적어도 하나의 바이너리 클러스터 중 비트수가 상기 기준비트수보다 적은 바이너리 클러스터는, 그에 대응하는 압축클러스터를 생성하지 않고 원본 자체로 상기 목적장치로 전송하거나, 대응하는 압축 클러스터를 생성한 후 상기 바이너리 클러스터에 대한 정보를 가지는 시그널 비트와 함께 전송하는 것을 특징으로 하는, 이진 데이터 압축장치.
  12. 제 8항에 있어서,
    상기 압축연산부는, 상기 적어도 하나의 바이너리 클러스터 중 최상위비트에 0이 포함된 바이너리 클러스터의 경우 최상위비트로부터 연속하여 배치된 적어도 하나의 0을 제거한 후 상기 압축 클러스터를 생성하는 것을 특징으로 하는, 이진 데이터 압축장치.
  13. 제 8항에 있어서,
    상기 압축연산부는
    상기 이진 데이터를 분할하여 상기 적어도 하나의 바이너리 클러스터를 생성하는 데이터 분할부; 및
    각 바이너리 클러스터에 대하여, 캐리다운 이벤트가 더 이상 발생하지 않을 때까지 상기 각 바이너리 클러스터에 대하여 상기 감산연산을 반복하여 상기 적어도 하나의 압축 클러스터를 생성하는 압축클러스터 생성부를 포함하는 것을 특징으로 하는, 이진 데이터 압축장치.
  14. 제 10항에 기재된 압축장치에 의해 압축된 이진 데이터를 압축해제하는 이진 데이터 압축해제장치로서,
    각 압축 클러스터에 대하여, 상기 각 압축 클러스터가 제 2 캐리포인트를 기점으로 하여 최초로 캐리업 이벤트(carry up event)를 일으키도록 하는, 상기 제 2 캐리포인트의 위치를 시점으로 하여 상위비트 방향으로 최소 개수의 1로만 이루어진 이진수를 상기 각 압축 클러스터에 가산하는 가산연산을 수행하되, 상기 제 2 캐리포인트의 위치를 한 자리씩 하위자리로 이동시키면서 최하위 비트에 이를 때까지 상기 각 압축 클러스터에 대하여 상기 가산연산을 반복하여 적어도 하나의 압축 해제 바이너리 클러스터를 생성하고, 상기 적어도 하나의 압축 해제 바이너리 클러스터를 결합하여 이진 데이터를 생성하는 압축해제연산부를 포함하되,
    상기 캐리업 이벤트는 상기 각 압축 클러스터에 대한 덧셈시 윗자리로 숫자를 올림하는 것을 의미하고, 상기 제 2 캐리포인트는 상기 각 압축 클러스터의 최상위자리로부터 배치된 적어도 0개 이상의 0에 의해 결정되는 자리로부터 시작하여 한 자리씩 하위자리로 이동하는 것을 특징으로 하는, 이진 데이터 압축해제장치.
  15. 제 14항에 있어서,
    상기 압축해제연산부는 상기 가산연산 수행 전에, 상기 각 압축 클러스터의 최상위비트에 0이 있는 경우 상기 0을 1로 변경하는 것을 특징으로 하는, 이진 데이터 압축해제장치.
  16. 제 14항에 있어서,
    상기 압축해제연산부는
    각 압축 클러스터에 대하여, 상기 제 2 캐리포인트의 위치를 한 자리씩 하위자리로 이동시키면서 최하위 비트에 이를 때까지 상기 각 압축 클러스터에 대하여 상기 가산연산을 반복하여 상기 적어도 하나의 압축 해제 바이너리 클러스터를 생성하는 압축해제 바이너리 클러스터 생성부; 및
    상기 적어도 하나의 압축 해제 바이너리 클러스터를 결합하여 이진 데이터를 생성하는 클러스터 결합부를 포함하는 것을 특징으로 하는, 이진 데이터 압축해제장치.
KR1020130067891A 2013-06-13 2013-06-13 이진 데이터의 압축 및 압축해제 방법과 장치 KR101549740B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020130067891A KR101549740B1 (ko) 2013-06-13 2013-06-13 이진 데이터의 압축 및 압축해제 방법과 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130067891A KR101549740B1 (ko) 2013-06-13 2013-06-13 이진 데이터의 압축 및 압축해제 방법과 장치

Publications (2)

Publication Number Publication Date
KR20140145437A true KR20140145437A (ko) 2014-12-23
KR101549740B1 KR101549740B1 (ko) 2015-09-04

Family

ID=52675224

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130067891A KR101549740B1 (ko) 2013-06-13 2013-06-13 이진 데이터의 압축 및 압축해제 방법과 장치

Country Status (1)

Country Link
KR (1) KR101549740B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101652735B1 (ko) * 2015-05-18 2016-08-31 김정훈 이진 데이터의 압축 및 복원 방법과 장치
KR101682829B1 (ko) * 2015-09-23 2016-12-12 김정훈 메시지 압축 방법 및 장치

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6737994B2 (en) 2002-05-13 2004-05-18 International Business Machines Corporation Binary-ordered compression for unicode

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101652735B1 (ko) * 2015-05-18 2016-08-31 김정훈 이진 데이터의 압축 및 복원 방법과 장치
KR101682829B1 (ko) * 2015-09-23 2016-12-12 김정훈 메시지 압축 방법 및 장치

Also Published As

Publication number Publication date
KR101549740B1 (ko) 2015-09-04

Similar Documents

Publication Publication Date Title
US8902090B2 (en) Compressing and decompressing signal data
CN113810057B (zh) 用于语义值数据压缩和解压缩的方法、设备和系统
EP2053749B1 (en) Encoding method and apparatus, and program
WO2014131517A1 (en) Encoder, decoder and method
JP3274284B2 (ja) 符号化装置およびその方法
KR102068383B1 (ko) 엔트로피 변형기 및 방법
KR101467684B1 (ko) 이진데이터 압축 및 압축해제 장치와 방법
KR101549740B1 (ko) 이진 데이터의 압축 및 압축해제 방법과 장치
EP3163876A1 (en) Method and apparatus for performing arithmetic coding by limited carry operation
KR101575939B1 (ko) 이진 데이터의 압축 및 복원 방법과 장치
CN112449191A (zh) 压缩多个图像的方法、解压缩图像的方法和装置
KR20150093060A (ko) 이진 데이터의 압축 및 복원 방법과 장치
US10340946B2 (en) Encoders, decoders, and methods
KR101471833B1 (ko) 이진 데이터의 압축 및 압축해제 방법과 장치
KR20160100496A (ko) 바이너리 클러스터를 이용한 허프만 부호화 효율화 방법 및 그 장치
US8754791B1 (en) Entropy modifier and method
Mehboob et al. High speed lossless data compression architecture
KR101573983B1 (ko) 데이터 압축 및 데이터 복원 방법과 장치
KR101652735B1 (ko) 이진 데이터의 압축 및 복원 방법과 장치
KR102361730B1 (ko) 데이터 압축 방법 및 장치
KR101468307B1 (ko) 이진데이터 압축 및 압축해제 장치와 방법
KR101676420B1 (ko) 데이터의 압축 및 복원 방법과 장치
US20130257634A1 (en) Data Encoding and Decoding Method and Device
KR102109768B1 (ko) Uhd 영상의 고속 처리를 위한 cabac 이진 산술 부호화기
KR101760070B1 (ko) 데이터 부호화 및 복호화 방법과 장치

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E90F Notification of reason for final refusal
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
FPAY Annual fee payment

Payment date: 20190801

Year of fee payment: 5