Free Lossless Audio Codec (InfoNum2 2016-2017)

De Wicri Incubateur
Révision datée du 14 novembre 2016 à 12:27 par imported>Gauthier Colin-Haag (Page créée avec « Free Lossless Audio Codec (FLAC) est un codec libre de compression audio sans perte. À l’inverse de codecs tels que MP3 ou Vorbis, il n’enlève aucune information du flu... »)
(diff) ← Version précédente | Voir la version actuelle (diff) | Version suivante → (diff)

Free Lossless Audio Codec (FLAC) est un codec libre de compression audio sans perte. À l’inverse de codecs tels que MP3 ou Vorbis, il n’enlève aucune information du flux audio. Cette qualité maximale a pour conséquence une quantité d'information plus élevée, qui tout en étant assez variable se trouve en moyenne être de l'ordre de 50 % de la taille du même fichier non compressé au format PCM6.

Sommaire [masquer] 1 Un format libre et sans perte 2 Historique 3 Projet 4 Comparaisons 5 Détails techniques 6 Organisation de l'API 7 Références 8 Annexes 8.1 Articles connexes 8.2 Liens externes Un format libre et sans perte[modifier | modifier le code] Comme d’autres méthodes de compression, le FLAC a pour principal avantage de réduire le débit ou la capacité de stockage nécessaire, sans perdre d’informations de la source audio (en anglais, lossless signifie « sans perte »). Les sources audio peuvent être codées en FLAC pour permettre une réduction de taille de 30 à 70 %7. La réduction de taille est dépendante de la source : plus le signal est constitué d’ondes régulières (sons naturels), meilleure est la compression. Par contre, un signal aléatoire (bruit) ne se compresse pas très bien. Ce phénomène se constate pour tous les formats de compression sans perte.

FLAC est approprié pour tous les archivages de données audio, avec le support des métadonnées, image de couverture, ainsi que pour la recherche rapide. FLAC est un format ouvert ; ne nécessitant pas le paiement de redevances, il est bien supporté par de nombreux logiciels. Le support de la restitution de FLAC sur les appareils audio portables, et les systèmes audio dédiés est limité mais en progrès8. John Coalson est le premier auteur de FLAC.

Historique[modifier | modifier le code] Cette section est vide, insuffisamment détaillée ou incomplète. Votre aide est la bienvenue ! Le 29 janvier 2003, Xiphophorus (appelée, en 2004, Xiph.org) annonce l’incorporation de FLAC sous la bannière de Xiph.org, rejoignant ainsi le conteneur Ogg et les codecs Vorbis, Theora et Speex.

La fondation "Xiph.org" est une organisation à but non lucratif qui s'oppose au mouvement de privatisation dans le domaine des formats de données multimédia en développant des logiciels libres et des algorithmes de compression multimédia libres de brevet. Elle a été fondée en 1994 par Chris Montgomery, également inventeur du format conteneur Ogg. En fait au début le format flac était un projet libre d’un groupe de développeurs indépendants jusqu’à être pris sous l’aile de "Xiph".

L'Union européenne de radio-télévision (UER) a choisi le format FLAC pour son réseau Euroradio, pour la distribution audio de haute qualité9.

Android supporte nativement le FLAC depuis sa version 3.110.

Sous Windows 10, le lecteur Windows Media supporte le FLAC11.

Projet[modifier | modifier le code] Le projet FLAC est constitué de plusieurs éléments :

le format de flux ; un format conteneur appelé Native FLAC ; libFLAC, une bibliothèque de codage et décodage ainsi qu’une interface aux métadonnées ; libFLAC++, un accès objet à libFLAC ; flac, un accès en ligne de commande à libFLAC pour coder et décoder des fichiers .flac ; metaflac, un éditeur en ligne de commande pour les fichiers .flac ; des plugins d’entrée pour plusieurs lecteurs musicaux populaires (Winamp, XMMS…) ; avec l’inclusion dans le projet Xiph.org, le conteneur Ogg, adapté pour le streaming (l’ensemble est appelé Ogg FLAC). Les spécifications du format de flux sont dans le domaine public (le projet FLAC se réserve les droits quant aux spécifications et à la certification de compatibilité). Le projet s’attache aussi à ce qu’aucun brevet ne couvre le format ou les méthodes de codage/décodage. Les bibliothèques libFLAC et libFLAC++ sont disponibles sous licence BSD, les sources de flac, metaflac et des plugins sont sous licence GPL.

Comparaisons[modifier | modifier le code] FLAC se distingue d’algorithmes sans perte (tels que ZIP et gzip) en ce qu’il a été créé spécifiquement pour compresser des données audio. La méthode ZIP réduit la taille d’un fichier audio de qualité CD de 20 à 40 %, alors que FLAC obtient des taux de 30 à 70 %7. Si des codecs à perte comme le MP3 et le Vorbis peuvent atteindre des ratios de 80-90 %, voire plus, ils le font en éliminant des données du flux originel.

Le FLAC utilise la prédiction linéaire pour convertir les échantillons en une série de blocs non-corrélés d’environ 100 ms (connus sous le nom de résidus), qui sont stockés de manière efficiente en utilisant le codage de Golomb-Rice. Il utilise aussi le codage par plages pour les blocs d’échantillons identiques, tels les passages blancs. Ceci lui permet d’être décompressé à la volée durant la lecture, y compris par un système autonome équipé de peu de mémoire (platine CD, lecteur portable à disque dur ou mémoire Flash, lecteur autonome à disque dur pour chaîne Hi-Fi ou voiture).

