KR100201918B1 - 색채화상의 압축과 그것을 위한 엠개 알파벳의 비트와이즈 코딩을 위한 이진화 장치 및 방법 - Google Patents

색채화상의 압축과 그것을 위한 엠개 알파벳의 비트와이즈 코딩을 위한 이진화 장치 및 방법 Download PDF

Info

Publication number
KR100201918B1
KR100201918B1 KR1019950003580A KR19950003580A KR100201918B1 KR 100201918 B1 KR100201918 B1 KR 100201918B1 KR 1019950003580 A KR1019950003580 A KR 1019950003580A KR 19950003580 A KR19950003580 A KR 19950003580A KR 100201918 B1 KR100201918 B1 KR 100201918B1
Authority
KR
South Korea
Prior art keywords
context
input
bit
symbol
symbols
Prior art date
Application number
KR1019950003580A
Other languages
English (en)
Other versions
KR950026293A (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 KR950026293A publication Critical patent/KR950026293A/ko
Application granted granted Critical
Publication of KR100201918B1 publication Critical patent/KR100201918B1/ko

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N11/00Colour television systems
    • H04N11/04Colour television systems using pulse code modulation
    • H04N11/042Codec means
    • 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
    • H03M7/4006Conversion to or from arithmetic 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
    • H03M7/42Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code using table look-up for the coding or decoding process, e.g. using read-only memory
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/46Colour picture communication systems
    • H04N1/64Systems for the transmission or the storage of the colour picture signal; Details therefor, e.g. coding or decoding means therefor
    • H04N1/644Systems for the transmission or the storage of the colour picture signal; Details therefor, e.g. coding or decoding means therefor using a reduced set of representative colours, e.g. each representing a particular range in a colour space
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N11/00Colour television systems
    • H04N11/04Colour television systems using pulse code modulation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/436Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation using parallelised computational arrangements

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

본 발명은 색채 화상들의 압축을 위한 개선된 방법과 장치를 제공하며 M개 알파벳에서의 입력 기호들은 입력데이터의 컨텍스트 모델을 근간으로 이진화 되는데 상기 이진화는 이진 부호화기에 의해 양호한 압축 성능을 얻기 위해 선택되고 특정 이진화는 각 입력 기호를 다수의 이진값들로 대응시키는 재색인표로 부터 결정되며 상기 대응과정은 압축될 화상으로 부터 결정되며 오버헤드로서 압축된 화상들과 같이 전송되고 이진화의 국부적으로 최소이 비트와이즈 엔트로피이며, 입력을 재색인하거나 하지않고 해독될 비트의 컨텍스트에 필요한 비트들이 해독될 비트를 디컴프레서가 해독하기 전에 유용하기 위해 필요한대로 재배열되고 임시 저장되는 입려기호들의 비트들로서 기호들은 병렬로 압축되어 변환될수 있으며, 디 컴프레서는 디컴프레서의 출력이 컴프레서의 입력과 같게 하기위해 역으로 재배열을 수행하는 장치를 구비한다.

Description

색채화상의 압축과 그것을 위한 엠(M)개 알파벳의 비트와이즈 코딩을 위한 이진화 장치 및 방법
제1도는 컴프레서와 디컴프레서를 구비한 데이터 압축 시스템의 블록도.
제2도는 제1도에 도시된 컴프레서의 블록도.
제3도는 제1도에 도시된 디컴프레서의 블록도.
제4도는 컨텍스트 빈 확률표를 저장하는 기억장치의 상세도.
제5도는 재색인표에 따라 M-의 기호들을 재색인하기 위한 리인덱서를 구비하는 데이터 압축시스템의 블록도.
제6도는 압축될 데이터 블록의 내용에 근거한 재식인표를 발생시키는 색인 최적화기의 블록도.
제7도는 적당한 재색인표를 결정하기 위해 색인최적화기에 의해 수행되는 과정의 순서도.
제8도는 제2도와 제3도의 컨텍스트 모델러에 의해 수행되는 컨텍스트 모델들의 예시도.
제9도는 병렬압축시스템의 블록도.
제10도는 단일채널을 사용하는 병렬 압축시스템의 블록도.
제11도는 재배열 버퍼의 블록도.
제12도는 컨텍스트 상태를 표시하는 레코드 예시도.
제13도(a) 및 (b)는 일시에 일입력기호들 이상을 처리하는 일파이프라인 코더의 시간도이다.
본 발명은 화상압축분야에 관한 것으로 특히, 하나의 엔트로피 부호화기(entropy encoder) 또는 병렬 엔트로피 부호화기를 사용하는 색채화상(palettized images)의 압축에 관한 것이다.
[저작권 공고]
본 특허 문서의 공개부분은 저작권 보호를 받는 내용을 포함하고 있다. 본 특허 저작권자는 특허청의 특허화일(file) 또는 기록들의 형태로 특허공개 또는 특허문서에 대해 누구든지 사용하는데에는 반대 의사가 없지만 모든 저작권은 보유한다.
[관련 출원에 대한 사항]
본 출원의 양수인에게 양도된 '데이터의 병렬 해독화와 부호화 하기 위한 장치의 방법'이라 명칭된 미국특허(미국특허 출원 일련번호 08/016,035로 1993년 2월 10일 출원됨)는 관련출원으로 여기에 병합되고 이후에 'ABS 코더(coder)'로서 언급된다.
화상압축은 일반적으로 디지탈(digital) 화상에 대해 적용된다. 한 화상을 디지탈화하기 위해, 화상은 화소(pixel)라고 불리우는 상기 화상의 여러점에서 분리 표본화된다. 각 화소들은 상기 화상내에 위치하며 하나의 화소 색상(pixel coder)을 갖는다. 일실시예로, 하나의 화상은 1024× 768 화소들의 이차원 배열로 표현되며, 각 화소는 24 비트값으로 표현된다. 각 화소값들은 다른색상을 표현할 수 있어서 224즉 16,777,216개의 색상들을 사용하여 화상을 표현할 수 있다.
대부분의 응용기술에서, 각 화소값은 화상이 디지탈화되는 순간에 상기 화상에 있는 일 특정색상과 관련된다. 이러한 배열 때문에 일 화소의 색상은 그 화소의 값에 의해 결정될 수 있다. 다른 응용기술에서는 디지탈 화상은 색채화상(palettized image)이다. 색채화상에서 각 화소의 값은 일 색상에 고정되지 않지만 조색(調色)표(color palette table)에 대한 일지정 포인터(pointer)로서 사용된다. 색채화상이 표시될 때에 화소의 화소값을 각 화소의 값과 그 화소값에 할당된 색상사이의 관계를 정해놓은 조색표에 대한 색인(index)으로서 사용하는 것에 의해 화소의 색상이 지정된다.
조색화(調色化)는 모든 가능한 색상의 집합으로 부터 소수의 색상들을 선택하는 과정, 즉 16,777,216(224)개 색상으로부터 256(28)개 색상을 선택하는 과정이고 상기 선택된 색상으로부터 일 색상으로 임의의 색상을 표현하는 방법이다. 상기의 조색화의 결과로서, 색채화상은 화상에서 각 화소의 8비트 색인이 붙은 선택된 색상의 24비트 색상 값을 즉, 256개 색인들 각각에 대해 나열한 코드북(code book)으로서 효율적으로 저장될 수 있다. 그러므로 선택된 색상들을 한번만 전부 표현하고 코드북(cood book)의 색인으로 각 화소를 나타내므로써 저장 공간의 절약이 이루어진다.
화상압축은 화상을 표시하기 위해 필요한 데이터(data)의 양때문에 많은 화상처리기술에서 중요하다. 상기한 예에서 24 × 1024 × 768 또는 18,874,368 비트(bit)(2,359,296 바이트(byte)는 단일의 비압축 화상을 표시하는데 필요하며, 8 × 1024 × 768 (6,291,456비트)은 색채화상의 경우에 필요하다. 압축은 초당 30화면이 반복되는 고속화면주파수(frame rate)의 연속 화상열(stream of images)이 필요한 동화상(motion video)에는 더욱 필수적이다. 압축은 화상저장 메모리를 절약시킬 뿐만 아니라, 제한된 대역폭 채널(channel)을 통해 효율적인 화상 전송을 하게 한다. 물론, 화상전송기술에서 화면주파수(frame rate)에 맞게 표시될 수 있을 정도로 화상이 빠르게 복원(decompress)되어야만 한다. 압축은 미리 수행될 수 있지만 복원(decompression) 과정은 실시간으로 처리되어야 한다. 압축과정이 미리 진행된 실시예에서 디컴프레서(decompressor)로의 입력은 기억장치에 저장될 수 있고 압축후 어느 시간에도 복원될 수 있는 압축된 데이터군이다.
압축과정이 이루어지는 정도를 표시하는 척도는 압축율(compression ratio)이다. 압축율은 압축된 데이터의 크기에 대한 원래 데이터 크기의 비율이다. 압축과정의 성능을 나타내는 다른 척도는 얼마나 빨리 데이터를 압축하고 복원할 수 있는가이다. 대부분의 기술에서, 압축속도는 압축과정이 실시간으로 수행될 필요가 없으므로 복원과정만큼 중요하지 않다.
종종, 압축율은 데이터의 특성에 대해 많이 알수록 개선된다. 정상디지탈 화상들은 일반적으로 파형의 양자화(quantization)의 결과이므로, 이러한 디지탈 화상들은 화소색상 값들의 상대적인 연속성의 존재와 같은 원래 신호특성의 대부분을 보유한다. 색채화상에서 상기 연속성은 대개 존재하지 않으며 압축율을 개선시키는데 직접 사용될 수 없다.
색채화상에서, 두 개 화소값 사이의 색상차이는 반드시 화소값들로 표현될 필요는 없는데 그 이유는 화소값들은 화소색상들을 나타내지 않기 때문이다. 상기 화소값들은 색상값들의 코드 테이블(code table) 또는 조색표(color palette table)에 대한 색인들을 나타낸다. 색채화상을 압축하는 문제는 각 입력기호 M개의 알파벳(alphabet)에서의 기호인 입력 기호열을 압축하는 문제로서 일반화될 수 있다.
ICASSP-93의 5권 325-328페이지(page)에 실린 Y. Chin등의 '색채화상의 손실압축'은 색채화상의 손실이 있는 압축의 일실시예를 기술한다. 손실 압축은 일반적으로 보다 나은 압축율을 가지지만, 많은 기술들은 손실압축과정에서 발생되는 왜곡현상을 수용하지 못하므로 무손실 압축과정을 필요로 한다. 무손실 압축과정에서, 신호는 압축된 신호로부터 정확히 원래 신호를 재생하도록 복원가능한 압축신호로 압축된다. 그러므로 왜곡현상은 일어나지 않는다.
[발명의 요약]
본 발명에 의해 제공되는 색채화상의 개선된 압축과정은 화상들이 효율적으로 압축되며 빠른 속도의 복원이 가능하게 된다.
본 발명의 일실시예에서 입력 기호들은 M개의 알파벳의 기호들이고 입력데이터의 컨텍스트 모델(context model)을 바탕으로 이진화된다. 상기 이진화 과정은 이진화 코더(binary coder)에 의해 효율적인 압축을 하기 위해 선택된다. 부호화기(encoder)는 입력기호들을 부호어(codeword)들로 변환시키고, 반면에 해독기(Decoder)는 부호어들을 입력기호로 변환한다. 특정 이진화 과정은 각 입력기호를 다수의 이진 값들로 대응(map)시키는 재색인표(reindexing table)에 의해 결정된다. 상기 대응(mapping)는 압축될 화상으로부터 결정되며, 오버헤드(overhead)로서 압축된 화상과 함께 전송된다.
재색인표(reindexing table)의 대응을 생성하는 한 방법은 한번에 하나의 입력기호에 하나의 색인(index)을 할당하는 것이다. 하나의 입력 기호에 할당된 색인(index)은 그 입력기호들과 색인들이 이미 할당된 상기 색인의 비트(bits)함수이고 입력기호들의 분포함수이며 입력기호들의 컨텍스트(contexts)함수이다. 어느 특정 입력기호에 대해서, 할당되지 않은 잔여 색인(indices)들로부터 하나의 색인이 할당되고, 상기 할당된 일색인은 국부적인 최소의 비트와이즈(bitwise)엔트로피(entropy)를 제공하며, 이 방법은 일련의 기호 분포들과 컨텍스트들에 대해 전구간의 최소 비트와이즈 엔트로피(bitwise entropy)를 제공하지는 않지만, 실현 가능한 계산량에 대해 국소의 최소 비트와이즈 엔트로피를 제공한다.
재색인(reindex)된 입력데이터는 컨텍스트 모델러(context modeler), 확률 추정모듈(probability estimation modole), 비트 발생기(bit generator)를 통해 압축된 데이터로 출력되며, 그 역 과정은 데이터를 복원(de compress)하기 위한 과정이다. 재색인표는 컴프레서(compressor)로부터 디컴프레서(decompressor)로 보내질 수 있고 재색인표는 고정되어 있을 필요는 없다.
본 발명의 관점에서, 소량의 기억장치를 사용하는 컨텍스트 모델(context model)들은 컨텍스트 모델러(modeler)에 의해 제공되는 색채화상(palettized image)에 대해 양질이 압축을 제공한다.
본 발명의 또 다른 관점에서, 압축(compression) 및 복원(decompression)과정은 병렬로 수행되고, 컴프레서(compressor)에 대한 입력은 컨텍스트(context)와 비트의 부호(encoding)화를 결정하는 비트들과 부호화되는 비트 사이에 공간을 두기 위해 임시 저장되고 재배열된다. 비트와 상기 비트의 컨텍스트 비트들 사이의 공안은 디컴프레서가 컨텍스트 비트들에 따라 해독되는 비트를 입력받을 때에 컨텍스트 비트들이 완전히 해독될 정도로 충분하게 시간이 지연되게 간격을 가지고 배열된다.
디컴프레서는 출력이 컴프레서의 입력과 같도록 역으로 재배열하는 수단을 구비한다. 실시예들에서, 다수의 병렬 디컴프레서들에서 채널(channel)들을 분리하는데 필요한 오버 헤드(over head)시간마다 단일통신채널을 통해 병렬 컴프레서들의 출력은 이동된다.
특정 실시예들에서, 입력기호들은 256기호들의 알파벳으로부터 선택되고, 재색인 과정은 프로그램(Program)된 디지탈 컴퓨터(digital computer)에 의해 수행되며, 압축과정은 비실시간으로 처리되고, 복원과정은 실시간으로 처리된다. 256입력 기호들로 인하여 재색인표는 256바이트(byte)를 사용한다. 특정 실시예에서 재색인표는 일련의 화상들 또는 부분 화상들에 대해 입력기호들의 확률 분포에 종속되며, 새로운 재색인표는 각 화상들 또는 부분 화상들의 집합에 대해서 컴프레서로부터 디컴프레서로 전송된다.
본 발명에 따른 색체화상의 압축과정을 다음과 같이 여러 부분들로 나누어 설명한다.
첫번째 부분은 엔트로피코딩(entropy coding)에 관한 것이다. 두번째 부분에는 엔트로피코딩을 사용할 적에 압축성능을 개선시키기 위한 재색인(reindexing)의 사용을 설명한다. 세번째 부분에는 기호확률들을 정확하게 추정함으로써 컨텍스트 모델링(context modelling)이 엔트로피코딩 성능을 개선시키는 것을 설명한다. 컨텍스트 모델링은 재색인 과정을 수반하거나 수반하지 않은 채 수행될 수 있다. 네번째 부분에는 병렬 컴프레서들과 디컴프레서들이 데이터율(data rates)을 개선시키는 과정을 설명한다. 마지막으로, 다섯번째 부분에는 버퍼링(brffering)이 병렬수행을 용이하게 하고 병렬로 데이터를 복원하기 위한 연결성을 유지하게 하는 과정을 설명한다.
[엔트로피코딩(entropy coding)]
엔트로피 코더들(entropy coders)은 데이터 압축기술분야에 알려져 있다. 입력기호들을 출력부호어(codewords)들로 부호화하는 엔트로피코더는 무손실(loss less)과정이다. 즉, 원래 입력기호들은 출력부호어들만으로 해독될 수 있다. 엔트로피 코더는 입력기호들의 엔트로피에 의해 기술되는 이론적인 상한선에 근접하는 압축율(compression ratio)을 달성하기 위해 시도하기 때문에 상기한 바와 같이 명명(命名)된다. 엔코더와 디코더는 일반적으로 디코더가 엔코더의 역으로 되도록 설계된다. '코더'의 용어는 엔코더 또는 디코더 또는 상기 두장치를 언급하는데에 사용된다.
엔트로피 코더의 상세한 설명은 하지 않고 본 발명에 필요한 정도만 설명한다. 엔트로피 코더에서, 입력기호들은 입력으로부터 읽혀지고 하나 이상의 입력기호들은 부호어의 출력에 영향을 준다. 특정 입력 기호(들)와 출력부호어 조합은 코드(code)에 의해 기술된다. 최적화된 시스템(optimized system)에서, 코드는 입력기호들의 확률분포를 바탕으로 선택된다. 일적응 엔트로피 엔코더에서, 코드는 확률분포에 따라 변할 수 있다. 만약 확률 분포가 추정이 잘되거나 정확히 알려진다면, 그리고 상기 확률분포에 대해 최적화된 코드들이 사용된다면, 압축성능은 좋을 것이다.
만약 입력기호들이 비트들(예: 기호는 0 또는 1)이면, 엔코더는 이진 엔트로피 엔코더(binary entropy encoder)이다. 엔트로피 엔코더들은 하드웨어(hardware)가 간단해야만 하는 분야에서는 다른 엔트로피 엔코더들보다 더 선호된다. ABS 코더(ABS coder)는 이진 엔트로피코더이다. 이진 엔트로피 엔코더에서, 입력기호들은 비트 발생기에 제공되고, 비트 발생기는 하나 이상의 비트들을 한 입력으로 받아들이고 상기 입력된 비트들에 대해 하나의 부호어를 출력한다. 만약 비트 발생기가 입력열(input stream)에서 '0'과 '1'들의 확률분포에 대한 지정값을 제공받는다면, 상기 정보를 올바른 코드를 선택하는데 사용할 수 있다. 즉, 비트 발생기는 확률추정 모듈에 의한 결정값에 따라 사용할 코드를 정할 수 있다. 비트발생기가 출력부호어들이 입력기호들의 실제 확률분포에 대하여 평균적으로 너무 길거나 짧은지를 결정하는 바에 따라 코드(code)들은 변할 수 있다. 보다 상세한 설명은 ABS 코더를 참조한다.
'0' 과 '1'들의 확률분포를 추정하는 것은 중요하다. 만약 이진 엔트로피 엔코더가 사용된다면, M이 2보다 큰 M-의 알파벳으로부터의 기호인, 압축될 화상의 화소값은 우선적으로 이진화될 필요가 있다. 선택된 특정 이진화는 이진 엔트로피 엔코더에 비트 열입력의 엔트로피에 영향을 주므로, 엔트로피는 비트 발생기가 입력비트열을 압축시킬 수 있는 성능에 한계치를 준다. 상기 구분이 명확하지 않은 경우, '화소 입력기호' 또는 '화소기호'는 이진화되기전에 압축될 데이터의 요소에 대해 참조하기 위해 사용되는데, 상기 기호는 컴프레서에 대한 일 입력이고 '이진 입력기호'는 이진 엔트로피 엔코더의 비트 발생기에 대한 입력인 일입력기호를 참조하기 위해 사용된다.
비색채화상 데이터(non-palettized image data)에서는, 화소기호들은 화소값에 내포된 색상 정보에 따라 이진화될 수 있다. 예를 들어, 화소값을 256값들중 하나로 취하면, 상기 취한 값은 화소의 색상을 표시한다.
이 경우에, 유사한 색상들이 유사한 8비트 값들로 표현된다면, '00001100'과 '00001101'이 '00001100'과 '11111111'보다 색상에서 보다 유사하다고 가정할 수 있다.
본 실시예들에서, M은 256이고 M-ary 알파벳에서의 기호들은 k=8인 k비트 이진화에 의해 표현된다. 이때, M과 k에 대해 M은 2의 짝수멱(even power)이 아니고 k는 log2 M이상인 경우도 가능하다.
일례로, 전형적인 화상에서 인접화소들은 대개 유사한 색상이므로, 각 화소를 표현하는데 필요한 비트들의 수는 그 화소와 근접 화소 사이의 화소색상값의 차이에 의해 각 화소를 표현함으로써 감소될 수 있다. 수치를 표시하는데 필요한 비트들의 수는 일련의 수치들의 엔트로피에 관련이 있으므로 상기 데이터의 전처리과정은 일반적으로 양호한 압축성능을 초래할 것이다. 그러나, 색채화상에서 화소들의 경우에, 두가지 색들 사이의 특정 관계는 8비트로 표현되는 비트들 사이의 상호관계(correlation)에 의해 암시되지는 않는다. 일례로, 색채화상에서, '00001100'과 '00001101'은 매우 다른 색상들이고 '00001100'과 '11111111'은 거의 동일한 색상들일 수 있다. 상기 내용은 모두 조색(palette)에 의존한다.
그러므로, 색채화상들의 압축은 비트열의 확률분포를 정확하게 추정하므로써 그리고 비트발생기에 낮은 엔트로피의 비트열을 제공하는 입력 화소기호들의 이진화를 선택하므로서 개선될 수 있다. 상기한 문제점에 대한 해결방안은 다음의 '컨텍스트 모델링(context modelling)'이라 명명된 부분에서 설명되고 그 이외의 다른 문제점에 대한 해결방안은 다음의 '재색인(reindexing)'이라 명명된 부분에서 설명된다.
[복원(decompression)]
출력부호어들로부터 입력기호들을 해독하기 위해, 디컴프레서(decompressor)는 엔코더가 적응엔코더이고 고정된 코드를 사용하지 않는다면, 어느 코드가 어느 부호어들에 대해 사용되는지를 알 필요가 있다. 코드를 표시하는 데이터를 전송하는데 있어서의 오버헤드(overhead)는 압축과정의 유용성을 경감시키므로, 디컴프레서는 부호어들로부터 사용되는 코드들의 지정치를 추출할 수 있어야만 한다.
이러한 것은 주어진 이진 입력기호에 대해 사용되는 코드가 부호어들로 부호화된 비트들에 의존하는 확률추정치에 의해 결정되면 가능하다. 상기한 바가 사실이면 입력기호들이 해독되는대로 입력기호에 대한 정보를 지정하고 귀환루프(feedback loop)를 사용하는 디컴프레서는 해독된 데이터로부터 어느 코드가 사용되는지를 결정할 수 있다.
[컨텍스트 모델링(context modelling)]
확률추정이 보다 정확할 수록, 코드들은 데이터에 대해 보다 더 최적화된다. 확률추정치를 정확히 정하는 한가지 방법은 다수의 컨텍스트에 대해 확률추정치를 유지하는 것이다. 본 발명에서, 입력화소의 컨텍스트는 입력 화소에 대해 정의된 관계에서의 화소 또는 화소들이다. 일례로, 일컨텍스트 모델에서, 입력화소의 컨텍스트는 상기 입력화소의 상위 화소에 의해 결정된다. 비트 발생기의 비트열 입력에서 일비트의 컨텍스트를 결정할 때에, 상기 컨텍스트는 입력비트에 대해 정의된 관계에서 비트들과 (또는) 화소들에 의해 제공된다. 상기 관계는 컨텍스트 모델에 의해 결정된다.
제8도는 5개의 컨텍스트 모델 예시도이다. 각 모델에서, 포인터(Pointer) P는 컨텍스트가 적용되는 현재 입력기호의 비트발생기에 대한 현 입력비트의 비트위치를 지시한다. 도시된 컨텍스트들에서, 컨텍스트는 현재 입력기호의 비트의 일부분, P에 의해 지시되는 비트 위치와 현입력기호에 대한 화소의 상위화상의 화소에 대한 기호의 비트들의 소집합으로부터 유추된다. 현재의 입력기호는 '상위(above)'기호로서 언급된다. 현재 화소의 좌측에 대한 화소와 같이 다른 화소들 또는 도시되지 않았지만 다른 컨텍스트 모델들은 동일하게 작동된다.
각 컨텍스트 모델은 컨텍스트가 어떻게 결정되는지, 그리고 가능한 컨텍스트들의 수가 쉽게 계산될 수 있는지를 기술한다. 각 컨텍스트 모델에 대해, 확률추정치는 유지되고 상기 확률추정치는 상기 컨텍스트를 가지는 기호가 발생될때에 사용된다. '컨텍스트 빈(context bin)'의 용어는 기호가 어느 컨텍스트에 해당되는지를 지시하기 위해 사용된다.
제8도에 대해 설명하면, 컨텍스트 모델(a)은 비트 위치 컨텍스트 모델(bit position context model)이다. 상기 모델에서 유일한 컨텍스트는 k개 텍스트 빈들이 필요한 비트 위치이다. k=8이면, 합리적인 수의 컨텍스트 빈들이다.
컨텍스트 모델(b)은 비트 평면 컨텍스트 모델(bit plane context model)이다. 각 비트 평면에 대해 일련의 M개 컨텍스트들이 있으므로 그렇게 명명된다. 그러므로, M × K개의 (M이 256이고 K가 8일 때의 경우는, 2048)컨텍스트들이 있다.
주목할 특징은 모델(a)과 현재 화소의 컨텍스트들이 현재 화소를 나타내는데 사용되는 비트들과 무관하다는 것이다.
컨텍스트 모델(c)는 비트와이즈(bitwise) 종속 컨텍스트 모델(dependent context model)로서, 현재 비트와 선행 비트가 현재 기호의 존재에 존재하는 경우 비트의 위치에 의해 상기 컨텍스트가 결정된다. 상기 모델에서 2k-1 컨텍스트들(P가 첫번재 비트에 있을 때에 1개 컨텍스트, 다음 비트에 대해서는 2개 컨텍스트,등)이 있다. k가 8인 경우에, 상기 모델은 255개 컨텍스트들을 제공한다. 비트의 컨텍스트는 해독되지 않은 비트값과는 무관하기 때문에, 비트가 어떻게 해독되는가를 결정하기 위해서는 해독되지 않은 비트가 필요없게 된다.(제8도는 '위에서 아래로'와 '좌에서 우로'의 처리 순서를 가정한다.)
컨텍스트 모델(d)는 현재 비트에 선행한 입력화소의 비트들과 상위 화소의 비트들을 고려하는 양질의 컨텍스트 모델이다. 상기 컨텍스트 모델은 모델(b)와 (c)의 정보를 조합하여 M × (2k-1) 컨텍스트들을 제공한다. 상기 컨텍스트 모델은 컨텍스트들의 세밀한 구분을 제공하는 반면에, 컨텍스트들에 대한 값들을 저장하는데 필요한 기억장치는 컴프레서 또는 디컴프레서의 하드웨어에서 금지될 수도 있다. M이 256이고 k가 8인 경우에, 상기 모델은 65,280개의 컨텍스트들이 필요하다. 각 컨텍스트가 8비트의 저장장치를 필요로 한다면 상기 컨텍스트 모델은 상기 목적에 대해 64k 기억장치가 필요하게 된다.
그러나, 모델(a)와 (b)에 대한 상기 컨텍스트 모델의 장점은 상기 모델을 사용하는 컴프레서의 성능이 (현재 화소의 선행 비트들이 컨텍스트들을 결정하는데 사용되므로) 이진화 과정에 상관없이 양호하다.
컨텍스트 모델(e)는 혼합된 컨텍스트 모델이며, 상기 컨텍스트 모델은 기억장치 요구량과 컨텍스트 모델의 성능 사이의 좋은 타협점임을 보인다. 상기 모델에서, 컨텍스트는 현재 입력기호의 P-1상위 비트들이고 상위 기호의 k-(P-1)하위 비트들이다. 상위 모델은 비트위치당 2k개의 컨텍스트들이 필요하다.(k가 8인 경우 2048 컨텍스트).
컨텍스트 모델은 일반적으로 컴프레서와 디컴프레서 사이에 고정되지만, 컨텍스트모델이 어느 특정 시간에서 사용되는 것에 부합하는 한 컨텍스트 모델을 전환(switching)시키는 것을 방지할 필요는 없다. 다양한 컨텍스트 모델들이 허용된다면, 현재 컨텍스트 모델을 지시하는 통신 채널 오버헤드(channel over head)와 같이 컨텍스트모델이 동일함을 보장하는 메커니즘(mechanism)이 존재해야만 한다.
상기한 엔트로피 엔코딩과 컨텍스트 모델에 대한 설명은 이후에 설명할, 도면에 도시된 데이터 압축시스템의 설명의 근간으로서 제공되었다. 제1도에 대해 설명하면, M개의 알파벳으로 기호들을 구성하는 데이터를 압축하기 위한 본발명에 의한 데이터 압축시스템(100)의 일실시예가 컴프레서(102), 채널(104)와 디컴프레서(106)를 구비하여 도시되었다. 컴프레서(102)에 대한 입력은 다른 형태의 데이터가 사용될 수 있지만, 일화상에서 화소값을 표현하는 입력화소 기호들의 열(stream)이다.
입력화소기호들은 컴프레서(102)에 의해 압축된 부호어들로 변환되며, 채널(104)을 통해 디컴프레서(106)로 전송된다. 입력된 부호어들과 컴프레서(102)의 동작과 재색인표(사용된다면)를 이용하여, 디컴프레서(106)는 원래의 입력기호들 또는 동등한 것들을 복원시킨다. 몇가지 경우에서는, 원래의 입력 기호들은 하나의 표현에서 재색인된 표현으로 변환되고 데이터 압축 시스템은 역과정의 재색인을 수행할 필요없이 복원된 기호들을 조정한다.
본 발명의 일 장점은 색채화상에서의 화소값들인 입력기호에 대해 압축율(compression ratio)이 증가한다는 것이다. 그러므로, 본 발명의 압축과정은 채널(104)이 제한된 대역폭을 가질때에 유용하다. 채널(104)의 예들은 화상기억장치와 표시장치사이에 존재하는, 또는 저장 장치와 저장된 화상을 사용하는 장치사이에 존재하는 통신 채널을 포함한다. 채널(104)은 또한 게임 카트리지(game cartridges)와 같이 메모리를 가진 장치의 형태에서의 한장소에서 압축된 후 복원될 장소로 전송되는 데이터의 전송을 표시한다. 채널(104)의 대역폭제한은 기억장치에서 유용한 메모리양의 한계를 나타낸다.
제2도에 대해 설명하면, 컴프레서(102)는 컨텍스트 모델러(108(1)), 확률추정 모듈(probability estimation module: PEM)(110(1)), 비트발생기(112(1)), 컨텍스트 기억장치(114(1)), 컨텍스트 빈 확률 기억장치(context bin probability memory)(116(1))를 구비한다. 도면의 괄호안의 숫자는 컴프레서(102)와 디컴프레서(106)에서 유사하게 번호가 매겨진 요소들을 구별하기 위해 표기된다. 컴프레서(102) 또는 디컴프레서(106)에 일반적으로 적용가능한 요소는 괄호안의 숫자가 필요없이 도시된다. 본 발명을 제2도에 도시한 특정 컴프레서(102)와 관련하여 설명하지만, 다른 컴프레서들도 동등하게 작동될 수 있다. 일례로, 모든 컴프레서들은 PEM(110)과 비트 발생기(112)사이에 연결을 필요하지 않는다. PEM(110)은 확률추정치를 갱신하기 위해 비트 발생기(112)에 의해 제공되는 데이터보다 다른 데이터에 의존할 수 있다.
컨텍스트 모델러(108(1))는 컴프레서(102)의 입력과 결합되어 화소기호들을 입력받는다. 만약 재색인기(reindexer)가 사용된다면, 컴프레서(102)에 대한 입력은 재색인된 입력화소기호들의 열(stream)이다. 컨텍스트 모델러(108(1))는 PEM(110(1))로 입력되는 컨텍스트 빈 ID 출력(Contex bin ID output)과 결정치 출력(decision output), 두개의 출력을 포함한다. 상기 입력이 k비트들의 기호로 이진화된다고 가정하면, 컨텍스트 모델러(108(1))는 입력화소 기호당 k개 이진 '결정치들(decision)'을 출력한다. 각 결정치에 대해, 컨텍스트 모델러(108(1))는 또한 단일 컨텍스트 빈 식별(context bin identifier)을 출력한다.
화소기호의 입력에서 제시되는 상기 화소기호의 컨텍스트를 결정하기 위해 필요하기 때문에, 컨텍스트 모델러(108(1))가 데이터소자들에 주소를 할당하고 입력열에서 기호들의 발생과 관계되는 데이터를 판독/기록하는 기억장치(114(1))와 연결되어 있다. 기억장치(114(1))에서 데이터 소자의 특정배치는 컨텍스트 모델에 달려 있다.
PEM(110(1))은 컨텍스트 모델러(108(1))로 부터 두개의 입력을 받고 비트 발생기(112(1))에 두개의 출력 (확률클래스(Probability class: PClass) 출력과 결과출력)을 내보낸다. PEM(110(1)은 또한 데이터 소자들의 수치들을 판독하고 수정하기 위해, 그리고 데이터 소자들에 주소를 할달하기 위해 기억장치(116(1))에 연결되어 있고 표갱신 신호(table update slgnal)를 입력받기 위해 비트발생기(112(1))에 연결되어 있다. PEM(110(1))로의 각 결정치 입력에 대해, PEM(110(1))은 단일결과 비트의 단일 PClass를 출력한다. 결과비트는 결정치 입력비트(decision input bit)와 관련하여 컨텍스트빈(context bin)에 대해 최대확률 비트기호(most probable bit symbol MPS)와 결정치 입력비트에 종속한다.
결과비트(out come bit)는 결정치 입력비트가 MPS 인지 아닌지를 표시한다. MPS의 반대(비트발생기는 이진기호들을 부호화하므로 '0' 또는 '1')는 최소확률 기호(least probable symbol : LPS)이다.
비트발생기(112(1))는 결과비트들과 상기 비트들과 연관된 PClass의 열(stream)을 입력받는다. 그러므로, 비트발생기(112(1))는 컨텍스트 모델러(108(1))에 대해 각 화소기호입력과 관련된 PClass와 K개의 결과 비트들을 입력받는다. 상기 두개의 입력열들로부터, 비트 발생기(112(1))는 ABS 코더(coder)관련 자료에 설명된 대로 일련의 압축부호어들을 출력한다. 적절히 설계된 비트발생기에서, 결과 비트열(out come bit stream)은 출력부호어들로부터 복원될 수 있고 부호어들은 입력비트 열보다 적은 비트들을 구성한다. PClass 값은 비트열을 부호화하기 위해 사용되는 코드(code)를 선택하기 위해 사용되며 PEM(110(1))은 각 컨텍스트에 대해 MPS와 LPS의 확률분포를 저장하고 비트발생기에 확률데이타를 제공한다.
ABS 코더 관련자료에서 설명된 대로, 몇몇 이진 코드들은 입력열에서 기호('0'과 '1')들의 특정확률에 대해 최적화된다. 일례로, '0'과 '1'들이 비트발생기에 대한 입력으로서 동등하다면, 최적코드(optimum code)는 압축되지 않는다. 즉, 일입력비트에 대해 일출력비트 코드의 최적성(optimality)은 평균 부호어길이가 입력비트들의 이론적인 엔트로피에 얼마만큼 근접하느냐에 따라 결정된다.
컴프레서(102)는 화소기호에 대해 한번 작동되고 비트발생기(112)도 일 비트의 화소에 대해 한번 작용하기 때문에, '현재' 화소와 '현재' 비트의 개념들은 컴프레서(102)와 디컴프레서(106)의 작동을 설명하는 다음과 같은 표현에 사용된다. 그러나, 일 복합컴프레서(complex eompressor)에서, 기호들이 일시에 상기 컴프레서에서 작동되지는 않지만 '현재' 기호의 개념은 그럼에도 불구하고 적용가능하다. 일단계에 대한 현재 기호가 다른 단계의 현재 기호와 다르도록, 요소들(elements)은 파이프라인 방식(pipeline manner)으로 작동될 수 있다.
압축과정에서, 컴프레서(102)는 순차적으로 각 입력화소기호를 받아들이고, 고정된 수의 입력기호들에 대해 부호어를 반드시 출력하지는 않지만 부호어들의 열을 출력한다. 일 화소기호를 처리하는데 있어서, 상기 기호는 이진화되어 컨텍스트 모델러(108(1))에 대해 입력된다. 컨텍스트 모델러(108(1))는 비트의 컨텍스트를 식별하기 위한 컨텍스트 빈 ID(context bin ID)에 따라 상기 모델러의 결정치 출력에서 각 비트를 출력하도록, 비트와이즈(bitwise)를 기초로 하여 상기 이진화를 계산한다. 일례로, 사용되는 컨텍스트 모델이 비트 위치 컨텍스트 모델이면, 컨텍스트 빈 ID는 단지 입력화소 기호의 이진화에서의 비트위치만을 지시한다. 상기 비트위치 컨텍스트에 대해, 현 비트에 대한 포인터(pointer)만이 저장되나 다른 컨텍스트 모델들에 대해 다른 화소의 컨텍스트에 영향을 주는 각 화소가 기억장치(114)에 저장된다. 만약 컨텍스트 모델이 현 화소 이상의 화소를 포함하면, 화소의 열(row)을 기억장치에 충분하게 저장할 수 있다. 일화상을 형성하는 이차원의 화소배열에서 화소색상들을 표시하는 경우, 스캐닝(scanning)의 순서는 컨텍스트 군(block)만큼 중요하지 않다. 여기에서, 컨텍스트는 현행문자 부근의 문자들에 의해 제공된다. 그러나, 일례로, 이차원배열이 컴프레서(102)에 '최상위 행부터 최하위행으로' 그리고 '각행에서 좌측에서 우측으로'와 같은 지정된 순서에 의해 스캔(scan)된다고 가정한다. 이러한 스캔순서에 있어, 현재 화소 이상의 화소는 현재 화소를 해독하는데 있어서 컨텍스트를 제공할 필요가 있는 때에 이미 해독되었으므로, 컨텍스트를 구하기 위해 사용될 수 있고, 전형적인 일화상에서 현 화소 이상의 화소는 대개 현재 화소와 쌍을 이루는 색상이다.
현화소의 상위 화소로 되는 컨텍스트화소에 있어서, 특이한 것은 존재하지 않으며 많은 컨텍스트 모델들이 사용가능할때 압축된 데이터열로부터 무손실 복원을 성공적으로 수행하기 위해서는 현 비트의 컨텍스트 모델이 현비트가 해독될 때에 해독되지 않은 비트들 또는 기호들을 포함하지 않아야 한다. 몇가지 예로서 상기한 바를 명확히 한다.
컨텍스트 모델이 '비트위치' 컨텍스트이면, 현재 비트의 컨텍스트는 현재 입력화소에서 비트위치이며, K 비트로 이진화된 기호들의 경우에는 K개 컨텍스트들을 제공하는 현재 컨텍스트를 나타내는 컨텍스트 ID 이다. 그러나, 현재 비트의 컨텍스트가 상기 비트를 부호화하기 위해 사용되는 코드를 결정하면, 상기 비트가 올바로 해독되기 전에 컨텍스트가 잘 알려진 필요가 있다. 그러므로, 처리순서를 현재 비트가 해독되기 전에 상기한 비트의 컨텍스트를 먼저 알도록 결정되어야 한다.
결정치 출력에서 컨텍스트 모델러에 의해 각 비트출력에 대해, PEM(110(1))은 결정치와 상기 결정치를 위한 컨텍스트 ㎉ ID를 입력받는다.
상기 결정과 그 결정의 컨텍스트 빈에 대한 MPS를 바탕으로, PEM(110(1))은 결과비트와 관련 PClass를 출력한다. MPS와 PClass가 결정되는 방법을 후술된다.
PClass는 결정신호선 상에서 컨텍스트 모델러(108(1))에 의한 비트열의 MPS의 존재 추정치이다. 입력데이터에서 MPS와 LPS의 확률분포가 모든 입력데이터를 스캐닝하므로서 정확히 결정될 수 있는 반면, 압축과정은 부호어를 해독하기 전에 완전한 확률분포는 디컴프레서에 대해 유용하지 않으므로 상기 완전한 확률분포에 의존하지 않는다. 그러므로 단지 전에 부호화된 비트들에 의존하는 추정치가 사용된다. ABS 코더 관련자료에서 설명된 대로 비트 발생기(112(1))는 결과 비트열을 부호화하기 위해 사용할 코드를 결정하기 위해 PClass를 사용한다. 코드는 일범위의 확률분포들에 대해 최적화되므로 PClass는 한 범위의 확률값들을 정의한다. 이러한 확률클래스(Class)값들은 컨텍스트당 하나씩, 기억장치(116)에 저장된다. 기억장치(116)는 또한 각 컨텍스트에 대해 MPS를 저장한다. 제4도에는 기억장치(116)의 구조가 도시되었다. 초기에, 각 컨텍스트에 대한 PClass는 MPS의 확률이 50%(LPS에 대해서 50%임)을 지시하는 PClass이고 MPS는 인위적으로 '0'과 '1'로 부터 선택될 수 있다.
ABS 코더 관련자료에서 설명된 대로, 엔트로피 엔코더에서 데이터를 압축하는 하나의 방법은 런 렝스(run length)를 지시하는 부호어에 대한 MPS의 롱 런(long run)들을 감소시키는 코드를 사용하는 것이다. 원래 열은 최대 런(rnu)보다 긴(longer) MPS 비트들의 런(run)이 일 이상의 부호어로 분리되는 경우를 제외하고는 LPS 앞의, 부호어에 의해 지시된 다수의 MPS 비트들을 출력하므로서 복원된다.
부호어가 출력된 후, 비트발생기(112(1))는 MPS 비트들의 최대 런(run)이 발생되었는지의 여부를 PEM(110(1))에 신호를 보낸다. 상기 지정은 표 갱신신호 선(Table update signal line)상으로 제공된다. 최대 런 길이(maximum run length)가 발생하면, 비트 발생기(112(1))는 MPS가 전의 추정치보다 발생확률이 높음을 지시하는 PClass 표를 갱신하기 위해 PEM(110(1))에 신호를 보낸다. 최대 런 길이가 발생되지 않으면, MPS가 전의 추정치보다 발생확률이 낮음을 지시하기 위해 PClass는 변경된다.
복원과정은 압축과정과 꼭 반대과정이다 : 부호어들은 결과 비트열(outcome bit stream)로 해독된다. 결과 비트열은 결정비트열(Decision bit stream)로 변환되고 화소기호들로 어셈블(assemble)되어 출력된다. 제3도에 대해 설명하면, 디컴프레서(106)는 컨텍스트 모델러(108(2)), PEM(110(2)), 비트 발생기(112(2)), 기억장치(114(2))와 다른 기억장치(116(2))를 구비한다. 디컴프레서(106)에서 모듈들의 상호연결은 비트열에 대한 컴프레서(102)의 반대이나, 비트 열에 관한 정보에 대해 같은 방향이므로 두개의 귀환루프(feedback loop)를 형성한다.
일 귀환 루프는 부호어를 부호화하기 위해 사용되는 코드를 결정한다. 사용된 코드들에 대한 정보는 비트발생기(112(2))가 비트열을 해독하도록 한다. 사용된 코드들은 PEM(110(2))에 의해 공급된 PClass에 의해 결정된다. PClass는 컨텍스트에 의해 결정되며 표 갱신선상에 신호를 보낸다. 컨텍스트는 기억장치(114(2))에 저장된 화소들과 선행비트들에 대한 정보로부터 결정된다. 상기 귀환루프는 다수의 비트들에서 측정될 수 있는 지연(delay)을 갖는다. 상기 지연은 수신된 부호어들에 따라 변하고 대부분의 실시예에서, 최대로 유지될 수 있다. 만약 최대지연이 X 비트들이면 현비트의 컨텍스트는 결정비트열에서 현비트들에 선행된 X 비트들에 의존하지 않는다. 상기한 바는 현 비트가 디컴프레서(106)에 의해 처리된 정보로 부터 해독될 수 있음을 보장한다. 상기한 조건들은 데이터가 병렬로 복원되는 것이 필요할 때의 문제점이며 본 발명이 해결한 특정문제들을 제시한다.
[재색인(reindexing)]
상기한 바에 의하면, 이진 엔트로피 엔코더들은 이론적인 한계까지 데이터를 압축할 수 있다. 색상 데이터의 이진화는 다른 것만큼 쉽게(색상 조색표를 변경하므로서) 화상을 표시하는데에 사용될수 있으나, 몇몇 이진화들은 다른 것들보다 컨텍스트 모델들에 대해 보다 낮은 엔트로피를 제공한다. 상기한 이점은 컴프레서(102)의 전단에 리인덱서(reindexer)를 부가하므로써 제공될 수 있으며, 리 인덱서는 데이터가 압축되는 데에 낮은 엔트로피를 제공하는 이진화 과정을 선택한다. 리인덱서의 반대인, 디인덱서(deindexer)는 디컴프레서(106)의 출력단에 배치될 수 있거나 색상의 정의는 재색인에 의한 알파벳 공간의 변화를 설명하기 위해 수정될 수 있다. 실시예들에서, 재색인표는 압축에 앞서 고정될 수 있고 컴프레서와 디컴프레서에서 저장될 수 있다.
제5도에 컴프레서(102)의 입력에 결합된 리인덱서(150), 2 X M 인 재색인표(162), 부가적인(optional) 디인덱서(164)를 구비한 재색인 데이터 압축시스템을 도시한다. 신호선(156)은 재색인이 고정되지 않는다면, 디컴프레서(106)에 재색인표의 전송을 의미한다. 재색인표(162)는 2 X M 이므로 압축된 데이터와 함께 전송하는 것은 심각한 오버헤드를 야기하지 않는다.
리인덱서(160)와 디인덱서(164)의 작동은 특정 재색인표(162)에 직접 주어진다. 리인덱서(160)는 입력되는 화소기호를 사용하여 재색인표(162)에 인덱스(index)하고 대응하는 재색인 값을 판독한다. 상기 값은 컨텍스트 컴프레서(102)에 대한 이진화된 기호입력으로서 출력된다. 재색인표(162)의 재색인 값들은 상기 동작이 역으로 이루어질 수 있도록 한다. 즉, 재색인표(162)의 일 항목은 주어진 재색인 값을 유지시킨다. 압축시스템의 지연(delay)을 가지는 컴프레서(102)에 대한 입력과 같은 디컴프레서(106)의 출력이 디인덱서(164)에 적용될 때, 디인덱서(164)가 사용된다면 역변환을 수행하고 원래 M개의 화소 기호를 포함하는 색인을 출력한다. 상기 언급한 바와 같이, 실제 원래의 M개 기호가 필요하지 않고 알고 있는 이진화를 사용할 수 있으면, 디인덱서(164)는 필요하지 않다.
제6도는 입력 데이터 군(block)으로부터 재색인 표(162)에서의 재색인치들을 생성하기 위한 재색인표 발생기(200)(reindex table generator)의 블록도이다. 발생기(200)도 전용 하드웨어(gardware) 또는 프로그램된 디지탈 컴퓨터에서 수행될 수 있다. 범용 디지탈 컴퓨터를 사용하는 것은 전용 하드웨어를 사용하는 것보다 특히, 일단계 압축과정에 대해 속도가 느릴 수 있지만 비용이 적게 든다. 다행히도, 대부분의 실시예들은 실시간보다 빨리 실행될 수 있다.
발생기(200)의 입력은 화소 기호들의 군(block)이다. 상기 군은 압축된 전체 화상들일 수 있고, 화상들 중에서 몇개의 표본화된 집합일 수 있고, 부분화상들 일 수 있다. 그러나, 압축과정이 실시간으로 수행되지 않으면, 발생기(200)에 대한 입력으로서 전체 데이터 집합을 사용하는 것은 일반적으로 아무런 문제가 없다. 몇 실시에에서, 화상데이터는 16 또는 256 화상들의 군들로 묶여지고, 재색인표는 각 화상들군에 대해서 발생된다.
제6도에 대해 추가 설명하면, 발생기(200)는 순서 배치 모듈(204)(order fixng module), 조건부 확률분포 누산기(206)(conditinal probability distribution accumulator), 입력기호(Si)가 컨텍스트(Cc)에서 발생되는 확률 인 Pc(Si)의 값을 (i:0에서 M-1까지 C:0에서 N-1까지) 유지하기 위한 조건부 확률표(208), 입력데이터군(block)에서 발생되는 컨텍스트(Cc)의 확률인 P(Cc)의 값을(C:0에서 N-1까지)에 대해서 유지하기 위한 컨텍스트 확률표(209), 재색인표(162)에 출력하기 위해 연결된 엔트로피 최소화기(minimizer;210), 컨텍스트(Cc)의 부분 조건부 확률인 PCP(c) (C:0에서 N-1까지)의 값을 유지하기 위한 부분 조건부 확률표(212)(partial conditional probability table : PCP table), 컨텍스트 Cc와 비트위치 K의 부분위치 조건부 확률표(partial positional conditional probability)인 PPCP(c)에서 PPCP(K,C)의 값들을 (K : 1에서 K 까지, C : 0에서 N-1까지)에 대해서 유지하기 위한 부분적인 위치 확률표(212)(partial positional probability table : PPCP table), 1에서 M-1에 대해 PBE(j)의 값들을 유지하기 위한 부분적인 비트 와이즈 엔트로피 표(216)(partial bitwise entropy table : PBE table)를 구비한다. 제7도의 순서도에 대한 설명을 읽은 후에 여러 표들의 사용에 대해 더 명확한 이해를 할 수 있을 것이다.
발생기(200)의 동작에 대해 이하 설명한다. 순서 배치 모듈(204)(order fixing module)은 데이터군(202)으로부터 각 기호를 0에서 M-1 까지인 i 에서 배열된 기호, Si로 변환시킨다. 재색인표(162)의 효과로 기호들이 재배열되므로, 사용된 특정순서는 시스템의 잔여부분 작동보다 중요하지 않다. 일 실시예에서, 데이터군(202)에서의 기호들은 케이스 모듈(204)(case module)이 필요하지 않는 곳에서는 (log2M 이상인 K) K 비트의 이진 값들로서 미리 저장된다. 다른 실시예에서, So는 데이터군(202)에서 가장 빈번한 화소기호에 대해 할당되고, S1은 그 다음 빈번한 화소기호에, ... SM-1은 최소로 빈번한 화소기호에 대해 할당된다.
상기한 바는 0번째 오더(order) 또는 컨텍스트리스(contextless), 기호빈도 분포(symbol frequency distribution)로서 알려져 있다.
모듈(204)이 사용된다면, 상기 모듈은 데이터군(202)으로부터 화소 기호들을 판독하여 표(208,209)에 확률치들을 누산하는 누산기(206)에 이진 표현으로 배열된 기호들을 출력한다.
엔트로피 최소화기(210)(entropy minimizer)는 표(208, 209)의 내용을 판독하고, 재색인표(162)에 채워질 요소들을 출력하기 위해 표(212,214,216)으로부터 수치들을 판독하여 기록한다. 몇 실시예들에서, 최소화기(210)는 표(162)의 색인(index)들이 할당되는 내부표(internal table)를 유지하고 다른 실시예에서는, 최소화기(210)는 재색인표(162)를 탐색하므로서 할당된 색인들을 결정한다.
재색인표 발생기(200)의 동작에 대해 제6도와 관련하여 제7도에 도시된 순서도를 참조로 설명한다. 상기 순서도는 블록(block)(300, 302, 304, 306, 308, 310, 312, 314, 316, 318, 320, 322, 324, 326, 328)들로 구성된다. 일 블록(300)은 데이터군으로부터 재색인표를 발생시키는 과정의 시작을 의미한다. 블록(302, 306)의 단계들은 누산기(206)에 의해 주로 수행되고, 블록(304)의 단계들은 모듈(204)에 의해 수행되며 나머지 단계들은 주로 엔트로피 최소화기(210)에 의해 수행된다. 순서도 공정은 블록(302)으로 부터 블록(328)으로 블록 번호 순서대로 수행되고 블록(328)으로부터 블록(316)으로 귀환(loop back) 진행되거나 상기 공정이 끝난다.
블록(302)에서 누산기(206)는 표(208, 209)를 초기화한다. 블록(304)에서, 모듈(204)이 사용된다면 상기 모듈은 입력기호들을 SO~Sm-1로 배열하고, 블록(306)에서 누산기(206)는 표(208, 209)를 구성한다.
상기 구성시에, 표(208)는 컨텍스트와 입력기호의 각 조합에 대한 항목을 구비하며 상기 표(208)의 항목(C, i)은 컨텍스트 Cc에서 발생되는 기호 Si의 확률치를 표시한다. 상기 구성시에, 표(209)는 각 컨테스트에 대해 항목을 구비하며, 상기 표(209)의 항목 C는 기호와 무관하게 발생된 컨텍스트 Cc의 확률치를 표시한다. i에 대해 M개의 숫자들이 있고, 컨텍스트들은 N개의 가능 컨텍스트들로 주어지는 {Co, ... Cn-1} 이다. 그러므로 표(208)는 M X N의 항목들을 구비하고 표(209)는 M개 항목들을 구비한다.
일실시예에서, N=M인 경우에, 컨텍스트는 Si가 주어지는 화소이상의 화소에 대한 기호이다. 다른 실시예에서, 컨텍스트는 (N=M)인 좌측 화소의 기호이거나 (M=M2)인 두개의 기호들이다. 그러나, 두개 기호의 컨텍스트를 사용하기 위해 각 입력기호에 대해 M2컨텍스트들이 필요하고 그 결과 표(208, 209)는 대부분의 M의 값들에 대해서 매우 크다. 그러나 다른 실시예에서, M 컨텍스트들 보다 작은 컨텍스트가 존재한다.
일례로, 모든 기호들이 M 미만의 그룹(group)으로 형성되고, 컨텍스트 화소에 대한 컨텍스트가 컨텍스트 화소위의 화소를 포함하는 그룹이면, M 미만의 컨텍스트들이 발생된다. 일례로, 모든 기호들이 4개 기호들로 구성되는 그룹들로 형성되면, N은 M/4이다. 물론, 컨텍스트들의 상기 감소에 대해, 기호들을 그룹화하는 지적 수단(intelligent means)들이 사용되어야 한다.
블록(308)에서, 최소화기(210)는 루프(loop)변수, i를 0으로 설정하고 재색인표(162), PCP(c)표(212), PPCP(K, C)표(214)를 초기화한다. 블록(308)은 블록(206)이후에 도시되지만 상기 단계는 다른 단계의 결과에 영향을 주지 않으므로 상기 순서는 바뀔 수 있다.
재색인표(162)는 프래그(flag)들 또는 다른 수단들을 사용하는 것에 의해 표(162)에서의 모든 항목들을 비워두고 색인들을 할당시키지 않은 상태로 초기화된다. PCP 표는 모든 C에 대해 PCP(C)=0으로 설정하므로서 초기화되고 PPCP 표는 모든 K와 C에 대해 PPCP(K,C)=0으로 설정하므로서 초기화된다.
블록(310)에서, 최소화기(210)는 인덱스 0을 So으로 할당하고 그에 따라 재색인표를 갱신한다.
블록(312)에서, 최소화기(210)는 각 C에 대해 PCP(C)=Pc(So)로 설정하므로서 추가된 색인 So에 대해 PCP(C)표를 갱신한다.
블록(314)에서, 최소화기(210)는 할당된 색인의 기수 2의 K번째 비트 표현인 1인 각(C,K)쌍에 대해서 PPCP(K,C)=Pc(So)로 설정하므로서, 추가된 색인 So에 대해 PPCP(C)표를 갱신한다. 인덱스의 비트들이 1이 아니기 때문에, 첫 번째 할당된 비트가 0일 때 상기 단계가 필요하지 않지만, 0이 아닌 색인이 우선 할당되면 상기 단계가 필요하게 된다.
블록(316)에서 최소화기(210)는 i를 증분하고 블록(316)을 통한 첫번째 전송에서 i=1이 되게 한다. 블록(316)에서부터 블록(328)까지의 과정은 0과 M-1 사이의 각 i에 대해서 반복하여 각 루프마다 기호에 대해 재색인표에 있는 일 색인을 부과한다. 물론, i=M-1인 최종 루프는 Sm-1에 부과되는 시점에서 단지 일 색인만이 있으므로 필요하지 않다.
블록(318)에서, PCP표는 PCP(C)=PCP(C) + Pc(Si)에 따라 기호 Si에 대해 갱신된다. 상기 과정후에, 컨텍스트 Cc와 A'={So, .. Si} 기호들의 알파벳이 주어질 때 수신된 기호가 알파벳 A' 에 포함될 확률은 PCP(C)이며 상기 PCP(C)는 PCP표의 C번째 항목이다.
블록(320)에서, 부분적인 비트와이즈 엔트로피(partial bitwise entropy : PBE)값은 각 할당되지 않은 색인에 대해서 발생된다. 상기 할당되지 않은 색인들은 재색인표(162)에 있거나 내부적으로 최소화기(210)에 의해 사용된다. 색인 j와 기호 Si에 대해 부분적인 비트와이즈 엔트로피, PBE(j, Si)는 색인들이 0에서 i-1로 할당되어 있는 경우, 다음수식들 (1)-(3)으로 표현된다.
상기 수식들에서, A'는 i개의 할당된 기호들의 알파벳,
H(P)는 확률분포 P의 엔트로피,
bk(x)는 X의 기수 2 표현에서 K번째 비트의 값,
r(S)는 기호 S에 대해 재식인치(reindex value)이 다.
블록(322)에서, 최소화기(210)는 모든 계산치들로부터 최소의 PBE(j, Si)값을 선택하고, 상기 최소값의 j와 같은 값으로 변수 X를 설정한다.
블록(324)에서, 최소화기(210)는 X가 Si에 대해 재색인치가 되도록 설정하고 표(162)에서 상기 설정을 표시한다.
블록(326)에서, 최소화기(210)는 bk(X)=1인 모든 C와 X에 대해서 PPCP(C,K)=PPCP(C,K) + Pc(Si)에 따라 PPCP(C,K)를 Si와 X에 대해 갱신한다. 상기 과정후에, 컨텍스트 Cc와 알파벳 A'={So,..,Si}가 주어질때, 수신된 기호가 알파벳 A'에 존재할 확률은 PPCP(C,K)이다.
블록(328)에서, 최소화기(210)는 2개 또는 그 이상의 재색인치들이 할당되지 않았는지를 검사(check) 한다.
상기 경우는 i가 상기 블록에서 M-2 이거나 적으면 M-1개 색인들이 할당되었음을 의미한다. 최종색인은 Sm-1에 할당된다.
상기 수식(2)에는 분모는 기호(Si)가 알파벳(A')에 추가되는 매 경우에 Pc(Si)를 PCP(C)에 추가하므로서 PCP(C)는 블록(318)에서 갱신된다. 상기 수식(2)에서 분자는 j가 Si에 대한 색인일 경우 PPCP(K,C)이다. 상기 PPCP(K,C)의 갱신처는 색인 j의 Si에 대한 특정 할당에 의존하므로 PPCP(K,C)는 블록(326)에서 x=j의 선정후에 갱신된다. 물론, H는 비트와이즈 엔트로피함수이므로, 상기 수식(2)는 P(0)+P(1) = 1 이므로 β가 0 또는 1 인 경우에 대해서 계산되는 것이 필요하다.
또한, H는 비트와이즈 엔트로피이므로 상기 수식(3)은 실질적으로 H(X) = -x * log2X - (1-X) * log2(1-X)로 간단화된다.
제7도에 도시된 공정의 최종결과는 재색인표(162)에서의 재색인치들의 할당이고 상기 표는 리인덱서(160)에 의해 입력화소 기호들을 이진화로 재색인하므로서 일반적으로 재색인 과정이 이루어지지 않는 경우보다 우수한 압축성능을 초래하도록 사용된다.
[병렬처리(Parallel Processing)]
상기에서 설명한 부분들에 적응형 코딩(adaptive coding), 컨텍스트 모델들과 재색인화(reindexing)를 사용하므로서 압축율을 개선시키는 방법에 대해 설명했다. 디컴프레서에서, 적응형 코딩과 컨텍스트 모델링은 비트를 부호어로 부터 해독하는 방식이 앞서 해독된 비트들과 기호들에 대한 정보에 의존하므로 귀환 루프(feedback loop)가 필요하다. 디컴프레서가 실시간으로 부호어열을 빨리 해독하는 것이 필요하다면, 병렬처리는 보다 빠른 전개를 위해 사용될 수 있다.
병렬처리실현 과정을 이후에 설명한다. 비트위치 컨텍스트 모델(bit position context model)을 사용하므로(제8(a)도 참조), 화소값의 각 비트가 8개의 병렬코더(coder)들 (각코더는 각 비트 위치를 처리하며)의 각각에 의해 처리된다. 상기 배열에서, 비트위치는 유일한 컨텍스트이므로 상기 비트의 컨텍스트는 코더에 보내지고 비트 위치는 특정 코더에 대해 일정하므로 상기 비트 위치는 상기 코더에 보내진다. 그러나, 다른 컨텍스트 모델들이 개선된 압축과정을 수행하기 위해 사용되는 경우, 코더를 병렬화하는 것은 단순하지 않다.
일례로, 비트와이즈 의존 컨텍스트 모델(bitwise depedent context model)을 제8(c)도에 도시하였다. 화소의 각 비트가 개개의 코더를 보내지면, 해독될 비트의 좌측에 위치한 비트들은 상기 해독될 비트에 대해 필요한 컨텍스트를 제공하기 위해 먼저 해독되어야 한다. 그러므로, 컨텍스트 모델들의 사용은 병렬처리에 제약조건을 부과한다.
본 발명에서, 제안된 컨텍스트 모델의 사용과 상기 컨텍스트 모델들을 사용하며 코더에서 병렬처리하기 위해 고유 재배열 버퍼(unique reordering buffer)가 제공된다. 제9도와 제10도에 재배열 버퍼(reordering buffer)의 그 역과정인 디오더링 버퍼(deordering buffer)가 병렬코더에 연결된 구성도를 도시하였고 제11도에 재배열 버퍼의 동작을 상세히 도시하였다.
제안된 컨텍스트 모델에서, 두개의 제약조건(constraint)들이 병렬코더에 부과된다. 첫째, 각 단계가 상호 독립적이면, 일 병렬 사이클(cycle)에서 처리되는 비트들의 집합에서 비트들은 다른 비트들의 컨텍스트에 영향을 주지 않아야 한다. 둘째, 컨텍스트 데이터가 각 비트가 처리된 후 갱신된다면, 병렬로 처리되는 비트들의 집합에서 어느 두개의 비트들도 일 컨텍스트를 공유해서는 안된다. 제12도에 주어진 컨텍스트를 가진 비트가 처리될 때 갱신되는 컨텍스트 데이터를 포함하는 대표적인 컨텍스트 레코드(context record)를 도시한다. 상기 레코드는 제4도에 도시된 기억장치(116)와 같이 표에서 일개 라인(line)이다.
제9도에서, 병렬압축시스템(400)은 본 발명에 의해 재배열 버퍼(402), 디멀티 플렉서(demultiplexer)(404), N개 병렬 단계(parallel stage)(406)(0,..,N-1), 멀티 플렉서(multiplexer)(408)와 디오더링 버퍼(deordering buffer)(410)를 구비한다. 상기 시스템(400)은 재색인호(reindexing)를 사용하거나 사용하지 않을 수 있다. 각 단계(406)는 상기 컴프레서(102)와 유사한 컴프레서(412), 채널(414), 상기 디컴프레서(106)와 유사한 디컴프레서(416)을 구비한다.
제10도에 다른 구성의 시스템(450)을 도시하였는데 상기 시스템(450)은 채널들(414)(0,.., N-1)의 전송정보를 단일 채널(454)의 전송정보로 결합하기 위해 사용되는 인터리버(interleaver)(452)와 각 단계에 대해 단일 채널(454)의 전송정보를 개별적인 채널들로 다시 분리시키기 위한 디인터리버(deinterleaver)(456)를 구비한다.
제9도에 대해 다시 설명하면, 시스템(400)에 대한 기호열 입력은 재배열 버퍼(404)에 의해 임시저장된다. 재배열 버퍼(402)는 기호당 K비트들(제8도에서는 K가 8)의 비트열을 수신하고 디멀티플렉서(404)에 비트들을 출력한다. 상기 디멀티플렉서(404)는 병렬코더로 재배열된 비트들을 분배한다. i번째 병렬단계(406(i))에서, 컴프레서(412(i))는 단계(406(i))에 할당된 비트들을 부호어들로 압축하며 상기 부호어들은 채널(414(i))을 통해 전달되며 디컴프레서(416(i))에 의해 복원된다. 모든 단계들의 출력은 멀티플렉서(408)에 의해 조립되며, 상기 조합된 것은 디오더링 버퍼(deordering buffer)(410)에 출력된다. 상기 디오더링 버퍼(deordering buffer)(410)는 재배열 버퍼(404)의 역기능을 수행한다.
도시된 병렬코더에서 각 단계는 단일 컨텍스트에 할당되어 지지만, 재배열은 필요에 따라 다른 방식으로 병렬단계들을 탄력적으로 분리할 수 있게 한다. 일례로, 각 단계는 PClass, 다수의 컨텍스트들을 구비하는 그룹(group) 또는 여러 단계들로 전송정보를 고르게 분배하도록 설계된 분배과정에 연결된다.
제11(a)도는 4개의 병렬단계를 구비한 병렬코더로 사용되는 재배열 버퍼(502)와 비트와이즈 의존 컨텍스트 모델을 도시한다. 화소당 다른 수의 비트들 또는 다른 컨텍스트 모델, 8 또는 N 병렬단계들 같이 다른 구성에도 상기 버퍼(502)는 유용할 수 있다. 4개의 입력 바이트(byte)들(또는 화소들)은 버퍼(502)에 입력되며 좌측에 도시되고 8개의 4비트 블록(block)들이 버퍼(502)로 부터 출력되는 것이 도시된다. 상기 출력블록들은 병렬 코딩주기당 하나씩 병렬코더로 출력되어서 각 출력블록들은 병렬로 처리되는 비트들의 집합으로 표시된다. 입력비트들이 재배열되지 않는다면 병렬코더에의 블록입력은 화소 A의 4개 최하위 비트(A3-A0)가 뒤에 오는 화소 A의 최상위 비트(A7-A4)이고 그 이후에 화소 B의 최상위 비트(B7-B4)가 입력되어진다. 상기한 바와 같이 재배열 고정이 없이 병렬로 처리되는 비트들의 집합은 비트와이즈 의존 모델이 사용될 때 A4가 A4 위치(4)와 같은 비트집합에 있는 A7, A6, A5로부터 컨텍스트를 얻으므로 독립적이지 않다.
상기 문제를 해결하기 위해, 버퍼(502)는 도시된 대로 화소들(A,B,C,D)에 대해서 블록(병렬로 처리되는 비트들의 집합) D7-C7-B7-A7, D6-C6-B6-A6 등이 출력되도록 입력비트들을 재배열한다. 상기 재배열에서, 일비트는 다른 비트에 의존하지 않는다. 그러나, 두 비트들이 한 컨텍스트를 공유할 수 있다. 일례로, D7과 C7은 비트와이즈 의존 컨텍스트 모델에서, 비트와이즈 의존 컨텍스트는 비트의 위치와 좌측으로 향하는 비트들 이므로, 같은 컨텍스트를 공유한다. D7과 C7에 대해서, 비트위치는 같고 좌측에 위치한 비트(제11도 상단부)들이 없다.
상기 두번째 제약조건은 제11(b)도에 도시된 재배열 버퍼에 의해 첫번째 제약조건과 함께 해결된다. 상기 재배열 버퍼에서 블록(block)들로 군집된 비트들은 다른 화소들로 부터 얻어지지만, 다른 비트위치들로부터도 얻어질 수 있다. 비트위치가 컨텍스트의 일부일때에, 다른 비트 위치들을 가진 비트들은 다른 컨텍스트들을 가질 것이다. 그러므로, 병렬로 처리되는 비트들의 집합인 블록들은 버퍼(504)에 의해 D7-C6-B5-A4, D6-C5-B4-A3를 9번째 블록 H7-G6-F5-E4를 출력하고 컨텍스트에 대한 블록에서 다른 비트들에 의존하지 않은 비트들을 구비하고 상기 블록에서 다른 비트들과 컨텍스트를 공유하지 않는다. 입력화소들(E,F,G,H)은 도시되지는 않았지만 화소 D에 이어진다.
제11(b)도에 리셋(reset) 이후의 버퍼의 상태를 도시하였는데 화소 A앞의 선행화소들은 없게 된다. 버퍼의 리셋후 첫번째 병렬단계에서 (화소 A로 부터) 단지 일 비트를 가진 일블록이 처리된다. 다음 병렬단계에서, 화소 A로 부터의 일비트와 화소 B로부터의 일비트가 처리된다. 리셋이후 첫몇개의 블록들에서 모든 병렬단계들이 사용되지 않는데 상기 사용은 합리적인 화상크기에 대해서는 중요하지 않다. 제11(b)도에서는 첫번 3개 블록들에서 상기한 바가 발생된다.
제13(a),(b)도에 병렬 코더들에 부가된 제약조건들과 유사한, 파이프라인(pipe line) 방식의 코더들상에 컨텍스트 모델이 부과한 제약조건을 도시한다. 제13(a),(b)도에 제11도에 도시된 화소(A-D)를 처리하는 파이프라인 방식의 코더의 작동단계를 도시하며, 제13(a)도에 비트들을 재배열되지 않은 순서로 처리하는 파이프라인 처리과정을 도시하였고 제13(b)도에 재배열된 순서로 비트들을 처리하는 파이프라인 처리과정을 도시한다. 각 실시예에서, 각 열은 시간 t에 따라 배열되고 비트는 파이프라인 단계에 의해 처리됨을 도시한다. 상기 예에 도시된 단계들은 입력단계, 3개의 중간단계(IS-1, IS-2, IS-3), 두개의 출력단계들이다.
상기예에서, 비트가 처리되고 첫번째 출력단계에서 다른 비트들의 컨텍스트를 결정하는데 사용된다고 가정한다. 게다가, IS1의 처리는 처리되는 비트의 컨텍스트에 의존하고, 비트와이즈 의존 컨텍스트 모델은 사용된다고 가정한다. 비트와이즈 의존 컨텍스트 모델에서, 원안의 비트 A2의 컨텍스트는 A3, A4, A5, A6, A7에 의존한다. 제13(a)도에서, IS-1에서의 비트(A2)의 처리는 비트 A3고 비트 A4가 첫번째 출력단계(다른 비트들(A5-A7)은 이미 첫번째 출력단계를 통과함)에 있을 때까지 처리되지 않는다. 상기 지연은 파이프라인 방식 처리의 장점을 없앤다.
상기 문제를 해결하기 위해, 버퍼(502)와 같은 재배열 버퍼는 제13(b)도에 도시된 작용에 대해 사용될수 있다. 상기 예에서, 원안의 비트(B6)는 비트 B7으로부터 컨텍스트를 얻고 초기 기간에 첫번째 출력단계에 출력되며 B6이 IS-1에서 처리될 적에 사용된다.
상기 기술한 바는 예시한 내용이지 제한적인 내용이 아니다. 본 발명에 대해 여러사항들이 본 발명의 기술분야에서 통상의 지식을 가진자에 의해 쉽게 수정될 것이다. 그러므로 본 발명의 범위는 상기 기술된 내용을 기준으로 결정되어서는 안되지만 특허청구범위를 참조로 결정될 수 있다.

Claims (24)

  1. 색채화상의 일화소를 표현하는 M개 기호들의 알파벳으로부터 선택된 각 입력기호를 상기 입력기호보다 적은 수의 비트들로 표현되고 상기 입력기호로 해독될 수 있는 부호어들로 압축하는 방법에 있어서, 컨텍스트 모델을 선택하는 단계와; M개 입력기호들의 입력열을 판독하는 단계와; 상기 입력 열에서 상기 컨텍스트 모델에 의해 지시되는 컨텍스트들의 분포를 결정하는 단계와; 상기 입력열에 대해 상기 컨텍스트들에 있는 상기 M개의 입력기호들의 분포를 결정하는 단계와; 알파벳으로된 M개 기호들중 첫번째 기호에 Log2M 이상의 정수인 K개 비트들로 구성된 첫번째 이진 시퀸스를 할당하는 단계와; 이진 시퀸스는 모든 할당되지 않은 이진 시퀸스들로부터 선택된 후속이진 시퀸스이며, 선택된 이진 시퀸스와 또 다른 이진 시퀸스를 할당받은 알파벳 기호들중 일부 알파벳에 대해 최소의 일부 비트 와이즈 엔트로피를 초래하도록 알파벳으로된 M개 기호들중 후속의 기호들에 대해 후속의 이진 시퀸스들을 할당하고 그 할당에 의해 M개의 기호들을 그 할당된 이진화로 변환시키기 위한 재색인 표를 형성하는 단계와; 적어도 M-1 이진 시퀸스들이 기호들에 할당될 때까지 후속의 이진 시퀸스들을 할당하는 단계를 반복하는 단계와; 잔여 이진 시퀸스를 잔여 기호에 할당하여 상기 재색인 표를 완성하는 단계와; 비트열을 형성하기 위해 상기 재색인 표를 사용하여 각 M개의 입력기호를 이진화하는 단계와; 압축된 부호어열에서 부호어를 형성시키기 위해 상기 비트열을 부호화하는 단계를 구비하여 이루어진 입력기호 압축방법.
  2. 제1항에 있어서, 상기 부분 비트 와이즈 엔트로피는 모든 컨텍스트의 부분 엔트로피와 이진 시퀸스의 모든 K비트 위치들에대해 일부 비트 엔트로피들의 합이며, 상기의 일부 비트 엔트로피는 일부 위치 조건 확률과 일부 조건확율의 비에 대한 엔트로피임을 특징으로 하는 입력기호 압축방법.
  3. 제 1항에 있어서, 상기 압축된 부호어열과 상기 재색인 표를 디컴프레서에 전송하는 단계를 더 구비하는 것을 특징으로 하는 입력기호 압축방법.
  4. 제3항에 있어서, 상기 비트열을 해독된 비트열로서 복원하기 위해 상기 전송후에 상기 압축된 부호어열을 복원하는 단계를 더 구비하는 것을 특징으로 하는 입력기호 압축방법.
  5. 제4항에 있어서,
    상기 재색인 표를 역으로 사용하여 상기 해독된 비트열을 디인덱스(deindex)하는 단계를 더 구비하는 것을 특징으로 하는 입력기호 압축방법.
  6. 제1항에 있어서, 일 디컴프레서에 상기 압축된 부호어열을 전송하는 단계와; 상기 전송후 상기 비트열을 해독된 비트 열로 복원하기 위해 상기 압축된 부호어열을 복원하는 단계와; 상기 해독된 비트열을 상기 해독된 비트열중 이전에 변환된 부분으로부터 추출되는 컨텍스트 모델들에 따라 변화하는 단계를 더 구비하는 것을 특징으로 하는 입력기호 압축방법.
  7. 제1항에 있어서, 상기 컨텍스트 모델은 비트 위치 컨텍스트 모델이며 일 비트의 컨텍스트는 이진화내에서 상기 비트의 위치에 의해 결정되는 것을 특징으로 하는 입력기호 압축방법.
  8. 제1항에 있어서, 상기 컨텍스트 모델은 비트 평면 컨텍스트 모델이며, 일 비트의 컨텍스트는 이진화 내에서 상기 비트의 위치와 컨텍스트 기호에 의해 결정되는 것을 특징으로 하는 입력기호 압축방법.
  9. 제1항에 있어서, 상기 컨텍스트 모델은 비트와이즈 의존 컨텍스트 모델이며, 일비트의 컨텍스트는 상기 비트의 이진화에 대해 전처리된 비트들에 의해 결정되는 것을 특징으로 하는 입력기호 압축방법.
  10. 제1항에 있어서, 상기 컨텍스트 모델은 첫째의 마르코프(Markov)비트와이즈 의존 텍스트 모델이며, 일 비트의 컨텍스트는 상기 비트의 이진화에 대해 전처리된 비트들에 의해 결정되는 것을 특징으로 하는 입력기호 압축방법.
  11. 제1항에 있어서, 상기 컨텍스트 모델은 혼합된 컨텍스트 모델이며, 일비트의 컨텍스트는 상기 비트 이진화 과정의 전처리된 비트들과 컨텍스트 기호의 이진화 비트들에 의해 결정되는 것을 특징으로 하는 입력기호 압축방법.
  12. 색채화상의 일화소를 표현하는 M개 기호들의 알파벳으로 부터 선택된 각 입력기호를 상기 입력기호보다 적은 수의 비트들로 표현된 상기 입력기호로 해독될수 있는 부호어들로 압축하는 방법에 있어서, M개의 입력기호들의 입력열을 판독하는 단계와; 상기 M개의 입력기호들을 이진화된 기호들의 열로 이진화 하는 단계와; 각 비트에 대한 컨텍스트는 상기 각 이진화 된 기호와 컨텍스트 기호내에서 상기 각 비트의 위치에 의해 결정되며, 상기 컨텍스트 기호는 상기 각 이진화된 기호와 다른 기호이고, 상기 각 이진화된 기호에 대해 사전에 정의된 관계에 있는 기호이며, 상기 사전에 정의된 관계는 해독시 상기 각 이진화된 기호가 상기 컨텍스트 기호후에 해독되게 하여 각 이진화된 기호의 상기 각 비트에 대해 컨텍스트를 식별하는 단계와; 상기 컨텍스트들에 대해 이진 엔트로피 코드를 결정하는 단계와; 상기 열의 상기 각 비트의 값과 상기 열의 각 비트의 컨텍스트로 부터 결정되는 상기 이진 엔트로피코드에 따라 이진화된 기호중에서 상기 열의 각 비트를 부호화하는 단계를 구비하는 것을 특징으로 하는 입력기호 압축방법.
  13. 색채화상의 일화소를 표현하는 M개 기호들의 알파벳으로 부터 선택된 각 입력 기호를 상기 입력 기호보다 적은 수의 비트들로 표현되는 상기 입력 기호로 해독될수 있는 부호어들로 압축하는 방법에 있어서, M개의 입력 기호들의 입력열을 판독하는 단계와; 상기 M개의 입력기호들을 이진화된 기호들의 열로 이진화 하는 단계와; 각 비트에 대한 컨텍스트는 상기 각 이진화 된 기호와 컨텍스트 기호의 이진화 비트들에 있어서 상기 각 비트의 위치에 의해 결정되며, 상기 컨텍스트 기호는 상기 각 이진화된 기호와 다른 기호이고, 상기 각 이진화된 기호와 사전에 정의된 관계에 있는 기호이며, 상기 기정의된 관계는 해독시 상기 각 이진화된 기호가 상기 컨텍스트 기호후에 해독되기 위하여 존재되며 각 이진화된 기호의 상기 각 비트에 대해 컨텍스트를 식별하는 단계와; 상기 컨텍스트에 대해 이진 엔트로피 코드를 결정하는 단계와; 상기열의 상기 각 비트값과 상기 열의 각 비트 텍스트로 부터 결정되는 상기 이진 엔트로피 코드에 따라 이진화된 기호들의 상기열의 각 비트를 부호화하는 단계를 구비하여 구성된 입력기호 압축방법.
  14. 색채화상에서 화소값을 표현하고 M개 기호들중 하나의 알파벳으로 부터 선정된 M개의 기호들을 상기 M개 기호들이 추출될 수 있고 압축되기 전보다 적은 비트들로 표현되는 부호어들로 압축시키는 압축기관에 있어서, 상기 입력열에서 기호들의 분포를 결정하는 수단과; M개 기호의 각각에 대하여 M개 기호의 분포에 기초하고 재색인표에 의해 표현되는 이진화를 결정하는 재색인표 발생기와; 상기 재색인 표에 따라 각 M기호를 이진 시퀸스로 이진화하여 색채화상을 표현하는 M개 기호를 이진 비트열로 변환시키는 재색인 수단과; 상기 이진 비트열을 압축하고 그 결과에 따른 부호어열을 출력하는 이진 엔트로피 부호화 컴프레서를 구비하며; 상기 이진화는 이진화된 입력열의 비트와이즈 엔트로피를 최소화하기 위해 선택되는 것을 특징으로 하는 압축기관.
  15. 제 14항에 있어서, 이진화 과정은 모든 가능한 이진화 과정의 비트와이즈 엔트로피 출력에 대하여 국부적으로 최소가 되는 것을 특징으로 하는 압축기관.
  16. 제 14항에 있어서, 상기 이진 시퀸스들은 K가 log2M 이상인 K비트들의 고정된 길이를 가지는 것을 특징으로 하는 압축기관.
  17. 제 14항에 있어서, 상기 이진 엔트로피 부호화 컴프레서는 컨텍스트 모델러, 확률 추정 모듈, 비트 발생기를 구비하는 것을 특징으로 하는 압축기관.
  18. 입력기호들인 컨텍스트 기호들에 의해 제공되는 컨텍스트를 기초로 하여 입력기호들이 부호화 하는 엔트로피 엔코더에 있어서, 입력열 순서로 부터 재배열된 열순서로 입력기호들을 재배열하기 위해 상기 엔트로피 엔코더의 기호 입력에 연결되는 기호 재배열 수단과; 상기 기호 재배열 수단의 출력과 연결되어, 현재 입력기호의 컨텍스트 기호들로 부터 현재 입력기호의 컨텍스트 결정이 필요한 경우 상기 재배열된 열에서 입력기호를 받아 들이고 입력기호들을 저장하는 컨텍스트 모델러와; 주어진 컨텍스트를 발생시키는 상기한 현재 입력 기호의 확률을 측정하기 위한 상기 컨텍스트 모델러로부터 현재의 입력기호와 현재 입력기호의 컨텍스트를 받아 들여 주어진 컨텍스트를 나타내는 현재 입력기호의 확률을 추정하는 확률 추정기와; 상기 확율 추정기에 연결되어, 상기 확률 추정기에 의해 제공되는 확률추정을 기초로 하여 입력기호의 재배열된 열의 압축된 표현인 부호어를 발생하는 비트발생기를 구비하여 구성되며; 상기 기호 재배열수단은 현재 입력기호와 재배열된 열의 현재 입력기호의 컨텍스트 기호들 사이의 재배열된 거리가 현재 입력신호와 입력열의 현재 입력기호의 컨텍스트 기호 사이의 원래 거리보다 크도록 입력기호들을 재배열하는 것을 특징으로 하는 엔트로피 엔코더.
  19. 제18항에 있어서, 현재 입력기호의 컨텍스트를 결정하기 위해 필요에 따라 해독된 입력기호들을 저장하는 이차 컨텍스트 모델러와, 상기 이차 컨텍스트 모델러로부터 상기한 현재 입력기호의 컨텍스트를 입력받는 이차 확률 추정기와, 상기 비트 발생기에 의해 출력된 상기 부호어를 입력받도록 상기 이차 확률 추정기에 의해 제공되는 확률 추정치를 근간으로 상기 부호어들로 부터 기호열을 발생시키는 이차 비트 발생기와, 상기 이차 컨텍스트 모델러의 기호 출력에 연결되고 상기 재배열된 열 배열으로부터 상기 입력 열 배열로 해독된 입력기호를 재배열하여 해독되는 컨텍스트 기호들과 해독되는 현재 입력 기호들 사이의 지연시간을 증가시키는 기호 디오더링 수단으로 이루어진 디코더를 더 구비하는 것을 특징으로 하는 엔트로피 엔코더.
  20. 제19항에 있어서, 상기 부호어를 병렬로 해독하는 수단을 더 구비하며, 상기 증가된 지연은 상기 디코더에 의해 필요한 컨텍스트 기호들을 제공하는 동안 병렬 해독화를 허용할 만큼 충분한 것을 특징으로 하는 엔트로피 엔코더.
  21. 입력비트 열로부터 얻어진 복수의 비트를 병렬로 코딩하는 엔트리피 코더에 있어서, 입력비트의 컨텍스트와 연관된 입력 비트 쌍을 출력하며, 상기 컨텍스트는 전에 입력된 비트들중 적어도 하나의 비트와 입력기호내의 입력비트위치 및 사전에 결정된 컨텍스트 모델에 의해 컨텍스트 모델러와; 상기 컨텍스트 모델러로 부터 상기 쌍으로 이루어진 출력을 입력받도록 연결되어, 상기 컨텍스트 쌍 주어지는 입력 비트들의 확률 추정치들을 근거로 하여 상기 입력비트열의 압축된 표현인 상기 부호어들을 발생시키는 컨텍스트 감지병렬 코더를 구비하여 구성되며; 상기 병렬코더는 입력비트들의 병렬열을 형성하여 N개 비트들을 일련의 비트로 결합시키는 수단과, 상기 군을 이루는 일련의 비트들로 부터 일 입력비트를 처리하는 다수의 N코딩 수단과, 입력 비트열에 대한 입력과 상기 컨텍스트 모델러 사이에 연결되어 일련의 비트에서 일 비트의 컨텍스트가 상기 일련의 비트의 다른 비트와 무관하도록 입력 비트들을 재배열하는 비트 재배열 수단으로 이루어진 것을 특징으로 하는 엔트로피 코더.
  22. 제21항에 있어서, 상기 비트 재배열수단은 상기 입력비트열을 재배열하여 병렬로 처리된 일련의 비트중 두개의 비트가 공통의 컨텍스트를 공유하지 않는 것을 특징으로 하는 엔트로피 코더.
  23. 일 입력비트 열로 부터 얻어지는 다수 비트들을 다수단계의 파이프 라인방식으로 부호화시키는 엔트로피 코더에 있어서, 입력비트를 받아들이고 상기 입력비트와 연관된 컨텍스트를 가진 상기 입력비트의 쌍을 출력하며, 상기 컨텍스트는 적어도 하나의 이전 입력비트, 입력기호내의 입력비트위치 및 미리 설정된 컨텍스트모델에 의해 결정되는 컨텍스트 모델러와; 상기 컨텍스트 모델로 부터 상기 쌍으로 이루어진 출력을 입력받도록 연결되어, 상기 컨텍스트 쌍 주어지는 입력 비트들의 확률 추정치들을 근거로 하여 상기 입력비트열의 압축된 표현인 상기 부호어들을 발생시키며, 상기 컨텍스트모델러에 의해 출력된 입력비트를 처리하는 입력단과, 파이프라인 방법에 의해 적어도 하나의 단이 상기 입력비트의 쌍으로 이루어진 컨텍스트에 기초하여 입력비트를 처리하는 컨텍스트 감지단인 다른 단과 연결되어 입력단의 출력을 처리하는 복수의 중간단과, 상기 중간다늬 마지막단에 대한 출력으로 이루어진 컨텍스트 감지 파이프라인 코더와; 입력비트열에 대한 입력과 상기 컨텍스트 모델러에 연결되어, 주어진 비트의 컨텍스트가 상기 주어진 비트가 컨텍스트 감지단에서 처리될 때 상기 중간단에서 처리되는 다른 비트와는 무관하게 되도록 입력비트를 재배열하는 비트 재배열수단을 구비하여 구성된 엔트로피 코더.
  24. 제23항에 있어서, 상기 비트 재배열수단은 입력비트 열을 재배열하여 특정시간의 파이프라인에서 두 개의 비트가 공통 컨텍스를 공유하지 않는 것을 특징으로 하는 엔트로피 코더.
KR1019950003580A 1994-02-23 1995-02-23 색채화상의 압축과 그것을 위한 엠개 알파벳의 비트와이즈 코딩을 위한 이진화 장치 및 방법 KR100201918B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US08/200,233 1994-02-23
US08/200,233 US5471207A (en) 1994-02-23 1994-02-23 Compression of palettized images and binarization for bitwise coding of M-ary alphabets therefor
US8/200,233 1994-02-23

Publications (2)

Publication Number Publication Date
KR950026293A KR950026293A (ko) 1995-09-18
KR100201918B1 true KR100201918B1 (ko) 1999-06-15

Family

ID=22740860

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019950003580A KR100201918B1 (ko) 1994-02-23 1995-02-23 색채화상의 압축과 그것을 위한 엠개 알파벳의 비트와이즈 코딩을 위한 이진화 장치 및 방법

Country Status (9)

Country Link
US (1) US5471207A (ko)
KR (1) KR100201918B1 (ko)
CN (2) CN1044183C (ko)
DE (1) DE19506164C2 (ko)
FR (1) FR2716587B1 (ko)
GB (1) GB2286942B (ko)
RU (1) RU2125765C1 (ko)
TW (1) TW255999B (ko)
WO (1) WO1995023457A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101726276B1 (ko) * 2011-02-21 2017-04-17 한국전자통신연구원 병렬 엔트로피 부호화/복호화 방법 및 장치

Families Citing this family (70)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6549666B1 (en) * 1994-09-21 2003-04-15 Ricoh Company, Ltd Reversible embedded wavelet system implementation
US6229927B1 (en) * 1994-09-21 2001-05-08 Ricoh Company, Ltd. Reversible embedded wavelet system implementation
US5689589A (en) * 1994-12-01 1997-11-18 Ricoh Company Ltd. Data compression for palettized video images
US5659631A (en) * 1995-02-21 1997-08-19 Ricoh Company, Ltd. Data compression for indexed color image data
JP3364074B2 (ja) * 1995-06-05 2003-01-08 株式会社リコー ビットプレーン符号化装置
US5710562A (en) * 1995-08-31 1998-01-20 Ricoh Company Ltd. Method and apparatus for compressing arbitrary data
DE19538310A1 (de) * 1995-10-14 1997-04-17 Sel Alcatel Ag Vorrichtung zum zeitlichen Komprimieren von Signalen
US5708431A (en) * 1995-11-14 1998-01-13 Lucent Technologies Inc. Method for compression coding of potentially unbounded integers
JP2840589B2 (ja) 1996-02-09 1998-12-24 富士通株式会社 データ圧縮装置及びデータ復元装置
US6037982A (en) * 1996-03-28 2000-03-14 Intel Corporation Multi-pass video compression
KR100313290B1 (ko) * 1996-04-18 2002-02-28 쥬리 페트로비치 밀토 이진코드압축과복원방법병렬압축과복원프로세서
US5815097A (en) * 1996-05-23 1998-09-29 Ricoh Co. Ltd. Method and apparatus for spatially embedded coding
US6188795B1 (en) * 1996-06-13 2001-02-13 Dublin City University Data compression
US6028963A (en) * 1996-06-17 2000-02-22 Canon Kabushiki Kaisha Image encoding based on judgement on prediction error
KR100422935B1 (ko) 1996-07-31 2004-03-12 마츠시타 덴끼 산교 가부시키가이샤 화상 부호화장치, 화상 복호화장치, 화상 부호화방법, 화상 복호화방법 및 매체
US6094453A (en) 1996-10-11 2000-07-25 Digital Accelerator Corporation Digital data compression with quad-tree coding of header file
US5963716A (en) * 1996-12-02 1999-10-05 Hewlett-Packard Company Bi-directional data stream decompression
US5808572A (en) * 1997-05-22 1998-09-15 National Science Council Method and apparatus for finite-length arithmetic coding
US6757436B2 (en) * 1997-06-19 2004-06-29 Electroncs For Imaging, Inc. Methods and apparatus for data compression based on modeling schemes
GB2327003A (en) * 1997-07-04 1999-01-06 Secr Defence Image data encoding system
US5990864A (en) * 1998-01-12 1999-11-23 Autodesk, Inc. Converting color images to an arbitrary palette
GB2333412B (en) * 1998-01-20 2002-05-15 Daewoo Electronics Co Ltd Context-based arithmetic encoding/decoding apparatus
US6038346A (en) * 1998-01-29 2000-03-14 Seiko Espoo Corporation Runs of adaptive pixel patterns (RAPP) for lossless image compression
FR2774542B1 (fr) * 1998-01-30 2001-12-14 Daewoo Electronics Co Ltd Procede et appareil pour le codage/decodage arithmetiques a base du contexte
KR100281321B1 (ko) * 1998-03-26 2001-02-01 전주범 적응적인 산술 부호화 및 그 복호화 방법
US6449394B1 (en) 1999-07-09 2002-09-10 Sarnoff Corporation Packing variable-length code bits at fixed positions
US6522783B1 (en) 1999-11-23 2003-02-18 Sharp Laboratories Of America, Inc. Re-indexing for efficient compression of palettized images
US7212677B2 (en) * 2000-01-11 2007-05-01 Minolta Co., Ltd. Coder, coding method, program, and image forming apparatus for improving image data compression ratio
DE10003166A1 (de) * 2000-01-25 2001-07-26 Ingo Krumpholz Waringsche Datenspeicherung
US6492916B1 (en) * 2001-03-30 2002-12-10 Ricoh Co., Ltd. Method and apparatus for generating multiple selectable contexts
US7382878B2 (en) * 2001-06-22 2008-06-03 Uponus Technologies, Llc System and method for data encryption
US20040101142A1 (en) * 2001-07-05 2004-05-27 Nasypny Vladimir Vladimirovich Method and system for an integrated protection system of data distributed processing in computer networks and system for carrying out said method
GB2381606A (en) * 2001-10-31 2003-05-07 Hewlett Packard Co Data compression, storage and analysis
EP1322117A1 (fr) * 2001-12-06 2003-06-25 Koninklijke Philips Electronics N.V. Dispositif de codage/décodage arithmétique
DE10204617B4 (de) * 2002-02-05 2005-02-03 Siemens Ag Verfahren und Vorrichtungen zur Kompression und Dekompression eines Videodatenstroms
US6717927B2 (en) * 2002-04-05 2004-04-06 Interdigital Technology Corporation System for efficient recovery of node B buffered data following serving high speed downlink shared channel cell change
US9577667B2 (en) 2002-04-23 2017-02-21 Ntt Docomo, Inc. System and method for arithmetic encoding and decoding
DK2312498T3 (en) * 2002-04-23 2015-11-16 Ntt Docomo Inc System and method for arithmetic coding and decoding
JP2003319391A (ja) * 2002-04-26 2003-11-07 Sony Corp 符号化装置および方法、復号装置および方法、記録媒体、並びにプログラム
JP3961870B2 (ja) * 2002-04-30 2007-08-22 株式会社リコー 画像処理方法、画像処理装置、及び画像処理プログラム
US6744387B2 (en) * 2002-07-10 2004-06-01 Lsi Logic Corporation Method and system for symbol binarization
US7706405B2 (en) * 2002-09-12 2010-04-27 Interdigital Technology Corporation System for efficient recovery of Node-B buffered data following MAC layer reset
US6850175B1 (en) * 2003-09-18 2005-02-01 Ntt Docomo, Inc. Method and apparatus for arithmetic coding
US6906647B2 (en) 2002-09-20 2005-06-14 Ntt Docomo, Inc. Method and apparatus for arithmetic coding, including probability estimation state table creation
US20040101205A1 (en) * 2002-11-27 2004-05-27 General Electric Company Position coding system and method
US6900748B2 (en) * 2003-07-17 2005-05-31 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Method and apparatus for binarization and arithmetic coding of a data value
US7379608B2 (en) * 2003-12-04 2008-05-27 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung, E.V. Arithmetic coding for transforming video and picture data units
US7599435B2 (en) * 2004-01-30 2009-10-06 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Video frame encoding and decoding
US7586924B2 (en) 2004-02-27 2009-09-08 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Apparatus and method for coding an information signal into a data stream, converting the data stream and decoding the data stream
KR100609697B1 (ko) * 2004-06-02 2006-08-08 한국전자통신연구원 이득 고정형 광증폭기를 이용한 광 선로 감시 시스템
US7053803B1 (en) * 2005-01-31 2006-05-30 Hewlett Packard Development Company, L.P. Data compression
WO2007106980A1 (en) * 2006-03-17 2007-09-27 Nortel Networks Limited Closed-loop mimo systems and methods
KR101010938B1 (ko) * 2006-11-14 2011-01-25 니폰덴신뎅와 가부시키가이샤 화상 신호 부호화 방법 및 복호 방법, 정보원 부호화 및 복호 방법, 이들의 장치 및 이들의 프로그램을 기록한 기억 매체
EP2096439A4 (en) * 2006-12-21 2011-01-05 Ajinomoto Kk METHOD, APPARATUS, METHOD, SYSTEM AND SOFTWARE FOR EVALUATING COLORECTAL CANCER, AND RECORDING MEDIUM
US9467699B2 (en) * 2008-12-03 2016-10-11 Hfi Innovation Inc. Method for performing parallel coding with ordered entropy slices, and associated apparatus
MX2011010334A (es) * 2009-04-03 2012-01-12 I Ces Innovative Compression Engineering Solutions Metodo para procesar un archivo digital notablemente del tipo de imagen, video y/o audio.
WO2011129774A1 (en) * 2010-04-15 2011-10-20 Agency For Science, Technology And Research Probability table generator, encoder and decoder
WO2011130854A1 (en) * 2010-04-19 2011-10-27 Research In Motion Limited Methods and devices for reordered parallel entropy coding and decoding
US8761240B2 (en) * 2010-07-13 2014-06-24 Blackberry Limited Methods and devices for data compression using context-based coding order
CN103329532B (zh) 2011-03-10 2016-10-26 日本电信电话株式会社 量子化控制装置和方法以及量子化控制程序
RU2452026C1 (ru) * 2011-06-14 2012-05-27 Борис Иванович Волков Способ оцифровывания изображения и устройство его осуществления
US8933826B2 (en) 2013-03-01 2015-01-13 Gurulogic Microsystems Oy Encoder apparatus, decoder apparatus and method
US8754791B1 (en) * 2013-03-01 2014-06-17 Gurulogic Microsystems Oy Entropy modifier and method
GB2526337A (en) * 2014-05-21 2015-11-25 Canon Kk Method and apparatus for syntax element encoding in video coding and decoding
US9877029B2 (en) * 2014-10-07 2018-01-23 Qualcomm Incorporated Palette index binarization for palette-based video coding
US10448058B2 (en) * 2015-05-21 2019-10-15 Qualcomm Incorporated Grouping palette index at the end and index coding using palette size and run value
US9673836B1 (en) * 2016-09-23 2017-06-06 International Business Machines Corporation System level testing of entropy encoding
US10687062B1 (en) * 2019-02-22 2020-06-16 Google Llc Compression across multiple images
CN111049527B (zh) * 2019-12-23 2023-03-17 云南大学 一种图像编码解码方法
US11728826B2 (en) * 2021-05-24 2023-08-15 Google Llc Compression and decompression in hardware for data processing

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0079442B1 (en) * 1981-11-09 1988-07-27 International Business Machines Corporation Data translation apparatus translating between raw and compression encoded data forms
US4870695A (en) * 1987-03-20 1989-09-26 International Business Machines Corporation Compression and de-compression of column-interlaced, row-interlaced graylevel digital images
US5095374A (en) * 1989-10-10 1992-03-10 Unisys Corporation Method and apparatus for lossless compression and decompression of image data
US4973961A (en) * 1990-02-12 1990-11-27 At&T Bell Laboratories Method and apparatus for carry-over control in arithmetic entropy coding
US5349348A (en) * 1991-08-15 1994-09-20 International Business Machines Corporation Multi-mode data stream generator
JP3108479B2 (ja) * 1991-08-28 2000-11-13 株式会社リコー 符号化復号化方法およびその装置
EP0562672A3 (en) * 1992-03-22 1994-07-13 Igp Res & Dev Ltd Process of picture representation by data compression
EP0574746A1 (en) * 1992-06-19 1993-12-22 Intel Corporation Method and apparatus for real time compression and decompression of a digital motion video signal using a fixed Huffman table
US5272478A (en) * 1992-08-17 1993-12-21 Ricoh Corporation Method and apparatus for entropy coding
US5381145A (en) * 1993-02-10 1995-01-10 Ricoh Corporation Method and apparatus for parallel decoding and encoding of data
US5583500A (en) * 1993-02-10 1996-12-10 Ricoh Corporation Method and apparatus for parallel encoding and decoding of data

Cited By (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101726276B1 (ko) * 2011-02-21 2017-04-17 한국전자통신연구원 병렬 엔트로피 부호화/복호화 방법 및 장치
KR101726274B1 (ko) * 2011-02-21 2017-04-18 한국전자통신연구원 병렬 엔트로피 부호화/복호화 방법 및 장치
KR101797055B1 (ko) * 2011-02-21 2017-11-16 한국전자통신연구원 병렬 엔트로피 부호화/복호화 방법 및 장치
KR20180095777A (ko) * 2011-02-21 2018-08-28 한국전자통신연구원 병렬 엔트로피 부호화/복호화 방법 및 장치
KR101894407B1 (ko) * 2011-02-21 2018-09-05 한국전자통신연구원 병렬 엔트로피 부호화/복호화 방법 및 장치
KR20180099596A (ko) * 2011-02-21 2018-09-05 한국전자통신연구원 병렬 엔트로피 부호화/복호화 방법 및 장치
KR20190047673A (ko) * 2011-02-21 2019-05-08 한국전자통신연구원 병렬 엔트로피 부호화/복호화 방법 및 장치
KR20190047672A (ko) * 2011-02-21 2019-05-08 한국전자통신연구원 병렬 엔트로피 부호화/복호화 방법 및 장치
KR20190047674A (ko) * 2011-02-21 2019-05-08 한국전자통신연구원 병렬 엔트로피 부호화/복호화 방법 및 장치
KR101975254B1 (ko) * 2011-02-21 2019-05-08 한국전자통신연구원 병렬 엔트로피 부호화/복호화 방법 및 장치
KR102071666B1 (ko) * 2011-02-21 2020-01-31 한국전자통신연구원 병렬 엔트로피 부호화/복호화 방법 및 장치
KR102071665B1 (ko) * 2011-02-21 2020-01-31 한국전자통신연구원 병렬 엔트로피 부호화/복호화 방법 및 장치
KR102071667B1 (ko) * 2011-02-21 2020-01-31 한국전자통신연구원 병렬 엔트로피 부호화/복호화 방법 및 장치
KR20200012004A (ko) * 2011-02-21 2020-02-04 한국전자통신연구원 병렬 엔트로피 부호화/복호화 방법 및 장치
KR102171380B1 (ko) 2011-02-21 2020-10-29 한국전자통신연구원 병렬 엔트로피 부호화/복호화 방법 및 장치
KR20200126352A (ko) * 2011-02-21 2020-11-06 한국전자통신연구원 병렬 엔트로피 부호화/복호화 방법 및 장치
KR102275730B1 (ko) * 2011-02-21 2021-07-12 한국전자통신연구원 병렬 엔트로피 부호화/복호화 방법 및 장치
KR20210088479A (ko) * 2011-02-21 2021-07-14 한국전자통신연구원 병렬 엔트로피 부호화/복호화 방법 및 장치
KR102363426B1 (ko) * 2011-02-21 2022-02-16 한국전자통신연구원 병렬 엔트로피 부호화/복호화 방법 및 장치
KR20220026550A (ko) * 2011-02-21 2022-03-04 한국전자통신연구원 병렬 엔트로피 부호화/복호화 방법 및 장치
KR102449190B1 (ko) * 2011-02-21 2022-09-30 한국전자통신연구원 병렬 엔트로피 부호화/복호화 방법 및 장치
KR20220136969A (ko) * 2011-02-21 2022-10-11 한국전자통신연구원 병렬 엔트로피 부호화/복호화 방법 및 장치
KR102486026B1 (ko) 2011-02-21 2023-01-10 한국전자통신연구원 병렬 엔트로피 부호화/복호화 방법 및 장치

Also Published As

Publication number Publication date
DE19506164A1 (de) 1995-08-31
FR2716587B1 (fr) 1998-12-18
RU95102477A (ru) 1996-12-27
TW255999B (ko) 1995-09-01
US5471207A (en) 1995-11-28
GB2286942A (en) 1995-08-30
WO1995023457A1 (en) 1995-08-31
CN1223502A (zh) 1999-07-21
CN1139188C (zh) 2004-02-18
DE19506164C2 (de) 1998-04-16
CN1117222A (zh) 1996-02-21
CN1044183C (zh) 1999-07-14
KR950026293A (ko) 1995-09-18
RU2125765C1 (ru) 1999-01-27
GB2286942B (en) 1998-07-15
GB9503417D0 (en) 1995-04-12
FR2716587A1 (fr) 1995-08-25

Similar Documents

Publication Publication Date Title
KR100201918B1 (ko) 색채화상의 압축과 그것을 위한 엠개 알파벳의 비트와이즈 코딩을 위한 이진화 장치 및 방법
Babu et al. DCT based Enhanced Tchebichef Moment using Huffman Encoding Algorithm (ETMH)
US5818877A (en) Method for reducing storage requirements for grouped data values
Salomon Data compression
US5903676A (en) Context-based, adaptive, lossless image codec
KR100554805B1 (ko) 이미지 압축 시스템 및 방법
US4870497A (en) Progressive transmission of high resolution two-tone facsimile images
US7415154B2 (en) Compression of palettized color images with variable length color codes
EP0030437B1 (en) Method and apparatus for compression and decompression of digital image data
US6535642B1 (en) Approximate string matching system and process for lossless data compression
JPH05300382A (ja) ビットプレーン符号化方法及び装置
US20060067582A1 (en) Progressive JPEG decoding system
KR900701129A (ko) 디지탈 칼라 비디오 데이타를 압축 및 감압하는 비디오 원거리 통신 시스템 및 방법
US4870695A (en) Compression and de-compression of column-interlaced, row-interlaced graylevel digital images
US5509088A (en) Method for converting CCITT compressed data using a balanced tree
US6587588B1 (en) Progressive image decoder for wavelet encoded images in compressed files and method of operation
KR20200024154A (ko) 디지털 데이터 압축을 위한 방법 및 디바이스
US7286264B2 (en) None-of-the-above digital halftone compression and decompression
EP0283798A2 (en) Compression and decompression of column-interlaced, row-interlaced graylevel digital images
GB2319689A (en) An entropy encoder using context modelling with data reordering
KR100412176B1 (ko) 문자와 이미지가 포함된 문서의 압축, 복원 시스템 및방법
JPH05151349A (ja) 画像データ圧縮方法および符号化回路
Sayood Data Compression.
JP2755464B2 (ja) 画像データ圧縮方式
JPH0621828A (ja) ベクトル量子化復号化器

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: 20070313

Year of fee payment: 9

LAPS Lapse due to unpaid annual fee