APP下载

TPG图像压缩技术

2017-09-03王诗涛丁飘黄晓政刘海军罗斌姬陈新星吴友宝王荣刚

电信科学 2017年8期
关键词:解码滤波像素

王诗涛,丁飘,黄晓政,刘海军,罗斌姬,陈新星,吴友宝,王荣刚

(1. 腾讯科技(深圳)有限公司,广东 深圳 518057;2. 北京大学信息工程学院,广东 深圳 518055)

TPG图像压缩技术

王诗涛1,丁飘1,黄晓政1,刘海军1,罗斌姬1,陈新星1,吴友宝1,王荣刚2

(1. 腾讯科技(深圳)有限公司,广东 深圳 518057;2. 北京大学信息工程学院,广东 深圳 518055)

TPG(tiny portable graphic)是基于AVS2视频编码标准推出的图像压缩技术,该图片格式压缩效率明显高于JPG、PNG、GIF等其他传统格式。介绍了TPG图像编码技术的编码原理以及技术特点,对比了TPG图片格式与传统图片格式的压缩效率,结果显示,TPG图片格式具有明显编码增益。

TPG;AVS2;图像压缩

1 引言

随着移动互联网的发展,终端设备的下载流量大幅增长,用户下载流量中,图片流量占据很大比例。图片流量的快速增长,给企业带来非常大的成本压力,很多企业都在尝试各种优化来降低图片流量成本。

以互联网图片为例,对于新闻网页、QQ空间、朋友圈等应用场景中的图片,通常会在后台将原图转码成更小的图片供用户下载,从而节省流量带宽成本。

如何减小图片大小呢?一种方法是降低图片质量,比如将 JPEG图片质量由JPEG80降低到JPEG70甚至更低,这样虽然能节省带宽,但是图片质量也大大下降,很影响用户体验;另一种方法就是采用更高效的图片压缩方法,在保证图片质量的同时将图片压得更小,相比第一种方法,显然这种方法更优。

目前的主流图片格式有 JPEG、PNG和 GIF等。JPEG诞生于1992年,是最常见的图片格式。目前很多学者基于 JPEG标准对图像压缩算法进行改进,如参考文献[1],但是由于 JPEG算法本身的不足,其总体压缩效率并不高。PNG诞生在 1995 年,它只支持无损压缩,所以它的压缩比是有上限的,尤其是对于颜色和细节丰富的图像,PNG文件通常会很大。GIF诞生于1987年,随着互联网流行开来。它有很多缺点,比如通常情况下只支持256种颜色、透明通道只有1 bit、文件压缩比不高,它唯一的优势就是支持多帧动画。

为了提升压缩效率,很多公司也推出了自己的图片格式,比如Firefox的APNG、微软的JPEG XR以及Google的WebP。这其中以WebP的应用最多。2010年,Google公司推出了WebP图片格式,号称压缩效率相比JPEG可以提升40%,但是根据Mozilla的评测结果,WebP相对JPEG的优势并没有宣传中那么明显,反而是 HEVC(又称H.265)在评测中大幅领先于其他几种格式。另外,根据JCTVC-I0595文档中的统计数据,H.265的 I帧压缩效率也远远高于 WebP和 JPEG,比WebP高31%,比JPEG高43%。

AVS2是国产新一代视频压缩编码标准,其压缩效率与HEVC相当,在I帧压缩效率方面甚至优于HEVC。由于AVS2高效的压缩效率,基于AVS2视频编码标准推出了TGP图像压缩技术。

2 AVS2编码标准

AVS2采用了混合编码框架,整个编码过程包括帧内预测、帧间预测、变换量化、反量化反变换、环路滤波和熵编码等模块[2]。AVS2编码框架如图1所示。

图1 AVS2编码框架

2.1 灵活的编码结构划分

AVS2采用了基于四叉树的块划分结构,包括编码单元(coding unit,CU)、预测单元(prediction unit,PU)和变换单元(transform unit,TU)。一幅图像被分割成固定大小的最大编码单元(largest coding unit,LCU),最大编码单元按照四叉树的方式迭代划分为一系列的CU。每个CU包含一个亮度编码块和两个对应的色度编码块(下文中块单元的大小指亮度编码块)。与传统的宏块相比,基于四叉树的划分结构更加灵活,CU大小从8 bit×8 bit扩展到64 bit×64 bit[3]。

图2 原始图像、LCU和CU之间的关系以及四叉树的划分结构

PU规定了CU的所有预测模式,是进行预测的基本单元,包括帧内和帧间预测。PU的最大尺寸不能超过当前所属CU。在AVS1正方形帧内预测块的基础上,增加了非正方形的帧内预测块划分,同时,帧间预测也在对称预测块划分的基础上,增加了4种非对称的划分方式。

除了CU和PU,AVS2还定义了用于预测残差变换和量化的变换单元(TU)。TU是变换和量化的基本单元,与PU一样,定义在CU之中。其尺寸的选择与对应的 PU形状有关,如果当前CU被划分为非方形PU,那么对应的TU将使用非方形的划分;否则,使用方形的划分类型。需要注意的是,TU的尺寸可以大于PU的尺寸,但不能超过所在的CU尺寸[4]。

2.2 帧内预测编码

AVS2在亮度块的帧内预测编码上设计了33种模式,如图3所示,包括DC预测模式、plane(平面)预测模式、bilinear(双线性)滤波预测模式和30种角度预测模式。在色度块上有5种模式:DC模式、水平预测模式、垂直预测模式、双线性插值模式以及新增的亮度导出(derived mode,DM)模式[5]。

图3 亮度块帧内预测模式

2.3 帧间预测编码

AVS2的帧间预测技术在参考帧管理、帧间预测模式和插值方面进行了加强和创新[6,7]。

参考帧管理方面,AVS2的候选参考帧的最大数量可以到4个,以适应多层次的参考帧管理。为了满足多种参考帧管理方式的要求,AVS2采用了一种多层次的参考帧管理模式。在这个模式中,根据帧与帧之间的参考关系和每个编码图像组(group of picture,GOP)中的帧被分成了多个层次。图4展示了3种典型的参考关系和分类。

帧间预测模式方面,AVS2在I、P、B 3种图像类型的基础上,增加了前向多假设预测F图像。F帧图像的编码块可以参考前向两个参考块,相当于P帧的双假设预测模式[8]。对于B帧,除了传统的前向、后向、双向和 skip(跳过)/direct(直接)模式,新增了对称模式。

插值滤波方面,为了简化运动补偿,AVS2采用了8抽头基于DCT(discrete cosine transform)的插值滤波器,只需要进行一次滤波,而且支持生成比1/4像素更高的运动矢量精度。

2.4 变换

AVS2中的变换编码主要使用整数DCT。对于4 bit×4 bit、8 bit×8 bit、16 bit×16 bit、32 bit×32 bit大小的变换块直接进行整数DCT。而对于64 bit× 64 bit大小的变换块,则采用一种逻辑变换,先进行小波变换,再进行整数 DCT。在 DCT完成后,AVS2对低频系数的4 bit×4 bit块再进行二次4 bit×4 bit变换,从而进一步降低系数之间的相关性,使能量更集中[9]。

图4 3种典型的参考关系和分类

2.5 熵编码

AVS2的熵编码首先将变换系数分为4 bit×4 bit大小的系数组(coefficient group,CG),然后根据系数组进行编码和 Zig-Zag扫描。先编码含有最后一个非零系数的 CG位置,接着编码每一个CG,直到CG系数都编码完为止,这样可以使得零系数在编码过程中更集中。AVS2中仍使用基于上下文的二元算术编码和基于上下文的二维变长编码[10]。

2.6 环路滤波

AVS2的环路滤波模块包含3个部分:去块滤波、自适应样点偏移和样本补偿滤波。去块滤波的滤波块尺寸为8 bit×8 bit,首先对垂直边界进行滤波,然后是水平边界。对每条边界根据滤波强度不同选择不同的滤波方式。在去块滤波之后,采用自适应样本偏移补偿进一步减小失真。AVS2在去块滤波和样本偏移补偿之后又添加了自适应滤波器,一种7×7十字+3×3方形中心对称的维纳滤波,利用原始无失真图像和编码重构图像计算最小二乘滤波器系数,并对解码重构图像进行滤波,降低解码图像中的压缩失真,提升参考图像质量[11,12]。

3 TPG图像压缩技术方案

3.1 静态图像编码

一幅静态图像对于视频编码来说,就相当于一个I帧,因此,可以采用I帧压缩的方式压缩一张静态图片。不过,传统视频压缩编码针对的是YUV空间域的数据,而图像压缩一般是针对RGB域数据,所以,编码端进行 I帧编码之前需要先将原始数据从RGB域转换到YUV空间域。解码端解码得到YUV数据后需要将YUV数据转换到RGB域。静态图像编码过程如图5所示。

图5 静态图像编码过程

对于RGB转YUV,先将RGB转换到YUV444空间域,然后再对UV下采样得到YUV420数据作为视频编码器输入,转换过程符合 ITU-R BT.601标准。

解码端先进行UV上采样,将YUV420数据扩展到YUV444空间,然后再将YUV444数据转换成RGB数据。

3.2 Alpha通道编码

对于普通JPG图片,直接将其RGB数据转换成YUV数据进行编码即可。但是,对于带Alpha通道的PNG图片,其输出数据是RGBA形式的,采用一个YUV空间域数据无法完整描述RGBA数据,必须对其做特殊处理。

编码时,将RGBA数据分离成RGB数据和Alpha通道两组数据,然后分别对RGB和Alpha数据进行编码。对于RGB数据,按照前述方法进行编码。对于 Alpha通道数据,将其视为另一个Y通道数据以YUV400或者YUV420(UV数据置为常量)格式的形式进行编码,然后将RGB数据帧和Alpha数据帧码流合并生成一个TPG图片格式码流。

解码端解码出RGB数据帧,输出 YUV数据,将YUV数据转换成RGB数据,然后继续解码输出YUV’数据,其输出的Y’与前面的RGB数据合并输出RGBA数据。具体编解码过程如图6所示。

3.3 动态图片支持

目前,互联网应用中,动态图片越来越多,比如表情图片以及网页中的GIF图片等。GIF图片虽然总量不大,但是由于每个GIF图通常比较大,GIF图在图片总流量中的占比是很大的。如果能减小GIF文件大小,不仅能帮企业和用户节省流量带宽,还能减少GIF下载的等待时间,提升用户体验。

GIF编码采用的256色编码,GIF图像帧之间是不会相互参考的,也就是说,GIF没有利用帧间相关性,其编码效果相比视频压缩效率更低。

TPG采用视频压缩方式来进行动态图片的压缩。将GIF、APNG等解码得到的RGB或者RGBA数据按照前面所述方法进行编码得到视频帧数据。但是,由于 GIF、APNG等图像格式的某些特征信息,比如时延信息、透明色等,在视频编码标准里面并没有相关语法元素来描述,因此,需要在视频帧数据前面加入图像帧头,帧头里增加对这些特征信息的描述。这样就能完整地还原一幅动态图像。具体编码过程如图7所示。

图6 带Alpha通道图像编解码过程

图7 动态图片格式编码过程

3.4 TPG格式介绍

一个完整TPG文件的组成结构如图8所示,其主要包括图片头信息数据段、图像帧数据段以及透明通道帧数据段,其中,透明通道帧数据段只有在图像有Alpha数据时才有。

图8 TPG文件数据结构

图8中,视频帧数据段是由AVS2编码产生的标准码流。在标准视频码流的基础上对其做了图像格式封装,以实现图像的一些特有功能。

图片头信息数据段是TPG文件的起始字段,其主要包括图像文件的标识、图像特征信息(比如图像宽高及透明度等)、图像辅助信息(比如EXIF信息等)。

图像帧数据段是图像 RGB数据编码产生的码流数据,包括图像帧头数据段和视频帧数据段两部分,图像帧头数据段用来表示图像序列中每一幅图像的特征信息,每个图像帧都带有一个图像帧头。

透明通道帧数据段是图像 Alpha通道数据编码产生的码流数据,它包括透明通道帧头数据段和视频帧数据段两部分。透明通道帧头数据段用来描述Alpha通道数据帧的特征信息,每个透明通道帧都带有一个透明通道帧头。

3.5 TPG解码

TPG解码过程主要包括文件头解析、AVS2解码、YUV色度分量上采样以及YUV到RGB颜色空间转换几个步骤,其流程如图9所示。

图9 TPG解码流程

3.5.1 色度分量上采样

当AVS2解码输出是YUV4:2:0格式时,需要对UV分量进行上采样得到YUV4:4:4格式,然后再进行YUV到RGB的转换。转换过程如图10所示。src(x,y)代表输入的U或者V分量,dst(x,y)代表上采样后得到的U或者V分量。假定原始U、V分量的宽为W,高为H,则经过下采样得到的新的U’、V’分量的宽为2W,高为2H。

