一种基于块处理的图像旋转装置、系统和方法与流程

文档序号:15350305发布日期:2018-09-04 23:15阅读:213来源:国知局

本发明涉及图像处理领域,特别涉及一种基于块处理的图像旋转装置、系统和方法。



背景技术:

数码图像在电子设备中是以光栅化的像素点阵列的格式存在的(如图1所示)。为了节约存储空间,通常是先将光栅图像压缩成不同格式(如jpeg、png等)的图片文件,而后再存储在存储设备中(如硬盘、u盘等)。当需要对图像进行处理时,系统会先将存储设备中的图片文件进行解码,重新以光栅点阵格式载入到ddr内存中,然后图像处理单元再读取ddr内存中的原始图像数据进行处理,并将处理完的新数据回写到ddr内存中(如图2所示)。

图像旋转是图像处理中的重要一项。图像的任意角度旋转,是对每个像素点进行坐标变换,假设原始图像的左上角为坐标原点(0,0),旋转角度为顺时针方向θ度,那么旋转变换公式如图3所示。根据图像旋转的原理,有两种实现方法,一种是按行连续读取原始像素,经过旋转后生成像素点的位置是不连续的,需要逐个跳跃地回写至ddr;第二种是让旋转后的生成像素按行连续输出,但是在读取原始像素点的时候需要对不连续的单点进行读取。

综上所述,传统的图像旋转操作在访问ddr内存时存在地址的不连续性的问题。而根据ddr内存读写的标准原理,其基本单元访问方式是连续的段访问(burst),即每次读取或者回写,都会拆分成固定长度的连续访问(固定长度可以为4个、8个、16个)。即便对ddr的访问只是对一个地址单元的访问,在总线行为上也是一个连续的地址段的访问,ddr内部对无效访问的地址单元进行屏蔽,因此对ddr内存单个地址的访问效率是很低的。



技术实现要素:

本发明提供一种基于块处理的图像旋转技术方案,用以解决图像旋转过程中存在着读写效率低、速度慢、功耗高等问题。

发明人提供了一种基于块处理的图像旋转装置,所述装置包括ddr读取单元、子块缓存单元、子块旋转单元、ddr回写单元;所述子块缓存单元包括输入缓存和输出缓存;所述ddr读取单元分别与ddr内存、输入缓存连接;所述输入缓存与子块旋转单元连接,所述子块旋转单元与输出缓存连接,所述ddr回写单元分别与输出缓存、ddr内存连接;

所述ddr读取单元用于接收包含有图像旋转参数的图像旋转指令,并根据旋转后图像分块规则进行坐标旋转映射,将原始图像划分为若干原始子块,根据原始子块确定取数子块,而后以第一预设顺序从ddr内存中依次读取取数子块对应的原始图像数据存储至输入缓存中;

所述子块旋转单元用于根据图像旋转参数,对输入缓存中的每一个原始子块逐块进行像素旋转计算,生成对应的旋转子块数据,并将旋转子块输出到输出缓存中;

所述ddr回写单元用于读取输出缓存,将各个旋转子块的像素数据回写至ddr内存中,直至所有旋转子块全部回写完成。

接收包含有图像旋转参数的图像旋转指令,并根据旋转后图像分块规则进行坐标旋转映射,将原始图像划分为若干原始子块,根据原始子块确定取数子块进一步地,ddr读取单元用于将原始图像数据划分为若干原始子块,根据原始子块生成取数子块包括:

计算原始图像根据图像旋转参数进行旋转后得到的生成图像,并将生成图像划分为若干生成子块,所述生成子块的形状为直立正方形,各个生成子块大小相等;

根据图像旋转参数对生成子块进行坐标逆向旋转并映射到原始图像上;

以映射后的原始子块框的所有顶点为边界,选定一个包含了对应生成子块所需的所有原始像素点且形状为直立的正方形取数框,将该取数框与原始图像的重叠区域确定为取数子块。

进一步地,所述第一预设顺序为从左到右、从上到下,所述第二预设顺序为逐行扫描顺序。

进一步地,所述图像旋转参数包括原始图像大小、生成图像大小和图像旋转角度参数。

发明人还提供了一种基于块处理的图像旋转系统,其特征在于,所述基于块处理的图像旋转系统包括基于块处理的图像旋转装置和ddr内存,所述基于块处理的图像旋转装置与ddr内存连接,所述基于块处理的图像旋转装置为前文所述的基于块处理的图像旋转装置。

发明人还提供了一种基于块处理的图像旋转方法,所述方法应用于基于块处理的图像旋转装置,所述装置包括ddr读取单元、子块缓存单元、子块旋转单元、ddr回写单元;所述子块缓存单元包括输入缓存和输出缓存;所述ddr读取单元分别与ddr内存、输入缓存连接;所述输入缓存与子块旋转单元连接,所述子块旋转单元与输出缓存连接,所述ddr回写单元分别与输出缓存、ddr内存连接;所述方法包括以下步骤:

ddr读取单元接收包含有图像旋转参数的图像旋转指令,并根据旋转后图像分块规则进行坐标旋转映射,将原始图像划分为若干原始子块,根据原始子块确定取数子块,以及根据第一预设顺序采用取数子块从ddr内存中依次读取原始子块数据,并将原始子块数据存储至输入缓存中;

子块旋转单元根据图像旋转参数,对输入缓存中的每一个原始子块逐块进行像素旋转计算,生成对应的旋转子块数据,并将旋转子块输出到输出缓存中;

ddr回写单元读取输出缓存中的各个旋转子块数据,并根据第二预设顺序将各个旋转子块像素数据回写至ddr内存中,直至所有旋转子块全部回写完成。

进一步地,步骤ddr读取单元将原始图像数据划分为若干原始子块,根据原始子块生成取数子块包括:

计算原始图像根据图像旋转参数进行旋转后得到的生成图像,并将生成图像划分为若干生成子块,所述生成子块的形状为直立正方形,各个生成子块大小相等;

根据图像旋转参数对生成子块进行坐标逆向旋转并映射到原始图像上;

以映射后的原始子块框的所有顶点为边界,选定一个包含了对应生成子块所需的所有原始像素点且形状为直立的正方形取数框,将该取数框与原始图像的重叠区域确定为取数子块。

进一步地,所述第一预设顺序为从左到右、从上到下,所述第二预设顺序为逐行扫描顺序。

进一步地,所述图像旋转参数包括原始图像大小、生成图像大小和图像旋转角度参数。

本发明提供了一种基于块处理的基于块处理的图像旋转装置、系统和方法,所述方法包括以下步骤:ddr读取单元接收图像旋转指令,并根据旋转后图像的分块规则进行坐标旋转映射,将原始图像划分为若干原始子块,然后通过取数框得到取数子块,并以第一预设顺序从ddr内存中依次读取原始取数子块数据;子块旋转单元根据图像旋转参数,对每一个原始子块逐块进行像素旋转计算,生成对应的旋转子块数据并送入输出缓存;ddr回写单元读取输出缓存,将各个旋转子块的像素数据回写至ddr内存中,直至所有旋转子块全部回写完成。这样,每个子块内部的行数据是ddr地址连续的,从而实现了图像旋转处理过程中对ddr内存访问的高效性,提升了图像旋转的处理速度。

附图说明

图1为光栅化的像素点阵列的图像的示意图;

图2为图像数据处理过程的原理示意图;

图3为图像旋转的原理示意图;

图4为本发明一实施例涉及的基于块处理的图像旋转装置的示意图;

图5为本发明一实施例涉及的基于块处理的图像旋转方法的流程图;

图6本发明的ddr读取单元确定取数子块的原理图;

附图标记说明:

301、基于块处理的图像旋转装置;

101、ddr读取单元;

102、输入缓存;

103、子块旋转单元;

104、输出缓存;

105、ddr回写单元;

106、ddr内存。

具体实施方式

为详细说明技术方案的技术内容、构造特征、所实现目的及效果,以下结合具体实施例并配合附图详予说明。

请参阅图4,本发明提供了一种与ddr内存106连接的基于块处理的图像旋转装置301,基于块处理的图像旋转装置301可以读取ddr内存106中的原始图像数据并进行处理,以及将处理完成的图像数据回写至ddr内存106.

所述装置包括ddr读取单元101、子块缓存单元、子块旋转单元103、ddr回写单元105;所述子块缓存单元包括输入缓存102和输出缓存104;所述ddr读取单元101分别与ddr内存106、输入缓存102连接;所述输入缓存102与子块旋转单元103连接,所述子块旋转单元103与输出缓存104连接,所述ddr回写单元105分别与输出缓存104、ddr内存106连接。其中,ddr读取单元101和ddr回写单元105分别通过总线与ddr内存106连接。所述图像旋转参数包括原始图像大小、生成图像大小和图像旋转角度参数。优选的,所述第一预设顺序为从左到右、从上到下,所述第二预设顺序为逐行扫描顺序。即对于一幅图像的处理是以子块为单位进行处理的,具体为按照从左到右、从上到下的“z”字型顺序来处理子块,而对于每个子块内部的像素点,则是按照逐行进行扫描处理的。

所述ddr读取单元101用于接收包含有图像旋转参数的图像旋转指令,并根据旋转后图像分块规则进行坐标旋转映射,将原始图像划分为若干原始子块,根据原始子块确定取数子块,以及根据第一预设顺序采用取数子块从ddr内存中依次读取原始子块数据,并将原始子块数据存储至输入缓存102中。

