我是靠谱客的博主 迷人宝马,最近开发中收集的这篇文章主要介绍音频的帧概念解析,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

一般地,音频有以下几个很重要的参数:

  1. 采样频率:每秒采集数据的次数
  2. 采样精度:每次采集数据的位数
  3. 通道数:存在几路音频
  4. 比特率:针对编码格式,表示压缩编码后每秒的音频数据量大小

我们知道,正常人听觉的频率范围大约在20Hz~20kHz之间。采样频率是指将模拟声音波形进行数字化时,每秒钟抽取声波幅度样本的次数。根据奈奎斯特采样理论,为了保证声音不失真,采样频率应该在40kHz左右。常用的音频采样频率有8kHz、11.025kHz、22.05kHz、16kHz、37.8kHz、44.1kHz、48kHz等,如果采用更高的采样频率,还可以达到DVD的音质。

音频的帧的概念没有视频帧那么清晰,几乎所有视频编码格式都可以简单的认为一帧就是编码后的一副图像。但音频帧跟编码格式相关,它是各个编码标准自己实现的。因为如果以PCM(未经编码的音频数据)来说,它根本就不需要帧的概念,根据采样率和采样精度就可以播放了。比如采样率为44.1kHZ,采样精度为16位的音频,你可以算出bitrate(比特率)是44100*16kbps,每秒的音频数据是固定的44100*16/8 字节。

对采样率为44.1kHz的AAC(Advanced Audio Coding)音频进行解码时,一帧的解码时间须控制在23.22毫秒内。通常是按1024个采样点一帧。
  
分析:
1、AAC
一个AAC原始帧包含某段时间内1024个采样点相关数据。
用1024主要是因为AAC是用的1024点的mdct。

音频帧的播放时间 = 一个AAC帧对应的采样样本的个数 / 采样频率(单位为s)。

采样率(samplerate)为 44100Hz,表示每秒 44100个采样点,
所以,根据公式,

音频帧的播放时长 = 一个AAC帧对应的采样点个数 / 采样频率

则,当前一帧的播放时间 = 1024 * 1000/44100= 22.32ms(单位为ms)

48kHz采样率,
则,当前一帧的播放时间 = 1024 * 1000/48000= 21.32ms(单位为ms)

22.05kHz采样率,
则,当前一帧的播放时间 = 1024 * 1000/22050= 46.43ms(单位为ms)

2、MP3
mp3 每帧均为1152个字节, 则:

每帧播放时长 = 1152 * 1000 / sample_rate (单位:ms)

例如:sample_rate = 44100HZ时, 计算出的时长为26.122ms,这就是经常听到的mp3每帧播放时间固定为26ms的由来。

最后

以上就是迷人宝马为你收集整理的音频的帧概念解析的全部内容,希望文章能够帮你解决音频的帧概念解析所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(42)

评论列表共有 0 条评论

立即
投稿
返回
顶部