himpp ipc媒体处理软件_第1页
himpp ipc媒体处理软件_第2页
himpp ipc媒体处理软件_第3页
himpp ipc媒体处理软件_第4页
himpp ipc媒体处理软件_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

客户服务电话 客户服务传真 客户服务邮箱 本文以Hi3516A描述为例,未有特殊说明,Hi3516DHi3516A和

Reset(“TotalResetValue”为“-”,表示复位值不确定。数据容量(RAM容量

0b000、0b00X例如:00X表示000或001;

04(2016-02-03(2015-09-02(2015-06-01(2015-02-1前 VGSLDC性 小型 MIPI配 MIPI配置说 LVDSmodesynccode如何配 MIPI频率说 Mipilane频率与VI频率关 Sensor复 VI功 DIS功 如何实现5M场景DIS功 动态 可通过查看log日志,辅助错误定位。息量就越多,当等级为7时,系统的整个运行状态实时的被记录到日志中,此时的信中venc是模块名,与cat命令列出的模块名一致即可。获取日志记录,可以使用命令cat/dev/logmpp,此命令将打印出所有的日志信也可以使用open、read等系统调用来操作/dev/logmpp这个设备节点。媒体业务需要占用一定的内存(MMZ内存)以支持业务正常运转,HiMPP详见海思发布包中的文件\01.software\board\documents_cn\《Hi35xxSDK安装以及D1704x576,2CIF352x576,CIF352x288;而不应出现2CIF为小的图像,而VENC编码为704x576的情况考《HiMPPIPCV3.0媒体处理软件开发参考》。MinFree=0且logmppVBWDR缩仅buffer宽2帧章节,HuaweiLiteOS请参考《HiMPPIPCV3.0媒体处理软件开发参考》。的帧HuaweiLiteOS请参考《HiMPPIPCV3.0无率buffer使buffer-节,HuaweiLiteOS请参考《HiMPPIPCV3.0媒体处理软件开发参考》的最大job数制VGS性能。-task1256byteVGS-1104byte限制VGS性能-无-VGSLDC【现象】5MLDCOverlayEx、Rotate、LDC等功能,也即VGS的性能是所有这些功能的总和,VI/VPSS/VENC等模块都共享。【现象】使用topcpu占用率统计不是很准确,可能出现波动,特别是在小业务场景,top统计的cpu占用率波动会很大。【分析】版本linuxkernelHZ10010ms调度统计,统计时间粒度【解决】MPP版本生成库时,Makefile.param-ffunction-sections编译选项;客户在链接生成应用程序时加入-Wl,-gc-sections,能有效减小应用程序大小,剔除掉没有使MIPI

2MIPIHi3516AMIPI具体规格请参考芯片手册《Hi3516A/Hi3516DHDIPCameraSoc用户指南.pdf》和《FeaturesoftheVideoInterfacesofHiSiliconIPCameras.pdf》【现象】Hi3516AMIPI2linklink4lane8个lane,在产品应用中可以选择使用其中几个lane,对应mipi接口中的lane_id[8]配置。Sensor与Hi3516A对接时,需要如何配置。过配置MIPI模块Lane_id寄存器实现数据通道顺序的调整,根据硬件单板与实际sensor输出通道的对应关系配置此寄存器的值。demolvdsMN34220Hi3516AMIPI实际传输关系(sensordatasheet)0,2,1a、b则lane_id.lane_id={0,2,-1,-1,1,3,-1,-LVDSmodesynccode【现象】sensorLVDS/SUB_LVDS的sync_code有两种模式:不同的传输模式都需要配置不同的synccode。【解决】Mipi最多为4个;Hi3516A只支持2-1WDR。lane的Sync_code4个码字组成,在不同的模式SOF,EOF,SOL,invalidsav,invalideav,validsav,validSOF/EOF/SOL/EOL的sync_code前三个为固定码字:0xFFFF0x0000code都按照正常顺序配置。Panasonic的SensorLink之间乱序,其他厂家暂不涉及。举例1:同一Link内乱序mn34220sync_modeSOL1channel4port4lane)12bit这个顺序在mipi接口中配置Synccode。则sync_code配置为:.sync_code={{0x002,0x003,0x000,0x001},{0x202,0x203,0x200,{0x102,0x103,0x100,{0x302,0x303,0x300,{{0x012,0x013,0x010,{0x212,0x213,0x210,{0x112,0x113,0x110,{0x312,0x313,0x310,{{0x006,0x007,0x004,0x005},{0x206,0x207,0x204,{0x106,0x107,0x104,{0x306,0x307,0x304,{{0x016,0x017,0x014,0x015},{0x216,0x217,0x214,{0x116,0x117,0x114,{0x316,0x317,0x314,{{0x00a,0x00b,0x008,0x009},{0x20a,0x20b,0x208,{0x10a,0x10b,0x108,{0x30a,0x30b,0x308,{{0x00a,0x00b,0x008,0x009},{0x20a,0x20b,0x208,{0x10a,0x10b,0x108,{0x30a,0x30b,0x308,{{0x01a,0x01b,0x018,0x019},{0x21a,0x21b,0x218,{0x11a,0x11b,0x118,{0x31a,0x31b,0x318,{{0x01a,0x01b,0x018,0x019},{0x21a,0x21b,0x218,{0x11a,0x11b,0x118,{0x31a,0x31b,0x318,}mn34220sync_modeSOL2channel2port(4lane)12bitcode的配置。所以最终的的sync_code配置为:.sync_code={{0x002,0x003,0x000,0x001},{0x202,0x203,0x200,{0x102,0x103,0x100,{0x302,0x303,0x300,{{0x006,0x007,0x004,0x005},{0x206,0x207,0x204,{0x106,0x107,0x104,{0x306,0x307,0x304,{{0x00a,0x00b,0x008,0x009},{0x20a,0x20b,0x208,{0x10a,0x10b,0x108,{0x30a,0x30b,0x308,{{0x00a,0x00b,0x008,0x009},{0x20a,0x20b,0x208,{0x10a,0x10b,0x108,{0x30a,0x30b,0x308,{{0x012,0x013,0x010,{0x212,0x213,0x210,{0x112,0x113,0x110,{0x312,0x313,0x310,{{0x016,0x017,0x014,0x015},{0x216,0x217,0x214,{0x116,0x117,0x114,{0x316,0x317,0x314,{{0x01a,0x01b,0x018,0x019},{0x21a,0x21b,0x218,{0x11a,0x11b,0x118,{0x31a,0x31b,0x318,{{0x01a,0x01b,0x018,0x019},{0x21a,0x21b,0x218,{0x11a,0x11b,0x118,{0x31a,0x31b,0x318,}MIPI对应,每一lane可传输的最高速率如何计算。理,多lane传输的数据总量不变,有这样的计算公式:VI_Freq*Pix_Width=Lane_Num*其中,VI_FreqVIPix_Width为像素位宽,Lane_Numlane个数,MIPI_Freq为一个lane能接收的最大频率。MIPI_Freq=(250*12)/4=Sensor用。如果需要修改sensorresetpin,需要注意mipi驱动做适配修改。【分析】sensorreset/unresetmipi驱动中实现的,sensorreset/unresetmipi配VIDIS【现象】1080PDISVI进一个分辨率大于(1920,1080)的图像,如(1920+256,1080+256),MPPoffsetVPSSGrpCrop(2592,1944)5M1944Sensor时序进行配可以根据实际场景进行CROP的调整。

Hisilicon编码的音频码流,会在每一帧数据前添加一个海思语音帧头(详见《HiMPPIPCV2.0媒体处理软件开发参考.pdf》音频章节海思语音帧结构,HuaweiLiteOS请见《HiMPPIPCV3.0媒体处理软件开发参考》),PC端软件不能识别海思语intHisiVoiceGetRawStream(short*Hisivoicedata,short*outdata,int{intlen=0,outlen=short*copyHisidata,*copyoutdata;intcopysamplelen=0;copysamplelen=hisisamplelen;copyHisidata=Hisivoicedata;copyoutdata=outdata;while(copysamplelen>2){len=copyHisidata[1]&0x00ff;copysamplelen-=2;copyHisidata+=2;if(copysamplelen<len){}memcpy(copyoutdata,copyHisidata,len*sizeof(short));copyoutdata+=len;copyHisidata+=len;copysamplelen-=len;outlen+=len;}return}ADPCM格式中,ADPCM_DVI4ADPCM_ORG_DVI4RTP传输使用,不能通过该方式在PC客户端上播放,详情请参考rfc35551标准。参考链接据每帧数据长度PerSampleLen添加海思语音帧头才能播放。NNNNIMA每块字节数IMAADPCM的每块编码数的nblockalign(0x20-0x21,2bytes)ADPCMIMAADPCM格式,每采样点比特数(wbitspersample)44-2RAWRAWRAWRAWRAWintHisiVoiceAddHisiHeader(short*inputdata,short*Hisivoicedata,intPersampleLen,intinputsamplelen){intlen=0,outlen=0;shortHisiHeader[2];short*copyHisidata,*copyinputdata;intcopysamplelen=0;HisiHeader[0]=(short)(0x001<<8)&(0x0300);HisiHeader[1]=PersampleLen&0x00ff;copysamplelen=inputsamplelen;copyHisidata=Hisivoicedata;copyinputdata=inputdata;while(copysamplelen>=PersampleLen){memcpy(copyHisidata,HisiHeader,2*sizeof(short));outlen+=2;copyHisidata+=memcpy(copyHisidata,copyinputdata,PersampleLen*sizeof(short));copyinputdata+=PersampleLen;copyHisidata+=PersampleLen;copysamplelen-=PersampleLen;outlen+=PersampleLen;}return}(VQEWorkSampleRate)16kHz;使能重采样功能,配置输出采样率(ResOutSampleRate)为48kHz,分析输出序列,发现8kHz以上高频部分缺失。装了重采样层以支持8kHz到48kHz的任意标准采样率处理。当客户配置AISampleRate=48kHz,VQEWorkSampleRate=16kHz,ResOutSampleRate=48kHz32kHz16kHzVQE16kHz重采样到48kHz4-3所示。率为48kHz,输出信息频段为0–24kHz。频段。如配置AI采样率16kHz,输出采样率32kHz,min(AISampleRate,ResOutSampleRate)=16kHz,则输出信息频段为0–8kHz。息频段。如配置AI采样率为32kHz,VQEWorkSampleRate16kHz,min(AISampleRate,VQEWorkSampleRate)16kHz08kHz。ResOutSampleRate)/2输出信息频段。如配置AI采样率为32kHz,min(AISampleRate,VQEWorkSampleRate,ResOutSampleRate)16kHz,输出信息频段为0–8kHz。8kHz48kHzAOAI这个是AUDIOCODEC的控制寄存器MISC_CTRL52dacl_deemph[22:21]和的修正,如果输入给AO通道是经过预加重的音频信号,那么开启去加重功能可以恢复到正常频响;如果输入给AO通道的音频信号没有预加重,此时寄存器MISC_CTRL52的[22:21]和[20:19]位开启去加重(00),就会对幅频响应产生影加重,而AUDIOCODEC的控制寄存器MISC_CTRL52dacl_deemph[22:21]和dacr_deemph[20:19]位未关闭(都不为00),故出现此问题。AI通道,AUDIOCODEC的控制寄存器是没有开设预加重功能的,所以AUDIOCODECMISC_CTRL52dacl_deemph[22:21]和dacr_deemph[20:19]位默00。预加重和去加重功能是匹配成对出现的,使用时需要

静态编译(-staticthradrtldllc,lbtrad,l序中,这样的编译方式将会不依赖任何系统动态库(即可独立执行),但无法使用动态库系统。动态编译(普通编译将会采取链接系统库的方式去链接/ib目录下的系统动态库,这样编译出来的程序需要依赖系统动态库,优点是系统动态库可以被多个可执行程序共用,如/bnuoxhiont等。半静态编译cc-++-.-d-t-c编译到可执行程序中去,其他系统库依然依赖系统动态库。这种编译方式,可以lbc,lipthra,,l件。libpthread.so.0,librt.so.0,libdl.so.0即可。$(CC)-shared-o$@-L.-Wl,--whole-archivelibupvqe.alibdnvqe.a-Wl,--libupvqe.a和libdnvqe.a中,都使用了一些共同的功能模块,以达到代码重用以及模块化的目的,并可以在编译成elf文件时节省文件空间。$(CC)-shared-olibshare.so-L.-lupvqe$(CC)-shared-o$@-L.-Wl,--whole-archivelibupvqe.alibdnvqe.a式存在限制,libupvqe.a和libdnvqe.a中不能有同名的函数;LIB_PATH=EXTERN_OBJ_DIR=LIBUPVQE_NAME=libupvqe.aLIBDNVQE_NAME=libdnvqe.aEXTERN_OBJ=$(EXTERN_OBJ_DIR)/*.oall:pre_mk$(TARGET)pre_clr@mkdir-p@cp$(LIB_PATH)$(LIBUPVQE_NAME)$(EXTERN_OBJ_DIR);@cd$(EXTERN_OBJ_DIR);$(AR)-x$(LIBUPVQE_NAME);@cp$(LIB_PATH)$(LIBDNVQE_NAME)$(EXTERN_OBJ_DIR);@cd$(EXTERN_OBJ_DIR);$(AR)-x$(LIBDNVQE_NAME);#$(CC)-shared-o$@-L.libupvqe.so$(CC)-shared-o$@-L.$(EXTERN_OBJ)@rm-rflibupvqe.alibdnvqe.a分别先拆分成.o,再通过.o编译成.so译方式,都可以顺利地生成libshare.so文件。HiMPPHiMPP5$(CC)-shared-o$@-L.-Wl,--whole-archiveli

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论