[音视频拉普]无损格式flac是怎么无损的?假无损是什么概念?

文章的拉普是潮汕话的吹牛的意思,这篇文章大家看个乐呵就好。 可能不是太准确,我也不敢说是科普。
  首先我们生活中听到的人声是模拟信号,而存储在计算机里的是数字信号。这两个区别是一个是连续的,一个是离散的。上大学的时候一直都很迷糊,数字跟模拟,真的区别很大吗?
百度百科
  这个其实跟人的敏感度有关。比如电视,常规24帧能够表达连续的一秒。也就是24张图画。让我们看起来跟现场一样。跟Π一样,这个东西要分可以分无限大,但是通常我们只会取其中的几位来表达。而音频也是一样,早期我们用的电话为8k采样。因为人的语音主要频率成分集中在4KHz以下,根据采样定理,8K采样就能保证无失真。(引用自百度)随着生活发展,在00年-10年这段时间mp3(物理)开始风靡全国。那会音频开始提升,44.1k开始成为主流。至今96k成了新标准。说实话,8k听起来确实没有44.1k好。但是再往上,我的设备能力有限,听不出来。音频信息

  有了以上的认知,我们大概知道了,数字信号只是将模拟信号进行定时采样而已。这也就是音视频压缩技术中的采样。我们小时候学过圆的面积,圆的一种算法是用正多边形去分割计算,分的越多越准确,采样也是这样,采样数越多,越接近现实。接着就是量化。采样决定了x轴,而量化就决定了y轴,通常最原始的容量差距就体现在了采样跟量化上(我对声道的理解是需求,跟压缩无关)。把声的上限分255个等级(8bit)跟65535(16bit)个等级。你会选那个?当然是65535,255(以前的小霸王的8bit风确实很魔性)很容易出现噪声,当然现在也有232跟 224这两种量化等级的音频,也有浮点型的。量化等级对应着音频里的位深,也就是常说的24bit,32bit。
  以上介绍了原始数据的参数思维,接着就flac的压缩了,flac基于原始数据上使用了lpc(线性预测)算法,该算法是根据音频模拟数据的分布特点做的,有点像预测的概念,能够使用少量数据表达冗余数据。所谓冗余就是可以被合并表示的数据。经典的冗余处理有lz系列的算法,像lz77之类的。这系列的算法特点就是无损。这也是为什么flac有无损噱头的原因,目前看到主流的编码器给flac分了8个等级,等级越高对编码器的压力越大,计算阶数越多,在 FLAC 音频编解码器中使用了 0 到 4 阶的线性预测编码预测器。flac的压缩等级是设定阶数,阶数越高预测值可能越准确,商跟余数会越小,flac也是变长编码的,数值越小,要用的位数就越少,容量占用就越小。这也就是flac的压缩秘密,如果数据冗余度越高,压缩率就越高。上面的介绍可能还是比较抽象。想象一下,你要表达1~100,原本你要写printf("1 2 3 4 … 100 “);,现在用循环表达式for(int i=1; i<100;i++)printf(”%d ",i);就可以了。这是不是压缩了你的代码长度。当然,方法2效率可能没一高,编码原理也是如此,用时间换取空间。flac算法通常压缩率在20 ~ 60左右。
  介绍了flac的无损,接着就是要介绍假无损了。
  假无损情况1,使用设备软件\设备采集pcm数据。然后编码为mp3、aac。这两种格式是有损编码,数据源已经被损了。再编码为flac也不是原始数据了。对比pcm编码的flac可能会偏小。
  假无损情况2,一首歌,它的音源就是8bit的小霸王游戏机音乐,你转成32bit,这也是假无损。8bit就是8bit,你转32bit还是那样。但是pcm数据是8bit的4倍。
  假无损情况3,采样率欺诈,这个情况很多。有的商家骗人不懂,将采样拉大,看参数是不一样,解码出来的数据也比原来大,原来的bd音轨可能就是48k的,被活生生拉到96k(现在比较少了,因为有好心网友直接分享,基本不会做这种没意义的事)
  题外话,如果你对音质要求很高,又想刻录一些音频,建议使用一些高档软件跟高档声卡,因为集成声卡双声道可能还好,超过了双声道不一定支持,另外就是你的耳机支持的等级够不够的问题。只有设备条件跟bd音轨条件一致才是音质最佳的。当然专业刻录这块我也没有研究有哪些软件。
  本期拉普就到这里了。心情好就拉普一些东西,虽然不是什么干货。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值