




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、2016-2017。保留一切权利。非经本公司形式。,任何和个人不得擅自摘抄、本文档内容的部分或全部,并不得以任何商标、海思和其他海思商标均为市海思半导体的商标。本文档提及的其他所有商标或商标,由各自的所有人拥有。注意您的产品、服务或特性等应受海思公司商业合同和条款的约束,本文档中描述的全部或部分产品、服务或特性可能不在您的或使用范围之内。除非合同另有约定,海思公司对本文档内容不做任何明示或默示的或保证。由于产品版本升级或其他原因,本文档内容会不定期进行更新。除非另有约定,本文档仅作为使用指导,本文档中的所有陈述、信息和建议不任何明示或暗示的担保。市海思半导体市龙岗区坂田地址:电气生产中心:51
2、8129http:/:客户服务:客户服务传真:客户服务邮箱:sup前言前言概述本节介绍本文档的内容、对应的产品版本、适用的读者对象、行文表达约定、历史修订等。本文未做特殊说明, Hi3516D 与 Hi3516A 完全一致。 本文未做特殊说明, Hi3556V100 与 Hi3559V100 完全一致。本文未做特殊说明, Hi3516AV200 与 Hi3519V101 完全一致。 产品版本与本文档相对应的产品版本如下所示。i产品名称产品版本Hi3516V100Hi3531V100Hi3532V100Hi3521V100Hi3520AV100Hi3518V100Hi3516CV100Hi352
3、0DV100Hi3515AV100Hi3516AV100Hi3516DV100Hi3518EV200Hi3518EV201Hi3516CV200前言读者对象本参考适用于程序员阅读,描述了基于海思 H.264 PC用本参考的程序员应该:库开发的各种参考信息。使 熟练使用 C/C+语言掌握基本的 Windows32 调用 内容简介本参考首先概述了 H.264 PC库 API 函数种类及其关联,然后分别详细介绍了各种参考信息。本参考内容组织如下。ii章节内容1概述介绍 H.264 PC库开发包组件和软硬件开发环境。阅读本后,您将对客户端 H.264 PC库有一个整体了解。2API 函数本供您查阅 H
4、.264 PC库的信息,详细介绍每一个 API 接口函数。3通用类型及数据类型定义介绍 API 用到的通用数据类型定义及结构体定义。4API 应用实例通过实例介绍 H.264 PC库 API 的使用方法。产品名称产品版本Hi3536V100Hi3531AV100Hi3521AV100Hi3519V100Hi3519V101Hi3516CV300Hi3559V100Hi3556V100Hi3516AV200Hi3559AV100ES前言约定符号约定在本文中可能出现下列标志,它们所代表的含义如下。通用格式约定表格内容约定iii内容说明-表格中的无内容单元。*表格中的内容用户可根据需要进行配置。格式
5、说明宋体正文采用宋体表示。黑体一级、二级、三级标题采用黑体。楷体警告、提示等内容一律用楷体,并且在内容前后增加线条与正文。“Terminal Display”格式“Terminal Display”格式表示屏幕输出信息。此外,屏幕输出信息中夹杂的用户从终端输入的信息采用加粗字体表示。符号说明以本标志开始的文本表示有高度潜在,如果不能避免,会导致或严重。以本标志开始的文本表示有中度或低度潜在,如果不能避免,可能导致轻微或中等。以本标志开始的文本表示有潜在风险,如果忽视这些文本,可能导致设备损坏、数据丢失、设备性能降低或不可预知的结果。以本标志开始的文本能帮助您解决某个问题或节省您的时间。以本标志
6、开始的文本是正文的附加信息,是对正文的强调和补充。前言修改修改内容。累积了每次文档更新的说明。版本的文档包含以前所有文档版本的更新iv修改日期版本修改说明2017-07-1715添加 Hi3559AV100ES 相关内容2.1 小节涉及修改2017-02-2514添加 Hi3556V100 的相关内容2016-12-3013第 2 章节,修改 Hi264DecDestroy、Hi264DecFrame 和 Hi264DecAU 的【注意】;修改 Hi264DecImageEnhance的【参数】和【注意】。2016-07-2812增加 B 帧;增加 SVC-T;器支持的最大图像宽高修改为最大支
7、持 8192 x 81922014-12-2011添加 Hi3516D 的相关内容2014-08-0610添加 Hi3516A 的相关内容2013-04-0809运行环境增加 Windows7 操作系统器支持的最大图像宽高修改为最大支持 5632 x 4096Hi264DecAU 和 Hi264DecImageEnhance 接口结构体H264 DEC FRAME S 描述增加H264 DEC OUTT INFO S *pFrameInfo2011-07-0508新增 H264 OUTT INFO S在 H264 DEC FRAME S 中新增变量 pFrameInfo2010-11-2607
8、修改 2.1 Hi264DecCreate 中参数 uWorkMode 的描述。修改 2.3 Hi264DecGetInfo 中参数 uFunctionSet 的bit12的描述支持 High Profile。修改 2.3 Hi264DecGetInfo 中参数 uFunctionSet 的bit13的描述支持多线程。增加第二章 Hi264DecCreate 的注意事项增加表 1-1 的静态库为 6 个前言v修改日期版本修改说明2008-08-3006修改 2.3 Hi264DecGetInfo 中参数 uFunctionSet 的 bit2和 bit1 的描述。修改 3.2.1 H264 L
9、IBINFO S 中库能力集的 bit2和 bit1 的描述。修改 3.2.3 H264 DEC ATTR S 中器工作模式的bit2 和bit1 的描述。增加适用 Hi3512的信息。2008-05-2605增加 2.6 Hi264DecImageEnhance。修改 4.2 程序实例,增加“图像增强”的程序。2008-04-0304修改 2.1 Hi264DecCreate 中参数 uWorkMode 的描述。修改 2.1 Hi264DecCreate 中参数*serData 的取值范围。增加 2.1 Hi264DecCreate 中注意的内容。修改 2.3 Hi264DecGetInfo
10、 中参数 uFunctionSet 的bit10的描述支持 De-erlace 功能。增加 2.4 Hi264DecFrame 和 2.5 Hi264DecAU 中的参数*serData 及描述。修改 2.5 Hi264DecAU 中的描述部分。增加 3.2.1 H264 LIBINFO S 中定义部分 bit10的描述。修改 4.2 程序实例中设置器属性。删除表 1-1 动态库中的说明。2008-01-1503修改 2.4 Hi264DecFrame 中返回值。修改 2.4 Hi264DecFrame 中注意涉及结构体的由“H264 DEC FRAME S”改为“H264DecFrame”。
11、增加一个 API 函数 Hi264DecAU。2007-11-1602修改 2.1 Hi264DecCreate 中参数 uWorkMode 的 bit0 的含义描述,将 0、1 的含义反过来。修改“Hi264DecFrame”中注意的内容,便于英文翻译。将概述中表 1-1库开发包组件中的 API 接口的说明中,用户工程中,应该保证先包含 hi config.h,再包含 hi h264api.h。两个包含的关系搞反了,已经修改完毕。将“1.3 函数列表”中 Hi264DecDestroy 的功能修描述中,“”改为“销毁”。将“2.1 Hi264DecCreate”的参数成员“uPicHeigh
12、tB”的取值范围由“0 x80,0 x06”改为前言vi修改日期版本修改说明“0 x06,0 x80”。2007-09-0501第 1 次版本。目录目录前言i概述1描述范围1接口格式2函数列表2函数描述方式3结构体描述方式3API 函数说明4Hi264DecCreate4Hi264DecDestroy6Hi264DecGetInfo6Hi264DecFrame9Hi264DecAU12Hi264DecImageEnhance14数据类型与数据结构17通用数据类型描述17数据结构描述17H264 LIBINFO S17H264 USERDATA S18H264 DEC ATTR S193.2.4
13、 H264 OUTT INFO S203.2.5 H264 DEC FRAME S204 API 应用实例224.1 流式流程图224.2 程序实例23vii插图目录插图目录图 4-1库 API 函数使用流程图22viii表格目录表格目录表 1-1库开发包组件1表 1-2库运行环境2ix1 概述1概述1.1 描述范围海思提供的是一套高性能、高可靠性、兼容性良好的。库完成了 H.264的主要流程,并对外提供了灵活简单的 API,用户可快速地开发应用程序。库为用户提供 Windows 环境下的动态库和静态库两种调用形式,可更方便地开发应用程序。库的主要组件及相关说明如表 1-1 所示。表1-1库开
14、发包组件用户可在多种编译环境上进行基于库的应用程序开发,库兼容微软公司的Windows 2000 或更高版本的主流视窗操作系统,兼容el 公司和 AMD 公司自 2002年来推出的绝大部分面向 PC 机的 C所示。组。其主要开发以及运行环境说明如表 1-21组件名称说明API 接口hi config.h hi h264api.h用户工程中,应该保证先包含 hi config.h,再包含 hi h264api.h。静态库hi h264dec w.lib使用静态库时,应该在编译器选项中选择忽略下面的六个库文件:libm.lib、libguide.lib 和 libirc.lib 和 libc.li
15、b、libmmt.lib、svml disp.lib,否则编译时会告警不成功。动态库hi h264dec w.lib hi h264dec w.dll-示范代码hi h264sle.c以读文件为例,示范库 API 的调用方式。1 概述表1-2库运行环境1.2 接口格式无。1.3 函数列表2函数功能页码Hi264DecCreate创建、初始化器句柄。4Hi264DecDestroy销毁器句柄。6Hi264DecGetInfo查询库版本信息和当前版本能力集。6Hi264DecFrame对输入的一段码流进行并按帧输出图像。9Hi264DecAU对输入的一帧图像对应的码流进行并立即输出此帧图像。12H
16、i264DecImageEnhance后的图像增强。14分类兼容配置配置说明编译器Visual C+6.0Visual S2003 el C+ 9.0 / 10.0Visual S 2003无。操作系统Windows 98Windows 2000 Windows XP Windows 2003 Windows Vista Windows 7 (32bit)Windows 7 (64bit)Windows XP Windows 7在 Windows 98 系统上,库将进入工作模式,性能较低。硬件el P3 系列 el P4 系列 el Core 系列AMD Athlon64 系列 AMD Sem
17、pron 系列 AMD Athlon 系列C主频在3.0GHz 以上、内存大小在 512MB 以上的 PC在el P3、AMD AthlonXP 或更早期的 C上,库将进入工作模式,性能较低。1 概述1.4 函数描述方式本章用 6 个域对信息进行描述。1.5 结构体描述方式3参数域作用说明简要描述结构体所实现的功能。定义列出结构体的定义。注意事项列出结构体的注意事项。参数域作用目的简要描述 API 的主要功能。语法列出 API 的语法样式。描述简要描述 API 的工作过程。参数列出 API 的参数、参数说明及参数属性。返回值列出 API 的返回值及返回值说明。注意使用 API 时应注意的事项。
18、2 API 函数说明2 API 函数说明2.1 Hi264DecCreate【目的】创建、初始化器句柄。【语法】HI HDL Hi264DecCreate(H264 DEC ATTR S *pDecAttr );【描述】创建态,设置器句柄。在开始时,分配空间和初始化器相关的变量及状 器输入码流类型、输出图像格式、器支持的最大图像的宽高、器支持的最大参考帧数目等上层应用可以使用多线程创建多个器属性。器,实现多路。 【参数】4参数成员取值范围输入/输出描述pDecAttruPictureFormat0 x00输入输出图像格式。0 x00 表示输出图像为 4:2:0 格式。库暂不支持其他格式。uSt
19、reamype0 x00输入输入码流格式。0 x00 表示输入码流为以“00 00 01”为 nalu 分割符的 H.264 码流。uPicWidthB0 x06, 0 x400输入器支持的图像宽度。(以 MB 为。超出取值范围时,默认为 120,即 1080p 图像宽。)uPicHeightB0 x02, 0 x400输入器支持的图像高度。(以 MB 为。超出取值范围时,默认为 68,即 1080p 图像高。)2 API 函数说明【返回值】【注意】只有顺序和图像输出顺序一致时,才能使用快速输出模式,一般而言,如果 图像不包含 B 帧,则可以使用快速输出模式以降低输出时延。当启动器Deerla
20、ce 功能时,只有输入采用场模式编码时才有效; 对于帧模式的图像,器将自动跳过 Deerlace 过程。且每帧包含多个 slice 的应用场合,对于多通道多线程适用于单通道 或每帧仅包含单 slice 的应用场合不使用。5返回值宏定义描述0NULL器创建失败(内存分配失败或者参数配置错误)。非 0-器创建成功,返回值为器句柄。参数成员取值范围输入/输出描述uBufNum0 x01,0 x10输入分配给器可用作参考帧的缓冲区数目。(超出取值范围时,默认为 0 x04)uWorkMode-输入bit31:6:保留。bit5:启动多线程。0:不启动。1:启动。bit4:启动库Deerlace 功能。
21、0:不启动。1:启动。 bit3:1:保留。bit0:器工作模式。0:快速输出模式,即解完一帧立即输出。1:H.264 协议定义的图像输出模式。*serData-输入指向输入的用户数据,数据类型请参见H264 USERDATA S 定义。(器暂不此参数)u0输入保留字。2 API 函数说明启动多线程需要保证输入码流在 slice 边界不做 Deblock 滤波。如果码流不能 满足上述条件,器会强制在 slice 边界不做 Deblock 滤波。多线程只在多核 C单路图像时才能提高性能,由于线程调度需要 占用一定的开销,所以对于单核 C的情况不要使用多线程。以上各种工作模式互相独立,用户可单独或
22、组合设置。 对超大图像的可能会失败。,创建器时应留意系统内存容量,如果内存不够,创建解 2.2 Hi264DecDestroy【目的】销毁器句柄。【语法】void Hi264DecDestroy(HI HDL hDec);【描述】结束后,销毁器工作时分配的内存空间,以防止内存泄漏。【参数】【返回值】无。【注意】库句柄的由用户保证,不允许重复销毁库。 销毁后的句柄需要手动置空。 2.3 Hi264DecGetInfo【目的】查询库版本信息和当前版本能力集。【语法】HI S32 Hi264DecGetInfo(H264 LIBINFO S *pLibInfo);【描述】6参数成员取值范围输入/输出
23、描述hDec-输入待销毁的器句柄。2 API 函数说明用户可在创建器之前调用此函数察看库版本库能力集。【参数】7参数成员取值范围输入/输出描述pLibInfouMajor-输出库主uMinor-输出uRelease-输出库发布uBuild-输出库建构sVer-输出库版本信息sCoRight-输出库信息uFunctionSet-输出器能力信息,含义如下:bit31:14:保留位。 bit130:不支持多线程。1:支持多线程。bit120:不支持 High Profile。 1:支持 High Profile。 bit100:不支持Deerlace。 1:支持Deerlace。 bit90:不支持
24、 cabac。 1:支持 cabac。 bit80:不支持。1:支持。bit70:不支持 B-slice。 1:支持 B-slice。 bit60:不支持 MBAFF。1:支持 MBAFF。bit50:不支持 PAFF。1:支持 PAFF。2 API 函数说明【返回值】【注意】无。8返回值宏定义描述0-成功获取库信息。-1-参数输入错误,获取失败。参数成员取值范围输入/输出描述bit40:不支持 FMO。1:支持 FMO。 bit3:保留位。 bit20:不支持 Hi351x 数字水印。1:支持 Hi351x 数字水印。bit1:保留位。 bit00:支持快速图像输出模式。1:不支持快速图像输
25、出模式。uPictureFormat0 x00输出库当前支持的图像格式。0 x00 表示仅支持 4:2:0 格式的图像。uStreamype0 x00输出库当前支持码流格式。0 x00 表示仅支持以“00 00 01”为 nalu 分隔符的 H.264 码流。uPicWidth0 x2000输出库当前支持的最大图像宽度。(以像素为)uPicHeight0 x2000输出库当前支持的最大图像高度。(以像素为)uBufNum0 x10输出库最大可支持的参考帧数目。u-输出保留字。2 API 函数说明2.4 Hi264DecFrame【目的】对输入的一段码流进行并按帧输出图像。【语法】HI S32
26、Hi264DecFrame(HI HI HIHIHDL hDec,U8 *pStream, U32 iStreamLen, U64 ullPTS,H264 DEC FRAME S *pDecFrame,HI U32 uFlags);【描述】本函数仅支持流式,对于以“00 00 01”为 nalu 分隔符的连续、线性 H.264 码流,用户可从任意起始地址、任意长度配置给器。【参数】9参数成员取值范围输入/输出描述hDec-输入器句柄。pStream-输入码流起始地址。iStreamLen-输入码流长度(字节为)。ullPTS-输入时间戳信息。pDecFrame-输出输出 Y 分量地址。-输出输
27、出 U 分量地址。-输出输出 V 分量地址。uWidth-输出输出图像宽度。(以像素为)uHeight-输出输出图像高度。(以像素为)uYStride-输出输出 Y 分量的 stride。(以像素为)2 API 函数说明10参数成员取值范围输入/输出描述uUVStride-输出输出 U/V 分量 stride。(以像素为)uCrop LeftOffset-输出输出图像左边裁减量。(以像素为)uCrop RightOffs et-输出输出图像右边裁减量。(以像素为)uCrop TopOffset-输出输出图像上边裁减量。(以像素为)uCrop BottomOff set-输出输出图像下边裁减量。
28、(以像素为)uDpbIdx-输出输出图像缓冲区。(暂不使用)bError0 或 1输出当前图像错误标示。0:输出图像无错。1:输出图像有错。uPicFlag0,1,2输出输出图像属性。0:输出为帧。1:输出为顶场。2:输出为底场。bra0 或 1输出输出图像是否为 IDR(Instantaneous Decoding Refresh)帧标示。0:非 IDR 帧。1:IDR 帧。ullPTS-输出输出图像时间戳信息。uPictureID-输出输出图像序号。u-输出保留字。*serDat a-输出指向输出的用户数据。*pFrameIn fo-输出输出当前帧信息, 包含一帧码流字节数, 各种类型宏块
29、的个数。2 API 函数说明【返回值】【注意】在调用本函数过程中需要注意以下两点: 在过程中,用户应该将码流分段,并依次配置给器。当用户调用此函数,将一段码流配置给器之后,应对函数的参数做如下配置:pStream=NULL;iStreamLen=0;uFlags=0。然后循环调用此函数,直到函数返回 HI H264DEC NEED MORE BITS 时才能再次配置一段新的码流。在上述循环调用的过程中,如果函数返回 HI H264DEC OK 则表明有一帧图像输出,用户必须在循环调用及时处理在 pDecFrame 中的图像。在结束时,为了输出器可能的残留图像,用户可对函数的参数做如下配置:uF
30、lags=1、pStream=NULL。然后循环调用此函数,直到函数返回HI H264DEC NO PICTURE 时才能停止。在上述循环调用的过程中,如果函数返回 HI H264DEC OK 则表明有一帧图像输 出,用户必须在循环调用及时处理在 pDecFrame 中的图像。函数提供时间戳透能,输入的时间戳将保存在当前码流后的图像结 构体 H264 DEC FRAME S 中,并随H264 DEC FRAME S。图像一起输出。详细信息请参见库句柄的由用户保证,不允许使用已销毁的库,或使用野指针。 输入码流地址 pStream 和长度 iStreamLen 的针,或码流长度超出已分配 buf
31、fer 的最大长度。由用户保证,不允许输入野指11返回值宏定义含义0HI H264DEC OK函数执行成功,有一帧图像输出。-1HI H264DEC NEED MORE BITS剩余码流不够一帧的数据,需要重新配置的码流。uFlags 为 0 时才会返回此值。-2HI H264DEC NO PICTURE器残留的图像已经全部输出完毕。uFlags 为 1 时才会返回此值。-3HI H264DEC ERR HANDLE器句柄为空或输出图像结构体为空。参数成员取值范围输入/输出描述uFlags-0 或 1输入模式。0:正常。1:完毕并要求器输出残留图像。2 API 函数说明2.5 Hi264Dec
32、AU【目的】对输入的一帧图像对应的码流进行并立即输出此帧图像。【语法】HI S32 Hi264DecAU(HI HI HIHIHDL hDec,U8 *pStream, U32 iStreamLen, U64 ullPTS,H264 DEC FRAME S *pDecFrame,HI U32 uFlags);【描述】本函数仅支持按帧,要求每次配送的仅包含一帧图像的码流必须是符合以“00 00 01”为 nalu 分隔符的 H.264 标准格式。【参数】12参数成员取值范围输入/输出描述hDec-输入器句柄。pStream-输入码流起始地址。iStreamLen-输入码流长度(字节为)。ullP
33、TS-输入时间戳信息。pDecFrame-输出输出 Y 分量地址。-输出输出 U 分量地址。-输出输出 V 分量地址。uWidth-输出输出图像宽度。(以像素为)uHeight-输出输出图像高度。(以像素为)uYStride-输出输出 Y 分量的 stride。(以像素为)uUVStride-输出输出 U/V 分量 stride。(以像素为)2 API 函数说明【返回值】13返回值宏定义含义0HI H264DEC OK函数执行成功,有一帧图像输出。参数成员取值范围输入/输出描述uCrop LeftOffset-输出输出图像左边裁减量。(以像素为)uCrop RightOffset-输出输出图像
34、右边裁减量。(以像素为)uCrop TopOffset-输出输出图像上边裁减量。(以像素为)uCrop BottomOffs et-输出输出图像下边裁减量。(以像素为)uDpbIdx-输出输出图像缓冲区。(暂不使用)bError0 或 1输出当前图像错误标示。0:输出图像无错。1:输出图像有错。uPicFlag0,1,2输出输出图像属性。0:输出为帧。1:输出为顶场。2:输出为底场。bra0 或 1输出输出图像是否为 IDR 帧标示。 0:非 IDR 帧。1:IDR 帧。ullPTS-输出输出图像时间戳信息。uPictureID-输出输出图像序号。u-输出保留字。*serData-输出指向输出
35、的用户数据。*pFrameInf o-输出输出当前帧信息, 包含一帧码流字节数,各种类型宏块的个数。uFlags-输入保留字。2 API 函数说明【注意】本函数和 Hi264DecFrame 是并列关系,用户根据需要调用其中一个即可。在调用本函数过程中需要注意以下两点: 在过程中,用户应该将码流以帧为进行分割,每次配送给此函数的码流必须且只能包含一帧图像,否则会导致图像输出异常。在上述循环调用的过程中,如果函数返回 HI H264DEC OK 则表明有一帧图像输出,返回 HI H264DEC NO PICTURE 则表明用户本次配置的码流无法解出一帧图像。器默认用户每次调用函数时配送的码流仅包
36、含一帧图像,因此无论码流是否完整,都会在函数执行后将本帧图像输出。函数提供时间戳透能,输入的时间戳将保存在当前码流后的图像结 构 H264 DEC FRAME S 中,并随H264 DEC FRAME S。图像一起输出。详细信息请参见库句柄的由用户保证,不允许使用已销毁的库,或使用野指针。 输入码流地址 pStream 和长度 iStreamLen 的针,或码流长度超出已分配 buffer 的最大长度。由用户保证,不允许输入野指 2.6 Hi264DecImageEnhance【目的】后的图像增强。【语法】HI S32 Hi264DecImageEnhance (HI HDL hDec,H26
37、4 DEC FRAME S *pDecFrame, HI U32 uEnhanceCoeff);【描述】成功一幅图像后,做图像后处理,改善某些场景下图像质量。【参数】14返回值宏定义含义-2HI H264DEC NO PICTURE没有有效图像输出。-3HI H264DEC ERR HANDLE器句柄为空或输出图像结构体为空。2 API 函数说明15参数成员取值范围输入/输出描述hDec-输入器句柄。pDecFrame-输入/输出输出 Y 分量地址。-输入/输出输出 U 分量地址。-输入/输出输出 V 分量地址。uWidth-输入/输出输出图像宽度。(以像素为)uHeight-输入/输出输出图
38、像高度。(以像素为)uYStride-输入/输出输出 Y 分量的 stride。(以像素为)uUVStride-输入/输出输出 U/V 分量 stride。(以像素为)uCrop LeftOffset-无效保留,不使用。uCrop RightOffset-无效保留,不使用。uCrop TopOffset-无效保留,不使用。uCrop BottomOff set-无效保留,不使用。uDpbIdx-无效保留,不使用。bError0 或 1无效保留,不使用。uPicFlag0,1,2无效保留,不使用。bra0 或 1无效保留,不使用。ullPTS-无效保留,不使用。uPictureID-无效保留,不
39、使用。u-无效保留字。*serDat a-无效保留,不使用。*pFrameInf o-无效保留,不使用。2 API 函数说明【返回值】【注意】结构体指针 pDecFrame 既是输入参数也是输出参数,用户在获取一帧图像后,应立即将 Hi264DecFrame 或 Hi264DecAU 的输出参数 pDecFrame 作为Hi264DecImageEnhance 的输入参数,无需做任何修改。 库句柄的由用户保证,不允许使用已销毁的库,或使用野指针。 16返回值宏定义含义0HI H264DEC OK函数执行成功,有一帧图像增强并可以输出。-3HI H264DEC ERR HANDLE库句柄为空或输
40、入参数错误。参数成员取值范围输入/输出描述uEnhanceC oeff-(0, 128输入图像增强系数, 一般取值范围是 30,50,数值越大对图像的改变越大, 值为 40。3 数据类型与数据结构3 数据类型与数据结构3.1 通用数据类型描述在 win32 环境下,API 用到的主要数据类型定义如下:typedeftypedef typedef typedef typedef typedef typedef typedef typedef typedef typedeftypedefunsignedunsigned unsigned unsignedcharchar shortHIHI HI
41、HI HI HI HI HI HI HI HIHIU8;UCHAR; U16; U32; S8; S16; S32; S64; U64; CHAR; PCHAR;HDL;signedsigned signedcharshort64unsigned char char* void*64数据结构描述H264_LIBINFO_S【说明】库版本、和能力集信息。【定义】/*库版本、和能力集信息数据结构 */typedef struct hiH264HI U32 uMajor;LIBINFOS/* 主/* 次*/HI U32 uMinor;*/173 数据类型与数据结构/* 发布HI U32 uRelea
42、se;*/HI U32 uBuild;/* 建构*/const HI CHAR*sVer;/* 版本信息 */信息 */const HI CHAR*sCoRight;/*HIU32 uFunctionSet;/*库能力集 */除bit0位外,其他标志位为1时表示当前版本支持该功能,为0时表示当前版本不支持该功能 */*/*bit0:快速输出模式*/*bit1:保留位*/Hi351x数字水印/*bit2:*/*bit3:保留位*/*bit4:FMO*/*bit5:PAFF*/*bit6:MBAFF*/B 片/*bit7:*/*bit8:*/*bit9:CABAC算术*/*/*/*bit10bit
43、12 bit13:集成Deerlace */: High profile */: 多线程*/*bit11 bit 31 : 保留位 */uPictureFormat;/* 支持的输出图像格式*/HIU32/* 0 x00:当前仅支持YUV420图像格式 */ype; /* 输入码流格式 */HIU32uStream/* 0 x00:当前仅支持以“0000 01”为nalu分割符的流式*/*H.264码流 */* 最大图像宽度(以像素为HIU32uPicWidth;) */HIU32uPicHeight;/* 最大图像高度(以像素为) */HIU32uBufNum;/* 最大参考帧数目 */*
44、保留字 */HIU32u; H264LIBINFO S;【注意事项】无。3.2.2 H264_USERDATA_S【说明】用户私有数据信息。【定义】183 数据类型与数据结构/* 用户私有数据结构 */typedef struct hiH264 USERDATASHIU32 uUserDaype;/* 用户数据类型/* 用户数据长度*/HIU32 uUserDataSize;*/HIUCHAR *pData;/* 用户数据缓冲区*/* 指向下一段用户数据 */struct hiH264 USERDATA H264 USERDATA S;S *pNext;【注意事项】无。3.2.3 H264_D
45、EC_ATTR_S【说明】器属性信息。【定义】/*器属性数据结构 */typedef struct hiH264 DECATTR SHIU32uPictureFormat;/*器输出图像格式 */* 0 x00: 目前库只支持YUV420图像格式 */HIU32uStreamype;/* 输入码流格式 */* 0 x00: 目前库只支持以“00 00 01”为 */* nalu分割符的流式H.264码流 */HIU32uPicWidthB;/* 图像宽度(以宏块为/* 图像高度(以宏块为) */HIU32uPicHeightB;) */HIU32uBufNum;/* 参考帧数目 */*器工作模
46、式 */HIU32uWorkMode;/*bit0: 0: 快速输出模式; 1: 正常输出模式*/*bit1 bit2: */00: 仅图像 */*/*01: 保留 */10:Hi351x数字水印 */*/*11: 保留 */*bit4:0: 场图像不做de1: 场图像做deerlace*/*erlace*/*bit5:0: 使用单线程*/1: 多slice使用多线程/*/193 数据类型与数据结构/* bit6 bit31: 保留位*/H264 USERDATA S*serData;/*用户私有数据 */HI U32 u H264 DEC ATTR;S;/*保留字 */【注意事项】无。3.2
47、.4 H264_OUT【说明】T_INFO_S器输出帧信息。【定义】/*器输出帧信息数据结构 */typedef struct hiH264OUTTINFOSHIU32uPicBytes;/*当前帧的字节数 */当前帧的I4x4宏块个数 */HIU32uI4MbNum;/*HIU32uI8MbNum;/*当前帧的I8x8宏块个数 */HIU32uI16MbNum;/*当前帧的I16x16宏块个数 */HIU32uP16MbNum;/*当前帧的P16x16宏块个数 */HIU32uP16x8MbNum;/*当前帧的P16x8宏块个数 */当前帧的P8x16宏块个数 */HIU32uP8x16Mb
48、Num;/*HIU32uP8MbNum;/*当前帧的P8x8宏块个数 */HIU32uPskipMbNum;/*当前帧的PSkip宏块个数 */当前帧的IPCM宏块个数 */HIU32uIpcmMbNum;/* H264 OUTT INFO S;【注意事项】无。3.2.5 H264_DEC_FRAME_S【说明】器输出图像信息。【定义】/*器输出图像信息数据结构 */typedef struct hiH264 DEC FRAME S/* Y分量地址 */HI U8*;203 数据类型与数据结构U分量地址 */HIU8*;/*HIU8*;/*V分量地址 */HIU32uWidth;/*图像宽度(
49、以像素为图像高度(以像素为) */HIU32uHeight;/*) */HIU32uYStride;/*输出Y分量的stride(以像素为) */输出U/V分量stride (以像素为HIU32uUVStride;/*) */HIU32uCropLeftOffset;/*图像裁减信息:左边界裁减像素数 */HIU32uCropRightOffset;/*图像裁减信息:右边界裁减像素数 */图像裁减信息:上边界裁减像素数 */HIU32uCropTopOffset;/*HIU32uCropBottomOffset;/*图像裁减信息:下边界裁减像素数 */输出图像在dpb中的序号 */HIU32uDpbIdx;/*HIU32tPicFlag;/*图像类型:0:帧; 1:顶场; 2:底场 */HIU32bError;/*图像是否有错:0:正确;1:图像有错 */图像是否为IDR帧:0:非IDR帧;1:IDR帧 */HIU32bra;/*HIU64ullPTS;/*时间戳 */HIU32uPictureID;/*图像序号 */保留字 */HIU32u;/*H264 USERDATA S *serData;/*指向用户私有数据 */* 指向当前帧输出信息 */H264 OUTT INFO S*pFrameInfo; H264 DEC FRAMES;【注意事项】无。214 API 应
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 员工离职后的关怀计划
- 小班生活习惯培养的工作重点计划
- 2025年金属探测器项目发展计划
- 2025年股权融资顾问之股权私募项目总协调人暨财务顾问协议
- 折线统计图(教案)青岛版五年级上册数学
- 培训费退款协议(2025年版)
- 保安班长工作总结报告
- 做销售的工作简历模板
- 酒店评价员工的评语
- 物业供应链公司合作协议
- DL∕T 5362-2018 水工沥青混凝土试验规程
- 中国产科麻醉现状及产科麻醉指南解读专家讲座
- 二年级上册心理健康教学设计-第四课 找朋友|辽大版
- JTG-D82-2009公路交通标志和标线设置规范
- DZ∕T 0248-2014 岩石地球化学测量技术规程(正式版)
- 生物农药与生物防治学智慧树知到期末考试答案章节答案2024年浙江农林大学
- 淋巴结结核的个案护理
- 基于STM32的智能扫地机器人设计
- 山东省青岛市崂山区育才学校2023-2024学年下学期奇点计划选拔考试八年级物理试卷
- 赔偿协议书工程质量问题赔偿
- 海洋农场与海洋牧场
评论
0/150
提交评论