zoukankan      html  css  js  c++  java
  • [原创]桓泽学音频编解码(8):关于MP3和AAC量化器设计的研究(补充)

    我认为我之前关于AAC和MP3量化的的想法稍微复杂了一点。

    以AAC的量化为例

    AAC和MP3的量化器与反量化器的基本公式是

    基本公式1 :  Q(x) = Q1(x) + MAGIC_NUMBER.  

    MAGIC_NUMBER定参数提取,得到Q1(x)后看他和y轴的焦点就可以得到MAGIC_NUMBER

    基本公式2 :Q1(x) = Q2(x)^(3/4);

    这里的(3/4)是人为设定目的是让Q2的量化步长降低,降低1.1db

    基本公式3 :Q2(x) = x*(2^(arg1));

    这一步骤实际就是一个基本的均匀量化。是量化步长为2^(arg1)的均匀量化。

    深入分析一下,

    我们把Q(x)  = x/C. 叫做以常量C为步长的均匀量化。比如我们做量化时,x = x/128.或是x = x/3.

    当C == 2^cexp时,我们可以用cexp表示定义量化步长。选取以2为底是因为,我们的技术系统是2进制的。用其它的表示有点浪费。可以通过对2的修正达到改变量化步长的目的。当然也和信号的统计特性有关。

    故我们可以知道基本公式3里的arg1就是我刚刚说的cexp。

    基本公式4:arg1 = -0.25*(scalefactor - common_scalefactor).

    这里乘以0.25还是表示要降低量化步长。scalefactor 是每个自带的因子, common_scalefactor是对scalefactor归零化处理。是降低scalefactor幅值的方法。

    综述:AAC和MP3的量化器只是对Q2(x) = x*(2^(arg1))的反复修正。没有太高深的技巧。

  • 相关阅读:
    链式栈的C++实现
    Java面试之设计模式二
    前端资源
    Java面试之异常
    Java面试之序列化
    Java面试之重写(Override)与重载(Overload)
    项目视图展示
    Java面试之集合
    Java面试之SSH框架面试题集锦
    JDBC技术
  • 原文地址:https://www.cnblogs.com/gaozehua/p/2815316.html
Copyright © 2011-2022 走看看