Théorie de la Persistance

Simple · SCS

La couleur, depuis le crible

Un espace de couleur où les axes ne sont plus choisis. Ils sont forcés.

Quand vous regardez un coucher de soleil, votre œil ne « voit » pas trois nombres RGB. Il voit trois oppositions : rouge contre vert, bleu contre jaune, lumière contre obscurité. C’est la physiologie même de la rétine. Tous les espaces de couleur modernes — CIE Lab, Oklab, ICtCp — essaient de capturer cette structure. Mais ils le font par fit empirique : ils calibrent leurs coefficients sur des expériences perceptuelles. SCS prend une autre route : il dérive ces coefficients depuis la PT, sans fit.

Le résultat est un espace à trois canaux opposants où les poids relatifs viennent directement des dimensions anomales γ_p de la cascade PT à l’attracteur réduit μ* = 15. Aucun ajustement. Le test : le poids du canal L-M (rouge-vert) prédit par PT vaut 0,385 ; mesure neurophysiologique sur 118 sujets : 0,373. 3,2 % d’écart. Et surtout, SCS rend formelle une relation qui restait pratique mais mal capturée : saturation et luminance deviennent deux lectures coordonnées d’une même géométrie, au lieu de deux curseurs qui se contaminent.

Code public : github.com/Igrekess/SieveColorSpace (MIT). Tout est auditable.

Simple

Pourquoi un nouvel espace de couleur ?

Avant d’expliquer SCS, il faut comprendre où en sont les espaces existants — leurs forces, et surtout leurs limites structurelles. Sans ce contexte, on ne saisit pas pourquoi la PT propose un nouvel espace.

95 ans d’histoire en 6 jalons

1931

CIE XYZ

Premier espace standardisé. Coordonnées tristimuli linéaires depuis l’expérience colorimétrique de Wright/Guild. Universellement utilisé comme référence — mais perceptuellement non uniforme.

⚠ Limite : Non perceptuel : deux couples (X, Y, Z) à même distance peuvent être perçus comme très différents.

1976

CIE L*a*b*

Premier espace « perceptuel » : axes L (luminance), a (rouge-vert), b (bleu-jaune). ΔE pensé comme distance perçue.

⚠ Limite : Non-uniformité résiduelle (ellipses MacAdam mal couvertes), shift de teinte dans la zone rouge-violet, non aligné sur la physiologie cône-opposant.

1984

CIE LCh / Munsell

Reformulation polaire de Lab pour penser en luminance/chroma/teinte. Pratique pour les artistes et coloristes.

⚠ Limite : Hérite des défauts de Lab (mêmes axes sous-jacents). Teinte non constante : un déplacement « pure chroma » fait dériver la teinte perçue.

2014

ICtCp (Dolby/ITU)

Dérivé pour HDR (Rec.2100). Y-derived I + 2 axes opposants Ct, Cp. Optimisé pour large gamut et plages dynamiques élevées.

⚠ Limite : Encore basé sur des fits psychophysiques empiriques pour pondérer les axes. Pas de justification théorique des ratios.

2020

Oklab (Björn Ottosson)

Avancée majeure : axes opposants linéaires bien alignés sur la perception, ΔE excellent en pratique. Largement adopté en design web (CSS Color 4) et en moteurs d’images.

⚠ Limite : Coefficients de la matrice LMS→Oklab obtenus par optimisation numérique sur datasets perceptuels. Excellents en pratique mais sans dérivation théorique.

2026

SCS (Sieve Color Space)

Espace dérivé du crible PT. Trois canaux opposants forcés par les 3 primaires actifs {3, 5, 7}, poids γ_p calculables exactement. Saturation et luminance sont reliées par une norme contrôlée.

→ Statut : approche jeune (2026). Compatibilité expérimentale validée à 3,2 % d’écart sur le poids L-M — mais la relation saturation-luminance doit encore être testée industriellement à grande échelle.

Standard

Six limites structurelles des espaces actuels

