1

Unless I'm bad at reading, this page states that colormatrix is only good for 8 bpc.

From Colorspace support in FFmpeg:

... colormatrix produces horrible quality for anything > 8bpc (8-bit per component)

Backstory. One of my typical workflows is to convert 16bit tiffs and 10bit DPX frames into 10bit prores. However, I think the input colorspace of the frames is assumed to be bt601 and I would always get encodes that looks just slightly off from my originals. I solved this by adding:

-vf colormatrix=bt601:bt709

And it looks fine visually. The difference between the source and encode I always just assumed was the lossy compression.

So can someone chime in on if the colormatrix=bt601:bt709 operation is 'supposed' to be bad when the source and encode are >10bpc? Or is the info on that page outdated? Or should I be doing it a different way?

1 Answer 1

1

Yes, as it says a couple of lines above, colormatrix supports only 8bpc (8-bit per component) pixel formats. So, when a 16-bit input is filtered with colormatrix, it will be converted to 8-bits. And won't get converted back to 16-bit unless manually done or auto-converted due to output encoder limitations. But that's pointless anyway, as the precision has been lost.

Use the colorspace filter.

-vf colorspace=all=bt709:range=tv:format=yuv422p10:iall=bt601:irange=tv

Depending on your use case, format may need to be yuv444p10. Depending in your input, irange may need to be pc.

2
  • Sorry, it's bt601-6-525 for NTSC or bt601-6-625 for PAL.
    – Gyan
    Aug 5, 2019 at 17:38
  • Yep I'm noticing colormatrix vs colorspace in 10bit encodes. The colormatrix conversions all look noisier in gradients. It's not hugely perceptible to the naked eye but I can see it while boosting/enhancing a still frame. But the other detriment is that the added noise of colormatrix was making the prores file bigger by roughly 35% for even less quality.
    – Shao Zhang
    Aug 6, 2019 at 5:30

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.