視頻監視領(lǐng)域的視頻壓縮與數據流
許多 VSIP 攝像頭都有多個(gè)視頻編碼器,因此用戶(hù)可根據具體應用要求選擇最合適的視頻編碼器。某些攝像頭甚至還能同時(shí)執行多種編解碼器。MJPEG 對VSIP 攝像頭的要求通常是最低的,幾乎所有 VSIP 攝像頭都可安裝 JPEG 編碼器。
MJPEG 標準的實(shí)施
在典型數字監視系統中,視頻通過(guò)傳感器采集、壓縮,再以流媒體方式傳輸到視頻服務(wù)器中。新型 DSP 架構上執行的視頻編碼器任務(wù)如果發(fā)生中斷,就會(huì )出現問(wèn)題,因為每次環(huán)境轉換 (context switch) 都會(huì )導致大量寄存器存儲和高速緩存釋放。因此我們應采用異構架構,這樣就能將 DSP 從視頻采集和流媒體任務(wù)中解脫出來(lái)。以下結構圖顯示了視頻監視應用中的 DSP/GPP 處理器架構實(shí)例。
![]() |
圖 3:視頻監視應用中的 DSP/GPP 處理器架構實(shí)例。 |
在DSP/GPP SoC系統中采用MJPEG 標準時(shí),開(kāi)發(fā)人員應首先適當拆分功能模塊,以提高系統性能。
EMAC 驅動(dòng)器、TCP/IP 網(wǎng)絡(luò )棧和 HTTP 服務(wù)器協(xié)同工作,將壓縮影像以流媒體形勢輸出。視頻采集驅動(dòng)器和 ATA 驅動(dòng)器均應部署在 ARM 上,這樣有助于減輕 DSP 的處理壓力。而 JPEG 編碼器應在部署在 DSP 的內核上,因為DSP VLIW 架構特別適用于這種計算強度大的工作。
一旦攝像頭通過(guò)處理器上的視頻輸入端口采集到視頻幀,原始影像就通過(guò) JPEG 編碼器壓縮,隨后將該壓縮影像保存到設備硬盤(pán)上。
![]() |
圖 4:有關(guān)視頻監視系統中基于 DaVinci 技術(shù)的 TI DM6446 數字視頻評估板的 MJPEG 數據流演示。 |
我們通常用 PC 監控實(shí)時(shí)視頻場(chǎng)景,首先檢索出視頻服務(wù)器中的流媒體,然后進(jìn)行解碼,最后在顯示器上顯示視頻影像。編碼的 JPEG 影像文件可由設備通過(guò)因特網(wǎng)檢索,因此我們不僅可在一臺 PC 上同時(shí)監控多個(gè)視頻流,而且通過(guò)因特網(wǎng)能夠從多個(gè)點(diǎn)同時(shí)查看這些被檢索到的視頻流。VSIP 局端通過(guò) TCP/IP 網(wǎng)絡(luò )能與視頻服務(wù)器相連,而且可位于網(wǎng)絡(luò )中任何位置。這與傳統模擬系統相比,是一個(gè)巨大的進(jìn)步。就算出了問(wèn)題,也只影響一個(gè)數字攝像頭,而不會(huì )影響局端。我們也可動(dòng)態(tài)配置 JPEG影像質(zhì)量,以滿(mǎn)足不同視頻質(zhì)量要求。
優(yōu)化JPEG編碼器
JPEG 編碼器的三大功能模塊中,DCT 與量化器的計算任務(wù)較重。我們也可以注意到,就這兩種模塊而言,高度優(yōu)化的匯編代碼和未優(yōu)化的 C 代碼之間存在很大的性能差異,因此有必要對這兩個(gè)模塊進(jìn)行優(yōu)化。
優(yōu)化 2D 8x8 DCT功能模塊有助于減少加、減、乘等運算次數,避免原始方程式的冗余計算。目前已推出了眾多快速 DCT 算法,其中陳氏算法 (Chen’s algorithm) 廣為業(yè)界采用。就 2D 8x8 DCT 而言,陳氏算法需要進(jìn)行 448 次加減運算以及 224 次乘法運算。
加減法和乘法功能塊可進(jìn)一步拆分為多個(gè)功能單元(均部署在 DSP 內核上),以執行并行指令并提高性能。在開(kāi)銷(xiāo)忽略不計的條件下,高度優(yōu)化的 DSP 匯編代碼能在 100 個(gè)循環(huán)之內順利完成 2D DCT 計算任務(wù)。其它快速 DCT 算法要求的計算量更少,不過(guò)往往會(huì )要求更多緩沖區來(lái)保存中間計算結果。就采用管線(xiàn) VLIW 架構的新型 DSP 而言,存儲器數據存取工作量比乘法運算工作量大,因此開(kāi)發(fā)人員在優(yōu)化算法時(shí)應考慮計算與存儲器存取之間的平衡問(wèn)題。
每個(gè)像素的量化過(guò)程均需要進(jìn)行乘法及加法運算。這種計算結果通常只需要 16 位的精確度即可,而 DSP 寄存器則需要 32 位。優(yōu)化量化器模塊的最初想法是在單個(gè)寄存器中存儲 2 個(gè)像素,然后對這兩個(gè)像素執行加法及乘法運算;第二種方法就是并行使用多個(gè) DSP 功能單元。由于 TMS320DM6446 中的 DSP 內核有 2 個(gè)乘法器和 2 個(gè)加法器,因此我們可同時(shí)量化高達 4 個(gè)像素。最后但不是不重要的一種做法就是充分利用管線(xiàn) DSP 架構。DSP 內核在量化當前 4 個(gè)像素時(shí),可從存儲器讀取下一組“ 4 個(gè)像素”,這樣每個(gè)循環(huán)都能向乘法器和加法器提供數據。前兩種方法由開(kāi)發(fā)人員親自編寫(xiě)優(yōu)化的 C 代碼或匯編代碼即可實(shí)現。管線(xiàn)代碼可采用 DSP 編譯器。
除了優(yōu)化每個(gè)功能模塊之外,我們還可采用乒乓 (PING-PONG) 緩沖技術(shù)來(lái)優(yōu)化系統級 JPEG 編碼器。DSP 內核存取內部 RAM(IRAM) 中的數據的速度比存取外部 DDR2 存儲器中數據的速度快得多。但 IRAM 容量有限,不能滿(mǎn)足整個(gè)輸入幀的要求,因此同一時(shí)間在 IRAM 中只能處理一部分模塊。處理乒乓集時(shí),DMA 將乒乓集從 DDR2 傳遞至 IRAM,這樣 DSP內核就能在完成當前工作后立即開(kāi)始處理下面的數據。
顯然,視頻監視系統的數字化已經(jīng)全面展開(kāi)。了解視頻壓縮、系統分區和編解碼器優(yōu)化等技術(shù),對開(kāi)發(fā)新一代視頻監視系統以滿(mǎn)足不斷增長(cháng)的需求來(lái)說(shuō)至關(guān)重要。
評論