encoder.h
上传用户:bjsgzm
上传日期:2007-01-08
资源大小:256k
文件大小:3k
- /*
- (c) Copyright 1998, 1999 - Tord Jansson
- =======================================
- This file is part of the BladeEnc MP3 Encoder, based on
- ISO's reference code for MPEG Layer 3 compression, and might
- contain smaller or larger sections that are directly taken
- from ISO's reference code.
- All changes to the ISO reference code herein are either
- copyrighted by Tord Jansson (tord.jansson@swipnet.se)
- or sublicensed to Tord Jansson by a third party.
- BladeEnc is free software; you can redistribute this file
- and/or modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
- */
- #ifndef ENCODER_DOT_H
- #define ENCODER_DOT_H
- /***********************************************************************
- *
- * Encoder Definitions
- *
- ***********************************************************************/
- /* General Definitions */
- /* Psychacoustic Model 1 Definitions */
- #define CB_FRACTION 0.33
- #define MAX_SNR 1000
- #define NOISE 10
- #define TONE 20
- #define DBMIN -200.0
- #define LAST -1
- #define STOP -100
- #define POWERNORM 90.3090 /* = 20 * log10(32768) to normalize */
- /* max output power to 96 dB per spec */
- /* Psychoacoustic Model 2 Definitions */
- #define LOGBLKSIZE 10
- #define BLKSIZE 1024
- #define HBLKSIZE 513
- #define CBANDS 63
- #define LXMIN 32.0
- /***********************************************************************
- *
- * Encoder Type Definitions
- *
- ***********************************************************************/
- /* Psychoacoustic Model 1 Type Definitions */
- typedef int IFFT2[FFT_SIZE/2];
- typedef int IFFT[FFT_SIZE];
- typedef double D9[9];
- typedef double D10[10];
- typedef double D640[640];
- typedef double D1408[1408];
- typedef double DFFT2[FFT_SIZE/2];
- typedef double DFFT[FFT_SIZE];
- typedef double DSBL[SBLIMIT];
- typedef double D2SBL[2][SBLIMIT];
- typedef struct {
- int line;
- double bark, hear, x;
- } g_thres, *g_ptr;
- typedef struct {
- double x;
- int type, next, map;
- } mask, *mask_ptr;
- /* Psychoacoustic Model 2 Type Definitions */
- typedef int ICB[CBANDS];
- typedef int IHBLK[HBLKSIZE];
- typedef FLOAT F32[32];
- typedef FLOAT F2_32[2][32];
- typedef FLOAT FCB[CBANDS];
- typedef FLOAT FCBCB[CBANDS][CBANDS];
- typedef FLOAT FBLK[BLKSIZE];
- typedef FLOAT FHBLK[HBLKSIZE];
- typedef FLOAT F2HBLK[2][HBLKSIZE];
- typedef FLOAT F22HBLK[2][2][HBLKSIZE];
- typedef double DCB[CBANDS];
- /***********************************************************************
- *
- * Encoder Function Prototype Declarations
- *
- ***********************************************************************/
- /* The following functions are in the file "subs.c" */
- extern void fft(FLOAT[BLKSIZE], FLOAT[BLKSIZE], FLOAT[BLKSIZE],
- FLOAT[BLKSIZE], int );
- void windowFilterSubband( short * pBuffer, int k, double s[SBLIMIT] );
- void initWindowFilterSubband( void );
- #endif