📄 hvxclpcanaenc.c
字号:
/*This software module was originally developed by Kazuyuki Iijima, Masayuki Nishiguchi (Sony Corporation) in the course of development of the MPEG-4 Audio standard (ISO/IEC 14496-3). This software module is an implementation of a part of one or more MPEG-4 Audio (ISO/IEC 14496-3) tools as specified by the MPEG-4 Audio standard (ISO/IEC 14496-3). ISO/IEC gives users of the MPEG-4 Audio standards (ISO/IEC 14496-3) free license to this software module or modifications thereof for use in hardware or software products claiming conformance to the MPEG-4 Audio standards (ISO/IEC 14496-3). Those intending to use this software module in hardware or software products are advised that this use may infringe existing patents. The original developer of this software module and his/her company, the subsequent editors and their companies, and ISO/IEC have no liability for use of this software module or modifications thereof in an implementation. Copyright is not released for non MPEG-4 Audio (ISO/IEC 14496-3) conforming products. The original developer retains full right to use the code for his/her own purpose, assign or donate the code to a third party and to inhibit third party from using the code for non MPEG-4 Audio (ISO/IEC 14496-3) conforming products. This copyright notice must be included in all copies or derivative works. Copyright (c)1996. */#include <math.h>/* #include <values.h> */#include <stdio.h>#include "hvxc.h"#include "hvxcEnc.h"extern float ipc_coef[SAMPLE];extern float ipc_coef160[FRM];void IPC_calc_residue256(float arys[SAMPLE],float alphaq[11],float resi[SAMPLE]){ int i,j; float out; float mem[P+1]={0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.}; float arysTmp[SAMPLE + P]; float resiTmp[SAMPLE + P]; static float arysOld[SAMPLE]; for(i = 0; i < P; i++) { arysTmp[i] = arysOld[SAMPLE - OVERLAP - P + i]; } for(i = 0; i < SAMPLE; i++) { arysTmp[P + i] = arys[i]; } for(i = 0; i < SAMPLE + P; i++) { mem[0]=arysTmp[i]; out = 0.0; for(j = P; j > 0; j--) { out += mem[j]*alphaq[j]; mem[j]=mem[j-1]; } out += mem[0]; resiTmp[i]= out; } for(i = 0; i < SAMPLE; i++) { resi[i] = resiTmp[i + P]; } for(i = 0; i < SAMPLE; i++) { arysOld[i] = arys[i]; }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -