CN107392838A - 基于OpenCL的WebP压缩并行加速方法及装置 - Google Patents
基于OpenCL的WebP压缩并行加速方法及装置 Download PDFInfo
- Publication number
- CN107392838A CN107392838A CN201710623789.XA CN201710623789A CN107392838A CN 107392838 A CN107392838 A CN 107392838A CN 201710623789 A CN201710623789 A CN 201710623789A CN 107392838 A CN107392838 A CN 107392838A
- Authority
- CN
- China
- Prior art keywords
- data
- macro block
- pointer
- macroblock boundaries
- macro
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 30
- 230000001133 acceleration Effects 0.000 title claims abstract description 25
- 230000006835 compression Effects 0.000 title claims abstract description 25
- 238000007906 compression Methods 0.000 title claims abstract description 25
- 239000000872 buffer Substances 0.000 claims abstract description 119
- 125000004122 cyclic group Chemical group 0.000 claims abstract description 118
- 230000003139 buffering effect Effects 0.000 claims description 11
- 230000004048 modification Effects 0.000 claims description 8
- 238000012986 modification Methods 0.000 claims description 8
- 238000013500 data storage Methods 0.000 abstract description 3
- 230000003111 delayed effect Effects 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 3
- 238000000151 deposition Methods 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 238000012827 research and development Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000003032 molecular docking Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- General Engineering & Computer Science (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本发明公开了一种基于OpenCL的WebP压缩并行加速方法及装置,该方法包括:对图像进行旋转,将图像中第i列的宏块均下移i‑1行,并在其余位置添加空白宏块,获取存在n(m+n‑1)个宏块的旋转图像;其中,n为图像和旋转图像的列数,m为图像的行数,i为大于等于0且小于等于n的正整数,m+n‑1为旋转图像的行数;根据已知的宏块边界数据和/或OpenCL中本地内存中的循环缓冲区存储的宏块边界数据,依次对旋转图像每行的宏块进行并行数据编码;将图像的宏块进行数据编码获取的宏块边界数据存储到循环缓冲区的对应位置;本发明大量减少了宏块边界数据所需存储空间,使得宏块边界数据存储在本地内存中,规避了对全局内存的访问。
Description
技术领域
本发明涉及计算机应用技术领域,特别涉及一种基于OpenCL的WebP压缩并行加速方法及装置。
背景技术
WebP图片格式是Google与2010年提出的一种新的图片压缩格式,由于其压缩率较高,目前已被国内外各大互联网公司使用。但为了提高压缩率,WebP算法设计了比较复杂的图像编解码原理,使得其图像编解码的数倍于现有的图片格式。因此,对于WebP算法加速方法的研究十分重要。
在数据中心技术领域中基于CPU+FPGA异构平台加速WebP算法是一个非常前沿的技术,目前很少有机构对其进行研究。而OpenCL(Open Computing Language开放式计算语言)是一种专门针对异构计算装置(Heterogeneous Device)进行并行化运算所设计的高层次程序语言,可大大提升研发效率,缩短产品研发周期。
基于OpenCL的并行化算法的设计中,去除数据依赖,设计合理的访存策略(Strategies for Memory Access)是整个开发过程的关键所在。为提升程序效率,OpenCL可以将存储模型抽象为3个层次,分别为全局内存(Global Memory)、本地内存(LocalMemory)以及私有内存(Private Memory),访存速度逐级加快,存储空间逐级递减。在进行并行算法开发的时候,应该尽量减少全局内存的访存次数。
现有技术中,WebP算法在编码当前宏块的时候需要已知宏块的左边界、上边界以及宏块左上角数据(像素值),如图1中宏块5所示。因此,往往直接存储整幅图像的边界数据,这样需要的存储空间非常大,图像边界数据会被分配到全局内存。导致每编码一个宏块需要读写一次全局内存,严重影响程序性能。因此,如何在宏块编码过程中避免对全局内存的访问,提升程序性能,是现今亟需解决的问题。
发明内容
本发明的目的是提供一种基于OpenCL的WebP压缩并行加速方法及装置,以减少宏块边界数据所需存储空间,使其可以放到OpenCL存储模型中的本地内存上,从而避免对全局内存的访问,提高并行算法效率。
为解决上述技术问题,本发明提供一种基于OpenCL的WebP压缩并行加速方法,包括:
对图像进行旋转,将所述图像中第i列的宏块均下移i-1行,并在其余位置添加空白宏块,获取存在n(m+n-1)个宏块的旋转图像;其中,n为所述图像和所述旋转图像的列数,m为所述图像的行数,i为大于等于0且小于等于n的正整数,m+n-1为所述旋转图像的行数;
根据已知的宏块边界数据和/或OpenCL中本地内存中的循环缓冲区存储的宏块边界数据,依次对所述旋转图像每行的宏块进行并行数据编码;
将所述图像的宏块进行数据编码获取的宏块边界数据存储到所述循环缓冲区的对应位置。
可选的,所述根据已知的宏块边界数据和/或OpenCL中本地内存中的循环缓冲区存储的宏块边界数据,依次对所述旋转图像每行的宏块并行进行数据编码,包括:
依次根据将所述循环缓冲区的第一指针指向的行中的宏块存储的宏块边界数据和对应的已知的宏块边界数据,对所述旋转图像每行的宏块进行并行数据编码;其中,所述循环缓冲区包括3行宏块,所述第一指针、第二指针和第三指针在初始状态分别依次指向所述循环缓冲区中的1个宏块行,所述循环缓冲区为3n个宏块的大小;
所述旋转图像的当前行的宏块进行并行数据编码完成后,将所述第一指针和所述第二指针的指向修改为原本所述第二指针和所述第三指针的指向,将所述第三指针的指向修改为原本所述第一指针的指向。
可选的,所述将所述图像的宏块进行数据编码获取的宏块边界数据存储到所述循环缓冲区的对应位置,包括:
对所述旋转图像每行的宏块进行并行数据编码后,将获取的第p个宏块的宏块边界数据中的下边界数据,存储为所述循环缓冲区的第二指针指向的宏块行的第p个宏块的上边界数据;其中,获取的第p个宏块的宏块边界数据不为空白宏块进行数据编码后获取的宏块边界数据,p为大于等于0且小于等于n的正整数;
若p不等于n,则获取的第p个宏块的宏块边界数据中的右边界数据和右下角边界数据,存储为所述循环缓冲区的第二指针指向的宏块行的第p+1个宏块的左边界数据和左上角边界数据。
可选的,所述根据已知的宏块边界数据和/或OpenCL中本地内存中的循环缓冲区存储的宏块边界数据,依次对所述旋转图像每行的宏块并行进行数据编码,包括:
依次根据将所述循环缓冲区的第四指针指向的行中的宏块存储的宏块边界数据和对应的已知的宏块边界数据,对所述旋转图像每行的宏块进行并行数据编码;其中,所述循环缓冲区包括2行宏块,所述第四指针和第五指针在初始状态分别依次指向所述循环缓冲区中的1个宏块行,所述循环缓冲区为2n个宏块的大小;
所述旋转图像的当前行的宏块进行并行数据编码完成后,将所述第四指针的指向修改为原本所述第五指针的指向,将所述第五指针的指向修改为原本所述第四指针的指向。
可选的,所述将所述图像的宏块进行数据编码获取的宏块边界数据存储到所述循环缓冲区的对应位置,包括:
对所述旋转图像每行的宏块进行并行数据编码后,将获取的第p个宏块的宏块边界数据中的下边界数据,存储为所述循环缓冲区的第五指针指向的宏块行的第p个宏块的上边界数据;其中,获取的第p个宏块的宏块边界数据不为空白宏块进行数据编码后获取的宏块边界数据,p为大于等于0且小于等于n的正整数;
若p不等于n,则获取的第p个宏块的宏块边界数据中的右边界数据和右下角边界数据,存储为所述循环缓冲区的第四指针指向的宏块行的第p+1个宏块的左边界数据和左上角边界数据。
此外,本发明还提供了一种基于OpenCL的WebP压缩并行加速装置,包括:
旋转模块,用于对图像进行旋转,将所述图像中第i列的宏块均下移i-1行,并在其余位置添加空白宏块,获取存在n(m+n-1)个宏块的旋转图像;其中,n为所述图像和所述旋转图像的列数,m为所述图像的行数,i为大于等于0且小于等于n的正整数,m+n-1为所述旋转图像的行数;
编码模块,用于根据已知的宏块边界数据和/或OpenCL中本地内存中的循环缓冲区存储的宏块边界数据,依次对所述旋转图像每行的宏块进行并行数据编码;
存储模块,用于将所述图像的宏块进行数据编码获取的宏块边界数据存储到所述循环缓冲区的对应位置。
可选的,所述编码模块,包括:
第一编码子模块,用于依次根据将所述循环缓冲区的第一指针指向的行中的宏块存储的宏块边界数据和对应的已知的宏块边界数据,对所述旋转图像每行的宏块进行并行数据编码;其中,所述循环缓冲区包括3行宏块,所述第一指针、第二指针和第三指针在初始状态分别依次指向所述循环缓冲区中的1个宏块行,所述循环缓冲区为3n个宏块的大小;
第一修改子模块,用于所述旋转图像的当前行的宏块进行并行数据编码完成后,将所述第一指针和所述第二指针的指向修改为原本所述第二指针和所述第三指针的指向,将所述第三指针的指向修改为原本所述第一指针的指向。
可选的,所述存储模块,包括:
第一存储子模块,用于对所述旋转图像每行的宏块进行并行数据编码后,将获取的第p个宏块的宏块边界数据中的下边界数据,存储为所述循环缓冲区的第二指针指向的宏块行的第p个宏块的上边界数据;其中,获取的第p个宏块的宏块边界数据不为空白宏块进行数据编码后获取的宏块边界数据,p为大于等于0且小于等于n的正整数;
第二存储子模块,用于若p不等于n,则获取的第p个宏块的宏块边界数据中的右边界数据和右下角边界数据,存储为所述循环缓冲区的第二指针指向的宏块行的第p+1个宏块的左边界数据和左上角边界数据。
可选的,所述编码模块,包括:
第二编码子模块,用于依次根据将所述循环缓冲区的第四指针指向的行中的宏块存储的宏块边界数据和对应的已知的宏块边界数据,对所述旋转图像每行的宏块进行并行数据编码;其中,所述循环缓冲区包括2行宏块,所述第四指针和第五指针在初始状态分别依次指向所述循环缓冲区中的1个宏块行,所述循环缓冲区为2n个宏块的大小;
第二修改子模块,用于所述旋转图像的当前行的宏块进行并行数据编码完成后,将所述第四指针的指向修改为原本所述第五指针的指向,将所述第五指针的指向修改为原本所述第四指针的指向。
可选的,所述存储模块,包括:
第三存储子模块,用于对所述旋转图像每行的宏块进行并行数据编码后,将获取的第p个宏块的宏块边界数据中的下边界数据,存储为所述循环缓冲区的第五指针指向的宏块行的第p个宏块的上边界数据;其中,获取的第p个宏块的宏块边界数据不为空白宏块进行数据编码后获取的宏块边界数据,p为大于等于0且小于等于n的正整数;
第四存储子模块,用于若p不等于n,则获取的第p个宏块的宏块边界数据中的右边界数据和右下角边界数据,存储为所述循环缓冲区的第四指针指向的宏块行的第p+1个宏块的左边界数据和左上角边界数据。
本发明所提供的一种基于OpenCL的WebP压缩并行加速方法,包括:对图像进行旋转,将图像中第i列的宏块均下移i-1行,并在其余位置添加空白宏块,获取存在n(m+n-1)个宏块的旋转图像;其中,n为图像和旋转图像的列数,m为图像的行数,i为大于等于0且小于等于n的正整数,m+n-1为旋转图像的行数;根据已知的宏块边界数据和/或OpenCL中本地内存中的循环缓冲区存储的宏块边界数据,依次对旋转图像每行的宏块进行并行数据编码;将图像的宏块进行数据编码获取的宏块边界数据存储到循环缓冲区的对应位置;
可见,本发明通过对图像进行旋转,将图像中第i列的宏块均下移i-1行,并在其余位置添加空白宏块,获取存在n(m+n-1)个宏块的旋转图像,可以去除宏块间的数据依赖,使对宏块进行的数据编码的流水执行;通过根据已知的宏块边界数据和/或OpenCL中本地内存中的循环缓冲区存储的宏块边界数据,依次对旋转图像每行的宏块进行并行数据编码,以及将图像的宏块进行数据编码获取的宏块边界数据存储到循环缓冲区的对应位置,可以利用循环缓冲区存储已知的宏块边界数据之外的需要进行数据编码的宏块所需的宏块边界数据,避免了存储整幅图像的宏块边界数据,大量减少了所需存储空间,使得宏块边界数据存储在本地内存中,规避了对全局内存的访问,从而大幅提高WebP压缩的效率。此外,本发明还提供了一种基于OpenCL的WebP压缩并行加速装置,同样具有上述有益效果。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为宏块进行数据编码所需的宏块边际数据的示意图;
图2为本发明实施例所提供的一种基于OpenCL的WebP压缩并行加速方法的流程图;
图3为本发明实施例所提供的一种基于OpenCL的WebP压缩并行加速方法的旋转前后的图像宏块示意图;
图4为本发明实施例所提供的一种基于OpenCL的WebP压缩并行加速方法的循环缓冲区示意图;
图5为本发明实施例所提供的一种基于OpenCL的WebP压缩并行加速装置的结构图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参考图2,图2为本发明实施例所提供的一种基于OpenCL的WebP压缩并行加速方法的流程图。该方法可以包括:
步骤101:对图像进行旋转,将图像中第i列的宏块均下移i-1行,并在其余位置添加空白宏块,获取存在n(m+n-1)个宏块的旋转图像;其中,n为图像和旋转图像的列数,m为图像的行数,i为大于等于0且小于等于n的正整数,m+n-1为旋转图像的行数。
可以理解的是,如图3所示,旋转前的图像中包含4行5列20个宏块,图像中的数字为宏块进行数据编码的顺序,旋转后的旋转图像中包含8行5列40个宏块,包括20个原本需要进行数据编码的宏块和20个空白宏块。观察旋转前后的宏块边界情况,可以发现,宏块1编码完成后,获取的下边界数据(最下面一行像素)为宏块2的上边界数据,右边界数据(最右边一列像素)为宏块3的左边界数据,右下角边界数据(右下角像素)为宏块5左上角边界数据。假定当前正在编码宏块1数据,在旋转后的旋转图像中,宏块2、宏块3在当前处理宏块的下一行,宏块5在当前处理宏块的下两行。当前行数据编码完,下一行编码所需的宏块边界数据也就全部已知。由此可见,只要存储能够存储当前行数据编码后获取的下两行的宏块边界数据,即可实现图像的数据编码。
步骤102:根据已知的宏块边界数据和/或OpenCL中本地内存中的循环缓冲区存储的宏块边界数据,依次对旋转图像每行的宏块进行并行数据编码。
其中,本步骤中已知的宏块边界数据可以包括旋转前的图像的上边界、左边界和左上角边界对应的图像中的宏块的宏块边界数据,如图3中,宏块1的上边界边界数据、左边界数据和左上角边界数据,宏块3、宏块6、宏块10和宏块14的上边界边界数据和左上角边界数据,宏块2、宏块4、宏块7的左边界数据和左上角边界数据。
可以理解的是,本步骤中OpenCL中本地内存中的循环缓冲区,可以由设计人员根据实用场景和用户需求自行设置,如可以为3×图像宽度方向宏块数大小的循环缓冲区;也可以为2×图像宽度方向宏块数大小的循环缓冲区.只要可以存储对旋转图像每行的宏块进行并行数据编码过程中,所需的已知的宏块边界数据之外的宏块边界数据,本实施例对此不做任何限制。
可选的,当循环缓冲区为3×图像宽度方向宏块数大小的循环缓冲区时,本步骤可以为依次根据将循环缓冲区的第一指针指向的行中的宏块存储的宏块边界数据和对应的已知的宏块边界数据,对旋转图像每行的宏块进行并行数据编码;其中,循环缓冲区包括3行宏块,第一指针、第二指针和第三指针在初始状态分别依次指向循环缓冲区中的1个宏块行,循环缓冲区为3n个宏块的大小;旋转图像的当前行的宏块进行并行数据编码完成后,将第一指针和第二指针的指向修改为原本第二指针和第三指针的指向,将第三指针的指向修改为原本第一指针的指向。
具体的,对如图3所示的旋转图像进行数据编码时,可以利用如图4所示的循环缓冲区(Boundary Buffer),当对旋转图像的第一行的宏块进行并行数据编码时,依次将宏块1所需的宏块边界数据和4个空白宏块所需的宏块边界数据发送到进行数据编码的模块,其中,宏块1所需的宏块边界数据可以直接通过已知的宏块边界数据发送,而4个新添加的空白宏块所需的宏块边界数对应为已知的宏块边界数据发送或为空,也就是此时循环缓冲区第一指针(cur)指向的行中的宏块存储的宏块边界数据为空。而当对旋转图像的第二行的宏块进行并行数据编码时,循环缓冲区第一指针(cur)指向的行中的宏块存储的宏块边界数据为宏块2的上边界数据和宏块3的左边界数据。
可选的,当循环缓冲区为2×图像宽度方向宏块数大小的循环缓冲区时,本步骤可以依次根据将循环缓冲区的第四指针指向的行中的宏块存储的宏块边界数据和对应的已知的宏块边界数据,对旋转图像每行的宏块进行并行数据编码;其中,循环缓冲区包括2行宏块,第四指针和第五指针在初始状态分别依次指向循环缓冲区中的1个宏块行,循环缓冲区为2n个宏块的大小;旋转图像的当前行的宏块进行并行数据编码完成后,将第四指针的指向修改为原本第五指针的指向,将第五指针的指向修改为原本第四指针的指向。
具体的,对如图3所示的旋转图像进行数据编码时,当对旋转图像的第一行的宏块进行并行数据编码时,依次将宏块1所需的宏块边界数据和4个空白宏块所需的宏块边界数据发送到进行数据编码的模块,其中,宏块1所需的宏块边界数据可以直接通过已知的宏块边界数据发送,而4个新添加的空白宏块所需的宏块边界数对应为已知的宏块边界数据发送或为空,也就是此时循环缓冲区第四指针指向的行中的宏块存储的宏块边界数据为空。而当对旋转图像的第二行的宏块进行并行数据编码时,循环缓冲区第四指针指向的行中的宏块存储的宏块边界数据为宏块2的上边界数据和宏块3的左边界数据。
步骤103:将图像的宏块进行数据编码获取的宏块边界数据存储到循环缓冲区的对应位置。
其中,本步骤中存储到循环缓冲区的对应位置的宏块边界数据,可以为对接下来进行数据编码的非空白宏块的宏块所需的已知的宏块边界数据中不存在的宏块边界数据,如图3所示的宏块1进行数据编码获取的下边界数据(宏块2的上边界数据)、右边界数据(宏块3的左边界数据)和右下角边界数据(宏块5的左上角边界数据)。
可以理解的是,本步骤将图像的宏块进行数据编码获取的宏块边界数据存储到循环缓冲区的对应位置的具体方式,可以由设计人员根据实用场景和用户需求自行设置,如可以根据循环缓冲区的结构对应进行设置,可以实现编码行切换的时候,只修改指针的指向,不拷贝循环缓冲区的数据。本实施例对此不做任何限制。
可选的,当循环缓冲区为3×图像宽度方向宏块数大小的循环缓冲区时,本步骤可以为对旋转图像每行的宏块进行并行数据编码后,将获取的第p个宏块的宏块边界数据中的下边界数据,存储为循环缓冲区的第二指针指向的宏块行的第p个宏块的上边界数据;其中,获取的第p个宏块的宏块边界数据不为空白宏块进行数据编码后获取的宏块边界数据,p为大于等于0且小于等于n的正整数;若p不等于n,则获取的第p个宏块的宏块边界数据中的右边界数据和右下角边界数据,存储为循环缓冲区的第二指针指向的宏块行的第p+1个宏块的左边界数据和左上角边界数据。
具体的,对如图3所示的旋转图像的第一行的宏块进行并行数据编码后,可以将宏块1进行数据编码后获取的宏块边界数据中的下边界数据,存储到循环缓冲区的第二指针(next)指向的宏块2的上边界数据,将获取的宏块边界数据中的右边界数据,存储到循环缓冲区的第二指针指向的宏块3的上边界数据,将获取的宏块边界数据中的右下角边界数据,存储到循环缓冲区的第三指针(next2)指向的宏块5的左上角边界数据;对如图3所示的旋转图像的第五行的宏块进行并行数据编码后,可以仅将宏块14进行数据编码后获取的宏块边界数据中的下边界数据,存储到循环缓冲区的第二指针(next)指向的宏块17的上边界数据。
可选的,当循环缓冲区为3×图像宽度方向宏块数大小的循环缓冲区时,本步骤可以为对旋转图像每行的宏块进行并行数据编码后,将获取的第p个宏块的宏块边界数据中的下边界数据,存储为循环缓冲区的第五指针指向的宏块行的第p个宏块的上边界数据;其中,获取的第p个宏块的宏块边界数据不为空白宏块进行数据编码后获取的宏块边界数据,p为大于等于0且小于等于n的正整数;若p不等于n,则获取的第p个宏块的宏块边界数据中的右边界数据和右下角边界数据,存储为循环缓冲区的第四指针指向的宏块行的第p+1个宏块的左边界数据和左上角边界数据。
具体的,对如图3所示的旋转图像的第一行的宏块进行并行数据编码后,可以将宏块1进行数据编码后获取的宏块边界数据中的下边界数据,存储到循环缓冲区的第五指针指向的宏块2的上边界数据,将获取的宏块边界数据中的右边界数据,存储到循环缓冲区的第五指针指向的宏块3的上边界数据,将获取的宏块边界数据中的右下角边界数据,存储到循环缓冲区的第四指针指向的宏块5的左上角边界数据;对如图3所示的旋转图像的第五行的宏块进行并行数据编码后,可以仅将宏块14进行数据编码后获取的宏块边界数据中的下边界数据,存储到循环缓冲区的第五指针指向的宏块17的上边界数据。
可以理解的是,由于对旋转图像每行的宏块进行并行数据编码时,可以依次发送该行宏块所需的宏块边界数据,而当第一个宏块进行并行数据编码后,第二个宏块所需的宏块边界数据可以已经发送到数据编码的模块,因此在3×图像宽度方向宏块数大小的循环缓冲区中,可以直接在第四指针指向的第二个宏块的位置存储第一个宏块进行并行数据编码后获取的右下角边界数据,也就是,下次第四指针指向本行时,第二个宏块的进行数据编码时的左上角边界数据。
本实施例中,本发明实施例通过对图像进行旋转,将图像中第i列的宏块均下移i-1行,并在其余位置添加空白宏块,获取存在n(m+n-1)个宏块的旋转图像,可以去除宏块间的数据依赖,使对宏块进行的数据编码的流水执行;通过根据已知的宏块边界数据和/或OpenCL中本地内存中的循环缓冲区存储的宏块边界数据,依次对旋转图像每行的宏块进行并行数据编码,以及将图像的宏块进行数据编码获取的宏块边界数据存储到循环缓冲区的对应位置,可以利用循环缓冲区存储已知的宏块边界数据之外的需要进行数据编码的宏块所需的宏块边界数据,避免了存储整幅图像的宏块边界数据,大量减少了所需存储空间,使得宏块边界数据存储在本地内存中,规避了对全局内存的访问,从而大幅提高WebP压缩的效率。
请参考图5,图5为本发明实施例所提供的一种基于OpenCL的WebP压缩并行加速装置的结构图。该装置可以包括:
旋转模块100,用于对图像进行旋转,将图像中第i列的宏块均下移i-1行,并在其余位置添加空白宏块,获取存在n(m+n-1)个宏块的旋转图像;其中,n为图像和旋转图像的列数,m为图像的行数,i为大于等于0且小于等于n的正整数,m+n-1为旋转图像的行数;
编码模块200,用于根据已知的宏块边界数据和/或OpenCL中本地内存中的循环缓冲区存储的宏块边界数据,依次对旋转图像每行的宏块进行并行数据编码;
存储模块300,用于将图像的宏块进行数据编码获取的宏块边界数据存储到循环缓冲区的对应位置。
可选的,编码模块200,可以包括:
第一编码子模块,用于依次根据将循环缓冲区的第一指针指向的行中的宏块存储的宏块边界数据和对应的已知的宏块边界数据,对旋转图像每行的宏块进行并行数据编码;其中,循环缓冲区包括3行宏块,第一指针、第二指针和第三指针在初始状态分别依次指向循环缓冲区中的1个宏块行,循环缓冲区为3n个宏块的大小;
第一修改子模块,用于旋转图像的当前行的宏块进行并行数据编码完成后,将第一指针和第二指针的指向修改为原本第二指针和第三指针的指向,将第三指针的指向修改为原本第一指针的指向。
可选的,存储模块300,可以包括:
第一存储子模块,用于对旋转图像每行的宏块进行并行数据编码后,将获取的第p个宏块的宏块边界数据中的下边界数据,存储为循环缓冲区的第二指针指向的宏块行的第p个宏块的上边界数据;其中,获取的第p个宏块的宏块边界数据不为空白宏块进行数据编码后获取的宏块边界数据,p为大于等于0且小于等于n的正整数;
第二存储子模块,用于若p不等于n,则获取的第p个宏块的宏块边界数据中的右边界数据和右下角边界数据,存储为循环缓冲区的第二指针指向的宏块行的第p+1个宏块的左边界数据和左上角边界数据。
可选的,编码模块200,可以包括:
第二编码子模块,用于依次根据将循环缓冲区的第四指针指向的行中的宏块存储的宏块边界数据和对应的已知的宏块边界数据,对旋转图像每行的宏块进行并行数据编码;其中,循环缓冲区包括2行宏块,第四指针和第五指针在初始状态分别依次指向循环缓冲区中的1个宏块行,循环缓冲区为2n个宏块的大小;
第二修改子模块,用于旋转图像的当前行的宏块进行并行数据编码完成后,将第四指针的指向修改为原本第五指针的指向,将第五指针的指向修改为原本第四指针的指向。
可选的,存储模块300,可以包括:
第三存储子模块,用于对旋转图像每行的宏块进行并行数据编码后,将获取的第p个宏块的宏块边界数据中的下边界数据,存储为循环缓冲区的第五指针指向的宏块行的第p个宏块的上边界数据;其中,获取的第p个宏块的宏块边界数据不为空白宏块进行数据编码后获取的宏块边界数据,p为大于等于0且小于等于n的正整数;
第四存储子模块,用于若p不等于n,则获取的第p个宏块的宏块边界数据中的右边界数据和右下角边界数据,存储为循环缓冲区的第四指针指向的宏块行的第p+1个宏块的左边界数据和左上角边界数据。
本实施例中,本发明实施例通过旋转模块100对图像进行旋转,将图像中第i列的宏块均下移i-1行,并在其余位置添加空白宏块,获取存在n(m+n-1)个宏块的旋转图像,可以去除宏块间的数据依赖,使对宏块进行的数据编码的流水执行;通过编码模块200和存储模块300根据已知的宏块边界数据和/或OpenCL中本地内存中的循环缓冲区存储的宏块边界数据,依次对旋转图像每行的宏块进行并行数据编码,以及将图像的宏块进行数据编码获取的宏块边界数据存储到循环缓冲区的对应位置,可以利用循环缓冲区存储已知的宏块边界数据之外的需要进行数据编码的宏块所需的宏块边界数据,避免了存储整幅图像的宏块边界数据,大量减少了所需存储空间,使得宏块边界数据存储在本地内存中,规避了对全局内存的访问,从而大幅提高WebP压缩的效率。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上对本发明所提供的基于OpenCL的WebP压缩并行加速方法及装置进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
Claims (10)
1.一种基于OpenCL的WebP压缩并行加速方法,其特征在于,包括:
对图像进行旋转,将所述图像中第i列的宏块均下移i-1行,并在其余位置添加空白宏块,获取存在n(m+n-1)个宏块的旋转图像;其中,n为所述图像和所述旋转图像的列数,m为所述图像的行数,i为大于等于0且小于等于n的正整数,m+n-1为所述旋转图像的行数;
根据已知的宏块边界数据和/或OpenCL中本地内存中的循环缓冲区存储的宏块边界数据,依次对所述旋转图像每行的宏块进行并行数据编码;
将所述图像的宏块进行数据编码获取的宏块边界数据存储到所述循环缓冲区的对应位置。
2.根据权利要求1所述的基于OpenCL的WebP压缩并行加速方法,其特征在于,所述根据已知的宏块边界数据和/或OpenCL中本地内存中的循环缓冲区存储的宏块边界数据,依次对所述旋转图像每行的宏块并行进行数据编码,包括:
依次根据将所述循环缓冲区的第一指针指向的行中的宏块存储的宏块边界数据和对应的已知的宏块边界数据,对所述旋转图像每行的宏块进行并行数据编码;其中,所述循环缓冲区包括3行宏块,所述第一指针、第二指针和第三指针在初始状态分别依次指向所述循环缓冲区中的1个宏块行,所述循环缓冲区为3n个宏块的大小;
所述旋转图像的当前行的宏块进行并行数据编码完成后,将所述第一指针和所述第二指针的指向修改为原本所述第二指针和所述第三指针的指向,将所述第三指针的指向修改为原本所述第一指针的指向。
3.根据权利要求2所述的基于OpenCL的WebP压缩并行加速方法,其特征在于,所述将所述图像的宏块进行数据编码获取的宏块边界数据存储到所述循环缓冲区的对应位置,包括:
对所述旋转图像每行的宏块进行并行数据编码后,将获取的第p个宏块的宏块边界数据中的下边界数据,存储为所述循环缓冲区的第二指针指向的宏块行的第p个宏块的上边界数据;其中,获取的第p个宏块的宏块边界数据不为空白宏块进行数据编码后获取的宏块边界数据,p为大于等于0且小于等于n的正整数;
若p不等于n,则获取的第p个宏块的宏块边界数据中的右边界数据和右下角边界数据,存储为所述循环缓冲区的第二指针指向的宏块行的第p+1个宏块的左边界数据和左上角边界数据。
4.根据权利要求1所述的基于OpenCL的WebP压缩并行加速方法,其特征在于,所述根据已知的宏块边界数据和/或OpenCL中本地内存中的循环缓冲区存储的宏块边界数据,依次对所述旋转图像每行的宏块并行进行数据编码,包括:
依次根据将所述循环缓冲区的第四指针指向的行中的宏块存储的宏块边界数据和对应的已知的宏块边界数据,对所述旋转图像每行的宏块进行并行数据编码;其中,所述循环缓冲区包括2行宏块,所述第四指针和第五指针在初始状态分别依次指向所述循环缓冲区中的1个宏块行,所述循环缓冲区为2n个宏块的大小;
所述旋转图像的当前行的宏块进行并行数据编码完成后,将所述第四指针的指向修改为原本所述第五指针的指向,将所述第五指针的指向修改为原本所述第四指针的指向。
5.根据权利要求4所述的基于OpenCL的WebP压缩并行加速方法,其特征在于,所述将所述图像的宏块进行数据编码获取的宏块边界数据存储到所述循环缓冲区的对应位置,包括:
对所述旋转图像每行的宏块进行并行数据编码后,将获取的第p个宏块的宏块边界数据中的下边界数据,存储为所述循环缓冲区的第五指针指向的宏块行的第p个宏块的上边界数据;其中,获取的第p个宏块的宏块边界数据不为空白宏块进行数据编码后获取的宏块边界数据,p为大于等于0且小于等于n的正整数;
若p不等于n,则获取的第p个宏块的宏块边界数据中的右边界数据和右下角边界数据,存储为所述循环缓冲区的第四指针指向的宏块行的第p+1个宏块的左边界数据和左上角边界数据。
6.一种基于OpenCL的WebP压缩并行加速装置,其特征在于,包括:
旋转模块,用于对图像进行旋转,将所述图像中第i列的宏块均下移i-1行,并在其余位置添加空白宏块,获取存在n(m+n-1)个宏块的旋转图像;其中,n为所述图像和所述旋转图像的列数,m为所述图像的行数,i为大于等于0且小于等于n的正整数,m+n-1为所述旋转图像的行数;
编码模块,用于根据已知的宏块边界数据和/或OpenCL中本地内存中的循环缓冲区存储的宏块边界数据,依次对所述旋转图像每行的宏块进行并行数据编码;
存储模块,用于将所述图像的宏块进行数据编码获取的宏块边界数据存储到所述循环缓冲区的对应位置。
7.根据权利要求6所述的基于OpenCL的WebP压缩并行加速装置,其特征在于,所述编码模块,包括:
第一编码子模块,用于依次根据将所述循环缓冲区的第一指针指向的行中的宏块存储的宏块边界数据和对应的已知的宏块边界数据,对所述旋转图像每行的宏块进行并行数据编码;其中,所述循环缓冲区包括3行宏块,所述第一指针、第二指针和第三指针在初始状态分别依次指向所述循环缓冲区中的1个宏块行,所述循环缓冲区为3n个宏块的大小;
第一修改子模块,用于所述旋转图像的当前行的宏块进行并行数据编码完成后,将所述第一指针和所述第二指针的指向修改为原本所述第二指针和所述第三指针的指向,将所述第三指针的指向修改为原本所述第一指针的指向。
8.根据权利要求7所述的基于OpenCL的WebP压缩并行加速装置,其特征在于,所述存储模块,包括:
第一存储子模块,用于对所述旋转图像每行的宏块进行并行数据编码后,将获取的第p个宏块的宏块边界数据中的下边界数据,存储为所述循环缓冲区的第二指针指向的宏块行的第p个宏块的上边界数据;其中,获取的第p个宏块的宏块边界数据不为空白宏块进行数据编码后获取的宏块边界数据,p为大于等于0且小于等于n的正整数;
第二存储子模块,用于若p不等于n,则获取的第p个宏块的宏块边界数据中的右边界数据和右下角边界数据,存储为所述循环缓冲区的第二指针指向的宏块行的第p+1个宏块的左边界数据和左上角边界数据。
9.根据权利要求6所述的基于OpenCL的WebP压缩并行加速方法,其特征在于,所述编码模块,包括:
第二编码子模块,用于依次根据将所述循环缓冲区的第四指针指向的行中的宏块存储的宏块边界数据和对应的已知的宏块边界数据,对所述旋转图像每行的宏块进行并行数据编码;其中,所述循环缓冲区包括2行宏块,所述第四指针和第五指针在初始状态分别依次指向所述循环缓冲区中的1个宏块行,所述循环缓冲区为2n个宏块的大小;
第二修改子模块,用于所述旋转图像的当前行的宏块进行并行数据编码完成后,将所述第四指针的指向修改为原本所述第五指针的指向,将所述第五指针的指向修改为原本所述第四指针的指向。
10.根据权利要求9所述的基于OpenCL的WebP压缩并行加速方法,其特征在于,所述存储模块,包括:
第三存储子模块,用于对所述旋转图像每行的宏块进行并行数据编码后,将获取的第p个宏块的宏块边界数据中的下边界数据,存储为所述循环缓冲区的第五指针指向的宏块行的第p个宏块的上边界数据;其中,获取的第p个宏块的宏块边界数据不为空白宏块进行数据编码后获取的宏块边界数据,p为大于等于0且小于等于n的正整数;
第四存储子模块,用于若p不等于n,则获取的第p个宏块的宏块边界数据中的右边界数据和右下角边界数据,存储为所述循环缓冲区的第四指针指向的宏块行的第p+1个宏块的左边界数据和左上角边界数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710623789.XA CN107392838B (zh) | 2017-07-27 | 2017-07-27 | 基于OpenCL的WebP压缩并行加速方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710623789.XA CN107392838B (zh) | 2017-07-27 | 2017-07-27 | 基于OpenCL的WebP压缩并行加速方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107392838A true CN107392838A (zh) | 2017-11-24 |
CN107392838B CN107392838B (zh) | 2020-11-27 |
Family
ID=60341697
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710623789.XA Active CN107392838B (zh) | 2017-07-27 | 2017-07-27 | 基于OpenCL的WebP压缩并行加速方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107392838B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107613301A (zh) * | 2017-10-17 | 2018-01-19 | 郑州云海信息技术有限公司 | 一种图像处理方法及装置 |
CN108419078A (zh) * | 2018-06-06 | 2018-08-17 | 郑州云海信息技术有限公司 | 基于WebP图像压缩算法的图像处理方法及装置 |
CN108932129A (zh) * | 2018-06-26 | 2018-12-04 | 郑州云海信息技术有限公司 | 一种WebP编码过程中熵编码算法的加速系统及方法 |
CN109949202A (zh) * | 2019-02-02 | 2019-06-28 | 西安邮电大学 | 一种并行的图计算加速器结构 |
Citations (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1589032A (zh) * | 2004-07-30 | 2005-03-02 | 联合信源数字音视频技术(北京)有限公司 | 基于多级并行流水线方式的环路滤波装置 |
CN1645928A (zh) * | 2005-02-03 | 2005-07-27 | 清华大学 | 用于压缩视频信号解码的图像存储方法 |
CN101252691A (zh) * | 2008-03-12 | 2008-08-27 | 中兴通讯股份有限公司 | 一种多处理器并行实现高分辨率图像滤波的方法 |
CN101330614A (zh) * | 2007-06-21 | 2008-12-24 | 中兴通讯股份有限公司 | 使用数字信号处理器进行分数像素精度运动估计的方法 |
CN101534443A (zh) * | 2009-04-17 | 2009-09-16 | 上海广电(集团)有限公司中央研究院 | 一种帧间预测模式下的内存访问方法 |
CN101902643A (zh) * | 2010-07-09 | 2010-12-01 | 西安交通大学 | 并行阵列式帧内预测解码器vlsi结构设计方法 |
CN102577388A (zh) * | 2009-09-30 | 2012-07-11 | 索尼公司 | 图像处理装置和方法 |
CN102625108A (zh) * | 2012-03-30 | 2012-08-01 | 浙江大学 | 一种基于多核处理器实现的h.264解码方法 |
US20120219068A1 (en) * | 2007-08-09 | 2012-08-30 | Elemental Technologies, Inc. | Method for efficiently executing video encoding operations on stream processor architectures |
WO2012124818A1 (en) * | 2011-03-14 | 2012-09-20 | Sharp Kabushiki Kaisha | A decoder |
CN103124345A (zh) * | 2011-11-18 | 2013-05-29 | 江南大学 | 并行编码方法 |
US20140056365A1 (en) * | 2008-12-03 | 2014-02-27 | Mediatek Inc. | Method for performing parallel coding with ordered entropy slices, and associated apparatus |
CN103747250A (zh) * | 2013-12-28 | 2014-04-23 | 华中科技大学 | 一种H.264/AVC中4x4子宏块的并行帧内预测方法 |
WO2014105385A1 (en) * | 2012-12-27 | 2014-07-03 | The Regents Of The University Of California | Anamorphic stretch image compression |
CN105191304A (zh) * | 2013-03-08 | 2015-12-23 | 联发科技股份有限公司 | 依据像素数据执行位平面扫描编码的图像编码方法与装置以及相关的图像解码方法与装置 |
WO2016095806A1 (zh) * | 2014-12-16 | 2016-06-23 | 广州市动景计算机科技有限公司 | 一种图片数据传输方法及装置 |
CN106558083A (zh) * | 2016-11-30 | 2017-04-05 | 郑州云海信息技术有限公司 | 一种webp压缩算法帧内预测阶段的加速方法、装置及系统 |
CN106681659A (zh) * | 2016-12-16 | 2017-05-17 | 郑州云海信息技术有限公司 | 数据压缩的方法及装置 |
-
2017
- 2017-07-27 CN CN201710623789.XA patent/CN107392838B/zh active Active
Patent Citations (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1589032A (zh) * | 2004-07-30 | 2005-03-02 | 联合信源数字音视频技术(北京)有限公司 | 基于多级并行流水线方式的环路滤波装置 |
CN1645928A (zh) * | 2005-02-03 | 2005-07-27 | 清华大学 | 用于压缩视频信号解码的图像存储方法 |
CN101330614A (zh) * | 2007-06-21 | 2008-12-24 | 中兴通讯股份有限公司 | 使用数字信号处理器进行分数像素精度运动估计的方法 |
US20120219068A1 (en) * | 2007-08-09 | 2012-08-30 | Elemental Technologies, Inc. | Method for efficiently executing video encoding operations on stream processor architectures |
CN101252691A (zh) * | 2008-03-12 | 2008-08-27 | 中兴通讯股份有限公司 | 一种多处理器并行实现高分辨率图像滤波的方法 |
US20140056365A1 (en) * | 2008-12-03 | 2014-02-27 | Mediatek Inc. | Method for performing parallel coding with ordered entropy slices, and associated apparatus |
CN101534443A (zh) * | 2009-04-17 | 2009-09-16 | 上海广电(集团)有限公司中央研究院 | 一种帧间预测模式下的内存访问方法 |
CN102577388A (zh) * | 2009-09-30 | 2012-07-11 | 索尼公司 | 图像处理装置和方法 |
CN101902643A (zh) * | 2010-07-09 | 2010-12-01 | 西安交通大学 | 并行阵列式帧内预测解码器vlsi结构设计方法 |
WO2012124818A1 (en) * | 2011-03-14 | 2012-09-20 | Sharp Kabushiki Kaisha | A decoder |
CN103124345A (zh) * | 2011-11-18 | 2013-05-29 | 江南大学 | 并行编码方法 |
CN102625108A (zh) * | 2012-03-30 | 2012-08-01 | 浙江大学 | 一种基于多核处理器实现的h.264解码方法 |
WO2014105385A1 (en) * | 2012-12-27 | 2014-07-03 | The Regents Of The University Of California | Anamorphic stretch image compression |
CN105191304A (zh) * | 2013-03-08 | 2015-12-23 | 联发科技股份有限公司 | 依据像素数据执行位平面扫描编码的图像编码方法与装置以及相关的图像解码方法与装置 |
CN103747250A (zh) * | 2013-12-28 | 2014-04-23 | 华中科技大学 | 一种H.264/AVC中4x4子宏块的并行帧内预测方法 |
WO2016095806A1 (zh) * | 2014-12-16 | 2016-06-23 | 广州市动景计算机科技有限公司 | 一种图片数据传输方法及装置 |
CN106558083A (zh) * | 2016-11-30 | 2017-04-05 | 郑州云海信息技术有限公司 | 一种webp压缩算法帧内预测阶段的加速方法、装置及系统 |
CN106681659A (zh) * | 2016-12-16 | 2017-05-17 | 郑州云海信息技术有限公司 | 数据压缩的方法及装置 |
Non-Patent Citations (6)
Title |
---|
MIGUEL ANGEL AGUILAR ET.AL: "Parallelism Extraction in Embedded Software for Android Devices", 《IEEE》 * |
吴自勉: "OWL 2 EL并行推理技术研究", 《中国优秀硕士学位论文全文数据库信息科技辑(月刊)》 * |
苏华友: "面向应用的GPU并行计算关键技术研究", 《中国博士学位论文全文数据库信息科技辑(月刊)》 * |
荣超群: "基于FPGA的H.264编码系统设计与实现", 《中国优秀硕士学位论文全文数据库信息科技辑(月刊)》 * |
顾荣: "大数据处理技术与系统研究", 《中国博士学位论文全文数据库信息科技辑(月刊)》 * |
龚若皓: "基于嵌入式移动GPU的图像编解码并行优化", 《中国优秀硕士学位论文全文数据库信息科技辑(月刊)》 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107613301A (zh) * | 2017-10-17 | 2018-01-19 | 郑州云海信息技术有限公司 | 一种图像处理方法及装置 |
CN107613301B (zh) * | 2017-10-17 | 2020-05-26 | 苏州浪潮智能科技有限公司 | 一种图像处理方法及装置 |
CN108419078A (zh) * | 2018-06-06 | 2018-08-17 | 郑州云海信息技术有限公司 | 基于WebP图像压缩算法的图像处理方法及装置 |
CN108419078B (zh) * | 2018-06-06 | 2021-11-09 | 郑州云海信息技术有限公司 | 基于WebP图像压缩算法的图像处理方法及装置 |
CN108932129A (zh) * | 2018-06-26 | 2018-12-04 | 郑州云海信息技术有限公司 | 一种WebP编码过程中熵编码算法的加速系统及方法 |
CN109949202A (zh) * | 2019-02-02 | 2019-06-28 | 西安邮电大学 | 一种并行的图计算加速器结构 |
Also Published As
Publication number | Publication date |
---|---|
CN107392838B (zh) | 2020-11-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107392838A (zh) | 基于OpenCL的WebP压缩并行加速方法及装置 | |
CN104732574B (zh) | 一种角色游戏的压缩方法及装置 | |
WO2021062279A1 (en) | Dynamic point cloud compression using inter-prediction | |
WO2021196392A1 (zh) | 一种点云几何编码方法、解码方法、编码设备及解码设备 | |
CN107154012A (zh) | 图形处理器及其操作方法 | |
CN109948774A (zh) | 基于网络层捆绑运算的神经网络加速器及其实现方法 | |
CN113628314A (zh) | 一种虚幻引擎中摄影测量模型的可视化方法、装置和设备 | |
CN102147768B (zh) | 存储器、固态缓存系统及缓存数据处理方法 | |
CN105933708B (zh) | 一种数据压缩和解压缩的方法和装置 | |
EP3849188A1 (en) | Point cloud coding method and encoder | |
WO2020147379A1 (zh) | 点云滤波方法、装置及存储介质 | |
CN108628951A (zh) | 基于文档模型的空间数据块状组织存储与化简压缩方法 | |
CN112055216B (zh) | 一种基于Unity的倾斜摄影海量快速加载方法及装置 | |
CN113077047A (zh) | 一种基于特征图稀疏性的卷积神经网络加速器 | |
CN104253998B (zh) | 一种适用于hevc标准的去方块效应滤波器的硬件片上存储方法 | |
CN111783967B (zh) | 一种适用于专用神经网络加速器的数据双层缓存方法 | |
CN104899835A (zh) | 基于盲模糊估计与锚定空间映射的图像超分辨处理方法 | |
WO2021138786A1 (zh) | 一种最近邻搜索方法及装置、设备、存储介质 | |
CN109255429A (zh) | 一种用于稀疏神经网络模型的参数解压方法 | |
CN104407384A (zh) | 地震剖面显示的方法 | |
CN103475905B (zh) | 云环境下基于网络连接复用的影像数据块高效传输方法 | |
Remacle et al. | Fast and robust mesh generation on the sphere—Application to coastal domains | |
CN106355545A (zh) | 一种数字图像几何变换的处理方法及装置 | |
CN110097581A (zh) | 基于点云配准icp算法构建k-d树的方法 | |
CN107680031A (zh) | 一种rgb转yuv方法、系统及计算机可读存储介质 |
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 |
Effective date of registration: 20201109 Address after: 215100 No. 1 Guanpu Road, Guoxiang Street, Wuzhong Economic Development Zone, Suzhou City, Jiangsu Province Applicant after: SUZHOU LANGCHAO INTELLIGENT TECHNOLOGY Co.,Ltd. Address before: 450018 Henan province Zheng Dong New District of Zhengzhou City Xinyi Road No. 278 16 floor room 1601 Applicant before: ZHENGZHOU YUNHAI INFORMATION TECHNOLOGY Co.,Ltd. |
|
TA01 | Transfer of patent application right | ||
GR01 | Patent grant | ||
GR01 | Patent grant |