On 05/09/2016 01:33 PM, Thomas Worth wrote:

Here's your cheat sheet if you want perfect decoding of YCbCr to RGB:

1. Encode RGB to YCbCr using the Poynton-approved RGB->709 matrix
coefficients (don't mess with 601, trust me, unless you think apples should
look like oranges)
2. Subsample the chroma channels to either 4:2:2 or 4:2:0
3. Scale (don't clip) luminance to 16-235
4. Scale (don't clip) chroma to 16-240


Thank you for this "to the point" list.

From other responses in this thread I gather the following "practical steps" are in order:

1. Given that ffmpeg seems to interpret image2pipe fed RGB via 601, I need to add the following filter as early as possible in my pipelines:

scale=in_color_matrix=bt601:out_color_matrix=bt709

2. I will skip this entirely, since subsampling of the source material (text, with many font-strokes being 1-pixel wide) can only result in guaranteed loss of color/legibility for all devices (even these that do understand 444p). My thinking is that if a playback mode can not directly handle 444p it will "downscale" correctly to 422p/420p.

3. It seems ffmpeg does not offer a way to do this? At least nothing in `man ffmpeg-filter` hints to addressing this...

4. This seems to be handled by ffmpeg for me automatically, but just to be sure, I will amend the "as early as possible" step from 1) as follows:

scale=in_color_matrix=bt601:out_color_matrix=bt709:in_range=full:out_range=tv

Please let me know if I grossly misunderstood something

Cheers
_______________________________________________
ffmpeg-user mailing list
ffmpeg-user@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-user

To unsubscribe, visit link above, or email
ffmpeg-user-requ...@ffmpeg.org with subject "unsubscribe".

Reply via email to