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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? sc12enc.c

?? MELPe 1200 bps, fixed point
?? C
字號:
/* ================================================================== */
/*                                                                    */ 
/*    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 = RATE1200;
    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]);
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日本中文在线一区| 成人sese在线| 国产日韩av一区| 精品久久久久久综合日本欧美| 欧美中文字幕一区二区三区亚洲| 成人网页在线观看| 高清不卡一二三区| 国产成人综合视频| 成人激情小说网站| 99久久婷婷国产综合精品电影| 亚洲bt欧美bt精品777| 亚洲免费高清视频在线| 日韩黄色小视频| 麻豆成人91精品二区三区| 国产一区二区三区黄视频 | 久久综合久久99| 国产午夜三级一区二区三| 中文字幕一区二区三区不卡| 亚洲欧美一区二区在线观看| 蜜臀av国产精品久久久久| 日本欧美在线观看| 国产一区二区免费看| 亚洲欧美一区二区三区久本道91| 久久蜜桃一区二区| 亚洲精品第1页| 91猫先生在线| 国产主播一区二区三区| 欧美色图片你懂的| 日韩av电影免费观看高清完整版在线观看| 欧美一区午夜视频在线观看| 国产另类ts人妖一区二区| 亚洲视频1区2区| 日韩欧美中文一区二区| 99re6这里只有精品视频在线观看 99re8在线精品视频免费播放 | 在线免费观看视频一区| 91视频免费看| 日韩无一区二区| 亚洲免费av观看| 激情图片小说一区| 99这里都是精品| 久久日韩粉嫩一区二区三区| 日韩av中文字幕一区二区三区| 风间由美一区二区三区在线观看 | 欧美精品一区二区精品网| 久久久久久久网| 麻豆精品视频在线观看免费| 欧美中文字幕一二三区视频| 亚洲丝袜另类动漫二区| 东方aⅴ免费观看久久av| 2020国产精品自拍| 国产一区二区日韩精品| 91色综合久久久久婷婷| 国产三级一区二区三区| 4438x亚洲最大成人网| 国产精品中文字幕日韩精品 | 国产精品一线二线三线精华| 国产人久久人人人人爽| 一本到三区不卡视频| 亚洲国产精品成人久久综合一区| 久久久不卡影院| 肉色丝袜一区二区| 日韩久久久久久| 日本韩国精品一区二区在线观看| av激情综合网| 91精品国产全国免费观看| 日韩理论片中文av| 国产丝袜在线精品| 精品国产91乱码一区二区三区 | 激情综合色综合久久综合| 一区二区三区四区国产精品| 亚洲国产成人在线| 国产视频一区二区在线| 成人激情校园春色| 一区二区三区高清在线| 精品伦理精品一区| www.66久久| 热久久久久久久| 日韩一区中文字幕| 日韩视频在线观看一区二区| 国产suv一区二区三区88区| 亚洲欧美国产高清| 日韩视频在线永久播放| 成人av中文字幕| 国产剧情一区在线| 亚洲高清视频在线| 亚洲女厕所小便bbb| 精品久久99ma| 欧美日韩一区二区电影| 国产91对白在线观看九色| 麻豆国产欧美日韩综合精品二区 | 5月丁香婷婷综合| 成+人+亚洲+综合天堂| 人人狠狠综合久久亚洲| 国产欧美日本一区视频| 亚洲国产精品成人久久综合一区| 欧美精品一区二区不卡| 亚洲欧洲中文日韩久久av乱码| 国产精品久久久久久久久快鸭| jlzzjlzz欧美大全| 午夜精品久久久久久久99樱桃| 国产午夜三级一区二区三| 国产精品伦一区二区三级视频| 激情综合网激情| 久久久国际精品| 日本亚洲欧美天堂免费| 极品瑜伽女神91| 国产成人精品www牛牛影视| gogo大胆日本视频一区| 在线精品视频免费观看| 欧美一级片在线| 亚洲国产精品二十页| 一区二区三区视频在线观看| 亚洲乱码中文字幕| 国产成人自拍网| av成人免费在线| 欧美日韩黄色影视| 欧美精品一二三四| 26uuu亚洲综合色欧美| 久久久三级国产网站| 亚洲精品一区二区在线观看| 国产亚洲精品中文字幕| 国产精品毛片久久久久久久| 国产精品久久久一区麻豆最新章节| 国产精品国产三级国产普通话蜜臀| 国产精品乱码一区二三区小蝌蚪| 亚洲一区二区三区视频在线播放 | 亚洲男人天堂av| 亚洲在线视频免费观看| 国产一区二区三区黄视频 | 亚洲一线二线三线视频| 美女精品一区二区| jlzzjlzz亚洲日本少妇| 欧美成人猛片aaaaaaa| 日韩电影在线一区| 欧美性一级生活| 另类中文字幕网| 日韩一级在线观看| 欧美一激情一区二区三区| 欧美va亚洲va| 性做久久久久久免费观看欧美| 国产成人精品亚洲日本在线桃色| 婷婷夜色潮精品综合在线| 国产精品不卡一区二区三区| 精品国产1区2区3区| 亚洲丝袜另类动漫二区| 国产精品一区久久久久| 日韩一区二区中文字幕| 亚洲国产日产av| 成人午夜在线免费| 精品国产91久久久久久久妲己| 日韩制服丝袜先锋影音| 欧美性生交片4| 2020国产精品久久精品美国| 成人免费视频一区| 久久久激情视频| 成人免费高清在线观看| 中文字幕乱码久久午夜不卡 | 在线精品国精品国产尤物884a| 久久综合色鬼综合色| 欧美在线观看视频在线| 欧美日韩三级一区二区| 欧美一级欧美一级在线播放| 日韩综合一区二区| 色乱码一区二区三区88| 欧美国产日韩一二三区| 久久99国产精品麻豆| 欧美大度的电影原声| 日韩成人免费看| 欧美一区二区精美| 日韩成人精品在线观看| 欧美高清www午色夜在线视频| 亚洲国产综合视频在线观看| 91久久精品一区二区三| 亚洲精品乱码久久久久| 在线观看一区不卡| 亚洲国产你懂的| 欧美性生活大片视频| 午夜亚洲福利老司机| 正在播放亚洲一区| 黄网站免费久久| 久久久99精品免费观看不卡| 国产精品69久久久久水密桃| 国产欧美日本一区二区三区| 国内精品自线一区二区三区视频| 精品国免费一区二区三区| 国产一区二区三区四区五区入口| 久久久久久久久久久久久夜| 国产精品夜夜爽| 国产精品电影一区二区| 日本精品视频一区二区| 爽好多水快深点欧美视频| 精品久久国产97色综合| 日韩电影在线观看电影| 亚洲成人在线网站| 中文字幕一区二区三区在线播放| 久久精品国产一区二区三| 欧美国产欧美综合| 欧美mv日韩mv| 欧美日韩国产电影| 91精品国产福利|