首页 > 其他分享 >即时通讯音视频开发之音频基础及编码原理

即时通讯音视频开发之音频基础及编码原理

时间:2022-12-20 10:32:36浏览次数:44  
标签:编码 编码器 音频 即时通讯 音视频 MP3 信号 量化

即时通讯应用中的实时音视频技术,几乎是IM开发中的最后一道高墙。原因在于:实时音视频技术 = 音视频处理技术 + 网络传输技术 的横向技术应用集合体,而公共互联网不是为了实时通信设计的。

比特率:
表示经过编码(压缩)后的音频数据每秒钟需要用多少个比特来表示,单位常为kbps。

响度和强度:
声音的主观属性响度表示的是一个声音听来有多响的程度。响度主要随声音的强度而变化,但也受频率的影响。总的说,中频纯音听来比低频和高频纯音响一些。

采样和采样率:
采样是把连续的时间信号,变成离散的数字信号。采样率是指每秒钟采集多少个样本。

即时通讯音视频开发之音频基础及编码原理_编码器

常见音频格式

1)WAV:是微软公司开发的一种声音文件格式,也叫波形声音文件,是最早的数字音频格式,被Windows平台及其应用程序广泛支持,压缩率低。

2)MIDI:是Musical Instrument Digital Interface的缩写,又称作乐器数字接口,是数字音乐/电子合成乐器的统一国际标准。它定义了计算机音乐程序、数字合成器及其它电子设备交换音乐信号的方式,规定了不同厂家的电子乐器与计算机连接的电缆和硬件及设备间数据传输的协议,可以模拟多种乐器的声音。MIDI文件就是MIDI格式的文件,在MIDI文件中存储的是一些指令。把这些指令发送给声卡,由声卡按照指令将声音合成出来。

3)MP3:全称是MPEG-1 Audio Layer 3,它在1992年合并至MPEG规范中。MP3能够以高音质、低采样率对数字音频文件进行压缩。应用最普遍。

4)MP3Pro:是由瑞典Coding科技公司开发的,其中包含了两大技术:一是来自于Coding科技公司所特有的解码技术,二是由MP3的专利持有者法国汤姆森多媒体公司和德国Fraunhofer集成电路协会共同研究的一项译码技术。MP3Pro可以在基本不改变文件大小的情况下改善原先的MP3音乐音质。它能够在用较低的比特率压缩音频文件的情况下,最大程度地保持压缩前的音质。

5)WMA :(Windows Media Audio)是微软在互联网音频、视频领域的力作。WMA格式是以减少数据流量但保持音质的方法来达到更高的压缩率目的,其压缩率一般可以达到1:18。此外,WMA还可以通过DRM(Digital Rights Management)保护版权。

6)RealAudio:是由Real Networks公司推出的一种文件格式,最大的特点就是可以实时传输音频信息,尤其是在网速较慢的情况下,仍然可以较为流畅地传送数据,因此RealAudio主要适用于网络上的在线播放。现在的RealAudio文件格式主要有RA(RealAudio)、RM(RealMedia,RealAudio G2)、RMX(RealAudio Secured)等三种,这些文件的共同性在于随着网络带宽的不同而改变声音的质量,在保证大多数人听到流畅声音的前提下,令带宽较宽敞的听众获得较好的音质。

7)Audible:拥有四种不同的格式:Audible1、2、3、4。Audible.com网站主要是在互联网上贩卖有声书籍,并对它们所销售商品、文件通过四种Audible.com 专用音频格式中的一种提供保护。每一种格式主要考虑音频源以及所使用的收听的设备。格式1、2和 3采用不同级别的语音压缩,而格式4采用更低的采样率和MP3相同的解码方式,所得到语音吐辞更清楚,而且可以更有效地从网上进行下载。Audible 所采用的是他们自己的桌面播放工具,这就是Audible Manager,使用这种播放器就可以播放存放在PC或者是传输到便携式播放器上的Audible格式文件。

8)AAC:实际上是高级音频编码的缩写。AAC是由Fraunhofer IIS-A、杜比和AT&T共同开发的一种音频格式,它是MPEG-2规范的一部分。AAC所采用的运算法则与MP3的运算法则有所不同,AAC通过结合其他的功能 来提高编码效率。AAC的音频算法在压缩能力上远远超过了以前的一些压缩算法(比如MP3等)。它还同时支持多达48个音轨、15个低频音轨、更多种采样率和比特率、多种语言的兼容能力、更高的解码效率。总之,AAC可以在比MP3文件缩小30%的前提下提供更好的音质。

9)Ogg Vorbis:是一种新的音频压缩格式,类似于MP3等现有的音乐格式。但有一点不同 的是,它是完全免费 、开放和没有专利限制的。Vorbis 是这种音频压缩机制的名字,而Ogg则是一个计划的名字,该计划 意图设计 一个完全开放性的多媒体系统。VORBIS也是有损压缩,但通过使用更加先进的声学模型去减少损失,因此,同样位速率(Bit Rate)编码的OGG与MP3相比听起来更好一些。即时通讯开发可以咨询蔚可云

即时通讯音视频开发之音频基础及编码原理_比特率_02

10)APE:是一种无损压缩音频格式,在音质不降低的前提下,大小压缩到传统无损格式 WAV 文件的一半。

11)FLAC:即是Free Lossless Audio Codec的缩写,是一套著名的自由音频无损压缩编码,其特点是无损压缩。

编码基本手段(1):量化和量化器

基本概念:

    1)量化和量化器:量化是把离散时间上的连续信号,转化成离散时间上的离散信号。
    2)常见的量化器有:均匀量化器,对数量化器,非均匀量化器。
    3)量化过程追求的目标是:最小化量化误差,并尽量减低量化器的复杂度(这2者本身就是一个矛盾)。

常见的量化器的优缺点:

    (a)均匀量化器:最简单,性能最差,仅适应于电话语音。
    (b)对数量化器:比均匀量化器复杂,也容易实现,性能比均匀量化器好。
    (c)非均匀(Non-uniform)量化器:根据信号的分布情况,来设计量化器。信号密集的地方进行细致的量化,稀疏的地方进行粗略量化。

语音编码器分为三种类形:(a)波形编器 、(b)声码器 、(c)混合编码器 。

波形编码器以构造出背景噪单在内的模拟波形为目标。作用于所有输入信号,因此会产生高质量的样值并且耗费较高的比特率。 而声码器 (vocoder)不会再生原始波形。这组编码器 会提取一组参数 ,这组参数被送到接收端,用来导出语音产生模形。声码器语音质量不够好。混合编码器,它融入了波形编码器和声器的长处。

波形编码器的设计常独立于信号。所以适应于各种信号的编码而不限于语音。

时域编码:

    a)PCM:pulse code modulation,是最简单的编码方式。仅仅是对信号的离散和量化,常采用对数量化。
    b)DPCM:differential pulse code modulation,差分脉冲编码,只对样本之间的差异进行编码。前一个或多个样本用来预测当前样本值。用来做预测的样本越多,预测值越精确。真实值和预测值之间的差值叫残差,是编码的对象。

c)ADPCM:adaptive differential pulse code modulation,自适应差分脉冲编码。即在DPCM的基础上,根据信号的变化,适当调整量化器和预测器,使预测值更接近真实信号,残差更小,压缩效率更高。

频域编码: 频域编码是把信号分解成一系列不同频率的元素,并进行独立编码。

    a)sub-band coding:子带编码是最简单的频域编码技术。是将原始信号由时间域转变为频率域,然后将其分割为若干个子频带,并对其分别进行数字编码的技术。它是利用带通滤波器(BPF)组把原始信号分割为若干(例如m个)子频带(简称子带)。将各子带通过等效于单边带调幅的调制特性,将各子带搬移到零频率附近,分别经过BPF(共m个)之后,再以规定的速率(奈奎斯特速率)对各子带输出信号进行取样,并对取样数值进行通常的数字编码,其设置m路数字编码器。将各路数字编码信号送到多路复用器,最后输出子带编码数据流。对不同的子带可以根据人耳感知模型,采用不同量化方式以及对子带分配不同的比特数。
    b)transform coding:DCT编码。

