音频相关pcm,增益

PCM音频编码

PCM音频编码 - 简书

什么是分贝 (dB)?

20db代表的是声音的增益,它的数值是以对数的形式表示的。在音频工程中,db是一种常用的度量单位,用于描述声音的音量、音频信号的增减和功率的放大或缩小等。20db表示声音的增益是原来的10倍,也就是说,当声音的强度增加20db时,它的声音强度会增加到原来的10倍。例如,如果原来的声音强度是50db,那么当增加20db时,它的声音强度将变为70db。
需要注意的是,在音频工程中,db的增减是以对数的形式计算的,所以它的增益是以指数形式增长的,因此20db的增益比10db大,50db的增益比40db大。这也是为什么在音频工程中,我们经常使用db作为度量单位的原因。

AAC通常是1024个采样点作为一个编码单元

mp3是1152

比如:MP3 48k, 1152个采样点,每帧则为 24毫秒

1152/48000= 0.024 秒 = 24毫秒;

如果是 16位, 双声道,  1152*(16/8)*2= 1152*2*2 = 4608个字节,
除非是  8  位,单声道,   1152*(8/8)*1 = 1152 个字节

详解 WebRTC 高音质低延时的背后 — AGC(自动增益控制)_webrtc agc_音视频开发老马的博客-CSDN博客

FPGA学习笔记之——信号处理基础概念_fpga中怎么将数值换算成db_苑同学的博客-CSDN博客

16bit的pcm双声道转单声道

16bit的pcm双声道转单声道_arseyli的博客-CSDN博客

PCM音频振幅知识

PCM音频振幅知识_zidan的博客-CSDN博客_音频振幅

数字音频存储大小。采样频率、量化深度数越高,声音质量也越高,保存这段声音所用的空间也就越大。立体声(双声道)存储大小是单声道文件的两倍。即:文件大小(B)=采样频率(Hz)×录音时间(S)×(量化深度/8)×声道数(单声道为1,立体声为2)
如:录制1分钟采样频率为44.1KHz,量化深度为16位,立体声的声音(CD音质),文件大小为:
44.1×1000×60×(16/8)×2=10584000B≈10.09M

二.P

(640条消息) FFmpeg通过volume filter进行音频数据的增益_ffmpeg filter volume_passionkk的博客-CSDN博客

//将1.wav音量增大2倍并保存为2.wav,如果想降低2倍,参数为volume=0.5
ffmpeg.exe -i 1.wav -af volume=2  2.wav
FFmpeg视频播放器开发-FFmpeg视频音量调节(六) - 知乎 (zhihu.com)

(640条消息) [FFMPEG]进行音频音量调整_ffmpeg 调整音量_酷咪兔的博客-CSDN博客

PCM 音频编码

PCM信号未经过任何编码和压缩处理(无损压缩)。与模拟信号比,它不易受传送系统的杂波及失真的影响。动态范围宽,可得到音质相当好的效果。编码上采用A律13折线编码。

A律13折线

A律是PCM非均匀量化中的一种对数压扩形式。数字脉冲编码调制(PCM)是目前模拟信号数字化的基本方法,PCM包括采样、量化、编码三个步骤,其中量化是对抽样值的取值离散,根据量化间隔的不同选取分为均匀量化和非均匀量化,非均匀量化可以有效地改善信号的量化信噪比。语音信号的量化常采用ITU建议的两种对数形式的非均匀量化压缩特性:A律和μ律,A律编码主要用于30/32路一次群系统, A律PCM用于欧洲和中国。

具体可以看文章

声道格式                           : L R

音响中的R 、L、C分别表示什么_百度知道

他们回答的都错的R 、L、是代表左,右声道 C 就是中置的意思拉!就是你的放在电视上的中置音箱。

视音频数据处理入门:PCM音频采样数据处理

视音频数据处理入门:PCM音频采样数据处理_雷霄骅的博客-CSDN博客_pcm采样

