CN110072114B - 用于静态霍夫曼表生成的全并行频数生成电路结构与方法 - Google Patents
用于静态霍夫曼表生成的全并行频数生成电路结构与方法 Download PDFInfo
- Publication number
- CN110072114B CN110072114B CN201910302433.5A CN201910302433A CN110072114B CN 110072114 B CN110072114 B CN 110072114B CN 201910302433 A CN201910302433 A CN 201910302433A CN 110072114 B CN110072114 B CN 110072114B
- Authority
- CN
- China
- Prior art keywords
- symbol
- freq
- module
- sub
- value
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/90—Methods 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/91—Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本发明公开一种用于静态霍夫曼表生成的全并行频数生成电路结构与方法,包括257个Cell子模块以及信号发生模块;每个Cell子模块存储有符号值SYMBOL和该符号值对应的频数值FREQ;各Cell子模块接收信号Input_symbol,当前子模块的输出信号Freq_out与Symbol_Out接入下一级子模块,分别作为下一级子模块的输入的控制信号Freq_Right和Symbol_Right;下一级子模块根据输入的控制信号决定自身存储的符号值SYMBOL和频数值FREQ是否发生变化,以实现更新的功能。本发明所提出的电路结构和方法能够有效地减小霍夫曼表生成的时间,提高图片编码效率。
Description
技术领域
本发明涉及数字图像编码芯片设计技术领域,具体为一种用于静态霍夫曼表生成的全并行频数生成电路结构与方法。
背景技术
霍夫曼编码是可变长编码的一种,由Huffman于1952年提出,其基本的实现原理是先对图像数据扫描一遍,经过DCT、量化、Zigzag排序、DC/AC系数中间符号转换等操作,再统计出其中各种符号出现的概率,按概率的出现的频率对应每个字符生成不同长度的唯一码字,由此得到一张图像的霍夫曼码表。最后,用对应码字来替换经过中间符号转换后的字符。由于霍夫曼码表中出现频率大的字符对应码字长度短,频率小的字符对应的码字长度长,所以最后得到的码流相比原数据会显著减小,这样就可以达到压缩数据的目的。
针对固有霍夫曼表与被压缩数据关联性较小、压缩率较低的问题,现有基于静态霍夫曼编码方法采用了统计图片或者码块中所有符号实际频数的策略,进而精确地给出所有符号频数,最终提升了压缩率。但是,该方法需要在图片编码前对图片扫描一遍,增大了图片处理时间,降低了图片编码效率。
发明内容
针对上述问题,本发明的目的在于提供一种能够有效地减小霍夫曼表生成的时间,提高图片编码效率的用于静态霍夫曼表生成的全并行频数生成电路结构与方法。技术方案如下:
一种用于静态霍夫曼表生成的全并行频数生成电路结构,包括257个Cell子模块:Cell_0子模块、Cell_1子模块、…、Cell_256子模块,以及信号发生模块;每个Cell子模块存储有符号值SYMBOL和该符号值对应的频数值FREQ;输入字符值的范围为0-255,Cell_256子模块用于提供取反码点;各Cell子模块接收信号Input_symbol,当前子模块的输出信号Freq_out与Symbol_out接入下一级子模块,分别作为下一级子模块的输入的控制信号Freq_Right和Symbol_Right;下一级子模块根据输入的控制信号决定自身存储的符号值SYMBOL和频数值FREQ是否发生变化;被输入新的一个字符后,该子模块存储的对应的符号频数值FREQ发生改变,从而更新该子模块的控制信号Symbol_EN,Freq_New 和Symbol_Set;信号Symbol_EN通过所述信号发生模块更新信号Shift_EN的值来选定需要更新的子模块,选定完成后,通过信号Freq_New 和Symbol_Set来实现对各个模块的更新。
一种全并行频数生成方法,每个Cell子模块包含置位Freq_New、保持Freq_0和移位Freq_Right三种更新方式,更新方式的选择由输入的控制信号shift_EN、Min_EN、SORT;Freq_Right、Freq_New、Freq _0的大小关系,以及Symbol_Set、Symbol_0、Symbol_ Right的大小关系来选择;shift_EN控制子模块数据的更新;若shift_EN为1,表示该子模块需要更新,若为0,则该子模块的值保持不变;Min_EN为1表示该模块符号最小,则将其频数置零,符号置为左边子模块的符号;当SORT为1,shift_EN为1,Min_EN为0时,则根据Freq_Right、Freq_New、Freq_0的关系来判断。
进一步的,所述判断的过程如下:
步骤1:.若Freq_Right等于Freq_New,需要将符号值SYMBOL大的放在右边;即若Symbol_ Right大于等于Symbol_Set,则将该子模块符号和频数都置位为左边子模块的值;若Symbol_0大于Symbol_Set或者Freq _0不等于Freq_Right,则将该子模块符号和频数都置位;若都不满足,则符号和频数值都保持不变;若Freq_Right不等于Freq_New,则进入步骤2;
步骤2:若Freq_New等于Freq _0,则将符号值SYMBOL大的放在右边;即若Symbol_0大于Symbol_Set,则将该子模块符号和频数都置位,否则保持不变;若Freq_New不等于Freq_0,则进入步骤3;
步骤3:若Freq_New大于Freq_Right,则将该子模块的符号和频数都置为左边子模块的值;否则进入步骤4;
步骤4.若Freq_New大于Freq _0,则将该子模块的符号和频数置位,否则进入步骤5;
步骤5:若以上条件都不满足,则该子模块里的值保持不变。
更进一步的,还包括代表新统计的字符的输入信号Input_symbol,其与子模块中的寄存器Symbol_0作对比,若Input_symbol与Symbol_0相等,则使能信号Symbol_EN变为1。
更进一步的,还包括能够判断当前子模块的频数值FREQ是否为0的输出信号Z_EN,用于在主电路中寻找两个非零的且频数最小的符号,并在第二阶段中使用。
本发明的有益效果是:本发明所提出的电路结构和方法能够有效地减小霍夫曼表生成的时间,提高图片编码效率。
附图说明
图1为本发明256个Cell 模块电路结构图。
图2为本发明Cell子模块工作流程。
具体实施方式
下面结合附图和具体实施例对本发明做进一步详细说明。全并行频数生成电路结构共257(0~256)个Cell子模块,Cell子模块的作用:Cell子模块会根据输入的控制信号来决定自身存储的符号和频数是否发生变化,即主要实现更新的功能。每个子模块存储着符号值SYMBOL和该符号值对应的频数值FREQ。输入字符的范围为0-255,Cell_256模块的作用是为了提供取反码点,因此图中不再给出。SORT信号来自外部,是排序模块工作的使能信号。若SORT信号为1,表示需要进行排序,否则所有子模块的值保持不变。
输入的数据,输出都能对应更新,将信号Input_symbol接入所有的子模块中。当前Cell模块的输出信号Freq_out与Symbol_out接入下一级Cell的输入控制信号Symbol_Right和Freq_Right,如图1所示。
工作机制为:当输入新的一个字符后,其子模块存储的对应的符号频数会发生改变,从而更新子模块的控制信号Symbol_EN,Freq_New 和Symbol_Set。之后,信号Symbol_EN通过Signals_Generating 模块更新新信号Shift_EN的值来选定需要更新的Cell 模块,选定完成后,通过信号Freq_New 和Symbol_Set来实现对各个模块的更新。这样就实现了根据输入的数据对256个Cell模块进行更新的功能,使各个模块输出的符号是按频数大小排序的,控制信号的更新采用组合逻辑实现,节省时间周期,实时更新数据。
具体流程如图2所示:
对于一个Cell来说,控制信号决定该模块最终输出的FREQ和SYMBOL 信号。每个子模块内部都包含置位(Freq_New),保持(Freq_0), 移位(Freq_Right)三种更新方式,更新方式的选择由输入的控制信号shift_EN、Min_EN、SORT;Freq_Right、Freq_New、Freq _0的大小关系;Symbol_Set、Symbol_0、Symbol_ Right的大小关系来选择。
shift_EN控制子模块数据的更新。若shift_EN为1,表示此子模块需要更新,若其为0,则该子模块的值保持不变;Min_EN为1的模块表示该模块符号最小,则将其频数置零,符号置为左边子模块的符号;
当SORT为1,shift_EN为1,Min_EN为0时,则根据Freq_Right、Freq_New、Freq _0的关系来判断:
1.若Freq_Right等于Freq_New,需要将SYMBOL值大的放在右边。即若Symbol_Right大于等于Symbol_Set,则将该子模块符号和频数都置位为左边子模块的值,若Symbol_0大于Symbol_Set或者Freq _0不等于Freq_Right,则将该子模块符号和频数都置位。若都不满足,则符号和频数值都保持不变。若Freq_Right不等于Freq_New,则进入“步骤2”。
2.若Freq_New等于Freq _0,同样需要将SYMBOL值大的放在右边。即若Symbol_0大于Symbol_Set,则将该子模块符号和频数都置位。否则保持不变。若Freq_New不等于Freq _0,则进入“步骤3”。
3.若Freq_New大于Freq_Right,则将该子模块的算符号和频数都置为左边子模块的值。否则进入“步骤4”。
4.若Freq_New大于Freq _0,将该子模块的符号和频数置位。否则进入“步骤5”。
5.若以上条件都不满足,则该子模块里的值保持不变。
另外,该子模块还有几个输入输出信号。Input_symbol为输入信号,代表新统计的字符,与子模块中的寄存器Symbol_0作对比,若Input_symbol与Symbol_0相等,则使能信号Symbol_EN会变为1(Symbol_EN信号为输出信号,用来在外部做一些数据更新的判断)。
最后还存在一个判断该子模块的FERQ值是否为0的输出信号Z_EN(图中未示出),主要用来在主电路中寻找两个非零的且频数最小的符号,在第二阶段会使用。
Claims (4)
1.一种用于静态霍夫曼表生成的全并行频数生成电路结构,其特征在于,包括257个Cell子模块:Cell_0子模块、Cell_1子模块、…、Cell_256子模块,以及信号发生模块;每个Cell子模块存储有符号值SYMBOL和该符号值对应的频数值FREQ;输入字符的值的范围为0-255,Cell_256子模块用于提供取反码点;各Cell子模块接收代表新统计的字符的输入信号Input_symbol,当前子模块的输出信号Freq_out与Symbol_out接入下一级子模块,分别作为下一级子模块的输入的控制信号Freq_Right和Symbol_Right;下一级子模块根据输入的控制信号决定自身存储的符号值SYMBOL和频数值FREQ是否发生变化;被输入新的一个字符后,该子模块存储的对应的符号频数值FREQ发生改变,从而更新该子模块的控制信号Symbol_EN,Freq_New 和Symbol_Set;信号Symbol_EN通过所述信号发生模块更新信号Shift_EN的值来选定需要更新的子模块,选定完成后,通过信号Freq_New 和Symbol_Set来实现对各个模块的更新。
2.一种采用权利要求1所述的电路结构进行的全并行频数生成方法,其特征在于,每个Cell子模块包含置位Freq_New、保持Freq_0和移位Freq_Right三种更新方式,更新方式的选择由输入的控制信号shift_EN、Min_EN、SORT;Freq_Right、Freq_New、Freq _0的大小关系,以及Symbol_Set、Symbol_0、Symbol_ Right的大小关系来选择;shift_EN控制子模块数据的更新;若shift_EN为1,表示该子模块需要更新,若为0,则该子模块的值保持不变;Min_EN为1表示该模块符号最小,则将其频数置零,符号置为左边子模块的符号;当SORT为1,shift_EN为1,Min_EN为0时,则根据Freq_Right、Freq_New、Freq_0的关系来判断,所述判断的过程如下:
步骤1:若Freq_Right等于Freq_New,需要将符号值SYMBOL大的放在右边;即若Symbol_Right大于等于Symbol_Set,则将该子模块符号和频数都置为左边子模块的值;若Symbol_0大于Symbol_Set或者Freq _0不等于Freq_Right,则将该子模块符号和频数都置位;若都不满足,则符号和频数值都保持不变;若Freq_Right不等于Freq_New,则进入步骤2;
步骤2:若Freq_New等于Freq _0,则将符号值SYMBOL大的放在右边;即若Symbol_0大于Symbol_Set,则将该子模块符号和频数都置位,否则保持不变;若Freq_New不等于Freq _0,则进入步骤3;
步骤3:若Freq_New大于Freq_Right,则将该子模块的符号和频数都置为右边子模块的值;否则进入步骤4;
步骤4.若Freq_New大于Freq _0,则将该子模块的符号和频数置位,否则进入步骤5;
步骤5:若以上条件都不满足,则该子模块里的值保持不变。
3.根据权利要求2所述的全并行频数生成方法,其特征在于,还包括代表新统计的字符的输入信号Input_symbol,其与子模块中的寄存器Symbol_0作对比,若Input_symbol与Symbol_0相等,则使能信号Symbol_EN变为1。
4.根据权利要求2所述的全并行频数生成方法,其特征在于,还包括能够判断当前子模块的频数值FREQ是否为0的输出信号Z_EN,用于在主电路中寻找两个非零的且频数最小符号。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910302433.5A CN110072114B (zh) | 2019-04-16 | 2019-04-16 | 用于静态霍夫曼表生成的全并行频数生成电路结构与方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910302433.5A CN110072114B (zh) | 2019-04-16 | 2019-04-16 | 用于静态霍夫曼表生成的全并行频数生成电路结构与方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110072114A CN110072114A (zh) | 2019-07-30 |
CN110072114B true CN110072114B (zh) | 2021-04-09 |
Family
ID=67367754
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910302433.5A Active CN110072114B (zh) | 2019-04-16 | 2019-04-16 | 用于静态霍夫曼表生成的全并行频数生成电路结构与方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110072114B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112332854A (zh) * | 2020-11-27 | 2021-02-05 | 平安普惠企业管理有限公司 | 霍夫曼编码的硬件实现方法、装置及存储介质 |
CN112969074B (zh) * | 2021-02-01 | 2021-11-16 | 西南交通大学 | 一种应用于静态霍夫曼表的全并行频数排序生成方法 |
CN118055256B (zh) * | 2024-04-15 | 2024-11-01 | 浙江芯劢微电子股份有限公司 | 一种dct变换的图像压缩编码方法和系统 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101626504A (zh) * | 2008-07-09 | 2010-01-13 | 上海飞来飞去多媒体创意有限公司 | 一种高速jpeg解码的方法 |
US9258013B1 (en) * | 2015-09-01 | 2016-02-09 | Rockwell Collins, Inc. | Data compression with Huffman code on multicore processors |
CN107257463A (zh) * | 2011-11-07 | 2017-10-17 | 太阳专利托管公司 | 图像编码方法和图像编码装置 |
CN107294539A (zh) * | 2017-05-23 | 2017-10-24 | 浙江大学 | 一种准动态霍夫曼硬件编码器及编码方法 |
CN206712982U (zh) * | 2017-04-25 | 2017-12-05 | 福州大学 | 一种用于VLSI设计的Huffman编码系统 |
CN107565974A (zh) * | 2017-08-14 | 2018-01-09 | 同济大学 | 一种静态哈夫曼并行全编码实现方法 |
JP2019022040A (ja) * | 2017-07-14 | 2019-02-07 | 株式会社シキノハイテック | 画像復号化装置 |
-
2019
- 2019-04-16 CN CN201910302433.5A patent/CN110072114B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101626504A (zh) * | 2008-07-09 | 2010-01-13 | 上海飞来飞去多媒体创意有限公司 | 一种高速jpeg解码的方法 |
CN107257463A (zh) * | 2011-11-07 | 2017-10-17 | 太阳专利托管公司 | 图像编码方法和图像编码装置 |
US9258013B1 (en) * | 2015-09-01 | 2016-02-09 | Rockwell Collins, Inc. | Data compression with Huffman code on multicore processors |
CN206712982U (zh) * | 2017-04-25 | 2017-12-05 | 福州大学 | 一种用于VLSI设计的Huffman编码系统 |
CN107294539A (zh) * | 2017-05-23 | 2017-10-24 | 浙江大学 | 一种准动态霍夫曼硬件编码器及编码方法 |
JP2019022040A (ja) * | 2017-07-14 | 2019-02-07 | 株式会社シキノハイテック | 画像復号化装置 |
CN107565974A (zh) * | 2017-08-14 | 2018-01-09 | 同济大学 | 一种静态哈夫曼并行全编码实现方法 |
Non-Patent Citations (1)
Title |
---|
A high speed SoftMax VLSI architecture based on basic-split;Zhixiong Di;《2018 14th IEEE International Conference on Solid-State and Integrated Circuit Technology 》;20181103;第1-3页 * |
Also Published As
Publication number | Publication date |
---|---|
CN110072114A (zh) | 2019-07-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110072114B (zh) | 用于静态霍夫曼表生成的全并行频数生成电路结构与方法 | |
US7385535B2 (en) | Decoding system and method based on context-based adaptive binary arithmetic coding | |
KR100340828B1 (ko) | 적응 확률 추정방법 및 적응 부호화 방법과 적응 복호화 방법 | |
CN100440979C (zh) | 基于上下文的自适应二维变长解码方法和装置 | |
CN101790889B (zh) | 用于基于上下文的自适应二进制算术译码位流的多级解码的架构 | |
US7817864B2 (en) | Coding apparatus and decoding apparatus | |
US20050253740A1 (en) | Method and apparatus for binarization and arithmetic coding of a data value | |
Marpe et al. | A highly efficient multiplication-free binary arithmetic coder and its application in video coding | |
TW200307464A (en) | Signal encoding method, signal decoding method, signal encoding device, signal decoding device, signal encoding program, and signal decoding program | |
JPH04223717A (ja) | データ圧縮モデル選択方法及びシステム | |
US10127913B1 (en) | Method of encoding of data stream, method of decoding of data stream, and devices for implementation of said methods | |
KR20120018360A (ko) | 가변 길이 코딩을 위한 방법 및 장치 | |
TW201832554A (zh) | 用於上下文自適應二進制算術編解碼中的範圍推導的方法和裝置 | |
JP3593884B2 (ja) | 符号化装置および復号装置 | |
US7522076B1 (en) | Parallel context adaptive binary arithmetic coding | |
JP3621512B2 (ja) | ディジタル情報符号化装置、ディジタル情報復号化装置、ディジタル情報符号化・復号化装置、ディジタル情報符号化方法、及びディジタル情報復号化方法 | |
JPH09298668A (ja) | ディジタル情報符号化装置、ディジタル情報復号化装置、ディジタル情報符号化・復号化装置、ディジタル情報符号化方法、及びディジタル情報復号化方法 | |
US6489903B2 (en) | Data encoding method, data encoding apparatus, data decoding method, and data decoding apparatus | |
CN102088607B (zh) | 基于jpeg2000标准的mq编码方法和电路 | |
CN107277553A (zh) | 一种二元算术编码器 | |
CN114531595B (zh) | cabac二进制化和上下文模型产生的编码方法和装置 | |
Gong et al. | An efficient architecture for real-time content-based arithmetic coding | |
CN112969074B (zh) | 一种应用于静态霍夫曼表的全并行频数排序生成方法 | |
JP4936574B2 (ja) | 符号化装置及びその制御方法 | |
CN114268322A (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 |