1. 课程导入

各位同学,咱们今天聊点最基础的东西——编解码器到底是什么。我入行那会儿,第一次听到「Codec」这个词,还以为是某种加密软件。后来被导师拉去调一个 H.264 的编码参数,才真正明白这东西有多重要。

说白了,编解码器就是一套压缩与解压缩的算法。它把原始媒体数据(视频、音频、图像)的体积变小,方便存储和传输;等需要播放时,再把它还原回来。你手机里拍的每一段视频,里发的每一张图片,背后都跑着一个编解码器。

1.1 为什么需要编解码器?

咱们算一笔账。一段 1080p、30fps、每像素 24bit 的原始视频,一秒钟的数据量是多少?

1920 × 1080 × 30 × 3 = 186,624,000 字节/秒 ≈ 178 MB/s

一部 90 分钟的电影,光原始数据就要 900 GB 以上。你想想看,蓝光光盘才 50 GB,网络带宽更不用说。没有编解码器,流媒体、视频通话、短视频平台这些东西根本不可能存在。

我在做嵌入式监控项目时遇到过一件事:客户要求 4 路 4K 摄像头同时录制,原始码率加起来接近 3 Gbps。当时用的千兆网卡直接跑满,丢包严重。后来换了 H.265 编码,码率压到 40 Mbps 左右,问题才解决。这就是编解码器的价值——用计算换带宽,用复杂度换存储。

核心结论:编解码器解决的是「数据量爆炸」与「有限资源」之间的矛盾。没有它,现代多媒体系统寸步难行。

1.2 编解码器的核心指标

选编解码器不能光看压缩率,得综合看四个维度。我习惯把它们叫做「四角权衡」:压缩比、码率、延迟、复杂度。这四个指标互相牵制,你不可能同时做到最好。

1.2.1 压缩比

压缩比 = 原始数据大小 / 压缩后数据大小。比如原始 100 MB 的视频压到 10 MB,压缩比就是 10:1。

但这里有个坑:压缩比越高,画质损失通常越大。无损压缩(如 FLAC、PNG)压缩比低,但有损压缩(如 MP3、H.264)可以在人眼/人耳感知范围内大幅提升压缩比。我曾经在做一个医疗影像项目时,客户要求无损压缩,结果压缩比只有 2:1 左右,存储成本翻了好几倍。后来我们改用近无损模式,压缩比提到 5:1,医生也看不出差异。

1.2.2 码率

码率就是单位时间的数据量,单位是 bps(bit per second)。它直接决定了文件大小和传输带宽需求。

码率类型 特点 适用场景
CBR(固定码率) 码率恒定,容易预测带宽 直播、视频会议
VBR(可变码率) 码率随内容复杂度变化 本地存储、点播
ABR(平均码率) 兼顾 CBR 和 VBR 的优点 流媒体自适应

我个人习惯:做直播用 CBR,因为带宽波动小;做离线转码用 VBR,能在复杂场景分配更多码率,画质更好。

1.2.3 延迟

延迟是从采集到解码显示的时间差。不同场景对延迟的容忍度天差地别:

  • 实时通信(视频通话、云游戏):延迟 < 100ms,否则用户能感觉到卡顿
  • 直播:延迟 1-5 秒,用户能接受
  • 点播:延迟无所谓,几秒甚至几十秒都行

嗯,这里要注意:延迟和压缩比往往是矛盾的。你想压得更狠,就得用更复杂的算法,计算时间就长了,延迟自然上去。我在做远程手术项目时,延迟要求 < 50ms,最后只能选轻量级的编解码器,压缩比不敢开太高。

1.2.4 复杂度

复杂度决定了编解码需要多少计算资源。它直接影响功耗、发热、硬件成本和实时性。

  • 低复杂度:适合嵌入式设备、手机、IoT 终端(如 MJPEG、H.264 Baseline)
  • 高复杂度:适合服务器、云端转码(如 H.265 Main、AV1)

我曾经在智能门锁上跑 H.265 编码,结果芯片发热严重,电池续航直接砍半。后来换成 H.264 Baseline,虽然码率高了 30%,但功耗降了 60%,产品才通过认证。

我的经验:选编解码器时,先确定延迟和功耗的硬约束,再在压缩比和码率之间做取舍。不要一上来就追求最高压缩比,否则后面调试会非常痛苦。

1.3 编解码器核心知识体系

下面这张图是我自己整理的编解码器知识框架,帮你快速建立全局认知:

编解码器核心知识体系 编解码器 (Codec) 压缩比 码率 延迟 复杂度 有损 vs 无损 主观质量 (SSIM/PSNR) CBR / VBR / ABR 带宽适配 编码延迟 传输延迟 解码延迟 硬件 vs 软件 功耗 / 发热 实时性约束 四角权衡:不可能三角 高压缩比 + 低延迟 → 高复杂度 低复杂度 + 低延迟 → 低压缩比

避坑提醒:不要只看厂商宣传的「最高压缩比」。那个数字通常是在特定测试序列下跑出来的,换到你的实际内容可能差 30% 以上。我建议你拿自己的素材跑一遍 benchmark,再做决定。

1.4 常见编解码器一览

最后,我列个常见编解码器的速查表,方便你快速对比:

编解码器 类型 压缩比 延迟 复杂度 典型场景
H.264/AVC 视频 中 低-中 中 直播、视频会议、监控
H.265/HEVC 视频 高 中 高 4K/8K 点播、蓝光
AV1 视频 很高 高 很高 流媒体、Web 视频
VP9 视频 高 中 高 YouTube、Chrome
AAC 音频 中 低 低 音乐、播客
Opus 音频 高 极低 中 VoIP、实时通信

好了,这一章的基础概念就讲到这里。记住这四个核心指标,后面每一章都会围绕它们展开。你心里有了这把尺子,选编解码器的时候就不会被厂商参数表忽悠了。