视频信息编码方法和视频信息编码系统的制作方法

文档序号:10492645阅读:622来源:国知局
视频信息编码方法和视频信息编码系统的制作方法
【专利摘要】描述了视频信息编码方法和视频信息编码系统,其中为实现码率控制,进行多个编码过程。多个编码过程生成预测结构,并利用所述预测结构更新在编码过程之前生成的编码统计信息。更新的编码统计信息被用于后续的编码操作。
【专利说明】视频信息编码方法和视频信息编码系统
[0001 ] 本申请是申请号为“201180005397.8”、题为“视频编码应用的多过程码率控制”的中国专利申请的分案申请。
[0002]相关申请的交叉引用
[0003 ] 本申请要求2010年I月6日提交的美国专利临时申请N0.61 /292,700的优先权,通过引用将其内容整体包括于此。
技术领域
[0004]本公开涉及视频编码。更具体地说,本公开涉及视频编码应用的多过程码率控制系统和方法。
【背景技术】
[0005]码率控制是实现现代视频编码器中的关键功能的要件。它确保生成的压缩比特流(a)达到比特率目标,(b)满足最大平均比特率约束,和(C)满足假想参考解码器(缓冲延迟)约束及其它要求。一个可选但是非常合意的目的是优化压缩视频比特流的视频质量。
[0006]满足约束(a)可确保压缩视频比特流适合于通信管道或者存储空间。例如,对视频传输来说,无线网络可能只允许最高达到768kbps。这与比如说蓝光光盘相反,蓝光光盘可允许高达40Mbps的视频带宽(对传统的2D应用来说)和60Mbps的带宽(对采用基于H.264/MPEG-4AVC视频编码标准[参见在此整体引为参考的参考文献I]及其扩展,S卩,MPEG-4AVC的多视点视频编码(MVC)扩展的编解码器的3D应用来说)。另外,对归档应用或者带宽极高的应用(比如从硬盘驱动器读取)来说,可能只规定最终比特流文件的总大小。
[0007]约束(b)源于每秒只能保存和解码一定数目的比特的重放设备的限制。在编码处理期间,可能发生其中整个压缩比特流达到比特率目标,但是平均比特率局部(例如,持续若干秒)超过比特率目标的情形。由于难以编码通常需要的更多的比特来确保一致性或者更好的视频质量,因而这种情况经常发生。不过,这些比特流“尖峰”(只要它们足够大)会对资源受限的解码器造成问题。影响解码器的问题包括内部缓冲器的溢出,或者不能及时解码比特流以便按照正确的顺序和以恰当的定时显示各帧。
[0008]最后,约束(c)与约束(b)密切相关,可被看作比特流必须满足的一组更严格的要求。简而言之,压缩的比特流必须被编码成以使得如果以目标比特率传送,则它决不会导致解码器缓冲器上溢或下溢,结果,在重放期间,解码的视频决不会延迟或停止。
[0009]码率控制还被赋予在以上的比特率和缓冲约束的条件下,确保可能的最好视频质量的任务。

【发明内容】

[0010]根据本公开内容的一个方面,提供一种用于在多个编码过程中编码视频信息,以控制所述视频信息的码率的方法,所述方法包括:针对下述中的一个或多个来优化一个或多个低计算复杂性编码过程:编码效率;传输效率;以及所述一个或多个低计算复杂性编码过程的可扩展性;将所优化的一个或多个低计算复杂性编码过程应用于所述视频信息;基于所述一个或多个低计算复杂性编码过程来收集关于编码的视频信息的初始统计信息;针对中间编码过程的比特使用来优化所述中间编码过程,所述中间编码过程包括预测结构;将所优化的中间编码过程应用于所述编码的视频信息;分析所应用的优化的中间编码过程的比特使用以及所述预测结构的编码性能,所述预测结构包括参数序列,所述参数描述了针对所述预测结构中的每个帧的类型和编码顺序,所述类型包括下述中的至少一者:帧内帧;单向预测帧间帧;双向预测帧间帧;以及一次性帧;基于所分析的比特使用和所分析的编码性能来收集关于所述编码的视频信息的更新统计信息;检测由所优化的一个或多个低计算复杂性编码过程引起的所述编码的视频信息中的编码不精确性;将完全复杂性编码过程设置成比所优化的中间编码过程高的计算复杂性;基于所述初始统计信息和所述更新统计信息,针对下述中的一个或多个来优化所述完全复杂性编码过程以去除所检测的编码不精确性:编码效率;传输效率;以及所述完全复杂性编码过程的可扩展性;以及将所优化的完全复杂性编码过程应用于所述编码的视频信息。
[0011]根据本公开内容的另一个方面,提供一种视频信息编码系统,包括:一个或多个低计算复杂性编码器,所述一个或多个低计算复杂性编码器被配置成通过执行低计算复杂性编码过程来收集关于编码的视频信息的初始统计信息;一个或多个中间编码器,每个中间编码器被配置成执行对所述视频信息的中间编码过程;码率控制分析模块,所述码率控制分析模块被配置成:针对所述中间编码过程的比特使用来优化所述中间编码过程,所述中间编码过程包括预测结构;以及分析所应用的优化的中间编码过程的比特使用和所述预测结构的编码性能,所述预测结构包括参数序列,所述参数描述了针对所述预测结构中的每个帧的类型和编码顺序,所述类型包括下述中的至少一者:帧内帧、单向预测帧间帧、双向预测帧间帧、以及一次性帧;基于所分析的比特使用和所分析的编码性能来收集关于所述编码的视频信息的更新统计信息;检测由所优化的一个或多个低计算复杂性编码过程引起的所述编码的视频信息中的编码不精确性;将完全复杂性编码过程设置成比所优化的中间编码过程高的计算复杂性;以及基于所述初始统计信息和所述更新统计信息,针对下述中的一个或多个来优化所述完全复杂性编码过程以去除所检测的编码不精确性:编码效率;传输效率;以及所述完全复杂性编码过程的可扩展性;以及进一步编码器,所述进一步编码器被配置成执行对所述视频信息的所述完全复杂性编码过程。
[0012]根据本公开内容的又一个方面,提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质包括存储其中的下述指令集合,所述指令集合在由一个或多个计算或处理装置执行时,使得执行下述处理,所述处理包括以下步骤:针对下述中的一个或多个来优化一个或多个低计算复杂性编码过程:编码效率;传输效率;以及所述一个或多个低计算复杂性编码过程的可扩展性;将所优化的一个或多个低计算复杂性编码过程应用于所述视频信息;基于所述一个或多个低计算复杂性编码过程来收集关于编码的视频信息的初始统计信息;针对中间编码过程的比特使用来优化所述中间编码过程,所述中间编码过程包括预测结构;将所优化的中间编码过程应用于所述编码的视频信息;分析所应用的优化的中间编码过程的比特使用以及所述预测结构的编码性能,所述预测结构包括参数序列,所述参数描述了针对所述预测结构中的每个帧的类型和编码顺序,所述类型包括下述中的至少一者:帧内帧;单向预测帧间帧;双向预测帧间帧;以及一次性帧;基于所分析的比特使用和所分析的编码性能来收集关于所述编码的视频信息的更新统计信息;检测由所优化的一个或多个低计算复杂性编码过程引起的所述编码的视频信息中的编码不精确性;将完全复杂性编码过程设置成比所优化的中间编码过程高的计算复杂性;基于所述初始统计信息和所述更新统计信息,针对下述中的一个或多个来优化所述完全复杂性编码过程以去除所检测的编码不精确性:编码效率;传输效率;以及所述完全复杂性编码过程的可扩展性;以及将所优化的完全复杂性编码过程应用于所述编码的视频信息。
【附图说明】
[0013]图1表示准备和进行按照本公开的一个或多个中间编码过程的算法的流程图。
[0014]图2表示按照本公开的低复杂性多过程码率控制方法的示意图。
【具体实施方式】
[0015]本公开的实施例针对的是高效、低复杂性的多过程码率控制技术和方法。
[0016]按照第一实施例,提供一种在多个编码过程中编码视频信息,以控制视频信息的码率的方法,所述方法包括:提供视频信息的初始统计信息;通过一个或多个不对称编码过程,对视频信息进行一次或多次中间编码,以提供校正由初始统计信息引起的不精确性的更新统计信息;分析初始统计信息和更新统计信息;根据更新统计信息,进一步编码视频信息。
[0017]按照第二实施例,提供一种视频信息编码系统,包括:一个或多个第一类型编码器;适合于以比一个或多个第一类型编码器高的复杂性,编码视频信息的第二类型编码器;和码率控制分析模块,所述码率控制分析模块从一个或多个第一类型编码器接收关于编码视频信息的统计信息,并把更新的统计信息发送给第二类型编码器。
[0018]在本申请的说明书、附图和权利要求书中提供了本公开的更多实施例。
[0019]在本公开中,将可互换地引用“帧”和“图片”。在本公开中定义的图片可包括一帧或多帧,配对场(交错编码),或者未配对的顶场或底场。
[0020]可在单一编码过程中对视频序列编码。这里,编码过程被定义为对输入进行的、产生压缩输出的一系列的一个或多个编码步骤。在单一编码过程中对视频序列编码可归因于计算或时间约束,或者归因于内容的性质:内容是流式实况播送的,从捕捉到传送给消费者的固定延迟只允许少许超前于未来。如果这些约束被放松,那么可能希望进行不止一次编码过程以压缩视频序列。在这种情况下,码率控制受益于从先前的编码过程得到的信息。
[0021]源于先前的编码过程的信息例如可包括复杂性的度量,比如关于特定的帧类型和量化参数(QP)生成的报头比特和纹理比特的数目,局部水平或帧水平的运动补偿失真(帧间)和帧内预测失真,或者图像序列中的各帧的时间相关性等等,并且能够提高比特率精度和帮助满足比特率和缓冲约束。报头比特包括用于编码运动信息、编码模式、块类型、参数集,以及对解码处理来说并非必不可少的信息,比如视频可用性描述符的比特。纹理比特包括用于对帧间或帧内预测残差的变换系数编码的比特。通常,后者的比特数构成编码比特流的主体,尤其是对高比特率来说。
[0022]此外,从先前的编码过程得到的信息可极大地改善压缩视频比特流的质量。原因在于编码统计信息对整个视频序列的可用性。这样的知识使得能够有效地把比特用在它们将取得最好效果(通常用使码率失真性能达到最大,或者另一方面通过在复杂性更高的区域中消耗更多的比特来度量)的那些视频序列片段。通常,编码过程越多,在给定的某个固定的比特率预算下,能够获得的视频质量更好。不过,总是存在回报递减的点,这些点处,与增加的计算开销相比,编码增益的回报将微不足道。从而,在多过程编码期间,需要约束计算复杂性。
[0023]多个编码过程改善压缩视频比特流的视频质量,有助于满足比特率和缓冲约束(约束(a)、(b)和(C))。按照本公开的实施例,不仅在计算复杂性方面,而且在将被编码的一组帧方面,都可提供不对称编码过程。此外,每个编码过程的目的可以变化。编码过程的目的可包括(a)建立用于低计算复杂性相比于高计算复杂性的编码统计信息的关系(比如转换率或者比率函数),(b)建立用于固定的计算复杂性的编码参数的关系,如量化参数(QP)等,或者换句话说,对于固定复杂性来说,诸如QP之类的编码参数如何影响质量和比特率,(C)建立码率失真关系,以便利用不同的预测结构等等。
[0024]不对称编码过程以前已被用于约束计算复杂性。在开源X264H.264/MPEG-4AVC编码器中[参见整体在此引为参考的参考文献2],存在一种限制用于第一编码过程或第一批编码过程的编码工具的数目和复杂性的“快速”模式。这样做会加速执行,通常以少量的编码损失为代价。不过,取决于加速的数量级,所述编码损失可能相当大,从而不合乎需要。
[0025]在本公开中,通过设计校正由用于加速多过程编码处理的低复杂性编码过程引起的估计误差的编码过程,减轻了这种编码损失。特别地,这些中间编码过程不同于最先或最终的编码过程,采用未在编码、传输效率、或者某种可缩放性或随机存取能力方面进行过优化,而是在提取a)关于编码工具对特定内容的性能的信息,b)编码参数与比特使用和压缩视频比特流的结果质量的关系,甚至c)关于不同预测/编码结构的性能的信息方面进行了优化的编码/预测结构。按照本公开的中间编码过程实质上是一种分析工具,它们能够帮助考虑由于利用快速第一编码过程等引起的不精确性。
[0026]按照本公开的实施例,所述一个或多个中间编码过程包括在第一低复杂性编码过程和最终的完全复杂性编码过程之间。与最终的编码过程相比,第一编码过程或者第一批编码过程是在低复杂性(这通常转换成禁止编码工具,或者修改编码参数,以使得所述编码工具需要较低的计算复杂性,例如减小运动向量搜索的范围或精度)的情况下运行的。
[0027]中间编码过程允许信息的收集,以使得能够校正或更新从低复杂性过程估计的统计信息的不精确性,随后,校正/更新的统计信息可被传递给最终的编码过程。中间过程产生的信息被保存,可供所有后续编码过程(另外的中间编码过程和最终的编码过程)使用。这样的信息可包括图片或切片编码类型(I或P或B等),每种类别(纹理、报头、运动等)的比特使用,编码模式统计信息(例如,多少种跳跃或帧内编码模式),块类型统计信息,诸如方差、直方图之类的空间统计信息,编码参数(QP和使用的拉格朗日λ),编码工具设置(指示编码工具中的哪些被允许),运动向量信息,运动补偿(帧间)和帧内预测误差,加权预测参数,帧分类(例如,场景变化)等等。在本公开中,所有这样的信息被统称为“统计信息”或者“编码统计信息”。
[0028]从而,在完成一个或多个中间过程之后,收集的统计信息被提供给码率控制分析模块。码率控制分析模块还被供给来自第一低复杂性过程或者第一批低复杂性过程的信息。来自第一批低复杂性过程和中间编码过程的信息可包括可被后续过程用于加速计算的运动和帧内预测信息,以及编码模式信息。所述信息还可用于分析用途,因为它能够提供场景的复杂性的度量(例如,分类成高度运动或高度静止等)。可被传递给码率控制分析模块的其它各种信息包括比特使用统计信息,诸如QP和拉格朗日参数之类的编码参数,空间和时间统计信息,帧内和帧间预测误差统计信息等等。
[0029]码率控制分析模块随后利用该信息把从低复杂性(或者第一类型复杂性)过程获得的编码统计信息转换成如果在完全计算复杂性(或者第二类型复杂性)的情况下,运行第一编码过程或者第一批编码过程,那么理应可以得到的统计信息。中间过程在编码期间不必采用完全复杂性(或者第二类型复杂性)。相反,复杂性可以是平均起来比第二类型复杂性低的不同类型的复杂性(第三种复杂性)。
[0030]通过在中间过程中采用例如空间和/或时间子采样,能够获得一种较低的复杂性。时间子采样指的是对图像序列中的全部帧的子集编码。这样的选择可以是a)完全任意的,b)有规律的(比如说通过丢弃两帧中的一帧),或者c)特定于内容的,这种情况下,在图像序列的更“有趣”或者更有代表性(活性)部分中编码更多的帧,而在图像序列的不太“有趣”或者不太有代表性(静止)部分中编码较少的帧。空间子采样指的是考虑帧或图像序列的低分辨率版本。这样做会大大加速执行。另外选择那些如果丢失则会导致码率失真性能的最大下降的那些帧,也使得这样的选择是特定于内容的。
[0031]通过禁用某些编码工具,比如加权预测、子像素运动估计、解块、和网格优化量化等,也可限制中间过程的计算复杂性。
[0032]可以以均匀的间隔对编码帧子采样,不过也可根据某些预分析信息对编码帧采样。例如,如果存在场景频繁变化的图像序列区域,和静止的图像序列区域,即,运动信息指示非常低的运动和/或预测残差足够低,并且/或者诸如跳跃之类的预测模式被大量使用,则采样因子需要被修改:在中间过程中只需要包括来自静止区域的少许帧,而更多的帧需要被认为来自图像序列中更具活性的区域。
[0033]如果存在多个中间过程,那么可以为每个中间过程选择多组不同子采样的帧(视情况利用某些相差/相移,或者如前所述的取决于内容的采样安排),以便取回关于图像序列的附加信息。在一些实施例中,可以并行运行一些或者所有的多个中间过程。
[0034]—旦选择了待编码的一组帧,就产生对所选帧编码的预测结构。如本公开中所使用的,预测结构定义将用于压缩图像序列的图片编码类型的种类和顺序。例如,5帧可被编码成I个I帧(帧内编码)和后面的4个P帧(单向预测帧间编码),从而构成IPPPP预测结构,IPPPP预测结构是最简单的编码结构,并且其中显示顺序与编码顺序一致。为了指示显示顺序,该结构也可被写成10P1P2P3P4。另一种可能的预测结构是IbBbP(其中B指的是双向预测帧间编码),其中小写字母表示可随意处理的帧。为了举例说明显示顺序,该编码/预测结构被写为 10P4B2blb3。
[0035]在一个或多个中间过程中收集的统计信息应对码率控制分析模块有用,以使得如果使用这样的模块或者把具有相同复杂性的第一批编码过程用于最终的过程,则该模块随后能够估计出应会产生的统计信息。
[0036]这可通过揭示在给定编码参数,比如编码类型(例如,1、P或B)和量化参数等的情况下,低复杂性或完全复杂性的编码统计信息的关系来实现。还可以使这些转换关系取决于预测结构:最终的编码过程可能能够访问比如说由于复杂性的原因,而在第一批过程中不被允许的另外的预测结构。
[0037]于是,中间过程的任务之一是揭示这些关系,并利用这些关系把统计信息转换成在最终编码过程中使用的复杂性类型。当可以得到这些关系时,低复杂性统计信息随后可被转换成用于完全复杂性操作的对应内容。统计信息的转换可在后续中间过程中被进一步修正,另外可在最终的编码过程中被进一步修正,在最终的编码过程中,因果编码统计信息可用于校正或更新转换关系。对具有多个子采样帧组的实施例来说,一个过程中的关系和统计信息转换也可用于后续的中间过程,或者源于一组的关系和统计信息也可用于不同的、通常邻近的组。
[0038]为此,可以采用以下高级策略。后面将说明遵循这些原理的一些具体实施例。
[0039](a)第一分析阶段估计第一批编码过程,并取回用于对序列编码的帧的类型。如果需要,这样的阶段还可收集和使用的预测结构相关的信息。例如,一些片段可能已用IPPPPP编码,一些其它片段用IbBbPbBbP编码,而再一些其它片段用IbPbPbP编码等。大写字母表示将用作后续编码的各帧的运动补偿基准的帧。这些结构是按照显示顺序表示的,不过,显示顺序和编码顺序不必一致。
[0040](b)第二阶段创建预测结构“原子”:可能的最小预测单元(多组帧)。在一个可能的实施例中,如果上述步骤(a)的3种可能结构被用于对图像序列编码,那么本阶段会产生具有以下3种预测结构原子的列表:(i)IP,(ii)IbBbP和(iii)IbP。不过,仓Il建的预测原子不必限制于在第一批编码过程中使用的那些预测原子。很可能希望复用简单的编码结构,比如IPPP进行第一批编码过程,随后利用更复杂的编码结构,比如说IbBbP进行最终的编码过程。在支持自适应预测结构生成的编码器中,可能还想把一组可能的预测结构之一用于最终的编码过程。在这两种情况任意之一下,除了在第一批编码过程中使用的那些预测结构之外,还考虑在最终的编码过程中可用的所有可能的预测结构,并将其添加到中间过程的原子列表中。这样做能够帮助建立还跨越不同预测结构的转换关系。另一个可能的实施例可包括专门用来确定关系并评估多个参考帧的效率的原子。例如可以使用诸如IPPP之类的结构,并收集每个P编码帧的每个参考帧的预测误差统计信息。
[0041]用于编码各帧的量化参数(QP)或者是预先确定的,或者是通过某种预分析机制设定的,以使得使参数估计更高效。此外,原子内的不同帧编码类型之间的QP的关系可按照好像最终的编码过程被调用似地设定它们的方式来设定。
[0042]在备选实施例中,原子可被扩展,以便收集和图像序列统计信息有关的附加信息,所述附加信息不仅可用于确立低复杂性关系/完全复杂性关系,而且可用于确定诸如QP与生成的比特的数目的关系之类的关键信息。例如,在一个可能的实施例中,预测结构原子被扩展,以便通过重复具有不同QP参数的最短结构:
IbPIbP,来使QP关系的估计成为可能。新原子的后半部中的各帧被分配与所述原子的前半部中的各帧相比,偏移某个预先确定(通过预分析等)的值的QP。在一个可能的不同实施例中,预测结构原子被扩展,以便通过把可能的原子级联成某种“超级”原子:“IPIbPIbBbP”(对上面的情况来说),来使预测结构关系的估计成为可能。注意在所有上述情况下,每个原子中被编码的各帧的显示顺序被重置,同时每个帧内预测帧,例如对IPIP来说,帧η、η+Ν,η,η+Ν将被编码。
[0043](c)随后检查图像序列,以检测帧内预测帧,或者像在H.264/MEPG-4AVC的情况下,帧内预测帧和/或即时解码器刷新(IDR)帧。H.264中的IDR帧提供一种随机存取手段。一旦解码器收到IDR文件,解码器将清空它自己的用作运动补偿参考的先前解码帧的存储。从而能够从任意IDR帧开始重放,并且避免由参考帧的不可用引起的漂移。于是,IDR帧内预测帧确保真实的随机存取点。可以考虑的其它帧类型包括渐变,可能还有闪烁。
[0044]已被编码成IDR的各帧对通过当“原子”停止时间传播时,把“原子”放置在其位置来进行重新编码来说十分理想,并且不依赖于在其编码之前做出的编码决定。当使用时间子采样时,这会是十分重要的。从而确定所有这些位置,并集中到列表中。
[0045](d)算法的下一个阶段涉及用于编码中间过程的预测结构的生成。已知关于在中间过程中可以使用的帧数的一些约束(比如,总帧数的10%),那么算法循环遍历在前一阶段(C)中生成的列表中找到的各个帧内/IDR帧位置。存在三种可能性:(i)列表中的位置的数目乘以原子中的帧数超过对中间过程帧的约束。在这种情况下,所述位置被均匀子采样,以使得所述约束被满足。另一方面,按照符合序列统计信息的方式对所述位置进行子采样(活性区域中位置更多)Jii)列表中的位置的数目乘以原子中的帧数不超过对中间过程帧的约束。在这种情况下,通过尝试覆盖未被充分表现的序列区域,取回新的位置。这是以均匀方式或者通过使位置选择(采样)适应于图像序列统计信息进行的。(iii)如果期望均匀采样,那么不需要任何其它动作。如果期望按照与内容相关的方式进行采样,那么可以选择在列表之外的位置,以增大更活性区域的覆盖率。
[0046](e)执行中间编码过程,并为每个编码帧收集统计信息。
[0047](f)与所收集的统计信息的第一批低复杂性编码过程的对应内容相结合地对收集的统计信息进行分析。除了把统计信息从低复杂性转换为高复杂性(这种转换可以以帧编码类型,甚至是预测结构中帧的位置为条件),如在前面可能的替选实施例中描述的那样,这一阶段还能够得出使(纹理或报头)比特使用与QP相关联等的关系。
[0048](g)最后,上面得出的关系随后被提供给最终的编码过程,该编码过程把来自低复杂性过程的编码统计信息转换和更新成高复杂性编码。
[0049]图1中表示了以上算法的流程图。图2中还表示了该方法的高级示图。
[0050]如图2中所示,可以存在任意数目的第一低复杂性编码过程,以及任意数目的中间编码过程。控制模块判定额外的低复杂性编码过程和中间过程的结构(例如,预测结构、QP、各种各样的编码参数和工具等)和数目。它还负责处理来自每个编码过程的编码统计信息,然后把它们提供给最终的高复杂性编码过程的码率控制组件。最后,预分析模块是可选的,如果存在的话,那么可帮助控制模块准备低复杂性编码过程和中间编码过程,如前所述。注意在另一个实施例中,如果低复杂性过程是按照使得它们处理图像序列的不同区域或重叠区域的方式设计的,那么低复杂性过程可被并行化。这也适用于中间过程,这种情况下,如果不止一个中间过程在运行,那么在每个中间过程中,可以考虑多组不同的(可能重叠)的帧。
[0051]步骤(a)_(d)、(f)和(g)在图2的码率控制模块中进行。该模块设立随后在编码器中执行的第一低复杂性过程,分析由这样的过程生成的统计信息,视情况使用预分析信息,随后设立在分离的编码器中执行的中间编码过程。在每个编码过程之后分析统计信息,所述统计信息可被用于扩充(任意种类的)后续过程。最后,码率控制模块设立最后的编码过程,并把该结构传递给编码器模块。
[0052]在另一个实施例中,初始编码过程还可用不产生任何压缩的比特流,而是产生可用于码率控制算法的统计信息的某些预处理器分析过程代替。在适当的中间编码过程的帮助下,码率控制分析模块仍然把这些统计信息转换成编码统计信息。
[0053]在另一个实施例中,可以使用另外的中间编码过程来提高在第一低复杂性编码过程中收集的统计信息的质量。在这个实施例中,第一编码过程利用固定的QP分配,从而避免使用码率控制来实现某个比特率目标。这种策略有益于估计将被归一化为相同的QP值进而在图像序列中的所有各帧之间相当的预测误差。这既有益于码率控制,又有益于后续编码过程中的比特分配。不过,如果预定的QP导致远离初始比特率目标的比特率,那么这会消极地影响在第一编码过程期间收集的统计信息的可靠性。这种情况下,可以进行第二低复杂性编码过程,所述第二低复杂性编码过程补偿第一低复杂性编码过程的比特率(和QP)偏差。在进行了第一过程之后,控制模块判定作为结果的比特率是否足够接近初始比特率目标。如果不是这种情况,则控制模块利用新的预定QP值进行另外的低复杂性编码过程,以使得作为结果的比特经足够接近初始比特率目标。在该另外的编码过程期间收集的统计信息随后可替换、更新或补充在先前的低复杂性编码过程期间收集的统计信息。注意可用于加速编码处理的信息,比如运动和编码模式信息可以在各个编码过程间共享。
[0054]本公开中说明的方法和系统可以用硬件、软件、固件或者它们的组合来实现。描述成块、模块或组件的特征可以一起实现(例如,用诸如集成逻辑器件之类的逻辑器件),或者单独实现(例如,分离连接的逻辑器件)。本公开的方法的软件部分可包括计算机可读介质,所述计算机可读介质包括当被执行时,至少部分实现所述方法的指令。计算机可读介质例如可包括随机存取存储器(RAM)和/或只读存储器(ROM)。指令可以由处理器(例如,数字信号处理器(DSP),专用集成电路(ASIC)或现场可编程逻辑阵列(FPGA)执行。
[0055]说明书中提及的所有专利和出版物表示本公开所属领域的技术人员的技术水平。在本公开中引用的所有参考文献在好像每个参考文献已被单独整体引为参考的相同程度上被引为参考。
[0056]应当理解,本公开并不局限于特定的方法或系统,所述方法或系统当然可以发生改变。另外要理解的是这里说明的术语只是用于描述特定的实施例,并不意图限制本公开。本说明书和随附权利要求中使用的单数形式包括复数对象,除非上下文明确地另作说明。术语“多个”包括两个以上的所指对象,除非上下文明确地另作说明。除非另作说明,否则这里使用的所有技术和科学术语具有和本公开所属领域的技术人员通常理解的相同含义。
[0057]说明了本公开的许多实施例。然而,显然可以做出各种修改而不脱离本公开的精神和范围。因而,其它实施例在以下权利要求的范围之内。
[0058]基于以上的说明,可知公开至少公开了以下技术方案:
[0059]1.—种在多个编码过程中编码视频信息,以控制所述视频信息的码率的方法,所述方法包括:
[0060]提供关于所述视频信息的初始统计信息;
[0061]通过一个或多个不对称编码过程,对所述视频信息进行一次或多次中间编码,以提供校正由初始统计信息引起的不精确性的更新统计信息;
[0062]分析所述初始统计信息和所述更新统计信息;和
[0063]根据所述更新统计信息,进一步对所述视频信息编码。
[0064]2.按照I所述的方法,还包括根据所述视频信息,生成预测结构,其中所述不对称编码过程根据生成的所述预测结构,对所述视频信息编码。
[0065]3.按照I或2所述的方法,其中所述不对称编码过程在编码复杂性和/或编码帧方面不对称。
[0066]4.按照I到3中任意一项所述的方法,其中通过以比中间编码低而且比进一步的编码低的复杂性对所述视频信息进行初始编码,来提供关于所述视频信息的所述初始统计信息。
[0067]5.按照4所述的方法,其中进行一次或多次初始编码。
[0068]6.按照前述中任意一项所述的方法,其中所述中间编码包括时间和空间子采样。
[0069]7.按照6所述的方法,其中所述中间编码按照均匀地间隔开的方式或者根据预分析信息,对各帧子采样。
[0070]8.按照前述中任意一项所述的方法,其中通过选择所述视频信息的最具代表性的各帧来根据内容进行所述中间编码。
[0071]9.按照1-7中任意一项所述的方法,其中通过选择如果不存在则将使码率失真性能降低最多的那些帧来根据内容进行所述中间编码。
[0072]10.按照前述中任意一项所述的方法,其中所述中间编码包括多个编码过程,每个编码过程对所述视频信息的不同帧组编码。
[0073]11.按照10所述的方法,其中所述视频信息包括多个子采样帧组,其中:
[0074]—个过程中的关系和统计信息转换适合于用于后续中间过程。
[0075]12.按照10所述的方法,其中所述视频信息包括多个子采样帧组,其中:
[0076]源于一组的关系和统计信息适合于用于不同的组。
[0077]13.按照12所述的方法,其中所述不同的组是邻近的组。
[0078]14.按照前述中任意一项所述的方法,其中一个过程中的关系和统计信息转换适合于用于后续中间过程。
[0079]15.按照10-14中任意一项所述的方法,其中每个编码过程包括:
[0080]所述视频信息的帧子集的选择;和[0081 ]所述视频信息的预测结构的选择。
[0082]16.按照前述中任意一项所述的方法,还包括:
[0083]获得与在所述中间编码之前生成的所述预测结构有关的信息。
[0084]17.按照前述中任意一项所述的方法,其中生成所述预测结构包括:
[0085]生成预测结构原子;和
[0086]在所述视频信息内,确定应插入所述预测结构原子的位置。
[0087]18.按照17所述的方法,其中生成所述预测结构还包括:
[0088]除了初始预测结构原子之外,还生成从要用于所述视频信息的进一步编码的预测结构中取出的另外的预测结构原子。
[0089]19.按照17或18所述的方法,其中所述预测结构原子被扩展成更大的预测结构。
[0090]20.按照前述中任意一项所述的方法,还包括在进行所述中间编码之前:
[0091]检查所述视频信息,以检测帧内预测帧、即时解码器刷新(IDR)帧、场景变化或者渐变转换。
[0092]21.按照20所述的方法,其中检测的帧内预测帧,IDR帧,场景变化或渐变转换的位置被用于利用所述预测结构原子来构建所述预测结构。
[0093]22.按照前述中任意一项所述的方法,还包括:
[0094]保存所述初始统计信息和所述更新统计信息。
[0095]23.按照前述中任意一项所述的方法,其中分析所述初始统计信息和所述更新统计信息还包括得出复杂性或编码参数关系。
[0096]24.一种视频信息编码系统,包括:
[0097]一个或多个第一类型编码器;
[0098]适合于以比所述一个或多个第一类型编码器高的复杂性,编码视频信息的第二类型编码器;和
[0099]码率控制分析模块,其从所述一个或多个第一类型编码器接收关于经编码的视频信息的统计信息,并把更新的统计信息发送给所述第二类型编码器。
[0100]25.按照24所述的系统,其中从所述码率控制分析模块接收的所述统计信息包括下述中的一个或多个:运动预测,帧内预测,编码模式信息,比特使用统计信息,编码参数,空间统计信息,时间统计信息,帧内预测误差统计信息,帧间预测误差统计信息。
[0101]参考文献列表
[0102][I!Advanced video coding for generic aud1visual services(用于通用音视频服务的先进视频编码),http: //www.1tu.1nt/rec/recommendat1n.asp?type =folders&lang = e&parent = T-REC-H.264,2009年10月 0
[0103][2]L.Merritt和R.Vanam,“X264:A High-Performance H.264/AVC Encoder(X264:高性會264/AVC编码器),,,http: //akuvian.0rg/src/x264/overview_x264_v8_5.pdfo
【主权项】
1.一种用于在多个编码过程中编码视频信息,以控制所述视频信息的码率的方法,所述方法包括: 针对下述中的一个或多个来优化一个或多个低计算复杂性编码过程:编码效率;传输效率;以及所述一个或多个低计算复杂性编码过程的可扩展性; 将所优化的一个或多个低计算复杂性编码过程应用于所述视频信息; 基于所述一个或多个低计算复杂性编码过程来收集关于编码的视频信息的初始统计信息; 针对中间编码过程的比特使用来优化所述中间编码过程,所述中间编码过程包括预测结构; 将所优化的中间编码过程应用于所述编码的视频信息; 分析所应用的优化的中间编码过程的比特使用以及所述预测结构的编码性能,所述预测结构包括参数序列,所述参数描述了针对所述预测结构中的每个帧的类型和编码顺序,所述类型包括下述中的至少一者:帧内帧;单向预测帧间帧;双向预测帧间帧;以及一次性帧; 基于所分析的比特使用和所分析的编码性能来收集关于所述编码的视频信息的更新统计信息; 检测由所优化的一个或多个低计算复杂性编码过程引起的所述编码的视频信息中的编码不精确性; 将完全复杂性编码过程设置成比所优化的中间编码过程高的计算复杂性; 基于所述初始统计信息和所述更新统计信息,针对下述中的一个或多个来优化所述完全复杂性编码过程以去除所检测的编码不精确性:编码效率;传输效率;以及所述完全复杂性编码过程的可扩展性;以及 将所优化的完全复杂性编码过程应用于所述编码的视频信息。2.根据权利要求1所述的方法,还包括基于所述视频信息来生成所述预测结构并且使所述预测结构的长度最小化。3.根据权利要求1所述的方法,其中,所述一个或多个低计算复杂性编码过程在编码复杂性和/或编码帧方面是不对称的。4.根据权利要求1所述的方法,其中,所述一个或多个低计算复杂性编码过程具有比所述中间编码过程低的计算复杂性。5.根据权利要求1所述的方法,其中,每个编码过程包括对来自所述视频信息的多个帧进行编码。6.根据权利要求1所述的方法,其中,所述中间编码过程包括时间和空间子采样。7.根据权利要求6所述的方法,其中,所述中间编码过程按照均匀地间隔开的方式或基于预分析信息对帧进行子采样。8.根据权利要求1所述的方法,其中,通过选择所述视频信息中的最具代表性的帧来基于内容进行所述中间编码过程。9.根据权利要求1所述的方法,其中,通过选择如果不存在将使码率失真性能降低最多的那些帧来基于内容进行所述中间编码过程。10.根据权利要求1所述的方法,其中,所述中间编码过程包括多个编码过程,其中,每个编码过程对所述视频信息的不同帧组进行编码。11.根据权利要求10所述的方法,其中,所述视频信息包括多个子采样帧组,其中: 源于一个过程的统计信息适合于用于后续的中间编码过程。12.根据权利要求10所述的方法,其中,所述视频信息包括多个子采样帧组,其中: 源于一个组的统计信息适合于用于不同的组。13.根据权利要求12所述的方法,其中,所述不同的组包括邻近的组。14.根据权利要求10所述的方法,其中,每个编码过程包括: 所述视频信息的帧子集的选择;以及 所述视频信息的预测结构的选择。15.根据权利要求1所述的方法,其中,源于一个过程的统计信息适合于用于后续的中间编码过程。16.根据权利要求1所述的方法,还包括,在所述中间编码过程之前: 检查所述视频信息以检测下述中的一个或多个: 帧内帧; 即时解码器刷新IDR帧; 场景变化;或者 渐变转换。17.根据权利要求1所述的方法,还包括: 保存所述初始统计信息和所述更新统计信息。18.根据权利要求1所述的方法,其中,应用所优化的完全复杂性编码过程发生于一定的持续时间内,所述应用所优化的完全复杂性编码过程包括: 在所述应用所优化的完全复杂性编码过程的整个持续时间内生成因果编码统计信息;以及 基于所述因果编码统计信息来应用所优化的完全复杂性编码过程。19.根据权利要求1所述的方法,其中,优化所述中间编码过程包括使所述预测结构最小化。20.根据权利要求2所述的方法,其中,生成所述预测结构包括: 生成预测结构原子; 在所述视频信息内,确定所述预测结构原子应当被插入以优化所述预测结构的编码性能的位置; 优化所述预测结构原子的编码性能;以及 使用不同的预测结构原子来生成新的预测结构; 其中,每个预测结构原子包括最小的可能预测单元。21.根据权利要求20所述的方法,其中,生成所述预测结构还包括: 除所述初始预测结构原子之外,还生成从所述预测结构取出的另外的预测结构原子以用于对所述视频信息的进一步的编码过程。22.根据权利要求20所述的方法,其中,所述预测结构原子被扩展成更大的预测结构。23.根据权利要求20所述的方法,其中,所检测的帧内帧、IDR帧、场景变化或渐变转换中的一个或多个的位置被用于使用预测结构原子来构建预测结构。24.一种视频信息编码系统,包括: 一个或多个低计算复杂性编码器,所述一个或多个低计算复杂性编码器被配置成通过执行低计算复杂性编码过程来收集关于编码的视频信息的初始统计信息; 一个或多个中间编码器,每个中间编码器被配置成执行对所述视频信息的中间编码过程; 码率控制分析模块,所述码率控制分析模块被配置成: 针对所述中间编码过程的比特使用来优化所述中间编码过程,所述中间编码过程包括预测结构;以及分析所应用的优化的中间编码过程的比特使用和所述预测结构的编码性能,所述预测结构包括参数序列,所述参数描述了针对所述预测结构中的每个帧的类型和编码顺序,所述类型包括下述中的至少一者:帧内帧、单向预测帧间帧、双向预测帧间帧、以及一次性帧;基于所分析的比特使用和所分析的编码性能来收集关于所述编码的视频信息的更新统计信息; 检测由所优化的一个或多个低计算复杂性编码过程引起的所述编码的视频信息中的编码不精确性; 将完全复杂性编码过程设置成比所优化的中间编码过程高的计算复杂性;以及基于所述初始统计信息和所述更新统计信息,针对下述中的一个或多个来优化所述完全复杂性编码过程以去除所检测的编码不精确性:编码效率;传输效率;以及所述完全复杂性编码过程的可扩展性;以及 进一步编码器,所述进一步编码器被配置成执行对所述视频信息的所述完全复杂性编码过程。25.根据权利要求24所述的系统,其中,从所述码率控制分析模块接收的统计信息包括下述中的一个或多个: 运动预测; 帧内预测 编码模式信息; 比特使用统计信息; 编码参数; 空间统计信息; 时间统计信息; 帧内预测误差统计信息;或者 帧间预测误差统计信息。26.根据权利要求24所述的系统,还包括: 预分析模块,所述预分析模块被配置成除了由所述一个或多个低计算复杂性编码器提供的初始统计信息之外,还提供所述视频信息的初始统计信息,其中,所述码率控制分析模块被配置成对由所述预分析模块提供的初始统计信息、由所述一个或多个低计算复杂性编码器提供的初始统计信息、以及所述更新统计信息相结合地进行分析。27.—种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质包括存储其中的下述指令集合,所述指令集合在由一个或多个计算或处理装置执行时,使得执行下述处理,所述处理包括以下步骤: 针对下述中的一个或多个来优化一个或多个低计算复杂性编码过程:编码效率;传输效率;以及所述一个或多个低计算复杂性编码过程的可扩展性; 将所优化的一个或多个低计算复杂性编码过程应用于所述视频信息; 基于所述一个或多个低计算复杂性编码过程来收集关于编码的视频信息的初始统计信息; 针对中间编码过程的比特使用来优化所述中间编码过程,所述中间编码过程包括预测结构; 将所优化的中间编码过程应用于所述编码的视频信息; 分析所应用的优化的中间编码过程的比特使用以及所述预测结构的编码性能,所述预测结构包括参数序列,所述参数描述了针对所述预测结构中的每个帧的类型和编码顺序,所述类型包括下述中的至少一者:帧内帧;单向预测帧间帧;双向预测帧间帧;以及一次性帧; 基于所分析的比特使用和所分析的编码性能来收集关于所述编码的视频信息的更新统计信息; 检测由所优化的一个或多个低计算复杂性编码过程引起的所述编码的视频信息中的编码不精确性; 将完全复杂性编码过程设置成比所优化的中间编码过程高的计算复杂性; 基于所述初始统计信息和所述更新统计信息,针对下述中的一个或多个来优化所述完全复杂性编码过程以去除所检测的编码不精确性:编码效率;传输效率;以及所述完全复杂性编码过程的可扩展性;以及 将所优化的完全复杂性编码过程应用于所述编码的视频信息。
【文档编号】H04N19/147GK105847806SQ201610313462
【公开日】2016年8月10日
【申请日】2011年1月3日
【发明人】阿萨纳西奥斯·莱昂塔里斯, 亚历山德罗斯·图拉皮斯
【申请人】杜比实验室特许公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1