CN102843142A - 可编程逻辑器件配置数据流压缩、解压缩处理方法及系统 - Google Patents

可编程逻辑器件配置数据流压缩、解压缩处理方法及系统 Download PDF

Info

Publication number
CN102843142A
CN102843142A CN2011101710822A CN201110171082A CN102843142A CN 102843142 A CN102843142 A CN 102843142A CN 2011101710822 A CN2011101710822 A CN 2011101710822A CN 201110171082 A CN201110171082 A CN 201110171082A CN 102843142 A CN102843142 A CN 102843142A
Authority
CN
China
Prior art keywords
frame
data
decompression
continuous
unit
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
CN2011101710822A
Other languages
English (en)
Other versions
CN102843142B (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.)
GUOWEI ELECTRONICS CO Ltd SHENZHEN
Original Assignee
GUOWEI ELECTRONICS CO Ltd SHENZHEN
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 GUOWEI ELECTRONICS CO Ltd SHENZHEN filed Critical GUOWEI ELECTRONICS CO Ltd SHENZHEN
Priority to CN 201110171082 priority Critical patent/CN102843142B/zh
Priority to PCT/CN2011/080428 priority patent/WO2012174807A1/zh
Publication of CN102843142A publication Critical patent/CN102843142A/zh
Application granted granted Critical
Publication of CN102843142B publication Critical patent/CN102843142B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

本发明公开一种可编程逻辑器件配置数据流的压缩、解压缩处理方法及系统,压缩方法包括获取所述配置数据流中待压缩处理的数据帧,对所述待压缩处理的数据帧内部的数据单元进行压缩处理。本发明通过以上技术方案,提供一种更加高效的可编程逻辑器件配置数据流的压缩、解压缩处理方法及系统。

Description

可编程逻辑器件配置数据流压缩、解压缩处理方法及系统
技术领域
本发明涉及数据处理领域,尤其涉及一种可编程逻辑器件的配置数据流的压缩、解压缩处理方法及系统。
背景技术
传统的可编程逻辑器件(programmable logic device,PLD),比如现场可编程门阵列FPGA(Field Program Gate Array)是通过相应的配置数据流进行配置的,配置数据流被下载到可编程逻辑器件,然后存储在配置存储单元中,最后根据配置存储单元的内容对可编程逻辑器件进行相应的配置,从而将可编程逻辑器件构造成用户预设的特定功能的器件。
通常情况下,一个设计文件中所包含的配置数据位有上百万个甚至更多,这就需要很大的外部存储器来存储配置数据流,同时配置数据流的下载操作也会相应地花费很多时间。因此,为了节省存储空间和节约下载时间,压缩配置数据流是一个很有效的技术措施。
压缩一般分为有损压缩和无损压缩。,其中一个著名的的最常用的无损压缩算法是基于字典的LZ(根据原始提出人Lempel-Ziv命名)系列。传统的FPGA开发商采用的基本上都是基于LZ的压缩算法,LZ压缩算法主要是针对字符串或者数据串(以下简称串)的压缩,如在一个缓冲器buffer中保存最新的被压缩的数据流,当有数据输入时,LZ算法就查找输入数据与缓冲器的数据的匹配性,找出最长的匹配数据,然后就输出一段编码来代替匹配的数据,编码由三部分组成,包括匹配数据串的位置,长度和紧接着匹配数据串的最后一位的字符或者数据。传统的部分FPGA是以帧frame为单位进行配置,以帧为单位进行压缩,即帧外部的压缩。图1为现有技术一种FPGA的示意图,包括FPGA11、可编程逻辑单元12和帧13,FPGA11表示FPGA的一种结构,里面的每一个虚线条表示一帧(虚线条的数目不代表任何含义,此处只是一种示意图),FPGA通过一帧一帧地完成配置。一帧数据又会包含若干个比特或字段,根据FPGA类型和容量的不同,其包含的比特或字段个数也不同,假设一帧数据包含的字段个数为m,相应的位数为32*m;再用大写字母W加上下脚标来表示帧内部字段及其顺序,如图2所示,图2为现有技术一种FPGA中帧结构的示意图,用W0表示第一个字,W1表示第二个字,以此类推,最后一个字用Wm-1来表示,通常当一帧数据包含的字段个数为m时,就说这个帧的长度为m。
传统的帧外部进行压缩的方法在一定程度上考虑了FPGA本身的结构特征和编程特点,但是没有考虑到帧内部的数据特征,因此传统的帧外部基于帧单元进行压缩的方法存在一定的局限性,效率较低。
发明内容
本发明提供一种更加高效的可编程逻辑器件的配置数据流的压缩、解压缩处理方法及系统。
为解决上述技术问题,本发明采用以下技术方案:
一种可编程逻辑器件的配置数据流的压缩处理方法,包括:
获取所述配置数据流中待压缩处理的数据帧;
对所述待压缩处理的数据帧内部的数据单元进行压缩处理。
所述数据单元包括一个或多个比特值,或者所述数据单元包括一个或多个字段值。
对所述待压缩处理的数据帧内部的数据单元进行压缩处理后得到参考值和命令单元。
对所述待压缩处理的数据帧内部的数据单元进行压缩处理后得到参考值和命令单元的过程具体为:
将由统计得出的帧内部连续且相同的数据单元的数目与一预设值比较,判断所述连续且相同的数据单元的数目是否大于或等于所述预设值;
如果是,对所述连续且相同的多个数据单元进行处理后得到的命令单元包括用于表示压缩类型的命令类型信息、用于表示所述连续且相同的多个数据单元位于帧内部的地址信息和用于表示所述连续且相同的多个数据单元的数目信息;
如果否,对所述连续且相同的多个数据单元或1个数据单元进行处理后得到的命令单元包括用于表示非压缩类型的命令类型信息、用于表示所述连续且相同的多个数据单元或1个数据单元位于帧内部的地址信息和用于表示所述连续且相同的多个数据单元或1个数据单元的数目信息。
所述预设值为大于或等于3的整数。
还包括:
对所述配置数据流中的帧单元进行压缩处理。
一种可编程逻辑器件的配置数据流的解压缩处理方法,包括:
获取所述配置数据流中待解压缩处理的数据帧;
对所述待解压缩处理的数据帧内部的数据单元进行解压缩处理。
对所述待解压缩处理的数据帧内部的数据单元进行解压缩处理的过程具体为:
获取所述待解压缩处理的数据帧内部的命令单元和参考值;
根据所述命令单元和参考值对所述待解压缩处理的数据帧内部的数据单元进行解压缩处理。
根据所述命令单元和参考值对所述待解压缩处理的数据帧内部的数据单元进行解压缩处理的过程具体为:
获取所述命令单元中的命令类型信息;
如果所述命令单元中的命令类型信息为压缩类型,则根据所述命令单元中用于表示所述连续且相同的多个数据单元位于帧内部的地址信息和用于表示所述连续且相同的多个数据单元的数目信息,将所述参考值复制到帧内的相应地址上;
如果所述命令单元中的命令类型信息为非压缩类型,则根据所述命令单元中用于表示所述连续且相同的多个数据单元或1个数据单元位于帧内部的地址信息和用于表示所述连续且相同的多个数据单元或1个数据单元的数目信息,将所述参考值复制到帧内的相应地址上。
还包括:
对所述配置数据流中的帧单元进行解压缩处理。
一种可编程逻辑器件的配置数据流的压缩处理系统,包括待压缩处理数据获取模块和第一压缩处理模块,其中,
所述待压缩处理数据获取模块用于获取所述配置数据流中待压缩处理的数据帧;
所述第一压缩处理模块用于对所述待压缩处理的数据帧内部的数据单元进行压缩处理。
所述第一压缩处理模块用于对所述待压缩处理的数据帧内部的数据单元进行压缩处理后得到参考值和命令单元。
所述第一压缩处理模块具体用于:将由统计得出的帧内部连续且相同的数据单元的数目与一预设值比较,判断所述连续且相同的数据单元的数目是否大于或等于所述预设值;如果是,则对所述连续且相同的多个数据单元进行处理后得到的命令单元包括用于表示压缩类型的命令类型信息、用于表示所述连续且相同的多个数据单元位于帧内部的地址信息和用于表示所述连续且相同的多个数据单元的数目信息;如果否,对所述连续且相同的多个数据单元或1个数据单元进行处理得到的命令单元包括用于表示非压缩类型的命令类型信息、用于表示所述连续且相同的多个数据单元或1个数据单元位于帧内部的地址信息和用于表示所述连续且相同的多个数据单元或1个数据单元的数目信息。
还包括第二压缩处理模块,所述第二压缩处理模块用于对所述配置数据流中的帧单元进行压缩处理。
一种可编程逻辑器件的配置数据流的解压缩处理系统,包括待解压缩处理数据获取模块和第一解压缩模块,其中:
所述待解压缩处理数据获取模块用于获取所述配置数据流中待解压缩处理的数据帧;
所述第一解压缩模块用于对所述待解压缩数据帧内部的数据单元进行解压缩处理。
所述第一解压缩模块具体用于获取所述待解压缩处理的数据帧内部的命令单元和参考值;根据所述命令单元和参考值对所述待解压缩处理的数据帧内部的数据单元进行解压缩处理。
所述第一解压缩模块具体用于获取所述命令单元中的命令类型信息;如果所述命令单元中的命令类型信息为压缩类型,则根据所述命令单元中用于表示所述连续且相同的多个数据单元位于帧内部的地址信息和用于表示所述连续且相同的多个数据单元的数目信息,将所述参考值复制到帧内的相应地址上;如果所述命令单元中的命令类型信息为非压缩类型,则根据所述命令单元中用于表示所述连续且相同的多个数据单元或1个数据单元位于帧内部的地址信息和用于表示所述连续且相同的多个数据单元或1个数据单元的数目信息,将所述参考值复制到帧内的相应地址上。
还包括第二解压缩模块,所述第二解压缩模块用于对所述配置数据流中的帧单元进行解压缩处理。
本发明提供一种可编程逻辑器件的配置数据流的压缩、解压缩处理方法及系统,压缩方法中包括对待压缩处理的数据帧内部的数据单元进行压缩处理,通过对帧内部的数据单元进行压缩,提高压缩效率,本发明还可以通过设置预设值,针对数据帧或帧内部数据单元的特点,选择最佳的压缩比,因此,还具有很强的灵活性。
附图说明
图1为现有技术一种FPGA的示意图;
图2为现有技术一种FPGA中帧结构的示意图;
图3为本发明实施例一种可编程逻辑器件的配置数据流压缩处理方法的流程图;
图4为本发明实施例一种可编程逻辑器件的配置数据流压缩处理方法中帧内部压缩方法的流程图;
图5为本发明实施例对数目大于或等于该预设值的连续且相同的多个数据单元进行处理后得到的命令单元的结构示意图;
图6为本发明实施例对数目小于该预设值的连续且相同的多个或1个数据单元进行处理后得到的命令单元的结构示意图;
图7为本发明实施例一种可编程逻辑器件的配置数据流压缩处理方法中帧内部压缩数据的示意图;
图8为本发明实施例一种可编程逻辑器件的配置数据流解压缩处理方法的流程图;
图9为本发明实施例一种可编程逻辑器件的配置数据流解压缩处理方法中帧内部解压缩数据的示意图;
图10为本发明实施例一种可编程逻辑器件的配置数据流压缩处理系统的模块图;
图11为本发明另一实施例一种可编程逻辑器件的配置数据流压缩处理系统的模块图;
图12本发明实施例一种可编程逻辑器件的配置数据流解压缩处理系统的模块图;
图13本发明另一实施例一种可编程逻辑器件的配置数据流解压缩处理系统的模块图。
具体实施方式
下面通过具体实施方式结合附图对本发明作进一步详细说明。
一种可编程逻辑器件的配置数据流的压缩处理方法,包括:
获取所述配置数据流中待压缩处理的数据帧;
对所述待压缩处理的数据帧内部的数据单元进行压缩处理。
图3为本发明实施例一种可编程逻辑器件的配置数据流压缩处理方法的流程图,请参考图3,本实施例以FPGA配置数据流的压缩方法为例:
S31、利用设计文件产生数据流;
S32、判断是否可以进行帧外部基于帧单元的压缩处理,若是,则执行步骤S33,否则执行步骤S34;
S33、对数据流进行帧外部基于帧单元的压缩处理,帧外部帧单元的压缩结束后,执行S34;
S34、对数据流进行帧内部基于帧内部数据单元的压缩处理;
S35、将压缩结果存储到压缩数据流存储器中。
本实施例优选的是先进行帧外部压缩,再进行帧内部压缩,本发明还适用于先进行帧内部压缩,再进行帧外部压缩的方法。
其中步骤S34对数据流进行帧内部压缩的具体过程包括:
将由统计得出的帧内部连续且相同的数据单元的数目与一预设值比较,判断该连续且相同的数据单元的数目是否大于或等于所述预设值;如果是,则判断结果为满足压缩条件,对满足压缩条件的连续且相同的多个数据单元进行压缩处理。
根据数据流中的数据类型不同,数据单元可以是比特值或字段值或其他,其压缩和解压缩方法相类似。本发明不局限于以一个比特值或一个字段值为数据单元进行压缩,还可以以多个比特值或多个字段值为一个数据单元进行压缩,预设值为大于或等于3的整数。
图4为本发明实施例一种可编程逻辑器件的配置数据流压缩处理方法中帧内部压缩方法的流程图,请参考图4,本实施例中一个数据单元为帧内的一个字段值:
S341、将数据流加载到缓冲器A中,优选的,缓冲器A的大小比一帧的配置数据长度多出一位,用作标志位,优选的标志位为缓冲器A的第一位;
S342、判断数据流是否进行过帧外部基于帧单元的压缩处理,本实施例可以通过帧外部基于帧单元的压缩处理后,帧所附带的帧压缩命令或者其他标志来判断,若是,则执行S343,否则执行S344;
S343、在步骤S341中缓冲器A所预留的标志位,即缓冲器A的第一位上写进“1”标志,执行S345;
S344、在步骤S341中缓冲器A所预留的标志位,即缓冲器A的第一位上写进“0”标志,执行S345;
S345、将缓冲器A中的数据流复制到同样大小的缓冲器B中,复制完之后缓冲器A继续接收新的数据流,缓冲器B除了第一位之外,其他的都是经过编址的,其中基本的编址单元是一个字段,即32位为一个编址单位,比如:缓冲器B大小为106×32位(bits),有106个字段,对每个字段进行编址,地址是1-106,用二进制表示是00000001-01101010,用十六进制表示是00-6A;
S346、以一个字段值为一个数据单位,处理的顺序按照缓冲器B的地址由低到高来进行,依次处理每一个字段,统计连续且相同的该字段值的数目,将其与一预设值比较,判断连续且相同的该字段值的数目是否大于或等于该预设值,如果是,则执行S347,否则,执行S348;
S347、对数目大于或等于该预设值的连续且相同多个字段值进行处理后得到以下形式:命令单元+参考值。其中命令单元包括用于表示压缩类型的命令类型信息、用于表示所述连续且相同的多个字段值位于帧内部的地址信息和用于表示所述连续且相同的多个字段值的数目信息,执行S349;
图5为本发明实施例对数目大于或等于该预设值的连续且相同的多个数据单元进行处理后得到的命令单元的结构示意图,请参考图5,本实施例的命令单元为命令字段,这个命令字段的宽度可以是32bit,其中第一部分内容用于表示压缩类型的命令类型信息,可以用1个二进制位“0”来标识,表示该命令类型的为压缩类型,第二部分内容用于表示所述连续且相同的多个字段值位于帧内部的地址信息,地址信息指一帧数据内每个字段所在的顺序或者编号,也可以是这些被压缩的连续且相同的多个字段值中的第一个字段值的地址信息,由于这些字段是连续的,因此知道第一个字段的地址信息之后,可以推算其他字段的地址信息;第三部分内容用于表示所述连续且相同的多个字段值的数目信息。
S348、对数目小于该预设值的连续且相同多个字段值或1个字段值进行处理后得到以下形式:命令单元+参考值,命令单元包括用于表示非压缩类型的命令类型信息、用于表示所述连续且相同的多个数据单元或1个数据单元位于帧内部的地址信息和用于表示所述连续且相同的多个数据单元或1个数据单元的数目信息,执行S349;
图6为本发明实施例对数目小于该预设值的连续且相同的多个或1个数据单元进行处理后得到的命令单元的结构示意图,请参考图6,本实施例的命令单元为命令字段,这个命令字的宽度可以是32bit,其结构、格式和含义类似于上述对数目大于或等于预设值的连续且相同的多个数据单元进行压缩处理后得到的命令单元,其中第一部分内容用于表示非压缩类型,最高位,即第31位用1个二进制位“1”来标识,表示该命令类型为非压缩类型,第二部分内容用于表示数目小于该预设值的连续且相同的多个字段值或1个字段值位于帧内部的地址信息,地址信息指一帧数据内每个字段所在的顺序或者编号,也可以是这些字段中第一个字段的地址信息,由于这些字段是连续的,因此,知道第一个字段的地址信息之后,可以推算其他字段的地址信息;第三部分内容用于表示所述连续且相同的多个字段值或1个字段值的数目信息。
图7为本发明实施例一种可编程逻辑器件的配置数据流压缩处理方法中帧内部压缩数据的示意图,请参考图7,假设一帧数据的长度m=106,根据命令字段的定义,其地址编码从0000到0069,指向相应的字段,而每个字段的内容也被数据填满了,这里的地址和字段值都是用十六进制表示,字段值的省略部分表示相同的若干个字段值,而地址的省略部分表示递增的若干个地址值,第0个字段值为:0000_0000;第1个字段值到第15个字段值相同,为1111_1111;第16个字段值到第20字段值分别为:2222_2222,3333_3333,4444_4444,4444_4444,5555_5555;第21个字段值到第102个字段值相同,为6666_6666;第103个字段值到105个字段值分别为:7777_7777,6666_6666,6666_6666,假设预设值为10,假设本实施例对数目大于或等于预设值的连续且相同的多个字段值进行压缩处理后得到的命令单元为CMD1,对数目小于预设值的连续且相同的多个或1个字段值进行处理得到的命令单元为CMD2,则处理过程为:由于第0个字段值的数目为1,所以将其处理为CMD2,0000_0000,即命令单元和参考值,参考值为该字段值本身,第1个字段值到第15个字段值连续且相同,连续且相同的字段值的数目为15,大于预设值,所以将其压缩为:CMD1,1111_1111,即命令单元和参考值,参考值为该字段值本身,同理,剩下的字段值分别处理为:CMD2,2222_2222,3333_3333,4444_4444,4444_4444,5555_5555;CMD1,6666_6666;CMD2,7777_7777,6666_6666,6666_6666。
具体化CMD1和CMD2,就可以得到:8000_0001,0000_0000,0002_000E,1111_1111,8010_0005,2222_2222,3333_3333,4444_4444,4444_4444,5555_5555,0015_0056,6666_6666,8067_0003,7777_7777,6666_6666,6666_6666。
在这个实施例中,可以将一帧的106个字段压缩成16个字段,提高了数据压缩的效率。
数目小于预设值的多个连续且相同的数据单元,即当连续且相同的数据单元的数目为大于或等于2的整数,且该数目小于预设值,这种情况其命令单元包括用于表示非压缩类型的命令类型信息、用于表示所述连续且相同的多个数据单元位于帧内部的地址信息和用于表示所述连续且相同的多个数据单元的数目信息,其中,用于表示所述连续且相同的多个数据单元位于帧内部的地址信息包括各个数据单元位于帧内部的地址信息,或者是这些相同数据单元中的第一个数据单元位于帧内部的地址信息,用于表示所述连续且相同的多个数据单元的数目信息为这些相同数据单元的数目,如图7中的第18个字段值和第19字段值:4444_4444,4444_4444;数目小于预设值的1个数据单元,即连续且相同的数据单元的数目为1,且该数目小于预设值,这种情况其命令单元包括用于表示非压缩类型的命令类型信息、用于表示该数据单元位于帧内部的地址信息和用于表示该数据单元的数目信息,其中该数据单元的数目信息为1,如图7中的第16个字段2222_2222,第17字段3333_3333。
S349、将步骤S347和S348的处理结果放到缓冲器C中,直到缓冲器B的数据完全被处理,再将缓冲器C的内容输出。
本实施例通过命令单元中的命令类型信息,即用于表示压缩类型的命令类型信息和用于表示非压缩类型的命令类型信息,在解压缩时可以通过识别命令单元中的命令类型信息,方便地区分经过帧内部压缩和未经过帧内部压缩的数据,优先的,在解压缩时利用现有的技术,只需增加两根译码线,就可以区分经过帧内部压缩和未经过帧内部压缩的数据。
本实施例还包括一种数据解压缩处理方法,图8为本发明实施例一种可编程逻辑器件的配置数据流解压缩处理方法的流程图,请参考图8:
S81、获取待解压缩处理的数据流,放入缓冲器D中;
S82、对数据帧进行解析,判断是否经过帧内部数据单元的压缩处理,若是,则执行S83,否则执行步骤S84;
S83、对帧内部的数据单元进行解压缩处理,结束帧内部解压缩处理之后,执行S84;
S84、将经过帧内部解压缩处理和未经过帧内部解压缩处理的数据帧放入缓冲器D中,并检测缓冲器D中第一位的值是否为“1”,若是则执行S85,否则执行S86;
S85、进行帧外部基于帧单元的解压缩处理,执行S87;
S86、不进行帧外部基于帧单元的解压缩处理,执行S87;
S87、将步骤S85和S86得到的数据流下载到FPGA中;
本实施例优选的是先进行帧内部解压缩,再进行帧外部解压缩,本发明还适用于先进行帧外部解压缩,再进行帧内部解压缩的方法。
图9为本发明实施例一种可编程逻辑器件的配置数据流解压缩处理方法中帧内部解压缩数据的示意图,请参考图9,比如接收到的经过帧内部压缩的一帧数据如下:
8000_0001,0000_0000,0002_000E,1111_1111,8010_0005,2222_2222,3333_3333,4444_4444,4444_4444,5555_5555,0015_0056,6666_6666,8067_0003,7777_7777,6666_6666,6666_6666。
其中8000_0001、8010_0005和8067_0003为CMD2,0002_000E和0015_0056为CMD1。
当接收到8000_0001时,就通知解压电路直接将0000_0000放到缓冲器D相应的地址上,接收到0002_000E时,就通知解压电路接下来要对连续的多个相同字段进行解压缩操作,紧接着根据0002_000E中用于表示该多个相同字段位于帧内部的地址信息和用于表示该多个相同字段的数目信息,将相应数目的1111_1111复制到帧内的相应地址上,接下来的解压缩操作依次类推,得到一帧数据:第0个字段值为0000_0000;第1个字段值到第15个字段值数据相同,为1111_1111;第16个字段值到第20个字段值分别为:2222_2222,3333_3333,4444_4444,4444_4444,5555_5555;第21个字段值到第102个字段值相同,为6666_6666;第103个字段值到第105个字段值分别为7777_7777,6666_6666,6666_6666。
目前业界典型的一种FPGA配置数据流文件压缩方法是Xilinx公司XC2V40器件采用的帧外部基于帧单元的压缩处理方法,本实施例采用ISE10.1开发工具,用Verilog HDL作为设计的输入文件,通过ISE10.1生成标准配置流文件,将生成的标准配置流文件用ISE10.1自带的帧外部基于帧单元的压缩算法进行压缩,获得压缩后的第一压缩数据流文件;另外将ISE10.1生成的XC2V40配置数据流文件在采用ISE10.1自带的帧外部基于帧单元的压缩算法进行压缩的基础上,再采用本发明帧内部数据单元的压缩方法进行压缩,获得压缩后的第二压缩数据流文件,由上述两种压缩方法获得的压缩数据流文件的文件大小如表1所示:
表1
Figure BDA0000070638220000131
分别计算采用上述两种压缩方法所得到的压缩数据流文件的压缩比如表2所示,压缩比指的是:用压缩后的文件大小除以原文件的大小所得结果的百分比。
表2
Figure BDA0000070638220000132
Figure BDA0000070638220000141
其中压缩比提高幅度指的是:将第一压缩数据流文件的大小减去第二压缩数据流文件的大小,再将所得到的结果除以第一压缩数据流文件的大小,所得到的百分比。
由表2对比数据可见,本发明将传统的帧外部基于帧单元的压缩方法和帧内部的压缩方法相结合所获得的压缩比,比单独使用基于帧单元的压缩方法所获得的压缩比,平均提高了42.81%。因此,本发明提出的压缩方法可以大幅度的提高FPGA配置流文件的压缩性能。
本实施例还包括一种数据压缩处理系统,图10为本发明实施例一种可编程逻辑器件的配置数据流压缩处理系统的模块图,请参考图10:
一种数据压缩处理系统包括待压缩处理数据获取模块101和第一压缩处理模块102,待压缩处理数据获取模块101用于获取配置数据流中待压缩处理的数据帧,第一压缩处理模块102用于对所述待压缩处理的数据帧内部的数据单元进行压缩处理。
进一步,第一压缩处理模块102用于对所述待压缩处理的数据帧内部的数据单元进行压缩处理后得到参考值和命令单元。
进一步,第一压缩处理模块102具体用于将由统计得出的帧内部连续且相同的数据单元的数目与一预设值比较,判断所述连续且相同的数据单元的数目是否大于或等于所述预设值;如果是,则对所述连续且相同的多个数据单元进行处理后得到的命令单元包括用于表示压缩类型的命令类型信息、用于表示所述连续且相同的多个数据单元位于帧内部的地址信息和用于表示所述连续且相同的多个数据单元的数目信息;如果否,对所述连续且相同的多个数据单元或1个数据单元进行处理得到的命令单元包括用于表示非压缩类型的命令类型信息、用于表示所述连续且相同的多个数据单元或1个数据单元位于帧内部的地址信息和用于表示所述连续且相同的多个数据单元或1个数据单元的数目信息。
图11为本发明另一实施例一种可编程逻辑器件的配置数据流压缩处理系统的模块图,请参考图11,还包括第二压缩处理模块103,第二压缩处理模块103用于用于对所述配置数据流中的帧单元进行压缩处理。
图12本发明实施例一种可编程逻辑器件的配置数据流解压缩处理系统的模块图,请参考图12:
一种数据解压缩处理系统,包括待解压缩处理数据获取模块121和第一解压缩模块122,待解压缩处理数据获取模块121用于获取配置数据流中待解压缩处理的数据帧,第一解压缩模块122用于对所述待解压缩数据帧内部的数据单元进行解压缩处理。
进一步,第一解压缩模块122具体用于获取所述待解压缩处理的数据帧内部的命令单元和参考值;根据所述命令单元和参考值对所述待解压缩处理的数据帧内部的数据单元进行解压缩处理。
进一步,第一解压缩模块122具体用于获取所述命令单元中的命令类型信息;如果所述命令单元中的命令类型信息为压缩类型,则根据所述命令单元中用于表示所述连续且相同的多个数据单元位于帧内部的地址信息和用于表示所述连续且相同的多个数据单元的数目信息,将所述参考值复制到帧内的相应地址上;如果所述命令单元中的命令类型信息为非压缩类型,则根据所述命令单元中用于表示所述连续且相同的多个数据单元或1个数据单元位于帧内部的地址信息和用于表示所述连续且相同的多个数据单元或1个数据单元的数目信息,将所述参考值复制到帧内的相应地址上。
图13本发明另一实施例一种可编程逻辑器件的配置数据流解压缩处理系统的模块图,请参考图3,还包括第二解压缩模块123,第二解压缩模块123用于对所述配置数据流中的帧单元进行解压缩处理。
以上内容是结合具体的实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。

