CN103826120A - 一种适用于hevc的码流解析器 - Google Patents
一种适用于hevc的码流解析器 Download PDFInfo
- Publication number
- CN103826120A CN103826120A CN201410100270.XA CN201410100270A CN103826120A CN 103826120 A CN103826120 A CN 103826120A CN 201410100270 A CN201410100270 A CN 201410100270A CN 103826120 A CN103826120 A CN 103826120A
- Authority
- CN
- China
- Prior art keywords
- cabac
- code stream
- decoding
- module
- decoder module
- 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.)
- Granted
Links
Images
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本发明涉及一种适用于HEVC的码流解析器,包括码流解析状态控制模块、EG0解码模块、相邻上块信息及相关参数存储单元、解码输出存储单元、码流FIFO和CABAC解码模块;所述EG0是指0阶顺序指数哥伦布;所述的码流FIFO通过缓冲位移分别与所述CABAC解码模块和EG0解码模块相连,所述EG0解码模块通过码流解析状态控制模块与所述CABAC解码模块相连;所述EG0解码模块通过相邻上块信息及相关参数存储单元与所述CABAC解码模块相连。本发明的码流解析器根据HEVC标准中的语法元素划分重新设计状态机,能够极大的挑高数据吞吐量;同时增加了编码树单元上下文变量以及独立片段上下文变量的存储及相应的同步逻辑,能够实现HEVC标准中规定的非独立片段上下文变量以及需要同步的编码树单元上下文变量的同步功能。
Description
技术领域
本发明涉及一种适用于HEVC的码流解析器,属于数字视频信号编解码的技术领域。
背景技术
HEVC(High Efficiency Video Codec)是目前由国际电信组织(ITU)和运动图像专家组(MPEG)联合制定中的新一代国际视频编码标准。与现在的国际视频标准H.264/AVC相比,HEVC能保证在相同图像质量的前提下,将视频的码率降低50%。但相应的,HEVC的计算复杂度提高了2至3倍。与H.264相比,HEVC的编码方式只有0阶顺序指数哥伦布编码以及CABAC编码两种,不再使用CAVLC编码。与H.264一样,HEVC中码流解析的瓶颈仍然是CABAC解码。
与H.264中的CABAC编码先比,HEVC中的CABAC编码在语法元素的划分以及相应发编解码方式上进行了改进。附图1中展示了HEVC中使用CABAC编码的语法元素。这些语法元素描述了编码的像素块的编码单元(CU)、预测单元(PU)、转化单元(TU)以及环路滤波器(LF)的特性。对于CU来说,这些语法元素描述了块的结构以及该CU的预测模式(帧内或帧间);对于PU,表格中的语法元素描述的是帧内预测模式以及一系列的运动信息;对于TU,主要包含残差矩阵的变化系数、符号等信息;LF语法元素在每一个最大编码单元LCU中传输一次,描述了环路滤波中SAO的类型和偏移量。这些改进使得CABAC模块能够有更大的数据吞吐量,但也导致了解码过程的变动。
出来上述变化之外,在具体的CABAC解码过程中,HEVC中的初始化模块增加了上下文变量的存储及同步功能,这一变化导致当前的H.264中的CABAC节解码模块不再适用。
发明内容
针对现有技术的不足,本发明涉及一种适用于HEVC的码流解析器。
本发明的技术方案如下:
本发明涉及一种适用于HEVC的码流解析器,包括码流解析状态控制模块、EG0解码模块、相邻上块信息及相关参数存储单元、解码输出存储单元、码流FIFO和CABAC解码模块;所述EG0是指0阶顺序指数哥伦布;
所述的码流FIFO通过缓冲位移分别与所述CABAC解码模块和EG0解码模块相连,所述EG0解码模块通过码流解析状态控制模块与所述CABAC解码模块相连;所述EG0解码模块通过相邻上块信息及相关参数存储单元与所述CABAC解码模块相连;
所述CABAC解码模块包括CABAC算术解码、输出模块和CABAC状态控制;所述CABAC算术解码通过输出模块与所述解码输出存储单元相连;所述ABAC算术解码与所述CABAC状态控制相连,所述CABAC状态控制通过输出模块与所述解码输出存储单元相连;
所述缓冲位移与所述CABAC算术解码相连,所述相邻上块信息及相关参数存储单元与所述CABAC状态控制相连;
所述码流解析状态控制模块是整个码流解析器的控制中心,根据HEVC标准上规定的码流成分及相应的解析顺序,所述码流解析状态控制模块协调EG0解码模块和CABAC解码模块的工作,完成相应语法元素的解码操作;
所述EG0解码模块用于完成使用0阶顺序指数哥伦布编码的语法元素的解码操作,具体包括有符号型和无符号型两种;
所述相邻上块信息及相关参数存储单元采用SRAM来实现,用于存储以下信息:
(1)相邻上块的语法元素值,这些语法元素的值用于计算相应语法元素的模型索引增量:在每解完一个宏块语法元素值后更新相邻上块信息SRAM中相应位置的语法元素值;通过即时动态更新,可避免存储两行宏块的句法元素值,进而节省存储空间,而同时又不影响模型索引增量值的计算;
(2)用于CABAC解码过程中需要的相关参数:包括序列参数集、图像参数集以及片头语法元素值;
所述解码输出存储单元,用于存储CABAC解码输出的残差矩阵及运动信息;由于数据量很大,所以采用SRAM来实现,同时,为了降低延时,实现与反量化、反变换等模块的协同工作,采用两个SRAM来实现乒乓操作模式,例如,当CABAC输出模块往SRAM1中写入数据时,反量化/反变换模块从SRAM2中读取残差系数值。通过这样的实现,能够使各模块同时运行;
所述码流FIFO,用于暂时存储码流信息,同时实现码流信息的异步存取;
所述CABAC解码模块,用于实现使用CABAC编码的语法元素的解码操作:包括CABAC算术解码模块、CABAC状态控制模块以及输出模块。
根据本发明优选的,所述CABAC算术解码模块包括算术解码及重归一化单元和上下文模型管理单元;
上述算术解码及重归一化单元包括常规解码逻辑、旁路解码逻辑以及终止解码逻辑,该单元全部由组合逻辑实现;该单元通过HEVC标准中规定的解码类型来选择相应解码方式进行解码,同时更新当前区间宽度、区间偏置以及上下文变量;
上述上下文模型管理单元在解析一个新的slice、新的tile以及新的一行CTU时会按照各自相应的初始化流程完成各上下文模型的初始化或者同步以及算术解码引擎的初始化;同时,该单元还能按照存储要求,将将相应的CTU以及slice segment的上下文变量存到相应的寄存器中;为了提高解码速度,需要在一个时钟周期内完成上下文模型信息的更新,并获得下一个欲解比特需要的上下文模型信息。该管理单元由CABAC状态控制模块进行控制,每个时钟读入算术解码单元更新后的上下文模型值,同时输出解码需要的上下文模型值。当读入和输出的上下文模型相同时,算术解码单元将直接使用更新后的上下文模型值(即管理单元读入的模型值)),这样,可避免一个时钟的等待;
上述CABAC状态控制模块用于根据标准上规定的码流成分及解码顺序,控制状态跳转,同时控制相应的上下文变量的更新及读取,来完成相应的CABAC解码操作;
上述输出模块用于实现对CABAC解码的结果的输出控制。
根据本发明优选的,所述EG0解码模块的解码方式包括有符号型和无符号型两种,该解析器采用硬件中固化查找表的方式来实现上述两种解码方式。为了提高解码效率,本发明中采用硬件中固化查找表的方式来实现这两种解码方式。
根据本发明优选的,所述码流FIFO宽度为8位。方便CABAC模块的使用。
本发明的优势:
与现有技术相比,本发明所述的码流解析器适用于HEVC中改进的的语法元素解析过程,并且其CABAC解码过程符合HEVC的要求。
本发明的码流解析器根据HEVC标准中的语法元素划分重新设计状态机,能够极大的挑高数据吞吐量;同时增加了编码树单元上下文变量以及独立片段上下文变量的存储及相应的同步逻辑,能够实现HEVC标准中规定的非独立片段上下文变量以及需要同步的编码树单元上下文变量的同步功能。同时,本发明的码流解析器的子模块划分合理,能够实现码流的读取、解码、输出的流水线操作,极大的提高解码效率。
附图说明
图1是HEVC中使用CABAC编码的语法元素划分;
图2是HEVC码流解析器的硬件架构。
具体实施方式
下面结合附图对本发明进一步详细说明,但不限于此。
实施例、
一种适用于HEVC的码流解析器,包括码流解析状态控制模块、EG0解码模块、相邻上块信息及相关参数存储单元、解码输出存储单元、码流FIFO和CABAC解码模块;所述EG0是指0阶顺序指数哥伦布;
所述的码流FIFO通过缓冲位移分别与所述CABAC解码模块和EG0解码模块相连,所述EG0解码模块通过码流解析状态控制模块与所述CABAC解码模块相连;所述EG0解码模块通过相邻上块信息及相关参数存储单元与所述CABAC解码模块相连;
所述CABAC解码模块包括CABAC算术解码、输出模块和CABAC状态控制;所述CABAC算术解码通过输出模块与所述解码输出存储单元相连;所述ABAC算术解码与所述CABAC状态控制相连,所述CABAC状态控制通过输出模块与所述解码输出存储单元相连;
所述缓冲位移与所述CABAC算术解码相连,所述相邻上块信息及相关参数存储单元与所述CABAC状态控制相连;
所述码流解析状态控制模块是整个码流解析器的控制中心,根据HEVC标准上规定的码流成分及相应的解析顺序,所述码流解析状态控制模块协调EG0解码模块和CABAC解码模块的工作,完成相应语法元素的解码操作;
所述EG0解码模块用于完成使用0阶顺序指数哥伦布编码的语法元素的解码操作,具体包括有符号型和无符号型两种;
所述相邻上块信息及相关参数存储单元采用SRAM来实现,用于存储以下信息:
(1)相邻上块的语法元素值,这些语法元素的值用于计算相应语法元素的模型索引增量:在每解完一个宏块语法元素值后更新相邻上块信息SRAM中相应位置的语法元素值;通过即时动态更新,可避免存储两行宏块的句法元素值,进而节省存储空间,而同时又不影响模型索引增量值的计算;
(2)用于CABAC解码过程中需要的相关参数:包括序列参数集、图像参数集以及片头语法元素值;
所述解码输出存储单元,用于存储CABAC解码输出的残差矩阵及运动信息;由于数据量很大,所以采用SRAM来实现,同时,为了降低延时,实现与反量化、反变换等模块的协同工作,采用两个SRAM来实现乒乓操作模式,例如,当CABAC输出模块往SRAM1中写入数据时,反量化/反变换模块从SRAM2中读取残差系数值。通过这样的实现,能够使各模块同时运行;
所述码流FIFO,用于暂时存储码流信息,同时实现码流信息的异步存取;
所述CABAC解码模块,用于实现使用CABAC编码的语法元素的解码操作:包括CABAC算术解码模块、CABAC状态控制模块以及输出模块。
所述CABAC算术解码模块包括算术解码及重归一化单元和上下文模型管理单元;
上述算术解码及重归一化单元包括常规解码逻辑、旁路解码逻辑以及终止解码逻辑,该单元全部由组合逻辑实现;该单元通过HEVC标准中规定的解码类型来选择相应解码方式进行解码,同时更新当前区间宽度、区间偏置以及上下文变量;
上述上下文模型管理单元在解析一个新的slice、新的tile以及新的一行CTU时会按照各自相应的初始化流程完成各上下文模型的初始化或者同步以及算术解码引擎的初始化;同时,该单元还能按照存储要求,将将相应的CTU以及slice segment的上下文变量存到相应的寄存器中;为了提高解码速度,需要在一个时钟周期内完成上下文模型信息的更新,并获得下一个欲解比特需要的上下文模型信息。该管理单元由CABAC状态控制模块进行控制,每个时钟读入算术解码单元更新后的上下文模型值,同时输出解码需要的上下文模型值。当读入和输出的上下文模型相同时,算术解码单元将直接使用更新后的上下文模型值(即管理单元读入的模型值)),这样,可避免一个时钟的等待;
上述CABAC状态控制模块用于根据标准上规定的码流成分及解码顺序,控制状态跳转,同时控制相应的上下文变量的更新及读取,来完成相应的CABAC解码操作;
上述输出模块用于实现对CABAC解码的结果的输出控制。
所述EG0解码模块的解码方式包括有符号型和无符号型两种,该解析器采用硬件中固化查找表的方式来实现上述两种解码方式。为了提高解码效率,本发明中采用硬件中固化查找表的方式来实现这两种解码方式。
所述码流FIFO宽度为8位。方便CABAC模块的使用。
本发明的码流解析器根据HEVC标准规定的语法元素划分(如图1所示),重新规划状态机能够做到以下几点,从而提高数据的吞吐量:
(1)减少bin的总量:HEVC标准规定的语法元素划分,可以通过改变二进制化方式、推测某些bin的值以及设置更高级的标志(flag)避免信息冗余等方式来降低需要处理的bin的总量,从而变相的提高数据吞吐量;
(2)减少上下文选择的依赖性;由于上下文选择过程中的数据依赖性,循环解码多个bin(这里指一位二进制)需要大量预测操作。减少此类依赖性可以简化上下文选择的过程并减少并行处理多个bins所需要的预测操作数量;
(3)减少解析的依赖性:CABAC解析本身就是一个瓶颈,因此应该尽量减少对其它任何可能造成CABAC中止的视频编码模块的依赖性。当然,理想情况下是将解析流程完全同其它过程独立开来;
(4)减少内存需求:对内存的访问通常会增加路径延时,因此减少内存存取操作很有必要,同时,这样做还可以减少成本、降低功耗。
Claims (4)
1.一种适用于HEVC的码流解析器,其特征在于,该解析器包括码流解析状态控制模块、EG0解码模块、相邻上块信息及相关参数存储单元、解码输出存储单元、码流FIFO和CABAC解码模块;所述EG0是指0阶顺序指数哥伦布;
所述的码流FIFO通过缓冲位移分别与所述CABAC解码模块和EG0解码模块相连,所述EG0解码模块通过码流解析状态控制模块与所述CABAC解码模块相连;所述EG0解码模块通过相邻上块信息及相关参数存储单元与所述CABAC解码模块相连;
所述CABAC解码模块包括CABAC算术解码、输出模块和CABAC状态控制;所述CABAC算术解码通过输出模块与所述解码输出存储单元相连;所述ABAC算术解码与所述CABAC状态控制相连,所述CABAC状态控制通过输出模块与所述解码输出存储单元相连;
所述缓冲位移与所述CABAC算术解码相连,所述相邻上块信息及相关参数存储单元与所述CABAC状态控制相连;
所述码流解析状态控制模块是整个码流解析器的控制中心,根据HEVC标准上规定的码流成分及相应的解析顺序,所述码流解析状态控制模块协调EG0解码模块和CABAC解码模块的工作,完成相应语法元素的解码操作;
所述EG0解码模块用于完成使用0阶顺序指数哥伦布编码的语法元素的解码操作,具体包括有符号型和无符号型两种;
所述相邻上块信息及相关参数存储单元采用SRAM来实现,用于存储以下信息:
(1)相邻上块的语法元素值,这些语法元素的值用于计算相应语法元素的模型索引增量:(2)用于CABAC解码过程中需要的相关参数:包括序列参数集、图像参数集以及片头语法元素值;
所述解码输出存储单元,用于存储CABAC解码输出的残差矩阵及运动信息;
所述码流FIFO,用于暂时存储码流信息,同时实现码流信息的异步存取;
所述CABAC解码模块,用于实现使用CABAC编码的语法元素的解码操作:包括CABAC算术解码模块、CABAC状态控制模块以及输出模块。
2.根据权利要求1所述的一种适用于HEVC的码流解析器,其特征在于,所述CABAC算术解码模块包括算术解码及重归一化单元和上下文模型管理单元;
上述算术解码及重归一化单元包括常规解码逻辑、旁路解码逻辑以及终止解码逻辑,该单元全部由组合逻辑实现;该单元通过HEVC标准中规定的解码类型来选择相应解码方式进行解码,同时更新当前区间宽度、区间偏置以及上下文变量;
上述上下文模型管理单元在解析一个新的slice、新的tile以及新的一行CTU时会按照各自相应的初始化流程完成各上下文模型的初始化或者同步以及算术解码引擎的初始化;同时,该单元还能按照存储要求,将将相应的CTU以及slice segment的上下文变量存到相应的寄存器中;
上述CABAC状态控制模块用于根据标准上规定的码流成分及解码顺序,控制状态跳转,同时控制相应的上下文变量的更新及读取,来完成相应的CABAC解码操作;
上述输出模块用于实现对CABAC解码的结果的输出控制。
3.根据权利要求1所述的一种适用于HEVC的码流解析器,其特征在于,所述EG0解码模块的解码方式包括有符号型和无符号型两种,该解析器采用硬件中固化查找表的方式来实现上述两种解码方式。
4.根据权利要求1所述的一种适用于HEVC的码流解析器,其特征在于,所述码流FIFO宽度为8位。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410100270.XA CN103826120B (zh) | 2014-03-18 | 2014-03-18 | 一种适用于hevc的码流解析器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410100270.XA CN103826120B (zh) | 2014-03-18 | 2014-03-18 | 一种适用于hevc的码流解析器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103826120A true CN103826120A (zh) | 2014-05-28 |
CN103826120B CN103826120B (zh) | 2017-04-05 |
Family
ID=50760914
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410100270.XA Active CN103826120B (zh) | 2014-03-18 | 2014-03-18 | 一种适用于hevc的码流解析器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103826120B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105657421A (zh) * | 2016-01-15 | 2016-06-08 | 珠海全志科技股份有限公司 | 8x8残差系数块编码方法及*** |
CN104918048B (zh) * | 2015-06-03 | 2018-04-03 | 复旦大学 | 适用于hevc标准的熵编码上下文概率模型建模模块设计方法 |
CN113038140A (zh) * | 2019-12-24 | 2021-06-25 | 扬智电子科技(中国)有限公司 | 视频解码方法与视频解码装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1909664A (zh) * | 2005-08-04 | 2007-02-07 | 华为技术有限公司 | 一种基于内容自适应的算术解码***及装置 |
CN102547294A (zh) * | 2012-02-16 | 2012-07-04 | 复旦大学 | 适用于h.264和hevc视频标准的cabac硬件解码器架构 |
WO2013108639A1 (en) * | 2012-01-19 | 2013-07-25 | Sharp Kabushiki Kaisha | High throughput coding for cabac in hevc |
WO2013153820A1 (en) * | 2012-04-11 | 2013-10-17 | Sharp Kabushiki Kaisha | Golomb-rice/eg coding technique for cabac in hevc |
-
2014
- 2014-03-18 CN CN201410100270.XA patent/CN103826120B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1909664A (zh) * | 2005-08-04 | 2007-02-07 | 华为技术有限公司 | 一种基于内容自适应的算术解码***及装置 |
WO2013108639A1 (en) * | 2012-01-19 | 2013-07-25 | Sharp Kabushiki Kaisha | High throughput coding for cabac in hevc |
CN102547294A (zh) * | 2012-02-16 | 2012-07-04 | 复旦大学 | 适用于h.264和hevc视频标准的cabac硬件解码器架构 |
WO2013153820A1 (en) * | 2012-04-11 | 2013-10-17 | Sharp Kabushiki Kaisha | Golomb-rice/eg coding technique for cabac in hevc |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104918048B (zh) * | 2015-06-03 | 2018-04-03 | 复旦大学 | 适用于hevc标准的熵编码上下文概率模型建模模块设计方法 |
CN105657421A (zh) * | 2016-01-15 | 2016-06-08 | 珠海全志科技股份有限公司 | 8x8残差系数块编码方法及*** |
CN105657421B (zh) * | 2016-01-15 | 2018-08-31 | 珠海全志科技股份有限公司 | 8x8残差系数块编码方法及*** |
CN113038140A (zh) * | 2019-12-24 | 2021-06-25 | 扬智电子科技(中国)有限公司 | 视频解码方法与视频解码装置 |
US11431978B2 (en) | 2019-12-24 | 2022-08-30 | Ali Corporation | Video decoding method and video decoding device for improving decoding efficiency |
CN113038140B (zh) * | 2019-12-24 | 2024-05-28 | 扬智电子科技(成都)有限公司 | 上下文适应性二进制算术编码的视频解码方法与其视频解码装置 |
Also Published As
Publication number | Publication date |
---|---|
CN103826120B (zh) | 2017-04-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
RU2758037C2 (ru) | Кодирование изображений с малой задержкой | |
CN102231830B (zh) | 用于上下文算术编解码的运算单元 | |
CN104041031A (zh) | 视频编码和解码方法和使用该方法的装置 | |
CN107071494B (zh) | 视频图像帧的二进制语法元素的生成方法和*** | |
CN103621079A (zh) | 帧内预测方法以及使用该方法的编码器和解码器 | |
US9001882B2 (en) | System for entropy decoding of H.264 video for real time HDTV applications | |
CN103563380A (zh) | 减少用于视频处理的行缓冲的方法及装置 | |
US20160142740A1 (en) | Data encoding and decoding | |
CN104025594A (zh) | 视频编码中的瓦片大小 | |
US20130188694A1 (en) | Method of determining binary codewords for transform coefficients | |
CN104581154B (zh) | 一种熵编码方法和熵编码器电路 | |
CN106576168A (zh) | 图像压缩解压缩装置 | |
CN103826120A (zh) | 一种适用于hevc的码流解析器 | |
CN102547294A (zh) | 适用于h.264和hevc视频标准的cabac硬件解码器架构 | |
GB2534409A (en) | Data encoding and decoding | |
KR102661314B1 (ko) | 이미지 및 비디오 코딩을 위한 고정밀 변환 및 양자화 | |
CN101267559A (zh) | 视频解码器的通用熵解码方法及装置 | |
Tsai et al. | Encoder hardware architecture for HEVC | |
CN102075746B (zh) | 一种视频宏块解码方法及装置 | |
CN101646083B (zh) | 一种avs视频码流解析*** | |
RU2784930C1 (ru) | Кодирование изображений с малой задержкой | |
RU2785714C1 (ru) | Кодирование изображений с малой задержкой | |
EP2777279B1 (en) | Method of determining binary codewords for transform coefficients | |
CN105847801A (zh) | 具有新颖的二进制元素译码多标准视频译码器 | |
Guo et al. | An improved CAVLC entropy encoder of H. 264/AVC and FPGA implementation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |