[ Remanence LCD ] Réduction de la rémanence des écrans LCD

Réduction de la rémanence des écrans LCD [ Remanence LCD ] - Ecran - Hardware - Périphériques

Marsh Posté le 07-06-2004 à 11:45:39    

Reprise des informations postées sur le Samsung 193P
Attention, ce premier post correspond toujours à la dernière version de aghost.pss
Les textes qui suivent peuvent ne plus trop concorder...
 
Voici donc le Script PixelShader pour réduire la rémanence des écrans LCD et surtout ceux équipés de dalle MVA/PVA dont le 193P. Je vous laisse seul juge du résultat, mais moi, je ne peux plus m'en passer.
Pour être le plus large possible, si vous avez des traînées (surtout sur le noir), ce script est fait pour vous !
 
Je n'ai qu'une Radeon 9500 64Mo donc je ne sais pas s'il peut fonctionner sur une GeForce... (et comment...)
Il fonctionne correctement avec CATALYST 4.4 (mis à par le bug allocsurf toujours pas corrigé par ATI).
J'ai testé la version 4.6, il n'y a plus rien qui marche correctement (il est possible qu'il faille une autre version de psscontrol2 ou que le 4.6 bugue complètement !).
 
Marche à suivre
- Avec Notepad, copiez-y le code ci-dessous et sauver le fichier avec le nom aghost.pss
- Téléchargez le programme ci-dessous, dezipper le programme psscontrol2.exe et lancez-le.
http://www.beyond3d.com/downloads/ [...] ntrol2.zip
- Sélectionnez le fichier aghost.pss.
 
Le script est maintenant actif pour les jeux OpenGL.
 

shader aghostPixelShader =  
"!!ARBfp1.0
 
# *********************************************************************
# TFT LCD Anti-ghost OpenGL ARB Pixel Shader 1.2 Script
# (c) Blade / Christophe Gossa 2004
# All rights reserved.
#
# Specialy done for Samsung 193P and MVA/PVA but works with common LCD
# Speed is 7 or 8 instructions slot...
#
# Use this script for personnal use only !
# Commercial, onload, or other using is not allowed without approval.
# *********************************************************************
 
# **********************************************
 
# Ideal value for MVA/PVA - 20ms (ie Samsung 193P)
PARAM aghostFactor = { 0.45, 0.45, 0.45, 0.0 };
 
# Good Value for MVA/PVA - 25ms
# PARAM aghostFactor = { 0.5, 0.5, 0.5, 0.0 };
 
# Good Value for common Slow-LCD
# PARAM aghostFactor = { 0.3, 0.3, 0.3, 0.0 };
 
# Good Value for common Fast-LCD
# PARAM aghostFactor = { 0.2, 0.2, 0.2, 0.0 };
 
# **********************************************
 
# blackValue improves the response time
# higher value = lower response time
 
# Ideal value for MVA/PVA LCD with High Contrast
PARAM blackValue = { 0.02, 0.02, 0.02, 0.0 };
 
# Good value for common LCD
# PARAM blackValue = { 0.01, 0.01, 0.01, 0.0 };
 
# **********************************************
 
PARAM nullValue = { 0.0, 0.0, 0.0, 0.0 };
PARAM oneValue = { 1.0, 1.0, 1.0, 0.0 };
TEMP thisFramesPixel;
TEMP lastFramesPixel;
TEMP diffFramesPixel;
 
TEX thisFramesPixel, fragment.texcoord[0], texture[0], 2D;
TEX lastFramesPixel, fragment.texcoord[0], texture[1], 2D;
 
# Création de la différence du front montant 0...1
SUB diffFramesPixel, thisFramesPixel, lastFramesPixel;
CMP diffFramesPixel, diffFramesPixel, nullValue, diffFramesPixel;
 
# Compensation pour les petites transitions
LRP diffFramesPixel, diffFramesPixel, oneValue, diffFramesPixel;
 
# **********************************************
 
# Création de la sortie - Reduced contrast w/ blackValue
# This tune improves much more the response time !
MAD diffFramesPixel, diffFramesPixel, aghostFactor, blackValue;
ADD result.color, thisFramesPixel, diffFramesPixel;
 
# Création de la sortie - Max contrast w/o blackValue
# Better response time, but not as best as possible !
# MAD result.color, diffFramesPixel, aghostFactor, thisFramesPixel;
 
# **********************************************
 
 
END";
 
shader copyPixelShader =  
"!!ARBfp1.0
 
# **********************************************
# Routine de copie
# 1 instruction slot
# **********************************************
TEX result.color, fragment.texcoord[0], texture[0], 2D;
 
END";
 
surface buffer0 = allocsurf ( width, height );
surface buffer1 = allocsurf ( width, height );
 
if (swapNumber%2)
{
 texture[0].source = backbuffer;
 destination buffer1;
 apply copyPixelShader;
 
 texture[0].source = backbuffer;
 texture[1].source = buffer0;
 destination backbuffer;
 apply aghostPixelShader;
}
else
{
 texture[0].source = backbuffer;
 destination buffer0;
 apply copyPixelShader;
 
 texture[0].source = backbuffer;
 texture[1].source = buffer1;
 destination backbuffer;
 apply aghostPixelShader;
}


 
Résultat du test (merci fendnts) :  
- Quake3 en 1024x768x32  
- AthlonXP 2160 (180x12) et 512Mo  
- Gigabyte Radeon 9500 64Mo  
- Catalyst 4.4  

Avec le Script : 101,4 FPS (ancienne version 89,2 FPS)
Sans le Script : 256,6 FPS


 
Il serait interressant de tester sur une carte plus récente doté de plus de mémoire vidéo (128Mo).
 
 
Je vais faire un test également sur une machine équipée d'une Radeon 9600 - 128Mo.


Message édité par christophe_d13 le 12-06-2004 à 19:04:05
Reply

Marsh Posté le 07-06-2004 à 11:45:39   

Reply

Marsh Posté le 07-06-2004 à 11:53:49    

si je comprend bien ca change un peut le contraste et diminu le fps, si on fait pareil a la main ca donne le meme resultat sur les autres ecrans non ?

Reply

Marsh Posté le 07-06-2004 à 12:02:19    

starmindfr> cela réduit un peu le contraste, c'est vrai, mais c'est très léger. Mais seul un script peut améliorer vraiment le résultat puisque il faut modifier dynamiquement l'image afin de la pré-compenser pour contrer les effets de rémanence des écrans LCD : On travaille sur les transitions foncées=>claires.
 
On peut annuler l'agissement sur le contraste de l'image en modifiant les lignes suivantes :

MAD diffFramesPixel, diffFramesPixel, aghostFactor, blackValue;
ADD oColor, thisFramesPixel, diffFramesPixel;


par

MAD oColor, diffFramesPixel, aghostFactor, thisFramesPixel;


 
Cela permettra d'avoir un contraste maximal et améliorera les performances.

Reply

Marsh Posté le 07-06-2004 à 14:03:47    

Voici la suite des tests réalisés sur une autre machine :
- AthlonXP 2800+ 1Go
- Radeon 9600 128Mo
- Catalyst 4.4
- Réglages 3D par défaut du Catalyst
- Réglages réduits dans Quake3
- 1024x768x32
 
Sans le Script :
103.3 FPS
 
Avec le Script (ou sa variante) :
47.1 FPS
 
J'ai enlevé 3 lignes du script et j'obtient toujours la même vitesse. Ce que me pousse à penser que c'est copie qui prend du temps.
 

Reply

Marsh Posté le 07-06-2004 à 14:20:27    

Après quelques recherches, c'est la fonction TEX qui consomme le plus de temps...

Reply

Marsh Posté le 07-06-2004 à 21:05:04    

J'ai fait un essai avec le script monochrome sur la RADEON 9600 128Mo : 74FPS...

Reply

Marsh Posté le 07-06-2004 à 21:20:45    

Voici un test de la Radeon 9500...
http://www.pcinpact.com/articles/a/10/3.htm
et ici
http://www.tomshardware.fr/article [...] &NumPage=1
En voyant les tests avec les jeux utilisant les PixelShaders, je comprend mieux pourquoi c'est fortement ralenti...
 
Dommage que j'ai pas une carte vidéo plus récente et plus puissante. Si quelqu'un a une Radeon plus puissante...

Reply

Marsh Posté le 07-06-2004 à 22:38:00    

christophe_d13 a écrit :


Dommage que j'ai pas une carte vidéo plus récente et plus puissante. Si quelqu'un a une Radeon plus puissante...


 
J'ai une 9800 Pro...Mais pas encore de LCD...Tu me prètes ton écran ? :p

Reply

Marsh Posté le 07-06-2004 à 22:51:36    

Tu as essayé le script ?
Je viens de voir un problème sur allocsurf. Je suis en train d'y travaillé. Mais si tu pouvais faire un bench via q3 (avec et sans), ce serait cool.
 
Merci.

Reply

Marsh Posté le 08-06-2004 à 08:17:12    

Après de nombreuses recherches, il semblerait qu'il y ait un problème sur la gestion des pixel shader script ARB.
J'ai encore amélioré mon code, je posterais ce soir une version plus rapide.

Reply

Marsh Posté le 08-06-2004 à 08:17:12   

Reply

Marsh Posté le 08-06-2004 à 09:36:54    

odln a écrit :

J'ai une 9800 Pro...Mais pas encore de LCD...Tu me prètes ton écran ? :p


 
Bah non, j'ai pas de LCD ! C'est pour ça que je te demandais le tien :pt1cable: J'ai pas réussi à avoir le 193P (2 commandes annulées pour cause indisponibilité) et me suis rabattu sur un LG en cours de livraison...


Message édité par odln le 08-06-2004 à 09:39:35
Reply

Marsh Posté le 08-06-2004 à 10:21:38    

odln> Tu es d'où ?

Reply

Marsh Posté le 08-06-2004 à 13:14:41    

christophe_d13> et si jamais on n'est pas satisfait du résultat, comment on fait pour revenir en arrière ?
J'ai une 9600 Pro et un écran 19" Belinea alors ça m'interesse cette histoire mais j'ai pas envie de tout fouttre en l'air
Merci de la réponse
ps:  

Citation :


Avec le Script : 89,2 FPS  
Sans le Script : 256,6 FPS


Comment se fait-il que l'on diminue la rémanence en diminuant le fps, j'ai du mal à saisir... qqn peut m'espliké ? merci


Message édité par Kaiser IK le 08-06-2004 à 13:17:48
Reply

Marsh Posté le 08-06-2004 à 13:15:23    

christophe_d13 a écrit :

odln> Tu es d'où ?


Région parisienne ! Je plaisantais pour le 193P...Ca faisait aussi office de petit up de sympathie  ;)  et puis ton code m'intéresse. Dommage qaund même que ce soit un fps killer !Mon LG est arrivé aujourd'hui, donc je l'essaierai ce soir mais pas de dalle MVA pour lui, donc exit le code !...Sorry


