音频处理。是否可以直接访问进入计算机模拟输入的解码音频数据

信息处理 声音的 声音 mp3 数模
2022-02-10 02:15:56

当计算机将音频文件从一种文件格式转码为另一种文件格式时,计算机是否首先将其解码为原始数字流(正是输入 DAC 以进行音频输出的内容),还是在无需完全解码的情况下做一些不同的事情它?

以 Spotify 文件为例,我相信它们不是可以在任何设备上播放的标准 MP3 格式。但是,将这些文件转换为标准 MP3 文件,首先解码它们然后重新编码为 MP3 格式,难道不是相对容易吗?

或者它是否需要获取模拟音频,将其转换回数字然后再次编码。我的主要问题是,我们通常可以访问这些原始解码的数字音频数据吗?

2个回答

将 .mp3 音频文件格式转换为 .ra(真实音频)音频文件格式的程序需要将 mp3 文件完全解码为原始波形音频,然后将其重新编码为新格式。

这个原始音频波形数据可以包含在 32/64 位浮点或某些整数格式中。但是当它发送到音频DAC时,它应该是整数格式;这取决于 PC 音频标准,据我所知,Windows(和类似)系统在此阶段使用 8/16 位整数格式(您必须检查他们的开发人员知识库以了解他们的最新实现)

因此,DAC 输入缓冲区中的原始数据与驻留在系统 RAM 中的原始数据之间可能存在非常细微的差异,但它们都是原始波形数据。

然而,除非这两种音频格式有一些共同的设计分层,否则如果不对原始格式进行完全解码,就不可能从一种格式转码到另一种格式。

最后,实际上从不需要模拟音频,因为它会引入更多的错误和复杂性,而不是做任何有用的事情。

您可以通过从任何编码格式转码为 PCM 格式(这是发送到 DAC 的原始波形),然后以新格式重新编码。PCM 始终是编码器的输入和解码器的输出。

大多数感知编解码器,如 MP3、AAC 或 Vorbis(Spotify 使用)都是子带编解码器,理论上可以在子带域中进行转码。然而,魔鬼在细节中,真的不值得付出额外的努力,特别是因为解码/编码快速且超级简单。

如果数字版权管理或其他版权保护功能到位,事情可能会更加复杂。在这种情况下,保留大量 PCM 格式可能是不可能的(或合法的)。