利用视频编码中的帧复杂性、缓冲水平和内部帧位置的基于缓冲的速率控制的利记博彩app

文档序号:7938577阅读:227来源:国知局

专利名称::利用视频编码中的帧复杂性、缓冲水平和内部帧位置的基于缓冲的速率控制的利记博彩app
技术领域
:本发明一般涉及视频编码中的速率控制。具体地但不专有地,本发明涉及视频编码中利用帧复杂性、缓冲水平和内部帧位置的基于缓冲的速率控制。
背景技术
:过去数年已见证了数字和在线视频及其应用的广泛普及。随着快速通信技术和多媒体应用的出现,数字视频编解码器被用在诸多领域和系统中,例如使用MPEG-2(移动图片专家组-2)格式的DVD(数字视频光盘)中、使用MPEG-1(移动图片专家组-1)格式的VCD(视频高密光盘)中、新兴卫星和陆地广播系统中以及互联网上。特别地,视频应用的这一普及促使压縮和解压縮视频数据的视频编解码器的喜人发展。在视频数据压縮中,在视频质量和压縮率之间保持平衡,即,必要的数据传输质量或换言之再现视频所需的比特率。另外,还考虑了编码和解码算法的复杂性、对于数据丢失和错误的鲁棒性、压縮算法设计的现状、视频会议应用中的端到端延迟等。存在多种视频编码标准,其中的每个标准都被专门设计用于特定类型的应用。例如,由ITU(国际电信联盟)发布的H.263标准是用于低比特率(例如20-30kbps(千比特每秒)的范围)的视频编码和压縮标准。特别地,该标准支持视频会议和视频电话应用中的视频编码。11.263标准指定了经编码的数据流的格式和内容;因此,其在没有具体提供用于编码器和解码器自身的设计或结构的情况下设定了编码器和解码器要满足的要求。在视频压縮中,每张图片通常由两种图片来表示,其通常被称为帧,即内部帧(intraframe)和中间帧(interframe)。而且,中间帧被划分为两类,即P帧(预测帧)和B帧(双预测或双向帧)。内部帧表示独立于任意其它图片来编码的整个图片;因此,由于必须对整个图片的内容编码所以是耗带宽的。为了压縮并由此节省带宽,仅仅整个图片(或内部帧)之间的差别被编码并随后被发送。那些差别用P帧和B帧表示。例如,两张连续图片之间的背景通常不变,因此,这样的背景不需要被再次编码。区别于P帧的是B帧是双向的并且因此实施双向预测,即根据之前的和接下来的图片的预测。而且,在压縮视频时,为了处理目的图片被分成宏块(MB,macroblock)。实际上,逐个宏块地进行处理。每个宏块通常代表16X16象素的块。视频编码器一般包括运动估计模块、运动补偿模块、DCT(离散余弦变换)模块和量化模块。运动估计模块允许预测先前帧的哪些区域已被移入当前帧,从而那些区域不需要被重新编码。运动补偿模块允许对从先前帧向当前帧的区域移动进行补偿。DCT—般用于将象素块变换为"空间频率系数"。其对例如宏块的二维象素块进行5操作。由于DCT在压縮图片时是高效的,所以一般少量DCT系数足够用于再造原始图片。提供量化模块用于量化DCT系数。例如,量化模块将近零DCT系数设为零,并且量化剩余的非零DCT系数。视频编码中的限制之一来自通信信道的容量。实际上,通信信道受其每秒可以传送的比特数量的限制。在许多信道中,比特率是恒定的,例如ISDN(综合业务数字网)、POTS(普通老式电话业务)等。然而,取决于用于压縮视频的算法的效率和那些视频的运动复杂性,编码和传送已编码视频所需的比特预算和比特率可以改变,并且特别地,可以增加。因此,需要速率控制,以便使编码各种复杂性的视频所需的比特率适应用来传送这些已编码视频的通信信道的比特率。目前H.263标准中使用的速率控制算法被称为TMN8(短期测试模型第8版)。一般而言,该速率控制算法确保仅满足平均比特率。该算法不能控制平均目标比特率和最大比特率这两者。以下称为参考文献1的由JordiRibas-Corbera于1999年所著的名为"RateControlinDCTVideoCodingforLow-DelayCommunications,,的文章公开了一禾中算法,该算法由速率控制TMN8使用,以确保每个帧都满足与目标帧大小相关的目标平均比特率。更具体地,TMN8速率控制算法计算一些图像统计信息来确定一些合适的QP(量化参数)值,并针对每个内部帧对其进行更新,以便满足目标帧大小。不幸的是,该控制非常粗略,并且通常产生的帧大小可能显著大于或小于目标帧大小。而且,在T丽8速率控制算法中,当超过给定目标比特率时,编码器将跳过特定数量的帧以便对溢出进行补偿。当然,通过这样做,通信和视频的质量被改变。另外的速率控制方法(例如基于最大比特率的速率控制)显示出优于T丽8速率控制的改进。该方法描述在以下称为参考文献2的由St6phaneCoulombe于2007年著的PCT/CA2007/002242"Animprovedvideoratecontrolforvideocodingstandards中。该基于最大比特率的速率控制方法被结构化以便满足平均和最大比特率两者。然而,该基于最大比特率的速率控制方法是从最大比特率的特定定义导出的。更具体地,最大比特率被定义为在一秒内可以被传送的最大比特数量。例如视频流的应用不遵循该定义。在例如视频流的应用中,基本的基于缓冲的(basicbuffer-based)速率控制方法可以被使用,并且显示出优于TMN8速率控制的改进。参考文献2中介绍了这样的基于缓冲的速率控制方法。基本的基于缓冲的速率控制器将大量比特分配给内部帧,并且然后将来自内部帧的编码的未使用比特分布到随后的中间帧上,以便最优化在特定数量的帧上视频缓冲检验器的大小。然而,即使已显示该基本的基于缓冲的速率控制器对于若干视频序列运转良好,但其对于包括许多运动和场景改变的序列(例如在电影和视频预告片中找到的那些)示出一些问题。在那些序列中,向或围绕内部帧分配大量比特以及向剩余帧分配接近恒定数量的比特不是好的策略。视频缓冲检验器(VBV,VideoBufferVerifier)是在被馈以相容视频比特流时,不应当上溢或下溢的假想解码器缓冲的模型。在本发明中,视频缓冲检验器将指MPEG-4编码(见MPEG-4视频编码标准的附录D)情况下的VBV,H.263的假想参考解码器(见H.263标准的附录B)或任意其它假想解码器的缓冲模型。在2006年关于视频技术的电路和系统的IEEE会刊第16巻第56_71页中BoXie禾口WenjunZeng的命名为"Asequence-basedratecontrolframeworkforconsistentqualityreal-timevideo"的文章中,Xie和Zeng使用基于缓冲的视频速率控制器中的平均绝对差值(MAD)、帧复杂性度量。其新的速率控制框架达到了跨视频序列的更一致的质量。其方法是基于序列(与基于GOP(图片组)的相对)的比特分配模型用以跟踪视频源中的非固定特征。它们显示出其所提出的速率控制解决方案可以产生与MPEG-4附录L帧级速率控制相比,明显更好的PSNR(峰值信噪比)性能(就跨场景的一致性和平均值这两方面而言)以及具有较小质量摆动和运动波动的临时更平滑的视频。Xie和Zeng宣称其所提出的速率控制解决方案对各种序列、比特率和帧率是鲁棒的,并且已被用于商业产品中。然而,他们在其方法中除了对于缓冲上溢和下溢的典型检查外没有考虑缓冲水平。不基于实际缓冲水平进行操作可导致丢弃帧数量的增多。例如,当缓冲水平高时,实际已编码帧具有较大的概率引起上溢,并且由此导致被丢弃的帧。Xie和Zeng在其速率控制方法中既不使用内部帧(当其以规则间隔到来时)的位置,也不考虑最大比特率以及平均比特率;他们仅考虑等于平均比特率的最大比特率。因此,仍然存在克服以上讨论的、与包括大量运动和场景改变的视频序列中的速率控制有关的问题的需求。相应地,寻找能够改进速率控制的基于缓冲的设备和方法。
发明内容因此本发明的目的是提供一种能够克服以上讨论的问题的基于缓冲的速率控制。例如,所述基于缓冲的控制将利用视频编码中内部帧的位置、帧复杂性、缓冲水平,以便满足平均以及最大比特率规格。更具体地,根据本发明的第一方面,提供一种方法,其控制包括由内部帧分隔的中间帧系列的帧序列的视频编码中的比特率。在已编码帧的传输之前,已编码帧在视频缓冲设备中被验证。所述方法包括测量所述帧序列中的帧复杂性;对于每个中间帧,关于该中间帧与下一内部帧之间的距离计算所述视频缓冲设备的目标缓冲水平;对于每个中间帧,关于该中间帧与所述下一内部帧之间的距离、所测量的帧复杂性、所述视频缓冲设备的当前缓冲水平和所计算的视频缓冲设备的目标缓冲水平来计算目标帧大小;以及,使用所计算的目标帧大小来控制所述帧序列的视频编码中的比特率。根据本发明的第二方面,提供了一种方法,其控制包括由内部帧分隔的中间帧系列的帧序列的视频编码中的比特率,以便在不超过视频缓冲检验器的最大大小限制的情况下满足平均比特率。所述视频编码包括在已编码帧的传输之前验证视频缓冲检验器中的已编码帧。所述方法包括测量所述帧序列中的帧复杂性;对于每个中间帧,关于该中间帧与下一内部帧之间的距离计算所述视频缓冲检验器的目标缓冲水平;对于每个中间帧,关于该中间帧与所述下一内部帧之间的距离、所测量的帧复杂性、所述视频缓冲检验器的当前缓冲水平和所计算的视频缓冲检验器的目标缓冲水平来计算目标帧大小;以及使用所计算的目标帧大小,以便在不超过所述帧序列的视频编码中的所述视频缓冲检验器的最大大小限制的情况下满足平均比特率。根据本发明的第三方面,提供了一种设备,用于控制包括由内部帧分隔的中间帧系列的帧序列的视频编码中的比特率。在已编码帧的传输之前,已编码帧在视频缓冲设备中被验证。所述设备包括对所述帧序列中的帧复杂性的检测器;第一计算器,其对于每个7中间帧,关于该中间帧与下一内部帧之间的距离计算所述视频缓冲设备的目标缓冲水平;第二计算器,其对于每个中间帧,关于该中间帧与所述下一内部帧之间的距离、所测量的帧复杂性、所述视频缓冲设备的当前缓冲水平和所计算的视频缓冲设备的目标缓冲水平来计算目标帧大小;以及控制器,其响应于所计算的目标帧大小而控制所述帧序列的视频编码中的比特率。根据本发明的第四方面,提供了一种设备,用于控制包括由内部帧分隔的中间帧系列的帧序列的视频编码中的比特率,以便在不超过视频缓冲检验器的最大大小的情况下满足平均比特率。所述视频编码包括在已编码帧的传输之前在所述视频缓冲检验器中验证已编码帧。所述设备包括对于所述帧序列中的帧复杂性的检测器;第一计算器,其对于每个中间帧,关于该中间帧与下一内部帧之间的距离计算所述视频缓冲检验器的目标缓冲水平;第二计算器,其对于每个中间帧,关于该中间帧与所述下一内部帧之间的距离、所测量的帧复杂性、所述视频缓冲检验器的当前缓冲水平和所计算的视频缓冲检验器的目标缓冲水平来计算目标帧大小;以及控制器,其响应于所计算的目标帧大小而控制所述帧序列的视频编码中的比特率,以便在不超过所述帧序列的视频编码中所述视频缓冲检验器的最大大小的情况下满足所述平均比特率。通过阅读以下参考附图仅作为示例给出的对示例性实施例的非限制性描述,本发明的前述和其它目的、优点和特征将变得显而易见。在附图中图1是视频通信系统示例的示意图;图2是用于图1的通信系统中的视频编码的编码器示例的示意框图;图3是根据本发明的非限制性示例性实施例的用于视频编码中的速率控制的设备的示意框图;图4是示出根据本发明的非限制性示例性实施例的用于视频编码中的速率控制的方法的流程图;图5是示出图4的速率控制方法中计算内部帧目标大小的方法的流程图;以及图6是示出图4的速率控制方法中计算中间帧目标大小的方法的流程图。具体实施例方式—般而言,根据本发明的非限制性示例实施例的用于视频编码中的速率(比特率)控制的设备和方法确保在不超过所允许最大比特率(或视频缓冲检验器的最大大小限制)的情况下,满足平均比特率。更具体来说,速率(比特率)控制是基于缓冲的,并且考虑中间帧与下一内部帧之间的距离、所测量的帧复杂性、视频缓冲检验器的当前缓冲水平和视频缓冲检验器的所计算的目标缓冲水平。这样,在例如远程监控、快动作电影等的各种视频应用中,视觉质量被增强。应当指出,根据本发明的非限制性示例性实施例的速率控制的可移植性被改进,并且有助于其集成到多个视频编码器,其中,作为非限制性示例,所述视频编码器使用例如H.263、MPEG-4和H.264的编码方案。根据本发明的非限制性示例性实施例的用于视频编码中的速率控制的设备和方法一般通过考虑以下方面来改进视频质量和视频编码性能1)如由Xie和Zeng提出的,在计算目标帧大小时使用帧复杂性。例如,要编码的图像与之前图像(或后者包含的细节)之间的差别越大,则就要分配的比特来说,该图像编码就越复杂。在该情况下,为获得恒定质量,更大量比特应当被分配用于该图像的编码。为了评估帧复杂性,可使用帧复杂性度量,例如平均绝对差值(MAD)或其它类似度量。2)例如通过帧复杂性度量计算,可在视频序列中检测到场景剪切。通过知道视频序列中出现的不同场景剪切,基于缓冲的速率控制设备和方法可以选择更合适的内部帧以便获得更好的视频序列质量。在此情况下,运动估计被移到帧模式确定之前。3)以与之前帧相同的质量来对每个内部帧进行编码。为此目的,没有将内部帧的目标帧大小视为固定的,而是可变的。同样,可以考虑两种(2)内部帧编码模式第一种模式使用在帧的整个持续期间固定的量化参数(QP),由此一般导致较一致的质量但较不精确的帧大小。第二种编码模式使用被针对帧的每个宏块(MB)行更新的QP。4)根据本发明的非限制性示例性实施例的基于缓冲的速率控制设备和方法通过恰当地縮放目标帧大小而不是使用额外或未使用的比特来维持平均比特率,来确保视频缓冲检验器不会下溢或上溢。5)依赖于不同的参数,例如中间帧与下一内部帧之间的距离、所测量的帧复杂性、视频缓冲检验器的当前缓冲水平和所计算的视频缓冲检验器的目标缓冲水平,计算目标帧大小。因此,所计算的目标帧大小是动态值。为了对目标帧大小的更好控制,可通过因子来进一步縮放所计算的目标帧大小。I.视频通信系统首先,其中产生视频编码的视频通信系统的示例将被描述。现在转向图l,视频通信系统IO包括视频源12,例如用于捕获视频的摄像机或web相机。那些视频然后被提供给视频编码器14。视频编码器14连接到网络16。网络16建立通信链路或信道,用于从编码器14向解码器18传送已编码的视频。最后,解码器18连接到视频播放器20。视频播放器20可以是计算机、电视机或任何用于播放视频的设备。在例如第一和第二方之间的通信会话期间,由编码器14接收由第一方的视频源12捕获的视频,以便进行压縮和编码。一旦编码器14已结束对视频数据的编码,已编码视频通过由网络16建立的通信链路或信道被传送到第二方。在第二方这一侧,解码器18接收已编码的视频并开始对其进行解码。一旦已编码的视频被解码,则解码器18将已解码的视频数据发送到视频播放器20,该视频播放器20然后可以开始播放以已编码形式从第一方接收到的视频。现在将参考图2详细描述编码器14。编码器14实施与视频编码相关的一个或多个过程32工到327;这些过程或者是常规的或者不是,或者在本公开中被简要描述,或者在下文被初始和完整地描述。为实施以上过程32:到327中的至少一部分,编码器14包括运动估计模块32、运动补偿模块34、在H.263和MPEG-4编码的情况下一般为DCT的变换模块36、量化模块38、速率控制设备42、系数滤波模块37和视频缓冲检验器40。速率控制设备42控制编码过程的若干方面,以便满足平均以及最大比特率规格。可以使用不同平台来实现编码器14,例如9来自Vantrix公司的SPOTxde⑧服务器。当然可以考虑其它合适的平台。视频源12可以是任意源,作为非限制性示例,所述源包括使用例如MPEG-4、H.263和H.264等各种标准的视频文件或摄像机。编码器14的包括单元32工到327的运动估计模块32预测已移入当前帧的之前帧的一个或多个区域,从而这个或这些区域不需要被重新编码。然后,运动补偿模块34对由运动估计模块32检测到的、从参考帧——通常为先前的帧——向当前帧的上述所预测的区域的移动进行补偿。这将使编码器14能够通过仅对先前帧与当前帧之间的差别进行编码和传送从而产生中间帧,来压縮和节省带宽。变换模块36对连继帧的象素块进行变换。该变换取决于视频编码标准技术。在H.263和MPEG-4的情况下,是对连继帧的象素块的DCT变换。在H.264的情况下,所述变换是基于DCT的变换或Hadamar变换。可以基于整个帧(内部帧)或帧之间的差别(中间帧)进行所述变换。DCT—般用于将象素块变换为"空间频率系数"(DCT系数)。其对例如宏块(MB)的二维象素块进行操作。由于DCT在压縮图片方面效率高,所以一般少量DCT系数足够用于再现初始图片。然后经变换的系数被提供给滤波系数模块37,在滤波系数模块37中,经变换的系数被滤波。例如,滤波系数模块37将例如对应于高频信息的一些系数设置为零。滤波系数模块37在小目标帧大小的情况下改进速率控制设备42的性能。经滤波的变换系数然后被提供给量化模块38,其在量化模块中被量化。例如,量化模块38将近零的已滤波DCT系数设置为零,并对剩余非零的已滤波DCT系数进行量化。重排序模块39然后按特定顺序放置已量化系数,以便创建长零序列。熵编码模块33然后使用例如Huffman编码或任意其它合适的编码方案对已重排的经量化的DCT系数进行编码。这样,熵编码模块33生成和输出已编码内部或中间帧。视频缓冲检验器(VBV)40然后用于验证被发送到解码器18的帧不会导致该解码器的接收缓冲的上溢。如果帧不会导致上溢,则速率控制设备42将允许该帧通过交换机35的传输。然而,如果帧将导致上溢,则速率控制设备42将不允许该帧的传输。上述运动估计模块32、运动补偿模块34、变换模块36、量化模块38、重排序模块39、熵编码模块33和视频缓冲检验器40对于本领域的技术人员来说是以其他方式已知的,相应地,在本公开中将不再进一步描述。同样,速率控制设备42允许控制视频编码中的比特率。该速率控制设备42确保在不超过所允许的最大比特率的情况下,尽可能地满足平均比特率。这在例如远程监控、快动作电影等的不同应用中提供了增强的视觉质量。在描述根据本发明的速率控制设备42和对应方法100的非限制示例性实施例之前,为了更好地理解以基本的基于缓冲的速率控制器为基础的速率控制设备42和方法100,将描述如在参考文献2中所描述的现已存在的基本的基于缓冲的速率控制器。II.基本的基于缓冲的速率控制器基本的基于缓冲的速率控制设备在视频流应用中尤其有用。其通过将未使用的比特分布到接下来的帧上和在特定数量的帧上最大化视频缓冲检验器40的水平,来计算目标帧大小以便编码内部和中间帧。在视频流中,通过容量有限的信道发送视频分组。因此比特率是有限的。如果一秒的延迟在图1的播放器20开始播放第一个收到的内部帧之前被认为是可接受的,那么内部帧目标大小应当在R皿以下,其中,如将在以下阐述的,RMM是最大比特率。在以上情形中,解码器18在播放器20开始播放第一个收到的内部帧之前等待一(1)秒。然而,这并不意味着在这一(1)秒的延迟期间不能传送另外的帧。假设B工=RM,其中,B工是内部帧的目标帧大小。还假设不超过最大比特率RMX等价于视频缓冲检验器40不超过R皿这一条件。-贝U,在时刻t=0,图2的视频缓冲检验器40是满的,因为大小为RMX的帧刚刚被存储。-如果帧率F=10fps以及RMX=48000bps,则在t=0.Is处,视频缓冲检验器40被空出RMX/F=4800比特,因为那些比特已通过通信链路或信道被传送。因此,在t=0.Is的给定时刻,视频缓冲检验器40中4800比特的空间可用于接收已编码的帧,而不会溢出视频缓冲检验器40。-同样的方法适用于接下来的帧。因此,对于跟随在该内部帧之后的每个帧,另外的4800比特的量可以被传送。由此,取代例如使用TMN8或最大比特率控制设备时的48000比特,通过使用该方法,有可能传送总共48000+(10-1)(4800)=91200比特。所述另外的可用比特允许改进跟随在内部帧之后的帧的质量,因为其可以用于增加被分配的比特的数量,用于对跟随在该内部帧之后的帧进行编码。然而,应当指出,之前所计算的91200比特不是在一(1)秒内被发送,而是由于由应用为了接收所传送的内部帧引起的延迟,覆盖那些比特的时间是1.9秒1秒的延迟以及从时刻1.Is到1.9s的9个帧,这给出对应于最大比特率R磁的(91200比特/1.9s)=48000比特/s的比特率。贯穿本公开,将认为视频缓冲检验器40的最大大小将对应于最大比特率RMX。现在,将考虑在下一个内部帧到来的情况。由于下一个内部帧到来,不得不逐渐地空出视频缓冲检验器40,以便拥有足够的空间来存储在预定时刻即将到来的内部帧。即使对于内部帧目标大小为Bp并且因此能够容纳大小为B工的帧的非空缓冲是足够的,但是为了实用目的期望清空视频缓冲检验器40,以便为跟随在该内部帧之后的帧分配更多的可用比特以改进其质量;因此,在实际应用中,B工<RMX。相应地,在开始清空视频缓冲检验器40之前,可增加分配给跟随在该内部帧之后的帧的比特的数量,以便获得那些帧的改进质量。令t=0为内部帧的到达时间。则,N被定义为跟随在该内部帧之后的、其上分布有未被用于该内部帧的编码的比特的帧的数量。以及L被定义为视频缓冲检验器40的缓冲水平在其上被优化的中间帧的数量。应当指出,对于0《N《L,在t=L时,视频缓冲器40是充满的。—般而言,被该速率控制采用的策略如下。在任何时候,视频缓冲检验器的缓冲水平不超过最大比特率R皿。这意味着将产生上溢的已编码帧将被丢弃。内部帧的编码中未被使用的比特被用在对随后的中间帧的编码中,以便最大化缓冲水平以及提高视频的总体质量,因为视频的质量通常在内部帧之后较差。直到帧数L为止,通过以RMX/F的目标大小对帧进行编码,视频缓冲检验器40被保持充满,其中,F为帧率。此外,已被计算但在对之前帧的编码中未使用的比特被重新分布到随后的帧上;然而,目标帧大小不应当超过特定值,其中,该特定值取决于目标缓冲水平,目标缓冲水平自身取决于时间上帧的索引(index)。应当指出,目标缓冲水平对于内部帧之后的第一个帧为R皿,并且直到下一个内部帧到来为止逐渐降低为零(0)。就帧L之后视频缓冲检验器40将基本充满这一情况,存在许多方法以便将对内部帧的编码得到的未使用比特分布到随后的中间帧上。因此,在两(2)个内部帧之间的周期T期间,对于每种类型的帧和索引,目标帧大小Bp(t)由以下给出Bp(t)=B工如果t=0j5〃(0=如果t=1,2,3,...,L/,'fe如果t=L,L+l,,T-l"〃(0=其中,B工为内部帧的目标帧大小,B/(t)为在视频缓冲检验器40不上溢,即缓冲水平《RMX且在t=L时接近充满的条件下,任意的中间帧目标大小。例如,未使用的比特可以被同等地分布到跟随在内部帧之后的N个中间帧的目标帧大小B。(t)上。在此情况下,在时刻t每个中间帧的目标帧大小由以下给出^(/)二^^+^^^如果(Xt《N5尸(/)=S(=~^如果N<t《L二《="^"TT^如果t=L,L+l,…,T-l《应当指出,当L=N时,项^=^^不出现。同样,要求T>F+L,从而视频缓冲检验器40将拥有足够的时间来在两个内部帧之间清空其自身。对于每个帧,应当计算最高缓冲水平,以便确保视频缓冲检验器40中存在足够的空间用来存储下一个内部帧。对于内部帧,最高缓冲水平不能超过R皿。因此,对于T-1时的帧,最高缓冲水平不能超过IW-B,IW/F,从而在下一个内部帧开始时,最高缓冲水平不超过RiM-B工。然而,如以上提到的,由于现实原因,最高缓冲水平应当是R皿/F而不是Rm厂B,Rmm/F。这是因为,实际上难以精确预测已编码内部帧的实际大小。当前现有算法不够鲁棒。因此,这样较安全视频缓冲检验器40在帧T-1处是空的,从而更多比特可用并且可以被用于传送跟随在该内部帧之后的帧。因此,视频缓冲检验器的最高缓冲水平被计算如下BufferLevel磁(t)=R磁如果t=0,1,,L^//^"ve/WAV(0=『:二^+,;;)如果t=L+1,,T-丄当视频缓冲检验器40接收到不同大小的帧时,除最高缓冲水平外,针对每个中间帧更新和计算缓冲水平。在传送开始时,视频缓冲检验器40是空的。然后,逐渐地,随着计12插入和存储到视频缓冲检验器40中。因此,视频缓冲检验器40的缓冲水平由以下给出sW;^"eve/(/)=—-^如果o《t《nBufferLevel(t)=R磁如果n《t<L^,仏'e/(f)二^C;丄)+Z^^如果t=L+l,,T-l因此,用于对帧进行编码的差度(margin)A(t)可以被如下给出A(t)=BufferLevel磁(t)-BufferLevel(t)从而A(O=i^z!l("w.v—A)如果o《t《nTVA(t)=0如果n《t<T-l通常,当编码器14对帧进行编码时,已编码帧大小稍微不同于目标帧大小。在目标帧大小大于已编码帧大小的情况下,未使用的比特被重新分布到接下来的帧上以便进行编码。可使用不同方法将未使用的比特分布到接下来的帧上,只要不超过最高缓冲水平。可用于对接下来的帧进行编码的可能的额外比特的数量E(t)被定义为E(t)=BufferLevel(t)-BufferLevelactual(t)=BufferLevelMX(t)-BufferLevelactual(t)_A(t)其中,BufferLevela。tual(t)为对帧进行实际编码后的缓冲水平。应当指出,通常,额外未使用的比特的一小部分被用于确保不超出最高缓冲水平。应当相信,指定和确定该额外比特的一小部分在本领域的技术人员的认知之内。然而,可能发生的是,已编码的帧大于目标帧大小。在此情况下,E(t)为负或低于特定的给定阈值。因此,在已编码帧上进行验证过程。如果已编码帧已超过目标帧大小,则该已编码帧被丢弃。以上描述的基本的基于缓冲的速率控制在例如视频监控和个人视频剪辑的应用中显示出良好性能。然而,对于例如经常出现在视频预告片中的具有大量运动和场景改变的序列,其显示出一些问题。因此,对于后者应用,需要改进的基于缓冲的速率控制设备和方法,如图2的设备42和对应的方法。相应地,设备42的仅那些新的方面将在以下描述中被讨论。III.基于缓冲的速率控制设备42根据本发明的非限制示例性实施例的设备42实现了一种改进的基于缓冲的速率控制方法,所述方法利用帧复杂性、中间帧与下一内部帧之间的距离、视频缓冲检验器的当前缓冲水平和视频缓冲检验器的已计算的目标缓冲水平,在不超过指定的最大比特率的情况下满足指定的平均比特率。更特别地,设备42实现了用于控制例如H.263、H.264、MPEG-4和其它标准等的视频编码标准中的比特率的方法100。设备42和方法100将在以下描述。如图3中所示,设备42包括帧复杂性检测器44,用于测量帧的复杂性;以及QP(量化参数)计算器46,其用于计算将被编码的内部帧的QP。此外,设备42包括用于计算视频缓冲检验器40的目标缓冲水平的缓冲水平计算器47。设备42还进一步包括目标帧大小计算器48,用于计算目标帧大小以便对帧进行编码。关于来自帧复杂性检测器44的13帧复杂性测量和来自计算器47的视频缓冲水平检验器40的目标缓冲水平来计算目标帧大小。设备42还包括验证器(validator)50,用于确定和确保来自计算器48的所计算的目标帧大小有效。如上文中所描述的基本的基于缓冲的速率控制器使用额外的比特来确保视频缓冲检验器永远不超过最大比特率。在设备42中,如将在以下描述的那样,通过应用于所计算的目标帧大小的縮放因子来避免视频缓冲检验器40的下溢或上溢,来满足该条件。IV.基于缓冲的速率控制方法100现在转向图4,将描述根据本发明的非限制示例性实施例的用于使用设备42的基于缓冲的速率控制的方法100。在描述方法100之前,将首先引入一些标记。-W(t)对应于在时刻t视频缓冲检验器40的缓冲水平,并对应于基本的基于缓冲控制器情况下的BufferLevela。tual(t);-Wmax是视频缓冲检验器40的最大缓冲大小,并对应于基本的基于缓冲的速率控制器情况下的BufferLevel丽(t);-Whigh是被认为高的,即具有视频缓冲检验器40上溢风险的,视频缓冲检验器40的缓冲水平;-WlOT是被认为低的,即具有视频缓冲检验器40下溢风险的,视频缓冲检验器40的缓冲水平;-WAttastIntM是对最后的内部帧进行编码之后视频缓冲检验器40的缓冲水平;_Wtogrt(t)是在时刻t视频缓冲检验器40的目标缓冲水平,其对应于基本的基于缓冲的速率控制器情况下的BufferLevel(t);-RM是所指定的最大比特率;-RAve是所指定的平均比特率;-B(t)代表目标帧大小;如果帧是内部帧,则B(t)二B工(t),以及,如果帧是中间帧,则B(t)=BP(t);以及-T是两个内部帧之间的时段。操作102:在方法100的操作102中,最大比特率RMX和平均比特率RATC被指定。应当相信,指定这两个值在本领域的技术人员的认知之内。操作104:在操作104中,视频缓冲检验器40的最大缓冲大小W^被设定。例如,W^被设定为等于最大比特率即Wmax=R磁。一旦Wmax被设定,则可以确定Whigh,例如Whigh=0.8Wmax。此外,W^可以被确定为例如WlOT=0.05Wmax。当然,可以确定分别定义了视频缓冲检验器40的缓冲水平的上限和下限的Whigh和WlOT的其它值,以分别避免视频缓冲检验器40的上溢禾口下溢。缓冲水平计算器47(图3)计算时刻t的目标缓冲水平Wta一(t)。可以采用若干策略来进行该计算。例如,Wtgrt(t)可以开始于在对内部帧进行编码之后获得的初始缓冲水平,然后Wta,t(t)线性降低,直到在下一内部帧之前的帧处,即在时刻t二T-l的帧处,其达到R皿/F的目标缓冲水平为止。在这样的情况下,目标缓冲水平Wta,t(t)由以下给出<formula>formulaseeoriginaldocumentpage15</formula>对于0<formula>formulaseeoriginaldocumentpage15</formula>可替换地,目标缓冲水平Wta,t(t)还可以根据以下等式来计算(1)<formula>formulaseeoriginaldocumentpage15</formula>其中0<t<T(2)内部帧开始前可可使用等式(1)和(2)这两者以及可能的其它关系,只要在下-得到空的视频缓冲检验器40即可。操作106:在操作106中,目标帧大小计算器48对每个将被编码的帧计算目标帧大小。为了计算每个帧的目标帧大小,首先,帧的类型被确定。如果帧是内部帧,则方法200将用来计算被指派给该内部帧的目标帧大小。如果帧是中间帧,则方法250将用来计算该中间帧的目标帧大小。操作108:—旦目标帧大小被计算出,则验证器50(图3)在操作108中对所计算的目标帧大小进行验证,以避免视频缓冲检验器40的上溢和/或下溢。操作110:可以观测到,可丢弃大量帧。为了减少丢弃帧的数量,滤波系数模块37(图2)在操作110中对已变换的系数(通常为DCT系数)实施滤波。操作112:验证过程112对实际已编码的帧进行验证。如果实际已编码帧大小导致视频缓冲检验器40的上溢,即如果已编码帧大小超过为避免视频缓冲检验器40的上溢所允许的最大值,则该已编码帧被丢弃。然后将编码器14的状态变量恢复为在对该丢弃帧进行编码之前设定的值。当在不超过VBV40的最大大小的情况下,不能将帧添加到VBV40时,即当缓冲水平和帧大小的总和大于VBV40的最大大小限制时,产生上溢。0141]现在将更详细地描述图4的基于缓冲的速率控制方法100的操作106、108和110。操作106(方法200):如果将要编码的帧是内部帧,则图5的方法200用于计算该内部帧的目标帧大小。通过参考图5,方法200现在将被描述。操作202(图5):如果内部帧对应于视频帧序列的第一个内部帧,则目标帧大小计算器48在操作202中使用以下关系来计算内部帧目标大小B工(t):0147]B!(t)=I(3)0148]其中,例如l=6,以及Wmax如方法100的操作102中所指定的。0149]应当指出,可对縮放项l潜在地假设其它值。0150]对于视频序列的其它内部帧,目标帧大小计算器通过确定满足QP《QPavg(t)的B工的最小值,来计算内部帧目标大小B工(t),其中,QPavg(t)是QP在一段时间上的平均。0151]操作204:0152]QP(量化参数)的计算和预测对于本领域的技术人员来说是已知的。可实现两种0142]0143]0144]0145]0146]计算QP的模式。第一种模式包括计算对于整个帧是固定的QP。第二种模式包括对于帧的每个宏块计算并更新QP,以便更贴近和精确地遵循给定的目标帧大小。应当指出,使用固定的QP导致达到帧之间更一致的质量,但较不准确的帧大小。在操作204中,QP计算器46(图3)使用以下关系来计算内部帧的QP的值,、n16,34,"T/i-。+0.291n(tf,)(4)w—iw—iX寸于M^厂1A)(、7'層yy/i^S(FO,V)),F(u,v)包含大小为i<=0v=0NXM的图像的所有象素块的8X8个DCT系数,并且B工是给定的内部帧目标大小(以比特计)。项MAVDCT代表DCT系数的平均绝对值,并且表示图像复杂性测量。项ABS()是绝对值函数。操作206:在操作206中,目标帧大小计算器48(图3)使用以下关系来计算内部帧目标大小(5)QPavK(t)条件的内部帧目标大小B工(t)=最小Bp使得QP<=QPavg(t)应当指出,迭代方法可以被用于计算满足QP<:一BIQ更具体地,可迭代地使用二分法。操作106(方法250):当帧是中间帧时,则图4的方法100的方法250被用于计算中间帧的目标帧大小。现在转向图6,用于计算中间帧目标大小的方法250将被描述。操作252:在操作252中,帧复杂性检测器44使用不同度量来评估帧的复杂性。在评估帧复杂性时,可以测量和计算不同的度量(metric),例如平均绝对差值(MAD)、内部帧的平均绝对差值(MAD》和活动的平均绝对差值(MADA)。更特别地,对于在时刻t大小或分辨率为MXN的图像,MAD被定义如下M4卯)=~~-Y^ASir".x.v)-Lr-1n|+^(yy^as*r(,x,j/)—r"一i,r一w乂,少-X=0—v=0ss腐=0.v=0t/(f,;c,力一/7(卜l,x—F(/,;c,力—一U.二了w少,了,y-了(6)其中,Y()是原始图像的亮度分量,U()禾PV()是原始图像的色度(chrominance)分量,f'0是在解码器18(图l)处重建的分辨率为MXN的先前图像的亮度,〖〉0和^0是在解码器18(图1)处重建的分辨率为M'XN'的先前图像的色度分量,以及,(mx,my)是亮度沿图像的坐标x和y的最优运动向量。应当观察到,当前待编码的帧与被重建的先前帧之间的失配越大,编码当前帧以16达到特定质量水平所需要的比特就越多。因此,对于具有更高MAD值的帧,更多比特应当被指派给这些帧用来编码。在使用MADA度量的情况下,对于在时刻t分辨率为MXN的图像,MADA被定义如下<formula>formulaseeoriginaldocumentpage17</formula>对于在时刻t的分辨率为MXN的图像,Y是初始图像的亮度,U和V是色度分量,(mx,my)是亮度的最优运动向量。此外,帧复杂性检测器44可以计算内部帧的复杂性测量。在此情况下,MAD工被使用,并且等式(6)和(7)中使用的被重建的图像由于其在对内部帧进行编码期间不被使用而被设为零。因此,帧复杂性检测器44可以如下地计算MAD工<formula>formulaseeoriginaldocumentpage17</formula>(8)操作254:在操作254中,可以计算其它统计信息。这些其它统计信息可以包括QPavg(t),其为由QP计算器46(图3)在一段时间上计算出的平均QP;以及MAD^(t),其为帧复杂性模块44(图3)在一段时间上计算出的平均MAD。操作256:在操作256中,目标帧大小计算器48(图3)使用以下等式计算中间帧目标大小BP(t):其中,<formula>formulaseeoriginaldocumentpage17</formula>如果W(t)〈Whi曲;以及a(t)二O,如果W(t)high(10)<formula>formulaseeoriginaldocumentpage18</formula>其中,Y是常数值,例如为4,尽管可以使用其它值;并且Wt,t(t)在方法100(图4)的操作104中被计算。等式(9)示出了中间帧目标大小关于其它变量的动态性。例如,应当注意,中间帧目标大小Bp(t)大体与^成比例。由于MAD(t)的值通常较大,因此在等式(9)的分母中加一(1)在等式中没有显著的数值影响。此外,加一(1)允许避免发生被零除。在比特率非常高的一些特殊情况下,小于一(1)的分数值更适于避免精度问题。此夕卜,当y=4时,由4a(t)使等式(9)中的项/<formula>formulaseeoriginaldocumentpage18</formula>限制由比率MAD(t)/MAD^(t-l)给出的增益(在大小上)。这样,随着视频缓冲检验器40的缓冲水平增高,增益限制被降低。例如,如果视频缓冲检验器40为空,则中间帧目标大小BP(t)在该时刻被限制为4倍于平均比特率,即S《"=8P")S4其中,F为帧率c然而,如果W(t)>Whigh,则中间帧目标大小Bp(t)将被设为零(O),因为在此情况下a(t)=0;视频缓冲检验器40的上溢可以因此被避免。应当注意,具有大Whigh通常允许改善平均PSNR(峰值信噪比),但导致更高的丢弃已编码帧的风险。仍然进一步地,等式(9)中的因子13(t)允许在W(t)>Wtogrt(t)的情况下减小中间帧目标大小Bp(t)。缓冲水平W(t)比缓冲目标水平Wta,t(t)高得越多,则由因子13(t)引起的对中间帧目标大小Bp(t)的减小就越多。同样,随着当前帧变得更接近即将来临的内部帧,即当t变得更接近T时,可以使减小因子13(t)更活跃(aggressive)。这样,随着下一个内部帧的即将到来变得迫近,W(t)与Wta,t(t)之间的更大的偏离被更高效地避免。同样,由于减小因子13(t)可以在对下一个内部帧进行编码之前迫使视频缓冲检验器40被清空,所以可使用若干策略用于对初始缓冲目标水平Wtogrt(t)的计算,例如使用等式(1)和(2)。目标帧大小计算器48(图3)还可以使用内部帧的平均绝对差值(MAD》和活动的平均绝对差值(MADA)来计算中间帧目标大小BP(t)。操作108:向回参考图4,一旦目标帧大小B(t)已在操作106中被计算,则验证器50(图3)在特定差度考虑内对该计算的目标帧大小施加验证过程。首先,在所述验证过程中,验证器50检查上溢。为避免上溢,以下条件应当被满<formula>formulaseeoriginaldocumentpage19</formula>根据表达式(12),不应当被所计算的目标帧大小超出的上部或最大阈值Bm可以被计算如下<formula>formulaseeoriginaldocumentpage19</formula>然后,验证器50(图3)检查下溢。为避免下溢,以下条件应当被满足l/l7、—,,—、Wnu--7…(14)然后,根据表达式(14),可对所计算的目标帧大小建立下部或最小阈值B^(t)。下部阈值Bmin(t)由以下给出:F(15)应当注意,已编码帧的大小未必对应于所计算的目标帧大小的大小。因此,在对当前帧的实际编码之后,进行另外的验证操作。实际上,如果已编码帧大小大于为避免视频缓冲检验器40的上溢所允许的最大值,则该已编码帧被丢弃,并且,对应于对该丢弃帧进行编码之前的值的编码器14的状态变量被恢复。状态变量的恢复将编码器14与解码器18重新同步。在对帧进行编码之前记住编码器14的状态变量。操作110:已观察到,当视频序列包含大量运动时,在编码器14中丢弃或跳过许多帧。这是由于这一事实当计算出小目标帧大小时,其一般不容易被满足。因此,图2的过滤系数模块36用于针对小目标帧大小移除和滤波已变换系数(通常为DCT)的一些高频。更具体地,当在特定时间段内,例如最后一秒,被丢弃帧的量达到特定阈值时,滤波系数模块37被应用。一旦已变换系数滤波被激活,其通常在特定时间内保持有效,所述特定时间例如是4秒,如果F=10fps则即为40帧。当被丢弃帧的量再次达到给定阈值时,DCT系数滤波将被重新激活。因此,已变换系数滤波是自适应的方法。应当注意,选择每时间段被丢弃帧的量的给定阈值在本领域的技术人员的认知范围之内。更具体地,在操作110中,滤波系数模块37(图2)首先识别在DCT系数情况下被表示为max_DCT_coeff的最大系数滤波索引。该最大DCT滤波索引max_DCT_coeff例如从存储在表中的索引中选出。该最大DCT滤波索引maX_DCT_COeff可以基于目标帧大小B(t)。例如,目标帧大小B(t)越小,则最大DCT滤波索引max_DCT_coeff越小。下面的列表示出了作为目标帧大小B(t)的函数的最大DCT滤波索引maX_DCT_COeff。19<table>tableseeoriginaldocumentpage20</column></row><table>然后,滤波系数模块37(图2)如下地对已编码帧实施DCT滤波DCTfiltering[j]=DCT[i][j](16)如果i《max_DCT_coeff且j《max_DCT_coeff并且,否则DCTfiltering[i][j]=0(17)通过使用等式(16)和(17),使得DCT滤波自适应。实际上,多数视频序列不需要DCT滤波,并且如果曾有DCT滤波被应用于那些视频序列,则其质量将降级。然而,当DCT滤波被应用于需要DCT滤波的视频序列时,可以观测到这样的视频序列的质量上的极大性能改进。例如,已观测到,当DCT滤波在需要的时候和地方被应用时,丢弃帧的量被从50%降低到6%。V.性能结果为了评估基于缓冲的速率控制设备42和方法100的性能,若干视频测试序列被用于测试视频编码的质量和被保持(未被丢弃)的帧的百分比。最初的十二(12)个视频序列是熟知的视频序列,并且在视频编码出版物中被广泛使用。那些视频测试序列也已被应用于其它速率控制设备以进行比较。其它速率控制设备包括TMN8标准以及如在参考文献2中公开的基于"最大比特率"的速率控制器。为简明起见,条件R皿二R皿被考虑。通常,使Rmax>R抓对平均PSNR没有大的影响,但降低了有被丢弃帧的概率。此外,以下术语被用于测试结果中,并且被定义如下_PSNRavg:序列的平均峰值信噪比;如果帧被丢弃,则使用包含在解码器18的存储器中的先前重建的帧来计算该帧的PSNR;_PSNRkept:被保持在序列中的帧(即不考虑被丢弃的帧)的平均PSNR;_PSNRmin:序列中具有最低PSNR的帧的PSNR;-StdDev:每个帧的PSNR值关于平均值的标准偏差;这是对质量一致性的测量(越小的StdDev值意味着从PSNRavg的越小的波动);-Kbps:实际已编码序列的以千比特每秒计的平均比特率;-总frms:被保持的帧的总共部分(即,1_被丢弃的百分比);"l"意味着所有帧都被保持,以及0.6将意味着40%的帧被丢弃。测试用例1:在第一个测试用例中,RMX=44kbps,F=10fps,并且T=8s。表1:来自TMN8标准速率控制器的结果<table>tableseeoriginaldocumentpage21</column></row><table><table>tableseeoriginaldocumentpage22</column></row><table>表2:来自基于"最大比特率"速率控制器的结果<table>tableseeoriginaldocumentpage22</column></row><table><table>tableseeoriginaldocumentpage23</column></row><table><table>tableseeoriginaldocumentpage24</column></row><table>[O250]在测试用例2中,在对于输入和输出目标比特率为RMX=44kbps、F=30fps,以及两个内部帧之间的时段为T=8s的情况下,序列被编码。结果在以下表中示出。表4:来自T丽8标准速率控制器的结果序列<table>tableseeoriginaldocumentpage25</column></row><table><table>tableseeoriginaldocumentpage26</column></row><table>表5:来自基于"最大比特率"的速率控制器的结果<table>tableseeoriginaldocumentpage26</column></row><table><table>tableseeoriginaldocumentpage27</column></row><table>表6:来自例如设备42的、具有帧活动的基于缓冲的速率控制器的结果<table>tableseeoriginaldocumentpage27</column></row><table><table>tableseeoriginaldocumentpage28</column></row><table>对测试用例2的结果的分析看三种速率控制器的PSNR,可以看到,根据本发明的非限制示例性实施例的基于缓冲的速率控制设备42和方法100的性能高于T丽8和"最大比特率"速率控制器-TMN8:30.25dB-"最大比特率"0.37dB-具有帧活动的基于缓冲的31.52dB关于(未被丢弃的)剩余帧的百分比,结果为-TMN8:83.5%-"最大比特率"84.3%-具有帧活动的基于缓冲的96.2%那些结果再次显示出就保持最多帧的能力来说,根据本发明的非限制示例性实施例的基于缓冲的速率控制设备42和方法100相比于其它两种速率控制器的较高性能。那些结果通过序列20的示例被最好地示出,其中,剩余帧由以下给出-TMN8:10.9%-"最大比特率"18.8%-具有帧活动的基于缓冲的72.7%应当注意,在比特率低的情况下,应当在拥有较少数量的具有更好质量的帧和拥有较多数量的具有较低质量的帧之间建立折衷。可以在根据本发明的非限制示例性实施例的基于缓冲的速率控制设备42和方法100中实现和调整该折衷。测试用例3:在第三测试用例中,在比特率为R皿=96kbps、F=10fps(编码器14的输入和输出)以及T二8s(两个内部帧之间)的情况下,视频序列被编码。测试的结果在下面给出。表7:来自T丽8标准速率控制器的结果<table>tableseeoriginaldocumentpage29</column></row><table><table>tableseeoriginaldocumentpage30</column></row><table><table>tableseeoriginaldocumentpage31</column></row><table>表9:来自例如设备42的具有帧活动的基于缓冲的速率控制器的结果<table>tableseeoriginaldocumentpage31</column></row><table><table>tableseeoriginaldocumentpage32</column></row><table>对测试用例3的结果的分析就总PSNR来说,可以看到,三(3)种类型的速率控制器表现良好,然而,可以在根据本发明的非限制示例性实施例的基于缓冲的速率控制设备42和方法100中观测到小的改进。实际上,结果如下-TMN8:39.39dB-"最大比特率"38.98dB-具有帧活动的基于缓冲的39.68dB关于剩余帧(即未被丢弃的帧)的百分比,可以看到,具有帧活动的基于缓冲的速率控制器显示出改进的性能-TMN8:98.7%-"最大比特率"98.0%-具有帧活动的基于缓冲的99.9%从测试结果可以清楚地看到,根据本发明的非限制示例性实施例的基于缓冲的速率控制设备42和方法100显示出超过其它两(2)种速率控制器的改进。VI.软件结构已经以放置在计算机的存储介质中的计算机程序来实现根据本发明的非限制示例性实施例的基于缓冲的速率控制设备42和方法100。已经修改了编码器14,以便模块化速率控制操作,由此创建用于速率控制实现和测试的新框架。更具体地,多个特征已被添加到所述速率控制框架中。例如,针对产品开发和调试,以下特征已被使用-初始和已编码帧之间的PSNR的计算1)如果帧被跳过,则最后被重建的图像在计算中被使用,以及2)在YUV(具有亮度和色度的色彩空间)中生成用于被重建的图像的文件;以及-例如QP、PSNR、MAD等的统计信息的计算和写入文件。同样,根据本发明的非限制示例性实施例的基于缓冲的速率控制设备42和方法100可以检测场景剪切。为此,在帧类型判定之前进行运动估计的计算。可以通过将MAD与固定的阈值或平均MAD(自适应阈值)进行比较来进行对场景剪切的检测。如果MAD大于固定或自适应阈值,则检测到场景剪接,并且帧被编码为内部帧。此外,对于内部帧目标大小的计算,两个选项是可能的1)对整个帧的持续期间确定常量QP,或2)针对每个MB行确定和更新可能改变的QP。整个帧持续期间的常量QP帮助维持贯穿帧的质量一致性。关于QP、已编码帧大小等的许多统计信息可以被收集并然后被分析以用于进一步的改进或处理。如以上提到的,帧复杂性度量MAD和MADA可用于速率控制设备42和方法100中。缺省地,计算机程序使用MAD,因为其导致相比于MADA较少的计算。然而,如果希望则可使用MADA。如此做的话,在编译计算机程序之前在其中定义MADA就足够了。此外,添加了GOB(块组)支持的特征。应当注意,每秒帧的数量低于一(1)个的情况可能首先导致令人惊讶的结果。实际上,使最大比特率RMM等于平均比特率R皿将导致比特率远远小于R皿。例如,如果F=0.lfps,并且最大缓冲大小为R皿,则最大帧大小可以是R皿。由于每10秒仅一个帧被传送,因而有效比特率将接近O.1RMX。如果想要更高的比特率,则最大比特率应当被设为更高的比特率。由于已经用计算机程序来实现根据本发明的非限制示例性实施例的基于缓冲的速率控制设备42和方法IOO,可以观测到,可通过优化来改进程序的速度。尽管不得不在所实现的利用帧复杂性的基于缓冲的速率控制设备中计算更多的统计信息,在程序的不同模块中实现的优化允许加速基于缓冲的速率控制方法100的速度。同样,如果需要对速度的任何进一步的改进,则可考虑对于特定计算平台使用Inte1⑧IPP(集成性能原语)进行计算。尽管已在前述说明中借助于非限制示例性实施例描述了本发明,但在不脱离本发明的精神和本质的情况下,该示例实施例可以在所附权利要求的范围内被任意修改。3权利要求一种控制包括由内部帧分隔的中间帧系列的帧序列的视频编码中的比特率的方法,其中,在已编码帧的传输之前,已编码帧在视频缓冲设备中被验证,其中所述方法包括测量所述帧序列中的帧复杂性;对于每个中间帧,关于该中间帧与下一内部帧之间的距离计算所述视频缓冲设备的目标缓冲水平;对于每个中间帧,关于该中间帧与所述下一内部帧之间的距离、所测量的帧复杂性、所述视频缓冲设备的当前缓冲水平和所计算的所述视频缓冲设备的目标缓冲水平来计算目标帧大小;以及使用所计算的目标帧大小来控制所述帧序列的视频编码中的比特率。2.—种控制包括由内部帧分隔的中间帧系列的帧序列的视频编码中的比特率的方法,以便在不超过视频缓冲检验器的最大大小限制的情况下满足平均比特率,其中,视频编码包括在已编码帧的传输之前在所述视频缓冲检验器中验证已编码帧,其中所述方法包括测量所述帧序列中的帧复杂性;对于每个中间帧,关于该中间帧与下一内部帧之间的距离计算所述视频缓冲检验器的目标缓冲水平;对于每个中间帧,关于该中间帧与所述下一内部帧之间的距离、所测量的帧复杂性、所述视频缓冲检验器的当前缓冲水平和所计算的视频缓冲检验器的目标缓冲水平来计算目标帧大小;以及使用所计算的目标帧大小以在所述帧序列的视频编码中在不超过所述视频缓冲检验器的最大大小限制的情况下满足平均比特率。3.根据权利要求1所述的方法,进一步包括计算所述帧序列的内部帧的目标帧大小。4.根据权利要求3所述的方法,其中,关于所述视频缓冲设备的最大大小限制来计算所述内部帧的目标帧大小。5.根据权利要求3所述的方法,其中,计算所述内部帧的目标帧大小包括计算量化参数,以及使用所计算的量化参数来确定所述内部帧的目标帧大小。6.根据权利要求5所述的方法,其中,计算所述内部帧的目标帧大小包括计算最小帧大小,其中,对于所述最小帧大小,所计算的量化参数小于或等于之前在给定时间段内的已编码帧的量化参数的平均。7.根据权利要求1所述的方法,其中,测量帧复杂性包括在中间帧的情况下,计算代表当前图像与之前被重建的图像之间的差别的度量。8.根据权利要求7所述的方法,其中,所计算的代表当前图像与之前被重建的图像之间的差别的度量包括平均绝对差值。9.根据权利要求8所述的方法,其中,测量帧复杂性包括在内部帧的情况下,通过将与之前被重建的图像有关的项设为零来计算所述平均绝对差值。10.根据权利要求2所述的方法,其中,还关于在对最后内部帧的编码之后所述视频缓冲检验器的缓冲水平和平均比特率来计算所述视频缓冲检验器的目标缓冲水平。11.根据权利要求2所述的方法,其中,还关于所述视频缓冲检验器的最高缓冲水平和平均比特率来计算所述视频缓冲检验器的目标缓冲水平。12.根据权利要求2所述的方法,其中,还关于导致上溢风险的所述视频缓冲检验器的高缓冲水平和平均比特率来计算所述中间帧的目标帧大小。13.根据权利要求3所述的方法,包括,当已编码帧的大小大于为避免所述视频缓冲设备的上溢可允许的最大值时丢弃该已编码帧。14.根据权利要求13所述的方法,包括在丢弃所述已编码帧之后恢复实施视频编码的编码器的状态变量。15.根据权利要求1所述的方法,包括,当在给定时间段内被丢弃的已编码帧的数量达到给定阈值时,对在所述帧序列的已编码帧上执行的离散余弦变换(DCT)系数进行滤波。16.根据权利要求15所述的方法,其中,对所述DCT系数进行滤波包括移除所述DCT系数的高频。17.根据权利要求15所述的方法,其中,对所述DCT系数进行滤波包括对于特定数量的帧激活所述DCT滤波。18.根据权利要求2所述的方法,其中,在所述视频缓冲检验器中验证已编码帧包括验证所计算的目标帧大小。19.根据权利要求18所述的方法,其中,验证所计算的目标帧大小包括避免所述视频缓冲检验器的上溢。20.根据权利要求18所述的方法,其中,验证所计算的目标帧大小包括避免所述视频缓冲检验器的下溢。21.—种控制包括由内部帧分隔的中间帧系列的帧序列的视频编码中的比特率的设备,其中,在已编码帧的传输之前,已编码帧在视频缓冲设备中被验证,其中所述设备包括所述帧序列中的帧复杂性的检测器;对于每个中间帧,关于该中间帧与下一内部帧之间的距离的所述视频缓冲设备的目标缓冲水平的第一计算器;对于每个中间帧,关于该中间帧与所述下一内部帧之间的距离、所测量的帧复杂性、所述视频缓冲设备的当前缓冲水平和所计算的视频缓冲设备的目标缓冲水平的目标帧大小的第二计算器;以及响应于所计算的目标帧大小所述帧序列的视频编码中的比特率的控制器。22.—种用于控制包括由内部帧分隔的中间帧系列的帧序列的视频编码中的比特率的设备,以在不超过视频缓冲检验器的最大大小的情况下满足平均比特率,其中,视频编码包括在已编码帧的传输之前已编码帧在所述视频缓冲检验器中被验证,其中所述设备包括所述帧序列中的帧复杂性的检测器;对于每个中间帧,关于该中间帧与下一内部帧之间的距离的所述视频缓冲检验器的目标缓冲水平的第一计算器;对于每个中间帧,关于该中间帧与所述下一内部帧之间的距离、所测量的帧复杂性、所述视频缓冲检验器的当前缓冲水平和所计算的视频缓冲检验器的目标缓冲水平的目标帧大小的第二计算器;以及在所述帧序列的视频编码中响应于所计算的目标帧大小,在不超过所述视频缓冲检验器的最大大小的情况下满足平均比特率的述帧序列的视频编码中的比特率的控制器。23.根据权利要求21所述的设备,进一步包括所述帧序列的内部帧的目标帧大小的计算器。24.根据权利要求23所述的设备,其中,所述内部帧的目标帧大小的计算器关于所述视频缓冲设备的最大大小限制来计算所述内部帧的目标帧大小。25.根据权利要求23所述的设备,其中,所述内部帧的目标帧大小的计算器计算量化参数,并使用所计算的量化参数来确定所述内部帧的目标帧大小。26.根据权利要求21所述的设备,其中,在中间帧的情况下,帧复杂性的所述检测器计算代表当前图像与之前被重建的图像之间的差别的度量。27.根据权利要求26所述的设备,其中,所计算的代表当前图像与先前被重建的图像之间的差别的度量包括平均绝对差值。28.根据权利要求27所述的设备,其中,在内部帧的情况下,帧复杂性的所述检测器通过与之前被重建的图像有关的项被设为零,来计算所述平均绝对差值。29.根据权利要求22所述的设备,其中,所述第一计算器还关于在最后内部帧的编码之后所述视频缓冲检验器的缓冲水平和平均比特率来计算所述视频缓冲检验器的目标缓冲水平。30.根据权利要求22所述的设备,其中,所述第一计算器还关于所述视频缓冲检验器的最高缓冲水平和平均比特率来计算所述视频缓冲检验器的目标缓冲水平。31.根据权利要求22所述的设备,其中,所述第二计算器还关于导致上溢风险的所述视频缓冲检验器的高缓冲水平和平均比特率来计算所述中间帧的目标帧大小。32.根据权利要求23所述的设备,包括目标帧大小的验证器,以便在已编码帧的大小大于为避免所述视频缓冲设备的上溢可允许的最大值时丢弃该已编码帧。33.根据权利要求32所述的设备,包括用于在所述验证器已经丢弃已编码帧之后恢复实施视频编码的编码器的状态变量的装置。34.根据权利要求21所述的设备,包括DCT滤波器,用于当在给定时间段内被丢弃的已编码帧的数量达到给定阈值时,对对应于所述帧序列的已编码帧的DCT系数进行滤波。35.根据权利要求34所述的设备,其中,所述DCT滤波器移除所述DCT系数的高频。36.根据权利要求34所述的设备,其中,对于特定数量的帧,所述DCT滤波器被激活以便对所述DCT系数进行滤波。37.根据权利要求22所述的设备,进一步包括所计算的目标帧大小的验证器。38.根据权利要求37所述的设备,其中,所述验证器避免所述视频缓冲检验器的上溢。39.根据权利要求37所述的设备,其中,所述验证器避免所述视频缓冲检验器的下溢。全文摘要一种设备和方法,其控制包括由内部帧分隔的中间帧系列的帧序列的视频编码中的比特率,其中,在已编码帧的传输之前在视频缓冲设备中验证已编码帧,其中所述方法包括测量所述帧序列中的帧复杂性;对于每个中间帧,关于该中间帧与下一内部帧之间的距离计算所述视频缓冲设备的目标缓冲水平;对于每个中间帧,关于该中间帧与所述下一内部帧之间的距离、所测量的帧复杂性、所述视频缓冲设备的当前缓冲水平和所计算的所述视频缓冲设备的目标缓冲水平来计算目标帧大小;以及使用所计算的目标帧大小来控制所述帧序列的视频编码中的比特率。文档编号H04N7/50GK101743753SQ200880020895公开日2010年6月16日申请日期2008年6月19日优先权日2007年6月19日发明者F·拉波恩特,S·库隆布申请人:万特里克斯公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1