Se connecter
Se connecter

ou
Créer un compte

ou
FR
EN

réactions au dossier Le dithering fait du bruit

  • 146 réponses
  • 50 participants
  • 25 701 vues
  • 45 followers
Sujet de la discussion Le dithering fait du bruit
Passer de la haute résolution au format 16 bits/44 kHz est un sale boulot, mais il faut bien que quelqu'un le fasse.

Lire l'article
 


Ce thread a été créé automatiquement suite à la publication d'un article. N'hésitez pas à poster vos commentaires ici !
Afficher le sujet de la discussion
26


Des choses tres interessantes dans cette article. Je ne savais pas qu'une bande annalogique devait fonctionner dans une plage de fonctionnement... En fait c'est comme régler le courrant de plaque d'une lampe.

Mais si j'ai bien copris, lorsque l'on passe un fichier de musique de 24 à 16 bits, il y a une perte de 8 bits... Et la fonction "Dithering" corrige ce problème ???? Si c'est bien ca, je n'ai pas compris comment. Certaines personne ont l'air de bien maitriser ce sujet. On peut me réexpliquer svp ? :)

27

The Secrets of Dither
or
How to Keep Your Digital Audio Sounding Pure from First Recording to Final Master

http://www.ajevs.com/Dither.pdf

28

Citation :

Mais si j'ai bien copris, lorsque l'on passe un fichier de musique de 24 à 16 bits, il y a une perte de 8 bits... Et la fonction "Dithering" corrige ce problème ????

il y a troncature comme expliqué plus haut, les 8 dernier bit sont supprimés, tout bonnemeent, et chaque échantillon 24 bit est arrondi à la valeur 16 bit la plus prchoe, exemple en 24 bit tu avais 1.254893, et en 16 bit ca te donnerais plus que 1.255

La conséquence direct est la remonté du niveau de bruit de quantification de 48 dB (6dB par bit) et donc sur une musique avec une grande étendue dynamique, sur les passges faibles ca peut devenir audible et gênant, car le bruit de quantification est une distorsion assez désagréable à l'oreille (rappel toi les sons 8 bits), mais le dithering ne corrige pas ce problème, disons plutôt qu'il le "masque" par l'ajout d'un bruit ayant certaines caractéristiques (de mise en forme= noise shapping évoqué dans l'article)

Par contre j'ai pas tout compris non plus l'histoire du dernier LSB qui se ballade entre 0 et 1, parce que ça me laisse penser de la façon dont c'est dit que l'auteur oublie qu'il y a quand même 15 autres bits avant celui ci, et qu'il y a donc peu de chance qu'une série significative d'échantillons ait la même valeur, parce que ça aussi ça serait un problème, on aurai un signal continue, et là le dithering permet de le faire varier (c'est d'ailleurs utilisé dans la conversion A/N pour cette raison).

29

donc si j'ai bien tout compris il faut passer de 24 bits a 16 bits avant d 'exporté son son par le biais d'un plug in ?

le faire avant ou apres le mastering?

merci

30

comme dit dans l'article, le dithering est la dernière étape avant l'export final (donc dernier traitement appliqué au mastering), après tu fais plus rien, tu touches plus à rien.

Mais, comme également dit dans l'article, et c'est un avis que je partage à 100%, si tu fais du métal, de l'électro, du hiphop ou tout autre style de musique ou en général ça se finit pas à avec 50dB de plage dynamique, le dithering n'est plus le dernier traitement, c'est le dernier de tes soucis. icon_mrgreen.gif

31

Le dithering existe aussi pour l'image. C'est exactement le même principe.

A défaut d'exemple audio, un exemple visuel permet de bien comprendre l'intérêt:

https://en.wikipedia.org/wiki/Dither#Examples

La deuxième image à eu sa palette réduite (troncation, moins de bit pour représenter les couleurs). La troisième image utilise le même nombre de bit que la deuxième, mais avec du dithering en plus.

 

Jul

32

Citation de docks :

 

il y a troncature comme expliqué plus haut, les 8 dernier bit sont supprimés, tout bonnemeent, et chaque échantillon 24 bit est arrondi à la valeur 16 bit la plus prchoe, exemple en 24 bit tu avais 1.254893, et en 16 bit ca te donnerais plus que 1.255

 

salut docks : ton "point" est en notation française ou américaine ?

Il ne peut pas s'agir de 1,254893 (1 virgule 25489) car les formats 16 et 24 bits sont en entiers, pas de virgule.

Tu ne pouvais donc parler que de 1254893 (1 million etc ...)

Or ce nombre est représenté par le profil binaire suivant : 100110010010111101101

Si on supprime les 8 bits de droite (poids faible), on obtient

 le profil suivant : 1001100100101

qui une fois reconverti en décimal donne 4901 et non 1255 icon_wink.gif

Moralité : Supprimer des bits ne revient pas du tout à enlever des chiffres au nombre à convertir.

Mais peu se préoccupent réellement de profils binaires dans les studios et cet article ne fait pas exception, il continue à véhiculer de telles approximations

Citation de docks :

 

Par contre j'ai pas tout compris non plus l'histoire du dernier LSB qui se ballade entre 0 et 1, parce que ça me laisse penser de la façon dont c'est dit que l'auteur oublie qu'il y a quand même 15 autres bits avant celui ci, et qu'il y a donc peu de chance qu'une série significative d'échantillons ait la même valeur, parce que ça aussi ça serait un problème, on aurai un signal continue, et là le dithering permet de le faire varier (c'est d'ailleurs utilisé dans la conversion A/N pour cette raison).

 

Il faut en fait en venir à ces profils binaires. En 24 bits, on peut coder 2^24 valeurs différentes. En 16 bits on peut en coder 2^16 (et toujours que des nombres entiers, sans virgule).

Le plus grand nombre en 24 bits qu'on peut vouloir convertir en 16 bits est donc 2^24, c'est-à-dire 16777216 . Le résultat de la conversion doit donner 2^16, c'est-à-dire 65536, ok ?

Le résulat de cette conversion est donc 256 fois plus petit que la valeur d'origine (65536 est 256 fois plus petit que 16777216)

On va donc diviser chaque valeur qui représente la courbe échantillonnée en 24 bits par 256 pour obtenir la courbe en 16 bits.

Certaines valeurs en 24 bits donnent des valeurs entières après conversion, mais la plupart des valeurs 24 bits donnent des valeurs décimales (à virgule) après ce calcul de conversion, qu'il va falloir arrondir. (Au lieu du calcul arithmétique que je viens de décrire, on peut pratiquer une opération logique de décalage de 8 bits vers la droite et dans ce cas, cet arrondi se fait automatiquement à la valeur par défaut)

On s'aperçoit qu'il y a un seuil mini en-dessous duquel le résultat est toujours = à zéro : il s'agit de toutes les valeurs en-dessous de 256. Toutes valeurs sous 256 divisées par 256 donneront 0 (avec arrondi par défaut). Ce qui donne bien un signal continu et nul. Mais c'est pas une histoire de "dernier bit qui se ballade", encore une belle approximation à laquelle on ne peut évidemment rien comprendre.

Il suffit de faire quelques calculs pour voir que dans les faibles valeurs on aura plus d'échantillons qui prendront la même valeur après conversion qu'avec les valeurs élevées, et que les défauts d'arrondi y sont proportionnellement plus importants.

Cela te convient-il comme explication docks ?

 

 

 

[ Dernière édition du message le 24/02/2011 à 22:11:14 ]

33
:bravo2:
nickel !
merci pour ces explications !
34

je t'en prie icon_wink.gif

 

ah oui, si je reprends la valeur exemple de docks :

1254893 divisé par 256 donne bien 4901,92578125

- ceci en valeur décimale si on fait le calcul arithmétique, sans arrondi

- et 4901 si on fait la manipulation logique de décalage

on est cohérent

35

Citation :

ton "point" est en notation française ou américaine ?

ni l'un ni l'autre, c'était un bête exemple pour imager ce qui se passe, y'avait pas de corrélation avec la réalité de la représentation.

Citation :

Cela te convient-il comme explication docks ?

oui, et c'est bien ce que j'avais cru déceler de la tentative d'explication du dossier. icon_bravo2.gif

36

Citation de ehgdae :

Moralité : Supprimer des bits ne revient pas du tout à enlever des chiffres au nombre à convertir.

Ben non, justement, c'est exactement cela et c'est la même chose, puisque les nombres sont représentés en binaire justement :

passer d'un intervalle [0 , 16.777.215] à un intervalle [0 , 65.535] ça veut dire réduire la taille des nombres et donc le nombre de chiffres qui les composent, des bits en l'occurence

Pourquoi restez-vous là à regarder le ciel, enchâssés dans le bleu du mystère préhistorique ?

37

J'ai plus envie de caresser le chat en 24 bits que le chat en 16 bits  bravo. Suis-je perfectionniste docteur ?

.

38


@ didjeko : d'après toi, 4901 et 1255 sont le même nombre icon_confused.gif  ... relis STP les calculs ou alors produits-en de plus convaincants icon_wink.gif

39

ehgdae,tu t'elcaterais plus sur un forum de mathematiciens,mrgreen ca doit surment exister......

Moi je ne comprend toujours pas pourquoi les lecteurs standard,chaine hifi autoradio etc,en 2011 lisent pas du 24 bit,et pourquoi les cd ne sont pas en 24 bit,ce serait plus simple pour nous.

40

0010100111010001101000101010110110010100111010001101000101
0101101100101001110100011010001010101101100101001110100011
0010100111010001101000101010110110010100111010001101000101

et sinon, oui le CD est mort, il y a bien eu les tentatives DVD-audio et SACD, mais je pense que visuellement ça ressemble trop au CD pour justifier des campagnes commerciales efficaces comme c'était le cas pour le passage vinyle > CD

on va donc passer direct au dématérialisé (qui ne veut pas dire "mp3" !!) mais je parle des collections "studio masters" en 24 bits sur les sites d'éditeurs qui se mettent en place ... et alors ce dithering pffff, ce sera plus qu'un vieux souvenir icon_volatilize.gif

41
Citation :
J'ai plus envie de caresser le chat en 24 bits que le chat en 16 bits bravo. Suis-je perfectionniste docteur ?

Certainement, mais ce n'est pas le sujet !

As-tu davantage envie de caresser sans dither (tramage) :
225px-Dithering_example_undithered_web_palette.png

Ou avec :
225px-Dithering_example_dithered_web_palette.png

jujupauty > excellente celle illustration :bravo:


Pour la représentation des nombres, en fait c'est plutôt docks qui a raison. Les plus grosses valeurs correspondent toujours à la tension électrique maximale qui peut sortir du convertisseur, que l'on soit en 16 ou en 24 bits. C'est bien la précision de la tension qui va changer entre 16 et 24 bits, et non pas sa plus grande valeur possible.

Imaginons un convertisseur d'amplitude max 1 volt, avec un mode 3 chiffres décimaux et un mode 5 chiffres décimaux :
- dans les deux modes les tensions max et min sont : +1 volt et -1 volt ; (ou plutôt : +0,99999 et -0,9999 en mode 5 chiffres)
- une valeur 0,84483 en mode 5 chiffres deviendra 0,845 en mode 3 chiffres
C'est un arrondi à la valeur la plus proche.

Cela dit...
Citation de ehgdae :
On va donc diviser chaque valeur qui représente la courbe échantillonnée en 24 bits par 256 pour obtenir la courbe en 16 bits.

Diviser par 2 c'est décaler de 1 bit vers la droite, c'est aussi tronquer de 1 bit. Diviser par 4 : 2 bits... diviser par 256 = tronquer 8 bits. Vous avez donc tous les deux raison ! ;)


Citation :
il y a bien eu les tentatives DVD-audio et SACD, mais je pense que visuellement ça ressemble trop au CD pour justifier des campagnes commerciales efficaces comme c'était le cas pour le passage vinyle > CD

C'est surtout que le gain est négligeable ; et que pour les chaînes hi-fi de énormément de gens (voire de tous) les premiers points à améliorer sont très nettement les enceintes et la pièce d'écoute.

En plus, avec la mode de la compression de dynamique, le volume moyen est plus élevé, donc les bits de poids faibles s'entendent d'autant moins, et les 24 bits ou le dithering ont d'autant moins d'importance.

Par contre le 24bits est intéressant à la prise de son (pour avoir de la marge...).

[ Dernière édition du message le 25/02/2011 à 02:13:58 ]

42

Pour avoir étudié le sujet de près...même pour un passage de 24 à 16 bits pour un couchage sur CD audio par exemple, appliquer du dithering ne sert à rien.

Je tente de m'expliquer :

La troncature que l'on effectue en diminuant le nombre de pas de quantification (en dynamique) rajoute donc des harmoniques (donc en fréquence) correspondantes à la périodicité du signal.

Le bruit de quantification obtenu cependant pour un passage 24 à 16 bit est cependant extrêmement faible. Tellement faible que pour une sinusoide à Odb en 24bit, on a un bruit de quantification à - 128 db en 16bits (et encore, c'est le niveau de la première harmonique impaire donc la plus forte) dans mes souvenirs.

Et -120db, en CD Audio, ce n'est pas codé, donc silence...

Bref, tout ça, c'est encore de la branlette, à moins de faire des bounces de 24 à 8 bits...

De plus, a moins de ne diffuser qu'un signal pur comme une sinusoide, le moindre enregistrement avec un peu de vie masquera de toute façon le bruit de quantification (si il est codé ! )...

Donc évitez de débourser de la thune pour cela...

43


Dr Pouet, c'est juste le plaisir de contredire ou quoi ? icon_mrgreen.gif

Bien sûr que ton arrondi en modes 5 vers 3 chiffres est exact, et aussi la question de la tension, mais lis bien : docks n'a pas parlé de cela, il a bien parlé de profil binaire. C'est sur ce point que j'ai répondu.

Et si tu me relis correctement, tu remarqueras que j'ai bien précisé que décaler (ou tronquer puisque c'est cette traduction de l'anglais qui est utilisée) de 8 bits consiste à diviser par 256 (et arrondir par défaut), il n'y a donc rien de nouveau.

44

Citation :

Tellement faible que pour une sinusoide à Odb en 24bit, on a un bruit de quantification à - 128 db en 16bits

 headscratch.gif là désolé mais j'ai loupé un épisode, pour moi le bruit de quantification est compris entre 0 et 1/2 pas de quantification, il sera donc bien plus haut que -128dB en 16 bit, donc plutôt aux allentours des -96dB

ehgdae-> te prend pas la tête, je coris qu'on a dit exactement la même chose, maid différemment c'est tout, bref au final on s'est compris (enfin, je pense) et c'est ça le plus important.

45

Le dithering est un sujet passionnant mais dans les faits le rendu n'a rien à voir avec la grossière photo du chat, celui qui saura déceler un bouce ditheré d'un pas ditheré A L'OREILLE j'aimerais bien qu'il poste ici, les exemples audios en question et qu'il nous dise ce qu'il entend mrgreen

Déplacer un micro lors d'un prise de son de 1cm aura 1 million fois plus de retombées sur le son qu'un dithering.

46

Citation de ehgdae :

 

Citation de ehgdae :

Moralité : Supprimer des bits ne revient pas du tout à enlever des chiffres au nombre à convertir.

Désolé, je maintiens que cette assertion est aberrante. Elle montre juste une ignorance des systèmes de numération, des règles de calcul en informatique et de la représentation des nombres. S'amuser à compter un coup en décimal, un coup en binaire, ça ne sert à rien puisque c'est la même chose, n'importe quel étudiant débutant en informatique le sait.

Diviser un entier par 256 ne donne pas forcément un "nombre à virgule" (i.e. un réel) de toute façon, parce que le calcul se fait peut-être en entiers (bien malin qui le sait, faudrait regarder le code source pour le savoir).

L'exemple de la photo est significatif du point sur lequel je suis intervenu : c'est un joli exemple visuel, mais c'est une vue de l'esprit hyper simpliste, puisqu'elle omet totalement le point le plus essentiel :

le format de l'image.

Une image, ça n'existe pas. Il existe plusieurs dizaines de formats de fichier image. L'algorithme de nettoyage de l'image n'est pas codé de la même manière et aura des effets différents selon le format de départ. tout dépend de la manière dont l'image est codée.

Pour du son numérique, c'est exactement pareil, descendre au niveau de règles arithmétiques, comme si elles étaient uniques et valables dans tous les cas, est une vue de l'esprit.

Pourquoi restez-vous là à regarder le ciel, enchâssés dans le bleu du mystère préhistorique ?

47
Bah si, l'image est intéressante parce-qu'elle permet de comprendre le principe du tramage. C'est même particulièrement parlant je trouve. Par contre, là où je rejoins fakou, c'est que c'est hyper visible sur un tel exemple, alors que c'est drôlement moins audible sur la conversion 24 -> 16 bits.


Citation :
parce que le calcul se fait peut-être en entiers (bien malin qui le sait, faudrait regarder le code source pour le savoir)

C'est bien connu en fait : l'interface audio (= la carte son) travaille en entiers, 16 ou 24 bits. En interne les séquenceurs travaillent en flottants, généralement 32 bits sauf 64 pour Sonar, et sauf ProTools qui travaille en virgule flottante, mais avec des marges bien conçues pour éviter les débordements.


Citation :
Il existe plusieurs dizaines de formats de fichier image. L'algorithme de nettoyage de l'image n'est pas codé de la même manière et aura des effets différents selon le format de départ.

Bon alors j'explique :

- dans la première image, c'est un simple arrondi qui a été fait. Mettons que l'image initial était en RGB avec chaque valeur sur 8 bits, l'image d'arrivée est en RGB avec chaque valeur sur 4 bits. Le passage de 8 à 4 se fait par troncature et arrondi. Le problème c'est que ça fait des effets de seuil, d'où les zones unies que l'on observe.

- dans la deuxième image, on a additionné un peu de bruit, d'un niveau similaire au 4ème bit, là où on fait la troncature. Si la valeur non bruitée était loin de la valeur du seuil (nettement en-dessous ou nettement au-dessus), le bruit ne change rien et le pixel sera de la même couleur que sur la 1ère image. Par contre si la valeur non bruitée est proche de la limite, sa couleur sera "au hasard" de l'une des 2 possibles. Ce sera un hasard un peu orienté : si la valeur était un peu au-dessus du seuil, il y aura plus de chances d'obtenir la valeur "haute".

En résumé, le bruit permet de faire une transition plus douce d'une valeur à l'autre, grace à ces nuages de points.

[ Dernière édition du message le 25/02/2011 à 11:28:24 ]

48

didjeko, c'est merveilleux, les 2 points que tu cites ne contredisent en rien ce que j'ai exposé moi-même.

49

Citation de zserie :

 

Pour avoir étudié le sujet de près...même pour un passage de 24 à 16 bits pour un couchage sur CD audio par exemple, appliquer du dithering ne sert à rien.

 Ah et bien c'est cool,alors je n'ai plus qu'a exporter direct mon projet en 16 bit,mais de toute facon,avec ou sans le dithering,j'entend pas la difference chez moi,sur que mes monitoring sont pas geniales loin de la,mais quand meme...j'entend rien

apres si je compare les deux fichiers dans wavelab,il voit bien quelques millions de differences,mais j'aimerais bien entendre ou?,

Donc,je me demande si ca marche bien UV22 hr,je n'entend rien de rien,suis peut etre sourd......icon_confused.gif

 

50

non mais on parle d'un ajout de bruit vers -90dBfs là, pas de mettre un gain de 24dB à 3kHz sur un équa, c'est évident que selon le style de musique (comme expliqué dans l'article) t'es pas prêt d'entendre quoi que ce soit, en tout cas que ça t'empêche pas de dormir, si t'entends rien tu le mets pas.

Le sujet est intéressant pour l'aspect théorique et technique, maintenant en pratique, y'a 1 million de choses plus importantes pour la qualité sonore que le dithering.

 

[ Dernière édition du message le 25/02/2011 à 12:39:19 ]