上篇文章我講了視頻中的一些常見的基本概念,比如封裝格式,編碼格式。這篇文章我分享一些視頻文件的“外在”參數,這些參數即使是非技術工作者也應該能簡單理解。
- 分辨率
- 碼率
- 幀率
分辨率
這個最好理解,下面引用一下百度百科的解釋
顯示分辨率(屏幕分辨率)是屏幕圖像的精密度,是指顯示器所能顯示的像素有多少。由于屏幕上的點、線和面都是由像素組成的,顯示器可顯示的像素越多,畫面就越精細,同樣的屏幕區域內能顯示的信息也越多,所以分辨率是個非常重要的性能指標之一??梢园颜麄€圖像想象成是一個大型的棋盤,而分辨率的表示方式就是所有經線和緯線交叉點的數目。顯示分辨率一定的情況下,顯示屏越小圖像越清晰,反之,顯示屏大小固定時,顯示分辨率越高圖像越清晰。
那么落實到視頻上,比如說我們平時進場看到的1080P的視頻,意思就是分辨率為1920X1080?的視頻(主流屏幕長寬比為16:9)。那么理論上來說肯定是分辨率越高視頻的顯示效果越清晰,可是實際生活中我們下載的電影視頻文件中,1080P的文件有的是1GB,有的是3GB、4GB,有的要10GB大小。他們的清晰層度當然不同。要解釋這個現象,就要引入下面要講的”碼率“這一概念。
碼率(比特率)
在《視頻技術基礎》一文中我們介紹了,由于保存完整的一幀一幀圖片的視頻原文件太大,必須要通過某種視頻壓縮算法將視頻中的圖片壓縮,以減小視頻文件大小,那么讀者應該可以想到,壓縮比越大,解壓縮還原后用來播放的視頻就會有越嚴重的失真,因為壓縮的同時不可避免的丟失了視頻中原來圖像的數據信息。在理解這個的前提下,我來舉個例子,一個分辨率為1080P的原視頻(未經壓縮)被壓縮成分別為4GB 和 1GB的兩個視頻文件。由于1GB的視頻的壓縮比更大,所以在觀看1GB視頻的明顯感覺到沒有4GB視頻清晰(雖然他們的分辨率都是1080P)。
我再來解釋碼率的概念。所謂碼率,簡單來說就是指在壓縮視頻的時候給這個視頻指定一個參數,用以告訴壓縮軟件期望的壓縮后視頻的大小。碼率的英文名為bps(bit per second),就是用平均每秒多少bit來衡量一個視頻大小。下面是百度百科的解釋:
比特率是指每秒傳送的比特(bit)數。單位為bps(Bit Per Second),比特率越高,傳送數據速度越快。聲音中的比特率是指將模擬聲音信號轉換成數字聲音信號后,單位時間內的二進制數據量,是間接衡量音頻質量的一個指標。 視頻中的比特率(碼率)原理與聲音中的相同,都是指由模擬信號轉換為數字信號后,單位時間內的二進制數據量。
我還拿上面那個例子來說明比特率,比如那個被壓縮的1080P的視頻,假設它的長度為100分鐘,大小為1GB。
- 100M=100X60S=6000s
- 1GB=1024MB= 1024X1024KB=1024X1024X1024Byte=1024X1024X1024X8bit=8589934592bit
那么這個視頻的碼率大概就是1.4Mbit/s(8589934592/6000),這個比特率在在線視頻中已經是非常高的了,一般主流視頻平臺的最高碼率在1Mbit左右,比如直播網站斗魚的高清選項實際播放的視頻碼率是900Kbit/s(0.9Mbit)。
幀率
幀率很好理解,直接上百度百科。
幀率(Frame rate)是用于測量顯示幀數的量度。所謂的測量單位為每秒顯示幀數(Frames per Second,簡稱:FPS)或“赫茲”(Hz)。此詞多用于影視制作和電子游戲。
引申理解也不難,還是上百度百科。
由于人類眼睛的特殊生理結構,如果所看畫面之幀率高于24的時候,就會認為是連貫的,此現象稱之為視覺暫留。這也就是為什么電影膠片是一格一格拍攝出來,然后快速播放的。
而對游戲,一般來說,第一人稱射擊游戲比較注重FPS的高低,如果FPS<30的話,游戲會顯得不連貫。所以有一句有趣的話:“FPS(指FPS游戲)重在FPS(指幀率)。
每秒的幀數(fps)或者說幀率表示圖形處理器處理場時每秒鐘能夠更新的次數。高的幀率可以得到更流暢、更逼真的動畫。一般來說30fps就是可以接受的,但是將性能提升至60fps則可以明顯提升交互感和逼真感,但是一般來說超過75fps一般就不容易察覺到有明顯的流暢度提升了。如果幀率超過屏幕刷新率只會浪費圖形處理的能力,因為監視器不能以這么快的速度更新,這樣超過刷新率的幀率就浪費掉了。
所以說要想得到非常流暢的畫面感,幀率當然是越高越好,但是超過60幀每秒估計人類也可能感知不出效果了。
總結
總結一下它們的關系,對于視頻來講,碼率應該是最重要的參數,從上面的例子我們看出,碼率直接與視頻壓縮比相關。直觀來講,碼率越大代表一個視頻的畫質也清晰(不考慮各種壓縮算法的優劣問題)。這是直觀的感覺,當然作為視頻技術者來說,對1080P的視頻,采取多大的碼率壓縮比較合理還需要進行更多研究。