阶段 2 · 压缩编码基础22 分钟
压缩从哪里来:空间、时间与感知冗余
Prediction、Transform、Quantization 与 Entropy Coding
拆开现代编码器的共同骨架:先预测,再编码残差,经过变换、量化和熵编码得到更短码流。
LEARNING GOALS
先明确本课目标
1
识别空间与时间冗余
2
理解预测残差为何更易压缩
3
说出量化是主要有损步骤
MENTAL MODEL · 再建立心智模型
编码器不重复描述整张图,而是先猜出大部分内容,只保存“猜错了多少”,再把不重要的细节变粗、把常见符号写短。
MINIMAL EXAMPLE
为什么保存差值比保存原像素更省?
相邻像素或相邻帧通常相似。用已知数据预测当前块后,真实值减预测值形成的残差更集中在零附近,符号分布更利于压缩。
javascriptconst predicted = leftPixel;
const residual = currentPixel - predicted;
// 解码端拥有同样的预测依据
const reconstructed = predicted + residual;- 使用已知邻居预测 解码端也必须能得到同一预测值。
- 只编码预测误差 平坦区域残差常接近零。
- 预测加残差重建 无量化时可以精确恢复原值。
原像素范围很宽,而残差大量集中在小数值,为量化和熵编码创造条件。
OPTIONAL · 按需查阅完整术语表与概念边界遇到陌生术语时再展开,不打断主线实验。
展开⌄
音视频原理Quantization把连续样本幅度映射到有限数值等级的过程,会引入量化误差。音视频原理Compression Ratio原始数据大小与压缩后数据大小的比值,用来表达编码减少数据量的程度。音视频原理Prediction Residual真实块减去预测块得到的差值信号,通常比原始像素更集中且易压缩。音视频原理Prediction编码器用同一帧邻域或参考帧估计当前像素块,只编码预测值与真实值之间的差异。音视频原理Transform把像素域残差转换为更便于能量集中和量化的系数表示;它改变表达域,本身不等于压缩完成。音视频原理Entropy Coding根据符号出现概率用变长或算术方式无损表示量化后的语法元素,去除统计冗余。音视频原理Redundancy原始媒体中可以被预测、合并或用更短符号表达的重复信息;空间、时间、统计和感知冗余是压缩的主要来源。
LIVE EXPERIMENT · 先获得反馈
边改边运行
浏览器加载后会激活代码编辑器、独立运行环境与实时输出。
本课挑战
为 8×8 灰度块实现简化预测、变换、量化和反变换流程。
回到原理,解释刚才发生了什么
先用结果建立反馈,再按运行流程、核心原理和知识关系逐层深入。
CORE IDEA
核心讲解
预测把信号变简单
帧内预测利用邻近像素,帧间预测利用参考帧。预测越准,残差越接近零,后续越容易用少量比特表达。
量化交换质量和体积
变换把残差能量集中到少数系数,量化再降低系数精度并制造大量零值。熵编码无损地把高概率符号写得更短。
OPTIONAL · 迁移时查阅Web 与原生实现对照主线实验完成后,再用完整映射处理跨平台或跨 API 迁移。
展开⌄
浏览器和原生常调用同类硬件/软件 Codec,差别在配置入口和帧队列所有权。
WebGL
FFmpeg 或平台 Codec 暴露 Profile、Level、GOP、B-frame、Rate Control 等更多旋钮。
WebGPU
MediaRecorder 与 WebCodecs 以 MIME、codec string 和少量参数配置编码器。
先理解预测—残差—量化主链,再看不同编码器参数名会清晰很多。