1、背景介绍
随着移动互联网的深入发展,视频消费场景逐渐变成主流,早期由于手机硬件的限制问题,导致生产出来的视频画质、清晰度存在较大的问题,用户体验不太好,当时的网络也处于4G的发展阶段,网络的限制也无法持续支持高清视频的消费,但是现在5G发展地如火如荼,网络的高速发展,手机硬件性能的提升,用户越来越不满足于低画质和低清晰度的视频。提升视频的画质和清晰度势在必行,需要一套行之有效提升视频清晰度的优化方案。
2、评价标准
做一件事情之前,首先需要确定一下评价这件事情的标准。所以在提出视频清晰度优化方案之前,必须先确定一下衡量视频清晰度的评价准则。评价视频清晰度有两种准则:
2.1 客观标准
客观标准就是利用算法计算视频画面质量分,同等条件下,如果A视频的质量分得到高于B视频,说明A视频的保真质量做得比B视频更好。评估视频质量的算法有两大类:
-
完全参考: 两个视频逐帧对比分析,计算对比的质量,这种使用的比较多,常见的VMAF、PSNR、SSIM都是完全参考。
-
部分参考: 截图视频中的部分帧来对比分析。有些场景例如直播没法完全对比,截取部分帧来对比是比较科学的。
目前Netflix推出的VMAF算法是评价视频质量的主流算法,下面我们简单介绍一下:
-
VMAF 全称 Video Multi-method Assessment Fusion ,它借助人类视觉模型以及机器学习来评估一个视频的质量。
-
VMAF的评价指标主要包含:其中VIF和DLM是空间域的,表示一帧画面之内的特征;TI是时间域的,表示多帧画面之间的相关性特征。
-
视频信息保真度(VIF:Visual Quality Fidelity)
-
细节损失指标(DLM:Detail Loss Measure)
-
时域运动指标/平均相关位置像素差(TI:Temporal Information)
-
-
VMAF基于SVM的nuSvr算法,在运行的过程中,根据事先训练好的model,赋予每种视频特征以不同的权重,对每一种画面都生成一个评分,最终以均值算法进行归总,算出该视频的最终评分。
-
VMAF计算出的分数范围是0 ~ 100,其中0表示最低质量,100表示最高质量,后续对比的时候只给出分数。
2.2 主观标准
客观标准固然重要,但是视频是给人看的,最终视频的质量好不好,还需要用户主观感受。换言之,两个视频的VMAF可能相近,但是用户观感可能会不一样,有些用户喜欢柔色,有些用户喜欢暖色。
主观标准操作起来比较简单,找几个视频,让用户观看之后主观给出评价,视频A和视频B的质量对比如何,这种输出的结果比较准确,但是工作量比较大,不好大范围推广。所以根据项目要求,在特定的时候采用客观评价标准,在某些场景采用主观评价标准。
例如下面两张图片,它们的VMAF值是相近的,但是第二张看上去明显比第一张画质好多了,而且更加明亮,这并没有改变图片的编码结构,只是对画面本身进行一些调色处理(这个我们下面会单独拎出来讲),就能明显提升主观感受。所以评价视频质量需要综合主观标准和客观标准综合来判断。而且我们建议在有条件的情况下,主观标准更加重要,因为客观标准只是模拟人眼的视觉系统,和真实的场景还是有所差距。
3、基础优化
通过上面的描述我们基本了解了视频质量的评价标准,但如果要提升视频质量,这些还不够,我们还需要介绍一下视频的基本属性,以及这些属性可以在多大程度上影响视频的质量。 我们首先使用MediaInfo来查看一下视频的属性,由于重点关注画质,所以就自动忽略封装格式和音频流信息,只关注视频轨道信息:
Video
ID : 1
Format : AVC
Format/Info : Advanced Video Codec
Format profile : High@L3.1
Format settings : CABAC / 4 Ref Frames
Format settings, CABAC : Yes
Format settings, Reference frames : 4 frames
Codec ID : avc1
Codec ID/Info : Advanced Video Coding
Duration : 2 min 41 s
Bit rate