340 likes | 480 Views
Présentation du mode RAW. Gilles Clément clemgill@club-internet.fr RCE 14 Novembre, La Vilette. Le RAW c’est quoi ?. RAW (anglais) = Cru, brut, non traité , à vif, foid et humide, inexpérimenté, sauvage, à l’état brut, obscène …
E N D
Présentation du mode RAW Gilles Clémentclemgill@club-internet.fr RCE 14 Novembre, La Vilette
Le RAW c’est quoi ? • RAW (anglais) = Cru, brut, non traité, à vif, foid et humide, inexpérimenté, sauvage, à l’état brut, obscène … • Le but = récupérer le signal du capteur d’image le plus directement possible (sans aucun pré-traitement) Niveau d’intensité (luminance) pour chaque pixel (8 bits) 256 256 0 0 Pixel N°3 Pixel N°7 Pixel N°1 Pixel N°2 Pixel N°4 Pixel N°5 Pixel N°6 Pixel N°7 Pixel N°8 Pixel N°3 Pixel N°7 Pixel N°1 Pixel N°2 Pixel N°4 Pixel N°5 Pixel N°6 Pixel N°7 Pixel N°8 Le long d’une ligne du capteur Image d’un point chaud en mode RAW Non RAW : empâtement du point, contraste horizontal renforcé (« yeux de merlan »), bruit de fond ……… beurk ! Rencontres C&E La Villette
A quoi çà sert ? • Récupérer une image « brute de brute » • Travailler avec la quantité maximum d’information • Le pré-traitement Webcam dégrade les images • Contrôler ensuite exactement ce qu’on fait • le traitement ultérieur des images • Améliorer la qualité des images au traitement • Retrouver les nuances, • Ex: voiles des nébuleuses et les petits détails ! Exemple emprunté sur le net Rencontres C&E La Villette
Le RAW avec une Webcam ? • Le Webcams ne sont pas du tout faites pour l’imagerie astronomique • But = Faire rapidement des images flatteuses à diffuser sur le Web (petites, sur-traitées, très compressées …) • L’œil et le cerveau humain n’aiment pas les images « vraies » d’où les traitements agressifs • Préférence pour le « clinquant » • Les images contrastées • Les verticales aux horizontales (çà nous vient du temps des cavernes …) d’où les yeux de merlan • Les couleurs saturées …. • Mais la Webcam peut être un très bon outil Astro • 10 à 100 fois moins cher que les vraies caméras Astro !!!! • Excellents résultats notamment en planétaire (tout petit pixels donc très bonne résolution) • Facilité et confort d’utilisation (USB, vitesse de transfert) • Améliorer l’outil Webcam grâce au mode RAW permet alors de décupler les possibilités Rencontres C&E La Villette
Le RAW : Une Bidouille «Internationale » • L’origine de l’idée • Il y a une piste dans la doc ! (G. Clément) • On a trouvé un stéthoscope ! • Mémoire EEPROM et bus I2C(J. Reed, USA) • Dans la jungle des octets • Mais ou est donc l’octet magique ? (G. Clément , J. Reed, E. Bonduelle) • !!!! Çà marche !!!! • Couleur : G. Clément, N&B : E. Bonduelle Première image « historique »du RAW couleur (BOF !) le 29 Nov 2003 (encore un pb de sharness) Rencontres C&E La Villette
Le RAW : Une Bidouille «Internationale » • La liste TWIRG • Activité fébrile fin 2003, tout va très très vite …. en à peine deux mois tout est dit ! (les mêmes + F. Adelving, JB Butet etc …) • Le passage à l’USB • Plus besoin de chirurgie avec WcRmac ! (M. Burri, Suisse) • La maturité • Le site du RAW ! (E. Bonduelle) • L’adaptation des softs (AVIRAW, IRIS, QCfocus, QASTROCAM, ASTROSNAP … • ..... ? Rencontres C&E La Villette
Qu’y a-t-il dans une Webcam ? • C’est un objet très sophistiqué • Les grands volumes de vente permettent de réduire le coût … • … mais une Webcam est un vrai concentré de haute technologie ! • Ex: la TOUCAM de Phillips • Capteur CCD 640x480 pixels, (taille 5,6 µ !) • 2 micro-processeurs spécifiques (dont traitement de signal rapide) • De nombreux circuits périphériques spécialisés • Le tout sub-miniature (composant CMS) • Et capable de faire tout passer dans le « tuyau » de l’USB 4 cm Rencontres C&E La Villette
Qu’y a-t-il dans une Webcam ? • Exemple de difficulté : la question du débit sur le câble USB • Flux image brute: • 640 pixels * 480 pixels * 8 bits * 25 images/sec = 61 millions de bits/s • Alors que le débit du bus USB 1.1 est ~ 1,5millions de bits/sec • Il faut sérieusement compresser l’image pour passer la pleine vidéo sur la liaison USB • Une des raisons de la perte de qualité des images Webcam avec des fréquences image élevées Rencontres C&E La Villette
Le schéma fonctionnel du logiciel ! Rencontres C&E La Villette
Le schéma-bloc du micro …..! Rencontres C&E La Villette
(2) Reconstruction des pixels à partir de la matrice de Bayer Matrice d’ajustement des couleurs de base (5) Algorithme de Compression Schéma simplifié (ouf !) (3) (1) Capteur d’image • Pour atteindre le « mode RAW » il faut pouvoir • (1) Ajuster les pré-gains et supprimer la compensation du noir • (2) Supprimer l’interpolation de Bayer, et ajuster coeff. matrice couleur • (3) Optimiser les réglages classiques (seuls accessibles sans bidouille) • (4) Supprimer les renforcements de l’image • (5) Supprimer (ou minimiser) la compression de l’image ……. Çà fait beaucoup … mais nous y sommes arrivés !!!! • Réglages de - Balance couleurs • Gain • Saturation … Pre-Gains + Offset Noir (4) Codage Image (YUV) Renforcement divers des contours Séquenceur USB Rencontres C&E La Villette
Couche V La matrice de Bayer • Un capteur noir-et-blanc c’est simple • Chaque site = un pixel • Décompose l’intensité lumineuse en niveaux de gris • Mais un capteur couleur c’est plein de trous ! • Il faudrait 3 capteurs (Rouge Vert Bleu) pour chaque site • C’est trop cher et trop complexe • Un micro-filtre R, V ou B devant chaque pixel • On économise et exploite la sensibilité physiologique dans le vert • Arrangement des capteurs R V B selon la matrice de Bayer • Il faut ensuite remplir les « trous » => par interpolation sur les pixels adjacents! On ne rajoute pas d’information, on bricole !! • C’est la reconstruction de l’ image RVB Couche B Couche R = + + Rencontres C&E La Villette
La matrice de Bayer (suite) • Ce que voit un capteur « à matrice de Bayer » devant des plages de couleurs unies Rencontres C&E La Villette
Reconstruction de l’image • En chaque point il faut reconstruire l’info R+V+B ! • Point de l’image qui correspond à un pixel V • R = moyenne des signaux des 2 pixels rouges voisins • V = signal du pixel vert • B = moyenne des signaux des 2 pixels bleus voisins • Point de l’image qui correspond à un pixel R • R = signal du pixel rouge • V = moyenne des signaux des 4 pixels verts voisins • B = moyenne des signaux des 4 pixels bleus voisins • Point de l’image qui correspond à un pixel B • R = moyenne des signaux des 4 pixels rouges voisins • V = moyenne des signaux des 4 pixels verts voisins • B = signal du pixel bleu • L’image «standard » N&B est la moyenne de R+V+B donc • Moyenne de 5 à 9 pixels voisins => beaucoup d’information est perdue • C’est ce qui se passe si on change le capteur couleur par un N&B « sans le dire à la caméra » Rencontres C&E La Villette
Registres Processeur de signal Processeur de séquencement Les « registres » internes • Les microprocesseurs internes communiquent à travers des « registres » • Ce sont des cases mémoire (des octets) qui contiennent les paramètres de la caméra • Coefficients de gains et réglage des algorithmes …. • Choix des configurations (ex: Led ON ou OFF) • Ces registres sont décrits dans la doc (data sheet) de Phillips • La clef = accéder à ces registres !!!! (mais comment ?) Rencontres C&E La Villette
Les « registres » internes (suite) • Le data sheet de Phillips (60 pages !) Mode RAW = bit N°5 du registre 0x01H Rencontres C&E La Villette
Mémoire EEPROM et bus I2C • Première nouvelle fracassante ! • Une partie des registres est recopiée dans une mémoire externe non volatile (EEPROM) • En effet lorsqu’on débranche la Webcam les processeurs perdent la mémoire … (C’est Jack qui a trouvé çà !) • De plus on peut lire et surtout écrire dans cette mémoire à l’aide du bus I2C • I2C = Protocole série de Philips qui permet de communiquer très simplement avec un tas de composants • Il suffit de souder trois fils ! Rencontres C&E La Villette
Mémoire EEPROM et bus I2C (suite) • Principe de fonctionnement • Le processeur de séquencement sauvegarde les données de registres dans l’EEPROM externe et les récupère à la demande • On peut intervenir sur le Bus I2C simplement à l’aide d’un PC externe + cable parallèle + logiciel ad-hoc Logiciel de dialogue I2C (ex: J. Reed) Port // Image capteur Registres Processeur de séquencement Processeur de signal EEPROM externe Vers l’USB Soudure sur Bus I2C Processeur spécialisé SAA8116 Rencontres C&E La Villette
Dans la jungle des octets • Et on obtient çà !.... • 512 octets de mémoire • Sur deux «pages » • Comment retrouver la correspondance avec les registres …..? Rencontres C&E La Villette
Dans la jungle des octets (suite) • A tâton dans la jungle… • En modifiant les réglages standard accessibles (luminosité, couleur …) on traque les changements induits dans l’EEPROM • On arrive à identifier pas à pas quelques registres … • Puis on en déduit ce qui devrait logiquement être l’octet du RAW • Et ………… ? Rencontres C&E La Villette
Dans la jungle des octets (suite) • Exemple : L’octet 0x0A0h correspond au registre « MIRROR_NOISE_CTL » Un seul paramètre est modifié à la fois (ex: «noise » passe de 1 à 0) puis on examine les octets qui changent dans mémoire de l’EEPROM (ici 0x0A0h passe de la valeur 05h à 04h) Rencontres C&E La Villette
Çà marche !! • Dernière astuce (une chance !) • En réduisant la vitesse de transmission au minimum (5 images/sec) on arrive à minimiser (supprimer ?) la compression logicielle ! Si le débit est trop fort, on obtient des bandes aléatoires de compression comme ceci RAW comprimé Rencontres C&E La Villette
Quel capteur ? • Le N&B c’est l’idéal • Image RAW directement utilisable • Le capteur est très sensible • Pas de dégradations dues aux filtres couleur sur pixels • Le RAW est indispensable avec un capteur N&B Rencontres C&E La Villette
Quel capteur ? • C’est aussi très intéressant en couleurs • Meilleurs résultats que le mode standard • Accessible avec une caméra standard (non N&B) • Permet l’accès du RAW au plus grand nombre • Mais il faut « débayeriser » • plusieurs solutions possibles (Astrosnap, AVIRAW, IRIS ...) Mode RAW débayerisé (plus de détails) Mode RAW image brute Mode normal Rencontres C&E La Villette
(2) (3) (1) Capteur d’image Reconstruction des pixels à partir de la matrice de Bayer Matrice d’ajustement des couleurs de base • Réglages de - Balance couleurs • Gain • Saturation … Pre-Gains + Offset Noir (4) (5) Codage Image (YUV) Renforcement divers des contours Algorithme de Compression Séquenceur USB Quel capteur ? • Le mode couleur « Optimisé » • Etienne Bonduelle (sur une idée de J.B. Butet) a introduit une variante avec le capteur couleur • On conserve l’interpolation de Bayer (étape (2)) • Mais on supprime tout le reste • Plus simple (image débayerisée directement exploitable) • Bons résultats en planétaire Rencontres C&E La Villette
La liste TWIRG • Une liste sur Yahoo dédié aux bidouilles RAW des Webcams • But = ne pas encombrer les autres listes • TWIRG = Tweak Webcam Interface Research Group (Groupe de recherche sur la bidouille des webcams) • Détail amusant : au début on s’appelait Tweak Webcam I2C Research Group, mais entre temps Martin a trouvé le moyen de se passer de l’I2C … Rencontres C&E La Villette
Reconstruction des pixels à partir de la matrice de Bayer Matrice d’ajustement des couleurs de base • Réglages de - Balance couleurs • Gain • Saturation … Pre-Gains + Offset Noir Codage Image (YUV) Renforcement divers des contours Algorithme de Compression Séquenceur USB Passage à l’USB • Dernier coup de Théatre ! • Martin Burri trouve le moyen de modifier les registres à travers le bus USB ! (qui sert dans l’autre sens à régler la caméra) • Même plus besoin de fer à souder …. Modification des registres Modification des octets de l’EEPROM Décodeur USB !! Dans certains cas seulement pour la page 00 !!(au reset ou lors du « restore factory setting ») Rencontres C&E La Villette
Passage à l’USB : WcRmac • WcRmac pour modifier les registres à l’aide de macros • Ou bien charger des binaires complets (sauvegardes) • C’est Le logiciel standard de M. Burri • Extrêmement simple d’emploi • Evite de faire des erreurs (ne permet pas l’accès direct aux registres) Rencontres C&E La Villette
Passage à l’USB : WcRmac ; SAA8116 Macro description ; The first character after the = sign is ignored ; to allow leading spaces ; ; Contributors: ; bm98astro, Etienne Bonduelle, Gilles Clement, Christian Buil, Francis Adelving... and a lot of people of TWIRG !!! ……………………………………………………………………………………………… [M_Set_RAW_B/W_CCD] -1='-968090425 0 ='Set B/W RAW Mode and Special Factory Settings (for B/W CCDs) 1 ='0x0E0=0x04 (Noise Reduction to Zero) 2 ='0x0E1=0x03 (Set auto mode off, Manual White bal...) 3 ='0x0E3=0xF8 (Shutter speed at 1/25th sec DSO) 4 ='0x0E4=0x10 (Gain about 30%) 5 ='0x0E6=0x80 (Red bal 50%) 6 ='0x0E7=0x40 (Blue bal 25%) 7 ='0x0EA=0x00 (Sharpness to Zero) 8 ='0x0ED=0x78 (Luminosity to 45%) 9 ='0x0EE=0xE0 (Gamma to 50%) 10 ='0x101=0x24 (RAW Mode) 11 ='0x102=0x00 (Optical Black Level K1 to Zero) 12 ='0x103=0x00 (Optical Black Level K2 to Zero) 13 ='0x104=0x00 (Optical Black Level K3 to Zero) 14 ='0x105=0x00 (Optical Black Level K4 to Zero) 15 ='0x106=0x80 (PreMatrix K1 Std) 16 ='0x107=0x80 (PreMatrix K2 Std) 17 ='0x108=0x80 (PreMatrix K3 Std) 18 ='0x109=0x80 (PreMatrix K4 Std) Etc ………….. • Un formalisme très simple pour les Macros • Fichier texte • Tout est modifiable • ATTENTION • on peut totalement planter une caméra en envoyant des valeurs d’octets erronées • La seule façon de « déplanter » est alors de revenir à l’I2C (c’est déjà arrivé plusieurs fois) Rencontres C&E La Villette
Passage à l’USB : WcRAcc • WcRAcc pour Accéder à tous les Registres de l’EEPROM • Génial ! • Mais attention beaucoup plus dangereux !! • For the «Twirggers » only ! Rencontres C&E La Villette
Le site du RAW http://www.astrosurf.com/astrobond/ebrawe.htm • Très didactique • Explique tout ce qu’il fait savoir pour faire bien marcher la modif • Notamment le très important « restaurer usine » • EB a développé et longuement testé les réglages qui sont proposés dans les macros • Qui sont toujours bidouillables pour vos besoins propres Rencontres C&E La Villette
Conclusion • Une bidouille qui marche bien et vraiment utile • Intégré en standard dans les caméra Atik N&B • Une combinaison étonnante de compétences … et de chance ! • Une développement extraordinairement rapide (tout le monde était prêt) • Une aventure très excitante ! • Il reste encore des zones à explorer • Fonctionnement des autres registres • Le RAW n’est pas encore tout à fait RAW • Il reste un chouïa de compression …. • On peut aller encore plus loin mais … • Questions de confidentialité industrielle • Accord de Phillips nécessaire … Rencontres C&E La Villette
Bibliographie • « Le RAW 'facile' pour Webcams Philips et Logitech ;o) », Etienne Bonduelle (http://www.astrosurf.com/astrobond/ebrawe.htm) • « Mode RAW sur une webcam N&B astronomique », Philippe Bernascole (http://www.astrosurf.com/astrobond/Webcam_RAW.pdf) • « Ultra Mod (I2C interface project)», Jack Reed (http://www.foley-tax.com/Astro) • « WcRmac »,Martin Burri (http://www.burri-web.org/bm98/stuff/wcrmac-1.0.79.zip) • « AviRaw - read raw webcam AVIs », Carsten Arnold (http://arnholm.org/astro/software/aviraw/) • «Astrosnap_Pro», Axel Canicio (http://www.astrosnap.com/index_fr.html) Rencontres C&E La Villette