CN112969074B - 一种应用于静态霍夫曼表的全并行频数排序生成方法 - Google Patents

一种应用于静态霍夫曼表的全并行频数排序生成方法 Download PDF

Info

Publication number
CN112969074B
CN112969074B CN202110133517.8A CN202110133517A CN112969074B CN 112969074 B CN112969074 B CN 112969074B CN 202110133517 A CN202110133517 A CN 202110133517A CN 112969074 B CN112969074 B CN 112969074B
Authority
CN
China
Prior art keywords
frequency
symbol
freq
sum
symbols
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
Application number
CN202110133517.8A
Other languages
English (en)
Other versions
CN112969074A (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.)
Southwest Jiaotong University
Original Assignee
Southwest Jiaotong 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 Southwest Jiaotong University filed Critical Southwest Jiaotong University
Priority to CN202110133517.8A priority Critical patent/CN112969074B/zh
Publication of CN112969074A publication Critical patent/CN112969074A/zh
Application granted granted Critical
Publication of CN112969074B publication Critical patent/CN112969074B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
    • 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
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation

Abstract

本发明公开了一种应用于静态霍夫曼表的全并行频数排序生成方法,具体为:对257个符号的频数进行排序,排序基于桶排序算法进行设计分为3级:频数大小比较:把所有257个符号的频数与除它以外剩下256个符号的频数进行比较;比较结果相加:将每个符号对应的寄存器中比较的结果进过3级相加得到对应符号的频数的位置的大小;输出排序结果:将每个符号对应的频数存入新的寄存器组输出得到排序结果。本发明能够在三个周期之内完成对频数的排序有效地减小霍夫曼表生成的时间。

Description

一种应用于静态霍夫曼表的全并行频数排序生成方法
技术领域
本发明属于微电子技术领域,涉及数字图像编码芯片设计领域,尤其是一种应用于静态霍夫曼表的全并行频数排序生成方法。
背景技术
霍夫曼编码是可变长编码的一种,由霍夫曼于1952年提出,因其具有高压缩率的特点而广泛应用于数据压缩、音频压缩和图像压缩等领域。霍夫曼表是霍夫曼编码的重要组成部分,霍夫曼表能准确的反映数据的压缩情况,一张精确的霍夫曼表能够在一定程度上对提高压缩霍夫曼编码起到重要作用。
静态霍夫曼表的生成通常分为两个过程,首先对待编码字符进行一遍与扫描,然后进行对编码的分配过程,这两个过程为编码预扫描过程和编码分配过程。在编码预扫描阶段,首先通过对待编码字符进行扫描来进行对码字表的构建,然后在编码分配阶段,按照预扫描过程中得到的码字表对码字进行编码的分配。这样的编码方式对所有数据都进行了扫描与分配,得到精度较高的霍夫曼表,但是这样的编码方式需要对数据本身进行2次扫描,对时间消耗比较大。所以静态霍夫曼表的建立,有编码速度慢、时间周期长和消耗大量硬件资源的缺点。
发明内容
为解决上述问题,本发明提供一种应用于静态霍夫曼表的全并行频数排序生成方法。
本发明的一种应用于静态霍夫曼表的全并行频数排序生成方法,对257(0~256)个符号的频数进行排序;排序基于桶排序算法进行设计分为3级,分别是:频数大小比较、比较结果相加和输出排序结果。具体包括以下步骤:
步骤1:把所有257个符号的频数与除它以外剩下256个符号的频数进行比较。
其中,符号0的频数FREQ_00就与符号1的频数FREQ_01、符号2的频数FREQ_02、…、符号256的频数FREQ_256相比,得到比较结果存入freq0寄存器中,分别为:freq0[0]表示符号0的频数FREQ_00和符号1的频数FREQ_01比较大小的结果,freq0[1]表示符号0的频数和符号2的频数比较大小的结果,…,freq0[255]表示符号0的频数和符号256的频数比较大小的结果。
同理,符号1的频数FREQ_01与其他256个符号的频数进行比较,相比得到比较结果存入freq1寄存器中,…,符号256的频数FREQ_256与其他256个符号的频数进行比较,相比得到比较结果存入freq256寄存器中。
这样得到257个比较大小的结果freq0、freq1、…、freq256;总共需要65792个比较器实现一个周期完成所有257个符号的频数与除它以外剩下256个符号的频数进行比较。
步骤2:将每个符号对应的寄存器中比较的结果经过3级相加得到对应符号的频数的位置的大小。
其中,符号0对应的freq0寄存器中比较的结果freq0[0]、freq0[1]、…、freq0[255]每8个分成一组进行相加得到中间结果sum0[0]、sum0[1]、…、sum0[31],再把得到的8个比较结果之和32个sum0每8个一组进行再次求和得到4组64个比较大小之和的结果sum_mid0[0]、sum_mid0[1]、sum_mid0[2]、sum_mid0[3],把这4个结果进行相加就得到了最终的符号0的位置的大小sum_end0。
同理,得到257个符号对应的频数的位置的大小sum_end0、sum_end1、…、sun_end256;
每个符号比较结果的大小计算都有256个加法器进行相加,得到257个符号对应的频数排序位置的大小sum_end0、sum_end1、…、sun_end256。
步骤3:将每个符号对应的频数存入新的寄存器组输出得到排序结果。
把符号0的频数FREQ_00存入FREQ_NEW_SORT[sum_end0]中,把符号1的频数FREQ_01存入FREQ_NEW_SORT[sum_end1],…,把符号256的频数FREQ_256存入FREQ_NEW_SORT[sum_end256],再把FREQ_NEW_SORT寄存器组输出就得到排序结果,完成排序。
本发明的有益及技术效果为:
本发明能够在三个周期之内完成对频数的排序有效地减小霍夫曼表生成的时间。
附图说明
图1为符号0的频数排序示意图。
图2为本发明频数排序电路结构设计。
具体实施方式
下面结合附图和具体实施方法对本发明做进一步详细说明。
本发明的一种应用于静态霍夫曼表的全并行频数排序生成方法,使用如图2所示的电路结构,对257(0~256)个符号的频数进行排序;排序基于桶排序算法进行设计分为3级,分别是:频数大小比较、比较结果相加和输出排序结果。
用符号0的频数作为排序示例如图1所示,第一级输入的是257个符号的频数,FREQ_00、FREQ_01、FREQ_02、…、FREQ_255表示每个符号对应的频数。FREQ_00对应的是符号0的频数,FREQ_01对应是符号1的频数,FREQ_02对应的是符号2的频数,…,FREQ_256对应的是256的频数。freq0[0]表示符号0的频数FREQ_00和符号1的频数FREQ_01比较大小的结果,freq0[1]表示符号0的频数和符号2的频数比较大小的结果,…,freq0[255]表示符号0的频数和符号256的频数比较大小的结果。第二级输入为第一级输入的256个比较结果即freq0[0]、freq0[1]、freq0[2]、…、freq0[255],把它们每8个分成一组进行相加得到中间结果sum0[0]、sum0[1]、sum0[2]、…、sum0[31],再把得到的8个比较结果之和32个sum0每8个一组进行再次求和得到4组64个比较大小之和的结果sum_mid0[0]、sum_mid0[1]、sum_mid0[2]、sum_mid0[3],把这4个结果进行相加就得到了最终的符号0的大小位置sum_end0。第三级的输入为第二级的输出,即符号0与其他剩下的256个符号频数大小相比的结果sum_end0,将符号FREQ_00存入FEEQ_NEW_SORT[sum_end0],再把FREQ_NEW_SORT寄存器组输出就得到排序结果。
同理,输入257个符号对应的频数在3个周期之内就能得到排序的结果。

Claims (1)

1.一种应用于静态霍夫曼表的全并行频数排序生成方法,其特征在于,对257个符号的频数进行排序,即对符号0~256的频数进行排序;排序基于桶排序算法进行设计分为3级,分别是:频数大小比较、比较结果相加和输出排序结果;具体包括以下步骤:
步骤1:把所有257个符号的频数与除它以外剩下256个符号的频数进行比较:
其中,符号0的频数FREQ_00就与符号1的频数FREQ_01、符号2的频数FREQ_02、…、符号256的频数FREQ_256相比,得到比较结果存入freq0寄存器中,分别为:freq0[0]表示符号0的频数FREQ_00和符号1的频数FREQ_01比较大小的结果,freq0[1]表示符号0的频数和符号2的频数比较大小的结果,…,freq0[255]表示符号0的频数和符号256的频数比较大小的结果;
同理,符号1的频数与其他256个符号的频数进行比较,相比得到比较结果存入freq1寄存器中,…,符号256的频数FREQ_256与其他256个符号的频数进行比较,相比得到比较结果存入freq256寄存器中;
这样得到257个比较大小的结果freq0、freq1、…、freq256;总共需要65792个比较器实现一个周期完成所有257个符号的频数与除它以外剩下256个符号的频数进行比较;
步骤2:将每个符号对应的寄存器中比较的结果经过3级相加得到对应符号的频数的位置的大小:
其中,符号0对应的freq0寄存器中比较的结果freq0[0]、freq0[1]、…、freq0[255]每8个分成一组进行相加得到中间结果sum0[0]、sum0[1]、…、sum0[31],再把得到的8个比较结果之和32个sum0每8个一组进行再次求和得到4组64个比较大小之和的结果sum_mid0[0]、sum_mid0[1]、sum_mid0[2]、sum_mid0[3],把这4个结果进行相加就得到了最终的符号0的位置的大小sum_end0;
同理,得到257个符号对应的频数的位置的大小sum_end0、sum_end1、…、sun_end256;
每个符号比较结果的大小计算都有256个加法器进行相加,得到257个符号对应的频数排序位置的大小sum_end0、sum_end1、…、sun_end256;
步骤3:将每个符号对应的频数存入新的寄存器组输出得到排序结果:
把符号0的频数FREQ_00存入FREQ_NEW_SORT[sum_end0]中,把符号1的频数FREQ_01存入FREQ_NEW_SORT[sum_end1],…,把符号256的频数FREQ_256存入FREQ_NEW_SORT[sum_end256],再把FREQ_NEW_SORT寄存器组输出就得到排序结果,完成排序。
CN202110133517.8A 2021-02-01 2021-02-01 一种应用于静态霍夫曼表的全并行频数排序生成方法 Active CN112969074B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110133517.8A CN112969074B (zh) 2021-02-01 2021-02-01 一种应用于静态霍夫曼表的全并行频数排序生成方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110133517.8A CN112969074B (zh) 2021-02-01 2021-02-01 一种应用于静态霍夫曼表的全并行频数排序生成方法

Publications (2)

Publication Number Publication Date
CN112969074A CN112969074A (zh) 2021-06-15
CN112969074B true CN112969074B (zh) 2021-11-16

Family

ID=76272563

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110133517.8A Active CN112969074B (zh) 2021-02-01 2021-02-01 一种应用于静态霍夫曼表的全并行频数排序生成方法

Country Status (1)

Country Link
CN (1) CN112969074B (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101094401A (zh) * 2006-06-23 2007-12-26 深圳安凯微电子技术有限公司 一种图像压缩/解压缩方法和系统
CN107294539A (zh) * 2017-05-23 2017-10-24 浙江大学 一种准动态霍夫曼硬件编码器及编码方法
CN107483059A (zh) * 2017-07-31 2017-12-15 广东工业大学 一种基于动态霍夫曼树的多路数据编解码方法及装置
CN107565974A (zh) * 2017-08-14 2018-01-09 同济大学 一种静态哈夫曼并行全编码实现方法
CN110072114A (zh) * 2019-04-16 2019-07-30 西南交通大学 用于静态霍夫曼表生成的全并行频数生成电路结构与方法
CN111787335A (zh) * 2020-07-08 2020-10-16 绍兴聚量数据技术有限公司 基于ambtc压缩技术和霍夫曼编码的可逆信息隐藏方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6336058B2 (ja) * 2013-10-14 2018-06-06 マイクロソフト テクノロジー ライセンシング,エルエルシー ビデオ及び画像符号化及び復号のためのベースカラーインデックスマップモードの機能

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101094401A (zh) * 2006-06-23 2007-12-26 深圳安凯微电子技术有限公司 一种图像压缩/解压缩方法和系统
CN107294539A (zh) * 2017-05-23 2017-10-24 浙江大学 一种准动态霍夫曼硬件编码器及编码方法
CN107483059A (zh) * 2017-07-31 2017-12-15 广东工业大学 一种基于动态霍夫曼树的多路数据编解码方法及装置
CN107565974A (zh) * 2017-08-14 2018-01-09 同济大学 一种静态哈夫曼并行全编码实现方法
CN110072114A (zh) * 2019-04-16 2019-07-30 西南交通大学 用于静态霍夫曼表生成的全并行频数生成电路结构与方法
CN111787335A (zh) * 2020-07-08 2020-10-16 绍兴聚量数据技术有限公司 基于ambtc压缩技术和霍夫曼编码的可逆信息隐藏方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
一种分组并行的范式霍夫曼编码VLSI结构;叶帅 等;《微电子学》;20200430;第50卷(第2期);全文 *

Also Published As

Publication number Publication date
CN112969074A (zh) 2021-06-15

Similar Documents

Publication Publication Date Title
US5045852A (en) Dynamic model selection during data compression
Said Comparative Analysis of Arithmetic Coding Computational Complexity.
CN107294539B (zh) 一种准动态霍夫曼硬件编码器及编码方法
CN108628898B (zh) 数据入库的方法、装置和设备
KR100203907B1 (ko) 병렬 데이타 비트 카운터
CN112969074B (zh) 一种应用于静态霍夫曼表的全并行频数排序生成方法
Kumar et al. Finding a single defective in binomial group-testing
JPH0851370A (ja) 符号化装置およびその方法
US3825924A (en) Pulse code modulation code conversion
CN117155405A (zh) 一种基于梯度下降的tANS编码、解码转换表快速建立方法
CN110072114B (zh) 用于静态霍夫曼表生成的全并行频数生成电路结构与方法
JPH0556070B2 (zh)
Chen et al. An efficient construction strategy for near-optimal variable-length error-correcting codes
CN113157247B (zh) 一种可重构整型-浮点型乘法器
CN115526131A (zh) 多级编码近似计算Tanh函数的方法及装置
US20130222159A1 (en) Entropy method of binary-ternary lossless data coding
CN103428502B (zh) 一种解码方法及解码系统
CN107623524A (zh) 一种基于硬件的Huffman编码方法及系统
Ong et al. A high throughput low cost context-based adaptive arithmetic codec for multiple standards
CN112764712B (zh) 一种高性能近似Booth乘法器及计算方法
CN107277553A (zh) 一种二元算术编码器
CN112612762A (zh) 数据处理方法及相关设备
CN112016270A (zh) 汉信码的物流信息编码方法、装置及设备
Dang Image lossless compression algorithm optimization and FPGA implementation
KR20080053137A (ko) 가변길이 다중비트 코딩을 이용하여 최소 부호수를 구하는방법

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