深入淺出移動直播技術之幀率 位元速率和解析度

2021-09-02 19:41:49 字數 1088 閱讀 1397

一、幀率

一幀就是一副靜止的畫面,連續的幀就形成動畫,如電檢視象等。我們通常說幀數,簡單地說,就是在1 秒鐘時間裡傳輸的數,也可以理解為圖形處理器每秒鐘能夠重新整理幾次,通常用 fps(frames per second)表示。每一幀都是靜止的圖象,快速連續地顯示幀便形成了運動的假象。幀率影響畫面流暢度,與畫面流暢度成正比:幀率越大,畫面越流暢;幀率越小,畫面越有跳動感。由於人類眼睛的特殊生理結構,如果所看畫面之幀率高於16的時候,就會認為是連貫的,此現象稱之為視覺暫留。一般來說30fps就是可以接受的,但是將效能提公升至60fps則可以明顯提公升互動感和逼真感,但是一般來說超過75fps就不容易察覺到有明顯的流暢度提公升了。如果幀率超過螢幕重新整理率只會浪費圖形處理的能力,因為監視器不能以這麼快的速度更新,這樣超過重新整理率的幀率就浪費掉了。

電影:23.976fps(簡化為24fps)

電視(pal):25fps

電視(ntsc):29.97fps(簡化為30fps)

crt顯示器:60hz-85hz

液晶顯示器:60hz-75hz

3d顯示器: 120hz

二、位元速率

位元速率就是資料傳輸時單位時間傳送的資料位數,一般我們用的單位是kbps即千位每秒。通俗一點的理解就是取樣率或者位元率(並不等同於取樣率,取樣率的單位是hz,表示每秒取樣的次數),單位時間內取樣率越大,精度就越高,處理出來的檔案就越接近原始檔案,但是檔案體積與取樣率是成正比的,所以幾乎所有的編碼格式重視的都是如何用最低的位元速率達到最少的失真,圍繞這個核心衍生出來cbr(固定位元速率)與vbr(可變位元速率), 「位元速率」就是失真度,位元速率越高越清晰,反之則畫面粗糙而多馬賽克。舉例來看,對於乙個音訊,其位元速率越高,被壓縮的比例越小,音質損失越小,與音源的音質越接近。

三、解析度

四、位元速率、解析度對清晰度的影響

所謂「清晰」,是指畫面十分細膩,沒有馬賽克。並不是解析度越高影象就越清晰。

在位元速率一定的情況下,解析度與清晰度成反比關係:解析度越高,影象越不清晰,解析度越低,影象越清晰;在解析度一定的情況下,位元速率與清晰度成正比關係,位元速率越高,影象越清晰;位元速率越低,影象越不清晰。但是,事實情況卻不是這麼簡單:在位元速率一定的情況下,解析度在一定範圍內取值都將是清晰的;同樣地,在解析度一定的情況下,位元速率在一定範圍內取值都將是清晰的。

位元速率自適應演算法深入淺出

直播大家都不陌生了,目前主流的直播協議 rtmp hls httpflv dash,這裡先簡單介紹一下。協議rtmp 封裝格式 flvtag tsflv mp4傳輸方式 tcp流 http流 http延遲低 高低高flash hls.js 蘋果 安卓 flv.js dash.js rtmp real...

深入淺出之STL

c stl 標準模板庫 是一套功能強大的 c 模板類,提供了通用的模板類和函式,這些模板類和函式可以實現多種流行和常用的演算法和資料結構,如向量 鍊錶 佇列 棧。c 標準模板庫的核心包括以下三個元件 元件描述 容器 containers 容器是用來管理某一類物件的集合。c 提供了各種不同型別的容器,...

C 深入淺出之指標

1 指標陣列 char str 10 指標陣列,顧名思義是乙個陣列,其元素是乙個指標。上述 是定義乙個指標陣列,其陣列元素為指向字元的指標。所謂指標陣列,重頭戲在於陣列,指標可以抽象為修飾符,那麼如何來理解指標陣列呢?很簡單,的優先順序高於 因此先被結合,加上陣列名,就構成了陣列。2 陣列指標 in...