详解音频编解码的原理、演进和应用选型等

https://www.jianshu.com/p/6b4c481f4294

即时通讯开发中音频编解码的原理、演进和应用选型-wecloud-ChinaUnix博客

ADTS(Audio Data Transport Stream)头之于AAC

ADTS(Audio Data Transport Stream)头之于AAC_coloriy的博客-CSDN博客_audio data transport stream (adts)

]# dnf  install  sox
 

]# soxi  output.opus 

Input File     : 'output.opus'
Channels       : 1
Sample Rate    : 48000
Precision      : 16-bit
Duration       : 00:00:55.96 = 2686080 samples ~ 4197 CDDA sectors
File Size      : 906k
Bit Rate       : 129k
Sample Encoding: Opus
Comments       : 
language=eng
handler_name=SoundHandler
major_brand=isom
minor_version=512
compatible_brands=isomiso2avc1mp41
encoder=Lavf58.45.100

[root@localhost shipin]# 
 

48000*16

pin]# ffprobe  -loglevel  quiet  -print_format  json  -show_format  -show_streams   -i  output.opus 
{
    "streams": [
        {
            "index": 0,
            "codec_name": "opus",
            "codec_long_name": "Opus (Opus Interactive Audio Codec)",
            "codec_type": "audio",
            "codec_time_base": "1/48000",
            "codec_tag_string": "[0][0][0][0]",
            "codec_tag": "0x0000",
            "sample_fmt": "fltp",
            "sample_rate": "48000",
            "channels": 1,
            "channel_layout": "mono",
            "bits_per_sample": 0,
            "r_frame_rate": "0/0",
            "avg_frame_rate": "0/0",
            "time_base": "1/48000",
            "start_pts": 0,
            "start_time": "0.000000",
            "duration_ts": 2686200,
            "duration": "55.962500",
            "disposition": {
                "default": 0,
                "dub": 0,
                "original": 0,
                "comment": 0,
                "lyrics": 0,
                "karaoke": 0,
                "forced": 0,
                "hearing_impaired": 0,
                "visual_impaired": 0,
                "clean_effects": 0,
                "attached_pic": 0,
                "timed_thumbnails": 0
            },
            "tags": {
                "language": "eng",
                "handler_name": "SoundHandler",
                "major_brand": "isom",
                "minor_version": "512",
                "compatible_brands": "isomiso2avc1mp41",
                "encoder": "Lavf58.45.100"
            }
        }
    ],
    "format": {
        "filename": "output.opus",
        "nb_streams": 1,
        "nb_programs": 0,
        "format_name": "ogg",
        "format_long_name": "Ogg",
        "start_time": "0.000000",
        "duration": "55.962500",
        "size": "905842",
        "bit_rate": "129492",
        "probe_score": 100
    }
}
[root@localhost shipin]# 
 

audio驱动之简单介绍

  • PCM :PCM(Pulse-code modulation) 是脉冲编码调制,PCM信号的两个重要指标是采样频率 和 量化精度 ,目前,CD音频的采样频率通常为44100Hz,量化精度是16bit。播放音乐时,应用程序从存储介质中读取音频数据(MP3、WMA、AAC…),经过解码后,最终送到音频驱动程序中的就是PCM数据;在录音时,音频驱动不停地把采样所得的PCM数据送回给应用程序,由应用程序完成压缩、存储等任务。所以,音频驱动的两大核心任务就是:

  • playback:如何把用户空间的应用程序发过来的PCM数据,转化为人耳可以辨别的模拟音频信号
  • capture:把mic拾取到的模拟信号,经过采样、量化,转换为PCM数据送回给用户空间

音频驱动主要实现一下3个部分的功能:
(1)播放声音(playback)
(2)录音(capture)
(3)声音控制(control)

运行adb shell ls -l /dev/snd,我们可以看到当前平台注册的声卡驱动设备。
主要分为以下几类:

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值