Plan 9 from Bell Labs’s /usr/web/sources/contrib/cnielsen/bladeenc/l3psy.h

Copyright © 2021 Plan 9 Foundation.
Distributed under the MIT License.
Download the Plan 9 distribution.


/*
			(c) Copyright 1998-2001 - 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 ([email protected])
		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.



	------------    Changes    ------------

	2000-12-11  Andre Piotrowski

	-	reformatted

	2000-12-12  ap

	-	removed fft() prototype from "encoder.h" to this file
	-	removed the fft configuration switches from "subs.c" to this file
	-	implemented ORG_SHORT_CW_LIMIT

	2001-01-12  ap

	-	bug fix: include encoder.h for definition of ORG_BUFFERS
	-	clear some backward compatability flags for 0.93.10
*/

/**********************************************************************
 * ISO MPEG Audio Subgroup Software Simulation Group (1996)
 * ISO 13818-3 MPEG-2 Audio Encoder - Lower Sampling Frequency Extension
 *
 * $Id: l3psy.h,v 1.1 1996/02/14 04:04:23 rowlands Exp $
 *

 * $Log: l3psy.h,v $
 * Revision 1.1  1996/02/14 04:04:23  rowlands
 * Initial revision
 *
 * Received from Mike Coleman
 **********************************************************************/

#ifndef		__L3PSY__
#define 	__L3PSY__



#include	"encoder.h"





/*  ========================================================================================  */
/*              keeping backward compatability                                                */
/*  ========================================================================================  */

#define		ORG_NUMLINES_NORM		0   /* 0 = don't overwrite long numline entries with short numline entries */
#define		ORG_BLOCK_SELECT		0   /* 0 = ISO draft paper states slightly different block selection */
#define		ORG_SHORT_CW_LIMIT		0   /* 0 = ISO draft paper says first element starts at 6/4 = 1 (not 2) */





/*	#define		CBANDS					  63 */
#define		CBANDS_s				42
#define		BLKSIZE_s				256
#define		HBLKSIZE_s				129
#define		TCBMAX_l				63
#define		TCBMAX_s				42
#define		SBMAX_l					21
#define		SBMAX_s					12



/*	#define		switch_pe				1800 */
#define		NORM_TYPE				0
#define		START_TYPE				1
#define		SHORT_TYPE				2
#define		STOP_TYPE				3





void					psycho_anal
(
#if ORG_BUFFERS
	short int				*buffer,
	short int				savebuf[2048],
#else
	FLOAT					*buffer,
	int						buffer_idx,
#endif
	int						ch,
	int						lay,
/*	FLOAT					snr32[32], */
	double					ratio_d[SBMAX_l],
	double					ratio_ds[SBMAX_s][3],
	double					*pe,
	gr_info					*cod_info
);

void					psycho_anal_init (double sfreq);

void					psycho_anal_exit (void);





void					fft (FLOAT[], FLOAT[], FLOAT[], FLOAT[], int);



/*
	Switches for configuring the fft in "subs.c"
*/

/* Do we want to reorder the data? */
#define		REORDER_DATA        0   /* no need to do that */

/* To get the inverse fft, set NORMAL_FFT to 0 */
#define		NORMAL_FFT			1   /* si */

/* Try this to speed up the fft when using non-complex sequences */
#define		REAL_SEQUENCE		1   /* no complex values needed */

/* We assume, the real data gets prepacked externally */
#define		PREPACKED			1   /* yes */

/* No one needs all the phi values in layer 3 !!! */
#define		USED_VALUES_ONLY	1
#define		LONG_FFT_MIN_IDX	0
#define		LONG_FFT_MAX_IDX	5
#if ORG_SHORT_CW_LIMIT
#define		SHORT_FFT_MIN_IDX	2    /* (  6+2)/4     */
#define		SHORT_FFT_MAX_IDX	51   /* (206+2)/4 - 1 */
#else   /* according to ISO */
#define		SHORT_FFT_MIN_IDX	1    /*   6/4     */
#define		SHORT_FFT_MAX_IDX	50   /* 206/4 - 1 */
#endif





#endif		/* __L3PSY__ */

Bell Labs OSI certified Powered by Plan 9

(Return to Plan 9 Home Page)

Copyright © 2021 Plan 9 Foundation. All Rights Reserved.
Comments to [email protected].