KR20010063192A - Hoffman code decoding apparatus - Google Patents
Hoffman code decoding apparatus Download PDFInfo
- Publication number
- KR20010063192A KR20010063192A KR1019990060182A KR19990060182A KR20010063192A KR 20010063192 A KR20010063192 A KR 20010063192A KR 1019990060182 A KR1019990060182 A KR 1019990060182A KR 19990060182 A KR19990060182 A KR 19990060182A KR 20010063192 A KR20010063192 A KR 20010063192A
- Authority
- KR
- South Korea
- Prior art keywords
- register
- huffman code
- bit stream
- input
- huffman
- Prior art date
Links
- 239000008186 active pharmaceutical agent Substances 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000000034 method Methods 0.000 description 2
- 238000013138 pruning Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion 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/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/40—Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
- G10L19/04—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using predictive techniques
- G10L19/16—Vocoder architecture
- G10L19/167—Audio streaming, i.e. formatting and decoding of an encoded audio signal representation into a data stream for transmission or storage purposes
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computational Linguistics (AREA)
- Signal Processing (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- Acoustics & Sound (AREA)
- Multimedia (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
Description
본 발명은 허프만 부호 복호화 장치에 관한 것으로, 특히 비트 스트림으로부터 꺼내어진 허프만 부호를 입력으로 하여 인덱스 및 허프만 부호길이 정보를 인식할 수 있도록 한 허프만 부호 복호화장치에 관한 것이다.The present invention relates to a Huffman code decoding apparatus, and more particularly, to a Huffman code decoding apparatus capable of recognizing index and Huffman code length information by inputting a Huffman code extracted from a bit stream.
일반적으로, 허프만 부호는 일련의 역가지치기의 과정을 거쳐서 생성되는데, 우선 주어진 부호에 대하여 확률을 구하고, 그 구해진 확률의 순서에 따라서 각 상징들을 가지의 말단에 배열시키는 것으로 시작한다.In general, Huffman codes are generated through a series of inverse pruning, starting with finding the probabilities for a given sign and arranging each symbol at the end of the branch according to the order of the obtained probabilities.
예를들어, 가지의 말단을 좌측에 위치시키고 그 가지들중 일부를 합해서 새로운 가지를 만들어내는 과정을 반복하여 결국에는 오른쪽에 하나의 가지만 남도록 하는 것이다.For example, the end of a branch is placed on the left and some of the branches are combined to create a new branch, so that only one branch is left on the right.
이를 보다 상세하게 설명하면, 각 말단의 상징들로부터 가지가 하나씩 나오는데 그 가지는 주어진 확률과 같은 가중치를 갖게 된다.In more detail, one branch comes from each end symbol, which has a weight equal to a given probability.
이때, 가중치가 가장 낮은 두개의 가지들을 서로 결합하고 그 가중치들의 합을 구하게 되고, 이 가산값을 합산되지 않은 나머지 가중치들과 비교하여 그 값들의 순서에 따라 다시 가지들을 배열하여 하나의 단이 된다.At this time, the two branches with the lowest weights are combined with each other, and the weights are summed together, and the sum is compared with the remaining non-summed weights, and the branches are arranged again according to the order of the values. .
상기와 같은 동작을 수행하여 모든 가지들이 합산에 참여한후 오직 한개의 가지만 남을 때까지 이 과정을 반복 수행한다.After performing the above operation, all the branches participate in the summation and repeat this process until only one branch remains.
그러면, 가지의 우측 말단이 나오게 되는데, 여기서부터 반대로 좌측 말단까지 진행하면서 각 가지에 '0' 또는 '1'의 값을 새롭게 각 가지에 할당한다.Then, the right end of the branch comes out, and from this point onwards to the left end, a new value of '0' or '1' is assigned to each branch.
우측의 말단에서부터 좌측의 각각의 상징까지 진행하면서 할당된 '0' 또는 '1'의 값을 모두 모으면 하나의 부호가 나오게 되는데 이것이 허프만 부호이다.As you progress from the end of the right side to each symbol on the left and collect all the assigned values of '0' or '1', you get one sign, which is the Huffman sign.
보통, MP-3 나 AAC와 같은 디지탈 오디오 알고리듬은 허프만 부호를 이용하여 자료를 압축하는데, 이러한 허프만 부호는 주어진 상징에 대해 가장 작은 부호길이를 가질수 있는 가변길이 부호의 일종이다.Normally, digital audio algorithms such as MP-3 and AAC use Huffman codes to compress data, which is a variable length code that can have the smallest code length for a given symbol.
상기와 같은 오디오 알고리듬에서 중요한 것은 각각의 오디오 단위를 정해진 시간에 복호화는 것인데, 이러한 복호과정은 주로 디에스피에 의하여 이루어지며, 이때 허프만 부호의 복호에 너무 많은 시간을 소비하게 되면, 주어진 시간에 주어진 오디오 단위를 복호하지 못할 수도 있고, 또한 디에스피와 설계된 허프만 부호 복호기를 다른 커다란 시스템의 일부로 사용하게 될 때 허프만 부호 복호기의 복잡도및 검증의 어려움이 발생할 수 있다.The important thing in such an audio algorithm is to decode each audio unit at a given time. This decoding process is mainly done by DSP, and if too much time is spent decoding the Huffman code, The unit may not be decoded, and the complexity and verification of the Huffman code decoder may occur when the DSP and the designed Huffman code decoder are used as part of another large system.
즉, 상술한 바와같은 종래 기술은 허프만 부호를 복호화하기 위하여 허프만 부호를 저장해 놓은 허프만 코드북을 미리 가지고 있어야 하는데, 이러한 코드를 복호하기 위해서는 각각의 허프만 부호 비트들을 분석하여 이진 가지 형태의 찾기 과정을 수행하므로 많은 시간이 걸릴 뿐만 아니라 회로의 복잡도가 증가하는 문제점이 있었다.In other words, the prior art as described above should have a Huffman codebook that stores the Huffman code in order to decode the Huffman code. To decode such a code, the binary branches are searched by analyzing the respective Huffman code bits. Therefore, not only it takes a lot of time, but there is a problem that the complexity of the circuit increases.
이러한, 문제를 해결하기 위하여 종래에는 피엘에이에 미리 각각의 허프만 부호에 대응되는 복호된 결과를 저장함으로써 빠른 시간 내에 복호화된 결과를 얻고있는데, 이때 피엘에이에 입력되는 입력값들및 출력값들을 제어해야 하는 회로가 복잡한 문제점이 있었다.In order to solve this problem, conventionally, a decoded result corresponding to each Huffman code is stored in the PLA in advance, thereby obtaining a decoded result in a short time. In this case, input values and output values inputted to the PLA must be controlled. There was a complicated problem with the circuit.
따라서, 상기와 같은 문제점을 감안하여 창안한 본 발명은 디에스피상에서 동작하는 소프트웨어와 연동하여 허프만 부호를 복호화함으로써 칩면적을 감소시키면서도 자유도가 높은 허프만 부호 복호화장치를 제공함에 그 목적이 있다.Accordingly, an object of the present invention is to provide a Huffman code decoding apparatus having a high degree of freedom while reducing chip area by decoding a Huffman code in conjunction with software operating on a DS.
도1은 본 발명 허프만 부호 복호화장치에 대한 구성을 보인 블록도.Figure 1 is a block diagram showing the configuration of the Huffman code decoding apparatus of the present invention.
*****도면의 주요부분에 대한 부호의 설명********** Description of the symbols for the main parts of the drawings *****
10:비트 스트림 입력 레지스터 11:배럴쉬프터10: Bit Stream Input Register 11: Barrel Shifter
12:코드북 선택 레지스터 13:허프만 부호 레지스터12: codebook select register 13: Huffman code register
14:프로그램 가능 로직 어레이부 15:인덱스 레지스터14: programmable logic array section 15: index register
16:허프만 부호 길이 레지스터16: Huffman code length register
상기와 같은 목적을 달성하기 위한 본 발명은 입력되는 비트 스트림을 저장하는 비트 스트림 입력 레지스터와; 상기 비트 스트림 입력 레지스터로부터 비트 스트림을 입력받아 이를 후술할 허프만 부호 레지스터 및 허프만 부호 길이 레지스터의 값에 의해 쉬프팅하는 배럴쉬프터와; 후술할 프로그램 가능 로직 어레이부의 코드북을 선택하는 코드북 선택 레지스터와; 상기 배럴쉬프터에 의해 쉬프팅된 입력 비트 스트림을 저장하는 허프만 부호 레지스터와; 상기 코드북 선택 레지스터 및 허프만 부호 레지스터의 값을 입력받아 그에 해당되는 인덱스와 허브만 부호길이를 출력하는 프로그램 가능 로직 어레이부와; 상기 프로그램 로직 어레이부로부터 출력되는 인덱스를 입력받아 이를 저장하는 인덱스레지스터와; 상기 프로그램 로직 어레부로부터 출력되는 허프만 부호 길이를 저장하는 허브만 부호 길이 레지스터를 포함하여 구성한 것을 특징으로 한다.The present invention for achieving the above object is a bit stream input register for storing an input bit stream; A barrel shifter for receiving a bit stream from the bit stream input register and shifting the bit stream by a value of a Huffman code register and a Huffman code length register to be described later; A codebook selection register for selecting a codebook of a programmable logic array unit to be described later; A Huffman code register for storing an input bit stream shifted by the barrel shifter; A programmable logic array unit for receiving values of the codebook selection register and the Huffman code register and outputting corresponding index and hubman code lengths; An index register for receiving an index output from the program logic array unit and storing the index; And a hub only code length register for storing the Huffman code length output from the program logic array.
이하, 본 발명에 의한 허프만 부호 복호화장치에 대한 작용 및 효과를 첨부한 도면을 참조하여 상세히 설명한다.Hereinafter, operations and effects on the Huffman code decoding apparatus according to the present invention will be described in detail with reference to the accompanying drawings.
도1은 본 발명 허프만 부호 복호화장치에 대한 구성을 보인 블록도로서, 이에도시한 바와같이 입력되는 비트 스트림을 저장하는 비트 스트림 입력 레지스터(10)와; 상기 비트 스트림 입력 레지스터(10)로부터 비트 스트림을 입력받아 이를 후술할 허프만 부호 레지스터(13) 및 허프만 부호 길이 레지스터(16)의 값에 의해 쉬프팅하는 배럴쉬프터(11)와; 후술할 프로그램 가능 로직 어레이부(14)의 코드북을 선택하는 코드북 선택 레지스터(12)와; 상기 배럴쉬프터(11)에 의해 쉬프팅된 입력 비트 스트림을 저장하는 허프만 부호 레지스터(13)와; 상기 코드북 선택 레지스터(12) 및 허프만 부호 레지스터(13)의 값을 입력받아 그에 해당되는 인덱스와 허브만 부호 길이를 출력하는 프로그램 가능 로직 어레이부(14)와; 상기 프로그램 가능 로직 어레이부(14)에서 출력된 인덱스를 입력받아 이를 저장하는 인덱스 레지스터(15)와; 상기 프로그램 가능 로직 어레이부(14)에서 출력된 허프만 부호 길이를 저장하는 허브만 부호 길이 레지스터(16)로 구성하며, 이와같이 구성한 본 발명의 동작을 설명한다.1 is a block diagram showing a configuration of a Huffman code decoding apparatus according to the present invention, comprising: a bit stream input register 10 for storing an input bit stream as shown therein; A barrel shifter (11) which receives the bit stream from the bit stream input register (10) and shifts it by the values of the Huffman code register (13) and Huffman code length register (16) which will be described later; A codebook selection register 12 for selecting a codebook of the programmable logic array unit 14 to be described later; A Huffman code register (13) for storing the input bit stream shifted by the barrel shifter (11); A programmable logic array unit 14 for receiving values of the codebook selection register 12 and the Huffman code register 13 and outputting corresponding index and hubman code lengths; An index register 15 for receiving an index output from the programmable logic array unit 14 and storing the index; A hub only code length register 16, which stores the Huffman code length output from the programmable logic array unit 14, describes the operation of the present invention.
먼저, 디에스피는 출력 데이터 버스를 통하여 비트 스트림 입력 레지스터 (10), 코드북 선택 레지스터(12) 및 허프만 부호 레지스터(13)에 데이터를 라이트 할 수 있는데, 우선 허프만 복호화의 최초 단계에 상기 디에스피는 코드북 선택 레지스터(12)와 허프만 부호 레지스터(13)를 초기화한다.First, DS can write data to bit stream input register 10, codebook selection register 12 and Huffman code register 13 via an output data bus, which first in the first stage of Huffman decoding The register 12 and the Huffman code register 13 are initialized.
이때, 상기 코드북 선택 레지스터(12)에 초기화되는 값은 프로그램 가능 로직 어레이부(14)에 저장된 코드북중 원하는 코드북 번호이며, 허프만 부호 레지스터(13)에 초기화되는 값은 최초의 허프만 부호이다.At this time, the value initialized in the codebook selection register 12 is a desired codebook number among the codebooks stored in the programmable logic array unit 14, and the value initialized in the Huffman code register 13 is the first Huffman code.
상기 코드북 선택 레지스터(12) 및 허프만 부호 레지스터(13)가 초기화되면이 값들은 프로그램 로직 가능 어레이부(14)의 입력으로 들어가게 되고, 이에 따라 상기 프로그램 가능 로직 어레이부(14)는 인덱스와 허프만 부호길이를 생성한다.When the codebook selection register 12 and the Huffman sign register 13 are initialized, these values enter the input of the programmable logic array 14, whereby the programmable logic array 14 is indexed and the Huffman code. Create a length.
그러면, 인덱스 레지스터(15)는 상기 인덱스를 입력받아 저장하고, 또한 허프만 부호 길이 레지스터(16)도 상기 허프만 부호길이를 입력받아 이를 저장한다.Then, the index register 15 receives and stores the index, and the Huffman code length register 16 also receives and stores the Huffman code length.
이때, 상기 허프만 부호 길이값은 배럴쉬프터(11)에 인가되어 입력 비트 스트림의 쉬프트양을 조절한다.At this time, the Huffman code length value is applied to the barrel shifter 11 to adjust the shift amount of the input bit stream.
다시 말해서, 소프트 웨어 개발자는 새로운 허프만 부호를 복호하기 위하여 비트 스트림 입력 레지스터(10)에 새로운 허프만 부호를 저장하는데, 즉 상기 비트 스트림 입력 레지스터(10)는 디에스피로부터의 입력 비트 스트림을 출력 데이터 버스를 통해 입력받아 이를 저장하고, 배럴쉬프터(11)는 상기 비트 스트림 입력 레지스터(10)의 입력 비트 스트림을 입력받아 이를 상기 허프만 부호 길이값에 의해 쉬프트하고, 이 쉬프트된 입력 비트 스트림을 허프만 부호 레지스터(13)에 기저장된 허프만 부호와 오아 연산하여 새로운 허프만 부호를 생성하여 그 허프만 부호 레지스터(13)에 저장하는데, 즉 상기 배럴쉬프터(11)는 입력 비트 스트림을 상기 허프만 부호 길이값에 의해 왼쪽으로 소정값 만큼 쉬프트 시키고, 이 쉬프트된 입력 비트 스트림을 허프만 부호 레지스터(13)에 기 저장된 허프만 부호와 오아 연산하여 이 연산값을 새로운 허프만 부호값으로 허프만 부호 레지스터(13)에 저장한다.In other words, the software developer stores the new Huffman code in the bit stream input register 10 to decode the new Huffman code, i.e., the bit stream input register 10 reads the input bit stream from the DSP. The barrel shifter 11 receives an input bit stream of the bit stream input register 10 and shifts the input bit stream by the Huffman code length value, and converts the shifted input bit stream into a Huffman code register. 13) generate a new Huffman code by performing an OR operation with the Huffman code previously stored in 13), and store the new Huffman code in the Huffman code register 13, i.e., the barrel shifter 11 sets the input bit stream to the left by the Huffman code length value. Shift by a value, and use this Huffman sign to shift this shifted input bit stream. The Huffman code pre-operated with the Huffman code previously stored in the register 13, and the operation value is stored in the Huffman code register 13 as a new Huffman code value.
이때, 코드북 선택 레지스터(12)의 소정 선택값이 프로그램 가능 로직 어레이부(14)에 입력된다.At this time, a predetermined selection value of the codebook selection register 12 is input to the programmable logic array unit 14.
그러면, 상기 프로그램 가능 로직 어레이부(14)는 상기 코드북 선택레지스터(12) 및 허프만 부호 레지스터(13)의 값을 입력받아 그에 해당되는 인덱스와 허브만 부호길이를 생성하여 각기 인덱스 레지스터(15)와 허프만 부호 길이 레지스터(16)에 저장한다.Then, the programmable logic array unit 14 receives the values of the codebook selection register 12 and the Huffman code register 13, generates corresponding index and hub only code lengths, and generates the index register 15 and the corresponding index register 15, respectively. The Huffman code length register 16 is stored.
여기서, 상기 프로그램 가능 로직 어레이부(14)가 새로운 출력을 만들어 내는 것은 소프트 웨어 개발자가 새로운 허프만 부호를 비트 스트림으로부터 입력받아 이를 비트 스트림 입력 레지스터(10)에 저장함으로써 가능하게 되는데, 즉 소프트 웨어 개발자는 인덱스 레지스터(15)에 저장된 값을 이용하여 이후의 복호화를 디에스피에서 동작되는 프로그램을 이용하여 수행하고, 또한 허프만 부호 길이 레지스터(16)에 저장된 값을 이용하여 새롭게 비트 스트림 입력 레지스터(10)에 저장할 비트 스트림 양을 정한다.Here, the programmable logic array unit 14 can produce a new output by allowing the software developer to receive a new Huffman code from the bit stream and store it in the bit stream input register 10, that is, the software developer. The subsequent decoding using the value stored in the index register 15 is performed by using a program operating in the DSP, and the value stored in the Huffman code length register 16 is newly added to the bit stream input register 10. Determines the amount of bit stream to store.
이상에서 상세히 설명한 바와같이 본 발명은 하드웨어 제어를 소프트 웨어와 연동하여 제어함으로써 제어회로를 단순화하여 기존의 회로보다 면적이 작으면서도 자유도가 높음과 아울러 복호화 속도도 보다 빠르게 동작하는 효과가 있다.As described in detail above, the present invention simplifies the control circuit by controlling the hardware control in conjunction with the software, so that the area is smaller than that of the existing circuit and has a higher degree of freedom and a faster decoding speed.
Claims (5)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019990060182A KR20010063192A (en) | 1999-12-22 | 1999-12-22 | Hoffman code decoding apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019990060182A KR20010063192A (en) | 1999-12-22 | 1999-12-22 | Hoffman code decoding apparatus |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20010063192A true KR20010063192A (en) | 2001-07-09 |
Family
ID=19627933
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1019990060182A KR20010063192A (en) | 1999-12-22 | 1999-12-22 | Hoffman code decoding apparatus |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR20010063192A (en) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0884081A (en) * | 1994-07-13 | 1996-03-26 | Matsushita Electric Ind Co Ltd | Digital encoding device and digital encoding/decoding device |
JPH0936748A (en) * | 1995-07-19 | 1997-02-07 | Toshiba Corp | Huffman coding method, its device, huffman decoding method and its device |
KR19990027639A (en) * | 1997-09-30 | 1999-04-15 | 구자홍 | A microprocessor having PLA (PLA) |
KR100207428B1 (en) * | 1996-05-14 | 1999-07-15 | 전주범 | Variable length coding apparatus and method adaptive to changes of the hoffman codes |
KR100283088B1 (en) * | 1998-12-30 | 2001-03-02 | 이계철 | Asynchronous variable length decoder |
-
1999
- 1999-12-22 KR KR1019990060182A patent/KR20010063192A/en not_active Application Discontinuation
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0884081A (en) * | 1994-07-13 | 1996-03-26 | Matsushita Electric Ind Co Ltd | Digital encoding device and digital encoding/decoding device |
JPH0936748A (en) * | 1995-07-19 | 1997-02-07 | Toshiba Corp | Huffman coding method, its device, huffman decoding method and its device |
KR100207428B1 (en) * | 1996-05-14 | 1999-07-15 | 전주범 | Variable length coding apparatus and method adaptive to changes of the hoffman codes |
KR19990027639A (en) * | 1997-09-30 | 1999-04-15 | 구자홍 | A microprocessor having PLA (PLA) |
KR100283088B1 (en) * | 1998-12-30 | 2001-03-02 | 이계철 | Asynchronous variable length decoder |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4501288B2 (en) | Huffman code decoding method, decoding apparatus, Huffman code decoding table, and method for creating the same | |
KR100286195B1 (en) | Decoding apparatus for signal encoded by variable length code | |
KR950035221A (en) | Soft symbol generation method and circuit | |
KR0163464B1 (en) | Huffman code decoding circuit | |
WO2002037687A2 (en) | Method of performing huffman decoding | |
US5361323A (en) | Signal encoding device | |
US5964861A (en) | Method for writing a program to control processors using any instructions selected from original instructions and defining the instructions used as a new instruction set | |
JP2007043595A (en) | Variable length code decoding method and device and data decompression device | |
US8947272B2 (en) | Decoding encoded data | |
JPH0651943A (en) | Decoding circuit for variable length code | |
JP4079965B2 (en) | Decryption system | |
EP0647034B1 (en) | A variable word length code decoding method, and a decoder for performing the same | |
JP2000286717A (en) | Decoding device | |
KR20010063192A (en) | Hoffman code decoding apparatus | |
US7761695B2 (en) | Programmable data processor for a variable length encoder/decoder | |
JPH09246990A (en) | Variable length coder/decoder | |
US20070118722A1 (en) | Method for compressing instruction codes | |
JP3229690B2 (en) | Variable length code decoder | |
JP3332630B2 (en) | Decoding device and decoding table generation method | |
JP3054787B2 (en) | Variable length code decoding device | |
US20060015704A1 (en) | Operation apparatus and instruction code executing method | |
JPH05110450A (en) | Code generator | |
JP3659196B2 (en) | Huffman code decoding method and apparatus | |
JPH0750596A (en) | Coding device/method | |
KR950012953B1 (en) | Barrel shifter |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
N231 | Notification of change of applicant | ||
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E601 | Decision to refuse application |