CN116033092A - 数据读取方法和数据写入方法 - Google Patents
数据读取方法和数据写入方法 Download PDFInfo
- Publication number
- CN116033092A CN116033092A CN202211719025.8A CN202211719025A CN116033092A CN 116033092 A CN116033092 A CN 116033092A CN 202211719025 A CN202211719025 A CN 202211719025A CN 116033092 A CN116033092 A CN 116033092A
- Authority
- CN
- China
- Prior art keywords
- data
- pixel row
- target image
- address
- storage space
- 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
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Image Input (AREA)
Abstract
本申请提供了一种数据读取方法和数据写入方法,涉及数据处理技术领域。该数据读取方法包括:响应于数据读取命令,确定目标图像的图像数据所在的读取地址,目标图像的图像数据包括目标图像对应的像素块或像素行;基于读取地址,从存储空间中获取目标图像的图像数据;将目标图像的图像数据发送至数据处理单元。本申请实施例支持任意大小的目标图像的图像数据的读取,减少了存储空间和硬件资源的占用。
Description
技术领域
本申请涉及数据处理技术领域,具体涉及一种数据读取方法和数据写入方法。
背景技术
目前图像处理算法中,通常需要将图像数据进行行块转换(写入像素行;读取像素块)、或者块行转换(写入像素块;读取像素行),在行块转换或块行转换时,图像数据的存储地址会发生变化,进而影响目标图像的处理时效。
发明内容
为了解决上述技术问题,提出了本申请。本申请实施例提供了一种数据读取方法和数据写入方法。
第一方面,本申请一实施例提供了一种数据读取方法,包括:响应于数据读取命令,确定目标图像的图像数据所在的读取地址,目标图像的图像数据包括目标图像对应的像素块或像素行;基于读取地址,从存储空间中获取目标图像的图像数据;将目标图像的图像数据发送至数据处理单元。
结合第一方面,在第一方面的某些实现方式中,数据读取方法还包括:若存储空间中的写入数据为像素行,存储空间中的读取数据为像素块,或者,若存储空间中的写入数据为像素块,存储空间中的读取数据为像素行,则基于目标图像的宽度数据、目标图像的像素块对应的高度数据,确定存储空间的大小。
结合第一方面,在第一方面的某些实现方式中,确定目标图像的图像数据所在的读取地址,包括:针对目标图像的图像数据中包括的每个当前像素行,若存储空间中的写入数据为像素块,存储空间中的读取数据为像素行,并且存储空间的深度等于2的整数次幂,则基于像素块的高度数据、读取的当前像素行在目标图像中的像素块位置数据、以及存储空间的深度,确定当前像素行对应的地址间隔,地址间隔为当前像素行和当前像素行相邻的像素行之间的地址间隔;基于地址间隔,确定当前像素行的读取地址。
结合第一方面,在第一方面的某些实现方式中,确定目标图像的图像数据所在的读取地址,还包括:若存储空间的深度不等于2的整数次幂,则获取当前像素行以及当前像素行相邻的像素行在存储空间的深度等于2的整数次幂的情况下、各自对应的地址间隔;确定当前像素行在目标图像中的坐标数据和当前像素行在目标图像中的像素块位置数据的差值数据;基于当前像素行以及当前像素行相邻的像素行在存储空间的深度等于2的整数次幂的情况下、各自对应的地址间隔,以及差值数据,确定当前像素行对应的地址间隔;基于地址间隔,确定当前像素行的读取地址。
结合第一方面,在第一方面的某些实现方式中,确定目标图像的图像数据所在的读取地址,包括:针对目标图像的图像数据中包括的每个当前像素块,若存储空间中的写入数据为像素行,存储空间中的读取数据为像素块,并且存储空间的深度为2的整数次幂,则基于像素块的宽度数据、目标图像的宽度数据、读取的当前像素块中的像素行在目标图像中的像素块位置数据、以及存储空间的深度,确定当前像素块中的像素行的地址间隔,地址间隔包括当前像素块中的像素行和像素行相邻的像素行之间的地址间隔;基于地址间隔,确定当前像素块中的像素行的读取地址。
结合第一方面,在第一方面的某些实现方式中,确定目标图像的图像数据所在的读取地址,还包括:若存储空间的深度不等于2的整数次幂,则获取当前像素块中的像素行以及和像素行相邻的像素行在存储空间的深度等于2的整数次幂的情况下、各自对应的地址间隔;确定当前像素块中的像素行在目标图像中的坐标数据和像素行在目标图像中的像素块位置数据的差值数据;基于当前像素块中的像素行以及和像素行相邻的像素行在存储空间的深度等于2的整数次幂的情况下、各自对应的地址间隔,差值数据,以及目标图像的宽度数据和当前像素块的宽度数据,确定当前像素块中的像素行的地址间隔;基于地址间隔,确定当前像素块中的像素行的读取地址。
结合第一方面,在第一方面的某些实现方式中,确定目标图像的图像数据所在的读取地址,包括:构建地址间隔表,地址间隔表中包括像素行对应的地址间隔;基于地址间隔表,得到目标图像数据所在的读取地址。
结合第一方面,在第一方面的某些实现方式中,存储空间为静态随机存储器中的存储空间。
第二方面,本申请一实施例提供了一种数据写入方法,包括:响应于数据写入命令,获取目标图像的图像数据,目标图像的图像数据包括目标图像对应的像素块或像素行;确定目标图像的图像数据所在的写入地址;基于写入地址,将目标图像的图像数据写入存储空间。
结合第二方面,在第二方面的某些实现方式中,确定目标图像的图像数据所在的写入地址,包括:针对目标图像的图像数据中包括的每个当前像素块,若存储空间中的写入数据为像素块,存储空间中的读取数据为像素行,则基于像素块的高度数据、写入的当前像素块中的像素行在目标图像中的像素块位置数据、以及存储空间的深度,确定当前像素块中的像素行对应的地址间隔,地址间隔为当前像素块中的像素行和像素行相邻的像素行之间的地址间隔;基于地址间隔,确定当前像素块中的像素行的写入地址。
结合第二方面,在第二方面的某些实现方式中,确定目标图像的图像数据所在的写入地址,包括:针对目标图像的图像数据中包括的每个当前像素行,若存储空间中的写入数据为像素行,存储空间中的读取数据为像素块,则基于像素块的宽度数据、目标图像的宽度数据、写入的当前像素行在目标图像中的像素块位置数据、以及存储空间的深度,确定当前像素行的地址间隔;基于地址间隔,确定当前像素行的写入地址。
第三方面,本申请一实施例提供了一种数据读取装置,包括:确定模块,用于响应于数据读取命令,确定目标图像的图像数据所在的读取地址,目标图像的图像数据包括目标图像对应的像素块或像素行;获取模块,用于基于读取地址,从存储空间中获取目标图像的图像数据;发送模块,用于将目标图像的图像数据发送至数据处理单元。
第四方面,本申请一实施例提供了一种数据写入装置,包括:获取模块,用于响应于数据写入命令,获取目标图像的图像数据,目标图像的图像数据包括目标图像对应的像素块或像素行;确定模块,用于确定目标图像的图像数据所在的写入地址;写入模块,用于基于写入地址,将目标图像的图像数据写入存储空间。
第五方面,本申请一实施例提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序用于执行第一方面和第二方面所述的方法。
第六方面,本申请一实施例提供了一种电子设备,该电子设备包括:处理器;用于存储处理器可执行指令的存储器;该处理器用于执行第一方面和第二方面所述的方法。
本申请实施例提供的数据读取方法,在响应于数据读取命令时,确定目标图像的图像数据所在的读取地址,目标图像的图像数据包括目标图像对应的像素块或像素行,进一步地,根据读取地址,从存储空间中获取目标图像的图像数据,并将目标图像的图像数据发送至数据处理单元。通过本申请实施例中的方案,能够实现任意大小的目标图像的图像数据的读取,并且减少了存储空间和硬件资源的占用。
附图说明
通过结合附图对本申请实施例进行更详细的描述,本申请的上述以及其他目的、特征和优势将变得更加明显。附图用来提供对本申请实施例的进一步理解,并且构成说明书的一部分,与本申请实施例一起用于解释本申请,并不构成对本申请的限制。在附图中,相同的参考标号通常代表相同部件或步骤。
图1所示为本申请一示例性实施例提供的数据读取方法的流程示意图。
图2所示为本申请一示例性实施例提供的数据写入方法的流程示意图。
图3所示为本申请一示例性实施例提供的数据读取装置的结构示意图。
图4所示为本申请一示例性实施例提供的数据写入装置的结构示意图。
图5所示为本申请一实施例提供的电子设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
图像信号处理:指对前端图像传感器输出信号处理的单元,通常包含多个图像处理算法。
图像处理算法:是指处理图像的一系列方法,通过这些不同的方法,对图像进行不同方式的处理与理解。包括图像去噪,图像变换,图像分析,图像压缩,图像增强等等。
像素块:像素块是图像处理算法中的基础操作单位,一个像素块指宽度为BW、高度为BH,包含BW×BH个像素的图像区域。
像素行:图像水平方向的像素集合。
图像输入输出时序:一帧图像的像素在时间单位上的传输顺序,按图像像素的水平方向从左至右,每传输完一行后,再按从上至下的顺序传输下一行。
图像输入输出延时:由于算法窗口机制、数据缓存的存取时间、算法运算处理的时间,图像输出相对于图像的输入存在一定的延时。
行块转换、块行转换:由于算法处理机制,一些算法需要图像数据以块为单位提供,或算法处理后将图像数据的处理结果以块为单位输出。
存储控制:包括存储的使能控制、读写控制、地址控制。
寻址算法:按照一定规则访问存储地址。
示例性方法
图1所示为本申请一示例性实施例提供的数据读取方法的流程示意图。示例性地,本申请实施例中的数据读取方法应用于读取控制单元。如图1所示,本申请实施例提供的数据读取方法包括如下步骤。
步骤S110,响应于数据读取命令,确定目标图像的图像数据所在的读取地址。
具体地,目标图像的图像数据包括目标图像对应的像素块或像素行。示例性地,目标图像为目标视频中的图像帧,目标图像的宽度数据为W,目标图像的高度数据为H。像素块是由目标图像分割得来的,并且,由目标图像分割得来的像素块的大小相同,因此像素块的宽度数据和高度数据基于目标图像的宽度数据和高度数据确定,示例性地,像素块的宽度数据为BW,像素块的高度数据为BH,其中,B为变量,可表示任意值。
步骤S120,基于读取地址,从存储空间中获取目标图像的图像数据。
示例性地,存储空间为静态随机存储器(Sramstatic Random Access Memory,SRAM)中的存储空间。
在本实施例中,区别于相关技术中采用的双倍速率同步动态随机存储器(DoubleData Rate SDRAM,DDR)存储图像数据的方法,该方法中的数据读取延时比SRAM的数据读取延时更长,并且延时受到DDR和总线访问的繁忙程度的影响,延时时间很难预测,造成对目标图像的处理时间过长或不能及时获得目标图像对应的处理数据,最终导致目标图像的输出帧率较低,并占用较大的系统带宽。而本申请使用SRAM做图像数据的读取,可以实时完成图像数据的输出处理,延时较小并固定,占用的存储资源较少。此外,目标图像的输入和输出延时低,可以达到较高的帧率。
进一步地,在本申请一示例性实施例中,若存储空间中的写入数据为像素行,存储空间中的读取数据为像素块,或者,若存储空间中的写入数据为像素块,存储空间中的读取数据为像素行,则基于目标图像的宽度数据、目标图像的像素块对应的高度数据,确定存储空间的大小。
沿用前述示例,在存储空间中实现以像素行为单位输入、以像素块为单位输出;或者以像素块为单位输入、以像素行为单位输出时,存储空间的大小=W×BH,W表示目标图像的宽度数据,BH表示像素块的高度数据。例如,W等于520,BH=52,则存储空间的大小=520×52。
在本申请实施例中,存储空间的大小是基于目标图像的宽度数据和像素块的高度数据自定义的,以保证能够完成关于目标图像的算法处理。存储空间的高度为像素块的高度数据BH,这个高度能保证所有像素块的数据都能存储好。
进一步地,在本申请一示例性实施例中,SRAM的位宽为像素块的宽度数据,SRAM的深度为目标图像的宽度数据除以像素块的宽度数据乘以像素块的高度数据,以保证能够完成目标图像的算法处理。
若存储空间中的读取数据为像素块,当写入目标图像的第BH+1像素行至第H像素行的过程中,每写入BW个像素,响应于数据读取命令,确定目标图像的图像数据所在的读取地址,根据读取地址,从SRAM中一次性读取BW个像素。
步骤S130,将目标图像的图像数据发送至数据处理单元。
具体地,将图像数据发送至数据处理单元,以便利用数据处理单元中的图像处理算法对图像数据进行处理,示例性地,对图像数据进行去噪处理、变换处理、分析处理、压缩处理,增强处理等等。
在本申请实施例中,在响应于数据读取命令时,确定目标图像的图像数据所在的读取地址,目标图像的图像数据包括目标图像对应的像素块或像素行,进一步地,根据读取地址,从存储空间中获取目标图像的图像数据,并将目标图像的图像数据发送至数据处理单元。通过本申请实施例中的方案,能够实现任意大小的目标图像的图像数据的读取,并且减少了存储空间和硬件资源的占用。
在本申请一示例性实施例中,确定目标图像的图像数据所在的读取地址具体包括:针对目标图像的图像数据中包括的每个当前像素行,若存储空间中的写入数据为像素块,存储空间中的读取数据为像素行,并且存储空间的深度等于2的整数次幂,则基于像素块的高度数据、读取的当前像素行在目标图像中的像素块位置数据、以及存储空间的深度,确定当前像素行对应的地址间隔,地址间隔为当前像素行和当前像素行相邻的像素行之间的地址间隔;基于地址间隔,确定当前像素行的读取地址。
具体地,根据当前像素行相邻的前一像素行的读取地址、以及当前像素行对应的地址间隔,确定当前像素行对应的读取地址。
示例性地,以目标图像的宽度数据为W、高度数据为H,像素块的宽度数据为BW、高度数据为BH,输出像素点坐标(x,y)为例。每一次从SRAM中读取数据,地址以一定间隔变化。
沿用前述示例,若存储空间的深度W/BW×BH=2n,n为正整数,则读取的当前像素行的地址间隔为inter_blk。
进一步地,若存储空间的深度不等于2的整数次幂,则获取当前像素行以及当前像素行相邻的像素行在存储空间的深度等于2的整数次幂的情况下、各自对应的地址间隔;确定当前像素行在目标图像中的坐标数据和当前像素行在目标图像中的像素块位置数据的差值数据;基于当前像素行以及当前像素行相邻的像素行在存储空间的深度等于2的整数次幂的情况下、各自对应的地址间隔,以及差值数据,确定当前像素行对应的地址间隔;基于地址间隔,确定当前像素行的读取地址。
沿用前述示例,若存储空间的深度W/BW*BH≠2n,n为正整数,则读取的当前像素行的地址间隔为inter_blk_rd。
inter_blk(n)表示当前像素行在存储空间的深度等于2的整数次幂的情况下的地址间隔,inter_blk(n-1)表示与当前像素行左相邻的像素行在存储空间的深度等于2的整数次幂的情况下的地址间隔。
进一步地,每读取BH个像素行,读取地址清零。
在本申请一示例性实施例中,确定目标图像的图像数据所在的读取地址,具体包括:针对目标图像的图像数据中包括的每个当前像素块,若存储空间中的写入数据为像素行,存储空间中的读取数据为像素块,并且存储空间的深度为2的整数次幂,则基于像素块的宽度数据、目标图像的宽度数据、读取的当前像素块中的像素行在目标图像中的像素块位置数据、以及存储空间的深度,确定当前像素块中的像素行的地址间隔,地址间隔包括当前像素块中的像素行和像素行相邻的像素行之间的地址间隔;基于地址间隔,确定当前像素块中的像素行的读取地址。
具体地,根据当前像素块中的像素行相邻的前一像素行的读取地址、以及当前像素块中的像素行对应的地址间隔,确定当前像素块中的像素行对应的读取地址。
同样地,以目标图像的宽度数据为W、高度数据为H,像素块的宽度数据为BW、高度数据为BH,输出像素点坐标(x,y)为例。每一次从SRAM中读取数据,地址以一定间隔变化。
示例性地,若存储空间的深度W/BW*BH=2n,n为正整数,则读取的当前像素行的地址间隔为inter_blk。
进一步地,若存储空间的深度不等于2的整数次幂,则获取当前像素块中的像素行以及和像素行相邻的像素行在存储空间的深度等于2的整数次幂的情况下、各自对应的地址间隔;确定当前像素块中的像素行在目标图像中的坐标数据和像素行在目标图像中的像素块位置数据的差值数据;基于当前像素块中的像素行以及和像素行相邻的像素行在存储空间的深度等于2的整数次幂的情况下、各自对应的地址间隔,差值数据,以及目标图像的宽度数据和当前像素块的宽度数据,确定当前像素块中的像素行的地址间隔;基于地址间隔,确定当前像素块中的像素行的读取地址。
示例性地,若存储空间的深度W/BW*BH≠2n,n为正整数,则读取的当前像素行的地址间隔为inter_blk_rd。
其中,inter_blk(n)表示当前像素块中的像素行在存储空间的深度等于2的整数次幂的情况下的地址间隔,inter_blk(n-1)表示和当前像素块中的像素行左相邻的像素行在存储空间的深度等于2的整数次幂的情况下的地址间隔,y表示当前像素块中的像素行在目标图像中的坐标数据,表示当前像素块中的像素行在目标图像中的坐标数据和像素行在目标图像中的像素块位置数据的差值数据。
进一步地,每读取BH个像素行后,读取地址清零。
在本申请一示例性实施例中,确定目标图像的图像数据所在的读取地址,具体包括:构建地址间隔表,地址间隔表中包括像素行对应的地址间隔;基于地址间隔表,得到目标图像数据所在的读取地址。
表1地址间隔表
写入像素块读取像素行 | 写入像素行读取像素块 | |
n | inter_blk | inter_blk |
1 | 1 | 1 |
2 | 32 | 128 |
3 | 1024 | 4 |
4 | 8 | 512 |
5 | 256 | 16 |
6 | 2 | 2048 |
7 | 64 | 64 |
8 | 2048 | 2 |
9 | 16 | 256 |
10 | 512 | 8 |
11 | 4 | 1024 |
12 | 128 | 32 |
图2所示为本申请一示例性实施例提供的数据写入方法的流程示意图。示例性地,本申请实施例提供的数据写入方法应用于写入控制单元。如图2所示,本申请实施例提供的数据写入方法包括如下步骤。
步骤S210,响应于数据写入命令,获取目标图像的图像数据。
目标图像的图像数据包括目标图像对应的像素块或像素行。更详细的关于目标图像的图像数据的阐述参见图1所示实施例。
步骤S220,确定目标图像的图像数据所在的写入地址。
在一种实施方式中,针对目标图像的图像数据中包括的每个当前像素块,若存储空间中的写入数据为像素块,存储空间中的读取数据为像素行,则基于像素块的高度数据、写入的当前像素块中的像素行在目标图像中的像素块位置数据、以及存储空间的深度,确定当前像素块中的像素行对应的地址间隔,地址间隔为当前像素块中的像素行和像素行相邻的像素行之间的地址间隔;基于地址间隔,确定当前像素块中的像素行的写入地址。
具体地,根据当前像素块中的像素行相邻的前一像素行的写入地址、以及当前像素块中的像素行对应的地址间隔,确定当前像素块中的像素行对应的写入地址。
在本申请实施例中,无论存储空间的深度是否等于2的整数次幂,当前像素块中的像素行的地址间隔均相同。示例性地,以目标图像的宽度数据为W、高度数据为H,像素块的宽度数据为BW、高度数据为BH,输出像素点坐标(x,y)为例。每一次从SRAM中读取数据,地址以一定间隔变化,假设地址间隔为inter_blk。
在另一种实施方式中,针对目标图像的图像数据中包括的每个当前像素行,若存储空间中的写入数据为像素行,存储空间中的读取数据为像素块,则基于像素块的宽度数据、目标图像的宽度数据、写入的当前像素行在目标图像中的像素块位置数据、以及存储空间的深度,确定当前像素行的地址间隔;基于地址间隔,确定当前像素行的写入地址。
具体地,根据当前像素行相邻的前一像素行的写入地址、以及当前像素行对应的地址间隔,确定当前像素行对应的写入地址。
同样地,无论存储空间的深度是否等于2的整数次幂,当前像素行的地址间隔均相同,地址间隔为inter_blk。
步骤S230,基于写入地址,将目标图像的图像数据写入存储空间。
示例性地,存储空间为SRAM中的存储空间。
进一步地,图像数据的写入和读取可分为三个阶段。第一阶段,将目标图像的第1像素行至第BH像素行写入存储空间;第二阶段,将目标图像的第BH+1像素行至第H像素行写入存储空间,在第二阶段执行的过程中,每写入BW个像素,读取控制单元就从SRAM中读取BW个像素;第三阶段,在写入第H像素行后,此时只进行读取操作。相关技术中,通常将图像数据写入一块存储空间,同时读取另一块存储空间中的图像数据,这种方法会占用较大的存储空间和硬件资源。
在本申请实施例中,通过选择SRAM作为存储器,能够减少数据写入延时,保证图像数据写入的实时性,避免占用过多硬件资源。同时,本申请实施例支持任意大小的目标图像的图像数据的写入,寻址方式简单。
在一示例性实施例中,写入控制单元控制图像数据写入SRAM以及写入的间隔地址计算;读取控制单元控制SRAM读取图像数据以及读取的间隔地址计算。
上文结合图1至图2,详细描述了本申请的方法实施例,下面结合图3和图4,详细描述本申请的装置实施例。应理解,方法实施例的描述与装置实施例的描述相互对应,因此,未详细描述的部分可以参见前面方法实施例。
图3所示为本申请一示例性实施例提供的数据读取装置的结构示意图。如图3所示,本申请实施例提供的数据读取装置30包括:
确定模块310,用于响应于数据读取命令,确定目标图像的图像数据所在的读取地址,目标图像的图像数据包括目标图像对应的像素块或像素行;
获取模块320,用于基于读取地址,从存储空间中获取目标图像的图像数据;
发送模块330,用于将目标图像的图像数据发送至数据处理单元。
在本申请一实施例中,确定模块310还用于,若存储空间中的写入数据为像素行,存储空间中的读取数据为像素块,或者,若存储空间中的写入数据为像素块,存储空间中的读取数据为像素行,则基于目标图像的宽度数据、目标图像的像素块对应的高度数据,确定存储空间的大小。
在本申请一实施例中,确定模块310还用于,针对目标图像的图像数据中包括的每个当前像素行,若存储空间中的写入数据为像素块,存储空间中的读取数据为像素行,并且存储空间的深度等于2的整数次幂,则基于像素块的高度数据、读取的当前像素行在目标图像中的像素块位置数据、以及存储空间的深度,确定当前像素行对应的地址间隔,地址间隔为当前像素行和当前像素行相邻的像素行之间的地址间隔;基于地址间隔,确定当前像素行的读取地址。
在本申请一实施例中,确定模块310还用于,针对目标图像的图像数据中包括的每个当前像素行,若存储空间中的写入数据为像素块,存储空间中的读取数据为像素行,并且存储空间的深度等于2的整数次幂,则基于像素块的高度数据、读取的当前像素行在目标图像中的像素块位置数据、以及存储空间的深度,确定当前像素行对应的地址间隔,地址间隔为当前像素行和当前像素行相邻的像素行之间的地址间隔;基于地址间隔,确定当前像素行的读取地址。
在本申请一实施例中,确定模块310还用于,针对目标图像的图像数据中包括的每个当前像素块,若存储空间中的写入数据为像素行,存储空间中的读取数据为像素块,并且存储空间的深度为2的整数次幂,则基于像素块的宽度数据、目标图像的宽度数据、读取的当前像素块中的像素行在目标图像中的像素块位置数据、以及存储空间的深度,确定当前像素块中的像素行的地址间隔,地址间隔包括当前像素块中的像素行和像素行相邻的像素行之间的地址间隔;基于地址间隔,确定当前像素块中的像素行的读取地址。
在本申请一实施例中,确定模块310还用于,若存储空间的深度不等于2的整数次幂,则获取当前像素块中的像素行以及和像素行相邻的像素行在存储空间的深度等于2的整数次幂的情况下、各自对应的地址间隔;确定当前像素块中的像素行在目标图像中的坐标数据和像素行在目标图像中的像素块位置数据的差值数据;基于当前像素块中的像素行以及和像素行相邻的像素行在存储空间的深度等于2的整数次幂的情况下、各自对应的地址间隔,差值数据,以及目标图像的宽度数据和当前像素块的宽度数据,确定当前像素块中的像素行的地址间隔;基于地址间隔,确定当前像素块中的像素行的读取地址。
在本申请一实施例中,确定模块310还用于,构建地址间隔表,地址间隔表中包括像素行对应的地址间隔;基于地址间隔表,得到目标图像数据所在的读取地址。
在本申请一实施例中,存储空间为静态随机存储器中的存储空间。
图4所示为本申请一示例性实施例提供的数据写入装置的结构示意图。
如图4所示,在本申请实施例中,数据写入装置40包括:
获取模块410,用于响应于数据写入命令,获取目标图像的图像数据,目标图像的图像数据包括目标图像对应的像素块或像素行;
确定模块420,用于确定目标图像的图像数据所在的写入地址;
写入模块430,用于基于写入地址,将目标图像的图像数据写入存储空间。
在本申请一实施例中,确定模块420还用于,针对目标图像的图像数据中包括的每个当前像素块,若存储空间中的写入数据为像素块,存储空间中的读取数据为像素行,则基于像素块的高度数据、写入的当前像素块中的像素行在目标图像中的像素块位置数据、以及存储空间的深度,确定当前像素块中的像素行对应的地址间隔,地址间隔为当前像素块中的像素行和像素行相邻的像素行之间的地址间隔;基于地址间隔,确定当前像素块中的像素行的写入地址。
在本申请一实施例中,确定模块420还用于,确定目标图像的图像数据所在的写入地址,包括:针对目标图像的图像数据中包括的每个当前像素行,若存储空间中的写入数据为像素行,存储空间中的读取数据为像素块,则基于像素块的宽度数据、目标图像的宽度数据、写入的当前像素行在目标图像中的像素块位置数据、以及存储空间的深度,确定当前像素行的地址间隔;基于地址间隔,确定当前像素行的写入地址。
下面,参考图5来描述根据本申请实施例的电子设备。图5所示为本申请一示例性实施例提供的电子设备的结构示意图。
如图5所示,电子设备50包括一个或多个处理器501和存储器502。
处理器501可以是中央处理单元(CPU)或者具有数据处理能力和/或指令执行能力的其他形式的处理单元,并且可以控制电子设备50中的其他组件以执行期望的功能。
存储器502可以包括一个或多个计算机程序产品,所述计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。所述易失性存储器例如可以包括随机存取存储器(RAM)和/或高速缓冲存储器(cache)等。所述非易失性存储器例如可以包括只读存储器(ROM)、硬盘、闪存等。在所述计算机可读存储介质上可以存储一个或多个计算机程序指令,处理器501可以运行所述程序指令,以实现上文所述的本申请的各个实施例的方法以及/或者其他期望的功能。在所述计算机可读存储介质中还可以存储诸如包括数据读取命令、图像数据所在的读取地址、像素块、像素行、数据写入命令、图像数据所在的写入地址等各种内容。
在一个示例中,电子设备50还可以包括:输入装置503和输出装置504,这些组件通过总线系统和/或其他形式的连接机构(未示出)互连。
该输入装置503可以包括例如键盘、鼠标等等。
该输出装置504可以向外部输出各种信息,包括数据读取命令、图像数据所在的读取地址、像素块、像素行、数据写入命令、图像数据所在的写入地址等。该输出装置504可以包括例如显示器、扬声器、打印机、以及通信网络及其所连接的远程输出设备等等。
当然,为了简化,图5中仅示出了该电子设备50中与本申请有关的组件中的一些,省略了诸如总线、输入/输出接口等等的组件。除此之外,根据具体应用情况,电子设备50还可以包括任何其他适当的组件。
除了上述方法和设备以外,本申请的实施例还可以是计算机程序产品,其包括计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本说明书上述描述的根据本申请各种实施例的方法中的步骤。
所述计算机程序产品可以以一种或多种程序设计语言的任意组合来编写用于执行本申请实施例操作的程序代码,所述程序设计语言包括面向对象的程序设计语言,诸如Java、C++等,还包括常规的过程式程序设计语言,诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。
此外,本申请的实施例还可以是计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本说明书上述描述的根据本申请各种实施例的方法中的步骤。
所述计算机可读存储介质可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以包括但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
以上结合具体实施例描述了本申请的基本原理,但是,需要指出的是,在本申请中提及的优点、优势、效果等仅是示例而非限制,不能认为这些优点、优势、效果等是本申请的各个实施例必须具备的。另外,上述公开的具体细节仅是为了示例的作用和便于理解的作用,而非限制,上述细节并不限制本申请为必须采用上述具体的细节来实现。
本申请中涉及的器件、装置、设备、系统的方框图仅作为例示性的例子并且不意图要求或暗示必须按照方框图示出的方式进行连接、布置、配置。如本领域技术人员将认识到的,可以按任意方式连接、布置、配置这些器件、装置、设备、系统。诸如“包括”、“包含”、“具有”等等的词语是开放性词汇,指“包括但不限于”,且可与其互换使用。这里所使用的词汇“或”和“和”指词汇“和/或”,且可与其互换使用,除非上下文明确指示不是如此。这里所使用的词汇“诸如”指词组“诸如但不限于”,且可与其互换使用。
还需要指出的是,在本申请的装置、设备和方法中,各部件或各步骤是可以分解和/或重新组合的。这些分解和/或重新组合应视为本申请的等效方案。
提供所公开的方面的以上描述以使本领域的任何技术人员能够做出或者使用本申请。对这些方面的各种修改对于本领域技术人员而言是非常显而易见的,并且在此定义的一般原理可以应用于其他方面而不脱离本申请的范围。因此,本申请不意图被限制到在此示出的方面,而是按照与在此公开的原理和新颖的特征一致的最宽范围。
为了例示和描述的目的已经给出了以上描述。此外,此描述不意图将本申请的实施例限制到在此公开的形式。尽管以上已经讨论了多个示例方面和实施例,但是本领域技术人员将认识到其某些变型、修改、改变、添加和子组合。
Claims (13)
1.一种数据读取方法,其特征在于,包括:
响应于数据读取命令,确定目标图像的图像数据所在的读取地址,所述目标图像的图像数据包括目标图像对应的像素块或像素行;
基于所述读取地址,从存储空间中获取所述目标图像的图像数据;
将所述目标图像的图像数据发送至数据处理单元。
2.根据权利要求1所述的方法,其特征在于,
若所述存储空间中的写入数据为所述像素行,所述存储空间中的读取数据为所述像素块,或者,若所述存储空间中的写入数据为所述像素块,所述存储空间中的读取数据为所述像素行,则基于所述目标图像的宽度数据、所述目标图像的像素块对应的高度数据,确定所述存储空间的大小。
3.根据权利要求1所述的方法,其特征在于,所述确定目标图像的图像数据所在的读取地址,包括:
针对所述目标图像的图像数据中包括的每个当前像素行,若所述存储空间中的写入数据为所述像素块,所述存储空间中的读取数据为所述像素行,并且所述存储空间的深度等于2的整数次幂,则基于所述像素块的高度数据、读取的所述当前像素行在所述目标图像中的像素块位置数据、以及所述存储空间的深度,确定所述当前像素行对应的地址间隔,所述地址间隔为所述当前像素行和所述当前像素行相邻的像素行之间的地址间隔;
基于所述地址间隔,确定所述当前像素行的读取地址。
4.根据权利要求3所述的方法,其特征在于,所述确定目标图像的图像数据所在的读取地址,还包括:
若所述存储空间的深度不等于2的整数次幂,则获取所述当前像素行以及所述当前像素行相邻的像素行在所述存储空间的深度等于2的整数次幂的情况下、各自对应的地址间隔;
确定所述当前像素行在所述目标图像中的坐标数据和所述当前像素行在所述目标图像中的像素块位置数据的差值数据;
基于所述当前像素行以及所述当前像素行相邻的像素行在所述存储空间的深度等于2的整数次幂的情况下、各自对应的地址间隔,以及所述差值数据,确定所述当前像素行对应的地址间隔;
基于所述地址间隔,确定所述当前像素行的读取地址。
5.根据权利要求1所述的方法,其特征在于,所述确定目标图像的图像数据所在的读取地址,包括:
针对所述目标图像的图像数据中包括的每个当前像素块,若所述存储空间中的写入数据为所述像素行,所述存储空间中的读取数据为所述像素块,并且所述存储空间的深度为2的整数次幂,则基于所述像素块的宽度数据、所述目标图像的宽度数据、读取的所述当前像素块中的像素行在所述目标图像中的像素块位置数据、以及所述存储空间的深度,确定所述当前像素块中的像素行的地址间隔,所述地址间隔包括所述当前像素块中的像素行和所述像素行相邻的像素行之间的地址间隔;
基于所述地址间隔,确定所述当前像素块中的像素行的读取地址。
6.根据权利要求5所述的方法,其特征在于,所述确定目标图像的图像数据所在的读取地址,还包括:
若所述存储空间的深度不等于2的整数次幂,则获取所述当前像素块中的像素行以及和所述像素行相邻的像素行在所述存储空间的深度等于2的整数次幂的情况下、各自对应的地址间隔;
确定所述当前像素块中的像素行在所述目标图像中的坐标数据和所述像素行在所述目标图像中的像素块位置数据的差值数据;
基于所述当前像素块中的像素行以及和所述像素行相邻的像素行在所述存储空间的深度等于2的整数次幂的情况下、各自对应的地址间隔,所述差值数据,以及所述目标图像的宽度数据和所述当前像素块的宽度数据,确定所述当前像素块中的像素行的地址间隔;
基于所述地址间隔,确定所述当前像素块中的像素行的读取地址。
7.根据权利要求1-6任一项所述的方法,其特征在于,所述确定目标图像的图像数据所在的读取地址,包括:
构建地址间隔表,所述地址间隔表中包括像素行对应的地址间隔;
基于所述地址间隔表,得到所述目标图像数据所在的读取地址。
8.根据权利要求1-6任一项所述的方法,其特征在于,所述存储空间为静态随机存储器中的存储空间。
9.一种数据写入方法,其特征在于,包括:
响应于数据写入命令,获取目标图像的图像数据,所述目标图像的图像数据包括目标图像对应的像素块或像素行;
确定所述目标图像的图像数据所在的写入地址;
基于所述写入地址,将所述目标图像的图像数据写入存储空间。
10.根据权利要求9所述的方法,其特征在于,所述确定所述目标图像的图像数据所在的写入地址,包括:
针对所述目标图像的图像数据中包括的每个当前像素块,若所述存储空间中的写入数据为所述像素块,所述存储空间中的读取数据为所述像素行,则基于所述像素块的高度数据、写入的当前像素块中的像素行在所述目标图像中的像素块位置数据、以及所述存储空间的深度,确定所述当前像素块中的像素行对应的地址间隔,所述地址间隔为所述当前像素块中的像素行和所述像素行相邻的像素行之间的地址间隔;
基于所述地址间隔,确定所述当前像素块中的像素行的写入地址。
11.根据权利要求9所述的方法,其特征在于,所述确定所述目标图像的图像数据所在的写入地址,包括:
针对所述目标图像的图像数据中包括的每个当前像素行,若所述存储空间中的写入数据为所述像素行,所述存储空间中的读取数据为所述像素块,则基于所述像素块的宽度数据、所述目标图像的宽度数据、写入的当前像素行在所述目标图像中的像素块位置数据、以及所述存储空间的深度,确定所述当前像素行的地址间隔;
基于所述地址间隔,确定所述当前像素行的写入地址。
12.一种计算机可读存储介质,其特征在于,所述存储介质存储有计算机程序,所述计算机程序用于执行上述权利要求1至11任一项所述的方法。
13.一种电子设备,其特征在于,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
所述处理器,用于执行上述权利要求1至11任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211719025.8A CN116033092A (zh) | 2022-12-30 | 2022-12-30 | 数据读取方法和数据写入方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211719025.8A CN116033092A (zh) | 2022-12-30 | 2022-12-30 | 数据读取方法和数据写入方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116033092A true CN116033092A (zh) | 2023-04-28 |
Family
ID=86080690
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211719025.8A Pending CN116033092A (zh) | 2022-12-30 | 2022-12-30 | 数据读取方法和数据写入方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116033092A (zh) |
-
2022
- 2022-12-30 CN CN202211719025.8A patent/CN116033092A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6819326B2 (en) | Memory address translation for image processing | |
CN113298695B (zh) | 一种图像处理组件和芯片、图像处理方法和存储介质 | |
CN111984189B (zh) | 神经网络计算装置和数据读取、数据存储方法及相关设备 | |
CN103347157A (zh) | 实时输入数字图像镜像存储的方法及装置 | |
CN111476718A (zh) | 一种图像放大方法、装置、存储介质及终端设备 | |
CN111028136B (zh) | 一种人工智能处理器处理二维复数矩阵的方法和设备 | |
CN111476852A (zh) | 阅读器刷新方法、计算设备及计算机存储介质 | |
CN110968585A (zh) | 面向列的存储方法、装置、设备及计算机可读存储介质 | |
CN111125628A (zh) | 人工智能处理器处理二维数据矩阵的方法和设备 | |
CN111757180A (zh) | 视频显示控制设备、视频显示系统、视频显示方法及装置 | |
US7401177B2 (en) | Data storage device, data storage control apparatus, data storage control method, and data storage control program | |
CN115035128A (zh) | 基于fpga的图像重叠滑窗分割方法及系统 | |
CN113840174B (zh) | 图像显示方法、系统及存储介质 | |
CN108024116B (zh) | 一种数据缓存方法及装置 | |
US6560686B1 (en) | Memory device with variable bank partition architecture | |
CN116033092A (zh) | 数据读取方法和数据写入方法 | |
US11847049B2 (en) | Processing system that increases the memory capacity of a GPGPU | |
CN107797757B (zh) | 影像处理系统中的快取存储器管理方法及装置 | |
CN110738615B (zh) | 鱼眼图像校正方法、装置、系统及可存储介质 | |
KR102247741B1 (ko) | 이미지 프로세서, 상기 이미지 프로세서의 동작 방법, 및 상기 이미지 프로세서를 포함하는 애플리케이션 프로세서 | |
CN106658121A (zh) | 一种机顶盒显示指纹信息的方法及系统 | |
US9978424B2 (en) | Image processing apparatus | |
CN113658049A (zh) | 一种图像转置的方法、设备和计算机可读存储介质 | |
CN117011146B (zh) | 图像缩放方法及其装置、电子设备、存储介质 | |
US11972504B2 (en) | Method and system for overlapping sliding window segmentation of image based on FPGA |
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 |