KR101468307B1 - Binary data compression and decompression apparatus and method - Google Patents

Binary data compression and decompression apparatus and method Download PDF

Info

Publication number
KR101468307B1
KR101468307B1 KR1020130059739A KR20130059739A KR101468307B1 KR 101468307 B1 KR101468307 B1 KR 101468307B1 KR 1020130059739 A KR1020130059739 A KR 1020130059739A KR 20130059739 A KR20130059739 A KR 20130059739A KR 101468307 B1 KR101468307 B1 KR 101468307B1
Authority
KR
South Korea
Prior art keywords
carry
binary
compression
point
unit
Prior art date
Application number
KR1020130059739A
Other languages
Korean (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 KR1020130059739A priority Critical patent/KR101468307B1/en
Application granted granted Critical
Publication of KR101468307B1 publication Critical patent/KR101468307B1/en

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/60General implementation details not specific to a particular type of compression
    • H03M7/6017Methods or arrangements to increase the throughput
    • 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/60General implementation details not specific to a particular type of compression
    • H03M7/6011Encoder aspects
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/04Protocols for data compression, e.g. ROHC

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

The present invention provides an apparatus for compressing binary data, an apparatus for decompressing the binary data and a method for compressing and decompressing the binary data, in which the apparatus for compressing binary data includes: a compression calculating unit and a transmitting unit. The compression calculating unit repeats a basic compression process of: extracting a binary cluster including a binary number between a 10 positioned at an upper bit than a carry point and the carry point, based on the carry point, which is a start bit for generating a carry down event that borrows a number from an upper digit, for a subtraction from a lower digit of the binary number of binary data; extracting a carry key corresponding to the binary number having a minimum size among binary numbers including only 1 for generating the carry down event with respect to the binary cluster; subtracting the carry key from the binary number of the binary data a predetermined number of times. Also, the compression calculating unit repetitively performs the basic compression process a predetermined number of times, based on a new carry point set by moving the carry point to a preceding digit, with respect to the binary number obtained by repetitively performing the basic compression process the predetermined number of times and performs the process of moving the carry point to the preceding digit until the carry down event is generated for the first time to repetitively perform the basic compression process based on each carry point. The transmitting unit transmits the data with respect to the binary number, to which the compression is completed by the compression calculation unit, to a target device.

Description

이진데이터 압축 및 압축해제 장치와 방법{Binary data compression and decompression apparatus and method}[0001] Binary data compression and decompression apparatus and method [0002]

본 발명은 이진데이터 압축 및 압축해제 장치와 방법에 관한 것으로서, 보다 상세하게는 이진수로 이루어진 데이터의 압축 및 압축해제 효율이 우수한 이진데이터 압축 및 압축해제 장치와 방법에 관한 것이다.The present invention relates to a binary data compression and decompression apparatus and method, and more particularly, to a binary data compression and decompression apparatus and method having excellent compression and decompression efficiency of binary data.

일반적으로, 이진수는 이진법으로 표현되는 수를 말하며, 0과 1로 나타내어지고, 컴퓨터 등에서 사용되는 데이터의 처리 및 표현에 사용된다.Generally, a binary number refers to a binary number expressed by 0 and 1, and is used for processing and representation of data used in a computer or the like.

이와 같은 이진수로 이루어진 이진데이터는 그 처리 속도 및 저장 용량 등을 고려하여 압축이 요구되는데, 종래의 이진데이터의 압축 및 압축해제 방법으로는 한국공개특허 제10-1999-022960호의 "이진 코드 압축과 복원방법 및 병렬압축과 복원 프로세서"가 개시된 바 있는데, 이는 이진 코드의 압축 방법으로서, 코드화된 신호 비트 값과 직교 부호화 함수 값과의 연속 곱(serial multiplication), 이후 일정 시간 주기 동안의 모든 곱(products)의 합산을 통한 초기 데이터 흐름의 변환을 포함하는 이진 코드 압축 방식에 있어서, 함수의 이산값이 부호화 함수로서 사용되며, 상기 함수는 주파수를 가진 가우시안 펄스 형태인 구분적 연속 함수이며, 부호화 변환로서 Duamel 시퀀스의 계산법이 사용되며, 데이터 입력 흐름과 부호화 함수의 이산값은 상기 시퀀스의 독립변수로 사용된다.Binary data consisting of such binary numbers are required to be compressed in consideration of their processing speed and storage capacity. Conventional methods of compressing and decompressing binary data are disclosed in Korean Patent Publication No. 10-1999-022960 entitled " And a parallel compression and restoration processor, which is a method of compressing a binary code, comprising serial multiplication of a coded signal bit value and an orthogonal coding function value, products, the discrete value of the function is used as an encoding function, the function is a piecewise continuous function which is in the form of a Gaussian pulse with a frequency, and the encoding transformation And the discrete values of the data input flow and the encoding function are used as independent variables of the above sequence It is used as a waterway.

그러나, 이와 같은 이진데이터의 압축 방법은 데이터의 압축 및 압축해제에 대한 처리 과정이 복잡하여 처리 속도 향상에 제한이 따르고, 결과값에 대해서 신뢰성을 높이기가 어렵다는 문제점을 가지고 있었다.However, such a method of compressing binary data has a problem in that it is difficult to improve the processing speed and the reliability of the resultant value because of a complicated process for compressing and decompressing the data.

상기한 바와 같은 종래 기술의 문제점을 해결하기 위하여, 본 발명은 압축 및 압축해제를 위한 처리 속도를 향상시킬 수 있고, 압축율이 뛰어나며, 압축 및 압축해제의 결과값에 대한 신뢰성을 높이도록 하는데 목적이 있다.In order to solve the problems of the prior art as described above, it is an object of the present invention to improve the processing speed for compression and decompression, to provide an excellent compression ratio, and to improve the reliability of the result of compression and decompression have.

본 발명의 다른 목적들은 이하의 실시예에 대한 설명을 통해 쉽게 이해될 수 있을 것이다.Other objects of the present invention will become readily apparent from the following description of the embodiments.

상기한 바와 같은 목적을 달성하기 위해, 본 발명의 일측면에 따르면, 이진데이터의 이진수에서 뒷자리로부터 뺄셈을 위하여 윗자리에서 숫자를 빌려오는 캐리 다운 이벤트(carry down event)가 발생할 수 있는 시작 비트인 캐리포인트(carry point)를 기준으로, 그 보다 상위비트에 위치하게 되는 10 및 캐리포인트 사이의 이진수로 이루어지는 바이너리 클러스터를 추출하고, 상기 바이너리 클러스터에 대해서 캐리 다운 이벤트를 일으키는 1로만 이루어지는 이진수 중에서, 최소 크기를 가진 이진수에 해당하는 캐리키를 추출하며, 상기 이진데이터의 이진수로부터 상기 캐리키를 빼고, 상기 바이너리 클러스터의 추출, 상기 캐리키의 추출 및 상기 캐리키를 빼는 과정으로 이루어진 기본 압축 과정을 정해진 횟수만큼 반복적으로 수행하며, 상기 기본 압축 과정을 정해진 횟수만큼 반복적으로 수행하여 획득한 이진수에 대해서, 상기 캐리포인트를 앞자리로 이동함으로써 설정된 새로운 캐리포인트를 기준으로 상기 기본 압축 과정을 정해진 횟수만큼 반복적으로 수행하고, 상기 캐리포인트를 앞자리로 이동하는 과정을 상기 캐리 다운 이벤트가 처음으로 발생하지 않을 때까지 수행함으로써, 상기 캐리포인트 각각을 기준으로 상기 기본 압축 과정을 반복적으로 수행하는 압축연산부; 및 상기 압축연산부에 의해 압축을 마친 이진수에 대한 데이터를 목적 장치로 송신하는 송신부를 포함하는 이진데이터 압축 장치가 제공된다.According to an aspect of the present invention, there is provided a method for decoding a binary number of binary data, the method comprising: Extracts binary clusters consisting of binary numbers between 10 and carry points located at higher order bits based on a carry point and extracts a binary cluster consisting of only one binary number that causes a carry down event for the binary cluster, Extracting the carry key from the binary number of the binary data, extracting the binary cluster, extracting the carry key, and subtracting the carry key from the binary number of the binary data, , And the basic compression process For a binary number obtained by repeatedly performing a predetermined number of times, the basic compression process is repeatedly performed a predetermined number of times based on a new carry point set by moving the carry point to the previous position, and the carry point is moved to the previous position A compression operation unit that repeatedly performs the basic compression process based on each of the carry points by performing the process until the carry-down event does not occur for the first time; And a transmitter for transmitting data on the binary number that has been compressed by the compression calculation unit to the destination apparatus.

상기 압축연산부는 상기 이진데이터로부터 상기 바이너리 클러스터를 추출하는 제 1 클러스터추출부; 상기 제 1 클러스터추출부에 의해 추출된 바이너리 클러스터에 대해서 상기 캐리 다운 이벤트를 일으키는 상기 캐리키를 추출하는 제 1 캐리키추출부; 상기 제 1 캐리키추출부로부터 추출된 캐리키를 이진수로부터 빼는 연산을 수행하는 캐리다운연산부; 상기 제 1 클러스터추출부에 의한 바이너리 클러스터의 추출, 상기 제 1 캐리키추출부에 의한 캐리키의 추출 및 상기 캐리다운연산부에 의한 연산으로 이루어진 기본 압축 과정의 횟수를 카운트하는 제 1 횟수카운터; 상기 캐리포인트의 추출 및 이동을 연산하는 제 1 캐리포인트인식부; 상기 캐리포인트의 이동 주기를 카운트하는 제 1 주기카운터; 및 상기 캐리다운연산부에 의한 캐리 다운 이벤트의 연산 결과외의 변화가 없는 비트들을 그대로 붙이는 비캐리다운연산병합부를 포함할 수 있다.Wherein the compression operation unit comprises: a first cluster extracting unit for extracting the binary cluster from the binary data; A first carry key extracting unit for extracting the carry key causing the carry down event for the binary cluster extracted by the first cluster extracting unit; A carry-down operation unit for performing an operation of subtracting the carry key extracted from the first carry key extracting unit from a binary number; A first number counter for counting the number of basic compression processes including extraction of a binary cluster by the first cluster extraction unit, extraction of a carry key by the first carry key extraction unit, and calculation by the carry down calculation unit; A first carry point recognizing unit for calculating extraction and movement of the carry point; A first period counter for counting a moving period of the carry point; And a carry carry-down operation merge unit for attaching bits without any change other than the carry-down event operation result by the carry-down operation unit.

상기 압축연산부는 상기 송신부에 의해 압축종료 직전의 캐리포인트 위치 데이터를 전달하기 위하여, 최종적으로 압축된 이진 데이터에서 압축종료 직전의 캐리포인트 보다 상위비트의 “1”을 모두 “0”으로 바꾸어 전달할 수 있다.In order to transfer the carry point position data immediately before the end of compression by the transmission unit, the compression calculation unit can transfer all the "1" s of the upper bits of the finally compressed data from the carry point immediately before completion of compression to "0" have.

상기 송신부는 상기 압축연산부에 의해 최종적으로 압축된 이진수와 함께, 주기내 반복 횟수와 최종 주기내의 압축종료 직전의 반복 횟수에 대한 데이터들을 상기 목적 장치로 전달할 수 있다.The transmitter may transmit data on the number of repetitions within the cycle and the number of repetitions immediately before the end of compression in the final period to the destination apparatus together with the binary number finally compressed by the compression calculation unit.

본 발명의 다른 측면에 따르면, 상기한 이진데이터 압축 장치로부터 압축된 이진수의 데이터를 수신받아, 상기 압축된 이진수에서 뒷자리로부터 덧셈을 위하여 윗자리로 숫자를 올리는 캐리 업 이벤트(carry up event)가 발생할 수 있는 시작 비트인 캐리포인트(carry point)를 기준으로, 그 보다 상위비트에 위치하게 되는 10 및 캐리포인트 사이의 이진수로 이루어지는 바이너리 클러스터를 추출하고, 상기 바이너리 클러스터에 대해서 상기 캐리 업 이벤트를 일으키는 1로만 이루어지는 이진수 중에서, 최소 크기를 가진 이진수에 해당하는 캐리키를 추출하며, 상기 압축된 이진수에 상기 캐리키를 더하고, 상기 바이너리 클러스터의 추출, 상기 캐리키의 추출 및 상기 캐리키를 더하는 과정으로 이루어진 기본 압축해제 과정을 정해진 횟수만큼 반복적으로 수행하며, 상기 기본 압축해제 과정을 정해진 횟수만큼 반복적으로 수행하여 획득한 이진수에 대해서, 상기 캐리포인트를 앞자리로 이동함으로써 설정된 새로운 캐리포인트를 기준으로 상기 기본 압축해제 과정을 정해진 횟수만큼 반복적으로 수행하고, 상기 캐리포인트를 앞자리로 이동하는 과정을 정해진 주기만큼 수행함으로써 상기 캐리포인트 각각을 기준으로, 상기 기본 압축해제 과정을 정해진 횟수만큼 반복적으로 수행하는 압축해제연산부; 및 상기 압축해제연산부에 의해 압축이 해제된 이진수의 데이터를 출력하는 출력부를 포함하는 이진데이터 압축해제 장치가 제공된다.According to another aspect of the present invention, a carry-up event may be generated in which the compressed binary data is received from the binary data compression device and the number is incremented from the back position to the top position in the compressed binary number Extracts binary clusters consisting of binary numbers between 10 and carry points located at higher order bits based on a carry point which is a start bit of the binary cluster, Extracting a carry key corresponding to a binary number having a minimum size from the binary numbers, adding the carry key to the compressed binary number, extracting the binary cluster, extracting the carry key, and adding the carry key. The decompression process can be repeated a predetermined number of times. Performing the basic decompression process repeatedly a predetermined number of times based on a new carry point set by moving the carry point to a previous position for a binary number obtained by repeatedly performing the basic decompression process a predetermined number of times, A decompression operation unit for repeatedly performing the basic decompression process by a predetermined number of times based on each of the carry points by performing the process of moving the carry point to a previous position by a predetermined period; And an output unit for outputting data of a binary number decompressed by the decompression calculation unit.

상기 압축된 이진수와 함께, 주기내 미리 정하여진 일정한 반복 횟수와 최종 주기내의 압축종료 직전의 반복 횟수에 대한 데이터들을 상기 압축해제연산부에 전달하는 수신부를 더 포함할 수 있다.And a receiver for transmitting the compressed binary number together with the predetermined number of repetitions within the period and the number of repetitions immediately before the end of compression in the final period to the decompression calculation unit.

상기 압축해제연산부는 상기 압축된 이진수로부터 상기 바이너리 클러스터를 추출하는 제 2 클러스터추출부; 상기 제 2 클러스터추출부에 의해 추출된 바이너리 클러스터에 대해서 상기 캐리 업 이벤트를 일으키는 상기 캐리키를 추출하는 제 2 캐리키추출부; 상기 제 2 캐리키추출부로부터 추출된 캐리키를 이진수에 더하는 연산을 수행하는 캐리업연산부; 상기 제 2 클러스터추출부에 의한 바이너리 클러스터의 추출, 상기 제 2 캐리키추출부에 의한 캐리키의 추출 및 상기 캐리업연산부에 의한 연산으로 이루어진 기본 압축해제 과정의 횟수를 카운트하는 제 2 횟수카운터; 상기 캐리포인트의 추출 및 이동을 연산하는 제 2 캐리포인트인식부; 상기 캐리포인트의 이동 주기를 카운트하는 제 2 주기카운터; 및 상기 캐리업연산부에 의한 캐리 업 이벤트의 연산 결과외의 변화가 없는 비트들을 그대로 붙이는 비캐리업연산병합부를 포함할 수 있다.Wherein the decompression calculation unit comprises: a second cluster extraction unit for extracting the binary cluster from the compressed binary number; A second carry key extracting unit for extracting the carry key causing the carry-up event for the binary cluster extracted by the second cluster extracting unit; A carry-up operation unit for performing an operation of adding a carry key extracted from the second carry key extracting unit to a binary number; A second number counter for counting the number of basic decompression processes, which include extraction of a binary cluster by the second cluster extraction unit, extraction of a carry key by the second carry key extraction unit, and calculation by the carry-up operation unit; A second carry point recognizing unit for calculating extraction and movement of the carry point; A second period counter for counting a moving period of the carry point; And a non-carry-up operation merging unit for directly attaching bits having no change other than the calculation result of the carry-up event by the carry-up operation unit.

상기 압축해제연산부는 압축종료 직전의 캐리포인트 위치를 획득하기 위하여, 상기 압축된 이진수에서 최상위비트로부터 최하위비트로 이동하는 과정에서 최초로 만나는 “1”의 위치를 압축종료 직전의 캐리포인트 위치로 하고, 상기 “1”의 위치보다 상위비트의 “0”을 “1”로 바꿀 수 있다.Wherein the decompression arithmetic unit sets the position of the first encountered "1" in the process of shifting from the most significant bit to the least significant bit in the compressed binary number as the carry point position immediately before the end of compression so as to obtain the carry point position immediately before the end of compression, It is possible to change the upper bit "0" to "1" rather than the position of "1".

본 발명의 또 다른 측면에 따르면, 이진데이터의 이진수에서 뒷자리로부터 뺄셈을 위하여 윗자리에서 숫자를 빌려오는 캐리 다운 이벤트(carry down event)가 발생할 수 있는 시작 비트인 캐리포인트(carry point)를 기준으로, 그 보다 상위비트에 위치하게 되는 10 및 캐리포인트 사이의 이진수로 이루어지는 바이너리 클러스터를 압축연산부에 의해 추출하는 단계; 상기 바이너리 클러스터에 대해서 상기 캐리 다운 이벤트를 일으키는 1로만 이루어지는 이진수 중에서, 최소 크기를 가진 이진수에 해당하는 캐리키를 상기 압축연산부에 의해 추출하는 단계; 상기 압축연산부에 의해 상기 이진데이터의 이진수로부터 상기 캐리키를 빼는 단계; 상기 압축연산부에 의해 상기 바이너리 클러스터의 추출 단계, 상기 캐리키의 추출 단계 및 상기 캐리키를 빼는 단계로 이루어진 기본 압축 단계를 정해진 횟수만큼 반복적으로 수행하는 단계; 상기 압축연산부에 의해 상기 기본 압축 단계를 정해진 횟수만큼 반복적으로 수행하여 획득한 이진수에 대해서, 상기 캐리포인트를 앞자리로 이동함으로써 설정된 새로운 캐리포인트를 기준으로 상기 기본 압축 단계를 정해진 횟수만큼 반복적으로 수행하는 단계; 및 상기 압축연산부에 의해 상기 캐리포인트를 앞자리로 이동하는 과정을 상기 캐리 다운 이벤트가 처음으로 발생하지 않을 때까지 수행함으로써, 상기 캐리포인트 각각을 기준으로 상기 기본 압축 단계를 반복적으로 수행하는 단계를 포함하는 이진데이터 압축 방법이 제공된다.According to another aspect of the present invention, there is provided a method for decoding a binary number of a binary data, the method comprising: a first step of performing a carry-down event on the basis of a carry- Extracting binary clusters composed of binary numbers between 10 and carry points positioned at higher order bits by a compression operation unit; Extracting, by the compression operation unit, a carry key corresponding to a binary number having a minimum size out of binary numbers consisting of only 1 that causes the carry-down event for the binary cluster; Subtracting the carry key from the binary number of the binary data by the compression operation unit; Performing a basic compression step including a step of extracting the binary cluster, a step of extracting the carry key, and a step of subtracting the carry key by the compression operation unit by a predetermined number of times; The basic compression step is repeatedly performed by a predetermined number of times based on a new carry point set by shifting the carry point to a previous position for a binary number obtained by repeating the basic compression step by a predetermined number of times by the compression operation unit step; And performing the basic compression step repeatedly on the basis of each carry point by performing the process of moving the carry point to the previous position by the compression operation unit until the carry down event does not occur for the first time A binary data compression method is provided.

상기 송신부에 의해 압축종료 직전의 캐리포인트 위치 데이터를 전달하기 위하여, 상기 압축연산부에 의하여 최종적으로 압축된 이진 데이터에서 압축종료 직전의 캐리포인트 보다 상위비트의 “1”을 모두 “0”으로 바꾸어 전달하는 단계를 더 포함할 수 있다.In order to transfer the carry point position data immediately before the end of compression by the transmission unit, all of "1" of higher bits than the carry point immediately before completion of compression in the binary data finally compressed by the compression operation unit is changed to "0" The method comprising the steps of:

상기 단계를 모두 마침으로써 획득되는 압축된 이진수와 함께, 주기내 미리 정하여진 일정한 반복 횟수와 최종 주기내의 압축 종료 직전의 반복 횟수에 대한 데이터들을 송신부에 의해 목적 장치로 전달하는 단계를 더 포함할 수 있다.The method may further include transmitting data to the destination apparatus by the transmitter in the form of a predetermined number of repetitions within a period and a repetition number immediately before the end of compression in the final period together with the compressed binary number obtained by completing all of the steps have.

본 발명의 또 다른 측면에 따르면, 상기한 이진데이터 압축 방법에 의해 압축된 이진수의 데이터를 수신받아, 상기 압축된 이진수에서 뒷자리로부터 덧셈을 위하여 윗자리로 숫자를 올리는 캐리 업 이벤트(carry up event)가 발생할 수 있는 시작 비트인 캐리포인트(carry point)를 기준으로, 그 보다 상위비트에 위치하게 되는 10 및 캐리포인트 사이의 이진수로 이루어지는 바이너리 클러스터를 압축해제연산부에 의해 추출하는 단계; 상기 바이너리 클러스터에 대해서 상기 캐리 업 이벤트를 일으키는 1로만 이루어지는 이진수 중에서, 최소 크기를 가진 이진수에 해당하는 캐리키를 상기 압축해제연산부에 의해 추출하는 단계; 상기 압축해제연산부에 의해 상기 압축된 이진수에 상기 캐리키를 더하는 단계; 상기 압축해제연산부에 의해 상기 바이너리 클러스터의 추출 단계, 상기 캐리키의 추출 단계 및 상기 캐리키를 더하는 단계로 이루어진 기본 압축해제 단계를 정해진 횟수만큼 반복적으로 수행하는 단계; 상기 압축해제연산부에 의해 상기 기본 압축해제 단계를 정해진 횟수만큼 반복적으로 수행하여 획득한 이진수에 대해서, 상기 캐리포인트를 앞자리로 이동함으로써 설정된 새로운 캐리포인트를 기준으로 상기 기본 압축해제 단계를 정해진 횟수만큼 반복적으로 수행하는 단계; 및 상기 압축해제연산부에 의해 상기 캐리포인트를 앞자리로 이동하는 과정을 정해진 주기만큼 수행함으로써 상기 캐리포인트 각각을 기준으로, 상기 기본 압축해제 단계를 정해진 횟수만큼 반복적으로 수행하는 단계를 포함하는 이진데이터 압축해제 방법이 제공된다.According to another aspect of the present invention, there is provided a carry-up event in which binary data compressed by the binary data compression method is received and a number is incremented from the back position to the top position in the compressed binary number Extracting, by a decompression arithmetic unit, a binary cluster consisting of a binary number between 10 and a carry point located at a higher order bit based on a carry point which is a start bit that can be generated; Extracting, by the decompression computation unit, a carry key corresponding to a binary number having a minimum size out of binary numbers consisting of only 1 that causes the carry-up event for the binary cluster; Adding the carry key to the compressed binary number by the decompression operation unit; Performing a basic decompression step including a step of extracting the binary cluster, a step of extracting the carry key, and a step of adding the carry key by the decompression operation unit by a predetermined number of times; The basic decompression step is repeatedly performed for a predetermined number of times by the decompression operation unit, and the basic decompression step is repeatedly performed a predetermined number of times based on the new carry point set by moving the carry point to the previous position ; And performing the basic decompression step repeatedly a predetermined number of times based on each of the carry points by performing the process of moving the carry point to the previous position by the decompression operation unit by a predetermined period, A release method is provided.

압축종료 직전의 캐리포인트 위치를 획득하기 위하여, 상기 압축해제연산부에 의해, 상기 압축된 이진수에서 최상위비트로부터 최하위비트로 이동하는 과정에서 최초로 만나는 “1”의 위치를 압축종료 직전의 캐리포인트 위치로 하고, 상기 “1”의 위치보다 상위비트의 “0”을 “1”로 바꾸는 단계를 더 포함할 수 있다.In order to obtain the carry point position immediately before the end of compression, the position of "1" which is first encountered in the process of shifting from the most significant bit to the least significant bit in the compressed binary number is set as the carry point position immediately before the end of compression , And changing the " 0 " of higher order bits to the position of " 1 "

상기 압축된 이진수와 함께, 주기내 미리 정하여진 일정한 반복 횟수와 최종 주기내의 압축종료 직전의 반복 횟수에 대한 데이터들을 수신부가 상기 압축해제연산부에 전달하는 단계를 더 포함할 수 있다.The receiving unit may transmit the compressed binary number together with the predetermined number of repetition times within the period and the number of repetition times immediately before the end of the compression in the final period to the decompression calculation unit.

본 발명에 따른 이진데이터 압축 및 압축해제 장치와 방법에 의하면, 압축 및 압축해제를 위한 처리 속도를 향상시킬 수 있고, 압축율이 뛰어나며, 압축 및 압축해제의 결과값에 대한 신뢰성을 높일 수 있고, 이진데이터 전송의 실질적인 트래픽을 획기적으로 절감할 수 있다.According to the binary data compression and decompression apparatus and method according to the present invention, the processing speed for compression and decompression can be improved, the compression rate can be improved, the reliability of the result of compression and decompression can be increased, The substantial traffic of the data transmission can be remarkably reduced.

도 1은 본 발명에 따른 이진데이터 압축 장치와 이진데이터 압축해제 장치를 도시한 구성도이고,
도 2는 본 발명에 따른 이진데이터 압축 방법을 도시한 흐름도이고,
도 3은 본 발명에 따른 이진데이터 압축해제 방법을 도시한 흐름도이다.
BRIEF DESCRIPTION OF THE DRAWINGS FIG. 1 is a block diagram showing a binary data compression apparatus and a binary data decompression apparatus according to the present invention,
2 is a flowchart illustrating a binary data compression method according to the present invention,
3 is a flow chart illustrating a method for decompressing binary data according to the present invention.

본 발명은 다양한 변경을 가할 수 있고, 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고, 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니고, 본 발명의 기술 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 식으로 이해되어야 하고, 여러 가지 다른 형태로 변형될 수 있으며, 본 발명의 범위가 하기 실시예에 한정되는 것은 아니다. While the invention is susceptible to various modifications and alternative forms, specific embodiments thereof are shown by way of example in the drawings and will herein be described in detail. It is to be understood, however, that the invention is not to be limited to the specific embodiments, but is to be understood to cover all modifications, equivalents, and alternatives falling within the spirit and scope of the invention, And the scope of the present invention is not limited to the following examples.

이하, 첨부된 도면을 참조하여 본 발명에 따른 실시예를 상세히 설명하며, 도면 부호에 관계없이 동일하거나 대응하는 구성요소에 대해서는 동일한 참조 번호를 부여하고, 이에 대해 중복되는 설명을 생략하기로 한다.Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings, wherein like or corresponding elements are denoted by the same reference numerals, and redundant explanations thereof will be omitted.

도 1은 본 발명에 따른 이진데이터 압축 장치와 이진데이터 압축해제 장치를 도시한 구성도이다.1 is a block diagram showing a binary data compression apparatus and a binary data decompression apparatus according to the present invention.

도 1에 도시된 바와 같이, 본 발명에 따른 이진데이터 압축 장치(100)는 압축연산부(120)와 송신부(130)를 포함할 수 있다.As shown in FIG. 1, the binary data compression apparatus 100 according to the present invention may include a compression calculation unit 120 and a transmission unit 130.

압축연산부(120)는 이진데이터의 이진수에서 뒷자리로부터 뺄셈을 위하여 윗자리에서 숫자를 빌려오는 캐리 다운 이벤트(carry down event)가 발생하는 시작 비트인 캐리포인트(carry point)를 기준으로, 그 보다 상위비트에 위치하게 되는 10 및 캐리포인트 사이의 이진수로 이루어지는 바이너리 클러스터를 추출하고, 바이너리 클러스터에 대해서 캐리 다운 이벤트를 일으키는 1로만 이루어지는 이진수 중에서, 최소 크기를 가진 이진수에 해당하는 캐리키를 추출하며, 이진데이터의 이진수로부터 캐리키를 빼고, 바이너리 클러스터의 추출, 캐리키의 추출 및 캐리키를 빼는 과정으로 이루어진 기본 압축 과정을 정해진 횟수만큼 반복적으로 수행하며, 기본 압축 과정을 정해진 횟수만큼 반복적으로 수행하여 획득한 이진수에 대해서, 캐리포인트를 앞자리로 이동함으로써 설정된 새로운 캐리포인트를 기준으로 기본 압축 과정을 정해진 횟수만큼 반복적으로 수행하고, 캐리포인트를 앞자리로 이동하는 과정을 캐리 다운 이벤트가 처음으로 발생하지 않을 때까지 수행함으로써, 캐리포인트 각각을 기준으로 기본 압축 과정을 반복적으로 수행한다. The compression operation unit 120 performs a compression operation based on a carry point which is a start bit for generating a carry down event in which a digit is borrowed from a leading digit for subtraction from a binary digit in binary data, And a carry key corresponding to a binary number having a minimum size among the binary numbers consisting of only 1 that causes a carry down event for the binary cluster, The basic compression process including extracting the binary cluster, extracting the carry key, and subtracting the carry key from the binary number of the binary clusters is repeatedly performed a predetermined number of times, and the basic compression process is repeatedly performed a predetermined number of times For binary numbers, move the carry point forward The basic compression process is repeatedly performed a predetermined number of times based on the new carry point set and the process of moving the carry point to the previous position is performed until the carry-down event does not occur for the first time, The compression process is repeatedly performed.

압축연산부(120)는 정해진 횟수를 1주기로 하여 정해진 주기 동안 상기한 바와 같은 이진데이터에 대한 압축 과정을 수행할 수 있으며, 나아가서, 이러한 압축 과정이 캐리 다운 이벤트가 처음으로 발생할 수 없는 상태를 만났을 때 종료하도록 설정될 수 있다. The compression operation unit 120 may perform the compression process on the binary data as described above for a predetermined period with a fixed number of times as one cycle. Further, when the compression process reaches a state in which the carry-down event can not be generated for the first time Lt; / RTI >

압축연산부(120)는 일례로 이진데이터로부터 바이너리 클러스터를 추출하는 제 1 클러스터추출부(121)와, 제 1 클러스터추출부(121)에 의해 추출된 바이너리 클러스터에 대해서 캐리 다운 이벤트를 일으키는 캐리키를 추출하는 제 1 캐리키추출부(122)와, 제 1 캐리키추출부(122)로부터 추출된 캐리키를 이진수로부터 빼는 연산을 수행하는 캐리다운연산부(123)와, 제 1 클러스터추출부(121)에 의한 바이너리 클러스터의 추출, 제 1 캐리키추출부(122)에 의한 캐리키의 추출 및 캐리다운연산부(123)에 의한 연산으로 이루어진 기본 압축 과정의 횟수를 카운트하는 제 1 횟수카운터(124)와, 캐리포인트의 추출 및 이동을 연산하는 제 1 캐리포인트인식부(125)와, 캐리포인트의 이동 주기를 카운트하는 제 1 주기카운터(126)와, 캐리다운연산부(123)에 의한 캐리 다운 이벤트의 연산 결과외의 변화가 없는 비트들을 그대로 붙이는 비캐리다운연산병합부(128)를 포함할 수 있다. 여기서 제 1 캐리키추출부(122)는 캐리 다운 이벤트의 가능여부를 판단할 수 있다. 또한 캐리포인트의 이동 주기는 캐리포인트를 이동시키는 횟수를 의미할 수 있다. The compression computation unit 120 includes a first cluster extraction unit 121 for extracting binary clusters from binary data, a carry key generating a carry down event for the binary cluster extracted by the first cluster extraction unit 121, A carry-down operation unit 123 for performing an operation of subtracting the carry key extracted from the first carry key extracting unit 122 from a binary number, a first carry extracting unit 122 A first number counter 124 for counting the number of basic compression processes, which is the extraction of binary clusters by the first carry key extractor 122, the extraction of the carry key by the first carry key extractor 122, and the calculation by the carry down operator 123, A first cycle counter 126 for counting a carry period of a carry point, a carry period determiner 126 for calculating a carry down event by the carry down operation unit 123, Of And a non-carry-down operation merging unit 128 for directly attaching bits having no change other than the operation result. Here, the first carry key extracting unit 122 may determine whether or not a carry down event is possible. Also, the movement period of the carry point may mean the number of times to move the carry point.

또한 압축연산부(120)는 송신부(130)에 의해 압축종료 직전의 캐리포인트 위치 데이터를 전달하기 위하여, 최종적으로 압축된 이진 데이터에서 압축종료 직전의 캐리포인트 보다 상위비트의 “1”을 모두 “0”으로 바꾸어 전달할 수 있다.Also, in order to transmit the carry point position data immediately before the end of compression by the transmission unit 130, the compression calculation unit 120 extracts all "1" s of higher order bits from the finally compressed data from the carry point just before completion of compression, &Quot;

압축연산부(120)는 압축에 따른 제어를 위하여 제어부(미도시)를 더 포함할 수 있고, 나아가서 구동에 필요한 프로그램이나 데이터의 저장을 위하여 제 1 메모리부(127)를 더 포함할 수 있다. The compression operation unit 120 may further include a control unit (not shown) for control according to compression, and may further include a first memory unit 127 for storing programs and data necessary for driving.

송신부(130)는 압축연산부(120)에 의해 압축을 마친 이진수에 대한 데이터를 목적 장치, 예컨대 이진데이터 압축해제 장치(200)이거나, 그 밖에 압축된 이진데이터를 필요로 하는 프로세스 장치나 메모리 장치 등으로 송신한다. 여기서, 송신부(130)는 목적 장치의 통신 방법에 따라, 와이어나 케이블 등으로 이루어져서 유선으로 신호를 송신하거나, 블루투스, 와이파이, 3G, LTE 등의 통신모듈로 이루어져서 무선으로 신호를 송신할 수도 있다.The transmission unit 130 transmits the binary-number data compressed by the compression calculation unit 120 to a destination device, for example, the binary data decompression device 200, or a process device or a memory device requiring other compressed binary data . Here, the transmitting unit 130 may be formed of a wire or cable according to a communication method of a destination apparatus, and may transmit signals by wire, or may be formed of communication modules such as Bluetooth, Wi-Fi, 3G, LTE, and the like and wirelessly transmit signals.

송신부(130)는 압축연산부(120)에 의해 최종적으로 압축된 이진수와 함께, 주기내 반복 횟수, 즉 캐리 포인트 각각에서의 주어진 뺄셈횟수, 최종 주기를 제외한 주기내의 반복 횟수, 최종 주기내의 압축종료 직전의 반복 횟수, 원본 이진데이터의 비트수나 바이트수, 압축종료 직전의 캐리포인트 위치 등에 대한 데이터들을 목적 장치로 전달할 수 있다.The transmission unit 130 receives the number of repetitions in the cycle, i.e., the number of subtractions in each of the carry points, the number of repetitions in the period excluding the final period, The number of bits of the original binary data or the number of bytes, the carry point position immediately before the end of compression, and the like to the destination apparatus.

한편, 본 발명에 따른 이진데이터 압축 장치(100)는 외부 장치(1), 예컨대 별도의 프로세스 장치나 메모리 장치로부터 이진데이터를 수신받기 위하여, 유선 또는 무선 통신을 위한 와이어, 케이블 또는 통신모듈 등으로 이루어지는 수신부(110)를 더 포함할 수 있다. 여기서, 외부 장치(1)는 이진데이터 압축 장치(100)와 구별되는 장치를 의미하는 것으로서, 이진데이터 압축 장치(100)와 함께 단일의 장치로 이루어지거나, 이진데이터 압축 장치(100)와 별개로 이루어질 수 있다.Meanwhile, the binary data compression apparatus 100 according to the present invention may be a wire, a cable, or a communication module for wired or wireless communication in order to receive binary data from an external device 1, for example, a separate process apparatus or a memory device. The receiving unit 110 may further include a receiving unit 110. Here, the external device 1 refers to an apparatus that is distinguished from the binary data compression apparatus 100. The external apparatus 1 may be composed of a single apparatus together with the binary data compression apparatus 100, or may be separate from the binary data compression apparatus 100 Lt; / RTI >

도 1에 도시된 바와 같이, 본 발명에 따른 이진데이터 압축해제 장치(200)는 상기한 본 발명에 따른 이진데이터 압축 장치(100)에 의해 송신되는 압축된 이진수의 데이터로부터 압축을 해제하여 원본의 이진데이터를 추출하는 장치로서, 압축해제연산부(220)와 출력부(230)를 포함할 수 있다.As shown in FIG. 1, the binary data decompression apparatus 200 according to the present invention decompresses compressed binary data transmitted by the binary data compression apparatus 100 according to the present invention, The apparatus for extracting binary data may include a decompression calculation unit 220 and an output unit 230.

압축해제연산부(220)는 이진데이터 압축 장치(100)로부터 압축된 이진수의 데이터를 수신받아, 압축된 이진수에서 뒷자리로부터 덧셈을 위하여 윗자리로 숫자를 올리는 캐리 업 이벤트(carry up event)가 발생할 수 있는 시작 비트인 캐리포인트(carry point)를 기준으로, 그 보다 상위비트에 위치하게 되는 10 및 캐리포인트 사이의 이진수로 이루어지는 바이너리 클러스터를 추출하고, 바이너리 클러스터에 대해서 캐리 업 이벤트를 일으키는 1로만 이루어지는 이진수 중에서, 최소 크기를 가진 이진수에 해당하는 캐리키를 추출하며, 압축된 이진수에 캐리키를 더하고, 바이너리 클러스터의 추출, 캐리키의 추출 및 캐리키를 더하는 과정으로 이루어진 기본 압축해제 과정을 정해진 횟수만큼 반복적으로 수행하며, 기본 압축해제 과정을 정해진 횟수만큼 반복적으로 수행하여 획득한 이진수에 대해서, 캐리포인트를 앞자리로 이동함으로써 설정된 새로운 캐리포인트를 기준으로 기본 압축해제 과정을 정해진 횟수만큼 반복적으로 수행하고, 캐리포인트를 앞자리로 이동하는 과정을 정해진 주기만큼 수행함으로써, 예컨대 압축이 종료될 당시의 최종적 캐리포인트 위치까지, 캐리포인트 각각을 기준으로, 기본 압축해제 과정을 정해진 횟수만큼 반복적으로 수행한다. 여기서, 정해진 횟수는 최초 주기부터 최종 주기 직전의 주기에서 1주기를 이루는 횟수일 수 있고, 최종 주기에서는 상기한 압축 과정의 최종 주기에서 캐리 다운 이벤트가 최초로 발생되지 않은 상태까지의 횟수일 수 있다.The decompression operation unit 220 may receive a compressed binary data from the binary data compression apparatus 100 and may carry out a carry up event in which the binary number is incremented from the back position to the top position for addition A binary cluster consisting of binary numbers between 10 and carry points located at higher order bits on the basis of a carry point which is a start bit is extracted and a binary cluster consisting of only 1 which causes a carry- , Extracts a carry key corresponding to a binary number having a minimum size, adds a carry key to the compressed binary number, and extracts a binary cluster, extracts a carry key, and adds a carry key to a predetermined number of iterations , And the basic decompression process is repeated a predetermined number of times The basic decompression process is repeatedly performed a predetermined number of times based on the new carry point set by moving the carry point to the previous position, and the process of moving the carry point to the previous position is performed for a predetermined period , For example, up to a final carry point position at the time of termination of compression, on the basis of each carry point, by a predetermined number of times. Here, the predetermined number of times may be the number of times that one period is made in the cycle immediately before the last cycle from the initial cycle, and may be the number of times until the carry down event is not generated first in the final cycle of the compression process in the final cycle.

압축해제연산부(220)는 일례로, 상기한 바에 의해 압축된 이진수로부터 바이너리 클러스터를 추출하는 제 2 클러스터추출부(221)와, 제 2 클러스터추출부(221)에 의해 추출된 바이너리 클러스터에 대해서 캐리 업 이벤트를 일으키는 캐리키를 추출하는 제 2 캐리키추출부(222)와, 제 2 캐리키추출부(222)로부터 추출된 캐리키를 이진수에 더하는 연산을 수행하는 캐리업연산부(223)와, 제 2 클러스터추출부(221)에 의한 바이너리 클러스터의 추출, 제 2 캐리키추출부(222)에 의한 캐리키의 추출 및 캐리업연산부(223)에 의한 연산으로 이루어진 기본 압축해제 과정의 횟수를 카운트하는 제 2 횟수카운터(224)와, 캐리포인트의 추출 및 이동을 연산하는 제 2 캐리포인트인식부(225)와, 캐리포인트의 이동 주기를 카운트하는 제 2 주기카운터(226)와, 캐리업연산부(223)에 의한 캐리 업 이벤트의 연산 결과외의 변화가 없는 비트들을 그대로 붙이는 비캐리업연산병합부(228)를 포함할 수 있다. 또한 압축해제연산부(220)는 압축해제에 따른 제어를 위하여 제어부(미도시)를 더 포함할 수 있고, 나아가서 구동에 필요한 프로그램이나 데이터의 저장을 위하여 제 2 메모리부(227)를 더 포함할 수 있다.The decompression computing unit 220 includes, for example, a second cluster extracting unit 221 for extracting a binary cluster from the binary number compressed by the above-mentioned method, and a second cluster extracting unit 221 for extracting a binary cluster extracted by the second cluster extracting unit 221, A carry-up operation unit 223 for performing an operation of adding a carry key extracted from the second carry-key extracting unit 222 to a binary number, a second carry-key extracting unit 222 for extracting a carry- The number of times of the basic decompression process including the extraction of the binary cluster by the second cluster extracting unit 221, the extraction of the carry key by the second carry key extracting unit 222 and the calculation by the carry-up operation unit 223 are counted A second count counter 224 for counting the carry period of the carry point, a second carry counter 224 for counting the carry period of the carry point, (223) Attaching the operation result with no other change bit as the ratio of the re-up event may include a carry-up operation merging unit 228. The Further, the decompression arithmetic operation unit 220 may further include a control unit (not shown) for controlling the decompression, and may further include a second memory unit 227 for storing programs and data necessary for driving have.

또한 압축해제연산부(220)는 압축종료 직전의 캐리포인트 위치를 획득하기 위하여, 압축된 이진수에서 최상위비트로부터 최하위비트로 이동하는 과정에서 최초로 만나는 “1”의 위치를 압축종료 직전의 캐리포인트 위치로 하고, 상기 “1”의 위치보다 상위비트의 “0”을 “1”로 바꿀 수 있다.Also, in order to acquire the carry point position immediately before the end of compression, the decompression arithmetic operation unit 220 sets the position of the first encountering "1" in the process of moving from the most significant bit to the least significant bit in the compressed binary number as the carry point position immediately before the end of compression , It is possible to change the upper bit "0" to "1" above the position of "1".

출력부(230)는 압축해제연산부(220)에 의해 압축이 해제된 이진수의 데이터를 제 2 메모리부(227)나 별도의 메모리 장치 또는 프로세스 장치 등으로 출력한다. 여기서 출력부(230)는 데이터를 출력하기 위하여, 와이어나 케이블 또는 무선통신모듈 등으로 이루어질 수 있다. The output unit 230 outputs the binary number data decompressed by the decompression calculation unit 220 to the second memory unit 227, a separate memory device, a process device, or the like. Here, the output unit 230 may be a wire, a cable, a wireless communication module, or the like in order to output data.

본 발명에 따른 이진데이터 압축해제 장치(200)는 이진데이터 압축 장치(100)의 송신부(130)로부터 압축된 이진수에 대한 데이터를 유선 또는 무선으로 수신받기 위하여, 와이어나 케이블 또는 무선통신모듈 등으로 이루어지는 수신부(210)를 더 포함할 수 있다. 여기서 수신부(210)는 압축된 이진수와 함께, 주기내 미리 정하여진 일정한 반복 횟수, 즉 캐리 포인트 각각에서의 주어진 뺄셈횟수, 최종 주기를 제외한 주기내의 반복 횟수, 최종 주기내의 압축종료 직전의 반복 횟수, 원본 이진데이터의 비트수나 바이트수, 압축종료 직전의 캐리포인트 위치 등에 대한 데이터들을 압축해제연산부(220)에 전달할 수 있다.The binary data decompression apparatus 200 according to the present invention may be implemented as a wire, a cable, a wireless communication module, or the like in order to receive data on binary numbers compressed by the transmission unit 130 of the binary data compression apparatus 100, And may further include a receiving unit 210. Here, the receiving unit 210 receives the compressed binary number, the predetermined number of repetitions in the cycle, i.e., the number of subtractions in each carry point, the number of repetitions in the period excluding the final period, the number of repetitions before the end of compression in the final period, The number of bits of the original binary data, the number of bytes, the carry point position immediately before the end of compression, and the like to the decompression arithmetic operation unit 220.

한편, 상기한 바이너리 클러스터, 캐리키, 캐리 다운 이벤트, 캐리 업 이벤트, 캐리포인트 등을 보다 자세히 설명하기로 하며, 이는 후술하게 될 이진데이터 압축 방법과 이진데이터 압축해제 방법 모두 적용될 수 있다.The binary cluster, the carry key, the carry down event, the carry-up event, the carry point, and the like described above will be described in more detail, and both the binary data compression method and the binary data decompression method described below can be applied.

예를 들면, 이진수인 101의 경우에 이진수로 1을 빼면 그 결과는 100이 된다. 이 경우 3자리의 이진수인 100에 있어서, 101과 비교하여 자리내림현상이 발생하지 않는다. 즉, 뺄셈을 위해서 윗자리에서 숫자를 빌려오는 현상이 발생하지 않는다. 그러면 이진수인 11을 빼보면 그 결과는 10이 된다. 이 경우 3자리의 이진수인 101은 이진수인 11을 뺌으로써, 3번째 자리의 1에서 2를 빌려와서 두 번째자리의 1과 연산을 통해 10의 수치를 얻게 되는데, 이를 캐리 다운 이벤트라고 한다. 본 발명에서는 캐리키라고 불리는 1, 11, 111, 1111,... 과 같은 수치에서 가장 작은 수치로 일어나는 최초의 자리내림 현상을 캐리 다운 이벤트라고 정의한다. 이때 캐리 다운 이벤트는 원래 숫자의 비트수 자체가 작아지는 경우뿐만 아니라, 내부에서 일어나는 최초의 자리내림까지도 포함할 수 있다. 즉 이진수인 110을 이진수인 1로 빼면 101이 되는 것과 같이, 두 번째 자리에서 자리내림이 발생한 것도 110에서 1이라는 캐리키로 자리내림이 발생한 것으로 본다.For example, in the case of binary number 101, subtracting 1 as a binary number results in 100. In this case, in the case of 100, which is a binary number of three digits, the downward phenomenon does not occur as compared with 101. In other words, there is no borrowing of numbers from the top for subtraction. Then subtract the binary number 11 and the result is 10. In this case, 101, which is a 3 digit binary number, is 11, which is borrowed from 1 to 2 of the third digit, and the value of 10 is obtained through the operation of the second digit of 1, which is called a carry down event. In the present invention, a carry down event is defined as a first carry down phenomenon occurring in the smallest numerical value such as 1, 11, 111, 1111, ... called a carry key. At this time, the carry-down event may include not only the case where the number of bits of the original number itself becomes small, but also the first falling-down occurring inside. In other words, if the binary number 110 is subtracted from the binary number 1, it becomes 101, and the occurrence of the falling in the second digit is also considered to have occurred as a carry key of 110 to 1.

이진수 101에서 캐리키 중에서 가장 작은 1을 더하는 경우, 그 결과 110과 같이 이진법 첫 번째 자리에서 숫자가 넘쳐서 다음 자리에 캐리 업(carry up)되는 현상이 일어나는데, 이를 캐리 업 이벤트라고 한다.In binary 101, if the smallest one of the carry keys is added, the result is that the number overflows at the first digit of the binary method as in 110, which carries up the next digit. This is called a carry-up event.

또한 예컨대 2진수인 1101010101010의 경우에 있어서, 이러한 캐리 업 이벤트 및 캐리 다운 이벤트가 발생하기 위한 최소한의 단위로 묶을 수 있는데, 110 / 10 / 10 / 10 / 10 / 10과 같은 형태이다. 여기에서 맨 앞의 110을 헤드 바이너리 클러스터라고 한다. 다른 예로서, 100101101011이라는 이진수의 경우에, 100 / 101 / 10 / 1011로 분리가 가능하다. 이때 맨 앞의 100이 헤드 바이너리 클러스터가 된다. 한편, 헤드 바이너리 클러스터는 10 앞에 "1"을 1개 이상 연속적으로 포함하거나 포함하지 않을 수 있으며, 헤드 바이너리 클러스터의 뒤에는 제너럴 클러스터가 존재할 수 있다.For example, in the case of 1101010101010 which is a binary number, such a carry-up event and a carry-down event can be grouped in a minimum unit for generating such as 110/10/10/10/10/10. Here, the first 110 is called a head binary cluster. As another example, in the case of a binary number of 100101101011, separation into 100/101/10/1011 is possible. At this time, the first 100 is the head binary cluster. On the other hand, the head binary cluster may or may not include one or more consecutive "1 " s in front of 10, and a general cluster may exist after the head binary cluster.

이와 같이 클러스터를 묶는 방법은 압축식별부(121)에 의해 수행될 수 있는데, 일례로 맨 뒤의 이진수에서부터 앞의 이진수로 내려가면서, 최초로 비트를 스캔하다가 최초로 10이 나오고, 나서 다음으로 나오는 10 바로 앞 위치까지를 찾는 방법으로 수행될 수 있다. The method of binding clusters can be performed by the compression identification unit 121. For example, when descending from the last binary number to the previous binary number, the first bit is scanned and then the first 10 is output, It can be performed by finding a position up to the front position.

예를 들어, 아래의 표 1에서와 같이, 11010의 경우에 E 비트에서부터 A 비트까지 스캔하면서, 10이 최초로 나타나는 D 비트에서부터 직전의 10 위치(직전 10이 없을 때는 마지막 비트의 위치인 E) D~E의 연속(concatenation)으로 만들어질 수 있다.For example, as shown in Table 1 below, in the case of 11010, scanning is performed from E bit to A bit, and from the D bit appearing first at 10 to the immediately preceding 10 position (E at the position of the last bit when there is no previous 10) D ~ E can be made by concatenation.

AA BB CC DD EE 1One 1One 00 1One 00

이후 D-1 위치(C 위치)에서 왼쪽으로 이동하면서 만나게 되는 10의 시작 위치인 B부터 직전 10의 상위 비트인 D-1 위치(C 위치)까지(B~C)가 클러스터이나, 이 때 B 앞에 더 이상의 10이 없으므로 A까지 모두 포함하여 이를 헤드 바이너리 클러스터라고 명명한다(A~C). (B to C), which is the 10-bit high-order bit of the immediately preceding 10 (C position), which is the 10th start position that is encountered while moving to the left from the D-1 position (C position) Since there are no more 10 in front of it, it is called Head Binary Cluster (A to C) including all of A.

헤드 바이너리 클러스터 이후의 바이너리 클러스터들은 모두 제너럴 클러스터에 해당된다. 또한 헤드 바이너리 클러스터와 제너럴 클러스터를 통칭하여 바이너리 클러스터라고 할 수 있다. The binary clusters after the head binary cluster all belong to the general cluster. The head binary cluster and the general cluster are collectively referred to as a binary cluster.

캐리 다운 이벤트 및 캐리 업 이벤트를 발생시키는 캐리키는 1, 11, 111,....과 같이 무한하다. 이때 캐리키는 압축하고자 하는 이진데이터의 1과 0의 나열된 패턴에 따라 사용할 수 있는 것들이 달라진다. 그런데 캐리 다운 이벤트 및 캐리 업 이벤트를 발생시키는 캐리키의 크기에 따라 변화하는 비트의 총수가 달라지는데, 이를 캐리 이벤트 엔트로피(carry event enthropy)라고 한다. 예를 들어, 아래의 표 2에서와 같이 이진수인 10010에서, 캐리키 1을 사용하여 캐리 다운 이벤트가 일어나도록 할 수 있는데, 그 결과는 10001이다. 또한 동일한 원본 이진데이터 10010에 대하여, 캐리키 11을 사용하여 캐리 업 이벤트를 발생시킬 수 있는데, 그 결과는 10101이다 The carry key generating the carry down event and the carry up event is infinite like 1, 11, 111, ..... At this time, the carry key differs according to the listed patterns of 1 and 0 of the binary data to be compressed. However, the total number of changing bits varies depending on the size of the carry key generating the carry down event and the carry up event, which is called carry event entropy. For example, in the binary number 10010, as shown in Table 2 below, the carry-down event can be made to occur using carry-key 1, the result being 10001. Also, for the same original binary data 10010, a carry-up event can be generated using the carry key 11, the result being 10101

AA BB CC DD EE 1One 00 00 1One 00

그런데 이 두 경우를 비교해 보면, 첫 번째의 경우 숫자의 변화가 생긴 비트의 수는 D, E 비트에서 10이 01로 2개가 바뀌었고, 두 번째의 경우 C, D, E 비트의 010이 101로 바뀌었다. 본 예에서는 압축시에는 캐리 다운 이벤트 중에서 압축해제시에는 캐리 업 이벤트 중에서 엔트로피의 변화가 적게 일으키는 캐리키 1을 선택하여 압축 또는 압축해제 과정을 거치게 된다. However, when comparing these two cases, the number of bits in the first case changed from 10 to 01 in the D and E bits, and 010 in the C, D and E bits changed to 101 in the second case It changed. In this example, the carrie-down event is compressed and decompressed by selecting the carrie-key 1 that causes less change in entropy among the carry-up events in the compression-undelete event.

캐리포인트(carry point)는 특정 캐리키로 캐리 다운 이벤트 또는 캐리 업 이벤트가 발생할 수 있는 시작 비트의 위치이다. 예를 들면, 아래의 표 3에서와 같은 바이너리 클러스터의 경우, C 비트에서 캐리키 11로 캐리 다운 이벤트를 일으키거나, C 비트에서 캐리키 1로 캐리 업 이벤트를 일으킬 수 있는데, 이들 연산의 시작위치가 C 비트이며, 이를 캐리포인트라 한다.A carry point is the position of the start bit where a carry-down or carry-up event can occur with a particular carry key. For example, in the case of a binary cluster as shown in Table 3 below, a carry-down event may be generated from the C bit to the carry key 11, or a carry-up event may occur from the C bit to the carry key 1, Is a C bit, which is called a carry point.

AA BB CC 1One 00 1One

또한 주기는 정해진 횟수, 즉 캐리 업 이벤트나 캐리 다운 이벤트를 다수로 수행할 수 있으며, 캐리포인트의 이동 횟수와 동일한 수로 이루어질 수 있다. In addition, the cycle can perform a predetermined number of times, that is, a carry-up event or a carry-down event, in a number of the same number as the number of movements of the carry point.

도 2는 본 발명에 따른 이진데이터 압축 방법을 도시한 흐름도이다.2 is a flowchart illustrating a binary data compression method according to the present invention.

도 2에 도시된 바와 같이, 본 발명에 따른 이진데이터 압축 방법은 이진데이터의 이진수에서 뒷자리로부터 뺄셈을 위하여 윗자리에서 숫자를 빌려오는 캐리 다운 이벤트(carry down event)가 발생하는 시작 비트인 캐리포인트(carry point)를 기준으로, 그 보다 상위비트에 위치하게 되는 가장 가까운 10 및 캐리포인트 사이의 이진수로 이루어지는 바이너리 클러스터를 압축연산부(120)에 의해 추출하는 단계(S11)와, 바이너리 클러스터에 대해서 캐리 다운 이벤트를 일으키는 1로만 이루어지는 이진수 중에서, 최소 크기를 가진 이진수에 해당하는 캐리키를 압축연산부(120)에 의해 추출하는 단계(S12)와, 압축연산부(120)에 의해 이진데이터의 이진수로부터 캐리키를 빼는 단계(S13)와, 압축연산부(120)에 의해 바이너리 클러스터의 추출 단계(S11), 캐리키의 추출 단계(S12) 및 캐리키를 빼는 단계(S13)로 이루어진 기본 압축 단계를 정해진 횟수만큼 반복적으로 수행하는 단계(S15)와, 압축연산부(120)에 의해 기본 압축 단계를 정해진 횟수만큼 반복적으로 수행하여 획득한 이진수에 대해서, 캐리포인트를 앞자리로 이동함으로써(S16), 설정된 새로운 캐리포인트를 기준으로 기본 압축 단계를 정해진 횟수만큼 반복적으로 수행하는 단계와, 압축연산부(120)에 의해 캐리포인트를 앞자리로 이동하는 과정(S16)을 캐리 다운 이벤트가 처음으로 발생하지 않을 때까지 수행함으로써(S14), 캐리포인트 각각을 기준으로 기본 압축 단계를 반복적으로 수행하는 단계를 포함할 수 있다.As shown in FIG. 2, a binary data compression method according to the present invention includes a carry-in point (a start bit) in which a carry-down event that borrows a digit from the top for subtraction from a binary digit of binary data occurs (S11) of extracting, by a compression arithmetic operation unit (120), a binary cluster consisting of the closest 10 and a binary number between carry points located at higher order bits on the basis of a carry point A step S12 of extracting a carry key corresponding to a binary number having a minimum size from among the binary numbers consisting of only 1 that causes an event by the compression operation unit 120 and a step of extracting a carry key from the binary number of the binary data by the compression operation unit 120 Subtracting step S13, extracting a binary cluster S11, extracting a carry key S12 by the compression calculating unit 120, And a step S13 of subtracting the carry key from each other. The step S15 repeatedly performs a basic compression step consisting of the steps of: (S16) moving the carry point to the previous position, performing the basic compression step repeatedly based on the set new carry point a predetermined number of times, and moving the carry point to the previous position by the compression operation unit 120 S16) until the carry-down event does not occur for the first time (S14), and repeatedly performing the basic compression step based on each of the carry points.

