MJPEG PC解碼庫(kù)軟件API參考_第1頁(yè)
MJPEG PC解碼庫(kù)軟件API參考_第2頁(yè)
MJPEG PC解碼庫(kù)軟件API參考_第3頁(yè)
MJPEG PC解碼庫(kù)軟件API參考_第4頁(yè)
MJPEG PC解碼庫(kù)軟件API參考_第5頁(yè)
已閱讀5頁(yè),還剩31頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、 MJPEG PC解碼庫(kù)軟件API參考文檔版本03發(fā)布日期2008-09-05部件編碼N/A深圳市海思半導(dǎo)體有限公司為客戶提供全方位的技術(shù)支持,用戶可與就近的海思辦事處聯(lián)系,也可直接與公司總部聯(lián)系。深圳市海思半導(dǎo)體有限公司地址:深圳市龍崗區(qū)坂田華為基地華為電氣生產(chǎn)中心郵編:518129網(wǎng)址:客戶服務(wù)電話:+86-755-28788858客戶服務(wù)傳真:+86-755-28357515客戶服務(wù)郵箱:support版權(quán)所有 深圳市海思半導(dǎo)體有限公司2008。保留一切權(quán)利。非經(jīng)本公司書面許可,任何單位和個(gè)人不得擅自摘抄、復(fù)制本文檔內(nèi)容的部分或全部,并不得以任何形式傳播。商標(biāo)聲明、海思和其他海思商標(biāo)均為

2、深圳市海思半導(dǎo)體有限公司的商標(biāo)。本文檔提及的其他所有商標(biāo)或注冊(cè)商標(biāo),由各自的所有人擁有。注意由于產(chǎn)品版本升級(jí)或其他原因,本文檔內(nèi)容會(huì)不定期進(jìn)行更新。除非另有約定,本文檔僅作為使用指導(dǎo),本文檔中的所有陳述、信息和建議不構(gòu)成任何明示或暗示的擔(dān)保。 目錄前言 (11 概述.1-11.1 概述.1-21.2 函數(shù)列表.1-31.3 函數(shù)描述方式.1-31.4 結(jié)構(gòu)體描述方式.1-42 API函數(shù).2-12.1 HiMJPEGDecCreate.2-22.2 HiMJPEGDecDestroy.2-32.3 HiMJPEGDecGetInfo.2-32.4 HiMJPEGDecFrame.2-63 數(shù)據(jù)

3、類型與數(shù)據(jù)結(jié)構(gòu).3-13.1 通用數(shù)據(jù)類型描述.3-23.2 數(shù)據(jù)結(jié)構(gòu)描述.3-23.2.1 MJPEG_USERDATA_S.3-23.2.2 MJPEG_LIBINFO_S.3-23.2.3 MJPEG_DEC_ATTR_S.3-43.2.4 MJPEG_DEC_FRAME_S.3-44 應(yīng)用實(shí)例.4-14.1 MJPEG解碼流程圖.4-24.2 程序?qū)嵗?4-2 插圖目錄圖4-1 解碼庫(kù)API函數(shù)使用流程圖.4-2 API參考表格目錄表格目錄表1-1 解碼庫(kù)開(kāi)發(fā)包組件.1-2表1-2 解碼庫(kù)運(yùn)行環(huán)境.1-2 MJPEG PC解碼庫(kù)軟件API參考前言前言概述本參考首先介紹MJPEG PC解

4、碼庫(kù)API函數(shù)種類及其關(guān)聯(lián),再分別詳細(xì)介紹各種參考信息,最后通過(guò)實(shí)例介紹MJPEG PC解碼庫(kù)API的使用方法。產(chǎn)品版本與本文檔相對(duì)應(yīng)的產(chǎn)品版本如下。產(chǎn)品名稱產(chǎn)品版本Hi3511 H.264編解碼處理器V100Hi3512 H.264編解碼處理器V100讀者對(duì)象本文檔(本指南主要適用于以下工程師:z客戶開(kāi)發(fā)工程師內(nèi)容簡(jiǎn)介本文檔包含4章,內(nèi)容如下。章節(jié)內(nèi)容1 概述介紹MJPEG PC解碼庫(kù)開(kāi)發(fā)包組件和軟硬件開(kāi)發(fā)環(huán)境。2 API函數(shù)介紹MJPEG PC解碼庫(kù)的API接口函數(shù)。介紹API應(yīng)用的通用數(shù)據(jù)類型定義及結(jié)構(gòu)體定義。3 數(shù)據(jù)類型及數(shù)據(jù)類型定義4 應(yīng)用實(shí)例通過(guò)實(shí)例介紹MJPEG PC解碼庫(kù)API

5、的使用方法。 前 言MJPEG PC 解碼庫(kù)軟件API 參考約定符號(hào)約定在本文中可能出現(xiàn)下列標(biāo)志,它們所代表的含義如下。 通用格式約定格式 說(shuō)明宋體 正文采用宋體表示。黑體 一級(jí)、二級(jí)、三級(jí)標(biāo)題采用黑體。楷體警告、提示等內(nèi)容一律用楷體,并且在內(nèi)容前后增加線條與正文隔離。“Terminal Display ”格式“Terminal Display ”格式表示屏幕輸出信息。此外,屏幕 輸出信息中夾雜的用戶從終端輸入的信息采用加粗字體表示。 “” 用雙引號(hào)表示文件路徑。如“C:Program FilesHuawei ”。命令行格式約定格式 意義粗體命令行關(guān)鍵字(命令中保持不變、必須照輸?shù)牟糠植捎眉哟?/p>

6、字體表示。斜體命令行參數(shù)(命令中必須由實(shí)際值進(jìn)行替代的部分采用斜體表示。 API參考前言格式意義 表示用“ ”括起來(lái)的部分在命令配置時(shí)是可選的。 x | y | . 表示從兩個(gè)或多個(gè)選項(xiàng)中選取一個(gè)。 x | y | . 表示從兩個(gè)或多個(gè)選項(xiàng)中選取一個(gè)或者不選。 x | y | . *表示從兩個(gè)或多個(gè)選項(xiàng)中選取多個(gè),最少選取一個(gè),最多選取所有選項(xiàng)。 x | y | . *表示從兩個(gè)或多個(gè)選項(xiàng)中選取多個(gè)或者不選。修訂記錄修訂記錄累積了每次文檔更新的說(shuō)明。最新版本的文檔包含以前所有文檔版本的更新內(nèi)容。修訂日期版本修訂說(shuō)明2008-09-05 03 增加Hi3512芯片信息。2008-06-30 02

7、 將文檔中的YUV422V改為YUV422(MCU 1%2。2008-04-1501第1次版本。 API參考 1 概述1 概述關(guān)于本章本章描述內(nèi)容如下表所示。標(biāo)題內(nèi)容1.1 概述介紹解碼庫(kù)開(kāi)發(fā)包組件以及解碼庫(kù)運(yùn)行環(huán)境。1.2 函數(shù)列表列出解碼庫(kù)功能函數(shù)。1.3 函數(shù)描述方式列出API參考信息描述使用的參數(shù)域及各自作用。1.4 結(jié)構(gòu)體描述方式列出結(jié)構(gòu)體描述使用的參數(shù)域及各自作用。1 概述MJPEG PC解碼庫(kù)軟件API參考 1.1 概述海思提供的MJPEG PC解碼庫(kù)軟件是一套高性能、高可靠性、兼容性良好的解碼軟件。解碼庫(kù)內(nèi)部完成了MJPEG解碼的主要流程,并對(duì)外提供了簡(jiǎn)單靈活的API,用戶可快

8、速地開(kāi)發(fā)應(yīng)用程序。解碼庫(kù)軟件提供Windows環(huán)境下的動(dòng)態(tài)庫(kù)和靜態(tài)庫(kù)兩種調(diào)用形式,用戶可更方便地開(kāi)發(fā)應(yīng)用程序。解碼庫(kù)的主要組件及相關(guān)說(shuō)明如表1-1所示。表1-1解碼庫(kù)開(kāi)發(fā)包組件組件名稱說(shuō)明API接口hi_config.hhi_mjpeg_api.h 用戶工程中,應(yīng)該保證先包含hi_config.h,再包含hi_mjpeg_api.h。靜態(tài)庫(kù)hi_mjpeg_dec_w.lib使用靜態(tài)庫(kù)時(shí),應(yīng)該在編譯器選項(xiàng)中選擇忽略下面的四個(gè)庫(kù)文件:libm.lib、libguide.lib、libirc.lib和svml_disp.lib,否則編譯時(shí)會(huì)出現(xiàn)鏈接不成功告警。動(dòng)態(tài)庫(kù)hi_mjpeg_dec_w.l

9、ibhi_mjpeg_dec_w.dll-示范代碼hi_mjpeg_sample.c 以讀文件解碼為例,示范解碼庫(kù)API的調(diào)用方式。用戶可在多種編譯環(huán)境上進(jìn)行基于解碼庫(kù)的應(yīng)用程序開(kāi)發(fā)。解碼庫(kù)兼容微軟公司的Windows 2000或更高版本的主流視窗操作系統(tǒng),兼容Intel公司和AMD公司自2002年來(lái)推出的絕大部分面向PC機(jī)的CPU芯片組。其主要開(kāi)發(fā)以及運(yùn)行環(huán)境說(shuō)明如表1-2所示。表1-2解碼庫(kù)運(yùn)行環(huán)境分類兼容配置推薦配置說(shuō)明編譯器Visual C+ 6.0Visual S2003Intel C+ 9.0/10.0 VisualS2003無(wú)。操作系統(tǒng)Windows 98Windows 2000

10、Windows XPWindows 2003Windows Vista Windows XP 在Windows 98系統(tǒng)上,解碼庫(kù)將進(jìn)入衰退工作模式,解碼性能較低。 MJPEG PC解碼庫(kù)軟件API參考 1 概述分類兼容配置推薦配置說(shuō)明硬件 IntelP3系列Intel P4系列Intel Core系列AMD Athlon64系列AMD Sempron系列AMD Athlon系列CPU主頻在3.0GHz以上、內(nèi)存大小在512MB以上的PC在Intel P3、AMD AthlonXP或更早期的CPU上,解碼庫(kù)將進(jìn)入衰退工作模式,解碼性能較低。1.2 函數(shù)列表函數(shù)功能頁(yè)碼HiMJPEGDecCre

11、ate創(chuàng)建、初始化解碼器。2-2HiMJPEGDecDestroy銷毀解碼器。2-3HiMJPEGDecGetInfo查詢解碼庫(kù)版本信息和當(dāng)前版本能力集。2-3HiMJPEGDecFrame對(duì)輸入的一幀碼流進(jìn)行解碼并輸出當(dāng)前幀。2-61.3 函數(shù)描述方式本文檔用七個(gè)域?qū)PI參考信息進(jìn)行描述。參數(shù)域作用目的簡(jiǎn)要描述API的主要功能。語(yǔ)法列出API的語(yǔ)法樣式。描述簡(jiǎn)要描述API的工作過(guò)程。參數(shù)列出API的參數(shù)、參數(shù)說(shuō)明及參數(shù)屬性。返回值列出API的返回值及返回值說(shuō)明。需求列出本API要包含的頭文件和API編譯時(shí)要鏈接的庫(kù)文件。注意使用API時(shí)應(yīng)注意的事項(xiàng)。 1 概述MJPEG PC 解碼庫(kù)軟件A

12、PI 參考1.4 結(jié)構(gòu)體描述方式參數(shù)域 作用說(shuō)明 簡(jiǎn)要描述結(jié)構(gòu)體所實(shí)現(xiàn)的功能。 定義 列出結(jié)構(gòu)體的定義。 注意事項(xiàng) 列出結(jié)構(gòu)體的注意事項(xiàng)。 MJPEG PC解碼庫(kù)軟件API參考 2 API函數(shù)2 API函數(shù)關(guān)于本章本章描述內(nèi)容如下表所示。標(biāo)題內(nèi)容2.1 HiMJPEGDecCreate介紹“創(chuàng)建、初始化解碼器”函數(shù)。2.2 HiMJPEGDecDestroy介紹“銷毀解碼器”函數(shù)。2.3 HiMJPEGDecGetInfo介紹“查詢解碼庫(kù)版本信息和當(dāng)前版本能力集”函數(shù)。2.4 HiMJPEGDecFrame介紹“對(duì)碼流進(jìn)行解碼并輸出當(dāng)前幀”函數(shù)。 2 API 函數(shù)MJPEG PC 解碼庫(kù)軟件A

13、PI 參考2.1 HiMJPEGDecCreate【目的】創(chuàng)建、初始化解碼器。 【語(yǔ)法】HI_HANDLE HiMJPEGDecCreate( MJPEG_DEC_ATTR_S *pDecAttr ;【描述】創(chuàng)建解碼器。在解碼開(kāi)始時(shí),分配解碼空間和初始化解碼器相關(guān)的變量及狀態(tài),設(shè)置解碼器支持的最大圖像的寬高等屬性。上層應(yīng)用可以使用多線程創(chuàng)建多個(gè)解碼器,實(shí)現(xiàn)多路解碼。 【參數(shù)】 參數(shù) 成員 取值范圍 輸入/輸出 描述 uPictureFor mat - 輸入 保留。 uStreamInTy pe -輸入 保留。uPicWidth16,4096輸入解碼器對(duì)象支持的最大圖像寬度。 (以像素為單位。超

14、出取值范圍時(shí)解碼器自動(dòng)默認(rèn)為2048。uPicHeight16,4096輸入解碼器支持的最大圖像高度。 (以像素為單位。超出取值范圍時(shí)解碼器自動(dòng)默認(rèn)為2048。uWorkMode - 輸入 保留。 pUserData - 輸入 用戶數(shù)據(jù)。 pDecA ttruReserved -輸入保留?!痉祷刂怠?返回值宏定義描述0 NULL 解碼器創(chuàng)建失敗(內(nèi)存分配失敗或者參數(shù)配置錯(cuò)誤。 非0 - 解碼器創(chuàng)建成功,返回值為解碼器句柄。 MJPEG PC解碼庫(kù)軟件API參考 2 API函數(shù)【需求】z頭文件:hi_config.h、hi_mjpeg_api.hz庫(kù)文件:hi_mjpeg_dec_w.lib【注

15、意】無(wú)。2.2 HiMJPEGDecDestroy【目的】銷毀解碼器?!菊Z(yǔ)法】void HI_HiMJPEGDecDestroy( HI_HANDLE hDec ;【描述】銷毀解碼器,釋放工作時(shí)分配的內(nèi)存空間。解碼結(jié)束后調(diào)用此函數(shù)以防止內(nèi)存泄漏?!緟?shù)】參數(shù)成員取值范圍輸入/輸出描述hDec - - 輸入待銷毀的解碼器?!痉祷刂怠繜o(wú)。【需求】z頭文件:hi_config.h、hi_mjpeg_api.hz庫(kù)文件:hi_mjpeg_dec_w.lib【注意】銷毀后的句柄應(yīng)該手動(dòng)置為NULL。2.3 HiMJPEGDecGetInfo【目的】查詢解碼庫(kù)版本信息和當(dāng)前版本能力集。【語(yǔ)法】HI_S32

16、 HiMJPEGDecGetInfo( MJPEG_LIBINFO_S *pLibInfo ; 【描述】用戶可在創(chuàng)建解碼器之前調(diào)用此函數(shù)查看解碼庫(kù)版本信息、解碼庫(kù)能力集。【參數(shù)】參數(shù)成員取值范圍輸入/輸出描述uMajor -輸出解碼庫(kù)主編號(hào)。uMinor - 輸出解碼庫(kù)次編號(hào)。uRelease - 輸出解碼庫(kù)發(fā)布編號(hào)。uBuild -輸出解碼庫(kù)構(gòu)建編號(hào)。sVersion - 輸出解碼庫(kù)版本信息。sCopyRight - 輸出解碼庫(kù)版權(quán)信息。pLibInfouPictureFormat - 輸出圖像格式信息,含義如下:bit31:5:保留。bit4:YUV400(黑白圖像格式支持標(biāo)示。0為不支持

17、;1為支持。bit3:YUV422 (MCU 1x2圖像格式支持標(biāo)示。0為不支持;1為支持。bit2:YUV444圖像格式支持標(biāo)示。0為不支持;1為支持。bit1:YUV422圖像格式支持標(biāo)示。0為不支持;1為支持。bit0:YUV420圖像格式支持標(biāo)示。0為不支持;1為支持。 參數(shù)成員取值范圍輸入/輸出描述uFrameMarkersSet- 輸出解碼庫(kù)當(dāng)前支持的幀標(biāo)記。每bit代表一種幀,為1表示解碼庫(kù)支持的幀,為0表示解碼庫(kù)不支持的幀。bit31:16:保留。bit15:差分無(wú)損(順序,算術(shù)編碼。bit14:差分漸進(jìn)DCT,算術(shù)編碼。bit13:差分順序DCT,算術(shù)編碼。bit12:保留。

18、bit11:無(wú)損(順序,算術(shù)編碼。bit10:漸進(jìn)DCT,算術(shù)編碼。bit9:擴(kuò)展順序DCT,算術(shù)編碼。bit8:JPG擴(kuò)展。bit7:差分無(wú)損(順序,霍夫曼編碼。bit6:差分漸進(jìn)DCT,霍夫曼編碼。bit5:差分順序DCT,霍夫曼編碼。bit4:保留。bit3:無(wú)損(順序,霍夫曼編碼。bit2:漸進(jìn)DCT,霍夫曼編碼。bit1:擴(kuò)展順序DCT,霍夫曼編碼。bit0:基本順序DCT,霍夫曼編碼。uStreamInType 0 輸出保留。uPicWidth 4096輸出解碼庫(kù)當(dāng)前支持的最大圖像寬度(以像素為單位。uPicHeight 4096輸出解碼庫(kù)當(dāng)前支持的最大圖像高度(以像素為單位。 參

19、數(shù)成員取值范圍輸入/輸出描述uReserved - 輸出保留?!痉祷刂怠糠祷刂岛甓x描述0 - 成功獲取解碼庫(kù)信息。-1 - 參數(shù)輸入錯(cuò)誤,獲取失敗?!拘枨蟆縵頭文件:hi_config.h、hi_mjpeg_api.hz庫(kù)文件:hi_mjpeg_dec_w.lib【注意】無(wú)。2.4 HiMJPEGDecFrame【目的】對(duì)輸入的僅包含一幀JPEG的碼流進(jìn)行解碼并立即輸出當(dāng)前幀?!菊Z(yǔ)法】HI_S32 HiMJPEGDecFrame(HI_HANDLE hDec,HI_U8 *pStream,HI_U32 iStreamLen,HI_U64 ullPTS,MJPEG_DEC_FRAME_S *p

20、DecFrame,HI_U32 uFlags;【描述】本函數(shù)僅支持按幀配置碼流和按幀輸出圖像,解碼器默認(rèn)為每次配置的碼流僅包含一幀JPEG圖像并且在解碼之后立即輸出此幀圖像。本函數(shù)提供時(shí)間戳透?jìng)鞴δ?輸入的時(shí)間戳將保存在當(dāng)前碼流解碼后的圖像結(jié)構(gòu)體MJPEG_DEC_FRAME_S中,并隨解碼圖像一起輸出。詳細(xì)信息請(qǐng)參見(jiàn)“3.2.4MJPEG_DEC_FRAME_S”。 【參數(shù)】參數(shù)成員取值范圍輸入/輸出描述hDec - - 輸入解碼器句柄。pStream - - 輸入碼流起始地址。iStreamLen - - 輸入碼流長(zhǎng)度(以字節(jié)為單位。ullPTS - - 輸入時(shí)間戳信息。pY - 輸出輸出

21、Y分量地址。pU - 輸出輸出U分量地址。pV - 輸出輸出V分量地址。uYStride - 輸出輸出圖像亮度跨度(以像素為單位。uCStride - 輸出輸出圖像色度跨度(以像素為單位。uWidth - 輸出輸出圖像寬(以像素為單位。uHeight - 輸出輸出圖像高(以像素為單位。uPictureFo rmat 0,5輸出輸出圖像格式。0:YUV420;1:YUV422;2:YUV444;3:YUV422 (MCU 1x2;4:YUV400;5:不支持的圖像格式。bError 0,1 輸出當(dāng)前圖像錯(cuò)誤標(biāo)示。0:輸出圖像無(wú)錯(cuò);1:輸出圖像有錯(cuò)。ullPTS - 輸出輸出圖像時(shí)間戳信息。res

22、erved - 輸出保留。pDecFramepUserData- 輸出用戶數(shù)據(jù)指針。uFlags - 0 輸入保留。【返回值】 返回值宏定義含義0 HI_MJPEG_DEC_OK 函數(shù)執(zhí)行成功,輸出一幀圖像。-1 HI_MJPEG_NO_PICTURE 輸入碼流錯(cuò)誤,解碼中斷,此時(shí)沒(méi)有圖像輸出。-2 HI_MJPEG_ERR_HANDLE 函數(shù)輸入?yún)?shù)錯(cuò)誤。【需求】z頭文件:hi_config.h、hi_mjpeg_api.hz庫(kù)文件:hi_mjpeg_dec_w.lib【注意】解碼庫(kù)只支持以幀為單位的JPEG圖像解碼,所以每次調(diào)用時(shí)輸入的碼流必須包含且僅包含一幀JPEG圖像。若輸入的碼流不足

23、一幀圖像,則只能輸出部分圖像;若輸入的碼流超過(guò)一幀圖像,則只能解碼并輸出第一幀圖像。 3 數(shù)據(jù)類型與數(shù)據(jù)結(jié)構(gòu)關(guān)于本章本章描述內(nèi)容如下表所示。標(biāo)題內(nèi)容3.1 通用數(shù)據(jù)類型描述介紹通用數(shù)據(jù)類型。3.2 數(shù)據(jù)結(jié)構(gòu)描述介紹數(shù)據(jù)結(jié)構(gòu)。秘密 3.1 通用數(shù)據(jù)類型描述在win32環(huán)境下,API用到的主要數(shù)據(jù)類型定義如下:typedef unsigned char HI_U8;typedef unsigned char HI_UCHAR;typedef unsigned short HI_U16;typedef unsigned long HI_U32;typedef signed char HI_S8;ty

24、pedef signed short HI_S16;typedef signed long HI_S32;typedef _int64 HI_S64;typedef unsigned _int64 HI_U64;typedef char HI_CHAR;typedef char* HI_PCHAR;typedef void* HI_HANDLE;3.2 數(shù)據(jù)結(jié)構(gòu)描述3.2.1 MJPEG_USERDATA_S【說(shuō)明】用戶數(shù)據(jù)結(jié)構(gòu)?!径x】/* 用戶數(shù)據(jù)結(jié)構(gòu) */typedef struct hiMJPEG_USERDATA_SHI_U32 uUserDataType; /* 用戶數(shù)據(jù)類型 */

25、HI_U32 uUserDataSize; /* 用戶數(shù)據(jù)長(zhǎng)度 */HI_UCHAR* pData; /* 用戶數(shù)據(jù)緩沖區(qū) */struct hiMJPEG_USERDATA_S* pNext; /* 指針, 指向下一個(gè)用戶數(shù)據(jù) */ MJPEG_USERDATA_S;【注意事項(xiàng)】無(wú)。3.2.2 MJPEG_LIBINFO_S【說(shuō)明】解碼庫(kù)版本、版權(quán)和能力集信息數(shù)據(jù)結(jié)構(gòu)。 秘密【定義】/* 解碼庫(kù)版本、版權(quán)和能力集信息數(shù)據(jù)結(jié)構(gòu) */ typedef struct hiMJPEG_LIBINFO_S HI_U32 uMajor; /* 解碼庫(kù)主編號(hào) */ HI_U32 uMinor;/* 解碼庫(kù)

26、次編號(hào) */ HI_U32 uRelease; /* 解碼庫(kù)發(fā)布編號(hào) */ HI_U32 uBuild;/* 解碼庫(kù)構(gòu)建編號(hào) */const HI_CHAR* sVersion; /* 解碼庫(kù)版本信息 */ const HI_CHAR* sCopyRight; /* 解碼庫(kù)版權(quán)信息 */HI_U32 uPictureFormat; /* 圖像格式 */ /* bit0: YUV420 */ /* bit1: YUV422 */ /* bit2: YUV444 */* bit3: YUV422 (MCU 1x2 */ /* bit4: YUV400 */ /* bit5bit31: 保留 */H

27、I_U32 uFrameMarkersSet; /* 幀標(biāo)記集 */ /* bit0: SOF0 基本順序DCT, 霍夫曼編碼 */ /* bit1: SOF1 擴(kuò)展順序DCT, 霍夫曼編碼 */ /* bit2: SOF2 漸進(jìn)DCT, 霍夫曼編碼 */ /* bit3: SOF3 無(wú)損(順序, 霍夫曼編碼 */ /* bit4: 保留 */* bit5: SOF5 差分順序DCT, 霍夫曼編碼 */ /* bit6: SOF6 差分漸進(jìn)DCT, 霍夫曼編碼 */ /* bit7: SOF7 差分無(wú)損(順序, 霍夫曼編碼 */ /* bit8: JPG JPG 擴(kuò)展 */* bit9: SO

28、F9 擴(kuò)展順序DCT, 算術(shù)編碼 */ /* bit10: SOF10 漸進(jìn)DCT, 算術(shù)編碼 */ /* bit11: SOF11 無(wú)損(順序, 算術(shù)編碼 */ /* bit12: 保留 */* bit13: SOF13 差分順序DCT, 算術(shù)編碼*/ /* bit14: SOF14 差分漸進(jìn)DCT, 算術(shù)編碼*/ /* bit15: SOF15 差分無(wú)損(順序, 算術(shù)編碼*/ /* bit16 bit31 保留 */HI_U32 uStreamInType; /* 保留 */ HI_U32 uPicWidth; /* 圖像最大寬度(以像素為單位 */HI_U32 uPicHeight; /

29、* 圖像最大高度(以像素為單位 */HI_U32 uReserved; /* 保留 */ MJPEG_LIBINFO_S;【注意事項(xiàng)】無(wú)。3.2.3 MJPEG_DEC_ATTR_S【說(shuō)明】解碼器屬性信息數(shù)據(jù)結(jié)構(gòu)?!径x】/* 解碼器屬性數(shù)據(jù)結(jié)構(gòu) */typedef struct hiMJPEG_DEC_ATTR_S保留 */HI_U32 uPictureFormat; /*HI_U32 uStreamInType; /*保留 */HI_U32 uPicWidth; /* 圖像最大寬度(以像素為單位 */HI_U32 uPicHeight; /* 圖像最大高度(以像素為單位 */HI_U32

30、uWorkMode; /* 保留 */MJPEG_USERDATA_S *pUserData; /* 用戶數(shù)據(jù) */HI_U32 uReserved; /* 保留 */ MJPEG_DEC_ATTR_S;【注意事項(xiàng)】無(wú)。3.2.4 MJPEG_DEC_FRAME_S【說(shuō)明】解碼器輸出圖像信息數(shù)據(jù)結(jié)構(gòu)?!径x】/* 解碼器輸出圖像信息數(shù)據(jù)結(jié)構(gòu) */typedef struct hiMJPEG_DEC_FRAME_S/*Y像素指針 */*pY;HI_U8HI_U8 *pU; /* U像素指針 */HI_U8 *pV; /* V像素指針 */HI_U32 uYStride; /* 亮度跨度(以像素為

31、單位 */ 秘密HI_U32 uCStride; /* 色度跨度(以像素為單位 */ HI_U32 uWidth; /* 圖像寬度(以像素為單位 */ HI_U32 uHeight;/* 圖像高度(以像素為單位 */ HI_U32 uPictureFormat;/* 圖像格式 */* 0: YUV420; */ /* 1: YUV422; */ /* 2: YUV444; */* 3: YUV422 (MCU 1x2; */ /* 4: YUV400; */ /* =5: reserved */HI_S32 bError;/* 錯(cuò)誤標(biāo)識(shí) */* 0: 無(wú)錯(cuò)誤 */ /* 1: MCU 錯(cuò)誤 *

32、/HI_U64 ullPTS; /* 時(shí)間戳 */ HI_U32 reserved;/* 保留 */MJPEG_USERDATA_S *pUserData; /* 用戶數(shù)據(jù)指針 */ MJPEG_DEC_FRAME_S;【注意事項(xiàng)】 無(wú)。MJPEG PC 解碼庫(kù)軟件 API 參考 4 應(yīng)用實(shí)例 4 關(guān)于本章 本章描述內(nèi)容如下表所示。 標(biāo)題 4.1 MJPEG 解碼流程圖 4.2 程序?qū)嵗?內(nèi)容 介紹 MJPEG 解碼流程。 介紹 API 應(yīng)用程序?qū)嵗?應(yīng)用實(shí)例 文檔版本 03 (2008-09-05 秘密 版權(quán)所有 深圳市海思半導(dǎo)體有限公司 4-1 4 應(yīng)用實(shí)例 MJPEG PC 解碼庫(kù)軟件

33、 API 參考 4.1 MJPEG 解碼流程圖 MJPEG 解碼流程如圖 4-1 所示。 圖4-1 解碼庫(kù) API 函數(shù)使用流程圖 開(kāi)始 創(chuàng)建解碼器 讀取一幀碼流 一幀JPEG數(shù)據(jù) 解碼 下一幀 JPEG數(shù)據(jù) 是否有圖像輸出? 是 否 讀取下一幀碼流 顯示或保存圖像 否 圖像序列是否結(jié)束? 是 銷毀解碼器 結(jié)束 4.2 程序?qū)嵗?/* 靜態(tài)常量字符串,用于比較直觀的顯示圖像格式 */ static const char *PictureFormatString6 = YUV420, YUV422, YUV444, YUV422 (MCU 1x2, YUV400, not support ; 4

34、-2 秘密 版權(quán)所有 深圳市海思半導(dǎo)體有限公司 文檔版本 03 (2008-09-05 MJPEG PC 解碼庫(kù)軟件 API 參考 MJPEG_DEC_ATTR_S MJPEG_DEC_FRAME_S HI_S32 len, result; HI_U8 *bitstream = NULL; HI_HANDLE handle = NULL; FILE FILE *jpeg = NULL; *yuv = NULL; /* JPEG 碼流文件 */ /* 存放YUV圖像的文件 */ /* 碼流緩沖區(qū) */ dec_attrbute; dec_frame; /* 創(chuàng)建解碼器參數(shù)結(jié)構(gòu)體 */ /* 輸出

35、圖像結(jié)構(gòu)體 */ 4 應(yīng)用實(shí)例 /* 為碼流緩沖區(qū)分配內(nèi)存,分配的內(nèi)存大小必須保證大于一幀圖像的大小 */ bitstream = malloc(BUFF_LEN; /* 創(chuàng)建解碼器 */ dec_attrbute.uPicWidth = WIDTH; /* 圖像最大寬度(以像素為單位 */ /* 圖像最大高度(以像素為單位 */ dec_attrbute.uPicHeight = HEIGHT; handle = HiMJPEGDecCreate(&dec_attrbute; /* 打開(kāi)JPEG碼流文件和存儲(chǔ)YUV圖像的文件 */ jpeg yuv = fopen(argv1, rb; = fopen(argv2, wb; if(NULL = jpeg | NULL = yuv | NULL = bitstream | NULL = handle goto END; /* 從文件中讀取一幀JPEG碼流數(shù)據(jù) */ len = fread(bitstream, 1, BUFF_LEN, jpeg; /* 解碼過(guò)程: 返回 HI_JPEG_DEC_OK 返回 HI_JPEG_NO_PICTURE 返回 HI_JPEG_ERR_HANDLE */ result = HiMJPEGDecFrame(handle,

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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)論