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

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

Info

Publication number
KR20180068157A
KR20180068157A KR1020160169812A KR20160169812A KR20180068157A KR 20180068157 A KR20180068157 A KR 20180068157A KR 1020160169812 A KR1020160169812 A KR 1020160169812A KR 20160169812 A KR20160169812 A KR 20160169812A KR 20180068157 A KR20180068157 A KR 20180068157A
Authority
KR
South Korea
Prior art keywords
block
compression
bits
inner group
predetermined
Prior art date
Application number
KR1020160169812A
Other languages
English (en)
Inventor
현은희
이제원
정준영
허남호
Original Assignee
한국전자통신연구원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국전자통신연구원 filed Critical 한국전자통신연구원
Priority to KR1020160169812A priority Critical patent/KR20180068157A/ko
Publication of KR20180068157A publication Critical patent/KR20180068157A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/60General implementation details not specific to a particular type of compression
    • H03M7/6064Selection of Compressor
    • H03M7/6082Selection strategies
    • 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/3084Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction using adaptive string matching, e.g. the Lempel-Ziv method
    • H03M7/3091Data deduplication
    • H03M7/3095Data deduplication using variable length segments
    • 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
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0057Block codes

Landscapes

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

Abstract

압축 및 전송 효율을 높인 데이터 압축 기술이 개시된다. 이를 위해, 본 발명의 일 실시예에 따른 데이터 압축 방법은 전달신호에 대한 샘플링을 통해 획득한 데이터 샘플들을 소정 개수 단위로 블록으로 지정하여 복수개의 블록을 생성하는 단계; 복수개의 블록의 각 블록을 구성하는 데이터 샘플들의 유효 비트수를 산출하여 블록별 최대 유효 비트수를 확인하는 단계; 블록별 최대 유효 비트수를 기초로 각 블록의 블록 타입을 결정하는 단계; 및 블록 타입 별로 서로 다른 압축 방법을 각 블록에 적용하여 압축 데이터를 생성하는 단계를 포함하는 것을 특징으로 한다.

Description

데이터 압축 장치 및 방법{APPARATUS AND METHOD FOR COMPRESSING DATA}
본 발명은 데이터 압축 장치 및 방법에 관한 것으로, 특히 본 발명은 압축 및 전송 효율을 높인 데이터 압축 장치 및 방법에 관한 것이다.
종래 기술에 따르면 RF 신호 전송 구간에서 I/Q데이터의 압축은 송수신 구간에 적용되는 전송 프로토콜에 따른 단위 프레임들의 집합이나 샘플링 단계를 거쳐 생성되는 I/Q 데이터 샘플들의 집합 단위로 실행 된다. 대부분의 경우 일정한 개수(예: 16개 혹은 32개 등)의 단위 프레임이나 샘플들이 모여 하나의 집합을 이루고 각 집합에 대해 동일한 규칙의 압축 방식을 적용하는 형태로 수행된다. 즉 이러한 단위 프레임이나 샘플들의 집합이 압축 단위로 동작하게 된다. 이하 샘플링 과정을 거처 생성되는 I/Q 데이터 샘플들을 대상으로 설명한다.
하나의 압축 단위에 포함된 샘플들은 특정 비트열(예: 16비트 등)로 전송 신호를 표현하게 되며 그 값은 특정 규칙이 없이 해당 비트열로 표시 가능한 랜덤한 값이 된다. 즉 하나의 압축 단위에 포함된 각 샘플을 구성하는 비트열을 분석해보면, 유의미한 데이터가 포함된 비트의 개수가 서로 상이한 형태로 무작위하게 포함되어 있음을 알 수 있다. 실시예와 같이 하나의 샘플이 16비트로 구성되고 하나의 압축 단위가 32개의 샘플로 구성된다고 가정하면 하나의 압축 단위 내에 도 1에서 와 같이 총 14종류의 샘플들이 랜덤하게 섞이거나 반복되어 나타나게 된다. 도 1은 하나의 압축 단위에 포함 될 수 있는 16비트의 샘플 종류를 보인다. 샘플별 유효비트수(Sv)(101)는 각 샘플이 포함하고 있는 신호 정보의 유효 비트수로 값이 2이면 샘플링된 신호 정보가 부호 비트를 포함하여 2비트로 표시됨을 의미하고 16이면 부호 비트를 포함한 16비트로 표현됨을 의미한다. 신호정보를 나타내는 값이 저장된 유효 비트인 102는 각 샘플이 저장하고 있는 값을 표현하기 위해 필요한 유효 비트를 의미하며, 103은 각 샘플의 값에 영향을 주지 않는 더미비트로 부호비트의 확장값을 가진다. 예를 들어 101값이 10 인 경우 b9비트가 부호비트이고 b0비트에서 b8비트에 신호정보가 담겨 있음을 의미한다.
상기된 바와 같이 압축단위 별로 하나의 기준을 가지는 압축 방식을 적용하게 되면 해당 압축 방식이 최적으로 적용되는 샘플이 있는 반면 효율이 떨어지거나 추가적인 압축 여지가 있는 부분들이 남게 되는 문제가 있다. 그렇다고 모든 더미 비트를 제외하고 전송하기 위해 각 샘플별로 서로 다른 압축 방식을 적용하는 것은 해당 신호를 수신한 수신단에서 신호 복원을 할 때 필요한 부가 정보들이 많아지게 되고 이러한 부가 정보들이 압축 효율을 떨어뜨릴 수 있기 때문에 대부분의 경우 압축 단위 별로 압축기준을 적용하는 형태로 실현된다.
관련하여 한국등록특허 제0331351호는 '이진 입력 데이터 스트림 압축 방법'을 개시한다.
본 발명의 목적은 압축 효율을 향상시켜 전송 효율을 높일 수 있는 데이터 압축 기술을 제공하는 것이다. 그리고, 본 발명은 제한 대역을 사용하여 전달되는 RF 신호의 전송 효율을 높이는 것을 목적으로 한다.
또한, 본 발명은 블록 별로 또는 블록 내 샘플의 그룹별로 서로 다른 압축기준을 적용함으로써 샘플 별로 의미없는 비트를 가능한 한 제거하여 의미 있는 비트를 모두 전달하는 무손실 압축이 가능하며, 손실을 감안하는 유손실 압축에도 동일한 규칙을 적용하는 것을 목적으로 한다.
또한, 본 발명은 손실을 감안한 압축 시 각 샘플별로 서로 다른 압축 윈도우를 적용하여 유효 비트 수를 기준으로 LSB의 제거에 의한 손실을 최소화 하는 것을 목적으로 한다.
상기한 목적을 달성하기 위한 본 발명의 일 실시예에 따른 데이터 압축 방법은 전달신호에 대한 샘플링을 통해 획득한 데이터 샘플들을 소정 개수 단위로 블록으로 지정하여 복수개의 블록을 생성하는 단계; 상기 복수개의 블록의 각 블록을 구성하는 데이터 샘플들의 유효 비트수를 산출하여 블록별 최대 유효 비트수를 확인하는 단계; 상기 블록별 최대 유효 비트수를 기초로 상기 각 블록의 블록 타입을 결정하는 단계; 및 상기 블록 타입 별로 서로 다른 압축 방법을 상기 각 블록에 적용하여 압축 데이터를 생성하는 단계를 포함한다.
이 때, 상기 블록 타입을 결정하는 단계에서는, 상기 각 블록의 상기 블록 타입에 대한 블록 부가 정보를 상기 각 블록에 매칭시켜 저장할 수 있다.
이 때, 상기 각 블록을 구성하는 데이터 샘플들을 최대 유효 비트수를 기초로 상기 각 블록 내에서의 적어도 하나의 내부 그룹으로 나누는 단계; 및 상기 내부 그룹 별로 서로 다른 압축 윈도우를 상기 내부 그룹에 적용하는 단계를 더 포함할 수 있다.
이 때, 상기 적어도 하나의 내부 그룹으로 나누는 단계에서는, 상기 적어도 하나의 내부 그룹 각각에 대하여 적용될 서로 다른 압축 윈도우에 대한 샘플별 부가 정보를 각 내부 그룹에 매칭시켜 저장할 수 있다.
이 때, 상기 서로 다른 압축 윈도우를 상기 내부 그룹에 적용하는 단계에서는, 기 설정된 무손실 압축 조건 또는 기 설정된 손실 압축 조건에 따라 소정의 내부 그룹에 적용하는 압축 윈도우를 달리할 수 있다.
이 때, 상기 서로 다른 압축 윈도우를 상기 내부 그룹에 적용하는 단계에서, 상기 기 설정된 손실 압축 조건에 따르는 경우, 상기 소정의 내부 그룹에 포함된 데이터 샘플의 소정의 유효 비트를 제거 후 나머지 유효 비트에 압축 윈도우를 적용할 수 있다.
이 때, 상기 적어도 하나의 내부 그룹으로 나누는 단계에서는, 전체 시스템의 압축률을 고려하여 내부 그룹의 수를 조정 및 결정할 수 있다.
그리고, 상기한 목적을 달성하기 위한 본 발명의 일 실시예에 따른 데이터 압축 방법은 전달신호에 대한 샘플링을 통해 획득한 데이터 샘플들을 소정 개수 단위로 블록으로 지정하여 복수개의 블록을 생성하는 단계; 상기 각 블록을 구성하는 데이터 샘플들을 최대 유효 비트수를 기초로 상기 각 블록 내에서의 적어도 하나의 내부 그룹으로 나누는 단계; 및 상기 내부 그룹 별로 서로 다른 압축 윈도우를 상기 내부 그룹에 적용하는 단계를 포함할 수 있다.
이 때, 상기 적어도 하나의 내부 그룹으로 나누는 단계에서는, 상기 적어도 하나의 내부 그룹 각각에 대하여 적용될 서로 다른 압축 윈도우에 대한 샘플별 부가 정보를 각 내부 그룹에 매칭시켜 저장할 수 있다.
이 때, 상기 서로 다른 압축 윈도우를 상기 내부 그룹에 적용하는 단계에서는, 기 설정된 무손실 압축 조건 또는 기 설정된 손실 압축 조건에 따라 소정의 내부 그룹에 적용하는 압축 윈도우를 달리할 수 있다.
이 때, 상기 서로 다른 압축 윈도우를 상기 내부 그룹에 적용하는 단계에서, 상기 기 설정된 손실 압축 조건에 따르는 경우, 상기 소정의 내부 그룹에 포함된 데이터 샘플의 소정의 유효 비트를 제거 후 나머지 유효 비트에 압축 윈도우를 적용할 수 있다.
또한, 상기한 목적을 달성하기 위한 본 발명의 일 실시예에 따른 데이터 압축 장치는 전달신호에 대한 샘플링을 통해 획득한 데이터 샘플들을 소정 개수 단위로 블록으로 지정하여 복수개의 블록을 생성하는 블록 생성부; 상기 복수개의 블록의 각 블록을 구성하는 데이터 샘플들의 유효 비트수를 산출하여 블록별 최대 유효 비트수를 확인하는 유효 비트수 확인부; 상기 블록별 최대 유효 비트수를 기초로 상기 각 블록의 블록 타입을 결정하는 블록 타입 결정부; 및 블록 타입 별로 서로 다른 압축 방법을 상기 각 블록에 적용하여 압축 데이터를 생성하는 압축 데이터 생성부를 포함한다.
이 때, 상기 블록 타입 결정부는, 상기 각 블록의 상기 블록 타입에 대한 블록 부가 정보를 상기 각 블록에 매칭시켜 저장할 수 있다.
이 때, 상기 각 블록을 구성하는 데이터 샘플들을 최대 유효 비트수를 기초로 상기 각 블록 내에서의 적어도 하나의 내부 그룹으로 나누는 내부 그룹 정의부; 및 상기 내부 그룹 별로 서로 다른 압축 윈도우를 상기 내부 그룹에 적용하는 압축 윈도우 적용부를 더 포함할 수 있다.
이 때, 상기 내부 그룹 정의부는, 상기 적어도 하나의 내부 그룹 각각에 대하여 적용될 서로 다른 압축 윈도우에 대한 샘플별 부가 정보를 각 내부 그룹에 매칭시켜 저장할 수 있다.
이 때, 상기 압축 윈도우 적용부는, 기 설정된 무손실 압축 조건 또는 기 설정된 손실 압축 조건에 따라 소정의 내부 그룹에 적용하는 압축 윈도우를 달리할 수 있다.
이 때, 상기 압축 윈도우 적용부는, 상기 기 설정된 손실 압축 조건에 따르는 경우, 상기 소정의 내부 그룹에 포함된 데이터 샘플의 소정의 유효 비트를 제거 후 나머지 유효 비트에 압축 윈도우를 적용할 수 있다.
이 때, 상기 압축 윈도우 적용부는, 전체 시스템의 압축률을 고려하여 내부 그룹의 수를 조정 및 결정할 수 있다.
본 발명에 따르면, 압축 효율을 향상시켜 전송 효율을 높일 수 있는 데이터 압축 기술을 제공할 수 있다. 그리고, 본 발명은 제한 대역을 사용하여 전달되는 RF 신호의 전송 효율을 높일 수 있다.
또한, 본 발명은 블록 별로 또는 블록 내 샘플의 그룹별로 서로 다른 압축기준을 적용함으로써 샘플 별로 의미없는 비트를 가능한 한 제거하여 의미 있는 비트를 모두 전달하는 무손실 압축이 가능하며, 손실을 감안하는 유손실 압축에도 동일한 규칙을 적용할 수 있다.
또한, 본 발명은 손실을 감안한 압축 시 각 샘플별로 서로 다른 압축 윈도우를 적용하여 유효 비트 수를 기준으로 LSB의 제거에 의한 손실을 최소화 할 수 있다.
도 1은 하나의 압축 단위에 포함된 데이터 샘플들의 예시를 도시한 것이다.
도 2는 본 발명의 실시예에 따른 데이터 압축 방법을 설명하기 위한 플로우챠트이다.
도 3 내지 도 9는 본 발명의 실시예에 따른 데이터 압축 방법을 예시와 함께 설명하기 위한 도면이다.
도 10 내지 도 12는 본 발명의 실시예에 따른 데이터 압축 방법에 있어서 압축 방식의 일 예를 설명하기 위한 플로우챠트이다.
도 13 내지 도 15는 본 발명의 실시예에 따른 데이터 압축 방법을 통해 압축된 데이터의 복원을 위한 방법을 설명하기 위한 플로우챠트이다.
도 16은 본 발명의 실시예에 따른 데이터 압축 장치의 구성을 나타낸 블록도이다.
본 발명을 첨부된 도면을 참조하여 상세히 설명하면 다음과 같다. 여기서, 반복되는 설명, 본 발명의 요지를 불필요하게 흐릴 수 있는 공지 기능, 및 구성에 대한 상세한 설명은 생략한다. 본 발명의 실시형태는 당 업계에서 평균적인 지식을 가진 자에게 본 발명을 보다 완전하게 설명하기 위해서 제공되는 것이다. 따라서, 도면에서의 요소들의 형상 및 크기 등은 보다 명확한 설명을 위해 과장될 수 있다.
이하, 본 발명의 일 실시예에 따른 데이터 압축 방법에 대하여 설명한다.
도 2는 본 발명의 실시예에 따른 데이터 압축 방법을 설명하기 위한 플로우챠트이다.
도 2를 참조하면, 본 발명의 실시예에 따른 데이터 압축 방법은 먼저, 전달신호에 대한 샘플링을 통해 획득한 데이터 샘플들을 소정 개수 단위로 블록으로 지정하여 복수개의 블록을 생성한다(S110).
그리고, 상기 복수개의 블록의 각 블록을 구성하는 데이터 샘플들의 유효 비트수를 산출하여 블록별 최대 유효 비트수를 확인한다(S120).
이 후, 상기 각 블록을 구성하는 데이터 샘플들을 최대 유효 비트수를 기초로 상기 각 블록 내에서의 적어도 하나의 내부 그룹으로 나눈다(S130). S130 단계에서는 적어도 하나의 내부 그룹 각각에 대하여 적용될 서로 다른 압축 윈도우에 대한 샘플별 부가 정보를 각 내부 그룹에 매칭시켜 저장할 수 있다. 그리고, S130 단계에서는 전체 시스템의 압축률을 고려하여 내부 그룹의 수를 조정 및 결정할 수 있다. 그리고, 내부 그룹 별로 서로 다른 압축 윈도우를 상기 내부 그룹에 적용한다(S140). S140 단계에서는 기 설정된 무손실 압축 조건 또는 기 설정된 손실 압축 조건에 따라 소정의 내부 그룹에 적용하는 압축 윈도우를 달리할 수 있다. 이 때, 기 설정된 손실 압축 조건에 따르는 경우, 상기 소정의 내부 그룹에 포함된 데이터 샘플의 소정의 유효 비트를 제거 후 나머지 유효 비트에 압축 윈도우를 적용할 수 있다.
또한, 블록별 최대 유효 비트수를 기초로 각 블록의 블록 타입을 결정한다(S150). S150 단계에서는 각 블록의 상기 블록 타입에 대한 블록 부가 정보를 상기 각 블록에 매칭시켜 저장할 수 있다. 그리고, 블록 타입 별로 서로 다른 압축 방법을 각 블록에 적용하여 압축 데이터를 생성한다(S160).
도 3 내지 도 9는 본 발명의 실시예에 따른 데이터 압축 방법을 예시와 함께 설명하기 위한 도면이다.
I/Q 데이터 샘플들은 Sb비트(Sb는 하나의 샘플을 구성하는 비트수로 3이상의 자연수)로 표현되며 실시예로 하나의 샘플이 16비트로 구성되는 경우, 도 1에서와 같은 14개 유형의 비트열이 존재할 수 있다. 이들 각 비트열은 특정 신호에 대한 샘플값으로 LSB 기준으로 임의의 비트만큼 유효한 정보를 저장하며 MSB 한 비트는 해당 값이 음수인지 양수인지를 나타내는 부호비트이고 이 부호 비트부터 유효한 데이터가 저장된 유효 비트의 바로 앞 비트는 부호비트와 동일한 값으로 확장되어 구성된다. 각 샘플은 실제 유효한 데이터를 표현한 비트개수에 부호비트 한 비트를 더하면 해당 샘플의 유효 비트수 Sv가 정해진다. Sv는 해당 샘플을 표현하기 위해 필요한 비트수로 최소 3비트에서 최대 샘플을 표현하는 총 비트 값을 가지게 되며 실시예의 경우 Sv는 3 내지 16의 값을 가진다.
그리고, 데이터 압축을 위해 샘플들을 Bs개씩 하나의 압축 단위(이하 블록으로 명시)로 지정한다. 이때 Bs는 블록을 구성하는 샘플수로 2이상의 자연수로 실시 예에서는 32개로 지정하여 처리한다.
제안된 압축 방식을 적용하기 위해 우선 각 블록을 구성하는 32개 샘플들의 유효 비트수중 제일 큰 값인 최대 유효 비트수(Sv_m)를 기준으로 전체 블록들을 N개 이상의 유형으로 분류한다. 이때 N은 2이상의 정수이다. 도 3은 전체 블록들을 3개 유형으로 분류하는 실시예로 해당 블록을 구성하는 샘플의 최대 유효 비트수가 3비트에서 8비트까지인 블록은 블록 타입1(BT1)(201), 9비트에서 12비트까지인 블록은 블록 타입2(BT2)(202), 13비트에서 16비트까지인 블록은 블록 타입3(BT3)(203)로 분류한다.
본 발명은 이렇게 분류된 3유형의 블록에 각각 서로 다른 압축 방법을 적용한다. 이 때 적용되는 블록유형을 결정하는데 사용되는 기준값은 3에서 16사이의 임의의 정수로 선정될 수 있으며 실시예의 경우에 8비트와 12비트를 사용한다.
이렇게 분류된 각각의 블록 타입에 적용될 압축 방법은 임의의 블록을 구성하는 32개의 샘플들을 한 개 이상의 그룹으로 분리하여 각 내부 그룹 별로 서로 다른 압축 윈도우를 적용하는 방안을 사용한다. 이 때 각 블록 유형 별(201, 202, 203)로 내부 그룹의 수를 서로 다르게 지정하고 해당 내부 그룹의 수에 따라 서로 다른 압축 조건들을 적용하여 압축한다.
도 4 및 도 5는 첫 번째 블록 유형 BT1에 대한 압축방식을 기술한다. 실시예에서 BT1 유형의 블록은 최대 유효 비트가 8비트 이하인 샘플들로 구성되는 블록을 의미한다. BT1에 해당하는 모든 블록은 블록단위로 하나의 압축 윈도우를 적용하여 LSB를 기준으로 해당 블록의 최대 유효 비트수의 압축 윈도우(301)를 적용하여 수신단으로 전달될 데이터를 추출한다. BT1 유형에 해당하는 블록은 수신단에서 데이터 복원을 위해 해당 블록의 타입(BT1)과 해당 블록의 최대 유효 비트수(실시예의 경우 8)를 전달한다. 도 4의 경우는 블록의 최대 유효 비트수가 8인 블록에 대하여 LSB 기준으로 8비트를 압축 윈도우(301)로 설정하여 전송 데이터를 획득하는 상황을 나타내며 도 5는 최대 유효 비트수가 6인 블록에 대해 LSB 기준으로 6비트의 압축 윈도우(311)를 적용하는 것을 나타낸다.
도 6 및 도 7은 두 번째 블록 유형 BT2에 대한 압축 방식을 도시한다. 실시예에서 BT2 유형의 블록은 최대 유효 비트가 9비트에서 12비트까지인 블록을 의미한다. 실시예의 경우 BT2유형에 적용되는 압축 방식은 블록에 속한 32개의 샘플들을 두 개의 내부 그룹으로 나누고 각 그룹 별로 서로 다른 압축 윈도우를 적용하는 형태로 동작한다. 내부 그룹을 나누는 기준은 도 6의 경우 해당 블록 내에 속한 샘플들의 유효 비트수가 M비트인 샘플을 기준으로 나누고 M비트 이하인 샘플은 LSB 기준으로 M(실시예의 경우 8)비트의 압축 윈도우(401)를 적용하고 M+1비트 이상인 샘플들은 해당 블록의 최대유효비트수인 12비트의 압축 윈도우(402)를 적용한다.
본 발명의 압축 방식이 적용된 장치들이 신호의 왜곡이나 유실에 민감한 환경에 설치되어 송신단의 데이터들이 유실 없이 전달 되어야 하는 무손실(lossless) 압축이 필요한 경우이면 도 6과 같이 LSB를 제외하지 않도록 압축 윈도우를 적용한다.
반면 어느 정도의 왜곡이나 유실이 허용되는 환경에서는 도 7의 경우와 같이 일부 샘플의 LSB를 제외하고 전송하도록 압축 윈도우를 설정할 수 있다. 실시예의 도 7에서처럼 BT2 유형의 블록에 존재하는 샘플의 유효 비트가 M비트 이하인 샘플들과 M+1비트 이상인 샘플들과 같이 두 그룹으로 나누고 M비트 이하인 샘플들은 LSB 기준으로 M비트의 압축 윈도우를 적용하고 M+1비트 이상인 샘플들은 LSB 기준으로 해당 블록의 최대유효비트수인 12비트 압축 윈도우를 적용한 후 일부 LSB의 유실이 데이터 복원에 적은 영향을 미칠 수 있는 두 번째 그룹에 일괄적으로 특정 비트(실시예의 경우 3비트)만큼 LSB를 일괄 제거한 후 전송 데이터를 추출한다. 이때 제거할 LSB 비트수는 본 압축방식이 적용될 환경에서 허용하는 오류율을 참조하여 조정하며 시스템의 상황에 따라 추가 조정도 가능하다.
도 4 및 도 5의 BT1유형의 블록들과는 달리 도 6 및 도 7에 기술된 BT2 유형의 블록에 포함된 샘플들은 수신단에서 원래 신호를 복원하도록 하기 위해 추가적인 정보가 필요하게 된다. 도 6 및 도 7에서 보는 바와 같이 하나의 블록 내에 두개 이상의 압축 윈도우(401과 402, 또는 410과 411)가 적용되므로 복원시에 특정 샘플에 어떤 압축 윈도우가 적용되었는지를 나타내기 위해 샘플당 한 비트씩의 샘플 정보(SI)(403, 412)가 함께 전달된다.
도 8 및 도 9는 세 번째 블록 유형 BT3 대한 압축 방식을 도시한다. 실시예에서 BT3 유형의 블록은 최대 유효 비트가 13비트에서 16비트까지인 블록을 의미한다. 실시예의 경우 BT3유형에 적용되는 압축 방식은 블록에 속한 32개의 샘플들을 네개의 내부 그룹으로 나누고 각 그룹 별로 서로 다른 압축 윈도우를 적용하는 형태로 동작한다. 내부 그룹을 나누는 개수는 고정되어 있지 않으며 상황에 따라 가변적으로 적용 가능하다. 내부 그룹을 나누는 기준은 도 8 경우 해당 블록 내에 속한 샘플들의 유효 비트수가 5비트, 9비트, 13비트인 샘플을 기준으로 나누고 5비트 이하인 샘플은 LSB 기준으로 5비트의 압축 윈도우(501)를 적용하고 6비트이상이고 9비트 이하인 샘플들은 LSB 기준 9비트의 압축 윈도우(502)를, 10비트 이상이고 12비트 이하인 샘플들은 LSB 기준 12비트의 압축 윈도우(503)를, 14비트이상이고 16비트 이하인 샘플들은 LSB 기준 16비트의 압축 윈도우(504)를 적용한다. 이때 특정 블록내에서 내부 그룹을 나누는 기준 또한 실시예에서처럼 5,9,13,16으로 고정되는것이 아니라 압축 방식 적용 환경에서 전달하는 데이터들이 어떤 분포를 가지는지를 반영하여 적절하게 조정함으로써 전체적인 압축률 및 에러율을 조절할 수 있다.
이와 같은 방식으로 압축하면 정보유실이 없는 데이터 전송이 가능하며 어느 정도의 손실을 감수하고자 하는 경우 도 9와 같이 압축을 적용한다.
실시예의 도 9는 도 8의 경우와 동일하게 블록 내에 속한 샘플들의 유효 비트수가 5비트, 9비트, 13비트인 샘플을 기준으로 나누고 5비트 이하인 샘플은 LSB 기준으로 5비트의 압축 윈도우(511)를 적용하고 LSB를 삭제하지 않는다. 6비트이상이고 9비트 이하인 샘플들은 LSB 1비트를 일괄적으로 제외하여 8비트의 압축 윈도우(512)를, 10비트이상이고 12비트 이하인 샘플들은 LSB 3비트를 일괄적으로 제외하여 9비트의 압축 윈도우(513)를, 14비트이상이고 16비트 이하인 샘플들은 LSB 5비트를 일괄적으로 제외하여 11비트의 압축 윈도우(514)를 적용한다.
이러한 방식으로 압축된 데이터가 수신단에 도착하여 원래의 데이터를 복원하기 위해서는 해당 블록 내의 각 샘플들이 어떤 그룹에 속해 있어 어떤 압축 윈도우가 적용되었는지를 알 수 있어야 한다. 이를 위해 각 샘플 별로 2비트씩의 부가 정보인 샘플정보(SI)(505, 515)가 필요하다. 실시예의 경우 유효비트가 3이상 5이하인 경우는 '00', 6이상 9이하인 경우는 '01', 10이상 13이하인 경우는 '10', 14이상 16이하인 경우는 '11'로 SI(505, 515)를 지정한다.
상기와 같은 압축 방식에 의해 전송된 데이터들을 수신단에서 복원하기 위해서는 수신된 데이터가 속한 블록이 어떤 유형의 블록인지 알 수 있어야 하고 BT1 유형의 경우를 위해 해당 블록의 최대 유효 비트수를 알 수 있어야 한다.
실시예의 경우 3개의 그룹을 구분할 수 있어야 하며 BT1유형의 경우 각 블록의 최대 유효 비트수가 전달되어야 수신단에서 해당 블록의 압축 윈도우를 유추하여 복원 데이터를 생성할 수 있다. 실시예의 경우 최대 유효 비트수가 8이하인 블록들을 BT1으로 정의하였으므로 각 블록의 최대 유효 비트가 3비트부터 8비트까지의 값이 블록의 최대 유효 비트수로 전달될 수 있어야 하며 추가적으로 BT1, BT2, BT3의 세가지 블록 유형 중 어떤 유형에 해당하는지에 대한 정보가 전달되어야 한다. 이를 위해 세개의 비트를 블록마다 할당하여 0이면 BT2, 1이면 BT3, 2 이상이면 BT1타입의 블록별 최대 유효 비트수로 해석될 수 있도록 한다.
도 10 내지 도 12는 본 발명의 실시예에 따른 데이터 압축 방법에 있어서 압축 방식의 일 예를 설명하기 위한 플로우챠트이다.
샘플링 과정을 거처 생성된 신호 샘플들을 32개 단위로 읽어들여 하나의 블록을 구성한다. 한 블록을 구성하는 각 샘플들의 유효비트수를 산출하여 그 중에 제일 큰 값을 해당 블록의 최대 유효비트수로 지정한다(S601). S601 단계에서 얻어진 최대 유효 비트 수에 따라 해당 블록의 타입을 결정한다. 실시예의 경우 최대 유효비트수가 8이하인 경우 BT1으로 9에서 12 사이인 경우 BT2로 13에서 16인 경우 BT3로 정의한다(S603). 경우에 따라 블록유형을 나누는 기준은 실시예의 경우와 다르게 적용할 수 있다.
S603 단계에서 얻어진 블록 유형이 BT1인 경우, 신호 수신단으로 보내 데이터 복원에 활용하도록 할 블록 부가 정보(BI)를 생성한다. 실시예의 경우 BT1유형의 기준을 8bit로 선정하였으므로 해당 블록에 속한 샘플들이 가질 수 있는 유효비트 수는 3에서 8까지가 되고 이를 표현하기 위해 3비트가 필요하게 된다. 블록 부가정보 3비트는 8개의 정보를 포함 할 수 있으므로 000은 BT2타입을 001은 BT3 타입을 010부터 111까지는 BT1 타입에 있어서 최대 유효 비트수가 3부터 8을 의미하는 것으로 사용할 수 있다(S604).
블록 내 32개의 샘플에 대해 LSB기준으로 블록의 최대 유효 비트 수만큼 읽어 들여 압축 데이터를 생성한다(S605).
S603 단계에서 얻어진 블록 유형이 BT2인 경우 신호 수신단으로 보내 데이터 복원에 활용되도록 할 블록 부가 정보(BI)를 세팅한다. 이 경우 부가정보 3비트에 해당 블록이 BT2임을 의미하는 000값을 저장한다(S611).
블록을 구성하는 32개의 샘플의 유효 비트수가 8이하인 경우는 LSB 기준 8비트의 압축 윈도우를 적용하는 그룹으로 각 샘플별 부가비트 1비트를 0로 세팅하고(S613), LSB 부터 8비트를 읽어 압축 데이터를 생성한다(S614).
샘플의 유효 비트수가 9이상 16이하 인 경우(S612)는 LSB 기준으로 12비트의 압축윈도우를 적용하는 그룹으로 샘플별 부가비트 1비트를 1로 세팅하고(S615) 본 발명이 적용된 압축 방식이 구동될 환경이 무손실(lossless) 압축을 원하는 경우 LSB기준으로 12비트를 읽어 압축 데이터를 생성(S617)하고 손실을 감수하는 압축을 원하는 경우 LSB 3비트를 제거 후 나머지 9비트만 압축 데이터로 활용한다(S618).
S60 3단계에서 얻어진 블록 유형이 BT3인 경우 신호 수신단으로 보내 데이터 복원에 활용되도록 할 블록 부가 정보(BI)를 세팅한다. 이 경우 부가정보 3비트에 해당 블록이 BT3임을 의미하는 001값을 저장한다(S621).
블록을 구성하는 32개의 샘플의 유효 비트수가 14이상 16이하인 그룹인 경우(S622)는 각 샘플별 부가비트 2비트를 '11'로 세팅하고(623) 본 발명이 적용된 압축 방식이 구동될 환경이 무손실(lossless) 압축을 원하는 경우 LSB기준으로 16비트를 읽어 압축 데이터를 생성(S625)하고 손실을 감수하는 압축을 원하는 경우 LSB 6비트를 제거 후 나머지 10비트만 압축 데이터로 활용한다(S626).
블록을 구성하는 32개의 샘플의 유효 비트수가 10이상 13이하인 그룹의 경우(S631)는 각 샘플별 부가비트 2비트를 '10'으로 세팅하고(S632) 본 발명이 적용된 압축 방식이 구동될 환경이 무손실(lossless) 압축을 원하는 경우 LSB기준으로 13비트를 읽어 압축 데이터를 생성(S634)하고 손실을 감수하는 압축을 원하는 경우 LSB 3비트를 제거 후 나머지 10비트만 압축 데이터로 활용한다(S635).
블록을 구성하는 32개의 샘플의 유효 비트수가 6이상 9이하인 그룹의 경우(S641)는 각 샘플별 부가비트 2비트를 '01'로 세팅하고(S642) 본 발명이 적용된 압축 방식이 구동될 환경이 무손실(lossless) 압축을 원하는 경우 LSB기준으로 9비트를 읽어 압축 데이터를 생성(S644)하고 손실을 감수하는 압축을 원하는 경우 LSB 1비트를 제거 후 나머지 8비트만 압축 데이터로 활용한다(S645).
블록을 구성하는 32개의 샘플의 유효 비트수가 6미만인 경우는 각 샘플별 부가비트 2비트를 '00'로 세팅하고(S651) LSB제거 없이 5비트 전체를 압축 데이터로 활용한다(S652).
도 13 내지 도 15는 본 발명의 실시예에 따른 데이터 압축 방법을 통해 압축된 데이터의 수신단에서의 복원을 위한 방법을 설명하기 위한 플로우챠트이다.
수신장치는 블록정보(BI) 3비트를 읽어 해당 블록 유형을 판정한다(S701). 이때 BI 값이 '000'이면 해당 블록 유형이 BT2임을 '001'이면 BT3임을 '010'부터 '111'이면 BT1이면서 해당 블록의 최대 유효 비트수로 해석한다. 원래 BT1이 가질 수 있는 최대 유효 비트수는 3에서 8의 값을 가지나 3비트를 활용하여 이를 표현하기 위해 각 값이 2에서 7로 매핑된다. 그러므로 BI의 값이 '010'인 경우는 해당 블록이 BT1이면서 최대 유효비트 수가 3임을 의미하고 '011'인 경우는 해당 블록이 BT1이면서 최대 유효비트 수가 4임을, '111'인 경우는 해당 블록이 BT1이면서 최대 유효비트 수가 8임을 의미하게 된다. 그러므로 데이터 복원 모듈에서는 BT1 인 경우 BI 정보 값에 1을 더한 수를 해당 블록의 최대 유효 비트수로 간주하여 처리한다.
BI 값을 해석하여 해당 블록이 BT1임이 판단되면 BI값을 읽어 1을 더하고 그 값을 기준으로 32개의 샘플을 생성한다. 읽어들인 비트를 LSB에 배치하고 하나의 샘플을 표현하는 총 비트 수인 16에서 읽어 들인 비트수를 뺀 수만큼 MSB와 동일한 값으로 채워 하나의 샘플을 복원하는 작업을 수행한다(S702)
블록정보 BI 값이 BT2 유형임을 의미하는 '000'이면 해당 블록의 최대 유효 비트 수가 9이상 12이하인 그룹에 포함되는 경우로 32의 각 샘플에 대해 1비트의 SI를 먼저 읽어 해당 샘플에 적용된 압축 윈도우가 8비트 길이인지 12 비트 길이인지를 판단하고(S711) 본 발명이 적용된 환경이 무손실(lossless) 압축을 채택한 경우 LSB기준으로 12비트를 읽어 LSB에 배치하고 하나의 샘플을 표현하는 총 비트 수인 16에서 읽어 들인 비트수(12비트)를 뺀 수만큼(4비트) MSB와 동일한 값으로 채워 하나의 샘플을 복원하는 작업을 수행한다(S713). 반대로 압축 환경이 어느 정도의 손실을 감수하는 압축을 원하는 경우 9비트를 읽어 LSB 3비트를 복원하고 16비트에서 12비트(압축데이터 9비트와 복원된 LSB 3비트)를 제외한 4비트에 MSB와 동일한 값을 채워 하나의 샘플을 복원하는 작업을 수행한다(S714). 이 때 LSB 복원 방식은 통상적으로 사용하고 있는 0과 1중에 아무 값이나 선택하여 채우거나 0과 1을 균등한 분포를 갖도록 채우는 방법들이 활용될 수 있다.
블록정보 BI 값이 BT3 유형임을 의미하는 '001'이면 해당 블록의 최대 유효 비트 수가 13이상 16이하인 경우로 32의 각 샘플에 대해 2비트의 SI를 먼저 읽어 해당 샘플에 적용된 압축 윈도우가 16비트, 13비트, 9비트, 5비트 중 어느 길이의 압축 윈도우가 적용된 그룹인지를 판단하여 처리한다.
SI가 '11'로 16비트 압축 윈도우가 적용된 그룹이면(S721) 본 발명이 적용된 환경이 무손실(lossless) 압축을 채택한 경우(S722) 16비트를 읽어 샘플 데이터를 복원하고(S723) 반대로 압축 환경이 어느 정도의 손실을 감수하는 압축을 원하는 경우 10비트를 읽어 LSB 6비트를 복원하여 하나의 샘플을 복원하는 작업을 수행한다(S724).
SI가 '10'으로 13비트 압축 윈도우가 적용된 그룹이면(S731) 본 발명이 적용된 환경이 무손실(lossless) 압축을 채택한 경우(S732) 13비트를 읽어 LSB에 배치하고 하나의 샘플을 표현하는 총 비트 수인 16에서 읽어 들인 비트수(13비트)를 뺀 수만큼(3비트) MSB와 동일한 값으로 채워 하나의 샘플을 복원하는 작업을 수행한다(S733). 반대로 압축 환경이 어느 정도의 손실을 감수하는 압축을 원하는 경우 10비트를 읽어 LSB 3비트를 복원하고 16비트에서 13비트(압축데이터 10비트와 복원된 LSB 3비트)를 제외한 3비트에 MSB와 동일한 값을 채워 하나의 샘플을 복원하는 작업을 수행한다(S734). 이때 LSB 복원 방식은 통상적으로 사용하고 있는 0과 1중에 아무 값이나 선택하여 채우거나 0과 1을 균등한 분포를 갖도록 채우는 방법들이 활용될 수 있다.
SI가 '01'로 9비트 압축 윈도우가 적용된 그룹 이면(741) 본 발명이 적용된 환경이 무손실(lossless) 압축을 채택한 경우(742) 9비트를 읽어 LSB에 배치하고 하나의 샘플을 표현하는 총 비트 수인 16에서 읽어들인 비트수(9비트)를 뺀 수만큼(7비트) MSB와 동일한 값으로 채워 하나의 샘플을 복원하는 작업을 수행한다(S743). 반대로 압축 환경이 어느 정도의 손실을 감수하는 압축을 원하는 경우 8비트를 읽어 LSB 1비트를 복원하고 16비트에서 9비트(압축데이터 8비트와 복원된 LSB 1비트)를 제외한 7비트에 MSB와 동일한 값을 채워 하나의 샘플을 복원하는 작업을 수행한다(S744). 이 때 LSB 복원 방식은 통상적으로 사용하고 있는 0과 1중에 아무 값이나 선택하여 채우거나 0과 1을 균등한 분포를 갖도록 채우는 방법들이 활용될 수 있다.
SI가 '00'으로 5비트 압축 윈도우가 적용된 그룹이면 5비트를 읽어 LSB에 배치하고 MSB와 동일한 값으로 채워 16비트의 샘플을 복원하는 작업을 수행한다(S751).
이러한 본 발명에 따른 데이터 압축 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다.  상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다.  컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 모든 형태의 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함할 수 있다.  이러한 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
본 발명의 원리들의 교시들은 하드웨어와 소프트웨어의 조합으로서 구현될 수 있다. 또한, 소프트웨어는 프로그램 저장부 상에서 실재로 구현되는 응용 프로그램으로서 구현될 수 있다. 응용 프로그램은 임의의 적절한 아키텍쳐를 포함하는 머신에 업로드되고 머신에 의해 실행될 수 있다. 바람직하게는, 머신은 하나 이상의 중앙 처리 장치들(CPU), 컴퓨터 프로세서, 랜덤 액세스 메모리(RAM), 및 입/출력(I/O) 인터페이스들과 같은 하드웨어를 갖는 컴퓨터 플랫폼 상에 구현될 수 있다. 또한, 컴퓨터 플랫폼은 운영 체제 및 마이크로 명령 코드를 포함할 수 있다. 여기서 설명된 다양한 프로세스들 및 기능들은 마이크로 명령 코드의 일부 또는 응용 프로그램의 일부, 또는 이들의 임의의 조합일 수 있고, 이들은 CPU를 포함하는 다양한 처리 장치에 의해 실행될 수 있다. 추가로, 추가 데이터 저장부 및 프린터와 같은 다양한 다른 주변 장치들이 컴퓨터 플랫폼에 접속될 수 있다.
첨부 도면들에서 도시된 구성 시스템 컴포넌트들 및 방법들의 일부가 바람직하게는 소프트웨어로 구현되므로, 시스템 컴포넌트들 또는 프로세스 기능 블록들 사이의 실제 접속들은 본 발명의 원리들이 프로그래밍되는 방식에 따라 달라질 수 있다는 점이 추가로 이해되어야 한다. 여기서의 교시들이 주어지면, 관련 기술분야의 당업자는 본 발명의 원리들의 이들 및 유사한 구현예들 또는 구성들을 참작할 수 있을 것이다.
이하에서는 본 발명의 실시예에 따른 데이터 압축 장치의 구성 및 동작에 대하여 설명하도록 한다.
도 16은 본 발명의 실시예에 따른 데이터 압축 장치의 구성을 나타낸 블록도이다.
도 16을 참조하면, 본 발명의 실시예에 따른 데이터 압축 장치(100)는 블록 생성부(110), 유효 비트수 확인부(120), 내부 그룹 정의부(130), 압축 윈도우 적용부(140), 블록 타입 결정부(150) 및 압축 데이터 생성부(160)를 포함하여 형성될 수 있다.
블록 생성부(110)는 전달신호에 대한 샘플링을 통해 획득한 데이터 샘플들을 소정 개수 단위로 블록으로 지정하여 복수개의 블록을 생성한다.
유효 비트수 확인부(120)는 복수개의 블록의 각 블록을 구성하는 데이터 샘플들의 유효 비트수를 산출하여 블록별 최대 유효 비트수를 확인한다.
내부 그룹 정의부(130)는 각 블록을 구성하는 데이터 샘플들을 최대 유효 비트수를 기초로 상기 각 블록 내에서의 적어도 하나의 내부 그룹으로 나눈다. 그리고, 내부 그룹 정의부(130)는 적어도 하나의 내부 그룹 각각에 대하여 적용될 서로 다른 압축 윈도우에 대한 샘플별 부가 정보를 각 내부 그룹에 매칭시켜 저장할 수 있다.
압축 윈도우 적용부(140)는 내부 그룹 별로 서로 다른 압축 윈도우를 상기 내부 그룹에 적용한다. 그리고, 압축 윈도우 적용부(140)는 기 설정된 무손실 압축 조건 또는 기 설정된 손실 압축 조건에 따라 소정의 내부 그룹에 적용하는 압축 윈도우를 달리할 수 있다. 또한, 압축 윈도우 적용부(140)는 기 설정된 손실 압축 조건에 따르는 경우, 상기 소정의 내부 그룹에 포함된 데이터 샘플의 소정의 유효 비트를 제거 후 나머지 유효 비트에 압축 윈도우를 적용할 수 있다. 또한, 압축 윈도우 적용부(140)는 전체 시스템의 압축률을 고려하여 내부 그룹의 수를 조정 및 결정할 수 있다.
블록 타입 결정부(150)는 블록별 최대 유효 비트수를 기초로 상기 각 블록의 블록 타입을 결정한다. 그리고, 블록 타입 결정부(150)는 각 블록의 상기 블록 타입에 대한 블록 부가 정보를 상기 각 블록에 매칭시켜 저장한다.
압축 데이터 생성부(160)는 블록 타입 별로 서로 다른 압축 방법을 상기 각 블록에 적용하여 압축 데이터를 생성한다.
이상에서와 같이 본 발명에 따른 데이터 압축 방법 및 장치는 상기한 바와 같이 설명된 실시예들의 구성과 방법이 한정되게 적용될 수 있는 것이 아니라, 상기 실시예들은 다양한 변형이 이루어질 수 있도록 각 실시예들의 전부 또는 일부가 선택적으로 조합되어 구성될 수도 있다.
100; 데이터 압축 장치
110; 블록 생성부
120; 유효 비트수 확인부
130; 내부 그룹 정의부
140; 압축 윈도우 적용부
150; 블록 타입 결정부
160; 압축 데이터 생성부

Claims (18)

  1. 전달신호에 대한 샘플링을 통해 획득한 데이터 샘플들을 소정 개수 단위로 블록으로 지정하여 복수개의 블록을 생성하는 단계;
    상기 복수개의 블록의 각 블록을 구성하는 데이터 샘플들의 유효 비트수를 산출하여 블록별 최대 유효 비트수를 확인하는 단계;
    상기 블록별 최대 유효 비트수를 기초로 상기 각 블록의 블록 타입을 결정하는 단계; 및
    상기 블록 타입 별로 서로 다른 압축 방법을 상기 각 블록에 적용하여 압축 데이터를 생성하는 단계를 포함하는 것을 특징으로 하는 데이터 압축 방법.
  2. 청구항 1에 있어서,
    상기 블록 타입을 결정하는 단계에서는,
    상기 각 블록의 상기 블록 타입에 대한 블록 부가 정보를 상기 각 블록에 매칭시켜 저장하는 것을 특징으로 하는 데이터 압축 방법.
  3. 청구항 1에 있어서,
    상기 각 블록을 구성하는 데이터 샘플들을 최대 유효 비트수를 기초로 상기 각 블록 내에서의 적어도 하나의 내부 그룹으로 나누는 단계; 및
    상기 내부 그룹 별로 서로 다른 압축 윈도우를 상기 내부 그룹에 적용하는 단계를 더 포함하는 것을 특징으로 하는 데이터 압축 방법.
  4. 청구항 3에 있어서,
    상기 적어도 하나의 내부 그룹으로 나누는 단계에서는,
    상기 적어도 하나의 내부 그룹 각각에 대하여 적용될 서로 다른 압축 윈도우에 대한 샘플별 부가 정보를 각 내부 그룹에 매칭시켜 저장하는 것을 특징으로 하는 데이터 압축 방법.
  5. 청구항 3에 있어서,
    상기 서로 다른 압축 윈도우를 상기 내부 그룹에 적용하는 단계에서는,
    기 설정된 무손실 압축 조건 또는 기 설정된 손실 압축 조건에 따라 소정의 내부 그룹에 적용하는 압축 윈도우를 달리하는 것을 특징으로 하는 데이터 압축 방법.
  6. 청구항 4에 있어서,
    상기 서로 다른 압축 윈도우를 상기 내부 그룹에 적용하는 단계에서,
    상기 기 설정된 손실 압축 조건에 따르는 경우, 상기 소정의 내부 그룹에 포함된 데이터 샘플의 소정의 유효 비트를 제거 후 나머지 유효 비트에 압축 윈도우를 적용하는 것을 특징으로 하는 데이터 압축 방법.
  7. 청구항 3에 있어서,
    상기 적어도 하나의 내부 그룹으로 나누는 단계에서는,
    전체 시스템의 압축률을 고려하여 내부 그룹의 수를 조정 및 결정하는 것을 특징으로 하는 데이터 압축 방법.
  8. 전달신호에 대한 샘플링을 통해 획득한 데이터 샘플들을 소정 개수 단위로 블록으로 지정하여 복수개의 블록을 생성하는 단계;
    상기 각 블록을 구성하는 데이터 샘플들을 최대 유효 비트수를 기초로 상기 각 블록 내에서의 적어도 하나의 내부 그룹으로 나누는 단계; 및
    상기 내부 그룹 별로 서로 다른 압축 윈도우를 상기 내부 그룹에 적용하는 단계를 포함하는 것을 특징으로 하는 데이터 압축 방법.
  9. 청구항 8에 있어서,
    상기 적어도 하나의 내부 그룹으로 나누는 단계에서는,
    상기 적어도 하나의 내부 그룹 각각에 대하여 적용될 서로 다른 압축 윈도우에 대한 샘플별 부가 정보를 각 내부 그룹에 매칭시켜 저장하는 것을 특징으로 하는 데이터 압축 방법.
  10. 청구항 8에 있어서,
    상기 서로 다른 압축 윈도우를 상기 내부 그룹에 적용하는 단계에서는,
    기 설정된 무손실 압축 조건 또는 기 설정된 손실 압축 조건에 따라 소정의 내부 그룹에 적용하는 압축 윈도우를 달리하는 것을 특징으로 하는 데이터 압축 방법.
  11. 청구항 10에 있어서,
    상기 서로 다른 압축 윈도우를 상기 내부 그룹에 적용하는 단계에서,
    상기 기 설정된 손실 압축 조건에 따르는 경우, 상기 소정의 내부 그룹에 포함된 데이터 샘플의 소정의 유효 비트를 제거 후 나머지 유효 비트에 압축 윈도우를 적용하는 것을 특징으로 하는 데이터 압축 방법.
  12. 전달신호에 대한 샘플링을 통해 획득한 데이터 샘플들을 소정 개수 단위로 블록으로 지정하여 복수개의 블록을 생성하는 블록 생성부;
    상기 복수개의 블록의 각 블록을 구성하는 데이터 샘플들의 유효 비트수를 산출하여 블록별 최대 유효 비트수를 확인하는 유효 비트수 확인부;
    상기 블록별 최대 유효 비트수를 기초로 상기 각 블록의 블록 타입을 결정하는 블록 타입 결정부; 및
    블록 타입 별로 서로 다른 압축 방법을 상기 각 블록에 적용하여 압축 데이터를 생성하는 압축 데이터 생성부를 포함하는 것을 특징으로 하는 데이터 압축 장치.
  13. 청구항 12에 있어서,
    상기 블록 타입 결정부는,
    상기 각 블록의 상기 블록 타입에 대한 블록 부가 정보를 상기 각 블록에 매칭시켜 저장하는 것을 특징으로 하는 데이터 압축 장치.
  14. 청구항 12에 있어서,
    상기 각 블록을 구성하는 데이터 샘플들을 최대 유효 비트수를 기초로 상기 각 블록 내에서의 적어도 하나의 내부 그룹으로 나누는 내부 그룹 정의부; 및
    상기 내부 그룹 별로 서로 다른 압축 윈도우를 상기 내부 그룹에 적용하는 압축 윈도우 적용부를 더 포함하는 것을 특징으로 하는 데이터 장치.
  15. 청구항 14에 있어서,
    상기 내부 그룹 정의부는,
    상기 적어도 하나의 내부 그룹 각각에 대하여 적용될 서로 다른 압축 윈도우에 대한 샘플별 부가 정보를 각 내부 그룹에 매칭시켜 저장하는 것을 특징으로 하는 데이터 압축 장치.
  16. 청구항 14에 있어서,
    상기 압축 윈도우 적용부는,
    기 설정된 무손실 압축 조건 또는 기 설정된 손실 압축 조건에 따라 소정의 내부 그룹에 적용하는 압축 윈도우를 달리하는 것을 특징으로 하는 데이터 압축 장치.
  17. 청구항 16에 있어서,
    상기 압축 윈도우 적용부는,
    상기 기 설정된 손실 압축 조건에 따르는 경우, 상기 소정의 내부 그룹에 포함된 데이터 샘플의 소정의 유효 비트를 제거 후 나머지 유효 비트에 압축 윈도우를 적용하는 것을 특징으로 하는 데이터 압축 장치.
  18. 청구항 14에 있어서,
    상기 압축 윈도우 적용부는,
    전체 시스템의 압축률을 고려하여 내부 그룹의 수를 조정 및 결정하는 것을 특징으로 하는 데이터 압축 장치.
KR1020160169812A 2016-12-13 2016-12-13 데이터 압축 장치 및 방법 KR20180068157A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020160169812A KR20180068157A (ko) 2016-12-13 2016-12-13 데이터 압축 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160169812A KR20180068157A (ko) 2016-12-13 2016-12-13 데이터 압축 장치 및 방법

Publications (1)

Publication Number Publication Date
KR20180068157A true KR20180068157A (ko) 2018-06-21

Family

ID=62806955

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160169812A KR20180068157A (ko) 2016-12-13 2016-12-13 데이터 압축 장치 및 방법

Country Status (1)

Country Link
KR (1) KR20180068157A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102282438B1 (ko) * 2020-03-05 2021-07-27 엘아이지넥스원 주식회사 영상 레이더를 위한 데이터 패킷 생성 장치 및 방법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102282438B1 (ko) * 2020-03-05 2021-07-27 엘아이지넥스원 주식회사 영상 레이더를 위한 데이터 패킷 생성 장치 및 방법

Similar Documents

Publication Publication Date Title
CN114244373B (zh) Lz系列压缩算法编解码速度优化方法
JP2022031735A (ja) ハイブリッドデータ圧縮および解凍のための方法、デバイス、およびシステム
KR101841103B1 (ko) Vlsi 효율적인 허프만 인코딩 장치 및 방법
US8135683B2 (en) Method and apparatus for data redundancy elimination at the block level
RU2019136750A (ru) Процессор нейронной сети, использующий сжатие и распаковку данных активации для снижения использования пропускной способности памяти
US20160099723A1 (en) Enhanced data compression for sparse multidimensional ordered series data
JP6021792B2 (ja) エンコーダ,デコーダおよびその方法
US10932016B2 (en) Data processing devices, data processing units, methods and computer programs for processing telemetry data
US10553413B2 (en) Mass spectrometer
TW201322118A (zh) 浮點資料之壓縮
EP2663074A1 (en) Method and system for lossy compression and decompression of computed tomography data
CN107135004B (zh) 一种对地震数据流的自适应实时无损压缩方法
WO2005039057A1 (en) Data compression system and method
EP2748929A1 (en) Method, device and system for compressing time series data
US10474637B2 (en) Systems, media and methods for virtualized data compression
CN113316773A (zh) 用于更新文件的技术
KR20190066438A (ko) 오류 벡터 크기 계산을 기반으로 한 데이터 압축 및 복원 장치와 그 방법
EP0304608B1 (en) Multi-mode dynamic code assignment for data compression
KR20180068157A (ko) 데이터 압축 장치 및 방법
CN108254724B (zh) 改进压缩质量baq的sar数据压缩系统及方法
EP1642237A1 (en) Method and apparatus for vector quantization using a shared codebook
CN105573775B (zh) Fpga配置文件加载方法和解码器
CN116320501A (zh) 红外数据压缩方法及可读存储介质
US10585626B2 (en) Management of non-universal and universal encoders
US10701371B1 (en) Lossless compression of high framerate imagery