Log in

View Full Version : Odd Double Matrix Conversion


MysteryX
17th November 2015, 04:07
I have this video that is very odd.
https://mega.nz/#!7NI0CJDR!ysvMqbkwU406cIDQZlrn5BY8XqNi_B4wRnrJQDfQq_E

If you look at the red chair, half of it is plain red (cropped colors)

Because it is Rec.601, we must add this
ColorMatrix(mode="Rec.601->Rec.709")

The red is still cropped. However, if you repeat the ColorMatrix twice, then the chair gains back its texture and now looks more like a chair!

Yeah, something is screwed up with this video. I can do the conversion twice and it will give me a better result.

But then does this also apply to other videos? Here's another one. Could you take a look at it and tell me whether you think it needs to be converted to Rec.709 once or twice?
https://mega.nz/#!SM4TiZhA!oNaeorzfD2yHNm2ZydeHJP6l9P6eM9Z1caOqDaQKzdE

How can I know which videos require this "fix" ?

Anything else you have to say about these videos?

poisondeathray
17th November 2015, 07:44
Decrease the red saturation, there are oversaturated reds, that's why the chair detail is obscured

Colormatrix twice will screw up the other colors

Also, you should use clamp=0 to not clip colors with colormatrix

MysteryX
17th November 2015, 08:25
How do I decrease the red saturation?

raffriff42
17th November 2015, 15:15
Rec.601->Rec.709 conversion (through any method, not just ColorMatrix) decreases red saturation and increases green. #LoadPlugin("ColorMatrix\ColorMatrix.dll")
ColorBars(pixel_type="YV12")
AmplifyDB(-24)
Trim(0, 59)
return (Last.Subtitle("org")
\ ++ Last.ColorMatrix(mode="Rec.709->Rec.601").Subtitle("Rec.709->Rec.601")
\ ++ Last.ColorMatrix(mode="Rec.601->Rec.709").Subtitle("Rec.601->Rec.709")
\ ).Loop(100)

Reel.Deel
17th November 2015, 15:48
The V channel contains out of range values, when it gets converted to RGB those illegal values get clipped.

http://s17.postimg.org/q9lgx4t19/v_channel_out_of_range.png

Try correcting it with something like this:

MPEG2Source("Nicole-Oon-Jai.d2v")

y = last
u = UToY8()
v = VToY8().Levels(0, 1, 255, 16, 240)

YToUV(u,v,y)

It desaturates pink just a tad but the red looks much better.