VSM 20视频告警模块详细设计说明书.docx

上传人:b****7 文档编号:9260482 上传时间:2023-02-03 格式:DOCX 页数:17 大小:266.11KB
下载 相关 举报
VSM 20视频告警模块详细设计说明书.docx_第1页
第1页 / 共17页
VSM 20视频告警模块详细设计说明书.docx_第2页
第2页 / 共17页
VSM 20视频告警模块详细设计说明书.docx_第3页
第3页 / 共17页
VSM 20视频告警模块详细设计说明书.docx_第4页
第4页 / 共17页
VSM 20视频告警模块详细设计说明书.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

VSM 20视频告警模块详细设计说明书.docx

《VSM 20视频告警模块详细设计说明书.docx》由会员分享,可在线阅读,更多相关《VSM 20视频告警模块详细设计说明书.docx(17页珍藏版)》请在冰豆网上搜索。

VSM 20视频告警模块详细设计说明书.docx

VSM20视频告警模块详细设计说明书

VMS2.0视频告警模块

详细设计说明书

文件状态:

[√]草稿

[]正式发布

[]正在修改

文件标识:

当前版本:

1.0

所属产品

VMS2.0

作者:

赵云

完成日期:

修订历史记录

版本       

日期      

操作      

修订者     

说明     

1.0

07/12/2011

A

赵云

初稿

2.0

09/27/2011

M

蒋兴杰

补充

(A-添加,M-修改,D-删除)

目录

1.引言4

1.1目的4

1.2背景4

1.3范围4

2.使用说明5

2.1需求概述5

2.2目标读者5

3.功能说明5

3.1videomon模块示意图5

3.2功能概述6

3.3告警等级划分6

3.4告警策略6

3.5主线程流程图7

4.数据结构7

4.1全局变量7

5.接口说明9

5.1告警接口9

5.2视频质量接口9

5.3Mdi接口10

5.4Tr101290接口11

5.5内容层接口11

1.引言

1.1目的

该模块主要接收VQMonService(分析视频质量模块)和CAnalyzeServie(内容层分析模块)发过来的视频质量参数,从而判断是否有视频流告警事件发生,如果有,则根据告警策略处理告警事件。

1.2背景

IPTV使用MPEGTS传输码流在IP网络上承载和传送视频基本流(ES),TS码流中包含了各种用于视频流解码所必须的信息内容。

由于MPEGTS流的损伤会直接影响机顶盒的正常解码和视频质量,因此TS流的健康状况监测对保障IPTV用户体验质量十分重要。

MDI(df和mlr)、TR101290、静帧、彩条、马赛克等都是对视频流质量的监控.

本模块通过对告警划分等级,优先级高的告警抑制优先级低的告警,同时为了减少告警的频繁上报,采用了计数和抑制时间方法。

1.3范围

该文档对VMS2.0视频告警模块的内容功能、数据结构和接口方面进行了详细描述,供后继开发维护人员使用。

2.使用说明

2.1需求概述

《IPTV视频分析设备》

《IPTV质量保障系统技术建议书》

2.2目标读者

公司内部后继开发维护人员。

3.功能说明

3.1videomon模块示意图

Videomon模块是一个独立进程,里面包含很多服务模块。

VideoService:

负责视频流的转发和http通信。

AlarmService:

负责接收视频质量参数,判断告警和视频录制功能。

VQMonService:

负责接收视频流,产生视频质量参数。

CAnalyzeService:

负责接收VideoService转发的视频流,并产生内容层视频质量参数。

DAccessService:

负责和QCS进行通信,还有下发配置信息,比如频道信息。

 

3.2功能概述

本模块运行于VSM2.0里面的(VideoMon)模块中,VideoMon是一个独立的进程,当VideoMon启动时,会自动加载AlarmServie模块。

AlarmService模块初始化的时候,会注册两个线程,一个是视频质量接收线程,一个是检测断流线程(每隔5s检测一次)。

视频质量接收线程,主要负责接收其它服务模块发过来的视频质量参数,然后对这些数据进行处理,比如(达标率统计,滑动窗口处理),判断是否有告警事件发生,如果有,则根据告警类型,获得相应的告警策略,处理告警事件。

检测断流线程,主要定时检测(每隔5s检测一次)是否有频道断流事件,判断断流的方法是(当前时间–上次窗口时间>3个滑动窗口时间),如果有断流时间发生,就发送断流告警给DAccessService模块。

3.3告警类型

传输层告警:

DF、MLR、传输质量、编码质量

内容层告警:

静帧、黑屏、彩条、BLOCKNESS、语法错误、LOSS_CHROMA、LUMI、RGB、马赛克

TR101290告警

断流告警

以下是具体告警类型,红色为1级告警,紫色为2级告警,蓝色为3级告警,其它待定

CHANNEL_ALARM_TYPE_UNKNOW=0,

CHANNEL_ALARM_TYPE_NOSTREAM=0x00000001,

CHANNEL_ALARM_TYPE_RECUR_STREAM=0x00000002,

CHANNEL_ALARM_TYPE_TRANS_ERR=0x00000004,

CHANNEL_ALARM_TYPE_MEDIARATE_ASTATICISM=0x00000008,

CHANNEL_ALARM_TYPE_PAT_ERR=0x00000010,

CHANNEL_ALARM_TYPE_CONT_ERR=0x00000020,

CHANNEL_ALARM_TYPE_PMT_ERR=0x00000040,

CHANNEL_ALARM_TYPE_PID_ERR=0x00000080,

CHANNEL_ALARM_TYPE_CRC_ERR=0x00000100,

CHANNEL_ALARM_TYPE_PCR_ERR=0x00000200,

CHANNEL_ALARM_TYPE_PTS_ERR=0x00000400,

CHANNEL_ALARM_TYPE_CAT_ERR=0x00000800,

CHANNEL_ALARM_TYPE_MDIDF_ERR=0x00001000,

CHANNEL_ALARM_TYPE_MDIMLR_ERR=0x00002000,

CHANNEL_ALARM_TYPE_FROZEN_FRAME=0x00004000,

CHANNEL_ALARM_TYPE_BLACK__SCREEN=0x00008000,

CHANNEL_ALARM_TYPE_COLOR_BAR=0x00010000,

CHANNEL_ALARM_TYPE_BLOCKNESS=0x00020000,

CHANNEL_ALARM_TYPE_UNICAST_START=0x00040000,

CHANNEL_ALARM_TYPE_UNICAST_END=0x00080000,

CHANNEL_ALARM_TYPE_SYNTAX_ERROR=0x00100000,

CHANNEL_ALARM_TYPE_LOSS_CHROMA=0x00200000,

CHANNEL_ALARM_TYPE_LUMI_ERROR=0x00400000,

CHANNEL_ALARM_TYPE_RGB_ERROR=0x00800000,

CHANNEL_ALARM_TYPE_MOSAIC_ERROR=0x01000000,

CHANNEL_ALARM_TYPE_OTHER_CODEC_ERR=0x10000000,

CHANNEL_ALARM_TYPE_LAST=0x80000000,

CHANNEL_ALARM_TYPE_DEFAULT=0xffffffff

3.4告警策略

告警主要采用以下几个策略:

1:

一种或者几种告警类型,可以配置成一种告警策略,告警策略里面可以配置告警否录制,录制时长,告警抑制时间,告警抑制计数。

2:

不包含在告警策略里面的告警,组成一个默认告警策略

3:

告警恢复,也是单独一种告警策略,用来恢复告警

4:

所有告警策略组成一个告警列表,某种告警通过告警列表,处理告警。

 

3.5流程图

3.5.1MSG_NOTIFY_EXTERN消息流程图

初始i=0;

