📄 son_gc_etc.c
字号:
/*******************************************************************************MPEG-4 Audio VMThis software module was originally developed byTakashi Koike (Sony Corporation)in the course of development of the MPEG-2 NBC/MPEG-4 System/MPEG-4Video/MPEG-4 Audio standard ISO/IEC 13818-7, 14496-1,2 and 3. Thissoftware module is an implementation of a part of one or more MPEG-2NBC/MPEG-4 System/MPEG-4 Video/MPEG-4 Audio tools as specified by theMPEG-2 NBC/MPEG-4 System/MPEG-4 Video/MPEG-4 Audio standard. ISO/IECgives users of the MPEG-2 NBC/MPEG-4 System/MPEG-4 Video/MPEG-4 Audiostandards free license to this software module or modificationsthereof for use in hardware or software products claiming conformanceto the MPEG-2 NBC/MPEG-4 System/MPEG-4 Video/MPEG-4 Audiostandards. Those intending to use this software module in hardware orsoftware products are advised that this use may infringe existingpatents. The original developer of this software module and his/hercompany, the subsequent editors and their companies, and ISO/IEC haveno liability for use of this software module or modifications thereofin an implementation. Copyright is not released for non MPEG-2NBC/MPEG-4 System/MPEG-4 Video/MPEG-4 Audio conforming products.Theoriginal developer retains full right to use the code for his/her ownpurpose, assign or donate the code to a third party and to inhibitthird party from using the code for non MPEG-2 NBC/MPEG-4System/MPEG-4 Video/MPEG-4 Audio conforming products. This copyrightnotice must be included in all copies or derivative works.Copyright (C) 1996.*******************************************************************************/#include <stdio.h>#include <string.h>#include "buffersHandle.h" /* handler, defines, enums */#include "resilienceHandle.h" /* handler, defines, enums */#include "tf_mainHandle.h" /* handler, defines, enums */#include "sony_local.h"#include "bitstream.h"/******************************************************************************* arrange spectral_line_vector (for decoding)*******************************************************************************/void son_gc_arrangeSpecDec( double *freqSignalCh, int block_size_samples, int window_sequence, double *freqSignalChForPP ){ int i, j; int band; double tmp; for (band = 0; band < NBANDS; band++) { if (window_sequence == EIGHT_SHORT_SEQUENCE) { for (i = 0; i < 8; i++) { memcpy( (char *)&freqSignalChForPP[block_size_samples/NBANDS * band + block_size_samples/NBANDS/8 * i], (char *)&freqSignalCh[band * block_size_samples/NBANDS/8 + i * block_size_samples/8], block_size_samples/NBANDS/8*sizeof(double) ); /* reverse the order of the MDCT coefficients in each even PQF band */ if (band % 2 == 1) { for (j = 0; j < block_size_samples/NBANDS/8/2; j++) { tmp = freqSignalChForPP[block_size_samples/NBANDS * band + block_size_samples/NBANDS/8 * i + j]; freqSignalChForPP[block_size_samples/NBANDS * band + block_size_samples/NBANDS/8 * i + j] = freqSignalChForPP[block_size_samples/NBANDS * band + block_size_samples/NBANDS/8 * (i + 1) - 1 - j]; freqSignalChForPP[block_size_samples/NBANDS * band + block_size_samples/NBANDS/8 * (i + 1) - 1 - j] = tmp; } } } } else { memcpy( (char *)&freqSignalChForPP[block_size_samples/NBANDS * band], (char *)&freqSignalCh[block_size_samples/NBANDS *band], block_size_samples/NBANDS * sizeof(double) ); /* reverse the order of the MDCT coefficients in each even PQF band */ if (band % 2 == 1) { for (i = 0; i < block_size_samples/NBANDS/2; i++) { tmp = freqSignalChForPP[block_size_samples/NBANDS * band + i]; freqSignalChForPP[block_size_samples/NBANDS * band + i] = freqSignalChForPP[block_size_samples/NBANDS * (band + 1) - 1 - i]; freqSignalChForPP[block_size_samples/NBANDS * (band + 1) - 1 - i] = tmp; } } } }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -