KR0163464B1 - 허프만 부호 복호화 회로 - Google Patents

허프만 부호 복호화 회로 Download PDF

Info

Publication number
KR0163464B1
KR0163464B1 KR1019950004799A KR19950004799A KR0163464B1 KR 0163464 B1 KR0163464 B1 KR 0163464B1 KR 1019950004799 A KR1019950004799 A KR 1019950004799A KR 19950004799 A KR19950004799 A KR 19950004799A KR 0163464 B1 KR0163464 B1 KR 0163464B1
Authority
KR
South Korea
Prior art keywords
bit
code
decoding
code length
huffman
Prior art date
Application number
KR1019950004799A
Other languages
English (en)
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 가네꼬 히사시
Application granted granted Critical
Publication of KR0163464B1 publication Critical patent/KR0163464B1/ko

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • 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
    • H03M7/425Conversion 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 for the decoding process only
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/005Statistical coding, e.g. Huffman, run length coding

Abstract

허프만 부호 데이타열에서 포함하는 허프만 부호의 선두 비트 위치를 결정하고, 선두 비트 위치에서 소정 비트수의 허프만 부호 데이타열을 포함하는 선두 비트 위치 결정부와, 선두 비트 위치 결정부로부터 출력된 허프만 부호 데이타열의 선두 비트로 부터 소정 비트수의 제1 데이타열을 입력하고, 제데이타열을 어드레스로서 대응하는 제1 복호 워드및 제1 부호 길이를 출력하는 제1 복호 테이블과 선두 비트 위치 결정부로부터 출력되는 허프만 부호 데이타열의 다른 비트 위치로 부터 소정 비트수의 제2 에서 제n 데이타열을 각각 입력하고 , 제2 에서 제n 의 데이타열을 어드레스로서 대응하는 복호 워드 및 부호길이를 각각 출력하는 제2 에서 제n 개의 복수의 복호 테이블, 제1 복호 테이블이 출력하는 제1 부호 길이를 선택 신호로서 제2 에서 제n 의 복호 테이블의 출력의 어느 하나를 선택하며, 제2 복호 워드 및 제2 부호 길이로서 출력하는 셀렉터를 구비한다.

Description