MSG_NOTIFY_EXTERN消息里面会判断视频是否已经衰减和在衰减时间内,如果在,就衰减视频质量的mos和codecQuant,否则就恢复ca_flag衰减标志和衰减时间。

3.5.1MSG_NOTIFY_EXTERN消息流程图

3.5.2MSG_NOTIFY_TR101290消息流程图

3.5.2MSG_NOTIFY_TR101290消息流程图

3.5.3MSG_NOTIFY_CA_QUAL消息流程图

Ca_flag:

视频质量衰减标志false:

没有衰减true:

已经衰减

3.5.3MSG_NOTIFY_CA_QUAL消息流程图

备注:

MSG_NOTIFY_EXTERN消息里面会判断视频是否已经衰减和在衰减时间内,如果在,就衰减视频质量的mos和codecQuant,否则就恢复ca_flag衰减标志和衰减时间。

3.5.4告警策略流程图

3.5.4.1告警策略流程图

 

4.数据结构

4.1全局变量

#defineMAX_VIDEO_RECORD_BUF_LEN2*1024*1024//2M

typedefstruct

{

boolisalarm;

ACE_UINT32alarm_level;

ACE_UINT32count;

time_ttime;

time_tlasttime;

}VQMonAlarm;

typedefstruct

{

ACE_Thread_Mutexmylock_;

NotifSlideWindowCellnotifSWList[SLIDE_WINDOW_SIZE];

ACE_UINT32sWCurPointer;

ACE_UINT32sWUseNum;

time_tlastMetricsGetTime;

time_tstattime;

ACE_UINT32exist;//streamflag

VideoQualityNotifnotifVal;

VQMonStatisticstatInfo;

doublelastMediaRate[2];

Tr101290tr;

boolisTRInit;

ACE_INET_Addrsrc_addr_;

ACE_INET_Addrdst_addr_;

VQMonAlarmalarm[VQMON_ALARM_SIZE];//alarmarray

//Listlist;

ACE_HANDLEhfile;

void*deliver;

boolrecord_flag_;

ACE_UINT32bind_count;//绑定计数

time_trecode_start_time;//视频录制开始时间

ACE_TCHARrecord_file_name_[MAX_FILENAME_LEN+1];//视频录制文件名称

ACE_UINT32position;//视频录制缓冲区位置

ACE_TCHARrecord_buf[MAX_VIDEO_RECORD_BUF_LEN+1];//视频录制缓冲区

}StreamNode;

#defineALARM_LEVEL11

#defineALARM_LEVEL22

#defineALARM_LEVEL33

#defineALARM_TYPE1(CHANNEL_ALARM_TYPE_MDIDF_ERR|\

CHANNEL_ALARM_TYPE_MDIMLR_ERR|\

CHANNEL_ALARM_TYPE_NOSTREAM)

#defineALARM_TYPE2(CHANNEL_ALARM_TYPE_FROZEN_FRAME|\

CHANNEL_ALARM_TYPE_BLACK__SCREEN|\

CHANNEL_ALARM_TYPE_COLOR_BAR|\

CHANNEL_ALARM_TYPE_BLOCKNESS|\

CHANNEL_ALARM_TYPE_SYNTAX_ERROR|\

CHANNEL_ALARM_TYPE_LOSS_CHROMA|\

CHANNEL_ALARM_TYPE_LUMI_ERROR|\

CHANNEL_ALARM_TYPE_RGB_ERROR)

#defineALARM_TYPE3(CHANNEL_ALARM_TYPE_PAT_ERR|\

CHANNEL_ALARM_TYPE_PCR_ERR|\

CHANNEL_ALARM_TYPE_PID_ERR|\

CHANNEL_ALARM_TYPE_PMT_ERR|\

CHANNEL_ALARM_TYPE_PTS_ERR|\

CHANNEL_ALARM_TYPE_CRC_ERR|\

CHANNEL_ALARM_TYPE_CONT_ERR|\

