20世纪70年代开始,人们就有了通过互联网传输音频和视频的想法,但直到2000年后,数字音频和数字视频才真正开始大规模增长。 之前文章写过网页加载流程,而数字音视频与普通的网页加载有着显著的区别。网页加载在一定程度上允许更长的加载时间(3 秒内),即使加载过程中卡顿一下,用户体验也不会太差。而音视频必须以定量的速率连续播放,且不能出现中断,否则会严重影响用户体验,所以,大多数人不会接受观看卡顿的视频。大规模增长的因素首先,计算机的强大性能与麦克风、摄像头设备的普及率,能够轻松处理音视频数据的输入和输出。其次,互联网带宽的大规模扩张,极大提升了网络的速度。这些发展意味着网络可以承载更大量的流量。之前普遍使用电话呼叫,它相对占用较少的带宽,但电话服务费用较高。通过利用现有带宽在互联网上传输语音数据,可以有效降低电话账单。例如,微信等通讯应用允许用户通过其互联网连接进行免费语音通话,利用 IP 网络设备承载语音数据,这种服务方式被称为「IP语音」或「Internet电话」。我们来介绍下数字音频和数字视频的细节:数字音频音频波是一维声波,当它进入耳朵时,鼓膜开始振动,引发微小骨头的震动,这些振动向大脑发送神经脉冲,最终被听者感知为「声音」。类似地,当声波碰触麦克风时,麦克风会产生一个电信号,该信号以时间为函数来表示声音的振幅。通过模数转换器(ADC, Analog Digital Vonverter),声音被转换为数字形式,ADC 接收电压作为输入并输出二进制数值。相反的过程是通过数模转换器(DAC, Digital-toAnalog Converter)将数字值转换为模拟电压,扬声器将模拟电压转换为声波,使人们能够听到声音。
音频压缩
为了减少带宽需求和传输时间,音频通常会经过压缩处理,尽管音频数据的传输速率通常比视频数据低得多。压缩通常由两种算法组成:一种用于在发送端压缩数据,另一种用于在接收端解压数据,它们分别被称为编码(encoding)算法和解码(decoding)算法。在许多应用程序中,多媒体文件只需进行一次编码,但可能会被解码多次,例如 YouTube 上的视频播放,存储在服务器上只需要一次编码,但是会被解码几百万次、几千万次。这种编解码不一致被称为「不对称性」,这也意味着编码算法通常较慢且需要昂贵的硬件支持,而解码算法通常需要快速且简单的实现。因此,许多实用的压缩系统会以缓慢、复杂的编码算法为代价,用来实现快速、简单的解码算法。而对于直播的音频和视频,如 IP 语音呼叫,缓慢的编码让人无法接受,编码必须能够实时动态执行。相比于存储在磁盘上的音频或视频,实时多媒体使用不同的算法,通常会适度减少压缩程度。数字视频人类眼睛有一个特点,就是当一幅图像出现在视网膜上时,它会停留几秒钟才会慢慢消失。如果一系列图像以每秒50幅的速度出现,人眼就不会察觉到这些图像之间的间隔,所以视频系统正是利用了这一特性来制造连续的动画效果。