Comprendre la conversion et la (dé) compression de l'audio sans perte

12

J'ai quelques questions concernant l'audio sans perte. J'envisage d'extraire toute ma collection de musique en .flac sans perte, mais je veux d'abord comprendre certaines choses à ce sujet.

Si j'ai un fichier .flac et que je veux en faire, disons, .wav, comment puis-je faire pour ne pas avoir de perte de qualité? Si je le décompresse, je sais que je ne perdrai pas de qualité. La conversion de .flac en .wav équivaut-elle à la décompression?

Est-ce que cela s'applique également au format .ape? J'ai quelques enregistrements du domaine public que j'ai téléchargés en .ape, mais je veux en faire .flac. Serait-il possible de .ape vers .flac sans utiliser .wav comme intermédiaire. Je veux m'assurer que même pas un peu ne soit perdu en aucune façon.

De plus, s'il existe des guides qui expliquent parfaitement le monde de la perte sans perte, quelqu'un serait-il disposé à partager un lien? :)

Ryan McClure
la source

Réponses:

14

Premier:

Comprendre la différence entre un codage et un format de conteneur . http://en.wikipedia.org/wiki/Digital_container_format

Un format de conteneur est un format de données qui "encapsule" d'autres données codées. Il contient souvent des "méta-informations" sur les données encodées, ou a un moyen de stocker plusieurs flux séparés de données encodées, ou quelque chose comme ça.

Un codage, produit par un codec, est la "viande" réelle du flux de données.

L'exemple le plus courant auquel je peux penser est le format "Ogg / Vorbis". Ogg est le format du conteneur et Vorbis est le codage. Vous avez donc un fichier au format Ogg et à l'intérieur de ces petits compartiments qui contiennent des données codées. Dans chaque compartiment se trouve un flux de données codé Vorbis et rien d'autre. Sur le seau peut être estampillé le nom de l'artiste et le titre de la chanson, par exemple.

Revenons donc à la technologie:

  1. Si vous avez déjà de la musique dans un format avec perte, tel que mp3 ou ogg / vorbis, la convertir en un format sans perte ne fera que consommer (beaucoup) d’espace disque, et N'AMÉLIORERA PAS - absolument PAS - la qualité de l'audio que ce soit. Vous ne pouvez pas créer de fidélité une fois qu'elle a déjà été perdue. Sauf si vous écrivez une interface graphique en Visual Basic sur une émission télévisée à succès appelée CSI, mais c'est de la fantaisie, pas de la réalité.

  2. Si vous avez de la musique dans d'autres formats sans perte et que vous souhaitez la convertir en FLAC, vous pouvez le faire.

  3. Soyez prudent lorsque vous utilisez le terme "WAV". Wav n'a pas à être sans perte; en fait, WAV est juste un conteneur pour différents formats possibles. C'est un peu comme AVI dans ce sens. Vous pouvez avoir un WAV sans perte s'il ne s'agit que de données PCM brutes, mais vous pouvez également incorporer des données MPEG-1 Layer III (avec perte) dans un fichier WAV.

  4. Il est possible de perdre des données lors de la conversion d'un format sans perte à un autre, si vous réduisez la fidélité des données. Par exemple, si vous convertissez un flux de données PCM 16 bits non signé à 48000 Hz en un flux de données PCM 8 bits à 44100 Hz, vous perdez la fidélité de deux manières: les échantillons sont fusionnés de 48000 à seulement 44100 par seconde (entraînant une perte de données), et les données doivent être mélangées pour adapter les informations à seulement 8 bits au lieu de 16 par échantillon, ce qui nuira considérablement à la qualité.

Chaque flux audio numérique, même ceux encodés par un encodeur de compression (avec ou sans perte), ont les "Propriétés de format d'échantillon" suivantes, qui sont des éléments essentiels qui décrivent les propriétés du flux:

  1. Échantillon de largeur et de profondeur de bits, c'est-à-dire 8 bits, 16 bits, etc. affecter la qualité, mais affecte la façon dont l'encodeur / décodeur traite les données). Le point clé à retenir est que "plus de bits c'est mieux". Donc, 32 bits, c'est mieux que 16 bits, etc.

  2. Fréquence, également connue sous le nom de taux d'échantillonnage. Plus c'est mieux car vous avez plus d '«échantillons» d'audio en cours de lecture par seconde. Imaginez passer rapidement votre doigt sur un jeu de cartes et regarder les cartes défiler dans un flou - c'est ainsi que l'audio numérique se produit essentiellement. Chaque échantillon est une carte, et si vous avez plus de cartes qui volent par seconde, l'audio est plus transparent. Comme, vous remarqueriez vraiment si vous ne retourniez que 5 cartes par seconde, mais tout serait flou si vous retourniez des milliers de cartes par seconde. Donc plus c'est mieux, car c'est plus naturel et plus proche de la réalité, qui est analogique et infiniment divisible (enfin, jusqu'aux unités Planck mais c'est discutable et hors sujet).

"Sans perte" signifie simplement que si vous utilisez le même ou meilleur format d'échantillon dans la sortie que vous avez utilisé dans l'entrée, vous ne perdrez aucune donnée.

Donc, si vous passez du format d'échantillon de 16 bits à 32 bits, vous ne perdez pas de données. Mais si vous passez de 32 bits à 16 bits, vous perdez des données.

Donc, la réponse à votre question de savoir si l'utilisation de FLAC a du sens dépend des données source: si vous avez des fichiers WAV 64 bits qui ont été initialement enregistrés dans ce format d'échantillon, avec 192000 Hz (aka 192KHz), et que vous les convertissez en " format d’échantillon FLAC standard de 16 bits et 44,1 KHz, vous allez perdre une tonne de données. Mais si votre fichier WAV est de 8 bits avec seulement 22100 échantillons par seconde et que vous le convertissez en FLAC 16 bits avec 44100 échantillons par seconde, vous n'allez pas perdre de données. Et vous pouvez même augmenter la taille du fichier, selon que la compression sans perte ou le plus petit format d'échantillon l'emporte.

Le format de l'échantillon affectera l'espace occupé par le fichier, donc les bits "plus gros" et les taux d'échantillonnage "plus rapides" occuperont plus d'espace.

En ce qui concerne les problèmes pratiques et l'oreille humaine: vous ne remarquerez pas vraiment si vous convertissez des originaux très haute fidélité en FLAC 16.1 44.1KHz. Mais vous ne remarquerez pas non plus d'amélioration si vous convertissez un MP3 en FLAC. Vous devez donc évaluer dans quel format d'échantillon vos données source se trouvent avant de décider quoi faire.

Maintenant que je vous ai fourni toutes ces informations, voici mes réponses directes et sans réponse à vos questions:

J'ai quelques questions concernant l'audio sans perte. J'envisage d'extraire toute ma collection de musique en .flac sans perte, mais je veux d'abord comprendre certaines choses à ce sujet.