Claims (18)

1.一种可编程逻辑器件的配置数据流的压缩处理方法,其特征在于,包括:
获取所述配置数据流中待压缩处理的数据帧;
对所述待压缩处理的数据帧内部的数据单元进行压缩处理。
2.如权利要求1所述的方法,其特征在于,所述数据单元包括一个或多个比特值,或者所述数据单元包括一个或多个字段值。
3.如权利要求1所述的方法,其特征在于,对所述待压缩处理的数据帧内部的数据单元进行压缩处理后得到参考值和命令单元。
4.如权利要求3所述的方法,其特征在于,对所述待压缩处理的数据帧内部的数据单元进行压缩处理后得到参考值和命令单元的过程具体为:
将由统计得出的帧内部连续且相同的数据单元的数目与一预设值比较,判断所述连续且相同的数据单元的数目是否大于或等于所述预设值;
如果是,对所述连续且相同的多个数据单元进行处理后得到的命令单元包括用于表示压缩类型的命令类型信息、用于表示所述连续且相同的多个数据单元位于帧内部的地址信息和用于表示所述连续且相同的多个数据单元的数目信息;
如果否,对所述连续且相同的多个数据单元或1个数据单元进行处理后得到的命令单元包括用于表示非压缩类型的命令类型信息、用于表示所述连续且相同的多个数据单元或1个数据单元位于帧内部的地址信息和用于表示所述连续且相同的多个数据单元或1个数据单元的数目信息。
5.如权利要求4所述的方法,其特征在于,所述预设值为大于或等于3的整数。
6.如权利要求1至5任一项所述的方法,其特征在于,还包括:
对所述配置数据流中的帧单元进行压缩处理。
7.一种可编程逻辑器件的配置数据流的解压缩处理方法,其特征在于,包括:
获取所述配置数据流中待解压缩处理的数据帧;
对所述待解压缩处理的数据帧内部的数据单元进行解压缩处理。
8.如权利要求7所述的方法,其特征在于,对所述待解压缩处理的数据帧内部的数据单元进行解压缩处理的过程具体为:
获取所述待解压缩处理的数据帧内部的命令单元和参考值;
根据所述命令单元和参考值对所述待解压缩处理的数据帧内部的数据单元进行解压缩处理。
9.如权利要求8所述的方法,其特征在于,根据所述命令单元和参考值对所述待解压缩处理的数据帧内部的数据单元进行解压缩处理的过程具体为:
获取所述命令单元中的命令类型信息;
如果所述命令单元中的命令类型信息为压缩类型,则根据所述命令单元中用于表示所述连续且相同的多个数据单元位于帧内部的地址信息和用于表示所述连续且相同的多个数据单元的数目信息,将所述参考值复制到帧内的相应地址上;
如果所述命令单元中的命令类型信息为非压缩类型,则根据所述命令单元中用于表示所述连续且相同的多个数据单元或1个数据单元位于帧内部的地址信息和用于表示所述连续且相同的多个数据单元或1个数据单元的数目信息,将所述参考值复制到帧内的相应地址上。
10.如权利要求7至9任一项所述的方法,其特征在于,还包括:
对所述配置数据流中的帧单元进行解压缩处理。
11.一种可编程逻辑器件的配置数据流的压缩处理系统,其特征在于,包括待压缩处理数据获取模块和第一压缩处理模块,其中,
所述待压缩处理数据获取模块用于获取所述配置数据流中待压缩处理的数据帧;
所述第一压缩处理模块用于对所述待压缩处理的数据帧内部的数据单元进行压缩处理。
12.如权利要求11所述的系统,其特征在于,所述第一压缩处理模块用于对所述待压缩处理的数据帧内部的数据单元进行压缩处理后得到参考值和命令单元。
13.如权利要求12所述的系统,其特征在于,所述第一压缩处理模块具体用于:将由统计得出的帧内部连续且相同的数据单元的数目与一预设值比较,判断所述连续且相同的数据单元的数目是否大于或等于所述预设值;如果是,则对所述连续且相同的多个数据单元进行处理后得到的命令单元包括用于表示压缩类型的命令类型信息、用于表示所述连续且相同的多个数据单元位于帧内部的地址信息和用于表示所述连续且相同的多个数据单元的数目信息;如果否,对所述连续且相同的多个数据单元或1个数据单元进行处理得到的命令单元包括用于表示非压缩类型的命令类型信息、用于表示所述连续且相同的多个数据单元或1个数据单元位于帧内部的地址信息和用于表示所述连续且相同的多个数据单元或1个数据单元的数目信息。
14.如权利要求11至13任一项所述的系统,其特征在于,还包括第二压缩处理模块,所述第二压缩处理模块用于对所述配置数据流中的帧单元进行压缩处理。
15.一种可编程逻辑器件的配置数据流的解压缩处理系统,其特征在于,包括待解压缩处理数据获取模块和第一解压缩模块,其中:
所述待解压缩处理数据获取模块用于获取所述配置数据流中待解压缩处理的数据帧;
所述第一解压缩模块用于对所述待解压缩数据帧内部的数据单元进行解压缩处理。
16.如权利要求15所述的系统,其特征在于,所述第一解压缩模块具体用于获取所述待解压缩处理的数据帧内部的命令单元和参考值;根据所述命令单元和参考值对所述待解压缩处理的数据帧内部的数据单元进行解压缩处理。
17.如权利要求16所述的系统,其特征在于,所述第一解压缩模块具体用于获取所述命令单元中的命令类型信息;如果所述命令单元中的命令类型信息为压缩类型,则根据所述命令单元中用于表示所述连续且相同的多个数据单元位于帧内部的地址信息和用于表示所述连续且相同的多个数据单元的数目信息,将所述参考值复制到帧内的相应地址上;如果所述命令单元中的命令类型信息为非压缩类型,则根据所述命令单元中用于表示所述连续且相同的多个数据单元或1个数据单元位于帧内部的地址信息和用于表示所述连续且相同的多个数据单元或1个数据单元的数目信息,将所述参考值复制到帧内的相应地址上。
18.如权利要求15至17任一项所述的系统,其特征在于,还包括第二解压缩模块,所述第二解压缩模块用于对所述配置数据流中的帧单元进行解压缩处理。
CN 201110171082 2011-06-23 2011-06-23 可编程逻辑器件配置数据流压缩、解压缩处理方法及系统 Expired - Fee Related CN102843142B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN 201110171082 CN102843142B (zh) 2011-06-23 2011-06-23 可编程逻辑器件配置数据流压缩、解压缩处理方法及系统
PCT/CN2011/080428 WO2012174807A1 (zh) 2011-06-23 2011-09-30 可编程逻辑器件配置数据流压缩、解压缩处理方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 201110171082 CN102843142B (zh) 2011-06-23 2011-06-23 可编程逻辑器件配置数据流压缩、解压缩处理方法及系统

