-
Gradient Domain HDR Compression
经典HDR算法的基于梯度域的HDR图像压缩算法,主要用于将高动态范围图像处理成低动态范围图像
- 2020-11-30下载
- 积分:1
-
内存乒乓缓存机制和消息分发机制的C代码实现
用C代码实现乒乓内存缓冲机制,具体实用价值,帮助您提高内存响应速度与及时数据的处理。unsigned long writeunsigned long greadunsigned long overflowST TWTMSG QUEUE:/ Helper macros for accessing Msg queues. *#define tWt QUEUE EMPty(a)(((g->write==(q)->gread)? 1: 0)#define twt_ QUeUe full(a)(((((q)->qwrite +1% TIMEWEIGHT TASKQUEUE SIZED)==(q)->gread)?1: 0)米 generate a Msg entity*正常返回消息体的指针,异常返回NULLT TWTMSG* generateMsg(tT-TWTMSG* pmSg=nULL,if(NULL =-(ptMsg malloc(sizeof(T TWTMSG)))return NULL;memset(ptMsg, 0, sizeof(T TWTMSG)return pmSg;destroy a Msgvoid destroy Msg(t TWTMSG ptMsgif(NULL ptMsg->pfDestroyMsg)pt Msg->pfDestroy Msg(ptMsg->pvMsg)if (NULL != pt Msg)free(pmSgfree a Msg Queuevoid freeTWTMsg Que(T TWTMSG QUEUE* ptMsgQif(NULL =ptMsg Afree(ptMsg Q);Init a Msg QT TWTMSG QUEUE* initTWTMsg QueoT TWTMSG QUEUE pmSg Q= NULlif (NULL ==(ptMsgQ malloc(sizeof(T_ TWTMSG QUeue)goto ErrRetmemset(ptMsgQ, 0, sizeof(T TWTMSG QUEUE))return pmSg Q;Errretprintf( initTWTMsg Que Fail! ")freeTWTMsgQue(ptMsg Q)return nullPop a pvMsg packet from a msg packet queues param g is the packet queue from which to pop the pbuf@return pointer to pvMsg packet if available, NULl otherwiseT TWTMSG* TWTMsg Get(T_ TWTMSG QUEUE aT TWTMSG*//*加锁if(TWT_ QUEUE_ EMPTY(a))iReturn a NUll pointer if the queue is emptypmSg=NULL;else is The queue is not empty so return the next frame from itand adjust the read pointer accordinglypmSg=g->pvMsglq >greadg->gread =((q->gread +1)% TIMEWEIGHT_TASKQUEUE_ SIZE)/*解锁return(pmSg);Push a pmSg packet onto a pvMsg packet queue@param p is the pmsg to push onto the packet queue@param g is the packet queue.W @return 0 if successful, -1 if q is fullnt TWTMsg Send(T tWTMSg*p, T TWTMSG QUEUE *qint ret/if(!TWT_ QUEUE FULL(al)iThe queue isn t full so we add the new frame at the currentw write position and move the write pointer.g->pvMsgla->write]=pg- >write =((q->qwrite+1)% TIMEWEIGHT TASKQUEUE SIZE;ret =oThe stack is full so we are throwing away this value. Keep trackof the number of times this happensg->overflow++ret =-1://*解锁return(ret)**米**米来米***来米*半米*米*半米*米求***半*米米求半**米求半**半求半和*米*//消息分发机制//*算法是//*正常返回0,出错返回-1水米米******水*米*水**米*半*水米米冰半**水水*水米米半米冰水*米水水*水*米水水extern int RecToFile MsgProc(T_ MSG_ REC2 FILE* ptMsg);int DispatchMsg(T TWTMSG *ptMsgitif(NULl = ptMsg goto ErrRet/*dispatch msg*/switch(ptMsg->en Msg Type)case TWT PINgPoNgBuff recRecTo File Msg Procl(TMSG_REC2FE) (pmSg->pMsg);/*处理消息*/destroy Msg( pmSg;/*消毁消息breakdefault.printf("Dispatch Msg Msgtype Error! n")break.return 0ErrRetprintf("Dispatch Msg Fail! ";return-1./*buff size*/#defineP| NGPONG_ BUFF BSIZE0X20000//10*1024*1024/*10M*/*ping pong buff*///chargacPINGBUFF[PINGPONG BUFF BSIZE]; /* Ping Buff*///chargacPONGBUFF[PINGPONG_ BUFF BSIZE] *Pong Buff*/水米米*********米*水**米*半*水米米水**冰水*水米米半半水半米冰水*米水水*水*米米//*释放 ping pong buff/必然成功//*无返回木***木*水****本**水*水水*水****本水**水水****水水***本***米*水void Destroy Ping Pong Butt(T PINGPONGBUFF USE DES ptPing Pong Butt)nLoopif (NULL = pt Ping pong buffreturnfor (nLoop=0; nLooptIng BuffUse[nLoop]. pcHeadAddr)free(ptPing Pong ->t Ping BuffUse[nLoop]. pcHeadAddr)free(pt Ping pong Buff)/初始化 ping pong buff返回 pign pong buff的描述指针//*正常返回0,出错返回-1水水水水水水水水水木水木水水水水水木水木水水水水水水水水本水水水水水水水水水本水水水水水水水水水水水水水T PINGPONGBUFF USE DES InitPing Pong Buff(unsigned int n BuffSizeT PINGPONGBUFF USE DES* ptBuffDes=NULLintnLoop/*获取buf描述*if NULL==(ptBuffDes=malloc(sizeof(T PINGPONGBUFF USE DES))))goto ErrRetmemset(pt BuffDes, 0, sizeof(T_PINGPONGBUFF USE_ DES));/*分别初始化ping和pong*/for(nLoop=0; nLooptIng BuffUsenLoop pcHeadAddr =malloc n BuffSize))goto Err Ret;ptBuffDes->tIng BuffUselnLoop] nBuffSize nBuffsizeptBuffDes->tPing BuffUse[nLoop]. oFfsetptBuffDes->tPing BuffUsenLoop) eUseStatus-=BUFF WRITEABLE;pt BuffDes->eCurUseIDBUFF PINGreturn pt BuffDesErrretprintf("lnitPing Pong Buff Fail!");DestroyIng Pong Buff(pt BuffDes)turn null平**米**米*米***来米米*米*米*半米*米米米来*半米平**米米求*来*半求半来*米求*和*米*/*Reset ping pong buff//*正常返回0,出错返回-1米米米米水冰米*米米水**米米冰*米水米米米米水米水*水米米来米米x米来米米水冰来来宋来水米来米来冰#define ResetBuffUse(ptBuffuse)pt BuffUse->oFfset0pt BuffUse->eUseStatus BUFF WRITEABLEgenerate a file rec msg*正常返回消息体的指针,异常返回NULLT_MSG_REC2lGK SenFRMSB(T_BUFF_USE_DES *ptBuffUse, REC_FILE_DESLIST *ptFileListRT MSG REC2FILE KE* ptRFMsg= NULL;if(NULL ==(ptRFMsg malloc(sizeof(T_ MSG REC2 FILE)return nUllptRFMsg- >pt BuffUse pt BuffUseptRFMsg->pt Filelist ptFilelist;return ptRFMsg
- 2020-12-03下载
- 积分:1
-
光子晶体透射谱代码
光子晶体代码 完美结构代码 在meep中运行
- 2020-12-04下载
- 积分:1
-
一种面向对象的遥感影像多尺度分割方法
:高分辨率遥感影像中丰富的空间结构信息和地理特征信息提取需要在多种不同的尺度下进行,而传统的基于像素光谱特征的影像分割和单尺度影像信息提取方法在这方面存在明显的缺陷.基于区域的面向对象影像分析方法,为高分辨率遥感影像信息提取提供了新的思路,其关键的核心问题在于实现对高分辨率遥感影像的多尺度分割.本文提出了一种基于相邻影像区域合并异质性最小的面向对象多尺度分割算法.影像分割试验结果表明:该方法可以根据任意特定尺度下的影像分析任务或任意感兴趣尺度的地物目标,调整影像分割的尺度参数,从而获得特定尺度下感兴趣的影像区域(对象)作为后续面向对象影像分析和应用的基础
- 2020-12-04下载
- 积分:1
-
瑞利信道下的分集合并技术仿真
本方法能够在给定SNR值的条件下,测试不同分集合并技术在不同SNR值下的误码率情况对比。分集合并技术包括:等增益合并、最大比合并、选择性合并;信道包括:高斯信道以及瑞利信道。
- 2020-12-11下载
- 积分:1
-
基于MATLAB_SIMULINK系统仿真权威指南.rar
simulink是matlab最重要的组件之一,它提供一个动态系统建模、仿真和综合分析的集成环境。simulink已成为国内外高等院校高等数学、数值分析、数字信号处理、自动控制理论以及工程应用等课程的基本教学工具。全书共分为17章,从matlab简介开始,详细介绍了simulink的基础知识、模块操作、信号操作、仿真设置、积分器使用、子系统技术、系统仿真过程、模型的调试、编写m语言s-函数及stateflow建模等内容。在本书最后还重点介绍了控制系统仿真系统、神经网络仿真系统、电力系统仿真系统的原理及其运用。《基于matlab/simulink系统仿真权威指南》按逻辑编排,自始至终用实例描
- 2021-05-06下载
- 积分:1
-
计步器加速度计三轴数据峰值检测算法
matlab程序,用于检测用于计步器的三轴加速度计的三轴数据中的所有峰值和谷值,可以利用这些峰值或者谷值进行下一步的检测计算。
- 2020-12-05下载
- 积分:1
-
css+html登录界面.rar
【实例简介】纯css+html设计的登录界面,简约设计,简化一切冗余的部分
- 2021-11-28 00:36:50下载
- 积分:1
-
现代永磁同步电机控制原理及MATLAB仿真的例程
是现代永磁同步电机控制原理及MATLAB仿真书中的MATLAB例程,本书着眼于现代永磁同步电机控制原理分析及MATLAB仿真应用,系统地介绍了永磁同步电机控制系统的基本理论、基本方法和应用技术。全书分为3部分共10章,主要内容包括三相永磁同步电机的数学建模及矢量控制技术、三相电压源逆变器PWM 技术、三相永磁同步电机
- 2020-12-11下载
- 积分:1
-
数字控制振荡器_nco_的fpga实现
介绍了NCO 数字控制振荡器的工作原理 详细分析了数控振荡器的性能指标和其在FPGA中的实现方法 最后给出了新设计的数控振荡器在QUARTUS2 中的仿真结果第12卷第11期电子元器件用VoL 12 No. 112010年11月Electronic Component Device ApplicationsNov.20102069n80#顶(101#围100am)20020数篇0291潮0x)萨:日6959173国0国L图1 QUARTUS II下仿真波形图功率谱密度函数信号波形图X:4080-sn(2pi*18e61)Y5014余强信号H正弦信"7彐300>…-÷a是2500300035004C004500500055006000250255260265270275280285290图2输出频率为408ⅥH的信号波形与功率谱密度5结束语参考文献本文通过分析数控振荡器的实现原理和性张欣扩频通信数字基带信号处理算法及其vS实现能,给出了通过FPGA来实现NCO的具体方法[M]北京:科学出版社,2004同时通过 QUARTUSⅡ中的仿真验证了本设计的[2]楼顺天MAT.AB7x程序设计语言[M西安:西安电子科技大学出版社,200正确性。结果证明,用该方法设计的NCO可以输3]汤伟良,等数控振荡器在FPGA中的实现门微型机与出多种频率的信号,同时也可以减少资源消耗。应用,2003,22)X(上接第41页表1分档信息及对应放大/哀减量息,也提高了实时数控AGC电路的动态范围和整档位输入信号功放大衰档位输入信号功放大衰个系统的精度。实验结果表明,该电路能够实现号率范围/dBm减量dB号率范围/dBm诚量/dB实时AGC的电路功能,并有效扩展了动态范围。1「12,20186「-33,-24)3523,12)7参考文献36,3)8[51,4杨小牛,楼才义,徐建良软件无线电原理与应用[Ml4-15,-6)9[-80,-51)北京:电子工业出版社,200151-24,-1526实时放大衰减。同时利用FPGA器件良好的数字2]韩尧秦开宇基于数字补偿的实时自动增益控制技术研究[.电子科技大学学报,2007,36(1):79-81特性实现了数控AGC的设计,从而实现了对信号3陈爽高性能频谱分析仪中频信号处理技术研究U的实时数字增益补偿,有效减少了电路体积。同合肥:合肥工业大学,2007时,采用两级数控增益放大/衰減器级联和根据[4曹鹏,费元春.大动态范囯数字中频ACC系统的设计两路不同增益通道提取的度值来判断档位信门北京理工大学学报,2003,23(5:613-61644电子元器件在用2010.11www.ecda.cn
- 2020-12-07下载
- 积分:1