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

文档序号:9602850阅读:来源:国知局
码内容可以通过信息的共享和重用提供效率。在本发明的许多实施例中,编码器接收内容、在第一程中分析内容并且在第二程中编码内容。在第一程中收集的统计数据和其它信息可以被用来加速第二程中的编码并且统计数据和编码信息可以在第二程中在编码过程之间共享。在一些实施例中,第一程在第二程开始之前完成。在其它实施例中,第二程可以在第一程完成之前开始。换句话说,用于第一和第二程的计算过程可以同时运行,其中帧在被(一个或多个)第二程过程处理之前被(一个或多个)第一程过程处理。
[0087]根据本发明实施例、用于编码内容的过程在图6中示出。编码过程600包括接收媒体内容出10)。内容可以包含在单个输入文件(例如,多媒体文件或容器格式文件)或媒体文件的集合中。内容还可以是被编码器接收的输入视频流。在本发明的几种实施例中,编码过程在编码服务器上被实现为编码应用并且盘读/写操作减少,因为每个输入帧只需要被读一次。
[0088]编码过程还包括使第一程收集关于媒体流的统计数据¢12)。第一程要对源输入视频流中的内容进行初始分析并且为要编码的每个分辨率收集统计数据。在本发明的许多实施例中,输入流被转换成用于每个期望的输出分辨率的流并且收集关于每个流的统计数据。转换可以包括颜色转换(例如,RGB到YUV等,ITU601到709,或者特定于格式的转换)并且调整每帧的维度/分辨率的尺寸。利用如上进一步讨论的技术,基于帧中图像数据的复杂性等级,诸如帧复杂性测量的编码信息可以被指定给流中每一帧。模式分布也可以为每一帧确定。复杂性测量和模式分布可以被用作最终流的编码的输入。
[0089]其它编码信息可以包括要在编码流中使用的报头数据的尺寸和宏块数据的尺寸。给定报头尺寸,编码器可以估计有多少位要分配给开销数据并且有多少位可用于编码内容。当编码内容时,宏块尺寸还可以对位分配的更好估计起作用。为了有效的速率控制,报头尺寸与宏块尺寸的相对比例跨输出流应当是一致的。报头尺寸、宏块尺寸和/或报头尺寸与宏块尺寸的相对比例可以作为编码参数提供给编码过程。
[0090]编码信息还可以包括假定的参照解码器(HRD)数据。HRD模型在一些视频压缩标准中被指定,以帮助计算帧尺寸和缓冲区满度。HRD在编码器上再现解码器行为,以避免重放设备缓冲区中的缓冲区溢出。HRD数据可以在第一分析程中确定并且被保存在共享缓冲区或本地高速缓存中,供在第二编码程中使用。
[0091]针对一个分辨率收集的其它统计数据可以被用来计算用于以相同的分辨率和/或另一分辨率以各种位速率编码流的决定。在第一程中收集的统计数据可以包括(但不限于):平均量化参数、报头位的尺寸、纹理位的尺寸、帧内宏块/CTU的数量、帧间宏块/CTU的数量、跳过宏块/CTU的数量。在本发明的几种实施例中,统计数据可以被内部高速缓存(例如,输出到单个文件)和/或存储在存储器中当在第二程中编码时可以让每个编码器控制器访问的共享缓冲区中。
[0092]在第二程中,内容被编码(626)到输出流中。在本发明的许多实施例中,单独的线程或过程被用于每个输出分辨率的编码应用发起¢14),其中每个线程或过程被称为编码器控制器。在本发明的更多实施例中,每个编码器控制器以相同的分辨率但不同的位速率编码多个输出流。在本发明的几种实施例中,编码服务器具有多个处理器并且编码器控制器每个可以在不同的处理器上运行或者以别的方式跨处理器分布。输出流可以以恒定位速率(CBR)或可变位速率(VBR)被编码。
[0093]一直到流的编码完成(618),编码器控制器才可以利用存储在内部高速缓存和/或存储器中的共享缓冲区中的信息和统计数据同时运行。编码器控制器可以检查(620)存储器是否存在用于它正在编码的块和/或帧的编码信息并且利用(622)那个信息处理当前块或帧。如以上进一步讨论的,不同类型的编码信息可以被用来允许编码器跳过决定或者可以被用作确定用于处理当前块或帧的编码信息的起点。如果该信息还不存在,则它可以被创建(624)并且流的编码(616)继续。
[0094]共享信息可以包括运动估计信息,诸如运动向量。为流生成的运动向量可以在编码处于相同分辨率或处于不同分辨率的另一个流时被重用。如以上进一步讨论的,被重用来编码处于更高分辨率的流的运动向量可以被缩放,以补偿分辨率的差异并且被精细化。一些统计数据可以特定于被编码的流的分辨率。如以上所讨论的,处于某个分辨率和位速率的CTU尺寸选择可以被保持并应用,以便以更高的位速率编码相同的分辨率。当编码器控制器为帧的一部分中的CTU尺寸作出决定时,它可以在以更高位速率编码该帧的相同部分时跳过那个决定并且重用该CTU尺寸或尝试更小的CTU尺寸。
[0095]在本发明的许多实施例中,由同一个编码器控制器为处于不同位速率的多个输出流顺序编码帧的给定部分中的CTU。在编码器控制器编码用于输出流的CTU之后,如果它其后很快就对不同的输出流编码该CTU,则编码那个CTU所需的数据有可能仍然在处理器高速缓存或其它本地存储器中。根据本发明的实施例,编码器控制器顺序地一个接一个为每个输出流编码CTU。用于每个输出流的对应CTU可以利用用于处于不同位速率的流的不同量化参数被编码。
[0096]利用面向块的视频压缩进行编码通常涉及把对帧内的图像信息的压缩起作用的量化参数包括在内。用于帧的量化参数通常是基于诸如帧的帧复杂性测量和模式分布的因素来选择的并且被选择为使得编码帧是目标尺寸(按位)同时维持可能的最佳图像质量。如上面进一步讨论的,用于帧复杂性测量和模式分布的值可以为输入流的帧确定并且在处理多个输出流中的对应输出帧中使用。来自前一帧的(一个或多个)量化参数可以被用作起始值并且利用用于当前帧的帧复杂性测量和模式分布被精细化。例如,如果下一帧具有比前一帧更低的复杂性测量,则量化参数可以对那个帧增加,因为更不复杂的图像可以被压缩更多,而没有严重的保真度损失。由于更高位速率中用于数据的更高容量,当对更高位速率的流编码相同的帧时,量化参数可以减小。在本发明的许多实施例中,量化参数可以利用相同的帧复杂性测量和模式分布对每个输出流中对应的帧独立地确定,同时调整每个输出流的目标位速率。为较低位速率输出流中的帧中的CTU确定的量化参数可以被参考并且对于更高位速率输出流中的对应CTU被减小。当编码输出流时,根据本发明实施例的编码器可以计算速率变形信息,并且当编码处于更高位速率的输出流时,重用该速率变形信息来选择量化参数。在本发明的几种实施例中,每个输出流中的每一帧被编码为使得其模式分布近似等于利用来自输入流的源帧确定的目标模式分布。可以被不同的编码器控制器访问并使用的其它类型的共享信息如上面进一步描述的。
[0097]在本发明的各种实施例中,视频的一个或多个帧被分区成编码运动预测残余的块。这些块在HEVC标准中被称为变换单元(TU)并且可以具有4x 4、8x 8、16x 16或32x32的尺寸。依赖于相关标准或视频编解码器,用于预测残余的其它类型的块单位可以被使用。根据本发明实施例的编码器可以在编码CTU、TU、编码单元(CU)和/或由编码器被配置为用于其的标准或视频编解码器定义的其它类型的编码块时使用量化参数。基于流的统计数据和/或先前计算的量化参数为视频帧中的块选择量化参数的过程可以被称为自适应量化。用于像素块的量化参数可以在第一程和/或第二程中基于用于那些像素块的复杂性测量(类似于上面进一步讨论的帧复杂性测量)和/或已经为相似像素块计算出的量化参数来计算。在第一程中计算出的量化参数和/或复杂性测量可以被存储在例如可由编码器控制器访问的共享缓冲区中并在第二程中被使用。例如,为处于一个分辨率的输入流计算的值可以在编码处于相同分辨率不同位速率的输出流时使用。
[0098]在以上关于图6所描述的过程中,为输入视频流收集或计算612统计数据。被计算的统计数据可以包括用于输入视频流内帧中像素块的复杂性测量。在本发明的许多实施例中,用于像素块的复杂性测量可以被存储并在第二程中用于为编码块计算量化参数。根据本发明实施例、用于生成复杂性测量的过程在图7中示出。该过程包括选择710视频帧中的像素块。该过程分析712块的复杂性。例如在AVC标准中,复杂性测量可以从亮度和/或对比度等级分布的柱状图来计算。但是,根据本发明的实施例,依据任何视频编码标准的多种技术中任意一种都可以被用来计算复杂性测量。复杂性测量可以被存储714,用于生成量化参数(例如,在第二编码程中)。图10A示出了如在输入流的第一程中计算的CTU的复杂性测量的图表。如图所示,复杂性测量可以在不同的CTU之间变化。
[0099]再次参照图6,上面进一步描述的过程包括如果编码信息不存在就创建624编码信息并且如果编码信息存在就重用该编码信息622。编码信息可以包括用于特定像素块(诸如CTU或TU)的量化参数。根据本发明实施例、用于生成量化参数的过程(诸如创建624编码信息)在图8中示出。该过程包括选择810像素块。所存储的用于块的复杂性测量被检索812。在第二程中用于编码块(诸如CTU或TU)的量化参数可以利用诸如在第一程中为块计算的复杂性测量的统计数据来确定814。计算还可以考虑与基于平均的画面量化参数的偏差。
[0100]量化参数可以利用在第一程中确定的复杂性测量和/或为已经编码的其它输出流中(例如,在更低或更高位速率的流中)的块确定的量化参数。用于使用已经为相似的像素块生成的量化参数(诸如在622中重用编码信息)的过程在图9中示出。该过程包括选择910像素块。为相似的块检索912所存储的量化参数。相似的块是从输入流内帧中与被选的块相同的块生成的输出流内帧中的块。例如,相似的块可以是已经在具有相同分辨率但不同位速率的输出流中编码的对应块。利用检索出的量化参数为选定的块计算量化参数。还可以对于为输入流和/或输出流的已经编码的帧计算的统计数据调整916量化参数,诸如但不限于变形速率和位速率。量化参数可以被计算,以实现最小变形和目标位速率。图10B示出了为三个不同的输出流(处于相同的分辨率和不同的位速率)中的CTU计算的量化参数的图表连同在图10A中示出的复杂性测量的图表。如图中所示,复杂性测量值被用在确定量化参数值中并且由于其关系而使得图表具有相似的一般形状。
[0101]为了方便重放期间流的切换,视频内容的一组备选流应当在每一帧中的相同位置具有帧内帧(I帧)。当在一个流中存在I帧时,每个其它备选流中处于相同位置(即,时间)的对应帧应当是I帧。因为I帧包括渲染帧所需的全部信息,所以当重放设备需要切换流时,它可以在I帧切换,使得重放是无缝的,而不丢帧。在本发明的许多实施例中,I帧在多个备选输出流中的相同位置对帧进行编码。在已经为输出流编码了P帧或B帧的情况下,编码器可以在编码另一个输出流时跳过检测,以便将相同位置的对应帧编码为I帧,并且可以将该帧编码为B帧或P帧。
[0102]虽然用于利用共享统计数据编码多媒体内容流的具体过程已经在以上关于图6进行了讨论,但是各种过程中任何一种都可以根据本发明的实施例被用来编码用于自适应位速率流化的多媒体内容流。
当前第4页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1