如图6所示,ddr读取单元101用于将原始图像数据划分为若干原始子块,根据原始子块生成取数子块包括:

计算原始图像根据图像旋转参数进行旋转后得到的生成图像,并将生成图像划分为若干生成子块。优选的,所述生成子块的形状为直立正方形,各个生成子块大小相等,方便后续进行高效的ddr回写。

根据图像旋转参数对生成子块进行坐标逆向旋转并映射到原始图像上,得到对应的原始子块区域(该区域可能为倾斜的正方形)。例如图像旋转角度为顺时针旋转30°,那么ddr读取单元将对生成子块按照逆时针旋转30°后映射到原始图像上。

以映射后的原始子块框的所有顶点为边界,选定一个包含了对应生成子块所需的所有原始像素点且形状为直立的正方形取数框,将该取数框与原始图像的重叠区域确定为取数子块。取数子块范围内的对应到ddr内存中的原始图像数据可以被高效的逐行读取。

所述子块旋转单元用于根据图像旋转参数,对输入缓存中的每一个原始子块逐块进行像素旋转计算,生成对应的旋转子块数据,并将旋转子块输出到输出缓存中;

所述ddr回写单元用于读取输出缓存中的各个旋转子块数据,并根据第二预设顺序将各个旋转子块内部所包含的像素回写至ddr内存中,直至所有旋转子块全部回写完成,从而完成图像的旋转操作。

发明人还提供了一种基于块处理的图像旋转系统,所述基于块处理的图像旋转系统包括基于块处理的图像旋转装置和ddr内存,所述基于块处理的图像旋转装置与ddr内存连接,所述基于块处理的图像旋转装置为前文所述的基于块处理的图像旋转装置。

如图5所示,为本发明一实施例涉及的基于块处理的图像旋转方法的流程图。所述方法应用于基于块处理的图像旋转装置,所述装置包括ddr读取单元、子块缓存单元、子块旋转单元、ddr回写单元;所述子块缓存单元包括输入缓存和输出缓存;所述ddr读取单元分别与ddr内存、输入缓存连接;所述输入缓存与子块旋转单元连接,所述子块旋转单元与输出缓存连接,所述ddr回写单元分别与输出缓存、ddr内存连接;所述方法包括以下步骤:

首先进入步骤s501ddr读取单元接收包含有图像旋转参数的图像旋转指令,并根据旋转后图像分块规则进行坐标旋转映射,将原始图像划分为若干原始子块,根据原始子块确定取数子块,以及根据第一预设顺序采用取数子块从ddr内存中依次读取原始子块数据,并将原始子块数据存储至输入缓存中;

而后进入步骤s502子块旋转单元根据图像旋转参数,对输入缓存中的每一个原始子块逐块进行像素旋转计算,生成对应的旋转子块数据,并将旋转子块输出到输出缓存中;

而后进入步骤s503ddr回写单元读取输出缓存中的各个旋转子块数据,并根据第二预设顺序将各个旋转子块像素数据回写至ddr内存中,直至所有旋转子块全部回写完成。

在某些实施例中,步骤ddr读取单元根据旋转后图像分块规则进行坐标旋转映射,将原始图像划分为若干原始子块,根据原始子块确定取数子块包括:计算原始图像根据图像旋转参数进行旋转后得到的生成图像,并将生成图像划分为若干生成子块,所述生成子块的形状为直立正方形,各个生成子块大小相等;根据图像旋转参数对生成子块进行坐标逆向旋转并映射到原始图像上;以映射后的原始子块框的所有顶点为边界,选定一个包含了对应生成子块所需的所有原始像素点且形状为直立的正方形取数框,将该取数框与原始图像的重叠区域确定为取数子块。

本发明提供了一种基于块处理的基于块处理的图像旋转装置、系统和方法,所述方法包括以下步骤:ddr读取单元接收图像旋转指令,并根据旋转后图像的分块规则进行坐标旋转映射,将原始图像划分为若干原始子块,然后通过取数框得到取数子块,并以第一预设顺序从ddr内存中依次读取原始取数子块数据;子块旋转单元根据图像旋转参数,对每一个原始子块逐块进行像素旋转计算,生成对应的旋转子块数据并送入输出缓存;ddr回写单元读取输出缓存,将各个旋转子块的像素数据回写至ddr内存中,直至所有旋转子块全部回写完成。这样,每个子块内部的行数据是ddr地址连续的,从而实现了图像旋转处理过程中对ddr内存访问的高效性,提升了图像旋转的处理速度。

需要说明的是,尽管在本文中已经对上述各实施例进行了描述,但并非因此限制本发明的专利保护范围。因此,基于本发明的创新理念,对本文所述实施例进行的变更和修改,或利用本发明说明书及附图内容所作的等效结构或等效流程变换,直接或间接地将以上技术方案运用在其他相关的技术领域,均包括在本发明的专利保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1