Modérateurs: Modération Forum Home-Cinéma, Le Bureau de l’Association HCFR • Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 38 invités

Toutes les solutions à base d'ordinateur (PC, Mac, Linux...)

[MPC] Filtre(s) Pixels shaders ...

Message » 25 Fév 2008 1:17

pitch28 a écrit:Est ce que je dois utiliser les PS 16/235 > 0/255 ou alors les PS YUY2>RGB ou bien les deux?
J ai bien essayé mais j'ai une difference de colorimetrie entre les deux

Qu est ce que je dois faire?
Merci de votre aide


Si les shaders traitent la video en RGB (ce qui semble etre le cas) alors tu dois utiliser le PS 16/235 > 0/255 et pas l'autre
chambolle
 
Messages: 628
Inscription Forum: 14 Nov 2006 10:52
  • offline

Message » 25 Fév 2008 1:41

Bonjour à tous.

Quelqu'un peut il me dire pourquoi mon image est plus sombre quand je passe du wmr9 à l'EVR custom et comment régler ce probleme dans MPC HC???

Merci d'avance de vos réponses
nessim
 
Messages: 16
Inscription Forum: 13 Juil 2006 13:54
  • offline

Message » 25 Fév 2008 11:17

chambolle a écrit:
pitch28 a écrit:Est ce que je dois utiliser les PS 16/235 > 0/255 ou alors les PS YUY2>RGB ou bien les deux?
J ai bien essayé mais j'ai une difference de colorimetrie entre les deux

Qu est ce que je dois faire?
Merci de votre aide


Si les shaders traitent la video en RGB (ce qui semble etre le cas) alors tu dois utiliser le PS 16/235 > 0/255 et pas l'autre



Bon voila j ai effectué un petit test : faire la comparaison avec ffdshow
J ai donc utilisé ffdshow pour l faire la conversion yuy2>rgb32 et j ai donc fait la comparaison en PS 16/235 >0/255 et PS YUY2 >RGB et la conclusion est que j'obtiens la meme image avec
le PS YUY2>RGB

Donc les PS doivent traiter la video en yuy2 (sortie du decodeur) s'il n'y a pas de conversion

Est ce que quelqu'un pourrait me corriger si j'ai fais une erreur dans mon resonnement
pitch28
 
Messages: 891
Inscription Forum: 06 Fév 2006 1:18
Localisation: 28
  • offline

Message » 25 Fév 2008 11:48

pitch28 a écrit:
chambolle a écrit:
pitch28 a écrit:Est ce que je dois utiliser les PS 16/235 > 0/255 ou alors les PS YUY2>RGB ou bien les deux?
J ai bien essayé mais j'ai une difference de colorimetrie entre les deux

Qu est ce que je dois faire?
Merci de votre aide


Si les shaders traitent la video en RGB (ce qui semble etre le cas) alors tu dois utiliser le PS 16/235 > 0/255 et pas l'autre



Bon voila j ai effectué un petit test : faire la comparaison avec ffdshow
J ai donc utilisé ffdshow pour l faire la conversion yuy2>rgb32 et j ai donc fait la comparaison en PS 16/235 >0/255 et PS YUY2 >RGB et la conclusion est que j'obtiens la meme image avec
le PS YUY2>RGB

Donc les PS doivent traiter la video en yuy2 (sortie du decodeur) s'il n'y a pas de conversion

Est ce que quelqu'un pourrait me corriger si j'ai fais une erreur dans mon resonnement


Quel est le shader YUY2 -> RGB que tu utilises ? Je ne le retrouve plus. (Je retrouve seulement Correction YUV 1.0)

