Version scientifique

Intégration mesurée de l’ISP Raspberry Pi dans EIP

Validation d’un chemin de dématriçage matériel linéarisé face au développement logiciel EIP : captures appairées, contrôle du niveau noir, tests spatiaux et mesures de performance sur IMX477/Pi 4 et OV5647/Pi 3.

Processeur de signal d’image (ISP VC4)Rouge-vert-bleu (RGB, 8 bits)Données brutes du capteur (RAW12)IMX477OV5647Benchmark serveur

Un processeur de signal d’image (ISP) neutralisé peut-il produire des couleurs rouge-vert-bleu (RGB) sur 8 bits, radiométriquement cohérentes avec EIP, tout en réduisant le coût de la prévisualisation ?

État de l’étude. Le chemin ISP est validé visuellement et en performance sur les configurations IMX477 et OV5647 testées. La cohérence radiométrique appairée avec EIP est mesurée uniquement sur l’IMX477, dans une condition testée (une scène, une exposition et un gain), à partir des sorties appairées d’une même requête libcamera. Pour l’OV5647, la validation radiométrique complète reste à reproduire. Les gains de performance sont confirmés sur Pi 4 et Pi 3, mais leur amplitude dépend fortement du mode capteur. La date de cet article correspond à la finalisation du chemin optimisé dans le code EIP.

Question, objet et périmètre

EIP doit conserver un chemin RAW (données brutes du capteur) pour l’enregistrement et la mesure, tout en produisant une prévisualisation couleur avec une charge compatible avec les Raspberry Pi les moins puissants. L’objectif est d’utiliser l’ISP du Raspberry Pi pour le dématriçage, puis de réappliquer les corrections EIP de façon explicite.

Le périmètre de cette validation est la prévisualisation RGB, rouge-vert-bleu, sur 8 bits encodée en MJPEG. Le transport RAW, les captures scientifiques et les enregistrements RAW ne passent pas par l’ISP. L’intégration ne cherche donc pas à transformer le buffer ISP en donnée scientifique équivalente au RAW.

Architecture des deux chemins

Chemin logiciel

  1. RAW Bayer
  2. Dématriçage EIP
  3. Niveau noir EIP
  4. Balance / rendu
  5. JPEG

Chemin ISP

  1. RAW Bayer
  2. ISP VC4 neutralisé / linéarisé
  3. RGB888
  4. Niveau noir EIP
  5. Balance / rendu
  6. JPEG
RAW scientifique inchangétransport · enregistrement · caractérisation · mesureshors du chemin ISP
Architecture des traitements de prévisualisation et séparation du chemin scientifique RAW.

Le serveur expose trois choix : software, isp et auto. Le mode automatique sélectionne l’ISP lorsqu’un profil validé est disponible et se replie explicitement vers le logiciel dans le cas contraire. Le choix manuel reste disponible pour les comparaisons A/B.

L’ISP est déclaré inéligible lorsque le rendu demandé est brut, lorsqu’une région d’intérêt ou un empilement est actif, lorsque la source n’est pas libcamera ou lorsqu’aucun profil linéaire compatible n’est validé.

Contrat de neutralisation ISP

Chaque profil de production ne se contente pas de désactiver l’exposition ou la balance des blancs automatiques. Il impose un ensemble cohérent de blocs neutres, contrôlé au chargement. Toute déviation fait refuser le profil.

Blocs requis et états imposés au profil neutralisé.
Bloc ISPÉtat imposéBut
Niveau noir0 dans l’ISPÉviter la renormalisation de plage ; correction unique côté EIP.
Matrice colorimétriqueIdentitéÉviter le mélange automatique des canaux.
Balance des blancs automatique / gains couleurAWB désactivée ; ColourGains=(1,1)Éviter une correction automatique des rapports de canaux.
Contraste et gammaCourbe identitéConserver une relation linéaire.
DPC, réduction de bruit, égalisation du vertDésactivéesNe pas corriger silencieusement la structure locale.
AccentuationForce et limite nullesPréserver les hautes fréquences.
Correction d’illumination, HDR, balance neuronaleDésactivéesÉviter les transformations spatiales et non linéaires.

Pour ce chemin, AwbEnable est forcé à faux et ColourGains=(1,1). Ces contrôles ne constituent pas à eux seuls la neutralisation : elle résulte de l’ensemble du profil. La balance manuelle et la saturation des couleurs EIP sont appliquées après le buffer ISP.

Contexte visuel de mise au point

Une mire colorée artisanale a servi pendant le développement à faire apparaître immédiatement les dérives grossières et à vérifier le basculement A/B dans PiNox. Cette observation reste qualitative : la validation de la linéarité radiométrique décrite ci-dessous repose sur des pixels appairés issus de la même requête, et non sur des couleurs de référence certifiées.

