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".