Loading

Partagez
Aller en bas
avatar
Ingénieux sur qui on peut compter
Ingénieux sur qui on peut compter
Partage : 447
Voir le profil de l'utilisateur

La virgule flottante

le Jeu 17 Déc 2009, 14:17
Bonjour à tous,

N'étant pas informaticien dans l'âme, je me demandais quel était le réel intérêt d'une résolution en 32 bits float comparé à des résolutions en nombres entiers comme le 24 bits ou le 48 bits.
Est-ce que ça a un impact lors d'une down conversion?

Merci pour votre aide.
Membre d'Honneur
Membre d'Honneur
Partage : 689
Voir le profil de l'utilisateur

Re: La virgule flottante

le Jeu 17 Déc 2009, 23:41
Pfffff...

Je passe...

Désolé !
avatar
Moderateur Global
Partage : 1044
Voir le profil de l'utilisateur

Re: La virgule flottante

le Ven 18 Déc 2009, 00:32
confused confused affraid affraid scratch affraidaffraid confused confused








Schizoide

lol!
avatar
Membre d'Honneur
Membre d'Honneur
Partage : 649
Voir le profil de l'utilisateur

Re: La virgule flottante

le Ven 18 Déc 2009, 00:57
j'espère ne pas écrire une ineptie, auquel cas il ne faudra hésiter à me corriger, mais de mémoire, les algorythmes utilisant des claculs en 32-bits à virgule flottante, permette d'économiser et d'optimiser les temps de calculs d'une part en adaptant le besoin de la puissance de calcul aux donées qui sont à traiter. C'est une norme développée et standardisée par l'IEE 754... elle correspond à des variables informatiques du système binaire et reste utilisée comme base primaire même pour pour d'autres mode (le "64 bits" est en fait un 32-bits flottant modifié) Le principal intérêt de faire des calculs à virgule flottante, c'est gagner du temps et de l'énergie pour transferer les données d'un point à un autre.

