CN109672450B - 一种采用硬件动态分片实现最优huffman编码的装置及方法 - Google Patents
一种采用硬件动态分片实现最优huffman编码的装置及方法 Download PDFInfo
- Publication number
- CN109672450B CN109672450B CN201811525137.3A CN201811525137A CN109672450B CN 109672450 B CN109672450 B CN 109672450B CN 201811525137 A CN201811525137 A CN 201811525137A CN 109672450 B CN109672450 B CN 109672450B
- Authority
- CN
- China
- Prior art keywords
- module
- data
- binary tree
- fragmentation
- huffman coding
- 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.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion 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/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/40—Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
Abstract
本发明涉及一种采用硬件动态分片实现最优HUFFMAN编码的装置和方法,装置包括数据分片模块、数据分析模块、二叉树生成模块、原始数据缓存模块、HUFFMAN编码模块,其特征在于:数据分片模块分别与数据分析模块、二叉树生成模块、原始数据缓存模块相连,HUFFMAN编码模块分别与二叉树生成模块、原始数据缓存模块相连。本发明整个HUFFMAN编码,采用流水线模式,提高编码效率;通过实时的对编码数据进行统计分析,动态的对编码数据进行分片处理,提高压缩率;采用硬件方法实现,能够充分发挥硬件在速度方面的优势,达到最优HUFFMAN编码的目的。
Description
技术领域:
本发明涉及一种采用硬件动态分片实现最优HUFFMAN编码的装置及方法,应用于所有网络数据需要实现最优HUFFMAN编码的领域。
背景技术:
二叉树生成要么对整个数据块进行统计之后实现,要么按照固定的长度进行数据分片之后实现,这样做从宏观上看实质上是一种固定的动态HUFFMAN编码模式,它的压缩率完全依靠原始数据的整体分布情况,无法实现最优的HUFFMAN编码。
发明内容:
本发明的目的为了克服上述现有技术存在的问题和缺陷,提供一种采用硬件动态分片实现最优HUFFMAN编码的装置及方法,本发明采用动态分片可以实时的根据原始数据的分布情况,动态的将原始数据按照数据分布特征进行分片处理,每个单独的数据块进行各自的最优HUFFMAN编码,使整个数据块的压缩率最高。
本发明采用的技术方案为:
一种采用硬件动态分片实现最优HUFFMAN编码的装置,包括数据分片模块、数据分析模块、二叉树生成模块、原始数据缓存模块、HUFFMAN编码模块,其特征在于:数据分片模块分别与数据分析模块、二叉树生成模块、原始数据缓存模块相连,HUFFMAN编码模块分别与二叉树生成模块、原始数据缓存模块相连;
所述的数据分片模块负责对输入的网络数据进行分片处理,并将输入的网络数据传输给原始数据缓存模块,当接收到数据分析模块的分片指示信号时,完成一次网络数据包的分片动作,将分片的网络数据包传输给二叉树生成模块,接着进行剩下网络数据的分片处理;
所述的数据分析模块负责对输入的网络数据进行统计分析处理,当接收完成的网络数据满足一定的分布情况或达到一定的长度时,产生分片指示信号并传输给数据分片模块;
所述的二叉树生成模块负责对分片后的网络数据进行最优二叉树的生成,产生二叉树表;
所述的原始数据缓存模块对原始网络数据进行缓存,等待二叉树生成模块完成最优二叉树表并传输给HUFFMAN编码模块后,HUFFMAN编码模块就会从原始数据缓存模块中读取原始数据进行编码;
所述的HUFFMAN编码模块根据最优二叉树表对原始数据缓存模块传输的原始网络数据进行HUFFMAN编码。
一种采用硬件动态分片实现最优HUFFMAN编码的方法,其特征在于按以下步骤进行:
步骤一:数据分片模块对输入的网络数据进行分片处理,并将输入的网络数据传输给原始数据缓存模块,数据分析模块对输入的网络数据进行统计分析处理,当接收完成的网络数据满足一定的分布情况或达到一定的长度时,产生分片指示信号传输给数据分片模块;当接收到数据分析模块的分片指示信号时,完成一次网络数据包的分片动作,将分片的网络数据包传输给二叉树生成模块,接着进行剩下网络数据的分片处理;
步骤二:二叉树生成模块对分片后的网络数据包进行最优二叉树的生成,产生二叉树表传输给HUFFMAN编码模块;同时原始数据缓存模块对原始的网络数据进行缓存,等待二叉树生成模块完成最优二叉树表并传输给HUFFMAN编码模块后,HUFFMAN编码模块就会从原始数据缓存模块中读取原始数据进行编码;
步骤三:HUFFMAN编码模块根据最优二叉树表对原始数据缓存模块传输的原始网络数据进行HUFFMAN编码,达到最优HUFFMAN编码的目的。
本发明采用流模式处理思想对输入的网络数据进行分析处理实现动态自适应分片,最后按照生成的二叉树表进行动态HUFFMAN编码,达到最优HUFFMAN编码的目的。本发明采用硬件方法实现最优HUFFMAN编码的目的,提高了系统的性能。
本发明采用数据分析模块对网络数据进行分析处理,当接收完成的网络数据满足一定的分布情况(分布方法可自定义)或达到一定的长度(长度可自定义)时,发送数据分片指示信号给数据分片模块;数据分片模块接收到分片指示信号后,及时的对输入的网络数据进行分片处理,完成对网络数据的动态分片;接着二叉树生成模块按照分片之后的数据块进行最优二叉树的生成,同时原始数据缓存模块缓存原始的网络数据;最后HUFFMAN编码模块通过二叉树生成模块生成的最优二叉树,对数据缓存模块给过来的原始网络数据,进行动态HUFFMAN编码;整个操作流程融合“流水线”处理思想,独立工作,达到最优HUFFMAN编码的目的。
实施本发明的优势:1.整个HUFFMAN编码,采用流水线模式,提高编码效率;2.通过实时的对编码数据进行统计分析,动态的对编码数据进行分片处理,提高压缩率;3.采用硬件方法实现,能够充分发挥硬件在速度方面的优势。
附图说明:
图1为本发明装置的结构框图。
具体实施方式:
结合附图对本发明作进一步描述。
按下图1中所示,本发明装置包括数据分片模块、数据分析模块、二叉树生成模块、原始数据缓存模块、HUFFMAN编码模块,其特征在于:数据分片模块分别与数据分析模块、二叉树生成模块、原始数据缓存模块相连,HUFFMAN编码模块分别与二叉树生成模块、原始数据缓存模块相连;
所述的数据分片模块负责对输入的网络数据进行分片处理,并将输入的网络数据传输给原始数据缓存模块,当接收到数据分析模块的分片指示信号时,完成一次网络数据包的分片动作,将分片的网络数据包传输给二叉树生成模块,接着进行剩下网络数据的分片处理;
所述的数据分析模块负责对输入的网络数据进行统计分析处理,当接收完成的网络数据满足一定的分布情况或达到一定的长度时,产生分片指示信号并传输给数据分片模块;
所述的二叉树生成模块负责对分片后的网络数据进行最优二叉树的生成,产生二叉树表;
所述的原始数据缓存模块对原始网络数据进行缓存,等待二叉树生成模块完成最优二叉树表并传输给HUFFMAN编码模块后,HUFFMAN编码模块就会从原始数据缓存模块中读取原始数据进行编码;
所述的HUFFMAN编码模块根据最优二叉树表对原始数据缓存模块传输的原始网络数据进行HUFFMAN编码。
一种采用硬件动态分片实现最优HUFFMAN编码的方法,其特征在于按以下步骤进行:
步骤一:数据分片模块对输入的网络数据进行分片处理,并将输入的网络数据传输给原始数据缓存模块,数据分析模块对输入的网络数据进行统计分析处理,当接收完成的网络数据满足一定的分布情况或达到一定的长度时,产生分片指示信号传输给数据分片模块;当接收到数据分析模块的分片指示信号时,完成一次网络数据包的分片动作,将分片的网络数据包传输给二叉树生成模块,接着进行剩下网络数据的分片处理;
步骤二:二叉树生成模块对分片后的网络数据包进行最优二叉树的生成,产生二叉树表传输给HUFFMAN编码模块;同时原始数据缓存模块对原始的网络数据进行缓存,等待二叉树生成模块完成最优二叉树表并传输给HUFFMAN编码模块后,HUFFMAN编码模块就会从原始数据缓存模块中读取原始数据进行编码;
步骤三:HUFFMAN编码模块根据最优二叉树表对原始数据缓存模块传输的原始网络数据进行HUFFMAN编码,达到最优HUFFMAN编码的目的。
本发明所有处理模块形成数据流形式,对网络数据进行动态自适应分片,实现最优的HUFFMAN编码;由于采用硬件实现,完成网络数据分析之后,网络数据分包指示信号能够及时的反馈给数据分片模块,充分显示了该方案的优势。
例如对于网络数据0-286统计之后的分布情况如表一、表二、表三所示:
表一:前一半数据统计值及编码值
表二:后一半数据统计值及编码值
表三:全部数据统计值及编码值
假设按照传统思维,即按照固定长度进行分片,统计的结果如表三所示,该数据分布是非常均匀的,可以看到编码值也是非常均匀的,最终的HUFFMAN编码压缩率就不会特别高;
可以计算得到最终的HUFFMAN编码长度为:
1672*4+1448*4+2879*2+2560*3+3454*2+1112*4+1358*4+1010*4+404*5+595*5=51741;
如果通过本发明提出的实时分析网络数据,并在输入的网络数据统计之后的数据分布特征满足正态分布曲线特征或长度达到一定长度(可配置)时,则产生分片指示信号,那么最终就会将原始的网络数据报文进行分片处理,我们假设表三中的数据按照数据分布特征满足正态分布曲线特征时进行分片得到的是表一与表二中的两个不同的数据块,他们的编码值见表一与表二;在表二的数据分布中可以看到对于当前统计的所有数据中,大部分数据都集中在4、9、14、16这四个数据中,而其他的数据零散分布于整个数据块中,像这种数据极度分布不均匀的情况,也就是集中度非常高时,编码出来的HUFFMAN数据是最短的,压缩率是最高的;
可以计算得到表二最终的HUFFMAN编码长度为:
6*6+4*7+2876*2+5*6+3451*1+1*8+1345*3+1000*4+4*8+5*6=17402;
可以计算得到表三最终的HUFFMAN编码长度为:
1666*2+1444*2+2*8+2555*2+3*8+1111*3+13*6+10*7+400*5+590*4=19211;
最终的数据编码长度为17402+19211=36613;
可以看到采用本发明,同一块数据的编码从51741变成了36613,数据的压缩率得到了进一步的提高。
本发明实时分析网络数据,将网络数据尽可能的按照极度分布不均匀的情况进行分片,而不是按照传统思维,即按照固定的长度进行分片,这样可提高HUFFMAN编码的压缩率。本发明主要是实时的分析网络数据报文,动态进行网络数据的分片处理,压缩率更高;
本方案中数据分析模块采用的方法可根据具体的情况进行修改,灵活可配,适用范围更广;本方案引入“流水线”处理思想,整个数据流处理过程相互独立,无需等待,宏观上无间隙;本方案由于采用硬件方式实现,速度优势尤为突出。
Claims (2)
1.一种采用硬件动态分片实现最优HUFFMAN编码的装置,包括数据分片模块、数据分析模块、二叉树生成模块、原始数据缓存模块、HUFFMAN编码模块,其特征在于:数据分片模块分别与数据分析模块、二叉树生成模块、原始数据缓存模块相连,HUFFMAN编码模块分别与二叉树生成模块、原始数据缓存模块相连;
所述的数据分片模块负责对输入的网络数据进行分片处理,并将输入的网络数据传输给原始数据缓存模块,当接收到数据分析模块的分片指示信号时,完成一次网络数据包的分片动作,将分片的网络数据包传输给二叉树生成模块,接着进行剩下网络数据的分片处理;
所述的数据分析模块监测输入的网络数据,并负责对输入的网络数据进行统计分析处理,当接收的网络数据满足一定的分布情况或达到一定的长度时,产生分片指示信号并传输给数据分片模块;
所述的二叉树生成模块负责对分片后的网络数据进行最优二叉树的生成,产生二叉树表;
所述的原始数据缓存模块对原始网络数据进行缓存,等待二叉树生成模块完成最优二叉树表并传输给HUFFMAN编码模块后,HUFFMAN编码模块就会从原始数据缓存模块中读取原始数据进行编码;
所述的HUFFMAN编码模块根据最优二叉树表对原始数据缓存模块传输的原始网络数据进行HUFFMAN编码。
2.一种采用硬件动态分片实现最优HUFFMAN编码的方法,其特征在于按以下步骤进行:
步骤一:数据分片模块对输入的网络数据进行分片处理,并将输入的网络数据传输给原始数据缓存模块,数据分析模块对输入的网络数据进行统计分析处理,当接收完成的网络数据满足一定的分布情况或达到一定的长度时,产生分片指示信号传输给数据分片模块;当接收到数据分析模块的分片指示信号时,完成一次网络数据包的分片动作,将分片的网络数据包传输给二叉树生成模块,接着进行剩下网络数据的分片处理;
步骤二:二叉树生成模块对分片后的网络数据包进行最优二叉树的生成,产生二叉树表传输给HUFFMAN编码模块;同时原始数据缓存模块对原始的网络数据进行缓存,等待二叉树生成模块完成最优二叉树表并传输给HUFFMAN编码模块后,HUFFMAN编码模块就会从原始数据缓存模块中读取原始数据进行编码;
步骤三:HUFFMAN编码模块根据最优二叉树表对原始数据缓存模块传输的原始网络数据进行HUFFMAN编码,达到最优HUFFMAN编码的目的。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811525137.3A CN109672450B (zh) | 2018-12-13 | 2018-12-13 | 一种采用硬件动态分片实现最优huffman编码的装置及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811525137.3A CN109672450B (zh) | 2018-12-13 | 2018-12-13 | 一种采用硬件动态分片实现最优huffman编码的装置及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109672450A CN109672450A (zh) | 2019-04-23 |
CN109672450B true CN109672450B (zh) | 2023-01-17 |
Family
ID=66143859
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811525137.3A Active CN109672450B (zh) | 2018-12-13 | 2018-12-13 | 一种采用硬件动态分片实现最优huffman编码的装置及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109672450B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101094401A (zh) * | 2006-06-23 | 2007-12-26 | 深圳安凯微电子技术有限公司 | 一种图像压缩/解压缩方法和系统 |
WO2017095282A1 (en) * | 2015-12-02 | 2017-06-08 | Telefonaktiebolaget Lm Ericsson (Publ) | Methods and arrangements for performing enhanced network coding |
CN107294539A (zh) * | 2017-05-23 | 2017-10-24 | 浙江大学 | 一种准动态霍夫曼硬件编码器及编码方法 |
WO2017185977A1 (zh) * | 2016-04-26 | 2017-11-02 | 中国银联股份有限公司 | 一种交易质量分析装置以及交易质量分析方法 |
-
2018
- 2018-12-13 CN CN201811525137.3A patent/CN109672450B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101094401A (zh) * | 2006-06-23 | 2007-12-26 | 深圳安凯微电子技术有限公司 | 一种图像压缩/解压缩方法和系统 |
WO2017095282A1 (en) * | 2015-12-02 | 2017-06-08 | Telefonaktiebolaget Lm Ericsson (Publ) | Methods and arrangements for performing enhanced network coding |
WO2017185977A1 (zh) * | 2016-04-26 | 2017-11-02 | 中国银联股份有限公司 | 一种交易质量分析装置以及交易质量分析方法 |
CN107294539A (zh) * | 2017-05-23 | 2017-10-24 | 浙江大学 | 一种准动态霍夫曼硬件编码器及编码方法 |
Also Published As
Publication number | Publication date |
---|---|
CN109672450A (zh) | 2019-04-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11817887B2 (en) | Methods and apparatus to compress data | |
WO2022021852A1 (zh) | 一种基于fpga的fast协议解码方法、装置及设备 | |
CN101308658B (zh) | 一种基于片上系统的音频解码器及其解码方法 | |
CN105072360A (zh) | 一种多屏拼接控制显示系统及方法 | |
CN102595093A (zh) | 动态更改视频编码的视频通信方法及系统 | |
ATE508585T1 (de) | Verfahren und vorrichtung zur videotranskodierung | |
WO2016110031A1 (zh) | 数据流的解码方法及装置 | |
CN106534884B (zh) | 一种视频编码中码率控制方法及系统 | |
CN109672450B (zh) | 一种采用硬件动态分片实现最优huffman编码的装置及方法 | |
CN108023680B (zh) | 基于vtdm帧结构的低速可变速率多模式编码调制器 | |
CN205005157U (zh) | 一种多屏拼接控制显示系统 | |
CN101547010B (zh) | 编码解码系统、方法及装置 | |
CN105323593A (zh) | 一种多媒体转码调度方法和装置 | |
CN102752600B (zh) | 一种降低图像传输系统时延的实现方法 | |
CN105515943A (zh) | 一种即时通讯实现方法 | |
CN205105230U (zh) | 一种基于ip网络的综合信息应急广播数字终端 | |
CN104050968B (zh) | 一种嵌入式音频采集端aac音频编码方法 | |
CN105338371A (zh) | 一种多媒体转码调度方法和装置 | |
CN102857230B (zh) | 一种基于无损压缩数据传输技术的高速程序控制器 | |
CN205430500U (zh) | 一种多媒体转码调度装置 | |
CN204633949U (zh) | 一种视频编码器 | |
WO2020248262A1 (zh) | 基于物联网的数据采集管理系统 | |
CN211509209U (zh) | Sdi视频h.265编解码传输设备 | |
CN212936044U (zh) | 一种基于物联网实时监控的会议显示终端 | |
CN102307124A (zh) | 一种评估流媒体适配性能的方法、系统和移动终端 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |