第2頁,共2頁 第一第一 12
顯示結果從 11 到 12 共計 12 條
  1. #11
    註冊日期
    2007-07-16
    文章
    192
    Thanks
    2
    Thanked 2 Times in 2 Posts

    預設

    引用 作者: drunkenlife 查看文章
    Foobar或iTunes或Media player這些都稱為application software
    application是在OS之上跑,OS之下則是硬體,OS之中會插入硬體相應的driver
    OS也會給application一個介面用來與硬體溝通,這稱為API
    因此整個架構是

    application -> API -> OS kernel -> driver -> hardware

    另外會有個看起來像是application的介面--control panel,用來設定硬體,這當然也是透過driver
    當driver與硬體的設定為44.1KHz,而application傳給API的是88.2KHz時,
    OS裡便有個機制會做44.1->88.2的轉換


    理想上,若是driver/硬體/application的設定與資料都是同樣的sampling rate,那麼音樂傳遞的過程中,應該不會有任何誤差
    但,倘若用的是DirectShow這個由Windows XP就開始用的標準API,其中會做個挺荒謬的轉換,所有聲音資料都會被轉成48KHz後,再將各個appliation的資料混音,接著,再轉成driver/硬體的設定sampling rate
    這二次的轉換,就會損失一堆細節
    那轉換後混音的部份就稱為kmixer

    因此後來才弄出WASAPI與kernel streaming這二個API,就沒上述的問題
    但,這得要application能用這二個API,多半的application並沒有這能力
    所以才會大家都在用Foobar


    以上粗體字部分是Windows的麻煩,Mac OS X沒這問題
    這篇文章寫的很好,但是有一處需要討論如下
    "application -> API -> OS kernel -> driver -> hardware"
    個人的認知為
    application -> API -> device driver -> kernel -> firmware -> hardware

  2. The Following User Says Thank You to warwick For This Useful Post:


  3. #12
    註冊日期
    2010-09-05
    文章
    847
    Thanks
    0
    Thanked 433 Times in 246 Posts

    預設

    引用 作者: warwick 查看文章
    這篇文章寫的很好,但是有一處需要討論如下
    "application -> API -> OS kernel -> driver -> hardware"
    個人的認知為
    application -> API -> device driver -> kernel -> firmware -> hardware
    認真來討論的話,API與driver都是插在kernel外圍,包在OS之內,
    反正我們的目的只是讓不懂計算機架構者有些概念,知道整體各軟硬體模組的功能,理解事情為何如此發生,
    以免老是各說各話,或是扯些神話之類...

發文規則

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