一、視頻的基本概念
1.1 視頻碼率(kb/s)
視頻碼率是指視頻文件在單位時間內使用的數據流量,也叫碼流率。碼率越大,說明單位時間內取樣率越大,數據流進度也就越高
1.2 視頻幀率(fps)
視頻幀率是指一秒鐘的視頻幀數量,如果一個視頻是25幀的,那么就說明這個視頻在1s內有25個視頻幀。幀率越高,給人的視覺就越流暢
1.3 視頻分辨率
視頻分辨率指的是視頻幀中的的像素個數,比如640*480分辨率,指的就是在視頻寬度上有640個像素,高有480個像素。分辨率影響視頻圖像的大小。
1.4 MediaInfo工具
MediaInfo工具可以快速查看視頻的格式與參數,是一個音視頻常見的工具,下載鏈接:MediaInfo官網
下載完成后,右鍵相應的視頻就可以使用它查看我們的視頻參數了,如下:
可以輕松查看到視頻的參數:
1.2 視頻幀 I幀
I幀(Intra coded frames):I幀不需要參考其他畫面而生成,解碼時僅需要自己就可以重構完整圖像。(這里暫做了解,H264會詳細講解)
- I幀采用幀內編碼的方式
- I幀所占的數據信息量比較大
- I幀圖像是周期性出現在圖像序列中的,出現頻率可由編碼器選擇
- I幀是P幀和B幀的參考幀(其質量影響到同組中以后各幀的質量)
- I幀是幀組GOP的基礎幀(第一幀),在一組中只有一個幀
- I幀不需要考慮運動矢量
1.2 視頻幀 P幀
P幀(Predicted frames):根據本幀與相鄰的前一幀(I幀或P幀)的不同點來壓縮本幀數據,同時利用了空間和時間上的相關性。
- P幀數據前向預測的幀間編碼。它需要參考前面最靠近它的I幀或者P幀來解碼
1.3 視頻幀 B幀
B幀(Bi-directional predict frmaes):B幀圖像采用雙向時間預測,可以大大提高壓縮倍數。
具體的GOP如下:
通常,解碼幀的順序是,先解碼I幀,然后利用I幀解碼出P幀,最后通過前后的I幀和B幀解碼出B幀。
3.1 常用的視頻壓縮算法
最后這里列舉一些常用的視頻壓縮算法,如下:
- MPEG陣容:MEPGE2、H264、H265
- AVS 中國陣容
- VP8、VP9 Google陣容