Se connecter
Se connecter

ou
Créer un compte

ou

Sujet Les compressions du signal numérique

  • 25 réponses
  • 9 participants
  • 2 613 vues
  • 9 followers
Sujet de la discussion Les compressions du signal numérique
:!: Il ne s'agit pas ici d'un thread sur la compression dynamique. Je parle de compression du débit numérique (mp3, aac et autres...)
Hello tout le monde,

Je vais m'attaquer sous peu à la rédaction d'un dossier le plus complêt possible sur les différentes compressions du signal numérique.

Le point de départ est que tous les domaines du son (radio, ciné, télé, musique, diffusion internet) font appel à divers procédés de réduction du débit numérique. Or, peu de techniciens n'ont ne serait-ce qu'une vague idée du fonctionnement de ces procédés ni de leur influence réelle sur leur travail une fois arrivé chez l'auditeur. Je cherche à savoir si il est possible de tenir compte d'une compression future lors du mastering.

Je suis à la recherche de plusieurs choses :
1) des études déjà menées sur les compressions destructives
2) des livres / liens expliquant précisément les procédés utilisés et les principes des différents formats.
3) de techniques utilisées par les ingénieurs du son pour tenir compte de la compression future de leur travail et minimiser son impact destructif.

Dans l'idéal, j'aimerai faire un comparatif des différents formats de compression (mp3, aac etc.) et éventuellement trouver des techniques applicables au mastering pour optimiser le signal en vue d'une compression future.

Je suis vraiment au début de ma recherche et toute contribution m'intéresse :)

A+

Mes réalisations : http://www.rallu-sound.ch

[ Dernière édition du message le 01/11/2012 à 00:06:10 ]

2
3

Tu pourrais également parler, pour être exhaustif, de la compression de données non destructive, comme le format Flac par exemple.

4
Merci Numa pour les liens, pas eu le temps de tout lire mais ça a l'air intéressant.

Pour les compressions sans perte, je prévois effectivement d'en parler mais il faut quand même savoir qu'elles sont quasiment inexistantes dans les formats de diffusion courant. Les différents Dolby pour le cinéma utilisent une compression destructive, les magasins de musiques utilisent du mp3 ou de l'arc, les radios (numériques) utilisent du destructif aussi et demandent souvent du MP3 en PàD (sauf erreur) et je ne sais pas si il existe des sites de streaming qui encodent dans un format non destructif. Bref, à moins de le vouloir vraiment, il est rare de tomber par hasard sur du contenu compressé sans perte.

C'est à creuser d'ailleurs. As-tu des exemples de sites internet qui fournissent du contenu compressé sans perte ?

Mes réalisations : http://www.rallu-sound.ch

5
Salut,

Quel est ton niveau en math / traitement du signal / théorie de l'information ? As-tu des connaissances en matière de psycho-acoustique ?

Si je te parle de la mesure d'entropie de Shannon, par exemple, est-ce que ça te dit quelque chose ?
Si je te parle de largeur de bande critique ?

Si oui, alors je pense pouvoir te trouver des liens vers des thèses (en gros, bac+5 à bac+8) en traitement du signal qui porte sur la compression destructive du signal audio. Il y a toujours un état de l'art qui fait un inventaire assez exhaustif des techniques actuelles.

Sinon, je peux te donner des pistes et des mots clefs, t'expliquer certains grands principes généraux qui pourront sans doute t'aider à orienter tes recherches.
6
Citation :
de techniques utilisées par les ingénieurs du son pour tenir compte de la compression future de leur travail et minimiser son impact destructif.


La plupart des formats de compression travaillent par bandes de fréquences et il est donc important de bien délimiter les plages de fréquences dès l'étape du mixage. Chaque instrument doit être bien défini dans sa plage fréquentielles. Cependant, le mixage signifie "mélange" et un certain recoupement doit quand même exister.

En partant d'un mixage "propre", on peut ensuite encore augmenter l'intelligibilité du signal lors du mastering en nettoyant certaines fréquences et, au contraire, en augmentant si nécessaire la présence de certains éléments (voix notamment, plage médium/haut-médium)

Cette démarche est valable non seulement pour augmenter la "qualité" du mix après encodage mais aussi, plus généralement, pour faire face à toutes les situations de diffusion où les plages fréquentielles feront l'objet de compromis technologiques lors de leur restitution (c'est à dire quasiment toutes les situation autres que le monitoring de studio ou la hifi haut de gamme)

En d'autres termes, un mixage/mastering de bonne qualité aura toutes ses chances de passer l'étape de l'encodage (quel qu'il soit) sans trop de problèmes.

Le logiciel Sonnox ou toute autre technique d'anticipation de l'encodage trouveront leur intérêt pour contourner certaines spécificités des algorithmes d'encodage
(auto-compensation sur le haut-médium, sur les aigus)

Un autre point à considérer est le niveau RMS du fichier avant encodage. En effet, les algorithmes fonctionnant selon le principe du "masquage" des niveaux faibles
par les niveaux forts, il est important d'envisager des compromis en terme de plage dynamique lorsqu'on projette une diffusion "compressée" (débit).
Certains codecs de compression s'adaptant mieux aux niveau faibles, il peut être judicieux pour les musiciens "classique" ou "ambient" de choisir leurs plateformes de
diffusion en fonction de ce paramètre. On constate notamment que de nombreux musiciens "ambient" sont présents sur la plateforme Bandcamp.

LV

Studio de Mastering en ligne http://www.lvmastering.com/

[ Dernière édition du message le 01/11/2012 à 15:17:32 ]

7
Citation de EraTom :

Quel est ton niveau en math / traitement du signal / théorie de l'information ? As-tu des connaissances en matière de psycho-acoustique ?

Pour mon niveau de math, je dirai quelque chose un peu plus haut que le niveau bac. Pour ce qui est du traitement du signal, j'ai quelques bases théoriques et surtout pas mal d'expérience pratique.
Je pense avoir un niveau moyen en ce qui concerne la psycho-acoustique. En plus des bases théoriques, J'ai finalement quelques heures de studio / sonorisation derrière moi et je commence à savoir ce qu'on peut faire "gober" à l'oreille et ce qui ne fonctionne pas.

Citation :
Si je te parle de la mesure d'entropie de Shannon, par exemple, est-ce que ça te dit quelque chose ?
Si je te parle de largeur de bande critique ?

comme tu dis, ça me dit quelque chose mais il est vrai que je ne serai pas expliquer précisément à quoi tu fais référence.
Citation :

Si oui, alors je pense pouvoir te trouver des liens vers des thèses (en gros, bac+5 à bac+8) en traitement du signal qui porte sur la compression destructive du signal audio. Il y a toujours un état de l'art qui fait un inventaire assez exhaustif des techniques actuelles.

Sinon, je peux te donner des pistes et des mots clefs, t'expliquer certains grands principes généraux qui pourront sans doute t'aider à orienter tes recherches.


Dans l'absolu, je pense que j'aurai besoin des deux si tu as le temps. J'aimerai bien qu'on m'explique les grands principes généraux (même si j'en ai déjà une petite idée) mais j'aimerai bien quand même aller plus loin que les beaux principes théoriques... Si effectivement il existe des thèses ou autres documents qui font un inventaire exhaustif des techniques, je pense que cela m'aiderait beaucoup (même si il se peut que j'ai du mal à saisir les démonstrations mathématiques...)

Mes réalisations : http://www.rallu-sound.ch

8
Ok, je prendrai le temps de regarder ce que je trouve, et voici quelques principes généraux sur la compression de données et le codage de source qui te permettront d'aborder le sujet de façon assez approfondie.

Quantité d'information : (ou codage exact)
Quelque soit le "paquet de bits" considéré (image, son, texte, que sais-je) celui-ci contient une quantité d'information (sinon, on ne s'y intéresserait pas).

Cette quantité d'information n'est pas "directement proportionnelle" à la longueur du paquet de données : si je répète 10 ou 100 fois le même mot ou la même phrase, le message constitué est plus long mais la quantité d'information véhiculée n'augmente pas.

Exemple : si je répète 10 ou 100 fois le même mot ou la même phrase, le message constitué est plus long mais la quantité d'information véhiculée n'augmente pas. :-)

Pour mesurer la quantité d'information d'un message un type a inventé ceci :
https://fr.wikipedia.org/wiki/Entropie_de_Shannon

Si tu ne comprends pas dans les détails ce n'est pas bien grave. Tout ce qu'il faut retenir c'est qu'un message plus long ne contient pas forcément plus d'information si des "motifs" se répètent (des suites de "0" et de "1" dans le cas d'un message binaire).
A l'opposé, une suite de motifs complètement aléatoire constitue un message enfermant le plus d'information possible pour une longueur donnée (par longueur je parle du nombre de 0 ou de 1).

