網上關于直播H264編碼的文章已經很多了,但是其中牽扯到了很多名詞,讓人不是很理解,這篇文章的意義就是理解這些概念
讓我們努力變成巨人-------------與君共勉
首先H264是一種高度壓縮數字視頻編解碼器標準
為了更好地說明幀的概念,我們先來看看電影播放的基本原理。
在放映電影的過程中,畫面被一幅幅地放映在銀幕上。畫幅移開時,光線就被遮住,幕上便出現短暫的黑暗;每放映一個畫幅后,幕上就黑暗一次。但這一次次極短暫的黑暗,被人的視覺生理現象“視覺暫留”所彌補。人眼在觀察景物時,光信號傳入大腦神經需經過一段短暫時間,光的作用結束時,視覺也不立即消失。視覺的這一現象稱為“視覺暫留”。當電影畫面換幅頻率達到每秒15幅~30幅時,觀眾便見不到黑暗的間隔了,這時人“看到”的就是運動的事物,這就是電影的基本原理。這里的一幅畫面就是電影的一幀,實際上就是電影膠片中的一格。
幀——就是影像動畫中最小單位的單幅影像畫面。
我們通常說幀數,簡單地說,就是在1秒鐘時間里傳輸的圖片的幀數,也可以理解為圖形處理器每秒鐘能夠刷新幾次,通常用FPS(Frames Per Second)表示。
I幀又稱為內部畫面,通常是一組連續畫面的第一個幀,經過適度地壓縮,做為隨機訪問的參考點,可以當成圖像。I幀采用幀內壓縮法,這種壓縮與靜態圖像的壓縮算法類似。I幀是靠盡可能去除圖像空間冗余信息來壓縮的。
P幀是通過充分降低與圖像序列中前面已編碼幀的時間冗余信息來壓縮傳輸數據量的編碼圖像,也叫預測幀。P幀由在它前面的P幀或者I幀預測而來,它根據本幀與鄰近的前一幀或幾幀的不同點來壓縮本幀數據。采取P幀和I幀聯合壓縮的方法可達到更高的壓縮且無明顯的壓縮痕跡。P幀屬于前向預測的幀間編碼。它只參考前面靠近它的I幀或P幀。
B幀也叫雙向預測幀,當把一幀壓縮成B幀時,它根據鄰近的前幾幀、本幀以及后幾幀數據的不同點來壓縮本幀,也即僅記錄本幀與前后幀的差值。只有采用B幀壓縮才能達到超高的壓縮比。一般地,I幀壓縮效率最低,P幀較高,B幀最高。
幀間(Interframe)壓縮是基于許多視頻或動畫的連續前后兩幀具有很大的相關性,或者說前后兩幀信息變化很小的特點。也即連續的視頻其相鄰幀之間具有冗余信息,根據這一特性,壓縮相鄰幀之間的冗余量就可以進一步提高壓縮量,減小壓縮比。幀間壓縮也稱為時間壓縮(Temporal compression)。
幀內(Intraframe)壓縮也稱為空間壓縮(Spatial compression)。當壓縮一幀圖像時,僅考慮本幀的數據而不考慮相鄰幀之間的冗余信息,這實際上與靜態圖像壓縮類似。幀內一般采用有損壓縮算法,達不到很高的壓縮比。
I幀又稱為內部畫面,通常是一組連續畫面的第一個幀,經過適度地壓縮,做為隨機訪問的參考點,可以當成圖像。I幀采用幀內壓縮法,這種壓縮與靜態圖像的壓縮算法類似。I幀是靠盡可能去除圖像空間冗余信息來壓縮的。