碼流 / 碼率 / 比特率 / 幀速率 / 分辨率 / 高清

GOP/ 碼流 /碼率 / 比特率 / 幀速率 / 分辨率

GOP(Group of picture)

關鍵幀的週期,也就是兩個IDR幀之間的距離,一個幀組的最大幀數,一般而言,每一秒視頻至少需要使用 1 個關鍵幀。增加關鍵幀個數可改善質量,但是同時增加帶寬和網絡負載。

需要說明的是,通過提高GOP值來提高圖像質量是有限度的,在遇到場景切換的情況時,H.264編碼器會自動強制插入一個I幀,此時實際的GOP值被縮短了。另一方面,在一個GOP中,P、B幀是由I幀預測得到的,當I幀的圖像質量比較差時,會影響到一個GOP中後續P、B幀的圖像質量,直到下一個GOP開始纔有可能得以恢復,所以GOP值也不宜設置過大。

同時,由於P、B幀的複雜度大於I幀,所以過多的P、B幀會影響編碼效率,使編碼效率降低。另外,過長的GOP還會影響Seek操作的響應速度,由於P、B幀是由前面的I或P幀預測得到的,所以Seek操作需要直接定位,解碼某一個P或B幀時,需要先解碼得到本GOP內的I幀及之前的N個預測幀纔可以,GOP值越長,需要解碼的預測幀就越多,seek響應的時間也越長。

 

CABAC/CAVLC

H.264/AVC標準中兩種熵編碼方法,CABAC叫自適應二進制算數編碼,CAVLC叫前後自適應可變長度編碼,

CABAC:是一種無損編碼方式,畫質好,X264就會捨棄一些較小的DCT係數,碼率降低,可以將碼率再降低10-15%(特別是在高碼率情況下),會降低編碼和解碼的速速。

CAVLC將佔用更少的CPU資源,但會影響壓縮性能。

      幀:當採樣視頻信號時,如果是通過逐行掃描,那麼得到的信號就是一幀圖像,通常幀頻爲25幀每秒(PAL制)、30幀每秒(NTSC制);
      場:當採樣視頻信號時,如果是通過隔行掃描(奇、偶數行),那麼一幀圖像就被分成了兩場,通常場頻爲50Hz(PAL制)、60Hz(NTSC制);
      幀頻、場頻的由來:最早由於抗干擾和濾波技術的限制,電視圖像的場頻通常與電網頻率(交流電)相一致,於是根據各地交流電頻率不同就有了歐洲和中國等PAL制的50Hz和北美等NTSC制的60Hz,但是現在並沒有這樣的限制了,幀頻可以和場頻一樣,或者場頻可以更高。
      幀編碼、場編碼方式:逐行視頻幀內鄰近行空間相關性較強,因此當活動量非常小或者靜止的圖像比較適宜採用幀編碼方式;而場內相鄰行之間的時間相關性較強,對運動量較大的運動圖像則適宜採用場編碼方式。

 

Deblocking,開啓會減少塊效應。

FORCE_IDR,是否讓每個I幀變成IDR幀,如果是IDR幀,支持隨機訪問。

frame,tff,bff

        --frame 將兩場合並作爲一幀進行編碼,--tff Enable interlaced mode (開啓隔行編碼並設置上半場在前),--bff Enable interlaced mode。

 

        PAFF 和MBAFF:當對隔行掃描圖像進行編碼時,每幀包括兩個場,由於兩個場之間存在較大的掃描間隔,這樣,對運動圖像來說,幀中相鄰兩行之間的空間相關性相對於逐行掃描時就會減小,因此這時對兩個場分別進行編碼會更節省碼流。

       對幀來說,存在三種可選的編碼方式:將兩場合並作爲一幀進行編碼(frame 方式)或將兩場分別編碼(field 方式)或將兩場合並起來作爲一幀,但不同的是將幀中垂直相鄰的兩個宏塊合併爲宏塊對進行編碼;前兩種稱爲PAFF 編碼,對運動區域進行編碼時field 方式有效,對非運區域編碼時,由於相鄰兩行有較大的相關性,因而frame 方式會更有效。當圖像同時存在運動區域和非運動區域時,在MB 層次上,對運動區域採取field 方式,對非運動區域採取frame 方式會更加有效,這種方式就稱爲MBAFF,預測的單位是宏塊對。

 

 

碼流 / 碼率 

碼流(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爲單位)

 

 

高清視頻

目前的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”封裝比較常見。

 

 

位率(定碼率,變碼率)

 

