CN104539593A - H.245消息解析方法 - Google Patents
H.245消息解析方法 Download PDFInfo
- Publication number
- CN104539593A CN104539593A CN201410783865.XA CN201410783865A CN104539593A CN 104539593 A CN104539593 A CN 104539593A CN 201410783865 A CN201410783865 A CN 201410783865A CN 104539593 A CN104539593 A CN 104539593A
- Authority
- CN
- China
- Prior art keywords
- message
- bit
- decoding
- decoding functions
- signaling
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Landscapes
- Mobile Radio Communication Systems (AREA)
- Communication Control (AREA)
Abstract
本发明涉及一种H.245消息解析方法,含有下列步骤:1、H.245解码信令树的构建;2、消息定义、映射;3、解码:对每一条消息结构编写对应的解码函数,调用解码函数库对应的消息解码函数,完成解码工作;4、消息比特提取;5、H.245信令树的数据填充:对于每条控制信息,通过调用自己的解码函数返回所取的比特值,解码函数将对应的数值填充到本条消息对应的节点上;6、解码结果输出:调用输出显示模块,对此条消息的信令树进行遍历,逐级读取各层节点上填充的数据值,并进行可视化输出,验证解码的正确性;本发明能为可视电话业务数据帧的复用提供关键参数和函数接口。
Description
(一)、技术领域:本发明涉及一种消息解析方法,特别是涉及一种H.245消息解析方法。
(二)、背景技术:H.245协议(Control protocol for multimedia communication)是H.323协议族中用于媒体信道控制的协议,主要完成多媒体通信中每个逻辑通道的建立、维护和释放,具体包括逻辑通道的打开和关闭、参数设定、收发双方的能力协商等控制功能,同时它还要完成多点会议呼叫中逻辑信道的配合控制功能。H.245定义了在通信过程中交互消息的语法和语义,对主要消息的交互过程进行了描述,其对消息语法的定义采用一种逐层嵌套的消息结构。
H.245在OSI框架中属于应用层协议,其功能决定了H.245消息要用到非常复杂的信令,因此使用抽象语法表示法ASN.1来定义信令的类型和格式,采用非对齐的紧缩编码规则(PER,Packet Encoding Rules)来进行表示。由于PER是以比特为单位编码的,且每个信息单元之间没有填充,因此实现起来比较复杂。
(三)、发明内容:
本发明要解决的技术问题是:提供一种H.245消息解析方法,该方法能为可
视电话业务数据帧的复用提供关键参数和函数接口。
本发明的技术方案:
一种H.245消息解析方法,含有下列步骤:
步骤1、H.245解码信令树的构建:
H.245消息的顶层是多媒体***的控制消息(Multimedia System Control Message),多媒体***的控制消息含有四种类型:接收方需响应并且应答的请求消息(Request Message)、应答请求消息(Request Message)的响应消息(Response Message)、接收方需响应但无需应答的命令消息(Command Message)、接收方不响应且无需应答的指示消息(Indication Message);这四种类型的消息是H.245控制协议的第一级消息类型,每种类型消息结构又包含了N种子消息类型,作为下一层子树,以此类推,依层嵌套,最终形成H.245整体信令消息;按照H.245整体信令消息的层次性嵌套结构,将其整个协议消息定义为一个树形的结构类型;对于H.245信令树结构,一条控制消息单元在树形结构中可能有很多条路径可以到达,但是对于待解码的比特流,每次有且只有一条路径有效,可以到达。要得到底层节点的信息,必须走完上层的节点,所以在解码时,必须考虑所有可能出现的路径,才能保证解码的正确性。
步骤2、消息定义、映射:
将用ASN.1 PER定义描述的H.245数据类型和对应的消息结构定义、映射为程序语言描述的数据结构文件,这是解码的基础;映射后的结构具有足够的信息进行编码或者具有足够的域存放解码后的数据;映射完成的功能是将ASN.1描述的每种数据类型都映射到其对应的解码函数中去,这些解码函数再调用下层相应的解码函数实现消息的解码功能。
步骤3、解码:
当数据类型和消息结构映射到程序文件后,接下来就是利用解码函数库进行解码,解码函数库是H.245解析的核心部分;依据H.245信令数结构,必须对每一条消息结构编写对应的解码函数;由于H.245消息的解码函数中包括对于基本数据类型和复合数据结构的调用,所以对于基本的数据类型和复合数据结构,也需要对应的解码函数库;解码函数部分以API接口向其它模块提供调用接口,其本身也对接口模块透明,消息的解码函数必须确定其所取得的比特数,并初始化缓冲区字节和比特两个指针位置,传给比特提取函数;通过接口部分接收经过ASN.1 PER编码后的H.245数据流,然后调用解码函数库对应的消息解码函数,完成解码工作,并将结果通过接口部分送出;
步骤4、消息比特提取:
对于H.245信令树,即使所需单元是必选单元并且比特数固定,仍需逐比特的按照树形结构走到信息所在的节点。为此,在解析模块中设计一个灵活地从比特流中取出任意比特的函数,此函数接受解码函数的调用,提取对应的信息流比特位,并将数值返回给解码函数;函数自身返回所取比特的位数,以验证提取比特位数量的正确性,并且根据所取比特位数调整双指针的位置;这样,即使H.245的信息层层嵌套,也可以通过反复调用此函数实现对信息单元的提取。
步骤5、H.245信令树的数据填充:
对于每条控制信息,通过调用自己的解码函数返回所取的比特值,解码函数将对应的数值填充到本条消息对应的节点上,本级其余节点不填充,值为空;
步骤6、解码结果输出:
当一条H.245信令解析完毕后,消息对应的信令树填充完毕,调用输出显示模块,对此条消息的信令树进行遍历,逐级读取各层节点上填充的数据值,并进行可视化输出,验证解码的正确性。
步骤2中的H.245数据类型含有基本类型和复合类型。
步骤4中的根据所取比特位数调整双指针的位置是指后移双指针的位置。
在调用解码函数库之前,必须执行初始化操作,完成双指针的置0、H.245
信令树各节点清空这些操作;
消息的解码函数必须确定其所取得的比特数,并初始化缓冲区字节和比特两个指针位置,传给比特提取函数;
比特提取函数取得所需要的比特后,将内容返回给对应的解码函数,自身返回所取比特的位数,以验证正确性,并且根据所取比特位数调整双指针的位置;双指针是关键,不能轻易修改位置;
C语言中,并没有对应存储比特位(小于8)的数据结构,因此,比特数值的读取方法为:将包含待读取比特(n位)的字节从缓冲区中取出,先进行左移(由bit指针确定),进行左对齐,然后进行右对齐,将所取比特位之前的bit位清0,完成实际比特位读取;
每条H.245消息的结构定义就是复合数据类型的定义,各消息的解码函数最终需要调用基本类型的解码函数,将返回值填入信令树对应节点;
对于H.245消息定义中个数不定的参数,根据实际消息中参数数量的多少,提供不同的存储空间分配方案;如果参数数量较少,则使用静态存储空间;如果静态空间不足以存放参数,则动态申请空间。这种方法既能适应协议定义出的各种情况,又能在大多数消息解码过程中保证效率。
本发明的有益效果:
1、 本发明在深入研究ASN.l描述的紧缩编码规则PER基础上首先提出了
PER树型解码结构,并设计实现了可用于通信***的PER解码器;本发明针对信令树中每个结点对应的消息编写对应的解码函数,层层嵌套;在对消息解码时,以深度优先搜索方式对信令树进行遍历,消息的解码函数调用包含的基本和复合类型数据对应的解码函数,提取对应的比特值,并将数据值逐层填充到消息信令树对应的结点上,直到叶子结点结束。本发明对经过ASN.1 PER编码后的消息结构进行解码分析,获取控制消息的具体内容,为可视电话业务数据帧的复用提供关键参数和函数接口。
(四)、附图说明:
图1 为H.245信令树结构示意图;
图2 为H.245数据类型与消息结构到C数据结构文件的映射示意图;
图3为解码程序流程图。
(五)、具体实施方式:
H.245消息解析方法含有下列步骤:
步骤1、H.245解码信令树的构建:
H.245消息的顶层是多媒体***的控制消息(Multimedia System Control Message),多媒体***的控制消息含有四种类型:接收方需响应并且应答的请求消息(Request Message)、应答请求消息(Request Message)的响应消息(Response Message)、接收方需响应但无需应答的命令消息(Command Message)、接收方不响应且无需应答的指示消息(Indication Message);这四种类型的消息是H.245控制协议的第一级消息类型,每种类型消息结构又包含了N种子消息类型,作为下一层子树,以此类推,依层嵌套,最终形成H.245整体信令消息;按照H.245整体信令消息的层次性嵌套结构,将其整个协议消息定义为一个树形的结构类型(如图1所示);对于H.245信令树结构,一条控制消息单元在树形结构中可能有很多条路径可以到达,但是对于待解码的比特流,每次有且只有一条路径有效,可以到达。要得到底层节点的信息,必须走完上层的节点,所以在解码时,必须考虑所有可能出现的路径,才能保证解码的正确性。
步骤2、消息定义、映射:
将用ASN.1 PER定义描述的H.245数据类型和对应的消息结构定义、映射为程序语言描述的数据结构文件(如图2所示),这是解码的基础;映射后的结构具有足够的信息进行编码或者具有足够的域存放解码后的数据;映射完成的功能是将ASN.1描述的每种数据类型都映射到其对应的解码函数中去,这些解码函数再调用下层相应的解码函数实现消息的解码功能。
步骤3、解码:
当数据类型和消息结构映射到程序文件后,接下来就是利用解码函数库进行解码(如图3所示),解码函数库是H.245解析的核心部分;依据H.245信令数结构,必须对每一条消息结构编写对应的解码函数;由于H.245消息的解码函数中包括对于基本数据类型和复合数据结构的调用,所以对于基本的数据类型和复合数据结构,也需要对应的解码函数库;解码函数部分以API接口向其它模块提供调用接口,其本身也对接口模块透明,消息的解码函数必须确定其所取得的比特数,并初始化缓冲区字节和比特两个指针位置,传给比特提取函数;通过接口部分接收经过ASN.1 PER编码后的H.245数据流,然后调用解码函数库对应的消息解码函数,完成解码工作,并将结果通过接口部分送出;
步骤4、消息比特提取:
对于H.245信令树,即使所需单元是必选单元并且比特数固定,仍需逐比特的按照树形结构走到信息所在的节点。为此,在解析模块中设计一个灵活地从比特流中取出任意比特的函数,此函数接受解码函数的调用,提取对应的信息流比特位,并将数值返回给解码函数;函数自身返回所取比特的位数,以验证提取比特位数量的正确性,并且根据所取比特位数调整双指针的位置;这样,即使H.245的信息层层嵌套,也可以通过反复调用此函数实现对信息单元的提取。
步骤5、H.245信令树的数据填充:
对于每条控制信息,通过调用自己的解码函数返回所取的比特值,解码函数将对应的数值填充到本条消息对应的节点上,本级其余节点不填充,值为空;
步骤6、解码结果输出:
当一条H.245信令解析完毕后,消息对应的信令树填充完毕,调用输出显示模块,对此条消息的信令树进行遍历,逐级读取各层节点上填充的数据值,并进行可视化输出,验证解码的正确性。
步骤2中的H.245数据类型含有基本类型和复合类型。
步骤4中的根据所取比特位数调整双指针的位置是指后移双指针的位置。
在调用解码函数库之前,必须执行初始化操作,完成双指针的置0、H.245
信令树各节点清空这些操作;
消息的解码函数必须确定其所取得的比特数,并初始化缓冲区字节和比特两个指针位置,传给比特提取函数;
比特提取函数取得所需要的比特后,将内容返回给对应的解码函数,自身返回所取比特的位数,以验证正确性,并且根据所取比特位数调整双指针的位置;双指针是关键,不能轻易修改位置;
C语言中,并没有对应存储比特位(小于8)的数据结构,因此,比特数值的读取方法为:将包含待读取比特(n位)的字节从缓冲区中取出,先进行左移(由bit指针确定),进行左对齐,然后进行右对齐,将所取比特位之前的bit位清0,完成实际比特位读取;
每条H.245消息的结构定义就是复合数据类型的定义,各消息的解码函数最终需要调用基本类型的解码函数,将返回值填入信令树对应节点;
对于H.245消息定义中个数不定的参数,根据实际消息中参数数量的多少,提供不同的存储空间分配方案;如果参数数量较少,则使用静态存储空间;如果静态空间不足以存放参数,则动态申请空间。这种方法既能适应协议定义出的各种情况,又能在大多数消息解码过程中保证效率。
Claims (4)
1.一种H.245消息解析方法,其特征是:含有下列步骤:
步骤1、H.245解码信令树的构建:
H.245消息的顶层是多媒体***的控制消息,多媒体***的控制消息含有四种类型:接收方需响应并且应答的请求消息、应答请求消息的响应消息、接收方需响应但无需应答的命令消息、接收方不响应且无需应答的指示消息;这四种类型的消息是H.245控制协议的第一级消息类型,每种类型消息结构又包含了N种子消息类型,作为下一层子树,最终形成H.245整体信令消息;按照H.245整体信令消息的层次性嵌套结构,将其整个协议消息定义为一个树形的结构类型;
步骤2、消息定义、映射:
将用ASN.1 PER定义描述的H.245数据类型和对应的消息结构定义、映射为程序语言描述的数据结构文件;映射后的结构具有足够的信息进行编码或者具有足够的域存放解码后的数据;
步骤3、解码:
对每一条消息结构编写对应的解码函数;由于H.245消息的解码函数中包括对于基本数据类型和复合数据结构的调用,所以对于基本的数据类型和复合数据结构,也需要对应的解码函数库;解码函数部分以API接口向其它模块提供调用接口,其本身也对接口模块透明,消息的解码函数必须确定其所取得的比特数,并初始化缓冲区字节和比特两个指针位置,传给比特提取函数;通过接口部分接收经过ASN.1 PER编码后的H.245数据流,然后调用解码函数库对应的消息解码函数,完成解码工作,并将结果通过接口部分送出;
步骤4、消息比特提取:
在解析模块中设计一个灵活地从比特流中取出任意比特的函数,此函数接受解码函数的调用,提取对应的信息流比特位,并将数值返回给解码函数;函数自身返回所取比特的位数,以验证提取比特位数量的正确性,并且根据所取比特位数调整双指针的位置;
步骤5、H.245信令树的数据填充:
对于每条控制信息,通过调用自己的解码函数返回所取的比特值,解码函数将对应的数值填充到本条消息对应的节点上,本级其余节点不填充,值为空;
步骤6、解码结果输出:
当一条H.245信令解析完毕后,消息对应的信令树填充完毕,调用输出显示模块,对此条消息的信令树进行遍历,逐级读取各层节点上填充的数据值,并进行可视化输出,验证解码的正确性。
2.根据权利要求1所述的H.245消息解析方法,其特征是:所述步骤2中的H.245数据类型含有基本类型和复合类型。
3.根据权利要求1所述的H.245消息解析方法,其特征是:所述步骤4中的根据所取比特位数调整双指针的位置是指后移双指针的位置。
4.根据权利要求1所述的H.245消息解析方法,其特征是:在调用解码函数库之前,必须执行初始化操作,完成双指针的置0、H.245信令树各节点清空这些操作;
消息的解码函数必须确定其所取得的比特数,并初始化缓冲区字节和比特两个指针位置,传给比特提取函数;
比特提取函数取得所需要的比特后,将内容返回给对应的解码函数,自身返回所取比特的位数,以验证正确性,并且根据所取比特位数调整双指针的位置;
比特数值的读取方法为:将包含待读取比特的字节从缓冲区中取出,先进行左移,进行左对齐,然后进行右对齐,将所取比特位之前的bit位清0,完成实际比特位读取;
每条H.245消息的结构定义就是复合数据类型的定义,各消息的解码函数最终需要调用基本类型的解码函数,将返回值填入信令树对应节点;
对于H.245消息定义中个数不定的参数,根据实际消息中参数数量的多少,提供不同的存储空间分配方案;如果参数数量较少,则使用静态存储空间;如果静态空间不足以存放参数,则动态申请空间。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410783865.XA CN104539593B (zh) | 2014-12-18 | 2014-12-18 | H.245消息解析方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410783865.XA CN104539593B (zh) | 2014-12-18 | 2014-12-18 | H.245消息解析方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104539593A true CN104539593A (zh) | 2015-04-22 |
CN104539593B CN104539593B (zh) | 2017-06-23 |
Family
ID=52855062
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410783865.XA Active CN104539593B (zh) | 2014-12-18 | 2014-12-18 | H.245消息解析方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104539593B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106899377A (zh) * | 2015-12-17 | 2017-06-27 | 联芯科技有限公司 | 一种信道译码方法及装置 |
CN113742294A (zh) * | 2021-08-23 | 2021-12-03 | 宜通世纪科技股份有限公司 | 一种asn.1-per信令消息解码方法、***、装置及介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6335927B1 (en) * | 1996-11-18 | 2002-01-01 | Mci Communications Corporation | System and method for providing requested quality of service in a hybrid network |
CN1882116A (zh) * | 2005-08-11 | 2006-12-20 | 华为技术有限公司 | 内置视频网关的移动交换中心及实现多媒体互通的方法 |
CN1910926A (zh) * | 2004-01-21 | 2007-02-07 | 达丽星网络有限公司 | 用于处理视频通信差错的方法和装置 |
US20090116477A1 (en) * | 2005-10-21 | 2009-05-07 | Siemens Aktiengesellschaft | Signaling Referring to Setup of H.324 Video Telephone Between Media Gateway and Controller |
CN101494696A (zh) * | 2002-12-12 | 2009-07-29 | 达丽星网络有限公司 | 在使用h.324和相关通信协议的设备之间快速建立会话的方法与*** |
CN101640784A (zh) * | 2008-07-28 | 2010-02-03 | 上海领世通信技术发展有限公司 | 一种在视频会议***中控制多画面复合的控制装置及方法 |
-
2014
- 2014-12-18 CN CN201410783865.XA patent/CN104539593B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6335927B1 (en) * | 1996-11-18 | 2002-01-01 | Mci Communications Corporation | System and method for providing requested quality of service in a hybrid network |
CN101494696A (zh) * | 2002-12-12 | 2009-07-29 | 达丽星网络有限公司 | 在使用h.324和相关通信协议的设备之间快速建立会话的方法与*** |
CN1910926A (zh) * | 2004-01-21 | 2007-02-07 | 达丽星网络有限公司 | 用于处理视频通信差错的方法和装置 |
CN1882116A (zh) * | 2005-08-11 | 2006-12-20 | 华为技术有限公司 | 内置视频网关的移动交换中心及实现多媒体互通的方法 |
US20090116477A1 (en) * | 2005-10-21 | 2009-05-07 | Siemens Aktiengesellschaft | Signaling Referring to Setup of H.324 Video Telephone Between Media Gateway and Controller |
CN101640784A (zh) * | 2008-07-28 | 2010-02-03 | 上海领世通信技术发展有限公司 | 一种在视频会议***中控制多画面复合的控制装置及方法 |
Non-Patent Citations (4)
Title |
---|
ITU-T: "H.246 Control Protocol For Multimedia Communication", 《ITU-T RECOMMENDATION》 * |
LV QIAN,HUANG BENXIONG,WANG FURONG: "The mechanism of ASN.1 encoding and decoding implementation in network protocols", 《INFORMATION TECHNOLOGY: CODING AND COMPUTING》 * |
冯雁; 彭宇; 刘芳: "SIP-H323信令转换网关中H.245隧道机制的实现方案", 《通信技术》 * |
申崇江,张文军,石峻: "可视电话***中多媒体通信控制协议H1245的实现", 《红外与激光工程》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106899377A (zh) * | 2015-12-17 | 2017-06-27 | 联芯科技有限公司 | 一种信道译码方法及装置 |
CN106899377B (zh) * | 2015-12-17 | 2019-07-12 | 辰芯科技有限公司 | 一种信道译码方法及装置 |
CN113742294A (zh) * | 2021-08-23 | 2021-12-03 | 宜通世纪科技股份有限公司 | 一种asn.1-per信令消息解码方法、***、装置及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN104539593B (zh) | 2017-06-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11200701B2 (en) | Method and apparatus for storage and signaling of static point cloud data | |
JP6233984B2 (ja) | マルチビュー・ビデオ符号化のための仮想参照デコーダ | |
US20200381022A1 (en) | Method and apparatus for storage and signaling of compressed point clouds | |
US11595670B2 (en) | Method and apparatus for storage and signaling of sub-sample entry descriptions | |
RU2009142429A (ru) | Системы кодирования | |
CN105900445B (zh) | 用于动态自适应流式传输的稳健实况操作的方法和装置 | |
JP6475228B2 (ja) | コンテナフォーマットでのメディアファイルの構文を意識した操作 | |
BR112016000920A2 (pt) | Aparelho e método de decodificação de imagem | |
CN109684097B (zh) | 一种基于cmsp的json数据解析与存储方法 | |
CN108111865A (zh) | Jctvc-l0226:vps和vps_extension更新 | |
CN105451061A (zh) | 屏幕共享方法和装置 | |
CN104539593A (zh) | H.245消息解析方法 | |
CN105491387A (zh) | 一种基于Intel、AMD和Nvidia三平台的H264硬件编码*** | |
CN102571541A (zh) | 报文编、解码方法及装置 | |
CN102724553A (zh) | 图像编码方法、图像解码方法及图像编码器和图像解码器 | |
CN101924666A (zh) | 一种信令跟踪的解码实现方法及*** | |
CN105320684B (zh) | 隐藏字幕的数据交换方法 | |
CN104935923A (zh) | 信号编码方法及***、信号解码方法及*** | |
WO2023059452A1 (en) | Method and apparatus for dynamic dash picture-in-picture streaming | |
CN109257571A (zh) | 一种实时视频与地理位置信息同时显示的***及方法 | |
KR20230173096A (ko) | 몰입형 미디어 콘텐츠를 스트리밍하기 위한 사용자 환경에 대한 장면 디스크립션의 앵커링 | |
CN104320644B (zh) | 一种深度信息的编解码方法、***及装置 | |
CN104462220B (zh) | 网页截屏与编码传输方法及装置 | |
CN117242780A (zh) | 将场景描述锚定到用户环境以用于流式传输沉浸式媒体内容 | |
CN110545470A (zh) | 一种媒体文件加载方法、装置及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |