CN103458247B - 一种非定长码高速拼接硬件实现装置 - Google Patents
一种非定长码高速拼接硬件实现装置 Download PDFInfo
- Publication number
- CN103458247B CN103458247B CN201310395810.7A CN201310395810A CN103458247B CN 103458247 B CN103458247 B CN 103458247B CN 201310395810 A CN201310395810 A CN 201310395810A CN 103458247 B CN103458247 B CN 103458247B
- Authority
- CN
- China
- Prior art keywords
- fixed length
- length code
- data
- code
- temporary storage
- 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
Landscapes
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本发明公开了一种非定长码高速拼接硬件实现装置,包括8码字拼接模块和定长码至定长码拼接模块,其中,8码字拼接模块用于将输入的非定长码拼接成8比特定长码数据;定长码至定长码拼接模块用于将上述拼接后的8比特定长码数据拼接成定长码数据并输出;本发明所设计的一种非定长码高速拼接硬件实现装置能够在实现高速拼接非定长码的同时,有效的减少硬件资源使用。
Description
技术领域
本发明涉及数据压缩技术,尤其涉及一种非定长码高速拼接硬件实现装置。
背景技术
在数字图像、视频、语音等数据压缩应用中,经常使用熵编码,例如Huffman编码、RICE编码、算术编码等。而这些二进制的编码数据在表示中仅有若干位有效的编码,即输出的编码是非定长码,但在数据输出时要求所有的码字信息为规定格式,这就要求把所有的码字按照其长度依次连接,形成紧凑的定长字,经缓存后按恒定码速率输出。
FPGA(FieldProgrammableGateArry),即现场可编程门阵列。它是在PAL、GAL、CPLD等可编程器件基础上进一步发展的产物。它是作为专用集成电路领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有的可编程器件门电路数有限的缺点。但是FPGA的内部资源也是有限的。
因此,如何有效的在实现同等功能和性能的同时,有效的减少资源的消耗,成为了FPGA设计时的一个首要的问题。
发明内容
本发明所要解决的技术问题在于克服现有技术的不足,提供一种能够在实现高速拼接非定长码的同时,有效的减少硬件资源使用的非定长码高速拼接硬件实现装置。
本发明具体采用以下技术方案解决上述技术问题:本发明设计了一种非定长码高速拼接硬件实现装置,包括8码字拼接模块和定长码至定长码拼接模块,其中,
8码字拼接模块用于将输入的非定长码拼接成8比特定长码数据;
定长码至定长码拼接模块用于将上述拼接后的8比特定长码数据拼接成定长码数据并输出。
作为本发明的一种优化结构:所述8码字拼接模块包括码长累加模块、累加和译码模块、第一数据暂存阵列、第二数据暂存阵列和多路选择器,其中,
码长累加模块用于累计到当前位置的非定长码的码元总长;
累加和译码模块用于将上述非定长码的码元总长解析成拼接控制信号,并分别传输至第一数据暂存阵列、第二数据暂存阵列和多路选择器;
第一数据暂存阵列和第二数据暂存阵列根据上述控制信号依次交替暂存码字数据,所述多路选择器根据上述控制信号选取其中码字数据存满的数据暂存阵列,将其中的码字数据以8比特定长码数据形式输出。
作为本发明的一种优化结构:所述定长码至定长码拼接模块包括字节累加模块、字节和译码模块及数据暂存阵列,其中,
字节累加模块接收8码字拼接模块输出的8比特定长码数据,并计算到当前位置总共的字节数目;
字节和译码模块用于根据上述字节数目产生该字节的写入位置和控制信号,并将控制信号传输至数据暂存阵列;
数据暂存阵列用于根据上述控制信号暂存定长码数据,当定长码数据存满时,将定长码数据输出。
作为本发明的一种优化结构:所述数据暂存阵列由D触发器阵列和多路选择器阵列构成,其中,
所述多路选择器阵列包括至少一个多路选择器,字节和译码模块将解析成的控制信号传输至多路选择器阵列中的一个或多个多路选择器中;
所述D触发器阵列中D触发器的个数与多路选择器阵列中多路选择器的个数相同,且一一对应,多路选择器根据字节和译码模块解析成的控制信号将定长码数据存储到与其对应的D触发器中,该D触发器根据自身的锁存信号暂存定长码数据,当定长码数据存满时,将定长码数据输出。
作为本发明的一种优化结构:所述D触发器阵列中D触发器的个数为8,所述多路选择器阵列中多路选择器的个数为8。
本发明与现有技术相比具有如下优点:
本发明提供了一种非定长码高速拼接硬件实现装置,采用可编程逻辑器件(FPGA)实现非定长码字的高速拼接功能,通过采用数据暂存装置的交替使用和流水操作,在实现高速拼接同等功能和性能的同时,减少了非定长码高速拼接实现时的硬件资源消耗。
附图说明
图1为本发明总的结构框图;
图2为本发明的一种具体实施方式;
图3为图2中201部分的工作流程图;
图4为本发明的另一种具体实施方式;
图5为图4中402部分的工作流程图;
图6为本发明中数据暂存阵列的结构原理图。
具体实施方式
下面结合附图对本发明做进一步的详细说明:
如图1所示,本发明设计了一种非定长码高速拼接硬件实现装置,包括8码字拼接模块和定长码至定长码拼接模块,其中,
8码字拼接模块用于将输入的非定长码拼接成8比特定长码数据;例如,有数据101和11001,则通过8码字拼接模块后输出定长码10111001;或者,有数据1001和1100101,则通过8码字拼接模块后输出定长码10011100,并将剩余的101存储在8码字拼接模块中,与下一次的码字进行拼接操作;
定长码至定长码拼接模块用于将上述拼接后的8比特定长码数据拼接成定长码数据并输出;例如,当8码字拼接模块输出了定长码11001100,11011101,11111111,10001000;则通过定长码至定长码拼接模块后变成11001100110111011111111110001000。
如图2和图3所示,作为本发明的一种优化结构:所述8码字拼接模块包括码长累加模块、累加和译码模块、第一数据暂存阵列、第二数据暂存阵列和多路选择器,其中,
码长累加模块用于累计到当前位置的非定长码的码元总长;例如,之前共有7比特的码元,码长累加模块中的数据为7,而当前的码元为101,则码长累加模块中的数据变为10;另外,当码长累加模块中的数据为14,当前的码元为101时,则码元累加模块中的数据变为1(14+3-16),其余的类似的情况与上述采取同样的方式对码元长度进行累加;
累加和译码模块用于将上述非定长码的码元总长解析成拼接控制信号,并分别传输至第一数据暂存阵列、第二数据暂存阵列和多路选择器;例如,当码长累加模块中的数值为11时,而当前的码元为101,则产生相应的控制信号向12、13、14个D触发器中写入数据“1”、“0”和“1”;
第一数据暂存阵列和第二数据暂存阵列用于根据累加和译码模块解析成的控制信号暂存码字数据,当任意一个数据暂存阵列中码字数据存满时,将码字数据输出;例如,当码长累加模块中的数值为3时,而当前的码元为101,则分别将数据“1”、“0”和“1”存储到第一数据暂存阵列中的第4、5、6个D触发器中;当第一数据暂存阵列中的8个D触发器中都存储了数据时,则将其中的数据以定长码输出;
当码长累加模块中的数值为11时,而当前的码元为101,则分别将数据“1”、“0”和“1”存储到第二数据阵列中的第4、5、6个D触发器中;当第二数据暂存阵列中的8个D触发器中都存储了数据时,则将其中的数据以定长码输出;
多路选择器用于根据上述控制信号选择输出其中一个数据暂存阵列中的数据;例如,当第一数据暂存阵列中的数据存满时,多路选择器选择第一数据暂存阵列中的数据以定长码输出;同样,当第二数据暂存阵列中的数据存满时,多路选择器选择第二数据暂存阵列中的数据以定长码输出。
如图4和图5所示,作为本发明的一种优化结构:所述定长码至定长码拼接模块包括字节累加模块、字节和译码模块及数据暂存阵列,其中,
字节累加模块用于计算到当前位置共输出的字节数目;例如,之前共有2字节的数据,字节累加模块中的数据为2,而当前的字节为11011101,则字节累加模块中的数据变为3;另外,当字节累加模块中的数据为8,当前的码元为11011101时,则字节累加模块中的数据变为1(8+1-8);
字节和译码模块用于根据上述字节数目产生该字节的写入位置和控制信号,并将控制信号传输至数据暂存阵列;例如,当字节累加模块中的数值为7时,而当前的码元为11011101,则产生相应的控制信号向数据暂存阵列中的对应第8个字节的位置写入数据“11011101”;
数据暂存阵列,用于根据上述控制信号暂存定长码数据,当定长码数据存满时,将定长码数据输出;例如,当字节累加模块中的数值为3时,而当前的码元为11011101,则将数据“11011101”存储到数据缓存阵列中的第4字节对应的位置中;当数据暂存阵列中的8个字节中都存储了数据时,则将其中的数据以定长码输出。
如图6所示,作为本发明的一种优化结构:所述数据暂存阵列包括D触发器阵列和多路选择器阵列,其中,
所述多路选择器阵列包括至少一个多路选择器,字节和译码模块将解析成的控制信号传输至多路选择器阵列中的一个或多个多路选择器中;
所述D触发器阵列中D触发器的个数与多路选择器阵列中多路选择器的个数相同,且一一对应,多路选择器根据字节和译码模块解析成的控制信号将定长码数据存储到与其对应的D触发器中,该D触发器根据自身的锁存信号暂存定长码数据,当定长码数据存满时,将定长码数据输出。
当8码字拼接模块将定长码送至定长码至定长码拼接模块时,首先由字节累加模块计算当前的数据应该所在的字节位置,并将计算结果反馈给字节和译码模块,字节和译码模块根据信息产生写入数据的地址和控制信号,将定长码数据写入到数据暂存阵列中,当数据暂存阵列中的数据存储满时,架构数据以较长的(需要的格式)定长码输出。
本发明中所有数据暂存阵列均由图所示的这种结构或者类似的结构实现,其主要的实现方式是,由控制信号中的选择信号选择对应的D触发器的数据选择端,根据控制信号中的锁存信号将数据锁存到对应的D触发器中,通过这种结构的堆叠可以实现任意长度码字的拼接。
本发明中数据暂存阵列采用的堆叠次数为8次。
参考前述本发明示例性的描述,本领域技术人员可以知晓本发明具有以下优点。本发明提供了一种变长码高速拼接的硬件实现装置,采用可编程逻辑器件(FPGA)实现了非定长码元的高速实时拼接,通过采用流水操作和Pipeline结构实现了变长码得实时高速拼接,同时优化了结构,大大的减少了硬件资源的消耗。
尽管本发明此处具体化一些特定的例子示出和描述,然而本发明不限制于所示出的细节,因为在不偏离本发明精神以及在权利要求的范围和同等范围内,可以做出多种改进和结构变化。因此,宽范围地并且如权利要求中所阐述的在某种意义上与本发明的范围一致地解释附加的权利要求是适当的。
Claims (4)
1.一种非定长码高速拼接硬件实现装置,其特征在于,包括8码字拼接模块和定长码至定长码拼接模块,其中,
8码字拼接模块用于将输入的非定长码拼接成8比特定长码数据;
定长码至定长码拼接模块用于将上述拼接后的8比特定长码数据拼接成定长码数据并输出;
其中,所述8码字拼接模块包括码长累加模块、累加和译码模块、第一数据暂存阵列、第二数据暂存阵列和多路选择器,其中,
码长累加模块用于累计到当前位置的非定长码的码元总长;
累加和译码模块用于将上述非定长码的码元总长解析成拼接控制信号,并分别传输至第一数据暂存阵列、第二数据暂存阵列和多路选择器;
第一数据暂存阵列和第二数据暂存阵列根据上述控制信号依次交替暂存码字数据,所述多路选择器根据上述控制信号选取其中码字数据存满的数据暂存阵列,将其中的码字数据以8比特定长码数据形式输出。
2.根据权利要求1所述的一种非定长码高速拼接硬件实现装置,其特征在于,所述定长码至定长码拼接模块包括字节累加模块、字节和译码模块及数据暂存阵列,其中,
字节累加模块接收8码字拼接模块输出的8比特定长码数据,并计算到当前位置总共的字节数目;
字节和译码模块用于根据上述字节数目产生该字节的写入位置和控制信号,并将控制信号传输至数据暂存阵列;
数据暂存阵列用于根据上述控制信号暂存定长码数据,当定长码数据存满时,将定长码数据输出。
3.根据权利要求2所述的一种非定长码高速拼接硬件实现装置,其特征在于,所述数据暂存阵列由D触发器阵列和多路选择器阵列构成,其中,
所述多路选择器阵列包括至少一个多路选择器,字节和译码模块将解析成的控制信号传输至多路选择器阵列中的一个或多个多路选择器中;
所述D触发器阵列中D触发器的个数与多路选择器阵列中多路选择器的个数相同,且一一对应,多路选择器根据字节和译码模块解析成的控制信号将定长码数据存储到与其对应的D触发器中,该D触发器根据自身的锁存信号暂存定长码数据,当定长码数据存满时,将定长码数据输出。
4.根据权利要求3所述的一种非定长码高速拼接硬件实现装置,其特征在于,所述D触发器阵列中D触发器的个数为8,所述多路选择器阵列中多路选择器的个数为8。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310395810.7A CN103458247B (zh) | 2013-09-04 | 2013-09-04 | 一种非定长码高速拼接硬件实现装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310395810.7A CN103458247B (zh) | 2013-09-04 | 2013-09-04 | 一种非定长码高速拼接硬件实现装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103458247A CN103458247A (zh) | 2013-12-18 |
CN103458247B true CN103458247B (zh) | 2016-04-27 |
Family
ID=49740146
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310395810.7A Active CN103458247B (zh) | 2013-09-04 | 2013-09-04 | 一种非定长码高速拼接硬件实现装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103458247B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5901177A (en) * | 1995-08-31 | 1999-05-04 | Daewoo Electronics Co., Ltd. | High speed variable length code decoding apparatus and method |
CN102215383A (zh) * | 2010-04-06 | 2011-10-12 | 陶为 | 一种基于h.264的cavlc编码器的实现方法 |
CN102404072A (zh) * | 2010-09-08 | 2012-04-04 | 华为技术有限公司 | 一种信息比特发送方法、装置和系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003188731A (ja) * | 2001-12-18 | 2003-07-04 | Yrp Mobile Telecommunications Key Tech Res Lab Co Ltd | 可変レート符号化方法、符号化装置および復号装置 |
-
2013
- 2013-09-04 CN CN201310395810.7A patent/CN103458247B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5901177A (en) * | 1995-08-31 | 1999-05-04 | Daewoo Electronics Co., Ltd. | High speed variable length code decoding apparatus and method |
CN102215383A (zh) * | 2010-04-06 | 2011-10-12 | 陶为 | 一种基于h.264的cavlc编码器的实现方法 |
CN102404072A (zh) * | 2010-09-08 | 2012-04-04 | 华为技术有限公司 | 一种信息比特发送方法、装置和系统 |
Non-Patent Citations (1)
Title |
---|
《基于FPGA的CCSDS图像数据压缩系统的设计》;陈哲等;《中国科学院研究生院学报》;20110131;第28卷(第1期);101-106 * |
Also Published As
Publication number | Publication date |
---|---|
CN103458247A (zh) | 2013-12-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101771879B (zh) | 基于cabac的并行归一化编码实现电路及编码方法 | |
CN202931289U (zh) | 一种硬件lz77压缩实现系统 | |
US9479194B2 (en) | Data compression apparatus and data decompression apparatus | |
CN103916131A (zh) | 压缩数据的方法和用于执行该方法的设备 | |
CN110943744B (zh) | 数据压缩、解压缩以及基于数据压缩和解压缩的处理方法及装置 | |
US9141455B2 (en) | Bit pattern data converting method and apparatus therefor | |
CN103729429A (zh) | 一种基于HBase压缩方法 | |
CN106664098A (zh) | 用于将二进制映射到三进制及其反转的装置和方法 | |
CN107801044B (zh) | 后向适应装置与相关方法 | |
US11424761B2 (en) | Multiple symbol decoder | |
KR102542239B1 (ko) | 데이터 출력 방법, 획득 방법, 장치 및 전자 기기 | |
US20130262787A1 (en) | Scalable memory architecture for turbo encoding | |
CN103458247B (zh) | 一种非定长码高速拼接硬件实现装置 | |
JP2011141914A (ja) | Nand型フラッシュメモリの入出力制御方法及び装置 | |
US20160211851A1 (en) | Device for logic operation | |
CN109936441A (zh) | 一种基于数据存储的流水sha256硬件实现方法 | |
WO2021143634A1 (zh) | 算术编码器及实现算术编码的方法和图像编码方法 | |
CN101458679B (zh) | 统一反向离散余弦变换(idct)微码处理器引擎 | |
US10411733B2 (en) | Data compression and decompression | |
CN116529705A (zh) | 利用计算机存储器中的值相似性的系统、方法和装置 | |
JP2023524751A (ja) | インライン解凍 | |
US9792053B2 (en) | Controller for nonvolatile semiconductor memory | |
JPH03179562A (ja) | データ記録装置及びデータ編集方法 | |
CN111817724B (zh) | 一种数据压缩电路 | |
US20240106459A1 (en) | Compression device and compression method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |