首页 / 专利库 / 资料储存系统 / 数据压缩 / 无损压缩 / 高速实时JPEG2000解码方法

高速实时JPEG2000解码方法

阅读:1031发布:2020-06-20

专利汇可以提供高速实时JPEG2000解码方法专利检索,专利查询,专利分析的服务。并且本 发明 公开了一种高速实时JPEG2000解码方法,主要解决 现有技术 处理过程复杂、并行度低、解码效率不高和高延时高功耗的问题。其技术方案为:利用多核高速解码平台,将外部数据码流通过万兆以太网 接口 缓存到 指定 内存中的解码链表和发送链表,处理器将解码链表中的图像 帧 数据发送到不同的 内核 中进行并行解码,同时将发送链表中的图像帧数据包发送到其他处理器的内核中并行解码,再将解码后的图像数据保存在对应的固态 硬盘 中。本发明具有处理过程简单、并行度较高、并行解码效率高的优点,可用于其它格式的图像压缩解码。,下面是高速实时JPEG2000解码方法专利的具体信息内容。

1.一种高速实时JPEG2000解码方法,是在Tilera多核高速解码平台上实现,该平台包括:两个快速多处理板(1,2)、两个高速存储板(3,4),两个快速多处理板之间通过各自背板上的万兆以太网高速接口互联,且第一个快速多处理板上有两个处理器(CPU1、CPU2)、两个内存条(SDRAM1、SDRAM2),第二个快速多处理板上有两个处理器(CPU3、CPU4),两个内存条(SDRAM3、SDRAM4);每个处理器有36个内核,处理器之间采用8路总线和接口互联;每层中的高速存储板通过4路总线和接口与快速多处理板高速通信,且第一个高速存储板挂载有两个固态硬盘(SSD1、SSD2),第二个高速存储板挂载有两个固态硬盘(SSD3、SSD4),分别存放快速多处理板中处理器解码后的图像数据,其解码步骤包括如下:
1)外部数据流从第一个快速多处理板(1)的第一处理器(CPU1)进入万兆以太网接口后,缓存到第一内存条SDRAM1中,并将其拆分成图像,再把图像帧的数据信息保存在第一内存条的不同数据链表中;
2)第一处理器(CPU1)将第一内存条(SDRAM1)中所存储的图像帧数据平均分为四份,并进行如下处理:
2a)将第一份图像帧数据包加上辅助信息存入第一内存条(SDRAM1)中的解码链表中,并把这些图像帧数据分发给自身的不同内核中进行码流解码,解码后再把每个内核上处理后的图像数据存入第一固态硬盘(SSD1)中;
2b)将剩余的第二份、第三份、第四份图像帧数据包存入第一内存条(SDRAM1)中的发送链表中,并把这些图像帧数据发送到第二处理器(CPU2);
3)第二处理器(CPU2)将接收到图像帧数据进行如下处理:
3a)将第二份图像帧数据包加上辅助信息存入第二内存条(SDRAM2)中的解码链表中,并把这些图像帧数据分发给自身的不同内核中进行码流解码,解码后再把每个内核上处理后的图像数据存入第二固态硬盘(SSD2)中;
3b)将剩余的第三份、第四份图像帧数据包存入第二内存条(SDRAM2)中的发送链表中,并把这些图像帧数据发送到第三处理器(CPU3);
4)第三处理器(CPU3)将接收到图像帧数据进行如下处理:
4a)将第三份图像帧数据包加上辅助信息存入第三内存条(SDRAM3)中的解码链表中,并把这些图像帧数据分发给自身的不同内核中进行码流解码,解码后再把每个内核上处理后的图像数据存入第三固态硬盘(SSD3)中;
4b)将剩余的第四份图像帧数据包存入第三内存条(SDRAM3)中的发送链表中,并把这些图像帧数据发送到第四处理器(CPU4);
5)第四处理器(CPU4)将接收到的图像帧数据包加上辅助信息存入第四内存条(SDRAM4)中的解码链表中,并把这些图像帧数据分发给自身的不同内核中进行码流解码,解码后再把每个内核上处理后的图像数据存入第四固态硬盘(SSD4)中。
2.根据权利要求1所述的高速实时JPEG2000解码方法,其特征在于,步骤1)中的不同数据链表包括,解码链表、发送链表、图像链表和空闲链表。
3.根据权利要求1所述的高速实时JPEG2000解码方法,其特征在于,所述的辅助信息是指,图像帧的序列号、码流数据的大小。
4.根据权利要求1所述的高速实时JPEG2000解码方法,其特征在于,所述的解码链表是指,由一系列节点组成的物理存储单元上非连续、非顺序的存储结构,这些节点包括两个部分:一是存储数据元素的数据域,另一个是存数下一个节点地址的指针域,其功能是存储待解码的码流。
5.根据权利要求1所述的高速实时JPEG2000解码方法,其特征在于,所述的发送链表是指,由一系列节点组成的物理存储单元上非连续、非顺序的存储结构,这些节点包括两个部分:一是存储数据元素的数据域,另一个是存数下一个节点地址的指针域,其功能是存储待发送的码流。
6.根据权利要求1所述的高速实时JPEG2000解码方法,其特征在于,所述的码流,包括无损压缩码流和有损压缩码流;当采用无损压缩方式时该码流为无损压缩码流,当采用有损压缩方式时该码流为有损压缩码流。

说明书全文

高速实时JPEG2000解码方法

技术领域

[0001] 本发明涉及图像处理技术领域,更进一步涉及一种JPEG2000解码方法,可用于其它格式的图像压缩解码。

背景技术

[0002] 图像处理一直以来是信号与信息处理领域内一个重要的研究方向。在计算机的各个应用领域中,图像处理方面是最为活跃的。伴随着科学技术的不断更新,图像领域也有了很大的进步,尤其是在图像的处理精度与复杂度上,都较之前上升了一个新的等级。然而,伴随着图像处理技术的进步而带来的大数据量给处理器造成了很大的压,因此,当今图像处理面临的一大问题就是如何在保证精度的前提下,有效的提高图像数据处理的速率。
[0003] 将并行运算的概念引入图像处理领域是一个必然的趋势,大部分的图像处理算法对所处理的图像数据都有着可拆分的性质,数据之间没有因果关系并且关联性不大,非常适合并行计算。伴随着航天技术的飞速发展,在图像处理领域对静止图像压缩与解压缩的研究越来越多,图像高实时性的需求使得图像压缩算法处理数据的速度在不断提升,而不同图像数据之间没有任何关联,这些特性的体现非常符合于对算法进行并行处理。因此,可选取静态图像压缩领域具有代表性的JPEG2000算法对其进行并行处理,以实现验证并行系统的可靠性。
[0004] 中国科学院自动化研究所在其申请专利“一种基于DSP的JPEG2000标准图像快速解压缩系统及方法”(专利申请号:CN201410258954.2,公开号:CN103997648A)中公开了一种基于数字信号处理(DSP)的JPEG2000标准图像快速解压缩系统及方法,对JPEG2000标准下的图像压缩数据进行多数字信号处理并行处理。该方法中控制模接收压缩图像数据包后存储于内存中,并解析数据包,按照并行粒度划分为数字信号处理簇中的每个数字信号处理划分解压缩处理任务的起始点;数字信号处理簇中的数字信号处理根据划分的任务并行解压缩划分得到的解压缩处理任务。该方法存在的不足是,处理过程复杂,运算量比较大,效率低,功耗较高。

发明内容

[0005] 本发明的目的在于针对上述已有技术的不足,提供一种高速实时JPEG2000解码方法,以减小运算量和功耗,提高解码速率。
[0006] 本发明的技术思路是:利用JPEG2000算法在Tilera多核高速解码平台上,使其和前端的JPEG2000压缩芯片协同工作,共同完成图像数据的JPEG2000实时编解码。利用并行处理技术在四个高速互联的CPU中分配任务,实现高速并行解码功能。
[0007] 根据上述思路,本发明的高速实时JPEG2000解码方法,是在Tilera多核高速解码平台上实现,该平台包括:两个快速多处理板、两个高速存储板,两个快速多处理板之间通过各自背板上的万兆以太网高速接口互联,且第一个快速多处理板上有两个处理器CPU1、CPU2、两个内存条SDRAM1、SDRAM2,第二个快速多处理板上有两个处理器CPU3、CPU4,两个内存条SDRAM3、SDRAM4;每个处理器有36个内核,处理器之间采用8路总线和接口互联;每层中的高速存储板通过4路总线和接口与快速多处理板高速通信,且第一个高速存储板挂载有两个固态硬盘SSD1、SSD2,第二个高速存储板挂载有两个固态硬盘SSD3、SSD4,分别存放快速多处理板中处理器解码后的图像数据,其解码步骤包括如下:
[0008] 1)外部数据流从第一个快速多处理板的第一处理器CPU1进入万兆以太网接口后,缓存到指定的内存中,并将其拆分成图像帧,再把图像帧的数据信息保存在第一内存条的不同数据链表中;
[0009] 2)第一处理器CPU1将第一内存条SDRAM1中所存储的图像帧数据平均分为四份,并进行如下处理:
[0010] 2a)将第一份图像帧数据包加上辅助信息存入第一内存条SDRAM1中的解码链表中,并把这些图像帧数据分发给自身的不同内核中进行码流解码,解码后再把每个内核上处理后的图像数据存入第一固态硬盘SSD1中;
[0011] 2b)将剩余的第二份、第三份、第四份图像帧数据包存入第一内存条SDRAM1中的发送链表中,并把这些图像帧数据发送到第二处理器CPU2;
[0012] 3)第二处理器CPU2将接收到图像帧数据进行如下处理:
[0013] 3a)将第二份图像帧数据包加上辅助信息存入第二内存条SDRAM2中的解码链表中,并把这些图像帧数据分发给自身的不同内核中进行码流解码,解码后再把每个内核上处理后的图像数据存入第二固态硬盘SSD2中;
[0014] 3b)将剩余的第三份、第四份图像帧数据包存入第二内存条SDRAM2中的发送链表中,并把这些图像帧数据发送到第三处理器CPU3;
[0015] 4)第三处理器CPU3将接收到图像帧数据进行如下处理:
[0016] 4a)将第三份图像帧数据包加上辅助信息存入第三内存条SDRAM3中的解码链表中,并把这些图像帧数据分发给自身的不同内核中进行码流解码,解码后再把每个内核上处理后的图像数据存入第三固态硬盘SSD3中;
[0017] 4b)将剩余的第四份图像帧数据包存入第三内存条SDRAM3中的发送链表中,并把这些图像帧数据发送到第四处理器CPU4;
[0018] 5)第四处理器CPU4将接收到的图像帧数据包加上辅助信息存入第四内存条SDRAM4中的解码链表中,并把这些图像帧数据分发给自身的不同内核中进行码流解码,解码后再把每个内核上处理后的图像数据存入第四固态硬盘SSD4中。
[0019] 本发明与现有技术相比较,具有如下优点:
[0020] 第一,由于本发明良好的分配了四个处理器之间的任务,使处理器之间并行的完成了码流解码过程,且平衡了处理器中各内核的处理任务,克服了任务分配不合理导致其他内核等待的问题,所以最大限度的提高了解码效率。
[0021] 第二,本发明在Tilera多核高速解码平台上实现了JPEG2000解码算法,由于不占用过多的内存和数据通道,克服了内存不足或数据通道阻塞的问题,在每个处理器的并行码流解码和图像写硬盘设计上,实现了高性能低功耗、低时延高速并行解码。
[0022] 第三,由于本发明充分的利用了每个处理器中的36个内核,让每一个内核同时工作,克服了已有内核未使用或使用过度的问题,所以最大限度的提高了其并行度。
[0023] 第四,由于将四个处理器设置成相同的工作流程,且每个流程都使用相同的方法对码流解码,故本发明方法操作过程简单,容易实现。附图说明
[0024] 图1是本发明使用的多核高速解码平台图;
[0025] 图2是本发明的实现流程图

具体实施方式