Si votre collection de musique est sur CD et que vous souhaitez la ripper en FLAC, c'est un très bon ajustement à mon avis. L'audio de qualité CD sera à 44,1 KHz et à 16 bits par échantillon. Cela correspond exactement aux paramètres par défaut de FLAC (au moins, les valeurs par défaut des encodeurs que j'utilise). Par conséquent, vous ne perdrez aucune donnée et elle sera mathématiquement identique aux données d'entrée lors du décodage.

Si j'ai un fichier .flac et que je veux en faire, disons, .wav, comment puis-je faire pour ne pas avoir de perte de qualité? Si je le décompresse, je sais que je ne perdrai pas de qualité. La conversion de .flac en .wav équivaut-elle à la décompression?

Vous pouvez le convertir en un fichier .wav avec le même ou un format d'échantillon plus large que les données d'entrée et vous n'aurez aucune perte de qualité.

Lorsqu'un lecteur multimédia lit l'audio dans votre fichier flac, il décode essentiellement les données flac au format PCM avant d'envoyer ces données PCM à la carte son. Il le décompressera aux mêmes données exactes que celles entrées; Donc, si des données PCM 16 bits à 44,1 kHz entrent, c'est ce qui sortira et allez à vos haut-parleurs.

La seule différence entre cette activité et la conversion de l'audio en fichier WAV est que, lorsque vous le convertissez en fichier WAV, il doit créer un conteneur WAV avec les bits de remplissage appropriés, etc. et il vous permet également de choisir le format d'échantillon du fichier WAV. Mais en supposant que le format de l'échantillon est le même, la seule différence entre vos fichiers FLAC et WAV sera la taille du fichier: les fichiers WAV seront considérablement plus volumineux.

Est-ce que cela s'applique également au format .ape? J'ai quelques enregistrements du domaine public que j'ai téléchargés en .ape, mais je veux en faire .flac. Serait-il possible de .ape vers .flac sans utiliser .wav comme intermédiaire. Je veux m'assurer que même pas un peu ne soit perdu en aucune façon.

Non, il n'est pas possible de le faire sans utiliser un format PCM comme intermédiaire. Mais oui, il est possible de le faire sans utiliser de fichier WAV. Notez la différence. Flux de données PCM. Fichier WAV. Si la distinction n'est pas claire pour vous, relisez le début de mon post. Si vous voulez vous assurer que "même pas un peu" est perdu, vous devez examiner vos fichiers APE et comprendre dans quel format d'échantillon ils se trouvent, et vous assurer que votre encodeur FLAC est configuré pour coder pour les mêmes paramètres.

En interne, tout programme de conversion audio va décoder du format source vers une sorte de format d'échantillon PCM sans perte, puis prendre ces échantillons PCM et les ré-encoder dans le format de destination.

De plus, s'il existe des guides qui expliquent parfaitement le monde de la perte sans perte, quelqu'un serait-il disposé à partager un lien? :)

À mon avis, la meilleure façon d'apprendre est de le faire. Si vous prenez le temps d'apprendre le framework Gstreamer, comment l'utiliser, et la signification des différents réglages du format d'exemple, et comment construire un pipeline, vous en sortirez avec une très bonne compréhension de l'audio numérique. Vérifiez-le. http://gstreamer.freedesktop.org/ Vous pouvez également récupérer le SDK Gstreamer depuis http://code.entropywave.com/gstreamer-sdk/ (Windows est pris en charge) et expérimenter avec gst-launch-0.10 sans avoir à compiler quoi que ce soit de la source.

Quelques choses révélatrices:

gst-inspect-0.10 vorbisenc gst-inspect-0.10 vorbisdec gst-inspect-0.10 audioconvert gst-inspect-0.10 audioresample

Ensuite, informez-vous sur les bouchons, la construction de pipelines, etc. et vous progresserez.

* Remarque: je me rends compte que je n'ai pas expliqué ce qu'est le PCM. Wikipédia fait mieux que moi: http://en.wikipedia.org/wiki/Pulse-code_modulation

