隨著人們安全意識(shí)的提高,視頻監(jiān)視系統(tǒng)日益普及,現(xiàn)已廣泛應(yīng)用于機(jī)場(chǎng)、銀行、公共交通中心乃至私人住宅中。但傳統(tǒng)模擬系統(tǒng)存在諸多問(wèn)題,這促使人們希望轉(zhuǎn)而采用數(shù)字系統(tǒng)。此外,隨著計(jì)算機(jī)網(wǎng)絡(luò)、半導(dǎo)體及視頻壓縮技術(shù)的日益推廣,新一代視頻監(jiān)視系統(tǒng)將無(wú)疑采用數(shù)字技術(shù),并將實(shí)行標(biāo)準(zhǔn)化技術(shù),支持IP 網(wǎng)絡(luò)。
就因特網(wǎng)協(xié)議視頻監(jiān)視系統(tǒng) ( VSIP) 而言,處理網(wǎng)絡(luò)流量的硬件是攝像頭系統(tǒng)的重要組成部分,因?yàn)橐曨l信號(hào)要通過(guò)攝像頭進(jìn)行數(shù)字化、壓縮處理,然后才傳輸?shù)揭曨l服務(wù)器,從而解決網(wǎng)絡(luò)的帶寬限制問(wèn)題。 DSP/ GPP 等異構(gòu)處理器架構(gòu)有助于最大化系統(tǒng)性能。視頻采集、存儲(chǔ)和視頻流都是中斷密集型 (Interrupt intensive) 任務(wù),我們可將其分配給 GPP 來(lái)處理,而高密度 MIPS 視頻壓縮工作則交給 DSP 去完成。數(shù)據(jù)傳輸給視頻服務(wù)器后,服務(wù)器將壓縮視頻流作為文件存儲(chǔ)在硬盤(pán)驅(qū)動(dòng)器上,從而避免了像傳統(tǒng)模擬存儲(chǔ)設(shè)備那樣出現(xiàn)視頻質(zhì)量下降問(wèn)題。我們針對(duì)數(shù)字視頻信號(hào)的壓縮技術(shù)開(kāi)發(fā)了多種標(biāo)準(zhǔn),可分為以下兩大類(lèi):
* 運(yùn)動(dòng)估算 (ME) 法:每 N 幀為一個(gè)圖像組 ( GOP)。我們對(duì)圖像組中的第一幀進(jìn)行獨(dú)立編碼,而對(duì)其它 (N-1) 幀來(lái)說(shuō),我們只將當(dāng)前幀與其前面已編碼的幀(即前向參考幀)的時(shí)差加以編碼。常用的標(biāo)準(zhǔn)為 MPEG-2、MPEG-4、H.263 及 H.264。
* 靜態(tài)影像壓縮法:每個(gè)視頻幀作為靜態(tài)影像獨(dú)立編碼。最常用的標(biāo)準(zhǔn)為 JPEG。MJPEG 標(biāo)準(zhǔn)采用JPEG 算法對(duì)每個(gè)幀進(jìn)行編碼。
運(yùn)動(dòng)估算法與靜態(tài)影像壓縮法的比較
圖 1 顯示了 H.264 編碼器的結(jié)構(gòu)圖。與其它 ME 視頻編碼標(biāo)準(zhǔn)類(lèi)似,H.264 編碼器將輸入影像分為多個(gè)16 x 16 像素的宏塊 (MB) ,然后逐塊處理。H.264 編碼器包括正向路徑和重構(gòu)路徑。正向路徑將幀編碼為比特位;重構(gòu)路徑從編碼位中產(chǎn)生一個(gè)參考幀。下圖中的 IDCT、IQ、 ME 和 MC分別代表(反向)離散余弦變換、(反向)量化、運(yùn)動(dòng)估算及運(yùn)動(dòng)補(bǔ)償。
圖 1:H.264 編碼器結(jié)構(gòu)圖。
在正向路徑中(從 DCT至 Q),每個(gè)宏塊 (MB) 均可以幀內(nèi)模式或幀間模式編碼。在幀間模式下,運(yùn)動(dòng)估算 (ME) 模塊將參考 MB 位于前面已編碼的幀處;而在幀內(nèi)模式下,參考MB 在當(dāng)前幀中由采樣形成。
重構(gòu)路徑 (從 IQ 至 IDCT)的目的是確保編碼器和解碼器采用相同的參考幀生成影像。否則就會(huì)累積編碼器與解碼器間的誤差。
圖 2:JPEG 編碼器結(jié)構(gòu)圖。
圖 2 給出了 JPEG 編碼器結(jié)構(gòu)圖。該編碼器將輸入影像分為多個(gè) 8x8 像素的模塊,然后逐個(gè)處理。每個(gè)模塊首先通過(guò) DCT 模塊,隨后量化器根據(jù)量化矩陣對(duì) DCT 系數(shù)進(jìn)行取整。在此過(guò)程中,編碼質(zhì)量與壓縮比均可根據(jù)量化步驟調(diào)節(jié)。最后熵編碼器對(duì)量化器輸出進(jìn)行編碼,并生成 JPEG 影像。
由于連續(xù)視頻幀通常包括大量相關(guān)信息,因此 ME 方法可實(shí)現(xiàn)更高的壓縮比。舉例來(lái)說(shuō),就每秒 30 幀的標(biāo)準(zhǔn) NTSC 分辨率而言,H.264 編碼器能以 2 mbps 的速度進(jìn)行視頻編碼,從而實(shí)現(xiàn)了平均壓縮比高達(dá) 60:1 的影像質(zhì)量。在影像質(zhì)量相同的情況下,MJPEG 的壓縮比則為10:1 至 15:1。
MJPEG 相對(duì)于 ME 方法有如下幾點(diǎn)優(yōu)勢(shì)。首先,JPEG 需要的計(jì)算量和功耗相對(duì)大幅降低。此外,大多數(shù)PC 都配置了 JPEG 影像專(zhuān)用的解碼及顯示軟件。如果記錄特定事件只需一幅或幾幅影像,比如人通過(guò)門(mén)口,那么 MJPEG 的效率會(huì)更高。如果網(wǎng)絡(luò)帶寬沒(méi)有保證,那么我們更傾向于采用 MJPEG 標(biāo)準(zhǔn),因?yàn)槟硯膩G失或延遲不會(huì)影響其它幀。而對(duì)于 ME 方法來(lái)說(shuō),某幀的延遲或丟失會(huì)導(dǎo)致整個(gè) GOP 的延遲或丟失,因?yàn)橹挥蝎@得前向參考幀 (previous reference frame) 才能對(duì)下一幀進(jìn)行解碼。
許多 VSIP 攝像頭都有多個(gè)視頻編碼器,因此用戶可根據(jù)具體應(yīng)用要求選擇最合適的視頻編碼器。某些攝像頭甚至還能同時(shí)執(zhí)行多種編解碼器。MJPEG 對(duì)VSIP 攝像頭的要求通常是最低的,幾乎所有 VSIP 攝像頭都可安裝 JPEG 編碼器。
MJPEG 標(biāo)準(zhǔn)的實(shí)施
在典型數(shù)字監(jiān)視系統(tǒng)中,視頻通過(guò)傳感器采集、壓縮,再以流媒體方式傳輸?shù)揭曨l服務(wù)器中。新型 DSP 架構(gòu)上執(zhí)行的視頻編碼器任務(wù)如果發(fā)生中斷,就會(huì)出現(xiàn)問(wèn)題,因?yàn)槊看苇h(huán)境轉(zhuǎn)換 (context switch) 都會(huì)導(dǎo)致大量寄存器存儲(chǔ)和高速緩存釋放。因此我們應(yīng)采用異構(gòu)架構(gòu),這樣就能將 DSP 從視頻采集和流媒體任務(wù)中解脫出來(lái)。以下結(jié)構(gòu)圖顯示了視頻監(jiān)視應(yīng)用中的 DSP/GPP 處理器架構(gòu)實(shí)例。
圖 3:視頻監(jiān)視應(yīng)用中的 DSP/GPP 處理器架構(gòu)實(shí)例。
在DSP/GPP SoC系統(tǒng)中采用MJPEG 標(biāo)準(zhǔn)時(shí),開(kāi)發(fā)人員應(yīng)首先適當(dāng)拆分功能模塊,以提高系統(tǒng)性能。
EMAC 驅(qū)動(dòng)器、TCP/IP 網(wǎng)絡(luò)棧和 HTTP 服務(wù)器協(xié)同工作,將壓縮影像以流媒體形勢(shì)輸出。視頻采集驅(qū)動(dòng)器和 ATA 驅(qū)動(dòng)器均應(yīng)部署在 ARM 上,這樣有助于減輕 DSP 的處理壓力。而 JPEG 編碼器應(yīng)在部署在 DSP 的內(nèi)核上,因?yàn)镈SP VLIW 架構(gòu)特別適用于這種計(jì)算強(qiáng)度大的工作。
一旦攝像頭通過(guò)處理器上的視頻輸入端口采集到視頻幀,原始影像就通過(guò) JPEG 編碼器壓縮,隨后將該壓縮影像保存到設(shè)備硬盤(pán)上。
圖 4:有關(guān)視頻監(jiān)視系統(tǒng)中基于 DaVinci 技術(shù)的 TI DM6446 數(shù)字視頻評(píng)估板的 MJPEG 數(shù)據(jù)流演示。
我們通常用 PC 監(jiān)控實(shí)時(shí)視頻場(chǎng)景,首先檢索出視頻服務(wù)器中的流媒體,然后進(jìn)行解碼,最后在顯示器上顯示視頻影像。編碼的 JPEG 影像文件可由設(shè)備通過(guò)因特網(wǎng)檢索,因此我們不僅可在一臺(tái) PC 上同時(shí)監(jiān)控多個(gè)視頻流,而且通過(guò)因特網(wǎng)能夠從多個(gè)點(diǎn)同時(shí)查看這些被檢索到的視頻流。VSIP 局端通過(guò) TCP/IP 網(wǎng)絡(luò)能與視頻服務(wù)器相連,而且可位于網(wǎng)絡(luò)中任何位置。這與傳統(tǒng)模擬系統(tǒng)相比,是一個(gè)巨大的進(jìn)步。就算出了問(wèn)題,也只影響一個(gè)數(shù)字?jǐn)z像頭,而不會(huì)影響局端。我們也可動(dòng)態(tài)配置 JPEG影像質(zhì)量,以滿足不同視頻質(zhì)量要求。
優(yōu)化JPEG編碼器
JPEG 編碼器的三大功能模塊中,DCT 與量化器的計(jì)算任務(wù)較重。我們也可以注意到,就這兩種模塊而言,高度優(yōu)化的匯編代碼和未優(yōu)化的 C 代碼之間存在很大的性能差異,因此有必要對(duì)這兩個(gè)模塊進(jìn)行優(yōu)化。
優(yōu)化 2D 8x8 DCT功能模塊有助于減少加、減、乘等運(yùn)算次數(shù),避免原始方程式的冗余計(jì)算。目前已推出了眾多快速 DCT 算法,其中陳氏算法 (Chen’s algorithm) 廣為業(yè)界采用。就 2D 8x8 DCT 而言,陳氏算法需要進(jìn)行 448 次加減運(yùn)算以及 224 次乘法運(yùn)算。
加減法和乘法功能塊可進(jìn)一步拆分為多個(gè)功能單元(均部署在 DSP 內(nèi)核上),以執(zhí)行并行指令并提高性能。在開(kāi)銷(xiāo)忽略不計(jì)的條件下,高度優(yōu)化的 DSP 匯編代碼能在 100 個(gè)循環(huán)之內(nèi)順利完成 2D DCT 計(jì)算任務(wù)。其它快速 DCT 算法要求的計(jì)算量更少,不過(guò)往往會(huì)要求更多緩沖區(qū)來(lái)保存中間計(jì)算結(jié)果。就采用管線 VLIW 架構(gòu)的新型 DSP 而言,存儲(chǔ)器數(shù)據(jù)存取工作量比乘法運(yùn)算工作量大,因此開(kāi)發(fā)人員在優(yōu)化算法時(shí)應(yīng)考慮計(jì)算與存儲(chǔ)器存取之間的平衡問(wèn)題。
每個(gè)像素的量化過(guò)程均需要進(jìn)行乘法及加法運(yùn)算。這種計(jì)算結(jié)果通常只需要 16 位的精確度即可,而 DSP 寄存器則需要 32 位。優(yōu)化量化器模塊的最初想法是在單個(gè)寄存器中存儲(chǔ) 2 個(gè)像素,然后對(duì)這兩個(gè)像素執(zhí)行加法及乘法運(yùn)算;第二種方法就是并行使用多個(gè) DSP 功能單元。由于 TMS320DM6446 中的 DSP 內(nèi)核有 2 個(gè)乘法器和 2 個(gè)加法器,因此我們可同時(shí)量化高達(dá) 4 個(gè)像素。最后但不是不重要的一種做法就是充分利用管線 DSP 架構(gòu)。DSP 內(nèi)核在量化當(dāng)前 4 個(gè)像素時(shí),可從存儲(chǔ)器讀取下一組“ 4 個(gè)像素”,這樣每個(gè)循環(huán)都能向乘法器和加法器提供數(shù)據(jù)。前兩種方法由開(kāi)發(fā)人員親自編寫(xiě)優(yōu)化的 C 代碼或匯編代碼即可實(shí)現(xiàn)。管線代碼可采用 DSP 編譯器。
除了優(yōu)化每個(gè)功能模塊之外,我們還可采用乒乓 (PING-PONG) 緩沖技術(shù)來(lái)優(yōu)化系統(tǒng)級(jí) JPEG 編碼器。DSP 內(nèi)核存取內(nèi)部 RAM(IRAM) 中的數(shù)據(jù)的速度比存取外部 DDR2 存儲(chǔ)器中數(shù)據(jù)的速度快得多。但 IRAM 容量有限,不能滿足整個(gè)輸入幀的要求,因此同一時(shí)間在 IRAM 中只能處理一部分模塊。處理乒乓集時(shí),DMA 將乒乓集從 DDR2 傳遞至 IRAM,這樣 DSP內(nèi)核就能在完成當(dāng)前工作后立即開(kāi)始處理下面的數(shù)據(jù)。
顯然,視頻監(jiān)視系統(tǒng)的數(shù)字化已經(jīng)全面展開(kāi)。了解視頻壓縮、系統(tǒng)分區(qū)和編解碼器優(yōu)化等技術(shù),對(duì)開(kāi)發(fā)新一代視頻監(jiān)視系統(tǒng)以滿足不斷增長(zhǎng)的需求來(lái)說(shuō)至關(guān)重要。
責(zé)任編輯:gt
-
攝像頭
+關(guān)注
關(guān)注
59文章
4793瀏覽量
95279 -
視頻監(jiān)視
+關(guān)注
關(guān)注
0文章
10瀏覽量
7442
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論