Normalement, en sortant en YUY2 ou YV12 de ffdshow et en utilisant le PS 16/235 -> 0/255 tu devrais obtenir un resultat equivalent a une sortie RGB dans ffdshow (dans le cas ou pas d'onglet level, sinon je ne sais pas).
chambolle
 
Messages: 628
Inscription Forum: 14 Nov 2006 10:52
  • offline

Message » 25 Fév 2008 11:57

Tiens le voila je l'avais copié:
YUY2>RGB
il permet de faire la convesion d'un YUY2 -> full RVB



nom : full_RVB
-----------------------------------
sampler s0 : register(s0);
float4 p0 : register(c0);
float4 p1 : register(c1);

#define width (p0[0])
#define height (p0[1])
#define counter (p0[2])
#define clock (p0[3])
#define one_over_width (p1[0])
#define one_over_height (p1[1])

#define PI acos(-1)

float4 main(float2 tex : TEXCOORD0) : COLOR
{
float r = dot(tex2D(s0, tex), float4(1.14303, 0.01788, 0.00347,0)) - 0.07306;
float g = dot(tex2D(s0, tex), float4(0.00911, 1.15180, 0.00347,0)) - 0.07306;
float b = dot(tex2D(s0, tex), float4(0.00911, 0.01788, 1.1374,0)) - 0.07306;
float4 c0 = float4(r, g, b, 0) ;

return c0;
}

et celui la c 'est 16/235>0/255

16-235 -> 0-255
en ps2.0



sampler s0 : register(s0);

#define Const_1 (16.0/255.0)
#define Const_2 (255.0/219.0)

float4 main(float2 tex : TEXCOORD0) : COLOR
{
return( ( tex2D( s0, tex ) - Const_1 ) * Const_2 );
}


Fais le test >resulat tres different
pitch28
 
Messages: 891
Inscription Forum: 06 Fév 2006 1:18
Localisation: 28
  • offline

Message » 25 Fév 2008 12:19

pitch28 a écrit:Tiens le voila je l'avais copié:
YUY2>RGB
il permet de faire la conversion d'un YUY2 -> full RVB



Merci avec le nom full_RVB (et pas RGB :evil: ce qui empeche la fonction "search") j'ai retrouve.

Bon apparement, cela fait la conversion des U et des V de [16-240] dans [0-255]. C'est a verifier.

Sans vouloir trop rentrer dans le detail, il y a un desaccord entre les formules.
Seb26 qui a ecrit la conversion 16-235 -> 0/255 dit qu'il a fait un erreur, parce que cela ne touche pas les U et V.
Moi je dis qu'il n'a pas fait d'erreur. C'est coherent avec toutes les formules que j'ai trouvees.

Je vais regarder plus en detail quand j'aurai le temps. Mais je dirais que ffdshow se gourre (ou alors c'est moi :mdr: ).

Quelle est l'image que tu preferes ?
Est-ce que tu as une platine pour comparer ?
chambolle
 
Messages: 628
Inscription Forum: 14 Nov 2006 10:52
  • offline

Message » 25 Fév 2008 12:22

Il faudrait comparer avec CoreAVC sans ffdshow. En demandant a CoreAVC de faire la conversion.
chambolle
 
Messages: 628
Inscription Forum: 14 Nov 2006 10:52
  • offline

Message » 25 Fév 2008 12:56

pitch28 a écrit:Tiens le voila je l'avais copié:
YUY2>RGB
il permet de faire la convesion d'un YUY2 -> full RVB

Je suis très curieux de ce concept, pourrais tu développerez un poil stp ? :mdr:

Tu exécute des shaders sur une frame YU2 ? ... comment tu fais ?
Seb.26
 
Messages: 3255
Inscription Forum: 04 Mar 2004 16:43
  • offline

Message » 25 Fév 2008 12:59

Seb.26 a écrit:
pitch28 a écrit:Tiens le voila je l'avais copié:
YUY2>RGB
il permet de faire la convesion d'un YUY2 -> full RVB

Je suis très curieux de ce concept, pourrais tu développerez un poil stp ? :mdr:

Tu exécute des shaders sur une frame YU2 ? ... comment tu fais ?


Oublie le nom qui est mal choisi et la description avec les YUV. Apparemment cela fait ce que tu voulais faire: conversion RGB vers YUV puis decalage des bornes puis conversion vers RGB a nouveau
chambolle
 
Messages: 628
Inscription Forum: 14 Nov 2006 10:52
  • offline

Message » 25 Fév 2008 13:01

Apparemment, ca fait aussi ce que fait ffdshow dans la conversion RGB et aussi ce que fait CoreAvc d'apres mes tests.

Bref, c'est moi qui ai tord ...
chambolle
 
Messages: 628
Inscription Forum: 14 Nov 2006 10:52
  • offline

Message » 25 Fév 2008 13:10

renard160 a écrit:encore moi,

voici mon deuxième filtre.
il permet de faire la convesion d'un YUY2 -> full RVB



nom : full_RVB
-----------------------------------
sampler s0 : register(s0);
float4 p0 : register(c0);
float4 p1 : register(c1);

#define width (p0[0])
#define height (p0[1])
#define counter (p0[2])
#define clock (p0[3])
#define one_over_width (p1[0])
#define one_over_height (p1[1])

#define PI acos(-1)

float4 main(float2 tex : TEXCOORD0) : COLOR
{
float r = dot(tex2D(s0, tex), float4(1.14303, 0.01788, 0.00347,0)) - 0.07306;
float g = dot(tex2D(s0, tex), float4(0.00911, 1.15180, 0.00347,0)) - 0.07306;
float b = dot(tex2D(s0, tex), float4(0.00911, 0.01788, 1.1374,0)) - 0.07306;
float4 c0 = float4(r, g, b, 0) ;

return c0;
}
----------------------------------

a utiliser dans les mêmes conditions que le précédent.


Je ne suis pas un pro en PS ni le reste d'ailleur :D mais j ai repris ce code pour faire en Ps ce que je faisais avec ffdshow.

je voudrais en fait tout faire en PS resize sharpen gamma et mapping
pitch28
 
Messages: 891
Inscription Forum: 06 Fév 2006 1:18
Localisation: 28
  • offline

Message » 25 Fév 2008 14:44

Bonjour à tous.

J'utilise vista ultimate avec une carte ATI x1950xtx.

Quelqu'un peut il me dire pourquoi mon image est trop sombre quand je passe du wmr9 (fonctionne très bien, noir qui est noir et pas gris) à l'EVR custom (scène sombre trop "noire") et comment régler ce probleme dans MPC HC???

Merci d'avance de vos réponses
nessim
 
Messages: 16
Inscription Forum: 13 Juil 2006 13:54
  • offline

Message » 25 Fév 2008 14:58

chambolle a écrit:Apparemment, ca fait aussi ce que fait ffdshow dans la conversion RGB et aussi ce que fait CoreAvc d'apres mes tests.

Bref, c'est moi qui ai tord ...


C'est pas si clair cette histoire ...

Le probleme vient de la conversion des couleurs pour les mettre dans la plage [0,255] en RGB
Les formules "officielles" conseillent de decaler -16 et renormaliser la luminance Y, et de juste renormaliser comme les Y les chrominances, mais on ne les decale pas.

Maintenant, quand on utilise une formule qui passe du YCbCr en [16,235], [16-240], [16,240] vers RGB en [16,235] et que l'on veut convertir en [0,255] on a plusieurs solutions:

1) On applique les formules des bouquins
2) On renormalise les Y en [0,255] et les C en [0,255] et on applique les formules d'origine (ce qui est un peu bete vu que les formules sont faites pour un C en 240 vers 235
3) On invente une autre renormalisation du genre je fais -16 sur chaque coordonnee et je multiplie par 255/(253-16)

le remap de seb26 fait le 1). Ca me semble le plus sage.
chambolle
 
Messages: 628
Inscription Forum: 14 Nov 2006 10:52
  • offline

Message » 25 Fév 2008 15:02

nessim a écrit:Bonjour à tous.

J'utilise vista ultimate avec une carte ATI x1950xtx.

Quelqu'un peut il me dire pourquoi mon image est trop sombre quand je passe du wmr9 (fonctionne très bien, noir qui est noir et pas gris) à l'EVR custom (scène sombre trop "noire") et comment régler ce probleme dans MPC HC???

Merci d'avance de vos réponses


Je ne sais pas ce qui se passe sous vista. Si tu utilise un shader genre remap 16,235 -> 0,255 alors vire le, ou si utilises des level + conversion RGB dans ffshow alors essaie de les virer. A mon avis il y a trois solutions:
- le vmr9 est "washed out" mais tu as regle tes couleurs sur ton projo/LCD en fonction de ca
- tu as une double conversion quelque part, tu fais un mapping de trop
- j'en sais rien :lol:
chambolle
 
Messages: 628
Inscription Forum: 14 Nov 2006 10:52
  • offline

Message » 25 Fév 2008 17:35

Chambolle quand tu parles du remap de seb , c'est de celui la:

Remap_16_235 ( Seb.26 ) : Remap les valeur de 16->235 vers 0->255 ( Low Quality )
NB: Ce script est "Low Quality" = incorrect/buggé ...
Code:
sampler s0 : register(s0);
float4 p0 : register(c0);
float4 p1 : register(c1);

#define width (p0[0])
#define height (p0[1])
#define counter (p0[2])
#define clock (p0[3])
#define one_over_width (p1[0])
#define one_over_height (p1[1])

#define PI acos(-1)

#define Const_1 (16.0/255.0)
#define Const_2 (255.0/219.0)

float4 main(float2 tex : TEXCOORD0) : COLOR
{
return( ( tex2D( s0, tex ) - Const_1 ) * Const_2 );
}

Pourtant seb indique qu'il est incorrect ??
pitch28
 
Messages: 891
Inscription Forum: 06 Fév 2006 1:18
Localisation: 28
  • offline


Retourner vers Matériel PC Home-cinéma