CN103248369A - Compression system and method based on FPFA (Field Programmable Gate Array) - Google Patents

Compression system and method based on FPFA (Field Programmable Gate Array) Download PDF

Info

Publication number
CN103248369A
CN103248369A CN2013101970320A CN201310197032A CN103248369A CN 103248369 A CN103248369 A CN 103248369A CN 2013101970320 A CN2013101970320 A CN 2013101970320A CN 201310197032 A CN201310197032 A CN 201310197032A CN 103248369 A CN103248369 A CN 103248369A
Authority
CN
China
Prior art keywords
data
string
byte
module
compression
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
Application number
CN2013101970320A
Other languages
Chinese (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.)
NANJING CHANGYANG TECHNOLOGY Co Ltd
Original Assignee
NANJING CHANGYANG TECHNOLOGY Co Ltd
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 NANJING CHANGYANG TECHNOLOGY Co Ltd filed Critical NANJING CHANGYANG TECHNOLOGY Co Ltd
Priority to CN2013101970320A priority Critical patent/CN103248369A/en
Publication of CN103248369A publication Critical patent/CN103248369A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

The invention discloses a compression system and method based on an FPFA (Field Programmable Gate Array). The compression system comprises an FPGA module which is used for compressing external data, a data module used for providing the external data to the FPGA module, and an external storage module used for receiving data compressed by the FPGA module; and the FPGA module is used for embedding a GZIP compression algorithm into FPGA hardware, carrying out an LZ77 algorithm on object files in the FPGA and then carrying out Huffman coding, so that the aim of efficient compressing is realized.

Description

Compressibility and method thereof based on FPGA
Technical field
The present invention relates to the compress technique of data, especially a kind of compressibility and method thereof based on FPGA.
Background technology
In embedded developping system, it is one of very important means that data are carried out compression and decompression, and it can significantly improve the available capacity of disk, and the effective bandwidth of input and output when improving read-write operation improves application layer program implementation speed.Current, the GZIP algorithm is generally adopted in the compression and decompression of data, and carries out data by the mode of software and handle, yet there is the operation of a large amount of serials GZIP algorithm the inside, and the efficient of using software algorithm to handle is lower.And the algorithm that GZIP decompresses all adopts software to realize, it adopts multistage mode of tabling look-up to finish Hafman decoding, that is to say that sign indicating number of contact may need to table look-up repeatedly, the advantage of this method is that the use amount of internal memory is less, and corresponding major part is tabled look-up and only need once be tabled look-up and can finish, and efficient is higher, so in software the inside extensive use, but the degree of parallelism of this algorithm is lower, can take a large amount of cpu resources in large-scale data are handled, and improper hardware is realized.Therefore in large-scale data were handled, data flow to be compressed was huge; It uses CPU to carry out must taking a large amount of cpu resources when compressed and decompressed, and the problem that cpu resource takies when carrying out data decompression is more obvious.
Therefore, how to improve the compression treatment effeciency and become the technical problem that existing GZIP decompression technique needs to be resolved hurrily, especially can provide corresponding solution at existing GZIP decompression algorithm.
Summary of the invention
The technical problem that the present invention will solve provides a compression method and hardware system, improves the available capacity of disk, also effectively improves the treatment effeciency of original GZIP compression algorithm simultaneously.
One aspect of the present invention provides a kind of compressibility based on FPGA, it comprises: the FPGA module that external data is compressed, the data module of external data is provided to the FPGA module, the outer memory module of the data of reception after the compression of FPGA module, wherein the FPGA module comprises the input interface unit that links to each other with data module, the memory cell that links to each other with interface unit, the compressed file format unit, the compression algorithm unit that the data of being come by memory cell are compressed according to the file format of compressed file format unit, and the output interface unit that the data that the compression algorithm unit compresses is exported to outer memory module.
Preferably, described memory cell is internal memory, and outer memory module is hard disk.
Preferably, described file format has head, data portion and is used for the afterbody of verification, and wherein said head comprises ID1, ID2, CM, FLG, MTIME, XFL, OS and an extra field, and described data portion is the DEFLATE data format.
Preferably, described compression algorithm unit comprises LZ77 algorithm, Huffman encoding.
Preferably, described ID1 and ID2 respectively account for 1 byte, and are fixed value, and described CM, FLG, XFL, OS all account for 1 byte, and described MTIME accounts for 4 bytes.
Another aspect of the present invention provides a kind of compression method based on FPGA, and it comprises: receive external data by input interface unit; The external data that storage receives; The external data of storing is compressed according to file format, and wherein compression algorithm comprises LZ77 algorithm, Huffman encoding at least; By the output interface unit packed data is outputed to outer memory module.
Preferably, described file format has head, data portion and is used for afterbody three parts of verification, and wherein said head comprises ID1, ID2, CM, FLG, MTIME, XFL, OS and an extra field, and described data portion is the DEFLATE data format.
Preferably, described ID1 and ID2 respectively account for 1 byte, and are fixed value, and described CM, FLG, XFL, OS all account for 1 byte, and described MTIME accounts for 4 bytes.
Preferably, the mutation of described LZ77 algorithm refers to if there are two contents identical in the file, as long as know last position and size so, just can determine back one content, so can use (distance between the two, the length of identical content) a pair of like this information, replace a back content, and because the size of (distance between the two, the length of identical content) this a pair of information, less than the size that is replaced content, so file has obtained compression.
Preferably, described LZ77 algorithm, the method for use " sliding window ", seek the same section in the file, just the coupling string is done an explanation to the string here earlier, it refers to the sequence of any byte, and is not only the sequence of those bytes that can show in text.What the string was here emphasized is its position hereof, and its length changes along with the situation of coupling.LZ77 is from the beginning of file, the handling backward an of byte of byte.The window of a fixed size (before the pre-treatment byte, and being close to when the pre-treatment byte) along with the byte of handling constantly slides backward, resembles in the sun, and the shadow skating of aircraft is crossed the same greatly.For each byte in the file, mate with the string that begins when the pre-treatment byte and each string in the window, seek the longest coupling string.Each string in the window refers to, the string that each byte begins in the window.If the string that begins when the pre-treatment byte has the coupling string in window, just with (between distance, matching length) a pair of like this information, replace current string, the next byte from the string of handling just now after continues processing then.If the string that begins when the pre-treatment byte does not mate string in window, just do not do the output of change when the pre-treatment byte.When handling in the file first byte, window does not just also slide on the file before the pre-treatment byte, at this moment in the window without any content, processed byte will not done the output of change.Along with handle constantly backward, window more and more slips into file, last whole window slips into file, whole window slides backward at file then, up to the whole end of file.
Preferably, described Huffman encoding is very many for occurrence number, then represent with less position, considerably less for occurrence number, then represent with more position, so, the some parts figure place of file has tailed off, and it is many that the some parts figure place becomes, and the part bigger than change owing to the part that diminishes is many, so the size of whole file still can reduce, so file has obtained compression.
Preferably, described compression algorithm refers to earlier data be carried out the LZ77 algorithm, carries out Huffman encoding again, thereby realizes efficient compression purpose.
The present invention inserts by four circuit-switched data are parallel, utilizes hardware system, and solving GZIP algorithm the inside has the operation of a large amount of serials and the inefficient problem of using software algorithm to handle, improves the compression treatment effeciency.
Description of drawings
Below in conjunction with drawings and Examples the present invention is further described:
Fig. 1 is structured flowchart of the present invention.
Fig. 2 is the structured flowchart of file format among the present invention.
Fig. 3 is the flow chart of GZIP compression algorithm among the present invention.
Fig. 4 is the flow chart of LZ77 compression algorithm among the present invention.
Fig. 5 is the flow chart of DEFLATE algorithm among the present invention.
Embodiment
Embodiment: use example of the present invention with reference to the accompanying drawings, the present invention is described in more detail and illustrates.As shown in Figure 1, the invention provides a kind of specific embodiment of the compressibility based on FPGA, it comprises: the FPGA module 1 that external data is compressed, the data module 2 of external data is provided to FPGA module 1, the outer memory module 3 of the data of reception after 1 compression of FPGA module, wherein FPGA module 1 comprises the input interface unit 10 that links to each other with data module 2, the memory cell 12 that links to each other with interface unit 10, compressed file format unit 14, the compression algorithm unit 16 that the data of being come by memory cell 12 are compressed according to the file format of compressed file format unit 14, and the output interface unit 18 that the data that compression algorithm unit 16 compresses is exported to outer memory module 3.Input interface unit 10 is parallel interface in the present embodiment, and memory cell 12 is preferably internal memory, and outer memory module 3 is preferably hard disk.
Wherein, as shown in Figure 2, the file format of compressed file format unit 14 is the GZIP compressed file format, it is the standardized compression file format and is used for the packing packed data, described file format has head, data portion and is used for afterbody three parts of verification, and wherein head is used for arranging compression method, compressed format, system etc.; Data portion is used for the data that carrying obtains; Afterbody is used for data are carried out the CRC32 verification, and to judge the correctness that decompresses, it comprises the CRC32:4 byte, preserve initial data 32 bit checks and.The ISIZE:4 byte is used for preserving low 32 of initial data length, and head comprises ID1, ID2, CM, FLG, MTIME, XFL, OS and an extra field simultaneously, and described data portion is the DEFLATE data format.
Wherein, as shown in Figure 3, the GZIP compression algorithm comprises two parts: LZ77 algorithm and Huffman encoding.
Wherein as shown in Figure 4, it is LZ77 compression algorithm flow process, and does and the following specifically describes:
Searching coupling as shown in Figure 4 can be done following statement: GZIP algorithm each string to running at first can be inserted into it in one " dictionary ".Like this string that can mate with it ought be arranged later on, can directly from " dictionary ", find this string.When inserting, use this first three byte of inserting string, calculate " dictionary " position of insertion, then the starting position of inserting string is kept in this " dictionary " position.When finding, first three byte of string is found in use, calculate " dictionary " position, owing to insert and what find use is with a kind of computational methods, so if first three byte of two strings is identical, " dictionary " position that calculates is identical certainly, so just can be directly in this " dictionary " position, when inserting before taking out, the starting position of preserving that string of entering.So find string, just found a string, and first three byte of this string and oneself is the same, so just found a coupling string.But have a plurality of strings, their first three byte is all identical, and they are identical in the position of " dictionary " lining so, and they will be linked to each other by a chain, is placed on the chain of the position that corresponding " dictionary " calculate.So, found one corresponding in " dictionary " position, also just found a corresponding chain.The string that first three byte of all and it is identical is all on this chain.So look for the longest coupling, will travel through each string on this chain, see that relatively the matching length with which string can obtain maximum.
The insertion head[ins_h that relates in the technique scheme] be expressed as: current byte strstart mark.Utilize strstart, strstart+1, strstart+2, the value of these three bytes uses a hash function to calculate ins_h(at head[] insertion position in the table).With the position of current byte, namely strstart fills out at head[ins_h then] in.
Whether can mate as described in Figure 4 refers to: when using hash function to calculate ins_h, find head[ins_h] in value be not empty words, head[ins_h so] in value, be kept at the position of a string here before being, (ins_h that first three of this a string byte is calculated, the ins_h that calculates with first three byte of current string is identical) that is to say that coupling might be arranged.If head[ins_h] value be empty, so, do not have coupling certainly.
Explanation about the employed hash function of GZIP: when GZIP finds head[ins_h] not empty after, that is to say to have the coupling string, can carry out the comparison of real string to each string on the chain.So the string on chain, just the value calculated with hash function of first three byte is identical, and might not first three byte all be identical.But the very big scope of comparison of to go here and there of having dwindled so.The reason that three different bytes might obtain same result is that three bytes, have 2^24 kind probable value by 24 altogether.And the result of calculation of the hash function of three bytes is 15, and 2^15 kind probable value is arranged.That is to say 2^24 kind value, carry out correspondingly with 2^15 kind value, must be many-to-one, that is to say, and must be the value that multiple three bytes are arranged, the value that calculates with this hash function all is identical.Can use the reason of hash function to be like this, just in the scope of a window size, seek the coupling string, the value combined situation of three bytes that can occur also is very limited like this, will be far smaller than 2^24, is very efficiently so use a proper hash function.
As described in Figure 4 set up prev[] chain: each handle current string in, at first calculate the position of insertion, then, the position of current string, be saved in head[ins_h] in, if head[ins_h] in (not empty) be the starting position of previous string.Carry out following operation: prev[strstart so]=head[ins_h]; Head[ins_h]=strstart; Each carrying out constantly inserts operation, prev[] chain just formed.
Prev[wherein] effect of chain: head[ins_h] in value, itself be exactly first three a byte result of calculation be the position of the string of ins_h.Simultaneously, it be one at prev[] index in the array, utilize this index at prev[] in, can find previous first three byte result of calculation is the position of the string of ins_h.Be prev[head[ins_h]] value (when not when empty) be that previous first three byte result of calculation is the position of the string of ins_h.Can constantly make progress up to prev[] be empty, the expression end of chain (EOC).At prev[] in the chain all strings of ins_h by chain together, head[ins_h] be begin chain, prev[] position of the string more early put in the array.
Prev[] characteristics of chain: along prev[] chain constantly forward, then it and when the distance between the pre-treatment strstart position more and more far away.
Lazy match as described in Figure 4, the use of its algorithm: after current string had searched out the longest coupling, GZIP did not just determine to use this string to replace immediately.But see whether the string that next byte begins also has the coupling string, if than present this coupling string longer coupling string is arranged, will not use this present coupling.If than present this weak point, will determine to use this present coupling.GZIP is under the precondition that satisfies lazy match, one time lazy match has found after the longer coupling string, still can carry out lazy match again, if current lazy match, found the coupling string longer than last time, the coupling string that so last lazyness coupling finds just is out of use.Lazy match can increase compression effects, simultaneously, also can pay no small time cost.So be necessary its use is limited.Have only the matching length when current coupling string, GZIP just current matching length less than max_lazy_match(max_lazy_match under fixing compression level, fixing value is arranged) time, just can carry out lazy match.
LZ77 algorithm of the present invention is to the file greater than 64KB, use about slide window implementation: current string (when the string that pre-treatment word mark strstart begins) is just sought the coupling string in the sliding window before it, that is to say to seek the coupling string in the scope of a certain size before it just.The size of this sliding window of GZIP is WSIZE, 32KB.In internal memory, will build a window[] buffering area, size is the size of 2 windows, 64KB.Need the content of compressed file will be read this window[] in, again at window[] buffering area carries out the processing of LZ77 algorithm, and obtain the result and will be placed in other buffering areas.The window[of GZIP] in content, from the beginning, a byte of a byte to reprocessing.When the string that begins when the pre-treatment byte does not have suitable coupling, do not do the output of any change when the pre-treatment byte, strstart is mobile byte backward.When the string that begins when the pre-treatment byte had found suitable coupling, output (matching length, standoff distance) was right, and strstart is a mobile matching length byte backward.From strstart to window[] this part content of finishing, be called lookahead buffer(and check buffering area in advance).Variable lookahead, the in store byte number of checking that in advance buffering area is last.Lookahead begins to be initialized to whole size of reading in content most, and along with the carrying out of handling, strstart does not have no progeny and moves, and checks that in advance buffering area constantly reduces, and the value of corresponding lookahead also constantly reduces.If coupling has been gone here and there out the restriction of a window, then not with coupling.When current string calculates ins_h, find head[ins_h] when value is not empty (head[ins_h] be the starting position of a string), illustrate that current string might have the coupling string, is kept at this value among the hash_head.At this moment will do the judgement of a limited field, strstart-hash_head<=window size, strstart-hash_head is the distance between current string and the nearest coupling string, if the words within the scope of a window, also need seek the longest coupling string at chain, when comparing with each string, need also to judge whether the distance of current string and this string surpasses the scope of a window, surpass, just can not mate.In the reality, GZIP is in order to make the simple point of code, and distance limit is also more smaller than the size of a window.
LZ77 algorithm among the present invention is for the file handling procedure less than 64KB: whole file all is read into window[in the time of initialized] in.At window[] carry out the processing of LZ77 algorithm, from beginning up to the end of file.
The present invention is for the file handling procedure greater than 64KB: the initialization before the compression beginning, can from file, read in the content of 64KB to window[] in, window size is 32KB, just reads in the content of 2 windows to window[] in.Compression is constantly carried out, up to lookahead<MIN_LOOKAHEAD, just handle arrived the 64KB content near latter end, if just handle again, check that in advance the content in the buffering area just may be not much of that.Because lookahead<MIN_LOOKAHEAD will carry out fill_window ().Fill_window () judges whether that compression has proceeded to 2 window contents and run low, and this new content has been put into.If fill_window () copies to the content of second window in first window, the content in such first window just has been capped.Upgrade the begin chain array of matched chain then, head[], upgrade prev[] array, go over from the beginning to the end, if correction in window two, is just done to the position of this string in the position of the string of preserving in this stature.If in window one, has not just wanted the position of the string of preserving in this stature, otherwise just surpassed the restriction of 32k.If a certain content in window two, is just done correction.Last fill_window () reads a window content again from file, the content of just reading 32KB copies in second window, notes original content in second window, has been copied in first window.Like this, the continuous processing of a window window is up to the whole end of file.
Piecemeal output as shown in Figure 4: the result of LZ77 compression is placed on l_buf[], d_buf[], flag_buf[] in.For the compression result of LZ77, may use one to export or be divided into polylith output (LZ77 compresses after certain part, just carries out once piece output, exports one).The size of piece is not fixed.Output time, can carry out the Huffman coding to the compression result of LZ77 algorithm process, finally the result of Huffman coding is outputed to outbuf[] in the buffering area.In flush_block (), carry out the Huffman coding, and the work of output.In ct_tally (), judge, if satisfy some conditions, after from ct_tally (), returning, will carry out the Huffman coding to the result of existing LZ77, output in the piece.Finish in whole file process, when deflate () function will finish, can carry out the Huffman coding to the result of LZ77, output in the piece.And as l_buf[] when having expired, perhaps d_buf[] when having expired, will carry out the Huffman coding certainly to the result of existing LZ77 compression, output in the piece.Determine one of output, set up the Huffman tree, can a content at this part.This part content will be carried out the compression of Huffman coding, and is output to outbuf[] in.If dynamically Huffman encodes, the information of tree also is output to outbuf[] in.After the output, can call init_block (), new piece of initialization reinitializes some variablees, comprises that the node of dynamic tree is put 0, that is to say, will restart statistical information for new piece Huffman tree in the future.2 of beginning most of each piece are used for indicating that this piece uses is which kind of coded system, directly storage of 00 expression, and the static Huffman coding of 01 expression, the dynamic Huffman of 10 expressions encodes.Whether ensuing 1, indicating this piece is last piece, and 0 expression is not that 1 expression is last piece.
The described Huffman of technique scheme coding and dynamic Huffman coding: static Huffman coding just is to use GZIP oneself to pre-define a cover coding to compress, also use this cover coding when decompressing, do not need to transmit to generate the information of tree like this.Dynamically the Huffman coding just is to use the occurrence number of each good symbol of statistics, sets up the Huffman tree, produces the Huffman coding of each symbol, compresses with the Huffman coding of this generation, needs to transmit the information of setting that generates like this.GZIP be one carry out Huffman coding before, can set up static Huffman tree and dynamic Huffman tree simultaneously, calculate and use static Huffman tree-encoding, the size of the piece of generation, and calculate and use dynamic Huffman tree-encoding generates the size of piece.Compare again at last, use the less method of generation piece to carry out final Huffman coding.When file is smaller, often use static tree can produce reasonable compression effectiveness, because dynamic tree need transmit that part of information that generates tree.
As shown in Figure 5, the explanatory note of DEFLATE algorithm flow chart is as follows:
Strstart: the position of current string initial character;
Said " dictionary " is to use array head[] expression;
Be placed in the variable that is called ins_h, and calculate according to first three byte of string with hash function this position said " dictionary " position;
Said chain is to be called prev[at one] array in;
Character: file particular content;
String: a plurality of character group bunchiness, in the GZIP algorithm;
Right: (string is long, with the distance of mating string before);
Dictionary: deposit string, use for seeking the coupling string;
Insertion position: the position of string in dictionary;
Read string: system obtains the file that will compress, and reads in character string to buffering area.Gzip algorithm each string to running at first can be inserted into it in one " dictionary ".Like this string that can mate with it ought be arranged later on, can directly from " dictionary ", find this string.Point to the initial character of string with variable strstart.
Strstart-〉NULL: judge whether ststart points to is empty;
Hash table is searched insertion position insh: Hash table is searched, and efficient is higher
Whether chained list exists this string: chained list, be by, different strings are formed, still, on each chain, first three of a string byte is identical, can improve search efficiency like this.
Look for chained list prev[] in the longest coupling: the longest coupling of what is called refers to that matching length is the longest.
MAX_LAZY_MATCH: after current string had searched out the longest coupling, gzip did not use this string to replace with regard to determining immediately.But see whether the string that next byte begins also has the coupling string, if than present this coupling string longer coupling string is arranged, will not use this present coupling.If than present this weak point, will determine to use this present coupling.
GZIP is under the precondition that satisfies lazy match, one time lazy match has found after the longer coupling string, still can carry out lazy match again, if current lazy match, found the coupling string longer than last time, the coupling string that so last lazyness coupling finds just is out of use.
Lazy match can increase compression effects, simultaneously, also can pay no small time cost.So be necessary its use is limited.Have only the matching length when current coupling string, gzi just current matching length less than max_lazy_match(max_lazy_match under fixing compression level, fixing value is arranged) time, just can carry out lazy match.
Allocation buffer window[]: in internal memory, will build a window[] buffering area, size is the size of 2 windows, 64KB.Need the content of compressed file will be read this window[] in, at window[] buffering area carries out the processing of LZ77 algorithm, and obtain the result and will be placed in other buffering areas.
Certainly above-described embodiment only is explanation technical conceive of the present invention and characteristics, and its purpose is to allow the people who is familiar with this technology can understand content of the present invention and enforcement according to this, can not limit protection scope of the present invention with this.The all spiritual essence of main technical schemes is done according to the present invention equivalent transformation or modification all should be encompassed within protection scope of the present invention.

Claims (8)

1. compressibility based on FPGA, it is characterized in that it comprises: the FPGA module (1) that external data is compressed, the data module (2) of external data is provided to FPGA module (1), the outer memory module (3) of the data of reception after FPGA module (1) compression, wherein FPGA module (1) comprises the input interface unit (10) that links to each other with data module (2), the memory cell (12) that links to each other with interface unit (10), compressed file format unit (14), the compression algorithm unit (16) that the data of being come by memory cell (12) are compressed according to the file format of compressed file format unit (14), and the output interface unit (18) that the data that compression algorithm unit (16) are compressed is exported to outer memory module (3).
2. compressibility according to claim 1 is characterized in that: described memory cell (12) is internal memory, and outer memory module (3) is hard disk.
3. compressibility according to claim 1 and 2, it is characterized in that: described file format has head, data portion and is used for the afterbody of verification, wherein said head comprises ID1, ID2, CM, FLG, MTIME, XFL, OS and an extra field, and described data portion is the DEFLATE data format.
4. compressibility according to claim 3, it is characterized in that: described compression algorithm unit (16) comprises LZ77 algorithm, Huffman encoding.
5. compressibility according to claim 3, it is characterized in that: described ID1 and ID2 respectively account for 1 byte, and are fixed value, and described CM, FLG, XFL, OS all account for 1 byte, and described MTIME accounts for 4 bytes.
6. compression method based on FPGA is characterized in that it comprises:
Receive external data by input interface unit (10);
The external data that storage receives;
The external data of storing is compressed according to file format, and wherein compression algorithm comprises LZ77 algorithm, Huffman encoding at least;
By output interface unit (18) packed data is outputed to outer memory module (3).
7. compression method according to claim 6, it is characterized in that: described file format has head, data portion and is used for afterbody three parts of verification, wherein said head comprises ID1, ID2, CM, FLG, MTIME, XFL, OS and an extra field, and described data portion is the DEFLATE data format.
8. compression method according to claim 7, it is characterized in that: described ID1 and ID2 respectively account for 1 byte, and are fixed value, and described CM, FLG, XFL, OS all account for 1 byte, and described MTIME accounts for 4 bytes.
CN2013101970320A 2013-05-21 2013-05-21 Compression system and method based on FPFA (Field Programmable Gate Array) Pending CN103248369A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2013101970320A CN103248369A (en) 2013-05-21 2013-05-21 Compression system and method based on FPFA (Field Programmable Gate Array)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2013101970320A CN103248369A (en) 2013-05-21 2013-05-21 Compression system and method based on FPFA (Field Programmable Gate Array)

