【问题标题】:G.711 implementation A-lawG.711 实施 A 律
【发布时间】:2014-01-06 22:37:45
【问题描述】:

我正在实施 ITU-T G.711 标准,我决定从 G.191 中的参考代码开始。

在 A-law compress 上运行一些测试让我怀疑算法的正确性。

根据 G.711,输入范围 0-63 应位于第一段,步长为 2。 G.191 中的示例代码将此范围映射如下:

  • 在段 0 上从 0 到 15,步长为 1
  • 在段 1 上从 16 到 31,步长为 1
  • 在分段 2 上从 32 到 63,步长为 2

在将输出与表中的值进行比较时,我们不仅得到了 1 个段的偏移量,而且范围也减半,这样压缩后的 FF 对应于统一的 2047。

我应该如何进行以获得符合 G.711 的编解码器?

【问题讨论】:

  • 我很想知道您对此有何回应。似乎(虽然是主题)一个令人难以置信的小众话题。

标签: c standards codec standards-compliance


【解决方案1】:

代码与标准相称。

首先请注意,标准假定输入为 13 位(但总是量化 lsb),代码假定为 16 位,并立即丢弃除 12 msb 之外的所有内容。所以在 12 位术语中,G.711 中的表 1a 确实是在说:

  • 段 1:输入值 0 -> 31(步长 1)
  • 段 2:输入值 32 -> 63(步长 2)
  • ...

唯一剩下的差异是第一段在代码中显然被一分为二。不是真的;请注意,段与指数不同;第 1 段包含指数 000001。该代码专门处理指数。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-04-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多