Why is a FLAC encoded from a decoded MP3 bigger than the MP3?

The reason the FLAC is larger than the MP3 of the same data is because they encode differently. :) MP3 just encodes perceptual information, while FLAC stores every single speck of data, just in a more compact format.

  • Converting a WAV to a FLAC is like converting a BMP to a PNG.
    • Same exact pixels, but compressed losslessly like a ZIP file into a smaller size.
  • Converting a WAV to an MP3 is like converting a BMP to a JPEG.
    • Instead of storing exact pixels, it's really storing instructions for generating squares with ripples of color that look kind of like the original.

Similarly, MP3 just stores instructions for generating ripples that, when added together, sound kind of like the original. But the difference between the true signal and the generated signal (the error signal) consists of random noisy artifacts, like JPEG jaggies. When you then store this in a perfectionist format like FLAC, it needs to store all those jaggies, and random noise is harder to compress losslessly, so it increases the size of the file. (Truly random noise is incompressible. When you compress a file losslessly, you're eliminating redundant repeating patterns and making it look more like random noise.)

I bet if you convert the JPEG to PNG you will see the same kind of increase in size as you see when converting MP3 to FLAC, since the perfectionist lossless codec needs to remember every little jaggy and artifact that wasn't in the original bmp.

This analogy isn't perfect, since audio is more like a photo than a line-art diagram, but it helps get the idea across:

Original BMP size: 29 kB

Blue dots in PNG form

PNG size: 629 B

Blue dots in JPEG form with jaggies

JPEG size: 1.7 kB

Blue dots with jaggies re-encoded to PNG

PNG created from JPEG: 6.2 kB


When you decode an MP3, no matter what bitrate, you get standard 1411kbps/44100Hz 16bit (or whatever the source was) PCM audio that has all the noticeable and un-noticeable effects of the lossy encode process, this format is required for playback and encoding/re-encoding, any file of any codec is being decompressed when you play it on your computer, MP3 player, etc.

The FLAC encoder doesn't care if the audio it's compressing came from a decoded MP3 or a brand new CD, it will simply reduce the size of the source file without any change to the audio data, making a full recovery of the source possible, a lossless process.

A FLAC file made from an MP3 will sound exactly like the MP3, a FLAC file made from a CD track will sound exactly like the CD.