专利名称:用以减少包化额外开销的视频编码速率调适的制作方法
技术领域:
本发明涉及数字视频编码,且更特定来说涉及用于控制视频编码速率的技术。
背景技术:
数字视频能力可并入到广泛范围的装置中,包含数字电视、数字直播系统、无线通
信装置、个人数字助理(pda)、膝上型计算机、台式计算机、视频游戏控制台、数码 相机、数字记录装置、蜂窝式或卫星无线电话和类似物。数字视频装置可在处理和传输 视频序列方面提供较常规模拟视频系统的显著改进。
已建立不同视频编码标准用于编码数字视频序列。运动图像专家组(mpeg)已发 展包含例如mpeg-1、 mpeg-2和mpeg-4的众多标准。其它实例包含国际电信联盟 (itu) -t h.263标准和新兴的itu-t h.264标准及其对应物iso/iec mpeg-4, part 10, 即,高级视频编码(avc)。这些视频编码标准通过以压縮方式编码数据来支持视频序 列的改进的传输效率。
速率控制技术用以调整分配到每一视频帧的编码位的数目,即编码速率。编码速率 可经调整以确保经编码视频序列符合质量要求和/或带宽限制。一些速率控制技术经设计 以产生恒定编码速率,而其它速率控制技术经设计以产生恒定质量。其它速率控制技术 可使编码速率与质量水平平衡,且响应于视频帧内容。
在包交换网络(有线或无线)中,经编码视频经包化以用于传输。可适用的网络协 议通常规定包大小要求。举例来说,用于因特网传输的传输控制协议(tcp)规定最大 传输单位(mtu)。假定所规定的包大小,可将经编码视频的突发分割为多个包以在网 络上传输。 一般来说,突发的大小可能并不与包的大小精确地匹配。出于此原因,最后 包通常将包含至少一些填充位。
发明内容
本发明描述用于视频编码速率调适以减少包化额外开销的技术。视频编码速率控制 分配到经编码视频的片段的编码位的数目,且因此控制经编码视频片段的长度。经编码 视频片段的长度与用以编码视频片段的一系列包的累积长度之间的差导致所述系列中最后包内的未使用的包空间。此未使用的包空间通常以填充位加以填补。根据本发明, 针对数字视频的片段调整视频编码速率,以使得经编码视频更贴切地配合于所述系列的 包内,借此减少最后包所需的填充位的数目。
在一个方面,本发明提供一种视频编码方法,其包括确定用以包化数字视频数据的 经编码片段的包的大小,和基于所述包大小而选择用于数字视频数据的所述片段的编码 速率。
在另一方面,本发明提供一数字视频编码设备,其包括速率控制单元,所述速率控 制单元确定用以包化数字视频数据的经编码片段的包的大小,且基于所述包大小而选择 用于数字视频数据的所述片段的编码速率。
在一额外方面,本发明提供一种用于编码数字视频数据的处理器,所述处理器经配 置以确定用以包化数字视频数据的经编码片段的包的大小,且基于所述包大小选择用于 数字视频数据的所述片段的编码速率。
可在硬件、软件、固件或其任何组合中在数字视频设备中实施本发明中所描述的技 术。如果在软件中实施,那么可在例如处理器的机器中执行软件。根据本发明,软件可 最初作为指令存储于机器可读媒体中且由所述机器执行以支持视频编码速率调适以减 少包化额外开销。
以下附图和描述内容中陈述各种方面的额外细节。从描述内容和图式以及从权利要 求书中将了解其它特征、目的和优点。
图1是说明根据本发明的一方面采用视频编码速率调适以减少包化额外开销的数字
视频处理设备的框图。
图2是说明具有导致大量包化额外开销的编码速率的视频片段的包化的图。
图3是说明根据本发明具有导致减少的包化额外开销的经调适包速率的视频片段的
包化的图。
图4是说明视频片段剩余物大小在通过若干不同类型的内容联系的视频序列上的分 布的曲线图。
图5和6是说明用于控制编码速率以减少包化额外开销的函数的曲线图。 图7是说明根据本发明的一方面用于视频编码速率调适以减少包化额外开销的方法 的流程图。
图8是说明在图7的方法中使用历史数据来调整视频编码速率的流程图。
具体实施例方式
本发明描述用于视频编码速率调适以减少包化额外开销的技术。视频编码速率控制分配到经编码视频的片段中的帧的位的数目,且因此控制经编码视频片段的长度。经编码视频片段的长度与用以编码视频片段的一系列包的累积长度之间的差导致所述系列中最后包内的未使用的包空间。此未使用的包空间通常以填充位加以填补,从而导致浪费带宽。
根据本发明,针对数字视频片段中的帧而调整视频编码速率以使得经编码视频更贴切地配合于所述系列的包内,借此减少最后包所需的填充位的数目。举例来说,可最大化或至少增加片段的落入最后包中的部分(即,剩余物)以与最后包的大小更贴切地匹配,从而留下较少的用于填充位的空白空间。
一般来说,在一些方面,可基于用以控制用于片段的编码速率的速率控制算法的所估计方差和指示数字视频数据的先前经编码片段的剩余物的平均值的历史数据而选择编码速率。视频编码速率调适技术适于不同视频内容,可需要低计算复杂性且可以可经精细调谐以用于不同速率控制算法的多个参数为特征。
可与例如mpeg-1、 mpeg-2或mpeg-4标准、itu h.263或h.264标准或iso/iecmpeg-4, part io标准(即,高级视频编码(avc),其大体上与h.264标准相同)的多种预测视频编码标准中的任一者一起使用所述技术。举例来说,如本发明中所描述的用于视频编码速率调适的技术可结合标准速率控制算法而使用,以便调整速率来获得增强的包化额外开销效率。在一些方面,用于视频编码速率调适的技术可用以调整由标准速率控制算法产生的编码速率。所述标准速率控制算法可为恒定速率或可变速率算法。
图1是说明实例数字视频处理设备io的框图。在图1的实例中,视频处理设备10包含视频源12、视频编码器14、视频包化器16和传输器18。视频处理设备io可驻留于能够编码和传输视频数据的任何装置内,例如视频相机、数字直播系统、例如蜂窝式或卫星无线电话的无线通信装置、个人数字助理(pda)、膝上型计算机、台式计算机、视频游戏控制台或类似物。
视频源12可为例如视频相机的视频俘获装置,或存储先前俘获的数字视频的视频档案(archive)。视频源12还可为到实况或经存档视频馈入的接口 。视频编码器14包含视频编码模块20,其根据如以上所提及的多种视频编码标准中的任一者(例如h.264)而编码从视频源12获得的视频。另外,视频编码器14包含速率控制模块22,其控制由视频编码模块20用以编码视频片段内的帧的编码速率。编码速率规定分配到视频片段中的帧的编码位的数目。
视频包化器16从视频编码模块20接收经编码视频片段且将经编码视频片段分割为一系列包以经由传输器16传输。所得包可从应用层传递到其它层(例如传送层和物理层)以用于例如多路复用、额外包化和其它操作等进一步处理。
由视频包化器16产生的每一包可包含经编码视频数据的片段的一部分,以及任何可适用的标头数据。明确地说,每一包可载运来自视频片段的一个或一个以上帧。用以编码视频片段的所述系列的包中的最后包将载运视频片段的"剩余物",s卩,不配合于所述系列中的先前包的剩余部分,加上填充位所占有的空白空间。
在一些状况下,可在视频包化之前将视频编码模块20所产生的经编码视频数据存档于(例如)视频处理设备10内的存储器或数据存储装置中。或者,可存档而非立即传输由视频包化器16产生的经包化视频。在任一状况下,传输器18可为能够在有线或无线通信媒体(例如,包交换网络)上传输由视频包化器16产生的包的任何合适的传输器。
视频编码模块20以突发形式产生经编码视频数据的片段。归因于其"突发性"性质,压縮视频流具有时变带宽。在h.264标准的状况下,例如,由视频编码模块20处理的每一视频数据片段可为所谓的超帧(sf),其通常构成视频数据的一秒突发。所述sf可载运视频数据的多个帧。举例来说,在一些应用中,sf可载运大致30个帧。所述帧是视频序列中的连续图像,且可经帧内编码为i帧,经帧间编码为p帧,或经帧间编码为双向(b)帧。
帧可为不同大小,且包可载运一个或一个以上帧。出于此原因,视频数据的每一片段(例如,每一sf)依据与视频数据片段中的内容相关联的位的数目可具有不同大小。分配到每一帧的编码位的数目也可不同。此外,越过片段中的帧分配的编码位的数目(即,用于片段的编码速率)依据本发明中所描述的速率控制调适技术而不同。
含有相对高复杂性场景的视频数据的片段的大小通常将大于含有相对低复杂性场景的视频数据的片段的大小。另外,片段内的个别帧的大小可根据复杂性而变化。举例来说, 一些帧可包含比其它帧较运动或较复杂的纹理。无论如何,每一帧的大小和含有多个帧的片段的大小将在帧之间且在片段之间变化。出于这些原因,可变速率控制算法会将不同编码速率分配到不同片段。
由视频包化器16产生的每一包可具有固定大小,或经受一些约束的可变大小。举
例来说,可适用的网络协议通常设定最大包大小要求,例如为tcp规定的mtu。假定
所规定的包大小,通过视频包化器16将视频编码器14所编码的视频的片段分割为多个包以在网络的上传输。 一般来说,由视频编码模块20产生的经编码视频的大小将不与由包化器16产生的包的大小精确地匹配,且如上文所提及,将为时变的。
归因于经编码视频片段的大小与载运经编码视频片段所需要的若干包的累积大小
之间的失配,由包化器16产生的最后包将通常包含至少一些填充位。填充位填补由经编码视频的大小与包的累积大小之间的失配产生的空白空间。填充位的包含是无效的,导致可用于其它目的的带宽的消耗。根据本发明,速率控制模块22调整视频编码模块20所应用的编码速率来以经规划以减少包化器16所需的填充位的数目的方式编码视频片段中的帧。以此方式,可使得基于包的编码和视频数据的通信更有效。
根据本发明,速率控制模块22可应用经偏移以减少包化额外开销的标准速率控制算法。举例来说,速率控制模块22确定用以包化视频编码模块20所产生的经编码数字视频数据的包的大小。如图1中所示,速率控制模块22可从视频包化器22接收包大小。包大小可为固定或可变的,且由视频包化器22在逐包(packet-by-packet)、周期性或间歇性基础上而规定。或者,包大小可为固定的且为速率控制模块22已知的。在任一状况下,速率控制模块22获得待用以包化经编码视频片段的视频包的大小。
另外,速率控制模块22可接收指示数字视频数据的先前经编码片段的平均剩余物的历史数据。基于包大小和/或历史信息,速率控制模块22选择待由视频编码模块20用于待编码的数字视频数据的当前片段的编码速率。编码速率可在片段之间改变。明确地说,由速率控制模块22设定的编码速率可依据待编码的当前片段的大小而改变,以使得速率控制模块22在逐片段基础上调适视频编码速率以减少包化额外开销。以此方式,速率控制模块22可适于视频内容在片段之间的改变。
使用选定编码速率,视频编码模块20编码视频数据片段以与用以载运经编码视频数据片段的一系列包的累积大小更贴切地匹配。以此方式,速率控制模块22减少包化额外开销且促进带宽效率。带宽效率对于任何通信媒体可能是重要的,但对于具有有限带宽的无线通信媒体尤其重要。此外,带宽效率对于涉及无线信道的上的视频序列的实时传输的应用可能是显著关注的问题。
图2是说明具有导致大量包化额外开销的编码速率的视频片段的包化的图。如图2中所示,编码模块20编码数字视频数据的片段23。出于说明的目的(但无限制),片段23可被称作超帧(sf)。本文中所描述的技术可应用于任何大小的片段。再次,sf通常指具有视频序列的大致三十个连续帧的片段,但帧的数目将在sf之间变化。
在图2的实例中,编码模块20 (例如)使用标准速率控制算法来以给定编码速率编
码片段23,而不考虑经编码片段23相对于用以包化片段的包的大小如何。包化器16在整数数目个包24a-24n (统称为包24)之间分割片段23。每一包24载运经编码视频片段23的一部分,且还可载运适量的标头信息或其它管理数据。视频片段23经编码以包含视频数据的多个帧25。每一包24可载运多个经编码帧25。
由于所述系列的包24a-24n的累积大小大于经编码视频片段23的大小,所以最后包24n具有大量空白空间26,包化器16以填充位填补所述空白空间。换句话说,经编码视频片段23的最后剩余部分仅填补最后包24n的一部分28,留下空白空间26,其被浪费且以填充位填补。空白空间26的量随当前视频片段的大小改变而在片段之间变化。然而,在每一状况下,通常将存在某一量的空白空间26,从而导致无效带宽利用。
图3是说明根据本发明具有导致减少的包化额外开销的经调适包速率的视频片段的包化的图。图3的图大体上符合图2的图。然而,在图3的实例中,速率控制模块22基于每一包24a-24n的大小而调整视频片段23中所载运的帧25的编码速率以产生与包24a-24n的累积大小更贴切地匹配的经编码视频片段23。在此状况下,编码模块20以经选择以更有效地利用包带宽的编码速率编码片段23中的帧25。举例来说,速率控制模块22可经配置以修改标准速率控制算法以使得包化额外开销可得以减少。
在选择经调适编码速率时,速率控制模块22考虑每一包24a-24n的大小和(视情况)由标头或任何其它管理信息消耗的每一包的量。速率控制模块22经设计以选择促使经编码视频片段适合整数数目个包24而不需大量填充位的编码速率。载运经编码视频片段23所需的包的数目并不特别重要。事实上,所关注的特征是最后包中片段剩余物的大小。在一些状况下,填充位的减少可直接导致在编码给定片段内的帧时的轻微质量改进。在其它状况下,可轻微地降低质量以确保帧的片段适合包而无需大量填充。
一般来说,速率控制模块22可经设计以支持整数数目个包的轻微不足而非轻微超越,以使得速率控制模块22驱动编码速率以产生相对大的剩余物。相对大的剩余物又产生最后包中相对少量的空白空间,从而促进增强的带宽利用。如将加以描述,为了偏移(bias)速率控制算法以产生较大剩余物,速率控制模块22可(例如)依据其准确度来考虑速率控制算法的所估计方差,所述准确度是依据经分配位与用于先前经编码片段的实际位之间的差。另外,速率控制模块22可考虑指示数字视频数据的先前经编码片段的剩余物的平均值的历史数据。
在考虑包24的累积大小时,速率控制模块22可假定每一包的固定大小或可变包大
小。在本发明中出于说明的目的将假定固定大小,但不具有如广泛体现且描述的速率控
制技术的限制。再次,本发明可适用于在逐包基础上或在周期性或间歇性基础上变化的
可变包大小。值得注意的是,用以包化视频片段的一系列包中包的数目不需为固定的,且通常将不是固定的,而是可依据待编码的片段的编码速率和复杂性而变化。因此,速率控制模块22可以减少具有固定大小的可变量目个包的包化额外开销的方式选择编码速率。
速率控制模块22可应用大体如下文描述的算法。举例来说,为了说明可由速率控制模块22实施的示范性速率控制算法,假定将每一秒的数字视频作为突发传输,所述突发可被称作超帧(sf)。第/t个sf中位6的数目为6 "人为了包化,进一步假定第yt个sf中的6u)个位需分裂为包,每一包具有"个位。换句话说,每一包包含"个位的空间(不包括标头和其它管理信息),以载运第a:个sf的可包含一个或一个以上经编码帧的部分。
用以载运第a个sf的所述系列的包中的最后包可经填充以形成w个位。因此,经传输用于第a个sf的位b (包含经编码视频位和经填充位)的实际数目为
40 =天棚
, m
、m 乂
其中ceiling表示天棚函数,其产生大于或等于变量的最小整数。因此,当应用于b(k) /u时,天棚函数产生载运第a:个sf的位所需要的包的数目,而b (k)是整个系列的包中位的总数,包含视频位和填充位。为了减少包化额外开销,应使用较少填充位。
图4是说明经编码视频片段大小在通过若干不同类型的内容(例如动画、音乐视频、新闻和运动)联系的长视频测试序列上的分布的曲线图。图4中的数据是可经评估以估计先前编码的片段的平均剩余物的历史数据的实例。每一片段可被称作超帧(sf),且可假定其包含视频数据的一秒突发。在图4的实例中,以256千位/秒(kbps)的标称
速率编码视频片段。
在图4中,垂直条30展示片段大小分布,且模数"=12千位。因此,出于图4的目的,假定每一包具有12千位以容纳sf的至少一部分,例如, 一个或一个以上帧。图4中的x轴(剩余物)表示超过在整数数目个包中可用的位的累积数目的sf位的数目。换句话说,x轴表示最后包中将通过sf填补的剩余物位的数目。因此,x轴还间接地指示将需添加到sf位以便完全填补所述包的填充位的数目,且提供包化额外开销的指示。
y轴(freq)表示主题视频测试序列中视频片段的数目,主题视频测试序列具有产生x轴上所示的剩余物水平的若干位。举例来说,图4中的图表展示在测试序列中存在产生为零的剩余物的大致42个sf',由于那些sf'中的每一者中的位的数目与整数数目个包中可用的位的数目精确地匹配。相比之下,在测试序列中存在产生为大致6000个位的剩余物的大致112个sf'。由于每一包提供12千位以容纳sf,所以剩余6000个位填补最后包的一半。因此,最后包需要6000个额外填充位以填补包中的空白空间。类似地,存在具有9000个位的剩余物水平的大致108个sf',以使得最后包需要3000个填充位以填补包中的全部12千位。
从图4可看出,片段之间的剩余物分布接近均匀分布。然而,为了减少包化额外开销,需要调适可适用的速率控制算法以改变以上分布。明确地说,需要改变分布以使得其更紧密地符合图4中的曲线32。通过适当速率控制,曲线32提供为零或与最后包的大小紧密地匹配的sf剩余物的大得多的分布(例如,12 kbps)。换句话说,与曲线32一致,需要sf具有零剩余物以使得最后包完全得以填补且不需额外包,或需要sf具有非常大的剩余物以使得最后包几乎得以填补且需要非常少的填充位。
另外,根据曲线32,具有小到中等大小的剩余物的sf'的分布大体上得以减少。曲线的最左侧表示轻微超越,而曲线的最右侧表示轻微不足。精确匹配不需要填充位。轻微不足需要非常少的填充位,其是带宽效率的目的所需的。相比之下,轻微超越需要大量填充位,且产生带宽的显著浪费。作为一实例,假定由每一包提供12千位的空间,由11000个视频位的剩余物产生的轻微不足将仅需要1000个填充位。相比之下,轻微超越将产生需要不合需要的大量填充位的非常小的剩余物。举例来说,1000个视频位的轻微超越将需要最后包包含11000个填充位。
通过基于包大小、所估计方差和平均剩余物来控制编码速率,速率控制模块22(图1)可调整sf分布以产生稍微地不足包大小的更多较大大小的剩余物,且借此减少由填充位填补的浪费的包空间。可一次建立如图4中所示的表示一系列先前经编码片段上的历史平均剩余物数据的一组测试数据,且(例如)在使用视频处理设备之前,评估所述组测试数据以定义用于速率控制以减少包化额外开销的调适函数。在此状况下,用于适应性速率控制的平均数可基于预测待由视频编码器14处置的视频片段的一组静态历史数据。或者,可随着时间更新历史数据以用于由视频编码器处置的实际视频片段,以使得适应性速率控制根据先前经编码视频片段序列上的平均剩余物而动态地改变。
作为一个实例,历史数据可经建立用于个别视频处理设备或经建立用于一类别或种
类的视频处理设备。在任一状况下,可(例如)在"工厂"将从数据的分析中产生的调
适函数载入视频处理设备中。或者或另外,可从实际视频数据获得一组测试数据且在视
频处理设备10的操作期间周期性地分析所述组测试数据,以使得函数可周期性地得以
更新或校准到由视频处理设备处置的实际视频内容。作为另一替代方法,如上文所提及,可(例如)在经编码视频片段的滑动窗口上周期性或大体上连续地分析平均剩余物值,以使得速率控制模块22适于为先前经编码视频片段产生实际剩余物值。
历史数据可被提供为到速率控制模块22的输入,例如,作为指示剩余物值的一组数据或作为指示平均值的预处理值。为了所述目的,用于平均剩余物值的动态分析的功能性可提供于视频编码器14的单独组件中或整合于速率控制模块22内。在任一状况下,视频包化器模块16可经装备以指示包化每一经编码视频片段所需的填充位的数目,且因此指示每一视频片段的剩余物值。
将进一步参看图4的实例来描述用于定义调适函数的历史数据的分析和处理。对于例如图4中所示的数据集,曲线32的机率分布可以以下等式为特征
p(x) = u v4 j((//-",o"2) 0《^1os"l, (2)
其中x是x轴上的sf剩余物,」是可基于模拟而选择的模型参数,且:
exp
(3)
是具有在p处的平均数和a2的方差的剩余物x的正态分布nx (ma2),其中方差cj2指示由编码器14的速率控制模块22的标准速率控制算法和因此速率控制算法的准确度决定(shape)的编码位的方差。可基于经获得用于速率控制算法的实际数据而选择方差,或可估计方差。应注意,在不失一般性的情况下,将以上机率函数从[o,m]归一化到[o,l]。
对于图4的实例中的正态分布来说,68.3%的机率处于p左右的[-a,(j]内,95.4%的机率处于p左右的[-2o,2o]内,且99.7%的机率处于ia左右的[-3cj,3cj]内。因此,如果假定cj《0.5,那么以上分布可近似为
formula see original document page 13(4)
为了实现最小包化额外开销,如下最大化sf剩余物x的平均数h:因此,为了最大化五(x),最大化以下函数
依据可从模拟估计的使用中的速率控制算法的标准偏差,等式(6)中|i的值可用以进一步精细调谐速率控制目标,(例如)如以下等式(9)到(12)中所示。
图5是出于进一步说明的目的标绘以上函数/ 在cj=0、 0.1、 0.2、 0.3、 0.4和0.5的状况下的曲线图。图5的曲线图展示对于由02表示的不同方差来说函数中的差异。因此,为了实现sf剩余物的所需分布,假定已知可适用于特定编码器14的(j2,可选择不同/曲线供速率控制模块22使用。对于(j》0.39894228来说,在『1处实现/
的最大值,而对于较小c5来说,当满足以下准则时,实现/0^的最大值formula see original document page 14formula see original document page 15°
以上表达式产生应经选择以实现最佳地减少包化额外开销的sf剩余物的所需分布 的最佳h。因此,可连续或周期性地偏移速率控制模块22所选择的编码速率以使得最佳 p,或在最佳p的预定容限内的某一ia可大体上得以维持。再次,可基于表征先前通过 视频编码模块20编码的视频片段的静态历史数据或随时间过去经周期性或连续地更新 以用于实际上由视频编码模块20编码的视频片段的动态历史数据而获得p。
图6是出于进一步说明的目的标绘以上表达式(8)中的p。pt与(j之间的关系的曲 线图。由速率控制模块22所使用中的速率控制算法的准确度确定标准偏差cr。如果速率 控制算法可调适sf大小模数"直方图以使得0.2《o《0.25,那么应选择p的工作点大 致为0.77。
对于速率控制算法的帧水平,通常在编码帧之前指定目标帧大小。如果假定此目标 帧大小为尸,,那么在帧的编码之后,实际帧大小为尸。。在f,与尸。之间通常存在失配且 其间的比率是缓慢改变的变量。可如下表达f,与f。之间的比率
formula see original document page 15可通过如下使用线性加权函数来估计比率y:
formula see original document page 15其中a是具有表示当前视频内容的持久性的值的加权因数。由速率控制模块22(图 1)实施的速率控制算法可经配置以如下以下一帧大小目标执行帧水平速率控制
^formula see original document page 15其中&^是由速率控制模块22估计的sf大小,舍入是舍入函数(rounding function), 且p是从速率调适之后sf大小模数"的峰度估计的。通过应用以上速率控制算法,与不具有速率调适的速率控制算法对比,速率控制模块22可实现较低填充额外开销。
在以上算法中,速率控制模块22基于目标帧大小f,而调整帧水平编码速率。速率 控制模块22又基于所估计sf大小和包大小w,以及实际帧大小与目标帧大小的比率y 和平均数p而确定目标帧大小。以此方式,速率控制模块22补偿目标帧编码速率与实 际帧编码速率之间的差。在操作中,由速率控制模块22实施的速率控制算法设定速率 控制目标。为了维持最后包的高度占用,可在周期性或连续基础上精细调谐速率控制目
标以在模数意义上大体上维持最佳p。因此,可通过"插入"任何现有速率控制算法以 精细调谐速率控制目标以使得最后包达到平均最大丰满度的算法来实现速率控制目标
的此精细调谐。
应注意,由速率控制模块22应用的sf水平速率调适可与画面群组(gop)或截剪 水平(slice level)速率控制算法合作以提供添加的错误复原(error resilience)。举例来 说,如果sf中待编码的最后帧具有显著小的编码复杂性且在w = 12千位的模数大小中 存在大剩余带宽,那么所编码的当前帧可为错误复原调适截剪大小。举例来说,模式决 策还可经调整以利用剩余位来改进错误复原。举例来说,更多宏区块可经帧内编码而非 帧间编码以从可能信道减损恢复。在此状况下,额外编码位代替填充位。换句话说,此 技术准许最后包中的编码位的数目相对填充位的数目有所增加。
图7是说明根据本发明的一方面用于减少包化额外开销的视频编码方法的流程图。 可通过图1的视频处理设备10,及(明确地说)视频编码器14的编码模块20和速率控 制模块22以及包化器16来实施图7的方法。如图7中所示,编码模块20从视频源12 接收视频数据的片段(70)。编码模块20基于包化器所提供的信息或基于假定由包化器 使用的预定包大小而确定由包化器16产生的包的大小(72)。
一旦确定包大小,速率控制模块22便基于包大小而选择编码速率(74)。编码模块 20应用选定编码速率来编码视频数据片段(76),且包化器16包化由编码模块产生的经 编码视频数据片段(78)。过程随后继续到下一片段(卯)且重复。因此,速率控制模 块22基于包大小而适应性地选择用于待编码的每一新视频片段的编码速率,且借此减 少包化额外开销。
图8是说明在图7的方法中使用历史数据来调整视频编码速率的流程图。一般来说,
图8说明图7的实例中用于选择编码速率(74)的额外细节。如图8中所示,对于响应
于在操作期间由视频处理设备io处理的实际视频数据的速率控制,速率控制模块22可
获得或存取历史数据(82)。历史数据指示数字视频数据的先前经编码片段的剩余物的
平均值,且可类似于图4的曲线图中所标绘的数据。再次,先前经编码视频片段的平均值可在经编码视频片段的滑动窗口上获得,且可由视频编码器14内的另一组件的速率 控制模块22加以分析并计算。
一旦估计速率控制模块22所使用的速率控制算法的方差(84),速率控制模块22 便从历史数据获得平均剩余物值(86)且偏移编码速率以(例如)使用以上等式(6) 来增加未来片段的剩余物的平均大小(88)。如先前所提及,可基于获得用于速率控制 算法的实际数据而选择方差,或可估计或假定方差。 一旦调整编码速率以最大化或优化 平均剩余物值,图8中所说明的过程便可针对待编码的连续视频片段进行重复,如环路 89所指示。
可在硬件、软件、固件或其任何组合中实施本文中所描述的技术。可在视频编码器 -解码器(codec)内实施例如视频编码模块20和速率控制模块22的各种组件。如果 实施于软件中,那么技术可针对包括程序代码或指令的机器可读媒体,当所述程序代码 或指令在编码视频序列的机器中执行时其执行以上所提及的方法中的一者或一者以上。 在所述状况下,计算机可读媒体可包括例如同步动态随机存取存储器(sdram)的随 机存取存储器(ram)、只读存储器(rom)、非易失性随机存取存储器(nvram)、 电可擦除可编程只读存储器(eeprom)、快闪存储器和类似物。
程序代码或指令可以计算机可读指令的形式存储于存储器上。在所述状况下,例如 dsp的处理器可执行存储于存储器中的指令以便实行本文中所描述的技术中的一者或 一者以上。在一些状况下,可通过调用各种硬件组件以加速编码过程的dsp来执行所述 技术。在其它状况下,视频编码器可实施为微处理器、 一个或一个以上专用集成电路 (asic)、 一个或一个以上场可编程门阵列(fpga)或某一其它硬件-软件组合。
已描述各种方面。这些和其它方面在所附权利要求书的范围内。
权利要求
1.一种视频编码方法,其包括确定用以包化数字视频数据的经编码片段的包的大小;以及基于所述包大小而选择用于数字视频数据的所述片段的编码速率。
2. 根据权利要求l所述的方法,其进一步包括使用所述选定编码速率来编码数字视频数据的所述片段;以及 经由一系列包来包化数字视频数据的所述经编码片段,其中数字视频数据的所述经编码片段包含填补所述系列的包中的最后包的一部 分的剩余物。
3. 根据权利要求2所述的方法,其进一步包括基于用以编码数字视频数据的所述片段的速率控制算法的所估计方差和指示数字视频数据的先前经编码片段的所述剩余 物的平均值的历史数据而选择所述编码速率。
4. 根据权利要求3所述的方法,其中选择所述编码速率包括选择所述编码速率以增加 所述剩余物的大小,借此减少填补所述最后包所需的填充位的数目。
5. 根据权利要求1所述的方法,其中所述包中的每一者具有固定包大小。
6. 根据权利要求1所述的方法,其中所述片段包含多个帧,且选择所述编码速率包括 基于指示数字视频数据的先前经编码帧的目标大小与数字视频数据的所述先前经 编码帧的实际大小之间的差的变量而调整所述编码速率。
7. 根据权利要求1所述的方法,其进一步包括基于所述包大小而选择用于数字视频数 据的多个额外片段中的每一者的编码速率,使用所述选定编码速率来编码数字视频 数据的所述额外片段,和包化数字视频数据的所述额外经编码片段。
8. —种数字视频编码设备,其包括速率控制单元,所述速率控制单元确定用以包化数 字视频数据的经编码片段的包的大小,且基于所述包大小而选择用于数字视频数据 的所述片段的编码速率。
9. 根据权利要求8所述的设备,其进一步包括编码模块,其使用所述选定编码速率来编码数字视频数据的所述片段;以及 包化模块,其经由一系列包来包化数字视频数据的所述经编码片段, 其中数字视频数据的所述经编码片段包含填补所述系列的包中的最后包的一部 分的剩余物。
10. 根据权利要求8所述的设备,其中所述速率控制单元基于用以编码数字视频数据的 所述片段的速率控制算法的所估计方差和指示数字视频数据的先前经编码片段的 所述剩余物的平均值的历史数据而选择所述编码速率。
11. 根据权利要求io所述的设备,其中所述速率控制单元选择所述编码速率以增加所 述剩余物的大小,借此减少填补所述最后包所需的填充位的数目。
12. 根据权利要求8所述的设备,其中所述包中的每一者具有固定包大小。
13. 根据权利要求io所述的设备,其中所述片段包含多个帧,且所述速率控制单元基 于指示数字视频数据的先前经编码帧的目标大小与数字视频数据的所述先前经编 码帧的实际大小之间的差的变量而调整所述编码速率。
14. 根据权利要求8所述的设备,其中所述速率控制单元基于所述包大小而选择用于数 字视频数据的多个额外片段中的每一者的编码速率,所述设备进一步包括使用所述 选定编码速率来编码数字视频数据的所述额外片段的编码模块、包化数字视频数据 的所述额外经编码片段的包化模块。
15. —种用于编码数字视频数据的处理器,所述处理器经配置以确定用以包化数字视频 数据的经编码片段的包的大小,且基于所述包大小而选择用于数字视频数据的所述 片段的编码速率。
16. —种视频编码设备,其包括用于确定用以包化数字视频数据的经编码片段的包的大小的装置;以及 用于基于所述包大小而选择用于数字视频数据的所述片段的编码速率的装置。
17. 根据权利要求16所述的设备,其进一步包括用于使用所述选定编码速率来编码数字视频数据的所述片段的装置;以及 用于经由一系列包来包化数字视频数据的所述经编码片段的装置, 其中数字视频数据的所述经编码片段包含填补所述系列的包中的最后包的一部 分的剩余物。
18. 根据权利要求17所述的设备,其进一步包括用于基于用以编码数字视频数据的所 述片段的速率控制算法的所估计方差和指示数字视频数据的先前经编码片段的所 述剩余物的平均值的历史数据而选择所述编码速率的装置。
19. 根据权利要求18所述的设备,其进一步包括用于选择所述编码速率以增加所述剩 余物的大小借此减少填补所述最后包所需的填充位的数目的装置。
20. 根据权利要求16所述的设备,其中所述包中的每一者具有固定包大小。
21. 根据权利要求16所述的设备,其中所述片段包含多个帧,所述设备进一步包括用 于基于指示数字视频数据的先前经编码帧的目标大小与数字视频数据的所述先前 经编码帧的实际大小之间的差的变量而调整所述编码速率的装置。
22. 根据权利要求16所述的设备,其进一步包括用于基于所述包大小而选择用于数字 视频数据的多个额外片段中的每一者的编码速率的装置、用于使用所述选定编码速 率来编码数字视频数据的所述额外片段的装置,和用于包化数字视频数据的所述额 外经编码片段的装置。
23. —种机器可读媒体,其包括用于视频编码的指令,其中所述指令当执行时促使机器:确定用以包化数字视频数据的经编码片段的包的大小;且 基于所述包大小而选择用于数字视频数据的所述片段的编码速率。
全文摘要
本发明描述用于视频编码速率调适以减少包化额外开销的技术。所述视频编码速率控制分配到经编码视频的片段的编码位的数目,且因此控制所述经编码视频片段的长度。所述经编码视频片段的所述长度与用以编码所述视频片段的一系列包的累积长度之间的差在所述系列中的最后包内导致未使用的包空间。此未使用的包空间通常以填充位加以填补。根据本发明,针对数字视频片段而调整所述视频编码速率以使得所述经编码视频更贴切地配合于所述系列的包内,借此减少所述最后包所需的填充位的数目。
文档编号h04n7/26gk101529915sq200780040186
公开日2009年9月9日 申请日期2007年3月8日 优先权日2006年11月1日
发明者涛 田, 维贾雅拉克希米·r·拉温德朗 申请人:高通股份有限公司