KR101610609B1 - 데이터 인코더, 데이터 디코더 및 방법 - Google Patents

데이터 인코더, 데이터 디코더 및 방법 Download PDF

Info

Publication number
KR101610609B1
KR101610609B1 KR1020157023702A KR20157023702A KR101610609B1 KR 101610609 B1 KR101610609 B1 KR 101610609B1 KR 1020157023702 A KR1020157023702 A KR 1020157023702A KR 20157023702 A KR20157023702 A KR 20157023702A KR 101610609 B1 KR101610609 B1 KR 101610609B1
Authority
KR
South Korea
Prior art keywords
data
encoded
encoder
decoder
portions
Prior art date
Application number
KR1020157023702A
Other languages
English (en)
Other versions
KR20150105486A (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 구루로직 마이크로시스템스 오이
Publication of KR20150105486A publication Critical patent/KR20150105486A/ko
Application granted granted Critical
Publication of KR101610609B1 publication Critical patent/KR101610609B1/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/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
    • H03M7/48Conversion 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 alternating with other codes during the code conversion process, e.g. run-length coding being performed only as long as sufficientlylong runs of digits of the same kind are present
    • 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
    • H03M5/00Conversion of the form of the representation of individual digits
    • H03M5/02Conversion to or from representation by pulses
    • H03M5/04Conversion to or from representation by pulses the pulses having two levels
    • H03M5/14Code representation, e.g. transition, for a given bit cell depending on the information in one or more adjacent bit cells, e.g. delay modulation code, double density 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/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/04Protocols for data compression, e.g. ROHC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Multimedia (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)

Abstract

입력 데이터(D1)를 인코딩하여 대응하는 인코딩된 출력 데이터(D2)를 생성하는 인코더(10)가 제공된다. 인코더(10)는 상기 입력 데이터(D1)의 런렝쓰 인코딩된(RLE) 표시를 생성하는 데이터 처리 장치를 포함한다. 더욱이, 인코더(10)는 상기 런렝쓰 인코딩된(RLE) 표시를 복수의 부분들(A, B)로 분할하도록 동작 가능하고, 여기에서 적어도 하나의 부분은 원래 심볼과 관련되고 적어도 다른 부분은 상기 원래 심볼의 생성을 표시하는 카운터와 관련된다. 또한, 인코더(10)는 상기 복수의 부분들(A, B)을 별도로 인코딩하여 인코딩된 출력 데이터(D2)를 생성하도록 동작 가능하다. 상기 인코딩된 데이터(D2)를 디코딩하여 대응하는 디코딩된 출력 데이터(D3)를 생성하는 대응하는 디코더(50)가 또한 제공된다. 추가로, 전술한 인코더(10) 및 디코더(50)를 포함한 코덱(20)이 제공된다. 선택적으로, 원래의 심볼은 문자, 알파벳 요소, 숫자, 비트, 바이트, 단어 중의 적어도 하나를 포함한다.

Description

데이터 인코더, 데이터 디코더 및 방법{DATA ENCODER, DATA DECODER AND METHOD}
본 발명은 데이터 인코더 및 대응하는 데이터 인코딩 방법에 관한 것이다. 또한, 본 발명은 데이터 디코더, 및 인코딩된 데이터를 디코딩하는 대응하는 방법에 관한 것이다. 더 나아가, 본 발명은 기계 판독가능 데이터 저장 매체에 기록된 소프트웨어 제품에 관한 것이고, 상기 소프트웨어 제품은 전술한 방법들을 실행하기 위해 컴퓨팅 하드웨어에서 실행 가능하다. 데이터 인코더 및 유사하게 데이터 디코더는 예를 들면 데이터 통신 시스템 및 데이터 공급 시스템의 컴포넌트 부품으로서 사용 가능할 뿐만 아니라 소비자 전자제품에서도 사용가능하다. 추가로, 본 발명은 적어도 하나의 전술한 데이터 인코더 및 적어도 하나의 전술한 데이터 디코더를 포함한 코덱에 관한 것이다.
현대 사회에서는 데이터의 사용 범위가 증가하고 있기 때문에, 무손실 데이터 압축을 제공하는 단순하지만 효과적인 방법 및 이에 대응하여 무손실 데이터 압축 해제(de-compression)를 제공하는 단순한 방법이 필요하다. 데이터를 압축하는 종래의 공지된 런렝쓰 인코딩 방법은 실은 연속적인 데이터를 압축하는 데만 효과적이다. 그러나, 연속적 데이터는 일반적으로 패킷화 데이터 교환을 가끔 실행하는 데이터 통신 시스템에서는 그다지 보편적이지 않다. 예를 들면, 인터넷의 데이터 통신 시스템 내에서의 패킷화 데이터 교환은 다수의 작은 데이터 패킷의 전송을 야기한다. 그러나, 데이터 압축 기술 분야에 숙련된 사람이라면 런렝쓰 인코딩(run-length encoding, RLE)가 다른 공지의 데이터 압축 기술에 비하여 더 좋은 데이터 압축비를 제공할 수 있다는 것을 알 것이다.
런렝쓰 인코딩 방법의 모든 변형예들은 이러한 방법들에 의해 인코딩되는 바이트 단위의 문자(character) 및 카운터(counter)를 사용한다. 그 방법들을 구현할 때, 카운터는 상기 문자들의 각 런(run)에 대하여 설정된다. 더욱이, 문자에 대한 카운터를 어떻게 표시하는지에 관한 방법에는 몇 가지 변형예가 있지만, 이러한 변형예는 항상 바이트 단위의 문자와 함께 동일한 출력 데이터로 인코딩된다. 결과적으로, 정규의 공지된 RLE 방법은 비교적 빈약한 데이터 압축비를 제공하는 것으로 밝혀졌다.
공지의 최신 기술을 나타내는 문헌들을 표 1에 나타내었다.
공지의 기술 문헌
인용 문서 문서의 세부
문서 D1 "런렝쓰 인코딩" - 위키피디아, (2012년 11월 28일 액세스), URL:
http://en.wikipedia.org/wiki/Run-length_encoding
문서 D2 "허프만 코딩" - 위키피디아, (2012년 11월 28일 액세스), URL:
http://en.wikipedia.org/wiki/Huffman_coding
문서 D3 "런렝쓰 인코딩(RLE) - 논의 및 구현"(2012년 12월 18일 액세스), URL:
http://michael.dipperstein.com/rle/index.html
문서 D4 Arturo Campos에 의한 "런렝쓰 인코딩"(2012년 12월 18일 액세스), URL:
http://arturocampos.com/ac_rle.html
문서 D5 "수학적 통신 이론" Claude E. Shannon(1948)(2012년 11월 28일 액세스), URL: http://cm.bell-labs.com/cm/ms/what/shannonday/shannon1948.pdf
문서 D6 샤논의 소스 코딩 이론 - 위키피디아(2012년 11월 28일 액세스), URL:
http://en.wikipedia.org/wiki/Source_coding_theorem
문서 D7 "엔트로피" - 위키피디아(2012년 11월 28일 액세스), URL:
http://en.wikipedia.org/wiki/Entropy
문서 D8 "가변길이 코드" - 위키피디아(2012년 11월 28일 액세스), URL:
http://en.wikipedia.org/wiki/Arithmetic_coding
문서 D9 "산술 코딩" - 위키피디아(2012년 11월 28일 액세스), URL:
http://en.wikipedia.org/wiki/Arithmetic_coding
문서 D10 "델타 인코딩" - 위키피디아(2012년 11월 28일 액세스), URL:
http://en.wikipedia.org/wiki/Delta_coding
본 발명은 대응하는 압축 출력 데이터를 생성하는 개선된 입력 데이터 압축 방법을 제공하는 것을 추구한다.
본 발명은 대응하는 인코딩된 출력 데이터를 생성하는 개선된 입력 데이터 인코딩 방법을 제공하는 것을 추구한다.
본 발명은 압축 입력 데이터를 수신하여 대응하는 압축 해제된 출력 데이터를 생성하는 개선된 데이터 압축 해제 방법을 제공하는 것을 또한 추구한다.
본 발명은 대응하는 디코딩된 출력 데이터를 생성하는 개선된 입력 데이터 디코딩 방법을 제공하는 것을 추구한다.
본 발명은 전술한 개선된 방법들을 사용하도록 동작 가능한 인코더, 디코더 및 코덱을 제공하는 것을 또한 추구한다.
본 발명의 제1 양태에 따르면, 첨부된 청구항 1에서 청구되는 인코더가 제공된다. 즉, 입력 데이터(D1)를 인코딩하여 대응하는 인코딩된 출력 데이터(D2)를 생성하는 인코더로서, 상기 입력 데이터(D1)의 런렝쓰 인코딩된(RLE) 표시를 생성하는 데이터 처리 장치를 포함한 인코더에 있어서, 상기 런렝쓰 인코딩된(RLE) 표시를 복수의 부분들(A, B) - 적어도 하나의 부분은 원래 심볼(symbol)과 연관되고 적어도 다른 부분은 상기 원래 심볼의 발생(occurrence)을 표시하는 카운터와 연관됨 - 로 분할하도록 동작 가능하며, 상기 복수의 부분들(A, B)을 별도로 인코딩하여 인코딩된 출력 데이터(D2)를 생성하도록 동작 가능한 것을 특징으로 하는 인코더가 제공된다.
본 발명은 인코더가 상기 복수의 부분들(A, B)을 개별적으로 취급함으로써 공지 유형의 인코더에 비하여 실질적으로 더 높은 정도의 무손실 압축을 제공할 수 있다는 점에서 장점이 있다.
어구 "발생을 표시하는"은 넓게 해석되어야 하고, 데이터 스트림에서 나타나는 다수의 상호 유사한 연속 문자들을 단순히 직접 카운트하는 카운터로 제한되지 않는다.
선택적으로, 상기 인코더가 동작 중일 때, 상기 원래 심볼은 문자, 알파벳 요소, 숫자, 비트, 바이트, 단어 중의 적어도 하나를 포함한다.
선택적으로, 상기 인코더는 인코딩된 출력 데이터(D2)를 입력 데이터(D1)에 대하여 압축된 형태로 생성하도록 동작 가능하다.
선택적으로, 상기 인코더는 가변길이 코딩(variable length coding, VLC), 허프만 코딩, 골롬 코딩, 산술 코딩, 레인지 코딩, 델타 코딩, 오델타(ODelta) 코딩, 렘펠집(Lempel-Ziv) 코딩, BWT 코딩 중의 적어도 하나를 사용하여 상기 복수의 부분들(A, B)을 인코딩함으로써 인코딩된 출력 데이터(D2)를 생성하도록 동작 가능하다. 다른 선택적으로, 상기 인코더는 인코더가 인코딩된 출력 데이터(D2)의 부분(A 및/또는 B)을 엔트로피 인코딩하는 과정에 있을 때 하나 이상의 이스케이프 코드 또는 하나 이상의 연속 값 심볼을 사용함으로써 상기 부분(A 및/또는 B)의 값들을 인코딩할 수 있는 엔트로피 인코딩 방법을 사용하여 상기 복수의 부분들(A, B) 중 적어도 하나를 인코딩하도록 동작 가능하다.
선택적으로, 상기 인코더는 상기 복수의 부분들(A, B) 각각에 대응하는 인코딩된 데이터의 발생을 표시하기 위해 상기 인코딩된 출력 데이터(D2)에 하나 이상의 마커를 포함시키도록 동작 가능하다.
선택적으로, 상기 인코더는 상기 런렝쓰 인코딩된(RLE) 표시가 실질적으로 무손실 방식으로 구현되도록 구성된다.
본 발명의 제2 양태에 따르면, 인코더에서 입력 데이터(D1)를 인코딩하여 대응하는 인코딩된 출력 데이터(D2)를 생성하는 방법으로서, 데이터 처리 장치를 사용하여 상기 입력 데이터(D1)의 런렝쓰 인코딩된(RLE) 표시를 생성하는 단계를 포함한 입력 데이터 인코딩 방법에 있어서,
(a) 상기 인코더를 사용하여 상기 런렝쓰 인코딩된(RLE) 표시를 복수의 부분들(A, B) - 적어도 하나의 부분은 원래 심볼과 연관되고 적어도 다른 부분은 상기 원래 심볼의 발생을 표시하는 카운터와 연관됨 - 로 분할하는 단계와;
(b) 상기 인코더를 사용하여 상기 복수의 부분들(A, B)을 별도로 인코딩하여 인코딩된 출력 데이터(D2)를 생성하는 단계를 포함한 것을 특징으로 하는 입력 데이터 인코딩 방법이 제공된다.
어구 "발생을 표시하는"은 넓게 해석되어야 하고, 데이터 스트림에서 나타나는 다수의 상호 유사한 연속 문자들을 단순히 직접 카운트하는 카운터로 제한되지 않는다.
선택적으로, 상기 방법에 있어서, 상기 원래 심볼은 문자, 알파벳 요소, 숫자, 비트, 바이트, 단어 중의 적어도 하나를 포함한다.
선택적으로, 상기 방법은 상기 인코더를 사용하여 인코딩된 출력 데이터(D2)를 입력 데이터(D1)에 대하여 압축된 형태로 생성하는 단계를 포함한다.
선택적으로, 상기 방법은 상기 인코더를 사용하여 가변길이 코딩(VLC), 허프만 코딩, 골롬 코딩, 산술 코딩, 레인지 코딩, 델타 코딩, 오델타 코딩, 렘펠집 코딩, BWT 코딩 중의 적어도 하나를 사용하여 상기 복수의 부분들(A, B)을 인코딩함으로써 인코딩된 출력 데이터(D2)를 생성하는 단계를 포함한다. 또 다른 선택 사항으로, 상기 방법은 상기 인코더를 사용하여 인코더가 인코딩된 출력 데이터(D2)의 부분(A 및/또는 B)을 엔트로피 인코딩하는 과정에 있을 때 하나 이상의 이스케이프 코드 또는 하나 이상의 연속 값 심볼을 사용함으로써 상기 부분(A 및/또는 B)의 값들을 인코딩할 수 있는 엔트로피 인코딩 방법을 사용하여 상기 복수의 부분들(A, B) 중 적어도 하나를 인코딩하는 단계를 포함한다.
선택적으로, 상기 방법은 인코더를 사용하여 상기 복수의 부분들(A, B) 각각에 대응하는 인코딩된 데이터의 발생을 표시하기 위해 상기 인코딩된 출력 데이터(D2)에 하나 이상의 마커를 포함시키는 단계를 포함한다.
선택적으로, 상기 방법은 상기 런렝쓰 인코딩된(RLE) 표시를 실질적으로 무손실 방식으로 구현하는 단계를 포함한다.
본 발명의 제3 양태에 따르면, 인코딩된 입력 데이터(D2)를 디코딩하여 대응하는 디코딩된 출력 데이터(D3)를 생성하는 디코더에 있어서, 상기 인코딩된 입력 데이터(D2)를 복수의 분리된 부분(A, B) - 적어도 하나의 부분은 원래 심볼과 연관되고 적어도 다른 부분은 상기 원래 심볼의 발생을 표시하는 카운터와 연관됨 - 으로 디코딩하고, 상기 디코딩된 출력 데이터(D3)를 생성하기 위해 런렝쓰 디코딩 처리를 통하여 디코딩하기 위한 결합 데이터를 생성하도록 상기 복수의 부분들(A, B)을 함께 결합하는 데이터 처리 장치를 포함한 것을 특징으로 하는 디코더가 제공된다.
어구 "발생을 표시하는"은 넓게 해석되어야 하고, 데이터 스트림에서 나타나는 다수의 상호 유사한 연속 문자들을 단순히 직접 카운트하는 카운터로 제한되지 않는다.
선택적으로, 상기 디코더가 동작 중일 때, 상기 원래 심볼은 문자, 알파벳 요소, 숫자, 비트, 바이트, 단어 중의 적어도 하나를 포함한다.
선택적으로, 상기 디코더는 디코딩된 출력 데이터(D3)를 인코딩된 입력 데이터(D2)에 대하여 압축 해제된 형태로 생성하도록 동작 가능하다.
선택적으로, 상기 디코더는 역 가변길이 코딩(VLC), 역 허프만 코딩, 역 골롬 코딩, 역 산술 코딩(역 레인지 코딩), 역 델타 코딩, 역 오델타 코딩, 역 렘펠집 코딩, 역 BWT 코딩 중의 적어도 하나를 사용하여 상기 인코딩된 입력 데이터(D2)를 디코딩함으로써 상기 복수의 부분들(A, B)을 생성하도록 동작 가능하다. 또 다른 선택 사항으로, 상기 디코더는 상기 디코더가 상기 부분(A 및/또는 B)을 생성하는 과정에 있을 때 상기 인코딩된 입력 데이터(D2)로부터 하나 이상의 이스케이프 코드 또는 하나 이상의 연속 값 심볼을 디코딩할 수 있는 엔트로피 디코딩 방법을 사용하여 상기 복수의 부분들(A, B) 중 적어도 하나를 디코딩하도록 동작 가능하다.
선택적으로, 상기 디코더는 상기 복수의 부분들(A, B) 각각에 대응하는 인코딩된 데이터의 발생을 결정하기 위해 상기 인코딩된 입력 데이터(D2) 내의 하나 이상의 마커를 식별하도록 동작 가능하다.
선택적으로, 상기 디코더는 런렝쓰 디코딩 처리가 실질적으로 무손실 방식으로 구현되도록 구성된다.
본 발명의 제4 양태에 따르면, 대응하는 디코딩된 출력 데이터(D3)를 생성하기 위해 디코더에서 인코딩된 입력 데이터(D2)를 디코딩하는 방법으로서 데이터 처리 장치를 사용하는 단계를 포함한 입력 데이터 디코딩 방법에 있어서,
(a) 상기 디코더를 사용하여 상기 인코딩된 입력 데이터(D2)를 복수의 분리된 부분(A, B) - 적어도 하나의 부분은 원래 심볼과 연관되고 적어도 다른 부분은 상기 원래 심볼의 발생을 표시하는 카운터와 연관됨 - 으로 디코딩하는 단계와;
(b) 상기 디코더를 사용하여 상기 복수의 부분들(A, B)을 결합하여 대응하는 결합 데이터를 생성하는 단계와;
(c) 런렝쓰 디코딩 처리를 사용하여 상기 결합 데이터에 런렝쓰 디코딩 처리를 적용함으로써 디코딩된 출력 데이터(D3)를 생성하는 단계를 포함한 것을 특징으로 하는 입력 데이터 디코딩 방법이 제공된다.
어구 "발생을 표시하는"은 넓게 해석되어야 하고, 데이터 스트림에서 나타나는 다수의 상호 유사한 연속 문자들을 단순히 직접 카운트하는 카운터로 제한되지 않는다.
선택적으로, 상기 방법에 있어서, 상기 원래 심볼은 문자, 알파벳 요소, 숫자, 비트, 바이트, 단어 중의 적어도 하나를 포함한다.
선택적으로, 상기 방법은 상기 디코더를 사용하여 상기 디코딩된 출력 데이터(D3)를 상기 인코딩된 입력 데이터(D2)에 대하여 압축 해제된 형태로 생성하는 단계를 포함한다.
선택적으로, 상기 방법은 상기 디코더를 사용하여 역 가변길이 코딩(VLC), 역 허프만 코딩, 역 골롬 코딩, 역 산술 코딩(역 레인지 코딩), 역 델타 코딩, 역 오델타 코딩, 역 렘펠집 코딩, 역 BWT 코딩 중의 적어도 하나를 사용하여 상기 복수의 부분들(A, B)을 디코딩함으로써 디코딩된 출력 데이터(D3)를 생성하는 단계를 포함한다. 다른 선택적으로, 상기 방법은 상기 디코더를 사용하여 상기 디코더가 상기 부분(A 및/또는 B)을 생성하는 과정에 있을 때 상기 인코딩된 입력 데이터(D2)로부터 하나 이상의 이스케이프 코드 또는 하나 이상의 연속 값 심볼을 디코딩할 수 있는 엔트로피 디코딩 방법을 사용하여 상기 복수의 부분들(A, B) 중 적어도 하나를 디코딩하는 단계를 포함한다.
선택적으로, 상기 방법은 상기 디코더를 사용하여 상기 복수의 부분들(A, B) 각각에 대응하는 인코딩된 데이터의 발생을 결정하기 위해 상기 인코딩된 입력 데이터(D2) 내의 하나 이상의 마커를 식별하는 단계를 포함한다.
선택적으로, 상기 방법은 런렝쓰 디코딩 처리를 실질적으로 무손실 방식으로 구현하는 단계를 포함한다.
본 발명의 제5 양태에 따르면, 입력 데이터(D1)를 인코딩하여 대응하는 인코딩된 데이터(D2)를 생성하는 본 발명의 상기 제1 양태에 따른 인코더, 및 인코딩된 출력 데이터(D2)를 디코딩하여 대응하는 디코딩된 출력 데이터(D3)를 생성하는 본 발명의 상기 제3 양태에 따른 디코더를 포함한 코덱이 제공된다.
본 발명의 제6 양태에 따르면, 기계 판독가능 데이터 저장 매체에 기록된 소프트웨어 제품이 제공되고, 이 소프트웨어 제품은 본 발명의 상기 제2 양태에 따른 방법을 실행하도록 컴퓨팅 하드웨어에서 실행가능한 것을 특징으로 한다.
본 발명의 제7 양태에 따르면, 기계 판독가능 데이터 저장 매체에 기록된 소프트웨어 제품이 제공되고, 이 소프트웨어 제품은 본 발명의 상기 제4 양태에 따른 방법을 실행하도록 컴퓨팅 하드웨어에서 실행가능한 것을 특징으로 한다.
본 발명의 특징들은 첨부된 특허 청구범위에서 규정되는 본 발명의 범위로부터 벗어나지 않고 각종 조합으로 결합될 수 있다는 것을 이해할 것이다.
본 발명의 실시형태를 하기의 도면을 참조하면서 단지 예로서 설명한다.
도 1은 본 발명에 따른 인코더를 보인 도이다.
도 2는 본 발명에 따른 코덱을 보인 도이다.
첨부 도면에 있어서, 밑줄 친 숫자는 밑줄 친 숫자가 위에 있는 아이템 또는 밑줄 친 숫자가 인접해 있는 아이템을 표시하기 위해 사용된다. 밑줄 없는 숫자는 밑줄 없는 숫자를 아이템에 연결하는 선에 의해 식별되는 아이템과 관계된다. 숫자가 밑줄이 없고 연관된 화살표를 수반할 경우, 그 밑줄 없는 숫자는 화살표가 지시하는 일반적인 아이템을 나타내기 위해 사용된다.
개관으로서, 본 발명은 런렝쓰 인코딩(RLE) 방법에 기초를 두지만, 그 방법에 대하여 상당한 개선을 제공한다.
RLE 방법은 당대에 각종 유형의 그래픽 정보, 예를 들면 멀티미디어 데이터 포맷을 예를 들면 무손실 방식으로 인코딩하기 위해 사용되고 있다. 그러나, 이러한 RLE 방법은 예컨대 사진과 같은 연속 색조 이미지뿐만 아니라 비양식화 데이터에 대하여 잘 수행되지 못한다. 그럼에도 불구하고, 종래의 RLE는 일반적으로 허프만 코딩과 함께 팩시밀리 기계 등의 장치에서 사용되고 있고, BMP, GIF, PCX, TIFF 등과 같은 표준형의 현대식 포맷을 사용하고 있다.
본 발명의 실시형태는 현대의 공지된 RLE 방법에 비하여 향상된 데이터 압축비를 제공하는 개선된 데이터 압축 및 인코딩을 달성하는 단순한 해법과 관련된다. 더욱이, 본 발명의 실시형태는 RLE와 유사하지만 연관된 문자들이 문자 자체의 각각의 데이터 출력 부분, 즉 부분 A와 부분 B에 각각 기입된다는 점에 차이점이 있는 카운터를 사용한다. 상호 다른 부분으로의 이러한 분리는 문자 선명도 및 런렝쓰 정보가 함께 혼합되는 당대의 RLE 접근법과 반대이다.
따라서, 본 발명의 실시형태는 신규의 분할 런렝쓰 방법(split run-length method, SRLE)과 관련되고, 이것은 연속 데이터의 전처리 및 후처리 둘 다에 대하여, 즉, 예를 들면 그래픽, 이미지, 비디오, 오디오, 텍스트 및 이진수 데이터를 포함한 모든 유형의 1D, 2D 및 3D 데이터에 대하여 효과적이다. 분할 런렝쓰 방법은 디바이스, 마이크로프로세서 등에서의 구현을 위해 네트워크 목적으로 갱신이 가능하다. 더욱이, 분할 런렝쓰 방법은 기계 판독가능 데이터 저장 매체에 저장된 하나 이상의 소프트웨어 제품을 사용하여 구현될 수 있고, 상기 소프트웨어 제품은 컴퓨팅 하드웨어에서 실행 가능하다.
도 1을 참조하면, 예를 들면 디지털 하드웨어, 및/또는 기계 판독가능 데이터 저장 매체에 저장되고 컴퓨팅 하드웨어에서 실행 가능한 소프트웨어 제품에 의해 구현되며, 입력 데이터(D1)를 수신하고 대응하는 인코딩된 출력 데이터(D2)를 생성하도록 동작 가능한 인코더(10)가 도시되어 있다. 이러한 인코더(10)의 경우, 입력 데이터(D1)의 엔트로피(E1)뿐만 아니라 출력 데이터(D2)의 엔트로피(E2)를 산출할 수 있다. 상기 엔트로피(E1, E2)는 소정의 데이터 집합을 제공하기 위해 필요한 다수의 비트로 나타낸다.
인코더(10)의 동작 방식을 설명하기 위해, 예시적인 런렝쓰(RL)는 일반적으로 하나 이상의 바이트 값으로 표현된다. 그러나, 본 발명의 실시형태를 설명하기 위해, 여기에서는 영숫자 문자를 설명할 것이다. 입력 데이터(D1)는 다음과 같은 문자열로 표시된다.
[수학식 1]
Figure 112015084391803-pct00001
상기 문자열과 연관된 엔트로피(E1)는 수학식 2와 수학식 3으로부터 산출할 수 있는 바와 같이 25.66 비트로 표시될 수 있는 62개의 "W" 문자와 5개의 "B" 문자이다.
[수학식 2]
Figure 112015084391803-pct00002
섀넌 이론에 의하면, 소정의 알파벳으로 소정의 메시지를 인코딩하기 위한 가능한 최단 표시의 평균 길이(L)는 그 알파벳에 나타나는 심볼(N)의 수의 대수로 그들의 엔트로피(E)를 나눈 값과 같은 것으로 확인되었다.
[수학식 3]
Figure 112015084391803-pct00003
비트
상기 문자들의 계열은 26.55 비트에 대응하는 산출된 연관된 엔트로피(E2)를 가진 수학식 4와 같은 RLE 계열로서 출력 데이터(D2)를 생성하기 위해,
[수학식 4]
Figure 112015084391803-pct00004
또는 대안적으로, 35.49 비트에 대응하는 산출된 연관된 엔트로피(E2)를 가진 수학식 5와 같은 RLE 계열로서 출력 데이터(D2)를 생성하기 위해,
[수학식 5]
Figure 112015084391803-pct00005
2개의 대안적인 공지의 RLE 방법을 사용하여 인코딩될 수 있다.
수학식 4는 소정 문자의 발생을 표시하는 수(N)가 선행되는 소정 문자의 단순한 표현, 즉 12개의 "W" 뒤에 하나의 "B"가 이어지고 그 다음에 12개의 "W"가 이어지는 것 등으로 표시되는 단순한 표현이다. 이와 대조적으로, 수학식 5에서는 문자들이 수학식 1에서의 순서로 대응하는 문자들을 나타내고, 문자 뒤에 그 문자의 발생 수가 표시되는 표현이다.
수학식 4는 최소의 나열 값(run value)이 1임을 표시하고, 수학식 5는 최소의 나열 값이 2임을 표시한다. 이것은 이 정보를 활용하는 구현의 구성을 가능하게 하고, 0으로부터 시작하는 스트림 값을 자동으로 생성한다. 예를 들면, 수학식 4는 수'=수-1(N'=N-1)을 사용하여 수학식 4'와 같이 될 수 있다.
[수학식 4']
Figure 112015084391803-pct00006
수학식 5는 (N'=N-2)를 사용하여 수학식 5'와 같이 될 수 있다.
[수학식 5']
Figure 112015084391803-pct00007
이것은 데이터의 엔트로피를 변경하지 않지만, 표 전달을 위해 필요한 비트의 양 및 또한 아마도 필요한 이스케이프 코드 또는 연속 값 심볼의 양을 감소시킴으로써 나열 값들을 엔트로피 인코딩에 더 적합하게 만든다. 수정된 수학식 4' 및/또는 수학식 5'를 사용할 경우, 디코더도 또한 그에 대응하게 수정되어야 한다. 이것은 수학식 4'에서 보정이 (N=N'+1)이고, 수학식 5'에서 보정이 (N=N'+2)임을 의미한다.
전술한 이스케이프 코드는 드문 값(rare value)을 검출 및 식별하고 그 다음에 상기 드문 값을 별도로 그 원래 형태로 기입하는 것이 바람직한 경우에 적절히 사용된다. 연속 값(continuum value)은 수 개의 심볼 중에서 소정의 값을 구성하는 것이 바람직할 때 적절히 사용되고, 상기 심볼들은 서로 가산되거나 서로로부터 감산되며, 상기 심볼들은 동일 스트림으로 기입되거나 원래 값 또는 수정된 값일 수 있는 다른 요소들과 함께 엔트로피 코딩될 수 있다. 일반적으로, 이스케이프 코드는 양호한 실시형태에서 드문 값을 하나의 심볼로 교체하지만, 원래 값도 또한 그 원래 비트 카운트와 함께 스트림에 가산된다. 나중에 실행될 엔트로피 압축 목적으로 상기 수정된 드문 값 외에 하나 이상의 연속 값이 동일 스트림에서 발생할 수 있다.
이러한 공지된 RLE 방법(수학식 4 및 수학식 5)뿐만 아니라 수정된 RLE 방법(수학식 4' 및 수학식 5')은, 비록 출력 데이터(D2)에서 나타나는 심볼들의 총 수를 감소시키기는 하지만, 입력 데이터(D1)에서 나타난 것보다 인코딩된 출력 데이터(D2)에서 더 큰 엔트로피(즉, E2>E1)를 야기한다. 예컨대 허프만 코딩, 가변길이 코딩(VLC)과 같은 추가의 코딩을 적용하여 RLE 데이터를 압축하는 것이 공지되어 있지만, 이것은 차선적인 데이터 압축 결과를 야기한다. 이러한 차선적 수행은 포맷의 불일치 때문에 생성한다.
수학식 4와 수학식 5는 부분 A로 표시되는 문자와 상기 문자와 연관된 카운터, 즉 부분 B의 혼합물임을 이해할 것이고, 이러한 부분들은 수학식 1, 수학식 4 및 수학식 5'와 관련하여 표 2에 나타내었다.
본 발명에 따른 부분 A 및 B
수학식 1 WWW WWW
WWW WWW
B WW WWW
WWW WWW
W
BB B WW WWW WWW
WWW WWW WWW
WWW WWW W
B W WWW WWW
WWW WWW W
RLE 방법 1: 부분 B(수학식 4) 12 1 12 3 24 1 14
RLE 방법 1: 부분 A(수학식 4) W B W B W B W
RLE 방법 2: 부분 B(수학식 5) 10 10 1 22 12
RLE 방법 2: 부분 A(수학식 5) WW B WW BB WW B WW
인코더(10)가 본 발명에 따라 기능할 때, 출력 데이터(D2)는 수학식 4 및 수학식 5'에서와 같이 혼합 형태가 아니지만, 부분 A와 부분 B는 별도로, 즉 분리되어 표현되고, 그들의 상호 대응성은 예를 들면 하나 이상의 마커에 의해 규정되는 인코딩된 데이터(D2)의 구조에 의해 규정된다.
본 발명의 예시적인 실시형태에 따라서, 수학식 1에서, 입력 데이터(D1)는 25.66 비트의 엔트로피(E1)와 연관된다. 수학식 1의 문자 순서는 2개의 정착 부분(put part)으로 런렝쓰 인코딩된(RLE)다.
부분 A: 12 1 12 3 24 1 14
부분 B: W B W B W B W
여기에서 부분 A는 15.65 비트의 산출된 연관된 엔트로피(EA)를 갖고, 부분 B는 6.90 비트의 산출된 연관된 엔트로피(EB)를 갖는다. 이러한 부분들은 앞에서 수학식 4로부터 도출된다. 엔트로피(EA, EB)의 총 합은 22.55 비트이고, 이것은 입력 데이터(D1)에 관한 것보다 3.11 비트, 즉 12% 더 적고, 공지된 종래의 RLE에 의해 생성된 코드, 즉 36.55 비트보다 14.00 비트, 즉 38% 더 적다. 따라서, RLE에 의해 생성된 카운터와 문자 정보를 분할하고, 그 다음에 소정의 압축 방법, 예를 들면, VLC 코딩, 허프만 코딩, 골롬 코딩, 산술 코딩(레인지 코딩), 델타 코딩, 오델타 코딩, 렘펠집 코딩, BWT 코딩 등을 적용함으로써, 유리한 데이터 압축이 본 발명에 따라 달성될 수 있다. 선택적으로, 이러한 코딩은 인코더(10) 앞에서 적용되고; 선택적으로, 대응하는 디코딩이 디코더(50)에 또한 포함된다.
선택적으로, 인코더(10)에 있어서, 부분 B 및/또는 부분 A는 더 높은 값의 런렝쓰 심볼들이 데이터(D2)에 나타나는 것을 표시하기 위해 데이터(D2)에 최대 허용 가능한 런렝쓰 및 하나 이상의 연관된 이스케이프 코드 또는 하나 이상의 연관된 연속 값 심볼을 가진, 예컨대, 가변길이 코딩(VLC) 또는 레인지 코딩을 사용하여 인코딩된다. 유사하게, 디코더(50)는 수신된 데이터(D2)에 존재하는 하나 이상의 이러한 이스케이프 코드 또는 연속 값 심볼을 식별하도록 구현되고, 여기에서 상기 하나 이상의 이러한 이스케이프 코드 또는 하나 이상의 연속 값 심볼은 데이터(D2)를 디코딩할 때, 즉 부분 A 및/또는 부분 B를 생성할 때 디코더(50)에서 해석된다.
본 발명의 다른 예시적인 실시형태에 따르면, 수학식 1에서, 입력 데이터(D1)는 25.66 비트의 엔트로피(E1)와 연관된다. 수학식 1의 문자 순서는 2개의 정착 부분으로 런렝쓰 인코딩(RLE)된다.
부분 A: 10 10 1 22 12
부분 B: W W B W W B B W W B W W
여기에서 부분 A는 9.61 비트의 산출된 연관된 엔트로피(EA)를 갖고, 부분 B는 11.02 비트의 산출된 연관된 엔트로피(EB)를 갖는다. 이러한 부분들은 앞에서 수학식 5'로부터 도출된다. 엔트로피(EA, EB)의 총 합은 20.63 비트이고, 이것은 입력 데이터(D1)에 관한 것보다 5.03 비트, 즉 20% 더 적고, 공지된 종래의 RLE에 의해 생성된 코드, 즉 36.55 비트보다 14.86 비트, 즉 42% 더 적다. 따라서, RLE에 의해 생성된 카운터와 문자 정보를 분할하고, 그 다음에 소정의 압축 방법, 예를 들면, VLC 코딩, 허프만 코딩 등을 적용함으로써, 유리한 데이터 압축이 본 발명에 따라 달성될 수 있다. 유리하게, 본 발명의 실시형태는 인코더로부터 전송되고 디코더에서 수신된 인코딩된 데이터의 디코딩을 조력하기 위해 하나 이상의 코딩 테이블을 인코더로부터 대응하는 디코더로 전송하는 단계를 포함한다. 코딩 테이블을 전달하는 일부 매우 유리한 방법은 예를 들면 본 출원인이 출원한 특허 출원 GB GB1403039.9에 개시되어 있다. 엔트로피 코딩을 결합하고 코드 테이블을 전달하는 다른 방법은 본 출원인이 출원한 특허 출원 GB GB1403038.1에 개시되어 있다. 전술한 개시된 2개의 방법은 본 발명의 실시형태와 함께 사용하기에 적합하고, 엔트로피 코딩에 필요한 추가의 인코딩된 데이터를 최소화하는 데 도움을 준다. 전술한 코드 테이블 전달 방법은 SRLE에 의해 생성된 데이터가 나중에 엔트로피 코딩되는 모든 상황에서 적용할 수 있다는 점에 주목해야 한다.
전술한 예시적인 실시형태는 대응하는 RLE 데이터를 생성하기 위해 입력 데이터(D1)에 RLE 방법을 적용하고, 그 다음에 상기 RLE 데이터를 소정의 문자 부분, 즉 전술한 부분 B 및 대응하는 런렝쓰 카운트 부분, 즉 전술한 부분 A로 분할하는 것으로부터 도출된 장점을 명확히 나타내고, 여기에서 부분 A 및 B에 속하는 데이터는 상호 서로 분리되고, 그 다음에 상기 부분들에 인코딩을 별도로 적용하여 인코딩된 출력 데이터(D2)를 생성한다. 선택적으로, 인코딩된 출력 데이터(D2)의 어느 부분이 부분 A에 대응하고 인코딩된 출력 데이터(D2)의 어느 부분이 부분 B에 대응하는지를 표시하기 위해, 즉 대응하는 후속 디코딩 활동을 조력하기 위해 추가의 코드, 예를 들면 하나 이상의 마커가 포함된다. 이러한 데이터 인코딩 처리는 도 2에 도시된 방식으로 기능적으로 구현되는 도 1의 인코더(10)에서 유리하게 구현된다.
도 2에는 참조 번호 20으로 총괄적으로 표시된 코덱이 도시되어 있다. 코덱(20)은 본 발명에 따른 입력 데이터(D1) 인코딩 방법을 구현하여 대응하는 인코딩된 출력 데이터(D2)를 생성하도록 구성된 인코더(10)를 포함한다. 인코더(10)는 디지털 하드웨어에서, 예를 들면, 기계 판독가능 데이터 저장 매체에 기록된 하나 이상의 소프트웨어 제품을 실행하도록 동작 가능한 컴퓨팅 하드웨어로서 유리하게 구현된다. 인코더(10)는 하기와 같은 3가지 기능을 수행하도록 동작할 수 있다.
(a) 인코더(10)의 제1 단계(30A)는 문자들을 결정하거나 그 문자 표시를 생성하도록 입력 데이터(D1)를 처리하고 대응하는 런렝쓰 카운트를 생성하도록 동작할 수 있다.
(b) 인코더(10)의 제2 단계(30B)는 상기 문자들 및 상기 제1 단계(30A)에서 생성된 대응하는 런렝쓰 카운트들을 구조화 방식으로 2개의 부분, 즉 부분 B 및 부분 A로 각각 분할하도록 동작할 수 있다.
(c) 인코더(10)의 제3 단계(30C)는 상기 부분 A 및 부분 B의 데이터를 예를 들면 허프만 코딩 또는 가변길이 코딩(VLC)에 의해 인코딩하여 인코딩된 출력 데이터(D2)를 생성하도록 동작할 수 있다.
상기 출력 데이터(D2)는 선택적으로 데이터 캐리어(40), 예를 들면 광학 데이터 저장 디스크 메모리에 저장된다. 대안적으로, 출력 데이터(D2)는 데이터 통신 네트워크(45), 예를 들면 인터넷을 통해 코덱(20)의 디코더(50)에 전달된다. 디코더(50)는 디지털 하드웨어에서, 예를 들면, 기계 판독가능 데이터 저장 매체에 기록된 하나 이상의 소프트웨어 제품을 실행하도록 동작 가능한 컴퓨팅 하드웨어로서 유리하게 구현된다. 더욱이, 디코더(50)는 동작시에, 즉 디코더(50)가 하기와 같은 3가지 기능을 수행하도록 동작할 때 상기 인코더(10)에 의해 실행된 처리 동작의 역을 수행하도록 동작할 수 있다.
(i) 디코더(50)의 제1 단계(60A)는 인코딩된 데이터(D2)를 수신하고 상기 부분 A 및 부분 B의 데이터를 예를 들면 역 허프만 코딩 또는 역 가변길이 코딩(VLC)에 의해 디코딩하여 부분 A 및 부분 B를 재생성하도록 동작할 수 있다.
(ii) 디코더(50)의 제2 단계(60B)는 상기 제1 단계(60A)로부터의 재생성된 부분 A 및 부분 B를 결합하여 문자들 및 문자들의 대응하는 런렝쓰 카운트들을 혼합 데이터로서 생성하도록 동작할 수 있다.
(iii) 디코더(50)의 제3 단계(60C)는 상기 혼합 데이터에 역 런렝쓰 인코딩을 적용하여 그로부터 디코딩된 출력 데이터(D3)를 재생성하도록 동작할 수 있다.
선택적으로, 상기 인코더(10)와 디코더(50) 중의 적어도 하나는 소비자 전자 제품, 예를 들면, 단순히 몇 가지 실용적인 응용만을 언급하자면, 텔레비전, 스마트폰, 팩시밀리 기계, 태블릿 컴퓨터, 퍼스널 컴퓨터(PC), 비디오 리코더, 비디오 플레이어, 디지털 카메라, 화상 회의 시스템, 감시 장비, 휴대용 퍼스널 멀티미디어 플레이어에서 구현된다.
비록 인코딩된 데이터를 2개의 부분, 즉 부분 A와 부분 B로 분할하는 것을 본 발명과 관련하여 위에서 설명하였지만, 선택적으로 다차원 데이터의 경우에는 인코딩된 데이터를 3개 이상의 부분으로 분할하는 것도 가능하다는 것을 이해할 것이다. 더욱이, 비록 2개의 부분들, 즉 부분 A와 부분 B에 대응하는 디코딩된 데이터의 결합을 본 발명과 관련하여 위에서 설명하였지만, 선택적으로 다차원 데이터의 경우에는 3개 이상의 부분의 결합도 가능하다는 것을 이해할 것이다.
전술한 본 발명의 실시형태들은 첨부된 특허 청구범위에서 규정하는 본 발명의 범위로부터 벗어나지 않고 수정될 수 있다. 본 발명을 설명하고 청구하기 위해 사용되는 "포함하는", "구비하는", "통합하는", "이루어진", "가진", "...인" 등의 표현은 비 배타적 방식, 즉, 명시적으로 설명하지 않은 아이템, 컴포넌트 또는 요소들도 또한 존재할 수 있는 것으로 해석되어야 한다. 단수형으로의 인용은 복수형과 관련이 있는 것으로 또한 해석되어야 한다. 첨부된 특허 청구범위에서 괄호 안에 포함된 번호들은 특허 청구범위의 이해를 돕기 위한 것으로 의도되고, 어떻게든 특허 청구범위에 의해 청구되는 주제를 제한하는 것으로 해석되지 않아야 한다.

Claims (31)

  1. 입력 데이터(D1)를 인코딩하여 대응하는 인코딩된 출력 데이터(D2)를 생성하기 위한 인코더에 있어서,
    상기 인코더는, 상기 입력 데이터(D1)의 런렝쓰 인코딩된(run-length encoded; RLE) 표시(representation)를 생성하는 데이터 처리 장치를 포함하고,
    상기 인코더는 상기 런렝쓰 인코딩된(RLE) 표시를 복수의 부분들(A, B)로 분할(split)하도록 동작 가능하고, 적어도 하나의 부분은 원래 심볼들과 연관되고 적어도 다른 부분은 상기 원래 심볼들의 발생(occurrence)을 표시하는 카운터들과 연관되며, 상기 인코더는 상기 복수의 부분들(A, B)을 별도로 인코딩하여 상기 인코딩된 출력 데이터(D2)를 생성하도록 동작 가능한 것인, 인코더.
  2. 제1항에 있어서, 상기 원래 심볼들은, 문자들, 알파벳 요소들, 숫자들, 비트들, 바이트들, 단어들 중 적어도 하나를 포함한 것인, 인코더.
  3. 제2항에 있어서, 상기 인코더는 상기 인코딩된 출력 데이터(D2)를 상기 입력 데이터(D1)에 비해 압축된 형태로 생성하도록 동작 가능한 것인, 인코더.
  4. 제1항에 있어서, 상기 인코더는, 가변길이 코딩(variable length coding; VLC), 허프만 코딩, 골롬 코딩, 산술 코딩(레인지 코딩), 델타 코딩, 렘펠집 코딩, BWT 코딩 중 적어도 하나를 사용하여 상기 복수의 부분들(A, B)을 인코딩함으로써 상기 인코딩된 출력 데이터(D2)를 생성하도록 동작 가능한 것인, 인코더.
  5. 제1항에 있어서, 상기 인코더는 상기 복수의 부분들(A, B)을 인코딩하여 상기 인코딩된 출력 데이터(D2)를 생성하도록 동작 가능하고, 상기 복수의 부분들(A, B) 중 적어도 하나의 부분은 상기 인코딩된 출력 데이터(D2) 내에 최대 허용가능 런렝쓰(maximum allowable run length) 및 하나 이상의 연관된 이스케이프 코드들을 갖는 런렝쓰 인코딩을 이용하여 인코딩되는 것인, 인코더.
  6. 제1항에 있어서, 상기 인코더는, 상기 복수의 부분들(A, B) 각각에 대응하는 인코딩된 데이터의 생성을 표시하기 위해 상기 인코딩된 출력 데이터(D2) 내에 하나 이상의 마커들을 포함시키도록 동작 가능한 것인, 인코더.
  7. 제1항에 있어서, 상기 런렝쓰 인코딩된(RLE) 표시는 무손실 방식으로 구현되는 것인, 인코더.
  8. 대응하는 인코딩된 데이터(D2)를 생성하도록 입력 데이터(D1)를 인코딩하기 위해 제1항에 기재된 인코더를 포함하는 코덱.
  9. 대응하는 인코딩된 출력 데이터(D2)를 생성하기 위해 인코더에서 입력 데이터(D1)를 인코딩하는 방법에 있어서,
    상기 방법은, 상기 입력 데이터(D1)의 런렝쓰 인코딩된(RLE) 표시를 생성하기 위하여 데이터 처리 장치를 사용하는 단계를 포함하고,
    상기 방법은,
    (a) 상기 런렝쓰 인코딩된(RLE) 표시를 복수의 부분들(A, B) - 적어도 하나의 부분은 원래 심볼들과 연관되고 적어도 다른 부분은 상기 원래 심볼들의 발생을 표시하는 카운터들과 연관됨 - 로 분할하기 위하여 상기 인코더를 사용하는 단계; 및
    (b) 상기 복수의 부분들(A, B)을 별도로 인코딩하여 인코딩된 출력 데이터(D2)를 생성하기 위하여 상기 인코더를 사용하는 단계
    를 더 포함한 것인, 입력 데이터를 인코딩하는 방법.
  10. 제9항에 기재된 방법을 실행시키기 위한, 컴퓨팅 하드웨어 상에서 실행가능한 컴퓨터 프로그램을 저장한 컴퓨터 판독가능한 데이터 저장 매체.
  11. 인코딩된 입력 데이터(D2)를 디코딩하여 대응하는 디코딩된 출력 데이터(D3)를 생성하는 디코더에 있어서,
    상기 디코더는, 복수의 분리된 부분들(A, B) - 적어도 하나의 부분은 원래 심볼들과 연관되고, 적어도 다른 부분은 상기 원래 심볼들의 발생을 표시하는 카운터들과 연관됨 - 각각을 디코딩하고, 상기 디코딩된 출력 데이터(D3)를 생성하기 위해 런렝쓰 디코딩 처리를 통해 디코딩하기 위해, 결합된 데이터를 생성하도록 상기 복수의 부분들(A, B)을 함께 결합하기 위한 데이터 처리 장치를 포함하는, 디코더.
  12. 제11항에 있어서, 상기 원래 심볼들은, 문자들, 알파벳 요소들, 숫자들, 비트들, 바이트들, 단어들 중 적어도 하나를 포함한 것인, 디코더.
  13. 제11항에 있어서, 상기 디코더는, 상기 디코딩된 출력 데이터(D3)를 상기 인코딩된 입력 데이터(D2)에 비해 압축해제된 형태로 생성하도록 동작 가능한 것인, 디코더.
  14. 제11항에 있어서, 상기 디코더는, 역 가변길이 코딩(variable length coding; VLC), 역 허프만 코딩, 역 골롬 코딩, 역 산술 코딩(역 레인지 코딩), 역 델타 코딩, 역 렘펠집 코딩, 역 BWT 코딩 중 적어도 하나를 사용하여 상기 인코딩된 입력 데이터(D2)를 디코딩함으로써 상기 복수의 부분들(A, B)을 생성하도록 동작 가능한 것인, 디코더.
  15. 제11항에 있어서, 상기 디코더는 상기 인코딩된 입력 데이터(D2)를 디코딩하여 상기 복수의 부분들(A, B)를 생성하도록 동작 가능하고, 상기 복수의 부분들(A, B) 중 적어도 하나의 부분은 상기 인코딩된 입력 데이터(D2) 내에 최대 허용가능 런렝쓰 및 하나 이상의 연관된 이스케이프 코드들을 갖는 런렝쓰 인코딩을 이용하여 디코딩되는 것인, 디코더.
  16. 제11항에 있어서, 상기 디코더는, 상기 복수의 부분(A, B) 각각에 대응하는 인코딩된 데이터의 생성을 결정하기 위해 상기 인코딩된 입력 데이터(D2) 내의 하나 이상의 마커들을 식별하도록 동작 가능한 것인, 디코더.
  17. 제11항에 있어서, 상기 런렝쓰 디코딩 처리는 무손실 방식으로 구현되는 것인 디코더.
  18. 제11항에 기재된 디코더(50)를 포함하는 코덱(20)에 있어서,
    상기 디코더(50)는 대응하는 디코딩된 출력 데이터(D3)를 생성하도록 상기 인코딩된 출력 데이터(D2)를 디코딩하기 위한 것인, 코덱.
  19. 대응하는 디코딩된 출력 데이터(D3)를 생성하기 위해 인코딩된 입력 데이터(D2)를 디코더에서 상기 디코더 내에 포함된 데이터 처리 장치를 사용하여 디코딩하는 방법에 있어서,
    상기 방법은,
    (a) 상기 인코딩된 입력 데이터(D2)를 복수의 분리된 부분들(A, B) - 적어도 하나의 부분은 원래 심볼들과 연관되고 적어도 다른 부분은 상기 원래 심볼들의 발생을 표시하는 카운터들과 연관됨 - 로 디코딩하기 위하여 상기 디코더를 사용하는 단계;
    (b) 상기 복수의 부분들(A, B)을 결합하여 대응하는 결합된 데이터를 생성하기 위하여 상기 디코더를 사용하는 단계; 및
    (c) 상기 결합된 데이터에 런렝쓰 디코딩 처리를 적용함으로써 디코딩된 출력 데이터(D3)를 생성하기 위하여 런렝쓰 디코딩 처리를 사용하는 단계
    를 더 포함한, 인코딩된 입력 데이터(D2)를 디코딩하는 방법.
  20. 제19항에 기재된 방법을 실행시키기 위한, 컴퓨팅 하드웨어 상에서 실행가능한 컴퓨터 프로그램을 저장한 컴퓨터 판독가능한 데이터 저장 매체.
  21. 삭제
  22. 삭제
  23. 삭제
  24. 삭제
  25. 삭제
  26. 삭제
  27. 삭제
  28. 삭제
  29. 삭제
  30. 삭제
  31. 삭제
KR1020157023702A 2013-03-01 2014-03-01 데이터 인코더, 데이터 디코더 및 방법 KR101610609B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
GB1303660.3A GB2507603B (en) 2013-03-01 2013-03-01 Data encoder, data decoder and method
GB1303660.3 2013-03-01
PCT/EP2014/000530 WO2014131527A1 (en) 2013-03-01 2014-03-01 Data encoder, data decoder and method

Publications (2)

Publication Number Publication Date
KR20150105486A KR20150105486A (ko) 2015-09-16
KR101610609B1 true KR101610609B1 (ko) 2016-04-07

Family

ID=48142237

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020157023702A KR101610609B1 (ko) 2013-03-01 2014-03-01 데이터 인코더, 데이터 디코더 및 방법

Country Status (7)

Country Link
US (1) US8823560B1 (ko)
EP (1) EP2962399A1 (ko)
JP (1) JP6431487B2 (ko)
KR (1) KR101610609B1 (ko)
CN (1) CN105191145B (ko)
GB (1) GB2507603B (ko)
WO (1) WO2014131527A1 (ko)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2527588B (en) 2014-06-27 2016-05-18 Gurulogic Microsystems Oy Encoder and decoder
GB2539239B (en) 2015-06-10 2017-10-04 Gurulogic Microsystems Oy Encoders, decoders and methods utilizing mode symbols
KR102379182B1 (ko) * 2015-11-20 2022-03-24 삼성전자주식회사 연속 데이터 압축 장치 및 방법
CN106559084B (zh) * 2016-11-15 2019-07-30 浙江工业大学 一种基于算术编码的无损数据压缩编码方法
CN106790550B (zh) * 2016-12-23 2019-11-08 华中科技大学 一种适用于配电网监测数据压缩的系统
US10593257B2 (en) * 2018-03-15 2020-03-17 Samsung Display Co., Ltd. Stress profile compression
CN110417811B (zh) * 2019-08-22 2021-08-10 上海兆芯集成电路有限公司 比特流编码压缩的方法及装置
US11115049B1 (en) * 2020-08-24 2021-09-07 Innogrit Technologies Co., Ltd. Hardware friendly data decompression
CN116738471B (zh) * 2023-08-10 2023-10-20 陕西昕晟链云信息科技有限公司 基于区块链的去中心化数据分析方法
CN117411947B (zh) * 2023-12-15 2024-02-23 安徽中科大国祯信息科技有限责任公司 基于云边协同的水务数据快速传输方法

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0722342B2 (ja) * 1982-08-12 1995-03-08 三菱電機株式会社 色彩画像符号化方法
JPS61136378A (ja) * 1984-12-07 1986-06-24 Canon Inc 符号化方式
JPS61136379A (ja) * 1984-12-07 1986-06-24 Canon Inc 符号化方式
US5233348A (en) * 1992-03-26 1993-08-03 General Instrument Corporation Variable length code word decoder for use in digital communication systems
JP2000156643A (ja) * 1998-11-19 2000-06-06 Matsushita Electric Ind Co Ltd 可変長符号の復号化方法および可変長符号の復号化プログラムを記録した記録媒体
US6781528B1 (en) * 2002-10-24 2004-08-24 Apple Computer, Inc. Vector handling capable processor and run length encoding
JP3870171B2 (ja) 2003-03-11 2007-01-17 キヤノン株式会社 符号化方法及び符号化装置、コンピュータプログラム並びにコンピュータ可読記憶媒体
JP2007311024A (ja) * 2007-07-30 2007-11-29 Toshiba Corp 情報記憶媒体、情報記録方法及び情報再生方法
CN101202548A (zh) * 2007-12-28 2008-06-18 北京邮电大学 一种双游程数据编码方法
CN101299611B (zh) * 2008-06-30 2011-10-05 中国电子科技集团公司第二十八研究所 一种基于集合游程的数据压缩方法
US8108361B2 (en) * 2008-07-31 2012-01-31 Microsoft Corporation Efficient column based data encoding for large-scale data storage
GB2481870B (en) 2010-12-14 2012-06-13 Realvnc Ltd Method and system for remote computing
CN102724505B (zh) * 2012-06-06 2015-01-28 西安电子科技大学 Jpeg_ls游程编码fpga实现方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
'Modified runlength coding for improved JPEG performance', ICICT 2007

Also Published As

Publication number Publication date
EP2962399A1 (en) 2016-01-06
CN105191145A (zh) 2015-12-23
KR20150105486A (ko) 2015-09-16
CN105191145B (zh) 2018-09-25
GB2507603A (en) 2014-05-07
JP2016512004A (ja) 2016-04-21
GB201303660D0 (en) 2013-04-17
GB2507603B (en) 2014-10-01
JP6431487B2 (ja) 2018-11-28
US8823560B1 (en) 2014-09-02
WO2014131527A1 (en) 2014-09-04

Similar Documents

Publication Publication Date Title
KR101610609B1 (ko) 데이터 인코더, 데이터 디코더 및 방법
KR101737294B1 (ko) 심볼 압축을 수반하는 데이터의 소스 코딩 및 디코딩을 위한 방법들 및 디바이스들
US8520958B2 (en) Parallelization of variable length decoding
JP2016512004A5 (ko)
EP3108583B1 (en) Devices and methods of source-encoding and decoding of data
US8933826B2 (en) Encoder apparatus, decoder apparatus and method
EP2962398A1 (en) Encoder, decoder and method
KR102393743B1 (ko) 모드 심볼들을 사용하는 인코더, 디코더 및 방법
EP2962396A1 (en) Entropy modifier and method
KR20120012790A (ko) 입력 비트 시퀀스를 인코딩하는 방법과 디바이스 및 대응하는 디코딩 방법 및 디바이스
US8754791B1 (en) Entropy modifier and method
Raja et al. A new variable-length integer code for integer representation and its application to text compression
KR101760070B1 (ko) 데이터 부호화 및 복호화 방법과 장치
JP6821184B2 (ja) 画像復号化装置
WO2016202469A1 (en) Encoder, decoder and method employing palette compression
KR101603866B1 (ko) 데이터 압축 및 데이터 복원 방법과 장치
Das et al. Design an Algorithm for Data Compression using Pentaoctagesimal SNS
KR20210012580A (ko) 이진데이터의 압축 방법 및 장치
Usibe et al. Noise Reduction in Data Communication Using Compression Technique
Srinivas et al. A modified approach to the new lossless data Compression method
Rajendra 16 BIT UNICODE TEXT COMPRESSION

Legal Events

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