Se connecter
Se connecter

ou
Créer un compte

ou

dither ou pas de dither pour du 16bits destiné à être re-encodé en mp3

  • 6 réponses
  • 4 participants
  • 772 vues
  • 6 followers
Sujet de la discussion dither ou pas de dither pour du 16bits destiné à être re-encodé en mp3
Question dont j'ai quasi la réponse mais d'autres avis bienvenus...
Donc avant d'envoyer mes WAV en 16bits (format requis) pour une distribution globale (itunes, spotify, amazon ect....) je me dis qu'il vaudrais cette fois mieux éviter de ditheriser car ces fichiers vont être encodés ensuite chez presque tous les diffuseurs et du dithering encodé en mp3 (ou autre) c'est pas joli joli.......même question pour youtube mais là je vais me faire quelques tests d'écoute....pour le mp3 aussi finalement...

[ Dernière édition du message le 28/06/2016 à 23:20:01 ]

2
Citation :
du dithering encodé en mp3 (ou autre) c'est pas joli joli
Tu tiens ça d'où ? Quand tu rippes un CD pour suivre avec une compression en mp3 tu as déjà noté un problème avec le dithering qui a été appliqué avant gravure ?

Lorsque tu passes en 16 bits tu introduits l'erreur systématique ; avec ou sans dithering le bruit est présent et sera encodé dans le mp3 et consorts.
Le rôle du dithering est de s'assurer que le bruit de quantif soit un bruit blanc ; sans dithering et lorsque le signal a une amplitude faible il y a toutes les chances que le bruit de quantif ne soit pas un bruit blanc additif mais une distorsion bien audible (et désagréable).


Un bon test : Faire l'essai avec une queue de reverb assez longue, ou une note de piano tenue.
Sans dithering, lorsque la note sera en train de mourir, l'erreur de quantif deviendra audible.
Passe ensuite à l'étape de compression et tu entendras sans doute que le dithering est utile.

[ Dernière édition du message le 29/06/2016 à 07:29:25 ]

3
+1 avec EraTom : le dithering ne doit être appliqué qu'une seule fois.
4
Citation :
+1 avec EraTom : le dithering ne doit être appliqué qu'une seule fois.

pas de doute sur ce point et c'est d'ailleurs ce problème d'un "bruit" ajouté deux fois qui me pose problème avec l'encodage Mp3 (qui ajoute du bruit) sur un fichier déjà ditherisé....d'ailleurs dans le logiciel Reaper lorsqu'on veut faire un "render" d'un projet directement en Mp3, l'option "dither" est "grisée" et donc totalement inactive.....
Il y a quelques temps un Afien avait isolé le bruit généré par l'algoritme "Franhofer" ce qui m'avait convaincu de passer au "Lame" mais il reste que ce bruit s'ajoutait au dither et que je ne connais pas le niveau ni la nature du bruit généré par la multitude d'algoritmes utilisés par les sites de streaming et de vente de mp3
Citation :
Quand tu rippes un CD pour suivre avec une compression en mp3 tu as déjà noté un problème avec le dithering qui a été appliqué avant gravure ?

il faudrait comparer avec le même cd qui n'aurait pas été ditherisé

Et pour être précis, en fait il y a des années que je n'ai plus encodé de CD en Mp3 et quand j'achète de Mp3 sur le net je trouve souvent la qualité mauvaise même en 320) Je précise que je n'achete pas sur Itunes qui à priori encode à partir du 24bits au moins pour les musiques "masterisées pour itune".....Le Mp3 aujourd'hui se conçoit en encodage direct depuis du 24bits ou du 32bits et c'est notamment ce type de Mp3 que les éditeurs fournissent aux stations de radio. Donc ma problématique aujourd'hui c'est d'arriver au comsommateur/auditeur avec un son le moins "pourri" possible d'autant que je fais des efforts depuis quelques temps pour me limiter à 10dB de dynamique et offrir un profondeur sonore maximale.

[ Dernière édition du message le 29/06/2016 à 15:41:54 ]

5
La réponse simple : Si tu réduis la quantification avant diffusion, quelque soit le traitement subi derrière, applique un dithering.


Pour la réponse détaillée (désolé, il faut s'accrocher) :

Citation :
pas de doute sur ce point et c'est d'ailleurs ce problème d'un "bruit" ajouté deux fois qui me pose problème avec l'encodage Mp3 (qui ajoute du bruit) sur un fichier déjà ditherisé....

La requantification vers un nombre de bits plus petit ajoute toujours une erreur de troncature (ou arrondis, spectralement ca revient au même), dithering ou non :
- tu as signal s(t) qui évolue au cours du temps t ;
- sa version requantifiée sq(t), à chaque instant t ;
- et l'erreur d'arrondis : err(t) = sq(t) - s(t)

De manière immédiate tu as alors :
sq(t) = s(t) + err(t)

Quand tu écoutes la version quantifiée sq(t) c'est comme si tu écoutais s(t) auquel err(t) a été ajouté.
C'est err(t) que l'on appelle le bruit de quantification et il est présent dès lors qu'il y a quantification.

L'amplitude crête de err(t) est au maximum égale au pas de quantif q (le bit de poids faible) mais sa valeur peut à chaque instant être entre -q/2 et q/2 (0 si le signal s(t) tombe pile sur une des valeurs de l'échelle quantifiée, par exemple).
Pour 16 bits, le SNR de quantif sur une sinusoïde test pleine échelle est de -91dB : Ce n'est rien du tout.

Si le contenu du signal de départ est assez riche et qu'il varie beaucoup, err(t) prend des valeurs de façon "aléatoire" dans l'intervalle -q/2 et q/2 (le signal s(t) tombe "au hasard" entre deux graduation de l'échelle quantifiée) ; on montre alors que err(t) est un bruit blanc uniforme ce qui est "transparent" à l'oreille.

Si le contenu du signal de départ est pauvre (faible variation d'amplitude et/ou contenu spectral pauvre) alors il y a un risque que err(t) ne soit pas aléatoire ; le bruit n'est plus blanc et devient corrélé au signal. Des artefacts sonores peuvent devenir audibles et sont rarement agréables à l'écoute.

Le but du dithering est d'éviter et prévenir ce dernier phénomène. Il y a différentes techniques mais elles visent toutes le même but : agiter le bit de poids faible suffisamment pour que err(t) soit un bruit blanc quelque soit le contenu du signal de départ.
Il y a des techniques qui consistent à réinjecter l'erreur de quantif en conservant la puissance totale du bruit de quantif (on conserve le SNR de 91dB sur 16 bits) mais on peut montrer qu'elles risquent encore de laisser passer des bruits de quantif corrélés au signal.

La technique qui ne laisse rien passer consiste à ajouter au signal d'origine un bruit (en plus de celui de la quantif) pour être sûr que le contenu sera toujours assez riche afin d'obtenir le bon comportement de err(t).
Il faut bien se rendre compte que ce bruit supplémentaire a une puissance de l'ordre de grandeur de celle du bruit de quantif ; le SNR est très faiblement dégradé.
En plus, comme on est malin, au lieu d'ajouter un bruit quelconque on va le mettre en forme pour que son contenu spectral soit dans une bande où l'oreille n'entend pas grand chose : si tu pousses ton ampli je te garantis que ce ne sont pas ces bruits numériques (dithering et quantif) que tu vas entendre mais le souffle analogique de ton ampli...

Autant te dire que tu es tranquille.

Citation :
d'ailleurs dans le logiciel Reaper lorsqu'on veut faire un "render" d'un projet directement en Mp3, l'option "dither" est "grisée" et donc totalement inactive....
Oui mais ça ne suffit pas à deviner ce qu'il se passe derrière.
Je ne pense pas que Reason passe par une étape de quantif sur 16bits avant de passer à la compression : il travaille directement en 32bits float (ou 64) et la quantif finale du mp3 est celle prévue par le format compressée. L'étape de dithering que tu évoques est alors sans objet (il n'y a pas de requantif avant compression).

Citation :
Il y a quelques temps un Afien avait isolé le bruit généré par l'algoritme "Franhofer" ce qui m'avait convaincu de passer au "Lame"
Je m'en souviens aussi. Ce n'est pas la même chose du tout et écouter le résidu de compression est un peu abscons (je l'avais dit à l'époque mais je n'avais pas insisté parce que tout le monde s'en foutait :-p ).

Je m'explique :

Si l'on veut compresser un signal sans perte, il y a une limite de taux de compression qui ne peut pas être dépassée. Cette borne est directement dépendante de la quantité d'information présente dans le signal.
C'est un problème résolu, on sait faire des algo qui atteignent la compression max moyennant un temps de calcul nécessaire.
En aparté : L'avantage du FLAC par rapport au ZIP c'est que zip utilise un algo "générique" pour tout type de fichier alors que FLAC exploite des connaissances a priori propres aux signaux audios qui lui permettent de converger vers la compression sans perte "optimale" bien plus rapidement (je simplifie mais c'est l'idée) et de décompresser "en temps réel".

Une fois cette limite atteinte, si l'on veut réduire d'avantage la taille du fichier alors on n'a pas le choix : il faut accepter de perdre une partie de l'information présente dans signal.
La question est alors de savoir ce que l'on peut perdre... Et des modèles psychoacoustiques ont été élaborés pour savoir prioriser les info du signal.

L'algo de destruction de l'information analyse le contenu, décide en fonction du modèle psychoacoustique et d'un objectif de qualité ou de taux de compression ce qu'il doit garder ou peu virer.
Ensuite, il présente à la partie compression d'info un signal évidé d'une partie de son contenu.

Le résidu va alors être constitué de tout ce que l'algo de destruction s'est autorisé à détruire conformément à un modèle psychoacoustique. Du coup, ça n'a pas vraiment de sens d'écouter ce résidu seul puisque l'on n'a plus tous les phénomènes masquages qui interviennent.

Par exemple, on sait que l'oreille n'est pas capable de distinguer deux sinusoïdes de fréquences proches ; c'est la "largeur de bande critique". A partir de 17kHz, la largeur de bande critique est de ~5kHz (de mémoire). Oui, l'oreille humaine est bien nulle.
Si tu as un signal avec deux sinusoïdes de fréquences 12kHz et 14kHz ton oreille entend la même chose qu'une seule sinusoïde 13kHz ; l'algo vire les deux pour n'en mettre qu'une. Deux fois moins d'info à coder ; le taux de compression fera x2 et ton oreille est bien feintée !

Maintenant si tu fais la différence pour écouter ce "bruit" de compression tu vas te retrouver avec un signal qui contient TROIS sinusoïdes : 12kHz, 13kHz et 14kHz.
Et à l'écoute tu vas te dire "-Wouhaa ! Mais c'est quoi ce bordel !?"... Ben en faite, si tu m'as suivi, pas grand chose de pertinent.

Et ceci n'a rien à voir avec le bruit de quantif et le dithering.


De toutes façons le mieux c'est que tu fasses l'essai toi-même :
- Synthétise une simple note mourante ou applique un fade out assez long ;
- Sors en 32bits ;
- Quantifie en 16 bits avec dithering ;
- Sans dithering ==> à la fin de la note tu vas entendre une sorte de grincement ;
- Compresse en mp3 les 3 sorties et compare.
6
merci Eratom ce que tu écris pointe exactement les questions que je me posais même si pour l'algo Franhofer j'ai l'impresion qu'ils ajoutaient un léger bruit en plus pour "lisser" le son compressé et d'ailleurs l'algo "Lame" est beaucoup moins "bruyant".
Au final, j'ai envoyé mon titre (un single) pour la distri en 16 bits dithérisé mais je me penche un peu sur cette question de dithering en ce moment et ce qui tu écris sur la valeur de -91dB me parle complètement car j'utilise un dithering sur 1bit 1/2 qui est la valeur utilisé par Reaper et que je reproduis avec le classqiue "MDA dither" toujours sans wave-shaping. Peut-être tester le dither sur 1 seul bit ???
J'ai fait quelques tests et le 16bits non-ditherisé ne rend pas bien sur youtube je trouve le son un peu agressif bien que plus propre (forcément).....par contre l'algo intégré à mon logiciel de montage vidéo fait ressortir ce même 16bits non-dither de façon tout à fait agréable.....mais évidemment je n'ai pas le temps ni l'intention d'aller tester tous les algo proposés par les diffuseurs....Une autre piste consisterait à passer au "mastered for itunes" mais ça demande un prestataire mastering agréé et ça limite à itunes...Je vais aussi proposer mes musiques en non-compressé 16bits en chargement direct et je propose déjà mes mp3 encodé "maison" depuis ma STAN......

[ Dernière édition du message le 30/06/2016 à 16:15:42 ]

7
flag