KR101468307B1 - Binary data compression and decompression apparatus and method - Google Patents
Binary data compression and decompression apparatus and method Download PDFInfo
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion 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/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/60—General implementation details not specific to a particular type of compression
- H03M7/6017—Methods or arrangements to increase the throughput
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion 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/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/60—General implementation details not specific to a particular type of compression
- H03M7/6011—Encoder aspects
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/04—Protocols 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
Description
본 발명은 이진데이터 압축 및 압축해제 장치와 방법에 관한 것으로서, 보다 상세하게는 이진수로 이루어진 데이터의 압축 및 압축해제 효율이 우수한 이진데이터 압축 및 압축해제 장치와 방법에 관한 것이다.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
압축연산부(120)는 이진데이터의 이진수에서 뒷자리로부터 뺄셈을 위하여 윗자리에서 숫자를 빌려오는 캐리 다운 이벤트(carry down event)가 발생하는 시작 비트인 캐리포인트(carry point)를 기준으로, 그 보다 상위비트에 위치하게 되는 10 및 캐리포인트 사이의 이진수로 이루어지는 바이너리 클러스터를 추출하고, 바이너리 클러스터에 대해서 캐리 다운 이벤트를 일으키는 1로만 이루어지는 이진수 중에서, 최소 크기를 가진 이진수에 해당하는 캐리키를 추출하며, 이진데이터의 이진수로부터 캐리키를 빼고, 바이너리 클러스터의 추출, 캐리키의 추출 및 캐리키를 빼는 과정으로 이루어진 기본 압축 과정을 정해진 횟수만큼 반복적으로 수행하며, 기본 압축 과정을 정해진 횟수만큼 반복적으로 수행하여 획득한 이진수에 대해서, 캐리포인트를 앞자리로 이동함으로써 설정된 새로운 캐리포인트를 기준으로 기본 압축 과정을 정해진 횟수만큼 반복적으로 수행하고, 캐리포인트를 앞자리로 이동하는 과정을 캐리 다운 이벤트가 처음으로 발생하지 않을 때까지 수행함으로써, 캐리포인트 각각을 기준으로 기본 압축 과정을 반복적으로 수행한다. The
압축연산부(120)는 정해진 횟수를 1주기로 하여 정해진 주기 동안 상기한 바와 같은 이진데이터에 대한 압축 과정을 수행할 수 있으며, 나아가서, 이러한 압축 과정이 캐리 다운 이벤트가 처음으로 발생할 수 없는 상태를 만났을 때 종료하도록 설정될 수 있다. The
압축연산부(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
또한 압축연산부(120)는 송신부(130)에 의해 압축종료 직전의 캐리포인트 위치 데이터를 전달하기 위하여, 최종적으로 압축된 이진 데이터에서 압축종료 직전의 캐리포인트 보다 상위비트의 “1”을 모두 “0”으로 바꾸어 전달할 수 있다.Also, in order to transmit the carry point position data immediately before the end of compression by the
압축연산부(120)는 압축에 따른 제어를 위하여 제어부(미도시)를 더 포함할 수 있고, 나아가서 구동에 필요한 프로그램이나 데이터의 저장을 위하여 제 1 메모리부(127)를 더 포함할 수 있다. The
송신부(130)는 압축연산부(120)에 의해 압축을 마친 이진수에 대한 데이터를 목적 장치, 예컨대 이진데이터 압축해제 장치(200)이거나, 그 밖에 압축된 이진데이터를 필요로 하는 프로세스 장치나 메모리 장치 등으로 송신한다. 여기서, 송신부(130)는 목적 장치의 통신 방법에 따라, 와이어나 케이블 등으로 이루어져서 유선으로 신호를 송신하거나, 블루투스, 와이파이, 3G, LTE 등의 통신모듈로 이루어져서 무선으로 신호를 송신할 수도 있다.The
송신부(130)는 압축연산부(120)에 의해 최종적으로 압축된 이진수와 함께, 주기내 반복 횟수, 즉 캐리 포인트 각각에서의 주어진 뺄셈횟수, 최종 주기를 제외한 주기내의 반복 횟수, 최종 주기내의 압축종료 직전의 반복 횟수, 원본 이진데이터의 비트수나 바이트수, 압축종료 직전의 캐리포인트 위치 등에 대한 데이터들을 목적 장치로 전달할 수 있다.The
한편, 본 발명에 따른 이진데이터 압축 장치(100)는 외부 장치(1), 예컨대 별도의 프로세스 장치나 메모리 장치로부터 이진데이터를 수신받기 위하여, 유선 또는 무선 통신을 위한 와이어, 케이블 또는 통신모듈 등으로 이루어지는 수신부(110)를 더 포함할 수 있다. 여기서, 외부 장치(1)는 이진데이터 압축 장치(100)와 구별되는 장치를 의미하는 것으로서, 이진데이터 압축 장치(100)와 함께 단일의 장치로 이루어지거나, 이진데이터 압축 장치(100)와 별개로 이루어질 수 있다.Meanwhile, the binary
도 1에 도시된 바와 같이, 본 발명에 따른 이진데이터 압축해제 장치(200)는 상기한 본 발명에 따른 이진데이터 압축 장치(100)에 의해 송신되는 압축된 이진수의 데이터로부터 압축을 해제하여 원본의 이진데이터를 추출하는 장치로서, 압축해제연산부(220)와 출력부(230)를 포함할 수 있다.As shown in FIG. 1, the binary
압축해제연산부(220)는 이진데이터 압축 장치(100)로부터 압축된 이진수의 데이터를 수신받아, 압축된 이진수에서 뒷자리로부터 덧셈을 위하여 윗자리로 숫자를 올리는 캐리 업 이벤트(carry up event)가 발생할 수 있는 시작 비트인 캐리포인트(carry point)를 기준으로, 그 보다 상위비트에 위치하게 되는 10 및 캐리포인트 사이의 이진수로 이루어지는 바이너리 클러스터를 추출하고, 바이너리 클러스터에 대해서 캐리 업 이벤트를 일으키는 1로만 이루어지는 이진수 중에서, 최소 크기를 가진 이진수에 해당하는 캐리키를 추출하며, 압축된 이진수에 캐리키를 더하고, 바이너리 클러스터의 추출, 캐리키의 추출 및 캐리키를 더하는 과정으로 이루어진 기본 압축해제 과정을 정해진 횟수만큼 반복적으로 수행하며, 기본 압축해제 과정을 정해진 횟수만큼 반복적으로 수행하여 획득한 이진수에 대해서, 캐리포인트를 앞자리로 이동함으로써 설정된 새로운 캐리포인트를 기준으로 기본 압축해제 과정을 정해진 횟수만큼 반복적으로 수행하고, 캐리포인트를 앞자리로 이동하는 과정을 정해진 주기만큼 수행함으로써, 예컨대 압축이 종료될 당시의 최종적 캐리포인트 위치까지, 캐리포인트 각각을 기준으로, 기본 압축해제 과정을 정해진 횟수만큼 반복적으로 수행한다. 여기서, 정해진 횟수는 최초 주기부터 최종 주기 직전의 주기에서 1주기를 이루는 횟수일 수 있고, 최종 주기에서는 상기한 압축 과정의 최종 주기에서 캐리 다운 이벤트가 최초로 발생되지 않은 상태까지의 횟수일 수 있다.The
압축해제연산부(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
또한 압축해제연산부(220)는 압축종료 직전의 캐리포인트 위치를 획득하기 위하여, 압축된 이진수에서 최상위비트로부터 최하위비트로 이동하는 과정에서 최초로 만나는 “1”의 위치를 압축종료 직전의 캐리포인트 위치로 하고, 상기 “1”의 위치보다 상위비트의 “0”을 “1”로 바꿀 수 있다.Also, in order to acquire the carry point position immediately before the end of compression, the decompression
출력부(230)는 압축해제연산부(220)에 의해 압축이 해제된 이진수의 데이터를 제 2 메모리부(227)나 별도의 메모리 장치 또는 프로세스 장치 등으로 출력한다. 여기서 출력부(230)는 데이터를 출력하기 위하여, 와이어나 케이블 또는 무선통신모듈 등으로 이루어질 수 있다. The
본 발명에 따른 이진데이터 압축해제 장치(200)는 이진데이터 압축 장치(100)의 송신부(130)로부터 압축된 이진수에 대한 데이터를 유선 또는 무선으로 수신받기 위하여, 와이어나 케이블 또는 무선통신모듈 등으로 이루어지는 수신부(210)를 더 포함할 수 있다. 여기서 수신부(210)는 압축된 이진수와 함께, 주기내 미리 정하여진 일정한 반복 횟수, 즉 캐리 포인트 각각에서의 주어진 뺄셈횟수, 최종 주기를 제외한 주기내의 반복 횟수, 최종 주기내의 압축종료 직전의 반복 횟수, 원본 이진데이터의 비트수나 바이트수, 압축종료 직전의 캐리포인트 위치 등에 대한 데이터들을 압축해제연산부(220)에 전달할 수 있다.The binary
한편, 상기한 바이너리 클러스터, 캐리키, 캐리 다운 이벤트, 캐리 업 이벤트, 캐리포인트 등을 보다 자세히 설명하기로 하며, 이는 후술하게 될 이진데이터 압축 방법과 이진데이터 압축해제 방법 모두 적용될 수 있다.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
이진수 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
예를 들어, 아래의 표 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.
이후 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
그런데 이 두 경우를 비교해 보면, 첫 번째의 경우 숫자의 변화가 생긴 비트의 수는 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.
또한 주기는 정해진 횟수, 즉 캐리 업 이벤트나 캐리 다운 이벤트를 다수로 수행할 수 있으며, 캐리포인트의 이동 횟수와 동일한 수로 이루어질 수 있다. 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
또한 압축연산부(120)에 의해 캐리포인트를 앞자리로 이동하는 과정(16) 이후 주기수를 증가함과 아울러 저장하는 단계(S17)를 수행할 수 있다.In addition, the
또한 송신부(130)에 의해 압축종료 직전의 캐리포인트 위치 데이터를 전달하기 위하여, 압축연산부(120)에 의하여 최종적으로 압축된 이진 데이터에서 압축종료 직전의 캐리포인트 보다 상위비트의 “1”을 모두 “0”으로 바꾸어 전달하는 단계를 수행할 수 있다.Further, in order to transmit the carry point position data immediately before the end of compression by the
한편, 상기한 단계(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
도 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
또한 압축종료 직전의 캐리포인트 위치를 획득하기 위하여, 압축해제연산부(220)에 의해, 압축된 이진수에서 최상위비트로부터 최하위비트로 이동하는 과정에서 최초로 만나는 “1”의 위치를 압축종료 직전의 캐리포인트 위치로 하고, 상기 “1”의 위치보다 상위비트의 “0”을 “1”로 바꾸는 단계를 수행할 수 있다.In order to obtain the carry point position immediately before the end of compression, the decompression
한편, 압축된 이진수와 함께, 주기내 반복 횟수, 즉 캐리 포인트 각각에서의 주어진 뺄셈횟수, 주기내 미리 정하여진 일정한 반복 횟수, 최종 주기내의 압축종료 직전의 반복 횟수, 원본 이진데이터의 비트수나 바이트수, 압축종료 직전의 캐리포인트 위치 등에 대한 데이터들을 수신부(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
본 발명에 따른 이진데이터 압축 방법과 이진데이터 압축해제 방법을 예로 들어 설명하기로 한다. 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.
7Carry point
7
6Carry point
6
5Carry point
5
4Carry point
4
3Carry point
3
2Carry point
2
1Carry point
One
이렇게 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 >
7Carry point
7
6Carry point
6
5Carry point
5
4Carry point
4
3Carry point
3
2Carry point
2
1Carry point
One
다시 4회의 반복 횟수가 끝나면, 아래의 표 6에서와 같이, 캐리포인트를 캐리포인트 2로 이동하여, 3번째 주기를 수행함으로써 캐리포인트 2에서의 가장 가까운 바이너리 클러스터를 기준으로 다시 4회를 실시한다.When the repetition number of four times is completed again, the carry point is shifted to carry
7Carry point
7
6Carry point
6
5Carry point
5
4Carry point
4
3Carry point
3
2Carry point
2
1Carry point
One
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.
7Carry point
7
6Carry point
6
5Carry point
5
4Carry point
4
3Carry point
3
2Carry point
2
1Carry point
One
이러한 방식으로, 아래의 표 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.
7Carry point
7
6Carry point
6
5Carry point
5
4Carry point
4
3Carry point
3
2Carry point
2
1Carry point
One
압축종료와 관련하여, 표 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
압축해제 과정은 앞의 예와 같이 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.
7Carry point
7
6Carry point
6
5Carry point
5
4Carry point
4
3Carry point
3
2Carry point
2
1Carry point
One
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.
7Carry point
7
6Carry point
6
5Carry point
5
4Carry point
4
3Carry point
3
2Carry point
2
1Carry point
One
상기에서 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.
7Carry point
7
6Carry point
6
5Carry point
5
4Carry point
4
3Carry point
3
2Carry point
2
1Carry point
One
다시 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.
7Carry point
7
6Carry point
6
5Carry point
5
4Carry point
4
3Carry point
3
2Carry point
2
1Carry point
One
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.
7Carry point
7
6Carry point
6
5Carry point
5
4Carry point
4
3Carry point
3
2Carry point
2
1Carry point
One
한편, 주기내 일정한 반복횟수의 결정은 사용자가 적절하게 이진데이터의 크기를 고려하여 지정할수 있다. 주기내 일정한 반복횟수가 커질수록 압축의 효율이늘어나게 된다. 최적의 주기내 일정한 반복횟수를 찾는 방법은 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)
상기 압축연산부에 의해 압축을 마친 이진수에 대한 데이터를 목적 장치로 송신하는 송신부를 포함하는, 이진데이터 압축 장치.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 주기카운터; 및
상기 캐리다운연산부에 의한 캐리 다운 이벤트의 연산 결과외의 변화가 없는 비트들을 그대로 붙이는 비캐리다운연산병합부를 포함하는, 이진데이터 압축 장치.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”을 모두 “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.
상기 압축연산부에 의해 최종적으로 압축된 이진수와 함께, 주기내 반복 횟수와 최종 주기내의 압축종료 직전의 반복 횟수에 대한 데이터들을 상기 목적 장치로 전달하는, 이진데이터 압축 장치.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.
상기 압축해제연산부에 의해 압축이 해제된 이진수의 데이터를 출력하는 출력부를 포함하는, 이진데이터 압축해제 장치.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.
상기 압축된 이진수로부터 상기 바이너리 클러스터를 추출하는 제 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.
압축종료 직전의 캐리포인트 위치를 획득하기 위하여, 상기 압축된 이진수에서 최상위비트로부터 최하위비트로 이동하는 과정에서 최초로 만나는 “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 " 0 " of a higher order bit to " 1 ".
상기 바이너리 클러스터에 대해서 상기 캐리 다운 이벤트를 일으키는 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.
상기 바이너리 클러스터에 대해서 상기 캐리 업 이벤트를 일으키는 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.
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)
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)
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 |
-
2013
- 2013-05-27 KR KR1020130059739A patent/KR101468307B1/en active IP Right Grant
Patent Citations (3)
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)
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 | |
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 | |
KR20160063581A (en) | Binary data compression and decompression apparatus and method thereof |
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 |