音视频码率的计算

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/LS7011846/article/details/96724472

一、前言

        音视频处理相关,首先需要面临的是音视频多媒体的比特率问题,比特率也是码率,一个音频比特率为 128kb/s,即每秒128k bit,8bit=1Byte,也就是这个音频每秒钟占用16KB的存储空间,而如果涉及到多声道就应该乘以相应的倍数。

        由于视频由视频图像数据与音频数据组装而成,因此 对于视频来说,就除了音频audio之外,还要加上video的大小。

        上述音频视频的码率都会涉及到编解码压缩比例的问题。

二、正文

音频码率相关

        首先是音频码率的计算,一个音频的基本属性假设为: 采样率:44.1KHZ,码率:128kb/s,通道数:双声道。

  1. 采样率——44.1KHZ,每秒钟对音频的采样频次。
  2. 通道数——双声道(立体音)左右耳听到差异的声音,有多少个通道数就有多少个维度的音频数据。
  3. 比特率(码率)——128kb/s,每秒钟占多少kb。
  4. 采样位数 采样样本幅度量化,衡量声音波动变化的一个参数,也可以说是声卡的分辨率。即纵轴刻度的精确度。假设采样位数如下:

        ——1 字节(也就是8bit) 只能记录 256 个数, 也就是只能将振幅划分成 256 个等级;

        ——2 字节(也就是16bit) 可以细到 65536 个数, CD 标准

        于是先放一张图如下所示,这张图是一个音频的波形图,波形的横轴设为X,纵轴为Y。Y轴的精度就是采样位数,而X轴的精度则代表每秒钟采样频次即采样率,因此一个音频的比特率即单位时间所占空间大小为:比特率=采样率 * 采样位数 * 通道数。

                image

        而又由于音频格式的不同,所采用的压缩编码方式皆不相同,因此在计算音频对应比特率时,还应乘以压缩的倍率,如0.2等。

        比特率=采样率 * 采样位数 * 通道数 * 压缩比例

视频码率相关

        由于视频由视频图像及音频声音封装而成,因此视频的码率计算需要分为两部分:视频图像的码率 + 视频中音频的码率。而音频的码率我们已经在上面计算过了,因此接下来要说的是视频图像的码率。
                [外链图片转存失败(img-gG80Vz76-1563692986235)(https://user-images.githubusercontent.com/15123920/61588173-728b0380-abc9-11e9-8159-1bb4bc51703e.png)]

        如上图所示,是一段视频,如果要计算一个未经过压缩的视频图像的码率,则需要图像的分辨率(如1080*720)属性,图像位深度(如8或16)以及每秒帧数(如60,90)。即公式如下:

        帧率 * 像素宽 * 像素长 * 位深度 = 视频图像码率。如一个视频属性为:60fps(帧率),480*720p,32位位深,则视频图像码率 = 60 * 480 * 720 * 32。

        整个未压缩的视频码率 = 音频码率 + 视频图像码率;由于当前视频均采用编码压缩,因此还需要乘以倍率,视频码率 = 音频码率* 音频压缩比率 + 视频图像码率* 视频压缩比率。而计算出的视频码率只能大约得估算出真正的视频码率,因为其中还有一些其他的影响参数。

三、结语

        在写这篇博客的时候,也发现了有个根据视频参数自动计算视频码率的网站,https://toolstud.io/video/bitrate.php ,感觉很不错,推荐。

展开阅读全文

没有更多推荐了,返回首页