CHANNEL_ALARM_TYPE_CAT_ERR|\

CHANNEL_ALARM_TYPE_TRANS_ERR|\

CHANNEL_ALARM_TYPE_OTHER_CODEC_ERR)

5.接口说明

5.1告警接口

classVM_Message_Alarm_Notify:

publicVM_Message_Notify

{

public:

VM_Message_Alarm_Notify(inttype=

VM_Message_Notify:

:

MSG_NOTIFY_ALARM);

ACE_UINT32alarm_type_;

ACE_UINT16is_alarm_;

ACE_UINT16alarm_level_;

ACE_TCHARalarm_time_[MAX_TIME_FORMAT_LEN];

ALARM_DESCalarm_desc_;

boolrecord_flag_;

ACE_TCHARrecord_file_name_[MAX_FILENAME_LEN];

};

5.2视频质量接口

classVM_Message_Extern_Notify:

publicVM_Message_Notify

{

public:

VM_Message_Extern_Notify(inttype=

VM_Message_Notify:

:

MSG_NOTIFY_EXTERN);

///Externalquality.

ACE_INT32mos_;

ACE_UINT32vstq_;

ACE_UINT32codec_;

floatloss_rate_;

floatmdi_df_;

floatmdi_mlr_;

floatmedia_rate_;

};

5.3Mdi接口

classVM_Message_Mdi_Notify:

publicVM_Message_Notify

{

public:

structMdi_Qual

{

floatdf_;

floatmlr_;

ACE_UINT32mr_;//mediarate

};

VM_Message_Mdi_Notify(inttype=

VM_Message_Notify:

:

MSG_NOTIFY_MDI);

///Mdiquality.

ACE_UINT32qual_sec_num_;

Mdi_Qualqual_;

Mdi_Qualqual_sec_[2*CONFIG_QUALITY_CALCULATE_INTERVAL];

ACE_UINT32mlt15_;

ACE_UINT32mlt24_;

ACE_UINT32pkts_recv_;

ACE_UINT32pkts_lost_;

ACE_UINT32pkts_ooseq_;

};

5.4Tr101290接口

classVM_Message_TR101290_Notify:

publicVM_Message_Notify

{

public:

VM_Message_TR101290_Notify(inttype=

VM_Message_Notify:

:

MSG_NOTIFY_TR101290);

///Video/AudioTR101290.

vqmon_streammetrics_mp2tstr101290P1_tmp2ts_tr101290p1_;

vqmon_streammetrics_mp2tstr101290P2_tmp2ts_tr101290p2_;

};

5.5内容层告警接口

classCA_Message_Qual_Notify:

publicVM_Message_Notify

{

public:

enum

{

CA_ALARM_TYPE_UNKNOW=0,

CA_ALARM_TYPE_FROZEN_FRAME,

CA_ALARM_TYPE_BLACK_SCREEN,

CA_ALARM_TYPE_COLOR_BAR,

CA_ALARM_TYPE_BLOCKNESS,

CA_ALARM_TYPE_SYNTAX_ERROR,

CA_ALARM_TYPE_LOSS_CHROMA,

CA_ALARM_TYPE_LUMI_ERROR,

CA_ALARM_TYPE_RGB_ERROR,

CA_ALARM_TYPE_MOSAIC_ERROR

};

CA_Message_Qual_Notify(inttype=

VM_Message_Notify:

:

MSG_NOTIFY_CA_QUAL);

intalarm_type_;

charalarm_desc_[1024];

};

5.6和DataAccess层接口

classVM_Message_Qual_Notify:

publicVM_Message_Notify

{

public:

VM_Message_Qual_Notify(inttype=

VM_Message_Notify:

:

MSG_NOTIFY_QUAL);

floatmos_;

floatvstq_;

ACE_UINT32codec_;

floatloss_rate_;

floatmdi_df_;

floatmdi_mlr_;

floatmedia_rate_;

};

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工作范文 > 行政公文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1