Pour être plus précis que dans le titre, supposons que j'ai un fichier MP3 de 320 kbps. Si je le décompresse, alors logiquement, toutes les données à l'exception d'environ 320 kilobits par seconde d'audio doivent être des données redondantes, pouvant être compressées. Donc, quand j'encode le fichier décompressé en FLAC, ou tout autre codec sans perte, pourquoi est-il si grand?
Sur une note connexe, est-il théoriquement possible de récupérer sans perte l'audio mp3 source à partir d'un wav décompressé? (Je sais que le mp3 lui-même est avec perte. Je demande s'il est possible de ré-encoder sans autre perte.)
EDIT: Permettez-moi de clarifier la question connexe, et la justification derrière elle. Supposons que j'ai un wav qui a été décompressé à partir d'un fichier MP3 (et supposons que je n'ai pas le mp3 lui-même pour une raison quelconque). Si je ne veux plus perdre de qualité, je peux le ré-encoder avec FLAC ou tout autre encodeur sans perte et obtenir un fichier plus gros juste pour maintenir la même qualité. Ou, je peux le réencoder en mp3 à nouveau et obtenir la même taille que l'original mais perdre plus de données. De toute évidence, aucun de ces cas n'est idéal. Je peux avoir la taille d'origine ou la qualité d'origine, mais pas les deux (je veux dire la qualité du mp3 d'origine, pas la source sans perte d'origine). Ma question est: pouvons-nous obtenir les deux? Est-il théoriquement possible de récupérer les données compressées avec perte à partir des données décompressées avec perte, sans en perdre encore plus?
Si c'est possible, je pourrais imaginer un algorithme de compression sans perte qui comprime l'audio avec FLAC. Ensuite, il analyse également l'audio pour détecter tout signe de compression avec perte précédente et, s'il est détecté, le recompresse sans perte dans le fichier avec perte d'origine. Il conserve ensuite le fichier le plus petit.
la source
Réponses:
La raison pour laquelle le FLAC est plus grand que le MP3 des mêmes données est parce qu'elles codent différemment. :) MP3 encode simplement les informations perceptuelles, tandis que FLAC stocke chaque grain de données, juste dans un format plus compact.
De même, MP3 stocke juste des instructions pour générer des ondulations qui, une fois ajoutées, ressemblent un peu à l'original. Mais la différence entre le signal vrai et le signal généré (le signal d'erreur) consiste en des artefacts bruyants aléatoires, comme des jaggies JPEG . Lorsque vous stockez ensuite cela dans un format perfectionniste comme FLAC, il doit stocker tous ces jaggies, et le bruit aléatoire est plus difficile à compresser sans perte, ce qui augmente la taille du fichier. (Le bruit vraiment aléatoire est incompressible. Lorsque vous compressez un fichier sans perte, vous éliminez les motifs répétitifs redondants et le faites ressembler davantage à du bruit aléatoire.)
Je parie que si vous convertissez le JPEG en PNG, vous verrez le même type d'augmentation de taille que vous voyez lors de la conversion de MP3 en FLAC, car le codec perfectionniste sans perte doit se souvenir de chaque petit jaggy et artefact qui n'était pas dans le bmp d'origine.
Cette analogie n'est pas parfaite, car l'audio ressemble plus à une photo qu'à un diagramme au trait, mais il aide à faire passer l'idée:
Taille BMP d'origine: 29 kB
Taille PNG: 629 B
Taille JPEG: 1,7 ko
PNG créé à partir de JPEG: 6,2 kB
la source
Lorsque vous décodez un MP3, quel que soit le débit binaire, vous obtenez un son PCM standard à 1411 kbit / s / 44 100 Hz (ou quelle que soit la source) qui possède tous les effets visibles et non visibles du processus d'encodage avec perte, ce format est requis pour la lecture et encodage / ré-encodage, tout fichier de n'importe quel codec est décompressé lorsque vous le lisez sur votre ordinateur, lecteur MP3, etc.
L'encodeur FLAC ne se soucie pas si l'audio en cours de compression provient d'un MP3 décodé ou d'un tout nouveau CD, il réduira simplement la taille du fichier source sans aucune modification des données audio, ce qui rendra possible une récupération complète de la source, un processus sans perte.
Un fichier FLAC créé à partir d'un MP3 sonnera exactement comme le MP3, un fichier FLAC créé à partir d'une piste de CD sonnera exactement comme le CD.
la source
Pour répondre à la deuxième partie, si vous vous convertissez à nouveau en WAV à partir du MP3, puis choisissez un encodeur sans perte, vous devriez avoir un fichier de qualité identique lorsque vous avez terminé.
Quant à savoir pourquoi le FLAC est plus grand que le MP3, vous prenez l'un des formats les plus compressés, le décompressez, puis le recompressez dans un outil de compression moins efficace (mais avec une qualité de lecture plus élevée).
C'est un peu comme demander pourquoi la conversion d'un JPG en PNG l'agrandit - vous décompressez [partiellement] le fichier, puis recompressez sans perte. FLAC, comme PNG, n'est pas optimisé pour l' espace , mais pour la qualité .
la source
mp3 demande qu'un décodeur soit lisible, le résultat du décodeur est une approximation de la piste originale (généralement à partir d'un CD), donc le décodeur ajoute des données pour le rendre lisible (et ce ne sont pas des données absurdes). L'approximation résultante a obtenu le même débit binaire que la piste d'origine. Sans décodage du mp3, les informations n'ont aucun sens, elles ne peuvent donc pas être converties en autre chose (à moins d'un encodage très similaire, comme un stéréo-mp3 en 2X mono-mp3). Et FLAC et mp3 ne sont même pas proches de similaires. Lorsque vous décodez un FLAC, le résultat n'est pas une approximation des données d'origine codées dans FLAC, mais c'est exactement la même chose.
la source