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

文档序号:9602850
为了自适应位速率流化而利用自适应量化编码多个视频流的系统和方法
【技术领域】
[0001]本发明一般而言涉及视频编码,并且更具体而言涉及为了从源视频流进行自适应位速率流化而高效编码多个视频内容流的系统和方法。
【背景技术】
[0002]术语流化媒体(streaming media)描述媒体在重放设备上的重放,其中媒体被存储在服务器上并且在重放期间经由网络被持续地发送到重放设备。通常,重放设备在重放期间任何给定的时间都在缓冲区中存储足量的媒体,以防止由于在接收到媒体的下一部分之前重放设备完成所有缓冲媒体的重放而造成重放的中断。自适应位速率流化,或者自适应流化,涉及实时地检测目前的流化状况(例如,用户的网络带宽和CPU容量)并且相应地调整流化媒体的质量。通常,源媒体以多个位速率进行编码并且重放设备或客户端依赖于可用资源在流化不同编码之间进行切换。当重放设备进行自适应位速率流化时,重放设备通常由从最低位速率流请求部分媒体(其中备选流是可用的)开始。当重放设备下载所请求的媒体时,重放设备可以测量可用的带宽。在存在附加带宽可用的情况下,重放设备可以切换到更高位速率流。
[0003]在自适应流化系统中,源媒体通常作为指向多个包含真正视频和音频数据的交替流的顶层索引文件存储在媒体服务器上。每个流通常存储在一个或多个容器文件中。不同的自适应流化解决方案通常使用不同的索引和媒体容器。Matroska容器是作为开放标准项目由位于法国Aussonne的Matroska非营利组织开发的媒体容器。Matroska容器基于可扩展二进制元语言(EBML),这是可扩展标记语言(XML)的二进制衍生物。Matroska容器的解码被许多消费者电子(CE)设备支持。由位于加州San Diego的DivX,LLC开发的DivX Plus文件格式使用Matroska容器格式的扩展,包括未在Matroska格式中指定的元素。其它常用的媒体容器格式是在MPEG-4部分14(即,IS0/IEC14496-14)中指定的MP4容器格式和在MPEG-2部分1 (即,IS0/IEC标准13818-1)中指定的MPEG传送流(TS)容器。MP4容器格式用在IIS平滑流化和Flash动态流化中。TS容器用在HTTP自适应位速率流化中。交替流中的视频可以根据各种面向块的视频压缩标准(或编解码器)一一诸如由IS0/IEC运动图像专家组(MPEG)和瑞士日内瓦的国际电信联盟电信标准化部门(ITU-T)共同指定的高效视频编码(HEVC/H.265)以及由ITU-T指定的H.264/MPEG-4 AVC(高级视频编码)标准--来编码。

【发明内容】

