📄 aac_enc_psychoacoustic_fp.h
字号:
/*//// 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) 2003-2005 Intel Corporation. All Rights Reserved.//// Intel Integrated Performance Primitives AAC Encode Sample for Windows*//// By downloading and installing this sample, you hereby agree that the// accompanying Materials are being provided to you under the terms and// conditions of the End User License Agreement for the Intel Integrated// Performance Primitives product previously accepted by you. Please refer// to the file ipplic.htm located in the root directory of your Intel IPP// product installation for more information.//// MPEG-4 and AAC are international standards promoted by ISO, IEC, ITU, ETSI// and other organizations. Implementations of these standards, or the standard// enabled platforms may require licenses from various entities, including// Intel Corporation.//*/#ifndef __PSYCHOACOUSTIC_H#define __PSYCHOACOUSTIC_H#include "ipps.h"#include "ippac.h"#include "aaccmn_const.h"#include "aac_enc.h"#include "align.h"#define MAX_PPT_SHORT 48#define MAX_PPT_LONG 72#define NUM_UNPRED_LINES_LONG 6typedef struct{ int sampling_frequency; int num_ptt; int* w_low; int* w_high; float* w_width; float* bval; float* qsthr;} sPsyPartitionTable;typedef struct{ __ALIGN float r[3][__ALIGNED(1024)]; __ALIGN float re[3][__ALIGNED(1024)]; __ALIGN float im[3][__ALIGNED(1024)]; __ALIGN float r_short[3][8][__ALIGNED(128)]; __ALIGN float re_short[3][8][__ALIGNED(128)]; __ALIGN float im_short[3][8][__ALIGNED(128)]; __ALIGN float smr_long [2][__ALIGNED(MAX_SFB)]; __ALIGN float smr_short[2][__ALIGNED(MAX_SFB)]; __ALIGN float nb_long[2][__ALIGNED(MAX_PPT_LONG)]; __ALIGN float nb_short[2][8][__ALIGNED(MAX_PPT_SHORT)]; int block_type; int desired_block_type; int next_desired_block_type; float next_frame_PE; float curr_frame_PE;} sPsychoacousticBlock;typedef struct{ __ALIGN float hann_window_long[1024*2]; __ALIGN float hann_window_short[128*2]; __ALIGN float sprdngf_long[MAX_PPT_LONG * MAX_PPT_LONG]; __ALIGN float sprdngf_short[MAX_PPT_SHORT * MAX_PPT_SHORT]; __ALIGN float rnorm_long[MAX_PPT_LONG]; __ALIGN float rnorm_short[MAX_PPT_SHORT]; float* input_data[2]; int iblen_long; int iblen_short; int current_f_r_index; int prev_f_r_index; int prev_prev_f_r_index; int nb_curr_index; int nb_prev_index; int* sfb_offset_long; int* sfb_offset_short; int num_sfb_long; int num_sfb_short; int sampling_frequency_index; sPsyPartitionTable* longWindow; sPsyPartitionTable* shortWindow; IppsFFTSpec_R_32f* pFFTSpecShort; IppsFFTSpec_R_32f* pFFTSpecLong; Ipp8u* pBuffer;} sPsychoacousticBlockCom;extern sPsyPartitionTable psy_partition_tables_long[];extern sPsyPartitionTable psy_partition_tables_short[];#ifdef __cplusplusextern "C" {#endif AACStatus InitPsychoacousticCom(sPsychoacousticBlockCom* pBlock, int sf_index); void InitPsychoacoustic(sPsychoacousticBlock* pBlock); void FreePsychoacousticCom(sPsychoacousticBlockCom* pBlock); void Psychoacoustic(sPsychoacousticBlock* pBlock, sPsychoacousticBlockCom* pBlockCom);#ifdef __cplusplus}#endif#ifndef PI#define PI 3.14159265359f#endif#endif//__PSYCHOACOUSTIC_H
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -