作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在实现 ITU-T G.711 标准,我决定从 G.191 中的引用代码开始。
在 A-law 压缩上运行一些测试让我怀疑算法的正确性。
根据G.711,输入范围0-63应该位于第一段,步长为2。 G.191 中的示例代码将此范围映射如下:
在将输出与表中的值进行比较时,我们不仅得到 1 段偏移量,而且范围也减半,这样压缩的 FF 对应于统一的 2047。
我应该如何操作才能获得符合 G.711 标准的编解码器?
最佳答案
代码与标准相称。
首先请注意,标准假定 13 位输入(但始终量化 lsb),代码假定 16 位,并立即丢弃除 12 msb 之外的所有输入。所以在 12 位术语中,G.711 中的表 1a 实际上是在说:
唯一剩下的差异是第一段显然在代码中一分为二。不是真的;请注意,这些段与指数不同;第 1 段包含指数 000
和 001
。该代码专门处理指数。
关于c - G.711 实现 A 律,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20663423/
我正在实现 ITU-T G.711 标准,我决定从 G.191 中的引用代码开始。 在 A-law 压缩上运行一些测试让我怀疑算法的正确性。 根据G.711,输入范围0-63应该位于第一段,步长为2。
我是一名优秀的程序员,十分优秀!