視頻監(jiān)視領(lǐng)域的視頻壓縮與數(shù)據(jù)流
就因特網(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)行解碼。
評(píng)論