CREATE and FUCK your own AI GIRLFRIEND TRY FOR FREE
x

Collection Video Yakin@ACG EDIT collection [2024-03-24] [Yakin/ACGEDIT]

orapro

Member
Jul 4, 2020
157
218
How are you interpolating these? The colours are off -
Nowadays most AI models in video processing take RGB data, while most videos are YUV data which only exists as intermediate for compression/transmission because we capture and see RGB light.
Dude used wrong and mismatching conversion matrix during interpolation.
The problem in this specific case is YUV -(bt.601)-> RGB -(bt.709)-> YUV.
 
Last edited:
  • Like
Reactions: hlarious

Framecurv

New Member
Mar 12, 2021
13
59
Nowadays most AI models in video processing take RGB data, most videos are YUV data which only exists as intermediate for compression because we capture and see RGB light.
Dude used wrong conversion matrix during interpolation.
The problem in this specific case is YUV -(bt.601)-> RGB -(bt.709)-> YUV.
Most content is usually BT709 nowadays, it's just that ffmpeg still has BT601 as default for some reason.
Good to see some people finally making sense with encoding.

(This color matrix issue can be resolved by using -vf "colormatrix=bt601:bt709")
 

orapro

Member
Jul 4, 2020
157
218
Most content is usually BT709 nowadays, it's just that ffmpeg still has BT601 as default for some reason.
Good to see some people finally making sense with encoding.

(This color matrix issue can be resolved by using -vf "colormatrix=bt601:bt709")
Yeah FFmpeg is weird but more weird is that when converting back to YUV on the contrary the bt.709 matrix is used.
I'm not sure if it's FFmpeg's fault though because only the guy who did the interpolation know what tools he used.
FFmpeg is not necessarily involved, the whole process can be done in VapourSynth.

edit:
p.s. by the way, in this specific case, the "fix" should be -vf colormatrix=bt709:bt601 and then still playback as bt709
basically this make YUV -(bt.601)-> RGB -(bt.709)-> YUV to become YUV -(bt.601)-> RGB -(bt.601)-> YUV (approximately),
now since these matrix conversions are reversible (otherwise you won't see any "correct color" in virtually any video), we are back to original video's colorspace, which is tagged as bt709, so we playback as bt709.
actually it's not the wrong matrix used the problem, but mismatching matrix used is problem, if same matrix is used to convert back and forth between YUV and RGB, and keep the "bt709" tag in metadata at the end, no one would noticed any difference.

p.s. no.2: fuck me, video technology lecture in porn forum.
 
Last edited:

Framecurv

New Member
Mar 12, 2021
13
59
Yeah FFmpeg is weird but more weird is that when converting back to YUV on the contrary the bt.709 matrix is used.
I'm not sure if it's FFmpeg's fault though because only the guy who did the interpolation know what tools he used.
FFmpeg is not necessarily involved, the whole process can be done in VapourSynth.

edit:
p.s. by the way, in this specific case, the "fix" should be -vf colormatrix=bt709:bt601 and then still playback as bt709
basically this make YUV -(bt.601)-> RGB -(bt.709)-> YUV to become YUV -(bt.601)-> RGB -(bt.601)-> YUV (approximately),
now since these matrix conversions are reversible (otherwise you won't see any "correct color" in virtually any video), we are back to original video's colorspace, which is tagged as bt709, so we playback as bt709.
actually it's not the wrong matrix used the problem, but mismatching matrix used is problem, if same matrix is used to convert back and forth between YUV and RGB, and keep the "bt709" tag in metadata at the end, no one would noticed any difference.

p.s. no.2: fuck me, video technology lecture in porn forum.
Entirely agree and actually based, rare vs enjoyer spotted.
 
Last edited:

hlarious

Newbie
Jun 4, 2022
78
276
Yeah FFmpeg is weird but more weird is that when converting back to YUV on the contrary the bt.709 matrix is used.
I'm not sure if it's FFmpeg's fault though because only the guy who did the interpolation know what tools he used.
FFmpeg is not necessarily involved, the whole process can be done in VapourSynth.

edit:
p.s. by the way, in this specific case, the "fix" should be -vf colormatrix=bt709:bt601 and then still playback as bt709
basically this make YUV -(bt.601)-> RGB -(bt.709)-> YUV to become YUV -(bt.601)-> RGB -(bt.601)-> YUV (approximately),
now since these matrix conversions are reversible (otherwise you won't see any "correct color" in virtually any video), we are back to original video's colorspace, which is tagged as bt709, so we playback as bt709.
actually it's not the wrong matrix used the problem, but mismatching matrix used is problem, if same matrix is used to convert back and forth between YUV and RGB, and keep the "bt709" tag in metadata at the end, no one would noticed any difference.

p.s. no.2: fuck me, video technology lecture in porn forum.
Very informative, thanks for the explanation. So, distilled into a ffmpeg command:
Code:
ffmpeg -i in.mp4 -vf colormatrix=bt709:bt601 -colorspace bt709 -c:a copy out.mp4
Though, as implied, this is just a band-aid solution to fix the colours. The proper solution would be to fix the interpolation process itself to avoid messing up the colours
 
Last edited: