包括目标比特率的视频编码速率控制和质量控制的制作方法

文档序号:11162261阅读:1069来源:国知局
包括目标比特率的视频编码速率控制和质量控制的制造方法与工艺

本申请要求在2014年9月22日提交的题为“VIDEO CODING RATE CONTROL INCLUDING TARGET BITRATE AND QUALITY CONTROL(包括目标比特率的视频编码速率控制和质量控制)”的美国专利申请第14/492,915的权益。



背景技术:

视频编码器压缩视频信息,使得可以在给定带宽上发送更多信息。然后可将所压缩的信号发送给接收器,接收器在显示之前对该信号解码或解压缩。

速率控制往往用于控制各种视频应用的生成位数。通常,应用向速率控制模块提供目标比特率和缓冲器约束。速率控制模块可使用该信息来控制编码过程,使得满足目标比特率并且不违反缓冲器约束。

当视频质量已经非常好时,此目标比特率导向方法可能浪费比特。为了解决该问题,一种解决方案是使用恒定的最小量化参数(QP)来限制由速率控制模块所生成的QP。

附图说明

在附图中通过示例而非限制的方式示出了本文所述的材料。为了简洁和明确说明,在附图中示出的元件不一定按比例绘制。例如,为了清楚起见,一些元件的尺寸可相对于其它元件被放大。另外,在适当的情况下,附图标记可在各附图中重复以指示对应和/或类似的元件。在附图中:

图1为示例视频编码系统的示意图;

图2为示出了示例目标比特率和质量控制子系统的流程图;

图3为目标比特率和质量控制子系统的示例质量导向图片QP计算部分的示意图;

图4为目标比特率和质量控制子系统的示例基于HVS的块QP图生成部分的示例图;

图5为示出示例编码过程的流程图;

图6示出了示例比特流;

图7为示出示例解码过程的流程图;

图8提供操作中的示例视频编码系统和视频编码过程的示意图;

图9为示例视频编码系统的示意图;

图10为示例系统的示意图;以及

图11为全部根据本公开的至少一些实施方案布置的示例系统的示意图。

具体实施方式

尽管以下描述阐述了可在例如诸如片上系统(SoC)架构的架构中表现的各种实施方案,但是本文所述的技术和/或布置的实施方案不限于特定架构和/或计算系统并且可由用于类似目的的任何架构和/或计算系统来实现。例如,采用例如多个集成电路(IC)芯片和/或封装和/或各种计算装置和/或诸如机顶盒、智能电话等的消费电子(CE)装置的各种架构可实现本文所述的技术和/或布置。此外,尽管以下描述可阐述诸如系统部件的逻辑实现、类型和相互关系、逻辑分区/集成选择等的许多具体细节,但是可在没有此类具体细节的情况下实施所要求保护的主题。在其它情况下,可不详细地示出诸如例如控制结构和完整软件指令序列的一些材料,以免混淆本文所公开的材料。

本文所公开的材料可在硬件、固件、软件或其任何组合中实现。本文所公开的材料也可被实现为存储在机器可读介质上的指令,其可由一个或多个处理器读取和执行。机器可读介质可包括用于以机器(例如,计算装置)可读形式存储或传送信息的任何介质和/或机制。例如,机器可读介质可包括只读存储器(ROM);随机存取存储器(RAM);磁盘存储介质;光存储介质;闪存存储装置;电、光、声音或其它形式的传播信号(例如,载波、红外信号、数字信号等)以及其它介质。

在说明书中对“一个实施方案”、“实施方案”、“示例实施方案”等的引用指示所述的实施方案可包括特定特征、结构或特性,但每个实施方案可不一定包括特定特征、结构或特性。此外,此类短语不一定指代相同的实施方案。此外,当结合实施方案描述特定特征、结构或特性时,可认为结合无论是否在本文中明确描述的其它实施方案来实现此类特征、结构或特性在本领域的技术人员的知识范围内。

下面描述包括用于包括目标比特率的视频编码速率控制和质量控制的操作的系统、装置、制品和方法。

如上所述,当视频质量已经非常好时,目标比特率导向方法可能浪费比特。为了解决该问题,一种解决方案是使用恒定的最小量化参数(QP)来限制由速率控制模块所生成的QP。然而,该方法未考虑人类视觉系统(HVS)的特性。因此,此类目标比特率导向方法不能有效地适应视频的内容,例如纹理和动作。因此,此类目标比特率导向方法可能在一些区域上浪费太多比特,并且在一些其它区域中导致较差的质量。

下面论述的实施方案旨在开发低复杂性的方法来实现目标主观质量,满足目标比特率和缓冲器约束并且同时防止浪费比特。利用所提供的目标质量,图片级分析可被用于生成图片级QP。基于基于人类视觉系统模型(HVS)的纹理和动作分析,然后生成块级QP图,使得HVS敏感区域使用较小的QP并且较不敏感的区域使用较大的QP。最后,块级QP图可被用于调整速率控制生成的QP以获得用于编码处理的最终QP。

图1为根据本公开的至少一些实施方案所布置的示例视频编码系统100的示意图。在各种实施方案中,视频编码系统100可被配置成根据一个或多个高级视频编解码器标准(诸如例如,高效视频编码(HEVC)H.265视频压缩标准)来执行视频编码和/或实施视频编解码,但不限于这方面。此外,在各种实施例中,视频编码系统100可被实现为图像处理器、视频处理器和/或媒体处理器的部分。

如本文所使用的,术语“编码器”可指代编码器和/或解码器。类似地,如本文所使用的,术语“编码”可指代经由编码器的编码和/或经由解码器的解码。例如,视频编码器103和视频解码器105都可为能够编码的编码器的示例。

在一些示例中,为了清楚起见,视频编码系统100可包括图1中未示出的另外项目。例如,视频编码系统100可包括处理器、射频类型(RF)收发器、显示器和/或天线。

此外,视频编码系统100可包括为了清楚起见而未在图1中示出的附加项目,诸如扬声器、麦克风、加速度计、存储器、路由器、网络接口逻辑等。

在一些示例中,在视频编码系统100操作期间,可以视频数据帧的形式将当前视频信息提供给视频分析模块101。当前视频帧可被分析(例如,帧类型和/或层次结构相关性可在该阶段确定)并然后被传递给残差预测模块106。残差预测模块106的输出可通过变换和量化模块108经历已知的视频变换和量化处理。变换和量化模块108的输出可被提供给熵编码模块109和去量化和逆变换模块110。熵编码模块109可输出熵编码比特流111以用于传送给对应的解码器。

在视频编码系统100的内部解码环路内,去量化和逆变换模块110可实现由变换和量化模块108进行的操作的逆,以将残差预测模块106的输出提供给残差重构模块112。本领域技术人员可以认识到,如本文所述的变换和量化模块以及去量化和逆变换模块可采用标度技术。残差重构模块112的输出可被反馈给残差预测模块106,并且也可提供给包括去块滤波器114、自适应环路滤波器118(和/或其它滤波器)、缓冲器120、动作估算模块122、动作补偿模块124和帧内预测模块126的环路。如图1所示,动作补偿模块124或帧内预测模块126的输出均与残差预测模块106的输出组合以作为去块滤波器114的输入,并且与输入至残差预测模块106的初始视频帧差分。