또한 압축연산부(120)에 의해 캐리포인트를 앞자리로 이동하는 과정(16) 이후 주기수를 증가함과 아울러 저장하는 단계(S17)를 수행할 수 있다.In addition, the compression operation unit 120 may increase the number of cycles and move the carry point to the previous position (step S17).

또한 송신부(130)에 의해 압축종료 직전의 캐리포인트 위치 데이터를 전달하기 위하여, 압축연산부(120)에 의하여 최종적으로 압축된 이진 데이터에서 압축종료 직전의 캐리포인트 보다 상위비트의 “1”을 모두 “0”으로 바꾸어 전달하는 단계를 수행할 수 있다.Further, in order to transmit the carry point position data immediately before the end of compression by the transmission unit 130, all of the upper bits " 1 " of the carry point immediately before the end of compression in the finally compressed binary data by the compression calculation unit 120 are "Quot; 0 " and deliver it.

한편, 상기한 단계(S11~S17)를 모두 마침으로써 획득되는 압축된 이진수와 함께, 주기내 미리 정하여진 일정한 반복 횟수, 즉 캐리 포인트 각각에서의 주어진 뺄셈횟수, 최종 주기를 제외한 주기, 즉 지정된 주기내의 반복 횟수, 최종 주기내의 압축 종료 직전의 반복 횟수, 원본 이진데이터의 비트수나 바이트수, 압축종료 직전의 캐리포인트 위치 등에 대한 데이터들을 송신부(130)에 의해 목적 장치로 전달하는 단계를 더 포함할 수 있다. On the other hand, in addition to the compressed binary numbers obtained by finishing all the steps S11 to S17, the number of repetitions predetermined in the cycle, i.e., the number of subtractions at each carry point, excluding the final cycle, , The number of repetitions before the end of compression in the final cycle, the number of bits or bytes of the original binary data, the carry point position immediately before the end of compression, and the like, to the destination device by the transmitter 130 .

도 3은 본 발명에 따른 이진데이터 압축해제 방법을 도시한 흐름도이다.3 is a flow chart illustrating a method for decompressing binary data according to the present invention.

도 3에 도시된 바와 같이, 본 발명에 따른 이진데이터 압축해제 방법은 본 발명에 따른 이진데이터 압축 방법에 의해 송신되는 압축된 이진수의 데이터에 대해서 압축해제를 실시하는 방법으로서, 본 발명에 따른 이진데이터 압축 방법에 의해 압축된 이진수의 데이터를 수신받아, 압축된 이진수에서 뒷자리로부터 덧셈을 위하여 윗자리로 숫자를 올리는 캐리 업 이벤트(carry up event)가 발생할 수 있는 시작 비트인 캐리포인트(carry point)를 기준으로, 그 보다 상위비트에 위치하게 되는 10 및 캐리포인트 사이의 이진수로 이루어지는 바이너리 클러스터를 압축해제연산부(220)에 의해 추출하는 단계(S21)와, 바이너리 클러스터에 대해서 캐리 업 이벤트를 일으키는 1로만 이루어지는 이진수 중에서, 최소 크기를 가진 이진수에 해당하는 캐리키를 압축해제연산부(220)에 의해 추출하는 단계(S22)와, 압축해제연산부(220)에 의해 압축된 이진수에 캐리키를 더하는 단계(S23)와, 압축해제연산부(220)에 의해 바이너리 클러스터의 추출 단계(S21), 캐리키의 추출 단계(S22) 및 캐리키를 더하는 단계(S23)로 이루어진 기본 압축해제 단계를 정해진 횟수만큼 반복적으로 수행하는 단계(S24)와, 압축해제연산부(220)에 의해 기본 압축해제 단계를 정해진 횟수만큼 반복적으로 수행하여 획득한 이진수에 대해서, 캐리포인트를 앞자리로 이동함으로써(S26) 설정된 새로운 캐리포인트를 기준으로 기본 압축해제 단계를 정해진 횟수만큼 반복적으로 수행하는 단계와, 압축해제연산부(220)에 의해 캐리포인트를 앞자리로 이동하는 과정을 정해진 주기만큼 수행함으로써(S25), 캐리포인트 각각을 기준으로 기본 압축해제 단계를 정해진 횟수만큼 반복적으로 수행하는 단계를 포함할 수 있다. 여기서, 정해진 횟수는 최초 주기부터 최종 주기 직전의 주기에서 1주기를 이루는 횟수일 수 있고, 최종 주기에서는 상기한 압축 과정의 최종 주기에서 캐리 다운 이벤트가 발생할 때까지의 횟수일 수 있다.As shown in FIG. 3, the method for decompressing binary data according to the present invention is a method for decompressing compressed binary data transmitted by the binary data compressing method according to the present invention. A carry point, which is a start bit for receiving a binary data compressed by the data compression method and generating a carry up event in which compressed digits are incremented from the back position to the top position for addition, (Step S21) of extracting binary clusters composed of binary numbers between 10 and carry points located at higher order bits by the decompression arithmetic operation unit 220, Among the binary numbers, a carry key corresponding to a binary number having a minimum size is decompressed A step S23 of adding a carry key to the binary number compressed by the decompression arithmetic unit 220 and a step S23 of extracting the binary cluster by the decompression arithmetic unit 220 A step S24 of repeatedly performing a basic decompression step including a step of extracting a carry key S22 and a step S23 of adding a carry key to the decompression arithmetic operation unit 220 by a predetermined number of times; Step of repeatedly performing the basic decompression step for a predetermined number of times based on the new carry point set by moving the carry point to the previous position for the binary number obtained by repeatedly performing the step repeatedly, (S25), the basic decompression step is performed for a predetermined number of times based on each of the carry points It may include the step of repeatedly performed. Here, the predetermined number of times may be the number of times that one period is made in the cycle immediately before the last cycle from the first cycle, and may be the number of times until the carry down event occurs in the last cycle of the compression process in the final cycle.

또한 압축종료 직전의 캐리포인트 위치를 획득하기 위하여, 압축해제연산부(220)에 의해, 압축된 이진수에서 최상위비트로부터 최하위비트로 이동하는 과정에서 최초로 만나는 “1”의 위치를 압축종료 직전의 캐리포인트 위치로 하고, 상기 “1”의 위치보다 상위비트의 “0”을 “1”로 바꾸는 단계를 수행할 수 있다.In order to obtain the carry point position immediately before the end of compression, the decompression arithmetic unit 220 sets the position of the first encountering "1" in the process of moving from the most significant bit to the least significant bit in the compressed binary number to the carry point position , And changing the " 0 " of the upper bit from the position of the " 1 " to " 1 ".

한편, 압축된 이진수와 함께, 주기내 반복 횟수, 즉 캐리 포인트 각각에서의 주어진 뺄셈횟수, 주기내 미리 정하여진 일정한 반복 횟수, 최종 주기내의 압축종료 직전의 반복 횟수, 원본 이진데이터의 비트수나 바이트수, 압축종료 직전의 캐리포인트 위치 등에 대한 데이터들을 수신부(210)가 압축해제연산부(220)에 전달하는 단계를 더 포함할 수 있다. 따라서, 압축해제연산부(220)는 미리 결정된 횟수 및 주기에 상응하도록 상기한 단계(S21~S27)들을 수행할 뿐만 아니라, 수신부(210)를 통해서 수신되는 가변 가능한 횟수 및 주기에 상응하도록 상기한 단계(S21~S27)들을 수행할 수 있다. On the other hand, in addition to the compressed binary number, the number of repetitions in the cycle, i.e., the number of subtractions given in each of the carry points, the predetermined repetition number in the cycle, the repetition number immediately before the end of compression in the final cycle, And a carry point position immediately before the end of compression, to the decompression calculation unit 220 by the reception unit 210. Therefore, the decompression arithmetic operation unit 220 not only performs the above-described steps S21 to S27 so as to correspond to a predetermined number of times and periods, but also performs the above-described steps (S21 to S27).

