OpenISP 模块拆解 · 第15讲色相饱和度控制 (HSC)模块作用HSC 是色相和饱和度控制模块作用在 YUV 的 UV 色度通道。它用于整体颜色风格调整例如让颜色更鲜艳、偏暖或偏冷。openISP 实现源码类名为HSC(img, hue, saturation, clip)。输入是 UV 两通道图像。它先构造0..359度的 sin/cos LUT并乘以 256 用作固定点。理论公式将 UV 去中心u U - 128 v V - 128色相旋转U u*cos(hue) v*sin(hue) 128 V v*cos(hue) - u*sin(hue) 128饱和度缩放U saturation * (U - 128) / 256 128 V saturation * (V - 128) / 256 128其中saturation256表示 1 倍。读源码注意点openISP 源码先计算 hue 旋转但随后又用原始self.img计算 saturation 并覆盖前面的结果。因此当前实现中 hue 旋转实际没有生效主要生效的是 saturation。参数说明参数含义hue色相旋转角度saturation饱和度增益256 为 1 倍clip输出上限面试问答Q1: YUV 中如何调整饱和度以 128 为 UV 中性点把 U/V 到 128 的偏移乘以饱和度系数再加回 128。偏移越大颜色越鲜艳。Q2: 色相调整本质是什么在 UV 平面围绕中性点旋转向量相当于改变颜色方向但尽量保持色度幅度。Q3: 饱和度过高有什么副作用会放大色噪、伪彩和压缩色块也可能造成颜色 clipping让肤色和自然物体不真实。Q4: 为什么 HSC 常放在后段它属于风格调校通常在基础颜色还原、降噪、伪彩处理之后做避免把前面的问题放大。Q5: openISP 的 HSC 有什么实现问题hue 旋转结果被 saturation 计算覆盖导致 hue 参数实际不生效。应先旋转再基于旋转结果做饱和度缩放。