用于可伸缩视频编码系统内的位速率控制的方法及其系统的制作方法

文档序号:7554691阅读:173来源:国知局
专利名称:用于可伸缩视频编码系统内的位速率控制的方法及其系统的制作方法
技术领域
本发明涉及一种用于位速率控制的方法,具体地涉及一种用于可伸缩视频编码系统内的位速率控制的方法。
背景技术
高级视频编码(AVC)标准,另外称为H.264/MPEG-4第10部分,是由ITU-T (国际电信联盟电信标准化部门)视频编码专家组(VCEG)和运动图像专家组(MPEG)共同开发的众所周知的视频压缩标准。H.264/MPEG-4第10部分包括先进的压缩技术,该技术被开发以使得能够在低位速率下传输视频信号,或实现给定的传输速率下的改进的视频质量。接收设备的不断演变以及以广泛变化的连接质量为特征的传输系统的不断使用导致了对可伸缩视频编码的需求,该可伸缩视频编码允许对于例如显示器和目标设备的处理功能之类的特定应用要求以及变化的传输条件进行动态适配。具体地,视频编码越来越多地被用于从例如多媒体消息收发、视频电话、视频会议和视频流送之类的无线/移动应用到标准清晰度和高清晰度电视广播的宽范围的应用中。此外,随着互联网和无线网络对视频内容的传输变得越来越重要,这样的视频传输越来越暴露于广泛变化的传输条件,以及暴露于具有变化的显示器和计算能力的变化的解码装置中。可伸缩视频编码(SVC)是H.264/MPEG-4第10部分视频压缩标准(附件G)的扩展,其在位流水平上提供了网络友好的可伸缩性。具体地,SVC支持一些功能,例如位速率、格式和功率适配,有损传输环境中的故障弱化以及将质量可伸缩SVC位流无损的重写入单层
H.264/MPEG-4第10部分 位流。通过SVC编码提供的可伸缩位流包括一个或多个子流,该一个或多个子流能够以得到的子流形成用于某目标解码器的另一个有效的位流的方式被提取。可伸缩的通常模式是时间、空间和质量可伸缩。空间可伸缩和时间可伸缩描述了一些情况,其中位流的子集分别利用减小的图片大小(空间可伸缩)和/或降低的帧速率(时间分辨率)来表示源内容。通过质量可伸缩,子流提供与其关联的位流相同的时空分辨率,但具有较低的通常被非正式地称为信噪比(SNR)的保真度。质量可伸缩也通常被称为保真度可伸缩或SNR可伸缩。其他的不常需要的可伸缩模式包括感兴趣区域((ROI)和基于对象的可伸缩,其中子流通常表示原始图片区域的空间上连续的区域。不同类型的可伸缩也可能被结合以便在单一可伸缩的位流内支持具有不同的时空分辨率和位速率的多种表示。对于AVC实现,已知的是,例如根据传输信道带宽,使用速率控制以调节编码视频系统的输出位速率。当这样的速率控制被施加在编码器中时,用于视频信息编码的量化参数(QP)被调整以维持输出位流的目标位速率。虽然用于提供这种速率控制的常规技术对于需要仅考虑单一整体信道带宽的AVC实现而言是足够的,但这些技术通常不适合于可能需要考虑多个带宽限制的SVC实现。具体而言,可能要求SVC编码器所输出的位流内的每个子流满足特定带宽和/或目标设备规格,因此同样地可能要求每个子流被限制在特定的位速率。

发明内容
如所附权利要求中所描述的,本发明提供了一种可伸缩视频编码系统内的位速率控制的方法、一种可伸缩视频编码系统以及一种集成电路设备。本发明的具体实施例在从属权利要求中被陈述。根据下文中描述的实施例,本发明的这些或其它方面将会很明显并且被阐述。


根据附图,仅仅通过举例的方式,本发明的进一步细节、方面和实施例将被描述。在附图中,类似的附图标记被用于指示相同的或功能相似的元素。为了简便以及清晰,附图中的元素不一定按比例绘制。图1说明了可伸缩视频编码系统的例子。图2说明了传输网络的简化例子。图3和图4说明了时间、空间和质量可伸缩的简化例子。图5说明了一种用于可伸缩视频编码系统内的位速率控制的方法的简化流程图。
具体实施例方式现在将参考被设置为在编码视频位流内提供时间、空间和质量可伸缩的可伸缩视频编码系统对本发明进行描述,例如可以根据H.264/MPEG-4第10部分视频压缩标准的附录G被实施。然而,应了解 ,本发明不仅仅限于用于这样的可伸缩视频编码系统,并且可以同样地适用于替代的可伸 缩视频编码实现。首先参照图1,说明了根据本发明的一些示例实施例适配的可伸缩视频编码系统100的例子。预期到,部分或全部的可伸缩视频编码系统100可以在一个或多个集成电路设备内被实现,如一般以105所说明的。例如,下文中描述的各种功能组件可以通过一个或多个专用集成电路(ASIC)设备或通过一个或多个可编程数字信号处理器(DSP)和/或微控制器来实现。另外地/替换地,一些或全部的可伸缩视频编码系统100可以通过被设置为在一个或多个信号处理器(未显示)上执行的程序代码来实现。对于所说明的例子,可伸缩视频编码系统100包括视频编码器模块110,该视频编码器模块110被设置为从视频源120接收视频信息125、编码所接收的视频信息125、以及输出可伸缩编码视频位流115。对于图1所说明的例子,可伸缩视频编码系统100还包括输出缓冲器130,该输出缓冲器130被设置为接收被视频编码器模块110输出的可伸缩编码视频位流115、以及缓冲可伸缩编码视频位流115,以用于作为缓冲的输出位流135在传输信道210 (图2)上进行传输。虽然对于所说明的例子,输出缓冲器130被说明为形成可伸缩编码系统100的集成部分,但应了解,输出缓冲器130可以同样地被实现为可伸缩视频编码系统100的输出可操作地耦合到的分立的组件。图2说明了传输网络200的简化例子,通过该传输网络200,由可伸缩视频编码系统100输出的编码视频信息可以被分发到各个不同的目标设备220、230、240。通过通常以210、212、214、216、以及218所说明的各种传输信道,传输网络200可操作地将可伸缩视频编码系统100的输出缓冲器130耦合于目标设备220、230、240。这样的传输信道可以包括传送编码视频信息的任何合适装置,例如电使用铜线、光学使用光纤、无线地使用射频通信信道等等。这样的传输网络通常包括各种路由器、交换机等等(未显示)。如本领域技术人员将了解的,缓冲的输出位流135的可用数据速率取决于传输信道的带宽,缓冲的输出位流135在所述传输信道上进行传输。具体地,对于图2所说明的例子,缓冲的输出位流135的可用数据速率将取决于传输信道210的带宽,输出缓冲器135可操作地耦合于所述传输信道210。如果视频编码器模块110输出的可伸缩编码视频位流115的位速率超过了缓冲的输出位流135的可用数据速率(即,对于所说明例子,超过了传输信道210的可用带宽),在输出缓冲器130内缓冲的编码视频数据的数量将会增加,直到输出缓冲器130变满并且“溢出”,进而编码视频数据将会丢失。为了避免输出缓冲器130溢出,有必要控制视频编码器模块110输出的可伸缩编码视频位流115的位速率,以便不超过(至少不会很长时间超过)缓冲的输出位流135的可用数据速率。因此,对于常规的(非可伸缩的)H.264/MPEG-4第10部分的视频编码系统,已知的是,根据传输信道带宽,使用速率控制以调节视频编码系统的输出位速率,由此用于视频信息编码的量化参数(QP)被调整以维持输出位流的目标位速率。量化参数确定在编码期间用于量化运动预测的残留信号的量化步长。量化步长越低,越多的信息被提供给目标编码器,从而实现更高质量的信号,但要以更高的位速率为代价。因此,图1的可伸缩视频编码系统100还包括速率控制模块140,它被设置为向视频编码器模块110提供QP值,并且调整QP值145以维持可伸缩编码视频位流115的目标位速率。虽然用于提供这种速率控制的常规技术对于需要仅考虑单一整体信道带宽的常规(非可伸缩的)视频编码系统而言是足够的,但这些技术通常不适合于可能需要考虑多个带宽限制的可伸缩视频编码系统。例如,再次参照图2,在可伸缩视频编码系统中,可伸缩编码视频流包括一个或多个子流,该一个或多个子流能够以得到的子流形成用于某目标解码器的另一个有效的位流的方式被提取。例如,如通常以250和255所说明的,子流可以被提取以满足特定传输信道和/或目标设备的限制/需求。同样的,如通常在260所说明的,可伸缩编码视频流可以再次被“减薄”,以满足特定传输信道和/或目标设备的限制/需求。具体而言,通过可伸缩视频编码系统输出的位流内的每个子流可能被要求满足特定带宽和/或目标设备规格,并且同样地可能被要求限制到特定位速率。因此,所希望的是,不只是针对全部可伸缩编码视频位流115,也针对全部可伸缩编码视频位流115内的单独子流在低水平下提供速率控制。可伸缩的通常模式是时间、空间和质量可伸缩。空间可伸缩和时间可伸缩描述了一些情况,其中位流的子集分别利用减小的图片大小(空间可伸缩)和/或降低的帧速率(时间分辨率)来表示源内容。通过质量可伸缩,子流提供与关联的(高水平)位流相同的时空分辨率,但具有较低的通常被非正式地称为信噪比(SNR)的保真度。质量可伸缩也通常被称为保真度可伸缩或SNR可伸缩。其他的不常需要的可伸缩模式包括感兴趣区域((ROI)和基于对象的可伸缩,其中子流通常表示原始图片区域的空间上连续的区域。不同类型的可伸缩也可能被结合以便在单一可伸缩的位流内支持具有不同的时空分辨率和位速率的多种表不。

参照图3,说明了时间可伸缩的简化例子,例如根据H.264/MPEG-4第10部分视频压缩标准的附件G实现的。当相应的“访问单元”(总体以300被说明)的集合可以被分割成时间基层和一个或多个时间增强层的时候,位流提供时间可伸缩。对于所说明的例子,每个访问单元集合包括“图片组”(G0P)305,该“图片组”(G0P)305由以下构成:形成G0P305的时间基层的第一访问单元TJIO,以及,形成时间增强层的另外三个访问单元,且具体是形成第一时间增强层的访问单元1\320,以及形成第二时间增强层的访问单元1'2330。因此,时间基层(通过每个G0P305内的访问单元Tq310提供)提供了包括7.5fps的帧速率的视频信号。第一时间增强层(通过每一个GOP内的访问单元 \320提供)对时间基层进行增强以提供包括15fps的帧速率的视频信号。第二时间增强层(通过每一个G0P305内的访问单元T2330提供)对时间基层和第一增强层进行增强以提供包括30fps的帧速率的视频信号。以这种方式,通过提取适当的访问单元310、320、330,视频信号的帧速率可以在7.5、15和30帧每秒之间伸缩。对于根据H.264/MPEG-4第10部分视频压缩标准的附件G实现的可伸缩视频压缩,如图4所说明的,在每个访问单元中实现空间和质量可伸缩。每个访问单元310、320、330包括空间相关基层D。,如总体以410所说明的,并且可以包括一个或多个空间相关增强层,例如总体以420所说明的空间相关增强层Dp以这种方式,空间相关基层Dq410提供包括低分辨率的视频信号(例如,小图片尺寸),其中空间相关增强层D02O对空间相关基层DJlO进行‘增强’以提供包括高分辨率的视频信号(例如,大图片尺寸)。类似地,每空间相关层410、420包括如总体以430所说明的质量基层Qtl,并且可以包括一个或多个质量增强层,例如总体以440所说明的质量增强层Qp以这种方式,质量基层QJ30提供了包括低质量(例如,低保真度)的视频信号,其中质量增强层Q04O对质量基层QJ30进行“增强”以提供包括高质量(例如,增加的高保真度)的视频信号。再次参照图1,视频编码器模块110被设置为编码接收到的视频信息125以生成可伸缩编码视频位流115,使得可伸缩编码视频位流115包括访问单兀,例如图3和图4中所说明的访问单元310、320、330,从而每个访问单元包括一个或多个空间相关层,例如图4中所说明的空间相关层410、420。以这种方式,可伸缩编码视频位流115至少能够空间可伸缩,以便可以从可伸缩视频编码位流115中提取出对应于确定的空间分辨率的一个或多个子流。
`
速率控制模块140还被设置为,对于视频编码器模块110输出的可伸缩编码视频位流115内的每个访问单元(例如访问单元310、320、330),来确定可伸缩编码视频位流115内的一个或多个空间相关层410、420 (例如空间相关层410、420)的位预算,以及至少部分地基于确定的位预算来计算用于编码空间相关层的量化参数(QP)值145。通过单独地在空间相关层水平确定位预算(相反于确定例如每个G0P305之类的每个访问单元集合的总体位预算),也可以在空间相关层水平计算QP值,从而允许提供给视频编码器模块的QP值被单独地适用于每个访问单元内的不同空间相关层。以这种方式,能够不只是针对全部可伸缩编码视频位流115,也针对在单独时空分辨率下的全部可伸缩编码视频位流115内的单独子流在低水平下提供速率控制。根据本发明的一些例子,速率控制模块140被设置为对于每个空间相关层计算用于编码质量基层(例如,质量基层430)的QP值和更多质量增强层(例如,质量增强层440)的零。例如,用于空间相关层内的质量层的QP值可以基于那个空间相关层内的确定的位预算的定义的分布被计算。根据本发明的一些实施例,可以预期,可以基于例如以下两个因数的加权平均来确定每个空间相关层的位预算:在编码相应访问单元开始时的输出缓冲器130的缓冲器占有量;以及例如相应空间相关层形成为其一部分的G0P305的剩余位预算。因此,对于所说明的例子,速率控制模块140被设置为从输出缓冲器130接收缓冲器占有量信息150。关于G0P305的剩余位预算,可以预期,GOP可用的位预算可能不能在其中的时间层之间均匀地分布。例如,低时间层(例如,每个G0P305内的访问单元TQ310 )可以接收更大比例的GOP位预算,因为比起高时间层(例如,每个G0P305内的访问单位T2330),它们更多被帧所引用的。位预算的分布可以基于可以是固定的或动态地适配的加权表格。用于确定每个访问单元的位预算分配的公式的一个例子包括:位预算(Tid)=剩余Gop预算*权重(Tid) /剩余权重[等式I]“剩余权重”在GOP起点处被设置为I。在每个AU完成之后,“剩余权重”然后被减少当前时间层的权重。例如,如说明的例子中所说明的,使用3个时间层,权重可以被设置为,例如,对于Ttl为0.5、对于T1为0.3、对于T2为0.1。以这种方式,当在GOP起点处确定访问单元TJlO的预算的时候:剩余 Gop 预算=BBgop ;权重(Tid)=0.5;以及剩余权重=1.
因此,GOP起点处的第一访问单元TJlO将接收位预算:BBGQP*0.5/l=BBG0P/2。在编码第一访 问单元Tq310之后,在编码GOP起点处的访问单元TQ310之后用于GOP内的下一个访问单元的剩余位预算将等于(BBrap-位使用Ttl),以及剩余加权将等于(1-0.5) =0.5。对于所说明的例子,要被编码的下一个访问单元包括G0P305内的第一访问单元T2330。因此,该访问单元接收(BBrap-位使用TQ)*0.1/0.5)。在编码G0P305内的第一访问单元T2330之后,GOP的剩余位预算将是(BBtop-(位使用Jtl+位使用_T2),并且剩余权重将等于0.4。对于所说明的例子,要被编码的下一个访问单元包括G0P305内的访问单元1\320。因此,该访问单元接收((BBtop-(位使用_1;+位使用_Τ2))*0.3/0.4)。在编码G0P305内的访问单元 \320之后,GOP的剩余位预算将是(BBtop-(位使用Jtl+位使用_Τ2+位使用_1\),并且剩余权重将等于0.1。要被编码的最后的访问单元包括G0P305内的第二访问单元Τ2330。因此,该访问单元接收((BBtop-(位使用_Τ0+位使用_Τ2+位使用_ \) *0.1/0.1)。影响编码图像所需要的数据位数量,从而影响编码视频流的位速率的重要因素是编码复杂性,且具体地,其中,预测编码被实现,在层间或层内预测处理完成之后,剩下来的残差的编码复杂性(层间/层内失真)。因此,如果这种失真在计算QP值的时侯也被考虑在内,可伸缩编码视频位流115的数据速率可以被更精确地控制。预测误差的平均绝对差(MAD)通常与编码复杂性密切相关,并且同样地可以例如使用一种线性回归法被用于估计层间失真。因此,对于本发明的一些示例实施例,速率控制模块140可以被设置为估计单独空间相关层的这种层间失真并且基于确定的位预算和其的估计的失真计算用于编码空间相关层的相应QP值。可以通过使用一个或多个R-Q (速率-量化)模型来计算QP值。可以通过使用下面的二次R-Q等式来计算例如用于空间相关层内的质量基层的QP值:位/ 失真=C0NSTl*Qstep2+C0NST2*Qstep [等式 2]其中,Qstep是在编码期间使用的量化步长。可以预期,替代的R-Q模型可以被用于计算质量增强层的QP值,例如将位速率和相应的质量基层的QP与位速率和质量增强层QP连接的模型。根据本发明的一些实施例,速率控制模块140可被设置为在视频编码器模块110编码访问单元之前确定用于访问单元内的空间相关层的位预算(以及失真估计),并且计算用于编码基于其上的空间相关层的初始QP值。速率控制模块140可以随后在编码访问单元期间基于层内失真计算用于编码空间相关层的修订的QP值。例如,速率控制模块140可以被设置为在编码访问单元期间对于空间相关层的图像(帧)以行为基础上来计算用于空间相关层的修订的QP值。由于图像内的单独行的失真会变化,高度失真的行会比失真少的行使用更大比例的位预算。因此,通过估计单独行的失真,并且考虑对于其的估计的失真来计算用于该行的修订的QP值,用于编码空间相关层内的那个行的位速率可以被更精确地控制。此外,可以预期,这个修订的QP值还可以基于相应空间相关层的编码期间的先前的位预算消耗,因此更准确地控制其整体位速率。根据本发明的一些示例实施例,速率控制模块140还可以被设置为收集编码数据,以更新用于计算QP值的R-Q模型和/或失真预测模型。例如,速率控制模块140可以被设置为收集例如实际位使用数据(即,用于编码例如访问单元的位的实际数目)和编码例如访问单元所产生的实际失真数据,以及使用收集到的位使用数据和失真数据来更新用于计算QP值的R-Q模型和/或用于估计层间/层内失真的线性回归模型。因此,对于所说明的例子,速率控制模 块140被设置为接收这种位使用数据155。以这种方式,计算QP值所使用的各种模型等等可以通过使用实际使用数据被动态地更新,以连续地校准可伸缩视频编码系统100的速率控制,从而使得产生的可伸缩编码视频位流115的位速率大体上被优化。有利的是,所说明例子的速率控制模块140使得能够针对视频信息的可伸缩编码来定义位速率点。例如,再次参照图4,可以针对每个空间相关层410、420定义最小速率点,从而空间相关层的最小速率点仅仅包括基质量层和其基时间层。因此,空间相关基层410的最小速率点(以412所说明的)包括形成每个G0P305的时间基层的第一访问单元TQ310内的质量基层430。类似地,空间相关增强层420的最小速率点(以422所说明的)包括空间相关增强层420的质量基层430以及形成每个G0P305的时间基层的第一访问单元TQ310内的空间相关基层410。以这种方式,对于每个空间相关层,可以定义最小(即,最坏情况)速率点。还可以针对每个空间相关层定义另外的速率点,例如图4中所说明的这样的最大速率点414、424,从而空间相关层的最大速率点包括所有(S卩,基和每个增强)质量层和其时间层。以这种方式,对于每个空间相关层,可以最大(即,最佳情况)速率点。定义用于单独空间相关层的这种速率点的能力使得终端用户/应用能够基于视频流提供者提供的配置信息来更准确地/适当地选择合适的子流。
现在参照图5,根据本发明的一些实施例,说明了一种用于可伸缩视频编码系统内的位速率控制的方法的示例的简化流程图500,例如可以在图1的速率控制模块140内被实现。所述方法开始于步骤505,其中访问单元(AU)的起点要被编码,并且移动到步骤510至530,对于所说明的例子,在对当前访问单元开始编码之前被执行这些步骤。在步骤510,确定是否有更多空间相关层要被处理。如果确定有更多空间相关层要被处理,所述方法移动到步骤515,其中例如基于平均绝对差(MAD)预测对于当前(例如,第一)空间相关层来估计相关失真。然后,所述方法移动到步骤520,确定是否有要对其计算量化参数(QP)值的更多质量层。如果确定有更多要被处理的质量层,所述方法移动到步骤525,其中对于当前空间相关层的当前(例如,第一)质量层设置位预算。例如,可以基于例如以下两个因数的加权平均来确定每个空间相关层的位预算:在编码相应访问单元开始时的输出缓冲器的缓冲器占有量;以及之前的例如8个访问单元的剩余位预算。然后可以基于例如用于那个空间相关层内的确定的位预算的所定义的分布来计算当前质量层的位预算。接下来,在步骤530,例如,基于确定的位预算和失真估计来计算当前质量层的QP值。然后,该方法返回到步骤520,确定是否有要被计算QP值的更多质量层。以这种方式,所述方法对于当前空间相关层内的每个质量层计算QP值。一旦当前空间相关层内的所有质量层的QP值被计算,(即,在步骤520确定没有要被计算QP值的更多质量层),所述方法返回到步骤510,其中确定是否有更多要被处理的空间相关层。以这种方式,所述方法计算了当前访问单元内的所有空间相关层的质量层的QP值。一旦所有空间相关层的质量层的QP值被计算(即,在步骤510确定没有空间相关层要被处理),所述方法移动到步骤540,其中对当前访问单元的编码开始进行。所述方法然后移动到步骤545至565,对于所说明的例子,在编码当前访问单元期间执行这些步骤。在步骤545,确定是否有更多空间相关层要被编码。如果确定有更多空间相关层要被编码,所述方法移动到步骤550,其中,对于所说明的例子,确定当前空间相关层的图像(帧)内是否有更多行要被编码。如果确定当前空间相关层的更多行要被编码,所述方法移动到步骤555,其中对于当前行估计行失真并且设置位预算,例如,如参照上面图1所描述的。接下来,在步骤560,计算用于当前空间相关层的每个质量层内的当前行的修订的QP值。然后在步骤565,行被·编码,并且所述方法返回到步骤550,确定当前空间相关层内是否有更多行要被编码。以这种方式,所述方法编码了当前空间相关层的每一行,并且在其中所有质量层内,使用用于当前空间相关层的每一行的修订的QP值。一旦当前空间相关层内的所有行被编码(即,在步骤550确定当前空间相关层内没有更多行要被编码),所述方法返回到步骤545,确定是否有更多空间相关层要被编码。以这种方式,所述方法通过使用修订的QP值来编码当前访问单元内的所有空间相关层。一旦所有空间相关层被编码(即,在步骤545确定没有更多空间相关层要被编码),所述方法移动到步骤570,其中收集例如实际位使用数据和/或失真数据的数据。然后在步骤575通过使用收集到的数据来更新用于计算(修订的)QP值的模型(例如,R-Q模型和失真预测模型)。所述方法然后在当前访问单元的结尾在步骤580结束。根据一些示例实施例,每一个QP值可以被约束在距离先前AU内的相同层的QP的最大距离内。以这种方式,可以基本上避免连续帧之间的质量大波动和帧本身内部的大质量波动。例如,每个QP可以受公式约束:
newQP=MIN (prevQP+DeltaQP, MAX (prevQP - deltaQP, newQP)) [等式 3]每当QP值被计算的时候,这种QP裁剪可能会发生,无论是在图像/层水平(例如,对于所说明的例子在编码之前)还是在行水平(例如,对于所说明的例子在编码期间)。此夕卜,在一些例子中,取决于编码条件,DeltaQP值可以在GOP内的访问单元之间进行变化以相应地适应每个访问单元的QP的边界。由于本发明说明的实施例可以大部分通过使用本领域所属技术人员所熟知的电子元件和电路来实施,所以将不会在比上述所说明的认为有必要的程度大的任何程度上解释细节,以便理解和了解本发明的基本概念,并且不使本发明所教之内容模糊或从之偏离。如前面所提到的,本发明可以在计算机程序中被实现,该计算机程序用于在计算机系统上运行,至少包括代码部分,该代码部分用于当在例如计算机系统的可编程的装置上运行时执行根据本发明的方法的步骤或者使得可编程的装置能够执行根据本发明的设备或系统的功能。计算机程序是一系列指令,例如特定应用程序和/或操作系统。计算机程序可以例如包括一个或多个:子程序、函数、程序、对象方法、对象实现、可执行的应用、小程序、小服务程序、源代码、目标代码、共享库/动态加载库和/或设计用于在计算机系统上的执行的其它指令序列。计算机程序可内在地存储在计算机可读存储介质上或通过计算机可读传输介质传送到计算机系统。所有或者一些计算机程序可被永久地、可移除地提供在计算机可读介质上或远程地耦合于信息处理系统。计算机可读介质可以包括,例如但不限于任何数量的以下的:包括磁盘和磁带存储介质的磁存储介质;例如光盘介质(例如,⑶-ROM、⑶-R等等)以及数字视盘存储介质的光学存储介质;包括例如FLASH存储器、EEPROM、EPROM、ROM的基于半导体的存储器单元的非易失性存储器存储介质;铁磁数字存储器;MRAM ;包括寄存器、缓冲器或高速缓存、主存储器等等的易失性存储介质;包括计算机网络、点对点通信设备、以及载波传输介质,仅举几例。计算机处理通常地包括执行的(运行的)程序或程序的部分、当前程序值和状态信息、以及由操作系统用于管理处理的执行的资源。计算机系统可以例如包括至少一个处理单元、关联的存储器和大量的输入/输出(I/o)设备。当执行计算机程序时,计算机系统根据计算机程序处理信息并且通过I/o设备产生得到的输出信息。在前面的说明中,已经参照本发明实施例的特定例子对本发明进行了描述。然而,很明显,可在不脱离所附权利要求中所陈述的本发明的宽精神及范围的情况下做出各种修改和变化。本发明所讨论的连接可以是任何类型的连接,该连接适于例如通过中间设备传送来自相应节点、单元或设备的信号,或者将信号传送到相应节点、单元或设备。因此,除非暗示或说明,连接例如可以是直接连接或间接连接。连接可被说明或描述,涉及单一连接、多个连接、单向连接、或双向连接。然而,不同实施例可以改变连接的实现。例如,可以使用单独单向连接而不是双向连接,反之亦然。此外,多个连接可以被替换为串行地或以时间多路复用方式传输多个信号的单一连接。同样地,携带多个信号的单一连接可被分离成携带这些信号的子集的各不同的连接。因此,存在传输信号的许多选择。本领域所属技术人员将 认识到,逻辑块之间的界限仅仅是说明性的并且替代实施例可以合并逻辑块或电路元件,或在各个逻辑块或电路元件上强加替代的分解功能。因此,应了解,本发明描述的架构仅仅是示范的,并且事实上实现相同功能的很多其它架构可以被实现。例如,便于描述的清晰和方便,速率控制模块140已经被说明为包括位于图1的可伸缩视频编码系统100内的分立的组件。然而,应了解,根据本发明示例实施例适配的速率控制模块140可以同样地形成例如视频编码模块的集成部分,例如在图1中所说明的视频编码器模块110。为实现相同功能的组件的任何排列是有效“关联”的,以便所需的功能得以实现。因此,本发明中结合在一起以实现特定功能的任何两个元件可以被看作彼此“相关联”以便所需的功能得以实现,不论架构或中间元件如何。同样地,如此关联的任何两个组件还可以被认为是彼此被“可操作连接”或“可操作耦合”以实现所需的功能。此外,本领域所属技术人员将认识到上述描述的操作功能之间的界限只是说明性的。所述多个操作可合并成的单一的操作,单一的操作可以分布在额外操作中以及可在至少部分重叠的时间内执行操作。而且,替代实施例可以包括特定操作的多个实例,并且操作的顺序在各种其它实施例中会改变。又如,例子或其的多个部分可以作为物理电路的软或代码表征被实现,或作为能够转化成物理电路的逻辑表征,例如在任何合适类型的硬件描述语言中被实现。此外,本发明不限于非程序化硬件中被实现的物理设备或单元,而是也可以应用在可编程设备或单元中,这·些可编程设备或单元通过根据合适的程序代码操作能够执行所需的设备功能,例如,主机、微型计算机、服务器、工作站、个人电脑、笔记本、个人数字助理、电子游戏、汽车和其它嵌入式系统、手机和各个其他无线设备,它们在本申请中被共同表示“计算机系统”。然而,其它修改、变化和替代也是可能的。说明书和附图相应地被认为是说明性的而不是限制意义的。在权利要求中,放置在括号之间的任何附图标记不得被解释为限制权利要求。词语“包括”不排除存在权利要求中所列出的那些之外的其它元素或步骤。此外,本发明所用的“一”被定义为一个或多个。并且,即使当相同权利要求包括介绍性短语“一个或多个”或“至少一个”以及诸如“一”的不定冠词,权利要求中的诸如“至少一个”和“一个或多个”的介绍性短语的使用不应当被理解为暗示由不定冠词“一”介绍另一个权利要求元素是将包含该所介绍的权利要求元素的任何特定权利要求限制到仅包含一个此类元素的发明。使用定冠词也是如此。除非另有说明,使用术语如“第一”以及“第二”是用于任意区分这些术语描述的元素。因此,这些术语不一定表示时间或这些元素的其它优先次序。某些措施在相互不同的权利要求中被列举的事实并不表示这些措施的组合不能被用于获取优势。
权利要求
1.一种用于可伸缩视频编码系统内的位速率控制的方法(500),所述方法包括,对于可伸缩编码视频位流内的访问单元执行: 确定所述可伸缩编码视频位流内的至少一个空间相关层的位预算(525);以及 至少部分地基于所述至少一个空间相关层的所确定的位预算来计算用于编码所述至少一个空间相关层的至少一个量化参数(QP)值(530、560)。
2.根据权利要求1所述的方法(500),其中所述方法包括至少部分地基于所述至少一个空间相关层的所确定的位预算来计算(530、560): 用于编码所述至少一个空间相关层的质量基层的QP值;以及 用于编码所述至少一个空间相关层的至少一个质量增强层的至少一个QP值。
3.根据权利要求1或2所述的方法(500),其中所述方法还包括估计所述至少一个空间相关层的层间失真(515),以及至少部分地基于所述至少一个空间相关层的所确定的位预算和估计的失真来计算用于编码所述至少一个空间相关层的所述至少一个QP值(530、560)。
4.根据任何前述权利要求所述的方法(500),其中所述方法包括使用至少一个R-Q(速率-量化)模型计算所述至少一个QP值。
5.根据任何前述权利要求所述的方法(500),其中所述方法包括,在编码所述可伸缩编码视频位流内的 访问单元之前: 确定所述访问单元内的至少一个空间相关层的位预算(525);以及 至少部分地基于所述至少一个空间相关层的所确定的位预算来计算用于编码所述至少一个空间相关层的至少一个初始QP值(530), 所述方法还包括,在编码所述访问单元期间: 至少部分地基于层内失真来计算用于编码所述至少一个空间相关层的至少一个修订的 QP 值(560)。
6.根据权利要求5所述的方法,其中所述方法包括,在编码所述访问单元期间,在所述至少一个空间相关层的图像内以行为基础计算所述至少一个修订的QP值(560)。
7.根据权利要求6所述的方法(500),其中还基于在编码所述至少一个空间相关层期间的先前的位预算消耗来计算所述至少一个修订的QP值。
8.根据任何前述权利要求所述的方法(500),其中所述方法还包括收集位使用数据和失真数据的组中的至少一个(570),以及使用这种收集的数据来更新(575)包括以下的组中的至少一个: 用于计算QP值的至少一个R-Q (速率-量化)模型;以及 用于估计层间/层内失真的至少一个失真预测模型。
9.一种包括速率控制模块(140)的可伸缩视频编码系统(100),该速率控制模块(140)被设置为,对于所述视频编码系统(100)输出的可伸缩编码视频位流(115)内的访问单元(310、320、330)执行: 确定所述可伸缩编码视频位流(115)内的至少一个空间相关层(410、420)的位预算;以及 至少部分地基于所述至少一个空间相关层(410、420)的所确定的位预算来计算用于编码所述至少一个空间相关层(410、420)的至少一个量化参数(QP)值(145)。
10.一种包括速率控制模块(140)的集成电路设备(105),该速率控制模块(140)被设置为,对于视频编码系统(100)输出的可伸缩编码视频位流(115 )内的访问单元(310、320、330)执行: 确定所述可伸缩编码视频位流(115)内的至少一个空间相关层(410、420)的位预算;以及 至少部分地基于所述至少一个空间相关层(410、420)的所确定的位预算来计算用于编码所述至少一个空间相关层 (410、420)的至少一个量化参数(QP)值(145)。
全文摘要
描述了一种用于可伸缩视频编码系统内的位速率控制的方法(500)。所述方法包括对于可伸缩编码视频位流内的访问单元,确定可伸缩编码视频位流内的至少一个空间相关层的位预算(525);以及至少部分地基于所述至少一个空间相关层的所确定的位预算来计算用于编码所述至少一个空间相关层的量化参数(QP)值(530、560)。
文档编号H04N7/26GK103250411SQ201080070327
公开日2013年8月14日 申请日期2010年11月25日 优先权日2010年11月25日
发明者耶胡达·伊特斯卡克, 亚尼夫·克莱因, 埃雷兹·施泰因贝格 申请人:飞思卡尔半导体公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1