Hacks vidéo LCD monochromes à gogo !

[Wenting Zhang] est clairement un fan des écrans LCD STN de la vieille école et se demandait comment divers appareils portables plus anciens réussissaient à piloter des panneaux LCD monochromes avec plusieurs niveaux de gris. Si le contrôleur d’affichage prend en charge plusieurs bits par pixel, il peut utiliser diverses techniques, telles que PWM, afin de produire une image en pseudo-niveaux de gris. Mais que se passe-t-il si vous avez un contrôleur d’affichage monochrome uniquement ? Avec une horloge de pixels suffisamment élevée, pouvez-vous utiliser un logiciel côté application pour retourner ces pixels de manière à donner une image en niveaux de gris d’aspect raisonnable ?

Tramage simple – ne regardez pas trop près !
Approximation des niveaux de gris PDM dans un affichage 1 bit

[Wenting] passe par plusieurs techniques, montrant la qualité d’image résultante d’une manière claire et systématique. La première idée est d’utiliser une technique de tramage traditionnelle. Pour chaque pixel, il est défini sur noir si la valeur de gris est inférieure à un certain seuil. La valeur d’erreur résultante est ensuite propagée aux pixels voisins. Ce processus de diffusion d’erreur étale l’erreur sur tout l’affichage, donc spatialement parlant, en moyenne, les valeurs de pixel correspondent à peu près aux valeurs de gris d’origine. Mais, les pixels eux-mêmes sont toujours allumés ou éteints. Ce n’est pas assez. L’idée suivante est de PWM les pixels individuels sur plusieurs images, pour approximer différents niveaux de gris. Mais cela donne un taux de rafraîchissement effectif dans le pire des cas de 8 Hz avec une période PWM de 15 images, à 120 ips, et qui scintille. Mal. Une façon d’atténuer cela consiste à passer au PDM (modulation de densité d’impulsions) qui sélectionne différentes séquences de longueur pour donner le même rapport cyclique mais à une fréquence plus élevée, au moins pour certaines valeurs de gris. Un peu mieux, mais on peut faire plus.

Mappage simple PWM vs table de recherche

Le fait est que notre cerveau fait des choses étranges avec les signaux visuels que nous percevons. Les régions avec la même valeur de gris pulseront en même temps, et l’œil y sera attiré et percevra un scintillement. Ainsi, l’astuce suivante consistait à essayer de découpler les pixels proches dans ces régions à l’aide d’une séquence LFSR, ce qui a donné une amélioration notable. Le véritable objectif était d’essayer de lire la vidéo via l’écran LCD, donc après avoir étudié le tramage spatial, [Wenting] est passé à se demander s’il pouvait également tergiverser dans le temps, c’est-à-dire que l’erreur dans la séquence temporelle peut être lissée de la même manière, pour améliorer l’apparence de la vidéo ? En utilisant un simple modeleur de bruit, la vidéo semblait nettement plus fluide et pratiquement sans scintillement. Excellents résultats ! Dans l’ensemble, c’est une longue vidéo à regarder, mais tellement bourrée d’astuces utiles qu’elle mérite à notre avis votre temps.

Nous ne sommes pas étrangers à la conduite d’écrans rétro avec du matériel moderne, par exemple des CRT, et pendant que nous pensons aux écrans rétro, qu’en est-il de ce CRT tactile rétro (et assez dérangeant) du début des années 80 ?

Merci [Philippe] pour le pourboire !