視頻通信基礎知識之採集

NO IMAGE

在之前的文章裡,我們說了不少關於音視頻相關的內容,但是一直沒有系統的來介紹視頻通信,接下來我們將出一個系列關於視頻通信的文章。幫助大家對視頻通信有一個更全面的認識。系列文大綱如下:

視頻通信採集
視頻通信處理
視頻通信編碼與封裝
視頻通信的傳輸與推流

今天給大家帶來是我們系列文章的第一篇《視頻通信採集》

視頻通信採集是視頻通信的第一步,採集主要包括兩個方面:視頻採集和音頻採集。

視頻主要是通過攝像頭進行採集,這裡面涉及到攝像頭的相關操作以及攝像頭的參數設置,由於各個廠商的攝像頭存在差異,因此這方面也會有一些差異。音頻則通過麥克風進行採集,不同產品的麥克風對音頻採樣率的支持不同。

音視頻通信採集技術要點

  • 圖像採集技術要點:

攝像頭、圖像比例、兼容性等問題

  • 音頻採集技術要點:

麥克風、音頻採樣率、回聲消除處理、緩衝區大小等問題

在iOS開發中,對音視頻的採集都可以用<AVFoundation>框架。而Android開發主要是基於其C/S層架構,客戶端提供調用接口,而實現工作則是在服務端完成。

圖像採集

採集內容

視頻中我們看到的內容是由圖片一張張組合連續播放而成。圖像的採集過程主要由攝像頭等設備拍攝成 YUV 的原始數據,然後經過編碼器壓縮成數據分發出去。

圖像是一個視頻內容的主要部分。圖像採集時主要涉及到下面的參數:

圖像格式:通常採用 YUV 格式存儲原始數據信息,其中包含用 8 位黑白表示的灰度圖,以及由 RGB 組合成的彩色圖。

傳輸通道:正常情況下視頻的拍攝只需 1 路通道,隨著 3D、VR等技術的日漸成熟,為了拍攝一個360° 的視頻,需要進行不同角度的拍攝,然後經過多通道傳輸後合成。

分辨率:現在的設備屏幕尺寸的日益增多增大,視頻採集過程中原始視頻分辨率就起著越來越重要的作用,因為後續處理環節中使用的所有視頻分辨率的定義都以原始視頻分辨率為基礎。

採樣頻率:採樣頻率反映了採集卡處理圖像的速度和能力。在進行高度圖像採集時,需要注意採集卡的採樣頻率是否滿足要求。採樣率越高,圖像質量越高,同時保存這些圖像信息的數據量也越大。

以上,構成了一個視頻採集的主要技術參數,而對於視頻通信開發者來說,在瞭解這些細節後,有利於在實際開發中對採集環節中技術參數的控制,減少後續編碼環節的壓力。

採集源

圖像的採集源有攝像頭、屏幕錄製等,視頻通信的採集源主要是攝像頭,通過攝像頭獲取圖像信息。這裡簡單說一下Android和iOS。

Android中很多基本的架構都是C/S層架構。Android Camera的架構也是C/S架構,service端為Client進程提供豐富的接口,使它能輕鬆獲得Camera數據的地址,然後處理這些數據。但是在Android中調用攝像頭需要相應的權限,而且權限申請在Android 6.0後變成了動態申請。

而iOS端視頻採集,相比安卓更加便利,使用AVFoundation框架提供的一系列的API即可實現。

音頻採集

在說音頻採集內容之前,先了解一些音頻基礎知識:

PCM:脈衝編碼調製,一種將聲音數字化的方法。

採樣精度(bit pre sample):每個聲音樣本的採樣位數。

聲道(channel):相互獨立的音頻信號數,單聲道(mono)立體聲(Stereo)

語音幀(frame):在音頻數據中,幀(frame)是所有通道的一個樣本。

採樣頻率(sample rate):每秒鐘採集多少個聲音樣本

採集內容

聲音在經過麥克風後,會轉換成一連串電壓變化的信號。要將這樣的電壓變化的信號轉化成為PCM信號則需要進行三個過程:抽樣、量化、編碼。要實現這三個過程,則需要使用三個參數,它們是:

採樣頻率、採樣位數和聲道數

  • 採樣頻率

採樣頻率即每秒鐘取得聲音樣本的次數。採樣頻率越高,聲音的質量也就越好,聲音的還原度越高,但同時它佔的資源比越多。由於人耳的對聲音的頻率分辨有限,太高或太低的頻率並不能分辨出來。在16位聲卡中有22KHz、44KHz等幾級,目前的常用採樣頻率不超過48KHz。

  • 採樣位數

採樣位數(採樣值)即將採樣樣本幅度量化。它是用來衡量聲音波動變化的一個參數。它的數值越大,分辨率也就越高,所發出聲音的強度越強。

在計算機中採樣位數一般有8位和16位之分,8位不是說把縱座標分成8份,而是分成2的8次方即256份; 同理16位是把縱座標分成2的16次方65536份。採樣位數的值越大,其記錄的波形就越接近原始信號。

  • 聲道數

聲道主要有單聲道和立體聲之分,單聲道的聲音只能使用一個喇叭發聲(有的也處理成兩個喇叭輸出同一個聲道的聲音),立體聲的pcm可以使兩個喇叭都發聲(一般左右聲道有分工) ,更能感受到空間效果。

說完採樣頻率、採樣位數和聲道數,接下來我們看一下PCM文件所佔容量公式:

PCM文件存儲量 = (採樣頻率·採樣位數·聲道數·時間)/8 (單位:字節數)

採集源

音頻源:音頻源相比視頻源來說,其採集源有限主要就是麥克風。安卓端音頻採集大都使用AudioRecord,iOS端則會使用蘋果自身的Audio Unit進行採樣。

緩衝區:說完音頻源接下來就說一下緩衝區。緩衝區是麥克風採集到的數據後放置的一個地方。數據庫在這裡進行存放,再被讀取獲得錄製的音頻數據。這裡會牽扯到緩衝區大小。緩衝區設置得大一些,可以增加系統的穩定性;而把緩衝區設置得小一寫,則會提升系統的響應時間,減少音頻延遲。

視頻通信基礎知識之採集

以上就是我們視頻通信採集的所有內容,下一篇我們將介紹視頻處理。

相關文章

深度學習之圖像超分辨重建技術

視頻編碼與封裝

音視頻通信——直播協議和視頻推流

深度學習之圖片壓縮技術