问鼎视频编码业明日霸主(上篇)
——点评H.264/AVC、HEVC及VP8
【导读】
巴塞罗那MWC 2012,“新、奇、怪”依旧属于这个业已沸腾的行业。各家厂商为博业界惊鸿一瞥,打了鸡血一般使尽浑身解数。一时之间,新产品横扫各大媒体,颇有几分“花乱渐欲迷人眼”的架势。在搭台唱大戏的背景下,高通(Qualcomm)展示了Snapdragon S4双核处理器,并在基于该处理器的一款Android Tablet上播放了一段使用下一代视频编码方案压缩的短片。
该短片标志着HEVC编码方案的首次亮相,而在展会现场与之对比的,即是当前广为业界使用的H.264/AVC编码方案。不怕不识货,就怕货比货,从现场演示效果看:在几乎同等图像视觉质量条件下,HEVC码率仅为其前任者的50%左右。
曾经金枝玉叶的H.264/AVC也难逃“后浪推前浪”的规律?两者同为ITU-T一系,真个“相煎何太急”?Google的野心,VP8路在何方?让我们一起试问:当下视频编码标准江湖,山雨欲来风满楼,是三分天下或是一统中原?
本文为系列文章的上半部分,全篇解读H.264/AVC、HEVC和VP8之前世今生,为各位读者展现当今视频编码标准化发展的浓缩画卷。
图 1 MWC2012上高通展示的HEVC vs. H.264/AVC
从AVC到HEVC国际视频标准化组织绝对算得上是一个勤奋、高产的机构,近二十年的时间,输出了一系列高水准音视频编码标准。在H.264/AVC问世之前,江湖上有两个传奇:其一是MPEG-2,另一个是H.263。前者系ISO/IEC下属MPEG(Moving Picture Experts Group)小组制定,后者由ITU-T下属VCEG(Video Coding Experts Group)小组制定。怎见得是两个“传奇”呢?——MPEG-2就是DVD碟片所使用的视频编码方案,而H.263在没有3G的年代里等同于视频会议的代名词。两个传奇直接孵化出了相关产业链,让一大批人先富或者更富起来了。
历史的时针指向1995年,名利双收的专家们决定再次开展造福人类的事业。于是ITU-T VCEG组给出了两项工作计划:其一为短期计划,旨在为H.263添加更多的编码特性并改进其编码效率;另一为长远计划,即实现自我超越,输出一个性能秒杀H.263的大杀器,其内部编号为H.26L。短期计划的实施造就了H.263+标准,而长期计划的效果在7年之后发生作用。在同一时间轴上,ISO/IEC MPEG组为MPEG-4忙得不亦乐乎,人前人后吹嘘“基于图像对象”和“极低比特率”两个噱头。
2001年,两大标准化组织决定联手组建JVT(Joint Video Team),并于两年之后输出了最终编码方案。于是H.26L华丽转身成为H.264,其标准编号跟在夹生饭MPEG-4编号之后。一个牛气哄哄的名字就此诞生,全称为MPEG-4 Part10 AVC/H.264。其中,MPEG-4 Part10对应之前的那个半调子MPEG-4,AVC为雅号,是Advanced Video Coding的缩写。
上面唠叨一通,无非告诉各位:想当年H.264/AVC是两大标准化组织合体的结晶,编码效率是非常牛x的。由于合体前,两大组织一方致力于视频内容压缩存储(复习下VCD/DVD),而另一方专注于实时视频会话业务。所以,合体的结果是:H.264/AVC能满足全码率视频编码需求,从压缩存储、数字电视广播到视频流媒体、点播、实时会话。总之,只要有视频业务的地方,就能用上H.264/AVC。
在2002年标准方案发布之后的10年1时间内,业界各方对其可谓是“后宫佳丽三千人,三千宠爱在一身”。在此期间,JVT于2007年前后输出基于H.264/AVC的SVC(Scalable Video Coding)方案,以满足网络异构设备环境下的视频传输(见图 2)。2009年前后,JVT又为H.264/AVC增加了3D Stereo /MVC(Multi-view Video Coding)特性,以实现在一路压缩码流中包含多个摄像头采集的视频数据。这样,在图像回放时,可拥有多个视角或者借此产生3D立体效果。
图 2 用于设备异构环境下的SVC方案
但无论是高科技的SVC还是噱头味十足的MVC都只是H.264/AVC的特性扩展,即适应特殊的视频应用场景,两者并未在信源编码效率上有所提升。但实际上,勤劳的专家们并未就此止住探底视频压缩极限之旅的步伐。2003年后,VCEG就启动了名为NGVC(Next-Generation Video Coding)的“探索”工程,其目的即在研究压缩性能超过H.264/AVC的“下一代视频编码”方案。但遗憾的是,如上所述,H.264/AVC代表了当时最高水准的视频压缩技术,所以几经努力但收效甚微。
2005年前后,在此期间内基于H.264/AVC的各种改进方案被搜集起来,并组成了一个名为KTA(Key Technical Areas)的编码器。从某种意义上说,KTA算是“下一代视频编码”方案的一个雏形,并在随后的几年时间内不断沉淀各种改良算法。瓜熟蒂落、水到渠成,2009年6月,在MPEG举行的call-for-evidence活动中,历经6年锤炼的KTA被证明:针对高分辨率的视频源,KTA能够将H.264/AVC的压缩性能提高约30%。
2010年1月,被“30%提升”激励的委员们终于挺直腰杆宣布组建联合工作组,此次的名号是JCT-VC(Joint Collaborative Team on Video Coding),同时向天下好汉派发英雄帖——征集编码方案。这种仪式感极强的动作有个术语,称为CfP(Call for Proposals, CfP)。同年4月,JCT-VC举行了第一次工作组会议。共有27路好汉,也即27份编码方案参与了这场论剑华山、决战紫禁之巅的激烈角逐。为了全面评估这些编码方案,JCT-VC共指定了5类测试视频源(见表格 1),涵盖了从WQVGA到720P/1080P HD直至Ultra HD在内的各种图像分辨率以及各种典型的图像帧率和码率。另外,JCT-VC还将所有的测试序列分为两类:其一为Random Access,允许参与评估的编码方案使用长度为8的GOP进行图像排列,其典型场景是数字电视广播应用;另一为Low Delay,此时禁止图像编码顺序重排列,其典型场景是对时延有严格限制的实时会话业务应用。
表格 1 JCT-VC CfP使用的测试源
Class |
Rate1 |
Rate2 |
Rate3 |
Rate4 |
Rate5 |
A: 2560x1600p 30 |
2.5 Mbit/s |
3.5 Mbit/s |
5 Mbit/s |
8 Mbit/s |
14 Mbit/s |
B1: 1080p24 |
1 Mbit/s |
1.6 Mbit/s |
2.5 Mbit/s |
4 Mbit/s |
6 Mbit/s |
B2: 1080p50-60 |
2 Mbit/s |
3 Mbit/s |
4.5 Mbit/s |
7 Mbit/s |
10 Mbit/s |
C: WVGAp30-60 |
384 kbit/s |
512 kbit/s |
768 kbit/s |
1.2 Mbit/s |
2 Mbit/s |
D: WQVGAp30-60 |
256 kbit/s |
384 kbit/s |
512 kbit/s |
512 kbit/s |
1.5 Mbit/s |
E: 720p60 |
256 kbit/s |
384 kbit/s |
512 kbit/s |
512 kbit/s |
1.5 Mbit/s |
不能不说JCT-VC是重口味的,严苛的测试条件,强劲的竞争对手。27份提案彼此竞争的同时还需要与H.264/AVC进行对比。这场天王山战役理应被载入视频编码标准化的历史,不仅因为其前戏(KTA)跌宕起伏、高潮部分(CfP)一叹三咏,更因为其拥有一个圆满的大结局。
经过细致评估分析,最后发现:对比H.264/AVC,在基于几乎相同的主观图像质量的前提下,参与测评方案中的佼佼者能够节省40%~60%的码率!换言之,对比现有的H.264/AVC,新提出的编码提案能够将压缩效率提高一倍左右。面对这个祥和愉快的结论,JCT-VC无法淡定了,于是“下一代视频编码”工作正式启动,并冠名为HEVC(High Efficiency Video Coding)——一个High字吐露多少风情!与此同时,那些性能拉风的编码提案被纳入TMuC(Test Model under Consideration),成为HEVC最终方案的候选,在随后的时间内被不断测试、挑战和改进。这部主题为“下一代视频编码方案是怎样炼成的”的连续剧,从2010年开始上演,至2011年1月发布了HEVC工作草案第一版(编号JCTVC-D503),预计全部工作完成在2013年。2012年春天,本文导读开头的一幕上演:其硬件芯片高调亮相MWC 2012,HEVC第一次向世人昭告其存在。——而且,是结结实实地踩在其前任者的肩膀上。
当2010年2月笔者从媒体上获知Google以1.33亿美金收购On2 Inc.的时候,我脑子里浮现的第一副画面是:曾经演示并兜售VP7的On2亚太区总经理,坐在自己的大班椅上,嘴里叼着古巴雪茄、左手一杯82年拉菲、右手把玩一捆捆整齐的富兰克林…
Google收购On2后的大手笔已经传为佳话:启动WebM工程、并将On2研发的VP8视频Codec开源。Google理应被授予“2010感动业界之大尺度开源贡献奖”头衔,但与此同时,我们至少也要看清两件事实:其一是Google一贯倡导的Web战略,而HTML5显然是重要的一步棋。VP8作为HTML5内定视频编码器,其剑锋当然是对准眼下Web视频的霸主Adobe Flash。其二则是YouTube,这个2011年累积播放次数超过1万亿、20个月赚130亿的宝贝疙瘩,是H.264/AVC的重灾区——卧榻之侧,岂容他人安睡耶?
VP8的开源对视频编码标准化组织是个“狼来了”的威胁:H.264/AVC有专利授权费,相比之下VP8是免费的午餐。说到专利授权费,就不得不提及MPEG LA,一家专门负责打理MPEG-x/H.26x专利事务的公司。简而言之,MPEG LA就是视频编码标准化组织的讨账公司。在2010年之前,MPEG LA主要负责收银子;2010年开始,多了一项任务:阻止VP8免费。道理摆在面前:VP8免费势必引诱众多厂商将其内置到产品中,从而抢走H.264/AVC的市场份额和地位,假以时日会断了H.264/AVC权益方的财路。当然,面对公众,都是斯文人,怎好直言孔方兄这个俗物。于是,MPEG LA高举的旗号是:On2/Google并未拥有所有视频编码专利,VP8的开源会损害某些专利的权益人。在口水仗的同时,MPEG LA进行了两项动真格的手段:其一谓之“安抚人心”,即于2010年2月,声明将非商业性的视频流服务的免费期延长至2016年,并再次强调任何时候对互联网视频广播的终端用户不会收取费用;其二谓之“整顿兵马”,即于2010年5月开始着手建立一个被VP8侵害的视频编码相关专利方案所构成的专利池。
图 4 MPEG LA网站上有关VP8的专利池说明
MPEG LA的阻击行动最终能否成功,目前还难以判断。但我们可以回首一下前车之鉴:2005年微软曾计划免除其他厂商使用VC-1/WMV9时的专利授权费。但由于VC-1/WMV9包含其他厂商的视频相关专利,为了引火上身,微软最终修改了其授权许可声明。
抛开版权前景的不明朗,再简单以中国人的心态审视下这份免费的午餐。所谓“中国人的心态”,是指在博大精深的中华文明中,有两个阴谋论长期存在:一曰“免费无好货”、二为“一分价钱一分货”。所以,完全免费的VP8在技术参数上与H.264/AVC或者现行其他编码方案到底有何区别呢?——这份疑问让我们保留到本系列文章的下半部分。
正如本段标题所示,VP8的开源让我们惊呼“天上掉下个林妹妹”。但尚未明朗的专利授权前景以及技术性能上的潜在担忧,使得我们不得不在心里问问:这个从天而降的林妹妹,落地的方式是“脚朝地”还是“脸朝地”?
MPEG-2的辉煌已经是过眼云烟,H.264/AVC于当下正在大红大紫,两者之间10年光阴(见图 5)。下一个10年在哪里?HEVC显然被寄予厚望。不知是否潜规则使然,H.264/AVC对MPEG-2的提升约2倍,而HEVC在设计之初的愿景同样是提升H.264/AVC约2倍。回望H.264/AVC的崛起和普及离不开3G和HD视频的推波助澜,而人类对影音娱乐的需求似乎总是贪婪的。下个10年中Ultra HD、4G、客厅/卧室影音中心、无线终端视频应用的普及等等,势必成为HEVC最有力的捧场者。毕竟,在相同视觉质量下能节省50%的码率,无论对开发商、服务商和用户都是很有吸引力的。另外,微处理器、芯片厂商也能顺水推舟研发支持HEVC的硬件产品,回想下2007年前后,支持HD硬件编解码的芯片是多么大的噱头吧,——由此类推,对HEVC,硬件厂商没有理由不爱。当然,考虑到设备更换成本、市场消化能力以及新型视频需求的普及时间问题,HEVC与H.264/AVC的并存可能会耗上好一阵子时间,在2013年(上帝保佑一切顺利)HEVC正式完成后,相信在3~5年内一定会开始撰写自己的传奇篇章。
图 5 视频标准编年图
对VP8的看法和态度,分歧很大。学院派和保皇派(典型如x264团队)对其几乎是嗤之以鼻,事实确实也很难让人满意,——在标准设计上,各项算法工具明显弱于H.264/AVC;在代码实现上,因为本文不方便出现脏话,所以笔者就此略过评价。与此相反,业界内拿来主义派则是一派欢欣鼓舞、弹冠相庆的和谐气氛。明眼人能够看出,Google收购On2并且仓促开源VP8,其醉翁之意不外乎HTML5战略的推进、力图推到Adobe Flash多年的霸权以及规避MPEG的版权威胁。有消息称YouTube提供的视频中已经有80%使用VP8格式,相信此后这一比例还将持续扩大。也许有人会奚落Google是在扶烂泥上墙,但只要Google给予足够大的耐心和动力,相信会有大批大批的后来者跟进这项貌似“愚翁移山”的事业。一句话:免费的牌子货,总能博得人心!
【预告】在本文下半部分中将从主要视频编码算法工具方面详细对比三者,优劣短长、一目了然。到底谁是文艺编码算法、谁又是213编码算法?不要走远、马上回来……