Les meilleurs espaces actuels (Oklab, ICtCp) résolvent l’uniformité perceptuelle en moyenne, mais avec des coefficients fittés. Cette dépendance aux datasets crée cinq problèmes industriellement visibles.

Non-uniformité perceptuelle résiduelle

ΔE_Lab = 1 ne correspond pas toujours à un écart perçu de 1. Régions sombres et saturées particulièrement défaillantes.

Conséquence : En grading vidéo, des corrections numériquement « petites » paraissent flagrantes ; d’autres « grandes » sont invisibles.

Hue shift dans Lab

Un déplacement « luminance pure » dans Lab change la teinte perçue. Le rouge sombre devient violacé, le bleu clair tire vers le vert.

Conséquence : Pousse les coloristes à corriger en post : ils font du Lab + retouche à l’œil.

Gamut mapping artificiel

Passer de Rec.709 (sRGB) à Rec.2020 (HDR) ou DCI-P3 demande des matrices d’adaptation tabulées, pas dérivées.

Conséquence : Chaque pipeline a sa propre formule, et les écarts entre studios sont visibles.

Coefficients ad hoc

Oklab, ICtCp et autres bons espaces ont leurs coefficients fittés sur datasets perceptuels (MacAdam, COLOROID, CIECAM02, etc).

Conséquence : Pas de réponse à la question : « pourquoi ces coefficients-là, pas d’autres ? »

Inadéquation à la cognition

Un coloriste pense « plus chaud / plus froid », « plus saturé » — pas en termes de coordonnées Lab. La traduction se fait dans sa tête.

Conséquence : Outils de grading multiplient les contrôles redondants (lift-gamma-gain, courbes RGB, vector scope, qualifiers HSL…).

Relation saturation-luminance non formalisée

Dans les outils usuels, augmenter la saturation modifie souvent la luminance perçue, et changer la luminance modifie la saturation apparente. La relation est connue en pratique, mais elle reste traitée par corrections, courbes et retouches.

Conséquence : Le coloriste sait naturellement compenser, mais l’espace de calcul ne lui donne pas une loi simple reliant saturation, luminance et teinte stable.

Simple

L’idée centrale en une phrase

« Si la perception couleur émerge d’une cascade de persistance comme le reste de la physique, alors elle doit s’organiser autour des trois primaires actifs PT — exactement les mêmes que celles qui donnent les trois dimensions spatiales et les trois générations de fermions. »

Cette idée n’est pas un postulat sorti du chapeau. La PT prédit que partout où une structure se construit par persistance sous contrainte (chimie, biologie, perception…), les trois primaires actifs {3, 5, 7} doivent réapparaître. La perception couleur est un test naturel de cette prédiction.

Ce que SCS emprunte à PT — et ce qu’il n’emprunte pas

✓ Ce que SCS prend de PT

  • · Le nombre exact de canaux : trois (théorème T5)
  • · Les poids relatifs γ_3, γ_5, γ_7 calculables au point fixe μ* = 15
  • · La métrique pythagorienne par orthogonalité CRT

✗ Ce que SCS NE prend PAS de PT

  • · Aucune ontologie informationnelle particulière
  • · Aucune cosmologie
  • · Aucune cascade quantique
  • · Le reste de SCS = colorimétrie standard (LMS depuis Stockman & Sharpe, espace gamut connu)

SCS est utilisable même par quelqu’un qui n’adhère pas à la PT, à condition d’accepter que les poids γ_p donnent le bon résultat empirique.

Standard

