CN104243085A - 用于编码重组位数据的方法、装置和基站控制器 - Google Patents
用于编码重组位数据的方法、装置和基站控制器 Download PDFInfo
- Publication number
- CN104243085A CN104243085A CN201310229023.5A CN201310229023A CN104243085A CN 104243085 A CN104243085 A CN 104243085A CN 201310229023 A CN201310229023 A CN 201310229023A CN 104243085 A CN104243085 A CN 104243085A
- Authority
- CN
- China
- Prior art keywords
- bit data
- packet
- shifted
- predetermined quantity
- data
- 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.)
- Pending
Links
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供一种用于在运行软件的处理器中编码重组位数据的方案,包括:a从第一数据包中读取一组未被移位的、预定数量的位数据;b将所述预定数量的位数据中能够被一起移位的位数据作为一个整体,移位至第二数据包中,并将所述预定数量的位数据中不能够与其他位数据一起移位的位数据单独移位至所述第二数据包中;重复步骤a和b,直至所述第一数据包中的位数据已全部移位,以获得所述第二数据包。本发明的方案可以用于虚拟化平台,有利于通信设备向虚拟化平台的迁移。通过本发明的方案,能够在通用处理器中一次性读取多位位数据,并能够将多个连续的位数据一起移位,从而能够在通用处理器中实现位数据的快速编码重组,大大提高了位数据编码重组的速率。
Description
技术领域
本发明涉及数据通信领域,尤其涉及一种用于在运行软件的处理器中编码重组位数据的方法、装置和基站控制器。
背景技术
在无线通信***和其他多种***中,为了诸如获得更好的错误恢复能力等目的,数据帧通常会被分割和重定位,这样关键的数据位将在比较安全的地方而不太重要的部分在相同无线信道中的较不安全的地方。
就目前的无线通信***和其他多种***中而言,由于硬件的高处理速度,在其硬件平台中往往能够实现大规模数据量的上述数据帧的分割和重定位等处理。然而,随着虚拟化技术的广泛引用,***中的设备需要被迁移到虚拟化平台。但由于虚拟化平台主要运行软件,而软件的处理速度的限制,使得其无法实现大规模的高速的数据帧处理。
发明内容
本发明的目的是提供一种用于在运行软件的处理器中编码重组位数据的方法、装置以及基站控制器。
根据本发明的一个方面,提供一种用于在运行软件的处理器中编码重组位数据的方法,其中,该方法包括以下步骤:
a从第一数据包中读取一组未被移位的、预定数量的位数据;
b将所述预定数量的位数据中能够被一起移位的位数据作为一个整体,移位至第二数据包中,并将所述预定数量的位数据中不能够与其他位数据一起移位的位数据单独移位至所述第二数据包中;
c重复步骤a和b,直至所述第一数据包中的位数据已全部移位,以获得所述第二数据包。
根据本发明的另一个方面,还提供了一种用于在运行软件的处理器中编码重组位数据的编码重组装置,其中,该编码重组装置包括以下装置:
第一读取装置,用于从第一数据包中读取一组未被移位的、预定数量的位数据;
移位装置,用于将所述预定数量的位数据中能够被一起移位的位数据作为一个整体,移位至第二数据包中,并将所述预定数量的位数据中不能够与其他位数据一起移位的位数据单独移位至所述第二数据包中;
第一迭代装置,用于触发读取装置和移位装置重复执行操作,直至所述第一数据包中的位数据已全部移位,以获得所述第二数据包。
根据本发明的另一个方面,还提供了一种基站控制器,其中,所述基站控制器包括本发明提供的编码重组装置。
与现有技术相比,本发明具有以下优点:1)本发明的方案主要通过运行软件的处理器来实现,使得本发明的方案可以用于虚拟化平台,有利于通信设备向虚拟化平台的迁移。通过本发明的方案,能够在通用处理器中一次性读取多位位数据,并能够将多个连续的位数据一起移位,从而能够在通用处理器中实现位数据的快速编码重组,大大提高了位数据编码重组的速率;2)当一组位数据均为0时,能够进一步减少处理周期,加快处理速度。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1为本发明一个方面的用于在运行软件的处理器中编码重组位数据的方法流程示意图;
图2为本发明另一个方面的用于在运行软件的处理器中编码重组位数据的方法流程示意图;
图3为本发明一个方面的用于在运行软件的处理器中编码重组位数据的编码重组装置的结构示意图;
图4为本发明另一个方面的用于在运行软件的处理器中编码重组位数据的编码重组装置的结构示意图;
图5为基站控制器中用于编码重组位数据的模块及相关设备的结构示意图;
图6为本发明一个优选实施例的音频数据校验***。
附图中相同或相似的附图标记代表相同或相似的部件。
具体实施方式
首先,在此先介绍本发明中可能使用的术语:
第二代移动通信技术:2G(Second generation)
第三代合作伙伴计划:3GPP(3rd Generation Partnership Project)
自适应多速率:AMR(Adaptive multi rate)
基站控制器:BSC(Base station controller)
基站收发台:BTS(Base transceiver station)
复杂可编程逻辑器件:CPLD(Complex programmable logic device)
中央处理器:CPU(Central processing unit)
增强型全速率:EFR(Enhanced full rate)
现场可编程门阵列:FPGA(Field programmable gate array)
全速率:FR(Full rate)
通用处理器:GPP(General-purpose processor)
半速率:HR(Half rate)
网路协议:IP(Internet Protocol)
平均意见得分:MOS(Mean Opinion Score)
实时传送协议:RTP(Real Time Transport Protocol)
代码转换器和速率适配单元:TRAU(Transcoder and RateAdaptation Unit)
基于IP的代码转换器和速率适配单元:TRAUP(Transcoder andRate Adaptation Unit over IP)
无线云元素:WCE(Wireless Cloud Element)
媒体网关:MGW(Media Gateway)
接着,下面将结合附图对本发明作进一步详细描述。
图1为本发明一个方面的用于在运行软件的处理器中编码重组位数据的方法流程示意图。本实施例的方法主要通过运行软件的处理器来实现;其中,所述运行软件的处理器包括任何能够运行软件的通用处理器,例如CPU等。根据本实施例的方法包括步骤1、步骤2和步骤3。
在步骤1中,处理器从第一数据包中读取一组未被移位的、预定数量的位数据。优选地,所述第一数据包为负载数据包,如RTP负载数据包或TRAUP负载数据包等。其中,所述位数据为一个bit的数据。
优选地,所述预定数量为所述处理器的最大位宽。例如,32位处理器的最大位宽为32bit,则该预定数量为32个;又例如,64位处理器的最大位宽为64bit,则该预定数量为64个等。
其中,第一数据包的分组方式可被预先确定,例如,预先确定数据包的分组方式为M×N,其中,M表示分组数量,N表示每组包含的位数据数量。需要说明的是,该分组主要用于标识需要获取的位数据在数据包中的范围,处理器实际并不需要执行将数据包划分成多个分组的位数据的操作。
具体地,处理器从第一数据包中读取一组未被移位的、预定数量的位数据的方式包括但不限于:
1)处理器按照预定顺序从第一数据包中读取一组未被移位的、预定数量的位数据。
例如,处理器的最大位宽为32,下表1示出了作为第一数据包的、AMR在12.2kb/s全速率下的一个TRAUP负载数据包;其中,S1至S244依序排列。
表1
并且,预定第一数据包中的位数据分为8组,第1组为第0至第3行,第2组为第4至第7行,第3组为第8至第11行,第4组为第12至第15行,第5组为第16至第19行,第6组为第20至第23行,第7组为第24至第27行,第8组为第28至第31行,其中每组中包含32个位数据;并且,预定各组数据包的读取顺序为第1组至第8组的顺序读取。则若当前未读取任何一组位数据,则处理器按照预定顺序读取第1组位数据;若上一组被读取的位数据为第m组,则处理器读取第m+1组位数据;直至完成所有分组的位数据的读取。
2)处理器随机从第一数据包中读取一组未被移位的、预定数量的位数据。
例如,将表1中给出的AMR在12.2kb/s全速率下的TRAUP负载作为本发明中所述的第一数据包,处理器的最大位宽为32;并且,预定第一数据包中的位数据分为8组,第1组为第0至第3行,第2组为第4至第7行,第3组为第8至第11行,第4组为第12至第15行,第5组为第16至第19行,第6组为第20至第23行,第7组为第24至第27行,第8组为第28至第31行,其中每组中包含32个位数据;未被移位的位数据分组包括第1组、第4组和第6组,处理器随机从其中选择第4组,并将第4组从未被移位的位数据分组中删除。
需要说明的是,上述举例仅为更好地说明本发明的技术方案,而非对本发明的限制,本领域技术人员应该理解,任何从第一数据包中读取一组未被移位的、预定数量的位数据的实现方式,均应包含在本发明的范围内。
接着,在步骤2中,处理器将所述预定数量的位数据中能够被一起移位的位数据作为一个整体,移位至第二数据包中,并将所述预定数量的位数据中不能够与其他位数据一起移位的位数据单独移位至所述第二数据包中。
优选地,所述第二数据包可采用与第一数据包相同或相似的方式进行分组。且类似地,第二数据包的分组主要用于标识需要写入的位数据在数据包中的范围,处理器实际并不需要执行将数据包划分成多个分组的位数据的操作。
优选地,所述第二数据包为负载数据包,如RTP负载数据包或TRAUP负载数据包等。其中,所述第二数据包与所述第一数据包中的数据内容相同但包含相同数据内容的位数据所在的位序可能不同。例如,用于传送BTS和BSC之间的语音的TRAUP负载与用于传送BSC与MGW之间的语音媒体的RTP负载,两者包含相同的数据内容,但包含相同数据内容的位数据所在的位序可能不同。表2示出了作为第二数据包的、AMR在12.2kb/s全速率下的一个RTR负载数据包,请参见表1和表2,两者中相同的编号的位数据表示包含相同的数据内容的位数据,如表1中的S1和表2中的S1包含相同的数据内容;但两者中包含相同数据内容的位数据所在的位序可能不同,如S24在表1和表2中所在的位序不同等。
表2
需要说明的是,一个数据包既可能作为第一数据包,也可能作为第二数据包。例如,当进行TRAUP负载向PTP负载的编码重组时,表1对应的TRAUP负载相当于本发明中所述的第一数据包,表2对应的PTP负载相当于本发明中所述的第二数据包,当进行PTP负载向TRAUP负载的编码重组时,表2对应的PTP负载相当于本发明中所述的第一数据包,表1对应的TRAUP负载相当于本发明中所述的第二数据包。
其中,处理器可采用多种方式,将所述预定数量的位数据中能够被一起移位的位数据作为一个整体,移位至第二数据包中,并将所述预定数量的位数据中不能够与其他位数据一起移位的位数据单独移位至所述第二数据包中。
例如,将表1中给出的AMR在12.2kb/s全速率下的TRAUP负载作为本发明中所述的第一数据包,将表2中给出的AMR在12.2kb/s全速率下的PTP负载作为本发明中所述的第二数据包,且处理器的最大位宽为32bit。在步骤1中,处理器从表1所示的第一数据包中读取了第0至第3行的一组32个位数据,其中,该组位数据中的S1至S15可以通过直接向右移4位转换到表2所示的RTP格式的负载中S1至S15所在的位置,该组位数据中的S16至S23可以通过直接向右移5位转换到表2所示的RTP格式的负载中S16至S23所在的位置,该组位数据中的S25至S26可以通过直接向右移4位转换到表2所示的RTP格式的负载中S25至S26所在的位置,则处理器将S1至S15作为一个整体右移4位至第二数据包中,将S16至S23作为一个整体右移5位至第二数据包中,将S25和S26作为一个整体右移4位至第二数据包中,而对于该组数据包中的S24,不存在能够与其一起移位的位数据,则处理器将S24单独左移4位至第二数据包中。
需要说明的是,上述举例仅为更好地说明本发明的技术方案,而非对本发明的限制,本领域技术人员应该理解,任何将所述预定数量的位数据中能够被一起移位的位数据作为一个整体,移位至第二数据包中,并将所述预定数量的位数据中不能够与其他位数据一起移位的位数据单独移位至所述第二数据包中的实现方式,均应包含在本发明的范围内。
优选地,步骤2进一步的包括步骤21、步骤22和步骤23。
在步骤21中,处理器读取与在步骤1中读取的预定数量的位数据对应的、在其移位的过程中未被使用过的一个移位信息。
其中,所述移位信息能够用于位数据的移位操作,所述移位信息的描述方式可包括数组或链表等。例如,以数组方式描述的移位信息可具有如下结构:数组的第一个数据点表示待移位的位数据的源地址,如在第一数据包中的地址;数组的第二个数据点表示待移位的位数据的目的地址,如在第二数据包中的地址;数组的第三个数据点表示用于获取待移位的位数据的掩码;数组的第四个数据点表示待移位的位数据的移位方向及移位位数;数组的第五个数据点表示待移位的位数据的位数;数组的第六个数据点表示当待移位的位数据为一位时,该待移位的位数据的数据内容;其中,当待移位的位数据为多位时,第六个数据点可不包含有效数据。
更优选地,所述移位信息表现为可执行代码。例如,对于一个移位信息,当其表现为数组形式时,为“0,0,0x03FFF800,4,15,0”;当其表现为可执行代码形式时,为pOutput[0]|=(pInput[0]&0x03FFF800)>>4。
需要说明的是,上述举例仅为更好地说明本发明的技术方案,而非对本发明的限制,本领域技术人员应该理解,任何描述移位信息的实现方式,均应包含在本发明的范围内。
具体地,可采用多种方式生成所述移位信息,例如:
1)由人工建立移位信息。
例如,将表1中给出的AMR在12.2kb/s全速率下的TRAUP负载作为本发明中所述的第一数据包,将表2中给出的AMR在12.2kb/s全速率下的PTP负载作为本发明中所述的第二数据包,人工分析第一数据包与第二数据包中的位数据,得到两个数据包之间进行编码重组所需要的移位信息,并将所述移位信息人工写入软件代码中以等待处理器的处理。
2)由设备通过分析第一数据包与第二数据包中的位数据的位置变化,来生成移位信息。其中,该设备可为本发明的处理器或其他设备。
例如,由设备来分析第一数据包与第二数据包中的位数据的位置变化,从而得到两个数据包之间进行编码重组所需要的移位信息并进行存储,从而使得处理器进行编码重组的过程中可通过软件代码获取其需要的移位信息。例如,作为移位信息的数组或可执行代码的格式已预定,但其中包括多个缺省项,设备通过分析第一数据包与第二数据包中的位数据的位置变化,确定该多个缺省项的值,从而生成移位信息等。
需要说明的是,上述举例仅为更好地说明本发明的技术方案,而非对本发明的限制,本领域技术人员应该理解,任何生成所述移位信息的实现方式,均应包含在本发明的范围内。
在步骤22中,处理器基于所述移位信息,获得该组预定数量的位数据中能够被一起移位的多个位数据或只能被单独移位的一个位数据,并将该多个或一个位数据移位至所述第二数据包中。
具体地,处理器可直接基于移位信息,从该组预定数量的位数据中读取能够被遗弃移位的一个或多个位数据并以为止第二数据包中。
例如,第一数据包如表1所示,移位信息为可执行代码pOutput[0]|=(pInput[0]&0x03FFF800)>>4,则处理器直接运行该可执行代码,通过掩码0x03FFF800从第一数据包的第1组(分组编号为0)中获得能够被一起移位的位数据S1至815,并将位数据S1至S14向左移位4位,写入第二数据包的第1组分组(分组编号为0)中。
需要说明的是,上述举例仅为更好地说明本发明的技术方案,而非对本发明的限制,本领域技术人员应该理解,任何基于所述移位信息,获得该组预定数量的位数据中能够被一起移位的多个位数据或只能被单独移位的一个位数据,并将该多个或一个位数据移位至所述第二数据包中的实现方式,均应包含在本发明的范围内。
在步骤3中,处理器重复执行步骤1和步骤2,直至所述第一数据包中的位数据已全部处理,以获得所述第二数据包。
例如,将表1中给出的AMR在12.2kb/s全速率下的TRAUP负载作为本发明中所述的第一数据包,将表2中给出的AMR在12.2kb/s全速率下的PTP负载作为本发明中所述的第二数据包,处理器重复执行步骤1和步骤2,直至表1中所示的TRAUP负载已全部进行移位处理,并编码重组为表2中所示的PTP负载。
具体地,处理器可判断第一数据包中的位数据是否已全部处理,并当判断第一数据包中的位数据未全部处理时,执行步骤1,当判断第一数据包中的位数据已全部处理时,结束操作。
需要说明的是,上述举例仅为更好地说明本发明的技术方案,而非对本发明的限制,本领域技术人员应该理解,任何重复执行步骤1和步骤2,直至所述第一数据包中的位数据已全部移位,以获得所述第二数据包的实现方式,均应包含在本发明的范围内。
需要说明的是,任何需要在所述第二数据包与所述第一数据包中的数据内容相同但包含相同数据内容的位数据的位序不同的情况下进行编码重组的方案都适用于本发明。
作为一种优选方案,步骤22进一步包括步骤221和步骤222。本优选方案中,对于用于指示一个位数据的移位的移位信息,其包含该一个位数据的数据内容。
在步骤221中,当基于所述移位信息,确定被移位的位数据为多个时,从该组预定数量的位数据中获取该能够被一起移位的多个位数据并移位至第二数据包中。
例如,移位信息为数组,处理器在步骤1中读取到表1所示第0至第3行的一组32个位数据,接着处理器在步骤21中获得一个描述该组位数据的移位信息的数组,如下:
U32mapping_array_32bit[]={0,0,0x03FFF800,4,15,0},
该数组的第五个数据点为15,即需要被移位的位数据为15个,则处理器根据数组第三数据点中的掩码0x03FFF800以及数据第一数据点中的源地址0,获得15bit的位数据,即表1中所示第0至第3行中的S1至S15,并基于数组的第四数据点为4以及第2个数据点为0,将该15位的位数据右移四位,写入第二数据包的地址0中。
需要说明的是,上述举例仅为更好地说明本发明的技术方案,而非对本发明的限制,本领域技术人员应该理解,任何当基于所述移位信息,确定被移位的位数据为多个时,从该组预定数量的位数据中获取该能够被一起移位的多个位数据并移位至第二数据包中的实现方式,均应包含在本发明的范围内。
在步骤222中,当基于所述移位信息,确定被移位的位数据为一个时,处理器将移位信息中包含的该一个位数据移位至所述第二数据包。
例如,移位信息为数组,处理器在步骤1中读取到表1所示第4至第7行的一组32个位数据,接着处理器在步骤21中获得一个描述该组位数据的移位信息的数组,如下:
U32mapping_array_32bit[]={1,1,0x00000004,36,1,0x00000040},
则处理器基于该数组的第五个数据点为1(即需要被移位的位数据为1个),直接获取数组的第六个数据点中的数据内容0x00000040,并直接将0x00000040写入数组的第二个数据点所表示的第二数据包中的地址1中。
需要说明的是,上述举例仅为更好地说明本发明的技术方案,而非对本发明的限制,本领域技术人员应该理解,任何当基于所述移位信息,确定被移位的位数据为一个时,将该一个位数据移位至第二数据包中的实现方式,均应包含在本发明的范围内。
需要说明的是,由于一个位数据只可能为0或1,因此,当一组位数据中需要被移位的位数据仅为1个,即相当于仅存在1个1时,被写入第二数据包中的位数据必定为1(或在仅对0进行移位的情况下,则必定为0)。因此,在此情况下,可直接将1写入第二数据包中,从而减少了对第一数据包中的位数据的移位操作,进一步减少了时间消耗。
在步骤23中,处理器重复所述步骤21和步骤22,直至该组预定数量的位数据已全部移位。例如,对于处理器在步骤1中读取到的表1所示第0至第3行的一组32个位数据,处理器重复所述步骤21和步骤22,直至该组32个位数据已全部移位。
需要说明的是,上述举例仅为更好地说明本发明的技术方案,而非对本发明的限制,本领域技术人员应该理解,任何重复所述步骤21和步骤22,直至该组预定数量的位数据已全部移位的实现方式,均应包含在本发明的范围内。
由于虚拟化技术越来越受欢迎,如可行,多种设备(如电信设备)将被迁移到虚拟化平台。虚拟化技术提供了许多好处,也带来了重大的挑战。例如,用于某些数据包(如音频负载数据包)转换的特殊硬件可能会不再被使用。然而,对于以硬件方式实现的处理器,如FPGA/CPLD等,其能够同时进行多位数据处理,因此,能够满足较大规模下的高速数据处理需求。但对于通过运行软件来进行处理的处理器(多为虚拟化技术中使用的处理器),如CPU等,受软件处理的限制,现有技术中的位数据的编码重组,必须通过逐一对各个位数据分别进行判断和移位处理来实现,例如,先对第一个位数据进行判断和移位处理(如需要移位),接着,再对第二个位数据进行判断和移位处理,如此类推,直至所有的位数据均被处理。很明显地,这种处理方式会消耗巨大的CPU周期。例如,WCE BSC需要处理每秒约1000000包,这意味着每个BSC需要执行负载转换大约每秒1000000包,因此即便是在载荷转换的一个单一周期的适度的性能减弱也会导致显著的性能下降。
通过本发明的方案,能够在编码重组的过程中将多位位数据作为一个整体进行移位处理,使得位数据的编码重组过程得以简化,从而提高位数据编码重组的性能。表3示出了以表1中的数据编码重组为表2中的数据时,现有技术与本发明方案在CPU周期上的比较结果。
表3
由表3可见,现有技术中,对于每一个位数据的处理,至少需要一个读周期、一个移位周期以及一个写周期才能实现,则对于一个数据包总体而言,其会消耗大量的处理周期。而本发明的方案,将多位位数据作为一个整体进行移位处理,可以在一个周期中处理多位位数据,能够减少位数据编码重组所需要的处理周期,从而实现位数据的快速编码重组,若假设数据包中一半的位数据为1(由于一个位数据只能为0或1),从表3可看出本发明的方案相比现有技术性能提高约35%。
表4示出了直接在实验中收集的性能数据。该实验中,针对本发明的方案,当CPU位宽为32位时,采用五个专门的CPU核与c7000刀片用于数据包转换,总包转换能力(24300*5=121500),能满足1000000包/秒(相当于12000Erlangs)的要求,由表4中可看出本发明的方案比现有技术性能提高约35%。而当使用256位宽的CPU时,可提高约60%的性能。本发明的方案可用于许多音频编解码器(包括FR,EFR,HR和所有的AMR)TRAUP和RTP之间负载的转换。
表4
综上而言,本发明的方案主要通过运行软件的处理器来实现,使得本发明的方案可以用于虚拟化平台,有利于通信设备向虚拟化平台的迁移。通过本发明的方案,能够在通用处理器中一次性读取多位位数据,并能够将多个连续的位数据一起移位,从而能够在通用处理器中实现位数据的快速编码重组,大大提高了位数据编码重组的速率。
图2为本发明另一个方面的用于在运行软件的处理器中编码重组位数据的方法流程示意图。根据本实施例的方法包括步骤1、步骤2、步骤3、和步骤4;其中,步骤3进一步包括步骤S3’。
其中,步骤1、和步骤2已在参照图1所示实施例中予以详述,并以引用的方式包含于此,不再赘述。
以下详细说明本实施例的方法的步骤4和步骤S3’。
处理器在执行步骤1之后,执行步骤4。在步骤4中,处理器判断所述预定数量的位数据是否均为零,并当判断所述预定数量的位数据均为零时,执行所述步骤1,当判断所述预定数量的位数据不均为零时,执行所述步骤2。
例如,处理器在步骤1中读取到表1所示第0至第3行的一组32个位数据,然后处理器通过将该32位数据与0xFFFFFFFF进行与运算来判断该组32个位数据是否均为0,当运算结果为0x00000000时,即说明该32位数据均为0,当运算结果非0x00000000时,即说明该32位数据不均为0。
需要说明的是,上述举例仅为更好地说明本发明的技术方案,而非对本发明的限制,本领域技术人员应该理解,任何判断所述预定数量的位数据是否均为零的实现方式,均应包含在本发明的范围内。
在执行步骤2后,处理器执行步骤3’,重复所述步骤1、步骤2和步骤4,直至第一数据包中的位数据已全部处理,以获得第二数据包。
具体地,处理器判断第一数据包中的位数据是否已全部处理,并当判断第一数据包中的位数据未全部处理时,执行步骤1,当判断第一数据包中的位数据已全部处理时,结束操作。
本方案中,当一组位数据均为0时,能够进一步减少处理周期,加快处理速度。
图3为本发明一个方面的用于在运行软件的处理器中编码重组位数据的编码重组装置的结构示意图。本发明的编码重组装置包括第一读取装置1、移位装置2以及第一迭代装置3。
第一读取装置1从第一数据包中读取一组未被移位的、预定数量的位数据。优选地,所述第一数据包为负载数据包,如RTP负载数据包或TRAUP负载数据包等。其中,所述位数据为一个bit的数据。
优选地,所述预定数量为所述处理器的最大位宽。例如,32位处理器的最大位宽为32bit,则该预定数量为32个;又例如,64位处理器的最大位宽为64bit,则该预定数量为64个等。
其中,第一数据包的分组方式可被预先确定,例如,预先确定数据包的分组方式为M×N,其中,M表示分组数量,N表示每组包含的位数据数量。需要说明的是,该分组主要用于标识需要获取的位数据在数据包中的范围,处理器实际并不需要执行将数据包划分成多个分组的位数据的操作。
具体地,第一读取装置1从第一数据包中读取一组未被移位的、预定数量的位数据的方式包括但不限于:
1)第一读取装置1按照预定顺序从第一数据包中读取一组未被移位的、预定数量的位数据。
例如,处理器的最大位宽为32,第一数据包如表1所示,并且,预定第一数据包中的位数据分为8组,第1组为第0至第3行,第2组为第4至第7行,第3组为第8至第11行,第4组为第12至第15行,第5组为第16至第19行,第6组为第20至第23行,第7组为第24至第27行,第8组为第28至第31行,其中每组中包含32个位数据;并且,预定各组数据包的读取顺序为第1组至第8组的顺序读取。则若当前未读取任何一组位数据,则第一读取装置1按照预定顺序读取第1组位数据;若上一组被读取的位数据为第m组,则第一读取装置1读取第m+1组位数据;直至完成所有分组的位数据的读取。
2)第一读取装置1随机从第一数据包中读取一组未被移位的、预定数量的位数据。
例如,将表1中给出的AMR在12.2kb/s全速率下的TRAUP负载作为本发明中所述的第一数据包,处理器的最大位宽为32;并且,预定第一数据包中的位数据分为8组,第1组为第0至第3行,第2组为第4至第7行,第3组为第8至第11行,第4组为第12至第15行,第5组为第16至第19行,第6组为第20至第23行,第7组为第24至第27行,第8组为第28至第31行,其中每组中包含32个位数据;未被移位的位数据分组包括第1组、第4组和第6组,第一读取装置1随机从其中选择第4组,并将第4组从未被移位的位数据分组中删除。
需要说明的是,上述举例仅为更好地说明本发明的技术方案,而非对本发明的限制,本领域技术人员应该理解,任何从第一数据包中读取一组未被移位的、预定数量的位数据的实现方式,均应包含在本发明的范围内。
接着,移位装置2将所述预定数量的位数据中能够被一起移位的位数据作为一个整体,移位至第二数据包中,并将所述预定数量的位数据中不能够与其他位数据一起移位的位数据单独移位至所述第二数据包中。
优选地,所述第二数据包可采用与第一数据包相同或相似的方式进行分组。且类似地,第二数据包的分组主要用于标识需要写入的位数据在数据包中的范围,处理器实际并不需要执行将数据包划分成多个分组的位数据的操作。
优选地,所述第二数据包为负载数据包,如RTP负载数据包或TRAUP负载数据包等。其中,所述第二数据包与所述第一数据包中的数据内容相同但包含相同数据内容的位数据所在的位序可能不同。例如,用于传送BTS和BSC之间的语音的TRAUP负载与用于传送BSC与MGW之间的语音媒体的RTP负载,两者包含相同的数据内容,但包含相同数据内容的位数据所在的位序可能不同。表2示出了作为第二数据包的、AMR在12.2kb/s全速率下的一个RTR负载数据包,请参见表1和表2,两者中相同的编号的位数据表示包含相同的数据内容的位数据,如表1中的S1和表2中的S1包含相同的数据内容;但两者中包含相同数据内容的位数据所在的位序可能不同,如S24在表1和表2中所在的位序不同等。
需要说明的是,一个数据包既可能作为第一数据包,也可能作为第二数据包。例如,当进行TRAUP负载向PTP负载的编码重组时,表1对应的TRAUP负载相当于本发明中所述的第一数据包,表2对应的PTP负载相当于本发明中所述的第二数据包,当进行PTP负载向TRAUP负载的编码重组时,表2对应的PTP负载相当于本发明中所述的第一数据包,表1对应的TRAUP负载相当于本发明中所述的第二数据包。
其中,移位装置2可采用多种方式,将所述预定数量的位数据中能够被一起移位的位数据作为一个整体,移位至第二数据包中,并将所述预定数量的位数据中不能够与其他位数据一起移位的位数据单独移位至所述第二数据包中。
例如,将表1中给出的AMR在12.2kb/s全速率下的TRAUP负载作为本发明中所述的第一数据包,将表2中给出的AMR在12.2kb/s全速率下的PTP负载作为本发明中所述的第二数据包,且处理器的最大位宽为32bit。第一读取装置1从表1所示的第一数据包中读取了第0至第3行的一组32个位数据,其中,该组位数据中的S1至S15可以通过直接向右移4位转换到表2所示的RTP格式的负载中S1至S15所在的位置,该组位数据中的S16至S23可以通过直接向右移5位转换到表2所示的RTP格式的负载中S16至S23所在的位置,该组位数据中的S25至S26可以通过直接向右移4位转换到表2所示的RTP格式的负载中S25至S26所在的位置,则移位装置2将S1至S15作为一个整体右移4位至第二数据包中,将S16至S23作为一个整体右移5位至第二数据包中,将S25和S26作为一个整体右移4位至第二数据包中,而对于该组数据包中的S24,不存在能够与其一起移位的位数据,则移位装置2将S24单独左移4位至第二数据包中。
需要说明的是,上述举例仅为更好地说明本发明的技术方案,而非对本发明的限制,本领域技术人员应该理解,任何将所述预定数量的位数据中能够被一起移位的位数据作为一个整体,移位至第二数据包中,并将所述预定数量的位数据中不能够与其他位数据一起移位的位数据单独移位至所述第二数据包中的实现方式,均应包含在本发明的范围内。
优选地,移位装置2进一步的包括第二读取装置(图未示)、子移位装置(图未示)以及第二迭代装置(图未示)。
第二读取装置读取与第一读取装置1读取的预定数量的位数据对应的、在其移位的过程中未被使用过的一个移位信息。
其中,所述移位信息包括位数据编码重组所需要的移位信息,所述移位信息的描述方式可包括数组或链表等。例如,以数组方式描述的移位信息可具有如下结构:数组的第一个数据点表示待移位的位数据的源地址,如在第一数据包中的地址;数组的第二个数据点表示待移位的位数据的目的地址,如在第二数据包中的地址;数组的第三个数据点表示用于获取待移位的位数据的掩码;数组的第四个数据点表示待移位的位数据的移位方向及移位位数;数组的第五个数据点表示待移位的位数据的位数;数组的第六个数据点表示当待移位的位数据为一位时,该待移位的位数据的数据内容;其中,当待移位的位数据为多位时,第六个数据点可不包含有效数据。
更优选地,所述移位信息表现为可执行代码。例如,对于一个移位信息,当其表现为数组形式时,为“0,0,0x03FFF800,4,15,0”;当其表现为可执行代码形式时,为pOutput[0]|=(pInput[0]&0x03FFF800)>>4。
需要说明的是,上述举例仅为更好地说明本发明的技术方案,而非对本发明的限制,本领域技术人员应该理解,任何描述移位信息的实现方式,均应包含在本发明的范围内。
具体地,可采用多种方式生成所述移位信息,例如:
1)由人工建立移位信息。
例如,将表1中给出的AMR在12.2kb/s全速率下的TRAUP负载作为本发明中所述的第一数据包,将表2中给出的AMR在12.2kb/s全速率下的PTP负载作为本发明中所述的第二数据包,人工分析第一数据包与第二数据包中的位数据,得到两个数据包之间进行编码重组所需要的移位信息,并将所述移位信息人工写入软件代码中以等待处理器的处理。
2)由设备通过分析第一数据包与第二数据包中的位数据的位置变化,来生成移位信息。其中,该设备可为本发明的处理器或其他设备。
例如,由设备来分析第一数据包与第二数据包中的位数据的位置变化,从而得到两个数据包之间进行编码重组所需要的移位信息并进行存储,从而使得处理器进行编码重组的过程中可通过软件代码获取其需要的移位信息。例如,作为移位信息的数组或可执行代码的格式已预定,但其中包括多个缺省项,设备通过分析第一数据包与第二数据包中的位数据的位置变化,确定该多个缺省项的值,从而生成移位信息等。
需要说明的是,上述举例仅为更好地说明本发明的技术方案,而非对本发明的限制,本领域技术人员应该理解,任何生成所述移位信息的实现方式,均应包含在本发明的范围内。
子移位装置基于所述移位信息,获得该组预定数量的位数据中能够被一起移位的多个位数据或只能被单独移位的一个位数据,并将该多个或一个位数据移位至所述第二数据包中。
具体地,子移位装置可直接基于移位信息,从该组预定数量的位数据中读取能够被遗弃移位的一个或多个位数据并以为止第二数据包中。
例如,第一数据包如表1所示,移位信息为可执行代码pOutput[0]|=(pInput[0]&0x03FFF800)>>4,则子移位装置直接运行该可执行代码,通过掩码0x03FFF800从第一数据包的第1组(分组编号为0)中获得能够被一起移位的位数据S1至S15,并将位数据S1至S14向左移位4位,写入第二数据包的第1组分组(分组编号为0)中。
需要说明的是,上述举例仅为更好地说明本发明的技术方案,而非对本发明的限制,本领域技术人员应该理解,任何基于所述移位信息,获得该组预定数量的位数据中能够被一起移位的多个位数据或只能被单独移位的一个位数据,并将该多个或一个位数据移位至所述第二数据包中的实现方式,均应包含在本发明的范围内。
第二迭代装置触发第二读取装置和子移位装置重复执行操作,直至所述第一数据包中的位数据已全部处理,以获得所述第二数据包。
例如,将表1中给出的AMR在12.2kb/s全速率下的TRAUP负载作为本发明中所述的第一数据包,将表2中给出的AMR在12.2kb/s全速率下的PTP负载作为本发明中所述的第二数据包,第二迭代装置触发第二读取装置和子移位装置重复执行操作,直至表1中所示的TRAUP负载已全部进行移位处理,并编码重组为表2中所示的PTP负载。
具体地,第二迭代装置可判断第一数据包中的位数据是否已全部处理,并当判断第一数据包中的位数据未全部处理时,触发第一读取装置1执行操作,从而触发移位装置2执行操作,当判断第一数据包中的位数据已全部处理时,结束操作。
需要说明的是,上述举例仅为更好地说明本发明的技术方案,而非对本发明的限制,本领域技术人员应该理解,任何触发第二读取装置和子移位装置重复执行操作,直至所述第一数据包中的位数据已全部移位,以获得所述第二数据包的实现方式,均应包含在本发明的范围内。
需要说明的是,任何需要在所述第二数据包与所述第一数据包中的数据内容相同但包含相同数据内容的位数据的位序不同的情况下进行编码重组的方案都适用于本发明。
作为一种优选方案,子移位装置进一步包括第一子移位装置(图未示)和第二子移位装置(图未示)。本优选方案中,对于用于指示一个位数据的移位的移位信息,其包含该一个位数据的数据内容。
当基于所述移位信息,确定被移位的位数据为多个时,第一子移位装置从该组预定数量的位数据中获取该能够被一起移位的多个位数据并移位至第二数据包中。
例如,移位信息为数组第一读取装置1读取到表1所示第0至第3行的一组32个位数据,接着第二读取装置获得一个描述该组位数据的移位信息的数组,如下:
U32mapping_array_32bit[]={0,0,0x03FFF800,4,15,0},
该数组的第五个数据点为15,即需要被移位的位数据为15个,则第一子移位装置根据数组第三数据点中的掩码0x03FFF800以及数据第一数据点中的源地址0,获得15bit的位数据,即表1中所示第0至第3行中的S1至S15,并基于数组的第四数据点为4以及第2个数据点为0,将该15位的位数据右移四位,写入第二数据包的地址0中。
需要说明的是,上述举例仅为更好地说明本发明的技术方案,而非对本发明的限制,本领域技术人员应该理解,任何当基于所述移位信息,确定被移位的位数据为多个时,从该组预定数量的位数据中获取该能够被一起移位的多个位数据并移位至第二数据包中的实现方式,均应包含在本发明的范围内。
当基于所述移位信息,确定被移位的位数据为一个时,第二子移位装置将移位信息中包含的该一个位数据移位至所述第二数据包。
例如,移位信息为数组,第一读取装置1读取到表1所示第4至第7行的一组32个位数据,接着第二读取装置获得一个描述该组位数据的移位信息的数组,如下:
U32mapping_array_32bit[]={1,1,0x00000004,36,1,0x00000040},
则第二子移位装置基于该数组的第五个数据点为1(即需要被移位的位数据为1个),直接获取数组的第六个数据点中的数据内容0x00000040,并直接将0x00000040写入数组的第二个数据点所表示的第二数据包中的地址1中。
需要说明的是,上述举例仅为更好地说明本发明的技术方案,而非对本发明的限制,本领域技术人员应该理解,任何当基于所述移位信息,确定被移位的位数据为一个时,将该一个位数据移位至第二数据包中的实现方式,均应包含在本发明的范围内。
需要说明的是,由于一个位数据只可能为0或1,因此,当一组位数据中需要被移位的位数据仅为1个,即相当于仅存在1个1时,被写入第二数据包中的位数据必定为1(或在仅对0进行移位的情况下,则必定为0)。因此,在此情况下,可直接将1写入第二数据包中,从而减少了对第一数据包中的位数据的移位操作,进一步减少了时间消耗。
第二迭代装置触发第二读取装置和子移位装置重复执行操作,直至该组预定数量的位数据已全部移位。例如,对于第一读取装置1读取到的表1所示第0至第3行的一组32个位数据,第二迭代装置触发第二读取装置和子移位装置重复执行操作,直至该组32个位数据已全部移位。
需要说明的是,上述举例仅为更好地说明本发明的技术方案,而非对本发明的限制,本领域技术人员应该理解,任何触发第二读取装置和子移位装置重复执行操作,直至该组预定数量的位数据已全部移位的实现方式,均应包含在本发明的范围内。
由于虚拟化技术越来越受欢迎,如可行,多种设备(如电信设备)将被迁移到虚拟化平台。虚拟化技术提供了许多好处,也带来了重大的挑战。例如,用于某些数据包(如音频负载数据包)转换的特殊硬件可能会不再被使用。然而,对于以硬件方式实现的处理器,如FPGA/CPLD等,其能够同时进行多位数据处理,因此,能够满足较大规模下的高速数据处理需求。但对于通过运行软件来进行处理的处理器(多为虚拟化技术中使用的处理器),如CPU等,受软件处理的限制,现有技术中的位数据的编码重组,必须通过逐一对各个位数据分别进行判断和移位处理来实现,例如,先对第一个位数据进行判断和移位处理(如需要移位),接着,再对第二个位数据进行判断和移位处理,如此类推,直至所有的位数据均被处理。很明显地,这种处理方式会消耗巨大的CPU周期。例如,WCE BSC需要处理每秒约1000000包,这意味着每个BSC需要执行负载转换大约每秒1000000包,因此即便是在载荷转换的一个单一周期的适度的性能减弱也会导致显著的性能下降。
通过本发明的方案,能够在编码重组的过程中将多位位数据作为一个整体进行移位处理,使得位数据的编码重组过程得以简化,从而提高位数据编码重组的性能。由表3可见,现有技术中,对于每一个位数据的处理,至少需要一个读周期、一个移位周期以及一个写周期才能实现,则对于一个数据包总体而言,其会消耗大量的处理周期。而本发明的方案,将多位位数据作为一个整体进行移位处理,可以在一个周期中处理多位位数据,能够减少位数据编码重组所需要的处理周期,从而实现位数据的快速编码重组,若假设数据包中一半的位数据为1(由于一个位数据只能为0或1),从表3可看出本发明的方案相比现有技术性能提高约35%。
表4示出了直接在实验中收集的性能数据。该实验中,针对本发明的方案,当CPU位宽为32位时,采用五个专门的CPU核与c7000刀片用于数据包转换,总包转换能力(24300*5=121500),能满足1000000包/秒(相当于12000Erlangs)的要求,由表4中可看出本发明的方案比现有技术性能提高约35%。而当使用256位宽的CPU时,可提高约60%的性能。本发明的方案可用于许多音频编解码器(包括FR,EFR,HR和所有的AMR)TRAUP和RTP之间负载的转换。
综上而言,本发明的方案主要通过运行软件的处理器来实现,使得本发明的方案可以用于虚拟化平台,有利于通信设备向虚拟化平台的迁移。通过本发明的方案,能够在通用处理器中一次性读取多位位数据,并能够将多个连续的位数据一起移位,从而能够在通用处理器中实现位数据的快速编码重组,大大提高了位数据编码重组的速率。
图4为本发明另一个方面的用于在运行软件的处理器中编码重组位数据的编码重组装置的结构示意图。本实施例的编码重组装置包括第一读取装置1、判断装置4、移位装置2以及第一迭代装置3;其中,第一迭代装置3包括子迭代装置31。
其中,第一读取装置1和移位装置2已在参照图3所示实施例中予以详述,并以引用的方式包含于此,不再赘述。
以下详细说明本实施例的判断装置4、移位装置2以及子迭代装置31。
判断装置4在第一读取装置1之后执行操作。判断装置4判断所述预定数量的位数据是否均为零,并当判断所述预定数量的位数据均为零时,触发第一读取装置1执行操作,当判断所述预定数量的位数据不均为零时,触发移位装置2执行操作。
例如,第一读取装置1读取到表1所示第0至第3行的一组32个位数据,然后判断装置4通过将该32位数据与0xFFFFFFFF进行与运算来判断该组32个位数据是否均为0,当运算结果为0x00000000时,即说明该32位数据均为0,当运算结果非0x00000000时,即说明该32位数据不均为0。
需要说明的是,上述举例仅为更好地说明本发明的技术方案,而非对本发明的限制,本领域技术人员应该理解,任何判断所述预定数量的位数据是否均为零的实现方式,均应包含在本发明的范围内。
移位装置2执行操作之后,子迭代装置31触发第一读取装置1、判断装置4和第二读取装置2重复执行操作,直至第一数据包中的位数据已全部处理,以获得第二数据包。
具体地,子迭代装置31判断第一数据包中的位数据是否已全部处理,并当判断第一数据包中的位数据未全部处理时,触发第一读取装置1执行操作,从而触发判断装置4和移位装置2执行操作,当判断第一数据包中的位数据已全部处理时,结束操作。
本方案中,当一组位数据均为0时,能够进一步减少处理周期,加快处理速度。
图5为基站控制器中用于编码重组位数据的模块及相关设备的结构示意图。其中,BTS与BSC之间传输的是TRAUP格式的数据包,BSC与MGW之间传输的是RTP格式的数据包;TRAUP数据包与RTP数据包中的数据内容相同但包含相同数据内容的位数据所在的位序可能不同。该图所示的基站控制器中包含了本发明中所述的编码重组装置,该编码重组装置用于将来自BTS的TRAUP负载转换为RTP负载以将音频数据传送至MGW,且将来自MGW的RTP负载转换为TRAUP负载以将音频数据传送至BTS。
图6为本发明一个优选实施例的音频数据校验***,其中,该***包括本发明中所述的编码重组装置。其中,TRAU/TRAUP捕获器用于捕获BTS与包含了本发明的编码重组装置的BSC之间的音频数据,且将捕获到的有效音频负载发送到本发明的编码重组装置;RTP捕获器用于捕获MGW与包含了本发明的编码重组装置的BSC之间的音频数据,且将捕获到的有效音频负载发送到音频解码和MOS计算器中;音频解码和MOS计算器用于解码源和目的地RTP负载为线性PCM数据,且计算相应的MOS值;包含了本发明的编码重组装置的BSC用于在BTS与MGW之间进行TRAU/TRAUP负载与RTP负载之间的转换;与TRAU/TRAUP捕获器相连的编码重组装置用于将TRAU/TRAUP数据包编码重组为RTP数据包,且将编码重组后的RTP数据包传送至音频解码和MOS计算器。
图6所示***通过本发明所述的编码重组装置来校验BSC两端传输的音频数据包。由于多数音频语音解码器,如半速率解码器、全速率解码器、增强全速率解码器以及多数AMR解码器,都只认可RTP格式的负载,因此,优选地,该***通过本发明的编码重组装置将BSC一端的TRAU/TRAUP数据包转换为RTP数据包之后再与BSC另一端的RTP数据包进行比较计算,从而实现BSC两端传输的音频数据包的校验。该***的音频数据校验包括以下步骤:首先TRAU/TRAUP捕获器从BTS与BSC之间线路上捕获TRAU/TRAUP数据包,且将该TRAU/TRAUP数据包传送至本发明所述的编码重组装置;接着,本发明所述的编码重组装置将该TRAU/TRAUP数据包编码重组为RTP数据包,且将编码重组后的RTP数据包传送至音频解码和MOS计算器;并且,RTP捕获器从BSC与MGW之间线路上捕获RTP数据包,并将该RTP数据包传送至音频解码和MOS计算器;最后,音频解码和MOS计算器将TRAU/TRAUP数据包编码重组后获得的RTP数据包与直接捕获的BSC与MGW之间线路上的RTP数据包解析为线性PCM数据,并计算相应的MOS值,从而实现对BSC两端传输的音频数据包的校验。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。***权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。
Claims (13)
1.一种用于在运行软件的处理器中编码重组位数据的方法,其中,该方法包括以下步骤:
a从第一数据包中读取一组未被移位的、预定数量的位数据;
b将所述预定数量的位数据中能够被一起移位的位数据作为一个整体,移位至第二数据包中,并将所述预定数量的位数据中不能够与其他位数据一起移位的位数据单独移位至所述第二数据包中;
c重复所述步骤a和b,直至所述第一数据包中的位数据已全部处理,以获得所述第二数据包。
2.根据权利要求1所述的方法,其中,所述步骤b包括以下步骤:
b1读取与该组预定数量的位数据对应的、在其移位的过程中未被使用过的一个移位信息;
b2基于所述移位信息,获得该组预定数量的位数据中能够被一起移位的多个位数据或只能被单独移位的一个位数据,并将该多个或一个位数据移位至所述第二数据包中;
b3重复所述步骤b1和b2,直至该组预定数量的位数据已全部移位。
3.根据权利要求2所述的方法,其中,当所述移位信息用于指示一个位数据的移位时,其包含该一个位数据的数据内容,所述步骤b2包括以下步骤:
-当基于所述移位信息,确定被移位的位数据为多个时,从该组预定数量的位数据中获取该能够被一起移位的多个位数据并移位至第二数据包中;
-当基于所述移位信息,确定被移位的位数据为一个时,将所述移位信息中包含的所述数据内容写入所述第二数据包中。
4.根据权利要求1至3中任一项所述的方法,其中,该方法还包括以下步骤:
i判断所述预定数量的位数据是否均为零,并当判断所述预定数量的位数据均为零时,执行所述步骤a,当判断所述预定数量的位数据不均为零时,执行所述步骤b;
其中,所述步骤c包括以下步骤:
重复所述步骤a、i和b,直至所述第一数据包中的位数据已全部处理,以获得所述第二数据包。
5.根据权利要求1至4中任一项所述的方法,其中,所述预定数量为所述处理器的最大位宽。
6.根据权利要求1至5中任一项所述的方法,其中,所述移位信息为可执行代码。
7.一种用于在运行软件的处理器中编码重组位数据的编码重组装置,其中,该编码重组装置包括以下装置:
第一读取装置,用于从第一数据包中读取一组未被移位的、预定数量的位数据;
移位装置,用于将所述预定数量的位数据中能够被一起移位的位数据作为一个整体,移位至第二数据包中,并将所述预定数量的位数据中不能够与其他位数据一起移位的位数据单独移位至所述第二数据包中;
第一迭代装置,用于触发读取装置和移位装置重复执行操作,直至所述第一数据包中的位数据已全部处理,以获得所述第二数据包。
8.根据权利要求7所述的编码重组装置,其中,所述移位装置包括以下装置:
第二读取装置,用于读取与该组预定数量的位数据对应的、在其移位的过程中未被使用过的一个移位信息;
子移位装置,用于基于所述移位信息,获得该组预定数量的位数据中能够被一起移位的多个位数据或只能被单独移位的一个位数据,并将该多个或一个位数据移位至所述第二数据包中;
第二迭代装置,用于触发所述第二读取装置和子移位装置重复执行操作,直至该组预定数量的位数据已全部移位。
9.根据权利要求8所述的编码重组装置,其中,当所述移位信息用于指示一个位数据的移位时,其包含该一个位数据的数据内容,所述子移位装置包括以下装置:
第一子移位装置,用于当基于所述移位信息,确定被移位的位数据为多个时,从该组预定数量的位数据中获取该能够被一起移位的多个位数据并移位至第二数据包中;
第二子移位装置,用于当基于所述移位信息,确定被移位的位数据为一个时,将所述移位信息中包含的所述数据内容写入所述第二数据包中。
10.根据权利要求7至9中任一项所述的编码重组装置,其中,该编码重组装置还包括以下装置:
判断装置,用于判断所述预定数量的位数据是否均为零,并当判断所述预定数量的位数据均为零时,触发所述第一读取装置执行操作,当判断所述预定数量的位数据不均为零时,触发所述移位装置执行操作;
其中,所述第一迭代装置包括以下装置:
子迭代装置,用于触发所述第一读取装置、所述判断装置和所述移位装置重复执行操作,直至所述第一数据包中的位数据已全部处理,以获得所述第二数据包。
11.根据权利要求7至10中任一项所述的编码重组装置,其中,所述预定数量为所述处理器的最大位宽。
12.根据权利要求7至11中任一项所述的编码重组装置,其中,所述移位信息为可执行代码。
13.一种基站控制器,包括如权利要求7至12中至少一项所述的编码重组装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310229023.5A CN104243085A (zh) | 2013-06-08 | 2013-06-08 | 用于编码重组位数据的方法、装置和基站控制器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310229023.5A CN104243085A (zh) | 2013-06-08 | 2013-06-08 | 用于编码重组位数据的方法、装置和基站控制器 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104243085A true CN104243085A (zh) | 2014-12-24 |
Family
ID=52230516
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310229023.5A Pending CN104243085A (zh) | 2013-06-08 | 2013-06-08 | 用于编码重组位数据的方法、装置和基站控制器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104243085A (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1522401A (zh) * | 2001-10-29 | 2004-08-18 | ض� | 数据并行右移合并的方法与装置 |
JP3689595B2 (ja) * | 1999-07-21 | 2005-08-31 | 株式会社日立製作所 | 暗号装置、復号装置、暗号通信方法および自動料金徴収システム |
CN1898639A (zh) * | 2004-09-14 | 2007-01-17 | 松下电器产业株式会社 | 桶式移位装置 |
CN101911011A (zh) * | 2007-11-20 | 2010-12-08 | 高通股份有限公司 | 确定表内的元素的地址的***和方法 |
-
2013
- 2013-06-08 CN CN201310229023.5A patent/CN104243085A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3689595B2 (ja) * | 1999-07-21 | 2005-08-31 | 株式会社日立製作所 | 暗号装置、復号装置、暗号通信方法および自動料金徴収システム |
CN1522401A (zh) * | 2001-10-29 | 2004-08-18 | ض� | 数据并行右移合并的方法与装置 |
CN1898639A (zh) * | 2004-09-14 | 2007-01-17 | 松下电器产业株式会社 | 桶式移位装置 |
CN101911011A (zh) * | 2007-11-20 | 2010-12-08 | 高通股份有限公司 | 确定表内的元素的地址的***和方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103365654B (zh) | 基于硬件的包编辑器 | |
CN103384884B (zh) | 一种文件压缩方法、文件解压缩方法、装置及服务器 | |
CN104038605B (zh) | 电话pos支付终端交易测试的方法 | |
US6728929B1 (en) | System and method to insert a TCP checksum in a protocol neutral manner | |
CN107276722A (zh) | 一种基于udp的数据传输方法和*** | |
CN103346800B (zh) | 一种数据压缩方法及装置 | |
CN102204183A (zh) | 报文保序处理方法、保序协处理器和网络设备 | |
CN1507286A (zh) | 用于MIPv6的鲁棒性头标压缩/解压方法 | |
CN110769002A (zh) | 基于LabVIEW的报文解析方法、***、电子设备和介质 | |
CN103840871B (zh) | 无线网络中三维模型拓扑数据鲁棒传输的编码和重构方法 | |
CN107995206A (zh) | 用于工业大数据的tlv通信协议格式的实现装置及方法 | |
CN104702519B (zh) | 流量卸载的方法、装置及*** | |
CN104243085A (zh) | 用于编码重组位数据的方法、装置和基站控制器 | |
CN111935767B (zh) | 一种网络仿真*** | |
CN109542419A (zh) | 一种can信息处理软件开发的方法、***及设备 | |
CN104868973B (zh) | 数据完整性校验方法和*** | |
CN104378180B (zh) | 基于二进制分子通信模型的多播可靠性确定方法 | |
Xu et al. | 5G-based industrial wireless controller: protocol adaptation, prototype development, and experimental evaluation | |
CN105808549A (zh) | 基于映射文件自动组帧及分析帧的客户端方法 | |
WO2022021098A1 (zh) | 一种编解码方法及装置 | |
CN105591965B (zh) | 流量均衡输出方法及装置 | |
CN101662466A (zh) | 通信***中协议数据的传输方法、通信设备及通信*** | |
CN103546240B (zh) | 以太网crc校验方法 | |
CN103346961A (zh) | 一种数据打包交换的方法和*** | |
Farouq et al. | Unidirectional and bidirectional optimistic modes IP header compression for real-time video streaming |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
AD01 | Patent right deemed abandoned |
Effective date of abandoning: 20180410 |
|
AD01 | Patent right deemed abandoned |