一种高效视频编码码率估计装置及方法与流程

文档序号:19150383发布日期:2019-11-16 00:01阅读:303来源:国知局
一种高效视频编码码率估计装置及方法与流程

本发明涉及一种高效视频编码码率估计装置及方法,特别是涉及一种适用于高效视频编码硬件编码器的码率估计装置及方法。



背景技术:

为了支持下一代的高清视频应用,联合视频编码组(jointcollaborativeteamonvideocoding,jvt-vc)提出了高效视频编码(highefficiencyvideocoding,hevc)作为新一代的通用视频编码标准。借助可扩展的4叉树分解及各类先进的编码工具,hevc可以适应多变的分辨率/终端/场景,并能够在一半的比特率下提供接近于先进视频编码(advancedvideocoding,avc)质量的视频。

在这些先进编码工具中,率失真优化方法(rate-distortionoptimization,rdo)是重要的一项。rdo引入编码过程自avc起,但在hevc中rdo的应用范围更为广泛,其贯穿hevc的整个编码流程。

对于一个有损视频编码标准,码率与失真通常为负相关。更高的压缩率带来更低的码率但同时会增加失真,反之亦然。为了做出适当的折衷,考虑拉格朗日率失真(rate-distortion,rd)公式:

j=d+λr

其中j为代价,d为失真,r为码率(率),λ为拉格朗日系数,则rdo过程即调整编码过程使j最小化的过程。在理想情况下,一个hevc需要为每个ctu(codingtreeunit,编码树单元)的每一种可能的模式,包括不同的cu/pu/tu层次化分割以及帧内/帧间预测模式计算对应的j并选择j最小的模式,即所谓rdo模式判决。但一般而言,对于实际的硬件编码器而言这个运算量过于庞大因而是不可能做到的。有许多的研究讨论如何在尽量少的编码性能损失的前提下降低需要计算的模式总数,在此不再赘述其细节。但即便如此,对于一个需要执行实时高清视频编码的典型hevc硬件编码器而言,rdo模式判决仍然会成为整个编码器的吞吐率瓶颈。

对于hevc而言,一个ctu的总代价通常可以分为残差代价及边带信息代价。残差代价的基本对象为变换块(transformblock,tb),包含了编码的残差系数引入的代价,边带信息代价包括了编码码流中其余信息的开销,譬如cu(codingunit,编码单元)/pu(predictionunit,预测单元)/tu(transformunit,变换单元)的分割信息预测模式或者mv(motionvector,运动矢量)等等。

接下来考虑j的计算过程,由于λ为事先确定的常数,因此为了计算每一个tb的代价j,需要知道失真d与码率r。

其中,失真d为重构值与原始值的差平方和(sumofsquareddifference,ssd),由于hevc所使用的整数变换存在近似正交性,因此也可以直接在变换域中计算,性能影响很小(<0.5%)。失真d的计算易于并行化,因此可以容易的满足高吞吐率硬件编码器的需求,细节在此不再赘述。需要注意的是,仅有残差代价包含失真d,边带信息并不对应失真d或者说其d总是0。

另一方面,为了获得r,需要知道每一个tb在量化后被编码为码流后实际尺寸。但hevc采用了基于句法的上下文自适应二进制算术编码(syntax-basedcontext-adaptivebinaryarithmeticcoding,scabac),率的估计是一个较为复杂的问题:

由于二值化以及算术编码本身强烈的上下文依赖关系,同一语法元素在不同的上下文中会生成不同的码字,并导致不同的率。导致hevc所使用的scabac在本质上只能串行的逐个计算语法元素的率并更新上下文模型才能获得精确的率。这一串行计算的本质妨碍了hevc率计算的并行化。这一问题对于残差代价尤其严重,因为残差代价相关于像素,而边带信息代价通常相关于图像块或者图像块以上结构的信息。因此残差代价需要执行的scabac语法元素计算总数占据了rdo模式判决所需率计算的主要部分,而无法并行化将使吞吐率收到严重影响。相对的,由于更低的吞吐率要求,边带信息的代价计算则相对简单且易于实现。因此本发明着重关注残差代价的计算过程。

