2013-12-18 36 views
4

我正在實施ITU-T G.711標準,並決定以G.191中的參考碼開始。G.711實施A律

在A律壓縮上運行一些測試讓我懷疑算法的正確性。

根據G.711,輸入範圍0-63應位於第一個段上,步長爲2。在G.191中的示例代碼映射該範圍如下:

    從0到
  • 15上段0與16的1
  • 一個步長至31上段1具有1
  • 一個步長大小
  • 從32到63上段2的2

一個步長大小我們不僅獲得比較輸出,以表中的值時,1段偏移,但該範圍也被減半,使得壓縮FF對應於制服2047.

我應該如何繼續以獲得符合G.711的編解碼器?

+1

我會好奇你看到了什麼樣的反應。看起來像(雖然在話題上)是一個令人難以置信的小衆話題。 –

回答

5

該代碼與標準相符。

首先需要注意的是,該標準假設採用13位輸入(但始終對lsb進行量化),代碼假定爲16位,並立即丟棄除12位以外的所有信息。因此,在12位而言,在G.711表1a實際上是說:

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

剩下的唯一差異在於,所述第一段在兩個明顯分開的代碼。這不是真的;注意這些段與指數不同;段1包含指數000001。該代碼專門處理指數。