본 발명에 따른 이진데이터 압축 방법과 이진데이터 압축해제 방법을 예로 들어 설명하기로 한다. The binary data compression method and the binary data decompression method according to the present invention will be described as an example.

먼저, 압축과정에 대해서 설명을 하면, 이진수 11010100를 예로 들면, 바이너리 클러스터는 110 / 10 / 100으로 분리된다. 캐리포인트 0부터 압축작업이 시작되는데, 만약에 미리 횟수(반복 횟수)를 4회로 하여 각 캐리포인트에서 캐리 다운 이벤트가 발생하도록 지정을 하였다면, 아래의 표 4에서와 같이, 4회의 캐리 다운 이벤트를 캐리포인트 가장 가까운 바이너리 클러스터를 기준으로 진행할 수 있다.First, the compression process will be described. When binary 11010100 is taken as an example, the binary cluster is divided into 110/10/100. If a carry-down event is generated at each carry-point by setting the number of repetitions (repetition times) to 4 in advance, the compression operation starts from carry-point 0. If four carry-down events Carry Point You can proceed based on the nearest binary cluster.

이때, 원본 이진데이터의 크기를 고려하여 반복 횟수를 적절히 지정할수 있다. 이 반복 횟수는 압축률과 압축시간을 결정하는 가장 중요한 인자가 되며, 1에서부터 시작하여 지정한 숫자까지 카운팅되면 1주기를 이룬 뒤, 다시 0으로 초기화되는 과정을 반복한다. 예를 들어 원본 이진데이터가 매우 큰 자료일 경우, 100,000,000 비트 크기의 자료라면, 적어도 100,000회를 반복하도록 지정할 수 있고, 그 이상의 크기도 지정할 수 있다. 따라서 반복 횟수는 원본 이진데이터의 용량 크기별로 압축시간과 압축효율을 고려하여 지정할 수 있으며, 반복횟수별로 압축효율과 압축시간을 미리 정보처리수단을 이용하여 계산하여 최적의 주기내 일정한 반복횟수를 미리 계산을 통해 지정할 수도 있다.At this time, the number of repetition times can be appropriately determined in consideration of the size of the original binary data. The number of iterations is the most important factor that determines the compression rate and compression time. If the number is counted from 1 to the designated number, it repeats the process of 1 cycle and then initialization to 0 again. For example, if the original binary data is very large, 100,000,000 bits of data can be specified to repeat at least 100,000 times, or more. Therefore, the number of iterations can be specified in consideration of the compression time and the compression efficiency according to the capacity size of the original binary data. The compression efficiency and the compression time are calculated in advance according to the number of repetitions using the information processing means, It can also be specified through calculation.

Carry point
7
Carry point
7
Carry point
6
Carry point
6
Carry point
5
Carry point
5
Carry point
4
Carry point
4
Carry point
3
Carry point
3
Carry point
2
Carry point
2
Carry point
1
Carry point
One
Carry point 0Carry point 0 반복 횟수Number of repetitions
AA 1One 1One 00 1One 00 1One 00 00 BB (-)(-) 1One 1One CC 1One 1One 00 1One 00 00 1One 1One DD (-)(-) 1One 1One 1One 22 EE 1One 1One 00 00 1One 1One 00 00 FF (-)(-) 1One 33 GG 1One 1One 00 00 1One 00 1One 1One HH (-)(-) 1One 1One 44 II 1One 1One 00 00 00 1One 00 00

이렇게 4회의 반복 횟수가 끝나면, 캐리포인트는 왼쪽 캐리포인트 1로 1비트로 이동하여, 다음 주기(2번째 주기)를 수행함으로써 아래의 표 5에서와 같이, 다시 4회의 캐리 다운 이벤트를 캐리포인트 1에서의 가장 가까운 바이너리 클러스터를 기준으로 반복 실시한다.After four repetition times, the carry point moves to the left carry point 1 by 1 bit and carries out the next cycle (second cycle), so that four carry down events are carried out again at carry point 1 Lt; RTI ID = 0.0 > cluster. ≪ / RTI >

Carry point
7
Carry point
7
Carry point
6
Carry point
6
Carry point
5
Carry point
5
Carry point
4
Carry point
4
Carry point
3
Carry point
3
Carry point
2
Carry point
2
Carry point
1
Carry point
One
Carry point 0Carry point 0 반복 횟수Number of repetitions
II 1One 1One 00 00 00 1One 00 00 JJ (-)(-) 1One 1One KK 1One 1One 00 00 00 00 1One 00 LL (-)(-) 1One 1One 22 MM 1One 00 1One 1One 1One 1One 00 00 NN (-)(-) 1One 33 OO 1One 00 1One 1One 1One 00 1One 00 PP (-)(-) 1One 1One 44 QQ 1One 00 1One 1One 00 1One 00 00

다시 4회의 반복 횟수가 끝나면, 아래의 표 6에서와 같이, 캐리포인트를 캐리포인트 2로 이동하여, 3번째 주기를 수행함으로써 캐리포인트 2에서의 가장 가까운 바이너리 클러스터를 기준으로 다시 4회를 실시한다.When the repetition number of four times is completed again, the carry point is shifted to carry point 2 as shown in Table 6 below, and the third cycle is performed to perform the fourth round again based on the closest binary cluster at carry point 2 .

Carry point
7
Carry point
7
Carry point
6
Carry point
6
Carry point
5
Carry point
5
Carry point
4
Carry point
4
Carry point
3
Carry point
3
Carry point
2
Carry point
2
Carry point
1
Carry point
One
Carry point 0Carry point 0 반복 횟수Number of repetitions
QQ 1One 00 1One 1One 00 1One 00 00 RR (-)(-) 1One 1One 1One SS 1One 00 1One 00 1One 00 00 00 TT (-)(-) 1One 22 UU 1One 00 1One 00 00 1One 00 00 VV (-)(-) 1One 1One 33 WW 1One 00 00 1One 1One 00 00 00 XX (-)(-) 1One 44 YY 1One 00 00 1One 00 1One 00 00

4회의 반복회수가 끝나면, 아래의 표 7에서와 같이, 다시 캐리포인트를 캐리포인트 3으로 옮겨서, 4번째 주기를 수행함으로써 캐리포인트 3에서의 가장 가까운 바이너리 클러스터를 기준으로 다시 4회를 실시한다. 아래의 표 7에서 보듯이, 반복 횟수를 4회로 할 경우 캐리포인트 3에 도달하여 압축이 진행될 때에 비트가 1비트 감소의 효과를 확인할 수 있다(AG행 참고). 만약에 반복 횟수를 40회로 한다면, 캐리포인트 3에 도달하기 전에도 비트의 감소 효과를 확인할 수 있다.When the number of repetitions of four times is completed, the carry point is shifted to carry point 3 again, as shown in Table 7 below, and the fourth cycle is performed again based on the closest binary cluster at carry point 3. As shown in Table 7 below, when the number of repetitions is four, the effect of decreasing the bit by one bit can be confirmed when compression reaches to carry point 3 (see AG row). If the number of repetitions is 40, the effect of decreasing the bit can be confirmed even before reaching carry point 3.

Carry point
7
Carry point
7
Carry point
6
Carry point
6
Carry point
5
Carry point
5
Carry point
4
Carry point
4
Carry point
3
Carry point
3
Carry point
2
Carry point
2
Carry point
1
Carry point
One
Carry point 0Carry point 0 반복 횟수Number of repetitions
YY 1One 00 00 1One 00 1One 00 00 ZZ (-)(-) 1One 1One AAAA 1One 00 00 00 1One 1One 00 00 ABAB (-)(-) 1One 1One 22 ACAC 1One 1One 1One 00 1One 00 00 ADAD (-)(-) 1One 33 AEAE 1One 1One 00 1One 1One 00 00 AFAF (-)(-) 1One 1One 44 AGAG 1One 00 1One 00 1One 00 00

이러한 방식으로, 아래의 표 8에서와 같이 캐리포인트를 4->5->6->7로 옮겨가면서, 각 캐리포인트마다 가장 가까운 바이너리 클러스터를 기준으로 지정된 반복 횟수만큼 연산을 계속 진행한다. In this way, as shown in Table 8 below, the operation is continued for the specified number of repetitions based on the closest binary cluster for each carry point, while moving the carry point to 4-> 5-> 6-> 7.

Carry point
7
Carry point
7
Carry point
6
Carry point
6
Carry point
5
Carry point
5
Carry point
4
Carry point
4
Carry point
3
Carry point
3
Carry point
2
Carry point
2
Carry point
1
Carry point
One
Carry point 0Carry point 0 반복 횟수Number of repetitions
AGAG 1One 00 1One 00 1One 00 00 AHAH (-)(-) 1One 1One 1One AIAI 1One 00 00 1One 00 00 AJAJ (-)(-) 1One 22 AKAK 1One 00 1One 00 00

압축종료와 관련하여, 표 8에서와 같이 캐리 포인트가 4에 있지만 2회 반복 이후 AK 행과 같이, 캐리 포인트 4보다 더 상위비트에는 데이터가 없게 되거나, "1"만 연속되어 있는 경우와 같이, 추가적으로 해당 캐리포인트에서 캐리 다운 이벤트가 발생할 수 없다면, 압축과정은 종료된다. 최종 주기내 반복 횟수 N번째에서 종료되었음을 나타내는 정보와 압축과정을 통해 남은 바이너리 수치정보(AK행의 10100)를 압축정보로 남기게 된다.As with the end of compression, as shown in Table 8, although the carry point is at 4, but after the second iteration, as in the case of the AK row, there is no data in the higher bits than the carry point 4, Additionally, if a carry down event can not occur at the carry point, the compression process ends. Information indicating the end of the number N of repetition times in the last cycle and binary numerical information (10100 in the AK row) remaining through the compression process are left as compression information.

본 예에서는 아래와 같이 캐리포인트 4에서 반복 주기 5회 중 반복 횟수 2회째를 마지막으로, 더 이상 캐리 다운 이벤트를 발생시킬 수 없기 때문에 압축은 최종적으로 종료하게 된다. 따라서, 송신되는 압축 정보는 주기가 5(또는 캐리포인트가 0에서부터 시작하여 4에서 끝났기 때문에 캐리포인트로는 4이다)이고, 압축된 이진데이터 정보는 10100이고, 압축 완료를 마치지 아니한 주기(최종 반복주기)에서의 횟수 정보는 2이다.In this example, since the carry-down event can not be generated any more at the carry-down point 4, the second iteration of the repetition period 5 times, and the second iteration, the compression is finally finished. Therefore, the compressed information to be transmitted has a period of 5 (or a carry point of 4 since the carry point starts from 0 and ends at 4), the compressed binary data information is 10100, The number of times information is 2).

예를 들어 1억비트의 이진데이터인 경우, 반복주기 10,000,000을 설정한다면, 압축 최종 정보는 매우 감소해 있을 것이고, 주기 정보도 P번째(키리포인트가 P까지 이동했음)라는 정보로 간결하게 표현이 가능하며, 최종 캐리 포인의 위치 또한 비트(P+1번째 비트)라는 정보로 간결히 표현할 수 있으므로, 큰 압축효과를 가지게 된다.For example, in the case of 100 million bits of binary data, if the repetition period is set to 10,000,000, the final compression information will be greatly reduced, and the cycle information will be concisely represented by the information of Pth (the key point has moved to P) Since the position of the final carry pointer can also be expressed concisely with the information of the bit (P + 1-th bit), it has a large compression effect.

압축과정 종료시점의 캐리포인트 위치값을 상기와 같이 직접 송신부(130)에서 수신부(210)로 전달할 수도 있고, 또는 압축과정이 종료될 당시의 캐리포인터를 전달하는 방법으로써, 압축데이터의 최상위비트로부터 하위 비트로 내려오면서 만나는 최초의 “1” 위치를 확인한 다음, 이 위치 보다 상위비트를 모두 “0”으로 바꾸어 압축데이터로 전송할 수 있다. 이를 통해 압축데이터 자체로서 압축과정 종료당시의 캐리포인터 위치를 송신부(130)의 압축해제장치에 인식시킬 수가 있다. 간단한 예를 들어, 주기내의 정하여진 반복 횟수를 1회라고 할 경우 원본데이터 1010010의 경우를 살펴보면, 제 3 주기에서 0 반복 횟수에서 더 이상 압축이 일어날 수 없다. 이때 캐리 포인트는 2에 있게 된다. 이때 압축데이터 111111에서 캐리 포인트 2 위치보다 상위비트를 모두 0으로 바꾸면 000111이 된다. 이렇게 변형된 압축데이터를 송신부로 전송하게 된다. 이와 같은 경우, 변형된 압축데이터 및 주기내의 정해진 반복횟수, 최종 주기내 반복 횟수만을 압축해제부로 전달할 수 있다.As described above, the direct transmission unit 130 may transmit the carry point position at the end of the compression process to the receiving unit 210, or the carry pointer at the end of the compression process may be transmitted. It is possible to check the position of the first "1" to be encountered while descending to the lower bit, and then transmit all of the upper bits of this position to "0" to transmit the compressed data. Accordingly, the decompression device of the transmission unit 130 can recognize the position of the carry pointer at the end of the compression process as the compressed data itself. For example, if the number of repetitions determined in a cycle is 1, the compression of the original data 1010010 can not occur at the number of repetitions of 0 in the third cycle. At this point, the carry point is at 2. At this time, if the upper bits of the compressed data 111111 are all set to 0 rather than the carry point 2 position, 000111 is obtained. The compressed data thus transformed is transmitted to the transmission unit. In this case, the compressed data and the predetermined number of repetitions in the cycle and the repetition number in the final cycle can be transmitted to the decompression unit.

압축해제 과정은 앞의 예와 같이 AK행의 결과에서 시작한다. 원본 비트가 8비트이므로 캐리포인트는 0~7까지 설정할 수 있다. 그리고 압축시 최종 캐리포인트 정보는 4이고, 압축은 5 주기(캐리포인트가 0에서부터 4까지 증가하기 때문에 이 예에서는 5주기가 된다) 중에 반복 횟수 2번째까지 진행된 상태이다. 이때 상기 압축과정 중단시점의 최종 캐리포인트 위치에 대하여, 변형된 압축데이터를 수신받을 경우에, 최상위 비트에서부터 하위비트로 이동하면서, 최초로 만나는 “1”의 위치를 최종 캐리포인트의 위치로 할 수 있고, 상기 “1” 위치 이전 위치의 모든 “0”은 “1”로 변환하여, “변형된” 압축데이터를 “정상” 압축데이터로 다시 환원할 수 있다. 예를 들어, “변형된” 압축데이터가 000111이었다면, 000“1”11 위치가 최종 캐리포인트 위치임을 획득하여 저장하고, “1” 위치 이전의 “0”의 개수만큼을 모두 “1”로 변환하여 111111 형태의 정상적인 압축데이터로 다시 환원할 수가 있다.The decompression process begins with the result of the AK row, as in the previous example. Since the original bit is 8 bits, the carry point can be set from 0 to 7. The final carry-point information at the time of compression is 4, and the compression progresses to the second number of repetitions during 5 cycles (the carry-point increases from 0 to 4 and thus becomes 5 cycles in this example). At this time, when receiving the modified compressed data with respect to the last carry point position at the end of the compression process, the position of the first carry "1" can be set to the position of the final carry point while moving from the most significant bit to the lower bit, Quot; 0 " of the position before the " 1 " position can be converted to " 1 ", and the " modified " compressed data can be reduced back to the " normal " compressed data. For example, if the " modified " compressed data is 000111, it acquires and stores the position of 000 " 1 " 11 as the final carry point position and converts all the " 0 " And can return to the normal compressed data of the 111111 type.

이렇게 획득한 “정상”압축데이터 및 최종 캐리포인트 위치, 주기내 반복횟수정보, 최종주기내 반복횟수 정보를 이용하여, 압축 과정과 반대로 캐리 업 이벤트를 주기만큼 반복하여 시행한다. 아래의 표 9에서와 같이, 압축해제의 출발점은 압축데이터 10100에 대하여 캐리포인트 0에서 시작하면서, 주기 및 횟수대로 캐리 업 이벤트를 반복하면서, 캐리포인트가 4에 이르러 반복주기 2회까지 진행하고 종료하면 압축해제가 종료한다. 이 과정을 아래 표 9로 도식화하였다.By using the thus obtained " normal " compressed data, the last carry point position, the repetition number information within the repetition period, and the repetition number information in the final repetition cycle, As shown in Table 9 below, the start point of the decompression starts from the carry point 0 with respect to the compressed data 10100, repeats the carry-up event at the period and the number of times, reaches the carry point up to 4, The decompression ends. This process is illustrated in Table 9 below.

Carry point
7
Carry point
7
Carry point
6
Carry point
6
Carry point
5
Carry point
5
Carry point
4
Carry point
4
Carry point
3
Carry point
3
Carry point
2
Carry point
2
Carry point
1
Carry point
One
Carry point 0Carry point 0 주기Cycle
1One 00 1One 00 00 AA (+)(+) 1One 1One 1One 1One BB 1One 1One 00 1One 1One CC (+)(+) 1One 22 DD 1One 1One 1One 00 00 EE (+)(+) 1One 1One 1One 33 FF 1One 00 00 00 1One 1One GG (+)(+) 1One 44 HH 1One 00 00 1One 00 00

4회의 반복 횟수가 마무리되었기 때문에, 아래의 표 10과 같이 캐리포인트를 1로 이동하여, 2번째 주기로서 다시 4회를 반복한다.Since the number of repetitions of four times has been completed, the carry point is shifted to 1 as shown in Table 10 below, and the fourth cycle is repeated as the second cycle.

Carry point
7
Carry point
7
Carry point
6
Carry point
6
Carry point
5
Carry point
5
Carry point
4
Carry point
4
Carry point
3
Carry point
3
Carry point
2
Carry point
2
Carry point
1
Carry point
One
Carry point 0Carry point 0 주기Cycle
HH 1One 00 00 1One 00 00 II (+)(+) 1One 1One 1One JJ 1One 00 1One 00 1One 00 KK (+)(+) 1One 22 LL 1One 00 1One 1One 00 00 MM (+)(+) 1One 1One 33 NN 1One 1One 00 00 1One 00 OO (+)(+) 1One 44 PP 1One 1One 00 1One 00 00

상기에서 4회의 반복 횟수가 다시 완성되었기에 아래의 표 11에서와 같이, 캐리포인트를 2로 이동하여 3번째 주기로 다시 4회 캐리 업 이벤트를 일으키도록 반복한다.Since the repetition number of four times is completed again, the carry point is shifted to 2 as shown in Table 11 below to repeat the fourth carry-up event again in the third period.

Carry point
7
Carry point
7
Carry point
6
Carry point
6
Carry point
5
Carry point
5
Carry point
4
Carry point
4
Carry point
3
Carry point
3
Carry point
2
Carry point
2
Carry point
1
Carry point
One
Carry point 0Carry point 0 주기Cycle
PP 1One 1One 00 1One 00 00 QQ (+)(+) 1One 1One RR 1One 1One 1One 00 00 00 SS (+)(+) 1One 1One 22 TT 1One 00 00 00 1One 00 00 UU (+)(+) 1One 33 VV 1One 00 00 1One 00 00 00 WW (+)(+) 1One 1One 44 XX 1One 00 1One 00 1One 00 00

다시 4회의 반복 횟수가 완료되었으므로, 아래의 표 12에서와 같이, 캐리포인트를 3으로 이동하여 다시 4번째 주기로 4회 캐리 업 이벤트를 일으키도록 반복하다.Since the repetition number of 4 repetitions is completed again, the carry point is shifted to 3 as shown in Table 12 below, and the repetition is repeated so as to generate the carry-up event 4 times in the fourth cycle again.

Carry point
7
Carry point
7
Carry point
6
Carry point
6
Carry point
5
Carry point
5
Carry point
4
Carry point
4
Carry point
3
Carry point
3
Carry point
2
Carry point
2
Carry point
1
Carry point
One
Carry point 0Carry point 0 주기Cycle
XX 1One 00 1One 00 1One 00 00 AAAA (+)(+) 1One 1One 1One ABAB 1One 1One 00 1One 1One 00 00 ACAC (+)(+) 1One 22 ADAD 1One 1One 1One 00 1One 00 00 AEAE (+)(+) 1One 1One 33 AFAF 1One 00 00 00 1One 1One 00 00 AGAG (+)(+) 1One 44 AHAH 1One 00 00 1One 00 1One 00 00

4회의 반복 횟수가 완성되었으므로, 표 13에서와 같이 캐리포인트를 4로 이동한다. 다만, 캐리포인트가 4라는 정보는 압축시에 전달받은 정보이고, 이에 도달하였으므로, 최종 주기중 2번째가 마지막 반복횟수였던 정보를 활용하여 2번째 반복주기까지만 압축해제를 진행한다. 이 예에서는 압축시 4주기중 2번째 압축 횟수까지 진행되었던 것이므로, 압축 해제시에도 2번째 횟수만 진행하면 압축해제가 종료된다. 따라서 압축해제가 종료된 11010100이 압축해제 결과이며, 이는 압축시 원본 이진데이터와 동일함을 아래의 표 13에서 확인할 수 있다.Since the number of repetitions is 4, move the carry point to 4 as shown in Table 13. However, since the information that the carry point is 4 is the information received at the time of compression, it is decompressed only up to the second repetition cycle using the information that the second of the final cycles is the last repetition frequency. In this example, since compression has been performed up to the second compression number of four cycles during compression, decompression is terminated when the second number of times is reached at the decompression. Therefore, the decompression result is 11010100, which is the decompression result, which is identical to the original binary data in compression.

