解码库软件参考_第1页
解码库软件参考_第2页
解码库软件参考_第3页
解码库软件参考_第4页
解码库软件参考_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

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

文档简介

2014-2015。保留一切权利。商标声、注2014-2015。保留一切权利。商标声、注深圳市海思半导体有限公+86-755-+86-755-目目录1概 描目目录1概 描述范 接口格 函数列 函数描述方 结构体描述方 API函数说 3数据类型与数据结 通用数据类型描 数据结构描 流式解码流程 按帧解码流程 程序实 插图目插图目图插图目插图目图4-1按流方式解码API函数使用流程 图4-2按帧方式解码API函数使用流程 表格目表格目表表格目表格目表1-1解码库开发包组 表1-2解码库运行环 v前前言本文以Hi3516A描述为例,未有特殊说明,Hi3516DHi3516AH.265PC解码库开发的各种参考信息。使前前言本文以Hi3516A描述为例,未有特殊说明,Hi3516DHi3516AH.265PC解码库开发的各种参考信息。使 前言符号约通用格式约表格内容约-*“TerminalDisplay前言符号约通用格式约表格内容约-*“TerminalDisplay“TerminalDisplay”格式表示屏幕输出信息。此外,屏幕前2015-12-322015-02-前2015-12-322015-02-22.1节,pstInitParam参数的取值范围有修改2014-12-12014-08-11概1概1.1H.265API,用户可快Windows环境下的动态库和静态库两种调用形式,可更方便地开发应用程序。解码库的主要组件及相关说明如表1-11概1概1.1H.265API,用户可快Windows环境下的动态库和静态库两种调用形式,可更方便地开发应用程序。解码库的主要组件及相关说明如表1-1所示。表1-1WindowsXP、Windows7、Windows8IntelAMDPCCPU芯片组。其主要开发以及运行环境说明如1-2所1API接32-32-64-64-1概表1-245679Visual1概表1-245679VisualStudioVisualStudioVisualStudioWindowsXPWindows7Windows7Windows8Windows8Windows无Intel酷睿系列CPUIntel奔腾系列CPUAMDAxCPUIntelSSE、SSE2、SSE3、SSE41概1.531概1.53列出API的参数、参数说明及参数属性列出API的返回值及返回值说明2API函数说明HW265API函数调用均采用_cdecl2.14-2API函数说明HW265API函数调用均采用_cdecl2.14--- 果图像不包含B帧,则可以使用解码序输出模式以降低输出时延。 2.250 回调函数指针无效。Free回调函数指针无效。Log 果图像不包含B帧,则可以使用解码序输出模式以降低输出时延。 2.250 回调函数指针无效。Free回调函数指针无效。Log-参见HW265D_USERDATA定义。---2.3INT326输入/--0输入/2.3INT326输入/--0输入/--2.4INT32IHW265D_DecodeFrame(IH265DEC_HAND*pstInArgs,IH265DEC_OUTARGShDecoder,IH265DEC_IN本函数支持流式解码,对于以“000001naluH.265码流,用7-2.4INT32IHW265D_DecodeFrame(IH265DEC_HAND*pstInArgs,IH265DEC_OUTARGShDecoder,IH265DEC_IN本函数支持流式解码,对于以“000001naluH.265码流,用7------用IH265D_DECODE_END0输入/-80---------YUV3----uiAspectRatioIdc255-uiAspectRatioIdc255-80---------YUV3----uiAspectRatioIdc255-uiAspectRatioIdc255---输出当前帧信息包含一帧中各种类型CU的个数。pStream和码流字节数uiStreamLen。正常情况下解码模式配置为IH265D_DECODE。如果函数返回IH265D_GETDISPLAY则表明有一帧图像输出,用户必须在循环调用内部及时处理存储在pstOutArgs中的图像。在码流结束后,解码模式配置为IH265D_DECODE_END进入flush模式清空解码器pStream和码流字节数uiStreamLen。正常情况下解码模式配置为IH265D_DECODE。如果函数返回IH265D_GETDISPLAY则表明有一帧图像输出,用户必须在循环调用内部及时处理存储在pstOutArgs中的图像。在码流结束后,解码模式配置为IH265D_DECODE_END进入flush模式清空解码器IH265D_NO_PICTURE,表示解码2.5本函数支持按帧解码,输入码流必须包含且仅包含一帧H.265码流,并且按照解码序91IHW265D_INVALID_ARGUME输入/----------uiAspectRatioIdc255时-uiAspectRatioIdc255输入/----------uiAspectRatioIdc255时-uiAspectRatioIdc255时--0输入/-输出当前帧信息包含一帧中各种类型CU的个数。0输入/-输出当前帧信息包含一帧中各种类型CU的个数。3数据类型与数据结3数据类型与数据结构3.1API用到的主要数据类3数据类型与数据结3数据类型与数据结构3.1API用到的主要数据类型定义如下API用到的函数指针类型定义如下typedefvoid*(*IHWVIDEO_ALG_MALLOC_FXN)(UINT32uiChannelID,UINT32typedefenum{3数据类型与数据结IH265D_SINGLE_THREAD=0,}/*/*3数据类型与数据结IH265D_SINGLE_THREAD=0,}/*/*3.2.2typedefenum{}/*/*3.2.3typedefenum{}/*/*解码完毕并要求解码器输出残留图像3.2.43数据类型与数据结typedefenum{IH265D_FRAME_I=0,}3.2.53数据类型与数据结typedefenum{IH265D_FRAME_I=0,}3.2.5typedefenum{}/*已经解码出一帧并输出,可用于显示/*解码器没有图像输出,需要更多的码流/*解码完毕,已经输出全部图像/*3.2.6/*解码器初始化参数{/*/*/*/*/*HW265D_THREADTYPE输出顺序,仅在DecodeFrame有效3数据类型与数据结/*/*分配内存回调函数/*释放内存回调函数3数据类型与数据结/*/*分配内存回调函数/*释放内存回调函数/*3.2.7/**/typedefstructtagIH265DEC_INARGS{UINT8*pStream;UINT64/*/*/*/*0:正常模式;1:Flush3.2.8/*{/*/*/*/*/*3数据类型与数据结/*/*/*/*3数据类型与数据结/*/*/*/*/*图像YUV3/*//vui//;//*/*//cuinfo/*/*3.2.9/*{/*用户数据类型/*用户数据长度/*用户数据缓冲区*pNext;/*3数据类型与数据结3.2.10/*{/*/*/*3数据类型与数据结3.2.10/*{/*/*/*3.2.11/*每帧图像各种CU数量信息*/{UINT324x4CU8x8CU4x48x8numbernumber8x8CUnumber8x8numberskip16x16CUnumberskip32x32CUnumberUINT323数据类型与数据结UINT323数据类型与数据结UINT324.14.1是否是读取到码流长度为输出是输出是否调用Decerame(),输入码流起始buffer0iBysConsumed是否是读取到码流长度为输出是输出是否调用Decerame(),输入码流起始buffer0iBysConsumed,码流长度为iLen-iBysConsumed置为buffer0,码流长度为从bin文件中读取码流到buffer0,否输入否4.2开结是否是函数返回错误否输出否是4.2开结是否是函数返回错误否输出否是输出显调用销毁解创建解4.3{return(void4.3{return(void}{}void*voidHW265D_Log(UINT32{}{UINT32*pFrameLen=if(NULL==pStream||iStreamLen<={}for(i=0;i<iStreamLen;{if((state&0xFFFFFF7E)>=0x100&&(state&0xFFFFFF7E)<=0x13E){if(1==bFrameStartFound{if((pStream[i+1]>>7)=={*pFrameLen=i-4;return0;}}{}}/*findavps,sps,pps*/if((state&0xFFFFFF7E){{}}/*findavps,sps,pps*/if((state&0xFFFFFF7E){if(1=={*pFrameLen=i-4;return0;}{}}state=(state<<8)|}*pFrameLen=}intmain(intargc,unsignedchar**{FILE*fpInFile=NULL;FILE*fpOutFile=NULL;INT32iRet=0;UINT8*pInputStream=NULL,uiChannelId=iFrameIdx=bStreamEnd=INT32IH265DEC_INARGSstInArgs;IH265DEC_OUTARGSstOutArgs=/*openinputstreamfileandoutputyuvfile*/fpInFile=fopen(argv[1],"rb");if/*openinputstreamfileandoutputyuvfile*/fpInFile=fopen(argv[1],"rb");if(NULL==fpInFile||NULL=={fprintf(stderr,"Unabletoopenh265streamfilefile%s.\n",}file:file:/*mallocfseek(buffer0,iFileLen=ftell(fpInFile);fseek(fpInFile,0,SEEK_SET);pInputStream=(unsignedchar*)if(NULL==pInputStream){}/*createdecodehandle*/ ====//=//===iRet=IHW265D_Create(&hDecoder,&stInitParam);if(IHW265D_OK!=iRet){fprintf(stderr,"Unabletocreatedecoder.\n");gotoexitmain;}/*readH.265streamtostreambuffer*/fread(pInputStream,1,iFileLen,fpInFile);pStream=/*decode/*readH.265streamtostreambuffer*/fread(pInputStream,1,iFileLen,fpInFile);pStream=/*decodeprocess*/while(!bStreamEnd){INT32=(iNaluLen>0)?:==pStream+={//whendecoderisempty,exitloop;{bStreamEnd=1;}//outputone{//saveyuvtooutputfileif(fpOutFile!=NULL){UINT32{stOutArgs.uiDecWidth,fpOutFile);}{fwrite(stOutArgs.pucOutYUV[1]+i*stOutArgs.uiUVStride,stOutArgs.uiDecWidth>>1,}{fwrite(stOutArgs.pucOutYUV[2]+i*stOutArgs.uiUVStride,stOutArgs.uiDecWidth>>1,}}}//continue{fwrite(stOutArgs.pucOutYUV[1]+i*stOutArgs.u

温馨提示

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

评论

0/150

提交评论