KR20010045329A - 비트 오류에 견실한 산술 부호화/복호화 장치 및 그 방법 - Google Patents

비트 오류에 견실한 산술 부호화/복호화 장치 및 그 방법 Download PDF

Info

Publication number
KR20010045329A
KR20010045329A KR1019990048589A KR19990048589A KR20010045329A KR 20010045329 A KR20010045329 A KR 20010045329A KR 1019990048589 A KR1019990048589 A KR 1019990048589A KR 19990048589 A KR19990048589 A KR 19990048589A KR 20010045329 A KR20010045329 A KR 20010045329A
Authority
KR
South Korea
Prior art keywords
segment
code
length
code flow
arithmetic
Prior art date
Application number
KR1019990048589A
Other languages
English (en)
Other versions
KR100316785B1 (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 KR1019990048589A priority Critical patent/KR100316785B1/ko
Priority to US09/573,156 priority patent/US6557137B1/en
Priority to DE10024444A priority patent/DE10024444A1/de
Priority to JP2000197651A priority patent/JP2001144625A/ja
Publication of KR20010045329A publication Critical patent/KR20010045329A/ko
Application granted granted Critical
Publication of KR100316785B1 publication Critical patent/KR100316785B1/ko

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/17Burst error correction, e.g. error trapping, Fire codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/63Joint error correction and other techniques
    • H03M13/6312Error control coding in combination with data compression
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/005Statistical coding, e.g. Huffman, run length coding
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/07Arithmetic codes
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Multimedia (AREA)
  • General Physics & Mathematics (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

본 발명은 산술 부호화를 이용한 데이터의 압축/복원에 관련된 것으로, 본 발명의 기본 개념은 모든 부호가 연결된 1 개의 분절로 구성하지 않고, 서로 독립적인 여러 개의 분절들로 나누어 구성함으로써 부호 사이에서의 비트 오류 전파를 줄이는 것이다.
본 발명에 의한 비트오류에 견실한 산술 부호화 장치는 입력된 이진 기호들을 다수의 분절들로 분할하고, 분할된 각 분절에 대응한 부호 흐름의 길이를 결정하는 기호 분배부; 각 분절에 대하여, 분할된 이진 기호들을 각 분절에 대응한 부호 흐름의 길이 만큼 산술부호화하는 1차 부호화부; 1차 부호화부에 의해 부호화되지 않은 이진 기호들을 수집하는 기호 수집부; 1차 부호화부에 의해 산술부호화된 분절들 중 각 분절에 대응하는 부호 흐름의 길이 만큼 부호화되지 않은 분절들에 대하여, 각각 기호 수집부에 저장된 부호화되지 않은 이진 기호들을 각 분절에 대응하는 부호 흐름의 길이 만큼 산술부호화하여 다수의 부호 흐름들을 생성하는 2차 부호화부; 및 다수의 부호 흐름들을 다중화하여 하나의 부호 흐름을 생성하는 부호 다중화부를 포함한다.
본 발명에 의하면 기존의 압축만을 고려한 산술 부호화 방식에 비해서 압축 효율은 비슷하면서 좀 더 비트 오류에 견실한 장점이 있다.

Description

비트 오류에 견실한 산술 부호화/복호화 장치 및 그 방법{Bit-error robust arithmetic coding/decoding apparatus and method thereof}
본 발명은 산술 부호화를 이용한 데이터의 압축/복원에 관련된 것이다.
산술 부호화는 디지탈 데이터에 대한 압축/복원 기술들 중의 하나이다. 이와 같은 산술 부호화 기술에 의해, 실제로 거의 이론적인 엔트로피(entropy)에 가까운 압축 효율을 얻을 수 있다. 산술 부호화 기술은 1987년 6월에 발간된 “Communcation of the ACM " volume 30 Number 6의 520-540쪽에 실린 〈Arithmetic Coding for Data Compression〉에 기술되어 있다.
산술부호화 기술을 이용해서 디지털 데이터를 압축된 부호군(符號群, codeword)으로 만들게 된다. 따라서 좀 더 작은 양의 데이터를 가지고 좀 더 많은 원래의 디지털 데이터를 표현할 수 있게 된다. 그런데, 이 부호군에 비트오류가 발생한다면 잘못된 디지털 데이터들이 복호화(復號化, decoding)되게 된다. 또한, 산술 부호화 기술을 이용해서 만들어진 부호군들은 모두 연결되어 있으므로, 하나의 부호군에 발생된 비트오류는 그 다음의 모든 부호군에 전파된다.
일반적으로, 잘못된 디지털 데이터가 복원되면 심각한 문제를 야기될 수도 있다. 음성이나 오디오 신호를 전송하는 경우에는 전송 데이터에 오류가 발생할 경우에는 사람의 귀에 심하게 거슬리는 소리가 중간에 삽입되고, 디지탈 영상 신호를 전송하는 경우에는 심하게 훼손된 영상이 복원될 수 있다. 전송 데이터에 이와 같은 비트오류가 발생할 경우를 대비하여, 압축된 데이터를 전송하는 채널은 비트오류의 발생 여부를 알 수 있도록 하는 부가적인 부호화, 발생한 비트오류를 정정할 수 있도록 하는 오류 정정 부호화 또는 오류가 발생한 데이터의 재전송 등의 부가적인 처리를 수행하는 것이 필요하다.
이런 문제점을 해결하기 위하여, 전송 데이터를 모든 부호군들이 연결된 1개의 분절(segment)로 구성하지 않고 여러 개의 독립적인 분절들로 나누어 구성한다면, 적어도 분절간의 비트오류의 전파를 막을 수 있다. 이때, 분절의 수가 증가할수록 전송 데이터는 비트오류에 좀 더 견실해진다. 하지만, 각 분절에 대하여 기존의 산술 부호화 방식을 그대로 사용한다면, 각 분절이 압축된 데이터의 크기가 가변적이므로, 압축된 데이터가 결합된 전송 데이터에서 각 분절의 정확한 경계를 알 수 없게 된다.
이 문제를 해결하기 위하여, 각 분절이 압축된 부호들을 각기 다른 패킷(Packet)으로 구성하여 전송할 수 있다. 하지만, 분절의 수를 늘리면 늘릴수록 각 분절에 대하여 생성된 부호들의 크기는 작아지고, 부호들을 전송하는 패킷의 수는 증가하기 때문에, 실제 압축된 정보를 전송하는데 필요한 부하(負荷, overhead)가 상대적으로 증가해서 전송효율이 떨어지게 된다.
본 발명은 기존의 산술 부호화 방식에 비해 추가적인 복잡도의 증가없이 여러 분절에서 정해진 크기로 부호를 만들어 압축 기능 뿐 아니라 비트 오류에 대한 내성을 추가한 산술 부호화/복호화 장치, 산술 부호화/복호화 방법을 제공함을 그 목적으로 한다.
도 1은 본 발명에 의한 비트 오류에 견실한 산술부호화 장치의 구성을 도시한 블록도이다.
도 2는 본 발명에 의한 비트 오류에 견실한 산술복호화 장치의 구성을 도시한 블록도이다.
도 3은 일반적인 데이터의 부호화/복호화 과정을 도시한 흐름도이다.
도 4는 본 발명에 의한 기호의 부호화/복호화 과정을 도시한 흐름도이다.
도 5는 도 4의 1차 부호화 과정을 보다 상세히 도시한 흐름도이다.
도 6은 도 4의 2차 부호화 과정을 보다 상세히 도시한 흐름도이다.
도 7은 도 5의 부호화 초기화 과정을 보다 상세히 도시한 흐름도이다.
도 8은 도 5 및 도 6의 기호 부호화 과정을 보다 상세히 도시한 흐름도이다.
도 9는 도 6의 마무리 과정을 보다 상세히 설명한 흐름도이다.
도 10은 도 4의 1차 복호화 과정을 보다 상세히 도시한 흐름도이다.
도 11은 도 4의 2차 복호화 과정을 보다 상세히 도시한 흐름도이다.
도 12는 도 10의 복호화 초기화 과정을 보다 상세히 도시한 흐름도이다.
도 13은 도 10 및 도 11의 부호 복호화 과정을 보다 상세히 도시한 흐름도이다.
도 14는 도 13의 기호 검색 과정을 보다 상세히 도시한 흐름도이다.
도 15는 도 13의 부호 길이 추정 과정을 보다 상세히 도시한 흐름도이다.
도 16은 본 발명에 의한 비트 오류에 견실한 부호 흐름의 구성을 도시한 것이다.
상기의 목적을 달성하기 위하여, 본 발명에 의한 입력된 이진 기호들을 압축하여 부호 흐름을 생성하는 비트오류에 견실한 산술 부호화 장치는 입력된 이진 기호들을 다수의 분절들로 분할하고, 분할된 각 분절에 대응한 부호 흐름의 길이를 결정하는 기호 분배부; 각 분절에 대하여, 분할된 이진 기호들을 각 분절에 대응한 부호 흐름의 길이 만큼 산술부호화하는 1차 부호화부; 상기 1차 부호화부에 의해 부호화되지 않은 이진 기호들을 수집하는 기호 수집부; 상기 1차 부호화부에 의해 산술부호화된 분절들 중 각 분절에 대응하는 부호 흐름의 길이 만큼 부호화되지 않은 분절들에 대하여, 각각 상기 기호 수집부에 저장된 부호화되지 않은 이진 기호들을 각 분절에 대응하는 부호 흐름의 길이 만큼 산술부호화하여 다수의 부호 흐름들을 생성하는 2차 부호화부; 및 상기 다수의 부호 흐름들을 다중화하여 하나의 부호 흐름을 생성하는 부호 다중화부를 포함한다.
상기 산술 부호화 장치에서 상기 1차 부호화부는 상기 다수의 분절들에 각각 대응하며 상호 독립적으로 동작하는 다수의 1차 부호화기들로 구성되고, 각 1차 부호화기는 대응하는 분절의 누적 부호 흐름 추정길이가 그 분절에 대응한 부호 흐름의 길이와 같거나, 그 분절에 할당된 이진 기호들을 모두 부호화할 때까지 산술부호화하는 것이고, 상기 2차 부호화부는 상기 다수의 분절들에 각각 대응하며 순차적으로 동작하는 다수의 2차 부호화기들로 구성되고, 각 2차 부호화기는 대응하는 1차 부호화기로부터 대응하는 분절의 누적 부호 흐름 추정길이를 전달받고, 그 누적 부호 흐름 추정길이가 그 분절에 대응한 부호 흐름의 길이와 같은 때까지 산술부호화하는 것을 특징으로 한다.
상기의 다른 목적을 달성하기 위하여, 산술 부호화된 부호 흐름을 복호화하여 이진 기호의 데이터 스트림을 생성하는 비트오류에 견실한 산술 복호화 장치는 다수의 분절들에 대응한 부호 흐름의 길이들을 결정하고, 입력된 부호 흐름을 다수의 분절들로 분할하는 코드 분배부; 각 분절에 대하여, 분할된 부호 흐름을 각 분절에 대응한 부호 흐름의 길이 만큼 산술복호화하는 1차 복호화부; 상기 1차 복호화부에 의해 복호화되지 않은 부호들을 수집하는 부호 수집부; 상기 1차 복호화부에 의해 산술복호화된 분절들 중 각 분절에 대응하는 부호 흐름의 길이 만큼 복호화되지 않은 분절들에 대하여, 각각 상기 부호 수집부에 저장된 복호화되지 않은 부호들을 각 분절에 대응하는 부호 흐름의 길이 만큼 산술복호화하여 다수의 이진 기호들의 데이터 스트림을 생성하는 2차 복호화부; 및 상기 다수의 이진 기호들의 데이터 스트림을 다중화하여 하나의 이진 기호들의 데이터 스트림을 생성하는 기호 다중화부를 포함함을 특징으로 한다.
상기 산술 복호화 장치에서 상기 1차 복호화부는 상기 다수의 분절들에 각각 대응하며 상호 독립적으로 동작하는 다수의 1차 복호화기들로 구성되고, 각 1차 복호화기는 대응하는 분절의 누적 부호 흐름 추정길이가 그 분절에 대응한 부호 흐름의 길이와 같거나, 그 분절에 할당된 부호들을 모두 복호화할 때까지 산술복호화하는 것이고, 상기 2차 복호화부는 상기 다수의 분절들에 각각 대응하며 순차적으로 동작하는 다수의 2차 복호화기들로 구성되고, 각 2차 복호화기는 대응하는 1차 복호화기로부터 대응하는 분절의 누적 부호 흐름 추정길이를 전달받고, 그 누적 부호 흐름 추정길이가 그 분절에 대응한 부호 흐름의 길이와 같은 때까지 산술복호화하는 것을 특징으로 한다.
상기의 또 다른 목적을 달성하기 위하여, 본 발명에 의한 입력된 이진 기호들을 압축하여 부호 흐름을 생성하는 비트오류에 견실한 산술 부호화 방법은 (a) 입력된 이진 기호들을 다수의 분절들로 분할하고, 분할된 각 분절에 대응한 부호 흐름의 길이를 결정하는 단계; (b) 각 분절에 대하여, 분할된 이진 기호들을 각 분절에 대응한 부호 흐름의 길이 만큼 산술부호화하는 단계; (c) 상기 (b) 단계에서 부호화되지 않은 이진 기호들을 수집하는 단계; (d) 상기 (b) 단계에서 산술부호화된 분절들 중 각 분절에 대응하는 부호 흐름의 길이 만큼 부호화되지 않은 분절들에 대하여, 각각 상기 (c) 단계에서 수집된 부호화되지 않은 이진 기호들을 각 분절에 대응하는 부호 흐름의 길이 만큼 산술부호화하여 다수의 부호 흐름들을 생성하는 단계; 및 (e) 상기 다수의 부호 흐름들을 다중화하여 하나의 부호 흐름을 생성하는 단계를 포함한다.
상기의 또 다른 목적을 달성하기 위하여 본 발명에 의한 산술 부호화된 부호 흐름을 복호화하여 이진 기호의 데이터 스트림을 생성하는 비트오류에 견실한 산술 복호화 방법은 (a) 다수의 분절들에 대응한 부호 흐름의 길이들을 결정하고, 입력된 부호 흐름을 다수의 분절들로 분할하는 단계; (b) 각 분절에 대하여, 분할된 부호 흐름을 각 분절에 대응한 부호 흐름의 길이 만큼 산술복호화하는 단계; (c) 상기 (b) 단계에서 복호화되지 않은 부호들을 수집하는 단계; (d) 상기 (b) 단계에서 산술복호화된 분절들 중 각 분절에 대응하는 부호 흐름의 길이 만큼 복호화되지 않은 분절들에 대하여, 각각 상기 (c) 단계에서 수집된 복호화되지 않은 부호들을 각 분절에 대응하는 부호 흐름의 길이 만큼 산술복호화하여 다수의 이진 기호들의 데이터 스트림을 생성하는 단계; 및 (e) 상기 다수의 이진 기호들의 데이터 스트림을 다중화하여 하나의 이진 기호들의 데이터 스트림을 생성하는 단계를 포함한다.
이하에서 첨부된 도면을 참조하여 본 발명을 상세히 설명한다.
본 발명은 입력된 신호를 비트오류에 강하도록 부호화하는 부호화기과 그 부호화기에 만들어진 부호들을 해석해서 복원된 신호를 만들어 주는 복호화기로 구성되어 있다.
도 1에 도시된 바와 같이, 본 발명에 사용되는 부호화기는 기호 분배부(symbol distribution unit)(110), 각 분절(segment)에 대한 1차 부호화부(1st encoding unit)(120), 기호 수집부(symbol accumulation unit)(130), 아직 부호화되지 않은 기호들에 대한 2차 부호화부(2nd encoding unit)(140) 및 부호 다중화부(code multiplexing unit)(150)를 포함하여 구성된다.
기호 분배부(110)는 입력된 기호(symbol : 압축하고자 하는 디지탈 데이터의 단위)들을 다수의 분절들로 분할하고, 각 분절의 부호화기에서 압축될 부호 흐름의 길이를 결정한다.
1차 부호화부(120)는 기호 분배부(110)에 의해 분할된 각 분절에 할당된 기호들을 압축해서 부호화한다. 1차 부호화부(120)은 각각 대응하는 분절을 병렬적으로 부호화하는 다수의 1차 부호화기들(121, 122, 123 및 124)로 구성되거나, 다수의 분절들을 순차적으로 부호화하는 하나의 1차 부호화기에 의해 구성될 수도 있다. 각 분절에 할당된 기호들을 모두 압축하기 전에 압축된 부호 흐름의 길이가 각 분절에 대응하는 소정의 크기와 같아지거나 커지면, 일단 부호화를 중단하고 2차 부호화 과정으로 넘긴다.
기호 수집부(130)에서는 각 분절의 1차 부호화 과정을 통과한 후 각 분절에서 부호화되지 않은 기호(symbol)들을 모아서 2차 부호화부(140)를 위해 저장한다.
2차 부호화부(140)에서는 1차 부호화부(120)와는 달리 항상 모든 분절에 대하여 순차적으로 부호화하는 과정이 수행된다. 2차 부호화부(140)에서는 1차 부호화 과정에서 대응하는 소정의 크기를 다 채우지 못한 분절들에 대하여 기호 수집부(130)에 저장된 부호화되지 않은 데이터들을 소정의 크기에 맞추어 차례로 부호화하게 된다. 2차 부호화부(140)는 순차적으로 수행되는 다수의 2차 부호화기들(141, 142, 143 및 144)로 구성되거나, 다수의 분절들을 순차적으로 부호화하는 하나의 2차 부호화기에 의해 구성될 수도 있다.
부호 다중화부(150)에서는 2차 부호화부(140)에 의해 생성된 각 분절에 대응한 부호 흐름(code stream)들을 결합해서 하나의 부호 흐름(code stream)으로 만들어 전송단으로 보낸다.
도 2에 도시된 바와 같이, 본 발명에 사용되는 복호화기는 부호 분배부(code distribution unit)(210), 각 분절(segment)에 대한 1차 복호화부(1st deoding unit)(230), 부호 수집부(code accumulation unit)(240), 수집된 부호들에 대한 2차 복호화부(2nd decoding unit)(250) 및 기호 다중화부(symbol multiplexing unit)(260)를 포함하여 구성된다.
부호 분배부(code distribution unit)(210)는 도 1의 기호 분배부(110)와 유사하게 각 분절의 복호화기에서 사용될 압축된 부호(code : 복호화하고자 하는 디지탈 데이터의 단위)의 크기를 결정하여 복호화해야 할 부호들을 다수의 분절들로 나눈다. 즉, 부호 분배부(210)는 각 분절의 복호화기에서 사용될 압축된 부호 흐름의 길이에 따라 부호 흐름을 분할해서 각 분절의 복호화기로 전달한다.
1차 복호화부(230)는 각 분절로 분할된 부호들을 이용하여 각 분절에 할당된 기호들을 복원한다. 할당된 기호들을 모두 복원하기 전에 복원에 사용된 부호 흐름의 길이가 소정의 크기와 같아지면, 복호화를 중단한다.
데이터 수집부(240)에서는 각 분절의 1차 복호화 과정을 통과한 후 각 분절의 아직 복호화가 되지 않고 남아 있는 부호(code)들을 한 곳에 모아서 2차 복호화부에 전달한다.
2차 복호화부(250)에서는 각 분절의 1차 산술복호화 과정을 통과한 후 각 분절의 아직 복호화가 안되고 남아 있는 부호(code)들을 가지고 각 분절의 산술복호화기를 차례로 거치면서 복호화를 하게 된다.
기호 다중화부(260)는 각 분절별로 복호화된 이진 기호들의 데이터 스트림들을 다중화하여 하나의 이진 기호들의 데이터 스트림을 생성한다.
도 1에 도시된 본 발명에 의한 산술 부호화기 및 도 2에 도시된 본 발명에 의한 산술 복호화기는 각각의 기능 블록들이 하드웨어적으로 구성된 ASIC(Application Specific IC)으로 구현될 수 있으며, 또한 범용 컴퓨터 및 그 위에서 동작하는 소프트웨어의 결합으로 구현될 수도 있다는 것을 본 발명의 기술 분야에서 보통의 지식을 가진 자라면 용이하게 알 수 있을 것이다.
이하에서, 본 발명의 동작과정을 상세히 설명한다.
도 3은 산술 부호화/복호화기에서 디지탈 데이터를 압축하고 복원하는 일반적인 과정을 나타낸다. 부호화단에서 입력된 디지털 데이터는 부호화되어 비트흐름(bit-stream)으로 구성된다(300, 310 및 320 단계). 디지탈 데이터를 그에 대한 확률을 가지고 부호화함으로써, 압축된 비트흐름을 원래의 입력 디지털 데이터보다 빨리 전송할 수 있다. 더구나 압축된 비트흐름은 원래의 디지털 데이터보다 훨씬 적은 공간에 저장될 수 있다. 부호화단에서 부호화된 비트흐름은 복호화단으로 전송된다(330 단계). 복호화단에서는 부호화된 비트흐름을 원래의 디지털 데이터로 복원한다(340, 350 및 360 단계). 즉, 복호화단은 디지털 데이터에 대하여 부호화단에서 이루어진 처리들을 제거하게 된다.
도 4에 의하면, 도 1에 도시된 산술 부호화기와 도 2에 도시된 산술 복호화기에 의하여 디지탈 데이터를 비트 오류에 견실하도록 압축하는 과정을 나타낸다.
먼저, 기호 분배부(110)에서 입력된 이진 기호들을 각 분절(segment)로 분할하고, 각 분절의 부호화기에서 압축될 부호 흐름(code stream)의 길이(A_LEN)를 결정한다(400 단계).
기호 분배부(110)에 의해 분할된 기호들은 대응하는 각 분절의 1차 부호화기(121, 122, 123, 124)에 의해 부호화된다(405, 410 단계). 기존의 산술 부호화 방식은 비트 오류에 견실한 구조를 가지도록 하기에는 부적합한 방식을 가지고 있다. 따라서, 본 발명에서는 도 5에 도시된 산술 부호화 방식을 사용한다.
도 5에 의하면, 각 기호들을 부호화하기 전에 각 분절별 1차 부호화기들(121, 122, 123, 124)에 대한 초기화 과정이 필요하다. 이 초기화 과정에서는 실제 부호화 전에 필요한 변수값들을 초기값으로 설정한다(500 단계).
초기화 과정 후, 각 분절에 할당된 기호들을 차례로 산술부호화하여 압축된 부호를 생성한다(510 단계).
산술 부호화 방식에서는 각 기호의 부호들이 연결되어 있으므로, 거의 엔트로피(entropy) 값에 가까운 실수값으로 부호의 길이를 계산해 낼 수 있다. 이와 같이 각 부호의 길이를 정확하게 정수값으로 계산해 낼 수가 없기 때문에, 산술부호화 과정에서 그 길이를 정수값으로 추정한 값, 즉 부호의 추정된 길이(estmated length : est_len)를 계산한다. 이렇게 계산된 각 부호의 추정된 길이(est_len)들을 더해서 압축된 부호 흐름의 누적 부호 흐름 추정길이(cum_est_len)를 구할 수 있다. 이 누적 부호 흐름 추정길이(cum_est_len)와 A_LEN을 비교함으로써 각 부호화기의 부호화 가능성을 판단하게 된다. 즉, 각 1차 부호화기(121, 122, 123, 124)에서는 압축된 부호(code)의 누적 길이가 그 분절에 대하여 미리 결정된 부호 흐름의 길이(A_LEN)과 같아질 때까지 각 분절에 할당된 기호들을 압축한다(530 단계).
각 분절에서 1차 부호화를 통해 압축된 부호의 길이가 A_LEN보다 커지면, 부호화가 끝난 후 각 분절의 부호들을 결합하여 다중화할 때 A_LEN보다 큰 부분은 부호 다중화부에 의해 다중화되어 수신단으로 전송이 되지 않는다. 따라서, 완벽한 복호화가 이루어지지 않는 문제점이 발생하게 된다. 결국, 1차 부호화기(121, 122, 123, 124)에서 만들어진 각 분절의 부호에 대한 누적 길이는 미리 정해진 각 분절의 부호 흐름의 길이(A_LEN)보다 작거나 같아야 한다.
또한, 각 부호화기에서는 할당된 기호들을 모두 부호화할 경우에도 누적된 부호의 길이가 A_LEN보다 작더라도 부호화 과정을 일단 멈추고 다음 2차 부호화기에서 부호화 과정을 계속하게 된다(520 단계).
일반적으로 기호에 대한 확률값에 따라서 압축될 수 있는 최소의 길이가 엔트로피에 의해서 -log2(Prob)가 된다. 만약 -log2(Prob)이 cum_est_len과 A_LEN의 차이(d_len)보다 크다면, 실제 부호화를 했을 때 누적된 부호의 추정 길이가 정해진 길이보다 커지는 경우가 발생한다. 따라서, 이런 경우을 방지하기 위해서는 각 기호들에 대한 확률들은 최소 확률값(Pmin)보다 크거나 같아야 한다. 최소확률값(Pmin)은 cum_est_len과 A_LEN의 차이(d_len)에 따라 수학식 1과 같이 결정된다. 이때, 일반적으로 확률값은 실수값이 아니라 유한한 이진수(RES)의 해상도를 가지는데, 이 RES값보다 d_len이 크거나 같을 경우에는 최소 확률값이 이 해상도보다 커지기 때문에 의미가 없어진다. 따라서, 이 경우의 Pmin은 0이 되다. 결국, 최소 확률값(Pmin)은 d_len과 RES에 따라서 수학식 1과 같이 결정된다.
Pmin = 1/2d_lenif d_len 〈 RES
Pmin = 0 if d_len 〉= RES
이런 제약에 의해서 기호 0의 확률값(Prob[0])이 최소값(Pmin)보다 작아서 최소값(Pmin)으로 대체되면, 전체 확률값들의 합이 1이 되어야 하기 때문에 기호가 1일 때의 확률값(Prob[1])은 (1-Prob[0])이 된다. 마찬가지로 기호 1의 확률값(Prob[1])이 최소값보다 작아서 최소값(Pmin)으로 대체되면, Prob[0]값도 (1-Prob[1])이 된다. 입력 기호에 대한 누적 확률값은 항상 CProb[0] = 0, CProb[1] = Prob[0] 그리고 CProb[2] = 1〈〈RES값으로 설정된다.
1차 부호화부(120)에서 기호들에 대한 산술 부호화가 끝나게 되면, 이어서 2차 부호화부(140)에서 다른 기호들을 부호화하게 된다. 따라서, 마지막으로 1차 부호화기에서 사용된 변수값들을 소정의 장소에 저장해 놓게 된다(540 단계).
다시 도 4에 의하면, 상기한 바와 같이 1차 부호화가 끝나고 나면 각 분절에서의 부호화에 서로 불균일한 상황이 발생된다. 즉, 어떤 분절은 압축된 부호 흐름의 길이가 그 분절에 대하여 정해진 부호 흐름의 길이와 같아져서 1차 부호화를 중단했을 때 부호화가 안된 기호들이 남게 되고, 또 어떤 분절은 그 분절에 할당된 모든 기호들을 부호화했으나 압축된 부호 흐름의 길이가 미리 정해진 부호 흐름의 길이보다 작기 때문에 좀 더 부호화를 할 수 있는 여지를 가지게 된다. 이런 문제점을 해결하기 위해서, 1차 부호화 과정을 거친 후에도 아직 부호화되지 않고 남아있는 기호들을 한 곳에 모두 모은다(415 단계).
이렇게 모아진 기호들을 2차 부호화부(140)에서 부호화하게 된다(420, 425 단계). 이 과정은 도 6에서 보다 상세히 설명된다.
도 6에 의하면, 먼저 도 5의 540 단계에서 저장된 변수값들을 인출한다(600 단계). 각 분절에서 정해진 부호 흐름의 길이보다 각 분절의 누적 부호 흐름의 추정길이가 작을 동안 각 분절에서의 2차 부호화 과정을 계속하게 된다(610, 620 단계). 도 4의 415 단계에서 모아진 기호들을 모두 부호화하면 2차 산술부호화 과정은 종료된다. 이때, 각 분절의 부호화 과정이 독립적이기 때문에 각 분절의 부호화 순서에 구애를 받지 않던 1차 부호화부(120)와는 달리, 2차 부호화부(140)에서는 각 분절의 부호화 과정이 차례로 거치면서 아직 부호화가 안된 기호들을 부호화한다. 이와 같이, 1차 부호화 과정에서 부호화가 되지 않았던 기호들을 다른 분절의 2차 부호화기에서 부호화함으로써 입력 기호들을 모두 부호화할 수가 있게 된다.
누적 부호 흐름의 추정길이가 그 분절에 대하여 미리 정해진 부호 흐름의 길이와 같아져서 부호화가 중단된다 하더라도, 실제적으로 출력된 부호 흐름의 길이는 추정된 길이보다 작다. 따라서, 실제로 복호화기에서 원래의 기호를 복원하기 위해서는 부호화를 마무리하는 과정이 필요하다(630 단계).
다시 도 4에 의하면, 상기한 바와 같이 생성된 각 분절의 부호 흐름들을 부호 다중화부(150)에서 다중화해서 하나의 부호 흐름으로 만들어 수신단으로 전송하게 된다(430 단계).
도 7은 도 5의 부호화 초기화 단계(500 단계)를 보다 상세히 도시한 것이다. 도 7에 의하면, mode를 부호화 유형, L을 전체 확률 구간에서 부호 위치의 하한, R을 부호 위치의 범위, BitsToFollow를 추가로 출력되어 할 비트 수, Half를 전체 확률 구간의 1/2 위치, Q1을 전체 확률 구간의 1/4 위치, Q3을 전체 확률 구간의 3/4 위치와 cum_est_len을 누적 부호 흐름 추정길이로서 산술부호화에 필요한 상태 변수들을 정의할 때, 초기화 과정은
mode = NORMAL
L = 0
R = HALF * 2
BitstoFollow = 0
Half = HALF
Q1 = HALF/2
Q3 = Q1 + HALF
cum_est_len = 1
에 의해 상태 변수들을 초기화한다(700 단계). 여기서, HALF는 일반적인 유형에서의 전체 확률 구간의 1/2 위치로서, 그 값은 확률의 해상도를 RES라 할 때, 1〈〈(RES-1)로 정의된다.
도 8은 도 5의 기호 부호화 단계(510 단계) 및 도 6의 기호 부호화 단계(620 단계)를 보다 상세히 도시한 것이다.
도 8에 의하면, 먼저 부호화하려는 기호에 대한 확률값을 계산한다(800 단계). 그리고 그 확률값에 따라서 먼저 부호 위치의 범위(R)를 줄이고 부호 위치의 하한(L)도 재설정한다(805 단계). 이렇게 재설정된 L값에 따라서 확장하는 부호의 분절을 결정하게 된다. 먼저 L값이 Half보다 크거나 같다면 상위 절반을 확장하게 된다(810, 815 단계). H(=L+R)값이 Half보다 작다면 하위 절반을 확장하게 된다(820, 825 단계). L값이 Q1보다 크거나 같고 H(=L+R)값이 Q3보다 작다면 중간의 절발을 확장하게 된다(830, 835 단계). 이렇게 부호 범위를 확장하고 난 후에는 각 L과 R값을 2배 증가시키고(840 단계), 다시 앞의 확장 과정으로 돌아가는 과정을 반복하게 된다.
참조 번호 810, 820 및 830 단계의 조건들이 하나도 만족하지 않는 경우에는 산술 부호화 과정을 마무리하게 된다. 부호화 모드가 NORMAL일 경우에는 R값이 Half보다 작다면 SCALE_UP 모드로 된다(845, 850, 855 단계). 이 경우에는 관련된 변수들(L, R, Half, Q1, Q3)이 모두 2배 커진다. 그렇지 않고 부호화 모드가 SCALE_UP일 경우에는 R값이 Half보다 크거나 같다면 NORMAl 모드로 반전된다(845, 860, 865 단계). 물론 관련된 변수들(L, R, Half, Q1, Q3)은 모두 값이 반으로 줄어든다.
이하에서 도 8의 각 단계를 보다 상세히 설명한다.
참조 번호 800 단계인 확률값 조정 과정(AdjustProb)에서는 압축된 부호 흐름의 누적 추정길이(cum_est_len)가 각 분절에 대하여 미리 정해진 부호 흐름의 크기(A_LEN)보다 커지지 않도록 하기 위해서 각 기호의 확률값들을 최소값(Pmin)보다 크거나 같도록 제한한다. 여기서 최소값(Pmin)은 수학식 1에 의해 결정된다.
참조 번호 805 단계인 부호 범위 축소 과정(NarrowCodeRange)에서는 이진수로 된 부호 위치의 범위(R)을 확률값의 해상도(RES)만큼 왼쪽으로 이동시키고(shift left), 입력된 기호가 나타내는 누적 확률값을 부호 위치의 범위(R)에 곱한 값을 부호 위치의 하한(L)에 더한다. 다음, 기호의 확률값을 부호 위치의 범위(R)에 곱해줌으로써 부호 위치의 범위를 기호의 확률만큼 줄여주고, 기호를 압축하는데 사용된 부호의 추정 길이(est_len)를 구하기 전에 이 값을 0으로 초기화한다.
참조 번호 815 단계인 상위 절반 확대 과정(ExpandHighHalf)에서는 부호 위치의 하한(L)에서 Half를 빼고, 상위 절반을 확장했기 때문에 1비트의 1값을 부호 흐름에 출력하고, 추가 출력 비트수(BitsToFollow)만큼의 0값을 부호 흐름에 더 출력하고 추가 출력 비트수(BitsToFollow)를 0으로 설정한다.
참조 번호 825 단계인 하위 절반 확대 과정(ExpandLowHalf)에서는 부호 위치의 하한(L)은 변함이 없으며, 1비트의 0값을 부호 흐름에 출력하고, 추가 출력 비트수(BitsToFollow)만큼의 1값을 부호 흐름에 더 출력하고 추가 출력 비트수 (BitsToFollow)를 0으로 설정한다.
참조 번호 835 단계인 중간 절반 확대 과정(ExpandMidHalf)에서는 부호 위치의 하한(L)에서 Q1을 빼고, 중간 절반을 확장할 경우에는 출력할 부호가 0인지 1인지 정해지지 않기 때문에 출력을 보류하고 대신에 추가 출력 비트수 (BitsToFollow)를 1만큼 증가시킨다.
참조 번호 840 단계인 부호범위 확장 과정(ScaleUpRange)은 참조 번호 815, 825 및 835 단계의 절반 확대를 완성하기 위해서 실제 범위를 일정한 크기로 만드는 과정이다. 즉, 부호 위치의 하한(L)을 2배 증가시키고, 부호 위치의 범위(R)를 2배 증가시키고, 부호 위치의 범위가 2배로 될 때마다 압축된 부호의 길이가 1씩 증가하므로 부호의 추정 길이(est_len)를 1만큼 증가시킨다.
참조 번호 855 단계인 증가 유형화 과정(ScaleUpMode)에서는 부호화 유형(coding_mode)이 일반 유형(Normal)이면서 부호 위치의 범위(R)가 Half보다 작을 때는 모든 변수들을 2배 만큼 증가시켜서 해상도를 1비트 늘려서 부호화 유형(coding_mode)을 증가 유형(ScaleUp)로 만들어 주고, 추정된 부호 길이(est_len)를 1 만큼 감소시킨다.
참조 번호 865 단계인 일반 유형화 과정(NormalMode)에서는 부호화 유형(coding_mode)이 증가된 유형(ScaleUp)이면서 부호 위치의 범위(R)가 Half보다 크거나 같으면 사용되는 모든 변수들을 1/2배 만큼 감소시켜 해상도를 1비트 만큼 줄여서 부호화 유형(coding_mode)을 일반 유형(NormalMode)로 변경해 주고, 추정된 부호 길이를 1 만큼 증가시킨다.
도 9는 도 6의 마무리 과정(630 단계)을 보다 상세히 도시한 것이다. 이 마무리 과정에서는 부호화 유형이 일반 유형이면 추가 출력 비트 수(BitsToFollow)를 1만큼 증가시킨다(900, 910 단계). 그 다음, 우선 1비트의 1을 부호 흐름에 추가로출력하고, 추가 출력 비트 수(BitsToFollow)만큼의 0을 부호 흐름에 더 출력해 준다(920 단계).
다시 도 4에 의하면, 430 단계에 의해 전송된 부호 흐름(code stream)이 수신단에 전달이 되면, 부호 분배기(210)는 각 분절의 복호화기에서 부호를 복호화하는데 사용될 부호 흐름(code)의 크기(A_LEN)를 결정하고, 각 분절에 대응하는 A_LEN 값에 따라서 입력된 부호 흐름(code stream)을 나누어 각 분절의 1차 복호화기(231, 232, 233, 234)로 전달한다(435 단계).
부호 분배부(210)에 의해 분할된 부호들은 대응하는 각 분절의 1차 복호화기(231, 232, 233, 234)에 의해 복호화된다(440, 445 단계). 기존의 산술 복호화 방식은 비트 오류에 견실한 구조를 가지도록 하기에는 부적합한 방식을 가지고 있다. 따라서, 본 발명에서는 도 10에 도시된 산술 복호화 방식을 사용한다.
도 10에 의하면, 각 부호들을 복호화하기 전에 각 분절별 1차 복호화기들(231, 232, 233, 234)에 대한 초기화 과정이 필요하다. 이 초기화 과정에서는 실제 복호화 전에 필요한 변수값들을 초기값으로 설정한다(1000 단계).
그리고 산술 부호화의 특성상 원래 기호를 제대로 복원하기 위해서는 여분의 부호를 더 읽어 들이게 되는데, 이 여분의 값이 0일 때 올바른 값을 복원하도록 부호화되어 있다. 따라서, 각 분절에 할당된 부호 흐름(code stream)에 32비트의 0값을 덧붙이는 과정이 필요하다(1010 단계).
그 다음, 각 분절에 할당된 코드들은 차례로 산술복호화되어 기호들이 생성된다(1020 단계). 1차 복호화기(231, 232, 233, 234)는 산술 부호화기에서 압축을 하기 위해서 사용했던 각 기호(symbol)들에 대한 확률값을 사용한다. 1차 복호화기(231, 232, 233, 234)에서도 각 기호의 압축을 푸는데 사용된 부호의 추정된 길이(est_len)를 계산하게 된다. 이렇게 계산된 부호의 추정된 길이는 산술 부호화기에서 각 기호를 압축한 부호의 추정된 길이와 같아야만 한다. 이렇게 계산된 est_len 값들을 더해서 누적 부호 흐름 추정길이(cum_est_len)를 구할 수 있게 된다. 이 누적 부호 흐름 추정길이와 A_LEN를 비교함으로써 각 복호화기의 복호화 가능성을 판단하게 된다. 즉, 1차 복호화기(231, 232, 233, 234)에서는 압축된 부호(code)의 누적 부호 흐름 추정길이(cum_est_len)가 A_LEN과 같아질 때까지 각 분절에 할당된 부호들을 복호화한다(1040 단계).
또한, 각 1차 복호화기(231, 232, 233, 234)에서는 할당된 부호들을 모두 복호화했을 경우에는 누적 부호 흐름 추정길이(cum_est_len)가 A_LEN보다 작더라도 복호화 과정을 일단 멈추고 다음 2차 복호화기에서 복호화 과정을 계속하게 된다(1030 단계).
일반적으로 기호에 대한 확률값에 따라서 압축될 수 있는 최소의 길이가 엔트로피에 의해서 -log2(Prob)가 된다. 만약 -log2(Prob)이 cum_est_len과 A_LEN의 차이(d_len)보다 크다면, 실제 복호화를 했을 때 누적된 부호 흐름의 추정길이가 정해진 길이보다 커지는 경우가 발생한다. 따라서, 이런 경우을 방지하기 위해서는 각 기호들에 대한 확률들은 최소 확률값(Pmin)보다 크거나 같아야 한다. 최소확률값(Pmin)은 cum_est_len과 A_LEN의 차이(d_len)에 따라 수학식 2과 같이 결정된다. 이때, 일반적으로 확률값은 실수값이 아니라 유한한 이진수(RES)의 해상도를 가지는데, 이 RES값보다 d_len이 크거나 같을 경우에는 최소 확률값이 이 해상도보다 커지기 때문에 의미가 없어진다. 따라서, 이 경우의 Pmin은 0이 되다. 결국, 최소 확률값(Pmin)은 d_len과 RES에 따라서 수학식 2와 같이 결정된다.
Pmin = 1/2d_lenif d_len 〈 RES
Pmin = 0 if d_len 〉= RES
이런 제약에 의해서 기호 0의 확률값(Prob[0])이 최소값(Pmin)보다 작아서 최소값(Pmin)으로 대체되면, 전체 확률값들의 합이 1이 되어야 하기 때문에 기호가 1일 때의 확률값(Prob[1])은 (1-Prob[0])이 된다. 마찬가지로 기호 1의 확률값(Prob[1])이 최소값보다 작아서 최소값(Pmin)으로 대체되면, Prob[0]값도 (1-Prob[1])이 된다. 입력 기호에 대한 누적 확률값은 항상 CProb[0] = 0, CProb[1] = Prob[0] 그리고 CProb[2] = 1〈〈RES값으로 설정된다.
1차 복호화부(230)에서 기호들에 대한 산술 부호화가 끝나게 되면, 이어서 2차 부호화부(250)에서 다른 기호들을 부호화하게 된다. 따라서, 마지막으로 1차 복호화기에서 사용된 변수값들을 소정의 장소에 저장해 놓게 된다(1050 단계).
다시 도 4에 의하면, 이상과 같이 1차 복호화가 끝나고 나면 각 분절에서는 서로 불균일한 상황이 발생한다. 즉, 어떤 분절에는 압축된 기호를 복원하기 위해서 사용된 누적 부호 흐름의 길이가 그 분절에 대하여 정해진 부호 흐름의 길이와 같아져서 복호화를 중단함으로써 복호화가 안된 부호들이 남아 있고, 또 어떤 분절에는 할당된 모든 부호들을 복호화했으나 압축된 기호를 복원하기 위해 사용된 부호 흐름의 길이가 그 분절에 대해서 정해진 부호 흐름의 길이보다 작기 때문에 좀 더 복호화할 수 있는 여지를 가질 수 있다. 이런 문제점을 해결하기 위해서, 1차 복호화 과정을 거친 후에도 아직 복호화되지 않고 남아있는 부호들을 한 곳에 모두 모은다(450 단계).
이렇게 모아진 부호들을 2차 복호화부(250)에서 복호화하게 된다(455, 460 단계). 이 과정은 도 11에서 보다 상세히 설명된다.
도 11에 의하면, 먼저 도 10의 1050 단계에서 저장된 변수값들을 인출한다(1100 단계). 각 분절에서 정해진 부호 흐름의 길이보다 각 분절의 누적 부호 흐름의 추정길이가 작을 동안 각 분절에서의 2차 복호화 과정을 계속하게 된다(1110, 1120 단계). 도 4의 450 단계에서 모아진 부호들을 모두 복호화하면 2차 산술부호화 과정은 종료된다. 이때, 각 분절의 복호화 과정이 독립적이기 때문에 각 분절의 복호화 순서에 구애를 받지 않던 1차 복호화부(230)와는 달리, 2차 복호화부(250)에서는 각 분절의 복호화 과정이 차례로 거치면서 아직 복호화가 안된 부호들을 복호화한다. 이와 같이, 1차 복호화 과정에서 복호화가 되지 않았던 부호들을 다른 분절의 2차 복호화기에서 복호화함으로써 할당된 부호 흐름들을 모두 복호화할 수가 있게 된다.
도 12는 도 10의 복호화 초기화 단계(1000 단계)를 보다 상세히 도시한 것이다. 도 10에 의하면, L을 전체 확률 구간에서 부호 위치의 하한, R을 부호 위치의 범위, est_len을 기호를 복원하는데 사용된 부호의 추정 길이, cum_est_len을 누적 부호 흐름 추정길이로서 산술복호화에 필요한 상태 변수들을 정의할 때, 초기화 과정은
L = 0
R = 1
est_len = 30
cum_est_len = 1
에 의해 상태 변수들을 초기화한다(1200 단계).
도 13은 도 10의 부호 복호화 단계(1020 단계) 및 도 11의 부호 복호화 단계(1120 단계)를 보다 상세히 도시한 것이다.
도 13에 의하면, 먼저 압축을 푸는 사용된 누적 부호 흐름의 추정길이가 정해진 부호 흐름의 길이보다 커지지 않도록 복호화에 사용될 확률값을 제한한다(1300 단계). 그리고 이전 부호를 복호화하는 데 사용된 것으로 추정된 부호의 길이(est_len)에 따라서 복호화에 필요한 부호 위치의 범위(R)를 확장하고, 부호값(V)을 확장하고, 입력된 부호 흐름에서 필요 만큼의 비트를 읽어 온다(1310, 1320 단계). 참조 번호 1310 단계는 est_len이 0인 경우에는 참조 번호 1320 단계를 수행하지 않도록 하기 위한 것이다. 그리고 실제 확률값에서 부호의 위치(Cpoint)를 계산하고(1330 단계), 기호를 복원하기 위한 확률값을 부호화기에서와 같은 과정으로 계산하고 앞서 계산된 Cpoint값과 확률값을 가지고 기호를 복원한다(1340 단계). 이렇게 기호를 복원한 후, 다음 기호를 복원하기 위해 복원된 기호를 이용해서 부호의 범위를 줄이게 된다(1350 단계). 그리고, 마지막으로 기호를 복원하는데 사용된 부호에 대한 추정된 부호의 길이를 계산해 낸다(1360 단계). 이때 계산된 값은 산술 부호화기에서 계산된 값과 같아야 한다
이하에서 도 13의 각 단계를 보다 상세히 설명한다.
참조 번호 1300 단계인 확률값 조정 과정(AdjustProb)에서는 압축을 푸는데 사용된 부호 흐름의 누적 추정길이(cum_est_len)가 각 분절에 대하여 미리 정해진 부호 흐름의 크기(A_LEN)보다 커지지 않도록 하기 위해서 각 기호의 확률값들을 최소값(Pmin)보다 크거나 같도록 제한한다. 여기서 최소값(Pmin)은 수학식 2에 의해 결정된다.
참조 번호 1320 단계인 해상도 확장 과정(ExpandResolution)에서는 부호 위치의 범위(R)를 est_len 비트 만큼 비트연산으로 왼쪽으로 이동시키고(shift left), 부호값(V)을 est_len 비트 만큼 비트연산으로 왼쪽으로 이동시킨 후, est_len 비트를 부호 흐름에서 더 읽어 들여 부호값에 더해 줌으로써 해상도를 확장한다.
참조 번호 1330 단계인 부호 위치 검색 과정(FindCodePoint)에서는 부호 위치의 범위(R)를 확률값의 해상도(RES비트) 만큼 비트 연산으로 오른쪽으로 이동시키고(shift right), 부호값(V)을 부호 위치의 범위(R)로 나누어서 부호 위치의 범위에서 부호값의 상대적인 위치를 나타내는 부호 위치(CPoint)를 계산한다.
참조 번호 1340 단계인 기호 검색 과정(FindSymbol)은 도 14에 보다 상세히 도시되어 있다. 도 14에 의하면, 먼저 복원될 기호(sym)를 0으로 초기화한다(1400 단계). 다음, 부호 위치(Cpoint)와 누적 확률값들을 차례로 비교해서 누적확률값이 Cpoint보다 크다면 sym을 1만큼 증가시키는 과정을 누적 확률값이 Cpoint보다 작거나 같을 때까지 반복함으로써 복원될 기호(sym)를 검색한다(1410, 1420 단계).
참조 번호 1350 단계인 부호 범위 축소 과정(NarrowCodeRange)에서는 복원된 기호가 나타내는 누적 확률값을 부호 위치의 범위(R)에 곱한 값을 부호값(V)에서 빼서 부호값을 갱신하고, 기호의 확률값(Prob)을 부호 위치의 범위(R)에 곱해 줌으로써 부호 위치의 범위(R)를 기호의 확률만큼 줄여준다.
참조 번호 1360 단계인 부호 길이 추정 과정(EstimateCWlen)은 도 15에 보다 상세히 도시되어 있다. 도 15에 의하면, 복호화에 사용된 부호의 추정 길이(est_len)을 구하기 위해 먼저 0으로 초기화하고(1500 단계), 부호 위치의 범위(R)의 최상위 비트부터 최하위 비트의 순으로 처음으로 1이 나올 때까지 est_len를 1씩 증가시키면서 검색한다.
도 16은 본 발명에 의한 부호화기에 의해 산술부호화된 부호 흐름의 구성(1600)과 본 발명에 의한 복호화기에 의해 산술복호화되기 전의 부호 흐름의 구성(1610)을 도시한 것이다.
한편, 상술한 본 발명의 실시예는 컴퓨터에서 실행될 수 있는 프로그램으로 작성가능한다. 그리고, 컴퓨터에서 사용되는 매체를 이용하여 상기 프로그램을 동작시키는 범용 디지털 컴퓨터에서 구현될 수 있다. 상기 매체는 마그네틱 저장매체(예를 들면, 롬, 플로피 디스크, 하드 디스크 등), 광학적 판독 매체(예를 들면, 씨디롬, 디브이디 등) 및 캐리어 웨이브(예를 들면, 인터넷을 통한 전송)와 같은 저장매체를 포함한다.
기록매체는 (a1) 각 분절별로 산술 부호화에 요구되는 상태 변수들을 초기화하는 초기화 모듈; (a2) 각 분절별로 상기 초기화 모듈에 의해 초기화된 상태 변수들을 이용하여 분절 단위로 입력된 기호들을 부호화하면서 각 부호의 추정된 길이를 누적한 누적 부호 흐름 추정길이가 그 분절에 대응한 부호 흐름의 길이와 같거나, 그 분절에 할당된 이진 기호들을 모두 부호화할 때까지 산술부호화하는 1차 기호 부호화 모듈; 및 (a3) 각 분절별로 산술부호화가 종료된 상기 1차 기호 부호화 모듈로부터의 상태 변수들의 값들을 일시 저장하는 상태변수 저장 모듈을 구비하여 각 분절의 기호들을 독립적으로 산술 부호화하는 1차 산술 부호화 모듈; 및 (b1) 상기 상태변수 저장 모듈에 저장된 상태변수들의 값들을 복원하는 상태변수 복원 모듈; (b2) 상기 상태변수 복원 모듈에 의해 복원된 누적 부호 흐름 추정길이가 그 분절에 대응한 부호 흐름의 길이와 같은 때까지 상기 1차 산술 부호화 모듈에서 부호화되지 않은 이진 기호들을 부호화하는 2차 기호 부호화 모듈; 및 (b3) 추가로 출력하여야 할 비트수를 결정하여 대응하는 분절의 부호 흐름을 생성하는 산술부호화 마무리모듈을 구비하여 각 분절에 대하여 순차적으로 산술 부호화하는 2차 산술 부호화 모듈을 컴퓨터에서 실행하는 프로그램 코드를 포함한다.
상기 기록매체에서, 상기 초기화 모듈은 mode를 부호화 유형, L을 전체 확률 구간에서 부호 위치의 하한, R을 부호 위치의 범위, BitsToFollow를 추가로 출력되어할 비트 수, Half를 전체 확률 구간의 1/2 위치, Q1을 전체 확률 구간의 1/4 위치, Q3을 전체 확률 구간의 3/4 위치와 cum_est_len을 누적 부호 흐름 추정길이로서 산술부호화에 필요한 상태 변수들을 정의할 때,
mode = NORMAL
L = 0
R = HALF * 2
BitstoFollow = 0
Half = HALF
Q1 = HALF/2
Q3 = Q1 + HALF
cum_est_len = 1
에 의해 초기화하는 모듈을 컴퓨터에서 실행하는 프로그램 코드임을 특징한다.
상기 기록매체에서, 상기 1차 기호 부호화 모듈 및 상기 2차 기호 부호화 모듈은 각각 상기 누적 부호 흐름 추정길이가 분절에 대응한 부호 흐름의 길이보다 커지지 않도록 각 기호의 확률값이 최소값보다 크거나 같도록 제한하는 확률값 조정 모듈; 부호 위치의 범위를 기호의 확률값 만큼 줄여주는 부호범위 축소 모듈; 부호 위치의 하한(L)이 Half보다 크거나 같은 경우 부호범위의 상위 절반을 확장하고, 부호 위치의 상한(L+R)이 Half보다 작은 경우 부호범위의 하위 절반을 확장하고, 부호 위치의 하한이 Q1보다 크거나 같고 부호 위치의 상한이 Q3보다 작은 경우 중간 절반을 확장하는 것을 반복하는 부호범위 확장 모듈; 및 부호화 유형이 일반 유형이면서 부호 위치의 범위(R)가 Half보다 작을 때는 상기 모든 변수들을 2배 증가시켜 해상도를 1비트 늘려서 부호화 유형을 증가 유형으로 변경하고, 부호화 유형이 증가 유형이면서 부호 위치의 범위(R)가 Half보다 크거나 같으면 상기 모든 변수들을 1/2배만큼 감소시켜 해상도를 1비트 줄여서 일반 유형으로 변경하는 부호화 유형 변경 모듈을 구비한 모듈임을 특징으로 한다.
상기 기록매체에서 상기 확률값 조정 모듈의 상기 최소값은 상기 분절에 대응한 부호 흐름의 길이와 상기 누적 부호 흐름 추정길이의 차이값을 d_len이라 할 때, 상기 차이값이 확률의 해상도보다 작은 경우 1/2d_len으로 결정되고, 그렇지 않은 경우에는 0으로 결정됨을 특징으로 한다.
기록매체는 (a1) 각 분절별로 산술 복호화에 요구되는 상태 변수들을 초기화하는 초기화 모듈; (a2) 각 분절별로 할당된 부호 흐름에 소정의 크기의 이진값 0를 추가하는 이진값 0 추가 모듈; (a3) 각 분절별로 상기 초기화 모듈에 의해 초기화된 상태 변수들을 이용하여 분절 단위로 입력된 부호 흐름을 복호화하면서 각 부호의 추정된 길이를 누적한 누적 부호 흐름 추정길이가 그 분절에 대응한 부호 흐름의 길이와 같거나, 그 분절에 할당된 부호들을 모두 복호화할 때까지 산술복호화하는 1차 부호 복호화 모듈; 및 (a4) 각 분절별로 산술복호화가 종료된 상기 1차 부호 복호화 모듈로부터의 상태 변수들의 값들을 일시 저장하는 상태변수 저장 모듈을 구비하여 각 분절의 부호 흐름을 독립적으로 산술 복호화하는 1차 산술 복호화 모듈; 및 (b1) 상기 상태변수 저장 모듈에 저장된 상태변수들의 값들을 복원하는 상태변수 복원 모듈; 및 (b2) 상기 상태변수 복원 모듈에 의해 복원된 누적 부호 흐름 추정길이가 그 분절에 대응한 부호 흐름의 길이와 같은 때까지 상기 1차 산술 부호화 모듈에서 복호화되지 않은 부호들을 복호화하는 2차 부호 복호화 모듈을 구비하여 각 분절에 대하여 순차적으로 산술 복호화하는 2차 부호 복호화 모듈을 컴퓨터에서 실행하는 프로그램 코드를 포함한다.
이상과 같은 본 발명을 구현하기 위한 기능적인 모듈들은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 프로그래머들에 의해 용이하게 실시될 수 있다.
본 발명에 의하면, 첫째, 독립적인 여러 개의 분절(segment)들로 나누어 각각 부호화된 부호 흐름들을 구성하여 비트 오류가 다른 분절에 전파되는 것을 막음으로써 압축 기능 뿐만 아니라 비트 오류에 대한 내성(耐性, robustness)을 추가하여 이동통신망, 위성 방송 및 디지탈 방송 등과 같은 비트 오류가 많이 발생하는 환경에 유용하게 사용할 수 있다.
둘째, 본 발명에 의한 산술부호화/복호화기는 각 기호를 부호화하면서 발생된 부호 흐름의 길이의 추정치나 복호화에 사용된 부호 흐름의 길이에 대한 추정치를 간단히 계산할 수 있어, 전체적으로 기존의 산술부호화/복호화기에 비하여 낮은 복잡도를 가지고 구현할 수 있다.
셋째, 기존의 산술 부호화 방식에서는 압축된 부호 흐름의 길이가 가변적이지만, 본 발명을 이용하면 원하는 길이의 부호 흐름을 만들 수 있다.

Claims (11)

  1. 입력된 이진 기호들을 압축하여 부호 흐름을 생성하는 비트오류에 견실한 산술 부호화 장치에 있어서,
    입력된 이진 기호들을 다수의 분절들로 분할하고, 분할된 각 분절에 대응한 부호 흐름의 길이를 결정하는 기호 분배부;
    각 분절에 대하여, 분할된 이진 기호들을 각 분절에 대응한 부호 흐름의 길이 만큼 산술부호화하는 1차 부호화부;
    상기 1차 부호화부에 의해 부호화되지 않은 이진 기호들을 수집하는 기호 수집부;
    상기 1차 부호화부에 의해 산술부호화된 분절들 중 각 분절에 대응하는 부호 흐름의 길이 만큼 부호화되지 않은 분절들에 대하여, 각각 상기 기호 수집부에 저장된 부호화되지 않은 이진 기호들을 각 분절에 대응하는 부호 흐름의 길이 만큼 산술부호화하여 다수의 부호 흐름들을 생성하는 2차 부호화부; 및
    상기 다수의 부호 흐름들을 다중화하여 하나의 부호 흐름을 생성하는 부호 다중화부를 포함함을 특징으로 하는 비트오류에 견실한 산술 부호화 장치.
  2. 제1항에 있어서, 상기 1차 부호화부는
    상기 다수의 분절들에 각각 대응하며 상호 독립적으로 동작하는 다수의 1차 부호화기들로 구성되고, 각 1차 부호화기는 대응하는 분절의 누적 부호 흐름 추정길이가 그 분절에 대응한 부호 흐름의 길이와 같거나, 그 분절에 할당된 이진 기호들을 모두 부호화할 때까지 산술부호화하는 것이고,
    상기 2차 부호화부는
    상기 다수의 분절들에 각각 대응하며 순차적으로 동작하는 다수의 2차 부호화기들로 구성되고, 각 2차 부호화기는 대응하는 1차 부호화기로부터 대응하는 분절의 누적 부호 흐름 추정길이를 전달받고, 그 누적 부호 흐름 추정길이가 그 분절에 대응한 부호 흐름의 길이와 같은 때까지 산술부호화하는 것을 특징으로 하는 비트오류에 견실한 산술 부호화 장치.
  3. 산술 부호화된 부호 흐름을 복호화하여 이진 기호의 데이터 스트림을 생성하는 비트오류에 견실한 산술 복호화 장치에 있어서,
    다수의 분절들에 대응한 부호 흐름의 길이들을 결정하고, 입력된 부호 흐름을 다수의 분절들로 분할하는 코드 분배부;
    각 분절에 대하여, 분할된 부호 흐름을 각 분절에 대응한 부호 흐름의 길이 만큼 산술복호화하는 1차 복호화부;
    상기 1차 복호화부에 의해 복호화되지 않은 부호들을 수집하는 부호 수집부;
    상기 1차 복호화부에 의해 산술복호화된 분절들 중 각 분절에 대응하는 부호 흐름의 길이 만큼 복호화되지 않은 분절들에 대하여, 각각 상기 부호 수집부에 저장된 복호화되지 않은 부호들을 각 분절에 대응하는 부호 흐름의 길이 만큼 산술복호화하여 다수의 이진 기호들의 데이터 스트림을 생성하는 2차 복호화부; 및
    상기 다수의 이진 기호들의 데이터 스트림을 다중화하여 하나의 이진 기호들의 데이터 스트림을 생성하는 기호 다중화부를 포함함을 특징으로 하는 비트오류에 견실한 산술 복호화 장치.
  4. 제3항에 있어서, 상기 1차 복호화부는
    상기 다수의 분절들에 각각 대응하며 상호 독립적으로 동작하는 다수의 1차 복호화기들로 구성되고, 각 1차 복호화기는 대응하는 분절의 누적 부호 흐름 추정길이가 그 분절에 대응한 부호 흐름의 길이와 같거나, 그 분절에 할당된 부호들을 모두 복호화할 때까지 산술복호화하는 것이고,
    상기 2차 복호화부는
    상기 다수의 분절들에 각각 대응하며 순차적으로 동작하는 다수의 2차 복호화기들로 구성되고, 각 2차 복호화기는 대응하는 1차 복호화기로부터 대응하는 분절의 누적 부호 흐름 추정길이를 전달받고, 그 누적 부호 흐름 추정길이가 그 분절에 대응한 부호 흐름의 길이와 같은 때까지 산술복호화하는 것을 특징으로 하는 비트오류에 견실한 산술 복호화 장치.
  5. 입력된 이진 기호들을 압축하여 부호 흐름을 생성하는 비트오류에 견실한 산술 부호화 방법에 있어서,
    (a) 입력된 이진 기호들을 다수의 분절들로 분할하고, 분할된 각 분절에 대응한 부호 흐름의 길이를 결정하는 단계;
    (b) 각 분절에 대하여, 분할된 이진 기호들을 각 분절에 대응한 부호 흐름의 길이 만큼 산술부호화하는 단계;
    (c) 상기 (b) 단계에서 부호화되지 않은 이진 기호들을 수집하는 단계;
    (d) 상기 (b) 단계에서 산술부호화된 분절들 중 각 분절에 대응하는 부호 흐름의 길이 만큼 부호화되지 않은 분절들에 대하여, 각각 상기 (c) 단계에서 수집된 부호화되지 않은 이진 기호들을 각 분절에 대응하는 부호 흐름의 길이 만큼 산술부호화하여 다수의 부호 흐름들을 생성하는 단계; 및
    (e) 상기 다수의 부호 흐름들을 다중화하여 하나의 부호 흐름을 생성하는 단계를 포함함을 특징으로 하는 비트오류에 견실한 산술 부호화 방법.
  6. 산술 부호화된 부호 흐름을 복호화하여 이진 기호의 데이터 스트림을 생성하는 비트오류에 견실한 산술 복호화 방법에 있어서,
    (a) 다수의 분절들에 대응한 부호 흐름의 길이들을 결정하고, 입력된 부호 흐름을 다수의 분절들로 분할하는 단계;
    (b) 각 분절에 대하여, 분할된 부호 흐름을 각 분절에 대응한 부호 흐름의 길이 만큼 산술복호화하는 단계;
    (c) 상기 (b) 단계에서 복호화되지 않은 부호들을 수집하는 단계;
    (d) 상기 (b) 단계에서 산술복호화된 분절들 중 각 분절에 대응하는 부호 흐름의 길이 만큼 복호화되지 않은 분절들에 대하여, 각각 상기 (c) 단계에서 수집된 복호화되지 않은 부호들을 각 분절에 대응하는 부호 흐름의 길이 만큼 산술복호화하여 다수의 이진 기호들의 데이터 스트림을 생성하는 단계; 및
    (e) 상기 다수의 이진 기호들의 데이터 스트림을 다중화하여 하나의 이진 기호들의 데이터 스트림을 생성하는 단계를 포함함을 특징으로 하는 비트오류에 견실한 산술 복호화 방법.
  7. 입력된 이진 기호들을 압축하여 부호 흐름을 생성하는 비트오류에 견실한 산술 부호화 프로그램을 기록한 기록매체에 있어서, 상기 산술 부호화 프로그램은
    각 분절별로 산술 부호화에 요구되는 상태 변수들을 초기화하는 초기화 모듈; 각 분절별로 상기 초기화 모듈에 의해 초기화된 상태 변수들을 이용하여 분절 단위로 입력된 기호들을 부호화하면서 각 부호의 추정된 길이를 누적한 누적 부호 흐름 추정길이가 그 분절에 대응한 부호 흐름의 길이와 같거나, 그 분절에 할당된 이진 기호들을 모두 부호화할 때까지 산술부호화하는 1차 기호 부호화 모듈; 및 각 분절별로 산술부호화가 종료된 상기 1차 기호 부호화 모듈로부터의 상태 변수들의 값들을 일시 저장하는 상태변수 저장 모듈을 구비하여 각 분절의 기호들을 독립적으로 산술 부호화하는 1차 산술 부호화 모듈; 및
    상기 상태변수 저장 모듈에 저장된 상태변수들의 값들을 복원하는 상태변수 복원 모듈; 상기 상태변수 복원 모듈에 의해 복원된 누적 부호 흐름 추정길이가 그 분절에 대응한 부호 흐름의 길이와 같은 때까지 상기 1차 산술 부호화 모듈에서 부호화되지 않은 이진 기호들을 부호화하는 2차 기호 부호화 모듈; 및 추가로 출력하여야 할 비트수를 결정하여 대응하는 분절의 부호 흐름을 생성하는 산술부호화 마무리모듈을 구비하여 각 분절에 대하여 순차적으로 산술 부호화하는 2차 산술 부호화 모듈을 포함함을 특징으로 하는 산술 부호화 프로그램을 기록한 컴퓨터가 읽을 수 있는 기록매체.
  8. 제7항에서, 상기 초기화 모듈은
    mode를 부호화 유형, L을 전체 확률 구간에서 부호 위치의 하한, R을 부호 위치의 범위, BitsToFollow를 추가로 출력되어할 비트 수, Half를 전체 확률 구간의 1/2 위치, Q1을 전체 확률 구간의 1/4 위치, Q3을 전체 확률 구간의 3/4 위치와 cum_est_len을 누적 부호 흐름 추정길이로서 산술부호화에 필요한 상태 변수들을 정의할 때,
    mode = NORMAL
    L = 0
    R = HALF * 2
    BitstoFollow = 0
    Half = HALF
    Q1 = HALF/2
    Q3 = Q1 + HALF
    cum_est_len = 1
    에 의해 초기화하는 모듈임을 특징으로 하는 산술 부호화 프로그램을 기록한 컴퓨터가 읽을 수 있는 기록매체(여기서, HALF는 일반적인 유형에서의 전체 확률 구간의 1/2 위치로서, 그 값은 확률의 해상도를 RES라 할 때, 1〈〈(RES-1)로 정의됨).
  9. 제8항에서, 상기 1차 기호 부호화 모듈 및 상기 2차 기호 부호화 모듈은 각각
    상기 누적 부호 흐름 추정길이가 분절에 대응한 부호 흐름의 길이보다 커지지 않도록 각 기호의 확률값이 최소값보다 크거나 같도록 제한하는 확률값 조정 모듈;
    부호 위치의 범위를 기호의 확률값 만큼 줄여주는 부호범위 축소 모듈;
    부호 위치의 하한(L)이 Half보다 크거나 같은 경우 부호범위의 상위 절반을 확장하고, 부호 위치의 상한(L+R)이 Half보다 작은 경우 부호범위의 하위 절반을 확장하고, 부호 위치의 하한이 Q1보다 크거나 같고 부호 위치의 상한이 Q3보다 작은 경우 중간 절반을 확장하는 것을 반복하는 부호범위 확장 모듈; 및
    부호화 유형이 일반 유형이면서 부호 위치의 범위(R)가 Half보다 작을 때는 상기 모든 변수들을 2배 증가시켜 해상도를 1비트 늘려서 부호화 유형을 증가 유형으로 변경하고, 부호화 유형이 증가 유형이면서 부호 위치의 범위(R)가 Half보다 크거나 같으면 상기 모든 변수들을 1/2배만큼 감소시켜 해상도를 1비트 줄여서 일반 유형으로 변경하는 부호화 유형 변경 모듈을 구비한 모듈임을 특징으로 하는 산술 부호화 프로그램을 기록한 컴퓨터가 읽을 수 있는 기록매체.
  10. 제9항에 있어서, 상기 확률값 조정 모듈의 상기 최소값은
    상기 분절에 대응한 부호 흐름의 길이와 상기 누적 부호 흐름 추정길이의 차이값을 d_len이라 할 때, 상기 차이값이 확률의 해상도보다 작은 경우 1/2d_len으로 결정되고, 그렇지 않은 경우에는 0으로 결정됨을 특징으로 하는 산술 부호화 프로그램을 기록한 컴퓨터가 읽을 수 있는 기록매체.
  11. 산술 부호화된 부호 흐름을 복호화하여 이진 기호의 데이터 스트림을 생성하는 비트오류에 견실한 산술 복호화 프로그램을 기록한 기록매체에 있어서, 상기 산술 복호화 프로그램은
    각 분절별로 산술 복호화에 요구되는 상태 변수들을 초기화하는 초기화 모듈; 각 분절별로 할당된 부호 흐름에 소정의 크기의 이진값 0를 추가하는 이진값 0 추가 모듈; 각 분절별로 상기 초기화 모듈에 의해 초기화된 상태 변수들을 이용하여 분절 단위로 입력된 부호 흐름을 복호화하면서 각 부호의 추정된 길이를 누적한 누적 부호 흐름 추정길이가 그 분절에 대응한 부호 흐름의 길이와 같거나, 그 분절에 할당된 부호들을 모두 복호화할 때까지 산술복호화하는 1차 부호 복호화 모듈; 및 각 분절별로 산술복호화가 종료된 상기 1차 부호 복호화 모듈로부터의 상태 변수들의 값들을 일시 저장하는 상태변수 저장 모듈을 구비하여 각 분절의 부호 흐름을 독립적으로 산술 복호화하는 1차 산술 복호화 모듈; 및
    상기 상태변수 저장 모듈에 저장된 상태변수들의 값들을 복원하는 상태변수 복원 모듈; 및 상기 상태변수 복원 모듈에 의해 복원된 누적 부호 흐름 추정길이가 그 분절에 대응한 부호 흐름의 길이와 같은 때까지 상기 1차 산술 부호화 모듈에서 복호화되지 않은 부호들을 복호화하는 2차 부호 복호화 모듈을 구비하여 각 분절에 대하여 순차적으로 산술 복호화하는 2차 부호 복호화 모듈을 포함함을 특징으로 하는 산술 복호화 프로그램을 기록한 컴퓨터가 읽을 수 있는 기록매체.
KR1019990048589A 1999-11-04 1999-11-04 비트 오류에 견실한 산술 부호화/복호화 장치 및 그 방법 KR100316785B1 (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1019990048589A KR100316785B1 (ko) 1999-11-04 1999-11-04 비트 오류에 견실한 산술 부호화/복호화 장치 및 그 방법
US09/573,156 US6557137B1 (en) 1999-11-04 2000-05-19 Bit-error resistant arithmetic coding/decoding apparatus and method thereof
DE10024444A DE10024444A1 (de) 1999-11-04 2000-05-19 Vorrichtung und Verfahren zur arithmetischen Codierung/Decodierung und computerlesbares Aufzeichnungsmedium
JP2000197651A JP2001144625A (ja) 1999-11-04 2000-06-30 耐ビットエラー算術符号化/復号化装置及びその方法、耐ビットエラー算術符号化/復号化プログラムを記録したコンピュータが読み取り可能な記録媒体

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019990048589A KR100316785B1 (ko) 1999-11-04 1999-11-04 비트 오류에 견실한 산술 부호화/복호화 장치 및 그 방법

Publications (2)

Publication Number Publication Date
KR20010045329A true KR20010045329A (ko) 2001-06-05
KR100316785B1 KR100316785B1 (ko) 2001-12-13

Family

ID=19618501

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019990048589A KR100316785B1 (ko) 1999-11-04 1999-11-04 비트 오류에 견실한 산술 부호화/복호화 장치 및 그 방법

Country Status (4)

Country Link
US (1) US6557137B1 (ko)
JP (1) JP2001144625A (ko)
KR (1) KR100316785B1 (ko)
DE (1) DE10024444A1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040000059A (ko) * 2002-06-21 2004-01-03 엘지전자 주식회사 심볼 부호화 방법 및 심볼 부호화기
KR100443012B1 (ko) * 2001-12-22 2004-08-04 엘지전자 주식회사 압축데이터의 바이트열 복원 방법
KR100462789B1 (ko) * 2002-06-12 2004-12-20 한국과학기술원 이진 산술 부호화를 이용한 다중 부호 데이터 압축 방법및 장치

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020089726A1 (en) * 2000-07-18 2002-07-11 Zhan He System and method for wavelength modulated free space optical communication
US6651210B1 (en) * 2000-12-21 2003-11-18 Arraycomm, Inc. Flexible multi-bit per symbol rate encoding
KR100987777B1 (ko) * 2004-02-05 2010-10-13 삼성전자주식회사 에러의 전파를 방지하고 병렬 처리가 가능한 디코딩 방법및 그 디코딩 장치
US20050232139A1 (en) * 2004-04-20 2005-10-20 Texas Instruments Incorporated Dual length block codes for multi-band OFDM
EP2765780A1 (en) * 2005-12-05 2014-08-13 Huawei Technologies Co., Ltd. Binarizing method and device thereof
JP4785706B2 (ja) * 2006-11-01 2011-10-05 キヤノン株式会社 復号装置及び復号方法
JP4865509B2 (ja) * 2006-11-01 2012-02-01 キヤノン株式会社 復号装置及び復号方法
US9391646B2 (en) 2014-03-25 2016-07-12 Samsung Electronics Co., Ltd. Joint source-channel encoding and decoding for compressed and uncompressed data
CN112583522B (zh) * 2019-09-27 2022-09-23 华为技术有限公司 一种极化码分段编码的方法及通信设备

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3072776B2 (ja) * 1990-12-19 2000-08-07 キヤノン株式会社 画像処理装置
US5761342A (en) * 1991-04-16 1998-06-02 Canon Kabushiki Kaisha Image processing apparatus and method
GB2333412B (en) * 1998-01-20 2002-05-15 Daewoo Electronics Co Ltd Context-based arithmetic encoding/decoding apparatus
US6240214B1 (en) * 1998-02-27 2001-05-29 Daewoo Electronics Co., Ltd. Method and apparatus for encoding a binary shape signal
ATE445935T1 (de) * 1998-03-23 2009-10-15 Koninkl Philips Electronics Nv Arithmetische codierung und decodierung eines informationssignals

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100443012B1 (ko) * 2001-12-22 2004-08-04 엘지전자 주식회사 압축데이터의 바이트열 복원 방법
KR100462789B1 (ko) * 2002-06-12 2004-12-20 한국과학기술원 이진 산술 부호화를 이용한 다중 부호 데이터 압축 방법및 장치
KR20040000059A (ko) * 2002-06-21 2004-01-03 엘지전자 주식회사 심볼 부호화 방법 및 심볼 부호화기

Also Published As

Publication number Publication date
DE10024444A1 (de) 2001-05-10
JP2001144625A (ja) 2001-05-25
US6557137B1 (en) 2003-04-29
KR100316785B1 (ko) 2001-12-13

Similar Documents

Publication Publication Date Title
US5272478A (en) Method and apparatus for entropy coding
JP3657956B2 (ja) 符号化方法及び装置
KR100316785B1 (ko) 비트 오류에 견실한 산술 부호화/복호화 장치 및 그 방법
KR100464228B1 (ko) 디지탈정보신호의송신및수신장치및그의송신방법
US20060125660A1 (en) Digital data compression robust relative to transmission noise
US6714145B1 (en) Method and apparatus for integer-based encoding and decoding of bits
KR100490638B1 (ko) 디지털오디오신호의무손실부호화를위한부호화및복호화시스템
Boncelet Variable to fixed entropy coders: Why and how?(And their application to H. 263)

Legal Events

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

Payment date: 20121016

Year of fee payment: 12

FPAY Annual fee payment

Payment date: 20131022

Year of fee payment: 13

LAPS Lapse due to unpaid annual fee