KR101670606B1 - 이진데이터의 압축 및 압축해제 방법 - Google Patents

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

Info

Publication number
KR101670606B1
KR101670606B1 KR1020150117136A KR20150117136A KR101670606B1 KR 101670606 B1 KR101670606 B1 KR 101670606B1 KR 1020150117136 A KR1020150117136 A KR 1020150117136A KR 20150117136 A KR20150117136 A KR 20150117136A KR 101670606 B1 KR101670606 B1 KR 101670606B1
Authority
KR
South Korea
Prior art keywords
binary
cluster
compressed
clusters
data
Prior art date
Application number
KR1020150117136A
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 김정훈
Application granted granted Critical
Publication of KR101670606B1 publication Critical patent/KR101670606B1/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

본 발명은 전송하고자 하는 이진데이터에 대하여 최상위 비트에서 최하위 비트로의 순방향으로 또는 그 역방향으로 이동하면서, "10"을 만날 때마다 "10"의 앞에서 분할하고, "01"을 만날 때마다 "0"과 "1" 사이를 분할하여, 상기 순방향 또는 상기 역방향의 배열순서대로 전송되기 위한 다수의 바이너리 클러스터를 구분하는 단계; 상기 바이너리 클러스터가 1개의 "1"로 시작하고, 1개 이상의 연속된 "0"으로 이루어지는 10 타입 바이너리 클러스터인 경우, "0"의 갯수를 이진수로 변환함으로써 "1"로 시작하는 압축바이너리 클러스터를 전송하는 단계; 및 상기 바이너리 클러스터가 1개 이상의 "1"로 연속해서 이루어지는 1 타입 바이너리클러스터인 경우, "1"의 갯수를 이진수로 변환한 뒤, 변환한 이진수를 비트 반전함으로써 "0"으로 시작하는 압축바이너리 클러스터를 전송하는 단계;를 포함하도록 한 이진데이터의 압축 방법과, 이에 따른 압축해제 방법에 관한 것이다.
본 발명에 따르면, 압축 및 압축해제를 위한 처리 속도를 향상시킬 수 있고, 압축율이 뛰어나며, 압축 및 압축해제의 결과값에 대한 신뢰성을 높일 수 있고, 이진데이터 전송의 실질적인 트래픽을 획기적으로 절감할 수 있다.

Description

