编码时采用精准码控,在码率受限的情况下,将有限的资源合理分配,提高整体画质;编码前,对图像进行精致的前处理,营造更加极致的视觉效果,提升画质。
大家好,我是来自腾讯视频的汪亮,主要负责腾讯视频业务的视频编解码,以及图像前处理的工作。今天的分享内容主要分为两个方面:精准的编码码控和精致的图像前处理。其主要目的是为了使终端用户在看视频时有最好的画质体验。此外,在文后简单介绍了我们的下一步工作方向和内容。
1、转码框架
如上图所示, 我们所有的直播和点播都是使用同一套逻辑框架来进行处理,包括NBA、101等节目直播流和点播文件的源介质,通过就近接入,进入转码系统。
在转码系统中,进行前处理后,执行H.264或HEVC的视频编码以及AAC或Dolby的音频编码,然后将编码后的音、视频流封装成MP4、TS、FMP4的文件,进行DRM加密处理,最后把它上传到FS文件系统保存,并分发到CDN,全平台的终端也以就近接入的方式,下载文件进行播放。
在播放的过程中,我们会加入P2P的SDK来节约带宽。本次分享的内容主要集中在上图中前处理这部分逻辑。
2、画质评测
我们对视频进行前处理和编码优化,但如何评价优化效果的好坏,是否达到预期,就涉及对画质评定规则的约定。希望找到一个简单又通用的方法来评定画质,但实施的难点在于画质和人的主观感觉强相关,就更加增加了画质评测的复杂度。
我们尝试了四种评定方式psnr、ssim、vmaf和主观评测。传统的PSNR和SSIM,缺点在于评测是相对质量而不是绝对质量,得出的值不能很好的代表主观结果,在发现这个缺点之后,业界提出了VMAF,也是目前较为通用的一种方式,包括在MSU编码器的比赛过程中也采用VMAF作为参考指标之一,但它是基于一种传统的方法且和训练样本相关,可能不能很好适配所有类型的视频;最后一种方式就是主观评测,通过两台电视机,或者两个手机对比,找不同背景的同事来看,然后进行MOS评分。
为了得到更为准确的评分,我们开发了一套web评测系统,对上述4项指标均进行评测和统计,在新算法全量发布前,测评结果作为不断改进和优化的参考指标。
3、编码-内核优化
点播和直播的流进来后,首先会将其解码成YUV的数据,再进行前处理与编码,得到编码压缩NAL包。
视频编码的经典框架没有大的更新,包括预测,变换,量化,扫描,熵变换,依旧是这几个步骤。由于内核的优化是一个周期较久,比较耗时的过程,在没有好的结果出来之前,会基于编码器不变的情况下,进行类似参数调优等操作,比如,进行场景的识别,让其自适应的进行量化和参数的设定,达到在最低码流情况下获得最好视频效果的目的。
4、编码-分类别编码
不同的视频内容,由于其复杂度不一样,可以为其分配不同的参数,在目标码率不一样的情况下,也能达到很好的画质效果;分类别编码的目的是在总码率一定的情况下,能够让码率在不同类型的视频间进行很好的分配和转移,物尽其用。对片源进行分类,例如分类为四个:2D动画、3D动画、普通电影、以及体育视频(如足球赛,篮球赛等)。在分类之前,所有视频的目标码率是同样对待处理的,分类之后,为不同的类别的内容分配一个更为合适的目标码率,测试发现,2D动画的视频,即使减少30%的码率,也能够达到同样的画质效果,此时,将节约出来的码率转给体育视频,使之达到更好的画质效果。
5、编码-动态码率
在一个视频中,场景是动态变化的,有时比较平缓,有时比较复杂,码率曲线可以很好的展示它的变换情况。片源分类是针对片源对象来说的,动态码率则是对该片源按时间轴进行细致的划分,区分平缓和复杂的区间,并为其分配不同的目标码率。
点播中,编码的过程一般会采用2-Pass的方式,首先进行720P格式进行1-Pass的编码,得到每一帧的参考帧的一些信息,这些信息可以为第二次编码进行指引。在第二次编码时,参考该pass1的信息,并生成多个不同的目标格式的清晰度,例如480P、540P、1080P等。得到两个好处,其一节约时间,只用生成一次passlog信息;其二是各个格式的I帧是对齐的,能进行无缝切换的播放。
6、编码-ROI编码
在演唱会等娱乐节目中,人物背后的霓光灯对画质的影响非常大,由于灯光相对平滑且颜色信息非常多,如果按普通的方式处理,会占用大量的码率,导致终端用户即使有4M或5M的带宽也会觉得画质不清晰。
ROI编码的核心思想是,基于深度学习,识别出感兴趣的区域,例如人脸或人体部分,然后在编码时,对这部分区域进行码率增强的处理。例如我们观看一个跳舞的视频,人眼更关注的人体,通过把这个人体区域找出来,并将区域的信息传递给编码器,分配更多的码率,从而让人脸显得更加清晰。上图展示的是传统处理方法与应用ROI编码技术后的效果对比。
7、图像-前处理框架
由于图像前处理算法需要应用于点播和直播两个系统,因此我们自研了一套框架。从图中可以看到,来自点播和直播的输入帧,进入一个前处理Filter,再进行编码得到码流,优点就是开发的任何一个算法,类似模块,可以直接插入,应用于点播和直播中。该框架的使用,使得自研算法的集成和应用非常方便。
8、图像-TIE增强
上图展示的是自研的TIE(Tencent Image Enhance)即腾讯视频画质增强技术,通过对视频进行特定的分析处理使得画面能够更加的通透,层次感更加突出,为用户营造一个更加逼真的视频效果。在大部分的点播和直播视频中都启用了TIE增强处理。
9、图像-数字水印
加上数字水印的主要目标就是为了加强版权保护,在视频帧中嵌入数字水印,方法是在高频和中频的信息里面加入自己的私有信息。如果视频被盗,可以分析被盗的视频流,进行解码,用相应的工具进行分析,如果提取的信息包含植入的加密信息,就说明视频流是从我们这里被盗走的。 在视频中添加数字水印可能会导致画面出现瑕疵,在加入强度和策略上会进行一个控制,尽量减少对画质的影响。
10、图像-超分(老片翻新)
超分目前我们主要是应用于老片翻新和视频分辨率清晰度提升中,因为很多老片子很有可能是从普通的VCD里传出来的,它的画质是比较差的,不满足我们对画质的需求。用深度学习的方法,通过构建不同的训练集,构建起较为完备模型,避免图像中的噪声的增强,同时得到较好的效果。为了解决后端服务器处理耗时的问题,在分布式框架中启用超分算法,并发加速。目前我们也准备在手机等终端上加入超分的特性,540P的码流,终端可以超分到1080P,在提升画质的同时,节约大量码率,当然为了达到实时性,在模型选择上,进行了一些缩减。
11、图像-HDR10视频
很多终端设备已经支持hdr视频的显示,即支持更高的亮度范围和更多的颜色信息,目前常用的有hdr10、dolbyvision等标准,在支持的终端上播放,有着无与伦比的效果。但受限于片源介质的数量较少,就自研究了sdr转hdr10的技术。主要进行2个步骤的操作,第一个就是亮度的扩展,第二个就是要对色域的扩展,要把原先亮度的BT709的色域扩展到BT2020色域上。有两种方式进行,第一个就是普通算法的方式,建立一个空间映射,将亮度和色度从一个空间映射到另外一个空间,但这个映射有时会导致亮度不是很均匀,需要一个调优的过程。第二个方式是采用hdrnet进行训练,生成一个映射模型,基于普通的sdr介质生成hdr介质。
12、持续探索/完善的技术
最后简单介绍我们正在探索和即将展开的一些工作,例如,多模态内容的理解,包括对场景的识别,在视频内容中植入不同的应景的广告,实现千人千面的广告;内容的搜索,希望在片源量非常大的媒资库中,能快速找到想要的内容;音视频编解码技术,在不断的在做更新和优化迭代,并在环绕声、VR等方向上也在不断的探索。希望音视频技术的不断演进,能为终端用户提供更美妙的体验。
全部0条评论
快来发表一下你的评论吧 !