⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ntt_redec.c

📁 MPEG2/MPEG4编解码参考程序(实现了MPEG4的部分功能)
💻 C
字号:
/*****************************************************************************//* This software module was originally developed by                          *//*   Takehiro Moriya (NTT)                                                   *//* and edited by                                                             *//*   Naoki Iwakami and Satoshi Miki (NTT) on 1996-05-01,                     *//*   Naoki Iwakami (NTT) on 1996-08-27,                                      *//*   Naoki Iwakami (NTT) on 1997-04-18,                                      *//*   Akio Jin (NTT) on 1997-10-23,                                           *//* in the course of development of the                                       *//* MPEG-2 NBC/MPEG-4 Audio standard ISO/IEC 13818-7, 14496-1,2 and 3.        *//* This software module is an implementation of a part of one or more        *//* MPEG-2 NBC/MPEG-4 Audio tools as specified by the MPEG-2 NBC/MPEG-4 Audio *//* standard. ISO/IEC  gives users of the MPEG-2 NBC/MPEG-4 Audio standards   *//* free license to this software module or modifications thereof for use in  *//* hardware or software products claiming conformance to the MPEG-2 NBC/     *//* MPEG-4 Audio  standards. 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-2 NBC/MPEG-4 Audio 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-2 NBC/MPEG-4 Audio conforming products.             *//* This copyright notice must be included in all copies or derivative works. *//* Copyright (c)1996.                                                        *//*****************************************************************************//* 18-apr-97   NI   generalized the module */#include <stdio.h>#include "block.h"               /* handler, defines, enums */#include "buffersHandle.h"       /* handler, defines, enums */#include "interface.h"           /* handler, defines, enums */#include "mod_bufHandle.h"       /* handler, defines, enums */#include "resilienceHandle.h"    /* handler, defines, enums */#include "tf_mainHandle.h"       /* handler, defines, enums */#include "nok_ltp_common.h"      /* structs */#include "tf_mainStruct.h"       /* structs */#include "tns.h"                 /* structs */#include "ntt_conf.h"#include  "ntt_relsp.h"void ntt_redec(int n_pr,	       int index[],	       int csize1[],	       int nsp,	       double code[][ntt_N_PR_MAX],	       double fg_sum[ntt_N_PR_MAX],	       double pred_vec[ntt_N_PR_MAX],	       double lspq[],	       double out_vec[]){    int     i, j, off_code,  off;    int     code1;    int     idim;    double  diff;    int     ntt_isp[ntt_NSP_MAX+1];    off_code = 0;       off = csize1[0];     ntt_set_isp(nsp, n_pr, ntt_isp);     code1 = off_code + index[1];     for (idim=0; idim<nsp; idim++){	for(j=ntt_isp[idim]; j<ntt_isp[idim+1]; j++){          lspq[j+1] = (code[code1][j]		      +code[index[idim+2]+off_code+off][j]);        }     }     if(lspq[1] < L_LIMIT) {        diff = L_LIMIT - lspq[1];        lspq[1] += diff*1.2;     }     if(lspq[n_pr] > M_LIMIT ){        diff = lspq[n_pr]-M_LIMIT;        lspq[n_pr] -= diff*1.2;     }     ntt_check_lsp(n_pr-1, lspq+2, MIN_GAP);          ntt_movdd(n_pr, lspq+1, out_vec);     for(j=0; j<n_pr; j++){	  lspq[j+1] = lspq[j+1]*fg_sum[j] + pred_vec[j];      }     for(i=1; i<n_pr; i++){          if(lspq[i] > lspq[i+1] - MIN_GAP){            diff = lspq[i] - lspq[i+1];            lspq[i]   -= (diff+MIN_GAP)/2.;            lspq[i+1] += (diff+MIN_GAP)/2.;          }     }     for(i=1; i<n_pr; i++){          if(lspq[i] > lspq[i+1] - MIN_GAP*0.95){            diff = lspq[i] - lspq[i+1];            lspq[i]   -= (diff+MIN_GAP*0.95)/2.;            lspq[i+1] += (diff+MIN_GAP*0.95)/2.;          }     }     ntt_check_lsp_sort(n_pr-1, lspq+2); }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -