音频 频道

大忽悠?细析你不知道的ATI及内置声卡

  【IT168评论】今天,我们不谈3D。撇开3D性能的争论,我们想谈谈主流视线以外的显卡。显卡之所以被称作显卡(Graphics Card),3D运算只是其中一部分。所以在这里,我们想就显卡的其他方面做一个浅谈。当然,这次我们抛开NVIDIA不谈,把着眼点放在近期的AMD-ATI及其宣称的“声卡”两方面身上,做一个简单的讨论。同时不足和错漏之处,也非常欢迎各位朋友积极指出纠正。

  谈近期的ATI的话,绝对少不了被各大网站炒得如火如荼的ATI Stream(ATI的通用计算技术)。论ATI独有的片上“声卡”的话,就不得不谈谈ATI的Avivo和Avivo HD。下面就针对近期大家比较关注的这两个方面,分别跟大家分享和交流一下经验。

ATI
ATI

  话说回来,其实ATI早年的确推出过声卡,而且做工还很牛B ^_^

 

“声”“色”本一家,从“色”说起:Avivo\Avivo HD

  最近关于AMD\ATI的争论着实不少,焦点主要集中于ATI在催化剂8.12和9.1中,向广大用户承诺的Stream通用加速技术。就目前阶段看,普通用户对于ATI的Stream普通用户所能感知到的,除了早在R5XX时代就开始的与Stanford University携手的GPU加速式分布运算--Folding@Home ,就属时下争论最热烈的ATI Avivo Video Converter了。前者乃斯坦福大学的一个研究蛋白质折叠,误折,聚合及由此引起的相关疾病的分布式计算工程;因为它隶属公益事业范畴,所以不管是媒体还是厂商都不敢妄加炒作和评论。道理上讲,拿Folding@Home来比速度是极其不道德的,这种做法明显有悖于公益事业的性质以及分布式计算的初衷。也正因此,A\N曾经争论过一段时间的Folding@Home性能的问题也就此作罢。

  而对于后者,目前阶段的激烈争论可谓是正处浪尖,人气绝对堪比网络红兽“草泥马”。催化剂8.12以及9.1带来了ATI三年多都未曾更新的ATI Avivo Video Converter。按理来说这是件好事,可是事实却恰恰相反,或者说事与愿违。ATI Avivo Video Converter这次的归来已经不同以往,而是身披ATI“Stream”的华丽外衣姗姗,是带着“光环”而来的。但问题也恰恰出在这里。

  2005年,ATI向公众推出ATI Video Converter,主要是配合当时ATI在R5XX这一代核心上推出的视频辅助编码技术,隶属于ATI Avivo的一部分。Avivo最早出现在ATI的TV Card\视频采集卡ATI Theater 550。Avivo作为一个参考平台的整体,包括一个Avivo采集卡和一块Avivo显卡。当年,唯一的Avivo显卡就是ATI自家的R5XX系(当然,现在来看,ATIR5XX以后全系列均支持)。Avivo是针对视频播放中的Capture、Encode、Decode、Process及Display五个项目(即采集、编码、解码、后期处理和显示操作)进行处理和操作。ATI将上面这五个操作称作视频管线(Video Pipeline)。到目前为止,支持ATI Avivo的ATI芯片包括R5XX全系列,以及R600(R600以后的芯片支持更高级的Avivo HD,这一点在后面会给大家详细叙述)。采用这些芯片的显卡都支持ATI提出的芯片辅助解码技术(注意:这里是辅助),也就是在系统处理H.264、VC-1、WMV9、WMV9 PMC、MPEG-4和DivX等等视频回放时GPU从旁协助;同时,这些GPU也具备有一定的编码能力,因此所有Avivo平台中的显卡都支持GPU辅助视频格式转换,ATI Video Converter就是在此基础上诞生。

  对于早期的ATI Avivo,GPU可以承担一部分解码工作(动态补偿和去块处理),这部分解码需要调用到3D引擎的Pixel Shader部分(Avivo的前身其实就是ATI早在Radeon 8500时代就提出的TruForm技术,、也是依靠像素着色器来优化画面质量,但是当时TruForm的实现方式非常有限,且兼容性不佳),而最关键的,也是最消耗CPU资源的视频流部分的解码工作,还是交由CPU来完成的,因此早期所能实现的功能其实非常的有限,解码所支持的格式相对较少;ATI在2005年12月发布的ATI Video Converter也是Bug多多,同时GPU对于视频文件中音频信号的处理也不是很到位。直到2008年12月,这个老旧的软件才迎来了它的更新版。因此,客观的来讲,第一代Avivo技术并不成熟,ATI当年提出的Avivo的概念的时候,甚至不包括在转码过程中,与视频息息相关的音频信号的相关信息处理的细节,因此理所当然的,了解它的人不多。

第二代:Avivo HD

  2007年6月,采用RV630和RV610的Radeon HD 2600 Series和Radeon HD 2400 Series的发布为我们带来了脍炙人口的UVD(Unified Video Decoding),ATI也随即推出了Avivo的升级版:Avivo HD。

  UVD(Unified Video Decoder)中文译成通用视讯解码器,是Avivo HD中的其中一项技术。只有R6XX(R600除外)以后的系列才集成了这个解码器。

  用UVD引擎,显示卡就能完全硬体解码H.264和VC-1格式的高清影片,分别为Blu-ray Disc和HD-DVD的编码。同时,UVD区别于早期的视频解码另外一个巨大的不同在于,这个UVD解码引擎部分是独立于核心3D引擎的。因此,在处理视频编码解码的时候,基本不需要调用到核心的3D引擎,有效的降低了系统功耗。

  在R7XX时代,ATI又带来了UVD2。UVD2仍然隶属于Avivo HD范畴。相对于UVD来说,UVD2最显著的改进在于支持双流解码 (Dual Stream Playback),即可以同时解码和输出两个视频流。

  RV770在高清回放功能上加强了对更高分辨率视频解码的支持,如“2160P”,而不仅限于传统的“1080P”。不过遗憾的是,在对MPEG2高清视频解码时,UVD2仍然无法实现完全硬解。

  UVD,作为Decoding,其实是Avivo HD的核心组成部分之一(严格说应该是大家了解最多的一部分)。但是实际上,就像前面关于什么是Avivo的描述一样,Avivo HD的范畴其实很广,包含了很多内容。这里不想讲得太多,只就其中的Transcoding,即转码部分(对于其他部分感兴趣的朋友可以自己Google一下,或者上百度百科了解一下)着重谈谈,因为这一点恰恰是跟时下争论的热点---- ATI Stream有着千丝万缕的联系。

从Avivo HD到ATI Stream

  在Catalyst 8.12时代,ATI终于给大家带来了许诺已久,但却多日未见“实物”的ATI Stream 通用加速技术。应该说这一技术是非常令人期待的,因为NV在G80时代就一枝独秀的CUDA终于有了强有力的对手。自2006年以来,万众对于NV的CUDA的“审美疲劳”,加上ATI早期一直犹抱琵琶半遮面似的,对自己的通用加速技术宣而不发,直接导致了万众对于ATI Stream技术的渴望程度从热情到了癫狂的程度。因此,这次ATI在8.12中带来的ATI Stream,必须要是绝非寻常,技惊四座;否则,透支大众的期望值所带来的后果是不堪设想的。那么事实是怎样的呢?

  事实是残酷的。首先,催化剂8.12的发布,的确是带来了ATI Stream,但是,这个Stream是啥?有啥用?能吃么?对于大众的疑惑,ATI在宣传中并没有给出较明确的答案。但是这次ATI对于ATI Stream的宣传却是针对大众的,这一点让笔者甚是感到匪夷所思。各大当家网站大谈特谈ATI Stream的时候,却一直未给大众的疑惑一个满意的答案。之后,在众多的论坛和网站上,出现了一个叫做“ATI Video Converter”的东东。笔者前面已经讲过,其实这个东东老早就有了,只是由于种种原因,这东西自2005年以来,就没有推出过后续的新版本,直到Catalyst 8.12。

  这下可好!在大众对于GPGPU和通用加速运算知之甚少的时候,这么一个可以用显卡转码视频文件的“神奇东东”突然冒出来,其曝光率理所当然的奇高。更重要的是,显卡的这种“不务正业”让人们自然而然的和GPGPU或者通用运算画上了“等号”,于是,锅一下子就炸开了(当然这后面多少也有NV的Badaboom的“功劳”)。这个昔日人们不屑鸟它的“ATI Video Converter”,一下子惹鸡飞狗跳,不得安宁。而且,它头上的光环可不轻----ATI Stream

  其实,对于这样一个免费的GPU视频转码工具,ATI Video Converter其实还是做得可以的。速度快,效率高,且免费,这些都是值得称道的地方。但是,来自背后的声音却告诉我们:这个东东虽然速度快,但是CPU占用率高;虽然效率不错,但是画质差;更恐怖的是,通过特殊的方式,这个ATI的御用程序居然可以用在NVIDIA的显卡上正常转码。我想,看到这里,很多人,不对,应该是所有人,都会觉得无语。就这样,一个ATI Video Converter的窘境,让很多人把它连同ATI Stream一起打翻在地,还踹上一脚。一时间,质疑声、唏嘘声、漫骂声不绝于耳。对于新生的ATI Stream来说,这一击,即使不是致命的,也够难受好一段时间。

  其实,客观的来讲,这个ATI Video Converter跟2005年的那个没多大区别,功能和局限都还是那些(前面已经讲过),笔者猜测,仅有的更新仅仅在于更好的支持新的显卡和更佳的系统兼容性,同时支持的视频格式有所增加,其它的与之前的版本并无二样。至于这个东西,有多少跟ATI Stream扯上关系,笔者在这里不便多说。但是有一点,笔者需要向各位明确的是,ATI Video Converter绝对不等同于ATI Stream,就像Badaboom不等同于CUDA一样。不管是ATI Video Converter还是Badaboom,他们对于ATI Stream和CUDA来说,都只是皮毛中的皮毛。GPU强大的通用并行计算能力的表现,目前来说,在民用领域的优势还不明显。

命途多舛的ATI Stream
命途多舛的ATI Stream

  (题外话:这个图的正确意思是ATI Stream技术的三个应用领域,分别是:消费领域、商业领  域、开发者领域。我们大家作为消费领域(民用)用户来说,只是Stream面向对象的一个方面。笔者在这里特别指出这一点,主要是因为在ATI Stream推出时,某些网站把ATI Stream面向的领域错误的解释为“娱乐领域、工作领域以及游戏领域”。这一点是大错特错的。因为娱乐,工作和游戏严格意义上来讲都只能归为“消费领域”。笔者认为,也正是这一点错误的理解,导致某些网站对于ATI Stream技术的诠释和评价是有所偏颇的,是不全面不客观的)

  跟CUDA一样,ATI Stream是很复杂,也不是笔者在这里一两句话能够说的清楚的。至于ATI Video Converter这个东东,笔者认为,与其说它是ATI Stream技术的应用之一,不如说是ATI学NV穿马甲,把原本就属于Avivo\Avivo HD的东西重新拿出来炒冷饭。广义上讲的话,即使是UVD这种东西,都可以看作是GPGPU或者通用计算的一种体现,但是如果仅仅把目光停留在这些上面的话,那也未免太鼠目寸光了。话说回来,ATI Video Converter只能勉强算是ATI Stream应用的冰山一角的一角,仅仅因为ATI Video Converter就否定ATI Stream显然是不理智的。

  客观的讲,现在的ATI Stream技术的确还不算成熟,ATI需要做的事情还有很多,也还有很长的路要走;但是笔者认为,就目前阶段来说,ATI Stream所带来的更有意义的东西是它提供给开发人员的Stream SDK数据库。同时ATI日渐完善自己的Brook+开发工具,将 AMD的计算抽象层(CAL)植入ATI Catalyst驱动,提供过渡到OpenCL的工具等等这些,都让开发者看到ATI Stream的前景是乐观的。同时,ATI在未来还须向NV的CUDA那样,给Brook+开发工具提供一个高级别访问GPU的途径,这样才能真正具备叫板CUDA的实力。

  总言之,不管是CUDA还是ATI Stream,要想在民用领域有所大的作为,现阶段来看是不太实际的。唯有向开发者提供更方便的开发平台,更灵活的过度,更强大的功能和更广泛的支持,才能够让这样一群人利用CUDA和ATI Stream,开发出更多适用于民用消费领域的高效率应用软件。因为他们才是推广和普及CUDA和ATI Stream的中坚力量。他们读懂了,用活了CUDA和ATI Stream,我们从GPGPU和通用并行运算中所能获得的好处也就是越多越实在。

“色”过即是“声”:ATI的声卡

  前面其实已经讲到,对于ATI Stream,包括笔者在内,所了解到的东西其实凤毛麟角,在此我们也就不深究了。下面我们就另外一个问题跟大家一起简单探讨一下,那就是ATI的“声卡”

  显卡能够输出声音,不是只在最新的几款A卡上才有,请看下图。

X800XT PEX850XT PE上的声音输出口
Radeon X800XT PE和X850XT PE上的声音输出\输入口

  早期的这种声音输出能力,来源于ATI历史悠久的ATI Rage Theater,在很多ATI以往的高端卡上,这块东东是必不可少的。它提供显卡的VIVO(Video-In & Video-Out)功能,同时也具备声音输出能力。X800XT PE\X850XT PE是少有的启用了这个声音输出功能的显卡之一。

  另外,ATI在2006年初的时候,还曾经玩过一把这样的游戏。当时,ATI曾对外展示了其一项非常特别的技术,即通过使用GPU强大运算能力进行音频效果的处理。ATI利用一个简单的Demo演示了Radeon X1300是如何通过GPU实现处理音频数据处理的。虽然这次演示的demo仅仅是一个简单的均衡器,但是ATI的主要目的我们不难看到,就是能够在GPU上实现音频甚至是物理处理运算等等都不是不可能的。当然,这个案例拿到今天来看,说它是ATI Stream付诸应用的一种体现也不是不可以。

  关于上面的声音输出(在做Video-In的时候,把输入源中的声音信号通过这个端口输出到声卡;Video-Out的时候,反之)和GPU音频效果处理的问题,我们在此不作过多讨论,关键请看下面的内容。

ATI的HDMI情节:先说说旁枝末节

  对于我们能够接触到的Avivio HD,除了上面谈论过的解码和转码功能之外,Avivo HD其实还带来了另外一种趋势 ---- 原生HDMI输出(最早出现在2007年采用R600核心的2900XT上)。HDMI (High Definition Multimedia Interface)即高清晰多媒体接口。HDMI能高品质地传输未经压缩的高清视频和多声道音频数据,同时无需在信号传送前进行数/模或者模/数转换。严格意义上来说,HDMI不算是一种PC视频接口规范,它更像是传统“黑电”(黑色家电)行业的一个规范,因为它更偏重AV,所以现在一般的LCD或者Plasma电视上,都能看到它的身影。这也难怪在“正统”PC视频接口规范上的讨论上,PC行业更看中方兴未艾的DisplayPort。

  正因为HDMI已经不单单是一个视频信号的传输协议,它还包括了音频信号的传输,因此,从R600时代开始,ATI的显示卡还首次在芯片上集成数字音频解码芯片,宣称能够呈现高质量多声道的音频输出(仅能通过HDMI输出)。这一点,对于喜欢用PC接驳带HDMI接口的电视来说,的确是非常方便的。但是,就ATI的这个“声卡”,笔者在这里想稍微谈一下自己的观点。

R600核心
R600核心

  首先,关于2900XT,它的R600片上到底有没有这个“声卡”(解码芯片)一直以来都没有一个明确的说法。一种说法是有,跟其他的R6XX系列核心以及后来的R7XX系列核心一样,都属于片上集成的。但是另一种说法则是,R600核心内部并没有这个解码部分,它的HDMI声音输出部分来自2900XT PCB上集成的一块Rage Theater 200芯片。如果像后一种说法宣称的那样的话,实际上2900XT这种声音输出本质上跟前面提到的X800XT PE\X850XT PE解决方案并无太大差异,只是将输出电路和端口整合到HDMI Interface上。笔者也曾经通过分析ATI提供的“声卡”驱动的.inf文件试图找寻答案,但是由于个人能力有限,尚未找到真正的答案。

  其次,我想就这个“声卡”的定义来简单谈谈。暂且先不说ATI这个显示芯片巨头。

  现在业内对于“声卡”这个定义也是含糊其辞。早年曾经有过的“软硬声卡”之争,现在大部分人也不再提了。笔者认为,这也是很大程度上回归理性的结果。记得早年对于“声卡”(很多人认为只有硬声卡才能算是声卡)的界定基本是这样:首先独立声卡都是硬声卡,这些声卡除了包含有Audio Codec芯片之外,还集成了Digital Control芯片,即包含音频信号处理芯片及辅助电路。这些声卡芯片提供了独立的数字音频处理单元,ADC与DAC的转换系统,最终输出声音信号;其次,集成在主板上的声卡基本都是软声卡。其实这种说法是有失水准的。一,独立声卡都是硬声卡纯属无稽之谈,一个例子,VIA的Envy 24芯片以基本不加修饰的高转换\回放质量著称,但是这个芯片仅仅是一个I/O,其它所有运算处理工作都还是交给CPU来完成。因此按照上面的逻辑,采用它的独立声卡的也不能算硬声卡;其次,主板上也有集成硬声卡的例子,笔者还记得,技嘉早在她支持Pentium III的815EP芯片的主板GA-6OXET上就曾经集成了当时的CT5880音频处理芯片,相当于把一块独立声卡Creative Sound Blaster PCI 128整个集成到了主板上。

