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

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

?? wavex01.cu

?? 一個基于GPU運算的FIR濾波器程序
?? CU
?? 第 1 頁 / 共 2 頁
字號:
/*
 * Copyright 1993-2007 NVIDIA Corporation.  All rights reserved.
 */

/* WaveX01 project which demonstrates the basics on how to setup a project 
* example application.
* HOST CODE.
*/

// includes, system
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <math.h>
#include <memory.h>	
#include <stdlib.h>
#include <time.h>
#include <windows.h>

// includes, project
#include <cutil.h>
#include <cuda.h>

// includes, kernels
#include <WaveX01_kernel.cu>

////////////////////////////////////////////////////////////////////////////////
// declaration, forward

void ReadFIRCoeff(void);		//Read desired Frequency
void ReadConfig(char * ConfigFile);		//Read Configuration
int ProcessWav(char *infilename, char *outfilename);	//Prototype Routine

char InputFile[256];
char ConfigFile[256];
char OutputFile[256];

//parameters
int  DivideCount;			//4 = 4Way FIR Divider
int  OutputFormat_Bit;		//16 or 24
int		SampleRate;			//44100, 
bool	StreamOut;			//true:output to Xylo
bool	FileOut;			//true:output to File

#define DEFTAPS		8192

struct FIRParams{
	int		DelayLength;		//Channel Delay Sample Length
	int		chPointer[2];			//Channel Processing Pointer for Wave Data (initialized negative for delay)
	bool	Enabled;			//Channel Used
	int		Offset;				//Offset in dB
	double	dOffset;			//Offset in double, to calculate
	char	CoeffFile[256];		//Coeff File Name
	float	FIRCoeff[DEFTAPS];	//Coeff Value
};

struct FIRParams FIR[4];

const unsigned int CUDABLOCKS = 16;

////////////////////////////////////////////////////////////////////////////////
// Program main
////////////////////////////////////////////////////////////////////////////////
int main( int argc, char** argv) 
{
	//Check Arguments Count
	if (argc != 4)
	{
		printf("requires 3 arguments.\n");
		printf("WaveX01 inWaveFile ConfigFile OutWaveXFile\n");
		printf("WaveX01 \"C:\\\\Temp\\\\MusicFile.wav\" \"C:\\\\Temp\\\\WaveX.cfg\" \"C:\\\\Temp\\\\MusicFileOut.wav\" \n");
		return -1;
	}

	strncpy_s(InputFile,256, argv[1],strlen(argv[1]));
	strncpy_s(ConfigFile,256, argv[2],strlen(argv[2]));
	strncpy_s(OutputFile,256, argv[3],strlen(argv[3]));

	ReadConfig(ConfigFile);

	ReadFIRCoeff();

	ProcessWav(InputFile,OutputFile);

}

void ReadConfig(char* FileName)
{
	char RetStr[256];

	for (int i = 0; i < 4; i++)
	{
		FIR[i].Enabled = false;
		strcpy(FIR[i].CoeffFile, "");
		for (int j = 0; j < DEFTAPS; j++)
		{
			FIR[i].FIRCoeff[j] = 0.0;
		}
	}

	GetPrivateProfileString("Global_Params", "WAYS", "1", RetStr, 64, FileName);
	DivideCount = atoi(RetStr);
	GetPrivateProfileString("Global_Params", "FORMAT", "16", RetStr, 64, FileName);
	OutputFormat_Bit = atoi(RetStr);
	GetPrivateProfileString("Global_Params", "StreamOut", "0", RetStr, 64, FileName);
	if (strcmp("1",RetStr)==0)
		StreamOut = true;
	else
		StreamOut = false;
	GetPrivateProfileString("Global_Params", "FileOut", "0", RetStr, 64, FileName);
	if (strcmp("1",RetStr)==0)
		FileOut = true;
	else
		FileOut = false;
	GetPrivateProfileString("Global_Params", "SampleRate", "0", RetStr, 64, FileName);
	SampleRate = atoi(RetStr);

	GetPrivateProfileString("CH12", "COEFF", "", FIR[0].CoeffFile, 256, FileName);
	GetPrivateProfileString("CH34", "COEFF", "", FIR[1].CoeffFile, 256, FileName);
	GetPrivateProfileString("CH56", "COEFF", "", FIR[2].CoeffFile, 256, FileName);
	GetPrivateProfileString("CH78", "COEFF", "", FIR[3].CoeffFile, 256, FileName);

	GetPrivateProfileString("CH12", "Delay", "0", RetStr, 64, FileName);
	FIR[0].DelayLength = atoi(RetStr);
	GetPrivateProfileString("CH34", "Delay", "0", RetStr, 64, FileName);
	FIR[1].DelayLength = atoi(RetStr);
	GetPrivateProfileString("CH56", "Delay", "0", RetStr, 64, FileName);
	FIR[2].DelayLength = atoi(RetStr);
	GetPrivateProfileString("CH78", "Delay", "0", RetStr, 64, FileName);
	FIR[3].DelayLength = atoi(RetStr);
	GetPrivateProfileString("CH12", "Offset", "0", RetStr, 64, FileName);
	FIR[0].Offset = atoi(RetStr);
	GetPrivateProfileString("CH34", "Offset", "0", RetStr, 64, FileName);
	FIR[1].Offset = atoi(RetStr);
	GetPrivateProfileString("CH56", "Offset", "0", RetStr, 64, FileName);
	FIR[2].Offset = atoi(RetStr);
	GetPrivateProfileString("CH78", "Offset", "0", RetStr, 64, FileName);
	FIR[3].Offset = atoi(RetStr);

	for (int i = 0; i < 4; i++)
	{
		FIR[i].chPointer[0] -= FIR[i].DelayLength;
		FIR[i].chPointer[1] -= FIR[i].DelayLength;
		FIR[i].dOffset = pow(10.0, FIR[i].Offset/10.0);
	}

	for (int i = 0; i < DivideCount-1; i++)
	{
		FIR[i].Enabled = true;
	}

}

void ReadFIRCoeff(void)
{
	FILE * f;
	char buf[64];

	for (int j = 0; j < 4; j++)
	{
		if ((f = fopen(FIR[j].CoeffFile,"r")) != NULL)
		{
			int i = 0;
			double tmp = 0.0;
			while((!feof(f)) && (i < DEFTAPS))
			{
				fgets(buf, sizeof(buf), f);
				sscanf(buf, "%lf", &tmp);
				FIR[j].FIRCoeff[i] = (float)tmp;
				i++;
			}
			fclose(f);
		}
	}

}

unsigned read2bytes(FILE *f)
{
    unsigned char buf[2];

    if (fread(buf, 2, 1, f) != 1) {
        fprintf(stderr, "Read error\n");
        return(1);
    }
    return 256U * buf[1] + buf[0] ;
}


unsigned long read4bytes(FILE *f)
{
    unsigned char buf[4];

    if (fread(buf, 4, 1, f) != 1) {
        fprintf(stderr, "Read error\n");
        return(1);
    }
    return ((256LU * buf[3] + buf[2]) * 256LU + buf[1] ) * 256LU + buf[0]  ;
}

int CheckInFile(FILE * f)
{
    unsigned long len;
    unsigned char s[10];
    int channels, bits;
    if (f == NULL) {
        printf("Can not open File\n");
        return -1;
    }
    if (fread(s, 4, 1, f) != 1) {
        printf("Read error\n");
        fclose(f);
        return -1;
    }
    if (memcmp(s, "RIFF", 4) != 0) {
        printf("Not a RIFF format\n");
        fclose(f);
        return -1;
    }

    printf("[RIFF] (%lu bytes)\n", read4bytes(f));
    if (fread(s, 8, 1, f) != 1) {
        printf("Read error\n");
        fclose(f);
        return -1;
    }

    if (memcmp(s, "WAVEfmt ", 8) != 0) {
        printf("Not a WAVEfmt format\n");
        fclose(f);
        return -1;
    }
    len = read4bytes(f);
    printf("[WAVEfmt ] (%lu bytes)\n", len);
    if (len != 16) {
        printf("Length of WAVEfmt must be 16\n");
        return -1;
    }
    printf("  Data type = %u (1 = PCM)\n", read2bytes(f));
    channels = read2bytes(f);
    printf("  Number of channels = %u (1 = mono, 2 = stereo)\n", channels);
    printf("  Sampling rate = %luHz\n", read4bytes(f));
    printf("  Bytes per second = %lu\n", read4bytes(f));
    printf("  Bytes per sample = %u\n", read2bytes(f));
    bits = read2bytes(f);
    printf("  Bits per sample = %u\n", bits);

	return 0;
}


void	PrepareOutFile(FILE * fo, unsigned long len, int channels, int Sample_sec, int BitFormat)
{
	unsigned long temp_l;
	unsigned short temp_s;
    unsigned char s[20];
	// Prepare Output Wave File
	// RIFF
	s[0] = 'R';
	s[1] = 'I';
	s[2] = 'F';
	s[3] = 'F';
	fwrite(s, 1, 4, fo);
	//filesize
	if (channels == 2)
	{
		temp_l = len + 36;
	}
	else	//extended
	{
		temp_l = len + 120;
	}
	fwrite(&(temp_l), sizeof(long), 1, fo);
	
	// WAVE
	s[0] = 'W';
	s[1] = 'A';
	s[2] = 'V';
	s[3] = 'E';
	fwrite(s, 1, 4, fo);
	// fmt chunk
	s[0] = 'f';
	s[1] = 'm';
	s[2] = 't';
	s[3] = ' ';
	fwrite(s, 1, 4, fo);

	// chunk size
	if (channels == 2)
	{
		temp_l = 16;
	}
	else	//extended
	{
		temp_l = 40;
	}
	fwrite(&(temp_l), sizeof(long), 1, fo);

	// format PCM = 1
	if (channels == 2)
	{
		temp_s = 1;
	}
	else	//extended, 0xFFFE
	{
		temp_s = 0xFFFE;
	}
	fwrite(&(temp_s), sizeof(short), 1, fo);

	// channel stereo = 2, or Extended
	temp_s = channels;
	fwrite(&(temp_s), sizeof(short), 1, fo);

	// sample 44100, 48000, 88200, 96000 etc
	temp_l = Sample_sec;
	fwrite(&(temp_l), sizeof(long), 1, fo);

	// Bytes per sec
	temp_l = channels * BitFormat/8 * Sample_sec;
	fwrite(&(temp_l), sizeof(long), 1, fo);

	// Block (Bytes per sample&channel)
	temp_s = channels * BitFormat/8  ;
	fwrite(&(temp_s), sizeof(short), 1, fo);

	// Bits per sample
	temp_s = BitFormat ;
	fwrite(&(temp_s), sizeof(short), 1, fo);

	//Extended Format area
	if (channels > 2)
	{
		//22 bytes extended area
		temp_s = 22;
		fwrite(&(temp_s), sizeof(short), 1, fo);

		//bit width
		temp_s = BitFormat ;
		fwrite(&(temp_s), sizeof(short), 1, fo);

		//channel Mask. 2=0x03, 4=0x0F, 6=0x3F, 8=0xFF
		temp_l = (1<<channels) -1;
		fwrite(&(temp_l), sizeof(long), 1, fo);

		//Extended PCM GUID
		s[ 0] = 0x01;
		s[ 1] = 0x00;
		s[ 2] = 0x00;
		s[ 3] = 0x00;
		s[ 4] = 0x00;
		s[ 5] = 0x00;
		s[ 6] = 0x10;
		s[ 7] = 0x00;
		s[ 8] = 0x80;
		s[ 9] = 0x00;
		s[10] = 0x00;
		s[11] = 0xAA;
		s[12] = 0x00;
		s[13] = 0x38;
		s[14] = 0x9B;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品国产免费人成电影在线观看四季 | 欧美精品欧美精品系列| 1区2区3区国产精品| 91影院在线免费观看| 国产精品女主播av| 91免费小视频| 丝袜诱惑制服诱惑色一区在线观看 | 欧美日韩国产乱码电影| 日韩在线观看一区二区| 欧美videos中文字幕| 国产麻豆一精品一av一免费| 国产精品视频第一区| 色哟哟一区二区在线观看 | 欧美日韩在线一区二区| 日韩精品三区四区| 欧美精品一区二| 成人v精品蜜桃久久一区| 亚洲一区二区在线免费观看视频| 欧美日韩国产精选| 国产精品18久久久久久vr| 亚洲丝袜精品丝袜在线| 欧美丰满美乳xxx高潮www| 久久av老司机精品网站导航| 国产精品麻豆久久久| 欧美美女喷水视频| 国产91丝袜在线播放| 亚洲激情五月婷婷| 久久综合久色欧美综合狠狠| 91一区二区三区在线播放| 视频一区视频二区中文| 久久精品人人做人人爽人人| 欧美亚男人的天堂| 国产精品一卡二卡| 亚洲激情成人在线| 久久蜜臀中文字幕| 欧美在线|欧美| 国产a久久麻豆| 日韩激情视频在线观看| 一区免费观看视频| 日韩三级伦理片妻子的秘密按摩| 成人黄页在线观看| 蜜臀av一区二区| 亚洲乱码中文字幕综合| 26uuu亚洲综合色| 欧美色爱综合网| 成人免费视频caoporn| 麻豆成人综合网| 亚洲一区二区三区四区五区黄 | 免费观看日韩av| 国产精品蜜臀av| 欧美va亚洲va国产综合| 欧美日韩视频在线一区二区| 波多野结衣精品在线| 精品一区二区三区在线观看| 亚洲成人福利片| 亚洲视频小说图片| 欧美国产激情一区二区三区蜜月| 69p69国产精品| 日本韩国精品在线| 豆国产96在线|亚洲| 久久精品国内一区二区三区| 亚洲国产sm捆绑调教视频 | 成人va在线观看| 国产剧情一区在线| 久久激情五月激情| 日韩激情中文字幕| 亚洲成av人片在线观看无码| 亚洲网友自拍偷拍| 亚洲国产综合色| 亚洲制服丝袜一区| 亚洲国产日韩综合久久精品| 亚洲综合偷拍欧美一区色| 一区二区三区在线观看视频| 亚洲精品国产a| 亚洲欧美国产毛片在线| 成人欧美一区二区三区小说| 国产精品网站在线观看| 中文字幕国产一区| 中文av字幕一区| 国产精品久久久一本精品 | 国产一区二区三区久久久| 日韩精品一级中文字幕精品视频免费观看| 亚洲宅男天堂在线观看无病毒| 一区二区三区日韩欧美精品 | 国产丝袜欧美中文另类| 久久久亚洲精品一区二区三区| 精品欧美乱码久久久久久1区2区 | 欧美一区二区三区在线视频| 337p亚洲精品色噜噜噜| 欧美精品高清视频| 欧美一级黄色录像| 久久综合久久鬼色中文字| 2020国产精品久久精品美国| 国产日产欧美一区二区视频| 日本一区二区三级电影在线观看| 国产精品久99| 亚洲成人一区二区在线观看| 免费看日韩a级影片| 国产伦精品一区二区三区免费迷 | 一区二区三区中文字幕| 亚洲第一成人在线| 久草热8精品视频在线观看| 韩国精品一区二区| 成人av网站在线| 色天天综合色天天久久| 7777精品伊人久久久大香线蕉的| 精品少妇一区二区三区日产乱码| 国产人久久人人人人爽| 一区二区三区中文字幕精品精品| 日本午夜精品视频在线观看| 国产精品中文字幕日韩精品| 91同城在线观看| 欧美巨大另类极品videosbest| 久久色在线观看| 亚洲少妇最新在线视频| 另类的小说在线视频另类成人小视频在线| 国产精品影音先锋| 色综合视频在线观看| 4438x亚洲最大成人网| 欧美国产视频在线| 亚洲成人av电影在线| 国产高清久久久| 欧美精品123区| 国产精品福利一区二区| 麻豆精品新av中文字幕| 97久久精品人人澡人人爽| 日韩视频免费观看高清完整版| 最新成人av在线| 精品中文字幕一区二区小辣椒| 91麻豆免费在线观看| 精品久久久久av影院| 亚洲在线观看免费| 福利91精品一区二区三区| 欧美伦理影视网| 成人免费在线播放视频| 国产综合一区二区| 555www色欧美视频| 樱花草国产18久久久久| 国产成a人亚洲精品| 日韩视频免费观看高清完整版| 亚洲综合一二三区| 99久久er热在这里只有精品15| 久久亚洲精品国产精品紫薇 | 日本中文字幕一区二区有限公司| 一本到不卡精品视频在线观看| 2022国产精品视频| 蜜桃视频一区二区| 欧美人妖巨大在线| 亚洲欧美二区三区| 99在线精品一区二区三区| 国产亚洲一区二区三区| 久久国产福利国产秒拍| 91高清在线观看| 亚洲色图欧美激情| 97se亚洲国产综合自在线观| 欧美激情一区二区三区四区| 国产一区高清在线| 欧美成人aa大片| 裸体一区二区三区| 91精品国产福利在线观看| 亚洲不卡一区二区三区| 欧美日韩综合在线免费观看| 亚洲狠狠爱一区二区三区| 91极品美女在线| 一区二区三区在线免费播放| 色综合网站在线| 亚洲精品一二三| 欧美最猛性xxxxx直播| 亚洲中国最大av网站| 欧美亚洲国产bt| 亚洲福利视频导航| 欧美精品日韩一区| 日本成人在线一区| 精品国产乱码久久久久久老虎| 久久爱www久久做| 久久青草国产手机看片福利盒子| 国产中文字幕精品| 日本一区二区成人| a在线播放不卡| 亚洲一区二区欧美日韩| 欧美日韩一区高清| 蜜臀99久久精品久久久久久软件 | 国产精品天干天干在线综合| 国产jizzjizz一区二区| 亚洲天堂av一区| 欧美视频在线一区| 美女视频一区二区三区| 国产欧美综合在线| 一本到高清视频免费精品| 午夜电影久久久| 精品欧美一区二区在线观看| 粉嫩嫩av羞羞动漫久久久 | 亚洲h在线观看| 91精品国产欧美一区二区| 国产在线播精品第三| 亚洲另类一区二区| 欧美一级久久久久久久大片| 国产黑丝在线一区二区三区| 一区二区三区视频在线观看| 欧美一级国产精品|