# WavPack

WavPack est un format de fichier ainsi qu'un outil de compression audio permettant d'encoder (et de restaurer) un flux PCM sans perte ou avec pertes et même de cumuler les deux aspects (format hybride, voir ci-dessous). Le format est ouvert, et l'outil est libre, distribué selon les termes de la licence BSD.

## Les modes d'encodages

WavPack est constitué de trois modes d'encodages.
* Le mode dit « sans perte » (couramment désigné par l'anglicisme lossless) utilise des techniques similaires à celles utilisées par des encodeurs généralistes tels que Zip ou 7z. Sa finalité réside dans la compression de données. Ce mode d'encodage présente pour intérêt majeur de n'occasionner aucune espèce de dégradation des données : une fois décodé, le flux audionumérique est rigoureusement identique à celui précédent l'encodage. Appliquées à l'audio, ces techniques de compression sans perte se révèlent donc idéales pour tous les travaux scientifiques (généalogie, océanologie…) ou ceux concernant l'archivage ; l'encodage sans perte est également prisé pour une utilisation audiophile très stricte. En contrepartie, le taux de compression atteint est plus faible que celui obtenu par des encodeurs de type « avec pertes » (lossy) tels que le MP3. De manière générale, l'encodage avec WavPack permet de réduire de moitié le volume original du fichier source. Ces performances peuvent atteindre -80 % avec des fichiers plus compressibles (fichiers monophoniques, ou ceux présentant un spectre sonore tronqué) et peuvent descendre à -20 % à peine pour les cas les plus extrêmes.
* Le mode dit « avec pertes » (l'anglicisme lossy est fréquemment employé) est une caractéristique originale de WavPack. Le mode permet à l'utilisateur de spécifier le débit d'encodage et par conséquent de prévoir la taille finale, qui est par nature imprévisible en lossless. Ce mode d'encodage peut être rapproché du MP3 en ce qu'il occasionne une dégradation irrémédiable du signal. Toutefois, WavPack lossy s'en démarque d'un point de vue technique, car il n'exploite pas la plupart des ressources utilisées par les encodeurs perceptuels (MP3, WMA, Vorbis, AAC…) traditionnels, se rapprochant davantage d'encodeurs reposant sur la pure quantification tels que l'ADPCM. C'est pourquoi WavPack lossy est inadapté aux bas débits d'encodage (le débit minimal est d'environ 200 kb/s pour une source PCM 44,1 kHz sur 16 bits), tout en devenant théoriquement supérieur aux encodeurs perceptuels à des débits plus élevés (350 à 400 kb/s).
* Le mode dit « hybride » permet de combiner les deux modes d'encodages précédent. Son fonctionnement consiste en l'encodage d'un premier fichier avec perte, et d'un second l'accompagnant et qui comprend toutes les données de correction nécessaires à la restauration parfaite du signal d'origine. L'utilisation à la lecture de cette annexe dite de « correction » est optionnelle. Un utilisateur pourra par exemple lire depuis un réseau un fichier dégradé pour en économiser les ressources, ou activer la correction si besoin est. Autre forme d'utilisation : le téléchargement depuis internet d'un fichier imparfait nécessitant peu de bande passante, avec en cas de satisfaction la possibilité d'y ajouter les "données manquantes". La forme "avec pertes + correction" présente un débit très faiblement majoré (1 % au plus) par rapport à un encodage simplement "sans perte", pour un résultat (ou qualité) rigoureusement identique. Cette forme d'encodage permet ainsi aux utilisateurs de bénéficier simultanément d'un double encodage lossy et lossless, mais géré de manière plus efficace (pas de redondance donc moins d'espace consommé) qu'avec une combinaison de type "MP3 + sans perte".

## Asymétrie

Un encodage est dit asymétrique lorsque le temps nécessaire à sa réalisation est entièrement décorrélé avec le temps nécessaire au décodage. La plupart des formats de type lossless sont en effet « symétriques » : un encodage très lent (forte compression) aura pour contrepartie un décodage très lent, et si l'encodage est rapide (compression plus faible) le décodage nécessitera moins de ressources processeur. WavPack présente de manière optionnelle des optimisations asymétriques (appelées par la commande -x) permettant l'obtention d'un taux de compression plus élevé sans porter atteinte à la vitesse de décodage (paradoxalement améliorée avec ce mode).

## Caractéristiques détaillées de WavPack

* gestion complète du PCM (8-, 16-, 20-, 24-bits ; 32-bits flottant ; mono, stéréo, multicanal (triphonie, quadraphonie, 5.0, 5.1, 7.1…) ; fréquences d'échantillonnage comprises entre 6 et 192 kHz)
* format multiplateforme (Windows, Linux, MacOS, Solaris, BSD, PA-RISC et les architectures 64-bits sont actuellement supportées)
* format libre et ouvert, régi par la licence non-restrictive de type BSD
* navigation instantanée et gestion du streaming
* format orienté bloc facilitant le décodage logiciel et matériel
* mode asymétrique
* signature md5 intégrée (facilitant vérification et identification des fichiers)
* utilisable en vidéo (avec ou sans perte & hybride)
* pleinement supporté dans le conteneur Matroska
* mode hybride
* mode avec perte permettant le codage à 2.25 bits par échantillon et plus
* exécutables de taille réduite (programme indépendant de toute application surdimensionnée)
* rétrocompatibilité totale avec les versions antérieures (WavPack 1.0 à 3.97)
* gestion des archives auto-extractibles (un fichier WavPack auto-extractible est transformable en fichier WAV sans besoin d'un autre fichier/programme sous Windows)
* support de ReplayGain
* support des tags au format ID3v1 et APEv2
* enchaînement dit gapless (littéralement, « sans blanc »)
* gestion du piping (autorise un réencodage à la volée dans un autre format, par exemple)

## Histoire

Le développement de WavPack commence au milieu de l'année 1998 avec la sortie par David Bryant de la version 1.0, aux performances déjà remarquables. La version 2.0 ne tarde pas à suivre et, reprenant une idée déjà introduite par Monkey's Audio (un autre format de compression lossless), présente à ses utilisateurs un mode d'encodage avec pertes. La version 3.0 est lancée l'année suivante, et parmi les innovations offertes par cette nouvelle version, on peut citer : un mode d'encodage rapide, la gestion des fichiers PCM « brut » (raw) ainsi qu'un mécanisme de détection d'erreurs (CRC 32 bit). Ces innovations ne suffisent cependant pas à séduire les utilisateurs, dont une large majorité continuera de préférer des formats plus performants tels que Monkey's Audio ou FLAC. Il est vrai que le mode de navigation (seeking) des plus poussif de WavPack 3 (latence pouvant atteindre une dizaine de secondes pour aller d'un point à un autre !) n'était guère attrayant...
Cinq années de gestation et de maturation seront nécessaires pour qu'arrive, enfin, une version 4.0 du format riche en fonctionnalités. Doté d'un mode de navigation plus performant, gérant le multicanal, les sources très haute définition codées en virgule flottante, présentant un mode avec perte largement amélioré, la signature md5, le codage asymétrique.

## Performances
### Comparaisons chiffrées

* Comparatif de Speek - 10 albums (dernière mise à jour : 2005)
* Comparatif de Hans Heijden - 7 albums (dernière mise à jour : 2006)

### Comparaisons textuelles

* comparison Wiki d'hydrogenaudio.org
* Présentation détaillée des formats sans perte - par Kurtnoise