由于实际的hevc硬件编码器实现而言,rdo都是其吞吐率瓶颈所在,码率估计的吞吐率不足对于其实现是很不利的。因此在通常的hevc硬件实现一般使用不精确的近似码率估计来计算r,通过某种不依赖上下文的方式来估计平均情况下某个tb会产生的码字长度,如图1所示为现有的hevc硬件编码器的rdo模式判决部分的典型结构示意图,其使用了频域计算失真的方案,当然使用其他方案如在空域计算失真并不影响,具体地,对于一个tb,首先生成其残差,并使用整数变换引擎将其变换至频域,随后将频域的变换系数传送至量化引擎进行量化,量化后的变换系数传送至近似码率估计模块以及反量化模块。反量化模块根据量化后的变换系数进行反量化生成变换系数(重构),以对应解码器端解码生成的变换系数值。近似码率估计模块对残差码率进行估计。代价计算模块接收变换系数以及变换系数(重构)并计算失真,失真被发送至代价计算模块,代价计算模块根据失真与码率,由拉格朗日公式计算残差代价,残差代价被送至模式判决模块。模式判决模块根据残差代价以及来自其他模块根据预测信息以及其他边带信息计算出其他相关代价进而比较各个模式的总代价,此处其他相关代价指与本变换块tb相关的预测以及边带信息代价,模式判决选择总代价最小的模式从而完成rdo模式判决。

可见,在现有技术中,通过使用不精确的近似码率估计来计算r,通过某种不依赖上下文的方式来估计平均情况下某个tb会产生的码字长度,由此不同系数的码率计算可以并行化,这解决了吞吐率问题,但无疑会引入性能损失,相比基于精确码率的rdo,近似码率估计在jct-vc场景下会引入大约3%的bd-rate(bjontegaarddeltarate,bjontegaard率差值)增加。



技术实现要素:

为克服上述现有技术存在的不足,本发明之目的在于提供一种高效视频编码码率估计装置及方法,以在高吞吐率的前提下获得与精确码率计算接近的编码性能,从而更适用于硬件hevc编码器等需要高吞吐率的场合。

为达上述及其它目的,本发明提出一种高效视频编码码率估计装置,包括:

码率估计模式选择模块,用于获取量化后的变换系数,估计其运算量及处理时间,并以预设的准则判断码率估计操作由近似码率估计模块完成还是精确码率计算模块完成,输出控制信号控制近似码率估计模块、精确码率计算模块以及选择模块;

近似码率估计模块,用于获取量化后的变换系数以及来自所述码率估计模式选择模块的控制信号,使用近似码率估计算法估计量化后的变换系数的码率;

精确码率计算模块,用于获取量化后的变换系数、来自上下文缓冲的上下文模型、来自所述码率估计模式选择模块的控制信号以及模式判决模块的输出,根据量化后的变换系数以及上下文模型计算量化后的变换系数的精确码率;

选择模块,用于接收来自所述码率估计模式选择模块的控制信号、来自所述近似码率估计模块的码率以及来自所述精确码率计算模块的码率,并根据控制信号选择两个码率中的一个,将其送至代价计算模块;

上下文缓冲模块,用于向所述精确码率计算模块提供上下文模型。

进一步地,所述预设的准则包括但不限于所述精确码率计算模块的处理时间或预期进行精确码率计算以及近似码率估计的功耗差异或预期近似码率估计的预测误差和/或正在处理的变换块的尺寸。

进一步地,所述精确码率计算模块于其内部实现一个cabac编码器的码字长度计算算法,根据输入的量化后的变换系数以及上下文模型计算量化后的变换系数的精确码率。

进一步地,所述精确码率计算模块还根据上下文更新算法更新上下文模型,并将其保存至上下文缓冲模块。

进一步地,所述精确码率计算模块于接受到来自模式判决模块的最优模式输入时,根据最优模式从输入的上下文模型中挑选对应的上下文模型,并根据输入的量化后的变换系数更新此上下文模型,并将其保存至上下文缓冲。

进一步地,当预期精确码率计算时间过长时,所述码率估计模式选择模块将计算工作交由所述近似码率估计模块进行并关闭所述精确码率计算模块,或同时所述启动近似码率估计/精确码率计算模块,并在适当时刻打断所述精确码率计算模块的计算。

为达到上述目的,本发明还提供一种高效视频编码码率估计方法,包括如下步骤:

步骤一,利用码率估计模式选择模块获取量化后的变换系数,估计其运算量及处理时间,并以预设的准则判断码率估计操作由近似码率估计模块完成还是精确码率计算模块完成,输出控制信号控制近似码率估计模块、精确码率计算模块以及选择模块;

步骤二,所述近似码率估计模块于获取量化后的变换系数以及来自码率估计模式选择模块的控制信号,使用近似码率估计算法估计量化后的变换系数的码率,并送至选择模块;

步骤三,所述精确码率计算模块根据获取到的量化后的变换系数、来自上下文缓冲的上下文模型、来自码率估计模式选择模块的控制信号以及模式判决模块的输出,根据输入的量化后的变换系数以及上下文模型计算量化后的变换系数的精确码率;

步骤四,所述选择模块于接收来自码率估计模式选择模块的控制信号、来自近似码率估计模块的码率以及来自精确码率计算模块的码率后,根据控制信号选择两个码率中的一个,将其送至代价计算模块。

进一步地,于步骤一中,所述预设的准则包括但不限于所述精确码率计算模块的处理时间或预期进行精确码率计算以及近似码率估计的功耗差异或预期近似码率估计的预测误差和/或正在处理的变换块的尺寸。

进一步地,于步骤三中,所述精确码率计算模块于其内部实现一个cabac编码器的码字长度计算算法,根据输入的量化后的变换系数以及上下文模型计算量化后的变换系数的精确码率。

进一步地,于步骤三中,所述精确码率计算模块还根据上下文更新算法更新上下文模型,并将其保存至上下文缓冲模块。

与现有技术相比,本发明一种高效视频编码码率估计装置及方法通过利用码率估计模式选择模块、近似码率估计模块、精确码率计算模块、上下文缓冲模块以及选择模块共同作用,可以在高吞吐率的前提下获得与精确码率计算接近的编码性能,从而更适用于硬件hevc编码器等需要高吞吐率的场合。

附图说明

图1为现有的hevc硬件编码器的rdo模式判决部分的典型结构示意图;

图2为本发明一种高效视频编码码率估计装置的系统架构图;

图3为应用本发明后硬件hevc编码器中rdo模式判决逻辑的典型结构示意图;

图4为本发明一种高效视频编码码率估计方法的步骤流程图;

图5为本发明本发明实施例在jct-vc上进行的性能测试结果示意图。

具体实施方式

以下通过特定的具体实例并结合附图说明本发明的实施方式,本领域技术人员可由本说明书所揭示的内容轻易地了解本发明的其它优点与功效。本发明亦可通过其它不同的具体实例加以施行或应用,本说明书中的各项细节亦可基于不同观点与应用,在不背离本发明的精神下进行各种修饰与变更。

图2为本发明一种高效视频编码码率估计装置的系统架构图。如图2所示,本发明一种高效视频编码码率估计装置,包括:

码率估计模式选择模块201,用于获取量化后的变换系数,估计其运算量及处理时间,并以预设的准则判断码率估计操作由近似码率估计模块202完成还是精确码率计算模块203完成,输出控制信号控制近似码率估计模块202、精确码率计算模块203以及选择模块204。所述预设的准则可以是但不限于精确码率计算模块203的处理时间、预期进行精确码率计算以及近似码率估计的功耗差异、预期近似码率估计的预测误差和/或正在处理的变换块tb的尺寸等等各种特征进行的判断。

