KR100445633B1 - 데이터 압축 및 복원 방법 - Google Patents

데이터 압축 및 복원 방법 Download PDF

Info

Publication number
KR100445633B1
KR100445633B1 KR10-2001-0064644A KR20010064644A KR100445633B1 KR 100445633 B1 KR100445633 B1 KR 100445633B1 KR 20010064644 A KR20010064644 A KR 20010064644A KR 100445633 B1 KR100445633 B1 KR 100445633B1
Authority
KR
South Korea
Prior art keywords
data
value
counter
delta
compression
Prior art date
Application number
KR10-2001-0064644A
Other languages
English (en)
Other versions
KR20030032679A (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 KR10-2001-0064644A priority Critical patent/KR100445633B1/ko
Priority to US10/270,869 priority patent/US7020340B2/en
Priority to JP2002301036A priority patent/JP4064782B2/ja
Publication of KR20030032679A publication Critical patent/KR20030032679A/ko
Application granted granted Critical
Publication of KR100445633B1 publication Critical patent/KR100445633B1/ko

Links

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/46Conversion to or from run-length codes, i.e. by representing the number of consecutive digits, or groups of digits, of the same kind by a code word and a digit indicative of that kind
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

여기에 개시된 데이터 압축 방법은, 연속된 n(n은 양의 정수) 개의 데이터들 중 인접한 2 개의 데이터들의 차들이 모두 기준값보다 작을 때 상기 차들에 근거해서 델타 데이터를 생성하고, 상기 차들 중 적어도 하나가 기준값보다 작지 않고 그리고 적어도 하나의 상기 델타 데이터가 저장되었을 때, 상기 차들에 근거한 압축 동작이 수행되었음을 나타내는 커맨드, 상기 저장된 델타 데이터의 개수 그리고 상기 저장된 델타 데이터(들)를(을) 압축 데이터로서 출력하는 단계한다. 이와 같은 본 발명의 압축 방법은 종래의 RLC 압축 방법 또는 변형(modified)-RLC 압축 방법에 비해 압축 효율이 높다.

Description

데이터 압축 및 복원 방법{METHOD FOR COMPRESSING AND DECOMPRESSING DATA}
본 발명은 데이터 압축 방법에 관한 것으로, 좀 더 구체적으로는 연속된 데이터들의 변화량이 작을 때 압축 효율을 높일 수 있는 데이터 압축 방법에 관한 것이다.
이진(binary) 영상의 데이터를 압축하기 위한 기법 가운데 대표적인 방법으로는 RLC(run length coding)가 있다. 이 압축 방법은 연속적으로 반복되는 데이터를 반복 횟수와 데이터 쌍으로 대체하는 것으로, 반복되는 데이터의 크기가 크거나 또는 빈번하게 나타날 때 압축 효율이 높다. 특히, 영상 데이터에 있어서 동일한 색상을 표현하기 위한 데이터는 동일하므로 RLC 방법에 의한 압축은 매우 효율적이다. RLC의 가장 큰 장점은 압축 방법이 간단해서 구현하는 것이 용이하다는 점이다. 이와 같은 RLC 압축 기법은 영상 및 음성과 같은 멀티미디어 데이터의 압축뿐만 아니라 시스템들 간의 데이터 전송에서도 사용된다.
다음 예제를 통해서 RLC 방법이 설명된다.
데이터 열 1 :
0x00, 0x01, 0x02, 0x03, 0x04, …, 0xfc, 0xfd, 0xfe, 0xff
데이터 열 2 :
0x20, 0x22, 0x28, 0x25, 0x21, …, 0x23, 0x21, 0x25, 0x27
데이터 열 3 :
0x0a, 0x0a, 0x0a, 0x0a, 0x0a, …, 0x0a, 0x0a, 0x0a, 0x0a
데이터 열 4 :
0x05, 0x11, 0x3f, 0x2e, 0x91, …, 0x0a, 0xab, 0x7f, 0x19
데이터 열 1은 16진수로 표현된 1 바이트(즉, 8 비트) 데이터가 256 개인 256 바이트(bytes)의 데이터 열이다. 데이터 열 2는 16진수로 표현된 1 바이트 데이터가 256 개인 256 바이트(bytes)의 데이터 열이다. 데이터 열 3은 16진수로 표현된 1 바이트 데이터 '0a'가 256 개인 256 바이트의 데이터 열이다. 그리고 데이터 열 3은 16 진수로 표현된 1 바이트 데이터들이 일정한 규칙없이 나열된 256 바이트의 데이터 열이다.
RLC 기법에 의해서 데이터 열 1 내지 3을 압축하면 다음과 같다.
데이터 열 1-1 :
(0x00:0x00), (0x00:0x01), (0x00:0x02), (0x00:0x03), (0x00:0x04), …,
(0x00:0xfc), (0x00:0xfd), (0x00:0xfe), (0x00:0xff)
데이터 열 2-1 :
(0x00:0x20), (0x00:0x22), (0x00:0x28), (0x00:0x25), (0x00:x21), …,
(0x00:0x23), (0x00:0x21), (0x00:0x25), (0x00:0x27)
데이터 열 3-1 :
(0xff:0x0a)
데이텨 열 4-1 :
(0x00:0x05), (0x00:0x11), (0x00:0x3f), (0x00:0x2e), (0x00:0x91), …,
(0x00:0x0a), (0x00:0xab), (0x00:0x7f), (0x00:0x19)
RLC의 데이터 표시 형식은(반복되는 데이터 갯수:데이터)이다. 예를 들어, 데이터 열 1에서 16 진수 데이터 '00'은 1번 반복되므로 (0x00:0x00)으로 변환된다. 다른 예로, 데이터 열 3에서 16 진수 데이터 '0a'는 256번 반복되므로 (0xff:0x0a)로 변환된다.
이와 같은 RLC 방법에 의하면, 데이터 열 1에 포함된 256 바이트 데이터는256*(1+1) 즉, 512 바이트 데이터로 변환되고, 데이터 열 2에 포함된 256 바이트 데이터는 256*(1+1) 즉, 512 바이트 데이터로 변환되며, 데이터 열 3에 포함된 256 바이트 데이터는 1*(1+1) 즉, 2 바이트 데이터로 변환되고, 그리고 데이터열 3에 포함된 256 바이트 데이터는 256*(1+1) 즉, 512 바이트 데이터로 변환된다.
정리하면, 데이터 열 1 내지 4에 포함된 768 바이트 데이터는 RLC 방법에 의해 512+512+2+512=1538 바이트 데이터로 변환된다. 이는 원래 데이터 열 1 내지 4의 크기(256+256+256+256=1024 바이트)에 비해 1.5 배 증가한 것이다. 인접한 일련의 데이터들이 서로 다른 값을 갖는 경우가 빈번하게 나타날 때 RLC 압축은 오히려 데이터의 용량을 증대시키는 결과를 초래함을 알 수 있다.
이러한 문제점을 해결하기 위해 변형(modified)-RLC가 제안되었다. 변형-RLC에서는 원래의 데이터를 (커맨드:데이터[,데이터, 데이터, …, 데이터]) 형식으로 변환한다. 커맨드(command)는 연속적으로 동일한 데이터의 개수 또는 연속적으로 다른 데이터의 개수를 나타내며, 커맨드들과 커맨드들 각각의 의미가 표 1에 정리되어 있다.
표 1에서 알 수 있는 바와 같이, 변형-RLC는 최대 128 개의 데이터가 연속적으로 동일할 때와 최대 128 개의 데이터가 연속적으로 다른 경우까지 표현할 수 있다. 변형-RLC를 이용하여 데이터 열 1 내지 3을 압축한 결과가 다음 데이터 열 1-2 내지 4-2이다.
데이터 열 1-2
(0x80 : 0x01, 0x02, 0x03, …, 0x7d, 0x7e, 0x7f)
(0x80 : 0x80, 0x81, 0x82, …, 0xfd, 0xfe, 0xff)
데이터 열 2-2
(0x80 : 0x20, 0x22 0x28 …, 0x23, 0x21, 0x22)
(0x80 : 0x25, 0x21, 0x27, …, 0x21, 0x25, 0x27)
데이터 열 3-2
(0x7f:0x0a)
(0x7f:0x0a)
데이터 열 4-2
(0x80 : 0x05, 0x11, 0x3f, …, 0x5c, 0x00, 0x39)
(0x80 : 0x11, 0x81, 0x3f, …, 0xab, 0x7f, 0x19)
데이터 열 1에서, 256 개의 데이터가 서로 다르므로 변형-RLC에 의하면 데이터 열 1-2는 128 개씩 두 그룹으로 나뉘어지고, 데이터 열 2에서도 256 개의 데이터가 서로 다르므로 데이터 열 2-2는 128 개씩 두 그룹으로 나뉘어진다.
256 바이트인 데이터 열 1을 변형-RLC로 압축했을 때 데이터 열 1-2는 (1+128)*2 = 258 바이트가 되고, 256 바이트인 데이터 열 2를 변형-RLC로 압축했을 때 데이터 열 2-2는 (1+128)*2 = 258 바이트가 되고, 256 바이트인 데이터 열 3를 변형-RLC로 압축했을 때 데이열 3-2는 (1+1)*2 = 4바이트가 되며, 그리고 256 바이트인 데이터 열 4를 변형-RLC로 압축했을 때 데이터 열 4-2는 (1+128)*2 = 258 바이트가 된다. 즉, 전체 1024 바이트는 258+258+4+258=778 바이트로 압축되어서 0.75 배의 압축 효과를 얻을 수 있다. 그러나, 데이터 열 1, 2 및 4와 같이 연속되는 일련의 데이터들이 빈번하게 변경되는 경우에는 여전히 압축 효율이 떨어짐을알 수 있다.
일반적으로 멀티미디어 데이터 특히, 영상 데이터에서 연속되는 일련의 데이터는 점진적으로 변화하는 경향이 있다. 예를 들어, 사람의 얼굴을 카메라로 촬영해서 영상 데이터로 변환할 때, 영상 데이터의 대부분은 피부 색에 대응하는 데이터이지만 빛의 방향에 따라 피부 색이 조금씩 다르므로 영상 데이터 역시 조금씩 다른 값을 갖게 된다. RLC뿐만 아니라 변형-RLC는 상술한 바와 같이 명암을 표시하기 위해 인접한 데이터들이 조금씩 다른 값을 가질 때 압축율은 매우 낮아질 뿐만 아니라 오히려 압축된 데이터의 크기가 커지는 문제점이 있었다.
따라서, 본 발명의 목적은 상술한 바와 같은 문제점을 해결하기 위해 제안된 것으로, 인접한 데이터들의 변화량이 작을 때 압축 효율을 높일 수 있는 데이터 압축 방법을 제공하는데 있다.
본 발명의 다른 목적은 인접한 데이터들의 변화량이 작을 때 압축 효율을 높일 수 있는 데이터 압축 방법으로 압축된 데이터를 원래의 데이터로 복원하는 방법을 제공하는데 있다.
도 1은 본 발명의 바람직한 실시예에 따른 데이터 압축/복원 시스템의 구성을 보여주는 블록도;
도 2a 내지 도 2d는 도 1에 도시된 데이터 압축/복원 시스템(2)에서 본 발명의 바람직한 실시예에 따른 델타-RLC 방식이 수행되는 제어 수순을 보여주는 플로우차트들; 그리고
도 3a 내지 도 3d는 도 1에 도시된 데이터 압축/복원 시스템(2)의 데이터 복원 동작을 보여주는 플로우차트들이다.
1 : 데이터 프로세싱 시스템 2 : 데이터 압축/복원 시스템
10 : 데이터 압축기 20 : 어드레스 발생기
30 : 버퍼 40 : 데이터 복원기
(구성)
상술한 바와 같은 목적을 달성하기 위한 본 발명의 일 특징에 따른 데이터 압축기에서 데이터 압축하는 방법은 다음과 같다. 먼저, 데이터 압축기는 연속된 n(n은 양의 정수) 개의 데이터들을 받아들이고 상기 데이터들 중 인접한 2 개의 데이터들 각각의 차를 계산한다. 상기 차들이 모두 기준값보다 작을 때, 상기 데이터 압축기는 상기 차들에 근거해서 델타 데이터를 생성하고, 상기 연속된 n 개의 데이터에 연이은 n 개의 데이터들을 받아들인 후 상기 차 계산 단계로 리턴한다. 상기 차들 중 적어도 하나가 상기 기준값보다 작지 않고 그리고 상기 델타 데이터가 적어도 하나 생성되었을 때, 상기 데이터 압축기는 상기 차들에 근거해서 압축되었음을 나타내는 커맨드, 상기 델타 데이터의 개수 그리고 상기 델타 데이터(들)를(을) 출력한다.
이 실시예에 있어서, 상기 델타 데이터를 생성하는 방법은, 상기 인접한 2 개의 데이터들 각각의 상기 차를 대응하는 델타값으로 변환하고, 상기 델타값들을 직렬로 연결해서 상기 델타 데이터를 생성한다.
본 발명의 다른 특징에 따른 데이터 압축기의 데이터 압축 방법은 다음과 같다. 먼저 상기 데이터 압축기는 현재 데이터를 받아들인다. 다음 상기 데이터 압축기는 상기 현재 데이터를 이전 데이터로 치환한다. 상기 데이터 압축기는 상기 이전 데이터에 연이은 새로운 현재 데이터를 받아들인다. 상기 데이터 압축기는 상기 이전 데이터와 상기 현재 데이터의 차를 계산하고 저장한다. 상기 데이터 압축기는 상기 이전 데이터와 상기 현재 데이터의 차가 0보다 크고 기준값보다 작을 때, 제 1 카운터의 값을 증가시키고, 상기 제 1 카운터의 값이 k(k는 양의 정수)보다 작을 때 상기 치환 단계로 리턴하고, 그리고 상기 제 1 카운터의 값이 k일 때, 상기 차들에 근거해서 델타 데이터를 생성한다. 상기 이전 데이터와 상기 현재 데이터의 차가 0이거나 또는 기준값보다 크며 그리고 상기 델타 데이터가 적어도 한개 생성되었을 때, 상기 데이터 압축기는 커맨드, 상기 델타 데이터(들)의 개수 그리고 상기 델타 데이터(들)를(을) 출력한다.
본 발명의 다른 특징에 따른 데이터 복원기의 데이터 복원 동작은 다음과 같다. 먼저 데이터 복원기는 커맨드를 받아들인다. 상기 커맨드가 상기 차들에 근거한 압축을 나타내는 커맨드일 때, 상기 데이터 복원기는 압축된 데이터의 개수, 제 1 데이터 그리고 제 2 데이터를 받아들인 후, 상기 제 1 및 제 2 데이터들로부터 원래의 n 개의 데이터를 복원하며, 카운터의 값을 증가시킨다. 상기 동작들은 상기 압축된 데이터의 개수와 상기 카운터의 값이 일치할 때까지 반복적으로 수행된다.
(실시예)
본 발명의 데이터 압축 방법은, 연속된 n(n은 양의 정수) 개의 데이터들 중 인접한 2 개의 데이터들의 차들이 모두 기준값보다 작을 때 상기 차들에 근거해서 델타 데이터를 생성한다. 이와 같은 본 발명의 압축 방법은 종래의 RLC 압축 방법 또는 변형(modified)-RLC 압축 방법에 비해 압축 효율이 높다
이하 첨부된 도면들을 참조하여 본 발명의 바람직한 실시예를 설명한다.
도 1은 본 발명의 바람직한 실시예에 따른 데이터 압축/복원 시스템의 구성을 보여주는 블록도이다. 도 1을 참조하면, 데이터 압축/복원 시스템(2)은 데이터 압축기(10), 어드레스 발생기(20), 버퍼(30), 그리고 데이터 복원기(40)를 포함한다. 데이터 압축기(10)는 데이터 프로세싱 시스템(data processing system : 1)으로부터 제공되는 데이터(Di)를 받아들여서 본 발명의 델타-RLC 압축 프로세스 또는일반적인 변형(modified)-RLC 압축 프로세스를 수행한다. 데이터 압축기(10)가 압축 동작을 수행하는 동안 생성되는 중간 데이터는 버퍼(30)에 저장되며, 압축 동작이 완료되면 커맨드(CMD)와 압축된 데이터(RLC_DATA)는 데이터 프로세싱 시스템(1)으로 전달된다. 상기 데이터 압축기(10)는 후술될 압축 동작에서 필요한 레지스터들(11-15)과 카운터들(16-19)을 포함한다. 어드레스 발생기(20)는 데이터 압축기(10)로부터의 제어 신호(CTRL)에 응답해서 데이터 압축기(10)로부터 출력되는 데이터가 저장될 버퍼(30)의 위치를 나타내는 인덱스 어드레스(INDEX)를 발생한다. 도 1에 도시된 데이터 압축/복원 시스템(2)의 구체적인 압축/복원 동작은 이하 상세히 설명된다.
본 발명의 바람직한 실시예에서 데이터 압축/복원 시스템(2)은 연속된 4 개의 데이터들 D1, D2, D3 및 D4를 델타-RLC 압축 기법을 이용하여 다음 수학식 1과 같이 압축한다.
(D1, D2, D3, D4)
=(First Data : Concatenation{Delta(D1, D2), Delta(D2, D3), Delta(D3, D4)})
=(First Data : Delta Data)
표 2는 두 번째 데이터(D2)와 첫 번째 데이터(D1)의 차의 절대값 및 두 번째 데이터(D2)와 첫 번째 데이터(D1)의 차에 각각 대응하는 델타값을 보여주고 있다. 그리고 다음 표 3은 세 번째 데이터(D3)와 두 번째 데이터(D2)의 차의 절대값(또는 네 번째 데이터(D4)와 세 번째 데이터(D3)의 차의 절대값) 또는 세 번째 데이터(D3)와 두 번째 데이터(D2)의 차(또는 네 번째 데이터(D4)와 세 번째 데이터(D3)의 차)에 대응하는 델타값을 보여주고 있다.
본 발명의 실시예에서는, 인접한 두 데이터의 차를 이용하는 대신에 인접한 두 데이터의 차의 절대값을 이용하여 델타값을 계싼한다. 발명의 바람직 한 실시예에 따른 데이터 압축/복원 시스템(2)의 동작을 용이하게 설명하기 위해서 앞서 나열된 데이터 열 1 내지 4를 압축하는 과정을 예로써 설명한다.
데이터 열 1의 연속된 4 개의 데이터들(0x00, 0x01, 0x02, 0x03)에서 인접한 두 개의 데이터의 차는 모두 '1'이다. 이 때, 첫 번째 데이터 '0x00'와 두 번째 데이터 '0x01'의 델타값Delta(D1, D2)은 '00'이고, 두 번째 데이터 '0x01'과 세 번째 데이터 '0x02'의 델타값 Delta(D2, D3)은 '000'이고 그리고 세 번째 데이터 '0x02'와 네 번째 데이터 '0x03'의 델타값은 '000'이다. 첫 번째 데이터부터 네 번째 데이터 사이의 인접한 2 개의 데이터들의 델타값들 '00', '000' 그리고 '000'을 직렬로 연결하면 이진수 '0000 0000'이 된다. 이를 16 비트로 표현하면 '0x00'가 된다.
정리하면 다음 수학식 2와 같다.
(0x00, 0x01, 0x02, 0x03)
= (0x00:Concatenation{0b00, 0b000, 0b000})
= (0x00:0x00)
수학식 2의 결과에서 앞의 '0x00'은 델타-RLC 압축이 수행된 첫 번째 데이터(D1)이고, 뒤의 '0x00'은 델타값들 '00', '000' 및 '000'을 직렬로 연결한 델타 데이터이다.
또다른 예로, 데이터 열 2의 연속된 4 개의 데이터들(0x20, 0x22, 0x28, 0x25)을 델타-RLC 압축하면 다음 수학식 3과 같다.
(0x20, 0x22, 0x28, 0x25)
= (0x00:Concatenation{b01, 0b101, 0b010})
= (0x00:0x6A)
연속된 4 개의 데이터들 D1, D2, D3 및 D4을 압축할 때, 두 번째 데이터(D2)와 첫 번째 데이터(D1)의 차에 따른 델타값을 2 진수 2비트로 표시할 수 있어야 하므로 첫 번째 데이터(D1)와 두 번째 데이터(D2)의 차는 4보다 작거나 같아야 한다. 한편, 세 번째 데이터(D3)와 두 번째 데이터(D2)의 차에 따른 델타값 그리고 네 번째 데이터(D4)와 세 번째 데이터(D3)의 차에 따른 델타값을 2진수 3비트로 표시할 수 있어야 하므로 세 번째 데이터(D3)와 두 번째 데이터(D2)의 차에 따른 델타값 그리고 네 번째 데이터(D4)와 세 번째 데이터(D3)의 차는 각각 8보다 작아야 한다. 이에 대한 설명은 추후 설명된다.
계속해서 첨부된 도면 도 2a 내지 도 2d를 참조하여 도 1에 도시된 데이터 압축/복원 시스템(2)의 구체적인 동작을 설명한다.
도 2a 내지 도 2d는 도 1에 도시된 데이터 압축/복원 시스템(2)에서 본 발명의 바람직한 실시예에 따른 델타-RLC 방식이 수행되는 제어 수순을 보여주는 플로우차트들이다.
먼저, 도 2a를 참조하면, 단계 S100에서 데이터 압축기(10)는 데이터 프로세싱 시스템(1)으로부터 데이터(Di)를 받아들이고, 이를 레지스터(11)에 저장한다. 레지스터(11)에 저장된 데이터(Di)는 후술될 델타-RLC 동작에서 압축이 시작되는 첫 번째 데이터이다.
다음 단계 S101에서 데이터 압축기(10)는 레지스터(11)에 저장된 데이터(Di)를 이전 데이터(Di-1)로 간주하고, 그리고 데이터 프로세싱 시스템(1)으로부터 다음 데이터(Di)를 받아들여서 레지스터(12)에 저장한다. 레지스터(12)에 저장된 데이터는 현재 데이터가 된다. 단계 S102에서 데이터 압축기(10)는 레지스터(11)에 저장된 이전 데이터(Di-1)와 레지스터(12)에 저장된 현재 데이터(Di)의 차를 계산한다.
단계 S103에서 데이터 압축기(10)는 이전 데이터(Di-1)와 현재 데이터(Di)가 일치하는 지를 판별한다. 판별 결과, 이전 데이터(Di-1)와 현재 데이터(D)가 일치하면 그 제어는 단계 S104로 진행해서 일치 데이터 압축 프로세스를 수행하고, 이전 데이터(Di-1)와 현재 데이터(Di)가 일치하지 않으면 그 제어는 단계 S105로 진행한다.
단계 S105는 이전 및 현재 데이터(Di-1, Di)의 차의 절대값이 기준값(REF1 또는 REF2)보다 작거나 같은 지를 판별해서 본 발명의 델타-RLC로 압축 가능한 지를 판별한다. 만일 이전 및 현재 데이터(Di-1, Di)의 차가 기준 값(REF1 또는 REF2)보다 작거나 같으면 데이터 압축기(10)는 이전 및 현재 데이터(Di-1, Di)를 본 발명의 델타-RLC로 압축 가능한 것으로 판별해서 그 제어는 단계 S106으로 진행한다. 만일 이전 및 현재 데이터(Di-1, Di)의 차가 기준 값(REF1 또는 REF2)보다 크면 데이터 압축기(10)는 이전 및 현재 데이터(Di-1, Di)를 본 발명의 델타-RLC로 압축 불가능한 것으로 판별해서 그 제어는 단계 S107로 진행한다. 단계 S107에서 데이터 압축기(10)는 불일치 데이터 압축 프로세스를 수행한다.
연속된 4 개의 데이터들 D1, D2, D3 및 D4을 압축할 때, 두 번째 데이터(D2)와 첫 번째 데이터(D1)의 차에 따른 델타값을 2 진수 2비트로 표시할 수 있어야 하므로 두 번째 데이터(D2)와 첫 번째 데이터(D1)의 차는 4보다 작아야 한다. 그러므로, 단계 S105에서 기준값은 4(=REF1)이어야 한다. 한편, 세 번째 데이터(D3)와 두 번째 데이터(D2)의 차에 따른 델타값 그리고 네 번째 데이터(D4)와 세 번째 데이터(D3)의 차에 따른 델타값을 2진수 3비트로 표시할 수 있어야 하므로 세 번째 데이터(D3)와 두 번째 데이터(D2)의 차에 따른 델타값 그리고 네 번째 데이터(D4)와 세 번째 데이터(D3)의 차는 8보다 작아야 한다. 그러므로, 단계 S105에서 기준값은 8(=REF2)이어야 한다.
이하, 단계 S104의 일치 데이터 압축 프로세스, 단계 S106의 델타-RLC 압축 프로세스, 그리고 단계 S107의 불일치 데이터 압축 프로세스에 대한 상세한 설명이 계속된다.
다시 도 1을 참조하면, EQCNT 카운터(16)는 데이터 프로세싱 시스템(1)으로부터의 현재 데이터(Di)와 이전에 입력된 데이터들이 연속적으로 일치하는 개수를 카운트한다. NEQCNT 카운터(17)는 데이터 프로세싱 시스템(1)으로부터 입력된 데이터(Di)와 이전에 입력된 데이터들이 연속적으로 불일치하는 개수를 카운트한다. RLCCNT 카운터(18)는 델타-RLC 압축 프로세스(S106)가 수행되는 개수를 카운트하되, 카운트 값이 4가 되면 클리어(clear)된다. 그리고 GCNT 카운터(19)는 RLCCNT 카운터(18)가 4가 되는 개수를 카운트한다. 이와 같은 카운터들(16-19)의 기본 동작을 참조하여 델타-RLC 압축 프로세스, 일치 데이터 압축 프로세스 그리고 불일치 데이터 압축 프로세스를 각각 설명한다.
먼저, 도 2b는 도 1에 도시된 데이터 압축/복원 시스템(2)에서 델타-RLC 압축 프로세스(S106)를 수행하는 수순을 보여주는 플로우차트이다. 델타-RLC 압축 프로세스(S106)에 대한 이해를 돕기 위해, 앞서 예를 든 데이터 열 1 "0x00, 0x01, 0x02, 0x03, 0x04, …, 0xfc, 0xfd, 0xfe, 0xff"이 데이터 압축/복원 시스템(2)으로 입력되는 경우를 설명한다. 단계 S103 및 S105에서, 이전 데이터(Di-1=D1=0x00)와 현재 데이터(Di=D2=0x01)는 일치하지 않고, 이전 데이터(Di-1=D1=0x00)와 현재 데이터(Di=D2=0x01)의 차(0b01)는 기준값(REF1=4=0b100)보다 작으므로 델타-RLC 압축 프로세스(S106)가 수행된다.
도 2b를 참조하면, 단계 S111에서 데이터 압축기(10)는 EQCNT 카운터(16)의 값이 1보다 크거나 같은 지를 판별한다. 만일 EQCNT 카운터(16)의 값이 '1'보다 크거나 같으면 제어는 단계 S112로 진행한다. 단계 S112에서 데이터 압축기(10)는 EQCNT 카운터(16)의 값에 대응하는 커맨드를 출력하고, 이전 데이터(Di-1)를 일치 데이터로서 출력한다. 만일 EQCNT 카운터(16)의 값이 1보다 작으면 그 제어는 단계 S113으로 진행한다. 단계 S112의 상세한 동작은 추후 설명된다.
단계 S113에서 데이터 압축기(10)는 NEQCNT 카운터(17)의 값이 1보다 크거나 같은 지를 판별한다. 만일 NEQCNT 카운터(17)의 값이 '1'보다 크거나 같으면 그 제어는 단계 S114로 진행한다. 단계 S114에서 데이터 압축기(10)는 NEQCNT 카운터(17)의 값에 대응하는 커맨드를 출력한다. 단계 S115에서 데이터압축기(10)는 NEQCNT 카운터(17)의 값에 대응하는 개수의 불일치 데이터를 출력한다. 단계 S114 및 S115의 상세한 동작은 추후 설명된다.
단계 S116에서 데이터 압축기(10)는 이전 데이터(Di-1=D1=0x00)와 현재 데이터(Di=D2=0x01)의 차(0b01)에 따른 델타값(0b00)을 레지스터(15)에 저장한다. 단계 S117에서 데이터 압축기(10)는 RLCCNT 카운터(18)의 값을 1만큼 증가시킨다.
단계 S118에서 데이터 압축기(10)는 RLCCNT 카운터(18)의 값이 3인 지를 판별한다. 판별 결과, RLCCNT 카운터(18)의 값이 3이면 그 제어는 단계 S119로 진행하고, RLCCNT 카운터(18)의 값이 3이 아니면 그 제어는 도 2A에 도시된 단계 S101로 진행해서 새로운 데이터(Di)를 받아들인다. RLCCNT 카운터(18)의 값은 1이므로 그 제어는 단계 S101로 진행한다.
다시 도 2a를 참조하면, 단계 S101에서 데이터 압축기(10)는 레지스터(12)에 저장된 데이터(D2)를 이전 데이터(Di-1)로 간주하고, 데이터 프로세싱 시스템(1)으로부터 새로운 데이터(Di=D3)를 받아들여서 레지스터(13)에 저장한다. 레지스터(12)에 저장된 이전 데이터(Di-1=D2=0x01)와 레지스터(13)에 저장된 현재 데이터(Di=D3=0x03)의 차(0b010)는 기준값(REF2=8=0b1000)보다 작으므로 다시 델타-RLC 압축 프로세스(S104)가 수행된다.
도 2b를 참조하면, EQCNT 카운터(16)와 NEQCNT 카운터(17)의 값은 여전히 모두 0이므로 그 제어는 단계 S116으로 진행한다. 단계 S116에서 이전 데이터(D2=0x01)와 현재 데이터(D3=0x02)의 차(0b001)에 따른 델타값(0b000)은 레지스터(15)에 저장된다. 단계 S118에서 데이터 압축기(10)는 RLCCNT 카운터(18)의값을 1만큼 증가시킨다. 따라서, RLCCNT 카운터(18)의 값은 2가 된다. RLCCNT 카운터(18)의 값이 3이 아니므로 그 제어는 도 2a의 단계 S101로 진행한다.
다시 도 2a를 참조하면, 단계 S101에서 데이터 압축기(10)는 레지스터(13)에 저장된 데이터(D3)를 이전 데이터(Di-1)로 간주하고, 데이터 프로세싱 시스템(1)으로부터 새로운 데이터(Di=D4)를 받아들여서 레지스터(14)에 저장한다. 레지스터(13)에 저장된 이전 데이터(Di-1=D3=0x02)와 레지스터(14)에 저장된 현재 데이터(Di=D4=0x03)의 차(0b001)는 기준값(REF2=0b1000)보다 작으므로 델타-RLC 압축 프로세스(S104)가 수행한다.
도 2b를 참조하면, EQCNT 카운터(16)와 NEQCNT 카운터(17)의 값은 여전히 모두 0이므로 그 제어는 단계 S116로 진행한다. 단계 S116에서 이전 데이터(D3=0x02)와 현재 데이터(D4=0x03)의 차(0b001)에 따른 델타값(0b000)은 레지스터(15)에 저장된다. 단계 S117에서 데이터 압축기(10)는 RLCCNT 카운터(18)의 값을 1만큼 증가시킨다. RLCCNT 카운터(18)의 값은 3이 된다.
단계 S118에서 RLCCNT 카운터(18)의 값이 3인 것으로 판별됨에 따라 그 제어는 단계 S119으로 진행한다. 단계 S119에서 데이터 압축기(10)는 RLCCNT 카운터(18)의 값을 0으로 클리어시킨다. 단계 S120에서 데이터 압축기(10)는 GCNT 카운터(19)의 값을 1만큼 증가시킨다.
단계 S121에서 데이터 압축기(10)는 레지스터(11)에 저장된 첫 번째 데이터(D1=0x00)를 버퍼(30)에 저장하고, 레지스터(15)에 저장된 델타값들(0b00, 0b000, 0b000)을 직렬로 연결해서 델타 데이터(D_DATA=0b00000000=0x00)를 생성하고 이를 버퍼(30)에 저장한다. 데이터 압축기(10)는 버퍼(30)에 저장될 데이터를 출력할 때마다 제어 신호(CTRL)를 출력하고, 어드레스 발생기(20)는 데이터 압축기(10)로부터의 제어 신호(CTRL)에 응답해서 버퍼(30)의 소정 위치를 가리키는 인덱스 어드레스(INDEX)를 출력한다. 예컨대, 인덱스 어드레스(INDEX)는 순차적으로 증가한다. 따라서, 버퍼(30)에는 압축 시작 데이터(D1=0x00)와 델타 데이터(D_DATA=0x00)가 저장된다.
단계 S122에서 데이터 압축기(10)는 현재 수신된 데이터(Di)가 마지막 데이터인 지를 판별한다. 판별 결과, 현재 수신된 데이터(Di)가 마지막 데이터이면 그 제어는 단계 S123으로 진행하고, 현재 수신된 데이터(Di)가 마지막 데이터가 아니면 그 제어는 도 2a에 도시된 단계 S100으로 리턴한다.
단계 S123에서 데이터 압축기(10)는 델타-RLC 압축을 나타내는 커맨드(CMD=7f)와 GCNT 카운터(19)의 값 그리고 버퍼(30)에 저장된 델타 데이터(D_DATA)를 독출해서 데이터 프로세싱 시스템(1)으로 전송한다.
상술한 바와 같은 방법으로 데이터 열 1을 압축하면, 버퍼(30)에는 압축 시작 데이터와 델타 데이터 쌍이 모두 64 개 저장된다. 즉, GCNT 카운터(19)의 카운트 값은 64이다. 데이터 압축기(10)는 마지막 데이터(0xff)까지 압축을 수행한 후 버퍼(30)에 저장된 압축 시작 데이터와 델타 데이 쌍들 독출해서 데이터 프로세싱 시스템(1)으로 전송한다. 이 때, 데이터 압축기(10)는 델타-RLC 압축되었음을 나타내는 커맨드(CMD=7f)를 먼저 데이터 프로세싱 시스템(1)으로 전송하고, 그 후 압축 시작 데이터와 델타 데이터 쌍들을 압축된 데이터(RLC_DATA)로서 데이터 프로세싱 시스템(1)으로 전송한다. 데이터 열 1에 대한 델타-RLC 압축 결과는 다음 수학식 4와 같다.
상술한 바와 같은 방법으로 데이터 압축/복원 시스템(2)이 데이터 열 2를 압축했을 때 그 결과는 다음과 같다.
(0x7f:0x40:0x20, 0x6A, …, 0x23, 0x59)
다음 표 4는 본 발명의 바람직한 실시예에 따른 데이터 압축/복원 시스템(2)으로부터 출력되는 커맨드들(CMDs)과 커맨드들 각각의 의미를 정리해서 보여주고 있다.
계속해서, 도 2a에 도시된 단계 S103에서 이전 데이터(Di-1)와 현재 데이터(Di)가 일치할 때 수행되는 일치 데이터 압축 프로세스(단계 S104)는 다음과 같다. 도 2c는 인접한 두 데이터(Di-1, Di)가 일치할 때 수행되는 일치 데이터 압축 프로세스를 보여주는 플로우차트이다.
단계 S131에서 데이터 압축기(10)는 NEQCNT 카운터(17)의 값이 1보다 크거나 같은 지를 판별한다. 만일 NEQCNT 카운터(17)의 값이 1보다 크거나 같은면 그 제어는 단계 S132로 진행한다. 단계 S132에서 데이터 압축기(10)는 NEQCNT카운터(17)의 값에 대응하는 커맨드를 출력하고, 버퍼(30)에 저장된 NEQCNT 카운터(17)의 값에 대응하는 개수의 불일치 데이터를 출력한다. 단계 S132의 구체적인 동작은 추후 설명된다.
단계 S133에서 데이터 압축기(10)는 GCNT 카운터(19)의 값이 1보다 크거나 같은 지를 판별한다. 만일 GCNT 카운터(19)의 값이 1보다 크거나 같으면 그 제어는 단계 S134로 진행하고, GCNT 카운터(19)의 값이 1보다 작으면 그제어는 단계 S135로 진행한다.
GCNT 카운터(19)는 앞서 설명한 바와 같이 연속된 4 개의 데이터가 본 발명의 델타-RLC 압축 프로세서에 의해 압축되었을 때 1씩 증가되는 카운터이다. 예를 들어, 데이터 0x00, 0x01, 0x02, 0x03, 0x03, …이 데이터 압축기(10)로 순차적으로 입력될 때, 4 개의 데이터 0x00, 0x01, 0x02, 0x03은 델타-RLC 압축 프로세스(S106)에 의해 압축되고 압축된 결과(0x00:0x00)는 버퍼(30)에 저장되며 이 때 GCNT 카운터(19)의 값은 1이 된다. 계속해서, 이전 데이터(Di-1)가 0x03이고 현재 데이터(Di)가 0x03일 때 일치 데이터 압축 프로세스(S104)가 수행된다. 이 때, 단계 S133에서 GCNT 카운터(19)의 값이 1이므로 그 제어는 단계 S134로 진행한다. 단계 S134에서 데이터 압축기(10)는 델타-RLC 압축 커맨드(7f), GCNT 카운터(19)의 값(즉, 1) 그리고 델타 데이터(0x00:0x00)를 데이터 프로세싱 시스템(1)으로 전송하고, 그 제어는 단계 S135로 진행한다.
단계 S135에서, 데이터 압축기(10)는 RLCCNT 카운터(18)의 값이 1보다 크거나 같은 지를 판별한다. 만일 RLCCNT 카운터(18)의 값이 1보다 크거나 같으면 그 제어는 단계 S136으로 진행하고, RLCCNT 카운터(18)의 값이 1보다 작으면 그 제어는 단계 S140으로 진행한다.
RLCCNT 카운터(18)는 앞서 설명한 바와 같이 이전 데이터(Di-1)와 현재 데이터(Di)의 차가 기준값보다 작아서 델타-RLC 압축 프로세스(S104)가 수행될 때 1씩 증가되는 카운터이다. 그러므로, RLCCNT 카운터(18)의 값이 1보다 크거나 같다는 것은 현재 수신된 데이터(Di) 이전에 수신된 데이터(Di-1)가 델타-RLC 압축 프로세스(S104)에 의해 압축 동작이 수행되되고 있던 중임을 나타낸다. 예를 들어, 연속된 4 개의 데이터(0x00, 0x02, 0x02, 0x02)가 순차적으로 입력될 때 첫 번째 데이터(0x00)와 두 번째 데이터(0x02)는 일치하지 않고, 첫 번째 데이터(0x00)와 두 번째 데이터(0x02)의 차(0b10)는 기준값(0b11)보다 작으므로 델타-RLC 압축 프로세스가 수행되어서 RLCCNT 카운터(18)의 값은 '1'로 된다. 그러나, 두 번째 데이터(0x02)와 세 번째 데이터(0x2f)는 동일하므로 도 2c에 도시된 일치 데이터 압축 프로세스(S104)가 수행된다. 이 때, RLCCNT 카운터(18)의 값은 '1'이므로 그 제어는 단계 S136으로 진행한다.
단계 S136에서 데이터 압축기(10)는 RLCCNT 카운터(18)의 값을 NEQCNT 카운터(17)로 치환한다. 단계 S137에서 데이터 압축기(10)는 NEQCNT 카운터(17)의 값에 대응하는 커맨드를 전송한다. 앞의 예에서 RLCCNT 카운터(18)의 값은 1이므로 커맨드는 00이 된다.
단계 S138에서 데이터 압축기(10)는 NEQCNT 카운터(17)의 값이 1인 지를 판별한다. 판별 결과, NEQCNT 카운터(17)의 값이 1이면 그 제어는 단계 S139로 진행해서 레지스터(11)에 저장된 데이터(D1)를 데이터 프로세싱 시스템(1)으로 전송한다. 판별 결과, NEQCNT 카운터(17)의 값이 1이 아니면 그 제어는 단계 S140으로 진행한다. 앞의 예에서 NEQCNT 카운터(17)의 값은 1이므로, 레지스터(11)에 저장된 데이터(0x00)가 데이터 프로세싱 시스템(1)으로 전송된다.
단계 S140에서 데이터 압축기(10)는 NEQCNT 카운터(17)의 값이 2인지를 판별한다. 판별 결과, NEQCNT 카운터(17)의 값이 2이면 그 제어는 단계 S141로 진행해서 레지스터들(11 및 12)에 저장된 데이터(D1 및 D2)를 데이터 프로세싱 시스템으로 전송한다. 판별 결과, NEQCNT 카운터(17)의 값이 2가 아니면 그 제어는 단계 S142로 진행한다.
단계 S142에서 데이터 압축기(10)는 EQCNT 카운터(16)의 값을 1만큼 증가시킨다.
단계 S143에서 데이터 압축기(10)는 EQCNT 카운터(16)의 값이 127이거나 또는 데이터 프로세싱 시스템(1)으로부터 전송된 현재 데이터(Di)가 마지막 데이터이면 단계 S144로 진행하고, EQCNT 카운터(16)의 값이 127이 아니고 그리고 현재 데이터(Di)가 마지막 데이터가 아니면 그 제어는 도 2a에 도시된 단계 S101로 진행한다.
단계 S144에서 데이터 압축기(10)는 EQCNT 카운터(16)의 값에 대응하는 커맨드 및 현재 데이터(Di)를 일치 데이터로서 출력한다. 단계 S145에서 데이터 압축기(10)는 EQCNT 카운터(16)의 값을 클리어한다.
단계 S146에서 데이터 압축기(10)는 현재 데이터(Di)가 마지막 데이터인 지를 판별한다. 판별 결과, 현재 데이터(Di)가 마지막 데이터이면 제어를 종료하고, 현재 데이터(Di)가 마지막 데이터가 아니면 도 2a에 도시된 단계 S101로 진행한다.
예를 들어, 상기 데이터 열 3과 같이 동일한 데이터(0x0a)가 256개 반복적으로 데이터 압축기(10)로 입력될 때, 데이터 압축기(10)는 EQCNT 카운터(16)의 값이 127일 때 (0x7e:0x0a)를 출력하고, EQCNT 카운터(16)의 값이 다시 127일 때 (0x7e:0x0a)를 출력하고, 나머지 2 개의 데이터에 대한 압축 데이터(0x01:0x0a)를 출력한다.
0x0a, 0x0a, 0x0a, 0x0a, 0x0a, …, 0x0a, 0x0a, 0x0a, 0x0a
=(0x7e:0x00),(0x7e:0x00),(0x01,0x0a)
계속해서, 도 2a에 도시된 단계 S105에서 이전 데이터(Di-1)와 현재 데이터(Di)의 차가 기준값(REF1 또는 REF2)보다 클 때 수행되는 불일치 데이터 압축 프로세스는 다음과 같다. 도 2d는 인접한 두 데이터(Di-1, Di)의 차가 기준값(REF)보다 클 때 수행되는 일치 데이터 압축 프로세스를 보여주는 플로우차트이다.
단계 S151에서 데이터 압축기(10)는 EQCNT 카운터(16)의 값이 1보다 크거나 같은 지를 판별한다. 만일 EQCNT 카운터(16)의 값이 1보다 크거나 같은면 그 제어는 단계 S152로 진행한다. 단계 S152에서 데이터 압축기(10)는 EQCNT 카운터(16)의 값에 대응하는 커맨드를 출력하고, 이전 데이터(Di-1)를 일치 데이터로서 출력한다.
단계 S153에서 데이터 압축기(10)는 GCNT 카운터(19)의 값이 1보다 크거나 같은 지를 판별한다. 만일 GCNT 카운터(19)의 값이 1보다 크거나 같으면 그 제어는 단계 S154로 진행하고, GCNT 카운터(19)의 값이 1보다 작으면 그 제어는 단계 S155로 진행한다.
GCNT 카운터(19)는 앞서 설명한 바와 같이 연속된 4 개의 데이터가 본 발명의 델타-RLC 압축 프로세서에 의해 압축되었을 때 1씩 증가되는 카운터이다. 예를 들어, 데이터 0x00, 0x01, 0x02, 0x03, 0x5d, …이 데이터 압축기(10)로 순차적으로 입력될 때, 4 개의 데이터 0x00, 0x01, 0x02, 0x03은 델타-RLC 압축 프로세스(S106)에 의해 압축되고 압축된 결과(0x00:0x00)는 버퍼(30)에 저장되며 이 때 GCNT 카운터(19)의 값은 1이 된다. 이전 데이터(Di-1)가 0x03일 때 현재 데이터(Di)가 0x5d이면 불일치 데이터 압축 프로세스(S107)가 수행된다. 여기서, GCNT 카운터(19)의 값이 1이므로 그 제어는 단계 S154로 진행한다. 단계 S154에서 데이터 압축기(10)는 델타-RLC 압축 커맨드(7f), GCNT 카운터(19)의 값(즉, 1) 그리고 델타 데이터(0x00:0x00)를 데이터 프로세싱 시스템(1)으로 전송하고, 그 제어는 단계 S155로 진행한다.
단계 S155에서, 데이터 압축기(10)는 RLCCNT 카운터(18)의 값이 1보다 크거나 같은 지를 판별한다. 만일 RLCCNT 카운터(18)의 값이 1보다 크거나 같으면 그 제어는 단계 S156으로 진행하고, RLCCNT 카운터(18)의 값이 1보다 작으면 그 제어는 단계 S161으로 진행한다.
RLCCNT 카운터(18) 앞서 설명한 바와 같이 이전 데이터(Di-1)와 현재데이터(Di)의 차가 기준값보다 작아서 델타-RLC 압축 프로세스(S104)가 수행될 때 1씩 증가되는 카운터이다. 그러므로, RLCCNT 카운터(18)의 값이 1보다 크거나 같다는 것은 현재 수신된 데이터(Di) 이전에 수신된 데이터(Di-1)가 델타-RLC 압축 프로세스(S104)에 의해 압축 동작이 수행되었음을 나타낸다. 예를 들어, 연속된 4 개의 데이터(0x00, 0x02, 0x3c, 0x69)가 순차적으로 입력될 때 첫 번째 데이터(0x00)와 두 번째 데이터(0x02)는 일치하지 않고, 첫 번째 데이터(0x00)와 두 번째 데이터(0x02)의 차(0b10)는 기준값(0b11)보다 작으므로 델타-RLC 압축 프로세스가 수행되어서 RLCCNT 카운터(18)의 값은 '1'로 된다. 그러나, 두 번째 데이터(0x02)와 세 번째 데이터(0x2f)의 차(0b111010)는 기준값(0b111)보다 크므로 도 2d에 도시된 불일치 데이터 압축 프로세스(S107)가 수행된다. 단계 S155의 판별 결과, RLCCNT 카운터(18)의 값은 '1'이므로 그 제어는 단계 S156으로 진행한다.
단계 S156에서 데이터 압축기(10)는 RLCCNT 카운터(18)의 값을 NEQCNT 카운터(17)으로 치환한다. 단계 S157에서 데이터 압축기(10)는 NEQCNT 카운터(17)의 값이 1인 지를 판별한다. 판별 결과, NEQCNT 카운터(17)의 값이 1이면 그 제어는 단계 S138로 진행해서 레지스터들(11, 12)에 저장된 데이터(D1)를 버퍼(30)에 저장한다. 앞의 예에서 NEQCNT 카운터(17)의 값은 1이므로, 레지스터들(11, 12)에 저장된 데이터(0x00, 0x02)를 버퍼(30)에 저장한다. 단계 S157의 판별 결과, NEQCNT 카운터(17)의 값이 1이 아니면 그 제어는 단계 S159로 진행한다.
단계 S159에서 데이터 압축기(10)는 NEQCNT 카운터(17)의 값이 2인 지를 판별한다. 판별 결과, NEQCNT 카운터(17)의 값이 2이면 그 제어는 단계 S160으로 진행해서 레지스터들(11, 12 및 13)에 저장된 데이터(D1, D2 및 D3)를 데이터 프로세싱 시스템으로 전송한다. 판별 결과, NEQCNT 카운터(17)의 값이 2가 아니면 그 제어는 단계 S161로 진행한다.
단계 S161에서 데이터 압축기(10)는 NEQCNT 카운터(17)의 값을 1만큼 증가시킨다. 단계 S162에서 데이터 압축기(10)는 현재 데이터(Di)를 버퍼(30)에 저장한다.
단계 S163에서 데이터 압축기(10)는 NEQCNT 카운터(17)의 값이 128이거나 또는 데이터 프로세싱 시스템(1)으로부터 전송된 현재 데이터(Di)가 마지막 데이터이면 단계 S164로 진행하고, NEQCNT 카운터(17)의 값이 128이 아니고 그리고 현재 데이터(Di)가 마지막 데이터가 아니면 그 제어는 도 2a에 도시된 단계 S101로 진행한다.
단계 S164에서 데이터 압축기(10)는 NEQCNT 카운터(17)의 값에 대응하는 커맨드 및 현재 데이터(Di)를 일치 데이터로서 출력한다. 단계 S164에서 데이터 압축기(10)는 NEQCNT 카운터(17)의 값을 클리어한다.
단계 S166에서 데이터 압축기(10)는 현재 데이터(Di)가 마지막 데이터인 지를 판별한다. 판별 결과, 현재 데이터(Di)가 마지막 데이터이면 제어를 종료하고, 현재 데이터(Di)가 마지막 데이터가 아니면 도 2a에 도시된 단계 S101로 진행한다.
상술한 바와 같은 방법에 의하면, 예를 들어, 상기 데이터 열 4와 같은 256 개의 데이터에서 인접한 두 데이터의 차가 기준값보다 클 때, 다음과 같은 압축 데이터(RLC_DATA)를 데이터 프로세싱 시스템(1)으로 전송한다.
0x05, 0x11, 0x3f, 0x2e, 0x91, …, 0x0a, 0xab, 0x7f, 0x19
=(0x80:0x05, 0x11, 0x3f, …), (0x80:…, 0xab, 0x7f, 0x19)
상기 일치 데이터 압축 프로세스(S104) 및 불일치 데이터 압축 프로세스(S107)는 종래의 변형-RLC 압축 프로세스와 동일하다. 다만, 종래의 변형-RLC 압축 프로세스에서는 최대 128 개의 동일한 데이터를 하나의 커맨드로 묶을 수 있었으나, 본 발명에서는 델타-RLC 압축 커맨드를 위해 최대 127 개의 동일한 데이터를 하나의 커맨드로 묶을 수 있다는 점이 다르다.
계속해서, 도 1 및 도 3a 내지 도 3d를 참조하여, 본 발명의 데이터 압축/복원 시스템(2)의 데이터 복원 동작이 설명된다.
도 3a 내지 도 3d는 도 1에 도시된 데이터 압축/복원 시스템(2)의 데이터 복원 동작을 보여주는 플로우차트들이다.
먼저, 도 3a를 참조하면, 단계 S200에서 데이터 복원기(40)는 데이터 프로세싱 시스템(1)으로부터의 커맨드(CMD)를 받아들인다. 데이터 복원기(40)는 데이터 프로세싱 시스템(1)으로부터 수신된 커맨드(CMD)가 델타-RLC 압축 커맨드(즉, 0x7f)인 지를 판별한다. 판별 결과, 데이터 프로세싱 시스템(1)으로부터 수신된 커맨드(CMD)가 델타-RLC 압축 커맨드(즉, 0x7f)이면 그 제어는 단계 S202로 진행해서 델타-RLC 복원 프로세스를 수행한다. 만일 데이터 프로세싱 시스템(1)으로부터 수신된 커맨드(CMD)가 델타-RLC 압축 커맨드(즉, 0x7f)가 아니면 그 제어는 단계 S203으로 진행한다.
단계 S203에서 데이터 복원기(40)는 데이터 프로세싱 시스템(1)으로부터 수신된 커맨드(CMD)가 일치 데이터 압축 커맨드(즉, 0x01, 0x02, 0x03, …, 0x7d 또는 0x7e)인 지를 판별한다. 판별 결과, 데이터 프로세싱 시스템(1)으로부터 수신된 커맨드(CMD)가 일치 데이터 압축 커맨드이면 그 제어는 단계 S204로 진행해서 일치 데이터 복원 프로세스를 수행한다. 만일 데이터 프로세싱 시스템(1)으로부터 수신된 커맨드(CMD)가 일치 데이터 압축 커맨드가 아니면 그 제어는 단계 S205로 진행한다.
단계 S205에서 데이터 복원기(40)는 수신된 커맨드(CMD)가 불일치 데이터 압축 커맨드(즉, x00, 0x80, 0x81, …, 0xfe 또는 0xff)인 지를 판별한다. 판별 결과, 데이터 프로세싱 시스템(1)으로부터 수신된 커맨드(CMD)가 불일치 데이터 압축 커맨드이면 그 제어는 단계 S206으로 진행해서 일치 데이터 복원 프로세스를 수행한다. 만일 데이터 프로세싱 시스템(1)으로부터 수신된 커맨드(CMD)가 불일치 데이터 압축 커맨드가 아니면 그 제어는 종료된다.
도 3b는 도 3a에 도시된 델타-RLC 압축 프로세스를 구체적으로 보여주는 플로우차트이다.
단계 S211에서 데이터 복원기(40)는 데이터 라인(RLC_DATA)을 통해 데이터 프로세싱 시스템(1)으로부터 GCNT 값을 받아들인다. 단계 S212에서 데이터 복원기(40)는 데이터 라인(RLC_DATA)을 통해 데이터 프로세싱 시스템(1)으로부터 첫 번째 데이터와 델타 테이터를 받아들인다. 단계 S213에서 데이터 복원기(40)는 수신된 첫 번째 데이터와 델타 데이터에 근거해서 4개의 원래 데이터(original data)를 복원하고, 복원된 데이터(Di, i=1, 2, 3 및 4)를 데이터 프로세싱시스템(1)으로 전송한다. 단계 S215에서 데이터 복원기(40)는 내부에 구비된 카운터(41)의 값을 1만큼 증가시킨다.
단계 S216에서 데이터 복원기(40)는 데이터 프로세싱 시스템(1)으로부터 수신된 GCNT 값과 카운터(41)의 카운트 값이 일치하는 지를 판별한다. 판별 결과, 데이터 프로세싱 시스템(1)으로부터 수신된 GCNT 값과 카운터(41)의 카운트 값이 일치하면 그 제어는 단계 S215로 진행하고, 일치하지 않으면 그 제어는 단계 S212로 진행해서 상술한 동작들을 반복적으로 수행한다.
예를 들어, 데이터 프로세싱 시스템(1)으로부터 출력된 데이터 열 1의 델타-RLC 압축된 데이터들(0x7f:0x40:0x00, 0x00, 0x00, 0x00, …,0x00, 0x00)이 데이터 복원기(40)로 입력될 때, 데이터 복원기(40)는 카운터(41)의 값이 0x40이 될 때까지 상술한 동작들을 반복적으로 수행한다. 상기 단계 S213의 데이터 복원 동작은 앞서 설명한 데이터 압축 동작으로부터 용이하게 유추될 수 있다.
예를 들어, 압축 시작 데이터가 0x00이고, 델타 데이터가 0x00일 때, 먼저 델타 데이터로부터 델타값들(Delta(D1, D2)=0b00, Delta(D2, D3)=0b000, Delta(D3, D4)=0b000)을 구한다. 그리고 나서 압축 시작 데이터와 델타값들로부터 원래의 데이터를 복원한다. 압축 시작 데이터가 0x00이므로, 4 개의 원래 데이터(Di, i=1, 2, 3 및 4)는 0x00, 0x01, 0x02 및 0x03이다. 복원된 원래 데이터(Di, i=1, 2, 3 및 4)는 데이터 프로세싱 시스템(1)으로 전송된다.
단계 S216에서 데이터 복원기(40)는 데이터 프로세싱 시스템(1)으로부터 수신된 데이터가 마지막 데이터인 지를 판별한다. 판별 결과, 데이터 프로세싱 시스템(1)으로부터 수신된 데이터가 마지막 데이터가 아니면 그 제어는 도 3a에 도시된 단계 S200으로 리턴하고, 마지막 데이터이면 그 제어는 종료된다.
도 3c는 도 3a에 도시된 일치 데이터 복원 프로세스의 구체적인 수순을 보여주는 플로우차트이다.
단계 S221에서 데이터 복원기(40)는 데이터 프로세싱 시스템(1)으로부터 일치 데이터를 수신한다. 단계 S222에서 데이터 복원기(40)는 데이터 프로세싱 시스템(1)으로부터 수신된 일치 데이터를 복원 데이터(Di)로서 데이터 프로세싱 시스템(1)으로 전송한다. 단계 S223에서 데이터 복원기(40)는 내부 카운터(41)의 값을 1만큼 증가시킨다. 단계 S224에서 데이터 복원기(40)는 카운터(41)의 값이 수신된 커맨드가 나타내는 일치 데이터 개수와 일치하는 지를 판별한다. 판별 결과, 카운터(41)의 값이 수신된 커맨드가 나타내는 일치 데이터 개수와 일치하면 그 제어는 단계S225로 진행하고, 일치하지 않으면 그 제어는 단계 S222로 리턴한다.
앞서 설명한 바와 같이, N 개의 동일한 데이터들은 (N 개의 데이터 일치에 대응하는 커맨드:일치 데이터) 형식으로 압축되므로, 원래 데이터로 복원하기 위해서는 일치 데이터를 N 번 데이터 프로세싱 시스템(1)으로 전송해야만 한다. 예를 들어, 상기 데이터 열 3을 압축하면 (0x7e:0x00),(0x7e:0x00),(0x01,0x0a)이다. 커맨드 0x7e는 연속된 127 개의 데이터가 동일함을 나타내므로 일치 데이터 0x00는 127번 데이터 프로세싱 시스템(1)으로 전송되어야 한다. 그러므로, 카운터(41)의 값이 127이 될 때까지 단계 S222부터 단계 S224까지 반복적으로 수행된다.
단계 S225는 현재 입력된 데이터가 마지막 데이터인 지를 판별한다. 판별결과, 현재 입력된 데이터가 마지막 데이터가 아니면 그 제어는 도 3a에 도시된 단계 S200으로 리턴하고, 마지막 데이터이면 그 제어는 종료된다.
도 3d는 도 3a에 도시된 불일치 데이터 복원 프로세스의 구체적인 수순을 보여주는 플로우차트이다.
단계 S231에서 데이터 복원기(40)는 데이터 프로세싱 시스템(1)으로부터 불일치 데이터를 수신한다. 단계 S232에서 데이터 복원기(40)는 데이터 프로세싱 시스템(1)으로부터 수신된 불일치 데이터를 복원 데이터(Di)로서 출력한다. 단계 S233에서 데이터 복원기(40)는 카운터(41)의 값을 1만큼 증가시킨다. 단계 S234에서 데이터 복원기(40)는 카운터(41)의 값이 수신된 커맨드가 나타내는 불일치 데이터 개수와 일치하는 지를 판별한다. 판별 결과, 카운터(41)의 값이 수신된 커맨드가 나타내는 불일치 데이터 개수와 일치하면 그 제어는 단계 S235로 진행하고, 일치하지 않으면 그 제어는 단계 S231로 리턴한다.
앞서 설명한 바와 같이, N 개의 연속된 서로 다른 데이터들은 (N 개의 데이터 불일치에 대응하는 커맨드:불일치 데이터1, 불일치 데이터2, …, 불일치 데이터N) 형식으로 압축되므로, 원래 데이터로 복원하기 위해서는 데이터 프로세싱 시스템(1)으로부터 수신된 데이터를 복원된 데이터(Di)로서 데이터 프로세싱 시스템(1)으로 제공해야 한다. 예를 들어, 상기 데이터 열 4를 압축하면 0x80:0x05, 0x11, 0x3f, …), (0x80:…, 0xab, 0x7f, 0x19)이다. 커맨드 0x80은 연속된 128 개의 데이터가 다름을 나타내므로 데이터 프로세싱 시스템으로부터 순차적으로 입력되는 데이터 0x05, 0x11, 0x3f, …는 그대로 복원된 데이터(Di)로서 출력된다.따라서, 일치 데이터 복원 프로세스와 달리 불일치 데이터 복원 프로세스에서는 불일치 데이터를 수신하는 동작을 매번 수행해야만 한다.
결론적으로, 본 발명의 데이터 압축/복원 시스템(2)에 의하면, 연속된 일련의 데이터들이 일치하거나 또는 연속될 일련의 데이터들의 변화가 커서 본 발명의 델타-RLC 압축 프로세스로 압축 불가능한 경우에는 종래의 변형-RLC와 비슷한 압축 효율을 얻게 된다. 그러나, 인접한 데이터들의 변화가 작은 경우 본 발명의 델타-RLC 압축 프로세스는 RLC 압축 뿐만 아니라 델타-RLC 압축에 비해 뛰어난 압축 효율을 얻을 수 있다.
예를 들어, 4 개의 데이터 D1, D2, D3 및 D4가 0x00, 0x01, 0x02, 0x03일 때, 종래의 RLC 방식으로 변환된 데이터는 (0x00:0x00),(0x00, 0x01), (0x00, 0x02), (0x00, 0x03)이고, 종래의 변형-RLC 방식으로 변환된 데이터는 (0xfe:0x00, 0x01, 0x02, 0x03)으로 원래의 데이터보다 모두 크기가 증가함을 알 수 있다. 그러나, 본 발명의 델타-RLC 방식으로 압축하면, (0x00:0x03:0x00)으로 감소된다. 본 발명의 델타-RLC 방식은 인접한 두 데이터의 변화가 작은 데이터 열의 크기가 커질수록 압축 효율이 높게 나타난다. 예컨대, 앞서 예를 든 256 바이트의 데이터 열 1을 본 발명의 델타-RLC 방식으로 압축하면 압축된 데이터는 1+1+(1+1)*64=130 바이트로 되므로 변형 RLC의 258 바이트에 비해 매우 우수한 압축 효율을 얻을 수 있음을 알 수 있다.
한편, 이 실시예에서는 연속된 4 개의 데이터를 델타-RLC 방식에 의해 (시작 데이터:델타 데이터) 형식으로 압축하는 방법을 도시하고 설명하였으나, 압축되는데이터의 개수는 다양하게 변경될 수 있다. 예를 들어, 연속된 5 개의 데이터 D1, D2, D3, D4 및 D5를 델타-RLC 방식으로 압축하고자 하는 경우에 델타값들(Delta(D1, D2), Delta(D2, D3), Delta(D3, D4) 및 Delta(D4, D5))은 모두 이진수 2비트로 표현된다. 그러므로, 앞서 설명한 도 2a의 단계 S105에서 기준값(REF)은 0b11로 된다. 인접한 데이터들의 변화가 작을 때에는 하나의 델타 데이터로 압축되는 데이터의 개수를 증가시키는 것이 압축 효율을 높일 수 있는 방법이 될 수 있다.
이와 같은 본 발명에 의하면, 인접한 데이터들의 변화량이 작을 때 종래의 RLC 압축 방법 또는 변형(modified)-RLC 압축 방법에 비해 압축 효율이 향상된다.

