视频码率,帧率和分辨率的联系与区别

视频码率,帧率和分辨率到底哪一个影响电影的清晰度

 

码率:影响体积,与体积成正比:码率越大,体积越大;码率越小,体积越小。

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

 

下面是通过一个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 就是代表 1 秒会采样 44100 次

所以,上面文件的码率 = 44100次 x 16位 x 2声道 =  1411200 bps

1411200 bps / (1024b/k) = 1378.125 kbps

 

2.文件大小 = 码率 x 时长 = 1378.125 Kbps x (3 x 60 + 47 )s = 1378.125 Kbps x 227 s

 = 312834.375 Kb

312834.375 Kb / 8 bits/Byte= 39104.297 KB

39104.297 KB/ 1024 KB/M = 38.188MB

近似等于mediainfo工具显示的文件大小38.3M。从mediainfo中显示的“平均混合码率                     : 1 411 Kbps”可以看出,mediainfo里的44.1K并不是按照44100来计算的,就真的当成了44.1K了。

注:此计算公式对未压缩的wav格式(PCM数据)文件有效,不适用于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秒。

 

 

 

 

本文详细介绍了如何利用Python语言结合MySQL数据库开发一个学生管理系统。通过这一过程,读者不仅能够掌握系统设计的基本思路,还能学习到如何使用Python进行数据库操作。该系统涵盖了用户界面设计、数据验证以及数据库的增删改查等多个关键环节。 Python作为一种高级编程语言,以简洁易懂著称,广泛应用于数据分析、机器学习和网络爬虫等领域,同时也非常适合用于快速开发数据库管理应用。MySQL是一个广泛使用的开源关系型数据库管理系统,具有轻量级、高性能、高可靠性和良好的编程语言兼容性等特点,是数据存储的理想选择。在本系统中,通过Python的pymysql库实现了与MySQL数据库的交互。 pymysql是一个Python第三方库,它允许程序通过类似DB-API接口连接MySQL数据库,执行SQL语句并获取结果。在系统中,通过pymysql建立数据库连接,执行SQL语句完成数据的增删改查操作,并对结果进行处理。 系统采用命令行界面供用户操作。程序开始时,提示用户输入学生信息,如学号、姓名和各科成绩,并设计了输入验证逻辑,确保数据符合预期格式,例如学号为1至3位整数,成绩为0至100分的整数。 数据库设计方面,系统使用名为“test”的数据库和“StuSys”表,表中存储学生的学号、姓名、各科成绩及总成绩等信息。通过pymysql的cursor对象执行SQL语句,实现数据的增删改查操作。在构建SQL语句时,采用参数化查询以降低SQL注入风险。 系统在接收用户输入时进行了严格验证,包括正则表达式匹配和数字范围检查等,确保数据的准确性和安全性。同时,提供了错误处理机制,如输入不符合要求时提示用户重新输入,数据库操作出错时给出相应提示。 在数据库操作流程中,用户可以通过命令行添加学生信息或删除记录。添加时会检查学号是否重复以避免数据冲突,删除时需用户确认。通过上述分析,本文展示了从
评论 19
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值