KR101733299B1 - 이진데이터의 실시간 압축 및 압축해제 방법 - Google Patents

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

Info

Publication number
KR101733299B1
KR101733299B1 KR1020150132729A KR20150132729A KR101733299B1 KR 101733299 B1 KR101733299 B1 KR 101733299B1 KR 1020150132729 A KR1020150132729 A KR 1020150132729A KR 20150132729 A KR20150132729 A KR 20150132729A KR 101733299 B1 KR101733299 B1 KR 101733299B1
Authority
KR
South Korea
Prior art keywords
binary
cluster
bits
divisor
compressed
Prior art date
Application number
KR1020150132729A
Other languages
English (en)
Other versions
KR20170034460A (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 KR1020150132729A priority Critical patent/KR101733299B1/ko
Publication of KR20170034460A publication Critical patent/KR20170034460A/ko
Application granted granted Critical
Publication of KR101733299B1 publication Critical patent/KR101733299B1/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을 뺀 수를 더하여 가상비트수를 각각 구하고, 상기 가상비트수를 상기 제수로 나누어, 몫에 해당하는 비트수를 가진 1 또는 0으로만 이루어지는 압축바이너리 클러스터를 상기 바이너리 클러스터 각각에 대응하는 순서대로 1과 0을 교대로 하여 전송하되, 직전에 위치한 바이너리 클러스터의 가상비트수를 상기 제수로 나눔으로써 얻어지는 나머지를 상기 압축바이너리 클러스터에서 최상위 비트 다음에 이진수로서 위치시켜서 전송하고, 최후에 위치하는 바이너리 클러스터의 경우 가상비트수를 상기 제수로 나눔으로써 얻어지는 나머지를 최종적으로 전송되는 압축바이너리 클러스터 다음에 위치시켜서 전송하는, 이진데이터의 실시간 압축 방법과, 이에 사용되는 이진데이터의 실시간 압축해제 방법에 관한 것이다.
본 발명에 따르면, 실시간으로 압축 및 압축해제를 위한 처리 속도를 향상시킬 수 있고, 압축률이 뛰어나며, 압축 및 압축해제의 결과값에 대한 신뢰성을 높일 수 있고, 이진데이터 전송의 실질적인 트래픽을 획기적으로 절감할 수 있다.

Description

이진데이터의 실시간 압축 및 압축해제 방법{Binary data real time compression and decompression method}
본 발명은 이진데이터의 실시간 압축 및 압축해제 방법에 관한 것으로서, 보다 상세하게는 실시간 압축 및 압축해제의 처리속도와 신뢰성이 뛰어나고, 압축률을 향상시킨 이진데이터의 실시간 압축 및 압축해제 방법에 관한 것이다.
일반적으로, 이진수는 이진법으로 표현되는 수를 말하며, 0과 1로 나타내어지고, 컴퓨터 등에서 사용되는 데이터의 처리 및 표현에 사용된다.
이와 같은 이진수로 이루어진 이진데이터는 그 처리 속도 및 저장 용량 등을 고려하여 압축이 요구되는데, 종래의 이진데이터의 압축 및 압축해제 방법으로는 한국공개특허 제10-1999-022960호의 "이진 코드 압축과 복원방법 및 병렬압축과 복원 프로세서"가 개시된 바 있는데, 이는 이진 코드의 압축 방법으로서, 코드화된 신호 비트 값과 직교 부호화 함수값과의 연속 곱(serial multiplication), 이후 일정 시간 주기 동안의 모든 곱(products)의 합산을 통한 초기 데이터 흐름의 변환을 포함하는 이진 코드 압축 방식에 있어서, 함수의 이산값이 부호화 함수로서 사용되며, 상기 함수는 주파수를 가진 가우시안 펄스 형태인 구분적 연속 함수이며, 부호화 변환로서 Duamel 시퀀스의 계산법이 사용되며, 데이터 입력 흐름과 부호화 함수의 이산값은 상기 시퀀스의 독립변수로 사용된다.
그러나, 이와 같은 이진데이터의 압축 방법은 데이터의 압축 및 압축해제에 대한 처리 과정이 복잡하여 처리 속도 향상에 제한이 따르고, 결과값에 대해서 신뢰성과 실시간 이진데이터의 압축 및 압축해제 효율성을 높이기 어렵다는 문제점을 가지고 있었다.
상기한 바와 같은 종래 기술의 문제점을 해결하기 위하여, 본 발명은 실시간으로 압축 및 압축해제를 위한 처리 속도를 향상시키고, 압축률이 뛰어나며, 압축 및 압축해제의 결과값에 대한 신뢰성을 높이도록 하는데 목적이 있다.
본 발명의 다른 목적들은 이하의 실시례에 대한 설명을 통해 쉽게 이해될 수 있을 것이다.
상기한 바와 같은 목적을 달성하기 위해, 본 발명의 일측면에 따르면, 전송하고자 하는 이진데이터에 대하여, 최상위 비트에서 최하위 비트로 이동하면서, 이진수의 변화가 생기는 지점을 기준으로 분리한 바이너리 클러스터 각각의 비트수에 설정된 제수에서 1을 뺀 수를 더하여 가상비트수를 각각 구하고, 상기 가상비트수를 상기 제수로 나누어, 몫에 해당하는 비트수를 가진 1 또는 0으로만 이루어지는 압축바이너리 클러스터를 상기 바이너리 클러스터 각각에 대응하는 순서대로 1과 0을 교대로 하여 전송하되, 직전에 위치한 바이너리 클러스터의 가상비트수를 상기 제수로 나눔으로써 얻어지는 나머지를 상기 압축바이너리 클러스터에서 최상위 비트 다음에 이진수로서 위치시켜서 전송하고, 최후에 위치하는 바이너리 클러스터의 경우 가상비트수를 상기 제수로 나눔으로써 얻어지는 나머지를 최종적으로 전송되는 압축바이너리 클러스터 다음에 위치시켜서 전송하는, 이진데이터의 실시간 압축 방법이 제공된다.
상기 직전에 위치한 바이너리 클러스터의 가상비트수를 상기 제수로 나눔으로써 얻어지는 나머지가 가변비트일 수 있다.
상기 전송하고자 하는 이진데이터에 대하여, 최상위 비트에서 최하위 비트로 이동하면서 이진수의 변화가 생기는 지점까지 분리하여 얻어지는 바이너리 클러스터의 비트수에 상기 제수에서 1을 뺀 수를 더하여 가상비트수를 구하고, 상기 가상비트수를 상기 제수로 나누어 몫과 나머지를 각각 획득하고, 상기 몫에 해당하는 비트수의 1 또는 0으로만 이루어진 압축바이너리 클러스터를 전송하는 단계; 상기 전송을 마친 압축바이너리 클러스터에 해당하는 바이너리 클러스터를 분리한 이진데이터에 대하여, 최상위 비트에서 최하위 비트로 이동하면서 이진수의 변화가 생기는 지점까지 분리하여 얻어지는 이진수에 해당하는 바이너리 클러스터의 새로운 가상비트수를 상기 제수로 나누어 새로운 몫과 나머지를 각각 획득하고, 상기 새로운 몫에 해당하는 비트수를 가짐과 아울러 직전 단계의 압축바이너리 클러스터와는 상이한 이진수로만 이루어지는 압축바이너리 클러스터를 전송하되, 전송하고자 하는 압축바이너리 클러스터에서 최상위 비트 다음에 직전 단계에서 획득한 나머지를 이진수로서 위치시켜서 전송하는 단계; 및 상기 압축바이너리 클러스터에 직전 단계의 나머지를 이진수로서 위치시켜서 전송하는 단계를 이진데이터에서 전송하지 않은 단일의 이진수나 동일한 이진수로만 이루어지는 최종의 바이너리 클러스터가 남을 때까지 반복해서 수행하고, 상기 최종의 바이너리 클러스터의 가상비트수를 상기 제수로 나누어 마지막 몫과 나머지를 각각 획득하고, 상기 마지막 몫에 해당하는 비트수를 가짐과 아울러 직전 단계의 압축바이너리 클러스터와는 상이한 이진수로만 이루어지는 최종 압축바이너리 클러스터를 전송하되, 상기 최종 압축바이너리 클러스터의 최하위 비트 다음에 마지막 나머지를 이진수로서 위치시켜서 전송하는 단계;를 포함할 수 있다.
상기 압축바이너리 클러스터를 최초로 전송하기 전에, 상기 전송하고자 하는 이진데이터의 최상위 비트에 해당하는 이진수를 식별하기 위한 이진수를 사인 비트로 하여 전송하는 단계를 더 포함할 수 있다.
상기 압축바이너리 클러스터를 최초로 전송하기 전에, 상기 전송하고자 하는 이진데이터의 최상위 비트에 해당하는 이진수를 식별하기 위한 송신부와 수신부간의 상호 프로토콜을 약속하는 단계를 더 포함할 수 있다.
본 발명의 다른 측면에 따르면, 본 발명의 일측면에 따른 이진데이터의 실시간 압축 방법에 의해 전송되는 이진데이터를 압축해제하는 방법으로서, 수신되는 이진데이터에 대하여, 최상위 비트에서 최하위 비트로 이동하면서 이진수의 변화가 생기는 지점까지 분리하여 얻어지는 압축바이너리 클러스터의 비트수를 몫으로 하고, 상기 지점으로부터 후속 1 비트 이후 정해진 비트수에 위치하는 이진수를 나머지로 획득하며, 상기 몫과 상기 제수를 곱한 값에 상기 나머지를 더하여 산출되는 값에 해당하는 가상비트수에 상기 제수에서 1을 뺀 수를 빼서 얻어지는 원본의 비트수를 가진 0 또는 1로만 이루어지는 바이너리 클러스터를 얻는 단계; 상기 압축바이너리 클러스터를 분리한 이진데이터에 대하여, 최상위 비트에서 최하위 비트로 이동하면서 이진수의 변화가 생기는 새로운 지점까지 분리하여 얻어지는 이진수 중에서 상기 나머지에 해당하는 이진수를 제외한 새로운 압축바이너리 클러스터의 비트수를 새로운 몫으로 하고, 상기 새로운 지점으로부터 후속 1 비트 이후 정해진 비트수에 위치하는 이진수를 새로운 나머지로 획득하며, 상기 새로운 몫과 상기 제수를 곱한 값에 상기 새로운 나머지를 더하여 산출되는 값에 해당하는 가상비트수에 상기 제수에서 1을 뺀 수를 빼서 얻어지는 원본의 비트수를 가짐과 아울러 직전 단계에서 얻어진 바이너리 클러스터와는 상이한 이진수로만 이루어지는 새로운 바이너리 클러스터를 획득하는 단계; 및 상기 새로운 바이너리 클러스터를 획득하는 단계를 최하위 비트에 위치하는 최종의 나머지가 후속하는 최종의 압축바이너리 클러스터 직전까지 반복해서 수행하고, 상기 최종의 압축바이너리 클러스터의 비트수를 최종의 몫으로 하고, 상기 최종의 몫과 상기 제수를 곱한 값에 상기 최종의 나머지를 더하여 산출되는 값에 해당하는 가상비트수에 상기 제수에서 1을 뺀 수를 빼서 얻어지는 원본의 비트수를 가짐과 아울러 직전 단계에서 얻어진 바이너리 클러스터와는 상이한 이진수로만 이루어지는 최종의 바이너리 클러스터를 획득하는 단계;를 포함하는, 이진데이터의 실시간 압축해제 방법이 제공된다.
압축 과정에서, 압축 전인 이진데이터의 최상위 비트에 해당하는 이진수를 식별하기 위한 이진수를 사인 비트로 하여 최초의 압축바이너리 클러스터에 부가한 경우, 상기 바이너리 클러스터를 최초로 얻기 전에, 상기 사인 비트를 제거하는 단계를 더 포함할 수 있다.
본 발명에 따른 이진데이터의 실시간 압축 및 압축해제 방법에 의하면, 실시간으로 압축 및 압축해제를 위한 처리 속도를 향상시킬 수 있고, 압축률이 뛰어나며, 압축 및 압축해제의 결과값에 대한 신뢰성을 높일 수 있고, 이진데이터 전송의 실질적인 트래픽을 획기적으로 절감할 수 있다.
도 1은 본 발명의 일 실시례에 따른 이진데이터의 실시간 압축 방법을 도시한 흐름도이다.
도 2는 본 발명에 따른 이진데이터의 실시간 압축 및 압축해제 방법에 사용되는 시스템을 도시한 구성도이다.
도 3 내지 도 6은 본 발명의 일 실시례에 따른 이진데이터의 실시간 압축 방법의 일례를 설명하기 위한 도면이다.
도 7은 본 발명의 일 실시례에 따른 이진데이터의 실시간 압축해제 방법을 도시한 흐름도이다.
도 8 내지 도 12는 본 발명의 일 실시례에 따른 이진데이터의 실시간 압축해제 방법의 일례를 설명하기 위한 도면이다.
도 13은 본 발명의 일 실시례에 따른 이진데이터의 실시간 압축 방법에서 나머지의 위치를 설명하기 위한 도면이다.
본 발명은 다양한 변경을 가할 수 있고, 여러 가지 실시례를 가질 수 있는 바, 특정 실시례들을 도면에 예시하고, 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니고, 본 발명의 기술 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 식으로 이해되어야 하고, 여러 가지 다른 형태로 변형될 수 있으며, 본 발명의 범위가 하기 실시례에 한정되는 것은 아니다.
이하, 첨부된 도면을 참조하여 본 발명에 따른 실시례를 상세히 설명하며, 도면 부호에 관계없이 동일하거나 대응하는 구성요소에 대해서는 동일한 참조 번호를 부여하고, 이에 대해 중복되는 설명을 생략하기로 한다.
도 1은 본 발명의 일 실시례에 따른 이진데이터의 실시간 압축 방법을 도시한 흐름도이다.
도 1을 참조하면, 본 발명의 일 실시례에 따른 이진데이터의 실시간 압축 방법은, 전송하고자 하는 이진데이터에 대하여, 최상위 비트에서 최하위 비트로 이동하면서, 이진수의 변화가 생기는 지점을 기준으로 분리한 바이너리 클러스터 각각의 비트수에 설정된 제수('나눗수'라고도 함)에서 1을 뺀 수를 더하여 가상비트수를 각각 구하는데, 이렇게 하는 이유는, 바이너리 클러스터의 길이가 무엇이든 가상비트수가 항상 제수 이상이 되도록 하여 몫이 1 이상이 되도록 하여야만 압축바이너리 클러스터의 길이가 1 이상이 될 수 있도록 하여, 압축바이너리 클러스터 데이터를 비트값으로 표현할 수 있도록 하기 위함이다. 이와 같은 연산방법 외에도 상기 제수 및 원본 바이너리 클러스터의 길이를 인수로 하여, 압축바이너리 클러스터의 길이가 항상 1 이상이 되도록 하는 연산방법은 본 발명의 균등범위에 속한다.
상기 가상비트수를 상기 제수로 나누어, 몫에 해당하는 비트수를 가진 1 또는 0으로만 이루어지는 압축바이너리 클러스터를 상기 바이너리 클러스터 각각에 대응하는 순서대로 전송하되, 압축바이너리 클러스터 각각은 전송되는 순서를 기준으로 1과 0을 교대로 하여 이루어지도록 하고, 전송되는 압축바이너리 클러스터의 직전에 전송을 마친 압축바이너리 클러스터에 해당하는 바이너리 클러스터의 가상비트수를 상기 제수로 나눔으로써 얻어지는 나머지를 상기 전송되는 압축바이너리 클러스터에서 최상위 비트 다음에 이진수로서 위치시켜서 전송되도록 하고, 최후에 위치하는 바이너리 클러스터의 경우 가상비트수를 상기 제수로 나눔으로써 얻어지는 나머지를 최종적으로 전송되는 압축바이너리 클러스터 다음에 위치시켜서 전송한다.
한편 직전 바이너리 클러스터의 가상비트수를 상기 제수로 나눔으로써 얻어지는 나머지를 반드시 상기 압축바이너리 클러스터의 최상위 비트 다음에 전송하지 않을수도 있는데, 즉 상기 압축바이너리 클러스터의 다음 압축바이너리 클러스터의 차상위 위치 등 상호 프로토콜에 따라 직전 바이너리 클러스터의 나머지를 이후 몇 번째 압축바이너리 클러스터의 최상위 비트에 전송할지는 별도로 정할 수 있다.
상기의 설정된 제수는 예컨대 1을 제외한 숫자로서, 일례로 2일 수 있으며, 이에 반드시 한하는 것은 아니다. 또한 몫과 나머지를 구하기 위한 연산은 십진법을 사용할 수 있으나, 이와 달리 2진법 등을 사용할 수도 있다. 나머지는 이진수로서 압축바이너리 클러스터에 포함되어 전송되므로, 제수의 값에 따라 그 비트수가 정해질 수 있다. 예컨대 제수가 2인 경우에는 나머지는 이진수로서 비트수가 1이므로 1자리를 차지하게 되고, 제수가 3이나 4인 경우 나머지는 이진수로서 그 비트수가 2이므로 2자리를 차지하게 되며, 제수가 5나 6인 경우 나머지는 이진수로 그 비트수가 3이므로 3자리를 차지하게 되는데, 이러한 제수와 나머지의 자리수는 후술하게 될 압축해제 방법에도 공통적으로 적용될 수 있으므로, 압축하여 송신하는 장치와, 수신받아 압축해제하는 장치가 서로 간의 규칙으로서 정해질 수 있다.
상기와 같이 나머지를 고정비트로 구성할 수도 있고, 나머지를 가변비트로 구성할 수도 있다. 즉, 직전에 위치한 바이너리 클러스터의 가상비트수를 제수로 나눔으로써 얻어지는 나머지가 가변비트일 수 있다. 예를 들어, 제수가 2인 경우에는, 나머지는 0 또는 1이므로 1비트를 차지하게 되어 고정비트로 구성되는 것과 동일하나, 예를 들어 제수가 3인 경우에는 나머지는 0,1,2 라는 3가지 값을 가질 수 있는데, 접두사코드(Prefix code)를 생성하는 일례로 허프만 트리방식를 적용하면, “0”, “10”, “11”이라는 가변비트로 나머지를 구성할 수 있다.
도 13을 참조하면, 나머지의 위치는 차 순번 압축바이너리 클러스터내에서의 특정한 위치 다음으로 특정되므로, 그 위치에서, “0”으로 시작하는 경우에는 그 1비트만이 0이라는 나머지로 인식될 수 있고, “1”로 시작하는 경우 1비트를 더 읽어서 “10” 인지 “11”인지에 따라 1 또는 2라는 나머지로 인식될 수 있다. 이러한 가변 비트 형식의 나머지를 구성하기 위한 접두코드 생성방법은 매우 다양하며 이러한 모든 방법이 본 발명에서의 나머지 비트를 구성하는 방법의 균등범위에 속한다.
본 발명의 일 실시례에 따른 이진데이터의 실시간 압축 방법은, 구체적인 단계로서, 전송하고자 하는 이진데이터에 대하여, 최상위 비트에서 최하위 비트로 이동하면서 이진수의 변화가 생기는 지점을 기준으로 분리한 바이너리 클러스터 각각의 비트수에 설정된 제수에서 1을 뺀 수를 더하여 가상비트수를 각각 구하고, 상기 가상비트수를 상기 제수로 나누어 몫과 나머지를 각각 획득하고, 상기 몫에 해당하는 비트수의 1 또는 0으로만 이루어진 압축바이너리 클러스터를 상기 바이너리 클러스터 각각에 대응하는 순서대로 전송하는 단계(S12)와, 상기 전송을 마친 압축바이너리 클러스터에 해당하는 바이너리 클러스터를 분리한 이진데이터에 대하여, 최상위 비트에서 최하위 비트로 이동하면서 이진수의 변화가 생기는 지점을 기준으로 분리한 새로운 바이너리 클러스터의 새로운 가상비트수를 상기 제수로 나누어 새로운 몫과 나머지를 각각 획득하고, 상기 새로운 몫에 해당하는 비트수를 가짐과 아울러 직전에 전송을 마친 압축바이너리 클러스터와는 상이한 이진수로만 이루어지는 새로운 압축바이너리 클러스터를 전송하되, 전송하고자 하는 새로운 압축바이너리 클러스터에서 최상위 비트 다음에는 직전에 전송을 마친 압축바이너리 클러스터에 해당하는 바이너리 클러스터의 가상비트수를 상기 제수로 나누어 획득한 나머지를 이진수로서 위치시켜서 전송하는 단계(S13)와, 상기 전송하고자 하는 새로운 압축바이너리 클러스터에서 최상위 비트 다음에는 직전에 전송을 마친 압축바이너리 클러스터에 해당하는 바이너리 클러스터의 가상비트수를 상기 제수로 나누어 획득한 나머지를 이진수로서 위치시켜서 전송하는 단계(S13)를 이진데이터에서 전송하지 않은 단일의 이진수나 동일한 이진수로만 이루어지는 최종의 바이너리 클러스터가 남을 때까지 반복해서 수행하고(S14), 상기 최종의 바이너리 클러스터의 가상비트수를 상기 제수로 나누어 마지막 몫과 나머지를 각각 획득하고, 상기 마지막 몫에 해당하는 비트수를 가짐과 아울러 직전에 전송을 마친 압축바이너리 클러스터와는 상이한 이진수로만 이루어지는 최종 압축바이너리 클러스터를 전송하되, 상기 최종 압축바이너리 클러스터의 최하위 비트 다음에는 마지막 나머지를 이진수로서 위치시켜서 전송하는 단계(S15)를 포함할 수 있다.
압축바이너리 클러스터, 즉 상기 가상비트수를 상기 제수로 나누어, 몫에 해당하는 비트수를 가진 1 또는 0으로만 이루어지는 압축바이너리 클러스터를 최초로 전송하기(S12) 전에, 상기 전송하고자 하는 이진데이터의 최상위 비트에 해당하는 이진수를 식별하기 위한 이진수를 사인 비트(Sign bit)로 하여 전송하는 단계(S11)가 수행될 수 있다. 여기서 사인 비트는 일례로 전송하고자 하는 이진데이터의 최상위 비트에 해당하는 이진수와 동일한 이진수가 사용될 수 있고, 다른 예로서 전송하고자 하는 이진데이터의 최상위 비트에 해당하는 이진수를 비트반전시킨 이진수가 사용될 수 있다.
상기 사인 비트 전송방식 외에도, 상기 가상비트수를 상기 제수로 나누어, 몫에 해당하는 비트수를 가진 1 또는 0으로만 이루어지는 압축바이너리 클러스터를 최초로 전송하기 전에, 상기 전송하고자 하는 이진데이터의 최상위 비트에 해당하는 이진수를 식별하기 위한 송신부와 수신부간의 상호 프로토콜을 약속하는 단계를 더 포함할 수 있다. 이와 같이 원본 데이터의 최상위 비트에 해당하는 이진수를 식별하기 위하여 압축부와 압축해제부가 상호 약속하기 위한 모든 프로토콜은 본 발명에 속한다 할 것이다.
한편 도 2에서와 같이, 본 발명에 따른 이진데이터의 실시간 압축 방법뿐만 아니라, 후술하게 될 본 발명에 따른 이진데이터의 실시간 압축해제 방법에 사용되는 장치(10)는 예컨대, 데이터의 수신을 위한 수신부(11)와, 수신부(11)에 수신된 데이터, 특히 이진데이터의 실시간 압축 방법이나 압축해제 방법을 수행하는 마이컴(12)과, 마이컴(12)에 의해 압축이나 압축해제된 이진데이터를 송신하는 송신부(13)와, 마이컴(12)에 의해 압축이나 압축해제되거나, 수신부(11)에 의해 수신된 이진데이터, 그리고 연산과정에서 얻어진 값, 예컨대 몫이나 나머지 등을 저장하는 메모리부(14)를 포함할 수 있다. 또한 본 발명에서 실시간 압축 내지 압축해제 하기 위한 전송은 수신부(11)에 의해 다른 장치의 송신부로 전송하는 것뿐만 아니라, 메모리부(14)에 저장하기 위하여 전송하는 것도 포함할 수 있다.
이와 같은 본 발명의 일 실시례에 따른 이진데이터의 실시간 압축 방법을 아래의 이진데이터를 예로 들어 설명하면 다음과 같다. 여기서 제수는 2로 설정하기로 한다.
1111111111111110000000000000011010111011111000
상기 예의 경우, 아래와 같이 이진수의 변화가 생기는 지점을 기준으로 분리함으로써 다수의 바이너리 클러스터로 분리될 수 있다.
111111111111111/00000000000000/11/0/1/0/111/0/11111/000
원본 이진데이터의 최상위 비트가 "1"로 시작하므로, 사인 비트는 일례로 "1"을 가장 먼저 전송하게 된다. 이러한 사인 비트를 전송하는 단계는 생략될 수 있는데, 이 경우, 가장 먼저 분리된 최초의 바이너리 클러스터를 압축한 최초의 압축바이너리 클러스터가 최초의 바이너리 클러스터의 이진수와 동일한 이진수로 전송되었는지, 아니면 비트반전된 이진수로 전송되었는지를 압축해제하는 장치와 규칙으로 정할 수 있다.
그리고, 가장 먼저 분리된 바이너리 클러스터부터 압축하는데, 바이너리 클러스터의 길이, 즉 비트수가 k라면, k에 "제수-1"을 더함으로써 "k+(2-1)"을 가상비트수로서 구하고, 이러한 가상비트수를 제수(N)로 나눈 몫(Q)과 나머지(R)를 이용한다. 상기한 바와 같이, 제수는 2 이외에도 2보다 큰 수가 사용될 수 있으나, 예컨대 2 내지 4일 수 있다.
도 3에서와 같이, 먼저, 제수(N)를 2로 하여 압축을 수행하면, 1차 바이너리 클러스터의 경우 "111111111111111"이고, k=15이므로, 가상비트수는 k+1인 16이고, 이를 제수(N)인 2로 나누면, 몫(Q)은 8이고, 나머지(R)는 0이다.
몫(Q)은 8이므로 압축스트림, 즉 압축바이너리 클러스터는 가장 먼저 "1"로 시작하는 8비트 길이의 이진수 "11111111"을 출력하고, 나머지(R)인 "0"은 R1로서 출력해야 하는데, 바로 출력하지는 않고, R1은 유지하도록 한다.
2차 바이너리 클러스터는 "00000000000000"이고 비트수(k)가 14이고, 가상비트수가 k+1이므로 15이고, 이를 제수(N)인 2로 나누면, 몫(Q)은 7이고, 나머지(R)은 1이다. 직전의 압축바이너리 클러스터가 "1"로만 이루어진 이진수를 출력했으므로, 2차 압축바이너리 클러스터는 "0"으로만 이루어진 7비트의 이진수 "0000000"를 출력하는데, 2비트 이상의 압축바이너리 클러스터의 경우에는 최상위 비트를 먼저 출력하고, 직전 단계의 나머지(R)를 출력한 뒤, 나머지 비트를 출력한다. 즉 7비트의 2차 압축바이너리 클러스터 "0000000"는 첫번째 비트를 출력하고, 이어서 직전 단계에서 유지하고 있던 R1을 출력하고, 나머지 6비트의 두번째 압축 이진수를 출력한다. 그리고 2차 바이너리 클러스터의 나머지(R)인 1을 R2로 유지하도록 한다. 참고로 R2는 3차 압축바이너리 클러스터를 전송할 때 출력하게 된다.
도 4에 도시된 바와 같이, 3차 바이너리 클러스터는 "11"이며, 비트수(k)가 2이고, 가상비트수는 k+1이므로 3이다. 이를 제수(N)인 2로 나누면, 몫(R)은 1이고, 나머지(R)는 1이므로, 3차 압축바이너리 클러스터는 직전 압축바이너리 클러스터가 0으로만 이루어진 이진수를 출력했으므로, 1로 시작하는 몫(R)에 해당하는 1비트의 이진수 1이며, 이를 출력하게 된다. 이때, 직전 단계, 즉 2차 바이너리 클러스터의 압축 과정에서 유지하고 있는 R2를 이어서 전송한다. 그리고 나머지(R) 1은 R3로서 유지한다. 참고로 압축바이너리 클러스터가 2비트 이하인 경우에는, 1비트 전송하고, 직전 나머지(R)를 전송하고, 추가로 여분의 비트를 전송할 것이 존재하지 않게 된다.
도 5에 도시된 바와 같이, 4차 바이너리 클러스터는 "0"이고 비트수(k)는 1이다. 따라서 가상비트수는 k+1인 2가 되며, 이를 제수(N)인 2로 나누면, 몫(Q)이 1이고, 나머지(R)가 0이 된다. 네번째 압축바이너리 클러스터는 직전 압축바이너리 클러스터가 "1"로만 이루어진 이진수를 출력했으므로, "0"으로 시작하는 1비트의 이진수 "0"을 출력하고, 이어서 직전 단계에서 유지하고 있던 R3인 1을 출력하고, 나머지(R) 0은 R4로 유지하도록 한다.
도 6에 도시된 바와 같이, 이와 같은 과정을 전체 압축바이너리 클러스터에 순차적으로 적용하여 압축스트리밍으로서 실시간으로 전송하게 된다. 압축해제 장치의 수신부에서는 별도로 전체 데이터를 모두 읽을 필요없이 순차적으로 몫(Q)과 나머지(R)를 해독하면서, 원본의 바이너리 클러스터를 복구할 수 있게 된다. 다만, 최후의 나머지인 R10의 경우, 별도로 이후의 압축바이너리 클러스터가 존재하지 않으므로, 10차 압축바이너리 클러스터를 코딩할 때 직전 단계의 나머지인 R9을 코딩하고, 10차 압축바이너리 클러스터의 남은 이진수들이 2비트였기 때문에 이를 코딩한 뒤, 이의 최후 비트에 R10에 해당하는 1비트를 붙여서 전송한다.
도 7은 본 발명의 일 실시례에 따른 이진데이터의 실시간 압축해제 방법을 도시한 흐름도이다.
도 7을 참조하면, 본 발명의 일 실시례에 따른 이진데이터의 실시간 압축해제 방법은 상기한 본 발명의 일 실시례에 따른 이진데이터의 실시간 압축 방법에 의해 전송되는 이진데이터를 압축해제하는 방법으로서, 수신되는 이진데이터에 대하여, 최상위 비트에서 최하위 비트로 이동하면서 이진수의 변화가 생기는 지점까지 분리하여 얻어지는 압축바이너리 클러스터의 비트수를 몫으로 하고, 상기 지점으로부터 후속 1 비트 이후 정해진 비트수에 위치하는 이진수를 나머지로 획득하며, 상기 몫과 상기 제수를 곱한 값에 상기 나머지를 더하여 산출되는 값에 해당하는 가상비트수에 상기 제수에서 1을 뺀 수를 빼서 얻어지는 원본의 비트수를 가진 0 또는 1로만 이루어지는 바이너리 클러스터를 얻는 단계(S22)와, 상기 압축바이너리 클러스터를 분리한 수신된 이진데이터에 대하여, 최상위 비트에서 최하위 비트로 이동하면서 이진수의 변화가 생기는 새로운 지점까지 분리하여 얻어지는 이진수 중에서 상기 나머지에 해당하는 이진수를 제외한 새로운 압축바이너리 클러스터의 비트수를 새로운 몫으로 하고, 상기 새로운 지점으로부터 후속 1 비트 이후 정해진 비트수에 위치하는 이진수를 새로운 나머지로 획득하며, 상기 새로운 몫과 상기 제수를 곱한 값에 상기 새로운 나머지를 더하여 산출되는 값에 해당하는 가상비트수에 상기 제수에서 1을 뺀 수를 빼서 얻어지는 원본의 비트수를 가짐과 아울러 직전 단계에서 얻어진 바이너리 클러스터와는 상이한 이진수로만 이루어지는 새로운 바이너리 클러스터를 획득하는 단계(S23)와, 상기 새로운 바이너리 클러스터를 획득하는 단계(S23)를 최하위 비트에 위치하는 최종의 나머지 바로 앞에 위치하는 최종의 압축바이너리 클러스터 직전까지 반복해서 수행하고(S24), 상기 최종의 압축바이너리 클러스터의 비트수를 최종의 몫으로 하고, 상기 최종의 몫과 상기 제수를 곱한 값에 상기 최종의 나머지를 더하여 산출되는 값에 해당하는 가상비트수에 상기 제수에서 1을 뺀 수를 빼서 얻어지는 원본의 비트수를 가짐과 아울러 직전 단계에서 얻어진 바이너리 클러스터와는 상이한 이진수로만 이루어지는 최종의 바이너리 클러스터를 획득하는 단계(S25)를 포함한다.
또한 압축 과정에서, 압축 전인 이진데이터의 최상위 비트에 해당하는 이진수를 식별하기 위한 이진수를 사인 비트로 하여 최초의 압축바이너리 클러스터에 부가한 경우, 상기 바이너리 클러스터를 최초로 얻기(S22) 전에, 상기 사인 비트를 제거하는 단계(S21)가 수행될 수 있다. 이러한 사인 비트를 통해서 압축해제 장치에서는 최초의 압축바이너리 클러스터의 이진수가 무엇인지 압축 장치와 정할 필요가 없게 된다.
이와 같은 본 발명의 일 실시례에 따른 이진데이터의 압축해제 방법을 예를 들어 구체적으로 설명하기로 한다.
예컨대 다른 장치의 송신부를 통해서 압축된 이진데이터를 실시간으로 수신부(11)를 통해 수신받으면, 마이컴(12)은 상기한 단계(S21~S25)에 의해 압축해제 과정을 수행하게 되는데, 수신된 이진데이터의 최상위 비트에 사인 비트를 포함하여 최종 스트리밍이 순차적으로 전송될 때, 각 압축바이너리 클러스터들로부터 원본의 바이너리 클러스터를 별도의 사전 절차없이 압축해제하게 된다.
먼저, 도 8에 도시된 바와 같이, 최종적으로 압축된 이진데이터에서, 최상위 1비트가 사인 비트에 해당된다. 따라서, 원본의 이진데이터는 1로 시작했음을 알 수 있다. 이러한 사인 비트는 제거되는데, 이 단계는 생략될 수 있음을 앞서 설명한 바와 같다.
사인 비트 이후, 이진수를 계속 리딩하면서, 이진수의 변화가 있는 지점을 알 수 있고, 그때까지의 이진수의 길이가 바로 첫번째 몫에 해당하는 Q1을 나타낸다. 그리고 이진수 변화 지점으로부터 1비트 이후의 값이 R1이다. 이진수 변화 지점의 후속 이진수는 두번째 몫인 Q2의 첫번째 비트를 의미하게 된다. 실시간 압축해제의 경우에는, Qn +1의 첫번째 비트 이후의 1비트(제수에 의해 정해짐)까지만 읽어도, Qn 및 Rn 값을 구할 수 있게 된다. 따라서 순차적으로 실시간으로 압축전송도 가능하고 압축해제도 가능하다.
도 9를 참조하여, 다음 단계를 이어서 설명하면, R1을 나타내는 비트 이후부터 계속 읽어들이면서, 다음 이진수 변화 지점은 0과 1의 경계선이 될 것이며, Q2 가 구해진다. 그리고 이진수 변화 지점으로부터 1비트 이후의 값이 R2이다. 이때 이진수 변화 지점의 기준은 나머지(R) 값을 제외한 이진수들의 변화여부가 해당된다. 이는 다음 단계에서 상세히 설명하기로 한다.
이때 Q2는 직전 이진수 변화 지점부터 현재 이진수 변화 지점 사이의 거리에서 첫번째 나머지 R1에 해당하는 1비트 길이를 빼서 구해진다. 즉 직전 이진수 변화 지점부터 현재 이진수 변화 지점까지는 8비트이나, 첫번째 나머지 R1에 해당하는 1비트를 제거하여 7비트가 되고, 이것이 두번째 몫인 Q2를 의미한다. 이제 Q2*N+R2-1에 따라 2차 바이너리 클러스터는 14비트 길이의 이진수이며, 직전 1차 바이너리 클러스터가 "1"로만 이루어진 이진수로 구성되었으므로, 2차 바이너리 클러스터는 "0"으로만 이루어진 14비트의 이진수로 압축해제된다.
도 10에 도시된 바와 같이, 그런 다음, R2을 나타내는 이진수 이후부터 계속 읽어들이면서, 다음 이진수 변화 지점은 1과 0의 경계선이 될 것이며, 세번째 몫인 Q3 및 세번째 나머지인 R3가 이어서 구해진다. 이때 이진수 변화 지점의 기준은 R2값을 제외한 이진수들의 변화 여부가 된다. 즉 R2 값의 상위 직전 이진수인 1과 이진수 변화 지점의 0에서 갈라지는 것이지, R2 값 1과 이진수 변화지점 0으로 인해 갈라지는 것이 아니다. 도 10에서 이진수 변화 지점의 근거는 적색의 박스로 표기된 이진수들에 있어서 이진수 변화가 기준이다. 두 적색의 박스 사이에 녹색으로 표시된 R2가 기준이 되지 않는다.
이때 Q3는 직전 이진수 변화 지점부터 현재 이진수 변화 지점 사이의 거리에서 R2에 해당하는 1비트 길이를 빼서 구해진다. 즉 직전 이진수 변화 지점부터 현재 이진수 변화 지점까지는 2비트이나, R2에 해당하는 1비트를 제거하여 1비트가 되고, 이것이 Q3를 의미한다. 이를 Q3*N+R3-1에 따라 3차 바이너리 클러스터는 1비트 길이의 이진수이며, 직전 2차 바이너리 클러스터가 0으로만 이루어진 이진수로 구성되었으므로, 3차 바이너리 클러스터는 1로만 이루어진 1비트의 이진수로 압축해제된다.
도 11에 도시된 바와 같이, 그런 다음, R3을 나타내는 비트 이후부터 계속 읽어들이면서, 다음 이진수 변화 지점은 1과 0의 경계선이 될 것이며, 네번째 몫인 Q4 및 네번째 나머지인 R4가 이어서 구해진다. 이때 이진수 변화 지점의 기준은 R3 값을 제외한 이진수의 변화 여부이다. 즉 R3 값의 상위 직전 이진수인 0과 이진수 변화지점의 1에서 갈라지는 것이다. 따라서, 도 11에서와 같이, 이진수 변화 지점의 근거는 적색 박스로 표기된 이진수들의 변화가 기준이다. 적색 박스 사이에 녹색으로 표시된 R3가 기준이 되는 것이 아니다.
이때 Q4는 직전 이진수 변화 지점부터 현재 이진수 변화 지점 사이의 거리에서 R3에 해당하는 1비트 길이를 빼서 구해진다. 즉 직전 이진수 변화 지점부터 현재 이진수 변화 지점까지는 2비트이나, R3에 해당하는 1비트를 제거하여 1비트가 되고 이것이 Q4를 의미한다. 그리고 Q4*N+R4-1에 따라 두번째 바이너리 클러스터는 1비트 길이의 이진수이며, 직전 3차 바이너리 클러스터가 1로만 이루어진 이진수로 구성되었으므로, 4차 바이너리 클러스터는 0으로만 이루어진 1비트의 이진수로 복원된다.
도 12에서와 같이, 상기와 같은 과정을 반복하면서, 9번째 몫인 Q9까지 구하게 되고, 최하위 비트값은 최후의 압축바이너리 클러스터의 10차 나머지인 R10을 해독하는데 쓰이므로, 최하위 비트값(R10=0)은 별도로 분리해 두고, 나머지 이진수에 대해서 직전 이진수 변화 지점에서부터, 최하위 비트를 제외한 위치까지의 길이에서 R9에 해당하는 1비트를 제외한 2비트값이 10번?? 몫인 Q10을 의미하고, 2*Q10+R10-1에 따라 3이므로, 10차 바이너리 클러스터는 길이가 3비트인 이진수임을 알 수 있고, 직전 9차 바이너리 클러스터의 이진수와는 상이한 3비트의 이진수를 만들어 복원하면 최종 데이터가 압축해제 완료된다.
이와 같은 본 발명에 따른 이진데이터의 실시간 압축 및 압축해제 방법에 따르면, 실시간으로 압축 및 압축해제를 위한 처리 속도를 향상시킬 수 있고, 압축률이 뛰어나며, 압축 및 압축해제의 결과값에 대한 신뢰성을 높일 수 있고, 이진데이터 전송의 실질적인 트래픽을 획기적으로 절감할 수 있다.
이와 같이 본 발명에 대해서 첨부된 도면을 참조하여 설명하였으나, 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 다양한 수정 및 변형이 이루어질 수 있음은 물론이다. 그러므로, 본 발명의 범위는 설명된 실시례에 한정되어서는 아니되며, 후술하는 특허청구범위뿐만 아니라 이러한 특허청구범위와 균등한 것들에 의해 정해져야 한다.
11 : 수신부 12 : 마이컴
13 : 송신부 14 : 메모리부

Claims (7)

  1. 전송하고자 하는 이진데이터에 대하여, 최상위 비트에서 최하위 비트로 이동하면서, 이진수의 변화가 생기는 지점을 기준으로 분리한 바이너리 클러스터 각각의 비트수에 설정된 제수에서 1을 뺀 수를 더하여 가상비트수를 각각 구하고, 상기 가상비트수를 상기 제수로 나누어, 몫에 해당하는 비트수를 가진 1 또는 0으로만 이루어지는 압축바이너리 클러스터를 상기 바이너리 클러스터 각각에 대응하는 순서대로 전송하되, 압축바이너리 클러스터 각각은 전송되는 순서를 기준으로 1과 0을 교대로 하여 이루어지도록 하고, 전송되는 압축바이너리 클러스터의 직전에 전송을 마친 압축바이너리 클러스터에 해당하는 바이너리 클러스터의 가상비트수를 상기 제수로 나눔으로써 얻어지는 나머지를 상기 전송되는 압축바이너리 클러스터에서 최상위 비트 다음에 이진수로서 위치시켜서 전송되도록 하고, 최후에 위치하는 바이너리 클러스터의 경우 가상비트수를 상기 제수로 나눔으로써 얻어지는 나머지를 최종적으로 전송되는 압축바이너리 클러스터 다음에 위치시켜서 전송하는, 이진데이터의 실시간 압축 방법.
  2. 청구항 1에 있어서,
    상기 전송되는 압축바이너리 클러스터의 직전에 전송을 마친 압축바이너리 클러스터에 해당하는 바이너리 클러스터의 가상비트수를 상기 제수로 나눔으로써 얻어지는 나머지가 가변비트인, 이진데이터의 실시간 압축 방법.
  3. 전송하고자 하는 이진데이터에 대하여, 최상위 비트에서 최하위 비트로 이동하면서 이진수의 변화가 생기는 지점을 기준으로 분리한 바이너리 클러스터 각각의 비트수에 설정된 제수에서 1을 뺀 수를 더하여 가상비트수를 각각 구하고, 상기 가상비트수를 상기 제수로 나누어 몫과 나머지를 각각 획득하고, 상기 몫에 해당하는 비트수의 1 또는 0으로만 이루어진 압축바이너리 클러스터를 상기 바이너리 클러스터 각각에 대응하는 순서대로 전송하는 단계;
    상기 전송을 마친 압축바이너리 클러스터에 해당하는 바이너리 클러스터를 분리한 이진데이터에 대하여, 최상위 비트에서 최하위 비트로 이동하면서 이진수의 변화가 생기는 지점을 기준으로 분리한 새로운 바이너리 클러스터의 새로운 가상비트수를 상기 제수로 나누어 새로운 몫과 나머지를 각각 획득하고, 상기 새로운 몫에 해당하는 비트수를 가짐과 아울러 직전에 전송을 마친 압축바이너리 클러스터와는 상이한 이진수로만 이루어지는 새로운 압축바이너리 클러스터를 전송하되, 전송하고자 하는 새로운 압축바이너리 클러스터에서 최상위 비트 다음에는 직전에 전송을 마친 압축바이너리 클러스터에 해당하는 바이너리 클러스터의 가상비트수를 상기 제수로 나누어 획득한 나머지를 이진수로서 위치시켜서 전송하는 단계; 및
    상기 전송하고자 하는 새로운 압축바이너리 클러스터에서 최상위 비트 다음에는 직전에 전송을 마친 압축바이너리 클러스터에 해당하는 바이너리 클러스터의 가상비트수를 상기 제수로 나누어 획득한 나머지를 이진수로서 위치시켜서 전송하는 단계를 이진데이터에서 전송하지 않은 단일의 이진수나 동일한 이진수로만 이루어지는 최종의 바이너리 클러스터가 남을 때까지 반복해서 수행하고, 상기 최종의 바이너리 클러스터의 가상비트수를 상기 제수로 나누어 마지막 몫과 나머지를 각각 획득하고, 상기 마지막 몫에 해당하는 비트수를 가짐과 아울러 직전에 전송을 마친 압축바이너리 클러스터와는 상이한 이진수로만 이루어지는 최종 압축바이너리 클러스터를 전송하되, 상기 최종 압축바이너리 클러스터의 최하위 비트 다음에는 마지막 나머지를 이진수로서 위치시켜서 전송하는 단계;
    를 포함하는, 이진데이터의 실시간 압축 방법.
  4. 청구항 3에 있어서,
    상기 가상비트수를 상기 제수로 나누어, 몫에 해당하는 비트수를 가진 1 또는 0으로만 이루어지는 압축바이너리 클러스터를 최초로 전송하기 전에, 상기 전송하고자 하는 이진데이터의 최상위 비트에 해당하는 이진수를 식별하기 위한 이진수를 사인 비트로 하여 전송하는 단계를 더 포함하는, 이진데이터의 실시간 압축 방법.
  5. 청구항 3에 있어서,
    상기 가상비트수를 상기 제수로 나누어, 몫에 해당하는 비트수를 가진 1 또는 0으로만 이루어지는 압축바이너리 클러스터를 최초로 전송하기 전에, 상기 전송하고자 하는 이진데이터의 최상위 비트에 해당하는 이진수를 식별하기 위한 송신부와 수신부간의 상호 프로토콜을 약속하는 단계를 더 포함하는, 이진데이터의 실시간 압축 방법.
  6. 청구항 1 내지 청구항 5 중 어느 한 항에 기재된 이진데이터의 실시간 압축 방법에 의해 전송되는 이진데이터를 압축해제하는 방법으로서,
    수신되는 이진데이터에 대하여, 최상위 비트에서 최하위 비트로 이동하면서 이진수의 변화가 생기는 지점까지 분리하여 얻어지는 압축바이너리 클러스터의 비트수를 몫으로 하고, 상기 지점으로부터 후속 1 비트 이후 정해진 비트수에 위치하는 이진수를 나머지로 획득하며, 상기 몫과 상기 제수를 곱한 값에 상기 나머지를 더하여 산출되는 값에 해당하는 가상비트수에 상기 제수에서 1을 뺀 수를 빼서 얻어지는 원본의 비트수를 가진 0 또는 1로만 이루어지는 바이너리 클러스터를 얻는 단계;
    상기 압축바이너리 클러스터를 분리한 수신된 이진데이터에 대하여, 최상위 비트에서 최하위 비트로 이동하면서 이진수의 변화가 생기는 새로운 지점까지 분리하여 얻어지는 이진수 중에서 상기 나머지에 해당하는 이진수를 제외한 새로운 압축바이너리 클러스터의 비트수를 새로운 몫으로 하고, 상기 새로운 지점으로부터 후속 1 비트 이후 정해진 비트수에 위치하는 이진수를 새로운 나머지로 획득하며, 상기 새로운 몫과 상기 제수를 곱한 값에 상기 새로운 나머지를 더하여 산출되는 값에 해당하는 가상비트수에 상기 제수에서 1을 뺀 수를 빼서 얻어지는 원본의 비트수를 가짐과 아울러 직전에 얻어진 바이너리 클러스터와는 상이한 이진수로만 이루어지는 새로운 바이너리 클러스터를 획득하는 단계; 및
    상기 새로운 바이너리 클러스터를 획득하는 단계를 최하위 비트에 위치하는 최종의 나머지 바로 앞에 위치하는 최종의 압축바이너리 클러스터 직전까지 반복해서 수행하고, 상기 최종의 압축바이너리 클러스터의 비트수를 최종의 몫으로 하고, 상기 최종의 몫과 상기 제수를 곱한 값에 상기 최종의 나머지를 더하여 산출되는 값에 해당하는 가상비트수에 상기 제수에서 1을 뺀 수를 빼서 얻어지는 원본의 비트수를 가짐과 아울러 직전에 얻어진 바이너리 클러스터와는 상이한 이진수로만 이루어지는 최종의 바이너리 클러스터를 획득하는 단계;
    를 포함하는, 이진데이터의 실시간 압축해제 방법.
  7. 청구항 4에 기재된 이진데이터의 실시간 압축 방법에 의해 전송되는 이진데이터를 압축해제하는 방법으로서,
    수신되는 이진데이터에 대하여, 최상위 비트에서 최하위 비트로 이동하면서 이진수의 변화가 생기는 지점까지 분리하여 얻어지는 압축바이너리 클러스터의 비트수를 몫으로 하고, 상기 지점으로부터 후속 1 비트 이후 정해진 비트수에 위치하는 이진수를 나머지로 획득하며, 상기 몫과 상기 제수를 곱한 값에 상기 나머지를 더하여 산출되는 값에 해당하는 가상비트수에 상기 제수에서 1을 뺀 수를 빼서 얻어지는 원본의 비트수를 가진 0 또는 1로만 이루어지는 바이너리 클러스터를 얻는 단계;
    상기 압축바이너리 클러스터를 분리한 수신된 이진데이터에 대하여, 최상위 비트에서 최하위 비트로 이동하면서 이진수의 변화가 생기는 새로운 지점까지 분리하여 얻어지는 이진수 중에서 상기 나머지에 해당하는 이진수를 제외한 새로운 압축바이너리 클러스터의 비트수를 새로운 몫으로 하고, 상기 새로운 지점으로부터 후속 1 비트 이후 정해진 비트수에 위치하는 이진수를 새로운 나머지로 획득하며, 상기 새로운 몫과 상기 제수를 곱한 값에 상기 새로운 나머지를 더하여 산출되는 값에 해당하는 가상비트수에 상기 제수에서 1을 뺀 수를 빼서 얻어지는 원본의 비트수를 가짐과 아울러 직전에 얻어진 바이너리 클러스터와는 상이한 이진수로만 이루어지는 새로운 바이너리 클러스터를 획득하는 단계; 및
    상기 새로운 바이너리 클러스터를 획득하는 단계를 최하위 비트에 위치하는 최종의 나머지 바로 앞에 위치하는 최종의 압축바이너리 클러스터 직전까지 반복해서 수행하고, 상기 최종의 압축바이너리 클러스터의 비트수를 최종의 몫으로 하고, 상기 최종의 몫과 상기 제수를 곱한 값에 상기 최종의 나머지를 더하여 산출되는 값에 해당하는 가상비트수에 상기 제수에서 1을 뺀 수를 빼서 얻어지는 원본의 비트수를 가짐과 아울러 직전에 얻어진 바이너리 클러스터와는 상이한 이진수로만 이루어지는 최종의 바이너리 클러스터를 획득하는 단계;를 포함하고,
    압축 과정에서, 압축 전인 이진데이터의 최상위 비트에 해당하는 이진수를 식별하기 위한 이진수를 사인 비트로 하여 최초의 압축바이너리 클러스터에 부가한 경우, 상기 바이너리 클러스터를 최초로 얻기 전에, 상기 사인 비트를 제거하는 단계를 더 포함하는, 이진데이터의 실시간 압축해제 방법.
KR1020150132729A 2015-09-19 2015-09-19 이진데이터의 실시간 압축 및 압축해제 방법 KR101733299B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020150132729A KR101733299B1 (ko) 2015-09-19 2015-09-19 이진데이터의 실시간 압축 및 압축해제 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150132729A KR101733299B1 (ko) 2015-09-19 2015-09-19 이진데이터의 실시간 압축 및 압축해제 방법

Publications (2)

Publication Number Publication Date
KR20170034460A KR20170034460A (ko) 2017-03-29
KR101733299B1 true KR101733299B1 (ko) 2017-05-08

Family

ID=58497966

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150132729A KR101733299B1 (ko) 2015-09-19 2015-09-19 이진데이터의 실시간 압축 및 압축해제 방법

Country Status (1)

Country Link
KR (1) KR101733299B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102361730B1 (ko) * 2020-06-15 2022-02-11 김정훈 데이터 압축 방법 및 장치

Also Published As

Publication number Publication date
KR20170034460A (ko) 2017-03-29

Similar Documents

Publication Publication Date Title
RU2007141934A (ru) Адаптивная группировка параметров для улучшенной эффективности кодирования
WO2018103452A1 (zh) 信息位图的编码、解码方法、装置及存储介质
MX2021010964A (es) Metodo de codificacion de datos tridimensionales, metodo de decodificacion de datos tridimensionales, dispositivo codificador de datos tridimensionales y dispositivo decodificador de datos tridimensionales.
CN101945286B (zh) 压缩编码方法、解码解压方法、装置和通信系统
CN105409129B (zh) 编码器设备、解码器设备和方法
KR101733299B1 (ko) 이진데이터의 실시간 압축 및 압축해제 방법
EP3224957A1 (en) Improved compression and encryption of a file
US11888962B2 (en) System and method for transition encoding with flexible word-size
CN110620635A (zh) 解码方法、设备及可读存储介质
KR101549740B1 (ko) 이진 데이터의 압축 및 압축해제 방법과 장치
KR20150093060A (ko) 이진 데이터의 압축 및 복원 방법과 장치
KR101670606B1 (ko) 이진데이터의 압축 및 압축해제 방법
JPS5818824B2 (ja) フアクシミリシンゴウノ フゴウカホウシキ
US10742783B2 (en) Data transmitting apparatus, data receiving apparatus and method thereof having encoding or decoding functionalities
KR101723336B1 (ko) 이진데이터 압축 및 압축 해제 방법
KR101468307B1 (ko) 이진데이터 압축 및 압축해제 장치와 방법
CN112262578A (zh) 点云属性编码方法和装置以及点云属性解码方法和装置
TW201342813A (zh) 資料編碼及解碼方法與裝置
WO2016167719A1 (en) Improved compression and/or encryption of a file
JP6509916B2 (ja) 連結されたrom−ramテーブルに基づいて算術コーディングを遂行する方法及び装置
JP3084187B2 (ja) 2値画像符号化装置及び2値画像復号化装置
KR20160063581A (ko) 이진데이터 압축 및 압축해제 장치와 방법
CN117201797A (zh) 遥感影像数据的处理方法、装置、设备与存储介质
KR20170055627A (ko) 중첩적 에러에 강한 유니버설 코드의 연산을 이용한 생성 및 복호화방법 및 그 장치
KR20170114645A (ko) 이진데이터의 압축전송방법

Legal Events

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