海康威视DS-400xH系列卡系统SDK说明书
(FOR LINUX)
(2004-11-12 3.8版)
海康威视DS-400xH是面向数字监控行业而推出的专用板卡,采用了高性能的视频压缩技术标准H.264及G.722的音频编码标准,完全依靠硬件实现了视频及音频的实时编码(CIF 格式25帧)并精确同步,实现了动态码率、可控帧率、帧模式选择、动态图像质量控制,音频预览、视频丢失报警、能独立调整各通道参数,性能稳定而且可靠。与MPEG-I产品相比,在保持同等图像质量的前提下,能大大节省存储空间、并非常适合宽带网或窄带网的传输,是新一代数字监控产品的最佳选择。
海康威视DS-400xH系列卡SDK分为三部分,分别为系统SDK、网络SDK、播放SDK,本文档专门描述系统SDK,其他SDK请参照我公司相关文档。系统SDK是专门为该系列一路及多路板卡设计的本地录像软件接口程序,以动态库的形式(libtmsdk.so)提供给应用软件开发者,并同时附有演示程序及其源码,能有效地缩短应用软件的开发周期。
在使用过程中,特别提醒软件开发人员,DS-400XH系列压缩卡可动态设置帧结构、帧率和图像质量,即在压缩过程中可改变帧率(SetIBPMode(…))和量化系数(SetDefaultQuant)无须停止、启动压缩,还是保持同一数据流记录。播放器会自动识别帧率等参数,按当前压缩帧率播放且声音播放保持正常。
通过动态修改量化系数(I、B、P)可控制压缩码率,当码率太高时,加大量化系数;当码率太低时,减少量化系数。当然,在量化系数满足的情况下,不必再降低量化系数。
DS-400XH系列压缩卡的运动检测独立于压缩,不进行压缩也可以进行运动检测。可动态改变帧率非常有价值,在运动时按25F/S录像,在无运动时按较低帧率录像,运动时按高帧帧率录像,记录在同一个文件内,可大大节省硬盘空间。
SetLogo(…)不仅可作LOGO使用,还可以用于遮盖图像中的某些区域。
注意事项:本系统SDK的使用环境为Red Hat 7.2 Kernel 2.4.7-10
或Red Hat 7.3 Kernel 2.4.18-3
或Red Hat 8.0 Kernel 2.4.18-20
或Red Hat 9.0 Kernel 2.4.20-8
或Federa1 Kernel 2.4.22-1
如需运行我们提供的DEMO程序,需要XWINDOW支持。
安装完驱动后,必须重新启动计算机。
版本升级说明:
3.8 版本改进部分:
1. 增加了新的编码分辨率:Double CIF(ENC_DCIF_FORMAT)。PAL:528*384,NTSC:
528*320。DCIF 和CIF 相比,在相同的码流下,图像质量和线数会有明显提高;
2. 升级码流的格式,可以支持任意改变录像分辨率而不用切换文件(需要配合新的解
码库使用);
3.新增了屏幕遮挡MASK 函数,最大支持32 个区域,相对坐标范围(0,0,703,
575);
4.预览提供更多选择,提供了新接口StartVideoPreviewEx(),现可支持非固定1024*768 、16位的分辨率,现可支持16位与24位。在RedHat9.0下特别提供了overlay 的方式:根据sdl的特性,现提供两种方式,软加速与硬加速的方式。在软加速时,操作相对简单,但cpu占用率高,在硬加速时,cpu
占用率相对较低,但操作较复杂。 具体使用请参看分别的demo: softdemo.c 和 harddemo.c
5.在双编码模式时,CIF 与QCIF(QQCIF)的帧率分别可调,但QCIF(QQCIF)的帧率
不能大于CIF 的;  在双编码模式时, CIF 为设为复合流时,QCIF 可为复合流或视频流,当CIF 为视频流,QCIF 只能设为视频流;
3.4版本改进部分:
供了双编码模式,即同时提供CIF + QCIF/QQCIF数据流;
logo位图最大支持128*128;
3.2版本改进部分:
提供了704*288即2CIF的分辨率的编码模式(通过SetEncodePictureFormat设置);
提供了OSD按照背景亮度自动调整显示亮度的功能;
音频和视频数据可以单独处理,可用于实现音频优先的传输方案;
提供了在B帧编码模式下的帧率控制;
改进音频的处理,保证音频的流畅;
iframe参数传递
OSD能显示44个ASCII 字符;
本地支持24路音视频编码;
SDK3.0 与以前版本,即与海康威视前期推出的DS-400xM相比,DS-400xH系列主要特点有:
在保持相同图像质量的前提下,与DS-400xM系列板卡相比,压缩码流降低30%以上,在办公室典型环境中码率只有 20kbps~120kbps。
提供了非常精确的码率控制方式,无论在何种情况下均能输出指定的码率,并增加了CBR控制方式。
极大地降低了由于摄像噪声导致的图像失真、背景游动等现象。
采用了G.722的音频压缩算法,声音更加流畅。
将会提供高分辨率(640*480)的视频压缩功能。
SDK接口完全与DS-400xM系列板卡一致,并增加了一些其他功能。已开发的应用软件可以迅速完成移植。
SDK2.2,与1.2版相比的主要改进内容:
图像质量进一步提高;
修改SetOsd()的接口定义,去掉了接口参数VerticalOffset;
改进OSD的设置方式,提供了OSD位置、亮度、格式以及用户可编写的字符串;
改进了LOGO的设置方式,可以显示背景完全透明的或不透明的BMP图像;
增加了码率控制,可以限制编码的最高码率;
QCIF模式可以在录像停止后设置,不必重新启动系统
改进了QCIF编码的清晰度;
修改了一些BUG;
SDK版本1.2,与1.0版相比的主要改进内容:
图像质量有一定的提高(提高了编码及回放图像的清晰度);
修改了SetOsd函数的接口定义
增加了一些接口,具体请查看函数说明:
1.CaptureIFrame 提供单I帧捕获,不会影响实时录象
2.SetupMotionDetection  设置运动检测区域
3.MotionAnalyzer 分析运动检测数据
4.AdjustMotionDetectPrecision  运行时调整运动检测精度
5.SetEncodePictureMode 设置图像编码尺寸CIF 或 QCIF,QCIF
适合窄带传输如PSTN
改进了运动侦测,运动分析灵敏可靠(注意:原运动向量接口关闭使用,改为运动强度以简化软件设计要求);
系统目前支持最大16路的视音频录像;
修改了1.0版的一些BUGs
1. 本SDK使用的错误代号定义及说明:
错误号解释TMSDKErrorCodeDSPUninit DSP未初始化TMSDKErrorCodeDSPOpenFail DSP打开失败TMSDKErrorCodeDSPStopFail DSP停止失败TMSDKErrorCodeDSPLoadFail DSP程序下载失败TMSDKErrorCodeDSPStartFail 启动DSP失败TMSDKErrorCodeDSPStopUnexpect DSP非正常关闭TMSDKErrorCodeDSPRestFail DSP复位失败TMSDKErrorCodeDSPCloseFail DSP关闭失败TMSDKErrorCodeDSPMagicMismatch 非法的DSP句柄TMSDKErrorCodeDSPMessageCreateFail 创建MESSAGE失败TMSDKErrorCodeDSPSyncObjectCreateFail 创建SYNCOBJECT失败TMSDKErrorCodeDSPMessageSendFail 发送MESSAGE失败TMSDKErrorCodeDSPMessageReceiveFail 接收MESSAGE失败TMSDKErrorCodeDSPSharedMemoryCreateFail 创建SHAREMEM失败
TMSDKErrorCodeInvalidArgument 非法参数TMSDKErrorCodeNoCardInstalled 系统未安装DS-400xM系列卡TMSDKErrorCodeCreateCommInfoFail 初始化系统参数失败
TMSDKErrorCodeMemLocateFail 分配内存失败TMSDKErrorCodeChannelNumOutOfRange 非法的通道号TMSDKErrorCodeChannelMagicMismatch 非法的通道句柄TMSDKErrorCodeUseChannelClosed 试图使用已关闭的通道TMSDKErrorCodeGetVgaBaseFail 无法得到VGABASE TMSDKErrorCodeFileO
penFail 打开文件失败TMSDKErrorCodeCreateThreadFail 建立线程失败TMSDKErrorCodeDriverNotInstalled 系统未安装DS-400xM系列卡的驱动TMSDKErrorCodeCanNotDeInitDSPsWhileChann
试图在仍有打开通道的情况下关闭DSP elOpen
TMSDKErrorCodeTryToOpenChannelTwice 试图两次打开同一通道TMSDKErrorCodeTryToCloseChannelInUse 试图关闭正在使用(PREVIEW OR
CAPTURE)的通道TMSDKErrorCodeWrongVerCore DSP程序的版本号与SDK的版本号不匹
TMSDKErrorCodeTimeOut 超时错误
2. 数据类型定义
2.1视频预览输出格式:
vdfRGB16 16位RGB视频压缩格式
vdfRGB24 24位RGB视频压缩格式
vdfYUV422Planar                      YUV422视频压缩格式
2.2帧类型定义
PktSysHeader 系统头
PktIFrames I帧包
PktPFrames P帧包
PktBBPFrames BBP帧包
PktAudioFrames 音频帧包
PktMotionDetection 动态监测包
PktSFrames    1.2版新增类型,为I帧捕获时传送的
帧类型
2.3视频标准定义
StandardNone                    无视频信号
StandardNTSC                    NTSC制式
StandardPAL                    PAL制式
2.4流类型
STREAM_TYPE_VIDEO 视频流
STREAM_TYPE_AUDIO 音频流
STREAM_TYPE_A VSYNC 音视频同步流
3. 数据结构定义
3.1特殊功能能力定义
typedef struct tagChannelCapability{
UCHAR bAudioPreview; 音频预览
UCHAR bAlarmIO; 报警信号
UCHAR bWatchDog; 看家狗
}CHANNEL_CAPABILITY, *PCHANNEL_CAPABILITY;
3.2帧数据统计
typedef struct tagFramsStatistics{
ULONG VideoFrames;              视频帧
ULONG AudioFrames;              音频帧
ULONG FramesLost;              丢失帧
ULONG QueueOverflow;            缓存溢出
}FRAMES_STATISTICS, *PFRAMES_STATISTICS;
3.3 显示区域
typedef struct tagRect{
RectTop;
short
RectBottom;
short
RectLeft;
short
RectRight;
short
}RECT;
3.3 版本信息
typedef struct tagVersion{
ULONG
DspBuildNum;  DSP版本及BUILD号
DspVersion,
ULONG DriverVersion, DriverBuildNum; 驱动版本及BUILD号
SDK版本及BUILD号
SDKBuildNum;
ULONG
SDKVersion,
}VERSION_INFO, *PVERSION_INFO;
3.4 运动检测数据帧头结构
typedef struct tagMotionData{
PictureFormat_t
PicFormat; 图像类型:2CIF、CIF或QCIF HorizeBlocks; 水平块个数(2CIF 为44, ULONG

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。