




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
客戶服務(wù)電話 客戶服務(wù)傳真 客戶服務(wù)郵箱 目 圖4-1按流方式解碼API函數(shù)使用流程 圖4-2按幀方式解碼API函數(shù)使用流程 表1-1解碼庫開發(fā)包組 表1-2解碼庫運行環(huán) 本文以Hi3516A描述為例,未有特殊說明,Hi3516DHi3516A
-*
1 解碼庫內(nèi)部完成了H.265解碼的主要流程,并對外提供了靈活簡單的API,用戶可快開發(fā)應(yīng)用程序。解碼庫的主要組件及相關(guān)說明如表1-1所示。API32-32-64-64-WindowsXP、Windows7、Windows8IntelAMDVisualStudioVisualStudioVisualStudioWindowsXPWindows7Windows7Windows8Windows8Windows無IntelCPUIntelCPUAMDAxCPUIntel45679-------0果圖像不包含B幀,則可以使用解碼序輸出模式以降低輸出時延。INT32IHW265D_Delete(IH265DEC_HANDLE--0---0INT32IHW265D_DecodeFrame(IH265DEC_HANDLEhDecoder,----碼流長度(字節(jié)為單位)--IH265D_DECODE_END-----------原始碼流長度(字節(jié)數(shù))--255-255---輸出當前幀信息包含一幀中各種類型CU的個數(shù)。01uiStreamLen。正常情況下解碼模式配置為IH265D_DECODE。如果函數(shù)返回理存儲在pstOutArgs中的圖像。IH265D_NO_PICTURE,表示解INT32IHW265D_DecodeAU(IH265DEC_HANDLEhDecoder,*pstInArgs,IH265DEC_OUTARGS--------------輸出當前幀信息包含一幀中各種類型CU的個數(shù)。0
3typedefsigned typedefsigned typedefsignedint typedefunsignedchar typedefunsignedshort typedefunsignedint typedefunsigned typedef typedefvoid*(*IHWVIDEO_ALG_MALLOC_FXN)(UINT32uiChannelID,UINT32typedefvoid(*IHWVIDEO_ALG_FREE_FXN)(UINT32uiChannelID,void*pMem);typedefvoid(*IHWVIDEO_ALG_LOG_FXN)(UINT32uiChannelID,IHWVIDEO_ALG_LOG_LEVELeLevel,INT8*pszMsg,...);typedefenum{IH265D_SINGLE_THREAD=0, /*單線程*/ /*多線程}typedefenum{IH265D_DECODE_ORDER=0, /*按解碼序輸出*/ /*按顯示序輸出*/}typedefenum{IH265D_DECODE /* }typedefenum{IH265D_FRAME_I=0,}typedefenum{IH265D_GETDISPLAY=0, /*已經(jīng)解碼出一幀并輸出,可用于顯示*/ /*解碼器沒有圖像輸出,需要更多的碼流*/ /*解碼完畢,已經(jīng)輸出全部圖像*/ /*句柄錯誤*/}/*typedefstruct{/*/*/*/*HW265D_THREADTYPEeThreadType; /*線程類型*/HW265D_OUTPUTORDEReOutputOrder; /*輸出順序,僅在DecodeFrame有效, /*用戶數(shù)據(jù)*/IHWVIDEO_ALG_MALLOC_FXNMallocFxn;/*分配內(nèi)存回調(diào)函數(shù)*/ FreeFxn; /*釋放內(nèi)存回調(diào)函數(shù)*/ /*日志回調(diào)函數(shù)*/typedefstructtagIH265DEC_INARGS{UINT8 /*UINT32 /*UINT64 /*HW265D_DECODEMODEeDecodeMode;/*0:正常模式;1:Flush/*typedefstruct{/*/*/*/*HW265D_DECODESTATUSeDecodeStatus;/*/*/*/*/*/*圖像YUV3/* ///vui /* //vps uiVpsNumUnitsInTick;/* ///*///*/*typedefstruct{UINT32uiUserDataType;/*用戶數(shù)據(jù)類型*/UINT32uiUserDataSize;/*用戶數(shù)據(jù)長度*/UINT8 /*用戶數(shù)據(jù)緩沖區(qū)structtagHW265D_USERDATA*pNext;/*/*typedefstruct{ cVersionChar[IHWVIDEO_ALG_VERSION_LENGTH];/*版本號*/ /*編譯時間*/UINT32 /*/*每幀圖像各種CU數(shù)量信息*/typedefstructtagCU_OUTPUT_INFO{4x4CUnumber8x8CUnumber16x16CU32x32CU64x64CU4x4CUnumber8x8CUnumberUINT32uiCuNumPcm16; /*IPCM16x16CUnumber*/UINT32uiCuNumPcm32; /*IPCM32x32CUnumber*/UINT32uiCuNumPcm64; /*IPCM64x64CUnumber*/UINT32uiCuNumInter8; /*inter8x8CUnumber*/UINT32uiCuNumInter16; /*inter16x16CUnumber*/UINT32uiCuNumInter32; /*inter32x32CUnumber*/UINT32uiCuNumInter64; /*inter64x64CUnumber*/UINT32uiCuNumSkip8; /*skip8x8CUnumber*/UINT32uiCuNumSkip16; /*skip16x16CUnumber*/UINT32uiCuNumSkip32; /*skip32x32CUnumber*/UINT32 /*skip64x64CUnumber是否否是讀取到碼流長度為輸入輸入始位置為buffer0,碼流長度為否輸出是輸出是否void*HW265D_Malloc(UINT32channel_id,UINT32{return(void}voidHW265D_Free(UINT32channel_id,void*{}voidHW265D_Log(UINT32channel_id,IHWVIDEO_ALG_LOG_LEVELeLevel,*p_msg,{}INT32H265DecLoadAU(UINT8*pStream,UINT32iStreamLen,UINT32*{UINT32UINT32state=0xffffffff;BOOL32*pFrameLen=if(NULL==pStream||iStreamLen<={return-}for(i=0;i<iStreamLen;{if((state&0xFFFFFF7E)>=0x100&&(state&0xFFFFFF7E)<=0x13E){if(1==bFrameStartFound{if((pStream[i+1]>>7)=={*pFrameLen=i-4;return0;}}{bFrameStartFound=}}/*findavps,sps,if((state&0xFFFFFF7E)==0x140||(state&0xFFFFFF7E)==0x142||(state&0xFFFFFF7E)==0x144){if(1=={*pFrameLen=i-4;return0;}{bFrameStartFound=}}state=(state<<8)|}*pFrameLen=i;return-1;}intmain(intargc,unsignedchar**{FILE*fpInFile=NULL;FILE*fpOutFile=NULL;INT32iRet=0;UINT8*pInputStream=NULL,*pStream;UINT32uiChannelId=0;UINT32iFrameIdx=0;BOOL32bStreamEnd=0;INT32iFileLen;IH265DEC_HANDLEhDecoder=IHW265D_INIT_PARAMstInitParam={0};IH265DEC_INARGSstInArgs;IH265DEC_OUTARGSstOutArgs={0};/*openinputstreamfileandoutputyuvfile*/fpInFile=fopen(argv[1],"rb");fpOutFile=fopen(argv[2],if(NULL==fpInFile||NULL=={fprintf(stderr,"Unabletoopenh265streamfile%soryuvfile%s.\n",argv[1],goto}printf("decodingfile:%s...\n",printf("saveyuvfile:%s...\n",/*mallocstreambuffer*/fseek(fpInFile,0,SEEK_END);iFileLen=ftell(fpInFile);fseek(fpInFile,0,SEEK_SET);pInputStream=(unsignedchar*)malloc(iFileLen);if(NULL==pInputStream){fprintf(stderr,"Mallocfailed!\n");gotoexitmain;}/*createdecodehandle*/ =0; = = = =IH265D_SINGLE_THREAD; //or =IH265D_DECODE_ORDER; //or =HW265D_Malloc; =HW265D_Free; =iRet=IHW265D_Create(&hDecoder,&stInitParam);if(IHW265D_OK!=iRet){fprintf(stderr,"Unabletocreatedecoder.\n");gotoexitmain;}/*readH.265streamtostreambuffer*/fread(pInputStream,1,iFileLen,fpInFile);pStream=pInputStream;/*decodeprocess*/while(!bStreamEnd){INT32stInArgs.eDecodeMode=(iNaluLen>0)?IH265D_DECODE: =pStream;pStream+=iNaluLen;iFileLen-=stOutArgs.eDecodeStatus=-stOutArgs.uiBytsConsumed={//whendecoderisempty,exitloop;if(stOutArgs.eDecodeStatus==IH265D_NO_PICTURE){bStreamEnd=1;}//outputoneif(stOutArgs.eDecodeStatus=={//saveyuvtooutputfileif(fpOutFile!=NULL){UINT32for(i=0;i<stOutArgs.uiDecHeight;{fwrite(stOutArgs.pucOutYUV[0]+i*stOutArgs.uiYStride,1,stOutArgs.uiDecWidth,fpOutFile);}for(i=0;i<((stOutArgs.uiDecHeight)>>1);{}for(i=0;i<((stOutArgs.uiDecHeight)>>1);{}}}//continuetodecodetherestofstream +=stOutArgs.uiBytsConsumed; -=iRet=IHW265D_De
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度退股及員工持股計劃合同
- 個人股權(quán)轉(zhuǎn)讓合同2025年度含業(yè)績對賭條款
- 二零二五年度臨時項目經(jīng)理職務(wù)聘用與成果轉(zhuǎn)化合同
- 二零二五年度旅游團隊保險責(zé)任免除聲明
- 電線電纜購銷合同
- 管理層勞動合同工資
- 個人數(shù)字資產(chǎn)管理協(xié)議
- 全新池塘出租協(xié)議
- 月餅產(chǎn)品代銷合同
- 鄉(xiāng)村旅游發(fā)展策略與實施方案
- 2025年中央一號文件高頻重點考試題庫150題(含答案解析)
- 接觸隔離標準操作流程
- 港股基礎(chǔ)知識
- 2025年溫州市甌海旅游投資集團有限公司下屬子公司招聘筆試參考題庫附帶答案詳解
- 2025年天津三源電力集團有限公司招聘筆試參考題庫含答案解析
- 2025年上半年浙江嘉興桐鄉(xiāng)市水務(wù)集團限公司招聘10人易考易錯模擬試題(共500題)試卷后附參考答案
- 2025年腹腔穿刺術(shù)課件 (1)2
- (八省聯(lián)考)2025年高考綜合改革適應(yīng)性演練 物理試卷合集(含答案逐題解析)
- 2024年干式電力電容器項目可行性研究報告
- 河南12系列建筑設(shè)計圖集一(12YJ1)
- 2025年度智能倉儲管理系統(tǒng)軟件開發(fā)合同6篇
評論
0/150
提交評論