用于硬件加速的视频编码的主编码器制造技术

技术编号:13883312 阅读:66 留言:0更新日期:2016-10-23 16:29
通过控制针对编码视频的比特流句法的各高层的决策,主编码器即使在与来自不同供应商的跨不同硬件平台的加速器硬件一起使用时也能提供一致的行为。例如,主编码器控制高级的编码行为并为输出比特流的序列层和图片层(以及可能的其它层,诸如片头部层)设置句法元素的值,而只使用少量的计算资源。包括加速器硬件的加速器随后以与主编码器所设置的句法元素的值一致的方式来控制针对句法的较低层的编码决策,为较低层的句法设置句法元素的值,这允许加速器在作出其编码决策时有一定的灵活性。

【技术实现步骤摘要】
【国外来华专利技术】背景工程师使用压缩(也叫做源编码(source coding或source encoding))来降低数字视频的比特率。压缩通过将视频信息转换成较低比特率的形式来降低存储和传送该信息的成本。解压(也被称为解码)从压缩的形式中重构一种版本的原始信息。“编解码器”是编码器/解码器系统。在过去的二十年中,已采用了各种视频编解码器标准,包括ITU-T H.261、H.262(MPEG-2或ISO/IEC 13818-2)、H.263和H.264(MPEG-4AVC或ISO/IEC 14496-10)标准、MPEG-1(ISO/IEC 11172 1 172-2)和MPEG-4视觉(ISO/IEC 14496-2)标准以及SMPTE 421M(VC-1)标准。最近,HEVC标准(ITU-T H.265或ISO/IEC 23008-2)已被批准。视频编解码器标准通常定义针对编码视频比特流的句法的选项,从而详述当在编码和解码时使用特定特征时该比特流中的参数。例如,比特流被分层地组织,如针对序列的序列层参数、针对序列的图像的图像层参数、针对图片中的切的片层参数、以及针对给定图像的块的低层参数。在许多情况下,视频编解码器标准还提供关于解码器应当执行以在解码时取得一致的结果的解码操作的细节。除了编解码器标准外,各种专用编解码器格式定义针对编码视频比特流的句法的其它选项以及相应的解码操作。虽然一些视频编码操作在该操作所使用的计算资源方面是相对简单的,但另一些视频编码操作在计算上是复杂的。例如,运动估计、频率变换、部分采样插值、环路去块滤波、颜色转换、以及视频大小调整可能需要大量的计算。这种计算复杂性可能在各种情形下是有问题的,诸如高品质编码、高比特率视频(例如,经压缩的高清晰度视频)或实时编码。因此,一些编码器使用硬件加速来将某些计算密集型操作卸载到图形处理器或其它专用硬件。例如,在某些配置中,计算机系统包括至少一个主中央处理单元(“CPU”)以及至少一个图形处理单元(“GPU”)或专门适配用于图形处理或视频编码的其它硬件。主编码器使用主CPU来控制总的编码并使用
GPU(或其它专用硬件)来执行共同需要大量计算的操作,从而实现对视频编码的加速。在典型的用于硬件加速视频编码的体系结构中,主编码器控制总的编码。主编码器通过信号将控制信息和数据发送给加速器硬件的设备驱动程序。在一个现有的用于硬件加速视频编码的体系结构中,硬件供应商提供用于与该供应商的加速硬件一起工作的主编码器。主编码器展示接口,通过该接口,应用可规定主编码器应该如何控制编码。在许多情形下,来自不同供应商的主编码器提供与应用通过该接口规定的编码行为不一致的编码。在极端情况下,应用可能与供应商提供的硬件不兼容。概述概括来说,详细的描述呈现了在用于硬件加速编码的主编码器的设计和使用中的创新。通过控制针对编码媒体的比特流句法的高层的决策,主编码器即使在与来自不同供应商的跨不同硬件平台的加速器硬件一起使用时也能提供一致的行为。主编码器为媒体的序列层句法和图片层句法中的至少一个设置输出比特流的句法元素的值。例如,输出比特流包括指示由主编码器为序列层句法设置的句法元素的值的一个或多个序列参数集(“SPS”)句法结构以及由主编码器为图片层句法设置的句法元素的值的一个或多个图片参数集(“PPS”)句法结构。主编码器还可为片头部层句法设置输出比特流的句法元素的值。例如,当主编码器为片头部层句法设置输出比特流的句法元素的值时,输出比特流包括由主编码器为片头部层句法设置的句法元素的值的片头部句法结构(诸如参考图片列表信息或参考图片集信息)。当主编码器为句法的给定层(例如,序列层、图片层或片头部层)设置句法元素的值时,它可设置该层所有的句法元素的值或该层的仅一些句法元素的值。主编码器也可为一个或多个补充增强信息(“SEI”)消息、用于指示图片边界的访问单元分隔符(“AUD”)、和/或其它信息设置输出比特流的句法元素的值。主编码器可以对由主编码器设置的句法元素的值进行熵编码/格式化,或者它可以将该值传递给加速器来进行熵编码/格式化。主编码器可以将由主编码器设置的句法元素的值写到输出比特
流,或者它可以将该值传递给加速器来写到输出比特流。主编码器还用控制参数的值来填充一个或多个控制结构。控制参数可包括一个或多个速率控制参数,该速率控制参数指定影响质量和/或比特率的目标或因素。主编码器可(直接或间接地)从加速器接收反馈信息(例如,媒体的复杂度信息、质量信息和/或比特率信息)并至少部分基于该反馈信息来确定控制参数的值。其它控制结构可包括指示预处理分析的结果的信息(例如,感兴趣区域信息、复杂度信息、噪声类型信息、噪声水平信息和/或亮度采样水平信息),这可帮助加速器作出一些编码决策。主编码器发起由包括加速器硬件的加速器执行的对媒体的编码,跨越位于主编码器和加速器硬件之间的加速器接口传递控制结构。这促进了加速器根据由主编码器为序列层句法和图片层句法(以及可能的片头部层句法)中的至少一个设置的句法元素的值对编码操作的控制。例如,由加速器控制的编码操作可包括针对媒体的(至少对于片数据的较低层级的句法,诸如宏块、子宏块、分区、残留数据单元、编码树单元、编码单元、预测单元、变换单元、或其部分)的图片内估计和预测操作、运动估计和补偿操作、频率变换操作、量化操作、和熵编码/格式化操作。位于主编码器和加速器硬件之间的加速器接口可包括主编码器和一个或多个设备驱动程序之间的应用程序编程接口(“API”)和设备驱动程序接口(“DDI”)。例如,加速器接口可用于与多种不同类型的加速器硬件中的任何一种的设备驱动程序一起工作,并且加速器接口可针对多种编解码标准或格式中的任何一种与主编码器一起工作。加速器根据主编码器设置的句法元素的参数和值来执行媒体的较低句法层(例如,宏块、子宏块、分区、残留数据单元、编码树单元、编码单元、预测单元、变换单元、或其部分)的编码操作。在编码之后,输出比特流包括指示由所述加速器为媒体的片数据层句法和比特流句法的较低层所设置的句法元素的值的句法结构。此外,如果加速器为片头部层句法设置了输出比特流的句法元素的值,输出比特流包括由加速器为片头部层句法设置的句法元素的值的片头部句法结构。在开始编码之前(或者甚至在对一些编码控制属性进行编码期间),主编码器可以根据应用跨主编码器所公开的接口上的一个或多个调用来设置编码
控制属性的值。主编码器公开的接口可包括用于设置各种编码控制属性的值的子例程(例如,规程、函数、成员函数、对接方法等)和用于检索那些编码控制属性的值的子例程。主编码器还可公开另一接口,该接口包括用于管理输入流的子例程和用于管理输出流的子例程。参考附图阅读以下详细描述,将更清楚本专利技术的前述和其它目标、特征和优点。附图简述图1是其中可实现所描述的一些实施例的示例计算系统的示图。图2a和2b是其中可实现所描述的一些实施例的示例网络环境的示图。图3是结合其可实现所描述的一些实施例的示例编码器系统的示图。图4a和4b是示出结合其可实现所描述的一些实施例的示例视频编码器的示图。图5a和5b是示出其中可实现一些所描述的实施例的用于硬件加速视本文档来自技高网
...

【技术保护点】
一个或多个存储计算机可执行指令的计算机可读介质,所述计算机可执行指令使得计算系统由此被编程为执行一种方法,所述方法包括:使用主编码器来响应于应用跨所述主编码器所公开的接口上作出的一个或多个调用来设置编码控制属性的值;使用所述主编码器来为媒体的序列层句法和图片层句法中的至少一个设置输出比特流的句法元素的值;使用所述主编码器来用控制参数的值填充一个或多个控制结构;以及使用所述主编码器来发起由包括加速器硬件的加速器执行的对所述媒体的编码,其中所述一个或多个控制结构通过位于所述主编码器和所述加速器硬件之间的加速器接口来传递,由此促进所述加速器根据由所述主编码器为序列层句法和图片层句法中的至少一个设置的句法元素的值来控制编码操作。

【技术特征摘要】
【国外来华专利技术】2014.02.18 US 14/183,3721.一个或多个存储计算机可执行指令的计算机可读介质,所述计算机可执行指令使得计算系统由此被编程为执行一种方法,所述方法包括:使用主编码器来响应于应用跨所述主编码器所公开的接口上作出的一个或多个调用来设置编码控制属性的值;使用所述主编码器来为媒体的序列层句法和图片层句法中的至少一个设置输出比特流的句法元素的值;使用所述主编码器来用控制参数的值填充一个或多个控制结构;以及使用所述主编码器来发起由包括加速器硬件的加速器执行的对所述媒体的编码,其中所述一个或多个控制结构通过位于所述主编码器和所述加速器硬件之间的加速器接口来传递,由此促进所述加速器根据由所述主编码器为序列层句法和图片层句法中的至少一个设置的句法元素的值来控制编码操作。2.如权利要求1所述的一个或多个计算机可读介质,其特征在于,由所述加速器控制的编码操作包括针对所述媒体的较低层句法的图片内估计和预测操作、运动估计和补偿操作、频率变换操作、量化操作、和熵编码/比特流格式化操作,并且其中,在编码之后,所述输出比特流包括:指示由所述主编码器为序列层句法所设置的句法元素的值的序列参数集句法结构;指示由所述主编码器为图片层句法所设置的句法元素的值的图片参数集句法结构;以及指示由所述加速器为片数据层句法和句法的较低层所设置的句法元素的值的其它句法结构。3.如权利要求2所述的一个或多个计算机可读介质,其特征在于,在编码之后,所述输出比特流还包括指示由所述加速器为片头部层句法所设置的句法元素的值的片头部层句法结构,由所述加速器为片头部层句法所设置的句法元素的值包括参考图片列表构造的句法元素的值。4.如权利要求2所述的一个或多个计算机可读介质,其特征在于,在编码之后,所述输出比特流还包括指示由所述主编码器为片头部层句法所设置的句法元素的值的片头部层句法结构,由所述主编码器为片头部层句法所设置的句法元素的值包括参考图片列表构造的句法元素的值。5.如权利要求1所述的一个或多个计算机可读介质,其特征在于,所述方法还包括,使用所述主编码器来为一个或多个补充增强信息消息、访问单元分割符和/或其它信息设置输出比特流的句法元素的值。6.如权利要求1所述的一个或多个计算机可读介质,其特征在于,位于所述主编码器和所述加速器硬件之间的加速器接口包括应用程序编程接口和设备驱动程序接口,其中所述加速器接口用于与多个不同类型的加速器硬件中的任意一个加速器硬件的设备驱动程序一起工作,并且其中所述加速器接口用于针对多个编解码器标准或格式中的任意一种与主编码器一起工作。7.如权利要求1所述的一个或多个计算...

【专利技术属性】
技术研发人员:Y·吴G·J·沙利文S·萨德瓦尼
申请(专利权)人:微软技术许可有限责任公司
类型:发明
国别省市:美国;US

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1