為什麼總感覺筆記本自帶的攝像頭攝製的影像很卡呢?

無論是面部識別時還是視頻聊天都感覺如此,筆記本電腦難道還帶不起來一個攝像頭嗎?

望各位大神解惑╭(╯ε╰)╮


筆記本內置攝像頭都屬於USB攝像頭(參見:告別模糊 45元為筆記本更換內置攝像頭_DIY硬體交流),而且幾乎沒見過非USB的攝像頭(主板上也沒有別的介面可以使用,總不能用PCI吧?),幾個因素共同導致了USB攝像頭速度慢:

1、USB傳輸速率太低。

雖然USB2.0理論帶寬高達480Mbps,摺合位元組數是60MB/s,但實際使用中遠遠達不到這個速度。普通的民用攝像頭我見過的有的是用的是YUV2的圖像格式編碼,一個像素平均佔用2位元組,一個640*480畫幅的攝像頭如果採用30幀每秒的速度傳輸,那麼需要帶寬是640*480*30*2=18432000 Bytes/s大概相當於18MB/s的持續帶寬,如果是60幀的高速攝像頭就是將近40MB/s的持續帶寬,但考慮到客戶端處理的延遲,以及USB2.0半雙工的傳輸特點,每次傳輸都需要主機發起、發出命令、等待回應、處理回應,基本上這個帶寬是很緊張的。

2、大多數客戶端軟體處理太慢,且設計的不夠好。

YUV2編碼轉成計算機能識別的RGB編碼是需要一些計算的,雖然都很簡單,但因為是逐個像素計算,所以速度一點都不快。專業的攝像機採用的都是硬體解碼,延遲很小,但PC上的攝像頭都是客戶端軟體解碼的,速度相當的慢。

見過的多數視頻軟體的處理過程是:發送命令抓取圖像-&>轉換圖像-&>顯示圖像-&>抓取下一張圖像。因為每一步都很慢,最好的方法應該是採用多線程同時處理,但很少見到有一般的視頻軟體這麼做(多線程調度可能有點麻煩),所以導致CPU和帶寬都無法全速的利用起來,容易丟幀。

有些設計較差的軟體是把每張圖片使用CPU渲染到窗口上的,這種渲染速度特別慢(我記得QQ好像早期就是這麼乾的),CPU佔用率高,顯示視頻這種事情最好是交給顯卡去做。

如果有兩個線程,一個線程持續抓圖,一個線程持續處理圖,並且YUV2到RGB轉換以及圖像顯示都用硬體加速實現,那麼延遲就不會太大了,但普通的視頻軟體似乎沒見到有這麼做的,也許是太複雜、也許就是軟體設計者懶。

3、攝像頭本身質量太差。

攝像頭的主要問題是對焦慢,對焦是採用軟體計算來實現的,實際上對焦的計算量是非常大的(參見:手機是如何實現自動對焦的? - 科技),而普通攝像頭裡集成的那點電路的計算能力非常有限,計算能力差的後果就是對焦慢導致圖像模糊,圖像模糊導致感覺上視頻質量差,如果再加上光線弱,那麼圖像看起來好像很卡的樣子。

同時攝像頭還要把圖像編碼封裝到USB的bulk傳輸包里,雖然很多攝像頭的CMOS採樣速度沒問題,但USB編碼速度就值得懷疑了,號稱每秒30幀實際能不能達標也是個問題。

以上幾個共同的原因導致了USB攝像頭慢。

提高USB攝像頭速度的方法:

1、用專業的視頻軟體;

2、用更專業(更貴)的攝像頭(現在已經有JPG傳輸格式的攝像頭了,這種格式帶寬佔用較少);

3、用專業的數據採集線纜。


沒不是帶不起來

而是,1 環境亮度過低! 2攝像頭太差

通常情況下, 本子這兩點都佔了

哈哈


應該是延遲比較高吧...


推薦閱讀:

一篇來源不可考的戲文
《GT1030簡測》
幾套現成的搭配方案 v0.7
AMD Ryzen新手裝機和設置攻略
垃圾佬(二):筆電聯網&電磁筆的故事

TAG:USB | 筆記本電腦 | 電腦硬體 | 電腦知識 |