Publications (1)

Publication Number Publication Date
CN103248369A true CN103248369A (en) 2013-08-14

Family

ID=48927621

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2013101970320A Pending CN103248369A (en) 2013-05-21 2013-05-21 Compression system and method based on FPFA (Field Programmable Gate Array)

Country Status (1)

Country Link
CN (1) CN103248369A (en)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104811209A (en) * 2015-04-22 2015-07-29 北京理工大学 Compressed file data embedding method and device capable of resisting longest matching detection
CN104881339A (en) * 2015-05-18 2015-09-02 昆山龙腾光电有限公司 Testing device, testing method and display system
CN105007083A (en) * 2015-08-13 2015-10-28 东南大学 Method for storing output result of LZ77 compression algorithm
CN106788447A (en) * 2016-11-29 2017-05-31 郑州云海信息技术有限公司 The matching length output intent and device of a kind of LZ77 compression algorithms
CN106850141A (en) * 2017-01-20 2017-06-13 济南浪潮高新科技投资发展有限公司 A kind of physical message system data Lossless Compression transmission method of use DEFLATE algorithms
CN107688439A (en) * 2017-08-15 2018-02-13 深圳前海信息技术有限公司 Deflate-based generation method and device of unassociated compressed block
CN109672449A (en) * 2018-12-13 2019-04-23 武汉中元华电科技股份有限公司 A kind of device and method fast implementing LZ77 compression based on FPGA
CN110334066A (en) * 2019-05-09 2019-10-15 苏州浪潮智能科技有限公司 A kind of Gzip decompression method, apparatus and system based on FPGA
CN111884660A (en) * 2020-07-13 2020-11-03 山东云海国创云计算装备产业创新中心有限公司 Huffman coding equipment
CN112287391A (en) * 2020-11-18 2021-01-29 广东新禾道信息科技有限公司 Block chain-based data secure storage method and system
CN116578542A (en) * 2023-07-13 2023-08-11 鹏钛存储技术(南京)有限公司 Hardware implementation method and system of self-adaptive compression algorithm based on configurable logic

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7653248B1 (en) * 2005-11-07 2010-01-26 Science Applications International Corporation Compression for holographic data and imagery
CN102821275A (en) * 2011-06-08 2012-12-12 中兴通讯股份有限公司 Data compression method, data compression device, data decompression method and data decompression device
CN103039005A (en) * 2010-07-30 2013-04-10 雪佛龙美国公司 System and method for data compression using a field programmable gate array

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7653248B1 (en) * 2005-11-07 2010-01-26 Science Applications International Corporation Compression for holographic data and imagery
CN103039005A (en) * 2010-07-30 2013-04-10 雪佛龙美国公司 System and method for data compression using a field programmable gate array
CN102821275A (en) * 2011-06-08 2012-12-12 中兴通讯股份有限公司 Data compression method, data compression device, data decompression method and data decompression device

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于FPGA的压缩算法研究与实现: "田园", 《中国优秀硕士学位论文全文数据库 信息科技辑》, no. 02, 15 February 2012 (2012-02-15) *

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104811209B (en) * 2015-04-22 2017-10-17 北京理工大学 A kind of the compressed file data embedding method and device of anti-most long matching detection
CN104811209A (en) * 2015-04-22 2015-07-29 北京理工大学 Compressed file data embedding method and device capable of resisting longest matching detection
CN104881339A (en) * 2015-05-18 2015-09-02 昆山龙腾光电有限公司 Testing device, testing method and display system
CN104881339B (en) * 2015-05-18 2018-09-18 昆山龙腾光电有限公司 A kind of test device, test method and display system
CN105007083A (en) * 2015-08-13 2015-10-28 东南大学 Method for storing output result of LZ77 compression algorithm
CN106788447B (en) * 2016-11-29 2020-07-28 苏州浪潮智能科技有限公司 Matching length output method and device for L Z77 compression algorithm
CN106788447A (en) * 2016-11-29 2017-05-31 郑州云海信息技术有限公司 The matching length output intent and device of a kind of LZ77 compression algorithms
CN106850141A (en) * 2017-01-20 2017-06-13 济南浪潮高新科技投资发展有限公司 A kind of physical message system data Lossless Compression transmission method of use DEFLATE algorithms
CN107688439A (en) * 2017-08-15 2018-02-13 深圳前海信息技术有限公司 Deflate-based generation method and device of unassociated compressed block
CN109672449A (en) * 2018-12-13 2019-04-23 武汉中元华电科技股份有限公司 A kind of device and method fast implementing LZ77 compression based on FPGA
CN109672449B (en) * 2018-12-13 2023-03-10 武汉中元华电科技股份有限公司 Device and method for rapidly realizing LZ77 compression based on FPGA
CN110334066A (en) * 2019-05-09 2019-10-15 苏州浪潮智能科技有限公司 A kind of Gzip decompression method, apparatus and system based on FPGA
CN111884660A (en) * 2020-07-13 2020-11-03 山东云海国创云计算装备产业创新中心有限公司 Huffman coding equipment
CN112287391A (en) * 2020-11-18 2021-01-29 广东新禾道信息科技有限公司 Block chain-based data secure storage method and system
CN116578542A (en) * 2023-07-13 2023-08-11 鹏钛存储技术(南京)有限公司 Hardware implementation method and system of self-adaptive compression algorithm based on configurable logic
CN116578542B (en) * 2023-07-13 2023-09-29 鹏钛存储技术(南京)有限公司 Hardware implementation method and system of self-adaptive compression algorithm based on configurable logic

Similar Documents

Publication Publication Date Title
CN103248369A (en) Compression system and method based on FPFA (Field Programmable Gate Array)
US11947494B2 (en) Organizing prime data elements using a tree data structure
US8135683B2 (en) Method and apparatus for data redundancy elimination at the block level
CN107210753B (en) Lossless reduction of data by deriving data from prime data units residing in a content association filter
US9477682B1 (en) Parallel compression of data chunks of a shared data object using a log-structured file system
EP3120266B1 (en) Ozip compression and decompression
US20120191672A1 (en) Dictionary for data deduplication
CN107682016B (en) Data compression method, data decompression method and related system
US10735025B2 (en) Use of data prefixes to increase compression ratios
CN107046812A (en) A kind of data save method and device
US11070230B2 (en) Run-length base-delta encoding for high-speed compression
CN101783788A (en) File compression method, file compression device, file decompression method, file decompression device, compressed file searching method and compressed file searching device
CN104579356A (en) Method and system for boosting decompression in the presence of reoccurring Huffman trees
EP3387647B1 (en) Reduction of audio data and data stored on a block processing storage system
Abali et al. Data compression accelerator on IBM POWER9 and z15 processors: Industrial product
CN1426629A (en) Method and apparatus for optimized lossless compression using plurality of coders
US8989507B2 (en) Bitmap compression for fast searches and updates
US10380240B2 (en) Apparatus and method for data compression extension
Abali et al. Data compression accelerator on ibm power9 and z15 processors
US12001237B2 (en) Pattern-based cache block compression
US10681106B2 (en) Entropy sharing across multiple compression streams
Takafuji et al. GPU implementations of deflate encoding and decoding
US11748307B2 (en) Selective data compression based on data similarity
Kim et al. Dual pattern compression using data-preprocessing for large-scale gpu architectures
Philip et al. LiBek II: A novel compression architecture using adaptive dictionary

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication

Application publication date: 20130814

RJ01 Rejection of invention patent application after publication