WO2001099418A1 - A method, system, and apparatus pertaining to signal processing - Google Patents

A method, system, and apparatus pertaining to signal processing Download PDF

Info

Publication number
WO2001099418A1
WO2001099418A1 PCT/US2001/016582 US0116582W WO0199418A1 WO 2001099418 A1 WO2001099418 A1 WO 2001099418A1 US 0116582 W US0116582 W US 0116582W WO 0199418 A1 WO0199418 A1 WO 0199418A1
Authority
WO
WIPO (PCT)
Prior art keywords
bit
look
steps
section
result
Prior art date
Application number
PCT/US2001/016582
Other languages
French (fr)
Inventor
Amelia C. Luna
Jason Wang, (Naxin)
Original Assignee
Sony Electronics, Inc.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sony Electronics, Inc. filed Critical Sony Electronics, Inc.
Priority to AU2001264812A priority Critical patent/AU2001264812A1/en
Publication of WO2001099418A1 publication Critical patent/WO2001099418A1/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods 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/436Methods 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods 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/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding

Definitions

  • the present disclosure relates to a system and a method for efficiently decoding a video signal encoded with a variable length code.
  • the disclosure also relates to a method and a system for predictive table look-up of code length of variable length code.
  • variable length codes may also be known as symbols. Because the symbols are variable length and also stored contiguously, it is impossible to know in advance where the beginning of each symbol is within a block (other than the first symbol).
  • the process of decoding and decompressing the stored signal involves a reverse of the process of storing it. That is, first the signal must be decoded before an Inverse Discrete Cosine Transform is performed. Other steps, such as Inverse Quantization, may be performed as well, if quantization was done prior to storage. As described above, it is difficult to decode the symbols because they are of variable length and are not assigned pre-defined locations within each block. That is, the length of the first symbol must be known so that a variable length shift can be done to obtain the start of the next symbol. Furthermore, decoding the video signal must be done in real time for practical use. Unfortunately, this can be difficult even with a relatively fast processor.
  • Some " conventional techniques decode one symbol at a time, obtaining the length of the first symbol to gain the offset into the bit-stream needed to locate the start of the second variable length symbol. These techniques may not be fast enough to achieve real time video processing. Exacerbating the problem is the fact that the architecture used may have a relatively long latency for memory access. Given that the conventional technique must first decode a symbol before knowing the location of the next symbol, the second memory read is delayed until the first symbol is decoded. Consequently, the processor may sit idle while data is being accessed and real time signal processing may not be achieved. Another problem caused by the variable length coding is that while some computer architectures feature multiple ALUs, most of the ALUs sit idle while a symbol is being decoded to get the starting location of the next symbol.
  • the present invention provides a method and system for decoding symbols of variable length in a digital video bit stream, using Very Long Instruction Word (VLIW) architecture.
  • VLIW Very Long Instruction Word
  • the invention takes advantage of the parallelism of the VLIW architecture to provide a software solution which decodes more than one symbol per iteration of a software loop.
  • the present invention operates efficiently with instruction sets which have relatively long latency memory accesses and have multiple ALUs.
  • a still further advantage of the present invention is its ability to decode compressed digital video signal in real time. The present invention provides these advantages and others not specifically mentioned above but described in the sections to follow.
  • a method and system for decoding symbols of variable length in a digital video bit stream in real time, using Very Long Instruction Word (VLIW) architecture is disclosed.
  • VLIW Very Long Instruction Word
  • One embodiment of the present invention first reads several bit sections from a bit stream.
  • the bit stream comprises digital video information and is made up of a series of encoded symbols of varying length. While the first bit section will correspond to a valid symbol in the bit-stream, the rest of the bit sections may or may not, depending on the length of the first section.
  • the next step of this embodiment is indexing a table of variable length codes to obtain a look-up result for each of the read-in bit sections. This is done in parallel for all sections.
  • this embodiment of the present invention determines whether each of the look-up results is valid.
  • a valid look-up result provides the length of the symbol.
  • the valid look-up values are accepted.
  • an additional step is performed of advancing the bit stream by the sum of all accepted look-up results and reading more bit sections. In this fashion, multiple symbols from the bit stream may be read and processed in parallel, even though the length of the symbols is unknown when first reading them.
  • SIMD single instruction multiple data
  • Yet another embodiment of the present invention takes advantage of the multiple ALUs in VLIW architecture by running a set of SIMD instructions on each ALU. In this fashion, all the blocks in an entire video segment may be decoded in parallel, with each block within the video segment being decoded sequentially.
  • Figure 1 is an illustration of a DV (digital video) system, which an embodiment of the present invention may be practiced within.
  • Figure 2 is an illustration of components of the video decoder of Figure 1 , which an embodiment of the present invention may be practiced within.
  • Figure 3 is a schematic of a computer system, which may be useful to implement an embodiment of the present invention.
  • Figure 4A is an exemplary table of codewords of variable length coding, which an embodiment of the present invention may use to decode compressed video signals.
  • Figure 4B is an exemplary table Of the length and value of the symbols in an exemplary bit-stream, which an embodiment of the present invention may decode.
  • Figure 5 is a flowchart illustrating the steps of predictive table look-up of variable length codes, according to an embodiment of the present invention.
  • Figure 6A is a flowchart of the steps of predictive table look-up, according to an embodiment of the present invention which loads four 8-bit samples from the bit stream in parallel.
  • Figure 6B is a diagram illustrating exemplary bit streams and an exemplary look-up table used for predictive table look-up of variable length codes, according to an embodiment of the present invention.
  • Figure 7 is an illustration of a compressed block of a DV bitstream, which is an input to an embodiment of the present invention.
  • Figure 8 is a flowchart of the steps of the process of decoding a video signal by decoding multiple blocks in parallel on VLIW architecture, using SIMD type- instruction set is described, according to an embodiment of the present invention.
  • VLIW Very Long Instruction Word
  • the present invention provides for a method and system for decoding symbols of variable length in a digital video bit stream in real time, using Very Long Instruction Word (VLIW) architecture.
  • VLIW Very Long Instruction Word
  • One embodiment of the present invention uses predictive table look-up to enable the invention to process more than one variable length code (symbol) per software iteration, e.g., in parallel.
  • Another embodiment takes advantage of Single Instruction Multiple Data (SIMD) instruction set to decode symbols in a number of different blocks in a video segment, in parallel. Consequently, a compressed digital signal may be processed in real time.
  • SIMD Single Instruction Multiple Data
  • embodiments of the present invention describe decoding a digital video signal, the present invention is well-suited to operating on other signals as well, such as audio.
  • Figure 1 illustrates an exemplary DV (Digital Video) system 180 of which the present invention forms a part.
  • a compressed digitized video signal, along with an audio signal and a subcode, is stored on a storage medium, e.g., a tape 150.
  • Those combined signals are sent to a splitter 155, which outputs the video component to a video decoder 160.
  • the audio component goes to an audio decoder 165 and then to an audio output buffer 166.
  • the present invention may be practiced within the video decoder 160, which outputs a frame 170 of uncompressed video information.
  • the frame 170 is displayed on the display 175, along with the corresponding audio signal.
  • a control line 185 from the splitter 155 to the display 175 may be used to help synchronize the process.
  • FIG. 2 illustrates a schematic of the exemplary video decoder 160 that can be used in accordance with the present invention.
  • a compressed and coded signal is input to the video decoder 160.
  • the signal may be in a format described in the standard entitled, "The Specification of Consumer Use Digital Video VCRs using 6.3mm Magnetic Tape,” (HD Digital VCR Conference, December, 1994). s
  • the first stage is a variable length decoder (VLD) 200, in which the present invention may be practiced.
  • VLD variable length decoder
  • the input to the VLD 200 is a bit stream of compressed and coded video data, which is logically organized in blocks. It is appreciated that stage 200 can be implemented in software executing on a computer.
  • the VLD 200 outputs an 8 x 8 Byte block of decoded but still compressed video digital data to the Inverse Quantization Stage (IQ) stage 202.
  • IQ Inverse Quantization Stage
  • the IQ stage 202 performs the reverse of the quantization process done before the signal was stored.
  • the next stage is an Inverse Discrete Cosine Transform (IDCT) 204, which reverses the Discrete Cosine Transform done before storing the signal.
  • IDCT Inverse Discrete Cosine Transform
  • the signal is de-shuffled at de-shuffler stage 206 to - produce a replication of the original frame 170 of video content.
  • the IQ, IDCT, and de-shuffling steps described and the associated components (202, 204, 206) in the video decoder 170 are only exemplary, as the present invention is well-suited to function in other systems with alternate ways of compressing signals.
  • Figure 3 illustrates circuitry of computer system 100, which may form a platform for a portion of the VLD 200.
  • Computer system 100 includes an address/data bus 99 for communicating information, a central processor 101 coupled with the bus for processing information and instructions, a volatile memory 102 (e.g., random access memory RAM) coupled with the bus 99 for storing information and instructions for the central processor 101 and a nonvolatile memory 103 (e.g., read only memory ROM) coupled with the bus 99 for storing static information and instructions for the processor 101.
  • Computer system 100 also includes an optional data storage device 104 coupled with the bus 99 for storing information and instructions.
  • Figure 4A illustrates an exemplary table of variable length codes 302, which may be stored in memory 102.
  • each code (symbol) in the table has a specific length, as well as a value.
  • the value may consist of a run and an amplitude, although the nature of this information is not critical to the present invention.
  • the codes themselves, their lengths, and values are pre-established. Relatively common values from the original data may be encoded with short codes, thus giving greater compression.
  • One example that the present invention is well-suited to function with is Huffman coding, which uses codes, in this example, from 3 to 16 bits long. However, the present invention is well-suited to operate with any variable length code system, and with codes of any minimum or maximum length.
  • Table 302 is exemplary for illustrative purposes; the table which the present invention operates with will generally contain more values than is shown in Figure 4A.
  • Figure 4B illustrates an exemplary bit stream 304, which has a reference bit 301 at left edge.
  • the exemplary bit stream comprises four symbols 306 of varying length. Each of those symbols may be used to index the table 302 ( Figure 4A) to obtain a length and a value for that symbol.
  • the four symbols 306 (000), (01110), (0100), and (101010) can be used to index the table 302 to obtain the length and the value for each symbol shown in table 310 ( Figure 4B).
  • this process can be problematic because the length of the first symbol must be determined to know where the second symbol starts.
  • An embodiment of the present invention provides for a method of predictive table look-up of a second symbol in the bit stream before it is known where the second symbol starts in the bit stream.
  • other embodiments of the present invention may predictively look-up a third symbol, or more symbols before their locations in the bit-stream are determined.
  • FIG. 5 illustrates a flowchart 500 describing the steps of an embodiment of the present invention that uses predictive table look-up to perform variable length decoding.
  • This embodiment takes advantage of the parallelism of VLIW architecture to perform multiple table look-ups in parallel in one software loop.
  • a compressed and encoded bit stream comprising variable length codes (symbols) is input into the VLD 200.
  • the bit stream is logically divided into video segments, which in turn are subdivided into macro-blocks, as is well known in the art.
  • a plurality of bit sections are loaded into a plurality of registers, starting with a reference bit 301 of the bit stream.
  • the reference bit 301 may be the leading edge of the bitstream.
  • the bit sections may be of any convenient size. For example, when using 16-bit Huffman encoding, the sections may be 16-bits long. The sections will always be at least as long as the minimum length of code. Clearly, bit sections will often be longer than a single symbol. Because the location of the beginning of the bit stream is known, the first section will always include a valid symbol. However, as the symbol lengths in the bit- stream are variable and cannot be known in advance, some of the rest of the bit sections will correspond to valid symbols, while others will not.
  • step 515 or Figure 5 the values in the registers are used to index the table of variable length codes 302 to obtain a look-up result, which is the length of the code. Invalid bit sections have a pre-determined length. Taking advantage of the parallelism of VLIW architecture, a number of look-ups are done in parallel. While VLIW architecture is provided as an example, the present invention is well- suited to operating with any architecture which allows multiple operations to be performed in parallel.
  • step 520 an embodiment of the present invention determines whether each of the look-up results is valid. A more detailed example is given below, and illustrated in Figures 6A - 6B, describing one embodiment of this determination.
  • step 525 the valid look-up results are accepted and the rest are discarded.
  • step 530 the present invention determines whether more data is in the bit stream. If so, the bit stream is advanced by the appropriate length, based on the valid results. For example, the bit-stream may be advanced by the sum of the lengths of the accepted code lengths. In this fashion a new reference bit 301 for the bit stream is determined, and the process is repeated from step 510.
  • Figure 6A illustrates a flowchart 600 of an example which processes four bit sections in parallel with each section being 8 bits long.
  • Figure 6B illustrates an exemplary bit stream 680, along with three portions of the bit-stream 680a - 680c. These portions relate to the bit stream 680 as the present invention advances its reads further into the bit stream 680.
  • the reference bit 301 is advanced into the bitstream by a offset based upon the lookup result, as is described herein.
  • step 610 of Figure 6A four separate reads of the bit stream 680 are performed in parallel.
  • these read operations correspond to bit stream 680a, which has its reference bit 301 on the left.
  • the first 8 bits from the bit stream 680a get loaded into register A 0 .
  • the read to register A t is offset 3 bits from the read to register A 0 . This is because the minimum symbol length is 3 bits. If the minimum symbol length were otherwise, the offset would be equal to that minimum symbol length.
  • Data is read into register A 2 by an offset of 1 more bit, and register A 3 by an offset of still one more bit. This is because the - lengths of the next smallest symbols, in this example, are four and five bits.
  • the present invention is well suited to using offsets in this step of other than 1 bit, depending on the length of symbols in the table of variable length codes, as will be understood by those of ordinary skill in the art.
  • step 620 the variable length code table 302 is indexed with the values in each register, and the result in saved.
  • step 630 the look-up result is accepted or rejected according to a formula provided for this example. It will be understood by those in the art that the formula is exemplary and will be different if, for example, the minimum symbol length is different.
  • the four formulas listed in boxes 632 - 638 in step 630 of Figure 6A can be best understood by referring to the bit streams in Figure 6B.
  • First Symbol is the Minimum Symbol Length Box 632, in Figure 6A refers to the case in which the symbol length is 3 bits, which in this case the minimum length. Box 632 states that the look-up result of registers Ag and A 1 are valid. Referring now to Figure 6B, bit stream 680a reflects this case. As is seen, A 0 and A begin in the same location as a symbol in the bit stream and hence will index to a correct value in table 302.
  • Box 634 in Figure 6A refers to the case when the first symbol length is one bit larger than the minimum possible code length.
  • the symbol is four bits long, and the look-up result of registers A 0 and A 2 are valid.
  • Bit-stream 680b covers this case and clearly shows that A 0 and A 2 are loaded from positions of the bit stream in which a symbol starts.
  • the section loaded into register A t contains part of the first symbol; however, and will produce in an invalid result.
  • Embodiments of the present invention account for this and discard the look-up result for this register, as well as the look-up result for register A 3 .
  • First Symbol Length is 2 Bits Longer Than the Minimum Symbol Length Box 636 refers to the case in which the first symbol in the bit stream 680 is 5 bits long, or two bits longer than the minimum symbol length. In this case, the look-up result from registers A 0 and A 3 are valid. Referring to bit-stream 680c of Figure 6B it is clear why this is so. In this case, the bits loaded into registers A 0 and A 3 each correspond to the start of a symbol in the bit-stream 680c and hence the look-up result is valid.
  • Box 638 of Figure 6A refers to the case in which the symbol length of the bits loaded into the first register is greater than 5 bits. In this case, only the look-up result from the first register is accepted. However, because the most common values are encoded with short symbols, a relatively high percentage of symbols are short ones. Hence, the present invention decodes multiple symbols per iteration a relatively high percent of the time. Furthermore, longer symbols do not present as much of a problem with performance as short one do. This is because the significant measure of performance is how many bits can be decoded per unit time. Other embodiments of the present invention provide for cases with longer symbol lengths. The embodiment of the present invention disclosed in this example provides for a worst-case performance of 6 bits per loop.
  • step 640 a check is made to see if the end of the buffer has been reached.
  • the description of the video segment in "The Specification of Consumer Use Digital Video VCR's using 6.3mm Magnetic Tape” (HD Digital VCR Conference, December, 1994) may be referred to for how to determine if the end of a block has been reached.
  • step 650 the bit stream is advanced by the sum of the accepted symbol lengths, and the process is repeated in step 610.
  • FIG. 7 illustrates a video segment 700 of a DV bitstream and is composed of five macro-blocks 702 of compressed information (rows in Figure 7).
  • the video segment 700 (DV bitstream) is an input to the VLD 200.
  • Each video segment 700 is made up of five macro-blocks 702.
  • each macro-block 702 is made up of a macroblock header 725 and six Discrete Cosine Transform (DCT) blocks 704.
  • the macroblock header 725 is comprised of a fixed four bit value called the macroblock status (STA) 720 and a fixed four bit value called a Quantization number (QNO) 722.
  • the first four DCT blocks 704 contain luminance information and are 14 bytes long.
  • the two right-most DCT blocks 704 contain color difference information and are each 10 bytes long.
  • Each DCT block 704 has a DCI 710 (shown as DC 0 - DC 5 ) which is comprised of: 1) a DC value of nine bits; 2) a motion bit of one bit; and 3) a class number of two bits.
  • the AC coefficients 712 are encoded with variable lengths. For example, a Huffman code may be used. Additional processing may be done to the data, such as shuffling and quantization.
  • the present invention is well-suited-to operate on data stored with any variable length code.
  • each DCT block 704 is known.
  • the location of the later symbols in each block can only be determined after all the prior symbols in the DCT block 704 have been decoded to determine their lengths.
  • the starting location of each DCT block 704 is known when using a DV bitstream 700, such as shown in Figure 7.
  • SIMD single instruction multiple data
  • the steps of the process 800 of decoding a video signal by decoding multiple blocks in parallel on VLIW architecture, using SIMD type instruction set is described.
  • the video signal is in the form of the DV bitstream of Figure 7.
  • the example given operates on 8 bit sections; however, the present invention is well-suited to operate on sections of any size. Furthermore, the example operates on 8 sections at a time. As the architecture permits and as is needed to achieve real time digital video processing, the present invention is well-suited to operate on any number of sections at a time.
  • step 805 the starting location of the bit stream in each DCT block 704 is determined by a single SIMD instruction.
  • steps 810 - 817 are performed with SIMD instructions. In these steps, an 8 bit section is read from each of 8 separate DCT blocks 704.
  • steps 820 - 827 each section is decoded separately-.
  • the results of the table look-up may now be processed by SIMD instructions in step 830. The process is repeated until the complete video segment 700 is decoded.
  • each DCT block 704 is read from a location which is advanced by exactly the length of the symbol just decoded for that DCT block 704.
  • a single symbol from each DCT block 704 Is decoded each iteration.
  • Another embodiment of the present invention combines the algorithm illustrated in Figure 8 and described herein with the embodiment illustrated in Figures 5 - 6B and described herein. In this fashion, multiple symbols from each DCT block 704 are decoded in each iteration according to the embodiment of Figures 5. - 6B, and multiple DCT blocks 704 are being processed in parallel according to the embodiment in Figure 8. Thus, even greater efficiency is achieved in decoding the bit-stream.
  • multiple ALUs are used in parallel to decode separate groups of DCT blocks 704. The process in Figure 8 may be run in separate ALUs. By running the process on enough ALUs plus SIMD operations on each ALU, an entire video segment 700 containing 30 DCT blocks 704 may be decoded in parallel.
  • the present invention takes advantage of the multiple ALUs generally present in VLIW architecture.
  • VLIW Very Long Instruction Word

Abstract

A method and system for signal processing (Fig. 1) involving decoding symbols of variable length (160) in a digital video bit stream in real time, using Very Long Instruction Word (VLIW) architecture.

Description

A METHOD. SYSTEM. AND APPARATUS PERTAINING TO SIGNAL
PROCESSING
RELATED U.S. APPLICATION
This Application is related to U.S. Provisional Application entitled, "Pre- parsing of Variable Length Digital Video (DV) Streams," Application Number
60/176,256, filed on January 15; 2000. Said provisional application is hereby incorporated by reference. FIELD The present disclosure relates to the field of digital signal processing.
Specifically, the present disclosure relates to a system and a method for efficiently decoding a video signal encoded with a variable length code. The disclosure also relates to a method and a system for predictive table look-up of code length of variable length code. BACKGROUND ART The field of digital video signal processing has seen rapid development in recent years. Operations, such as decoding and decompressing a signal, which were once done in hardware are now becoming possible to implement in software. However, problems still exist performing digital signal processing via software.
One standard for video signal processing is described in a specification entitled, "The Specification of Consumer Use Digital Video VCR's using 6.3mm Magnetic Tape" (HD Digital VCR Conference, December, 1994). As described therein, video signals are sampled at 13.5 MHz for luminance and 6.75 MHz for color differences and compressed before storing oh a magnetic tape. The compression is done with a bit rate reduction technique using Discrete Cosine Transform (DCT) and Variable Length Coding (VLC), e.g., Huffman coding. The compressed data of one video segment is assigned to 30 separate blocks. The variable length coding process leaves the data in each block as a contiguous stream of variable length codes. In this application, the variable length codes may also be known as symbols. Because the symbols are variable length and also stored contiguously, it is impossible to know in advance where the beginning of each symbol is within a block (other than the first symbol).
The process of decoding and decompressing the stored signal involves a reverse of the process of storing it. That is, first the signal must be decoded before an Inverse Discrete Cosine Transform is performed. Other steps, such as Inverse Quantization, may be performed as well, if quantization was done prior to storage. As described above, it is difficult to decode the symbols because they are of variable length and are not assigned pre-defined locations within each block. That is, the length of the first symbol must be known so that a variable length shift can be done to obtain the start of the next symbol. Furthermore, decoding the video signal must be done in real time for practical use. Unfortunately, this can be difficult even with a relatively fast processor.
Some "conventional techniques decode one symbol at a time, obtaining the length of the first symbol to gain the offset into the bit-stream needed to locate the start of the second variable length symbol. These techniques may not be fast enough to achieve real time video processing. Exacerbating the problem is the fact that the architecture used may have a relatively long latency for memory access. Given that the conventional technique must first decode a symbol before knowing the location of the next symbol, the second memory read is delayed until the first symbol is decoded. Consequently, the processor may sit idle while data is being accessed and real time signal processing may not be achieved. Another problem caused by the variable length coding is that while some computer architectures feature multiple ALUs, most of the ALUs sit idle while a symbol is being decoded to get the starting location of the next symbol.
SUMMARY OF THE INVENTION
Therefore, it would be advantageous, then, to provide a method and system for an efficient software based variable length decoder, which processes a digital video signal comprising variable length codes (symbols). What is further needed is a method and system which allows more than one symbol to be decoded per iteration of a software loop. A still further need exists for a method and system which operates efficiently when using an architecture with a relatively long latency memory access and with multiple ALUs. An even further need exists for such a method and system which can process an encoded digital video signal in real time.
The present invention provides a method and system for decoding symbols of variable length in a digital video bit stream, using Very Long Instruction Word (VLIW) architecture. The invention takes advantage of the parallelism of the VLIW architecture to provide a software solution which decodes more than one symbol per iteration of a software loop. Furthermore, the present invention operates efficiently with instruction sets which have relatively long latency memory accesses and have multiple ALUs. A still further advantage of the present invention is its ability to decode compressed digital video signal in real time. The present invention provides these advantages and others not specifically mentioned above but described in the sections to follow.
A method and system for decoding symbols of variable length in a digital video bit stream in real time, using Very Long Instruction Word (VLIW) architecture is disclosed. One embodiment of the present invention first reads several bit sections from a bit stream. The bit stream comprises digital video information and is made up of a series of encoded symbols of varying length. While the first bit section will correspond to a valid symbol in the bit-stream, the rest of the bit sections may or may not, depending on the length of the first section. The next step of this embodiment is indexing a table of variable length codes to obtain a look-up result for each of the read-in bit sections. This is done in parallel for all sections. Next, this embodiment of the present invention determines whether each of the look-up results is valid. A valid look-up result provides the length of the symbol. Next, the valid look-up values are accepted. In another embodiment of the present invention, an additional step is performed of advancing the bit stream by the sum of all accepted look-up results and reading more bit sections. In this fashion, multiple symbols from the bit stream may be read and processed in parallel, even though the length of the symbols is unknown when first reading them.
Another embodiment of the present invention processes a block of digital video signal information using single instruction multiple data (SIMD) instruction set. This embodiment decodes, in parallel, a number of blocks within a video segment using a single SIMD instruction. By utilizing parallel hardware resources, one software loop can decode multiple blocks of a bit stream at the same time because, the starting point of each block is known in advance.
Yet another embodiment of the present invention takes advantage of the multiple ALUs in VLIW architecture by running a set of SIMD instructions on each ALU. In this fashion, all the blocks in an entire video segment may be decoded in parallel, with each block within the video segment being decoded sequentially.
BRIEF DESCRIPTION OF THE DRAWINGS
Figure 1 is an illustration of a DV (digital video) system, which an embodiment of the present invention may be practiced within.
Figure 2 is an illustration of components of the video decoder of Figure 1 , which an embodiment of the present invention may be practiced within.
Figure 3 is a schematic of a computer system, which may be useful to implement an embodiment of the present invention.
Figure 4A is an exemplary table of codewords of variable length coding, which an embodiment of the present invention may use to decode compressed video signals.
Figure 4B is an exemplary table Of the length and value of the symbols in an exemplary bit-stream, which an embodiment of the present invention may decode.
Figure 5 is a flowchart illustrating the steps of predictive table look-up of variable length codes, according to an embodiment of the present invention.
Figure 6A is a flowchart of the steps of predictive table look-up, according to an embodiment of the present invention which loads four 8-bit samples from the bit stream in parallel. Figure 6B is a diagram illustrating exemplary bit streams and an exemplary look-up table used for predictive table look-up of variable length codes, according to an embodiment of the present invention.
Figure 7 is an illustration of a compressed block of a DV bitstream, which is an input to an embodiment of the present invention.
Figure 8 is a flowchart of the steps of the process of decoding a video signal by decoding multiple blocks in parallel on VLIW architecture, using SIMD type- instruction set is described, according to an embodiment of the present invention..
DETAILED DESCRIPTION OF THE INVENTION
In the following detailed description of the present invention, a method and system for decoding, in parallel, symbols of variable length in a digital video bit stream in real time, using Very Long Instruction Word (VLIW) architecture, numerous specific details are set forth in order to provide a thorough understanding of the present invention. However, it will be recognized by one skilled in the art that the present invention may be practiced without these specific details or with equivalents thereof. In other instances, well known methods, procedures, components, and circuits have not been described in detail as not to unnecessarily obscure aspects of the present invention.
NOTATION AND NOMENCLATURE Some portions of the detailed descriptions which follow are presented in terms of procedures, steps, logic blocks, processing, and other symbolic representations of operations on data bits that can be performed on computer memory. These descriptions and representations are the means used by those skilled in the data processing arts to most effectively convey the substance of their work to others skilled in the art. A procedure, computer executed step, logic block, process, etc., is here, and generally, conceived to be a self-consistent sequence of steps or instructions leading to a desired result. The steps are those requiring physical manipulations of physical quantities. Usually, though not necessarily, these quantities take the form of electrical or magnetic signals capable of being stored, transferred, combined, compared, and otherwise manipulated in a computer system. It has proven convenient at times, principally for reasons of common usage, to refer to these signals as bits, values, elements, symbols, characters, terms, numbers, or the like.
It should be borne in mind, however, that all of these and similar terms are to be associated with the appropriate physical quantities and are merely convenient labels applied to these quantities. Unless specifically stated otherwise as apparent from the following discussions, it is appreciated that throughout the present invention, discussions utilizing terms such as "indexing" or "processing" or "computing" or "translating" or "calculating" or "determining" or "scrolling" or - "displaying" or "recognizing" or the like, refer to the action and processes of a computer system, or similar electronic computing device, that manipulates and transforms data represented as physical (electronic) quantities within the computer system's registers and memories into other data similarly represented as physical quantities within the computer system memories or registers or other such information storage, transmission or display devices.
METHOD AND SYSTEM FOR PREDICTIVE TABLE LOOK-UP OF CODE LENGTH
OF VARIABLE LENGTH CODE
The present invention provides for a method and system for decoding symbols of variable length in a digital video bit stream in real time, using Very Long Instruction Word (VLIW) architecture. One embodiment of the present invention uses predictive table look-up to enable the invention to process more than one variable length code (symbol) per software iteration, e.g., in parallel. Another embodiment takes advantage of Single Instruction Multiple Data (SIMD) instruction set to decode symbols in a number of different blocks in a video segment, in parallel. Consequently, a compressed digital signal may be processed in real time. While embodiments of the present invention describe decoding a digital video signal, the present invention is well-suited to operating on other signals as well, such as audio.
Figure 1 illustrates an exemplary DV (Digital Video) system 180 of which the present invention forms a part. A compressed digitized video signal, along with an audio signal and a subcode, is stored on a storage medium, e.g., a tape 150. Those combined signals are sent to a splitter 155, which outputs the video component to a video decoder 160. The audio component goes to an audio decoder 165 and then to an audio output buffer 166. The present invention may be practiced within the video decoder 160, which outputs a frame 170 of uncompressed video information. The frame 170 is displayed on the display 175, along with the corresponding audio signal. A control line 185 from the splitter 155 to the display 175 may be used to help synchronize the process.
Figure 2 illustrates a schematic of the exemplary video decoder 160 that can be used in accordance with the present invention. A compressed and coded signal is input to the video decoder 160. The signal may be in a format described in the standard entitled, "The Specification of Consumer Use Digital Video VCRs using 6.3mm Magnetic Tape," (HD Digital VCR Conference, December, 1994). s
However, the present invention is well-suited to other formats as well. The first stage is a variable length decoder (VLD) 200, in which the present invention may be practiced. When using the above-stated format, the input to the VLD 200 is a bit stream of compressed and coded video data, which is logically organized in blocks. It is appreciated that stage 200 can be implemented in software executing on a computer. The VLD 200 outputs an 8 x 8 Byte block of decoded but still compressed video digital data to the Inverse Quantization Stage (IQ) stage 202.
The IQ stage 202 performs the reverse of the quantization process done before the signal was stored. The next stage is an Inverse Discrete Cosine Transform (IDCT) 204, which reverses the Discrete Cosine Transform done before storing the signal. Finally, the signal is de-shuffled at de-shuffler stage 206 to - produce a replication of the original frame 170 of video content. The IQ, IDCT, and de-shuffling steps described and the associated components (202, 204, 206) in the video decoder 170 are only exemplary, as the present invention is well-suited to function in other systems with alternate ways of compressing signals.
Figure 3 illustrates circuitry of computer system 100, which may form a platform for a portion of the VLD 200. Computer system 100 includes an address/data bus 99 for communicating information, a central processor 101 coupled with the bus for processing information and instructions, a volatile memory 102 (e.g., random access memory RAM) coupled with the bus 99 for storing information and instructions for the central processor 101 and a nonvolatile memory 103 (e.g., read only memory ROM) coupled with the bus 99 for storing static information and instructions for the processor 101. Computer system 100 also includes an optional data storage device 104 coupled with the bus 99 for storing information and instructions. Figure 4A illustrates an exemplary table of variable length codes 302, which may be stored in memory 102. As is clear from the exemplary Huffman-type table, each code (symbol) in the table has a specific length, as well as a value. The value may consist of a run and an amplitude, although the nature of this information is not critical to the present invention. The codes themselves, their lengths, and values are pre-established. Relatively common values from the original data may be encoded with short codes, thus giving greater compression. One example that the present invention is well-suited to function with is Huffman coding, which uses codes, in this example, from 3 to 16 bits long. However, the present invention is well-suited to operate with any variable length code system, and with codes of any minimum or maximum length. Table 302 is exemplary for illustrative purposes; the table which the present invention operates with will generally contain more values than is shown in Figure 4A.
Figure 4B illustrates an exemplary bit stream 304, which has a reference bit 301 at left edge. The exemplary bit stream comprises four symbols 306 of varying length. Each of those symbols may be used to index the table 302 (Figure 4A) to obtain a length and a value for that symbol. For example, the four symbols 306 (000), (01110), (0100), and (101010) can be used to index the table 302 to obtain the length and the value for each symbol shown in table 310 (Figure 4B). As mention herein, this process can be problematic because the length of the first symbol must be determined to know where the second symbol starts. An embodiment of the present invention provides for a method of predictive table look-up of a second symbol in the bit stream before it is known where the second symbol starts in the bit stream. In a similar fashion, other embodiments of the present invention may predictively look-up a third symbol, or more symbols before their locations in the bit-stream are determined.
Figure 5 illustrates a flowchart 500 describing the steps of an embodiment of the present invention that uses predictive table look-up to perform variable length decoding. This embodiment takes advantage of the parallelism of VLIW architecture to perform multiple table look-ups in parallel in one software loop. In step 505, a compressed and encoded bit stream comprising variable length codes (symbols) is input into the VLD 200. The bit stream is logically divided into video segments, which in turn are subdivided into macro-blocks, as is well known in the art. In step 510, a plurality of bit sections are loaded into a plurality of registers, starting with a reference bit 301 of the bit stream. For example, the reference bit 301 may be the leading edge of the bitstream. The bit sections may be of any convenient size. For example, when using 16-bit Huffman encoding, the sections may be 16-bits long. The sections will always be at least as long as the minimum length of code. Clearly, bit sections will often be longer than a single symbol. Because the location of the beginning of the bit stream is known, the first section will always include a valid symbol. However, as the symbol lengths in the bit- stream are variable and cannot be known in advance, some of the rest of the bit sections will correspond to valid symbols, while others will not.
s
In step 515 or Figure 5 the values in the registers are used to index the table of variable length codes 302 to obtain a look-up result, which is the length of the code. Invalid bit sections have a pre-determined length. Taking advantage of the parallelism of VLIW architecture, a number of look-ups are done in parallel. While VLIW architecture is provided as an example, the present invention is well- suited to operating with any architecture which allows multiple operations to be performed in parallel. In step 520, an embodiment of the present invention determines whether each of the look-up results is valid. A more detailed example is given below, and illustrated in Figures 6A - 6B, describing one embodiment of this determination. In step 525, the valid look-up results are accepted and the rest are discarded.
In step 530, the present invention determines whether more data is in the bit stream. If so, the bit stream is advanced by the appropriate length, based on the valid results. For example, the bit-stream may be advanced by the sum of the lengths of the accepted code lengths. In this fashion a new reference bit 301 for the bit stream is determined, and the process is repeated from step 510.
An embodiment of the present invention can be described by a more specific example, which is illustrated in Figures 6A and 6B. Figure 6A illustrates a flowchart 600 of an example which processes four bit sections in parallel with each section being 8 bits long. Figure 6B illustrates an exemplary bit stream 680, along with three portions of the bit-stream 680a - 680c. These portions relate to the bit stream 680 as the present invention advances its reads further into the bit stream 680. As is clear from comparing bitstreams 680a, 680b, and 680c, the reference bit 301 is advanced into the bitstream by a offset based upon the lookup result, as is described herein. In step 610 of Figure 6A, four separate reads of the bit stream 680 are performed in parallel. Referring to Figure 6B, these read operations correspond to bit stream 680a, which has its reference bit 301 on the left. The first 8 bits from the bit stream 680a get loaded into register A0. In this example, the read to register At is offset 3 bits from the read to register A0. This is because the minimum symbol length is 3 bits. If the minimum symbol length were otherwise, the offset would be equal to that minimum symbol length. Data is read into register A2 by an offset of 1 more bit, and register A3 by an offset of still one more bit. This is because the - lengths of the next smallest symbols, in this example, are four and five bits. The present invention is well suited to using offsets in this step of other than 1 bit, depending on the length of symbols in the table of variable length codes, as will be understood by those of ordinary skill in the art.
Referring now to Figure 6A, in step 620 the variable length code table 302 is indexed with the values in each register, and the result in saved. In step 630, the look-up result is accepted or rejected according to a formula provided for this example. It will be understood by those in the art that the formula is exemplary and will be different if, for example, the minimum symbol length is different. The four formulas listed in boxes 632 - 638 in step 630 of Figure 6A can be best understood by referring to the bit streams in Figure 6B.
First Symbol is the Minimum Symbol Length Box 632, in Figure 6A refers to the case in which the symbol length is 3 bits, which in this case the minimum length. Box 632 states that the look-up result of registers Ag and A1 are valid. Referring now to Figure 6B, bit stream 680a reflects this case. As is seen, A0 and A begin in the same location as a symbol in the bit stream and hence will index to a correct value in table 302.
First Symbol Length is 1 Bit Longer Than the Minimum Length
Box 634 in Figure 6A refers to the case when the first symbol length is one bit larger than the minimum possible code length. In the example given, the symbol is four bits long, and the look-up result of registers A0 and A2 are valid. Referring to Figure 6B, it is clear why this is so. Bit-stream 680b covers this case and clearly shows that A0 and A2 are loaded from positions of the bit stream in which a symbol starts. The section loaded into register At contains part of the first symbol; however, and will produce in an invalid result. Embodiments of the present invention account for this and discard the look-up result for this register, as well as the look-up result for register A3.
First Symbol Length is 2 Bits Longer Than the Minimum Symbol Length Box 636 refers to the case in which the first symbol in the bit stream 680 is 5 bits long, or two bits longer than the minimum symbol length. In this case, the look-up result from registers A0 and A3 are valid. Referring to bit-stream 680c of Figure 6B it is clear why this is so. In this case, the bits loaded into registers A0and A3 each correspond to the start of a symbol in the bit-stream 680c and hence the look-up result is valid.
Box 638 of Figure 6A refers to the case in which the symbol length of the bits loaded into the first register is greater than 5 bits. In this case, only the look-up result from the first register is accepted. However, because the most common values are encoded with short symbols, a relatively high percentage of symbols are short ones. Hence, the present invention decodes multiple symbols per iteration a relatively high percent of the time. Furthermore, longer symbols do not present as much of a problem with performance as short one do. This is because the significant measure of performance is how many bits can be decoded per unit time. Other embodiments of the present invention provide for cases with longer symbol lengths. The embodiment of the present invention disclosed in this example provides for a worst-case performance of 6 bits per loop.
In step 640, a check is made to see if the end of the buffer has been reached. The description of the video segment in "The Specification of Consumer Use Digital Video VCR's using 6.3mm Magnetic Tape" (HD Digital VCR Conference, December, 1994) may be referred to for how to determine if the end of a block has been reached. In step 650, the bit stream is advanced by the sum of the accepted symbol lengths, and the process is repeated in step 610.
Figure 7 illustrates a video segment 700 of a DV bitstream and is composed of five macro-blocks 702 of compressed information (rows in Figure 7). In one embodiment of the present invention, the video segment 700 (DV bitstream) is an input to the VLD 200. Each video segment 700 is made up of five macro-blocks 702. In turn, each macro-block 702 is made up of a macroblock header 725 and six Discrete Cosine Transform (DCT) blocks 704. The macroblock header 725 is comprised of a fixed four bit value called the macroblock status (STA) 720 and a fixed four bit value called a Quantization number (QNO) 722. Still referring to Figure 7, the first four DCT blocks 704 contain luminance information and are 14 bytes long. The two right-most DCT blocks 704 contain color difference information and are each 10 bytes long. Each DCT block 704 has a DCI 710 (shown as DC0 - DC5) which is comprised of: 1) a DC value of nine bits; 2) a motion bit of one bit; and 3) a class number of two bits. After the DCI 710 in the DCT block 704, the AC coefficients 712 are encoded with variable lengths. For example, a Huffman code may be used. Additional processing may be done to the data, such as shuffling and quantization. The present invention is well-suited-to operate on data stored with any variable length code.
Because a variable length code is used, only the location of the first symbol in each DCT block 704 is known. The location of the later symbols in each block can only be determined after all the prior symbols in the DCT block 704 have been decoded to determine their lengths. However, the starting location of each DCT block 704 is known when using a DV bitstream 700, such as shown in Figure 7. One embodiment of the present invention takes advantage of the abilities of single instruction multiple data (SIMD) instruction set to speed up the decoding process by decoding multiple DCT blocks 704 in parallel.
Referring to Figure 8, the steps of the process 800 of decoding a video signal by decoding multiple blocks in parallel on VLIW architecture, using SIMD type instruction set is described. In one embodiment of the present invention, the video signal is in the form of the DV bitstream of Figure 7. The example given operates on 8 bit sections; however, the present invention is well-suited to operate on sections of any size. Furthermore, the example operates on 8 sections at a time. As the architecture permits and as is needed to achieve real time digital video processing, the present invention is well-suited to operate on any number of sections at a time.
In step 805, the starting location of the bit stream in each DCT block 704 is determined by a single SIMD instruction. Next, steps 810 - 817 are performed with SIMD instructions. In these steps, an 8 bit section is read from each of 8 separate DCT blocks 704. Next, in steps 820 - 827 each section is decoded separately-. The results of the table look-up may now be processed by SIMD instructions in step 830. The process is repeated until the complete video segment 700 is decoded. On the second and subsequent iteration of the loop each DCT block 704 is read from a location which is advanced by exactly the length of the symbol just decoded for that DCT block 704.
In this example a single symbol from each DCT block 704 Is decoded each iteration. Another embodiment of the present invention combines the algorithm illustrated in Figure 8 and described herein with the embodiment illustrated in Figures 5 - 6B and described herein. In this fashion, multiple symbols from each DCT block 704 are decoded in each iteration according to the embodiment of Figures 5. - 6B, and multiple DCT blocks 704 are being processed in parallel according to the embodiment in Figure 8. Thus, even greater efficiency is achieved in decoding the bit-stream. In another embodiment of the present invention, multiple ALUs are used in parallel to decode separate groups of DCT blocks 704. The process in Figure 8 may be run in separate ALUs. By running the process on enough ALUs plus SIMD operations on each ALU, an entire video segment 700 containing 30 DCT blocks 704 may be decoded in parallel. Thus, the present invention takes advantage of the multiple ALUs generally present in VLIW architecture.
The preferred embodiment of the present invention a method and system for decoding, in parallel, symbols of variable length in a digital video bit stream in real time, using Very Long Instruction Word (VLIW) architecture, is thus described. While the present invention has been described in particular embodiments, it should be appreciated that the present invention should not be construed as limited by such embodiments, but rather construed according to the below claims.