이진데이터의 압축 및 압축해제 방법{Binary data compression and decompression method}
본 발명은 이진데이터의 압축 및 압축해제 방법에 관한 것으로서, 보다 상세하게는 처리 속도가 뛰어나고, 압축율을 향상시킨 이진데이터의 압축 및 압축해제 방법에 관한 것이다.
일반적으로, 이진수는 이진법으로 표현되는 수를 말하며, 0과 1로 나타내어지고, 컴퓨터 등에서 사용되는 데이터의 처리 및 표현에 사용된다.
이와 같은 이진수로 이루어진 이진데이터는 그 처리 속도 및 저장 용량 등을 고려하여 압축이 요구되는데, 종래의 이진데이터의 압축 및 압축해제 방법으로는 한국공개특허 제10-1999-022960호의 "이진 코드 압축과 복원방법 및 병렬압축과 복원 프로세서"가 개시된 바 있는데, 이는 이진 코드의 압축 방법으로서, 코드화된 신호 비트 값과 직교 부호화 함수값과의 연속 곱(serial multiplication), 이후 일정 시간 주기 동안의 모든 곱(products)의 합산을 통한 초기 데이터 흐름의 변환을 포함하는 이진 코드 압축 방식에 있어서, 함수의 이산값이 부호화 함수로서 사용되며, 상기 함수는 주파수를 가진 가우시안 펄스 형태인 구분적 연속 함수이며, 부호화 변환로서 Duamel 시퀀스의 계산법이 사용되며, 데이터 입력 흐름과 부호화 함수의 이산값은 상기 시퀀스의 독립변수로 사용된다.
그러나, 이와 같은 이진데이터의 압축 방법은 데이터의 압축 및 압축해제에 대한 처리 과정이 복잡하여 처리 속도 향상에 제한이 따르고, 결과값에 대해서 신뢰성을 높이기가 어렵다는 문제점을 가지고 있었다.
상기한 바와 같은 종래 기술의 문제점을 해결하기 위하여, 본 발명은 압축 및 압축해제를 위한 처리 속도를 향상시킬 수 있고, 압축율이 뛰어나며, 압축 및 압축해제의 결과값에 대한 신뢰성을 높이도록 하는데 목적이 있다.
본 발명의 다른 목적들은 이하의 실시례에 대한 설명을 통해 쉽게 이해될 수 있을 것이다.
상기한 바와 같은 목적을 달성하기 위해, 본 발명의 일측면에 따르면, 전송하고자 하는 이진데이터에 대하여 최상위 비트에서 최하위 비트로의 순방향으로 또는 그 역방향으로 이동하면서, "10"을 만날 때마다 "10"의 앞에서 분할하고, "01"을 만날 때마다 "0"과 "1" 사이를 분할하여, 상기 순방향 또는 상기 역방향의 배열순서대로 전송되기 위한 다수의 바이너리 클러스터를 구분하는 단계; 상기 바이너리 클러스터가 1개의 "1"로 시작하고, 1개 이상의 연속된 "0"으로 이루어지는 10 타입 바이너리 클러스터인 경우, "0"의 갯수를 이진수로 변환함으로써 "1"로 시작하는 압축바이너리 클러스터를 전송하는 단계; 및 상기 바이너리 클러스터가 1개 이상의 "1"로 연속해서 이루어지는 1 타입 바이너리클러스터인 경우, "1"의 갯수를 이진수로 변환한 뒤, 변환한 이진수를 비트 반전함으로써 "0"으로 시작하는 압축바이너리 클러스터를 전송하는 단계;를 포함하는, 이진데이터의 압축 방법이 제공된다.
본 발명의 다른 측면에 따르면, 전송하고자 하는 이진데이터에 대하여 최상위 비트에서 최하위 비트로의 순방향으로 또는 그 역방향으로 이동하면서, "10"을 만날 때마다 "10"의 앞에서 분할하고, "01"을 만날 때마다 "0"과 "1" 사이를 분할하여, 상기 순방향 또는 상기 역방향의 배열순서대로 전송되기 위한 다수의 바이너리 클러스터를 구분하는 단계; 상기 바이너리 클러스터가 1개의 "1"로 시작하고, 1개 이상의 연속된 "0"으로 이루어지는 10 타입 바이너리 클러스터인 경우, "0"의 갯수를 이진수로 변환한 뒤, 변환한 이진수를 비트반전함으로써 "0"으로 시작하는 압축바이너리 클러스터를 전송하는 단계; 및 상기 바이너리 클러스터가 1개 이상의 "1"로 연속해서 이루어지는 1 타입 바이너리클러스터인 경우, "1"의 갯수를 이진수로 변환함으로써 "1"로 시작하는 압축바이너리 클러스터를 전송하는 단계;를 포함하는, 이진데이터의 압축 방법이 제공된다.
상기 바이너리 클러스터의 압축에 의해 생성되는 압축바이너리 클러스터를 전송시, 상기 압축바이너리 클러스터의 전송 사이마다 구분할 수 있도록 하는 디지털 변조 과정을 거칠 수 있다.
상기 다수의 바이너리 클러스터를 구분하는 단계 이전에, 상기 전송하고자 하는 이진데이터의 최상위 비트 앞에 "1" 또는 "1"로 시작하는 이진수인 강제 헤더(Compulsory Header; CH)를 부가하는 단계를 더 포함할 수 있다.
본 발명의 또 다른 측면에 따르면, 본 발명의 일측면에 따른 이진데이터의 압축 방법에 의해 압축된 이진데이터의 압축해제를 위한 방법으로서, 상기 압축바이너리 클러스터를 각각 순차적으로 수신받아, 상기 압축바이너리 클러스터 각각에 대한 압축해제를 수행하는 단계를 포함하고, 상기 압축해제를 수행하는 단계는, 상기 압축바이너리 클러스터가 "1"로 시작하는 이진수인 경우, "1"로 시작하는 이진수에 해당하는 갯수의 연속된 "0"으로만 이루어진 이진수에 "1"을 최상위 비트 앞에 부가함으로써 바이너리 클러스터로 복구하는 단계; 및 상기 압축바이너리 클러스터가 "0"으로 시작하는 이진수인 경우, "0"으로 시작하는 이진수를 비트반전하고, 비트반전한 이진수에 해당하는 갯수의 연속된 "1"로만 이루어진 바이너리 클러스터로 복구하는 단계;를 포함하는, 이진데이터의 압축해제 방법이 제공된다.
본 발명의 또 다른 측면에 따르면, 본 발명의 일측면에 따른 이진데이터의 압축 방법에 의해 압축된 이진데이터의 압축해제를 위한 방법으로서, 상기 압축바이너리 클러스터를 각각 순차적으로 수신받아, 상기 압축바이너리 클러스터 각각에 대한 압축해제를 수행하는 단계; 및 상기 압축해제된 바이너리 클러스터들을 연결한 이진데이터에서 상기 강제 헤더를 제거(decapping)하는 단계;를 포함하고, 상기 압축해제를 수행하는 단계는, 상기 압축바이너리 클러스터가 "1"로 시작하는 이진수인 경우, "1"로 시작하는 이진수에 해당하는 갯수의 연속된 "0"으로만 이루어진 이진수에 "1"을 최상위 비트 앞에 부가함으로써 바이너리 클러스터로 복구하는 단계; 및 상기 압축바이너리 클러스터가 "0"으로 시작하는 이진수인 경우, "0"으로 시작하는 이진수를 비트반전하고, 비트반전한 이진수에 해당하는 갯수의 연속된 "1"로만 이루어진 바이너리 클러스터로 복구하는 단계;를 포함하는, 이진데이터의 압축해제 방법이 제공된다.
본 발명의 또 다른 측면에 따르면, 본 발명의 다른 측면에 따른 이진데이터의 압축 방법에 의해 압축된 이진데이터의 압축해제를 위한 방법으로서, 상기 압축바이너리 클러스터를 각각 순차적으로 수신받아, 상기 압축바이너리 클러스터 각각에 대한 압축해제를 수행하는 단계를 포함하고, 상기 압축해제를 수행하는 단계는, 상기 압축바이너리 클러스터가 "0"으로 시작하는 이진수인 경우, "0"으로 시작하는 이진수를 비트반전하고, 비트반전한 이진수에 해당하는 갯수의 연속된 "0"으로만 이루어진 이진수에 "1"을 최상위 비트 앞에 부가함으로써 바이너리 클러스터로 복구하는 단계; 및 상기 압축바이너리 클러스터가 "1"로 시작하는 이진수인 경우, "1"로 시작하는 이진수에 해당하는 갯수의 연속된 "1"로만 이루어진 바이너리 클러스터로 복구하는 단계;를 포함하는, 이진데이터의 압축해제 방법이 제공된다.
본 발명의 또 다른 측면에 따르면, 본 발명의 다른 측면에 따른 이진데이터의 압축 방법에 의해 압축된 이진데이터의 압축해제를 위한 방법으로서, 상기 압축바이너리 클러스터를 각각 순차적으로 수신받아, 상기 압축바이너리 클러스터 각각에 대한 압축해제를 수행하는 단계; 및 상기 압축해제된 바이너리 클러스터들을 연결한 이진데이터에서 상기 강제 헤더를 제거(decapping)하는 단계;를 포함하고, 상기 압축해제를 수행하는 단계는, 상기 압축바이너리 클러스터가 "0"으로 시작하는 이진수인 경우, "0"으로 시작하는 이진수를 비트반전하고, 비트반전한 이진수에 해당하는 갯수의 연속된 "0"으로만 이루어진 이진수에 "1"을 최상위 비트 앞에 부가함으로써 바이너리 클러스터로 복구하는 단계; 및 상기 압축바이너리 클러스터가 "1"로 시작하는 이진수인 경우, "1"로 시작하는 이진수에 해당하는 갯수의 연속된 "1"로만 이루어진 바이너리 클러스터로 복구하는 단계;를 포함하는, 이진데이터의 압축해제 방법이 제공된다.
본 발명에 따른 이진데이터 압축 및 압축해제 방법에 의하면, 압축 및 압축해제를 위한 처리 속도를 향상시킬 수 있고, 압축율이 뛰어나며, 압축 및 압축해제의 결과값에 대한 신뢰성을 높일 수 있고, 이진데이터 전송의 실질적인 트래픽을 획기적으로 절감할 수 있다.
도 1은 본 발명의 제 1 실시례에 따른 이진데이터의 압축 방법을 도시한 흐름도이다.
도 2는 본 발명의 제 2 실시례에 따른 이진데이터의 압축 방법을 도시한 흐름도이다.
도 3은 본 발명에 따른 이진데이터의 압축 및 압축해제 방법에 사용되는 장치를 도시한 구성도이다.
도 4는 본 발명의 제 1 실시례에 따른 이진데이터의 압축해제 방법을 도시한 흐름도이다.
도 5는 본 발명의 제 2 실시례에 따른 이진데이터의 압축해제 방법을 도시한 흐름도이다.
본 발명은 다양한 변경을 가할 수 있고, 여러 가지 실시례를 가질 수 있는 바, 특정 실시례들을 도면에 예시하고, 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니고, 본 발명의 기술 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 식으로 이해되어야 하고, 여러 가지 다른 형태로 변형될 수 있으며, 본 발명의 범위가 하기 실시례에 한정되는 것은 아니다.
이하, 첨부된 도면을 참조하여 본 발명에 따른 실시례를 상세히 설명하며, 도면 부호에 관계없이 동일하거나 대응하는 구성요소에 대해서는 동일한 참조 번호를 부여하고, 이에 대해 중복되는 설명을 생략하기로 한다.
도 1은 본 발명의 제 1 실시례에 따른 이진데이터의 압축 방법을 도시한 흐름도이다.
도 1을 참조하면, 본 발명의 제 1 실시례에 따른 이진데이터의 압축 방법은 전송하고자 하는 임의의 이진데이터의 최상위 비트 앞에 "1" 또는 "1"로 시작하는 이진수인 강제 헤더(Compulsory header; CH)를 부가한다(S11). 본 실시례에서는 전송하고자 하는 임의의 이진데이터를 아래의 이진수를 예로 들어 설명하기로 한다.
0010111010101001111100001011
상기한 예의 이진데이터의 최상위 비트 앞에 강제 헤더로서 "10"을 부가하면 아래의 이진수가 된다. 강제 헤더는 이진데이터를 "1"로 시작하도록 만드는 어떤 이진수도 해당될 수 있는데, 본 실시례에서는 일례로 "10"을 강제 헤더로 사용하기로 하는데, 이러한 강제 헤더는 "10" 이외에도 "1"인 이진수 뿐만 아니라, "1"로 시작하는 이진수일 수 있음은 물론이며, 이에는 "10"인 이진수 뿐만 아니라, "10"으로 시작하는 이진수를 포함할 수 있다.
100010111010101001111100001011
한편, 상기한 강제 헤더를 부가하는 단계(S11)는 본 발명에 따른 이진데이터의 압축 방법에 있어서, 반드시 필요로 하는 단계가 아니므로, 생략될 수 있다. 따라서, 본 발명에 따른 이진데이터의 압축 방법은 상기한 바와 같이, 강제 헤더를 부가하는 단계(S11)를 포함하는 본 실시례와, 강제 헤더를 부가하는 단계(S11)가 생략된 다른 실시례로 이루어질 수 있다. 강제 헤더를 부가하는 단계(S11)가 생략될 경우, 후술하게 될 다수의 바이너리 클러스터를 구분하는 단계(S12)는 강제 헤더가 부가되지 않은 상태의 전송하고자 하는 이진데이터에 대해서 수행될 수 있으며, 이러한 이진데이터는 일례로 "1"로 시작하는 이진수일 수 있다.
강제 헤더가 부가된 이진데이터에 대하여 최상위 비트에서 최하위 비트로의 순방향으로 또는 그 역방향으로 이동하면서, "10"을 만날 때마다 "10"의 앞에서 분할하고, "01"을 만날 때마다 "0"과 "1" 사이를 분할하여, 순방향 또는 역방향의 배열순서대로 전송되기 위한 다수의 바이너리 클러스터를 구분한다(S12). 따라서 바이너리 클러스터로 구분할 때마다, 상기의 분할 조건을 동시에 만족시킬 수도 있고, 어느 하나만을 만족시킬 수도 있는데, 이러한 다수의 바이너리 클러스터의 구분을 나타내면 아래와 같다.
1000/10/11/10/10/10/100/1111/10000/10/11
바이너리 클러스터의 구분을 마치면(S12), 바이너리 클러스터의 유형을 판단하여(S13), 바이너리 클러스터가 1개의 "1"로 시작하고, 1개 이상의 연속된 "0"으로 이루어지는 10 타입 바이너리 클러스터인 경우, "0"의 갯수를 이진수로 변환함으로써 "1"로 시작하는 압축바이너리 클러스터를 생성하고, 이를 전송하는 단계(S14)를 수행하고, 바이너리 클러스터가 1개 이상의 "1"로 연속해서 이루어지는 1 타입 바이너리클러스터인 경우, "1"의 갯수를 이진수로 변환한 뒤, 변환한 이진수를 비트 반전함으로써 "0"으로 시작하는 압축바이너리 클러스터를 생성하고, 이를 전송하는 단계(S15)를 수행한다.
이와 같이, 다수의 바이너리 클러스터의 구분에 의해 생성된 바이너리 클러스터는 크게 2가지로 구분되는데, 이에 따라 각 바이너리 클러스터에 따라 압축방법이 달라지는데, 상기한 바와 같은 10 타입 바이너리 클러스터와 1 타입 바이너리 클러스터가 그것이다. 이를 보다 구체적으로 설명하면 다음과 같다.
10 타입 클러스터는 "10", "100", "1000", "10000" 등과 같이, 1개의 "1"로 시작하고, 1개 이상의 연속된 "0"으로 이루어진 형태의 이진수이다. 이러한 10 타입 바이너리 클러스터는 최상위 비트의 "1"을 제거하면, 예를 들어, "100"에는 "00"이 되는데, "0"의 갯수를 이진수로 표현하여 전송한다. 즉 "10"의 경우, 압축바이너리 클러스터는 "0"인데, "0"이 1개이므로, "1"을 전송하고, "1000"인 경우, 압축바이너리 클러스터는 "000"인데 "0"이 3개이므로, "11"을 전송한다. "10000"인 경우, 압축바이너리 클러스터는 "0000"인데 "0"이 4개이므로, "4"를 나타내는 이진수 "100"을 전송한다. 즉 "1"로 시작하는 이진수가 최종 압축바이너리 클러스터로서 전송되는 것이다. 이 최종 압축 바이너리 클러스터의 특징은 아래의 표에서와 같이 반드시 "1"로 시작한다는 점이다.
바이너리 클러스터 중간 생성 압축바이너리 클러스터 "0"의
갯수
최종 전송용 압축바이너리 클러스터("0"의 갯수를 이진수로 변환; 반드시 "1"로 시작하는 압축 바이너리 클러스터)
10 0 1 1
100 00 2 10
1000 000 3 11
10000 0000 4 100
100000 00000 5 101
1000000 000000 6 110
... .... ... ...
아래 표 2는 실제데이터의 10 타입 바이너리 클러스터의 압축바이너리 클러스터를 예를 들어 나타내었다.
10 타입 바이너리 클러스터 "0"의 개수 "0"의 개수를 이진수 형태로 표현한 압축바이너리 클러스터
10 1 1
10 1 1
10 1 1
1000 3 11
10000000000000000 16 10000
100000 5 101
100 2 10
10 1 1
100 2 10
1000 3 11
100 2 10
100 2 10
100 2 10
10 1 1
1000 3 11
10000000000000000 16 10000
10000000 7 111
10000000 7 111
1000000000 9 1001
1 타입 바이너리 클러스터는 "1", "11", "111", "1111" 등과 같이 1개 이상의 연속된 "1"로 이루어진 이진수로 구성된 바이너리 클러스터이다. 이러한 바이너리 클러스터는 "1"의 갯수를 이진수로 변환한 뒤, 이를 비트반전하여 압축바이너리 클러스터를 만들어서 전송한다. 예컨대 이러한 바이너리 클러스터의 경우는 예를 들어, "1"의 경우 "1"이 1개이므로, "1"을 생성하고, 이를 비트반전한 "0"을 압축바이너리 클러스터로 하여 전송한다. 여기서 비트반전은 "1"은 "0"으로, "0"은 "1"로 변경시키는 것을 의미한다. 또한 바이너리 클러스터가 "1111"인 경우, 압축바이너리 클러스터는 "1"이 4개이므로, "4"를 나타내는 이진수는 "100"인데, 이를 비트반전한 "011"을 전송한다. "11111"인 경우 "0"이 5개이므로, "5"를 나타내는 이진수 "101"을 생성한 뒤 이를 비트반전한 "010"을 전송한다. 즉 "0"으로 시작하는 이진수가 최종 압축바이너리 클러스터로서 전송되는 것이다. 이 최종 압축 바이너리 클러스터의 특징은 아래의 표 3에서와 같이 "0"으로 시작한다는 점이다.
바이너리 클러스터 중산생성
압축바이너리클러스터
최종 전송대상 압축바이너리 클러스터
("0"으로 시작하는 압축바이너리 클러스터)
1 1 0
11 10 01
111 11 00
1111 100 011
11111 101 010
…. ....
아래의 표 4는 실제 1 타입 바이너리 클러스터의 압축바이너리 클러스터의 예시를 나타내었다.
바이너리 클러스터 "1"의 개수 중간생성
압축바이너리 클러스터
비트반전된 최종
압축바이너리 클러스터
111111111 9 1001 0110
1 1 1 0
1111111111 10 1010 0101
1 1 1 0
1 1 1 0
1111111111 10 1010 0101
11 2 10 01
1 1 1 0
111 3 11 00
1 1 1 0
1 1 1 0
1 1 1 0
1 1 1 0
1 1 1 0
1 1 1 0
11 2 10 01
111 3 11 00
1 1 1 0
1 1 1 0
물론 10 타입 및 1 타입 바이너리 클러스터의 압축바이너리 클러스터를 생성함에 있어서, 본 실시례에서처럼 비트반전을 하는 압축바이너리 클러스터는 1 타입 바이너리 클러스터에서 압축바이너리 클러스터 생성시 수행할 수 있고, 다른 예, 즉 본 발명의 제 2 실시례에 따른 이진데이터의 압축 방법에서, 10 타입 바이너리 클러스터에서 압축바이너리 클러스터의 생성시 수행할 수 있는데, 단 어느 한 타입에서 비트반전을 수행하면, 다른 한 타입에서는 비트반전을 수행하지 않는다는 점은 동일하다.
도 2는 본 발명의 제 2 실시례에 따른 이진데이터의 압축 방법을 도시한 흐름도이다.
도 2를 참조하면, 본 발명의 제 2 실시례에 따른 이진데이터의 압축 방법은 전송하고자 하는 이진데이터의 최상위 비트 앞에 "1" 또는 "1"로 시작하는 이진수인 강제 헤더(Compulsory Header; CH)를 부가하는 단계(S21)와, 강제 헤더가 부가된 이진데이터에 대하여 최상위 비트에서 최하위 비트로의 순방향으로 또는 그 역방향으로 이동하면서, "10"을 만날 때마다 "10"의 앞에서 분할하고, "01"을 만날 때마다 "0"과 "1" 사이를 분할하여, 순방향 또는 역방향의 배열순서대로 전송되기 위한 다수의 바이너리 클러스터를 구분하는 단계(S22)와, 바이너리 클러스터가 1개의 "1"로 시작하고, 1개 이상의 연속된 "0"으로 이루어지는 10 타입 바이너리 클러스터인 경우(S23), "0"의 갯수를 이진수로 변환한 뒤, 변환한 이진수를 비트 반전함으로써 "0"으로 시작하는 압축바이너리 클러스터를 생성하고, 이를 전송하는 단계(S24)와, 바이너리 클러스터가 1개 이상의 "1"로 연속해서 이루어지는 1 타입 바이너리클러스터인 경우(S23), "1"의 갯수를 이진수로 변환함으로써 "1"로 시작하는 압축바이너리 클러스터를 생성하고, 이를 전송하는 단계(S25)를 포함할 수 있다. 본 발명의 제 2 실시례에 따른 이진데이터의 압축 방법은 비트반전을 10 타입 바이너리 클러스터인 경우에 수행하고, 1 타입 바이너리 클러스터인 경우에는 수행하지 않는다는 점을 제외하고는, 본 발명의 제 1 실시례에 따른 이진데이터의 압축 방법과 동일하다.
한편, 상기한 강제 헤더를 부가하는 단계(S21)는 본 발명에 따른 이진데이터의 압축 방법에 있어서, 반드시 필요로 하는 단계가 아니므로, 생략될 수 있다. 따라서, 본 발명에 따른 이진데이터의 압축 방법은 상기한 바와 같이, 강제 헤더를 부가하는 단계(S21)를 포함하는 본 실시례와, 강제 헤더를 부가하는 단계(S21)가 생략된 다른 실시례로 이루어질 수 있다. 강제 헤더를 부가하는 단계(S21)가 생략될 경우, 후술하게 될 다수의 바이너리 클러스터를 구분하는 단계(S22)는 강제 헤더가 부가되지 않은 상태의 전송하고자 하는 이진데이터에 대해서 수행될 수 있으며, 이러한 이진데이터는 일례로 "1"로 시작하는 이진수일 수 있다.
한편 도 3에서와 같이, 본 발명에 따른 이진데이터의 압축 방법뿐만 아니라, 후술하게 될 본 발명에 따른 이진데이터의 압축해제 방법에 사용되는 장치(10)는 예컨대, 데이터의 수신을 위한 수신부(11)와, 수신부(11)에 수신된 데이터, 특히 이진데이터의 압축 방법이나 압축해제 방법을 수행하는 마이컴(12)과, 마이컴(12)에 의해 압축이나 압축해제된 이진데이터를 송신하는 송신부(13)와, 마이컴(12)에 의해 압축이나 압축해제되거나, 수신부(11)에 의해 수신된 이진데이터를 저장하는 메모리부(14)를 포함할 수 있다. 또한 본 발명에서 전송은 수신부(11)에 의해 다른 장치로 전송하는 것뿐만 아니라, 메모리부(14)에 저장하기 위하여 전송하는 것도 포함할 수 있다.
상기한 바와 같은 바이너리 클러스터의 압축에 의해 생성되는 압축바이너리 클러스터 각각에 대해서 순차적으로 송신측에서 수신측으로 전송할 수 있고, 전송시, 상기 압축바이너리 클러스터의 전송 사이마다 구분할 수 있도록 하는 디지털 변조 과정을 거칠 수 있는데, 압축바이너리 클러스터 내의 이진수를 표현할 수 있고, 압축바이너리 클러스터들의 구분되어 있음을 물리적으로 표현할 수 있는 전송방법, 저장방법, 통신방법이라면 모두 본 발명을 적용할 수 있다. 또한 전송방법의 한 실시례로서, 맨체스터 코딩을 일부 변형하여, 압축바이너리 클러스터는 기존 맨체스터 코딩에 따라, 압축바이너리 클러스터내의 "1"은 하강에서 상승엣지로 구분하고 "0"은 상승에서 하강엣지로 구분하여 전송하고, 압축바이너리 클러스터 간의 구분정보는 물리적으로 송신측과 수신측이 동기를 잃지 않으면서 구분가능한 휴지전송(0 voltage)을 보냄으로써, 구분할 수 있도록 수정할 수도 있다. 이렇게 물리적인 디지털 변조과정을 거쳐 수신측으로 순차적으로 전송된 압축바이너리 클러스터에 대해 수신측은 압축바이너리 클러스터의 형태를 보고 압축해제 시나리오를 각각 달리 수행할 수 있다. 수신된 압축바이너리 클러스터가 "0"으로 시작하는지 "1"로 시작하는지 유형을 구분하여 그에 따라 압축해제 시나리오가 달라지는데, 이에 대해서 본 발명에 따른 이진데이터의 압축해제 방법을 설명하면 다음과 같다.
도 4는 본 발명의 제 1 실시례에 따른 이진데이터의 압축해제 방법을 도시한 흐름도이다.
도 4를 참조하면, 본 발명의 제 1 실시례에 따른 이진데이터의 압축해제 방법은 상기한 본 발명의 제 1 실시례에 따른 이진데이터의 압축 방법에 의해 압축된 이진데이터의 압축해제를 위한 방법으로서, 압축바이너리 클러스터를 각각 순차적으로 수신받아, 압축바이너리 클러스터 각각에 대한 압축해제를 수행하는 단계(S31,S32,S33,S34)와, 압축해제된 바이너리 클러스터들을 연결한 이진데이터에서 강제 헤더를 제거(decapping)하는 단계(S35)를 포함할 수 있다.
한편, 본 발명의 제 1 실시례에 따른 이진데이터의 압축 방법에서, 강제 헤더를 부가하는 단계(S11)가 생략되는 다른 실시례에 의해 압축된 이진데이터를 본 발명의 제 1 실시례에 따른 이진데이터의 압축해제 방법에 의해 압축해제하고자 하는 경우, 상기의 강제 헤더를 제거(decapping)하는 단계(S35) 역시 생략될 수 있다.
압축해제를 수행하는 단계(S31,S32,S33,S34)는 상기한 압축바이너리 클러스터를 각각 순차적으로 수신받고(S31), 압축바이너리 클러스터의 유형을 판단하여(S32), 압축바이너리 클러스터가 "1"로 시작하는 이진수인 경우, "1"로 시작하는 이진수에 해당하는 갯수의 연속된 "0"으로만 이루어진 이진수에 "1"을 최상위 비트 앞에 부가함으로써 바이너리 클러스터로 복구하는 단계(S33)와, 압축바이너리 클러스터가 "0"으로 시작하는 이진수인 경우, "0"으로 시작하는 이진수를 비트반전하고, 비트반전한 이진수에 해당하는 갯수의 연속된 "1"로만 이루어진 바이너리 클러스터로 복구하는 단계(S34)를 포함하는데, 이를 예로 들어 설명하면 다음과 같다.
상기의 압축바이너리 클러스터가 "1"로 시작할 경우에는 그대로 그 압축바이너리 클러스터가 나타내는 이진수의 값만큼의 갯수의 연속된 "0"으로만 이루어진 바이너리 클러스터를 복구한 뒤, 최상위 비트에 "1"을 부가하여 최종적으로 바이너리 클러스터를 복구한다. 즉, 압축바이너리 클러스터가 "101"이라고 하면, 별도의 비트반전은 없으며, 이 이진수가 나타내는 값은 "5"이므로, 연속된 5개의 "0"으로만 이루어진 이진수인 "00000"이 생성되고 여기의 최상위 비트 앞에 "1"을 부가하여 "100000"이 최종 압축해제된 원본 바이너리 클러스터가 되는 것이다.
상기의 압축바이너리 클러스터 가운데 압축바이너리 클러스터의 이진수가 "0"으로 시작하는 경우라면, 먼저 압축바이너리 클러스터에 대하여 비트반전을 수행하여 "1"로 시작하게 한 뒤, 비트반전된 압축바이너리 클러스터가 나타내는 이진수의 값만큼의 갯수의 연속된 "1"로만 이루어진 바이너리 클러스터를 복구한다. 즉, 압축바이너리 클러스터가 "010"이라고 하면, "0"으로 시작하였으므로, 비트반전 수행하면, "101"이 되고, 이 이진수가 나타내는 값은 "5"이므로, 연속된 5개의 "1"로만 이루어진 이진수인 "11111"가 압축바이너리 클러스터 "010"의 압축해제된 원본 바이너리 클러스터가 되는 것이다.
도 5는 본 발명의 제 2 실시례에 따른 이진데이터의 압축해제 방법을 도시한 흐름도이다.
도 5를 참조하면, 본 발명의 제 2 실시례에 따른 이진데이터의 압축해제 방법은 상기한 본 발명의 제 2 실시례에 따른 이진데이터의 압축 방법에 의해 압축된 이진데이터의 압축해제를 위한 방법으로서, 압축바이너리 클러스터를 각각 순차적으로 수신받아, 압축바이너리 클러스터 각각에 대한 압축해제를 수행하는 단계(S41,S42,S43,S44)와, 압축해제된 바이너리 클러스터들을 연결한 이진데이터에서 강제 헤더를 제거(decapping)하는 단계(S45)를 포함한다.
한편, 본 발명의 제 2 실시례에 따른 이진데이터의 압축 방법에서, 강제 헤더를 부가하는 단계(S21)가 생략되는 다른 실시례에 의해 압축된 이진데이터를 본 발명의 제 2 실시례에 따른 이진데이터의 압축해제 방법에 의해 압축해제하고자 하는 경우, 상기의 강제 헤더를 제거(decapping)하는 단계(S45) 역시 생략될 수 있다.
압축해제를 수행하는 단계(S41,S42,S43,S44)는 상기한 압축바이너리 클러스터를 각각 순차적으로 수신받고(S41), 압축바이너리 클러스터의 유형을 판단하여(S42), 압축바이너리 클러스터가 "0"으로 시작하는 이진수인 경우, "0"으로 시작하는 이진수를 비트반전하고, 비트반전한 이진수에 해당하는 갯수의 연속된 "0"으로만 이루어진 이진수에 "1"을 최상위 비트 앞에 부가함으로써 바이너리 클러스터로 복구하는 단계(S43)와, 압축바이너리 클러스터가 "1"로 시작하는 이진수인 경우, "1"로 시작하는 이진수에 해당하는 갯수의 연속된 "1"로만 이루어진 바이너리 클러스터로 복구하는 단계(S44)를 포함할 수 있다. 본 실시례에서 압축해제를 수행하는 단계(S41,S42,S43,S44)는 압축바이너리 클러스터가 "0"으로 시작하는 이진수인 경우, 비트반전함과 아울러, 최상 비트 앞에 "1"을 부가하고, 압축바이너리 클러스터가 "1"로 시작하는 이진수인 경우, 비트반전하지 않는다는 점을 제외하고는 본 발명의 제 1 실시례에 따른 이진데이터의 압축해제 방법과 동일하다.
상기와 같이 2가지 압축바이너리 클러스터의 각각 유형에 따른 시나리오로서 압축해제하면서 수신측으로부터 전송측에 전송하고자 했던 바이너리 클러스터를 모두 복원할 수 있고, 이렇게 복원된 최종 바이너리 클러스터들을 모두 연결한 뒤, 강제 헤더를 제거(decapping)하면 원본 임의의 이진데이터를 완벽하게 송수신하고 복원할 수 있으며, 매우 빠른 속도로 데이터를 전송할 수 있게 된다. 이와 같이, 본 발명에 따른 이진데이터 압축 및 압축해제 방법에 따르면, 이진수에 해당하는 원본데이터를 매우 효과적이고, 빠르게 압축 전송할 수 있고, 간단한 연산으로 수행되므로, 효율적으로 구현이 가능하다.
이와 같이 본 발명에 대해서 첨부된 도면을 참조하여 설명하였으나, 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 다양한 수정 및 변형이 이루어질 수 있음은 물론이다. 그러므로, 본 발명의 범위는 설명된 실시례에 한정되어서는 아니되며, 후술하는 특허청구범위뿐만 아니라 이러한 특허청구범위와 균등한 것들에 의해 정해져야 한다.
11 : 수신부 12 : 마이컴
13 : 송신부 14 : 메모리부

Claims (10)

  1. 전송하고자 하는 이진데이터에 대하여 최상위 비트에서 최하위 비트로의 순방향으로 또는 그 역방향으로 이동하면서, "10"을 만날 때마다 "10"의 앞에서 분할하고, "01"을 만날 때마다 "0"과 "1" 사이를 분할하여, 상기 순방향 또는 상기 역방향의 배열순서대로 전송되기 위한 다수의 바이너리 클러스터를 구분하는 단계;
    상기 바이너리 클러스터가 1개의 "1"로 시작하고, 1개 이상의 연속된 "0"으로 이루어지는 10 타입 바이너리 클러스터인 경우, "0"의 갯수를 이진수로 변환함으로써 "1"로 시작하는 압축바이너리 클러스터를 생성하고, 이를 전송하는 단계; 및
    상기 바이너리 클러스터가 1개 이상의 "1"로 연속해서 이루어지는 1 타입 바이너리클러스터인 경우, "1"의 갯수를 이진수로 변환한 뒤, 변환한 이진수를 비트 반전함으로써 "0"으로 시작하는 압축바이너리 클러스터를 생성하고, 이를 전송하는 단계;
    를 포함하는, 이진데이터의 압축 방법.
  2. 청구항 1에 있어서,
    상기 바이너리 클러스터의 압축에 의해 생성되는 압축바이너리 클러스터를 전송시, 상기 압축바이너리 클러스터의 전송 사이마다 구분할 수 있도록 하는 디지털 변조 과정을 거치는, 이진데이터의 압축 방법.
  3. 청구항 1에 있어서,
    상기 다수의 바이너리 클러스터를 구분하는 단계 이전에, 상기 전송하고자 하는 이진데이터의 최상위 비트 앞에 "1" 또는 "1"로 시작하는 이진수인 강제 헤더(Compulsory Header; CH)를 부가하는 단계를 더 포함하는, 이진데이터의 압축 방법.
  4. 전송하고자 하는 이진데이터에 대하여 최상위 비트에서 최하위 비트로의 순방향으로 또는 그 역방향으로 이동하면서, "10"을 만날 때마다 "10"의 앞에서 분할하고, "01"을 만날 때마다 "0"과 "1" 사이를 분할하여, 상기 순방향 또는 상기 역방향의 배열순서대로 전송되기 위한 다수의 바이너리 클러스터를 구분하는 단계;
    상기 바이너리 클러스터가 1개의 "1"로 시작하고, 1개 이상의 연속된 "0"으로 이루어지는 10 타입 바이너리 클러스터인 경우, "0"의 갯수를 이진수로 변환한 뒤, 변환한 이진수를 비트 반전함으로써 "0"으로 시작하는 압축바이너리 클러스터를 생성하고, 이를 전송하는 단계; 및
    상기 바이너리 클러스터가 1개 이상의 "1"로 연속해서 이루어지는 1 타입 바이너리클러스터인 경우, "1"의 갯수를 이진수로 변환함으로써 "1"로 시작하는 압축바이너리 클러스터를 생성하고, 이를 전송하는 단계;
    를 포함하는, 이진데이터의 압축 방법.
  5. 청구항 4에 있어서,
    상기 바이너리 클러스터의 압축에 의해 생성되는 압축바이너리 클러스터를 전송시, 상기 압축바이너리 클러스터의 전송 사이마다 구분할 수 있도록 하는 디지털 변조 과정을 거치는, 이진데이터의 압축 방법.
  6. 청구항 4에 있어서,
    상기 다수의 바이너리 클러스터를 구분하는 단계 이전에, 상기 전송하고자 하는 이진데이터의 최상위 비트 앞에 "1" 또는 "1"로 시작하는 이진수인 강제 헤더(Compulsory Header; CH)를 부가하는 단계를 더 포함하는, 이진데이터의 압축 방법.
  7. 청구항 1 또는 청구항 2에 기재된 이진데이터의 압축 방법에 의해 압축된 이진데이터의 압축해제를 위한 방법으로서,
    상기 압축바이너리 클러스터를 각각 순차적으로 수신받아, 상기 압축바이너리 클러스터 각각에 대한 압축해제를 수행하는 단계를 포함하고,
    상기 압축해제를 수행하는 단계는,
    상기 압축바이너리 클러스터가 "1"로 시작하는 이진수인 경우, "1"로 시작하는 이진수에 해당하는 갯수의 연속된 "0"으로만 이루어진 이진수에 "1"을 최상위 비트 앞에 부가함으로써 바이너리 클러스터로 복구하는 단계; 및
    상기 압축바이너리 클러스터가 "0"으로 시작하는 이진수인 경우, "0"으로 시작하는 이진수를 비트반전하고, 비트반전한 이진수에 해당하는 갯수의 연속된 "1"로만 이루어진 바이너리 클러스터로 복구하는 단계;를 포함하는, 이진데이터의 압축해제 방법.
  8. 청구항 3에 기재된 이진데이터의 압축 방법에 의해 압축된 이진데이터의 압축해제를 위한 방법으로서,
    상기 압축바이너리 클러스터를 각각 순차적으로 수신받아, 상기 압축바이너리 클러스터 각각에 대한 압축해제를 수행하는 단계; 및
    상기 압축해제된 바이너리 클러스터들을 연결한 이진데이터에서 상기 강제 헤더를 제거(decapping)하는 단계;를 포함하고,
    상기 압축해제를 수행하는 단계는,
    상기 압축바이너리 클러스터가 "1"로 시작하는 이진수인 경우, "1"로 시작하는 이진수에 해당하는 갯수의 연속된 "0"으로만 이루어진 이진수에 "1"을 최상위 비트 앞에 부가함으로써 바이너리 클러스터로 복구하는 단계; 및
    상기 압축바이너리 클러스터가 "0"으로 시작하는 이진수인 경우, "0"으로 시작하는 이진수를 비트반전하고, 비트반전한 이진수에 해당하는 갯수의 연속된 "1"로만 이루어진 바이너리 클러스터로 복구하는 단계;를 포함하는, 이진데이터의 압축해제 방법.
  9. 청구항 4 또는 청구항 5에 기재된 이진데이터의 압축 방법에 의해 압축된 이진데이터의 압축해제를 위한 방법으로서,
    상기 압축바이너리 클러스터를 각각 순차적으로 수신받아, 상기 압축바이너리 클러스터 각각에 대한 압축해제를 수행하는 단계를 포함하고,
    상기 압축해제를 수행하는 단계는,
    상기 압축바이너리 클러스터가 "0"으로 시작하는 이진수인 경우, "0"으로 시작하는 이진수를 비트반전하고, 비트반전한 이진수에 해당하는 갯수의 연속된 "0"으로만 이루어진 이진수에 "1"을 최상위 비트 앞에 부가함으로써 바이너리 클러스터로 복구하는 단계; 및
    상기 압축바이너리 클러스터가 "1"로 시작하는 이진수인 경우, "1"로 시작하는 이진수에 해당하는 갯수의 연속된 "1"로만 이루어진 바이너리 클러스터로 복구하는 단계;를 포함하는, 이진데이터의 압축해제 방법.
  10. 청구항 6에 기재된 이진데이터의 압축 방법에 의해 압축된 이진데이터의 압축해제를 위한 방법으로서,
    상기 압축바이너리 클러스터를 각각 순차적으로 수신받아, 상기 압축바이너리 클러스터 각각에 대한 압축해제를 수행하는 단계; 및
    상기 압축해제된 바이너리 클러스터들을 연결한 이진데이터에서 상기 강제 헤더를 제거(decapping)하는 단계;를 포함하고,
    상기 압축해제를 수행하는 단계는,
    상기 압축바이너리 클러스터가 "0"으로 시작하는 이진수인 경우, "0"으로 시작하는 이진수를 비트반전하고, 비트반전한 이진수에 해당하는 갯수의 연속된 "0"으로만 이루어진 이진수에 "1"을 최상위 비트 앞에 부가함으로써 바이너리 클러스터로 복구하는 단계; 및
    상기 압축바이너리 클러스터가 "1"로 시작하는 이진수인 경우, "1"로 시작하는 이진수에 해당하는 갯수의 연속된 "1"로만 이루어진 바이너리 클러스터로 복구하는 단계;를 포함하는, 이진데이터의 압축해제 방법.