如下面将更详细地解释的,在一些示例中,视频编码系统100还可包括基于VBR的速率控制模块130、质量导向图片QP计算模块140、基于HVS的块QP图生成模块150和/或块QP调整模块160。在一些实施方案中,基于VBR的速率控制模块130可被配置成至少部分基于目标比特率来确定块级处的估算QP。质量导向图片QP计算模块140可被配置成至少部分基于目标质量因子来确定图片级处的目标QP。基于HVS的块QP图生成模块150可被配置成至少部分基于目标质量因子(例如,作为图片级处的所确定的粗略目标QP的细化)来确定块级处的目标QP。块QP调整模块160可至少部分基于所确定的估算QP和所确定的目标QP来确定块级处的最终QP。块级处的最终QP可在量化期间由变换和量化模块108使用。

下面论述的实施方案旨在开发低复杂性的方法来实现目标主观质量,满足目标比特率和缓冲器约束并且同时防止浪费比特。利用所提供的目标质量,图片级分析可被用于生成图片级QP。基于基于人类视觉系统模型(HVS)的纹理和动作分析,然后生成块级QP图,使得HVS敏感区域使用较小的QP并且较不敏感的区域使用较大的QP。最后,块级QP图可被用于调整速率控制生成的QP以获得用于编码处理的最终QP。

除此之外或另选地,本文所论述的方法和/或系统可被集成到高级视频编码(AVC)、高效视频编码(HEVC)、VP8视频压缩格式、VP9视频压缩格式等和/或其它视频编解码器解决方案。

如下面将更详细地论述的,视频编码系统100可被用于执行下面结合图2-8论述的各种功能中的一些或全部功能。

图2为示出根据本公开的至少一些实施方案布置的示例目标比特率和质量控制子系统200的示意图。在所示的实施方案中,目标比特率和质量控制子系统200可包括如框101中的一个或多个所示的一个或多个模块、功能或动作等。作为非限制性示例,目标比特率和质量控制子系统200将在本文参考图1和/或图9的示例视频编码系统100来描述。

在所示的实施方案中,目标比特率和质量控制子系统200可包括一个或多个模块。如上所述,在一些示例中,目标比特率和质量控制子系统200可包括基于VBR的速率控制模块130、质量导向图片QP计算模块140、基于HVS的块QP图生成模块150和/或块QP调整模块160。

在一些实施方案中,基于VBR的速率控制模块130可被配置成至少部分基于目标比特率来确定块级处的估算QP。例如,在编码开始时,可进行视频分析以提供用于基于VBR的速率控制的必要信息。基于分析,目标比特率、缓冲器充满度和即时编码信息,VBR速率控制可生成当前帧的每个编码块的估算QP。对于基于VBR的速率控制模块130,这里可以使用能够实现目标比特率并满足缓冲器约束的任何方法。

在一些实施方案中,质量导向图片QP计算模块140可被配置成至少部分基于目标质量因子来确定图片级处的目标QP。例如,在VBR速率控制处理的同时,可基于视频分析信息和目标质量在质量导向图片QP计算模块140中导出目标图片级QP。

在一些实施方案中,基于HVS的块QP图生成模块150可被配置成至少部分基于目标质量因子(例如,作为所确定的图片级的粗略目标QP的细化)来确定块级处的目标QP。例如,在目标图片级QP之上,根据基于HVS的分析来生成块QP图以提供块级处的目标QP(例如,用于每个编码块的目标QP)。

在一些实施方案中,块QP调整模块160可至少部分基于估算QP和所确定的目标QP来确定块级处的最终QP。例如,在生成块QP图之后,根据用于每个块的目标QP来调整VBR导出QP。经调整的最终QP将被发送给编码器并且用于模式判定和最终量化处理。

在一个实施方案中,VBR导出的估算QP可被目标QP进行更低限制。这意味着如果VBR导出的估算QP大于目标QP,则VBR导出的QP将被用作用于编码的最终QP。否则,目标QP将被用作用于当前块的编码的最终QP。

在另一实施方案中,可基于目标QP与VBR导出的估算QP之间的差异从目标QP导出最小QP。在此实施方案中,然后可用从目标QP导出的最小QP来对VBR导出的估算QP进行限制。

在操作中,目标比特率和质量控制子系统200可通过利用目标质量(除了目标比特率之外)作为另一个控制参数来执行速率控制。目标质量可为智能恒定质量(ICQ)因子,其可被直接映射到由视频编码标准定义的量化参数。例如,对于HEVC和AVC,ICQ因子可以在1至51的范围内,对于VP8,ICQ因子可以在1至127的范围内,以及对于VP9,ICQ因子可以在1至255的范围内。目标质量也可以为一些主观测量值,诸如完美、非常好、好、可接受和差。

图3为根据本公开的至少一些实施方案的目标比特率和质量控制子系统的示例质量导向图片QP计算部分的示意图。在所示的实施方案中,图1的系统100可实现质量导向图片QP计算方案300。

在所示的实施方案中,质量导向图片QP计算方案300可包括被配置成至少部分基于目标质量因子来确定图片级处的目标QP的一个或多个模块。例如,质量导向图片QP计算方案300可包括帧方差模块310、阈值模块320、粗略帧间/帧内预测模块330、图片级灵敏度估算模块340和/或图片QP估算模块350。

在一些实施方案中,帧方差模块310可被配置成确定帧方差。例如,帧方差模块310可至少部分基于所接收到的视频分析输出来确定帧方差。

在一些实施方案中,阈值模块320可被配置成执行阈值确定。例如,阈值模块320可至少部分基于所确定的帧方差来执行阈值确定。

在一些实施方案中,粗略帧间/帧内预测模块330可被配置成确定预测失真值。例如,粗略帧间/帧内预测模块330可至少部分基于视频分析输出的粗略帧内/帧间预测来确定预测失真值。粗略帧间/帧内预测可以为应用于下采样帧的快速帧间/帧内预测,其可被用于例如估算平均预测误差。

在一些实施方案中,图片级灵敏度估算模块340可被配置成确定图片级灵敏度估算。例如,当阈值确定指示所确定的帧方差为显著时,图片级灵敏度估算模块340可至少部分基于所确定的帧方差和所确定的预测失真来确定图片级灵敏度估算。

在一些实施方案中,图片QP估算模块350可被配置成确定图片级处的目标QP。例如,图片QP估算模块350可至少部分基于所接收到的目标品质因子以及当阈值确定指示所确定的帧方差不显著时所确定的图片级灵敏度来确定图片级处的目标QP。此外,在其它条件下,图片QP估算模块350可至少部分基于所接收到的目标品质因子以及当阈值确定指示所确定的帧方差为显著时所确定的帧方差来确定图片级处的目标QP。

在操作中,质量导向图片QP计算方案300可使用两种示例方法。第一种方法可以在图3的框图中描述。在开始时,可为每种帧类型估算初始QP值。对于AVC,帧类型可为例如帧内(I)帧、P帧、B帧和参考B帧。例如,对于HEVC,当使用分层编码结构时,帧类型与参考深度级别相关。初始QP估算可应用如下:

Initial_QP(I)=Function(target_quality) 等式(1)

Initial_QP(P)=Initial_QP(I)+OffsetP(target_quality) 等式(2)

Initial_QP(B)=Initial_QP(I)+OffsetB(target_quality) 等式(3)

其中,OffsetP()可在0至4的范围内,ICQ因子越低,OffsetP()的值可越高。其中,OffsetB()可在2至8的范围内,ICQ因子越低,OffsetB()的值可越高。

对于每个输入图片,可计算帧方差。帧方差可以基于整个帧来计算或者作为帧内的所有块方差的平均值来计算。在获得帧方差之后,可将帧方差与阈值进行比较。如果帧方差小于阈值,则可如下导出作为帧方差的函数的ΔQP:

Picture_Delta_QP=Function1(Frame_Variance) 等式(4)

Function1导出的Picture_Delta_QP可在0至4的范围内,其中,Frame_Variance越低,Picture_Delta_QP的值越高。

如果帧方差大于或等于阈值,则可如下基于帧方差和预测失真来进行图片级灵敏度估算:

Picture_Sensitivity=Function2(Frame_Variance)+Function3

(Prediction_Distortion) 等式(5)

然后可如下导出作为图片灵敏度的函数的ΔQP:

Picture_Delta_QP=Function4(Picture_Sensitivity) 等式(6)

其中,Function4导出的Picture_Delta_QP可以在-3至2的范围内,其中,Picture_Sensitivity越低,Picture_Delta_QP的值越低。

利用所导出的Picture_Delta_QP,可以如下计算图片级目标QP:

Pic_Target_QP=Initial_QP-Picture_Delta_QP 等式(7)

图4为根据本公开的至少一些实施方案的目标比特率和质量控制子系统的示例基于HVS的块QP图生成部分的示意图。在所示的实施方案中,图1的系统100可实现基于HVS的块QP图生成方案400。

在所示的实施方案中,基于HVS的块QP图生成方案400可包括一个或多个模块。例如,基于HVS的块QP图生成方案400可包括块级均值/方差和动作矢量(MV)提取模块410、人类视觉系统(HVS)灵敏度估算模块420、ΔQP生成模块440、HVS目标AP生成模块450和/或最后块确定模块460。

在一些实施方案中,块级均值/方差和动作矢量提取模块410可被配置成确定个别块的平均像素值。例如,块级均值/方差和动作矢量提取模块410可通过平均值和方差来确定各个块的平均像素值。另外,对于帧间帧中的块,也可提取所估算的动作矢量(MV)。

在一些实施方案中,人类视觉系统(HVS)灵敏度估算模块420可被配置成至少部分基于一个或多个因子来估算个别块的人类敏感度水平。例如,人类视觉系统(HVS)灵敏度估算模块420可利用以下因子中的一个或多个:相对极端的黑暗和/或相对极端的明亮区域中的变化、相对平滑区域中的变化、具有相对精细纹理的区域中的相对模糊、具有相对低动作的区域的时间变化、相对重的纹理区域的变化等和/或其组合。

在一些实施方案中,ΔQP生成模块440可被配置成至少部分基于映射个别块的估算人类敏感度水平来确定块级ΔQP。例如,ΔQP生成模块440可映射所估算的各个块的人类敏感度水平,其中,较高估算人类敏感度水平被映射到较大的ΔQP值,以及较低估算人类敏感度水平被映射到较小的ΔQP值。

在一些实施方案中,HVS目标QP产生模块450可被配置成确定块级处的目标QP。例如,HVS目标AP产生模块450可至少部分基于所确定的块级ΔQP和所确定的图片级处的目标QP(例如,作为图3中的质量导向图片QP计算方案300的输出)来确定块级处的目标QP。

在一些实施方案中,最后块确定模块460可被配置成迭代通过给定图片帧直到最后一块已被处理。

在操作中,可利用基于HVS的块QP图生成方案400来生成块级QP图。例如,在获得图片级目标QP之后,可生成块QP图。图4的框图可以描述详细的过程。首先,对于每个块,可在第一步骤中计算平均值(例如,平均像素值)和/或方差。对于帧间的块,也可提取所估算的动作矢量。

在第二步骤中,可基于以下原理来估算基于HVS的灵敏度:人眼对非常暗或非常亮的区域中的变化较不敏感;人眼对光滑区域的变化敏感;人眼对具有精细纹理的区域中的模糊敏感;人眼对具有较少动作的区域的时间变化敏感;和/或人眼对重纹理区域的变化较不敏感。在一个示例实施例中,基于HVS的灵敏度可被划分为10个级别,其中,级别0作为最不敏感,级别9作为最敏感。

在第三步骤中,在获得敏感级别之后,敏感级别可被映射到块ΔQP。例如,较高级别可被映射到较大的ΔQP,较低级别可被映射到较小的ΔQP(例如,ΔQP可能具有负值)。在一个示例实施例中,ΔQP可在对应于10个示例灵敏度级别的-3至6的范围内。

在第四步骤中,利用所获得的图片级目标QP和块ΔQP,当前块的目标QP可计算如下:

Block_Target_QP=Pic_Target_QP-block_Delta_QP 等式(8)

其中,上述过程可继续直到所有块被处理。例如,对于AVC和VP8,块大小可为16×16;对于HEVC和VP9,块大小可为8×8、16×16或32×32,这取决于视频分辨率;对于超高清如4K×2K或8K×4K,可以选择更大的块大小;和/或对于HD和低分辨率,16×16或8×8可能是优选的。

作为替代方法,第二方法可以使用在2014年4月30日提交的在先申请No.14/265,580“CONSTANT QUALITY VIDEO CODING(恒定质量视频编码)”中提出的QP估算方法,其公开内容在此明确地整体并入本文。

在此实施方案中,例如可基于其对整个帧的相对HVS灵敏度来调整每一宏块(MB)(例如,在AVC或CU(在HEVC中)中的每一宏块(MB))的QP。在一些示例中,可将具有高HVS灵敏度的块的帧级QP调整为较小值,以及具有低HVS灵敏度的块可使用较高QP值。在一个示例中,块预测失真及其与帧平均的比率可以被用于估算HVS灵敏度。较低的失真和小的比率(小于1)通常可表示高的HVS灵敏度。下面针对块级QP调整描述示例逐步过程:

1.对于帧内帧,可首先计算每个块的失真率。如果比率大于阈值,则块可使用帧级QP作为其最终QP。否则,可基于比率值和绝对失真值来计算偏移值。偏移可为从-1到-6。这意味着在平坦区域中的块可以使用比帧级QP小至多6的QP。

2.对于帧间帧,如果当前帧为场景变化帧,则可将帧视为用于块级QP调整的帧内帧。

3.否则,如果比率大于阈值,则可基于比率和动作矢量值来计算正偏移量。对于具有高动作值和大失真的块,偏移可以达到三,这意味着块可以使用比帧级QP小至多3的QP。如果比率大于另一阈值,则可基于比率、绝对失真和动作矢量值来计算正偏移。偏移可为从-1到-4。这意味着在平坦区域中的块间块可以使用比帧级QP小至多4的QP。

4.重复上述步骤直到帧的结束。

如上所述,可以从Block_Target_QP和VBR_QP导出minQP。导出minQP的指南可描述如下:

If VBR_QP<Block_Target_QP并且Offset1=Block_Target_QP-VBR_QP,minQP=Block_Target_QP-f(Offsetl)。在一个示例实施例中,

Offsetl=8并且f(Offsetl)=Offsetl/8 等式(9)

如下面将更详细论述的,图1的视频编码系统100、图2的目标比特率和质量控制子系统200、图3的质量导向图片QP计算方案300和/或图4的基于HVS的块QP图生成方案400可被用于执行下面结合图5-8所论述的各种功能中的一些或全部功能。

图5为示出根据本公开的至少一些实施方案布置的示例目标比特率和质量控制编码过程500的流程图。过程500可包括如操作502等中的一个或多个步骤所示的一个或多个操作、功能或动作。

过程500可开始于操作502,“至少部分基于目标比特率来确定块级处的估算QP”,在该操作中,估算QP可被确定。例如,可至少部分基于目标比特率确定块级处的估算QP。

过程500可在操作504处继续,“至少部分基于目标质量因子来确定块级处的目标QP”,在该操作中,目标QP可被确定。例如,可至少部分基于目标质量因子确定块级处的目标QP。

过程500可在操作506处“至少部分基于所确定的估算QP和所确定的目标QP来确定块级处的最终QP”继续,在该操作中,最终QP可被确定。例如,块级处的最终QP可至少部分基于所确定的估算QP和所确定的目标QP被确定。

过程500可提供视频编码,诸如视频编码、解码和/或比特流传输技术,其可由如本文所论述的编码器系统采用。

图6示出了根据本公开的至少一些实施方案布置的示例比特流600。在一些示例中,比特流600可对应于从编码器100输出的比特流111(例如参见图1所示)和/或到解码器的对应输入比特流。虽然为了清楚显示起见在图6中未示出,但在一些示例中,比特流600可包括标头部分602和数据部分604。在各种示例中,比特流600可包括如本文中所论述的与对视频帧进行编码相关联的数据、指示符、索引值、模式选择数据等。如所论述的,比特流600可由编码器生成和/或由解码器接收以用于解码,使得所解码的视频帧可经由显示装置呈现。

图7为示出根据本公开的至少一些实施方案布置的示例解码过程700的流程图。过程700可包括由操作702中的一个或多个所示的一个或多个操作、功能或动作等。过程700可形成视频编码过程的至少一部分。借助于非限制性示例,过程700可形成可由图1的编码器系统100的内部解码器环路或者相同或相似设计的解码器系统(未示出)进行的视频解码过程的至少一部分。

过程700可在操作702“接收编码比特流”开始,在该操作中,可接收视频序列的比特流。例如,如本文所论述的编码比特流可在视频解码器处接收。

过程700可在操作704“解码熵编码的比特流以生成量化的变换系数”处继续,其中,比特流可被解码以生成量化的变换系数。在一些示例中,所解码的数据可包括编码分区指示符、块大小数据、变换类型数据、量化器(Qp)、量化变换系数等和/或其组合。

过程700可在操作706“将量化器(Qp)应用于量化系数以生成变换系数的去量化块”处继续,在操作中,可将量化器(Qp)应用于量化变换系数以生成变换系数的去量化块。

过程700可在操作708“对变换系数的去量化块执行逆变换”处继续,在该操作中,可对变换系数的每个去量化块执行逆变换。例如,执行逆变换可包括类似于或相同于用于如本文所述进行编码的任何正变换的逆的逆变换过程。

过程700可在操作710“至少部分基于变换系数的去量化和逆块来生成重构分区”处继续,在操作中,可至少部分基于变换系数的去量化和逆块生成重构的预测分区。例如,可将预测分区添加到由变换系数的给定去量化和逆块表示的解码预测误差数据分区,以生成重构的预测分区。

过程700可在操作712“组合重构分区以生成平铺块或超分段”处继续,在该操作中,重构预测分区可被组合以生成平铺块或超分段。例如,可组合重构预测分区以生成平铺块或超分段。

过程700可在操作714“组合平铺块或超分段以生成完全解码的图片”处继续,在该操作中,图片的平铺块或超分段可被组合(和/或进一步处理)以生成完全解码的图片。例如,在可选过滤(例如,去块过滤、质量恢复过滤等)之后,可以组合平铺块或超片段以生成完全解码图片,其可以经由解码图片缓冲器(未示出)存储和/或在图片重组之后经由显示装置发送用于呈现。

在操作中,去量化可由图1的去量化和逆变换模块110和/或由具有对应于图1的编码器系统100的内部解码器环路的结构的解码器中的类似或相同模块来执行。类似地,在一些实施方案中,过程700的逆变换可由图1的去量化和逆变换模块110和/或由具有对应于编码器系统100的内部解码器环路的结构的解码器中的类似或相同模块系统100来执行。本领域技术人员可认识到,通过图7中的704输出的量化变换系数的标度和饱和来实现去量化;作用于去量化数据的逆变换过程可类似于操作中的108的正变换,但是具有不同的变换矩阵。

与本文所论述的过程500、700和其它过程相关的一些附加和/或替代细节可在本文所论述的实施方案的一个或多个示例中示出,并且具体地,参考下面的图8。

图8提供根据本公开的至少一些实施方案布置的示例视频编码系统900(更详细地参见图9)和操作中的视频编码过程800的示意图。在所示实施方案中,过程800可包括由动作812等中的一个或多个步骤所示的一个或多个操作、功能或动作。

借助于非限制性示例,本文将参考包括图1的编码器100的示例视频编码系统900来描述过程800,如下面关于图9进一步论述的。在各种示例中,过程800可由包括编码器和解码器的系统或者由具有使用编码器(和可选地解码器)的一个系统和使用解码器(以及可选地编码器)的另一系统的单独系统来进行。也应指出,如上所述,编码器可包括使用本地解码器作为编码器系统的一部分的本地解码环路。

如图所示,视频编码系统900(例如,参见图9的更多细节)可包括逻辑模块950。例如,逻辑模块950可包括如关于本文所述的任何编码器系统或子系统所论述的任何模块。例如,逻辑模块950可包括变换和量化逻辑模块960等。例如,变换和量化逻辑模块960可被配置成执行速率控制。

过程800可在操作812“接收视频分析输出”开始,在该操作中,可接收视频分析输出。例如,可经由基于VBR的速率控制模块802接收视频分析输出。

过程800可从操作812进行以在操作814“接收目标比特率”处继续,在该操作中,可接收目标比特率。例如,可经由基于VBR的速率控制模块802接收目标比特率。

过程800可从操作814进行以在操作816“确定VBR估算QP”处继续,在该操作中,可确定估算QP。例如,可至少部分基于所接收到的目标比特率确定在块级处的估算QP。

在一些实施方案中,基于VBR的速率控制模块802可被配置成至少部分基于目标比特率来确定块级处的估算QP。例如,在编码开始时,可进行视频分析以提供用于基于VBR的速率控制的必要信息。基于分析,目标比特率、缓冲器充满度和即时编码信息,VBR速率控制可生成当前帧的每个编码块的估算QP。对于基于VBR的速率控制模块130,这里可以使用能够实现目标比特率并满足缓冲器约束的任何方法。

在一些实施方案中,操作812-814中的一些或全部步骤可经由基于VBR的速率控制模块802来执行。

与操作812、814和/或816并行地,过程800可在操作822“接收视频分析输出”处继续,在该操作中,可接收视频分析输出。例如,可经由质量导向图片QP计算模块804来接收视频分析输出。

过程800可从操作822进行以在操作824“确定帧方差”处继续,在该操作中,可确定帧方差。例如,可至少部分基于所接收到的视频分析输出来确定帧方差。

过程800可从操作824进行以在操作826“执行阈值确定”处继续,在该操作中,可执行阈值确定。例如,可至少部分基于所确定的帧方差来执行阈值确定。