Claims

CLAIMSWhat is claimed is:
1. A method of processing a signal comprising the steps of: reading a bit section from a bit stream, said bit stream having a plurality of symbols of varying lengths; indexing a table of variable length codes with said bit section from said bit stream to obtain a look-up result; determining if said look-up result is valid; and accepting valid look-up results.
2. The method of Claim 1 wherein said method is recorded in instructions in a computer-readable medium having stored thereon said instructions to cause a computer system to decode a digital video signal, said instructions causing the computer system to carry out the steps of said method.
3. The method of Claim 1 or 2 wherein there are a plurality of said bit sections; and said step of indexing of said table is to obtain a look-up result for each of said bit sections, wherein said indexing is done in parallel, and said step of determining is to determine whether each of said look-up results is valid.
4. The method of Claim 1 wherein said bit stream is of variable length codes beginning at a reference bit of said bit stream and said bit section is a first bit section; said method further comprising the steps of: reading a second bit section from said bit stream beginning at a first offset from said reference bit of said bit stream, wherein said reading of said first and said second bit sections is done in parallel; wherein said table that is indexed comprises a plurality of variable length codes and a corresponding plurality of code lengths, said look-up result being a first look-up result and describing the length of a first symbol in said bit stream; indexing said table with said second bit section to obtain a second look-up result, wherein both indexing steps are done in parallel; said determining step to determine if said second look-up result is valid; and said accepting step is to accept said second look-up result if it is valid, said second look-up result describing a second symbol length in said bit stream.
5. The method of Claim 4 further comprising the steps of: advancing the reference bit of said bit stream by the sum of said first and second symbol lengths; and repeating all of the preceding steps.
6. The method of Claim 5 further comprising the steps of: reading a third bit section from said bit stream beginning at a second offset from said reference bit of said bit stream, wherein all of said reading steps are done in parallel; indexing said table with said third bit section to obtain a third look-up result, wherein all of said indexing steps are done in parallel; and determining whether said third look-up result from said step of indexing said table with said third bit section is valid.
7. The method of Claim 4, wherein said first offset is equal to the minimum code length of codes in said table.
8. The method of Claim 5 wherein said second offset is one bit greater than said first offset.
9. A method of processing a signal using single instruction multiple data (SIMD) instruction set, said method comprising the steps of: a) reading a first bit section from a first block of a video segment starting at a first reference bit; b) reading a second bit section from a second block of said video segment starting at a second reference bit, wherein steps a) and b) are performed with a first SIMD instruction; c) indexing a table of variable length codes with said first bit section to obtain a first look-up result; d) indexing said table of variable length codes with said second bit section to obtain a second look-up result, wherein steps c) and d) are performed with a second SIMD instruction; e) based on said first look-up result, advancing said first reference bit; f) based on said second look-up result, advancing said second reference bit, wherein steps e) and f) are performed with a third SIMD instruction; and g) repeating steps a) through f).
10. The method of Claim 9 further comprising the steps of: h) performing steps a) through f) by executing a plurality of SIMD instructions in parallel on a plurality of arithmetic logic units (ALUs).
11. The method of Claim 10 wherein all blocks in a digital video (DV) segment are decoded in parallel.
12. The method of Claim 1 , 2 or 3 further comprising the step of: advancing said bit stream by the sum of the symbol lengths of all accepted look-up results from said accepting step; and repeating all of the preceding steps.
13. The method of Claim 1 , 2, or 3, wherein said steps of reading and determining comprise the steps of: a1) reading said plurality of bit sections from said bit stream, said plurality of bit sections each having a reference bit, said bit stream having a plurality of symbols each symbol having a reference bit; and d ) determining that one of said look-up results from said indexing step is valid if the reference bit of one of said bit sections in said bit stream is the same bit as a reference bit of one of said symbols in said bit stream.
14. The method of Claim 1 , 2, or 3 wherein said plurality of bit sections comprises a first, a second, and a third bit section; said first bit section having its reference bit the same as the reference bit of one of said symbols; said second bit section having its reference bit offset a number of bits equal to the minimum code length past said reference bit of said first bit section; and said third bit section having its reference bit offset one bit past said reference bit of said second bit section.
15. The method of Claim 1 , 2, 3, or 4 wherein said bit stream is encoded via Huffman encoding.
16. The method of Claim 1 , 2, 3, or 4 wherein said bit stream comprises digital video data.
17. The method of Claim 1 , 2 , 3, 4, or 9 wherein said bit stream comprises MPEG data.
18. In a decoder for decoding a digital input signal, a software implemented method of performing variable length decoding comprising the steps of: a) accessing a plurality of bit sections from said digital input signal; b) in parallel, accessing a variable length encoded table with said plurality of bit sections to obtain a respective bit length for each bit section; c) based on a bit length for a first bit section of said plurality of bit sections, determining if any other bit sections of said plurality of bit sections are valid and access bit lengths for any valid bit sections; d) determining a sum of said bit length of said first bit section with said bit lengths for said any valid bit sections; e) advancing through said digital input signal by said sum; and f) repeating steps a) - e).
19. The method of Claim 18 wherein said digital input signal comprises digital video data.
20. The method of Claim 18 wherein said digital input signal comprises data in MPEG format.
PCT/US2001/016582 2000-06-22 2001-05-23 A method, system, and apparatus pertaining to signal processing WO2001099418A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
AU2001264812A AU2001264812A1 (en) 2000-06-22 2001-05-23 A method, system, and apparatus pertaining to signal processing

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US60257800A 2000-06-22 2000-06-22
US09/602,578 2000-06-22

Publications (1)

Publication Number Publication Date
WO2001099418A1 true WO2001099418A1 (en) 2001-12-27

Family

ID=24411921

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2001/016582 WO2001099418A1 (en) 2000-06-22 2001-05-23 A method, system, and apparatus pertaining to signal processing

Country Status (2)

Country Link
AU (1) AU2001264812A1 (en)
WO (1) WO2001099418A1 (en)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5396595A (en) * 1992-04-24 1995-03-07 Spacelabs Medical, Inc. Method and system for compression and decompression of data
US5537551A (en) * 1992-11-18 1996-07-16 Denenberg; Jeffrey N. Data compression method for use in a computerized informational and transactional network
US5852469A (en) * 1995-03-15 1998-12-22 Kabushiki Kaisha Toshiba Moving picture coding and/or decoding systems, and variable-length coding and/or decoding system
US5883589A (en) * 1996-02-23 1999-03-16 Kokusai Denshin Denwa Co., Ltd. Variable length code construction apparatus
US6211801B1 (en) * 1998-04-17 2001-04-03 Netergy Networks Data communication arrangement having variable length coding and method therefor
US6256064B1 (en) * 1995-03-15 2001-07-03 Kabushiki Kaisha Toshiba Moving picture coding and/or decoding systems, and variable-length coding and/or decoding system

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5396595A (en) * 1992-04-24 1995-03-07 Spacelabs Medical, Inc. Method and system for compression and decompression of data
US5537551A (en) * 1992-11-18 1996-07-16 Denenberg; Jeffrey N. Data compression method for use in a computerized informational and transactional network
US5852469A (en) * 1995-03-15 1998-12-22 Kabushiki Kaisha Toshiba Moving picture coding and/or decoding systems, and variable-length coding and/or decoding system
US6256064B1 (en) * 1995-03-15 2001-07-03 Kabushiki Kaisha Toshiba Moving picture coding and/or decoding systems, and variable-length coding and/or decoding system
US5883589A (en) * 1996-02-23 1999-03-16 Kokusai Denshin Denwa Co., Ltd. Variable length code construction apparatus
US6211801B1 (en) * 1998-04-17 2001-04-03 Netergy Networks Data communication arrangement having variable length coding and method therefor

Also Published As

Publication number Publication date
AU2001264812A1 (en) 2002-01-02

Similar Documents

Publication Publication Date Title
US10397592B2 (en) Method and apparatus for multi-threaded video decoding
JP4139330B2 (en) Improved variable length decoder
US8437404B2 (en) Implementation of a DV video decoder with a VLIW processor and a variable length decoding unit
US7286066B1 (en) Acceleration of bitstream decoding
US6587057B2 (en) High performance memory efficient variable-length coding decoder
JP2007300517A (en) Moving image processing method, program of moving image processing method, recording medium with program of moving image processing method recorded thereon and moving image processor
US6389171B1 (en) Method and apparatus for a digital video cassette (DVC) decode system
US6987811B2 (en) Image processor and image processing method
US7142603B2 (en) Method and system for predictive table look-up code length of variable length code
US6928115B2 (en) Compression-encoded data decoding apparatus cross-reference to related applications
WO2011143585A1 (en) Parallel processing of sequentially dependent digital data
JP4763853B2 (en) Variable length code decoding apparatus and method
WO2001099418A1 (en) A method, system, and apparatus pertaining to signal processing
JP2002026737A (en) Data decoder and its method
Ishii et al. Parallel variable length decoding with inverse quantization for software MPEG-2 decoders
JP2005101731A (en) Variable length code decoder and variable length code decoding method
JP2937180B2 (en) Video encoding method and recording medium storing code data according to the video encoding method
US6614934B1 (en) Method and apparatus for concatenating bits of odd-length words
JPH1022832A (en) Multistage variable length code decoder
WO2002037829A9 (en) Processing of digital video data
JP2007104155A (en) Image decoding apparatus
JP2002374174A (en) Variable length code decoder, variable length code decoding method and program for making computer execute the, method
JPH1022833A (en) Variable length code decoder
JPH05183440A (en) Coder and decoder
JPH10261967A (en) Multi-stage variable length coding and decoding device

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT TZ UA UG UZ VN YU ZA ZW

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE TR BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
REG Reference to national code

Ref country code: DE

Ref legal event code: 8642

122 Ep: pct application non-entry in european phase
NENP Non-entry into the national phase

Ref country code: JP