Caméra PiNox orientée vers une mire colorée artisanale utilisée pendant la mise au point de l’ISP.
Dispositif de mise au point avec PiNox et la mire peinte à la main.
Prévisualisation de la mire dans PiNox avec le traitement logiciel EIP actif.
Prévisualisation logicielle EIP. Le même écran permet d’activer le chemin ISP pour les contrôles A/B.

Protocole appairé IMX477

Le banc isp_linear_bench configure une requête libcamera contenant deux flux simultanés :

Le codec de production EIP développe le RAW de la même requête. L’analyse recalcule les statistiques hors du binaire de capture, tient compte des strides, remet les composantes RGB dans leur ordre logique, exclut une bordure de 24 pixels et retire les pixels saturés.

Montage des images EIP et ISP neutralisé pour les conditions de niveau noir zéro et 64.
Comparaison appairée : les images de chaque ligne sont des sorties appairées de la même requête libcamera. La teinte native n’est pas une correction colorimétrique : les gains sont volontairement maintenus à l’unité.

Renormalisation du niveau noir

Dans l’expérience de diagnostic avec le niveau noir ISP à 64, la régression ISP = pente × EIP + offset donne une pente moyenne de 1,0662. L’ISP soustrait le noir puis réétale la plage utile sur 0 à 255, tandis que le codec EIP divise l’échelle 10 bits par quatre.

Pente prédite avec noir 64 = 4 × 255 / (1023 − 64) = 1,0636
Pente prédite avec noir 0 = 4 × 255 / 1023 = 0,9971

Dans la condition de diagnostic avec niveau noir ISP à 0, la pente moyenne mesurée vaut 0,9993. Le rapport mesuré entre les deux conditions vaut environ 0,9372, contre 0,93744 prédit. L’écart relatif est inférieur à 0,04 %. La chaîne EIP de production conserve le niveau noir ISP à 0 et applique ensuite la correction du niveau noir une seule fois dans EIP.

Pentes ISP/EIP, par canal et moyenne, selon le niveau noir de diagnostic.
ConditionCanal RCanal GCanal BMoyenne
ISP noir 64, EIP noir 641,06841,06501,06521,0662
ISP noir 0, EIP noir 01,00120,99830,99840,9993

Les coefficients de détermination (R²) vont de 0,99587 à 0,99988. L’écart initial est donc expliqué par la renormalisation de plage, pas par une amplification colorimétrique inconnue.

Validation radiométrique, spatiale et fréquentielle

L’alignement ISP/EIP conserve l’orientation, sans retournement ni décalage mesurable. Les diagnostics haute fréquence donnent une pente comprise entre 0,9998 et 0,9999 et un rapport de variance locale de 1,000 à 1,006 selon le canal. Aucun lissage ou renforcement de contours mesurable n’apparaît dans les contrôles effectués avec le profil neutralisé.

Le rapport spatial ISP/modèle reste centré autour de 1,0002, avec un écart-type inférieur ou égal à 0,0014. Ce résultat est compatible avec la désactivation de la correction d’illumination.

Différence entre l’image ISP neutralisée et l’image développée par EIP, amplifiée huit fois.
Résidu ISP moins EIP amplifié huit fois. L’erreur quadratique moyenne (RMSE) par canal reste comprise entre environ 0,5 et 1,0 niveau 8 bits. Les deux algorithmes de dématriçage ne sont pas identiques, une égalité pixel à pixel n’est donc pas attendue.

Sur des captures serveur séquentielles, l’écart des moyennes globales par canal reste inférieur ou égal à 0,11 DN. L’écart absolu moyen pixel à pixel est voisin de 2,29 DN, avec un percentile 99 à 9. Cette mesure inclut les différences de dématriçage, le bruit temporel et le fait que les images ne sont alors plus simultanées.

Performances Pi 4 / IMX477 et Pi 3 / OV5647

Le benchmark serveur utilise une exposition de 8 ms, un gain analogique 4, le rendu couleur MJPEG et un seul client. Les valeurs ci-dessous proviennent du CSV archivé avec la validation. La charge du processeur central (CPU) du processus peut dépasser 100 % lorsqu’il utilise plusieurs cœurs.

La cadence est exprimée en images par seconde (IPS), la charge en pourcentage de CPU et la latence en millisecondes.

