首页 > 编程知识 正文

The CELT ultralow delay audio codec

时间:2023-05-06 08:16:10 阅读:273399 作者:3965

The CELT ultra-low delay audio codec

CELT 编码器是一种用于音频的压缩算法。像 MP3 , Vorbis ,和 AAC 一样适合传输音乐,且获得高质量的音质。不像其他形式, CELT 占用很小的延时,甚至其延时比语音核心版式像 Speex , GSM 或 G.729 的都少。

 

在超低延时领域,没有确定的标准。

-G.722.1C ( ITU-T ): 40ms delay up to 32kHz

-AAC-LD(MOEG):20-50ms delay up to 48kHz

-ULD(Fraunhofer): <10ms delay, up to 48kHz

 

CELT 已经在这些竞争中领先。

其特性是:

- 可配置, 1.3ms 到 24ms , 典型的是 ~8ms

- 质量(在相同的比特率下):比 G.722.1C 好,与 AAC-LD 的相当,比 ULD 的好。

- 灵活性: 24kbps 到 160+kbps , 32kHz 到 96kHz ,可配置的延时,低复杂度模式。

- 自由性:开源( BSD ),没有专利

 

CELT —— Constrained Energy Lapped Transform

- 转换编码( MDCT ,像 MP3 , Vorbis 一样)

         短窗( ~8ms ) -> 低的频率分辨率

- 精确地对信号的各个带的能量进行编码

         这样不论什么信号,可以保持声音的粗糙形状

- 使用矢量量化对剩下的细节进行编码

- 结合时间偏移使用基音预测

         类似于语音编码中的线性预测

         同时帮助补偿频率分辨率差的问题

 

1 、 Lapped Transform

我们都知道,任何信号都可以使用不同频率余弦曲线的加权和表示。离散余弦转换( DCT )计算各个频率的权值。

 

DCT 中的“离散( Discrete )”意味着我们限制有限的频率数。

         - 随着转换块大小变小,能量“峰值”进入邻近的频率(更难去压缩)

同时普通的 DCT 在块之间产生编码失真(明显的不连续性),且很容易听出来。

“修正” DCT ( MDCT )使用衰落窗来对重叠的多块进行加窗。   

         - 与 MP3 , Vorbis , AAC 等一样,使用相同的转换。

         - 但是使用更小的块,更少的重叠。

 

2 、 Constrained Energy

因为人的耳朵在频域能听见大约 25 个截然不同的“临界频带”

         - 心理声学的掩蔽效应比频带之间的掩蔽效应强

 

根据临界频带( Bark scale )把 MDCT 系数进行分组

         - 限制每个频带至少包含 3 个系数来最小化每个频带的开销( overhead )。

         - 对所有频带具有不同的频率分辨率。

         - 但是把更多的比特数用在低频部分( LFs )。

 

大多数重要的心理声学课程从 Vorbis 学习得到:

Preserve the energy in each band

Vorbis 通过“ floor curve ”间接地操作

CELT 中对能量进行精确的编码

         - 粗糙的能量( 6dB 的分辨率),从前一帧和前一频带来预测

                   使用预测每帧可以节省 28bits , 5ms 的帧的比特率为 5.6kbps

         - 精细的能量,当有可用的比特率则不用通过预测来改善分辨率

 

3 、 Coding Band Shape

规范化后,各个频带由 N 维的单位矢量来表示

         - 点在 N 维的球体

         - 描述频带的能量的形状

使用以下两方面来编码形状

         - 使用前一个解码的信号内容的自适应码本来预测当前帧

         - 固定码本来处理那些不能预测的信号部分( the “ innovation ”)

然后使用矢量量化

 

Pitch Prediction

短块大小 -> 低的频率分辨率

         - 语音 / 音乐有周期的,平稳的内容

         - 经过短的 MDCT 后不能正确的表示周期

基音预测补偿了低的分辨率

         - 在时域搜索过去的 1024 的解码的样点,编码最好匹配的偏移

                   分辨率等于采样率

                   范围( 48kHz , FS=256 ): 48000/1024 到 48000/384=46.875 到 125Hz

         - 应用 MDCT 来转换到频域

         - 限制预测的频带低于 8kHz

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。