数据压缩(十二)——MPEG音频压缩编码

本文探讨了MPEG音频压缩编码的程序设计框架,包括通过滤波器获取子带、计算缩放因子、应用心理声学模型进行掩蔽和码率分配。重点介绍了心理声学模型,解释了临界频带的概念,以及掩蔽值计算的重要性。同时,还提到了代码调试的过程。
摘要由CSDN通过智能技术生成

实验要求:理解程序整体框架;感知音频编码的设计思想;理解心理声学;码率分配。

程序设计基本框架

/************************************************************************
*
* main
*
* PURPOSE:  MPEG II Encoder with
* psychoacoustic models 1 (MUSICAM) and 2 (AT&T)
*
* SEMANTICS:  One overlapping frame of audio of up to 2 channels are
* processed at a time in the following order:
* (associated routines are in parentheses)
*
* 1.  Filter sliding window of data to get 32 subband
* samples per channel.
* (window_subband,filter_subband)
*
* 2.  If joint stereo mode, combine left and right channels
* for subbands above #jsbound#.
* (combine_LR)
*
* 3.  Calculate scalefactors for the frame, and 
* also calculate scalefactor select information.
* (*_scale_factor_calc)
*
* 4.  Calculate psychoacoustic masking levels using selected
* psychoacoustic model.
* (psycho_i, psycho_ii)
*
* 5.  Perform iterative bit allocation for subbands with low
* mask_to_noise ratios using masking levels from step 4.
* (*_main_bit_allocation)
*
* 6.  If error protection flag is active, add redundancy for
* error protection.
* (*_CRC_calc)
*
* 7.  Pack bit allocation, scalefactors, and scalefactor select
*headerrmation onto bitstream.
* (*_encode_bit_alloc,*_encode_scale,transmission_pattern)
*
* 8.  Quantize subbands and pack them into bitstream
* (*_subband_quantization, *_sample_encoding)
*
************************************************************************/

1、第一条线:通过滤波器得到32个子带
2、计算框架的缩放因子,计算SCALEFACTOR选择信息。
3、使用哪一种心里声学模型
4、掩蔽,比特分配
5、量化、采样、编码

音频编码的设计思想

在这里插入图片描述

编码器原理图分为两条线,上面一条线(核心)做滤波器分解成多个子带,下面一条线(难度大)做心理声学模型和比例因子等。
时-频分析的矛盾:等带宽的滤波器组与人类听觉系统的临界频带 不对应 ,在低频区域,单个子带会覆盖多个临界频带。在这种情况下,量化比特数不能兼每个临界频带。

心理声学模型:计算信号中不可听觉感知的部分

临界频带: 当某个纯音被以它为中心频率、且具有一定带 宽的连续噪声所掩蔽时,如果该纯音刚好被听到时的功率等 于这一频带内的噪声功率,这个带宽为临界频带宽度。
掩蔽值计算的思路

void psycho_0(double SMR[2][SBLIMIT], int nch, unsigned int scalar[2][3][SBLIMIT], FLOAT sfreq) {
   
  int ch, sb, gr;
  int minscaleindex[2][SBLIMIT]; 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值