2018 年 3 月,又拍云推出“窄带高清”功能:通过码率控制优化,让视频在主观质量不受损失的情况下,尽可能降低视频码率。“窄带高清”依托又拍云自研的视频内容复杂度算法,来确定视频的应用场景,从而确定该场景下较优的编码参数方案,辅助于码率控制算法。最终达到视频码率控制与带宽优化这个目地,有效提升网络视频平台终端用户体验,并且减少视频分发在带宽成本上的消耗。我们联系又拍云多媒体开发工程师朱高锋,就“窄带高清”的实现方式进行了一次专访。
Q:为什么需要窄带高清?
A:视频转码的成本,远远小于带宽的成本,在视频质量损失没有感知的情况下,通过窄带高清技术实现码率 30% 的节省,可以大大降低直播、点播等业务的带宽成本。
△ 左为源视频,右为窄带高清
Q:又拍云是怎么实现窄带高清的?
A:窄带高清,从视频技术本质上来说,主要依靠的是码率控制。码率控制分两个优化方向:第一,在相同的码率下,尽可能的提高视频质量;第二,在主观质量不损失的情况下,尽可能的降低视频码率。结合业务需求,又拍云“窄带高清”功能选择了第二种方向。
当然,在进行码率控制之前,需要做一些辅助实验和技术分解。
Q:介绍一下窄带高清具体的实现过程吧?
A:第一步:场景划分
通过视频内容复杂度分析,获取场景信息,即先求取视频空间域的复杂度和时间域的复杂度,然后获得视频序列最终的复杂度,来确定视频是什么编码场景。
我们分别测试了手机拍摄视频、动画、商业动作大片、影视剧、在线教育、综艺节目等视频场景,获取了常见场景下视频内容的编码复杂度。
第二步:码率控制算法研究
码率控制算法是视频编码器中非常重要的部分,学术上,码率控制算法分为两种:CBR(Constant Bit Rate,恒定码率)和 VBR(Variable Bit Rate,可变码率)。考虑到业务需求是在主观质量不变的情况下,降低视频文件大小,又拍云“窄带高清”使用 VBR 的方式,并做了如下设定:视频运动缓慢的时候,使用更低的码率,而运动剧烈的时候,使用更高的码率;视频图像内部,静止的部分分配更少的码率,而运动的部分分配更多的码率,最终提升整体画质的表现。
通俗的说,把码率放在该用的地方,不浪费每一个比特,实现更低的码率,更清晰的画质,更小的文件尺寸。
第三步:视频编码器优化
目前,视频编码标准绝大部分的应用场景,还是使用 H.264/AVC 视频编码标准,虽然有更先进的 H.265 / HEVC 和 VP9。又拍云窄带高清先主要针对 H.264,而编码器的参数数量很多,纷繁复杂,为了得到最佳的优化组合,我们用了客观质量评价算法,PSNR(Peak Signal to Noise Ratio,峰值信噪比)和 SSIM(Structural SIMilarity,结构相似度),主观质量评价算法 VMAF(Video Multi-Method Assessment Fusion),再配合人工主观质量评价的方式,获取了常见场景下视频编码器的参数优化方案。
Q:又拍云窄带高清未来的优化方向?
A:1. 目前又拍云的“窄带高清“只支持 H.264 视频编码格式,未来将支持 H.265;
2. 优化主观体验。基于 ROI(Region of Interest,感兴趣区域)或者是 HVS(Human Visual System,人眼视觉系统)的码率控制在学术界有许多的研究成果,有些成果值得我们借鉴到最终的产品或者解决方案当中