随着近几年视频行业的爆发增长,各个业务场景对视频处理的需求越来越高。本周的技术解码就由段争志老师带大家一起探秘腾讯云视频云全链路媒体处理解决方案中的关键技术。
近几年视频行业喷井式爆发,短视频APP、社交媒体、电商带货、直播会议、线上教育等等各种泛媒体类应用大规模增长的同时,人们对高清/超高清、低延时、高画质的需求也越来越强烈。腾讯云视频云依托自身多年的视频技术的积累以及众多业务应用的落地优化实践,不断完善自身产品体系,优化性能,结合用户业务场景不断创新,提供一整套集视频质检、画质修复增强、编码、低延时传输全链路媒体处理解决方案。
海量视频数据的质量监控是多媒体厂商不得不面临的棘手问题之一,视频质量服务包括视频质量检测、视频质量评价和视频质量监控。如果可以针对海量视频提供快速正确的审核或监控方案,则可以全天候不间断地检测视频质量,大幅降低人工成本,减少线上服务的风险和事故率。
视频质检不仅可以智能检测视频画面中抖动重影、模糊、低光照、过曝光、黑边、白边、黑屏、白屏、花屏、噪点、马赛克、二维码(包括条形码、小程序码、二维码)等在内的多个场景,还可以自动检测视频无音频轨异常、声音异常片段(包括静音、音量过低、爆音)。此外还可以基于整体视频画面进行无参考质量打分。
各种不同形式下的低画质视频样例
(从左到右、从上到下示例依次是重影、模糊、低光照、黑边、花屏、过曝、噪点、二维码、马赛克)
为覆盖类型丰富的各种质检异常场景,视频云针对不同异常类型,结合传统光流和深度学习算法,采取算法和多模型融合方式覆盖不同异常场景,从而达到准确的视频计审效果; 此外基于深度学习模型,综合考虑视频的清晰度、构图、色彩等多个维度,可对视频画面进行无参考质量评估,从而给出综合性视频质量打分建议,输出评分范围40~100, 粗略分段建议: { 40-60: bad, 60-80: normal,80-100: good },评价指标:
1、相关性指标:与人眼主观打分的相关性越高,则算法指标越好
2、散点图的数据分布越聚集在中心实线,则表明客观算法越接近人眼主观打分
3、PLCC和SRCC约接近1越好,RMSE约接近0越好
视频质量打分散点图
视频云质检技术除了具有类型丰富、算法融合准确率高、无参考质量打分的特点,还具有简单易用、倍速可控、高可定制的特点,即对外提供公有私有一体化、直播点播统一化的标准 REST API 接口,可与点播服务、COS 存储、第三方存储系统快速打通,便捷接入,自主调度切换;基于分布式视频处理算法,对于不同客户可以满足不同倍速、不同并发、不同检测粒度的处理要求,自适应满足客户处理效率和成本的平衡,从而提升性价比。接入简单、成熟稳定、高效灵活的API接口,为用户量身定制视频 AI 服务私有化中台,帮助用户构建安全稳定、高效可靠、性价比高的视频云服务生态。
受国家政策鼓励,各网络运营商在大力铺设网络和传输设备,带宽大规模提速,在大中城市家庭普遍完成100M带宽接入,5G移动覆盖也在很多城市开始部署和商用,即将全面普及;与此同时,老片重生、4K分辨率及HDR技术正在满足用户不断挑剔的观看体验需求。
画质修复与增强结合传统图像处理和AI算法,涵盖画质修复和画质增强两大模块,能够提供视频去噪、轮廓修复、超分辨重建以及HDR色彩转换等功能,适用于UGC/PGC视频质量提升,老片翻新,4K HDR资源生产等业务场景。画质修复与增强能够显著提高视频主观质量,为用户带来更佳的视觉体验。
画质修复前后对比
色彩增强前后对比
编码毛刺去除前后对比
视频云画质重生技术包含了众多视频处理算法,可以覆盖绝大部分的视频处理需求场景,如去竖条纹、降噪、低照度增强、色彩增强、HDR、编码伪影去除、超分辨重建等等。另外,各种处理算法都经过了大量的调优测试并提供了统一的标准REST API接口,可以与其他如点播、存储等其服务快速打通,具有高质量、高性能、安全稳定、易用高效等特点。
性能优化
针对视频压缩核心编码算法,视频云对H264/H265/AV1等编码器做了大量的算法层面与工程层面的创新与支持,包含众多业务逻辑支持,多线程技术与工程优化、底层汇编实现、各种快速算法以及大量的参数适配与优化等等:
1. 设计高性能数据结构和指令集优化(访存设计的数据结构/SIMD指令集加速/NUMA绑定等),自适应算法限制编码块大小,从而在压缩效率减少有限的同时显著提升编码速度,预分析过程中,扩大预分析运动估计过程的编码单元大小,从而减少编码对lookahead的等待。
2. 转码系统中编解码采用异步模式,增加并行能力,提高转码速度,针对不同源码率、帧率、分辨率以及智能识别视频源场景CPU/GPU/FPGA编解码自适应调度。
3. 为了适配不同的客户、不同的业务除了对视频质量、压缩性能等技术指标的要求不一,各大编码器均支持多种编码档次,以满足质量与速度的不同需求。对于视频质量/延迟等指标,支持针对 psnr、vmaf、 ssim、zerolatency等指标进行参数调优的侧重。
4. 针对各个编码的码率控制做了深入的算法优化与参数控制,支持ABR / CBR /CRF码率控制算法,可以实现高效精准的码率控制,同时还提供了灵活的VBV控制能力,支持变帧率VFR下的码率控制以及高效的ROI码率控制算法等。
5. 通过新增FLV AV1 sequence head以及CodecID,第一时间打通了FLV封装协议对AV1视频标准的支持,并随后上线了AV1 转码能力,可以全线支持点播/直播服务。
下图中,以Intel(R) Xeon(R) CPU E5-2670 v3 @ 2.30GHz 机器为平台,给出了腾讯视频云转码平台中不同编码标准下对应编码器的最高压缩性能参考对比以及目前最快编码速度的对比情况。
不同编码器的参考压缩性能与最大速度对比
极速高清
为了以更低的码率提供更高清的流媒体服务,腾讯云推出了极速高清-智能动态编码技术,利用智能场景识别,镜头分割,图像深度学习与画质增强等技术积累,对视频进行动态感知分析和画质增强处理,配合业界领先的主流编码算法(H.264/H.265/ AV1/AVS2)进行编码参数的动态更新,可以在点播和直播业务下,相比开源软件在相同画质下平均分别节省超20% 和40% 的带宽成本;或在同等带宽条件下,提供更加高清优质的视频画质体验,感受“质”的变化。
极速高清降20%码率效果对比
4K实时超分插帧
视频的高分辨率,高清晰度,低码率一直是视频行业的挑战,为了满足行业市场高分辨率,高清晰度的需求,视频超分辨率一度成为了行业应用热点。简单来讲,视频超分辨率就是提高视频的空间分辨率,以提高视频的清晰度。这其中少不了对超分算法、算力以及高性能、高压缩编码的需求。
腾讯视频云平台采用了分布式实时超分转码系统来实现了对高性能超分转码能力的支持,通过分布式并行将高复杂度,高计算量的超分计算与编码过程分离开来,4k超分/插帧 转码速度高达120 fps。
另外,超分使得视频分辨率、清晰度大幅度提升,这也直接导致了转码后的码率大幅上升或者码率受限时的质量损失。对于4K实时超分转码系统,腾讯视频云同时支持H.264/H.265/AV1转码能力,客户可以根据实际需求进行选配转码。目前,视频云4k实时超分转码系统对H.265转码的支持也能够稳定在80fps以上。在高性能、高可用、高压缩率V265编码器的出色表现下,可以相比H.264节约带宽高达40%以上。
1080P超分至4K转码示意图
上图中给出了一个示例,为视频云客户在体育赛事的直播转码中,应用4k超分技术实时将1080p视频内容超分到4k,并且分别使用了H.264/H.265进行转码。可以看到,H.265标准相比H.264标准转码在平坦区域使用了更大块的编码单元只有复杂区域才使用更细的编码划分,在使用相同码率转码时,使用H.265转码后的码流相比使用H.264转码后的码流画面更清晰,画质更细腻丰富,主观感受明显提升。
多tile宫格编码
H.265标准提供了tile划分工具,与slice不同,tile是一个独立的编解码矩形区域,tile划分不单单为视频的编码、解码提供了一种高效的并行处理方式,更是丰富了视频的应用,如在广视野、高分辨率视频(如:8K)应用中,tile划分可以实现不同的视角的分块传输、解码、渲染等等。下图展示了一种典型的基于多tile宫格式编码的应用:
多tile宫格编码的一个应用
如上图所示,在一个超高清视频,超高分辨的视频应用中了,为了给用户提供超高清的视频体验,一种解决方案是如上图所示,将8K 视频源在云端系统分为两路输出,一路直接缩放为1080p作为一个全景的背景输出,另一路将8k视频按照4x4(或者更细粒度如8X8/16X16等)切分为16个tile每个tile单独编码与封装,每个tile支持限制性mv(不跨区域搜索),以使得每个tile画面可以在解码端单独连续解码。这种应用配合终端上视点坐标传送与交互,可以通过在云端服务系统中实时打包不同视点所覆盖的tile码流,实现视点的切换,而不用传输整个8k视频,从而节约带宽,而丝毫不影响主观画质。
目前,腾讯视频云H.265转码能力已经成功支持了对多tile编码的能力,可以支持多线程,限制性MV, 单个/多个tile的单slice独立封装,每个帧所有tile/slice 的nal包结束后可以自动添加 access_unit_delimiter 分隔符等特性,可以满足客户多元化的tile宫格式编码需求。
快直播/云游低延迟编码
云游戏作为近年来的又一个热点,受到了越来越多的关注。在云游戏模型中,所有的游戏逻辑和渲染都在服务器端运行,然后再从服务器把压缩后的视频传给用户,这样玩家就不需要一台CPU和GPU相当好的计算机了,唯一的要求就是一个基本的视频解压软件和可靠的网络。
云游戏需要充分考虑用户体验,对编码延时以及网络抖动非常敏感,这对网络带宽和编码器压缩编码提出了新的要求。目前云游戏编码一种是基于硬件编码器的方式(如nvdia硬件编码器),这种方式通常速度快,编码延迟低,但是压缩质量,码率控制等通常不如软件编码器,另一种是基于超低延迟的服务端通用编码器,这种方式压缩质量好、码率控制灵活,但是需要克服编码延迟大出帧抖动的问题。
为了满足快直播/云游戏编码的超低延时,出帧稳定性,以及码率波动小等高要求,视频云团队着重优化了H.264/H.265在zerolatency下的编码参数、快速算法、码率控制等,例如编码器启动时使用简单的参数编码降低首帧出帧延时,使用(intra_refresh)帧内刷新波替代I帧以此避免大I帧码率波动,限制使用单线程与单个参考帧,对复杂帧进行运动估计搜索次数削峰限制,提高码率控制对重设码率的响应速度,替换效率更高的模式选择算法,使用wpp技术(H265)降低整体编码延迟等等。
目前,腾讯视频云媒体质检、修复增强、编码、超分全链路媒体处理解决方案的业务支持越来越广泛,涉及在线教育,广电/OTT,游戏直播,社交分享,电商直播,短视频,安防监控等众多领域,视频云团队也不断的开拓创新,夯实自身技术,为进一步提高视频云业务性能的同时,赋能行业客户,为用户带来了更加流畅、清晰的视频体验。