近似码率估计模块202,用于获取量化后的变换系数以及来自码率估计模式选择模块201的控制信号,使用一个近似码率估计算法估计量化后的变换系数的码率。具体近似码率估计算法本发明不做限制,各类近似码率算法均可使用。

精确码率计算模块203,用于获取量化后的变换系数、来自上下文缓冲的上下文模型、来自码率估计模式选择模块的控制信号以及模式判决模块的输出,其内部实现一个cabac(context-basedadaptivebinaryarithmeticcoding,基于上下文的自适应二进制算术编码)编码器的码字长度计算算法,根据输入的量化后的变换系数以及上下文模型计算量化后的变换系数的精确码率,同时根据上下文更新算法更新上下文模型,并将其保存至上下文缓冲模块,具体地,当接受来自模式判决模块的最优模式输入时,精确码率计算模块203根据最优模式从输入的上下文模型中挑选对应的上下文模型,并根据输入的量化后的变换系数更新此上下文模型,并将其保存至上下文缓冲。

选择模块204,用于接收来自码率估计模式选择模块的控制信号、来自近似码率估计模块的码率以及来自精确码率计算模块的码率,并根据控制信号选择两个码率中的一个,将其送至代价计算模块。

上下文缓冲模块205,用于向精确码率计算模块203提供上下文模型,并于精确码率计算模块203更新后予以保存。

图3为应用本发明后硬件hevc编码器中rdo模式判决逻辑的典型结构示意图。如图3所示。虚线上方的模块与图2的对应模块相同,具体不再赘述。具体地,变换系数(量化后)被送到码率估计模式选择模块、近似码率估计模块以及精确码率计算模块。其中,近似码率估计模块接受变换系数(量化)以及来自码率估计模式选择模块的控制信号,具体可使用近似码率估计算法,本发明不以此为限;精确码率计算模块接受变换系数(量化)、来自上下文缓冲的上下文模型以及来自码率估计模式选择模块的控制信号以及来自模式判决的输出,其内部实现一个cabac编码器的码字长度计算算法,根据输入的变换系数(量化)以及上下文模型计算变换系数(量化)的精确码率,同时根据上下文更新算法更新上下文模型,并将其保存回上下文缓冲,当接受来自模式判决模块的最优模式输入时,精确码率计算模块根据最优模式从输入的上下文模型中挑选对应的上下文模型,并根据输入的变换系数(量化)更新此上下文模型,并将其保存回上下文缓冲,具体地,本实施例中精确码率计算模块吞吐率为每时钟周期处理1个变换系数(量化),因此对于一个包含n个系数的tb其最大可能的处理时间为n时钟周期。码率估计模式选择模块接受变换系数(量化),并基于处理时间进行判断,对于一个包含n个系数的tb,在本实施例中设定其处理时间不超过cn,其中c为常数。由于残差的精确码率计算不需要处理量化之后等于0的系数,因此这一判断在本实施例中等价于tb中非零系数的比例不超过c,如果超过c则选择近似码率估计模块输出的码率,反之则使用精确码率计算输出的码率。码率估计模式选择模块输出控制信号控制近似码率估计模块、精确码率计算模块以及选择模块。选择模块接受来自码率估计模式选择模块的控制信号、来自近似码率估计模块的码率以及来自精确码率计算模块的码率,并根据控制信号选择两个码率中的一个,将其送至代价计算模块。

一般的,对于高吞吐率要求的硬件编码器,处理时间是码率估计模式选择模块考虑的首要因素,这是为了保证码率估计的时间不会成为rdo模式判决过程中的瓶颈。当预期精确码率计算时间过长时,码率估计模式选择模块可以将计算工作交由近似码率估计模块进行并关闭精确码率计算模块,也可以同时启动近似码率估计/精确码率计算两个模块,并在适当时刻打断精确码率计算模块的计算,此时精确码率计算模块将会将此时的上下文状态保存入上下文模型缓冲内以待将来继续。模式判决模块完成了模式判决选出了最优模式后,精确码率计算模块根据最优模式的变换系数(量化)以及相关的最优模式在编码器进行重构操作时计算上下文模型的更新,或者从之前保存的上下文模型状态开始继续之前被打断的码率计算,这一过程是为了保证上下文状态得到正确的更新,计算完成后此上下文将作为起始的上下文模型用于下一个tb的模式精确码率计算工作。采用上述策略中的哪一种取决于各个应用的功耗优化以及重构操作占用时间等因素的综合考虑,本发明不做具体限定。

由于近似码率估计在高码率下具有更高的精度,因此本发明在很小的c时就可以获得相比近似码率估计方案显著更优的编码性能。另一方面,由于c的限制,任何一个tb的码率估计时间都不会超过cn,这显著的改善了编码器的吞吐率。如图,选择更大的c有助于改善编码性能但同时会增加码率估计的处理时间,反之亦然。本实施例中,亦可以根据应用需求选择不同的c值,在此不做赘述。

通常在硬件hevc编码器的具体实施例中,模式判决电路也会用于生成最终的编码码流以及重构参考帧等工作,因此可能还加入缓冲等逻辑用于消除重复计算或者改进计算效率,但这些改进并不影响本发明在模式判决中的应用,在此不再赘述

图4为本发明一种高效视频编码码率估计方法的步骤流程图。如图4所示,本发明一种高效视频编码码率估计方法,包括如下步骤:

步骤401,利用码率估计模式选择模块获取量化后的变换系数,估计其运算量及处理时间,并以预设的准则判断码率估计操作由近似码率估计模块完成还是精确码率计算模块完成,输出控制信号控制近似码率估计模块、精确码率计算模块以及选择模块。所述预设的准则可以是但不限于精确码率计算模块的处理时间、预期进行精确码率计算以及近似码率估计的功耗差异、预期近似码率估计的预测误差和/或正在处理的变换块tb的尺寸等等各种特征进行的判断。

步骤402,所述近似码率估计模块于获取量化后的变换系数以及来自码率估计模式选择模块的控制信号,使用一个近似码率估计算法估计量化后的变换系数的码率,并送至选择模块。具体近似码率估计算法本发明不做限制,各类近似码率算法均可使用。

步骤403,所述精确码率计算模块根据获取到的量化后的变换系数、来自上下文缓冲的上下文模型、来自码率估计模式选择模块的控制信号以及模式判决模块的输出,通过于其内部实现一个cabac编码器的码字长度计算算法,根据输入的量化后的变换系数以及上下文模型计算量化后的变换系数的精确码率,同时还根据上下文更新算法更新上下文模型,并将其保存至上下文缓冲模块,具体地,当接受来自模式判决模块的最优模式输入时,所述精确码率计算模块根据最优模式从输入的上下文模型中挑选对应的上下文模型,并根据输入的量化后的变换系数更新此上下文模型,并将其保存至上下文缓冲。

步骤404,所述选择模块于接收来自码率估计模式选择模块的控制信号、来自近似码率估计模块的码率以及来自精确码率计算模块的码率后,根据控制信号选择两个码率中的一个,将其送至代价计算模块。

图5为本发明本发明实施例在jct-vc上进行的性能测试结果示意图,其中,lp(lowdelayp),ra(randomaccess),ai(allintra)为业界常用的用于评价hevc编码器性能的码流类型或者编码器配置,图5示出了对于不同c相比近似码率估计的bd-rate改善值,c=0时等价于近似码率估计方案,c=1时等价于精确码率计算方案,如图5之本发明实施例在jct-vc上进行的性能测试结果表明,本发明的性能相比近似码率估计具有显著的编码性能优势。即使当c选择如1/8这样小的数值时,本发明相比近似码率估计仍有2%以上的bd-rate降低,而此时码率估计的运算时间只有精确码率计算的1/8。

上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何本领域技术人员均可在不违背本发明的精神及范畴下,对上述实施例进行修饰与改变。因此,本发明的权利保护范围,应如权利要求书所列。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1