Publications (2)

Publication Number Publication Date
CN102843142A true CN102843142A (zh) 2012-12-26
CN102843142B CN102843142B (zh) 2013-07-31

Family

ID=47370241

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 201110171082 Expired - Fee Related CN102843142B (zh) 2011-06-23 2011-06-23 可编程逻辑器件配置数据流压缩、解压缩处理方法及系统

Country Status (2)

Country Link
CN (1) CN102843142B (zh)
WO (1) WO2012174807A1 (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103368579A (zh) * 2013-07-09 2013-10-23 杭州东方通信软件技术有限公司 一种wlan网管设备数据的压缩方法及系统
CN107925418A (zh) * 2015-05-21 2018-04-17 零点科技公司 用于混合式数据压缩和解压缩的方法、设备和系统
CN110958212A (zh) * 2018-09-27 2020-04-03 阿里巴巴集团控股有限公司 一种数据压缩、数据解压缩方法、装置及设备
CN112597082A (zh) * 2020-12-18 2021-04-02 龙芯中科技术股份有限公司 总线的数据传输方法及电子设备
CN114040030A (zh) * 2021-11-18 2022-02-11 深圳智慧林网络科技有限公司 一种基于预设规则的数据压缩方法、装置、设备和介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1689336A (zh) * 2002-10-21 2005-10-26 皇家飞利浦电子股份有限公司 操纵压缩视频信号的子图像
CN1845608A (zh) * 2006-05-19 2006-10-11 北京工业大学 基于时空相关性的视频帧间压缩方法
CN1892821A (zh) * 2005-07-06 2007-01-10 凌阳科技股份有限公司 一种对音频数据进行处理的方法及装置
US20070110151A1 (en) * 2005-11-14 2007-05-17 Ess Technology, Inc. System and method for video frame buffer compression

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1234249C (zh) * 2004-01-14 2005-12-28 华中科技大学 嵌入式图像处理器
US7589648B1 (en) * 2005-02-10 2009-09-15 Lattice Semiconductor Corporation Data decompression
US7902865B1 (en) * 2007-11-15 2011-03-08 Lattice Semiconductor Corporation Compression and decompression of configuration data using repeated data frames
CN101426139B (zh) * 2008-12-08 2011-01-19 中国科学院长春光学精密机械与物理研究所 图像压缩装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1689336A (zh) * 2002-10-21 2005-10-26 皇家飞利浦电子股份有限公司 操纵压缩视频信号的子图像
CN1892821A (zh) * 2005-07-06 2007-01-10 凌阳科技股份有限公司 一种对音频数据进行处理的方法及装置
US20070110151A1 (en) * 2005-11-14 2007-05-17 Ess Technology, Inc. System and method for video frame buffer compression
CN1845608A (zh) * 2006-05-19 2006-10-11 北京工业大学 基于时空相关性的视频帧间压缩方法

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103368579A (zh) * 2013-07-09 2013-10-23 杭州东方通信软件技术有限公司 一种wlan网管设备数据的压缩方法及系统
CN103368579B (zh) * 2013-07-09 2016-08-17 杭州东方通信软件技术有限公司 一种wlan网管设备数据的压缩方法及系统
CN107925418A (zh) * 2015-05-21 2018-04-17 零点科技公司 用于混合式数据压缩和解压缩的方法、设备和系统
CN107925418B (zh) * 2015-05-21 2021-06-01 零点科技公司 用于混合式数据压缩和解压缩的方法、设备和系统
CN110958212A (zh) * 2018-09-27 2020-04-03 阿里巴巴集团控股有限公司 一种数据压缩、数据解压缩方法、装置及设备
CN110958212B (zh) * 2018-09-27 2022-04-12 阿里巴巴集团控股有限公司 一种数据压缩、数据解压缩方法、装置及设备
CN112597082A (zh) * 2020-12-18 2021-04-02 龙芯中科技术股份有限公司 总线的数据传输方法及电子设备
CN112597082B (zh) * 2020-12-18 2023-02-24 龙芯中科技术股份有限公司 总线的数据传输方法及电子设备
CN114040030A (zh) * 2021-11-18 2022-02-11 深圳智慧林网络科技有限公司 一种基于预设规则的数据压缩方法、装置、设备和介质
CN114040030B (zh) * 2021-11-18 2023-11-24 深圳智慧林网络科技有限公司 一种基于预设规则的数据压缩方法、装置、设备和介质

Also Published As

Publication number Publication date
WO2012174807A1 (zh) 2012-12-27
CN102843142B (zh) 2013-07-31

Similar Documents

Publication Publication Date Title
US9454552B2 (en) Entropy coding and decoding using polar codes
CN102843142B (zh) 可编程逻辑器件配置数据流压缩、解压缩处理方法及系统
CN106549673B (zh) 一种数据压缩方法及装置
CN107565971B (zh) 一种数据压缩方法及装置
CN103236847A (zh) 基于多层哈希结构与游程编码的数据无损压缩方法
Ouyang et al. FPGA implementation of GZIP compression and decompression for IDC services
US11791838B2 (en) Near-storage acceleration of dictionary decoding
US20200294629A1 (en) Gene sequencing data compression method and decompression method, system and computer-readable medium
CN103916131A (zh) 压缩数据的方法和用于执行该方法的设备
US9137336B1 (en) Data compression techniques
Jansson et al. CRAM: Compressed random access memory
CN113300715B (zh) 一种数据处理方法、装置、硬件压缩设备以及介质
Qiao et al. An FPGA-based BWT accelerator for Bzip2 data compression
CN108141225B (zh) 使用simd引擎的通用数据压缩
Dandalis et al. Configuration compression for FPGA-based embedded systems
CN115189696A (zh) 一种基于Huffman解码表的硬件压缩解压方法
Fiergolla et al. Improving run length encoding by preprocessing
Arming et al. Data compression in hardware—the burrows-wheeler approach
Jahaan et al. A comparative study and survey on existing dna compression techniques.
KR101030726B1 (ko) 확률적 테이블에 의해 생성된 심볼을 기반으로 호프만 테이블을 적용한 메모리 효율이 개선된 멀티미디어용 호프만 디코딩 방법 및 장치
CN102932001B (zh) 运动捕获数据压缩、解压缩方法
CN108932315A (zh) 一种数据解压的方法以及相关装置
Gu et al. Partial reconfiguration bitstream compression for Virtex FPGAs
CN107341113A (zh) Cache的压缩方法和装置
US9405508B2 (en) Sorting with key modification

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C53 Correction of patent of invention or patent application
CB02 Change of applicant information

Address after: 518057 Guangdong city of Shenzhen province Nanshan District Gao Xin Road No. 015 building 6 layer A's Micro

Applicant after: Shenzhen Guowei Electronics Co., Ltd.

Address before: 518057 Guangdong city of Shenzhen province Nanshan District Shenzhen high tech Industrial Park South high SSMEC building

Applicant before: Guowei Electronics Co., Ltd., Shenzhen

COR Change of bibliographic data

Free format text: CORRECT: APPLICANT; FROM: GUOWEI ELECTRONICS CO., LTD., SHENZHEN TO: SHENZHEN STATEMICRO ELECTRONICS CO., LTD.

C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20130731

Termination date: 20210623

CF01 Termination of patent right due to non-payment of annual fee