US5648775A - High speed variable length code decoding apparatus - Google Patents
High speed variable length code decoding apparatus Download PDFInfo
- Publication number
- US5648775A US5648775A US08/560,088 US56008895A US5648775A US 5648775 A US5648775 A US 5648775A US 56008895 A US56008895 A US 56008895A US 5648775 A US5648775 A US 5648775A
- Authority
- US
- United States
- Prior art keywords
- bit
- length
- sequence
- codeword
- output
- Prior art date
- Legal status (The legal status 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 status listed.)
- Expired - Lifetime
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
- H04N19/436—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation using parallelised computational arrangements
-
- 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
- H03M7/42—Conversion 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/425—Conversion 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/90—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
- H04N19/91—Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
Definitions
- the present invention relates to a variable length code(VLC) decoding apparatus; and, more particularly, to an improved VLC decoding apparatus which is capable of providing a high speed decoding operation by effectively reducing the operational delay of a table-lookup process thereof.
- VLC variable length code
- Variable length coding is a technique often used for lossless data compression. This technique is used to convert fixed-length data to variable-length codewords based on the statistical occurrences of the data. The codeword lengths are chosen in such a manner that shorter codewords are used to represent more frequently occurring data and longer codewords are selected to represent less frequently occurring data. By properly assigning the variable-length codewords to a library of all possible source codewords, the average word length of the variable-length codewords becomes shorter than that of the original data, thereby rendering it possible to achieve data compression.
- Huffman code design is a procedure commonly used to construct a minimum redundant variable length code for a known data statistic.
- the encoding process can be implemented by a table-lookup process using input data to address the table.
- the codewords and the wordlength information are stored as contents of the table and outputted sequentially through the use of a buffer at a constant data rate onto the data channel.
- each codeword has to be segmented from the received bit string before it can be decoded into a source symbol. Therefore, the design of a variable word length decoder is more difficult than that of a variable length encoder.
- variable length code is represented by a tree with codewords as leaves(also called terminal nodes).
- leaves also called terminal nodes.
- the decoding process starts from the root of the code tree and is guided by the received bit stream to follow one of two branches at each node. When a leaf is reached, the end of a codeword is detected and is segmented from the remaining bit stream.
- This type of decoding apparatus includes a logic circuitry corresponding to the tree and a control circuitry to traverse the code tree. This approach may be slow, however, especially for long codewords, since a bit-by-bit search through the code tree is required for each decoded symbol.
- VLC decoders introduced to enhance the speed of operation thereof is a lookup-table based variable length decoder such as the one disclosed in U.S. Pat. No. 5,173,695 issued on Dec. 22, 1992 to Ming-Ting Sun, et al.; and U.S. Pat. No. 5,245,338 to Ming-Ting Sun.
- That decoder includes two cascaded latch circuits, each having a bit capability equal to the maximum codeword length, which store consecutive bits supplied from an input buffer memory for storing the stream to be decoded in fixed-length data segments; a barrel shifter connected to the two latch circuits for providing a sliding decoding window output equal in length to the maximum codeword length; an accumulator which accumulates, modulo the maximum codeword length, the lengths of sequentially decoded variable length codewords; and a lookup-table memory device for outputting a fixed-length word corresponding to a variable-length codeword contained in the sliding decoding window output and for outputting a length of the variable-length codeword.
- this apparatus may enhance the speed of operation thereof through the lookup-table based variable length decoding, it is incapable of reducing the table-lookup delay, having a deleterious effect on high-speed decoding required in, e.g., high definition television systems, thus unable to provide a VLC decoding which fully reduces the operational delay.
- a variable length code decoding apparatus for decoding, at a fixed clock rate, sequential variable length codewords supplied from an input buffer which stores an input bit stream to be decoded in fixed length segments having a length equal to a longest length of the variable length codewords, said apparatus comprising: first and second latch circuits, in response to a read signal, for storing consecutively two fixed length segments from the input buffer; a bit shifting circuit connected to the first and the second latch circuits and having an output window for providing an M-bit window output sequence of the two fixed length segments, M being variable from 0 to one half of the longest length of the variable length codewords and said output window being shifted in direct response to a position control signal and a codeword length signal, wherein the position control signal indicates a bit position in the two fixed length segments from which the window output sequence begins and the codeword length signal indicates how many bits are to be included in the window output sequence; a bit generation circuit for generating an N-bit output sequence by using the window output sequence as low-order bits of
- FIG. 1 shows a schematic diagram of a VLC decoding apparatus in accordance with the present invention
- FIG. 2 depicts the input bit stream used for explaining the operation for the VLC decoding apparatus shown in FIG. 1;
- FIG. 3 provides an explanatory diagram for illustrating the operation of the VLC decoding apparatus shown in FIG. 1.
- VLC decoder 100 in accordance with a preferred embodiment of the present invention is shown in FIG. 1.
- the maximum length of the variable-length codeword to be decoded is 16 bits.
- the VLC decoder 100 decodes successive variable length codewords inputted thereto in a continuous bit stream and outputs decoded fixed length codewords corresponding thereto, at a fixed symbol clock.
- a serial data stream received on a data channel 52 is inputted to an input buffer memory 101 which stores, in fixed-length data segments, the serial data stream variable-length words and sequentially outputs fixed length data segments, e.g., 8-bit segments on a lead 11 in response to a READ signal on a lead 32, wherein the bit length of the data segment is one-half of the maximum bit length of the variable length codewords.
- a latch circuit 103 is connected to the input buffer memory 101 and serves to sequentially receive the fixed-length data segments in response to the READ signal on the lead 32.
- a latch circuit 105 is connected to the latch circuit 103 and functions to receive the fixed-length data segment previously held in the latch circuit 103.
- a READ signal is activated on the lead 32.
- the buffer memory 101 supplies a next data segment onto the lead 11; the latch circuit 103 receives the next data segment; the data segment previously held in the latch circuit 103 is transferred to the latch circuit 105; and the data segment in the latch 105 is dumped.
- the latch circuit 105 thus always contains the data segment which is sequentially earlier in time than the data segment contained in the latch circuit 103.
- the two data segments contained in the two latch circuits 103 and 105 comprise a 16-bit sequence of the serial input data, which is identical to the size of the maximum length codeword.
- the two data segments in latch circuits 103 and 105 are inputted to a bit shifting circuit 107 over parallel leads 12 and 13, respectively. That is, the bits in this new segment are concatenated with the bits in the previous segment and then transferred into the bit shifting circuit 107.
- the output of the bit shifting circuit 107 on a lead 34 is an M-bit window output sequence of the two input data segments, i.e., the previous data segment outputted from the latch circuit 105 and the current data segment outputted from the latch circuit 103, M being a variable number between 0 and one-half of the maximum length codeword, i.e., "8".
- the M-bit output window is slidable across the 16-bit input to the bit shifting circuit 107 and its position is directly determined according to a position control signal on a lead 33 and a codeword length on a lead 53, wherein the position control signal indicates a bit position in the stored two data segments from which the window output sequence begins, and the codeword length indicates how many bits are to be included in the window output sequence.
- the M-bit window output sequence on the lead 34 is then coupled to a bit generation circuit 109 which serves to generate an 8-bit output sequence through the use of the M-bit window output sequence. That is, the bit generation circuit 109 generates an 8-bit output sequence by using the window output sequence as low-order bits of the 8-bit output sequence.
- the 8-bit output sequence on a lead 14 from the bit generation circuit 109 is coupled to an OR circuit 111 which is also coupled to a 16-bit latch circuit 113 over a lead 15.
- the latch circuit 113 latches the decoding output sequence on a lead 42 from the shifter 115 and is divided into a low-order 8-bit sequence and a high-order 8-bit sequence.
- the divided low-order and high-order bit sequences of the decoding output sequence are fed to the OR circuit 111 and the shifter 115 over leads 15 and 23, respectively, in order to produce a next decoding output sequence.
- the OR circuit 111 performs a logic OR operation for two inputs thereof, i.e., the 8-bit output sequence on the lead 14 from the bit generation circuit 109 and the low-order 8-bit sequence of the decoding output sequence on the lead 15 from the latch circuit 113, and generates the logic OR operated bit sequence onto a lead 22.
- the high-order bit sequence of the decoding output sequence and the logic OR operated bit sequence on the respective leads 22 and 23 are then simultaneously coupled to the shifter 115.
- the shifter 115 directly shifts in a high-order direction the 16-bit sequence applied thereto in response to the codeword length on the lead 53.
- the codeword length informs the shifter how many bits it should take from the most significant bit(MSB) of the bit sequence.
- the shifter 115 takes and removes a number of bits equivalent to the value of the codeword length beginning from the MSB of the bit sequence. Thereafter, the sequence is shifted so that each bit in the bit sequence is moved towards the MSB by the value of the codeword length, and the space, created in the least significant bit(LSB) of the bit sequence by the bits being shifted, is filled by zeros. This new bit sequence is then sent out as the output sequence by the shifter onto the lead 42.
- the output of the shifter 115 is connected on the lead 42 to a memory device 121 which comprises several lookup-tables for providing macroblock addresses, macroblock types, macroblock patterns, motion vectors, and DCT coefficients, wherein each of the lookup-tables includes a codeword table AND plane, a word length table OR plane and a decoded word table OR plane.
- the memory device 121 shown in FIG. 1 is chosen to have two lookup-tables 124 and 126.
- each codeword is represented as an entry in the codeword table AND plane according to the bit pattern of the codeword. Since most codewords in a codeword library, which has the maximum word length capacity of 16 bits, have fewer than 16 bits, the bit positions of the output from the shifter, beyond the actual codeword bit pattern in the codeword table, are designated as "don't care" positions.
- a codeword is detected when a sequence from the shifter 115 matches one of the codeword bit patterns stored in the codeword table AND plane. Thus, for example, if one of the variable-length codeword bit patterns is "00", and the 16-bit sequence outputted from the shifter 115 has a pattern "0001 1011 0111 0111", then a match occurs on the first two bits. The first two bits are thus recognized as a variable-length codeword and the next word begins with the third bit.
- each of the word length table OR planes When the decoding output sequence on the lead 42 matches an entry in each of the codeword table AND planes, the entry in each of the word length table OR planes and the entry in each of the decoded word table OR planes are activated.
- Each of the decoded word table OR planes outputs the decoded fixed length words corresponding to the matched variable length codewords in each of the codeword table AND planes to an output selection block 117.
- each word length table OR plane generates a word length signal to the output selection block 117, wherein the word length signal indicates the length of the matched variable length codeword in each codeword table.
- the output selection block 117 in response to an output selection signal and a clock signal generated from a variable length decoding(VLD) control block 119, selects one of two fixed length codewords and their word lengths corresponding to the fixed length codewords, from the lookup-tables 124 and 126, and provides the selected codeword and its word length onto the respective leads 54 and 53.
- the word length tables output "2", representing the length of the detected word "00".
- this codeword length on the lead 53 is directly coupled to the shifter 115 in order to generate an output sequence in advance for carrying out a table-lookup process.
- the codeword length on the lead 53 is also inputted into a carry signal generator 123.
- the carry signal generator 123 In response to the clock signal from the VLD control block 119, the carry signal generator 123 generates the position control signal represented by adding "1" to the previously accumulated modulo 8 codeword length stored therein; and accumulates the codeword length on the lead 53 with the previously accumulated modulo 8 codeword length.
- the carry signal generator 123 activates a READ signal.
- This READ signal of "1" is outputted on the lead 32 to the input buffer memory 101 and the latch circuit 103 in order to bring the next 8-bit data segment in the input buffer memory 101 into the latch circuit 103 while transferring the contents of the latch circuit 103 to the latch circuit 105.
- the operation of the decoder in FIG. 1 may be more readily understood with reference to an example shown in tabular form in FIGS. 2 and 3. It is assumed that the data stream inputted from the data channel 52 to the input buffer memory 101 shown in FIG. 1 consists of the bit stream "0001 1011 0111 0111 1011 1110 1111 1101 1101 1110 . . . ", as shown in FIG. 2.
- the shifter 115 is provided with the first and the second data segments, i.e., "0001 1011 0111 0111", to be decoded; the fourth data segment, i.e., "1011 1110", is inputted to the latch circuit 105; and the fifth data segment, i.e., "1111 1101", is fed to the latch circuit 103.
- the outputs of the latch circuits 103 and 105, the outputs of the shifter 115, and the outputs of the memory device 117 are of noise values.
- a sequence of "0001 1011 0111 0111” is simultaneously provided, as a decoding output sequence, from a shifter 115 to a latch circuit 113 and a memory device 121 over a lead 42.
- Two lookup-tables 124 and 126 within the memory device 121 recognize the first two bits, i.e., "00" in the decoding output sequence as decoded words, for example, "A” and “A'”, and output these fixed length decoded words, A and A', to the output selection block 117, respectively.
- Each of the lookup-tables also outputs the length of "00" to the output selection block 117.
- the output selection block 117 in response to the output selection signal and a clock signal from a VLD control block 119, outputs one of the two decoded words A and A', e.g., A, as the decoded codeword, and the codeword length, i.e., "2", corresponding to the decoded codeword, onto the leads 54 and 53, respectively.
- the shifter 115 directly removes a number of bits equivalent to the value of the codeword length beginning from the MSB of the bit sequence of "0001 1011 0111 0111" stored therein.
- the sequence is shifted so that each bit in the bit sequence is moved towards the MSB by the value of the codeword length, and the space created in the least significant bit(LSB) of the bit sequence by the bits being shifted, is filled by zeros.
- This new bit sequence of "0110 1101 1101 1100" is then sent out as output sequence by the shifter onto the lead 42.
- the new bit sequence on the lead 42 is simultaneously coupled to a latch circuit 113 and the memory device 121 in order to produce a next decoding output sequence and to carry out a table-lookup process while a carry signal generator 123, a bit shifting circuit 107 and a bit generation circuit 109 are operated.
- the carry signal generator 123 in response to the clock signal from the VLD control block 119, generates a position control signal, represented by adding "1" to the previously accumulated modulo 8 word length stored therein, to the bit shifting circuit 107; and accumulates the codeword length of "00" on the lead 53 with the previously accumulated modulo 8 word length, wherein the previously accumulated modulo 8 word length is "0".
- the bit shifting circuit 107 generates a window output sequence in response to the position control signal and the codeword length on the lead 53, wherein the window output sequence begins with a bit in the data segment from two latch circuits 103 and 105, indicated by the position control signal, and the length of the window output sequence is equal to the codeword length on the lead 53.
- the bit shifting circuit 107 generates "10" in the data segment of "1011 1110 1111 1101" as the window output sequence since the position control signal is "1" and the codeword length on the lead 53 is "2".
- the 2-bit sequence of "10” is then coupled to the bit generation circuit 109.
- the bit generation circuit 109 generates a 8-bit output sequence by using the window output sequence as a low-order sequence of the 8-bit output sequence. That is, the bit generation circuit 109 generates, as the 8-bit output sequence, "0000 0010” by using the window output sequence, i.e., "10” from the bit shifting circuit 107 as the low-order sequence of the 8-bit output sequence.
- the OR circuit 111 performs a logic OR operation for its two inputs, i.e., the 8-bit output sequence of "0000 0010" on the lead 14 from the bit generation circuit 109 and a low-order 8-bit sequence in the 16-bit sequence of "0110 1101 1101 1100" latched in the latch circuit 113, i.e., "1101 1100", on the lead 15; and generates the logic OR operated bit sequence, i.e., "1101 1110" onto the lead 22.
- the latch circuit 113 also provides a high-order 8-bit sequence in the 16-bit sequence therein, i.e., "0110 1101" onto a lead 23.
- the high-order 8-bit sequence and the logic OR operated bit sequence on the respective leads 23 and 22 are then simultaneously coupled to the shifter 115 which transfers "0110 1101 1101 1110" as the decoding output sequence on a lead 42.
- the decoding output sequence on the lead 42 is coupled into the latch circuit 113 and the memory device 121 over the lead 42.
- the memory device 121 recognizes the first two bits, i.e., "01" in the decoding output sequence of "0110 1101 1101 1110" as decoded words, for example, "B" and “B'", and outputs these fixed length decoded words, B and B', to the output selection block 117.
- the memory device 121 also outputs the length of "01” to the output selection block 117.
- the output selection block 117 in response to the output selection signal and the clock signal from the VLD control block 119, outputs one of the two decoded words B and B', e.g., B, as the decoded codeword and the codeword length, i.e., "2", corresponding to the decoded codeword, onto the leads 54 and 53, respectively.
- the shifter 115 directly removes two bits, i.e., "01", beginning from the MSB of the bit sequence of "0110 1101 1101 1110" stored therein, in response to the codeword length on the lead 53; and provides the next bit sequence of "1011 0111 0111 1000" onto the lead 42.
- the carry signal generator 123 In response to the clock signal from the VLD control block 119, the carry signal generator 123 generates the position control signal indicating the third bit position in the data segment of "1011 1110 1111 1101" in the bit shifting circuit 107 onto a lead 33 since the previously accumulated modulo 8 word length is "2"; and accumulates the codeword length of "01" on the lead 53 with the previously accumulated modulo 8 word length, i.e., "2".
- the bit shifting circuit 107 generates, as the window output sequence, "11" onto the lead 34 because the output window is shifted to encompass the third bit through the fourth bit in the data segment of "1011 1110 1111 1101" in response to the position control signal and the codeword length, i.e., "2", on the lead 53.
- the 2-bit sequence of "11” is then coupled to the bit generation circuit 109.
- the bit generation circuit 109 generates, as the 8-bit output sequence, "0000 0011” onto the lead 14 by using "11” from the bit shifting circuit 107 as the low-order sequence of the 8-bit output sequence.
- the OR circuit 111 performs a logic OR operation for its two inputs, i.e., "0000 0011” on the lead 14 and a low-order 8-bit sequence in the 16-bit sequence of "1011 0111 0111 1000" in the latch circuit 113, i.e., "0111 1000", on the lead 15; and generates the logic OR operated bit sequence, i.e., "0111 1011" onto the lead 22.
- the latch circuit 113 also provides a high-order 8-bit sequence in the 16-bit sequence therein, i.e., "1011 0111" onto a lead 23.
- the high-order 8-bit sequence and the logic OR operated bit sequence on the respective leads 23 and 22 are then simultaneously coupled to the shifter 115 which transfers "1011 0111 0111 1011" as the decoding output sequence on the lead 42.
- the decoding output sequence on the lead 42 is coupled to the latch circuit 113 and the memory device 121 over the lead 42.
- the memory device 121 recognizes the first five bits, i.e., "10110", in the decoding output sequence, i.e., "1011 0111 0111 1011", as decoded words, for example, "C” and “C'”, and outputs these fixed length decoded words, C and C', to the output selection block 117.
- the memory device 121 also outputs the length of "10110" to the output selection block 117.
- the output selection block 117 in response to the output selection signal and the clock signal from the VLD control block 119, outputs one of the two decoded words C and C', e.g., C, as the decoded codeword and the codeword length, i.e., "5", corresponding to the decoded codeword, onto the leads 54 and 53, respectively.
- the shifter 115 directly removes five bits, i.e., "10110" beginning from the MSB of the bit sequence of "1011 0111 0111 1011" stored therein, in response to the codeword length of "5" on the lead 53; and provides the new bit sequence of "1110 1111 0110 0000" onto the lead 42.
- the carry signal generator 123 in response to the clock signal from the VLD control block 119, generates the position control signal indicating the fifth bit position in the data segment of "1011 1110 1111 1101" in the bit shifting circuit 107 onto the lead 33 since the previously accumulated modulo 8 word length is "4"; and accumulates the codeword length of "10110" on the lead 53 with the previously accumulated modulo 8 word length, i.e., "4".
- the bit shifting circuit 107 generates, as the output sequence, "11101" onto the lead 34 because the output window is shifted to encompass the fifth bit through the ninth bit in the data segment of "1011 1110 1111 1101" in response to the position control signal and the codeword length, i.e., "5" on the lead 53.
- the 5-bit sequence of "11101” is then coupled to the bit generation circuit 109.
- the bit generation circuit 109 generates "0001 1101", as the 8-bit output sequence, onto the lead 14 by using "11101" from the bit shifting circuit 107 as the low-order sequence of the 8-bit output sequence.
- the OR circuit 111 performs a logic OR operation for its two inputs, i.e., "0001 1101” on the lead 14 and a low-order 8-bit sequence in the 16-bit sequence of "1110 1111 0110 0000" latched in the latch circuit 113, i.e., "0110 0000", on the lead 15; and generates the logic OR operated bit sequence, i.e., "0111 1101" onto the lead 22.
- the latch circuit 113 also provides a high-order 8-bit sequence in the 16-bit sequence therein, i.e., "1110 1111" onto the lead 23.
- the high-order 8-bit sequence and the logic OR operated bit sequence on the respective leads 23 and 22 are then simultaneously coupled to the shifter 115.
- the shifter 115 provides "1110 1111 0111 1101" as the decoding output sequence on the lead 42.
- the decoding output sequence on the lead 42 is coupled to the latch circuit 113 and the memory device 121 over the lead 42.
- the memory device 121 recognizes the first four bits, i.e., "1110” in the decoding output sequence, i.e., "1110 1111 0111 1101", as decoded words, for example, "D" and “D'", and outputs these fixed length decoded words, D and D', to the output selection block 117.
- the memory device 121 also outputs the length of "1110 to the output selection block 117.
- the output selection block 117 in response to the output selection signal and the clock signal from the VLD control block 119, outputs one of the two decoded words D and D', e.g., D, as the decoded codeword and the codeword length, i.e., "4", corresponding to the decoded codeword, onto the leads 54 and 53, respectively.
- the shifter 115 directly removes four bits, i.e., "1110", beginning from the MSB of the bit sequence of "1110 1111 0111 1101" stored therein, in response to the codeword length of "4" on the lead 53; and provides the new bit sequence of "1111 0111 1101 0000" onto the lead 42.
- the carry signal generator 123 activates the READ signal since the previously accumulated codeword length is greater than "7".
- a next data segment of "1101 1110" is retrieved from the input buffer memory 101 and latched as a current data segment into the latch circuit 103; and the data segment of "1111 1101” previously latched in the latch circuit 103 is transferred as a previous data segment into the latch circuit 105.
- the current and previous data segments are simultaneously coupled into the bit shifting circuit 107 which transfers the window output sequence of "1111", beginning with the second bit in the previous data segment, on a lead 34 since the previously accumulated modulo 8 word length is "9(modulo 8+1).
- the 4-bit sequence of "1111” is then coupled to the bit generation circuit 109 which generates "0000 1111", as the 8-bit output sequence, onto the lead 14 by using "1111” from the bit shifting circuit 107 as the low-order sequence of the 8-bit output sequence.
- the OR circuit 111 performs a logic OR operation for its two inputs, i.e., "0000 1111” on the lead 14 and a low-order 8-bit sequence in the 16-bit sequence of "1111 0111 1101 0000" latched in the latch circuit 113, i.e., "1101 0000", on the lead 15; and generates the logic OR operated bit sequence, i.e., "1101 1111" onto the lead 22.
- the latch circuit 113 also provides a high-order 8-bit sequence in the 16-bit sequence therein, i.e., "1111 0111" onto the lead 23.
- the high-order 8-bit sequence and the logic OR operated bit sequence on the respective leads 23 and 22 are then simultaneously coupled to the shifter 115.
- the shifter 115 provides "1111 0111 1101 1111" as the decoding output sequence on the lead 42.
- the VLC decoding apparatus of the present invention provides a further reduction in operational delay, thereby advantageously achieving a high speed decoding operation.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
Description
Claims (2)
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR94-30161 | 1994-11-17 | ||
KR1019940030161A KR0141298B1 (en) | 1994-11-17 | 1994-11-17 | Variable length decoding apparatus |
Publications (1)
Publication Number | Publication Date |
---|---|
US5648775A true US5648775A (en) | 1997-07-15 |
Family
ID=19398138
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US08/560,088 Expired - Lifetime US5648775A (en) | 1994-11-17 | 1995-11-17 | High speed variable length code decoding apparatus |
Country Status (3)
Country | Link |
---|---|
US (1) | US5648775A (en) |
KR (1) | KR0141298B1 (en) |
CN (1) | CN1107383C (en) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5818364A (en) * | 1996-06-19 | 1998-10-06 | Hewlett-Packard Company | High bit-rate huffman decoding |
US6133860A (en) * | 1997-11-08 | 2000-10-17 | Hyundai Electronics Industries Co., Ltd. | Variable length decoder with enhanced routing of data to multiplexers |
US6147629A (en) * | 1998-10-15 | 2000-11-14 | Intel Corporation | Method and apparatus for variable length decoding |
AU728882B2 (en) * | 1997-04-30 | 2001-01-18 | Canon Kabushiki Kaisha | Compression |
US20040070525A1 (en) * | 2002-06-20 | 2004-04-15 | Nokia Corporation | Method and a system for variable-length decoding, and a device for the localization of codewords |
US20050146450A1 (en) * | 2004-01-06 | 2005-07-07 | Thomas Renjit T. | Multi-symbol/coefficient decode operation for huffman codes |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100466748C (en) * | 2004-11-12 | 2009-03-04 | 扬智科技股份有限公司 | Digital camera image format variable length decoding apparatus and method |
KR101696350B1 (en) | 2015-03-31 | 2017-01-13 | 주식회사 아세아텍 | Blower type pesticide applicator |
KR102551995B1 (en) | 2018-11-16 | 2023-07-06 | 엘지디스플레이 주식회사 | Vertical structure transistor and electronic device |
KR20240011979A (en) | 2022-07-20 | 2024-01-29 | 김응기 | Agricultural sprayer using Air Compressor for injection device |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4899149A (en) * | 1986-02-28 | 1990-02-06 | Gary Kahan | Method of and apparatus for decoding Huffman or variable-length coees |
US5173695A (en) * | 1990-06-29 | 1992-12-22 | Bell Communications Research, Inc. | High-speed flexible variable-length-code decoder |
US5245338A (en) * | 1992-06-04 | 1993-09-14 | Bell Communications Research, Inc. | High-speed variable-length decoder |
-
1994
- 1994-11-17 KR KR1019940030161A patent/KR0141298B1/en not_active IP Right Cessation
-
1995
- 1995-11-17 CN CN95117534A patent/CN1107383C/en not_active Expired - Lifetime
- 1995-11-17 US US08/560,088 patent/US5648775A/en not_active Expired - Lifetime
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4899149A (en) * | 1986-02-28 | 1990-02-06 | Gary Kahan | Method of and apparatus for decoding Huffman or variable-length coees |
US5173695A (en) * | 1990-06-29 | 1992-12-22 | Bell Communications Research, Inc. | High-speed flexible variable-length-code decoder |
US5245338A (en) * | 1992-06-04 | 1993-09-14 | Bell Communications Research, Inc. | High-speed variable-length decoder |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5818364A (en) * | 1996-06-19 | 1998-10-06 | Hewlett-Packard Company | High bit-rate huffman decoding |
AU728882B2 (en) * | 1997-04-30 | 2001-01-18 | Canon Kabushiki Kaisha | Compression |
US6133860A (en) * | 1997-11-08 | 2000-10-17 | Hyundai Electronics Industries Co., Ltd. | Variable length decoder with enhanced routing of data to multiplexers |
US6147629A (en) * | 1998-10-15 | 2000-11-14 | Intel Corporation | Method and apparatus for variable length decoding |
US20040070525A1 (en) * | 2002-06-20 | 2004-04-15 | Nokia Corporation | Method and a system for variable-length decoding, and a device for the localization of codewords |
US6980138B2 (en) | 2002-06-20 | 2005-12-27 | Nokia Corporation | Method and a system for variable-length decoding, and a device for the localization of codewords |
US20050146450A1 (en) * | 2004-01-06 | 2005-07-07 | Thomas Renjit T. | Multi-symbol/coefficient decode operation for huffman codes |
Also Published As
Publication number | Publication date |
---|---|
KR960020495A (en) | 1996-06-17 |
CN1107383C (en) | 2003-04-30 |
CN1128439A (en) | 1996-08-07 |
KR0141298B1 (en) | 1998-06-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5561690A (en) | High speed variable length code decoding apparatus | |
US5245338A (en) | High-speed variable-length decoder | |
US5436626A (en) | Variable-length codeword encoder | |
US5696507A (en) | Method and apparatus for decoding variable length code | |
US5173695A (en) | High-speed flexible variable-length-code decoder | |
JP3136796B2 (en) | Variable length code decoder | |
US5912636A (en) | Apparatus and method for performing m-ary finite state machine entropy coding | |
US5901177A (en) | High speed variable length code decoding apparatus and method | |
JP3007496B2 (en) | Variable length decoder | |
US5652583A (en) | Apparatus for encoding variable-length codes and segmenting variable-length codewords thereof | |
KR100527891B1 (en) | Method of performing huffman decoding | |
EP0663730B1 (en) | Apparatus for decoding variable length codes | |
JP2831888B2 (en) | HDTV decoder | |
US5677690A (en) | High speed variable length code decoding apparatus | |
US5394144A (en) | Variable length code decoding apparatus | |
US5648775A (en) | High speed variable length code decoding apparatus | |
JP3032134B2 (en) | Variable length decoder for video signals | |
US5736946A (en) | High speed apparatus and method for decoding variable length code | |
US5432512A (en) | Apparatus for decoding variable length codes | |
US5708430A (en) | High speed variable length code decoding apparatus | |
US5701126A (en) | High speed variable length decoder | |
US5754128A (en) | Variable-length code encoding and segmenting apparatus having a byte alignment unit | |
JP3389389B2 (en) | Variable length code decoding device | |
KR100207428B1 (en) | Variable length coding apparatus and method adaptive to changes of the hoffman codes | |
JP2934603B2 (en) | Method and apparatus for decoding variable length code |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: DAEWOO ELECTRONICS, CO., LTD., KOREA, REPUBLIC OF Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:KIM, GYU-SEOK;REEL/FRAME:007770/0742 Effective date: 19951110 |
|
FEPP | Fee payment procedure |
Free format text: PAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
FPAY | Fee payment |
Year of fee payment: 4 |
|
AS | Assignment |
Owner name: DAEWOO ELECTRONICS CORPORATION, KOREA, REPUBLIC OF Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:DAEWOO ELECTRONICS CO., LTD.;REEL/FRAME:013645/0159 Effective date: 20021231 |
|
FPAY | Fee payment |
Year of fee payment: 8 |
|
FPAY | Fee payment |
Year of fee payment: 12 |
|
AS | Assignment |
Owner name: MAPLE VISION TECHNOLOGIES INC., CANADA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:DAEWOO ELECTRONICS CORPORATION;REEL/FRAME:027437/0345 Effective date: 20111215 |
|
AS | Assignment |
Owner name: QUARTERHILL INC., CANADA Free format text: MERGER AND CHANGE OF NAME;ASSIGNORS:MAPLE VISION TECHNOLOGIES INC.;QUARTERHILL INC.;REEL/FRAME:042935/0282 Effective date: 20170601 |
|
AS | Assignment |
Owner name: WI-LAN INC., CANADA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:QUARTERHILL INC.;REEL/FRAME:043182/0859 Effective date: 20170601 |