689eb576083c69ef73b8e0c97d5b5444.png
 
嗯,研究 Vorbis 一段時間了, 需要整理一下。這次主要調整的跟 block type 有關。主要動到的是 envelope.c 這隻程式。
下面介紹一下 block type 的意義!
 
Vorbis 在壓縮的時候會將取得的聲音拆成兩種不同長度的 block (short 跟 long blocks)。這在前一篇 (Vorbis - audio codec) 中有介紹到,而每一個 block 除了長度不同外,還會被分類成四種不同的 block type。分別是:
 
LONG、IMPULSE (short)、TRANSITION (between long and short)、PADDING (在 IMPULSE 之前出現的 short )。
 
在我的案例中,為了處理 voice 與 video sync 與 editor 的需求。所以我調整了 block type 的判斷方式。從原本根據聲音內容判斷 聲音 (tonal) 或 雜音 (noise) 改成一律回覆 LONG 的 block type。原本抱著姑且一試的方式,想不到竟然就成功了!
 
雖然只是一點的小研究,不過也找到一個專門討論語音壓縮的論壇。裡面很多高手喔!如果你做語音壓縮的話,可以去那邊多討論研究喔!
 
Facebook 討論區載入中...