G.722 — 宽带语音先驱

概述

G.722 是 ITU-T 于 1988 年发布的宽带语音编码标准,采样率 16 kHz,频率范围覆盖 50-7000 Hz,相比 G.711 的 300-3400 Hz 有了质的飞跃。它是第一个被广泛部署的宽带语音编码器,至今仍在 VoIP 电话和视频会议系统中大量使用。

属性

标准

ITU-T G.722 (1988)

采样率

16 kHz

码率

48 / 56 / 64 kbps(三种模式)

帧长

无固定帧长(逐样本)

算法延迟

1.5 ms

频率范围

50 - 7000 Hz

MOS

~4.1(宽带)

专利

已过期(免费使用)

子带编码原理

G.722 采用 **子带自适应差分脉冲编码调制**(SB-ADPCM):

        flowchart TD
  A[输入 PCM<br/>16 kHz, 14 bit] --> B[QMF 分析滤波器]
  B --> C[低频子带<br/>0-4 kHz]
  B --> D[高频子带<br/>4-8 kHz]
  C --> E[ADPCM 编码<br/>6/5/4 bit]
  D --> F[ADPCM 编码<br/>2 bit]
  E --> G[比特复用]
  F --> G
  G --> H[输出比特流<br/>64 kbps]
    
  1. QMF 滤波器:正交镜像滤波器将 16 kHz 信号分为两个 8 kHz 子带

  2. 低频子带:承载主要语音信息,分配更多比特(6/5/4 bit)

  3. 高频子带:承载高频细节,固定 2 bit

  4. ADPCM:自适应差分编码,只编码预测残差

三种码率模式

模式

总码率

低频

高频

说明

Mode 1

64 kbps

48 kbps (6 bit)

16 kbps (2 bit)

最高质量

Mode 2

56 kbps

40 kbps (5 bit)

16 kbps (2 bit)

可嵌入 8 kbps 数据

Mode 3

48 kbps

32 kbps (4 bit)

16 kbps (2 bit)

可嵌入 16 kbps 数据

Mode 2 和 Mode 3 释放的比特可用于传输辅助数据(如加密密钥、信令),这在 ISDN 时代很有用。

ADPCM 编码细节

ADPCM(Adaptive Differential PCM)的核心思想:

  1. 差分:不编码原始样本,而是编码当前样本与预测值的差(残差)

  2. 自适应:量化步长根据信号特性动态调整

编码器:
  残差 = 当前样本 - 预测值
  量化索引 = quantize(残差, 步长)
  重建残差 = dequantize(量化索引, 步长)
  更新预测器:预测值 += 重建残差
  更新步长:步长 = adapt(步长, 量化索引)
  输出量化索引

解码器(与编码器的重建路径完全相同):
  重建残差 = dequantize(量化索引, 步长)
  输出样本 = 预测值 + 重建残差
  更新预测器和步长

低频子带使用 2 阶自适应预测器,高频子带使用 1 阶。

RTP 打包

G.722 的 RTP 打包有一个历史遗留的"坑":

a=rtpmap:9 G722/8000

注意 时钟频率写的是 8000,而不是实际的 16000。这是 RFC 3551 中的一个已知错误——当年制定标准时搞混了采样率和时钟率。所有实现都必须遵循这个"错误"以保持兼容。

实际行为:

  • RTP 时钟率:8000 Hz(SDP 中声明的)

  • 实际采样率:16000 Hz

  • 20ms 帧 = 320 samples @ 16kHz = 160 bytes payload

  • Timestamp 增量 = 160(按 8000 Hz 时钟)

G.722 vs G.711 vs Opus

特性

G.711

G.722

Opus (WB)

Opus (FB)

采样率

8 kHz

16 kHz

16 kHz

48 kHz

频率范围

300-3400 Hz

50-7000 Hz

50-8000 Hz

20-20000 Hz

码率

64 kbps

64 kbps

16-32 kbps

32-128 kbps

MOS

4.1

4.1

4.3-4.5

4.5-4.7

算法延迟

0.125 ms

1.5 ms

5-26.5 ms

5-26.5 ms

FEC

内置

内置

自适应码率

3 档

连续可调

连续可调

G.722 在**相同码率**下比 G.711 质量明显更好(宽带 vs 窄带),但在**相同质量**下 Opus 的码率更低。

在 WebRTC 中的使用

WebRTC 浏览器通常支持 G.722,SDP 中的 payload type 固定为 9

a=rtpmap:9 G722/8000

主要使用场景:

  1. SIP 电话互通:许多 IP 电话默认使用 G.722

  2. 视频会议系统:Polycom、Cisco 等传统设备广泛支持

  3. 低延迟需求:算法延迟仅 1.5ms,远低于 Opus 的 5-26.5ms

G.722.1 和 G.722.2

G.722 有两个"后代",但它们的编码原理完全不同:

  • **G.722.1**(Siren7/14):基于 MLT 变换,24/32 kbps,Polycom 推动

  • G.722.2:即 AMR-WB,3GPP 标准,移动宽带语音

小结

G.722 是宽带语音的开拓者,用子带 ADPCM 的简洁方案实现了 16 kHz 宽带语音。虽然在码率效率上已被 Opus 超越,但它的低延迟、广泛兼容性和零专利费用,使其在企业 VoIP 和视频会议领域仍有一席之地。

理解 G.722 的子带编码和 ADPCM 原理,对理解更现代的编码器(如 Opus 的 SILK 模式)很有帮助。