허프만 부호 복호화 회로
제1도는 본 발명의 제1 실시예의 허프만 부호 복호화 회로의 구성을도시한 블럭도.
제2도는 제1 실시예의 구비되는 복호 테이블의 구성내용을도시한도면.
제3도는 제1 실시예의 구비되는 복호 테이블의 구성내용을도시한도면.
제4도는 제1 실시예의 구비되는 복호 테이블의 구성내용을도시한도면.
제5도는 제1 실시예의 구비되는 복호 테이블의 구성내용을도시한도면.
제6도는 본 발명의 제2 실시예의 허프만 부호 복호화 회로의 구성을도시한 블럭도.
제7도는 본 발명의 제3 실시예의 허프만 부호 복호화 회로의 구성을도시한 블럭도.
제8도는 제3 실시예의 구비되는 복호 테이블의 구성내용을도시한도면.
제9도는 제3 실시예의 구비되는 복호 테이블의 구성내용을도시한도면.
제10도는 제3 실시예의 구비되는 복호 테이블의 구성내용을도시한도면.
제11도는 제3 실시예의 구비되는 복호 테이블의 구성내용을도시한도면.
제12도는 본 발명의 제4 실시예의 허프만 부호 복호화 회로의 구성을도시한 블럭도.
제13도는 종래의 허프만 부호 복호화 회로의 구성의 일예를도시한 블럭도.
제14도는 종래의 허프만 부호 복호화 회로의 구성의 별도의 구성예를도시한 블럭도.
제15도는 허프만 부호화의 원리를 설명하는 설명도.
제16도는 제13도에도시한 종래의 회로에 구비되는 복호 테이블의 구성 내용을도시한도면.
제17도는 제14도에도시한 종래의 회로에 구비되는 복호 테이블의 구성 내용을도시한도면.
*도면의 주요부분에 대한 부호의 설명
11 : 선두 비트 위치 결정부 12 : 내지 28 : 복호 테이블
30 : 셀렉터
본 발명은 허프만 부호를 복호하는 허프만 부호 복호화 회로에 관한 것으로, 특히 허프만 부호의 복호 처리를 고속으로 행하는 허프만 부호 복호화 회로에 관한 것이다.
종래, 허프만 부호를 복호화하는 경우에 복호 워드 1 워드씩 구하고 있다. 또, 복호 워드를 2워드씩 구하는 경우에는 2라인의 복호 테이블을 준비해서 입력한 허프만 부호에 대하여 2라인의 복호 테이블을 검색하여 복호 워드를 2워드씩 구한다. 그리고, 구해진 2라인의 복호 워드의 부호 길이를 가산함으로써 허프만 부호 데이타열로부터 다음에 구하는 허프만 부호의 선두 비트를 결정한다.
여기서, 허프만 부호의 원리에 관해 간단히 설명한다.
(1) 각 문자에 대응해서 잎 노드를 만든다.
(2) 출현 확율이 가장 작은 2라인의 잎 노드(leaf node)에 대하여 새로운 절점을 하나 만들고, 그 절점과 2라인의 잎 노드를 2라인의 브렌치로 연결한다.
(3) 상기 2라인의 브렌치 중 한쪽에는'0', 다른 쪽에는 '1'의 라벨을 붙이고, 상기 새로운 절점에 2장의 잎 노드의 확율의 합을 설정한다.
(4) 상기 새로운 절점을 새로운 잎 노드로해서 (상기 절점으로부터 뻗어나온 브렌치와 잎 노드를 제거함으로써 절점을 잎 노드로 상정한다.), 상기 조작(2), (3)을 잎 노드가 하날로 될 때까지 반복한다. 상기 최후의 잎 노드를 루트로 한다.
그리고, 루트에서 문자에 대응하는 잎 노드까지 브렌치를 추적했을 때 얻어지는 '1'과 '0'의 계열이 그 문자에 대한 부호 워드가 된다.(제15도 참조). 제15도에서 예를 들면 출현 확율이 1/12인 문자 'a'의 부호 워드는 「1111」(부호길이 = 4), 출현 확율이 1/6인 문자 'd'의 부호 워드는 「100」(부호 길이 = 3)이 된다. 복호화는 부호화된 데이타로부터 원래의 문자를 복호화하는 처리를 말한다.
제13도는 복호 워드를 1워드씩 구하는 허프만 부호 복호화 회로의 종래의 구성예( 이하, 제1 종래예라고 함)를도시한 블럭도이다. 여기서는 허프만 부호의 최대 부호 워드 길이를 16 비트로 한다.도면 중, 허프만 부호 데이타열 「15-0」은 허프만 부호 데이타열의 16 비트를 나타내고 있고, 선두 비트를 최상위 비트(MSB)의 비트번호(「15」로 하고 있다.
제13도에도시한 바와 같이, 허프만 부호 복호화 회로는 허프만 부호 데이타열로부터 허프만 부호의 선두 비트를 구하는 선두 비트 위치 결정부(500)와, 복호 워드와 부호 길이가 미리 격납된 복호 테이블(501)로 구성된다. 복호 테이블(501)은 ROM(Read Only Memory) 등으로 구성된다.
복호 테이블(501)은 제16도에도시한 바와 같이, 허프만 부호를 입력 어드레스로 하고, 그 어드레스에 대응해서 복호 워드 8비트와 부호 길이 5 비트가 격납되어 있다. 예를 들면, 복호 워드 A에 대한 허프만 부호가 '0101', 복호 워드 B에 대한 허프만 부호가 '0110101'로 설정되어 있다. 허프만 부호 데이타열 '0101 x …'가 어드레스 입력되면, 복호 테이블(501)로부터 복호 워드 A, 부호 길이 4 가 출력되고, 허프만 부호 데이타열 '0110101 x …'가 어드레스 입력되면, 복호 테이블(501)로부터 복호 워드 B, 부호 길이 7이 출력된다.
마찬가지로 해서, 그외의 허프만 부호의 입력(어드레스 입력)에 대응하여 각 복호 워드와 부호 길이가 복호 테이블(501)에 설정되어 있다. 또한, 제16도 중의 입력 비트열 중의 기호 x는 논리치 '0' 또는 '1' 중 어느것이나 좋다는 것(DON'T CARE)을 나타내고 있다. 따라서, 예를 들면 복호 워드 'A'에 대응하는 허프만 부호가 '0101'이면 16비트의 어드레스 '01010…1'의 전붕에 복호 워드 'A'와 부호 길이 '4'가 설정된다. 또, 선두 비트 위치 결정부(500)의 초기치는 입력된 허프만 부호 데이타열 16비트의 선두 비트로 한다.
제13도에서, 가령 허프만 부호 데이타열 '01010110101001…'이 전송되어 오는 것으로 한다. 선두 비트 위치 결정부(500)에는 선두에서 16비트 데이타, 즉 01010110101001…'이 입력된다. 선두 비트 위치 결정부(500)에서는 선두 비트 위치 의 초기치는 입력된 허프만 부호 데이타열 16비트의 선두 비트이므로, 선두 비트로부터 16비트 '01010110101001…'을 그대로 복호 테이블(501)로 송출한다.
복호 테이블(501)은 '0101 x…'의 입력이 있으면 복호 워드 'A', 부호 길이 = 4를 출력하도록 설정되어 있기 때문에, 복호 워드 'A', 부호 길이 = 4를 출력한다. 그리고, 구해진 부호 길이 = 4는 선두 비트 위치 결정부(500)으로 전송한다.
선두 비트 위치 결정부(500)에서는 입력부 부호 길이 = 4로부터 다음 허프만 부호 데이타열의 선두 비트 16 비트 '01010110101001…'의 5비트째인 것을 구할 수 있다. 그리고 선두 비트 위치 결정부(500)에서 다시 구한 선두 비트로 부터 16비트, 즉 '0110101001…'이 복호 테이블(501)에 입력된다.
복호 테이블(501)에서는 '0110101 x ...'의 입력이 있으면 복호 워드 'B', 부호 길이 = 7 을 출력하도록 설정되어 있기 때문에, 입력' '0110101001…'에 대하여 복호 워드 B, 부호 길이 7을 출력한다. 부호 길이 = 7이 선두 비트 위치 결정부(500)으로 전송된다.
선두 비트 위치 결정부(500)에서는 입력된 부호 길이 = 7에서 다음의 허프만 부호 데이타열의 선두 비트가 16비트 데이타 '0110101001…'의 제8비트째인 것을 구할 수 있다. 그리고, 선두 비트 위치 결정부(500)에서 다시 구해진 선두 비트로부터 16비트, 즉 '001…1'이 복호 테이블(501)에 입력된다. 이하, 같은 조작을 반복함으로써 부호화 데이타의 복호화가 행해진다.
복호 워드를 1워드씩 구하는 제1 종래예의 변형으로서 예를 들면 일본국 특허 공소(소) 62-66720호 공보에는 가변 길이 부호의 복호화 회로에 필요한 시간을 단축시킨 가변 길이 복호화 회로가 개시되어 있다. 이 가변 길이 복호화 회로에서는 부호 길이의 크기에 관계없이 소정 시간 스텝에서 고속의 가변 길이 부호의 복호화를 실현하기 위해 각 스텝에서 부호화 데이타를 복호화함과 동시에 부호 길이를 판독하고, 이 비트 위치에 대응한 부호화 데이타를 복호 테이블에 순차 입력 제어하는 구성을 개시한다.
보다 상세하게는, 일본국 특허 공개(소)62-66720호 공보에 개시된 가변 길이 복호화 회로(이하 제2 종래예라 함)는 데이타 레지스터, 부호 레지스터, 어드레스 셀렉터, 선두 비트수 레지스터, 제어 회로 및 복호 테이블의 ROM으로 구성된다. 부호 레지스터에서 출력되는 8비트 병렬 데이타는 대응하는 8개의 어드레스 셀렉터에 각각 공급된다. 그리고, 각 어드레스 셀레터에는 비트 순위를 시프트한 데이타가 각각 공급되고, 선두 비트수 레지스터에 의해 전송되는 비트 순위 선택 신호가 각 어드레스 셀렉터의 선택 신호호서 공급된다. 각 어드레스 셀렉터로부터는 지정된 순위의 비트가 1 비트 데이타 출력으로 해서 복호 테이블(ROM)에 입력되고, ROM으로부터는 복호 워드와 부호 길이가 출력된다.
제14도는 종래의 복호 워드를 2워드씩 구하는 허프만 부호 복호화 회로의 한 구성예(이하, 제3 종래예라 함)를도시한 블럭도이다. 제14도에서 허프만 부호의 최대 부호 워드 길이를 16비트로 한다.도면 중, 허프만 부호 데이타열「31-0」은 허프만 부호 데이타열의 32비트를도시한 것으로, 선두 비트는 최상위 비트의 비트 31이다.
제14도에도시한 허프만 부호 복호화 회로는 허프만 부호 데이타열로부터 허프만 부호의 선두를 구하는 선두 비트 위치 결정부(600, 601)과, 복호 워드 8비트, 부호 길이 5 비트, 플래그 1비트가 격납된 복호 테이블(602, 603), 가산기(604, 605) 및 포인터(606)으로 구성된다.
또, 17도에도시한 바와 같이, 복호 테이블(602, 603)에는 허프만 부호(어드레스)의 입력에 대응하여 복호 워드 8비트, 부호 길이 5 비트, 플래그 1 비트가 격납되어 있다.
예를 들면, 복호 워드가 A에 대한 허프만 부호가 '0101', 복호 워드 B에대한 허프만 부호 '0110101', 복호 워드 C에 대한 허프만 부호가 '01110011001', 복호 워드 'D', 에 대한 허프만 부호가 '1011010000'으로 설정되어 있다. 이에 따라 복호 테이블(602.6030은 '0101 x …'의 입력이 있으면 복호 워드 'A', 부호 길이 = 4, 플래그 =0 을 출력하고, '0110101 x …'의 입력이 있으면 복호 워드 'B', 부호 길이 = 7, 플래그 =0을출력하며, '01110010000 x …'의 입력이 있으면 복호 워드 'C', 부호 길이 = 13, 플래그 =0 을 출력하고, '1011010000x …'의 입력이 있으면 복호 워드 'D', 부호 길이 = 10, 플래그 =0을 출력하도록 설정되어 있다.
또, 복호 테이블(602, 603)은 복호 워드에 대응하는 허프만 부호 중 일부분 밖에 어드레스 입력되지 않는 경우에는 부호 길이 = 0, 플래그 =0을 출력하도록 설정되어 있다. 보다 상세하게는, 복호 테이블(602, 603)은 예를 들면 복호 워드 'D를도시하는 '1011010000'의 일부분, 예를 들면 8비트 데이타 '10110100'의 어드레스 입력된 경우에는 부호 길이 = 0, 플래그 =1을 출력한다.
마찬가지로 해서, 복호 테이블(602, 603)에는 가가 어드레스 입력에 대응하여 복호 워드, 부호 길이, 플래그가 미리 격납된다.
선두 비트 위치 결정부(600)의 초기치는 입력된 허프만 부호 부호 데이타열의 선두 비트로 하고, 플래그 = 1 이 입력되었을 때에는 다시 구해진 허프만 부호의 선두에서 32비트를 출력한다. 포인터(606)의 초기치를 0으로 한다.
제14도의 허프만 복호화 회로에 가령, 허프만 부호 데이타열 '01010110101011100101100110110100000110101…'이 전송되어 온 것으로 한다.
선두 비트 위치 결정부(600)에는 선두로부터 32 비트 ' 01010110101011100101100110110100'을 출력한다. 선두 비트 위치 결정부(600)은 초기치가 입력된 허프만 부호 데이타열의 선두 비트이므로, 선두 비트로부터 32비트, '01010110101011100101100110110100'을 출력한다. 선두 비트 위치 결정부(601)에는 상기 출력된 32비트 데이타가 입력된다.
또, 복호 테이블(602)에는 상기 32비트 데이타의 상위 16비트 '0101011010101110'이 입력된다. 복호 테이블(602)에는 '0101 x…'의 입력이 있으면 복호 워드 'A', 부호 길이 = 4, 플래그 =0을 출력하도록 설정되어 있기 때문에 복호 워드 'A', 부호 길이 = 4, 플래그 =0을 출력한다. 부호 길이 = 4는 선두 비트 위치 결정부(601)과 가산기(604)로 전송된다.
선두 비트 위치 결정부(601)에서는 복호 테이블(602)으로부터 전송된 부호 길이=4를 기초로 해서 다음 허프만 부호 데이타열의 선두가 32비트 데이타 '01010110101011100101100110110100'의 제5 비트 째인 것을 구하고, 선두에서 제5 비트 째의 비트 위치로부터 16비트 '0110101011100101'의 복호 테이블(603)에 입력된다.
복호 테이블(603)에서는 '0110101 x…'의 입력이 있으면 복호 워드 'B', 부호 길이 = 7, 플래그 =0을 출력하도록 설정되어 있기 때문에, 복호 워드 'B', 부호길이=7, 플래그=0을 출력한다. 부호 길이 = 7는 가산기(604)로 전송된다.
가산기(604)에서 복호 테이블(603)의 출력인 부호 길이 = 7은 복호 테이블(602)가 출력한 복호 워드 'A'의 부호 길이 = 4와 가산된다. 가산기(604)의 출력( 4 + 7 = 11 )은 가산기(605)로 전송된다. 가산기(605)에서, 가산기(604)의 출력과 포인터(606)의 출력이 가산된다. 이 경우, 포인터(606)의 출력이 초기치 0이므로 11(11+0=11)이 가산기(605)으로부터 포인터(606)에 송출된다.
포인터(606)으로부터의 출력(=11)은 선두 비트 위치 결정부(600)에 입력되고, 선두 비트 위치 결정부(600)에서는 다음 허프만 부호의 선두 비트가 32비트 데이타 '01010110101011100101100110110100'의 제12 비트째인 것을 구하고, 선두 제12 비트째의 비트 위치로부터 16비트 '0111001011001101'이 복호 테이블(602)에 입력된다.
또, 선두 비트 위치 결정부(601)에는 선두 제12 비트째부터 제32비트째까지, 즉 '011100101100110110100'의 21비트 데이타가 입력된다.
복호 테이블(602)에서는 '0111001011001 x…'의 입력이 있으면 복호 워드 'C', 부호 길이 = 13, 플래그 =0을 출력하도록 설정되어 있기 때문에, 복호 워드 'C', 부호 길이 = 13, 플래그 =0을 출력한다. 부호 길이 = 13 은 선두 비트 위치 결정부(601)과 가산기(604)에 전송된다.
선두 비트 위치 결정부(601)에서는 복호 테이블(602)의 출력인 부호 길이 = 13 으로부터, 다음 허프만 부호 데이타열 선두 비트 위치가 21비트 데이타 '011100101100110110100'의 선두에서 제14 비트째인 것을 구할 수 있고, 선두에서 제14비트째로부터의 제21 비트째의 8비트 데이타 '10110100'의 복호 테이블(603)에 입력된다.
복호 테이블(603)에서는 상술한 바와 같이, 8비트 데이타 '10110100'이 입력된 경우(복호 워드 'D'를 나타내는 '1011010000'의 일부분), 부호 길이 = 0, 플래그 = 1을 출력하도록 설정되어 있기 때문에, 부호 길이 = 0을 가산기(604)로 전송하고, 플래그 = 1을 선두 비트 위치 결정부(600)으로 전송한다.
가산기(604)에서는 복호 워드 'C'의 부호 길이 = 13과 부호 길이 = 0의 가산이 행해지고, 13( 13 + 0)이 가산기(605)로 전송된다. 가산기(605)에서는 포인터(606)의 출력(=11)과 가산기(605)의 출력( = 13 )이 가산되고, 24(= 11 + 13)이 포인터(46)에 송출된다.
포인터(46)으로부터의 출력(=24)은 선두 비트 위치 결정부(40)에 입력되고, 선두 비트 위치 결정부(001)에서는 다음 허프만 부호의 선두 비트가 32비트 데이타 '01010110101011100101100110110100'의 제25 비트째인 것을 구할 수 있다.
한편, 플래그 = 1이 선두 비트 위치 결정부(40)에 입력되므로, 선두 비트 위치 결정부(600)은 구하고자 하는 허프만 부호의 부호 길이가 8비트보다 길다고 판정하고, 32비트 데이타 '01010110101011100101100110110100'에서 제25 비트째부터 제32비트째의 8비트 데이타 '10110100'과 다음의 허프만 부호 데이타열 24비트를 아울러 새로운 32비트 데이타로서 출력한다.
플래그 = 1을 출력한 경우에서의 복호 테이블(60)의 8비트 복호 워드 데이타 출력의 취급에 관해서는, 예를 들면 플래그를 인에이블 신호로서 이용하고, 플래그 = 1 일 때에는 복호 워드를 무시하도록 한다. 이하, 같은 처리를 반복함으로써 허프만 부호와 데이타열이 순차 복호화된다.
그러나, 상술한 허프만 부호 복호화 회로에서는 제1, 제2 종래예와 같이, 1워드씩 복호 워드를 구하는 경우에는 처리에 시간이 걸리고 복호화 처리의 단축화가도모하지 않는다는 결점이 있다.
또, 2 워드씩 복호 워드를 구하는 구성으로 하는 제3 종래예에서는 부호 길이 데이타등을 선두 비트 위치 결정부(600) → 복호 테이블(602) → 선두 비트 위치 결정부(601) → 복호 테이블(603) → 가산기(604) → 가산기(605) → 포인터(606) → 선두 비트 위치 결정부(600)을 경우시켜 처리를 행할 필요가 있기 때문에, 패스(신호 경로)가 길어진다. 이 때문에, 1 워드씩 복호 워드를 구하는 경우보다 복호화 처리가 고속으로 되지만, 패스(신호 경로)가 길어지는 만큼, 처리 속도가 늦어진다. 즉, 패스(신호 경로)가 길어지기 때문에, 동작 주파수를 올려 고속화하기가 곤란해진다.
본 발명은 제1 목적은 복호 워드를 2워드씩 복호화함으로써 허프만 부호의 복호화 처리를 고속화를 실현할 수 있는 허프만 부호 복호화 회로를 제공하는 데 있다.
본 발명의 제2 목적은 회로의 패스(신호 경로)를 짧게 함으로써, 복호화 처리의 고속화를 실현할 수 있는 허프만 부호 복호화 회로를 제공하는 데 있다.
본 발명 제3 목적은 상기 목적에 더해서 부호화의 고속 처리를 달성하면서 회로 규모의 증대를 억지할 수 있는 구성의 허프만 부호 복호화 회로를 제공하는데 있다.
상기목적을 달성하는 본 발명의 허프만 부호 복호화 회로는 허프만 부호 데이타열에서 포함하는 허프만 부호의 선두 비트 위치를 결정하고, 상기 결정된 선두 비트 위치로부터 소정 비트수의 상기 허프만 부호 데이타열을 받아들이는 선두 비트 위치 결정 수단과, 상기 선두 비트 위치 결정 수단으로부터 출력된 상기 허프만 부호 데이타열의 선두 비트로부터 미리 결정된 비트수의 제1 데이타열을 입력하고, 상기 제1 데이타열을 어드레스로서 대응하는 제1 복호 워드 및 제1 부호 길이를 출력하는 제1 복호 정보 격납 수단과, 상기 선두 비트 위치 결정 수단으로부터 출력되는 상기 허프만 부호 데이타열의 다른 비트 위치에서 미리 결정된 비트수의 제2 내지 제데이타열을 각각 입력하고, 제2 내지 제n 데이타열을 어드레스로서 대응하는 복호 워드 및 부호 길이를 각각 출력하는 제2 내지 제n 의 복수의 복호 정보 격납 수단과, 상기 제1 복호 정보 격납 수단이 출력하는 제1 부호 길이를 선택 신호로서 상기 제2 내지 제n 의 복호 정보 격납 수단의 출력 중 어느 하나를 선택하고, 제2 복호 워드 및 제2 부호 길이로서 출력하는 선택 수단을 구비하고,
상기 선택 수단으로부터 출력되는 상기 제2 부호 길이를 상기 선두 비트 위치 결정 수단에 공급하고, 상기 선두 비트 위치 결정 수단은 상기 제2 부호 길이를 기초로 해서 포함하는 허프만 부호 데이타열의 선두 비트 위치를 결정한다.
상기 구성에서 바람직한 형태에 따르면, 상기 제2 내지 제n 의 복호 정보 격납 수단은 제2 복호 워드의 부호 길이와 상기 제1 부호 길이의 합을 상기 제2 부호 길이로서 격납한다. 또, 상기 제1 에서 제n 의 복호 정보 격납 수단에 입력하는 상기 제1 에서 제n 의 데이타열은 각각 동일한 비트수이다.
상기 구성에서 바람직한 다른 형태에 따르면, 제2 복호 워드 및 제2의 부호 길이를 출력하는 상기 제2 에서 제n 의 복호 정보 격납 수단은 상기 선두 비트 위치 결정 수단으로부터 출력되는 상기 허프만 부호 데이타열을 순차 1비트씩 시프트한 비트 위치를 선두 비트로 하는 상기 제2 내지 제n 데이타열이 입력된다.
상기 구성에서 또 다른 바람직한 다른 형태에 따르면, 상기 제1에서 제n 의 복호 정보 격납 수단에 입력하는 상기 제1 에서 제n 의 데이타열은 각각 동일한 비트수이고, 제2 복호 워드 및 제2 부호 길이를 출력하는 상기 제2 내지 제n 의 복호 정보 격납 수단은 상기 선두 비트 위치 결정 수단으로부터 출력되는 상기 허프만 부호 데이타열의 선두 비트로부터 순차 1 비트씩 시프트한 선두 비트로 하는 상기 제2 내지 제n 데이타열이 입력된다.
상기 구성에서 또 다른 바람직한 다른 형태에 따르면, 상기 제1에서 제n 의 복호 정보 격납 수단에 입력하는 상기 제1 에서 제n 의 데이타열은 각각 동일한 비트수이고, 제2 복호 워드 및 제2 부호 길이를 출력하는 상기 제2 내지 제n 의 복호 정보 격납 수단에는 상기 선두 비트 위치 결정 수단으로부터 출력되는 상기 허프만 부호 데이타열의 선두 비트로부터 상기 허프만 부호의 최소 부호 길이만큼 시프트한 비트 위치로 부터 순차 1 비트씩 시프트한 비트 위치를 선두 비트로 하는 상기 제2 내지 제n 데이타열이 입력된다.
상기 목적을 달성하는 본 발명의 다른 허프만 부호 복호 회로는 허프만 부호 데이타열에서 포함하는 허프만 부호의 선두 비트 위치를 결정하고, 상기 결정된 선두 비트 위치로부터 소정 비트수의 상기 허프만 부호 데이타열을 받아들이는 선두 비트 위치 결정 수단과, 상기 선두 비트 위치 결정 수단으로부터 출력된 상기 허프만 부호 데이타열을 제1 데이타열로서 입력하고, 상기 제1 데이타열을 어드레스로서 대응하는 제1 복호 워드 및 제1 부호 길이를 출력하는 제1 복호 정보 격납 수단과, 상기 선두 비트 위치 결정 수단으로부터 출력되는 상기 허프만 부호 데이타열의 다른 비트 위치에서 미리 결정된 비트수의 제2 내지 제데이타열을 각각 입력하고, 제2 내지 제n 데이타열을 어드레스로서 대응하는 복호 워드 및 부호 길이를 각각 출력하는 제2 내지 제n 의 복수의 복호 정보 격납 수단과, 상기 제1 복호 정보 격납 수단이 출력하는 제1 부호 길이를 선택 신호로서 상기 제2 내지 제n 의 복호 정보 격납 수단의 출력 중 어느 하나를 선택하고, 제2 복호 워드 및 제2 부호 길이로서 출력하는 선택 수단을 구비하고,상기 선택 수단으로부터 출력되는 상기 제2 부호 길이를 상기 선두 비트 위치 결정 수단에 공급하고, 상기 선두 비트 위치 결정 수단은 상기 제2 부호 길이를 기초로 해서 포함하는 허프만 부호 데이타열의 선두 비트 위치를 결정하며, 상기 제2 내지 제n 의 복호 정보 격납 수단은 복호화 대상외에 데이타열이 입력된 경우에, 상기 제1 복호 정보 격납 수단이 출력하는 제1 부호 길이와 동일한 부호 길이를 제2 부호길이로서 출력함과 동시에, 상기 제2 복호 워드의 유무효를 나타내는 제어 신호를 출력한다.
상기 구성에서 바람직한 형태에 따르면, 상기 제2 내지 제n 의 복호 정보 격납 수단은 상기 제2 내지 제n 데이타열에 대응하는 제2 복호 워드가 존재하는 경우에, 제2 복호 워드의 부호 길이와 상기 제1 부호 길이의 합을 상기 제2 부호 길이로서 격납한다. 또, 상기 제2 에서 제n 의 복호 정보 격납 수단은 상기 제2 에서 제n 의 데이타열이 복호 워드에 대응하는 허프만 부호의 일부분인 경우에, 복호 워드가 무효인 것을 나타내는 제어 신호를 출력함과 동시에, 상기 제1 부호 길이를 상기 제2 부호 길이로서 출력한다.
상기 구성에서 바람직한 다른 형태에 따르면, 제2 복호 워드 및 제2의 부호 길이를 출력하는 상기 제2 에서 제n 의 복호 정보 격납 수단은 상기 선두 비트 위치 결정 수단으로부터 출력되는 상기 제1 데이타열의 선두 비트로부터 순차 1 비트씩 시프트한비트 위치를 선두 비트로 하는 상기 제2 내지 제n 데이타열이 입력되고, 상기 제1 에서 제n 의 복호 정보 격납 수단에 입력되는 상기 제1 에서 제n 데이타열은 각각 1비트씩 뺀 비트수이다.
상기 구성에서 또 다른 바람직한 다른 형태에 따르면, 상기 선택수단으로부터 출력되는 상기 제2 복호 워드와 상기 제어 신호를 입력하고, 상기 제어 신호가 유효를 나타내는 상기 제2 복호 워드를 출력하고, 상기 제어 신호가 무효를 나타내는 경우에 상기 제2 복호 워드의 출력을 금지하는 출력수단을 구비한다.
상기 구성에서 또 다른 바람직한 다른 형태에 따르면, 제2 복호 워드 및 제2 부호 길이를 출력하는 상기 제2 내지 제n 의 복호 정보 격납 수단에는 상기 선두 비트 위치 결정 수단으로부터 출력되는 상기 제1 데이타열의 선두 비트로부터 상기 허프만 부호의 최소 부호 길이만큼 시프트한 비트 위치를 선두 비트로 하는 상기 제2 내지 제n 데이타열이 입력되고, 상기 제1 에서 제n 의 복호 정보 격납 수단에 입력되는 상기 제1에서 제n 데이타열은 각각 1 비트씩 뺀 비트수이다.
본 발명의 또 다른 목적, 특징 및 효과는 이하의 상세한 설명에서 분명해질 것이다.
본 발명의 적합한 실시예를 첨부도면을 참조해서 상세히 설명한다. 제1도는 본 발명의 제1 실시예에 관한 허프만 부호 복호화 회로의 구성을도시한 블럭도이다. 여기서, 허프만 부호의 최대 부호 워드 길이를 16비트로 한다. 블럭도 내의 허프만 부호 데이타열 [31-0]은 허프만 부호 데이타열 32비트를도시한 것으로, 선두 비트가 최상위 비트(비트 번호 31)이다.
제1도에도시한 바와 같이, 제1 실시예에 관한 허프만 부호 복호화 회로는 입력된 허프만 부호 데이타열 a에서 허프만 부호의 선두 비트를 결정하는 선두 비트 위치 결정부(11)과, 선두 비트 위치 결정부(11)에서 결정된 허프만 부호의 선두 비트로부터 16비트분을 입력하는 복호 테이블(12)와, 허프만 부호의 제2 비트째로부터 16비트분을 입력하는 복호 테이블(13)과, 허프만 부호의(선두로부터 세어) 제n 비트째(3≤n≤17)에서 16비트 데이타를 입력하는 복호 테이블(14 내지 28)과, 복호 테이블(12)의 출력인 부호 길이 c를 선택 신호로서, 복호 테이블(13 내지 28)의 출려 데이타 중 어느 하나를 선택해서 출력하는 셀렉터(30)으로 구성된다. 또한, 복호 테이블(12 내지 28)은 예를 들면 ROM(Read Only Memory)로 실현된다.
선두 비트 위치 결정부(11)에서는 전송된 부호 길이의 합 e 를 기초로 해서 다음에 출력하는 허프만 부호 데이타열 a의 선두 비트 위치를 결정한다. 전송된 부호 길이의 합 e 로 나타낸 비트 위치까지의 복호화가 종료한 것을 나타내고 있으므로, 선두 비트 위치 결정부(11)에서는 부호 길이의 합 e 로 나타낸 비트 위치의 다음 비트 위치를 다음에 출력하는 허프만 부호 데이타열 a의 선두 비트 위치로서 설정한다.
상기 선두 비트 위치 결정부(11)은 전송된 부호 길이의 합으로 나타낸 비트수만큼 허프만 부호 데이타열 a 를 시프트하는 시프트 회로를 적용함으로써 실현된다.
셀렉터(30)은 복호 테이블(12)로부터 출력되는 부호 길이 c 가 「1」인 경우에는 복호 테이블(13)의 출력 데이타를 선택하고, 복호 테이블(12)로부터 출력되는 부호 길이 c 가 「2」인 경우에는 복호 테이블(14)의 출력 데이타를 선택한다.[다른 복호 테이블(15 내지 28)에 관해서도 동일.] 셀렉터(30)은 복호 테이블(12)로부터 출력되는 부호 길이 c의 값(1 내지 16)에 대응한 입력 포트 위치의 복호 테이블(13 내지 28)중 어느 하나의 출력을 선택해서 복호 워드 d로 하여 출력한다. 또, 부호 길이의 합 e를 선두 비트 위치 결정부(11)에 출력한다.
제2도에도시한 바와 같이, 복호 테이블(12)에는 입력되는 허프만 부호를 어드레스로 하고, 그 어드레스에 대응하여 복호 워드(8비트)와 부호 길이(5비트)가 격납된다.
또, 복호 테이블(13)으로부터 복호 테이블(28)에는 각각 허프만 부호를 어드레스하고, 그 어드레스에 대응하여 복호 워드 8비트와 2라인의 복호 워드의 부호 길이의 합 6비트가 격납되어 있다.
각 복호 테이블 n(13≤n≤28)에 격납되는 부호 길이의 합은 복호 테이블 n 이 복호화된 복호 워드의 부호 길이와 복호 테이블 n의 출력이 접속되는 셀렉터(30)의 입력 포트 위치, 즉 대응하는 선택 신호의 값 「1 내지 16」[즉 복호 테이블 (12)로부터의 부호 길이]를 가산한 값이다.
또한 제1도에서 부호 길이 5비트폭, 부호 길이의 합을 6비트폭으로 설정한 것은 복호 테이블 (12)의 출력인 부호 길이는 「1 내지 16」의 값을 취하고(즉 5비트 폭), 부호 길이의 합은 최대32(즉 6비트폭)으로 되기 때문이다.
제2도 내지 제5도는 제1도의 복호 테이블 (12, 13, 16, 23)의 설정내용의 일예가도시되어 있다. 예를 들면, 복호 워드 「A」에 대한 허프만 부호가 「0101」, 복호 워드 「B」에 대한 허프만 부호가 「0110101」인 것으로 한다.
복호 테이블 (12)는 제2도에도시한 바와 같이 「0101 x…」의 입력에 대해 복호 워드 「A」를 출력하고, 부호 길이「4」를 출력한다. 또, 「0110101 x…」의 입력에 대하여 복호 워드 「B」, 부호 길이「7」를 출력하도록 미리 설정되어 있다.
복호 테이블 (13)에는 제3도에도시한 바와 같이 , 복호 워드 및 부호 길이의 합이 격납되어 있다. 부호 길이의 합으로서는 복호 테이블 (12)에 구해진 복호 워드의 부호 길이가 1[셀렉터(30)의 선택 신호가 「1」]인 경우에 대응하여 복호 테이블 (13)에서 구해진 복호 워드의 부호 길이에 「1」을 가산한 값이 격납되어 있다. 즉, 복호 테이블 (13)은 「0101 x…」이 입력된 경우, 복호 워드 「A」와 부호 길이의 합「5」(= 4 + 1)을 출력하도록 설정되어 있다.
또, 복호 테이블 (16)에는 제4도에도시한 바와 같이, 복호 워드와 부호 길이의 합이 격납되어 있다. 부호 길이의 합으로서는 복호 테이블 (12)에서 구해진 복호 워드의 부호 길이가 「4」인 경우에 대응하여 복호 테이블 (16)에서 구해진 복호 워드의 부호 길이가 「4」를 가산한 값(=부호 길이 + 4)가 설정되어 있다. 복호 테이블 (16)에 예를 들면「0101 x…」이 입력된 경우, 복호 워드 「A」와 부호 길이의 합「8」(= 4 + 4)을 출력한다.
마찬가지로, 다른 복호 테이블에도 어드레스 입력에 대응하여 복호 워드와 부호 길이의 합이 격납된다. 선두 비트 위치 결정부(11)의 초기치는 입력된 허프만 부호의 데이타 a(32비트)의 선두 비트로 한다.
또한, 각 복호 테이블에 관해서는 복호 워드 「A」에 대응하는 허프만 부호가 「0101」인 경우, 어드레스 입력「01010…0」에서 「01010…1」의 모든 복호 워드 「A」와 부호 길이 = 4를 설정한다. 즉, 16비트 중 상위 4비트가 「0101」이면 5비트째로부터의 값에 관계없이 복호 워드 「A」와 부호 길이 = 4를 설정한다.
이하, 허프만 부호 데이타 a의 구체예를 기초로 해서 본 실시예의 동작을 설명한다. 가령, 허프만 부호 데이타열 「01010110101001001…」가 전송되어 오는 것으로 한다.
선두 비트 위치 결정부(11)에는 선두로부터 32비트 「01010110101001001…」가 입력된다. 선두 비트 위치 결정부(11)의 초기치가 입력된 허프만 부호 데이타 32비트의 선두 비트이므로, 선두 비트 위치 결정부(11)은 전송된 허프만 부호 데이타열의 선두 비트로부터의 32비트 「01010110101001001…」을 출력한다.
제1도에도시한 바와 같이, 각 복호 테이블 (12 내지 28)에는 허프만 부호 데이타열 32비트 중 16비트가 입력된다. []로 둘러싼 수자는 각 복호 테이블에 입력하는 16비트의 비트 번호를 나타낸다. 복호 테이블(12)에는 비트 번호(31 ; 허프만 부호 데이타열 32비트의 선두 비트)로부터 비트 번호 16까지의 16비트가 입력된다. 또, 복호 테이블 (13)에는 비트 번호 30 부터 비트 번호 15 까지의 16비트가 입력된다. 이하, 비트 번호 를 하나씩 뺀 16비트가 복호 테이블(14 내지 28)에 입력된다.
즉, 복호 테이블(12)는 허프만 부호 데이타열의 선두 비트로부터 16비트의 「0101011010100100」이 입력된다.
복호 테이블 (12)는 제2도에도시한 바와 같이. 「0101 x …」이 입력된 경우에 복호 워드「A」, 부호 길이 = 4 를 출력하도록 설정되어 있기 때문에, 복호 워드 「A」, 부호 길이 = 4 를 출력한다. 복호 테이블 (12)의 출력인 부호 길이 = 4는 선택 신호로서 셀렉터(30)에 전송된다.
한편, 복호 테이블(13)으로부터 복호 테이블 (28)에도 허프만 부호 데이타열이 각각 소저의 비트 위치로부터 16비트 입력되고, 각 입력에 대응하는 데이타(복호 워드 및 부호 길이의 합)을 셀렉터(30)에 출력한다.
예를 들면, 복호 테이블 (16)에서는 제5 비트째(비트 번호 27)로부터 16비트의 데이타 「0110101001001…」이 입력된다. 복호 테이블(16)은 제4도에도시한 바와 같이, 「0110101 x…」이 입력된 경우, 복호 워드「B」, 부호 길이의 합 「11」(=4+7)를 출력하도록 설정되어 있기 때문에, 복호 워드 「B」, 부호 길이의 합 11 를 출력한다.
셀렉터(30)에서는 복호 테이블(12)의 부호 길이 = 4가 선택 신호로서 입력된다. 이 경우, 셀렉터(30)은 복호 테이블 (16)의 출력 데이타를 선택하고, 복호 워드 「B」, 부호 길이의 합 11 를 출력한다. 다른 복호 테이블로부터의 복호 워드 및 부호 길이의 합 셀렉터(30)에서 선택되지 않았으므로 출력되지 않는다.
그리고, 부호 길이의 합 = 11이 선두 비트 위치 결정부(11)로 전송되므로, 선두 비트 위치 결정부(11)에서는 전송된 부호 길이의 합 = 11을 기초로 해서 다음에 출력되는 허프만 부호 데이타열의 선두 비트 위치를 결정한다. 이 경우, 부호 길이의 합 = 11로, 선두에서 11 비트까지의 복호화가 종료한 것을 나타내고 있으므로, 선두 비트 위치 결정부(11)에서는 비트 11의 다음 비트 위치 12를 다음에 출력하는 허프만 부호 데이타열의 선두 비트 위치로서 결정한다. 즉, 선두 비트 위치 결정부(11)은 전회 입력된 32비트의 허프만 부호 데이타열 「01010110101001001…」의 선두에서 제12 비트째를 다음 허프만 부호의 선두 비트로서 설정하고, 다시 제12 비트째부터 32비트의 데이타 즉 「001001…1」을 출력한다.
같은 조작을 반복함으로써 제1 실시예에서는 허프만 부호 데이타열을 2워드씩 복호화할 수 있다. 이에 따라, 복호화 처리의 고속화가 실현된다. 이상 설명한 바와 같이, 본 발명의 허프만 부호 복호화 회로에 따르면 복호 워드를 2워드씩 복호화할 수 있음과 동시에, 선두 비트 위치 결정부(11)로부터 복호 테이블로의 경로 및 복호 테이블부터 셀렉터(30)을 거쳐 선두 비트 위치 결정부(11)로의 경로로 구성된 신호·경로가 종래의 회로와 비교해서 단축될수 있기 때문에, 허프만 부호 복호화 처리를 고속으로 행할 수 있다.
본 발명에서는 제2 복호 워드의 부호 길이와 제1 복호 워드의 부호 길이의 합을제2 복호 워드를 출력하는 복호 테이블에 미리 격납해 둠으로써, 선두 비트를 제어하기 위한 회로 구성을 간단하게 할 수 있음과 동시에, 그에 따라 복호화 처리가 고속화된다. 또한, 본 발명에 따르면, 복수의 복호 테이블에 입력되는 허프만 부호 데이타를 1 비트마다 순차 시프트시킨 구성에 따라 회로 구성이 간이화되고 고속화된다.
제1도의 제1 실시예에서는 허프만 부호의 부호 길이가 「1」내지 「16」인 경우를 전제로 하고 있다. 이 때문에, 복호 테이블(12) 이외의 복호 테이블에 관해서는 각 부호 길이의 값에 대응시켜 합계 16개의 복호 테이블(13 내지 28)을 설치하고 있다.
따라서, 허프만 부호의 최소 부호 길이가 「1」보다 큰 경우에는 최소 부호 길이보다 작은 선택 신호의 값에 대응하는 복호 테이블을 생략하는 것이 가능하다.
제6도는 허프만 부호의 최소 부호 길이를 「4」로 한 제2 실시예의 회로 구성을도시한다. 제6도에서 제1도와 공통의 부호를 붙인 구성은 제1도의 구성과 동일한 것을 나타낸다. 상기 제2 실시예에서는 허프만 부호의 최소 부호 길이를 「4」로 설정함을로써, 복호 테이블(12)로부터 길이 「3」이하가 선택 신호로서 출력되는 경우는 없다. 따라서, 제1도의 복호 테이블(13 내지 15)를 생략한 구성으로 되어 있다. 이에 따라, 생략된 복호 테이블(13 내지 15)분만큼 복호 테이블의 사이즈를 작게 할 수 있게 되어 있다.
다음으로, 제7도를 참조하여 본 발명의 제3 실시예에 관해 설명한다. 제3 실시예의 허프만 부호 복호 회로는 제1 실시예와 비교해서 복호화 처리의 고속화를 달성함과 동시에, 복호 테이블의 사이즈를 작게 하는 경우에 적합하다. 제7도는 제3 실시예의 허프만 부호 복호화 회로의 블럭도이다.
제3 실시예의 허프만 부호 복호 회로에서는 허프만 부호의 최대 부호 워드 길이를 16비트로 하고 있다.도면 중, 허프만 부호 데이타열 f[15-0]은 허프만 부호 데이타의 16비트분은 나타낸 것으로 선두 비트를 최상위 비트의 비트 번호 15로 설정하고 있다.
제7도에도시한 바와 같이, 실시예의 허프만 부호 복호화 회로는 허프만 부호 데이타열 f에서 허프만 부호의 선두 위치 비트를 결정하는 선두 비트 위치 결정부(71)과 선두 비트 위치 결정부(71)에서 결정된 허프만 부호의 선두 위치 비트로부터 16비트분을 입력하는 복호 테이블(72)와, 선두에서 제2 비트째로부터 제16비트째까지의 15비트를 입력하는 복호 테이블(73)과, 이하와 같이 해서, 허프만 부호 데이타열의 선두 제n 비트째 (3≤n≤16)로부터 제16비트째까지의 비트 데이타를 입력하는 복호 테이블(74 내지 87)과, 복호 테이블(72)로 부터 출려되는 부호 길이 h를 선택 신호로서 복호테이블(73 내지 87)의 출력 중 어느 하나를 선택해서 출력하는 셀렉터(90)과, 셀렉터(90)으로부터 출력되는 제어 신호인 플래그 k를 기초로 해서 복호 워드i의 출력을 허가 또는 금지하는 래치 회로(100)으로 구성된다. 또한 복호 테이블(72 내지 87)은 예를 들면 ROM(Read Only Memory)로 실현된다.
선두 비트 위치 결정부(71)에서는 전송된 부호 길이의 합 J 를 기초로 해서 다음에 출력하는 허프만 부호 데이타열 f의 선두 비트 위치를 결정한다. 전송된 부호 길이의 합 j로 나타낸 비트 위치까지의 복호화가 종료한 것을 나타내고 있으므로, 선두 비트 위치 결정부(71)에서는 부호 길이의 합 j 로 나타낸 비트 위치의 다음 비트 위치를 다음에 출력하는 허프만 부호 데이타열 f의 선두 비트 위치로서 설정한다. 상기 선두 비트 위치 결정부(71)은 전송된 부호 길이의 합 j로 나타낸 비트수만큼 허프만 부호 데이타열 f 를 시프트하는 시프트 회로를 적용함으로써 실현된다.
셀렉터(90)은 복호 테이블(72)로부터 출력되는 부호 길이 h 가 「1」인 경우에는 복호 테이블(73)의 출력 데이타를 선택하고, 부호 길이 h 가 「2」인 경우에는 복호 테이블(74)의 출력 데이타를 선택한다.(복호 워드 i와 부호 길이 합 j와 플래그 k)를 선택하고, 마찬가지로 해서 부호 길이 h의 값을 기초로 하여 복호 테이블(75 내지 87)의 출력 데이타(복호 워드 i와 부호 길이 합 j와 플래그 k)를 선택 출력한다. 또 부호 길이의 합 j를 선두 비트 위치 결정부(71)에 출력한다.
제8도에도시한 바와 같이, 복호 테이블(72)에는 입력되는 허프만 부호데이타 어드레스로 해서 입력하고, 그 어드레스에 대응하여 복호 워드 8비트와 부호 길이 5비트가 격납되어 있다. 또 제9도에서 제11도에도시한 바와 같이, 복호 테이블(73) 내지 복호 테이블(87)에는 입력된 허프만 부호 데이타를 어드레스로서 입력하고, 그 어드레스에 대응하여 복호 워드 8비트와 2라인의 복호 워드의 부호 길이의 합 6비트 및 플래그 = 1 비트가 격납되어 있다.
각 복호 테이블 n(73≤n≤87)에 격납되는 부호 길이의 합은 복호 테이블 n (73≤n≤87)이 복호화된 복호 워드의 부호 길이와 복호 테이블 n의 출력이 접속되는 셀렉터(90)의 입력 포트 위치, 즉 대응하는 선택 신호의 값 「1 내지 15」[즉 복호 테이블 (72)로부터의 부호 길이]를 가산한 값이다.
제8도부터 제11 에는 제7도에서의 복호 테이블의 일예가도시되어 있다. 예를 들면, 복호 워드「A」에 대한 허프만 부호「0101」, 복호 워드 「B」에 대한 허프만 부호「0110101」, 복호 워드「C」에 대한 허프만 부호「1011010000」복호워드 「D」에 대한 허프만 부호 「1011010000」 로서 설정되어 있다.
제8도에도시한 바와 같이, 복호 테이블(72)는「0101 x…1」이 입력된 경우 복호 워드 「A」, 부호 길이 = 4 를 출력하고, 「0110101 x…1」이 입력된 경우 복호 워드 「B」, 부호 길이 = 7 를 출력하며, 「0111001011001 x…1」이 입력된 경우 복호 워드 「C」, 부호 길이 = 13 를 출력하고, 「1011010000 x…1」이 입력된 경우 복호 워드 「D」, 부호 길이 = 10 를 출력하도록 설정되어 있다.
복호 테이블(73)으로부터 복호 테이블(87)에는 복호 워드 8비트 및 부호 길이의합 6비트, 제어 신호로서의 플래그 1 비트가 이하와 같이 설정되어 있다.
제9도에도시한 바와 같이, 예를 들면 복호 테이블(73)은 「0101 x…1」이 입력된 경우 복호 워드 「A」, 부호 길이의 합 「5」( = 4 + 1) 및 플래그 = 10을 출력하고, 「0110101 x…1」이 입력된 경우 복호 워드 「B」, 부호 길이의 합 「8」( = 7 + 1) 및 플래그 = 0을 를 출력하며, 「0111001011001 x…1」이 입력된 경우 복호 워드 「C」, 부호 길이의 합 「14」( = 13 + 1) 및 플래그 = 0을 출력하고, 「1011010000 x…1」이 입력된 경우 복호 워드 「D」, 부호 길이의 합 「11」( = 10 + 1) 및 플래그 = 0을 출력한다.
제11도에도시한 바와 같이, 복호 테이블(85)는 복호 워드에 대응하고 있는 허프만 부호의 일부분으로서, 예를 들면 「010」.「011」,「101」이 입력된 경우, 복호 워드에 대응하는 허프만 부호의 일부분밖에 어드레스 입력되어 있지 않기 때문에, 부호 길이 = 13, 플래그 = 1 을 출력한다.
제11도에서는 입력된 허프만 부호 3 비트 이하에 대응하는 복호 워드가도시되어 있지 않지만, 예를 들면 허프만 부호 3비트 「010」에 대응하는 복호 워드를 설정한 경우에는 그 허프만 부호 3비느「010」을 어드레스로서 대응하는 복호 워드 및 부호 길이의 합 「16」(= 3 + 13)을 출력하도록 설정되는 것은 물론이다. 이것은 복호 테이블(86 내지 87)에 관해서도 마찬가지다.
복호 테이블(85)에서, 부호 길이를 「13」으로 설정한 것은 대응하는 복호 워드가 존재하지 않은 경우(플래그 = 1 인 경우)에 복호 테이블(72)에서 구해진 복호 워드의 부호 길이를 선두 비트 위치 결정부(71)로 송출하기 때문이다. 셀렉터(90)이 복호 테이블(85)의 출력을 선택하는 것은 복호 테이블(72)로부터 출력되는 복호 워드에 대응하는 부호 길이가 「13」일 때인 것에 따른다.
이와 같이 복호 테이블(73 내지 97)에서는 복호 워드에 대응하는 허프만 부호의 일부분밖에 어드레스로서 입력되지 않은 경우에는, 부호 길이의 합을 복호 테이블(72)에서 결정된 복호 워드의 부호 길이로 하고, 플래그 = 1 을 출력하도록 설정된다. 마찬가지로 다른 복호 테이블에 관해서도, 어드레스 입력에 대응하여 복호 워드, 부호 길이, 프래그가 설정되어 있다.
또, 선두 비트 위치 결정부(71)의 초기치는 입력된 허프만 부호 데이타열 16비트의 선두 비트 위치(비트 번호 16)으로 한다.
또한 각 복호 테이블에 관해서는 복호 워드「A」에 대응하는 허프만 부호가 「0101」인 경우, 어드레스 입력「02020…0」에서 「01011…1」의 전부에 복호 워드「A」와 부호 길이 = 4 를 설정한다. 즉, 상위 4 비트 「0101」이면 5비트째부터의 값에 관계없이 복호 워드「A」부호 길이 = 4 를 설정한다.
이와 같이 제3 실시예의 허프만 부호 복호화 회로에서는 복호 테이블(72)로부터 복호 테이블(87)의 입력 어드레스의 비트수가 복호 테이블(72)부터 순서대로 16비트,15비트,14비트, …, 1비트로 되기 때문에, 전체로서의 복호 테이블의 사이즈를 제1 실시예의 것보다 작게 할 수 있다. 제1 실시예에서는 모든 복호 테이블의 입력 어드레스가 16비트이므로, 제3 실시예의 구성에서 전체적인 복호 테이블의 사이즈가 커진다.
이하, 허프만 부호 데이타열의 구체예를 기초로 해서 본 실시예의 동작을 설명한다. 가령, 허프만 부호 데이타열 「0101011010101110010110011011010000…」이 전송되어 온 것으로 한다.
선두 비트 위치 결정부(71)에는 선두에서 16비트 「0101011010101110」이 입력된다. 그리고, 선두 비트 위치 결정부(71)에서는 선두 비트의 초기치는 입력된 허프만 부호 데이타열 16비트 선두 비트이므로, 선두에서 16비트 「0101011010101110」을 출력한다.
복호 테이블(72)에는 선두에서 16비트 데이타「0101011010101110」이 입력된다.
복호 테이블(72)는 제8도에도시한 바와 같이, 「0101 x…」이 입력된 경우, 복호 워드 「A」, 부호 길이 = 4 를 출력하도록 설정되어 있기 때문에 복호 워드 「A」, 부호 길이 = 4 를 출력한다. 복호 테이블(72)의 출력인 부호 길이 = 4는 선택 신호로서 셀렉터(90)에 공급된다.
한편, 복호 테이블(73)으로부터 복호 테이블 (87)에도 제7도에도시한 바와 같이, 허프만 부호 데이타가 각각 입력되고, 각 입력에 대응하는 데이타(복호 워드 및 부호 길이의 합과 플래그)을 셀렉터(90)에 출력한다.
예를 들면, 복호 테이블 (76)에서는 제5 비트째부터 제16비트째의 데이타 「0110101101110」이 입력된다. 복호 테이블(76)은 제10도에도시한 바와 같이, 「0110101 x…」이 입력된 경우, 복호 워드「B」, 부호 길이의 합 「11」 를 출력하도록 설정되어 있기 때문에, 복호 워드 「B」, 부호 길이의 합 11 를 출력한다.
셀렉터(90)에서는 복호 테이블(72)의 부호 길이 = 4가 선택 신호로 해서 이 경우, 복호 테이블 (76)의 출력 데이타를 선택한다. 이 결과 복호 워드 「B」, 부호 길이의 합 = 11, 플래그 = 0을 출력하고, 부호 길이의 합은 선두 비트 위치 결정부(71)에 공급된다.
셀렉터(90)으로부터 출력된 복호 워드「B」, 플래그 = 0은 래치 회로(100)에 입력된다. 래치 회로(100)에서는 플래그 = 0이므로 입력된 복호 워드 「B」를 그대로 출력한다.
이로써, 복호 테이블(72)로부터 복호 워드 g로서 「A」와 복호 테이블(76)으로부터의 복호 워드 i로서 「B」가 얻어지고, 2워드씩 복호 워드가 구해지는 것을 알 수 있다.
그리고, 부호 길이의 합 = 11이 선두 비트 위치 결정부(71)로 전송되므로, 선두 비트 위치 결정부(71)에서는 전송된 부호 길이의 합 = 11을 기초로 해서 다음에 출력하는 허프만 부호 데이타열의 선두 비트 위치를 결정한다. 이 경우, 부호 길이의 합 = 11로, 선두에서 11 비트까지의 복호화가 종료한 것을 나타내고 있으므로, 선두 비트 위치 결정부(71)에서는 먼저 입력된 허프만 부호 데이타열 16비트 「0101011010101110」의 선두 비트로부터 제12 비트째를 다음 허프만 부호의 선두 위치 비트 로 설정하고, 다시 설정된 선두 위치 비트로부터 16비트, 즉 「0111001011001101」을 출력한다.
복호 테이블(72)는 제8도에도시한 바와 같이, 「01110001011001 x…」이 입력된 경우, 복호 워드 「C」, 부호 길이 = 13을 출력하도록 설정되어 있기 때문에 복호 워드「C」, 부호 길이 = 13을 출력한다. 부호 길이 = 13은 선택 신호로서 셀렉터(90)에 공급된다.
한편, 복호 테이블(73)으로부터 복호 테이블(87)에도 허프만 부호 데이타가 각각 입력되고, 각 허프만 부호 데이타를 어드레스로서 대응하는 데이타를 셀렉터(90)에출력한다.
예를 들면, 복호 테이블(85)에는 선두에서 제14비트째부터 제16비트째의 3비트 데이타 「010」이 입력된다. 복호 테이블(85)는 제11도에도시한 바와 같이, 「010」이 입력된 경우, 부호 길이 = 13, 플래그 = 1을 출력하도록 설정되어 있기 때문에 부호 길이 = 13, 플래그 = 1 을 출력한다.
셀렉터(90)에서는 복호 테이블(72)의 부호 길이 = 13을 선택 신호로 하고, 이 경우, 복호 테이블 (85)의 출력을 선택하며, 부호 길이 = 13, 플래그 = 1을 출력한다.
셀렉터(90)으로부터 출력된 플래그 = 1은 래치 회로(100)에 입력된다. 래치 회로(100)에서는 플래그 = 1이므로, 아무것도 출력하지 않는다.
이 경우에는 복호 테이블(72)에서만 복호 워드가 출력되고, 복호 워드가 2워드씩 출력하지 않는다.
셀렉터(90)으로부터 출력된 부호 길이 = 13은 선두 비트 위치 결정부(71)에 공급되고, 선두 비트 위치 결정부(71)에서는 먼저 입력된 16비트 데이타 「0111001011001101」의 선두에서 제14비트째를 다음의 허프만 부호의 선두 비트로 설정하고 , 다시 설정된 선두 위치로부터 16비트 데이타 「1011010000…」을 출력한다.
같은 조작을 반복함으로써, 본 실시예는 입력된 허프만 부호 데이타열을 순차 복호화한다.
제3 실시예에서는 제2 복호 워드를 출력하는 복호 테이블(73 내지 87 )에 복호 워드를 나타내는 허프만 부호의 일부분밖에 어드레스 입력되지 않는 경우에는 플래그 = 1을 출력하고, 복호 테이블(72)에서만 복호화를 행한다. 따라서, 제1 실시예와 비교한 경우 반드시 2 워드씩 복호 워드가 출력된다고 할 수 없지만, 복호 워드를 1 워드씩 출력하는 종래의 회로에 비하면, 충분히 복호화 처리의 고속화가 실현된다. 또, 상술한 바와 같이 회로, 규모, 즉 복호 테이블의 사이즈의 축소를 달성할 수 있다.
제7도의 제3 실시예에서는 허프만 부호의 부호 길이가 「1」내지 「16」인 경우를 전제로 하고 있다. 이 때문에, 복호 테이블(72) 이외의 복호 테이블(72)에 관해서는 각 부호 길이의 값에 대응시켜 합계 15개의 복호 테이블(73 내지 87)을 설치하고 있다.
따라서, 허프만 부호의 최소 부호 길이가 「1」보다 큰 경우에는 최소 부호 길이보다 작은 선택 신호의 값에 대응하는 복호 테이블을 생략하는 것이 가능하다.
제12도는 허프만 부호의 최소 부호 길이를 「4」로 한 제4 실시예의 회로 구성을 나타낸다. 제12도에서 제7도와 공통의 부호를 붙인 구성은 제7도의 구성과 동일하다는 것을 나타내고 있다. 상기 제4 실시예에서는 허프만 부호의 최소 부호 길이를 「4」로 설정함으로써, 복호 테이블(72)로부터 부호 길이「3」이하가 선택 신호로서 출력되는 경우는 없다. 따라서, 제7도와 공통의 부호를 붙인 구성은 제7도의 구성과 동일하다는 것을 나타내고 있다. 상기 제4 실시예에서는 허프만 부호의 최소 부호 길이를 「4」로 설정함으로써, 복호 테이블(72)로부터 부호 길이 「3」이하가 선택 신호로서 출력되는 경우가 없다. 따라서, 제7도의 복호 테이블(73 내지 75)를 생략한 구성으로 되어 있다. 이로써, 복호 테이블의 사이즈를 생략한 복호 테이블(73 내지 75)분만큼 작게 할 수 있게 된다.
이상 본 발명을 각종 실시예에 의거해서 설명했으나, 예를 들면 제2도 내지 제5도, 제8도내지 제11도에도시한 복호 테이블의 구성에 관해서는 어디까지나 발명의 이해를 돕기 위해 나타낸 일예로서, 본 발명은 상기 형태에 한정되는 것은 아니다.

Claims (12)

  1. 허프만 부호 데이타열중에서 허프만 부호의 선두 비트 위치를 결정하고, 상기 결정된 선두 비트 위치로부터 소정 비트수의 상기 허프만 부호 데이타열을 받아들이는 선두 비트 위치 결정 수단, 상기 선두 비트 위치 결정 수단으로부터 출력된 상기 허프만 부호 데이타열의 선두 비트로부터 미리 결정된 비투수의 제1 데이타열을 입력하고, 상기 제1 데이타열을 어드레스로서 대응하는 제1 복호 워드 및 제1 부호 길이를 출력하는 제1 복호 정보 격납 수단, 상기 선두 비트 위치 결정 수단으로부터 출력되는 상기 허프만 부호 데이타열이 다른 비트 위치로 부터 미리 결정된 비트수의 제2 내지 제n 데이타열을 각각 입력하고, 제2 내지 제n 데이타열을 어드렝스로서 대응하는 복호 워드 및 부호 길이를 각각 출력하는 제2 내지 제n 의 복수의 복호 정보 격납 수단, 및 상기 제1 복호 정보 격납 수단이 출력하는 제1 부호 길이를 선택 신호로서 상기 제2 내지 제n의 복호 정보 격납 수단 출력의 어느 하나를 선택하고, 제2 복호 워드 및 제2 부호 길이로서 출력하는 선택 수단을 구비하고 상기 선택수단으로부터 출력되는 상기 제2 부호 길이를 상기 선두 비트 위치 결정 수단에 공급하고, 상기 선두 비트 위치 결정 수단은 상기 제2 부호 길이를 기초로 해서, 받아들이는 허프만 부호 데이타열의 선두 비트 위치를 결정하는 것을 특징으로 하는 허프만 부호 복호 회로.
  2. 제1 항에 있어서, 상기 제2 내지 제n 의 복호 정보 격납 수단은 제2 복호 워드의 부호 길이와 상기 제1 부호 길이의 합을 상기 제2 부호 길이로서 격납하는 것을 특징으로 하는 허프만 부호 복호 회로.
  3. 제1 항에 있어서, 상기 제1 내지 제n 의 복호 정보 격납 수단에 입력하는 상기 제1 내지 제n 데이타열은 각각 동일한 비트수인 것을 특징으로 하는 허프만 부호 복호 회로.
  4. 제1 항에 있어서, 제2 의 복호 워드 및 제2 의 부호 길이를 출력하는 상기 제2 내지 제n 의 복호 정보 격납 수단에는 상기 선두 비트 위치 결정 수단으로부터 출력되 상기 허프만 부호 데이타열을 순차 1 비트씩 시프트한 비트 위치를 선두 비트로 하는 상기 제2 내지 제n 데이타열이 입력되는 것을 특징으로 하는 허프만 부호 복호 회로.
  5. 제1 항에 있어서, 상기 제1 내지 제n 의 복호 정보 격납 수단에 입력하는 상기 제1 내지 제n 데이타열은 각각 동일한 비트수이고, 제2 복호 워드 및 제2의 부호 길이를 출력하는 상기 제2 내지 제n 의 복호 정보 격납 수단에는 상기 선두 비트 위치 결정 수단으로부터 출력되는 상기 허프만 부호 데이타열의 선두 비트로부터 순차 1비트씩 시프트한 비트 위치를 선두 비트로 하는 상기 제2 내지 제n 데이타열이 입력되는 것을 특징으로 하는 허프만 부호 복호 회로.
  6. 제1 항에 있어서, 상기 제1 내지 제n 의 복호 정보 격납 수단에 입력하는 상기 제1 내지 제n 데이타열은 각각 동일한 비트수이고, 제2 복호 워드 및 제n의 부호 길이를 출력하는 상기 제2 내지 제n 의 복호 정보 격납 수단에는 상기 선두 비트 위치 결정 수단으로부터 출력되는 상기 허프만 부호 데이타열의 선두 비트로부터 상기 허프만 부호의 최소 부호 길이만큼 시프트한 비트 위치로 부터 순차 1 비트씩 시프트한 비트 위치를 선두 비트로 하는 상기 제2 내지 제n 데이타열이 입력되는 것을 특징으로 하는 허프만부호 복호 회로.
  7. 허프만 부호 데이타열중에서 허프만 부호의 선두 비트 위치를 결정하고, 상기 결정된 선두 비트 위치로부터 소정 비트수의 상기 허프만 부호 데이타열을 받아들이는 선두 비트 위치 결정 수단, 상기 선두 비트 위치 결정 수단으로부터 출력된 상기 허프만 부호 데이타열을 제1 데이타열로서 입력하고, 상기 제1 데이타열을 어드레스로서 대응하는 제1 복호 워드 및 제1 부호 길이를 출력하는 제1 복호 정보 격납 수단, 상기 선두 비트 위치 결정 수단으로부터 출력되는 상기 허프만 부호 데이타열이 다른 비트 위치로 부터 미리 결정된 비트수의 제2 내지 제n 데이타열을 각각 입력하고, 제2 내지 제n 데이타열을 어드레스로서 대응하는 복호 워드 및 부호 길이를 각각 출력하는 제2 내지 제n의 복수의 복호 정보 격납 수단, 및 상기 제1 복호 정보 격납 수단이 출력하는 제1 부호 길이를 선택 신호로서 상기 제2 내지 제n의 복호 정보 격납 수단 출력의 어느 하나를 선택하고, 제2 복호 워드 및 제2 부호 길이로서 출력하는 선택 수단을 구비하고, 상기 선택수단으로부터 출력되는 상기 제2 부호 길이를 상기 선두 비트 위치 결정 수단에 공급하고, 상기 선두 비트 위치 결정 수단은 상기 제2 부호 길이를 기초로 해서, 받아들이는 허프만 부호 데이타열의 선두 비트 위치를 결정하며, 상기 제2 내지 제n의 복호 정보 격납 수단은 복호화 대상 외의 데이타열이 입력된 경우에, 상기 제1 복호 정보 격납 수단이 출력하는 제1 부호 길이와 동일한 부호 길이를 제2 부호 길이로서 출력함과 동시에, 상기 제2 복호 워드의 유무효를 나타내는 제어 신호를 출력하는 것을 특징으로 하는 허프만 부호 복호 회로.
  8. 제7 항에 있어서, 상기 제2 내지 제n 의 복호 정보 격납 수단은 상기 제2 내지 제n데이타열에 대응하는 제2 복호 워드가 존재하는 경우에 제2 복호워드의 부호 길이와 상기 제1 부호 길이의 합을 상기 제2 부호 길이의 합을 상기 제2 부호 길이로서 격납하는 것을 특징으로 하는 허프만 부호 복호 회로.
  9. 제7 항에 있어서, 상기 제2 내지 제n 의 복호 정보 격납 수단은 상기 제2 내지 제n 데이타열이 복호 워드에 대응하는 허프만 부호의 일부분인 경우에, 복호 워드가 무효인 것을 나타내는 제어 신호를 출력함과 동시에, 상기 제1 부호 길이를 상기 제2 부호 길이로서 출력하는 것을 특징으로 하는 허프만 부호 복호 회로.
  10. 제7 항에 있어서, 제2 의 복호 워드 및 제2 의 부호 길이를 출력하는 상기 제2 내지 제n 의 복호 정보 격납 수단에는 상기 선두 비트 위치 결정 수단으로부터 출력되는 상기 제1 데이타열의 선두 비트로부터 순타 1 비트씩 시프트한 비트 위치를 선두 비트로 하는 상기 제2 내지 제n 데이타열이 입력되고, 상기 제1 내지 제n 의 복호 정보 격납 수단에 입력하는 상기 제1 내지 제n 데이타열은 각각 1 비트씩 뺀 비트수인 것을 특징으로 하는 허프만 부호 복호 회로.
  11. 제7 항에 있어서, 상기 선택 수단으로부터 출력되는 상기 제2 복호 워드와 상기 제어 신호를 입력하고, 상기 제어 신호가 유효를 나타내는 경우에는 상기 제2 복호 워드를 출력하며, 상기 제어 신호가 무효를 나타내는 경우에는 상기 제2 복호 워드의 출력을 금지하는 출력 수단을 구비하는 것을 특징으로 하는 허프만 부호 복호 회로.
  12. 제7 항에 있어서, 제2 복호 워드 및 제부호 길이를 출력하는 상기 제2 내지 제n 복호 정보 격납 수단에는 상기 선두 비트 위치 결정 수단으로부터 출력되는 상기 제1 데이타열의 선두 비트로부터 상기 허프만 부호의 최소 부호 길이만큼 시프트한 비트 위치로부터 순차 1 비트씩 시프트한 비트 위치를 선두 비트로 하는 상기 제2 내지 제n 데이타열이 입력되고, 상기 제1 내지 제n 복호 정보 격납 수단에 입력되는 상기 제1 내지 제n 데이타열은 각각 1 비트씩 뺀 비트수인 것을 특징으로 하는 허프만 부호 복호 회로.
KR1019950004799A 1994-03-09 1995-03-09 허프만 부호 복호화 회로 KR0163464B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP94-064422 1994-03-09
JP6064422A JP2746109B2 (ja) 1994-03-09 1994-03-09 ハフマン符号復号化回路

Publications (1)

Publication Number Publication Date
KR0163464B1 true KR0163464B1 (ko) 1999-03-20

Family

ID=13257832

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019950004799A KR0163464B1 (ko) 1994-03-09 1995-03-09 허프만 부호 복호화 회로

Country Status (3)

Country Link
US (1) US5617089A (ko)
JP (1) JP2746109B2 (ko)
KR (1) KR0163464B1 (ko)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5835035A (en) * 1995-12-28 1998-11-10 Philips Electronics North America Corporation High performance variable length decoder with two-word bit stream segmentation and related method
KR100214593B1 (ko) * 1996-03-15 1999-08-02 구자홍 캐스케이드 구조를 이용한 런랭스 코드의 코드워드 검출 방법 및 장치
US5841380A (en) * 1996-03-29 1998-11-24 Matsushita Electric Corporation Of America Variable length decoder and method for decoding two codes per clock cycle
JP3371677B2 (ja) * 1996-04-09 2003-01-27 富士ゼロックス株式会社 可変長復号化装置
JP3189876B2 (ja) * 1997-06-09 2001-07-16 日本電気株式会社 可変長符号復号化回路
US5990812A (en) * 1997-10-27 1999-11-23 Philips Electronics North America Corporation Universally programmable variable length decoder
JP2000286717A (ja) * 1999-03-30 2000-10-13 Matsushita Electric Ind Co Ltd デコード装置
US6411226B1 (en) * 2001-01-16 2002-06-25 Motorola, Inc. Huffman decoder with reduced memory size
US6573847B1 (en) * 2002-01-08 2003-06-03 Intel Corporation Multi-table mapping for huffman code decoding
FI116813B (fi) * 2002-06-20 2006-02-28 Nokia Corp Menetelmä ja järjestelmä vaihtuvapituisen koodauksen purkamiseksi, ja koodisanojen paikannuslaite
US7283591B2 (en) * 2003-03-28 2007-10-16 Tarari, Inc. Parallelized dynamic Huffman decoder
US6903668B1 (en) * 2003-11-18 2005-06-07 M-Systems Flash Disk Pioneers Ltd. Decompression accelerator for flash memory
KR20050053996A (ko) * 2003-12-03 2005-06-10 삼성전자주식회사 허프만 코드를 효율적으로 복호화하는 방법 및 장치
JP2013016897A (ja) * 2011-06-30 2013-01-24 Toshiba Corp 可変長符号復号装置、符号システムおよび可変長符号復号方法
US10135461B2 (en) 2015-09-25 2018-11-20 Intel Corporation Systems, methods, and apparatuses for decompression using hardware and software
US11211945B1 (en) * 2020-10-29 2021-12-28 Microsoft Technology Licensing, Llc Parallelized decoding of variable-length prefix codes

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0410716A (ja) * 1990-04-27 1992-01-14 Ricoh Co Ltd ハフマン符号の復号回路
JP3008685B2 (ja) * 1992-08-03 2000-02-14 日本電気株式会社 可変長符号の復号化回路
JP3136796B2 (ja) * 1992-09-24 2001-02-19 ソニー株式会社 可変長符号デコーダ
EP0593046B1 (en) * 1992-10-13 2000-07-26 Nec Corporation Huffman code decoding circuit
US5446916A (en) * 1993-03-26 1995-08-29 Gi Corporation Variable length codeword packer
KR950010425B1 (ko) * 1993-09-11 1995-09-16 국방과학연구소 코드분류에 의한 병렬처리 가변장 부호 복호기

Also Published As

Publication number Publication date
US5617089A (en) 1997-04-01
JP2746109B2 (ja) 1998-04-28
JPH07249994A (ja) 1995-09-26

Similar Documents

Publication Publication Date Title
KR0163464B1 (ko) 허프만 부호 복호화 회로
US5715470A (en) Arithmetic apparatus for carrying out viterbi decoding at a high speed
US3717851A (en) Processing of compacted data
US4099257A (en) Markov processor for context encoding from given characters and for character decoding from given contexts
JPH0697838A (ja) 復号化装置
JPH03274920A (ja) 信号符号化装置および信号復号化装置、並びに信号符号化復号化装置
KR0138971B1 (ko) 허프만 부호 복호회로
JP3189876B2 (ja) 可変長符号復号化回路
US5216423A (en) Method and apparatus for multiple bit encoding and decoding of data through use of tree-based codes
US4617641A (en) Operation unit for floating point data having a variable length exponent part
US4745569A (en) Decimal multiplier device and method therefor
EP0658982B1 (en) System for bi-level symbol coding-decoding with saved storage and method for the same
US5614900A (en) Variable word length code decoding apparatus having plural decoding tables for decoding long words
US5710731A (en) Combined adder and decoder digital circuit
US5847666A (en) Data transmitter and method object code generator and method digital signal processor and code generator and method
JPH11215008A (ja) 復号回路
US5801840A (en) Apparatus for decoding codes with less memory capacity
JP3252029B2 (ja) 符号化装置及び符号化方法
JP3138342B2 (ja) 可変長符号の復号装置
US5724275A (en) Fast multi-operand bit pattern detection method and circuit
JP3247052B2 (ja) 画像データ変換処理方法及び装置
JP3221252B2 (ja) ハフマン復号器
JP3032239B2 (ja) 可変長符号の復号回路
JPH04100324A (ja) 可変長符号の復号方式
JPH0722969A (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: 20120821

Year of fee payment: 15

FPAY Annual fee payment

Payment date: 20130822

Year of fee payment: 16

LAPS Lapse due to unpaid annual fee