convertcoeff.c

来自「用于TM1300/PNX1300系列DSP(主要用于视频处理)的各种滤波器源码」· C语言 代码 · 共 42 行

C
42
字号

/* --------------------------- includes ---------------------------- */
 
#include <stdlib.h>
#include <math.h>
#include <ops/custom_defs.h>

/* --------------------------- defines ----------------------------- */

#define COEFFSHIFT 29

/* ----------------------------------------------------------------- */


int roundingFloat( float data )
{
    int help1, help2;
    float help3, help4;
    
    help1 = (int)(data + 0.5);
    help2 = (int)(data - 0.5);
    help3 = data - (float)help1;
    help4 = data - (float)help2;

    if( FABSVAL(help3) > FABSVAL(help4) )
        return(help2);
    else
        return(help1);         
}

int convertCoeff( int *dest, float *src, int length )
{
    int i;
    float shift;
    
    shift = ( pow( 2.0, COEFFSHIFT) - 1.0 );     
    for( i=0; i<length; i++ )
        dest[i] = roundingFloat( src[i]*shift ); 
         
    return 0;    
}

⌨️ 快捷键说明

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