ITPub博客

首页 > 应用开发 > Java > 直播软件开发之Java音视频解决方案:音视频基础知识

直播软件开发之Java音视频解决方案:音视频基础知识

Java 作者:云豹kj的晨曦 时间:2020-09-14 16:58:45 0 删除 编辑

概念

       从信息论的观点来看,描述信源的数据是信息和数据冗余之和,即:数据=信息+数据冗余。音频信号在时域和频域上具有相关性,也即存在数据冗余。将音频作为一个信源,音频编码的实质是减少音频中的冗余。

        拟信号是可以听见的声音经过音频线或话筒的传输都是一系列的模拟信号,模拟信号是可以听见的。而数字信号就是用一堆数字记号(二进制1和0)来记录声音,而不是用物理手段来保存信号,实际上我们听不到数字信号。

        比较一下模拟时代的录音制作与数码时代的区别:模拟时代是把原始信号以物理方式录制到磁带上(当然在录音棚里完成),然后加工、剪接、修改,最后录制到磁带、LP等广大听众可以欣赏的载体上。这一系列过程全是模拟的,每一步都会损失一些信号,到了听众手里自然是差了好远,更不用说什么HI-FI(高保真)了。数码时代是第一步就把原始信号录成数码音频资料,然后用硬件设备或各种软件进行加工处理,这个过程与模拟方法相比有无比的优越性,因为它几乎不会有任何损耗。对于机器来说这个过程只是处理一下数字而已,当然丢码的可能性也有,但只要操作合理就不会发生。最后把这堆数字信号传输给数字记录设备如CD等,损耗自然小很多。


音频处理流程

        模拟信号经过-> 采样-> 量化-> 编码->数字信号.

        现实生活中,我们听到的声音都是时间连续的,我们把这种信号叫模拟信号。模拟信号(连续信号)需要量化成数字信号(离散的、不连续的信号)以后才能在计算机中使用。如下图所示量化过程分为5个步骤:

  1.  模拟信号: 现实生活中的声音表现为连续的、平滑的波形,其横坐标为时间轴,纵坐标表示声音的强弱。
  2.  采样: 按照一定的时间间隔在连续的波上进行采样取值,如下图所示取了10个样。
  3.  量化: 将采样得到的值进行量化处理,也就是给纵坐标定一个刻度,记录下每个采样的纵坐标的值。
  4.  编码: 将每个量化后的样本值转换成二进制编码。
  5.  数字信号: 将所有样本二进制编码连起来存储在计算机上就形成了数字信号。

 

采样 (sample)

       数码音频系统是通过将声波波形转换成一连串的二进制数据来再现原始声音的(原始声音是模拟信号),实现这个步骤使用的设备是模/数转换器(A/D转换器,或者ADC,或者analog to digital convert)。它以每秒上万次的速率对声波进行采样,每一次采样都记录下了原始模拟声波在某一时刻的状态,称之为样本。将一串的样本连接起来,就可以描述一段声波了,把每一秒钟所采样的数目称为采样频率或采率,单位为HZ(赫兹)。采样频率越高所能描述的声波频率就越高。采样率决定声音频率的范围(相当于音调),可以用数字波形表示。以波形表示的频率范围通常被称为带宽。要正确理解音频采样可以分为采样的位数和采样的频率。


采样率(sample rate)

     单位时间内对媒体对象的采样次数,单位Hz。采样频率是指录音设备在一秒钟内对声音信号的采样次数,采样频率越高声音的还原就越真实越自然。在当今的主流采集卡上,采样频率一般共分为 22.05KHz、44.1KHz(44100Hz)、48KHz三个等级,22.05 KHz只能达到FM广播的声音品质,44.1KHz则是理论上的CD音质界限,48KHz则更加精确一些。对于高于48KHz的采样频率人耳已无法辨别出来了,所以在电脑上没有多少使用价值。
  5kHz的采样率仅能达到人们讲话的声音质量。
  11kHz的采样率是播放小段声音的最低标准,是CD音质的四分之一。
  22kHz采样率的声音可以达到CD音质的一半,目前大多数网站都选用这样的采样率。
  44kHz的采样率是标准的CD音质,可以达到很好的听觉效果。


采样位数(采样精度)

       一个采样用多少个bit存放,常用的是16bit(这就意味着上述的量化过程中,纵坐标的取值范围是0-65535,声音是没有负值的)。

       电脑中的声音文件是用数字0和1来表示的。所以在电脑上录音的本质就是把模拟声音信号转换成数字信号。反之,在播放时则是把数字信号还原成模拟声音信号输出。采样位数可以理解为采集卡处理声音的解析度。这个数值越大,解析度就越高,录制和回放的声音就越真实。采集卡的位是指采集卡在采集和播放声音文件时所使用数字声音信号的二进制位数。采集卡的位客观地反映了数字声音信号对输入声音信号描述的准确程度。8位代表2的8次方0~256,16 位则代表2的16次方-32768~32767。


通道数(channel)

       分为单声道mono;立体声stereo。当然还存在更多的通道数。举个列子,声道多,效果好,两个声道,说明只有左右两边有声音传过来,四声道,说明前后左右都有声音传过来

        PCM中的声音数据没有被压缩,如果是单声道的文件,采样数据按时间的先后顺序依次存入。如果是双声道的文件,采样数据按时间先后顺序交叉的存入,比如:左声道数据、右声道数据、左声道数据、右声道数据…。


比特率(bitrate)

    也叫码率。针对编码格式,表示压缩编码后每秒的音频数据量大小。计算公式:比特率 = 采样率 x 采样精度 x 声道数。单位kbps,这里的k为1000


有损和无损

       根据采样和量化的过程可知,音频编码最多只能做到无限接近自然界的信号,至少目前的技术还不可能将其完全一样。这是因为自然界的信号是连续的,而音频编码后的值是离散的。因此,任何数字音频编码方案都是有损的,这也就意味着任何的音频都不可能完全还原出自然界的声音。
  在计算机应用中, PCM编码能够达到最高保真水平。它已经被广泛地应用于素材保存及音乐欣赏,包括CD、DVD以及 WAV文件等等。因此,PCM约定俗成了无损编码,但是这并不意味着PCM就能够确保信号绝对保真,PCM也只能做到最大程度的无限接近。


音频传输

       这里主要是指网络传输,通过网络把音频数据传给对方。语音和音乐两种场景下有明显的区别。对于语音来说,实时性要求很高,主要用RTP/UDP做承载,由于UDP是不可靠传输,会丢包乱序等,影响语音质量,所以要采取相应的措施,主要有PLC(丢包补偿)、FEC(前向纠错)、重传、jitterbuffer等。cuiyaonan2000@163.com
对于音乐来说,以前是播放本地音乐文件,近些年随着网络带宽的加大,可以播放云端的音乐文件了。播放时要把音乐文件传给播放器,一般是边播放边下载,播放音乐对实时性要求不高,一般用HTTP/TCP做承载,也就不存在丢包乱序等问题了。


音频编码

       根据编码方式的不同,音频编码技术分为如下三种.一般来说,波形编码的话音质量高,但编码速率也很高;参数编码的编码速率很低,产生的合成语音的音质不高;混合编码使用参数编码技术和波形编码技术,编码速率和音质介于它们之间。

  1. 波形编码
  2. 参数编码
  3. 混合编码


本文转载自 https://blog.csdn.net/cuiyaonan2000/article/details/103970656?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522160007345119195188329383%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=160007345119195188329383&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_v2~rank_blog_v1-6-103970656.pc_v2_rank_blog_v1&utm_term=%E9%9F%B3%E8%A7%86%E9%A2%91&spm=1018.2118.3001.4187,仅作分享使用


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/69978278/viewspace-2719487/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2020-07-02

  • 博文量
    25
  • 访问量
    11585