为了自适应位速率流化而利用自适应量化编码多个视频流的系统和方法_3

文档序号:9602850阅读:来源:国知局
偏差,和/或帧中像素和/或像素块与之前帧中像素和/或像素块之间的相似性。此外,算法可以计算与在进行运动估计时编码内容中所使用的测量类似的测量。
[0065]如以下将进一步讨论的,帧复杂性测量可以在选择参数时被使用,利用这些参数,将来自输入流的帧编码成输出流中的帧。在本发明的许多实施例中,帧复杂性测量被指定给内容的每一帧并且被表示为整数,其中越大的值指示帧内越大的复杂性。在本发明的更多实施例中,帧复杂性测量被指定给输入流中的帧并且相同的测量被用来选择用于编码多个备选输出流中对应帧的参数。
[0066]包括本领域已知算法的位速率控制算法可以根据本发明的实施例被用来确定多少位要分配给视频的每个编码帧和输出流的缓冲等级并且选择在编码视频的每一帧时应用的量化等级。根据本发明的实施例,这些算法可以利用为输入内容流计算一次的帧复杂性测量并且重用该测量来确定用于从那个输入流编码的多个输出流的量化等级。
[0067]块尺寸决定
[0068]在面向块的编码标准中,像素被看作编码过程中的分区或“块”。在一些现代标准中,块尺寸是可变的,其中帧内的分区可以具有不同的尺寸。HEVC标准使用被称为编码树单元(CTU)的分区,其中CTU的块尺寸通常是64x 64、32x 32、16x 16或8x 8像素。一视频帧可以包括具有不同尺寸和布置的CTU的混合。帧内CTU(或者,根据相关的视频压缩标准,像素的其它“块”分布)的块尺寸常常是基于效率和编码帧的结果产生的按位的尺寸来选择的。当已经对另一备选输出流中帧的对应部分作出类似的决定时,根据本发明实施例的编码器可以加速关于要用在编码用于输出流的内容的帧中的块尺寸的决定。
[0069]编码器通常在维持帧的图像质量的同时至少部分地基于结果产生的编码输出帧的尺寸(按位)选择块尺寸。通常,输出帧的更小尺寸(即,更高效)是期望的并且可以在编码中利用更大块尺寸以更高的压缩实现。编码器可以在编码帧的一部分时利用更大的块尺寸进行尝试并且,如果结果产生的图像的质量或准确度不满足阈值,则对帧的那部分逐步尝试更小的块尺寸。例如,帧的32x 32像素部分可以被测试,以便被编码为四个16x 16像素CTU。如果任何一个16x 16像素CTU都不是期望的,则它可以被进一步分成四个8x 8像素CTU。在其它视频标准中,在特定标准中指定的更大和更小的块尺寸可以以类似的方式被测试。
[0070]根据本发明的实施例,某些数据可以在从相同输入流编码备选输出流的编码器控制器之间被保持和共享。共享的数据可以包括对帧的部分进行了测试的块尺寸。例如,如果编码器控制器已经选择将帧的32x 32像素部分处理为四个16x 16像素CTU(或者CTU尺寸的任何其它组合),则当该编码器控制器或另一编码器控制器以相同的分辨率但不同的位速率编码帧的相同部分时,它可以跳过之前作出的(一个或多个)决定并且使用相同尺寸的CTU和/或测试其它的CTU尺寸。在更高的位速率,可能没必要测试更大的块尺寸,因为更高的位速率可以适应更多存储的信息并且因此由于更大块尺寸造成的更高压缩是不需要的。因此,当编码器控制器以更高的位速率编码帧的相同部分时,它可以跳过之前的测试/决定,不用32x 32像素CTU编码并且仅仅使用16x 16CTU和/或测试8x 8像素CTU是否将在满足目标位速率的同时实现相同或更好的质量。
[0071 ] 过去的CTU尺寸选项对于挑选不同分辨率的流中的CTU尺寸也会是有用的。例如,假定32x 32的CTU尺寸对于具有分辨率1920x 1080的流中帧的一部分被测试并拒绝,那么16x 16或更小的分区是有利的。分辨率为3840x 2160的流中帧的相同部分将覆盖64x64的尺寸。对于更高分辨率帧中的那部分,编码器可以跳过检查64x 64的CTU尺寸,因为32x 32的尺寸在更低分辨率流中被拒绝了。编码器可以通过测试32x 32和更小的CTU尺寸开始。
[0072]根据本发明实施例、用于在编码视频流中重用块尺寸信息的过程在图3中示出。该过程包括检查(310)是否已经为相似的CTU(即,在另一流中对应帧的对应CTU)确定了尺寸。如果没有,则选择(312)要被测试的CTU尺寸,通常从较大的尺寸开始。如果已经为相似的CTU确定了尺寸,则该相似CTU的源流的分辨率与当前流进行比较(312)。如果分辨率不同,贝1J CTU尺寸被缩放(314)到当前流。预定的CTU尺寸(如果被预定)或选定的CTU尺寸(如果没有被预定)对于被编码的当前CTU被测试(316)。如果该尺寸不可接受,则尝试(318)更小的CTU尺寸。如果尺寸可接受,则该CTU尺寸应用(320)到当前CTU。
[0073]虽然用于在编码视频流中重用CTU尺寸确定的具体过程在以上关于图3进行了讨论,但是各种过程中的任意一种都可以被用来根据本发明实施例在编码多个媒体内容流中重用CTU(或者,按照相关视频压缩标准,像素的其它“块”分区)尺寸确定。而且,本领域技术人员应当理解,除HEVC之外的视频标准中的“块”分区可以具有除这里讨论的尺寸之外的其它可用尺寸,并且用于选择这里讨论的块尺寸的技术是同等可用的。如以下将进一步讨论的,由一个编码器控制器(即,以相同分辨率和不同位速率编码多个流的软件过程)所作的决定可以被存储并被那个编码器控制器或者被编码不同分辨率的另一个编码器控制器重用。
[0074]模式分布和模式选项
[0075]模式分布指视频帧中帧内、帧间和跳过宏块(或者,按照相关视频压缩标准,像素的其它“块”分区)的整体比率。诸如P帧和B帧的预测帧可以包含帧内(只利用帧内的信息编码)和/或帧间(参考另一帧中的信息编码)宏块。依据不同的视频压缩标准,块像素分区可以被不同地称为宏块或编码树单元(CTU)。模式分布可以指块类型,不管块本身被称为宏块还是CTU。测试和/或算法,包括本领域中已知的那些,可以被用来分析帧中的每个宏块,以便在维持图像质量的同时查看哪种类型的块对于编码那个块最高效。例如,编码效率的测试可以是编码特定宏块所需的位数。
[0076]为了编码效率和图像质量,常常期望跨交替流中对应的帧维持尽可能接近相同的模式分布。例如,给定具有30%帧内块、60%帧间块和10%跳过块的给定帧p,处于相同分辨率和不同位速率的第一交替流中对应的帧pi具有帧内、帧间和跳过块的相似分布,即,目标模式分布。处于不同分辨率和不同位速率的第二交替流中对应的帧P2理想地也将具有块类型的相似分布。
[0077]模式分布可以被用来加速编码器关于在处理帧中的块时使用什么块类型所作的决定。通过设法符合确定的模式分布,可以减少决定的次数。例如,朝着处理特定帧的结束,帧的模式分布可能偏离目标模式分布。因此,块可以被选择为某种类型(例如,帧内、帧间、跳过),以便使编码那些块之后的结果产生的模式分布更接近目标模式分布,同时维持图像的良好质量和完整性。在本发明的各种实施例中,选择块类型的决定可以在处于不同位速率的流之间有所不同,因为在更高的位速率可以容纳更大的复杂性(例如,更多帧内编码的块)。
[0078]根据本发明实施例、用于调整块类型决定的过程在图4中示出。当帧中的块被编码时或者当帧被分析并且块类型被选择而不被编码时,过程400可以被使用。该过程包括维持(410)已经被处理(例如,分析或编码)的块的计数。如果已经达到阈值块数,或者可选地帧中全部块的一定比例,则用于选择块类型的标准可以被调整(414),使得更有利于选择将维持帧中块的目标模式分布的块类型。如果还没有到达(416)帧的结束,则处理对帧中的块继续并且更新(410)已经被处理的块的计数。
[0079]虽然用于在编码视频流中调整块类型决定的具体过程以上关于图4进行了讨论,但是各种过程中的任意一种都可以被用来根据本发明实施例在编码多个媒体内容流时调整块类型决定。
[0080]运动估计
[0081]在视频压缩中,诸如P帧和B帧的预测帧从参照帧(可以是1、P或B帧)汲取信息并且包含诸如在运动估计中使用的运动向量和残余数据的信息。用于像素块(例如,宏块、CTU或类似的分区)的运动向量通常描述在预测帧中什么地方放置来自参照帧的所指示的像素块。残余数据描述像素块与参照像素块之间的任何差异。在本发明的许多实施例中,诸如运动向量的运动估计信息可以从一个输出流被重用到处于不同分辨率和/或位速率的另一个输出流。
[0082]在本发明的几种实施例中,为处于给定分辨率和位速率的至少一个输出流生成运动向量。然后,当以相同的分辨率不同的位速率编码至少一个其它输出流时,所述运动向量被应用和精细化。在本发明的更多实施例中,当以更高的分辨率编码至少一个其它输出流时,为输出流生成的运动向量被应用和精细化。运动向量与第一个流与第二个流之间的分辨率差成比例地被缩放,然后被精细化,以利用在更高分辨率可用的更高精度。例如,通过用1280/768乘以向量的水平分量并且用720/432乘以向量的垂直分量,为分辨率768x 432的流生成的运动向量可以在编码分辨率1280x 720的流时使用。乘数1280/768和720/432可以被认为是用于那个分辨率改变的缩放因子。此外,编码器可以确定用于宏块的运动向量和残余数据的编码成本是非常低的并且可以跳过检查用于另一输出流中那个宏块的编码成本。以这种方式,运动向量可以跨多个输出流被重用并且运动估计由于无需生成新的运动向量而加速。用于跨多个输出流共享和/或重用的运动估计信息的其它技术可以根据本发明的实施例被使用。用于在编码备选流时重用运动估计信息的系统和方法在于2012年 5 月 31 日提交、授予 Zurpal 等人且标题为“Systems and Methods for the Reuse ofEncoding Informat1n in Encoding Alternative Streams of Video Data,,的美国专利申请N0.13/485, 609中公开,该申请的全部内容通过引用被结合于此。
[0083]根据本发明实施例、用于在编码视频流时重用运动向量的过程在图5中示出。当编码视频流中的帧时,编码器可以检查(510)可以在编码当前帧中重用的运动向量是否已经为不同视频流中的对应宏块/CTU创建了。如果没有,则创建并存储(512)新运动向量。如果运动向量存在,则编码器可以检查(514)是否有其它视频流处于与当前流相同的分辨率。如果是相同的分辨率,则运动向量可以直接应用(516)。运动向量还可以利用搜索被精细化,诸如利用对一个或两个邻居像素的小菱形搜索或者利用子像素精细化。各种其它搜索模式可以替代地被用来精细化运动向量。如果是不同的分辨率,则运动向量可以在应用之前被缩放(518)并精细化(520)到当前分辨率。
[0084]虽然用于在编码视频流时重用运动向量的具体过程在以上关于图5进行了讨论,但是各种过程中任意一种可以被用来根据本发明实施例在编码多个媒体内容流中重用运动向量。
[0085]用于自适应位速率流化的两程编码内容
[0086]利用两程过程编
当前第3页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1