0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

关于ARC算法的数据压缩技术和实现

电子工程师 来源:《电子技术应用》 作者:凌 伟 张会新 2021-04-27 17:22 次阅读

航天技术的发展,对遥测系统的性能要求越来越高。飞行器复杂程度的加大、测量参数种类的增多、数据量的增大、测量实时性的增强使传统有限传输信道容量的遥测系统面临巨大挑战。为此,可以通过采用数据压缩技术,有效地提高信道利用率,减少遥测数据的传输时间和存储空间,增强遥测数据的实时性和吞吐率。

设计的数据压缩器以FPGA为控制单元,用DSP实现数据压缩,可将6路模拟信号采集并压缩,再经长线发送至数据接收器。实现硬件模块化、功能软件化设计,依靠FPGA的并行执行特性,结合高速DSP通信,可靠地完成被测信号的采集、压缩功能。在保证系统可靠性的同时节省系统的开发成本,提高了系统的可重构性[1-2]。

1 数据压缩器的总体设计

数据压缩器基于FPGA和DSP的硬件平台,将待压缩的6路模拟信号经过调理后输入给A/D转换器进行量化,FPGA将量化结果写入其内部FIFO(First In First Out)缓存中。DSP通过判断FIFO的半满信号读取数据,并根据通道号把数据流分配到6个分组缓存区,当其中任一分组缓存区满2 KB时,就进行一次压缩,压缩后的数据被存入缓存器中。

当缓存器半满时,DSP将压缩后的数据串行发送至FPGA,FPGA根据接口的通信协议再把压缩数据发送给数据接收器,以保证压缩数据传输的实时性。压缩器的总体设计方案如图1所示[3-5]。

基于ARC算法的数据压缩技术和实现

2 硬件及实现原理

2.1 控制单元的选型

FPGA采用XILINX公司的低成本产品XC3S200AN。其包含丰富的Block RAM资源,可利用IP核建立内部FIFO,以便于数据缓存。XC3S200AN内部含有4 MB大小的Flash,可以存储FPGA程序。DSP是执行数据压缩的核心单元器件,选型时在考虑处理速度的同时,还要兼顾其与其他设备的接口匹配能力。选用TI公司的TMS320C6416高性能DSP,其CPU工作主频达到600 MHz,内含容量为1 MB的RAM内存,同时可通过外部存储器接口(EMIF)、多通道缓存串口(MCBSP)等外设接口与FPGA及存储器连接。

2.2 信号采集电路设计

设计要实现对6个通道的信号进行每通道30 kHz、8位分辨率的采样,相当于总采样率180 kHz。选用TI公司的16位、250 kS/s、6通道同步采样模数转换器ADS8365,能够满足要求[2]。为了保证模拟信号能被正确量化,先采用运算放大器OPA4340对信号进行电压跟随,再由FPGA控制ADS8365进行采样。

通过在FPGA内部建立FIR滤波器IP核对采集到的数据进行数字滤波,随后将其低13位并置3位通道编号发送给DSP。DSP工作频率通常能达到几百兆赫兹,但FPGA的工作频率仅为几十兆赫兹,所以FPGA要将数据先缓存在其内部FIFO,便于DSP读取[6-8]。信号调理电路如图2所示。

基于ARC算法的数据压缩技术和实现

2.3 DSP的通信接口设计

DSP从FPGA中读取采样数据进行压缩,再将压缩后数据发回FPGA,由FPGA进行编码后发送到数据接收器。由于数据压缩需要较大的处理空间,而DSP内部存储空间有限,为防止在数据压缩期间内采样数据和压缩结果因不能及时传送而丢失,故在数据输入、输出接口之间设计了缓存单元。采样数据输入缓存可用FPGA内部FIFO承担,考虑到FPGA内部RAM资源有限,仅能搭建容量较小的FIFO,而需要的是大容量数据输出缓存单元。

因此,设计中DSP的外部存储采用64 MB容量,能够缓存1 MB压缩数据,64位数据宽度的同步动态随机存储器(SDRAM)MT48LC2M32B2TG芯片。DSP在采集数据时的数据通信操作较复杂,如果按照外设的器件手册编程实现对其控制效率太低,而用DSP的外部存储器接口EMIFA可极大地简化操作过程,将采集数据FIFO映射到EMIFA的CE2空间;

将SDRAM映射到CE0空间,只需设置DSP的EMIFA相关寄存器参数即可实现数据通信。同样可通过设置DSP的MCBSP相关寄存器参数来完成压缩后数据的发送[9-11]。连接如图3所示。

3 逻辑控制

3.1 FPGA逻辑设计

压缩器中,FPGA作为控制单元,完成6路模拟信号采集的逻辑控制、数据传输控制以及与DSP的数据传输。如图4所示,FPGA逻辑功能可划分为4个模块,分别为信号采集模块、数据输入缓存模块、DSP通信模块和数据输出模块。其中数据输入、输出缓存模块的实现,可通过调用FPGA的IP核设置参数生成相应容量的FIFO来完成。

基于ARC算法的数据压缩技术和实现

