耳机俱乐部论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

楼主: mvw

今天试着抓了一下轨,结论让我很迷茫

[复制链接]

5

主题

2330

帖子

14

积分

中级会员

Rank: 3Rank: 3Rank: 3

积分
14
注册时间
2007-6-28
发表于 2009-2-19 16:12:22 | 显示全部楼层
http://gael-varoquaux.info/computers/real-time/index.html

CPU和操作系统的jitter问题总算有人讨论了,请大家看看。
回复 支持 反对

使用道具 举报

19

主题

184

帖子

12

积分

中级会员

Rank: 3Rank: 3Rank: 3

积分
12
注册时间
2001-11-21
发表于 2009-2-19 17:46:42 | 显示全部楼层
和同事讨论了下,interrupt和声音的质量(hifi意义上而言)应该是没有关系的。
interrupt是一个事件通知,就声音的播放过程而言,声卡的FIFO满了或者空了,触发interrupt都是可能的。但是在声音的播放过程中,cpu的职责只是给fifio填数据。出现的问题最可能是fifo空了,cpu由于调度或者work load的问题,没有及时填上,导致声音出现短暂中断;但这个并不是我们讨论的声音质量问题。到声卡的fifo之后,数据才会和时间轴binding,成为数字信号;在数据到达fifo之前,数据跟时间轴是没有关系的。
所以只要cpu好好的填上了fifo,剩下的问题都是声卡的问题了……
然后很明显的是,在virtualization环境下的系统,尤其是windows xp,声音出问题的几率很大(指的是断断续续),也是由于work load加重,导致windows一般情况下的调度没法按时填上fifo导致的。
明天再找写声卡driver的同事聊聊,确定一下这个问题。比如,写fifo的格式,是否可能导致什么误差之类。至少现在看来,声卡之前是bit perfect的。
回复 支持 反对

使用道具 举报

5

主题

2330

帖子

14

积分

中级会员

Rank: 3Rank: 3Rank: 3

积分
14
注册时间
2007-6-28
发表于 2009-2-19 17:50:03 | 显示全部楼层
CPU应该是无法满足填充FIFO的时间精度要求吧。因为FIFO的数据就直接流去DAC了,这一块是声卡的时钟管,而填充这个事情是CPU做。
数据误差那是几乎不可能的。。

[ 本帖最后由 pig2man 于 2009-2-19 17:51 编辑 ]
回复 支持 反对

使用道具 举报

19

主题

184

帖子

12

积分

中级会员

Rank: 3Rank: 3Rank: 3

积分
12
注册时间
2001-11-21
发表于 2009-2-19 17:53:22 | 显示全部楼层
原帖由 pig2man 于 2009-2-19 17:50 发表
CPU应该是无法满足填充FIFO的时间精度要求吧。因为FIFO的数据就直接流去DAC了。。


没听懂……
FIFO里是纯数据,声卡在读,CPU在写。我说的是声卡最外面一个跟CPU有关的FIFO(软声卡不算,那个要CPU的介入)。
回复 支持 反对

使用道具 举报

5

主题

2330

帖子

14

积分

中级会员

Rank: 3Rank: 3Rank: 3

积分
14
注册时间
2007-6-28
发表于 2009-2-19 17:59:06 | 显示全部楼层
FIFO读出是DAC控制读的,写入是CPU控制写的,两边速度不一样就出问题了呗?是不是这个意思?FIFO也不是仙丹,不能阻断数据流,也不能消灭Jitter呀

这个东西CD转盘/解码的配置里也是一样的,为啥CD好,因为PC的转盘度数据出来的速度可以非常精确的控制。

而且CD/转盘可以共用时钟,电脑不能共用声卡的时钟呀。

办法是让DAC和电脑共享内存,然后把硬盘上的数据全部缓冲到内存里面。

[ 本帖最后由 pig2man 于 2009-2-19 18:14 编辑 ]
回复 支持 反对

使用道具 举报

19

主题

184

帖子

12

积分

中级会员

Rank: 3Rank: 3Rank: 3

积分
12
注册时间
2001-11-21
发表于 2009-2-19 18:15:09 | 显示全部楼层
原帖由 pig2man 于 2009-2-19 17:59 发表
FIFO读出是DAC控制读的,写入是CPU控制写的,两边速度不一样就出问题了呗?是不是这个意思?


哦,好像有点误解……
我的意思是,声卡之前,只要不出现FIFO空了导致声卡没东西处理出现声音断掉,其他的应该是不会造成声音质量区别的。
FIFO是不是直接读给DAC,我不确定……明天找个spec看看。
但声卡应该是以恒定速率或者不考虑时间的读取(要不然就是自己故意劣化音质了……),所以应该是只有两个结果:读到了,或者没读到。
读到了,加上时间轴,给DAC;没读到,得,您就听跳音吧。
这里应该没有质量区别。(当然,这里也是理想情况下的想法,不知道会不会有声卡犯糊涂,觉得:啊,我没读到,那我输出慢点好了……)
jitter的问题应该是出把信号在送给DAC时,加上的那个时间轴。FIFO之后,DAC之前怎么操作的,我还在查到spec……或者等明天问同事……

不过,如果是AC97之类的软声卡,播放的质量应该是和CPU有很大关系的。
最好的情况是FIFO之后就不依赖CPU了,那问题就都是声卡的;麻烦的是,CPU给你送数据,然后还得负责解码和周边工作……那high work load下的质量问题是肯定的……
回复 支持 反对

使用道具 举报

19

主题

184

帖子

12

积分

中级会员

Rank: 3Rank: 3Rank: 3

积分
12
注册时间
2001-11-21
发表于 2009-2-19 18:24:16 | 显示全部楼层
原帖由 pig2man 于 2009-2-19 17:59 发表
FIFO读出是DAC控制读的,写入是CPU控制写的,两边速度不一样就出问题了呗?是不是这个意思?FIFO也不是仙丹,不能阻断数据流,也不能消灭Jitter呀

这个东西CD转盘/解码的配置里也是一样的,为啥CD好,因为PC的转盘 ...


我是认为,在FIFO之前,有数据流,但是数据流是如何填充的,是没有关系的。
AD录进去的jitter,已经成了数据的一部分了,我想能够去掉或者削减的可能性似乎太小。
只是我觉得,PC系统的jitter,是从声卡开始的——因为声卡的晶振是用来提供时间数据的开端。之前的数据,没有时间的概念——除非你填充FIFO不足……
回复 支持 反对

使用道具 举报

5

主题

2330

帖子

14

积分

中级会员

Rank: 3Rank: 3Rank: 3

积分
14
注册时间
2007-6-28
发表于 2009-2-19 18:34:55 | 显示全部楼层
jitter录不进任何东西,AD的jitter都转化为失真了。
FIFO有时间的概念啊。可以搜索一下real time fifo就知道了,它不是储存数据用的,它的用处是pipeline罢了:)

基本上就是第一位空了以后它就signal给writer来填写,writer跟不上的话就有问题——不是说CPU快不快,而是系统能不能稳定地在1/44.1k秒内响应。

问题呢就是我们用的CPU/操作系统做不到这个程度。

[ 本帖最后由 pig2man 于 2009-2-19 18:38 编辑 ]
回复 支持 反对

使用道具 举报

5

主题

2330

帖子

14

积分

中级会员

Rank: 3Rank: 3Rank: 3

积分
14
注册时间
2007-6-28
发表于 2009-2-19 18:41:18 | 显示全部楼层
原帖由 yasker 于 2009-2-19 18:15 发表


哦,好像有点误解……
我的意思是,声卡之前,只要不出现FIFO空了导致声卡没东西处理出现声音断掉,其他的应该是不会造成声音质量区别的。
FIFO是不是直接读给DAC,我不确定……明天找个spec看看。
但声卡应该 ...


我们说的是简化的状况啊,实际情况还要向PCI/PCIE总线要求数据、CPU再响应中断,再给这个设备写。。。完蛋了。

至于DAC,可以是很复杂的设计,本身可能有缓存或者怎么样的anti-jitter的机关,不过他之前一般都是用一个fifo,就声卡而言。

[ 本帖最后由 pig2man 于 2009-2-19 18:42 编辑 ]
回复 支持 反对

使用道具 举报

164

主题

1万

帖子

207

积分

荣誉会员

Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7

积分
207
注册时间
2005-2-22

优秀版主奖

发表于 2009-2-19 18:57:14 | 显示全部楼层
mvw实验对了结果
pig2man和我的理解已经很接近了

好多人人还停留在数字初级阶段。。。
PC hi-fi : IBM x220i->TC K8->Apogee Rosetta200 (Mutec iclock Syn Both) ->Drawmer MC2.1->ADAM S4X-H
CD system : CEC TL3N-> Apogee Rosetta200(Mutec iclock Syn Both)->Drawmer MC2.1->ADAM S4X-H

2* TAOC 25MF + 35S
WB isolation transformer + LITE P100
AA Ferrite2,WireWorld Silver Electra 7 * 3
Nordost Tyr2(AES),Tyr(XLR),Mogami 3173(XLR)
回复 支持 反对

使用道具 举报

19

主题

184

帖子

12

积分

中级会员

Rank: 3Rank: 3Rank: 3

积分
12
注册时间
2001-11-21
发表于 2009-2-19 18:59:14 | 显示全部楼层
原帖由 pig2man 于 2009-2-19 18:34 发表
jitter录不进任何东西,AD的jitter都转化为失真了。
FIFO有时间的概念啊。可以搜索一下real time fifo就知道了,它不是储存数据用的,它的用处是pipeline罢了:)

基本上就是第一位空了以后它就signal给writer来 ...


我先查查典型的fifo大小再说。如果对cpu的要求非常频繁的话,肯定会有性能换质量的tradeoff...
回复 支持 反对

使用道具 举报

164

主题

1万

帖子

207

积分

荣誉会员

Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7

积分
207
注册时间
2005-2-22

优秀版主奖

发表于 2009-2-19 19:03:56 | 显示全部楼层
mvw实验下不同的光驱吧
如果有好光驱的话对比普通的 差别太大了
好比高档转盘PK DVD机。。。
PC hi-fi : IBM x220i->TC K8->Apogee Rosetta200 (Mutec iclock Syn Both) ->Drawmer MC2.1->ADAM S4X-H
CD system : CEC TL3N-> Apogee Rosetta200(Mutec iclock Syn Both)->Drawmer MC2.1->ADAM S4X-H

2* TAOC 25MF + 35S
WB isolation transformer + LITE P100
AA Ferrite2,WireWorld Silver Electra 7 * 3
Nordost Tyr2(AES),Tyr(XLR),Mogami 3173(XLR)
回复 支持 反对

使用道具 举报

19

主题

184

帖子

12

积分

中级会员

Rank: 3Rank: 3Rank: 3

积分
12
注册时间
2001-11-21
发表于 2009-2-19 19:09:14 | 显示全部楼层
话又说回来,如果fifo太小的话,加大fifo,是否能够得到隔离的效果内?
想法和 http://www.cndiyclub.com/c_read.php?tid=12722 最后那个接近了。
回复 支持 反对

使用道具 举报

329

主题

1万

帖子

205

积分

核心会员

Rank: 8Rank: 8Rank: 8Rank: 8Rank: 8Rank: 8Rank: 8Rank: 8

积分
205
注册时间
2003-7-11

最佳创作奖

 楼主| 发表于 2009-2-19 20:15:12 | 显示全部楼层
原帖由 nadesicozhao 于 2009-2-19 19:03 发表
mvw实验下不同的光驱吧
如果有好光驱的话对比普通的 差别太大了
好比高档转盘PK DVD机。。。


我这只有笔记本光驱 汗 有钱了我一定得弄个外置的试试看~~~~ 笔记本内部光驱因为体积的原因 做工太省料了 42p还凑合 是松下的 43是lg的 更单薄……
总感觉哥德巴赫猜想要被证实了。
回复 支持 反对

使用道具 举报

164

主题

1万

帖子

207

积分

荣誉会员

Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7

积分
207
注册时间
2005-2-22

优秀版主奖

发表于 2009-2-19 21:06:47 | 显示全部楼层
原帖由 mvw 于 2009-2-19 20:15 发表


我这只有笔记本光驱 汗 有钱了我一定得弄个外置的试试看~~~~ 笔记本内部光驱因为体积的原因 做工太省料了 42p还凑合 是松下的 43是lg的 更单薄……


对比过垃圾光驱抓轨和俺隔离牛供电的PP外置
差别不是一点点大
PP搞好了抓轨未必输D50的
PC hi-fi : IBM x220i->TC K8->Apogee Rosetta200 (Mutec iclock Syn Both) ->Drawmer MC2.1->ADAM S4X-H
CD system : CEC TL3N-> Apogee Rosetta200(Mutec iclock Syn Both)->Drawmer MC2.1->ADAM S4X-H

2* TAOC 25MF + 35S
WB isolation transformer + LITE P100
AA Ferrite2,WireWorld Silver Electra 7 * 3
Nordost Tyr2(AES),Tyr(XLR),Mogami 3173(XLR)
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

耳机俱乐部微信
耳机俱乐部微信

联系我们|有害信息举报:010-60152166 邮箱:zx@jd-bbs.com|手机版|Archiver|黑名单|中国耳机爱好者俱乐部 ( 京ICP备09075138号 )

GMT+8, 2024-11-30 14:34 , Processed in 0.094274 second(s), 36 queries , Gzip On.

快速回复 返回顶部 返回列表