Message édité par odln le 08-06-2004 à 16:42:52
Reply

Marsh Posté le 08-06-2004 à 14:41:40    

Drapal :)
Ca a l'air interessant, mais je ne sais pas quel type de dalle j'ai sur mon LCD !
J'essayerais ce soir si j'ai le temps !
PS : j'ai un ecran LCD 15" Philips 150C et une radeon 9500 pro 128Mo

Reply

Marsh Posté le 08-06-2004 à 17:55:13    

odln> Pas sûr...
Je pense que mon code doit donner de bon résultat sur une dalle classique mais il faut peut-être mettre "aghostFactor = { 0.3, 0.3, 0.3, 0.0 };"

Reply

Marsh Posté le 08-06-2004 à 19:16:38    

Cela s'annoce de mieux en mieux...
 
Avec le nouveau script... Toujours R9500/AthlonXP/Quake3

sans le script 256,6 FPS
avec le script en mode Normal 101,4 FPS
avec le script en mode FullBlack 108,8 FPS
avec le script en mode FullBlack+NoLittleComp 118,0 FPS


 
Up> Je confirme le bug des SmartShader :
Il existe une fonction allocsurf pour l'allocation de surface, mais rien pour la libération, le transfert entre 2 exécutions...
 
J'ai oublié de dire...
En testant les SmartShader du pilote, cela marche parfaitement !
Par contre, les sources des SmartShader du pilote ont le même bug...
Il s'agit bien d'un bug des Catalyst 4.4, la désallocation étant automatique.
 
Je vais essayer le 4.5 ce soir.


Message édité par christophe_d13 le 08-06-2004 à 19:27:31
Reply

Marsh Posté le 08-06-2004 à 20:00:01    

Je continue... Voici un script qui ne travaille que sur la frame en cours - donc qui n'a pas le problème du bug des SmartShader.
Evidemment, il est beaucoup moins puissant...
Il augmente le noir vers une valeur plus claire et modifie le gamma de l'image.
 
Assez efficace sur un MVA/PVA. A tester sur les autres dalles.

shader lumaghostPixelShader =  
"!!ARBfp1.0
 
# *********************************************************************
# TFT LCD Lumaghost OpenGL ARB Pixel Shader 1.2 Script
# (c) Blade / Christophe Gossa 2004
# All rights reserved.
#
# Specialy done for Samsung 193P and MVA/PVA but works with common LCD
# Speed is 3 instructions slot...
#
# Use this script for personnal use only !
# Commercial, onload, or other using is not allowed without approval.
# *********************************************************************
 
PARAM blackValue = { 0.01, 0.01, 0.01, 0.0 };
PARAM oneValue = { 1.0, 1.0, 1.0, 0.0 };
PARAM reduceLum = { 0.99, 0.99, 0.99, 0.0 };
TEMP thisFramesPixel;
 
TEX thisFramesPixel, fragment.texcoord[0], texture[0], 2D;
MAD thisFramesPixel, thisFramesPixel, reduceLum, blackValue;
LRP result.color, thisFramesPixel, oneValue, thisFramesPixel;
 
END";
 
texture[0].source = backbuffer;
destination backbuffer;
apply lumaghostPixelShader;


 
Ce Script est encore plus rapide...

Quake3/R9500/AthlonXP
sans filtre 256,6 FPS
avec filtre 169,8 FPS


...Dommage qu'il ne soit pas aussi efficace que le premier.


Message édité par christophe_d13 le 08-06-2004 à 20:12:27
Reply

Marsh Posté le 09-06-2004 à 22:44:33    

Un petit lien pour tester la rémanence...
 
http://www.t45ol.com/play_flash.php?ID=575
 
Christophe_d13, peux tu me dire ce que cela donne avec ton 193P ( avec et sans ton code).
 
J'ai reçu mon LG et ça rémane boeuf dans ce jeu ( sorry, je n'ai pas eu le temps d'essayer ton script, il faut dire que je ne suis pas un spécialiste de la chose et que du temps me sera donc certainement nécessaire...)
 
Thks

Reply

Marsh Posté le 09-06-2004 à 23:17:16    

Super ce petit jeu... Dommage qu'il ne marche pas en OpenGL... On ne peut pas sélectionner le moteur 3D.
Up> Pas d'openGL = Pas de test avec mes script.
 
Ceci dit, en remontant la luminosité, c'est un petit peu mieux.
Mais la traînée de la raquette reste importante.
 
Mon Hercules ProphetView 720 fait mieux, mais c'est plus flou.


Message édité par christophe_d13 le 09-06-2004 à 23:19:04
Reply

Marsh Posté le 10-06-2004 à 07:54:21    

Un petit up> je viens de tester le CATALYST 4.6
Ouhhhaaaaaa..... Y a plus rien qui marche !!!
Cela affiche n'importe quoi à l'écran et le bug d'allocation est toujours présent !!!

Reply

Marsh Posté le 10-06-2004 à 10:09:19    

Un test mortel pour la rémanence : Billard GL (OpenGL)
 
http://www.tobias-nopper.de/BillardGL/download-en.html
 
Sur mon Bélinea, j'ai des trainées noires derrières les boules. J'ai pas encore testé le script.


Message édité par Totoche17 le 10-06-2004 à 10:10:47
Reply

Marsh Posté le 10-06-2004 à 11:04:13    

Essaye-le, elles vont disparaître les trainées...

Reply

Marsh Posté le 10-06-2004 à 12:59:44    

christophe_d13 a écrit :

Super ce petit jeu... Dommage qu'il ne marche pas en OpenGL... On ne peut pas sélectionner le moteur 3D.


Ok, compris. Sur le LG, y a aussi de belles trainées noires + celle de la balle ( très légère celle là )

Reply

Marsh Posté le 10-06-2004 à 14:59:29    

A l'inverse, le billard avec mon script en opengl donne de très résultats !

Reply

Marsh Posté le 11-06-2004 à 08:27:27    


Si ça peut t'aider Christophe je dois recevoir une 9800Pro dans les jours qui viennent :D donc je pourrais bencher avec et sans ton code, j'en profiterai pour comprarer les différents drivers ati parce qu'il parait que les omega ont une option qui fait comme ton code ! ça te dis quelques chose ?  
Par contre pour les applis D3D comment fait on sans ton code ?

Reply

Marsh Posté le 11-06-2004 à 09:30:15    

J'ai jamais essayé les Omega... Je n'étais même pas au courant. J'ai mis au point mon script en rédigeant le test sur le 193P et je me suis apperçu que l'on pouvait logiciellement faire des améliorations (réduire le contraste, compenser le front montant...).
 
Pour D3D, pour l'instant tant qu'ATI ne fait pas une prise en charge des SmartShader utilisateur, ce n'est pas possible.
 
Up> Je viens d'aller sur Omega et j'ai rien trouvé. Peux-tu m'en dire plus ?
J'essayerai si j'ai le temps ce week-end d'installer le dernier Omega.


Message édité par christophe_d13 le 11-06-2004 à 09:37:17
Reply

Marsh Posté le 11-06-2004 à 09:41:34    

Perso jai ete decu par les Omega :  
- Far Cry depuis les omega jai des freeze complets et des rechargement de texture
- eve online klk ecrans on eu des comportement etranges genre clipping
 
Par contre ct justement pour corriger des bugs visuels dans eve rapport aux derniers nvidia ca c corrigé mais globalement je pense y avoir perdu...

Reply

Marsh Posté le 11-06-2004 à 12:50:41    


Ben pour les omegas pour l'instant tant ke g pas ma 9800pro j'pe pas tester par contre je me renseigne auprès de la personne qui m'a dit ça pour essayer d'en savoir plus...

Reply

Marsh Posté le 11-06-2004 à 19:14:07    

Bon bah j'ai essayé le jeu de billard sur le 1920P avec et sans trop script et n'ai pas vraiment vu de différences. J'ai ptet merdé :whistle: ...
La rémanence est dans les deux cas perceptible et en particulier sur certaines couleurs ( pour d'autres elle ne l'est pas ).
Perso, c'est mon premier LCD, la rémanence me donne mal à la tête donc droit de rétrataction, retour à l'expéditeur... :( Je vais devoir attendre les nouvelles dalles :sweat:


Message édité par odln le 11-06-2004 à 19:14:38
Reply

Marsh Posté le 11-06-2004 à 23:16:15    

odln> Tu peux essayé le second script (lumaghost) pour savoir s'il est bien actif (l'image est beaucoup plus claire).
En effet, j'ai remarqué que certains CATALYST n'appréciaient pas psscontrol. Donc parfois j'ai cru que mon script était foireux alors qu'il n'était même pas actif.
 
Enfin, si tu remontes le niveau de noir en poussant la luminosité au max, la rémanence est-elle la même ?

Reply

Marsh Posté le 11-06-2004 à 23:32:50    

odln perso v tester le philips 190s5c si le stock c pas evaporé lundi (zen on vendu presque 10 rien que ce vendredi... sur le papier il est +rapide que le 1920p vu que c une techno de dale moin zolie mais + speed :)

Reply

Marsh Posté le 12-06-2004 à 10:23:07    

Christophe_d13> Ok, je vais essayer aujourd'hui, j'ai les Catalyst 4.5...
Starmindfr> Je vais bien sûr suivre tes impressions sur le Philips ! :p  
 
J'attends de voir comment se passe le retour du mien, je le "sens" moyen, on verra bien comment se passe le remboursement. Ce qui est con, c'est que l'image statique est vraiment sublime...

Reply

Marsh Posté le 12-06-2004 à 10:33:50    

odln> Je n'ai pas essayé les 4.5.
Je les ai développé sur les 4.4 et je sais que sur les 4.6, ça ne marche pas (aucun d'ailleurs).
 
Quasiment tout le problème des LCD : Des images statiques douces et reposantes et des images en mouvement fatiguantes...

Reply

Marsh Posté le 12-06-2004 à 12:38:50    

Lumaghost marche nickel avec les 4.5 et l'image est super belle ! Y a toujours pas mal de rémanence cependant... Un peu gommeé par la "lumière", un tout petit peu...

Reply

Marsh Posté le 12-06-2004 à 13:11:36    

odln> et aghost ?

Reply

Marsh Posté le 12-06-2004 à 18:31:38    

Ben aghost comme dit dans mon post précédent, je ne vois pas de grosse grosse différence. J'ai un fichier " SmartShaderErrorLog.txt" qui s'est créé. Il est vide, mais cela veut il dire que ça merdoit ?

Reply

Marsh Posté le 12-06-2004 à 18:47:37    

Non, cela veut dire qu'il fonctionne correctement. OK.
 
Dans le fichier aghost, tu peux modifier la ligne suivante :
PARAM aghostFactor = { 0.45, 0.45, 0.45, 0.0 };
à la place de 0.45, essaye des valeurs plus élevées progressivement (0.50, 0.60, 0.70...) pour voir s'il y a une différence (surtout dans les traînés du noir).
 
Enfin il y a le niveau du noir.
PARAM blackValue = { 0.02, 0.02, 0.02, 0.0 };
En mettant 0.03, 0.04 ou 0.05, cela rend le noir un peu gris mais réduit la rémanence (comme lumaghost).
 
Si ton noir est trop profond, commence avec blackValue (pour avoir un noir convenable mais pas trop foncé) puis avec aghostFactor.

Reply

Marsh Posté le 12-06-2004 à 21:49:06    

Bon ben avec 0.45, ça atténue boeuf la rémanence ! Trop fort [:kusuryia] .
Mais ça divise aussi par 2 les FPS... :sweat:  
Je garde ton script pour mon futur LCD, en espérant qu'il ne pe servira à rien puisque je vais essayer de faire en sorte que le prochain ne rémane pas trop...

Reply

Marsh Posté le 12-06-2004 à 23:40:52    

Hélas oui, ça réduit les FPS... PixelShader oblige.
Pourtant mon script pourrait passer par une LUT et être plus rapide mais actuellement il faudrait passer par le CPU et cela ne serait pas forcément plus rapide :
- Copie VidéoRAM vers LocalRAM (le mode Read de la vram est très lent pour le CPU).
- Traîtement CPU
- Copie LocalRAM vers VidéoRAM
 
Les deux dernières étapes seraient assez rapides (tout en pouvant être regroupées tout comme la première)... Une vingtaine de cycles pour le CPU par pixel. Cela occuperait sur un CPU à 2GHz en 1280x1024 environ 13ms. C'est beaucoup, mais c'est parce qu'il faut travailler sur plus de 5Mo et ce n'est pas dans la mémoire cache.
On peut dés lors considérer qu'actuellement le PixelShader constitue une très bonne alternative. Il faudrait que le filtre soit implémenter directement dans les pilotes pour aller plus vite.


Message édité par christophe_d13 le 12-06-2004 à 23:42:35
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed