上述帧边信息存储了供后续解码的全部重要信息。为方便引用,将其定义为结构体。部分元素的定义和注释如下:
struct Granule {
unsigned part2_3_length; //用以计算Count1
//区位置;
unsigned big_values; //用以计算Big_values
//区位置;
unsigned table_select[3]; //用以确定查找哪一
//个霍夫共模电感器曼表;
……
};
table_select[3]的值就是霍夫曼表的下标h,可在解主数据时锁定某个具体的霍夫电感器线圈曼表。
2.2 MP3数据的霍夫曼解码原绕行电感理
如上小节所述,每个粒度组的数据根据声学特性将0到奈奎斯特频率的频率线分为Big_values、Count1和Zero三个区。在解码时,Big_values区对应的霍夫曼码表格式如表2所示,而Count1区码表格式如表3所示。
存放霍夫曼码表的文件huffman.h中包含32工字电感个供Big_values区查询用的码表和2个供Count1区查询用的码表。为了方便快速查得短长度的编码值,还增加了辅助表h_cue[34][16]。当开始解主数据时,将定长(例如32位)数据dataword()入栈,首先移出该缓存区的前四位数据,作为查辅助表的头数据lead,然后根据lead值和帧边信息中的霍夫曼查找表下标h,得出辅助表的具体数据h_cue[h][lead],这个数据只是指向Big_values区或者Count1区某个表的首地址h_tab,具体要用到该表的哪个数据仍需程序提供一个偏移量继续判断。此时可以先由缓存区中去掉lead四个位的数据与锁定的霍夫曼表对比,如果这后面的数据与被锁定的霍夫曼表头的码字一致,则可马上得到解码的数据;若是两个码字不一致,则还需由h_cue[h][lead]和h_cue[h][lead+1]的差值得到偏移量,从而最终得到正确的解码数据。(格式如表2和表3所示)。
另外,由于MP3编码中对绝对值小于等于15的量化值直接编码,对绝对值大于15的量化值采用ESC(附加值)编码,所以在得到加码数据后还需判断是否要为其添加附加值功率电感器和符号位。详细的解码流程如图2所示。
MP3解码的主要运算量集中在霍夫曼解码、反量化、IMDCT、子带合成四个运算模块,而霍夫曼解码占整个运算量总和的1/5。利用CCS的Profile工具对44.1kHz采样率、128kbps比特率的MP3数据进行运算复杂度的估算,可得本系统的解码模块消耗的运算量为1.3MIPS。由此可知,对于每秒解50帧以上的实时解码,DSP要承担65MIPS的运算复杂度,利DSP实现的本解码模块是完全可以胜任的。
基于有限元接触分析的印刷滚筒压力仿真与结构优引言在印刷过程中,图文在印刷压力作用下通过印 刷滚筒之间的滚压接触完成转移。由于承受一定印 刷压力和自身重力作用,印刷滚筒在轴向不可避免 地发生挠曲变形。滚筒体复杂的
触摸屏控制器性能指标信噪比的测量方案触摸屏控制器制造商经常拿各种规格和标准来使自己的产品与众不同。其中最常提到的就是信噪比(SNR)。然而,当噪声存在时,即使数字上看起来不错,也并不意味着SNR就是一个很好的系统性能指标。这篇文章将讨论
[开关电源]一般电解电容的功耗是多少时存在风险最近算了一个电解电容的纹波电流,然后查到电解电容的ESR,然后计算得出功耗是3W,请问3W功耗的电解电容是不是有点大?它自己体积有多大?看电容的工作条件和环境而定,还有你这个3