Les moteurs basés sur un système à profondeur fixe vont traiter toutes les données de la même façon quelle que soit la quantité et son flux, avec une mantisse fixe et réduite (un nombre décimal, qu'il soit en écriture décimal ou en binaire, est composé d'une "caractéristique" et d'une "mantisse", c'est la jonction des deux qui permet d'écrire le nombre sous sa forme visible...) donc pour les opérations très simples, ils vont se compliquer la vie et ralentir l'ensemble car ils doivent faire des approximations en plus d'effectuer le calcul précis, sans compter que les bits de mantisse sont moins nombreux sur du 16 ou 24 bits...

L'idéal, pour la précision, est d'utiliser les sytèmes à virgule fixe : seul soucis, il faudrait rendre variable et infini les bits de mantisse et permettre donc que la profondeur de bits soit elle-même variable en temps réel... c'est impossible.

Cela permet aussi, normalement, à l'algorythme d'adapter le besoin de précision sur le résultat quantique en fonction de la requête : si la valeur s'approche d'un entier simplifié, l'approximation due à la virgule flottante va être très précise... à l'inverse, plus la valeur de l'entier est complexe en binaire, plus le calcul sera une approximation ayant une marge d'erreur rectifiée. C'est le seul désavantage connu de ce principe de calcul.

Pour essayer de t'illustrer ça par une analogie, c'est un peu comme utiliser du CBR et du VBR...

Le 32-Bit floatting point va donc te donner des valeurs avec plus de précision dans la rapidité que les systèmes à virgules fixes MAIS qui doivent effectuer des arrondis arbitraires, sachant qu'un 32-bit floatting est une valeur déjà presqu'infinie et avec une marge d'erreur quasi nulle à l'échelle humaineinfinie (enfin, dans l'infiniment long, il y a quand même des erreurs ! bien sur, mais on ne travaille pas souvent au-delà n 10 puissance 23 où 23 est le nombre de bits de mantisse !!!).


MAIS D'OÙ VIENT LE TERME "VIRGULE FLOATTANTE" ???

et bien pour coder et quantifier, la norme IEEE754 va déplacer la virgule d'une donnée (qui est donc mathématique un chiffre puisque codée en binaire) et ramener cette virgule vers le "signe" du bit avant son esposant et en faisant donc la jonction entre la matisse et l'esposant... ce qui va permettre à l'algorythme de gagner en rapidité puisqu'il ne traitera pas le signe du bit et s'occupera de l'exposant et de la mantisse en une seule opération, alors quavec un codage en bit non-variable (sans virgule flottante) il faut que l'algorythme traite une opération pour le signe, ue seconde pour l'exposant et une dernière pour la mantisse... pour arriver au même résultat en théorie et rarement à la même précision en pratique, puisque la mantisse ne dispose pas d'autant de bits...

je suis étonné de la précision de l'article de Wikipédia qui écrit ceci :

Les nombres à virgule flottante sont les nombres les plus souvent utilisés dans un ordinateur pour représenter des valeurs non entières. Ce sont des approximations de nombres réels.
Les nombres à virgule flottante possèdent un signe s (dans {-1, 1}), une mantisse m (aussi appelée significande) et un exposant e. Un tel triplet représente un réel s.m.beb est la base de représentation (généralement 2 sur ordinateur, mais aussi 16 sur certaines anciennes machines, 10 sur de nombreuses calculatrices, ou éventuellement toute autre valeur). En faisant varier e, on fait « flotter » la virgule décimale. Généralement, m est d'une taille fixée.
Ceci s'oppose à la représentation dite en virgule fixe, où l'exposant e est fixé.
Les différences de représentation interne et de comportement des nombres flottants d'un ordinateur à un autre obligeaient à reprendre finement les programmes de calcul scientifique pour les porter d'une machine à une autre jusqu'à ce qu'une norme soit proposée par l'IEEE.

voilà... c'était pour définir un peu ça...

maintenant, pour savoir si oui non, cela impacte dans le cas du re-sampling vers ue profondeur plus basse : oui, évidemment, puisque la précision de traitement est diminuée... mais il est assez rare que l'oreille humaine soit capable de le sentir... sauf dans des situations très particulière.

Pour faire également une analogie, je dirait que tu n'entendra pas de différence entre du 48Khtz et du 96Khz dans la plupart des cas... mais si tu descends à 11000Htz... tu risques d'avoir des soucis d'aliasing et donc entendre la perte de résolution... et bien c'est pareil pour la profondeur...

AUTRE QUESTION : POURQUOI ALORS TRAVAILLE-T-ON EN 32-BITS FLOAT ET ÉCOUTE-T-ON EN 16 ou 24 BITS ???

et bien là encore c'est assez facile à comprendre : le 32-bit flottant va quand même monopoliser une puissance importante et générer des variations très fortes sur le débit de donées... (ne parlons même pas du 64-bits qui est encore pire ou le 64 étendu !!!) C'est une lecture directe et linéaire des données, brute de forme !!!
à l'inverse le 16-bit et le 24-bits vont tronquer la mantisse et laisser le flux de données se gérer grâce à l'exposant et son signe... les éléments de la mantisse n'étant lus et compris qu'après ce tri constant qui permet de récuperer de la vitesse de lecture car il n'y a pas de calculs simultanés.

bon, allez, je vais aller faire dodo ! ça m'a épuisé ça !

_________________
Dire ce que l'on pense... Et penser ce que l'on dit.


Qui peut le plus, peut le moins... Rarement l'inverse !!!
avatar
Co Adminateur
Partage : 847
Voir le profil de l'utilisateur

Re: La virgule flottante

le Ven 18 Déc 2009, 01:12
Concernant le pourquoi écoute t'on en 16 ou 24 bits, j'aurais dis que c'est le format final de nos fichiers audio, 16 bit en CD, 24 en cinoche...
avatar
Membre d'Honneur
Membre d'Honneur
Partage : 649
Voir le profil de l'utilisateur

Re: La virgule flottante

le Ven 18 Déc 2009, 01:19
non, c'est la contrainte technique : si les appareils devaient travailler en 32 bits virgule flottante (ou 64)... il faudrait incorporer des ordinateurs ou des composants particulièrement performants pour pouvoir le faire... hors, pour de la lecture simplement (donc pas de modifications et donc pas de calculs particuliers) ce serait vraiment inutile et honéreux pour rien.

Tout comme il n'y a pas d'intérêt véritable à aller au-delà de 44100Hz pour un CD, cela ferait augmenter le coût de tous les appareils, baisser la durée enregistrable (puisqu'à un nombre de données égales, avec une résoltion plus haute, on enregistrerait moins de temps) et finalement, pour le commun des mortel, ça ne ferait pas une réelle différence... et ainsi de suite.

Par contre, pour faire de l'édition audio, de la MAO et autres besoins spécifiques, la virgule flottante présente 99% d'avantages et d'intérêts...

_________________
Dire ce que l'on pense... Et penser ce que l'on dit.


Qui peut le plus, peut le moins... Rarement l'inverse !!!
avatar
Co Adminateur
Partage : 847
Voir le profil de l'utilisateur

Re: La virgule flottante

le Ven 18 Déc 2009, 01:26
Je ne dit pas le contraire... Mais une des raison est tout de meme l'ecoute du support final...

sinon, concernant la Fe effectivement, le 44,1 est bien suffisant, quand on voit le mp3 se poser en nouvelle reference...
avatar
Ingénieux sur qui on peut compter
Ingénieux sur qui on peut compter
Partage : 447
Voir le profil de l'utilisateur

Re: La virgule flottante

le Ven 18 Déc 2009, 10:26
ific29 a écrit:
Schizoide

lol!
Oui je sais, j'ai une grande attirance sexuelle pour les mouches.


privteer a écrit:
Par contre, pour faire de l'édition audio, de la MAO et autres besoins spécifiques, la virgule flottante présente 99% d'avantages et d'intérêts...
Alors d'abord, merci beaucoup Stéphane pour tes explications.
Mais pour faire un parallèle avec l'échantillonnage...il est souvent conseillé de travailler en 88,2 Khz plutôt qu'en 92 Khz lorsque l'on envisage par la suite de tout descendre en 44100.
Hors, pour la profondeur, si au final on doit ramener un projet à 44100, vaut-il mieux travailler en 24 bits, 48 bits, ou bien en 32 bits Float??? Qu'est-ce qui causera le moins d'aberration au final?
avatar
Moderateur Global
Partage : 2385
Voir le profil de l'utilisateur

Re: La virgule flottante

le Ven 18 Déc 2009, 11:45
La réduction de bits étant mieux géré que la réduction en fréquence, je te dirais que ça dépend plus des capacités de ta machine et de ce qu'elle peut supporter.

_________________
"Dans le son, les règles sont là pour être transgressées. Votre oreille est seule juge et le bon goût votre avocat"
avatar
Membre d'Honneur
Membre d'Honneur
Partage : 649
Voir le profil de l'utilisateur

Re: La virgule flottante

le Ven 18 Déc 2009, 12:27
Tu ne choisis pas : la plupart du temps, le DAW (cr je suppose que nous parlons de traitement via des DAW ici) va lui-même gérer ça... ce n'est pas une option. Son moteur audio est configuré pour travailler en virgule flottante.
Après, lorsque tu est en mode lecture ou en export, là, tu peux chosir... mais le fonctionnement interne du DAW, c'est l'éditeur/developpeur qui le choisit.

Personnellement, je pense que pour la lecture et l'export, sauf quand le support l'impose différemment, le 24-Bits est de loin la profondeur qui est la plus performante sans nécessité une configuration de folie... le 24-bits est vraiment très précis et à moins que tu ne travailles 1/15360ème millième de seconde (le chiffre n'est hasardeux... ) tu auras peu de chances de sentir une gêne ou une perte !

_________________
Dire ce que l'on pense... Et penser ce que l'on dit.


Qui peut le plus, peut le moins... Rarement l'inverse !!!
avatar
Co Adminateur
Partage : 3760
Voir le profil de l'utilisateur

Re: La virgule flottante

le Ven 18 Déc 2009, 13:23
Alors moi je n'ai pas tout compris à ton message Privteer... Il y a des passages ardus, c'est une traduction ? pendant un moment j'ai même cru que c'était une blague ("Pour essayer de t'illustrer ça par une analogie, c'est un peu comme utiliser du CBR et du VBR... " Shocked ça parle à quelqu'un ?)

D'abord, attention à ne pas mélanger, la dynamique et la réponse en fréquences sont deux choses indépendantes
La dynamique (évolution du niveau) est codée sur N valeurs représentant le niveau. Par exemple en 16 bits, 65 536 valeurs, en 24 bits 16 777 216 valeurs. Donc avec une grande profondeur soit c'est plus fin, soit on a une plage plus grande.
La réponse en fréquence dépends de l'échantillonnage, c'est à dire que l'on mesure le niveau (avec la précision choisie plus haut) N fois par seconde. 44.1 Khz veut dire 44100 fois par seconde. Plus la valeur est grande, plus on pourra reproduire des fréquences élevées et des signaux à courtes transitoires.
Il n'y a donc pas de rapport entre profondeur (24 bits par exemple) et temps (1/15360ème millième de seconde)

Pour en revenir au sujet, pour un support final comme le CD, 16 bits suffisent pour coder plus de 100 dB de dynamique, c'est donc tout a fait suffisant.
A la prise, il est avantageux d'avoir quelques bit en plus, car cela permet d'augmenter la réserve avant saturation (quelques bits de "headroom") en gardant un bon rapport signal/bruit. A ce stade le signal peut avoir une grande dynamique, alors que sur le support final sa dynamique est réduite (par le mixage, les compressions, les réverbs etc)

Le format flottant permet quant à lui de coder des valeurs avec une plage beaucoup plus grande (presque infinie). Exemple en base 10, imaginons que l'on code sur 4 chiffres, on pourrait avoir des valeurs de 0000 à 9999.
En virgule fixe, par exemple, de 00.00 à 99.99.
En virgule flottante, on va coder une partie fixe et une puissance, si l'on reste en base 10 pour faire plus simple, exemple toujours sur 4 chiffres :
0.00e0 à 9.99e9 (je mets un petit "e" pour représenter "... multiplié par 10 puissance..." exemple 80=8x10=8.00x10 puissance 1=8.00e1), on a alors une plage dont les valeurs peuvent aller de 0 à 9 990 000 000, soit juste une plage cent millions de fois plus grande, toujours avec 4 chiffres, donc pas plus de mémoire utilisée !

Autre avantage, en virgule flottante la plage dynamique est énorme (presque infinie), c'est pratique dans les DSP et autres calculs numériques pour qui l'"overflow" (dépassement de capacité en français, ou saturation pour utiliser un terme bien connu des ingénieux) est à éviter absolument.

Un exemple concret : si tu multiplie en virgule fixe 80.00x40.00=3200.00>99.99 c'est à dire que deux mots de 4 chiffres donne un résultat à 6 chiffres=ça sature, on ne pourra pas le coder avec 4 chiffres sous la forme xx.xx
Par contre, le même calcul en virgule flottante donnerais 8.00e1x4.00e1=3.20e3, pas de problème !

Pour résumer :
- Pour l'enregistrement ou le live, forte dynamique donc intéressant de disposer de 24 bits.
- Pour le mixage, calculs d'effets donc intéressant d'être en virgule flottante.
- Pour la diffusion, économie de stockage et dynamique réduite, on peut donc se contenter de 16 bits.

_________________
"Caminantes, no hay caminos, hay que caminar" (Luigi Nono)
"Working the room, keeping people happy and relaxed is half of mixing successfully" (Mixerman)
George Massenberg said, "Get a clue. There's a reason mixing seems simple: it is simple . . . Learn how to do something useful; learn how to write. Learn how to do electronic CAD, and give me a call"
avatar
Ingénieux sur qui on peut compter
Ingénieux sur qui on peut compter
Partage : 447
Voir le profil de l'utilisateur

Re: La virgule flottante

le Ven 18 Déc 2009, 15:48
madees a écrit:
Pour résumer :
- Pour l'enregistrement ou le live, forte dynamique donc intéressant de disposer de 24 bits.
- Pour le mixage, calculs d'effets donc intéressant d'être en virgule flottante.

- Pour la diffusion, économie de stockage et dynamique réduite, on peut donc se contenter de 16 bits.
Et une fois la partie enregistrement terminée, comment fait-on pour passer de 24 bits à 32 bits float dans un même projet?
avatar
Moderateur Global
Partage : 2385
Voir le profil de l'utilisateur

Re: La virgule flottante

le Ven 18 Déc 2009, 16:42
madees a écrit:("Pour essayer de t'illustrer ça par une analogie, c'est un peu comme utiliser du CBR et du VBR... " Shocked ça parle à quelqu'un ?)
L'africain l'a rien compris non plus.

En tout cas une fois de plus merci Madees pour cette explication qui débroussaille, bien est simplement, les quelques infos que j'avais sur le fonctionnement de la virgule flottante.

_________________
"Dans le son, les règles sont là pour être transgressées. Votre oreille est seule juge et le bon goût votre avocat"
avatar
Donateur
Partage : 1435
Voir le profil de l'utilisateur

Re: La virgule flottante

le Ven 18 Déc 2009, 17:28
madees a écrit:("Pour essayer de t'illustrer ça par une analogie, c'est un peu comme utiliser du CBR et du VBR... " Shocked ça parle à quelqu'un ?)

Alors, de souvenir:

CBR: Constant Bit Rate
VBR: Variable Bit Rate

Ce sont des mode a choisir lors d'une compression audio (trés souvent pour le mp3, voir mp4 pour le streaming) mais bon j'en sais pas plus; et ça a peut-être des application beaucoup plus large, mais là je suis larguer !
Moderateur Global
Partage : 613
Voir le profil de l'utilisateur

Re: La virgule flottante

le Sam 19 Déc 2009, 09:47
Super explication Madees, tu viens de m'ouvrir les yeux là dessus

avatar
Membre d'Honneur
Membre d'Honneur
Partage : 649
Voir le profil de l'utilisateur

Re: La virgule flottante

le Sam 19 Déc 2009, 11:49
mon analogie voulait dire que le VBR va utiliser un calcul qui s'adapte aux données : lorsqu'il y a peu de données, le calcul de l'algorythme est peu intense, les donées "transformées" sont des données utiles et moins nombreuses que pour le CBR qui va "remplir" le fichier même si c'est du silence qui est converti... le VBR tiendra compte du silence et ne convertira pas des données inutile... il s'adapte.

Et bien les calculs à virgule flottante aggissent un peu de la sorte : ils s'adaptent aux besoins grâce à leur systeme qui permet de couvrir des plages de calculs plus grandes que les systèmes à virgule fixe...

désolé de ne pas avoir été aussi efficace que Madees, mais c'est avec mes souvenirs datant d'une dizaine d'années que je vous ai spontanément proposé mon explication.
(Mais pourquoi j'ai fait Réa et pas Son moi en spécialité ???!!!??? :face: )

Merci Madees d'avoir expliqué avec plus de simplicité...

_________________
Dire ce que l'on pense... Et penser ce que l'on dit.


Qui peut le plus, peut le moins... Rarement l'inverse !!!
avatar
Ingénieux trés motivé
Ingénieux trés motivé
Partage : 212
Voir le profil de l'utilisateur

Re: La virgule flottante

le Lun 21 Déc 2009, 12:03
SCHIZOIDE a écrit:
Et une fois la partie enregistrement terminée, comment fait-on pour passer de 24 bits à 32 bits float dans un même projet?

Hello,
Je prend la discutions un peu en cours de route.

Le 32 Bit Float est le format de traitement par default de ton DAW. Il est automatiquement utilisé pour tout les traitements appliqué a ta piste audio 24Bits.
En fait, ce n'est pas le format de ton fichier audio, mais le "moteur" du DAW que tu utilise ( ou de tes periph hardware )
Pour synthétiser ce qui a été dit plus tôt, le fait de manipuler des nombres entiers (multiplier, diviser, ajouter) amène immanquablement l'apparition de nombres décimaux. D'où l'intérêt du moteur en virgule flottantes.

Par contre, attention a la re-quantification abusive a tout va. Ne vas pas convertir ta prise faite en 16 en 24 en 32 sous pretexte que tu aura plus de dynamique pour rajouter ta reverb en plug in. Toute re-quantification entraine une modification de ta forme d'onde. Ton logiciel (ou ton hard) va créer un arrondi (alternativement vers le haut et vers le bas) de façon cyclique et qui devient nettement audible par l'oreille humaine (déformation harmonique). Tu gagnera peut etre en dynamique, mais tu vas perdre pas mal de paquets en cours de route, donc de la définition.
L'idéal est de ne re-quantifier qu'au mastering, tout en fin de chaine, juste avant le pressage du disque en 16bits, et de ne le faire qu'une seule fois.

Sinon, si tu est obligé de re-quantifier pour diverses raisons, utilise un Dithering associé a un Noise Shaping.
En fait, le Dithering rajoute un bruit qui empêche d'utiliser un modèle d'arrondi régulier. Le bruit rajoute un modèle aléatoire qui fait que les erreurs (inévitables) ne sont jamais répétées et deviennent moins audibles. L'erreur de quantification sera donc aléatoire, et moins évidente par l'oreille qu'une déformation régulière (cyclique) de la forme d'onde.

Le Noise Shaping est une sorte de bouzin (et je pese mes mots) qui rend le Dithering moins audible car descendu dans une zone audio peu perceptible... a ne jamais utiliser seul, sinon il déforme tout simplement le signal audio... ça serais bête...

( Pour les hardcores qui veulent tout savoir, c'est un prodécé de rétroaction qui utilise la valeur de l'erreur de l'échantillon précédent. L'échantillon courant se voit incrémenté de la valeur de l'erreur d'échantillonnage de l'échantillon précédent. L'erreur de quantification est appliquée (boucle de rétroaction) au signal. Cela revient à appliquer un filtre dont la fréquence est commandée par la quantité d'erreur de l'échantillon précédent. Oula, donne mal au crane hein Very Happy Wikipedia est mon ami )

Voili Voilou,
Pour une bonne re quantification, faite confiance a votre ingé son Mastering. Vous pouvez lui donner du son en 24 Bits, s'il est bien équipé, il sera jouasse de faire tourner ses compresseurs a cette hauteur la Smile
avatar
Ingénieux sur qui on peut compter
Ingénieux sur qui on peut compter
Partage : 447
Voir le profil de l'utilisateur

Re: La virgule flottante

le Lun 21 Déc 2009, 13:19
Merci Slaan.
Mais puisqu'il s'agit du moteur audio du DAW, je ne comprend pas que l'on puisse choisir pour traitement le 32 bits float directement sur une carte digi par exemple.
avatar
Ingénieux trés motivé
Ingénieux trés motivé
Partage : 212
Voir le profil de l'utilisateur

Re: La virgule flottante

le Lun 21 Déc 2009, 13:28
Mm, Pour les protools, il me semble que les traitements audios sont réalisés par la carte digi elle même, et non pas de façon logicielle.
Peut etre esce cela que tu peux choisir ?

Il me semble que sur tout les Steinberg, tu n'a pas le choix, c'est forcement du 32 float pour le traitement. Pour protools peut être peut tu choisir. Tout dépendra de ton hard.

Teste differentes valeur ! Tu nous diras si tu sens la différence Wink
Ingénieux de passage
Ingénieux de passage
Partage : 41
Voir le profil de l'utilisateur

Re: La virgule flottante

le Jeu 25 Fév 2010, 19:49
Bonjour !!!
L'intérêt de réaliser les traitements et le mixage en 32 bits flottante est aussi beaucoup lier au faît que lorsque l'on somme deux signaux codés en 24 bits, on obtient un signal codé en 25 bits ( pas tout le temps mais c'est possible ) et donc saturation si on est en 24 bits.
Il me semble que sur cubase on peut choisir de faire les traitements et sommation en 32 bits flot ou non !!!
avatar
Modérateur
Modérateur
Partage : 1057
Voir le profil de l'utilisateur

Re: La virgule flottante

le Jeu 25 Fév 2010, 20:25
AbeatBol a écrit:Bonjour !!!
L'intérêt de réaliser les traitements et le mixage en 32 bits flottante est aussi beaucoup lier au faît que lorsque l'on somme deux signaux codés en 24 bits, on obtient un signal codé en 25 bits ( pas tout le temps mais c'est possible ) et donc saturation si on est en 24 bits.
Il me semble que sur cubase on peut choisir de faire les traitements et sommation en 32 bits flot ou non !!!

exactement, on a besoin d'un mot plus long pour effectuer des sommations, plus on a un buffer de sommation important, moins on est obliger de faire des arrondies pour faire tous rentrer dans le nombre de bit (taille du mot) dont on dispose.
Contenu sponsorisé

Re: La virgule flottante

Revenir en haut
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum