基于STv0676 的網絡攝像機解決方案
網絡攝像機相比于PC 攝像機具有在監控和安全等諸多應用領域中不可替代的優勢,在未來將具有更廣闊的發展前景。本文介紹了基于意法半導體公司STv0676 的網絡攝像機系統組成、工作模式以及發展趨勢。
視頻流解決方案的應用正在迅速增多,這其中一些原因包括像SARS 這樣的疾病對社會的影響、不需要出差的可視會議以及安全/監控等應用。視頻流方案中攝像機是關鍵設備,過去我們曾聽說過PC 攝像機及網絡攝像機,但其工作原理有很大的不同。實際上這兩個概念一直就與PC 攝像機相關聯,但對于網絡攝像機來說,將其與PC 聯系在一起并不正確。PC 攝像機是指帶USB 接口的攝像機,絕大多數采用操作系統所提供的標準軟件,用于舉行視頻會議或視頻聊天。
而在監控技術方面則有兩種系統可用,一種是基于CCD 技術并使用模擬傳輸(PAL/NTSC) 的閉路電視攝像機,而另一種則是采用CCD 或CMOS 數字傳輸的新系統。仔細考察一下這兩種系統所采用的技術可以發現CMOS 技術對于該市場具有更大的優勢:首先,CMOS 攝像機不需要不同的電壓,這意味著電源設計要簡單很多;其次,CMOS 攝像機最大的優勢是集成了時序及ADC,這意味著圖像輸出已經數字化,這有助于降低系統的整體成本。而在低光線亮度方面的性能,由意法半導體公司提供的CMOS 技術正在逐漸接近我們目前所使用的低亮度優化像素技術的水平。此外,傳感器已能執行一些處理算法來幫助提高視頻處理器的性能。
網絡攝像機
現在讓我們來看一看真正的網絡攝像機,或所謂的IP 攝像機。除了適合于家庭安全及家庭監控以外,IP 攝像機將不可能取代PC 攝像機。這是因為如果我們想要通過網絡來傳輸視頻或視頻和音頻,則至少需要一些像流媒體服務器這樣的設備。如果采用基于PC 的系統,這種系統要求PC 24 小時開機,這意味著極大的電力浪費以及產生大量噪音。此外,如果我們想要將系統用于家庭使用,這種應用還會降低PC 性能。相反,真正的IP 攝像機是構建在嵌入式流媒體服務器基礎之上,這意味著攝像機擁有自己的流媒體服務器,而無需再使用PC,且只需插入以太網(集線器),或使用無線以太網即可工作。
在圖1 中可以發現,在客戶端僅使用了一臺PC,該系統的優點是客戶可處于世界任何地方,只要有互聯網連接就可以通過攝像機觀察并進行控制。該解決方案將具有更多的應用。隨著移動電話擁有越來越多的數據通信方式可選,而且速度很快提高,將來有可能攝像機會通過運動檢測或噪聲檢測來發出告警,可通過發送SMS 或直接撥打手機將視頻流傳輸到手機。此概念同樣適用于無人值守的辦公室情況。其它用途包括將攝像機安裝在門上,如有人按門鈴,攝像機即會撥打視頻電話,您可以通過視頻電話開門。
系統解決方案
從技術上考慮,意法半導體與臺灣Taifatech(臺發科技)公司共同合作提供真正的一站式解決方案(見圖2)。客戶只需修改其希望在客戶端瀏覽器中顯示的用戶界面即可,如果不修改,則他們能使用默認界面并直接應用。我們提供的解決方案是基于STv0676 協處理器以及我們的VGA 傳感器VV6501。該套方案允許通過USB 及所謂的“Digiport (數字端口)”來傳輸視頻。我們在該解決方案中所使用的Digiport 是一種可將并行數據傳輸給任何嵌入式系統的總線(8 位數據及2 位控制)。最大時鐘速度為1.5MHz,即每秒最多能傳輸1.5M 字節數據,這很容易就能傳輸30fps 的視頻。
圖3 為該解決方案組成框圖。在圖左邊,視頻處理器直接與傳感器相連,且用來控制所有必要的圖像處理功能,如自動白平衡(AWB)、自動曝光(AE)、色彩變換陣列(colour shifting matrix)、曝光區加重、缺陷像素糾正及色彩模型計算等。STv0676 可以工作在下面不同的模式來將圖像數據輸出系統。
模式A STv0676 采用USB 模式,通過FIFO(先先進先出)直接將圖像數據傳送至USB 端口。
模式B STv0676 采用主模式,且能將CCIR-656 、YcrCb 及RGB 7 位色彩數據流送至Digiport 。主模式意味著STv0676 能根據所選幀速率來為數據提供時鐘。在此模式下,它可以連接外部TV 解碼器并直接將信號傳送給電視機。
模式C STv0676 通過FIFO 將RGB24、YUV 及MJPEG 數據流送至Digiport。此模式限制1.5MHz 的數據時鐘上,但系統將處于從模式,外部控制器將控制所有數據傳輸。
數據動態壓縮
在嵌入式環境中使用STv0676,意味著在模式C 下使用我們的系統時可以在異步模式下從STv0676 上讀出數據,使主MCU 具有足夠的性能來處理其他任務。該解決方案的一個內核是4KB 的FIFO。以我們所談論的大量數據來說,此容量并不夠大,但視頻壓縮器(VC)有助于解決這個問題。VC 擁有建立動態壓縮率選擇的功能,這意味著基于FIFO 占空因子的VC 可決定壓縮率。例如,當MCU 讀數快而FIFO 逐漸騰空時,VC 壓縮減少,而當MCU 讀數慢,FIFO 逐漸滿時,VC 將盡可能多地壓縮。但所有這些都無法避免FIFO 溢出或空。FIFO 空時將產生空閑告警,而當MCU 太慢以至于不能讀數時, FIFO 將出現溢出,且不會發出告警,但視頻流并沒有停止。實際上這種情況很少發生,因為系統可對數據率進行計算。現在讓我們來看一下數據量,根據VGA 的分辨率可有以下的計算:
每幀的Bayer 圖案:640
評論