Bruit de photons: dynamique d'une photo limitée à 8 ou 9 bits, au mieux?

Démarré par jenga, Septembre 14, 2019, 00:23:42

« précédent - suivant »

jenga

Citation de: Somedays le Septembre 17, 2019, 17:19:33
Un autre avantage de Dxomark, c'est qu'ils harmonisent les ISO afin de comparer entre eux les divers boîtiers des diverses marques, contrairement au site Photons to photos qui ne fait aucune correction. Or 1600 ISO chez un constructeur n'est pas 1600 ISO chez un autre. Le plus fidèle en la matière est Ricoh/Pentax, tandis qu'Olympus et surtout Fuji sont de grands tricheurs optimistes, un 6400 ISO chez Fuji pouvant n'être qu'un 1600 ISO une fois l'harmonisation faite. Et c'est ainsi que des Fujistes s'émerveillent sur la montée en ISO de leurs boîtiers en l'attribuant à la spécificité des capteurs Trans...Mais passons.
En fait, tout cela me semble sans importance.
En effet, en dehors des utilisations à très bas niveau de lumière (typiquement un facteur10000 en-dessous de la saturation pour un D850), la montée en iso ne dépend que de la capacité des photosites, le reste c'est de l'agitation... et des erreurs de mesure, car le SNR est difficile à mesurer correctement.

Le SNR à sensibilité native est déterminé par la racine carrée de la capacité du photosite, et ensuite il décroît de 10 dB par décade (dans le graphique SNR dB en fonction de log iso). En dehors d'usages très spécifiques (typiquement 10000 fois en-dessous de la saturation pour un D850), la technologie du capteur en matière de bruit de lecture ne joue pas.

Le SNR est difficile à mesurer (voire impossible si on en prend la définition stricte), parce qu'il est défini comme le rapport signal/bruit photonique au signal maximal. Or, le signal fluctue considérablement, ce qui signifie que, s'il est maximal, une mesure sur deux dépasse le seuil de saturation, ce qui rend la mesure fausse.
La mesure ne peut donc pas être effectuée au signal maximal, il faut se placer "suffisamment" en-dessous; le "suffisamment" est difficile à définir, parce que les fluctuations aléatoires du signal peuvent aller bien au-delà de son écart-type.
Il faut donc se placer bien en-dessous du signal maximal, ce qui diminue le rapport SNR mesuré, qu'il faut donc corriger en conséquence... Et même comme ça, on n'est jamais à l'abri d'une mesure saturée.

La mesure du SNR est donc un exercice périlleux... et peu utile, puisqu'il suffit de connaître la capacité des photosites à sensibilité native pour être fixé.

Somedays

Citation de: jenga le Septembre 18, 2019, 08:01:33
C'est bien sûr équivalent, chaque personne préférera l'une ou l'autre unité selon son type de culture technique. Il me semble que les utilisateurs de logiciels de développement ou de retouche ont bien la perception du nombre de bits utiles, mais c'est à chacun de voir.

Je remarque quand même sur les forums beaucoup de confusion en ce qui concerne la signification des dB: un SNR 32 dB n'est pas du tout satisfaisant dans l'absolu.
32dB, c'est un rapport signal/bruit = 40 (car 20 log10 (40)= 32), autrement dit même une représentation 0-255 est inutile, sans parler de 0-16383 .

Pour un SNR de 32dB, même pas 6 bits sont significatifs dans les 14 usuels du raw.
Cela signifie que, à ce SNR, les cartes mémoires et disques durs stockent davantage de bruit et de zéros que d'information.


Seule compte vraiment la perception visuelle de l'image finale.
Pour le D850, le seuil de 32 dB pour le SNR 18% est atteint vers 1600 ISO en mode Print (cf graphique du message #10 de Verso92 ci-dessus). L'image ne doit pourtant pas être si mal que ça en termes de perception du bruit.
   
Dxomark a même retenu le seuil de "seulement" 30dB pour définir le score low-light ISO d'un boîtier:

"A SNR value of 30dB means excellent image quality. We have therefore defined low-light ISO as the highest ISO setting for a camera that allows it to achieve a SNR of 30dB while keeping a good dynamic range of 9 EVs and a color depth of 18bits."
 
https://www.dxomark.com/dxomark-camera-sensor-testing-protocol-and-scores/
   

30 dB ne font pourtant plus que 5 bits significatifs, ce qui donne l'impression d'un bruit très prédominant. Les bits "significatifs" ne le sont pas, justement.

Somedays

Citation de: Verso92 le Septembre 18, 2019, 08:10:17
Le rapport S/B en dB, c'est pas plutôt 10 x log S/B ?

"The SNR is given in dB, which is a logarithmic scale: an increase of 6 dB corresponds to doubling the SNR."
https://www.dxomark.com/dxomark-camera-sensor-testing-protocol-and-scores/
   
Un doublement du SNR en ajoutant 6 dB, c'est bien une valeur en décibel = 20 x log(10) (S/B).
   

Verso92

Citation de: jenga le Septembre 18, 2019, 08:45:24
Non, voir les liens que j'ai donnés.

Le dB est défini comme:
- 10x log décimal pour les mesures de puissance (par exemple, pour les électriciens, tension au carré, courant au carré, produit tension x courant, etc.)
- 20x log décimal pour les mesures d'amplitude (courant, tension, amplitude du signal)

Ceci parce que la puissance d'un signal varie comme le carré de son amplitude, et mettre au carré revient à doubler en unités log.
Donc 20 log (amplitude signal) ou 10 log (puissance signal) sont équivalents.

Le SNR est défini par l'amplitude (du bruit et du signal), donc les dB sont en 20 log.

On peut bien sûr raisonner en puissance signal/ puissance de bruit (la conversion en dB étant alors en 10 log), ce qui donne le même résultat puisque les puissances sont proportionnelles aux carrés des amplitudes.

OK (tellement l'habitude de raisonner en puissance, pour ma part).

Citation de: Somedays le Septembre 18, 2019, 09:13:57
   
"The SNR is given in dB, which is a logarithmic scale: an increase of 6 dB corresponds to doubling the SNR."
https://www.dxomark.com/dxomark-camera-sensor-testing-protocol-and-scores/
   
Un doublement du SNR en ajoutant 6 dB, c'est bien une valeur en décibel = 20 x log(10) (S/B).

Oui, bien sûr.

Nikojorj

Citation de: jenga le Septembre 18, 2019, 08:01:33
un SNR 32 dB n'est pas du tout satisfaisant dans l'absolu.
32dB, c'est un rapport signal/bruit = 40 (car 20 log10 (40)= 32), autrement dit même une représentation 0-255 est inutile, sans parler de 0-16383 .

Pour un SNR de 32dB, même pas 6 bits sont significatifs dans les 14 usuels du raw.
On parle d'affichage ici, pas de raw! Et pour ça, on peut se contenter d'assez peu de bits, surtout s'il y a un peu de bruit...

Cf.


ou


(clic pour les sources)

L'utilité de plein de bits pour les raws c'est de pouvoir triturer les données, mais pour afficher sans modifications, un jpeg qui contient plutôt moins que l'équivalent de 8 bits (grâce à sa compression) suffit bien.

egtegt²

Citation de: Nikojorj le Septembre 18, 2019, 10:20:46
L'utilité de plein de bits pour les raws c'est de pouvoir triturer les données, mais pour afficher sans modifications, un jpeg qui contient plutôt moins que l'équivalent de 8 bits (grâce à sa compression) suffit bien.

Ça n'a rien de nouveau, c'est connu que de toute façon très peu de moyens de visualisation dépassent 8 bits (quelques rares écrans à 10 bits, et encore, ils acceptent 10 bits en entrée, je ne parierais pas que tous affichent réellement 8 bits), et à ma connaissance aucun ne dépasse 10 bits (peut-être au niveau expérimental mais je ne connais pas de dispositif vendu) et je ne pense pas que ça aurait une quelconque utilité vu les limites de nos yeux.

Les bits supplémentaires servent juste à garantir qu'après PT, il restera toujours 8 bits.

Verso92

Citation de: egtegt² le Septembre 18, 2019, 11:47:06
(quelques rares écrans à 10 bits, et encore, ils acceptent 10 bits en entrée, je ne parierais pas que tous affichent réellement 8 bits)

Il suffit de faire l'essai pour voir.


Photo de l'écran (Nec PA241w) affichant un dégradé (fichier RAMP.psd, de mémoire) sous Photoshop en configuration 8 et 10 bits, respectivement :

egtegt²

Citation de: Verso92 le Septembre 18, 2019, 14:44:16
Il suffit de faire l'essai pour voir.
Photo de l'écran (Nec PA241w) affichant un dégradé (fichier RAMP.psd, de mémoire) sous Photoshop en configuration 8 et 10 bits, respectivement :
Oui, sur un dégradé pur, on peut voir la différence, mais sur une photo, la différence est bien moins visible. C'est lié au fait qu'en 8 bits, il n'y a que 256 dégradés dans chaque couleur pure.

Fais la même comparaison sur un dégradé entre par exemple deux couleurs différentes et tu ne verras plus du tout de banding ou beaucoup moins.

jenga

Citation de: Nikojorj le Septembre 18, 2019, 10:20:46
On parle d'affichage ici, pas de raw! Et pour ça, on peut se contenter d'assez peu de bits, surtout s'il y a un peu de bruit...
Cf.


Je suis bien d'accord, et j'ai même écrit dans mon post #12 que les 8 bits significatifs qu'on a, dans le meilleur des cas, avec un D850 (qui ne compte pas parmi les plus mauvais APN!!), sont bien suffisants pour la vision humaine.
Mais on m'a objecté que la vision humaine était bien plus performante que cela, et je n'ai pas voulu entrer dans ce débat.

Mais oui, je suis d'accord, même si les 5 bits dont nous parlons me semblent quand même un peu limite.

Je les qualifiais de "peu" en comparaison des 12 ou 14 auxquels peuvent légitimement s'attendre les utilisateurs, à cause de documents constructeur et de sites web entretenant la confusion.

jenga

Citation de: Somedays le Septembre 18, 2019, 09:08:59
   

Seule compte vraiment la perception visuelle de l'image finale.
Pour le D850, le seuil de 32 dB pour le SNR 18% est atteint vers 1600 ISO en mode Print (cf graphique du message #10 de Verso92 ci-dessus). L'image ne doit pourtant pas être si mal que ça en termes de perception du bruit.
   
Dxomark a même retenu le seuil de "seulement" 30dB pour définir le score low-light ISO d'un boîtier:

"A SNR value of 30dB means excellent image quality. We have therefore defined low-light ISO as the highest ISO setting for a camera that allows it to achieve a SNR of 30dB while keeping a good dynamic range of 9 EVs and a color depth of 18bits."
 
https://www.dxomark.com/dxomark-camera-sensor-testing-protocol-and-scores/
   

30 dB ne font pourtant plus que 5 bits significatifs, ce qui donne l'impression d'un bruit très prédominant. Les bits "significatifs" ne le sont pas, justement.
Comme répondu à Nokojorj, je suis bien d'accord sur le fait que moins de 8 bits significatifs suffisent, mais ce n'est pas l'avis général.

Je n'irai pas jusqu'à qualifier d'excellente (au sens du SNR) une image ayant seulement 5 bits significatifs; je dirais qu'elle est à la limite acceptable (toujours du seul point de vue SNR) pour moi; DXO la qualifie d'excellente, soit; d'autres estiment que 8 bits sont insuffisants pour eux.

Bref, on passe du domaine facile du traitement du signal, avec ses lois mathématiques objectives, au domaine perceptuel, et là ça se complique  :)

Verso92

Citation de: jenga le Septembre 18, 2019, 19:52:59
Je suis bien d'accord, et j'ai même écrit dans mon post #12 que les 8 bits significatifs qu'on a, dans le meilleur des cas, avec un D850 (qui ne compte pas parmi les plus mauvais APN!!), sont bien suffisants pour la vision humaine.
Mais on m'a objecté que la vision humaine était bien plus performante que cela, et je n'ai pas voulu entrer dans ce débat.

Pour moi, 8 bits suffisent en fin de chaine : je vois l'apport du 10 bit "écran" avec le fichier "dégradé" étudié pour (cf post #31), mais sur les photos, comme évoqué plus haut, je ne pense pas que ce soit visible (pour les images de synthèse, par contre, c'est un autre débat).

Par contre, je reste convaincu que 8 bits significatifs en entrée de post traitement serait très insuffisant : dans toutes les applications mettant en œuvre du traitement de signal, il faut prendre une réserve (quelquefois conséquente) sur la profondeur d'information, pour limiter les dégâts lors des multiples calculs en cascade (arrondis et troncatures).

jenga

Citation de: Verso92 le Septembre 18, 2019, 20:48:38
Par contre, je reste convaincu que 8 bits significatifs en entrée de post traitement serait très insuffisant : dans toutes les applications mettant en œuvre du traitement de signal, il faut prendre une réserve (quelquefois conséquente) sur la profondeur d'information, pour limiter les dégâts lors des multiples calculs en cascade (arrondis et troncatures).
Il y a 3 notions distinctes:

-le SNR: c'est le nombre de bits significatifs de chaque photosite: ce nombre est toujours inférieur à 8 pour un D850 à sensibilité native, pour les photosites les plus éclairés de l'image (encore moins sur des APN moins performants, un peu plus sur des D à 1 chiffre à cause de leurs gros pixels).
Il diminue de 1 à chaque fois que les isos sont multipiés par 4 à partir du natif

-le nombre de bits (typiquement 14) dans lesquels sont cadrés les bits significatifs. Le bruit photonique étant égal à la racine carrée du signal, à chaque fois que l'éclairement d'un photosite diminue d'un facteur 4 ses bits significatifs se décalent de 2 vers la droite (MSB à gauche) et diminuent de 1.
Le LSB est de plus noyé dans le bruit APN (voire le bit suivant, selon les APN).

Les bits significatifs se répartissent donc de cette manière, selon l'éclairement du photosite (S: significatif; p=bruit photonique; p=bruit APN; -:bit à 0)
SSSSSSSSpppppb
--SSSSSSSppppp
----SSSSSSpppb
------SSSSSppb
--------SSSSpb
----------SSSb
------------Sb

Il faut donc un codage capable de représenter cette dynamique, dans les étapes du traitement précédant l'application de la courbe de contraste. Une fois cette courbe appliquée, les valeurs à bas éclairement sont décalées vers la gauche (pour mimer le sensibilité non linéaire de l'oeil) et cette dynamique devient inutile.

-le nombre de bits utilisés pour les calculs intermédiaires, qui doit donner de la marge à droite pour que les erreurs d'arrondi ne dégradent pas le signal.Du tableau ci-dessus, on voit que 16 bits conviennent bien pour la plupart des cas, sauf à enchaîner beaucoup de traitements.

Même à extrêmement faible niveau d'éclairement (les dernières lignes du tableau ne correspondent pas à une utilisation usuelle), ils donneront 3 bits de marge à droite, et normalement on commencera par appliquer un bon facteur multiplicatif avant de faire d'autres traitements, ce qui donnera une marge très importante (16 bits pour un signal qui en comporte 3 ou 4 utiles).