找回密码
 -注册-
查看: 3907|回复: 24
打印 上一主题 下一主题

[长文] 重新理解:传输jitter、同步与异步、软件播放(更新完)

[复制链接]
跳转到指定楼层
1
发表于 2024-10-1 00:37 | 只看该作者 |只看大图 回帖奖励 |正序浏览 |阅读模式 来自 上海浦东新区
本帖最后由 wxwxwx0 于 2024-10-2 12:59 编辑

本文目的是重新梳理以下主题,试图从一个整体视角来分析、理解它们之间的关系,并回应实践中遇到的各种问题:
jitter是什么?如何产生的、如何消除
同步与异步的传输
音频播放软件与架构;bit-perfect与实时性
“异步”是否真的解决问题?
理想与现实的指引


一、抖动
数字音频由两种成分构成:信号值(16/24bit字长)+ 时间轴(采样率)。要实现音频回放:信号值转回成电压、采样率转回成时间轴。
而抖动就是采样间隔的时间飘移,但我们关注的应该是最终回放时的抖动。

主要的抖动来源
1)时钟的固有抖动
2)数据读取产生的抖动
3)电源噪声、射频/电磁干扰引起的抖动
4)数字传输过程中的抖动

而数字传输过程中的抖动是本文的重点,又可分为以下:
1)线材本身引入的抖动
2)前端的电源噪声、电磁干扰“传导”到DAC
3)前端时钟系统的不稳定:尤其是各种同步传输方式,前端时钟的不稳定会“传导”到DAC
4)速率匹配(实时性/效率)问题:人们一般不会说这属于“抖动”,因此它的影响被低估了

关于抖动影响的误区
为什么强调 “最终回放时”的抖动?因为真正有意义的是DA转换后模拟信号的抖动。有一个很好的图解释了这一点(见参考⑤)


不是说只有DA部分存在抖动,而是无论哪一种因素,要看它如何影响了最终的模拟信号从而被听到。
ps: 也有人讲抖动时会包含DA转换时参考电压的抖动问题,这个不在本文讨论范围

抖动的类型
总体分为两种大类:随机抖动(Random Jitter) + 决定性抖动(Deterministic Jitter)。
决定性抖动下面又有一类叫相关性抖动(Data Dependant Jitter),也就是与音频数据本身有相关性的抖动。通常认为相关性抖动对声音的影响更大。


重点在于:不同因素产生的抖动,由于具有不同的(时域/频域)分布特征,对声音的影响(方面/程度)也是不同的。(但这方面研究和资料比较少,这也是为什么jitter一定程度上仍然处于玄学领域)

“但是你能听出来吗?”
应该换一种问法:jitter如果已经很小了,它还会明显影响(长时间的)听音体验吗?或者说它直接影响转盘的声音档次么?从实践中得到结论:是的
根据AES杂志的研究:16bit DAC高于120皮秒的P-P jitter,以及20bit DAC高于8皮秒的P-P jitter都是可以听到的。但实践中人们觉得这个门限应该远远更低。(见参考①)
实际中对声音的影响:通常认为会明显影响到结像(让声音失去“现场感”),以及明显影响到低频表现。

减少传输抖动的思路/技术实际中是各种手段的组合/叠加)
0)减少电源噪声、电磁干扰的影响:既要减少本地影响,又要隔离前端到后端的串扰
1)通过PLL来重构一个(相对于音源直接提供的)“更干净”的时钟;进而可以通过级联PLL来得到更好的结果
2)通过ASRC(Asynchronous Rate Converter)处理数据,使之“重新匹配”到DAC自己的时钟域
   -- 理论上一个很大的buffer就足以隔离不同的时钟域,但实际很少有这么做的
3)反过来以DAC的时钟域做主控,让前端被动地“送数据”,这就是所谓的异步(异步USB、常规的以太网方案)


二、同步与异步传输

音频传输与数字传输
首先应该区分音频传输与数字传输(尽管它们实际上都是数字):
SPDIF(光纤/同轴)、AES/EBU这种是实时的音频传输,单向协议(没有反馈通路)。接收器的时钟需要锁定在传输流上,因此前端的时钟不稳定会传导给DAC,最终可能引起jitter。
之所以说是音频传输,是因为总线的速率(基本上)就是音频采样率,因此总线不仅作为一种传输链路,它的速率本身也是要传输的信息。
而在数字传输领域,总线速率与数据完全无关,你传输的不是音频流而是数据包。

USB
USB本质上不是专用来传输音频数据的,USB的传输是以固定时间间隔形成一个帧,包含了发送给同一个Host控制器下的不同设备的若干个数据包。全速下每1ms±500μs生成一个帧;高速下每125us±0.0625μs生成一个帧。
音频传输采用了USB提供的一种专用模式:Isochronous(等时/同步传输)。这种模式一定程度上保证数据的实时性与带宽,而没有错误重传。

因为Isochronous本质上是实时传输,前端与后端的时钟需要保持一致,因而有了三种具体如何实现同步的方式:
1)同步 synchronous
2)自适应 adaptive
3)异步 asynchronous

在同步或自适应方式下,界面需要不断调节自己的时钟来跟随前端时钟。
而在异步/ASYNC方式下,USB界面要负责流控:自己决定前端的每个frame中应该发多少数据,使用一条额外的反馈通路将这个信息反馈给前端,前端以此被动“校准”自己的发送速率。
在参考
中也可以看到:对USB的驱动程序来说,异步方式唯一的区别只是 “下一个传输的数据量”的计算方法上有区别。

对数据传输来说,线材的抖动影响几乎可以忽略不计(尽管理论上线路抖动可以引起误码;这不等于线材对声音没有影响,但不是本文的重点);而“异步”的设计理论上又可以消除前端时钟的影响,让DAC完全按自己的时钟自由运行,看起来很美好?
但这里无论是同步还是异步,实际根本上都是“实时传输”。区别只在于系统的哪个环节在主导时钟,然后整个链路如何去做相应的速率匹配/流量控制。







