CN101547353B - Decoding accelerator for variable length codes - Google Patents
Decoding accelerator for variable length codes Download PDFInfo
- Publication number
- CN101547353B CN101547353B CN2008100898122A CN200810089812A CN101547353B CN 101547353 B CN101547353 B CN 101547353B CN 2008100898122 A CN2008100898122 A CN 2008100898122A CN 200810089812 A CN200810089812 A CN 200810089812A CN 101547353 B CN101547353 B CN 101547353B
- Authority
- CN
- China
- Prior art keywords
- codeword
- code
- decoding
- decoded
- short
- 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 - Fee Related
Links
Images
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本发明提供了一种可变长码解码加速装置。该可变长码解码加速装置包括:码字区分单元,被配置为判断输入码段中的待解码码字是否为短码字;以及短码字解码加速单元,被配置为在所述码字区分单元判断出所述输入码段中的待解码码字为短码字之后,立即计算用于请求下一输入码段的码段请求信息,以使得在所述待解码码字的解码完成之前得到所述码段请求信息以请求下一输入码段。根据本发明的可变长码解码加速装置例如可被用在可变长码解码装置中,以通过加速出现频率较高的短码字的解码,从而提高整个可变长码解码装置的解码速度。
The invention provides a variable length code decoding acceleration device. The variable-length code decoding acceleration device includes: a codeword distinguishing unit configured to judge whether the codeword to be decoded in the input code segment is a short codeword; After the distinguishing unit judges that the code word to be decoded in the input code segment is a short code word, it immediately calculates the code segment request information for requesting the next input code segment, so that before the decoding of the code word to be decoded is completed The code segment request information is obtained to request the next input code segment. The variable-length code decoding acceleration device according to the present invention can be used in a variable-length code decoding device, for example, to improve the decoding speed of the entire variable-length code decoding device by accelerating the decoding of short codewords with a higher frequency of occurrence .
Description
技术领域technical field
本发明涉及可变长码的解码,更具体而言,涉及一种可变长码解码加速装置、利用该可变长码解码加速装置的可变长码解码装置及方法。The present invention relates to decoding of variable-length codes, and more specifically, to a variable-length code decoding acceleration device, a variable-length code decoding device and method using the variable-length code decoding acceleration device.
背景技术Background technique
可变长码解码器是视频解码器的重要组成部分。编码器根据符号在码流中出现的频率采用不同长度的码字进行编码,出现频率高的符号采用较短的码字进行编码,出现频率低的符号采用较长的码字进行编码。由于码字的长度不是固定的,整个解码过程具有很高的相互依赖性,因此很难通过并行处理的方法来加快解码的速度。目前最常用的可变长码解码方法是查表法。这种方法通过从码流中读取具有固定比特数的码段作为索引在码表中进行检索。另外,为了减小码表的大小,加快码表检索速度,提出了诸如多级查表之类的一些优化方法。这些优化方法例如1993年10月12日出版的名称为“Variable length decoding using lookup tables”的美国专利No.5,253,053中所公开的采用两级或更多级查找表的可变长码解码方法,以及2000年1月4日出版的名称为“Dual-speed variable length decodingarchitecture for MPEG-2 video data”的美国专利No.6,011,498中所公开的单独使用高速查找表来确定MPEG-2视频流中的主要数据:DCT系数的用于解码MPEG视频数据的方法。这些相关专利的全部内容通过引用被结合于此。Variable length code decoder is an important part of video decoder. The encoder uses codewords of different lengths to encode according to the frequency of symbols in the code stream. Symbols with high frequency of occurrence are encoded with shorter codewords, and symbols with low frequency of occurrence are encoded with longer codewords. Since the length of the codeword is not fixed, the entire decoding process has high interdependence, so it is difficult to speed up the decoding speed through parallel processing. The most commonly used variable length code decoding method is the look-up table method. In this method, a code segment with a fixed number of bits is read from the code stream as an index to search in the code table. In addition, in order to reduce the size of the code table and speed up the search speed of the code table, some optimization methods such as multi-level look-up table are proposed. These optimization methods, such as the U.S. Patent No. 5,253,053 published on October 12, 1993 titled "Variable length decoding using lookup tables", disclose a variable length code decoding method using two or more levels of lookup tables, and U.S. Patent No. 6,011,498, entitled "Dual-speed variable length decoding architecture for MPEG-2 video data" published on January 4, 2000, uses a high-speed look-up table alone to determine the main data in an MPEG-2 video stream : Method of DCT coefficients for decoding MPEG video data. The entire contents of these related patents are hereby incorporated by reference.
如上所述,在常用的利用查找表的可变长码解码方法中,通常包括三个主要步骤或阶段:1.请求码段:解码器在这个阶段会输出用于请求下一个输入码段的码段请求信息,例如针对MPEG-2/4/VC-1标准,解码器将桶形移位器移位位数输出给桶形移位器,或者针对AVS标准,解码器将指数哥伦布码阶数输出给指数哥伦布码解码器以请求下一个输入码段;2.获得码段:在这个阶段,例如桶形移位器/指数哥伦布码解码器等用于产生下一个输入码段的单元将会根据移位位数/指数哥伦布码阶数等产生下一个输入码段给解码器;3.解码码字:在这个阶段,输入码段将被作为索引,以在码表中检索得到被编码的符号以及解码下一个码字(即,请求下一输入码段)所需要的信息(例如桶形移位器移位位数或指数哥伦布码阶数)。以上三个步骤顺序执行,如图5所示,请求码段和获得码段阶段通常分别占用一个时钟周期,而由于视频标准中的码表都很大,通常被存放在静态存储器中,查找码表即解码码字阶段通常要占用两个以上的时钟周期,因而访问存储器的时间大大超过了请求码段和获得码段所需要的时间。因此可变长码解码的速度主要取决于查找码表的时间。对于较长的码字,由于解码了足够多的比特,所以访问存储器所需的较大的时间延迟是可以接受的。但是对于短码字而言,过慢的解码速度会降低整个解码器的性能。As mentioned above, in the commonly used variable-length code decoding method using a lookup table, it usually includes three main steps or stages: 1. Request code segment: the decoder will output at this stage for requesting the next input code segment Code segment request information, for example, for the MPEG-2/4/VC-1 standard, the decoder outputs the number of shifted bits of the barrel shifter to the barrel shifter, or for the AVS standard, the decoder uses the exponential Columbus code order output to the Exponential Golomb code decoder to request the next input code segment; 2. Obtain the code segment: at this stage, the unit for generating the next input code segment such as the barrel shifter/Expo Golomb code decoder will The next input code segment will be generated to the decoder according to the number of shifted bits/exponential Columbus code order, etc.; 3. Decoding codeword: At this stage, the input code segment will be used as an index to retrieve the coded code in the code table and the information needed to decode the next codeword (ie, request the next input code segment) (eg, barrel shifter shift bits or Exponential Golomb code order). The above three steps are executed sequentially, as shown in Figure 5, the phases of requesting a code segment and obtaining a code segment usually take up one clock cycle respectively, and since the code tables in video standards are very large, they are usually stored in static memory, and the search code The table, that is, the decoding codeword stage usually takes more than two clock cycles, so the time to access the memory greatly exceeds the time required to request a code segment and obtain a code segment. Therefore, the speed of variable-length code decoding mainly depends on the time of looking up the code table. For longer codewords, since enough bits are decoded, the larger time delay required to access the memory is acceptable. But for short codewords, too slow decoding speed will reduce the performance of the whole decoder.
针对以上短码字解码速度影响整个解码器性能的问题,本发明提出了将长码字和短码字的解码区别对待的解码方法,从而提高整个可变长码解码器的解码速度。Aiming at the above problem that the decoding speed of short codewords affects the performance of the entire decoder, the present invention proposes a decoding method that treats decoding of long codewords and short codewords differently, thereby improving the decoding speed of the entire variable-length code decoder.
发明内容Contents of the invention
根据本发明的一个方面,提供了一种可变长码解码加速装置,该装置包括:码字区分单元,被配置为判断输入码段中的待解码码字是否是短码字;以及短码字解码加速单元,被配置为在码字区分单元判断出待解码码字为短码字之后,立即计算用于请求下一输入码段的码段请求信息,以使得在待解码码字的解码完成之前得到码段请求信息以请求下一输入码段。According to one aspect of the present invention, a variable-length code decoding acceleration device is provided, the device includes: a codeword distinguishing unit configured to determine whether the codeword to be decoded in the input code segment is a short codeword; and a short codeword The word decoding acceleration unit is configured to calculate the code segment request information for requesting the next input code segment immediately after the code word distinguishing unit judges that the code word to be decoded is a short code word, so that the decoding of the code word to be decoded Get a code segment request message to request the next input code segment before completion.
根据本发明,优选地,短码字为长度小于或等于N比特的码字,这里N是根据在不对短码字进行优化的情况下解码码字所需要的平均时间和所期望的解码速度而预先设定的正整数。According to the present invention, preferably, a short codeword is a codeword with a length less than or equal to N bits, where N is based on the average time required to decode the codeword and the expected decoding speed without optimizing the short codeword A preset positive integer.
根据本发明,优选地,待解码码字是根据MPEG-2、MPEG-4或VC-1标准编码的码字。在这种情况下,码段请求信息是用于获得下一输入码段的移位位数。码字区分单元根据可变长码编码规则,通过检查输入码段中的高位比特来判断输入码段中的待解码码字是否是短码字。短码字解码加速单元被配置为根据可变长码编码规则,输出与被判断为短码字的待解码码字相对应的移位位数。According to the present invention, preferably, the codeword to be decoded is a codeword encoded according to the MPEG-2, MPEG-4 or VC-1 standard. In this case, the segment request information is the number of shifted bits for obtaining the next input segment. The code word distinguishing unit judges whether the code word to be decoded in the input code segment is a short code word by checking the upper bits in the input code segment according to the variable-length code coding rule. The short codeword decoding acceleration unit is configured to output the number of shifted bits corresponding to the codeword to be decoded as the short codeword according to the variable length code coding rule.
根据本发明,优选地,待解码码字是根据AVS标准编码的码字。在这种情况下,码段请求信息是用于获得下一输入码段的指数哥伦布码阶数。码字区分单元将输入码段的数值与预定阈值进行比较,并且当输入码段的数值小于或等于预定阈值时,码字区分单元判断出输入码段中的待解码码字是短码字。此外,优选地,所述短码字是长度小于或等于N比特的码字,并且所述预定阈值是N比特指数哥伦布码所能表示的最大数值。并且,短码字解码加速单元被配置为在待解码码字为短码字时,根据可变长码编码规则获得与输入码段的数值相对应的指数哥伦布码阶数。According to the present invention, preferably, the codeword to be decoded is a codeword coded according to the AVS standard. In this case, the code segment request information is the order of the Exponential Golomb code used to obtain the next input code segment. The codeword distinguishing unit compares the value of the input code segment with a predetermined threshold, and when the value of the input code segment is less than or equal to the predetermined threshold, the code word distinguishing unit judges that the codeword to be decoded in the input code segment is a short code word. In addition, preferably, the short codeword is a codeword with a length less than or equal to N bits, and the predetermined threshold is the maximum value that can be represented by an N-bit exponential Golomb code. Furthermore, the short codeword decoding acceleration unit is configured to obtain the exponential Golomb code order corresponding to the value of the input code segment according to the variable length code coding rule when the codeword to be decoded is a short codeword.
因此,根据本发明的可变长码解码加速装置例如可以被应用在可变长码解码装置中,以加速出现频率较高的短码字的解码,从而大大提高可变长码解码器的解码速度。Therefore, the variable-length code decoding acceleration device according to the present invention can be applied in a variable-length code decoding device, for example, to accelerate the decoding of short codewords with a higher frequency of occurrence, thereby greatly improving the decoding performance of the variable-length code decoder. speed.
附图说明Description of drawings
为了更完整的理解本发明,现参考以下结合附图的描述,在所有附图中将使用相同的标号来指示相同或类似的部件,其中:For a more complete understanding of the present invention, reference is now made to the following description taken in conjunction with the accompanying drawings, in which like reference numerals will be used to designate like or similar parts throughout:
图1示出了根据本发明的可变长码解码过程;Fig. 1 shows the variable length code decoding process according to the present invention;
图2示出了根据本发明的一个实施例的可用于解码MPEG-2/4/VC-1标准的码流的可变长码解码装置;Fig. 2 shows a variable length code decoding device that can be used to decode a code stream of the MPEG-2/4/VC-1 standard according to an embodiment of the present invention;
图3示出了根据本发明的另一实施例的可用于解码AVS标准的码流的可变长码解码装置;FIG. 3 shows a variable length code decoding device that can be used to decode a code stream of the AVS standard according to another embodiment of the present invention;
图4示出了根据本发明的又一实施例的可用于解码AVS标准的码流的可变长码解码装置;FIG. 4 shows a variable length code decoding device that can be used to decode a code stream of the AVS standard according to another embodiment of the present invention;
图5示出了现有技术中的可变长码解码过程。Fig. 5 shows a variable length code decoding process in the prior art.
具体实施方式Detailed ways
下面将参考图1到图4描述根据本发明的可变长码解码装置的具体实施例。在以下的描述中,分别针对视频压缩编解码中常用的MPEG-2/4/VC-1标准和AVS标准对本发明进行描述,但是本领域技术人员应当理解这种描述只是为了说明的目的,而适用于本发明的压缩编解码标准并不局限于此,例如还可以是JPEG标准、CCITT标准或者任何其它可变长编解码标准。Specific embodiments of a variable length code decoding device according to the present invention will be described below with reference to FIG. 1 to FIG. 4 . In the following description, the present invention is described for the commonly used MPEG-2/4/VC-1 standard and AVS standard in video compression codec respectively, but those skilled in the art should understand that this description is only for the purpose of illustration, and The compression codec standard applicable to the present invention is not limited thereto, for example, it may also be JPEG standard, CCITT standard or any other variable length codec standard.
图1示出了根据本发明的可变长码解码过程,其中上半部分示出了输入码段中的待解码码字为短码字的解码过程,下半部分示出了输入码段中的待解码码字为长码字的解码过程。Fig. 1 shows the decoding process of a variable length code according to the present invention, wherein the upper part shows the decoding process in which the codeword to be decoded in the input code segment is a short code word, and the lower part shows the decoding process in the input code segment The codeword to be decoded is the decoding process of the long codeword.
在描述图1之前,首先对本发明中出现的输入码段和待解码码字这两个术语进行简单的说明。通常情况下,可变长码流可被分成一段一段的固定长度的码段,然后这些码段被连续地输入到解码器中以进行解码。每个固定长度的输入码段中可能包含一个或多个按照可变长编码规则编码的变长编码码字。在解码器对一个输入码段进行解码时,一般只解码从该输入码段的最高位开始的一个编码码字,而输入码段中其余的未被解码的比特将在解码器对后续输入码段进行解码时被解码。因此,本发明中将这些固定长度的码段称为输入码段,而将实际被解码的从输入码段的最高位开始的一个具有可变长度的编码码字称为该输入码段中的待解码码字。Before describing FIG. 1 , a brief description of the terms input code segment and codeword to be decoded in the present invention is given first. Usually, the variable-length code stream can be divided into fixed-length code segments one by one, and then these code segments are continuously input into the decoder for decoding. Each fixed-length input code segment may contain one or more variable-length code words coded according to variable-length code rules. When the decoder decodes an input code segment, it generally only decodes an encoded code word starting from the highest bit of the input code segment, and the rest of the undecoded bits in the input code segment will be used by the decoder for subsequent input codes The segment is decoded when it is decoded. Therefore, these fixed-length code segments are referred to as input code segments in the present invention, and a coded code word with a variable length that is actually decoded from the highest bit of the input code segment is referred to as a code word in the input code segment The codeword to be decoded.
如图1所示,为了加速可变长码的解码,在计算用于请求下一输入码段的码段请求信息时,针对待解码码字为短码字的输入码段和待解码码字为长码字的输入码段采取了不同的计算方式。对于待解码码字为短码字的情况而言,在获得当前输入码段之后,在对输入码段中的待解码码字进行解码的同时,可由专用电路来计算用于请求下一输入码段的码段请求信息,而无需通过访问码表存储器来获得该码段请求信息,从而可以在待解码码字被解码完成之前得到码段请求信息以请求下一码段。因此,请求下一码段的阶段不是在对待解码码字的解码完成之后才开始的,而是与解码码字阶段并行地进行,从而加速了短码字的解码速度。而对于待解码码字为长码字的情况而言,则仍然在解码阶段得到用于请求下一码段的码段请求信息,在解码完成之后开始请求下一码段。根据本发明,由于出现频率较高的短码字的解码速度大大提高,所以整个可变长码解码过程被加速。这里,需要注意的是,在图1中,只是示意性地示出了通常情况下解码过程中的各个操作阶段在执行时间上的相对关系,该图示不应当被理解为对本发明的各个操作阶段的执行时间的限定,而只要解码过程符合本发明的总体思想即可。As shown in Figure 1, in order to speed up the decoding of variable-length codes, when calculating the code segment request information for requesting the next input code segment, the input code segment and the code word to be decoded for which the code word to be decoded is a short code word Different calculation methods are adopted for the input code segment of the long code word. For the case where the codeword to be decoded is a short codeword, after obtaining the current input code segment, while decoding the code word to be decoded in the input code segment, a dedicated circuit can be used to calculate the code used to request the next input code There is no need to obtain the code segment request information by accessing the code table memory, so that the code segment request information can be obtained before the code word to be decoded is decoded to request the next code segment. Therefore, the stage of requesting the next code segment does not start after the decoding of the codeword to be decoded is completed, but is carried out in parallel with the decoding codeword stage, thereby accelerating the decoding speed of short codewords. For the case where the codeword to be decoded is a long codeword, the code segment request information for requesting the next code segment is still obtained in the decoding stage, and the next code segment is requested after the decoding is completed. According to the present invention, since the decoding speed of short codewords with higher frequency of occurrence is greatly increased, the entire variable-length code decoding process is accelerated. Here, it should be noted that in FIG. 1 , only schematically shows the relative relationship between the execution time of each operation stage in the decoding process under normal circumstances, and this illustration should not be interpreted as a reference to each operation of the present invention. The execution time of the stage is limited, as long as the decoding process conforms to the general idea of the present invention.
下面结合图2描述根据本发明的一个实施例的针对MPEG-2/4/VC-1标准的码流的可变长码解码装置及其解码过程。图2示出了根据本实施例的用于解码MPEG-2/4/VC-1视频流的可变长码解码装置201。该可变长码解码装置201的输入是桶形移位器212所输出的具有固定长度的输入码段(InCodSeg)202。输入码段202中的待解码码字在可变长码解码装置201中被解码以生成解码码字(DecCode)213。图2所示的可变长码解码装置采用如图1所示的解码过程。为了实现该解码过程,对于待解码码字为短码字的情况而言,用于请求后一个码段的码段请求信息将通过短码字解码加速单元207来计算得到,而不是通过访问解码单元208中的码表存储器来得到。下面具体描述图2中的各个功能单元在解码过程中的具体操作。A variable-length code decoding device and its decoding process for a code stream of the MPEG-2/4/VC-1 standard according to an embodiment of the present invention will be described below with reference to FIG. 2 . Fig. 2 shows a variable length
在可变长码解码装置201中,在从桶形移位器212获得输入码段202之后,输入码段202被输入到解码单元208进行解码,同时输入码段202还被输入到码字区分单元203。在码字区分单元203中,判断输入码段202中的待解码码字是长码字(码字长度大于N)还是短码字(码字长度小于或等于N)。如果输入码段202中的待解码码字被判断为短码字,则码字区分单元203将输入码段202经由短码字信号(SCode)205输入到短码字解码加速单元207。In the variable length
这里,N值可以根据正常情况下(即,未对短码字解码进行加速的情况下)解码一个码字所需要的平均时间(时钟周期数)和所要求的解码速度(比特/时钟周期)来预先设定。例如,在要求解码速度至少为1比特/时钟周期,而解码一个码字平均需要5个时钟周期的情况下,如果不对短码字的解码进行优化,则长度小于5比特的码字的解码速度将会低于1比特/时钟周期,因此我们可将码字长度小于5的码字(即N=4)设定为短码字以进行优化。注意,此处关于N值的设定说明在其它实施例中也是适用的。Here, the value of N can be based on the average time required to decode a codeword (number of clock cycles) and the required decoding speed (bits/clock cycle) under normal conditions (that is, without accelerating the decoding of short codewords) to preset. For example, in the case where a decoding speed of at least 1 bit/clock cycle is required, and decoding a codeword takes an average of 5 clock cycles, if the decoding of short codewords is not optimized, the decoding speed of codewords less than 5 bits in length It will be lower than 1 bit/clock cycle, so we can set codewords with codeword length less than 5 (ie N=4) as short codewords for optimization. Note that the description about setting the value of N here is also applicable in other embodiments.
根据MPEG-2/4/VC-1标准中所规定的编码规则,码字区分单元203可以利用如下的匹配机制来判断输入码段中的待解码码字是否为短码字。例如N=4,则从输入码段的最高位开始将输入码段与根据编码规则所规定的长度小于或等于4比特的码字进行比较,以判断输入码段中的待解码码字是否是短码字。例如在MPEG-2标准中,短码字的判决规则可以根据MPEG-2标准中的设定被规定如下。在解码码表为DCT系数表0的情况下,短码字的判决规则如表1-1所示,而在解码码表为DCT系数表1的情况下,短码字的判决规则如表1-2所示。注意,在本文中所出现的表都只是为了表示映射机制,而非实际存储的映射表。According to the encoding rules stipulated in the MPEG-2/4/VC-1 standard, the
表1-1Table 1-1
表1-2Table 1-2
其中,“x”代表该位为‘0’或‘1’。Among them, "x" means that the bit is '0' or '1'.
在解码码表为DCT系数表0的情况下,如表1-1所示,如果输入码段的最高两位为10或11,则根据MPEG-2标准,待解码码字即为10或11,其码字长度为2比特,因而该待解码码字可被判定为短码字;如果输入码段的最高三位为011,则待解码码字即011,其码字长度为3比特,因而该待解码码字可被判定为短码字;如果输入码段的最高四位为0100或0101,则待解码码字即0100或0101,其码字长度为4比特,因而该待解码码字可被判定为短码字;如果输入码段是其他情况,则根据MPEG-2标准,待解码码字的长度大于4比特,因此待解码码字可被判定为长码字。类似地,在当前解码码表为DCT系数表1的情况下,如表1-2所示,如果输入码段的最高两位为10,则根据MPEG-2标准,待解码码字即10,其码字长度为2比特,从而待解码码字可被判定为短码字;如果输入码段的最高三位为010或110,则待解码码字即010或110,其码字长度为3比特,从而待解码码字可被判定为短码字;如果输入码段的最高四位为0111或0110,则待解码码字即0111或0110,其码字长度为4比特,从而待解码码字可被判定为短码字;如果输入码段是其他情况,则根据MPEG-2标准,当前实际被解码码字的长度大于4比特,因此这些输入码段中的待解码码字可被判定为长码字。When the decoding code table is DCT coefficient table 0, as shown in Table 1-1, if the highest two bits of the input code segment are 10 or 11, then according to the MPEG-2 standard, the code word to be decoded is 10 or 11 , the code word length is 2 bits, so the code word to be decoded can be judged as a short code word; if the highest three bits of the input code segment are 011, the code word to be decoded is 011, and the code word length is 3 bits, Thereby this code word to be decoded can be judged as short code word; If the highest four bits of the input code segment are 0100 or 0101, then the code word to be decoded is 0100 or 0101, and its code word length is 4 bits, so the code word to be decoded The word can be judged as a short codeword; if the input code segment is otherwise, then according to the MPEG-2 standard, the length of the codeword to be decoded is greater than 4 bits, so the codeword to be decoded can be judged to be a long codeword. Similarly, in the case where the current decoding code table is DCT coefficient table 1, as shown in Table 1-2, if the highest two bits of the input code segment are 10, then according to the MPEG-2 standard, the code word to be decoded is 10, The code word length is 2 bits, so the code word to be decoded can be judged as a short code word; if the highest three bits of the input code segment are 010 or 110, the code word to be decoded is 010 or 110, and the code word length is 3 bits, so that the codeword to be decoded can be judged as a short codeword; if the highest four bits of the input code segment are 0111 or 0110, the codeword to be decoded is 0111 or 0110, and the codeword length is 4 bits, so the codeword to be decoded Words can be determined as short codewords; if the input code segment is otherwise, according to the MPEG-2 standard, the length of the actual decoded codeword is greater than 4 bits, so the codewords to be decoded in these input code segments can be determined is a long code word.
如上所述,码字区分单元203可以根据可变长码编码规则来判断输入码段中的待解码码字是否短码字,具体而言是根据当前解码码表的类型和输入码段202从最高位开始的至多N个比特来判断输入码段202中的待解码码字是否是长度小于或等于N比特的短码字。例如,本领域技术人员可以在码字区分单元203中设计逻辑电路,来从输入码段的最高位开始将输入码段与当前解码码表中所规定的长度小于或等于N比特的码字进行比较,而一旦发现与当前解码码表中的某个短码字相匹配,则该判断过程就可以立即结束。因此,这里实际被比较的输入码段中的比特数最多为从最高位开始的4个比特。As mentioned above, the
注意,在表1-1和1-2中所示的判决规则只是在编解码标准为MPEG-2标准的情况下的示例性判决规则,本领域技术人员应当很容易根据诸如MPEG-4/VC-1等的其它标准中所规定的编码规则来类似地设定在这些编解码标准中所适用的短码字判决规则。Note that the decision rules shown in Tables 1-1 and 1-2 are only exemplary decision rules when the codec standard is the MPEG-2 standard, and those skilled in the art should easily -1 etc. to similarly set the short codeword decision rules applicable in these codec standards.
根据以上判决规则,码字区分单元203的输出有两个:模式信号(Mode)204、短码字信号(SCode)205。模式信号204指示输入码段202中的待解码码字是短码字(例如,模式信号=“0”)还是长码字(例如,模式信号=“1”)。如果模式信号指示输入码段202中的待解码码字是短码字,则码字区分单元203将输入码段202经由短码字信号205输出到短码字解码加速单元207。According to the above decision rules, the
如上所述,对于待解码码字为长码字的输入码段和待解码码字为短码字的输入码段而言,计算用于请求下一输入码段的码段请求信息是在不同的单元中实现的。在本实施例中,该码段请求信息是桶形移位器212的移位位数。具体而言,针对待解码码字被判断为短码字的输入码段202,由短码字解码加速单元207根据短码字信号205计算并输出短码字移位位数(SCodeSBitNum)209,而针对待解码码字被判断为长码字的输入码段202,由解码单元208根据输入码段202来访问码表存储器以得到并输出长码字移位位数(LCodeSBitNum)210。As mentioned above, for the input code segment whose code word to be decoded is a long code word and the input code segment whose code word to be decoded is a short code word, the code segment request information for requesting the next input code segment is calculated in different implemented in the unit. In this embodiment, the code segment request information is the number of shifting bits of the
下面描述短码字解码加速单元207计算短码字移位位数的过程。移位位数就是当前输入码段中的待解码码字的长度。在本实施例中,可以利用一种映射机制来计算输入码段中的待解码码字的长度,即根据当前解码码表类型和输入码段中从最高位开始的至多N个比特来计算输入码段中的待解码码字的长度。例如在MPEG-2标准中,在当前解码码表为DCT系数表0的情况下,计算短码字移位位数的映射机制如表2-1所示,而在当前解码码表为DCT系数表1的情况下,计算短码字移位位数的映射机制如表2-2所示。另外,本领域技术人员应当清楚,在其它编解码标准的情况下,可以根据这些标准中所规定的编码规则设定类似的映射机制,来计算短码字移位位数209。The following describes the process of the short codeword
表2-1table 2-1
表2-2Table 2-2
注意,如上所述,虽然码字区分单元203和短码字解码加速单元207的操作都与当前解码码表的类型有关,但是本领域技术人员应当清楚对于MPEG-2/4标准而言,当前解码码表的类型是由视频解码器中的其它模块决定的,对于可变长码解码器来说并不是经常变化的,而相当于是一个固定的参数,因此在实际的实现方式中,码字区分单元203和短码字解码加速单元207只需要接收来自外部的当前解码码表类型信息(图中未示出),根据该信息按以上描述的方式选择使用适当的映射关系即可。Note that, as mentioned above, although the operations of the
以下描述根据本实施例的解码单元208中所进行解码过程。在解码码字阶段,解码单元208使用输入码段202作为索引,以查找码表存储器中的可变长码码表来得到解码码字(DecCode)(游程/系数值)213和用于请求下一输入码段的长码字移位位数210。解码单元208可以使用现有技术中通用的解码单元,因此,根据本发明的可变长码解码加速装置可以很容易地应用于现有的可变长码解码装置。The following describes the decoding process performed in the decoding unit 208 according to this embodiment. In the decoding code word stage, the decoding unit 208 uses the input code segment 202 as an index to look up the variable-length code code table in the code table memory to obtain the decoded code word (DecCode) (run length/coefficient value) 213 and for requesting The long code
例如,根据MPEG-2,针对DCT系数表0,存储在码表存储器中的用于解码并生成移位位数的映射表如表3所示。For example, according to MPEG-2, for DCT coefficient table 0, the mapping table stored in the code table memory for decoding and generating the number of shifted bits is shown in Table 3.
表3table 3
其中,“x”代表该位可以为‘0’或‘1’。Among them, "x" means that the bit can be '0' or '1'.
需要注意的是,虽然由解码单元208输出的用于请求下一输入码段的信息被简单地称为长码字移位位数210,但是由于根据本实施例的解码单元208是使用现有技术中的通用解码单元来实现的,所以不管输入码段中的待解码码字是长码字还是短码字,解码单元208都会在解码完成后输出移位位数,因此解码单元208所输出的长码字移位位数210中实际也包括短码字移位位数。但是本领域技术人员应当可以理解由于选通器214的存在,由解码单元208所输出的短码字移位位数将不会被输出到桶形移位器211,也就是说,该短码字移位位数只是中间输出信息,对实际操作是不起作用的。It should be noted that although the information for requesting the next input code segment output by the decoding unit 208 is simply referred to as the long code
此外,由码字区分单元203输出的模式信号204被输入到选通器214,以控制选通器214将短码字移位位数209或长码字移位位数210输出到桶形移位器212。例如,如果模式信号=“0”,则短码字移位位数209经由选通器214被输出作为移位位数(SbitNum)211以请求下一输入码段;否则,如果模式信号=“1”,则长码字移位位数210经由选通器214被输出作为移位位数211以请求下一输入码段。In addition, the mode signal 204 output by the
下面结合图3描述根据本发明另一实施例的针对AVS标准的码流的可变长码解码装置301及其解码过程。图3是用于解码AVS标准的码流的可变长码解码装置301。该可变长码解码装置301的输入是指数哥伦布码解码器311所输出的具有固定比特数的输入码段(InCodSeg)302。输入码段302中的待解码码字在可变长解码装置301中被解码以生成解码码字(DecCode)312。可变长码解码装置301也是采用如图1所示的解码过程。为了实现该解码过程,用于请求后一个码段的码段请求信息(在本实施例中,该码段请求信息为指数哥伦布码阶数)将通过短码字解码加速单元306来计算得到,而不是在解码完成之后才得到。The following describes a variable length
在可变长码解码装置301中,在从指数哥伦布码解码器311获得输入码段302之后,输入码段302被输入到解码单元307以对其中的待解码码字进行解码,同时输入码段302还被输入到码字区分单元303。在码字区分单元303中,判断输入码段302中的待解码码字是长码字(码字长度大于N比特)还是短码字(码字长度小于或等于N比特)。然后,如果码字区分单元303判断出输入码段302中的待解码码字为短码字,则码字区分单元303将输入码段302经由短码字信号(SCode)305输入到短码字解码加速单元306。In the variable length
码字区分单元303可以通过将输入码段的数值与预定的阈值比较来判断输入码段中的待解码码字是否是短码字。这里,输入码段是由指数哥伦布码解码器输出的固定长度的二进制比特流,其数值就是该比特流所表示的十进制数,因此输入码段的数值是很容易确定的。如果输入码段的数值小于或等于预定阈值,则判定输入码段中的待解码码字是短码字;相反,如果输入码段的数值大于该预定阈值,则判定该输入码段中的待解码码字是长码字。例如N=4,由于4比特指数哥伦布码所能表示的最大数是7,所以可将该阈值设定为7,因此判决规则如表4所示。如果输入码段的数值小于或等于7,则输入码段中的待解码码字被判定为短码字;而如果输入码段的数值大于7,则输入码段中的待解码码字被判定为长码字。The
表4Table 4
注意,根据指数哥伦布码的编码规则,实际上当输入码段的数值<=7时,输入码段中的待解码码字也有可能是长度大于4比特的码字。但是,这种情况比较少,而且即使将某些长度大于4比特的码字判断为短码字而对其进行优化,也并不影响本实施例的效果,因为本发明只要保证长度小于或等于4比特的码字的解码被优化即可。Note that according to the coding rules of the Exponential Golomb code, in fact, when the value of the input code segment<=7, the codeword to be decoded in the input code segment may also be a code word with a length greater than 4 bits. However, this situation is relatively rare, and even if some codewords with a length greater than 4 bits are judged as short codewords and optimized, it will not affect the effect of this embodiment, because the present invention only needs to ensure that the length is less than or equal to It is sufficient that the decoding of the 4-bit codeword is optimized.
码字区分单元303的输出有两个:模式信号(Mode)304和短码字信号(SCode)305。模式信号304指示当前输入码段302中的待解码码字是短码字(例如,模式信号=“0”)还是长码字(例如,模式信号=“1”)。如果模式信号指示输入码段302中的待解码码字是短码字,则码字区分单元303经由短码字信号305将输入码段302输出到短码字解码加速单元306。There are two outputs of the codeword distinguishing unit 303 : a mode signal (Mode) 304 and a short codeword signal (SCode) 305 . The mode signal 304 indicates whether the codeword to be decoded in the current
短码字解码加速单元306根据经由短码字信号305输入的输入码段302的数值来计算短码字指数哥伦布码阶数(SCodeExpOrder)308。The short codeword
在AVS标准中,指数哥伦布码阶数由解码所用的码表决定。在描述短码字解码加速单元306的具体操作过程之前,下面先简要说明根据AVS标准,确定短码字指数哥伦布码阶数的原理。In the AVS standard, the order of the Exponential Golomb code is determined by the code table used for decoding. Before describing the specific operation process of the short codeword
根据AVS标准中所规定的编码规则,可以得出如表5-1至表5-3所示的对应关系,其中根据码段数值和当前码表,可以得知下一码表。According to the coding rules stipulated in the AVS standard, the corresponding relationships shown in Table 5-1 to Table 5-3 can be obtained, and the next code table can be known according to the value of the code segment and the current code table.
表5-1Table 5-1
表5-2Table 5-2
表5-3Table 5-3
根据AVS标准中的编码规则,指数哥伦布码阶数与所用的码表相对应。因此,可以得出如表6-1至6-3所示的映射关系,其中根据码段数值和当前码表可以确定出指数哥伦布码阶数。According to the encoding rules in the AVS standard, the order of the Exponential Golomb code corresponds to the code table used. Therefore, the mapping relationship shown in Table 6-1 to 6-3 can be obtained, where the order of the Exponential Golomb code can be determined according to the value of the code segment and the current code table.
表6-1Table 6-1
表6-2Table 6-2
表6-3Table 6-3
利用AVS标准的上述特性,根据本实施例的短码字解码加速单元306可以根据当前码表和码段数值得出待解码短码字的指数哥伦布码阶数。下面详细描述根据本实施例在短码字解码加速单元306中所进行的操作。Utilizing the above characteristics of the AVS standard, the short codeword
当码字区分单元303确定输入码段302中的待解码码字为短码字时,输入码段302经由短码字信号305被输入到短码字解码加速单元306。然后,短码字解码加速单元306可以根据如表6-1至6-3所示的映射关系来计算用于请求下一输入码段的信息,即短码字指数哥伦布码阶数308。When the
此外,短码字解码加速单元306还根据如表5-1至5-3所示的映射关系来确定下一码表类型,并保存所确定的下一码表类型,以便用于在下一待解码码字是短码字时的操作。也就是说,在前一待解码码字是短码字的情况下,短码字解码加速单元306使用所存储的上次确定出的码表类型来确定当前待解码码字的指数哥伦布码阶数以及下一码表类型。另外,在前一待解码码字是长码字的情况下,短码字解码加速单元306使用经由码表类型标识信号(CodTabIdf)315从解码单元307中的码表选择/指数哥伦布码阶数生成单元313接收的码表类型,来确定当前待解码码字的指数哥伦布码阶数以及下一码表类型。本领域技术人员可以容易地理解,例如可以通过模式信号304来控制短码字解码加速单元306选择使用适当的码表类型标识。In addition, the short code word
上述的表5-1至5-3以及表6-1至6-3中所示的映射关系可以存储或者编程在短码字解码加速单元306中,也可以存储在其他存储设备中。例如,当待解码码字为短码字时,用于确定下一码表类型的模块也可以在短码字解码加速单元306之外单独提供,然后该模块所确定的码表类型再被输入到短码字解码加速单元306以用于其在下一待解码码字是短码字时的操作。此外,短码字解码加速单元306或单独设置的用于确定下一码表类型的模块所计算出的表示下一码表类型的值可以存储在设置在短码字解码加速单元306中的寄存器中,或者其他存储设备中,例如,可以使用设置在解码单元307中的存储设备。The above mapping relationships shown in Tables 5-1 to 5-3 and Tables 6-1 to 6-3 may be stored or programmed in the short codeword
以下描述根据本实施例的解码单元307中的解码过程。用于解码输入码段中的待解码码字的可变长码码表被存放在解码单元307中的码表存储器中。解码单元307使用输入码段302作为索引,查找码表存储器中的可变长码码表来得到解码码字(游程/系数值)312。例如,在AVS标准中,用于解码码字的可变长码码表vlc0_intra如表7所示。The following describes the decoding process in the
表7Table 7
此外,在得到解码码字之后,解码码字(游程/系数值)312将会被输入到码表选择/指数哥伦布码阶数生成单元313中以计算并输出长码字指数哥伦布码阶数(LCodeExpOrder)309。与针对短码字的指数哥伦布码阶数计算方法类似,码表选择/指数哥伦布码阶数生成单元313通过当前解码所得到的系数值来决定解码下一个码字要使用的码表,并进而决定用于请求下一个码字的指数哥伦布码阶数。根据以上描述,本领域技术人员应当理解,码表选择/指数哥伦布码阶数生成单元313中可以包括用于实现上述功能的逻辑电路或逻辑单元。In addition, after obtaining the decoded codeword, the decoded codeword (run/coefficient value) 312 will be input into the code table selection/expo-Golomb code
需要注意的是,在本实施例中,虽然由解码单元307输出的用于请求下一输入码段的信息被简单地称为长码字指数哥伦布码阶数309,但是由于在本实施例中,不管输入码段中所包含的待解码码字是长码字还是短码字,码表选择/指数哥伦布码阶数生成单元313都会在解码完成后根据解码码字计算并输出指数哥伦布码阶数,因此码表选择/指数哥伦布码阶数生成单元313所输出的长码字指数哥伦布码阶数中实际也包括短码字指数哥伦布码阶数。但是本领域技术人员应当可以理解由于选通器314的存在,由码表选择/指数哥伦布码阶数生成单元313所输出的短码字指数哥伦布码阶数将不会被输出到指数哥伦布码解码器311,也就是说,该短码字指数哥伦布码阶数只是中间输出信息,对实际操作是不起作用的。It should be noted that, in this embodiment, although the information for requesting the next input code segment output by the
注意,虽然在图3中,码表选择/指数哥伦布码阶数生成单元313被提供在解码单元307的内部,但是实际上该码表选择/指数哥伦布码阶数生成单元也可以被提供在解码单元307的外部。Note that although in FIG. 3 , the code table selection/expo-Golomb code
此外,由码字区分单元303输出的模式信号304被输入到选通器314,以控制选通器314输出到指数哥伦布码解码器311的指数哥伦布码阶数(ExpOrder)310。如果模式信号=“0”,则短码字指数哥伦布码阶数308将经由选通器314被输出作为指数哥伦布码阶数310以请求下一输入码段;否则,如果模式信号=“1”,则长码字指数哥伦布码阶数309将经由选通器314被输出作为指数哥伦布码阶数310以请求下一输入码段。In addition, the mode signal 304 output by the
根据本实施例的可变长码解码装置与现有技术中的可变长码解码装置相比,仅仅增加可变长码解码加速模块,因此很容易基于现有的可变长码解码装置来实现。但是,由于在码表选择/指数哥伦布码阶数生成单元313中,不管待解码码字是长码字还是短码字,都会计算用于获得后一输入码段的指数哥伦布码阶数,而由码表选择/指数哥伦布码阶数生成单元313所输出的短码字指数哥伦布码阶数实际上是不起作用的。因此,在本发明的另一实施例中,对图3所示的可变长码解码装置进行了改进。Compared with the variable length code decoding device in the prior art, the variable length code decoding device according to this embodiment only adds a variable length code decoding acceleration module, so it is easy to implement based on the existing variable length code decoding device accomplish. But, because in the code table selection/exponential Golomb code
下面结合图4描述根据本发明的另一实施例的针对AVS标准的码流的可变长码解码装置401及其解码过程。图4示出了根据本实施例的用于解码AVS标准的码流的可变长码解码装置401,其中使用相同的标号表示与图3所示的可变长码解码装置301中相同的单元和信号,并且在下面的描述中,省略了关于与图3中相同的模块的描述,而仅描述图4与图3所示的可变长码解码装置的不同之处。The following describes a variable length code decoding apparatus 401 for a code stream of the AVS standard and its decoding process according to another embodiment of the present invention with reference to FIG. 4 . Fig. 4 shows a variable-length code decoding device 401 for decoding a code stream of the AVS standard according to the present embodiment, wherein the same symbols are used to indicate the same units as in the variable-length
根据该实施例的可变长码解码装置401与图3所示的可变长码解码装置301的区别仅在于通过开关415控制解码码字是否被输入到码表选择/指数哥伦布码阶数生成单元313。开关415的断开/闭合是由码字区分单元303输出的模式信号来控制的。例如,如果模式信号=“0”,则开关415断开,如果模式信号=“1”,则开关415闭合。当待解码码字为短码字时,码字区分单元303输出模式信号=“0”,从而使开关415断开,此时码表选择/指数哥伦布码阶数生成单元313不工作,而当待解码码字为长码字时,码字区分单元303输出模式信号=“1”,从而使开关415闭合,此时解码码字(游程/系数值)312就会被输入到码表选择/指数哥伦布码阶数生成单元313,因此码表选择/指数哥伦布码阶数生成单元313将计算并输出长码字指数哥伦布码阶数(LCodeExpOrder)309。注意,与图3类似,虽然在图4中码表选择/指数哥伦布码阶数生成单元313也被提供在解码单元407的内部,但是实际上该码表选择/指数哥伦布码阶数生成单元也可以被提供在解码单元407的外部。The difference between the variable-length code decoding device 401 according to this embodiment and the variable-length
本发明并不限于上述实施例,并且在不脱离本发明精神的范围内可以通过修改部分配置来实施本发明。例如,本发明的可变长码解码装置和方法可以被用于除以上所描述的MPEG-2/4/VC-1标准和AVS标准以外的各种可变长编解码标准,而且本领域技术人员应当清楚针对不同的标准如何识别短码字以及计算用于请求输入码段的码段请求信息。The present invention is not limited to the above-mentioned embodiments, and the present invention can be implemented by modifying part of the configuration within the scope not departing from the spirit of the present invention. For example, the variable-length code decoding device and method of the present invention can be used in various variable-length codec standards other than the above-described MPEG-2/4/VC-1 standard and AVS standard, and those skilled in the art Personnel should be aware of how to identify short codewords and calculate code segment request information for requesting input code segments for different criteria.
此外,以上附图和相关实施例的说明中所提到的各个模块,例如码字区分单元、短码字解码加速单元等中可能包括为了使得该模块实现在本发明实施例中的相应功能而设置的存储单元、控制单元、时钟提供单元等。这些单元所能实现的功能都是本领域技术人员所公知的,因此在本发明的描述中未进行具体说明,但是本领域技术人员应当清楚如何根据本发明所描述的功能来适当地设计提供这些功能单元。此外,本发明中所公开的各个模块以及这些模块中的提供相应功能的功能单元可以用软件、硬件或者其结合来实现,并且各个模块之间的信号可以以任何可能的方式被传递。In addition, the various modules mentioned in the above drawings and descriptions of related embodiments, such as the codeword distinguishing unit, short codeword decoding acceleration unit, etc., may include Set storage unit, control unit, clock supply unit, etc. The functions that these units can realize are well known to those skilled in the art, so they are not specifically described in the description of the present invention, but those skilled in the art should be clear how to properly design and provide these units according to the functions described in the present invention. functional unit. In addition, the various modules disclosed in the present invention and the functional units providing corresponding functions in these modules can be realized by software, hardware or their combination, and the signals between the various modules can be transmitted in any possible way.
另外,需要注意的是,在说明书中所提到的各个表只是为了表明映射关系,而并不一定是实际使用的映射表,并且这些表中的每一个所表示的映射关系可以用单独的映射表来实现,也可以与其它表合并在一个映射表中来实现。而且,本发明实施例中所提到的各个模块可以单独实现,也可以适当地与其它模块集成在一起来实现。In addition, it should be noted that the various tables mentioned in the specification are only to indicate the mapping relationship, but not necessarily the actual mapping table used, and the mapping relationship represented by each of these tables can be mapped with a separate table, or combined with other tables in a mapping table. Moreover, each module mentioned in the embodiment of the present invention may be implemented independently, or may be appropriately integrated with other modules for implementation.
综上,对本发明的以上实施例的说明只是用于帮助理解本发明的方法及其核心思想,而不希望限制本发明的范围;同时,对于本领域的普通技术人员,依据本发明的思想,在具体实施方式及应用范围上还会有各种变化和改型,这些变化和改型均落入所附权利要求所限定的本发明的范围内。In summary, the description of the above embodiments of the present invention is only used to help understand the method of the present invention and its core idea, and does not intend to limit the scope of the present invention; meanwhile, for those of ordinary skill in the art, according to the idea of the present invention, There are also various changes and modifications in the specific implementation and application range, and these changes and modifications all fall within the scope of the present invention defined by the appended claims.
Claims (11)
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN2008100898122A CN101547353B (en) | 2008-03-28 | 2008-03-28 | Decoding accelerator for variable length codes |
| JP2009080360A JP5201052B2 (en) | 2008-03-28 | 2009-03-27 | Device for speeding up decoding of variable length codes |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN2008100898122A CN101547353B (en) | 2008-03-28 | 2008-03-28 | Decoding accelerator for variable length codes |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| CN101547353A CN101547353A (en) | 2009-09-30 |
| CN101547353B true CN101547353B (en) | 2011-09-07 |
Family
ID=41194182
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN2008100898122A Expired - Fee Related CN101547353B (en) | 2008-03-28 | 2008-03-28 | Decoding accelerator for variable length codes |
Country Status (2)
| Country | Link |
|---|---|
| JP (1) | JP5201052B2 (en) |
| CN (1) | CN101547353B (en) |
Families Citing this family (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN102547267B (en) * | 2010-12-29 | 2014-04-16 | 福州瑞芯微电子有限公司 | Video data decoding method and system |
| US8593309B2 (en) * | 2011-11-30 | 2013-11-26 | Intel Mobile Communications GmbH | Method for efficient decoding of variable length codes |
Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN1703090A (en) * | 2005-06-09 | 2005-11-30 | 清华大学 | High-speed changeable long code parallel decoder |
| CN1839550A (en) * | 2003-07-15 | 2006-09-27 | 英特尔公司 | Method of decoding variable length prefix codes |
| CN1913638A (en) * | 2005-08-09 | 2007-02-14 | C&S技术有限公司 | H.264 decoding method for fast CAVLC |
| CN101116342A (en) * | 2005-03-30 | 2008-01-30 | 英特尔公司 | Multistandard variable length decoder with hardware accelerator |
Family Cites Families (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6215424B1 (en) * | 1998-12-16 | 2001-04-10 | Thomson Licensing S.A. | System for variable length codeword processing suitable for video and other applications |
| JP2001007706A (en) * | 1999-06-24 | 2001-01-12 | Toshiba Corp | Variable length code decoding device |
| JP2003209474A (en) * | 2002-01-15 | 2003-07-25 | Matsushita Electric Ind Co Ltd | Variable length code decoding device |
| JP2006060723A (en) * | 2004-08-24 | 2006-03-02 | Victor Co Of Japan Ltd | Variable length code decoder |
| JP4079965B2 (en) * | 2005-10-03 | 2008-04-23 | 株式会社アクセル | Decryption system |
-
2008
- 2008-03-28 CN CN2008100898122A patent/CN101547353B/en not_active Expired - Fee Related
-
2009
- 2009-03-27 JP JP2009080360A patent/JP5201052B2/en not_active Expired - Fee Related
Patent Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN1839550A (en) * | 2003-07-15 | 2006-09-27 | 英特尔公司 | Method of decoding variable length prefix codes |
| CN101116342A (en) * | 2005-03-30 | 2008-01-30 | 英特尔公司 | Multistandard variable length decoder with hardware accelerator |
| CN1703090A (en) * | 2005-06-09 | 2005-11-30 | 清华大学 | High-speed changeable long code parallel decoder |
| CN1913638A (en) * | 2005-08-09 | 2007-02-14 | C&S技术有限公司 | H.264 decoding method for fast CAVLC |
Also Published As
| Publication number | Publication date |
|---|---|
| JP5201052B2 (en) | 2013-06-05 |
| CN101547353A (en) | 2009-09-30 |
| JP2009246973A (en) | 2009-10-22 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US10846218B2 (en) | Methods, devices and systems for compressing and decompressing data | |
| US8306108B2 (en) | Adaptive canonical Huffman decoder and method thereof and video decoder | |
| US6603413B2 (en) | Variable-length decoding apparatus and method | |
| US7365660B2 (en) | Method and device for decoding syntax element in CABAC decoder | |
| TWI594238B (en) | Hardware data compressor that directly huffman encodes output tokens from lz77 engine | |
| US7411529B2 (en) | Method of decoding bin values using pipeline architecture and decoding device therefor | |
| US8094048B2 (en) | Method of decoding syntax element in context-based adaptive binary arithmetic coding decoder and decoding device therefor | |
| TWI360956B (en) | Cabac decoding apparatus and decoding method there | |
| JP2011501896A (en) | Optimal CABAC decoder | |
| WO2017131578A1 (en) | Methods, devices and systems for compressing and decompressing data | |
| CN101414830B (en) | Method for parallel processing of at least two binary values and corresponding arithmetic coding system | |
| US7714753B2 (en) | Scalable context adaptive binary arithmetic coding | |
| CN101547353B (en) | Decoding accelerator for variable length codes | |
| US7928868B1 (en) | Entropy decoding device | |
| GB2333000A (en) | Finite state machine coding of information | |
| US8599841B1 (en) | Multi-format bitstream decoding engine | |
| CN101277444A (en) | A device and method for decoding Columbus code | |
| CN104980749B (en) | Decoding device and method for arithmetic coding | |
| US20060209965A1 (en) | Method and system for fast run-level encoding | |
| US7518536B2 (en) | Method and apparatus for debinarization of digital video data during decoding | |
| US20050174270A1 (en) | Programmable variable length decoder including interface of cpu processor | |
| US9525890B2 (en) | Method and apparatus for decoding for AVS system using fetching flag | |
| Ong et al. | A high throughput low cost context-based adaptive arithmetic codec for multiple standards | |
| JP4537089B2 (en) | Variable length decoding apparatus and method, computer program, and computer readable storage medium | |
| CN100423453C (en) | Arithmetic Encoding and Decoding Method Realized by Lookup Table |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| C06 | Publication | ||
| PB01 | Publication | ||
| C10 | Entry into substantive examination | ||
| SE01 | Entry into force of request for substantive examination | ||
| C14 | Grant of patent or utility model | ||
| GR01 | Patent grant | ||
| CF01 | Termination of patent right due to non-payment of annual fee | ||
| CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20110907 Termination date: 20190328 |