color range问题总结 (附:色彩空间简介)

xiaoxiao2021-02-28  174

【音视频基础系列】 YUV格式简介 色彩空间简介(本文)


常见问题

color range处理不当会导致对比度变化。典型案例,ffmpeg中x265编码器对full range的支持没有x264那么好,在yuvj420p格式下会有问题。

先来看两个例子,左边的均为亮度正常的图片

图1 图2

例1:对比度降低,所谓的过曝问题(也出现在姚冬 - 曝光过度),比较常见,没有正确处理full range输入造成。直观上描述:暗色部分发白,白色区域变暗,红色部分也没有那么鲜艳。 例2:对比度增大,与例1刚好相反。

解决方案与对比

针对full range和limited range的输入,ffmpeg下的解决方案,试罗列三种。实现与区别分别如下: 1. -color_range jpeg 2. vf="scale=range=full" + -x265-params range=full 3. 需要判断输入,如果range=tv,不用额外处理;如果range=pc,按照1或2进行转换。(3比较合理)

color range

full range [0, 255] limited range Y [16,235] UV[16,240]

full range,(aka “jpeg”, “pc”, “cg”, “high rgb”) limited range,(aka “mpeg”, “tv”, “broadcast”, “low rgb”)

In broadcast environment levels from 1 to 254 are available for video, levels 0 and 255 are used exclusively for SDI interface synchronization. 常见的full range使用范围是[1, 254]

图3. limited range各分量(rgb,yuv)的取值范围及对颜色信号模拟的。

图4. full range 与 limited range的转换 范围clip表

color space 基础

例3:

图5. FFprobe信息

ffprobe的视频基础信息中:yuvj420p(pc): yuvj420p 是pixel format; pc 是range(很多视频可能不填range信息)。

1.pixel format

2.color range

参上一节 AVFrame->color_range

3.transfer characteristics

RGB线性转换:gamma校正 AVFrame->color_trc

4.color primaries

线性RGB转换通用色彩空间:涉及色域映射等。 AVFrame->color_primaries

5.color matrix

YUV与RGB之间的转换矩阵。标准进行转换的规定。 AVFrame->colorspace

图6. 常用标准中的 RGB - YUV转换公式

详见以下标准: Bt.601 Studio encoding parameters of digital television for standard 4:3 and wide-screen 16:9 aspect ratios SD Bt.709 Parameter values for the HDTV standards for production and international programme exchange HD Bt.2020 Parameter values for ultra-high definition television systems for production and international programme exchange UHD-SDR Bt.2100 Image parameter values for high dynamic range television for use in production and international programme exchange UHD-HDR HD-HDR


转载请注明原文地址: https://www.6miu.com/read-426016.html

最新回复(0)