本文是《针对PC的解码器技术之ASRC篇》的姐妹篇。 2009年1月份的美国CES上,艺雅(Ayre)发布了一款型号为QB-9的解码器,在HiFi界引起轰动。这个售价$2500的小盒子其貌不扬,不像一般解码器有光纤、同轴等多个输入接口,QB-9仅有一个USB输入端口,很明显它是专门给电脑用的。在QB-9出现之前,市场上各种各样USB解码器多如牛毛,究竟是什么原因使得QB-9一出现就引来世人的严重关注呢?是因为QB-9使用了一种叫做USB异步的技术,彻底解决了PC-HiFi中令人头疼的Jitter问题。 图一:艺雅的QB-9解码器,一问世就引起了广泛关注 在介绍USB异步之前,我们首先要记住:真正影响声音的Jitter是DAC芯片的时钟Jitter,而不是别的(比如送给解码器数据的Jitter)。如何把DAC芯片时钟的Jitter降到最低才是我们的终极任务。众多实验表明,无论是几百元的DVD、低档CD机、电脑抓轨播放还是几十万的顶级转盘,通过SPDIF数字口输出的数据都是一模一样的,误码的概率很小,不用考虑。但大家都知道低档转盘的声音比高档转盘差很多,原因就是转盘的数字信号Jitter导致了解码器时钟Jitter,低档转盘数字输出Jitter大,高档转盘Jitter小,音质就有差跟好的区别。 在本刊2009年11期上登过我翻译的一篇文章:《Jitter与数字接口》,其中提到了时钟信号经过长距离传输也会引入额外的Jitter,也就是说解码器的时钟最好不要通过外部设备输入,既然这样,我们就很容易想到最完美的方案就是:把一个很精确的时钟放在DAC芯片边上,并以该时钟作为整个系统的主时钟,即这个时钟不需要跟别的时钟同步,别的时钟与它保持同步。 根据这个要求,我们很容易想到完美的CD机架构,事实上有不少CD机就是按照这个架构做的: 图二:完美架构的CD机,将Jitter影响降到最低 一个时钟紧靠着DAC芯片,并作为整个CD机的主时钟 这个时钟同时指挥伺服电路从CD盘上读出数据,当伺服电路发现FIFO欠载时,就加快主轴电机转速,数据读出速度加快;当伺服电路发现FIFO过载时,就减慢主轴电机转速,数据读出速度减慢,以保持FIFO半满。 图三:完美架构的CD机分成转盘和解码后,时钟应在解码器端,转盘受该时钟控制 由于读盘的伺服机构动作时,会产生电磁干扰,有害于音质,为此我们可以把伺服电路、FIFO、机芯部分与DAC、时钟分开,分别装在独立的机箱内,这就成了转盘和解码器,最大程度降低了伺服机构对解码部分的干扰。从以上示意图我们可以看到,完美架构的CD机分成转盘和解码器后,应当把时钟放在解码器一侧,这样就需要两条数据线(或者一条双向数据线)分别传输数据和时钟,才能依然保持完美的架构。虽然经过长距离传输,送到转盘的时钟和送到解码器的数据都有Jitter,但这些Jitter不会影响到声音,因为我们最关心的解码器时钟是本地的,没有经过传输,Jitter最小。可惜的是,当初制定SPDIF数据传输标准时,Jitter对声音的影响和来源未能得到充分研究,结果SPDIF定义成了一个单向的数据传输标准,时钟只能放在转盘一侧,使得解码器必须面对本来可以无需担心的Jitter问题。 图四:SPDIF将时钟放在转盘一侧,使得解码器不可避免地受到Jitter影响 在一些High-End级别的转盘和解码器中,设有专门的时钟接口,转盘可以接收解码器的时钟。启用时钟接口后,用户可以明显感受到音质的提升。可惜由于缺乏标准,这种时钟接口的通用性不强,通常要求转盘和解码配套使用,有其局限性。 小结:一个完美的转盘、解码器解决方案应该同时满足以下条件: 1. 时钟在解码器侧,并作为系统主时钟,不需要与别人保持同步 2. 解码器和转盘之间支持双向数据传输:时钟信号从解码器传给转盘,数据从转盘传给解码器。 3. 传输接口必须是业界标准,具有可互换性,即不同厂家的转盘和解码器能随意搭配使用 4. 传输接口具有足够的传输带宽,能满足音频数据流的传输 条件1、2都不难满足,绝大部分数据接口标准都支持双向数据传输,但条件3、4却很难满足,尤其是条件3。直到USB和Windows XP\MAC OS/X等操作系统出现后,满足以上条件才成为了现实。 USB规范充分考虑了多媒体音视频应用的需求,提供了完善的支持,这里仅对跟本文相关的数据传输部分作一些介绍。 先介绍一下相关的名词定义: 主机:一个USB环境中只能有一个主机,通常是PC机,数据只能在主机与USB设备之间传输,设备之间需要通过主机转发数据。 端点:与主机进行的数据传输都是通过端点来进行的,一个设备可能会有很多端点,进行不同功能的数据传输。 管道:端点与主机的连接称为管道,可以想象成一根数据线。 帧:USB规定每1毫秒发送一个数据帧,一个帧内可以有多个数据包。数据帧以SOF标志开始,以EOF标志结尾。 USB支持数据的双向传输,针对音频应用,专门有音频设备类定义规范,最高版本是USB Audio 2.0,支持多声道高清规格音频,目前仅有OS/X lion操作系统支持,市面上见到的支持高清规格音频的USB解码器要在Windows下使用都必须安装专门的驱动程序。而较早版本的USB Audio 1.0得到Winodw XP\Vista\7、MAC OS\X等主流操作系统系统支持,按照该规范设计的解码器可以即插即用,无需安装专门的驱动程序,最高支持24/96规格两声道音频。 音视频等数据流的实时性要求持续不断地按固定带宽传送数据,USB中与音频应用相关的数据传输类型叫做等时传输,英文Isochronous Data Transfer,也有译作同步传输的,但容易与后文提到的时钟同步方式中“同步型”混淆,因此本文译为等时传输。 USB Audio 1.0是USB 1.1框架下的规范,最大传输带宽限制在12Mbps(1.5M字节/秒)之内。USB规定每毫秒发送一个数据帧,因此每帧能传输的数据不超过1500字节。同时USB规定,等时传输方式下,一次发送的有效数据(即不包括协议开销)长度不超过1023字节,下表是一次发送不同长度有效数据时带宽的使用情况,可以看到在一次发送有效数据在64、128、256字节时,每帧能传输1280字节(每秒1.28兆字节),因此 USB Audio 1.0最高支持两声道24bit96KHz音频,能满足绝大多数场合的需求。 表一:USB 1.1等时传输模式下数据传输效率表 USB等时传输模式下,支持三种时钟同步类型的端点: 自适应端点:自适应端点的适应能力最强,可以说是逆来顺受,完全根据对方的要求来调整自己的时钟节拍,达到同步目的。 自适应发送端根据接收端的传输速率来调整自身时钟,为此接收端和发送端之 间需要建议一根反馈管道,将接收端的数据传输速率通知给发送端。 自适应发送端可以与所有类型的接收端通讯。对于自适应接受端,则不需要与 发送端建立反馈管道,它可以直接从数据流中获取传输速率信息。 同步端点:同步型端点的特点就是它的时钟通过USB帧开始标志(SOF)来控制。有两种方式,一种是用锁相环将自己的时钟与SOF同步,这跟自适应无异;另一种是控制SOF的发送,使得每帧传输数据量保持一致。由于只有主机才能控制SOF发送,因此对于不能改变SOF的外部设备来说,只能通过扔掉多余数据或插入插值来保持SOF之间数据量一致。 异步端点:异步端点的时钟不会与外界同步,对于异步接受端来说,必须与发送端建立一条反馈管道,将自己的数据传输速率信息告诉发送端。由于这个反馈信息是随时可以发送的,发送端随时根据反馈信息调整传输速率,这样就能消除时钟频率漂移的影响。 从以上介绍我们可以看出,一个解码器如果是自适应的或者是同步的,它的时钟要求与外界同步,容易引入Jitter,这不符合我们的要求,唯有异步端点的时钟与外界无关,由发送端根据它反馈的传输速率来发送数据,以保持同步。因此如果解码器是异步端点,这就完全符合我们前面提到的四条,与电脑一起构成完美的转盘、解码器架构。 USB异步使用了两根管道实现双向数据传输:一根数据管道从电脑向解码器发送数据,另一根反馈管道让解码器向电脑报告自己需要的数据传输速率。这跟高级转盘+解码器用时钟接口直接传输时钟的方式有所不同,但效果是一样的。 图五:USB异步解码器架构 在USB异步传输过程中,解码器端的微处理器根据本地时钟频率和USB的SOF间隔,计算出自己的数据速率,并通过反馈管道向电脑报告自己每帧需要多少个数据,电脑则按照这个反馈信息,你要多少数据我就给你多少数据,不会多也不会少。微处理器同时按照本地时钟的节拍从FIFO中取出数据送给DAC解码。 USB异步架构完全符合完美转盘+解码的要求: 1. 时钟在解码器侧,是系统主时钟,不需要与别人保持同步 2. 解码器和电脑之间通过USB双向传输数据,解码器告诉电脑我需要多少个数据,电脑则按照要求发送数据 3. USB接口是业界标准,不同厂家的解码器可以接在不同的电脑上使用 4. USB接口具有足够的传输带宽,能满足24/96规格两声道音频的传输,将来可以支持更高规格的多声道音频传输 USB1.1早在1998年就制定完毕,但由于当时操作系统仅支持自适应解码器,直到最近Windows XP SP3出现之后,才能支持异步解码器。因此很久一段时间内市场上USB声卡、解码器一直都是工作在自适应模式下的,接口芯片以Ti的PCM27XX居多。这类芯片仅支持 自适应模式,最高采样率也只有48KHz,其输出时钟Jitter高达2-3ns,若直接驱动DAC芯片的话,听起来有很明显的数码声。发烧友普遍认为USB音质不佳正是源自于此。为了解决Jitter问题,可以在PCM27XX后面加一级ASRC芯片来消除绝大部分Jitter,采用这种方案的有国产ARCE MDAC、美国的Benchmark DAC1等解码器。 2002年出现了比较高级的音频专用的USB接口控制芯片,如TAS1020B,支持所有USB数据传输模式和同步类型,并内置了音频Codec。然而,这款芯片内置的官方固件只能支持自适应模式,若要它工作在异步模式下,必须自己写相关程序,使得编程和调试变得极为困难,开发者必须对USB底层工作原理、Windows USBAudio内核驱动程序工作原理以及TAS1020B芯片的工作原理有着深刻的理解才能完成这项工作。加上操作系统迟迟未能支持USB异步,因此很多解码器虽然用了这款芯片,但仅仅是用到了它支持24/96的特性,依然工作在自适应模式下,输出时钟Jitter高达2ns以上。比如Benchmark的DAC1,USB接口采用的就是TAS1020B,工作在自适应模式下,不得不在后面加了一级ASRC来抑制Jitter。 这几年来很多人都看到了USB异步的潜力,尝试为TAS1020B写异步程序,然而都遭到了失败,只有一个高手获得了成功。他重写了TAS1020B的固件,加入对USB异步的支持,并将这套软件许可给了艺雅和DCS,于是市场上便有了本文开头的艺雅QB-9解码器。目前XMOS推出了支持异步模式的USB Audio 2.0开发套件,市面上符合USB Audio 2.0规范的异步解码器无一例外的使用了该方案。 USB异步是一项不算太新的技术,但正式获得应用仅两年多,就凭借其优异的性能和互操作性,在越来越多的解码器中得到了应用。现在了解这项技术的人还不算多,大多数发烧友还是认为USB音质不好、PC-HiFi不行。相信会有越来越多的解码器使用这项优异的技术,让PC彻底取代CD成为现实。 转自http://blog.sina.com.cn/s/blog_69f6f0ee0100zf1t.html
|
ADVERTISEMENT