C'est important parce que ça constitue une limite théorique que l'on ne peut pas dépasser : si une suite de bits est complètement aléatoire alors il n'existe pas de message plus court pouvant coder la même quantité d'information.


Compression non-destructive: (ou codage avec perte)
Le "problème" de la compression de données peut être formulé comme ceci :
- J'ai un message d'une certaine longueur (ou d'un certain nombre de motifs).
- Celui-ci contient une certaine quantité d'information.
- Est-ce que je peux trouver un nouveau jeu de motifs qui me permet de transmettre la même quantité d'information avec un message de longueur plus petite ?

Ce "nouveau jeu de motifs" s'appelle un dictionnaire. Tous les algorithmes de compression non-destructive cherchent à construire un dictionnaire qui permet de minimiser la longueur du message transmis (ou stocké).
La réponse à la question est "oui" et la méthode optimale a été trouvée avec le codage de Huffman :
https://fr.wikipedia.org/wiki/Codage_de_Huffman

Pour expliquer l'idée simplement :
- On analyse le message initial pour trouver des motifs récurrents et on les ordonne (de celui qui apparaît le plus souvent à celui qui apparait le moins souvent).
- On construit un dictionnaire : le motif qui apparait le plus souvent est remplacé par un motif court, le motif qui apparait le moins souvent est remplacé par le motif le plus long du dictionnaire.

En procédant de la sorte, statistiquement, le message obtenu sera plus court que le message initial. Ce que l'on peut montrer aussi c'est que le message de sortie obtenu tend à devenir la "suite de motifs aléatoires" dont je te parlais plus haut.


Ce n'est sans doute pas très clair, alors voici un exemple avec les lettres de l'alphabet.

Tu connais peut-être le codage ASCII : tous les cratères sont codés avec une taille fixe de 8bits.
Pour connaitre la longueur (en nombre de bits) d'un message du forum en codage ASCII il suffit de compter les nombres de caractères et de multiplié par 8. Bon...

Et bien des types se sont amusés à compter l’occurrence moyenne de chaque lettre dans chaque langue, notamment le français :
http://pedroiy.free.fr/alphabets/index.php?pg=http://pedroiy.free.fr/alphabets/frequence.htm

Si tu appliquais le codage de Huffman au français tu obtiendrais une codage différent du codage ASCII :
E : 01
S : 001
A : 0001
N : 00001
etc.

Le motif codant le W est très long, mais comme la lettre n'apparait quasiment jamais dans un texte en français on s'en fout.
Le E qui apparait presque 1 fois sur 5 ne prendrait que 2bits à la place de 8bits.
En moyenne, sur un message en français assez long, tu réduits globalement sa longueur par rapport au code ascii.

Normalement, si le codage est efficace (et il l'est), la nouvelle suite de motifs que l'on obtient avec le codage de Huffman est plus courte et ressemble de plus en plus à la suite de bits aléatoires.

Bien sûr, si tu changes de langue ça ne marche plus : en anglais le W est presque partout. Il faut construire un autre dictionnaire.
Ceci dit, le nombre de langues est limité : tu peux construire un dictionnaire pour le français, un dictionnaire pour l'anglais, etc. et quand tu transmets ton message tu ne fais que préciser à celui qui le reçoit quel est le dictionnaire à utiliser.

Un programme de compression comme le ZIP n'a pas cette chance : il est obligé de construire un dictionnaire pour chaque nouveau fichier qu'on lui a demandé de compresser, et pour décompresser l'archive il faut qu'il fournisse le dictionnaire (dis autrement, dans l'archive ZIP il y a le message ET le dictionnaire).
Or, dans certain cas, le dictionnaire peut-être plus gros ou aussi gros que le message codé... ça arrive notamment avec la suite de bits aléatoires.


Ceci permet de comprendre (je l'espère) qu'il existe une limite théorique qui ne peut pas être dépassée : quand le message est "complètement aléatoire" il ne devient plus possible de réduire sa taille parce que l'on est obligé de coder chaque motif un à un et qu'il n'est pas possible de les "résumer" avec l'aide d'un dictionnaire de taille raisonnable (i.e. plus petit que le message lui-même).

Si tu veux réduire la taille d'un fichier, d'une paquet de donnée, etc. d'avantage tu n'a pas le choix : il faut sacrifier une partie de l'information.


Compression destructive:
Là on veut réduire d'avantage la taille du fichier à stocker ou du message à transmettre mais à cause de la limite théorique précédent on sait que l'on va être obligé de détruire de l'information.

Ce n'est pas toujours possible : si je prends un bouquin je ne vais pas m'amuser à retirer quelques mots d'une phrase. Quoique... On y arrive bien avec le style "SMS" où l'on s'amuse à retirer certaines lettre ou contracter certains sons mais ça demande au lecteur un peu de gymnastique et de souplesse. C'est là l'astuce.

Pour une image ou un fichier audio, on sait qu'une partie des détails ne sont pas perçus ou qu'ils ne sont pas "critiques" pour la compréhension.
L'idée est alors de bien étudier la façon dont on perçoit les choses (avec des études psychoacoustiques ou psychovisuelles) et de choisir de façon soigneuse l'information que l'on peut s'autoriser à perdre.

Que ce soit pour l'image, la vidéo ou le son, les algo de compression destructive procèdent tous de la même façon :
- On utilise un modèle qui permet de reconstruire le média à encoder.
- Une partie des données du modèles sont conservées et d'autres détruites en fonction de ce que peuvent tolérer nos sens et d'un objectif de "qualité perçue".
- L'information restante est encodée avec un codage exact.

De plus, le dictionnaire du codage exact est le plus souvent pré-calculé ; il n'est pas nécessaire de le transmettre.


Pour l'audio (mp3, AAC, etc.) l'approche est la suivante :
- Découpage du signal en trames de quelques millisecondes (le signal est saucissonné).
- Modélisation du signal par un modèle "Sinusoïdes + Bruit" pour chaque trame.
- Choix des sinusoïdes à conserver dans chaque trame en fonction d'un modèle psychoacoustique.
- Codage exact des paramètres du modèle "Sinusoïdes + Bruit" da chaque trame (avec un dictionnaire adapté aux signaux audio modélisés de cette façon).

Les différences entre le mp3 et l'AAC ne sont pas "fondamentales" et le principe reste le même.
En réalité, les améliorations du AAC résident dans le choix des tailles des trames et un critère de rejet psychoacoustique plus fin (en plus de "métadonnées" supplémentaires du genre de l'ID3).

Je te laisse digérer tout ça et tu auras peut-être des questions. Je te ferai un 2nd post pour détailler le principe du mp3 ou de l'AAC.
9
@Eratom
Merci pour ces infos....Au niveau de la décomposition en bandes de fréquences, je me base sur les données du système ATRAC3 qui avait attiré mon attention par le biais du minidisc.
Le Mp3 utlise t-il le même système ?

Critical Band Frequency (Hz)

Band Low High Width
0 / 0 / 100 / 100
1 / 100 / 200 / 100
2 / 200 / 300 / 100
3 / 300 / 400 / 100
4 / 400 / 510 / 110
5 / 510 / 630 / 120
6 / 630 / 770 / 140
7 / 770 / 920 / 150
8 / 920 / 1080 / 160
9 / 1080/ 1270 / 190
10 / 1270 / 1480 / 210
11 / 1480 / 1720 / 240
12 / 1720 / 2000 / 280
13 / 2000 / 2320 / 320
14 / 2320 / 2700 / 380
15 / 2700 / 3150 / 450
16 / 3150 / 3700 / 550
17 / 3700 / 4400 / 700
18 / 4400 / 5300 / 900
19 / 5300 / 6400 / 1100
20 / 6400 / 7700 / 1300
21 / 7700 / 9500 / 1800
22 / 9500 / 12000 / 2500
23 / 12000 / 15500 / 3500
24 / 15500 / 22050 / 6550

Critical bands [7] arose from the idea that the ear analyzes the audible frequency range using a set of subbands. The frequencies within a critical band are similar in terms of the ear's perception, and are processed separately from other critical bands. Critical bands arose naturally from experiments in human hearing and can also be derived from the distribution of sensory cells in the inner ear. Critical bands can be thought of as the frequency scale used by the ear [8].

http://www.minidisc.org/aes_atrac.html

Studio de Mastering en ligne http://www.lvmastering.com/

[ Dernière édition du message le 02/11/2012 à 00:46:26 ]

10
x
Hors sujet :
Je ne devrais pas venir sur ce forum après avoir passé une soirée arrosée...


Il y a un article de Wikipedia qui parle des bandes critiques : https://en.wikipedia.org/wiki/Critical_bands
En anglais. Je ne l'ai pas lu mais le dessin au milieu ressemble à ce que je connais.

Je ne suis pas expert en bio ou en médecine, mais c'est une info que j'ai exploité. Voici ce que j'en sais :

La bande critique représente la capacité de notre oreille à séparer 2 sons de fréquences proches, une sorte de résolution fréquentielle :
- Prends 2 sinusoïdes de fréquences éloignées : tu peux les différencier.
- Rapproche les fréquences l'une de l'autre : tu finis par entendre une seule fréquence avec une sorte de battement.
- Rapproche les encore : tu ne distingues qu'un seul son (le battement s'estompe) dont la fréquence se situe environ à la moyenne des 2 fréquences des 2 sinusoïdes.

La bande critique se trouve à la limite entre l'étape 2 et 3.

Tu peux aussi procéder dans l'autre sens :
- 2 sinusoïdes de fréquences égales Fc
- On les écarte d'une fréquence ΔF : F1 = Fc + ΔF/2 ; F2 = Fc - ΔF/2
- La largeur de la bande critique correspond au ΔF à partir duquel on peut distinguer les 2 sinusoïdes (ou que "quelque chose" change dans le son perçu).

La largeur de la bande critique ΔF varie avec la fréquence centrale Fc : plus Fc est grande, plus la largeur est grande.

C'est un phénomène qui est lié à la mécanique de notre oreille interne (en particulier le comportement de notre membrane basilaire http://www.humans.be/pages/physioaudition.htm )
On pourrait le montrer par un calcul de mécanique (du genre de celui des cordes vibrantes) mais il est plus simple de le mesurer (en tout cas, la théorie rejoint la mesure).

En 1990, Glasberg et Moore ont pendu une formule empirique qui permet de calculer la largeur de la bande critique (ERB pour Equivalent Rectangular Bandwidth) :
https://en.wikipedia.org/wiki/Equivalent_rectangular_bandwidth

Pour les valeurs de Fc allant de 100Hz à 10kHz il est possible d'utiliser une formule approximative simplifiée (un linéarisation, sachant que le modèle "filtre rectangulaire" est déjà une sacrée approximation du comportement de notre oreille) :
ERB = 24.7*(4.37*Fc/1000 + 1) Hz

La largeur évolue continument avec la fréquence centrale mais étant donnés les approximations des modèles et la dispersion qui peut exister d'un auditeur à un autre, il n'est pas moins pertinent de procéder comme le propose l'ATRAC3 i.e. fixer des largeurs types pour différents intervalles du domaine fréquentiel (on pourrait même les interpoler).


Le mp3 et l'AAC exploitent les bandes critiques mais utilisent aussi un modèle psycho-acoustique qui va plus loin, avec un masquage fréquentiel et temporel hérité du MUSICAM.

Si une fréquence est émise avec une pression importante, cette pression exercée sur l'oreille va temporairement empêcher la perception de pressions plus faibles dans d'autres bandes du spectre (plus loin que la bande critique). Quand cette pression importante disparait, l'effet de masquage persiste un petit moment avant de disparaître.

Pour expliquer ceci de façon un peu simpliste, l'oreille est fortement sollicitée par une pression à une certaine fréquence, et il faut un petit moment aux organes qui la composent pour revenir à la position de repos.
Une analogie avec nos yeux : tu reçois un flash qui t'éblouit et il faut un moment avant que tu puisses distinguer de nouveau ce que tu as en face de toi.

Il y a un article de Wikipedia (in english) qui explique le phénomène (enfin, plutôt ses conséquences). C'est le principe du modèle utilisé dans le mp3 :
https://en.wikipedia.org/wiki/Auditory_masking

Le § "Simultaneous masking" discute des bandes critiques que tu évoques et qui apparait quand 2 sons sont joués en même temps.

Le § "Temporal masking" explique le masquage fréquentiel persistant au cours du temps, qui est exploité par le mp3 de façon complémentaire au masquage précédent.


Tout ce qui est masqué peut être détruit en priorité, d'où l'importance d'avoir un modèle psycho-acoustique poussé.

[ Dernière édition du message le 02/11/2012 à 02:30:51 ]