视频清晰度优化指南 | 得物技术
The following article is from 得物技术 Author Jeff Mony
一、背景介绍
二、评价标准
2.1 客观标准
完全参考:两个视频逐帧对比分析,计算对比的质量,这种使用的比较多,常见的VMAF、PSNR、SSIM都是完全参考。
部分参考:截图视频中的部分帧来对比分析。有些场景例如直播没法完全对比,截取部分帧来对比是比较科学的。
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 主观标准
三、基础优化
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 : 634 kb/s
Bit rate mode : CBR
Width : 960 pixels
Height : 540 pixels
Display aspect ratio : 16:9
Frame rate mode : Constant
Frame rate : 25.000 FPS
Color space : YUV
Chroma subsampling : 4:2:0
Bit depth : 8 bits
Scan type : Progressive
Bits/(Pixel*Frame) : 0.049
Stream size : 12.2 MiB (94%)
Writing library : x264 core 148
Encoding settings : cabac=1 / ref=3 / deblock=1:0:0 / analyse=0x3:0x113 / me=hex / subme=7 / psy=1 / psy_rd=1.00:0.00 / mixed_ref=1 / me_range=16 / chroma_me=1 / trellis=1 / 8x8dct=1 / cqm=0 / deadzone=21,11 / fast_pskip=1 / chroma_qp_offset=-2 / threads=17 / lookahead_threads=2 / sliced_threads=0 / nr=0 / decimate=1 / interlaced=0 / bluray_compat=0 / constrained_intra=0 / bframes=3 / b_pyramid=2 / b_adapt=1 / b_bias=0 / direct=1 / weightb=1 / open_gop=0 / weightp=2 / keyint=75 / keyint_min=7 / scenecut=40 / intra_refresh=0 / rc_lookahead=40 / rc=crf / mbtree=1 / crf=26.0 / qcomp=0.60 / qpmin=0 / qpmax=69 / qpstep=4 / vbv_maxrate=800 / vbv_bufsize=1600 / crf_max=0.0 / nal_hrd=none / filler=0 / ip_ratio=1.40 / aq=1:1.00
Codec configuration box : av
3.1 Profile
Baseline Profile
Main Profile
High Profile
3.2 Bitrate码率
Bitrate = width * height * frameRate * factor
factor = 0.15
按照上面的公式设置的码率是比较合适的,当然如果想要更加高清的,可以适当增加factor大小。
3.3 Bitrate Mode
VBR:可变码率(Variable Bitrate), 此编码方式会根据帧间数据的变化量大小来动态调整码率,如果帧间的运动变化比较大,调高码率,如果帧间的运动变化比较小,调小码率。从编码方式就可以看出来,这样的编码方式有两个缺点:(1)运动预测计算算法有一定的耗时,编码时间较长;(2)码率多变,最终生成的文件大小不可预测。可能很大也可能很小。
CBR:固定码率或者常数码率(Constant Bitrate), 这是默认的编码方式,使用此编码方式,文件从始至终的编码码率会固定不变或者基本不变。这种方式的好处是文件大小是确定的,不会出现文件大小不可预测的情况。但是缺点也很明显,有时候帧间变化比较大,有时候帧间变化比较小,如果都使用同样的码率,帧间变化比较大的时间画质会比较一般,帧间变化比较小的时间显得浪费。无法做到较好的平衡。
ABR:平均码率(Average Bitrate), 平均码率较好地兼顾了VBR和CBR的,在帧间变化比较大的时间使用较大的码率,在帧间变化比较小的时间采用较小的码率,最终保证整体采用的码率固定就可以了。较好的处理了画质和文件大小之间的矛盾。
BITRATE_MODE_CQ:这种模式是全面考虑视频质量,尽可能保证视频质量,所以编码出来的视频都很大,并不可取。 BITRATE_MODE_VBR:同上面的VBR BITRATE_MODE_CBR:同上面的CBR
3.4 B帧设置
四、HEVC编码
HEVC标准视频的帧内预测模式支持33种方向,并且提供了更好的运动补偿处理和矢量预测方法。而H.264只支持8种。
HEVC采用了块的四叉树划分结构,采用了8x8 ~ 64 x 64 像素的自适应块划分,而H.264每个宏块的大小都是固定的16 x 16像素,HEVC的这样设计可以保证在不同的帧间和帧内复杂程度中可以动态调整宏块的大小,经过测试发现,在相同的图像质量下,HEVC编码的视频比H.264编码的视频约减少40%,换言之,如果HEVC和H.264码率相同,那么HEVC编码的视频比H.264编码的视频要清晰地多。
分辨率 | H.264/AVC | H.265/HEVC |
480p | 1.5 Mbps | 0.75 Mbps |
720p | 3 Mbps | 1.5 Mbps |
1080p | 6 Mbps | 3 Mbps |
4k | 32 Mbps | 15 Mbps |
使用HEVC编码,可以保证在不增加文件大小的情况下,大大提升视频的清晰度。
五、色彩调优
上面的几种优化方式都是在编码层面调整参数或者直接改变编码方式来提升视频的画质,但有一种方式通过调整视频画面的色值——综合调整亮度、对比度、色温、饱和度、锐度等颜色参数,进而优化整体的视频画面,让视频画面看上去“更清晰”。
有几种对颜色色值的调节方式,对我们理解颜色调节有很大的帮助:
亮度:亮度表示人眼对发光体或被照射物体表面的发光或反射光强度实际感受的物理量,简而言之,RGB分量越大,图像就越亮;反之,图像越暗。 对比度:图像对比度是指图像中从黑色到白色渐变的层次反差或比值。反差越大,比值越大,从视觉上感知,图像就越清晰醒目,对比度越大;反差越小,比值越小,从视觉上感知,图像越不清晰醒目,蒙尘感越强,对比度越小。
色温:色温和温度还真有一定的关系,表示绝对黑体从绝对零度开始加热之后呈现的颜色。从我们生活中来看,暖色调看上去比较温馨,冷色调感受上有点清凉。
饱和度:饱和度是指色彩的鲜艳程度或者纯度。饱和度越高,图像色彩越鲜艳,色彩纯度越高;反之则越低,直至灰度图。 锐度:锐度主要用来表示图像边缘的对比度,由于人类感官,高锐度的图像看起来更加清晰,图像上的细节对比非常明显。
亮度增加10个点(-100 ~ 100)
色温增加5个点(-100 ~ 100)
饱和度增加20个点(0 ~ 100)
锐度增加15个点(0 ~ 100)
六、超分算法
目前比较成熟的超分技术是Real-ESRGAN,基于BasicSR,采用ESRGAN算法,利用机器学习的优势对图片和视频进行去模糊、Resize、降噪、锐化等处理,重建图片,实现对图片的超分辨率处理。
特征提取:计算噪点 非线性映射:放大,模糊化噪点 图像重建:差分,平滑过度,去噪
改进感知损失,提高输出图像的边缘清晰度和纹理真实性。 利用对抗网络的优势不断反馈改进GAN判别器,预测高分辨率图像和原始图像之前的相对真实性而不是绝对真实性。可以恢复原始图像的真实的纹理细节。 优化了模型的稳定性,每次生成的图片都和原图片残差对比,进行矫正训练,最终得到的结果非常稳定。
七、总结
参考文章:
VMAF开源项目 https://github.com/Netflix/vmaf 揭秘 VMAF 视频质量评测标准 https://xie.infoq.cn/article/26aaf2ab83f56192a65ba22ea Netflix VMAF 视频质量评估工具概述 https://zhuanlan.zhihu.com/p/94223056 B帧对视频清晰度/码率的影响 https://blog.csdn.net/matrix_laboratory/article/details/82726897 H264 vs H265 https://www.cnblogs.com/wujianming-110117/p/12640533.html 超分开源项目 https://github.com/xinntao/Real-ESRGAN
*文/Jeff Mony