图10 色度分量上采样示意

边界像素和非边界像素采用不同的上采样算法,下面分别介绍。

(1)dst(x,y)非边界像素

非边界像素每个上采样的值由输入图像对应位置相邻4个像素共同决定。具体计算规则如下:

(2)dst(x,y)为边界像素

对于4个角点位置的像素值由输入图像的4个角点像素决定:

第一行和最后一行除角点外的像素,其值由输入图像的第一行和最后一行对应位置的两个相邻像素点决定。

第一列和最后一列除角点外的像素,其值由输入图像的第一列和最后一列对应位置的两个相邻像素点决定。

3.5.2 YUV与RGB颜色空间转换

由于图像原始数据都是RGB域数据,所以需要将解码输出数据由 YUV颜色空间转换到RGB颜色空间。颜色空间转换根据YUV标准制式的不同,其转换过程也不一样。采用 ITU-R BT.601标准的YUV值域范围,其YUV转RGB过程如下:

4 TPG评测数据

将 TPG图片格式与传统图片格式进行了对比,接下来将介绍相关的对比统计数据。

4.1 主观质量对比

分别将JPEG、PNG和GIF图片格式转换为TPG格式,然后再将TPG解码还原成PNG(如果是动态图片格式则还原出 GIF)图片对比其主观质量。对比效果如图11~图13所示。

图11 静态图片格式效果对比

图12 带Alpha通道静态图片格式效果对比

图13 动态图片格式效果对比

图11~图13分别对比了JPEG、PNG以及GIF 3种图片格式和TPG的主观效果。可以看出,TPG图片与源图肉眼看几乎没有区别。但是相比JPEG源图,TPG减小了44%以上;相比PNG源图,大小减小了80%以上;相比GIF源图,大小减小了90%以上。

4.2 客观质量对比

除了主观质量方面的对比,还在客观质量方面对这几种图片格式进行了对比。对比了在PSNR对齐的情况下,TPG与JPEG的压缩效率,具体结果如图14~图16所示。

图14 TPG & WebP & LibJPEG编码效率对比

如图 14所示,TPG的编码效率比 WebP高23.5%,比LibJPEG高46.8%。如图15所示,Windows平台下 TPG的编码速度是 WebP的 1.6倍,是LibJPEG的37.6倍;Linux平台下TPG的编码速度是WebP的2.4倍,是LibJPEG的38.4倍。如图16所示,Linux平台下TPG的解码速度是WebP的0.7倍,是LibJPEG的6倍;iOS平台下TPG的解码速度是WebP的2.2倍,是LibJPEG的2.6倍。

图15 TPG & WebP & LibJPEG编码速度对比

图16 TPG & WebP & LibJPEG解码速度对比

5 结束语

本文提出了一种新的图片格式TPG,TPG基于AVS2视频编码标准,通过视频编码的方法来实现图像压缩。TPG的压缩效率明显高于JPEG、GIF、PNG等传统格式,采用TPG能帮企业和用户节省大量图片流量带宽。同时,减少了用户下载图片的等待时间,具有重要意义。现今,越来越多的企业开始关注如何节省图片流量,TPG为省流量提供了一套很好的解决方案。TPG推出后,也得到了业界的广泛关注,相信未来TPG一定会得到很好的推广和应用。

[1]徐妮妮, 李晨光. 基于JPEG标准的16 bit图像有损压缩应用[J].电信科学, 2016, 32(4): 103-108. XU N N, LI C G. Application of 16 bit image lossy compression based on the JPEG standard[J]. Telecommunications Science, 2016, 32(4): 103-108.

[2]黄铁军. AVS2标准及未来展望[J]. 电视技术, 2014, 38(22): 7-10. HUANG T J. AVS2 standards and future prospects[J]. Video Engineering, 2014, 38(22): 7-10.

[3]周芸, 郭晓强, 王强. AVS2视频编码关键技术[J]. 广播电视信息, 2015(9): 18-21. ZHOU Y, GUO X Q, WANG Q. AVS2 video coding key technology[J]. Radio & Television Information, 2015(9): 18-21.

[4]林琪. AVS2帧间预测技术及快速算法研究[D]. 上海: 上海大学, 2015. LIN Q. Research on AVS2 inter - frame prediction technology and fast algorithm[D]. Shanghai: Shanghai University, 2015.