KR1020150117136A 2015-06-01 2015-08-20 이진데이터의 압축 및 압축해제 방법 KR101670606B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020150077634 2015-06-01
KR20150077634 2015-06-01

Publications (1)

Publication Number Publication Date
KR101670606B1 true KR101670606B1 (ko) 2016-10-28

Family

ID=57244824

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150117136A KR101670606B1 (ko) 2015-06-01 2015-08-20 이진데이터의 압축 및 압축해제 방법

Country Status (1)

Country Link
KR (1) KR101670606B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112527752A (zh) * 2020-12-08 2021-03-19 北京地平线信息技术有限公司 数据压缩方法、装置、计算机可读存储介质及电子设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140136118A (ko) * 2013-05-20 2014-11-28 김정훈 이진데이터 압축 및 압축해제 장치와 방법
KR101471833B1 (ko) * 2013-06-13 2014-12-11 김정훈 이진 데이터의 압축 및 압축해제 방법과 장치
KR20150009831A (ko) * 2013-07-17 2015-01-27 김정훈 이진 데이터의 압축바코드 생성 및 이진 데이터 복원 방법과 장치

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140136118A (ko) * 2013-05-20 2014-11-28 김정훈 이진데이터 압축 및 압축해제 장치와 방법
KR101471833B1 (ko) * 2013-06-13 2014-12-11 김정훈 이진 데이터의 압축 및 압축해제 방법과 장치
KR20150009831A (ko) * 2013-07-17 2015-01-27 김정훈 이진 데이터의 압축바코드 생성 및 이진 데이터 복원 방법과 장치

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112527752A (zh) * 2020-12-08 2021-03-19 北京地平线信息技术有限公司 数据压缩方法、装置、计算机可读存储介质及电子设备
CN112527752B (zh) * 2020-12-08 2024-04-05 北京地平线信息技术有限公司 数据压缩方法、装置、计算机可读存储介质及电子设备

