<abbr id="kc8ii"><menu id="kc8ii"></menu></abbr>
  • <input id="kc8ii"><tbody id="kc8ii"></tbody></input><table id="kc8ii"><source id="kc8ii"></source></table><kbd id="kc8ii"></kbd>
    <center id="kc8ii"><table id="kc8ii"></table></center>
  • <input id="kc8ii"></input>
    <abbr id="kc8ii"></abbr>
  • <abbr id="kc8ii"></abbr>
  • <center id="kc8ii"><table id="kc8ii"></table></center>
    <abbr id="kc8ii"></abbr>
    你的位置:首頁 > 測試測量 > 正文

    詳細講解:聲卡驅動及數字音頻技術知識點

    發布時間:2017-02-15 責任編輯:sherry

     【導讀】音頻信號是一種連續變化的模擬信號,但計算機只能處理和記錄二進制的數字信號,由自然音源得到的音頻信號必須經過一定的變換,成為數字音頻信號之后,才能送到計算機中作進一步的處理。
     
    關于PCM
     
    PCM是Pulse code modulaTIon的縮寫,它是對波形最直接的編碼方式。它在音頻中的地位可能和BMP在圖片中的地位有點類似吧。
     
    Sampling rate:從模擬信號到數字信號,即從連續信號到離散信號的轉換都是通過離散采樣完成的,Sampling rate就是每秒種采樣的個數。根據香農采樣定理,要保證信號不失真,Sampling rate要大于信號最高頻率的兩倍。我們知道人的耳朵能聽到的頻率范圍是20hz – 20khz,所以Sampling rate達到40k就夠了,再多了也只是浪費。但是有時為了節省帶寬和存儲資源,可以降低Sampling rate而損失聲音的質量,所以我們常常見到小于40k采樣率的聲音數據。
    音頻技術
    Sample size:用來量化一個采樣的幅度,一般為8 bits、16 bits和24 bits。8 bits只有早期的聲卡支持,而24 bits只有專業的聲卡才支持,我們用的一般都是16 bits的。
     
    Number of channels:聲音通道個數,單聲道為一個,立體聲為兩個,還有更多的(如8個聲道的7.1格式)。一般來說,每個聲道都來源于一個獨立的mic,所以聲道多效果會更好(更真實),當然代價也更大。
     
    Frame: Frame是指包含了所有通道的一次采樣數據,比如對于16bits的雙聲道來說,一個frame的大小為4個字節(2 * 16)。

    一、數字音頻
     
    音頻信號是一種連續變化的模擬信號,但計算機只能處理和記錄二進制的數字信號,由自然音源得到的音頻信號必須經過一定的變換,成為數字音頻信號之后,才能送到計算機中作進一步的處理。
     
    數字音頻系統通過將聲波的波型轉換成一系列二進制數據,來實現對原始聲音的重現,實現這一步驟的設備常被稱為模/數轉換器(A/D)。A/D轉換器以每秒鐘上萬次的速率對聲波進行采樣,每個采樣點都記錄下了原始模擬聲波在某一時刻的狀態,通常稱之為樣本(sample),而每一秒鐘所采樣的數目則稱為采樣頻率,通過將一串連續的樣本連接起來,就可以在計算機中描述一段聲音了。對于采樣過程中的每一個樣本來說,數字音頻系統會分配一定存儲位來記錄聲波的振幅,一般稱之為采樣分辯率或者采樣精度,采樣精度越高,聲音還原時就會越細膩。
     
    數字音頻涉及到的概念非常多,對于在Linux下進行音頻編程的程序員來說,最重要的是理解聲音數字化的兩個關鍵步驟:采樣和量化。采樣就是每隔一定時間就讀一次聲音信號的幅度,而量化則是將采樣得到的聲音信號幅度轉換為數字值,從本質上講,采樣是時間上的數字化,而量化則是幅度上的數字化。下面介紹幾個在進行音頻編程時經常需要用到的技術指標:
     
    采樣頻率
     
    采樣頻率是指將模擬聲音波形進行數字化時,每秒鐘抽取聲波幅度樣本的次數。采樣頻率的選擇應該遵循奈奎斯特(Harry Nyquist)采樣理論:如果對某一模擬信號進行采樣,則采樣后可還原的最高信號頻率只有采樣頻率的一半,或者說只要采樣頻率高于輸入信號最高頻率的兩倍,就能從采樣信號系列重構原始信號。正常人聽覺的頻率范圍大約在20Hz~20kHz之間,根據奈奎斯特采樣理論,為了保證聲音不失真,采樣頻率應該在40kHz左右。常用的音頻采樣頻率有8kHz、11.025kHz、22.05kHz、16kHz、37.8kHz、44.1kHz、48kHz等,如果采用更高的采樣頻率,還可以達到DVD的音質。 其中,8kHZ為電話的采樣頻率。
     
    量化位數
     
    量化位數是對模擬音頻信號的幅度進行數字化,它決定了模擬信號數字化以后的動態范圍,常用的有8位、12位和16位。量化位越高,信號的動態范圍越大,數字化后的音頻信號就越可能接近原始信號,但所需要的存貯空間也越大。
     
    聲道數
     
    聲道數是反映音頻數字化質量的另一個重要因素,它有單聲道和雙聲道之分。雙聲道又稱為立體聲,在硬件中有兩條線路,音質和音色都要優于單聲道,但數字化后占據的存儲空間的大小要比單聲道多一倍。
     
    二、聲卡驅動
     
    出于對安全性方面的考慮,Linux下的應用程序無法直接對聲卡這類硬件設備進行操作,而是必須通過內核提供的驅動程序才能完成。在Linux上進行音頻編程的本質就是要借助于驅動程序,來完成對聲卡的各種操作。
     
    對硬件的控制涉及到寄存器中各個比特位的操作,通常這是與設備直接相關并且對時序的要求非常嚴格,如果這些工作都交由應用程序員來負責,那么對聲卡的編程將變得異常復雜而困難起來,驅動程序的作用正是要屏蔽硬件的這些底層細節,從而簡化應用程序的編寫。目前Linux下常用的聲卡驅動程序主要有兩種:OSS和ALSA。
     
    最早出現在Linux上的音頻編程接口是OSS(Open Sound System),它由一套完整的內核驅動程序模塊組成,可以為絕大多數聲卡提供統一的編程接口。OSS出現的歷史相對較長,這些內核模塊中的一部分(OSS/Free)是與Linux內核源碼共同免費發布的,另外一些則以二進制的形式由4Front Technologies公司提供。由于得到了商業公司的鼎力支持,OSS已經成為在Linux下進行音頻編程的事實標準,支持OSS的應用程序能夠在絕大多數聲卡上工作良好。
     
    雖然OSS已經非常成熟,但它畢竟是一個沒有完全開放源代碼的商業產品,ALSA(AdvancedLinux Sound Architecture)恰好彌補了這一空白,它是在Linux下進行音頻編程時另一個可供選擇的聲卡驅動程序。ALSA除了像OSS那樣提供了一組內核驅動程序模塊之外,還專門為簡化應用程序的編寫提供了相應的函數庫,與OSS提供的基于ioctl的原始編程接口相比,ALSA函數庫使用起來要更加方便一些。ALSA的主要特點有:
     
    支持多種聲卡設備
     
    模塊化的內核驅動程序
     
    支持SMP和多線程
     
    提供應用開發函數庫
     
    兼容OSS應用程序
     
    ALSA和OSS最大的不同之處在于ALSA是由志愿者維護的自由項目,而OSS則是由公司提供的商業產品,因此在對硬件的適應程度上OSS要優于ALSA,它能夠支持的聲卡種類更多。ALSA雖然不及OSS運用得廣泛,但卻具有更加友好的編程接口,并且完全兼容于OSS,對應用程序員來講無疑是一個更佳的選擇。
    要采購轉換器么,點這里了解一下價格!
    特別推薦
    技術文章更多>>
    技術白皮書下載更多>>
    熱門搜索
    ?

    關閉

    ?

    關閉

    中文字幕日本高清| 中文字幕在线资源| 制服在线无码专区| 亚洲av中文无码乱人伦在线播放| 久久青青草原亚洲av无码app| 中文字幕在线无码一区| 精品无码国产自产拍在线观看| 久草中文在线观看| 免费精品无码AV片在线观看| 亚洲欧美在线一区中文字幕 | 中文字幕丰满乱孑伦无码专区| 无码国产精品一区二区免费式影视| 中文字幕无码久久精品青草| 精品爆乳一区二区三区无码av| 熟妇人妻不卡中文字幕| 久久亚洲AV成人无码| 国产真人无码作爱免费视频 | 无码爆乳护士让我爽| 天堂√在线中文资源网| 熟妇人妻中文字幕无码老熟妇| 亚洲中文字幕无码日韩| 伊人久久一区二区三区无码| 国产精品ⅴ无码大片在线看| 日韩午夜福利无码专区a| 一本色道无码不卡在线观看| 无码精品A∨在线观看中文| 日韩专区无码人妻| 亚洲国产精品无码久久一区二区| 中文字幕久久亚洲一区| 日本一区二区三区中文字幕| 最近中文字幕免费完整| 天堂中文字幕在线| 亚洲乱码中文字幕手机在线| 日本高清不卡中文字幕免费| 日韩免费在线中文字幕| 中文字幕无码不卡免费视频| 免费中文字幕视频| 精品人妻系列无码一区二区三区 | 99久久国产热无码精品免费久久久久 | 无码人妻精品一区二区蜜桃AV| 下载天堂国产AV成人无码精品网站|