亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來(lái)到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? sc24enc.c

?? MELPe 1200 bps, fixed point
?? C
字號(hào):
/* ================================================================== */
/*                                                                    */ 
/*    Microsoft Speech coder     ANSI-C Source Code                   */
/*    SC1200 1200 bps speech coder                                    */
/*    Fixed Point Implementation      Version 7.0                     */
/*    Copyright (C) 2000, Microsoft Corp.                             */
/*    All rights reserved.                                            */
/*                                                                    */ 
/* ================================================================== */

/* ========================================= */
/* melp.c: Mixed Excitation LPC speech coder */
/* ========================================= */

#include <stdio.h>
#include <string.h>
#include <stdlib.h>

#include "sc1200.h"
#include "mat_lib.h"
#include "global.h"
#include "macro.h"
#include "mathhalf.h"
#include "dsp_sub.h"
#include "melp_sub.h"
#include "constant.h"
#include "math_lib.h"
#include "math.h"
#include "transcode.h"

#if NPP
#include "npp.h"
#endif

#define X05_Q7				64         /* 0.5 * (1 << 7) */
#define THREE_Q7			384        /* 3 * (1 << 7) */

/* ====== External memory ====== */

Shortword	mode;
Shortword   chwordsize;

/* ========== Static definations ========== */

#define PROGRAM_NAME			"SC1200 1200 bps speech coder"
#define PROGRAM_VERSION			"Version 7 / 42 Bits"
#define PROGRAM_DATE			"10/25/2000"

/* ========== Static Variables ========== */

char in_name[100], out_name[100];

/* ========== Local Private Prototypes ========== */

static void		parseCommandLine(int argc, char *argv[]);
static void		printHelpMessage(char *argv[]);

/****************************************************************************
**
** Function:        main
**
** Description:     The main function of the speech coder
**
** Arguments:
**
**  int     argc    ---- number of command line parameters
**  char    *argv[] ---- command line parameters
**
** Return value:    None
**
*****************************************************************************/
int main(int argc, char *argv[])
{
	Longword	length;
	Shortword	speech_in[BLOCK], speech_out[BLOCK];
	Shortword	bitBufSize, bitBufSize12, bitBufSize24;
                                          /* size of the bitstream buffer */
	BOOLEAN		eof_reached = FALSE;
	FILE	*fp_in, *fp_out;

	/* ====== Get input parameters from command line ====== */
	parseCommandLine(argc, argv);

	/* ====== Open input, output, and parameter files ====== */
	if ((fp_in = fopen(in_name,"rb")) == NULL){
		fprintf(stderr, "  ERROR: cannot read file %s.\n", in_name);
		exit(1);
	}
	if ((fp_out = fopen(out_name,"wb")) == NULL){
		fprintf(stderr, "  ERROR: cannot write file %s.\n", out_name);
		exit(1);
	}

	/* ====== Initialize MELP analysis and synthesis ====== */
	if (rate == RATE2400)
		frameSize = (Shortword) FRAME;
	else
		frameSize = (Shortword) BLOCK;
	/* Computing bit=Num = rate * frameSize / FSAMP.  Note that bitNum        */
	/* computes the number of bytes written to the channel and it has to be   */
	/* exact.  We first carry out the division and then have the multiplica-  */
	/* tion with rounding.                                                    */
    bitNum12 = 81;
    bitNum24 = 54;
    if( chwordsize == 8 ){
        // packing the bitstream
        bitBufSize12 = 11;
        bitBufSize24 = 7;
    }else if( chwordsize == 6 ){
        bitBufSize12 = 14;
        bitBufSize24 = 9;
    }else{
        fprintf(stderr,"Channel word size is wrong!\n");
        exit(-1);
    }

    if (rate == RATE2400){
		frameSize = FRAME;
		bitBufSize = bitBufSize24;
	} else {
		frameSize = BLOCK;
		bitBufSize = bitBufSize12;
	}

	if (mode != SYNTHESIS)
		melp_ana_init();
	if (mode != ANALYSIS)
		melp_syn_init();


	/* ====== Run MELP coder on input signal ====== */

	frame_count = 0;
	eof_reached = FALSE;
	while (!eof_reached){
		fprintf(stderr, "Frame = %ld\r", frame_count);

		if (mode == DOWN_TRANS){
			/* --- Read 2.4 channel input --- */
            if( chwordsize == 8 ){
			    length = fread(chbuf, sizeof(unsigned char),
						   (bitBufSize24*NF), fp_in);
            }else{
    			int i, readNum;
				unsigned int bitData;
				for(i = 0; i < bitBufSize24*NF; i++){
					readNum = fread(&bitData,sizeof(unsigned int),1,fp_in);
					if( readNum != 1 )	break;
					chbuf[i] = (unsigned char)bitData;
				}	
				length = i;		
            }

			if (length < (bitBufSize24*NF)){
				eof_reached = TRUE;
				break;
			}
			transcode_down();
			/* --- Write 1.2 channel output --- */
            if( chwordsize == 8 ){
			    fwrite(chbuf, sizeof(unsigned char), bitBufSize12, fp_out);
            }else{
				int i;
				unsigned int bitData;
				for(i = 0; i < bitBufSize12; i++){
					bitData = (unsigned int)(chbuf[i]);
					fwrite(&bitData, sizeof(unsigned int), 1, fp_out);
				}
			}
		} else if (mode == UP_TRANS){
			/* --- Read 1.2 channel input --- */
            if( chwordsize == 8 ){
			    length = fread(chbuf, sizeof(unsigned char), bitBufSize12, fp_in);
            }else{
    			int i, readNum;
				unsigned int bitData;
				for(i = 0; i < bitBufSize12; i++){
					readNum = fread(&bitData,sizeof(unsigned int),1,fp_in);
					if( readNum != 1 )	break;
					chbuf[i] = (unsigned char)bitData;
				}	
				length = i;		
            }

			if (length < bitBufSize12){
				eof_reached = TRUE;
				break;
			}
			transcode_up();
			/* --- Write 2.4 channel output --- */
            if( chwordsize == 8 ){
			    fwrite(chbuf, sizeof(unsigned char), (bitBufSize24*NF), fp_out);
            }else{
				int i;
				unsigned int bitData;
				for(i = 0; i < bitBufSize24*NF; i++){
					bitData = (unsigned int)(chbuf[i]);
					fwrite(&bitData, sizeof(unsigned int), 1, fp_out);
				}
			}

		} else {
			/* Perform MELP analysis */
			if (mode != SYNTHESIS){
				/* read input speech */
				length = readbl(speech_in, fp_in, frameSize);
				if (length < frameSize){
					v_zap(&speech_in[length], (Shortword) (FRAME - length));
					eof_reached = TRUE;
				}

				/* ---- Noise Pre-Processor ---- */
#if NPP
				if (rate == RATE1200){
					npp(speech_in, speech_in);
					npp(&(speech_in[FRAME]), &(speech_in[FRAME]));
					npp(&(speech_in[2*FRAME]), &(speech_in[2*FRAME]));
				} else
					npp(speech_in, speech_in);
#endif
				analysis(speech_in, melp_par);

				/* ---- Write channel output if needed ---- */
                if (mode == ANALYSIS){
                    if( chwordsize == 8 ){
					    fwrite(chbuf, sizeof(unsigned char), bitBufSize, fp_out);
                    }else{
        				int i;
		        		unsigned int bitData;
				        for(i = 0; i < bitBufSize; i++){
					        bitData = (unsigned int)(chbuf[i]);
					        fwrite(&bitData, sizeof(unsigned int), 1, fp_out);
				        }
			        }
                }
			}

			/* ====== Perform MELP synthesis (skip first frame) ====== */
			if (mode != ANALYSIS){

				/* Read channel input if needed */
				if (mode == SYNTHESIS){
                    if( chwordsize == 8 ){
					    length = fread(chbuf, sizeof(unsigned char), bitBufSize,
						    		   fp_in);
                    }else{
    		        	int i, readNum;
        				unsigned int bitData;
		        		for(i = 0; i < bitBufSize; i++){
				        	readNum = fread(&bitData,sizeof(unsigned int),1,fp_in);
        					if( readNum != 1 )	break;
		        			chbuf[i] = (unsigned char)bitData;
				        }	
        				length = i;		
                    }
					if (length < bitBufSize){
						eof_reached = TRUE;
						break;
					}
				}
				synthesis(melp_par, speech_out);
				writebl(speech_out, fp_out, frameSize);
			}
		}
		frame_count ++;
	}

	fclose(fp_in);
	fclose(fp_out);
	fprintf(stderr, "\n\n");

	return(0);
}


/****************************************************************************
**
** Function:        parseCommandLine
**
** Description:     Translate command line parameters
**
** Arguments:
**
**  int     argc    ---- number of command line parameters
**  char    *argv[] ---- command line parameters
**
** Return value:    None
**
*****************************************************************************/
static void		parseCommandLine(int argc, char *argv[])
{
	BOOLEAN		error_flag = FALSE;

	if (argc != 3)
		error_flag = TRUE;

	/* Setting default values. */
	mode = ANALYSIS;
	rate = RATE2400;
    chwordsize = 8;         // this is for packed bitstream
	in_name[0] = '\0';
	out_name[0] = '\0';

	if( argc == 3 ){
		strcpy(in_name, argv[1]);
		strcpy(out_name, argv[2]);
	}

    if ((in_name[0] == '\0') || (out_name[0] == '\0'))
		error_flag = TRUE;

	if (error_flag){
		printHelpMessage(argv);
		exit(1);
	}

	fprintf(stderr, "\n\n\t%s %s, %s\n\n", PROGRAM_NAME, PROGRAM_VERSION,
			PROGRAM_DATE);
	switch (mode){
	case ANA_SYN:
	case ANALYSIS:
	case SYNTHESIS:
		if (rate == RATE2400)
			fprintf(stderr, " ---- 2.4kbps mode.\n");
		else
			fprintf(stderr, " ---- 1.2kbps mode.\n");
		break;
	}
	switch (mode){
	case ANA_SYN:
		fprintf(stderr, " ---- Analysis and Synthesis.\n"); break;
	case ANALYSIS:
		fprintf(stderr, " ---- Analysis only.\n"); break;
	case SYNTHESIS:
		fprintf(stderr, " ---- Synthesis only.\n"); break;
	case UP_TRANS:
		fprintf(stderr, " ---- Transcoding from 1.2kbps to 2.4kbps.\n"); break;
	case DOWN_TRANS:
		fprintf(stderr, " ---- Transcoding from 2.4kbps to 1.2kbps.\n"); break;
	}

	fprintf(stderr, " ---- input from %s.\n", in_name);
	fprintf(stderr, " ---- output to %s.\n", out_name);
}