[5]PIAO Y, CHEN J, LEE S, et al. Intra coding of AVS2 video coding standard[C]//IEEE International Conference on Multimedia and Expo Workshops, July 14-18, 2014, Chengdu, China. New Jersey: IEEE Press, 2014: 1-5.

[6]HE Z, YU L, ZHENG X, et al. Framework of AVS2-video coding[C]//IEEE International Conference on Image Processing, Sept. 15-18, 2013, Melbourne, VIC, Australia. New Jersey: IEEE Press, 2014: 1515-1519.

[7]MA S, HUANG T, READER C, et al. AVS2? making video coding smarter[J]. IEEE Signal Processing Magazine, 2015, 32(2): 172-183.

[8]SHAO Z, YU L. Multi-directional skip and direct modes design in bi-predictive slices for AVS2 standard[C]//2014 IEEE International Conference on Multimedia and Expo Workshops (ICMEW), July 14-18, 2014, Chengdu, China. New Jersey: IEEE Press, 2014: 1-5.

[9]韩宏凯. AVS2帧内预测编码的CU划分快速算法及RDO优化研究[D]. 成都: 西南交通大学, 2016. HAN H K. Research on fast algorithm and RDO optimization of CU partition in AVS2 intra prediction code[D]. Chengdu: Southwest Jiaotong University, 2016.

[10]GAO W, MA S. Advanced video coding systems[M]. Berlin: Springer Publishing Company, 2015.

[11]FAN K, WANG R G, WANG Z Y, et al. iAVS2: a fast intra encoding platform for IEEE 1857.4[J]. IEEE Transactions on Circuits and Systems for Video Technology, Early Access, 2016(99): 1.

[12]WANG Z Y, WANG R G, FAN K, et al. uAVS2—fast encoder for the 2nd generation IEEE 1857 video coding standard[J]. Signal Processing: Image Communication, 2017, 53(5): 13-23.

TPG image compression technology

WANG Shitao1, DING Piao1, HUANG Xiaozheng1, LIU Haijun1, LUO Binji1, CHEN Xinxing1, WU Youbao1, WANG Ronggang2
1. Tencent Technology (Shenzhen) Co., Ltd., Shenzhen 518057, China 2. School of Electronic and Computer Engineering, Peking University, Shenzhen 518055, China

TPG(tiny portable graphic) is a new image compression technology based on the video part of AVS2 standard, whose compression efficiency is notably higher than traditional image formats like JPG, PNG and GIF. Theory and feature of TPG image compression technology were introduced. Then, the compression efficiency of TPG and traditional image formats was compared. Results show that TPG has overwhelming advantage.

tiny portable graphic, AVS2, image compression

TN919

A

10.11959/j.issn.1000−0801.2017238

王诗涛(1983−),男,腾讯科技(深圳)有限公司高级工程师,主要研究方向为视频编解码、图像压缩、实时视频通信。

丁飘(1983−),男,腾讯科技(深圳)有限公司高级工程师,主要研究方向为实时视频通信、网络技术。

黄晓政(1986−),男,腾讯科技(深圳)有限公司高级工程师,主要研究方向为视频编解码和视频通信。

刘海军(1988−),男,腾讯科技(深圳)有限公司高级工程师,主要研究方向为实时视频通信以及视频编解码算法。

罗斌姬(1989−),女,腾讯科技(深圳)有限公司工程师,主要研究方向为视频编解码、图像编解码、实时通信。

陈新星(1982−),男,腾讯科技(深圳)有限公司高级工程师,主要研究方向为实时视频通信以及视频编解码算法。

吴友宝(1990−),男,腾讯科技(深圳)有限公司助理工程师,主要研究方向为音视频质量评测工具开发。

王荣刚(1976−),男,博士,北京大学信息工程学院副教授,主要研究方向为视频编码、虚拟现实以及图像增强。

2017−07−15;

2017−07−26

猜你喜欢

解码滤波像素
《解码万吨站》
像素前线之“幻影”2000
解码eUCP2.0
“像素”仙人掌
NAD C368解码/放大器一体机
Quad(国都)Vena解码/放大器一体机
ÉVOLUTIONDIGAE Style de vie tactile
高像素不是全部
RTS平滑滤波在事后姿态确定中的应用
基于线性正则变换的 LMS 自适应滤波