KR0138971B1 - 허프만 부호 복호회로 - Google Patents

허프만 부호 복호회로

Info

Publication number
KR0138971B1
KR0138971B1 KR1019930021495A KR930021495A KR0138971B1 KR 0138971 B1 KR0138971 B1 KR 0138971B1 KR 1019930021495 A KR1019930021495 A KR 1019930021495A KR 930021495 A KR930021495 A KR 930021495A KR 0138971 B1 KR0138971 B1 KR 0138971B1
Authority
KR
South Korea
Prior art keywords
bits
code
bit
decoding
address
Prior art date
Application number
KR1019930021495A
Other languages
English (en)
Other versions
KR940010543A (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
Priority claimed from JP4273925A external-priority patent/JP2842094B2/ja
Priority claimed from JP28802992A external-priority patent/JP2757716B2/ja
Application filed by 세끼모또 다다히로, 니뽄 덴끼 가부시끼 가이샤 filed Critical 세끼모또 다다히로
Publication of KR940010543A publication Critical patent/KR940010543A/ko
Application granted granted Critical
Publication of KR0138971B1 publication Critical patent/KR0138971B1/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
    • 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
    • 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/65Purpose and implementation aspects
    • H03M13/6502Reduction of hardware complexity or efficient processing

Landscapes

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

Abstract

본 허프만 부호 복호 회로를 비트 가변 길이 부호를 1 비트 또는 n(2이상의 정수) 비트마다 복호할 때의 상태 천이에 의거하여 정해진, 부호의 복호어와 부호 길이 또는 다음에 엑세스하는 포인터와, 부호의 복호 상태를 나타내는 플래그를 저장하고, m비트의 엑세스 어드레스에 응하여 복호어와 부호 길이 또는 다음에 엑세스하는 포인터 및 상기 플래그를 출력하는 메모리를 구비한다. 또 래치 회로는 메모리로부터 출력되는 플래그가 복호 종료를 나타내는 경우에는 리세스되며 플래그가 복호 계속을 나타내는 경우에는 메모리로부터 출력되는 m-1비트의 포인터를 래치한다. 선택기는 비트 가변 길이 부호의 1 비트 마다 혹은 n 비트 마다의 복호를 선택하는지에 따라 n-1 비트를 래치 회로 혹은 비트 가변 길이 부호로부터 선택하여 메모리를 출력한다.

Description

허프만 부호(huffman code)복호회로
제 1 도는 본 발명의 제 1 실시예에 의한 허프만 부호 복호회로의 블럭도.
제 2 도는 내지 제 4 도는 제 1실시예의 메모리 설정예를 설명하는 도면.
제 5 도는 본 발명의 제 2 실시에에 의한 허프만 부호 복호회로의 블럭도.
제 6 도는 제 2 실시예의 내부 메모리 설정예를 설명하는 도면.
제 7 도는 제 2 실시예의 내부 메모리 다른 설정예를 설명하는 도면.
제 8 도는 본 발명의 제 3 실시예에 의한 허프만 부호 복호회로의 블럭도.
제 9 도는 본 발명의 제 4 실시예에 의한 허프만 부호 복호회로의 블럭도.
제 10도는 허프만 부호의 부호길이 분포의 한 예를 나타내는 도면.
제 11도는 종래의 허프만 부호 복호회로의 제 1 예를 나타내는 블럭도.
제 12도는 종래의 허프만 부호 복호회로의 제 2 예를 나타내는 블럭도.
제 13도는 종래의 허프만 부호 복호회로의 제 ㅔ3예를 나타내는 블럭도.
[산업상 이용분야]
본 발명은 허프만 부호를 복호처리(디코딩)하는 허프만 부호 복호회로에 관한 것으로써, 특히 화상 압축 처리장치등에서 데이타 압축에 이용되고, 복호처리 속도 및 집적화의 개선을 실현한 허프만 부호 복호회로에 관한 것이다.
[종래기술]
종래의 허프만 부호 복호회로는 허프만 부호에 대응하는 복호어를 검색하기 위하여 최대 부호 길이 분의 어드레스를 가진 메모리를 사용하여 1 비트 마다 복호트리를 추적하는 회로를 사용하고 있다.
제 11 도는 또 다른 종래의 허프만 부호 복호 회로를 나타낸 블럭도이다. 제 11 도에 도시된 바와 같이 이 복호 회로는 1비트 마다 복호 트리를 추적하여 복호 처리를 행한다. 이 복호 회로는 래치(210)와 내부 메모리(211)를 구비한다.내부 메모리(211)는 512W×9비트 구성이다. 내부 메모리(211)에는 허프만 부호 데이타 열의 선두로부터 1 비트를 최하위 어드레스로하여 입력하고 또 래치회로(210)의 출력 8비트를 어드레스의 상위 8 비트로 하여 입력한다.
또 래치회로(210)는 내부 메모리(211)로부터 포인터가 출력된 경우에 그 포인터를 래치한다. 내부 메모리(211)의 출력 9비트중 8비트는 복호어 혹은 포인터를 표시하고, 다른 1 비트는 , 복호어가 출력되면 1을, 포인터가 출력되면0을 표시한다.
이 복호 회로의 동작은 먼저 최초에 허프만 부호 데이타열로부터 입력된 1비트에 의하여 메모리 어드레스를 결정하고 내부 메모리(211)의 출력을 얻는다. 그 출력 결과가 포인터이면 그 포인터와 다음 허프만 부호 데이타 열의 1 비트를 기초로 내부 메모리(211)에 다시 엑세스한다. 출력이 복호어로되면 1 회의 복호처리를 종료한다.
이와같이 1 비트마다 복호 트리를 추적하여 복호를 행하는 회로에는 부호 비트수에 따른 메모리 엑세스가 필요하게 되므로 복호처리 속도가 지연되는 문제가 있다.
또 복호처리 속더를 개선한 종래 허프만 부호 복호회로의 한 예가 제 12 도에 도시되어 있다. 제 12 도에 도시된 바와 같이 이 허프만 부호 복호 회로는 최대 부호 길이분의 어드레스를 갖는 메모리(219)를 구비하고 있다. 이 메모리(219)는 64KW ×13 비트로 구성된다. 즉 메모리 (219)의 어드레스 입력에 허프만 부호 데이타 열을 입력하고 그 어드레스에 대응하는 메모리(219)의 출력으로서 복호어와 부호길이가 얻어진다. 이제 허프만 부호 데이타 열의 최대 부호길이가 16 비트, 복호어가 8 비트라면 메모리(219)에 복호어 8비트와 부호길이 5 비트를 설정한다.예를 들면, 복호어 A에 대응하는 허프만 부호가 101이라면 어드레스 01010...0~01011...1의 전부에 복호어 A와 부호길이 4를 설정한다. 마찬가지로 각 복호어에 대한 허프만 부호의 어드레스를 설정한다.
이러한 허프만부호 에 있어서는 우선 허프만부호 데이타 열의 선두로부터 16비트를 메모리(219)의 어드레스에 입력한다. 가령101이 전송되면 메모리(219) 어드레스의 상위 4 비트에 101이 입력되고 하위12비트에는 다음의 허프만부호가 입력된다. 이와같이 메모리(219)의 어드레스0101...~01011....1에는 모두 복허어 A와 부호 길이4가 설정됨으로써 메모리(219)로부터 복호어 A와 부호길이 4가 출력된다.이 부호길이 4에 의하여 다음 허프만 부호의 선두 비트가 결정되고, 다음 16비트가 메모리(219)의 어드레스에 입력된다. 이하 마찬가지로 복호처리를 반복한다.
이 복호회로에서는 처리 속도는 개선되지만, 예를 들면 최대 부호길이가 16비트인 경우, 65536 워드의 큰 메모리를 필요로 한다. 이러한 큰 메모리를 칩에 탑재하면 면적이 증대하여 비용이 증가한다.
또 허프만 부호 복호회로의 다른 예로서는 복수의 메모리를 구비하고 이것들에 동시에 엑세스하여 그중에서 북호어를 저장하는 메모리를 선택하는 방법을 이용하는 회로가 있다. 이 종류의 허프만 부호 복호회로의 구성을 제 13도에 도시하였다. 이 복호회로는 선두를 제 15비트로 하여, 제 15비트 ~ 제 0비트의 16비트로 이루어진 허프만부호 데이타열에 대해 제 14~제 8 비트, 제 13~제 7비트, 제 12~제 6비트, 제 11~제 5 비트, 제 10~제 4비트 , 제 9 ~ 제 3 비트, 제 8 ~ 제 2 비트, 제 7 ~ 제 1 비트, 제 7 ~ 제 0 비트를 각각 어드레스 입력하여 8 비트의 복호어와 4 비트의 부호길이를 출력하는 메모리 (301) 내지 (309)와 선택기(401)와, 선택기(401)를 제어하는 선택 신호 발생부(402)를 구비 하고 있다.
이 회로는 허프만 부호어의 수가 256 워드 이하일때, 그리고 부호 데이타 열에 0이 존재하는 경우에는 그 비트 이후의 비트수가 7비트 이하인 것을 이용하고 있다.
우선 메모리(301 내지 309)에 각각 복호어 8 비트와 부호길이 4 비트를 설정한다.메모리(301)는 데이타 열의 선두비트에 0이 있는 허프만부호에 있어서 복호어를 나타낸 것에 대하여 그 복허어와 부호길이를 설정한다. 예를 들면 복호어A에 대하여 허프만 부호가 1이라면, 메모리 (301)의 어드레스 100000 ~ 111111의 모두에 복호어 A와 부호길이 4를 설정한다.
마찬가지로, 메모리(302)에는 데이타 열의 선두 2 번째 비트에 0이 있는 허프만부호에 대하여 복호어 및 부호 길이를 설정한다. 예를 들면 복호어B에 대한 허프만부호가 10011으로 되면, 메모리(302)의 어드레스1100000~1111111의 전부에 복호어 B 와 부호길이 5를 설정한다. 이하 마찬가지로 데이타 열의 패턴이 i(정수)-1개씩 연속하는 1의 열 후미에 0을 부가한 수열로 이루어진 경우에 i번째의 메모리에 대하여 복호어와 부호 길이를 설정한다. 또 데이타 열의 선두 8 비트가 전부 1, 즉11111111인 경우에는 메모리(309)에 대하여 복호어 및 부호 길이를 설정한다.
이하 동작을 설명한다. 허프만부호 데이타열 16비트중 선두로부터 2 번째 비트인 제 14 비트로부터 제 8 비트까지의 7비트를 1번째 메모리(301)에, 선두에서 3 번째 비트인 제 13~제 6 비트를 2 번째 메모리(302)에, 이하 마찬가지로 7번째 메모리 (308)까지, 선두에서 t 번째 비트로부터 7 비트를 t-1 번째 메모리에 입력한다. 하위 8 비트, 즉 제 7~제 0 비트는 메모리 (309)에 입력한다. 동시에 데이타 열 16비트는 선택 신호 발생부(402)에 공급된다.
여기에서 허프만 부호 데이타 열0001....이 입력되는 것으로 생각한다. 메모리(301)의 어드레스중 상위 3 비트에 1이 입력된다. 메모리(301)는 전술한 바와 같이 어드레스100000~111111의 전부에 복호어A와 부호길이 4가 설정되어 있으므로, 상기 허프만 부호의 입력에 대하여 복호어A 와 부호길이 4가 출력된다. 다른 메모리(302)~(309)에 대하여서도 상기 어드레스 입력에 대응하는 복호어 및 부호길이가 출력된다. 이들 메모리 (301)~(309)의 출력은 선택기 (401)의 입력(0)~입력(8)에 입력된다. 선택 신호 발생부(402)는 데이타 열의 선두 비트 즉 제 15 비트가 0일때 메모리(301)의 출력을 선택하는 선택 신호를 선택기(401)에 보낸다. 한편, 데이타 열의 패턴이 i-1개의 연속하는 1의 열 후미에 0을 부가한 수열인 경우에 i번째 메모리를 선택하는 신호를 선택기(402)에 보낸다. 예를 들면 상기 펴턴이 10인경우에, i=2 이므로 2번째 (i=2) 메모리 (302)를 선택하는 신호를 , 패턴이 전부1인 경우에는 9번째(i=9) 메모리(309)를 선택하는 신호를 선택기(401)에 보낸다.
선택기(401)로부터 출력되는 1 번째 메모리(301)의 부호길이 4는 허프만부호 데이타열에 보내져 다음 허프만부호 데이타 열의 선두가 결정되다.이하 마찬가지로 복호 처리를 행한다.
상기 예의 경우 128워드 × 12비트 ×8(메모리 301 ~ 메모리 308) +256워드 ×12비트 × 1(메모리309)=1280워드 × 12비트로 된다. 상기 구성의 복호 회로에서 복수개의 메모리를 필요로 하므로 동일 용량의 1개의 메모리에 비하여 집적화에 있어서 칩면적이 커지며 가격도 고가로 되는 문제가 있었다.
[발명의 개요]
본 발명의 제 1 목적은 상기 종래의 결점을 제거하여 복호 처리속도를 고속화하고 필요로 하는 메모리 용량도 적게 할 수 있어서 집적화가 용이한 허프만부호 복호회로를 제공하는 것이다.
또 본 발명의 제 2 목적은 필요에 따라 부호 처리의 고속화 또는 메모리의 소형화를 고려하여 각종의 복호방식을 선택할수 있는 허프만부호 복호회로를 제공하는 것이다.
또 본 발명의 제 3 목적은 집적화의 경우에 칩면적을 축소할 수 있고 또 가격도 낮출수 있는 허프만 부호 복호를 제공하는 것이다.
이 목적을 달성하는 본 발명의 일면에 따른 허프만부호 복호회로는 아래와 같이 구성된다.
즉 비트 가변 길이 부호를 1 비트 또는 n(2 이상의 정수) 비트마다 복호할 때의 상태 천이에 의거하여 정해지는 상기 부호의 복호어와 부호길이 또는 다음에 엑세스할 포인터와 상기 부호의 복호 상태를 나타내는 플래그를 저장하고, m(n) 비트의 엑세스 어드레스에 따라 상기 복호어와 부호 길이 또는 다음에 엑세스할 포인터 및 상기 플래그를 출력하는 복호 테이블 저장 수단과, 상기 복호 테이블 저장 수단에서 출력되는 상기 플래그가 복호 종료를 나타내는 경우에는 리세트되며, 상기 프래그가 복호 계속을 나타내는 경우에는 상기 복호 테이블 저장 수단으로부터 출력되는 m-1비트의 상기 포인터를 래치하는 래치 수단과, 상기 비트 가변 길이 부호를 1 비트마다 복호하느냐 혹은 n비트마다 복호하느냐 선택함에 따라 n-1비트를 상기 래치 수단 또는 상기 비트 가변 길이 부호로부터 선책하여 상기 복호 테이블 저장 수단에 출력하는 선택 수단을 구비하고상기 복호 테이블 저장 수단에 상기 비트 가변 길이 부호의 선두 비트를 상기 어드레스의 최하위 비트로 하여 입력하고, 상기 래치 수단으로부터 출력되는 m-1비트의 상위 m-n비트를 상기 어드레스의 상기 비트로 하여 입력하고 상기 선택 수단으로부터 출력되는 n-1 비트를 상기 어드레스의 중위 비트로하여 입력하는 허프만부호 복호회로이다.
여기서 상기 선택 수단은 외부 선택 신호에 따라 상기 비트 가변 길이 부호를 1 비트마다 또는 n비트마다 복호하느냐를 지정하는 선택기를 구비할 수도 있으며, 상기 래치 수단은 상기 복호 테이블 저장 수단으로부터 출력되는 플레그가 복호 종료를 나타내는 경우에 리세트 되어 0을 m-1비트로 출력할 수도 있다.
본 발명은 또다른 일면에 따르면, 허프만부호 복호회로는 h(정수) 비트의 데이타 열로 하여 보내지는 비트 가변 길이 부호를 n(1 이상의 정수)비트마다 복호할 때의 상태 천이를 기준으로 정해진 상기 부호의 복호어와 부호 길이 또는 다음에 엑세스할 포인터와, 상기 복호어의 경우에는 유효를 상기 포인터의 경우에는 무효를 나타내는 플래그를 저장하고, m(n)비트의 엑세스 어드레스에 응하여 상기 복호어와 부호 길이 또는 다음에 엑세스 할 포인터 및 상기 플래그를 출력하는 내부 복호 테이블 저장 수단과, 상기 비트 가변 길이 부호를 h비트마다 복호할 때의 상태 천이에 기초하여 정한 상기 부호의 복호어와 부호 길이 또는 다음에 엑세스할 포인터를 저정하고, h비트 이하의 엑세스 어드레스에 응하여 상기 복호어와 부호길이 또는 다음에 엑세스할 포인터를 출력하는 외부 복호 테이블 저장 수단과, 상기 복호 테이블 저장 수단에서 출력되는 상기 플래그가 유효를 나타내는 경우에는 리세트되며, 상기 플래그가 무효를 나타내는 경우에는 상기 복호 테이블 저장 수단으로부터 출력되는 m-n 비트의 상기 포인터를 래치하는 래치 수단과, 상기 비트 가변 길이 부호를 복호하는 단위인 상기 n 비트의 비트수에 의하여 m-n 비트를 상기 래치 수단 혹은 상기 비트 가변 길이 부호에서 선택하여 상기 복호 테이블 저장수단에 선택적으로 출력하는 제 1 선택수단과, 상기 내부 복호 테이블 저장 수단 혹은 상기 외부 복호 테이블 저장 수단으로부터 출력된 복호어중 유효한 복호어를 선택적으로 출력하는 제 2 선택수단과, 상기 내부 복호 테이블 저장 수단으로부터 출력되는 플래그가 유효를 난타내는 경우에는 상기 제 2 선택수단에 대하여 상기 내부 복호 테이블 저장 수단으로부터 출력되는 복호어를 선택하는 신호를 생성하며, 상기 플래그가 무효를 나타내는 경우에는 상기 제 2 선택수단에 대하여 상기 외부 복호 테이블 저장 수단으로부터 출력되는 복호어를 선택하는 신호를 생성하는 선택 신호 발생 수단을 구비하고, 상기 내부 복호 테이블 저장 수단에 대하여 상기 비트 가변 길이 부호의 선두 n 비트를 상기 어드레스의 하위 비트로 하여 입력하고, 상기 래치 수단으로부터 출력되는 m-n 비트를 상기 어드레스의 상위 비트로 하여 입력하고, 상기 외부 복호 테이블 저장 수단에 대하여 상기 h 비트 부호를 어드레스로 입력하는 허프만부호 복호회로 이다.
상기한 구성으로된 허프만부호 복호회로는 상기 내부 복호 테이블 저장 수단 혹은 상기 외부 복호 테이블 저장 수단으로부터 출력되는 부호 길이중, 유효한 부호 길이를 선택적으로 출력하는 제 3 선택수단을 더 구비하고, 상기 선택 신호 발생 수단은 상기 내부 복호 테이블 저장 수단에서 출력되는 플래그가 유효를 나타내는 경우에는 상기 제 3 선택수단에 대하여 상기 내부 복호 테이블 저장 수단에서 출력되는 부호 길이를 선택하는 신호를 생성하고, 상기 플래그가 무효를 나타내는 경우에는 상기 제 3 선택수단에 대하여 상기 외부 복호 테이블 저장 수단에서 출력되는 부호 길이를 선택하는 신호를 생성하는 허프만부호 복호회로일 수도있다.
본 발명의 또다른 일면에 따른 허프만부호는 2(m+1)(m은정수)비트 이상의 데이타 열로 형성되는 허프만부호의 선두 비트로부터 n(정수)번째 비트 까지의 n비트가 놀리1이며, n+1번째 비트가 논리0인 상기 데이타 열의 패턴을 검출하는 수단과, 상기 패턴을 검출할 때에 2m× (n+1)에 상기 허프만부호의 n+2 번째 비트에서의 n+2+m 번째 비트까지의 m 비트의 데이타를 가산하여 다수의 허프만부호에 대응하는 다수의 어드레스를 생성하는 어드레스 산출수단을 포함하는 어드레스 발생 수단과, 상기 허프만부호에 대응하는 복호어 및 부호 길이를 저장하고 상기 어드레스에 대응하는 복호어 및 부호 길이을 출력하는 복호 테이블 저장 수단을 구비하는 허프만부호 복호회로.
이 경우에 상기 패턴 검출 수단은 상기 허프만부호의 최대 부호 길이가 p(≥m) 비트인 경우, 또한, 상기 데이타 열의 패턴이 선두 비트로부터 p-m-1번째 비트까지의 모든 비트가 논리 1 인 경우에, 2m× (p-m-1) 에 상기 허프만부호의 p-1 번째 비트에서 m+1번째 비트까지의 데이타 열을 가산하여 어드레스를 생성할 수 있으며,
본 발명에 의한 또다른 허프만부호 복호회로는 2(m+1)(m은 정수) 비트 이상의 데이타 열로 되는 허프만부호의 선두 비트로부터 n(정수)번째 비트까지의 n 비트가 논리 1이며, n+1번째 비트는 논리0인 상기 데이타 열의 패턴을 검출하는 수단과, 상기 패턴을 검출한 때에 2m×(n+1)에 상기 허프만부호의 n+2 번째 비트로부터 n+2+m번째 비트까지의 m 비트 데이타를 가산하여 다수의 허프만부호에 대응하는 다수의 어드레스를 발생하는 어드레스 발생 수단과, 소정의 부호 길이 분포에 따라 상기 복호어에 대응하는 부호 길이를 출력하는 부호 길이 출력 수단과, 상기 허프만 부호에 대응하는 복호어를 저장하여 상기 어드레스에 의해 대응하는 복호어를 출력하는 복호 테이블 저장 수단을 구비하는 허프만부호 복호회로가 된다.
여기서 상기 패턴 검출 수단은 상기 허프만부호의 최대 부호 길이가 p(≥m) 비트인 경우, 상기 데이타 열의 패턴이 선두 비트로부터p-m-1번째 비트까지의 전체 비트가 논리 1인 상기 데이타 열의 패턴을 검출한 때에 2m×(p-m-1)에 상기 허프만부호의 p-1 번째 비트에서 m+1 번째 비트까지의 데이타 열을 가산하여 어드레스를 생성한다.
또한, 상기 부호 길이 출력 수단은 상기 허프만부호의 선두로 부터 여러 비트의 상태에 기준하여 상기 복호어에 대응하는 부호 길이를 출력한다.
본 발명의 목적, 특징 및 효과는 이하 상세한 설명으로 명백해질 것이다.
[실시예]
본 발명의 양호한 실시예를 제 1 내지 제 7 도를 참조로 설명한다. 우선 제 1 도는 본 발명의 제 1 실시예에 의한 허프만부호 복호회로는 메모리(10)와, 리세트 기능을 갖는 래치회로(11), 선택기(12)로 구성된다.
메모리(10)는 512W(워드)×9 비트 구성이다.이 메모리(10)는 9 비트의 어드레스를 가지고 허프만부호 데이타 열의 선두 1 비트를 어드레스 최하위 비트(최하의 어드레스 AL)로 하여 입력한다. 한편 선택기(12)의 출력인 3 비트를 어드레스의 2비트 번째로부터 4 비트 (중위 어드레스 AHL)로서 입력한다. 래치회로(11)로부터 출력되는 8 비트중 상위 5 비트를 어드레스의 상위 5 비트(상위 어드레스 AHH)로 하여 입력한다.
메모리(10)는 9 비트중 8 비트로 복호어 a와 부호길이 b 혹은 포인터 p 를 표시하고 다른 1 비트는 플래그c를 표시한다.
메모리(10)의 출력 QD 에서 복호어 a(혹은 포인터p 와 부호길이 b가 출력되고, 출력QF에서는 플래그 c 가 출력된다. 이 플래그 c 는 허프만 부호의 복호상태를 나타내는데, 예를 들어 출력 QD 에서의 출력이 복호어 a 인 경우 (복호가 종료된 경우) 플래그로1이 설정되고, 출력QD로 부터의 출력이 포인터 p (메모리 10의 다듬어드레스)인 경우 (복호가 계속중인 경우) 플래그로 0이 설정된다.
리세트 기능이 있는 래치회로 (11)는 플래그가 0인 경우 메모리(10)에서 출력되는 포인터 p 의 8 비트를 래치한다. 또 메모리(10)에서 출력된 플래그 c 가 1 인 경우에는 리세트된 8 비트 모두 0 데이타를 출력한다.
또 선택기 (12) 는 선택신호 e 에 의해 입력 A0 나 A1어느 하나를 선택하여 메모리(10)의 중위 어드레스 AHL에 출력한다. 허프만부호열 d의 복호를 1 비트 단위로 행하는 경우에는 선택 신호 e 에 의해여 입력 A0를 선택한다. 이경우 선택기 (12)의 입력 A0 에는 래치회로 (11)의 출력 8 비트중 하위 3비트가 입력되어 메모리 (10)의 중위 어드레스 AHL에 출력된다. 또 허프만부호 데이타 열 d 의 복호를 4 비트 단위로 하는 경우는 선택신호 e 에 의해 입력 A1 을 선택한다. 이 경우 선택기 (12)의 입력 A1애는 허프만 부호 데이타 열 d 의 상위 3 비트가 입력되어 메모리(10)의 중위 어드레스 AHL 에 출력된다.
제 2 및 제 3 도는 제 1도에 나타낸 메모리 (10)의 설저예를 나타낸다. 제 2도는 어드레스 1010에 허프만 부호열 d 가 101 일때, 복호어 a 로는 A 와 그 부호길이 b 로는 4 및 플래그 c 로는 1 이 설정된 경우를 나타낸다. 또 제 3 도에는 어드레스 1011 및 1000에 포인터 p 와 플래그 c (0)가 설정되고. 어드레스 00010**10에 허프만부호 데이타 열 d가 1101000101일때 복호어 a 로는 c 와 그 부호길이 b 로는 10 및 플래그로는 c(1)가 설정되는 경우를 나타낸다. 또 메모리 (10)에는 9번째 비트가 플래그 c 를 표시한다.
이하, 허프만부호 데이타열 d 를 4비트 단위 (4비트마다)로 복호처리하는 경우를 설명한다. 즉 선택기 (12)의 입력은 선택신호 e에 의해 입력 A1측에서 선택되어 진다.
먼저 전희의 허프만부호 d의 복호가 종료되고, 플래그 c=1에 의해 래치회로(11)가 리세트되어 다음 허프만 부호 d로서 제 2도에 나타낸 복호어 A에 대응하는 복호101이 송출되는 것이다.
래치회로(11)로부터는 리세트에 의해 8비트 전부에 0가 출력된다. 이 8 비트중 상위 5비트 0는 메모리(10)의 상위 어드레스 AHH에 입력된다. 한편 8비트의 하위 3 비트는 선택기(12)의 입력 A0단자에 입력되지만, 이경우 선택신호 e 에 의해 입력A1 측이 선택되기 때문에 이 래치회로(11)의 하위 3비트는 무시된다.
다음에 허프만부호101의 4 번째 비트인 선두 1비트0 가 메모리(10)의 최하위 어드레스 AL에 입력된다. 허프만부호101중 3 번째 1번째 비트인 101은 선택기(2)의 입력 A1을 경유하여 메모리(10)의 중위 어드레스 AHL에 입력된다.
그결과, 메모리(10)에는 상위 어드레스 AHH0과 중위 어드레스 AHL101과 최하위 어드레스 AL0을 갖는 어드레스1010가 입력된다. 이에 따라 메모리(10)에는 복호어 A, 부호길이 4 및 플래그 c 1이 출력된다. 이 플래그c=1에 의해 래치회로(11)가 리세트되고 다음의 허프만부호 데이타열d의 선두가 송출된다.
또한 허프만 부호열 d로서 제 3 도에 나타낸 복호어C에 대응하는 허프만 부호1101000101가 송출된다. 래치회로(11)에는 리세트에 의하여 8비트 모두0이 출력된다. 이 8비트중 상위 5비트0는 메모리(10)의 상위 어드레스 AHH에 입력된다. 허프만부호의 10번째 비트(선두비트)인 1 은 메모리(10)의 최하위 어드레스 AL로 입력된다. 허프만부호의 9번째에서 7번째인 비트인 101은 선택기(12)의 입력 A1을 경유하여 메모리(10)의 중위 어드레스 AHL에 입력된다. 그 결과 메모리(10)에는 어드레스1011가 입력되고, 메모리(10)로부터 포인터 p 1000과 플래그 c =0 이 출력된다. 이 메모리(10)의 출력이 포이터 p이므로 이 포인터 p 와 허프만부호의 다음 4비트에 기준하여 재복호처리(추적)을 행한다.
다음에 래치회로(11)는 상기 포인터를 래치하여1000을 출력한다. 이 출력중 상위 5비트 1가 멤모리(10)의 상위 어드레스 AHH에 입력된다. 또 허프만부호의 6번째 비트(선두비트)인 0가 메모리(10)의 최하위 어드레스 AL 에 입력된다. 허프만부호의 5번째에서 3번째 비트인 1이 선택기 (12)의 입력 A1을 경우하여 메모리(10)의 중위 어드레스 AHL 에 입력된다. 그 결과 메모리(10)에는 어드레스 11000가 입력되고 메모리 (10)으로부터 포인터100000고 플래그 C=0가 출력된다. 이 메모리(10)의 출력은 포인터 p이므로 이 포인터 p 와 허프만부호의 다음 4비트에 지군하여 다시금 복호처리 (추적)을 행한다.
다음에 래치회로(11)는 상기 포인터를 래치하여 10000을출력한다. 이 출력중 상위 5 비트10가 메모리(10)의 상위 어드레스 AHL에 입력된다. 또 허프만 부호의 2번째 비트(선두비트)인 0이 메모리 (10)의 최하위 어드레스 AL에 입력된다. 허프만 부호의 첫번째 비트인 1과 다음 허프만부호의 선두 2비트 *로 구성된 3비트가 선택기 (12)의 입력 A1을 경유하여 메모리(10)의 중위 어드렛스 AHL 에 입력된다. 이 결과, 메모리(10)에는 어드레스 00010**10가 입력되어 메모리(10)로부터 복호어 c와 그 부호길이 10및 복호어의 출력을 표시하는 플래그 c=1가 출력된다.
상기 **2 비트에 대하여는 다음의 허프만부호의 선두 2비트인 0또는 1중 어느 것으로도 좋다. 즉 메모리(10)에는 어드레스100010, 100110, 101010, 101110에 대하여 전 복호어 c와 그 부호길이 1 및 복호어의 출력을 나타내는 플래그 c=1이 설정되어 있다.
이 플래그 1 에 의해 래치회로(11)가 리세트되고 다음 허프만부호 데이타열 d 의 선두가 전송된다.
제 4 도는 허프만부호를 1 비트 단위로 복호하는 경우에 내부 메모리(111)의 설정예를 표시하는 도면이다. 제 4도에서와 같이 허프만부호101에 대응하는 복호어A가 설정된다. 이하 허프만부호 데이타 열 d 를 1비트 단위로 복호 처리하는 경우를 설명한다. 즉 선택기(12)의 입력은 선택신호 e에 의해 입력 A0측에서 선택된다.
우선, 전회 허프만 부호의 복호가 종료하고, 플래그 c=1에 의해 래치회로(11)가 리세트되어 다음의 허프만 부호 d로서 제 4 도에 표시하는 복호어 A에 대응하는 허프만 부호101가 전송된다.
허프만 부호 데이타 열의 선두로 부터 1 비트가 메모리(10)에 전송된다. 래치회로(11)가 리세트 되어 8비트 모두에 0가 출력된다.
래치회로(11)의 출력중 상위 5 비트0가 메모리(10)의 상위 어드레스 AHH에 입력된다. 또 래치회로(11)의 출력중 하위 3 비트 0가 선택기(12)의 입력 A0을 경유하여 메모리(10)의 중위 어드레스 AHL에 입력된다. 허프만 부호의 선두 비트 0는 메모리(10)의 최하위 어드레스 AL에 입력된다. 그 결과 메모리(10)에는 어드레스 0가 입력된다. 메모리(10)로부터는 어드레스0에 대응하여 포인터1와 포인터의 출력을 나타내는 플래그 0가 출력된다.
다음에 래치회로(11)는 상기 포인터를 래치하여 1을 출력한다. 이 출력중 상위 5 비트0가 메모리(10)의 상위 어드레스 AHH에 입력된다. 래치회로(11)의 출력중 하위 3 비트 1는 선택기(12)의 입력 A0을 경유하여 메모리(10)의 중위 어드레스 AHL에 입력된다. 또 허프만 부호의 선두로부터 2번째 비트인1이 메모리(10)의 최하위 어드레스 AL에 입력된다. 그 결과,메모리(10)에는 어드레스 11가 입력되고 메모리(10)로부터는, 어드레스11에 대응하여 포인터10와 포인터의 출력을 나타내는 플래그0가 출력된다.
다음에 래치회로(11)는 상기 포인터를 래치하여 10를 출력한다. 이출력중 상위 5 비트 0가 메모리(10)의 상위 어드레스 AHH에 입력된다. 또 래치회로(11)의 출력중 하위 3 비트 10가 선택기(12)의 입력 A0을 경유하여 메모리(10)의 중위 어드레스 AHL에 입력된다. 또 허프만 부호의 선두로부터 2 번째 비트인 0가 메모리(10)의 최하위 어드레스 AL에 입력된다. 그 결과 메모리(10)에는 어드레스 0000000100가 입력되고 메모리(10)으로부터는 어드레스 0000000100에 대응하여 포인터 11과 포인터의 출력을 나타내는 플래그 0가 출력된다.
다음 래치 회로(11)는 상기 포인터를 래치하여 11을 출력한다. 이 출력중 상위 5비트 0가 메모리(10)의 상위 어드레스 AHH에 입력된다. 또 허프만 부호의 선두로부터 2번째 비트인 0이 메모리(10)의 최하위 어드레스 AL에 입력된다. 그 결과 메모리(10)에는 어드레스 0000000111에 대응하여 복호어A와 부호길이 4 및 복호어의 출력을 표시하는 플래그 1이 출력된다. 이 플래그 1 에 의해 래치회로(11)가 리세트되고 다음 허프만 부호 데아타 열의 선두가 전송되게 된다. 이하 마찬가지로 복호 처리를 반복한다.
이상과 같이 제 1 실시예에서 4 비트 단위의 복호를 행하는 경우는 선책신호 e에 의하여 선택기(12)의 입력 A1측을 선택하며, 1 비트 단위의 복호를 행하는 경우는 선태신호 e에 의해 선택기(12)의 입력 A0측을 선택한다. 따라서 복호속도를 중시하는 경우 메모리(10)에 4비트 단위의 복호를 선택한다. 다만 4 비트단위에서 복호를 행하는 경우 1 비트 단위에 비하여 복호 테이블이 최대 8배의 크기로 되며 비용이 증가한다. 따라서 비용을 중시하는 경우에는 1 비트 단위의 복호 트리를 메모리(10)에 설정하여 비트 단위로 복호를 행한다.
다음에 본 발명의 제 2 실시예에 의한 허프만 부호 복호회로를 제 5 도에 나타낸다. 이 제 2실시예의 허프만 부호 복호회로는 리세트 기능을 갖는 래치 회로(31)와, 선택기(32)와, 내부메모리(33)와 , 외부 메모리(34)와 선택기(35)와, 선택기(36)와 선택신호 생성 회로(37)로 구성된다. 여기에서 내부메모리(33)는 본 허프만 부호 복호 회로와 동일 칩내에 설치된 메모리이며, 외부 메모리(34)와는 본 허프만 부호 복호회로에 대해 외부에 설치되는 메모리를 의미하고 있다
내부메모리(33)는 1kw(워드)×13 비트 구성이다. 이 내부메모리(33)는 10비트의 어드레스를 가지고16 비트의 허프만 부호 데이타 열 h의 선두로부터 그 비트를 하위 어드레스 AL로 하고, 선택기 (32)의 출력 8 비트를 10번째 ~3번째 비트인 상위 어드레스 AH로하여 입력한다.
내부메모리(33)는 13 비트중 8비트로 복호어 a혹은 포인터p를 표시하고, 나머지 5 비트로 부호길이 b및 플래그c를 표시하고 있다. 내부메모리(33)의 출력 QD로부터는 복호어 a(혹은 포인터 p)가 출력되고 출력 QF로부터는 부호길이 b와 플래그 c가 출력된다. 이 플래그c는 내부메모리(33)의 출력이 복호어 인가(내부메모리(33)의 출력이 유효한가 어떤가)를 나타내게 되며, 예를들면 출력 QD의 출력이 복호어 a인경우(복호가 종료된 경우)에 1에 설정되고 출력 QD 로부터의 출력이 포인터 p(메모리(10)의 다음 어드레스인 경우 (복호가 계속중인 경우)에는 0이 설정된다.
외부 메모리(34)는 8KW(워드)×13비트 구성이다. 이 외부 메모리(34)는 13비트의 어드레스를 가지고 16비트의 허프만 부호 데이타 열 h의 하위 13 비트를 어드레스로서 입력한다. 외부 메모리(34)는 13 비트중 8 비트로 부호어 a 를 표시하고 5 비트로 부호어 b를 표시하고 있다. 내부메모리(33)의 출력 QD로 부터는 복호어 a가 출력되고 출력 QF로부터는 부호 길이가 출력된다.
래치 회로(31)는 내부메모리(33)에서 출력되는 포인터 c가 0인경우에 내부메모리(33)에서 출력되는 포인터 p의 8 비트를 래치한다. 또 내부메모리(33)에서 출력되는 클럭 c가 1인 경우에 리세트 되어, 8 비트 전체가 0인 데이타를 출력한다.
선택기 (32)는 선택신호 e에 의하여 입력 A0나A1중 어느것을 선택하여 내부메모리(33)의 상위 어드레스 AH 에 출력한다. 허프만 부호열 h의 복호를 2 비트 단위로 행하는 경우에는 선택 신호 e에 의해 입력 A0를 선택한다. 그 경우 선택기 (32)의 입력 A0에는 래치 회로(31)의 출력 8 비트가 입력되어 내부메모리(33)의 상위 어드레스 AH에 출력된다.
또 허프만 부호 데이타 열 h의 복호를 2 비트 이외의 비트 단위로 행하는 경우(예를 들면 16 비트 단위 )에는 선택 신호 e에 의해 입력 A1을 선택한다. 이 경우 선택기(12)의 입력 A1에는 허프만 부호 데이타 h의 13번째 비트 ~ 6번째 비트인 8비트가 입력되어 내부메모리(33)의 상위 어드레스 AH에 출력된다.
선택기(35)는 내부메모리(33)의 출력 혹은 외부메모리(34)의 출력을 복호어로 선택하여 출력한다. 선택기(36)는 내부메모리(33)의 출력 혹은 외부 메모리(34)의 출력을 부호 길이로 선택하여 출력한다.
선택 신호 발생 회로(37)는 내부메모리(33)의 출력이 유효이면, 선택기(35)및 (36)에 대하여 내부메모리(33)의 출력을 선택하는 선택 신호를 출력한다.
여기에서 내부메모리(33) 및 외부 메모리(34)는 8 비트로 복호어를 5비트로 부호길이를 설정한다. 또 내부메모리(33)의 부호 길이를 나타내는 5 번째 비트에 플래그 c가 설정된다. 외부 메모리(34)에는 허프만 부호 데이타 열 11 번째 비트 이상 16번째 비트 이하에 대응하는 복호어 및 부호 길이가 설정되어 있다.
상기 허프만 부호 복호 회로에 의하면 허프만 부호 길이가 10 비트이내이면 내부메모리(33)에 의해 고속 복호 처리가 가능하다. 복호 처리 속도가 문제가 되지 않는 경우에는 1 비트 단위의 복호트리를 추적하는 것으로 복호를 행한다. 또 가격이 높아도 처리 속도를 중시할 필요가 있는 경우에는 내부메모리(33)과 외부 메모리(34)를 이용하여 복호처리를 행한다.
제 6 도는 제 5 도에 표시된 내부메모리(33)의 설정예를 표시하는 도면이다. 제 6도의 표시와같이 허프만 부호 데이타 열 h의 부호 길이가 10비트이내로 내부메모리(33)만으로 복호 처리가 가능한 경우에 대하여 설명한다.
여기에서 내부메모리(33)에는 어드레스 ****101010에 허프만 부호 10101에 대응하는 복호어 D와 부호길이 6이 제 5도에 나타낸 것과 같이 결정되고 16 비트 허프만 부호 데이타 열 h010101....가 전송된다고 가정한다. 또 허프만 부호 데이타 열h를 16 비트 단위로 복호 처리하는 경우를 설명한다. 즉 선택기 (32)의 입력은 선택신호 e에 의하여 입력 A1측에 선택된다.
이때 래치 회로(31)는 리세트 되어 래치 회로(31)로부터 8비트 전부 0 이 출력된다. 이 래치 회로(31)로 부터의 8 비트는 선택기 (32)의 입력 A0에 입력되나 이경우 선택기 (32)는 외부선택신호 e에의해 입력 A1측이 선택 되므로 이 8 비트는 무시된다.
다음에 허프만 부호 데이타 열 h의 선두 2 비트(15번째 비트와 14번째 비트)인 1은 내부메모리(33)의 하위 어드레스 AL에 입력된다. 즉 선두 비트 (15번째 비트)0가 최하위 비트로 된다. 허프만 부호 데이타 열 h의 상위 13번째~8번째 비트인 8비트가 선택기 (32)의 입력 A1를 경유하여 내부메모리(33)의 상위 어드레스 AH에 입력된다. 그 결과 내부메모리(33)에는 어드레스 ****101010이 입력된다. 또****는 허프만 부호 10101에 계속되는 다음 허프만 부호로 0 또는 1중 어느것으로 해도 좋다.
그러고 내부 메모리(33)로 부터는 어드레스 ****101010에 대응하는 복호어D와 부호길이 6 및 플래그 c=1이 출력된다. 이들 데이타는 각각 선택기 (35)및 선택기(36)에 보내진다 여기에서는 플럭 C =1에 의해 내부메모리(33)의 출력이 유효하여 선택신호 발생 회로(37)에 출력되고 선택 신호 발생 회로(37)로부터 선택기(35) 및 (36)에 대하여 입력 A0를 선택하는 선택 신호가 출력된다. 이 결과 선택기(35) 및 (36)에서 내부메모리(33)으로부터 복호어 D및 부호 길이 6이 출력된다. 그 중 선택기(36)으로부터 출력되는 부호 길이에 의하여 다음에 송달되는 허프만 부호 데이타 열h의 선두가 결정된다.
제 7 도는 내부메모리(33)의 다른 설정예를 나타내는 도면이다. 제 7도에 나타난 내부메모리(33)의 내용은 2 비트 단위로 허프만 부호를 복호 처리하는 경우의 설정예로 어드레스 00000101*1에는 허프만 부호11111010001에 대응하는 복호어 B와 부호길이 11가 제 7도에서와 같이 설정되고 16비트 허프만 부호 데이타 열 h11111010001.....가 수신된다고 가정한다. 또 2 비트 단위의 복호 처리이므로 선택기 (32)의 입력은 선택신호 e에 의하여 입력 A0측에 선택된다.
이때 래치 회로는 리세트 되고 래치 회로로부터 8비트 모두 0이 출력된다. 이 8비트는 선택기 (32)의 입력 A0를 경유하여 내부메모리(33)의 상위 어드레스 AH에 입력된다. 또 선택기 (32)의입력 A1에는 허프만 부호의 8비트가 입력되나 입력 A0가 선택되어 있으므로 무시된다. 또 허프만 부호의 선두 2비트(15번째 비트와 14번째 비트)인 11는 15번째 비트를 최하위 비트로 하여 내부메모리(33)의 하위 어드레스 AL에 입력된다. 따라서 내부메모리(33)에는 어드레스 0000000011이 입력된다. 그리고 내부 메모리(33)로 부터는 에대응하는 포인터1과 플래그 C=0이 출력된다.
이 8 비트 포인터 1는 래치 회로(31)에서 래치되어 출력되고 선택기 (32)의 입력 A0를 경유하여 내부메모리(33)의 상위 어드레스 AH에 입력된다. 다음에 허프만 부호의 다음 2 비트(13번째 비트와 12 번째 비트)인 11이 내부메모리(33)의 하위 어드레스 AL에 입력된다. 따라서 내부메모리(33)에는 어드레스 0000000111가 입력되고 내부 메모리(33)로부터 대응하는 포인터 00000010과 플래그 C=0가 출력된다.
이 8 비트 포인터 10가 래치 회로(31)에 의해 래치되고 출력되어 선택기 (32)의 입력 A0를 경유하여 내부메모리(33)의 상위 어드레스 AH에 입력된다. 다음에 허프만 부호의 다음 두 비트(11번째 및 10 번째 비트)인 10이 내부메모리(33)의 하위 어드레스 AL에 입력된다. 따라서 내부메모리(33)에는 어드레스 0000001001이 입력되고 내부 메모리(33)로부터 대응 포인터 00000011과 플래그 C=0가 출력된다.
이 8 비트 포인터 11은 래치 회로에 의해 래치되어 출력되고, 이 8비트는 선택기 (32)의 입력 A0를 경유해서 내부메모리(33)의 상위 어드레스 AH에 입력된다. 따라서 내부메모리(33)에는 어드레스0000001101이 입력되고 내부 메모리(33)으로 부터는 대응하는 포인터 100과 플래그 C=0가 출력된다. 이 8 비트 100가 래치 회로(31)에서 래치되어 출력되고 선택기 (32)의 입력 A0를 경유하여 내부메모리(33)의 상위 어드레스 AH에 입력된다. 다음에 허프만 부호의 다음 2 비트(7번째 비트와 6 번째 비트)인 0가 내부메모리(33)의 하위 어드레스 AL에 입력된다. 따라서 내부메모리(33)에는 어드레스 00000010000가 입력되고 내부 메모리(33)에서는 대응하는 포인터 101과 플래그 C=0가 출력된다.
이 8 비트 포인터 101가 래치 회로에서 래치되어 출력되고 선택기 (32)의 입력 A0를 경유하여 내부메모리(33)의 상위 어드레스 AH에 입력된다. 다음에 허프만 부호의 다음 2 비트(5번째 비트와 4 번째 비트)인 1*가 내부메모리(33)의 하위 어드레스 AL에 입력된다. *는 허프만 부호 1111101001에 계속되는 허프만 부호의 선두 비트로 0 또는 1중 어느것도 좋다.
이에 따라 내부메모리(33)에는 어드레스 00000101*가 입력된다. 그리고 내부메모리(33)에서는 어드레스 00000101*1에 대응하는 부호어 B와 부호같이 11 및 플래그 C=1가 출력된다. 이들 데이타는 각각 선택기(35) 및 선택기 (36)에 전송된다. 여기에서 플래그 C=1에 의해 내부메모리(33)의출력이 유효인 것이 선택 신호 발생 회로 (37)에 출력되고 선택 신호 발생 회로(37)으로부터는 선택기(35) 및 (36)에 대하여 입력 A0를 선택하는 선택 내부메모리(33)의 복호어 B 및 부호길이 11가 출력된다. 이중에서 선택기(36)으로부터 출력되는 부호 길이에 의해 다음에 전송될 허프만 부호 데이타 열 h의 선두가 결정된다.
다음에 내부메모리(33)과 외부 메모리(34)둘다를 이용하여 복호 처리하는 경우의동작을 설명한다.
여기에서는 내부메모리(33)에는 허프만 부호 데이타 열 h 16 비트중 상위 10비트 이하로 표시되는 복호어와 부호 길이를 설정한다. 또 내부메모리(33)의 플래그 C는 부호길이의 5 번째 비트에 설정된다. 외부 메모리(34)에는 11비트이상 16비트 이하의 허프만 부호에 대응하는 복호어와 부호 길이를 설정한다.
다만, 부호 길이 순서로 허프만 부호가 할당되면 11비트 이상의 허프만 부호의 선두 3 비트는 필히 111으로 되므로 외부 메모리(34)의 어드레스 입력은 선두 3 비트 (15번째 비트와 13번째 비트)를 제외하고 입력하고 있다.
한편 내부메모리(33)에는 예를들면 복호어 D에 대하여 허프만 부호가 10101이면, 어드레스 ****101010의 모두 (0000101010~01111010101의 8 어드레스)에 복호어 D와 부호길이 6이 설정되어 있다. 외부 메모리(34)에는 예를 들면 복호어 B에 대한 허프만 부호가 1111101001이라면, 어드레서1101000100000에서 어드레스1101000111111의 모두에 복호어 B와 부호길이 11가 설정되어 있다.
여기에서 허프만 부호 데이타열 h에 16 비트의 010101.....가 전송되는 경우를 생각한다. 그 허프만 부호 데이타 열 h의 선두 2 비트 (허프만 부호 데이타열의 15번 째비트와 14번째 비트)인1은 내부메모리(33)의 하위 어드레스 AL에 입력된다. 또 허프만 부호 데이타 열 h의 13번째로부터 10번째 비트(즉 허프만 부호100101의 선두로부터 3번째 비트로부터 6번째 비트)인 101과 다음 허프만 부호의 선두 4 비트 ****의 합 8 비트가 선택기 (32)의 입력 A1을 경유하여 내부메모리(33)의 상위 어드레스 AH에 입력된다. 내부메모리(33)과 외부 메모리(34) 둘다를 이용하는 경우에는 선택기 (32)는 선택 신호 e에 의해 입력A1축에 선택된다.
따라서 내부메모리(33)에는 어드레스****101010가 입력되고 대응하는 복호어 D와 부호길이 6및 플래그 C=1가 내부메모리(33)에서 출력된다. 플래그 C=1에 의해 내부메모리(33)으로부터의 출력이 유효인 것을 나타내는 선택신호가 선택 신호 발생 회로(37)에서 출력된다. 한편 외부 메모리(34)는 13비트 어드레스 입력에 대응하는 복호어와 부호길이를 출력한다.
이들 내부메모리(33), 외부메모리(33)에서 얻어진 복호어와 부호길이는 각각 선택기 (35), (36)에 전송되나, 선택 신호 발생부(37)는 상기 플래그C=1에 의해 내부메모리(32)의 출력을 선택하도록 선택기(35),(36)에 선택 신호 e 를 보낸다. 선태기 (35), (36)은 입력 A0측이 선택된다. 따라서 선택기(35,36)은 내부메모리(33)로부터의 복호어 D와 부호길이 6를 출력한다. 이 부호 길이 6는 허프만 부호 데이타 열 h에 보내져 다음의 허프만 부호 데이타 열 h 의 선두가 결정된다.
다음에 허프만 부호 데이타열 h 1111010001.....이 전송된 경우를 고려한다. 내부메모리(33)에는 선두 2 비트 11가 하위 어드레스 AL에 입력되고 선두 3 번째 비트로부터 10번째 비트 (상위 13번째 비트 6번째 비트)의 8 비트11101000가 선택기 (32)의 입력 A1을 경유하여 상위 어드레스 AH에 입력된다. 따라서 어부 메모리(33)에는 어드레스0001011111가 입력된다. 내부메모리(33)에서 그 어드레스에 대응한 데이타 출력이 되거나, 플래그 C=0가 설정되며 이 플래그 C=0에 의하여 내부메모리(33)의 출력이 무효인 것을 선택 신호 발생부(37)에 통지한다.
한편 외부 메모리(34)에는 선두 4번째 비트로부터 16번째 비트(상위 제 12번째 비트로부터 제 0번째 비트)까지의 *****10001011가 어드레스로 입력된다. 그리고 외부 메모리(34)에서 어드레스*****10001011에 대응하는 복호어 B와 부호길이 11가 출력된다. 이 경우 선택 신호 발생부(37)에서는 플래그 C=0에 의해 내부메모리(33)의 출력은 무효로 하고, 외부 메모리(34)의 출력은 유효로하는 선택신호가 선택기(35),(36)에 보내진다. 선택기 (35), (36)은 입력 A1측이 선택된다. 이에 따라 선택기(35)(36)으로부터는 외부 메모리(34)에서의 복호어 B와 부호길이 11을 출력한다. 이 부호 길이 11은 허프만 부호 데이타 열 h에 보내져 다음 허프만 부호 데이타 열 h의 선두를 결정한다.
이상과 같이 제 2 실시예의 허프만 부호 복호화 회로에서는 사용자가 비용과 복호 속도를 참작하여 각종의 부호방식을 선택할 수 있다.
본 발명의 제 3 실시예에 의한 허프만 부호 복호회로에 대하여 제 8도를 참조하여 설명한다.
제 3 실시예의 허프만 부호 복호회로는 제 8 도에서와 같이 허프만 부호의 데이타 열 d 에서 소정의 부호열 패턴을 검출하고, 그들 패턴에 대응하는 어드레스를 생성하여 출력하는 어드레스 발생회로(71)와 어드레스 발생회로(71)에서 출력되는 어드레스를 입력하여 대응 복호어와, 복호길이를 출력하는 메모리(72)로 구성된다.
또 어드레스 발생회로(71)를 패턴 검출부(101a-109a)어드레스 산출부(101b-109b)로 구성된다.
이 허프만 부호 복호 회로는 허프만 부호의 어수 (복호수)가 256 이하인때 그리고 부호 테이타 열 d에 비트0가 존재하는 경우에는 0비트 이후의 비트수가 7 비트 이하인것을 이용하고 있다.
여기에서 허프만 부호의 최대 부호길이 L을 16비트, 복호어를 8비트로 한다.어드레스 발생회로(71)의 패턴검출부(101a)는 선두를 제 15 비트로 하여 제 15비트에서 제 0비트의 16비트로 구성된 허프만 부호 데이타열 d의 선두 비트, 즉 제 15 비트가 0인가를 검출한다. 패턴검출부(101a)가 제 15 비트에서 0를 검출하는 경우에 어드레스 산출부(101b)는 0000(H)에 제 14비트~제 8비트인 7비트를 가산하여 어드레스를 출력한다.
패턴검출부(102a)는 허프만 부호 데이타 열 d의 제 15 비트가 1 인가를 그리고 선두에서 2 번재 비트, 즉 제 14 비트가 0인가를 검출한다. 패턴검출부(102a)가 제 15비트는 1으로 제 14비트는 0으로 검출한 경우에 어드레스 산출부(102b)는 0080(H) 에 선두로부터 3 번째, 즉 제 13 비트에서 제 7 비트까지의 7비트를 가산함으로서 어드레스를 산출 출력한다.
패턴검출부(103a)는 패턴부호 데이타 열 d의 선두 2 비트, 즉 제 15 비트와 제 14 비트가 1 인가 또 제 13 비트가 0인가를 검출한다. 패턴검출부(103a)가 제 15비트 및 14비트는 1으로 제 13비트는 0으로 검출한 경우에 어드레스 산출부(103b)는 0100(H) 에 선두로부터 3 번째, 즉 제 13 비트에서 제 7 비트까지의 7비트를 가산함하는 것에 의해 어드레스를 산출하여 출력한다.
패턴검출부(104a)는 허프만 부호 데이타 열 d의 선두 3 비트, 즉 제 15 비트~제 13비트가 1 인가, 제 12 비트가 0인가를 검출한다. 패턴검출부(104a)가 제 15비트~제 13비트는 1및 제 12비트는 0으로 검출한 경우에 어드레스 산출부(104b)는 0180(H) 에 선두로부터 5 번째, 즉 제 11 비트에서 제 5 비트까지의 7비트를 가산함으로서 어드레스를 산출하여 출력한다.
패턴검출부(105a)는 허프만 부호 데이타 열 d의 선두 4 비트, 즉 제 15 비트~제 12비트가 1 또 제 11 비트가 0인가를 검출한다. 패턴검출부(105a)가 제 15비트~제 12비트 1 및 제 11비트는 0으로 검출하는 경우에 어드레스 산출부(105b)는 0200(H) 에 선두에서 6 번째, 즉 제 10 비트에서 제 4 비트까지의 7비트를 가산함으로서 어드레스를 산출하여 출력한다.
패턴검출부(106a)는 허프만 부호 데이타 열 d의 선두 5 비트, 즉 제 15 비트~제 11비트가 1, 또 제 10 비트가 0인가를 검출한다. 패턴검출부(106a)가 제 15비트~제 11비트는 1및 제 10비트는 0으로 검출하는 경우에 어드레스 산출부(106b)는 0280(H) 에 선두에서 7 번째, 즉 제 9 비트로부터 제 3 비트까지의 7비트를 가산함으로서 어드레스를 산출하여 출력한다.
패턴검출부(107a)는 허프만 부호 데이타 열 d의 선두 6 비트, 즉 제 15 비트~제 10비트가 1 또 제 9 비트가 0인가를 검출한다. 패턴검출부(107a)가 제 15비트~제 10비트는 1 및 제 9비트는 0으로 검출한 경우에, 어드레스 산출부(107b)는 0300(H) 에 선두에서 8 번째, 즉 제 8 비트로부터 제 2 비트까지의 7비트를 가산함으로서 어드레스를 산출 출력한다.
패턴검출부(108a)는 허프만 부호 데이타 열 d의 선두 7 비트, 즉 제 15 비트~제 9비트가 1 이며 또 제 8 비트가 0인가,아닌가를 검출한다. 패턴검출부(108a)가 제 15비트~제 9비트 1및 제 8비트는 0으로 검출한 경우에는 어드레스 산출부(108b)는 0380(H) 에 선두로부터 9 번째, 즉 제 7 비트에서 제 1 비트까지의 7비트를 가산함으로서 어드레스를 산출 출력한다.
패턴검출부(109a)는 허프만 부호 데이타 열 d의 선두 8 비트, 즉 제 15 비트~제 8비트가 모두1 인가를 검출한다. 패턴검출부(109a)가 제 15비트~제 8비트로 1을 검출한 경우에는 어드레스 산출부(109b)는 0400(H) 에 선두에서 9 번째, 즉 제 7 비트로부터 제 0 비트까지의 8비트를 가산함으로서 어드레스를 산출 출력한다.
여기에서 7 비트 가산 및 8비트 가산의 어느 경우에도 16진수 0, 80, 100, 180 ,0200, 0280, 0300, 0380, 0400을 각가 2 진수로 표시한때의 하위 7비트 또는 8비트를 입력된 허프만 부호 데이타에 치환함으로써 가산이 실행된다.
메모리(72)에 복호어 8 비트와 부호길이 L 4비트를 설정한다. 여기에서 복호어A에 대한 허프만 부호 를 1로 한다. 따라서 메모리(72)의 어드레스0000000000010000~0000000000011111의 모두에 복호어 A와 부호길이 L4를 설정한다. 또 복호어 B에 대한 허프만 부호를 11111010001로 한다. 이경우는 메모리(72)의 어드레스0000001011000100~0000001011000111의 전부에 복호어 B와 부호길이 L11을 설정한다. 마찬가지로 각 복호어에 대응하는 허프만 부호에 대하여 어드레스를 설정한다. 이하 구체적으로 동작을 설명한다.
우선 어드레스 발생회로(71)에 입력되는 허프만 부호 데이타 열 d를 16비트의 0001.....으로 가정한다. 선두 비트인 제 15비트가 0이므로 이 값은 패턴검출부(101a)에서 검출되며, 어드레스 산출부(101b)에 있어서, 000H에 제 14 비트로부터 제 8 비트까지의 7비트 001****가 가산되어 어드레스 되며 메모리(72)에 출력시킨다
전술한 바와같이 메모리(72)의 어드레스0000000000010000~0000000000011111의 모두에 복호어 A와 부호길이 L4가 설정되어 있으므로 상기 어드레스에 대응하여 메모리(72)로부터 복호 A와 부호길이 L4가 출력된다. 이 부호길이 L4에 의해 다음에 보내지는 허프만 부호데이타 열 h 의 선두가 결정되고 선두로부터 16비트가 어드레스 발생회로(71)로 입력된다.
다음에 어드레스 발생회로(71)에 입력된 허프만 부호 데이타 열 d 를 11111010001...로 가정한다. 선두 6 비트가 111110이므로 패턴검출부(106a)에서 제 15비트~제 11비트에서 1과 또 제 10비트에서 0을 검출하고 어드레스 산출부(106b)에 있어서 0280(H)에 제 9비트로부터 제 3비트까지의 7비트10001**가 가산되어 어드레스로되며 메모리(72)에 출력된다.
상기에서와 같이 메모리(72)의 어드레스0000001011000100~0000001011000111의 모두에 복호어 C와 부호길이 L11가 설정되어 있으므로 상기 어드레스에 대응하여 메모리(72)로부터 복호어 C와 부호길이 L 11이 출력된다. 이부호길이 L11에 의해 다음에 전송되는 허프만 부호 데이타 열 h의 선두가 결정되어 선두 에서 16비트가 어드레스 발생회로(71)에 입력된다. 이하 마찬가지로 하여 상술한 동작을 반복함으로서 복호처리가 행해진다. 이 경우의 메모리(72)의 소요 용량은 종래와 같은 1280 워드 × 12비트이지만, 1개로 해결된다.
다음에 본 발명의 제 4 실시예에 의한 허프만 부호 복호회로에 대하여 제 9도를 참조하여 설명한다.
제 4 실시예의 허프만 부호 복호 회로는, 제 3 실시예에, 허프만 부호 데이타 열 d를 일시적으로 유지하는 부호버퍼(73)와 메모리(72)에 대한 용량이 1280W × 8 비트인 메모리(74)와 부호길이 출력부(75)와 허프만 부호 데이타 열 d의 선두를 지정하는 선두 지정부(76)를 부가하는 구성으로 되어 있다. 어드레스 발생회로(71)의 구성에 대하여는 제 3 실시예와 동일한 것으로 설명을 생략한다.
또 제 10 도는 허프만 부호 데이타열 d의 부호길이 분포의 일예를 나타내는 도면이다.
메모리(74)에는 8비트 복호어를 설정하고, 부호길이 출력부(5)에는 부호길이 분포에 기초로 한 부호길이 L을 출력하도록 대응하는 허프만 부호를 1로 한다. 따라서 메모리(74)에는 어드레스 0000000000010000~0000000000011111의 모두에 복호어A를 설정한다.
제 10 도의 부호길이 분포로부터 허프만 부호 데이타 열 d의 선두 2 비트가 0인경우, 보호길이 L은 4, 선두 2비트가 1인 경우, 부호길이 L은 5,선두 2비트가 10인 경우 부호길이 L은 6 선두 2비트가 11인 경우 부호길이 L은 7로 각각 구해진다. 부호길이 출력부(75)에는 이 규칙에 기초로 각 허프만 부호에 대한 부호길이가 설정되어 있다. 따라서, 입력 데이타 열 d가 0001....인 경우 선두 2비트가 0이므로 부호길이 출력부(75)에서는 부호길이 L 4 가 출력된다.
이상과 같이하여 각 복호어에 대한 허프만 부호의 어드레스와 부호길이 L을 설정한다.
예를들면 허프만 부호 데이타 d0001....가 부호버퍼(73)에 입력되고 부호 버퍼(73)는 데이타 열d의 16비트를 축적하고 다시 어드레스 발생회로 (71)와 부호길이 출력부(75)에 보낸다. 어드헤스 발생회로(71)에는 선두 제 15 비트가 0이므로 제 3 실시예의 경우와 마찬가지로 어드레스 출력부 (101)의 패턴검출부(101b)에서 이것을 검출하고, 어드레스 산출부(101c)에서 0000(H)에 제 14 비트에서 제 8비트까지의 7비트 001****가 가산되어 어드레스로 되며 메모리(72)에 출력된다. 그래서 어드레스0000000000010000~0000000000011111에 대응하여 메모리(72)에서 복호어 A와 부호길이 L4 가 출력된다. 동시에 부호길이 출력부(75)에는 상기와 같은 입력 데이타 열이 0001...가 입력되므로, 부호길이 출력부(75)로부터는 선두 2 비트가 0이기 때문에 부호길이 L4가 출력된다.
그래서 출력된 부호길이 L4는 선두 지정부(76)에 보내진다. 선두 지정부(76)는 이 보내진 부호길이 L 4에 기초하여 부호버퍼(73)에 축적되어 있는 허프만 부호 데이타열 d의 선두 4비트가 복호어A에 대응하는 허프만 부호인 것으로 판정하고, 선두 5번째 비트가 다음 허프만 부호 데이타열 d의 선두 비트로되는 것으로 지정하는 선두 지정신호 H를 부호버퍼(73)에 보낸다. 부호버퍼(73)는 상기 보내진 선두지정 신호 H 로부터 16비트를 새로운 허프만 부호 데이타 열 d로 하여 축적하고, 어드레스 발생회로(71)및 부호길이 출력부(75)에 보낸다. 이하 마찬가지로의 동작을 반복하므로서 복호처리를 행한다.
상기 제 4 실시예에서는 부호길이를 메모리(74)에서 출력하지 않으므로 메모리 엑세스에 소요시간을 단축하는 것이 가능해진다. 또한 허프만 부호데이타 열의 선두비트의 결정을 고가인 고속 메모리를 사용하지 않고 고속화 할 수 있다.
제 3 및 제 4 실시예의 허프만 부호 복호 회로에서는 메모리의 소요용량이 1개로 되므로 집적화의 경우에 있어서, 칩면적을 축소할 수가 있으며, 가격도 줄일 수 있다.
또 제 3 및 제 4실시예에서는 허프만 부호의 어수(부호수)가 256 이하의 경우를 예를들어 설명하였으나 그것에 한정되지 않는다 .즉 2(m+1)(m은 정수) 비트이상의 데이타 열로 구성되는 허프만 부호의 경우, 선두 비트로부터 n(정수)비트째까지의 n비트가 논리 1이며, n+1번째 비트가 0인 데이타 열의 패턴들 패턴검출부에서 검출하고, 어드레스 산출부가 패턴을 검출한경우 2m×(n+1)에 허프만 부호의 n+2번째 비트로부터 n+2+m번째 비트까지의 m비트 데이타를 가산하여 다수의 허프만 부호에 대응하는 다수의 어드레스를 생성한다.
본 발명에 있어서 상기 실시예 이외의 여러가지 변형예가 가능한 것은 말할 필요도 없다. 본 발명의 진정한 정신 및 범위내에 존재하는 변형예는 모두 특허청구의 범위에 포함된 것이다.
예를 들면 제 3 및 제 4 실시예에 있어서 화상 압축과 같이 복호어의 수가 감소하는 경우에는 어드레스 발생회로(71)에 입력되는 허프만 부호 16비트에 대하여 각 어드레스 산출부로 가산하는 비트수를 6 이하 예를 들면 5로 설정하여 메모리 용량을 절감하는 것도 가능하다.

Claims (11)

  1. 비트 가변 길이 (가변장)부호를 1 비트 또는 n(2이상의 정수) 비트마다 복호할때의 상태 천이에 의거하여 정해지는 상기 부호의 복호어와 부호 길이 또는 다음에 엑세스할 포인터와 상기 부호의 복호 상태를 나타내는 플래그를 저장하고, m(n) 비트의 엑세스 어드레스에 따라 상기 복호어와 부호길이 또는 다음에 엑세스할 포인터 및 상기 플래그를 출력하는 복호 테이블 기억 수단과, 상기 복호 테이블 기억 수단에서 출력되는 상기 플레그가 복호 종료를 나타내는 경우에는 리세트되며, 상기 플레그가 복호 계속을 나타내는 경우에는 상기 복호 테이블 기억 수단으로부터 출력되는 m-1 비트의 상기 포인터를 래치하는 래치 수단과, 상기 비트 가변 길이 부호의 1 비트 마다 또는 n비트 마다 복호하는지를 선택함에 따라서 n-1비트를 상기 래치 수단 또는 상기 비트 가변 길이 부호로부터 선택하여 상기 복호 테이블 기억 수단에 출력하는 선택 수단을 구비하고, 상기 복호 테이블 기억 수단에 대하여 상기 비트 가변길이 부호의 선두 비트를 상기 어드레스의 최하위 비트로서 입력하고, 상기 래치 수단으로부터 출력되는 m-1비트의 상위m-n비트를 상기 어드레스의 상위 비트로서 입력하며, 상기 선택 수단으로부터 출력되는 n-1비트를 상기 어드레스의 중위 비트로서 입력하는 허프만 부호 복호 회로,
  2. 제 1 항에 있어서, 상기 선택수단은 외부 선택 신호에 의해서 상기 비트 가변 길이 부호를 1 비트 마다 또는 n비트마다 복호하는 지를 지정하는 선택기를 포함하는 허프만 부호 복호 회로,
  3. 제 1 항에 있어서, 상기 래치 수단은 상기 복호 테이블 저장 수단으로부터 출력되는 플래그가 복호 종료를 나타내는 경우에 리세트 되어 0을 m-1비트로 출력하는 허프만 부호 복호 회로,
  4. h(정수) 비트의 데이타 열로 하여 보내지는 비트 가변 길이 부호를 n(1 이상의 정수) 비트마다 복호할 때의 상태 천이에 의거하여 정해진 상기 부호의 복호어와 부호 길이 또는 다음에 엑세스할 포인터와, 상기 복호어의 경우에는 유효를 상기 포인터의 경우에는 무효를 나타내는 플래그를 저장하고, m(n)비트의 엑세스 어드레스에 응하여 상기 복호어와 부호 길이 또는 다음에 엑세스 할 포인터 및 상기 플래그를 출력하는 내부 복호 테이블 저장 수단과, 상기 비트 가변 길이 부호를 h비트마다 복호할 때의 상태 천이에 의거하여 정한 상기 부호의 복호어와 부호 길이 또는 다음에 엑세스할 포인터를 저장하고, h비트 이하의 엑세스 어드레스에 응답하여 상기 복호어와 부호길이 또는 다음에 엑세스할 포인터를 출력하는 외부 복호 테이블 저장 수단과, 상기 복호 테이블 저장 수단에서 출력되는 상기 플래그가 유효를 나타내는 경우에는 리세트되며, 상기 플래그가 무효를 나타내는 경우에는 상기 복호 테이블 저장 수단으로부터 출력되는 m-n비트의 상기 포인터를 래치하는 래치 수단과, 상기 비트 가변 길이 부호를 복호하는 복호단위인 상기 n비트의 비트수에 의하여 m-n비트를 상기 래치 수단 혹은 상기 비트 가변 길이 부호에서 선택하여 상기 복호 테이블 저장 수단에 선택적으로 출력하는 제 1 선택 수단과, 상기 내부 복호 테이블 저장 수단 혹은 상기 외부 복호 테이블 저장 수단으로부터 출력된 복호어중 유효한 복호어를 선택적으로 출력하는 제 2 선택 수단과, 상기 내부 복호 테이블 저장 수단으로부터 출력되는 플래그가 유효를 나타내는 경우에는 상기 제 2 선택수단에 대하여 상기 내부 복호 테이블 저장 수단으로부터 출력되는 복호어를 선택하는 신호를 생성하며, 상기 플래그가 무효를 나타내는 경우에는 상기 제 2 선택 수단에 대하여 상기 외부 복호 테이블 저장 수단으로부터 출력되는 복호어를 선택하는 신호를 생성하는 선택 신호 발생 수단을 구비하고, 상기 내부 복호 테이블 저장 수단에 대하여 상기 비트 가변 길이 부호의 선두 n비트를 상기 어드레스의 하위 비트로 하여 입력하고, 상기 래치 수단으로부터 출력되는 m-n비트를 상기 어드레스의 상위 비트로 하여 입력하고, 상기 외부 복호 테이블 저장 수단에 대하여 상기 h비트 부호를 어드레스로 입력하는 허프만 부호 복호 회로,
  5. 제 4 항에 있어서, 상기 내부 복호 테이블 저장 수단 혹은 상기 외부 복호 테이블 저장 수단으로부터 출력되는 부호 길이중, 유효한 부호 길이를 선택적으로 출력하는 제 3 선택 수단을 더 구비하고, 상기 선택 신호 발생 수단은 상기 내부 복호 테이블 저장 수단에서 출력되는 플래그가 유효를 나타내는 경우에는 상기 제 3 선택 수단에 대하여 상기 내부 복호 테이블 저장 수단에서 출력되는 부호 길이를 선택하는 신호를 생성하고, 상기 플래그가 무효를 나타내는 경우에는 상기 제 3 선택수단에 대하여 상기 외부 복호 테이블 저장 수단에서 출력되는 부호 길이를 선택하는 신호를 생성하는 허프만 부호 복호 회로,
  6. 2(m+1)(m은 정수)비트 이상의 데이타 열로 형성되는 허프만 부호의 선두 비트로부터 n(정수)번째 비트까지의 n비트가 논리1이며, n+1번째 비트가 논리 0인 상기 데이타 열의 패턴을 검출하는 수단과, 상기 패턴을 검출할 때에 , 2m×(n+1)에 상기 호프만 부호의 n+2 번째 비트에서 n+2+m번째 비트까지의 m비트의 데이타를 가산하여 다수의 허프만 부호에 대응하는 다수의 어드레스를 생성하는 어드레스 산출수단을 포함하는 어드레스 발생 수단과 상기 허프만 부호에 대응하는 복호어 및 부호길이를 저장하고 상기 어드레스에 대응하는 복호어 및 부호길이를 출력하는 복호 테이블 저장 수단을 구비하는 허프만 부호 복호회로,
  7. 제 6 항에 있어서, 상기 패턴 검출 수단은 상기 허프만 부호의 최대 부호 길이가 p(≤m)비트인 경우, 또한 상기 데이타 열의 패턴이 선두 비트로부터 p-m-1번째 비트까지의 모든 비트가 논리1인 경우에 , 2m×(p-m-1)에 상기 허프만 부호의 p-1번째 비트에서 m+1번째 비트까지의 데이타 열을 가산하여 어드레스를 생성하는 허프만 복호 회로,
  8. 2(m+1)(m은 정수) 비트 이상의 데이타 열로 되는 허프만 부호의 선두 비트로부터 n(정수)번째 비트까지의 n비트가 논리 1이며, n+1번째 비트는 논리0인 상기 데이타 열의 패턴을 검출하는 수단과, 상기 패턴을 검출한 때에 2m×(n+1)에 사익 허프만 부호의 n+2 번째 비트로부터 n+2+m번째 비트까지의 m비트 데이타를 가산하여 다수의 허프만 부호에 대응하는 다수의 어드레스를 발생하는 어드레스 발생수단과, 소정의 부호 길이 분포에 따라 상기 복호어에 대응하는 부호 길이를 출력하는 부호 길이 출력 수단과, 상기 허프만 부호에 대응하는 복호어를 저장하여 상기 어드레스에 의해 대응하는 복호어를 출력하는 복호 테이블 저장 수단을 구비하는 허프만 복호 회로,
  9. 제 8 항에 있어서, 상기 패턴 검출 수단은 상기 허프만 부호의 최대 부호 길이가 p(≤m)비트인 경우, 상기 데이타열의 패턴이 선두 비트로부터 p-m-1번째 비트까지의 전체 비트가 논리1인 상기 데이타 열의 패턴을 검출한 때에 2상부2m×(p-m-1)에 상기 허프만 부호의 p-1 번째 비트에서 m+1번째 비트까지의 데이타 열을 가산하여 어드레스를 생성하는 허프만 부호 복호 회로,
  10. 제 8 항에 있어서, 상기 부호 길이 출력 수단은 상기 허프만 부호의 선두로부터 여러 비트의 상태에 기준하여 상기 복호어에 대응하는 부호 길이를 출력하는 허프만 부호 복호 회로,
  11. 제 8 항에 있어서, 상기 허프만 부호의 데이타 열을 일시적으로 저장하는 부호 버퍼 수단과 , 상기 부호 길이 출력 수단에서 출력되는 부호 길이에 기준하여 상기 부호 버퍼 수단에 축적되는 다음 허프만 부호 데이타 열의 선두를 지정하는 선두 지정 수단을 더 구비하는 허프만 부호 복호 회로,
KR1019930021495A 1992-10-13 1993-10-13 허프만 부호 복호회로 KR0138971B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP4273925A JP2842094B2 (ja) 1992-10-13 1992-10-13 ハフマン復号回路
JP92-273925 1992-10-13
JP92-288029 1992-10-27
JP28802992A JP2757716B2 (ja) 1992-10-27 1992-10-27 ハフマン符号復号回路

Publications (2)

Publication Number Publication Date
KR940010543A KR940010543A (ko) 1994-05-26
KR0138971B1 true KR0138971B1 (ko) 1998-06-15

Family

ID=26550818

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019930021495A KR0138971B1 (ko) 1992-10-13 1993-10-13 허프만 부호 복호회로

Country Status (4)

Country Link
US (1) US5467088A (ko)
EP (2) EP0593046B1 (ko)
KR (1) KR0138971B1 (ko)
DE (2) DE69329092T2 (ko)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6336180B1 (en) 1997-04-30 2002-01-01 Canon Kabushiki Kaisha Method, apparatus and system for managing virtual memory with virtual-physical mapping
JP2746109B2 (ja) * 1994-03-09 1998-04-28 日本電気株式会社 ハフマン符号復号化回路
FR2722041B1 (fr) * 1994-06-30 1998-01-02 Samsung Electronics Co Ltd Decodeur de huffman
KR0152035B1 (ko) * 1994-09-26 1998-10-15 김광호 가변장복호화방법 및 그 장치
KR0152038B1 (ko) * 1994-10-17 1998-10-15 김광호 상대 주소를 이용한 가변장 복호화 장치
JP2687926B2 (ja) * 1995-05-24 1997-12-08 日本電気株式会社 符号復号化装置
KR100214593B1 (ko) * 1996-03-15 1999-08-02 구자홍 캐스케이드 구조를 이용한 런랭스 코드의 코드워드 검출 방법 및 장치
AUPO648397A0 (en) 1997-04-30 1997-05-22 Canon Information Systems Research Australia Pty Ltd Improvements in multiprocessor architecture operation
US6311258B1 (en) 1997-04-03 2001-10-30 Canon Kabushiki Kaisha Data buffer apparatus and method for storing graphical data using data encoders and decoders
AUPO647997A0 (en) 1997-04-30 1997-05-22 Canon Information Systems Research Australia Pty Ltd Memory controller architecture
US6259456B1 (en) 1997-04-30 2001-07-10 Canon Kabushiki Kaisha Data normalization techniques
US6707463B1 (en) 1997-04-30 2004-03-16 Canon Kabushiki Kaisha Data normalization technique
US6289138B1 (en) 1997-04-30 2001-09-11 Canon Kabushiki Kaisha General image processor
US6272257B1 (en) 1997-04-30 2001-08-07 Canon Kabushiki Kaisha Decoder of variable length codes
EP1069691A1 (en) 1999-06-15 2001-01-17 STMicroelectronics S.r.l. Decoding method for a Huffman code
EP1244581B1 (de) * 2000-01-07 2003-07-16 Valeo Wischersysteme GmbH Wischvorrichtung zum reinigen von scheiben an fahrzeugen, insbesondere kraftfahrzeugen
US6636167B1 (en) 2000-10-31 2003-10-21 Intel Corporation Method of generating Huffman code length information
US6563439B1 (en) * 2000-10-31 2003-05-13 Intel Corporation Method of performing Huffman decoding
US6411226B1 (en) * 2001-01-16 2002-06-25 Motorola, Inc. Huffman decoder with reduced memory size
US6778107B2 (en) * 2001-08-30 2004-08-17 Intel Corporation Method and apparatus for huffman decoding technique
CN109831544B (zh) * 2019-01-30 2021-10-08 重庆农村商业银行股份有限公司 一种应用于电子邮箱地址的编码存储方法及系统

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3701111A (en) * 1971-02-08 1972-10-24 Ibm Method of and apparatus for decoding variable-length codes having length-indicating prefixes
US3717851A (en) * 1971-03-03 1973-02-20 Ibm Processing of compacted data
US4475174A (en) * 1981-09-08 1984-10-02 Nippon Telegraph & Telephone Public Corporation Decoding apparatus for codes represented by code tree
US4899149A (en) * 1986-02-28 1990-02-06 Gary Kahan Method of and apparatus for decoding Huffman or variable-length coees
US4821290A (en) * 1988-02-09 1989-04-11 General Electric Company Decoder for digital signal codes
JPH0479421A (ja) * 1990-07-18 1992-03-12 Toshiba Corp 可変長符号化装置および可変長復号化装置
US5208593A (en) * 1991-07-30 1993-05-04 Lsi Logic Corporation Method and structure for decoding Huffman codes using leading ones detection

Also Published As

Publication number Publication date
EP0920136A3 (en) 1999-06-09
EP0593046B1 (en) 2000-07-26
EP0920136A2 (en) 1999-06-02
DE69332253T2 (de) 2003-04-17
EP0593046A2 (en) 1994-04-20
DE69329092D1 (de) 2000-08-31
KR940010543A (ko) 1994-05-26
DE69332253D1 (de) 2002-10-02
US5467088A (en) 1995-11-14
EP0920136B1 (en) 2002-08-28
DE69329092T2 (de) 2001-03-22
EP0593046A3 (en) 1995-10-18

Similar Documents

Publication Publication Date Title
KR0138971B1 (ko) 허프만 부호 복호회로
US5936560A (en) Data compression method and apparatus performing high-speed comparison between data stored in a dictionary window and data to be compressed
US5436626A (en) Variable-length codeword encoder
US4044347A (en) Variable-length to fixed-length conversion of minimum-redundancy codes
US5696507A (en) Method and apparatus for decoding variable length code
US5113516A (en) Data repacker having controlled feedback shifters and registers for changing data format
JP3294026B2 (ja) 高速可変長復号化装置
JP3189876B2 (ja) 可変長符号復号化回路
US4591829A (en) Run length code decoder
US5572208A (en) Apparatus and method for multi-layered decoding of variable length codes
US5216423A (en) Method and apparatus for multiple bit encoding and decoding of data through use of tree-based codes
JP2746109B2 (ja) ハフマン符号復号化回路
US5058137A (en) Lempel-Ziv decoder
US5309156A (en) Variable-length code decoding device
US5991340A (en) Method and system for encoding and decoding data using run prediction
JP3003894B2 (ja) 可変長復号器
JP3009007B2 (ja) 2元符号復号回路
EP0499225B1 (en) Variable-length code decoding device
JP2003174365A (ja) 復号化装置及びその方法
JP2537551B2 (ja) 可変長符号復号回路
KR100207428B1 (ko) 허프만 코드 변환에 적응적인 고속 가변장 복호화 장치 및 방법
JP2842094B2 (ja) ハフマン復号回路
JP2757716B2 (ja) ハフマン符号復号回路
JP3138342B2 (ja) 可変長符号の復号装置
JP3648944B2 (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: 20130201

Year of fee payment: 16

EXPY Expiration of term