与操作824和826并行地,过程800可从操作822进行以在操作828“执行粗略帧内/帧间预测”处继续,在该操作中,可执行粗略帧间/帧内预测。例如,可至少部分基于视频分析输出的粗略帧内/帧间预测来确定预测失真值。

过程800可从操作828进行以在操作830“确定图片级灵敏度”处继续,在该操作中,可确定图片级灵敏度。例如,当阈值确定指示所确定的帧方差为显著时,可至少部分基于所确定的帧方差和所确定的预测失真来确定图片级灵敏度。

过程800可在操作832“接收目标质量因子”处继续,在该操作中,可接收目标质量因子。例如,可经由质量导向图片QP计算模块804来接收目标质量因子。

过程800可从操作826和/或830进行以在操作834“确定图片级处的目标QP”处继续,在该操作中,可确定图片级处的目标QP。例如,当阈值确定指示所确定的帧方差不显著时,可至少部分基于所接收到的目标质量因子以及所确定的图片级灵敏度来确定图片级处的目标QP。此外,在其它条件下,当阈值确定指示所确定的帧方差为显著时,可至少部分基于所接收的目标质量因子以及所确定的帧方差来确定图片级处的目标QP。

在一些实施方案中,质量导向图片QP计算模块804可被配置成至少部分基于目标质量因子来确定图片级处的目标QP。例如,在VBR速率控制处理的同时,可基于视频分析信息和目标质量在质量导向图片QP计算模块140中导出目标图片级QP。

在一些实施方案中,可经由质量导向图片QP计算模块804来执行操作822-834中的一些或全部步骤。

过程800可在操作840“确定块级方差和/或MV”处继续,在该操作中,可确定块级方差和/或动作矢量(MV)。例如,各个块的平均像素值可由平均值和方差确定。另外,对于帧间帧中的块,也可提取所估算的动作矢量(MV)。

过程800可在操作842“执行HVS灵敏度估算”处继续,在该操作中,可执行人类灵敏度水平估算。例如,可至少部分基于以下因素中的一个或多个来对各个块执行人类灵敏度水平估算:相对极端的黑暗和/或相对极端的明亮区域中的变化、相对平滑区域中的变化、具有相对精细纹理的区域中的相对模糊、具有相对低动作的区域的时间变化、相对重纹理区域的变化等和/或其组合。

过程800可在操作844“生成块ΔQP”处继续,在该操作中,可生成块级ΔQP。例如,在可至少部分基于映射所估算的各个块的人类敏感度水平来确定块级ΔQP的情况下,其中,较高估算人类敏感度水平被映射到较大的ΔQP值,以及较低估算人类敏感度水平被映射到较小的ΔQP值。

过程800可在操作846“确定块级处的目标QP图”处继续,在该操作中,可确定块级处的目标QP。例如,可至少部分基于所确定的块级ΔQP和所确定的图片级处的目标QP(例如,在操作834处作为来自质量导向图片QP计算模块804的输出)来确定块级处的目标QP。

在一些实施方案中,操作840-846中的一些或全部步骤可经由基于HVS的块QP图生成模块806来执行。

在一些实施方案中,基于HVS的块QP图生成模块806可被配置成至少部分基于目标质量因子(例如,作为所确定的图片级的粗略目标QP的细化)来确定块级处的目标QP。例如,在目标图片级QP之上,根据基于HVS的分析来生成块QP图以提供块级处的目标QP(例如,用于每个编码块的目标QP)。

过程800可在操作850“至少部分基于所估算的QP和目标QP确定块级处的最终QP”处继续,在操作中,可确定块级处的最终QP。例如,可至少部分基于所估算的QP和所确定的目标QP来确定块级处的最终QP。

在一些实施方案中,块QP调整模块808可至少部分基于估算QP和所确定的目标QP来确定块级处的最终QP。例如,在生成块QP图之后,根据用于每个块的目标QP来调整VBR导出QP。经调整的最终QP将被发送给编码器并且用于模式判定和最终量化处理。

在一个实施方案中,VBR导出的估算QP可被目标QP进行更低限制。这意味着如果VBR导出的估算QP大于目标QP,则VBR导出的QP将被用作用于编码的最终QP。否则,目标QP将被用作用于当前块的编码的最终QP。

在另一实施方案中,可基于目标QP与VBR导出的估算QP之间的差异从目标QP导出最小QP。在此实施方案中,然后可用从目标QP导出的最小QP来对VBR导出的估算QP进行限制。

在一些实施方案中,可经由块QP调整模块808执行操作850等中的一些或全部步骤。

在操作中,过程800可通过利用作为另一控制参数的目标质量(除了目标比特率之外)来执行速率控制。目标质量可为智能恒定质量(ICQ)因子,其可被直接映射到由相关视频编码标准定义的量化参数。

尽管如图所示的过程800涉及编码,但是所述的概念和/或操作可被分别应用于编码和/或解码,并且更一般地应用于视频编码。

虽然本文中的示例过程的实施方案可包括按照所示顺序进行所有操作,但是本公开在这方面不受限制,并且在各种示例中,本文的示例过程的实施方案可包括仅以与所示顺序不同的顺序执行操作的子集。另外,虽然一组特定的块或动作被示为与特定模块相关联,但是这些块或动作可与本文所示的特定模块不同的模块相关联。

本文所述的系统和/或过程的各种组件可在软件、固件和/或硬件和/或其任何组合中实现。例如,本文所述的系统和/或过程的各种组件可至少部分由计算片上系统(SoC)的硬件提供,诸如可在计算系统诸如例如智能电话中找发现的硬件。本领域的技术人员应认识到,本文所述的系统可包括在相应的附图中未示出的附加组件。

如在本文中所述的任何实施方案中所使用的,术语“模块”可指代“组件”或“逻辑单元”,如同这些术语在下面描述。因此,术语“模块”可指代被配置成提供本文描述的功能的软件逻辑、固件逻辑和/或硬件逻辑的任何组合。例如,本领域的普通技术人员应理解,由硬件和/或固件执行的操作可另选经由软件组件来实现,该软件组件可被实施为软件包、代码和/或指令集,并且还应理解逻辑单元也可利用软件的一部分来实现其功能。

如在本文中所述的任何实施方案中所使用的,术语“组件”是指被配置成提供本文所述的功能的软件逻辑和/或固件逻辑的任何组合。软件逻辑可被实施为存储由可编程电路执行的指令的软件包、代码和/或指令集和/或固件。该组件可共同地或单独地被实施为例如集成电路(IC)、片上系统(SoC)等的更大系统的一部分的实施方案。

如在本文中所述的任何实施方案中使用的,术语“逻辑单元”是指被配置成提供本文所述的功能的固件逻辑和/或硬件逻辑的任何组合。如在本文中所述的任何实施方案中使用的,“硬件”可包括例如单个硬连线电路、可编程电路、状态机电路或其任何组合和/或存储由可编程电路执行的指令的固件。逻辑单元可共同地或单独地被实施为形成较大系统,例如集成电路(IC)、片上系统(SoC)等的一部分的电路。例如,逻辑单元可在用于实现本文所述的系统的固件或硬件的逻辑电路中实施。此外,本领域的普通技术人员应理解,由硬件和/或固件执行的操作也可利用软件的一部分来实现逻辑单元的功能。

此外,本文所述的过程的任何一个或多个框可响应于由一个或多个计算机程序产品提供的指令来进行。此类程序产品可包括提供指令的信号承载介质,当由例如处理器执行时,该指令可提供本文所述的功能。计算机程序产品可以以任何形式的计算机可读介质提供。因此,例如,包括一个或多个处理器核的处理器可响应于由计算机可读介质传送到处理器的指令来进行图5、7和8所示的一个或多个块。

