CN116974475A - 数据缓存方法、装置及电子设备 - Google Patents
数据缓存方法、装置及电子设备 Download PDFInfo
- Publication number
- CN116974475A CN116974475A CN202310944095.1A CN202310944095A CN116974475A CN 116974475 A CN116974475 A CN 116974475A CN 202310944095 A CN202310944095 A CN 202310944095A CN 116974475 A CN116974475 A CN 116974475A
- Authority
- CN
- China
- Prior art keywords
- parameter values
- parameter
- register set
- register
- row
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 60
- 238000012545 processing Methods 0.000 claims abstract description 130
- 238000004364 calculation method Methods 0.000 claims abstract description 58
- 230000003139 buffering effect Effects 0.000 claims description 18
- 239000000872 buffer Substances 0.000 description 17
- 238000010586 diagram Methods 0.000 description 11
- 230000006870 function Effects 0.000 description 8
- 238000004891 communication Methods 0.000 description 5
- 230000000694 effects Effects 0.000 description 4
- 230000003190 augmentative effect Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000009825 accumulation Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000007599 discharging Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0608—Saving storage space on storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0625—Power saving in storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/60—Memory management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- General Engineering & Computer Science (AREA)
- Image Processing (AREA)
Abstract
本申请公开了一种数据缓存方法、装置及电子设备,属于图像处理技术领域。本发明方法包括根据指示信号,确定图像处理所在阶段,所述图像处理所在阶段包括:初始化阶段和像素处理阶段;根据所述图像处理所在阶段,读取随机存储器RAM内的参数值,并将读取的参数值缓存至目标寄存器组内;其中,所述RAM内存储有参数表,所述参数表中的参数值用于双线性插值计算;所述目标寄存器组为六个寄存器组中的至少一者,所述六个寄存器组用于缓存所述参数表中用于双线性插值计算的两行参数值。
Description
技术领域
本申请属于图像处理技术领域,具体涉及一种数据缓存方法、装置及电子设备。
背景技术
集成电路领域中,视频流的像素级处理通常是将所有像素的处理依据(参数值)存储在参数表中。当某一位置的像素到来时,从参数表中取出与其对应的参数值,并以此为依据对像素进行处理。考虑到全图像尺寸的参数表会占用极大地存储资源,以及参数表中相邻参数的相似性,现有的策略是对全图像尺寸的参数进行隔点采样(下采样)后再存储,在处理时,根据存储的参数表和适当的插值方法近似恢复出全图像尺寸的参数表(上采样)。
双线性插值法是最为常见的插值方法,其需要横跨参数表两行两列的四个参数值作为计算的源数据(参数值),而出于功耗考虑,参数表需要采用单端口RAM进行存储(一次只能输出一个数据),因此源数据的缓存方案极大地影响着视频流的处理效率。
现有常见的源数据缓存方案有两种,一种是寄存器缓存方案,直接从RAM中以行为单位读取参数值,并缓存在寄存器中。但是该方案的缺点是以行为单位的缓存参数值需要成千上万比特的寄存器资源,其所占用的面积太大。一种是分块存储方案,该方案依据参数值在参数表中横纵坐标的奇偶性将参数值分为四块,并分别存储在四个RAM中。但是该方案将参数表的存储RAM从一个变成了四个,原本能够共用的资源也由此一分为四,从而导致面积增大,同时功耗也会相应增加。
发明内容
本申请实施例的目的是提供一种数据缓存方法、装置及电子设备,能够解决现有数据缓存方案存在的存储硬件占用面积大、功耗高的问题。
第一方面,本申请实施例提供了一种数据缓存方法,该方法包括:
根据指示信号,确定图像处理所在阶段,所述图像处理所在阶段包括:初始化阶段和像素处理阶段;
根据所述图像处理所在阶段,读取随机存储器RAM内的参数值,并将读取的参数值缓存至目标寄存器组内;
其中,所述RAM内存储有参数表,所述参数表中的参数值用于双线性插值计算;
所述目标寄存器组为六个寄存器组中的至少一者;
所述六个寄存器组包括:第一寄存器组、第二寄存器组、第三寄存器组、第四寄存器组、第五寄存器组和第六寄存器组;
其中,所述第一寄存器组用于缓存所述参数表中用于双线性插值计算的两行两列四个参数值中处于第一行第一列位置的参数值,所述第二寄存器组用于缓存所述四个参数值中处于第一行第二列位置的参数值,所述第三寄存器组用于缓存所述参数表中用于双线性插值计算的两行参数值中处于第一行的参数值;所述第四寄存器组用于缓存所述四个参数值中处于第二行第一列位置的参数值,所述第五寄存器组用于缓存所述四个参数值中处于第二行第二列位置的参数值,所述第六寄存器组用于缓存所述参数表中用于双线性插值计算的两行参数值中处于第二行的参数值。
第二方面,本申请实施例提供了一种数据缓存装置,包括:
第一处理模块,用于根据指示信号,确定图像处理所在阶段,所述图像处理所在阶段包括:初始化阶段和像素处理阶段;
第二处理模块,用于根据所述图像处理所在阶段,读取随机存储器RAM内的参数值,并将读取的参数值缓存至目标寄存器组内;
其中,所述RAM内存储有参数表,所述参数表中的参数值用于双线性插值计算;
所述目标寄存器组为六个寄存器组中的至少一者;
所述六个寄存器组包括:第一寄存器组、第二寄存器组、第三寄存器组、第四寄存器组、第五寄存器组和第六寄存器组;
其中,所述第一寄存器组用于缓存所述参数表中用于双线性插值计算的两行两列四个参数值中处于第一行第一列位置的参数值,所述第二寄存器组用于缓存所述四个参数值中处于第一行第二列位置的参数值,所述第三寄存器组用于缓存所述参数表中用于双线性插值计算的两行参数值中处于第一行的参数值;所述第四寄存器组用于缓存所述四个参数值中处于第二行第一列位置的参数值,所述第五寄存器组用于缓存所述四个参数值中处于第二行第二列位置的参数值,所述第六寄存器组用于缓存所述参数表中用于双线性插值计算的两行参数值中处于第二行的参数值。
第三方面,本申请实施例提供了一种电子设备,该电子设备包括处理器和存储器,所述存储器存储可在所述处理器上运行的程序或指令,所述程序或指令被所述处理器执行时实现如第一方面所述的数据缓存方法的步骤。
第四方面,本申请实施例提供了一种可读存储介质,所述可读存储介质上存储程序或指令,所述程序或指令被处理器执行时实现如第一方面所述的数据缓存方法的步骤。
第五方面,本申请实施例提供了一种芯片,所述芯片包括处理器和通信接口,所述通信接口和所述处理器耦合,所述处理器用于运行程序或指令,实现如第一方面所述的数据缓存方法。
第六方面,本申请实施例提供一种计算机程序产品,该程序产品被存储在存储介质中,该程序产品被至少一个处理器执行以实现如第一方面所述的数据缓存方法。
在本申请实施例中,根据指示信号,确定图像处理所在阶段,所述图像处理所在阶段包括:初始化阶段和像素处理阶段;根据所述图像处理所在阶段,读取随机存储器RAM内的参数值,并将读取的参数值缓存至目标寄存器组内;其中,所述RAM内存储有参数表,所述参数表中的参数值用于双线性插值计算;所述目标寄存器组为六个寄存器组中的至少一者,所述六个寄存器组包括:第一寄存器组、第二寄存器组、第三寄存器组、第四寄存器组、第五寄存器组和第六寄存器组;其中,所述第一寄存器组用于缓存所述参数表中用于双线性插值计算的两行两列四个参数值中处于第一行第一列位置的参数值,所述第二寄存器组用于缓存所述四个参数值中处于第一行第二列位置的参数值,所述第三寄存器组用于缓存所述参数表中用于双线性插值计算的两行参数值中处于第一行的参数值;所述第四寄存器组用于缓存所述四个参数值中处于第二行第一列位置的参数值,所述第五寄存器组用于缓存所述四个参数值中处于第二行第二列位置的参数值,所述第六寄存器组用于缓存所述参数表中用于双线性插值计算的两行参数值中处于第二行的参数值,这样,基于图像处理中视频流时序和双线性插值计算的特征,通过一整块单端口RAM存储参数表,六组寄存器缓存参数资源,能够显著减小面积和功耗。
附图说明
图1是本申请实施例提供的数据缓存方法的流程示意图之一;
图2是本申请实施例的图像处理所在阶段为初始化阶段的数据缓存执行步骤示意图;
图3是本申请实施例的图像像素与参数表的位置关系示意图;
图4是本申请实施例图像处理所在阶段为像素处理阶段的数据缓存执行步骤示意图之一;
图5是本申请实施例图像处理所在阶段为像素处理阶段的数据缓存执行步骤示意图之二;
图6是本申请实施例图像处理所在阶段为像素处理阶段的数据缓存执行步骤示意图之三;
图7是本申请实施例的参数表中参数值在RAM中的存储规律的示意图;
图8是本申请实施例的RAM读取地址的变化规律对应的逻辑电路示意图;
图9是本申请实施例提供的数据缓存方法对应的实施结果示意图;
图10是本申请实施例的数据缓存方法的整体实现流程示意图;
图11是本申请实施例提供的数据缓存装置的模块示意图;
图12是本申请实施例提供的电子设备的结构示意图;
图13是本申请实施例提供的电子设备的硬件结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员获得的所有其他实施例,都属于本申请保护的范围。
本申请的说明书和权利要求书中的术语“第一”、“第二”等是用于区别类似的对象,而不用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施,且“第一”、“第二”等所区分的对象通常为一类,并不限定对象的个数,例如第一对象可以是一个,也可以是多个。此外,说明书以及权利要求中“和/或”表示所连接对象的至少其中之一,字符“/”,一般表示前后关联对象是一种“或”的关系。
下面结合附图,通过具体的实施例及其应用场景对本申请实施例提供的数据缓存方法进行详细地说明。
如图1所示,为本申请实施例提供的数据缓存方法的流程示意图,该方法具体可以包括:
步骤101,根据指示信号,确定图像处理所在阶段,所述图像处理所在阶段包括:初始化阶段和像素处理阶段;
本实施例中的图像处理是像素级的图像处理。其中,初始化阶段指的是一帧图像开始,像素处理之前的阶段。初始化阶段和像素处理阶段均涉及到数据缓存。
图像由很多个像素组成,图像中的每个像素具有对应的像素值。这里的像素处理阶段指的是,将图像中的每个像素值与对应的处理参数值进行结合(比如乘积运算),得到最终的处理结果。
步骤102,根据所述图像处理所在阶段,读取随机存储器RAM内的参数值,并将读取的参数值缓存至目标寄存器组内;
其中,所述RAM内存储有参数表,所述参数表中的参数值用于双线性插值计算;所述目标寄存器组为六个寄存器组中的至少一者。
需要说明的是,图像处理所在阶段不同,对应的参数读取-参数缓存的方式不同,具体详见下述实施例部分。这些方式主要基于图像处理中视频流时序和双线性插值计算的特征设计,其目的是为了满足双线性插值的源数据缓存需求。通过一整块单端口RAM存储参数表,六组寄存器缓存参数资源,能够显著减小面积和功耗。
可选地,参见图2,所述六个寄存器组包括:第一寄存器组LU、第二寄存器组RU、第三寄存器组BU、第四寄存器组LD、第五寄存器组RD和第六寄存器组BD;
其中,所述第一寄存器组LU用于缓存所述参数表中用于双线性插值计算的两行两列四个参数值中处于第一行第一列位置(图中左上位置)的参数值,所述第二寄存器组RU用于缓存所述四个参数值中处于第一行第二列位置(图中右上位置)的参数值,所述第三寄存器组BU用于缓存所述参数表中用于双线性插值计算的两行参数值中处于第一行的参数值;所述第四寄存器组LD用于缓存所述四个参数值中处于第二行第一列位置(图中左下位置)的参数值,所述第五寄存器组RD用于缓存所述四个参数值中处于第二行第二列位置(图中右下位置)的参数值,所述第六寄存器组BD用于缓存所述参数表中用于双线性插值计算的两行参数值中处于第二行的参数值。
这里,第一寄存器组LU、第二寄存器组RU、第四寄存器组LD和第五寄存器组RD分别缓存参数表中用于双线性插值计算的两行两列四个参数值,这四个参数值对应的坐标位置形成一个矩形框,位于矩形框内的像素点对应的参数值(像素处理时使用)可以依据该四个参数值获得。第三寄存器组BU和第六寄存器组BD缓存的参数值用于在一些情况(比如即将进行像素处理的像素点不在当前四个参数值对应的坐标位置形成的矩形框内)下更新上述四个寄存器组内的缓存的参数值。
在本申请一可选地实施例中,上述步骤101,根据指示信号,确定图像处理所在阶段,可具体包括:
在帧同步信号为1的情况下,确定图像处理所在阶段为初始化阶段,所述初始化阶段为像素处理之前的阶段;
也就是,帧同步信号fsync_in为1,表明一帧图像的开始,此时进入初始化模式,即像素处理之前的初始化阶段。初始化阶段为图像的第一行的前几个像素的到来做准备,预先缓存参数值。具体缓存数据的实现过程参见下述实施例部分。
在初始化阶段完成后,确定图像处理所在阶段进入像素处理阶段。
这里,通过不同的信号指示可以快速确定图像处理具体所在的阶段。
在一可选地实施例中,上述步骤102,根据所述图像处理所在阶段,读取随机存储器RAM内的参数值,并将读取的参数值缓存至目标寄存器组内,可以具体包括:
在所述图像处理所在阶段为初始化阶段的情况下,先后三次读取所述RAM内的参数值,并将读取的参数值分别缓存至所述第一寄存器组、所述第二寄存器组和所述第三寄存器组。
参见图2所示,先后三次从RAM中读取参数值,并分别缓存至第一寄存器组LU、第二寄存器组RU和第三寄存器组BU。
其中,第0次读取发生在帧同步信号fsync_in的下一个时钟周期,第1次读取发生在图像第一行的第一个像素到来之时,第2次读取发生在图像第一行的第二个像素到来之时。
之所以在初始化阶段仅在第一寄存器组LU、第二寄存器组RU和第三寄存器组BU内缓存参数值,是由视频流时序和双线性插值计算的特征决定的,具体的,初始化阶段为图像的第一行的前几个像素的到来做准备,由于图像像素的第一行与参数表的第一行在横向方向上重合,第一行的像素所对应的参数值仅需用参数表中的第一行的参数值利用双线性插值计算得到,所以初始化极端仅在第一寄存器组LU、第二寄存器组RU和第三寄存器组BU内缓存参数值即可。
在一可选地实施例中,上述步骤102,根据所述图像处理所在阶段,读取随机存储器RAM内的参数值,并将读取的参数值缓存至目标寄存器组内,可以具体包括:
a)在所述图像处理所在阶段为像素处理阶段,且图像中待处理像素的所在位置在所述参数表中的等效横向位置超过第一列参数值所在位置的情况下,更新相关寄存器组缓存的参数值,其中,所述第一列参数值与第二列参数值相邻,且位于所述第二列参数值的右侧,所述第一列参数值和所述第二列参数值为当前用于双线性插值计算的两列参数值;
b)在参数值更新后,N次读取RAM内的参数值,并将每次读取的参数值缓存至目标寄存器组内,N为大于或者等于1的正整数。
步骤a)更新相关寄存器组缓存的参数值,可具体包括:
a-1)若所述待处理像素位于图像第一行,则将所述第二寄存器组内缓存的参数值传输至所述第一寄存器组内;并将所述第三寄存器组内缓存的参数值传输至所述第二寄存器组内;
相应的,步骤b)在参数值更新后,N次读取RAM内的参数值,并将每次读取的参数值缓存至目标寄存器组内,可具体包括:
在所述待处理像素位于图像第一行,且所述待处理像素未处于行尾的情况下,在参数值更新后,读取一次所述RAM内的参数值,并将读取的参数值缓存至所述第三寄存器组。
这种情况可参见图3,图像像素与参数表的位置关系示意图,比如待处理像素是图像第一行编号为03(0表示行号,3表示列号)的像素,第一列参数值(即当前用于双线性插值计算的两列参数值中靠右一列的参数值)所在位置指的是,02与03之间的这一列参数值所在位置,待处理像素03超过该列所在位置,此时不能再用这一行(参数表第一行)前两个参数值进行双线性插值计算了,即第一寄存器组LU和所述第二寄存器组RU缓存的参数值需要更新,参见图4左侧示意,具体的更新过程如下:
将所述第二寄存器组RU内缓存的参数值传输至所述第一寄存器组LU内;将所述第三寄存器组BU内缓存的参数值传输至所述第二寄存器组RU内。
也就是说,需要利用第二寄存器组RU内缓存的参数值作为双线性插值计算位于左上位置的参数值,缓存至第一寄存器组LU,替换掉原来缓存的参数值;第三寄存器组BU内缓存的参数值作为双线性插值计算位于右上位置的参数值,缓存至第二寄存器组RU,替换掉原来缓存的参数值。
参数值更新之后,紧接着读取一次所述RAM内的参数值,并将读取的参数值缓存至所述第三寄存器组BU,参见图5左侧示意,这样可以最大化节省时间。
步骤a)更新相关寄存器组缓存的参数值,可具体包括:
a-2)若所述待处理像素位于图像除所述第一行外的其他行,则将所述第二寄存器组内缓存的参数值传输至所述第一寄存器组内,并将所述第五寄存器组内缓存的参数值传输至所述第四寄存器组内;将所述第三寄存器组内缓存的参数值传输至所述第二寄存器组内,并将所述第六寄存器组内缓存的参数值传输至所述第五寄存器组内。
相应的,步骤b)在参数值更新后,N次读取RAM内的参数值,并将每次读取的参数值缓存至目标寄存器组内,可具体包括:
在所述待处理像素位于图像除所述第一行外的其他行,且所述待处理像素未处于行尾的情况下,在参数值更新后,先后两次读取所述RAM内的参数值,将读取的参数值分别缓存至所述第三寄存器组和所述第六寄存器组。
继续参见图3进行解释说明,比如待处理像素是图像第二行编号为13的像素,第一列参数值(即当前用于双线性插值计算的两列参数值中靠右一列的参数值)所在位置指的是,12与13之间的这一列参数值所在位置,待处理像素013超过该列所在位置,此时不能再用这两行两列的前四个参数值(参数表第一行、第二行、第一列和第二列交叉点的四个参数值)进行双线性插值计算了,即第一寄存器组LU、所述第二寄存器组RU、第四寄存器组LD和第五寄存器组RD缓存的参数值需要更新,参见图4右侧示意,具体的更新过程如下:
将所述第二寄存器组内缓存的参数值传输至所述第一寄存器组内,并将所述第五寄存器组内缓存的参数值传输至所述第四寄存器组内;
将所述第三寄存器组内缓存的参数值传输至所述第二寄存器组内,并将所述第六寄存器组内缓存的参数值传输至所述第五寄存器组内。
也就是说,需要利用第二寄存器组RU内缓存的参数值作为双线性插值计算位于左上位置的参数值,缓存至第一寄存器组LU,替换掉原来缓存的参数值;第五寄存器组RD内缓存的参数值作为双线性插值计算位于左下位置的参数值,缓存至第四寄存器组LD,替换掉原来缓存的参数值。
并利用第三寄存器组BU内缓存的参数值作为双线性插值计算位于右上位置的参数值缓存至第二寄存器组RU,替换掉原来缓存的参数值;第六寄存器组BD内缓存的参数值作为双线性插值计算位于右下位置的参数值,缓存至第五寄存器组RD,替换掉原来缓存的参数值。
参数值更新之后,紧接着先后两次读取所述RAM内的参数值,将读取的参数值分别缓存至所述第三寄存器组BU和所述第六寄存器组BD,参见图5右侧示意,这样可以最大化节省时间。
在一可选地实施例中,上述步骤102,根据所述图像处理所在阶段,读取随机存储器RAM内的参数值,并将读取的参数值缓存至目标寄存器组内,可以具体包括:
①在处理位于图像行行尾的像素点时,先后两次读取所述RAM内的参数值,将读取的参数值分别缓存至所述第三寄存器组和所述第六寄存器组,并在处理完位于图像行行尾的所述像素点时,将所述第三寄存器组缓存的参数值传输至所述第一寄存器组,将所述第六寄存器组缓存的参数值传输至所述第四寄存器组;
②先后读取所述RAM内的参数值,将读取的参数值分别缓存至所述第三寄存器组和所述第六寄存器组,并在待处理像素位于所述图像行的下一行的行头位置时,将所述第三寄存器组缓存的参数值传输至所述第二寄存器组,将所述第六寄存器组缓存的参数值传输至所述第五寄存器组。
这里,在处理位于图像行行尾的像素点,说明图像处理即将进入下一行,参见图3,比如正在处理位于图像行行尾的像素点是图像第二行编号为15的像素,说明图像像素处理即将进入第三行;若换行之后,当前用于双线性插值计算的两列参数值(参数表第一行、第二行,第二列和第三列交叉点的四个参数值)则不能再用,第一寄存器组LU、所述第二寄存器组RU、第四寄存器组LD和第五寄存器组RD缓存的参数值需要更新,参见图6示意,具体的更新过程如下:
在第一阶段,先后读取两次RAM内的参数值,并分别缓存至第三寄存器组BU和第六寄存器组BD中,最后在图像行的行尾标志信号leof_in为1时,将第三寄存器组BU缓存的参数值传输至第一寄存器组LU,将第六寄存器组BD缓存的参数值传输至第四寄存器组LD,参见图6左侧示意;这样不会影响当前双线性插值计算,同时为换行后像素处理做准备,预先缓存了对应的参数值。
在第二阶段,先后读取两次RAM,并分别缓存至第三寄存器组BU和第六寄存器组BD中,最后在图像行的下一行的行头标志信号lsof_in为1时,说明已经换行了,此时用于双线性插值计算的参数值还需要两个,也就是将第三寄存器组BU缓存的参数值传输至第二寄存器组RU,将第六寄存器组BD缓存的参数值传输至第五寄存器组RD,参见图6右侧示意。
需要说明的是,若待处理的像素不跨越参数列(即待处理像素在参数表中的等效横向位置不超过第一列参数值(即当前用于双线性插值计算的两列参数值中靠右一列的参数值)所在位置),且当帧尾信号feof_in为1时,结束这一帧的处理。
具体的,参数表中各位置参数值与其在RAM中地址的对应关系如图7所示。即,所述参数表中的参数值按照从左到右,由上到下的顺序存储至所述RAM内,RAM的存储地址依次递增。
在上述参数表存储机制下,RAM的读取地址(ram_addr)变化规律可描述为图8,其中odd_flag为1表明当前行已读取奇数次RAM,first_line为1表明当前行是首行,across_v为1代表像素即将跨越参数表行,line_update为1表明像素即将跨图像行,ram_read为1表明进行一次读RAM操作。
由图8可知:在首行时,每读取一次RAM,ram_addr增1,直至读取完首行的所有参数值;在其余行,ram_addr的变化规律是j+0,j+N+1,j+1,j+N+2,j+2,…,j+N,j+2N+1,j+N+1,可以达到交错读取参数表上下两行的参数值;其中,j最开始的取值为0;在像素即将跨行之时,如果不存在跨越参数表行的可能(比如图3中编号为0的第一行像素处理到行尾之后,需要跨行,即进行编号为1的第二行像素的处理,但是第二行像素所在行并未跨越参数表的第二行),那么ram_addr将恢复为j,交错读取与之前同样的两行参数值;否则保留已有数值j+N+1,行数下移,交错读取新的两行参数值,也就是将j+N+1作为新的j,此时ram_addr的变化规律是(j+N+1)+0,(j+N+1)+N+1,(j+N+1)+1,……。
参见图3可知,图像像素的列数最小是所述参数表的列数的两倍。也可以理解为:图像像素的水平尺寸最小是参数表水平尺寸的两倍。当倍数大于2时,用于缓存数据的时间将更加充裕,本申请数据缓存方案实施会更轻松,因此本申请的数据缓存方法更具有普遍适用性。
本申请的数据缓存方案作用于图3的实施结果可参见图9,data_in_d为输入像素值data_in延时一个时钟的结果,与四个缓存数据对齐。可以看出在T23时刻,data_in_d第一个像素值到来,此时四组寄存器中只有LU缓存了第一个参数值00,这是因为图3中第一个像素和第一个参数值重合,因此双线性插值所需的源数据中仅LU会被用到;对于第0行的其余像素(T24~T28),也只有LU和RU缓存了正确的参数值,这是因为图3中第0行参数与第0行像素的行位置相重合,因此双线性插值中只有U行数据源会被使用到;在其它行,四组寄存器均缓存了正确的参数,如T40时刻,data_in_d的值为23,对应像素在图3中的位置为第2行第三列,双线性插值所需的数据源正好为LU、LD、RU、RD中存储的11、21、12、22四个参数,分别代表图3参数表中的第1行第1列、第2行第1列、第1行第2列、第2行第2列四个参数。上述因需缓存数据的方式可以降低一定功耗。
可选地,图像像素当前行的行尾与下一行的行头之间最小间隔一个时钟周期;一帧图像的开始与该帧图像中的第一个数据之间最小间隔一个时钟周期。
另外从图9中可以看出,除行消隐间隔(具体指的是图像像素当前行的行尾与下一行的行头之间间隔一个时钟周期)外,ram_read一直为1,能够更充分的利用时间从RAM中读取数据。T23~T25执行初始化模式(也就是初始化阶段),LU、RU、BU先后接收来自RAM的数据read_data;T28~T30执行行更新模式(对应待处理像素靠近所在图像行的行尾的情况),LU、LD在T28时刻分别缓存来自BU和BD的数据,RU、RD在T30分别缓存来自BU和BD的数据;T31~T32执行缓存模式,BU和BD先后缓存来自RAM的数据read_data,T33执行列更新模式(对应于待处理像素在参数表中的等效横向位置超过第一列参数值(即当前用于双线性插值计算的两列参数值中靠右一列的参数值)所在位置的情况),LU和LD分别缓存RU和RD中的数据,同时RU和RD分别缓存BU和BD中的数据。上述过程在一帧图像中反复出现,完成整帧图像中双线性插值所需数据源(参数值)的缓存工作。因此,本发明仅需6组寄存器即可完成数据源的缓存工作,面积更小。
下面通过一示例(参见图10)说明本申请的数据缓存方法的整体实现流程。在此之前需要说明的是,可以将RAM读取-寄存器缓存分为四个模式,分别是初始化模式(对应上述所述的初始化阶段)、列更新模式(待处理像素跨越参数列场景对应的缓存数据更新)、缓存模式(待处理像素跨越参数列场景对应的缓存数据更新后的数据缓存)和行更行模式(对应于待处理像素即将跨越图像行),进行整体流程说明。
S1001,初始化所有控制信号和数据。
S1002,判断帧同步信号fsync_in是否为1。
若是,则进入初始化模式;若否,则返回继续执行S1002。
这里,帧同步信号fsync_in为1表明一帧的开始,此时进入初始化模式。
S1003,执行初始化模式。
具体执行初始化模式的步骤可参见图2,将先后三次从RAM中读取数据,并分别送往LU、RU和BU,其中第0次读发生在fsync_in的下一个时钟周期,第1次读取发生在图像第一行的第一个像素到来之时,第2次读取发生在图像第一行的第二个像素到来之时。
S1004,判断像素是否跨越参数表列。
若是,则进入列更新模式;若否,则执行步骤S1010,判断帧尾号feof_in是否为1。
具体的,使用累加计数器记录待处理像素在参数表中的等效横向位置坐标,若超过第一列参数值(即当前用于双线性插值计算的两列参数值中靠右一列的参数值)所在位置,则表明待处理像素跨越参数表列,需要更新数据源(参数值),因此进入列更新模式。
S1005,执行列更新模式。
具体执行列更新模式的步骤可参见图4,在图像首行,LU接收RU的数据,同时RU接收BU的数据,在图像的其余行,LU和LD分别接收RU、RD的数据,同时RU和RD分别接收BU和BD的数据,两种情况均可在一个周期完成数据源的列更新。
S1006,判断像素是否处于行尾。
若否,则执行S1007;若是,则执行步骤S1008。
S1007,执行缓存模式。
具体的,缓存模式的执行步骤可参见图5,在图像首行,仅读取一次RAM数据并缓存在BU中,在图像其余行,先后读取两次RAM数据分别送至BU和BD中。上述读取时刻紧接列更新之后,以最大化节省时间。
S1008,判断像素是否即将跨越图像行。
若是,则执行步骤S1009;若否返回执行S1004。
S1009,执行行更新模式。
在行更新模式下需要对四个数据源都进行更新,过程可见图6,共有两个阶段。在第一阶段,先后读取两次RAM,并缓存至BU和BD中,最后在行尾标志信号leof_in为1之时,LU和LD同时接收BU和BD的数据,完成LU和LD的数据更新;在第二阶段,也先后读取两次RAM,同样缓存至BU和BD中,最后在下一行的行头标志信号lsof_in为1之时,RU和RD同时接收BU和BD的数据,完成RU和RD数据的更新。
S1010,判断帧尾号feof_in是否为1。
若是,则结束这一帧的处理;若否,则返回执行S1004。
本申请实施例提供的数据缓存方法,执行主体可以为数据缓存装置。本申请实施例中以数据缓存装置执行数据缓存方法为例,说明本申请实施例提供的数据缓存装置。
如图11,本发明实施例提供了一种数据缓存装置,该装置1100包括:
第一处理模块1110,用于根据指示信号,确定图像处理所在阶段,所述图像处理所在阶段包括:初始化阶段和像素处理阶段;
第二处理模块1120,用于根据所述图像处理所在阶段,读取随机存储器RAM内的参数值,并将读取的参数值缓存至目标寄存器组内;
其中,所述RAM内存储有参数表,所述参数表中的参数值用于双线性插值计算;
所述目标寄存器组为六个寄存器组中的至少一者。
可选地,所述六个寄存器组包括:第一寄存器组、第二寄存器组、第三寄存器组、第四寄存器组、第五寄存器组和第六寄存器组;
所述第一寄存器组用于缓存所述参数表中用于双线性插值计算的两行两列四个参数值中处于第一行第一列位置的参数值,所述第二寄存器组用于缓存所述四个参数值中处于第一行第二列位置的参数值,所述第三寄存器组用于缓存所述参数表中用于双线性插值计算的两行参数值中处于第一行的参数值;所述第四寄存器组用于缓存所述四个参数值中处于第二行第一列位置的参数值,所述第五寄存器组用于缓存所述四个参数值中处于第二行第二列位置的参数值,所述第六寄存器组用于缓存所述参数表中用于双线性插值计算的两行参数值中处于第二行的参数值。
可选地,所述第二处理模块1120,包括:
第一处理单元,用于在所述图像处理所在阶段为初始化阶段的情况下,先后三次读取所述RAM内的参数值,并将读取的参数值分别缓存至所述第一寄存器组、所述第二寄存器组和所述第三寄存器组。
可选地,所述第二处理模块1120,包括:
第二处理单元,用于在所述图像处理所在阶段为像素处理阶段,且图像中待处理像素的所在位置在所述参数表中的等效横向位置超过第一列参数值所在位置的情况下,更新相关寄存器组缓存的参数值,其中,所述第一列参数值与第二列参数值相邻,且位于所述第二列参数值的右侧,所述第一列参数值和所述第二列参数值为当前用于双线性插值计算的两列参数值;
第三处理单元,用于在参数值更新后,N次读取RAM内的参数值,并将每次读取的参数值缓存至目标寄存器组内,N为大于或者等于1的正整数。
可选地,所述第二处理单元具体用于:
若所述待处理像素位于图像第一行,则将所述第二寄存器组内缓存的参数值传输至所述第一寄存器组内;并将所述第三寄存器组内缓存的参数值传输至所述第二寄存器组内;
若所述待处理像素位于图像除所述第一行外的其他行,则将所述第二寄存器组内缓存的参数值传输至所述第一寄存器组内,并将所述第五寄存器组内缓存的参数值传输至所述第四寄存器组内;将所述第三寄存器组内缓存的参数值传输至所述第二寄存器组内,并将所述第六寄存器组内缓存的参数值传输至所述第五寄存器组内。
可选地,所述第三处理单元具体用于:
在所述待处理像素位于图像第一行,且所述待处理像素未处于行尾的情况下,在参数值更新后,读取一次所述RAM内的参数值,并将读取的参数值缓存至所述第三寄存器组;
在所述待处理像素位于图像除所述第一行外的其他行,且所述待处理像素未处于行尾的情况下,在参数值更新后,先后两次读取所述RAM内的参数值,将读取的参数值分别缓存至所述第三寄存器组和所述第六寄存器组。
可选地,所述第二处理模块1120,包括:
第四处理单元,用于在处理位于图像行行尾的像素点时,先后两次读取所述RAM内的参数值,将读取的参数值分别缓存至所述第三寄存器组和所述第六寄存器组,并在处理完位于图像行行尾的所述像素点时,将所述第三寄存器组缓存的参数值传输至所述第一寄存器组,将所述第六寄存器组缓存的参数值传输至所述第四寄存器组;
第五处理单元,用于先后读取所述RAM内的参数值,将读取的参数值分别缓存至所述第三寄存器组和所述第六寄存器组,并在待处理像素位于所述图像行的下一行的行头位置时,将所述第三寄存器组缓存的参数值传输至所述第二寄存器组,将所述第六寄存器组缓存的参数值传输至所述第五寄存器组。
可选地,所述参数表中的参数值按照从左到右,由上到下的顺序存储至所述RAM内,RAM地址依次递增。
可选地,图像像素的列数最小是所述参数表的列数的两倍。
可选地,图像像素当前行的行尾与下一行的行头之间最小间隔一个时钟周期;
一帧图像的开始与该帧图像中的第一个数据之间最小间隔一个时钟周期。
本发明实施例的数据缓存装置根据指示信号,确定图像处理所在阶段,所述图像处理所在阶段包括:初始化阶段和像素处理阶段;根据所述图像处理所在阶段,读取随机存储器RAM内的参数值,并将读取的参数值缓存至目标寄存器组内;其中,所述RAM内存储有参数表,所述参数表中的参数值用于双线性插值计算;所述目标寄存器组为六个寄存器组中至少的一者,所述六个寄存器组包括:第一寄存器组、第二寄存器组、第三寄存器组、第四寄存器组、第五寄存器组和第六寄存器组;其中,所述第一寄存器组用于缓存所述参数表中用于双线性插值计算的两行两列四个参数值中处于第一行第一列位置的参数值,所述第二寄存器组用于缓存所述四个参数值中处于第一行第二列位置的参数值,所述第三寄存器组用于缓存所述参数表中用于双线性插值计算的两行参数值中处于第一行的参数值;所述第四寄存器组用于缓存所述四个参数值中处于第二行第一列位置的参数值,所述第五寄存器组用于缓存所述四个参数值中处于第二行第二列位置的参数值,所述第六寄存器组用于缓存所述参数表中用于双线性插值计算的两行参数值中处于第二行的参数值,这样,基于图像处理中视频流时序和双线性插值计算的特征,通过一整块单端口RAM存储参数表,六组寄存器缓存参数资源,能够显著减小面积和功耗。
本申请实施例中的数据缓存装置可以是电子设备,也可以是电子设备中的部件,例如集成电路或芯片。该电子设备可以是终端,也可以为除终端之外的其他设备。示例性的,电子设备可以为手机、平板电脑、笔记本电脑、掌上电脑、车载电子设备、移动上网装置(Mobile Internet Device,MID)、增强现实(augmented reality,AR)/虚拟现实(virtualreality,VR)设备、机器人、可穿戴设备、超级移动个人计算机(ultra-mobile personalcomputer,UMPC)、上网本或者个人数字助理(personal digital assistant,PDA)等,还可以为服务器、网络附属存储器(Network Attached Storage,NAS)、个人计算机(personalcomputer,PC)、电视机(television,TV)、柜员机或者自助机等,本申请实施例不作具体限定。
本申请实施例中的数据缓存装置可以为具有操作系统的装置。该操作系统可以为安卓(Android)操作系统,可以为IOS操作系统,还可以为其他可能的操作系统,本申请实施例不作具体限定。
本申请实施例提供的数据缓存装置能够实现图1的方法实施例实现的各个过程,为避免重复,这里不再赘述。
可选地,如图12所示,本申请实施例还提供一种电子设备1200,包括处理器1201和存储器1202,存储器1202上存储有可在所述处理器1201上运行的程序或指令,该程序或指令被处理器1201执行时实现上述数据缓存方法实施例的各个步骤,且能达到相同的技术效果,为避免重复,这里不再赘述。
需要说明的是,本申请实施例中的电子设备包括上述所述的移动电子设备和非移动电子设备。
图13为实现本申请实施例的一种电子设备的硬件结构示意图。
该电子设备1300包括但不限于:射频单元1301、网络模块1302、音频输出单元1303、输入单元1304、传感器1305、显示单元1306、用户输入单元1307、接口单元1308、存储器1309、以及处理器1310等部件。
本领域技术人员可以理解,电子设备1300还可以包括给各个部件供电的电源(比如电池),电源可以通过电源管理系统与处理器1310逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。图13中示出的电子设备结构并不构成对电子设备的限定,电子设备可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置,在此不再赘述。
其中,处理器1310,用于根据指示信号,确定图像处理所在阶段,所述图像处理所在阶段包括:初始化阶段和像素处理阶段;
根据所述图像处理所在阶段,读取随机存储器RAM内的参数值,并将读取的参数值缓存至目标寄存器组内;
其中,所述RAM内存储有参数表,所述参数表中的参数值用于双线性插值计算;
所述目标寄存器组为六个寄存器组中的至少一者,所述六个寄存器组包括:第一寄存器组、第二寄存器组、第三寄存器组、第四寄存器组、第五寄存器组和第六寄存器组;其中,所述第一寄存器组用于缓存所述参数表中用于双线性插值计算的两行两列四个参数值中处于第一行第一列位置的参数值,所述第二寄存器组用于缓存所述四个参数值中处于第一行第二列位置的参数值,所述第三寄存器组用于缓存所述参数表中用于双线性插值计算的两行参数值中处于第一行的参数值;所述第四寄存器组用于缓存所述四个参数值中处于第二行第一列位置的参数值,所述第五寄存器组用于缓存所述四个参数值中处于第二行第二列位置的参数值,所述第六寄存器组用于缓存所述参数表中用于双线性插值计算的两行参数值中处于第二行的参数值。
本申请基于图像处理中视频流时序和双线性插值计算的特征,通过一整块单端口RAM存储参数表,六组寄存器缓存参数资源,能够显著减小面积和功耗。
应理解的是,本申请实施例中,输入单元1304可以包括图形处理器(GraphicsProcessing Unit,GPU)13041和麦克风13042,图形处理器13041对在视频捕获模式或图像捕获模式中由图像捕获装置(如摄像头)获得的静态图片或视频的图像数据进行处理。显示单元1306可包括显示面板13061,可以采用液晶显示器、有机发光二极管等形式来配置显示面板13061。用户输入单元1307包括触控面板13071以及其他输入设备13072中的至少一种。触控面板13071,也称为触摸屏。触控面板13071可包括触摸检测装置和触摸控制器两个部分。其他输入设备13072可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆,在此不再赘述。
存储器1309可用于存储软件程序以及各种数据。存储器1309可主要包括存储程序或指令的第一存储区和存储数据的第二存储区,其中,第一存储区可存储操作系统、至少一个功能所需的应用程序或指令(比如声音播放功能、图像播放功能等)等。此外,存储器1309可以包括易失性存储器或非易失性存储器,或者,存储器1309可以包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(Read-Only Memory,ROM)、可编程只读存储器(Programmable ROM,PROM)、可擦除可编程只读存储器(Erasable PROM,EPROM)、电可擦除可编程只读存储器(Electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(Random Access Memory,RAM),静态随机存取存储器(Static RAM,SRAM)、动态随机存取存储器(Dynamic RAM,DRAM)、同步动态随机存取存储器(Synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(Double Data Rate SDRAM,DDRSDRAM)、增强型同步动态随机存取存储器(Enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(Synch link DRAM,SLDRAM)和直接内存总线随机存取存储器(Direct Rambus RAM,DRRAM)。本申请实施例中的存储器1309包括但不限于这些和任意其它适合类型的存储器。
处理器1310可包括一个或多个处理单元;可选的,处理器1310集成应用处理器和调制解调处理器,其中,应用处理器主要处理涉及操作系统、用户界面和应用程序等的操作,调制解调处理器主要处理无线通信信号,如基带处理器。可以理解的是,上述调制解调处理器也可以不集成到处理器1310中。
可选地,处理器1310还用于:
在所述图像处理所在阶段为初始化阶段的情况下,先后三次读取所述RAM内的参数值,并将读取的参数值分别缓存至所述第一寄存器组、所述第二寄存器组和所述第三寄存器组。
可选地,处理器1310还用于:
在所述图像处理所在阶段为像素处理阶段的情况下,且图像中待处理像素的所在位置在所述参数表中的等效横向位置超过第一列参数值所在位置的情况下,更新相关寄存器组缓存的参数值,其中,所述第一列参数值与第二列参数值相邻,且位于所述第二列参数值的右侧,所述第一列参数值和所述第二列参数值为当前用于双线性插值计算的两列参数值;
在参数值更新后,N次读取RAM内的参数值,并将每次读取的参数值缓存至目标寄存器组内,N为大于或者等于1的正整数。
可选地,处理器1310还用于:
若所述待处理像素位于图像第一行,则将所述第二寄存器组内缓存的参数值传输至所述第一寄存器组内;并将所述第三寄存器组内缓存的参数值传输至所述第二寄存器组内;
若所述待处理像素位于图像除所述第一行外的其他行,则将所述第二寄存器组内缓存的参数值传输至所述第一寄存器组内,并将所述第五寄存器组内缓存的参数值传输至所述第四寄存器组内;将所述第三寄存器组内缓存的参数值传输至所述第二寄存器组内,并将所述第六寄存器组内缓存的参数值传输至所述第五寄存器组内。
可选地,处理器1310还用于:
在所述待处理像素位于图像第一行,且所述待处理像素未处于行尾的情况下,在参数值更新后,读取一次所述RAM内的参数值,并将读取的参数值缓存至所述第三寄存器组;
在所述待处理像素位于图像除所述第一行外的其他行,且所述待处理像素未处于行尾的情况下,在参数值更新后,先后两次读取所述RAM内的参数值,将读取的参数值分别缓存至所述第三寄存器组和所述第六寄存器组。
可选地,处理器1310还用于:
在处理位于图像行行尾的像素点时,先后两次读取所述RAM内的参数值,将读取的参数值分别缓存至所述第三寄存器组和所述第六寄存器组,并在处理完位于图像行行尾的所述像素时,将所述第三寄存器组缓存的参数值传输至所述第一寄存器组,将所述第六寄存器组缓存的参数值传输至所述第四寄存器组;
先后读取所述RAM内的参数值,将读取的参数值分别缓存至所述第三寄存器组和所述第六寄存器组,并在待处理像素位于所述图像行的下一行的行头位置时,将所述第三寄存器组缓存的参数值传输至所述第二寄存器组,将所述第六寄存器组缓存的参数值传输至所述第五寄存器组。
可选地,所述参数表中的参数值按照从左到右,由上到下的顺序存储至所述RAM内,RAM的存储地址依次递增。
可选地,图像像素的列数最小是所述参数表的列数的两倍。
可选地,图像像素当前行的行尾与下一行的行头之间间隔一个时钟周期;
一帧图像的开始与该帧图像中的第一个数据之间间隔一个时钟周期。
本申请实施例还提供一种可读存储介质,所述可读存储介质上存储有程序或指令,该程序或指令被处理器执行时实现上述数据缓存方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
其中,所述处理器为上述实施例中所述的电子设备中的处理器。所述可读存储介质,包括计算机可读存储介质,如计算机只读存储器ROM、随机存取存储器RAM、磁碟或者光盘等。
本申请实施例另提供了一种芯片,所述芯片包括处理器和通信接口,所述通信接口和所述处理器耦合,所述处理器用于运行程序或指令,实现上述数据缓存方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
应理解,本申请实施例提到的芯片还可以称为系统级芯片、系统芯片、芯片系统或片上系统芯片等。
本申请实施例提供一种计算机程序产品,该程序产品被存储在存储介质中,该程序产品被至少一个处理器执行以实现如上述数据缓存方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。此外,需要指出的是,本申请实施方式中的方法和装置的范围不限按示出或讨论的顺序来执行功能,还可包括根据所涉及的功能按基本同时的方式或按相反的顺序来执行功能,例如,可以按不同于所描述的次序来执行所描述的方法,并且还可以添加、省去、或组合各种步骤。另外,参照某些示例所描述的特征可在其他示例中被组合。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以计算机软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,或者网络设备等)执行本申请各个实施例所述的方法。
上面结合附图对本申请的实施例进行了描述,但是本申请并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本申请的启示下,在不脱离本申请宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本申请的保护之内。
Claims (20)
1.一种数据缓存方法,其特征在于,包括:
根据指示信号,确定图像处理所在阶段,所述图像处理所在阶段包括:初始化阶段和像素处理阶段;
根据所述图像处理所在阶段,读取随机存储器RAM内的参数值,并将读取的参数值缓存至目标寄存器组内;
其中,所述RAM内存储有参数表,所述参数表中的参数值用于双线性插值计算;
所述目标寄存器组为六个寄存器组中的至少一者;
所述六个寄存器组包括:第一寄存器组、第二寄存器组、第三寄存器组、第四寄存器组、第五寄存器组和第六寄存器组;
其中,所述第一寄存器组用于缓存所述参数表中用于双线性插值计算的两行两列四个参数值中处于第一行第一列位置的参数值,所述第二寄存器组用于缓存所述四个参数值中处于第一行第二列位置的参数值,所述第三寄存器组用于缓存所述参数表中用于双线性插值计算的两行参数值中处于第一行的参数值;所述第四寄存器组用于缓存所述四个参数值中处于第二行第一列位置的参数值,所述第五寄存器组用于缓存所述四个参数值中处于第二行第二列位置的参数值,所述第六寄存器组用于缓存所述参数表中用于双线性插值计算的两行参数值中处于第二行的参数值。
2.根据权利要求1所述的方法,其特征在于,所述根据所述图像处理所在阶段,读取随机存储器RAM内的参数值,并将读取的参数值缓存至目标寄存器组内,包括:
在所述图像处理所在阶段为初始化阶段的情况下,先后三次读取所述RAM内的参数值,并将读取的参数值分别缓存至所述第一寄存器组、所述第二寄存器组和所述第三寄存器组。
3.根据权利要求1所述的方法,其特征在于,所述根据所述图像处理所在阶段,读取随机存储器RAM内的参数值,并将读取的参数值缓存至目标寄存器组内,包括:
在所述图像处理所在阶段为像素处理阶段,且图像中待处理像素的所在位置在所述参数表中的等效横向位置超过第一列参数值所在位置的情况下,更新相关寄存器组缓存的参数值,其中,所述第一列参数值与第二列参数值相邻,且位于所述第二列参数值的右侧,所述第一列参数值和所述第二列参数值为当前用于双线性插值计算的两列参数值;
在参数值更新后,N次读取RAM内的参数值,并将每次读取的参数值缓存至目标寄存器组内,N为大于或者等于1的正整数。
4.根据权利要求3所述的方法,其特征在于,所述更新相关寄存器组缓存的参数值,包括:
若所述待处理像素位于图像第一行,则将所述第二寄存器组内缓存的参数值传输至所述第一寄存器组内;并将所述第三寄存器组内缓存的参数值传输至所述第二寄存器组内;
若所述待处理像素位于图像除所述第一行外的其他行,则将所述第二寄存器组内缓存的参数值传输至所述第一寄存器组内,并将所述第五寄存器组内缓存的参数值传输至所述第四寄存器组内;将所述第三寄存器组内缓存的参数值传输至所述第二寄存器组内,并将所述第六寄存器组内缓存的参数值传输至所述第五寄存器组内。
5.根据权利要求4所述的方法,其特征在于,所述在参数值更新后,N次读取RAM内的参数值,并将每次读取的参数值缓存至目标寄存器组内,包括:
在所述待处理像素位于图像第一行,且所述待处理像素未处于行尾的情况下,在参数值更新后,读取一次所述RAM内的参数值,并将读取的参数值缓存至所述第三寄存器组;
在所述待处理像素位于图像除所述第一行外的其他行,且所述待处理像素未处于行尾的情况下,在参数值更新后,先后两次读取所述RAM内的参数值,将读取的参数值分别缓存至所述第三寄存器组和所述第六寄存器组。
6.根据权利要求1所述的方法,其特征在于,所述根据所述图像处理所在阶段,读取随机存储器RAM内的参数值,并将读取的参数值缓存至目标寄存器组内,包括:
在处理位于图像行行尾的像素点时,先后两次读取所述RAM内的参数值,将读取的参数值分别缓存至所述第三寄存器组和所述第六寄存器组,并在处理完位于图像行行尾的所述像素点时,将所述第三寄存器组缓存的参数值传输至所述第一寄存器组,将所述第六寄存器组缓存的参数值传输至所述第四寄存器组;
先后读取所述RAM内的参数值,将读取的参数值分别缓存至所述第三寄存器组和所述第六寄存器组,并在待处理像素位于所述图像行的下一行的行头位置时,将所述第三寄存器组缓存的参数值传输至所述第二寄存器组,将所述第六寄存器组缓存的参数值传输至所述第五寄存器组。
7.根据权利要求1所述的方法,其特征在于,所述参数表中的参数值按照从左到右,由上到下的顺序存储至所述RAM内,所述RAM的存储地址依次递增。
8.根据权利要求1所述的方法,其特征在于,图像像素的列数最小是所述参数表的列数的两倍。
9.根据权利要求1所述的方法,其特征在于,图像像素当前行的行尾与下一行的行头之间最小间隔一个时钟周期;
一帧图像的开始与该帧图像中的第一个数据之间最小间隔一个时钟周期。
10.一种数据缓存装置,其特征在于,包括:
第一处理模块,用于根据指示信号,确定图像处理所在阶段,所述图像处理所在阶段包括:初始化阶段和像素处理阶段;
第二处理模块,用于根据所述图像处理所在阶段,读取随机存储器RAM内的参数值,并将读取的参数值缓存至目标寄存器组内;
其中,所述RAM内存储有参数表,所述参数表中的参数值用于双线性插值计算;
所述目标寄存器组为六个寄存器组中的至少一者;
所述六个寄存器组包括:第一寄存器组、第二寄存器组、第三寄存器组、第四寄存器组、第五寄存器组和第六寄存器组;
其中,所述第一寄存器组用于缓存所述参数表中用于双线性插值计算的两行两列四个参数值中处于第一行第一列位置的参数值,所述第二寄存器组用于缓存所述四个参数值中处于第一行第二列位置的参数值,所述第三寄存器组用于缓存所述参数表中用于双线性插值计算的两行参数值中处于第一行的参数值;所述第四寄存器组用于缓存所述四个参数值中处于第二行第一列位置的参数值,所述第五寄存器组用于缓存所述四个参数值中处于第二行第二列位置的参数值,所述第六寄存器组用于缓存所述参数表中用于双线性插值计算的两行参数值中处于第二行的参数值。
11.根据权利要求10所述的装置,其特征在于,所述第二处理模块,包括:
第一处理单元,用于在所述图像处理所在阶段为初始化阶段的情况下,先后三次读取所述RAM内的参数值,并将读取的参数值分别缓存至所述第一寄存器组、所述第二寄存器组和所述第三寄存器组。
12.根据权利要求10所述的装置,其特征在于,所述第二处理模块,包括:
第二处理单元,用于在所述图像处理所在阶段为像素处理阶段,且图像中待处理像素的所在位置在所述参数表中的等效横向位置超过第一列参数值所在位置的情况下,更新相关寄存器组缓存的参数值,其中,所述第一列参数值与第二列参数值相邻,且位于所述第二列参数值的右侧,所述第一列参数值和所述第二列参数值为当前用于双线性插值计算的两列参数值;
第三处理单元,用于在参数值更新后,N次读取RAM内的参数值,并将每次读取的参数值缓存至目标寄存器组内,N为大于或者等于1的正整数。
13.根据权利要求12所述的装置,其特征在于,所述第二处理单元具体用于:
若所述待处理像素位于图像第一行,则将所述第二寄存器组内缓存的参数值传输至所述第一寄存器组内;并将所述第三寄存器组内缓存的参数值传输至所述第二寄存器组内;
若所述待处理像素位于图像除所述第一行外的其他行,则将所述第二寄存器组内缓存的参数值传输至所述第一寄存器组内,并将所述第五寄存器组内缓存的参数值传输至所述第四寄存器组内;将所述第三寄存器组内缓存的参数值传输至所述第二寄存器组内,并将所述第六寄存器组内缓存的参数值传输至所述第五寄存器组内。
14.根据权利要求13所述的装置,其特征在于,所述第三处理单元具体用于:
在所述待处理像素位于图像第一行,且所述待处理像素未处于行尾的情况下,在参数值更新后,读取一次所述RAM内的参数值,并将读取的参数值缓存至所述第三寄存器组;
在所述待处理像素位于图像除所述第一行外的其他行,且所述待处理像素未处于行尾的情况下,在参数值更新后,先后两次读取所述RAM内的参数值,将读取的参数值分别缓存至所述第三寄存器组和所述第六寄存器组。
15.根据权利要求10所述的装置,其特征在于,所述第二处理模块,包括:
第四处理单元,用于在处理位于图像行行尾的像素点时,先后两次读取所述RAM内的参数值,将读取的参数值分别缓存至所述第三寄存器组和所述第六寄存器组,并在处理完位于图像行行尾的所述像素点时,将所述第三寄存器组缓存的参数值传输至所述第一寄存器组,将所述第六寄存器组缓存的参数值传输至所述第四寄存器组;
第五处理单元,用于先后读取所述RAM内的参数值,将读取的参数值分别缓存至所述第三寄存器组和所述第六寄存器组,并在待处理像素位于所述图像行的下一行的行头位置时,将所述第三寄存器组缓存的参数值传输至所述第二寄存器组,将所述第六寄存器组缓存的参数值传输至所述第五寄存器组。
16.根据权利要求10所述的装置,其特征在于,所述参数表中的参数值按照从左到右,由上到下的顺序存储至所述RAM内,RAM的存储地址依次递增。
17.根据权利要求10所述的装置,其特征在于,图像像素的列数最小是所述参数表的列数的两倍。
18.根据权利要求10所述的装置,其特征在于,图像像素当前行的行尾与下一行的行头之间最小间隔一个时钟周期;
一帧图像的开始与该帧图像中的第一个数据之间最小间隔一个时钟周期。
19.一种电子设备,其特征在于,包括处理器和存储器,所述存储器存储可在所述处理器上运行的程序或指令,所述程序或指令被所述处理器执行时实现如权利要求1至9任一项所述的数据缓存方法的步骤。
20.一种可读存储介质,其特征在于,所述可读存储介质上存储程序或指令,所述程序或指令被处理器执行时实现如权利要求1至9任一项所述的数据缓存方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310944095.1A CN116974475A (zh) | 2023-07-31 | 2023-07-31 | 数据缓存方法、装置及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310944095.1A CN116974475A (zh) | 2023-07-31 | 2023-07-31 | 数据缓存方法、装置及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116974475A true CN116974475A (zh) | 2023-10-31 |
Family
ID=88477807
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310944095.1A Pending CN116974475A (zh) | 2023-07-31 | 2023-07-31 | 数据缓存方法、装置及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116974475A (zh) |
-
2023
- 2023-07-31 CN CN202310944095.1A patent/CN116974475A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9460489B2 (en) | Image processing apparatus and image processing method for performing pixel alignment | |
US8311297B2 (en) | Method and apparatus for implementing Doppler scan conversion | |
KR100297145B1 (ko) | 그래픽 처리장치 및 그래픽 처리방법 | |
US8264612B2 (en) | Method of raster-scan search for multi-region on-screen display and system using the same | |
KR20000039714A (ko) | 텍스처 매핑시스템 | |
CN108024116B (zh) | 一种数据缓存方法及装置 | |
CN105427235A (zh) | 一种图像浏览方法及系统 | |
CN116974475A (zh) | 数据缓存方法、装置及电子设备 | |
JP2003323339A (ja) | メモリアクセス装置、半導体デバイス、メモリアクセス制御方法、コンピュータプログラム及び記録媒体 | |
EP3474224B1 (en) | Graphics processing method and device | |
CN116156079A (zh) | 视频处理方法、装置、设备和存储介质 | |
US10152766B2 (en) | Image processor, method, and chipset for increasing intergration and performance of image processing | |
JP3154741B2 (ja) | 画像処理装置及びその方式 | |
CN102547184A (zh) | 一种视频动态标识信息的显示方法及系统 | |
CN114862659A (zh) | 图像直方图生成方法、装置、电子设备及存储介质 | |
CN116957939A (zh) | 图像缩放方法、装置、电子设备及可读存储介质 | |
CN118014819A (zh) | 图像处理装置、方法、芯片、电子设备及可读存储介质 | |
JP2002229933A (ja) | 映像データ変換装置、映像処理システムおよび映像データ変換方法 | |
JP2000232623A (ja) | 映像メモリ回路 | |
JPH01142986A (ja) | 画像メモリ素子 | |
CN118921524A (zh) | 一种视频旋转和翻转方法、装置、芯片及存储介质 | |
CN117710188A (zh) | 图像处理的硬件电路实现方法、设备及集成电路 | |
JPH07110786A (ja) | 半導体記憶装置 | |
CN117255256A (zh) | 图像数据处理方法、装置、电子设备及可读存储介质 | |
JP2536183B2 (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 |