mirror of
https://github.com/WinampDesktop/winamp.git
synced 2024-12-04 05:51:01 -05:00
6241 lines
292 KiB
C
6241 lines
292 KiB
C
/* /////////////////////////////////////////////////////////////////////////////
|
|
//
|
|
// INTEL CORPORATION PROPRIETARY INFORMATION
|
|
// This software is supplied under the terms of a license agreement or
|
|
// nondisclosure agreement with Intel Corporation and may not be copied
|
|
// or disclosed except in accordance with the terms of that agreement.
|
|
// Copyright (c) 2001-2009 Intel Corporation. All Rights Reserved.
|
|
//
|
|
// Intel(R) Integrated Performance Primitives
|
|
// Speech Recognition Reference Library
|
|
//
|
|
*/
|
|
|
|
#if !defined( __IPPSR_H__ ) || defined( _OWN_BLDPCS )
|
|
#define __IPPSR_H__
|
|
|
|
#if defined (_WIN32_WCE) && defined (_M_IX86) && defined (__stdcall)
|
|
#define _IPP_STDCALL_CDECL
|
|
#undef __stdcall
|
|
#endif
|
|
|
|
#ifndef __IPPDEFS_H__
|
|
#include "ippdefs.h"
|
|
#endif
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
#if !defined( _OWN_BLDPCS )
|
|
|
|
/* /////////////////////////////////////////////////////////////////////////////
|
|
// Common Types & Definitions
|
|
///////////////////////////////////////////////////////////////////////////// */
|
|
typedef enum {
|
|
IPP_DELTA_BEGIN=0x0001,
|
|
IPP_DELTA_END=0x0002
|
|
} DeltaMode;
|
|
|
|
#define ippsDeltaBegin IPP_DELTA_BEGIN
|
|
#define ippsDeltaEnd IPP_DELTA_END
|
|
|
|
typedef enum {
|
|
IPP_FBANK_MELWGT = 1,
|
|
IPP_FBANK_FREQWGT = 2,
|
|
IPP_POWER_SPECTRUM = 4
|
|
} IppMelMode;
|
|
|
|
typedef enum {
|
|
IPP_VOICE = 1,
|
|
IPP_UNVOICE = 2,
|
|
IPP_PREPARE = 4
|
|
} IppVADDecision_Aurora;
|
|
|
|
typedef enum {
|
|
IPP_CDBK_FULL = 1,
|
|
IPP_CDBK_KMEANS_LONG = 2,
|
|
IPP_CDBK_KMEANS_NUM = 3
|
|
} Ipp_Cdbk_Hint;
|
|
|
|
struct BlockDMatrix_32f;
|
|
struct BlockDMatrix_64f;
|
|
struct BlockDMatrix_16s;
|
|
|
|
typedef struct BlockDMatrix_32f IppsBlockDMatrix_32f;
|
|
typedef struct BlockDMatrix_64f IppsBlockDMatrix_64f;
|
|
typedef struct BlockDMatrix_16s IppsBlockDMatrix_16s;
|
|
|
|
struct FBankState_16s;
|
|
struct DCTLifterState_16s;
|
|
struct FBankState_32f;
|
|
struct DCTLifterState_32f;
|
|
struct VADDrop_32f;
|
|
struct VADDrop_16s;
|
|
struct ResamplingPolyphase_16s;
|
|
struct ResamplingPolyphaseFixed_16s;
|
|
struct ResamplingPolyphase_32f;
|
|
struct ResamplingPolyphaseFixed_32f;
|
|
struct FBankState_32s;
|
|
|
|
typedef struct ResamplingPolyphase_16s IppsResamplingPolyphase_16s;
|
|
typedef struct ResamplingPolyphaseFixed_16s IppsResamplingPolyphaseFixed_16s;
|
|
typedef struct ResamplingPolyphase_32f IppsResamplingPolyphase_32f;
|
|
typedef struct ResamplingPolyphaseFixed_32f IppsResamplingPolyphaseFixed_32f;
|
|
|
|
#define IppsResamlingPolyphase_16s IppsResamplingPolyphase_16s
|
|
#define IppsResamlingPolyphaseFixed_16s IppsResamplingPolyphaseFixed_16s
|
|
#define IppsResamlingPolyphase_32f IppsResamplingPolyphase_32f
|
|
#define IppsResamlingPolyphaseFixed_32f IppsResamplingPolyphaseFixed_32f
|
|
|
|
typedef struct VADDrop_32f IppsVADDrop_32f;
|
|
typedef struct VADDrop_16s IppsVADDrop_16s;
|
|
typedef struct FBankState_16s IppsFBankState_16s;
|
|
typedef struct DCTLifterState_16s IppsDCTLifterState_16s;
|
|
typedef struct FBankState_32f IppsFBankState_32f;
|
|
typedef struct DCTLifterState_32f IppsDCTLifterState_32f;
|
|
typedef struct FBankState_32s IppsFBankState_32s;
|
|
|
|
struct CdbkState_32f;
|
|
typedef struct CdbkState_32f IppsCdbkState_32f;
|
|
|
|
struct CdbkState_16s;
|
|
typedef struct CdbkState_16s IppsCdbkState_16s;
|
|
|
|
#endif /* _OWN_BLDPCS */
|
|
|
|
#define IPP_TRUNC(a,b) ((a)&~((b)-1))
|
|
#define IPP_APPEND(a,b) (((a)+(b)-1)&~((b)-1))
|
|
|
|
/* /////////////////////////////////////////////////////////////////////////////
|
|
// Definitions for LogAdd Functions
|
|
///////////////////////////////////////////////////////////////////////////// */
|
|
/*Ipp64f*/
|
|
#define IPPSLOGZERO (-1.0e+10)
|
|
#define IPPSLOGSMALL (-0.9e+10)
|
|
#define IPPSMINLOGEXP -23.0258509299405 /*-log(-LOGZERO)*/
|
|
#define IPPSMAXFWDP (-1.0e-8) /* highest p<0: exp(p) < DBL_EPSILON */
|
|
#define IPPSMINFWDP -20.0 /* minimum forward probability */
|
|
/*Ipp32f*/
|
|
#define IPPSLOGZERO_F (-4.5e+6)
|
|
#define IPPSLOGSMALL_F (-4.5e+6)
|
|
#define IPPSMINLOGEXP_F -15.3195879547406 /*-log(-LOGZERO) */
|
|
#define IPPSMAXFWDP_F (-1.0e-4) /* highest p<0: exp(p) < FLT_EPSILON */
|
|
#define IPPSMINFWDP_F -10.0 /* minimum forward probability */
|
|
|
|
/* /////////////////////////////////////////////////////////////////////////////
|
|
// Definitions for LogSub Functions
|
|
///////////////////////////////////////////////////////////////////////////// */
|
|
#define IPPSMINLARG (2.45E-308) /* lowest log() arg = exp(MINEARG) */
|
|
#define IPPSMINMIX (-11.5129254649702) /* log(1.0e-5) */
|
|
#define IPPSMINEARG (-708.3) /* lowest exp() arg = log(MINLARG) */
|
|
#define IPPSMINEARG_F (-85.19) /* lowest exp() arg = log(MINLARG_F) */
|
|
#define IPPSMINLARG_F (1.0057e-037) /* lowest log() arg = exp(MINEARG_F) */
|
|
|
|
|
|
/* /////////////////////////////////////////////////////////////////////////////
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
// Functions declarations
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
///////////////////////////////////////////////////////////////////////////// */
|
|
|
|
|
|
/* /////////////////////////////////////////////////////////////////////////////
|
|
// Name: ippsrGetLibVersion
|
|
// Purpose: getting of the library version
|
|
// Returns: the structure of information about version of ippsr library
|
|
// Parameters:
|
|
//
|
|
// Notes: not necessary to release the returned structure
|
|
*/
|
|
IPPAPI( const IppLibraryVersion*, ippsrGetLibVersion, (void) )
|
|
/* /////////////////////////////////////////////////////////////////////////////
|
|
// Basic Arithmetics
|
|
///////////////////////////////////////////////////////////////////////////// */
|
|
/* /////////////////////////////////////////////////////////////////////////////
|
|
// Name: ippsAddAllRowSum_32f_D2
|
|
// Purpose: Calculates the sums of column vectors in a matrix
|
|
// and adds the sums to a vector.
|
|
// Parameters:
|
|
// pSrc Pointer to the input vector [height*sStep].
|
|
// mSrc Pointer to the input matrix [height][width].
|
|
// step The row step in pSrc.
|
|
// height The number of rows in the input matrix mSrc.
|
|
// width Number of columns in the input matrix mSrc, and also the
|
|
// length of the output vector pSrcDst.
|
|
//
|
|
// Returns:
|
|
// ippStsNoErr Indicates no error.
|
|
// ippStsNullPtrErr Indicates an error when the pSrc, or mSrc, or pSrcDst
|
|
// pointer is null.
|
|
// ippStsSizeErr Indicates an error when height or width is less than
|
|
// or equal to 0.
|
|
// ippStsStrideErr Indicates an error when width > step.
|
|
//
|
|
*/
|
|
IPPAPI(IppStatus, ippsAddAllRowSum_32f_D2, (const Ipp32f* pSrc, int step,
|
|
int height, Ipp32f* pSrcDst, int width))
|
|
|
|
IPPAPI(IppStatus, ippsAddAllRowSum_32f_D2L, (const Ipp32f** mSrc, int height,
|
|
Ipp32f* pSrcDst, int width))
|
|
|
|
/* /////////////////////////////////////////////////////////////////////////////
|
|
// Name: ippsSumColumn_*
|
|
// Purpose: Calculates sums of column vectors in a matrix.
|
|
//
|
|
// Parameters:
|
|
// pSrc Pointer to the input vector [height*step].
|
|
// mSrc Pointer to the input matrix [height][width].
|
|
// step The row step in the input vector pSrc.
|
|
// height The number of rows in the input matrix mSrc.
|
|
// pDst Pointer to the output vector [width].
|
|
// width The number of columns in the input matrix and the length
|
|
// of the result vector pDst.
|
|
//
|
|
// Returns:
|
|
// ippStsNoErr Indicates no error.
|
|
// ippStsNullPtrErr Indicates an error when the pSrc, mSrc, or pDst pointer
|
|
// is null.
|
|
// ippStsSizeErr Indicates an error when height or width is less than
|
|
// or equal to 0.
|
|
// ippStsStrideErr Indicates an error when width > step.
|
|
//
|
|
*/
|
|
IPPAPI(IppStatus, ippsSumColumn_16s32s_D2Sfs,(const Ipp16s* pSrc, int step,
|
|
int height, Ipp32s* pDst, int width, int scaleFactor))
|
|
|
|
IPPAPI(IppStatus, ippsSumColumn_16s32f_D2,(const Ipp16s* pSrc, int step,
|
|
int height, Ipp32f* pDst, int width))
|
|
|
|
IPPAPI(IppStatus, ippsSumColumn_16s32s_D2LSfs,(const Ipp16s** mSrc, int height,
|
|
Ipp32s* pDst, int width, int scaleFactor))
|
|
|
|
IPPAPI(IppStatus, ippsSumColumn_16s32f_D2L,(const Ipp16s** mSrc, int height,
|
|
Ipp32f* pDst, int width))
|
|
|
|
IPPAPI(IppStatus, ippsSumColumn_32f_D2,(const Ipp32f* pSrc, int step,
|
|
int height, Ipp32f* pDst, int width))
|
|
|
|
IPPAPI(IppStatus, ippsSumColumn_64f_D2,(const Ipp64f* pSrc, int step,
|
|
int height, Ipp64f* pDst, int width))
|
|
|
|
IPPAPI(IppStatus, ippsSumColumn_32f_D2L,(const Ipp32f** mSrc, int height,
|
|
Ipp32f* pDst, int width))
|
|
|
|
IPPAPI(IppStatus, ippsSumColumn_64f_D2L,(const Ipp64f** mSrc, int height,
|
|
Ipp64f* pDst, int width))
|
|
|
|
/* /////////////////////////////////////////////////////////////////////////////
|
|
// Name: ippsSumRow_*
|
|
// Purpose: Computes the sum of a list of vectors row-wise.
|
|
// Parameters:
|
|
// pSrc Pointer to the input vector [height*step].
|
|
// mSrc Pointer to the input matrix [height][width].
|
|
// height The number of rows in the matrix mSrc and also the length
|
|
// of the output vector pDst.
|
|
// step The row step in input vector pSrc.
|
|
// pDst Pointer to the output vector [height].
|
|
// width The number of columns in the matrix mSrc.
|
|
// scaleFactor
|
|
//
|
|
// Returns:
|
|
// ippStsNoErr Indicates no error.
|
|
// ippStsNullPtrErr Indicates an error when pSrc, mSrc, or pDst pointer
|
|
// is null.
|
|
// ippStsSizeErr Indicates an error when height or srcWidth is less than
|
|
// or equal to 0.
|
|
// ippStsStrideErr Indicates an error when srcWidth > step.
|
|
//
|
|
*/
|
|
IPPAPI(IppStatus, ippsSumRow_32f_D2,(const Ipp32f* pSrc, int width,
|
|
int step, Ipp32f* pDst, int height))
|
|
|
|
IPPAPI(IppStatus, ippsSumRow_64f_D2,(const Ipp64f* pSrc, int width,
|
|
int step, Ipp64f* pDst, int height))
|
|
|
|
IPPAPI(IppStatus, ippsSumRow_32f_D2L,(const Ipp32f** mSrc, int width,
|
|
Ipp32f* pDst, int height))
|
|
|
|
IPPAPI(IppStatus, ippsSumRow_64f_D2L,(const Ipp64f** mSrc, int width,
|
|
Ipp64f* pDst, int height))
|
|
|
|
IPPAPI(IppStatus, ippsSumRow_16s32s_D2Sfs,(const Ipp16s* pSrc, int width,
|
|
int step, Ipp32s* pDst, int height, int scaleFactor))
|
|
|
|
IPPAPI(IppStatus, ippsSumRow_16s32f_D2,(const Ipp16s* pSrc, int width,
|
|
int step, Ipp32f* pDst, int height))
|
|
|
|
IPPAPI(IppStatus, ippsSumRow_16s32s_D2LSfs,(const Ipp16s** mSrc, int width,
|
|
Ipp32s* pDst, int height, int scaleFactor))
|
|
|
|
IPPAPI(IppStatus, ippsSumRow_16s32f_D2L,(const Ipp16s** mSrc, int width,
|
|
Ipp32f* pDst, int height))
|
|
|
|
/* /////////////////////////////////////////////////////////////////////////////
|
|
// Name: ippsSubRow_*
|
|
// Purpose: Subtracts a vector from all matrix rows.
|
|
// Parameters:
|
|
// pSrc Pointer to the input vector [width].
|
|
// pSrcDst Pointer to the the source and destination vector
|
|
// [height*dstStep].
|
|
// mSrcDst Pointer to the source and destination matrix
|
|
// [height][width].
|
|
// width The number of columns in the matrix mSrcDst.
|
|
// dstStep The row step in the vector pSrcDst.
|
|
// height The number of rows in the matrix mSrcDst.
|
|
//
|
|
// Returns:
|
|
// ippStsNoErr Indicates no error.
|
|
// ippStsNullPtrErr Indicates an error when the pSrc, pSrcDst, or mSrcDst
|
|
// pointer is null.
|
|
// ippStsSizeErr Indicates an error when height or width is less than or
|
|
// equal to 0.
|
|
// ippStsStrideErr Indicates an error when width > dstStep.
|
|
//
|
|
*/
|
|
IPPAPI(IppStatus, ippsSubRow_32f_D2, (const Ipp32f* pSrc, int width,
|
|
Ipp32f* pSrcDst, int dstStep, int height))
|
|
|
|
IPPAPI(IppStatus, ippsSubRow_32f_D2L, (const Ipp32f* pSrc, Ipp32f** mSrcDst,
|
|
int width, int height))
|
|
|
|
IPPAPI(IppStatus, ippsSubRow_16s_D2,(const Ipp16s* pSrc, int width,
|
|
Ipp16s* pSrcDst, int dstStep, int height))
|
|
|
|
IPPAPI(IppStatus, ippsSubRow_16s_D2L,(const Ipp16s* pSrc, Ipp16s** mSrcDst,
|
|
int width, int height))
|
|
|
|
/*///////////////////////////////////////////////////////////////////////////////
|
|
// Name: ippsCopyColumn_Indirect_*
|
|
// Purpose: Copies the input matrix with columns redirection.
|
|
// Parameters:
|
|
// pSrc Pointer to the input vector [height*srcStep].
|
|
// mSrc Pointer to the input matrix [height][srcLen].
|
|
// srcLen The number of columns in the input matrix mSrc.
|
|
// srcStep The row step in pSrc
|
|
// pDst Pointer to the output vector [height*dstStep]
|
|
// mDst Pointer to the output matrix [height][dstLen]
|
|
// pIndx Pointer to the redirection vector [dstLen]
|
|
// dstLen The number of columns in the output matrix mDst
|
|
// dstStep The row step in pDst
|
|
// height The number of rows in both the input and output matrices.
|
|
// Return:
|
|
// ippStsNoErr Indicates no error.
|
|
// ippStsNullPtrErr Indicates an error when the pSrc, mSrc, pDst, mDst or
|
|
// pIndx pointer is null.
|
|
// ippStsSizeErr Indicates an error when height, srcLen, or dstLen is less
|
|
// than or equal to 0,
|
|
// pIndx[j]>=srcLen or pIndx[j]<0 for j=0,:,dstlen-1
|
|
// ippStsStrideErr Indicates an error when srcLen > srcStep, dstLen > dstStep.
|
|
//
|
|
*/
|
|
IPPAPI(IppStatus, ippsCopyColumn_Indirect_64f_D2, (const Ipp64f* pSrc,
|
|
int srcLen, int srcStep, Ipp64f* pDst, const Ipp32s* pIndx, int dstLen,
|
|
int dstStep, int height))
|
|
|
|
IPPAPI(IppStatus, ippsCopyColumn_Indirect_32f_D2, (const Ipp32f* pSrc,
|
|
int srcLen, int srcStep, Ipp32f* pDst, const Ipp32s* pIndx, int dstLen,
|
|
int dstStep, int height))
|
|
|
|
IPPAPI(IppStatus, ippsCopyColumn_Indirect_16s_D2, (const Ipp16s* pSrc,
|
|
int srcLen, int srcStep, Ipp16s* pDst, const Ipp32s* pIndx, int dstLen,
|
|
int dstStep, int height))
|
|
|
|
IPPAPI(IppStatus, ippsCopyColumn_Indirect_64f_D2L, (const Ipp64f** mSrc,
|
|
int srcLen, Ipp64f** mDst, const Ipp32s* pIndx, int dstLen, int height))
|
|
|
|
IPPAPI(IppStatus, ippsCopyColumn_Indirect_32f_D2L, (const Ipp32f** mSrc,
|
|
int srcLen, Ipp32f** mDst, const Ipp32s* pIndx, int dstLen, int height))
|
|
|
|
IPPAPI(IppStatus, ippsCopyColumn_Indirect_16s_D2L, (const Ipp16s** mSrc,
|
|
int srcLen, Ipp16s** mDst, const Ipp32s* pIndx, int dstLen, int height))
|
|
|
|
|
|
/*///////////////////////////////////////////////////////////////////////////////
|
|
// Name: ippsBlockDMatrixInitAlloc_*
|
|
// Purpose: Initializes the structure that represents a symmetric
|
|
// block diagonal matrix.
|
|
// Parameters:
|
|
// pMatrix Pointer to the block diagonal matrix to be created.
|
|
// mSrc Pointer to the vector of pointers to matrix rows.
|
|
// bSize Pointer to vector of block sizes [nBlocks].
|
|
// nBlocks Number of blocks.
|
|
// Return:
|
|
// ippStsNoErr Indicates no error.
|
|
// ippStsNullPtrErr Indicates an error when the pMatrix or mSrc pointer is null.
|
|
// ippStsSizeErr Indicates an error when bSize or nBlocks is less than or
|
|
// equal to 0
|
|
// ippStsMemAllocErr Indicates an error when no memory allocated.
|
|
//
|
|
*/
|
|
IPPAPI(IppStatus, ippsBlockDMatrixInitAlloc_64f,(IppsBlockDMatrix_64f** pMatrix,
|
|
const Ipp64f** mSrc, const int* bSize, int nBlocks))
|
|
|
|
IPPAPI(IppStatus, ippsBlockDMatrixInitAlloc_16s,(IppsBlockDMatrix_16s** pMatrix,
|
|
const Ipp16s** mSrc, const int* bSize, int nBlocks))
|
|
|
|
IPPAPI(IppStatus, ippsBlockDMatrixInitAlloc_32f,(IppsBlockDMatrix_32f** pMatrix,
|
|
const Ipp32f** mSrc, const int* bSize, int nBlocks))
|
|
|
|
/*///////////////////////////////////////////////////////////////////////////////
|
|
// Name: ippsBlockDMatrixFree_*
|
|
// Purpose: Deallocates the block diagonal matrix structure.
|
|
//
|
|
// Parameters:
|
|
// pMatrix Pointer to the block diagonal matrix.
|
|
// Return:
|
|
// ippStsNoErr Indicates no error.
|
|
// ippStsNullPtrErr Indicates an error when the mSrc.
|
|
//
|
|
*/
|
|
IPPAPI(IppStatus, ippsBlockDMatrixFree_32f,(IppsBlockDMatrix_32f* pMatrix))
|
|
|
|
IPPAPI(IppStatus, ippsBlockDMatrixFree_64f,(IppsBlockDMatrix_64f* pMatrix))
|
|
|
|
IPPAPI(IppStatus, ippsBlockDMatrixFree_16s,(IppsBlockDMatrix_16s* pMatrix))
|
|
|
|
|
|
/* /////////////////////////////////////////////////////////////////////////////
|
|
// Feature Processing functions
|
|
///////////////////////////////////////////////////////////////////////////// */
|
|
|
|
/* /////////////////////////////////////////////////////////////////////////////
|
|
// Name: ippsZeroMean_16s
|
|
// Purpose: Subtracts the mean value from all elements of
|
|
// the input vector.
|
|
//
|
|
// Parameters:
|
|
// pSrcDst Pointer to the source and destination vector [len].
|
|
// len The number of elements in the vector.
|
|
// Return:
|
|
// ippStsNoErr Indicates no error.
|
|
// ippStsNullPtrErr Indicates an error when the pSrcDst pointer is null.
|
|
// ippStsSizeErr Indicates an error when len is less than or equal to 0.
|
|
//
|
|
*/
|
|
|
|
IPPAPI(IppStatus, ippsZeroMean_16s, (Ipp16s *pSrcDst, int len))
|
|
|
|
/* /////////////////////////////////////////////////////////////////////////////
|
|
// Name: ippsCompensateOffset_*
|
|
// Purpose: Removes the DC offset of the input signals.
|
|
//
|
|
// Parameters:
|
|
// pSrc Pointer to the source vector[len].
|
|
// pDst Pointer to the destination vector[len].
|
|
// pSrcDst Pointer to the source and destination vector for in-place
|
|
// operations [len].
|
|
// pSrcDst0 Pointer to the previous source element.
|
|
// pSrc0 Pointer to previous source element. The last source
|
|
// element is saved there.
|
|
// dst0 Previous destination element.
|
|
// val Constant of offset compensation formula.
|
|
// len The number of elements in the vector.
|
|
// scaleFactor
|
|
// Return:
|
|
// ippStsNoErr Indicates no error.
|
|
// ippStsNullPtrErr Indicates an error when the pSrc or pSrcDst or pDst or
|
|
// pSrc0 pointer is null.
|
|
// ippStsSizeErr Indicates an error when len is less than or equal to 0
|
|
//
|
|
*/
|
|
|
|
IPPAPI(IppStatus, ippsCompensateOffset_32f, (const Ipp32f* pSrc, Ipp32f* pDst,
|
|
int len, Ipp32f* pSrc0, Ipp32f dst0, Ipp32f val))
|
|
|
|
IPPAPI(IppStatus, ippsCompensateOffset_16s, (const Ipp16s* pSrc, Ipp16s* pDst,
|
|
int len, Ipp16s* pSrcDst0, Ipp16s dst0, Ipp32f val))
|
|
|
|
IPPAPI(IppStatus, ippsCompensateOffset_32f_I, (Ipp32f* pSrcDst, int len,
|
|
Ipp32f* pSrc0, Ipp32f dst0, Ipp32f val))
|
|
|
|
IPPAPI(IppStatus, ippsCompensateOffset_16s_I, (Ipp16s* pSrcDst, int len,
|
|
Ipp16s* pSrcDst0, Ipp16s dst0, Ipp32f val))
|
|
|
|
IPPAPI(IppStatus, ippsCompensateOffsetQ15_16s, (const Ipp16s* pSrc, Ipp16s* pDst,
|
|
int len, Ipp16s* pSrcDst0, Ipp16s dst0, Ipp16s valQ15))
|
|
|
|
IPPAPI(IppStatus, ippsCompensateOffsetQ15_16s_I, (Ipp16s* pSrcDst, int len,
|
|
Ipp16s* pSrc0, Ipp16s dst0, Ipp16s valQ15))
|
|
|
|
|
|
/* /////////////////////////////////////////////////////////////////////////////
|
|
// Name: ippsSignChangeRate_*
|
|
// Purpose: Counts the zero-cross rate for the input signal.
|
|
//
|
|
// Parameters:
|
|
// pSrc Pointer to the input signal [len].
|
|
// len Number of elements in the input signal.
|
|
// pRes Pointer to the result variable.
|
|
// Return:
|
|
// ippStsNoErr Indicates no error.
|
|
// ippStsNullPtrErr Indicates an error when the pSrc or pRes pointer is null.
|
|
// ippStsSizeErr Indicates an error when len is less than or equal to 0.
|
|
//
|
|
*/
|
|
IPPAPI(IppStatus, ippsSignChangeRate_16s,(const Ipp16s* pSrc, int len,
|
|
Ipp32s* pRes))
|
|
|
|
IPPAPI(IppStatus, ippsSignChangeRate_32f,(const Ipp32f* pSrc, int len,
|
|
Ipp32f* pRes))
|
|
|
|
IPPAPI(IppStatus, ippsSignChangeRateXor_32f,(const Ipp32f* pSrc, int len,
|
|
Ipp32s* pRes))
|
|
|
|
IPPAPI(IppStatus, ippsSignChangeRate_Count0_16s,(const Ipp16s* pSrc, int len,
|
|
Ipp32s* pRes))
|
|
|
|
IPPAPI(IppStatus, ippsSignChangeRate_Count0_32f,(const Ipp32f* pSrc, int len,
|
|
Ipp32f* pRes))
|
|
|
|
/* /////////////////////////////////////////////////////////////////////////////
|
|
// Name: ippsLinearPrediction_*
|
|
// Purpose: Performs linear prediction analysis on the input vector.
|
|
//
|
|
// Parameters:
|
|
// pSrc Pointer to the input vector [lenSrc]
|
|
// lenSrc Length of the input vector pSrc.
|
|
// pDst Pointer to the output LPC coefficients vector [lenDst].
|
|
// lenDst Length of the output vector pDst.
|
|
// scaleFactor
|
|
// Return:
|
|
// ippStsNoErr Indicates no error.
|
|
// ippStsNullPtrErr Indicates an error when the pSrc or pDst pointer is null.
|
|
// ippStsSizeErr Indicates an error when lenSrc or lenDst is less than or
|
|
// equal to 0, lenDst is greater or equal than lenSrc.
|
|
// ippStsNoOperation Indicates no solution to the LPC problem.
|
|
//
|
|
*/
|
|
IPPAPI(IppStatus, ippsLinearPrediction_Cov_32f,(const Ipp32f *pSrc, int lenSrc,
|
|
Ipp32f *pDst, int lenDst))
|
|
|
|
IPPAPI(IppStatus, ippsLinearPrediction_Cov_16s_Sfs,(const Ipp16s* pSrc, int lenSrc,
|
|
Ipp16s* pDst, int lenDst, int scaleFactor))
|
|
|
|
IPPAPI(IppStatus, ippsLinearPrediction_Auto_32f,(const Ipp32f *pSrc, int lenSrc,
|
|
Ipp32f *pDst, int lenDst))
|
|
|
|
IPPAPI(IppStatus, ippsLinearPrediction_Auto_16s_Sfs,(const Ipp16s* pSrc, int lenSrc,
|
|
Ipp16s* pDst, int lenDst, int scaleFactor))
|
|
/* /////////////////////////////////////////////////////////////////////////////
|
|
// Name: ippsLinearPredictionNeg_Auto_*
|
|
// Purpose: Performs linear prediction analysis on the input vector.
|
|
// The same formula as ippsLinearPrediction_Auto with -r[k] in the right part
|
|
//
|
|
// Parameters:
|
|
// pSrc Pointer to the input vector [lenSrc]
|
|
// lenSrc Length of the input vector pSrc.
|
|
// pDst Pointer to the output LPC coefficients vector [lenDst].
|
|
// lenDst Length of the output vector pDst.
|
|
// scaleFactor
|
|
// Return:
|
|
// ippStsNoErr Indicates no error.
|
|
// ippStsNullPtrErr Indicates an error when the pSrc or pDst pointer is null.
|
|
// ippStsSizeErr Indicates an error when lenSrc or lenDst is less than or
|
|
// equal to 0, lenDst is greater or equal than lenSrc.
|
|
// ippStsNoOperation Indicates no solution to the LPC problem.
|
|
//
|
|
*/
|
|
IPPAPI(IppStatus, ippsLinearPredictionNeg_Auto_32f,(const float *pSrc,int lenSrc,float *pDst,
|
|
int lenDst))
|
|
IPPAPI(IppStatus, ippsLinearPredictionNeg_Auto_16s_Sfs, (const Ipp16s* pSrc, int lenSrc,
|
|
Ipp16s* pDst, int lenDst, int scaleFactor))
|
|
|
|
/* /////////////////////////////////////////////////////////////////////////////
|
|
// Name: ippsDurbin_*
|
|
// Purpose: Performs Durbin's recursion on an input vector
|
|
// of autocorrelations.
|
|
// Parameters:
|
|
// pSrc Pointer to the input vector [ len+1].
|
|
// pDst Pointer to the output LPC coefficients vector [len].
|
|
// len Length of the input and output vectors.
|
|
// pErr Pointer to the residual prediction error.
|
|
// scaleFactor
|
|
// Return:
|
|
// ippStsNoErr Indicates no error.
|
|
// ippStsNullPtrErr Indicates an error when the pSrc or pDst or pErr
|
|
// pointer is null.
|
|
// ippStsSizeErr Indicates an error when lenis less than or equal to 0
|
|
// ippStsMemAllocErr memory alllocation error
|
|
// ippStsNoOperation ndicates no solution to the LPC problem.
|
|
//
|
|
*/
|
|
IPPAPI(IppStatus, ippsDurbin_32f,(const Ipp32f *pSrc, Ipp32f *pDst, int lenDst,
|
|
Ipp32f* pErr))
|
|
|
|
IPPAPI(IppStatus, ippsDurbin_16s_Sfs,(const Ipp16s* pSrc, Ipp16s* pDst,
|
|
int lenDst,Ipp32f* pErr, int scaleFactor))
|
|
|
|
/* /////////////////////////////////////////////////////////////////////////////
|
|
// Name: ippsLPToCepstrum_*
|
|
// Purpose: Calculates cepstrum coefficients from linear
|
|
// prediction coefficients.
|
|
// Parameters:
|
|
// pSrc Pointer to the linear prediction coefficients [len].
|
|
// pDst Pointer to the cepstrum coefficients [len].
|
|
// len Number of elements in the source and destination vectors.
|
|
// scaleFactor
|
|
// Return:
|
|
// ippStsNoErr Indicates no error.
|
|
// ippStsNullPtrErr Indicates an error when the pSrc or pDst pointer is null.
|
|
// ippStsSizeErr Indicates an error when len is less than or equal to 0
|
|
//
|
|
*/
|
|
IPPAPI(IppStatus, ippsLPToCepstrum_32f,(const Ipp32f* pSrc, Ipp32f* pDst,
|
|
int len))
|
|
|
|
IPPAPI(IppStatus, ippsLPToCepstrum_16s_Sfs,(const Ipp16s* pSrc, Ipp16s* pDst,
|
|
int len, int scaleFactor))
|
|
|
|
/* /////////////////////////////////////////////////////////////////////////////
|
|
// Name: ippsCepstrumToLP_*
|
|
// Purpose: Calculates linear prediction coefficients from
|
|
// cepstrum coefficients.
|
|
// Parameters:
|
|
// pSrc Pointer to the cepstrum coefficients [len].
|
|
// pDst Pointer to the linear prediction coefficients [len].
|
|
// len Number of elements in the source and destination vectors.
|
|
// scaleFactor
|
|
// Return:
|
|
// ippStsNoErr Indicates no error.
|
|
// ippStsNullPtrErr Indicates an error when the pSrc or pDst pointer is null.
|
|
// ippStsSizeErr Indicates an error when len is less than or equal to 0.
|
|
//
|
|
*/
|
|
IPPAPI(IppStatus, ippsCepstrumToLP_32f,(const Ipp32f* pSrc, Ipp32f* pDst,
|
|
int len))
|
|
|
|
IPPAPI(IppStatus, ippsCepstrumToLP_16s_Sfs,(const Ipp16s* pSrc, Ipp16s* pDst,
|
|
int len, int scaleFactor))
|
|
|
|
/* /////////////////////////////////////////////////////////////////////////////
|
|
// Name: ippsLPToReflection_*
|
|
// Purpose: Calculates the linear prediction reflection
|
|
// coefficients from the linear prediction coefficients.
|
|
// Parameters:
|
|
// pSrc Pointer to the linear prediction coefficients [len].
|
|
// pDst Pointer to the linear prediction reflection coefficients [len].
|
|
// len Number of elements in the source and destination vectors.
|
|
// scaleFactor
|
|
// Return:
|
|
// ippStsNoErr Indicates no error.
|
|
// ippStsNullPtrErr Indicates an error when the pSrc or pDst pointer is null.
|
|
// ippStsSizeErr Indicates an error when len is less than or equal to 0.
|
|
// ippStsNoOperation Indicates that reflection coefficients could not be calculated
|
|
//
|
|
*/
|
|
IPPAPI(IppStatus, ippsLPToReflection_32f,(const Ipp32f* pSrc, Ipp32f* pDst,
|
|
int len))
|
|
|
|
IPPAPI(IppStatus, ippsLPToReflection_16s_Sfs,(const Ipp16s* pSrc, Ipp16s* pDst,
|
|
int len, int scaleFactor))
|
|
/* /////////////////////////////////////////////////////////////////////////////
|
|
|
|
// Name: ippsDTW_L2_32f_D2L*
|
|
// Purpose: Computes the distance between observation and reference vector
|
|
// sequences using Dynamic Time Warping algorithm.
|
|
//
|
|
// Parameters:
|
|
// pSrc1 Pointer to the first input (observation) vector [height1*step].
|
|
// pSrc2 Pointer to the second input (reference) vector [height2*step].
|
|
// mSrc1 Pointer to the first input (observation) matrix [height1][width].
|
|
// mSrc2 Pointer to the second input (reference) matrix [height2][width].
|
|
// height1 Number of rows in the first input matrix N1.
|
|
// height2 Number of rows in the first input matrix N2.
|
|
// width Length of the input matrices row M.
|
|
// step Row step in pSrc1 and pSrc2.
|
|
// pDist Pointer to the distance value.
|
|
// beam Beam value, used if positive.
|
|
// delta Endpoint constraint value.
|
|
// scaleFactor Scale factor for input values .
|
|
// Return Value
|
|
// ippStsNoErr Indicates no error.
|
|
// ippStsNullPtrErr Indicates an error when the pSrc1, pSrc2, mSrc1, mSrc2, or pDist pointer is null.
|
|
// ippStsSizeErr Indicates an error when height1, height2, or width is less than or equal to 0 or delta is less than 0 or greater than height2.
|
|
// ippStsStrideErr Indicates an error when step is less than width.
|
|
// ippStsLPCCalcErr Indicates that there are now admissible paths for height1, height2 and delta values.
|
|
*/
|
|
IPPAPI(IppStatus, ippsDTW_L2_32f_D2L,(const Ipp32f** mSrc1, int height1,
|
|
const Ipp32f** mSrc2, int height2,
|
|
int width, Ipp32f* pDist, int delta,
|
|
Ipp32f beam))
|
|
IPPAPI(IppStatus, ippsDTW_L2_32f_D2,(const Ipp32f* mSrc1, int height1,
|
|
const Ipp32f* mSrc2, int height2,
|
|
int width, int step, Ipp32f* pDist, int delta,
|
|
Ipp32f beam))
|
|
IPPAPI(IppStatus, ippsDTW_L2_8u32s_D2Sfs,(const Ipp8u* pSrc1, int height1,
|
|
const Ipp8u* pSrc2, int height2,
|
|
int width, int step, Ipp32s* pDist, int delta,
|
|
Ipp32s beam, int scaleFactor))
|
|
IPPAPI(IppStatus, ippsDTW_L2_8u32s_D2LSfs,(const Ipp8u** mSrc1, int height1,
|
|
const Ipp8u** mSrc2, int height2,
|
|
int width, Ipp32s* pDist, int delta,
|
|
Ipp32s beam, int scaleFactor))
|
|
IPPAPI(IppStatus, ippsDTW_L2Low_16s32s_D2Sfs,(const Ipp16s* pSrc1, int height1,
|
|
const Ipp16s* pSrc2, int height2,
|
|
int width, int step, Ipp32s* pDist, int delta,
|
|
Ipp32s beam, int scaleFactor))
|
|
IPPAPI(IppStatus, ippsDTW_L2Low_16s32s_D2LSfs,(const Ipp16s** mSrc1, int height1,
|
|
const Ipp16s** mSrc2, int height2,
|
|
int width, Ipp32s* pDist, int delta,
|
|
Ipp32s beam, int scaleFactor))
|
|
/* /////////////////////////////////////////////////////////////////////////////
|
|
// Name: ippsSchur_*
|
|
// Purpose: Schur's recursion for an input vector of
|
|
// autocorrelations.
|
|
//
|
|
// Parameters:
|
|
// pSrc Pointer to the input autocorrelations vector [len+1].
|
|
// pDst Pointer to the output reflection coefficients vector [len].
|
|
// len Length of the output vectors.
|
|
// pErr Pointer to the resulting prediction error.
|
|
// scaleFactor
|
|
// Return:
|
|
// ippStsNoErr Indicates no error.
|
|
// ippStsNullPtrErr Indicates an error when the pSrc or pDst or pErr pointer
|
|
// is null.
|
|
// ippStsSizeErr Indicates an error when lenSrc or lenDst is less than or
|
|
// equal to 0 or pSrc < pDst.
|
|
// ippStsMemAllocErr memory alllocation error
|
|
// ippStsDivByZeroErr Indicates no solution to the LPC problem
|
|
*/
|
|
IPPAPI(IppStatus, ippsSchur_32f,(const Ipp32f* pSrc, Ipp32f* pDst, int len, Ipp32f* pErr))
|
|
IPPAPI(IppStatus, ippsSchur_16s_Sfs,(const Ipp16s* pSrc, Ipp16s* pDst, int len,
|
|
Ipp32f* pErr,int scaleFactor))
|
|
|
|
|
|
/* /////////////////////////////////////////////////////////////////////////////
|
|
// Name: ippsReflectionToLP_*
|
|
// Purpose: Calculates the linear prediction coefficients from
|
|
// the linear prediction reflection coefficients.
|
|
// Parameters:
|
|
// pSrc Pointer to the linear prediction reflection coefficients [len].
|
|
// pDst Pointer to the linear prediction coefficients [len].
|
|
// len Number of elements in the source and destination vectors.
|
|
// scaleFactor
|
|
// Return:
|
|
// ippStsNoErr Indicates no error.
|
|
// ippStsNullPtrErr Indicates an error when the pSrc or pDst pointer is null.
|
|
// ippStsSizeErr Indicates an error when len is less than or equal to 0
|
|
//
|
|
*/
|
|
IPPAPI(IppStatus, ippsReflectionToLP_32f,(const Ipp32f* pSrc, Ipp32f* pDst,
|
|
int len))
|
|
IPPAPI(IppStatus, ippsReflectionToLP_16s_Sfs,(const Ipp16s* pSrc, Ipp16s* pDst,
|
|
int len, int scaleFactor))
|
|
|
|
/*/////////////////////////////////////////////////////////////////////////////
|
|
// Name: ippsReflectionToAR_*
|
|
// ippsReflectionToLAR_*
|
|
// ippsReflectionToTrueAR_*
|
|
// Purpose: Converts reflection coefficients to area ratios.
|
|
//
|
|
// Parameters:
|
|
// pSrc Pointer to the input vector [len].
|
|
// pDst Pointer to the destination vector [len].
|
|
// val Threshold value ( 0 < val < 1 ).
|
|
// len Length of the input and output vectors.
|
|
//
|
|
// Returns:
|
|
// ippStsNoErr Indicates no error.
|
|
// ippStsNullPtrErr Indicates an error when the pSrc or pDst
|
|
// pointer is null.
|
|
// ippStsSizeErr Indicates an error when len is less than or equal to 0.
|
|
// ippStsDivByZero Indicates a warning for zero-valued divisor vector
|
|
// element. Operation execution is not aborted. The value of
|
|
// the destination vector element in the floating-point
|
|
// operations +Inf. The value of the destination vector
|
|
// element in the integer operations IPP_MAX_16S.
|
|
// ippStsNoOperation Indicates an error when 0<val<1 is not true.
|
|
// Notes:
|
|
//
|
|
*/
|
|
IPPAPI(IppStatus, ippsReflectionToAR_16s_Sfs, (const Ipp16s* pSrc,
|
|
int srcShiftVal, Ipp16s* pDst, int len, int scaleFactor))
|
|
|
|
IPPAPI(IppStatus, ippsReflectionToAR_32f, (const Ipp32f* pSrc, Ipp32f* pDst,
|
|
int len))
|
|
|
|
IPPAPI(IppStatus, ippsReflectionToLAR_16s_Sfs, (const Ipp16s* pSrc,
|
|
int srcShiftVal, Ipp16s* pDst, int len, Ipp32f val, int scaleFactor))
|
|
|
|
IPPAPI(IppStatus, ippsReflectionToLAR_32f, (const Ipp32f* pSrc,
|
|
Ipp32f* pDst, int len, Ipp32f val))
|
|
|
|
IPPAPI(IppStatus, ippsReflectionToTrueAR_16s_Sfs, (const Ipp16s* pSrc,
|
|
int srcShiftVal, Ipp16s* pDst, int len, int scaleFactor))
|
|
|
|
IPPAPI(IppStatus, ippsReflectionToTrueAR_32f, (const Ipp32f* pSrc,
|
|
Ipp32f* pDst, int len))
|
|
|
|
/*/////////////////////////////////////////////////////////////////////////////
|
|
// Name: ippsPitchmarkToF0Cand_*
|
|
// Purpose: Calculates rise and fall amplitude and duration for tilt.
|
|
//
|
|
// Parameters:
|
|
// pSrc Pointer to the input vector [len].
|
|
// pDst Pointer to the destination vector [len].
|
|
// len Length of the input and output vectors.
|
|
//
|
|
// Returns:
|
|
// ippStsNoErr Indicates no error.
|
|
// ippStsNullPtrErr Indicates an error when the pSrc or pDst
|
|
// pointer is null.
|
|
// ippStsSizeErr Indicates an error when len is less than or equal to 0.
|
|
// ippStsDivByZero Indicates a warning for zero-valued divisor vector
|
|
// element. Operation execution is not aborted. The value of
|
|
// the destination vector element in the floating-point
|
|
// operations +Inf. The value of the destination vector
|
|
// element in the integer operations IPP_MAX_16S.
|
|
// Notes:
|
|
*/
|
|
IPPAPI(IppStatus, ippsPitchmarkToF0Cand_32f, (const Ipp32f* pSrc,
|
|
Ipp32f* pDst, int len))
|
|
|
|
IPPAPI(IppStatus, ippsPitchmarkToF0Cand_16s_Sfs, (const Ipp16s* pSrc,
|
|
Ipp16s* pDst, int len, int scaleFactor))
|
|
|
|
/* /////////////////////////////////////////////////////////////////////////////
|
|
// Name: ippsUnitCurve_*_*
|
|
//
|
|
// Purpose: Calculates tilt for rise and fall coefficients.
|
|
//
|
|
// Parameters:
|
|
// pSrc Pointer to the input array [len].
|
|
// pSrcDst Pointer to the input and destination vector [len].
|
|
// pDst Pointer to the output array [len].
|
|
// len Number of elements in the input vector.
|
|
// srcShiftVal Input scale factor.
|
|
// scaleFactor
|
|
//
|
|
// Return:
|
|
// ippStsNoErr Indicates no error.
|
|
// ippStsNullPtrErr Indicates an error when the pSrc, pSrcDst or pDst
|
|
// pointer is null.
|
|
// ippStsSizeErr Indicates an error when len is less than or equal to 0.
|
|
//
|
|
*/
|
|
IPPAPI(IppStatus, ippsUnitCurve_16s_Sfs, (const Ipp16s* pSrc, int srcShiftVal,
|
|
Ipp16s* pDst, int len, int scaleFactor))
|
|
|
|
IPPAPI(IppStatus, ippsUnitCurve_32f, (const Ipp32f* pSrc,
|
|
Ipp32f* pDst, int len))
|
|
|
|
IPPAPI(IppStatus, ippsUnitCurve_16s_ISfs, (Ipp16s* pSrcDst, int srcShiftVal,
|
|
int len, int scaleFactor))
|
|
|
|
IPPAPI(IppStatus, ippsUnitCurve_32f_I, (Ipp32f* pSrcDst, int len))
|
|
|
|
/* /////////////////////////////////////////////////////////////////////////////
|
|
// Name: ippsLPToLSP_32f
|
|
// Purpose: computes linear spectral pairs from LPC (in the cosine domain).
|
|
//
|
|
// Parameters:
|
|
// pSrcLPC Pointer to the input LPC coefficients vector [len].
|
|
// pDstLSP Pointer to the output LSP coefficients vector [len].
|
|
// len Number of LPC coefficients.
|
|
// nRoots Number of found LSP values.
|
|
// nInt Number of intervals while roots finding.
|
|
// nDiv Number of interval divisions while roots finding.
|
|
// inScale Scale factor for pSrcLPC values.
|
|
// scaleFactor Scale factor for pDstLSP values .
|
|
// srcShiftVal Scale factor for pSrcLP values .
|
|
//
|
|
// Return:
|
|
// ippStsNoErr Indicates no error.
|
|
// ippStsNullPtrErr Indicates an error when the pSrc or pDst pointer is null.
|
|
// ippStsSizeErr Indicates an error when lenSrc or len is less than or equal to 0
|
|
// or pSrc < pDst.
|
|
// ippStsMemAllocErr memory alllocation error
|
|
// ippStsNoRootFoundErr if no decision exists2
|
|
*/
|
|
IPPAPI(IppStatus, ippsLPToLSP_32f,(const Ipp32f* pSrcLPC, Ipp32f* pDstLSP, int len,
|
|
int* nRoots,int nInt, int nDiv))
|
|
IPPAPI(IppStatus, ippsLPToLSP_16s_Sfs,(const Ipp16s* pSrcLP, int srcShiftVal, Ipp16s* pDstLSP,
|
|
int len,int* nRoots,int nInt, int nDiv, int scaleFactor))
|
|
|
|
/* /////////////////////////////////////////////////////////////////////////////
|
|
// Name: ippsLSPToLP_32f
|
|
// Purpose: computes linear spectral pairs from LPC (in the cosine domain).
|
|
//
|
|
// Arguments:
|
|
// pDstLPC Pointer to the output LPC coefficients vector [len].
|
|
// pSrcLSP Pointer to the input LSP coefficients vector [len].
|
|
// len Number of LPC coefficients.
|
|
// inScale Scale factor for pSrcLPC values.
|
|
// scaleFactor Scale factor for pDstLSP values .
|
|
//
|
|
// Return Value
|
|
// ippStsNoErr Indicates no error.
|
|
// ippStsNullPtrErr Indicates an error when the pSrc or pDst pointer is null.
|
|
// ippStsSizeErr Indicates an error when lenSrc or len is less than or equal to 0
|
|
// or pSrc < pDst.
|
|
// ippStsMemAllocErr memory alllocation error
|
|
*/
|
|
IPPAPI(IppStatus, ippsLSPToLP_32f,(const Ipp32f* pSrcLSP, Ipp32f* pDstLPC, int len))
|
|
IPPAPI(IppStatus, ippsLSPToLP_16s_Sfs,(const Ipp16s* pSrcLSP, int srcShiftVal, Ipp16s* pDstLP,
|
|
int len, int scaleFactor))
|
|
|
|
/* /////////////////////////////////////////////////////////////////////////////
|
|
// Name: ippsLPToSpectrum_32f
|
|
// Purpose: Computes first half of a LP magnitude spectrum
|
|
// ippsLPToSpectrum_32f
|
|
// Arguments:
|
|
// pSrc Pointer to the input LPC coefficients vector [len].
|
|
// pDst Pointer to the output LP spectrum coefficients vector [2order-1].
|
|
// len Number of LPC coefficients.
|
|
// order FFT order for spectrum calculation.
|
|
// val The value of add to spectrum.
|
|
// scaleFactor Scale factor for pDst values .
|
|
//
|
|
// Return Value
|
|
// ippStsNoErr Indicates no error.
|
|
// ippStsNullPtrErr Indicates an error when the pSrc or pDst pointer is null.
|
|
// ippStsSizeErr Indicates an error when len is less than or equal to 0.
|
|
// ippStsFftOrderErr Indicates an error when the order value is incorrect.
|
|
// ippStsDivByZero Indicates a warning for zero-valued divisor vector element. Operation
|
|
// execution is not aborted. The value of the destination vector element in the floating-point
|
|
// operations is equal to +Inf : and in the integer operations is equal to IPP_MAX_16S.
|
|
*/
|
|
|
|
IPPAPI(IppStatus, ippsLPToSpectrum_32f,(const Ipp32f *LPCoeffs,int nLP,Ipp32f *pDst,
|
|
int lenFFT,Ipp32f val))
|
|
IPPAPI(IppStatus, ippsLPToSpectrum_16s_Sfs,(const Ipp16s* pSrc, int len, Ipp16s* pDst, int order,
|
|
Ipp32s val, int scaleFactor))
|
|
/* /////////////////////////////////////////////////////////////////////////////
|
|
// Name: ippsMelToLinear_32f
|
|
// Purpose: Converts Mel-scaled values to linear scale values.
|
|
//
|
|
// Parameters:
|
|
// pSrc Pointer to the input vector [len]
|
|
// pDst Pointer to the output vector [len]
|
|
// len The length of input and output vectors
|
|
// melMul Multiply factor in the mel-scale equation
|
|
// melDiv Divide factor in the mel-scale equation
|
|
//
|
|
// Return:
|
|
// ippStsNoErr Indicates no error.
|
|
// ippStsNullPtrErr Indicates an error when the pSrc or pDst pointer is null.
|
|
// ippStsSizeErr Indicates an error when len is less than or equal to 0,
|
|
// of melMul or melDiv is equal to 0.
|
|
*/
|
|
|
|
IPPAPI(IppStatus, ippsMelToLinear_32f,(const Ipp32f* pSrc, Ipp32f* pDst, int len,
|
|
Ipp32f melMul, Ipp32f melDiv))
|
|
|
|
/* /////////////////////////////////////////////////////////////////////////////
|
|
// Name: ippsLinearToMel_32f
|
|
// Purpose: Converts linear-scale values to Mel-scale values.
|
|
//
|
|
// Parameters:
|
|
// pSrc Pointer to the input vector [len]
|
|
// pDst Pointer to the output vector [len]
|
|
// len The length of input and output vectors
|
|
// melMul Multiply factor in the mel-scale equation
|
|
// melDiv Divide factor in the mel-scale equation
|
|
//
|
|
// Return:
|
|
// ippStsNoErr Indicates no error.
|
|
// ippStsNullPtrErr Indicates an error when the pSrc or pDst pointer is null.
|
|
// ippStsSizeErr Indicates an error when len is less than or equal to 0,
|
|
// of melMul or melDiv is equal to 0.
|
|
//
|
|
*/
|
|
IPPAPI(IppStatus, ippsLinearToMel_32f,(const Ipp32f* pSrc, Ipp32f* pDst, int len,
|
|
Ipp32f melMul, Ipp32f melDiv))
|
|
|
|
/* /////////////////////////////////////////////////////////////////////////////
|
|
// Name: ippsCopyWithPadding_*
|
|
// Purpose: Copies the input signal to the output with zero padding
|
|
// Parameters:
|
|
// pSrc Pointer to the input vector [lenSrc]
|
|
// pDst Pointer to the output vector [lenDst]
|
|
// lenSrc The length of pSrc vector.
|
|
// lenDst The length of pDst vector.
|
|
//
|
|
// Return:
|
|
// ippStsNoErr Indicates no error.
|
|
// ippStsNullPtrErr Indicates an error when the pSrc or pDst pointer is null.
|
|
// ippStsSizeErr Indicates an error when lenSrc or lenDst is less than or
|
|
// equal to 0 or lenDst is less than lenSrc
|
|
*/
|
|
|
|
|
|
IPPAPI(IppStatus, ippsCopyWithPadding_16s,(const Ipp16s* pSrc, int lenSrc,
|
|
Ipp16s* pDst, int lenDst))
|
|
|
|
IPPAPI(IppStatus, ippsCopyWithPadding_32f,(const Ipp32f* pSrc, int lenSrc,
|
|
Ipp32f* pDst, int lenDst))
|
|
|
|
/* /////////////////////////////////////////////////////////////////////////////
|
|
// Name: IppStatus ippsMelFBankGetSize_* (int winSize,
|
|
// int nFilter,
|
|
// IppMelMode mode,
|
|
// int* pSize))
|
|
// IppStatus ippsMelFBankGetSizeLow_Aurora_* (int* pSize)
|
|
// IppStatus ippsMelFBankGetSizeHigh_Aurora_* (int* pSize)
|
|
//
|
|
// Description: Mel-frequency filter bank structure size - this function determines the
|
|
// size required for the Mel-frequency filter bank structure and associated
|
|
// storage. It should be called before memory allocation and before ippsMelFBankInit_32s.
|
|
//
|
|
// Input Arguments: winSize - frame length in samples (32 = winSize = 8192).
|
|
// sampFreq - input signal sampling frequency Fs in Hz (0 < sampFreq = 48000).
|
|
// nFilter - number of Mel-scale filter banks K (0 < nFilter = winSize).
|
|
// mode - flag that determines the execution mode. Currently only
|
|
// IPP_FBANK_FREQWGT is supported.
|
|
//
|
|
// Output Arguments:pSize - pointer to the variable to contain the size of the filter bank structure.
|
|
//
|
|
//
|
|
// Returns: ippStsNoErr - No Error.
|
|
// ippStsFBankFlagErr - Indicates an error when the mode value is incorrect.
|
|
// ippStsNullPtrErr - Indicates an error when pSize pointer is null.
|
|
// ippStsSizeErr - Indicates an error when winSize, nFilter, or sampFreq is less than or equal to 0.
|
|
//
|
|
// Notes:
|
|
*/
|
|
IPPAPI(IppStatus, ippsMelFBankGetSize_32s,(int winSize, int nFilter,
|
|
IppMelMode mode, int* pSize))
|
|
|
|
IPPAPI(IppStatus, ippsMelFBankGetSize_16s,(int winSize, int nFilter,
|
|
IppMelMode mode, int* pSize))
|
|
|
|
IPPAPI(IppStatus, ippsMelFBankGetSize_32f,(int winSize, int nFilter,
|
|
IppMelMode mode, int* pSize))
|
|
|
|
IPPAPI(IppStatus, ippsMelFBankGetSizeLow_Aurora_32f,(int* pSize))
|
|
|
|
IPPAPI(IppStatus, ippsMelFBankGetSizeHigh_Aurora_32f,(int* pSize))
|
|
|
|
IPPAPI(IppStatus, ippsMelFBankGetSizeLow_Aurora_16s,(int* pSize))
|
|
|
|
IPPAPI(IppStatus, ippsMelFBankGetSizeHigh_Aurora_16s,(int* pSize))
|
|
|
|
/* /////////////////////////////////////////////////////////////////////////////
|
|
// Name: ippsMelFBankInitAlloc_*
|
|
// Purpose: Initializes the structure for performing the Mel
|
|
// frequency filter bank analysis.
|
|
// Parameters:
|
|
// pFBank Pointer to the Mel-scale filter bank structure to be created.
|
|
// pFFTLen Pointer to the order of FFT used for the filter bank evaluation.
|
|
// winSize Frame length (samples)
|
|
// sampFreq Input signal sampling frequency (in Hz)
|
|
// lowFreq Start frequency of the first band pass filter (in Hz)
|
|
// highFreq End frequency of the last band pass filter (in Hz)
|
|
// nFilter Number of Mel-scale filters banks K.
|
|
// melMul Mel-scale formula multiply factor.
|
|
// melDiv Mel-scale formula divisor.
|
|
// mode Flags that determine the execution mode; can have
|
|
// the following values:
|
|
// IPP_FBANK_MELWGT - the function calculates filter bank
|
|
// weights in Mel-scale;
|
|
// IPP_FBANK_FREQWGT - the function calculates filter bank
|
|
// weights in the frequency space.
|
|
// One of the above two flags should necessarily be set.
|
|
// IPP_POWER_SPECTRUM - indicates that the FFT power
|
|
// spectrum is used during the filter bank analysis.
|
|
// Return:
|
|
// ippStsNoErr Indicates no error.
|
|
// ippStsNullPtrErr Indicates an error when pFBank or pFFTLen pointer is null.
|
|
// ippStsSizeErr Indicates an error when winSize, nFilter, sampFreq, or
|
|
// lowFreqis less than or equal to 0.
|
|
// ippStsFBankFreqErr Indicates an error when highFreqis less than lowFreqor
|
|
// highFreq is greater than sampFreq/2.
|
|
// ippStsFBankFlagErr Indicates an error when the modevalue is incorrect.
|
|
// ippStsMemAllocErr Indicates an error when no memory was allocated.
|
|
//
|
|
*/
|
|
|
|
IPPAPI(IppStatus, ippsMelFBankInitAlloc_16s,(IppsFBankState_16s** pFBank,
|
|
int* pFFTLen, int winSize, Ipp32f sampFreq, Ipp32f lowFreq,
|
|
Ipp32f highFreq, int nFilter, Ipp32f melMul, Ipp32f melDiv,
|
|
IppMelMode mode))
|
|
|
|
IPPAPI(IppStatus, ippsMelFBankInitAlloc_32f,(IppsFBankState_32f** pFBank,
|
|
int* pFFTLen, int winSize, Ipp32f sampFreq, Ipp32f lowFreq,
|
|
Ipp32f highFreq, int nFilter, Ipp32f melMul, Ipp32f melDiv,
|
|
IppMelMode mode))
|
|
|
|
IPPAPI(IppStatus, ippsMelFBankInitAllocLow_Aurora_32f,(IppsFBankState_32f** pFBank))
|
|
|
|
IPPAPI(IppStatus, ippsMelFBankInitAllocHigh_Aurora_32f,(IppsFBankState_32f** pFBank))
|
|
|
|
IPPAPI(IppStatus, ippsMelFBankInitAllocLow_Aurora_16s,(IppsFBankState_16s** pFBank))
|
|
|
|
IPPAPI(IppStatus, ippsMelFBankInitAllocHigh_Aurora_16s,(IppsFBankState_16s** pFBank))
|
|
|
|
/* /////////////////////////////////////////////////////////////////////////////
|
|
// Name: ippsMelFBankInit_*
|
|
// Purpose: Initializes the structure for performing the Mel
|
|
// frequency filter bank analysis.
|
|
// Parameters:
|
|
// pFBank Pointer to the Mel-scale filter bank structure to be created.
|
|
// pFFTLen Pointer to the order of FFT used for the filter bank evaluation.
|
|
// winSize Frame length (samples)
|
|
// sampFreq Input signal sampling frequency (in Hz)
|
|
// lowFreq Start frequency of the first band pass filter (in Hz)
|
|
// highFreq End frequency of the last band pass filter (in Hz)
|
|
// nFilter Number of Mel-scale filters banks K.
|
|
// melMul Mel-scale formula multiply factor.
|
|
// melDiv Mel-scale formula divisor.
|
|
// mode Flags that determine the execution mode; can have
|
|
// the following values:
|
|
// IPP_FBANK_MELWGT - the function calculates filter bank
|
|
// weights in Mel-scale;
|
|
// IPP_FBANK_FREQWGT - the function calculates filter bank
|
|
// weights in the frequency space.
|
|
// One of the above two flags should necessarily be set.
|
|
// IPP_POWER_SPECTRUM - indicates that the FFT power
|
|
// spectrum is used during the filter bank analysis.
|
|
// Return:
|
|
// ippStsNoErr Indicates no error.
|
|
// ippStsNullPtrErr Indicates an error when pFBank or pFFTLen pointer is null.
|
|
// ippStsSizeErr Indicates an error when winSize, nFilter, sampFreq, or
|
|
// lowFreqis less than or equal to 0.
|
|
// ippStsFBankFreqErr Indicates an error when highFreqis less than lowFreqor
|
|
// highFreq is greater than sampFreq/2.
|
|
// ippStsFBankFlagErr Indicates an error when the modevalue is incorrect.
|
|
// ippStsMemAllocErr Indicates an error when no memory was allocated.
|
|
//
|
|
*/
|
|
|
|
IPPAPI(IppStatus, ippsMelFBankInit_32s,(IppsFBankState_32s* pFBank,
|
|
int* pFFTLen, int winSize, Ipp32s sampFreq,
|
|
Ipp32s lowFreq, Ipp32s highFreq, int nFilter,
|
|
Ipp32s melMulQ15, Ipp32s melDivQ15, IppMelMode mode))
|
|
|
|
IPPAPI(IppStatus, ippsMelFBankInit_16s,(IppsFBankState_16s* pFBank,
|
|
int* pFFTLen, int winSize, Ipp32f sampFreq, Ipp32f lowFreq,
|
|
Ipp32f highFreq, int nFilter, Ipp32f melMul, Ipp32f melDiv,
|
|
IppMelMode mode))
|
|
|
|
IPPAPI(IppStatus, ippsMelFBankInit_32f,(IppsFBankState_32f* pFBank,
|
|
int* pFFTLen, int winSize, Ipp32f sampFreq, Ipp32f lowFreq,
|
|
Ipp32f highFreq, int nFilter, Ipp32f melMul, Ipp32f melDiv,
|
|
IppMelMode mode))
|
|
|
|
IPPAPI(IppStatus, ippsMelFBankInitLow_Aurora_32f,(IppsFBankState_32f* pFBank))
|
|
|
|
IPPAPI(IppStatus, ippsMelFBankInitHigh_Aurora_32f,(IppsFBankState_32f* pFBank))
|
|
|
|
IPPAPI(IppStatus, ippsMelFBankInitLow_Aurora_16s,(IppsFBankState_16s* pFBank))
|
|
|
|
IPPAPI(IppStatus, ippsMelFBankInitHigh_Aurora_16s,(IppsFBankState_16s* pFBank))
|
|
|
|
/* /////////////////////////////////////////////////////////////////////////////
|
|
// Name: ippsMelLinFBankInitAlloc_*
|
|
// Purpose: Initializes the linear and mel-frequency filter banks
|
|
// Parameters:
|
|
// pFBank Pointer to the mel scale filter bank structure to be created.
|
|
// FFTLen Pointer to the length of FFT N used for filter bank evaluation.
|
|
// winSize Frame length (samples)
|
|
// sampFreq Input signal sampling frequency (in Hz)
|
|
// lowFreq Start frequency of the first band pass filter (in Hz)
|
|
// highLinFreq End frequency of the last band pass filter on linear
|
|
// scale (in Hz)
|
|
// highFreq End frequency of the last band pass filter (in Hz)
|
|
// nFilter Number of Mel-scale filters in the filter bank
|
|
// nLinFilter umber of Linear-scale filters in the filter bank
|
|
// melMul Mel scale formula factor
|
|
// melDiv Mel scale formula divisor
|
|
// mode One of the following values:
|
|
// IPP_FBANK_MELWGT - calculate fbank weights in Mel-scale
|
|
// IPP_FBANK_FREQWGT - calculate fbank weights in
|
|
// frequency space
|
|
// IPP_POWER_SPECTRUM - indicates that FFT power logarithm
|
|
// of input signal is calculated before filter bank
|
|
// evaluation by ippsEvalFBank function.
|
|
// Corresponding internal structures are initialized in
|
|
// the result filter bank structure.
|
|
//
|
|
// Return:
|
|
// ippStsNoErr Indicates no error.
|
|
// ippStsSizeErr Indicates an error when winSize, nFilter, nLinFilter,
|
|
// freq, lowFreq is less than or equal to 0 or nLinFilter
|
|
// is greater than nFilter;
|
|
// ippStsFBankFreqErr Indicates an error when (lowFreq > highlinFreq)
|
|
// or (highlinFreq > highFreq) or (highFreq > sampFreq/2)
|
|
// or (highLinFreq> lowFreq)&&(nLinFilter==0)
|
|
// or (highLinFreq< highFreq)&&(nLinFilter==nFilter)
|
|
// ippStsFBankFlagErr Indicates an error when the mode value is incorrect.
|
|
// ippStsMemAllocErr Indicates an error when no memory allocated.
|
|
*/
|
|
|
|
IPPAPI(IppStatus, ippsMelLinFBankInitAlloc_32f,(IppsFBankState_32f** pFBank,
|
|
int* pFFTLen, int winSize, Ipp32f sampFreq, Ipp32f lowFreq,
|
|
Ipp32f highFreq, int nFilter, Ipp32f highLinFreq, int nLinFilter,
|
|
Ipp32f melMul, Ipp32f melDiv, IppMelMode mode))
|
|
|
|
IPPAPI(IppStatus, ippsMelLinFBankInitAlloc_16s,(IppsFBankState_16s** pFBank,
|
|
int* pFFTLen, int winSize, Ipp32f sampFreq, Ipp32f lowFreq,
|
|
Ipp32f highFreq, int nFilter, Ipp32f highLinFreq, int nLinFilter,
|
|
Ipp32f melMul, Ipp32f melDiv, IppMelMode mode))
|
|
|
|
/* /////////////////////////////////////////////////////////////////////////////
|
|
// Name: ippsEmptyFBankInitAlloc_*
|
|
// Purpose: Initializes an empty filter bank structure.
|
|
// Parameters:
|
|
// pFBank Pointer to the filter bank structure to be created.
|
|
// pFFTLen Pointer to the order of FFT used for the
|
|
// filter bank evaluation.
|
|
// winSize Frame length (samples)
|
|
// nFilter Number of filters banks K.
|
|
// mode Flag determining the function's execution mode; can have
|
|
// the following value:
|
|
// IPP_POWER_SPECTRUM - indicates that the logarithm of the
|
|
// FFT power spectrum is used during the filter
|
|
// bank analysis.
|
|
//
|
|
// Return:
|
|
// ippStsNoErr Indicates no error.
|
|
// ippStsNullPtrErr Indicates an error when pFBank or pFFTLen pointer is null.
|
|
// ippStsSizeErr Indicates an error when winSize or nFilter or pFBank
|
|
// is less than or equal to 0;
|
|
// ippStsMemAllocErr Indicates an error when no memory allocated.
|
|
//
|
|
*/
|
|
IPPAPI(IppStatus, ippsEmptyFBankInitAlloc_32f,(IppsFBankState_32f** pFBank, int* pFFTLen,
|
|
int winSize, int nFilter, IppMelMode mode))
|
|
|
|
IPPAPI(IppStatus, ippsEmptyFBankInitAlloc_16s,(IppsFBankState_16s** pFBank, int* pFFTLen,
|
|
int winSize, int nFilter, IppMelMode mode))
|
|
|
|
/* /////////////////////////////////////////////////////////////////////////////
|
|
// Name: ippsFBankFree_*
|
|
// Purpose: Destroys the structure for the filter bank analysis.
|
|
// Parameters:
|
|
// pFBank Pointer to the filter bank structure.
|
|
//
|
|
// Return:
|
|
// ippStsNoErr Indicates no error.
|
|
// ippStsNullPtrErr Indicates an error when the pFBank pointer is null.
|
|
*/
|
|
IPPAPI(IppStatus, ippsFBankFree_16s,(IppsFBankState_16s* pFBank))
|
|
|
|
IPPAPI(IppStatus, ippsFBankFree_32f,(IppsFBankState_32f* pFBank))
|
|
|
|
/* /////////////////////////////////////////////////////////////////////////////
|
|
// Name: ippsFBankGetCenters_*
|
|
// Purpose: Retrieves the center frequencies of the
|
|
// triangular filter banks.
|
|
// Parameters:
|
|
// pFBank Pointer to the filter bank structure.
|
|
// pCenters Pointer to the output vector that contains the center
|
|
// frequencies.
|
|
//
|
|
// Return:
|
|
// ippStsNoErr Indicates no error.
|
|
// ippStsNullPtrErr Indicates an error when the pFBank or pCenters pointer is null.
|
|
// ippStsFBankErr Indicates an error when filter centers are not valid after filter
|
|
// bank initialization by ippsEmptyFBankInitAlloc function.
|
|
//
|
|
*/
|
|
|
|
IPPAPI(IppStatus, ippsFBankGetCenters_32f,(const IppsFBankState_32f* pFBank, int* pCenters))
|
|
|
|
IPPAPI(IppStatus, ippsFBankGetCenters_16s,(const IppsFBankState_16s* pFBank, int* pCenters))
|
|
|
|
/* /////////////////////////////////////////////////////////////////////////////
|
|
// Name: ippsFBankSetCenters_*
|
|
// Purpose: Sets the center frequencies of the
|
|
// triangular filter banks.
|
|
// Parameters:
|
|
// pFBank Pointer to the filter bank structure
|
|
// pCenters Pointer to the vector that contains center frequencies.
|
|
//
|
|
// Return:
|
|
// ippStsNoErr Indicates no error.
|
|
// ippStsNullPtrErr Indicates an error when the pFBank or pCenters pointer is null.
|
|
//
|
|
*/
|
|
|
|
IPPAPI(IppStatus, ippsFBankSetCenters_16s,(IppsFBankState_16s* pFBank,
|
|
const int* pCenters))
|
|
|
|
IPPAPI(IppStatus, ippsFBankSetCenters_32f,(IppsFBankState_32f* pFBank,
|
|
const int* pCenters))
|
|
|
|
|
|
/* /////////////////////////////////////////////////////////////////////////////
|
|
// Name: ippsFBankGetCoeffs_*
|
|
// Purpose: Retrieves the filter bank weight coefficients.
|
|
// Parameters:
|
|
// pFBank Pointer to the filter bank structure
|
|
// fIdx Filter index.
|
|
// pCoeffs Pointer to the filter coefficients vector.
|
|
//
|
|
// Return:
|
|
// ippStsNoErr Indicates no error.
|
|
// ippStsNullPtrErr Indicates an error when the pFBank or pCoeffs pointer is null.
|
|
// ippStsSizeErr Indicates an error when fIdx is less then 1 or greater
|
|
// then nFilter.
|
|
// ippStsFBankErr Indicates an error when fIdx filter coeffitients are not
|
|
// valid after filter centers reset or filter centers are not
|
|
// valid after filter bank initialization by
|
|
// ippsEmptyFBankInitAlloc function.
|
|
//
|
|
*/
|
|
|
|
IPPAPI(IppStatus, ippsFBankGetCoeffs_16s,(const IppsFBankState_16s* pFBank,
|
|
int fIdx, Ipp32f* pCoeffs))
|
|
|
|
IPPAPI(IppStatus, ippsFBankGetCoeffs_32f,(const IppsFBankState_32f* pFBank,
|
|
int fIdx, Ipp32f* pCoeffs))
|
|
|
|
/* /////////////////////////////////////////////////////////////////////////////
|
|
// Name: ippsFBankSetCoeffs_*
|
|
// Purpose: Sets the filter bank weight coefficients.
|
|
// Parameters:
|
|
// pFBank Pointer to the filter bank structure
|
|
// fIdx Filter index.
|
|
// pCoeffs Pointer to the output coefficients vector.
|
|
//
|
|
// Return:
|
|
// ippStsNoErr Indicates no error.
|
|
// ippStsNullPtrErr Indicates an error when the pFBank or pCoeffs pointer is null.
|
|
// ippStsSizeErr Indicates an error when fIdx is less then 1 or greater
|
|
// then nFilter.
|
|
// ippStsFBankErr Indicates an error when the weight coefficients are not
|
|
// available or valid.
|
|
//
|
|
*/
|
|
IPPAPI(IppStatus, ippsFBankSetCoeffs_16s,(IppsFBankState_16s* pFBank, int fIdx,
|
|
const Ipp32f* pCoeffs))
|
|
|
|
IPPAPI(IppStatus, ippsFBankSetCoeffs_32f,(IppsFBankState_32f* pFBank, int fIdx,
|
|
const Ipp32f* pCoeffs))
|
|
|
|
/* /////////////////////////////////////////////////////////////////////////////
|
|
// Name: ippsEvalFBank_*
|
|
// Purpose: Performs the filter bank analysis
|
|
// Parameters:
|
|
// pSrc Pointer to the source vector
|
|
// pDst Pointer to the filter bank coefficients vector [nFilter].
|
|
// pFBank Pointer to the filter bank structure.
|
|
// scaleFactor
|
|
//
|
|
// Return:
|
|
// ippStsNoErr Indicates no error.
|
|
// ippStsNullPtrErr Indicates an error when the pSrc, pDst pointer is null.
|
|
// ippStsFBankErr Indicates an error when pFBank structure is not ready for
|
|
// calculation.
|
|
//
|
|
*/
|
|
|
|
IPPAPI(IppStatus, ippsEvalFBank_16s_Sfs,(const Ipp16s* pSrc, Ipp16s* pDst,
|
|
const IppsFBankState_16s* pFBank, int scaleFactor))
|
|
|
|
IPPAPI(IppStatus, ippsEvalFBank_16s32s_Sfs,(const Ipp16s* pSrc, Ipp32s* pDst,
|
|
const IppsFBankState_16s* pFBank, int scaleFactor))
|
|
|
|
IPPAPI(IppStatus, ippsEvalFBank_32f,(const Ipp32f* pSrc, Ipp32f* pDst,
|
|
const IppsFBankState_32f* pFBank))
|
|
|
|
IPPAPI(IppStatus, ippsEvalFBank_32s_Sfs,(const Ipp32s* pSrc, Ipp32s* pDst,
|
|
const IppsFBankState_32s* pFBank, int scaleFactor))
|
|
|
|
/* /////////////////////////////////////////////////////////////////////////////
|
|
// Name: ippsDCTLifterGetSize_*
|
|
// Purpose: This function determines the
|
|
// size required for initializes the structure to perform DCT
|
|
// and lift the DCT coefficients. It should be called before
|
|
// memory allocation and before ippsDCTLifterInit_*
|
|
// Parameters:
|
|
// lenDCT Length of DCT will be used for MFCC calculation
|
|
// lenCeps Number (without c0) of cepstral coefficients to be calculated.
|
|
// nLifter Liftering factor
|
|
// pSize output
|
|
//
|
|
// Return:
|
|
// ippStsNoErr Indicates no error.
|
|
// ippStsNullPtrErr Indicates an error when the pSize pointer is null.
|
|
// ippStsSizeErr Indicates an error when lenDCT, lenCeps or nLifter is
|
|
// less than or equal to 0 or lenDCT is less than lenCeps.
|
|
//
|
|
*/
|
|
|
|
IPPAPI(IppStatus, ippsDCTLifterGetSize_32f,(int lenDCT, int lenCeps, int *pSize))
|
|
|
|
IPPAPI(IppStatus, ippsDCTLifterGetSize_C0_32f,(int lenDCT, int lenCeps, int *pSize))
|
|
|
|
IPPAPI(IppStatus, ippsDCTLifterGetSize_Mul_32f,(int lenDCT, int lenCeps, int *pSize))
|
|
|
|
IPPAPI(IppStatus, ippsDCTLifterGetSize_MulC0_32f,(int lenDCT, int lenCeps, int *pSize))
|
|
|
|
IPPAPI(IppStatus, ippsDCTLifterGetSize_16s,(int lenDCT, int lenCeps, int *pSize))
|
|
|
|
IPPAPI(IppStatus, ippsDCTLifterGetSize_C0_16s,(int lenDCT, int lenCeps, int *pSize))
|
|
|
|
IPPAPI(IppStatus, ippsDCTLifterGetSize_Mul_16s,(int lenDCT, int lenCeps, int *pSize))
|
|
|
|
IPPAPI(IppStatus, ippsDCTLifterGetSize_MulC0_16s,(int lenDCT, int lenCeps, int* pSize))
|
|
|
|
/* /////////////////////////////////////////////////////////////////////////////
|
|
// Name: ippsDCTLifterInit_*
|
|
// Purpose: Initializes the structure to perform DCT
|
|
// and lift the DCT coefficients.
|
|
// Parameters:
|
|
// pDCTLifter Pointer to the created structure for DCT calculation and
|
|
// liftering.
|
|
// lenDCT Length of DCT will be used for MFCC calculation
|
|
// lenCeps Number (without c0) of cepstral coefficients to be calculated.
|
|
// nLifter Liftering factor
|
|
// pLifter Pointer to liftering coefficients vector
|
|
// val Value to multiply output MFCC except c0 coefficient
|
|
// val0 Value to multiply output c0 coefficient
|
|
//
|
|
// Return:
|
|
// ippStsNoErr Indicates no error.
|
|
// ippStsNullPtrErr Indicates an error when the pLifter pointer is null.
|
|
// ippStsSizeErr Indicates an error when lenDCT, lenCeps or nLifter is
|
|
// less than or equal to 0 or lenDCT is less than lenCeps.
|
|
// ippStsMemAllocErr Indicates an error when no memory allocated.
|
|
//
|
|
*/
|
|
|
|
IPPAPI(IppStatus, ippsDCTLifterInit_32f,(IppsDCTLifterState_32f* pDCTLifter,
|
|
int lenDCT, int lenCeps, int nLifter, Ipp32f val))
|
|
|
|
IPPAPI(IppStatus, ippsDCTLifterInit_C0_32f,(IppsDCTLifterState_32f* pDCTLifter,
|
|
int lenDCT, int lenCeps, int nLifter, Ipp32f val, Ipp32f val0))
|
|
|
|
IPPAPI(IppStatus, ippsDCTLifterInit_Mul_32f,(IppsDCTLifterState_32f* pDCTLifter,
|
|
int lenDCT, const Ipp32f* pLifter, int lenCeps))
|
|
|
|
IPPAPI(IppStatus, ippsDCTLifterInit_MulC0_32f,(IppsDCTLifterState_32f* pDCTLifter,
|
|
int lenDCT, const Ipp32f* pLifter, int lenCeps))
|
|
|
|
IPPAPI(IppStatus, ippsDCTLifterInit_16s,(IppsDCTLifterState_16s* pDCTLifter,
|
|
int lenDCT, int lenCeps, int nLifter, Ipp32f val))
|
|
|
|
IPPAPI(IppStatus, ippsDCTLifterInit_C0_16s,(IppsDCTLifterState_16s* pDCTLifter,
|
|
int lenDCT, int lenCeps, int nLifter, Ipp32f val, Ipp32f val0))
|
|
|
|
IPPAPI(IppStatus, ippsDCTLifterInit_Mul_16s,(IppsDCTLifterState_16s* pDCTLifter,
|
|
int lenDCT, const Ipp32f* pLifter, int lenCeps))
|
|
|
|
IPPAPI(IppStatus, ippsDCTLifterInit_MulC0_16s,(IppsDCTLifterState_16s* pDCTLifter,
|
|
int lenDCT, const Ipp32s* pLifter, int lenCeps))
|
|
|
|
/* /////////////////////////////////////////////////////////////////////////////
|
|
// Name: ippsDCTLifterInitAlloc_MulC0_*
|
|
// Purpose: Initializes the structure to perform DCT
|
|
// and lift the DCT coefficients.
|
|
// Parameters:
|
|
// pDCTLifter Pointer to the created structure for DCT calculation and
|
|
// liftering.
|
|
// lenDCT Length of DCT will be used for MFCC calculation
|
|
// lenCeps Number (without c0) of cepstral coefficients to be calculated.
|
|
// nLifter Liftering factor
|
|
// pLifter Pointer to liftering coefficients vector
|
|
// val Value to multiply output MFCC except c0 coefficient
|
|
// val0 Value to multiply output c0 coefficient
|
|
//
|
|
// Return:
|
|
// ippStsNoErr Indicates no error.
|
|
// ippStsNullPtrErr Indicates an error when the pLifter pointer is null.
|
|
// ippStsSizeErr Indicates an error when lenDCT, lenCeps or nLifter is
|
|
// less than or equal to 0 or lenDCT is less than lenCeps.
|
|
// ippStsMemAllocErr Indicates an error when no memory allocated.
|
|
//
|
|
*/
|
|
|
|
IPPAPI(IppStatus, ippsDCTLifterInitAlloc_32f,(IppsDCTLifterState_32f** pDCTLifter,
|
|
int lenDCT, int lenCeps, int nLifter, Ipp32f val))
|
|
|
|
IPPAPI(IppStatus, ippsDCTLifterInitAlloc_C0_32f,(IppsDCTLifterState_32f** pDCTLifter,
|
|
int lenDCT, int lenCeps, int nLifter, Ipp32f val, Ipp32f val0))
|
|
|
|
IPPAPI(IppStatus, ippsDCTLifterInitAlloc_Mul_32f,(IppsDCTLifterState_32f** pDCTLifter,
|
|
int lenDCT, const Ipp32f* pLifter, int lenCeps))
|
|
|
|
IPPAPI(IppStatus, ippsDCTLifterInitAlloc_MulC0_32f,(IppsDCTLifterState_32f** pDCTLifter,
|
|
int lenDCT, const Ipp32f* pLifter, int lenCeps))
|
|
|
|
IPPAPI(IppStatus, ippsDCTLifterInitAlloc_16s,(IppsDCTLifterState_16s** pDCTLifter,
|
|
int lenDCT, int lenCeps, int nLifter, Ipp32f val))
|
|
|
|
IPPAPI(IppStatus, ippsDCTLifterInitAlloc_C0_16s,(IppsDCTLifterState_16s** pDCTLifter,
|
|
int lenDCT, int lenCeps, int nLifter, Ipp32f val, Ipp32f val0))
|
|
|
|
IPPAPI(IppStatus, ippsDCTLifterInitAlloc_Mul_16s,(IppsDCTLifterState_16s** pDCTLifter,
|
|
int lenDCT, const Ipp32f* pLifter, int lenCeps))
|
|
|
|
IPPAPI(IppStatus, ippsDCTLifterInitAlloc_MulC0_16s,(IppsDCTLifterState_16s** pDCTLifter,
|
|
int lenDCT, const Ipp32f* pLifter, int lenCeps))
|
|
|
|
|
|
/* /////////////////////////////////////////////////////////////////////////////
|
|
// Name: ippsDCTLifterFree_*
|
|
// Purpose: Destroys the structure for DCT and liftering
|
|
// Parameters:
|
|
// pDCTLifter Pointer to the filter bank structure
|
|
//
|
|
// Return:
|
|
// ippStsNoErr Indicates no error.
|
|
// ippStsNullPtrErr Indicates an error when the pDCTLifter pointer is null.
|
|
//
|
|
*/
|
|
|
|
IPPAPI(IppStatus, ippsDCTLifterFree_32f,(IppsDCTLifterState_32f* pDCTLifter))
|
|
|
|
IPPAPI(IppStatus, ippsDCTLifterFree_16s,(IppsDCTLifterState_16s* pDCTLifter))
|
|
|
|
/* /////////////////////////////////////////////////////////////////////////////
|
|
// Name: ippsDCTLifter_*
|
|
// Purpose: Performs DCT and lifts the DCT coefficients.
|
|
// Parameters:
|
|
// pSrc Pointer to the filter output vector [lenDCT]
|
|
// pDst Pointer to the MFCC feature vector.
|
|
// pDCTLifter Pointer to the filter bank structure
|
|
// scaleFactor
|
|
//
|
|
// Return:
|
|
// ippStsNoErr Indicates no error.
|
|
// ippStsNullPtrErr Indicate an error when the pSrc, pDst, pFBank pointer is null.
|
|
//
|
|
*/
|
|
|
|
IPPAPI(IppStatus, ippsDCTLifter_32f,(const Ipp32f* pSrc, Ipp32f* pDst,
|
|
const IppsDCTLifterState_32f* pDCTLifter))
|
|
|
|
IPPAPI(IppStatus, ippsDCTLifter_16s_Sfs,(const Ipp16s* pSrc, Ipp16s* pDst,
|
|
const IppsDCTLifterState_16s* pDCTLifter, int scaleFactor))
|
|
|
|
IPPAPI(IppStatus, ippsDCTLifter_32s16s_Sfs, (const Ipp32s* pSrc, Ipp16s* pDst,
|
|
const IppsDCTLifterState_16s* pDCTLifter, int scaleFactor))
|
|
|
|
|
|
/* /////////////////////////////////////////////////////////////////////////////
|
|
// Name: ippsNormEnergy_*
|
|
// Purpose: Normalizes a vector of energy values.
|
|
// Parameters:
|
|
// pSrcDst Pointer to the input/output vector [height*step].
|
|
// step Sample step in the vector pSrcDst.
|
|
// height Number of samples for normalization
|
|
// silFloor Silence floor in log10 value
|
|
// val Coefficient value.
|
|
// maxE Maximum energy value
|
|
// enScale Energy scale
|
|
// Returns:
|
|
// ippStsNoErr Indicates no error.
|
|
// ippStsNullPtrErr Indicates an error when the pSrcDst pointer is null.
|
|
// ippStsSizeErr Indicates an error when step or height is less than
|
|
// or equal to 0
|
|
//
|
|
*/
|
|
|
|
IPPAPI(IppStatus, ippsNormEnergy_32f,(Ipp32f* pSrcDst, int step, int height,
|
|
Ipp32f silFloor, Ipp32f enScale))
|
|
|
|
IPPAPI(IppStatus, ippsNormEnergy_16s,(Ipp16s* pSrcDst, int step, int height,
|
|
Ipp16s silFloor, Ipp16s val, Ipp32f enScale))
|
|
|
|
IPPAPI(IppStatus, ippsNormEnergy_RT_32f,(Ipp32f* pSrcDst, int step, int height,
|
|
Ipp32f silFloor, Ipp32f maxE, Ipp32f enScale))
|
|
|
|
IPPAPI(IppStatus, ippsNormEnergy_RT_16s,(Ipp16s* pSrcDst, int step, int height,
|
|
Ipp16s silFloor, Ipp16s maxE, Ipp16s val, Ipp32f enScale))
|
|
|
|
/*/////////////////////////////////////////////////////////////////////////////
|
|
// Name: ippsSumMeanVar_*
|
|
// Purpose: The function sums the vector elements and their
|
|
// squares according.
|
|
//
|
|
// Parameters:
|
|
// pSrc Pointer to the source vector [height* srcStep].
|
|
// pDstMean Pointer to the result vector that contains sums [width].
|
|
// pdstVar Pointer to the result vector that contains square sums [width].
|
|
// width Number of columns in the pSrc.
|
|
// srcStep Row step in pSrc.
|
|
// height Number of rows in pSrc.
|
|
// scaleFactor
|
|
//
|
|
// Return:
|
|
// ippStsNoErr Indicates no error.
|
|
// ippStsNullPtrErr Indicates an error when the pSrc, pDstMean, pDstVar,
|
|
// pSrcDstMean or pSrcDstVar pointer is null.
|
|
// ippStsSizeErr Indicates an error when srcStep, width or height is less
|
|
// than or equal to 0 or width is greater than srcStep;
|
|
//
|
|
*/
|
|
|
|
IPPAPI(IppStatus,ippsSumMeanVar_32f,(const Ipp32f* pSrc, int srcStep, int height,
|
|
Ipp32f* pDstMean, Ipp32f* pDstVar, int width))
|
|
|
|
IPPAPI(IppStatus,ippsSumMeanVar_16s32f,(const Ipp16s* pSrc, int srcStep,
|
|
int height, Ipp32f* pDstMean, Ipp32f* pDstVar, int width))
|
|
|
|
IPPAPI(IppStatus,ippsSumMeanVar_16s32s_Sfs,(const Ipp16s* pSrc, int srcStep,
|
|
int height, Ipp32s* pDstMean, Ipp32s* pDstVar, int width, int scaleFactor))
|
|
|
|
IPPAPI(IppStatus,ippsSumMeanVar_32f_I,(const Ipp32f* pSrc, int srcStep,
|
|
int height, Ipp32f* pSrcDstMean, Ipp32f* pSrcDstVar, int width))
|
|
|
|
IPPAPI(IppStatus,ippsSumMeanVar_16s32f_I,(const Ipp16s* pSrc, int srcStep,
|
|
int height, Ipp32f* pSrcDstMean, Ipp32f* pSrcDstVar, int width))
|
|
|
|
IPPAPI(IppStatus,ippsSumMeanVar_16s32s_ISfs,(const Ipp16s* pSrc, int srcStep,
|
|
int height, Ipp32s* pSrcDstMean, Ipp32s* pSrcDstVar, int width,
|
|
int scaleFactor))
|
|
|
|
/* /////////////////////////////////////////////////////////////////////////////
|
|
// Name: ippsNewVar_*
|
|
// Purpose: The function computes the variance vector.
|
|
//
|
|
// Parameters:
|
|
// pSrcMean Pointer to the source vector of element sums [width].
|
|
// pSrcVar Pointer to the source vector of element sum squares [width].
|
|
// pSrcDstVar Pointer to the source and result vector of element sum squares [width].
|
|
// width Number of columns in the pSrc.
|
|
// val1, val2 Multiplicative constants.
|
|
// scaleFactor
|
|
//
|
|
// Return:
|
|
// ippStsNoErr Indicates no error.
|
|
// ippStsNullPtrErr Indicates an error when the pSrcMean, pSrcVar, pDstVar or
|
|
// pSrcDstVar pointer is null.
|
|
// ippStsSizeErr Indicates an error when width is less than or equal to 0;
|
|
//
|
|
*/
|
|
|
|
|
|
|
|
IPPAPI(IppStatus, ippsNewVar_32s_Sfs,(const Ipp32s* pSrcMean,
|
|
const Ipp32s* pSrcVar, Ipp32s* pDstVar, int width, Ipp32f val1,
|
|
Ipp32f val2, int scaleFactor))
|
|
|
|
IPPAPI(IppStatus, ippsNewVar_32s_ISfs,(const Ipp32s* pSrcMean,
|
|
Ipp32s* pSrcDstVar, int width, Ipp32f val1, Ipp32f val2, int scaleFactor))
|
|
|
|
IPPAPI(IppStatus, ippsNewVar_32f,(const Ipp32f* pSrcMean, const Ipp32f* pSrcVar,
|
|
Ipp32f* pDstVar, int width, Ipp32f val1, Ipp32f val2))
|
|
|
|
IPPAPI(IppStatus, ippsNewVar_32f_I,(const Ipp32f* pSrcMean, Ipp32f* pSrcDstVar,
|
|
int width, Ipp32f val1, Ipp32f val2))
|
|
|
|
/* /////////////////////////////////////////////////////////////////////////////
|
|
// Name: ippsRecSqrt_*
|
|
// Purpose: Computes square root reciprocals of vector
|
|
// elements in-place.
|
|
// Parameters:
|
|
// pSrcDst Pointer to the source and destination vector pSrcDst.
|
|
// len The number of elements in the vector.
|
|
// val The threshold factor.
|
|
// scaleFactor
|
|
//
|
|
// Return:
|
|
// ippStsNoErr Indicates no error.
|
|
// ippStsNullPtrErr Indicates an error when the pSrcDst pointer is null.
|
|
// ippStsInvByZero Indicates an error when pSrcDst[i]is less than val.
|
|
// ippStsSizeErr Indicates an error when len is less than or equal to 0.
|
|
// ippStsBadArgErr Indicates an error when val is less than or equal to 0
|
|
//
|
|
*/
|
|
IPPAPI(IppStatus,ippsRecSqrt_32s_Sfs,(Ipp32s* pSrcDst, int len,Ipp32s val,
|
|
int scaleFactor))
|
|
|
|
IPPAPI(IppStatus,ippsRecSqrt_32s16s_Sfs,(const Ipp32s* pSrc, Ipp16s* pDst, int len,Ipp32s val,
|
|
int scaleFactor))
|
|
|
|
IPPAPI(IppStatus, ippsRecSqrt_32f, (Ipp32f* pSrcDst, int len, Ipp32f val))
|
|
|
|
|
|
/*//////////////////////////////////////////////////////////////////////
|
|
// Name: ippsAccCovarianceMatrix_*
|
|
// Purpose: Accumulate covariance matrix.
|
|
// Parameters:
|
|
// pSrc Pointer to the input vector [height*srcStep].
|
|
// mSrc Pointer to the input matrix [height][width].
|
|
// srcStep Row step in pSrc.
|
|
// pMean Pointer to the mean vector [width].
|
|
// width Length of the input matrix row, mean, and variance vectors.
|
|
// pSrcDst Pointer to the source and result matrix [width*dstStep].
|
|
// mSrcDst Pointer to the source and result matrix [width][width].
|
|
// dstStep Row step in pDst.
|
|
// height Number of rows in the input matrix.
|
|
// val Value to multiply to each distance.
|
|
// Return:
|
|
// ippStsNoErr Indicates no error.
|
|
// ippStsNullPtrErr Indicates an error when the pSrc, mSrc, pMean, pSrcDst,
|
|
// or mSrcDst pointer is null.
|
|
// ippStsSizeErr Indicates an error when width or height is less than
|
|
// or equal to 0.
|
|
// ippStsStrideErr Indicates an error when srcStep or dstStep is less
|
|
// than width.
|
|
*/
|
|
IPPAPI(IppStatus, ippsAccCovarianceMatrix_16s64f_D2L,(const Ipp16s** mSrc,
|
|
int height, const Ipp16s* pMean, Ipp64f** mSrcDst, int width, Ipp64f val))
|
|
|
|
IPPAPI(IppStatus, ippsAccCovarianceMatrix_32f64f_D2L, (const Ipp32f** mSrc,
|
|
int height, const Ipp32f* pMean, Ipp64f** mSrcDst, int width, Ipp64f val))
|
|
|
|
IPPAPI(IppStatus, ippsAccCovarianceMatrix_16s64f_D2, (const Ipp16s* pSrc,
|
|
int srcStep, int height, const Ipp16s* pMean, Ipp64f* pSrcDst, int width,
|
|
int dstStep, Ipp64f val))
|
|
|
|
IPPAPI(IppStatus, ippsAccCovarianceMatrix_32f64f_D2, (const Ipp32f* pSrc,
|
|
int srcStep, int height, const Ipp32f* pMean, Ipp64f* pSrcDst, int width,
|
|
int dstStep, Ipp64f val))
|
|
|
|
/* /////////////////////////////////////////////////////////////////////////////
|
|
// Derivatives
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
*/
|
|
/* /////////////////////////////////////////////////////////////////////////////
|
|
// Name: ippsCopyColumn_*_D2
|
|
// Purpose: Copies the input sequence into the output sequence.
|
|
// Parameters:
|
|
// pSrc Pointer to the input feature sequence [height*srcWidth].
|
|
// srcWidth Length of each input feature vector.
|
|
// pDst Pointer to the output feature sequence [height*dstWidth].
|
|
// dstWidth Length of each output feature vector.
|
|
// height Number of features in the sequence.
|
|
//
|
|
// Returns:
|
|
// ippStsNoErr Indicates no error.
|
|
// ippStsNullPtrErr Indicates an error when the pSrc or pDst pointer is null.
|
|
// ippStsSizeErr Indicates an error when height or srcWidth is less than or
|
|
// equal to 0.
|
|
// ippStsStrideErr Indicates an error when dstWidth is less than srcWidth.
|
|
*/
|
|
IPPAPI(IppStatus, ippsCopyColumn_16s_D2, (const Ipp16s* pSrc, int srcWidth,
|
|
Ipp16s* pDst, int dstWidth, int height))
|
|
|
|
IPPAPI(IppStatus, ippsCopyColumn_32f_D2, (const Ipp32f* pSrc, int srcWidth,
|
|
Ipp32f* pDst, int dstWidth, int height))
|
|
|
|
/* /////////////////////////////////////////////////////////////////////////////
|
|
// Name: ippsEvalDelta_D2
|
|
// Purpose: Computes the derivatives of vector elements.
|
|
//
|
|
// Parameters:
|
|
// pSrcDst Pointer to the input and output vector [height*step].
|
|
// height The number of rows in pSrcDst.
|
|
// step Length of each feature in pSrcDst
|
|
// width The number of derivatives to be calculated for each feature.
|
|
// offset Offset to place the derivative values.
|
|
// winSize The delta window size
|
|
// val The delta coefficient.
|
|
// pVal Pointer to the delta coefficients vector [width].
|
|
// scaleFactor
|
|
//
|
|
// Return:
|
|
// ippStsNoErr Indicates no error.
|
|
// ippStsNullPtrErr Indicates an error when the pSrcDst pointer is null.
|
|
// ippStsSizeErr Indicates an error when height, width, or winSize
|
|
// is less than or equal to 0 or offset is less than 0
|
|
// or width is less than or equal to offset or height is
|
|
// less than 2*winSize.
|
|
// ippStsStrideErr Indicates an error when step is less than offset+2*width.
|
|
*/
|
|
|
|
IPPAPI(IppStatus, ippsEvalDelta_16s_D2Sfs, (Ipp16s*pSrcDst, int height, int step,
|
|
int width, int offset, int winSize, Ipp16s val, int scaleFactor))
|
|
|
|
IPPAPI(IppStatus, ippsEvalDelta_32f_D2, (Ipp32f *pSrcDst, int height, int step,
|
|
int width, int offset, int winSize, Ipp32f val))
|
|
|
|
IPPAPI(IppStatus, ippsEvalDeltaMul_16s_D2Sfs, (Ipp16s* pSrcDst, int height,
|
|
int step, const Ipp16s* pVal, int width, int offset, int winSize,
|
|
int scaleFactor))
|
|
|
|
IPPAPI(IppStatus, ippsEvalDeltaMul_32f_D2, (Ipp32f* pSrcDst, int height,
|
|
int step, const Ipp32f* pVal, int width, int offset, int winSize))
|
|
|
|
|
|
/* /////////////////////////////////////////////////////////////////////////////
|
|
// Name: ippsDelta*_D2
|
|
// Purpose: Copies the base features and calculates the
|
|
// derivatives of feature vectors.
|
|
// Parameters:
|
|
// pSrc Pointer to the source vector [height*srcWidth].
|
|
// srcWidth The number of columns in the pSrc.
|
|
// pDst Pointer to the result vector [height*dstStep].
|
|
// dstStep The row step in pDst.
|
|
// val The delta coefficient.
|
|
// height Number of feature vectors.
|
|
// deltaMode Execution mode.
|
|
// pVal Pointer to the delta coefficients vector [width].
|
|
// scaleFactor
|
|
//
|
|
// ippStsNoErr Indicates no error.
|
|
// ippStsNullPtrErr Indicates an error when the pSrc, pDst or pVal pointer is null.
|
|
// ippStsSizeErr Indicates an error when srcWidth is less than or equal to 0;
|
|
// or height is less than 0;
|
|
// or height is less than 2*winSize when deltaMode is equal to IPP_DELTA_BEGIN;
|
|
// or height is equal to 0 when deltaMode is not equal to IPP_DELTA_END.
|
|
// ippStsStrideErr Indicates an error when dstStep is less than 2*srcWidth.
|
|
*/
|
|
|
|
IPPAPI(IppStatus, ippsDelta_Win1_16s_D2Sfs, (const Ipp16s* pSrc, int srcWidth,
|
|
Ipp16s* pDst, int dstStep, int height, Ipp16s val, int deltaMode,
|
|
int scaleFactor))
|
|
|
|
IPPAPI(IppStatus, ippsDelta_Win2_16s_D2Sfs, (const Ipp16s* pSrc, int srcWidth,
|
|
Ipp16s* pDst, int dstStep, int height, Ipp16s val, int deltaMode,
|
|
int scaleFactor))
|
|
|
|
IPPAPI(IppStatus, ippsDelta_Win1_32f_D2, (const Ipp32f* pSrc, int srcWidth,
|
|
Ipp32f* pDst, int dstStep, int height, Ipp32f val, int deltaMode))
|
|
|
|
IPPAPI(IppStatus, ippsDelta_Win2_32f_D2, (const Ipp32f* pSrc, int srcWidth,
|
|
Ipp32f* pDst, int dstStep, int height, Ipp32f val, int deltaMode))
|
|
|
|
IPPAPI(IppStatus, ippsDeltaMul_Win1_16s_D2Sfs, (const Ipp16s* pSrc,
|
|
const Ipp16s* pVal, int srcWidth, Ipp16s* pDst, int dstStep,
|
|
int height, int deltaMode, int scaleFactor))
|
|
|
|
IPPAPI(IppStatus, ippsDeltaMul_Win2_16s_D2Sfs, (const Ipp16s* pSrc,
|
|
const Ipp16s* pSrc1, int srcWidth, Ipp16s* pDst, int dstStep,
|
|
int height, int deltaMode, int scaleFactor))
|
|
|
|
IPPAPI(IppStatus, ippsDeltaMul_Win1_32f_D2, (const Ipp32f* pSrc,
|
|
const Ipp32f* pVal, int srcWidth, Ipp32f* pDst, int dstStep,
|
|
int height, int deltamode))
|
|
|
|
IPPAPI(IppStatus, ippsDeltaMul_Win2_32f_D2, (const Ipp32f* pSrc,
|
|
const Ipp32f* pVal, int srcWidth, Ipp32f* pDst, int dstStep,
|
|
int height, int deltamode))
|
|
|
|
|
|
/* /////////////////////////////////////////////////////////////////////////////
|
|
// Name: ippsDeltaDelta*_D2
|
|
// Purpose: Copies the base features and calculates their first
|
|
// and second derivatives.
|
|
// Parameters:
|
|
// pSrc Pointer to the source vector [height*srcWidth].
|
|
// srcWidth Length of the input feature in the input sequence pSrc.
|
|
// pDst Pointer to the result vector [height*dstStep].
|
|
// dstStep The row step in pDst.
|
|
// height The number of rows in pSrc and pDst.
|
|
// val1, val2 The first and second delta coefficients.
|
|
// deltaMode Execution mode.
|
|
// pVal Pointer to the delta coefficients vector [width].
|
|
// scaleFactor
|
|
//
|
|
// Return:
|
|
// ippStsNoErr Indicates no error.
|
|
// ippStsNullPtrErr Indicates an error when the pSrc or pDst pointer is null.
|
|
// ippStsSizeErr Indicates an error when srcWidth is less than or equal to 0;
|
|
// or height is less than 0;
|
|
// or height is less than 3*winSize when deltaMode is equal to IPP_DELTA_BEGIN;
|
|
// or height is equal to 0 when deltaMode is not equal to IPP_DELTA_END.
|
|
// ippStsStrideErr Indicates an error when dstStep is less than 3*srcWidth.
|
|
*/
|
|
|
|
IPPAPI(IppStatus, ippsDeltaDelta_Win1_16s_D2Sfs, (const Ipp16s* pSrc, int srcWidth,
|
|
Ipp16s* pDst, int dstStep, int height, Ipp16s val1,
|
|
Ipp16s val2, int deltaMode, int scaleFactor))
|
|
|
|
IPPAPI(IppStatus, ippsDeltaDelta_Win2_16s_D2Sfs, (const Ipp16s* pSrc, int srcWidth,
|
|
Ipp16s* pDst, int dstStep, int height, Ipp16s val1,
|
|
Ipp16s val2, int deltaMode, int scaleFactor))
|
|
|
|
IPPAPI(IppStatus, ippsDeltaDeltaMul_Win1_16s_D2Sfs, (const Ipp16s* pSrc,
|
|
const Ipp16s* pVal, int srcWidth, Ipp16s* pDst, int dstStep, int height,
|
|
int deltamode, int scaleFactor))
|
|
|
|
IPPAPI(IppStatus, ippsDeltaDeltaMul_Win2_16s_D2Sfs, (const Ipp16s* pSrc,
|
|
const Ipp16s* pVal, int srcWidth, Ipp16s* pDst, int dstStep, int height,
|
|
int deltamode, int scaleFactor))
|
|
|
|
IPPAPI(IppStatus, ippsDeltaDeltaMul_Win1_32f_D2, (const Ipp32f* pSrc,
|
|
const Ipp32f* pSrc1, int srcWidth, Ipp32f* pDst, int dstStep, int height,
|
|
int deltamode))
|
|
|
|
IPPAPI(IppStatus, ippsDeltaDeltaMul_Win2_32f_D2, (const Ipp32f* pSrc,
|
|
const Ipp32f* pSrc1, int srcWidth, Ipp32f* pDst, int dstStep, int height,
|
|
int deltamode))
|
|
|
|
IPPAPI(IppStatus, ippsDeltaDelta_Win1_32f_D2, (const Ipp32f* pSrc, int srcWidth,
|
|
Ipp32f* pDst, int dstStep, int height, Ipp32f val1,
|
|
Ipp32f val2, int deltaMode))
|
|
|
|
IPPAPI(IppStatus, ippsDeltaDelta_Win2_32f_D2, (const Ipp32f* pSrc, int srcWidth,
|
|
Ipp32f* pDst, int dstStep, int height, Ipp32f val1,
|
|
Ipp32f val2, int deltaMode))
|
|
|
|
|
|
/* /////////////////////////////////////////////////////////////////////////////
|
|
// Name: ippsDeltaDelta_Aurora_*
|
|
// Purpose: The function ippsDeltaDelta_Aurora calculate full feature vectors
|
|
// according to ETSI ES 202 050 standard.
|
|
// Context:
|
|
// Returns:
|
|
// ippStsNoErr Indicates no error.
|
|
// ippStsNullPtrErr Indicates an error when pSrc, pDst, or pVal pointer is NULL.
|
|
// ippStsSizeErr Indicates an error when height is less than 0;
|
|
// or height is less than 8 when deltaMode is equal to IPP_DELTA_BEGIN;
|
|
// or height is equal to 0 when deltaMode is not equal to IPP_DELTA_END.
|
|
// ippStsStrideErr Indicates an error when dstStep is less than 39.
|
|
// Parameters:
|
|
// pSrc Pointer to the input feature sequence [height*14].
|
|
// pDst Pointer to the output feature sequence [height*dstStep].
|
|
// dstStep Length of the output feature in the output sequence pDst.
|
|
// height Number of feature vectors.
|
|
// deltaMode Execution mode.
|
|
// pVal Pointer to the delta coefficients vector [39].
|
|
// scaleFactor Refer to "Integer Scaling" in Chapter 2.
|
|
// Notes:
|
|
*/
|
|
|
|
IPPAPI(IppStatus,ippsDeltaDelta_Aurora_16s_D2Sfs,(const Ipp16s* pSrc, Ipp16s* pDst,
|
|
int dstStep, int height, int deltaMode, int scaleFactor))
|
|
|
|
IPPAPI(IppStatus,ippsDeltaDelta_Aurora_32f_D2,(const Ipp32f* pSrc, Ipp32f* pDst,
|
|
int dstStep, int height, int deltaMode))
|
|
|
|
|
|
/* /////////////////////////////////////////////////////////////////////////////
|
|
// Name: ippsDeltaDeltaMul_Aurora_*
|
|
// Purpose: The function ippsDeltaDelta_Aurora calculate full feature vectors
|
|
// according to ETSI ES 202 050 standard.
|
|
// Context:
|
|
// Returns:
|
|
// ippStsNoErr Indicates no error.
|
|
// ippStsNullPtrErr Indicates an error when pSrc, pDst, or pVal pointer is NULL.
|
|
// ippStsSizeErr Indicates an error when height is less than 0;
|
|
// or height is less than 8 when deltaMode is equal to IPP_DELTA_BEGIN;
|
|
// or height is equal to 0 when deltaMode is not equal to IPP_DELTA_END.
|
|
// ippStsStrideErr Indicates an error when dstStep is less than 39.
|
|
// Parameters:
|
|
// pSrc Pointer to the input feature sequence [height*14].
|
|
// pDst Pointer to the output feature sequence [height*dstStep].
|
|
// dstStep Length of the output feature in the output sequence pDst.
|
|
// height Number of feature vectors.
|
|
// deltaMode Execution mode.
|
|
// pVal Pointer to the delta coefficients vector [39].
|
|
// scaleFactor Refer to "Integer Scaling" in Chapter 2.
|
|
// Notes:
|
|
*/
|
|
|
|
IPPAPI(IppStatus,ippsDeltaDeltaMul_Aurora_32f_D2,(const Ipp32f* pSrc, const Ipp32f* pVal,
|
|
Ipp32f* pDst, int dstStep, int height, int deltaMode))
|
|
IPPAPI(IppStatus,ippsDeltaDeltaMul_Aurora_16s_D2Sfs,(const Ipp16s* pSrc, const Ipp16s* pVal,
|
|
Ipp16s* pDst, int dstStep, int height, int deltaMode, int scaleFactor))
|
|
|
|
|
|
/* /////////////////////////////////////////////////////////////////////////////
|
|
// Model Evaluation
|
|
///////////////////////////////////////////////////////////////////////////// */
|
|
|
|
/* /////////////////////////////////////////////////////////////////////////////
|
|
// Name: ippsAddNRows_32f
|
|
// Purpose: Adds N vectors from the table
|
|
// Parameters:
|
|
// pSrc Pointer to the input vector [height*step].
|
|
// height The number of rows in the pSrc.
|
|
// offset
|
|
// step The row step in pSrc.
|
|
// pInd Pointer to the indexes vector [rows].
|
|
// pAddInd Pointer to the indexes addition vector [rows].
|
|
// rows The number of rows to add.
|
|
// pDst Pointer to the output vector [width].
|
|
// width The number of elements in the output vector pDst.
|
|
// weight The value to add to output vector elements.
|
|
//
|
|
// Returns:
|
|
// ippStsNoErr Indicates no error.
|
|
// ippStsNullPtrErr Indicates an error when the pSrc, pInd, pAddIndex, or
|
|
// pDst pointer is null.
|
|
// ippStsSizeErr Indicates an error when height, width, rows, or
|
|
// (pInd[i]+pAddIndex[i]) is less than 0;
|
|
// or (pInd[i]+pAddIndex[i]) >= height;
|
|
// or offset>segCount.
|
|
// ippStsStrideErr Indicates an error when width > step.
|
|
//
|
|
*/
|
|
IPPAPI(IppStatus, ippsAddNRows_32f_D2, (Ipp32f* pSrc, int height, int offset,
|
|
int step, Ipp32s* pInd, Ipp16u* pAddInd, int rows, Ipp32f* pDst, int width,
|
|
Ipp32f weight))
|
|
|
|
/* /////////////////////////////////////////////////////////////////////////////
|
|
// Name: ippsScaleLM_*
|
|
// Purpose: Scales vector elements with thresholding.
|
|
//
|
|
// Parameters:
|
|
// pSrc Pointer to the input vector [len].
|
|
// pDst Pointer to the output vector [len].
|
|
// len The number of elements in the pSrc and pDst vectors.
|
|
// floor A value used to limit each element of pSrc.
|
|
// scale The multiplier factor value.
|
|
// base The additive value.
|
|
//
|
|
// Return:
|
|
// ippStsNoErr Indicates no error.
|
|
// ippStsNullPtrErr Indicates an error when the pSrc or pDst pointer is null.
|
|
// ippStsSizeErr Indicates an error when len is less than or equal to 0.
|
|
//
|
|
*/
|
|
IPPAPI(IppStatus, ippsScaleLM_32f, (const Ipp32f *pSrc, Ipp32f *pDst,
|
|
int len, Ipp32f floor, Ipp32f scale, Ipp32f base))
|
|
|
|
IPPAPI(IppStatus, ippsScaleLM_16s32s, (const Ipp16s* pSrc, Ipp32s* pDst,
|
|
int len, Ipp16s floor, Ipp16s scale, Ipp32s base))
|
|
|
|
/* /////////////////////////////////////////////////////////////////////////////
|
|
// Name: ippsLogAdd_*
|
|
// Purpose: Logarithmically adds two vectors in-place.
|
|
// Parameters:
|
|
// pSrc The first input vector [len].
|
|
// pDst The second input and output vector [len].
|
|
// len The number of elements in the input and output vectors.
|
|
// hint Recommends to use a specific code for the
|
|
// Logarithmically adds.
|
|
// Return:
|
|
// ippStsNoErr Indicates no error.
|
|
// ippStsNullPtrErr Indicates an error when the pSrc or pDst pointer is null.
|
|
// ippStsSizeErr Indicates an error when lenis less than or equal to 0.
|
|
//
|
|
*/
|
|
IPPAPI(IppStatus,ippsLogAdd_64f,(const Ipp64f* pSrc, Ipp64f* pSrcDst, int len,
|
|
IppHintAlgorithm hint))
|
|
|
|
IPPAPI(IppStatus,ippsLogAdd_32f,(const Ipp32f* pSrc, Ipp32f* pSrcDst, int len,
|
|
IppHintAlgorithm hint))
|
|
|
|
IPPAPI(IppStatus,ippsLogAdd_32s_Sfs,(const Ipp32s* pSrc, Ipp32s* pSrcDst, int len,
|
|
int scaleFactor, IppHintAlgorithm hint))
|
|
|
|
IPPAPI(IppStatus,ippsLogAdd_16s_Sfs,(const Ipp16s* pSrc, Ipp16s* pSrcDst, int len,
|
|
int scaleFactor, IppHintAlgorithm hint))
|
|
|
|
/* /////////////////////////////////////////////////////////////////////////////
|
|
// Name: ippsLogSub_*
|
|
// Purpose: Logarithmically subtracts two vectors in place .
|
|
// Parameters:
|
|
// pSrc Pointer to the input vector [len].
|
|
// pDst Pointer to the input and output vectors [len].
|
|
// len The number of elements in the input and output vectors.
|
|
// Return:
|
|
// ippStsNoErr Indicates no error.
|
|
// ippStsNullPtrErr Indicates an error when the pSrc or pDst pointer is null.
|
|
// ippStsSizeErr Indicates an error when len is less than or equal to 0.
|
|
// ippStsNoOperation Indicates an error when pDst[i] > pSrc[i]is more than 0.
|
|
*/
|
|
IPPAPI(IppStatus,ippsLogSub_32f,(const Ipp32f* pSrc, Ipp32f* pSrcDst, int len))
|
|
|
|
IPPAPI(IppStatus,ippsLogSub_64f,(const Ipp64f* pSrc, Ipp64f* pSrcDst, int len))
|
|
|
|
IPPAPI(IppStatus,ippsLogSub_32s_Sfs,(const Ipp32s* pSrc, Ipp32s* pSrcDst, int len,
|
|
int scaleFactor))
|
|
|
|
IPPAPI(IppStatus,ippsLogSub_16s_Sfs,(const Ipp16s* pSrc, Ipp16s* pSrcDst, int len,
|
|
int scaleFactor))
|
|
|
|
/* /////////////////////////////////////////////////////////////////////////////
|
|
// Name: ippsMahDistSingle_*
|
|
// Purpose: Calculates the Mahalanobis distance
|
|
// for a single observation vector.
|
|
// Parameters:
|
|
// pSrc Pointer to the input vector [len].
|
|
// pMean Pointer to the mean vector [len].
|
|
// pVar Pointer to the variance vector [len].
|
|
// len The number of elements in the input, mean,
|
|
// and variance vectors.
|
|
// pResult Pointer to the result value.
|
|
// scaleFactor
|
|
//
|
|
// Return:
|
|
// ippStsNoErr Indicates no error.
|
|
// ippStsNullPtrErr Indicates an error when the pSrc, pMean, pVar, or
|
|
// pResult pointer is null.
|
|
// ippStsSizeErr Indicates an error when len is less than or equal to 0
|
|
*/
|
|
|
|
IPPAPI(IppStatus, ippsMahDistSingle_32f, (const Ipp32f* pSrc,
|
|
const Ipp32f* pMean, const Ipp32f* pVar, int len,
|
|
Ipp32f* pResult))
|
|
|
|
IPPAPI(IppStatus, ippsMahDistSingle_64f, (const Ipp64f* pSrc,
|
|
const Ipp64f* pMean, const Ipp64f* pVar, int len,
|
|
Ipp64f* pResult))
|
|
|
|
IPPAPI(IppStatus, ippsMahDistSingle_32f64f,(const Ipp32f* pSrc,
|
|
const Ipp32f* pMean, const Ipp32f* pVar, int len, Ipp64f* pResult))
|
|
|
|
IPPAPI(IppStatus, ippsMahDistSingle_16s32f,(const Ipp16s* pSrc,
|
|
const Ipp16s* pMean, const Ipp16s* pVar, int len, Ipp32f* pResult))
|
|
|
|
IPPAPI(IppStatus, ippsMahDistSingle_16s32s_Sfs,(const Ipp16s* pSrc,
|
|
const Ipp16s* pMean, const Ipp16s* pVar, int len, Ipp32s* pResult,
|
|
int scaleFactor))
|
|
|
|
/* /////////////////////////////////////////////////////////////////////////////
|
|
// Name: ippsMahDist_*_*
|
|
// Purpose: Calculates the Mahalanobis distances
|
|
// for multiple observation vectors.
|
|
// Parameters:
|
|
// pSrc Pointer to the input vector [height*step].
|
|
// mSrc Pointer to the input matrix [height][width].
|
|
// step The row step in pSrc.
|
|
// pMean Pointer to the mean vector [width].
|
|
// pVar Pointer to the variance vector [width].
|
|
// width The length of the input matrix row, mean,
|
|
// and variance vectors.
|
|
// pDst Pointer to the result value [height].
|
|
// height The number of rows in the input matrix and the length of
|
|
// the result vector pDst.
|
|
//
|
|
// Return:
|
|
// ippStsNoErr Indicates no error.
|
|
// ippStsNullPtrErr Indicates an error when the pSrc, pMean, pVar,
|
|
// pDst,o rmSrc pointer is null.
|
|
// ippStsSizeErr Indicates an error when width or heightis less than or
|
|
// equal to 0.
|
|
// ippStsStrideErr Indicates an error when width > step.
|
|
//
|
|
*/
|
|
IPPAPI(IppStatus, ippsMahDist_32f_D2, (const Ipp32f* pSrc, int step,
|
|
const Ipp32f* pMean, const Ipp32f* pVar, int width, Ipp32f* pDst,
|
|
int height))
|
|
|
|
IPPAPI(IppStatus, ippsMahDist_64f_D2, (const Ipp64f* pSrc, int step,
|
|
const Ipp64f* pMean, const Ipp64f* pVar, int width, Ipp64f* pDst,
|
|
int height))
|
|
|
|
IPPAPI(IppStatus, ippsMahDist_32f_D2L, (const Ipp32f** mSrc,
|
|
const Ipp32f* pMean, const Ipp32f* pVar, int width, Ipp32f* pDst,
|
|
int height))
|
|
|
|
IPPAPI(IppStatus, ippsMahDist_64f_D2L, (const Ipp64f** mSrc,
|
|
const Ipp64f* pMean, const Ipp64f* pVar, int width, Ipp64f* pDst,
|
|
int height))
|
|
|
|
/* /////////////////////////////////////////////////////////////////////////////
|
|
// Name: ippsMahDistMultiMix_*_*
|
|
// Purpose: Calculates the Mahalanobis distances
|
|
// for multiple means and variances
|
|
// Parameters:
|
|
// pMean Pointer to the mean vector [height*step].
|
|
// pVar Pointer to the variance vector [height*step].
|
|
// mMean Pointer to the mean matrix [height][width].
|
|
// mVar Pointer to the variance matrix [height][width].
|
|
// step Row step in pSrc.
|
|
// pSrc Pointer to the input vector [width].
|
|
// width Length of the input matrix row and pSrc vector.
|
|
// pDst Pointer to the result vector [height].
|
|
// height Number of rows in input matrices and length of result
|
|
// vector pDst.
|
|
//
|
|
// Return:
|
|
// ippStsNoErr Indicates no error.
|
|
// ippStsNullPtrErr Indicates an error when the pSrc, pMean, pVar,
|
|
// mMean, mVar, or pDst pointer is null.
|
|
// ippStsSizeErr Indicates an error when height or width is less than or
|
|
// equal to 0.
|
|
// ippStsStrideErr Indicates an error when width > step.
|
|
//
|
|
*/
|
|
IPPAPI(IppStatus, ippsMahDistMultiMix_32f_D2, (const Ipp32f* pMean,
|
|
const Ipp32f* pVar, int step, const Ipp32f* pSrc, int width,
|
|
Ipp32f* pDst, int height))
|
|
|
|
IPPAPI(IppStatus, ippsMahDistMultiMix_64f_D2, (const Ipp64f* pMean,
|
|
const Ipp64f* pVar, int step, const Ipp64f* pSrc, int width,
|
|
Ipp64f* pDst, int height))
|
|
|
|
IPPAPI(IppStatus, ippsMahDistMultiMix_32f_D2L, (const Ipp32f** mMean,
|
|
const Ipp32f** mVar, const Ipp32f* pSrc, int width, Ipp32f* pDst,
|
|
int height))
|
|
|
|
IPPAPI(IppStatus, ippsMahDistMultiMix_64f_D2L, (const Ipp64f** mMean,
|
|
const Ipp64f** mVar, const Ipp64f* pSrc, int width, Ipp64f* pDst,
|
|
int height))
|
|
|
|
/* /////////////////////////////////////////////////////////////////////////////
|
|
// Name: ippsLogGaussSingle_*
|
|
// Purpose: Calculates the observation probability for a
|
|
// single Gaussian with an observation vector.
|
|
//
|
|
// Parameters:
|
|
// pSrc Pointer to the input vector [len].
|
|
// pMean Pointer to the mean vector [len].
|
|
// pVar Pointer to the variance vector [len].
|
|
// pBlockVar Pointer to the block diagonal variance matrix.
|
|
// len Number of elements in the input, mean, and variance
|
|
// vectors.
|
|
// pResult Pointer to the result value.
|
|
// val Gaussian constant.
|
|
// scaleFactor
|
|
//
|
|
// Return:
|
|
// ippStsNoErr Indicates no error.
|
|
// ippStsNullPtrErr Indicates an error when the pSrc, pMean, pVar, or
|
|
// pResult or pBlockVar pointer is null.
|
|
// ippStsSizeErr Indicates an error when len is less than or equal to 0.
|
|
//
|
|
*/
|
|
|
|
/*
|
|
//Case 1: Operation for the inverse diagonal covariance matrix
|
|
*/
|
|
|
|
IPPAPI(IppStatus, ippsLogGaussSingle_32f, (const Ipp32f* pSrc,
|
|
const Ipp32f* pMean, const Ipp32f* pVar, int len,
|
|
Ipp32f* pResult, Ipp32f val))
|
|
|
|
IPPAPI(IppStatus, ippsLogGaussSingle_64f, (const Ipp64f* pSrc,
|
|
const Ipp64f* pMean, const Ipp64f* pVar, int len,
|
|
Ipp64f* pResult, Ipp64f val))
|
|
|
|
IPPAPI(IppStatus, ippsLogGaussSingle_32f64f, (const Ipp32f* pSrc,
|
|
const Ipp32f* pMean, const Ipp32f* pVar, int len,
|
|
Ipp64f* pResult, Ipp64f val))
|
|
|
|
IPPAPI(IppStatus, ippsLogGaussSingle_Scaled_16s32f, (const Ipp16s* pSrc,
|
|
const Ipp16s* pMean, const Ipp16s* pVar, int width, Ipp32f* dst,
|
|
Ipp32f val, int scaleFactor))
|
|
|
|
IPPAPI(IppStatus, ippsLogGaussSingle_16s32s_Sfs, (const Ipp16s* pSrc,
|
|
const Ipp16s* pMean, const Ipp16s* pVar, int width, Ipp32s* dst,
|
|
Ipp32s val, int scaleFactor))
|
|
|
|
|
|
/*
|
|
//Case 2: Operation for the diagonal covariance matrix
|
|
*/
|
|
IPPAPI(IppStatus, ippsLogGaussSingle_DirectVar_32f,(const Ipp32f* pSrc,
|
|
const Ipp32f* pMean, const Ipp32f* pVar, int len, Ipp32f* pResult,
|
|
Ipp32f val))
|
|
|
|
IPPAPI(IppStatus, ippsLogGaussSingle_DirectVar_64f,(const Ipp64f* pSrc,
|
|
const Ipp64f* pMean, const Ipp64f* pVar, int len, Ipp64f* pResult,
|
|
Ipp64f val))
|
|
|
|
IPPAPI(IppStatus, ippsLogGaussSingle_DirectVar_32f64f,(const Ipp32f* pSrc,
|
|
const Ipp32f* pMean, const Ipp32f* pVar, int len, Ipp64f* pResult,
|
|
Ipp64f val))
|
|
|
|
IPPAPI(IppStatus, ippsLogGaussSingle_DirectVarScaled_16s32f,(const Ipp16s* pSrc,
|
|
const Ipp16s* pMean, const Ipp16s* pVar, int len, Ipp32f* pResult,
|
|
Ipp32f val, int scaleFactor))
|
|
|
|
IPPAPI(IppStatus, ippsLogGaussSingle_DirectVar_16s32s_Sfs,(const Ipp16s* pSrc,
|
|
const Ipp16s* pMean, const Ipp16s* pVar, int len, Ipp32s* pResult,
|
|
Ipp32s val, int scaleFactor))
|
|
|
|
|
|
/*
|
|
//Case 3: Operation for the identity covariance matrix
|
|
*/
|
|
IPPAPI(IppStatus, ippsLogGaussSingle_IdVar_32f,(const Ipp32f* pSrc,
|
|
const Ipp32f* pMean, int len, Ipp32f* pResult, Ipp32f val))
|
|
|
|
IPPAPI(IppStatus, ippsLogGaussSingle_IdVar_64f,(const Ipp64f* pSrc,
|
|
const Ipp64f* pMean, int len, Ipp64f* pResult, Ipp64f val))
|
|
|
|
IPPAPI(IppStatus, ippsLogGaussSingle_IdVar_32f64f,(const Ipp32f* pSrc,
|
|
const Ipp32f* pMean, int len, Ipp64f* pResult, Ipp64f val))
|
|
|
|
IPPAPI(IppStatus, ippsLogGaussSingle_IdVarScaled_16s32f,(const Ipp16s* pSrc,
|
|
const Ipp16s* pMean, int len, Ipp32f* pResult, Ipp32f va,
|
|
int scaleFactorl))
|
|
|
|
IPPAPI(IppStatus, ippsLogGaussSingle_IdVar_16s32s_Sfs,(const Ipp16s* pSrc,
|
|
const Ipp16s* pMean, int len, Ipp32s* pResult, Ipp32s val,
|
|
int scaleFactor))
|
|
|
|
|
|
/*
|
|
//Case 4: Operation for the block diagonal covariance matrix
|
|
*/
|
|
IPPAPI(IppStatus, ippsLogGaussSingle_BlockDVar_32f,(const Ipp32f* pSrc,
|
|
const Ipp32f* pMean,const IppsBlockDMatrix_32f* pVar, int len,
|
|
Ipp32f* pResult, Ipp32f val))
|
|
IPPAPI(IppStatus, ippsLogGaussSingle_BlockDVar_64f,(const Ipp64f* pSrc,
|
|
const Ipp64f* pMean, const IppsBlockDMatrix_64f * pVar, int len,
|
|
Ipp64f* pResult, Ipp64f val))
|
|
|
|
IPPAPI(IppStatus, ippsLogGaussSingle_BlockDVar_32f64f,(const Ipp32f* pSrc,
|
|
const Ipp32f* pMean, const IppsBlockDMatrix_32f * pVar, int len,
|
|
Ipp64f* pResult, Ipp64f val))
|
|
|
|
IPPAPI(IppStatus, ippsLogGaussSingle_BlockDVarScaled_16s32f,(const Ipp16s* pSrc,
|
|
const Ipp16s* pSrcMean,const IppsBlockDMatrix_16s* pSrcVar, int srcLen,Ipp32f* pResult,
|
|
Ipp32f val,int scaleFactor))
|
|
|
|
IPPAPI(IppStatus, ippsLogGaussSingle_BlockDVar_16s32s_Sfs,(const Ipp16s* pSrc,
|
|
const Ipp16s* pMean, const IppsBlockDMatrix_16s * pVar, int len,
|
|
Ipp32s* pResult, Ipp32s val, int scaleFactor))
|
|
|
|
/* /////////////////////////////////////////////////////////////////////////////
|
|
// Name: ippsLogGauss_*
|
|
// Purpose: Calculates the observation probability for a single
|
|
// Gaussian with multiple observation vectors.
|
|
// Parameters:
|
|
// pSrc Pointer to the input vector [height*step].
|
|
// mSrc Pointer to the input matrix [height][width].
|
|
// step The row step in pSrc.
|
|
// pMean Pointer to the mean vector [width].
|
|
// pVar Pointer to the variance vector [width].
|
|
// width Length of the mean and variance vectors.
|
|
// pDst Pointer to the result value [height].
|
|
// pSrcDst Pointer to the input and output vector [height].
|
|
// height The number of rows in the input matrix and the length of
|
|
// the result vector pDst.
|
|
// val Gaussian constant.
|
|
// scaleFactor
|
|
//
|
|
// Return:
|
|
// ippStsNoErr Indicates no error.
|
|
// ippStsNullPtrErr Indicates an error when the pSrc, pMean, pVar,
|
|
// pDst,or mSrc pointer is null.
|
|
// ippStsSizeErr Indicates an error when height or width is less than or
|
|
// equal to 0.
|
|
// ippStsStrideErr Indicates an error when width > step.
|
|
//
|
|
*/
|
|
|
|
/*
|
|
//Case 1: Operation for the inverse diagonal covariance matrix
|
|
*/
|
|
IPPAPI(IppStatus, ippsLogGauss_16s32s_D2Sfs, (const Ipp16s* pSrc, int step,
|
|
const Ipp16s* pMean, const Ipp16s* pVar, int width, Ipp32s* pDst,
|
|
int height, Ipp32s val, int scaleFactor))
|
|
|
|
IPPAPI(IppStatus, ippsLogGauss_16s32s_D2LSfs, (const Ipp16s** mSrc,
|
|
const Ipp16s* pMean, const Ipp16s* pVar, int width, Ipp32s* pDst,
|
|
int height, Ipp32s val, int scaleFactor))
|
|
|
|
IPPAPI(IppStatus, ippsLogGauss_32f_D2, (const Ipp32f* pSrc, int step,
|
|
const Ipp32f* pMean, const Ipp32f* pVar, int width, Ipp32f* pDst,
|
|
int height, Ipp32f val))
|
|
|
|
IPPAPI(IppStatus, ippsLogGauss_64f_D2, (const Ipp64f* pSrc, int step,
|
|
const Ipp64f* pMean, const Ipp64f* pVar, int width, Ipp64f* pDst,
|
|
int height, Ipp64f val))
|
|
|
|
IPPAPI(IppStatus, ippsLogGauss_32f_D2L, (const Ipp32f** mSrc,
|
|
const Ipp32f* pMean, const Ipp32f* pVar, int width,
|
|
Ipp32f* pDst, int height, Ipp32f val))
|
|
|
|
IPPAPI(IppStatus, ippsLogGauss_64f_D2L, (const Ipp64f** mSrc,
|
|
const Ipp64f* pMean, const Ipp64f* pVar, int width,
|
|
Ipp64f* pDst, int height, Ipp64f val))
|
|
|
|
IPPAPI(IppStatus, ippsLogGauss_Scaled_16s32f_D2, (const Ipp16s* pSrc, int step,
|
|
const Ipp16s* pMean, const Ipp16s* pVar, int width, Ipp32f* pDst,
|
|
int height, Ipp32f val, int scaleFactor))
|
|
|
|
IPPAPI(IppStatus, ippsLogGauss_Scaled_16s32f_D2L, (const Ipp16s** mSrc,
|
|
const Ipp16s* pMean, const Ipp16s* pVar, int width, Ipp32f* pDst,
|
|
int height, Ipp32f val, int scaleFactor))
|
|
|
|
|
|
/*
|
|
//Case 2: Operation for the identity covariance matrix
|
|
*/
|
|
|
|
IPPAPI(IppStatus, ippsLogGauss_IdVar_16s32s_D2Sfs,(const Ipp16s* pSrc,
|
|
int step, const Ipp16s* pMean, int width, Ipp32s* pDst, int height,
|
|
Ipp32s val, int scaleFactor))
|
|
|
|
IPPAPI(IppStatus, ippsLogGauss_IdVarScaled_16s32f_D2,(const Ipp16s* pSrc,
|
|
int step, const Ipp16s* pMean, int width, Ipp32f* pDst, int height,
|
|
Ipp32f val, int scaleFactor))
|
|
|
|
IPPAPI(IppStatus, ippsLogGauss_IdVar_32f_D2,(const Ipp32f* pSrc, int step,
|
|
const Ipp32f* pMean, int width, Ipp32f* pDst, int height,
|
|
Ipp32f val))
|
|
|
|
IPPAPI(IppStatus, ippsLogGauss_IdVar_64f_D2,(const Ipp64f* pSrc, int step,
|
|
const Ipp64f* pMean, int width, Ipp64f* pDst, int height,
|
|
Ipp64f val))
|
|
|
|
IPPAPI(IppStatus, ippsLogGauss_IdVar_16s32s_D2LSfs,(const Ipp16s** mSrc,
|
|
const Ipp16s* pMean, int width, Ipp32s* pDst, int height, Ipp32s val,
|
|
int scaleFactor))
|
|
|
|
IPPAPI(IppStatus, ippsLogGauss_IdVarScaled_16s32f_D2L,(const Ipp16s** mSrc,
|
|
const Ipp16s* pMean, int width, Ipp32f* pDst, int height, Ipp32f val,
|
|
int scaleFactor))
|
|
|
|
IPPAPI(IppStatus, ippsLogGauss_IdVar_32f_D2L,(const Ipp32f** mSrc,
|
|
const Ipp32f* pMean, int width, Ipp32f* pDst, int height, Ipp32f val))
|
|
|
|
IPPAPI(IppStatus, ippsLogGauss_IdVar_64f_D2L,(const Ipp64f** mSrc,
|
|
const Ipp64f* pMean, int width, Ipp64f* pDst, int height, Ipp64f val))
|
|
|
|
|
|
/* /////////////////////////////////////////////////////////////////////////////
|
|
// Name: ippsLogGaussMultiMix_*
|
|
// Purpose: Calculates the observation probability for
|
|
// multiple Gaussian mixture components.
|
|
//
|
|
// Parameters:
|
|
// pMean Pointer to the mean vector [height*step].
|
|
// pVar Pointer to the variance vector [height*step].
|
|
// mMean Pointer to the mean matrix [height][width].
|
|
// mVar Pointer to the variance matrix [height][width].
|
|
// pSrcDst Pointer to the input additive values and
|
|
// the result vector [height].
|
|
// step The row step in pMean.
|
|
// pSrc Pointer to the input vector [width].
|
|
// height The number of rows in input matrices and the length of
|
|
// the result vector pSrcDst.
|
|
// width The length of the input matrices row and the vector pSrc.
|
|
// scaleFactor
|
|
//
|
|
// Return:
|
|
// ippStsNoErr Indicates no error.
|
|
// ippStsNullPtrErr Indicates an error when the pSrc, pMean, pVar,
|
|
// pSrcDst, mMean, or mVar pointer is null.
|
|
// ippStsSizeErr Indicates an error when height or width is less than or
|
|
// equal to 0.
|
|
// ippStsStrideErr Indicates an error when width > step.
|
|
//
|
|
*/
|
|
IPPAPI(IppStatus, ippsLogGaussMultiMix_16s32s_D2Sfs, (const Ipp16s* pMean,
|
|
const Ipp16s* pVar, int step, const Ipp16s* pSrc, int width,
|
|
Ipp32s* pSrcDst, int height, int scaleFactor))
|
|
|
|
IPPAPI(IppStatus, ippsLogGaussMultiMix_16s32s_D2LSfs, (const Ipp16s** mMean,
|
|
const Ipp16s** mVar, const Ipp16s* pSrc, int width, Ipp32s* pSrcDst,
|
|
int height, int scaleFactor))
|
|
|
|
IPPAPI(IppStatus, ippsLogGaussMultiMix_Scaled_16s32f_D2, (const Ipp16s* pMean,
|
|
const Ipp16s* pVar, int step, const Ipp16s* pSrc, int width,
|
|
Ipp32f* pSrcDst, int height, int scaleFactor))
|
|
|
|
IPPAPI(IppStatus, ippsLogGaussMultiMix_Scaled_16s32f_D2L, (const Ipp16s** mMean,
|
|
const Ipp16s** mVar, const Ipp16s* pSrc, int width, Ipp32f* pSrcDst,
|
|
int height, int scaleFactor))
|
|
|
|
IPPAPI(IppStatus, ippsLogGaussMultiMix_32f_D2, (const Ipp32f* pMean,
|
|
const Ipp32f* pVar, int step, const Ipp32f* pSrc, int width,
|
|
Ipp32f* pSrcDst, int height))
|
|
|
|
IPPAPI(IppStatus, ippsLogGaussMultiMix_64f_D2, (const Ipp64f* pMean,
|
|
const Ipp64f* pVar, int step, const Ipp64f* pSrc, int width,
|
|
Ipp64f* pSrcDst, int height))
|
|
|
|
IPPAPI(IppStatus, ippsLogGaussMultiMix_32f_D2L, (const Ipp32f** mMean,
|
|
const Ipp32f** mVar, const Ipp32f* pSrc, int width, Ipp32f* pSrcDst,
|
|
int height))
|
|
|
|
IPPAPI(IppStatus, ippsLogGaussMultiMix_64f_D2L, (const Ipp64f** mMean,
|
|
const Ipp64f** mVar, const Ipp64f* pSrc, int width, Ipp64f* pSrcDst,
|
|
int height))
|
|
|
|
|
|
/* /////////////////////////////////////////////////////////////////////////////
|
|
// Name: ippsLogGaussMax_*_D2
|
|
// Purpose: Computes maximum value of a vector dst and
|
|
// logarithms of the Gaussian probability distribution function.
|
|
// Parameters:
|
|
// pSrc Pointer to the input vector [height*step].
|
|
// mSrc Pointer to the input matrix [height][width].
|
|
// step The row step in pSrc.
|
|
// pMean Pointer to the mean vector [width].
|
|
// pVar Pointer to the variance vector [width].
|
|
// width The length of the input matrix row, mean,
|
|
// and variance vectors.
|
|
// pSrcDst Pointer to the input and output vector [height].
|
|
// height The number of rows in the input matrix and the length of
|
|
// the result vector pSrcDst.
|
|
// val The value to add to each distance.
|
|
// scaleFactor
|
|
//
|
|
// Return:
|
|
// ippStsNoErr Indicates no error.
|
|
// ippStsNullPtrErr Indicates an error when the pSrc, pMean, pVar,
|
|
// pSrcDst, mSrc pointer is null.
|
|
// ippStsSizeErr Indicates an error when height or width is less than or
|
|
// equal to 0.
|
|
// ippStsStrideErr Indicates an error when width > step.
|
|
//
|
|
*/
|
|
|
|
/*
|
|
//Case 1: Operation for the inverse diagonal covariance matrix
|
|
*/
|
|
IPPAPI(IppStatus, ippsLogGaussMax_32f_D2, (const Ipp32f* pSrc, int step,
|
|
const Ipp32f* pMean, const Ipp32f* pVar, int width,
|
|
Ipp32f* pSrcDst, int height, Ipp32f val))
|
|
|
|
IPPAPI(IppStatus, ippsLogGaussMax_32f_D2L, (const Ipp32f** mSrc,
|
|
const Ipp32f* pMean, const Ipp32f* pVar, int width, Ipp32f* pSrcDst,
|
|
int height, Ipp32f val))
|
|
|
|
IPPAPI(IppStatus, ippsLogGaussMax_64f_D2, (const Ipp64f* pSrc, int step,
|
|
const Ipp64f* pMean, const Ipp64f* pVar, int width, Ipp64f* pSrcDst,
|
|
int height, Ipp64f val))
|
|
|
|
IPPAPI(IppStatus, ippsLogGaussMax_64f_D2L, (const Ipp64f** mSrc,
|
|
const Ipp64f* pMean, const Ipp64f* pVar, int width, Ipp64f* pSrcDst,
|
|
int height, Ipp64f val))
|
|
|
|
IPPAPI(IppStatus, ippsLogGaussMax_16s32s_D2Sfs, (const Ipp16s* pSrc,
|
|
int step, const Ipp16s* pMean, const Ipp16s* pVar, int width,
|
|
Ipp32s* pSrcDst, int height, Ipp32s val, int scaleFactor))
|
|
|
|
IPPAPI(IppStatus, ippsLogGaussMax_16s32s_D2LSfs, (const Ipp16s** mSrc,
|
|
const Ipp16s* pMean, const Ipp16s* pVar, int width, Ipp32s* pSrcDst,
|
|
int height, Ipp32s val, int scaleFactor))
|
|
|
|
IPPAPI(IppStatus, ippsLogGaussMax_Scaled_16s32f_D2, (const Ipp16s* pSrc, int step,
|
|
const Ipp16s* pMean, const Ipp16s* pVar, int width,
|
|
Ipp32f* pSrcDst, int height, Ipp32f val, int scaleFactor))
|
|
|
|
IPPAPI(IppStatus, ippsLogGaussMax_Scaled_16s32f_D2L, (const Ipp16s** mSrc,
|
|
const Ipp16s* pMean, const Ipp16s* pVar, int width, Ipp32f* pSrcDst,
|
|
int height, Ipp32f val, int scaleFactor))
|
|
|
|
|
|
/*
|
|
//Case 2: Operation for the identity covariance matrix
|
|
*/
|
|
IPPAPI(IppStatus, ippsLogGaussMax_IdVar_32f_D2, (const Ipp32f* pSrc,
|
|
int step, const Ipp32f* pMean, int width, Ipp32f* pSrcDst,
|
|
int height, Ipp32f val))
|
|
|
|
IPPAPI(IppStatus, ippsLogGaussMax_IdVar_32f_D2L, (const Ipp32f** mSrc,
|
|
const Ipp32f* pMean, int width, Ipp32f* pSrcDst, int height,
|
|
Ipp32f val))
|
|
|
|
IPPAPI(IppStatus, ippsLogGaussMax_IdVar_64f_D2, (const Ipp64f* pSrc,
|
|
int step, const Ipp64f* pMean, int width, Ipp64f* pSrcDst,
|
|
int height, Ipp64f val))
|
|
|
|
IPPAPI(IppStatus, ippsLogGaussMax_IdVar_64f_D2L, (const Ipp64f** mSrc,
|
|
const Ipp64f* pMean, int width, Ipp64f* pSrcDst, int height,
|
|
Ipp64f val))
|
|
|
|
IPPAPI(IppStatus, ippsLogGaussMax_IdVar_16s32s_D2Sfs, (const Ipp16s* pSrc,
|
|
int step, const Ipp16s* pMean, int width, Ipp32s* pSrcDst,
|
|
int height, Ipp32s val, int scaleFactor))
|
|
|
|
IPPAPI(IppStatus, ippsLogGaussMax_IdVar_16s32s_D2LSfs, (const Ipp16s** mSrc,
|
|
const Ipp16s* pMean, int width, Ipp32s* pSrcDst, int height,
|
|
Ipp32s val, int scaleFactor))
|
|
|
|
IPPAPI(IppStatus, ippsLogGaussMax_IdVarScaled_16s32f_D2, (const Ipp16s* pSrc,
|
|
int step, const Ipp16s* pMean, int width, Ipp32f* pSrcDst,
|
|
int height, Ipp32f val, int scaleFactor))
|
|
|
|
IPPAPI(IppStatus, ippsLogGaussMax_IdVarScaled_16s32f_D2L, (const Ipp16s** mSrc,
|
|
const Ipp16s* pMean, int width, Ipp32f* pSrcDst, int height,
|
|
Ipp32f val, int scaleFactor))
|
|
|
|
|
|
/* /////////////////////////////////////////////////////////////////////////////
|
|
// Name: ippsLogGaussMaxMultiMix_*_*
|
|
// Purpose: Computes the maximum of the Gaussian probability
|
|
// distribution function.
|
|
// Parameters:
|
|
// pMean Pointer to the mean vector [height*step].
|
|
// pVar Pointer to the variance vector [height*step].
|
|
// mMean Pointer to the mean matrix [height][width].
|
|
// mVar Pointer to the variance matrix [height][width].
|
|
// pVal Pointer to the input vector of Max values [height].
|
|
// pSrcDst Pointer to the input and output vector [height].
|
|
// step Row step in pMean and pVar.
|
|
// pSrc Pointer to theinput vector [width].
|
|
// height Number of rows in input matrices and the length of
|
|
// the result vector pSrcDst.
|
|
// width Length of the input matrices row and the vector pSrc.
|
|
// scaleFactor
|
|
//
|
|
// Return:
|
|
// ippStsNoErr Indicates no error.
|
|
// ippStsNullPtrErr Indicates an error when the pSrc, pMean, pVar,
|
|
// pSrcDst, mMean, mVar or pVal pointer is null.
|
|
// ippStsSizeErr Indicates an error when height or width is less than or
|
|
// equal to 0.
|
|
// ippStsStrideErr Indicates an error when width > step.
|
|
//
|
|
*/
|
|
IPPAPI(IppStatus, ippsLogGaussMaxMultiMix_32f_D2, (const Ipp32f* pMean,
|
|
const Ipp32f* pVar, int step, const Ipp32f* pSrc, int width,
|
|
const Ipp32f* pVal, Ipp32f* pSrcDst, int height))
|
|
|
|
IPPAPI(IppStatus, ippsLogGaussMaxMultiMix_32f_D2L, (const Ipp32f** mMean,
|
|
const Ipp32f** mVar, const Ipp32f* pSrc, int width, const Ipp32f* pVal,
|
|
Ipp32f* pSrcDst, int height))
|
|
|
|
IPPAPI(IppStatus, ippsLogGaussMaxMultiMix_64f_D2, (const Ipp64f* pMean,
|
|
const Ipp64f* pVar, int step, const Ipp64f* pSrc, int width,
|
|
const Ipp64f* pVal, Ipp64f* pSrcDst, int height))
|
|
|
|
IPPAPI(IppStatus, ippsLogGaussMaxMultiMix_64f_D2L, (const Ipp64f** mMean,
|
|
const Ipp64f** mVar, const Ipp64f* pSrc, int width, const Ipp64f* pVal,
|
|
Ipp64f* pSrcDst, int height))
|
|
|
|
IPPAPI(IppStatus, ippsLogGaussMaxMultiMix_Scaled_16s32f_D2, (const Ipp16s* pMean,
|
|
const Ipp16s* pVar, int step, const Ipp16s* pSrc, int width,
|
|
const Ipp32f* pVal, Ipp32f* pSrcDst, int height, int scaleFactor))
|
|
|
|
IPPAPI(IppStatus, ippsLogGaussMaxMultiMix_Scaled_16s32f_D2L, (const Ipp16s** mMean,
|
|
const Ipp16s** mVar, const Ipp16s* pSrc, int width, const Ipp32f* pVal,
|
|
Ipp32f* pSrcDst, int height, int scaleFactor))
|
|
|
|
IPPAPI(IppStatus, ippsLogGaussMaxMultiMix_16s32s_D2Sfs, (const Ipp16s* pMean,
|
|
const Ipp16s* pVar, int step, const Ipp16s* pSrc, int width,
|
|
const Ipp32s* pVal, Ipp32s* pSrcDst, int height, int scaleFactor))
|
|
|
|
IPPAPI(IppStatus, ippsLogGaussMaxMultiMix_16s32s_D2LSfs, (const Ipp16s** mMean,
|
|
const Ipp16s** mVar, const Ipp16s* pSrc, int width, const Ipp32s* pVal,
|
|
Ipp32s* pSrcDst, int height, int scaleFactor))
|
|
|
|
|
|
/* /////////////////////////////////////////////////////////////////////////////
|
|
// Name: ippsLogGaussAdd_32f_D2
|
|
// Purpose: Calculates the likelihood probability for multiple
|
|
// observation vectors.
|
|
//
|
|
// Parameters:
|
|
// pSrc Pointer to the input vector [width*height]
|
|
// mSrc Pointer to the input matrix [height][width].
|
|
// step Row step in pSrc.
|
|
// pMean Pointer to the mean vector [width]
|
|
// pVar Pointer to the variance vector [width]
|
|
// width Length of the mean, and variance vectors.
|
|
// pSrcDst Pointer to input vector and output vector [height]
|
|
// height Length of the input and output vector pSrcDst
|
|
// val Value to add to each distance.
|
|
//
|
|
// Returns:
|
|
// ippStsNoErr Indicates no error
|
|
// ippStsNullPtrErr Indicates an error when the pSrc, pMean, pVar,
|
|
// pSrcDst or mSrc pointer is null.
|
|
// ippStsSizeErr Indicates an error when width or height
|
|
// is less than or equal to 0.
|
|
// ippStsStrideErr Indicates an error when width > step.
|
|
*/
|
|
|
|
/*
|
|
//Case 1: Operation for the inverse diagonal covariance matrix
|
|
*/
|
|
IPPAPI(IppStatus, ippsLogGaussAdd_32f_D2, (const Ipp32f* pSrc, int step,
|
|
const Ipp32f* pMean, const Ipp32f* pVar, int width, Ipp32f* pSrcDst,
|
|
int height, Ipp32f val))
|
|
|
|
IPPAPI(IppStatus, ippsLogGaussAdd_32f_D2L, (const Ipp32f** mSrc,
|
|
const Ipp32f* pMean, const Ipp32f* pVar, int width, Ipp32f* pSrcDst,
|
|
int height, Ipp32f val))
|
|
|
|
IPPAPI(IppStatus, ippsLogGaussAdd_64f_D2,(const Ipp64f* pSrc, int step,
|
|
const Ipp64f* pMean, const Ipp64f* pVar, int width,
|
|
Ipp64f* pSrcDst, int height, Ipp64f val))
|
|
|
|
IPPAPI(IppStatus, ippsLogGaussAdd_64f_D2L, (const Ipp64f** mSrc, const Ipp64f* pMean,
|
|
const Ipp64f* pVar, int width, Ipp64f* pSrcDst, int height, Ipp64f val))
|
|
|
|
IPPAPI(IppStatus, ippsLogGaussAdd_Scaled_16s32f_D2,(const Ipp16s* pSrc, int step,
|
|
const Ipp16s* pMean, const Ipp16s* pVar, int width,
|
|
Ipp32f* pSrcDst, int height, Ipp32f val, int scaleFactor))
|
|
|
|
IPPAPI(IppStatus, ippsLogGaussAdd_Scaled_16s32f_D2L, (const Ipp16s** mSrc,
|
|
const Ipp16s* pMean, const Ipp16s* pVar, int width, Ipp32f* pSrcDst,
|
|
int height, Ipp32f val, int scaleFactor))
|
|
|
|
/*
|
|
//Case 2: Operation for the identity covariance matrix
|
|
*/
|
|
IPPAPI(IppStatus, ippsLogGaussAdd_IdVarScaled_16s32f_D2,(const Ipp16s* pSrc,
|
|
int step, const Ipp16s* pMean, int width, Ipp32f* pSrcDst,
|
|
int height, Ipp32f val, int scaleFactor))
|
|
|
|
IPPAPI(IppStatus, ippsLogGaussAdd_IdVarScaled_16s32f_D2L,(const Ipp16s** mSrc,
|
|
const Ipp16s* pMean, int width, Ipp32f* pSrcDst, int height, Ipp32f val,
|
|
int scaleFactor))
|
|
|
|
IPPAPI(IppStatus, ippsLogGaussAdd_IdVar_32f_D2,(const Ipp32f* pSrc,
|
|
int step, const Ipp32f* pMean, int width, Ipp32f* pSrcDst, int height,
|
|
Ipp32f val))
|
|
|
|
IPPAPI(IppStatus, ippsLogGaussAdd_IdVar_32f_D2L,(const Ipp32f** mSrc,
|
|
const Ipp32f* pMean, int width, Ipp32f* pSrcDst, int height, Ipp32f val))
|
|
|
|
IPPAPI(IppStatus, ippsLogGaussAdd_IdVar_64f_D2,(const Ipp64f* pSrc, int step,
|
|
const Ipp64f* pMean, int width, Ipp64f* pSrcDst, int height, Ipp64f val))
|
|
|
|
IPPAPI(IppStatus, ippsLogGaussAdd_IdVar_64f_D2L,(const Ipp64f** mSrc,
|
|
const Ipp64f* pMean, int width, Ipp64f* pSrcDst, int height, Ipp64f val))
|
|
|
|
|
|
/* /////////////////////////////////////////////////////////////////////////////
|
|
// Name: ippsLogGaussAddMultiMix_*_*
|
|
// Purpose: Calculates the likelihood probability for multiple
|
|
// Gaussian mixture components.
|
|
//
|
|
// Parameters:
|
|
// pMean Pointer to the variance vector [height*step].
|
|
// mMean Pointer to the mean matrix [height][width].
|
|
// pVar Pointer to the variance vector [height*step].
|
|
// mVar Pointer to the variance matrix [height][width].
|
|
// pVal Pointer to the input vector of additive values [height].
|
|
// pSrcDst Pointer to the input and output vector [height].
|
|
// step The row step in pMean.
|
|
// pSrc Pointer to the input vector [width].
|
|
// height The number of rows in input matrices and the length of
|
|
// the result vector pSrcDst.
|
|
// width The length of the input matrices row and the vector pSrc.
|
|
// scaleFactor
|
|
//
|
|
// Return:
|
|
// ippStsNoErr Indicates no error.
|
|
// ippStsNullPtrErr Indicates an error when the pSrc, pMean, pVar,
|
|
// pSrcDst, mMean, mVar or pVal pointer is null.
|
|
// ippStsSizeErr Indicates an error when height or width is less than or
|
|
// equal to 0.
|
|
// ippStsStrideErr Indicates an error when width > step.
|
|
//
|
|
*/
|
|
|
|
IPPAPI(IppStatus, ippsLogGaussAddMultiMix_Scaled_16s32f_D2, (const Ipp16s* pMean,
|
|
const Ipp16s* pVar, int step, const Ipp16s* pSrc, int width,
|
|
const Ipp32f* pVal, Ipp32f* pSrcDst, int height, int scaleFactor))
|
|
|
|
IPPAPI(IppStatus, ippsLogGaussAddMultiMix_Scaled_16s32f_D2L, (const Ipp16s** mMean,
|
|
const Ipp16s** mVar, const Ipp16s* pSrc, int width, const Ipp32f* pVal,
|
|
Ipp32f* pSrcDst, int height, int scaleFactor))
|
|
|
|
IPPAPI(IppStatus, ippsLogGaussAddMultiMix_32f_D2, (const Ipp32f* pMean,
|
|
const Ipp32f* pVar, int step, const Ipp32f* pSrc, int width,
|
|
const Ipp32f* pVal, Ipp32f* pSrcDst, int height))
|
|
|
|
IPPAPI(IppStatus, ippsLogGaussAddMultiMix_32f_D2L, (const Ipp32f** mMean,
|
|
const Ipp32f** mVar, const Ipp32f* pSrc, int width, const Ipp32f* pVal,
|
|
Ipp32f* pSrcDst, int height))
|
|
|
|
IPPAPI(IppStatus, ippsLogGaussAddMultiMix_64f_D2, (const Ipp64f* pMean,
|
|
const Ipp64f* pVar, int step, const Ipp64f* pSrc, int width,
|
|
const Ipp64f* pVal, Ipp64f* pSrcDst, int height))
|
|
|
|
IPPAPI(IppStatus, ippsLogGaussAddMultiMix_64f_D2L, (const Ipp64f** mMean,
|
|
const Ipp64f** mVar, const Ipp64f* pSrc, int width, const Ipp64f* pVal,
|
|
Ipp64f* pSrcDst, int height))
|
|
|
|
|
|
/* /////////////////////////////////////////////////////////////////////////////
|
|
// Model Estimation
|
|
///////////////////////////////////////////////////////////////////////////// */
|
|
/* /////////////////////////////////////////////////////////////////////////////
|
|
// Name: ippsMeanColumn_*
|
|
// Purpose: Computes the mean values vector of column
|
|
// Parameters:
|
|
// pSrc Pointer to the input vector [height*step].
|
|
// mSrc Pointer to the input matrix [height][width].
|
|
// height The number rows in the input matrix.
|
|
// step The row step in pSrc.
|
|
// pDstMean Pointer to the output mean vector [width].
|
|
// width The number of columns in the input matrix and the length
|
|
// of the output mean vector pDstMean.
|
|
// scaleFactor
|
|
//
|
|
// Return:
|
|
// ippStsNoErr Indicates no error.
|
|
// ippStsNullPtrErr Indicates an error when the pSrc, mSrc, or pDstMean
|
|
// pointer is null.
|
|
// ippStsSizeErr Indicates an error when height or width is less than
|
|
// or equal to 0.
|
|
// ippStsStrideErr Indicates an error when width > step.
|
|
//
|
|
*/
|
|
IPPAPI(IppStatus, ippsMeanColumn_16s_D2,(const Ipp16s* pSrc, int height,
|
|
int step, Ipp16s* pDstMean, int width))
|
|
|
|
IPPAPI(IppStatus, ippsMeanColumn_16s_D2L,(const Ipp16s** mSrc, int height,
|
|
Ipp16s* pDstMean, int width))
|
|
|
|
|
|
IPPAPI(IppStatus, ippsMeanColumn_32f_D2,(const Ipp32f* pSrc, int height,
|
|
int step, Ipp32f* pDstMean, int width))
|
|
|
|
IPPAPI(IppStatus, ippsMeanColumn_32f_D2L,(const Ipp32f** mSrc, int height,
|
|
Ipp32f* pDstMean, int width))
|
|
|
|
|
|
/* /////////////////////////////////////////////////////////////////////////////
|
|
// Name: ippsVarColumn_*
|
|
// Purpose: Computes the variance values vector of column elements.
|
|
// Parameters:
|
|
// pSrc Pointer to the input vector [height*step].
|
|
// mSrc Pointer to the input matrix [height][width].
|
|
// height The number of rows in the input matrix.
|
|
// step The row step in pSrc.
|
|
// pSrcMean Pointer to the input mean vector [width].
|
|
// pDstVar Pointer to the output variance vector of length [width].
|
|
// width Number of columns in the input matrix and the length of
|
|
// the input mean vector pSrcMean and output variance
|
|
// vector pDstVar.
|
|
//
|
|
// Return:
|
|
// ippStsNoErr Indicates no error.
|
|
// ippStsNullPtrErr Indicates an error when the mSrc, pSrcMean, pDstVar, or
|
|
// pSrc pointer is null.
|
|
// ippStsSizeErr Indicates an error when srcHight or width is less than or
|
|
// equal to 0.
|
|
// ippStsStrideErr Indicates an error when width > step.
|
|
//
|
|
*/
|
|
|
|
IPPAPI(IppStatus, ippsVarColumn_16s_D2Sfs,(const Ipp16s* pSrc, int height,
|
|
int step, Ipp16s* pSrcMean, Ipp16s* pDstVar, int width, int scaleFactor))
|
|
|
|
IPPAPI(IppStatus, ippsVarColumn_16s_D2LSfs,(const Ipp16s** mSrc, int height,
|
|
Ipp16s* pSrcMean, Ipp16s* pDstVar, int width, int scaleFactor))
|
|
|
|
IPPAPI(IppStatus, ippsVarColumn_32f_D2,(const Ipp32f* pSrc, int height,
|
|
int step, Ipp32f* pSrcMean, Ipp32f* pDstVar, int width))
|
|
|
|
IPPAPI(IppStatus, ippsVarColumn_32f_D2L,(const Ipp32f** mSrc, int height,
|
|
Ipp32f* pSrcMean, Ipp32f* pDstVar, int width))
|
|
|
|
|
|
/* /////////////////////////////////////////////////////////////////////////////
|
|
// Name: ippsMeanVarColumn_*
|
|
// Purpose: Computes the mean and variance values vector of
|
|
// column elements.
|
|
// Parameters:
|
|
// pSrc Pointer to the input vector [height*step].
|
|
// mSrc Pointer to the input matrix [height][width].
|
|
// height The number of rows in the input matrix.
|
|
// step The row step in pSrc.
|
|
// pDstMean Pointer to the output mean vector [width].
|
|
// pDstVar Pointer to the output variance vector [width].
|
|
// width The number of columns in the input matrix and the length
|
|
// of the output mean vector pDstMean and
|
|
// variance vector pDstVar.
|
|
//
|
|
// Return:
|
|
// ippStsNoErr Indicates no error.
|
|
// ippStsNullPtrErr Indicates an error when the pSrc, mSrc, pDstMean, or
|
|
// pDstVar pointer is null.
|
|
// ippStsSizeErr Indicates an error when height or width is less than
|
|
// or equal to 0.
|
|
// ippStsStrideErr Indicates an error when width > step.
|
|
//
|
|
*/
|
|
IPPAPI(IppStatus, ippsMeanVarColumn_16s_D2Sfs,(const Ipp16s* pSrc, int height,
|
|
int step, Ipp16s* pDstMean, Ipp16s* pDstVar, int width, int scaleFactor))
|
|
|
|
IPPAPI(IppStatus, ippsMeanVarColumn_16s_D2LSfs,(const Ipp16s** mSrc, int height,
|
|
Ipp16s* pDstMean, Ipp16s* pDstVar, int width, int scaleFactor))
|
|
|
|
IPPAPI(IppStatus, ippsMeanVarColumn_16s16s32s_D2,(const Ipp16s* pSrc, int height,
|
|
int step, Ipp16s* pDstMean, Ipp32s* pDstVar, int width))
|
|
|
|
IPPAPI(IppStatus, ippsMeanVarColumn_16s16s32s_D2L,(const Ipp16s** mSrc, int height,
|
|
Ipp16s* pDstMean, Ipp32s* pDstVar, int width))
|
|
|
|
IPPAPI(IppStatus, ippsMeanVarColumn_16s32s_D2Sfs,(const Ipp16s* pSrc, int height,
|
|
int step, Ipp32s* pDstMean, Ipp32s* pDstVar, int width, int scaleFactor))
|
|
|
|
IPPAPI(IppStatus, ippsMeanVarColumn_16s32s_D2LSfs,(const Ipp16s** mSrc, int height,
|
|
Ipp32s* pDstMean, Ipp32s* pDstVar, int width, int scaleFactor))
|
|
|
|
IPPAPI(IppStatus, ippsMeanVarColumn_32f_D2,(const Ipp32f* pSrc, int height,
|
|
int step, Ipp32f* pDstMean, Ipp32f* pDstVar, int width))
|
|
|
|
IPPAPI(IppStatus, ippsMeanVarColumn_32f_D2L,(const Ipp32f** mSrc, int height,
|
|
Ipp32f* pDstMean, Ipp32f* pDstVar, int width))
|
|
|
|
|
|
/* /////////////////////////////////////////////////////////////////////////////
|
|
// Name: ippsNormalizeColumn_*_*
|
|
// Purpose: Normalizes the matrix rows with the help of mean
|
|
// and variance vectors.
|
|
// Parameters:
|
|
// pMean Pointer to the mean vector [width].
|
|
// pVar Pointer to the variance vector [width].
|
|
// pSrcDst Pointer to the input and output vector [height*step].
|
|
// mSrcDst Pointer to the input/output matrix [height][width]
|
|
// width The number of elements in the mean
|
|
// and variance vectors.
|
|
// step The row step in pSrcDst.
|
|
// height The number of rows in the input and output matrix
|
|
// scaleFactor
|
|
//
|
|
// Return:
|
|
// ippStsNoErr Indicates no error.
|
|
// ippStsNullPtrErr Indicates an error when the pMean, pVar, or pSrcDst
|
|
// or mSrcDst pointer is null.
|
|
// ippStsSizeErr Indicates an error when height or width is less than or
|
|
// equal to 0.
|
|
// ippStsStrideErr Indicates an error when width > step.
|
|
//
|
|
*/
|
|
IPPAPI(IppStatus, ippsNormalizeColumn_32f_D2,(Ipp32f* pSrcDst, int step,
|
|
int height, const Ipp32f* pMean, const Ipp32f* pVar, int width))
|
|
|
|
IPPAPI(IppStatus, ippsNormalizeColumn_32f_D2L,(Ipp32f** mSrcDst, int height,
|
|
const Ipp32f* pMean, const Ipp32f* pVar, int width))
|
|
|
|
IPPAPI(IppStatus, ippsNormalizeColumn_16s_D2Sfs,(Ipp16s* pSrcDst, int step,
|
|
int height, const Ipp16s* pMean, const Ipp16s* pVar, int width,
|
|
int scaleFactor))
|
|
|
|
IPPAPI(IppStatus, ippsNormalizeColumn_16s_D2LSfs,(Ipp16s** mSrcDst, int height,
|
|
const Ipp16s* pMean, const Ipp16s* pVar, int width, int scaleFactor))
|
|
|
|
|
|
/* /////////////////////////////////////////////////////////////////////////////
|
|
// Name: ippsNormalizeInRange_*
|
|
//
|
|
// Purpose: Normalizes and scales input vector elements.
|
|
//
|
|
// Parameters:
|
|
// pSrc Pointer to the input array [len].
|
|
// pSrcDst Pointer to the input and output array
|
|
// (for the in-place operation) [len].
|
|
// pDst Pointer to the output array [len].
|
|
// len Number of elements in the input and output array.
|
|
// lowCut Lower cutoff value.
|
|
// highCut High cutoff value.
|
|
// range Upper bound of output data value (lower bound is 0).
|
|
//
|
|
// Return:
|
|
// ippStsNoErr Indicates no error.
|
|
// ippStsNullPtrErr Indicates an error when the pSrc or pDst pointer is null.
|
|
// ippStsSizeErr Indicates an error when len is less than or equal to 0.
|
|
// ippStsBadArgErr Indicates an error when 0<=lowCut<highCut<=1 condition
|
|
// is not true or range is less than 0.
|
|
// ippStsInvZero Indicates a warning when Xmin = Xmax. All elements of
|
|
// the output vector are set to 0.
|
|
*/
|
|
IPPAPI(IppStatus, ippsNormalizeInRange_16s8u, (const Ipp16s* pSrc, Ipp8u* pDst,
|
|
int len, Ipp32f lowCut, Ipp32f highCut, Ipp8u range))
|
|
|
|
IPPAPI(IppStatus, ippsNormalizeInRange_16s, (const Ipp16s* pSrc, Ipp16s* pDst,
|
|
int len, Ipp32f lowCut, Ipp32f highCut, Ipp16s range))
|
|
|
|
IPPAPI(IppStatus, ippsNormalizeInRange_16s_I, (Ipp16s* pSrcDst,
|
|
int len, Ipp32f lowCut, Ipp32f highCut, Ipp16s range))
|
|
|
|
IPPAPI(IppStatus, ippsNormalizeInRange_32f8u, (const Ipp32f* pSrc, Ipp8u* pDst,
|
|
int len, Ipp32f lowCut, Ipp32f highCut, Ipp8u range))
|
|
|
|
IPPAPI(IppStatus, ippsNormalizeInRange_32f16s, (const Ipp32f* pSrc, Ipp16s* pDst,
|
|
int len, Ipp32f lowCut, Ipp32f highCut, Ipp16s range))
|
|
|
|
IPPAPI(IppStatus, ippsNormalizeInRange_32f, (const Ipp32f* pSrc, Ipp32f* pDst,
|
|
int len, Ipp32f lowCut, Ipp32f highCut, Ipp32f range))
|
|
|
|
IPPAPI(IppStatus, ippsNormalizeInRange_32f_I, (Ipp32f* pSrcDst,
|
|
int len, Ipp32f lowCut, Ipp32f highCut, Ipp32f range))
|
|
|
|
/* /////////////////////////////////////////////////////////////////////////////
|
|
// Name: ippsNormalizeInRangeMinMax_*
|
|
//
|
|
// Purpose: Normalizes and scales input vector elements.
|
|
//
|
|
// Parameters:
|
|
// pSrc Pointer to the input array [len].
|
|
// pSrcDst Pointer to the input and output array
|
|
// (for the in-place operation) [len].
|
|
// pDst Pointer to the output array [len].
|
|
// len Number of elements in the input and output array.
|
|
// lowCut Lower cutoff value.
|
|
// highCut High cutoff value.
|
|
// range Upper bound of output data value (lower bound is 0).
|
|
// valMin Minimum of input data.
|
|
// valMax Maximum of input data.
|
|
//
|
|
// Return:
|
|
// ippStsNoErr Indicates no error.
|
|
// ippStsNullPtrErr Indicates an error when the pSrc or pDst pointer is null.
|
|
// ippStsSizeErr Indicates an error when len is less than or equal to 0.
|
|
// ippStsBadArgErr Indicates an error when 0<=lowCut<highCut<=1 condition
|
|
// is not true or range is less than 0 or valMin is greater
|
|
// than valMax.
|
|
// ippStsInvZero Indicates a warning when valMin=valMax. All elements of
|
|
// the output vector are set to 0.
|
|
*/
|
|
IPPAPI(IppStatus, ippsNormalizeInRangeMinMax_16s8u, (const Ipp16s* pSrc, Ipp8u* pDst,
|
|
int len, Ipp16s valMin, Ipp16s valMax,
|
|
Ipp32f lowCut, Ipp32f highCut, Ipp8u range))
|
|
|
|
IPPAPI(IppStatus, ippsNormalizeInRangeMinMax_16s, (const Ipp16s* pSrc, Ipp16s* pDst,
|
|
int len, Ipp16s valMin, Ipp16s valMax,
|
|
Ipp32f lowCut, Ipp32f highCut, Ipp16s range))
|
|
|
|
IPPAPI(IppStatus, ippsNormalizeInRangeMinMax_16s_I, (Ipp16s* pSrcDst,
|
|
int len, Ipp16s valMin, Ipp16s valMax, Ipp32f
|
|
lowCut, Ipp32f highCut, Ipp16s range))
|
|
|
|
IPPAPI(IppStatus, ippsNormalizeInRangeMinMax_32f8u, (const Ipp32f* pSrc, Ipp8u* pDst,
|
|
int len, Ipp32f valMin, Ipp32f valMax,
|
|
Ipp32f lowCut, Ipp32f highCut, Ipp8u range))
|
|
|
|
IPPAPI(IppStatus, ippsNormalizeInRangeMinMax_32f16s, (const Ipp32f* pSrc, Ipp16s* pDst,
|
|
int len, Ipp32f valMin, Ipp32f valMax,
|
|
Ipp32f lowCut, Ipp32f highCut, Ipp16s range))
|
|
|
|
IPPAPI(IppStatus, ippsNormalizeInRangeMinMax_32f, (const Ipp32f* pSrc, Ipp32f* pDst,
|
|
int len, Ipp32f valMin, Ipp32f valMax,
|
|
Ipp32f lowCut, Ipp32f highCut, Ipp32f range))
|
|
|
|
IPPAPI(IppStatus, ippsNormalizeInRangeMinMax_32f_I, (Ipp32f* pSrcDst,
|
|
int len, Ipp32f valMin, Ipp32f valMax,
|
|
Ipp32f lowCut, Ipp32f highCut, Ipp32f range))
|
|
|
|
/* /////////////////////////////////////////////////////////////////////////////
|
|
// Name: ippsMeanVarAcc_*
|
|
// Purpose: Computes mean and variance accumulators.
|
|
// Parameters:
|
|
// pSrc Pointer to the input vector [len].
|
|
// pSrcMean Pointer to the mean vector [len].
|
|
// pDstMeanAcc Pointer to the mean accumulated vector [len].
|
|
// pDstVarAcc Pointer to the variance accumulated vector [len].
|
|
// len The number of elements in the input, mean,
|
|
// and variance vectors.
|
|
// val The value of the multiplyed mean and variance vectors
|
|
// before accumulated.
|
|
//
|
|
// Return:
|
|
// ippStsNoErr Indicates no error.
|
|
// ippStsNullPtrErr Indicates an error when the pSrc, pSrcMean, pDstMeanAcc,
|
|
// or pDstVarAcc pointer is null.
|
|
// ippStsSizeErr Indicates an error when lenis less than or equal to 0.
|
|
//
|
|
*/
|
|
IPPAPI(IppStatus, ippsMeanVarAcc_32f, (Ipp32f const* pSrc,
|
|
Ipp32f const* pSrcMean, Ipp32f* pDstMeanAcc, Ipp32f* pDstVarAcc,
|
|
int len, Ipp32f val))
|
|
|
|
IPPAPI(IppStatus, ippsMeanVarAcc_64f, (Ipp64f const* pSrc,
|
|
Ipp64f const* pSrcMean, Ipp64f* pDstMeanAcc, Ipp64f* pDstVarAcc,
|
|
int len, Ipp64f val))
|
|
|
|
/* /////////////////////////////////////////////////////////////////////////////
|
|
// Name: ippsGaussianDist_32f
|
|
// Purpose: Computes distance between Gaussians.
|
|
// Parameters:
|
|
// pSrcMean1 Pointer to the mean vector of the first Gaussian [len]
|
|
// pSrcVar1 Pointer to the variance vector of the
|
|
// first Gaussian [len].
|
|
// pSrcMean2 Pointer to the mean vector of the second
|
|
// Gaussian [len].
|
|
// pSrcVar2 Pointer to the variance vector of the second
|
|
// Gaussian [len].
|
|
// len The number of elements in the mean and variance vectors.
|
|
// pResult Pointer to the distance value.
|
|
// wgt1 The first Gaussian weight.
|
|
// det1 The first Gaussian determinant.
|
|
// wgt2 The second Gaussian weight.
|
|
// det2 The second Gaussian determinant.
|
|
//
|
|
// Return:
|
|
// ippStsNoErr Indicates no error.
|
|
// ippStsNullPtrErr Indicates an error when the pSrcMean1, pSrcMean2,
|
|
// pSrcVar1, pSrcVar2, or pResult pointer is null.
|
|
// ippStsSizeErr Indicates an error when lenis less than or equal to 0.
|
|
//
|
|
*/
|
|
IPPAPI(IppStatus, ippsGaussianDist_32f,(const Ipp32f* pSrcMean1,
|
|
const Ipp32f* pSrcVar1, const Ipp32f* pSrcMean2, const Ipp32f* pSrcVar2,
|
|
int len, Ipp32f* pResult, Ipp32f wgt1, Ipp32f det1, Ipp32f wgt2,
|
|
Ipp32f det2))
|
|
|
|
IPPAPI(IppStatus, ippsGaussianDist_64f,(const Ipp64f* pSrcMean1,
|
|
const Ipp64f* pSrcVar1, const Ipp64f* pSrcMean2, const Ipp64f* pSrcVar2,
|
|
int len, Ipp64f* pResult, Ipp64f wgt1, Ipp64f det1, Ipp64f wgt2,
|
|
Ipp64f det2))
|
|
|
|
/* /////////////////////////////////////////////////////////////////////////////
|
|
// Name: ippsGaussianSplit_32f
|
|
// Purpose: Splits simple Gaussian probability distribution functions
|
|
//
|
|
// Parameters:
|
|
// pSrcMean1 Pointer to the input and the first output mean
|
|
// vector [len].
|
|
// pSrcVar1 Pointer to the input and the first variance vector [len].
|
|
// pSrcMean2 Pointer to the second output mean vector [len].
|
|
// pSrcVar2 Pointer to the input and the second variance vector [len].
|
|
// len The number of elements in the mean and variance vectors.
|
|
// val The variance perturbation value.
|
|
//
|
|
// Return:
|
|
// ippStsNoErr Indicates no error.
|
|
// ippStsNullPtrErr Indicates an error when the pSrcMean1, pSrcMean2,
|
|
// pSrcVar1, or pSrcVar2 pointer is null.
|
|
// ippStsSizeErr Indicates an error when lenis less than or equal to 0.
|
|
//
|
|
*/
|
|
IPPAPI(IppStatus, ippsGaussianSplit_32f,(Ipp32f* pSrcMean1, Ipp32f* pSrcVar1,
|
|
Ipp32f* pSrcMean2, Ipp32f* pSrcVar2, int len, Ipp32f val))
|
|
|
|
IPPAPI(IppStatus, ippsGaussianSplit_64f,(Ipp64f* pSrcMean1, Ipp64f* pSrcVar1,
|
|
Ipp64f* pSrcMean2, Ipp64f* pSrcVar2, int len, Ipp64f val))
|
|
|
|
/* /////////////////////////////////////////////////////////////////////////////
|
|
// Name: ippsGaussianMerge_32f
|
|
// Purpose: Merges two simple Gaussian probability
|
|
// distribution functions.
|
|
// Parameters:
|
|
// pSrcMean1 Pointer to the mean vector of the first Gaussian [len].
|
|
// pSrcVar1 Pointer to the variance vector of the first
|
|
// Gaussian [len].
|
|
// pSrcMean2 Pointer to the mean vector of the second Gaussian [len].
|
|
// pSrcVar2 Pointer to the variance vector of the second
|
|
// Gaussian [len].
|
|
// pDstMean Pointer to the mean vector of the merged Gaussian [len].
|
|
// pDstVar Pointer to the variance vector of the merged
|
|
// Gaussian [len].
|
|
// len The number of elements in the mean and variance vectors.
|
|
// pDstDet Pointer to the determinant of the merged Gaussian.
|
|
// wgt1 The first Gaussian weight.
|
|
// wgt2 The second Gaussian weight.
|
|
//
|
|
// Return:
|
|
// ippStsNoErr Indicates no error.
|
|
// ippStsNullPtrErr Indicates an error when the pSrcMean1, pSrcMean2,
|
|
// pSrcVar1, pSrcVar2, pDstMean, pDstVar, or pDstDet
|
|
// pointer is null.
|
|
// ippStsSizeErr Indicates an error when lenis less than or equal to 0.
|
|
//
|
|
*/
|
|
IPPAPI(IppStatus, ippsGaussianMerge_32f,(const Ipp32f* pSrcMean1,
|
|
const Ipp32f* pSrcVar1, const Ipp32f* pSrcMean2, const Ipp32f* pSrcVar2,
|
|
Ipp32f* pDstMean, Ipp32f* pDstVar, int len, Ipp32f* pDstDet, Ipp32f wgt1,
|
|
Ipp32f wgt2))
|
|
|
|
IPPAPI(IppStatus, ippsGaussianMerge_64f,(const Ipp64f* pSrcMean1,
|
|
const Ipp64f* pSrcVar1, const Ipp64f* pSrcMean2, const Ipp64f* pSrcVar2,
|
|
Ipp64f* pDstMean, Ipp64f* pDstVar, int len, Ipp64f* pDstDet, Ipp64f wgt1,
|
|
Ipp64f wgt2))
|
|
|
|
/* /////////////////////////////////////////////////////////////////////////////
|
|
// Name: ippsEntropy_*
|
|
//
|
|
// Purpose: Calculate exponent of minus squared argument.
|
|
//
|
|
// Parameters:
|
|
// pSrc Pointer to the input vector [len].
|
|
// pResult Pointer to the destination enropy value.
|
|
// len Length of the input vector.
|
|
// srcShiftVal
|
|
// scaleFactor
|
|
//
|
|
// Return:
|
|
// ippStsNoErr Indicates no error.
|
|
// ippStsNullPtrErr Indicates an error when the pSrc or pResult pointer is null.
|
|
// ippStsSizeErr Indicates an error when len is less than or equal to 0.
|
|
// ippStsLnNegArg Indicates a warning for input vector elements less than 0.
|
|
// Operation execution is aborted. The destination
|
|
// value NaN and for integer operations is 0.
|
|
//
|
|
*/
|
|
IPPAPI(IppStatus, ippsEntropy_32f, (const Ipp32f* pSrc, int len, Ipp32f* pResult))
|
|
|
|
IPPAPI(IppStatus, ippsEntropy_16s32s_Sfs, (const Ipp16s* pSrc, int srcShiftVal,
|
|
int len, Ipp32s* pResult, int scaleFactor))
|
|
|
|
/* /////////////////////////////////////////////////////////////////////////////
|
|
// Name: ippsSinC_*
|
|
//
|
|
// Purpose: Calculate sine divided by argument.
|
|
//
|
|
// Parameters:
|
|
// pSrc Pointer to the input array [len].
|
|
// pSrcDst Pointer to the input and destination vector [len].
|
|
// pDst Pointer to the output array [len].
|
|
// len Number of elements in the input vector.
|
|
//
|
|
// Return:
|
|
// ippStsNoErr Indicates no error.
|
|
// ippStsNullPtrErr Indicates an error when the pSrc, pSrcDst or pDst
|
|
// pointer is null.
|
|
// ippStsSizeErr Indicates an error when len is less than or equal to 0.
|
|
//
|
|
*/
|
|
IPPAPI(IppStatus, ippsSinC_32f, (const Ipp32f* pSrc, Ipp32f* pDst, int len))
|
|
|
|
IPPAPI(IppStatus, ippsSinC_32f64f, (const Ipp32f* pSrc, Ipp64f* pDst, int len))
|
|
|
|
IPPAPI(IppStatus, ippsSinC_64f, (const Ipp64f* pSrc, Ipp64f* pDst, int len))
|
|
|
|
IPPAPI(IppStatus, ippsSinC_32f_I, (Ipp32f* pSrcDst, int len))
|
|
|
|
IPPAPI(IppStatus, ippsSinC_64f_I, (Ipp64f* pSrcDst, int len))
|
|
|
|
/* /////////////////////////////////////////////////////////////////////////////
|
|
// Name: ippsExpNegSqr_*
|
|
//
|
|
// Purpose: Calculate exponent of minus squared argument.
|
|
//
|
|
// Parameters:
|
|
// pSrc Pointer to the input array [len].
|
|
// pSrcDst Pointer to the input and destination vector [len].
|
|
// pDst Pointer to the destination vector [len].
|
|
// len Length of the input and output vectors.
|
|
//
|
|
// Return:
|
|
// ippStsNoErr Indicates no error.
|
|
// ippStsNullPtrErr Indicates an error when the pSrc, pSrcDst or pDst
|
|
// pointer is null.
|
|
// ippStsSizeErr Indicates an error when len is less than or equal to 0.
|
|
//
|
|
// File: psexpns.c
|
|
*/
|
|
IPPAPI(IppStatus, ippsExpNegSqr_32f, (const Ipp32f* pSrc, Ipp32f* pDst, int len))
|
|
|
|
IPPAPI(IppStatus, ippsExpNegSqr_32f64f,(const Ipp32f* pSrc, Ipp64f* pDst, int len))
|
|
|
|
IPPAPI(IppStatus, ippsExpNegSqr_64f, (const Ipp64f* pSrc, Ipp64f* pDst, int len))
|
|
|
|
IPPAPI(IppStatus, ippsExpNegSqr_32f_I, (Ipp32f* pSrcDst, int len))
|
|
|
|
IPPAPI(IppStatus, ippsExpNegSqr_64f_I, (Ipp64f* pSrcDst, int len))
|
|
|
|
|
|
/*///////////////////////////////////////////////////////////////////////////////
|
|
// Name: IppStatus ippsBhatDistSLog_*
|
|
// Purpose: Calculates the Bhattacharia distance between two Gaussians.
|
|
//
|
|
// Parameters:
|
|
// pSrcMean1 Pointer to the first mean vector [len].
|
|
// pSrcVar1 Pointer to the first variance vector [len].
|
|
// pSrcMean2 Pointer to the second mean vector [len].
|
|
// pSrcVar2 Pointer to the second variance vector [len].
|
|
// pResult Pointer to the result value.
|
|
// len Length of the input mean and variance vectors.
|
|
// sumLog1 Sum of the first Gaussian variance in the logarithmic
|
|
// representation.
|
|
// sumLog2 Sum of the second Gaussian variance in the logarithmic
|
|
// representation.
|
|
//
|
|
// Return:
|
|
// ippStsNoErr Indicates no error.
|
|
// ippStsNullPtrErr Indicates an error when the pSrcMean1, pSrcVar1,
|
|
// pSrcMean2, pSrcVar2 or pResult pointer is null.
|
|
// ippStsSizeErr Indicates an error when len is less than or equal to 0
|
|
// ippStsLnZeroArg Indicates a warning that a zero value was detected in
|
|
// the input vector. The execution is not aborted.
|
|
// The result value is set to -Inf if there is no negative
|
|
// element in the vector.
|
|
// ippStsLnNegArg Indicates a warning that negative values were detected
|
|
// in the input vector. The execution is not aborted.
|
|
// The result value is set to NaN.
|
|
//
|
|
*/
|
|
|
|
IPPAPI(IppStatus, ippsBhatDist_32f,(const Ipp32f* pSrcMean1,
|
|
const Ipp32f* pSrcVar1, const Ipp32f* pSrcMean2, const Ipp32f* pSrcVar2,
|
|
int len, Ipp32f* pResult))
|
|
|
|
IPPAPI(IppStatus, ippsBhatDist_32f64f,(const Ipp32f* pSrcMean1,
|
|
const Ipp32f* pSrcVar1, const Ipp32f* pSrcMean2, const Ipp32f* pSrcVar2,
|
|
int len, Ipp64f* pResult))
|
|
|
|
IPPAPI(IppStatus, ippsBhatDistSLog_32f,(const Ipp32f* pSrcMean1,
|
|
const Ipp32f* pSrcVar1, const Ipp32f* pSrcMean2, const Ipp32f* pSrcVar2,
|
|
int len, Ipp32f* pResult, Ipp32f sumLog1, Ipp32f sumLog2))
|
|
|
|
IPPAPI(IppStatus, ippsBhatDistSLog_32f64f,(const Ipp32f* pSrcMean1,
|
|
const Ipp32f* pSrcVar1, const Ipp32f* pSrcMean2, const Ipp32f* pSrcVar2,
|
|
int len, Ipp64f* pResult, Ipp32f sumLog1, Ipp32f sumLog2))
|
|
|
|
/* /////////////////////////////////////////////////////////////////////////////
|
|
// Name: ippsUpdateMean_*
|
|
// Purpose: Update the mean vector in the embedded EM
|
|
// training algorithm.
|
|
// Parameters:
|
|
// pMeanAcc Pointer to the mean accumulator [len].
|
|
// pMean Pointer to the mean vector [len].
|
|
// len The legth of the mean vector [len].
|
|
// meanOcc The occupation sum of the Gaussian mixture.
|
|
//
|
|
// Return:
|
|
// ippStsNoErr Indicates no error.
|
|
// ippStsNullPtrErr Indicates an error when the pMean or pMeanAcc
|
|
// pointer is null.
|
|
// ippStsZeroOcc Indicates an error when meanOcc is equal to 0
|
|
// ippStsNegOcc Indicates an error when meanOcc is less than 0
|
|
//
|
|
*/
|
|
|
|
IPPAPI(IppStatus, ippsUpdateMean_32f, (const Ipp32f* pMeanAcc, Ipp32f* pMean,
|
|
int len, Ipp32f meanOcc))
|
|
|
|
IPPAPI(IppStatus, ippsUpdateMean_64f, (const Ipp64f* pMeanAcc, Ipp64f* pMean,
|
|
int len, Ipp64f meanOcc))
|
|
|
|
/* /////////////////////////////////////////////////////////////////////////////
|
|
// Name: ippsUpdateVar_*
|
|
// Purpose: Updates the variance vector in the EM training
|
|
// algorithm.
|
|
// Parameters:
|
|
// pMeanAcc Pointer to the mean accumulator [len].
|
|
// pVarAcc Pointer to the variance accumulator [len].
|
|
// pVarFloor Pointer to the variance floor vector [len].
|
|
// pVar Pointer to the variance vector [len].
|
|
// len The legth of the mean and variance vectors [len].
|
|
// meanOcc The occupation sum of the Gaussian mixture.
|
|
// varOcc The square occupation sum of the variance mixture.
|
|
//
|
|
// Return:
|
|
// ippStsNoErr Indicates no error.
|
|
// ippStsNullPtrErr Indicates an error when the or pMeanAcc or pVarAcc or pVar
|
|
// or pVarFloor pointer is null.
|
|
// ippStsZeroOcc Indicates an error when meanOcc or varOcc is equal to 0
|
|
// ippStsNegOcc Indicates an error when meanOcc and varOcc are less than 0
|
|
// ippStsResFloor Indicates a warning when all variances are floored.
|
|
//
|
|
*/
|
|
|
|
IPPAPI(IppStatus, ippsUpdateVar_32f, (const Ipp32f* pMeanAcc,
|
|
const Ipp32f* pVarAcc, const Ipp32f* pVarFloor, Ipp32f* pVar, int len,
|
|
Ipp32f meanOcc, Ipp32f varOcc))
|
|
IPPAPI(IppStatus, ippsUpdateVar_64f, (const Ipp64f* pMeanAcc,
|
|
const Ipp64f* pVarAcc, const Ipp64f* pVarFloor, Ipp64f* pVar, int len,
|
|
Ipp64f meanOcc, Ipp64f varOcc))
|
|
|
|
/* /////////////////////////////////////////////////////////////////////////////
|
|
// Name: ippsUpdateWeight_*
|
|
// Purpose: Updates the weight values of Gaussian mixtures
|
|
// in the EM training algorithm.
|
|
// Parameters:
|
|
// pWgtAccm Pointer to the weight accumulator [len].
|
|
// pWgt Pointer to the weight vector [len].
|
|
// len Number of mixtures in the HMM state.
|
|
// pWgtSum Pointer to the output sum of weight values.
|
|
// wgtOcc The nominator of the weight update equation.
|
|
// wgtThresh The threshold for the weight values.
|
|
//
|
|
// Return:
|
|
// ippStsNoErr Indicates no error.
|
|
// ippStsNullPtrErr Indicates an error when the or pWgtAcc or pWgt or pWgtSum
|
|
// pointer is null.
|
|
// ippStsSizeErr Indicates an error when len is less than or equal to 0
|
|
// ippStsZeroOcc Indicates an error when wgtOcc is equal to 0
|
|
// ippStsNegOcc Indicates an error when wgtOcc is less than 0
|
|
// ippStsResFloor Indicates a warning when all weights are floored.
|
|
//
|
|
*/
|
|
|
|
IPPAPI(IppStatus, ippsUpdateWeight_32f, (const Ipp32f* pWgtAcc, Ipp32f* pWgt,
|
|
int len, Ipp32f* pWgtSum, Ipp32f wgtOcc, Ipp32f wgtThresh))
|
|
|
|
IPPAPI(IppStatus, ippsUpdateWeight_64f, (const Ipp64f* pWgtAcc, Ipp64f* pWgt,
|
|
int len, Ipp64f* pWgtSum, Ipp64f wgtOcc, Ipp64f wgtThresh))
|
|
|
|
/* /////////////////////////////////////////////////////////////////////////////
|
|
// Name: ippsUpdateGConst_*
|
|
// Purpose: Updates the fixed constant in the Gaussian output
|
|
// probability density function.
|
|
// Parameters:
|
|
// pVar Pointer to the variance vector [len].
|
|
// len Dimension of the variance vector.
|
|
// pDet Pointer to the result value.
|
|
//
|
|
// Return:
|
|
// ippStsNoErr Indicates no error.
|
|
// ippStsNullPtrErr Indicates an error when the or pVar or pDet pointer
|
|
// is null.
|
|
// ippStsSizeErr Indicates an error when len is less than or equal to 0
|
|
// ippStsLnZeroArg Indicates a warning for zero-valued input vector elements.
|
|
// Operation execution is not aborted. The result value is
|
|
// set to -Inf if there are no negative elements in the vector.
|
|
// ippStsLnNegArg Indicates a warning for negative input vector elements.
|
|
// Operation execution is not aborted. The result value is NaN.
|
|
//
|
|
*/
|
|
|
|
IPPAPI(IppStatus, ippsUpdateGConst_32f, (const Ipp32f* pVar, int len, Ipp32f* pDet))
|
|
|
|
IPPAPI(IppStatus, ippsUpdateGConst_64f, (const Ipp64f* pVar, int len, Ipp64f* pDet))
|
|
|
|
IPPAPI(IppStatus, ippsUpdateGConst_DirectVar_32f, (const Ipp32f* pVar, int len,
|
|
Ipp32f* pDet))
|
|
|
|
IPPAPI(IppStatus, ippsUpdateGConst_DirectVar_64f, (const Ipp64f* pVar, int len,
|
|
Ipp64f* pDet))
|
|
|
|
/* /////////////////////////////////////////////////////////////////////////////
|
|
// Name: ippsOutProbPreCalc_*
|
|
// Purpose: Pre-calculates the part of Gaussian mixture output
|
|
// probability that is irrelevant to observation vectors.
|
|
// Parameters:
|
|
// pWeight Pointer to the Gaussian mixture weight vector [len].
|
|
// pGConst Pointer to the constant vector calculated from
|
|
// ippsUpdateGConst [len].
|
|
// pVal Pointer to the resulting vector [len].
|
|
// len Number of mixtures in the HMM state.
|
|
//
|
|
// Return:
|
|
// ippStsNoErr Indicates no error.
|
|
// ippStsNullPtrErr Indicates an error when the or pWeight or pGConst or pVal
|
|
// pointer is null.
|
|
// ippStsSizeErr Indicates an error when len is less than or equal to 0
|
|
//
|
|
*/
|
|
|
|
IPPAPI(IppStatus, ippsOutProbPreCalc_32f, (const Ipp32f* pWeight,
|
|
const Ipp32f* pGConst, Ipp32f* pVal, int len))
|
|
|
|
IPPAPI(IppStatus, ippsOutProbPreCalc_64f, (const Ipp64f* pWeight,
|
|
const Ipp64f* pGConst, Ipp64f* pVal, int len))
|
|
|
|
IPPAPI(IppStatus, ippsOutProbPreCalc_32f_I, (const Ipp32f* pWeight,
|
|
Ipp32f* pGConst, int len))
|
|
|
|
IPPAPI(IppStatus, ippsOutProbPreCalc_64f_I, (const Ipp64f* pWeight,
|
|
Ipp64f* pGConst, int len))
|
|
|
|
IPPAPI(IppStatus, ippsOutProbPreCalc_32s, (const Ipp32s* pWeight,
|
|
const Ipp32s* pGConst, Ipp32s* pVal, int len))
|
|
|
|
IPPAPI(IppStatus, ippsOutProbPreCalc_32s_I, (const Ipp32s* pWeight,
|
|
Ipp32s* pGConst, int len))
|
|
|
|
/*///////////////////////////////////////////////////////////////////////////////
|
|
// Name: ippsDcsClustLAccumulate_*
|
|
// Purpose: Update the accumulators for calculating state-cluster
|
|
// likelihood in the desition-tree clustering algorithm.
|
|
// Parameters:
|
|
// pMean Pointer to the mean vector of the HMM state in the
|
|
// cluster [len]
|
|
// pVar Pointer to the variance vector of the HMM state in the
|
|
// cluster [len]
|
|
// pDstSum Pointer to the sum part of the accumulator [len]
|
|
// pDstSqr Pointer to the sqr part of the accumulator [len]
|
|
// len Length of the mean and variance vectors.
|
|
// occ Occupation count of the HMM state.
|
|
// Return:
|
|
// ippStsNoErr Idicates no error
|
|
// ippStsNullPtrErr Idicates an error when the pMean, pVar, pDstSum or
|
|
// pDstSqr pointer is null
|
|
// ippStsSizeErr Idicates an error when len is less than or equal to 0
|
|
//
|
|
*/
|
|
IPPAPI(IppStatus, ippsDcsClustLAccumulate_32f, (const Ipp32f* pMean,
|
|
const Ipp32f* pVar, Ipp32f* pDstSum, Ipp32f* pDstSqr, int len, Ipp32f occ))
|
|
|
|
IPPAPI(IppStatus, ippsDcsClustLAccumulate_64f, (const Ipp64f* pMean,
|
|
const Ipp64f* pVar, Ipp64f* pDstSum, Ipp64f* pDstSqr, int len, Ipp64f occ))
|
|
|
|
IPPAPI(IppStatus, ippsDcsClustLAccumulate_DirectVar_32f, (const Ipp32f* pMean,
|
|
const Ipp32f* pVar, Ipp32f* pDstSum, Ipp32f* pDstSqr, int len, Ipp32f occ))
|
|
|
|
IPPAPI(IppStatus, ippsDcsClustLAccumulate_DirectVar_64f, (const Ipp64f* pMean,
|
|
const Ipp64f* pVar, Ipp64f* pDstSum, Ipp64f* pDstSqr, int len, Ipp64f occ))
|
|
|
|
/*///////////////////////////////////////////////////////////////////////////////
|
|
// Name: ippsDcsClustLCompute_*
|
|
// Purpose: Calculate the likelihood of an HMM state cluster in the
|
|
// decision-tree state-clustering algorithm.
|
|
// Parameters:
|
|
// pSrcSum Pointer to the sum part of the accumulator [len]
|
|
// pSrcSqr Pointer to the sqr part of the accumulator [len]
|
|
// len Length of the mean and variance vectors.
|
|
// pDst Pointer to the resulting likelihood value
|
|
// occ Ocupation sum of the HMM state cluster
|
|
//
|
|
// Return:
|
|
// ippStsNoErr Idicates no error
|
|
// ippStsNullPtrErr Idicates an error when the pSrcSum, pSrcSqr,
|
|
// pDst pointer is null.
|
|
// ippStsSizeErr Indicates an error when len is less than or equal to 0 or
|
|
// occ is less than or equal to 0.
|
|
// ippStsZeroOcc Indicates an error when occ is equal to 0
|
|
// ippStsNegOcc Indicates an error when occ is less than 0
|
|
// ippStsLnZeroArg Indicates a warning for zero-valued input vector elements.
|
|
// Operation execution is not aborted. The result value is
|
|
// set to -Inf if there are no negative elements in the
|
|
// vector.
|
|
// ippStsLnNegArg Indicates a warning for negative input vector elements.
|
|
// Operation execution is not aborted. The result value
|
|
// is set to NaN.
|
|
//
|
|
*/
|
|
|
|
IPPAPI(IppStatus, ippsDcsClustLCompute_32f64f, (const Ipp32f* pSrcSum,
|
|
const Ipp32f* pSrcSqr, int len, Ipp64f* pDst, Ipp32f occ))
|
|
|
|
IPPAPI(IppStatus, ippsDcsClustLCompute_64f, (const Ipp64f* pSrcSum,
|
|
const Ipp64f* pSrcSqr, int len, Ipp64f* pDst, Ipp64f occ))
|
|
|
|
|
|
/* /////////////////////////////////////////////////////////////////////////////
|
|
// Model Adaptation
|
|
///////////////////////////////////////////////////////////////////////////// */
|
|
/*/////////////////////////////////////////////////////////////////////////////
|
|
// Name: ippsAddMulColumn_64f_D2L
|
|
// Purpose: Adds a weighted matrix column to another column.
|
|
//
|
|
// Parameters:
|
|
// mSrcDst Pointer to the source and destination
|
|
// matrix [height][width].
|
|
// width The number of columns in the matrix mSrcDst.
|
|
// height The number of rows in the matrix mSrcDst.
|
|
// col1 The first number of the column.
|
|
// col2 The second number of the column.
|
|
// row1 The first number of the row.
|
|
// val The multiplier factor.
|
|
//
|
|
// Returns:
|
|
// ippStsNoErr Indicates no error.
|
|
// ippStsNullPtrErr Indicates an error when the mSrcDst pointer is null.
|
|
// ippStsSizeErr Indicates an error when when height, width
|
|
// is less than or equal to 0;
|
|
// or col1 or col2 is greater than or equal to width;
|
|
// or row1 is greater than or equal to height;
|
|
// or col1 or col2 or row1 is less than 0.
|
|
//
|
|
*/
|
|
IPPAPI(IppStatus, ippsAddMulColumn_64f_D2L, (Ipp64f** mSrcDst, int width,
|
|
int height, int col1, int col2, int row1, const Ipp64f val))
|
|
|
|
|
|
/* /////////////////////////////////////////////////////////////////////////////
|
|
// Name: ippsAddMulRow_64f
|
|
// Purpose: Multiplies sourceh vector elements by a value
|
|
// and places them in the destination vector.
|
|
//
|
|
// Parameters:
|
|
// pSrc Pointer to the source vector [len]
|
|
// pDst Pointer to the result vector [len]
|
|
// len Length of source vector
|
|
// val The multiplying coefficient
|
|
//
|
|
// Returns:
|
|
// ippStsNoErr Indicates no error.
|
|
// ippStsNoErr Indicates an error when the pSrc or pDst is null
|
|
// ippStsSizeErr Indicates an error when the len is less or equal 0
|
|
//
|
|
*/
|
|
IPPAPI(IppStatus, ippsAddMulRow_64f, (const Ipp64f *pSrc, Ipp64f *pDst,
|
|
int len, const Ipp64f val))
|
|
|
|
/*/////////////////////////////////////////////////////////////////////////////
|
|
// Name: ippsQRTransColumn_64f_D2L
|
|
// Purpose: Calculates QR transformation.
|
|
//
|
|
// Parameters:
|
|
// mSrcDst Pointer to the source and destination
|
|
// matrix [height][width].
|
|
// width The number of columns in the matrix mSrcDst.
|
|
// height The number of rows in the matrix mSrcDst.
|
|
// col1 The first number of the column.
|
|
// col2 The second number of the column.
|
|
// val1 The first multiplier factor.
|
|
// val2 The second multiplier factor.
|
|
// Returns:
|
|
// ippStsNoErr Indicates no error.
|
|
// ippStsNullPtrErr Indicates an error when the mSrcDst pointer is null.
|
|
// ippStsSizeErr Indicates an error when height, width
|
|
// is less than or equal to 0;
|
|
// or col1 or col2 is greater than or equal to width.
|
|
// or col1 or col2 is less than 0.
|
|
//
|
|
*/
|
|
IPPAPI(IppStatus, ippsQRTransColumn_64f_D2L, (Ipp64f** mSrcDst, int width,
|
|
int height, int col1, int col2, const Ipp64f val1, const Ipp64f val2))
|
|
|
|
|
|
/*/////////////////////////////////////////////////////////////////////////////
|
|
// Name: ippsDotProdColumn_64f_D2L
|
|
// Purpose: Calculates the dot product of two matrix columns.
|
|
//
|
|
// Parameters:
|
|
// mSrc Pointer to the source matrix [height][width].
|
|
// width The number of columns in the matrix mSrc.
|
|
// height The number of rows in the matrix mSrc.
|
|
// pSum Pointer to the value of the computed sum.
|
|
// col1 The first number of the column.
|
|
// col2 The second number of the column.
|
|
// row1 The first number of the row.
|
|
//
|
|
// Returns:
|
|
// ippStsNoErr Indicates no error.
|
|
// ippStsNullPtrErr Indicates an error when the mSrcor pSum pointer is null.
|
|
// ippStsSizeErr Indicates an error when height, width
|
|
// is less than or equal to 0;
|
|
// or row1 is greater than or equal to height;
|
|
// or col1 is greater than or equal to width;
|
|
// or row1 or col1 is less than 0.
|
|
//
|
|
*/
|
|
IPPAPI(IppStatus, ippsDotProdColumn_64f_D2L, (const Ipp64f** mSrc, int width,
|
|
int height, Ipp64f* pSum, int col1, int col2, int row1))
|
|
|
|
|
|
/* /////////////////////////////////////////////////////////////////////////////
|
|
// Name: ippsMulColumn_64f_D2L
|
|
// Purpose: Multiplies a matrix column by a value.
|
|
//
|
|
// Parameters:
|
|
// mSrcDst Pointer to the source and destination
|
|
// matrix [height][width].
|
|
// width The number of columns in the matrix mSrcDst.
|
|
// height The number of rows in the matrix mSrcDst.
|
|
// col1 The first number of the column.
|
|
// row1 The first number of the row.
|
|
// val The multiplier factor.
|
|
//
|
|
// Returns:
|
|
// ippStsNoErr Indicates no error.
|
|
// ippStsNullPtrErr Indicates an error when the mSrcDst pointer is null.
|
|
// ippStsSizeErr Indicates an error when height, width
|
|
// is less than or equal to 0;
|
|
// or row1 is greater than or equal to height;
|
|
// or col1 is greater than or equal to width;
|
|
// or row1 or col1 is less than 0.
|
|
//
|
|
*/
|
|
IPPAPI(IppStatus, ippsMulColumn_64f_D2L, (Ipp64f** mSrcDst, int width,
|
|
int height, int col1, int row1, const Ipp64f val))
|
|
|
|
|
|
/* /////////////////////////////////////////////////////////////////////////////
|
|
// Name: ippsSumColumnAbs_64f_D2L
|
|
// Purpose: Sums absolute values of column elements.
|
|
//
|
|
// Parameters:
|
|
// mSrc Pointer to the source matrix [height][width].
|
|
// width The number of columns in the matrix mSrc.
|
|
// height The number of rows in the matrix mSrc.
|
|
// pSum Pointer to the value of the computed sum.
|
|
// col1 The first number of the column.
|
|
// row1 The first number of the row.
|
|
//
|
|
// Returns:
|
|
// ippStsNoErr Indicates no error.
|
|
// ippStsNullPtrErr Indicates an error when the mSrc or pSum pointer is null.
|
|
// ippStsSizeErr Indicates an error when width, height
|
|
// is less than or equal to 0;
|
|
// or row1 is greater than or equal to height;
|
|
// or col1 is greater than or equal to width;
|
|
// or row1 or col1 is less than 0.
|
|
//
|
|
*/
|
|
IPPAPI(IppStatus, ippsSumColumnAbs_64f_D2L, (const Ipp64f** mSrc, int width,
|
|
int height, Ipp64f* pSum, int col1, int row1))
|
|
|
|
|
|
/* /////////////////////////////////////////////////////////////////////////////
|
|
// Name: ippsSumColumnSqr_64f_D2L
|
|
// Purpose: Multiplies matrix column elements by a value and
|
|
// sums their squares.
|
|
//
|
|
// Parameters:
|
|
// mSrcDst Pointer to the source matrix [height][width].
|
|
// width The number of columns in the matrix mSrcDst.
|
|
// height The number of rows in the matrix mSrcDst.
|
|
// pSum Pointer to the value of the computed sum.
|
|
// col1 The first number of the column.
|
|
//
|
|
// Returns:
|
|
// ippStsNoErr Indicates no error.
|
|
// ippStsNullPtrErr Indicates an error when the mSrcDst or pSum
|
|
// pointer is null.
|
|
// ippStsSizeErr Indicates an error when width, height
|
|
// is less than or equal to 0;
|
|
// or row1 is greater than or equal to height;
|
|
// or col1 is greater than or equal to width.
|
|
// or row1 or col1 is less than 0.
|
|
//
|
|
*/
|
|
IPPAPI(IppStatus, ippsSumColumnSqr_64f_D2L, (Ipp64f** mSrcDst, int width,
|
|
int height, Ipp64f* pSum, int col1, int row1, const Ipp64f val))
|
|
|
|
|
|
/* /////////////////////////////////////////////////////////////////////////////
|
|
// Name: ippsSumRowAbs_64f
|
|
// Purpose: Sums absolute values of vector elements.
|
|
//
|
|
// Parameters:
|
|
// pSrc Pointer to the source vector [len].
|
|
// pSum Pointer to the value of the computed sum.
|
|
// len The number of elements in the source vector pSrc.
|
|
//
|
|
// Returns:
|
|
// ippStsNoErr Indicates no error.
|
|
// ippStsNullPtrErr Indicates an error when the pSrc or pSum pointer is null.
|
|
// ippStsSizeErr Indicates an error when len is less than or equal to 0.
|
|
//
|
|
*/
|
|
IPPAPI(IppStatus, ippsSumRowAbs_64f, (const Ipp64f *pSrc, int len, Ipp64f *pSum))
|
|
|
|
/* /////////////////////////////////////////////////////////////////////////////
|
|
// Name: ippsSumRowSqr_64f
|
|
// Purpose: Multiplies vector elements by a value and sums
|
|
// their squares.
|
|
//
|
|
// Parameters:
|
|
// pSrcDst Pointer to the source vector [len].
|
|
// len The number of elements in the source vector pSrcDst.
|
|
// pSum Pointer to the value of the computed sum.
|
|
// val The multiplier factor.
|
|
//
|
|
// Returns:
|
|
// ippStsNoErr Indicates no error.
|
|
// ippStsNullPtrErr Indicates an error when the pSrcDst or pSum
|
|
// pointer is null.
|
|
// ippStsSizeErr Indicates an error when lenis less than or equal to 0.
|
|
//
|
|
*/
|
|
IPPAPI(IppStatus, ippsSumRowSqr_64f, (Ipp64f *pSrcDst,
|
|
int len, Ipp64f *pSum, const Ipp64f val))
|
|
|
|
/*///////////////////////////////////////////////////////////////////////////////
|
|
// Name: ippsSVD__*, ippsSVDSort__*
|
|
// Purpose: Performs Single Value Decomposition on a matrix.
|
|
//
|
|
// Parameters:
|
|
// pSrcA Pointer to the input vector A [height*step].
|
|
// pDstU Ppointer to the output vector U [height*step].
|
|
// pSrcDstA Pointer to the input matrix A and output
|
|
// matrix U [height*step].
|
|
// pDstV Pointer to the output vector V [width*step].
|
|
// mSrcA Pointer to the input matrix A [height][width].
|
|
// mDstU Pointer to the output matrix U [height][width].
|
|
// mSrcDstA Pointer to the input matrix A and output
|
|
// matrix U [height][width].
|
|
// pDstW Pointer to the output vector W [width].
|
|
// mDstV Pointer to the output matrix V [width][width].
|
|
// height Number of rows in the input matrix.
|
|
// width Number of columns in the input matrix.
|
|
// step Row step in pSrcA, pSrcDstA, and pDstV.
|
|
// nIter Number of iteration for diagonalization.
|
|
//
|
|
// Returns:
|
|
// ippStsNoErr Indicates no error.
|
|
// ippStsNullPtrErr Indicates an error when the pSrcA, pSrcDstA, pDstV, mSrcA,
|
|
// mDstU, mSrcDstA, pDstW or mDstV pointer is null.
|
|
// ippStsSizeErr Indicates an error when heigh, width, step or nIter is less
|
|
// than or equal to 0 or width is greater than step;
|
|
// ippStsSVDCnvg Indicates an error when SVD algorithm was not converged for
|
|
// nIter iterations.
|
|
//
|
|
*/
|
|
|
|
IPPAPI(IppStatus, ippsSVD_64f_D2,(const Ipp64f* pSrcA, Ipp64f* pDstU, int height,
|
|
Ipp64f* pDstW, Ipp64f* pDstV, int width, int step, int nIter))
|
|
|
|
IPPAPI(IppStatus, ippsSVD_64f_D2_I,(Ipp64f* pSrcDstA, int height, Ipp64f* pDstW,
|
|
Ipp64f* pDstV, int width, int step, int nIter))
|
|
|
|
IPPAPI(IppStatus, ippsSVD_64f_D2L,(const Ipp64f** mSrcA, Ipp64f** mDstU, int height,
|
|
Ipp64f* pDstW, Ipp64f** mDstV, int width, int nIter))
|
|
|
|
IPPAPI(IppStatus, ippsSVD_64f_D2L_I,(Ipp64f** mSrcDstA, int height, Ipp64f* pDstW,
|
|
Ipp64f** mDstV, int width, int nIter))
|
|
|
|
IPPAPI(IppStatus, ippsSVDSort_64f_D2,(const Ipp64f* pSrcA, Ipp64f* pDstU, int height,
|
|
Ipp64f* pDstW, Ipp64f* pDstV, int width, int step, int nIter))
|
|
|
|
IPPAPI(IppStatus, ippsSVDSort_64f_D2_I,(Ipp64f* pSrcDstA, int height, Ipp64f* pDstW,
|
|
Ipp64f* pDstV, int width, int step, int nIter))
|
|
|
|
IPPAPI(IppStatus, ippsSVDSort_64f_D2L,(const Ipp64f** mSrcA, Ipp64f** mDstU, int height,
|
|
Ipp64f* pDstW, Ipp64f** mDstV, int width, int nIter))
|
|
|
|
IPPAPI(IppStatus, ippsSVDSort_64f_D2L_I,(Ipp64f** mSrcDstA, int height, Ipp64f* pDstW,
|
|
Ipp64f** mDstV, int width, int nIter))
|
|
|
|
|
|
/*///////////////////////////////////////////////////////////////////////////////
|
|
// Name: ippsWeightedSum_*
|
|
// Purpose: Calculates the weighted sums of two input vector elements.
|
|
// Parameters:
|
|
// pSrc1 Pointer to the first input vector [len].
|
|
// pSrc2 Pointer to the second input vector [len].
|
|
// pDst Pointer to the output vector [len]
|
|
// len The length of the input an output vectors.
|
|
// weight1 The first weight value.
|
|
// weight2 The second weight value.
|
|
//
|
|
// Returns:
|
|
// ippStsNoErr Indicates no error.
|
|
// ippStsNullPtrErr Indicates an error when the pSrc1, pSrc2 or pDst
|
|
// pointer is null.
|
|
// ippStsSizeErr Indicates an error when len is less than or equal to 0
|
|
// ippStsDivByZero Indicates a warning for zero-valued divisor vector
|
|
// element. Operation execution is not aborted. The value of
|
|
// the destination vector element in the floating-point operations:
|
|
// NaN For zero-valued dividend vector element.
|
|
// +Inf For positive dividend vector element.
|
|
// -Inf For negative dividend vector element.
|
|
//
|
|
*/
|
|
IPPAPI(IppStatus, ippsWeightedSum_16s, (const Ipp16s* pSrc1,
|
|
const Ipp16s* pSrc2, Ipp16s* pDst, int len, Ipp32f weight1,
|
|
Ipp32f weight2))
|
|
|
|
IPPAPI(IppStatus, ippsWeightedSum_32f, (const Ipp32f* pSrc1,
|
|
const Ipp32f* pSrc2, Ipp32f* pDst, int len, Ipp32f weight1,
|
|
Ipp32f weight2))
|
|
|
|
IPPAPI(IppStatus, ippsWeightedSum_64f, (const Ipp64f* pSrc1,
|
|
const Ipp64f* pSrc2, Ipp64f* pDst, int len, Ipp64f weight1,
|
|
Ipp64f weight2))
|
|
|
|
IPPAPI(IppStatus, ippsWeightedSumHalf_32f, (const Ipp32f* pSrc1,
|
|
const Ipp32f* pSrc2, Ipp32f* pDst, int len, Ipp32f weight1,
|
|
Ipp32f weight2))
|
|
|
|
IPPAPI(IppStatus, ippsWeightedSumHalf_64f, (const Ipp64f* pSrc1,
|
|
const Ipp64f* pSrc2, Ipp64f* pDst, int len, Ipp64f weight1,
|
|
Ipp64f weight2))
|
|
|
|
|
|
IPPAPI(IppStatus, ippsWeightedSumHalf_16s, (const Ipp16s* pSrc1,
|
|
const Ipp16s* pSrc2, Ipp16s* pDst, int len, Ipp32f weight1,
|
|
Ipp32f weight2))
|
|
|
|
|
|
/* /////////////////////////////////////////////////////////////////////////////
|
|
// Vector Quantization
|
|
///////////////////////////////////////////////////////////////////////////// */
|
|
/* /////////////////////////////////////////////////////////////////////////////
|
|
// Name: ippsFormVector_*
|
|
// Purpose: Composes a vector from four element chunks.
|
|
// Parameters:
|
|
// pInd Pointer to the input vector of codebook indexes [nStream].
|
|
// mSrc Pointer to the vector of pointers to source lookup
|
|
// tables [nStream].
|
|
// pHeights Pointer to the vector of codebook lengths [nStream].
|
|
// pWidths Pointer to the vector of codebook entry lengths [nStream].
|
|
// pSteps Pointer to the vector of codebook row pSteps [nStream].
|
|
// nStream The number of codebooks.
|
|
// pDst Pointer to the output vector [len].
|
|
// len The length of the output vector.
|
|
// Return:
|
|
// ippStsNoErr Indicates no error.
|
|
// ippStsNullPtrErr Indicates an error when the the pInd, mSrc, pHeights,
|
|
// pWidths, pSteps, pDst or mSrc[k].
|
|
// ippStsSizeErr Indicates an error when len , nStream, pHeights[k],
|
|
// pWidths[k] or pSteps[k] is less than or equal to 0 .
|
|
*/
|
|
IPPAPI(IppStatus, ippsFormVector_4i_8u16s, (const Ipp8u* pInd,
|
|
const Ipp16s** mSrc, const Ipp32s* pHeights, Ipp16s* pDst, int len))
|
|
|
|
IPPAPI(IppStatus, ippsFormVector_4i_16s16s, (const Ipp16s* pInd,
|
|
const Ipp16s** mSrc, const Ipp32s* pHeights, Ipp16s* pDst, int len))
|
|
|
|
IPPAPI(IppStatus, ippsFormVector_4i_8u32f, (const Ipp8u* pInd,
|
|
const Ipp32f** mSrc, const Ipp32s* pHeights, Ipp32f* pDst, int len))
|
|
|
|
IPPAPI(IppStatus, ippsFormVector_4i_16s32f, (const Ipp16s* pInd,
|
|
const Ipp32f** mSrc, const Ipp32s* pHeights, Ipp32f* pDst, int len))
|
|
|
|
|
|
IPPAPI(IppStatus, ippsFormVector_2i_8u16s, (const Ipp8u* pInd,
|
|
const Ipp16s** mSrc, const Ipp32s* pHeights, Ipp16s* pDst, int len))
|
|
|
|
IPPAPI(IppStatus, ippsFormVector_2i_16s16s, (const Ipp16s* pInd,
|
|
const Ipp16s** mSrc, const Ipp32s* pHeights, Ipp16s* pDst, int len))
|
|
|
|
IPPAPI(IppStatus, ippsFormVector_2i_8u32f, (const Ipp8u* pInd,
|
|
const Ipp32f** mSrc, const Ipp32s* pHeights, Ipp32f* pDst, int len))
|
|
|
|
IPPAPI(IppStatus, ippsFormVector_2i_16s32f, (const Ipp16s* pInd,
|
|
const Ipp32f** mSrc, const Ipp32s* pHeights, Ipp32f* pDst, int len))
|
|
|
|
|
|
IPPAPI(IppStatus, ippsFormVector_8u16s, (const Ipp8u* pInd,
|
|
const Ipp16s** mSrc, const Ipp32s* pHeights, const Ipp32s* pWidths,
|
|
const Ipp32s* pSteps, int nStream, Ipp16s* pDst))
|
|
|
|
IPPAPI(IppStatus, ippsFormVector_16s16s, (const Ipp16s* pInd,
|
|
const Ipp16s** mSrc, const Ipp32s* pHeights, const Ipp32s* pWidths,
|
|
const Ipp32s* pSteps, int nStream, Ipp16s* pDst))
|
|
|
|
IPPAPI(IppStatus, ippsFormVector_8u32f, (const Ipp8u* pInd,
|
|
const Ipp32f** mSrc, const Ipp32s* pHeights, const Ipp32s* pWidths,
|
|
const Ipp32s* pSteps, int nStream, Ipp32f * pDst))
|
|
|
|
IPPAPI(IppStatus, ippsFormVector_16s32f, (const Ipp16s* pInd,
|
|
const Ipp32f** mSrc, const Ipp32s* pHeights, const Ipp32s* pWidths,
|
|
const Ipp32s* pSteps, int nStream, Ipp32f * pDst))
|
|
|
|
/* /////////////////////////////////////////////////////////////////////////////
|
|
// Name: ippsCdbkInitAlloc_L2_*
|
|
// Purpose: Initializes the codebook structure.
|
|
//
|
|
// Parameters:
|
|
// pCdbk Pointer to the codebook structure to be created.
|
|
// pSrc Pointer to the source vector [height*step].
|
|
// width Length of input vectors.
|
|
// step Row step in pSrc.
|
|
// height Number of rows in pSrc.
|
|
// cdbkSize Required number of codevectors.
|
|
// hint One of the following values:
|
|
// IPP_CDBK_FULL The source data are treated as a codebook,
|
|
// height should be greater or equal to
|
|
// nCluster. The nearest codebook entry is
|
|
// found by a full search.
|
|
// IPP_CDBK_KMEANS_LONG LBG algorithm with splitting of the
|
|
// most extensional cluster is used for
|
|
// the codebook building. The nearest
|
|
// codebook entry is located through
|
|
// a logarithmical search.
|
|
// IPP_CDBK_KMEANS_NUM LBG algorithm with splitting of
|
|
// the most numerous clusters is used for
|
|
// the codebook building. The nearest
|
|
// codebook entry is located through
|
|
// a logarithmical search.
|
|
//
|
|
// Return:
|
|
// ippStsNoErr Indicates no error.
|
|
// ippStsNullPtrErr Indicates an error when the pSrc pointer is null.
|
|
// ippStsSizeErr Indicates an error when width, step, or cdbkSize
|
|
// is less than or equal to 0;
|
|
// or cdbkSizeis greater than height;
|
|
// or width is greater than step;
|
|
// or cdbkSize is greater than 16383;
|
|
// or hintis equal to IPP_CDBK_FULL and cdbkSizeis not equal
|
|
// to height.
|
|
// ippStsCdbkFlagErr
|
|
// Indicates an error when the hint value is incorrect.
|
|
// ippStsMemAllocErr Indicates an error when no memory allocated.
|
|
//
|
|
*/
|
|
|
|
IPPAPI(IppStatus, ippsCdbkInitAlloc_L2_16s,(IppsCdbkState_16s** pCdbk,
|
|
const Ipp16s* pSrc, int width, int step, int height, int nCluster,
|
|
Ipp_Cdbk_Hint hint))
|
|
|
|
IPPAPI(IppStatus, ippsCdbkInitAlloc_L2_32f,(IppsCdbkState_32f** pCdbk,
|
|
const Ipp32f* pSrc, int width, int step, int height, int nCluster,
|
|
Ipp_Cdbk_Hint hint))
|
|
|
|
/* /////////////////////////////////////////////////////////////////////////////
|
|
// Name: ippsCdbkInitAlloc_WgtL2_*
|
|
// Purpose: Initializes the structure that contains the codebook
|
|
// and additional information to be used for fast search.
|
|
//
|
|
// Parameters:
|
|
// pCdbk Pointer to the codebook structure to be created.
|
|
// pSrc Pointer to the source vector [height*step].
|
|
// pWgt Pointer to the weights vector [width].
|
|
// width Length of input vectors.
|
|
// step Row step in pSrc.
|
|
// height Number of rows in pSrc.
|
|
// cdbkSize Required number of codevectors.
|
|
// hint One of the following values:
|
|
// IPP_CDBK_FULL The source data are treated as a codebook, height should
|
|
// be greater or equal to nCluster. The nearest codebook
|
|
// entry is found by a full search.
|
|
//
|
|
// IPP_CDBK_LBG_LONG
|
|
// LBG algorithm with splitting of the most extensious
|
|
// cluster is used for the codebook building. The nearest
|
|
// codebook entry is found by a logarithmical search.
|
|
//
|
|
// IPP_CDBK_LBG_NUM LBG algorithm with splitting of the most numerous
|
|
// clusters is used for the codebook building. The nearest
|
|
// codebook entry is found by a logarithmical search
|
|
// Return:
|
|
// ippStsNoErr Indicates no error.
|
|
// ippStsNullPtrErr Indicates an error when the pSrc pointer is null.
|
|
// ippStsSizeErr Indicates an error when width, step, height or cdbkSize
|
|
// is less than or equal to 0 or width is greater than step
|
|
// or cdbkSize is greater than 16383;
|
|
// ippStsCdbkFlagErr
|
|
// Indicates an error when the hint value is incorrect.
|
|
// ippStsMemAllocErr Indicates an error when no memory allocated.
|
|
// Notes:
|
|
*/
|
|
|
|
IPPAPI(IppStatus, ippsCdbkInitAlloc_WgtL2_32f,(IppsCdbkState_32f** pCdbk, const Ipp32f* pSrc,
|
|
const Ipp32f* pWgt, int width, int step, int height, int cdbkSize, Ipp_Cdbk_Hint hint))
|
|
|
|
IPPAPI(IppStatus, ippsCdbkInitAlloc_WgtL2_16s,(IppsCdbkState_16s** pCdbk, const Ipp16s* pSrc,
|
|
const Ipp16s* pWgt, int width, int step, int height, int cdbkSize, Ipp_Cdbk_Hint hint))
|
|
|
|
/* /////////////////////////////////////////////////////////////////////////////
|
|
// Name: ippsCdbkFree_*
|
|
// Purpose: Destroys the codebook structure a
|
|
//
|
|
// Parameters:
|
|
// pCdbk Pointer to the codebook structure.
|
|
// Return:
|
|
// ippStsNoErr Indicates no error.
|
|
// ippStsNullPtrErr Indicates an error when the pCdbk pointer is null.
|
|
//
|
|
*/
|
|
|
|
IPPAPI(IppStatus, ippsCdbkFree_16s,(IppsCdbkState_16s* pCdbk))
|
|
|
|
IPPAPI(IppStatus, ippsCdbkFree_32f,(IppsCdbkState_32f* pCdbk))
|
|
|
|
/* /////////////////////////////////////////////////////////////////////////////
|
|
// Name: ippsGetCdbkSize_*
|
|
// Purpose: Retrieves the number of codevectors in the codebook.
|
|
//
|
|
// Parameters:
|
|
// pCdbk Pointer to the codebook structure.
|
|
// pNum Pointer to the result number of codevectors.
|
|
//
|
|
// Return:
|
|
// ippStsNoErr Indicates no error.
|
|
// ippStsNullPtrErr Indicates an error when the pCdbk or pNum pointer is null.
|
|
//
|
|
*/
|
|
|
|
IPPAPI(IppStatus, ippsGetCdbkSize_16s,(const IppsCdbkState_16s* pCdbk, int* pNum))
|
|
|
|
IPPAPI(IppStatus, ippsGetCdbkSize_32f,(const IppsCdbkState_32f* pCdbk, int* pNum))
|
|
|
|
/* /////////////////////////////////////////////////////////////////////////////
|
|
// Name: ippsGetCodebook_*
|
|
// Purpose: Retrieves the number of codevectors in the codebook pCdbk.
|
|
//
|
|
// Parameters:
|
|
// pCdbk Pointer to the codebook structure.
|
|
// pDst Pointer to the destination vector for codevectors
|
|
// [pNum[0]* step].
|
|
// step Row step in the destination vector pDst.
|
|
// Return:
|
|
// ippStsNoErr Indicates no error.
|
|
// ippStsNullPtrErr Indicates an error when the pDst or pNum pointer is null.
|
|
//
|
|
*/
|
|
|
|
IPPAPI(IppStatus, ippsGetCodebook_16s,(const IppsCdbkState_16s* pCdbk,
|
|
Ipp16s* pDst, int step))
|
|
|
|
IPPAPI(IppStatus, ippsGetCodebook_32f,(const IppsCdbkState_32f* pCdbk,
|
|
Ipp32f* pDst, int step))
|
|
|
|
/* /////////////////////////////////////////////////////////////////////////////
|
|
// Name: ippsVQ_*
|
|
// Purpose: Quantizes the input vectors given a codebook.
|
|
//
|
|
// Parameters:
|
|
// pCdbk Pointer to the codebook structure.
|
|
// pSrc Pointer to the source vector [height*step].
|
|
// step Row step in pSrc.
|
|
// height Number of rows in pSrc.
|
|
// pIndx Pointer to the destination vector of closiest codevector
|
|
// numbers [height].
|
|
// pDist Pointer to the destination vector of distance to for
|
|
// closiest codevector [height].
|
|
// scaleFactor
|
|
//
|
|
// Return:
|
|
// ippStsNoErr Indicates no error.
|
|
// ippStsNullPtrErr Indicates an error when the pCdbk, pSrc, pIndx or pDist
|
|
// pointer is null.
|
|
// ippStsSizeErr Indicates an error when step is less than or equal to 0 or
|
|
// is step is less than width.
|
|
// ippStsSizeErr Indicates an error when width, step, height is less than
|
|
// or equal to 0 or width is greater than step;
|
|
//
|
|
*/
|
|
|
|
IPPAPI(IppStatus, ippsVQ_16s,(const Ipp16s* pSrc, int step, Ipp32s* pIndx,
|
|
int height, const IppsCdbkState_16s* pCdbk))
|
|
|
|
IPPAPI(IppStatus, ippsVQ_32f,(const Ipp32f* pSrc, int step, Ipp32s* pIndx,
|
|
int height, const IppsCdbkState_32f* pCdbk))
|
|
|
|
IPPAPI(IppStatus, ippsVQDist_16s32s_Sfs,(const Ipp16s* pSrc, int step,
|
|
Ipp32s* pIndx, Ipp32s* pDist, int height, const IppsCdbkState_16s* pCdbk,
|
|
int scaleFactor))
|
|
|
|
IPPAPI(IppStatus, ippsVQDist_32f,(const Ipp32f* pSrc, int step, Ipp32s* pIndx,
|
|
Ipp32f* pDist, int height, const IppsCdbkState_32f* pCdbk))
|
|
|
|
|
|
/* /////////////////////////////////////////////////////////////////////////////
|
|
// Name: ippsSplitVQ_*
|
|
// Purpose: Quantizes a multiple-stream vector given the codebooks.
|
|
//
|
|
// Parameters:
|
|
// pCdbks Pointer to the vector of pointers to codebook
|
|
// structure [nStream].
|
|
// pSrc Pointer to the source vector [height*srcStep].
|
|
// pDst Pointer to the destination vector [height*dstStep].
|
|
// srcStep Row step in pSrc.
|
|
// dstStep Row step in pDst.
|
|
// dstBitStep Row step in pDst in bits
|
|
// height Number of rows in pSrc.
|
|
// nStream Number of chunks in input vectors.
|
|
//
|
|
// Return:
|
|
// ippStsNoErr Indicates no error.
|
|
// ippStsNullPtrErr Indicates an error when the pCdbk, pCdbk[k], pSrc or pDst
|
|
// pointer is null.
|
|
// ippStsSizeErr Indicates an error when srcStep, dstStep, height or
|
|
// nStream is less than or equal to 0 or chunk length sum
|
|
// is greater than srcStep or nStream is greater than
|
|
// dstStep for functions with 16s or 8u output or number of
|
|
// bits to represent output indexes sequence is greater than
|
|
// dstStep for functions with 1u output or codebook size is
|
|
// greater than 256 for functions with 8u output.
|
|
//
|
|
*/
|
|
|
|
IPPAPI(IppStatus, ippsSplitVQ_16s16s,(const Ipp16s* pSrc, int srcStep, Ipp16s* pDst,
|
|
int dstStep, int height,const IppsCdbkState_16s** pCdbks, int nStream))
|
|
|
|
IPPAPI(IppStatus, ippsSplitVQ_16s8u,(const Ipp16s* pSrc, int srcStep, Ipp8u* pDst,
|
|
int dstStep, int height,const IppsCdbkState_16s** pCdbks, int nStream))
|
|
|
|
IPPAPI(IppStatus, ippsSplitVQ_16s1u,(const Ipp16s* pSrc, int srcStep, Ipp8u* pDst,
|
|
int dstBitStep, int height,const IppsCdbkState_16s** pCdbks, int nStream))
|
|
|
|
IPPAPI(IppStatus, ippsSplitVQ_32f16s,(const Ipp32f* pSrc, int srcStep, Ipp16s* pDst,
|
|
int dstStep, int height,const IppsCdbkState_32f** pCdbks, int nStream))
|
|
|
|
IPPAPI(IppStatus, ippsSplitVQ_32f8u,(const Ipp32f* pSrc, int srcStep, Ipp8u* pDst,
|
|
int dstStep, int height,const IppsCdbkState_32f** pCdbks, int nStream))
|
|
|
|
IPPAPI(IppStatus, ippsSplitVQ_32f1u,(const Ipp32f* pSrc, int srcStep, Ipp8u* pDst,
|
|
int dstBitStep, int height,const IppsCdbkState_32f** pCdbks, int nStream))
|
|
|
|
/* /////////////////////////////////////////////////////////////////////////////
|
|
// Name: ippsFormVectorVQ_*
|
|
// Purpose: Constructs multiple-stream vectors from codebooks,
|
|
// given indexes.
|
|
//
|
|
// Parameters:
|
|
// pCdbks Pointer to the vector of pointers to codebook
|
|
// structure [nStream].
|
|
// pSrc Pointer to the source vector [height*srcStep].
|
|
// pDst Pointer to the destination vector [height*dstStep].
|
|
// srcStep Row step in pSrc.
|
|
// dstStep Row step in pDst.
|
|
// srcBitStep Row step in pSrc in bits
|
|
// height Number of rows in pSrc.
|
|
// nStream Number of chunks in input vectors.
|
|
//
|
|
// Return:
|
|
// ippStsNoErr Indicates no error.
|
|
// ippStsNullPtrErr Indicates an error when the pCdbk, pCdbk[k], pSrc or pDst
|
|
// pointer is null.
|
|
// ippStsSizeErr Indicates an error when srcStep, dstStep, height or
|
|
// nStream is less than or equal to 0 or codevector length
|
|
// sum is greater than dstStep or nStream is greater than
|
|
// srcStep for functions with 16s or 8u output or number of bits
|
|
// to represent output indexes sequence is greater than srcStep
|
|
// for functions with 1u output.
|
|
// Notes:
|
|
*/
|
|
IPPAPI(IppStatus, ippsFormVectorVQ_16s16s,(const Ipp16s* pSrc, int srcStep, Ipp16s* pDst,
|
|
int dstStep, int height, const IppsCdbkState_16s** pCdbks, int nStream))
|
|
|
|
IPPAPI(IppStatus, ippsFormVectorVQ_8u16s,(const Ipp8u* pSrc, int srcStep, Ipp16s* pDst,
|
|
int dstStep, int height, const IppsCdbkState_16s** pCdbks, int nStream))
|
|
|
|
IPPAPI(IppStatus, ippsFormVectorVQ_1u16s,(const Ipp8u* pSrc, int srcBitStep, Ipp16s* pDst,
|
|
int dstStep, int height, const IppsCdbkState_16s** pCdbks, int nStream))
|
|
|
|
IPPAPI(IppStatus, ippsFormVectorVQ_16s32f,(const Ipp16s* pSrc, int srcStep, Ipp32f* pDst,
|
|
int dstStep, int height, const IppsCdbkState_32f** pCdbks, int nStream))
|
|
|
|
IPPAPI(IppStatus, ippsFormVectorVQ_8u32f,(const Ipp8u* pSrc, int srcStep, Ipp32f* pDst,
|
|
int dstStep, int height, const IppsCdbkState_32f** pCdbks, int nStream))
|
|
|
|
IPPAPI(IppStatus, ippsFormVectorVQ_1u32f,(const Ipp8u* pSrc, int srcBitStep, Ipp32f* pDst,
|
|
int dstStep, int height, const IppsCdbkState_32f** pCdbks, int nStream))
|
|
|
|
/* /////////////////////////////////////////////////////////////////////////////
|
|
// Name: IppStatus ippsCdbkInit_L2_*
|
|
//
|
|
// Description: Initializes the structure that contains the codebook
|
|
//
|
|
//
|
|
// Input Arguments: pCdbk Pointer to the codebook structure to be initialized.
|
|
// pSrc Pointer to the source vector [height*step].
|
|
// width Length of input vectors.
|
|
// step Row step in pSrc.
|
|
// height Number of rows in pSrc.
|
|
// nCluster Required number of codevectors.
|
|
// hint One of the following values:
|
|
// IPP_CDBK_FULL The source data are treated as a
|
|
// codebook, height should be greater or equal to
|
|
// nCluster. The nearest codebook entry is found by
|
|
// a full search.
|
|
// IPP_CDBK_LBG_LONG Not supported
|
|
// IPP_CDBK_LBG_NUM Not supported
|
|
//
|
|
//
|
|
// Returns: ippStsNoErr - No Error.
|
|
// ippStsSizeErr - Bad Arguments.
|
|
// ippStsCdbkFlagErr - Hint not supported
|
|
//
|
|
// Notes: The primitive does not support tree-based codebook
|
|
*/
|
|
IPPAPI(IppStatus, ippsCdbkInit_L2_16s,(IppsCdbkState_16s* pCdbk,
|
|
const Ipp16s* pSrc,
|
|
int width,
|
|
int step,
|
|
int height,
|
|
int nCluster,
|
|
Ipp_Cdbk_Hint hint))
|
|
|
|
IPPAPI(IppStatus, ippsCdbkInit_L2_32f,(IppsCdbkState_32f* pCdbk,
|
|
const Ipp32f* pSrc,
|
|
int width,
|
|
int step,
|
|
int height,
|
|
int nCluster,
|
|
Ipp_Cdbk_Hint hint))
|
|
|
|
/* /////////////////////////////////////////////////////////////////////////////
|
|
// Name: IppStatus ippsCdbkGetSize_*
|
|
//
|
|
// Description: Computes the size in bytes required for the codebook table
|
|
//
|
|
//
|
|
// Input Arguments: width Length of input vectors.
|
|
// step Row step in pSrc.
|
|
// nCluster Required number of codevectors.
|
|
// hint One of the following values:
|
|
// IPP_CDBK_FULL The source data are treated as a
|
|
// codebook, height should be greater or equal to
|
|
// nCluster. The nearest codebook entry is found by
|
|
// a full search.
|
|
// IPP_CDBK_LBG_LONG Not supported
|
|
// IPP_CDBK_LBG_NUM Not supported
|
|
//
|
|
//
|
|
// Returns: ippStsNoErr - No Error.
|
|
// ippStsNullPtrErr - Indicates an error when pSize pointer is null.
|
|
// ippStsSizeErr - Indicates an error when width, step, height, or cdbkSize is less than
|
|
// or equal to 0; or width is greater than step; or cdbkSize is greater than 16383; or height is not equal to cdbkSize.
|
|
// ippStsCdbkFlagErr - Indicates an error when the hint value is incorrect or not supported.
|
|
//
|
|
//
|
|
// Notes:
|
|
*/
|
|
IPPAPI(IppStatus, ippsCdbkGetSize_16s,(int width,
|
|
int step,
|
|
int height,
|
|
int nCluster,
|
|
Ipp_Cdbk_Hint hint,
|
|
int* pSize))
|
|
|
|
IPPAPI(IppStatus, ippsCdbkGetSize_32f,(int width,
|
|
int step,
|
|
int height,
|
|
int nCluster,
|
|
Ipp_Cdbk_Hint hint,
|
|
int* pSize))
|
|
|
|
/* /////////////////////////////////////////////////////////////////////////////
|
|
// TTS Arithmetic
|
|
///////////////////////////////////////////////////////////////////////////// */
|
|
|
|
/*/////////////////////////////////////////////////////////////////////////////
|
|
// Name: ippsReflectionToAbsTilt_* / ippsReflectionToTilt_*
|
|
// Purpose: Calculates tilt for rise/fall/connection parameters.
|
|
//
|
|
// Parameters:
|
|
// pSrc1 Pointer to the first input vector [len].
|
|
// pSrc2 Pointer to the second input vector [len].
|
|
// pDst Pointer to the destination vector [len].
|
|
// len Length of the input and output vectors.
|
|
//
|
|
// Returns:
|
|
// ippStsNoErr Indicates no error.
|
|
// ippStsNullPtrErr Indicates an error when the pSrc1, pSrc2 or pDst
|
|
// pointer is null.
|
|
// ippStsSizeErr Indicates an error when len is less than or equal to 0.
|
|
// ippStsDivByZero Indicates a warning for zero-valued divisor vector
|
|
// element. Operation execution is not aborted. The value of
|
|
// the destination vector element in the floating-point
|
|
// operations:
|
|
// NaN For zero-valued dividend vector element.
|
|
// +Inf For positive dividend vector element.
|
|
// -Inf For negative dividend vector
|
|
// The value of the destination vector element in the
|
|
// integer operations:
|
|
// IPP_MAX_16S For positive dividend vector element.
|
|
// IPP_MIN_16S For negative dividend vector
|
|
// Notes:
|
|
// The function ippsReflectionToAbsTilt converts rise and fall
|
|
// coefficients to absolute tilt.
|
|
// The function ippsReflectionToTilt converts rise and fall
|
|
// coefficients to tilt.
|
|
*/
|
|
IPPAPI(IppStatus, ippsReflectionToAbsTilt_16s_Sfs, (const Ipp16s* pSrc1,
|
|
const Ipp16s* pSrc2, Ipp16s* pDst, int len, int scaleFactor))
|
|
|
|
IPPAPI(IppStatus, ippsReflectionToAbsTilt_32f, (const Ipp32f* pSrc1,
|
|
const Ipp32f* pSrc2, Ipp32f* pDst, int len))
|
|
|
|
IPPAPI(IppStatus, ippsReflectionToTilt_16s_Sfs, (const Ipp16s* pSrc1,
|
|
const Ipp16s* pSrc2, Ipp16s* pDst, int len, int scaleFactor))
|
|
|
|
IPPAPI(IppStatus, ippsReflectionToTilt_32f, (const Ipp32f* pSrc1,
|
|
const Ipp32f* pSrc2, Ipp32f* pDst, int len))
|
|
|
|
|
|
/* /////////////////////////////////////////////////////////////////////////////
|
|
// Name: ippsLogGaussSingle_*
|
|
// Purpose: Calculates the observation probability for a
|
|
// single Gaussian with an observation vector.
|
|
//
|
|
// Parameters:
|
|
// pSrc Pointer to the input vector [len].
|
|
// pMean Pointer to the mean vector [len].
|
|
// pVar Pointer to the variance vector [len].
|
|
// pBlockVar Pointer to the block diagonal variance matrix.
|
|
// len Number of elements in the input, mean, and variance
|
|
// vectors.
|
|
// pResult Pointer to the result value.
|
|
// val Gaussian constant.
|
|
// scaleFactor
|
|
//
|
|
// Return:
|
|
// ippStsNoErr Indicates no error.
|
|
// ippStsNullPtrErr Indicates an error when the pSrc, pMean, pVar, or
|
|
// pResult or pBlockVar pointer is null.
|
|
// ippStsSizeErr Indicates an error when len is less than or equal to 0.
|
|
//
|
|
*/
|
|
/*
|
|
//Case 1: Operation for the inverse diagonal covariance matrix
|
|
*/
|
|
IPPAPI(IppStatus, ippsLogGaussSingle_Low_16s32s_Sfs,(const Ipp16s* pSrc,
|
|
const Ipp16s* pMean, const Ipp16s* pVar, int len, Ipp32s* pResult,
|
|
Ipp32s val, int scaleFactor))
|
|
|
|
IPPAPI(IppStatus, ippsLogGaussSingle_LowScaled_16s32f,(const Ipp16s* pSrc, const Ipp16s* pMean,
|
|
const Ipp16s* pVar, int len, Ipp32f* pResult, Ipp32f val, int scaleFactor))
|
|
|
|
/*
|
|
//Case 3: Operation for the identity covariance matrix
|
|
*/
|
|
IPPAPI(IppStatus, ippsLogGaussSingle_IdVarLow_16s32s_Sfs,(const Ipp16s* pSrc,
|
|
const Ipp16s* pMean, int len, Ipp32s* pResult, Ipp32s val, int scaleFactor))
|
|
|
|
IPPAPI(IppStatus, ippsLogGaussSingle_IdVarLowScaled_16s32f,(const Ipp16s* pSrc,
|
|
const Ipp16s* pMean, int len, Ipp32f* pResult, Ipp32f val, int scaleFactor))
|
|
|
|
|
|
/* /////////////////////////////////////////////////////////////////////////////
|
|
// Name: ippsLogGauss_*
|
|
// Purpose: Calculates the observation probability for a single
|
|
// Gaussian with multiple observation vectors.
|
|
// Parameters:
|
|
// pSrc Pointer to the input vector [height*step].
|
|
// mSrc Pointer to the input matrix [height][ width].
|
|
// step The row step in pSrc.
|
|
// pMean Pointer to the mean vector [width].
|
|
// pVar Pointer to the variance vector [width].
|
|
// width Length of the mean and variance vectors.
|
|
// pDst Pointer to the result value [height].
|
|
// pSrcDst Pointer to the input and output vector [height].
|
|
// height The number of rows in the input matrix and the length of
|
|
// the result vector pDst.
|
|
// val Gaussian constant.
|
|
// scaleFactor
|
|
//
|
|
// Return:
|
|
// ippStsNoErr Indicates no error.
|
|
// ippStsNullPtrErr Indicates an error when the pSrc, pMean, pVar,
|
|
// pDst,or mSrc pointer is null.
|
|
// ippStsSizeErr Indicates an error when height or width is less than or
|
|
// equal to 0.
|
|
// ippStsStrideErr Indicates an error when width > step.
|
|
//
|
|
*/
|
|
/*
|
|
//Case 1: Operation for the inverse diagonal covariance matrix
|
|
*/
|
|
IPPAPI(IppStatus, ippsLogGauss_Low_16s32s_D2Sfs, (const Ipp16s* pSrc, int step,
|
|
const Ipp16s* pMean, const Ipp16s* pVar, int width, Ipp32s* pDst,
|
|
int height, Ipp32s val, int scaleFactor))
|
|
|
|
IPPAPI(IppStatus, ippsLogGauss_Low_16s32s_D2LSfs, (const Ipp16s** mSrc,
|
|
const Ipp16s* pMean, const Ipp16s* pVar, int width, Ipp32s* pDst,
|
|
int height, Ipp32s val, int scaleFactor))
|
|
|
|
IPPAPI(IppStatus, ippsLogGauss_LowScaled_16s32f_D2, (const Ipp16s* pSrc, int step,
|
|
const Ipp16s* pMean, const Ipp16s* pVar, int width, Ipp32f* pDst,
|
|
int height, Ipp32f val, int scaleFactor))
|
|
|
|
IPPAPI(IppStatus, ippsLogGauss_LowScaled_16s32f_D2L, (const Ipp16s** mSrc,
|
|
const Ipp16s* pMean, const Ipp16s* pVar, int width, Ipp32f* pDst,
|
|
int height, Ipp32f val, int scaleFactor))
|
|
|
|
/*
|
|
//Case 2: Operation for the identity covariance matrix
|
|
*/
|
|
|
|
IPPAPI(IppStatus, ippsLogGauss_IdVarLow_16s32s_D2Sfs,(const Ipp16s* pSrc,
|
|
int step, const Ipp16s* pMean, int width, Ipp32s* pDst, int height,
|
|
Ipp32s val,int scaleFactor))
|
|
|
|
IPPAPI(IppStatus, ippsLogGauss_IdVarLowScaled_16s32f_D2,(const Ipp16s* pSrc,
|
|
int step, const Ipp16s* pMean, int width, Ipp32f* pDst, int height,
|
|
Ipp32f val,int scaleFactor))
|
|
|
|
IPPAPI(IppStatus, ippsLogGauss_IdVarLow_16s32s_D2LSfs,(const Ipp16s** mSrc,
|
|
const Ipp16s* pMean, int width, Ipp32s* pDst, int height, Ipp32s val,
|
|
int scaleFactor))
|
|
|
|
IPPAPI(IppStatus, ippsLogGauss_IdVarLowScaled_16s32f_D2L,(const Ipp16s** mSrc,
|
|
const Ipp16s* pMean, int width, Ipp32f* pDst, int height, Ipp32f val,
|
|
int scaleFactor))
|
|
|
|
|
|
/* /////////////////////////////////////////////////////////////////////////////
|
|
// Name: ippsLogGaussMultiMix_*
|
|
// Purpose: Calculates the observation probability for
|
|
// multiple Gaussian mixture components.
|
|
//
|
|
// Parameters:
|
|
// pMean Pointer to the variance vector [height*step].
|
|
// mMean Pointer to the mean matrix [height][width].
|
|
// mVar Pointer to the variance matrix [height][width].
|
|
// pSrcDst Pointer to the input additive values and
|
|
// the result vector [height].
|
|
// step The row step in pMean.
|
|
// pSrc Pointer to the input vector [width].
|
|
// height The number of rows in input matrices and the length of
|
|
// the result vector pSrcDst.
|
|
// width The length of the input matrices row and the vector pSrc.
|
|
// scaleFactor
|
|
//
|
|
// Return:
|
|
// ippStsNoErr Indicates no error.
|
|
// ippStsNullPtrErr Indicates an error when the pSrc, pMean, pVar,
|
|
// pSrcDst, mMean, or mVar pointer is null.
|
|
// ippStsSizeErr Indicates an error when heightor width is less than or
|
|
// equal to 0.
|
|
// ippStsStrideErr Indicates an error when width > step.
|
|
//
|
|
*/
|
|
IPPAPI(IppStatus, ippsLogGaussMultiMix_Low_16s32s_D2Sfs, (const Ipp16s* pMean,
|
|
const Ipp16s* pVar, int step, const Ipp16s* pSrc, int width,
|
|
Ipp32s* pSrcDst, int height, int scaleFactor))
|
|
|
|
IPPAPI(IppStatus, ippsLogGaussMultiMix_Low_16s32s_D2LSfs, (const Ipp16s** mMean,
|
|
const Ipp16s** mVar, const Ipp16s* pSrc, int width, Ipp32s* pSrcDst,
|
|
int height, int scaleFactor))
|
|
|
|
IPPAPI(IppStatus, ippsLogGaussMultiMix_LowScaled_16s32f_D2, (const Ipp16s* pMean,
|
|
const Ipp16s* pVar, int step, const Ipp16s* pSrc, int width,
|
|
Ipp32f* pSrcDst, int height, int scaleFactor))
|
|
|
|
IPPAPI(IppStatus, ippsLogGaussMultiMix_LowScaled_16s32f_D2L, (const Ipp16s** mMean,
|
|
const Ipp16s** mVar, const Ipp16s* pSrc, int width, Ipp32f* pSrcDst,
|
|
int height, int scaleFactor))
|
|
|
|
|
|
/* /////////////////////////////////////////////////////////////////////////////
|
|
// Name: ippsLogGaussMax_*_D2
|
|
// Purpose: Computes maximum value of a vector dst and
|
|
// logarithms of the Gaussian probability distribution function.
|
|
// Parameters:
|
|
// pSrc Pointer to the input vector [height*step].
|
|
// step The row step in pSrc.
|
|
// pMean Pointer to the mean vector [width].
|
|
// pVar Pointer to the variance vector [width].
|
|
// width The length of the input matrix row, mean,
|
|
// and variance vectors.
|
|
// pSrcDst Pointer to the input and output vector [height].
|
|
// height The number of rows in the input matrix and the length of
|
|
// the result vector pDst.
|
|
// val The value to add to each distance.
|
|
// scaleFactor
|
|
//
|
|
// Return:
|
|
// ippStsNoErr Indicates no error.
|
|
// ippStsNullPtrErr Indicates an error when the pSrc, pMean, pVar,
|
|
// pSrcDst pointer is null.
|
|
// ippStsSizeErr Indicates an error when height or width is less than or
|
|
// equal to 0.
|
|
// ippStsStrideErr Indicates an error when width > step.
|
|
//
|
|
*/
|
|
/*
|
|
//Case 1: Operation for the inverse diagonal covariance matrix
|
|
*/
|
|
IPPAPI(IppStatus, ippsLogGaussMax_Low_16s32s_D2Sfs, (const Ipp16s* pSrc,
|
|
int step, const Ipp16s* pMean, const Ipp16s* pVar, int width,
|
|
Ipp32s* pSrcDst, int height, Ipp32s val, int scaleFactor))
|
|
|
|
IPPAPI(IppStatus, ippsLogGaussMax_Low_16s32s_D2LSfs, (const Ipp16s** mSrc,
|
|
const Ipp16s* pMean, const Ipp16s* pVar, int width, Ipp32s* pDst,
|
|
int height, Ipp32s val, int scaleFactor))
|
|
|
|
IPPAPI(IppStatus, ippsLogGaussMax_LowScaled_16s32f_D2, (const Ipp16s* pSrc, int step,
|
|
const Ipp16s* pMean, const Ipp16s* pVar, int width,
|
|
Ipp32f* pSrcDst, int height, Ipp32f val, int scaleFacto))
|
|
|
|
IPPAPI(IppStatus, ippsLogGaussMax_LowScaled_16s32f_D2L, (const Ipp16s** mSrc,
|
|
const Ipp16s* pMean, const Ipp16s* pVar, int width, Ipp32f* pDst,
|
|
int height, Ipp32f val, int scaleFacto))
|
|
|
|
/*
|
|
//Case 2: Operation for the identity covariance matrix
|
|
*/
|
|
IPPAPI(IppStatus, ippsLogGaussMax_IdVarLow_16s32s_D2Sfs, (const Ipp16s* pSrc,
|
|
int step, const Ipp16s* pMean, int width, Ipp32s* pSrcDst,
|
|
int height, Ipp32s val, int scaleFactor))
|
|
|
|
IPPAPI(IppStatus, ippsLogGaussMax_IdVarLow_16s32s_D2LSfs, (const Ipp16s** mSrc,
|
|
const Ipp16s* pMean, int width, Ipp32s* pSrcDst, int height,
|
|
Ipp32s val, int scaleFactor))
|
|
|
|
IPPAPI(IppStatus, ippsLogGaussMax_IdVarLowScaled_16s32f_D2, (const Ipp16s* pSrc,
|
|
int step, const Ipp16s* pMean, int width, Ipp32f* pSrcDst,
|
|
int height, Ipp32f val, int scaleFactor))
|
|
|
|
IPPAPI(IppStatus, ippsLogGaussMax_IdVarLowScaled_16s32f_D2L, (const Ipp16s** mSrc,
|
|
const Ipp16s* pMean, int width, Ipp32f* pSrcDst, int height,
|
|
Ipp32f val, int scaleFactor))
|
|
|
|
/* /////////////////////////////////////////////////////////////////////////////
|
|
// Name: ippsLogGaussMaxMultiMix_*_*
|
|
// Purpose: Computes the maximum of the Gaussian probability
|
|
// distribution function.
|
|
// Parameters:
|
|
// pMean Pointer to the mean vector of length [height*step].
|
|
// pVar Pointer to the variance vector of length [height*step].
|
|
// mMean Pointer to the mean matrix of size [height][width].
|
|
// mVar Pointer to the mean matrix of size [height][width].
|
|
// pVal Pointer to the input vector of Maxitive values [height].
|
|
// pSrcDst Pointer to the input and output vector of length [height].
|
|
// step Row step in pMean and pVar.
|
|
// pSrc Pointer to theinput vector of length[width].
|
|
// height Number of rows in input matrices and the length of
|
|
// the result vector pSrcDst.
|
|
// width Length of the input matrices row and the vector pSrc.
|
|
// scaleFactor
|
|
//
|
|
// Return:
|
|
// ippStsNoErr Indicates no error.
|
|
// ippStsNullPtrErr Indicates an error when the pSrc, pMean, pVar,
|
|
// pSrcDst or mMean or mVar or pVal pointer is null.
|
|
// ippStsSizeErr Indicates an error when height or width is less than or
|
|
// equal to 0.
|
|
// ippStsStrideErr Indicates an error when width > step.
|
|
//
|
|
*/
|
|
IPPAPI(IppStatus, ippsLogGaussMaxMultiMix_LowScaled_16s32f_D2, (const Ipp16s* pMean,
|
|
const Ipp16s* pVar, int step, const Ipp16s* pSrc,int width,
|
|
const Ipp32f* pVal, Ipp32f* pSrcDst,int height, int scaleFactor))
|
|
|
|
IPPAPI(IppStatus, ippsLogGaussMaxMultiMix_LowScaled_16s32f_D2L, (const Ipp16s** mMean,
|
|
const Ipp16s** mVar, const Ipp16s* pSrc, int width, const Ipp32f* pVal,
|
|
Ipp32f* pSrcDst,int height, int scaleFactor))
|
|
|
|
IPPAPI(IppStatus, ippsLogGaussMaxMultiMix_Low_16s32s_D2Sfs, (const Ipp16s* pMean,
|
|
const Ipp16s* pVar, int step, const Ipp16s* pSrc, int width,
|
|
const Ipp32s* pVal, Ipp32s* pSrcDst,int height, int scaleFactor))
|
|
|
|
IPPAPI(IppStatus, ippsLogGaussMaxMultiMix_Low_16s32s_D2LSfs, (const Ipp16s** mMean,
|
|
const Ipp16s** mVar, const Ipp16s* pSrc, int width, const Ipp32s* pVal,
|
|
Ipp32s* pSrcDst,int height, int scaleFactor))
|
|
|
|
/* /////////////////////////////////////////////////////////////////////////////
|
|
// Name: ippsLogGaussAdd_32f_D2
|
|
// Purpose: Calculates the likelihood probability for multiple
|
|
// observation vectors.
|
|
//
|
|
// Parameters:
|
|
// pSrc Pointer to the first input vector of length [width*height]
|
|
// step Row step in pSrc.
|
|
// pMean Pointer to the mean vector of length [width]
|
|
// pVar Pointer to the variance vector of length [width]
|
|
// width Length of the mean, and variance vectors.
|
|
// pSrcDst Pointer to input vector and output vector [height]
|
|
// height Length of the input and output vector pSrcDst
|
|
// val Value to add to each distance.
|
|
//
|
|
// Returns:
|
|
// ippStsNoErr Indicates no error
|
|
// ippStsNullPtrErr Indicates an error when the pSrc, pMean,pVar,
|
|
// pSrcDst pointer is null.
|
|
// ippStsSizeErr Indicates an error when width or height
|
|
// is less than or equal to 0.
|
|
// ippStsStrideErr Indicates an error when width > step.
|
|
*/
|
|
/*
|
|
//Case 1: Operation for the inverse diagonal covariance matrix
|
|
*/
|
|
IPPAPI(IppStatus, ippsLogGaussAdd_LowScaled_16s32f_D2,(const Ipp16s* pSrc, int step,
|
|
const Ipp16s* pMean, const Ipp16s* pVar, int width,
|
|
Ipp32f* pSrcDst, int height, Ipp32f val, int scaleFactor))
|
|
|
|
IPPAPI(IppStatus, ippsLogGaussAdd_LowScaled_16s32f_D2L, (const Ipp16s** mSrc,
|
|
const Ipp16s* pMean, const Ipp16s* pVar, int width, Ipp32f* pSrcDst,
|
|
int height, Ipp32f val, int scaleFactor))
|
|
|
|
/*
|
|
//Case 2: Operation for the identity covariance matrix
|
|
*/
|
|
IPPAPI(IppStatus, ippsLogGaussAdd_IdVarLowScaled_16s32f_D2,(const Ipp16s* pSrc,
|
|
int step, const Ipp16s* pMean, int width, Ipp32f* pSrcDst,
|
|
int height, Ipp32f val, int scaleFactor))
|
|
|
|
IPPAPI(IppStatus, ippsLogGaussAdd_IdVarLowScaled_16s32f_D2L,(const Ipp16s** mSrc,
|
|
const Ipp16s* pMean, int width, Ipp32f* pSrcDst, int height, Ipp32f val,
|
|
int scaleFactor))
|
|
|
|
|
|
/* /////////////////////////////////////////////////////////////////////////////
|
|
// Name: ippsLogGaussAddMultiMix_*_*
|
|
// Purpose: Calculates the likelihood probability for multiple
|
|
// Gaussian mixture components.
|
|
//
|
|
// Parameters:
|
|
// pMean Pointer to the variance vector [height*step].
|
|
// mMean Pointer to the mean matrix [height][width].
|
|
// pVal Pointer to the input vector of additive values [height].
|
|
// mVar Pointer to the variance matrix [height][width].
|
|
// pSrcDst Pointer to the input and output vector of length [height].
|
|
// step The row step in pMean.
|
|
// pSrc Pointer to the input vector [width].
|
|
// height The number of rows in input matrices and the length of
|
|
// the result vector pSrcDst.
|
|
// width The length of the input matrices row and the vector pSrc.
|
|
// scaleFactor
|
|
//
|
|
// Return:
|
|
// ippStsNoErr Indicates no error.
|
|
// ippStsNullPtrErr Indicates an error when the pSrc, pMean, pVar,
|
|
// pSrcDst, mMean, or mVar pointer is null.
|
|
// ippStsSizeErr Indicates an error when heightor width is less than or
|
|
// equal to 0.
|
|
// ippStsStrideErr Indicates an error when width > step.
|
|
//
|
|
*/
|
|
IPPAPI(IppStatus, ippsLogGaussAddMultiMix_LowScaled_16s32f_D2, (const Ipp16s* pMean,
|
|
const Ipp16s* pVar, int step, const Ipp16s* pSrc, int width,
|
|
const Ipp32f* pVal, Ipp32f* pSrcDst, int height, int scaleFactor))
|
|
|
|
IPPAPI(IppStatus, ippsLogGaussAddMultiMix_LowScaled_16s32f_D2L, (const Ipp16s** mMean,
|
|
const Ipp16s** mVar, const Ipp16s* pSrc, int width, const Ipp32f* pVal,
|
|
Ipp32f* pSrcDst, int height, int scaleFactor))
|
|
|
|
|
|
/* /////////////////////////////////////////////////////////////////////////////
|
|
// Name: LogGaussMixture_*
|
|
// Purpose: Calculates the likelihood probability for the Gaussian mixture
|
|
//
|
|
// Parameters:
|
|
// pMean Pointer to the variance vector [height*step].
|
|
// mMean Pointer to the mean matrix [height][width].
|
|
// pVar Pointer to the variance vector [height*step].
|
|
// mVar Pointer to the variance matrix [height][width].
|
|
// pVal Pointer to the weight constant vector [height]..
|
|
// pSrc Pointer to the input vector [width].
|
|
// pResult Pointer to the output mixture value.
|
|
// step The row step in pMean and pVar.
|
|
// height Number of Gaussian mixture components.
|
|
// width Length of the mean and variance matrices rows and pSrc vector.
|
|
// scaleFactor
|
|
//
|
|
// Return:
|
|
// ippStsNoErr Indicates no error.
|
|
// ippStsNullPtrErr Indicates an error when the mMean, mVar, pMean, pVar, pVal or
|
|
// pResult pointer is null.
|
|
// ippStsSizeErr Indicates an error when height, step or width is less than or
|
|
// equal to 0.
|
|
// ippStsStrideErr Indicates an error when width > step.
|
|
//
|
|
*/
|
|
/*
|
|
//Case 1: Operation for the inverse diagonal covariance matrix
|
|
*/
|
|
IPPAPI(IppStatus, ippsLogGaussMixture_Scaled_16s32f_D2,(const Ipp16s* pSrc, const Ipp16s* pMean,
|
|
const Ipp16s* pVar, int height, int step, int width, const Ipp32f* pVal,
|
|
Ipp32f* pResult, int scaleFactor))
|
|
|
|
IPPAPI(IppStatus, ippsLogGaussMixture_Scaled_16s32f_D2L,(const Ipp16s* pSrc, const Ipp16s** mMean,
|
|
const Ipp16s** mVar, int height, int width, const Ipp32f* pVal, Ipp32f* pResult,
|
|
int scaleFactor))
|
|
|
|
IPPAPI(IppStatus, ippsLogGaussMixture_LowScaled_16s32f_D2,(const Ipp16s* pSrc,
|
|
const Ipp16s* pMean, const Ipp16s* pVar, int height, int step, int width,
|
|
const Ipp32f* pVal, Ipp32f* pResult, int scaleFactor))
|
|
|
|
IPPAPI(IppStatus, ippsLogGaussMixture_LowScaled_16s32f_D2L,(const Ipp16s* pSrc,
|
|
const Ipp16s** mMean, const Ipp16s** mVar, int height, int width,
|
|
const Ipp32f* pVal, Ipp32f* pResult, int scaleFactor))
|
|
|
|
IPPAPI(IppStatus, ippsLogGaussMixture_32f_D2,(const Ipp32f* pSrc, const Ipp32f* pMean,
|
|
const Ipp32f* pVar, int height, int step, int width, const Ipp32f* pVal,
|
|
Ipp32f* pResult))
|
|
|
|
IPPAPI(IppStatus, ippsLogGaussMixture_32f_D2L,(const Ipp32f* pSrc, const Ipp32f** mMean,
|
|
const Ipp32f** mVar, int height, int width, const Ipp32f* pVal, Ipp32f* pResult))
|
|
|
|
IPPAPI(IppStatus, ippsLogGaussMixture_64f_D2,(const Ipp64f* pSrc, const Ipp64f* pMean,
|
|
const Ipp64f* pVar, int height, int step, int width, const Ipp64f* pVal,
|
|
Ipp64f* pResult))
|
|
|
|
IPPAPI(IppStatus, ippsLogGaussMixture_64f_D2L,(const Ipp64f* pSrc, const Ipp64f** mMean,
|
|
const Ipp64f** mVar, int height, int width, const Ipp64f* pVal, Ipp64f* pResult))
|
|
|
|
/*
|
|
//Case 2: Operation for the identity covariance matrix
|
|
*/
|
|
IPPAPI(IppStatus, ippsLogGaussMixture_IdVarScaled_16s32f_D2,(const Ipp16s* pSrc,
|
|
const Ipp16s* pMean, int height, int step, int width, const Ipp32f* pVal,
|
|
Ipp32f* pResult, int scaleFactor))
|
|
|
|
IPPAPI(IppStatus, ippsLogGaussMixture_IdVarScaled_16s32f_D2L,(const Ipp16s* pSrc,
|
|
const Ipp16s** mMean, int height, int width, const Ipp32f* pVal,
|
|
Ipp32f* pResult, int scaleFactor))
|
|
|
|
IPPAPI(IppStatus, ippsLogGaussMixture_IdVarLowScaled_16s32f_D2,(const Ipp16s* pSrc,
|
|
const Ipp16s* pMean, int height, int step, int width, const Ipp32f* pVal,
|
|
Ipp32f* pResult, int scaleFactor))
|
|
|
|
IPPAPI(IppStatus, ippsLogGaussMixture_IdVarLowScaled_16s32f_D2L,(const Ipp16s* pSrc,
|
|
const Ipp16s** mMean, int height, int width, const Ipp32f* pVal,
|
|
Ipp32f* pResult, int scaleFactor))
|
|
|
|
IPPAPI(IppStatus, ippsLogGaussMixture_IdVar_32f_D2,(const Ipp32f* pSrc,
|
|
const Ipp32f* pMean, int height, int step, int width, const Ipp32f* pVal,
|
|
Ipp32f* pResult))
|
|
|
|
IPPAPI(IppStatus, ippsLogGaussMixture_IdVar_32f_D2L,(const Ipp32f* pSrc,
|
|
const Ipp32f** mMean, int height, int width, const Ipp32f* pVal,
|
|
Ipp32f* pResult))
|
|
|
|
IPPAPI(IppStatus, ippsLogGaussMixture_IdVar_64f_D2,(const Ipp64f* pSrc,
|
|
const Ipp64f* pMean, int height, int step, int width, const Ipp64f* pVal,
|
|
Ipp64f* pResult))
|
|
|
|
IPPAPI(IppStatus, ippsLogGaussMixture_IdVar_64f_D2L,(const Ipp64f* pSrc,
|
|
const Ipp64f** mMean, int height, int width, const Ipp64f* pVal,
|
|
Ipp64f* pResult))
|
|
|
|
/* /////////////////////////////////////////////////////////////////////////////
|
|
// Name: ippsLogSum_*
|
|
// Purpose: Logarithmically sums vector elements.
|
|
// Parameters:
|
|
// pSrc The first input vector [len].
|
|
// pResult Pointer to the result value.
|
|
// len The number of elements in the input and output vectors.
|
|
// hint Recommends to use a specific code for the
|
|
// Logarithmically Sums.
|
|
// Return:
|
|
// ippStsNoErr Indicates no error.
|
|
// ippStsNullPtrErr Indicates an error when the pSrc or pResult pointer is null.
|
|
// ippStsSizeErr Indicates an error when len is less than or equal to 0.
|
|
//
|
|
*/
|
|
IPPAPI(IppStatus,ippsLogSum_64f,(const Ipp64f* pSrc, Ipp64f* pResult, int len,
|
|
IppHintAlgorithm hint))
|
|
|
|
IPPAPI(IppStatus,ippsLogSum_32f,(const Ipp32f* pSrc, Ipp32f* pResult, int len,
|
|
IppHintAlgorithm hint))
|
|
|
|
IPPAPI(IppStatus,ippsLogSum_32s_Sfs,(const Ipp32s* pSrc, Ipp32s* pResult, int len,
|
|
int scaleFactor, IppHintAlgorithm hint))
|
|
|
|
IPPAPI(IppStatus,ippsLogSum_16s_Sfs,(const Ipp16s* pSrc, Ipp16s* pResult, int len,
|
|
int scaleFactor, IppHintAlgorithm hint))
|
|
|
|
|
|
/* /////////////////////////////////////////////////////////////////////////////
|
|
// Name: ippsWeightedMeanColumn_*_*
|
|
// Purpose: Computes the weighted mean values for the column elements.
|
|
// Returns:
|
|
// ippStsNoErr Indicates no error.
|
|
// ippStsNullPtrErr Indicates an error when pSrc, mSrc, pWgt, or pDstMean pointer is null.
|
|
// ippStsSizeErr Indicates an error when height or width is less than or equal to 0.
|
|
// IppStsStrideErr Indicates an error when step is less than width.
|
|
// Parameters:
|
|
// pSrc Pointer to the input vector [height*step].
|
|
// mSrc Pointer to the input matrix [height][width].
|
|
// pWgt Pointer to the weights vector [height].
|
|
// height Number of rows in the input matrix.
|
|
// step Row step in the input vector (measured in pSrc elements).
|
|
// pDstMean Pointer to the output mean vector [width].
|
|
// width Number of columns in the input matrix, and also the length of the output mean vector pDstMean.
|
|
// Notes:
|
|
*/
|
|
|
|
|
|
IPPAPI(IppStatus, ippsWeightedMeanColumn_32f_D2,(const Ipp32f* pSrc, int step,
|
|
const Ipp32f* pWgt, int height, Ipp32f* pDstMean, int width))
|
|
IPPAPI(IppStatus, ippsWeightedMeanColumn_32f_D2L,(const Ipp32f** mSrc,
|
|
const Ipp32f* pWgt, int height, Ipp32f* pDstMean, int width))
|
|
IPPAPI(IppStatus, ippsWeightedMeanColumn_64f_D2,(const Ipp64f* pSrc, int step,
|
|
const Ipp64f* pWgt, int height, Ipp64f* pDstMean, int width))
|
|
IPPAPI(IppStatus, ippsWeightedMeanColumn_64f_D2L,(const Ipp64f** mSrc,
|
|
const Ipp64f* pWgt, int height, Ipp64f* pDstMean, int width))
|
|
|
|
|
|
/* /////////////////////////////////////////////////////////////////////////////
|
|
// Name: ippsWeightedVarColumn_*_*
|
|
// Purpose: Computes the weighted variances values for the column elements.
|
|
// Returns:
|
|
// ippStsNoErr Indicates no error.
|
|
// ippStsNullPtrErr Indicates an error when pSrc, mSrc, pWgt, pSrcMean,
|
|
// or pDstVar pointer is null.
|
|
// ippStsSizeErr Indicates an error when height or width is less than
|
|
// or equal to 0.
|
|
// ippStsStrideErr Indicates an error when step is less than width.
|
|
// Parameters:
|
|
// pSrc Pointer to the input vector [height*step].
|
|
// mSrc Pointer to the input matrix [height][width].
|
|
// pWgt Pointer to the weights vector [height].
|
|
// height Number of rows in the input matrix.
|
|
// step Row step in the input vector (measured in pSrc elements).
|
|
// pSrcMean Pointer to the input mean vector [width].
|
|
// pDstVar Pointer to the output variance vector [width].
|
|
// width Number of columns in the input matrix, and also the length
|
|
// of the input mean vector pSrcMean and the output variance vector pDstVar.
|
|
*/
|
|
|
|
|
|
IPPAPI(IppStatus, ippsWeightedVarColumn_32f_D2,(const Ipp32f* pSrc, int step,
|
|
const Ipp32f* pWgt, int height, const Ipp32f* pSrcMean,
|
|
Ipp32f* pDstVar, int width))
|
|
IPPAPI(IppStatus, ippsWeightedVarColumn_32f_D2L,(const Ipp32f** mSrc,
|
|
const Ipp32f* pWgt, int height, const Ipp32f* pSrcMean,
|
|
Ipp32f* pDstVar, int width))
|
|
IPPAPI(IppStatus, ippsWeightedVarColumn_64f_D2,(const Ipp64f* pSrc, int step,
|
|
const Ipp64f* pWgt, int height, const Ipp64f* pSrcMean,
|
|
Ipp64f* pDstVar, int width))
|
|
IPPAPI(IppStatus, ippsWeightedVarColumn_64f_D2L,(const Ipp64f** mSrc,
|
|
const Ipp64f* pWgt, int height, const Ipp64f* pSrcMean,
|
|
Ipp64f* pDstVar,int width))
|
|
|
|
|
|
|
|
/* /////////////////////////////////////////////////////////////////////////////
|
|
// Name: ippsWeightedMeanVarColumn_*_*
|
|
// Purpose: Computes the weighted mean variances values for the column elements.
|
|
// Returns:
|
|
// ippStsNoErr Indicates no error.
|
|
// ippStsNullPtrErr Indicates an error when pSrc, mSrc, pWgt, pDstMean,
|
|
// or pDstVar pointer is null.
|
|
// ippStsSizeErr Indicates an error when height or width is less than
|
|
// or equal to 0.
|
|
// ippStsStrideErr Indicates an error when step is less than width.
|
|
// Parameters:
|
|
// pSrc Pointer to the input vector [height*step].
|
|
// mSrc Pointer to the input matrix [height][width].
|
|
// pWgt Pointer to the weights vector [height].
|
|
// height Number of rows in the input matrix.
|
|
// step Row step in the input vector (measured in pSrc elements).
|
|
// pDstMean Pointer to the output mean vector [width].
|
|
// pDstVar Pointer to the output variance vector [width].
|
|
// width Number of columns in the input matrix, and also the length of the output mean vector pSrcMean and the output variance vector pDstVar.
|
|
*/
|
|
|
|
|
|
IPPAPI(IppStatus, ippsWeightedMeanVarColumn_32f_D2,(const Ipp32f* pSrc, int step,
|
|
const Ipp32f* pWgt, int height, Ipp32f* pDstMean, Ipp32f* pDstVar, int width))
|
|
IPPAPI(IppStatus, ippsWeightedMeanVarColumn_32f_D2L,(const Ipp32f** mSrc,
|
|
const Ipp32f* pWgt, int height, Ipp32f* pDstMean, Ipp32f* pDstVar, int width))
|
|
IPPAPI(IppStatus, ippsWeightedMeanVarColumn_64f_D2,(const Ipp64f* pSrc, int step,
|
|
const Ipp64f* pWgt, int height, Ipp64f* pDstMean, Ipp64f* pDstVar, int width))
|
|
IPPAPI(IppStatus, ippsWeightedMeanVarColumn_64f_D2L,(const Ipp64f** mSrc,
|
|
const Ipp64f* pWgt, int height, Ipp64f* pDstMean, Ipp64f* pDstVar, int width))
|
|
|
|
|
|
|
|
/* /////////////////////////////////////////////////////////////////////////////
|
|
// Name: ippsCrossCorrCoeffDecim
|
|
// Purpose: Calculate vector of cross correlation coefficients with decimation.
|
|
// Returns:
|
|
// ippStsNoErr Indicates no error.
|
|
// ippStsNullPtrErr Indicates an error when the pSrc1, pSrc2, or pDst pointer is null.
|
|
// ippStsSizeErr Indicates an error when len is less than or equal to 0.
|
|
// ippStsBadArgErr Indicates an error when val is less than 0.
|
|
// Parameters:
|
|
// pSrc1 Pointer to the first input vector [maxLen].
|
|
// pSrc2 Pointer to the second input vector [maxLen].
|
|
// pDst Pointer to the output vector [(maxLen-minLen+dec-1)/dec].
|
|
// maxLen Maximal length of cross correlation.
|
|
// minLen Minimal length of cross correlation.
|
|
// dec Decimation step.
|
|
*/
|
|
IPPAPI(IppStatus, ippsCrossCorrCoeffDecim_16s32f,(const Ipp16s* pSrc1,
|
|
const Ipp16s* pSrc2, int maxLen, int minLen, Ipp32f* pDst, int dec))
|
|
|
|
/* /////////////////////////////////////////////////////////////////////////////
|
|
// Name: ippsCrossCorrCoeff
|
|
// Purpose: Calculate cross correlation coefficient.
|
|
// Context:
|
|
// Returns:
|
|
// ippStsNoErr Indicates no error.
|
|
// ippStsNullPtrErr Indicates an error when the pSrc1, pSrc2, or pResult pointer is null.
|
|
// ippStsSizeErr Indicates an error when len is less than or equal to 0.
|
|
// ippStsBadArgErr Indicates an error when val is less than 0.
|
|
// Parameters:
|
|
// pSrc1 Pointer to the first input vector [len].
|
|
// pSrc2 Pointer to the second input vector [len].
|
|
// len Length of the input vectors.
|
|
// pResult Pointer to the result cross correlation coefficient value.
|
|
// val First vector length value.
|
|
*/
|
|
|
|
IPPAPI(IppStatus, ippsCrossCorrCoeff_16s32f,(const Ipp16s* pSrc1,
|
|
const Ipp16s* pSrc2, int len, Ipp32f* pResult))
|
|
IPPAPI(IppStatus, ippsCrossCorrCoeffPartial_16s32f,(const Ipp16s* pSrc1,
|
|
const Ipp16s* pSrc2, int len, Ipp32f val, Ipp32f* pResult))
|
|
|
|
/* /////////////////////////////////////////////////////////////////////////////
|
|
// Name: ippsCrossCorrCoeffInterpolation
|
|
// Purpose: Calculate cross correlation coefficient.
|
|
// Context:
|
|
// Returns:
|
|
// ippStsNoErr Indicates no error.
|
|
// ippStsNullPtrErr Indicates an error when the pSrc1, pSrc2, pBeta or pResult pointer is null.
|
|
// ippStsSizeErr Indicates an error when len is less than or equal to 0.
|
|
// ippStsStrideErr Indicates an error when srcStep or dstStep is less than width.
|
|
// Parameters:
|
|
// pSrc1 Pointer to the first input vector [len].
|
|
// pSrc2 Pointer to the second input vector [len+1].
|
|
// len Length of the input vectors.
|
|
// pResult Pointer to the result cross correlation coefficient value.
|
|
// pBeta Pointer to the result value of fractional part of the pitch period.
|
|
*/
|
|
|
|
IPPAPI(IppStatus, ippsCrossCorrCoeffInterpolation_16s32f,(const Ipp16s* pSrc1,
|
|
const Ipp16s* pSrc2, int len, Ipp32f* pBeta, Ipp32f* pResult))
|
|
|
|
|
|
/* /////////////////////////////////////////////////////////////////////////////
|
|
// Name: ippsBuildSignTable_8u1u
|
|
// Purpose: Fills sign table for Gaussian mixture calculation.
|
|
//
|
|
// Parameters:
|
|
// pIndx Pointer to the cluster indexes vector ([frames*num] or sum of pNum elements).
|
|
// num Number of clusters for each input vector.
|
|
// mShortlist Pointer to the shortlist matrix [clust*width] (in bytes).
|
|
// clust Number of rows in shortlist vector (equal to the codebook size).
|
|
// width Row length in shortlist matrix in bytes.
|
|
// shift First element displacement in shortlist vector rows (in bits).
|
|
// pSign Pointer to the output vector of Gaussian calculation
|
|
// signs [frames*(comps+7)/8] (in bytes).
|
|
// frames Number of input vectors (rows in pSign vector).
|
|
// comps Number of Gaussian mixture components (bit columns in pSign vector).
|
|
// Return:
|
|
// ippStsNoErr Indicates no error.
|
|
// ippStsNullPtrErr Indicates an error when pIndx, pSign, mShortlist or pNum is NULL.
|
|
// ippStsSizeErr Indicates an error when clust, width, frames, comps, num or one
|
|
// of pNum vector elements is less than or equal to 0 or when
|
|
// shift is less than 0.
|
|
// ippStsStrideErr Indicates an error when width is less than (shift+height+7)/8.
|
|
// ippStsBadArgErr Indicates an error when one of pIndx vector elements is
|
|
// less than 0 or greater than or equal to clust.
|
|
// Notes:
|
|
*/
|
|
|
|
IPPAPI(IppStatus, ippsBuildSignTable_8u1u, (const Ipp32s* pIndx, int num, const Ipp8u** mShortlist,
|
|
int clust, int width, int shift, Ipp8u* pSign, int frames, int comps))
|
|
|
|
/* /////////////////////////////////////////////////////////////////////////////
|
|
// Name: ippsBuildSignTable_Var_8u1u
|
|
// Purpose: Fills sign table for Gaussian mixture calculation.
|
|
//
|
|
// Parameters:
|
|
// pIndx Pointer to the cluster indexes vector ([frames*num] or sum of pNum elements).
|
|
// pNum Number of clusters vector [frames].
|
|
// mShortlist Pointer to the shortlist matrix [clust*width] (in bytes).
|
|
// clust Number of rows in shortlist vector (equal to the codebook size).
|
|
// width Row length in shortlist matrix in bytes.
|
|
// shift First element displacement in shortlist vector rows (in bits).
|
|
// pSign Pointer to the output vector of Gaussian calculation
|
|
// signs [frames*(comps+7)/8] (in bytes).
|
|
// frames Number of input vectors (rows in pSign vector).
|
|
// comps Number of Gaussian mixture components (bit columns in pSign vector).
|
|
// Return:
|
|
// ippStsNoErr Indicates no error.
|
|
// ippStsNullPtrErr Indicates an error when pIndx, pSign, mShortlist or pNum is NULL.
|
|
// ippStsSizeErr Indicates an error when clust, width, frames, comps, num or one
|
|
// of pNum vector elements is less than or equal to 0 or when
|
|
// shift is less than 0.
|
|
// ippStsStrideErr Indicates an error when width is less than (shift+height+7)/8.
|
|
// ippStsBadArgErr Indicates an error when one of pIndx vector elements is
|
|
// less than 0 or greater than or equal to clust.
|
|
// Notes:
|
|
*/
|
|
|
|
IPPAPI(IppStatus, ippsBuildSignTable_Var_8u1u, (const Ipp32s* pIndx, const int* pNum,
|
|
const Ipp8u** mShortlist, int clust, int width, int shift, Ipp8u* pSign,
|
|
int frames, int comps))
|
|
|
|
|
|
/* /////////////////////////////////////////////////////////////////////////////
|
|
// Name: ippsLogGaussMixture_Select*_*_D2
|
|
// Purpose: Calculates the likelihood probability for the Gaussian
|
|
// mixture using Gaussian selection.
|
|
//
|
|
// Parameters:
|
|
// pSrc Pointer to the input vector
|
|
// pMean Pointer to the mean vector
|
|
// pVar Pointer to the variance vector
|
|
// step Row step in mean, variance and input vectors (in pMean elements)
|
|
// width Length of the mean, variance and input matrix rows
|
|
// pVal Pointer to the vector of weight constants
|
|
// pSign Pointer to the vector of Gaussian calculation
|
|
// signs [frames*(height+7)/8] (in bytes).
|
|
// height Number of Gaussian mixture components
|
|
// pResult Pointer to the vector of output mixture values
|
|
// frames Number of input vectors; also the length of pSign row
|
|
// none Result value if no Gaussian is calculated
|
|
// scaleFactor Scaling factor for intermediate sums.
|
|
// Return:
|
|
// ippStsNoErr Indicates no error.
|
|
// ippStsNullPtrErr Indicates an error when pSrc, pMean, pVar, pSign, pVal
|
|
// or pResult is NULL.
|
|
// ippStsSizeErr Indicates an error when width, height or frames less than
|
|
// or equal to 0.
|
|
// ippStsStrideErr Indicates an error when step is less than width.
|
|
// ippStsSizeErr Indicates an error when width, height, frames less than
|
|
// or equal to 0
|
|
// ippStsStrideErr Indicates an error when step is less than width .
|
|
// ippStsNoGaussian Indicates a warning when no Gaussian is calculated for
|
|
// one of input vectors.
|
|
// Notes:
|
|
*/
|
|
|
|
IPPAPI(IppStatus, ippsLogGaussMixture_Select_32f_D2, (const Ipp32f* pSrc, const Ipp32f* pMean,
|
|
const Ipp32f* pVar,/* const Ipp32f* Det,*/ int step, int width, const Ipp32f* pVal,
|
|
const Ipp8u* pSign, int height, Ipp32f* pResult, int frames, Ipp32f none))
|
|
|
|
IPPAPI(IppStatus, ippsLogGaussMixture_SelectScaled_16s32f_D2, (const Ipp16s* pSrc,
|
|
const Ipp16s* pMean, const Ipp16s* pVar, int step, int width, const Ipp32f* pVal,
|
|
const Ipp8u* pSign, int height, Ipp32f* pResult, int frames, Ipp32f none, int scaleFactor))
|
|
|
|
/* /////////////////////////////////////////////////////////////////////////////
|
|
// Name: ippsLogGaussMixture_Select*_*_D2L
|
|
// Purpose: Calculates the likelihood probability for the Gaussian
|
|
// mixture using Gaussian selection.
|
|
//
|
|
// Parameters:
|
|
// mSrc Pointer to the input matrix [frames][width].
|
|
// mMean Pointer to the mean matrix [height][width].
|
|
// mVar Pointer to the variance matrix [height][width].
|
|
// width Length of the mean, variance and input matrix rows
|
|
// pVal Pointer to the vector of weight constants
|
|
// pSign Pointer to the vector of Gaussian calculation
|
|
// signs [frames*(height+7)/8] (in bytes).
|
|
// height Number of Gaussian mixture components
|
|
// pResult Pointer to the vector of output mixture values
|
|
// frames Number of input vectors; also the length of pSign row
|
|
// none Result value if no Gaussian is calculated
|
|
// scaleFactor Scaling factor for intermediate sums.
|
|
// Return:
|
|
// ippStsNoErr Indicates no error.
|
|
// ippStsNullPtrErr Indicates an error when mSrc, mMean, mVar, pSign, pVal
|
|
// or pResult is NULL.
|
|
// ippStsSizeErr Indicates an error when width, height or frames less than
|
|
// or equal to 0.
|
|
// ippStsSizeErr Indicates an error when width, height, frames less than
|
|
// or equal to 0
|
|
// ippStsNoGaussian Indicates a warning when no Gaussian is calculated for
|
|
// one of input vectors.
|
|
// Notes:
|
|
*/
|
|
|
|
IPPAPI(IppStatus, ippsLogGaussMixture_Select_32f_D2L,(const Ipp32f** mSrc, const Ipp32f** mMean,
|
|
const Ipp32f** mVar, int width, const Ipp32f* pVal, const Ipp8u* pSign, int height,
|
|
Ipp32f* pResult, int frames, Ipp32f none))
|
|
|
|
IPPAPI(IppStatus, ippsLogGaussMixture_SelectScaled_16s32f_D2L, (const Ipp16s** mSrc,
|
|
const Ipp16s** mMean, const Ipp16s** mVar, int width, const Ipp32f* pVal,
|
|
const Ipp8u* pSign, int height, Ipp32f* pResult, int frames, Ipp32f none, int scaleFactor))
|
|
|
|
/* /////////////////////////////////////////////////////////////////////////////
|
|
// Name: ippsLogGaussMixture_SelectIdVar*_*_D2
|
|
// Purpose: Calculates the likelihood probability for the Gaussian
|
|
// mixture using Gaussian selection.
|
|
//
|
|
// Parameters:
|
|
// pSrc Pointer to the input vector
|
|
// pMean Pointer to the mean vector
|
|
// step Row step in mean, variance and input vectors (in pMean elements)
|
|
// width Length of the mean, variance and input matrix rows
|
|
// pVal Pointer to the vector of weight constants
|
|
// pSign Pointer to the vector of Gaussian calculation
|
|
// signs [frames*(height+7)/8] (in bytes).
|
|
// height Number of Gaussian mixture components
|
|
// pResult Pointer to the vector of output mixture values
|
|
// frames Number of input vectors; also the length of pSign row
|
|
// none Result value if no Gaussian is calculated
|
|
// scaleFactor Scaling factor for intermediate sums.
|
|
// Return:
|
|
// ippStsNoErr Indicates no error.
|
|
// ippStsNullPtrErr Indicates an error when pSrc, pMean, pSign, pVal
|
|
// or pResult is NULL.
|
|
// ippStsSizeErr Indicates an error when width, height or frames less than
|
|
// or equal to 0.
|
|
// ippStsStrideErr Indicates an error when step is less than width.
|
|
// ippStsSizeErr Indicates an error when width, height, frames less than
|
|
// or equal to 0
|
|
// ippStsStrideErr Indicates an error when step is less than width .
|
|
// ippStsNoGaussian Indicates a warning when no Gaussian is calculated for
|
|
// one of input vectors.
|
|
// Notes:
|
|
*/
|
|
|
|
IPPAPI(IppStatus, ippsLogGaussMixture_SelectIdVar_32f_D2, (const Ipp32f* pSrc, const Ipp32f* pMean,
|
|
int step, int width, const Ipp32f* pVal, const Ipp8u* pSign, int height, Ipp32f* pResult,
|
|
int frames, Ipp32f none))
|
|
|
|
IPPAPI(IppStatus, ippsLogGaussMixture_SelectIdVarScaled_16s32f_D2, (const Ipp16s* pSrc,
|
|
const Ipp16s* pMean, int step, int width, const Ipp32f* pVal, const Ipp8u* pSign, int height,
|
|
Ipp32f* pResult, int frames, Ipp32f none, int scaleFactor))
|
|
|
|
/* /////////////////////////////////////////////////////////////////////////////
|
|
// Name: ippsLogGaussMixture_SelectIdVar*_*_D2L
|
|
// Purpose: Calculates the likelihood probability for the Gaussian
|
|
// mixture using Gaussian selection.
|
|
//
|
|
// Parameters:
|
|
// mSrc Pointer to the input matrix [frames][width].
|
|
// mMean Pointer to the mean matrix [height][width].
|
|
// width Length of the mean, variance and input matrix rows
|
|
// pVal Pointer to the vector of weight constants
|
|
// pSign Pointer to the vector of Gaussian calculation
|
|
// signs [frames*(height+7)/8] (in bytes).
|
|
// height Number of Gaussian mixture components
|
|
// pResult Pointer to the vector of output mixture values
|
|
// frames Number of input vectors; also the length of pSign row
|
|
// none Result value if no Gaussian is calculated
|
|
// scaleFactor Scaling factor for intermediate sums.
|
|
// Return:
|
|
// ippStsNoErr Indicates no error.
|
|
// ippStsNullPtrErr Indicates an error when mSrc, mMean, pSign, pVal
|
|
// or pResult is NULL.
|
|
// ippStsSizeErr Indicates an error when width, height or frames less than
|
|
// or equal to 0.
|
|
// ippStsSizeErr Indicates an error when width, height, frames less than
|
|
// or equal to 0
|
|
// ippStsNoGaussian Indicates a warning when no Gaussian is calculated for
|
|
// one of input vectors.
|
|
// Notes:
|
|
*/
|
|
|
|
IPPAPI(IppStatus, ippsLogGaussMixture_SelectIdVar_32f_D2L, (const Ipp32f** mSrc,
|
|
const Ipp32f** mMean, int width, const Ipp32f* pVal, const Ipp8u* pSign, int height,
|
|
Ipp32f* pResult, int frames, Ipp32f none))
|
|
|
|
IPPAPI(IppStatus, ippsLogGaussMixture_SelectIdVarScaled_16s32f_D2L, (const Ipp16s** mSrc,
|
|
const Ipp16s** mMean, int width, const Ipp32f* pVal, const Ipp8u* pSign, int height,
|
|
Ipp32f* pResult, int frames, Ipp32f none, int scaleFactor))
|
|
|
|
|
|
/* /////////////////////////////////////////////////////////////////////////////
|
|
// Name: ippsVQSingle_Thresh_*
|
|
// Purpose: Quantizes the input vector given a codebook getting
|
|
// several closest clusters
|
|
//
|
|
// Parameters:
|
|
// pSrc Pointer to the input vector
|
|
// pIndx Pointer to the destination indexes vector
|
|
// pCdbk Pointer to the codebook structure
|
|
// val Relative threshold value
|
|
// pNum Pointer to the number of clusters within threshold [1]
|
|
// Return:
|
|
// ippStsNoErr Indicates no error
|
|
// ippStsNullPtrErr Indicates an error when pSrc, pIndx, pCdbk or pNum is NULL
|
|
// ippStsBadArgErr Indicates an error when val is less than 1
|
|
// Notes:
|
|
*/
|
|
|
|
IPPAPI(IppStatus, ippsVQSingle_Thresh_32f,(const Ipp32f *pSrc, Ipp32s *pIndx, const IppsCdbkState_32f* pCdbk, Ipp32f val, int *pNum))
|
|
|
|
IPPAPI(IppStatus, ippsVQSingle_Thresh_16s,(const Ipp16s *pSrc, Ipp32s *pIndx, const IppsCdbkState_16s* pCdbk, Ipp32f val, int *pNum))
|
|
|
|
/* /////////////////////////////////////////////////////////////////////////////
|
|
// Name: ippsVQDistSingle_Thresh_*
|
|
// Purpose: Quantizes the input vector given a codebook getting
|
|
// several closest clusters
|
|
//
|
|
// Parameters:
|
|
// pSrc Pointer to the input vector
|
|
// pIndx Pointer to the destination indexes vector
|
|
// pDist Pointer to the destination distances vector
|
|
// pCdbk Pointer to the codebook structure
|
|
// val Relative threshold value
|
|
// pNum Pointer to the number of clusters within threshold [1]
|
|
// scaleFactor Refer to "Integer Scaling" in Chapter 2.
|
|
// Return:
|
|
// ippStsNoErr Indicates no error
|
|
// ippStsNullPtrErr Indicates an error when pSrc, pIndx, pDist, pCdbk or pNum is NULL
|
|
// ippStsBadArgErr Indicates an error when val is less than 1
|
|
// Notes:
|
|
*/
|
|
|
|
IPPAPI(IppStatus, ippsVQDistSingle_Thresh_32f,(const Ipp32f *pSrc, Ipp32s *pIndx, Ipp32f *pDist, const IppsCdbkState_32f* pCdbk, Ipp32f val, int *pNum))
|
|
|
|
IPPAPI(IppStatus, ippsVQDistSingle_Thresh_16s32s_Sfs,(const Ipp16s *pSrc, Ipp32s *pIndx, Ipp32s *pDist, const IppsCdbkState_16s* pCdbk, Ipp32f val, int *pNum, int scaleFactor))
|
|
|
|
/* /////////////////////////////////////////////////////////////////////////////
|
|
// Name: ippsVQSingle_Sort_*
|
|
// Purpose: Quantizes the input vector given a codebook getting
|
|
// several closest clusters
|
|
//
|
|
// Parameters:
|
|
// pSrc Pointer to the input vector
|
|
// pIndx Pointer to the destination indexes vector
|
|
// pCdbk Pointer to the codebook structure
|
|
// num Number of closest clusters to search for each input vector
|
|
// Return:
|
|
// ippStsNoErr Indicates no error
|
|
// ippStsNullPtrErr Indicates an error when pSrc, pIndx, pCdbk is NULL
|
|
// ippStsSizeErr Indicates an error when num less than or equal to 0 or
|
|
// is greater than the codebook size.
|
|
// Notes:
|
|
*/
|
|
|
|
IPPAPI(IppStatus, ippsVQSingle_Sort_32f,(const Ipp32f *pSrc, Ipp32s *pIndx, const IppsCdbkState_32f* pCdbk, int num))
|
|
|
|
IPPAPI(IppStatus, ippsVQSingle_Sort_16s,(const Ipp16s *pSrc, Ipp32s *pIndx, const IppsCdbkState_16s* pCdbk, int num))
|
|
|
|
/* /////////////////////////////////////////////////////////////////////////////
|
|
// Name: ippsVQDistSingle_Sort_*
|
|
// Purpose: Quantizes the input vector given a codebook getting
|
|
// several closest clusters
|
|
//
|
|
// Parameters:
|
|
// pSrc Pointer to the input vector
|
|
// pIndx Pointer to the destination indexes vector
|
|
// pDist Pointer to the destination distances vector
|
|
// pCdbk Pointer to the codebook structure
|
|
// num Number of closest clusters to search for each input vector
|
|
// scaleFactor Refer to "Integer Scaling" in Chapter 2.
|
|
// Return:
|
|
// ippStsNoErr Indicates no error
|
|
// ippStsNullPtrErr Indicates an error when pSrc, pIndx, pDist, pCdbk is NULL
|
|
// ippStsSizeErr Indicates an error when num less than or equal to 0 or
|
|
// is greater than the codebook size.
|
|
// Notes:
|
|
*/
|
|
|
|
IPPAPI(IppStatus, ippsVQDistSingle_Sort_32f,(const Ipp32f *pSrc, Ipp32s *pIndx, Ipp32f *pDist, const IppsCdbkState_32f* pCdbk, int num))
|
|
|
|
IPPAPI(IppStatus, ippsVQDistSingle_Sort_16s32s_Sfs,(const Ipp16s *pSrc, Ipp32s *pIndx, Ipp32s *pDist, const IppsCdbkState_16s* pCdbk, int num, int scaleFactor))
|
|
|
|
|
|
/* /////////////////////////////////////////////////////////////////////////////
|
|
// Name: ippsFillShortlist_Row_1u
|
|
// Purpose: Fills row-wise shortlist table for Gaussian selection.
|
|
// several closest clusters
|
|
//
|
|
// Parameters:
|
|
// pIndx Pointer to the cluster indexes vector ([num*clust])
|
|
// num Number of Gaussian for each codebook cluster
|
|
// pShortlist Pointer to the shortlist matrix [clust][Listlen] (size in bytes)
|
|
// clust Number of rows in shortlist vector and rows in pIndx
|
|
// Listlen Number of elements in shortlist vector
|
|
// shift First element displacement in shortlist vector rows (in bits)
|
|
// height Number of Gaussian mixture components
|
|
// Return:
|
|
// ippStsNoErr Indicates no error
|
|
// ippStsNoErr Indicates no error
|
|
// ippStsNullPtrErr Indicates an error when pIndx or pShortlist NULL
|
|
// ippStsSizeErr Indicates an error when clust, height, Listlen, num vector elements
|
|
// is less than or equal to 0 or when shift is less than 0
|
|
// ippStsStrideErr Indicates an error when Listlen is less than (shift+height+7)/8.
|
|
// ippStsBadArgErr Indicates an error when one of pIndx vector elements is less than
|
|
// 0 or greater than or equal to height.
|
|
// Notes:
|
|
*/
|
|
|
|
IPPAPI(IppStatus, ippsFillShortlist_Row_1u,(const Ipp32s* pIndx, int height, int num, Ipp8u** pShortlist, int clust, int Listlen, int shift))
|
|
|
|
/* /////////////////////////////////////////////////////////////////////////////
|
|
// Name: ippsFillShortlist_RowVar_1u
|
|
// Purpose: Fills row-wise shortlist table for Gaussian selection.
|
|
// several closest clusters
|
|
//
|
|
// Parameters:
|
|
// pIndx Pointer to the cluster indexes vector ([sum of pNum's])
|
|
// pNum Number of clusters vector [clust].
|
|
// pShortlist Pointer to the shortlist matrix [clust][Listlen] (size in bytes)
|
|
// clust Number of rows in shortlist vector and rows in pIndx
|
|
// Listlen Number of elements in shortlist vector
|
|
// shift First element displacement in shortlist vector rows (in bits)
|
|
// height Number of Gaussian mixture components
|
|
// Return:
|
|
// ippStsNoErr Indicates no error
|
|
// ippStsNoErr Indicates no error
|
|
// ippStsNullPtrErr Indicates an error when pIndx or pShortlist NULL
|
|
// ippStsSizeErr Indicates an error when clust, height, Listlen, or any pNum elements
|
|
// is less than or equal to 0 or when shift is less than 0.
|
|
// ippStsStrideErr Indicates an error when Listlen is less than (shift+height+7)/8.
|
|
// ippStsBadArgErr Indicates an error when one of pIndx vector elements is less than
|
|
// 0 or greater than or equal to height.
|
|
// Notes:
|
|
*/
|
|
|
|
IPPAPI(IppStatus, ippsFillShortlist_RowVar_1u,(const Ipp32s* pIndx, int *pNum, int height, Ipp8u** pShortlist, int clust, int Listlen, int shift))
|
|
|
|
/* /////////////////////////////////////////////////////////////////////////////
|
|
// Name: ippsFillShortlist_Column_1u
|
|
// Purpose: Fills column-wise shortlist table for Gaussian selection.
|
|
// several closest clusters
|
|
//
|
|
// Parameters:
|
|
// pIndx Pointer to the cluster indexes vector ([num*height])
|
|
// num Number of Gaussian for each codebook cluster
|
|
// pShortlist Pointer to the shortlist matrix [clust][Listlen] (size in bytes)
|
|
// clust Number of rows in shortlist vector
|
|
// Listlen Number of elements in shortlist vector
|
|
// shift First element displacement in shortlist vector rows (in bits)
|
|
// height Number of Gaussian mixture components (and rows in pIndx)
|
|
// Return:
|
|
// ippStsNoErr Indicates no error
|
|
// ippStsNullPtrErr Indicates an error when pIndx or pShortlist NULL
|
|
// ippStsSizeErr Indicates an error when clust, height, Listlen, num vector elements
|
|
// is less than or equal to 0 or when shift is less than 0
|
|
// ippStsStrideErr Indicates an error when Listlen is less than (shift+height+7)/8.
|
|
// ippStsBadArgErr Indicates an error when one of pIndx vector elements is less than
|
|
// 0 or greater than or equal to clust.
|
|
// Notes:
|
|
*/
|
|
|
|
IPPAPI(IppStatus, ippsFillShortlist_Column_1u,(const Ipp32s* pIndx, int num, Ipp8u** pShortlist, int clust, int Listlen, int shift, int height))
|
|
|
|
/* /////////////////////////////////////////////////////////////////////////////
|
|
// Name: ippsFillShortlist_ColumnVar_1u
|
|
// Purpose: Fills column-wise shortlist table for Gaussian selection.
|
|
// several closest clusters
|
|
//
|
|
// Parameters:
|
|
// pIndx Pointer to the cluster indexes vector ([sum of pNum's])
|
|
// pNum Number of clusters vector [height].
|
|
// pShortlist Pointer to the shortlist matrix [clust][Listlen] (size in bytes)
|
|
// clust Number of rows in shortlist vector
|
|
// Listlen Number of elements in shortlist vector
|
|
// shift First element displacement in shortlist vector rows (in bits)
|
|
// height Number of Gaussian mixture components (and rows in pIndx)
|
|
// Return:
|
|
// ippStsNoErr Indicates no error
|
|
// ippStsNullPtrErr Indicates an error when pIndx or pShortlist NULL
|
|
// ippStsSizeErr Indicates an error when clust, height, Listlen, any pNum elements
|
|
// is less than or equal to 0 or when shift is less than 0.
|
|
// ippStsStrideErr Indicates an error when Listlen is less than (shift+height+7)/8.
|
|
// ippStsBadArgErr Indicates an error when one of pIndx vector elements is less than
|
|
// 0 or greater than or equal to clust.
|
|
// Notes:
|
|
*/
|
|
|
|
IPPAPI(IppStatus, ippsFillShortlist_ColumnVar_1u,(const Ipp32s* pIndx, int *pNum, Ipp8u** pShortlist, int clust, int ListLen, int shift, int height))
|
|
|
|
|
|
|
|
/* /////////////////////////////////////////////////////////////////////////////
|
|
// Name: ippsTabsCalculation_Aurora
|
|
// Purpose: Calculates filter coefficients for residual filter
|
|
//
|
|
//
|
|
// Arguments:
|
|
// pSrc Pointer to the input vector [10]
|
|
// pDst Pointer to the output vector [17]
|
|
// Return Value
|
|
// ippStsNoErr Indicates no error.
|
|
// ippStsNullPtrErr Indicates an error when the pSrc or pDst pointer is null.
|
|
*/
|
|
|
|
IPPAPI(IppStatus, ippsTabsCalculation_Aurora_32f,(const Ipp32f *pSrc,Ipp32f *pDst))
|
|
|
|
IPPAPI(IppStatus, ippsTabsCalculation_Aurora_16s,(const Ipp16s *pSrc,Ipp16s *pDst))
|
|
|
|
/* /////////////////////////////////////////////////////////////////////////////
|
|
// Name: ippsResidualFilter_Aurora
|
|
// Purpose: Calculates denoised waveform signal
|
|
// Arguments:
|
|
// pTabs Pointer to the input vector [17]
|
|
// pSrc Pointer to the input vector [96]
|
|
// pDst Pointer to the output vector [80]
|
|
// scaleFactor Refer to "Integer Scaling" in Chapter 2.
|
|
// Return Value
|
|
// ippStsNoErr Indicates no error.
|
|
// ippStsNullPtrErr Indicates an error when the pSrc or pDst or pTabs pointer is null.
|
|
*/
|
|
|
|
IPPAPI(IppStatus, ippsResidualFilter_Aurora_32f,(const Ipp32f* pSrc, Ipp32f* pDst, const Ipp32f* pTabs))
|
|
|
|
IPPAPI(IppStatus, ippsResidualFilter_Aurora_16s_Sfs,(const Ipp16s* pSrc, Ipp16s* pDst, const Ipp16s* pTabs, int scaleFactor))
|
|
|
|
/* /////////////////////////////////////////////////////////////////////////////
|
|
// Name: ippsWaveProcessing_Aurora
|
|
// Purpose: Processes waveform data after noise reduction
|
|
// Arguments:
|
|
// pSrc Pointer to the input vector [200]
|
|
// pDst Pointer to the output vector [200]
|
|
// Return Value
|
|
// ippStsNoErr Indicates no error.
|
|
// ippStsNullPtrErr Indicates an error when the pSrc or pDst pointer is null.
|
|
*/
|
|
|
|
IPPAPI(IppStatus, ippsWaveProcessing_Aurora_32f,(const Ipp32f *pSrc,Ipp32f *pDst))
|
|
|
|
IPPAPI(IppStatus, ippsWaveProcessing_Aurora_16s,(const Ipp16s *pSrc,Ipp16s *pDst))
|
|
|
|
|
|
/* /////////////////////////////////////////////////////////////////////////////
|
|
// Name: ippsSmoothedPowerSpectrumAurora
|
|
// Purpose: Calculates smoothed magnitude of FFT output
|
|
// Arguments:
|
|
// pSrc Pointer to the input vector [len]
|
|
// pDst Pointer to the output vector [len/4+1]
|
|
// len The length of input and output vectors
|
|
// scaleFactor Refer to "Integer Scaling" in Chapter 2.
|
|
// Return Value
|
|
// ippStsNoErr Indicates no error.
|
|
// ippStsNullPtrErr Indicates an error when the pSrc or pDst pointer is null.
|
|
// ippStsSizeErr Indicates an error when len is less than or equal to 0, or len is not multiple of 4
|
|
*/
|
|
|
|
IPPAPI(IppStatus, ippsSmoothedPowerSpectrumAurora_32f,(Ipp32f *pSrc, Ipp32f *pDst,Ipp32s len))
|
|
|
|
IPPAPI(IppStatus, ippsSmoothedPowerSpectrumAurora_32s_Sfs,(Ipp32s *pSrc, Ipp32s *pDst,Ipp32s len,
|
|
int scaleFactor))
|
|
|
|
IPPAPI(IppStatus, ippsSmoothedPowerSpectrumAurora_32s64s_Sfs,(Ipp32s *pSrc, Ipp64s *pDst,
|
|
Ipp32s len, int scaleFactor))
|
|
|
|
IPPAPI(IppStatus, ippsSmoothedPowerSpectrumAurora_16s,(Ipp16s *pSrc, Ipp16s *pDst,Ipp32s len))
|
|
|
|
/* /////////////////////////////////////////////////////////////////////////////
|
|
// Name: ippsLowHighFilter_Aurora
|
|
// Purpose: Calculates low band and high band filters
|
|
// Arguments:
|
|
// pTabs Pointer to the input vector [tapsLen]
|
|
// tapsLen The filter taps number (even)
|
|
// pSrc Pointer to the input vector [len+tapsLen-1]
|
|
// pDstLow Pointer to the output vector [len/2]
|
|
// pDstHigh Pointer to the output vector [len/2]
|
|
// len The input samples number (even)
|
|
// scaleFactor Refer to "Integer Scaling" in Chapter 2.
|
|
// Return Value
|
|
// ippStsNoErr Indicates no error.
|
|
// ippStsNullPtrErr Indicates an error when the pSrc or pTabs or pDstLow or pDstHigh pointer is null.
|
|
// ippStsSizeErr Indicates an error when len or tapsLen is less than or equal to 0
|
|
*/
|
|
|
|
IPPAPI(IppStatus, ippsLowHighFilter_Aurora_32f,(const Ipp32f* pSrc,
|
|
Ipp32f* pDstLow, Ipp32f* pDstHigh, Ipp32s len, const Ipp32f* pTabs, Ipp32s tapsLen))
|
|
|
|
IPPAPI(IppStatus, ippsLowHighFilter_Aurora_16s_Sfs,(const Ipp16s* pSrc,
|
|
Ipp16s* pDstLow, Ipp16s* pDstHigh, Ipp32s len, const Ipp16s* pTabs, Ipp32s tapsLen, int scaleFactor))
|
|
|
|
|
|
/* /////////////////////////////////////////////////////////////////////////////
|
|
// Name: ippsNoiseSpectrumUpdate_Aurora
|
|
// Purpose: Updates noise spectrum
|
|
// Arguments:
|
|
// pSrc Pointer to the input vector of mean [len]
|
|
// pSrcNoise Pointer to the input vector of noiseless signal spectrum [len]
|
|
// pDst Pointer to the output vector [len]
|
|
// len The length of input and output vectors
|
|
// ScaleFactor Refer to "Integer Scaling" in Chapter 2.
|
|
//
|
|
// Return Value
|
|
// ippStsNoErr Indicates no error.
|
|
// ippStsNullPtrErr Indicates an error when the pSrc, pSrcNoise, pDst pointer is null.
|
|
// ippStsSizeErr Indicates an error when len is less than or equal to 0
|
|
*/
|
|
|
|
IPPAPI(IppStatus, ippsNoiseSpectrumUpdate_Aurora_32f,(const Ipp32f* pSrc, const Ipp32f* pSrcNoise,
|
|
Ipp32f *pDst, int len))
|
|
|
|
IPPAPI(IppStatus, ippsNoiseSpectrumUpdate_Aurora_16s_Sfs,(const Ipp16s* pSrc, const Ipp16s* pSrcNoise,
|
|
Ipp16s *pDst, int len, int ScaleFactor))
|
|
|
|
IPPAPI(IppStatus, ippsNoiseSpectrumUpdate_Aurora_32s_Sfs,(const Ipp32s* pSrc, const Ipp32s* pSrcNoise,
|
|
Ipp32s *pDst, int len, int ScaleFactor))
|
|
|
|
|
|
/* /////////////////////////////////////////////////////////////////////////////
|
|
// Name: ippsWienerFilterDesign_Aurora
|
|
// Purpose: Calculates improved transfer function of adaptive Wiener filter
|
|
// Arguments:
|
|
// pSrc Pointer to the input vector of square roots of power spectral density mean [len]
|
|
// pNoise Pointer to the input vector of square roots of noise spectrum estimate [len]
|
|
// pDen Pointer to the input vector of square roots of previous noiseless signal spectrum [len]
|
|
// pDst Pointer to the output vector [len]
|
|
// len The length of input and output vectors
|
|
//
|
|
// Return Value
|
|
// ippStsNoErr Indicates no error.
|
|
// ippStsNullPtrErr Indicates an error when the pSrc, pNoise, pDen, pDst pointer is null.
|
|
// ippStsSizeErr Indicates an error when len is less than or equal to 0
|
|
*/
|
|
|
|
IPPAPI(IppStatus, ippsWienerFilterDesign_Aurora_32f,(const Ipp32f* pSrc, const Ipp32f* pNoise,
|
|
const Ipp32f* pDen, Ipp32f* pDst, int len))
|
|
|
|
IPPAPI(IppStatus, ippsWienerFilterDesign_Aurora_16s,(const Ipp16s* pSrc, const Ipp16s* pNoise,
|
|
const Ipp16s* pDen, Ipp16s* pDst, int len))
|
|
|
|
/* /////////////////////////////////////////////////////////////////////////////
|
|
// Name: ippsBlindEqualization_Aurora
|
|
// Purpose: Equalizes the cepstral coefficients
|
|
// Arguments:
|
|
// pRefs Pointer to the input vector of reference cepstrum [len]
|
|
// pCeps Pointer to the input and output vector of cepstrum [len]
|
|
// pBias Pointer to the input and output vector of bias [len]
|
|
// len The length of input and output vectors
|
|
// val The log energy value
|
|
// Return Value
|
|
// ippStsNoErr Indicates no error.
|
|
// ippStsNullPtrErr Indicates an error when the pRefs, pCeps, pBias pointer is null.
|
|
// ippStsSizeErr Indicates an error when len is less than or equal to 0
|
|
*/
|
|
|
|
IPPAPI(IppStatus, ippsBlindEqualization_Aurora_32f,(const Ipp32f* pRefs, Ipp32f* pCeps, Ipp32f* pBias,
|
|
int len, Ipp32f val))
|
|
IPPAPI(IppStatus, ippsBlindEqualization_Aurora_16s,(const Ipp16s* pRefsQ6, Ipp16s* pCeps,
|
|
Ipp16s* pBias, int len, Ipp32s valQ6))
|
|
|
|
|
|
/* /////////////////////////////////////////////////////////////////////////////
|
|
// Name: ippsHighBandCoding_Aurora
|
|
// Purpose: Codes and decodes high frequency band energy values
|
|
// Arguments:
|
|
// pSrcHFB Pointer to the input high frequency band energy vector [3].
|
|
// pInSWP Pointer to the input signal smoothed power spectrum vector [65].
|
|
// pDSWP Pointer to the denoised signal power spectrum vector [129].
|
|
// pDstHFB Pointer to the output coded high frequency band log energy vector [3].
|
|
// scaleFactor Refer to "Integer Scaling" in Chapter 2.
|
|
// Return Value
|
|
// ippStsNoErr Indicates no error.
|
|
// ippStsNullPtrErr Indicates an error when the pRefs, pCeps, pBias pointer is null.
|
|
// ippBadArg Indicates an error when a non-positive or NaN argument of logarithm is detected
|
|
*/
|
|
|
|
IPPAPI(IppStatus, ippsHighBandCoding_Aurora_32f,(const Ipp32f* pSrcHFB,
|
|
const Ipp32f* pInSWP, const Ipp32f* pDSWP, Ipp32f* pDstHFB))
|
|
IPPAPI(IppStatus, ippsHighBandCoding_Aurora_32s_Sfs,(const Ipp32s* pSrcHFB,
|
|
const Ipp32s* pInSWP, const Ipp32s* pDSWP, Ipp32s* pDstHFB, int scaleFactor))
|
|
|
|
/* /////////////////////////////////////////////////////////////////////////////
|
|
// Name: ippsMatVecMul
|
|
// Purpose: Multiplies matrix by vector
|
|
// Arguments:
|
|
// pSrc Pointer to the input vector [width].
|
|
// pMatr Pointer to the input matrix [height*step].
|
|
// mMatr Pointer to the input matrix [height][width].
|
|
// step Row step in pMatr vector (in pMatr elements).
|
|
// width Length of the input vector and input matrix rows
|
|
// height Number of rows in the input matrix and the length of the result vector.
|
|
//
|
|
// Return Value
|
|
// ippStsNoErr Indicates no error.
|
|
// ippStsNullPtrErr Indicates an error when the pSrc, pMatr, mMatr pointer is null.
|
|
// ippStsSizeErr Indicates an error when width or height is less than or equal to 0
|
|
*/
|
|
|
|
IPPAPI(IppStatus, ippsMatVecMul_16s_D2Sfs,(const Ipp16s* pMatr, int step, const Ipp16s* pSrc, int width,
|
|
Ipp16s* pDst, int height, int scaleFactor))
|
|
|
|
IPPAPI(IppStatus, ippsMatVecMul_16s32s_D2Sfs,(const Ipp16s* pMatr, int step, const Ipp16s* pSrc, int width,
|
|
Ipp32s* pDst, int height, int scaleFactor))
|
|
|
|
IPPAPI(IppStatus, ippsMatVecMul_32s_D2Sfs,(const Ipp32s* pMatr, int step, const Ipp32s* pSrc, int width,
|
|
Ipp32s* pDst, int height, int scaleFactor))
|
|
|
|
IPPAPI(IppStatus, ippsMatVecMul_32f_D2,(const Ipp32f* pMatr, int step, const Ipp32f* pSrc, int width,
|
|
Ipp32f* pDst, int height))
|
|
|
|
IPPAPI(IppStatus, ippsMatVecMul_16s_D2LSfs,(const Ipp16s** mMatr, const Ipp16s* pSrc, int width,
|
|
Ipp16s* pDst, int height, int scaleFactor))
|
|
|
|
IPPAPI(IppStatus, ippsMatVecMul_16s32s_D2LSfs,(const Ipp16s** mMatr, const Ipp16s* pSrc, int width,
|
|
Ipp32s* pDst, int height, int scaleFactor))
|
|
|
|
IPPAPI(IppStatus, ippsMatVecMul_32s_D2LSfs,(const Ipp32s** mMatr, const Ipp32s* pSrc, int width,
|
|
Ipp32s* pDst, int height, int scaleFactor))
|
|
|
|
IPPAPI(IppStatus, ippsMatVecMul_32f_D2L,(const Ipp32f** mMatr, const Ipp32f* pSrc, int width,
|
|
Ipp32f* pDst, int height))
|
|
|
|
|
|
/* /////////////////////////////////////////////////////////////////////////////
|
|
// Name: ippsVecMatMul
|
|
// Purpose: Multiplies vector by matrix
|
|
// Arguments:
|
|
// pSrc Pointer to the input vector [height].
|
|
// pMatr Pointer to the input matrix [height*step].
|
|
// mMatr Pointer to the input matrix [height][width].
|
|
// step Row step in pMatr vector (in pMatr elements).
|
|
// width Length of the input vector and input matrix rows
|
|
// height Number of rows in the input matrix and the length of the result vector.
|
|
// Return Value
|
|
// ippStsNoErr Indicates no error.
|
|
// ippStsNullPtrErr Indicates an error when the pSrc, pMatr, mMatr pointer is null.
|
|
// ippStsSizeErr Indicates an error when width or height is less than or equal to 0
|
|
*/
|
|
IPPAPI(IppStatus, ippsVecMatMul_16s_D2Sfs,(const Ipp16s* pSrc, const Ipp16s* pMatr, int step, int height,
|
|
Ipp16s* pDst, int width, int scaleFactor))
|
|
|
|
IPPAPI(IppStatus, ippsVecMatMul_16s32s_D2Sfs,(const Ipp16s* pSrc, const Ipp16s* pMatr, int step, int height,
|
|
Ipp32s* pDst, int width, int scaleFactor))
|
|
|
|
IPPAPI(IppStatus, ippsVecMatMul_32s_D2Sfs,(const Ipp32s* pSrc, const Ipp32s* pMatr, int step, int height,
|
|
Ipp32s* pDst, int width, int scaleFactor))
|
|
|
|
IPPAPI(IppStatus, ippsVecMatMul_32f_D2,(const Ipp32f* pSrc, const Ipp32f* pMatr, int step, int height,
|
|
Ipp32f* pDst, int width))
|
|
|
|
IPPAPI(IppStatus, ippsVecMatMul_16s_D2LSfs,(const Ipp16s* pSrc, const Ipp16s** mMatr, int height,
|
|
Ipp16s* pDst, int width, int scaleFactor))
|
|
|
|
IPPAPI(IppStatus, ippsVecMatMul_16s32s_D2LSfs,(const Ipp16s* pSrc, const Ipp16s** mMatr, int height,
|
|
Ipp32s* pDst, int width, int scaleFactor))
|
|
|
|
IPPAPI(IppStatus, ippsVecMatMul_32s_D2LSfs,(const Ipp32s* pSrc, const Ipp32s** mMatr, int height,
|
|
Ipp32s* pDst, int width, int scaleFactor))
|
|
|
|
IPPAPI(IppStatus, ippsVecMatMul_32f_D2L,(const Ipp32f* pSrc, const Ipp32f** mMatr, int height,
|
|
Ipp32f* pDst, int width))
|
|
|
|
/* /////////////////////////////////////////////////////////////////////////////
|
|
// Name: ippsVADGetBufSize_Aurora
|
|
// Purpose: Queries the memory size for VAD decision
|
|
// Arguments:
|
|
// pSize Pointer to the output value of the memory size needed for VAD decision
|
|
//
|
|
// Return Value
|
|
// ippStsNoErr Indicates no error.
|
|
// ippStsNullPtrErr Indicates an error when the pSize pointer is null.
|
|
*/
|
|
|
|
IPPAPI(IppStatus, ippsVADGetBufSize_Aurora_32f,(Ipp32s* pSize))
|
|
IPPAPI(IppStatus, ippsVADGetBufSize_Aurora_16s,(Ipp32s* pSize))
|
|
|
|
/* /////////////////////////////////////////////////////////////////////////////
|
|
// Name: ippsVADInit_Aurora
|
|
// Purpose: Initializes VAD decision process
|
|
// Arguments:
|
|
// pVADmem Pointer to the VAD decision memory
|
|
// Return Value
|
|
// ippStsNoErr Indicates no error.
|
|
// ippStsNullPtrErr Indicates an error when the pVADmem pointer is null.
|
|
*/
|
|
|
|
IPPAPI(IppStatus, ippsVADInit_Aurora_32f,(Ipp8u* pVADmem))
|
|
IPPAPI(IppStatus, ippsVADInit_Aurora_16s,(Ipp8u* pVADmem))
|
|
|
|
/* /////////////////////////////////////////////////////////////////////////////
|
|
// Name: ippsVADDecision_Aurora
|
|
// Purpose: Takes VAD decision for the input data
|
|
// Arguments:
|
|
// pCoeff Pointer to the input vector of Mel-warped Wiener filter coefficients [25].
|
|
// pTrans Pointer to the input vector of Wiener filter transfer function [64].
|
|
// nbSpeechFrame Speech frame hangover counter
|
|
// res VAD decision (1 for if voice detected, 0 otherwise).
|
|
// pVADmem Pointer to the VAD decision memory
|
|
// Return Value
|
|
// ippStsNoErr Indicates no error.
|
|
// ippStsNullPtrErr Indicates an error when the pVADmem pointer is null.
|
|
*/
|
|
|
|
IPPAPI(IppStatus, ippsVADDecision_Aurora_32f,(const Ipp32f* pCoeff, const Ipp32f* pTrans,
|
|
int nbSpeechFrame, IppVADDecision_Aurora *pRes, Ipp8u* pVADmem))
|
|
IPPAPI(IppStatus, ippsVADDecision_Aurora_16s,(const Ipp16s* pCoeff, const Ipp16s* pTrans,
|
|
int nbSpeechFrame, IppVADDecision_Aurora *pRes, Ipp8u* pVADmem))
|
|
|
|
|
|
/* /////////////////////////////////////////////////////////////////////////////
|
|
// Name: ippsVADFlush_Aurora
|
|
// Purpose: Takes VAD decision for the input data
|
|
// Arguments:
|
|
// pRes VAD decision (1 for if voice detected, 0 otherwise).
|
|
// pVADmem Pointer to the VAD decision memory
|
|
// Return Value
|
|
// ippStsNoErr Indicates no error.
|
|
// ippStsNullPtrErr Indicates an error when the pVADmem, pRes pointer is null.
|
|
*/
|
|
|
|
IPPAPI(IppStatus, ippsVADFlush_Aurora_32f,(IppVADDecision_Aurora *pRes, Ipp8u* pVADmem))
|
|
IPPAPI(IppStatus, ippsVADFlush_Aurora_16s,(IppVADDecision_Aurora *pRes, Ipp8u* pVADmem))
|
|
|
|
|
|
/* /////////////////////////////////////////////////////////////////////////////
|
|
// Name: ippsResamplePolyphaseFree
|
|
// Purpose: Free structure for data resampling
|
|
// Arguments:
|
|
// pSpec The pointer to the resampling state structure
|
|
//
|
|
// Return Value
|
|
// ippStsNoErr Indicates no error.
|
|
// ippStsNullPtrErr Indicates an error when the pSpec pointer is null.
|
|
*/
|
|
|
|
IPPAPI(IppStatus, ippsResamplePolyphaseFree_16s,(IppsResamplingPolyphase_16s* pSpec))
|
|
|
|
IPPAPI(IppStatus, ippsResamplePolyphaseFree_32f,(IppsResamplingPolyphase_32f* pSpec))
|
|
|
|
IPPAPI(IppStatus, ippsResamplePolyphaseFixedFree_16s,(IppsResamplingPolyphaseFixed_16s* pSpec))
|
|
|
|
IPPAPI(IppStatus, ippsResamplePolyphaseFixedFree_32f,(IppsResamplingPolyphaseFixed_32f* pSpec))
|
|
|
|
|
|
|
|
/* /////////////////////////////////////////////////////////////////////////////
|
|
// Name: ippsResamplePolyphaseInitAlloc
|
|
// Purpose: Initialize structure for data resampling
|
|
// Arguments:
|
|
// pSpec The pointer to the resampling state structure
|
|
// window The size of the ideal lowpass filter window.
|
|
// nStep The discretization step for filter coefficients
|
|
// rollf The roll-off frequency of the filter.
|
|
// alpha The parameter of the Kaiser window.
|
|
// width Length of the input vector and input matrix rows
|
|
// inRate The input rate for resampling with fixed factor.
|
|
// outRate The output rate for resampling with fixed factor.
|
|
// len The filter length for resampling with fixed factor.
|
|
// pSpec The pointer to the resampling state structure to be created.
|
|
// hint Suggests using specific code. The values for the hint argument are described in "Flag and Hint Arguments"
|
|
//
|
|
//
|
|
// Return Value
|
|
// ippStsNoErr Indicates no error.
|
|
// ippStsNullPtrErr Indicates an error when pSpec is NULL.
|
|
// ippStsSizeErr Indicates an error when inRate, outRate, nStep or len is less than or equal to 0.
|
|
// ippStsBadArgErr Indicates an error when rollf is less than or equal to 0 or is greater than 1 or if alpha is less than 1 or if window is less than 2/nStep.
|
|
// ippStsMemAllocErr Indicates a memory allocation error.
|
|
*/
|
|
|
|
IPPAPI(IppStatus, ippsResamplePolyphaseInitAlloc_16s,(IppsResamplingPolyphase_16s** pState, Ipp32f window,
|
|
int nStep, Ipp32f rollf, Ipp32f alpha,
|
|
IppHintAlgorithm hint))
|
|
|
|
IPPAPI(IppStatus, ippsResamplePolyphaseInitAlloc_32f,(IppsResamplingPolyphase_32f** pState, Ipp32f window,
|
|
int nStep, Ipp32f rollf, Ipp32f alpha,
|
|
IppHintAlgorithm hint))
|
|
|
|
IPPAPI(IppStatus, ippsResamplePolyphaseFixedInitAlloc_16s,(IppsResamplingPolyphaseFixed_16s** pState, int inRate,
|
|
int outRate, int len, Ipp32f rollf, Ipp32f alpha,
|
|
IppHintAlgorithm hint))
|
|
|
|
IPPAPI(IppStatus, ippsResamplePolyphaseFixedInitAlloc_32f,(IppsResamplingPolyphaseFixed_32f** pState, int inRate,
|
|
int outRate, int len, Ipp32f rollf, Ipp32f alpha,
|
|
IppHintAlgorithm hint))
|
|
|
|
|
|
/* /////////////////////////////////////////////////////////////////////////////
|
|
// Name: ippsResamplePolyphase
|
|
// Purpose: Resample input data
|
|
// Arguments:
|
|
// pSpec The pointer to the resampling state structure.
|
|
// pSrc The pointer to the input vector.
|
|
// pDst The pointer to the output vector.
|
|
// len The number of input vector elements to resample.
|
|
// norm The norming factor for output samples.
|
|
// factor The resampling factor.
|
|
// pTime The pointer to the start time of resampling (in input vector elements).
|
|
// pOutlen The number of calculated output vector elements
|
|
// Return Value
|
|
// ippStsNoErr Indicates no error.
|
|
// ippStsNullPtrErr Indicates an error when pSpec, pSrc, pDst, pTime or pOutlen is NULL.
|
|
// ippStsSizeErr Indicates an error when len is less than or equal to 0.
|
|
// ippStsBadArgErr Indicates an error when factor is less than or equal to.
|
|
*/
|
|
|
|
IPPAPI(IppStatus, ippsResamplePolyphase_16s,(const IppsResamplingPolyphase_16s *pState, const Ipp16s *pSrc, int len,
|
|
Ipp16s *pDst, Ipp64f factor, Ipp32f norm, Ipp64f *pTime,
|
|
int *pOutlen))
|
|
|
|
IPPAPI(IppStatus, ippsResamplePolyphase_32f,(const IppsResamplingPolyphase_32f *pState, const Ipp32f *pSrc, int len,
|
|
Ipp32f *pDst, Ipp64f factor, Ipp32f norm, Ipp64f *pTime,
|
|
int *pOutlen))
|
|
|
|
IPPAPI(IppStatus, ippsResamplePolyphaseFixed_16s,(const IppsResamplingPolyphaseFixed_16s *pState,
|
|
const Ipp16s *pSrc, int len, Ipp16s *pDst,
|
|
Ipp32f norm, Ipp64f *pTime, int *pOutlen))
|
|
|
|
IPPAPI(IppStatus, ippsResamplePolyphaseFixed_32f,(const IppsResamplingPolyphaseFixed_32f *pState,
|
|
const Ipp32f *pSrc, int len, Ipp32f *pDst,
|
|
Ipp32f norm, Ipp64f *pTime, int *pOutlen))
|
|
|
|
/* /////////////////////////////////////////////////////////////////////////////
|
|
// Name: ippsResamplePolyphaseFixedGetSize
|
|
// Purpose: Determines the size required for the ResamplePolyphaseFixed_*
|
|
// Arguments:
|
|
// inRate The input rate for resampling with fixed factor.
|
|
// outRate The output rate for resampling with fixed factor.
|
|
// len The filter length for resampling with fixed factor.
|
|
// pSize Required size in bytes
|
|
// pLen Filter len
|
|
// pHeight Number of filter
|
|
// hint Suggests using specific code. The values for the hint argument are described in "Flag and Hint Arguments"
|
|
//
|
|
// Return Value
|
|
// ippStsNoErr Indicates no error.
|
|
// ippStsNullPtrErr Indicates an error when pSize, pLen or pHeight are NULL.
|
|
// ippStsSizeErr Indicates an error when inRate, outRate or len is less than or equal to 0.
|
|
*/
|
|
IPPAPI(IppStatus, ippsResamplePolyphaseFixedGetSize_16s,(int inRate, int outRate, int
|
|
len, int* pSize, int* pLen, int* pHeight, IppHintAlgorithm hint))
|
|
|
|
IPPAPI(IppStatus, ippsResamplePolyphaseFixedGetSize_32f,(int inRate, int outRate, int
|
|
len, int* pSize, int* pLen, int* pHeight, IppHintAlgorithm hint))
|
|
|
|
|
|
/* /////////////////////////////////////////////////////////////////////////////
|
|
// Name: ippsResamplePolyphaseFixedInit
|
|
// Purpose: Initializes ResamplePolyphaseFixed_* structures
|
|
// Arguments:
|
|
// pSpec The pointer to the resampling state structure to be created.
|
|
// inRate The input rate for resampling with fixed factor.
|
|
// outRate The output rate for resampling with fixed factor.
|
|
// len The filter length for resampling with fixed factor.
|
|
// hint Suggests using specific code. The values for the hint argument are described in "Flag and Hint Arguments"
|
|
// Return Value
|
|
// ippStsNoErr Indicates no error.
|
|
// ippStsNullPtrErr Indicates an error when pSpec is NULL.
|
|
// ippStsSizeErr Indicates an error when inRate, outRate or len is less than or equal to 0.
|
|
//
|
|
*/
|
|
IPPAPI(IppStatus, ippsResamplePolyphaseFixedInit_16s,(IppsResamplingPolyphaseFixed_16s* pSpec,
|
|
int inRate, int outRate, int len, IppHintAlgorithm hint))
|
|
|
|
IPPAPI(IppStatus, ippsResamplePolyphaseFixedInit_32f,(IppsResamplingPolyphaseFixed_32f* pSpec,
|
|
int inRate, int outRate, int len, IppHintAlgorithm hint))
|
|
|
|
|
|
/* /////////////////////////////////////////////////////////////////////////////
|
|
// Name: ippsResamplePolyphaseSetFixedFilter
|
|
// Purpose: Set filter coefficient
|
|
// Arguments:
|
|
// pSpec The pointer to the resampling state structure to be created.
|
|
// pSrc Input vector of filter coefficients [height][step]
|
|
// step Lenght of filter
|
|
// height Number of filter
|
|
// Return Value
|
|
// ippStsNoErr Indicates no error.
|
|
// ippStsNullPtrErr Indicates an error when pSpec or pSrc are NULL.
|
|
// ippStsSizeErr Indicates an error when step or height is less than or equal to 0.
|
|
*/
|
|
IPPAPI(IppStatus, ippsResamplePolyphaseSetFixedFilter_16s,(IppsResamplingPolyphaseFixed_16s* pSpec,
|
|
const Ipp16s* pSrc, int step, int height))
|
|
|
|
IPPAPI(IppStatus, ippsResamplePolyphaseSetFixedFilter_32f,(IppsResamplingPolyphaseFixed_32f* pSpec,
|
|
const Ipp32f* pSrc, int step, int height))
|
|
|
|
/* /////////////////////////////////////////////////////////////////////////////
|
|
// Name: ippsResamplePolyphaseGetFixedFilter
|
|
// Purpose: Get filter coefficient
|
|
// Arguments:
|
|
// pSpec The pointer to the resampling state structure to be created.
|
|
// pDst Input vector of filter coefficients [height][step]
|
|
// step Lenght of filter
|
|
// height Number of filter
|
|
// Return Value
|
|
// ippStsNoErr Indicates no error.
|
|
// ippStsNullPtrErr Indicates an error when pSpec or pSrc are NULL.
|
|
// ippStsSizeErr Indicates an error when step or height is less than or equal to 0.
|
|
*/
|
|
IPPAPI(IppStatus, ippsResamplePolyphaseGetFixedFilter_16s,(IppsResamplingPolyphaseFixed_16s* pSpec,
|
|
Ipp16s* pDst, int step, int height))
|
|
|
|
|
|
IPPAPI(IppStatus, ippsResamplePolyphaseGetFixedFilter_32f,(IppsResamplingPolyphaseFixed_32f* pSpec,
|
|
Ipp32f* pDst, int step, int height))
|
|
|
|
|
|
/* /////////////////////////////////////////////////////////////////////////////
|
|
// Definitions for Audio Toolkit functions
|
|
///////////////////////////////////////////////////////////////////////////// */
|
|
#if !defined( _OWN_BLDPCS )
|
|
|
|
struct MCRAState;
|
|
typedef struct MCRAState IppMCRAState;
|
|
struct MCRAState32f;
|
|
typedef struct MCRAState32f IppMCRAState32f;
|
|
|
|
#endif /* _OWN_BLDPCS */
|
|
|
|
/* /////////////////////////////////////////////////////////////////////////////
|
|
// Definitions of Audio Toolkit functions
|
|
///////////////////////////////////////////////////////////////////////////// */
|
|
|
|
/* /////////////////////////////////////////////////////////////////////////////
|
|
// Name: ippsFilterUpdateEMNS
|
|
// Purpose: Calculates the Ephraim-Malah noise suppression filter coefficients
|
|
//
|
|
// H(k) = (0.5 * sqrt(pi * W(k) * Rp(k)) * M(W(k)*Rp(k))) / Rp(k)
|
|
// where,
|
|
// k : frequency bin index
|
|
// W : Wiener filter coefficients
|
|
// Rp : posterior SNR
|
|
// M(T) : exp(-T/2) * [(1+T)*I0(T/2) + T*I1(T/2)]
|
|
// where,
|
|
// I0, I1 : are modified Bessel functions of order 0 and 1 respectively
|
|
// In here, for better performance in fix-point implement, Original Ephraim-Malah
|
|
// filter weights formula have been reformed as fellow:
|
|
// H(k) = W(k) * M'(W(k)*Rp(k)))
|
|
// M'(T) = 0.5 * sqrt(pi/T) * exp(-T/2) * [(1+T)*I0(T/2) + T*I1(T/2)]
|
|
// By the new Ephraim-Malah filter weights formula, the division operation has been
|
|
// removed.
|
|
// M'(T) have been fix-point realized by (T is thetaQ22 in code):
|
|
// 1) Use table look-up for small value (T< 2^(-15)) to achieve high precision
|
|
// 2) Set exponential increasing band ( From 2^i to 2^(i+1) ) to keep near same
|
|
// precision in each band. Total 24 bands used in code.
|
|
// 3) Use dynamic Q value for parameter P1 and P2 to keep high precision. P1, P2
|
|
// and P0 are used in the formula of two-order polynomial approximations:
|
|
// f(x) = P0 + P1 * x + P2 * x^2
|
|
// The value of P0, P1 & P2 have been recorded in table P0_2_32SQ22, P1_2_32SQ5i
|
|
// and P2_2_32SQi4. The Q value of P1 is (i+5), The Q value of P2 is (i-4),
|
|
// i is the index of band (i from 0 to 23). The representation of P0 is fixed
|
|
// at Q22 for all segments
|
|
// Arguments:
|
|
// pSrcWienerCoefsQ31 - pointer to a real-valued vector containing the Q31 format
|
|
// Wiener filter coefficients.
|
|
// pSrcPostSNR - pointer to a real-valued vector containing an estimate of
|
|
// the a posteriori signal to noise ratio.
|
|
// len - number of elements contained in input and output vectors.
|
|
// pDstFilterCoefsQ31 - pointer to a real-valued vector containing the Q31 format
|
|
// filter coefficients.
|
|
//
|
|
// Returns: ippStsNoErr - No Error.
|
|
// ippStsNullPtrErr - pSrcWienerCoefsQ31, pSrcPostSNRQ15 or pDstFilterCoefsQ31 is null.
|
|
// ippStsLengthErr - len is out of range.
|
|
//
|
|
// Notes:
|
|
*/
|
|
IPPAPI(IppStatus, ippsFilterUpdateEMNS_32s,(const Ipp32s *pSrcWienerCoefsQ31,
|
|
const Ipp32s *pSrcPostSNRQ15, Ipp32s *pDstFilterCoefsQ31, int len))
|
|
IPPAPI(IppStatus, ippsFilterUpdateEMNS_32f,(const Ipp32f *pSrcWienerCoefs,
|
|
const Ipp32f *pSrcPostSNR, Ipp32f *pDstFilterCoefs, int len))
|
|
|
|
|
|
/* /////////////////////////////////////////////////////////////////////////////
|
|
// Name: ippsFilterUpdateWiener
|
|
// Purpose: Calculates Wiener filter coefficients.
|
|
// W(k) = 1 / (1 + 1/R(k))
|
|
//
|
|
// with a piecewise uniform quantization table. The table is
|
|
// designed such that finer quantization steps are taken for
|
|
// smaller values where the function is more sensitive and large
|
|
// steps are taken for large values where the function is fairly
|
|
// flat. The table is divided into segments defined by
|
|
//
|
|
// 0 <= r < 2^WienerSegmentBitOffset[1]
|
|
// 2^WienerSegmentBitOffset[1] <= r < 2^WienerSegmentBitOffset[2]
|
|
// 2^WienerSegmentBitOffset[2] <= r < 2^WienerSegmentBitOffset[3]
|
|
// 2^WienerSegmentBitOffset[3] <= r
|
|
//
|
|
// where r represents an entry of the input vector. The number
|
|
// of table entries in segment i of the table is
|
|
//
|
|
// 2^(WienerSegmentBitOffset[i+1] - WienerSegmentBitOffset[i]).
|
|
//
|
|
// Therefore, if an input pSrcPriorSNRQ15[k] falls into segment i
|
|
// of the table then the index into the table segment is simply
|
|
//
|
|
// pSrcPriorSNRQ15[k] / 2^WienerSegmentBitOffset[i]
|
|
//
|
|
// A segment offset (e.g., TABLESEG0) is provided for each segment
|
|
// of the table. It may be added to the above result to find the
|
|
// offset from the beginning of the table. Within a segment, the
|
|
// table entries were created by uniform quantization. Since the
|
|
// function is flat for large values, it it represented by a
|
|
// constant in the final segment.
|
|
// Input Arguments: pSrcPriorSNRQ15 - pointer to the a priori SNR vector
|
|
// in Q15 (x/32768) format.
|
|
// len - number of elements contained in input vector.
|
|
//
|
|
// Output Arguments: pDstFilterCoefsQ31 - pointer to the output vector
|
|
// in Q31 format.
|
|
//
|
|
// Returns:
|
|
// IppStsNoErr - No Error
|
|
// IppStsBadArgErr - Bad Arguments
|
|
//
|
|
// Notes: none
|
|
//
|
|
*/
|
|
IPPAPI( IppStatus, ippsFilterUpdateWiener_32s,(const Ipp32s *pSrcPriorSNRQ15,
|
|
Ipp32s *pDstFilterCoefsQ31, int len))
|
|
|
|
IPPAPI( IppStatus, ippsFilterUpdateWiener_32f,(const Ipp32f *pSrcPriorSNR,
|
|
Ipp32f *pDstFilterCoefs, int len) )
|
|
/* /////////////////////////////////////////////////////////////////////////////
|
|
// Name: ippsGetSizeMCRA
|
|
// Purpose: Returns the size of memory for noise PSD estimator
|
|
//
|
|
// Arguments:
|
|
// nFFTSize - number of elements contained in the input FFT.
|
|
// pDstSize - pointer to the state structure.
|
|
//
|
|
// Returns:
|
|
// IppStsNoErr - No Error
|
|
// IppStsBadArgErr - Bad Arguments
|
|
//
|
|
// Notes: none
|
|
//
|
|
*/
|
|
IPPAPI( IppStatus, ippsGetSizeMCRA_32s,(int nFFTSize, int *pDstSize) )
|
|
|
|
IPPAPI( IppStatus, ippsGetSizeMCRA_32f,(int nFFTSize, int *pDstSize) )
|
|
|
|
|
|
/* /////////////////////////////////////////////////////////////////////////////
|
|
// Name: ippsInitMCRA
|
|
// Purpose: Initializes the noise PSD estimator
|
|
// See page 14 of "Noise Estimation by Minima
|
|
// Controlled Recursive Averaging for Robust Speech Enhancement"
|
|
// by I. Cohen and B. Berdugo, IEEE Signal Proc. Letters, Vol. 9,
|
|
// No. 1, Jan. 2002, pp. 12-15. Since the authors only established
|
|
// parameters for a sample rate Fs of 16000 Hz and a block update of
|
|
// 8 msec (M == 64 samples), it was necessary to derive equations
|
|
// to support arbitrary sample rate and block update. These
|
|
// equations are given in the comments below.
|
|
// Arguments:
|
|
// nSamplesPerSec - input sample rate.
|
|
// nFFTSize - number of elements contained in the input FFT.
|
|
// pDst - pointer to the state structure.
|
|
// Returns:
|
|
// IppStsNoErr - No Error
|
|
// IppStsBadArgErr - Bad Arguments
|
|
//
|
|
// Notes: This function must be kept in synch with the definition of the
|
|
// IppMCRAState. Memory pointers are assigned according to the order
|
|
// in the structure.
|
|
//
|
|
*/
|
|
IPPAPI( IppStatus, ippsInitMCRA_32s,(int nSamplesPerSec, int nFFTSize,
|
|
IppMCRAState *pDst) )
|
|
|
|
IPPAPI( IppStatus, ippsInitMCRA_32f,(int nSamplesPerSec, int nFFTSize,
|
|
IppMCRAState32f *pDst) )
|
|
|
|
/* /////////////////////////////////////////////////////////////////////////////
|
|
// Name: ippsAltInitMCRA
|
|
// Purpose: Initializes alternative noise PSD estimator
|
|
//
|
|
// Arguments:
|
|
// nSamplesPerSec - input sample rate.
|
|
// nFFTSize - number of elements contained in the input FFT.
|
|
// nUpdateSamples - number of new samples per frame
|
|
// pDst - pointer to the state structure.
|
|
//
|
|
// Returns:
|
|
// IppStsNoErr - No Error
|
|
// IppStsBadArgErr - Bad Arguments
|
|
//
|
|
// Notes: This function is a candidate to replace ippsInitMCRA_32s. It provides
|
|
// an added degree of flexibility so that the state can be initialized
|
|
// properly when zero padding is used to support frame sizes that are
|
|
// less than nFFTSize/2.
|
|
// This function must be kept in synch with the definition of the
|
|
// IppMCRAState. Memory pointers are assigned according to the order
|
|
// in the structure.
|
|
//
|
|
*/
|
|
|
|
IPPAPI( IppStatus, ippsAltInitMCRA_32s,(int nSamplesPerSec,
|
|
int nFFTSize,
|
|
int nUpdateSamples,
|
|
IppMCRAState *pDst) )
|
|
|
|
IPPAPI( IppStatus, ippsAltInitMCRA_32f,(int nSamplesPerSec,
|
|
int nFFTSize,
|
|
int nUpdateSamples,
|
|
IppMCRAState32f *pDst) )
|
|
|
|
|
|
/* /////////////////////////////////////////////////////////////////////////////
|
|
// Name: ippsUpdateNoisePSDMCRA
|
|
// Purpose: Estimates the noise power spectral density
|
|
// using the "Minima Controlled Recursive Averaging" method. See
|
|
// "Noise Estimation by Minima Controlled Recursive Averaging for
|
|
// Robust Speech Enhancement" by I. Cohen and B. Berdugo, IEEE
|
|
// Signal Proc. Letters, Vol. 9, No. 1, Jan. 2002, pp. 12-15. To
|
|
// relate this source code to the paper, the following table may
|
|
// be helpful:
|
|
//
|
|
// Paper Eqn Source Code
|
|
// ===== === ===========
|
|
// |Y(k,l)|^2 4 pSrcNoisySpeech[k]
|
|
// lambdahat_d(k,l) 4 pSrcDstNoisePSD[k] (input)
|
|
// lambdahat_d(k,l+1) 4 pSrcDstNoisePSD[k] (output)
|
|
// alpha_d 4 pSrcDstState->alphaDQ31
|
|
// alphatilde_d(k,l) 4 alphaTildeDQ31
|
|
// S(k,l-1) 7 pSrcDstState->pS[k] (input)
|
|
// S(k,l) 7 pSrcDstState->pS[k] (output)
|
|
// alpha_s 7 pSrcDstState->alphaSQ31
|
|
// S_min(k,l-1) 8 pSrcDstState->pSmin[k] (input)
|
|
// S_min(k,l) 8 pSrcDstState->pSmin[k] (output)
|
|
// S_tmp(k,l-1) 9 pSrcDstState->pStmp[k] (input)
|
|
// S_tmp(k,l) 9 pSrcDstState->pStmp[k] (output)
|
|
// phatprime(k,l-1) 14 pSrcDstState->pPprimeQ31[k] (input)
|
|
// phatprime(k,l) 14 pSrcDstState->pPprimeQ31[k] (output)
|
|
// alpha_p 14 pSrcDstState->alphaPQ31
|
|
//
|
|
// Arguments:
|
|
// pSrcNoisySpeech - pointer to the magnitude squared of the FFT of the noisy speech.
|
|
// pSrcDstState - state structure.
|
|
// pSrcDstNoisePSD - pointer to the input noise PSD vector.
|
|
//
|
|
// pSrcDstState - updated state structure.
|
|
// pSrcDstNoisePSD - pointer to the output noise PSD vector.
|
|
//
|
|
// Returns:
|
|
// IppStsNoErr - No Error
|
|
// IppStsBadArgErr - Bad Arguments
|
|
//
|
|
// Notes: For reasonable signal levels, the pSrcNoisySpeech and pSrcDstNoisePSD
|
|
// values will need to be scaled by 2^31 during the mag-squaring
|
|
// procedure.
|
|
//
|
|
*/
|
|
IPPAPI( IppStatus, ippsUpdateNoisePSDMCRA_32s_I, (const Ipp32s *pSrcNoisySpeech,
|
|
IppMCRAState *pSrcDstState, Ipp32s *pSrcDstNoisePSD))
|
|
|
|
IPPAPI( IppStatus, ippsUpdateNoisePSDMCRA_32f_I, (const Ipp32f *pSrcNoisySpeech,
|
|
IppMCRAState32f *pSrcDstState, Ipp32f *pSrcDstNoisePSD) )
|
|
|
|
/* /////////////////////////////////////////////////////////////////////////////
|
|
// Name: ippsFindPeaks
|
|
// Purpose: Identifies the peaks in the input vector,
|
|
// places a one in the output vector at the locations of the peaks
|
|
// and places a zero elsewhere. A peak is defined as a point pSrc[i]
|
|
// such that - pSrc[i-L] < pSrc[i-L+1] <...< pSrc[i] > pSrc[i+1] > ...> pSrc[i+L]
|
|
// where L is the size of the search.
|
|
// If movingAvgSize (M) is greater than 0, the input vector is smoothed
|
|
// before peaks are selected -
|
|
// pSrc[i] = (1/(2M+1)) {pSrc[i-M] + pSrc[i-M+1] + ... + pSrc[i] + pSrc[i+1]+
|
|
// ...+ pSrc[i+M] }
|
|
// Arguments:
|
|
// pSrc - pointer to the input vector
|
|
// len - number of elements contained in the input and output vectors
|
|
// searchSize - number of elements on either side to consider when peak picking
|
|
// movingAvgSize - width of the moving average window applied before peak picking
|
|
// pDstPeaks - pointer to the output vector
|
|
//
|
|
// Returns: ippStsNoErr - No Error.
|
|
// ippStsBadArgErr - Bad Arguments.
|
|
// ippStsSizeErr - Error: search window greater than the internal
|
|
// buffer that holds smoothed values
|
|
//
|
|
// Notes: Search the input vector. Calculate each number of the successive ascending elements
|
|
// and the successive descending elements. If both the number of successive ascending
|
|
// elements and the number of successive descending elements are greater than searchSize,
|
|
// then, one peak was found.
|
|
*/
|
|
IPPAPI(IppStatus, ippsFindPeaks_32s8u,(const Ipp32s *pSrc, Ipp8u *pDstPeaks,
|
|
int len, int searchSize, int movingAvgSize))
|
|
|
|
IPPAPI(IppStatus, ippsFindPeaks_32f8u,(const Ipp32f *pSrc, Ipp8u *pDstPeaks,
|
|
int len, int searchSize, int movingAvgSize))
|
|
|
|
/* /////////////////////////////////////////////////////////////////////////////
|
|
// Name: ippsPeriodicityLSPE
|
|
// Purpose: Estimates the periodicity and period of the input frame.
|
|
// The core algorithm used is the least-squares periodicity estimator as
|
|
// described in Section 4.1 of the paper:
|
|
// R.Tucker,"Voice activity etection using a periodicity measure",
|
|
// IEEE Proceedings-I Vol. 139, No. 4, August 1992
|
|
//
|
|
// The approach is to compute the normalized periodicity measure (R1) for
|
|
// all values of possible pitch periods in samples (Pmin <= P0 <= Pmax). The
|
|
// maximum value of R1 obtained is the estimated periodicity of the input frame
|
|
// and the corresponding period (P0) is the pitch period in samples of the input frame.
|
|
//
|
|
// The correspondence of the notation used in the paper to that used in
|
|
// this function is as follows:
|
|
// Paper Equation Source code
|
|
// ----- -------- -----------
|
|
// s 3, 4, 5 pSrc
|
|
// Pmin 2 minPeriod
|
|
// Pmax 2 maxPeriod
|
|
// P0 3, 4, 5 p
|
|
// I0 3, 5 i0
|
|
// I1 3, 4 i1
|
|
// R1 3 periodicityQ15
|
|
// K0 4, 5 n
|
|
//
|
|
// Arguments:
|
|
// pSrc - pointer to the input vector containing non-negative entries
|
|
// (assumed input is energy values for time-domain signal.
|
|
// len - number of elements contained in the input vector
|
|
// maxPeriod - maximum pitch period (in samples) to search
|
|
// minPeriod - minimum pitch period (in samples) to search
|
|
//
|
|
// periodicityQ15 - normalized sum of the largest harmonic sampling
|
|
// period - period in sample that provided the maximum-energy harmonic
|
|
// Returns: ippStsNoErr - No Error.
|
|
// ippStsBadArgErr - Bad Arguments.
|
|
//
|
|
// Notes: none
|
|
*/
|
|
IPPAPI(IppStatus, ippsPeriodicityLSPE_16s,(const Ipp16s *pSrc, int len,
|
|
Ipp16s *periodicityQ15, int *period, int maxPeriod, int minPeriod))
|
|
|
|
IPPAPI(IppStatus, ippsPeriodicityLSPE_32f,(const Ipp32f *pSrc, int len,
|
|
Ipp32f *periodicity, int *period, int maxPeriod, int minPeriod))
|
|
|
|
|
|
/* /////////////////////////////////////////////////////////////////////////////
|
|
// Name: ippsPeriodicity
|
|
// Purpose: Computes the periodicity of the input vector. In typical
|
|
// applications, the input vector is the magnitude-squared of the discrete Fourier
|
|
// transform of speech. The periodicity is defined as the periodic sampling of the
|
|
// input vector that preserves the most energy.
|
|
//
|
|
// The period is defined as P such that
|
|
// P = argmax_(p) sum_n[ x(b + np) ]/N
|
|
// where Pmin<=p<=Pmax, 0<b<p, N<=MAX_HARMONICS, 0<n<N
|
|
// N is the smaller of the number of harmonics in the input vector
|
|
// for a particular period (p) or MAX_HARMONICS
|
|
//
|
|
// Using the N,P values obtained above, the periodicity is calculated as:
|
|
// periodicity = sum_n[x(k+nP)] / sum_n2[x(n2)], 0<n<N, 0<n2<len
|
|
//
|
|
//
|
|
// Arguments:
|
|
// pSrc - pointer to the input vector containing non-negative entries
|
|
// for, e.g. magnitude spectrum values
|
|
// len - number of elements contained in the input vector
|
|
// maxPeriod - maximum period to search
|
|
// minPeriod - minimum period of search
|
|
//
|
|
// periodicityQ15 - normalized sum of the largest harmonic sampling
|
|
// period - period in sample that provided the maximum-energy harmonics
|
|
//
|
|
// Returns: ippStsNoErr - No Error.
|
|
// ippStsBadArgErr - Bad Arguments.
|
|
//
|
|
// Notes: none
|
|
*/
|
|
IPPAPI(IppStatus, ippsPeriodicity_32s16s, (const Ipp32s *pSrc, int len,
|
|
Ipp16s *periodicityQ15, int *period, int maxPeriod, int minPeriod))
|
|
|
|
IPPAPI(IppStatus, ippsPeriodicity_32f, (const Ipp32f *pSrc, int len,
|
|
Ipp32f *periodicity, int *period, int maxPeriod, int minPeriod))
|
|
|
|
|
|
/* /////////////////////////////////////////////////////////////////////////////
|
|
// Name: ippsNthMaxElement_*
|
|
// Purpose: Functions ippsNthMaxElement find N-th maximal element of
|
|
// the input vector pSrc.
|
|
// Parameters:
|
|
// pSrc Pointer to the input vector [len].
|
|
// len Number of elements in the input vector pSrc.
|
|
// N Rank of element to find.
|
|
// pRes Pointer to the value of N-th maximal element.
|
|
// Return:
|
|
// ippStsNoErr Indicates no error.
|
|
// ippStsNullPtrErr Indicates an error when pSrc or pRes is NULL.
|
|
// ippStsSizeErr Indicates an error when len is less than or equal to 0 or.
|
|
// ippStsBadArgErr Indicates an error when N is less then 0 or is greater than or equal to len.
|
|
// Notes:
|
|
*/
|
|
|
|
IPPAPI(IppStatus, ippsNthMaxElement_32s,(const Ipp32s* pSrc, int len, int N, Ipp32s* pRes))
|
|
IPPAPI(IppStatus, ippsNthMaxElement_32f,(const Ipp32f* pSrc, int len, int N, Ipp32f* pRes))
|
|
IPPAPI(IppStatus, ippsNthMaxElement_64f,(const Ipp64f* pSrc, int len, int N, Ipp64f* pRes))
|
|
|
|
|
|
|
|
|
|
|
|
/*======== End of declaration of functions ===================================*/
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#if defined (_IPP_STDCALL_CDECL)
|
|
#undef _IPP_STDCALL_CDECL
|
|
#define __stdcall __cdecl
|
|
#endif
|
|
|
|
#endif /* __IPPSR_H__ */
|
|
/* ////////////////////////// End of file "ippsr.h" ///////////////////////// */
|