图9为根据本公开的至少一些实施方案所布置的示例视频编码系统900的示意图。在所示的实施方案中,尽管所示的视频编码系统900具有视频编码器902和视频解码器904两者,但在各种示例中,视频编码系统900可仅包括视频编码器902或仅包括视频解码器904。视频编码系统900(其在各种示例中可仅包括视频编码器902或仅包括视频解码器904)可包括成像装置901、天线902、一个或多个处理器906、一个或多个存储器存储908和/或显示装置910。如图所示,成像装置901、天线902、视频编码器902、视频解码器904、处理器906、存储器存储908和/或显示装置910可能够彼此通信。

在一些实施方案中,视频编码系统900可包括天线903。例如,天线903可被配置成发送或接收例如视频数据的编码比特流。处理器906可为任何类型的处理器和/或处理单元。例如,处理器906可包括不同的中央处理单元、不同的图形处理单元、集成片上系统(SoC)架构等和/或其组合。另外,存储器存储908可为任何类型的存储器。例如,存储器存储908可为易失性存储器(例如,静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)等)或非易失性存储器(例如闪存等)等等。在非限制性示例中,存储器存储908可由高速缓存存储器实现。此外,在一些实施方案中,视频编码系统900可包括显示装置910。显示装置910可被配置成呈现视频数据。

如图所示,在一些示例中,视频编码系统900可包括逻辑模块950。虽然被图示为与视频编码器902相关联,但是视频解码器904可类似地与所示的逻辑模块950相同和/或相似的逻辑模块相关联。因此,视频编码器902可包括逻辑模块950的全部或部分。例如,天线903、视频解码器904、处理器906、存储器存储908和/或显示器910可能够彼此通信和/或与逻辑模块950的部分通信。类似地,视频解码器904可包括与逻辑模块950相同和/或相似的逻辑模块。例如,成像装置901和视频解码器904可能够彼此通信和/或能够与与逻辑模块950相同和/或相似的逻辑模块通信。

在一些实施方案中,逻辑模块950可实施为关于本文所述的任何系统或子系统所论述的各种模块。例如,逻辑模块950可包括变换和量化逻辑模块960等。例如,变换和量化逻辑模块960可包括速率控制模块逻辑模块,其被配置成至少部分基于目标比特率来确定块级处的估算QP;基于人类视觉系统的块QP图生成模块,其被配置成至少部分基于目标质量因子来确定块级处的目标QP;和/或块QP调整模块,其被配置成至少部分基于所确定的估算QP和所确定的目标QP来确定块级处的最终QP。

在各种实施例中,一些逻辑模块950可用硬件实现,而软件可实现其它逻辑模块。例如,在一些实施例中,一些逻辑模块950可由专用集成电路(ASIC)逻辑实现,而其它逻辑模块可由诸如处理器906的逻辑执行的软件指令提供。然而,本公开在这方面不受限制,并且一些逻辑模块950可由硬件、固件和/或软件的任何组合来实现。

图10为根据本公开的至少一些实施方案布置的示例系统1000的示意图。在各种实施方案中,系统1000可为媒体系统,但系统1000不限于该背景。例如,系统1000可结合到个人计算机(PC)、膝上型计算机、超级膝上型计算机、平板计算机、触摸板、便携式计算机、手持式计算机、掌上计算机、个人数字助理(PDA)、蜂窝电话、组合蜂窝电话/PDA、电视、智能装置(例如智能电话、智能平板计算机或智能电视)、移动互联网装置(MID)、消息传递装置、数据通信装置、照相机(例如,点对焦照相机、超变焦照相机、数字单镜头反射(DSLR)照相机)等。

在各种实施方案中,系统1000包括耦合到显示器1020的平台1002。平台1002可从内容装置,诸如内容服务装置1030或内容递送装置1040或其它类似的内容源接收内容。包括一个或多个导航特征的导航控制器1050可被用于与例如平台1002和/或显示器1020交互。这些组件中的每者在下面更详细地描述。

在各种实施方案中,平台1002可包括芯片组1005、处理器1010、存储器1012、天线1013、存储1014、图形子系统1015、应用1016和/或无线电装置1018的任何组合。芯片组1005可提供处理器1010、存储器1012、存储1014、图形子系统1015、应用1016和/或无线电装置1018之间的相互通信。例如,芯片组1005可包括能够提供与存储1014的相互通信的存储适配器(未示出)。

处理器1010可被实现为复杂指令集计算机(CISC)或精简指令集计算机(RISC)处理器、x86指令集兼容处理器、多核或任何其它微处理器或中央处理单元(CPU)。在各种实施方案中,处理器1010可为双核处理器、双核移动处理器等。

存储器1012可被实现为易失性存储器装置,诸如但不限于随机存取存储器(RAM)、动态随机存取存储器(DRAM)或静态RAM(SRAM)。

存储1014可被实现为非易失性存储装置,诸如但不限于磁盘驱动器、光盘驱动器、磁带驱动器、内部存储装置、附加存储装置、闪存、电池备份SDRAM(同步DRAM)和/或网络可访问存储装置。在各种实施方案中,例如,当包括多个硬盘驱动器时,存储1014可包括用于提高有价值数字媒体的存储性能增强保护的技术。

图形子系统1015可执行诸如静止或视频的图像的处理以用于显示。图形子系统1015可为例如图形处理单元(GPU)或视觉处理单元(VPU)。模拟或数字接口可被用于通信地耦合至图形子系统1015和显示器1020。例如,接口可为高清晰度多媒体接口、显示器端口、无线HDMI和/或无线HD兼容技术中的任一种。图形子系统1015可被集成到处理器1010或芯片组1005中。在一些实施方案中,图形子系统1015可为通信地耦合到芯片组1005的独立装置。

本文所述的图形和/或视频处理技术可在各种硬件架构中实现。例如,图形和/或视频功能可被集成在芯片组内。另选地,可使用分立的图形和/或视频处理器。作为又一实施方案,图形和/或视频功能可由包括多核处理器的通用处理器提供。在另外的实施例中,功能可在消费电子装置中实现。

无线电装置1018可包括能够使用各种合适的无线通信技术来发送和接收信号的一个或多个无线电装置。此类技术可涉及跨一个或多个无线网络的通信。示例无线网络包括(但不限于)无线局域网(WLAN)、无线个域网(WPAN)、无线城域网(WMAN)、蜂窝网络和卫星网络。在跨此类网络进行通信时,无线电装置1018可根据任何版本中的一种或多种适用标准进行操作。

在各种实施方案中,显示器1020可包括任何电视型监视器或显示器。显示器1020可包括例如计算机显示屏、触摸屏显示器、视频监视器、电视类装置和/或电视机。显示器1020可为数字和/或模拟的。在各种实施方案中,显示器1020可为全息显示器。另外,显示器1020可为可接收视觉投影的透明表面。此类投影可传达各种形式的信息、图像和/或对象。例如,此类投影可为用于移动增强现实(MAR)应用的视觉覆盖层。在一个或多个软件应用1016的控制下,平台1002可在显示器1020上显示用户界面1022。