Claims (12)

  1. 데이터를 압축하는 방법에 있어서:
    연속된 n(n은 양의 정수) 개의 데이터들을 받아들이는 단계와;
    상기 데이터들 중 인접한 2 개의 데이터들 각각의 차를 계산하는 단계와;
    상기 차들과 기준값을 각각 비교하는 단계와;
    상기 차들이 모두 상기 기준값보다 작을 때,
    상기 차들에 근거해서 델타 데이터를 생성하고, 상기 생성된 델타 데이터를 저장하는 단계와;
    상기 연속된 n 개의 데이터에 연이은 n 개의 데이터들을 받아들이는 단계; 및
    상기 차 계산 단계로 리턴하는 단계; 그리고
    상기 차들 중 적어도 하나가 상기 기준값보다 작지 않고 그리고 적어도 하나의 상기 델타 데이터가 저장되어 있을 때, 상기 차들에 근거한 압축 동작이 수행되었음을 나타내는 커맨드, 상기 저장된 델타 데이터의 개수 그리고 상기 저장된 델타 데이터(들)를(을) 압축 데이터로서 출력하는 단계를 포함하는 것을 특징으로 하는 데이터 압축 방법.
  2. 제 1 항에 있어서,
    상기 델타 데이터를 생성하는 단계는,
    상기 인접한 2 개의 데이터들 각각의 상기 차를 대응하는 델타값으로 변환하는 단계; 및
    상기 델타값들을 직렬로 연결해서 상기 델타 데이터를 생성하는 단계를 포함하는 것을 특징으로 하는 데이터 압축 방법.
  3. 데이터를 압축하는 방법에 있어서:
    현재 데이터를 받아들이는 단계와;
    상기 현재 데이터를 이전 데이터로 치환하는 단계와;
    상기 이전 데이터에 연이은 새로운 현재 데이터를 받아들이는 단계와;
    상기 이전 데이터와 상기 현재 데이터의 차를 계산하고 저장하는 단계와;
    상기 이전 데이터와 상기 현재 데이터의 차가 0보다 크고 기준값보다 작은 지를 판별하는 단계와;
    상기 이전 데이터와 상기 현재 데이터의 차가 0보다 크고 기준값보다 작을 때,
    제 1 카운터의 값을 증가시키는 단계와;
    상기 제 1 카운터의 값이 k(k는 양의 정수)보다 작을 때 상기 치환 단계로 리턴하는 단계; 및
    상기 제 1 카운터의 값이 k일 때, 상기 차들에 근거해서 델타 데이터를 생성하는 단계; 그리고
    상기 이전 데이터와 상기 현재 데이터의 차가 0이거나 또는 기준값보다 크며 그리고 상기 델타 데이터가 적어도 한 개 생성되었을 때, 커맨드, 상기 델타 데이터(들)의 개수 그리고 상기 델타 데이터(들)를(을) 압축 데이터로서 출력하는 단계를 더 포함하는 것을 특징으로 하는 데이터 압축 방법.
  4. 제 3 항에 있어서,
    상기 델타 데이터를 생성하는 단계는,
    상기 차들 각각을 대응하는 델타값으로 변환하는 단계; 및
    상기 델타값들을 직렬로 연결해서 상기 델타 데이터를 생성하는 단계를 포함하는 것을 특징으로 하는 데이터 압축 방법.
  5. 제 3 항에 있어서,
    상기 이전 데이터와 상기 현재 데이터의 차가 0일 때 변형-RLC(Run Length Coding) 방법으로 압축을 수행하는 단계를 더 포함하는 것을 특징으로 하는 데이터 압축 방법.
  6. 제 5 항에 있어서,
    상기 제 1 카운터의 값이 k(k는 양의 정수)보다 작을 때 상기 치환 단계로 리턴하는 단계를 수행하기 전에 상기 이전 데이터를 저장 수단에 저장하는 단계를 더 포함하는 것을 특징으로 하는 데이터 압축 방법.
  7. 제 6 항에 있어서,
    상기 변형-RLC 압축 단계는,
    상기 제 1 카운터의 값이 1보다 큰 지를 판별하는 단계와;
    상기 제 1 카운터의 값이 1보다 클 때,
    상기 저장 수단에 저장된 상기 데이터의 개수에 대응하는 불일치 커맨드를 출력하는 단계; 및
    상기 저장 수단에 저장된 데이터를 모두 출력하는 단계와;
    일치 카운터의 값을 증가시키는 단계와;
    상기 일치 카운터의 값이 최대값이거나 또는 상기 현재 데이터가 마지막 데이터일 때 상기 일치 카운터의 값에 대응하는 일치 커맨드, 상기 현재 데이터를 출력하는 단계; 그리고
    상기 일치 카운터의 값이 상기 최대값이 아니고 그리고 상기 현재 데이터가 마지막 데이터가 아닐 때 상기 치환 단계로 리턴하는 단계를 포함하는 것을 특징으로 하는 데이터 압축 방법.
  8. 제 3 항에 있어서,
    상기 이전 데이터와 상기 현재 데이터의 차가 상기 기준값보다 클 때 변형-RLC(Run Length Coding) 방법으로 압축을 수행하는 단계를 더 포함하는 것을 특징으로 하는 데이터 압축 방법.
  9. 제 8 항에 있어서,
    상기 제 1 카운터의 값이 k(k는 양의 정수)보다 작을 때 상기 치환 단계로 리턴하는 단계를 수행하기 전에 상기 이전 데이터를 저장 수단에 저장하는 단계를 더 포함하는 것을 특징으로 하는 데이터 압축 방법.
  10. 제 6 항에 있어서,
    상기 변형-RLC 압축 단계는,
    상기 제 1 카운터의 값이 1보다 큰 지를 판별하는 단계와;
    상기 제 1 카운터의 값이 1보다 클 때, 불일치 카운터의 값을 상기 저장 수단에 저장된 상기 이전 데이터의 개수로 설정하는 단계와;
    상기 불일치 카운터의 값을 증가시키는 단계와;
    상기 현재 데이터를 저장 수단에 저장하는 단계와;
    상기 불일치 카운터의 값이 최대값이거나 또는 상기 현재 데이터가 마지막 데이터일 때 상기 불일치 카운터의 값에 대응하는 일치 커맨드, 상기 현재 데이터를 출력하는 단계; 그리고
    상기 불일치 카운터의 값이 상기 최대값이 아니고 그리고 상기 현재 데이터가 마지막 데이터가 아닐 때 상기 치환 단계로 리턴하는 단계를 포함하는 것을 특징으로 하는 데이터 압축 방법.
  11. 연속된 n(n은 양의 정수) 개의 데이터들 중 인접한 2 개의 데이터가 서로 동일하지 않고, 상기 인접한 2 개의 데이터들의 각각의 차가 기준값보다 작을 때 상기 차들에 근거해서 압축된 데이터를 복원하는 방법에 있어서:
    커맨드를 받아들이는 단계와;
    상기 커맨드가 상기 차들에 근거한 압축을 나타내는 커맨드인 지를 판별하는 단계와;
    상기 커맨드가 상기 차들에 근거한 압축을 나타내는 커맨드일 때,
    압축된 데이터의 개수, 압축 데이터 그리고 델타 데이터를 받아들이는 단계와;
    상기 압축 데이터 및 델타 데이터들로부터 원래의 n 개의 데이터를 복원하는 단계와;
    카운터의 값을 증가시키는 단계와;
    상기 압축된 데이터의 개수와 상기 카운터의 값이 일치하는 지를 판별하는 단계; 그리고
    상기 압축된 데이터의 개수와 상기 카운터의 값이 일치하지 않으면 상기 압축 데이터 및 상기 델타 데이터 수신 단계로 리턴하는 단계를 포함하는 것을 특징으로 하는 데이터 복원 방법.
  12. 제 11 항에 있어서,
    상기 데이터 복원 단계는,
    상기 델타 데이터를 분할해서 상기 n 개의 데이터들 중 인접한 두 데이터들 각각에 대응하는 n-1 개의 델타값들을 생성하는 단계와;
    상기 인접한 두 데이터들의 상기 델타값들을 대응하는 차 값들으로 변환하는 단계와;
    상기 압축 데이터와 상기 인접한 두 데이터들의 차로부터 상기 n 개의 원래 데이터를 복원하는 단계를 포함하는 것을 특징으로 하는 데이터 복원 방법.
KR10-2001-0064644A 2001-10-19 2001-10-19 데이터 압축 및 복원 방법 KR100445633B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR10-2001-0064644A KR100445633B1 (ko) 2001-10-19 2001-10-19 데이터 압축 및 복원 방법
US10/270,869 US7020340B2 (en) 2001-10-19 2002-10-15 Methods for compressing and decompressing data
JP2002301036A JP4064782B2 (ja) 2001-10-19 2002-10-15 データ圧縮方法及び復元方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-2001-0064644A KR100445633B1 (ko) 2001-10-19 2001-10-19 데이터 압축 및 복원 방법

Publications (2)

Publication Number Publication Date
KR20030032679A KR20030032679A (ko) 2003-04-26
KR100445633B1 true KR100445633B1 (ko) 2004-08-25

Family

ID=19715259

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2001-0064644A KR100445633B1 (ko) 2001-10-19 2001-10-19 데이터 압축 및 복원 방법

Country Status (3)

Country Link
US (1) US7020340B2 (ko)
JP (1) JP4064782B2 (ko)
KR (1) KR100445633B1 (ko)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8135683B2 (en) * 2003-12-16 2012-03-13 International Business Machines Corporation Method and apparatus for data redundancy elimination at the block level
JP2009516985A (ja) * 2005-11-22 2009-04-23 メイトリックスヴュー リミテッド 反復相関符号化
KR20100050072A (ko) * 2008-11-05 2010-05-13 삼성전자주식회사 데이터 압축 방법 및 이를 이용한 데이터 통신 시스템
EP2397953B1 (en) * 2010-06-15 2019-02-20 Accenture Global Services Limited A computer-implemented method, a computer program product and an embedded system for displaying data more efficiently
WO2013082407A1 (en) * 2011-12-02 2013-06-06 No Strings Toys, Llc Wireless devices and control method
US10419022B2 (en) * 2017-11-30 2019-09-17 International Business Machines Corporation Run-length base-delta encoding for high-speed compression

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6798836B1 (en) * 1993-10-29 2004-09-28 Koninklijke Philips Electronis N.V. Device for transmitting television pictures and device for receiving said pictures
JP3466032B2 (ja) * 1996-10-24 2003-11-10 富士通株式会社 動画像符号化装置および復号化装置

Also Published As

Publication number Publication date
JP4064782B2 (ja) 2008-03-19
US7020340B2 (en) 2006-03-28
US20030085823A1 (en) 2003-05-08
KR20030032679A (ko) 2003-04-26
JP2003163598A (ja) 2003-06-06

Similar Documents

Publication Publication Date Title
EP1289153B1 (en) Data compressing method and data decompressing method, and data compressing apparatus and data decompressing apparatus therefor
RU2682009C2 (ru) Способ и устройство для кодирования и декодирования исходных данных с использованием сжатия символов
US5003307A (en) Data compression apparatus with shift register search means
US7714747B2 (en) Data compression systems and methods
KR100300789B1 (ko) 적응형 데이터 압축기의 데이터 압축 효율을 개선하는 방법및 장치
US20070279261A1 (en) Method and apparatus for lossless run-length data encoding
US11863799B2 (en) Image encoding method and apparatus, image decoding method and apparatus, and chip
KR100445633B1 (ko) 데이터 압축 및 복원 방법
US6898311B2 (en) Digital image transmission with compression and decompression
US7342902B2 (en) Two stage loss-less compressor for a clear channel over a packet network
EP0885429A1 (en) System and method for the fractal encoding of datastreams
Djusdek et al. Adaptive image compression using adaptive Huffman and LZW
US6947606B2 (en) Skim encoding method for compression of a two dimensional array of data
CN1656688B (zh) 在压缩之前处理数字数据
US20190347309A1 (en) Encoder and Decoder for Transmission of Coefficients to a Neural Network
WO2024045216A1 (en) Train-linking lossless compressor of numeric values
JP6821184B2 (ja) 画像復号化装置
Tripathi A Survey on various image compression techniques
Mitkovets et al. JBE. Concept and application
Cinque et al. A simple lossless compression heuristic for grey scale images
JP2003087573A (ja) 画像圧縮装置及び画像伸張装置
Mastriani Lossless compression catalyst based on binary allocation via modular arithmetic
GB2360916A (en) Compression encoder which transmits difference between new data word and recent data word where this falls within a threshold
Devi et al. An FPGA Bit Stream Implementation of the Modified Golomb-Rice Algorithm for Lossless Compression
GB2360917A (en) Run length compression encoding of runs of similar data words

Legal Events

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

Payment date: 20120801

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20130731

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20140731

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20160801

Year of fee payment: 13

FPAY Annual fee payment

Payment date: 20180731

Year of fee payment: 15

FPAY Annual fee payment

Payment date: 20190731

Year of fee payment: 16