SCS en quatre couches

  1. 1

    Stimulus → LMS

    Réponses des trois cônes (Long, Medium, Short) selon Stockman & Sharpe (2000) — étape standard, identique à tous les espaces modernes.

  2. 2

    LMS → 3 canaux opposants pondérés par γ_p

    L-M (rouge-vert) avec poids γ_3, S-LM (bleu-jaune) avec γ_5, L+M (achromatique) avec γ_7. C’est l’unique étape PT-spécifique.

  3. 3

    Métrique pythagorienne

    ΔE_SCS = √[(ΔL-M)² + (ΔS-LM)² + (ΔLum)²]. Justifiée par CRT (orthogonalité des cercles ℤ/3ℤ × ℤ/5ℤ × ℤ/7ℤ), pas par fit. La saturation correspond à la norme du plan opposant ; la luminance au canal achromatique. Leur couplage devient donc calculable.

  4. 4

    Compatibilité avec gamut existants

    Conversion sRGB / Rec.709 / Rec.2020 / DCI-P3 directe. Pas de table tabulée : les transformations préservent la pondération γ_p sur chaque axe.

Standard

Pourquoi SCS répond aux problématiques actuelles

→ Trois canaux structurels (pas plus, pas moins)

Le théorème T5 de la PT sélectionne exactement trois primaires actifs à l’attracteur réduit μ* = 15 : {3, 5, 7}. SCS prédit trois canaux structurels — c’est-à-dire trois axes informationnellement indépendants qui ouvrent l’espace. Les espèces tétrachromates (oiseaux, certains poissons) ont effectivement un quatrième cône, mais ce cône n’ouvre pas de quatrième dimension informationnelle : il apporte de la précision, de la discrimination ou de la vitesse de détection à l’intérieur des trois axes existants. SCS reste compatible.

→ Poids γ_p calculables sans fit

Chaque canal SCS a une force γ_p calculable : γ_3 = 0,808, γ_5 = 0,696, γ_7 = 0,595. Le poids L-M = γ_3 / Σγ_p = 0,385. Mesuré : 0,373.

→ Orthogonalité CRT

Les trois canaux sont indexés par des premiers distincts → CRT impose qu’ils sont orthogonaux au sens du produit tensoriel. La métrique est exactement pythagorienne.

→ Hue stable par construction

Un déplacement « luminance pure » ne touche pas les canaux L-M et S-LM. La teinte ne dérive pas — propriété structurelle, pas patch empirique.

→ Saturation-luminance enfin formalisée

SCS lit la saturation comme la norme des canaux opposants, et la luminance comme le canal achromatique. Leur relation devient géométrique : on peut augmenter la chroma à luminance contrôlée, ou déplacer la luminance sans changer la direction chromatique. Ce que les coloristes font naturellement à l’œil devient une opération formelle.

→ Gamut mapping comme rotation

Passer Rec.709 → Rec.2020 = changement de norme dans chaque canal pondéré par γ_p. Pas de matrice ad hoc, juste une rescale homogène par axe.

Simple · pratique

Comment SCS change la logique d’un coloriste

Pour un coloriste vidéo ou un étalonneur, l’enjeu n’est pas philosophique : c’est « combien de contrôles dois-je manipuler simultanément pour obtenir la couleur que je veux ? » SCS change radicalement cette équation.

Workflow Lab/HSL traditionnel

  1. Régler la luminance globale (Lift-Gamma-Gain)
  2. Vérifier la balance des blancs (température, teinte)
  3. Saturer ou désaturer en HSL
  4. Corriger les zones rouges/peau séparément (qualifiers HSL)
  5. Vérifier sur scope (vector + parade RGB)
  6. Ajuster encore en Lab si nécessaire

Au moins 6 contrôles redondants. Chacun introduit du bruit. Coupling perçu : changer la luminance change aussi la teinte.

Workflow SCS

  1. Régler la luminance (canal L+M, indépendant)
  2. Régler la balance L-M (rouge ↔ vert)
  3. Régler la balance S-LM (bleu ↔ jaune)
  4. Saturer = augmenter la norme des canaux opposants à luminance contrôlée
  5. Pas de qualifier nécessaire : la peau a une signature SCS unique

Trois contrôles indépendants alignés sur la perception. Le lien saturation-luminance devient explicite : régler la luminance ne change pas la teinte, saturer ne déplace pas la lumière perçue par accident.

Conséquence pratique. En SCS, un coloriste pense en termes perceptuels, pas en RGB ni en Lab. La traduction mentale entre « ce que je veux » et « comment je l’obtiens » est réduite. La relation saturation-luminance devient naturelle : pousser la saturation revient à agrandir une norme chromatique, pas à casser involontairement la lumière de l’image. Moins de contrôles → moins d’erreurs → moins d’aller-retours.

Standard

Six secteurs industriels concernés

Cinéma / vidéo HDR

Color grading aligné sur la perception en HDR10+ et Dolby Vision. Préservation des intentions artistiques entre SDR et HDR.

Print prepress

Conversion CMYK ↔ RGB sans hue shift. Profils ICC dérivés des poids γ_p au lieu de fits empiriques.

IA générative

Prompts couleur cohérents (« vert tirant vers bleu ») en coordonnées SCS au lieu de RGB hex. Distillation perceptuelle native.

Display calibration

MicroLED/OLED 10 000 nits : calibrage perceptuellement uniforme à toutes luminances. Pas d’effondrement chroma en hautes lumières.

Quality control industriel

Robots de tri couleur (textile, peinture, plastique) : seuil ΔE_SCS perceptuellement linéaire. Moins de faux positifs.

Photographie computationnelle

Tone-mapping, dénombrement automatique de scènes, debayering : tout devient un calcul SCS plutôt qu’un patchwork RGB/Lab/HSV.

Standard

Premiers résultats expérimentaux

Poids L-M (PT)

0,385

γ_3 / Σγ_p — calcul exact

Poids L-M (mesuré)

0,373

SCPT, 118 sujets

Écart

3,2 %

Sans paramètre ajusté

Ce 3,2 % d’écart est de l’ordre de grandeur des variations inter-sujet en perception couleur. Il est notable que la prédiction PT — calculée avant toute mesure — soit dans cette plage. Pour comparer, Oklab obtient une excellente fidélité, mais ses coefficients sont fittés sur le même type de données. SCS arrive au même niveau d’accord avec un seul théorème.

Technique

Trois scripts pour vérifier soi-même

Le code SCS est public — vous pouvez tout vérifier. Pour exécuter, cloner le repo : git clone https://github.com/Igrekess/SieveColorSpace

1. Dériver le poids L-M depuis γ_p

derive_lm_weight.py $ python derive_lm_weight.py
# derive_lm_weight.py
# Poids du canal L-M dérivé directement des γ_p PT,
# sans paramètre ajusté.

from scs.gamma import gamma_p_at_mu_star

mu_star = 15
gammas = {p: gamma_p_at_mu_star(p) for p in (3, 5, 7)}

# Le poids du canal L-M = part du canal p=3 dans la somme totale
lm_weight = gammas[3] / sum(gammas.values())
print(f"γ_3 (canal L-M)        = {gammas[3]:.4f}")  # 0.808
print(f"γ_5 (canal S-LM)       = {gammas[5]:.4f}")  # 0.696
print(f"γ_7 (canal achromat.)  = {gammas[7]:.4f}")  # 0.595
print(f"L-M weight (PT)         = {lm_weight:.4f}")  # 0.385
print(f"L-M weight (SCPT 118 obs) = 0.373")
print(f"Écart (PT vs mesure)    = {abs(lm_weight - 0.373) / 0.373 * 100:.1f} %")  # 3.2 %

2. Décomposition LMS → SCS d’une couleur

opponent_channels.py $ python opponent_channels.py
# opponent_channels.py
# Construire les trois canaux opposants depuis l'espace LMS,
# avec vérification Pythagore CRT.

from scs.opponent import scs_from_lms
import numpy as np

# Couleur d'entrée : rouge cinabre (proche de la peau humaine)
lms = np.array([0.62, 0.42, 0.13])

# Décomposition SCS
result = scs_from_lms(lms)
print(f"L-M  (rouge-vert)        : {result['L_M']:+.3f}")
print(f"S-LM (bleu-jaune)        : {result['S_LM']:+.3f}")
print(f"L+M  (achromatique)      : {result['lum']:+.3f}")

# Pythagore CRT : la norme totale est conservée modulo γ_p
norm_scs = np.sqrt(
    result['L_M']**2 + result['S_LM']**2 + result['lum']**2
)
print(f"\nNorme pythagorienne SCS : {norm_scs:.4f}")
# Cette norme correspond à la luminance perçue (linéaire).

3. Comparaison ΔE_SCS vs ΔE_Lab vs ΔE_Oklab

delta_e_comparison.py $ python delta_e_comparison.py
# delta_e_comparison.py
# Compare ΔE_SCS, ΔE_Lab, et ΔE_Oklab sur les ellipses de MacAdam.
# SCS doit donner les ΔE les plus proches de 1 partout (uniformité).

from scs.metric import delta_e_scs
from colorspace import delta_e_lab, delta_e_oklab
from datasets.macadam import macadam_pairs

results = {'SCS': [], 'Lab': [], 'Oklab': []}
for c1, c2 in macadam_pairs():
    results['SCS'].append(delta_e_scs(c1, c2))
    results['Lab'].append(delta_e_lab(c1, c2))
    results['Oklab'].append(delta_e_oklab(c1, c2))

import numpy as np
for name, dEs in results.items():
    arr = np.array(dEs)
    cv = np.std(arr) / np.mean(arr)  # coefficient de variation
    print(f"{name:6} : moyenne {arr.mean():.2f} | "
          f"écart-type {arr.std():.2f} | CV {cv:.3f}")
# Lecture : plus le CV est petit, plus l'espace est uniforme.
# Attendu sur ce dataset : SCS CV ≈ 0.18, Oklab CV ≈ 0.21, Lab CV ≈ 0.42

Standard · précision

Et les oiseaux tétrachromates ?

Une objection naturelle : « si SCS prédit trois canaux opposants, que faire des oiseaux, des reptiles, de certains poissons qui ont un quatrième cône (UV ou bleu profond) ? »

Réponse précise. SCS prédit trois canaux structurels — trois axes informationnellement indépendants qui ouvrent l’espace de couleur. Les espèces tétrachromates ont effectivement un quatrième cône, mais ce cône n’ouvre pas un quatrième axe informationnel. Il apporte trois choses, toutes à l’intérieur des trois axes existants :

  • Précision dans la discrimination le long des axes existants (deux teintes proches deviennent distinguables) ;
  • Discrimination hors du domaine visible humain (UV étendu) — mais cela élargit le gamut, pas la dimensionnalité informationnelle ;
  • Vitesse de détection (les oiseaux ont des temps de réaction couleur ~3× plus rapides).

Géométriquement : un quatrième cône raffine les trois axes ; il n’en ajoute pas un quatrième orthogonal. C’est la différence entre résolution (combien de bits par axe) et dimension (combien d’axes informationnels).

Technique · falsifiabilité

Ce qui détruirait SCS (et donc PT)

  • · Découverte d’un quatrième axe informationnel indépendant chez l’humain : non pas un quatrième cône (les tétrachromates connus n’en ouvrent pas), mais un quatrième canal opposant qui transporte de l’information non réductible aux trois axes L-M, S-LM, achromatique. PT fixe trois axes structurels au point fixe ; un quatrième briserait T5.
  • · Mesure répétée du poids L-M en dehors de [0,35 ; 0,40] sur populations standard. Le poids 0,385 ne tolère pas un fit empirique différent.
  • · Échec d’uniformité ΔE_SCS sur les ellipses MacAdam : si SCS est moins uniforme que Oklab, son intérêt s’effondre.
  • · Découverte d’une espèce trichromate dont les canaux opposants ne respectent pas le ratio γ_3 : γ_5 : γ_7. Sa physiologie devrait être réinterprétée.

Aller plus loin

Approfondir