視頻碼率

轉自:http://blog.csdn.net/ameyume/article/details/7308504ide

視頻碼率,幀率和分辨率到底哪個影響電影的清晰度工具


 

碼率:影響體積,與體積成正比:碼率越大,體積越大;碼率越小,體積越小。this

碼率就是數據傳輸時單位時間傳送的數據位數,通常咱們用的單位是kbps即千位每秒。也就是取樣率(並不等同與採樣率,採樣率的單位是Hz,表示每秒採樣的次數),單位時間內取樣率越大,精度就越高,處理出來的文件就越接近原始文件,可是文件體積與取樣率是成正比的,因此幾乎全部的編碼格式重視的都是如何用最低的碼率達到最少的失真,圍繞這個核心衍生出來cbr(固定碼率)與vbr(可變碼率), 「碼率」就是失真度,碼率越高越清晰,反之則畫面粗糙而多馬賽克。編碼


 

下面是經過一個wav文件的採樣率來計算碼率和文件大小,經過MediaInfo工具顯示的文件信息以下:spa

概要.net

完整名稱 :audio\wav\adele-rolling_in_the_deep.wav視頻

文件格式 : Waveblog

文件大小 : 38.3 MiB圖片

長度 : 3分 47秒ci

平均混合碼率 : 1 411 Kbps

 

音頻

ID : 0

文件格式 : PCM

格式設置,Endianness : Little

編碼設置ID : 1

編碼設置ID/提示信息 : Microsoft

長度 : 3分 47秒

碼率 : 1 411.2 Kbps

聲道 : 2聲道

採樣率 : 44.1 KHz

位深度 : 16位

大小 : 38.3 MiB (100%)

 

1.碼率計算公式:

碼率=採樣率 x 位深度 x 聲道

因此,上面文件的碼率= 44.1Khz x 16位 x 2聲道 = 1411.2 Kbps

 

2.文件大小 = 碼率 x 時長 = 1411.2 Kbps x (3 x 60 + 47 )s = 1411.2Kbps x 227s

=38102.4 Kb

38102.4 Kb / 1024 Kb/M = 37.2M

近似等於mediainfo工具顯示的文件大小38.3M。

注:此計算公式對未壓縮的wav格式文件有效,不適用於mp3等被壓縮的文件。
 


 

幀率:影響畫面流暢度,與畫面流暢度成正比:幀率越大,畫面越流暢;幀率越小,畫面越有跳動感。若是碼率爲變量,則幀率也會影響體積,幀率越高,每秒鐘通過的畫面越多,須要的碼率也越高,體積也越大。

幀率就是在1秒鐘時間裏傳輸的圖片的幀數,也能夠理解爲圖形處理器每秒鐘可以刷新幾回,


 

分辨率:影響圖像大小,與圖像大小成正比:分辨率越高,圖像越大;分辨率越低,圖像越小。


 

清晰度

在碼率必定的狀況下,分辨率與清晰度成反比關係:分辨率越高,圖像越不清晰,分辨率越低,圖像越清晰。
在分辨率必定的狀況下,碼率與清晰度成正比關係,碼率越高,圖像越清晰;碼率越低,圖像越不清晰。

 

帶寬、幀率

例如在ADSL線路上傳輸圖像,上行帶寬只有512Kbps,但要傳輸4路CIF分辨率的圖像。按照常規,CIF分辨率建議碼率是512Kbps,那麼照此計算就只能傳一路,下降碼率勢必會影響圖像質量。那麼爲了確保圖像質量,就必須下降幀率,這樣一來,即使下降碼率也不會影響圖像質量,但在圖像的連貫性上會有影響。


 

 

avi幀率 dwScale,dwRate

轉自:http://yixiangongzhu.blog.163.com/blog/static/19736320320111123111753465/
 

 

msdn上說dwRate/dwScale纔是播放速率。
視頻中每秒播放的幀數可能不是整數,好比多是29.97等,
注意到在AVISTREAMINFO結構中,因此屬性都是整型變量表示的,因此小數只能
用兩個整數相除獲得,這樣就須要用兩個整數(dwRate和dwScale)來獲得播放速率。
好比速率是29.97,那麼能夠用dwRate=2997,dwScale=100獲得
若是速率是29.9,那麼能夠用dwRate=299,dwScale=10獲得

 

在avi文件中包含有AviMainHeader,AviStreamHeader等頭部信息,其中有如下幾個字段:Start、Length、Scale、Rate,有資料中介紹:

In AviMainHeader:

The dwStart and dwLength fields specify the starting time of the AVI file and the length of the file. The units are defined bydwRate anddwScale. The dwStart field is usually set to zero.

The dwScale and dwRate fields are used to specify the general time scale that the file will use. In addition to this time scale, each stream can have its own time scale. The time scale in samples per second is determined by dividing dwRate by dwScale.

In AviStreamHeader:

dwScale is used together with dwRate to specify the time scale that this stream will use.

Dividing dwRate by dwScale gives the number of samples per second.

For video streams, this rate should be the frame rate.

For audio streams, this rate should correspond to the time needed fornBlockAlign bytes of audio, which for PCM audio simply reduces to the sample rate.

爲了理解,咱們拿一個實際的avi文件來分析一下:

1.Video AviStreamHeader:Length=4500、Scale=一、Rate=25,所以此文件視頻幀率爲25/1=25,可得:視頻時長:4500/25=180秒。這幾個數字容易理解。

2.Audio AviStreamHeader:Length=28十二、Scale=16000、Rate=2,初看一頭霧水,反覆讀資料、仔細分析才明白:對於PCM audio,nBlockAlign與dwSampleSize相等,爲2,及每一個音頻採樣爲兩個字節,每一個音頻幀的大小爲1024B,而dwRate/dwScale即爲採樣率:16000/2=8000,所以,音頻時長:

(2812 * 1024 / 2) / (16000 / 2) = 179.968秒。

相關文章
相關標籤/搜索