声码器

    channel vocoder: 利用人耳对相位的不敏感。
    homomorphic vocoder:能有效地处理合成信号。
    formant vocoder: 以用语音信号的绝大部分信息都位于共振峰的位置与带宽上。
    linear predictive vocoder:最常用的声码器。

混合编码器

波形编码器试图保留被编码信号的波形,能以中等比特率(32kbps)提供高品质语音,但无法应用在低比特率场合。声码器试图产生在听觉上与被编码信号相似的信号,能以低比特率提供可以理解的语音,但是所形成的语音听起来不自然。

混合编码器结合了2者的优点:

    RELP: 在线性预测的基础上,对残差进行编码。机制为:只传输小部分残差,在接受端重构全部残差(把基带的残差进行拷贝)。
    MPC: multi-pulse coding,对残差去除相关性,用于弥补声码器将声音简单分为voiced和unvoiced,而没有中间状态的缺陷。
    CELP: codebook excited linear prediction,用声道预测其和基音预测器的级联,更好逼近原始信号。
    MBE: multiband excitation,多带激励,目的是避免CELP的大量运算,获得比声码器更高的质量。

标签:编码,编码器,音频,即时通讯,音视频,MP3,信号,量化
From: https://blog.51cto.com/u_15906303/5954257

相关文章

  • 视频数据和音频数据计算
    视频数据:分辨率为1920x1080(2K),每秒30帧的原始RGB视频数据,1秒的数据量约为1.4Gb,也就是1.4Gbps的码率1920*1080*8*3=49766400bit(8:一个字节中的8bit,3:RGB......
  • Qt音视频开发06-海康sdk内核linux客户端
    一、前言海康sdk的示例在官方是提供了的,但是无论UI还是交互简直是宇宙无敌的垃圾,猜测应该是初学者编写的,估计练手用的,所以老早就想把这个linux支持集成到自己的示例中,既然......
  • 【MID音频读取和分析】基于matlab的MID音频文件读取和分析
    目录1.软件版本2.理论知识3.核心代码4.操作步骤与仿真结论5.参考文献6.完整源码获得方式1.软件版本matlab2013b2.理论知识这个部分,不涉及什么原理,主要是对MIDI......
  • 使用 DirectSound 录制麦克风音频
    使用DirectSound录制麦克风音频本文所有代码均可在以下仓库找到https://gitcode.net/PeaZomboss/learnaudios目录是demo/dscapture之前那篇文章简单介绍了DirectSoun......
  • 抖音视频如何去水印保存到手机相册?教你一招,轻松搞定!
    抖音视频如何去水印保存到手机相册?如何才能保存无水印的视频?其实,去除视频上的抖音号水印,没有那么麻烦的,还很简单,只需要借助第三方免费工具,即可轻松去除水印,保存无水印视频......
  • ffmpeg-音频处理
    音频去除音频中1秒的空白ffmpeg.exe-i.\xy.m4a-afsilenceremove=stop_periods=-1:stop_duration=1:stop_threshold=-30dBout.wav音频拼接ffmpeg-i"concat:a.m4......
  • 音频变速 | libsonic 开源库的介绍与实践
    在做音视频编辑的时候,大家关注更多的是视频开发,热衷于FFmpeg、OpenGL这些技巧,实际上音频开发也是很重要的,甚至可以说音频开发比视频开发更难一点。对音频的常见处理就是变......
  • 即时通讯音视频开发编码H.264的特点与优势
    即时通讯应用中的实时音视频技术,几乎是IM开发中的最后一道高墙。原因在于:实时音视频技术=音视频处理技术+网络传输技术的横向技术应用集合体,而公共互联网不是为了实时......
  • 开发者工具|15款音视频开发者必备实用工具
    对于音视频开发者来说,有个高效的辅助工具能大大提升开发效率。今天博主推荐这些年来桌面必备的工具,如果您觉得对你有用,可以收藏防止下次找不到。......
  • 封装格式+音视频同步
    1.封装格式的概念封装格式(也叫容器)就是将已经编码压缩好的视频流、音频流及字幕按照一定的方案放到一个文件中,便于播放软件播放。一般来说,视频文件的后缀名就是它的封装......