omxsp_firone_direct_s16_i.c
来自「The OpenMAX DL (Development Layer) APIs 」· C语言 代码 · 共 95 行
C
95 行
/** * * File Name: omxSP_FIROne_Direct_S16_I.c * OpenMAX DL: v1.0.2 * Revision: 10586 * Date: Wednesday, March 5, 2008 * * (c) Copyright 2007-2008 ARM Limited. All Rights Reserved. * * * Description: * */#include "omxtypes.h"#include "armOMX.h"#include "omxSP.h"#include "armCOMM.h"/** * Function: omxSP_FIROne_Direct_S16_I (2.2.3.1.2) * * Description: * Single-sample FIR filtering for 16-bit data type. These functions apply * the FIR filter defined by the coefficient vector pTapsQ15 to a single * sample of input data. The result is saturated with rounding if the * operation produces a value outside the range of a signed 16-bit integer. * Rounding behavior is defined in: * section 1.6.7 "Integer Scaling and Rounding Conventions". * The internal accumulator width must be at least 32 bits. The result is * undefined if any of the partially accumulated values exceeds the range of a * signed 32-bit integer. * * Input Arguments: * * pValResult - pointer to the single input sample to which the filter is * applied. * pTapsQ15 - pointer to the vector that contains the filter coefficients, * represented in Q0.15 format (as defined in section 1.6.5). Given * that: * -32768 = pTapsQ15(k) < 32768, * 0 = k < tapsLen, * the range on the actual filter coefficients is -1 = bK <1, and * therefore coefficient normalization may be required during the * filter design process. * tapsLen - the number of taps, or, equivalently, the filter order + 1 * pDelayLine - pointer to the 2.tapsLen -element filter memory buffer * (state). The user is responsible for allocation, initialization, * and de-allocation. The filter memory elements are initialized to * zero in most applications. * pDelayLineIndex - pointer to the filter memory index that is maintained * internally by the function. The user should initialize the value * of this index to zero. * * Output Arguments: * * pValResult - pointer to the filtered output sample * * Return Value: * * OMX_Sts_NoErr - no error * OMX_Sts_BadArgErr - bad arguments; returned if one or more of the * following is true: * - One or more of the following pointers is NULL: * - pValResult, * - pTapsQ15, * - pDelayLine, or * - pDelayLineIndex * - tapslen < 1 * - *pDelayLineIndex < 0 or *pDelayLineIndex >= (2 * tapslen) * */OMXResult omxSP_FIROne_Direct_S16_I( OMX_S16 * pValResult, const OMX_S16 * pTapsQ15, OMX_INT tapsLen, OMX_S16 * pDelayLine, OMX_INT * pDelayLineIndex ){ /* Input parameter check */ armRetArgErrIf((pValResult == NULL), OMX_Sts_BadArgErr) return omxSP_FIROne_Direct_S16 (*pValResult, pValResult, pTapsQ15, tapsLen, pDelayLine, pDelayLineIndex);}/***************************************************************************** * END OF FILE *****************************************************************************/
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?