ypn*_*nos 38
好的 CD 开膛手软件,例如cdparanoia尽力纠正 CD 的错误读数,并且会多次检查受影响的部分;有时需要几分钟,直到数据恢复。这是可能的,因为 CD 包含用于纠错的校验和,应该立即检测到误读。
由于这种策略,CD ripper 软件恢复正确数据的机会比设计为实时播放的典型 CD 播放设备高得多。
在极少数情况下,一部分数据(在您的示例中是音频)仍然无法读取,开膛手通常会跳过该段。因此,对于编码的 MP3 文件,它将跳过坏部分(可以在生成的音频文件中插入或在听觉上跳过)。
Law*_*ceC 14
MP3 文件格式由帧组成。每个帧以 11 个“1”位开始,还有几个字节的元数据控制比特率并定义一些其他属性。每个帧都是独立的,它被设计为支持流媒体。
帧可以有一个 CRC - 一种错误检查。它是可选的。
如果操作系统在 CD 上遇到坏扇区,它可能会重试读取(CD 硬件在 MP3 编码器甚至看到任何东西之前都有自己的错误检查机制)。假设解码器不在缓冲区中工作,解码器在此过程中将不会接收新数据并且必须停止。如果操作系统无法读取数据,它可能会向操作系统报告错误,该错误最终会报告给托管 MP3 编码器的进程。取决于软件在这里究竟发生了什么。
如果 CD 中的数据被错误读取并仍然进入解码器,则可能会发生几种情况(这可能不会发生在 PC 上,但可能发生在汽车音响或其他非 PC 设备中):
MP3 解码器查找这 11 个 1 位以找到帧的开头 - 如果找不到它们,它可能会在下一帧之前停止解码。
如果头数据不好,它可能会以错误的比特率播放帧,因为指示哪个比特率可能是错误的字节。
如果设置了标头 CRC 位并且 CRC 不匹配,则解码器可能会丢弃该帧而不播放它。大多数 MP3 文件没有设置 CRC 位。
如果有效载荷(标头后的数据)错误,MP3 解码器将尝试播放它。
解码器的工作是获取压缩数据并生成未压缩数据以移交给“更高”级别。上层实际上使用未压缩的数据来驱动音频设备。我猜测大多数编码器/音频驱动程序设置都有一个缓冲区 - 具有可配置的大小 - MP3 解码器可以在其中为音频驱动程序构建一些数据并允许重试读取。
因此,无论如何,如果解码器由于未获取数据而停止,则实际驱动音频的上层可能会执行以下任何操作:
如果解码器输出错误数据,您将在音频中听到静电干扰或爆破音。
参考。
| 归档时间: |
|
| 查看次数: |
5525 次 |
| 最近记录: |