⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 son_gc_etc.c

📁 语音压缩算法
💻 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 + -