多媒体技术
00:00
多媒体技术:音频编码、图像压缩、视频编码、流媒体与多媒体网络
1. 音频编码
1.1 音频基础
- 采样率:每秒采样次数(CD:44.1kHz)
- 量化位数:每个采样的精度(CD:16位)
- 声道数:单声道/立体声
Nyquist 定理:采样率必须大于信号最高频率的2倍:
CD 音质数据率:
1.2 音频编码算法
| 编码器 | 类型 | 比特率 | 质量 |
|---|---|---|---|
| PCM | 无损 | 1411 kbps | 原始 |
| FLAC | 无损压缩 | ~700 kbps | 原始 |
| MP3 | 有损 | 128~320 kbps | 好 |
| AAC | 有损 | 96~256 kbps | 优于MP3 |
| Opus | 有损 | 6~510 kbps | 最优 |
1.3 感知编码
利用人耳的掩蔽效应:
- 频域掩蔽:强信号掩盖附近的弱信号
- 时域掩蔽:强信号前后一定时间内的弱信号不可感知
2. 图像压缩
2.1 色彩空间
RGB:红绿蓝三原色,用于显示。
YCbCr:亮度+色度,用于压缩:
人眼对亮度更敏感,可对色度进行下采样(4:2:0)。
2.2 JPEG 编码
- 颜色转换:RGB → YCbCr
- 色度下采样:4:2:0
- 分块 DCT:8×8 块离散余弦变换
- 量化:除以量化表,取整(信息损失主要来源)
- 熵编码:Zigzag 扫描 + Huffman 编码
DCT 变换:
量化步长越大,压缩比越高,质量越低。
2.3 现代图像格式
| 格式 | 压缩方式 | 特点 |
|---|---|---|
| JPEG | DCT + 量化 | 有损,兼容性好 |
| PNG | DEFLATE | 无损,支持透明 |
| WebP | VP8/VP8L | 有损/无损,比JPEG小30% |
| AVIF | AV1 | 有损/无损,比JPEG小50% |
| JPEG XL | 多种 | 有损/无损,向后兼容 |
3. 视频编码
3.1 视频编码原理
视频压缩利用三种冗余:
- 空间冗余:帧内像素的相关性
- 时间冗余:帧间像素的相关性
- 统计冗余:符号出现的概率不均匀
3.2 帧类型
| 帧类型 | 说明 | 压缩率 |
|---|---|---|
| I帧(关键帧) | 独立编码 | 低 |
| P帧(预测帧) | 前向预测 | 中 |
| B帧(双向帧) | 双向预测 | 高 |
GOP(Group of Pictures):
I B B P B B P B B P B B I
│ │ │
└─ GOP ───┘ └─ 新 GOP
3.3 运动估计
在参考帧中搜索最匹配的块:
运动矢量 使 SAD 最小。
搜索算法:
| 算法 | 搜索点数 | 质量 |
|---|---|---|
| 全搜索 | 最优 | |
| 三步搜索 | 良好 | |
| 菱形搜索 | ~20 | 良好 |
3.4 编码标准演进
| 标准 | 年份 | 压缩效率 | 特点 |
|---|---|---|---|
| H.264/AVC | 2003 | 基准 | 广泛兼容 |
| H.265/HEVC | 2013 | ~50%提升 | 4K/8K |
| AV1 | 2018 | ~30%优于HEVC | 开源免费 |
| H.266/VVC | 2020 | ~50%优于HEVC | 最新标准 |
3.5 码率控制
CBR(恒定比特率):码率恒定,质量波动。
VBR(可变比特率):质量恒定,码率波动。
ABR(平均比特率):目标平均码率,允许波动。
CQ/VBR with cap:质量优先,设置码率上限。
4. 流媒体技术
4.1 流媒体协议
| 协议 | 类型 | 延迟 | 适用场景 |
|---|---|---|---|
| RTMP | 推流 | 1~3s | 直播推流 |
| HLS | 拉流 | 10~30s | 点播/直播 |
| DASH | 拉流 | 10~30s | 点播/直播 |
| WebRTC | P2P | <1s | 实时通信 |
| SRT | 推拉流 | 1~3s | 远程制作 |
4.2 HLS 工作流程
1. 编码器生成不同质量的分段(.ts)
2. 生成播放列表(.m3u8)
3. 客户端下载播放列表
4. 根据带宽选择质量级别
5. 下载并播放分段
自适应码率(ABR):
4.3 低延迟直播
LL-HLS:HLS 的低延迟扩展,支持部分分段传输。
WebRTC:
- ICE(交互式连接建立):NAT 穿越
- DTLS:安全传输
- SRTP:安全实时传输
- SCTP:数据通道
5. 多媒体网络
5.1 QoS 需求
| 媒体类型 | 带宽 | 延迟 | 抖动 | 丢包 |
|---|---|---|---|---|
| 语音 | 8~64 kbps | <150ms | <30ms | <1% |
| 视频 | 1~20 Mbps | <200ms | <50ms | <0.1% |
| 流媒体 | 2~25 Mbps | <5s | 不敏感 | 不敏感 |
5.2 RTP/RTCP
RTP(实时传输协议):
- 承载媒体数据
- 包含时间戳、序列号、载荷类型
- 通常基于 UDP
RTCP(RTP 控制协议):
- 传输统计信息
- 发送者报告(SR)
- 接收者报告(RR)
- 用于自适应码率调整
5.3 FEC 与重传
前向纠错(FEC):添加冗余数据,无需反馈。
自动重传(ARQ):请求重传丢失的包,增加延迟。
混合方案:对延迟敏感的用 FEC,对延迟不敏感的用 ARQ。