IspPipeline色相旋转模块实现

处理对象:10bit YCbCr 图像,数值范围 0‑1023;Cb、Cr 中性中点 512;模块 662 BCC(明亮度、对比度、颜色调整)。 本模块仅实现:亮度调整、对比度调整、色相相关的饱和度调整;不提供色相旋转 / 色相偏移功能。

一、明亮度和对比度处理块 760(Y 通道)

专利流程:

  1. 输入原始亮度Y;
  2. ,减去偏移,将黑度置零;
  3. ,施加对比度增益;
  4. ,施加明亮度偏移;
  5. ,加回偏移。

参数:

  • :Y 通道偏移;
  • :对比度增益,12bit,2 整数位 + 10 小数位;
  • :明亮度偏移,10bit 二进制补码,范围‑512 ~ +512。 输出校正后亮度\(Y'\),输出给后级伽马调整逻辑。

二、全局色相控制块 762(仅用于求取色相角,无色度矢量旋转)

输入原始色度 Cb、Cr(10bit)

  1. 中心化预处理:
  2. 计算该像素自身色相角

:当前像素本身的色相角度,取值范围 0‑360°;对应专利颜色轮 770。 公式 (78)(79) 中,三角函数仅用于求取色相角 θ,不做 Cb、Cr 矢量旋转变换 。 \(\theta\)输出到饱和度控制块 764,仅作为查表索引,不修改 Cb0、Cr0 的值。

三、饱和度控制块 764(色相相关饱和度调节)

专利核心:饱和度增益随像素原始色相角而变化,不同色相可以拥有不同饱和度放大系数。

  1. 以第二步得到的色相角作为查找表索引;CORDIC算法实现色相角的三角函数计算。
  2. 查找表包含 256 个采样点,均匀分布 0‑360° 色相范围;根据做相邻采样点线性插值,得到该色相对应的色相相关饱和度乘子;
  3. 合成总饱和度系数::全局饱和度增益参数;
  4. 将总饱和度系数施加到中心化色度:
  5. 恢复 10bit 色度偏移,并钳位到 0,1023:输出(Cb'、Cr'),与(Y')一起送入 YCbCr 伽马调整逻辑 664。

关键纠正:不存在色相旋转矩阵对 Cb0/Cr0 做变换;Cb0/Cr0 直接参与饱和度缩放;矩阵 Ka Kb 只为求 θ 用于查表。

✅完整数据流

cpp 复制代码
输入:10bit YCbCr(Y, Cb, Cr)
│
├─Y通道【760明亮度‑对比度块】
│   Y1 = Y-Yoffset
│   Y2 = Y1 * G_contrast
│   Y3 = Y2 + B_bright
│   Y' = clamp(Y3 + Yoffset, 0,1023)
│
└─Cb Cr通道【762全局色相控制 +764饱和度控制块】
    Cb0 = Cb‑512
    Cr0 = Cr‑512
    θ = arctan(Cr0 / Cb0)   ←仅求像素本身色相角,用于查表,不改动Cb0、Cr0
    θ索引色相饱和度LUT,线性插值得到S_hue
    S_total = G_sat × S_hue
    Cb_out = Cb0 × S_total
    Cr_out = Cr0 × S_total
    Cb' = clamp(Cb_out +512,0,1023)
    Cr' = clamp(Cr_out +512,0,1023)

▼
Y'、Cb'、Cr' →【664 YCbCr伽马调整逻辑】三通道独立LUT非线性映射
▼
Y_gamma直通;Cb_gamma/Cr_gamma进入【668色度抽选逻辑】7抽头滤波+水平亚采样4:4:4→4:2:2
▼
输出YCbCr图像,送往缩放逻辑670
相关推荐
csdn_aspnet25 分钟前
C++ 3个有序点的方向(Orientation of 3 ordered points)
c++·算法
赤生云电竞1 小时前
GPU算力共享平台架构实践:任务分发与资源隔离的关键配置
算法·架构·gpu算力
#六脉神剑2 小时前
myBuilder 11 月新版本:AI辅助设计
ide·人工智能·低代码·ai·mybuilder
SJZR2 小时前
图解循环神经网络(RNN)
人工智能·rnn·神经网络
QXWZ_IA2 小时前
测绘单位采购RTK:设备价格、账号年费、售后,用时间轴分权重
网络·人工智能·安全
青少儿编程课堂2 小时前
蓝桥杯·全国青少年信息素养大赛·电子学会Python/C++考级:折半搜索优化子集枚举(Meet in the Middle)解析
c++·python·算法·bfs·信息学竞赛
kaixin_啊啊3 小时前
【零基础学AI】第 29 章——第一次调用大模型 API
人工智能
甲维斯3 小时前
Qwen4 被嘲笑了!国模被啥锁死了?
人工智能
夕阳_醉了3 小时前
Codex 客户端从装好到跑通:第三方 API 接入与配置避坑指南
人工智能·gpt·openai·codex·ai 编程
熟的生菜3 小时前
从零造一个腱绳驱动灵巧手——仿真器篇5:姿势串与手势工程——从文本协议到握拳、OK 与多姿势插值
人工智能