KR102361730B1 - 데이터 압축 방법 및 장치 - Google Patents

데이터 압축 방법 및 장치 Download PDF

Info

Publication number
KR102361730B1
KR102361730B1 KR1020200104621A KR20200104621A KR102361730B1 KR 102361730 B1 KR102361730 B1 KR 102361730B1 KR 1020200104621 A KR1020200104621 A KR 1020200104621A KR 20200104621 A KR20200104621 A KR 20200104621A KR 102361730 B1 KR102361730 B1 KR 102361730B1
Authority
KR
South Korea
Prior art keywords
binary
data
binary data
compressed
significant bit
Prior art date
Application number
KR1020200104621A
Other languages
English (en)
Other versions
KR20210155313A (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 KR20210155313A publication Critical patent/KR20210155313A/ko
Application granted granted Critical
Publication of KR102361730B1 publication Critical patent/KR102361730B1/ko

Links

Images

Classifications

    • 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

Landscapes

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

Abstract

본 발명은 압축부가 원본 이진데이터를 바이너리 클러스터 단위로 분할하여 분할 이진데이터를 생성하는 단계; 상기 압축부가 상기 분할 이진데이터를 압축하여 압축 이진데이터를 생성하는 단계; 및 출력부가 상기 압축 이진데이터를 목적 장치로 출력하는 단계를 포함하되, 상기 압축부는, 상기 원본 이진데이터의 최상위 비트가 1인 경우에는 최상위 비트 다음 비트부터 상기 바이너리 클러스터 단위로 바이너리 클러스터들을 생성하고, 최상위 비트가 1이 아닌 경우에는 상기 최상위 비트부터 상기 바이너리 클러스터 단위로 바이너리 클러스터들을 생성하도록 상기 원본 이진데이터를 분할하고, 각각의 상기 바이너리 클러스터는 헤더부와 테일부를 구비하되, 상기 헤더부는 각 헤더부의 최상위비트에서 하위비트 방향으로 n개의 "0"과 이어서 1개의 "1"을 구비하고 상기 테일부는 상기 헤더부의 "1" 이후에 배치된 n비트의 데이터이고(n은 0 이상의 정수), 상기 압축부는 상기 분할 이진데이터에서 각각의 상기 바이너리 클러스터의 헤더부를 제거하여 상기 압축 이진데이터를 생성하는, 데이터 압축방법에 관한 것이다.

Description

데이터 압축 방법 및 장치{DATA COMPRESSING METHOD AND APPARATUS}
본 발명은 데이터 압축 방법 및 장치에 관한 것으로서, 보다 구체적으로는 간단한 연산을 통해 이진 데이터를 효율적으로 압축할 수 있을 뿐만 아니라 데이터 전송 효율도 향상시킬 수 있는 데이터 압축 방법 및 장치에 관한 것이다.
일반적으로, 통상의 전송 채널에서 이용 가능한 주파수 대역폭은 제한되어 있으므로, 많은 양의 데이터를 전송하기 위해서 모뎀과 같은 다양한 전송 시스템은 전송 데이터의 양을 압축하거나 줄일 수 있는 효과적인 데이터 압축 기법을 이용해 왔다.
다양한 압축기법 중의 하나로서, 국제 전기 통신 동맹(ITU : International Telecommunication Union)에 의해 표준화된 부호화 알고리즘으로, 모뎀과 같은 데이터 전송 시스템에서 채용하고 있는 CCITT V.42 bis 가 있다. 이 부호화 표준안에 적용된 기초는 Ziv-Lempel code(ZLC)이며, 이 방식은 입력 데이터로부터 적응적으로 사전을 형성해 가면서 앞의 입력 데이터와 동일한 구문(phrase)이 저장되어 있는 사전의 주소값을 부호어로 전송하는 방법이다. 사전화(dictionary) 작업은 입력 데이터와 계속적인 스트링 매칭(string matching)을 수행하여 최대 길이의 매칭 스트링에 매칭안된 문자를 결합하여 사전에 추가하는 과정으로 사전을 업데이트한다.
그러나, 이러한 종래의 압축 방식은 데이터의 압축 및 압축 해제에 대한 처리 연산이 복잡하고 비교적 고사양의 하드웨어적 장치를 필요로 하며, 처리 속도의 향상에 제한이 따르고 압축 결과값에 대한 신뢰성을 높이기 힘든 문제점이 있었다.
본 발명의 배경기술은 대한민국 공개특허공보 제 2003-0022630호(2003. 3. 17 공개)에 개시되어 있다.
본 발명이 이루고자 하는 기술적 과제는, 간단한 연산을 통해 이진 데이터를 효율적으로 압축할 수 있을 뿐만 아니라 데이터 전송 효율도 향상시킬 수 있는 데이터 압축 방법 및 장치를 제공하는 데에 있다.
본 발명의 일 측면에 따르면, 본 발명은 압축부가 원본 이진데이터를 바이너리 클러스터 단위로 분할하여 분할 이진데이터를 생성하는 단계; 상기 압축부가 상기 분할 이진데이터를 압축하여 압축 이진데이터를 생성하는 단계; 및 출력부가 상기 압축 이진데이터를 목적 장치로 출력하는 단계를 포함하되, 상기 압축부는, 상기 원본 이진데이터의 최상위 비트가 1인 경우에는 최상위 비트 다음 비트부터 상기 바이너리 클러스터 단위로 바이너리 클러스터들을 생성하고, 최상위 비트가 1이 아닌 경우에는 상기 최상위 비트부터 상기 바이너리 클러스터 단위로 바이너리 클러스터들을 생성하도록 상기 원본 이진데이터를 분할하고, 상기 바이너리 클러스터들의 각각은 헤더부와 테일부를 구비하되, 상기 헤더부는 각 헤더부의 최상위비트에서 하위비트 방향으로 n개의 "0"과 이어서 1개의 "1"을 구비하고 상기 테일부는 상기 헤더부의 "1" 이후에 배치된 n비트의 데이터이고(n은 0 이상의 정수), 상기 압축부는 상기 분할 이진데이터에서 상기 바이너리 클러스터들의 각각의 헤더부를 제거하여 상기 압축 이진데이터를 생성하는, 데이터 압축방법을 제공한다.
본 발명에서, 상기 압축부가 상기 압축 이진데이터를 변환하는 단계를 더 포함하되, 상기 출력부는 상기 변환된 압축 이진데이터를 상기 목적 장치로 출력할 수 있다.
상기 변환하는 단계에서, 상기 압축부는 상기 압축 이진데이터의 각각의 테일부에 포함된 "0"을 "10"으로 "1"을 "01"로 변환하거나 "1"을 "10"으로 "0"을 "01"로 변환하고, 상기 각각의 테일부 사이에 구분자를 삽입할 수 있다.
상기 변환하는 단계에서, 상기 압축부는 상기 구분자로서 "11"과 "00"을 교대로 삽입할 수 있다.
또한, 본 발명의 다른 측면에 따르면, 본 발명은 원본 이진데이터를 바이너리 클러스터 단위로 분할하여 분할 이진데이터를 생성하고, 상기 분할 이진데이터를 압축하여 압축 이진데이터를 생성하는 압축부; 및 상기 압축 이진데이터를 목적 장치로 출력하는 출력부를 포함하되, 상기 압축부는, 상기 원본 이진데이터의 최상위 비트가 1인 경우에는 최상위 비트 다음 비트부터 상기 바이너리 클러스터 단위로 바이너리 클러스터들을 생성하고, 최상위 비트가 1이 아닌 경우에는 상기 최상위 비트부터 상기 바이너리 클러스터 단위로 바이너리 클러스터들을 생성하도록 상기 원본 이진데이터를 분할하고, 상기 바이너리 클러스터들의 각각은 헤더부와 테일부를 구비하되, 상기 헤더부는 각 헤더부의 최상위비트에서 하위비트 방향으로 n개의 "0"과 이어서 1개의 "1"을 구비하고 상기 테일부는 상기 헤더부의 "1" 이후에 배치된 n비트의 데이터이고(n은 0 이상의 정수), 상기 압축부는 상기 분할 이진데이터에서 상기 바이너리 클러스터들의 각각의 헤더부를 제거하여 상기 압축 이진데이터를 생성하는, 데이터 압축장치를 제공한다.
본 발명에서, 상기 압축부는 상기 압축 이진데이터를 변환하고, 상기 출력부는 상기 변환된 압축 이진데이터를 상기 목적 장치로 출력할 수 있다.
본 발명에서, 상기 압축 이진데이터의 변환 시, 상기 압축부는 상기 압축 이진데이터의 각각의 테일부에 포함된 "0"을 "10"으로 "1"을 "01"로 변환하거나 "1"을 "10"으로 "0"을 "01"로 변환하고, 상기 각각의 테일부 사이에 구분자를 삽입할 수 있다.
본 발명에서, 상기 압축 이진데이터의 변환 시, 상기 압축부는 상기 구분자로서 "11"과 "00"을 교대로 삽입할 수 있다.
본 발명의 일측면에 따른 데이터 압축 방법 및 장치는 간단한 연산과 하드웨어적 구성을 통해 이진 데이터를 압축하고 변환함으로써, 데이터의 압축 효율을 향상시킬 수 있을 뿐만 아니라 압축변환된 데이터를 NRZ 방식 등의 라인코딩 방식으로 물리적으로 전송할 때 DC 밸런스를 향상시키고 클럭 복원률을 맨체스터 전송에 준하게 향상시켜 전송 데이터의 오류 가능성도 감소시킬 수 있다.
도 1은 본 발명에 의한 일 실시예에 따른 데이터 압축 장치 및 복원 장치의 구성을 도시한 것이다.
도 2는 본 발명에 의한 일 실시예에 따른 데이터 압축 방법을 설명하기 위한 흐름도이다.
아래에서는 첨부한 도면을 참고로 하여 본 발명의 실시예에 대하여 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나, 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고, 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면부호를 붙였다.
명세서 전체에서, 어떤 부분이 어떤 구성 요소를 "포함" 한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
본 명세서에서 설명된 구현은, 예컨대, 방법 또는 프로세스, 장치, 소프트웨어 프로그램, 데이터 스트림 또는 신호로 구현될 수 있다. 단일 형태의 구현의 맥락에서만 논의(예컨대, 방법으로서만 논의)되었더라도, 논의된 특징의 구현은 또한 다른 형태(예컨대, 장치 또는 프로그램)로도 구현될 수 있다. 장치는 적절한 하드웨어, 소프트웨어 및 펌웨어 등으로 구현될 수 있다. 방법은, 예컨대, 컴퓨터, 마이크로프로세서, 집적 회로 또는 프로그래밍가능한 로직 디바이스 등을 포함하는 프로세싱 디바이스를 일반적으로 지칭하는 프로세서 등과 같은 장치에서 구현될 수 있다. 프로세서는 또한 최종-사용자 사이에 정보의 통신을 용이하게 하는 컴퓨터, 셀 폰, 휴대용/개인용 정보 단말기(personal digital assistant: "PDA") 및 다른 디바이스 등과 같은 통신 디바이스를 포함한다.
도 1은 본 발명에 의한 일 실시예에 따른 데이터 압축 장치 및 복원 장치의 구성을 도시한 것이고, 도 2는 본 발명에 의한 일 실시예에 따른 데이터 압축 방법을 설명하기 위한 흐름도로서, 이를 참조하여 본 발명의 실시예를 설명하면 다음과 같다.
도 1에 도시된 바와 같이, 본 실시예에 따른 데이터 압축 장치(100)는 압축부(110) 및 출력부(120)를 포함한다.
압축부(110)는 원본 이진데이터를 바이너리 클러스터 단위로 분할하여 분할 이진데이터를 생성하고, 상기 분할 이진데이터를 압축하여 압축 이진데이터를 생성한다. 압축부(110)는, 상기 원본 이진데이터의 최상위 비트가 1인 경우에는 그 다음 비트부터 각각 상기 바이너리 클러스터가 배열되고, 최상위 비트가 1이 아닌 경우에는 상기 최상위 비트부터 각각의 상기 바이너리 클러스터가 배열되도록 상기 원본 이진데이터를 분할한다.
이 때, 각각의 상기 바이너리 클러스터는 헤더부와 테일부를 구비하되, 상기 헤더부는 각 헤더부의 최상위비트에서 하위비트 방향으로 n개의 "0"과 이어서 1개의 "1"을 구비하고 상기 테일부는 상기 헤더부의 "1" 이후에 배치된 n비트의 데이터일 수 있다(n은 0 이상의 정수). 압축부(110)는 상기 원본 이진데이터에서 각각의 상기 바이너리 클러스터의 헤더부를 제거하여 상기 압축 이진데이터를 생성한다.
압축부(110)는 상기 압축 이진데이터를 변환할 수 있다. 여기서 상기 압축 이진데이터의 변환 시, 압축부(110)는 상기 압축 이진데이터의 각각의 테일부에 포함된 "0"을 "10"으로 "1"을 "01"로 변환하거나 "1"을 "10"으로 "0"을 "01"로 변환하고, 상기 각각의 테일부 사이에 구분자를 삽입할 수 있다. 이 때 상기 압축부는 상기 구분자로서 "11"과 "00"을 교대로 삽입할 수 있다.
출력부(120)는 상기 압축 이진데이터를 데이터 복원장치(200)와 같은 목적 장치로 출력한다.
이와 같이 구성된 본 실시예의 동작 및 작용을 도 1 및 도 2를 참조하여 구체적으로 설명한다.
우선 압축부(110)는 원본 이진데이터를 바이너리 클러스터 단위로 분할하여 분할 이진데이터를 생성한다(S201). 여기서 바이너리 클러스터란 원본 이진데이터에 포함되어 있는 이진수 부분들 중 본 실시예에서 설정된 규칙에 따라 규정되는 클러스터 형태의 이진수 부분을 의미한다.
각각의 바이너리 클러스터는 헤더부와 테일부를 구비하여 구성된다. 여기서 상기 헤더부는 바이너리 클러스터의 상위비트 쪽에 위치하는 이진수 부분을 의미하고 상기 테일부는 하위비트 방향으로 상기 헤더부의 다음에 위치하는 이진수 부분을 의미한다. 상기 헤더부는 각 헤더부의 최상위비트에서 하위비트 방향으로 n개의 "0"과 이어서 1개의 "1"을 구비하고 상기 테일부는 상기 헤더부의 "1" 이후에 배치된 n비트의 데이터이다. 여기서 n은 0 이상의 정수로서, 만약 n이 1이라면 바이너리 클러스터는 " 01x " 형태의 데이터가 되고, 3이라면 " 0001xxx " 형태의 데이터가 된다. 만약 n이 0이라면 0개의 "0" 즉 "0"이라는 이진수 부분이 없이 상기 헤더부는 "1"이 되고 상기 테일부는 0비트의 이진수 즉 생략된다. 즉, n이 0이면 바이너리 클러스터는 "1"이 된다. 또한 추가적으로, 각각의 바이너리 클러스터를 분할함에 있어, 압축부(110)는 원본 이진데이터의 최상위 비트가 1인 경우에는 그 다음 비트부터 각각 상기 바이너리 클러스터가 배열되고, 최상위 비트가 1이 아닌 경우에는 상기 최상위 비트부터 각각의 상기 바이너리 클러스터가 배열되도록 상기 원본 이진데이터를 분할한다.
원본 이진데이터를 각각의 바이너리 클러스터로 분할하는 것을 아래 예를 들어 보다 구체적으로 설명한다.
원본 이진데이터 ==>> 1011101011000101011100111... --------- (1)
우선 최상위 비트가 "1"이므로 그 다음 비트부터 바이너리 클러스터를 분할하게 된다. 즉 최상위 비트 "1"을 우선 분할한다.
이후 하위 비트 방향으로 이동하면서, 아래 (2)와 같이 "01"을 헤더로 "1"을 테일로 하는 바이너리 클러스터 "011"을 분할하고, 이어서 "1"을 바이너리 클러스터로서 분할하며, 그 다음 "01"을 헤더로 "0"을 테일로 하는 바이너리 클러스터 "010"을 분할하며, 이후 "1", "1", "0001010", "1", "1", "1", "00111" 등을 바이너리 클러스터로서 분할한다. 아래에서 "/"는 설명의 편이를 위해 표시한 이론상 구분자로서 실제로는 존재하지 않는 것이다. 여기서 분할이 시간적으로 순차적으로 이루어지는 것처럼 설명되었으나 이것은 설명의 편의를 위한 것이며 동시에 일어나는 경우까지 포함한다.
1/011/1/010/1/1/0001010/1/1/1/00111/... ------------- (2)
이어서, 압축부(110)는 상기 분할된 분할 이진데이터를 압축하여 압축 이진데이터를 생성한다(S202). 압축부(110)는 상기 각각의 바이너리 클러스터를 압축하는 일 예로서, 원본 이진데이터에서 각각의 바이너리 클러스터의 헤더부를 제거하여 상기 압축 이진데이터를 생성한다. 상기 실시예의 경우 분할 이진데이터는 다음과 같이 압축된다. 바이너리 클러스터 "1"은 삭제된다.
/ 1 / / 0 / / / 010 / / / / 11 /... ------ (3)
이어서, 압축부(110)는 데이터 전송을 위해 상기 압축 이진데이터를 변환한다(S203). 구체적으로, 압축부(110)는 압축 이진데이터에서 각각의 테일부에 포함된 "0"을 "10"으로 "1"을 "01"로 변환하거나 "1"을 "10"으로 "0"을 "01"로 변환하고, 그리고 각각의 테일부 사이에 구분자를 삽입한다.
압축부(110)는 상기 구분자로서 "11"과 "00"을 교대로 삽입함으로써, 추후 데이터 복원 시 그 구분자를 경계로 하여 각 테일부를 식별하여 복원할 수 있도록 한다. 상기 구분자는 "11"부터 삽입할 수도 있고 "00"부터 삽입할 수 있는데, 단 "11"과 "00"은 교대로 번갈아 가며 삽입된다.
변환된 압축 이진데이터는 그 데이터가 최상위비트로부터 짝수 개 즉 2 비트 단위로 나누어지기 때문에 상기 구분자를 경계로 하여 각 테일부를 구분해 낼 수 있다. 만약 "1100"이나 "0011"과 같이 구분자 "11"과 "00"이 붙어 있는 부분이 나오면 그 사이에는 바이너리 클러스터 "1"이 생략되어 있다는 것을 알 수 있다.
상기에서 압축부(110)는 압축 이진데이터에서 각각의 테일부에 포함된 "0"을 "10"으로 "1"을 "01"로 변환하거나 "1"을 "10"으로 "0"을 "01"로 변환하는데, 이렇게 함으로써 상기 구분자를 포함하여 변환된 압축 이진데이터는 거의 동일한 갯수(같거나 최대 2개 이하 차이)의 "1"과 "0"으로 구성될 수 있게 되고, 이것은 데이터 전송 시 DC 밸런스를 유지하게 하고 클럭 복원 효율을 높여 줄 수 있다.
상기 (3)의 압축 이진데이터는 다음과 같이 변환될 수 있다.
00 01 11 00 10 11 00 11 10 01 10 00 11 00 11 01 01 ... --------- (4)
원본 이진데이터 "1011101011000101011100111..."로부터 변환된 압축 이진데이터를 생성하는 것을 정리하면 아래 표 1과 같다.
바이너리클러스터및구분 압축바이너리클러스터및구분 라인코딩전송(NRZ 방식 등) 원본길이합 부호화길이합
1 1 0
/ / 00 2
011 1 01 3 2
/ / 11 2
1 1 0
/ / 00 2
010 0 10 3 2
/ / 11 2
1 1 0
/ / 00 2
1 1 0
/ / 11 2
0001010 010 100110 7 6
/ / 00 2
1 1 0
/ / 11 2
1 1 0
/ / 00 2
1 1 0
/ / 11 2
00111 11 0101 5 4
25 34
다음으로, 출력부(120)는 상기 변환된 압축 이진데이터를 목적 장치, 예를 들어 데이터 복원장치(200)로 출력한다(S204).
이후, 데이터 복원장치(200)에서 복원부(220)는 입력부(210)를 통해 상기 변환된 압축된 데이터를 입력받아 이를 복원한다. 복원부(220)는 상기 압축부(110)에서 적용된 압축규칙을 역으로 적용하여 원본 데이터를 복원한다.
이상 살펴 본 바와 같이, 본 실시예에 따른 데이터 압축 방법 및 장치는 간단한 연산과 하드웨어적 구성을 통해 이진 데이터를 압축하고 변환함으로써, 데이터의 압축 효율을 향상시킬 수 있을 뿐만 아니라 데이터의 DC 밸런스를 향상시키고 클럭 복원 효율을 높여 전송 데이터의 오류 가능성도 감소시킬 수 있다. 또한, 본 실시예는 데이터 복원 시 별도의 환산테이블이 필요치 않아 구현이 용이하다는 장점이 있을 뿐만 아니라, 일반적인 맨체스터 코딩의 경우 오버헤드(overhead, 원본 데이터 대비 변환된 데이터의 크기의 비율)가 100%인 반면 본 실시예는 오버헤드를 36% 정도로 감소시킬 수 있다.
따라서 본 실시예는 매우 간단한 연산을 통해 우수한 클럭복원율과 DC밸런스를 유지하면서, 오버헤드를 기존 맨체스터 코딩에 비해 대폭 줄여서 오버헤드 측면에서 부담이 없는 새로운 라인코딩 알고리즘을 구현할 수 있다. 특히 본 실시예에 따르면 8b10b와 같은 테이블 구조 및 복잡한 회로의 구현이 필요한 라인코딩에 비해, 매우 간단하게 비슷한 오버헤드를 가지면서 더욱 정확한 클럭복원율(연속된 0 또는 1이 4개이하임)과 DC 밸런스(맨체스터 방식에 준함)를 맞출수 있다..
이상에서 본 발명의 실시 예에 대하여 상세하게 설명하였지만 본 발명의 권리범위는 이에 한정되는 것은 아니고, 다음의 청구범위에서 정의하고 있는 본 발명의 기본 개념을 이용한 당업자의 여러 변형 및 개량 형태 또한 본 발명의 권리범위에 속하는 것이다.
100 : 데이터 압축 장치
110 : 압축부 120 : 출력부
200 : 데이터 복원장치
210 : 입력부 220 : 복원부

Claims (8)

  1. 데이터 압축방법으로서,
    압축부가 원본 이진데이터를 바이너리 클러스터 단위로 분할하여 분할 이진데이터를 생성하는 단계;
    상기 압축부가 상기 분할 이진데이터를 압축하여 압축 이진데이터를 생성하는 단계; 및
    출력부가 상기 압축 이진데이터를 목적 장치로 출력하는 단계를 포함하되,
    상기 압축부는, 상기 원본 이진데이터의 최상위 비트가 1인 경우에는 최상위 비트 다음 비트부터 상기 바이너리 클러스터 단위로 바이너리 클러스터들을 생성하고, 최상위 비트가 1이 아닌 경우에는 상기 최상위 비트부터 상기 바이너리 클러스터 단위로 바이너리 클러스터들을 생성하도록 상기 원본 이진데이터를 분할하고,
    상기 바이너리 클러스터들의 각각은 헤더부와 테일부를 구비하되, 상기 헤더부는 각 헤더부의 최상위비트에서 하위비트 방향으로 n개의 "0"과 이어서 1개의 "1"을 구비하고 상기 테일부는 상기 헤더부의 "1" 이후에 배치된 n비트의 데이터이고(n은 0 이상의 정수),
    상기 압축부는 상기 분할 이진데이터에서 상기 바이너리 클러스터들의 각각의 헤더부를 제거하여 상기 압축 이진데이터를 생성하는, 데이터 압축방법.
  2. 제 1항에 있어서,
    상기 압축부가 상기 압축 이진데이터를 변환하는 단계를 더 포함하되,
    상기 출력부는 상기 변환된 압축 이진데이터를 상기 목적 장치로 출력하는, 데이터 압축방법.
  3. 제 2항에 있어서,
    상기 변환하는 단계에서, 상기 압축부는
    상기 압축 이진데이터의 각각의 테일부에 포함된 "0"을 "10"으로 "1"을 "01"로 변환하거나 "1"을 "10"으로 "0"을 "01"로 변환하고, 상기 각각의 테일부 사이에 구분자를 삽입하는, 데이터 압축방법.
  4. 제 3항에 있어서,
    상기 변환하는 단계에서, 상기 압축부는 상기 구분자로서 "11"과 "00"을 교대로 삽입하는, 데이터 압축방법.
  5. 데이터 압축장치로서,
    원본 이진데이터를 바이너리 클러스터 단위로 분할하여 분할 이진데이터를 생성하고, 상기 분할 이진데이터를 압축하여 압축 이진데이터를 생성하는 압축부; 및
    상기 압축 이진데이터를 목적 장치로 출력하는 출력부를 포함하되,
    상기 압축부는, 상기 원본 이진데이터의 최상위 비트가 1인 경우에는 최상위 비트 다음 비트부터 상기 바이너리 클러스터 단위로 바이너리 클러스터들을 생성하고, 최상위 비트가 1이 아닌 경우에는 상기 최상위 비트부터 상기 바이너리 클러스터 단위로 바이너리 클러스터들을 생성하도록 상기 원본 이진데이터를 분할하고,
    상기 바이너리 클러스터들의 각각은 헤더부와 테일부를 구비하되, 상기 헤더부는 각 헤더부의 최상위비트에서 하위비트 방향으로 n개의 "0"과 이어서 1개의 "1"을 구비하고 상기 테일부는 상기 헤더부의 "1" 이후에 배치된 n비트의 데이터이고(n은 0 이상의 정수),
    상기 압축부는 상기 분할 이진데이터에서 상기 바이너리 클러스터들의 각각의 헤더부를 제거하여 상기 압축 이진데이터를 생성하는, 데이터 압축장치.
  6. 제 5항에 있어서,
    상기 압축부는 상기 압축 이진데이터를 변환하고, 상기 출력부는 상기 변환된 압축 이진데이터를 상기 목적 장치로 출력하는, 데이터 압축장치.
  7. 제 6항에 있어서,
    상기 압축 이진데이터의 변환 시, 상기 압축부는 상기 압축 이진데이터의 각각의 테일부에 포함된 "0"을 "10"으로 "1"을 "01"로 변환하거나 "1"을 "10"으로 "0"을 "01"로 변환하고, 상기 각각의 테일부 사이에 구분자를 삽입하는, 데이터 압축장치.
  8. 제 7항에 있어서,
    상기 압축 이진데이터의 변환 시, 상기 압축부는 상기 구분자로서 "11"과 "00"을 교대로 삽입하는, 데이터 압축장치.
KR1020200104621A 2020-06-15 2020-08-20 데이터 압축 방법 및 장치 KR102361730B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020200072616 2020-06-15
KR20200072616 2020-06-15

Publications (2)

Publication Number Publication Date
KR20210155313A KR20210155313A (ko) 2021-12-22
KR102361730B1 true KR102361730B1 (ko) 2022-02-11

Family

ID=79164383

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200104621A KR102361730B1 (ko) 2020-06-15 2020-08-20 데이터 압축 방법 및 장치

Country Status (1)

Country Link
KR (1) KR102361730B1 (ko)

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101723336B1 (ko) * 2015-05-14 2017-04-06 김정훈 이진데이터 압축 및 압축 해제 방법
KR101733299B1 (ko) * 2015-09-19 2017-05-08 김정훈 이진데이터의 실시간 압축 및 압축해제 방법

Also Published As

Publication number Publication date
KR20210155313A (ko) 2021-12-22

Similar Documents

Publication Publication Date Title
US5608396A (en) Efficient Ziv-Lempel LZI data compression system using variable code fields
US8872677B2 (en) Method and apparatus for compressing data-carrying signals
US9094039B2 (en) Efficient deflate decompression
CN113810057A (zh) 用于语义值数据压缩和解压缩的方法、设备和系统
EP0127815A2 (en) Data compression method
KR102361730B1 (ko) 데이터 압축 방법 및 장치
KR101575939B1 (ko) 이진 데이터의 압축 및 복원 방법과 장치
Mathpal et al. A research paper on lossless data compression techniques
Kwon et al. Error detection algorithm for Lempel-Ziv-77 compressed data
KR100636370B1 (ko) 결정 비트를 이용한 부호화 장치 및 그 방법과 그에 따른복호화 장치 및 그 방법
KR20230050256A (ko) 데이터 부호화 방법 및 부호기와 데이터 복호화 방법
KR20230033623A (ko) 데이터 부호화 방법 및 부호기와 데이터 복호화 방법
KR101549740B1 (ko) 이진 데이터의 압축 및 압축해제 방법과 장치
KR101471833B1 (ko) 이진 데이터의 압축 및 압축해제 방법과 장치
KR101676421B1 (ko) 데이터의 압축 및 복원 방법과 장치
KR101590790B1 (ko) 이진 데이터의 압축 및 복원 방법과 장치
US8854235B1 (en) Decompression circuit and associated compression method and decompression method
EP0494038A2 (en) Run-length encoding in extensible character sets
Kaur et al. Lossless text data compression using modified Huffman Coding-A review
KR101573983B1 (ko) 데이터 압축 및 데이터 복원 방법과 장치
KR20230022289A (ko) 데이터 압축 방법 및 장치
KR102098644B1 (ko) 유티에프-8 코드 문자의 압축 방법 및 장치
KR101632116B1 (ko) 이진 데이터의 압축 및 복원 방법과 장치
JP2012034272A (ja) 文字列データ圧縮装置及びその方法並びに文字列データ復元装置及びその方法
Philip et al. LiBek II: A novel compression architecture using adaptive dictionary

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant