数据流的解码方法及装置的制造方法

文档序号:10474160阅读:402来源:国知局
数据流的解码方法及装置的制造方法
【专利摘要】本发明公开了一种数据流的解码方法及装置,其中,该方法包括:接收多路压缩数据流,其中,压缩数据流为采用了第一编码方式的数据流,第一编码方式需要采用串行解码方式进行解码;采用多个解码器分别对多路压缩数据流进行并行解码,得到多路解码后的数据流;将多路解码后的数据流进行缓存;对缓存后的多路解码后的数据流采用轮询的方式进行后续解码处理。通过本发明解决了相关技术中在JPEG解码过程中只能一个一个串行解码导致解码速度较低的问题,进而达到了简化电路结构,节省FPGA资源,提高解码速度的效果。
【专利说明】
数据流的解码方法及装置
技术领域
[0001]本发明涉及通信领域,具体而言,涉及一种数据流的解码方法及装置。
【背景技术】
[0002]本发明涉及一种基于现场可编程门阵列(Field Programable Gate Array,简称为FPGA)的高速JPEG图像解码装置,尤其涉及图像数字处理领域的编解码技术。
[0003]随着计算机和通信和多媒体技术的飞速发展,人们对图像数据的存储和传输的要求越来越高。这就要求在保证图像质量的前提下用较小的空间存储图像和用较低的码率传输图像,而这需要用图像压缩编码和解码技术来实现。联合图像专家小组(JointPhotographic Experts Group,简称为JPEG)标准具备图像质量好、编码效率高、计算复杂度适中因此得到广泛运用。
[0004]FPGA是一种大规模可编程逻辑器件,用FPGA实现数字信号和图像处理可以很好地解决并行性和速度问题,其灵活的可配置特性使得FPGA构成的系统易于修改、测试和升级,因此在实时图像处理、无线电通讯和卫星导航中都得到广泛应用。
[0005]JPEG的解码是编码的逆过程,JPEG解码过程的流程如附图1所示,其中的哈夫曼huffman解码环节因为huffman编码的特点决定其解码过程只能一个一个串行解码,在解出上一个码之前无法解下一个码,所以此环节成为影响整个算法速度的关键环节所在,如不解决则无法充分利用FPGA的并行处理能力进行算法加速。
[0006]针对相关技术中,在JPEG解码过程中只能一个一个串行解码导致解码速度较低的问题,还未提出有效的解决方案。

【发明内容】

[0007]本发明提供了一种数据流的解码方法及装置,以至少解决相关技术中在JPEG解码过程中只能一个一个串行解码导致解码速度较低的问题。
[0008]根据本发明的一个方面,提供了一种数据流的解码方法,包括:接收多路压缩数据流,其中,压缩数据流为采用了第一编码方式的数据流,该第一编码方式需要采用串行解码方式进行解码;采用多个解码器分别对所述多路压缩数据流进行并行解码,得到多路解码后的数据流;将所述多路解码后的数据流进行缓存;对缓存后的所述多路解码后的数据流采用轮询的方式进行后续解码处理。
[0009]进一步地,将所述多路解码后的数据流进行缓存,包括:将所述多路解码后的数据流分别缓存至多个先入先出(First Input First Output,简称为FIFO)存储器中。
[0010]进一步地,对缓存后的所述多路解码后的数据流采用轮询的方式进行后续解码处理过程中,所述方法还包括:在所述多路压缩数据流还采用了第二编码方式进行编码时,使用与该第二编码方式对应的反编码方式对所述多路解码后的数据进行反编码,得到反编码结果,并将所述反编码结果缓存至FIFO存储器中。
[0011]进一步地,缓存至FIFO存储器之后还包括:对所述反编码结果依次进行反量化处理、反离散余弦变换DCT处理、色彩空间转换处理。
[0012]进一步地,所述第一编码方式为哈夫曼huffman编码方式,所述第二编码方式为Z字编码和彳丁程编码。
[0013]进一步地,所述压缩数据流为JPEG文件的压缩数据流。
[0014]根据本发明的另一个方面,还提供了一种数据流的解码装置,包括:接收模块,用于接收多路压缩数据流,其中,压缩数据流为采用了第一编码方式的数据流,该第一编码方式需要采用串行解码方式进行解码;第一解码模块,用于采用多个解码器分别对所述多路压缩数据流进行并行解码,得到多路解码后的数据流;缓存模块,用于将所述多路解码后的数据流进行缓存;第二解码模块,用于对缓存后的所述多路解码后的数据流采用轮询的方式进行后续解码处理。
[0015]进一步地,所述缓存模块还用于将所述多路解码后的数据流分别缓存至多个先入先出FIFO存储器中。
[0016]进一步地,所述第二解码模块还用于在所述多路压缩数据流还采用了第二编码方式进行编码时,使用与该第二编码方式对应的反编码方式对所述多路解码后的数据进行反编码,得到反编码结果,并将所述反编码结果缓存至FIFO存储器中。
[0017]进一步地,所述第一编码方式为哈夫曼huffman编码方式,所述第二编码方式为Z字编码和彳丁程编码。
[0018]通过本发明,采用接收多路压缩数据流,其中,压缩数据流为采用了第一编码方式的数据流,第一编码方式需要采用串行解码方式进行解码;采用多个解码器分别对多路压缩数据流进行并行解码,得到多路解码后的数据流;将多路解码后的数据流进行缓存;对缓存后的多路解码后的数据流采用轮询的方式进行后续解码处理。解决了相关技术中在JPEG解码过程中只能一个一个串行解码导致解码速度较低的问题,进而达到了简化电路结构,节省FPGA资源,提高解码速度的效果。
【附图说明】
[0019]此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
[0020]图1是相关技术中JPEG图像解码流程图;
[0021]图2是根据本发明实施例的数据流的解码方法的流程图;
[0022]图3是根据本发明实施例的数据流的解码装置的结构框图;
[0023]图4是相关技术中多路压缩数据流处理结构框图;
[0024]图5是根据本发明实施例的多路压缩数据流处理结构框图。
【具体实施方式】
[0025]下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
[0026]在本实施例中提供了一种数据流的解码方法,图2是根据本发明实施例的数据流的解码方法的流程图,如图2所示,该流程包括如下步骤:
[0027]步骤S102,接收多路压缩数据流,其中,压缩数据流为采用了第一编码方式的数据流,第一编码方式需要采用串行解码方式进行解码;
[0028]步骤S104,采用多个解码器分别对多路压缩数据流进行并行解码,得到多路解码后的数据流;
[0029]步骤S106,将多路解码后的数据流进行缓存;
[0030]步骤S108,对缓存后的多路解码后的数据流采用轮询的方式进行后续解码处理。
[0031]通过上述步骤,多个解码器对多路压缩数据流进行并行解码,对多路解码后的数据流采用轮询的方式进行后续解码处理,相比于现有技术中,解码过程只能一个一个串行解码,在解出上一个码之前无法解下一个码,上述步骤解决了相关技术中在JPEG解码过程中只能一个一个串行解码导致解码速度较低的问题,进而达到了简化电路结构,节省FPGA资源,提高解码速度的效果。
[0032]上述步骤S106涉及到将多路解码后的数据流进行缓存,在一个可选实施例中,将多路解码后的数据流分别缓存至多个先入先出FIFO存储器中,从而完成了对多路解码后的数据流的缓存处理。
[0033]多路压缩数据流进行编码的过程可能涉及到采用多种方式对多路压缩数据流进行编码,在一个可选实施例中,在对多路压缩数据流进行了第一编码方式之后,还采用了第二编码方式进行编码时,使用与第二编码方式对应的反编码方式对多路解码后的数据进行反编码,得到反编码结果,并将反编码结果缓存至FIFO存储器中。
[0034]再对多路压缩数据流进行反编码之后,在一个可选实施例中,对反编码结果依次进行反量化处理、反离散余弦变换DCT处理、色彩空间转换处理,从而对多路压缩数据流完成了最终的解码。
[0035]在一个可选实施例中,第一编码方式为哈夫曼huffman编码方式,第二编码方式为Z字编码和行程编码。
[0036]在一个可选实施例中,压缩数据流为JPEG文件的压缩数据流。
[0037]在本实施例中还提供了一种数据流的解码装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
[0038]图3是根据本发明实施例的数据流的解码装置的结构框图,如图3所所示,该装置包括:接收模块32,用于接收多路压缩数据流,其中,压缩数据流为采用了第一编码方式的数据流,第一编码方式需要采用串行解码方式进行解码;第一解码模块34,用于采用多个解码器分别对该多路压缩数据流进行并行解码,得到多路解码后的数据流;缓存模块36,用于将多路解码后的数据流进行缓存;第二解码模块38,用于对缓存后的多路解码后的数据流采用轮询的方式进行后续解码处理。
[0039]进一步地,缓存模块36还用于将多路解码后的数据流分别缓存至多个先入先出FIFO存储器中。
[0040]进一步地,第二解码模块38还用于在多路压缩数据流还采用了第二编码方式进行编码时,使用与第二编码方式对应的反编码方式对该多路解码后的数据进行反编码,得到反编码结果,并将反编码结果缓存至FIFO存储器中。
[0041]进一步地,第一编码方式为哈夫曼huffman编码方式,第二编码方式为Z字编码和行程编码。
[0042]需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述各个模块均位于同一处理器中;或者,上述各个模块分别位于第一处理器、第二处理器和第三处理器…中。
[0043]针对相关技术中存在的上述问题,下面结合可选实施例进行说明,在本可选实施例中结合了上述可选实施例及其可选实施方式。
[0044]本可选实施例提供了一种用FPGA并行批量处理JPEG解码的装置,相对传统的JPEG解码装置在装置复杂度略增的前提下解码速度得到成倍加快。
[0045]本可选实施例的FPGA并行批量处理JPEG图片解码的装置由以下几部分组成:多个并行的huffman解码器、若干个先入先出(First Input First Output,简称为FIFO)缓冲器、I个反Z字编码和反行程编码器、I个反量化器、I个反(Discrete Cosine Transform,简称为DCT)变换器和I个色彩空间转换器。
[0046]本可选实施例的实现方案包括如下步骤:
[0047]第一步:多个huffman解码器(6至8个)分别独立接收多个JPEG文件的压缩数据流,并独立进行huffman解码。解码结果放在各路相应的FIFO中。
[0048]第二步:反z字编码和反行程编码器自上而下轮询多路FIF0,读出轮询到的第一个非空的FIFO数据进行反z字和反行程解码并将结果放入下一级FIFO中。
[0049]第三步:反量化器读出上级FIFO的数据并根据数据中带的通道号查找对应的量化表进行反量化。
[0050]第四步:将反量化的结果进行反DCT变换。
[0051]第五步:将反DCT变换的结果送给色彩变换器进行色彩空间转换,最后分路输出每路的红绿蓝(Red Green Blue,)RGB数据。
[0052]本可选实施例的重点在于本装置中设计的多路并行huffman解码器的多路复用结构。
[0053]关于本科选实施例的术语解释:
[0054]FPGA:即现场可编程门阵列,具有体系结构和逻辑单元灵活、集成度高以及适用范围广的特点,可用于实现较大规模电路,编程灵活方便。目前主要生产厂家有xilinx、altera、lattice等。FPGA内部由逻辑功能块排成阵列,并由可编程的互连资源连接这些逻辑功能块。
[0055]huffman解码器:哈夫曼编码(Huffman Coding)是一种编码方式,能有效并且无损地压缩数据。在文件、图像和视频压缩中都有广泛应用,huffman解码就是编码的逆过程。
[0056]反Z字和反行程编码器:Z字编码和行程编码也都是编码方式,对图像数据的压缩非常有帮助,反Z字编码和反行程编码是它们的逆过程,在解码中得到使用。
[0057]反量化器:反量化是量化的逆过程,图像在压缩编码过程中需要量化,以忽略人眼不敏感的细节,减少数据量。
[0058]反DCT变换器:DCT变换的逆过程,DCT变换即余弦变换,图像在压缩过程中通过余弦变换将时域信号转换成频域信号,因为人眼的生理特征是对高频信号不敏感,所以频域内的高频信号可以忽略,以达到压缩数据量的目的。
[0059]色彩空间转换器:一般图片是RGB(即红、绿、蓝三色)格式的,这种格式并不适合压缩,需要转成YUV(即电视视频或者电脑显示器视频)格式才适合压缩。
[0060]图4是相关技术中多路压缩数据流处理结构框图,如图4所示,多路的JPEG图片码流分别经过各自的huffman解码器、反z字反行程编码器、反量化器、反DCT变换器和色彩空间转化器完成解码输出。这种设计结构没有充分利用huffman解码器模块和其它模块之间处理速度的不对称性,对每一路都单独设计了反z字反行程编码器、反量化器、反DCT变换器和色彩空间转化器,导致整个电路异常复杂,占用资源极多,直接影响电路布局布线和工作频率,并且受FPGA资源限制,其并行的路数不可能很多。
[0061]本可选实施例充分利用了 huffman解码速度慢而其它模块处理速度快这个不对称性将除huffman解码模块以外的部分都设计成多路复用结构。装置内多个huffman解码器分别独立进行huffman解码,解码结果放在每路各自的FIFO中。后级的反Z字编码器和反行程编码器轮询各路FIFO,采用“先来先服务”的策略处理各路FIFO中的数据。然后经过再次FIF0缓存、反量化器反量化、反DCT变换和色彩空间转换器转换,最后输出各路图片解码后的RGB数据。相比图4电路结构得到大规模简化。
[0062]图5是根据本发明实施例的多路压缩数据流处理结构框图,如图5所示,描述了本设计中多个huffman编码器、FIFO缓冲器、反Z字编码器、反行程编码器、反量化器、反DCT变换器和色彩空间转化器之间的连接关系。8张JPEG图片同时输入装置,装置内的8个huffman解码器分别独立进行huffman解码,8路解码的速度是不均等且无法预测的,huffman解码结果放在每路各自的FIFO中。后级的反Z字编码器和反行程编码器轮询各路FIF0,采用“先来先服务”的策略处理各路FIFO中的数据。然后经过再次FIFO缓存、反量化器反量化、反DCT变换和色彩空间转换器转换,最后输出各路图片解码后的RGB数据。
[0063]综上所述,本发明通过对JPEG解码过程中串行环节采取多路复用的并行处理方法,消除了速度瓶颈,提高了总体解码速度,大大加快了批量JPEG图片的解码速度。相比普通的多路处理结构,本发明的设计通过充分复用某些单元模块大大简化了电路结构,节约了 FPGA资源,同时能达到提高工作频率的效果。
[0064]在另外一个实施例中,还提供了一种软件,该软件用于执行上述实施例及优选实施方式中描述的技术方案。
[0065]在另外一个实施例中,还提供了一种存储介质,该存储介质中存储有上述软件,该存储介质包括但不限于:光盘、软盘、硬盘、可擦写存储器等。
[0066]显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
[0067]以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
【主权项】
1.一种数据流的解码方法,其特征在于,包括: 接收多路压缩数据流,其中,压缩数据流为采用了第一编码方式的数据流,该第一编码方式需要采用串行解码方式进行解码; 采用多个解码器分别对所述多路压缩数据流进行并行解码,得到多路解码后的数据流; 将所述多路解码后的数据流进行缓存; 对缓存后的所述多路解码后的数据流采用轮询的方式进行后续解码处理。2.根据权利要求1所述的方法,其特征在于,将所述多路解码后的数据流进行缓存,包括: 将所述多路解码后的数据流分别缓存至多个先入先出FIFO存储器中。3.根据权利要求1所述的方法,其特征在于,对缓存后的所述多路解码后的数据流采用轮询的方式进行后续解码处理过程中,所述方法还包括: 在所述多路压缩数据流还采用了第二编码方式进行编码时,使用与该第二编码方式对应的反编码方式对所述多路解码后的数据进行反编码,得到反编码结果,并将所述反编码结果缓存至FIFO存储器中。4.根据权利要求3所述的方法,其特征在于,缓存至FIFO存储器之后还包括: 对所述反编码结果依次进行反量化处理、反离散余弦变换DCT处理、色彩空间转换处理。5.根据权利要求3所述的方法,其特征在于,所述第一编码方式为哈夫曼huffman编码方式,所述第二编码方式为Z字编码和行程编码。6.根据权利要求1至5中任一项所述的方法,其特征在于,所述压缩数据流为JPEG文件的压缩数据流。7.一种数据流的解码装置,其特征在于,包括: 接收模块,用于接收多路压缩数据流,其中,压缩数据流为采用了第一编码方式的数据流,该第一编码方式需要采用串行解码方式进行解码; 第一解码模块,用于采用多个解码器分别对所述多路压缩数据流进行并行解码,得到多路解码后的数据流; 缓存模块,用于将所述多路解码后的数据流进行缓存; 第二解码模块,用于对缓存后的所述多路解码后的数据流采用轮询的方式进行后续解码处理。8.根据权利要求7所述的装置,其特征在于,所述缓存模块还用于将所述多路解码后的数据流分别缓存至多个先入先出FIFO存储器中。9.根据权利要求7所述的装置,其特征在于,所述第二解码模块还用于在所述多路压缩数据流还采用了第二编码方式进行编码时,使用与该第二编码方式对应的反编码方式对所述多路解码后的数据进行反编码,得到反编码结果,并将所述反编码结果缓存至FIFO存储器中。10.根据权利要求9所述的装置,其特征在于,所述第一编码方式为哈夫曼huffman编码方式,所述第二编码方式为Z字编码和行程编码。
【文档编号】H04N19/436GK105828083SQ201510005309
【公开日】2016年8月3日
【申请日】2015年1月6日
【发明人】陈峻峰
【申请人】中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1