Visual LabINTERACTIVE LEARNING
阶段 2 · 压缩编码基础22 分钟

压缩从哪里来:空间、时间与感知冗余

Prediction、Transform、Quantization 与 Entropy Coding

拆开现代编码器的共同骨架:先预测,再编码残差,经过变换、量化和熵编码得到更短码流。

LEARNING GOALS

先明确本课目标

1

识别空间与时间冗余

2

理解预测残差为何更易压缩

3

说出量化是主要有损步骤

MENTAL MODEL · 再建立心智模型

编码器不重复描述整张图,而是先猜出大部分内容,只保存“猜错了多少”,再把不重要的细节变粗、把常见符号写短。

MINIMAL EXAMPLE

为什么保存差值比保存原像素更省?

相邻像素或相邻帧通常相似。用已知数据预测当前块后,真实值减预测值形成的残差更集中在零附近,符号分布更利于压缩。

最小例子javascript
const predicted = leftPixel;
const residual = currentPixel - predicted;

// 解码端拥有同样的预测依据
const reconstructed = predicted + residual;
  1. 使用已知邻居预测 解码端也必须能得到同一预测值。
  2. 只编码预测误差 平坦区域残差常接近零。
  3. 预测加残差重建 无量化时可以精确恢复原值。

原像素范围很宽,而残差大量集中在小数值,为量化和熵编码创造条件。

本课概念
OPTIONAL · 按需查阅完整术语表与概念边界

遇到陌生术语时再展开,不打断主线实验。

展开⌄
LIVE EXPERIMENT · 先获得反馈

边改边运行

浏览器加载后会激活代码编辑器、独立运行环境与实时输出。

本课挑战

为 8×8 灰度块实现简化预测、变换、量化和反变换流程。

DEEP DIVE · 实验之后

回到原理,解释刚才发生了什么

先用结果建立反馈,再按运行流程、核心原理和知识关系逐层深入。

CORE IDEA

核心讲解

01

预测把信号变简单

帧内预测利用邻近像素,帧间预测利用参考帧。预测越准,残差越接近零,后续越容易用少量比特表达。

02

量化交换质量和体积

变换把残差能量集中到少数系数,量化再降低系数精度并制造大量零值。熵编码无损地把高概率符号写得更短。

OPTIONAL · 迁移时查阅Web 与原生实现对照

主线实验完成后,再用完整映射处理跨平台或跨 API 迁移。

展开⌄
API COMPARISON

浏览器和原生常调用同类硬件/软件 Codec,差别在配置入口和帧队列所有权。

WebGL

FFmpeg 或平台 Codec 暴露 Profile、Level、GOP、B-frame、Rate Control 等更多旋钮。

WebGPU

MediaRecorder 与 WebCodecs 以 MIME、codec string 和少量参数配置编码器。

先理解预测—残差—量化主链,再看不同编码器参数名会清晰很多。