对信号数据进行压缩和解压缩的方法和装置制造方法

文档序号:7979489阅读:265来源:国知局
对信号数据进行压缩和解压缩的方法和装置制造方法
【专利摘要】本发明涉及数据压缩和解压缩,具体地,涉及对信号数据进行压缩和解压缩的方法和装置。在一个实施方式中,公开了一种对信号数据进行压缩的方法,包括:获取信号数据;确定将所述信号数据划分为多个数据块的块长度和所述数据块的指数;利用所述数据块的指数对所述数据块包含的信号数据进行压缩,以形成所述数据块的尾数序列;以及利用所述数据块的块长度、指数以及尾数序列形成压缩的数据块。本发明的信号数据压缩的方法通过构造与信号数据的动态特征相适应的变长的数据块提高了信号数据的压缩率。
【专利说明】对信号数据进行压缩和解压缩的方法和装置
【技术领域】
[0001]本发明涉及数据压缩和解压缩,特别涉及对信号数据进行压缩和解压缩的方法和装置。
【背景技术】
[0002]在无线信号处理领域,例如在基站信号收发系统和信息采集和处理系统中,信号通常被调制成正交的I和Q两路数据,并且在数字信号处理器中I和Q两路数据通常用长度固定的定点数表示(以16位模数转换器为例,输入模拟信号,输出的I和Q两路数据均为16位的二进制定点数)。这些I/Q数据具体如下特征:
[0003](I)较大的数据集,以16位的I/Q数据为例,数据集大小为216。
[0004](2)单个数值出现的频率的百分值较低,往往低于1%。
[0005](3)连续数据的取值范围接近,以16位的I/Q数据为例,几个连续的数据可能都处于[26,27)范围内。
[0006]对于具有这些特征的I/Q信号数据进行压缩能够更有效地利用资源,具体地,在基站信号收发系统中,由压缩器实现对信号数据的压缩处理,信号数据的压缩能够减少传输链路中的信号数据量,从而可以节省带宽;在信息采集和处理系统中,由压缩器实现对信号数据的压缩,信号数据的压缩能够减少需要存储的信号数据量,从而可以节省存储设备的容量。
[0007]然而基于信息熵理论的传统的数据压缩方法,无论是基于概率的Huffman编码和算术编码,还是基于字典的LZW等各种方法,在压缩复杂度、解压复杂度和压缩效果三方面均不理想,“较大的数据集”意味着需要维护和存储一个较大的表,从而使得压缩复杂度和解压复杂度都较高;“单个数值出现的频率的百分值较低”意味着压缩效果较差。
[0008]因此需要一种高效的信号数据的压缩方法。

【发明内容】

[0009]基于上述问题,本发明提供一种对信号数据进行压缩的方法和装置,以及对压缩的信号数据进行解压缩的方法和装置。
[0010]根据本发明的第一方面,提供一种对信号数据进行压缩的方法,包括:获取信号数据;确定将所述信号数据划分为多个数据块的块长度和所述数据块的指数;利用所述数据块的指数对所述数据块包含的信号数据进行压缩,以形成所述数据块的尾数序列;以及利用所述数据块的块长度、指数以及尾数序列形成压缩的数据块。
[0011]根据本发明的第二方面,提供一种对压缩的信号数据进行解压缩的方法,包括:获取压缩的信号数据;从所述压缩的信号数据中获取数据块的块长度和指数;根据所述数据块的块长度和指数获取所述数据块的尾数序列;利用所述尾数序列和指数恢复对应于所述数据块的原始信号数据。
[0012]根据本发明的第三方面,提供一种对信号数据进行压缩的装置,包括:获取模块,被配置为获取信号数据;块长度和指数确定模块,被配置为确定将所述信号数据划分为多个数据块的块长度和所述数据块的指数;尾数序列产生模块,被配置为利用所述数据块的指数对所述数据块包含的信号数据进行压缩并产生所述数据块的尾数序列;以及压缩数据块产生模块,被配置为利用所述数据块的块长度、指数以及尾数序列形成压缩的数据块。
[0013]根据本发明的第四方面,提供一种对压缩的信号数据进行解压缩的装置,包括:获取模块,获取压缩的信号数据;块长度和指数获取模块,被配置为从所述压缩的信号数据中获取数据块的块长度和指数;尾数序列获取模块,被配置为根据所述数据块的块长度和指数获取所述数据块的尾数序列;信号数据恢复模块,被配置为利用所述尾数序列和指数恢复对应于所述数据块的原始信号数据。
[0014]根据本发明实施例的信号数据压缩的方法通过构造与信号数据的动态特征相适应的变长的数据块,使得信号数据的压缩具有鲁棒性,从而提高了信号数据的压缩率。
【专利附图】

【附图说明】
[0015]结合附图,通过参考下列详细的示例性实施例的描述,将会更好地理解本发明本身、优选的实施方式以及本发明的目的和优点,其中:
[0016]图1示出了适于用来实现本发明实施方式的示例性计算系统100的框图;
[0017]图2示出根据本发明实施例的基站信号收发系统的框图;
[0018]图3示出根据本发明实施例的信息采集和处理系统的框图;
[0019]图4示出根据本发明实施例对信号数据进行压缩的方法;
[0020]图5示出根据本发明的一个实施例确定将所述信号数据划分为多个数据块的块长度和所述数据块的指数的流程图;
[0021]图6示出根据本发明的又一个实施例确定将所述信号数据划分为多个数据块的块长度序列和所述数据块的指数的流程图;
[0022]图7示出根据本发明的实施例产生尾数序列和压缩的数据块的实例;
[0023]图8示出根据本发明实施例对压缩的信号数据进行解压缩的方法;
[0024]图9示出根据本发明的实施例对信号数据进行压缩的装置900 ;以及
[0025]图10示出根据本发明的实施例对信号数据进行解压缩的装置1000。
【具体实施方式】
[0026]下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整的传达给本领域的技术人员。
[0027]图1示出了适于用来实现本发明实施方式的示例性计算系统200的框图。如图1所示,计算机系统100可以包括:CPU(中央处理单元)101、RAM(随机存取存储器)102、ROM(只读存储器)103、系统总线104、硬盘控制器105、键盘控制器106、串行接口控制器107、并行接口控制器108、显示控制器109、硬盘110、键盘111、串行外部设备112、并行外部设备113和显示器114。在这些设备中,与系统总线104耦合的有CPU 101、RAM 102、ROM103、硬盘控制器105、键盘控制器106、串行控制器107、并行控制器108和显示控制器109。硬盘110与硬盘控制器105耦合,键盘111与键盘控制器106耦合,串行外部设备112与串行接口控制器107耦合,并行外部设备113与并行接口控制器108耦合,以及显示器114与显示控制器109耦合。应当理解,图1所述的结构框图仅仅是为了示例的目的,而不是对本发明范围的限制。在某些情况下,可以根据具体情况增加或减少某些设备。
[0028]所属【技术领域】的技术人员知道,本发明可以实现为系统、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:可以是完全的硬件、也可以是完全的软件(包括固件、驻留软件、微代码等),还可以是硬件和软件结合的形式,本文一般称为“电路”、“模块”或“系统”。此外,在一些实施例中,本发明还可以实现为在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码。
[0029]可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是一但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPR0M或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
[0030]计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
[0031]计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括一但不限于一无线、电线、光缆、RF等等,或者上述的任意合适的组合。
[0032]可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言一诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言一诸如”C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络一包括局域网(LAN)或广域网(WAN)-连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
[0033]下面将参照本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,这些计算机程序指令通过计算机或其它可编程数据处理装置执行,产生了实现流程图和/或框图中的方框中规定的功能/操作的装置。
[0034]也可以把这些计算机程序指令存储在能使得计算机或其它可编程数据处理装置以特定方式工作的计算机可读介质中,这样,存储在计算机可读介质中的指令就产生出一个包括实现流程图和/或框图中的方框中规定的功能/操作的指令装置(instructionmeans)的制造品(manufacture)。
[0035]也可以把计算机程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机或其它可编程装置上执行的指令能够提供实现流程图和/或框图中的方框中规定的功能/操作的过程。
[0036]图2示出根据本发明实施例的基站信号收发系统的框图,在上行链路,射频远程单元中的接收器从天线接收信号,经过模数变换器转换为信号数据,由压缩器对信号数据进行压缩,通过数据传输链路发送给基带处理单元,基带处理单元的解压器对压缩的信号数据进行解压缩,解压缩后的信号数据发送给后续的基带处理模块。在下行链路,基带处理单元中的基带处理模块将基带信号发送给压缩器,由压缩器对基带信号进行压缩,通过数据传输链路发送给射频远程单元,射频远程单元中的解压器对接收的压缩信号数据进行解压,将解压的信号数据发送至数模变换器转化为无线信号,并通过发送器发送出去。根据本发明实施例的对信号数据进行压缩的方法可以在射频远程单元和基带处理单元中的压缩器中实现,根据本发明实施例的对压缩的信号数据进行解压缩的方法可以在射频远程单元中的解压器中实现,也可以在基带处理单元中的解压器中实现。
[0037]图3示出根据本发明实施例的信息采集和处理系统框图,传感器子系统采集的信号通过模数变换器转变为信号数据,压缩器对信号数据进行压缩,通过存储通道或者通信信道发送至存储设备,由解压器对存储设备中压缩的信号数据进行解压,将解压的信号数据传递给信号处理器进行处理。根据本发明实施例的对信号数据进行压缩的方法可以在压缩器中实现,根据本发明实施例的对压缩的信号数据进行解压缩的方法可以在解压器中实现。
[0038]图4示出根据本发明实施例对信号数据进行压缩的方法,包括:在步骤S401,获取信号数据;在步骤S402,确定将所述信号数据划分为多个数据块的块长度和所述数据块的指数;在步骤S403,利用所述指数对所述数据块包含的信号数据进行压缩,以形成所述数据块的尾数序列;在步骤S404,由所述数据块的块长度、指数以及尾数序列形成压缩的数据块。
[0039]步骤S401获取的信号数据是由模数变换器转换产生的,并预先存储在缓存器中。
[0040]图5示出根据本发明的一个实施例确定将所述信号数据划分为多个数据块的块长度和所述数据块的指数的流程图。
[0041]在步骤S501,输入N个连续的信号数据及参数m,其中m是能够被N整除的任意整数。
[0042]在步骤S502,将N个信号数据按次序划分为N/m个大小为m的数据块B1, B2,,Bk。
[0043]在步骤S503,根据所述数据块包含的信号数据的指数计算所述数据块的指数,其中E(B)被定义为数据块B的指数,
[0044]聊=^辦)),

J '[0045]其中e (dj)表示信号数据4的指数,指数e ((Ij)被定义为从信号数据七的符号位的下一位开始向右计数与符号位数值相同的连续位数。
[0046]在步骤S504,计算相邻的每两个数据块的合并增益G(Merging Gain),具体地,根据相邻两个数据块的指数、块长度标记的位数、指数的标记位数和块长度计算相邻两个数据块的合并增益,首先,分别计算相邻两个数据块Bi和Bi+1的压缩量V (Bi)和v(Bi+1),然后,计算相邻两个数据块Bi和&+1合并后生成的新数据块的压缩量V (Bi U Bi+1),相邻两个数据块&和Bi+1的合并增益为Gi,i+1 = V (Bi U Bi+1) -(v (Bi) +V (Bi+1))。对于给定的数据块B,压缩量V (B)的计算方法如下:v(B) =E(B).IB I _TokenSize〈 IB I >_TokenSize〈E (B) >,其中 |B| 表示数据块B的块长度,即包含的信号数据个数,其中TokenSizK | B | >表示数据块B的长度标记的位数,TokenSize〈E⑶ > 表示数据块B的指数E⑶的标记位数,例如预先规定用3位二进制数来表示数据块B的长度标记和指数标记,则TokenSize〈 | B | >和TokenSize〈E (B) >均为3。
[0047]在步骤S505,对每个相邻两个数据块的合并增益进行比较,以获得最大合并增益。在步骤S506,判断最大合并增益是否大于0,如果判断结果为是,则在步骤S507,将最大合并增益对应的相邻两个数据块进行合并,并返回步骤S504,如果判断结果为否,即最大合并增益小于或等于0,则在步骤S508,根据最后的合并结果确定将信号数据划分为数据块的块长度。例如对于32个信号数据,最后合并结果为8,4,6,4,2,8,表明32个信号数据被依次划分为6个数据块,其中第一个数据块的块长度为8,即包含8个信号数据,第二个数据块包含4个信号数据,以此类推。
[0048]图6示出根据本发明又一个实施例确定将所述信号数据划分为多个数据块的块长度和所述数据块的指数的流程图。在步骤S601,输入N个连续的信号数据& ;在步骤S602,计算N个连续的信号数据Clj的指数eWp,j = 1....1其中指数6(4)被定义为从信号数据4的符号位的下一位开始向右计数与符号位数值相同的连续位数,在步骤S603,将I赋给j ;在步骤S604,比较相邻两个信号数据的指数eWp和e(dj+1),如果Ie(Clj)e (dJ+1) I≤给定阈值,则将相邻两个信号数据dj和dH合并;在步骤S605,j = j+1 ;在步骤S606,判断j是否等于N,如果判断结果为否,则步骤返回至S604 ;如果判断结果为是,则在步骤S607,根据最后的合并结果确定将所述信号数据划分的多个数据块的块长度和所述数据块的指数,数据块E(B)被定义为数据块B的指数。
[0049]
【权利要求】
1.一种对信号数据进行压缩的方法,包括: 获取信号数据; 确定将所述信号数据划分为多个数据块的块长度和所述数据块的指数; 利用所述数据块的指数对所述数据块包含的信号数据进行压缩,以形成所述数据块的尾数序列;以及 由所述数据块的块长度、指数以及尾数序列形成压缩的数据块。
2.根据权利要求1所述的方法,其中确定将所述信号数据划分为多个数据块的块长度和所述数据块的指数包括: 1)将所述信号数据初始划分为多个数据块; 2)根据所述数据块包含的信号数据的指数计算所述数据块的指数,其中E(B)被定义为数据块B的指数,
3.根据权利要求1或2所述的方法,其中利用所述数据块的指数对所述数据块包含的信号数据进行压缩,以形成所述数据块的尾数序列包括:将所述数据块包含的信号数据从符号位的下一位开始压缩,其中所述信号数据被压缩的位数由所述数据块的指数确定,压缩后的数据块形成数据块的尾数序列。
4.根据权利要求3所述的方法,其中由所述数据块的块长度、指数以及尾数序列形成压缩的数据块包括: 将所述数据块的块长度按照预定位数生成块长度标记; 将所述数据块的指数按照预定位数生成指数标记; 将所述块长度标记、指数标记以及尾数序列按照从高位到低位的顺序组合为压缩的数据块。
5.根据权利要求4所述的方法,其中所述块长度标记是按照预定位数对所述数据块的块长度进行的二进制编码,指数标记是按照预定位数对所述数据块的指数进行的二进制编码。
6.一种对压缩的信号数据进行解压缩的方法,包括: 获取压缩的信号数据; 从所述压缩的信号数据中获取数据块的块长度和指数;根据所述数据块的块长度和指数获取所述数据块的尾数序列; 利用所述尾数序列和指数恢复对应于所述数据块的原始信号数据。
7.根据权利要求6所述的方法,其中从所述压缩的信号数据中获取数据块的块长度和指数包括: 从所述压缩的信号数据中按照预定位数提取长度标记和指数标记; 将所述长度标记转化为数据块的块长度; 将所述指数标记转化为数据块的指数。
8.根据权利要求7所述的方法,其中根据所述数据块的块长度和指数获取所述数据块的尾数序列包括: 根据所述指数确定所述数据块包含的每个信号数据被压缩的位数;根据所述数据块的块长度和所述数据块被压缩的位数确定尾数序列的长度; 根据尾数序列的长度从所述压缩的信号数据中获取尾数序列。
9.一种对信号数据进行压缩的装置,包括: 获取模块,被配置为获取信号数据; 块长度和指数确定模块,被配置为确定将所述信号数据划分为多个数据块的块长度和所述数据块的指数; 尾数序列产生模块,被配置为利用所述数据块的指数对所述数据块包含的信号数据进行压缩以形成所述数据块的尾数序列;以及 压缩数据块产生模块,被配置为由所述数据块的块长度、指数以及尾数序列形成压缩的数据块。
10.根据权利要求9所述的装置,其中块长度和指数确定模块包括:初始数据块划分模块,被配置为将所述信号数据初始划分为多个数据块; 指数计算模块,被配置为根据所述数据块包含的信号数据的指数计算所述数据块的指数,其中E(B)被定义为数据块B的指数,
11.根据权利要求9或10所述的装置,其中尾数序列产生模块被配置为:将所述数据块包含的信号数据从符号位的下一位开始压缩,其中所述信号数据被压缩的位数由所述数据块的指数确定,压缩后的数据块形成数据块的尾数序列。
12.根据权利要求11所述的装置,其中压缩数据块产生模块被配置为: 将所述数据块的块长度按照预定位数生成块长度标记; 将所述数据块的指数按照预定位数生成指数标记; 将所述块长度标记、指数标记以及尾数序列按照从高位到低位的顺序组合为压缩的数据块。
13.根据权利要求12所述的装置,其中所述块长度标记是按照预定位数对所述数据块的块长度进行的二进制编码,指数标记是按照预定位数对所述数据块的指数进行的二进制编码。
14.一种对压缩的信号数据进行解压缩的装置,包括: 获取模块,获取压缩的信号数据; 块长度和指数获取模块,被配置为从所述压缩的信号数据中获取数据块的块长度和指数; 尾数序列获取模块,被配置为根据所述数据块的块长度和指数获取所述数据块的尾数序列; 信号数据恢复模块,被配置为利 用所述尾数序列和指数恢复对应于所述数据块的原始信号数据。
15.根据权利要求14所述的装置,其中块长度和指数获取模块被配置为: 从所述压缩的信号数据中按照预定位数提取长度标记和指数标记; 将所述长度标记转化为数据块的块长度; 将所述指数标记转化为数据块的指数。
16.根据权利要求15所述的装置,其中尾数序列获取模块被配置为: 根据所述指数确定所述数据块包含的每个信号数据被压缩的位数; 根据所述数据块的块长度和所述数据块被压缩的位数确定尾数序列的长度; 根据尾数序列的长度从所述压缩的信号数据中获取尾数序列。
【文档编号】H04W28/06GK103458460SQ201210177519
【公开日】2013年12月18日 申请日期:2012年5月31日 优先权日:2012年5月31日
【发明者】李明强, 林咏华, 王青, 程鑫豪, 薛超, 祝超, 阎蓉, 占海 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1