在各种实施方案中,内容服务装置1030可由任何国家、国际和/或独立的服务托管,并因此例如可经由互联网访问平台1002。内容服务装置1030可被耦合到平台1002和/或显示器1020。平台1002和/或内容服务装置1030可被耦合到网络1060以向/从网络1060传送(例如,发送和/或接收)媒体信息。内容递送装置1040也可被耦合到平台1002和/或显示器1020。

在各种实施方案中,内容服务装置1030可包括能够传递数字信息和/或内容的有线电视盒、个人计算机、网络、电话、启用互联网的装置或家用电器以及能够经由网络1060或直接在内容提供商和平台1002和/显示器1020之间单向或双向传送内容的任何其它类似装置。应理解,内容可经由网络1060至和自系统1000中的任何一个组件和内容提供商单向和/或双向地传送。内容的示例可包括任何媒体信息,其包括例如视频、音乐、医疗和游戏信息等。

内容服务装置1030可接收诸如包括媒体信息、数字信息和/或其它内容的有线电视节目的内容。内容提供商的示例可包括任何有线或卫星电视或无线电或互联网内容提供商。所提供的示例并不意味着以任何方式限制根据本公开的实施方案。

在各种实施方案中,平台1002可从具有一个或多个导航特征的导航控制器1050接收控制信号。例如,控制器1050的导航特征可被用于与用户界面1022交互。在各种实施例中,导航控制器1050可为定点装置,其可为允许用户将空间(例如,连续和多维)数据输入到计算机中的计算机硬件组件(具体地,人机接口装置)。诸如图形用户界面(GUI)以及电视和监视器的许多系统允许用户使用物理姿势来控制并向计算机或电视机提供数据。

控制器1050的导航特征的移动可通过显示器上所显示的指针、光标、聚焦环或其它视觉指示符的移动而在显示器(例如,显示器1020)上复制。例如,在软件应用1016的控制下,位于导航控制器1050上的导航特征可被映射到在用户界面1022上显示的虚拟导航特征。在各种实施例中,控制器1050可不是单独的组件,而是可被集成到平台1002和/或显示器1020中。然而,本公开不限于本文所示或描述的元件或背景。

例如,在各种实施方案中,当启用时,驱动器(未示出)可包括使得用户能够在初始引导之后利用按钮的触摸来像电视机一样立即打开和关闭平台1002的技术。即使当平台被“关闭”时,程序逻辑可允许平台1002将内容流传输给媒体适配器或其它内容服务装置1030或内容递送装置1040。另外,芯片组1005可包括例如用于(5.1)环绕声音频和/或高保真(7.1)环绕声音频的硬件和/或软件支持。驱动器可包括用于集成图形平台的图形驱动器。在各种实施例中,图形驱动器可包括外围组件互连(PCI)快速图形卡。

在各种实施方案中,可集成系统1000中所示的组件中的任何一个或多个。例如,平台1002和内容服务装置1030可被集成或者平台1002和内容递送装置1040可被集成或者平台1002、内容服务装置1030和内容递送装置1040可被集成。在各种实施例中,平台1002和显示器1020可为集成单元。

例如,显示器1020和内容服务装置1030可被集成或者显示器1020和内容递送装置1040可被集成。这些示例并不意味着限制本公开。

在各种实施例中,系统1000可被实现为无线系统、有线系统或两者的组合。当被实现为无线系统时,系统1000可包括适于通过无线共享介质(诸如一个或多个天线、发射器、接收器、收发器、放大器、滤波器、控制逻辑等)进行通信的组件和接口。无线共享介质的示例可包括无线频谱的部分,诸如RF频谱等。当实现为有线系统时,系统1000可包括适于通过有线通信介质进行通信的组件和接口,诸如输入/输出(I/O)适配器、用于将I/O适配器与相应的有线通信介质连接的物理连接器、网络接口卡(NIC)、盘控制器、视频控制器、音频控制器等。有线通信介质的示例可包括导线、电缆、金属引线、印刷电路板(PCB)、背板、交换结构、半导体材料、双绞线、同轴电缆、光纤等等。

平台1002可建立一个或多个逻辑或物理信道以传送信息。该信息可包括媒体信息和控制信息。媒体信息可指代表示用于用户的内容的任何数据。内容的示例可包括例如来自语音对话、视频会议、流视频、电子邮件(“电子邮件”)消息、语音邮件消息、字母数字符号、图形、图像、视频、文本等的数据。来自语音对话的数据可为例如语音信息、静默时段、背景噪声、舒适噪声、音调等。控制信息可指代表示用于自动化系统的命令、指令或控制字的任何数据。例如,控制信息可被用于通过系统路由媒体信息,或者指示节点以预定方式处理媒体信息。然而,实施例不限于图10中所示或所述的元件或背景。

如上所述,系统1000可以以变化的物理样式或形式因素来实施。图11示出了可实施系统1100的小形状因子装置1100的实施方案。例如,在各种实施例中,装置1100可被实现为具有无线能力的移动计算装置。例如,移动计算装置可指代具有处理系统和移动电源或电源(诸如一个或多个电池)的任何装置。

如上所述,移动计算装置的示例可包括个人计算机(PC)、膝上型计算机、超级膝上型计算机、平板计算机、触摸板、便携式计算机、手持计算机、掌上计算机、个人数字助理(PDA)、蜂窝电话、组合蜂窝电话/PDA、电视、智能装置(例如,智能电话、智能平板或智能电视)、移动互联网装置(MID)、消息传递装置、数据通信装置、照相机(例如,点对焦照相机、超变焦照相机、数字单镜头反射(DSLR)相机)等。

移动计算装置的示例也可包括被布置为由人穿戴的计算机,诸如腕部计算机、手指计算机、环形计算机、眼镜计算机、皮带夹计算机、臂带计算机、鞋计算机、服装计算机和其它可穿戴计算机。例如,在各种实施例中,移动计算装置可被实现为能够执行计算机应用以及语音通信和/或数据通信的智能电话。尽管借助于示例的方式可用被实现为智能电话的移动计算装置来描述一些实施例,但是应理解,也可使用其它无线移动计算装置来实现其它实施例。实施例不限于此背景。

如图11所示,装置1100可包括外壳1102、显示器1104(显示器1104可包括用户界面1110)、输入/输出(I/O)装置1106和天线1108。装置1100也可包括导航特征1112。显示器1104可包括用于显示适用于移动计算装置的信息的任何合适的显示单元。I/O装置1106可包括用于将信息输入到移动计算装置中的任何合适的I/O装置。I/O装置1106的示例可包括字母数字键盘、数字小键盘、触摸板、输入键、按钮、开关、摇臂开关、麦克风、扬声器、语音识别装置和软件、图像传感器等等。信息也可借助于麦克风(未示出)输入到装置1100中。此信息可由语音识别装置(未示出)数字化。该实施例不限于此背景。

可使用硬件元件、软件元件或两者的组合来实现各种实施例。硬件元件的示例可包括处理器、微处理器、电路、电路元件(例如晶体管、电阻器、电容器、电感器等)、集成电路、专用集成电路(ASIC)、可编程逻辑器件(PLD)、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、逻辑门、寄存器、半导体器件、芯片、微芯片、芯片组等等。软件的示例可包括软件组件、程序、应用、计算机程序、应用程序、系统程序、机器程序、操作系统软件、中间件、固件、软件模块、例程、子例程、函数、方法、程序、软件接口、应用程序接口(API)、指令集、计算代码、计算机代码、代码段、计算机代码段、字、值、符号或其任何组合。确定实施例是否使用硬件元件和/或软件元件来实现可根据任何数量的因素,诸如预期的计算速率、功率级、耐热性、处理周期预算、输入数据速率、输出数据速率、存储器资源、数据总线速度以及其它设计或性能约束而改变。

另外,本文所论述的操作中的任何一个或多个可响应于由一个或多个计算机程序产品所提供的指令来进行。此类程序产品可包括提供指令的信号承载介质,当由例如处理器执行时,该指令可提供本文所述的功能。计算机程序产品可以以任何形式的一种或多种机器可读介质提供。因此,例如,包括一个或多个处理器核的处理器可响应于由一种或多种操作可读介质传送给处理器的程序代码和/或指令或指令集来进行本文中的示例过程的一个或多个操作。通常,机器可读介质可以以程序代码和/或指令或指令集的形式来传送软件,该软件可使本文所述的装置和/或系统中的任一者实现如本文所述的系统的至少部分。

虽然已经参考各种实施方案描述了本文所阐述的某些特征,但是该描述并不旨在以限制的意义来解释。因此,对于本公开所属领域的技术人员显而易见的是,对本文所述的实施方案的各种修改以及其它实施方案被认为落入本公开的精神和范围内。

下列实例属于进一步的实施例:

在一种实施方案中,用于视频编码的计算机实现的方法可包括目标比特率和质量控制方案。目标比特率和质量控制方案可至少部分基于目标比特率经由速率控制模块来确定块级处的估算QP。基于人类视觉系统的块QP图生成模块可至少部分基于目标质量因子来确定块级处的目标QP。块QP调整模块可至少部分基于所确定的估算QP和所确定的目标QP来确定块级处的最终QP。

例如,用于视频编码的计算机实现的方法可进一步包括:至少部分基于目标质量因子、经由质量导向图片QP计算模块来确定图片级处的目标QP,图片级处的目标QP的确定进一步包括:接收视频分析输出。可至少部分基于视频分析输出来确定帧方差。可至少部分基于所确定的帧方差来执行阈值确定。可至少部分基于视频分析输出的粗略帧内/帧间预测来确定预测失真值。当阈值确定指示所确定的帧方差为显著时,可至少部分基于所确定的帧方差和所确定的预测失真来确定图片级灵敏度。可接收目标质量因子。当阈值确定指示所确定的帧方差不显著时,可至少部分基于目标质量因子以及基于所确定的图片级灵敏度来确定图片级处的目标QP,并且当阈值确定指示所确定的帧方差为显著时,至少部分基于目标质量因子以及所确定的帧方差来确定图片级处的目标QP。块级处的目标QP的确定至少部分基于作为所确定的图片级的粗略目标QP的细化的目标质量因子,其中,块级处的目标QP的确定进一步包括:确定平均像素值和/或动作矢量可针对各个块来确定。可至少部分基于以下因素中的一个或多个来对各个块执行人类灵敏度水平估算:相对极端的黑暗和/或相对极端的明亮区域中的变化、相对平滑区域中的变化、具有相对精细纹理的区域中的相对模糊、具有相对低动作的区域的时间变化和/或相对重纹理区域的变化等和/或其组合。可至少部分基于映射所估算的各个块的人类敏感度水平来确定块级ΔQP,其中,较高估算人类敏感度水平被映射到较大的ΔQP值,以及较低估算人类敏感度水平被映射到较小的ΔQP值。可至少部分基于所确定的块级ΔQP和所确定的图片级处的目标QP来确定块级处的目标QP。当估算QP大于目标QP时,估算QP将被用作用于编码的最终QP;否则,目标QP将被用作用于当前块的编码的最终QP。除此之外或另选地,可至少部分基于目标QP与估算QP之间的差值,从目标QP导出最小QP,其中,由最小QP限制的估算QP将被用作用于编码的最终QP。

在其它示例中,用于计算机上的视频编码的系统可包括显示装置、一个或多个处理器、一个或多个存储器存储、一个或多个逻辑模块等和/或其组合。显示装置可被配置成呈现视频数据。一个或多个处理器可被通信地耦合到显示装置。一个或多个存储器存储可被通信地耦合到一个或多个处理器。逻辑模块可包括视频编码器的速率控制模块逻辑模块,其可被通信地耦合到一个或多个处理器,并且被配置成:至少部分基于目标比特率来确定块级处的估算QP。基于人类视觉系统的块QP图生成模块可被通信地耦合到块QP调整模块并且被配置成至少部分基于目标质量因子来确定块级处的目标QP。块QP调整模块可被通信地耦合到速率控制模块,并且被配置成至少部分基于所确定的估算QP和所确定的目标QP来确定块级处的最终QP。

例如,计算机上的视频编码系统可进一步包括:质量导向图片QP计算模块,其被配置成至少部分基于目标质量因子来确定图片级处的目标QP,图片级处的目标QP的确定进一步包括:接收视频分析输出。可至少部分基于视频分析输出来确定帧方差。可至少部分基于所确定的帧方差来执行阈值确定。可至少部分基于视频分析输出的粗略帧内/帧间预测来确定预测失真值。当阈值确定指示所确定的帧方差为显著时,可至少部分基于所确定的帧方差和所确定的预测失真来确定图片级灵敏度。可接收目标质量因子。当阈值确定指示所确定的帧方差不显著时,可至少部分基于目标质量因子以及基于所确定的图片级灵敏度来确定图片级处的目标QP,并且当阈值确定指示所确定的帧方差为显著时,至少部分基于目标质量因子以及所确定的帧方差来确定图片级处的目标QP。块级处的目标QP的确定至少部分基于作为所确定的图片级的粗略目标QP的细化的目标质量因子,其中,块级处的目标QP的确定进一步包括:确定平均像素值和/或动作矢量可针对各个块来确定。可至少部分基于以下因素中的一个或多个来对各个块执行人类灵敏度水平估算:相对极端的黑暗和/或相对极端的明亮区域中的变化、相对平滑区域中的变化、具有相对精细纹理的区域中的相对模糊、具有相对低动作的区域的时间变化和/或相对重纹理区域的变化等和/或其组合。可至少部分基于映射所估算的各个块的人类敏感度水平来确定块级ΔQP,其中,较高估算人类敏感度水平被映射到较大的ΔQP值,以及较低估算人类敏感度水平被映射到较小的ΔQP值。可至少部分基于所确定的块级ΔQP和所确定的图片级处的目标QP来确定块级处的目标QP。当估算QP大于目标QP时,估算QP将被用作用于编码的最终QP;否则,目标QP将被用作用于当前块的编码的最终QP。除此之外或另选地,可至少部分基于目标QP与估算QP之间的差值,从目标QP导出最小QP,其中,由最小QP限制的估算QP将被用作用于编码的最终QP。

在另一实施方案中,至少一个机器可读介质可包括响应于在计算装置上被执行而使计算装置执行根据上述示例中的任一项的方法的多个指令。

在又一实施方案中,装置可包括用于执行根据上述示例中的任一个的方法的机构。

上述示例可包括特征的特定组合。然而,此类上述示例在这方面不受限制,并且在各种实施方案中,上述示例可包括仅进行此类特征的子集、进行此类特征的不同顺序、进行此类特征的不同组合和/或进行与那些明确列出的特征不同的附加特征。例如,关于示例方法描述的所有特征可关于示例装置、示例系统和/或示例制品来实现,并且反之亦然。

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