0

我最初在信号处理上问了这个问题,但它离题了。所以,就这样吧!

我尝试从 Audacity 导出录音两次,每次都使用相同的参数和标签。结果文件有不同的校验和。所以我打开了两个文件的差异(作为二进制文件)。

我的第一次尝试是一个包含 32 位浮点 PCM 的 wav 文件。整个文件中只有 3 位不同。

0000003c: 01000000 01001001 01110000 01010111 01001100 11100111  @IpWL.

变成了

0000003c: 01000111 01001001 01110000 01010111 01001100 11100111  GIpWL.

我的第一个问题是:这三个位是做什么用的?

然后我用 flac 文件尝试了同样的过程。我不会在这里粘贴它,因为它会太长,但发生的情况是,在文件的开头,这里和那里只有一些差异,但是在文件中我得到的越远越明显文件不同。

这是为什么?flac压缩算法不是确定性的吗?

最后,我获取了一个包含 16 位签名 PCM 的 wav 文件并将其转换为 16 位签名的 flac 文件,然后再转换回 wav。我获得的文件与原始文件非常相似,但似乎数据偏移了 33 个字节,从这些文件样本中可以看出:

原始文件:

00000294: 11111110 11111111 11111111 11111111 11111101 11111111  ......
0000029a: 11111011 11111111 11111100 11111111 11111110 11111111  ......
000002a0: 00000000 00000000 11111011 11111111 00000000 00000000  ......
000002a6: 00000001 00000000 00000010 00000000 00000001 00000000  ......
000002ac: 11111101 11111111 11111110 11111111 11111100 11111111  ......
000002b2: 11111100 11111111 11111101 11111111 11111101 11111111  ......
000002b8: 00000001 00000000 00000010 00000000 11111100 11111111  ......
000002be: 11111100 11111111 11111011 11111111 11111010 11111111  ......
000002c4: 00000010 00000000 00000010 00000000 00000000 00000000  ......

新文件:

000002b2: 00000011 00000000 00000011 00000000 11111110 11111111  ......
000002b8: 11111111 11111111 11111101 11111111 11111011 11111111  ......
000002be: 11111100 11111111 11111110 11111111 00000000 00000000  ......
000002c4: 11111011 11111111 00000000 00000000 00000001 00000000  ......
000002ca: 00000010 00000000 00000001 00000000 11111101 11111111  ......
000002d0: 11111110 11111111 11111100 11111111 11111100 11111111  ......
000002d6: 11111101 11111111 11111101 11111111 00000001 00000000  ......
000002dc: 00000010 00000000 11111100 11111111 11111100 11111111  ......
000002e2: 11111011 11111111 11111010 11111111 00000010 00000000  ......

为什么?

4

0 回答 0