color range问题总结 (附:色彩空间简介)
【音视频基础系列】
YUV格式简介
色彩空间简介(本文)
常见问题
color range处理不当会导致对比度变化。典型案例,ffmpeg中x265编码器对full range的支持没有x264那么好,在yuvj420p格式下会有问题。
先来看两个例子,左边的均为亮度正常的图片
例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:
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
上一篇: html doctype有几种