allquixotic
la source
Wow, c'est tout simplement incroyable à quel point vous avez expliqué tout cela avec clarté et à quel point. Je n'avais jamais pensé à la moitié de ces choses auparavant, une bonne matière à réflexion. Merci pour la réponse - et le temps qu'il vous a fallu pour taper tout cela aussi! +1!
Ryan McClure
Vous devez toujours viser à garder intacts les débits binaires et les taux d'échantillonnage, car sans perte implique idéalement des données PCM identiques. Le suréchantillonnage à autre chose que le double de la fréquence d'échantillonnage ne sera jamais sans perte (vous ne pouvez pas ajouter de zéros uniformément) et gaspille de l'espace disque. Dans tous les cas, cela ne devrait pas être un problème avec FLAC car il peut gérer n'importe quelle résolution de bits PCM de 4 à 32 bits par échantillon, n'importe quelle fréquence d'échantillonnage de 1 Hz à 655 350 Hz par incréments de 1 Hz et n'importe quel nombre de canaux de 1 à 8 ( en.wikipedia.org/wiki/FLAC#Design )
mtone
WAV contient toujours PCM. Ce n'est peut-être pas du PCM de qualité cd (mais en pratique, vous pouvez généralement le supposer car c'est presque toujours le cas), mais ce sera du PCM, pas quelque chose d'autre comme mpeg 3 couche 2.
psusi
@psusi: Désolé mais vous vous trompez. Veuillez lire l'article de wikipedia sur WAV: en.wikipedia.org/wiki/WAV . Si vous le souhaitez, je peux poster un lien vers un fichier WAV contenant de l'audio MP3. La chose à garder à l'esprit à propos des fichiers WAV est qu'ils ne sont qu'un fichier RIFF, et un fichier RIFF est une révision assez primitive d'un format de conteneur multimédia. Mais dans son objectif fondamental au moins, il n'est pas très différent d'Ogg ou de Matroska, mis à part le fait de ne prendre en charge que l'audio et non la vidéo. Edit: je n'ai pas besoin de faire un fichier wav / mp3; Yay! En fait, c'est lié à Wikipedia! nch.com.au/acm/8kmp316.wav
allquixotic
Il y a quelques inexactitudes dans cette réponse. "La fréquence, également connue sous le nom de taux d'échantillonnage. Plus c'est mieux parce que vous avez plus" d'échantillons "d'audio en cours de lecture par seconde." - Ce n'est pas ainsi que fonctionnent les taux d'échantillonnage. Si la profondeur de bits n'était pas impliquée, les données avec un taux d'échantillonnage de 48 kHz pourraient représenter des signaux jusqu'à 24 kHz sans perte, et l'ajout d'autres échantillons ne changerait pas cela. Plus d'échantillons n'influencent que les fréquences que vous pouvez représenter. La conversion de 44,1 kHz à 48 kHz n'est pas non plus à proprement parler sans perte, même si l'erreur introduite est incroyablement petite.
cooky451
1

Je dois être en désaccord avec la déclaration de allquixotic.

Si vous avez déjà de la musique dans un format avec perte, tel que mp3 ou ogg / vorbis, la convertir en un format sans perte ne fera que consommer (beaucoup) d’espace disque, et N'AMÉLIORERA PAS - absolument PAS - la qualité de l'audio que ce soit. Vous ne pouvez pas créer de fidélité une fois qu'elle a déjà été perdue. Sauf si vous écrivez une interface graphique en Visual Basic sur une émission télévisée à succès appelée CSI, mais c'est de la fantaisie, pas de la réalité.

Vous manquez de connaissances en ingénierie audio et en nourrissant les gens avec la fausse déclaration.

  1. Ogg et Vorbis ont tous deux des conteneurs qui enregistrent les informations d'origine sur les vagues, et elles peuvent être converties en sans perte avec ces données. Veuillez faire assez google.

  2. même une conversion MP3 sans perte de faible qualité fait BEAUCOUP d'amélioration sonore, elle n'est pas aussi parfaite que l'original, mais elle peut être corrigée avec la dynamique et le tramage facilement. https://www.izotope.com/en/products/master-and-deliver/ozone.html/OzoneDitheringGuide.pdf

L'audio n'est pas des données 10100110101001, donc une taille de fichier plus petite ne signifie pas qu'il a perdu la qualité. Vous avez peut-être de l'expérience avec 128 kbps à 320 kbps il y a des décennies et devinez 128 kbps à sans perte est impossible. Veuillez vous-même tester cette tâche simple et la réaliser.

Seandex
la source