KR100224815B1 - 데이타 압축 및 신장방법 - Google Patents

데이타 압축 및 신장방법 Download PDF

Info

Publication number
KR100224815B1
KR100224815B1 KR1019950017152A KR19950017152A KR100224815B1 KR 100224815 B1 KR100224815 B1 KR 100224815B1 KR 1019950017152 A KR1019950017152 A KR 1019950017152A KR 19950017152 A KR19950017152 A KR 19950017152A KR 100224815 B1 KR100224815 B1 KR 100224815B1
Authority
KR
South Korea
Prior art keywords
information
bits
data
bit
new
Prior art date
Application number
KR1019950017152A
Other languages
English (en)
Other versions
KR970004368A (ko
Inventor
박인철
Original Assignee
윤종용
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 윤종용, 삼성전자주식회사 filed Critical 윤종용
Priority to KR1019950017152A priority Critical patent/KR100224815B1/ko
Priority to CNB961087722A priority patent/CN1150679C/zh
Priority to JP16222796A priority patent/JP3311241B2/ja
Priority to DE19625157A priority patent/DE19625157A1/de
Priority to US08/669,704 priority patent/US5832037A/en
Publication of KR970004368A publication Critical patent/KR970004368A/ko
Application granted granted Critical
Publication of KR100224815B1 publication Critical patent/KR100224815B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/005Statistical coding, e.g. Huffman, run length coding
    • 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

Abstract

본 발명은 데이타 압축 및 신장방법에 관한 것으로서, 특히, 압축방법은 비트스트림으로부터 N비트 정보를 취하는 제1단계; N비트의 정보를 N비트 미만의 X(NX)비트 정보로 압축하는 제2단계; 비트스트림으로부터 새로운 N-X비트 정보를 취하는 제3단계; 압축된 X비트 정보와 새로운 N-X비트 정보로 새로운 N비트 정보률 구성하는 제4단계; 및 제2단계부터 제4단계를 반복 순환하는 제5단계를 구비한 것을 특징으로 한다. 신장방법은 N비트 정보로부터 N-X비트 정보를 취하는 제1단계; N-X비트 정보를 제외한 나머지 X비트 정보를 N비트 정보로 신장하는 제2단계; 제1 및 제2단계를 반복 순환하는 제3단계를 구비하는 것을 특징으로 한다.
따라서, 본 발명에서는 N비트의 고정 길이로 비트스트림을 무손실로 압축할 수 있고 압축된 데이타를 신장할 수 있다.

Description

데이타 압축 및 신장방법
제1도는 본 발명에 의한 데이타 압축방법의 개념을 나타낸 개요도.
제2도는 본 발명에 따른 데이타 압축방법의 동작을 설명하기 위한 흐름도.
본 발명은 데이타 압축 및 신장방법에 관한 것으로서 특히, 압축과정의 알고리즘을 반복하는 반복순환에 의한 비손실 데이타 압축 및 신장방법에 관한 것이다.
정보의 양이 급속도로 팽창되어감에 따라 다량의 정보를 저장하기 위한 기록영역의 확보가 요구되고 있다. 그러나, 기록매체의 기록용량를 증대시키기 위한 하드웨어적인 기술의 진보는 정보량의 신장속도에 비해 미진하기 때문에 항상 많은 정보를 용량이 작은 기록장소에 어떻게 효율적으로 저장할 수 있는가에 대한 연구가 활발히 진행되고 있다.
작은 기록장소에 많은 데이타를 저장하기 위해서는 데이타를 압축하여 저장하고 이를 신장하는 방법이 있다. 데이타 압축방식은 압축된 데이타의 모든 정보를 복원할 수 있는 비손실 데이타 압축방식과 일부 데이타를 손실하게 되는 손실 데이타 압축방식이 있다. 비손실 데이타 압축방식은 현재 3 : 1정도의 압축률을 달성할 수 있으며, 손실 데이타 압축방식은 100 : 1정도의 압축률을 달성할 수 있다. 손실 데이타 압축방식은 비손실 데이타 압축방식에 비해 데이타 압축률은 좋으나 일부 데이타가 손실되므로 복원시에 모든 정보의 복원이 불가능한 단점이 있으므로 주로 리던던시가 많은 화상정보의 압축분야에서 많이 사용되고 있다. 따라서, 궁극적으로는 데이타의 손실이 없으면서도 데이타의 압축률이 좋은 데이타 압축방식의 출현이 요구되고 있다.
본 발명의 목적은 이와같은 종래 기술의 문제점을 해결하기 위하여 데이타를 압축하고 새정보를 입력받는 것을 반복순환하는 비손실 데이타 압축 및 신장방법을 제공하는 데 있다.
상기 목적을 달성하기 위하여 본 발명의 압축방법은 비트스트림으로부터 N비트 정보를 취하는 제1단계, N비트의 정보를 N비트 미만의 X(NX)비트 정보로 압축하는 제2단계, 비트스트림으로부터 새로운 N-X비트 정보를 취하는 제3단계, 압축된 X비트 정보와 새로운 N-X비트 정보로 새로운 N비트 정보를 구성하는 제4단계, 및 제2단계부터 제4단계를 반복 순환하는 제5단계를 구비한 것을 특징으로 한다.
본 발명의 신장방법은 N비트 정보로부터 N-X비트 정보를 취하는 제1단계, N-X비트 정보를 제외한 나머지 X비트 정보를 N비트 정보로 신장하는 제2단계, 제1 및 제2단계를 반복 순환하는 제3단계를 구비하는 것을 특징으로 한다.
따라서, 본 발명에서는 N비트의 정보를 N비트 미만으로 압축하고 다시 압축된 비트수만큼 새로운 비트를 가져다가 N비트의 정보를 형성하는 과정을 반복순환하는 것에 의해 N비트의 고정 길이로 비트스트림을 비손실 압축할 수 있고 압축된 데이타를 신장할 수 있다.
이하, 첨부한 도면을 참조하여 본 발명을 보다 상세하게 설명하고자 한다.
제1도는 본 발명에 의한 데이타 압축방법의 개요를 나타낸다.
즉, 본 발명은 비트스트림으로부터 N비트 정보를 취하는 제1단계, N비트의 정보를 N비트 미만의 X(NX)비트 정보로 압축하는 제2단계, 비트스트림으로부터 새로운 N-X비트 정보를 취하는 제3단계, 압축된 X비트 정보와 새로운 N-X비트 정보로 새로운 N비트 정보를 구성하는 제4단계 및 제2단계부터 제4단계를 반복 순환하는 제5단계를 포함한다. 제2단계의 압축은 N비트의 정보와 1비트의 스타트정보로 된 N+1비트를 k(k는 2a+s+T+2+l이상이고 r이 존재하는 양의 정수)비트씩 m(m은 2이상의 양의 정수)개의 데이타로 분할하는 제1단계(20), m개의 데이타들의 m-1개의 차이값들중 d(d=k-T-2-2a-5)값보다 작은 차이값이 존재하는지를 체크하고, 존재하면 두 데이타중 어느 한 데이타를 1비트의 스타트정보, T비트의 압축단계 플래그정보, s비트의 상태변환정보, 1비트의 새로운 비트정보, 두 데이타의 a 비트의 순서정보들, k-T-2-2a-s비트의 차이값정보로 된 k비트의 정보로 두 데이타 중 어느 한 데이타를 변환표시하는 제2단계, 2단계를 마친 m개의 데이타에 대해 m개의 데이타들의 m-1개의 차이값들중 d값보다 작은 차이값이 존재하지 않을 때까지 매회 마다 1비트의 새로운 비트정보를 입력받아 상기 2단계를 반복수행하는 제3단계(30), m개의 데이타들의 m-1개의 차이값들중 d값보다 작은 차이값이 더 이상 존재하지 않으면 상기 제1단계부터 제3단계를 반복수행하는 제4단계를 포함한다.
변환표시되는 데이타를 m개의 데이타들 중 첫번째 위치에 배치하는 것이 바람직하다.
보다 구체적으로 말하자면, 비트스트림으로부터 n-1(여기서, n는 km)비트를 취하는 단계(10)와, n-1비트와 1비트의 스타트정보로 된 n비트를 k(k는 2a+s+T+2+1이상이고 r이 존재하는 양의 정수)비트씩 m(k은 2이상의 양의 정수)개의 데이타로 분할하는 단계(20)와, m개의 데이타들의 m-1개의 차이값들중 d(d=k-T-2-2a-5)값보다 작은 차이값이 존재하는지를 체크하고. 존재하떤 두 데이타중 어느 한 데이타를 1비트의 스타트정보, T비트의 압축단계 플래그정보, s비트의 상태변환정보, 1비트의 새로운 비트정보, 두 데이타의 a비트의 순서정보들, k-T-2-2a-s비트의 차이값정보로 된 k비트의 정보로 두 데이타 중 어느 한 데이타를 변환표시하는 단계, m개의 데이타에 대해 m개의 데이타들의 m-1개의 차이값들중 d값보다 작은 차이값이 존재하지 않을 때까지 매회 마다 1비트의 새로운 비트정보를 입력받아 단계를 반복수행하는 단계(30)와, m개의 데이타들의 m-1개의 차이값들중 d값보다 작은 차이값이 더 이상 존재하지 않으면, 크기순서대로 m개의 데이타를 재배열하고 재배열된 m개의 데이타들의 존재하지 않을 당시의 순서정보들을 재배열, 즉 분류된 순서대로 저장하는 단계, 재배열된 첫번째 데이타를 제외한 나머지 데이타로부터 di(1≤i≤m-1)값을 감산처리하는 단계, n비트수에서 ma, 스타트정보, 압축단계정보, 새로운 비트정보, 및 상태변환정보를 뺀 나머지 비트수r을 구하고 r을 m으로 나누어 몫q를 구하고 b(b=k+(m-1)q+f)보다 r이 작은지를 체크하여,
ⅰ) r이 b이상인 경우
차이값이 모두 q이내일 때에는, 전체 n비트를 스타트정보, 압축단계정보, 새로운 비트정보, 상태변환정보, 순서정보(ma), 서브단계 정보, 소트된 첫번째 데이타, 감산처리된 q비트 이내의 데이타들의 차이값들(qx(m-1)) 및 n비트상의 나머지 비트들로 변환표시하며, 차이값이 1개만 q비트이상이고 나머지는 모두 (q-1)비트 이하일 때에는, 스타트정보, 압축단계정보, 새로운 비트정보, 상태변환정보, 순서정보(ma), 서브단계 정보, 소트된 첫번째 데이타, 감산처리된 q비트 이상인 1개의 데이타의 표시정보(k+(logm/log2), 나머지 감산처리된 q-1비트 이내의 데이타들의 차이값들((q-1)x(m-2)) 및 n비트상의 나머지 비트들로 표시하며,
ⅱ) r값이 b보다 작을 경우, q를 q-1로 하여, 차이값이 모두 q-1비트 이내일 때에는, 전체 n비트를 스타트정보, 압축단계정보, 새로운 비트정보, 상태변환정보, 순서정보(ma), 서브단계 정보, 소트된 첫번째 데이타,감산처리된 q-1비트이내의 데이타들의 차이값들((q-1)x(m-1)) 및 n비트상의 나머지 비트들로 표시하며, 차이값이 q-1비트 이상이 1개이고 나머지는 모두 q-2비트 이하일 때에는 전체 n비트를 스타트정보, 압축단계정보, 새로운 비트정보, 상태변환정보, 순서정보(ma), 서브단계 정보, 소트된 첫번째 데이타, 감산처리된 q-1비트이상인 1개의 데이타의 표시정보(K+(logm/log2), 나머지 감산처리된 q-2비트 이내의 데이타들의 차이값들((q-2)x(m-2)) 및 n비트상의 나머지 비트들로 표시하는 단계, n비트스트림에 대해 제1단계부터 제7단계를 반복수행하는 단계(40)를 포함한다.
여기서, 이상의 경우에 모두 해당되지 않을 경우에는 각 데이타에 미리 설정된 복수의 상태변수를 연산처리하고 연산처리된 결과의 데이타들을 가지고 상술한 과정을 다시 반복수행한다(50).
모든 상태변수를 가지고 상태변환을 하여도 그 이상의 압축이 안되면 압축을 멈추고 새로이 N비트 정보를 취하여 상술한 바와 동일한 방법으로 압축을 수행하게 된다.
제2도는 본 발명에 의한 압축방법의 동작을 나타내는 흐름도이다. 제2도를 참조하면, 초기에 N비트의 정보를 취하고 여기에 1비트의 스타트정보(5)를 부가한 N+1비트 정보를 취한다(100). N+1비트 정보를 m개의 k비트 데이타로 분할한다(102). 분할된 데이타들의 차이값d가 차이값문턱치D보다 작은 값이 존재하는지를 검토하고 존재하면 해당 두 데이타중 어느 한 데이타를 k-1비트로 변환시키고 새로운 1비트의 정보를 부가하여 새로운 k비트 데이타를 형성한다(106). 새로운 데이타와 나머지 데이타들의 차이값을 검토하기 위해 104단계를 수행한다. 그러므로, 루프1을 1회 반복 수행할 때마다 1비트씩 압축이 이루어지고 새로운 1비트의 정보가 다시 N+1비트의 정보를 형성하기 위해 새롭게 취해지게 된다.
104단계에서 작은 값이 존재하지 않게 되면, 데이타를 크기순서대로 분류하고 분류되기전의 데이타 순서정보를 취하고 Di값을 각 데이타들로 부터 감산처리한다(108).
연산처리된 n비트수에서 ma, 스타트정보, 압축단계정보, 새로운 비트정보, 및 상태변환정보를 뺀 나머지 비트수r을 구하고 r을 m으로 나누어 몫q를 구하고 b(b=k+(m-1)q+f)보다 r이 작은지를 체크하여(110), r이 b이상인 경우에서, 차이값이 모두 q이내일 때에는(112), 전체 n비트를 스타트정보, 압축단계정보, 새로운 비트정보, 상태변환정보, 순서정보(ma), 서브단계 정보, 소트된 첫번째 데이타, 감산처리된 q비트 이내의 데이타들의 차이값들(qx(m-1)) 및 n비트상의 나머지 비트들로 변환표시하며(114), 차이값이 1개만 q비트이상이고 나머지는 모두 (q-1)비트 이하일 때에는(116), 스타트정보, 압축단계정보, 새로운 비트정보, 상태변환정보, 순서정보(ma), 서브단계 정보, 소트된 첫번째 데이타, 감산처리된 q비트 이상인 1개의 데이타의 표시정보 (k+(logm/log2), 나머지 감산처리된 q-1비트 이내의 데이타들의 차이값들((q-1)x(m-2)) 및 n비트상의 나머지 비트들로 표시한다(118).
110단계에서 r이 b보다 작을 경우, q를 q-1로 하여, 차이값이 모두 q-1비트 이내일 때에는(120), 전체 n비트를 스타트정보, 압축단계정보, 새로운 비트정보, 상태변환정보, 감산처리된 q-1비트이내의 데이타들의 차이값들 ((q-1)x(m-1)) 및 n비트상의 나머지 비트들로 표시하며(122). 차이값이 q-1비트 이상이 1개이고 나머지는 모두 q-2비트 이하일 때에는(124) 전체 n비트를 스타트정보, 압축단계정보, 새로운 비트정보, 상태변환정보, 순서정보(ma), 서브단계 정보, 소트된 첫번째 데이타, 감산처리된 q-1비트이상인 1개의 데이타의 표시정보(k+(logm/log2), 나머지 감산처리된 q-2비트 이내의 데이타들의 차이값들((q-2)x(m-2)) 및 n비트상의 나머지 비트들로 표시한다(126). 루프2의 과정이 완료된다. 이상의 루프2에서 어느 조건에도 해당되지 않을 경우에는 상태변환정보에 따라 가산, 감산, 배타논리합 등의 연산방법으로 값을 변화시키면서 압축가능한 상태를 찾아내어 상태변환을 시키는(128) 루프3을 수행한다. 128단계에서 모든 상태변수를 다 사용하여 보아도 더 이상 데이타 압축이 안되는 조건에 도달하게 되면(130) 압축된 N+1비트 정보를 저장하고, 새로운 N비트정보를 취하기 위해 100단계를 수행하여 루프4를 이루게 된다.
상술한 본 발명의 압축방법은 후술되는 구체적인 실시예에 의해 보다 이해가 쉽게 될 것이다.
[실시예 1]
S : 1비트 스타트 정보
N : 127비트 입력정보
k : 16비트 데이타
m : 8개 분할수
T : 1비트
V : 1비트 세이브 정보
a : 3비트 데이타 순서 정보
e : 3비트 상태변환정보
D : k-s-T-V-2a-b=16-3-3*2-3=4비트이므로 차이값문턱치(D)는 15로 산정된다.
제1단계 : 스타트정보(S) 1과 127비트 정보(N) = 000,0011,0110,0110, 0110,0110,0110,0010, 0111,1100,0111,1101, 1000,1001,0110,0011, 0110,0110,0110,1010, 0111,0001,1101,1111, 0111,0100,1010,1111, 0110,1011,0101,1100를 취하여 얻은 128비트스트림을 16비트씩 8개의 데이타로 분할하면 다음 [표 1]과 같다.
[표 1]
제2단계 : 각 데이타들중 두 데이타간의 차이값d을 구하여 D보다 작은 값이 존재하는지를 체크한다. 이 경우 2번째인 6662h가 5번째인 666Ah보다 d=8만큼 작으므로 15(D)보다 작은 차이값(d)이 하나 존재하게 된다.
따라서, 5번째 데이타 66SAh를 S=0, T=1, V=?, b=000, at=001, a5=100, 6=1000에 의해 다음과 같이 변환한다.
01? 000 001 100 1000
그러므로, 새로운 세이브 비트?에 1이 새로 추가되면 변환된 데이타는 0110,0000,1100,1000=60C8으로 표현되며, 변환된 데이타를 첫번째 위치에 놓고 [표 1]을 다시 정리하면 [표 2]와 같이 된다.
[표 2]
따라서, 데이타 변환에 의해 128비트가 127비트로 1비트 압축되고 다시 새로운 1비트를 입력하여 새로운 128비트가 형성되게 된다.
제3단계 : [표 2]에 나타난 8개의 데이타에 대해 D보다 작은 차이값이 존재한지를 체크하고 없으므로 데이타를 올림차순으로 재정리하면 [표 3]과 같다.
[표 3]
재정리된 데이타들의 정리되기 전의 원위치정보를 재정리된 후의 순서에 따라 정리하면 다음과 같다.
000-010-111-101-110-011-001-100
모든 두 데이타들간의 차이값이 차이값 문턱치인 15이상이므로 Di(0i8) 만큼씩을 감산하면 [표 4]와 같이 표시된다.
[표 4]
128비트 증 원위치정보 24비트와 1비트의 스타트정보, 1비트의 단계정보, 1비트의 세이브 비트, 3비트의 상태변환정보를 뺀 나머지 비트수가 98비트이므로 98을 8로 나눈 몫이 12인데, 서브단계 플래그 비트를 2비트로 할 경우 데이타들 간의 차이값이 모두 12비트 이하인 경우는 16+7*12+2=102가 되어 98을 넘게되므로 성립이 안된다. 따라서, 모두 11비트이하로 할 경우에는 16+7*11+2=95가 되므로 절감비트수는 3비트가 된다. 실제 압축되는 비트수는 세이브 비트를 포함하면 4비트가 된다. 그러므로, 데이타를 그들의 차이값으로 표시하면,
00?, 000, 000-010-111-101-110-011-001-100, 00, 60C8h, di*7, w-1
으로 표시된다.
절감된 비트수 만큼의 새로이 입력한 비트정보 w가 '1010'라면, 새로이 준비된 128비트 정보는 다음과 같다.
0,0,1, 000, 000-010-111-101-110-011-001-100, 00, 0110,0000,1100,1000, 101,1000,1011, 100,1110,1011, 110,0111,0100, 001,1100,0001, 111,1011,1111, 110,1101,1010, 101,1110,1110, 010
이를 16비트 데이타로 분할하여 정리하면,
0010,0000,0010,1111, 0111,0011,0011,0000, 0110,0000,1100,1000, 1011,0001,0111,0011, 1010,1111,0011,1010, 0001,1100,0001,1111, 0111,1111,1011,0110, 1010,1111,0111,0010
이 되고 이를 16진수로 표현하면 다음 [표 5]와 같다.
[표 5]
크기순서로 재배열하고 그 차이값을 구하면 [표 6]과 같다.
[표 6]
15이하의 차이값이 존재하지 않으므로 Di만큼씩 감산하면 [표 7]과 같다.
[표 7]
[표 7]에 나타난 바와 같이 차이값들의 비트수가 모두 11비트이하가 되지 않으므로 각 데이타에 [표 8]에 나타난 미리 설정된 특정의 수를 가산하여 상태를 변환시켜 본다. 상태변환 플래그가 001일 때에 설정된 값은 다음 [표 8]과 같다.
[표 8]
[표 7]의 값과 [표 8]의 값을 서로 각각 더하면 [표 9]와 같다.
[표 9]
상기 가산과정에서 발생되는 오버플로우는 복구에는 지장이 없으므로 무시한다.
[표 9]의 데이타를 가지고 제2단계의 차이값문틱치D보다 작은 차이값이 존재하는지를 검토한다.
검토결과 두번째 데이탄촤 8번째 데이타의 차이값이 Ch=1100이므로 8번째 데이타 B1FFh를 S=0, R=1, V=?, b=001, a1=001, a8=111, 0=1100에 의해 다음과 같이 변환한다.
01? 001 001 111 1100
그러므로, 새로운 세이브 비트?에 0이 새로 추가되면 변환된 데이타는 0100,0100,1111,1100=44FCh으로 표현되며, 변환된 데이타를 첫번째 위치에 놓고 [표 9]을 다시 정리하면 [표 10]과 같이 된다.
[표 10]
따라서, 데이타 변환에 의해 128비트가 127비트로 1비트 압축되고 다시 새로운 1비트를 입력하여 새로운 128비트가 형성되게 된다.
만약 상태변환에 의해 차이값문턱치D이하의 차이값이 발생되지 않으면 제1단계를 수행하게 된다.
[실시예 2]
S : 1비트 스타트 정보
N : 511비트 입력정보
k : 32비트 데이타
m : 16개 분할수
T : 1비트
V : 1비트 세이브 정보
a : 4비트 데이타 순서정보
e : 4비트 상태변환정보
D : k-S-T-V-2a-b=32-3-4*2-4=17비트이므로 차이값문턱치(D)는 131071
제1단계 : 스타트정보(S) 1과 511비트 정보(N)를 취하여 얻은 512비트스트림을 32비트씩 16개의 데이타로 분할하면 다음 [표 1]과 같다.
[표 1]
제2단계 : 각 데이타들중 두 데이타간의 차이값d을 구하여 D보다 작은 값이 존재하는지를 체크한다. 없으므로 데이타를 올림차순으로 재정리하면 [표 2]과 같다.
[표 2]
재정리된 데이타들의 정리되기 전의 원위치정보를 재정리된 후의 순서에 따라 정리하면 다음과 같다.
0001-0100-1011-1110-0110-0111-0011-1111-0010-1010-0000-0101-1000-1101-1001
모든 두 데이타들간의 차이값이 차이값 문턱치인 131071 이상이므로 Di(0i16) 만큼씩을 감산하면 [표 3]와 같이 표시된다.
[표 3]
512비트 중 원위치정보 64비트와 1비트의 스타트정보, 1비트의 단계정보, 1비트의 세이브 비트, 4비트의 상태변환정보를 뺀 나머지 비트수가 441비트이므로 441을 16로 나눈 몫이 27인데, 서브단계 플래그 비트를 4비트로 할 경우 데이타들 간의 차이값이 모두 27비트 이하일 경우에는 32+15*27+4=441로 되어 절감비트수가 음수가 아니므로 성립한다. 그래서 차이값이 모두 27비트크기 이하의 값을 가진가를 검토하면 여기에 해당되지 않으므로 27비트이상이 1개일 때를 표현하는 식을 보면 32+(4+32)+26*14+4=436비트가 되는 데 1개만 27비트 이상이고 모두 26비트 이내가 되지 않으므로 데이타에 상태변수를 가산하여 점검을 다시 해야한다.
상태변수 플래그가 0001일 때의 상태변수를 [표 4]로 설정한다.
[표 4]
[표 4]의 값과 [표 3]의 값을 서로 각각 더하면 [표 5]와 같다.
[표 5]
[표 5]의 데이타를 가지고 제2단계의 차이값문턱치D보다 작은 차이값이 존재하는지를 검토한다.
검토결과 세번째 데이타와 15번째 데이타의 차이값이 44252이므로 3번째 데이타 7195D5Eh를 S=0, R=1, V=?, e=0001, a15=1110, a3=0011, d=01010110011011100에 의해 다음과 같이 변환한다.
01? 0001 1110 0011 01010110011011100
그러므로, 새로운 세이브 비트?에 1이 새로 추가되면 변환된 데이타는 63C6ACDCh으로 표현되며, 변환된 데이타를 첫번째 위치에 놓고 [표 5]을 다시 정리하면 [표 6]과 같이 된다.
[표 6]
[표 6]의 데이타를 가지고 제2단계의 차이값문턱치D보다 작은 차이값이 존재하는지를 검토한다.
검토결과 10번째 데이타와 16번째 데이타의 차이값이 101389이므로 10번째 데이타를 세이브 비트0과 함께 상술한 바와 동일한 방법으로 표현하면 41F38CODh으로 표현되며, 변환된 데이타를 첫번째 위치에 놓고 [표 6]을 다시 정리하면 [표 7]과 같이 된다.
[표 7]
만약 상태변환에 의해 차이값 문턱치D이하의 차이값이 발생되지 않으면 7가지의 모든 상태변환을 차례로 수행하여 본다. 그래도 D이하의 차이값이 존재하지 않으면 제1단계를 수행하게 된다.
본 발명의 신장방법은 상술한 압축방법을 역으로 수행하는 것으로써 N비트 정보로부터 N-X비트 정보를 취하는 제1단계와, N-X비트 정보를 제외한 나머지 X비트 정보를 N비트 정보로 신장하는 제2단계와, 제1 및 제2단계를 반복 순환하는 제3단계를 포함한다.
이상과 같이 본 발명에서는 비트스트림의 압축 및 신장에 있어서, 소정 길이의 비트정보를 복수의 데이타로 분할하고 각 데이타들간의 차이값에 의해 표시함으로써 비손실 압축이 가능하고 신장시에는 초기값에 차이값을 가산하는 것에 의해 데이타의 복원이 가능하게 된다.

Claims (6)

  1. 비트스트림으로부터 N비트 정보를 취하는 제1단계(N은 양의 정수), 상기 N비트의 정보를 N비트 미만의 X(NX)비트 정보로 압축하는 제2단계(X는 양의 정수), 비트스트림으로부터 새로운 N-X비트 정보를 취하는 제3단계, 압축된 X비트 정보와 새로운 N-X비트 정보로 새로운 N비트 정보를 구성하는 제4단계, 및 상기 새로운 N비트 정보가 압축가능하면 상기 제2단계부터 제4단계를 반복하고, 그렇지 않으면 상기 제2단계부터 제4단계를 반복함에 의해 압축된 데이타를 저장매체에 저장하는 제5단계를 구비한 것을 특징으로 하는 데이타 압축방법.
  2. 제1항에 있어서, 상기 제2단계는 상기 N비트의 정보와 1비트의 스타트정보로 된 N+1비트를 k(k는 2a+s+T+2+1이상인 양의 정수)비트씩 m(m은 2이상의 양의 정수)개의 데이타로 분할하는 제2-1단계(여기에서, a는 순서정보의 비트수, s는 상태변환정보의 비트수, T는 압축단계 플래그정보의 비트수이다), 상기 m개의 데이타들의 m-1개의 차이값들중 d(d=k-T-2-2a-s)값보다 작은 차이값이 존재하는지를 체크하고, 존재하면 두 데이타중 어느 한 데이타를 1비트의 스타트정보, 1비트의 압축단계 플래그정보, 두 데이타에 대한 a비트의 순서정보들, k-T-2-2a-s비트의 차이값정보로 된 k-1비트의 정보로 변환표시하는 제2-2단계, 및 상기 제2-2단계를 마친 m개의 데이타들의 m-1개의 차이값들 중 d값보다 작은 차이값이 존재하지 않을 때까지 매회 마다 1비트의 새로운 비트정보를 입혁받아 상기 2-2단계를 반복수행하는 제2-3단계를 포함하여 이루어짐을 특징으로 하는 데이타 압축방법.
  3. 제2항에 있어서, 상기 제2-2단계의 변환표시되는 데이타를 m개의 데이타들 중 첫번째 위치에 배치하는 것을 특징으로 하는 데이타 압축방법.
  4. 비트스트림으로부터 n-1(여기서, n는 k×m)비트를 취하고 n-1비트와 1비트의 스타트정보로 된 n비트를 k(k는 2a+s+T+2+1이상이고 r이 존재하는 양의 정수)비트씩 m(m은 2이상의 양의 정수)개의 데이타로 분할하는 제1단계(여기에서, a는 순서정보의 비트수, s는 상태변환정보의 비트수, T는 압축단계 플래그정보의 비트수이다), 상기 m개의 데이타들의 m-1개의 차이값들중 d(d=k-T-2-2a-s)값보다 작은 차이값이 존재하는지를 체크하고, 존재하면 두 데이타중 어느 한 데이타를 1비트의 스타트정보, 1비트의 압축단계 플래그정보, 두 데이타의 a비트의 순서정보들, k-T-2-2a-s비트의 차이값정보로 된 k-1비트의 정보로 변환표시하는 제2단계, 상기 2단계를 마친 m개의 데이타에 대해 m개의 데이타들의 m-1개의 차이값들중 d값보다 작은 차이값이 존재하지 않을 때까지 매회 마다 1비트의 새로운 비트정보를 입력받아 상기 2단계를 반복수행하는 제3단계, 상기 m개의 데이타들의 m-1개의 차이간들중 d값보다 작은 차이값이 더 이상 존재하지 않으면, 크기순서대로 m개의 데이타를 재배열하고 그 순서정보들을 저장하는 제4단계, 제4단계에서 재배열된 첫번째 데이타를 제외한 나머지 데이타로부터 소정의 di(1≤i≤m-1)값을 감산처리하는 제5단계, n비트수에서 m×a, 스타트정보, 압축단계정보, 새로운 비트정보, 및 상태변환정보를 뺀 나머지 비트수 r을 구하고, r을 m으로 나누어 몫q를 구하고, b(b=k+(m-1)q+f)보다 r이 작은지를 체크하는 제6단계(여기에서 f는 서브단계 정보비트수이다), r이 b이상인 경우에, 차이값이 모두 q이내일 때에는, 전체 n비트를 스타트정보, 압축단계정보, 새로운 비트정보, 상태변환정보, 순서정보(ma), 서브단계 정보, 소트된 첫번째 데이타, 감산처리된 q비트 이내의 데이타들의 차이값들(qx(m-1)) 및 n비트상의 새 비트를 받을 수 있는 나머지 비트들로 변환표시하며, 차이값이 1개만 q비트이상이고 나머지는 모두 (q-1)비트 이하일 때에는, 스타트정보, 압축단계정보, 새로운 비트정보, 상태변환정보, 순서정보(ma), 서브단계 정보, 소트된 첫번째 데이타, 감산처리된 q비트 이상인 1개의 데이타의 표시정보(k+(logm/log2), 나머지 감산처리된 q-1비트 이내의 데이타들의 차이값들((q-1)x(m-2)) 및 n비트상의 새 비트를 받을 수 있는 나머지 비트들로 표시하는 제7단계, r값이 b보다 작을 경우, 0를 q-1로 하여, 차이값이 모두 q-1비트 이내일 때에는, 전체 n비트를 스타트정보, 압축단계정보, 새로운 비트정보, 상태변환정보, 순서정보(ma), 서브단계 정보, 소트된 첫번째 데이타, 감산처리된 q-1비트이내의 데이타들의 차이값들 ((q-1)x(m-1)) 및 n비트상의 나머지 비트들로 표시하며, 차이값이 q-1비트 이상이 1개이고 나머지는 모두 q-2비트 이하일 때에는 전체 n비트를 스타트정보, 압축단계정보, 새보운 비트정보, 상태변환정보, 순서정보(ma), 서브단계 정보, 소트된 첫번째 데이타, 감산처리된 q-1비트이상인 1개의 데이타의 표시정보(k+(logm/log2), 나머지 감산처리된 q-2비트 이내의 데이타들의 차이값들((q-2)x(m-2)) 및 n비트상의 새 비트를 받을 수 있는 나머지 비트들로 표시하는 제8단계, 상기 제7 및 제8단계를 마친 n비트스트림에 대해 상기 제2단계부터 제8단계를 반복수행하되, 상기 제7단계 및 제8단계가 수행되지 않는 경우에는 비트스트림으로부터 새로운 n-1 비트를 취하여 다시 제1단계부터 제9단계를 반복수행하는 제9단계를 포함함을 특징으로 하는 데이타 압축방법.
  5. 비트스트림으로부터 n-1(여기서, n는 k×m)비트를 취하고 n-1비트와 1비트의 스타트정보로 된 n비트를 k(k는 2a+s+T+2+1이상이고 r이 존재하는 양의 정수)비트씩 m(m은 2이상의 양의 정수)개의 데이타로 분할하는 제1단계(여기에서, a는 순서정보의 비트수, s는 상태변환정보의 비트수, T는 압축단계 플래그정보의 비트수이다), 상기 m개의 데이타들의 m-1개의 차이값들중 d(d=k-T-2-2a-s)값보다 작은 차이값이 존재하는지를 체크하고, 존재하면 두 데이타중 어느 한 데이타을 1비트의 스타트정보, 1비트의 압축단계 플래그정보, 두 데이타의 a비트의 순서정보들, k-T-2-2a-s비트의 차이값정보로 된 k-1비트의 정보로 변환표시하는 제2단계, 상기 2단계를 마친 m개의 데이타에 대해 m개의 데이타들의 m-1개의 차이값들중 d값보다 작은 차이값이 존재하지 않을 때까지 매회 마다 1비트의 새로운 비트정보를 입력받아 상기 2단계를 반복수행하는 제3단계, 상기 m개의 데이타들의 m-1개의 차이값들중 d값보다 작은 차이값이 더 이상 존재하지 않으면, 크기순서대로 m개의 데이타를 재배열하고 그 순서정보들을 저장하는 제4단계, 제4단계에서 재배열된 첫번째 데이타를 제외한 나머지 데이타로부터 소정의 di(1≤i≤m-1)값을 감산처리하는 제5단계, n비트수에서 m×a, 스타트정보, 압축단계정보, 새로운 비트정보, 및 상태변환정보를 뺀 나머지 비트수 r을 구하고, r을 m으로 나누어 몫q를 구하고, b(b=k+(m-1)q+f)보다 r이 작은지를 체크하는 제6단계(여기에서 f는 서브단계 정보비트수이다), r이 b이상인 경우에, 차이값이 모두 q이내일 때에는, 전체 n비트를 스타트정보, 압축단계정보, 새로운 비트정보, 상태변환정보, 순서정보(ma), 서브단계 정보, 소트된 첫번째 데이타, 감산처리된 q비트 이내의 데이타들의 차이값들(qx(m-1)) 및 n비트상의 새 비트를 받을 수 있는 나머지 비트들로 변환표시하며, 차이값이 1개만 q비트이상이고 나머지는 모두 (q-1)비트 이하일 때에는, 스타트정보, 압축단계정보, 새로운 비트정보, 상태변환정보, 순서정보(ma), 서브단계 정보, 소트된 첫번째 데이타, 감산처리된 q비트 이상인 1개의 데이타의 표시정보(k+(logm/log2), 나머지 감산처리된 q-1비트 이내의 데이타들의 차이값들((q-1)x(m-2)) 및 n비트상의 새 비트를 받을 수 있는 나머지 비트들로 표시하는 제7단계, r값이 b보다 작을 경우, q를 q-1로 하여, 차이값이 모두 q-1비트 이내일 때에는, 전체 n비트를 스타트정보, 압축단계정보, 새로운 비트정보, 상태변환정보, 순서정보(ma), 서브단계 정보, 소트된 첫번째 데이타, 감산처리된 q-1비트이내의 데이타들의 차이값들 ((q-1)x(m-1)) 및 n비트상의 나머지 비트들로 표시하며, 차이값이 q-1비트 이상이 1개이고 나머지는 모두 q-2비트 이하일 때에는 전체 n비트를 스타트정보, 압축단계정보, 새로운 비트정보, 상태변환정보, 순서정보(ma), 서브단계 정보, 소트된 첫번째 데이타, 감산처리된 q-1비트이상인 1개의 데이타의 표시정보(k+(logm/og2), 나머지 감산처리된 q-2비트 이내의 데이타들의 차이값들((q-2)x(m-2)) 및 n비트상의 새 비트를 받을 수 있는 나머지 비트들로 표시하는 제8단계, 상기 제7 및 제8단계를 마친 n비트스트림에 대해 상기 제2단계부터 제8단계를 반복수행하되, 상기 제7단계 및 제8단계가 수행되지 않는 경우에는 데이타값을 소정의 값들과의 연산을 통하여 변환하고, 상태변환정보 및 서브단계 정보를 추가하고 상기 제2단계부터 제9단계를 반복수행하여 압축하는 제9단계, 및 상기 제9단계에서 1비트 이상 압축이 이루어지지 않는 경우에는 비트스트림으로부터 새로운 n-1 비트를 취하여 다시 제1단계부터 제9단계를 반복수행하는 제10단계를 포함함을 특징으로 하는 데이타 압축방법.
  6. 제5항에 있어서, 상기 제9단계에서의 연산은 가산, 감산 또는 배타논리합 중의 어느 하나인 것을 특징으로 하는 데이타 압축방법.
KR1019950017152A 1995-06-23 1995-06-23 데이타 압축 및 신장방법 KR100224815B1 (ko)

Priority Applications (5)

Application Number Priority Date Filing Date Title
KR1019950017152A KR100224815B1 (ko) 1995-06-23 1995-06-23 데이타 압축 및 신장방법
CNB961087722A CN1150679C (zh) 1995-06-23 1996-06-21 压缩数据的方法
JP16222796A JP3311241B2 (ja) 1995-06-23 1996-06-21 データ圧縮及び伸長方法
DE19625157A DE19625157A1 (de) 1995-06-23 1996-06-24 Datenkompressions- und -expansionsverfahren
US08/669,704 US5832037A (en) 1995-06-23 1996-06-24 Method of compressing and expanding data

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019950017152A KR100224815B1 (ko) 1995-06-23 1995-06-23 데이타 압축 및 신장방법

Publications (2)

Publication Number Publication Date
KR970004368A KR970004368A (ko) 1997-01-29
KR100224815B1 true KR100224815B1 (ko) 1999-10-15

Family

ID=19418059

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019950017152A KR100224815B1 (ko) 1995-06-23 1995-06-23 데이타 압축 및 신장방법

Country Status (5)

Country Link
US (1) US5832037A (ko)
JP (1) JP3311241B2 (ko)
KR (1) KR100224815B1 (ko)
CN (1) CN1150679C (ko)
DE (1) DE19625157A1 (ko)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2757287B1 (fr) * 1996-12-17 1999-02-26 Sgs Thomson Microelectronics Microprocesseur dedie au traitement de flux de bits dans un systeme de compression/decompression d'images animees
FR2757288B1 (fr) * 1996-12-17 1999-02-26 Sgs Thomson Microelectronics Microprocesseur dedie au traitement de flux de bits dans un systeme de compression/decompression d'images animees
KR100273110B1 (ko) * 1997-02-26 2000-12-01 윤종용 엠펙 시스템 디코더 및 이 디코더의 데이터 처리 방법
JP3580982B2 (ja) * 1997-04-30 2004-10-27 パイオニア株式会社 情報記録方法及び装置
US6624761B2 (en) 1998-12-11 2003-09-23 Realtime Data, Llc Content independent data compression method and system
US6604158B1 (en) 1999-03-11 2003-08-05 Realtime Data, Llc System and methods for accelerated data storage and retrieval
US6601104B1 (en) 1999-03-11 2003-07-29 Realtime Data Llc System and methods for accelerated data storage and retrieval
US20010047473A1 (en) 2000-02-03 2001-11-29 Realtime Data, Llc Systems and methods for computer initialization
US6925249B1 (en) * 2000-07-28 2005-08-02 Microsoft Corporation System and method for storing compressed data onto a storage medium
KR100389702B1 (ko) * 2000-09-18 2003-06-27 주식회사 보람씨앤씨 비트치환에 의한 무손실 데이터압축 및 복원방법
US8692695B2 (en) 2000-10-03 2014-04-08 Realtime Data, Llc Methods for encoding and decoding data
US7417568B2 (en) 2000-10-03 2008-08-26 Realtime Data Llc System and method for data feed acceleration and encryption
US9143546B2 (en) 2000-10-03 2015-09-22 Realtime Data Llc System and method for data feed acceleration and encryption
US7386046B2 (en) 2001-02-13 2008-06-10 Realtime Data Llc Bandwidth sensitive data compression and decompression
KR100871528B1 (ko) * 2003-06-30 2008-12-05 파나소닉 주식회사 기록매체, 재생장치, 기록방법, 재생방법
CN100365939C (zh) * 2004-02-11 2008-01-30 中国科学院空间科学与应用研究中心 十二位计数压缩电路
CN110840430B (zh) * 2018-08-21 2022-09-13 北京万生人和科技有限公司 腹内压数据筛选方法、计算机可读存储介质、腹内压数据筛选装置
CN109309501B (zh) * 2018-09-12 2022-04-29 成都宝通天宇电子科技有限公司 高精度多环数据压缩方法
CN110098837B (zh) * 2019-04-08 2020-11-06 深圳市华星光电技术有限公司 数据编码方法、解码方法、相关装置及存储介质

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2065578C (en) * 1991-04-22 1999-02-23 David W. Carr Packet-based data compression method
JP3015134B2 (ja) * 1991-04-23 2000-03-06 キヤノン株式会社 画像処理方法及び装置
FR2687259B1 (fr) * 1992-02-11 1994-05-06 Ouest Standard Telematique Sa Procede de compression de donnees pour systeme de transmission par unites de donnees de protocole, procede de decompression et dispositif correspondant.
US5561688A (en) * 1993-12-29 1996-10-01 International Business Machines Corporation Real-time digital audio compression/decompression system

Also Published As

Publication number Publication date
JPH0918346A (ja) 1997-01-17
CN1147181A (zh) 1997-04-09
DE19625157A1 (de) 1997-01-02
JP3311241B2 (ja) 2002-08-05
US5832037A (en) 1998-11-03
CN1150679C (zh) 2004-05-19
KR970004368A (ko) 1997-01-29

Similar Documents

Publication Publication Date Title
KR100224815B1 (ko) 데이타 압축 및 신장방법
US5838964A (en) Dynamic numeric compression methods
RU2125765C1 (ru) Способ и устройство сжатия символов, стохастический кодер (варианты)
US5175543A (en) Dictionary reset performance enhancement for data compression applications
US5751860A (en) Method for compressing and decompressing digital image data
CA2131823A1 (en) Method for data compression having an improved encoding algorithm which utilizes a token stacking technique
KR19980081853A (ko) 그래픽 이미지 압축 및 복원 방법
US5049880A (en) Bit-wise run-length encoding for data compression
US4866440A (en) Method for compressing and restoring data series and apparatus for realizing same
JPS6345684A (ja) 画像圧縮装置
KR100359118B1 (ko) 균일 엔트로피 데이터에 대한 비손실 압축방법
US20030113029A1 (en) Skim encoding method for compression of a two dimensional array of data
JP3136191B2 (ja) デ−タ伸張装置
US5739778A (en) Digital data formatting/deformatting circuits
EP0411691B1 (en) Memory architecture and circuit for hashing
US6501395B1 (en) System, method and computer readable medium for compressing a data sequence
JP2003273746A (ja) 可変長符号復号装置
JPH02190080A (ja) 画像符号化装置
JP3199291B2 (ja) ハフマン復号化テーブルの構成方法
JP3152772B2 (ja) 画像データ復元装置
JP5202919B2 (ja) 特性データ圧縮装置、特性データ圧縮方法、特性データ圧縮プログラム、特性データ伸長装置、特性データ伸長方法、特性データ伸長プログラム、情報処理装置および画像処理装置
KR19990085045A (ko) 비손실 데이터 압축 및 신장방법
JPH06164944A (ja) 画像データの圧縮方法およびその装置ならびに画像データの復元方法およびその装置
JP2788384B2 (ja) データ圧縮装置およびデータ復元装置
JP2003087573A (ja) 画像圧縮装置及び画像伸張装置

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E902 Notification of reason for refusal
E601 Decision to refuse application
J201 Request for trial against refusal decision
B701 Decision to grant
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20060629

Year of fee payment: 8

LAPS Lapse due to unpaid annual fee