M-AUDIO AudioPhile 2496采用VIA著名的ENVY24芯片
M-AUDIO AudioPhile 2496采用VIA著名的Envy 24芯片

  其实,从上面的例子可以看出,对于软硬声卡来说,只是对于声音信号计算\处理的分工的界定,一个交由CPU“代劳”,一个有自己的“专职保姆”,但它们并不代表最终音质的好与坏。其实这一点很好理解,采用VIA的Envy 24系列芯片独立声卡比比皆是,一个大家熟悉的例子:M-AUDIO 的AudioPhile 2496便是以音质著称,并且很多专业声卡也采用这个芯片。但是从来没有人怀疑过他们作为“声卡”而存在的意义。另外,以创新为代表的,是以声音信号的处理能力作为主打,他的X-Fi和早期的Audigy,SB Live 等等都拥有运算能力惊人的DSP,所以很多人认为这才是真正的“声卡”。笔者认为,创新的方式也是可取的,有强大的运算能力的主芯片,可以有效的降低CPU的占用率(虽然今天的CPU能力已经很强了),在游戏等方面还是有不小的优势的。所以,笔者个人在这里不是想说创新的音质就不好,只是想明确,大家针对的领域不同,面对的客户群不同,即所谓各有所长,各有千秋。

ATI的HDMI情节:ATI之声卡

  上面讲了很多,其实是想明确一点,声卡是个广义的概念范畴,笔者更偏向于用音质来衡量声卡的好坏优劣,或者用处理能力来衡量声卡吞吐能力的高低,不想就这个或那个是不是“真正”的“声卡”来讨论。

  说回ATI。其实,ATI目前提供的声音输出解决方案(讨论暂且除开R600这一个特例,原因上面已经讲过),说白了,跟现在主板上的那些所谓的“声卡”一样,就是将一个活生生的Codec集成到显示芯片内部。虽然早年ATI发布过声卡,也一直垂涎这个领域多久,但限于自身技术和财政实力来说,ATI目前应该说都还没有完全掌握音频方面的核心技术。因此,这一次也不例外,ATI集成的片上Codec,不是自己的东西,而是来自大家熟悉的Realtek。同样驱动也是由Realtek提供,ATI叫做ATI HDMI Audio Driver。这个声卡只有通过DVI-HDMI或者HDMI(某些非公版显卡有直接提供HDMI输出)才能输出声音,不能单通过其它方式独用拿来做声音输出,这不得不说是个遗憾。

DVI-HDMI
DVI-HDMI

  在R6XX时代,ATI集成的Codec还只能支持5.1声道,规格算是比较落后的。到了R7XX这一代,ATI终于将支持的规格提升到了主流的7.1规范。其实这种片上集成的方式,对于喜欢用HDMI接驳电视的用户使很人性化的设计,免去了额外音频线缆接驳的麻烦。

  但是,ATI的这一人性化的设计,在发布之初也给大家带来过不少的麻烦。因为R6XX发布以后,随卡的驱动里面都包含了这个“声卡”的驱动,大部分朋友安装显卡驱动时狂点“Next”安装完毕后,发现与自己系统的声卡冲突导致不能发声。这一点,ATI后来在Catalyst驱动包里面再没有集成进声卡的驱动,而是提供一个单独的下载链接,以免造成入门级用户的麻烦。

  总言之,ATI提供的片上“声卡”解决方案,其实跟大多数主板上的集成“声卡”解决方案并没有太大的差别,都是一个Codec,起一个ADC\DAC的作用。只是ATI的这种方案,对于HTPC的用户来说是件非常惬意的事情。结合前面叙述的关于ATI Stream的讨论,笔者在这里也不妨大胆YY一下:ATI会在未来通过ATI Stream,用R6XX和R7XX强大的浮点并行运算能力,接替CPU对于音频信号的计算\处理过程,配合已经片上集成的Codec,为大家提供一个名副其实的“声卡”解决方案。大家拭目以待吧!

  未来无限,遐想联翩,快乐莫过于向前看……

惊爆!ATI早年生产的声卡

ATI早年的声卡产品
ATI早年的声卡产品

  图片来源于论坛网友!

结尾送上MM一位
结尾送上MM一位

0
相关文章