实时音频编解码之十五 Opus编码-CELT编码

本文谢绝任何形式转载,谢谢。

4.3.1 基频预滤波

对预加重之后信号预滤波,其和解码器的后滤波相反,基频周期搜索应根据以下标准优化:

1.连续性,对于连续帧,基频周期通常不会突变;

2.避免基频倍数,当使用的周期是实际周期的倍数时,后滤波器失去了大部分降低噪声的能力。

4.3.2 带宽和归一化

最小帧长为2.5ms,其他为2.5ms倍数,这些帧信号经过MDCT后输出分为多个频带,这些频带和耳朵的听觉灵敏度相匹配,编码器计算各个频带的,各频带能量使用为量化能量的均方根归一化,能量的计算和归一化分别实现于ompute_band_energies() 函数和normalise_bands() 函数(bands.c)。

4.3.3 能量包络归一化

能量量化包括粗量化和细量化两种类型,对于所有有用的比特率,粗量化选择使每个频带误差最小化的量化的对数能量。只有在非常低的比特率下,编码器才可能允许更大的误差以最大限度降低编码比特率,在CPU算力允许条件下,可以使用带帧间预测和不带帧间预测两种方式编码粗粒度能量以便选择最佳的预测模式。最佳的编码模式取决于编码帧长、编码比特率以及当前丢包率。

由于细粒度能量量化只取决于编码比特率而非编码信号,因而细粒度能量量化总是选择使每个频带误差最小化的量化的对数能量。

4.3.4 比特分配

有三种用于调节编码端帧间比特率的机制,分别是频带增强(band boost)、比特位分配微调(allocation trim)以及频带舍弃(band skipping)。

猜你喜欢

转载自blog.csdn.net/shichaog/article/details/124778243