Étant un codec sans perte, le FLAC est très utilisé comme format d’archivage12 : si le support original est perdu, endommagé ou usé, une copie en FLAC des pistes audio garantit qu’une copie exacte des données originales peut être récupérée à tout moment. Un fichier Cue sheet (CUE) peut éventuellement être créé quand on rippe un CD. Si le CD est lu et rippé parfaitement en fichier FLAC, le fichier CUE permet de pouvoir graver plus tard un CD audio qui est la réplique exacte de celui d’origine, en incluant l’ordre des pistes, prégaps, et CD-Text. Pourtant certaines données seront tout de même perdues, comme les informations de paroles ou encore les graphiques d’un CD+G, ces données n'étant pas incluses dans le fichier CUE, elles ne seront pas archivées.

FLAC est disponible pour pratiquement tous les systèmes d’exploitation.

Détails techniques[modifier | modifier le code] Le FLAC ne supporte que l’échantillonnage à virgule fixe. Ceci évite l’imprécision inhérente à l’arithmétique à virgule flottante afin d’assurer que le codage soit effectivement sans perte. Il peut manipuler n’importe quelle donnée audio PCM avec une profondeur d’échantillonnage de 4 à 32 bits par échantillon, n’importe quelle fréquence d’échantillonnage de 1 Hz à 1 048 570 Hz avec des incréments de 1 Hz, et n’importe quel nombre de canaux audio de 1 à 8. Les canaux peuvent être groupés comme dans le cas de la stéréo et des canaux 5.1 surround pour tirer parti de la corrélation intercanal pour augmenter la compression. FLAC utilise un CRC pour identifier les morceaux corrompus dans le cas de l’utilisation en streaming, mais aussi le hachage MD5 complet des données PCM brutes stockés dans leur en-tête de métadonnées STREAMINFO.

FLAC admet un paramètre de Golomb entre 0 et 16 pour le code de Rice, et jusqu’à 8 canaux audio et une large gamme de fréquence d’échantillonnage jusqu’à 192 kHz, avec des profondeurs d’échantillonnages variables. FLAC prend aussi en charge le Replay Gain.

FLAC est mis en œuvre dans libFLAC (une bibliothèque pour coder & décoder). Le programme flac (utilisable en ligne de commande), est le programme de référence qui utilise l’API libFLAC. Ce codec API est aussi disponible en C++ sous le nom de libFLAC++.

L’implantation de référence de FLAC peut être compilée sur de nombreuses plates-formes, incluant la plupart des systèmes d’exploitation Unix (tels que Linux, * BSD, Solaris et Mac OS X), Windows, BeOS, et OS/2.

Pour les métadonnées, FLAC utilise le même système que les métadonnées du format Vorbis, mais il peut en plus inclure des métadonnées au format ID313.

Organisation de l'API[modifier | modifier le code] libFLAC API est organisée autour de flux, flux séparables et fichiers pour permettre d’améliorer l’abstraction du flux binaire de base de FLAC. La plupart des applications FLAC se limiteront à l’utilisation du codage/décodage en utilisant libFLAC à son niveau fichier.

L’API a subi des changements fondamentaux dans sa version 1.1.3 qui pose problème pour la compilation des lecteurs utilisant libFLAC. Personne ne sait à quelle vitesse les développeurs vont s’adapter à ces changements.

Références[modifier | modifier le code] ↑ « FLAC changelog » [archive] ↑ http://fileformats.archiveteam.org/wiki/FLAC [archive] ↑ https://xiph.org/flac/license.html [archive] ↑ http://fileformats.archiveteam.org/wiki/FLAC [archive] ↑ https://xiph.org/flac/license.html [archive] ↑ (en) FLAC Website : codec comparison [archive] ↑ a et b TIPE : Les mathématiques derrière la compression du son [archive] [PDF] ↑ (en) FLAC Website [archive]. ↑ Marc, « Le MP3HD : la nouveauté MP3 de Thomson et Fraunhofer » [archive], sur www.homecinema-hifi.com,‎ 5 juin 2009 (consulté le 4 février 2012) ↑ « Android Supported Media Formats » [archive], sur developer.android.com (consulté le 4 février 2012) ↑ « Codecs pris en charge » [archive], sur msdn.microsoft.com (consulté le 11 septembre 2016) ↑ « ADONIS/SIAF/CINES-GM - 0.4 » [archive], sur Archives de France (consulté le 16 juillet 2016) : « FLAC est très utilisé comme format d'archivage (compression sans perte) », p. 68. ↑ http://flac.sourceforge.net/faq.html [archive] (en) Cet article est partiellement ou en totalité issu de l’article de Wikipédia en anglais intitulé « Free Lossless Audio Codec » (voir la liste des auteurs).

Annexes[modifier | modifier le code] Sur les autres projets Wikimedia : Free Lossless Audio Codec, sur Wikimedia Commons Articles connexes[modifier | modifier le code] WavPack Monkey’s Audio Code de Golomb Musique numérisée Liens externes[modifier | modifier le code] (en) Site officiel (en) Accueil du projet FLAC sur SourceForge.net