25
 楼主| 发表于 2024-10-10 21:18 | 只看该作者 来自 上海浦东新区
顶一下
回复

使用道具 举报

24
发表于 2024-10-5 22:39 | 只看该作者 来自 中国
好文马克
回复

使用道具 举报

23
 楼主| 发表于 2024-10-5 22:00 | 只看该作者 来自 上海浦东新区
本帖最后由 wxwxwx0 于 2024-10-5 22:01 编辑

对不熟悉这些背景知识的人 这篇科普的信息量确实挺大的。

但假如大家都能搞明白这些关系,这里的很多很多关于数字前端的日经话题都会得到终结(倒不是直接得到结论,而是更容易找对方向),很多吵架都可以省去
回复

使用道具 举报

22
发表于 2024-10-5 21:22 | 只看该作者 来自 江苏南京
看不懂,不过还是点个赞
回复

使用道具 举报

21
发表于 2024-10-4 02:40 来自手机 | 只看该作者 来自 浙江金华
wxwxwx0 发表于 2024-10-3 13:07
开一下嘲讽模式:听得出各种类型线材差异、耳机魔改差异、无损格式差异,却认为软件对声音没有实质影响的: ...

软件肯定有的,我听acg就爱听网易云的调音,foobar听不来,安卓网易云甚至不同版本都会影响声音
回复

使用道具 举报

20
 楼主| 发表于 2024-10-4 02:05 | 只看该作者 来自 上海浦东新区

这里大部分知识其实还是现学现卖的,可以理解成一个综述

我不是音频行业的,倒是有几年网络方面的工作经验(搞路由器交换机这些),然而:

“用网络的方案:我个人倒没什么经验和意见”   

回复

使用道具 举报

19
发表于 2024-10-3 23:42 | 只看该作者 来自 江苏
贴主牛掰炸裂!
我主观感觉坛子里的大家伙多数也许是达到玩器材的“玩家”这一水平,而这里贴主已经上升到在专业领域撰写小型论文的高度了。
贴主这么专业,想来应该是音频行业的从业者,比如工程师一类的人物吧,可以考虑往相应的专业期刊上发一发。
回复

使用道具 举报

18
 楼主| 发表于 2024-10-3 13:07 | 只看该作者 来自 上海浦东新区
本帖最后由 wxwxwx0 于 2024-10-3 13:08 编辑

开一下嘲讽模式:听得出各种类型线材差异、耳机魔改差异、无损格式差异,却认为软件对声音没有实质影响的:在我看来一律属于木耳
回复

使用道具 举报

17
发表于 2024-10-2 23:07 | 只看该作者 来自 广西南宁
HHYYTT 发表于 2024-10-1 11:22
经典物理:只要不是绝对零度,就有布朗运动,啥都有噪声。
量子物理:本没有噪声,是测量导致的噪声

量子物理可不是打禅语,什么叫本没有噪声
回复

使用道具 举报

16
发表于 2024-10-2 22:06 | 只看该作者 来自 上海
好文收藏
回复

使用道具 举报

15
发表于 2024-10-2 14:23 | 只看该作者 来自 香港
支持
回复

使用道具 举报

14
 楼主| 发表于 2024-10-2 13:00 | 只看该作者 来自 上海浦东新区
全文更新完
回复

使用道具 举报

13
发表于 2024-10-2 10:25 来自手机 | 只看该作者 来自 中国
马可一下大作
回复

使用道具 举报

12
发表于 2024-10-1 20:13 | 只看该作者 来自 亚太地区
好帖子,前排支持
回复

使用道具 举报

11
发表于 2024-10-1 12:49 来自手机 | 只看该作者 来自 广东汕头
收藏了,支持lz
回复

使用道具 举报

10
发表于 2024-10-1 11:53 | 只看该作者 来自 广东深圳
HHYYTT 发表于 2024-10-1 11:22
经典物理:只要不是绝对零度,就有布朗运动,啥都有噪声。
量子物理:本没有噪声,是测量导致的噪声

量子物理没啥特殊的,一路探究噪声的原因,最后就会到量子层面
回复

使用道具 举报

9
发表于 2024-10-1 11:22 | 只看该作者 来自 陕西西安
cdzsz67 发表于 2024-10-1 10:58
实际上 01相同党 和误码党的主张,是同一个认识水平的一体两面。处于这个认识水平是会阻碍人真正理解为什么 ...

经典物理:只要不是绝对零度,就有布朗运动,啥都有噪声。
量子物理:本没有噪声,是测量导致的噪声
回复

使用道具 举报

8
发表于 2024-10-1 11:12 来自手机 | 只看该作者 来自 北京
不用研究,听就行了。
回复

使用道具 举报

7
发表于 2024-10-1 10:58 | 只看该作者 来自 广东深圳
实际上 01相同党 和误码党的主张,是同一个认识水平的一体两面。处于这个认识水平是会阻碍人真正理解为什么各种线材都影响声音,乃至玄学影响声音,乃至everthing counts。
但是必须承认绝大多数人还是处于这个认识水平,所以关于周边的话题再过20年恐怕也仍然是一个小众话题。毕竟全人类平均素养的提高肯定是一个漫长的过程。
而除此之外少数认真去学习 调研 实验的人,其观念最后基本都会趋同——噪声影响一切。并且噪声存在于一切环境。
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|粤icp备09046054号|耳机网-耳机大家坛

粤公网安备 44030602000598号 耳机大家坛、www.erji.net、网站LOGO图形均为注册商标

GMT+8, 2024-11-28 07:08

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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