CN102055483B - 熵解码装置 - Google Patents
熵解码装置 Download PDFInfo
- Publication number
- CN102055483B CN102055483B CN200910309029.7A CN200910309029A CN102055483B CN 102055483 B CN102055483 B CN 102055483B CN 200910309029 A CN200910309029 A CN 200910309029A CN 102055483 B CN102055483 B CN 102055483B
- Authority
- CN
- China
- Prior art keywords
- module
- node
- entropy decoding
- decoding device
- decoding
- 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
- 238000006243 chemical reaction Methods 0.000 claims description 4
- 238000003860 storage Methods 0.000 claims description 4
- 230000003044 adaptive effect Effects 0.000 description 6
- 230000033228 biological regulation Effects 0.000 description 4
- 238000000034 method Methods 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 1
- 230000006837 decompression Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/40—Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
- H03M7/4006—Conversion to or from arithmetic code
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
一种熵解码装置,包括数据存储模块、查询表模块、预测模块、算法解码模块、更新模块与输出模块。数据存储模块用于存储视频数据比特流。查询表模块用于选择上下文概率模型,包括解码树的结点与最可能出现符号。预测模块用于预测下一结点信息。算法解码模块用于对视频数据比特流进行解码,所解码内容包括下一结点信息。更新模块用于判断解码内容中下一结点信息与预测的下一结点信息是否相符,当不相符时产生推出指令至查询表模块,并更新最可能出现符号。输出模块用于输出解码内容。上述熵解码装置可以在解码的同时对根据MPS对下一结点进行预测,还可以根据解码内容更新最可能出现符号,从而提高预测的准确率,使熵解码速度得到改善。
Description
技术领域
本发明涉及解码,尤其涉及一种熵(entropy)解码装置。
背景技术
基于上下文的自适应二进制编码(context-based adaptive binary arithmeticcode,CABAC)是H.264/AVC压缩视频数据流的工具之一。CABAC的熵(entropy)解码过程,即为对视频数据流所形成的二叉树的遍历(traversing)。然而,熵解码的处理量(throughput)往往受限于复杂的算法计算及二叉树结点之间的依赖关系。
H.264/AVC在数据处理时,熵解码部分占了较大一部分的计算量,若能提升熵解码的速度,将直接提升H.264/AVC视频解码的速度。
发明内容
有鉴于此,需要提供一种熵(entropy)解码装置,用于改善熵解码速度。
本发明实施方式中提供的熵解码装置,包括数据存储模块、查询表模块、预测模块、算法解码模块、更新模块、输出模块与状态缓存器。数据存储模块用于存储待解码的视频数据比特流。查询表模块用于选择上下文概率模型,所述上下文概率模型中包括所述视频数据比特流所对应的解码树的所有结点与每个结点的最可能出现符号(most probable symbol,MPS)。预测模块用于根据当前结点与MPS预测下一结点信息。算法解码模块用于根据当前结点对视频数据比特流进行解码,所解码内容包括下一结点信息。更新模块用于判断解码内容中下一结点信息与预测的下一结点信息是否相符,当不相符时产生推出指令至查询表模块,并根据推出指令更新上下文概率模型中的MPS。输出模块用于输出解码内容。状态缓存器用于读取并缓存查询表模块中的当前结点与最可能出现符号,并输出给预测模块与算法解码模块。
优选地,状态缓存器还用于在查询表模块接收到推出指令后,丢弃当前结点,并根据解码内容中的下一结点信息重新读取。
优选地,还包括计时器,用于提供时钟周期,使算法解码模块的解码动作与预测模块的预测动作在同一时钟周期内进行。
优选地,还包括解析模块,用于解析当前结点是叶子结点还是分支结点。
优选地,解析模块还用于当当前结点为叶子结点时,输出叶子结点的解码内容至输出模块。
优选地,解析模块还用于当当前结点为分支结点时,输出分支结点的解码内容至更新模块。
优选地,查询表模块还包括上下文表,用于存储上下文概率模型。
优选地,更新最可能出现符号是根据H.264/AVC规定的概率状态转换方式对上下文概率模型进行维护。
相较于现有技术,上述熵解码装置可以在解码的同时根据MPS对下一结点进行预测。
此外,上述熵解码装置还可以根据解码内容更新MPS,可以提高预测的准确率,使熵解码速度得到改善。
附图说明
图1是本发明实施方式中熵解码装置的模块图。
图2是本发明实施方式中熵解码的方法的流程图。
图3是本发明实施方式中解码树的遍历与下一结点的预测图。
具体实施方式
参阅图1,为本发明实施方式中熵(entropy)解码装置100的模块图。
在本实施方式中,熵解码装置100用于依照H.264/AVC标准,对基于上下文的自适应二进制编码(context-based adaptive binary arithmetic code,CABAC)的视频数据进行解码。H.264/AVC标准规定了详细的解码表及解码流程,每一解码表对应一个二叉树结构的解码树,每一解码树包括多个分支结点与多个叶子结点。熵解码即为根据视频数据来确定访问解码树的路径,并依据该路径读取叶子结点内存储的值。在其它实施方式中,熵解码装置100也可以用于处理能兼容H.264/AVC标准的其它视频编解码标准,例如,基于上下文的自适应变长码(context-based adaptive Variable Length Coding,CAVLC)等。
在本实施方式中,熵解码装置100包括读取端10、执行端20与输出端30。
读取端10包括数据存储模块11、查询表(table look-up)模块12及状态缓存器(state buffer)13。
数据存储模块11用于存储待解码的视频数据比特流(encoded bit stream)。
查询表模块12用于选择上下文概率模型,提供待解码的视频数据比特流所对应的解码树中结点之间的依赖关系。
在本实施方式中,查询表模块12包括上下文表(context table)120。上下文表120用于存储H.264/AVC中规定的多种上下文概率模型。
上下文概率模型中包括解码树中每一分支结点的最可能出现符号(mostprobable symbol,MPS)、最不可能出现符号(least probable symbol,LPS)及状态值(state)。在本实施方式中,MPS的取值来源于H.264/AVC标准的上下文概率模型规定,用来表示下一结点是往左还是往右的概率更大,一般采用0与1来表示,其中MPS=0用来表示往左的概率大,MPS=1用来表示往右的概率大。在本实施方式中,上下文概率模型为位置依赖型,即,在不同的位置有不同的MPS取值。
状态缓存器13用于读取并暂存查询表模块12中当前结点与MPS。在本实施方式中,状态缓存器13是通过流水线(pipeline)的方式,对当前结点与MPS取值进行先进先出(first-in first-out,FIFO)的读取和丢弃。在本实施方式中,状态缓存器13采用流水线的方式,增强对结点读取和丢弃的灵活性,以提高熵解码装置100的处理速度。
执行端20包括算法解码模块21、解析模块22、预测模块23、更新模块24及计时器25。计时器25用于提供时钟周期。
算法解码模块21连接于状态缓存器13与数据存储模块11,用于读取状态缓存器13中的当前结点,并对数据存储模块11中的视频数据比特流进行解码,例如二进制符号解码(binary decode symbol,BDS),并输出解码内容。在本实施方式中,解码内容包括下一结点的信息。
解析模块22用于解析算法解码模块21解码的当前结点是叶子结点还是分支结点。在本实施方式中,当前结点为叶子结点时,解析模块22将叶子结点的解码内容输出至输出端30。当前结点为分支结点时,解析模块22将分支结点的解码内容输出至更新模块24。
预测模块23用于预测下一结点信息。在本实施方式中,预测模块23根据状态缓存器13中的当前结点与MPS预测下一结点为当前结点的左孩子或右孩子。
在本实施方式中,算法解码模块21对当前结点的解码与预测模块23对下一结点的预测是在计时器25的同一时钟周期内进行。
更新模块24连接于解析模块22与预测模块23,用于判断分支结点的解码内容中下一结点的信息是否与预测的下一结点信息相符,并当预测不符(prediction miss)时,产生推出指令(flush)并输出至查询表模块12,以及根据推出指令更新上下文表120中的MPS。
在本实施方式中,状态缓存器13还用于在查询表模块12接收到推出指令后,丢弃预测的下一结点信息,并重新读取解码内容中包含的下一结点信息。
在本实施方式中,算法解码模块21还用于当预测相符(prediction hit)时,读取状态缓存器13中的下一结点信息进行解码。
在本实施方式中,查询表模块12在接收到推出指令后,进行更新MPS。在本实施方式中,更新MPS是根据H.264/AVC规定的概率状态转换方式对上下文概率模型进行维护,包括维护当前概率间隔的偏移值(offset)与当前间隔宽度值(range)。
熵解码装置10可以通过更新MPS,来改变后续预测的方向。例如,由MPS=0,转换为MPS=1。
输出端30包括输出模块31,用于输出叶子结点的解码内容。
请参阅图2,是本发明实施方式中解码方法的流程图。
在步骤S201中,数据存储模块11存储需要解码的视频数据比特流。
在步骤S202中,查询表模块12在上下文表120中选择需要解码的视频数据比特流所对应的上下文概率模型,包括解码树中所有结点与每个结点的MPS。在本实施方式中,叶子结点的MPS为null。
在步骤S203中,状态缓存器13从查询表模块12中读取当前结点与MPS。在本实施方式中,状态缓存器13通过流水线的方式,对当前结点与MPS进行先进先出(first-in first-out,FIFO)的读取和丢弃。
在步骤S204中,预测模块23预测下一结点信息,算法解码模块21接收当前结点,对数据存储模块11中的视频数据比特流进行解码,并输出解码内容。
在本实施方式中,预测模块23与算法解码模块21在同一时钟周期内分别进行预测与解码。在本实施方式中,预测模块23根据状态缓存器13中的当前结点与MPS预测下一结点为当前结点的左孩子或右孩子。
在步骤S205中,解析模块22用于解析算法解码模块21解码的当前结点是叶子结点还是分支结点。
若当前结点为叶子结点,则执行步骤S206,解析模块22将叶子结点的解码内容输出至输出模块31,并由输出模块31输出叶子结点的解码内容。
若当前结点为分支结点,则执行步骤S207,更新模块24读取判断分支结点的解码内容中下一结点的信息是否与预测的下一结点相符。
若相符,则返回执行步骤S203,在本实施方式中,当前结点为已经根据预测更新后的结点。
若不符,则执行步骤S208,更新模块24产生推出指令输出至查询表模块12,将预测的下一结点信息从状态缓存器13中丢弃,并返回步骤S202。在本实施方式中,查询表模块12接收到推出指令后,根据分支解码内容更新MPS。在本实施方式中,状态缓存器13按照流水线方式执行步骤S203与S208的读取与丢弃。在本实施方式中,更新MPS,是根据H.264/AVC规定的概率状态转换方式对上下文概率模型进行维护。
解码树的遍历与下一结点的预测如图3(1)、(2)所示。其中图3(2)中横坐标表示时钟周期,纵坐标表示结点,F表示熵解码装置100的读取端10,E表示熵解码装置100的执行端20,O表示熵解码装置100的输出端30。
查询表模块12选择解码树,如图3(1)。
如图3(2),当解码与预测相符,如当前结点为0时,读取状态缓存器13中的预测的下一结点2,并继续执行解码与预测。
若不相符,如当前结点为2时,丢弃状态缓存器13中的预测的下一结点3,读取下一结点4,并更新MPS。
熵解码装置10根据MPS进行下一结点的预测,可以提高结点的处理速度。而根据解码内容不断更新MPS,可以提高预测的准确率,使发明中熵解码装置100的速度得到改善。
Claims (8)
1.一种熵解码装置,其特征在于,包括:
数据存储模块,用于存储需要解码的视频数据比特流;
查询表模块,用于选择上下文概率模型,所述上下文概率模型中包括所述视频数据比特流所对应的解码树的所有结点与每个结点的最可能出现符号;
状态缓存器,用于读取并缓存所述查询表模块中的当前结点与所述最可能出现符号;
预测模块,用于根据所述状态缓存器输出的所述当前结点与所述最可能出现符号预测下一结点信息;
算法解码模块,用于根据所述状态缓存器输出的所述当前结点对所述视频数据比特流进行解码,所解码内容包括所述下一结点信息;
更新模块,用于判断所述解码内容中的下一结点信息与所述预测的下一结点信息是否相符,并当不相符时产生推出指令至所述查询表模块,以及根据所述推出指令更新所述上下文概率模型中的最可能出现符号;及
输出模块,用于输出所述解码内容。
2.如权利要求1所述的熵解码装置,其特征在于,所述状态缓存器还用于在所述查询表模块接收到所述推出指令后,丢弃所述当前结点,并根据解码内容中的下一结点信息重新读取。
3.如权利要求1所述的熵解码装置,其特征在于,还包括计时器,用于提供时钟周期,使所述算法解码模块的解码动作与所述预测模块的预测动作在同一时钟周期内进行。
4.如权利要求1所述的熵解码装置,其特征在于,还包括解析模块,用于解析所述当前结点是叶子结点还是分支结点。
5.如权利要求4所述的熵解码装置,其特征在于,所述解析模块还用于当所述当前结点为所述叶子结点时,输出叶子结点的解码内容至所述输出模块。
6.如权利要求4或5所述的熵解码装置,其特征在于,所述解析模块还用于当所述当前结点为所述分支结点时,输出分支结点的解码内容至所述更新模块。
7.如权利要求1所述的熵解码装置,其特征在于,所述查询表模块还包括上下文表,用于存储所述上下文概率模型。
8.如权利要求1所述的熵解码装置,其特征在于,所述更新最可能出现符号是根据H.264/AVC规定的概率状态转换方式对所述上下文概率模型进行维护。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200910309029.7A CN102055483B (zh) | 2009-10-29 | 2009-10-29 | 熵解码装置 |
US12/632,917 US7928868B1 (en) | 2009-10-29 | 2009-12-08 | Entropy decoding device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200910309029.7A CN102055483B (zh) | 2009-10-29 | 2009-10-29 | 熵解码装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102055483A CN102055483A (zh) | 2011-05-11 |
CN102055483B true CN102055483B (zh) | 2013-05-08 |
Family
ID=43858638
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200910309029.7A Expired - Fee Related CN102055483B (zh) | 2009-10-29 | 2009-10-29 | 熵解码装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US7928868B1 (zh) |
CN (1) | CN102055483B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102045558B (zh) * | 2009-10-22 | 2012-09-19 | 鸿富锦精密工业(深圳)有限公司 | 熵解码方法 |
US8421655B2 (en) * | 2010-04-23 | 2013-04-16 | Certicom Corp. | Apparatus for parallel entropy encoding and decoding |
US8416104B2 (en) * | 2010-04-23 | 2013-04-09 | Certicom Corp. | Method and apparatus for entropy decoding |
EP2572455B1 (en) * | 2010-05-21 | 2019-09-04 | BlackBerry Limited | Methods and devices for reducing sources in binary entropy coding |
CN107333141B (zh) * | 2011-06-16 | 2020-04-07 | Ge视频压缩有限责任公司 | 解码器及解码方法、编码器及编码方法 |
US10097833B2 (en) * | 2014-12-26 | 2018-10-09 | Intel Corporation | Method and system of entropy coding using look-up table based probability updating for video coding |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1133512A (zh) * | 1994-09-30 | 1996-10-16 | 株式会社理光 | 编码与解码数据的方法和装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4327036B2 (ja) | 2004-07-15 | 2009-09-09 | 株式会社東芝 | 算術符号復号化方法及びその装置 |
CN101167368B (zh) * | 2005-12-05 | 2012-03-28 | 华为技术有限公司 | 一种实现算术编解码的方法及装置 |
-
2009
- 2009-10-29 CN CN200910309029.7A patent/CN102055483B/zh not_active Expired - Fee Related
- 2009-12-08 US US12/632,917 patent/US7928868B1/en not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1133512A (zh) * | 1994-09-30 | 1996-10-16 | 株式会社理光 | 编码与解码数据的方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
US20110102212A1 (en) | 2011-05-05 |
CN102055483A (zh) | 2011-05-11 |
US7928868B1 (en) | 2011-04-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102055483B (zh) | 熵解码装置 | |
CN116681036B (zh) | 基于数字孪生的工业数据存储方法 | |
CN101212676B (zh) | 高效并行cabac解码方法及其装置 | |
TWI768295B (zh) | 用於音訊/視訊樣本向量之錐型向量量化檢索/解檢索之方法及裝置 | |
CN102783154B (zh) | 采用双码集的编码和解码方法和设备 | |
CN102244518A (zh) | 并行解压缩的硬件实现的系统及方法 | |
CN101790889A (zh) | 用于基于上下文的自适应二进制算术译码位流的多级解码的架构 | |
JP2010219842A (ja) | 符号量推定装置、符号量推定方法、符号量推定プログラムおよび、符号量推定集積回路 | |
CN101562455A (zh) | 内容可适性二元算数编码的译码装置及其译码方法 | |
CN108965878B (zh) | 一种熵解码方法及装置 | |
CN116015311A (zh) | 基于滑动字典实现的Lz4文本压缩方法 | |
CN111787325B (zh) | 一种熵编码器及其编码方法 | |
CN100551066C (zh) | 编码器及自适应算术编码的实现方法及装置 | |
CN105915228B (zh) | 自适应的混合的数据无损压缩方法 | |
US8970405B2 (en) | Method and apparatus for entropy decoding | |
TWI396448B (zh) | 熵解碼裝置 | |
CN105915227B (zh) | 自适应的混合的数据无损压缩系统 | |
CN115913246A (zh) | 基于自适应瞬时熵的无损数据压缩算法 | |
CN110915140B (zh) | 用于编码和解码数据结构的质量值的方法 | |
US8421655B2 (en) | Apparatus for parallel entropy encoding and decoding | |
CN107896136B (zh) | 一种雷达航迹报文编码方法 | |
US7612692B2 (en) | Bidirectional context model for adaptive compression | |
CN101188753B (zh) | 一种视频熵解码查找表的构造方法及视频熵解码方法 | |
CN101500164B (zh) | 算术编码的打包输出的方法和装置 | |
US7538697B1 (en) | Heuristic modeling of adaptive compression escape sequence |
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 | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20130508 Termination date: 20131029 |