CN104618717B - 行与块的整合转换方法及其计算机可读取存储介质 - Google Patents
行与块的整合转换方法及其计算机可读取存储介质 Download PDFInfo
- Publication number
- CN104618717B CN104618717B CN201310542919.9A CN201310542919A CN104618717B CN 104618717 B CN104618717 B CN 104618717B CN 201310542919 A CN201310542919 A CN 201310542919A CN 104618717 B CN104618717 B CN 104618717B
- Authority
- CN
- China
- Prior art keywords
- block
- address
- pixel
- memory
- horizontal
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0207—Addressing or allocation; Relocation with multidimensional access, e.g. row/column, matrix
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression Of Band Width Or Redundancy In Fax (AREA)
Abstract
本公开涉及行与块的整合转换方法及其计算机可读存储介质。本公开提供了一种行与块的整合转换方法,将图像分为M个水平块与N个垂直块,然后,通过双循环算法将该图像坐标化以获得多个像素单元的每一个坐标并且通过行转换将多个像素单元的地址连续地写入存储器并且通过块转换从存储器中读取数据,其中,读取速度等于或大于写入速度,使得降低了存储器的存储空间并且提高了存储器的利用率。
Description
技术领域
本发明涉及一种图像处理方法,具体地涉及一种行与块的整合转换方法以提高存储器的利用率。
背景技术
数字图像应用的快速发展,包括小规模出版业,多媒体、视频会议及高清晰度电视(HDTV)等,增加了对于有效率且标准化的图像压缩技术的需要。若没有图像压缩,则图像的传输所耗用的带宽可能是许多应用无法支持的。图像压缩方法将2维像素数组的图像转换为一系列的位,并将其通过传输联接传输。每一个像素表示该图像在一特定位置的强度。图像在数字电路的传输过程中,像素一般是按照从左往右,自上而下逐行传输的顺序。当对数字图像进行压缩时,通常要先把像素按照方块进行排列。例如JPEG是分成8×8的方块,H.264是分成16×16的方块,因此,这就需要用到行(line)与块(block)的转换。如果用数字电路来实现,则需要较大的存储器来缓冲存储数据。
在先前技术下,用数字电路来实现从行到块的转换,常用的方法是采用ping-pong的方式。假设块为16x16,图像宽度为W,高度为H,并且每个像素用1个字节表示,则转换过程中所需要的存储器存储空间为32×W。先前技术下的存储器被分为上下两部分,每个部分都正好可以存放16行的像素。首先第1~16行像素会按照输入顺序写入到存储器的上半部分,然后第17~32行的像素再写入到存储器的下半部分,同时按照块的顺序读取出存储器中上半部分的数据,并且读取和写入的速度相同。当存 储器的下半部分被读取完后,存储器的上半部分的数据也会被读取出来,然后再把第33~48行数据写入到存储器的上半部分,同时也会读取存储器中的下半部分的数据,后续数据以此方式重复进行。因此,用ping-pong的方式来进行行和块的转换,虽然实现方式简单,但是存储器的利用率不高。
发明内容
本发明的实施方式提供了一种用于一图像的行与块的整合转换方法,行与块的整合转换方法包括以下步骤:将图像分为M个水平块与N个垂直块;依次地将多个水平块中的第一水平块的多个第一像素单元的地址根据存储器的累加地址的顺序写入存储器;从存储器中每间隔像素预定距离来循环地读取多个第一像素单元的地址,其中所述像素预定距离为图像的宽度;通过双循环算法来获得多个第X像素单元的位置以顺序地读取第X水平块的多个第X像素单元的地址;以及,当每间隔像素预定距离来循环地读取存储器的多个第X像素单元的地址时,将多个水平块中的第X+1水平块的多个第X+1像素单元的地址循环地每间隔像素预定距离随后地写入存储器。多个水平块与多个垂直块形成M×N矩阵,每一矩阵的大小为B×B,并且第一像素单元与第X像素单元包括B个像素,其中,B、M与N为正整数并且N为该图像的宽度除以B。
本发明实施方式还提供了一种计算机可读取存储介质,用以存储计算机程序,上述计算机程序包括多个程序代码,其用以加载至电子装置并且使得电子装置执行用于一图像的一种行与块的整合转换方法,行与块的整合转换方法包括以下步骤:将图像分为M个水平块与N个垂直块;依次地将多个水平块中的第一水平块的多个第一像素单元的地址根据存储器的累加地址的顺序写入存储器;从存储器中每间隔像素预定距离来循环地读取多个第一像素单元的地址,其中,所述像素预定距离为图像的宽度;通过双循环算法来获得多个第X像素单元的位置以循序地读取第X水平 块的多个第X像素单元的地址;以及,当每间隔像素预定距离来循环地读取存储器的多个第X像素单元的地址时,将多个水平块中的第X+1水平块的多个第X+1像素单元的地址循环地每间隔像素预定距离随后地写入存储器。多个水平块与多个垂直块形成M×N矩阵,每一矩阵的大小为B×B,并且第一像素单元与第X像素单元包括B个像素,其中,B、M与N为正整数并且N为该图像的宽度除以B。
综上所述,本发明的实施方式所提出的行与块的整合转换方法与计算机可读取存储介质,通过行转换方式将图像的第一像素单元与第X像素单元写入存储器,并且通过块转换方式来读取存储于存储器的第一像素单元与第X像素单元,据此以提升存储器的利用率,亦即与先前技术的ping-pong方式相比,本公开能够节省约一半的存储器的存储空间,进而能够达到大幅降低数字电路的实施成本的功效。
为使能更进一步了解本发明的特征及技术内容,请参阅以下有关本发明的详细说明与附图,但是这样的说明与附图仅用来说明本发明,而非对本发明的权利范围作任何的限制。
附图说明
图1为根据本发明的示例性实施方式所示出的行与块的整合转换方法的示意图。
图2A与图2B为根据本发明的示例性实施方式所示出的将图像行转换写入至存储器的示意图。
图3为根据本发明的示例性实施方式所示出的行与块的整合转换方法的流程图。
图4为根据本发明的另一示例性实施方式所示出的行与块的整合转换方法的流程图。
[图的符号简单说明]:
S402、S404、S406、S408、S410、S412、S414、S416、S418、S420、S422、S424、S426:步骤
具体实施方式
在下文中将参照附图更充分地描述各种示例性实施方式,在附图中展示了一些示例性实施方式。然而,本发明的概念可能以许多不同形式来体现,且不应解释为限于本文中所阐述的示例性实施方式。
图像在数字电路的传输过程中,像素一般是按照从左往右,自上而下逐行传输的顺序。当在数字图像进行压缩时,通常要先把像素按照方块进行排列。例如JPEG是分成8×8的方块,H.264是分成16×16的方块,因此,这就需要用到行(line)与块(block)的转换。如果用数字电路来实现,则需要较大的存储器来缓冲存储数据。本公开提出了一种改进的存储器利用方法以降低存储器中所需的存储空间,进而提高存储器的利用率。
(行与块的整合转换方法的实施方式)
请参照图1,图1为根据本发明的示例性实施方式所示出的行与块的整合转换方法的示意图。在进行下述说明之前,须先说明的是,图像的宽度定义为W,并且图像的高度定义为H。如图1所示,在进行图像或视频(图像序列)数据压缩过程中,图像100会被分为M个水平块HB_0~HB_M-1与N个垂直块VB_0~VB_N-1,其中多个水平块HB_0~HB_M-1与多个垂直块VB_0~VB_N-1会形成一M×N矩阵,每一个矩阵的大小 为B×B。再者,每一个矩阵具有B×B个像素并且每个像素具有一个字节的数据。须注意的是,在本实施方式中,每16个像素定义为一个像素单元,因此整张图像100会先予以坐标化并且图像坐标的分辨率为像素单元(每一矩阵具有B个像素单元)。如图1所示,多个第一像素单元pu1为沿着多个水平块HB_0~HB_M-1的第一水平块HB_0的水平方向循序地被定义,依此类推,第X像素单元puX为沿着多个水平块HB_0~HB_M-1的第X水平块HB_X的水平方向循序地被定义,其中,B、M与N为正整数并且N为图像的宽度除以B,并且X为位于2与M之间的正整数。
接下来将进一步说明行与块的整合转换方法的转换机制。简单来说,本公开通过行转换方式来将图像100的多个第一像素单元pu1与多个第X像素单元puX写入存储器EVM,并且通过块转换方式来读取存储于存储器EVM的多个第一像素单元pu1与多个第X像素单元puX,以进行图像数据压缩工作。
请同时参照图1~图3,图2A与图2B为根据本发明的示例性实施方式所示出的将图像行转换写入存储器的示意图。图3为根据本发明的示例性实施方式所示出的行与块的整合转换方法的流程图。行与块的整合转换方法包括以下步骤:将图像100分为M个水平块与N个垂直块(步骤S310)。依次地将多个水平块HB_0~HB_M-1中的第一水平块HB_0的多个第一像素单元pu1的地址根据一存储器EVM的累加地址的顺序写入存储器EVM(步骤S320)。从存储器EVM中每间隔像素预定距离来循环地读取多个第一像素单元pu1的地址,其中,像素预定距离为图像的宽度W(步骤S330)。通过双循环算法来获得多个第X像素单元的位置以循序地读取第X水平块HB_X的多个第X像素单元的地址(步骤S340)。当每间隔像素预定距离来循环地读取存储器的多个第X像素单元的地址时,将多个水平块HB_0~HB_M-1中的第X+1水平块HB_X的多个第X+1像素单元的地址循环地每间隔像素预定距离随后地写入存储器EVM(步骤 S350)。在此,先以图像100的第1~16行的数据(亦即水平块HB_0的数据)为范例予以说明,以更清楚的了解本公开。在本实施方式中,如图2A与图2B所示,每一个第一像素单元pu1分别定义为0~(B×N)-1,其中,0~N-1定义为第一行L1;依此类推,(B-1)×N~(B×N)-1定义为第B行LB,并且在本实施方式中,B等于16。
在步骤S320中,图像100的第一行L1的第一像素单元pu1(亦即0~N-1)会依次地根据存储器EVM的累加地址的顺序写入存储器EVM以完成行转换。接着,图像100的第二行L2的第一像素单元pu1(亦即N~2N-1)会依次地根据存储器EVM的累加地址的顺序写入,同理,图像100的第B行LB的第一像素单元pu1(亦即(B-1)×N~(B×N)-1)会依次地根据存储器EVM的累加地址的顺序写入存储器EVM。此时,存储器EVM的整体存储空间等于水平块HB_0的存储空间。在通过本公开的行与块的整合转换方法,存储器EVM仅需要第一水平块HB_0的存储空间便能够使用(亦即B×W),因此与先前技术相比,本公开能够节省存储器一半的存储空间,借助于此提高存储器的利用率,亦即先前技术的存储器的存储空间需要32×W,然而本公开的存储器的存储空间仅需要16×W。接下来,会再次更加清楚地说明行与块的整合转换方法的相关细节。
在步骤S330中,每间隔一像素预定距离来循环地读取存储器EVM中的多个第一像素单元pu1的地址以完成块转换,值得注意的是,像素预定距离为图像100的宽度。进一步来说,存储器EVM中的多个第一像素单元pu1(亦即0、N、2N、3N~(B-1)×N)会依次地被读取出来,接下来,存储器EVM中的多个第一像素单元pu1(亦即1、N+1、2N+1、3N+1~(B-1)×N+1)会依次地被读取出来。依此类推,存储器EVM中的多个第一像素单元pu1(亦即N-1、2N-1、3N-1~B×N-1)会依次地被读取出来。值得一提的是,当多个第一像素单元pu1(亦即0、N、2N、3N~(B-1)×N)会依次地被读取出来以释放存储空间时,第二水平块HB_1的第一行的多个第二像素单元pu2会依次地写入多个第一像素单元 pu1(亦即0、N、2N、3N~(B-1)×N)原来的存储空间。依此类推,当多个第一像素单元pu1(亦即N-1、2N-1、3N-1~B×N-1)会被依次地被读取出来以释放存储空间时,第二水平块HB_1的第B行的多个第二像素单元pu2会依次地写入多个第一像素单元pu1(亦即0、N、2N、3N~(B-1)×N)原来的存储空间,以同时进行行转换与块转换(从对图像100的观察来看以更了解本公开的块转换的方式)。
在步骤S340中,通过双循环算法来获得多个第X像素单元puX的位置以循序地读取第X水平块HB_X的多个第X像素单元puX的地址。在本实施方式中,通过行与块的整合转换方法来先将图像100予以坐标化(其中,每一水平块的像素单元的坐标化是相同的)。举例来说,第一水平块HB_0的第一像素单元pu1的坐标定位(0~(B×N)-1)与第二水平块HB_1的第二像素单元pu2的坐标定位(0~(B×N)-1)相同,其它水平块(例如HB_2~HB_X-1)也是同理。在本实施方式中,图像100可以被视为由多个水平块HB_0~HB_M-1构成,每一个水平块(例如HB_0)是由第一至B行L1~LB所构成,并且每一行(例如L1)是由多个第一像素单元pu1所构成。在本公开中,由于图像100是根据水平块HB_0~HB_M-1的顺序来进行行转换,并且存储至存储器EVM,因此需要进一步详细算出图像100的每一个像素单元的坐标位置以读取其地址。
在步骤S350中,当存储在存储器EVM中的第二水平块HB_1的多个第二像素单元pu2被依次读取出来以释放出存储空间时,图像100中的第三水平块HB_2的多个第三像素单元pu3会被依次地写入多个第二像素单元pu2在存储器EVM原来的存储空间。依此类推,当存储在存储器EVM中的第M-1水平块HB_M-2的多个第M-1像素单元被依次读取出来以释放出存储空间时,图像100中的第M水平块HB_M-1的多个第M像素单元会被依次地写入多个第M-1像素单元在存储器EVM中原来的存储空间,据此以同时完成行转换与块转换的工作。值得一提的是,本公开的图 像100在进行行与块的整合转换工作时,读取地址速度优选地要大于或等于写入地址速度,以避免覆盖到存储器EVM的存储数据。
简单来说,在本公开中,图像100中的第一水平块HB_0的多个第一像素单元pu1为按照顺序写入至存储器EVM的存储空间内,图像100中的其它水平块HB_X(例如HB_1~HB_M-1其中之一)的多个第X像素单元puX写入存储器EVM的顺序与从存储器EVM中读取水平块HB_X-1的多个第X-1像素单元puX-1的顺序相同。
为了更详细地说明本发明所述的双循环算法的相关细节,以下将列举多个实施方式中的至少一个来作更进一步的说明。
在接下来的多个实施方式中,将描述不同于上述实施方式的部分,且省略其余与上述实施方式相同或类似的部分。此外,为方便说明,相似的参考数字或标号指示相似的组件。
(行与块的整合转换方法的另一实施方式)
请同时参照图1~图4,图4为根据本发明的另一示例性实施方式的所示出的行与块的整合转换方法的流程图。以下将进一步说明双循环算法以便更了解计算图像100的像素单元的坐标的方式,而在进入双循环算法之前,行与块的整合转换方法还包括以下步骤:初始化垂直循环参数(步骤S402)与初始化动态读址函数(步骤S404)。双循环算法包括以下步骤:通过垂直循环参数来判断是否超出垂直块的范围(步骤S406)。如果垂直循环参数尚未超出垂直块的范围,则初始化水平循环参数与固定读址函数(步骤S408与步骤S410)。通过水平循环参数来判断是否超出水平块的范围(步骤S412)。如果水平循环参数尚未超出水平块的范围,则通过固定读址函数与动态读址函数来获得像素单元地址,并且进入决策判断(步骤S414)。接下来,通过该决策判断,如果像素单元地址尚未超出水平块的范围,则将像素单元地址存储至下一个固定读址函数(步骤S418)。如 果像素单元地址超出水平块的范围,则将像素单元地址减去水平块的范围的最大值后存储至下一个固定读址函数(步骤S420)。将水平循环参数加一,并且回到判断水平循环参数是否超出水平块的范围的步骤(步骤S422)。如果水平循环参数超出水平块的范围,则执行下一个动态读址函数(步骤S424)。将垂直循环参数加一,并且回到判断垂直循环参数是否超出垂直块的范围的步骤(步骤S426)。接下来,将详细说明图4的实施方式的各步骤流程,并且有需要时请同时参照以下的核心程序代码,其中符号j表示垂直循环参数,符号i表示水平循环参数,而固定读址函数与下一个固定读址函数分别为reading address(i)与reading address(i+1),并且下一个动态读址函数为D(j+1)=div(D(j),B)+mod(D(j),B)×N,其中,div(D(j),B)为将动态读址函数与B进行整数运算,并且mod(D(j),B)为将动态读址函数与B进行余数运算。
[核心程序代码]
j=0;
D(0)=N;
While(j<H/B)begin
i=0;
reading address(0)=0;
While(i<B×N-1)begin
C=reading address(i)+D(j)
If(C<B×N)
reading address(i+1)=C;
Else
reading address(i+1)=C+1-B×N;
i=i+1;
end
D(j+1)=div(D(j),B)+mod(D(j),B)×N;
j=j+1;
end
在步骤S402中,在本实施方式中,图像100具有多个水平块HB_0~HB_M-1,并且图像100是根据水平块HB_0~HB_M-1的顺序写入至存储器EVM,则需要先将垂直循环参数初始化为零。进一步来说,图像100的水平块HB_0被定义为垂直循环参数为零;依此类推,图像100的水平块HB_M-1被定义为垂直循环参数为M-1,亦即垂直循环参数为0~M-1,其中M为图像的高度(H)除以B。
在步骤S404中,由于本实施方式的读址函数是由固定读址函数reading addres(i)与动态读址函数D(j)所构成,并且固定读址函数与水平循环参数(亦即i)相关,而动态读址函数与垂直循环参数(亦即j)相关,故在此步骤中,会先初始化动态读址函数为N,亦即D(0)=N。再者,固定读址函数与下一个固定读址函数的水平循环参数的差值为一,并且动态读址函数与下一个动态读址函数的垂直循环参数的差值为一,以根据每一水平块的顺序来获得像素单元的坐标位置。值得一提的是,下一个动态读址函数为根据动态读址函数与矩阵的大小(亦即B)来进行一整数运算, 并且下一个动态读址函数根据动态读址函数、矩阵的大小(亦即B)与垂直块之数目(亦即N)来进行一余数运算,亦即D(j+1)=div(D(j),B)+mod(D(j),B)×N,据此来计算图像100的各个像素单元的坐标位置以读取其地址来顺序地写入至存储器EVM以达成行转换的工作。
在步骤S406中,本公开的双循环算法会开始进入到第一循环运算,由于图像100的高度已被坐标化为多个水平块HB_0~HB_M-1(亦即垂直循环参数为0~M-1),所以行与块的整合转换方法会透过垂直循环参数来判断是否超出垂直块范围,并且垂直循环参数在此第一循环运算中会从0逐渐递增到M-1。据此,通过第一循环运算的决策判断以根据水平块HB_0~HB_M-1的顺序依次地将图像100中各像素单元地址写入至存储器EVM。此外,如果垂直循环参数尚未超出垂直块的范围,则进入到步骤S408;如果垂直循环参数超出垂直块的范围,则结束双循环算法。
在步骤S408中,在进入第一循环运算之初,则会先将水平循环参数初始化为零,亦即i=0。由于多个水平块的每一个HB_0~HB_M-1都具有相同数目的像素单元(亦即B×N个像素单元),并且都会被坐标化为0~(B×N)-1,如图2A与图2B所示。因此当垂直循环参数进行到每一个水平块之初时,水平循环参数都要被初始化为零。
在步骤S410中,如同步骤S408所述,同样地,固定读址函数也需要被初始化,亦即reading address(0)=0,以便在第二循环运算时能够重新读取水平块中每一行的像素单元的坐标(从0~(B×N)-1)。
在步骤S412中,本公开的双循环算法开始进入到第二循环运算,在此,行与块的整合转换方法已经通过垂直循环参数来锁定水平块HB_0~HB_M-1的其中之一(例如水平块HB_1),并且每一水平块(具有B×N个像素单元)会被坐标化为0~(B×N)-1,如图2A与图2B所示。因此,本公开会经由一决策机制来进行判断,亦即通过水平循环参数来判断 是否超出水平块的范围(0~B×N-1),水平循环参数在此第二循环运算中会从0逐渐递增到B×N-1以完整地扫描全部的像素单元。如果水平循环参数尚未超出水平块的范围,则进入到步骤S414;如果水平循环参数超出水平块的范围,则进入到步骤S424。
在步骤S414中,在此已经开始执行第二循环运算的本体部分,如果水平循环参数尚未超出水平块的范围(0~(B×N)-1),则本公开会通过固定读址函数与动态读址函数来获得像素单元地址,亦即通过整数运算与余数运算来获得每一像素单元的坐标以读取像素单元地址,请同时参见核心程序代码内的C=reading address(i)+D(j)以更了解本公开。之后,进入另一决策判断,亦即步骤S416。
在步骤S416中,进入一决策机制来判断,如果在步骤S414所获取的像素单元地址尚未超出水平块的范围,则进入到步骤S418;如果在步骤S414所获取的像素单元地址超出水平块的范围,则进入到步骤S420。
在步骤S418中,在决策机制的判断后进入到此步骤则表示像素单元地址尚未超出水平块的范围,则本公开会将像素单元地址存储至下一个固定读址函数,如核心程序代码内的reading address(i+1)=C,以进行后续的连续运算。
在步骤S420中,在决策机制的判断后进入到此步骤则表示像素单元地址超出水平块的范围,则将像素单元地址减去水平块的范围的最大值(0~(B×N)-1,亦即B×N个像素单元)后存储至下一个固定读址函数,如核心程序代码内的reading address(i+1)=C。之后,进入到步骤S422。
在步骤S422中,在第二循环运算的最后,水平循环参数会加一(亦即i=i+1)并且回到步骤S412以判断水平循环参数是否超出水平块的范围的步骤,以逐渐将水平块中每一矩阵(大小为B×B)进行转换。
在步骤S424中,如果水平循环参数超出水平块的范围(0~B×N-1),亦即水平循环参数等于或大于(B×N)-1,则会结束第二循环运算并且跳回至第一循环运算的本体以执行下一个动态读址函数之运算。进一步来说,下一个动态读址函数根据该动态读址函数与该矩阵的大小来进行一整数运算,并且该下一个动态读址函数根据该动态读址函数、该矩阵的大小与该垂直块的数目来进行一余数运算,亦即核心程序代码内的D(j+1)=div(D(j),B)+mod(D(j),B)×N。
在步骤S426中,在第一循环运算的最后,垂直循环参数会加一(亦即j=j+1)并且回到步骤S406以判断垂直循环参数是否超出垂直块的范围的步骤,借助于此逐渐地将图像100中的每一水平块进行转换。如果垂直循环参数超出垂直块的范围(0~M-1),则结束双循环算法。
本公开还提供了一种计算机可读取存储介质,用以存储一计算机程序,上述计算机程序包括多个程序代码,其用以加载至一电子装置并且使得该电子装置执行一种上述图1~图4所披露的行与块的整合转换方法,关于行与块的整合转换方法已在上述实施方式中详细说明,在此不再赘述。
(实施方式的可能功效)
综上所述,本发明的实施方式所提出的行与块的整合转换方法与计算机可读取存储介质,通过行转换方式将图像的第一像素单元与第X像素单元写入存储器,并且通过块转换方式来读取存储于存储器的第一像素单元与第X像素单元,据此以提升存储器的利用率,并且大幅降低数字电路的实施成本。
以上所述仅为本发明的实施方式,其并非用以限制本发明的专利范围。
[符号说明]
100:图像
EVM:存储器
H:高度
HB_0~HB_M-1:水平块
L1~LB:行
pu1、pu2、puX:像素单元
S310、S320、S330、S340、S350:步骤
S402、S404、S406、S408、S410、S412、S414、S416、S418、S420、S422、S424、S426:步骤
VB_0~VB_N-1:垂直块
W:宽度。
Claims (11)
1.一种行与块的整合转换方法,用于一图像,所述行与块的整合转换方法包括以下步骤:
将所述图像分为M个水平块与N个垂直块;
依次将所述M个水平块中的一第一水平块的多个第一像素单元的地址根据一存储器的累加地址的顺序写入所述存储器;
从所述存储器中每间隔一像素预定距离来循环地读取所述第一像素单元的地址,其中,所述像素预定距离为所述图像的宽度;
通过一双循环算法来获得多个第X像素单元的位置以循序地读取一第X水平块的所述多个第X像素单元的地址;以及
当每间隔所述像素预定距离来循环地读取所述存储器的所述多个第X像素单元的地址时,将所述M个水平块中的一第X+1水平块的多个第X+1像素单元的地址循环地每间隔所述像素预定距离随后地写入所述存储器;
其中,X为位于2与M之间的正整数,
其中,所述M个水平块与所述N个垂直块形成一M×N矩阵,每一个矩阵的大小为B×B,并且第一像素单元与第X像素单元包括B个像素,其中,B、M与N为正整数并且N为所述图像的宽度除以B,
其中,所述双循环算法包括以下步骤:
通过水平循环参数来判断是否超出所述水平块的范围;
如果所述水平循环参数尚未超出所述水平块的范围,则通过一固定读址函数与一动态读址函数来获得一像素单元地址,并且进入一决策判断;
通过所述决策判断,如果所述像素单元地址尚未超出所述水平块的范围,则将所述像素单元地址存储至下一个固定读址函数;
通过所述决策判断,如果所述像素单元地址超出所述水平块的范围,则将所述像素单元地址减去所述水平块的范围的最大值后存储至所述下一个固定读址函数;
将所述水平循环参数加一,并且回到判断所述水平循环参数是否超出所述水平块的范围的步骤;
如果所述水平循环参数超出所述水平块的范围,则执行下一个动态读址函数;以及
将垂直循环参数加一,并且回到判断所述垂直循环参数是否超出所述垂直块的范围的步骤。
2.根据权利要求1所述的行与块的整合转换方法,其中,所述多个第一像素单元为沿着所述M个水平块的所述第一水平块的水平方向循序地被定义,并且所述多个第X像素单元为沿着所述M个水平块的所述第X水平块的水平方向循序地被定义,其中,将所述图像的所述第一像素单元依次地根据所述存储器的累加地址的顺序写入所述存储器并将所述第X像素单元依次地根据所述存储器的累加地址的顺序写入所述存储器以完成行转换,并且每间隔一像素预定距离来循环地读取存储在所述存储器中的所述第一像素单元与所述第X像素单元以完成块转换。
3.根据权利要求1所述的行与块的整合转换方法,在通过所述水平循环参数来判断是否超出所述水平块的范围的步骤之前,还包括以下步骤:
通过一垂直循环参数来判断是否超出所述垂直块的范围;
如果所述垂直循环参数尚未超出所述垂直块的范围,则初始化所述水平循环参数与所述固定读址函数;以及
如果所述垂直循环参数超出所述垂直块的范围,则结束所述双循环算法。
4.根据权利要求3所述的行与块的整合转换方法,其中在进入所述双循环算法之前,包括以下步骤:
初始化所述垂直循环参数;以及
初始化所述动态读址函数。
5.根据权利要求4所述的行与块的整合转换方法,其中,所述固定读址函数与所述下一个固定读址函数的所述水平循环参数的差值为一,并且所述动态读址函数与所述下一个动态读址函数的所述垂直循环参数的差值为一。
6.根据权利要求1所述的行与块的整合转换方法,其中,所述下一个动态读址函数根据所述动态读址函数与所述矩阵的大小来进行一整数运算,并且所述下一个动态读址函数根据所述动态读址函数、所述矩阵的大小与所述垂直块的数目来进行一余数运算。
7.根据权利要求1所述的行与块的整合转换方法,其中,从所述存储器中每间隔一所述像素预定距离来循环地读取所述多个第一像素单元的地址的顺序与将所述M个水平块中的一第二水平块的多个第二像素单元的地址写入所述存储器的顺序相同。
8.根据权利要求1所述的行与块的整合转换方法,其中,所述存储器的字节数目等于B与所述图像的宽度的乘积,并且读取地址速度大于或等于写入地址速度。
9.根据权利要求1所述的行与块的整合转换方法,其中,从所述存储器读取所述多个第X像素单元的地址的顺序与将所述多个第X+1像素单元的地址写入所述存储器的顺序相同。
10.一种计算机可读取存储介质,用以存储一计算机程序,上述计算机程序包括多个程序代码,所述程序代码用以加载至一电子装置并且使得所述电子装置执行用于一图像的一种行与块的整合转换方法,所述行与块的整合转换方法包括以下步骤:
将所述图像分为M个水平块与N个垂直块;
依次地将所述M个水平块中的一第一水平块的多个第一像素单元的地址根据一存储器的累加地址的顺序写入所述存储器;
从所述存储器中每间隔一像素预定距离来循环地读取所述多个第一像素单元的地址,其中,所述像素预定距离为所述图像的宽度;
通过一双循环算法来获得多个第X像素单元的位置以循序地读取一第X水平块的多个第X像素单元的地址;以及
当每间隔所述像素预定距离来循环地读取所述存储器的所述多个第X像素单元的地址时,将所述M个水平块中的一第X+1水平块的多个第X+1像素单元的地址循环地每间隔所述像素预定距离随后地写入所述存储器;
其中,X为位于2与M之间的正整数,
其中,所述M个水平块与所述N个垂直块形成一M×N矩阵,每一个矩阵的大小为B×B,并且第一像素单元与第X像素单元包括B个像素,其中,B、M与N为正整数并且N为所述图像的宽度除以B,
其中,所述双循环算法包括以下步骤:
通过水平循环参数来判断是否超出所述水平块的范围;
如果所述水平循环参数尚未超出所述水平块的范围,则通过一固定读址函数与一动态读址函数来获得一像素单元地址,并且进入一决策判断;
通过所述决策判断,如果所述像素单元地址尚未超出所述水平块的范围,则将所述像素单元地址存储至下一个固定读址函数;
通过所述决策判断,如果所述像素单元地址超出所述水平块的范围,则将所述像素单元地址减去所述水平块的范围的最大值后存储至所述下一个固定读址函数;
将所述水平循环参数加一,并且回到判断所述水平循环参数是否超出所述水平块的范围的步骤;
如果所述水平循环参数超出所述水平块的范围,则执行下一个动态读址函数;以及
将垂直循环参数加一,并且回到判断所述垂直循环参数是否超出所述垂直块的范围的步骤。
11.根据权利要求10所述的计算机可读取存储介质,其中,所述存储器的字节数目等于B与所述图像的宽度的乘积,并且读取地址速度大于或等于写入地址速度。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310542919.9A CN104618717B (zh) | 2013-11-05 | 2013-11-05 | 行与块的整合转换方法及其计算机可读取存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310542919.9A CN104618717B (zh) | 2013-11-05 | 2013-11-05 | 行与块的整合转换方法及其计算机可读取存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104618717A CN104618717A (zh) | 2015-05-13 |
CN104618717B true CN104618717B (zh) | 2018-01-16 |
Family
ID=53152972
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310542919.9A Active CN104618717B (zh) | 2013-11-05 | 2013-11-05 | 行与块的整合转换方法及其计算机可读取存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104618717B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2543736B (en) * | 2015-09-10 | 2019-03-27 | Advanced Risc Mach Ltd | An interface apparatus and method of operating an interface apparatus |
CN108196793B (zh) * | 2017-12-29 | 2020-08-04 | 武汉华星光电半导体显示技术有限公司 | DeMura表的数据压缩方法及解压缩方法 |
CN110782389B (zh) * | 2019-09-23 | 2023-09-15 | 五八有限公司 | 一种图像数据字节对齐方法和终端 |
CN112995745B (zh) * | 2019-12-17 | 2023-01-03 | 瑞昱半导体股份有限公司 | 图像储存方法与电路系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101996609A (zh) * | 2009-08-13 | 2011-03-30 | 上海奇码数字信息有限公司 | 图形处理中的像素格式转换方法和装置 |
CN102017638A (zh) * | 2008-04-30 | 2011-04-13 | 松下电器产业株式会社 | 视频编码/解码装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
AU775392B2 (en) * | 2000-05-24 | 2004-07-29 | Silverbrook Research Pty Ltd | Printed page tag encoder |
JP5372687B2 (ja) * | 2009-09-30 | 2013-12-18 | ソニー株式会社 | 送信装置、送信方法、受信装置および受信方法 |
-
2013
- 2013-11-05 CN CN201310542919.9A patent/CN104618717B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102017638A (zh) * | 2008-04-30 | 2011-04-13 | 松下电器产业株式会社 | 视频编码/解码装置 |
CN101996609A (zh) * | 2009-08-13 | 2011-03-30 | 上海奇码数字信息有限公司 | 图形处理中的像素格式转换方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN104618717A (zh) | 2015-05-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102460503B (zh) | 显示源图像的变形版本的设备和方法 | |
US8378859B2 (en) | Memory compression technique with low latency per pixel | |
CN105580345B (zh) | 成像器件和电子装置 | |
CN104618717B (zh) | 行与块的整合转换方法及其计算机可读取存储介质 | |
US7860166B2 (en) | Method and apparatus for motion estimation in video signal decoding | |
US8989509B2 (en) | Streaming wavelet transform | |
US8890881B2 (en) | Mapping method and video system for mapping pixel data included in the same pixel group to the same bank of memory | |
JP2011258207A (ja) | 多次元データをデータ競合なしで同時検索するための処理システム、データ構造およびデータ処理方法 | |
CN102572432B (zh) | 用于视频帧旋转的方法和装置 | |
CN109922284A (zh) | 图像感测系统及其操作方法 | |
JP4224876B2 (ja) | 記憶装置、並びに書き込み方法および読み出し方法 | |
US20100103282A1 (en) | Image processing apparatus and image processing system | |
US8269786B2 (en) | Method for reading and writing image data in memory | |
US20080044107A1 (en) | Storage device for storing image data and method of storing image data | |
US8762686B2 (en) | Multimode accessible storage facility | |
JP3626687B2 (ja) | 画像処理装置 | |
US7525577B2 (en) | Image processing apparatus and image processing method | |
CN1140134C (zh) | 用于向分级运动估计器提供最佳数据的装置及其方法 | |
US8644380B2 (en) | Integer pixel motion estimation system, motion estimation system for quarter-pixel luminance, motion estimation system for quarter-pixel chrominance, motion estimation system for combined luminance, motion estimation system for combined luminance and chrominance, and motion estimation system for quarter-pixel luminance and chrominance | |
JP5865696B2 (ja) | 画像処理装置 | |
US20080049035A1 (en) | Apparatus and method for accessing image data | |
CN103093485B (zh) | 全景视频柱面图像存储方法及系统 | |
CN113949878A (zh) | 使用饱和像素的图像压缩方法、编码器和电子装置 | |
US7684650B2 (en) | Method for processing image frame output from an image sensor by an image processor | |
CN110087088B (zh) | 一种基于运动估计的数据存储方法、终端设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |