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