CCD 相机的像素读取方式
如果搜索 CCD 和 CMOS 的像素读取区别,经常能看到一句话:CCD 是每次一行读取,每次读取完之后逐行“搬运”到输出端进行电压读出;CMOS 是每个像素一下子读取的。
我当时对 CCD 读取的方式理解有误,有了这个问题,下面是大模型的回答进行了一些修改。
那一行一行送到寄存器中,CCD是怎么获取图像数据的?这样操作不是只能获取每一行的总和吗?
非常好的问题!👏
这说明你已经深入理解了 CCD 的“移位”过程,而你提到的疑问确实是很多人初学时的困惑。
让我们仔细理一理这一步是怎么做到每个像素都能单独读出的——而不是整行总和。
🧩 关键点:CCD 是“逐像素移位”的,不是“整行加和”
虽然 CCD 是一行一行地把像素电荷送入水平寄存器的,但——
⚠️ 每个像素的电荷在水平方向上也是逐个移位、逐个输出的,不会混在一起。
可以这么理解:
一、垂直方向(行扫描)
1. 整个感光区是一个二维阵列,比如 1024 × 768
。
2. 当曝光结束后,第一行的电荷(第1行像素)被整体“推入”水平移位寄存器(HCCD)。
3. 这时候,仅这一行的像素进入“读出区”。
所以垂直方向上确实是“一行一行”在读,但这一行内部的像素仍是独立的。
二、水平方向(列扫描)
接下来:
- 水平移位寄存器(HCCD)内部也由许多“电荷单元”组成(与像素列数相同,比如1024个)。
- 通过水平时钟信号,这1024个电荷会一个接一个被推向输出放大器。
📤 输出端只会在每次推送一个电荷时输出一个电压信号。
这就是每个像素的灰度值。
三、时间顺序示意
假设是一个 3×3 的 CCD,为了简单说明:
行1: [a11 a12 a13]
行2: [a21 a22 a23]
行3: [a31 a32 a33]
则输出过程是这样:
1️⃣ 垂直转移:将行1移到水平寄存器。
2️⃣ 水平转移输出:
输出顺序:a11 → a12 → a13
3️⃣ 再垂直转移行2 → 水平移位输出:
输出顺序:a21 → a22 → a23
4️⃣ 同理:
a31 → a32 → a33
所以最终读出的信号顺序(1D 数据流)是:
a11, a12, a13, a21, a22, a23, a31, a32, a33
——刚好是逐行扫描的完整图像数据。
🧠 重点总结
步骤 | 动作 | 结果 |
---|---|---|
垂直移位 | 一行行移动到水平寄存器 | 行扫描 |
水平移位 | 寄存器中像素逐个推出 | 列扫描 |
输出放大器 | 将电荷 → 电压信号 → ADC 转为数字 | 像素值获取 |
最终输出 | 连续的数据流,每个值对应一个像素 | 形成图像矩阵 |
🎥 类比理解
你可以把 CCD 想象成:
- 有一个货架阵列(像素);
- 每一层(行)货架的箱子(像素电荷)被推到传送带上;
- 传送带再一个一个地把箱子送到出口称重机(输出放大器);
- 称重机会记录每个箱子的重量(像素亮度)。
这样一来,整张图像的所有像素都能单独读出。
是否希望我帮你画一张CCD电荷传输示意图(包括垂直、水平移位和输出放大器的对应位置)?
样你会更直观地看到“一行一行+一像素一像素”的过程。
我的天,那这样速度比CMOS会慢好多,相当于如果有n*m的图像,会慢n倍
完全正确 😄,你抓住了 CCD 的致命缺点之一 ——
它的读出速度确实比 CMOS 慢得多,这正是为什么如今几乎所有数码相机、手机、工业相机都转向 CMOS 的核心原因。
不过我们可以更精确地理解一下为什么会 “慢 n 倍”,以及 CCD 是怎么尽量缓解这个问题的。
⚙️ 一、CCD 的读取方式决定了速度瓶颈
你说得非常准确:
“n×m 的图像要一行一行读出,相当于慢 n 倍”
是的——因为 CCD 的像素信号不能并行读出,而是必须依次移位:
- 垂直方向: 把 n 行依次推送到水平移位寄存器;
- 水平方向: 每行再逐像素移位(m 次)到输出端;
- 每个像素都要经过电荷转移 → 放大 → 采样 → ADC。
因此,一个完整的帧需要:
n(行数) × m(列数) 次电荷转移操作。
所以理论上,读取时间 ∝ 像素总数。
⚡ 二、CMOS 的并行优势
CMOS 的工作方式完全不同:
对比项 | CCD | CMOS |
---|---|---|
读出方式 | 电荷移位,一路串行 | 每个像素自带放大器,可并行读取 |
速度 | 慢,依赖移位时钟 | 快,可随机访问行/列/区域 |
功耗 | 高(持续时钟驱动+长距离电荷传输) | 低(就地放大+局部读出) |
噪声 | 低,读出电路统一 | 略高,受像素间工艺差异影响 |
均匀性 | 极好(每像素处理路径相同) | 较差,需要校正 |
👉 CMOS 实际上是一个“每个像素都带放大器的微型电路”,它输出的是电压信号,不需要“传送电荷”这一步。
🧩 三、CCD 的“补救办法”
CCD 工程师也意识到了串行传输太慢,于是发明了几种折衷方案:
1️⃣ 多通道读出(Multiple Output Node)
- 把感光区分成几块(例如左右各半),每块有自己的输出放大器;
- 相当于多条“传送带”并行输出。
例如:
4 通道 CCD = 速度提升 4 倍
16 通道 CCD = 速度提升 16 倍
👉 但这样会增加读出电路复杂度和噪声匹配难度。
2️⃣ Frame-Transfer CCD
- CCD 分为两部分:光敏区 和 存储区;
- 曝光结束后,整帧图像瞬间转移到存储区(避免拖影),然后慢慢读;
- 提高帧率、减少读出期间曝光干扰,但仍然是串行。
3️⃣ Interline CCD(交错式)
- 每个像素旁边放一条“垂直转移通道”,曝光结束立即把电荷塞进通道;
- 可实现电子快门;
- 但填充率下降(因为部分面积被传输通道占用)。
🕓 四、简单算一个数量级
假设:
-
CCD:1024 × 1024 像素;
-
每个像素的移位时间:
1 µs
; -
则读取一帧:
1024 × 1024 × 1µs ≈ 1.05 秒
👉 实际 CCD 的时钟更快(~MHz 级),所以帧率通常在 几帧到几十帧每秒,但和 CMOS 动辄上百上千帧相比,确实慢很多。
🧠 五、小结一句话:
CCD 就像一台“排队结账的超市”,所有像素必须按顺序过结账机;
CMOS 则是“每个货架自带扫码枪”,各行各列可以同时结账。
是否希望我帮你画一张图,展示 CCD 和 CMOS 在读出路径上的区别?那样你一眼就能看到 CCD 串行、CMOS 并行的结构差异。