KR101906036B1 - Lz78 압축 데이터의 오류 검출 방법 및 이를 이용한 인코더 - Google Patents

Lz78 압축 데이터의 오류 검출 방법 및 이를 이용한 인코더 Download PDF

Info

Publication number
KR101906036B1
KR101906036B1 KR1020170017336A KR20170017336A KR101906036B1 KR 101906036 B1 KR101906036 B1 KR 101906036B1 KR 1020170017336 A KR1020170017336 A KR 1020170017336A KR 20170017336 A KR20170017336 A KR 20170017336A KR 101906036 B1 KR101906036 B1 KR 101906036B1
Authority
KR
South Korea
Prior art keywords
output stream
data
dictionary
index
tuple
Prior art date
Application number
KR1020170017336A
Other languages
English (en)
Other versions
KR20180092050A (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 KR1020170017336A priority Critical patent/KR101906036B1/ko
Publication of KR20180092050A publication Critical patent/KR20180092050A/ko
Application granted granted Critical
Publication of KR101906036B1 publication Critical patent/KR101906036B1/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/3084Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction using adaptive string matching, e.g. the Lempel-Ziv method
    • H03M7/3088Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction using adaptive string matching, e.g. the Lempel-Ziv method employing the use of a dictionary, e.g. LZ78
    • 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

본 발명은 LZ78 압축 데이터의 오류 검출 방법 및 이를 이용한 인코더에 관한 것으로, 본 발명의 일실시예에 따른 LZ78 압축 데이터의 오류 검출 방법은, 압축 데이터인 출력 스트림에 대해 LZ78 알고리즘으로 압축된 데이터 특성을 만족하는지를 확인하는 단계; 및 상기 확인 결과에 따라 상기 출력 스트림의 오류를 검출하는 단계;를 포함한다.

Description

LZ78 압축 데이터의 오류 검출 방법 및 이를 이용한 인코더{ERROR DETECTION METHOD OF LZ78 COMPRESSION DATA AND ENCODER USING THE SAME}
본 발명은 LZ78 압축 데이터의 오류 검출 방법 및 이를 이용한 인코더에 관한 것으로, 구체적으로는 압축 데이터인 출력 스트림에 대해 LZ78 알고리즘으로 압축된 데이터 특성을 만족하는지를 확인함으로써 추가적인 비트 삽입 없이 오류를 검출하기 위한, LZ78 압축 데이터의 오류 검출 방법 및 이를 이용한 인코더에 관한 것이다.
또한, 본 발명은 임의의 데이터에 대해 LZ78 알고리즘으로 압축된 데이터인지를 판별하기 위한, LZ78 압축 데이터의 오류 검출 방법 및 이를 이용한 인코더에 관한 것이다.
데이터 압축은 데이터를 적은 공간에 효율적으로 기록 및 저장하거나, 데이터의 크기를 줄여 데이터를 용이하게 전송하기 위한 기술이다. 이러한 데이터 압축은 데이터를 더 작은 크기로 변환시키는 인코딩 과정과 저장된 데이터를 다시 불러와 원래 데이터 형태로 복원시키는 디코딩 과정으로 이루어진다. 이때 인코딩하기 전의 데이터 크기와 인코딩하고 나서의 데이터 크기의 비율을 압축률이라고 한다.
데이터 압축은 압축 기술의 종류에 따라 데이터의 내용을 바꾸지 않고 원래 내용을 그대로 디코딩할 수 있는 무손실 압축과, 더 높은 압축률을 얻을 수 있지만 디코딩한 데이터의 세부적인 디테일을 일부 희생시키는 손실 압축으로 구분될 수 있다. 여기서, 무손실 압축 유형에는 사전(dictionary) 압축 및 엔트로피(entropy) 압축 등이 있다.
특히, 사전 압축은 아브라함 럼펠(Abraham Lempel)과 제콥 지브(Jakob Ziv)에 의해 개발된 'LZ 알고리즘'(Lempel-Ziv algorithm)를 기반으로 하는 압축 방식들이 널리 사용되고 있다. 이 중 아브라함 럼펠과 제콥 지브가 1978년에 공개한 LZ78 알고리즘은 문자열을 사전(dictionary)에 저장하고 중복된 문자열이 출현하면 사전 정보를 이용하여 문자열의 길이를 줄이는 알고리즘이다. 이는 문자열의 길이가 길면 길수록, 중복되는 문자열이 많을수록 이상적인 압축이 가능하다.
한편, 부호화된 데이터는 부호화 과정 또는 전송 과정에서 오류가 발생하거나 데이터가 누락될 수 있다. 이를 검출하는 방식에는 페리티 비트(parity bit)나 해밍 부호(hamming code)를 이용하는 방식이 있다. 먼저, 패리티 비트를 이용한 검출 방식은 주어진 비트열에 1의 개수가 홀수냐 짝수냐에 따라 오류를 검출하는 것으로, 짝수개의 비트열에 오류가 발생했을 경우 오류를 검출하기 어렵다는 한계가 있다. 다음으로, 해밍 부호를 이용한 검출 방식은 1비트 오류의 경우에 검출 및 수정이 가능하며, 2비트 이상의 오류 역시 감지할 수 있다. 하지만, 이러한 기존의 방법은 오류 검출을 위한 추가 비트를 사용하므로 실제적인 압축률을 떨어뜨린다.
이로 인해, 높은 압축률을 유지하기 위해서는 압축된 데이터에 추가적인 비트를 사용하는 방법이 아닌 방법으로 오류를 검출할 수 있는 방법이 필요하다. 따라서, LZ78 알고리즘에 의해 압축된 데이터의 오류 검출을 위해 LZ78 알고리즘의 구조적인 특징을 통한 오류 검출 방법이 필요하다. 아울러, 임의의 압축된 데이터는 LZ78 알고리즘에 의해 압축된 데이터인지 구별할 수 있는 방법이 필요하다.
본 발명의 목적은 압축 데이터인 출력 스트림에 대해 LZ78 알고리즘으로 압축된 데이터 특성을 만족하는지를 확인함으로써 추가적인 비트 삽입 없이 오류를 검출하기 위한, LZ78 압축 데이터의 오류 검출 방법 및 이를 이용한 인코더를 제공하는데 있다.
또한, 본 발명의 목적은 임의의 데이터에 대해 LZ78 알고리즘으로 압축된 데이터인지를 판별하기 위한, LZ78 압축 데이터의 오류 검출 방법 및 이를 이용한 인코더를 제공하는데 있다.
본 발명의 일실시예에 따른 LZ78 압축 데이터의 오류 검출 방법은, 압축 데이터인 출력 스트림에 대해 LZ78 알고리즘으로 압축된 데이터 특성을 만족하는지를 확인하는 단계; 및 상기 확인 결과에 따라 상기 출력 스트림의 오류를 검출하는 단계;를 포함하고, 상기 확인 단계는, (a) 상기 출력 스트림의 첫번째 튜플의 첫번째 인덱스 값이 0인지를 확인하는 단계; (b) 상기 출력 스트림의 k번째 튜플의 첫번째 인덱스가 k-1보다 같거나 작은지를 확인하는 단계; (c) 상기 출력 스트림에서 모든 튜플의 첫번째 인덱스 값이 0인 것의 개수를 확인하는 단계; 및 (d) 상기 출력 스트림에서 중복된 튜플이 존재하는지를 확인하는 단계;를 포함하며, 상기 (a), (b), (c) 및 (d) 단계 중 적어도 어느 하나를 수행할 수 있다.
삭제
상기 (c) 단계는, 상기 출력 스트림에서 모든 튜플의 첫번째 인덱스 값이 0인 것의 개수가 아스키 코드(ASCII code)로 표현 가능한 부호의 총 개수인 128을 넘지않는다.
상기 (b), (c) 및 (d) 단계는, 상기 출력 스트림의 마지막 튜플에 도달할 때까지 반복 수행한다.
또한, 본 발명의 일실시예에 따른 LZ78 압축 데이터의 오류 검출 방법은, 상기 확인 단계 이후에, 상기 출력 스트림에 대해 LZ78 알고리즘으로 압축된 데이터인지를 판별하는 단계;를 더 포함한다.
또한, 본 발명의 일실시예에 따른 LZ78 압축 데이터의 오류 검출 방법은, 상기 확인 단계 이전에, 입력 스트림의 문자열을 사전에서 검색하는 단계; 상기 사전에 매칭되는 문자열이 없는 경우에, 상기 사전에 해당 문자열을 추가하고, 상기 출력 스트림의 첫번째 인덱스 값에 0을 저장하는 단계; 및 상기 사전에 매칭되는 문자열이 있는 경우에, 상기 출력 스트림에 매칭되는 문자열의 인덱스와 바로 다음 캐릭터를 저장하고, 상기 사전에 문자열을 추가하는 단계;를 더 포함한다.
상기 출력 스트림은, 튜플(tuple) 형태의 데이터로 저장되며, 상기 튜플의 첫번째 인덱스에 입력 스트림의 문자열이 사전에 매칭되는 인덱스값이 저장되고, 상기 튜플의 두번째 인덱스에 사전에 매칭되는 문자열 다음에 오는 입력 스트림의 캐릭터가 저장된다.
한편, 본 발명의 일실시예에 따른 인코더는, 입력 스트림의 문자열에 대해 LZ78 알고리즘을 이용하여 상기 입력 스트림을 압축하여 출력 스트림을 저장하는 데이터 압축부; 및 상기 출력 스트림에 대해 LZ78 알고리즘으로 압축된 데이터 특성을 만족하는지를 확인하여 상기 출력 스트림의 오류를 검출하는 오류 검출부;를 포함하고, 상기 오류 검출부는, 상기 출력 스트림의 첫번째 튜플의 첫번째 인덱스 값이 0인지를 확인하는 과정, 상기 출력 스트림의 k번째 튜플의 첫번째 인덱스가 k-1보다 같거나 작은지를 확인하는 과정, 상기 출력 스트림에서 모든 튜플의 첫번째 인덱스 값이 0인 것의 개수를 확인하는 과정, 상기 출력 스트림에서 중복된 튜플이 존재하는지를 확인하는 과정 중 적어도 어느 하나의 과정을 수행할 수 있다.
삭제
상기 오류 검출부는, 임의의 입력 데이터에 대해 LZ78 알고리즘으로 압축된 데이터인지를 판별한다.
상기 데이터 압축부는, 상기 입력 스트림의 문자열을 사전에서 검색하고, 상기 사전에 매칭되는 문자열이 없는 경우에 상기 사전에 해당 문자열을 추가하고 상기 출력 스트림의 첫번째 인덱스 값에 0을 저장하며, 상기 사전에 매칭되는 문자열이 있는 경우에 상기 출력 스트림에 매칭되는 문자열의 인덱스와 바로 다음 캐릭터를 저장하고 상기 사전에 문자열을 추가한다.
본 발명은 압축 데이터인 출력 스트림에 대해 LZ78 알고리즘으로 압축된 데이터 특성을 만족하는지를 확인함으로써 추가적인 비트 삽입 없이 오류를 검출할 수 있다.
또한, 본 발명은 임의의 알고리즘으로 압축된 데이터에 대해서 LZ78 알고리즘으로 압축된 데이터인지를 판별할 수 있다.
도 1은 본 발명이 적용되는 LZ78 알고리즘 진행 과정의 예시를 나타낸 도면,
도 2는 본 발명의 일실시예에 따른 LZ78 압축 데이터의 오류 검출 방법에 대한 도면이다.
본 발명을 충분히 이해하기 위해서 본 발명의 바람직한 실시예를 첨부 도면을 참조하여 설명한다. 본 발명의 실시예는 여러 가지 형태로 변형될 수 있으며, 본 발명의 범위가 아래에서 상세히 설명하는 실시예로 한정되는 것으로 해석되어서는 안 된다. 본 실시예는 당업계에서 평균적인 지식을 가진 자에게 본 발명을 보다 완전하게 설명하기 위해서 제공 되어지는 것이다. 따라서 도면에서의 요소의 형상 등은 보다 명확한 설명을 강조하기 위해서 과장되어 표현될 수 있다. 각 도면에서 동일한 부재는 동일한 참조부호로 도시한 경우가 있음을 유의하여야 한다. 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 공지 기능 및 구성에 대한 상세한 기술은 생략된다.
도 1은 본 발명이 적용되는 LZ78 알고리즘 진행 과정의 예시를 나타낸 도면이다.
도 1의 설명에 앞서, LZ78 알고리즘 진행 과정의 예시를 설명하기 위한 용어들은 다음과 같은 의미가 있다. '입력 스트림'(input stream)은 압축될 원본 문자열, '출력 스트림'(output stram)은 압축된 결과, '캐릭터'(character)는 압축될 문자열의 기본적인 데이터 단위(길이가 1인 문자), '사전'(dictionary)은 압축에 사용되는 사전을 의미한다.
LZ78 알고리즘은 사전(dictionary)을 구성한 후 중복된 문자열에 대한 중복을 제외시켜 압축하는 원리를 이용한다.
LZ78 알고리즘에서 출력 스트림은 집단 자료 형태로서 튜플(tuple) 형태의 데이터가 저장된다. 일례로, 튜플 형태의 데이터는 '<첫번째 인덱스, 두번째 인덱스>'와 같이 나타낼 수 있다. 여기서, 튜플의 첫번째 인덱스(index)에는 입력 스트림의 문자열이 사전에 매칭되는 인덱스값이 저장된다. 튜플의 두번째 인덱스에는 사전에 매칭되는 문자열 다음에 오는 입력 스트림의 캐릭터가 저장된다.
도 1을 참조하여 설명하면, 초기에는 사전에 데이터가 저장되어 있지 않기 때문에, 출력 스트림의 첫번째 데이터는 '<0, 입력 스트림의 첫번째 캐릭터>'와 같이 튜플 형태로 저장된다. 즉, 출력 스트림의 첫번째 데이터는 '<0,C(a)>'(1)가 저장된다. 이 경우, 사전에는 입력 스트림의 첫번째 캐릭터가 첫번째 인덱스에 저장된다. 즉, 사전에는 입력 스트림의 첫번째 캐릭터인 '1:a'(2)가 저장된다.
다음으로, 입력 스트림에서 사전에 저장된 캐릭터가 나타나면 사전에 매칭되는 문자열이 존재하기 때문에, 출력 스트림은 '<1,매칭된 문자열 바로 다음의 캐릭터>'가 저장된다. 즉, 입력 스트림에서 사전에 저장된 캐릭터 'a'가 나타나면, 출력 스트림은 '<1,C(b)>'(3)이 저장된다. 이 경우, 사전에는 매칭된 문자열에 바로 다음의 캐릭터가 추가된다. 즉, 사전에는 매칭된 문자열 'a'에 바로 다음의 캐릭터 'b'가 추가되어 '2:ab'(4)가 저장된다.
전술한 LZ78 알고리즘의 부호화 과정은 다음과 같이 정리된다. (1) 입력 스트림의 문자열이 사전에서 검색된다. (2) 사전에 매칭되는 문자열이 없는 경우에는 사전에 해당 문자열이 추가되고, 출력 스트림의 첫번째 인덱스에 '0'이 저장된다. (3) 사전에 매칭되는 문자열이 있는 경우에는 출력 스트림에 매칭되는 문자열의 인덱스와 바로 다음 캐릭터가 저장된다. 그리고 사전에 문자열이 추가된다.
이와 같이 LZ78 알고리즘의 출력 스트림은 '<인덱스, 캐릭터>' 형태의 튜플들의 열을 2진 부호(binary code)로 표현하는 형태로 표시된다.
도 2는 본 발명의 일실시예에 따른 LZ78 압축 데이터의 오류 검출 방법에 대한 도면이다. 이하, 도 2를 참조하여 인코더(encoder)에서 LZ78 압축 데이터의 오류를 검출하는 방법에 대해 설명하기로 한다.
인코더는 LZ78 알고리즘으로 압축된 데이터에 대해 오류 비트 수에 상관없이 오류를 검출할 수 있다. 또한, 인코더는 임의의 데이터에 대해 LZ78 알고리즘으로 압축된 데이터인지를 판별할 수 있다.
여기서, 튜플 형태의 출력 스트림은
Figure 112017012985153-pat00001
와 같이 표시될 수 있다. 이때,
Figure 112017012985153-pat00002
는 출력 스트림의 i번째 튜플의 첫번째 인덱스이고,
Figure 112017012985153-pat00003
는 출력 스트림의 i번째 튜플의 두번째 인덱스이다.
도 2를 참조하면, 인코더는 압축 데이터인 출력 스트림에 대해 LZ78 알고리즘으로 압축된 데이터 특성을 만족하는지를 확인한다. 즉, 인코더는 출력 스트림에서 첫번째 튜플의 첫번째 인덱스
Figure 112017012985153-pat00004
가 '0'인지를 확인한다(S101). 또한, 인코더는 출력 스트림에서 k번째 튜플의 첫번째 인덱스
Figure 112017012985153-pat00005
가 k-1보다 같거나 작은지를 확인한다(S103). 또한, 인코더는 출력 스트림에서 모든 튜플의 첫번째 인덱스
Figure 112017012985153-pat00006
가 '0'인 것의 개수를 확인한다(S105, S107). 그리고 인코더는 출력 스트림에서 중복된 튜플이 존재하는지를 확인한다(S109).
아울러, 인코더는 S101 단계를 제외하고, 나머지 단계의 경우에 출력 스트림의 마지막 튜플에 도달할 때까지 반복 수행하여 압축 데이터의 오류를 검출한다.
이에 따라, 인코더는 전술한 확인 과정을 모두 만족하는 경우에 LZ78 알고리즘으로 압축된 데이터의 오류가 발생하지 않는 것으로 판단한다(S111, S113).
구체적으로, S101 단계에 대해 설명하면 다음과 같다.
인코더가 LZ78 알고리즘의 부호화(인코딩) 과정을 수행할 때, 출력 스트림에서 첫번째 튜플의 첫번째 인덱스 값은 '0'이다. 즉, 최초에 사전에는 아무 정보도 저장되지 않았기 때문에 중복되는 문자열이 없다. 이에 따라, 첫번째 튜플의 첫번째 인덱스 값은 '0'이다. 이를 정의한 변수를 통해 표현하면, 첫번째 튜플의 첫번째 인덱스 값은 하기 수학식 1과 같이 나타낼 수 있다.
Figure 112017012985153-pat00007
다음으로, S103 단계에 대해 설명하면 다음과 같다.
인코더가 k번째 행의 튜플을 부호화 과정을 수행할 때, k번째 튜플의 첫번째 인덱스
Figure 112017012985153-pat00008
는 k-1보다 작거나 같다. 즉, 이전의 k-1번째까지의 튜플을 복호화하는 중에 중복되는 문자열이 없어서 모두 사전에 저장된다고 하더라도, 사전에는 k-1개의 심볼(symbol)이 존재한다. 이를 정의한 변수를 통해 표현하면, k번째 튜플의 첫번째 인덱스는 하기 수학식 2를 만족한다.
Figure 112017012985153-pat00009
다음으로, S105 및 S107 단계에 대해 설명하면 다음과 같다.
출력 스트림에서 i번째 튜플의 첫번째 인덱스
Figure 112017012985153-pat00010
의 값이 '0'인 튜플의 개수는 총 128개를 넘을 수 없다. 여기서, 아스키 코드(ASCII code)로 표현 가능한 부호는 총 128개이다. 그런데 입력 스트림에서 서로 중복되지 않는 문자열의 개수가 128개인 경우에는
Figure 112017012985153-pat00011
의 값이 0인 튜플의 개수가 128개가 되고, 그렇지 않은 경우에는
Figure 112017012985153-pat00012
의 값이 0인 튜플의 개수가 128개보다 반드시 작게 된다.
마지막으로, S109 단계에 대해 설명하면 다음과 같다.
하나의 행에서 튜플은 중복되지 않고 유일하다. 즉, 동일한 인덱스
Figure 112017012985153-pat00013
Figure 112017012985153-pat00014
를 갖는 튜플은 존재하지 않는다. 다시 말해, 데이터 압축 시 임의의 행에서 튜플이
Figure 112017012985153-pat00015
라고 가정하면,
Figure 112017012985153-pat00016
의 인덱스에 따라 저장된 문자열과
Figure 112017012985153-pat00017
에 해당하는 코드를 합친 새로운 문자열이 다음 사전에 저장된다. 따라서, 같은 문자열이 다시 나오면 새롭게 저장된 사전을 이용하여 압축하기 때문에 겹치는 형태의 튜플로 압축될 수 없다. 이를 정의한 변수를 통해 표현하면 하기 수학식 3과 같다.
Figure 112017012985153-pat00018
따라서, 인코더는 LZ78 알고리즘으로 부호화된 출력 스트림이 갖는 특성을 이용하여 확인 과정(즉, S101 단계, S103 단계, S105 및 S107 단계, S109 단계)을 수행함으로써, 출력 스트림에 오류가 발생하는지를 확인할 수 있다(S111, S113). 즉, 인코더는 4가지 특성을 만족하지 않을 경우에 출력 스트림에 오류가 발생함을 확인할 수 있다.
한편, 인코더는 오류가 발생하지 않은 임의의 알고리즘으로 부호화된 출력 스트림에 대해 전술한 확인 과정을 수행함으로써 LZ78 알고리즘으로 압축되었는지를 판별할 수 있다.
아울러, 인코더는 크게 데이터 압축부와 오류 검출부로 구성될 수 있다. 즉, 인코더는 도 1의 LZ78 알고리즘 진행 과정을 통한 데이터 압축을 진행하는 데이터 압축부(미도시)와 도 2의 LZ78 압축 데이터의 오류 검출 과정을 통한 오류 검출을 진행하는 오류 검출부(미도시)를 포함하여 구성할 수 있다.
이상에서 설명된 본 발명의 실시예는 예시적인 것에 불과하며, 본 발명이 속한 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 잘 알 수 있을 것이다. 그럼으로 본 발명은 상기의 상세한 설명에서 언급되는 형태로만 한정되는 것은 아님을 잘 이해할 수 있을 것이다. 따라서 본 발명의 진정한 기술적 보호 범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다. 또한, 본 발명은 첨부된 청구범위에 의해 정의되는 본 발명의 정신과 그 범위 내에 있는 모든 변형물과 균등물 및 대체물을 포함하는 것으로 이해되어야 한다.

Claims (11)

  1. 압축 데이터인 출력 스트림에 대해 LZ78 알고리즘으로 압축된 데이터 특성을 만족하는지를 확인하는 단계; 및
    상기 확인 결과에 따라 상기 출력 스트림의 오류를 검출하는 단계;를 포함하고,
    상기 확인 단계는,
    (a) 상기 출력 스트림의 첫번째 튜플의 첫번째 인덱스 값이 0인지를 확인하는 단계; (b) 상기 출력 스트림의 k번째 튜플의 첫번째 인덱스가 k-1보다 같거나 작은지를 확인하는 단계; (c) 상기 출력 스트림에서 모든 튜플의 첫번째 인덱스 값이 0인 것의 개수를 확인하는 단계; 및 (d) 상기 출력 스트림에서 중복된 튜플이 존재하는지를 확인하는 단계;를 포함하며, 상기 (a), (b), (c) 및 (d) 단계 중 적어도 어느 하나를 수행하는 LZ78 압축 데이터의 오류 검출 방법.
  2. 삭제
  3. 제 1 항에 있어서,
    상기 (c) 단계는, 상기 출력 스트림에서 모든 튜플의 첫번째 인덱스 값이 0인 것의 개수가 아스키 코드(ASCII code)로 표현 가능한 부호의 총 개수인 128을 넘지않는 LZ78 압축 데이터의 오류 검출 방법.
  4. 제 1 항에 있어서,
    상기 (b), (c) 및 (d) 단계는, 상기 출력 스트림의 마지막 튜플에 도달할 때까지 반복 수행하는 LZ78 압축 데이터의 오류 검출 방법.
  5. 제 1 항에 있어서,
    상기 확인 단계 이후에, 상기 출력 스트림에 대해 LZ78 알고리즘으로 압축된 데이터인지를 판별하는 단계;
    를 더 포함하는 LZ78 압축 데이터의 오류 검출 방법.
  6. 제 1 항에 있어서,
    상기 확인 단계 이전에,
    입력 스트림의 문자열을 사전에서 검색하는 단계;
    상기 사전에 매칭되는 문자열이 없는 경우에, 상기 사전에 해당 문자열을 추가하고, 상기 출력 스트림의 첫번째 인덱스 값에 0을 저장하는 단계; 및
    상기 사전에 매칭되는 문자열이 있는 경우에, 상기 출력 스트림에 매칭되는 문자열의 인덱스와 바로 다음 캐릭터를 저장하고, 상기 사전에 문자열을 추가하는 단계;
    를 더 포함하는 LZ78 압축 데이터의 오류 검출 방법.
  7. 제 1 항에 있어서,
    상기 출력 스트림은, 튜플(tuple) 형태의 데이터로 저장되며,
    상기 튜플의 첫번째 인덱스에 입력 스트림의 문자열이 사전에 매칭되는 인덱스값이 저장되고, 상기 튜플의 두번째 인덱스에 사전에 매칭되는 문자열 다음에 오는 입력 스트림의 캐릭터가 저장되는 LZ78 압축 데이터의 오류 검출 방법.
  8. 입력 스트림의 문자열에 대해 LZ78 알고리즘을 이용하여 상기 입력 스트림을 압축하여 출력 스트림을 저장하는 데이터 압축부; 및
    상기 출력 스트림에 대해 LZ78 알고리즘으로 압축된 데이터 특성을 만족하는지를 확인하여 상기 출력 스트림의 오류를 검출하는 오류 검출부;를 포함하고,
    상기 오류 검출부는,
    상기 출력 스트림의 첫번째 튜플의 첫번째 인덱스 값이 0인지를 확인하는 과정, 상기 출력 스트림의 k번째 튜플의 첫번째 인덱스가 k-1보다 같거나 작은지를 확인하는 과정, 상기 출력 스트림에서 모든 튜플의 첫번째 인덱스 값이 0인 것의 개수를 확인하는 과정, 상기 출력 스트림에서 중복된 튜플이 존재하는지를 확인하는 과정 중 적어도 어느 하나의 과정을 수행하는 인코더.
  9. 삭제
  10. 제 8 항에 있어서,
    상기 오류 검출부는,
    임의의 입력 데이터에 대해 LZ78 알고리즘으로 압축된 데이터인지를 판별하는 인코더.
  11. 제 8 항에 있어서,
    상기 데이터 압축부는,
    상기 입력 스트림의 문자열을 사전에서 검색하고,
    상기 사전에 매칭되는 문자열이 없는 경우에 상기 사전에 해당 문자열을 추가하고 상기 출력 스트림의 첫번째 인덱스 값에 0을 저장하며,
    상기 사전에 매칭되는 문자열이 있는 경우에 상기 출력 스트림에 매칭되는 문자열의 인덱스와 바로 다음 캐릭터를 저장하고 상기 사전에 문자열을 추가하는 인코더.
KR1020170017336A 2017-02-08 2017-02-08 Lz78 압축 데이터의 오류 검출 방법 및 이를 이용한 인코더 KR101906036B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170017336A KR101906036B1 (ko) 2017-02-08 2017-02-08 Lz78 압축 데이터의 오류 검출 방법 및 이를 이용한 인코더

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170017336A KR101906036B1 (ko) 2017-02-08 2017-02-08 Lz78 압축 데이터의 오류 검출 방법 및 이를 이용한 인코더

Publications (2)

Publication Number Publication Date
KR20180092050A KR20180092050A (ko) 2018-08-17
KR101906036B1 true KR101906036B1 (ko) 2018-10-08

Family

ID=63408038

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170017336A KR101906036B1 (ko) 2017-02-08 2017-02-08 Lz78 압축 데이터의 오류 검출 방법 및 이를 이용한 인코더

Country Status (1)

Country Link
KR (1) KR101906036B1 (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4328358B2 (ja) * 2004-12-07 2009-09-09 日本電信電話株式会社 情報圧縮符号化装置、その復号化装置、これらの方法、およびこれらのプログラムとその記録媒体

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4328358B2 (ja) * 2004-12-07 2009-09-09 日本電信電話株式会社 情報圧縮符号化装置、その復号化装置、これらの方法、およびこれらのプログラムとその記録媒体

Also Published As

Publication number Publication date
KR20180092050A (ko) 2018-08-17

Similar Documents

Publication Publication Date Title
CN108880556B (zh) 基于lz77的无损数据压缩方法、误码修复方法及编码器和解码器
CN108768403B (zh) 基于lzw的无损数据压缩、解压方法及lzw编码器、解码器
US10320414B2 (en) Methods and apparatus to parallelize data decompression
US6611213B1 (en) Method and apparatus for data compression using fingerprinting
US8458354B2 (en) Multi-pattern matching in compressed communication traffic
US7872598B2 (en) Accelerated decompression
US20080036630A1 (en) Apparatus and methods for searching a pattern in a compressed data
US8872677B2 (en) Method and apparatus for compressing data-carrying signals
US10938410B2 (en) Hardware friendly data compression
KR101049699B1 (ko) 데이터의 압축방법
US9264068B2 (en) Deflate compression algorithm
EP1798861A1 (en) LDPC encoding through decoding algorithm
Gabrys et al. Unique reconstruction of coded sequences from multiset substring spectra
JP5913748B2 (ja) セキュアで損失のないデータ圧縮
CA2398955C (en) Method for compressing data
CN115993939B (zh) 存储系统重复数据删除方法及装置
KR101906036B1 (ko) Lz78 압축 데이터의 오류 검출 방법 및 이를 이용한 인코더
JPH0764765A (ja) データ圧縮装置及びデータ復元装置
KR101857385B1 (ko) Lz77 무손실 압축 데이터의 오류 체크 방법 및 장치
US6819272B2 (en) System, method and computer readable medium for compressing a data sequence for partial decompressing
JP3673222B2 (ja) 可変長符号化方法及び装置並びに可変長復号化方法及び装置
JP2827982B2 (ja) データ圧縮制御方法
Anisimov et al. Variable length prefix (Δ, k)-codes
Pernice et al. Efficient near-optimal codes for general repeat channels
Lin et al. An effective error correction scheme for arithmetic coding

Legal Events

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