CN104967453A - 基于fpga的多路循环数据压缩器和解压缩器以及方法 - Google Patents

基于fpga的多路循环数据压缩器和解压缩器以及方法 Download PDF

Info

Publication number
CN104967453A
CN104967453A CN201510353447.1A CN201510353447A CN104967453A CN 104967453 A CN104967453 A CN 104967453A CN 201510353447 A CN201510353447 A CN 201510353447A CN 104967453 A CN104967453 A CN 104967453A
Authority
CN
China
Prior art keywords
prime
doublerightarrow
memory
input
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.)
Granted
Application number
CN201510353447.1A
Other languages
English (en)
Other versions
CN104967453B (zh
Inventor
赵天云
李国祥
郭雷
王洪迅
毋蒙
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xi'an Guangjiao Zhichuang Electronic Technology Co., Ltd
Original Assignee
Northwestern Polytechnical University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Northwestern Polytechnical University filed Critical Northwestern Polytechnical University
Priority to CN201510353447.1A priority Critical patent/CN104967453B/zh
Publication of CN104967453A publication Critical patent/CN104967453A/zh
Application granted granted Critical
Publication of CN104967453B publication Critical patent/CN104967453B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

本发明涉及一种基于FPGA的多路循环数据压缩器和解压缩器以及方法,采用基于FPGA的ASIC设计技术,满足旋翼应变数据处理系统功耗低、体积小、重量轻、集成度高、单位时间内数据处理量大、可扩展性好等性能要求;将应变量量化等级选为16bit,提高了多旋翼应变采集数据的精度,保证量化精度的同时实现了实时处理;数据还原误差在10-3~10-2量级之间,符合精度需求;对异常应变值进行了及时还原。

Description

基于FPGA的多路循环数据压缩器和解压缩器以及方法
技术领域
本发明属于数字信号处理领域,涉及一种基于FPGA的多路循环数据压缩器和解压缩器以及方法。
背景技术
直升机旋翼应变数据采集处理系统已经成为直升机机载处理系统中不可或缺的一环,对旋翼进行实时监测和应变数据采集,完成飞行中的实时告警,可提高直升机的飞行安全性,具有重大的实用价值和广泛的应用前景。机载设计平台对数据处理、传输性能有着限制,需要处理的数据量大,但数据传输能力有限,因此必须对旋翼应变数据进行压缩发送、接收解压缩的处理,才能满足实时性。
目前,国外对于旋翼应变数据的实时数据处理技术非常重视,包括美国、俄罗斯、日本等航空技术大国都已投入了大量的财力物力对其进行研究。美国向来都非常重视旋翼应变的实时数据监测技术,其在信号采集,数据处理,故障诊断方面都已进行大量研究。美国先后研制了“飞行中结构监控系统(FSMS)”和“飞行中裂纹探测系统(IFCDS)”;开发了采用超声波传感疲劳损伤的实时无损评估技术(NDE),损坏感应系统被用于直升机旋翼结构监测和新老飞机的机体结构寿命预测;M.Roemer开发了直升机旋翼实时监测与故障诊断系统。基于这些研究及实验,美国的直升机飞行风险降低了50%,飞机的运行预算降低了1/3,而且还可能进一步降低。
相比之下,国内的旋翼应变数据的实时数据处理技术起步较晚,在直升机旋翼应变数据采集处理方面主要做了理论方面的研究,提出了一些监测方法。朱旭程等人通过分析典型故障对旋翼系统特征的影响,建立了故障诊断矩阵,提出了一种基于诊断矩阵的冲突集生成方法。何克磊等人建立了一种系统健康评估模型,并在四旋翼直升机平台上进行了仿真应用。张明生等人采集处理了旋翼应变数据,在国内首次实现了没有导电环情况下的旋翼应变测量。黄珺等人完成了地面试验条件下旋翼桨叶固有频率的测试。但是国内对于旋翼应变数据采集处理的研究主要以地面诊断,建立模型为主,实际的系统开发比较少,少数的旋翼应变测试系统完成了功能需求,但是存在数据量化精度不高、实时性不好等问题。因此,对于旋翼应变数据的实时数据处理技术仍需进一步深入研究。
发明内容
要解决的技术问题
为了避免现有技术的不足之处,本发明提出一种基于FPGA的多路循环数据压缩器和解压缩器以及方法,采用基于FPGA的ASIC设计技术,可以满足旋翼应变数据处理系统功耗低、体积小、重量轻、集成度高、单位时间内数据处理量大、可扩展性好等性能要求。
技术方案
一种基于FPGA的多路循环数据压缩器,其特征在于包括ramp1存储器、rams1存储器、量化器、预测器、减法器和自适应因子计算器;
减法器:输入端为需要编码的数据和ramp1存储器的输出端;将输入值Si与ramp1存储器的输出值相减,其结果输出至与其相连的量化器;
量化器:输入端连接减法器和rams1存储器的输出端,输出端为压缩器的输出端,同时连接自适应因子计算器和预测器的输入端;从rams1存储器读取当前自适应因子参数indexi,对di进行量化产生一个有符号的4位二进制编码值Ci;
自适应因子计算器:输出端连接rams1存储器的输入端;编码值Ci作为输入,通过自适应因子计算器求出自适应因子更新值Index;
预测器:输出端连接ramp1存储器的输入端;编码值Ci作为输入,通过预测器求出预测值更新值Sp
ramp1存储器:输出端连接减法器的输入端;数据宽度16bit,用于多路压缩的预测值参数缓存,输出为减法器提供当前样本的预测值Spi;
rams1存储器:输出端连接量化器的输入端;数据宽度7bit,用于多路压缩的自适应因子参数缓存,输出为量化器提供当前样本数据处理所需要的参数自适应因子indexi。
一种采用所述压缩器进行多路循环压缩编码的方法,其特征在于步骤如下:
步骤1:从存储器ramp1和存储器rams1中读取第n路第i个预测值Spi和自适应因子Indexi;
步骤2:将当前第i个输入值Si与第i个预测值Spi相减,得到当前差值di;对di进行量化产生一个有符号的4位二进制编码值Ci,
所述Ci为补码形式,最高位为符号位,表示正负,低三位为量化码,对应0~7;
步骤3:以编码值Ci的低三位Ci(2:0)为判定条件重构差值diff:
C i ( 2 : 0 ) = ′ ′ 000 ′ ′ ⇒ d i f f = 1 8 Q C i ( 2 : 0 ) = ′ ′ 001 ′ ′ ⇒ d i f f = 1 8 Q + 1 4 Q C i ( 2 : 0 ) = ′ ′ 010 ′ ′ ⇒ d i f f = 1 8 Q + 1 2 Q C i ( 2 : 0 ) = ′ ′ 011 ′ ′ ⇒ d i f f = 1 8 Q + 1 4 Q + 1 2 Q C i ( 2 : 0 ) = ′ ′ 100 ′ ′ ⇒ d i f f = 1 8 Q + Q C i ( 2 : 0 ) = ′ ′ 101 ′ ′ ⇒ d i f f = 1 8 Q + 1 4 Q + Q C i ( 2 : 0 ) = ′ ′ 110 ′ ′ ⇒ d i f f = 1 8 Q + 1 2 Q + Q C i ( 2 : 0 ) = ′ ′ 111 ′ ′ ⇒ d i f f = 1 8 Q + 1 4 Q + 1 2 Q + Q
然后由Ci的最高位Ci(3)计算得到预测值更新值Sp
C i ( 3 ) = ′ 1 ′ ⇒ S P = S P i - d i f f C i ( 3 ) = ′ 0 ′ ⇒ S P = S P i + d i f f
最后编码值Ci作为输入,通过自适应因子计算器求出自适应因子更新值Index:
步骤4:将ramp1和rams1的高有效写使能信号wep1和wes1置1,将预测值更新值Sp写入ramp1中的第n个存储单元,将自适应因子更新值Index写入rams1中的第n个存储单元,下一个时钟上升沿到来时,ram中的第n个存储单元数据由第i个更新为第i+1个,为下一个循环的第n路使用;
步骤5:将ramp1和rams1的读写地址加1,同时wep1和wes1置0,使ram处于读状态,多路数据循环压缩模块完成一个压缩过程;
重新返回步骤1,开始对第n+1路第i个数据进行压缩。
一种对所述基于FPGA的多路循环数据压缩器得到的编码进行解码的多路数据循环解压缩器,其特征在于包括ramp2存储器、rams2存储器、逆量化器、自适应因子计算器和加法器;
逆量化器:输入端接收需要解码的编码数据,以及连接ramp2存储器的输出端,逆量化器的输出端连接加法器的输入端;从rams2存储器读取当前自适应因子参数,对编码值Ci的低三位进行差值重构;
自适应因子计算器:输入端接收需要解码的编码数据,输出端连接rams2存储器的输入端;编码值Ci作为输入,通过自适应因子计算器求出自适应因子更新值Index;
rams2存储器:输出端连接逆量化器的输入端;数据宽度7bit,用于多路解压缩的自适应因子参数缓存,输出为逆量化器提供当前样本数据处理所需要的参数自适应因子indexi;
ramp2存储器:输出端与加法器的输入端相连;数据宽度16bit,用于多路解压缩的预测值参数缓存,为加法器提供当前样本的预测值Spi。
一种采用所述多路数据循环解压缩器进行多路循环解压缩编码的方法,其特征在于步骤如下:
步骤1:从ramp2和rams2中读取第n路第i个预测值Spi和自适应因子Indexi;
步骤2:首先以编码值Ci的低三位Ci(2:0)为判定条件重构差值diff:
C i ( 2 : 0 ) = ′ ′ 000 ′ ′ ⇒ d i f f = 1 8 Q C i ( 2 : 0 ) = ′ ′ 001 ′ ′ ⇒ d i f f = 1 8 Q + 1 4 Q C i ( 2 : 0 ) = ′ ′ 010 ′ ′ ⇒ d i f f = 1 8 Q + 1 2 Q C i ( 2 : 0 ) = ′ ′ 011 ′ ′ ⇒ d i f f = 1 8 Q + 1 4 Q + 1 2 Q C i ( 2 : 0 ) = ′ ′ 100 ′ ′ ⇒ d i f f = 1 8 Q + Q C i ( 2 : 0 ) = ′ ′ 101 ′ ′ ⇒ d i f f = 1 8 Q + 1 4 Q + Q C i ( 2 : 0 ) = ′ ′ 110 ′ ′ ⇒ d i f f = 1 8 Q + 1 2 Q + Q C i ( 2 : 0 ) = ′ ′ 111 ′ ′ ⇒ d i f f = 1 8 Q + 1 4 Q + 1 2 Q + Q
然后由Ci的最高位Ci(3)计算得到解码输出SRi:
C i ( 3 ) = ′ 1 ′ ⇒ S R i = S P i - d i f f C i ( 3 ) = ′ 0 ′ ⇒ S R i = S P i + d i f f
由SP=SRi得到预测值更新值Sp
最后编码值Ci作为输入,通过自适应因子计算器求出自适应因子更新值Index:
步骤3:将ramp2和rams2的高有效写使能信号wep2和wes2置1,将预测值更新值Sp写入ramp2中的第n个存储单元,将自适应因子更新值Index写入rams2中的第n个存储单元,下一个时钟上升沿到来时,ram中的第n个存储单元数据由第i个更新为第i+1个,为下一个循环的第n路使用;
步骤4:将ramp2和rams2的读写地址加1,同时wep2和wes2置0,使ram处于读状态,多路数据循环解压缩模块完成一个压缩过程;
重新返回步骤1,开始对第n+1路第i个数据进行解压缩。
有益效果
本发明提出的一种基于FPGA的多路循环数据压缩器和解压缩器以及方法,采用基于FPGA的ASIC设计技术,满足旋翼应变数据处理系统功耗低、体积小、重量轻、集成度高、单位时间内数据处理量大、可扩展性好等性能要求;将应变量量化等级选为16bit,提高了多旋翼应变采集数据的精度,保证量化精度的同时实现了实时处理;数据还原误差在10-3~10-2量级之间,符合精度需求;对异常应变值进行了及时还原。
附图说明
图1是多路数据循环压缩器结构框图;
图2是多路数据循环解压缩器结构框图;
图3是多路数据循环压缩流程图;
图4是多路数据循环解压缩流程图;
图5是单路数据处理的时序仿真结果;
图6是多路数据处理的时序仿真结果。
具体实施方式
现结合实施例、附图对本发明作进一步描述:
用于实施的硬件环境是:XILINX公司Spartan-6系列,型号为XC6SLX150的两块FPGA芯片,示波器,逻辑分析仪,运行的软件环境是:ISE14.5。以四路数据处理为例,我们用ISE14.5软件实现了本发明提出的方法。
多路数据循环压缩器模块
其实施按如附图1所示的设计架构完成,该架构中包括的模块及其结构实现关系为:
ramp1存储器:采用VHDL编写生成,数据宽度16bit,数据深度为4。其输入端与预测器的输出端相连,用于多路压缩的预测值参数缓存,输出端与减法器的输入端相连,为减法器提供当前样本的预测值Spi。
rams1存储器:采用VHDL编写生成,数据宽度7bit,数据深度为4。其输入端与自适应因子计算器的输出端相连,用于多路压缩的自适应因子参数缓存,输出端与量化器的输入端相连,为量化器提供当前样本数据处理所需要的参数自适应因子。
量化器:从rams1读取当前自适应因子参数indexi,对di进行量化产生一个有符号的4位二进制编码值Ci。Ci最高位Ci(3)计算公式为:
d i &GreaterEqual; 0 &DoubleRightArrow; C i ( 3 ) = &prime; 0 &prime; d i < 0 &DoubleRightArrow; C i ( 3 ) = &prime; 1 &prime;
低三位Ci(2:0)计算公式为:
| d i | &le; 1 4 Q &DoubleRightArrow; C i ( 2 : 0 ) = &prime; &prime; 000 &prime; &prime; 1 4 Q < | d i | &le; 1 2 Q &DoubleRightArrow; C i ( 2 : 0 ) = &prime; &prime; 001 &prime; &prime; 1 2 Q < | d i | &le; 3 4 Q &DoubleRightArrow; C i ( 2 : 0 ) = &prime; &prime; 010 &prime; &prime; 3 4 Q < | d i | &le; Q &DoubleRightArrow; C i ( 2 : 0 ) = &prime; &prime; 011 &prime; &prime; Q < | d i | &le; 5 4 Q &DoubleRightArrow; C i ( 2 : 0 ) = &prime; &prime; 100 &prime; &prime; 5 4 Q < | di | &le; 3 2 Q &DoubleRightArrow; Ci ( 2 : 0 ) = &Prime; 101 &Prime; 3 2 Q < | d i | &le; 7 4 Q &DoubleRightArrow; C i ( 2 : 0 ) = &prime; &prime; 110 &prime; &prime; | d i | &le; 7 4 Q &DoubleRightArrow; C i ( 2 : 0 ) = &prime; &prime; 111 &prime; &prime;
其中Q表示量化阶。
预测器:编码值Ci作为输入,通过预测器求出预测值更新值Sp。首先由Ci的低三位Ci(2:0)重构差值diff:
C i ( 2 : 0 ) = &prime; &prime; 000 &prime; &prime; &DoubleRightArrow; d i f f = 1 8 Q C i ( 2 : 0 ) = &prime; &prime; 001 &prime; &prime; &DoubleRightArrow; d i f f = 1 8 Q + 1 4 Q C i ( 2 : 0 ) = &prime; &prime; 010 &prime; &prime; &DoubleRightArrow; d i f f = 1 8 Q + 1 2 Q C i ( 2 : 0 ) = &prime; &prime; 011 &prime; &prime; &DoubleRightArrow; d i f f = 1 8 Q + 1 4 Q + 1 2 Q C i ( 2 : 0 ) = &prime; &prime; 100 &prime; &prime; &DoubleRightArrow; d i f f = 1 8 Q + Q C i ( 2 : 0 ) = &prime; &prime; 101 &prime; &prime; &DoubleRightArrow; d i f f = 1 8 Q + 1 4 Q + Q C i ( 2 : 0 ) = &prime; &prime; 110 &prime; &prime; &DoubleRightArrow; d i f f = 1 8 Q + 1 2 Q + Q C i ( 2 : 0 ) = &prime; &prime; 111 &prime; &prime; &DoubleRightArrow; d i f f = 1 8 Q + 1 4 Q + 1 2 Q + Q
然后由Ci的最高位Ci(3)计算得到预测值更新值Sp
C i ( 3 ) = &prime; 1 &prime; &DoubleRightArrow; S P = S P i - d i f f C i ( 3 ) = &prime; 0 &prime; &DoubleRightArrow; S P = S P i + d i f f
自适应因子计算器:编码值Ci作为输入,通过自适应因子计算器求出自适应因子更新值Indexi:
多路数据循环压缩编码方法的实现原理,参考附图3。以对第n路数据进行第i次压缩为例,步骤如下:
步骤1:从ramp1和rams1中读取所需的第n路第i个预测值Spi和自适应因子Indexi。
步骤2:将当前第i个输入值Si与第i个预测值Spi相减,得到当前差值di,量化器对di进行量化产生一个有符号的4位二进制编码值Ci。Ci为补码形式,最高位为符号位,表示正负,低三位才是真正的量化码,一共有23=8个量化级别,对应0~7。首先由di计算得到Ci的最高位:
d i &GreaterEqual; 0 &DoubleRightArrow; C i ( 3 ) = &prime; 0 &prime; d i < 0 &DoubleRightArrow; C i ( 3 ) = &prime; 1 &prime;
然后对di取绝对值,得到|di|,由|di|计算得到Ci的低三位Ci(2:0):
| d i | &le; 1 4 Q &DoubleRightArrow; C i ( 2 : 0 ) = &prime; &prime; 000 &prime; &prime; 1 4 Q < | d i | &le; 1 2 Q &DoubleRightArrow; C i ( 2 : 0 ) = &prime; &prime; 001 &prime; &prime; 1 2 Q < | d i | &le; 3 4 Q &DoubleRightArrow; C i ( 2 : 0 ) = &prime; &prime; 010 &prime; &prime; 3 4 Q < | d i | &le; Q &DoubleRightArrow; C i ( 2 : 0 ) = &prime; &prime; 011 &prime; &prime; Q < | d i | &le; 5 4 Q &DoubleRightArrow; C i ( 2 : 0 ) = &prime; &prime; 100 &prime; &prime; 5 4 Q < | d i | &le; 3 2 Q &DoubleRightArrow; C i ( 2 : 0 ) = &prime; &prime; 101 &prime; &prime; 3 2 Q < | d i | &le; 7 4 Q &DoubleRightArrow; C i ( 2 : 0 ) = &prime; &prime; 110 &prime; &prime; | d i | > 7 4 Q &DoubleRightArrow; C i ( 2 : 0 ) = &prime; &prime; 111 &prime; &prime;
步骤3:编码值Ci作为输入,通过预测器求出预测值更新值Sp。首先以编码值Ci的低三位Ci(2:0)为判定条件重构差值diff:
C i ( 2 : 0 ) = &prime; &prime; 000 &prime; &prime; &DoubleRightArrow; d i f f = 1 8 Q C i ( 2 : 0 ) = &prime; &prime; 001 &prime; &prime; &DoubleRightArrow; d i f f = 1 8 Q + 1 4 Q C i ( 2 : 0 ) = &prime; &prime; 010 &prime; &prime; &DoubleRightArrow; d i f f = 1 8 Q + 1 2 Q C i ( 2 : 0 ) = &prime; &prime; 011 &prime; &prime; &DoubleRightArrow; d i f f = 1 8 Q + 1 4 Q + 1 2 Q C i ( 2 : 0 ) = &prime; &prime; 100 &prime; &prime; &DoubleRightArrow; d i f f = 1 8 Q + Q C i ( 2 : 0 ) = &prime; &prime; 101 &prime; &prime; &DoubleRightArrow; d i f f = 1 8 Q + 1 4 Q + Q C i ( 2 : 0 ) = &prime; &prime; 110 &prime; &prime; &DoubleRightArrow; d i f f = 1 8 Q + 1 2 Q + Q C i ( 2 : 0 ) = &prime; &prime; 111 &prime; &prime; &DoubleRightArrow; d i f f = 1 8 Q + 1 4 Q + 1 2 Q + Q
然后由Ci的最高位Ci(3)计算得到预测值更新值Sp
C i ( 3 ) = &prime; 1 &prime; &DoubleRightArrow; S P = S P i - d i f f C i ( 3 ) = &prime; 0 &prime; &DoubleRightArrow; S P = S P i + d i f f
最后编码值Ci作为输入,通过自适应因子计算器求出自适应因子更新值Index:
步骤4:将ramp1和rams1的高有效写使能信号wep1和wes1置1,将预测值更新值Sp写入ramp1中的第n个存储单元,将自适应因子更新值Index写入rams1中的第n个存储单元,下一个时钟上升沿到来时,ram中的第n个存储单元数据由第i个更新为第i+1个,以便下一个循环的第n路使用。
步骤5:将ramp1和rams1的读写地址加1,同时wep1和wes1置0,使ram处于读状态,由此过程,下次操作将读取第n+1路所需的第i个预测值和自适应因子。至此,多路数据循环压缩模块完成一个压缩过程。重新返回步骤1,开始对第n+1路第i个数据进行压缩。
多路数据循环解压缩器模块
其实施按如附图2所示的设计架构完成,该架构中包括的模块及其结构实现关系为:
ramp2存储器:采用VHDL编写生成,数据宽度16bit,数据深度为4。其输入端与加法器的输出端相连,用于多路解压缩的预测值参数缓存,输出端与加法器的输入端相连,为加法器提供当前样本的预测值Spi。
rams2存储器:采用VHDL编写生成,数据宽度7bit,数据深度为4。其输入端与自适应因子计算器的输出端相连,用于多路解压缩的自适应因子参数缓存,输出端与逆量化器的输入端相连,为逆量化器提供当前样本数据处理所需要的参数自适应因子indexi。
逆量化器:从rams2读取当前自适应因子参数indexi,对编码值Ci的低三位Ci(2:0)进行差值重构:
C i ( 2 : 0 ) = &prime; &prime; 000 &prime; &prime; &DoubleRightArrow; d i f f = 1 8 Q C i ( 2 : 0 ) = &prime; &prime; 001 &prime; &prime; &DoubleRightArrow; d i f f = 1 8 Q + 1 4 Q C i ( 2 : 0 ) = &prime; &prime; 010 &prime; &prime; &DoubleRightArrow; d i f f = 1 8 Q + 1 2 Q C i ( 2 : 0 ) = &prime; &prime; 011 &prime; &prime; &DoubleRightArrow; d i f f = 1 8 Q + 1 4 Q + 1 2 Q C i ( 2 : 0 ) = &prime; &prime; 100 &prime; &prime; &DoubleRightArrow; d i f f = 1 8 Q + Q C i ( 2 : 0 ) = &prime; &prime; 101 &prime; &prime; &DoubleRightArrow; d i f f = 1 8 Q + 1 4 Q + Q C i ( 2 : 0 ) = &prime; &prime; 110 &prime; &prime; &DoubleRightArrow; d i f f = 1 8 Q + 1 2 Q + Q C i ( 2 : 0 ) = &prime; &prime; 111 &prime; &prime; &DoubleRightArrow; d i f f = 1 8 Q + 1 4 Q + 1 2 Q + Q
其中diff表示重构的差值,Q表示量化阶。
自适应因子计算器:编码值Ci作为输入,通过自适应因子计算器求出自适应因子更新值Index。
多路数据循环解压缩方法的实现原理,参考附图4。以对第n路数据进行第i次解压缩为例,步骤如下:
步骤1:从ramp2和rams2中读取所需的第n路第i个预测值Spi和自适应因子Indexi。
步骤2:逆量化器对编码值Ci的低三位进行差值重构,得到当前样本的解码输出值SRi。首先以编码值Ci的低三位Ci(2:0)为判定条件重构差值diff:
C i ( 2 : 0 ) = &prime; &prime; 000 &prime; &prime; &DoubleRightArrow; d i f f = 1 8 Q C i ( 2 : 0 ) = &prime; &prime; 001 &prime; &prime; &DoubleRightArrow; d i f f = 1 8 Q + 1 4 Q C i ( 2 : 0 ) = &prime; &prime; 010 &prime; &prime; &DoubleRightArrow; d i f f = 1 8 Q + 1 2 Q C i ( 2 : 0 ) = &prime; &prime; 011 &prime; &prime; &DoubleRightArrow; d i f f = 1 8 Q + 1 4 Q + 1 2 Q C i ( 2 : 0 ) = &prime; &prime; 100 &prime; &prime; &DoubleRightArrow; d i f f = 1 8 Q + Q C i ( 2 : 0 ) = &prime; &prime; 101 &prime; &prime; &DoubleRightArrow; d i f f = 1 8 Q + 1 4 Q + Q C i ( 2 : 0 ) = &prime; &prime; 110 &prime; &prime; &DoubleRightArrow; d i f f = 1 8 Q + 1 2 Q + Q C i ( 2 : 0 ) = &prime; &prime; 111 &prime; &prime; &DoubleRightArrow; d i f f = 1 8 Q + 1 4 Q + 1 2 Q + Q
然后由Ci的最高位Ci(3)计算得到解码输出SRi:
C i ( 3 ) = &prime; 1 &prime; &DoubleRightArrow; S R i = S P i - d i f f C i ( 3 ) = &prime; 0 &prime; &DoubleRightArrow; S R i = S P i + d i f f
由SP=SRi得到预测值更新值Sp
最后编码值Ci作为输入,通过自适应因子计算器求出自适应因子更新值Index:
步骤3:将ramp2和rams2的高有效写使能信号wep2和wes2置1,将预测值更新值Sp写入ramp2中的第n个存储单元,将自适应因子更新值Index写入rams2中的第n个存储单元,下一个时钟上升沿到来时,ram中的第n个存储单元数据由第i个更新为第i+1个,以便下一个循环的第n路使用。
步骤4:将ramp2和rams2的读写地址加1,同时wep2和wes2置0,使ram处于读状态,由此过程,下次操作将读取第n+1路所需的第i个预测值和自适应因子。至此,多路数据循环解压缩模块完成一个解压缩过程。重新返回步骤1,开始对第n+1路第i个数据进行解压缩。

Claims (4)

1.一种基于FPGA的多路循环数据压缩器,其特征在于包括ramp1存储器、rams1存储器、量化器、预测器、减法器和自适应因子计算器;
减法器:输入端为需要编码的数据和ramp1存储器的输出端;将输入值Si与ramp1存储器的输出值相减,其结果输出至与其相连的量化器;
量化器:输入端连接减法器和rams1存储器的输出端,输出端为压缩器的输出端,同时连接自适应因子计算器和预测器的输入端;从rams1存储器读取当前自适应因子参数indexi,对di进行量化产生一个有符号的4位二进制编码值Ci;
自适应因子计算器:输出端连接rams1存储器的输入端;编码值Ci作为输入,通过自适应因子计算器求出自适应因子更新值Index;
预测器:输出端连接ramp1存储器的输入端;编码值Ci作为输入,通过预测器求出预测值更新值Sp
ramp1存储器:输出端连接减法器的输入端;数据宽度16bit,用于多路压缩的预测值参数缓存,输出为减法器提供当前样本的预测值Spi;
rams1存储器:输出端连接量化器的输入端;数据宽度7bit,用于多路压缩的自适应因子参数缓存,输出为量化器提供当前样本数据处理所需要的参数自适应因子indexi。
2.一种采用权利要求1所述压缩器进行多路循环压缩编码的方法,其特征在于步骤如下:
步骤1:从存储器ramp1和存储器rams1中读取第n路第i个预测值Spi和自适应因子Indexi;
步骤2:将当前第i个输入值Si与第i个预测值Spi相减,得到当前差值di;对di进行量化产生一个有符号的4位二进制编码值Ci,
所述Ci为补码形式,最高位为符号位,表示正负,低三位为量化码,对应0~7;
步骤3:以编码值Ci的低三位Ci(2:0)为判定条件重构差值diff:
C i ( 2 : 0 ) = &prime; &prime; 000 &prime; &prime; &DoubleRightArrow; d i f f = 1 8 Q C i ( 2 : 0 ) = &prime; &prime; 001 &prime; &prime; &DoubleRightArrow; d i f f = 1 8 Q + 1 4 Q C i ( 2 : 0 ) = &prime; &prime; 010 &prime; &prime; &DoubleRightArrow; d i f f = 1 8 Q + 1 2 Q C i ( 2 : 0 ) = &prime; &prime; 011 &prime; &prime; &DoubleRightArrow; d i f f = 1 8 Q + 1 4 Q + 1 2 Q C i ( 2 : 0 ) = &prime; &prime; 100 &prime; &prime; &DoubleRightArrow; d i f f = 1 8 Q + Q C i ( 2 : 0 ) = &prime; &prime; 101 &prime; &prime; &DoubleRightArrow; d i f f = 1 8 Q + 1 4 Q + Q C i ( 2 : 0 ) = &prime; &prime; 110 &prime; &prime; &DoubleRightArrow; d i f f = 1 8 Q + 1 2 Q + Q C i ( 2 : 0 ) = &prime; &prime; 111 &prime; &prime; &DoubleRightArrow; d i f f = 1 8 Q + 1 4 Q + 1 2 Q + Q
然后由Ci的最高位Ci(3)计算得到预测值更新值Sp
C i ( 3 ) = &prime; 1 &prime; &DoubleRightArrow; S P = S P i - d i f f C i ( 3 ) = &prime; 0 &prime; &DoubleRightArrow; S P = S P i + d i f f
最后编码值Ci作为输入,通过自适应因子计算器求出自适应因子更新值Index:
步骤4:将ramp1和rams1的高有效写使能信号wep1和wes1置1,将预测值更新值Sp写入ramp1中的第n个存储单元,将自适应因子更新值Index写入rams1中的第n个存储单元,下一个时钟上升沿到来时,ram中的第n个存储单元数据由第i个更新为第i+1个,为下一个循环的第n路使用;
步骤5:将ramp1和rams1的读写地址加1,同时wep1和wes1置0,使ram处于读状态,多路数据循环压缩模块完成一个压缩过程;
重新返回步骤1,开始对第n+1路第i个数据进行压缩。
3.一种对权利要求1所述基于FPGA的多路循环数据压缩器得到的编码进行解码的多路数据循环解压缩器,其特征在于包括ramp2存储器、rams2存储器、逆量化器、自适应因子计算器和加法器;
逆量化器:输入端接收需要解码的编码数据,以及连接ramp2存储器的输出端,逆量化器的输出端连接加法器的输入端;从rams2存储器读取当前自适应因子参数,对编码值Ci的低三位进行差值重构;
自适应因子计算器:输入端接收需要解码的编码数据,输出端连接rams2存储器的输入端;编码值Ci作为输入,通过自适应因子计算器求出自适应因子更新值Index;
rams2存储器:输出端连接逆量化器的输入端;数据宽度7bit,用于多路解压缩的自适应因子参数缓存,输出为逆量化器提供当前样本数据处理所需要的参数自适应因子indexi;
ramp2存储器:输出端与加法器的输入端相连;数据宽度16bit,用于多路解压缩的预测值参数缓存,为加法器提供当前样本的预测值Spi。
4.一种采用权利要求3所述多路数据循环解压缩器进行多路循环解压缩编码的方法,其特征在于步骤如下:
步骤1:从ramp2和rams2中读取第n路第i个预测值Spi和自适应因子Indexi;
步骤2:首先以编码值Ci的低三位Ci(2:0)为判定条件重构差值diff:
C i ( 2 : 0 ) = &prime; &prime; 000 &prime; &prime; &DoubleRightArrow; d i f f = 1 8 Q C i ( 2 : 0 ) = &prime; &prime; 001 &prime; &prime; &DoubleRightArrow; d i f f = 1 8 Q + 1 4 Q C i ( 2 : 0 ) = &prime; &prime; 010 &prime; &prime; &DoubleRightArrow; d i f f = 1 8 Q + 1 2 Q C i ( 2 : 0 ) = &prime; &prime; 011 &prime; &prime; &DoubleRightArrow; d i f f = 1 8 Q + 1 4 Q + 1 2 Q C i ( 2 : 0 ) = &prime; &prime; 100 &prime; &prime; &DoubleRightArrow; d i f f = 1 8 Q + Q C i ( 2 : 0 ) = &prime; &prime; 101 &prime; &prime; &DoubleRightArrow; d i f f = 1 8 Q + 1 4 Q + Q C i ( 2 : 0 ) = &prime; &prime; 110 &prime; &prime; &DoubleRightArrow; d i f f = 1 8 Q + 1 2 Q + Q C i ( 2 : 0 ) = &prime; &prime; 111 &prime; &prime; &DoubleRightArrow; d i f f = 1 8 Q + 1 4 Q + 1 2 Q + Q
然后由Ci的最高位Ci(3)计算得到解码输出SRi:
C i ( 3 ) = &prime; 1 &prime; &DoubleRightArrow; S R i = S P i - d i f f C i ( 3 ) = &prime; 0 &prime; &DoubleRightArrow; S R i = S P i + d i f f
由SP=SRi得到预测值更新值Sp
最后编码值Ci作为输入,通过自适应因子计算器求出自适应因子更新值Index:
步骤3:将ramp2和rams2的高有效写使能信号wep2和wes2置1,将预测值更新值Sp写入ramp2中的第n个存储单元,将自适应因子更新值Index写入rams2中的第n个存储单元,下一个时钟上升沿到来时,ram中的第n个存储单元数据由第i个更新为第i+1个,为下一个循环的第n路使用;
步骤4:将ramp2和rams2的读写地址加1,同时wep2和wes2置0,使ram处于读状态,多路数据循环解压缩模块完成一个压缩过程;
重新返回步骤1,开始对第n+1路第i个数据进行解压缩。
CN201510353447.1A 2015-06-24 2015-06-24 基于fpga的多路循环数据压缩器和解压缩器以及方法 Active CN104967453B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510353447.1A CN104967453B (zh) 2015-06-24 2015-06-24 基于fpga的多路循环数据压缩器和解压缩器以及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510353447.1A CN104967453B (zh) 2015-06-24 2015-06-24 基于fpga的多路循环数据压缩器和解压缩器以及方法

Publications (2)

Publication Number Publication Date
CN104967453A true CN104967453A (zh) 2015-10-07
CN104967453B CN104967453B (zh) 2018-01-05

Family

ID=54221413

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510353447.1A Active CN104967453B (zh) 2015-06-24 2015-06-24 基于fpga的多路循环数据压缩器和解压缩器以及方法

Country Status (1)

Country Link
CN (1) CN104967453B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110175185A (zh) * 2019-04-17 2019-08-27 南京天数智芯科技有限公司 一种基于时序数据分布特征的自适应无损压缩方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1399472A (zh) * 2001-07-23 2003-02-26 三星电子株式会社 多信道图像编码装置及其编码方法
US20060034529A1 (en) * 2004-08-13 2006-02-16 Samsung Electronics Co., Ltd. Method and device for motion estimation and compensation for panorama image
CN102027746A (zh) * 2008-09-19 2011-04-20 株式会社Ntt都科摩 动态图像编码装置、动态图像解码装置、动态图像编码方法、动态图像解码方法、动态图像编码程序以及动态图像解码程序
CN104519354A (zh) * 2013-10-02 2015-04-15 瑞萨电子株式会社 视频编码器及其操作方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1399472A (zh) * 2001-07-23 2003-02-26 三星电子株式会社 多信道图像编码装置及其编码方法
US20060034529A1 (en) * 2004-08-13 2006-02-16 Samsung Electronics Co., Ltd. Method and device for motion estimation and compensation for panorama image
CN102027746A (zh) * 2008-09-19 2011-04-20 株式会社Ntt都科摩 动态图像编码装置、动态图像解码装置、动态图像编码方法、动态图像解码方法、动态图像编码程序以及动态图像解码程序
CN104519354A (zh) * 2013-10-02 2015-04-15 瑞萨电子株式会社 视频编码器及其操作方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110175185A (zh) * 2019-04-17 2019-08-27 南京天数智芯科技有限公司 一种基于时序数据分布特征的自适应无损压缩方法

Also Published As

Publication number Publication date
CN104967453B (zh) 2018-01-05

Similar Documents

Publication Publication Date Title
Blalock et al. Sprintz: Time series compression for the internet of things
CN103115789B (zh) 金属结构损伤剩余寿命的第二代小波支持向量机评估方法
CN102510287B (zh) 一种工业实时数据的快速压缩方法
CN106441871A (zh) 一种基于自适应共振稀疏分解理论的风电齿轮箱故障诊断方法
CN115987296B (zh) 基于霍夫曼编码的交通能源数据压缩传输方法
CN101669819B (zh) 基于pt变换与线性预测结合的心电图信号无损压缩方法
CN103346797A (zh) 一种用于齿轮故障信号的实时压缩方法
Kaur Design and Implementation of Lzw data compression algorithm
Yang et al. The surface damage identifications of wind turbine blades based on ResNet50 algorithm
CN104967453A (zh) 基于fpga的多路循环数据压缩器和解压缩器以及方法
CN105187071A (zh) 一种管道毫秒级在线数据的复合压缩/解压缩方法
Sriram et al. Deepcomp: A hybrid framework for data compression using attention coupled autoencoder
CN104579358B (zh) 一种故障录波数据压缩方法
Martins et al. A comparison of general-purpose FOSS compression techniques for efficient communication in cooperative multi-robot tasks
Zhan et al. Test data compression scheme based on variable-to-fixed-plus-variable-length coding
CN101173962A (zh) 针对示波器的波形压缩方法
Balakrishnan et al. Matrix-based test vector decompression using an embedded processor
CN112052937A (zh) 基于集成Jetson Nano域控制器运行神经网络的优化算法
Di et al. Layered lossless compression method of massive fault recording data
Feng et al. A test data compression method for system-on-a-chip
Ramalingam et al. Research Article Telemetry Data Compression Algorithm Using Balanced Recurrent Neural Network and Deep Learning
Qiu et al. Design of A Hybrid Compression Algorithm for High-fidelity Synchro-waveform Measurements
CN114069853B (zh) 基于分段符号表示的多能源荷数据在线压缩与重构方法
Liu et al. A versatile compression method for floating-point data stream
Chen et al. Early Fault Diagnosis of High Pressure Diaphragm Pump Check Valve Based on VMD-HMM

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20200714

Address after: Room 403, 4 / F, innovation and technology building, northwest Polytechnic University, 127 Youyi West Road, Beilin District, Xi'an City, Shaanxi Province 710072

Patentee after: Xi'an Guangjiao Zhichuang Electronic Technology Co., Ltd

Address before: 710072 Xi'an friendship West Road, Shaanxi, No. 127

Patentee before: Northwestern Polytechnical University

TR01 Transfer of patent right