12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- // Copyright (c) 1998-99 Relic Entertainment Inc.
- // Written by Janik Joire
- //
- // $History: $
- //
- // Version 1.6a
- #ifndef FQUANT_H
- #define FQUANT_H
- // General constants
- #define FQ_LEN 260 // Block length (bytes)
- #define FQ_SCALE 10.0F // Quantization scale
- #define FQ_EXP 6 // # of exponents
- #define FQ_FMASK 1.0F // Frequency masking factor
- #define FQ_TPMASK 2.0F // Primary time masking factor
- #define FQ_TSMASK 4.0F // Secondary time masking factor
- #define FQ_THRES aTBlock // Hearing thresholds
- #define FQ_STAT pSStream // Statistics stream
- // Scale constants
- #define FQ_SDATA aSDBlock // Scale data
- // Encoder flags
- #define FQ_ENORM 0x0000 // Normal
- #define FQ_ERESET 0x0001 // Reset exponents
- #define FQ_EMIX 0x0002 // Mix primary and secondary blocks
- // Quantization limits (# of bits)
- #define FQ_NBMAX 6 // Maximum
- #define FQ_NBMIN 1 // Minimum
- // Compression bitrates (per block)
- // Name Bits/block Kbps/channel
- #define FQ_BR176 2048 // 176
- #define FQ_BR88 1024 // 88
- #define FQ_BR44 512 // 44
- #define FQ_BR22 256 // 22
- // Critical band constants
- #define FQ_CBDATA aCBBlock // Critical band data
- #define FQ_CBNUM 27 // # of critical bands
- // Sub-band constants
- #define FQ_SBMODE 22 // # of modes
- #define FQ_SBSIZE aSBSBlock // Sub-band sizes
- #define FQ_SBDATA aSBDBlock // Sub-band data
- #define FQ_SBNUM 256 // # of sub-bands
- #ifdef __cplusplus
- extern "C" {
- #endif
- // Functions
- int fqInitQuant(FILE *pStream);
- int fqQuantBlock(char *aQBlock,float *aFPBlock,float *aFSBlock,float *aFMBlock,unsigned char *aEBlock,
- unsigned long nLen,unsigned long nRate,unsigned long nSize,int nFlags);
- int fqInitDequant(void);
- int fqDequantBlock(char *aQBlock,float *aFPBlock,float *aFSBlock,unsigned char *aEBlock,
- unsigned long nLen,unsigned long nRate,unsigned long nSize);
- int fqSPack(short nVal,unsigned long nLen,unsigned long nPos,char *aBlock);
- _inline long fqSUnpack(unsigned long nLen,unsigned long nPos,char *aBlock);
- _inline unsigned long fqUnpack(unsigned long nLen,unsigned long nPos,char *aBlock);
- int linint(float *xa,float *ya,unsigned long n,float x,float *y);
- #ifdef __cplusplus
- } // extern "C"
- #endif
- #endif // FQUANT_H
|