腾讯无线投屏是腾讯音视频实验室为解决会议室高频场景痛点而研发的一款会议类产品。无线投屏提高了会议效率,简化了会议流程。自上线以来得到了广泛的应用。无线投屏涉及技术面广,技术难度大,为了提升用户体验,腾讯无线投屏在网络适应性,鼠标优化,扩展屏及视频编解码技术等方面做了大量攻坚,使我们的产品在各个方面处于业界领先水平。本文将给大家揭秘腾讯无线投屏背后的屏幕编码技术(Tencent Screen Encoder,以下简称TSE),对于屏幕内容图像,TSE相比x265(normal模式),压缩效率提升55%。
1、屏幕内容简介
屏幕内容图像是直接从各类设备(计算机,移动终端等)的图像显示单元捕获的。常见的屏幕内容有计算机图形和文本图像、自然视频与图形/文字混合的图像以及计算机生成的动画图像等。屏幕图像在桌面协作,桌面共享,第二屏幕,云游戏等各种场景中普遍存在。
图1 典型屏幕内容图像
由计算机生成的屏幕图像和摄像头捕获的自然图像之间有明显的差别——图形文本这类计算机生成图像通常没有噪声,色调离散,线条细腻,边缘锐利;而摄像机拍摄视频通常是有噪声,色调连续,纹理比较复杂的。
传统视频编码采用的混合编码结构对于屏幕内容而言效果不是很好,对于比较细的高频纹理,采用混合编码方式编码后会损失细节,且容易产生振铃效应,如下图所示:
图2 屏幕内容采用混合编码的效果图
由于屏幕图像与传统视频具有显著不同的特点,我们需要寻求新的编码工具,充分挖掘屏幕图像本身的特征,以此来大幅度提高屏幕图像的编码效率。2016年,HEVC正式发布了第四版本HEVC-SCC(HEVC Screen Content Coding Extension),该版本针对屏幕内容做了大量优化,增加了全新的编码工具,大大提升了屏幕内容的编码效率。
2、HEVC-SCC关键技术介绍
HEVC-SCC于2016年正式发布,它在HEVC和HEVC-RExt的基础上,增加了一些编码工具集,具体如下图:
图3 HEVC各版本新增编码工具集
从上图可知,HEVC-SCC增加的主要工具集有:
- 帧内块拷贝(Intra Block Copy,以下简称IBC):除了传统的帧内和帧间预测模式,HEVC-SCC引入了一种新的编码模式IBC,该模式的PU采用当前帧已重建块作为预测块,可以认为IBC是当前编码图像内的运动补偿;
- 调色板模式(Palette Mode):对于屏幕内容图像,很多编码块内部的颜色数是有限的。调色板模式枚举这些颜色值生成颜色表,然后为每个样本传递一个索引以指示它属于颜色表中的哪种颜色。和基于预测-变换的传统编码方法相比,对于颜色数相对较集中的屏幕内容图像,调色板模式往往更加有效。
- 自适应颜色变换(Adaptive Color Transform:ACT):屏幕内容普遍采用RGB的颜色空间,消除不同颜色分量之间的冗余对于提升编码效率非常重要。HEVC-SCC支持将残差自适应转换到不同颜色空间,一个RGB颜色空间的图像块可以直接编码,也可以在编码时自适应的转换到YCoCg颜色空间进行编码以提升其编码效率。
- 自适应运动矢量分辨率(Adaptive Motion Vector Resolution:AMVR):一般相机捕获的图像通常是运动连续的,但屏幕内容的运动通常是离散的,其精细粒度是像素级的。 因此,对于大部分屏幕内容,并不需要做分像素运动补偿。 在HEVC-SCC中,可以在slice级来控制运动矢量MV的精度(整像素还是分像素)。
这几个新的编码工具集极大的提升了屏幕内容图像的编码效率。根据相关资料统计,对于屏幕图像,在无损情况下,HEVC-SCC相比HEVC-RExt压缩效率提升36%(AI模式)和20%(LD模式),而在有损模式下,HEVC-SCC相比HEVC-RExt压缩效率提升更是高达56%(AI模式)和40%(LD模式)。这其中,又以IBC和调色板编码技术的性能提升效果最显著。其中,IBC的编码增益在30%以上,而调色板编码可以在IBC的基础上,再提升10-15%。接下来,我们将重点介绍IBC和调色板编码技术。
1)IBC编码
对于文字、图形等屏幕内容序列,同一帧中存在很多重复纹理,即具有较强的空间相关性。如图4所示,图中红色和蓝色框所示区域的纹理几乎是一致的,如果在编码当前块时,能够参考当前帧已编码完的块,则能大大提升编码效率。
图4 屏幕图像空间相关性示例
针对屏幕图像空间相关性强的特点,屏幕内容编码引入了新的预测技术,即IBC技术。IBC和帧间图像预测类似,只不过IBC的预测块是由当前编码图像帧的重建块产生的。IBC是在PU级进行的,我们可以将它视为一个帧间PU。帧间模式的设计让IBC和普通的帧间预测模式更灵活的连接起来。比如,一个帧间编码的CU可以有两个PU,一个使用传统的帧间预测,另一个使用IBC。
虽然IBC和帧间模型是统一的,但帧间预测模型并不能直接用于IBC。相对传统帧间预测模型,IBC具有以下一些限制条件:
1)IBC参考的是环路滤波之前的重建像素;
2)当前图像如果被用于参考,它会被标记为长期参考帧。当整张图像解码完后,它会进行环路滤波,然后加入到DPB中作为短期参考帧。
3)IBC的预测块不能和当前CU重叠,以防止未重建好的样本被用于预测;
4)预测块和当前CU应位于同一个slice和同一个tile;
5)预测块的搜索区域要严格限制在图5所示的灰色区域部分,以免影响并行处理;
6)IBC的块矢量(Block Vector)必须是整像素精度;
图5 IBC搜索区域(灰色部分)
2)调色板模式
调色板模式对于颜色数比较少的编码块效果特别好。与传统的基于预测+变换的混合编码结构不同,调色板模式通过颜色表和索引来完成像素级的重建。编码端将CU的颜色生成一个颜色表,对于CU内的每个像素,会传输一个颜色表索引,解码端根据颜色表和索引来对各个像素进行重建。如果某个像素在颜色表中找不到合适的颜色,调色板模式会将该像素的置为escape模式,对于escape模式的像素,会进行量化反量化操作才完成重建。图6是一个调色板模式的实例;
图6 调色板编码实例
3、屏幕编码技术实现及优化
去年,音视频实验室对外推出了无线投屏应用。无线投屏用户的大部分应用场景都是PPT,Word等文档类分享,这些内容非常适合屏幕内容编码技术。由于IBC和调色板模式对于提升屏幕内容图像编码效率效果最显著,我们在屏幕编码技术中实现了IBC和调色板模式编码技术。
IBC和调色板模式虽然压缩效率很高,但是它的编码复杂度也是非常高的,对于投屏这类实时应用,编码速度是非常关键的。因此,为了能满足实时应用,我们对IBC和调色板技术做了大量优化。在算法层面,我们采用了快速高效的颜色表生成算法,以及采用基于hash表搜索的优化技术来代替传统的运动估计方法。同时,加入了大量提前退出算法以提升速度。另外,对于其中的关键模块,加入了SIMD优化,使得编码速度进一步提升。
经过优化后,IBC和调色板编码的编码性能得到了明显提升,以下是我们优化后的质量对比数据,其中x265使用的是ultrafast和normal模式,具体的命令行如下:
-p ultrafast/normal --psnr --no-psy --input-res 1920x1080 --fps 15/1 in.yuv -o out.265 --qp 37 --pools 4 --frame-threads 1 --keyint 1000 -f 500 --ipratio 1 --bframes 0 --rc-lookahead 0
图7 TSE与x265对屏幕内容的压缩效率/编码耗时对比
图8 TSE与x265对摄像头采集序列的压缩效率/编码耗时对比
综合来看,对于摄像头采集序列,TSE的编码效率相比于x265-ultrafast模式有20%左右提升。对于屏幕内容序列,TSE相比于x265-ultrafast模式的提升在70%以上。对于x265-normal模式有55%左右的提升。而在编码耗时方面,对于屏幕内容序列,在不打开IBC和PLT的情况下,TSE的平均编码耗时仅为x265-ultrafast的33%左右;打开PLT和IBC后,TSE的平均编码耗时是x265-ultrafast的50%左右。对于摄像头采集序列,TSE的平均编码耗时是x265-ultrafast的88%左右。
主观质量对比方面,对于文档类序列,TSE编码重建主观质量明显优于x265。图9是文字分别经过TSE和x265编码之后的效果图,我们可以看到,x265编码的振铃效应非常明显,而TSE几乎看不出来。
图9 TSE与x265编码主观对比图
4、总结
屏幕编码技术是针对屏幕内容图像的编码技术,其相对H.265编码压缩效率具有明显优势。屏幕编码技术对于无线投屏,会议,在线教育等各种屏幕内容应用比较多的场景,具有重要意义。
音视频实验室经过技术攻坚,顺利实现了IBC和调色板模式编码技术,并在腾讯无线投屏和腾讯会议中上线应用。优化后的TSE和x265-normal模式相比,压缩效率提升了55%左右,同时,编码速度也明显比x265快,达到了实时可用的程度。采用TSE编码方式后,对于屏幕内容图像,在节省编码码率的同时提升了主观质量。