[0026] 参照图1,本发明使用的多核高速解码平台图,该平台分为上下两层,其中图1(a)是上层,图1(b)是下层。
[0027] 所述上层有一个快速多处理板1、一个高速存储板3,上层高速存储板3挂载有两个固态硬盘SSD1、SSD2,用来存放快速多处理板1中处理器解码后的数据,高速存储板3通过四路总线和接口与快速多处理板1高速通信;上层快速多处理板1上设有两个处理器CPU1、CPU2,两个内存条SDRAM1、SDRAM2。
[0028] 所述下层有一个快速多处理板2、一个高速存储板4,下层高速存储板4挂载有两个固态硬盘SSD3、SSD4,用来存放快速多处理板2中处理器解码后的数据,高速存储板4通过四路总线和接口与快速多处理板2高速通信;下层快速多处理板2上设有两个处理器CPU3、CPU4,两个内存条SDRAM3、SDRAM4。
[0029] 上层快速多处理板1通过背板上的万兆以太网接口与下层快速多处理板2高速互联,上下两层处理板共有:四个处理器,四个内存条,四个固态硬盘,即第一处理器CPU1、第二处理器CPU2、第三处理器CPU3、第四处理器CPU4;第一内存条SDRAM1、第二内存条SDRAM2、第三内存条SDRAM3、第四内存条SDRAM4;第一固态硬盘SSD1、第二固态硬盘SSD2、第三固态硬盘SSD3、第四固态硬盘SSD4;其中,第一处理器CPU1与上层万兆以太网接口互联,第四处理器CPU4与下层万兆以太网接口互联;第一处理器CPU1与第二处理器CPU2之间采用八路总线和接口互联;第三处理器CPU3与第四处理器CPU4之间采用八路总线和接口互联,每个处理器中有36个内核,用来解压缩码流;每个处理器包括以下线程:网络接收线程、数据发送线程、数据接收线程、数据分流线程、分发线程、图像解码线程和图像存储线程;每个内存条包括以下链表:解码链表、发送链表、图像链表、空闲链表和图像空闲链表。
[0030] 参照图2,本发明利用上述多核高速解码平台进行解码的实现步骤如下:
[0031] 步骤1:第一处理器CPU1的工作。
[0032] 1a)数据内存初始化,外部码流数据通过万兆以太网接口发送到第一处理器CPU1,并缓存到第一内存条SDRAM1中,数据分流线程将其拆分成图像帧数据并把这些数据平均分成四份,保存在第一内存条的不同数据链表中;
[0033] 1b)网络接收线程对接收到的第一份图像帧数据加上辅助信息,并按帧打包成独立的节点,挂载到第一内存条SDRAM1中的解码链表上,分发线程再把解码链表中图像帧数据分发给不同内核中;
[0034] 1c)多个图像解码线程调用解码函数,通过竞争对第一内存条SDRAM1中的解码链表进行访问,当其中一个线程取得访问权时,立刻对解码链表依次执行加、取其头节点和解锁,其余线程继续竞争下一节点;
[0035] 1d)取得解码链表头结点的线程对其中的码流数据进行解码,并将解码后生成的恢复图像数据打包成为一个图像节点,将其挂载到第一内存条SDRAM1中的图像链表上,再将处理过的码流节点重新挂载到第一内存条SDRAM1中的空闲链表上等待存入新的码流数据;
[0036] 1e)调用图像存储线程从图像链表中提取其头结点中的图像数据,并存入第一固态硬盘SSD1中,再将这个节点挂载到第一内存条SDRAM1中的图像空闲链表中等待存入新的图像数据;
[0037] 1f)将剩余的第二份、第三份、第四份图像帧数据包挂载到第一内存条SDRAM1中的发送链表上,数据发送线程访问发送链表,取得其中的头结点中的图像帧数据,并通过总线和接口标准通信发送至第二处理器CPU2,再将这个节点挂载到第一内存条SDRAM1中的空闲链表上。
[0038] 步骤2:第二处理器CPU2的工作。
[0039] 2a)第二处理器CPU2中的数据分流线程将接收到的第二份、第三份、第四份图像帧数据包拆分成图像帧数据;
[0040] 2b)网络接收线程对接收到的第二份图像帧数据加上辅助信息,并按帧打包成独立的节点,挂载到第二内存条SDRAM2中的解码链表上,分发线程再把解码链表中图像帧数据分发给不同内核中;
[0041] 2c)多个图像解码线程调用解码函数,通过竞争对第二内存条SDRAM2中的解码链表进行访问,当其中一个线程取得访问权时,立刻对解码链表依次执行加锁、取其头节点和解锁,其余线程继续竞争下一节点;
[0042] 2d)取得解码链表头结点的线程对其中的码流数据进行解码,并将解码后生成的恢复图像数据打包成为一个图像节点,将其挂载到第二内存条SDRAM2中的图像链表上,再将处理过的码流节点重新挂载到第二内存条SDRAM2中的空闲链表上等待存入新的码流数据;
[0043] 2e)调用图像存储线程从图像链表中提取其头结点中的图像数据,并存入第二固态硬盘SSD2中,再将这个节点挂载到第二内存条SDRAM2中的图像空闲链表中等待存入新的图像数据;
[0044] 2f)将剩余的第三份、第四份图像帧数据包挂载到第二内存条SDRAM2中的发送链表上,数据发送线程访问发送链表,取得其中的头结点中的图像帧数据,并通过背板万兆以太网接口发送至第三处理器CPU3,再将这个节点挂载到第二内存条SDRAM2中的空闲链表上。
[0045] 步骤3:第三处理器CPU3的工作。
[0046] 3a)第三处理器CPU3中的数据分流线程将接收到的第三份、第四份图像帧数据包拆分成图像帧数据;
[0047] 3b)网络接收线程对接收到的第三份图像帧数据加上辅助信息,并按帧打包成独立的节点,挂载到第三内存条SDRAM3中的解码链表上,分发线程再把解码链表中图像帧数据分发给不同内核中;
[0048] 3c)多个图像解码线程调用解码函数,通过竞争对第三内存条SDRAM3中的解码链表进行访问,当其中一个线程取得访问权时,立刻对解码链表依次执行加锁、取其头节点和解锁,其余线程继续竞争下一节点;
[0049] 3d)取得解码链表头结点的线程对其中的码流数据进行解码,并将解码后生成的恢复图像数据打包成为一个图像节点,将其挂载到第三内存条SDRAM3中的图像链表上,再将处理过的码流节点重新挂载到第三内存条SDRAM3中的空闲链表上等待存入新的码流数据;
[0050] 3e)调用图像存储线程从图像链表中提取其头结点中的图像数据,并存入第三固态硬盘SSD3中,再将这个节点挂载到第三内存条SDRAM3中的图像空闲链表中等待存入新的图像数据;
[0051] 3f)将剩余的第四份图像帧数据包挂载到第三内存条SDRAM3中的发送链表上,数据发送线程访问发送链表,取得其中的头结点中的图像帧数据,并通过总线和接口标准通信发送至第四处理器CPU4,再将这个节点挂载到第三内存条SDRAM3中的空闲链表上。
[0052] 步骤4:第四处理器CPU4的工作。
[0053] 4a)第四处理器CPU4中的数据分流线程将接收到的第四份图像帧数据包拆分成图像帧数据;
[0054] 4b)网络接收线程对接收到的第四份图像帧数据加上辅助信息,并按帧打包成独立的节点,挂载到第四内存条SDRAM4中的解码链表上,分发线程再把解码链表中图像帧数据分发给不同内核中;
[0055] 4c)多个图像解码线程调用解码函数,通过竞争对第四内存条SDRAM4中的解码链表进行访问,当其中一个线程取得访问权时,立刻对解码链表依次执行加锁、取其头节点和解锁,其余线程继续竞争下一节点;
[0056] 4d)取得解码链表头结点的线程对其中的码流数据进行解码,并将解码后生成的恢复图像数据打包成为一个图像节点,将其挂载到第四内存条SDRAM4中的图像链表上,再将处理过的码流节点重新挂载到第四内存条SDRAM4中的空闲链表上等待存入新的码流数据;
[0057] 4e)调用图像存储线程从图像链表中提取其头结点中的图像数据,并存入第四固态硬盘SSD4中,再将这个节点挂载到第四内存条SDRAM4中的图像空闲链表中等待存入新的图像数据。
[0058] 本发明的效果可以用以下测试内容和结果说明:
[0059] 1.测试参数
[0060] 在单处理器内部共设36个内核,其中1个内核接收数据,1个内核存储数据,1个内核传输数据,1个内核执行主函数,32个内核解码。整个系统中解码内核个数为4*32=128个。
[0061] 2.测试内容与结果
[0062] 在多核高速解码平台下测试单帧图像的平均解码时间和单内核的解码时间,最终以两者时间比来判断并行情况,结果如表1。
[0063] 表1 JPEG2000单帧解码时间对比结果
[0064]
[0065] 上表中测试项具体含义如下:
[0066] 单内核时间:是指平均每一帧图像通过单个内核进行解码的总时间;
[0067] 单处理器时间:是指平均每一帧图像通过单个处理器进行解码的总时间;
[0068] 多核高速解码平台时间:是指平均每一帧图像通过多核高速解码平台进行解码的总时间;
[0069] 四核电脑解码时间:是指平均每一帧图像通过四核电脑进行解码的总时间。
[0070] 单处理器并行倍数:是指单处理器时间/单内核时间,倍数的大小展示了单处理器上程序并行度的高低;
[0071] 多核高速解码平台并行倍数:是指多核高速解码平台/单内核时间,倍数的大小展示了本发明实现的多核高速解码平台并行度的高低;
[0072] 由表1可以看出,单处理器并行倍数在30倍左右,达到了理论完全并行倍数32倍的93%以上。其多核高速解码平台并行倍数均高于120倍,达到了理论完全并行倍数128倍的
94%以上。说明本发明中所设计的多核并行解码方法基本完全并行,具有很高的并行度。
[0073] 由表1还可以看出,多核高速解码平台单帧图像解码的最短时间为7.3ms,而四核电脑单帧图像解码的最短时间为75ms,多核高速解码平台的速度是电脑的10.3倍。说明本发明中所设计的多核并行解码方法具有很高的解码效率。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