为什么从解码MP3编码的FLAC比MP3大?


13

为了比标题更精确,假设我有一个320 kbps的MP3文件。如果我将其解压缩,那么从逻辑上讲,每秒钟音频中除了大约320 kb以外的所有数据都应该是冗余数据,可以压缩掉。因此,当我将解压缩的文件编码为FLAC或任何其他无损编解码器时,为什么它这么大?

与此相关的是,理论上是否有可能从解压缩的WAV中无损恢复源mp3音频?(我知道mp3本身是有损的。我在问是否有可能重新编码而不会造成任何进一步的损失。)

编辑:让我澄清相关的问题,以及其背后的理由。假设我有一个从MP3文件解压缩的wav(并假设由于某种原因我自己没有mp3)。如果我不想再失去任何质量,可以使用FLAC或任何其他无损编码器对其进行重新编码,并获得更大的文件以保持相同的质量。或者,我可以再次将其重新编码为mp3,并获得与原始文件相同的大小,但丢失更多数据。显然,这些情况都不是理想的。我既可以具有原始大小,也可以具有原始质量,但不能同时具有两者(我的意思是原始mp3的质量,而不是原始无损音源)。我的问题是:我们可以两者兼得吗?从理论上讲是否有可能从有损解压缩数据中恢复有损压缩数据,而又不会损失更多?

如果有可能,我可以想象一种无损压缩算法,该算法可以使用FLAC压缩音频。然后,它还会扫描音频以查找先前有损压缩的任何迹象,如果检测到,则将其无损压缩为原始有损文件。然后,它将保留较小的文件。


这是我最喜欢的翻录和编码音频的指南。享受,这是一本很棒的书:mp3.radified.com

2
解码器不会简单地用无意义的位填充320kb到1411kb的空间,PCM文件的比特率由每个样本的比特值,通道数和采样率决定。对于标准CD音频,这是(2通道)*(44.1KHz采样率)*(16比特/样本)= 1411kbps。
2009年

很简单,MP3已压缩,FLAC未压缩。转换时,它将解压缩MP3数据。
摩押人2012年

2
那是错的。FLAC是一种音频压缩格式。
瑞安·汤普森

Answers:


31

FLAC大于相同数据的MP3的原因是因为它们编码不同。:) MP3只是对感知信息进行编码,而FLAC仅以更紧凑的格式存储每个数据斑点。

  • 将WAV转换为FLAC就像将BMP转换为PNG。
    • 相同的像素,但像ZIP文件一样无损压缩成较小的尺寸。
  • 将WAV转换为MP3就像将BMP转换为JPEG。

同样,MP3只是存储用于生成波纹的指令,这些波纹加在一起后听起来就像原始的一样。但是真实信号与生成信号(误差信号)之间的差异由随机的噪声伪像组成,例如JPEG锯齿。然后,当您以FLAC之类的完美主义者格式存储该文件时,它需要存储所有这些锯齿,并且随机噪声很难无损压缩,因此会增大文件的大小。(真正的随机噪声是不可压缩的。无损压缩文件时,您将消除多余的重复模式,使其看起来更像随机噪声。)

我敢打赌,如果将JPEG转换为PNG,则会看到与将MP3转换为FLAC时一样的大小增加,因为完美主义者无损编解码器需要记住原始bmp中没有的所有锯齿和瑕疵。

这个比喻不是完美的,因为音频更像是一张照片,而不是线条图,但它有助于使想法更清晰:

原始BMP大小:29 kB

PNG格式的蓝点

PNG尺寸:629 B

带有锯齿的JPEG形式的蓝点

JPEG大小:1.7 kB

带有锯齿的蓝点重新编码为PNG

从JPEG创建的PNG:6.2 kB


3
但是,当然,一旦将文件转换为JPG,数据就会丢失,并且无法通过转换为PNG进行恢复。如果FLAC / PNG中有更多数据,则很多数据都是虚构的。
pavium

1
是。有意义的数据会丢失,并且会创建错误的数据。
Endolith's

1
在endolith的示例图中清楚地说明了这一点。
hplbsh

1
这是一个非常彻底的答案。不错的工作!
cowgod

1
你是对的。我不知道我在想什么。
凯文·潘科

2

解码MP3时,无论哪种比特率,您都将获得标准的1411kbps / 44100Hz 16bit(或任何来源)的PCM音频,该音频具有有损编码过程的所有明显和不明显的效果,此格式对于播放和编码/重新编码,在您的计算机,MP3播放器等上播放任何编解码器的任何文件时,都会对其进行解压缩。

FLAC编码器不在乎它压缩的音频是来自解码的MP3还是全新的CD,它只会减小源文件的大小而不会更改音频数据,从而可以完全恢复源,一个无损的过程。

用MP3制成的FLAC文件听起来完全像MP3,用CD音轨制成的FLAC文件听起来完全像CD。


0

要回答第二部分,如果您从MP3转换回WAV,然后选择无损编码器,则完成后应该有一个质量相同的文件。

至于为什么FLAC比MP3大,您将采用一种压缩率更高的格式,将其解压缩,然后使用效率较低的压缩工具将其重新压缩(尽管播放质量更高)。

这有点像问为什么将JPG转换为PNG会变得更大-您正在[部分]解压缩文件,然后以无损方式重新压缩。像PNG一样,FLAC并非针对空间进行了优化,而是针对质量进行了优化。


FLAC(和PNG)是无损的,因此说对质量进行了优化是没有意义的。
阿金·埃洛夫森

3
@Joakim:无损==最大质量,因此无损格式根据定义针对质量进行了优化。
2009年

2
根据定义,这就是我的观点,因此没有优化。如果定义是最高质量,那么没有什么要优化的
乔基姆·埃洛夫森

0

mp3要求解码器可播放,解码器的结果是原始音轨的近似值(通常来自CD),因此解码器会添加数据使其可播放(这不是废话)。所得近似值的比特率与原始轨道相同。如果不对mp3进行解码,则该信息将毫无意义,因此无法转换为其他任何信息(除非非常相似的编码,如立体声mp3到2X mono-mp3)。与FLAC和mp3几乎不相似。当对FLAC进行解码时,结果不是编码为FLAC的原始数据的近似值,而是完全相同。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.