我最初在Signal Processing上问过这个问题,但这不是主题。所以,就在这里!
我尝试从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 ......
为什么?