帧、采样率、Hz、比特率

                                  音频的帧、采样率、Hz、比特率

下面的概念非官方,只是自己的理解

1.采样率:

         表示每秒采集多少次声音数据,以为单位,大部分会将其转换为ms(毫秒)计算。

         eg.44100Hz(秒)

2.位深度:

        表示每次采集声音数据的大小,单位为位(bit)。

        eg. 在Android中的AudioFormat.ENCODING_PCM_16BIT表示一次采集16bit。

3.通道数:

       音频的声道数

       1个采样点只针对一个声道,而实际上可能会有一或多个声道。

总结一:

       由1,2,3概念得:

        一次的采集数据大小*一秒的采集次数*通道数=采样率*位深度*通道数=一秒的采集数据总数(bit)

 

4.比特率(码率)

       每秒传送的比特(bit)数。单位为 bps(Bit Per Second),比特率越高,传送的数据越大,音质越好.

        公式: 

                 比特率 =采样率 x 采用位数 x声道数.    

                 1kbps=1000bit/s=1000/8(B/s). 

                 1Mbps=1024Kbps=1024*1024bit/s

                  注意:大写K----1024,小写k------1000

例题1:

已知音频码率为m(单位kbps),视频码率为v(单位B/s),传输时间为t(单位s),根据上面的公式,计算输出文件大小(单位 M)???

统一音视频码率的单位:

m2=m*1000/8(B/s)

文件大小=音频的大小+视频大小=(音频码率+视频码率)*t=(m2+v)*t(单位B)=(m*1000/8+v)*t/1024/1024(单位M)

 

5.帧:

       对于声音来说,播放一下的单位,对视频来说,就是一个画面。在目前的声卡驱动程序中,其内部缓冲区也是采用Frame作.       为单位来分配和管理的。

       1单位的Frame=1个采样点的字节数×声道数

        公式:

                 音频帧的播放时间=采集一帧的时间=一个AAC帧对应的采样样本的个数/采样频率   

 

大前提:采样率为44100Hz,位深度为8bit,通道数1个。

例题1:

         构建一个ACC帧需要1024个sample的采样数据,计算该帧的播放时间???

                   一个sample=采集一次

                    1024/44100=0.02322s=23.22ms(四舍五入)

例题2:

        mp3 每帧均为1152个字节,采样率为44100Hz,计算该帧的播放时间???

       已知:             

                由大前提可知:一次的采样大小=位深度*通道数=8bit=1byte(字节)

       所以

                播放时间*采样率*一次的采样大小=1152

       ==》播放时间=1152/采样率*1=1152/44100=0.02608s(四舍五入)=26.08ms

 

由前5个概念,我们可以直到帧率(f)与码率(m)的关系:

       RGB24每帧的大小:size=width×heigth×3 Byte

       RGB32每帧的大小是:size=width×heigth×4 Byte

       YUV420每帧的大小是:size=width×heigth×1.5 Byte

       m=f*size*8 bps

 

参考文档:

                https://www.cnblogs.com/renhui/p/7463287.html

                 https://www.cnblogs.com/cai1432452416/p/11828008.html(视频转换(压缩)时比特率和分辨率对照表)

### Opus 编码在 16kHz 采样率下的压缩方法与配置 Opus 是一种高效的音频编解码器,支持多种比特率采样率配置。对于 16kHz采样率,Opus 提供了灵活的比特率选择以及编码模式调整功能。以下是实现 Opus 编码在 16kHz 下的压缩方法及配置的详细说明。 #### 比特率范围 Opus 支持自适应可变比特率,其范围可以从 10 kbit/s 到 52 kbit/s[^1]。然而,在实际应用中,对于语音通信场景,推荐使用更高的比特率以确保音质。例如,20 kbit/s 至 40 kbit/s 是常见的选择。 #### 编码模式 Opus 提供了两种主要的编码模式:**语音优化模式**(VoIP)**音频优化模式**(音乐)。对于 16kHz采样率,通常选择语音优化模式以提高语音信号的清晰度压缩效率。 #### 配置示例 以下是一个使用 libopus 库进行 Opus 编码的 Python 示例代码,演示如何为 16kHz 采样率配置 Opus 编码器: ```python import opuslib # 初始化 Opus 编码器 sampling_rate = 16000 # 16 kHz 采样率 channels = 1 # 单声道 application = opuslib.APPLICATION_VOIP # 语音优化模式 bitrate = 20000 # 设置比特率为 20 kbit/s encoder = opuslib.Encoder(sampling_rate, channels, application) encoder.bitrate = bitrate # 设置比特率 # 假设 input_audio 是一个包含 PCM 数据的字节流 input_audio = b'\x00' * 320 # 示例:320 字节的 PCM 数据(20ms ) # 编码音频数据 encoded_data = encoder.encode(input_audio, frame_size=20) # 20ms 大小 print(f"Encoded data: {encoded_data}") ``` #### 关键参数解释 - **采样率**:设置为 16000 Hz。 - **通道数**:单声道(`channels=1`)适用于大多数语音通信场景。 - **应用类型**:`APPLICATION_VOIP` 表示语音优化模式。 - **比特率**:根据需求调整比特率,推荐值为 20 kbit/s 至 40 kbit/s。 #### 注意事项 在实际应用中,需要确保输入音频数据的格式与 Opus 编码器的要求一致。例如,输入数据应为 16 位 PCM 格式,并且大小需与编码器的大小匹配。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值