前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Intel可扩展视频技术(SVT)

Intel可扩展视频技术(SVT)

作者头像
用户1324186
发布2019-05-08 15:10:38
2.8K0
发布2019-05-08 15:10:38
举报
文章被收录于专栏:媒矿工厂媒矿工厂

本文为媒矿工厂编译的技术文章

原标题:Scalable Video Technology for the Visual Cloud

作者:Intel

翻译整理:虞盛炜

引言

两天前在NAB’19(美国广播电视展)上,英特尔和Netflix共同正式发布了SVT-AV1编解码器,该编解码器在英特尔至强可扩展处理器和英特尔至强D处理器上运行时能够进行实时4K / 60p 10 bit编码[1]。据我们所知,这是第一个能够实时编码的纯软件AV1实现,它代表了AV1编码加速的一个巨大飞跃。两家公司已经在开源社区发布了SVT-AV1,即AV1可扩展视频技术。

与许多开源项目一样,英特尔一直在不断推进着SVT项目。Intel今年发布的白皮书“面向云端视频编码的可伸缩编码技术”[2]对SVT有一个比较全面的介绍。本文将基于该白皮书,介绍SVT的架构、优化和性能表现等。

SVT概述

在各种云视频应用的推动下,远程云视频数据的编码正在显著增长。随着越来越多的可视化数据从各种来源生成,编码已经成为大多数可视化云应用程序的关键部分。编码需要在最短的时间内将源视觉内容压缩到最少的比特数,而不会显著影响视觉质量。已经开发的许多可视化压缩技术和标准(例如MPEG-2、AVC、HEVC、VP9和AV1)都实现了很高的压缩效率。然而,符合标准的编码器可能非常复杂,需要大量的计算和内存资源。

接下来的挑战是在可用云资源受限的情况下,为给定的应用程序实现尽可能好的成本质量权衡。可伸缩视频技术(SVT)是一种基于软件的视频编码技术,它允许编码器在Intel Xeon可伸缩处理器上实现性能、延迟和视觉质量之间的最佳折衷。考虑到目标应用程序对质量和延迟的需求,SVT还允许编码器扩展其性能级别。SVT的效率和可伸缩性主要通过架构和算法以及针对英特尔至强可扩展处理器的特定优化来实现。所有SVT编码器都通过高度宽松的开源倡议*(OSI)批准的BSD +专利许可证提供给开源社区,允许采用者减少他们支持SVT的云视频编码解决方案的成本。

图1 可视化云支持五大核心服务,均需要高性能、高可扩展性和完整的硬件虚拟化

典型的视频编码器包括核心编码器模块和外围模块如图2和图3所示。核心模块的示例包括分析模块对输入图片的时空特性通过各种参数进行分析和描述,模式决策模块负责分区和编码模式决策,编码模块负责像素的标准编码,以及产生兼容比特流的熵编码模块。 外围模块包括预处理任务(例如去噪、调整大小或色度子采样)以及允许应用有效利用核心编码器的各种码率控制算法。开发可伸缩视频技术(SVT)是为了提高核心编码器的可伸缩性,并改进其性能和视觉质量之间的权衡,特别是对于高分辨率视频内容,例如4K和8K。SVT引入了新的与标准无关的体系结构特性和算法,以提高编码器的性能,并提高任何给定资源级别的视觉质量。

SVT体系结构允许将编码器核心分割成独立的操作线程,每个线程处理在不同处理器核心上并行运行的输入图像的不同部分,而不会造成保真度的任何损失。这个SVT架构可以应用于开发符合不同标准的编码器。SVT允许任何符合标准的编码器根据计算和内存限制适当地调整其性能。

图2 SVT编码器核心和可视化编码器组件

图3 SVT编码器和示例应用程序之间的接口

SVT架构

SVT架构旨在最大限度地提高英特尔至强可扩展处理器上SVT编码器的性能。它基于三维并行:SVT支持基于进程的并行性,其涉及将编码操作分成一组独立的编码过程,其中分区/模式决策和规范编码/解码被解耦合;SVT还支持使用分层GOP结构的基于图片的并行性;最重要的是SVT的基于段的并行性,其涉及将每个图片分割成段并且并行处理图片的多个片段以实现更好地利用计算资源而不损失视频质量。

图4 基于段的并行性示例

HVS优化分类

基于HVS的分类使得SVT编码器可以根据人类视觉系统(HVS)的良好特性以及广泛的视觉质量评估反馈进行优化。其基本原理与音频处理和编码中成功使用的噪声掩蔽原理非常相似。然而,遗憾的是,HVS比人类听觉系统复杂得多,这使得基于HVS的分类非常依赖于昂贵的视觉实验结果。尽管如此,SVT的分类到目前为止在识别输入视频的许多方面还是相当成功的,因此编码的精度水平可以大幅度降低,同时产生很少的可感知的视觉伪像。SVT分类包括根据图像的时空特性将图像的每个块映射成一个独特的类,然后以最低的精度对每个类块进行编码,同时引入最少的视觉伪像。SVT的HVS优化分类器将视频图像作为输入,并提供各种类别的输出,每个类用于改善一个或多个适用模式决策(MD)和编解码功能之间的权衡。

图5 输入图像的不同区域之间的分区和编码模式决策算法的分布

图6 使用HVS优化分类实现比特率节省

资源自适应可伸缩性

资源自适应可伸缩性是指SVT编码器能够自适应可用计算和内存资源的约束。SVT处理约束的能力源于SVT的两个关键设计特性,即编码过程中的多维并行性,以及编码器算法的广泛参数化,这使得各种操作点成为可能。

从并行化的角度来看,编码器能够有效地使用可用的计算(处理器内核)和内存资源。更具体地说,如果可以使用更多的资源,那么只要创建可以并行执行的最大线程数,编码器就可以利用这些资源。可能限制并行度范围的因素是编码任务的可用内存量。

从算法的角度来看,几乎所有的关键编码器算法都是参数化的,从而在性能和编码精度之间产生不同的权衡。例如,运动估计中搜索区域的范围可以按大小控制,使其最适合目标应用程序的预期精度。另一个例子是分区和模式决策的准确性在很大程度上取决于最大的计算预算,这是控制性能精度权衡的一个关键参数。

SVT编码器算法的多维并行性和广泛的参数化允许为编码器开发多个操作点或预设。这些预设旨在提供性能和视觉质量之间可能的最佳折衷,从最慢的速度和最高质量的预置M0到最快的速度预置M12。这些预设用于处理从VOD到广播、高级OTT、实时流媒体、视频会议、游戏等各种应用领域。下图展示了SVT编码器的预设。

图7 SVT编码器预设和对应应用场景

SVT-HEVC

SVT最初用于开发SVT-HEVC编码器,该编码器于2018年9月28日发布到开源社区[3]。SVT-HEVC编码器支持HEVC Main和Main10 profile文件,并支持高达8K@60p、4:2:0、8位和10位的视频输入分辨率。该编码器包括三种模式:视觉模式、PSNR/SSIM模式和VMAF模式。如图8所示,这三种模式都支持多达13个预置(从M0到M12),在选择质量与数据密度之间的权衡时提供了良好的粒度。表中,使用单个Intel®Xeon®Platinum 8180处理器(28核,2.5 GHz)上4K内容的目标速度数据表示不同预置的速度级别。注意,较低的分辨率支持较少的预置,因为有些特性在非常高的速度下不能很好地权衡这些分辨率。类似地,由于许多特性都是为性能和视觉质量之间可能的最佳折衷而优化的,所以在PSNR/SSIM和VMAF模式中也不支持一些最高速度的预置。图9展示了SVT-HEVC与x265在编码速度和质量上的对比。

图8 SVT-HEVC三种模式的预设

图9 SVT-HEVC与x265(基于HM16)的速度/性能(PSNR)对比

SVT-AV1

开源SVT-AV1编码器是基于相同的标准无关SVT架构开发的,同时还使用了开源AV1编码器的许多功能[4][5]。SVT-AV1编码器有望在2019年4月底之前支持高达4K@60p,4:2:0,8位和10位(HDR)的视频输入分辨率,并且还具有多个预设(编者注:4月8号在NAB上Intel已正式发布SVT-AV1,支持上述特性[1])。最新SVT-AV1编码器的性能如下图所示。图表上的蓝色菱形对应于不同的SVT-AV1预设,从左侧的预设0到右侧的预设8。为了说明SVT-AV1编码器的性能,AOM-AV1最快预设(预设8)的性能是根据AOM-AV1预设0进行估计的。结果表明,与AOM-AV1预设8的质量相同时,SVT-AV1编码器比AOM-AV1编码器快50倍以上。此外,通过HM编码器评估AOM-AV1预设0(绿色标记)的性能,可以看出SVT-AV1编码器实现了与HM相似的客观质量,同时速度提高了65倍以上。SVT-AV1预设8编码器在英特尔至强铂金处理器8160上实现超过45fps的1080p编码。

图10 SVT-AV1在不同预设下SSIM BD-rate和编码速度

总结

通过充分利用多核处理器功能的体系结构设计特性,并通过参数化特性来考虑性能和视觉质量之间的各种权衡,SVT成为各种视觉云应用程序中出现的众多需求的理想解决方案。SVT编码器的优化针对英特尔Xeon可伸缩处理器,这些优化可利用多内核的并行性和这些处理器上可用的高级底层特性。作为第一个SVT应用程序,SVT- HEVC达到了与HM16类似的质量水平,但比HM16快70倍;与x265 very slow的质量相当,但比它快176倍。

SVT-HEVC和SVT-AV1编码器可通过OSI批准的BSD+专利许获取。它们不仅受到英特尔的支持,而且受到其合作伙伴和客户的支持。因此,SVT提供了一条快速且经济有效的产品化路径,在接下来的几个月和几年里,开放可视化云社区将不断改进和定制SVT !

参考文献

[1]https://www.streamingmedia.com/Articles/News/Online-Video-News/NAB-19-Netflix-and-Intel-Release-SVT-AV1-Codec-as-Open-Source-131033.aspx

[2]https://01.org/sites/default/files/documentation/svt_aws_wp.pdf

[3]https://github.com/OpenVisualCloud/SVT-HEVC

[4]https://01.org/svt

[5]https://github.com/OpenVisualCloud/SVT-AV1

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-04-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 媒矿工厂 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
图像处理
图像处理基于腾讯云深度学习等人工智能技术,提供综合性的图像优化处理服务,包括图像质量评估、图像清晰度增强、图像智能裁剪等。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档