Similar Documents

Publication Publication Date Title
RU2629455C2 (ru) Способ совместного арифметического и помехоустойчивого кодирования
CN105227962A (zh) 一种基于数据差值的无损信息隐藏方法
CN112866196B (zh) 一种短波数字信号解译还原方法
KR101670606B1 (ko) 이진데이터의 압축 및 압축해제 방법
WO2019237624A1 (zh) 加扰方法、设备及可读存储介质
EP3224957A1 (en) Improved compression and encryption of a file
RU2611022C1 (ru) Способ совместного арифметического и помехоустойчивого кодирования (варианты)
US11888962B2 (en) System and method for transition encoding with flexible word-size
KR100636370B1 (ko) 결정 비트를 이용한 부호화 장치 및 그 방법과 그에 따른복호화 장치 및 그 방법
CN110620635A (zh) 解码方法、设备及可读存储介质
TW202324040A (zh) 減少錯誤傳播的轉態編碼器及轉態編碼方法
KR101648674B1 (ko) 이진데이터 압축 및 압축해제 방법
KR101549740B1 (ko) 이진 데이터의 압축 및 압축해제 방법과 장치
KR101723336B1 (ko) 이진데이터 압축 및 압축 해제 방법
KR101733299B1 (ko) 이진데이터의 실시간 압축 및 압축해제 방법
JPS5818824B2 (ja) フアクシミリシンゴウノ フゴウカホウシキ
KR100997870B1 (ko) 데이터 인코딩 및 디코딩 방법, 데이터 전송 방법, 송신기 및 수신기
JPH10200595A (ja) 可変長符号化データ伝送装置、送信側装置、受信側装置およびその方法
US10505713B2 (en) Compression and/or encryption of a file
RU2595955C1 (ru) Способ совместного сжатия и помехоустойчивого кодирования
KR102361730B1 (ko) 데이터 압축 방법 및 장치
KR20160140285A (ko) 이진데이터의 압축전송 방법
KR101676420B1 (ko) 데이터의 압축 및 복원 방법과 장치
KR20170010970A (ko) 이진데이터의 압축 방법 및 전송방법
CN117856797A (zh) 数据压缩方法及相关装置

Legal Events

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

Payment date: 20191009

Year of fee payment: 4