位率又稱爲“碼率”。指單位時間內,單個錄像通道所產生的數據量,其單位通常是bps、Kbps或Mbps。可以根據錄像的時間與位率估算出一定時間內的錄像文件大小。  位率是一個可調參數,不同的分辨率模式下和監控場景下,合適的位率大小是不同的。在設置時,要綜合考慮三個因素:   
1、分辨率   
分辨率是決定位率(碼率)的主要因素,不同的分辨率要採用不同的位率。總體而言,錄像的分辨率越高,所要求的位率(碼率)也越大,但並不總是如此,圖1說明了不同分辨率的合理的碼率選擇範圍。所謂“合理的範圍”指的是,如果低於這個範圍,圖像質量看起來會變得不可接受;如果高於這個範圍,則顯得沒有必要,對於網絡資源以及存儲資源來說是一種浪費。   
2、場景   
監控的場景是設置碼率時要考慮的第二個因素。在視頻監控中,圖像的運動劇烈程度還與位率有一定的關係,運動越劇烈,編碼所要求的碼率就越高。反之則越低。因此在同樣的圖像分辨率條件下,監控人多的場景和人少的場景,所要求的位率也是不同的。   
3、存儲空間   
最後需要考量的因素是存儲空間,這個因素主要是決定了錄像系統的成本。位率設置得越高,畫質相對會越好,但所要求的存儲空間就越大。所以在工程實施中,設置合適的位率即可以保證良好的回放圖像質量,又可以避免不必要的資源浪費。   
位率類型   
位率類型又稱爲碼率類型,共有兩種——動態碼率(VBR)和固定碼率(CBR)。所謂動態碼率是指編碼器在對圖像進行壓縮編碼的過程中,根據圖像的狀況實時調整碼率高低的過程,例如當圖像中沒有物體在移動時,編碼器自動將碼率調整到一個較低的值。但當圖像中開始有物體移動時,編碼器又自動將碼率調整到一個較高的值,並且實時根據運動的劇烈程度進行調整。這種方式是一種圖像質量不變,數據量變化的編碼模式。   
固定碼率是指編碼器在對圖像進行編碼的過程中,自始至終採用一個固定的碼率值,不論圖像情況如何變化。這種方式是碼率量不變,而圖像質量變化的編碼模式。在動態碼率模式下,我們在硬盤錄像機上設置的位率值稱爲“位率上限”。意思是我們人爲設定一個編碼碼率變化的上限,可以低於,但不能高於。根據這個位率值,我們可以估算出一定時間內的存儲容量的上限值。   
在固定碼率模式下,在硬盤錄像機上設置的位率值就是編碼時所使用的位率值,根據這個數值,我們可以精確地估算出一定時間內的存儲容量。

 

QP(quantizer parameter)

介於0~31之間,值越小,量化越精細,圖像質量就越高,而產生的碼流也越長。 

 

PSNR

 

允許計算峯值信噪比(PSNR,Peak signal-to-noise ratio),編碼結束後在屏幕上顯示PSNR計算結果。開啓與否與輸出的視頻質量無關,關閉後會帶來微小的速度提升。

 

 

profile level

 

分別是BP、EP、MP、HP:
1、BP-Baseline Profile:基本畫質。支持I/P 幀,只支持無交錯(Progressive)和CAVLC;
2、EP-Extended profile:進階畫質。支持I/P/B/SP/SI 幀,只支持無交錯(Progressive)和CAVLC;
3、MP-Main profile:主流畫質。提供I/P/B 幀,支持無交錯(Progressive)和交錯(Interlaced),也支持CAVLC 和CABAC 的支持;
4、HP-High profile:高級畫質。在main Profile 的基礎上增加了8x8內部預測、自定義量化、無損視頻編碼和更多的YUV 格式;

H.264規定了三種檔次,每個檔次支持一組特定的編碼功能,並支持一類特定的應用。
1)基本檔次:利用I片和P片支持幀內和幀間編碼,支持利用基於上下文的自適應的變長編碼進行的熵編碼(CAVLC)。主要用於可視電話、會議電視、無線通信等實時視頻通信;
2)主要檔次:支持隔行視頻,採用B片的幀間編碼和採用加權預測的幀內編碼;支持利用基於上下文的自適應的算術編碼(CABAC)。主要用於數字廣播電視與數字視頻存儲;
3)擴展檔次:支持碼流之間有效的切換(SP和SI片)、改進誤碼性能(數據分割),但不支持隔行視頻和CABAC。主要用於網絡的視頻流,如視頻點播。

 

 

Reference

 

指兩個P幀之間的距離。

 

主碼流/副碼流

 

主碼流位率高,圖像質量高,便於本地存儲;副碼流位率低,圖像質量低,便於網絡傳輸。

 

總結:

編碼參數不能只知道幀率,碼率,I幀間隔,QP因子,更要知道其他參數的作用。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章