mirror of
https://github.com/asterisk/asterisk.git
synced 2025-09-03 19:28:53 +00:00
Update to new iLBC codec
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@3997 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
@@ -1,59 +1,59 @@
|
||||
|
||||
/******************************************************************
|
||||
|
||||
iLBC Speech Coder ANSI-C Source Code
|
||||
|
||||
hpOutput.c
|
||||
|
||||
Copyright (c) 2001,
|
||||
Global IP Sound AB.
|
||||
All rights reserved.
|
||||
|
||||
******************************************************************/
|
||||
|
||||
#include "constants.h"
|
||||
#include "hpOutput.h"
|
||||
|
||||
/*----------------------------------------------------------------*
|
||||
* Output high-pass filter
|
||||
*---------------------------------------------------------------*/
|
||||
|
||||
void hpOutput(
|
||||
float *In, /* (i) vector to filter */
|
||||
int len,/* (i) length of vector to filter */
|
||||
float *Out, /* (o) the resulting filtered vector */
|
||||
float *mem /* (i/o) the filter state */
|
||||
){
|
||||
int i;
|
||||
float *pi, *po;
|
||||
|
||||
/* all-zero section*/
|
||||
|
||||
pi = &In[0];
|
||||
po = &Out[0];
|
||||
for (i=0; i<len; i++) {
|
||||
*po = hpo_zero_coefsTbl[0] * (*pi);
|
||||
*po += hpo_zero_coefsTbl[1] * mem[0];
|
||||
*po += hpo_zero_coefsTbl[2] * mem[1];
|
||||
|
||||
mem[1] = mem[0];
|
||||
mem[0] = *pi;
|
||||
po++;
|
||||
pi++;
|
||||
|
||||
}
|
||||
|
||||
/* all-pole section*/
|
||||
|
||||
po = &Out[0];
|
||||
for (i=0; i<len; i++) {
|
||||
*po -= hpo_pole_coefsTbl[1] * mem[2];
|
||||
*po -= hpo_pole_coefsTbl[2] * mem[3];
|
||||
|
||||
mem[3] = mem[2];
|
||||
mem[2] = *po;
|
||||
po++;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
/******************************************************************
|
||||
|
||||
iLBC Speech Coder ANSI-C Source Code
|
||||
|
||||
hpOutput.c
|
||||
|
||||
Copyright (C) The Internet Society (2004).
|
||||
All Rights Reserved.
|
||||
|
||||
|
||||
|
||||
******************************************************************/
|
||||
|
||||
#include "constants.h"
|
||||
|
||||
/*----------------------------------------------------------------*
|
||||
* Output high-pass filter
|
||||
*---------------------------------------------------------------*/
|
||||
|
||||
void hpOutput(
|
||||
float *In, /* (i) vector to filter */
|
||||
int len,/* (i) length of vector to filter */
|
||||
float *Out, /* (o) the resulting filtered vector */
|
||||
float *mem /* (i/o) the filter state */
|
||||
){
|
||||
int i;
|
||||
float *pi, *po;
|
||||
|
||||
/* all-zero section*/
|
||||
|
||||
pi = &In[0];
|
||||
po = &Out[0];
|
||||
for (i=0; i<len; i++) {
|
||||
*po = hpo_zero_coefsTbl[0] * (*pi);
|
||||
*po += hpo_zero_coefsTbl[1] * mem[0];
|
||||
*po += hpo_zero_coefsTbl[2] * mem[1];
|
||||
|
||||
mem[1] = mem[0];
|
||||
mem[0] = *pi;
|
||||
po++;
|
||||
pi++;
|
||||
|
||||
}
|
||||
|
||||
/* all-pole section*/
|
||||
|
||||
po = &Out[0];
|
||||
for (i=0; i<len; i++) {
|
||||
*po -= hpo_pole_coefsTbl[1] * mem[2];
|
||||
*po -= hpo_pole_coefsTbl[2] * mem[3];
|
||||
|
||||
mem[3] = mem[2];
|
||||
mem[2] = *po;
|
||||
po++;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user