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

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

?? sc12dec.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 = SYNTHESIS;
	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一区二区三区免费野_久草精品视频
欧美激情一区三区| 欧美一卡二卡在线| 日韩精品一二三四| 中文字幕不卡一区| 日韩视频一区在线观看| 一本大道av一区二区在线播放| 日本伊人午夜精品| 一区二区在线免费观看| 国产婷婷色一区二区三区在线| 在线亚洲高清视频| 国产suv精品一区二区三区| 亚洲国产综合在线| 亚洲人午夜精品天堂一二香蕉| 欧美精品一区二区不卡| 欧美日韩一区不卡| 97精品超碰一区二区三区| 韩国av一区二区三区在线观看| 日韩精品福利网| 亚洲精品菠萝久久久久久久| 国产视频一区在线观看| 欧美精品一区二区三| 欧美肥妇毛茸茸| 欧美三级韩国三级日本三斤| 99在线精品免费| 99久久精品久久久久久清纯| 成人午夜看片网址| 国产精品99久久久久久久vr| 久久精品久久久精品美女| 免费成人在线观看| 日本视频一区二区三区| 午夜婷婷国产麻豆精品| 亚洲午夜在线电影| 亚洲午夜av在线| 亚洲国产cao| 中文字幕制服丝袜一区二区三区 | 亚洲国产成人精品视频| 中文字幕亚洲成人| 国产精品电影院| 亚洲欧美自拍偷拍| 亚洲九九爱视频| 亚洲色图欧美激情| 亚洲综合成人网| 亚洲一区二区视频| 亚洲一区二区三区精品在线| 亚洲激情图片qvod| 亚洲18女电影在线观看| 亚洲成人一区二区在线观看| 亚洲第一久久影院| 日本成人在线不卡视频| 麻豆精品久久精品色综合| 精品制服美女久久| 国产精品99久久久久久宅男| 成人av先锋影音| 色婷婷av一区二区三区软件| 欧美日韩亚洲综合在线| 日韩欧美一二区| 国产香蕉久久精品综合网| 亚洲婷婷综合色高清在线| 亚洲丝袜精品丝袜在线| 一区二区三区成人| 日韩av一级片| 国产精华液一区二区三区| 欧美精品一区二区三区在线| 国产亚洲欧美日韩俺去了| 精品国精品国产| 国产欧美va欧美不卡在线 | 亚洲乱码国产乱码精品精小说| 亚洲免费大片在线观看| 午夜日韩在线电影| 国产美女视频一区| 99精品久久只有精品| 欧美日本一区二区在线观看| 欧美精品一区二区三区久久久| 中文字幕一区二区三区av| 午夜一区二区三区视频| 久久99精品久久久久| 色综合中文字幕国产 | 久99久精品视频免费观看| av成人老司机| 亚洲香蕉伊在人在线观| 欧美中文字幕不卡| 在线成人av影院| 成人欧美一区二区三区黑人麻豆| 99视频一区二区| 极品美女销魂一区二区三区免费| 国产精品中文欧美| 91国偷自产一区二区使用方法| 欧美一区二区三区思思人| 国产精品久久一卡二卡| 日韩福利视频导航| 成人性生交大合| 在线播放中文一区| 国产精品进线69影院| 国产精品综合二区| 欧日韩精品视频| 中文字幕国产精品一区二区| 午夜视频在线观看一区二区 | 国产精品资源在线看| 6080午夜不卡| 国产欧美一区二区在线| 午夜久久久影院| 成人久久视频在线观看| 777色狠狠一区二区三区| 自拍偷在线精品自拍偷无码专区| 免费成人性网站| 欧美亚洲国产bt| 亚洲私人黄色宅男| 国产成都精品91一区二区三| 欧美成人综合网站| 日韩精品成人一区二区在线| 色综合久久久网| 国产精品免费视频一区| 激情综合色综合久久综合| 欧美日本乱大交xxxxx| 亚洲色图在线视频| av不卡一区二区三区| 国产亚洲欧美日韩日本| 精品一区二区三区不卡 | 欧美v日韩v国产v| 日韩精品免费专区| 欧美日韩国产另类一区| 一区二区三区精品在线观看| 99精品久久只有精品| 国产精品视频免费看| 亚洲精品一卡二卡| 亚洲福利视频一区| 色悠悠亚洲一区二区| 中文字幕一区二区三区不卡在线| 国产一区二区按摩在线观看| 精品久久人人做人人爽| 美日韩一区二区| 欧美一区2区视频在线观看| 日韩国产欧美三级| 日韩精品一区二区三区老鸭窝| 日韩制服丝袜先锋影音| 6080日韩午夜伦伦午夜伦| 日韩高清在线电影| 欧美v国产在线一区二区三区| 美女免费视频一区二区| ww亚洲ww在线观看国产| 国产福利91精品一区| 欧美国产丝袜视频| 99精品视频一区二区| 亚洲三级免费观看| 欧美日韩在线三区| 日韩电影在线一区| 欧美va亚洲va| 粉嫩蜜臀av国产精品网站| 中文av一区二区| 日本精品视频一区二区三区| 亚洲国产精品影院| 欧美变态tickle挠乳网站| 国产在线一区二区| 欧美韩日一区二区三区| 色综合久久66| 亚洲1区2区3区视频| 精品国产免费人成电影在线观看四季| 韩日精品视频一区| 一区二区中文视频| 欧美探花视频资源| 久久精品国产第一区二区三区| 久久网站最新地址| 91浏览器在线视频| 青娱乐精品在线视频| 久久久久88色偷偷免费| 91丝袜美女网| 免费人成精品欧美精品| 国产精品日日摸夜夜摸av| 91九色02白丝porn| 黄色资源网久久资源365| 中文字幕永久在线不卡| 欧美精品1区2区| 国产激情视频一区二区三区欧美| 99vv1com这只有精品| 成人国产免费视频| 亚洲男人天堂av| 欧美精三区欧美精三区| 国产精品资源在线观看| 一二三四社区欧美黄| 亚洲精品一区二区三区四区高清| 成人一区二区三区视频| 午夜精品福利一区二区蜜股av| 精品欧美一区二区在线观看| 色乱码一区二区三区88| 国产一区二区三区综合| 一区二区三区在线不卡| 久久夜色精品一区| 91一区二区在线| 久久er99热精品一区二区| 亚洲男人的天堂一区二区 | 久久九九国产精品| 欧美在线free| www.日本不卡| 免费看日韩a级影片| 一区二区三区自拍| 久久久精品中文字幕麻豆发布| 欧美日韩日本视频| 99久久国产免费看| 国产精选一区二区三区| 三级在线观看一区二区|