数据压缩原理实验6_实验报告
2017-07-09 21:08
232 查看
MPEG音频编码实验
一、实验原理1、MPEG-1 Audio LayerII编码器原理图
2、编码器说明
输入声音信号经过一个多相滤波器组,变换到多个子带。同时经过“心理声学模型”计算以频率为自变量的噪声掩蔽阈值。量化和编码部分用信掩比SMR决定分配给子带信号的量化位数,使量化噪声<掩蔽域值。最后通过数据帧包装将量化的子带样本和其它数据按照规定的帧格式组装成比特数据流。
(1)多相滤波器组,用来分割子带
划分子带的方法有两种:线性划分和非线性划分
线性划分可能一个子带覆盖好几个临界频带
(2)
<1>量化和编码 – 比例因子的取值和编码
对各个子带每12个样点进行一次比例因子计算。先定出12个样点中绝对值的最大值。查比例因子表中比这个最大值大的最小值作为比例因子。用6比特表示。 第2层的一帧对应36个子带样值,是第1层的三倍,原则上要传三个比例因子。为了降低比例因子的传输码率,采用了利用人耳时域掩蔽特性的编码策略。每帧中每个子带的三个比例因子被一起考虑,划分成 特定的几种模式。根据这些模式,1个、2个或3个比例因 子和比例因子选择信息(每子带2比特)一起被传送。如 果一个比例因子和下一个只有很小的差别,就只传送大 的一个,这种情况对于稳态信号经常出现。 使用这一算法后,和第1层相比,第2层传输的比例因 子平均减少了2个,即传输码率由22.5Kb/s降低到了 7.5Kb/s。
<2>量化和编码 – 比特分配及编码
在调整到固定的码率之前
先确定可用于样值编码的有效比特数
这个数值取决于比例因子、比例因子选择信息、比特分配信息 以及辅助数据所需比特数
比特分配的过程
对每个子带计算掩蔽-噪声比MNR,是信噪比SNR – 信掩比 SMR,即:MNR = SNR – SMR
<3>量化和编码 – 子带样值的量化和编码
输入以12个样本为一组,每组样本经过时间-频率变换 之后进行一次比特分配并记录一个比例因子
二、实验流程
1、输出音频的采样率和目标码率
2、选择某个数据帧,输出
该帧所分配的比特数
该帧的比例因子
该帧的比特分配结果
三、关键代码分析
采样率的输出
if (frameNum == 25) { #if YTXT fprintf(p_ytxt, "采样率:%.1f kHz\n", s_freq[header.version][header.sampling_frequency]); fflush(p_ytxt); #endif
目标码率的输出
#if YTXT fprintf(p_ytxt, "目标码率:%d kbps ", bitrate[header.version][header.bitrate_index]); fflush(p_ytxt); #endif }
该帧所分配的比特数
#if YTXT if (frameNum == 25) { fprintf(p_ytxt,"该帧所分配的比特数=%d\n", adb); }//add by ying fflush(p_ytxt); #endif
该帧的比例因子
if (frameNum == 25) { int i, j, k; for (i = 0; i < nch; i++) for (j = 0; j < frame.sblimit; j++) for (k = 0; k < 3; k++) { #if YTXT fprintf(p_ytxt,"Channel%d:\t%d\t%d\t%d\n", i + 1,scalar[i][0][j], scalar[i][1][j], scalar[i][2][j]); fflush(p_ytxt); #endif } }
比特分配结果
if (frameNum == 25)//add by ying { int i, j; for(i=0;i<2;i++) for (j = 0; j < frame.sblimit; j++) { #if YTXT fprintf(p_ytxt,"比特分配结果:Channel[%d]sblimit[%d]:%dbit\n", i + 1, j + 1, bit_alloc[i][j]); fflush(p_ytxt); #endif } }
四、实验结果
相关文章推荐
- 数据压缩原理实验4_实验报告
- 数据压缩原理实验2_实验报告
- 数据压缩原理实验1_实验报告
- 数据压缩原理与应用之彩色空间转换 实验报告1
- 数据压缩原理实验5_实验报告
- 数据压缩原理与应用 图像文件的读写和转换(BMP2YUV)实验报告
- 数据压缩原理实验3_实验报告
- 数据压缩第二次实验报告——用C语言实现bmp to yuv的图片格式转化
- 数据压缩原理 实验三 Huffman编解码算法实现与压缩效率分析
- 数据压缩原理实验6_MPEG音频编码
- 数据压缩原理 实验五 JPEG原理分析及JPEG解码器的调试
- 数据压缩实验二:bmp转yuv格式实验报告
- 数据压缩原理 实验四 DPCM压缩系统的实现和分析
- 数据压缩原理实验1_彩色空间转换实验YUVtoRGB
- 数据压缩原理实验2_BMP2YUV文件转换
- 数据压缩第一次实验报告(rgb与yuv的转换)
- 数据压缩原理 实验六 MPEG音频编码
- 数据压缩原理实验3_Huffman编解码算法实现与压缩效率分析
- 数据压缩原理 实验二 图像文件的读写和转换
- 数据压缩实验一实验报告