如今我們所處的時代,是移動互聯網時代,也可以說是視頻時代。從網絡小視頻,到網紅直播帶貨,再到隨處可見的視頻監控,我們的生活被越來越多的視頻元素所影響。然而,圖像信息經采集后生成的原始視頻數據,數據量非常龐大,給視頻傳輸和后端存儲帶來了巨大的壓力。視頻編解碼技術的發展,可以有效地解決視頻傳輸慢、存儲難的問題。
以攝像機為例,拍攝1分鐘的4K (分辨率3840*2160) 視頻,未經壓縮的數據量約為17.38GB。 ● 以100M帶寬計算,全速傳輸1分鐘視頻約需24分鐘。 ● 1個10TB的硬盤,只能存儲不到9小時的視頻。 每幅完整圖像稱為一幀,視頻是由不同的幀畫面連續播放形成的。這些幀主要分為三類,分別是I幀、P幀和B幀。 ● I幀(I frame):關鍵幀,自帶全部信息的獨立幀(占用空間最大),經過適度的幀內壓縮,解碼時只需要本幀數據即可完成,可做為后續幀的參考幀,也可以當成圖像。 ● P幀(P frame):幀間預測編碼幀,表示這一幀跟之前的一個關鍵幀或P幀的差別。解碼時需要用之前緩存的畫面疊加本幀定義的差別,生成最終畫面。 ● B幀(B frame):雙向預測編碼幀,記錄本幀與前后幀的差別。解碼時需要通過前后畫面與本幀數據的疊加,生成最終畫面。因為依賴后面的幀,所以不適合實時傳輸,例如視頻會議。 視頻編解碼技術的本質是對視頻進行壓縮,但壓縮是分步驟的。目前視頻編解碼主要采用混合編碼(即預測編碼+變換編碼)框架,主要包括預測、變換、量化、熵編碼幾個流程。 ● 預測:通過幀內預測、幀間預測技術,去除視頻中存在的空間冗余和時間冗余,達到壓縮的目的。 ● 變換:通過從時域到頻域的變換,去除相鄰數據之間的相關性,即去除空間冗余。 ● 量化:通過去除人眼不敏感的信息來降低編碼數據量,提高壓縮比,即去除視覺冗余。 ● 熵編碼:根據待編碼數據的概率特性減少數據冗余。 視頻編解碼的預測、變換、量化、熵編碼流程中,有多種方法可以實現壓縮編碼,如:DCT變換算法、小波變換都可以實現變換編碼。 為了實現多廠商多產品間的互聯互通,早在1993年,ITU-T制定了第一個視頻編解碼標準H.261。隨著視頻產業的飛速發展需求,視頻編解碼標準也在不斷演進。 根據網上公開可獲得數據,對當前常見的三種視頻編碼標準做一個簡要對比,如下表所示。 在安防領域,目前主要采用的編解碼標準為H.264技術,當然,隨著H.265芯片技術的不斷成熟,憑借其更強的優越性能,將會逐步取代H.264并成為行業的主流應用技術。 安防場景下,有些監控區域是無關緊要的,例如天空、草地等,如果對整個監控區域進行視頻編碼并傳輸,會給網絡帶寬和視頻存儲帶來壓力。 ROI技術,在H.264/H.265標準的基礎上,針對安防場景進行了編碼優化。通過ROI提取算法提取出感興趣區域,然后在編碼量化過程中,對圖像感興趣區域正常編碼,而對不感興趣區域壓縮處理,在不損失圖像整體質量的前提下,實現降低網絡帶寬占用率和減少存儲空間的目的。 感興趣區域的提取是ROI編碼技術的基礎,直接影響視頻編碼的最終效果。ROI提取算法主要可以分為兩類:背景建模算法和深度學習目標檢測算法。 現階段比較流行的背景建模算法主要有GMM和ViBe。背景建模算法主要包含3個過程: 1.背景模型:通過提取視頻序列中的背景特征,從而建立一個數學模型。 2.前景檢測:將檢測圖像和背景模型進行相減運算,可以對運動目標進行判別及定位。 3.更新模型:對背景模型進行一定速率的更新,以適應背景物體的變化,如光照、雨霧等。 深度學習目標檢測方法是將視頻圖像傳遞到深度神經網絡模型中,如卷積神經網絡,利用深度神經網絡模型學習大量樣本數據內在規律而獲得的分析能力,對圖像中的所有目標進行分類,并預測出目標的具體位置。常見的算法有R-CNN、YOLO、SSD等。 傳統的背景建模算法和深度學習目標檢測算法的優缺點: 安防業界已經有廠商針對上述ROI提取算法的缺點做了相關的改進實踐,改進后的ROI提取算法兼顧人體主觀感興趣的運動目標和安防業務的特定感興趣目標,將動物、抖動的樹葉等干擾因素深度過濾,并從矩形摳圖精細到輪廓級分割,可以在有限數量的字節數內保護ROI區域,同時達到三重目的: ● 節省存儲空間/傳輸帶寬; ● 保證圖像質量(PSNR); ● 保護安防業務的精度。