/****************************************************************************
**
** Function:        printHelpMessage
**
** Description:     Print Command Line Usage
**
** Arguments:
**
** Return value:    None
**
*****************************************************************************/
static void		printHelpMessage(char *argv[])
{
	fprintf(stderr, "\n\n\t%s %s, %s\n\n", PROGRAM_NAME, PROGRAM_VERSION,
			PROGRAM_DATE);
	fprintf(stdout, "Usage:\n");
	fprintf(stdout, "\t%s infile outfile\n\n", argv[0]);
}

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲永久精品国产| wwwwww.欧美系列| 亚洲一区视频在线观看视频| 日韩一级高清毛片| 国产.欧美.日韩| 亚洲精品日韩专区silk| 欧美电视剧在线观看完整版| 成人三级在线视频| 日本女优在线视频一区二区| 国产精品女主播av| 欧美一级欧美一级在线播放| 成人性视频免费网站| 亚洲国产精品一区二区www| 国产精品国产三级国产普通话99 | 欧美麻豆精品久久久久久| 国产超碰在线一区| 美女www一区二区| 亚洲国产精品一区二区久久恐怖片 | 亚洲自拍偷拍av| 国产精品久久影院| xnxx国产精品| 日韩美女主播在线视频一区二区三区| 欧美丝袜丝交足nylons| 在线观看不卡一区| 在线观看一区二区精品视频| 色偷偷88欧美精品久久久| 在线亚洲高清视频| 欧美一区二区三区色| 久久综合色天天久久综合图片| 久久综合狠狠综合久久综合88| 国产日产欧美一区二区视频| 欧美变态tickle挠乳网站| 欧美一级免费大片| 国产精品免费视频一区| 亚洲一区二区黄色| av在线不卡电影| 国产精品18久久久| 色中色一区二区| 欧美色图12p| 久久午夜羞羞影院免费观看| 国产精品人成在线观看免费| 亚洲曰韩产成在线| 久草在线在线精品观看| 成人av在线播放网站| 精品婷婷伊人一区三区三| 日韩欧美123| 亚洲美女在线国产| 激情另类小说区图片区视频区| 日本精品视频一区二区三区| 欧美一级欧美一级在线播放| 国产精品成人免费| 久久99热狠狠色一区二区| 日本韩国视频一区二区| 2欧美一区二区三区在线观看视频| 亚洲人成精品久久久久久| 国产成人在线看| 日韩欧美国产一区在线观看| 亚洲综合在线视频| 91在线免费播放| 久久精品亚洲精品国产欧美kt∨| 天天操天天色综合| 91电影在线观看| 国产精品第四页| 高清不卡在线观看| 久久一区二区三区国产精品| 亚洲一区二区欧美激情| 91视频在线看| 亚洲男女一区二区三区| eeuss影院一区二区三区| 国产欧美日韩综合精品一区二区 | 中文字幕成人av| 国产一区在线不卡| 久久久久成人黄色影片| 国产九色精品成人porny| 久久综合给合久久狠狠狠97色69| 黄页网站大全一区二区| 亚洲精品一区二区精华| 久久99深爱久久99精品| 国产午夜亚洲精品理论片色戒| 国模冰冰炮一区二区| wwwwww.欧美系列| fc2成人免费人成在线观看播放| 亚洲四区在线观看| 欧美日韩日本视频| 美女精品一区二区| 国产精品嫩草99a| 欧美在线三级电影| 久久99久久久久久久久久久| 国产欧美日韩中文久久| 91同城在线观看| 免费成人小视频| 国产精品色呦呦| 欧美久久一区二区| 成人毛片老司机大片| 亚洲第一电影网| 久久免费视频色| 91视频你懂的| 国内精品自线一区二区三区视频| 国产精品成人一区二区三区夜夜夜| 欧美色爱综合网| 丁香婷婷综合色啪| 蜜桃一区二区三区在线观看| 国产精品激情偷乱一区二区∴| 777亚洲妇女| 色狠狠色狠狠综合| www.亚洲人| 国产一区二区三区黄视频| 夜夜爽夜夜爽精品视频| 日本视频一区二区| 亚洲综合成人在线| 日韩毛片一二三区| 国产日韩欧美亚洲| 国产午夜亚洲精品不卡| 日韩一区二区三区免费观看| 在线观看欧美日本| 91麻豆123| 91女厕偷拍女厕偷拍高清| 成人性生交大片免费看中文网站| 久久国产精品第一页| 日韩国产一二三区| 日韩精品1区2区3区| 三级不卡在线观看| 三级欧美在线一区| 蜜桃一区二区三区在线观看| 男人的天堂久久精品| 麻豆视频观看网址久久| 美女在线一区二区| 国产一区二区三区av电影| 国模一区二区三区白浆| 国产91精品免费| av电影天堂一区二区在线观看| av在线播放一区二区三区| 91麻豆成人久久精品二区三区| 在线一区二区三区四区| 欧美一区二区日韩| 久久久精品天堂| 国产精品白丝在线| 亚洲高清不卡在线观看| 天天综合天天做天天综合| 精品影院一区二区久久久| 成人激情小说网站| 欧美日韩免费视频| 国产午夜精品美女毛片视频| 国产精品乱人伦中文| 天堂av在线一区| 国产成人福利片| 欧美性一级生活| 国产视频一区不卡| 亚洲va欧美va人人爽午夜| 懂色av中文字幕一区二区三区| 91婷婷韩国欧美一区二区| 欧美v日韩v国产v| 亚洲线精品一区二区三区八戒| 久久精品国产网站| 欧美天天综合网| 中文字幕的久久| 老司机精品视频在线| 欧美日韩国产首页| 国产欧美一区二区在线观看| 亚洲国产精品综合小说图片区| 成人动漫视频在线| 久久嫩草精品久久久久| 麻豆91在线观看| 91精品欧美福利在线观看| 亚洲精品久久7777| 91小视频在线观看| 亚洲欧美在线aaa| 国产成人精品一区二区三区网站观看| 91精品欧美久久久久久动漫| 日韩精品一卡二卡三卡四卡无卡 | 国产黑丝在线一区二区三区| 日韩欧美国产系列| 日本午夜一区二区| 日韩精品一区在线观看| 青青草伊人久久| 777久久久精品| 日韩精品三区四区| 日韩精品一区二区三区中文精品| 日韩精品亚洲一区| 久久蜜臀精品av| 成人丝袜视频网| 亚洲欧美区自拍先锋| 欧洲一区二区三区免费视频| 亚洲一区二三区| 69堂精品视频| 国产福利91精品一区| 国产精品丝袜在线| 欧美亚洲自拍偷拍| 美女网站色91| 亚洲国产成人一区二区三区| 9i看片成人免费高清| 偷窥少妇高潮呻吟av久久免费| 日韩欧美一区在线观看| 不卡的av电影在线观看| 五月综合激情日本mⅴ| 国产欧美1区2区3区| 欧美视频精品在线| 国产高清成人在线| 婷婷综合在线观看| 中文字幕亚洲一区二区va在线|