Gsm610数据转换为pcm数据的系统及方法

文档序号:7762758阅读:1649来源:国知局
专利名称:Gsm610数据转换为pcm数据的系统及方法
GSM610数据转换为PCM数据的系统及方法
技术领域
本发明涉及移动通信领域,尤其涉及一种GSM610数据转换为PCM数据的系统及方法。
背景技术
Android是一种基于Linux平台的开源手机操作系统,使用Android平台的手机 只能用GSM610格式传送语音数据,GSM610是欧洲电信标准化组织为第一代GSM(GlcAal System for Mobile Communications,全球移动通讯系统)指定的语音压缩编码标准。而在 Android平台中可使用的语音数据是PCM(PulseCode Modulation,脉码调制)数据,GSM610 数据传送到使用Andro i d平台的手机,必须经过转码后才能在Andro i d平台中使用。

发明内容基于此,有必要提供一种能将GSM610数据转换为PCM数据的系统。一种GSM610数据转换为PCM数据的系统,包括数据切割模块,用于将接收到的GSM610数据切割为多个数据包;转码模块,用于将切割后的数据包转码为PCM数据包;数据生成模块,用于将多个PCM数据包生成PCM数据。优选的,系统还包括用于判断接收到的GSM610数据是否合法的判断模块。优选的,判断模块用于解析GSM610数据中的头部分,从头部分获取GSM610数据的 数据长度,计算GSM610数据的长度,将计算得到的长度与从头部分获取的数据长度进行对 比,若相同,则接收到的GSM610数据合法,否则非法。优选的,数据切割模块用于按照预设固定长度将接收到的GSM610数据切割为多 个数据包。 优选的,数据生成模块还用于根据多个PCM数据包生成数据包头,从PCM数据包中 获取数据包体,根据数据包头和数据包体生成PCM数据。此外,还有必要提供一种能将GSM610数据转换为PCM数据的方法。一种GSM610数据转换为PCM数据的方法,包括以下步骤将接收到的GSM610数据切割为多个数据包;将切割后的数据包转码为PCM数据包;将多个PCM数据包生成PCM数据。优选的,在将接收到的GSM610数据切割为多个数据包的步骤之前还包括判断接 收到的GSM610数据是否合法的步骤。优选的,判断接收到的GSM610数据是否合法的步骤为解析GSM610数据中的头部分,从头部分获取GSM610数据的数据长度;计算GSM610数据的长度;将计算得到的长度与从头部分获取的数据长度进行对比;
判断计算得到的长度与从头部分获取的数据长度是否相同,若是,则接收到的 GSM610数据合法,否则非法。优选的,将接收到的GSM610数据切割为多个数据包的步骤具体是按照预设固定 长度将接收到的GSM610数据切割为多个数据包。优选的,将多个PCM数据包生成PCM数据的步骤为根据多个PCM数据包生成数据包头,从PCM数据包中获取数据包体,根据数据包头 和数据包体生成PCM数据。上述GSM610数据转换为PCM数据的系统及方法,对接收到的GSM610数据进行切 割,得到多个数据包,将这些数据包转码为PCM数据包,然后将多个PCM数据包生成PCM数 据,能够实现将GSM610数据转换为PCM数据,转换为PCM数据后可为Android平台直接使用。

图1为一个实施例中GSM610数据转换为PCM数据的系统的框图;图2为另一个实施例中GSM610数据转换为PCM数据的系统的框图;图3为一个实施例中GSM610数据转换为PCM数据的方法的流程图;图4为另一个实施例中GSM610数据转换为PCM数据的方法的流程图;图5为图4中判断接收到的GSM610数据是否合法的方法流程图。
具体实施方式如图1所示,一种GSM610数据转换为PCM数据的系统,包括数据切割模块10、转码 模块20和数据生成模块30,其中数据切割模块10用于将接收到的GSM610数据切割为多 个数据包;转码模块20用于将切割后的数据包转码为PCM数据包;数据生成模块30用于将 多个所述PCM数据包生成PCM数据。如图2所示,在一个实施例中,GSM610数据转换为PCM数据的系统除了包括上述 数据切割模块10、转码模块20和数据生成模块30外,还包括判断模块40,用于判断接收到 的GSM610数据是否合法。在一个实施方式中,JAVA应用接收到GSM610数据,传给JNI接 口(JAVA Native hterface,JAVA本地编程接口)后,JNI接口交由判断模块40进行合法 性判断。判断模块40首先解析GSM610数据中的头部分,从头部分获取数据长度的标志位, 得到GSM610数据的数据长度,同时计算GSM610数据的长度,将计算得到的长度与从头部获 取的数据长度进行对比,若两者相同,则判断接收到的GSM610数据合法,否则为非法,不做 处理。该实施例中,数据切割模块10用于按照预设固定长度(例如320个字节)对 GSM610数据进行切割,切割后得到多个数据包。转码模块20用于采用RPL-LTP解压缩算法 将切割后的数据包转码为PCM数据包。数据生成模块30用于根据多个PCM数据包生成一 个数据包头,具体是按照PCM数据的标准结构来生成一个数据包头,数据包体则直接从转 码后的PCM数据包中直接获取,根据数据包头和数据包体即可生成PCM数据。应当说明的是,上述判断模块40、数据切割模块10、转码模块20和数据生成模块 30都是在基本框架层(即C层)来执行相应功能,相对于在JAVA层执行,能提高执行的效率。如图3所示,一种将GSM610数据转换为PCM数据的方法,包括以下步骤步骤S10,将接收的GSM610数据切割为多个数据包。步骤S20,将切割后的数据包转码为PCM数据包。步骤S30,将多个所述PCM数据包生成PCM数据。在一个实施例中,如图4所示,GSM610数据转码为PCM数据的方法的具体过程如 下步骤S100,判断GSM610数据是否合法,若是,则进入步骤S200,否则结束。在一个 实施方式中,JAVA应用接收到GSM610数据,传给JNI接口(JAVANative Interface, JAVA 本地编程接口 )后,要进行合法性判断。在一个实施例中,如图5所示,步骤SlOO的具体过 程为步骤S110,解析GSM610数据中的头部分,获取数据长度。GSM610数据的头部分记 录了 GSM610的数据长度,通过头部分中的标志位即可获取到数据长度。步骤S120,计算GSM610数据的长度。步骤S130,将计算得到的长度与从头部分获取的数据长度进行对比。步骤S140,判断两者是否相同,若是,则进入步骤S150,否则,进入步骤S160。具体 是判断计算得到的长度与从头部分中获取的数据长度是否相同。步骤S150,判断GSM610数据合法。判断GSM610数据合法之后,则可对GSM610数 据进行切割,进入步骤S200。步骤S160,判断GSM610数据非法。在判断GSM610数据非法后,结束流程,不做处理。步骤S200,将接收到的GSM610数据切割为多个数据包。该实施例中,按照预设固 定长度(例如320个字节)对GSM610数据进行切割。步骤S300,将切割后的数据包转码为PCM数据包。该实施例中,可采用RPL-LTP解 压缩算法将切割后的数据包转码为PCM数据包。步骤S400,将多个PCM数据包生成PCM数据。该实施例中,可先根据多个PCM数据 包生成一个数据包头,具体按照PCM数据的标准结构来生成数据包头,数据包体则直接从 转码后的PCM数据包中直接获取,根据数据包头和数据包体即可生成PCM数据。应当说明的是,上述GSM610数据转换为PCM数据的方法是由JAVA应用接收到 GSM610数据后,由JNI接口将数据转到基本框架层(即C层)来执行的,相对传统的在JAVA 层执行,能提高执行效率。上述GSM610数据转换为PCM数据的系统及方法,对接收到的GSM610数据进行切 割,得到多个数据包,将这些数据包转码为PCM数据包,然后将多个PCM数据包生成PCM数 据,能够实现将GSM610数据转换为PCM数据,转换为PCM数据后可为Android平台直接使用。以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并 不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员 来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保 护范围。因此,本发明专利的保护范围应以所附权利要求为准。
权利要求
1.一种GSM610数据转换为PCM数据的系统,其特征在于,包括数据切割模块,用于将接收到的GSM610数据切割为多个数据包;转码模块,用于将切割后的数据包转码为PCM数据包;数据生成模块,用于将多个所述PCM数据包生成PCM数据。
2.根据权利要求1所述的GSM610数据转换为PCM数据的系统,其特征在于,还包括用 于判断所述接收到的GSM610数据是否合法的判断模块。
3.根据权利要求2所述的GSM610数据转换为PCM数据的系统,其特征在于,所述判断 模块用于解析所述GSM610数据中的头部分,从所述头部分获取GSM610数据的数据长度,计 算所述GSM610数据的长度,将计算得到的长度与所述从头部分获取的数据长度进行对比, 若相同,则接收到的GSM610数据合法,否则非法。
4.根据权利要求1所述的GSM610数据转换为PCM数据的系统,其特征在于,所述数据 切割模块用于按照预设固定长度将接收到的GSM610数据切割为多个数据包。
5.根据权利要求1所述的GSM610数据转换为PCM数据的系统,其特征在于,所述数据 生成模块还用于根据所述多个PCM数据包生成数据包头,从所述PCM数据包中获取数据包 体,根据所述数据包头和数据包体生成PCM数据。
6.一种GSM610数据转换为PCM数据的方法,包括以下步骤将接收到的GSM610数据切割为多个数据包;将切割后的数据包转码为PCM数据包;将多个所述PCM数据包生成PCM数据。
7.根据权利要求6所述的GSM610数据转换为PCM数据的方法,其特征在于,在所述将 接收到的GSM610数据切割为多个数据包的步骤之前还包括判断接收到的GSM610数据是否 合法的步骤。
8.根据权利要求7所述的GSM610数据转换为PCM数据的方法,其特征在于,所述判断 接收到的GSM610数据是否合法的步骤为解析所述GSM610数据中的头部分,从所述头部分获取GSM610数据的数据长度;计算所述GSM610数据的长度;将计算得到的长度与所述从头部分获取的数据长度进行对比;判断计算得到的长度与所述从头部分获取的数据长度是否相同,若是,则接收到的 GSM610数据合法,否则非法。
9.根据权利要求6所述的GSM610数据转换为PCM数据的方法,其特征在于,所述将 接收到的GSM610数据切割为多个数据包的步骤具体是按照预设固定长度将接收到的 GSM610数据切割为多个数据包。
10.根据权利要求6所述的GSM610数据转换为PCM数据的方法,其特征在于,所述将多 个PCM数据包生成PCM数据的步骤为根据所述多个PCM数据包生成数据包头,从所述PCM数据包中获取数据包体,根据所述 数据包头和数据包体生成PCM数据。
全文摘要
本发明提供了一种GSM610数据转换为PCM数据的方法,所述方法包括将接收到的GSM610数据切割为多个数据包;将切割后的数据包转码为PCM数据包;将多个PCM数据包生成PCM数据。还提供了一种GSM610数据转换为PCM数据的系统。上述方法和系统能够实现将Android平台收到的GSM610数据转换为PCM数据,之后Android平台则可直接使用转换后得到的PCM数据。
文档编号H04W4/18GK102065396SQ20101051506
公开日2011年5月18日 申请日期2010年10月20日 优先权日2010年10月20日
发明者吴超 申请人:东莞宇龙通信科技有限公司, 宇龙计算机通信科技(深圳)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1