KR20100009032A - 데이터 무손실 압축 방법 - Google Patents

데이터 무손실 압축 방법 Download PDF

Info

Publication number
KR20100009032A
KR20100009032A KR1020080069704A KR20080069704A KR20100009032A KR 20100009032 A KR20100009032 A KR 20100009032A KR 1020080069704 A KR1020080069704 A KR 1020080069704A KR 20080069704 A KR20080069704 A KR 20080069704A KR 20100009032 A KR20100009032 A KR 20100009032A
Authority
KR
South Korea
Prior art keywords
symbol
frequency
variable
output
input
Prior art date
Application number
KR1020080069704A
Other languages
English (en)
Other versions
KR101023536B1 (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 KR1020080069704A priority Critical patent/KR101023536B1/ko
Publication of KR20100009032A publication Critical patent/KR20100009032A/ko
Application granted granted Critical
Publication of KR101023536B1 publication Critical patent/KR101023536B1/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/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • 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

Landscapes

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

Abstract

본 발명은 특정 심볼 빈도 수가 0으로 줄어들 때마다 허프만 테이블을 갱신함과 동시에 허프만 코딩 방법을 적용하여 데이터를 압축함으로써 압축효율을 높일 수 있는 데이터 무손실 압축 방법을 제시한다.

Description

데이터 무손실 압축 방법{LOSSLESS DATA COMPRESSION METHOD}
본 발명은 데이터 무손실 압축 방법에 관한 것으로, 더욱 상세하게는 특정 심볼 빈도 수가 0으로 줄어들 때마다 허프만 테이블을 갱신함과 동시에 허프만 코딩 방법을 적용하여 데이터를 압축함으로써 압축효율을 높일 수 있는 데이터 무손실 압축 방법에 관한 것이다.
일반적으로, 데이터를 무손실 압축하는 방법으로는 엔트로피 코딩(Entropy coding) 방법이 가장 널리 사용되고 있으며, 데이터를 압축했다가 원래의 데이터와 완전히 동일하게 복원할 수 있는 압축 방법을 무손실 압축이라고 한다.
상기 엔트로피 코딩방법은 출현빈도가 높은 심볼에 짧은 코드를 배정하고 빈도가 낮은 심볼에 긴 코드를 배정하므로, 가변길이코딩(Variable-length coding)이라고 불린다.
엔트로피 코딩에서는 심볼의 빈도만을 고려하는데, 대표적인 방법으로는 허프만(Huffman) 코딩이 사용된다.
즉, 엔트로피 코딩은 미리 각 심볼의 출현 빈도를 알아야 최적의 압축이 가능하며, 허프만 코딩에서는 각각의 심볼에 하나씩 코드워드를 배정하므로 정수 길 이의 코드워드만 허용한다.
예를 들면, X7 = {A A A B B C D}에 대하여, 종래의 허프만 테이블은 도 1을 기반으로 하여 그림 2와 같이 만들어진다.
도 1은 종래의 허프만 트리를 나타내는 도면이고, 도 2는 상기 도 1의 허프만 트리를 기반으로 하여 만들어진 허프만 테이블을 나타낸다.
즉, 그림 2에 나타낸 허프만 테이블에 의해 X7을 인코딩하면, 그 결과는 Y7 = {000 10 10 110 111}이 되어 13비트가 필요하다.
여기서, A는 0으로, B는 10으로, C는 110으로 D는 111로 각각 변환된다.
상기와 같이, 종래의 허프만 코딩은 일단 허프만 테이블이 만들어지면 코딩이 끝날 때까지 모든 심볼에 동일한 코드워드가 배정되고, 배정된 코드워드는 변하지 않는다.
또한, 종래의 엔트로피 코딩은 압축의 한계에 거의 근접했고, 비록 압축효율을 더 높인다고 해도 무손실 압축의 한계인 엔트로피에 더 가까이 접근할 뿐 그 한계를 뛰어넘어 엔트로피 이하로 압축할 수 없는 문제점이 있다.
즉, 엔트로피 이하로 압축할 수 있는 새로운 방법의 개발이 필요하다.
본 발명은 상기와 같은 문제점을 해결하기 위한 것으로서, 그 목적은 특정 심볼 빈도 수가 0으로 줄어들 때마다 허프만 테이블을 갱신함과 동시에 허프만 코 딩 방법을 적용하여 데이터를 압축함으로써 압축효율을 높일 수 있는 데이터 무손실 압축 방법을 제공하는 것이다.
즉, 본 발명의 목적은, 코딩을 진행하면서 허프만 테이블을 갱신하여 심볼의 빈도 수를 변화시켜서, 변화된 빈도 수에 따라 허프만 테이블을 다시 만들어 압축효율을 높일 수 있는 데이터 무손실 압축 방법을 제공하는 것이다.
상기의 목적을 달성하기 위한 본 발명의 일측면에 따른 데이터 무손실 압축 방법은, (a) 입력 심볼열((X n ) = {x0, x1, ..., xn -1})에 대하여, 해당 심볼의 빈도 수(n0, n1, ..., nm -1)를 계산하는 단계(S310); (b) 상기 계산된 심볼의 빈도 수(n0, n1, ..., nm -1)에 따라 허프만 테이블을 구성하는 단계(S320); (c) 변수(i)를 초기화(i = 0)하는 단계(S330); (d) 입력 심볼(x i )이 심볼 리스트(s k )에 해당하면 해당 심볼의 빈도 수(n k )를 확인(N(x i ) = n k )하는 단계(S340); (e) 상기 (d) 단계의 확인 결과, N(x i ) = 0이면 해당 심볼(s k )을 제거하고 허프만 테이블을 새로 구성(N(x i ) - 1)하는 단계(S350) 및 (f) 변수(i)를 가산(i=i+1)한 후, 변수(i)가 총 심볼수(n)에서 감산(i = n - 1) 되었는지를 판단(S355)하여, 감산되었으면 출력 심볼열(Y n ) 리스트를 출력(Y n = {y0, y1, ..., y n -1 })하는 단계(S360)를 포함한다.
바람직하게, 상기 (d) 단계의 확인 결과, N(x i ) = n k 이면, 입력 심볼(x i )을 해당 코드워드(c k )로 치환해서 출력 코드워드(y i )를 출력하는 단계(S345)를 더 포함한다.
한편, 본 발명의 일측면에 따른 데이터 무손실 압축 방법은, (g) 입력 심볼열((X n ) = {x0, x1, ..., xn -1})에 대하여, 해당 심볼의 빈도 수(n0, n1, ..., nm -1)를 계산하는 단계(S410); (h) 상기 계산된 심볼의 빈도 수(n0, n1, ..., nm -1)에 따라 허프만 테이블을 구성하는 단계(S420); (i) 출력 심볼열(Y n = {y0, y1, ..., y n -1 })을 디코딩하는 단계(S430); (j) 변수(i)를 초기화(i = 0)하는 단계(S440); (k) 출력 심볼(y i )이 심볼 리스트(s k )에 해당(y i = s k 또는 x i = s k )하면, 해당 심볼의 빈도 수(n k )를 확인(N(x i ) = n k )하는 단계(S450); (l) 상기 (k) 단계의 확인 결과, N(x i ) = 0이면 해당 심볼(s k )을 제거하고 허프만 테이블을 새로 구성(N(x i ) - 1)하는 단계(S460); (m) 변수(i)를 가산(i=i+1)한 후, 변수(i)가 총 심볼수(n)에서 감산(i = n - 1)되었는지를 판단(S465)하여, 감산되었으면 입력 심볼열(X n ) 리스트를 출력(X n = {x0, x1, ..., x n -1 })하는 단계(S470)를 포함한다.
바람직하게, 상기 (k) 단계의 확인 결과, N(x i ) = n k 이면, 출력 심볼 y i 를 해당 코드워드 (c k )로 치환해서 입력 코드워드(x i )를 출력(x i = c k )하는 단계(S455)를 더 포함한다.
본 발명에 따른 데이터 무손실 압축 방법에 따르면, 코딩을 진행하면서 허프만 테이블을 갱신하여 심볼의 빈도 수를 변화시킨 후, 변화된 빈도 수에 따라 허프만 테이블을 다시 만들므로 압축효율을 높일 수 있는 효과가 있다.
상기 목적 외에 본 발명의 다른 목적 및 이점들은 첨부한 도면을 참조한 실시 예에 대한 상세한 설명을 통하여 명백하게 드러나게 될 것이다.
이하, 첨부한 도면을 참조하여 본 발명에 따른 데이터 무손실 압축 방법을 상세하게 설명하기로 한다.
도 3은 본 발명의 일실시예에 따른 데이터 무손실 압축 방법에 적용되는 시스템을 나타내는 구성도이다.
도 3에 나타낸 바와 같이, 본 발명의 일실시예에 따른 데이터 무손실 압축 방법에 적용되는 시스템은, 입력 심볼열(Xn)을 인코딩하는 인코더(100)와, 상기 인코더(100)를 통해 인코딩된 심볼열을 디코딩하는 디코더(200)를 포함한다.
구체적으로, 상기 인코더(100)는 입력되는 심볼열(Xn)을 테이블로 작성하는 허프만 테이블(110)과, 상기 허프만 테이블(110)로부터의 심볼열을 인코딩하여 출력하는 엔트로피 부호화부(120)를 포함한다.
한편, 디코더(200)는 상기 엔트로피 부호화부(120)로부터 출력되는 출력 심볼열(Yn)을 테이블로 작성하는 허프만 테이블(220)과, 상기 허프만 테이블(220)로 부터의 심볼열을 디코딩하여 출력하는 엔트로피 역부호화부(230)를 포함한다.
이때, 상기 인코더(100) 및 디코더(200)는 심볼의 정확한 빈도 수를 바탕으로 허프만 테이블을 갱신하는 구조를 갖는다.
한편, 상기와 같이 구성된 시스템을 통해 데이터 무손실 압축 방법을 이하에 설명한다.
여기서, 인코더(100)의 허프만 테이블(110)에 입력되는 입력 심볼열(X n )은 m개의 심볼 s0, s1, ..., sm -1의 조합(Sm)으로 구성되어 있고, 입력 심볼열(X n ) = {x0, x1, ..., xn -1}로 표현된다.
즉, 입력 심볼열(X n )의 총 심볼수는 n개이다.
또한, 심볼 집합은 Sm이며, Sm = {s0, s1, ..., sm -1}처럼 심볼의 종류는 m개이다. 또, 심볼 s k 의 빈도는 n k 로 나타낸다. 또, 심볼 x k 에 해당하는 심볼의 개수는 N(xk)로 나타낸다. 따라서, 입력 심볼 x k 가 Sm의 한 원소이므로 s k = s j 라면 N(xk) = n j 가 된다.
한편, 인코더(100)의 엔트로피 부호화부(120)를 통해 출력되는 심볼열은 Y n 으로 표현되며, 출력 심볼열(Y n ) = {y0, y1, ..., yn -1}은 심볼 s k 를 코드워드 c k 로 매핑한다. 코드워드 집합은 Cm이고 Cm = {c0, c1, ..., cm -1}이다.
여기서, 상기 인코더(100)를 통해 입력되는 심볼열(X n )을 인코딩하는 방법을 도 4를 참조하여 설명한다.
도 4는 본 발명의 일실시예에 따른 입력 심볼열을 인코딩하는 방법을 나타내는 순서도이다.
먼저, 입력 심볼열((X n ) = {x0, x1, ..., xn -1})에 대하여, 해당 심볼의 빈도 수(n0, n1, ..., nm -1)를 계산한다(S310).
다음에, 상기 S310 단계를 통해 계산된 심볼의 빈도 수(n0, n1, ..., nm -1)에 따라 허프만 테이블을 구성한다(S320).
이때, 변수(i)를 초기화한다(i = 0)(S330).
그 다음, 입력 심볼 x i 가 심볼 리스트의 s k 에 해당(즉, x i = s k )하면, 해당 심볼의 빈도 수 n k 를 확인(즉, N(x i ) = n k )한다(S340).
이때, 상기 S340 단계의 확인 결과, N(x i ) = n k 이면, 입력 심볼 x i 를 해당 코드워드 c k 로 치환해서 출력 코드워드 y i 를 출력(즉, y i = c k )한다(S345).
이후, 상기 S340 단계의 확인 결과, N(x i ) = 0이면 해당 심볼 s k 를 제거하고 허프만 테이블을 새로 구성(N(x i ) - 1)한다(S350).
다음에, 변수(i)를 가산(i=i+1)한 후, 변수(i)가 총 심볼수(n)에서 감산(즉, i = n - 1)되었는지를 판단(S355)하여, 감산되었으면 출력 심볼열(Y n ) 리스트를 출력(Y n = {y0, y1, ..., y n -1 })하고(S360), 변수가 총 심볼수(n)에서 감산되지 않았으 면 상기 S340단계로 리턴한다.
한편, 상기 디코더(200)를 통해 상기 인코더(100)로부터 출력되는 출력 심볼열(Y n )을 디코딩하는 방법을 도 5를 참조하여 설명한다.
도 5는 본 발명의 일실시예에 따른 출력 심볼열을 디코딩하는 방법을 나타내는 순서도이다.
먼저, 입력 심볼열((X n ) = {x0, x1, ..., xn -1})에 대하여, 해당 심볼의 빈도 수(n0, n1, ..., nm -1)를 계산한다(S410).
다음에, 상기 S10 단계를 통해 계산된 심볼의 빈도 수(n0, n1, ..., nm -1)에 따라 허프만 테이블을 구성한다(S420).
그 다음, 출력 심볼열(Y n = {y0, y1, ..., y n -1 })에 대하여 디코딩을 시작한다(S430).
이때, 변수(i)를 초기화한다(i = 0)(S440).
다음에, 출력 심볼 y i 가 심볼 리스트의 s k 에 해당(즉, y i = s k 또는 x i = s k )하면, 해당 심볼의 빈도 수 n k 를 확인(즉, N(x i ) = n k )한다(S450).
이때, 상기 S450 단계의 확인 결과, N(x i ) = n k 이면, 출력 심볼 y i 를 해당 코드워드 c k 로 치환해서 입력 코드워드 x i 를 출력(즉, x i = c k )한다(S455).
이후, 상기 S450 단계의 확인 결과, N(x i ) = 0이면 해당 심볼 s k 를 제거하고 허프만 테이블을 새로 구성(N(x i ) - 1)한다(S460).
다음에, 변수(i)를 가산(i=i+1)한 후, 변수(i)가 총 심볼수(n)에서 감산(즉, i = n - 1)되었는지를 판단(S465)하여, 감산되었으면 입력 심볼열(X n ) 리스트를 출력(X n = {x0, x1, ..., x n -1 })하고(S470), 변수가 총 심볼수(n)에서 감산되지 않았으면 상기 S450단계로 리턴한다.
한편, 이하에서는 상술한 인코딩 및 디코딩 방법의 일예를 설명한다.
여기서, 일예의 테이블은 도 2의 테이블을 동일하게 적용하여 사용하기로 하며, 상기 도 2의 테이블은 인코더(100)에 저장되어 있다.
먼저, 도 2의 테이블에서, 심볼 A를 0으로 세 번 변환한다. 심볼 A를 세 번 변환하면, A의 빈도 수는 0이 된다.
따라서, 빈도 수를 기준으로 테이블을 새로 만들면, 입력 심볼열은 X4 = {B B C D}와 같이 되며, 테이블은 아래의 표 1과 같다.
심볼 빈도 코드워드
S0 A 0 c0
S1 B 2 c1 0
S2 C 1 c2 10
S3 D 1 c3 11
상기 표 1에 따라 허프만 테이블을 다시 만들면 심볼 B에 0을, C에 10을, D에 11을 배정할 수 있게 된다. 즉, 한 비트씩 감소한다.
따라서, 두 개의 B에 0을 두 개 배정하면 된다.
상기 표 1을 기반으로 하여 만든 허프만 트리는 도 6과 같다.
이후, B를 0으로 두 번 변환하면, B의 빈도 수가 0으로 줄어든다.
따라서, 빈도 수가 0인 심볼이 나타났으므로 허프만 테이블을 다시 만들면, 입력 심볼열은 X2 = {C D}와 같이 되며, 테이블은 아래의 표 2와 같다.
심볼 빈도 코드워드
S0 A 0 c0
S1 B 0 c1
S2 C 1 c2 0
S3 D 1 c3 1
상기 표 2에 따라 허프만 테이블을 다시 만들면 C에 0을, D에 1을 배정할 수 있게 된다. 즉, 다시 한 비트씩 감소한다.
따라서, C에 0을 배정하면 된다.
상기 표 2를 기반으로 하여 만든 허프만 트리는 도 7과 같다.
이후, 테이블을 다시 만들면 입력 심볼열은 X1 = {D}와 같이 되며, 테이블은 아래의 표 3과 같다.
심볼 빈도 코드워드
S0 A 0 c0
S1 B 0 c1
S2 C 0 c2
S3 D 1 c3 0
따라서, 상술한 인코딩 방법으로 만든 코드워드는 Y7 = {0 0 0 0 0 0 0}이 된다. 즉, 7개의 심볼에 7비트만 필요하며, 7비트도 모두 0이므로 추가의 압축이 더 가능하다.
한편, 상술한 방법으로 인코딩된 심볼열을 디코딩하는 방법은 다음과 같다.
여기서, 일예의 테이블은 도 2의 테이블을 동일하게 적용하여 사용하기로 하며, 상기 도 2의 테이블은 디코더(200)에 저장되어 있다.
먼저, 디코더(200)는 Y7 = {0 0 0 0 0 0 0}에 대하여 디코딩을 시작한다. 도 2를 참조하면, 최초의 0은 심볼 A에 해당된다.
따라서, 3개의 심볼 A를 연속으로 출력하면 심볼 A의 빈도 수는 0이 된다. 즉, 허프만 테이블을 다시 만들면 상기 표 1과 같이 된다. 다시 코드워드 0은 심볼 B가 됨을 알 수 있다. 또한, 코드워드 2개를 연속해서 심볼 B와 B로 출력하면 심볼 B의 빈도 수가 0이 된다. 다시 허프만 테이블을 새로 만들면 표 2와 같이 된다.
이 과정을 반복하면 정확히 원래의 심볼열 X7 = {A A A B B C D}이 복원된다.
즉, 본 발명에 따른 데이터 무손실 압축 방법을 통해 제시한 방법은 이미 코딩한 심볼은 제외시키고 앞으로 코딩할 심볼을 이용하여 테이블을 만든다.
한편, 종래의 적응형 허프만 코딩의 비트율을 RA(X)로 나타낼 때 RH(Xn) ≤ RA(Xn)의 관계가 성립한다. 즉, 적응형 허프만 코딩방법은 비트율에서 어느 정도의 감소를 감수하면서 알지 못하는 확률분포를 감안해 최고의 성능을 달성하기 위해 사용한다.
그러나, 본 발명에서 제시한 방법의 비트율을 RK(Xn)으로 정의할 때 RK(Xn) ≤ RH(Xn)의 관계가 형성된다.
참고로, 상기에서 예를 든 X7 = {A A A B B C D}에 대해 코딩할 경우 엔트로피 H(X7)는 1.8424 비트/심볼이다.
이에 비해, 종래의 허프만 코딩의 결과, 비트율 RH(X7)는 1.8575 비트/심볼이 된다. 이때의 출력은 Y = {0 0 0 10 10 110 111}가 된다. 즉, 7개의 입력 알파벳에 대한 출력은 13비트가 된다.
그러나, 본 발명에서 제시한 방법으로 코딩하면 출력은 Y7 = {0 0 0 0 0 0 0}으로 7비트이면 충분하다.
따라서, RK(X7)는 1비트/심볼에 불과하며 엔트로피 이하로도 압축이 가능함을 개시한다. 참고로, 3개의 심볼 A, 2개의 심볼 B, 1개의 심볼 C, 1개의 심볼 D로 구성된 입력에 대한 다양한 출력은 아래의 표 4와 같다.
입력 본 발명의 출력 비트율 종래의 코딩 출력 비트율
AAABBCD 0000000 1.0000 0001010110110 1.8571
ABBAACD 010100000 1.2857
BBAAACD 101000000 1.2857
CBAABAD 11010001001 1.5714
CDBBAAA 1101111000 1.4286
상기 표 4에 나타낸 바와 같이, 비트율이 입력 스트링의 종류에 따라 달라지지만, 어느 경우나 엔트로피보다도 낮다는 것을 알 수 있다.
이상에서는 본 발명의 일실시예에 따라 본 발명을 설명하였지만, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 변경 및 변형한 것도 본 발명에 속함은 당연하다.
도 1은 도 1은 종래의 허프만 트리를 나타내는 도면.
도 2는 상기 도 1의 허프만 트리를 기반으로 하여 만들어진 허프만 테이블을 나타낸 도면.
도 3은 본 발명의 일실시예에 따른 데이터 무손실 압축 방법에 적용되는 시스템을 나타내는 구성도.
도 4는 본 발명의 일실시예에 따른 입력 심볼열을 인코딩하는 방법을 나타내는 순서도.
도 5는 본 발명의 일실시예에 따른 출력 심볼열을 디코딩하는 방법을 나타내는 순서도.
도 6은 표 1을 기반으로 하여 만든 허프만 트리를 나타내는 도면.
도 7은 표 2를 기반으로 하여 만든 허프만 트리를 나타내는 도면.
*도면의 주요부분에 대한 부호의 설명*
100 : 인코더 110 : 허프만 테이블
120 : 엔트로피 부호화부 200 : 디코더
220 : 허프만 테이블 230 : 엔트로피 역부호화부

Claims (4)

  1. 데이터를 무손실 압축하는 방법으로서,
    (a) 입력 심볼열((X n ) = {x0, x1, ..., xn -1})에 대하여, 해당 심볼의 빈도 수(n0, n1, ..., nm -1)를 계산하는 단계(S310);
    (b) 상기 계산된 심볼의 빈도 수(n0, n1, ..., nm -1)에 따라 허프만 테이블을 구성하는 단계(S320);
    (c) 변수(i)를 초기화(i = 0)하는 단계(S330);
    (d) 입력 심볼(x i )이 심볼 리스트(s k )에 해당하면 해당 심볼의 빈도 수(n k )를 확인(N(x i ) = n k )하는 단계(S340);
    (e) 상기 (d) 단계의 확인 결과, N(x i ) = 0이면 해당 심볼(s k )을 제거하고 허프만 테이블을 새로 구성(N(x i ) - 1)하는 단계(S350); 및
    (f) 변수(i)를 가산(i=i+1)한 후, 변수(i)가 총 심볼수(n)에서 감산(i = n - 1)되었는지를 판단(S355)하여, 감산되었으면 출력 심볼열(Y n ) 리스트를 출력(Y n = {y0, y1, ..., y n -1 })하는 단계(S360)를 포함하는 것을 특징으로 하는 데이터 무손실 압축 방법.
  2. 제 1항에 있어서,
    상기 (d) 단계의 확인 결과, N(x i ) = n k 이면, 입력 심볼(x i )을 해당 코드워드(c k )로 치환해서 출력 코드워드(y i )를 출력하는 단계(S345)를 더 포함하는 것을 특징으로 하는 데이터 무손실 압축 방법.
  3. 데이터를 무손실 압축하는 방법으로서,
    (g) 입력 심볼열((X n ) = {x0, x1, ..., xn -1})에 대하여, 해당 심볼의 빈도 수(n0, n1, ..., nm -1)를 계산하는 단계(S410);
    (h) 상기 계산된 심볼의 빈도 수(n0, n1, ..., nm -1)에 따라 허프만 테이블을 구성하는 단계(S420);
    (i) 출력 심볼열(Y n = {y0, y1, ..., y n -1 })을 디코딩하는 단계(S430);
    (j) 변수(i)를 초기화(i = 0)하는 단계(S440);
    (k) 출력 심볼(y i )이 심볼 리스트(s k )에 해당(y i = s k 또는 x i = s k )하면, 해당 심볼의 빈도 수(n k )를 확인(N(x i ) = n k )하는 단계(S450);
    (l) 상기 (k) 단계의 확인 결과, N(x i ) = 0이면 해당 심볼(s k )을 제거하고 허프만 테이블을 새로 구성(N(x i ) - 1)하는 단계(S460);
    (m) 변수(i)를 가산(i=i+1)한 후, 변수(i)가 총 심볼수(n)에서 감산(i = n - 1)되었는지를 판단(S465)하여, 감산되었으면 입력 심볼열(X n ) 리스트를 출력(X n = {x0, x1, ..., x n -1 })하는 단계(S470)를 포함하는 것을 특징으로 하는 데이터 무손실 압축 방법.
  4. 제 3항에 있어서,
    상기 (k) 단계의 확인 결과, N(x i ) = n k 이면, 출력 심볼 y i 를 해당 코드워드 (c k )로 치환해서 입력 코드워드(x i )를 출력(x i = c k )하는 단계(S455)를 더 포함하는 것을 특징으로 하는 데이터 무손실 압축 방법.
KR1020080069704A 2008-07-17 2008-07-17 데이터 무손실 압축 방법 KR101023536B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020080069704A KR101023536B1 (ko) 2008-07-17 2008-07-17 데이터 무손실 압축 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020080069704A KR101023536B1 (ko) 2008-07-17 2008-07-17 데이터 무손실 압축 방법

Publications (2)

Publication Number Publication Date
KR20100009032A true KR20100009032A (ko) 2010-01-27
KR101023536B1 KR101023536B1 (ko) 2011-03-21

Family

ID=41817524

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080069704A KR101023536B1 (ko) 2008-07-17 2008-07-17 데이터 무손실 압축 방법

Country Status (1)

Country Link
KR (1) KR101023536B1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101329676B1 (ko) * 2011-12-28 2013-11-18 계명대학교 산학협력단 수정된 허프만 코드에 기반한 모바일 데이터 동기화 패키지 전송 방법
CN113315523A (zh) * 2020-08-24 2021-08-27 英韧科技(南京)有限公司 硬件友好的数据解压缩
CN116505955A (zh) * 2023-06-30 2023-07-28 深圳市思拓通信系统有限公司 一种磁盘使用健康状态监控管理方法

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11741121B2 (en) 2019-11-22 2023-08-29 Takashi Suzuki Computerized data compression and analysis using potentially non-adjacent pairs
US10387377B2 (en) 2017-05-19 2019-08-20 Takashi Suzuki Computerized methods of data compression and analysis
US12050557B2 (en) 2017-05-19 2024-07-30 Takashi Suzuki Computerized systems and methods of data compression

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006324944A (ja) 2005-05-19 2006-11-30 Renesas Technology Corp 符号化装置
KR100995294B1 (ko) * 2006-06-30 2010-11-19 주식회사 메디슨 누적 빈도수를 이용한 초음파 영상의 압축 방법

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101329676B1 (ko) * 2011-12-28 2013-11-18 계명대학교 산학협력단 수정된 허프만 코드에 기반한 모바일 데이터 동기화 패키지 전송 방법
CN113315523A (zh) * 2020-08-24 2021-08-27 英韧科技(南京)有限公司 硬件友好的数据解压缩
CN113315523B (zh) * 2020-08-24 2024-04-16 英韧科技(南京)有限公司 硬件友好的数据解压缩
CN116505955A (zh) * 2023-06-30 2023-07-28 深圳市思拓通信系统有限公司 一种磁盘使用健康状态监控管理方法
CN116505955B (zh) * 2023-06-30 2023-12-05 深圳市思拓通信系统有限公司 一种磁盘使用健康状态监控管理方法

Also Published As

Publication number Publication date
KR101023536B1 (ko) 2011-03-21

Similar Documents

Publication Publication Date Title
US8378862B2 (en) Method and device for compression of binary sequences by grouping multiple symbols
KR20100009032A (ko) 데이터 무손실 압축 방법
US10127913B1 (en) Method of encoding of data stream, method of decoding of data stream, and devices for implementation of said methods
CN101557517A (zh) 解码器、解码装置及解码方法
CN112398484A (zh) 一种编码方法及相关设备
US6778109B1 (en) Method for efficient data encoding and decoding
CN104125475B (zh) 一种多维量子数据压缩、解压缩方法及装置
CN102388538B (zh) 编码输入位序列的方法和设备以及相应解码方法和设备
KR20160100496A (ko) 바이너리 클러스터를 이용한 허프만 부호화 효율화 방법 및 그 장치
EP2293449B1 (en) Method and apparatus for generating a coding table
Ezhilarasan et al. A new entropy encoding technique for multimedia data compression
CN114429200A (zh) 规范化哈夫曼编解码方法及神经网络计算芯片
CN104682966A (zh) 列表数据的无损压缩方法
US6101281A (en) Method for improving data encoding and decoding efficiency
CN114614832A (zh) 基于前后游程长度编码的测试数据压缩及解压方法
US6801668B2 (en) Method of compressing data by use of self-prefixed universal variable length code
CN103024380B (zh) 一种数据的熵编码方法和装置
CN110739974B (zh) 数据压缩方法及装置和计算机可读存储介质
JP2005521324A (ja) 損失のないデータの圧縮および圧縮解除方法および装置
Tsai et al. An improved LZW algorithm for large data size and low bitwidth per code
KR101573983B1 (ko) 데이터 압축 및 데이터 복원 방법과 장치
KR20140145437A (ko) 이진 데이터의 압축 및 압축해제 방법과 장치
US11632127B2 (en) Near-optimal transition encoding codes
JP2005510937A (ja) 信号処理方法、及び対応する符合化方法及び装置
Huang et al. Lossless compression algorithm for multi-source sensor data research

Legal Events

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

Payment date: 20140120

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20150108

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee