Dynamique vs quantification...

Démarré par Verso92, Juin 26, 2016, 20:49:28

« précédent - suivant »

Verso92

Bonjour à toutes et à tous,

une question me turlupine depuis quelques temps : comment peut-on obtenir une dynamique supérieure à 14 IL avec un capteur/électronique quantifiant les données sur 14 bits ?
Merci pour vos retours.

Fabrice

spinup

#1
T es pas le premier a te demander ;)
C'est simple: c'est en reduisant a 8Mpix en mode "print". L'info d'un pixel de l'image reduite vient de plusieurs pixels originaux combinés.
En mode screen, aucun ne depasse 14 IL (peut etre les MF qui sont en RAW 16 bits je sais pas).
Mais en fait meme sans ca, je crois que ca reste possible d'avoir plus de 14 IL de dynamique sans discriminer plus de 14 bits de plage tonale.
Il suffit d'avoir une reponse non lineaire: la dynamique est definie par l'ecart entre le haut niveau enregistrable et le plus bas niveau qu'on peut discriminer du bruit. Ca ne dit rien sur les niveaux intermediaires.

Et pour finir, en luminance, avec 3 canaux R G B, on a pas 14 bits de valeurs possibles mais 3x14bits=15,qqchose bits.

Lorca

Déjà la mesure est en screen, print c'et du pipeau. La dynamique de capture ne varie pas en fonction de la sortie, du moins elle ne peut pas augmenter.

Verso92

Citation de: spinup le Juin 26, 2016, 20:53:30
T es pas le premier a te demander ;)
C'est simple: c'est en reduisant a 8Mpix en mode "print". L'info d'un pixel de l'image reduite vient de plusieurs pixels originaux combinés.
En mode screen, aucun ne depasse 14 IL (peut etre les MF qui sont en RAW 16 bits je sais pas)

Hi, hi, bien vu... effectivement, en mode "screen", on retombe sous 14 IL.

Verso92

Mébon, ça ne change pas fondamentalement ma question : cette "mesure" me semble quand même exagérément optimiste, imaginant le peu d'infos utiles présentes dans les bits de poids faibles...


Autre étonnement de ma part : comment la dynamique peut-elle augmenter en-dessous de 64 ISO (la sensibilité "nominale" du capteur) sur le D810, sachant que les modes "Lx.x" ne sont que des calculs logiciels ?

spinup

Citation de: Verso92 le Juin 26, 2016, 21:01:24
Mébon, ça ne change pas fondamentalement ma question : cette "mesure" me semble quand même exagérément optimiste, imaginant le peu d'infos utiles présentes dans les bits de poids faibles...
L'essentiel est que ca soit fait de la meme facon pour tous les capteurs. Mais j'imagine que tu veux dire qu'un D610, par exemple, ne pourrait pas restituer une scene reelle ayant 14IL de dynamique. Ca peut eventuellement se tester non?

Citation de: Verso92 le Juin 26, 2016, 21:01:24
Autre étonnement de ma part : comment la dynamique peut-elle augmenter en-dessous de 64 ISO (la sensibilité "nominale" du capteur) sur le D810, sachant que les modes "Lx.x" ne sont que des calculs logiciels ?
Elle ne progresse pas en dessous, le premier point de la courbe est le reglage 64 isos, dont la valeur isos reelle a été mesurée a 47 isos.

Verso92

Citation de: spinup le Juin 26, 2016, 23:16:04
L'essentiel est que ca soit fait de la meme facon pour tous les capteurs. Mais j'imagine que tu veux dire qu'un D610, par exemple, ne pourrait pas restituer une scene reelle ayant 14IL de dynamique. Ca peut eventuellement se tester non?

Pas compris... le D610 a aussi un capteur/électronique 14 bits.

Citation de: spinup le Juin 26, 2016, 23:16:04
Elle ne progresse pas en dessous, le premier point de la courbe est le reglage 64 isos, dont la valeur isos reelle a été mesurée a 47 isos.

Ah, OK...  ;-)

jaric

#7
Citation de: Verso92 le Juin 26, 2016, 20:49:28
comment peut-on obtenir une dynamique supérieure à 14 IL avec un capteur/électronique quantifiant les données sur 14 bits ?


Les deux grandeurs sont décorrélées. La dynamique résulte du rapport entre le niveau max avant saturation et le bruit de fond d'obscurité.
On peut parfaitement coder l'étendue de cette dynamique avec seulement 8 bits par exemple, même en codage linéaire. Il y aura simplement d'avantage d'écart entre deux valeurs consécutives,  avec pour conséquence un bruit de quantification plus élevé.

Verso92

Citation de: jaric le Juin 27, 2016, 00:20:58
On peut parfaitement coder l'étendue de cette dynamique avec seulement 8 bits par exemple, même en codage linéaire. Il y aura simplement d'avantage d'écart entre deux valeurs consécutives,  avec pour conséquence un bruit de quantification plus élevé.

Cela m'étonne un peu, quand même...

Sur 8 bits, la valeur max sera 255.
1 IL en-dessous (soit deux fois moins de lumière), en linéaire, ce sera forcément 128.
Encore 1 IL en dessous, ce sera forcément 64. Etc. On va vite tomber sur un os, non ?

jaric

Mais non. Tu peux établir n'importe quelle correspondance entre le niveau d'entrée (les IL) et une valeur de sortie (valeur numérique), c'est ce que détermine la loi de quantification.

Avec 256 valeurs de sortie réparties linéairement, le niveau 128 correspondra à IL 7 si le niveau max est IL 14.

Lorsqu'on dispose de peu de niveaux comme c'est le cas de l'exemple, on a intérêt à choisir une courbe de quantification non linéaire pour conserver un SNR à peu près constant sur une partie de la dynamique.

spinup

Citation de: jaric le Juin 27, 2016, 09:32:17
Avec 256 valeurs de sortie réparties linéairement, le niveau 128 correspondra à IL 7 si le niveau max est IL 14.
Ca c'est logarithmique, pas linéaire: 7 IL n'est pas la moitié de 14 IL, c'est 128 fois plus faible en luminance.
Verso a raison, si le niveau max est a 14IL, alors avec un courbe lineaire 128 correspond a 13IL (2 fois moins que 14IL).

jaric

#11
Citation de: spinup le Juin 27, 2016, 09:43:39
Ca c'est logarithmique, pas linéaire: 7 IL n'est pas la moitié de 14 IL, c'est 128 fois plus faible en luminance.
Verso a raison, si le niveau max est a 14IL, alors avec un courbe lineaire 128 correspond a 13IL (2 fois moins que 14IL).

Concernant ta première remarque, cela correspond effectivement à une loi logarithmique si on considère la luminance comme signal d'entrée, pas si ce sont directement des IL.

Et en effet, si on considère des luminances avec une loi linéaire, on peut toujours "faire tenir" 2^14 valeurs de luminance sur 256 niveaux mais comme vous le faites remarquer, IL13 sera codé 128 et la valeur 1 correspondra à IL 6. Les niveaux d'entrée compris entre la valeur zéro et IL 6 ne pourront pas être retranscrits.

C'est pourquoi, avec si peu de niveaux et une telle dynamique d'entrée, on sera obligé d'adopter une loi de quantification non linéaire comme évoqué précédemment.

Ce n'est bien sûr qu'une illustration, il faudrait être un peu dérangé pour concevoir un si beau capteur associé à un si piète quantificateur !!  ;D

OuiOuiPhoto

Citation de: Verso92 le Juin 26, 2016, 20:49:28
une question me turlupine depuis quelques temps : comment peut-on obtenir une dynamique supérieure à 14 IL avec un capteur/électronique quantifiant les données sur 14 bits ?

Alors on a un capteur qui a une dynamique a lui. Il donne un signal électrique. Ce signal électrique peut être amplifié et ensuite ca passe dans un convertisseur Analogique/Digital pour faire un nombre. La dynamique réelle du capteur et le nombre sont deux choses différentes. Si ton capteur a une dynamique de 14IL et que tu met un CAD a 8 bits derrière la dynamique reste a 14IL. Les transitions entre chaque nombres ne seront pas fluide mais il y aura quand même 14IL. Tu pourrais très bien avoir 50IL de dynamique avec un convertisseur 8 bits. 

spinup

Citation de: jaric le Juin 27, 2016, 10:08:28
Ce n'est bien sûr qu'une illustration, il faudrait être un peu dérangé pour concevoir un si beau capteur associé à un si piète quantificateur !!  ;D
Oui mais la ou je crois que Verso veut en venir c'est que les RAW 14 bits commencent a devenir un facteur limitant pour des capteurs ayant une dynamique depassant 14IL.

Il y a donc deux solutions pour augmenter la plage de quantification: la premiere c'est de passer a des RAW 16 bits. La deuxieme c'est d'augmenter la definition: 2 pixels avec 14bits d'information, ca fait 15bits d'infos, donc si on augmente le nombre de pixels par unité de surface on augmente aussi le potentiel de quantification par unité de surface.

Citation de: OuiOuiPhoto le Juin 27, 2016, 10:34:20Si ton capteur a une dynamique de 14IL et que tu met un CAD a 8 bits derrière la dynamique reste a 14IL. Les transitions entre chaque nombres ne seront pas fluide mais il y aura quand même 14IL.
Pas vraiment: si ta valeur 1 est a 6IL, tu ne peux conretement pas enregistrer de niveau plus bas, donc la dynamique est par definition limitée. Il n'y aura jamais 14IL entre le plus haut et le plus bas niveau, meme si le capteur en serait capable.

Jean-Claude

Verso tu raisonnes comme si les capteurs étaient numériques, mais ils sont analogiques suivis d'une conversion numérique, etc'est totalement différent.

La dynamique est l'espace analogique entre bruit et saturation. Cet espace peut bien être codé comme on veut quelle que soit sa dimension. Le résultat final sera juste moins fin quand la dynamique augmente et avec un contraste plus faible si celui-ci n'est pas compensé par ailleurs

Le même type de raisonnement s'applique d'ailleurs entre gamut capteur et profondeur de couleurs du fichier raw

OuiOuiPhoto

Citation de: spinup le Juin 27, 2016, 10:38:36
Pas vraiment: si ta valeur 1 est a 6IL, tu ne peux conretement pas enregistrer de niveau plus bas, donc la dynamique est par definition limitée. Il n'y aura jamais 14IL entre le plus haut et le plus bas niveau, meme si le capteur en serait capable.

Alors imaginons que le 0 IL soit a 0 Volt et que le 14IL soit a 1Volt. On met derrière un CAD 8 bits qui accepte en entrée de 0 à 1V et qui donne en sortie un nombre de 0 a 255.  0 IL sa donnera 0 et 14 IL ca donnera 255.  C'est juste de la théorie. Ensuite que l'information soit bien ou mal codée ca c'est encore autre chose. En plus rien ne dit que l'ampli soit linéaire ou qu'il n'y ai pas un offset pour éliminer le bruit. La capteur a peut être une dynamique de 16IL mais comme les deux IL du bas sont trop bruitées on annonce 14 et on ne code pas les deux derniers IL.  

Bref moi je répond juste a la question de base. On peut coder autant d'IL que l'on veut sur autant de bits que l'on veut. C'est juste la précision qui change. On peut coder 50 IL sur 1 bit C'est con mais c'est possible ;)  

jaric

#16
Citation de: spinup le Juin 27, 2016, 10:38:36
Oui mais la ou je crois que Verso veut en venir c'est que les RAW 14 bits commencent a devenir un facteur limitant pour des capteurs ayant une dynamique depassant 14IL.

Il y a donc deux solutions pour augmenter la plage de quantification: la premiere c'est de passer a des RAW 16 bits. La deuxieme c'est d'augmenter la definition: 2 pixels avec 14bits d'information, ca fait 15bits d'infos, donc si on augmente le nombre de pixels par unité de surface on augmente aussi le potentiel de quantification par unité de surface.
Pas vraiment: si ta valeur 1 est a 6IL, tu ne peux conretement pas enregistrer de niveau plus bas, donc la dynamique est par definition limitée. Il n'y aura jamais 14IL entre le plus haut et le plus bas niveau, meme si le capteur en serait capable.

Je suis bien d'accord, il faut ajuster le quantificateur de manière intelligente au capteur. La solution ne passe pas nécessairement par un plus grand nombre de bits de quantification mais plutôt par une loi de codage non linéaire adaptée : il est plus important à mon avis de conserver un SNR constant sur une bonne partie de la plage de valeurs que d'avoir plein de bits significatifs inutiles dans les niveaux forts, ce qui est le cas actuellement dans tous les APN.
Cela nécessite simplement une table de conversion suppplémentaire (look-up table)  pour rétablir une échelle linéaire, qui peut être incorporée au dématriceur.

P!erre


Pour répondre à la question de la dynamique supérieure à 14 bits avec une électronique à 14 bits (si tel est le cas), je pencherais pour une erreur volontaire de quantification sur cette plage de bout d'échelle. Pour éviter d'introduire un offset, le signal n'est pas quantifié de la même manière et il semble plus judicieux de décaler la valeur à faible sensibilité qu'à haute, d'où une dynamique dépassant la quantification.
Au bon endroit, au bon moment.

tenmangu81

Citation de: Jean-Claude le Juin 27, 2016, 10:58:27
Verso tu raisonnes comme si les capteurs étaient numériques, mais ils sont analogiques suivis d'une conversion numérique, etc'est totalement différent.

La dynamique est l'espace analogique entre bruit et saturation. Cet espace peut bien être codé comme on veut quelle que soit sa dimension. Le résultat final sera juste moins fin quand la dynamique augmente et avec un contraste plus faible si celui-ci n'est pas compensé par ailleurs

Le même type de raisonnement s'applique d'ailleurs entre gamut capteur et profondeur de couleurs du fichier raw

C'était comme ça que je le comprenais aussi, mais la question de Fabrice m'a fait douter.

spinup

#19
Citation de: OuiOuiPhoto le Juin 27, 2016, 10:59:09
Alors imaginons que le 0 IL soit a 0 Volt et que le 14IL soit a 1Volt. On met derrière un CAD 8 bits qui accepte en entrée de 0 à 1V et qui donne en sortie un nombre de 0 a 255.  0 IL sa donnera 0 et 14 IL ca donnera 255.  C'est juste de la théorie.

Justement, meme en theorie, je ne crois pas que ca fonctionne comme ca. La valeur basse de reference doit etre non nulle: 0 ne donne aucune information et n'est pas un niveau de luminance detectable (tous les capteurs et meme un bout de carton peuvent donner 0V en absence de lumiere).

Un capteur qui a 14IL de dynamique doit donner en sortie une valeur maximum pour 14IL de luminance et une valeur minimum non nulle et superieure au bruit pour 1IL.

OuiOuiPhoto

Citation de: spinup le Juin 27, 2016, 15:02:54
Un capteur qui a 14IL de dynamique doit donner en sortie une valeur maximum pour 14IL de luminance et une valeur minimum non nulle et superieure au bruit pour 1IL.

Surement mais ca passe par une tripaille analogique avant de passer sur le convertisseur. Donc c'est juste des question d'amplification ou d'offset du signal analogique. Ce que je veux dire c'est qu'il n'y a pas de lien entre la dynamique du capteur et ne nombre de bits  qui sert a coder cette dynamique. Le nombre de bits c'est juste de la précision du codage mais pas de la valeur min ou max a partir du moment ou on ne sature pas la chaîne évidement. Sur n'importe quel nombre de bits tu peux coder n'importe quelle valeur min et max. C'est juste une histoire de convention. On dit par exemple que sur 8 bits on peut coder de 0 a 255 par pas de 1. Mais on peut aussi coder de -128 à 127 par pas de 1. Mais on peut aussi décider que l'on peut coder de 0 a 127,5 par pas de 0,5. En traitement du signal on essaye toujours d'avoir la valeur min acceptable qui donnera la valeur min du CAD et la valeur max acceptable qui donnera la valeur max du CAD pour avoir le plus d'information exploitable et la valeur min n'est pas forcement Zero a la base. 


P!erre

Citation de: spinup le Juin 27, 2016, 15:02:54
Justement, meme en theorie, je ne crois pas que ca fonctionne comme ca. La valeur basse de reference doit etre non nulle: 0 ne donne aucune information et n'est pas un niveau de luminance detectable (tous les capteurs et meme un bout de carton peuvent donner 0V en absence de lumiere).

Un capteur qui a 14IL de dynamique doit donner en sortie une valeur maximum pour 14IL de luminance et une valeur minimum non nulle et superieure au bruit pour 1IL.

Le 0 absolu n'existe pas en numérique issu de l'analogique. Il existe toujours un signal, aussi faible soit-il. On calibre le convertisseur pour qu'il puisse transmettre au moins le plus petit signal analogique existant. Le noir "visuel" n'est pas un noir total sur le fichier, car le plus petit signal (y compris tous les bruits existants, par exemple le bruit thermique) est amplifié et en plus bruité par les circuits.
Au bon endroit, au bon moment.

tenmangu81

Citation de: OuiOuiPhoto le Juin 27, 2016, 15:49:28
Surement mais ca passe par une tripaille analogique avant de passer sur le convertisseur. Donc c'est juste des question d'amplification ou d'offset du signal analogique. Ce que je veux dire c'est qu'il n'y a pas de lien entre la dynamique du capteur et ne nombre de bits  qui sert a coder cette dynamique. Le nombre de bits c'est juste de la précision du codage mais pas de la valeur min ou max a partir du moment ou on ne sature pas la chaîne évidement. Sur n'importe quel nombre de bits tu peux coder n'importe quelle valeur min et max. C'est juste une histoire de convention.

Absolument, j'abonde. Et la conversion analogique -> numérique n'est pas obligée d'adopter une courbe simple, du type linéaire ou logarithmique. A mon sens, c'est le processeur de l'APN qui se charge de faire la conversion et la recette est "propriétaire".

OuiOuiPhoto

Citation de: tenmangu81 le Juin 27, 2016, 19:05:07
A mon sens, c'est le processeur de l'APN qui se charge de faire la conversion et la recette est "propriétaire".

Ca, ca fait aucun doute. Autrement il n'y aurait pas autant d'informatique et puces dédiées embarquée ;)

spinup

Citation de: tenmangu81 le Juin 27, 2016, 19:05:07
A mon sens, c'est le processeur de l'APN qui se charge de faire la conversion et la recette est "propriétaire".
Le signal des capteurs modernes est numerisé au plus pres de la source, directement sur le capteur si possible et avant le processeur pour minimiser le bruit.
C'est pour ca que je suis un peu mitigé quand je lis que les capteurs sont analogiques et pas numeriques. Sur les capteurs les plus recents, le signal analogique n'existe qu'entre le photosite et le convertisseur A/N placé juste derriere, il ne sort meme pas du capteur et le signal n'est pas analysé avant d'etre converti.