Messages in this thread | | | Subject | Re: [PATCH v2 1/4] [media] exynos-gsc: Use 576p instead 720p as a threshold for colorspaces | From | Hans Verkuil <> | Date | Mon, 13 Feb 2017 09:47:55 +0100 |
| |
On 02/10/2017 08:38 PM, Russell King - ARM Linux wrote: > On Thu, Feb 09, 2017 at 05:04:17PM -0300, Thibault Saunier wrote: >> From: Javier Martinez Canillas <javier@osg.samsung.com> >> >> The media documentation says that the V4L2_COLORSPACE_SMPTE170M colorspace >> should be used for SDTV and V4L2_COLORSPACE_REC709 for HDTV. But drivers >> don't agree on the display resolution that should be used as a threshold. >> >> Some drivers set V4L2_COLORSPACE_REC709 for 720p and higher while others >> set V4L2_COLORSPACE_REC709 for anything higher than 576p. Newers drivers >> use the latter and that also matches what user-space multimedia programs >> do (i.e: GStreamer), so change the driver logic to be aligned with this. >> >> Also, check for the resolution in G_FMT instead unconditionally setting >> the V4L2_COLORSPACE_REC709 colorspace. > > It would be nice to refer to some specification to justify the change, > rather than "let's follow what <random-piece-of-software> does". > > EIA CEA 861B talks about colorimetry for various resolutions: > > 5.1 480p, 480i, 576p, 576i, 240p, and 288p > The color space used by the 480-line, 576-line, 240-line, and 288-line > formats will likely be based on SMPTE 170M [1]. > > 5.2 1080i, 1080p, and 720p > The color space used by the high definition formats will likely be based > on ITU-R BT.709-4 [6]. > > Notice, however, that it says "will likely be" - it's not a requirement, > as it's expected that the colorspace will be part of the media metadata > (eg, contained in the transport stream.) In other words, it should be > configurable or ultimately provided by the ultimate source of the image.
Colorspace information is transmitted as part of HDMI/DisplayPort meta-information (AVI InfoFrames, see CEA/CTA 861).
Compressed video typically encodes the colorspace information as well.
SDTV never had metainformation and you should fall back to SMPTE170M.
Webcams/sensors should give sRGB unless otherwise indicated. If it is a sensor that expects further processing, then COLORSPACE_RAW can be used.
Anything else is typically sRGB.
Note that sRGB and SMPTE170M can be considered fall-back colorspaces in the absence of any other information.
Regards,
Hans
| |