Por que um FLAC codificado a partir de um MP3 decodificado é maior que o MP3?

13

Para ser mais preciso do que no título, suponha que eu tenha um arquivo MP3 de 320 kbps. Se eu descompactá-lo, logicamente, todos os dados, com exceção de aproximadamente 320 kilobits de cada segundo de áudio, deverão ser dados redundantes, capazes de serem compactados. Então, quando codifico o arquivo descompactado para FLAC ou qualquer outro codec sem perdas, por que ele é muito maior?

Em uma nota relacionada, é teoricamente possível recuperar sem perdas o áudio mp3 de origem de um wav descomprimido? (Eu sei que o mp3 em si está com perdas. Estou perguntando se é possível recodificar novamente sem mais perdas.)

EDIT: Deixe-me esclarecer a questão relacionada e a lógica por trás dela. Suponha que eu tenha um wav que foi descompactado de um arquivo MP3 (e suponha que eu não possua o mp3 em si por algum motivo). Se não quiser perder mais qualidade, posso recodificá-lo com FLAC ou qualquer outro codificador sem perdas e obter um arquivo maior apenas para manter a mesma qualidade. Ou posso recodificá-lo para mp3 novamente e obter o mesmo tamanho do original, mas perdendo mais dados. Obviamente, nenhum desses casos é o ideal. Posso ter o tamanho original ou a qualidade original, mas não ambos (quero dizer a qualidade do mp3 original, não a fonte original sem perdas). Minha pergunta é: podemos obter os dois? É teoricamente possível recuperar os dados compactados com perdas dos dados descompactados, sem perder ainda mais?

Se possível, eu poderia imaginar um algoritmo de compactação sem perdas que comprime o áudio com FLAC. Em seguida, também verifica o áudio quanto a sinais de compactação com perdas anterior e, se detectado, o compacta sem perdas para o arquivo com perdas original. Em seguida, ele mantém o arquivo que for menor.

Ryan C. Thompson
fonte
Aqui está o meu guia favorito para extrair e codificar áudio. aproveite, é uma excelente leitura: mp3.radified.com
2
O decodificador não suporta apenas 320kb até 1411kb com bits sem sentido; a taxa de bits de um arquivo PCM é fornecida pelo valor bit por amostra, pelo número de canais e pela taxa de amostragem. Para o áudio padrão do CD, este é (2 canais) * (taxa de amostragem de 44,1 KHz) * (16 bits por amostra) = 1411kbps.
Skelly
Simples, o MP3 é compactado, o FLAC não é compactado. Quando você converte, descomprime os dados MP3.
Moab
2
Isso esta errado. FLAC é um formato de compactação de áudio.
Ryan C. Thompson

Respostas:

31

A razão pela qual o FLAC é maior que o MP3 dos mesmos dados é porque eles codificam de maneira diferente. :) O MP3 apenas codifica informações perceptivas, enquanto o FLAC armazena todos os dados, apenas em um formato mais compacto.

  • Converter um WAV em um FLAC é como converter um BMP em um PNG.
    • Os mesmos pixels exatos, mas compactados sem perdas como um arquivo ZIP em um tamanho menor.
  • Converter um WAV em um MP3 é como converter um BMP em um JPEG.

Da mesma forma, o MP3 apenas armazena instruções para gerar ondulações que, quando somadas, soam como o original. Mas a diferença entre o sinal verdadeiro e o sinal gerado (o sinal de erro) consiste em artefatos ruidosos aleatórios, como jaggies JPEG . Quando você armazena isso em um formato perfeccionista como o FLAC, ele precisa armazenar todos esses pedaços irregulares, e o ruído aleatório é mais difícil de compactar sem perdas, aumentando o tamanho do arquivo. (Ruído verdadeiramente aleatório é incompressível. Ao compactar um arquivo sem perdas, você elimina padrões de repetição redundantes e faz com que pareça mais com ruído aleatório.)

Aposto que se você converter o JPEG para PNG, verá o mesmo tipo de aumento de tamanho que vê ao converter MP3 para FLAC, já que o codec perfeccionista sem perdas precisa se lembrar de todos os pequenos detalhes irregulares e artefatos que não estavam no bmp original.

Essa analogia não é perfeita, pois o áudio se parece mais com uma foto do que com um diagrama de arte de linha, mas ajuda a transmitir a ideia:

Tamanho original do BMP: 29 kB

Pontos azuis no formato PNG

Tamanho PNG: 629 B

Pontos azuis em formato JPEG com jaggies

Tamanho JPEG: 1,7 kB

Pontos azuis com recortes codificados para PNG

PNG criado a partir de JPEG: 6.2 kB

endólito
fonte
3
Mas é claro que depois que um arquivo é convertido em JPG, os dados são perdidos e não podem ser recuperados com a conversão em PNG. Se houver mais dados no FLAC / PNG, muitos deles serão fictícios.
Pavium 30/10/09
1
Sim. Dados significativos são perdidos e dados errados são criados.
Endolith 30/10/09
1
Isso é claramente ilustrado nos diagramas de exemplo do endólito.
Hplbsh 30/10/09
1
Esta é uma resposta incrivelmente completa. Bom trabalho!
deus vaca
1
Você está certo. Não sei o que estava pensando.
precisa
2

Ao decodificar um MP3, independentemente da taxa de bits, você obtém o áudio PCM padrão de 1411kbps / 44100Hz 16 bits (ou qualquer que seja a fonte) que possui todos os efeitos perceptíveis e não perceptíveis do processo de codificação com perdas, esse formato é necessário para a reprodução e codificação / recodificação, qualquer arquivo de qualquer codec está sendo descompactado quando você o reproduz no computador, no MP3 player etc.

O codificador FLAC não se importa se o áudio que está sendo compactado for proveniente de um MP3 decodificado ou de um CD novinho em folha. Ele simplesmente reduzirá o tamanho do arquivo de origem sem nenhuma alteração nos dados de áudio, possibilitando uma recuperação completa da fonte, um processo sem perdas.

Um arquivo FLAC feito a partir de um MP3 soará exatamente como o MP3, um arquivo FLAC feito a partir de uma faixa de CD soará exatamente como o CD.

skelly
fonte
0

Para responder à parte dois, se você converter de volta para um WAV a partir do MP3 e escolher um codificador sem perdas, deverá ter um arquivo de qualidade idêntica ao concluir.

Quanto ao motivo pelo qual o FLAC é maior que o MP3, você está pegando um dos formatos mais compactados, descompactando-o e recomprimindo-o em uma ferramenta de compactação menos eficiente (embora com uma qualidade de reprodução mais alta).

É como perguntar por que converter um JPG em PNG aumenta - você está [descompactando] parcialmente o arquivo e depois recompactando-o sem perdas. FLAC, como PNG, não é otimizado para espaço , mas para qualidade .

Warren
fonte
FLAC (e PNG) são sem perdas, portanto, dizer que esses são otimizados para qualidade não faz sentido.
Joakim Elofsson
3
@ Joakim: lossless == max quality, assim os formatos sem perdas são otimizados para qualidade por definição .
quack quixote
2
esse é o meu ponto, por definição, para que não haja otimização. se o defintion é a qualidade máxima, então não há nada para otimizar
Joakim Elofsson
0

mp3 exige que um decodificador seja reproduzível, o resultado do decodificador é uma aproximação da faixa original (geralmente de um CD); portanto, o decodificador adiciona dados para torná-lo reproduzível (e não são dados sem sentido). A aproximação resultante obteve a mesma taxa de bits que a faixa original. Sem decodificar o mp3, a informação não faz sentido; portanto, não pode ser convertida em mais nada (a menos que seja uma codificação muito semelhante, como estéreo-mp3 para 2X mono-mp3). E FLAC e mp3 não é nem um pouco parecido. Ao decodificar um FLAC, o resultado não é uma aproximação dos dados originais codificados no FLAC, mas é exatamente o mesmo.

Joakim Elofsson
fonte