Carry point
7
Carry point
7
Carry point
6
Carry point
6
Carry point
5
Carry point
5
Carry point
4
Carry point
4
Carry point
3
Carry point
3
Carry point
2
Carry point
2
Carry point
1
Carry point
One
Carry point 0Carry point 0 주기Cycle
AHAH 1One 00 00 1One 00 1One 00 00 AIAI (+)(+) 1One 1One AJAJ 1One 00 1One 00 00 1One 00 00 AKAK (+)(+) 1One 1One 22 ALAL 1One 1One 00 1One 00 1One 00 00 종료End

한편, 주기내 일정한 반복횟수의 결정은 사용자가 적절하게 이진데이터의 크기를 고려하여 지정할수 있다. 주기내 일정한 반복횟수가 커질수록 압축의 효율이늘어나게 된다. 최적의 주기내 일정한 반복횟수를 찾는 방법은 1 ~ n까지의 임의의 자연수에 대하여 각 주기내 일정한 반복횟수별로 압축을 시행하여, 최대의 압축효율을 나타내는 n'값을 찾는( 1<= n' <=n )하는 방법이 고려될 수 있다. 또한 압축을 마치고 송신부로 전달할 압축관련정보는 좀 더 표현의 효율을 높이기 위해 2진법이 아닌 다진법으로(예를 들어, 256진법이나 10진법등) 표현할 수 있으며, 파일명에 함께 표현하거나, 폴더명, 기타 별도의 디스크 또는 메모리 등의 사용되지 않는 유휴 공간인 저장 공간에 담을 수가 있다.On the other hand, the determination of a certain number of iterations in the cycle can be performed by the user in consideration of the size of the binary data. The greater the number of repetitions in the cycle, the more efficient the compression. The method of finding a certain number of iterations in the optimal period is to find n 'value (1 <= n') which shows the maximum compression efficiency by performing compression for a certain number of iterations in each cycle for arbitrary natural numbers from 1 to n, < = n) can be considered. In addition, the compression-related information to be transmitted to the transmission unit after compression can be represented by a method other than a binary method (for example, a 256-ary method or a decimal method) in order to further enhance the efficiency of expression, , Or other unused space such as a separate disk or memory.

이와 같은 본 발명에 따른 이진데이터 압축 및 압축해제 장치와 방법에 따르면, 바이너리 클러스터를 이용하여, 반복적으로 사용자가 지정한 횟수만큼 동일한 캐리포인트에서 캐리 다운 이벤트를 발생하도록 빼기 연산을 반복 시행한 뒤, 캐리포인트를 앞으로 이동하고, 다시 반복적으로 캐리 다운 이벤트가 발생하도록 빼기 연산을 반복하여 시행하여 압축을 진행한다. 그 결과 캐리 다운 이벤트를 처음으로 일으킬수 없을때가 최종주기가 되고 그러한 최종 주기내의 진행되었던 반복회수, 압축된 바이너리 수치 결과, 최종반복주기내에서 압축 종료시의 캐리포인트 위치(비트수 또는 바이트수)만의 정보를 통해 다시 이전의 데이터로 복귀가 가능하도록 한다.According to the apparatus and method for decompressing and decompressing binary data according to the present invention, a binary cluster is used to repeatedly perform a subtraction operation repeatedly to generate a carry down event at the same carry point as the number of times specified by the user, Moving the point forward and repeatedly performing a subtraction operation so that a carry-down event occurs repeatedly, the compression proceeds. As a result, when the carry-down event can not be generated for the first time, it becomes the final cycle, and the number of repetitions in the last cycle, the compressed binary number result, and the carry point position (bit number or byte number) Information is returned to the previous data again.

이와 같이 첨부된 도면을 참조하여 본 발명을 설명하였으나, 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 다양한 수정 및 변형이 이루어질 수 있음은 물론이다. 그러므로, 본 발명의 범위는 설명된 실시예에 한정되어서는 아니되며, 후술하는 특허청구범위뿐만 아니라 이러한 특허청구범위와 균등한 것들에 의해 정해져야 한다.Although the present invention has been described with reference to the accompanying drawings, it is to be understood that various changes and modifications may be made without departing from the spirit of the invention. Therefore, the scope of the present invention should not be limited to the described embodiments, but should be determined by the scope of the appended claims and equivalents thereof.

1,2 : 외부 장치 110 : 수신부
120 : 압축연산부 121 : 제 1 클러스터추출부
122 : 제 1 캐리키추출부 123 : 캐리다운연산부
124 : 제 1 횟수카운터 125 : 제 1 캐리포인트인식부
126 : 제 1 주기카운터 127 : 제 1 메모리부
128 : 비캐리다운연산병합부 130 : 송신부
210 : 수신부 220 : 압축해제연산부
221 : 제 2 클러스터추출부 222 : 제 2 캐리키추출부
223 : 캐리다운연산부 224 : 제 2 횟수카운터
225 : 제 2 캐리포인트인식부 226 : 제 2 주기카운터
227 : 제 2 메모리부 228 : 비캐리업연산병합부
230 : 출력부
1,2: External device 110: Receiver
120: compression operation unit 121: first cluster extracting unit
122: First carry key extracting unit 123: Carry down operation unit
124: first count counter 125: first carry point recognizer
126: first period counter 127: first memory unit
128: non-carry-down operation merging unit 130:
210: Receiving unit 220:
221: second cluster extracting unit 222: second carry key extracting unit
223: carry down operation unit 224: second times counter
225: second carry point recognizing unit 226: second period counter
227: second memory unit 228: non-carry-up operation merging unit
230: Output section

Claims (14)

