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
相关推荐
sunneo5 分钟前
每周GitCode开源推荐:AI编程助手AtomCode
人工智能
AIDANHANG21 分钟前
最小可售:不是最小可炫
人工智能
鲲穹AI种草25 分钟前
图片水印处理工具记录:多款 AI 去水印工具能力边界整理
人工智能·图片水印处理工具
企鹅的企38 分钟前
2027北京AI健康科技与智慧医疗展官方精准邀约进行中
人工智能·科技
高德诚39 分钟前
探索桌面智能的无限可能:小小舵机,撑起 AI 仿生交互的完整未来
人工智能
2601_9563198843 分钟前
2026年零基础学量化:从看懂示例到写清条件和动作
人工智能·python
ArkAPI1 小时前
Claude Code 连发安全修复:AI 编程 Agent 的权限,正在成为新的“安全事故高发区”
人工智能·大模型·api·codex·ai工具·claude code·arkapi
Thecozzy1 小时前
大厂 AI Coding 面试大招
人工智能·面试·职场和发展
维核科技1 小时前
推理加速实战:投机解码与KV Cache优化让大模型“快起来“
人工智能