顯示結果從 1 到 10 共計 3860 條

查看主題

  1. #11
    註冊日期
    2007-10-23
    文章
    942
    Thanks
    3,381
    Thanked 4,143 Times in 838 Posts

    預設

    引用 作者: Higuma 查看文章
    看來我觀念有誤,我一直以為數位VR是對訊號做即時

    DSP處理,所以需要更多的位元深度,但同時做完處理

    後,原來的data就完全改變了.

    所以看起來,數位VR只是在原來的data後面掛一個指示,

    讓後端DA處理的時候能根據指示調整音量(相對的電壓擺幅?),

    也就是說da晶片都支援一個標準協議,能根據協議內容處理這個

    音量指示這樣? 還是我其實又想錯了??
    Higuma兄您好,

    其實運作方式很簡單。

    舉個例子:
    1的二進位數是01,而1x256之後的二進位結果是100000000
    2的二進位數是10,而2x256之後的二進位結果是1000000000
    3的二進位數是11,而3x256之後的二進位結果是1100000000
    10的二進位數是1010,而10x256之後的二進位結果是101000000000

    可以發現,如果要在二進位裡,將任何數字乘以256(8bit),只要在低位元加入八個0就可以了。
    所以,任何數位輸入訊號的位元深度低於DAC可處理的位元深度,如果要求要lossless(bit-perfect)的位元深度轉換,
    只要在低位元的部分補上足夠的0就可以了。
    也就是說16bit -> 24bit,只要補上八個位元的0。
    而16bit -> 32bit,只要補上16個位元的0。
    目前幾乎所有的DAC都是如此處理。

    但是音量控制的情況,稍微複雜一點。
    有人說,所以bit-perfect音量控制,就是補完0之後,依據音量的設定,砍掉後面某些數量的0。
    但實際上如果這樣操作,會很難控制音量,因為如果是16bit的音源和24bit的DAC,那麼只有8個0可以砍。
    也就是說,音量只有8段,每一段的訊號強度差一倍。
    舉例來說,如果是16bit input -> 24bit DAC:
    音量全開= 低位元補8個0,也就是訊號x256。
    音量減一格 = 低位元補7個0,也就是訊號x128。
    音量減兩格 = 低位元補6個0,也就是訊號x64。
    以此類推。
    這樣的音量控制,應該沒有人想用吧。

    所以實際上,如果真的要達到256階的音量控制,就只會是無損(lossless,可以看作是廣義的bit-perfect),而不會是狹義定義的bit-perfect。
    舉例來說:
    假設原始訊號是7,二進位為111。
    16bit input -> 24bit DAC之後,
    音量全開為7x256,二進位為11100000000。
    音量減一格為7x255,二進位為11011111001。
    音量減兩格為7x254,二進位為11011110010。
    以此類推。

    請注意當音量大小不為2的指數時,最前面三個位元就不再跟原來相同了(上例為111)。
    所以不符合狹義的bit-perfect。
    但bit-perfect的精神,其實是lossless,也就是無損。
    所以如果以廣義的定義來說,要說這是bit-perfect數位音量控制,也沒有太大的問題。

  2. The Following 2 Users Say Thank You to bchsieh For This Useful Post:


發文規則

  • 不可以發表新主題
  • 不可以發表回覆
  • 不可以上傳附件
  • 不可以編輯自己的文章
  •