3.2 DSP程序设计

DSP程序模块主要完成模拟信号的压缩处理。DSP的程序包括模拟数据的预处理、模拟数据的压缩以及与外部存储器的通信等。DSP程序流程图如图5所示[12-14]。

基于ARC算法的数据压缩技术和实现

TMS320C6416在上电启动或者复位后,DSP程序从Flash中加载并启动,完成系统的初始化以及各个参数的设置,然后进入主函数、初始化CSL函数库、MCBSP、可编程输入输出接口(GPIO)等相关中断寄存器和内部FIFO。当TMS320C6416检测到输入FIFO半满信号,DSP从输入FIFO中读取模拟信号的量化值,当SBUF中有待处理标志时,

DSP启动ARC编码开始数据压缩,ARC编码将返回压缩后的数据长度,如果压缩后的数据长度比压缩前的小,DSP将压缩后数据写入内部数据发送缓存器,反之则将压缩前的数据直接写入。同时DSP不断监测内部缓存的状态与外部输出FIFO中数据状态,当内部FIFO数据量大于512 B,同时外部FIFO不半满,DSP从内部FIFO取出数据启动MSBSP传输,将压缩后的数据发送到FPGA。

3.3 无损压缩算法及实现

通过试验,比较ARC、WINZIP、WINRAR、字典编码等常用的数据无损压缩算法的压缩结果。在压缩去除率、压缩速度以及稳定性等各方面综合分析后,最终采用ARC编码。ARC编码采用依次递推方式,对全序列连续编码。ARC算法不是依据每个信源符号单独映射后编码,而是将整个信号符号序列全部映射到实数轴上(0,1)区间内的一个子区间内,子区间长度等于该序列的概率。

当整个序列映射完毕,就可以用一个概率值表示,可以在子区间内选择一个有代表性的介于0和1之间的二进制小数作为实际的ARC编码输出,从而实现高效编码。例如,算术编码对某条输入信号序列的输出为1011001111,它表示小数0.101100111,即十进制数0.72。在VC中编译调试后,再将算法移植到DSP开发平台CCS3.3上继续编译直到通过[15-16]。

4 测试结果

数据压缩器地面测试台是专门用来对数据压缩器进行单元测试的,它可以完全地模拟数据压缩器在实际环境下的电气工作环境。地面测试台通过电缆传输到压缩器信号输入接口,压缩器采集处理完毕,把数据通过422接口回传到地面测试台,测试台将接收到的数据通过USB接口存储到计算机以便事后分析处理。测试系统结构图如图6所示。

对采集到的6组遥测信号利用ARC算法进行32 min无损压缩,测试得到162.8 MB的数据。可得压缩去除率为:

1-162.8 MB/(6×30 kHz×8 bit×32×60 s)=52.9%

压缩过程中SDRAM的最大占用比例为55%。通过MATLAB工具,对一路压缩前的原始数据和解压还原后数据进行频域分析,图7和图8分别为两者的幅频特性图,横轴为频率值,纵轴为幅值。实测噪声的主要频率分布在1~2 kHz的范围内,解压后,由于前端滤波器的作用,频率大于10 kHz的部分基本被滤掉,但数据主要成分基本保持下来,能比较真实地反映数据的实际分布情况。

通过对比,可以看出原始数据与解压后数据具有一致性,压缩器的压缩性能良好,可以较好地完成数据压缩任务,而且在设计指标上考虑了一定冗余量,提高了压缩装置的可靠性,减轻遥测系统的传输带宽压力。

基于ARC算法的数据压缩技术和实现

为有效降低遥测速变数据单信道容量,从而在有限的带宽中增加更多的测试通道和测试参数,提高带宽利用率,通过对压缩机理的研究、压缩算法的比较及相关硬件的设计,总体上实现了遥测噪声数据的无损压缩。通过单元测试,充分验证了所设计的遥测噪声数据无损压缩装置的正确性与可靠性。数据无损压缩对当前许多应用领域都产生了深远的影响,特别是在航天遥测领域,意义重大。

针对目前的研究情况,进一步需改进的问题包括:(1)数据采集部分可以在现有遥测噪声数据采集的基础上,结合FPGA的高性能和AD器件的更新,增加提高数据采集路数,提高采集速率和精度。(2)优化ARC编码方式。可以结合其他的算法,实现算法自适应以增强数据处理适应能力,进一步提高压缩器性能。(3)推广技术的使用范围,比如应用在数据采编、存储等各个领域,以节省数据存储容量开销。

编辑:jq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • USB接口
    +关注

    关注

    9

    文章

    699

    浏览量

    55569
  • 数据
    +关注

    关注

    8

    文章

    6867

    浏览量

    88800
  • ARC
    ARC
    +关注

    关注

    0

    文章

    42

    浏览量

    16458
  • 压缩器
    +关注

    关注

    0

    文章

    26

    浏览量

    7738
收藏 人收藏

    评论

    相关推荐

    【BearPi-Pico H3863星闪开发板体验连载】LZO压缩算法移植

    压缩算法,全称为Lempel-Ziv-Oberhumer算法,是一种无损数据压缩技术,以其快速的压缩
    发表于 11-10 21:45

    PolarDB-MySQL引擎层的索引前缀压缩能力的技术实现和效果

    在 PolarDB 中, 通过轻量级压缩实现, 可以实现减少数据大小的同时, 性能有一定程度的提升. 如何实现的呢? 背景 近几年互联网行
    的头像 发表于 11-09 09:34 114次阅读
    PolarDB-MySQL引擎层的索引前缀<b class='flag-5'>压缩</b>能力的<b class='flag-5'>技术</b><b class='flag-5'>实现</b>和效果

    压缩算法的类型和应用

    压缩算法是一种通过减少数据量来节省存储空间或传输数据技术压缩
    的头像 发表于 10-21 13:50 182次阅读

    Huffman压缩算法概述和详细流程

    Huffman压缩算法是一种基于字符出现频率的编码算法,通过构建Huffman树,将出现频率高的字符用短编码表示,出现频率低的字符用长编码表示,从而实现
    的头像 发表于 10-21 13:48 173次阅读

    使用qboot时选择了压缩率更高的zip算法,但是发现编译报错,为什么?

    在使用qboot时选择了压缩率更高的zip算法,但是发现编译报错,如下图:
    发表于 09-26 07:22

    ECU刷写流程之压缩刷写技术解析

    在现代汽车电子技术中,ECU(电子控制单元)的软件升级是一项关键任务。为了提高数据传输的效率和安全性,压缩刷写技术应运而生。通过数据压缩传输
    的头像 发表于 05-16 08:24 582次阅读
    ECU刷写流程之<b class='flag-5'>压缩</b>刷写<b class='flag-5'>技术</b>解析

    华为云GaussDB数据库基础版发布:旗舰性能、价格下降超60%

    高性价比:相比企业版,华为云 GaussDB 基础版价格大幅下调(降幅达 60%-70%),且支持全场景数据压缩,具有“超高压缩比”,性能影响仅为 5%-10%,存储成本降低 50%。
    的头像 发表于 05-07 14:21 568次阅读

    【RTC程序设计:实时音视频权威指南】音视频的编解码压缩技术

    。 图像压缩技术是通过减少图像数据的存储空间来实现图像压缩的过程,早期主要依赖于无损压缩
    发表于 04-28 21:04

    FPGA压缩算法有哪些

    在图像压缩算法中可以采用哈夫曼编码的方式对编码冗余的信息进行压缩,可以采用预测的方式来减少像素间冗余,可以采用量化的方式完成心理视觉冗余信息的去除
    的头像 发表于 04-15 11:48 567次阅读
    FPGA<b class='flag-5'>压缩</b><b class='flag-5'>算法</b>有哪些

    Python压缩和解压缩实现代码分享

    压缩和解压缩是日常常用的操作,不管是windows上图形界面的操作,还是linux上用命令来进行压缩压缩,总的而言都还是比较方便的。
    的头像 发表于 04-11 11:28 992次阅读

    基于门控线性网络(GLN)的高压缩比无损医学图像压缩算法

    实现基于门控线性网络(GLN)的高压缩比无损医学图像压缩算法,以提高医学图像存储和分发系统的效率。与“传统”的基于上下文的数据压缩
    的头像 发表于 04-08 10:29 611次阅读
    基于门控线性网络(GLN)的高<b class='flag-5'>压缩</b>比无损医学图像<b class='flag-5'>压缩</b><b class='flag-5'>算法</b>

    NanoEdge AI的技术原理、应用场景及优势

    是指将数据处理任务从云端迁移到离数据源更近的设备上,以实现更快的响应时间和更低的延迟。神经网络压缩技术则通过减少模型参数和计算量来降低设备的
    发表于 03-12 08:09

    高性能无损数据压缩FPGA IP,LZO无损数据压缩IP

    LZOAccel-D是一个无损数据压缩引擎的FPGA硬件实现,兼容LZO 2.10标准。 Core接收压缩的输入数据块,产生解
    的头像 发表于 02-25 09:59 283次阅读
    高性能无损<b class='flag-5'>数据</b>解<b class='flag-5'>压缩</b>FPGA IP,LZO无损<b class='flag-5'>数据</b>解<b class='flag-5'>压缩</b>IP

    高性能无损数据压缩FPGA IP,LZO无损数据压缩IP

    LZOAccel-C是一个无损数据压缩引擎的FPGA硬件实现,兼容LZO 2.10标准。 Core接收未压缩的输入数据块,产生压缩后的
    的头像 发表于 01-25 13:39 442次阅读
    高性能无损<b class='flag-5'>数据压缩</b>FPGA IP,LZO无损<b class='flag-5'>数据压缩</b>IP

    如何将sigmastudio的compressor压缩限幅参数换算成DSP的设置值?

    压缩曲线各点参数换算不尽相同,标准compressor(-90~6dB)与扩展compressor(-135~24dB)的压缩曲线各点参数换算也不尽相同?有什么算法可以准确换算出来,实现
    发表于 11-29 06:43