h 264 pc解碼庫(kù)軟件api參考_第1頁(yè)
h 264 pc解碼庫(kù)軟件api參考_第2頁(yè)
h 264 pc解碼庫(kù)軟件api參考_第3頁(yè)
h 264 pc解碼庫(kù)軟件api參考_第4頁(yè)
h 264 pc解碼庫(kù)軟件api參考_第5頁(yè)
已閱讀5頁(yè),還剩29頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

客戶服務(wù)電話 客戶服務(wù)傳真 客戶服務(wù)郵箱

介紹每一個(gè)API接口函數(shù)。 -*H264_DEC_FRAME_S描述增加H264_DEC_OUTPUT_INFO_S*pFrameInfobit2和bit1修改2.4Hi264DecFrame中注意涉及結(jié)構(gòu)體的由含義描述,將0、1的含義反過來。1-1API接口的說hi_config.h,再將“1.3Hi264DecDestroy的功能修描將“2.1Hi264DecCreate”的參數(shù)成員1目前 圖4-1解碼庫(kù)API函數(shù)使用流程 表1-1解碼庫(kù)開發(fā)包組 表1-2解碼庫(kù)運(yùn)行環(huán)

1 解碼庫(kù)內(nèi)部完成了H.264解碼的主要流程,并對(duì)外提供了靈活簡(jiǎn)單的API,用戶可快開發(fā)應(yīng)用程序。解碼庫(kù)的主要組件及相關(guān)說明如表1-1所示。API六個(gè)庫(kù)文件:libm.lib、libguide.lib和libirc.lib和-Windows2000或更高版本的主流視窗操作系統(tǒng),兼容IntelAMD2002VisualIntelC++9.0/10.0WindowsWindowsXPWindows7Windows98系統(tǒng)上,解碼庫(kù)WindowsWindowsWindows7Windows7IntelP3IntelP3、AMDAthlonXPIntelP4IntelCore3.0GHz512MB以AMDAthlon64AMDSempronAMDAthlon2.1v6vnalu分割符的H.264碼流。為120,即1080p圖像寬。)為68,即1080p圖像高。)--00-圖像不包含B幀,則可以使用快速輸出模式以降低輸出時(shí)延。對(duì)于幀模式的視頻圖像,解碼器將自動(dòng)跳過Deinterlace過程?;蛎繋瑑H包含單slice的應(yīng)用場(chǎng)合不推薦使用。滿足上述條件,解碼器會(huì)強(qiáng)制在slice邊界不做Deblock濾波。占用一定的開銷,所以對(duì)于單核CPU的情況推薦不要使用多線程解碼。voidHi264DecDestroy(HI_HDL--HI_S32Hi264DecGetInfo(H264_LIBINFO_S-------1:支持HighProfile。1:支持cabac解碼。1:支持B-slice解碼。nalu分隔符的H.264碼流。-0--HI_HDLhDec,HI_U8*pStream,HI_U64ullPTS,HI_U32uFlags------碼流長(zhǎng)度(字節(jié)為單位)--------------輸出圖像緩沖區(qū)編號(hào)。(暫不使用00DecodingRefresh)幀標(biāo)示。1:IDR-----輸出當(dāng)前幀信息包含一幀碼流字節(jié)數(shù),各種類型宏塊的個(gè)數(shù)。-00uFlags0uFlags1HI_H264DEC_NEED_MORE_BITS時(shí)才能再次配置一段新的碼流。出,用戶必須在循環(huán)調(diào)用內(nèi)部及時(shí)處理存儲(chǔ)在pDecFrame中的圖像。HI_H264DEC_NO_PICTURE時(shí)才能停止解碼。出,用戶必須在循環(huán)調(diào)用內(nèi)部及時(shí)處理存儲(chǔ)在pDecFrame中的圖像。H264_DEC_FRAME_S中,并隨解碼圖像一起輸出。詳細(xì)信息請(qǐng)參見“3.2.5HI_HDLhDec,HI_U8*pStream,HI_U64ullPTS,HI_U32uFlags“000001”為nalu分隔符的H.264標(biāo)準(zhǔn)格式。------碼流長(zhǎng)度(字節(jié)為單位)--------------輸出圖像緩沖區(qū)編號(hào)。(暫不使用001:IDR-----輸出當(dāng)前幀信息包含一幀碼流字節(jié)--0HI_H264DEC_NO_PICTURE則表明用戶本次配置的碼流無法解出一幀H264_DEC_FRAME_S中,并隨解碼圖像一起輸出。詳細(xì)信息請(qǐng)參見“3.2.5HI_HDLhDec,HI_U32uEnhanceCoeff--------------(暫不使用0201:IDR-----輸出當(dāng)前幀信息,包含一幀碼流字節(jié)數(shù),-(0,圖像增強(qiáng)系數(shù),一般取值范圍是變?cè)酱螅扑]值為40。0pDecFrame既是輸入?yún)?shù)也是輸出參數(shù),用戶在獲取一幀圖像后,應(yīng)立即

3typedefunsignedchar typedefunsignedchar typedefunsignedshort typedefunsignedint typedefsigned typedefsigned typedefsigned typedefint64 typedefunsigned typedefchar typedef typedef typedefstructhiH264_LIBINFO_S{HI_U32 /*HI_U32 /*HI_U32 /*HI_U32uBuild; /*建構(gòu)編號(hào)*/constHI_CHAR*sVersion; /*版本信息*/constHI_CHAR*sCopyRight; /*版權(quán)信息*/HI_U32uFunctionSet; 時(shí)表示當(dāng)前版本不支持該功能/*bit0:快速輸出模 /*bit1:保留 /*bit2:Hi351x數(shù)字水 /*bit3:保留 /*bit4:FMO解 /*bit5:PAFF解 /*bit6:MBAFF解 /*bit7:B片解 /*bit8:加權(quán)預(yù) /*bit9:CABAC算術(shù)解 /*bit10內(nèi)部集成Deinterlace/*bit12:Highprofile/*bit13/*bit11~bit31HI_U32uPictureFormat;/*支持的輸出圖像格式/*0x00:當(dāng)前僅支持YUV420*/HI_U32uStreamInType;/*輸入碼流格式*//*0x00:當(dāng)前僅支持以“000001”為nalu分割符的流式/*H.264HI_U32uPicWidth;/*最大圖像寬度(以像素為單位*/HI_U32uPicHeight;/*最大圖像高度(以像素為單位*/HI_U32uBufNum;/*最大參考幀數(shù)目*/HI_U32uReserved;/*}/*typedefstruct{HI_U32HI_U32HI_UCHARstructhiH264_USERDATA_S}/*typedefstruct{0x00目前解碼庫(kù)只支持YUV4200x00目前解碼庫(kù)只支持以“000001nalu分割符的流式H.264圖像寬度(以宏塊為單位圖像高度(以宏塊為單位bit00快速輸出模式1正常輸出模式bit1~bit2:000110解碼Hi351x11bit40場(chǎng)圖像不做1場(chǎng)圖像做bit50使用單線程解碼/*bit6~bit31:保留位*/H264_USERDATA_S*pUserData; /*用戶私有數(shù)據(jù)*/HI_U32 /*}/*typedefstruct{HI_U32 /*HI_U32 /*當(dāng)前幀的I4x4HI_U32uI8MbNum; /*當(dāng)前幀的I8x8宏塊個(gè)數(shù)*/HI_U32uI16MbNum; /*當(dāng)前幀的I16x16宏塊個(gè)數(shù)*/HI_U32uP16MbNum; /*當(dāng)前幀的P16x16宏塊個(gè)數(shù)*/HI_U32uP16x8MbNum; /*當(dāng)前幀的P16x8宏塊個(gè)數(shù)*/HI_U32uP8x16MbNum; /*當(dāng)前幀的P8x16宏塊個(gè)數(shù)*/HI_U32uP8MbNum; /*當(dāng)前幀的P8x8宏塊個(gè)數(shù)*/HI_U32uPskipMbNum; /*當(dāng)前幀的PSkip宏塊個(gè)數(shù)*/HI_U32uIpcmMbNum; /*當(dāng)前幀的IPCM宏塊個(gè)數(shù)*/}/*解碼器輸出圖像信息數(shù)據(jù)結(jié)構(gòu)*/typedefstructhiH264_DEC_FRAME_S{HI_U8 /*YUV圖像寬度(以像素為單位圖像高度(以像素為單位輸出Y分量的stride以像素為單位輸出U/V分量stride以像素為單位圖像裁減信息:圖像裁減信息:圖像裁減信息:圖像裁減信息:輸出圖像在dpb圖像類型:0:幀1:頂場(chǎng)2:圖像是否有錯(cuò):0:正確;1:幀H264_USERDATA_S*pUserData; /*指向用戶私有數(shù)據(jù)*/H264_OUTPUT_INFO_S*pFrameInfo;/**/}否否是否否是是H264_DEC_ATTR_Sdec_attrbute;H264_DEC_FRAME_Sdec_frame;HI_HDLhandle=NULL;HI_S32 =HI_U8 /*FILE*h264 /*H.264FILE*yuv /*存放YUVHI_U32ImageEnhanceEnable=0; /*0:關(guān)閉圖像增強(qiáng);1:使能圖像增強(qiáng)*/HI_U32StrenthCoeff=40; /*圖像增強(qiáng)系數(shù)*/h264=fopen(argv[1],"rb");yuv=fopen(argv[2],"wb");if(NULL==h264||NULL==yuv){goto}/* =16; /*16個(gè)參考幀*/ =68; /*1080p圖像大小*/ =120; =NULL;/*無用戶私有數(shù)據(jù)*/dec_attrbute.uStreamInType=0; /*輸入以00000001...起始的碼流*/ =0x31;/*正常輸出模式,啟動(dòng)內(nèi)部Deinterlace*//*/*handle=Hi264DecCreate(&dec_attrbute);if(NULL==handle){goto}while(!end){HI_U32lenfread(buf,1,sizeof(buf),h264)*HI_U32flags=(len>0)?0:1; HI_S32result=0;result=Hi264DecFrame(handle,buf,len,0,&dec_frame,flags);while(HI_H264DEC_NEED_MORE_BITS!=result){if(HI_H264DEC_NO_PICTURE=={end=1; /*解碼器內(nèi)所有圖像都已輸出*/}if(HI_H264DEC_OKresult*{/*圖像增強(qiáng)*/{}/*constHI_U8*pY=dec_frame.pY;constHI_U8*pU=dec_frame.pU;constHI_U8*pV=dec_frame.pV;HI_U32width =dec_frame.uWidth;HI_U32height =dec_frame.uHeight;HI_U32yStride =dec_frame.uYStride;HI_U32uvStride=fwrite(pY,1,height*yStride,yuv);fwrite(pU,1,height*uvStride/2,yuv);fwrite(pV,1,height*uvStride/2,}result=Hi264DecFrame(handle,NULL,0,0,&dec_frame,}}/*銷毀解碼器,釋放句柄*/Handle=NULL;if(NULL!=if(NULL!=yuv)H.264H.264PCAPI4APIHI_U32flags=(len>0)?0:1; /**/HI_S32result=0;result=Hi264DecFrame(handle,buf,len,0,&dec_frame,flags);while(HI_H264DEC_NEED_MORE_BITS!=result){if(HI_H264DEC_NO_PICTURE=={end=1; /*解碼器內(nèi)所有圖像都已輸出*/}if(HI_H264DEC_OKresult)/*{/*圖像增強(qiáng)*/{Hi264DecImageEnhance(handle,&dec_frame,}/*constHI_U8*pY=dec_frame.pY;constHI_U8*pU=dec_frame.pU;constHI_U8*pV=dec_frame.pV;HI_U32width =dec_frame.uWidth;HI_U32height =dec_frame.uHeight;HI_U32yStride =de

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論