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
相关推荐
u1301302 分钟前
GitHub 热榜项目:月榜(2026-09-30)
人工智能·github
BSD_CGQ5 分钟前
从工业称重到机器人触觉:柔性压力传感器的跨场景工程适配路径
人工智能·机器人·压力传感器·柔性薄膜压力传感器
AI搅拌机20 分钟前
Minimax H3导演台焕新:支持分镜复制与切换,UI全面统一升级,全能工作流玩转H3
人工智能
IT古董24 分钟前
AI 资讯日报 | 2026年9月27日:模型价格战升级 · Agent 安全风险升温 · AI 资本与监管进入新阶段
人工智能
龙亘川26 分钟前
铭记英烈守初心,数字强基促服务:亘川智城退役军人服务系统的实践与价值
java·数据库·人工智能
百数平台27 分钟前
百数 MCP 开发实战:私有 Python 工具编写、API Key 鉴权、Streamable-HTTP 接入与智能体挂载
人工智能·低代码
甲维斯35 分钟前
Opus5.5大考!做一个赛车游戏"秋名山车神"
人工智能·游戏开发
阜阳山君GEO39 分钟前
豆包 SEED 新版本 GEO 优化:信源金字塔、打分体系与避坑落地指南
人工智能·算法
OxYGC42 分钟前
[AI工程] Spring AI 第廿一篇:存量 REST 接口的 MCP 化改造实录——工具从哪条路径注册、参数描述怎么写、身份怎么过去
java·人工智能·spring
晓天衡宇•评测社区1 小时前
晓天衡宇亮相 2026 云栖大会:迈向更可信的高质量评测
人工智能·算法·机器学习