tft每日頭條

 > 科技

 > 碼流和碼率怎麼區分

碼流和碼率怎麼區分

科技 更新时间:2024-07-04 02:02:26

  無論是查線上一些花屏、卡頓,馬賽克問題,還是進行碼率自适應的功能開發,抑或進行客戶端播放器的JitterBuffer的優化,都需要編碼器發送端的配合。我們需要在編碼速度、網絡帶寬,視頻質量方面做一個權衡,進而選擇更符合場景的碼控調整方案,同時目前比較熱門的ROI編碼,編碼場景的自适應學習都跟這部分内容有關系。本文介紹下常見視頻編碼器碼率控制方案,具體的編碼器可能在實現和使用上有所差異,具體在調用API和閱讀源碼時需要進行進一步分析和了解。

  背景知識:

  視頻編碼過程中,有一個重要步驟:量化,量化屬于有損壓縮過程。量化基本決定了視頻的碼率,視頻的碼率又從一定程度上決定了視頻的質量。量化值QP越大則量化的粒度越高,壓縮率越大,碼率更小,視頻質量越低,呈現出來就是馬賽克比較大,畫面不細膩,畫面比較模糊。反之,壓縮率低,碼率大,質量高,畫面細膩,細節豐富。

  所以選擇一個适合場景的視頻碼控方案很重要,調整視頻輸出碼率其實就是在視頻編碼速度、網絡帶寬以及視頻質量之間做一個平衡。有時網絡帶寬很受限,就要優先考慮碼率大小優先的碼控方案,有些對視頻質量要求很高,要高清視頻,那就要選擇質量優先的模型。

  整體來說選擇視頻編碼碼率控制方案,可以通過下面五個因素權衡得出:

  1. 視覺質量穩定性,利于視覺主觀質量,比如清晰度,流暢度,細節等,這點和人眼的視覺原理有關,選擇人眼主動質量感受最高的模型;

  2. 即時輸出碼率,相當于每幀編碼輸出比特數,要考慮網絡帶寬因素,随着移動互聯網發展,也需要考慮wifi和無線網這塊的影響;

  3. 輸出視頻文件大小可控,利于傳輸,存儲,要看系統的空間大小;

  4. 編碼速度,不同的碼控模型也影響了編碼速度,對于低延時、實時場景要考慮,因為不同的碼控方案,計算的複雜度不同,帶來的編碼延時也有影響;

  5. 對于移動設備還需要不同編碼方式耗電量要求,因為不同模型會影響編碼和解碼複雜度,進而在移動設備編碼和播放需要的耗電量不同;

  碼率介紹:

  下面介紹不同的碼率控制模型和适用場景:

  CQP:固定QP,最簡單的碼率控制方式,每幀圖像都按照一個特定的QP來編碼,每幀編碼後的數據量有多大是未知的,既不是碼率優先模型也不是質量優先模型,不過是實現最簡單的模型;

  适用場景:一般不建議使用這種方式,因為這種方式不考慮編碼内容的複雜性,用相同的壓縮比處理每一幀。出來的視頻質量碼率都不固****定。個人覺得隻有那種非常簡單的場景,比如靜止不變的場景運動量很小的場景可以嘗試用,一遇到複雜場景,碼率波動就非常大。或者在算法研究或者驗證可以使用。

  C 音視頻開發學習資料:點擊領取→音視頻開發(資料文檔 視頻教程 面試題)(FFmpeg WebRTC RTMP RTSP HLS RTP)

  碼流和碼率怎麼區分(編碼碼流控制)(1)

  特點:

  ·瞬時碼率會随場景複雜度波動;

  ·編碼速度快,調控最簡單,每幀的QP值相同;

  ·x264和x265中支持CQP模式,libvpx不支持;

  ·H.264中QP範圍是[0, 51]。QP值越大表示越大的量化步長,編碼視頻的質量越低。QP為0表示進行無損編碼;

  CRF:(Constant Rate Factor)恒定碼率系數。把某一個”視覺質量”作為輸出目标。通過降低那些耗費碼率但是又難以用肉眼察覺的幀(高速運動或者紋理豐富)的質量提升那些靜态幀的碼率來達到此目的。

  特點:幀間QP變化,幀内宏塊的QP變化,輸出碼率未知,各幀輸出的視覺質量基本恒定,這種方式相當于固定質量模式 限制碼率峰值的方式。

  **适用場景:**适用于對視頻質量有一定要求的場合,CRF值可以簡單理解為對視頻質量期望的一個輸出固定值,希望無論是在運動複雜場景下還是在靜止簡單情況下,都希望有一個穩定的主觀視頻質量可以選擇該模式,該模式是視頻質量優先模型。視頻質量可以簡單理解為視頻的清晰度,像素的細膩程度和視頻的流暢度。

  特點:

  ·與恒定QP類似,但追求主觀感知到的質量恒定,瞬時碼率也會随場景複雜度波動,視頻幀之間或者内部宏塊之間的QP值都不一樣;

  ·對于快速運動或細節豐富的場景會适當增大量化失真(因為人眼不敏感),反之對于靜止或平坦區域則減少量化失真;

  ·CRF是x264和x265的默認碼率控制方式,也可用于libvpx;

  ·CRF值越大視頻壓縮率越高,但視頻質量越低,各codec的CRF取值範圍一般[0-51],但是一般默認值x264用23,x265庫默認為28;

  ·如果你不确定要使用什麼CRF,從默認值開始,并根據對輸出的主觀印象進行更改。如果質量沒有足夠好則較低的CRF。如果文件太大了則選擇更高的CRF。更改±6會導緻碼率大小的一半/兩倍左右的變化,±1會導緻碼率10%左右的變化。

  **CBR:(Constant Bit Rate)**恒定碼率,一定時間範圍内比特率基本保持的恒定,屬于碼率優先模型。

  **适用場景:**一般也不建議使用這種方式,雖然輸出的碼率總是處于一個穩定值,但是質量不穩定,不能充分有效利用網絡帶寬,因為這種模型不考慮視頻内容的複雜性,把所有視頻幀的内容統一對待。但是有些編碼軟件隻支持固定質量或者固定碼率方式,有時不得不用。用的時候在允許的帶寬範圍内盡可能把帶寬設置大點,以防止複雜運動場景下視頻質量很低,如果設置的不合理,在運動場景下直接就糊的看不成了。

  特點:

  ·碼率穩定,但是質量不穩定,帶寬有效利用率不高,特别當該值設置不合理,在複雜運動場景下,畫面非常模糊,非常影響觀看體驗;

  ·但是輸出視頻碼率基本穩定,便于計算視頻體積大小;

  VBR:(Variable Bit Rate)可變碼率,簡單場景分配比較大的QP,壓縮率小,質量高。複雜場景分配較小QP。得到基本穩定的視覺質量,因為人眼人眼本來就對複雜場景不敏感,缺點在于輸出碼率大小不可控。

  有兩種調控模式:質量優先模式和2PASS二次編碼模式。

  質量優先模式:

  不考慮輸出視頻文件的大小,完全按照視頻的内容複雜程度來分配碼率,這樣視頻的播放效果質量最好。

  二次編碼方式2PASS:

  第一次編碼檢測視頻内容的簡單和複雜部分,同時确定簡單和複雜的比例。第二遍編碼會讓視頻的平均碼率不變,複雜的地方分配多bit,簡單地方分配少bit。這種編碼雖然很好,但是速度會跟不上。

  **适用場景:**VBR适用于那些對帶寬和編碼速度不太限制,但是對質量有很高要求的場景。特别是在運動的複雜場景下也可以保持比較高的清晰度且輸出質量比較穩定,适合對延時不敏感的點播,錄播或者存儲系統。

  特點:

  ·碼率不穩定,質量基本穩定且非常高;

  ·編碼速度一般比較慢,點播、下載和存儲系統可以優先使用,不适合低延時、直播系統;

  ·這種模型完全不考慮輸出的視頻帶寬,為了質量,需要多少碼率就占用多少,也不太考慮編碼速度;

  ABR:(Average bit Rate)恒定平均目标碼率,簡單場景分配較低bit,複雜場景分配足夠bit,使得有限的bit數能夠在不同場景下合理分配,這類似VBR。同時一定時間内,平均碼率又接近設置的目标碼率,這樣可以控制輸出文件的大小,這又類似CBR。可以認為是CBR和VBR的折中方案,這是大多人的選擇。特别在對質量和視頻帶寬都有要求的情況下,可以優先選擇該模式,一般速度是VBR的兩倍到三倍,相同體積的視頻文件質量卻比CBR好很多。

  **适用場景:**ABR在直播和低延時系統用的比較多,因為隻編碼了一次,所以速度快,同時兼顧了視頻質量和帶寬,對于轉碼速度有要求的情況下也可以選擇該模式。B站的大部分視頻就選擇了該模式。

  特點:

  ·視頻質量整體可控,同時兼顧了視頻碼率和速度,是一個折中方案,實際用的比較多;

  ·使用過程一般要讓調用方設置,最低碼率、最高碼率和平均碼率,這些值要盡可能設置合理點;

  上面介紹了幾種碼率調控方案,在不同的編碼器中有不同的叫法和稱呼,細節可能不一樣。但是基本都是通過影響QP的大小,然後進一步影響量化過程的顆粒程度實現的。具體在使用時需要進一步參考具體編碼器實現。

  一般優先使用ABR,在速度,碼率大小,質量方面都能取得比較滿意的平衡。其它VBR、CBR、CRF都有自己的場景,在使用時需要有條件使用。

  總結思考:

  今天介紹的視頻碼控方案,是很多上層技術的基礎。其中碼率自适應技術、根據場景都動态調整編碼參數和RIO感興趣區域編碼等技術都建立在對編碼過程中碼控方案的選擇和細化上,進而影響了編碼的量化程度和量化顆粒,最終在視頻質量、速度和帶寬之間取得比較滿意的平衡點。同時這些模型在不同的編碼庫如x264或者x265上,參數設置是互斥的,有時會因為參數設置不當造成碼率失效,設置的參數不起作用,這點也需要特别注意。

  ,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关科技资讯推荐

热门科技资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved