インチキYC伸張もどきシェーダー
MPC用
mixingモードが付いてる最近のビルドじゃないと
PureVideoではあまり意味がないかも
sampler s0 : register(s0);
static float4x4 r2y =
{
0.299, 0.587, 0.114, 0, -0.147, -0.289, 0.437, 0,
0.615, -0.515, -0.100, 0,0, 0, 0, 0
};
static float4x4 y2r =
{
1.0, 0.0, 1.140, 0, 1.0, -0.394, -0.581, 0,
1.0, 2.028, 0.0, 0, 0, 0, 0, 0
};
#define ymin (16.0/255)
#define ymax (235.0/255)
#define cmin (16.0/255)
#define cmax (240.0/255)
#define Brightness (-ymin)
#define Contrast (1.0/(ymax-ymin))
#define Sat ( 1.0/(cmax-cmin)*2 -1 )
float4 main(float2 tex : TEXCOORD0) : COLOR
{
float4 c0 = tex2D(s0, tex);
c0 = mul(r2y, c0);
c0.r = Contrast * (c0.r - ymin) + ymin + Brightness;
c0.gb = Sat * c0.gb;
c0 = mul(y2r, c0);
return c0;
}
色差処理はでたらめ、てか見た目で決めた
プリセットであったものを弄っただけだから、
正直何がどうなってるとかいまいち把握できてない
誰かちゃんと直してください
いらないなら
c0.gb = Sat * c0.gb;
の行頭に//でも付けてコメントアウトしてください
まあPurevideoだけならカラータブのところを弄れば
良いだけだけど