版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、非經(jīng)本公司2019。保留一切權(quán)利。和個(gè)人不得擅自摘抄、海思技術(shù),任何本文檔內(nèi)容的部分或全部,并不得以任何形式。商標(biāo)、海思和其他海思商標(biāo)均為海思技術(shù)的商標(biāo)。本文檔提及的其他所有商標(biāo)或商標(biāo),由各自的所有人擁有。注意您的產(chǎn)品、服務(wù)或特性等應(yīng)受海思公司商業(yè)合同和條款的約束,本文檔中描述的全部或部分產(chǎn)品、服務(wù)或特性可能不在您的或使用范圍之內(nèi)。除非合同另有約定,海思公司對(duì)本文檔內(nèi)容不做任何明示或默示的或保證。由于產(chǎn)品版本升級(jí)或其他原因,本文檔內(nèi)容會(huì)不定期進(jìn)行更新。除非另有約定,本文檔僅作為使用指導(dǎo),本文檔中的所有陳述、信息和建議不任何明示或暗示的擔(dān)保。海思技術(shù):518129地址:市龍崗區(qū)坂田總部辦公樓ht
2、tp:/sup:客戶服務(wù)郵箱:H.264 PC API 參庫言前言概述本節(jié)介紹本文檔的內(nèi)容、對(duì)應(yīng)的產(chǎn)品版本、適用的讀者對(duì)象、行文表達(dá)約定、歷史修訂等。本文未做特殊說明, Hi3516D 與 Hi3516A 完全一致。 本文未做特殊說明, Hi3556V100 與 Hi3559V100 完全一致。本文未做特殊說明, Hi3516AV200 與 Hi3519V101 完全一致。 產(chǎn)品版本與本文檔相對(duì)應(yīng)的產(chǎn)品版本如下所示。i海思技術(shù)產(chǎn)品名稱產(chǎn)品版本Hi3516V100Hi3531V100Hi3532V100Hi3521V100Hi3520AV100Hi3518V100Hi3516CV100Hi352
3、0DV100Hi3515AV100Hi3516AV100Hi3516DV100Hi3518EV200Hi3518EV201Hi3516CV200H.264 PC API 參庫言讀者對(duì)象本參考適用于程序員閱讀,描述了基于海思H.264 PC用本參考的程序員應(yīng)該:庫開發(fā)的各種參考信息。使熟練使用C/C+語言掌握基本的 Windows32 調(diào)用 內(nèi)容簡介本參考首先概述了H.264 PC庫 API 函數(shù)種類及其關(guān)聯(lián),然后分別詳細(xì)介紹了各種參考信息。本參考內(nèi)容組織如下。ii海思技術(shù)章節(jié)內(nèi)容1概述介紹H.264 PC庫開發(fā)包組件和軟硬件開發(fā)環(huán)境。閱讀本后,您將對(duì)客戶端H.264 PC庫有一個(gè)整體了解。2A
4、PI 函數(shù)本供您查閱 H.264 PC庫的 API 參考信息,詳細(xì)介紹每一個(gè) API 接口函數(shù)。3通用類型及數(shù)據(jù)類型定義介紹 API 用到的通用數(shù)據(jù)類型定義及結(jié)構(gòu)體定義。4API 應(yīng)用實(shí)例通過實(shí)例介紹H.264 PC庫 API 的使用方法。產(chǎn)品名稱產(chǎn)品版本Hi3536V100Hi3531AV100Hi3521AV100Hi3519V100Hi3519V101Hi3516CV300Hi3516EV100Hi3559V100Hi3556V100Hi3516AV200Hi3559AV100ESH.264 PC API 參庫言約定符號(hào)約定在本文中可能出現(xiàn)下列標(biāo)志,它們所代表的含義如下。通用格式約定ii
5、i海思技術(shù)格式說明宋體正文采用宋體表示。黑體一級(jí)、二級(jí)、三級(jí)標(biāo)題采用黑體??w警告、提示等內(nèi)容一律用楷體,并且在內(nèi)容前后增加線條與正文。“Terminal Display”格式“Terminal Display”格式表示屏幕輸出信息。此外,屏幕輸出信息中夾雜的用戶從終端輸入的信息采用加粗字體表示。符號(hào)說明用于警示緊急的情形,若不避免,將會(huì)導(dǎo)致死亡或嚴(yán)重的人身。用于警示潛在的情形,若不避免,可能會(huì)導(dǎo)致或嚴(yán)重的人身。用于警示潛在的情形,若不避免,可能會(huì)導(dǎo)致中度或輕微的人身。用于傳遞設(shè)備或環(huán)境安全警示信息,若不避免,可能會(huì)導(dǎo)致設(shè)備損壞、數(shù)據(jù)丟失、設(shè)備性能降低或其它不可預(yù)知的結(jié)果。不帶安全警示符號(hào)的“
6、注意”不涉及人身 。用于突出重要/關(guān)鍵信息、最佳實(shí)踐和小竅門等?!罢f明”不是安全警示信息,不涉及人身、設(shè)備及環(huán)境傷害信息。H.264 PC API 參庫言表格內(nèi)容約定修改修改內(nèi)容。累積了每次文檔更新的說明。最新版本的文檔包含以前所有文檔版本的更新iv海思技術(shù)修改日期版本修改說明2017-07-1715添加Hi3559AV100ES 相關(guān)內(nèi)容2.1 小節(jié)涉及修改2017-02-2514添加Hi3556V100 的相關(guān)內(nèi)容2016-12-3013第 2 章節(jié),修改 Hi264DecDestroy、Hi264DecFrame 和 Hi264DecAU 的【注意】;修改 Hi264DecImageEn
7、hance的【參數(shù)】和【注意】。2016-07-2812增加B 幀;增加 SVC-T;器支持的最大圖像寬高修改為最大支持 8192 x 81922014-12-2011添加Hi3516D 的相關(guān)內(nèi)容2014-08-0610添加Hi3516A 的相關(guān)內(nèi)容2013-04-0809運(yùn)行環(huán)境增加 Windows7 操作系統(tǒng)器支持的最大圖像寬高修改為最大支持 5632 x 4096Hi264DecAU 和Hi264DecImageEnhance 接口結(jié)構(gòu)體 H264_DEC_FRAME_S 描述增加H264_DEC_OUTT_INFO_S *pFrameInfo2011-07-0508新增H264_OU
8、TT_INFO_S在 H264_DEC_FRAME_S 中新增變量 pFrameInfo內(nèi)容說明-表格中的無內(nèi)容單元。*表格中的內(nèi)容用戶可根據(jù)需要進(jìn)行配置。H.264 PC API 參庫言v海思技術(shù)修改日期版本修改說明2010-11-2607修改 2.1 Hi264DecCreate 中參數(shù) uWorkMode 的描述。修改 2.3 Hi264DecGetInfo 中參數(shù) uFunctionSet 的 bit12的描述支持High Profile。修改 2.3 Hi264DecGetInfo 中參數(shù) uFunctionSet 的 bit13的描述支持多線程。增加第二章 Hi264DecCrea
9、te 的注意事項(xiàng)增加表 1-1 的靜態(tài)庫為 6 個(gè)2008-08-3006修改 2.3 Hi264DecGetInfo 中參數(shù) uFunctionSet 的 bit2和 bit1 的描述。修改 3.2.1 H264_LIBINFO_S 中庫能力集的 bit2和 bit1 的描述。修改 3.2.3 H264_DEC_ATTR_S 中器工作模式的bit2 和 bit1 的描述。增加適用 Hi3512的信息。2008-05-2605增加 2.6 Hi264DecImageEnhance。修改 4.2 程序?qū)嵗黾印皥D像增強(qiáng)”的程序。2008-04-0304修改 2.1 Hi264DecCreate
10、 中參數(shù) uWorkMode 的描述。修改 2.1 Hi264DecCreate 中參數(shù)*serData 的取值范圍。增加 2.1 Hi264DecCreate 中注意的內(nèi)容。修改 2.3 Hi264DecGetInfo 中參數(shù) uFunctionSet 的 bit10的描述支持De-erlace 功能。增加 2.4 Hi264DecFrame 和 2.5 Hi264DecAU 中的參數(shù)*serData 及描述。修改 2.5 Hi264DecAU 中的描述部分。增加 3.2.1 H264_LIBINFO_S 中定義部分 bit10的描述。修改 4.2 程序?qū)嵗性O(shè)置器屬性。刪除表 1-1 動(dòng)態(tài)
11、庫中的說明。2008-01-1503修改 2.4 Hi264DecFrame 中返回值。修改 2.4 Hi264DecFrame 中注意涉及結(jié)構(gòu)體的由“H264_DEC_FRAME_S”改為“H264DecFrame”。增加一個(gè) API 函數(shù)Hi264DecAU。2007-11-1602修改 2.1 Hi264DecCreate 中參數(shù) uWorkMode 的 bit0的含義描述,將 0、1 的含義反過來。修改“Hi264DecFrame”中注意的內(nèi)容,便于英文翻H.264 PC API 參庫言vi海思技術(shù)修改日期版本修改說明譯。將概述中表 1-1庫開發(fā)包組件中的 API 接口的說明中,用戶工
12、程中,應(yīng)該保證先包含 hi_config.h,再包含 hi_h264api.h。兩個(gè)包含的關(guān)系搞反了,已經(jīng)修改完畢。將“1.3 函數(shù)列表”中 Hi264DecDestroy 的功能修描述中,“”改為“銷毀”。將“2.1 Hi264DecCreate”的參數(shù)成員“uPicHeightB”的取值范圍由“0 x80,0 x06”改為“0 x06,0 x80”。2007-09-0501第 1 次版本。H.264 PC API 參考庫目錄目錄前言i1 概述11.11.21.31.41.5描述范圍1接口格式2函數(shù)列表2函數(shù)描述方式3結(jié)構(gòu)體描述方式3API 函數(shù)說明4Hi264DecCreate4Hi264
13、DecDestroy6Hi264DecGetInfo6Hi264DecFrame9Hi264DecAU12Hi264DecImageEnhance14數(shù)據(jù)類型與數(shù)據(jù)結(jié)構(gòu)17通用數(shù)據(jù)類型描述17數(shù)據(jù)結(jié)構(gòu)描述17H264_LIBINFO_S17H264_USERDATA_S18H264_DEC_ATTR_S193.2.4 H264_OUTT_INFO_S203.2.5 H264_DEC_FRAME_S204 API 應(yīng)用實(shí)例224.14.2流式流程圖22程序?qū)嵗?3vii海思技術(shù)H.264 PC API 參考庫插圖目錄插圖目錄圖 4-1庫 API 函數(shù)使用流程圖22viii海思技術(shù)H.264 PC
14、 API 參考庫表格目錄表格目錄表 1-1表 1-2庫開發(fā)包組件1庫運(yùn)行環(huán)境2ix海思技術(shù)H.264 PC API 參考庫1 概述1概述1.1 描述范圍海思提供的 H.264 PC庫內(nèi)部完成了 H.264速地開發(fā)應(yīng)用程序。庫是一套高性能、高可靠性、兼容性良好的。的主要流程,并對(duì)外提供了靈活簡單的 API,用戶可快庫為用戶提供 Windows 環(huán)境下的動(dòng)態(tài)庫和靜態(tài)庫兩種調(diào)用形式,可更方便地開發(fā)應(yīng)用程序。庫的主要組件及相關(guān)說明如表 1-1 所示。表1-1庫開發(fā)包組件用戶可在多種編譯環(huán)境上進(jìn)行基于庫的應(yīng)用程序開發(fā),庫兼容微軟公司的Windows 2000 或更高版本的主流視窗操作系統(tǒng),兼容el 公司
15、和AMD 公司自 2002年來推出的絕大部分面向PC 機(jī)的C所示。組。其主要開發(fā)以及運(yùn)行環(huán)境說明如表 1-21海思技術(shù)組件名稱說明API 接口hi_config.h hi_h264api.h用戶工程中,應(yīng)該保證先包含 hi_config.h,再包含 hi_h264api.h。靜態(tài)庫hi_h264dec_w.lib使用靜態(tài)庫時(shí),應(yīng)該在編譯器選項(xiàng)中選擇忽略下面的六個(gè)庫文件:libm.lib、libguide.lib 和 libirc.lib 和 libc.lib、libmmt.lib、svml_disp.lib,否則編譯時(shí)會(huì)告警不成功。動(dòng)態(tài)庫hi_h264dec_w.lib hi_h264dec_
16、w.dll-示范代碼hi_h264sample.c以讀文件為例,示范庫 API 的調(diào)用方式。H.264 PC API 參考庫1概述表1-2庫運(yùn)行環(huán)境1.2 接口格式無。1.3 函數(shù)列表2海思技術(shù)函數(shù)功能頁碼Hi264DecCreate創(chuàng)建、初始化器句柄。4Hi264DecDestroy銷毀器句柄。6Hi264DecGetInfo查詢庫版本信息和當(dāng)前版本能力集。6Hi264DecFrame對(duì)輸入的一段碼流進(jìn)行并按幀輸出圖像。9Hi264DecAU對(duì)輸入的一幀圖像對(duì)應(yīng)的碼流進(jìn)行并立即輸出此幀圖像。12Hi264DecImageEnhance后的圖像增強(qiáng)。14分類兼容配置配置說明編譯器Visual
17、C+6.0Visual S2003 el C+ 9.0 / 10.0Visual S 2003無。操作系統(tǒng)Windows 98Windows 2000 Windows XP Windows 2003 Windows Vista Windows 7 (32bit)Windows 7 (64bit)Windows XP Windows 7在 Windows 98 系統(tǒng)上,庫將進(jìn)入工作模式,性能較低。硬件el P3 系列 el P4 系列 el Core 系列AMD Athlon64 系列 AMD Sempron 系列 AMD Athlon 系列C主頻在3.0GHz 以上、內(nèi)存大小在 512MB 以
18、上的PC在el P3、AMD AthlonXP 或更早期的 C上,庫將進(jìn)入工作模式,性能較低。H.264 PC API 參考庫1概述1.4 函數(shù)描述方式本章用 6 個(gè)域?qū)?API 參考信息進(jìn)行描述。1.5 結(jié)構(gòu)體描述方式3海思技術(shù)參數(shù)域作用說明簡要描述結(jié)構(gòu)體所實(shí)現(xiàn)的功能。定義列出結(jié)構(gòu)體的定義。注意事項(xiàng)列出結(jié)構(gòu)體的注意事項(xiàng)。參數(shù)域作用目的簡要描述 API 的主要功能。語法列出 API 的語法樣式。描述簡要描述 API 的工作過程。參數(shù)列出 API 的參數(shù)、參數(shù)說明及參數(shù)屬性。返回值列出 API 的返回值及返回值說明。注意使用 API 時(shí)應(yīng)注意的事項(xiàng)。H.264 PC API 參考庫2 API 函
19、數(shù)說明2 API 函數(shù)說明2.1 Hi264DecCreate【目的】創(chuàng)建、初始化器句柄?!菊Z法】HI_HDL Hi264DecCreate(H264_DEC_ATTR_S *pDecAttr );【描述】創(chuàng)建態(tài),設(shè)置器句柄。在開始時(shí),分配空間和初始化器相關(guān)的變量及狀 器輸入碼流類型、輸出圖像格式、器支持的最大圖像的寬高、器支持的最大參考幀數(shù)目等上層應(yīng)用可以使用多線程創(chuàng)建多個(gè)器屬性。器,實(shí)現(xiàn)多路。 【參數(shù)】4海思技術(shù)參數(shù)成員取值范圍輸入/輸出描述pDecAttruPictureFormat0 x00輸入輸出圖像格式。0 x00 表示輸出圖像為 4:2:0 格式。庫暫不支持其他格式。uStrea
20、mype0 x00輸入輸入碼流格式。0 x00 表示輸入碼流為以“00 00 01”為 nalu 分割符的 H.264 碼流。uPicWidthB0 x06, 0 x400輸入器支持的圖像寬度。(以 MB 為。超出取值范圍時(shí),默認(rèn)為 120,即 1080p 圖像寬。)uPicHeightB0 x02, 0 x400輸入器支持的圖像高度。(以 MB 為。超出取值范圍時(shí),默認(rèn)為 68,即 1080p 圖像高。)H.264 PC API 參考庫2 API 函數(shù)說明【返回值】【注意】只有順序和圖像輸出順序一致時(shí),才能使用快速輸出模式,一般而言,如果 圖像不包含 B 幀,則可以使用快速輸出模式以降低輸出
21、時(shí)延。當(dāng)啟動(dòng)器內(nèi)部 Deerlace 功能時(shí),只有輸入采用場(chǎng)模式編碼時(shí)才有效; 圖像,器將自動(dòng)跳過Deerlace 過程。對(duì)于幀模式的適用于單通道且每幀包含多個(gè) slice 的應(yīng)用場(chǎng)合,對(duì)于多通道多線程 或每幀僅包含單 slice 的應(yīng)用場(chǎng)合不使用。5海思技術(shù)返回值宏定義描述0NULL器創(chuàng)建失?。▋?nèi)存分配失敗或者參數(shù)配置錯(cuò)誤)。非 0-器創(chuàng)建成功,返回值為器句柄。參數(shù)成員取值范圍輸入/輸出描述uBufNum0 x01,0 x10輸入分配給器可用作參考幀的緩沖區(qū)數(shù)目。(超出取值范圍時(shí),默認(rèn)為 0 x04)uWorkMode-輸入bit31:6:保留。bit5:啟動(dòng)多線程。0:不啟動(dòng)。1:啟動(dòng)。b
22、it4:啟動(dòng)庫內(nèi)部 Deerlace 功能。0:不啟動(dòng)。1:啟動(dòng)。 bit3:1:保留。bit0:器工作模式。0:快速輸出模式,即解完一幀立即輸出。1:H.264 協(xié)議定義的圖像輸出模式。*serData-輸入指向輸入的用戶數(shù)據(jù),數(shù)據(jù)類型請(qǐng)參見H264_USERDATA_S 定義。(器暫不此參數(shù))u0輸入保留字。H.264 PC庫API 參考2 API 函數(shù)說明需要保證輸入碼流在 slice 邊界不做Deblock 濾波。如果碼流不能啟動(dòng)多線程 滿足上述條件,器會(huì)強(qiáng)制在 slice 邊界不做Deblock 濾波。多線程只在多核 C單路圖像時(shí)才能提高性能,由于線程調(diào)度需要 占用一定的開銷,所以對(duì)
23、于單核 C的情況不要使用多線程。以上各種工作模式互相獨(dú)立,用戶可單獨(dú)或組合設(shè)置。 對(duì)超大圖像的,創(chuàng)建器時(shí)應(yīng)留意系統(tǒng)內(nèi)存容量,如果內(nèi)存不夠,創(chuàng)建解 可能會(huì)失敗。2.2 Hi264DecDestroy【目的】銷毀器句柄?!菊Z法】void Hi264DecDestroy(HI_HDL hDec);【描述】結(jié)束后,銷毀器工作時(shí)分配的內(nèi)存空間,以防止內(nèi)存泄漏?!緟?shù)】【返回值】無?!咀⒁狻繋炀浔挠捎脩舯WC,不允許重復(fù)銷毀庫。 銷毀后的句柄需要手動(dòng)置空。 2.3 Hi264DecGetInfo【目的】查詢庫版本信息和當(dāng)前版本能力集?!菊Z法】【描述】6海思技術(shù)HI_S32 Hi264DecGetInfo(
24、H264_LIBINFO_S *pLibInfo);參數(shù)成員取值范圍輸入/輸出描述hDec-輸入待銷毀的器句柄。H.264 PC API 參考庫2 API 函數(shù)說明用戶可在創(chuàng)建器之前調(diào)用此函數(shù)察看庫版本庫能力集。【參數(shù)】7海思技術(shù)參數(shù)成員取值范圍輸入/輸出描述pLibInfouMajor-輸出庫主uMinor-輸出uRelease-輸出庫發(fā)布uBuild-輸出庫建構(gòu)sVer-輸出庫版本信息sCoRight-輸出庫信息uFunctionSet-輸出器能力信息,含義如下:bit31:14:保留位。 bit130:不支持多線程。1:支持多線程。bit120:不支持High Profile。 1:支持
25、 High Profile。 bit100:不支持內(nèi)部Deerlace。 1:支持內(nèi)部 Deerlace。 bit90:不支持cabac。 1:支持 cabac。 bit80:不支持。1:支持。bit70:不支持B-slice。 1:支持 B-slice。 bit60:不支持MBAFF。1:支持 MBAFF。bit50:不支持PAFF。1:支持 PAFF。H.264 PC API 參考庫2 API 函數(shù)說明【返回值】【注意】無。8海思技術(shù)返回值宏定義描述0-成功獲取庫信息。-1-參數(shù)輸入錯(cuò)誤,獲取失敗。參數(shù)成員取值范圍輸入/輸出描述bit40:不支持 FMO。1:支持 FMO。 bit3:保留
26、位。 bit20:不支持Hi351x 數(shù)字水印。1:支持 Hi351x 數(shù)字水印。bit1:保留位。 bit00:支持快速圖像輸出模式。1:不支持快速圖像輸出模式。uPictureFormat0 x00輸出庫當(dāng)前支持的圖像格式。0 x00 表示僅支持 4:2:0 格式的圖像。uStreamype0 x00輸出庫當(dāng)前支持碼流格式。0 x00 表示僅支持以“00 00 01”為 nalu 分隔符的 H.264 碼流。uPicWidth0 x2000輸出庫當(dāng)前支持的最大圖像寬度。(以像素為)uPicHeight0 x2000輸出庫當(dāng)前支持的最大圖像高度。(以像素為)uBufNum0 x10輸出庫最大
27、可支持的參考幀數(shù)目。u-輸出保留字。H.264 PC API 參考庫2 API 函數(shù)說明2.4 Hi264DecFrame【目的】對(duì)輸入的一段碼流進(jìn)行并按幀輸出圖像?!菊Z法】【描述】本函數(shù)僅支持流式,對(duì)于以“00 00 01”為 nalu 分隔符的連續(xù)、線性 H.264 碼流,用戶可從任意起始地址、任意長度配置給器?!緟?shù)】9海思技術(shù)參數(shù)成員取值范圍輸入/輸出描述hDec-輸入器句柄。pStream-輸入碼流起始地址。iStreamLen-輸入碼流長度(字節(jié)為)。ullPTS-輸入時(shí)間戳信息。pDecFrame-輸出輸出Y 分量地址。-輸出輸出U 分量地址。-輸出輸出V 分量地址。uWidth
28、-輸出輸出圖像寬度。(以像素為)uHeight-輸出輸出圖像高度。(以像素為)uYStride-輸出輸出Y 分量的 stride。(以像素為)HI_S32 Hi264DecFrame (HI_HDL hDec, HI_U8 *pStream,HI_U32 iStreamLen, HI_U64 ullPTS,H264_DEC_FRAME_S *pDecFrame, HI_U32 uFlags);H.264 PC API 參考庫2 API 函數(shù)說明10海思技術(shù)參數(shù)成員取值范圍輸入/輸出描述uUVStride-輸出輸出U/V 分量 stride。(以像素為)uCrop LeftOffset-輸出輸出
29、圖像左邊裁減量。(以像素為)uCrop RightOffs et-輸出輸出圖像右邊裁減量。(以像素為)uCrop TopOffset-輸出輸出圖像上邊裁減量。(以像素為)uCrop BottomOff set-輸出輸出圖像下邊裁減量。(以像素為)uDpbIdx-輸出輸出圖像緩沖區(qū)。(暫不使用)bError0 或 1輸出當(dāng)前圖像錯(cuò)誤標(biāo)示。0:輸出圖像無錯(cuò)。1:輸出圖像有錯(cuò)。uPicFlag0,1,2輸出輸出圖像屬性。0:輸出為幀。1:輸出為頂場(chǎng)。2:輸出為底場(chǎng)。bra0 或 1輸出輸出圖像是否為 IDR(Instantaneous Decoding Refresh)幀標(biāo)示。0:非 IDR 幀。1
30、:IDR 幀。ullPTS-輸出輸出圖像時(shí)間戳信息。uPictureID-輸出輸出圖像序號(hào)。u-輸出保留字。*serDat a-輸出指向輸出的用戶數(shù)據(jù)。*pFrameIn fo-輸出輸出當(dāng)前幀信息, 包含一幀碼流字節(jié)數(shù), 各種類型宏塊的個(gè)數(shù)。H.264 PC API 參考庫2 API 函數(shù)說明【返回值】【注意】在調(diào)用本函數(shù)過程中需要注意以下兩點(diǎn): 在過程中,用戶應(yīng)該將碼流分段,并依次配置給器。當(dāng)用戶調(diào)用此函數(shù),將一段碼流配置給器之后,應(yīng)對(duì)函數(shù)的參數(shù)做如下配置:pStream=NULL;iStreamLen=0;uFlags=0。然后循環(huán)調(diào)用此函數(shù),直到函數(shù)返回 HI_H264DEC_NEED_
31、MORE_BITS 時(shí)才能再次配置一段新的碼流。在上述循環(huán)調(diào)用的過程中,如果函數(shù)返回 HI_H264DEC_OK 則表明有一幀圖像輸出,用戶必須在循環(huán)調(diào)用內(nèi)部及時(shí)處理在 pDecFrame 中的圖像。 在結(jié)束時(shí),為了輸出器內(nèi)部可能的殘留圖像,用戶可對(duì)函數(shù)的參數(shù)做如下配置:uFlags=1、pStream=NULL。然后循環(huán)調(diào)用此函數(shù),直到函數(shù)返回HI_H264DEC_NO_PICTURE 時(shí)才能停止。在上述循環(huán)調(diào)用的過程中,如果函數(shù)返回 HI_H264DEC_OK 則表明有一幀圖像輸出,用戶必須在循環(huán)調(diào)用內(nèi)部及時(shí)處理在 pDecFrame 中的圖像。 函數(shù)提供時(shí)間戳透能,輸入的時(shí)間戳將保存在當(dāng)
32、前碼流后的圖像結(jié) 構(gòu)體H264_DEC_FRAME_S 中,并隨H264_DEC_FRAME_S。圖像一起輸出。詳細(xì)信息請(qǐng)參見庫句柄的由用戶保證,不允許使用已銷毀的庫,或使用野指針。 輸入碼流地址 pStream 和長度 iStreamLen 的針,或碼流長度超出已分配 buffer 的最大長度。由用戶保證,不允許輸入野指 11海思技術(shù)返回值宏定義含義0HI_H264DEC_OK函數(shù)執(zhí)行成功,有一幀圖像輸出。-1HI_H264DEC_NEED_MORE_BITS剩余碼流不夠一幀的數(shù)據(jù),需要重新配置的碼流。uFlags 為 0 時(shí)才會(huì)返回此值。-2HI_H264DEC_NO_PICTURE器內(nèi)部
33、殘留的圖像已經(jīng)全部輸出完畢。uFlags 為 1 時(shí)才會(huì)返回此值。-3HI_H264DEC_ERR_HANDLE器句柄為空或輸出圖像結(jié)構(gòu)體為空。參數(shù)成員取值范圍輸入/輸出描述uFlags-0 或 1輸入模式。0:正常。1:完畢并要求器輸出殘留圖像。H.264 PC API 參考庫2 API 函數(shù)說明2.5 Hi264DecAU【目的】對(duì)輸入的一幀圖像對(duì)應(yīng)的碼流進(jìn)行并立即輸出此幀圖像。【語法】【描述】本函數(shù)僅支持按幀,要求每次配送的僅包含一幀圖像的碼流內(nèi)部必須是符合以“00 00 01”為 nalu 分隔符的 H.264 標(biāo)準(zhǔn)格式?!緟?shù)】12海思技術(shù)參數(shù)成員取值范圍輸入/輸出描述hDec-輸入
34、器句柄。pStream-輸入碼流起始地址。iStreamLen-輸入碼流長度(字節(jié)為)。ullPTS-輸入時(shí)間戳信息。pDecFrame-輸出輸出Y 分量地址。-輸出輸出U 分量地址。-輸出輸出V 分量地址。uWidth-輸出輸出圖像寬度。(以像素為)uHeight-輸出輸出圖像高度。(以像素為)uYStride-輸出輸出Y 分量的 stride。(以像素為)uUVStride-輸出輸出U/V 分量 stride。(以像素為)HI_S32 Hi264DecAU (HI_HDL hDec, HI_U8 *pStream,HI_U32 iStreamLen, HI_U64 ullPTS,H264_
35、DEC_FRAME_S *pDecFrame, HI_U32 uFlags);H.264 PC API 參考庫2 API 函數(shù)說明【返回值】13海思技術(shù)返回值宏定義含義0HI_H264DEC_OK函數(shù)執(zhí)行成功,有一幀圖像輸出。參數(shù)成員取值范圍輸入/輸出描述uCrop LeftOffset-輸出輸出圖像左邊裁減量。(以像素為)uCrop RightOffset-輸出輸出圖像右邊裁減量。(以像素為)uCrop TopOffset-輸出輸出圖像上邊裁減量。(以像素為)uCrop BottomOffs et-輸出輸出圖像下邊裁減量。(以像素為)uDpbIdx-輸出輸出圖像緩沖區(qū)。(暫不使用)bErro
36、r0 或 1輸出當(dāng)前圖像錯(cuò)誤標(biāo)示。0:輸出圖像無錯(cuò)。1:輸出圖像有錯(cuò)。uPicFlag0,1,2輸出輸出圖像屬性。0:輸出為幀。1:輸出為頂場(chǎng)。2:輸出為底場(chǎng)。bra0 或 1輸出輸出圖像是否為 IDR 幀標(biāo)示。0:非 IDR 幀。1:IDR 幀。ullPTS-輸出輸出圖像時(shí)間戳信息。uPictureID-輸出輸出圖像序號(hào)。u-輸出保留字。*serData-輸出指向輸出的用戶數(shù)據(jù)。*pFrameInf o-輸出輸出當(dāng)前幀信息, 包含一幀碼流字節(jié)數(shù),各種類型宏塊的個(gè)數(shù)。uFlags-輸入保留字。H.264 PC API 參考庫2 API 函數(shù)說明【注意】本函數(shù)和Hi264DecFrame 是并列
37、關(guān)系,用戶根據(jù)需要調(diào)用其中一個(gè)即可。在調(diào)用本函數(shù)過程中需要注意以下兩點(diǎn): 在過程中,用戶應(yīng)該將碼流以幀為進(jìn)行分割,每次配送給此函數(shù)的碼流必須且只能包含一幀圖像,否則會(huì)導(dǎo)致圖像輸出異常。在上述循環(huán)調(diào)用的過程中,如果函數(shù)返回 HI_H264DEC_OK 則表明有一幀圖像輸出,返回 HI_H264DEC_NO_PICTURE 則表明用戶本次配置的碼流無法解出一幀圖像。器默認(rèn)用戶每次調(diào)用函數(shù)時(shí)配送的碼流僅包含一幀圖像,因此無論碼流是否完整,都會(huì)在函數(shù)執(zhí)行后將本幀圖像輸出。函數(shù)提供時(shí)間戳透能,輸入的時(shí)間戳將保存在當(dāng)前碼流后的圖像結(jié) 構(gòu) H264_DEC_FRAME_S 中,并隨 H264_DEC_FRA
38、ME_S。圖像一起輸出。詳細(xì)信息請(qǐng)參見庫句柄的由用戶保證,不允許使用已銷毀的庫,或使用野指針。 輸入碼流地址 pStream 和長度 iStreamLen 的針,或碼流長度超出已分配 buffer 的最大長度。由用戶保證,不允許輸入野指 2.6 Hi264DecImageEnhance【目的】后的圖像增強(qiáng)?!菊Z法】【描述】成功一幅圖像后,做圖像后處理,改善某些場(chǎng)景下圖像質(zhì)量。【參數(shù)】14海思技術(shù)HI_S32 Hi264DecImageEnhance (HI_HDL hDec, H264_DEC_FRAME_S *pDecFrame, HI_U32 uEnhanceCoeff);返回值宏定義含義
39、-2HI_H264DEC_NO_PICTURE沒有有效圖像輸出。-3HI_H264DEC_ERR_HANDLE器句柄為空或輸出圖像結(jié)構(gòu)體為空。H.264 PC API 參考庫2 API 函數(shù)說明15海思技術(shù)參數(shù)成員取值范圍輸入/輸出描述hDec-輸入器句柄。pDecFrame-輸入/輸出輸出Y 分量地址。-輸入/輸出輸出U 分量地址。-輸入/輸出輸出V 分量地址。uWidth-輸入/輸出輸出圖像寬度。(以像素為)uHeight-輸入/輸出輸出圖像高度。(以像素為)uYStride-輸入/輸出輸出Y 分量的 stride。(以像素為)uUVStride-輸入/輸出輸出U/V 分量 stride。
40、(以像素為)uCrop LeftOffset-無效保留,內(nèi)部不使用。uCrop RightOffset-無效保留,內(nèi)部不使用。uCrop TopOffset-無效保留,內(nèi)部不使用。uCrop BottomOff set-無效保留,內(nèi)部不使用。uDpbIdx-無效保留,內(nèi)部不使用。bError0 或 1無效保留,內(nèi)部不使用。uPicFlag0,1,2無效保留,內(nèi)部不使用。bra0 或 1無效保留,內(nèi)部不使用。ullPTS-無效保留,內(nèi)部不使用。uPictureID-無效保留,內(nèi)部不使用。u-無效保留字。*serDat a-無效保留,內(nèi)部不使用。*pFrameInf o-無效保留,內(nèi)部不使用。H.
41、264 PC API 參考庫2 API 函數(shù)說明【返回值】【注意】結(jié)構(gòu)體指針 pDecFrame 既是輸入?yún)?shù)也是輸出參數(shù),用戶在獲取一幀圖像后,應(yīng)立即將 Hi264DecFrame 或 Hi264DecAU 的輸出參數(shù) pDecFrame 作為 Hi264DecImageEnhance 的輸入?yún)?shù),無需做任何修改。 庫句柄的由用戶保證,不允許使用已銷毀的庫,或使用野指針。 16海思技術(shù)返回值宏定義含義0HI_H264DEC_OK函數(shù)執(zhí)行成功,有一幀圖像增強(qiáng)并可以輸出。-3HI_H264DEC_ERR_HANDLE庫句柄為空或輸入?yún)?shù)錯(cuò)誤。參數(shù)成員取值范圍輸入/輸出描述uEnhanceC oe
42、ff-(0, 128輸入圖像增強(qiáng)系數(shù), 一般取值范圍是 30,50,數(shù)值越大對(duì)圖像的改變?cè)酱螅?值為 40。H.264 PC API 參考庫3 數(shù)據(jù)類型與數(shù)據(jù)結(jié)構(gòu)3 數(shù)據(jù)類型與數(shù)據(jù)結(jié)構(gòu)3.1 通用數(shù)據(jù)類型描述在 win32 環(huán)境下,API 用到的主要數(shù)據(jù)類型定義如下:數(shù)據(jù)結(jié)構(gòu)描述H264_LIBINFO_S【說明】庫版本、和能力集信息?!径x】17海思技術(shù)/ *庫版本、和能力集信息數(shù)據(jù)結(jié)構(gòu) * / t yp e d e f s t r u c t h i H264_L IBINFO_SHI _U32uMa j o r ;/ * 主* /HI _U32uMi no r ;/ * 次* /t yp
43、 e d e f un s i gn e d c h a rHI _U8 ;t yp e d e f un s i gn e d c h a rHI _UCHAR ; t yp e d e f un s i gn e d s ho r tHI _U16 ;t yp e d e f un s i gn e dHI _U32 ;t yp e d e f s i gn e d c h a rHI _S8 ;t yp e d e f s i gn e d s ho r tHI _S16 ;t yp e d e f s i gn e dHI _S32 ;t yp e d e f _64HI _S64 ;
44、 t yp e d e f un s i gn e d _64HI _U64 ;t yp e d e f c h a rHI _CHAR ;t yp e d e f c h a r *HI _PCHAR ;t yp e d e f vo i d*HI _HDL ;H.264 PC API 參考庫3數(shù)據(jù)類型與數(shù)據(jù)結(jié)構(gòu)* /【注意事項(xiàng)】無。3.2.2 H264_USERDATA_S【說明】用戶私有數(shù)據(jù)信息?!径x】18海思技術(shù)HI _U32 uRe l ea s e ;/ * 發(fā)布 * /HI _U32 uBu il d ;/ * 建構(gòu) * / c on s t HI _CHAR* sVe r ;
45、/ 版* 本信息 * / c on s t HI _CHAR* sCo R igh t;/ * 信息 * /HI _U32 uFun c ti onSe t;/ * 庫能力集 * / * 除b it 0位外,其他標(biāo)志位為1時(shí)表示當(dāng)前版本支持該功能,為 0時(shí)表示當(dāng)前版本不支持該功能 * / * b it 0 : 快速輸出模式* / * b it 1 : 保留位* / * b it 2 : Hi 351x數(shù)字水印* / * b it 3 : 保留位* / * b it 4 : FMO* / * b it 5 : PAFF* / * b it 6 : MBAFF* / * b it 7 : B 片*
46、 / * b it 8 :* / * b it 9 : CABAC算術(shù)* / * b it 10 : 內(nèi)部集成Dee r l ace * / * b it 12 : Hi gh p r o f il e * / * b it 13 : 多線程* / * b it 11 b it 31 : 保留位 * /HI _U32uP i c t u r e Fo rma t; / * 支持的輸出圖像格式* / * 0 x00 :當(dāng)前僅支持YUV420圖像格式 * / HI _U32uS t r eamyp e ; / * 輸入碼流格式 * / * 0 x00 :當(dāng)前僅支持以“00 00 01”為n a l
47、 u分割符的流式/ *H. 264碼流 * /HI _U32 uP i cWi d t h ;/ * 最大圖像寬度(以像素為 ) * / HI _U32 uP i cHe i gh t;/ * 最大圖像高度(以像素為 ) * / HI _U32 uBu fNum;/ * 最大參考幀數(shù)目 * /HI _U32 u;/ * 保留字 * / H264_L IBINFO_S ;H.264 PC API 參考庫3數(shù)據(jù)類型與數(shù)據(jù)結(jié)構(gòu)【注意事項(xiàng)】無。3.2.3 H264_DEC_ATTR_S【說明】器屬性信息?!径x】式 * /01”為* /* /* /19海思技術(shù)/ *器屬性數(shù)據(jù)結(jié)構(gòu) * /t yp e
48、d e f s t r u c t h i H264_DEC_ATTR_SHI _U32uP i c t u r e Fo rma t;/ *器輸出圖像格式 * / * 0 x00 : 目前庫只支持YUV420圖像格HI _U32uS t r eamyp e ;/ * 輸入碼流格式 * / * 0 x00 : 目前庫只支持以“00 00/ * n a l u分割符的流式H. 264碼流 * /HI _U32 uP i cWi d t h B ;/圖*像寬度(以宏塊為 ) * / HI _U32 uP i cHe i gh t B ;/ 圖* 像高度(以宏塊為 ) * / HI _U32 uBu
49、 fNum;/ * 參考幀數(shù)目 * /HI _U32 uWo r kMod e ;/ * 器工作模式 * / * b it 0 : 0 : 快速輸正出常模輸式出;模式1 :* / * b it 1 b it 2 : * / * 00 : 僅圖像 * /* / 01 : 保留H/ i*35110 x數(shù): 字水印 * /* / 11 : 保留/ * b it 4 : 0 : 場(chǎng)圖像不做d ee r l ace/ *1 : 場(chǎng)圖像做d ee r l ace/ * b it 5 : 0 : 使* /用單線程/ *1 : 多s li c*e/使用多線程/ * 用戶私有數(shù)據(jù)結(jié)構(gòu) * /t yp e d e
50、 f s t r u c t h i H264_USERDATA_SHI _U32uUs e rDayp e ;/ *用戶數(shù)據(jù)類型* /HI _U32uUs e rDa t a S i ze ;/ *用戶數(shù)據(jù)長度* /HI _UCHAR*pDa t a ;/用* 戶數(shù)據(jù)緩沖區(qū)* / s t r u c t h i H264_USERDATA_S*pNe x t;/ * 指向下一段用戶數(shù)據(jù) * / H264_USERDATA_S ;H.264 PC API 參考庫3數(shù)據(jù)類型與數(shù)據(jù)結(jié)構(gòu)【注意事項(xiàng)】無。3.2.4 H264_OUT【說明】T_INFO_S器輸出幀信息?!径x】【注意事項(xiàng)】無。3.2.
51、5 H264_DEC_FRAME_S【說明】器輸出圖像信息?!径x】20海思技術(shù)/ *器輸出圖像信息數(shù)據(jù)結(jié)構(gòu) * /t yp e d e f s t r u c t h i H264_DEC_FRAME_SHI _U8*;/ * Y分量地址 * / *器輸出幀信息數(shù)據(jù)結(jié)構(gòu) * /t yp e d e f s t r u c t h i H264_OUTT_ INFO_SHI _U32 uP i cBy t e s ;/ *當(dāng)前幀的字節(jié)數(shù) * /HI _U32 u I 4MbNum;/ *當(dāng)前幀的I 4x4宏塊個(gè)數(shù) * /HI _U32 u I 8MbNum;/ *當(dāng)前幀的I 8x8宏塊個(gè)數(shù) *
52、 /HI _U32 u I 16MbNum;/ *當(dāng)前幀的I 16x16宏塊個(gè)數(shù) * /HI _U32 uP16MbNum;/ *當(dāng)前幀的P16x16宏塊個(gè)數(shù) * /HI _U32 uP16x8MbNum;/ *當(dāng)前幀的P16x8宏塊個(gè)數(shù) * /HI _U32 uP8x16MbNum;/ *當(dāng)前幀的P8x16宏塊個(gè)數(shù) * /HI _U32 uP8MbNum;/ *當(dāng)前幀的P8x8宏塊個(gè)數(shù) * /HI _U32 uP s k i pMbNum;/ *當(dāng)前幀的PSk i p宏塊個(gè)數(shù) * /HI _U32 u I p cmMbNum;/ *當(dāng)前幀的I PCM宏塊個(gè)數(shù) * / H264_OUTT_ I
53、NFO_S ;/ * b it 6 b it 31 : 保留位* / H264_USERDATA_S*s e rDa t a ;/ * 用戶私有數(shù)據(jù) * /HI _U32u;/ * 保留字 * / H264_DEC_ATTR_S ;H.264 PC API 參考庫3 數(shù)據(jù)類型與數(shù)據(jù)結(jié)構(gòu)HI _U8 HI _U8 HI _U32 HI _U32 HI _U32 HI _U32 HI _U32 HI _U32 HI _U32 HI _U32 HI _U32 HI _U32 HI _U32 HI _U32 HI _U64 HI _U32HI _U32*;/ * U分量地址 * / * V分量地址 *
54、 /圖/ *像寬度(以像素為/ * 圖像高度(以像/輸*出Y分量的s t r i d e/ 輸* 出U/ V分量s t r i d euWi d t h ; uHe i gh t; uYS t r i d e ;uUVS t r i d e ;) * /) * /(以像素為 (以像素為) * /) * /* /uCr o uCr o uCr o uCr ouDpb I dx ;t P i c F l a g ; bE rr o r ;r a ;u ll PTS ;Le f t O ff s e t; / * 圖像裁減信息:左邊界裁減像素?cái)?shù)R i gh tOff s e t; TopOf f s
55、 e t; Bo tt omOff s e t; / * 圖像裁減信息:右邊界裁減像素?cái)?shù) * / * 圖像裁減信息:上邊界裁減像素?cái)?shù) * / * 圖像裁減信息:下邊界裁減像素?cái)?shù) * / * 輸出圖像在dpb中的序號(hào) * /圖*像類型:0 :幀; 1 :頂場(chǎng) ; 2 :底場(chǎng) * /圖/ *像是否有錯(cuò):0 :正確 ; 1 :圖像有錯(cuò) * / * 圖像是否為IDR幀:0 :非IDR; 幀1 : IDR幀時(shí)/ *間戳 * / *圖像序號(hào) * / *保留字 * / * 指向用戶私有數(shù)據(jù) * /* /uP i c t u r e ID;u;H264_USERDATA_S *s e rDa t a ;*pF
56、 r ame I n f o ;H264_OUTT_ INFO_S/ * /指向當(dāng)前幀輸出信息 H264_DEC_FRAME_S ;【注意事項(xiàng)】無。21海思技術(shù)bpppp素為*H.264 PC API 參考庫4 API 應(yīng)用實(shí)例4 API 應(yīng)用實(shí)例4.1 流式流程圖圖4-1庫 API 函數(shù)使用流程圖開始否碼流是否結(jié)束?是碼流數(shù)據(jù)否殘留數(shù)據(jù)是否有圖像輸出?結(jié)束22海思技術(shù)銷毀器是顯示或保存圖像是否有圖像輸出?是顯示或保存圖像進(jìn)入flush模式否碼流創(chuàng)建器H.264 PC API 參考庫4 API 應(yīng)用實(shí)例4.2 程序?qū)嵗?3海思技術(shù)H264_DEC_ATTR_Sd ec _ a tt r bu
57、t e ;H264_DEC_FRAME_Sd ec _ f r ame ; HI _HDL h a nd l e = NULL ;HI _S32 e nd= 0 ;HI _U8bu f 0 x80000 ;/ *碼流緩沖區(qū) * /F I LE *h264 = NULL ;/ * H. 26碼4 流文件 * /F I LE *yuv = NULL ;/存* 放YUV圖像的文件 * /HI _U32 Ima g eEnh a n ceEn a b l e = 0 ;/ * :0 關(guān)閉圖像增強(qiáng);1:使能圖像增強(qiáng) * / HI _U32 S t r e n t hCo e ff = 40 ; / *圖像增強(qiáng)系數(shù) * / * 打開264碼流文件和YUV圖像的文件 * / h264 = f op e n ( a r gv 1 , r b ) ;yuv= f op e n ( a r gv 2 , wb ) ;i f(NULL
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 影碟播放機(jī)項(xiàng)目可行性實(shí)施報(bào)告
- 捆扎用皮帶項(xiàng)目評(píng)價(jià)分析報(bào)告
- 將棋日本象棋項(xiàng)目可行性實(shí)施報(bào)告
- 汽艇項(xiàng)目可行性實(shí)施報(bào)告
- 電子支付成本效益評(píng)估
- 2024版住房貸款保證合同范本
- 2024版運(yùn)輸車租賃合同范本
- 度房屋租賃合同表
- 按季付款房屋租賃合同
- 2024年安全生產(chǎn)責(zé)任保險(xiǎn)制度(二篇)
- 井筒裝備工程施工設(shè)計(jì)方案
- 注塑行業(yè)~質(zhì)量管理辦法
- 吊車組立鐵塔施工方案
- 云南省農(nóng)業(yè)人口獨(dú)生子女報(bào)考高考院校升學(xué)加分.doc
- 設(shè)備管理TPM知識(shí)(共115頁).ppt
- 家庭教育教案 《關(guān)注孩子成長做孩子的朋友》
- 司法行政系統(tǒng)法律服務(wù)監(jiān)督卡存根
- 全等三角形全等三角形與中點(diǎn)問題教師版
- 小學(xué)英語六年級(jí)一般將來時(shí)復(fù)習(xí)(課堂PPT)
- HEC-RAS軟件傻瓜式操作步驟(共17頁)
- 醫(yī)教結(jié)合工作方案
評(píng)論
0/150
提交評(píng)論