[0004]公开了根据本发明实施例的为自适应位速率流化而编码多个视频流的系统和方法。在一种实施例中,被配置为将源视频编码为多个备选视频流的源编码器包括包含源编码器应用的存储器、共享存储器和并行处理系统,该并行处理系统被源编码应用配置为接收多媒体内容,其中多媒体内容包括具有主分辨率的源视频数据,在通过所接收的多媒体内容的第一程中收集关于源视频数据的统计数据并且将统计数据写到共享存储器,其中统计数据包括像素块的复杂性测量,在通过所接收的多媒体内容的第一程中确定用于源视频数据的初始编码信息并且将初始编码信息写到共享存储器,利用多个并行编码过程在通过所接收的多媒体内容的第二程中利用所收集的统计数据和初始编码信息并行地编码源视频数据以便产生多个备选视频流,其中源视频的编码利用附加编码信息,并行编码过程被配置为重用已经由另一并行编码过程为视频的一部分确定的并被存储在共享存储器中的附加编码信息,并且并行编码过程被配置为生成还未由另一并行编码过程为视频的一部分确定的附加编码信息并且将所生成的附加编码信息存储在共享存储器中,其中附加编码信息包括用于像素块的量化参数。
[0005]在另一实施例中,关于源视频数据的统计数据包括选自由以下构成的组的统计数据:平均量化参数、报头位的尺寸、纹理位的尺寸、帧内块的数量、帧间块的数量和跳过块的数量。
[0006]在另一实施例中,被配置为确定用于源视频数据的初始编码信息的并行处理系统还包括被配置为计算帧复杂性测量的并行处理系统。
[0007]在还有另一实施例中,被配置为生成还未由另一并行编码过程为视频的一部分确定的附加编码信息的并行编码过程还包括确定用于编码源视频数据中的一视频帧的一部分的编码树单元(CTU)尺寸。
[0008]在还有另一实施例中,确定用于编码源视频数据中的一视频帧的一部分的CTU尺寸包括选择一视频帧的一部分,以便作为第一输出流中的至少一个输出CTU来编码,检查是否已经为相似的CTU确定了尺寸,如果还没有为相似的CTU确定尺寸就选择CTU尺寸,如果已经为相似的CTU确定了尺寸就选择之前为第二输出流确定的既定CTU尺寸并且比较第一输出流的分辨率与第二输出流的分辨率,如果第一输出流的分辨率与第二输出流的分辨率不同就缩放CTU尺寸,确定选定的CTU尺寸对于输出CTU是否是可接受的,当选定的CTU尺寸不可接受时选择较小的CTU尺寸,以及如果选定的CTU尺寸对于输出CTU是可接受的就将选定的CTU尺寸应用到视频帧的所述部分。
[0009]在还有另一实施例中,被配置为确定用于源视频数据的初始编码信息的并行处理系统还包括被配置为确定用于多个备选视频流中至少一个当中的至少一个视频帧的模式分布的并行处理系统。
[0010]在还有另一实施例中,被配置为利用所收集的统计数据和初始编码信息并行地编码源视频数据以产生多个备选视频流的并行处理系统还包括被配置为维持备选视频流中的一视频帧中被处理过的块的计数、基于模式分布确定阈值块数并且如果块的计数满足阈值块数就调整用于块类型决定的标准的并行处理系统。
[0011]在还有另一实施例中,被配置为重用已经由另一并行编码过程为视频的一部分确定的并被存储在共享存储器中的附加编码信息的并行编码过程还包括被配置为当编码第一备选流中的视频帧中的第一块时确定是否存在用于第二备选流中的第二对应块的运动向量、确定第一备选流与第二备选流是否具有相同的分辨率、如果第一备选流与第二备选流不具有相同的分辨率就缩放运动向量、精细化运动向量,以及在编码第一备选流中视频帧中的所述第一块时应用该运动向量的并行编码过程。
[0012]再次在另一实施例中,初始编码信息还包括报头尺寸、宏块尺寸以及报头尺寸与宏块尺寸的相对比例。
[0013]在另一附加实施例中,初始编码信息还包括假定的参照解码器数据。
[0014]在另一附加实施例中,每个并行编码过程以不同的分辨率进行编码。
[0015]在还有另一实施例中,每个并行编码过程编码一个或多个备选视频流并且由并行编码过程编码的每个备选视频流具有不同的位速率。
[0016]在还有另一实施例中,每个并行编码过程将来自源视频数据的块顺序地一个接一个编码到多个备选视频流的子集中的每个流中。
[0017]再次在还有另一实施例中,附加编码信息包括速率变形信息和量化参数。
[0018]还有另一种实施例再次包括利用源编码器接收多媒体内容,其中多媒体内容包括具有主分辨率的源视频数据,在通过所接收的多媒体内容的第一程中利用源编码器收集关于源视频数据的统计数据并且将统计数据写到共享存储器,在通过所接收的多媒体内容的第一程中利用源编码器确定用于源视频数据的初始编码信息并且将初始编码信息写到共享存储器,其中统计数据包括像素块的复杂性测量,利用源编码器利用多个并行编码过程在通过所接收的多媒体内容的第二程中利用所收集的统计数据、初始编码信息和附加编码信息并行地编码源视频数据以产生多个备选视频流,其中源视频的编码还包括利用多个并行编码过程当中的至少一个重用已经由另一并行编码过程为视频的一部分确定的并被存储在共享存储器中的附加编码信息,以及生成还未由多个并行编码过程当中的另一个为视频的一部分确定的附加编码信息,并利用并行编码过程将所生成的附加编码信息存储在共享存储器中,其中附加编码信息包括用于像素块的量化参数。
[0019]在还有另一附加实施例中,关于源视频数据的统计数据包括选自由以下构成的组的统计数据:平均量化参数、报头位的尺寸、纹理位的尺寸、帧内块的数量、帧间块的数量,以及跳过块的数量。
[0020]在还有另一附加实施例中,确定用于源视频数据的初始编码信息还包括计算帧复杂性测量。
[0021]再次在还有另一实施例中,生成还未由另一并行编码过程为视频的一部分确定的附加编码信息还包括确定用于编码源视频数据中一帧视频的一部分的编码树单元(CTU)尺寸。
[0022]再次在还有另一实施例中,确定用于编码源视频数据中一帧视频的一部分的编码树单元(CTU)尺寸还包括选择一视频帧的一部分,以便作为第一输出流中的至少一个输出CTU来编码,检查是否已经为相似的CTU确定了尺寸,如果还没有为相似的CTU确定尺寸就选择CTU尺寸,如果已经为相似的CTU确定了尺寸就选择之前为第二输出流确定的既定CTU尺寸并且比较第一输出流的分辨率与第二输出流的分辨率,如果第一输出流的分辨率与第二输出流的分辨率不同就缩放CTU尺寸,确定选定的CTU尺寸对于输出CTU是否是可接受的,如果选定的CTU尺寸不可接受就选择较小的CTU尺寸,如果选定的CTU尺寸对于输出CTU是可接受的就将选定的CTU尺寸应用到该视频帧的所述部分。
[0023]在还有另一附加实施例中,确定用于源视频数据的初始编码信息还包括确定用于多个备选视频流中的至少一个当中的至少一个视频帧的模式分布。
[0024]在还有另一附加实施例中,利用所收集的统计数据、初始编码信息和附加编码信息并行地编码源视频数据以产生多个备选视频流还包括维持备选视频流中的一视频帧中被处理过的块的计数、基于模式分布确定阈值块数,并且如果块的计数满足阈值块数就调整用于块类型决定的标准。
[0025]再次在另一附加实施例中,重用已经由另一并行编码过程为视频的一部分确定的并被存储在共享存储器中的附加编码信息还包括当编码第一备选流中的视频帧的第一块时确定用于第二备选流中的第二对应块的运动向量是否存在,确定第一备选流与第二备选流是否具有相同的分辨率,如果第一备选流与第二备选流不具有相同的分辨率就缩放运动向量,精细化运动向量,并且在编码第一备选流中的视频帧中的所述第一块时应用该运动向量。
[0026]再次在另一附加实施例中,初始编码信息还包括报头尺寸、宏块尺寸以及报头尺寸与宏块尺寸的相对比例。
[0027]再次在还有另一实施例中,初始编码信息还包括假定的参照解码器数据。
[0028]再次在另一附加实施例中,每个并行编码过程以不同的分辨率进行编码。
[0029]在还有另一实施例中,每个并行编码过程编码一个或多个备选视频流并且由并行编码过程编码的每个备选视频流具有不同的位速率。
[0030]在还有另一附加实施例中,每个并行编码过程将来自源视频数据的块顺序地一个接一个编码到多个备选视频
再多了解一些
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1