AAC采用MDCT进行时频变换。

在编码端,以block为单位取出N个sample,乘以合适的window function后再进行MDCT.N通常为2048,256.

每个输入到MDCT的sample block与前一个block有50%的overlap。

假设有3个1024的frame(A,B,C),那第一个进行MDCT的input sample block为(A,B),第二个进行MDCT的input sample block为(B,C).两个input sample block overlap的部分为frame B,即50%的overlap.

AAC MDCT

关于input sample block在spec中描述如下:

AAC MDCT

MDCT计算出频谱系数X(i,k)公式如下:

AAC MDCT

不同的window sequence, N的取值如下:

AAC MDCT

对于long_sequence,overlap后的2048个sample进行MDCT,输出为1024个频谱系数。

window可以选择KBD或者sine:

AAC MDCT

在进行MDCT时,可能会遇得到window switch的情况,

AAC MDCT

 在解码端,对频谱系数进行IMDCT

AAC MDCT

MDCT与IMDCT并不可逆,即IMDCT变换后的结果并不是原始信号。

IMDCT的结果通过overlap + add后(当前frame的前半部分和前一个frame的后半部分相加),可还原出原始信号。

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-08-12
  • 2021-08-18
  • 2022-02-20
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2021-07-21
  • 2022-12-23
  • 2021-09-11
  • 2022-12-23
  • 2021-11-26
  • 2021-11-24
相关资源
相似解决方案