zoukankan      html  css  js  c++  java
  • MP3的采样率和比特率

      我们听mp3,看电影都会注意到两个参数,常见的有采样率44.1KHz,比特率192Kbps,那么什么是采样率,什么是比特率?他们是什么关系呢?下面就我们就来简单做个解释:

      把模拟音频信号转成数字音频信号的过程称作采样,简单地说就是通过波形采样的方法记录1秒钟长度的声音,需要多少个数据点。eg:44.1KHz采样率的声音就是要花费44000个数据点来描述1秒钟的声音波形。原则上采样率越高,声音质量越好;采样频率一般共分为22.05KHz、44.1KHz、48KHz三个等级;22.05 KHz只能达到FM广播的声音品质,44.1KHz则是理论上的CD音质界限,48KHz则已达到DVD音质了。

      采样率是指将声音(模拟信号)转换成mp3(数字信号)时的采样频率,也就是单位时间内采样多少点数据。(一个采样点数据有8(甚至更多)个比特。)

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

      可以这样讲,采样率和比特率就像是坐标轴上的横纵坐标。横坐标的采样率表示了每秒钟的采样数据点。纵坐标的比特率表示了用数字量来量化模拟量的时候的精度。

      采样率类似于动态影像的帧数,比如电影的采样率是24赫兹,PAL制式的采样率是25赫兹,NTSC制式的采样率是30赫兹。当我们把采样到的一个个静止画面再以采样率同样的速度回放时,看到的就是连续的画面。同样的道理,把以44.1kHZ采样率记录的CD以同样的速率播放时,就能听到连续的声音。显然,这个采样率越高,听到的声音和看到的图像就越连贯。[当然,人的听觉和视觉器官能分辨的采样率是有限的,基本上高于44.1kHZ采样的声音,绝大部分人已经觉察不到其中的分别了。]

      而声音的位数相当于画面的颜色数,表示每个取样的数据量,当然数据量越大,回放的声音越准确,不至于把开水壶的叫声和火车的鸣笛混淆。同样的道理,对于画面来说就是更清晰和准确,不至于把血和西红柿酱混淆。[不过受人的器官的机能限制,16位的声音和24位的画面基本已经是普通人类的极限了,更高位数就只能靠仪器才能分辨出来了。比如电话就是3kHZ取样的7位声音,而CD是44.1kHZ取样的16位声音,所以CD就比电话更清楚。]

      当你理解了以上这两个概念,比特率就很容易理解了。以电话为例,每秒3000点取样,每个取样是7比特,那么电话的比特率是21000。而CD是每秒44100点取样,两个声道,每个取样是13位PCM编码,所以CD的比特率是44100*2*13=1146600,也就是说CD每秒的数据量大约是144KB,而一张CD的容量是74分等于4440秒,就是639360KB=640MB。

      声音其实是一种能量波,因此也有频率和振幅的特征,频率对应于时间轴线,振幅对应于电平轴线。波是无限光滑的,弦线可以看成由无数点组成,由于存储空间是 相对有限的,数字编码过程中,必须对弦线的点进行采样。采样的过程就是抽取某点的频率值,很显然,在一秒中内抽取的点越多,获取得频率信息更丰富,为了复 原波形,一次振动中,必须有2个点的采样,人耳能够感觉到的最高频率为20kHz,因此要满足人耳的听觉要求,则需要至少每秒进行40k次采样,用 40kHz表达,这个40kHz就是采样率。我们常见的CD,采样率为44.1kHz。光有频率信息是不够的,我们还必须获得该频率的能量值并量化,用于表示信号强度。量化电平数为2的整数次幂,我们常见的CD位16bit的采样大小,即2的16次方。采样大小相对采样率更难理解,因为要显得抽象点,举个简单例子:假设对一个波进行8次采样,采样点分别对应的能量值分别为A1-A8,但我们只使用2bit的采样大小,结果我们只能保留A1-A8中4个点的 值而舍弃另外4个。如果我们进行3bit的采样大小,则刚好记录下8个点的所有信息。采样率和采样大小的值越大,记录的波形更接近原始信号。

      要算一个PCM音频流的码率是一件很轻松的事情,采样率值×采样大小值×声道数bps。一个采样率为44.1KHz,采样大小为16bit,双声道的 PCM编码的WAV文件,它的数据速率则为44.1K×16×2=1411.2Kb/s。我们常说128K的MP3,对应的WAV的参数,就是这个 1411.2Kb/s,这个参数也被称为数据带宽,它和ADSL中的带宽是一个概念。将码率除以8,就可以得到这个WAV的数据速率,即176.4KByte/s。这表示存储一秒钟采样率为44.1KHz,采样大小为16bit,双声道的PCM编码的音频信号,需要176.4KB的空间,1分钟则约为10.34M,这对大部分用户是不可接受的,尤其是喜欢在电脑上听音乐的朋友,要降低磁盘占用,只有2种方法,降低采样指标或者压缩。降低指标是不可取的,因此专家们研发了各种压缩方案。

      16位二进制数的最小值是0000000000000000,最大值是1111111111111111,对应的十进制数就是0和65535,也就是最大和最小值之间的差值是65535,也就是说,它量化的模拟量的动态范围可以差65535,也就是96.32分贝,所以,量化精度只和动态范围有关,和频率响应没关系。动态范围定在96分贝也是有道理的,人耳的无痛苦极限声压是90分贝,96分贝的动态范围在普通应用中足够使用,所以96分贝动态范围内的模拟波,经量化后,不会产生削波失真的。

      声音的位数就相当于画面的颜色数,表示每个取样的数据量,当然数据量越大,回放的声音越准确,不至于把开水壶的叫声和火车的鸣笛混淆。同样的道理,对于画面来说就是更清晰和准确,不至于把血和西红柿酱混淆。不过受人的器官的机能限制,16位的声音和24位的画面基本已经是普通人类的极限了,更高位数就只能靠仪器才能分辨出来了。比如电话就是3kHZ取样的7位声音,而CD是44.1kHZ取样的16位声音,所以CD就比电话更清楚。

      如今市面上所有的主流产品都是16位的采集卡,而并非有些无知商家所鼓吹的64位乃至128位,他们将采集卡的复音概念与采样位数概念混淆在了一起。如今功能最为强大的采集卡系列采用的EMU10K1芯片虽然号称可以达到32位,但是它只是建立在Direct Sound加速基础上的一种多音频流技术,其本质还是一块16位的声卡。应该说16位的采样精度对于电脑多媒体音频而言已经绰绰有余了。 很多人都说,就算从原版CD抓轨,再刻录成CD,重放的音质也是不一样的,这个也是有道理的,那么,既然0101这样的二进数是完全克隆的,重放怎么会不一样呢?那是因为,时基问题造成的数模互换时的差别,并非是克隆过来的二进制数变了,二进制数一个也没变,时基误差不一样,数模转换后的模拟波的频率和源相比就会有不一样。

    备注:

      MPEG 1 Layer 3是常见的MP3编码的音频文件,而所谓的MPEG 2 Layer 3其实只是22050HZ采样率的MP3,MPEG 2.5 Layer 3也是采用更底采样率的MP3。所以,MPEG 2 Layer 3、MPEG 2.5 Layer 3根本没有采用44100HZ或48000HZ采样率。由于采样率的偏底,所以MPEG 2 Layer 3、MPEG 2.5 Layer 3音质应该不会比MPEG 1 Layer 3的音质好。

  • 相关阅读:
    JAVA基础--线程
    Flutter: SliverAppBar 应用程序栏与滚动视图集成,以便它可以根据滚动偏移量在高度上变化
    Flutter: MediaQuery
    Dart: puppeteer库
    Flutter: 监听App显示,隐藏
    Dart: 解析html字符串
    Dart: 编码和解码各种存档和压缩格式
    Dart: 执行shell命令
    运行Chrome浏览器如何添加Options
    Flutter 删除AppBar的返回icon
  • 原文地址:https://www.cnblogs.com/guanghe/p/10020120.html
Copyright © 2011-2022 走看看