1. 程式人生 > >碼流 / 位元速率 / 位元率 / 幀速率 / 解析度

碼流 / 位元速率 / 位元率 / 幀速率 / 解析度

一個任務,根據客戶的上傳的視訊,需要使用ffmpeg進行轉碼操作。瞭解了下視訊轉碼的相關術語。

1, 碼流 /位元速率 / 位元率 / 幀速率 / 解析度

碼流 / 位元速率 

 碼流(Data Rate)是指視訊檔案在單位時間內使用的資料流量,也叫位元速率或碼流率,通俗一點的理解就是取樣率,是視訊編碼中畫面質量控制中最重要的部分,一般我們用的單位是kb/s或者Mb/s。一般來說同樣解析度下,視訊檔案的碼流越大,壓縮比就越小,畫面質量就越高。碼流越大,說明單位時間內取樣率越大,資料流,精度就越高,處理出來的檔案就越接近原始檔案,影象質量越好,畫質越清晰,要求播放裝置的解碼能力也越高。

  當然,碼流越大,檔案體積也越大,其計算公式是檔案體積=時間X位元速率/8。例如,網路上常見的一部90分鐘1Mbps碼流的720P RMVB檔案,其體積就=5400秒×1Mb/8=675MB。

  通常來說,一個視訊檔案包括了畫面及聲音,例如一個RMVB的視訊檔案,裡面包含了視訊資訊和音訊資訊,音訊及視訊都有各自不同的取樣方式和位元率,也就是說,同一個視訊檔案音訊和視訊的位元率並不是一樣的。而我們所說的一個視訊檔案碼流率大小,一般是指視訊檔案中音訊及視訊資訊碼流率的總和。

以以國內最流行,大家最熟悉的RMVB視訊檔案為例,RMVB中的VB,指的是VBR,即Variable Bit Rate的縮寫,中文含義是可變位元率,它表示RMVB採用的是動態編碼的方式,把較高的取樣率用於複雜的動態畫面(歌舞、飛車、戰爭、動作等),而把較低的取樣率用於靜態畫面,合理利用資源,達到畫質與體積可兼得的效果。

位元速率和取樣率最根本的差別就是位元速率是針對原始檔來講的。

取樣率

取樣率(也稱為取樣速度或者取樣頻率)定義了每秒從連續訊號中提取並組成離散訊號的取樣個數,它用赫茲(Hz)來表示。取樣率是指將模擬訊號轉換成數字訊號時的取樣頻率,也就是單位時間內取樣多少點。一個取樣點資料有多少個位元。位元率是指每秒傳送的位元(bit)數。單位為 bps(Bit Per Second),位元率越高,傳送的資料越大,音質越好.位元率 =取樣率 x 採用位數 x聲道數.

取樣率類似於動態影像的幀數,比如電影的取樣率是24赫茲,PAL制式的取樣率是25赫茲,NTSC制式的取樣率是30赫茲。當我們把取樣到的一個個靜止畫面再以取樣率同樣的速度回放時,看到的就是連續的畫面。同樣的道理,把以44.1kHZ取樣率記錄的CD以同樣的速率播放時,就能聽到連續的聲音。顯然,這個取樣率越高,聽到的聲音和看到的影象就越連貫。當然,人的聽覺和視覺器官能分辨的取樣率是有限的,基本上高於44.1kHZ取樣的聲音,絕大部分人已經覺察不到其中的分別了。

而聲音的位數就相當於畫面的顏色數,表示每個取樣的資料量,當然資料量越大,回放的聲音越準確,不至於把開水壺的叫聲和火車的鳴笛混淆。同樣的道理,對於畫面來說就是更清晰和準確,不至於把血和西紅柿醬混淆。不過受人的器官的機能限制,16位的聲音和24位的畫面基本已經是普通人類的極限了,更高位數就只能靠儀器才能分辨出來了。比如電話就是3kHZ取樣的7位聲音,而CD是44.1kHZ取樣的16位聲音,所以CD就比電話更清楚。

當你理解了以上這兩個概念,位元率就很容易理解了。以電話為例,每秒3000次取樣,每個取樣是7位元,那麼電話的位元率是21000。 而CD是每秒 44100次取樣,兩個聲道,每個取樣是13位PCM編碼,所以CD的位元率是44100*2*13=1146600,也就是說CD每秒的資料量大約是 144KB,而一張CD的容量是74分等於4440秒,就是639360KB=640MB。

位元速率和取樣率最根本的差別就是位元速率是針對原始檔來講的。

位元率

位元率是指每秒傳送的位元(bit)數。單位為bps(Bit Per Second),位元率越高,傳送的資料越大。在視訊領域,位元率常翻譯為位元速率 !!!

位元率表示經過編碼(壓縮)後的音、視訊資料每秒鐘需要用多少個位元來表示,而位元就是二進位制裡面最小的單位,要麼是0,要麼是1。位元率與音、視訊壓縮的關係,簡單的說就是位元率越高,音、視訊的質量就越好,但編碼後的檔案就越大;如果位元率越少則情況剛好相反。

位元率是指將數字聲音、視訊由模擬格式轉化成數字格式的取樣率,取樣率越高,還原後的音質、畫質就越好。

常見編碼模式:

  VBR(Variable Bitrate)動態位元率 也就是沒有固定的位元率,壓縮軟體在壓縮時根據音訊資料即時確定使用什麼位元率,這是以質量為前提兼顧檔案大小的方式,推薦編碼模式;

  ABR(Average Bitrate)平均位元率 是VBR的一種插值引數。LAME針對CBR不佳的檔案體積比和VBR生成檔案大小不定的特點獨創了這種編碼模式。ABR在指定的檔案大小內,以每50幀(30幀約1秒)為一段,低頻和不敏感頻率使用相對低的流量,高頻和大動態表現時使用高流量,可以做為VBR和CBR的一種折衷選擇。

  CBR(Constant Bitrate),常數位元率 指檔案從頭到尾都是一種位速率。相對於VBR和ABR來講,它壓縮出來的檔案體積很大,而且音質相對於VBR和ABR不會有明顯的提高。

幀速率

幀速率也稱為FPS(Frames PerSecond)的縮寫——幀/秒。是指每秒鐘重新整理的圖片的幀數,也可以理解為圖形處理器每秒鐘能夠重新整理幾次。越高的幀速率可以得到更流暢、更逼真的動畫。每秒鐘幀數(FPS)越多,所顯示的動作就會越流暢。

解析度

就是幀大小每一幀就是一副影象。

640*480解析度的視訊,建議視訊的碼速率設定在700以上,音訊取樣率44100就行了

一個音訊編位元速率為128Kbps,視訊編位元速率為800Kbps的檔案,其總編位元速率為928Kbps,意思是經過編碼後的資料每秒鐘需要用928K位元來表示。

計算輸出檔案大小公式:
(音訊編位元速率(KBit為單位)/8 +視訊編位元速率(KBit為單位)/8)×影片總長度(秒為單位)=檔案大小(MB為單位)

2,高清視訊

目前的720P以及1080P採用了很多種編碼,例如主流的MPEG2,VC-1以及H.264,還有Divx以及Xvid,至於封裝格式更多到令人髮指,ts、mkv、wmv以及藍光專用等等。

720和1080代表視訊流的解析度,前者1280*720,後者1920*1080,不同的編碼需要不同的系統資源,大概可以認為是H.264>VC-1>MPEG2。   

VC-1是最後被認可的高清編碼格式,不過因為有微軟的後臺,所以這種編碼格式不能小窺。相對於MPEG2,VC-1的壓縮比更高,但相對於H.264而言,編碼解碼的計算則要稍小一些,目前來看,VC-1可能是一個比較好的平衡,輔以微軟的支援,應該是一隻不可忽視的力量。一般來說,VC-1多為 “.wmv”字尾,但這都不是絕對的,具體的編碼格式還是要通過軟體來查詢。

總的來說,從壓縮比上來看,H.264的壓縮比率更高一些,也就是同樣的視訊,通過H.264編碼演算法壓出來的視訊容量要比VC-1的更小,但是VC-1 格式的視訊在解碼計算方面則更小一些,一般通過高效能的CPU就可以很流暢的觀看高清視訊。相信這也是目前NVIDIA Geforce 8系列顯示卡不能完全解碼VC-1視訊的主要原因。

PS&TS是兩種視訊或影片封裝格式,常用於高清片。副檔名分別為VOB/EVO和TS等;其檔案編碼一般用MPEG2/VC-1/H.264

 高清,英文為“High Definition”,即指“高解析度”。 高清電視(HDTV),是由美國電影電視工程師協會確定的高清晰度電視標準格式。現在的大螢幕液晶電視機,一般都支援1080i和720P,而一些俗稱的“全高清”(Full HD),則是指支援1080P輸出的電視機。

目前的高清視訊編碼格式主要有H.264、VC-1、MPEG-2、MPEG-4、DivX、XviD、WMA-HD以及X264。事實上,現在網路上流傳的高清視訊主要以兩類檔案的方式存在:一類是經過MPEG-2標準壓縮,以tp和ts為字尾的視訊流檔案;一類是經過WMV-HD(Windows Media Video HighDefinition)標準壓縮過的wmv檔案,還有少數檔案字尾為avi或mpg,其性質與wmv是一樣的。真正效果好的高清視訊更多地以H.264與VC-1這兩種主流的編碼格式流傳。

一般來說,H.264格式以“.avi”、“.mkv”以及“.ts”封裝比較常見。