이진데이터의 이진수에서 뒷자리로부터 뺄셈을 위하여 윗자리에서 숫자를 빌려오는 캐리 다운 이벤트(carry down event)가 발생하는 시작 비트인 캐리포인트(carry point)를 기준으로, 그 보다 상위비트에 위치하게 되는 10 및 캐리포인트 사이의 이진수로 이루어지는 바이너리 클러스터를 추출하고, 상기 바이너리 클러스터에 대해서 캐리 다운 이벤트를 일으키는 1로만 이루어지는 이진수 중에서, 최소 크기를 가진 이진수에 해당하는 캐리키를 추출하며, 상기 이진데이터의 이진수로부터 상기 캐리키를 빼고, 상기 바이너리 클러스터의 추출, 상기 캐리키의 추출 및 상기 캐리키를 빼는 과정으로 이루어진 기본 압축 과정을 정해진 횟수만큼 반복적으로 수행하며, 상기 기본 압축 과정을 정해진 횟수만큼 반복적으로 수행하여 획득한 이진수에 대해서, 상기 캐리포인트를 앞자리로 이동함으로써 설정된 새로운 캐리포인트를 기준으로 상기 기본 압축 과정을 정해진 횟수만큼 반복적으로 수행하고, 상기 캐리포인트를 앞자리로 이동하는 과정을 상기 캐리 다운 이벤트가 처음으로 발생하지 않을 때까지 수행함으로써, 상기 캐리포인트 각각을 기준으로 상기 기본 압축 과정을 반복적으로 수행하는 압축연산부; 및
상기 압축연산부에 의해 압축을 마친 이진수에 대한 데이터를 목적 장치로 송신하는 송신부를 포함하는, 이진데이터 압축 장치.
10, which is located at a higher bit with respect to a carry point which is a start bit at which a carry down event that borrows a digit from the upper position for subtraction from the binary digit of the binary data occurs, Extracting a binary cluster consisting of binary numbers between the carry points and extracting a carry key corresponding to a binary number having a minimum size from binary numbers consisting of only 1 which causes a carry down event for the binary cluster, Extracting the binary cluster, extracting the carry key, and subtracting the carry key are repeatedly performed a predetermined number of times, and the basic compression process is repeatedly performed a predetermined number of times For one binary number, Performing the basic compression process repeatedly a predetermined number of times based on a new carry point set by moving the point to the previous position and moving the carry point to the previous position until the carry down event does not occur for the first time A compression operation unit that repeatedly performs the basic compression process on the basis of each of the carry points; And
And a transmitting unit for transmitting the data on the binary number that has been compressed by the compression calculating unit to the destination device.
제 1 항에 있어서, 상기 압축연산부는,
상기 이진데이터로부터 상기 바이너리 클러스터를 추출하는 제 1 클러스터추출부;
상기 제 1 클러스터추출부에 의해 추출된 바이너리 클러스터에 대해서 상기 캐리 다운 이벤트를 일으키는 상기 캐리키를 추출하는 제 1 캐리키추출부;
상기 제 1 캐리키추출부로부터 추출된 캐리키를 이진수로부터 빼는 연산을 수행하는 캐리다운연산부;
상기 제 1 클러스터추출부에 의한 바이너리 클러스터의 추출, 상기 제 1 캐리키추출부에 의한 캐리키의 추출 및 상기 캐리다운연산부에 의한 연산으로 이루어진 기본 압축 과정의 횟수를 카운트하는 제 1 횟수카운터;
상기 캐리포인트의 추출 및 이동을 연산하는 제 1 캐리포인트인식부;
상기 캐리포인트의 이동 주기를 카운트하는 제 1 주기카운터; 및
상기 캐리다운연산부에 의한 캐리 다운 이벤트의 연산 결과외의 변화가 없는 비트들을 그대로 붙이는 비캐리다운연산병합부를 포함하는, 이진데이터 압축 장치.
2. The image processing apparatus according to claim 1,
A first cluster extracting unit for extracting the binary cluster from the binary data;
A first carry key extracting unit for extracting the carry key causing the carry down event for the binary cluster extracted by the first cluster extracting unit;
A carry-down operation unit for performing an operation of subtracting the carry key extracted from the first carry key extracting unit from a binary number;
A first number counter for counting the number of basic compression processes including extraction of a binary cluster by the first cluster extraction unit, extraction of a carry key by the first carry key extraction unit, and calculation by the carry down calculation unit;
A first carry point recognizing unit for calculating extraction and movement of the carry point;
A first period counter for counting a moving period of the carry point; And
And a carry carry-down operation merging unit for attaching the bits without any change other than the calculation result of the carry-down event by the carry-down operation unit.
제 1 항에 있어서, 상기 압축연산부는,
상기 송신부에 의해 압축종료 직전의 캐리포인트 위치 데이터를 전달하기 위하여, 최종적으로 압축된 이진 데이터에서 압축종료 직전의 캐리포인트 보다 상위비트의 “1”을 모두 “0”으로 바꾸어 전달하는, 이진데이터 압축 장치.
2. The image processing apparatus according to claim 1,
In order to transfer the carry point position data immediately before the end of compression by the transmission unit, all the "1" s of higher order bits than the carry point immediately before the compression end are transferred from the finally compressed binary data to "0" Device.
제 1 항에 있어서, 상기 송신부는,
상기 압축연산부에 의해 최종적으로 압축된 이진수와 함께, 주기내 반복 횟수와 최종 주기내의 압축종료 직전의 반복 횟수에 대한 데이터들을 상기 목적 장치로 전달하는, 이진데이터 압축 장치.
2. The apparatus of claim 1,
And transmits the data on the number of repetitions in the cycle and the number of repetitions immediately before the end of compression in the final cycle to the destination device together with the binary number finally compressed by the compression calculation unit.
제 1 내지 제 4 항 중 어느 한 항에 기재된 이진데이터 압축 장치로부터 압축된 이진수의 데이터를 수신받아, 상기 압축된 이진수에서 뒷자리로부터 덧셈을 위하여 윗자리로 숫자를 올리는 캐리 업 이벤트(carry up event)가 발생할 수 있는 시작 비트인 캐리포인트(carry point)를 기준으로, 그 보다 상위비트에 위치하게 되는 10 및 캐리포인트 사이의 이진수로 이루어지는 바이너리 클러스터를 추출하고, 상기 바이너리 클러스터에 대해서 상기 캐리 업 이벤트를 일으키는 1로만 이루어지는 이진수 중에서, 최소 크기를 가진 이진수에 해당하는 캐리키를 추출하며, 상기 압축된 이진수에 상기 캐리키를 더하고, 상기 바이너리 클러스터의 추출, 상기 캐리키의 추출 및 상기 캐리키를 더하는 과정으로 이루어진 기본 압축해제 과정을 정해진 횟수만큼 반복적으로 수행하며, 상기 기본 압축해제 과정을 정해진 횟수만큼 반복적으로 수행하여 획득한 이진수에 대해서, 상기 캐리포인트를 앞자리로 이동함으로써 설정된 새로운 캐리포인트를 기준으로 상기 기본 압축해제 과정을 정해진 횟수만큼 반복적으로 수행하고, 상기 캐리포인트를 앞자리로 이동하는 과정을 정해진 주기만큼 수행함으로써 상기 캐리포인트 각각을 기준으로, 상기 기본 압축해제 과정을 정해진 횟수만큼 반복적으로 수행하는 압축해제연산부; 및
상기 압축해제연산부에 의해 압축이 해제된 이진수의 데이터를 출력하는 출력부를 포함하는, 이진데이터 압축해제 장치.
A carry up event for receiving compressed binary data from the binary data compression device according to any one of claims 1 to 4 and for incrementing the number from the back position to the top position in the compressed binary number Extracting a binary cluster consisting of a binary number between 10 and a carry point positioned at a higher bit with respect to a carry point which is a possible start bit, 1, extracting a carry key corresponding to a binary number having a minimum size, adding the carry key to the compressed binary number, extracting the binary cluster, extracting the carry key, and adding the carry key The basic decompression process is repeatedly performed a predetermined number of times Performing the basic decompression process repeatedly a predetermined number of times based on a new carry point set by moving the carry point to a previous position for a binary number obtained by repeatedly performing the basic decompression process a predetermined number of times, A decompression operation unit for repeatedly performing the basic decompression process by a predetermined number of times based on each of the carry points by performing the process of moving the carry point to a previous position by a predetermined period; And
And an output unit for outputting binary data decompressed by the decompression operation unit.
제 5 항에 있어서, 상기 압축된 이진수와 함께, 주기내 미리 정하여진 일정한 반복 횟수와 최종 주기내의 압축종료 직전의 반복 횟수에 대한 데이터들을 상기 압축해제연산부에 전달하는 수신부를 더 포함하는, 이진데이터 압축해제 장치.6. The apparatus of claim 5, further comprising a receiver for transmitting to the decompression computation unit data on a predetermined number of repetitions within a period and a repetition number immediately before the end of compression in the final period together with the compressed binary number, Decompression device. 제 5 항에 있어서, 상기 압축해제연산부는,
상기 압축된 이진수로부터 상기 바이너리 클러스터를 추출하는 제 2 클러스터추출부;
상기 제 2 클러스터추출부에 의해 추출된 바이너리 클러스터에 대해서 상기 캐리 업 이벤트를 일으키는 상기 캐리키를 추출하는 제 2 캐리키추출부;
상기 제 2 캐리키추출부로부터 추출된 캐리키를 이진수에 더하는 연산을 수행하는 캐리업연산부;
상기 제 2 클러스터추출부에 의한 바이너리 클러스터의 추출, 상기 제 2 캐리키추출부에 의한 캐리키의 추출 및 상기 캐리업연산부에 의한 연산으로 이루어진 기본 압축해제 과정의 횟수를 카운트하는 제 2 횟수카운터;
상기 캐리포인트의 추출 및 이동을 연산하는 제 2 캐리포인트인식부;
상기 캐리포인트의 이동 주기를 카운트하는 제 2 주기카운터; 및
상기 캐리업연산부에 의한 캐리 업 이벤트의 연산 결과외의 변화가 없는 비트들을 그대로 붙이는 비캐리업연산병합부를 포함하는, 이진데이터 압축해제 장치.
6. The information processing apparatus according to claim 5,
A second cluster extracting unit for extracting the binary cluster from the compressed binary number;
A second carry key extracting unit for extracting the carry key causing the carry-up event for the binary cluster extracted by the second cluster extracting unit;
A carry-up operation unit for performing an operation of adding a carry key extracted from the second carry key extracting unit to a binary number;
A second number counter for counting the number of basic decompression processes, which include extraction of a binary cluster by the second cluster extraction unit, extraction of a carry key by the second carry key extraction unit, and calculation by the carry-up operation unit;
A second carry point recognizing unit for calculating extraction and movement of the carry point;
A second period counter for counting a moving period of the carry point; And
And a non-carry-up operation merging unit for directly attaching bits having no change other than the operation result of the carry-up event by the carry-up operation unit.
제 5 항에 있어서, 상기 압축해제연산부는,
압축종료 직전의 캐리포인트 위치를 획득하기 위하여, 상기 압축된 이진수에서 최상위비트로부터 최하위비트로 이동하는 과정에서 최초로 만나는 “1”의 위치를 압축종료 직전의 캐리포인트 위치로 하고, 상기 “1”의 위치보다 상위비트의 “0”을 “1”로 바꾸는, 이진데이터 압축해제 장치.
6. The information processing apparatus according to claim 5,
In order to obtain the carry point position immediately before the end of compression, the position of the first encounter "1" in the process of shifting from the most significant bit to the least significant bit in the compressed binary number is set to the carry point position immediately before the end of compression, And &quot; 0 &quot; of a higher order bit to &quot; 1 &quot;.
이진데이터의 이진수에서 뒷자리로부터 뺄셈을 위하여 윗자리에서 숫자를 빌려오는 캐리 다운 이벤트(carry down event)가 발생하는 시작 비트인 캐리포인트(carry point)를 기준으로, 그 보다 상위비트에 위치하게 되는 10 및 캐리포인트 사이의 이진수로 이루어지는 바이너리 클러스터를 압축연산부에 의해 추출하는 단계;
상기 바이너리 클러스터에 대해서 상기 캐리 다운 이벤트를 일으키는 1로만 이루어지는 이진수 중에서, 최소 크기를 가진 이진수에 해당하는 캐리키를 상기 압축연산부에 의해 추출하는 단계;
상기 압축연산부에 의해 상기 이진데이터의 이진수로부터 상기 캐리키를 빼는 단계;
상기 압축연산부에 의해 상기 바이너리 클러스터의 추출 단계, 상기 캐리키의 추출 단계 및 상기 캐리키를 빼는 단계로 이루어진 기본 압축 단계를 정해진 횟수만큼 반복적으로 수행하는 단계;
상기 압축연산부에 의해 상기 기본 압축 단계를 정해진 횟수만큼 반복적으로 수행하여 획득한 이진수에 대해서, 상기 캐리포인트를 앞자리로 이동함으로써 설정된 새로운 캐리포인트를 기준으로 상기 기본 압축 단계를 정해진 횟수만큼 반복적으로 수행하는 단계; 및
상기 압축연산부에 의해 상기 캐리포인트를 앞자리로 이동하는 과정을 상기 캐리 다운 이벤트가 처음으로 발생하지 않을 때까지 수행함으로써, 상기 캐리포인트 각각을 기준으로 상기 기본 압축 단계를 반복적으로 수행하는 단계를 포함하는, 이진데이터 압축 방법.
10, which is located at a higher bit with respect to a carry point which is a start bit at which a carry down event that borrows a digit from the upper position for subtraction from the binary digit of the binary data occurs, Extracting binary clusters composed of binary numbers between carry points by a compression calculation unit;
Extracting, by the compression operation unit, a carry key corresponding to a binary number having a minimum size out of binary numbers consisting of only 1 that causes the carry-down event for the binary cluster;
Subtracting the carry key from the binary number of the binary data by the compression operation unit;
Performing a basic compression step including a step of extracting the binary cluster, a step of extracting the carry key, and a step of subtracting the carry key by the compression operation unit by a predetermined number of times;
The basic compression step is repeatedly performed by a predetermined number of times based on a new carry point set by shifting the carry point to a previous position for a binary number obtained by repeating the basic compression step by a predetermined number of times by the compression operation unit step; And
Performing the basic compression step repeatedly based on each of the carry points by performing the process of moving the carry point to the previous position by the compression operation unit until the carry down event does not occur for the first time , A method of binary data compression.
제 9 항에 있어서, 상기 송신부에 의해 압축종료 직전의 캐리포인트 위치 데이터를 전달하기 위하여, 상기 압축연산부에 의하여 최종적으로 압축된 이진 데이터에서 압축종료 직전의 캐리포인트 보다 상위비트의 “1”을 모두 “0”으로 바꾸어 전달하는 단계를 더 포함하는, 이진데이터 압축 방법.10. The data compression method according to claim 9, wherein in order to transmit the carry point position data immediately before the end of compression by the transmission unit, all of the upper bits &quot; 1 &quot;Quot; 0 &quot; and transmitting the binary data. 제 9 항에 있어서, 상기 단계를 모두 마침으로써 획득되는 압축된 이진수와 함께, 주기내 미리 정하여진 일정한 반복 횟수와 최종 주기내의 압축 종료 직전의 반복 횟수에 대한 데이터들을 송신부에 의해 목적 장치로 전달하는 단계를 더 포함하는, 이진데이터 압축 방법.10. The method according to claim 9, wherein the transmitter transmits a predetermined number of repetitions within the period and a repetition number immediately before the end of compression in the final period, together with the compressed binary number obtained by finishing all the steps, to the destination apparatus &Lt; / RTI &gt; further comprising the steps of: 제 9 항 내지 제 11 항 중 어느 한 항에 기재된 이진데이터 압축 방법에 의해 압축된 이진수의 데이터를 수신받아, 상기 압축된 이진수에서 뒷자리로부터 덧셈을 위하여 윗자리로 숫자를 올리는 캐리 업 이벤트(carry up event)가 발생할 수 있는 시작 비트인 캐리포인트(carry point)를 기준으로, 그 보다 상위비트에 위치하게 되는 10 및 캐리포인트 사이의 이진수로 이루어지는 바이너리 클러스터를 압축해제연산부에 의해 추출하는 단계;
상기 바이너리 클러스터에 대해서 상기 캐리 업 이벤트를 일으키는 1로만 이루어지는 이진수 중에서, 최소 크기를 가진 이진수에 해당하는 캐리키를 상기 압축해제연산부에 의해 추출하는 단계;
상기 압축해제연산부에 의해 상기 압축된 이진수에 상기 캐리키를 더하는 단계;
상기 압축해제연산부에 의해 상기 바이너리 클러스터의 추출 단계, 상기 캐리키의 추출 단계 및 상기 캐리키를 더하는 단계로 이루어진 기본 압축해제 단계를 정해진 횟수만큼 반복적으로 수행하는 단계;
상기 압축해제연산부에 의해 상기 기본 압축해제 단계를 정해진 횟수만큼 반복적으로 수행하여 획득한 이진수에 대해서, 상기 캐리포인트를 앞자리로 이동함으로써 설정된 새로운 캐리포인트를 기준으로 상기 기본 압축해제 단계를 정해진 횟수만큼 반복적으로 수행하는 단계; 및
상기 압축해제연산부에 의해 상기 캐리포인트를 앞자리로 이동하는 과정을 정해진 주기만큼 수행함으로써 상기 캐리포인트 각각을 기준으로, 상기 기본 압축해제 단계를 정해진 횟수만큼 반복적으로 수행하는 단계를 포함하는, 이진데이터 압축해제 방법.
A method for compressing binary data by a binary data compression method according to any one of claims 9 to 11, the method comprising: receiving a carry-up event for incrementing a digit from a back position to an upper position in a compressed binary number Extracting, by a decompression operation unit, binary clusters each consisting of a binary number between 10 and a carry point located at higher order bits based on a carry point which is a start bit that can be generated by the decompression operation unit;
Extracting, by the decompression computation unit, a carry key corresponding to a binary number having a minimum size out of binary numbers consisting of only 1 that causes the carry-up event for the binary cluster;
Adding the carry key to the compressed binary number by the decompression operation unit;
Performing a basic decompression step including a step of extracting the binary cluster, a step of extracting the carry key, and a step of adding the carry key by the decompression operation unit by a predetermined number of times;
The basic decompression step is repeatedly performed for a predetermined number of times by the decompression operation unit, and the basic decompression step is repeatedly performed a predetermined number of times based on the new carry point set by moving the carry point to the previous position ; And
And performing the basic decompression step by a predetermined number of times based on each of the carry points by performing the process of moving the carry point to the previous position by the decompression operation unit by a predetermined period. How to release.
제 12 항에 있어서, 압축종료 직전의 캐리포인트 위치를 획득하기 위하여, 상기 압축해제연산부에 의해, 상기 압축된 이진수에서 최상위비트로부터 최하위비트로 이동하는 과정에서 최초로 만나는 “1”의 위치를 압축종료 직전의 캐리포인트 위치로 하고, 상기 “1”의 위치보다 상위비트의 “0”을 “1”로 바꾸는 단계를 더 포함하는, 이진데이터 압축해제 방법.13. The method according to claim 12, wherein, in order to obtain the carry point position immediately before the end of compression, the position of "1" which is first encountered in the process of moving from the most significant bit to the least significant bit in the compressed binary number, And changing the &quot; 0 &quot; of higher order bits to a position of &quot; 1 &quot; than the position of the &quot; 1 &quot;. 제 12 항에 있어서, 상기 압축된 이진수와 함께, 주기내 미리 정하여진 일정한 반복 횟수와 최종 주기내의 압축종료 직전의 반복 횟수에 대한 데이터들을 수신부가 상기 압축해제연산부에 전달하는 단계를 더 포함하는, 이진데이터 압축해제 방법.13. The method of claim 12, further comprising transmitting, by the receiving unit, the decompression calculation unit, with the compressed binary number, a predetermined number of repetitions within a period and a repetition number immediately before the end of compression in the final period. How to decompress binary data.
KR1020130059739A 2013-05-27 2013-05-27 Binary data compression and decompression apparatus and method KR101468307B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020130059739A KR101468307B1 (en) 2013-05-27 2013-05-27 Binary data compression and decompression apparatus and method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130059739A KR101468307B1 (en) 2013-05-27 2013-05-27 Binary data compression and decompression apparatus and method

Publications (1)

Publication Number Publication Date
KR101468307B1 true KR101468307B1 (en) 2014-12-02

Family

ID=52677333

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130059739A KR101468307B1 (en) 2013-05-27 2013-05-27 Binary data compression and decompression apparatus and method

Country Status (1)

Country Link
KR (1) KR101468307B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101603866B1 (en) 2015-01-28 2016-03-17 김정훈 Method of data compressing, method of data recovering, and the apparatuses thereof

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20010106554A (en) * 2000-05-22 2001-12-07 정진영 RFcard system for Arcade game saved charactor grade level and progress level and apply for machine comparability
KR20030096504A (en) * 2002-06-12 2003-12-31 한국과학기술원 method and apparatus for multi-symbol data compression using a binary arithmetic coder
KR20120103654A (en) * 2010-01-25 2012-09-19 고려대학교 산학협력단 Data compression/decompression device and method

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20010106554A (en) * 2000-05-22 2001-12-07 정진영 RFcard system for Arcade game saved charactor grade level and progress level and apply for machine comparability
KR20030096504A (en) * 2002-06-12 2003-12-31 한국과학기술원 method and apparatus for multi-symbol data compression using a binary arithmetic coder
KR20120103654A (en) * 2010-01-25 2012-09-19 고려대학교 산학협력단 Data compression/decompression device and method

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101603866B1 (en) 2015-01-28 2016-03-17 김정훈 Method of data compressing, method of data recovering, and the apparatuses thereof

Similar Documents

Publication Publication Date Title
CN100553152C (en) Coding method and equipment and coding/decoding method and equipment based on CABAC
US10003356B2 (en) Devices and methods of source-encoding and decoding of data
CN103458460A (en) Method and device for compressing and decompressing signal data
US7907068B2 (en) FIFO radix coder for electrical computers and digital data processing systems
US7671767B2 (en) LIFO radix coder for electrical computers and digital data processing systems
RU2765886C1 (en) Encoding and decoding of spectral peak positions
KR101467684B1 (en) Binary data compression and decompression apparatus and method thereof
CN104040899A (en) Generating a code alphabet of symbols to generate codewords for words used with a program
CN103581684A (en) Compression encoding and decoding method and apparatus
CN111510152A (en) Compression and decompression method for acoustic logging data
CN104156990A (en) Lossless compressed encoding method and system supporting oversize data window
KR102068383B1 (en) Entropy modifier and method
KR101468307B1 (en) Binary data compression and decompression apparatus and method
KR101023536B1 (en) Lossless data compression method
KR101318574B1 (en) Data compression device, data compression method, and computer readable recording medium
CN103746701A (en) Rapid encoding option selecting method applied to Rice lossless data compression
KR101549740B1 (en) Binary data compression and decompression method and apparatus
CN102388538A (en) Method and device for encoding an input bit sequence and corresponding decoding method and device
US8754791B1 (en) Entropy modifier and method
WO2017071826A1 (en) Encoders, decoders and methods
KR101733299B1 (en) Binary data real time compression and decompression method
KR101700537B1 (en) Binary data compression and decompression method
CN110618960A (en) Data step compression transmission method and device and electronic equipment for implementing same
KR101573983B1 (en) Method of data compressing, method of data recovering, and the apparatuses thereof
KR101857385B1 (en) Method and Apparatus for checking error of Lempel-Ziv 77 lossless compressed data

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: 20180828

Year of fee payment: 4

R401 Registration of restoration
FPAY Annual fee payment

Payment date: 20191127

Year of fee payment: 6