找回密码
 -注册-
楼主: 魔神Z
打印 上一主题 下一主题

其实为什么有很多人觉得数字传输不会错,问题就在这里

[复制链接]
141
 楼主| 发表于 2021-1-8 17:23 | 只看该作者 来自 湖北武汉
jhj 发表于 2021-1-8 17:15
Hugo2是解码器不带录音功能
但是有不少USB声卡是带录音功能接麦克风的,当然可以回传数据给电脑。

这个是我讲错了,我的意思是,传过去了再传回来校正
回复

使用道具 举报

142
 楼主| 发表于 2021-1-8 17:29 | 只看该作者 来自 湖北武汉
jimmyxzy 发表于 2021-1-8 17:18
就算出错误码了,难道还是有固定规律? 什么这根线这样,那根线那样。

饭一口一口吃,先要讨论会不会错,再讨论线的问题,现在有不少人一口咬定USB不会出错,总有人说认为会出错是老烧不懂常识,不懂电路,不懂计算机,不懂信号,不懂USB 所以我也在查找相关知识 说白了我也不是砖家,但是至少说出来的话得有点依据
回复

使用道具 举报

143
发表于 2021-1-8 17:44 来自手机 | 只看该作者 来自 陕西西安
用高层的TCP与UDP协议说好理解,物理层数字传输一般都是带校验位的,比如八个波形,第九个波形就是校验位。校验出错了如何处理?一种是丢弃,一种是重新传送,物理层一般就丢弃了。
发送端如何知道接收错误要求从发的?一般发送的时候除了数据包,还要应答包,监控包,接收端如果发现错误,发送应答包给发送端要求重发。
TCP协议是可靠的连接协议,可以认为是传输要求100%正确,因为在IP层会有校验纠错(就是重发了)机制,那么是不是有了TCP就能正确接收文件,肯定不是,文件数据里面的0,1可不是物理传输的波形0,1文件的0,1要占8位,八个波形的,bit与byte的概念。TCP要正确接收成数据文件,软件上还要特殊处理,因为网络传输会有粘包现象。
那么UDP作为不可靠的协议,是不是就会传输错误?那可不一定,发的慢,收的快就不会出错,快慢不匹配也行,软件上可以自己做出纠错的。

归根结底还是USB传输音频,虽然不用校验纠错(有校验位,不纠错重传),到底会不会发生传输错误?这才是问题的核心。说了一堆其它的都是在敲边鼓,绕圈圈。
回复

使用道具 举报

144
发表于 2021-1-8 17:44 | 只看该作者 来自 贵州贵阳
魔神Z 发表于 2021-1-8 17:23
这个是我讲错了,我的意思是,传过去了再传回来校正

???为什么要传回校正
数据包内自带校验码,正确不正确,USB界面接收到一比对校验码就知道了,完全没有传回的必要啊?
而且USB音频数据包一旦校验没通过直接丢弃,不重传,这也是USB标准协议内就写清楚的。
当然,要是需要额外装驱动的那种USB解码,就可能在驱动内做一些额外的软件应用层补充协议,那就不一样了。
回复

使用道具 举报

145
发表于 2021-1-8 17:46 | 只看该作者 来自 澳门
xiaotan02 发表于 2021-1-8 10:09
其实好的cd,同步解码情况下声音可以更鲜活
相比异步解码和一些数播,0和1大家都一样,就是时间相位差异影 ...

同步跟异步不是指大家的时间相位一不一样. 是如何控制资料流. 同步USB比异步USB更早出现, 质素更差.
回复

使用道具 举报

146
发表于 2021-1-8 17:48 | 只看该作者 来自 美国
本帖最后由 tyj518 于 2021-1-8 17:53 编辑
魔神Z 发表于 2021-1-8 17:13
那我就问你一个问题了,你能把DA的音频文件往回传吗? 除了那种雷电3的界面,USB界面你见过哪个是能把东 ...

我又查了一下,USB Audio Class标准当中要求音频流按照isochronous方式传输,这种传输方式从设计上来看是不支持重传的,更注重数据的连续性和实时性而非正确性。如果要求USB音频传输支持重传,那么正规方法是走bulk方式传输,很大程度上牺牲掉连续性和实时性,当然或许也可以用一些标准外的技巧间接在isochronous方式下实现比较有限的重传。

说白了,USB本身链路层是自带校验的,但这个校验在USB Audio Class标准中基本不发挥作用。至于USB传输音频流本身误码率能有多少,最直接的办法是用实验去验证。
回复

使用道具 举报

147
 楼主| 发表于 2021-1-8 17:52 | 只看该作者 来自 湖北武汉
jhj 发表于 2021-1-8 17:44
???为什么要传回校正
数据包内自带校验码,正确不正确,USB界面接收到一比对校验码就知道了,完全没 ...

如果不回传信号,主机端又是如何重新发,如果主机又没有重发机制,那么加个CRC又有啥用呢,循环冗余校验 ,就是效验了错了,重新发个信号回去,你给我重新发一个,主机我知道了我给你重新补一个,如果再错了,再发个信号 主机我重新发,我就不知道你硬要给音频信号加循环冗余校验 有啥意义,即没有回馈信号,又不重新发数据,而且效验要时间的,你认为是接收端直接自己跟自己效验吗? 我不知道是你理解错了,还是我理解错了
回复

使用道具 举报

148
发表于 2021-1-8 17:57 | 只看该作者 来自 美国
魔神Z 发表于 2021-1-8 17:52
如果不回传信号,主机端又是如何重新发,如果主机又没有重发机制,那么加个CRC又有啥用呢,循环冗余校验  ...

USB链路层是不知道你发的数据到底是音频数据还是其它数据的,因此它会统一地给所有packet加校验。
回复

使用道具 举报

149
发表于 2021-1-8 18:00 | 只看该作者 来自 贵州贵阳
魔神Z 发表于 2021-1-8 17:29
饭一口一口吃,先要讨论会不会错,再讨论线的问题,现在有不少人一口咬定USB不会出错,总有人说认为会出 ...

前面很多人都说过了,USB音频是有校验无纠错无重传的机制,用网络协议比喻就是类似于UDP。
发送端不断按照固定速率往外发送UDP包,接受端只管接收,并且根据校验结果判断包是否有效,无效则丢弃。

数字协议很容易保证传输的内容正确无误的,这是数字传输的一个特点。
影响数字音频音质的因素,都是在0、1之外的那些东西。
就好像CD头版的音质可能比后期的更好,哪怕抓轨后的内容完全一样,刻录碟也会比原版音质差。
这些都是0、1之外的东西带来影响的结果。

比如USB线材会影响到USB界面接受到的数字信号的眼图好坏。
但只要不是特别糟糕,就不会导致误码,可现实中眼图质量高低却会带来USB解码后声音的音质差异。
回复

使用道具 举报

150
发表于 2021-1-8 18:03 | 只看该作者 来自 贵州贵阳
魔神Z 发表于 2021-1-8 17:52
如果不回传信号,主机端又是如何重新发,如果主机又没有重发机制,那么加个CRC又有啥用呢,循环冗余校验  ...

校验不通过,直接丢弃这个数据包,音频中以0填充啊,实际听到就是一个跳音(除了嘈杂的重金属摇滚之类不一定能听出,别的大多数音乐都能听出来)。
CD碟片即使带了纠错,依然会碰到大的划痕导致纠错失败,一样会跳音的,一回事。
回复

使用道具 举报

151
发表于 2021-1-8 18:05 | 只看该作者 来自 澳门
我不认为USB的差异在于误码.

但以事轮事, 如果一条合格的USB线, 是完美传输(CRC完美). 那就可达最大理论速度. 是每条线都可以. 不可能有不一样速度的线的存在.(你觉得呢?)

另外以CPU速度轮USB音频的传输是不是有点奇怪... 即是我用 i9 10900K 就可以加快 56K modem 的传输速度或者使 56K modem 运行得更完美???? ERROR会更少???

压根USB音频的资料流, 是由时钟去决定的(同步就是由电脑决定, 异步就由XMOS决定). 你3秒的USB速度可以把整首歌传送完毕, 但是, USB只能给你缓传几百MS. 这是协定. 不明白吗?

等于这有3亿的现金送到你家门口, 问题是你只能用一双手去接, 就只能接这么多. 你再多的现金, 再快的快弟. 都没有用. 你只有一双手, 而这双手还会跌钱...
回复

使用道具 举报

152
发表于 2021-1-8 18:13 | 只看该作者 来自 广东深圳
本帖最后由 chn-gm 于 2021-1-8 18:17 编辑
jhj 发表于 2021-1-8 16:05
异步协议传输本来就乱序,插队是必然的,所以缓冲Buffer的建立和管理才有必要性啊。
整个插队管理维护的 ...

这样说的话、就是数据缓存越大越好、最好是能把整首歌的数据都存进去、然后重整好再传出去解码,这样至少能保证不会产生接收之后的错误、就连时钟精度都是一样。

这样的话、播放软件里的输出缓冲不就是没用了吗,设置为0应该就是最本源的输出、输出的是重整数据缓存里的数据之后的源数据;

这样、我就又有一个疑问了,为什么foobar、hqplayer这些软件的是输出缓冲最低不是0呢,难道是因为设置为0就变成同步传输一样的性质了、处理起来比较吃力?
可是也不对啊、现在的处理器能力都超强的,就16bit 44.1K、每秒1.4112Mb的数据量算什么,除非是放超高码率的DSD或者母带。

数据缓存超大、输出缓冲为0的话,会影响的就只有处理器或者是处理算法的时钟精度了,不就可以把影响因素减到最少了吗,为什么那些软件不这样做呢,想不明白、求解答!
回复

使用道具 举报

153
发表于 2021-1-8 18:15 | 只看该作者 来自 美国
chn-gm 发表于 2021-1-8 18:13
这样说的话、就是数据缓存越大越好、最好是能把整首歌的数据都存进去、然后重整好再传出去解码,这样至少 ...

USB发送数据的时钟和音频时钟频率不同,为了保证二者能同步,缓存应该是必须的。
回复

使用道具 举报

154
 楼主| 发表于 2021-1-8 18:16 | 只看该作者 来自 湖北武汉
jhj 发表于 2021-1-8 18:00
前面很多人都说过了,USB音频是有校验无纠错无重传的机制,用网络协议比喻就是类似于UDP。
发送端不断按 ...

我大致是明白你的意思了,你的意思其实一部分跟我一样的,就是错了,但是接收端知道错了。然后去校正补好,不由主机传,由接受端去FPGA校正对吧,是的理论没有错,但是结论有点问题。
我想这个图能解答你的问题
回复

使用道具 举报

155
发表于 2021-1-8 18:17 | 只看该作者 来自 美国
本帖最后由 tyj518 于 2021-1-8 18:19 编辑
魔神Z 发表于 2021-1-8 18:16
我大致是明白你的意思了,你的意思其实一部分跟我一样的,就是错了,但是接收端知道错了。然后去校正补好 ...

传错了接收端是不校正的,只是整个packet的数据用全零代替。
回复

使用道具 举报

156
发表于 2021-1-8 18:20 | 只看该作者 来自 广东深圳
tyj518 发表于 2021-1-8 18:15
USB发送数据的时钟和音频时钟频率不同,为了保证二者能同步,缓存应该是必须的。

缓存是必须的;就像军队里的重新整队、保持阵型。
所以 缓存做得超大、比如1G2G、甚至4G,然后在缓存里用一个时钟信号再重整数据、不就把前端的影响给消除了吗;为什么厂家不这样干呢、想不明白。
回复

使用道具 举报

157
发表于 2021-1-8 18:22 | 只看该作者 来自 贵州贵阳
chn-gm 发表于 2021-1-8 18:13
这样说的话、就是数据缓存越大越好、最好是能把整首歌的数据都存进去、然后重整好再传出去解码,这样至少 ...

因为你的电脑不是只在干播放音乐这一件事。
Windows操作系统本身也并不是一个“实时”的操作系统,后台跑着无数线程进程,都可能干扰到这些音乐播放软件几个ms。
如果缓冲为0,那么这种干扰就会非常容易变成真正的跳音,体验就很糟糕了。
或多或少保证有个缓冲区在输出口那里排队预先等着,就能尽可能的减少这种干扰的情况发生。
当然,部分烧友会去装一台专门播放音乐的电脑,甚至操作系统都不用Windows而是用Linux甚至专用的音频播放操作系统,就是为了减少这样的干扰,让音乐更稳定和纯净。
回复

使用道具 举报

158
 楼主| 发表于 2021-1-8 18:22 | 只看该作者 来自 湖北武汉
tyj518 发表于 2021-1-8 18:17
传错了接收端是不校正的,只是整个packet的数据用全零代替。

对啊,我的意思就是如此,所以如果不进行回传重发 ,是不可能保证完全一样的,替代可以保证正常运行,但是不能保证数据都是跟原始数据一样,所以声音是不是跟原始的一样,也是无法保证的。在设计上应该是认为,声音是连续的允许有误差,即使是跟原始信号有误差,并不影响,但是高保真的想法是背道而驰的
回复

使用道具 举报

159
发表于 2021-1-8 18:23 | 只看该作者 来自 美国
chn-gm 发表于 2021-1-8 18:20
缓存是必须的;就像军队里的重新整队、保持阵型。
所以 缓存做得超大、比如1G2G、甚至4G,然后在缓存里 ...

超大缓存很贵的,另外缓存越大延迟越大。或者你就用复制文件的方式按USB全速拷到缓存里,那其实就和数播类似了。
回复

使用道具 举报

160
发表于 2021-1-8 18:26 | 只看该作者 来自 美国
本帖最后由 tyj518 于 2021-1-8 18:31 编辑
魔神Z 发表于 2021-1-8 18:22
对啊,我的意思就是如此,所以如果不进行回传重发 ,是不可能保证完全一样的,替代可以保证正常运行,但 ...

你就是加了重传,理论上也不能保证数据百分百一样,只不过可能是把误码率从10^(-12)降到10^(-15)而已。至于是否高保真,按目前的技术来看高保真的瓶颈远不在USB音频传输的误码上。
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-24 06:34

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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