2014-7-28 23:10| 发布者: tianzc| 查看: 378| 评论: 0
如果你问我神马是高清,我会告诉你:高清是一种标准,一种品味和一种追求。 想想看,在深受房贷、个税和老板三座大山压迫之外的生活夹缝中,“一杯红酒配电影”会是多么抚慰人心。细腻逼真的影像让你领略“星沉海底当窗见,雨过河源隔座看”的奇幻美景,震撼顿挫的声音让你聆听“姑苏城外寒山寺,夜半钟声到客船”的寂寥空灵。——此时此刻你是否才由衷感到生活可以如小说中描绘得那样祥和美好。 从上述角度来说,打造一款支持高清视频播放功能的影音软件,是一件关系到人民幸福感的民生工程,是构建和谐社会的重要组成部分。对此,QQ影音做到了。 看到这里,应该会有愤青来挑刺儿了:高清视频也是视频格式的一种,万能格式播放器本就应该支持呀?这种判断在错误程度上虽然远没有达到NC的临床标准,但,需要强调的是:不是所有牛奶都叫特仑苏,也不是所有视频都能标榜“高清”。我们先通过下表来看看纯正的“高清”血统:
NVIDIA PureVideo HD vs. ATI UVD
支持高清硬件加速的GPU主要来自两大厂家,即NVIDIA和ATI。前者早在GeForce 7 series GPU产品中就开始部分支持H.264/WMV格式影片的硬件加速,在GeForce 8500/8600、GeForce 8400M/8600M/8700M开始引入PureVideo HD(见图1)技术,全面支持高清影片硬件解码。与之相似,ATI从ATI Redeon® X1000 series开始就支持部分硬件加速,之后则开发了UVD(Unified Video Decoder)(见图2)技术全面支持视频硬件解码。 图1 NVIDIA(R) PureVideo HD 图2 ATI UVD 如上图,视频解码主要分为四个模块,按照处理顺序为: § Bitstream Processing: 主要实施对视频压缩码流的熵解码过程 § Inverse Transform: 主要实现反整数变换,将视频数据由频率域转换到像素域 § Motion Compensation: 实现运动补偿过程,完成预测编码类图像的重构 § Deblocking: 去块效应滤波模块 对上述处理模块支持得越多,则表明GPU硬件解码能力越强。 对于第一代PureVideo技术,是不能支持VC-1视频编码的硬件加速的,而对于采用PureVideo HD技术的显卡来说,虽然还不能完全支持VC-1硬件解码,但是已经可以完成VC-1除Bitsream Processing外的三个步骤,其余工作仍然留给CPU进行。 UVD是ATI针对HD DVD和Blu-ray Disc两个主流高清视频载体而提供的GPU解决方案。未来(站在2008年的角度上)高清规格的趋势基本已经明朗,VC-1和H.264两种编码是目前的绝对主流。以HD DVD和Blu-ray为载体的电影,码率通常较高,普通CPU无法应付。UVD则可以实现H.264/VC-1的完全硬件解码,这即是其在HD支持方面优于NVIDIA之所在。 关于DxirectX Video Acceleration等级 DXVA规范是一个具有profile的标准,对DXVA不能用“支持”、“不支持”简单论之。GPU支持DXVA规范,不代表就实现了里面所有的功能,微软的DXVA 2.0标准为显卡的硬件解码加速能力分出了不同的档次。 档次区分的标准是显卡能实现硬件解码能力的差异,即前文描述的4个视频解码模块,能实现的模块越多,显卡的级别也就越高。Microsoft按照GPU能够处理的视频解码过程中模块的多少对硬件能力进行“分级”,如下图所示: 图3 DXVA 2.0分级定义 举例而言,Microsoft将GPU对于H.264解码的能力分为了A~F共6个等级,其中A为最低,F为最高。这里,FGT(Film Grain Technology),是指胶片感,也就是影片中的颗粒感觉。未来的H.264编码器将会有FGT的开关选项,比如针对录像摄影素材则将FGT关闭,而对于胶卷摄影,出于胶卷的特性则将FGT打开,以保持特有的颗粒信息。而在影碟机一方,其解码器将识别颗粒信息,并在噪音滤波器中应用到H.264的视频流上。对于VC-1的支持,GPU则分为4级,仅支持Post Processing(如deblocking)模块的,为A级;当GPU能处理所有处理模块时,则为D级,——表明GPU可以支持硬件熵解码。 第三幕:从用户中来,到用户中去 在多格式支持类播放器领域(即QQ影音所定位的市场)中,通过分析可以发现:包括KMP、暴风影音、风雷影音、终极解码在内的所有播放器均使用“高清滤镜”来完成高清视频的解码,同时配合一定的组合方式和渲染策略来实现滤镜管理,最终实现GPU“硬件”解码,从而“加速”高清影像的回放显示。 至此,技术内幕大致揭开,开始发动对高清视频硬件加速功能的攻坚战。攻坚战主要分两轮实施。 第一轮战役:肉搏——技术篇。此轮战役以我师兄(时任腾讯研究院多媒体研究室研究院)为左翼、同队战友(即完成自身所肩负开发任务后被抓壮丁的倒霉蛋)为右翼、笔者自领中军(全军单人无骑),全面铺开。通过奋指狂敲写代码、悬梁刺股加夜班、抓耳挠腮调BUG等多种战术,历时N个星期,高清加速功能原型DEMO终于“千呼万唤始出来”。首个支持高清功能的内部体验版本出来后,赶紧地,诚惶诚恐如献贡品般地让公司内部最初在BBS上“发难”QQ影音的BS哥试用了一下。在随后的几个星期内,则不断地通过“献贡品->被BS->痛定思痛->解决问题->再献贡品->再被BS…”的方式来打磨技术细节、修炼QQ影音高清内功。 第二轮战役:舌战——产品篇。此轮主要围绕高清视频硬件加速功能产品表现形式、界面布局、用户交互方案等展开,在工程师、产品经理、界面设计师、交互设计师之间以唾沫横飞的方式进行。参战人员的焦点论题是:市场上已经有支持高清视频的产品,QQ影音创新何在?通过在办公室、会议室、茶水间、RTX群等等战场的白刃战PK,大家终于得到一个重要共识:创新不仅仅意味着改天换日般的变革,而更应该从实际用户需求出发,以解决实际问题为宗旨。 QQ影音的高清功能,既非空前也非绝后,其目的更不是申报国家500W科技进步奖。我们的目的在于用诚意给大众用户呈上一道人见人爱的小葱拌豆腐,仅此而已。然而虽为家常菜、家家户户都有,但却博百家之长、似曾相识之中彰显对细节的讲究和执着。这道家常菜,就是要让用户一吃就爱、一爱则上瘾,逐渐形成对QQ影音产品的可信、美誉直至对这个品牌的忠诚度和依赖度。 为了完成QQ影音在高清加速功能上的自我塑造,开始第三轮的信息搜集。在此期间,我做了如下几件事情:①注册了思路论坛用户,开始在上面长时间潜水;②再次骚扰公司同事,了解他们如何使用高清功能;③将自家PC上的nVIDIA GeForce 8600 GT显卡更新驱动以支持高清硬件加速,从此开始腐化堕落的视觉享受生活,直至今日。 另外,也发现了几件“有趣”的现实:①某些播放器产品虽然有高清加速功能,但几乎为所有自诩是高端用户的人所不齿,原因是:太傻瓜化,很多时候无法开启高清加速,无法满足高端用户的控制需求以及在吃饱后撑得慌时爱鼓捣的心理。②即使是常用高清功能的高端用户,也很少有真正能完全搞明白、并准确使用终极解码那个“解码中心”的(见图 4)。他们嘲笑那些初级用户,但其实就是胆子大点、耐心点而已。出现高清影片无法加速时,他们的办法是:枚举所有可能的配置,直至貌似问题解决。③思路论坛中类似“跪求配置高清加速”的帖子不少,但跟帖者要么惜字如金,故作高深,仅点拨一二;要么好为人师,长篇大论,技术术语漫天飞——以我的理解,中国人除了个别实在闲得发慌的,或者如我这般拿工资来看论坛的,其他人应该没有兴趣看完;即使看完,也很难完全知道下一步该怎么办。 图4 实现高清功能的用户配置版面 用户需求是创新的源泉所在,在发现了现有产品不足后,QQ影音高清功能从用户中来,产品形态和技术实现方案最终又回到用户中去。 § 智能高清模式:提供高清硬件加速一站式解决方案。简言之,通过检测用户的显卡能力和分析当前播放的影片编码参数来智能决定是否能够、是否需要开启高清加速以及怎么以最快速的方式选择最合适、最稳定的解码组件来实现加速方案。QQ影音的智能高清模式至少在以下方面完成了微创新:①根据影片量体裁衣来决定是否开启加速,而非其他产品那样采用一刀切的方式。这样使得那些CPU完全能够胜任(即所谓软解码)的影片可以避免开启加速后可能带来的稳定性问题;②在大量实际测试的基础上制定了不同类型高清影片的解码器“组合”方案,规避了其他产品在播放某些高清片时出现的花屏、黑屏、丢帧、音视频数据不同步的问题;③完善的智能方案能覆盖Windows XP和Windows Vista(2008年Windows 7尚未出世)两大Windows版本下的高清加速,并且在开启加速后仍然能实现任意加载外挂字幕。 此选项也是QQ影音的默认选择,这意味着初级用户从此不再需要去理解DXVA等术语、不再需要上思路论坛去跪求大侠和救世主,没有痛苦、没有烦恼,轻轻松松步入高清时代! § 稳定兼容模式:高清加速功能严重依赖显卡驱动等外部环节,容易在QQ影音不可控的范围内造成稳定性问题,而这些问题暂时也无法全部用技术手段智能检测和鉴别,所以包装了这个模式用于关闭高清功能。 § 自定义优化模式:给有精力的人准备的,希望让一部分对一站式播放器就天生反感而自命不凡的高端用户也能在这里找到可以玩的乐趣。当然,为了防止玩火自焚,我们仅仅强调并暴露了三个关键概念:分离器、视频解码器和音频解码器。总之希望玩家既有得玩,又不至于玩得太累、太辛苦,而且我们还衷心希望能玩出效果——即确实当智能方案出现问题时,可以通过一定时间内的手动尝试找到合适的高清加速方案。 “自定义优化模式”在产品设计时,饱受争议,一度认为是“技术人员的偏执”而被认为是鸡肋甚至是鸡屁股。但这个貌似撑门面、花架子的东西,还是得到了很多用户的认可,在后续的用户跟踪中,确实有不少用户通过使用“自定义”模式解决了一些特殊情况下无法开启高清加速的问题。眼见此产品模式被认可并获取了一定用户口碑,业内其他多款播放器产品在此之后也加入了类似的手动设置功能。当然,不管你信不信,反正伪愤青们是一定会相信这“又是”腾讯抄袭的一份“铁证”,你懂的……
|