CN107770558B - Jpeg图像解码的方法、系统、装置及可读存储介质 - Google Patents
Jpeg图像解码的方法、系统、装置及可读存储介质 Download PDFInfo
- Publication number
- CN107770558B CN107770558B CN201710911698.6A CN201710911698A CN107770558B CN 107770558 B CN107770558 B CN 107770558B CN 201710911698 A CN201710911698 A CN 201710911698A CN 107770558 B CN107770558 B CN 107770558B
- Authority
- CN
- China
- Prior art keywords
- data
- dct
- boundary position
- data block
- kernel
- 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
- 238000000034 method Methods 0.000 title claims abstract description 48
- 238000004590 computer program Methods 0.000 claims description 17
- 230000000694 effects Effects 0.000 abstract description 3
- 238000010586 diagram Methods 0.000 description 10
- 230000008569 process Effects 0.000 description 6
- 230000006835 compression Effects 0.000 description 4
- 238000007906 compression Methods 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000006837 decompression Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Abstract
本发明公开了一种JPEG图像解码的方法,CPU端对熵编码数据中的各哈夫曼编码数据扫描以确定所有DCT数据块的边界位置;CPU端将边界位置发送给Kernel端;Kernel端根据边界位置,将每个DCT数据块对应的熵编码数据并行解码。可见,CPU端先确定熵编码数据中的各DCT数据块的边界位置,Kernel端再对各DCT数据块对应的熵编码数据并行解码,提高了JPEG图像解码的速度。本发明还公开了一种与该方法对应的JPEG图像解码的系统、装置,计算机可读存储介质,效果如上。本发明还公开了一种JPEG图像解码的方法、系统及装置,效果如上。
Description
技术领域
本发明涉及数字图像处理领域,尤其涉及一种JPEG图像解码的方法、系统、装置及计算机可读存储介质。
背景技术
随着数字图像技术和计算机技术的发展,在保存图像的过程中,往往需要先对图像作压缩处理。JPEG是在国际标准化组织下指定的一套图像静态压缩标准,在对图像压缩时往往转化为JPEG格式的图像。JPEG图像的熵编码数据包括哈夫曼编码数据和可变长度整数编码数据,哈夫曼编码数据穿插着可变长度整数编码数据。当对图像的显示质量要求较高时,还需要对JPEG格式的图像进行解压缩处理,而JPEG图像解压缩的关键就是对JPEG图像的熵编码数据的解码。
由于JPEG图像中的哈夫曼编码数据的长度不固定,可变长度整数编码数据的长度也不固定,对于一段熵编码数据,并不能直接确定各哈夫曼编码数据和各可变长度整数编码数据在熵编码数据上的位置,所以多采用串行解码的方法对JPEG图像解码。先对数据流中当前位置的哈夫曼编码数据依据相应的哈夫曼表进行哈夫曼解码,得到可变长度整数编码数据的长度和行程长度,然后对可变长度整数编码数据解码得到对应的DCT数据块的系数,并根据行程长度补全该系数前的零系数,再根据可变长度整数编码数据结束的位置,得到下一个哈夫曼编码数据并解码,依次进行下去,直到完成对整个数据流的解码。而这种串行解码的方式,对数据流依次进行解码,所以解码速度较慢。
因此,如何提高JPEG图像解码的速度成为本领域技术人员目前需要解决的问题。
发明内容
本发明的目的是提供一种JPEG图像解码的方法、系统、装置及计算机可读存储介质,提高JPEG图像解码的速度。
为了解决上述技术问题,本发明提供一种JPEG图像解码的方法,包括:
CPU端对熵编码数据中的各哈夫曼编码数据扫描以确定所有DCT数据块的边界位置;
所述CPU端将所述边界位置发送给Kernel端;
所述Kernel端根据所述边界位置,将每个所述DCT数据块对应的所述熵编码数据并行解码。
优选地,所述CPU端对熵编码数据中的各哈夫曼编码数据扫描以确定所有DCT数据块的边界位置具体为:
依次对所述熵编码数据中的各所述哈夫曼编码数据进行部分解码并计数,直到根据计数值或所述熵编码数据中的结束标识符得到各所述DCT数据块的边界位置。
优选地,所述DCT数据块的边界位置具体为所述DCT数据块的起始位置。
优选地,所述方法进一步包括:
统计所述CPU端执行操作所消耗的第一时间和所述Kernel端执行操作所消耗的第二时间。
本发明还提供一种JPEG图像解码的系统,包括:
CPU端,用于对熵编码数据中的各哈夫曼编码数据扫描以确定所有DCT数据块的边界位置并发送给Kernel端;
Kernel端,用于根据所述边界位置,将每个所述DCT数据块对应的所述熵编码数据并行解码。
本发明还提供一种JPEG图像解码的装置,包括处理器,所述处理器用于执行存储器中存储的程序时控制CPU端和Kernel端实现上述任一种JPEG图像解码的方法的步骤。
本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行以实现如下步骤:
CPU端对熵编码数据中的各哈夫曼编码数据扫描以确定所有DCT数据块的边界位置;
所述CPU端将所述边界位置发送给Kernel端;
所述Kernel端根据所述边界位置,将每个所述DCT数据块对应的所述熵编码数据并行解码。
本发明还提供一种JPEG图像解码的方法,包括:
CPU端对熵编码数据中的哈夫曼编码数据依次扫描以确定各DCT数据块的边界位置并向Kernel端实时发送已确定的所述DCT数据块的边界位置;
所述Kernel端根据接收到的所述DCT数据块的边界位置,实时地将所述DCT数据块对应的所述熵编码数据进行解码;
其中,所述CPU端确定所述DCT数据块边界位置的操作与所述Kernel端对所述DCT数据块对应的所述熵编码数据的解码的操作是并行的。
本发明还提供一种JPEG图像解码的系统,包括:
CPU端,用于对熵编码数据中的哈夫曼编码数据依次扫描以确定各DCT数据块的边界位置并向Kernel端实时发送已确定的所述DCT数据块的边界位置;
Kernel端,用于根据接收到的所述DCT数据块的边界位置,实时地将所述DCT数据块对应的所述熵编码数据进行解码;
其中,所述CPU端和所述Kernel端并行执行各自的操作。
本发明还提供一种JPEG图像解码的装置,包括处理器,所述处理器用于执行存储器中存储的程序时控制CPU端和Kernel端实现上述JPEG图像解码的方法。
本发明提供的JPEG图像解码的方法,CPU端对熵编码数据中的各哈夫曼编码数据扫描以确定所有DCT数据块的边界位置;CPU端将边界位置发送给Kernel端;Kernel端根据边界位置,将每个DCT数据块对应的熵编码数据并行解码。
对JPEG图像解码时,CPU端先对熵编码数据中的各哈夫曼编码数据扫描得到所有的DCT数据块的边界位置,Kernel端再根据边界位置,采用并行解码的方式,对DCT数据块对应的熵编码数据解码。可见,对于熵编码数据,CPU端先确定熵编码数据中的各DCT数据块的边界位置,Kernel端再对各DCT数据块对应的熵编码数据并行解码,相比于现有技术中采用串行解码的方式,提高了JPEG图像解码的速度。另外,对各DCT数据块对应的熵编码数据的并行解码操作由Kernel端执行,且CPU端只存储各DCT数据块的边界位置的信息,相比于现有技术CPU端需存储各个熵编码数据的位置信息,节省了内存的消耗。相对应地,本发明提供的JPEG图像解码的系统、装置及计算机可读存储介质,效果如上。
在本发明提供的另一种JPEG图像解码的方法中,CPU端对熵编码数据中的哈夫曼编码数据依次扫描以确定各DCT数据块的边界位置并向Kernel端实时发送已确定的DCT数据块的边界位置;Kernel端根据接收到的DCT数据块的边界位置,实时地将DCT数据块对应的熵编码数据进行解码;其中,CPU端确定DCT数据块边界位置的操作与Kernel端对DCT数据块对应的熵编码数据的解码的操作是并行的。
CPU端对熵编码数据中的哈夫曼编码数据依次扫描并确定DCT数据块的边界位置,并实时发送已确定出的DCT数据块的边界位置,Kernel端实时地对接收到的DCT数据块对应的熵编码数据解码,且CPU端确定DCT数据块边界位置的操作与Kernel端对接收到的DCT数据块对应的熵编码数据解码的操作是并行的。可见,对哈夫曼编码数据扫描和对确定出边界位置的DCT数据块对应的熵编码数据的解码是同时进行的,相对于现有技术,提高了JPEG图像解码的速度。另外,对各DCT数据块对应的熵编码数据的解码由Kernel端执行,且CPU端只存储各DCT数据块的边界位置的信息,相比于现有技术CPU端需存储各个熵编码数据的位置信息,节省了内存的消耗。本发明提供的JPEG图像解码的系统及装置,效果如上。
附图说明
为了更清楚地说明本发明实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他附图。
图1为本发明实施例提供的一种JPEG图像解码的方法的流程图;
图2为本发明实施例提供的一种JPEG图像解码的系统的结构图;
图3为本发明实施例提供的一种JPEG图像解码的装置的结构图;
图4为本发明实施例提供的另一种JPEG图像解码的方法的流程图;
图5为本发明实施例提供的一种CPU端与Kernel端的数据处理流水执行图;
图6为本发明实施例提供的另一种JPEG图像解码的系统的结构图;
图7为本发明实施例提供的另一种JPEG图像解码的装置的结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有付出创造性劳动的前提下,所获得的所有其他实施例,都属于本发明保护范围。
本发明的目的是提供一种JPEG图像解码的方法、系统、装置及计算机可读存储介质,提高JPEG图像解码的速度。
为了使本领域的技术人员更好的理解本发明技术方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。
需要说明的是,本申请文件中的Kernel端具体可以由FPGA来实现,则CPU端和FPGA构成异构平台系统,从而完成上述工作。当然,Kernel端也可以由GPU来实现,则CPU端和GPU构成异构平台系统,从而完成上述工作,本发明对此不作限定。
图1为本发明实施例提供的一种JPEG图像解码的方法的流程图,如图1所示,JPEG图像解码的方法包括以下步骤:
S10:CPU端对熵编码数据中的各哈夫曼编码数据扫描以确定所有DCT数据块的边界位置。
熵编码数据是JPEG图像的数据,CPU端对各哈夫曼编码数据扫描的目的是为了确定熵编码数据中的所有DCT数据块的边界位置。
DCT数据块是图像压缩或解压缩过程中的最小处理单元,熵编码数据中通常包括多个DCT数据块,一个DCT数据块通常包括多个哈夫曼编码数据和多个可变长度整数编码数据,其中,哈夫曼编码数据和可变长度整数编码数据的个数是相等的。
CPU端得到DCT数据块的边界位置后可以进行存储记录。
S11:CPU端将边界位置发送给Kernel端。
CPU端将步骤S10中得到的所有DCT数据块的边界位置发送给Kernel端。
S12:Kernel端根据边界位置,将每个DCT数据块对应的熵编码数据并行解码。
Kernel端以每个DCT数据块为单位对熵编码数据并行解码,各个DCT数据块对应的熵编码数据的解码操作是同时进行的,这里Kernel端的解码具体可以包括哈夫曼解码、行程长度解码和可变长度整数解码。
为了使本领域技术人员更好的理解本实施例提供的JPEG图像解码的方法,以一个具体的例子进行详细说明,CPU端对熵编码数据中的各哈夫曼编码数据扫描,得到熵编码数据中的共100个DCT数据块的边界位置,然后将这100个边界位置发送给Kernel端,Kernel端根据边界位置,对这100个DCT数据块对应的熵编码数据并行解码,可见,这100个DCT数据块对应的熵编码数据的解码操作是同时进行的。
对JPEG图像解码时,CPU端先对熵编码数据中的各哈夫曼编码数据扫描得到所有的DCT数据块的边界位置并发送给Kernel端,Kernel端再根据边界位置,采用并行解码的方式,对DCT数据块对应的熵编码数据解码。可见,对于熵编码数据,CPU端先确定熵编码数据中的各DCT数据块的边界位置,Kernel端再对各DCT数据块对应的熵编码数据并行解码,提高了JPEG图像解码的速度。另外,对各DCT数据块对应的熵编码数据的并行解码的操作由Kernel端执行,且CPU端只存储各DCT数据块的边界位置的信息,节省了内存的消耗。
在上述实施例的基础上,为了进一步提高解码的速度,作为优选地实施方式,DCT数据块的边界位置具体为DCT数据块的起始位置。
在上述实施例的基础上,为了能够更加方便、直观地体现JPEG图像解码所消耗的时间,作为优选地实施方式,JPEG图像解码的方法进一步包括统计CPU端执行操作所消耗的第一时间和Kernel端执行操作所消耗的第二时间。即统计CPU端执行步骤S10和步骤S11一共所需的第一时间,以及Kernel端执行步骤S12所需的第二时间。这样,就可以反应出该JPEG图像解码的方法对图像解码时所需的时间。
在上述实施例的基础上,为了更加高效地确定熵编码数据中所有DCT数据块的边界位置,作为优选地实施方式,步骤S10具体为:
依次对熵编码数据中的各哈夫曼编码数据进行部分解码并计数,直到根据计数值或熵编码数据中的结束标识符得到各DCT数据块的边界位置。
对熵编码数据中的第一个哈夫曼编码数据进行部分解码并计数为1,依据部分解码后得到的可变长度整数编码数据的长度找到第二个哈夫曼编码数据。例如,若第一个哈夫曼编码数据进行部分解码后得到的可变长整数编码数据的长度为5,那么,在熵编码数据中,从第一个哈夫曼编码数据结束的位置,跳过5个数据比特,就是下一个哈夫曼编码数据开始的位置。
再对第二个哈夫曼编码数据进行部分解码,并依据第二个哈夫曼编码数据进行部分解码后得到的行程长度对第二个哈夫曼编码数据计数,依据第二个哈夫曼编码数据进行部分解码后得到的可变长度整数编码数据的长度找到第三个哈夫曼编码数据。例如,第二个哈夫曼编码数据进行部分解码后,得到的行程长度为3,可变长度整数编码数据的长度为6。说明第二个哈夫曼编码数据所对应的DCT数据块的系数前有3个为零的系数,则对第二个哈夫曼编码数据计数为5。从第二个哈夫曼编码数据结束的位置跳过6个数据比特,就是第三个哈夫曼编码数据开始的位置。
重复上述操作依次对后续的哈夫曼编码数据进行部分解码,直到哈夫曼编码数据的计数值为64或者熵编码数据中出现结束标识符EOB,则该哈夫曼编码数据对应的可变长度整数编码数据结束的位置或者标识符EOB结束的位置就是第一个数据块结束的位置。
然后,再依次对后续的哈夫曼编码数据进行部分解码,并重新对哈夫曼编码数据计数,直到得到第二个DCT数据块的边界位置,并采用同样的方法,得到第三个DCT数据块的边界位置,直到得到熵编码数据中所有DCT数据块的边界位置。
图2为本发明实施例提供的一种JPEG图像解码的系统的结构图,如图2所示,包括:
CPU端20,用于对熵编码数据中的各哈夫曼编码数据扫描以确定所有DCT数据块的边界位置并发送边界位置。
Kernel端21,用于根据边界位置,将每个DCT数据块对应的熵编码数据并行解码。
本实施例提供的JPEG图像解码的系统,CPU端先对熵编码数据中的各哈夫曼编码数据扫描得到所有的DCT数据块的边界位置并发送边界位置,Kernel端再根据边界位置,采用并行解码的方式,对DCT数据块对应的熵编码数据解码。可见,该系统中的CPU端先确定熵编码数据中的各DCT数据块的边界位置,然后Kernel端对各DCT数据块对应的熵编码数据并行解码,提高了JPEG图像解码的速度。另外,各DCT数据块对应的熵编码数据的并行解码由Kernel端执行,且CPU端只存储各DCT数据块的边界位置的信息,节省了内存的消耗。
图3为本发明实施例提供的一种JPEG图像解码的装置的结构图,如图3所示,包括:
存储器30和处理器31。
存储器30,用于存储计算机程序。
处理器31,用于执行存储器30中存储的计算机程序时控制CPU端和Kernel端,可以实现如下步骤:
CPU端对熵编码数据中的各哈夫曼编码数据扫描以确定所有DCT数据块的边界位置,并将边界位置发送给Kernel端。
Kernel端根据边界位置,将每个DCT数据块对应的熵编码数据并行解码。
在本发明的一些实施例中,上述处理器31,还可以用于执行存储器30中的计算机程序时控制CPU端,实现以下步骤:
依次对熵编码数据中的各哈夫曼编码数据进行部分解码并计数,直到根据计数值或熵编码数据中的结束标识符得到各DCT数据块的边界位置。
在本发明的一些实施例中,上述处理器31,还可以用于执行存储器30中的计算机程序时控制CPU端,实现以下步骤:
对熵编码数据中的各哈夫曼编码数据扫描以确定所有DCT数据块的起始位置。
在本发明的一些实施例中,上述处理器31,还可以用于执行存储器30中的计算机程序时控制CPU端和Kernel端,实现以下步骤:
CPU端统计其执行操作所消耗的第一时间,Kernel端统计其执行操作所消耗的第二时间。
本实施例提供的JPEG图像解码的装置,处理器在执行存储器中的计算机程序时,控制CPU端先将熵编码数据中的各哈夫曼编码数据扫描得到所有的DCT数据块的边界位置并发送边界位置,然后Kernel端再根据边界位置,采用并行解码的方式,对DCT数据块对应的熵编码数据并行解码。可见,处理器在执行存储器中的计算机程序时,在Kernel端对各DCT数据块对应的熵编码数据并行解码,提高了JPEG图像解码的速度。另外,由于对熵编码数据的解码在Kernel端执行,且CPU端只存储各DCT数据块的边界位置的信息,节省了内存的消耗。
本发明还提供了一种与上述JPEG图像解码的方法实施例对应的计算机可读存储介质,由于计算机可读存储介质部分的实施例与方法部分的实施例相互对应,因此计算机可读存储介质部分的实施例请参照方法部分的实施例描述,在此不再详细赘述。
计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行以实现如下步骤:
CPU端对熵编码数据中的各哈夫曼编码数据扫描以确定所有DCT数据块的边界位置。CPU端将边界位置发送给Kernel端。
Kernel端根据边界位置,将每个DCT数据块对应的熵编码数据并行解码。
需要说明的是,本发明中的计算机可读存储介质可以为U盘或光盘等介质,具体不作限定。
本发明提供的计算机可读存储介质中的计算机程序被处理器执行时,控制CPU端先将熵编码数据中的各哈夫曼编码数据扫描得到所有的DCT数据块的边界位置并发送边界位置,然后Kernel端再根据边界位置,采用并行解码的方式,对各DCT数据块对应的熵编码数据并行解码。可见,计算机可读存储介质中的计算机程序被处理器执行时,Kernel端对熵编码数据并行解码,因此,提高了JPEG图像解码的速度。另外,熵编码数据的解码操作在Kernel端执行,且CPU端只存储各DCT数据块的边界位置的信息,节省了内存的消耗。
图4为本发明实施例提供的另一种JPEG图像解码的方法的流程图,如图4所示,包括步骤:
S40:CPU端对熵编码数据中的哈夫曼编码数据依次扫描以确定各DCT数据块的边界位置并向Kernel端实时发送已确定的DCT数据块的边界位置。
熵编码数据是JPEG图像的数据,CPU端可以通过查找哈夫曼表对各哈夫曼编码数据依次扫描进行部分解码,对各哈夫曼编码数据扫描的目的是为了确定熵编码数据中的所有DCT数据块的边界位置。
DCT数据块是图像压缩或解压缩过程中的最小处理单元,熵编码数据中通常包括多个DCT数据块,每个DCT数据块包括多个哈夫曼编码数据和多个可变长度整数编码数据。
CPU端得到DCT数据块的边界位置后可以进行存储记录。
需要注意的是,CPU端向Kernel端实时发送已经确定出的DCT数据块的边界位置,当CPU端确定出一部分DCT数据块的边界位置后,就立即将这些边界位置发送给Kernel端,而不是等到确定出所有DCT数据块的边界位置才发送给Kernel端。
S41:Kernel端根据接收到的DCT数据块的边界位置,实时地将DCT数据块对应的熵编码数据进行解码。
Kernel端只要接收到DCT数据块的边界位置,就开始对接收到的边界位置对应的DCT数据块的熵编码数据进行解码。
其中,CPU端确定DCT数据块边界位置的操作与Kernel端对DCT数据块对应的熵编码数据的解码操作是并行的。
可以理解的是,CPU端确定DCT数据块的边界位置的操作与Kernel端对接收到的DCT数据块对应的熵编码数据解码的操作是同时进行的。
CPU端对熵编码数据中的哈夫曼编码数据依次扫描并确定DCT数据块的边界位置,并实时发送已确定出的边界位置,Kernel端再根据DCT数据块的边界位置,对该DCT数据块对应的熵编码数据解码,且CPU端确定DCT数据块边界位置的操作与Kernel端对DCT数据块对应的熵编码数据解码的操作是并行的。可见,对哈夫曼编码数据扫描和对DCT数据块对应的熵编码数据的解码是并行进行的,提高了JPEG图像解码的速度。另外,由于对熵编码数据解码的操作在Kernel端执行,且CPU端只存储各DCT数据块的边界位置的信息,节省了内存的消耗。
在上述实施例的基础上,为了进一步提高对JPEG图像解码的速度,作为优选地实施方式,CPU端每确定一个DCT数据块的边界位置,就把边界位置发送给Kernel端,Kernel端根据接收到DCT数据块的边界位置,实时地将DCT数据块对应的熵编码数据进行解码,其中,CPU端确定下一个DCT数据块边界位置的操作与Kernel端对已确定出边界位置的DCT数据块对应的熵编码数据解码的操作是并行的。
为了使本领域技术人员更好的理解本实施例提供的JPEG图像解码的方法,以熵编码数据中DCT数据块的总数为3为例进行详细说明,结合图5所示,图5为本发明实施例提供的一种CPU端与Kernel端数据处理流水执行图。CPU端60端对一部分哈夫曼编码数据依次扫描直到确定出DCT数据块1的边界位置,将边界位置发送给Kernel端61,Kernel端61对DCT数据块1对应的熵编码数据解码的同时,CPU端60端对余下的一部分哈夫曼编码数据依次扫描直到确定DCT数据块2的边界位置,将数据块2的边界位置发送给Kernel端61,Kernel端61在对DCT数据块2对应的熵编码数据解码的同时,CPU端60端对剩下的哈夫曼编码数据依次扫描并确定DCT数据块3的边界位置,将DCT数据块3的边界位置发送给Kernel端,Kernel端61对DCT数据块3对应的熵编码数据解码。可以看出CPU端60端和Kernel端61采取流水并行的工作方式执行各自的操作,提高了解码效率。
在上述实施例的基础上,为了进一步提高对JPEG图像解码的速度,作为优选地实施方式,CPU端也可以每次确定多个DCT数据块的边界位置并每次发送已确定出的这多个DCT数据块的边界位置,Kernel端根据接收到的多个DCT数据块的边界位置,实时地将多个DCT数据块对应的熵编码数据并行解码,并且,Kernel端对已确定出的边界位置的多个DCT数据块解码的操作与CPU端确定另一部分多个DCT数据块的边界位置的操作是并行的。可见,一方面,CPU端确定DCT数据块的边界位置的操作与Kernel端对已确定出边界位置的DCT数据块对应的熵编码数据解码的操作是并行的。另一方面,Kernel对接收到边界位置的多个DCT数据块的解码操作也是并行的。进一步提高了JPEG图像解码的速度。
图6为本发明实施例提供的另一种JPEG图像解码的系统的结构图,如图6所示,包括:
CPU端60,用于对熵编码数据中的哈夫曼编码数据依次扫描以确定各DCT数据块的边界位置并实时发送已确定的DCT数据块的边界位置。
Kernel端61,用于根据接收到的DCT数据块的边界位置,实时地将DCT数据块对应的熵编码数据进行解码。
其中,CPU端60和Kernel端61并行执行各自的操作。
本实施例提供的JPRG图像解码的系统,CPU端先对熵编码数据中的哈夫曼编码数据依次扫描并确定DCT数据块的边界位置,并实时发送已确定出的边界位置,然后Kernel端再根据DCT数据块的边界位置,对DCT数据块对应的熵编码数据进行解码,并且CPU端和Kernel端并行执行各自的操作。可见,CPU端对哈夫曼编码数据扫描以确定其他的DCT数据块的边界位置和Kernel端对确定出边界位置的DCT数据块对应的熵编码数据的解码是同时进行的,提高了JPEG图像解码的速度。另外,DCT数据块对应的熵编码数据的解码操作是在Kernel端执行,且CPU端只存储各DCT数据块的边界位置的信息,节省了内存的消耗。
图7为本发明实施例提供的另一种JPEG图像解码的装置的结构图,如图7所示,包括:
存储器70和处理器71。
存储器70,用于存储计算机程序。
处理器71,用于执行存储器70中存储的计算机程序时控制CPU端和Kernel端,可以实现如下步骤:
CPU端对熵编码数据中的哈夫曼编码数据依次扫描以确定各DCT数据块的边界位置并向Kernel端实时发送已确定的DCT数据块的边界位置。
Kernel端根据接收到的DCT数据块的边界位置,实时地将DCT数据块对应的熵编码数据进行解码;
其中,CPU端确定DCT数据块边界位置的操作与Kernel端对DCT数据块对应的熵编码数据解码的操作是并行的。
本实施例提供的JPRG图像解码的装置,处理器在执行存储器中的计算机程序时,控制CPU端先对熵编码数据中的哈夫曼编码数据依次扫描并确定DCT数据块的边界位置,并实时发送已确定出的边界位置,然后控制Kernel端再根据DCT数据块的边界位置,对DCT数据块对应的熵编码数据解码,并且控制CPU端确定DCT数据块边界位置的操作与Kernel端对DCT数据块对应的熵编码数据的解码的操作并行进行。可见,处理器在执行存储器中的计算机程序时,CPU端对哈夫曼编码数据的扫描以确定其他的DCT数据块的边界位置和Kernel端对已确定出边界位置的DCT数据块对应的熵编码数据的解码是同时进行的,提高了JPEG图像解码的速度。另外,各DCT数据块对应的熵编码数据的解码操作在Kernel端执行,且CPU端只存储各DCT数据块的边界位置的信息,节省了内存的消耗。
以上对本发明所提供的JPEG图像解码的方法、系统、装置及计算机可读存储介质进行了详细介绍。说明书中各个实施例采用递进的方式描述,每个实施例重点说明都是与其它实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
还需要说明的是,在本说明书中,诸如第一和第二之类的关系术语仅仅用来将一个实体或者操作与另一个实体或者操作区分开来,而不一定要求或者暗示这些实体或者操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何变体意在涵盖非排他性的包含,从而使得包括一系列的要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其它要素,或者还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
Claims (9)
1.一种JPEG图像解码的方法,其特征在于,包括:
CPU端对熵编码数据中的各哈夫曼编码数据扫描以确定所有DCT数据块的边界位置;
所述CPU端将所述边界位置发送给Kernel端;
所述Kernel端根据所述边界位置,将每个所述DCT数据块对应的所述熵编码数据并行解码;
其中,所述CPU端对熵编码数据中的各哈夫曼编码数据扫描以确定所有DCT数据块的边界位置具体为:
依次对所述熵编码数据中的各所述哈夫曼编码数据进行部分解码并计数,直到根据计数值或所述熵编码数据中的结束标识符得到各所述DCT数据块的边界位置。
2.根据权利要求1所述的方法,其特征在于,所述DCT数据块的边界位置具体为所述DCT数据块的起始位置。
3.根据权利要求1或2所述的方法,其特征在于,所述方法进一步包括:
统计所述CPU端执行操作所消耗的第一时间和所述Kernel端执行操作所消耗的第二时间。
4.一种JPEG图像解码的系统,其特征在于,包括:
CPU端,用于对熵编码数据中的各哈夫曼编码数据扫描以确定所有DCT数据块的边界位置并发送给Kernel端;
Kernel端,用于根据所述边界位置,将每个所述DCT数据块对应的所述熵编码数据并行解码;
其中,所述对熵编码数据中的各哈夫曼编码数据扫描以确定所有DCT数据块的边界位置具体为:
依次对所述熵编码数据中的各所述哈夫曼编码数据进行部分解码并计数,直到根据计数值或所述熵编码数据中的结束标识符得到各所述DCT数据块的边界位置。
5.一种JPEG图像解码的装置,其特征在于,包括处理器,所述处理器用于执行存储器中存储的程序时控制CPU端和Kernel端实现如权利要求1至3任一项所述JPEG图像解码的方法的步骤。
6.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行以实现如下步骤:
CPU端对熵编码数据中的各哈夫曼编码数据扫描以确定所有DCT数据块的边界位置;
所述CPU端将所述边界位置发送给Kernel端;
所述Kernel端根据所述边界位置,将每个所述DCT数据块对应的所述熵编码数据并行解码;
其中,所述CPU端对熵编码数据中的各哈夫曼编码数据扫描以确定所有DCT数据块的边界位置具体为:
依次对所述熵编码数据中的各所述哈夫曼编码数据进行部分解码并计数,直到根据计数值或所述熵编码数据中的结束标识符得到各所述DCT数据块的边界位置。
7.一种JPEG图像解码的方法,其特征在于,包括:
CPU端对熵编码数据中的哈夫曼编码数据依次扫描以确定各DCT数据块的边界位置并向Kernel端实时发送已确定的所述DCT数据块的边界位置;
所述Kernel端根据接收到的所述DCT数据块的边界位置,实时地将所述DCT数据块对应的所述熵编码数据进行解码;
其中,所述CPU端确定所述DCT数据块边界位置的操作与所述Kernel端对所述DCT数据块对应的所述熵编码数据解码的操作是并行的;
所述CPU端对熵编码数据中的各哈夫曼编码数据扫描以确定各DCT数据块的边界位置具体为:
依次对所述熵编码数据中的各所述哈夫曼编码数据进行部分解码并计数,直到根据计数值或所述熵编码数据中的结束标识符得到各所述DCT数据块的边界位置。
8.一种JPEG图像解码的系统,其特征在于,包括:
CPU端,用于对熵编码数据中的哈夫曼编码数据依次扫描以确定各DCT数据块的边界位置并向Kernel端实时发送已确定的所述DCT数据块的边界位置;
Kernel端,用于根据接收到的所述DCT数据块的边界位置,实时地将所述DCT数据块对应的所述熵编码数据进行解码;
其中,所述CPU端和所述Kernel端并行执行各自的操作;
其中,所述对熵编码数据中的各哈夫曼编码数据依次扫描以确定各DCT数据块的边界位置具体为:
依次对所述熵编码数据中的各所述哈夫曼编码数据进行部分解码并计数,直到根据计数值或所述熵编码数据中的结束标识符得到各所述DCT数据块的边界位置。
9.一种JPEG图像解码的装置,其特征在于,包括处理器,所述处理器用于执行存储器中存储的程序时控制CPU端和Kernel端实现如权利要求7所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710911698.6A CN107770558B (zh) | 2017-09-29 | 2017-09-29 | Jpeg图像解码的方法、系统、装置及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710911698.6A CN107770558B (zh) | 2017-09-29 | 2017-09-29 | Jpeg图像解码的方法、系统、装置及可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107770558A CN107770558A (zh) | 2018-03-06 |
CN107770558B true CN107770558B (zh) | 2021-02-02 |
Family
ID=61266375
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710911698.6A Active CN107770558B (zh) | 2017-09-29 | 2017-09-29 | Jpeg图像解码的方法、系统、装置及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107770558B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114765684B (zh) * | 2021-01-12 | 2023-05-09 | 四川大学 | 一种基于gpu的jpeg并行熵编码方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011100837A1 (en) * | 2010-02-18 | 2011-08-25 | Research In Motion Limited | Parallel entropy coding and decoding methods and devices |
CN103179391A (zh) * | 2011-12-21 | 2013-06-26 | 索尼公司 | 图像处理设备以及图像处理方法 |
-
2017
- 2017-09-29 CN CN201710911698.6A patent/CN107770558B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011100837A1 (en) * | 2010-02-18 | 2011-08-25 | Research In Motion Limited | Parallel entropy coding and decoding methods and devices |
CN103179391A (zh) * | 2011-12-21 | 2013-06-26 | 索尼公司 | 图像处理设备以及图像处理方法 |
Non-Patent Citations (3)
Title |
---|
一种基于TMS320C6678多核处理器的JPEG实时解码优化算法;彭益智;《微电子技术》;20170629;第45~47页 * |
并行处理JPEG算法的优化;薛永林, 刘珂, 李凤亭;《电子学报》;20021231;第160~162页 * |
彭益智.一种基于TMS320C6678多核处理器的JPEG实时解码优化算法.《微电子技术》.2017, * |
Also Published As
Publication number | Publication date |
---|---|
CN107770558A (zh) | 2018-03-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
RU2630750C1 (ru) | Устройство и способ для кодирования и декодирования исходных данных | |
CN107094255B (zh) | 图像编码和解码的方法、编码和解码设备以及计算机程序 | |
US20170142444A1 (en) | Method of encoding a digital image, decoding method, devices, and associated computer programs | |
WO2018103568A1 (zh) | 云桌面内容编码与解码方法及装置、系统 | |
JPH08130649A (ja) | データ処理装置 | |
US20120057799A1 (en) | Run length coding with context model for image compression using sparse dictionaries | |
WO2007056657A2 (en) | Extended amplitude coding for clustered transform coefficients | |
US7499596B2 (en) | Amplitude coding for clustered transform coefficients | |
WO2012139192A2 (en) | Methods and devices for coding and decoding the position of the last significant coefficient | |
US20060039615A1 (en) | Joint amplitude and position coding for photographic image and video coding | |
US20230091192A1 (en) | Scanning orders for non-transform coding | |
JP2022043029A (ja) | デジタル画像のコーディング方法、デコーディング方法、付随するデバイス、ユーザ端末およびコンピュータプログラム | |
CN103841424A (zh) | 随机存取存储器中压缩数据的系统及方法 | |
CN107770558B (zh) | Jpeg图像解码的方法、系统、装置及可读存储介质 | |
JP2006093958A (ja) | プログレッシブjpeg復号化システム | |
US8427348B2 (en) | Parallel processing of sequentially dependent digital data | |
US10595033B2 (en) | Variable length coding of header data for image compression | |
US20060278725A1 (en) | Image encoding and decoding method and apparatus, and computer-readable recording medium storing program for executing the method | |
KR20100089546A (ko) | 단계적인 영상 부호화, 복호화 방법 및 장치 | |
CN110545437B (zh) | 系数编码、解码方法、电子设备及介质 | |
US9407918B2 (en) | Apparatus and method for coding image, and non-transitory computer readable medium thereof | |
EP2381687A1 (en) | Method and apparatus for entropy decoding | |
CN100539628C (zh) | 图像压缩装置 | |
JP6821183B2 (ja) | 画像復号化装置 | |
JP6821184B2 (ja) | 画像復号化装置 |
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 | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20210107 Address after: Building 9, No.1, guanpu Road, Guoxiang street, Wuzhong Economic Development Zone, Wuzhong District, Suzhou City, Jiangsu Province Applicant after: SUZHOU LANGCHAO INTELLIGENT TECHNOLOGY Co.,Ltd. Address before: Room 1601, floor 16, 278 Xinyi Road, Zhengdong New District, Zhengzhou City, Henan Province Applicant before: ZHENGZHOU YUNHAI INFORMATION TECHNOLOGY Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |