一种适用于hevc的码流解析器的制造方法

文档序号:7799293阅读:247来源:国知局
一种适用于hevc的码流解析器的制造方法
【专利摘要】本发明涉及一种适用于HEVC的码流解析器,包括码流解析状态控制模块、EG0解码模块、相邻上块信息及相关参数存储单元、解码输出存储单元、码流FIFO和CABAC解码模块;所述EG0是指0阶顺序指数哥伦布;所述的码流FIFO通过缓冲位移分别与所述CABAC解码模块和EG0解码模块相连,所述EG0解码模块通过码流解析状态控制模块与所述CABAC解码模块相连;所述EG0解码模块通过相邻上块信息及相关参数存储单元与所述CABAC解码模块相连。本发明的码流解析器根据HEVC标准中的语法元素划分重新设计状态机,能够极大的挑高数据吞吐量;同时增加了编码树单元上下文变量以及独立片段上下文变量的存储及相应的同步逻辑,能够实现HEVC标准中规定的非独立片段上下文变量以及需要同步的编码树单元上下文变量的同步功能。
【专利说明】—种适用于HEVC的码流解析器
【技术领域】
[0001]本发明涉及一种适用于HEVC的码流解析器,属于数字视频信号编解码的【技术领域】。
【背景技术】
[0002]HEVC (High Efficiency Video Codec)是目前由国际电信组织(ITU)和运动图像专家组(MPEG)联合制定中的新一代国际视频编码标准。与现在的国际视频标准H.264/AVC相比,HEVC能保证在相同图像质量的前提下,将视频的码率降低50%。但相应的,HEVC的计算复杂度提高了 2至3倍。与H.264相比,HEVC的编码方式只有O阶顺序指数哥伦布编码以及CABAC编码两种,不再使用CAVLC编码。与H.264 一样,HEVC中码流解析的瓶颈仍然是CABAC解码。
[0003]与H.264中的CABAC编码先比,HEVC中的CABAC编码在语法元素的划分以及相应发编解码方式上进行了改进。附图1中展示了 HEVC中使用CABAC编码的语法元素。这些语法元素描述了编码的像素块的编码单元(CU)、预测单元(PU)、转化单元(TU)以及环路滤波器(LF)的特性。对于CU来说,这些语法元素描述了块的结构以及该CU的预测模式(帧内或帧间);对于PU,表格中的语法元素描述的是帧内预测模式以及一系列的运动信息;对于TU,主要包含残差矩阵的变化系数、符号等信息;LF语法元素在每一个最大编码单元LCU中传输一次,描述了环路滤波中SAO的类型和偏移量。这些改进使得CABAC模块能够有更大的数据吞吐量,但也导致了解码过程的变动。
[0004]出来上述变化之外,在具体的CABAC解码过程中,HEVC中的初始化模块增加了上下文变量的存储及同步功能,这一变化导致当前的H.264中的CABAC节解码模块不再适用。

【发明内容】

[0005]针对现有技术的不足,本发明涉及一种适用于HEVC的码流解析器。
[0006]本发明的技术方案如下:
[0007]本发明涉及一种适用于HEVC的码流解析器,包括码流解析状态控制模块、EGO解码模块、相邻上块信息及相关参数存储单元、解码输出存储单元、码流FIFO和CABAC解码模块;所述EGO是指O阶顺序指数哥伦布;
[0008]所述的码流FIFO通过缓冲位移分别与所述CABAC解码模块和EGO解码模块相连,所述EGO解码模块通过码流解析状态控制模块与所述CABAC解码模块相连;所述EGO解码模块通过相邻上块信息及相关参数存储单元与所述CABAC解码模块相连;
[0009]所述CABAC解码模块包括CABAC算术解码、输出模块和CABAC状态控制;所述CABAC算术解码通过输出模块与所述解码输出存储单元相连;所述ABAC算术解码与所述CABAC状态控制相连,所述CABAC状态控制通过输出模块与所述解码输出存储单元相连;
[0010]所述缓冲位移与所述CABAC算术解码相连,所述相邻上块信息及相关参数存储单元与所述CABAC状态控制相连;[0011]所述码流解析状态控制模块是整个码流解析器的控制中心,根据HEVC标准上规定的码流成分及相应的解析顺序,所述码流解析状态控制模块协调EGO解码模块和CABAC解码模块的工作,完成相应语法元素的解码操作;
[0012]所述EGO解码模块用于完成使用O阶顺序指数哥伦布编码的语法元素的解码操作,具体包括有符号型和无符号型两种;
[0013]所述相邻上块信息及相关参数存储单元采用SRAM来实现,用于存储以下信息:
[0014](I)相邻上块的语法元素值,这些语法元素的值用于计算相应语法元素的模型索引增量:在每解完一个宏块语法元素值后更新相邻上块信息SRAM中相应位置的语法元素值;通过即时动态更新,可避免存储两行宏块的句法元素值,进而节省存储空间,而同时又不影响模型索引增量值的计算;
[0015](2)用于CABAC解码过程中需要的相关参数:包括序列参数集、图像参数集以及片头语法元素值;
[0016]所述解码输出存储单元,用于存储CABAC解码输出的残差矩阵及运动信息;由于数据量很大,所以采用SRAM来实现,同时,为了降低延时,实现与反量化、反变换等模块的协同工作,采用两个SRAM来实现乒乓操作模式,例如,当CABAC输出模块往SRAMl中写入数据时,反量化/反变换模块从SRAM2中读取残差系数值。通过这样的实现,能够使各模块同时运行;
[0017]所述码流FIFO,用于暂时存储码流信息,同时实现码流信息的异步存取;
[0018]所述CABAC解码模块,用于实现使用CABAC编码的语法元素的解码操作:包括CABAC算术解码模块、CABAC状态控制模块以及输出模块。
[0019]根据本发明优选的,所述CABAC算术解码模块包括算术解码及重归一化单元和上下文模型管理单元;
[0020]上述算术解码及重归一化单元包括常规解码逻辑、旁路解码逻辑以及终止解码逻辑,该单元全部由组合逻辑实现;该单元通过HEVC标准中规定的解码类型来选择相应解码方式进行解码,同时更新当前区间宽度、区间偏置以及上下文变量;
[0021]上述上下文模型管理单元在解析一个新的slice、新的tile以及新的一行CTU时会按照各自相应的初始化流程完成各上下文模型的初始化或者同步以及算术解码引擎的初始化;同时,该单元还能按照存储要求,将将相应的CTU以及slice segment的上下文变量存到相应的寄存器中;为了提高解码速度,需要在一个时钟周期内完成上下文模型信息的更新,并获得下一个欲解比特需要的上下文模型信息。该管理单元由CABAC状态控制模块进行控制,每个时钟读入算术解码单元更新后的上下文模型值,同时输出解码需要的上下文模型值。当读入和输出的上下文模型相同时,算术解码单元将直接使用更新后的上下文模型值(即管理单元读入的模型值)),这样,可避免一个时钟的等待;
[0022]上述CABAC状态控制模块用于根据标准上规定的码流成分及解码顺序,控制状态跳转,同时控制相应的上下文变量的更新及读取,来完成相应的CABAC解码操作;
[0023]上述输出模块用于实现对CABAC解码的结果的输出控制。
[0024]根据本发明优选的,所述EGO解码模块的解码方式包括有符号型和无符号型两种,该解析器采用硬件中固化查找表的方式来实现上述两种解码方式。为了提高解码效率,本发明中采用硬件中固化查找表的方式来实现这两种解码方式。[0025]根据本发明优选的,所述码流FIFO宽度为8位。方便CABAC模块的使用。
[0026]本发明的优势:
[0027]与现有技术相比,本发明所述的码流解析器适用于HEVC中改进的的语法元素解析过程,并且其CABAC解码过程符合HEVC的要求。
[0028]本发明的码流解析器根据HEVC标准中的语法元素划分重新设计状态机,能够极大的挑高数据吞吐量;同时增加了编码树单元上下文变量以及独立片段上下文变量的存储及相应的同步逻辑,能够实现HEVC标准中规定的非独立片段上下文变量以及需要同步的编码树单元上下文变量的同步功能。同时,本发明的码流解析器的子模块划分合理,能够实现码流的读取、解码、输出的流水线操作,极大的提高解码效率。
【专利附图】

【附图说明】
[0029]图1是HEVC中使用CABAC编码的语法元素划分;
[0030]图2是HEVC码流解析器的硬件架构。
【具体实施方式】
[0031]下面结合附图对本发明进一步详细说明,但不限于此。
[0032]实施例、
[0033]一种适用于HEVC的码流解析器,包括码流解析状态控制模块、EGO解码模块、相邻上块信息及相关参数存储单元、解码输出存储单元、码流FIFO和CABAC解码模块;所述EGO是指O阶顺序指数哥伦布;
[0034]所述的码流FIFO通过缓冲位移分别与所述CABAC解码模块和EGO解码模块相连,所述EGO解码模块通过码流解析状态控制模块与所述CABAC解码模块相连;所述EGO解码模块通过相邻上块信息及相关参数存储单元与所述CABAC解码模块相连;
[0035]所述CABAC解码模块包括CABAC算术解码、输出模块和CABAC状态控制;所述CABAC算术解码通过输出模块与所述解码输出存储单元相连;所述ABAC算术解码与所述CABAC状态控制相连,所述CABAC状态控制通过输出模块与所述解码输出存储单元相连;
[0036]所述缓冲位移与所述CABAC算术解码相连,所述相邻上块信息及相关参数存储单元与所述CABAC状态控制相连;
[0037]所述码流解析状态控制模块是整个码流解析器的控制中心,根据HEVC标准上规定的码流成分及相应的解析顺序,所述码流解析状态控制模块协调EGO解码模块和CABAC解码模块的工作,完成相应语法元素的解码操作;
[0038]所述EGO解码模块用于完成使用O阶顺序指数哥伦布编码的语法元素的解码操作,具体包括有符号型和无符号型两种;
[0039]所述相邻上块信息及相关参数存储单元采用SRAM来实现,用于存储以下信息:
[0040](I)相邻上块的语法元素值,这些语法元素的值用于计算相应语法元素的模型索引增量:在每解完一个宏块语法元素值后更新相邻上块信息SRAM中相应位置的语法元素值;通过即时动态更新,可避免存储两行宏块的句法元素值,进而节省存储空间,而同时又不影响模型索引增量值的计算;
[0041](2)用于CABAC解码过程中需要的相关参数:包括序列参数集、图像参数集以及片头语法元素值;
[0042]所述解码输出存储单元,用于存储CABAC解码输出的残差矩阵及运动信息;由于数据量很大,所以采用SRAM来实现,同时,为了降低延时,实现与反量化、反变换等模块的协同工作,采用两个SRAM来实现乒乓操作模式,例如,当CABAC输出模块往SRAMl中写入数据时,反量化/反变换模块从SRAM2中读取残差系数值。通过这样的实现,能够使各模块同时运行;
[0043]所述码流FIFO,用于暂时存储码流信息,同时实现码流信息的异步存取;
[0044]所述CABAC解码模块,用于实现使用CABAC编码的语法元素的解码操作:包括CABAC算术解码模块、CABAC状态控制模块以及输出模块。
[0045]所述CABAC算术解码模块包括算术解码及重归一化单元和上下文模型管理单元;
[0046]上述算术解码及重归一化单元包括常规解码逻辑、旁路解码逻辑以及终止解码逻辑,该单元全部由组合逻辑实现;该单元通过HEVC标准中规定的解码类型来选择相应解码方式进行解码,同时更新当前区间宽度、区间偏置以及上下文变量;
[0047]上述上下文模型管理单元在解析一个新的slice、新的tile以及新的一行CTU时会按照各自相应的初始化流程完成各上下文模型的初始化或者同步以及算术解码引擎的初始化;同时,该单元还能按照存储要求,将将相应的CTU以及slice segment的上下文变量存到相应的寄存器中;为了提高解码速度,需要在一个时钟周期内完成上下文模型信息的更新,并获得下一个欲解比特需要的上下文模型信息。该管理单元由CABAC状态控制模块进行控制,每个时钟读入算术解码单元更新后的上下文模型值,同时输出解码需要的上下文模型值。当读入和输出的上下文模型相同时,算术解码单元将直接使用更新后的上下文模型值(即管理单元读入的模型值)),这样,可避免一个时钟的等待;
[0048]上述CABAC状态控制模块用于根据标准上规定的码流成分及解码顺序,控制状态跳转,同时控制相应的上下文变量的更新及读取,来完成相应的CABAC解码操作;
[0049]上述输出模块用于实现对CABAC解码的结果的输出控制。
[0050]所述EGO解码模块的解码方式包括有符号型和无符号型两种,该解析器采用硬件中固化查找表的方式来实现上述两种解码方式。为了提高解码效率,本发明中采用硬件中固化查找表的方式来实现这两种解码方式。
[0051]所述码流FIFO宽度为8位。方便CABAC模块的使用。
[0052]本发明的码流解析器根据HEVC标准规定的语法元素划分(如图1所示),重新规划状态机能够做到以下几点,从而提高数据的吞吐量:
[0053](I)减少bin的总量:HEVC标准规定的语法元素划分,可以通过改变二进制化方式、推测某些bin的值以及设置更高级的标志(flag)避免信息冗余等方式来降低需要处理的bin的总量,从而变相的提高数据吞吐量;
[0054](2)减少上下文选择的依赖性;由于上下文选择过程中的数据依赖性,循环解码多个bin (这里指一位二进制)需要大量预测操作。减少此类依赖性可以简化上下文选择的过程并减少并行处理多个bins所需要的预测操作数量;
[0055](3)减少解析的依赖性=CABAC解析本身就是一个瓶颈,因此应该尽量减少对其它任何可能造成CABAC中止的视频编码模块的依赖性。当然,理想情况下是将解析流程完全同其它过程独立开来;[0056](4)减少内存需求:对内存的访问通常会增加路径延时,因此减少内存存取操作很有必要,同时,这样做还可以减少成本、降低功耗。
【权利要求】
1.一种适用于HEVC的码流解析器,其特征在于,该解析器包括码流解析状态控制模块、EGO解码模块、相邻上块信息及相关参数存储单元、解码输出存储单元、码流FIFO和CABAC解码模块;所述EGO是指O阶顺序指数哥伦布; 所述的码流FIFO通过缓冲位移分别与所述CABAC解码模块和EGO解码模块相连,所述EGO解码模块通过码流解析状态控制模块与所述CABAC解码模块相连;所述EGO解码模块通过相邻上块信息及相关参数存储单元与所述CABAC解码模块相连; 所述CABAC解码模块包括CABAC算术解码、输出模块和CABAC状态控制;所述CABAC算术解码通过输出模块与所述解码输出存储单元相连;所述ABAC算术解码与所述CABAC状态控制相连,所述CABAC状态控制通过输出模块与所述解码输出存储单元相连; 所述缓冲位移与所述CABAC算术解码相连,所述相邻上块信息及相关参数存储单元与所述CABAC状态控制相连; 所述码流解析状态控制模块是整个码流解析器的控制中心,根据HEVC标准上规定的码流成分及相应的解析顺序,所述码流解析状态控制模块协调EGO解码模块和CABAC解码模块的工作,完成相应语法元素的解码操作; 所述EGO解码模块用于完成使用O阶顺序指数哥伦布编码的语法元素的解码操作,具体包括有符号型和无符号型两种; 所述相邻上块信息及相关参数存储单元采用SRAM来实现,用于存储以下信息: (I)相邻上块的语法元素 值,这些语法元素的值用于计算相应语法元素的模型索引增量:(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的码流解析器,其特征在于,所述EGO解码模块的解码方式包括有符号型和无符号型两种,该解析器采用硬件中固化查找表的方式来实现上述两种解码方式。
4.根据权利要求1所述的一种适用于HEVC的码流解析器,其特征在于,所述码流FIFO宽度为8位。`
【文档编号】H04N19/44GK103826120SQ201410100270
【公开日】2014年5月28日 申请日期:2014年3月18日 优先权日:2014年3月18日
【发明者】周莉, 汪建军, 孙涛, 马召宾, 董启凡, 邱守彬 申请人:山东大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1