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

📄 son_gc_pack.c

📁 语音压缩算法
💻 C
字号:
/*******************************************************************************MPEG-4 Audio VMPack gain_control_data()This 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.*******************************************************************************//* HP 971011  c++ comments -> c comments */#include <stdio.h>#include "buffersHandle.h"       /* handler, defines, enums */#include "resilienceHandle.h"    /* handler, defines, enums */#include "tf_mainHandle.h"       /* handler, defines, enums */#include "bitstreamStruct.h"     /* structs */#include "bitstream.h"#include "sony_local.h"/*******************************************************************************	Pack gain_control_data*******************************************************************************/int	son_gc_pack(	BsBitStream	*gc_stream,	int	window_sequence,	int	max_band,	GAINC	*gcDataCh[]	){	int	bd, wd, ad;	int	loc;	loc = gc_stream->currentBit;	BsPutBit(gc_stream, max_band, 2);	/* 0 < max_band <= 3*/	switch (window_sequence) {	case ONLY_LONG_SEQUENCE:		for (bd = 1; bd <= max_band; bd++) {			for (wd = 0; wd < 1; wd++) {				BsPutBit(gc_stream, gcDataCh[bd][wd].natks, 3);				for (ad = 0; ad < gcDataCh[bd][wd].natks; ad++) {					BsPutBit(gc_stream, gcDataCh[bd][wd].a_idgain[ad], 4);					BsPutBit(gc_stream, gcDataCh[bd][wd].a_loc[ad], 5);				}			}		}		break;	case LONG_START_SEQUENCE:		for (bd = 1; bd <= max_band; bd++) {			for (wd = 0; wd < 2; wd++) {				BsPutBit(gc_stream, gcDataCh[bd][wd].natks, 3);				for (ad = 0; ad < gcDataCh[bd][wd].natks; ad++) {					BsPutBit(gc_stream, gcDataCh[bd][wd].a_idgain[ad], 4);					if (wd == 0) {						BsPutBit(gc_stream, gcDataCh[bd][wd].a_loc[ad], 4);					}					else {						BsPutBit(gc_stream, gcDataCh[bd][wd].a_loc[ad], 2);					}				}			}		}		break;	case EIGHT_SHORT_SEQUENCE:		for (bd = 1; bd <= max_band; bd++) {			for (wd = 0; wd < 8; wd++) {				BsPutBit(gc_stream, gcDataCh[bd][wd].natks, 3);				for (ad = 0; ad < gcDataCh[bd][wd].natks; ad++) {					BsPutBit(gc_stream, gcDataCh[bd][wd].a_idgain[ad], 4);					BsPutBit(gc_stream, gcDataCh[bd][wd].a_loc[ad], 2);				}			}		}		break;	case LONG_STOP_SEQUENCE:		for (bd = 1; bd <= max_band; bd++) {			for (wd = 0; wd < 2; wd++) {				BsPutBit(gc_stream, gcDataCh[bd][wd].natks, 3);				for (ad = 0; ad < gcDataCh[bd][wd].natks; ad++) {					BsPutBit(gc_stream, gcDataCh[bd][wd].a_idgain[ad], 4);					if (wd == 0) {						BsPutBit(gc_stream, gcDataCh[bd][wd].a_loc[ad], 4);					}					else {						BsPutBit(gc_stream, gcDataCh[bd][wd].a_loc[ad], 5);					}				}			}		}		break;	default:		return	(-1);	}	return	( gc_stream->currentBit - loc );}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -