音视频码率,采样率,帧率基础知识

音视频码率,采样率,帧率基础知识

简单来讲,采样率和比特率就像是坐标轴上的横纵坐标。 

横坐标的采样率表示了每秒钟的采样次数。 
纵坐标的比特率表示了用数字量来量化模拟量的时候的精度(在计算机里面占几个字节)。 
采样率类似于动态影像的帧数,比如电影的采样率是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。

比特率

这个词有多种翻译,比如码率等,表示经过编码(压缩)后的音频数据每秒钟需要用多少个比特来表示,而比特就是二进制里面最少的单位,要么是0,要么是1。比特率与音频压缩的关系简单的说就是比特率越高音质就越好,但编码后的文件就越大;如果比特率越少则情况刚好翻转。

码率:影响体积,与体积成正比:码率越大,体积越大;码率越小,体积越小。
码率就是数据传输时单位时间传送的数据位数,一般我们用的单位是kbps即千位每秒。也就是取样率(并不等同与采样率,采样率的单位是Hz,表示每秒采样的次数),单位时间内取样率越大,精度就越高,处理出来的文件就越接近原始文件,但是文件体积与取样率是成正比的,所以几乎所有的编码格式重视的都是如何用最低的码率达到最少的失真,围绕这个核心衍生出来cbr(固定码率)与vbr(可变码率), “码率”就是失真度,码率越高越清晰,反之则画面粗糙而多马赛克。


VBR(Variable Bitrate)动态比特率 也就是没有固定的比特率,压缩软件在压缩时根据音频数据即时确定使用什么比特率,这是以质量为前提兼顾文件大小的方式,推荐编码模式;
ABR(Average Bitrate)平均比特率 是VBR的一种插值参数。LAME针对CBR不佳的文件体积比和VBR生成文件大小不定的特点独创了这种编码模式。ABR在指定的文件大小内,以每50帧(30帧约1秒)为一段,低频和不敏感频率使用相对低的流量,高频和大动态表现时使用高流量,可以做为VBR和CBR的一种折衷选择。
CBR(Constant Bitrate),常数比特率 指文件从头到尾都是一种位速率。相对于VBR和ABR来讲,它压缩出来的文件体积很大,而且音质相对于VBR和ABR不会有明显的提高
影响声音的大小的物理要素是振幅,电脑上的声音必须也要能精确表示乐曲的轻响,所以一定要对声波的振幅有一个精确的描述,“比特”就是这样一个单位,x比特就是指把波形的振幅划为2的x次方个等级,根据模拟信号的轻响把它划分到某个等级中去,就可以用数字来表示了。比特率越高,越能细致地反映声音的轻响变化。

为了体现正常的声音信息,16bit为基本的需求,较好的cd使用的是20bit甚至24bit。CS呢?顶多顶多算及格。而声道就别提了,连mp3都是2 Channel。

当然不经过压缩文件的计算公式又不同: 声音为,数据量(位/秒)= (采样频率(Hz)*采样位数(bit)*声道数)其中,单声道的声道数为1,立体声的声道数为2。数据量*时间/8=文件总字节例如CD即为未经压缩的音频文件,采样44.1k,16位,双声道。数据量=44.1*16*2=1411kb/1024=1.38Mb,一般的MP3压缩后为128kbps如果以一张CD放一个小时计算的话,CD总量=1.38*3600/8=621MB,当然CD大约放1小时多点,顶多也就700MB。

图象应该是,数据量(位/秒)= (画面尺寸*彩色位数(bit)*帧数)数据量*时间/8=文件总字节 例如2分钟,25帧/秒,640×480分辨率,24位真彩色数字视频的不压缩的数据量约为,数据量=640x480x24*25=184320Kb=180Mb,而VCD、MKV标准编码率(加上音频)分别为1152Kbps和30Mbps(1080p高清)2分钟文件字节=180Mbx120/8=2700000KB=2636.71875MB=2.57GB,而压缩后一部90分钟高质量DVD电影可以达到9GB。


下面是通过一个wav文件的采样率来计算码率和文件大小,通过MediaInfo工具显示的文件信息如下:
概要
完整名称                             :audio\wav\adele-rolling_in_the_deep.wav
文件格式                             : Wave
文件大小                             : 38.3 MiB
长度                                    : 3分 47秒
平均混合码率                     : 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 and dwScale. 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=1、Rate=25,因此此文件视频帧率为25/1=25,可得:视频时长:4500/25=180秒。这几个数字容易理解。
2.Audio AviStreamHeader:Length=2812、Scale=16000、Rate=2,初看一头雾水,反复读资料、仔细分析才明白:对于PCM audio,nBlockAlign与dwSampleSize相等,为2,及每个音频采样为两个字节,每个音频帧的大小为1024B,而dwRate/dwScale即为采样率:16000/2=8000,因此,音频时长:
(2812 * 1024 / 2) / (16000 / 2) = 179.968秒。



--- end ---


你可能感兴趣的:(转载,other)