ESP8266, MP3 網路收音機, Audio Dithering


http://wp.me/ph3BR-21t

 

原文再述書接上一回, ESP8266 網路收音機的聲音不是特別可愛, 沒有用 I2S DAC, 意思就是她的高音出現毛刺, 聽起來不舒服, 聽聽這個樣本, 或許每個人都有同感. 到底是何原因造成的呢!? 字面簡單帶過就是數字聲音解碼 IC (DAC) 的解析度不足, 只用了1 BIT, 刪除了很多細節並帶來噪音, 所以聲音不好聽. 那實際呢? 原文和源碼有提到, MP3 sound stream is 16 bit mono PCM data, 5 bit dithered PWM output to speaker.

esp8266-pcm-pwm.jpg

 

源碼部分看到這, 有關上面那個 5 BIT PWM (fake_pwm) 的關聯, 不過看起來, 當然是知所以言而不知所其言, 為甚麼這樣說呢 ? 看到那 32-bit values which has one bit more set to ‘1’… 然後下面的 samp = fakepwm[samp>>11], 知道它是把 16 bit 的聲音數據丟掉最低的 11 bit, 剩下的 5 bit 右移, 查表格 fakePwm[], 5 bit = 2^5 = 32, 所以那個 fakePwm[] 一共包含32個數目 (怎樣求得的?) 例如,

輸入聲音的數據 0xFF12 -> 0x001F,
被忽略掉的 0x0712 存起來,
把下一個聲音數據先減掉0x0712,
重複以上動作.
這些動作和 dithering 有何聯繫…?

16bit-pcm-5bit-pwm.jpg

 

沒聽過 I2S, 沒聽過 dithering, 沒了解 PCM, 所以要讀書了解一下基礎,

https://zh.wikipedia.org/wiki/I%C2%B2S

Pulse-code modulation,縮寫:PCM

http://blog.landr.com/what-is-dither-when-to-use-zh/

 

看完以上的簡介, 大概知道甚是甚麼, 不過離開完全知道還有段距離, 依照以上的簡介, 大概理解, sine wave & square wave, 聲音的分別是尖銳和圓滑, 看圖聽聲比較好全面理解, 搜尋 dither 原理, 會找到更多學理的材料, 世界圖書館真好, 只要會找, 通常有些合用有易明白的. 聲音和圖畫, 在電腦裡面, 就是一連串的數字, 從中可以調教很多, 例如這個有關 color dithering (http://www.csie.ntnu.edu.tw/~u91029/Image.html), 抄用人家的圖片與說明, 容易理解一些, 例如圖畫, 如只用黑點在白紙上描畫, 利用黑點的分布疏密程度, 宏觀上觀看就產生了黑與白之間的差距, 錯覺有了明暗的效果, 大概是鉛筆素描的技法之一, 以下圖畫可以見證,

black and white dithering.jpg, 原文 http://blog.landr.com/what-is-dither-when-to-use-zh/

 

算是有了 dithering 的基本觀念, 一個名詞代表的事物其實一直都知道, 只是沒用上就光看不練, 黑白的報紙, 彩色印刷, LCD 螢幕都用到圖畫方式的 dithering, 拍了一張當天的報紙, 裡面一個圖畫是黑白的, 有這種dithering的效果.

news-paper-dithering.png

 

那這個 EPS8266 在聲音處理的 dithering 又是代表甚麼呢, 很難明白. 繼續看書….

http://audio.rightmark.org/lukin/dither/dither.htm

聲音最後防線的力量-Limiter @ Balanced Audio Lab 平衡音訊實驗室

120.107.171.121/~tywua/sub/MT/audio.ppt

http://maciku.blogspot.com/2011/05/lcd-8bit-6bit.html

h_ttps://www.youtube.com/watch?v=zWpWIQw7HWU

 

 

待續…..

廣告

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com Logo

您的留言將使用 WordPress.com 帳號。 登出 / 變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 / 變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 / 變更 )

Google+ photo

您的留言將使用 Google+ 帳號。 登出 / 變更 )

連結到 %s