ISPPipeline中的定点除法

目录

[0. 目标](#0. 目标)

[1. 最基础的数学恒等式](#1. 最基础的数学恒等式)

[2. 为什么要放大 2ⁿ?](#2. 为什么要放大 2ⁿ?)

[3. 用移位实现除以 2ⁿ](#3. 用移位实现除以 2ⁿ)

[4. 用一个具体数字彻底看懂](#4. 用一个具体数字彻底看懂)

[5. 提高精度:n 取更大](#5. 提高精度:n 取更大)

[6. 数学上的误差来源](#6. 数学上的误差来源)

[7. 最精炼的数学总结](#7. 最精炼的数学总结)

[8. 为什么图像处理必须用这个?](#8. 为什么图像处理必须用这个?)


0. 目标

我们要计算:y=a​/b

不想做除法,想换成:y≈a×K

也就是:找到一个常数 K,使得 K ≈ 1/b


1. 最基础的数学恒等式

a/b​=a×1/b​

这是整个方法的唯一基石

只要我们能用某种方式表示 1/b,就能把除法完全变成乘法。


2. 为什么要放大 2ⁿ?

计算机 / 硬件不能直接算小数,只能算整数。

所以我们把 1/b 放大 2ⁿ 倍,变成整数:

于是:

也就是:

这就是最核心公式


3. 用移位实现除以 2ⁿ

在二进制里:

所以最终变成:

  • ⌊⌋ 表示取整(因为硬件只能存整数)
  • ≈ 是因为取整带来微小误差

4. 用一个具体数字彻底看懂

我们算:100/5​=20

选 n = 8(放大 256 倍)

真实值 20,计算值 19,误差来自取整。


5. 提高精度:n 取更大

n = 16(65536)

K=65536/5​=13107.2⇒13107

100×13107=1310700

1310700≫16=20

完全精确!


6. 数学上的误差来源

只有一个误差源:

即把小数强行变成整数。

n 越大,误差越小:

  • n=8 → 误差最大 1/256
  • n=16 → 误差最大 1/65536
  • n=32 → 几乎无误差

7. 最精炼的数学总结

一句话:倒数放大 → 乘法 → 缩小还原


8. 为什么图像处理必须用这个?

  1. 除法在硬件里是复杂迭代运算,慢
  2. 乘法是单周期并行运算,快
  3. 图像每秒百万像素,必须流水线
  4. 查表法延迟固定,适合 ISP
相关推荐
我材不敲代码1 小时前
YOLOv1 ——One-Stage目标检测开山之作
人工智能·yolo·目标检测
瑞璐塑业peek注塑1 小时前
基于PEEK+碳纤维注塑加工髋关节,助力外骨骼机器人实现全面跃升
人工智能·机器人
IT届小白2 小时前
无代码开发实战:用AI+Prompt工程从0到1构建排班记录App
人工智能·prompt
铁手飞鹰2 小时前
高光谱化学成分预测
人工智能·深度学习·机器学习
xiaotao1312 小时前
04-进阶方向: 01-计算机视觉(CV)——目标检测:SSD
人工智能·目标检测·计算机视觉
心勤则明2 小时前
基于Spring AI Alibaba的监督者模式实践
人工智能·python·spring
沪漂阿龙在努力2 小时前
从“瞎推车”到“平衡大师”:一文读懂强化学习里的策略梯度法(小白也能懂)
人工智能
蓝桉~MLGT2 小时前
Ai-Agent学习历程—— Harness和Memory介绍和应用 & vibe Coding工具选择
人工智能·学习
刘劲松12 小时前
Feishu-CLI-Web:私有化部署飞书Web智能工作台,自然语言操控飞书全能力
人工智能·飞书