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


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


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

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


    以下是通过一个wav文件的採样率来计算码率和文件大小,通过MediaInfo工具显示的文件信息例如以下:

    概要

    完整名称                             :audiowavadele-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秒。这几个数字easy理解。

    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秒。




  • 相关阅读:
    纯JS实现俄罗斯方块,打造属于你的游戏帝国
    Java 集合框架
    项目(1-2)ES32获取mpu9250传入数据库
    项目(1-1)ES32获取mpu9250数据网页交互显示
    开发(三)ESP32 硬件配置
    开发(二) ardunio批量固件上传地址
    项目(1-1)人脸识别
    海康相机开发(1) SDK安装和开发
    ARDUNIO IMU processing姿态数据可视化
    ESP8266 tcp透传AP+STA
  • 原文地址:https://www.cnblogs.com/mengfanrong/p/3759567.html
Copyright © 2020-2023  润新知