Pi 4 / IMX477 — valeurs logiciel puis ISP ; exposition 8 ms, gain analogique 4, MJPEG couleur, un client.
ModeIPS logiciel / ISPCPU logiciel / ISPLatence logiciel / ISP
2028 × 152024,09 / 29,15243,2 % / 230,8 %36,7 / 34,7 ms
2028 × 108035,86 / 39,06264,6 % / 248,6 %26,7 / 25,6 ms
1332 × 99052,76 / 61,00266,7 % / 265,8 %18,2 / 16,8 ms
4056 × 216015,57 / 15,56227,0 % / 107,3 %39,7 / 29,0 ms
4056 × 304011,20 / 11,24232,6 % / 93,4 %55,7 / 40,2 ms

En bin1, la cadence est déjà bornée par l’acquisition mais la charge processeur chute fortement. En modes regroupés ou recadrés, l’ISP augmente parfois la cadence livrée, mais le gain CPU devient faible parce que les passes EIP postérieures et l’encodage dominent.

Le même protocole, sans compteurs matériels perf, a été exécuté sur Pi 3 avec l’OV5647. Tous les modes demandés ont effectivement utilisé l’ISP, sans repli.

Pi 3 / OV5647 — valeurs logiciel puis ISP pour chaque mode.
ModeIPS logiciel / ISPCPU logiciel / ISPLatence logiciel / ISP
1296 × 97224,88 / 43,89283,4 % / 219,8 %37,6 / 25,9 ms
640 × 48059,07 / 60,44159,9 % / 77,6 %7,3 / 5,7 ms
1920 × 108029,21 / 31,09281,3 % / 103,7 %31,3 / 18,7 ms
2592 × 194412,80 / 14,92299,0 % / 113,7 %72,8 / 42,2 ms

Sur cette plateforme, l’ISP améliore les trois indicateurs dans tous les modes mesurés. Le coût processeur par trame est divisé par environ deux à trois en bin1. La correspondance colorimétrique OV5647 entre les deux chemins a été validée visuellement ; elle ne dispose pas encore du même banc radiométrique appairé que l’IMX477.

Ces mesures comparent les deux chemins sur chaque machine, pas le Pi 3 au Pi 4 : les capteurs et les modes diffèrent.

Intégration, sélection et repli

Chaque profil ISP est associé à un modèle de capteur précis. Le serveur vérifie sa structure, son empreinte et son niveau noir avant de l’activer. L’interface de programmation (API) publie le mode demandé, le mode effectivement résolu, la disponibilité du profil, son chemin, son empreinte et les compteurs de repli.

Un mode ISP explicitement demandé est refusé si le profil n’est pas conforme. Le mode automatique revient au logiciel et expose la raison. Aucun repli silencieux n’est accepté. Le changement de chemin recrée la session libcamera afin que l’IPA relise le profil, sans nécessiter le redémarrage du serveur.

Limites

État des résultats

Résultats confirmés, non observés, écartés ou à compléter.
Résultat ou hypothèseÉtatJustification
Renormalisation du niveau noir responsable de la pente 1,0662ConfirméRapport mesuré 0,9372 contre 0,93744 prédit.
Pente ISP/EIP proche de l’unité avec niveau noir alignéConfirméMoyenne 0,9993 ; R² de 0,99587 à 0,99988.
Lissage, accentuation ou vignettage résiduel significatifNon observéContrôles haute fréquence et spatiaux proches de l’unité.
Bénéfice CPU et latence en pleine résolution IMX477/Pi 4ConfirméCPU et latence réduits ; cadence limitée par l’acquisition.
Gain sur tous les modes OV5647/Pi 3 testésConfirméIPS supérieur, CPU par trame et latence inférieurs.
Gain universel, indépendant du mode et de la plateformeÉcartéModes regroupés IMX477 proches de la neutralité CPU.
Parité radiométrique complète OV5647À compléterValidation visuelle disponible, banc appairé à reproduire.

Conclusion

L’ISP VC4 peut être intégré à EIP comme accélérateur borné du dématriçage, sans modifier le RAW ni déléguer les réglages scientifiques au pipeline automatique de libcamera. La mesure appairée montre qu’une différence initialement attribuable au chemin matériel provenait en réalité de la renormalisation du niveau noir. Une fois ce mécanisme neutralisé, la pente ISP/EIP revient à 0,9993.

Le bénéfice pratique est particulièrement fort sur les prévisualisations pleine résolution et sur le Pi 3 associé à l’OV5647. Il reste plus modeste lorsque le développement logiciel regroupé est déjà efficace. Cette dépendance justifie le maintien des modes automatique, logiciel et ISP explicite, ainsi que la publication du chemin réellement utilisé dans l’API.

Pour continuer

Autre niveau de lecture

Réintroduire l’ISP sans perdre la maîtrise du signal — version découverte · Reprendre le mécanisme et les résultats par les schémas.