一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

数据处理方法及电子装置与流程

2022-02-22 18:55:19 来源:中国专利 TAG:


1.本公开的实施例涉及一种数据处理方法及电子装置。


背景技术:

2.基于忆阻器的存算一体技术有望突破经典计算系统的冯诺依曼架构瓶颈,带来硬件算力、能效的爆发式增长,进一步促进人工智能的发展和落地,是最具潜力的下一代硬件芯片技术之一。国内外企业、科研单位都投入大量人力物力,经过近十年的发展后,基于忆阻器的存算一体技术已逐渐从理论仿真阶段进入实际芯片、系统的原型演示阶段。


技术实现要素:

3.本公开至少一实施例提供一种基于忆阻器阵列的数据处理方法,其中,忆阻器阵列包括阵列排布的多个忆阻器单元,该方法包括:获取待处理对象,待处理对象包括阵列排布为m行n列的多个像素点,m和n分别为正整数;设置忆阻器阵列,将待处理对象中的每个像素点的值映射至忆阻器阵列中对应的忆阻器单元;通过忆阻器阵列计算待处理对象对应的中心坐标,忆阻器阵列被配置为可进行乘和运算,中心坐标包括第一坐标和第二坐标,其中,通过忆阻器阵列计算待处理对象对应的中心坐标,包括:将多个像素点中的每个像素点的值乘以像素点在待处理对象中所在行的行编号,以得到像素点对应的第一乘积,由此得到m*n个第一乘积,将m*n个第一乘积求和以得到第一分子值,将像素点的值乘以像素点在待处理对象中所在列的列编号,以得到像素点对应的第二乘积,由此得到m*n个第二乘积,将m*n个第二乘积求和以得到第二分子值;根据待处理对象中的每个像素点的值,执行基准值获取操作以得到基准值;对第一分子值和基准值的比值进行取整处理,以得到第一坐标;对第二分子值和基准值的比值进行取整处理,以得到第二坐标。
4.例如,在本公开至少一实施例提供的数据处理方法中,对第一分子值和基准值的比值进行取整处理,以得到第一坐标,包括:将第一分子值与基准值进行比较,响应于第一分子值大于基准值,以基准值为基础加数执行累加操作得到累加结果,重复累加操作直到累加结果首次大于第一分子值,将累加操作的重复次数加一作为所述第一坐标;响应于第一分子值小于或等于基准值,确定第一坐标为1。
5.例如,在本公开至少一实施例提供的数据处理方法中,对第二分子值和基准值的比值进行取整处理,以得到第二坐标,包括:将第二分子值与基准值进行比较,响应于第二分子值大于基准值,以基准值为基础加数执行累加操作得到累加结果,重复累加操作直到累加结果首次大于第二分子值,将累加操作的重复次数加一作为所述第二坐标;响应于第二分子值小于或等于基准值,确定第二坐标为1。
6.例如,在本公开至少一实施例提供的数据处理方法中,忆阻器阵列包括m行n列,忆阻器阵列还包括m条字线、m条源线和n条位线,m条字线以及m条源线分别与m行对应,n条位线分别与n列对应,m和n为正整数且分别大于或等于m和n,多个忆阻器单元中的每个在接收对应的字线所施加的开启信号被打开且在对应的位线上被施加读取电压而被读取,并且根
据忆阻器单元中的忆阻器的阻值产生对应的读取电流,其中,根据待处理对象中的每个像素点的值,执行基准值获取操作以得到基准值,包括:将开启信号施加至m行像素点对应的m行忆阻器单元的字线,在1个周期内,在n列像素点对应的n列忆阻器单元的位线施加所述读取电压,获取多个像素点中的每个像素点分别对应的忆阻器单元产生的1次读取电流,以得到多个读取电流,对多个读取电流进行加和处理以得到基准电流,将基准电流作为所述基准值。
7.例如,在本公开至少一实施例提供的数据处理方法中,将多个像素点中的每个像素点的值乘以像素点在待处理对象中所在行的行编号,以得到像素点对应的第一乘积,由此得到m*n个第一乘积,将m*n个第一乘积求和以得到第一分子值,包括:对于m行中的第i行,在连续m个周期内,在第i行对应的忆阻器单元的字线施加i个周期的所述开启信号,在连续m个周期内,在所有像素点对应的忆阻器单元的位线施加读取电压,对第i行中所有像素点对应的所有忆阻器单元产生的i次读取电流进行加和处理,以得到第i行对应的输出电流,其中,i为正整数,并且,将m行分别对应的m个输出电流相加以得到第一电流信号,将第一电流信号作为第一分子值。
8.例如,在本公开至少一实施例提供的数据处理方法中,将第一分子值与基准值进行比较,响应于第一分子值大于基准值,以基准值为基础加数执行累加操作得到累加结果,重复累加操作直到累加结果首次大于第一分子值,将累加操作的重复次数加一作为第一坐标值,包括:将第一电流信号与基准电流进行比较,响应于第一电流信号大于基准电流,执行累加操作得到累加电流,响应于第一电流信号大于累加电流,继续执行累加操作以得到更新的累加电流,重复执行累加操作直到更新的累加电流首次大于第一电流信号,将累加操作的重复次数加一作为所述第一坐标。
9.例如,在本公开至少一实施例提供的数据处理方法中,累加操作包括:执行基准值获取操作,并将基准值获取操作得到的基准电流与累加电流的当前值相加,以得到更新的累加电流。
10.例如,在本公开至少一实施例提供的数据处理方法中,将多个像素点中的每个像素点的值乘以所述像素点在待处理对象中所在列的列编号,以得到像素点对应的第二乘积,由此得到m*n个第二乘积,将m*n个第二乘积求和以得到第二分子值,包括:对于n列中的第j列,在连续n个周期内,在所有像素点对应的忆阻器单元的字线施加开启信号,在连续n个周期内,在第j列对应的忆阻器单元的位线施加j个周期的读取电压,对第j列中所有像素点对应的所有忆阻器单元产生的j次读取电流进行加和处理,以得到第j列对应的输出电流,其中,j为正整数,并且,将n列分别对应的n个输出电流相加以得到第二电流信号,将第二电流信号作为第二分子值。
11.例如,在本公开至少一实施例提供的数据处理方法中,将第二分子值与基准值进行比较,响应于第二分子值大于基准值,以基准值为基础加数执行累加操作得到累加结果,重复累加操作直到累加结果首次大于第二分子值,将累加操作的重复次数加一作为第二坐标值,包括:将第二电流信号与基准电流进行比较,响应于第二电流信号大于基准电流,执行累加操作得到累加电流,响应于第二电流信号大于累加电流,继续执行累加操作以得到更新的累加电流,重复执行累加操作直到更新的累加电流首次大于第二电流信号,将累加操作的重复次数加一作为所述第二坐标。
12.例如,在本公开至少一实施例提供的数据处理方法中,在执行基准值获取操作时,将开启信号的脉冲宽度设置为第一宽度,在计算第一分子值时,将开启信号的脉冲宽度设置为第二宽度,第二宽度是第一宽度的a倍,对第一分子值和基准值的比值进行取整处理,以得到第一坐标,包括:将第一分子值和基准值的比值进行向上取整处理,将向上取整处理的结果除以a作为第一坐标,其中,a为正整数。
13.例如,在本公开至少一实施例提供的数据处理方法中,在执行基准值获取操作时,将开启信号的脉冲宽度设置为第一宽度,在计算第二分子值时,将开启信号的脉冲宽度设置为第二宽度,第二宽度是第一宽度的b倍,对第二分子值和基准值的比值进行取整处理,以得到第二坐标,包括:将第二分子值和基准值的比值进行向上取整处理,将向上取整处理的结果除以b作为第二坐标,其中,b为正整数。
14.例如,在本公开至少一实施例提供的数据处理方法中,获取待处理对象,包括:获取待处理图像,该待处理图像包括至少一个连通域;将每个连通域作为待处理对象。
15.例如,在本公开至少一实施例提供的数据处理方法中,设置忆阻器阵列,将待处理对象中的每个像素点的值映射至忆阻器阵列中对应的忆阻器单元,包括:将至少一个连通域中的每个像素点的值映射至忆阻器阵列中对应的忆阻器单元,且使得任意两个连通域对应的各个忆阻器单元在行方向和列方向上均不存在交叠。
16.例如,本公开至少一实施例提供的数据处理方法还包括:将第一坐标与待处理对象的第一行在待处理图像中所在行的行编号相加再减一,以得到第一更新值,将第一坐标更新为第一更新值,将第二坐标与待处理对象的第一列在待处理图像中所在列的列编号相加再减一,以得到第二更新值,将第二坐标更新为第二更新值。
17.本公开至少一实施例提供一种电子装置,包括:忆阻器阵列;控制器,其中,控制器配置为:获取待处理对象,其中,待处理对象包括阵列排布的多个像素点;设置忆阻器阵列,将待处理对象中的每个像素点的值映射至忆阻器阵列中对应的忆阻器单元;通过忆阻器阵列计算待处理对象对应的中心坐标,其中,忆阻器阵列被配置为可进行乘和运算,中心坐标包括第一坐标和第二坐标,其中,通过忆阻器阵列计算待处理对象对应的中心坐标,包括:将多个像素点中的每个像素点的值乘以像素点在待处理对象中所在行的行编号,以得到像素点对应的第一乘积,由此得到m*n个第一乘积,将m*n个第一乘积求和以得到第一分子值,将像素点的值乘以像素点在待处理对象中所在列的列编号,以得到像素点对应的第二乘积,由此得到m*n个第二乘积,将m*n个第二乘积求和以得到第二分子值;根据待处理对象中的每个像素点的值,执行基准值获取操作以得到基准值;对第一分子值和基准值的比值进行取整处理,以得到第一坐标;对第二分子值和基准值的比值进行取整处理,以得到第二坐标。
18.例如,在本公开至少一实施例提供的电子装置还包括:处理模块,该处理模块包括累加单元和比较单元,比较单元配置为对第一分子值和基准值进行比较以及对第二分子值和基准值进行比较,累加单元配置为响应于第一分子值大于基准值,以基准值为基础加数执行累加操作得到累加结果,以及响应于第二分子值大于基准值,以基准值为基础加数执行累加操作得到累加结果,控制器执行对第一分子值和基准值的比值进行取整处理,以得到第一坐标时,包括执行以下操作:重复累加操作直到累加结果首次大于第一分子值,将累加操作的重复次数加一作为第一坐标,控制器执行对第二分子值和基准值的比值进行取整
处理,以得到第二坐标时,包括执行以下操作:重复累加操作直到累加结果首次大于第二分子值,将累加操作的重复次数加一作为第二坐标。
附图说明
19.为了更清楚地说明本公开实施例的技术方案,下面将对实施例的附图作简单地介绍,显而易见地,下面描述中的附图仅仅涉及本公开的一些实施例,而非对本公开的限制。
20.图1示出了一种忆阻器阵列的结构示意图;
21.图2示出了一种具有1t1r结构的忆阻器单元的示意图;
22.图3示出了一种具有2t2r结构的忆阻器单元的示意图;
23.图4示出了本公开至少一实施例提供的一种基于忆阻器阵列的数据处理方法的示意性流程图;
24.图5a示出了本公开至少一实施例提供的通过忆阻器阵列计算待处理对象对应的中心坐标的方法流程图;
25.图5b示出了本公开至少一实施例提供的忆阻器阵列的示意图;
26.图6a示出了一种待处理图像的映射状态示意图;
27.图6b示出了另一种待处理图像的映射状态示意图;
28.图7示出了本公开至少一实施例提供的基于忆阻器阵列实现数据处理方法的流程图;
29.图8a示出了本公开至少一实施例提供的一种基于忆阻器阵列计算质心的第一分子值的示意图;
30.图8b示出了本公开至少一实施例提供的一种基于忆阻器阵列计算质心的第二分子值的示意图;
31.图8c示出了本公开至少一实施例提供的一种基于忆阻器阵列计算第一坐标或第二坐标的示意图;
32.图9示出了本公开至少一实施例提供的一种电子装置的示意框图。
具体实施方式
33.为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例的附图,对本公开实施例的技术方案进行清楚、完整地描述。显然,所描述的实施例是本公开的一部分实施例,而不是全部的实施例。基于所描述的本公开的实施例,本领域普通技术人员在无需创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
34.除非另外定义,本公开使用的技术术语或者科学术语应当为本公开所属领域内具有一般技能的人士所理解的通常意义。本公开中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。同样,“一个”、“一”或者“该”等类似词语也不表示数量限制,而是表示存在至少一个。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也
可能相应地改变。
35.质心是质量中心的简称,指物质系统上被认为质量集中于此的一个假想点。
36.现有的图像质心计算的硬件实现平台仍旧是基于传统的冯诺依曼架构的cpu和gpu,这种计算单元与存储单元分离的架构使得在计算过程中,图像信息需要先从存储单元中取出,再送入到计算单元中,这种数据的存取过程造成了不必要的能耗和处理时间的浪费。
37.忆阻器(例如,阻变存储器、相变存储器、导电桥存储器等)是一种可以通过施加外部激励,调节其电导状态的非易失型器件。忆阻器作为一种二端器件,具有电阻可调节且非挥发的特性,因此被广泛应用于存算一体。根据基尔霍夫电流定律和欧姆定律,由忆阻器构成的阵列可以并行的完成乘累加计算,且存储和计算都发生在阵列各器件中。基于这种计算架构,可以实现不需要大量数据搬移的存算一体计算。
38.本公开至少一实施例提供一种基于忆阻器阵列的数据处理方法,其中,忆阻器阵列包括阵列排布的多个忆阻器单元,该方法包括:获取待处理对象,该待处理对象包括阵列排布为m行n列的多个像素点,m和n分别为正整数;设置忆阻器阵列,将待处理对象中的每个像素点的值映射至忆阻器阵列中对应的忆阻器单元;通过忆阻器阵列计算待处理对象对应的中心坐标,其中,忆阻器阵列被配置为可进行乘和运算,中心坐标包括第一坐标和第二坐标,通过忆阻器阵列计算待处理对象对应的中心坐标,包括:将多个像素点中的每个像素点的值乘以像素点在待处理对象中所在行的行编号,以得到像素点对应的第一乘积,由此得到m*n个第一乘积,将m*n个第一乘积求和以得到第一分子值,将像素点的值乘以像素点在待处理对象中所在列的列编号,以得到像素点对应的第二乘积,由此得到m*n个第二乘积,将m*n个第二乘积求和以得到第二分子值;根据待处理对象中的每个像素点的值,执行基准值获取操作以得到基准值;对第一分子值和基准值的比值进行取整处理,以得到第一坐标;对第二分子值和基准值的比值进行取整处理,以得到第二坐标。
39.本公开至少一实施例还提供对应于上述基于忆阻器阵列的数据处理方法的电子装置。
40.本公开上述实施例提供的基于忆阻器阵列的数据处理方法能够通过忆阻器阵列存储图像信息,完成图像的中心坐标计算,利用忆阻器阵列的存算一体优势,减少不必要的数据搬运过程,减小硬件实现的能耗和延迟开销。
41.例如,在本公开中,待处理对象对应的中心坐标可以包括形心坐标或者质心坐标。
42.下面结合附图对本公开的实施例进行详细说明,但是本公开并不限于这些具体的实施例。
43.图1示出了一种忆阻器阵列结构的示意图。如图1所示,该忆阻器阵列由多个忆阻器单元构成,该多个忆阻器单元构成一个m行n列的阵列,m和n均为正整数。每个忆阻器单元包括开关元件和一个或多个忆阻器。在图1中,wl《1》、wl《2》
……
wl《m》分别表示第一行、第二行
……
第m行的字线,每一行的忆阻器单元电路中的开关元件的控制极(例如,晶体管的栅极)和该行对应的字线连接;bl《1》、bl《2》
……
bl《n》分别表示第一列、第二列
……
第n列的位线,每列的忆阻器单元电路中的忆阻器和该列对应的位线连接;sl《1》、sl《2》
……
sl《m》分别表示第一行、第二行
……
第m行的源线,每一行的忆阻器单元电路中的晶体管的源极和该行对应的源线连接。
44.例如,根据基尔霍夫定律,通过设置忆阻器单元的状态(例如,阻值)并且在字线与位线施加相应的字线信号与位线信号,上述忆阻器阵列可以并行地完成乘累加计算。上述乘累加计算过程利用物理定律实现,不同于布尔逻辑的数字电路实现方式,该计算过程不需要频繁访存搬移权重数据,解决了经典计算系统的冯诺依曼瓶颈,可以实现高算力、高能效的智能计算任务。
45.图1的忆阻器阵列中的忆阻器单元例如可以为1t1r结构或者2t2r结构,其中,1t1r结构的忆阻器单元包括一个开关晶体管和一个忆阻器,2t2r结构的忆阻器单元包括两个开关晶体管和两个忆阻器。本公开对于忆阻器器件的类型、结构等没有限制。
46.需要说明的是,本公开的实施例中采用的晶体管均可以为薄膜晶体管或场效应晶体管(例如,mos场效应晶体管)或其他特性相同的开关器件。这里采用的晶体管的源极、漏极在结构上可以是对称的,所以其源极、漏极在结构上可以是没有区别的。本公开的实施例对采用的晶体管的类型不作限定。
47.图2示出了一种具有1t1r结构的忆阻器单元的示意图。如图2所示,1t1r结构的忆阻器单元包括一个晶体管m1和一个忆阻器r1。
48.例如当晶体管m1采用n型晶体管时,其栅极和字线端wl连接,例如字线端wl输入高电平时晶体管m1导通;晶体管m1的第一极可以是源极并被配置为和源线端sl连接,例如晶体管m1可以通过源线端sl接收复位电压;晶体管m1的第二极可以是漏极并被配置为和忆阻器r1的第二极(例如,负极)连接,忆阻器r1的第一极(例如,正极)和位线端bl连接,例如忆阻器r1可以通过位线端bl接收置位电压。例如当晶体管m1采用p型晶体管时,其栅极和字线端wl连接,例如字线端wl输入低电平时晶体管m1导通;晶体管m1的第一极可以是漏极并被配置为和源线端sl连接,例如晶体管m1可以通过源线端sl接收复位电压;晶体管m1的第二极可以是源极并被配置为和忆阻器r1的第二极(例如,负极)连接,忆阻器r1的第一极(例如,正极)和位线端bl连接,例如忆阻器r1可以通过位线端bl接收置位电压。需要说明的是,阻变存储器结构还可以实现为其他结构,例如忆阻器r1的第二极与源线端sl连接的结构,本公开的实施例对此不作限制。
49.下面各实施例均以晶体管m1采用n型晶体管为例进行说明。
50.字线端wl的作用是对晶体管m1的栅极施加相应电压,从而控制晶体管m1导通或关闭。在对忆阻器r1进行操作时,例如进行置位操作或复位操作,均需要先开启晶体管m1,即需要通过字线端wl对晶体管m1的栅极施加导通电压。在晶体管m1导通后,例如,可以通过在源线端sl和位线端bl向忆阻器r1施加电压,以改变忆阻器r1的阻态。例如,可以通过位线端bl施加置位电压,以使得该忆阻器r1处于低阻态;又例如,可以通过源线端sl施加复位电压,以使得该忆阻器r1处于高阻态。例如,高阻态的电阻值为低阻态的电阻值100倍以上,例如1000倍以上。
51.需要说明的是,通过字线端wl和位线端bl同时施加电压,可以使得忆阻器r1的电阻值越来越小,即忆阻器r1从高阻态变为低阻态,将使得忆阻器r1从高阻态变为低阻态的操作称为置位操作;通过字线端wl和源线端sl同时施加电压,可以使得忆阻器r1的电阻值越来越大,即忆阻器r1从低阻态变为高阻态,将使得忆阻器r1从低阻态变为高阻态的操作称为复位操作。例如,忆阻器r1具有阈值电压,在输入电压幅度小于忆阻器r1的阈值电压时,不会改变忆阻r1的电阻值(或电导值)。在这种情况下,可以通过输入小于阈值电压的电
压,利用忆阻器r1的电阻值(或电导值)进行计算;可以通过输入大于阈值电压的电压,改变忆阻器r1的电阻值(或电导值)。
52.图3示出了一种具有2t2r结构的忆阻器单元的示意图。如图3所示,2t2r结构的忆阻器单元包括两个晶体管m1和m2以及两个忆阻器r1和r2。下面以晶体管m1和m2均采用n型晶体管为例进行说明。
53.晶体管m1的栅极和字线端wl1相连,例如m1的字线端wl1输入高电平时晶体管m1导通,晶体管m2的栅极和字线端wl2相连,例如m2的字线端wl2输入高电平时晶体管m2导通;晶体管m1的第一极可以是源极并被配置为和源线端sl连接,例如晶体管m1可以通过源线端sl接收复位电压,晶体管m2的第一极可以是源极并被配置为和源线端sl连接,例如晶体管m2可以通过源线端sl接收复位电压,晶体管m1的第一极与晶体管m2的第一极相连,并一起连接至源线端sl。晶体管m1的第二极可以是漏极并被配置为和忆阻器r1的第二极(例如,负极)连接,忆阻器r1的第一极(例如,正极)和位线端bl1连接,例如忆阻器r1可以通过位线端bl1接收置位电压;晶体管m2的第二极可以是漏极并被配置为和忆阻器r2的第二极(例如,负极)连接,忆阻器r2的第一极(例如,正极)和位线端bl2连接,例如忆阻器r2可以通过位线端bl2接收置位电压。
54.需要说明的是,2t2r结构的忆阻器单元中的晶体管m1和m2也可以均采用p型晶体管,这里不再赘述。
55.图4示出了本公开至少一实施例提供的一种基于忆阻器阵列的数据处理方法的示意性流程图。
56.例如,如图4所示,本公开实施例提供的基于忆阻器阵列的数据处理方法包括步骤s401至s403,并且,该忆阻器阵列包括阵列排布的多个忆阻器单元且配置为能进行乘和运算(也即乘积累加运算,将乘法的乘积结果进行累加处理,以得到乘加结果累加后的和值),例如,该忆阻器阵列的结构示意图如图1或下文中的图5b所示,每个忆阻器单元可以为如图2所示的1t1r结构或者如图3所示的2t2r结构。
57.步骤s401:获取待处理对象。
58.例如,待处理对象包括阵列排布的多个像素点。
59.步骤s402:设置忆阻器阵列,将待处理对象中的每个像素点的值映射至忆阻器阵列中对应的忆阻器单元。
60.步骤s403:通过忆阻器阵列计算待处理对象对应的中心坐标,这里,忆阻器阵列被配置为可进行乘和运算。
61.上述实施例的数据处理方法通过忆阻器阵列计算待处理对象对应的中心坐标,减少了很多不必要的数据搬运过程,减小了硬件实现的能耗和延迟开销。
62.下面对上述步骤s401~s403进行更进一步的示例性说明。
63.例如,待处理对象可以是完整的待处理图像,例如,待处理图像包括阵列排布的多个像素点。该待处理对象可以是之前预存的图像,或者是当前获取的彩色或灰度图像。
64.例如,待处理对象还可以是待处理图像中的一个连通域。例如,步骤s401可以包括:获取待处理图像,其中,待处理图像包括至少一个连通域;将每个连通域作为待处理对象。
65.因此,本公开所处理的待处理对象可以是部分或全部图像,并可以计算部分或全
部图像分别对应的中心坐标。在步骤s402,设置忆阻器阵列,将待处理对象中的每个像素点的值映射至忆阻器阵列中对应的忆阻器单元。
66.例如,可以将图像的各个像素点的值以电导形式存储在忆阻器阵列中,利用忆阻器阵列的存算一体优势,高效、快速地实现图像形态学操作。
67.例如,在步骤s402中,忆阻器单元为2t2r结构,则像素点的值可以被映射为2t2r结构的忆阻器单元的电导值,整个2t2r结构的忆阻器单元由两个1t1r结构的忆阻器单元构成。2t2r结构的忆阻器单元例如为图3所示的忆阻器单元,等效于电导值为的忆阻器单元。通过对两个1t1r结构的忆阻器单元进行编程,可以使得2t2r结构的忆阻器单元的等效电导值对应到不同的像素点的值。
68.例如,当待处理对象中的每个像素点存储的是密度信息时,待处理对象对应的中心坐标为质心坐标,忆阻器单元存储的是多位宽的密度信息。
69.图5a示出了本公开至少一实施例提供的通过忆阻器阵列计算待处理对象对应的中心坐标的流程图。中心坐标包括第一坐标和第二坐标,待处理对象包括m行n列,m和n分别为正整数。
70.例如,在本公开中,第一坐标表示待处理对象对应的中心坐标中的横坐标,第二坐标表示待处理对象对应的中心坐标中的纵坐标,步骤s403包括图5a所示的步骤s501~s505。
71.步骤s501:针对待处理对象中的多个像素点中的每个像素点,将每个像素点的值乘以像素点在待处理对象中所在行的行编号,以得到每个像素点对应的第一乘积,由此得到m*n个第一乘积,将m*n个第一乘积求和以得到第一分子值。
72.步骤s502:针对待处理对象中的多个像素点中的每个像素点,将每个像素点的值乘以像素点在待处理对象中所在列的列编号,以得到每个像素点对应的第二乘积,由此得到m*n个第二乘积,将m*n个第二乘积求和以得到第二分子值。
73.步骤s503:根据待处理对象中的每个像素点的值,执行基准值获取操作以得到基准值。
74.步骤s504:对第一分子值和基准值的比值进行取整处理,以得到第一坐标。
75.步骤s505:对第二分子值和基准值的比值进行取整处理,以得到第二坐标。
76.例如,在执行步骤s501之前,可以先获得待处理对象的各行的行编号以及各列的列编号。
77.例如,待处理对象包括阵列排布为m行n列的多个像素点,待处理对象中的第一行的行编号为1,待处理对象中的第二行的行编号为2,
……
,待处理对象中的最后一行的行编号为m;例如,待处理对象中的第一列的列编号为1,待处理对象中的第二列的列编号为2,
……
,待处理对象中的最后一列的列编号为n。
78.例如,待处理对象对应的质心坐标的计算公式如下所示:
79.[0080][0081]
这里,x表示质心的第一坐标(也即横坐标),y表示质心的第二坐标(也即纵坐标),row_0表示待处理对象中的第一行的行编号,col_0表示待处理对象中的第一列的列编号,row_end表示待处理对象的最后一行的行编号,col_end表示待处理对象的最后一列的列编号,row表示每个像素点在待处理对象中的所在行的行编号,col表示每个像素点在待处理对象中的所在列的列编号,m(row,col)表示待处理对象中第row行,col列的像素点的值。
[0082]
在计算第一坐标时,将每个像素点的值乘以该像素点在待处理对象中所在行的行编号,以得到第一乘积,并将待处理对象中所有像素点分别对应的第一乘积相加,将加和结果作为第一分子值,也即公式(1)中的横坐标分子值。
[0083]
例如,待处理对象包括m行和n列,待处理对象中共有m*n个像素点。如前所述,待处理对象的m行被依次编号为1,

,m,m为正整数。例如,对于待处理对象的第一行,其行编号为1,第一行中的每个像素点对应的第一乘积为该像素点的值乘以1。由于待处理对象中共有m*n个像素点,对每个像素点执行上述操作,则最终得到m*n个乘积,将m*n个乘积相加则得到第一分子值。
[0084]
类似地,在计算第二坐标时,将每个像素点的值乘以该像素点在待处理对象中所在列的列编号,以得到第二乘积,并将待处理对象中所有像素点分别对应的第二乘积相加,将加和结果作为第二分子值,也即公式(2)中的纵坐标分子值。
[0085]
如前所述,待处理对象的n列被依次编号为1,

,n,n为正整数。例如,对于待处理对象的第一列,其列编号为1,第一列中的每个像素点对应的第二乘积为该像素点的值乘以1。由于待处理对象中共有m*n个像素点,对每个像素点执行上述操作,则最终得到m*n个乘积,将m*n个乘积相加则得到第二分子值。
[0086]
例如,将待处理对象中的每个像素点的值进行加和,以得到基准值,也即公式(1)和公式(2)中的分母值。
[0087]
之后,参考公式(1)将第一分子值和基准值相除以得到横坐标,参考公式(2)第一分子值和基准值相除以得到纵坐标。目前,这一除法操作通常在额外提供的cpu等单元中执行,也即中心坐标计算过程仍然需要其他硬件平台的参与,这种方式会降低计算能效,无法完全发挥忆阻器阵列的能耗低、速度快、非挥发等优势。
[0088]
因此,在本公开至少一实施例提供的数据处理方法中,在得到第一分子值、第二分子值和基准值后,通过忆阻器阵列实现对第一分子值和基准值的比值进行取整处理,得到第一坐标,以及对第二分子值和基准值的比值进行取整处理,得到第二坐标,从而实现在忆阻器阵列上完成计算中心坐标的全过程,不需要额外在cpu等其他单元中执行除法操作,进一步提升系统能效,进一步降低能耗,节约处理时间。
[0089]
在本公开的一些实施例中,忆阻器阵列包括m行n列忆阻器单元,也即每行有n个忆阻器单元,每列有m个忆阻器单元。忆阻器阵列还包括m条字线、m条源线和n条位线,m条字线以及m条源线分别与m行对应,n条位线分别与n列对应,m和n为正整数且分别大于或等于m和n。
[0090]
图5b示出了本公开至少一实施例提供的一种忆阻器阵列的示意图。
[0091]
如图5b所示,该忆阻器阵列包括阵列排布的多个忆阻器单元,例如包括50行50列
忆阻器单元。多个忆阻器单元可以为图2所示的1t1r结构或者图3所示的2t2r结构。当然,需要说明的是,忆阻器阵列根据需要也可以包括更多行、更多列的忆阻器单元,本公开对此不作限制。
[0092]
例如,待处理对象为图像,且包括阵列排布的多个像素点,将待处理对象中每个像素点的值映射至忆阻器阵列中对应的忆阻器单元。例如,忆阻器阵列中的每个方框中的数值表示该忆阻器所对应的像素点的值,例如,位于忆阻器阵列中第一行第一列的忆阻器的电导值为15,表示待处理对象中的第一行第一列的像素点的值为15,以此类推。
[0093]
例如,该忆阻器阵列还包括50条字线(如图5b中的wl1、wl2、
……
wl50)、50条源线(如图5b中的sl1、sl2、
……
sl50)和50条位线(如图5b中的bl1、bl2、
……
bl50),50条字线以及50条源线分别与50行对应,50条位线分别与50列对应。
[0094]
例如,50条源线通过开关元件与积分器电连接,由积分器将忆阻器单元的源线输出的电流转换为对应的电压信号并进行累加,以得到输出电压。例如,积分器与忆阻器单元的50条源线电连接,积分器用于将忆阻器单元的50条源线输出的电流转换为对应的电压并进行累加,以得到输出电压。例如,比较器与积分器电连接,比较器用于对来自积分器的输出电压信号和参考电压vref进行比较,例如,参考电压vref可以是第一分子值或第二分子值对应的电压信号。
[0095]
例如,多个忆阻器单元中的每个在接收对应的字线所施加的开启信号被打开且在对应的位线上被施加读取电压而被读取,并且根据忆阻器单元中的忆阻器的阻值产生对应的读取电流。忆阻器阵列的源线被施加脉冲信号而被打开,从而源线的电流被输入到积分器中。如图5b所示,输入到50条字线的脉冲电压为v
wl1
~v
wl50
,输入到50条位线的脉冲电压为v
bl1
~v
bl50
,输入到50条源线的脉冲电压为v
wl1
~v
wl50
。在此实施例中,需要同时开启同一行的源线和字线,以将施加了开启信号而被打开的一行忆阻器单元产生的电流信号通过对应的源线输入到积分器中。
[0096]
例如,忆阻器单元中的忆阻器可以存储多位宽数据,此时忆阻器包括多个状态,各个状态分别对应不同的忆阻器的阻值,从而忆阻器单元在被读取时根据忆阻器的不同阻值产生不同的读取电流。
[0097]
下面参考图5b或图1所示的忆阻器阵列,具体说明步骤s501-s505的具体执行过程。需要说明的是,s501-s505可以顺序执行,也可以按调整后的其他次序执行,本公开的实施例对各个步骤的执行顺序不作限制,可以根据实际情况调整。在本公开的一些实施例中,步骤s501可以包括:对于m行中的第i行,在连续m个周期内,在第i行对应的忆阻器单元的字线施加i个周期的开启信号,在连续m个周期内,在所有像素点对应的忆阻器单元的位线施加读取电压,对第i行中所有像素点对应的所有忆阻器单元产生的i次读取电流进行加和处理,以得到第i行对应的输出电流,其中,i为正整数,并且,将m行分别对应的m个输出电流相加以得到第一电流信号,将第一电流信号作为第一分子值。
[0098]
例如,根据基尔霍夫定律,忆阻器单元的源线电流,也即为输入电压和电导矩阵的乘积。例如,待处理对象的各个像素点的值以电导形式存储在忆阻器阵列中,每个像素点在待处理对象中所在行的行编号被转换成不同个数的高电平脉冲输入到对应的字线端。例如,在连续m个周期内,待处理对象中的第一行所有像素点对应的忆阻器单元的字线端输入一个周期的开启信号,待处理对象中的第二行所有像素点对应的忆阻器单元的字线端输入
两个周期的开启信号,待处理对象中的第i行所有像素点对应的忆阻器单元的字线端输入i个周期的开启信号,以此类推。
[0099]
例如,在第1个周期内,向待处理对象中所有像素点对应的忆阻器单元对应的字线施加开启信号;在第2个周期内,向待处理对象中除第一行以外的(m-1)行中的所有像素点对应的忆阻器单元的字线施加开启信号,第一行中所有像素点对应的忆阻器单元的字线不施加开启信号;在第3个周期内,向待处理对象中除第一行、第二行以外的(m-2)行中的所有像素点对应的忆阻器单元的字线施加开启信号,第一行和第二行中所有像素点对应的忆阻器单元的字线不施加开启信号,以此类推。
[0100]
例如,在连续m个周期内,待处理对象中的所有像素点对应的忆阻器单元的位线端均输入高电平(例如,高电平的幅值为0.15v左右),待处理对象中的第i行对应的所有像素点对应的忆阻器单元的字线端输入i个周期的读取电压,由此实现对第i行中所有像素点的值读取了i次。
[0101]
例如,在连续m个周期内,待处理对象对应的阵列区域(待处理对象中所有像素点对应的忆阻器单元构成阵列区域)中的所有源线得到的电流之和即为所有像素点的值乘以所在行的行编号之和,也即第一分子值。
[0102]
需要说明的是,本公开并不限制读取电流的产生顺序以及施加开启信号的顺序,只要保证在连续m个周期内使得第i行中所有像素点对应的忆阻器单元产生i次读取电流即可。
[0103]
在本公开的一些实施例中,步骤s502可以包括:对于n列中的第j列,在连续n个周期内,在所有像素点对应的忆阻器单元的字线施加开启信号,在连续n个周期内,在第j列对应的忆阻器单元的位线施加j个周期的读取电压,对第j列中所有像素点对应的所有忆阻器单元产生的j次读取电流进行加和处理,以得到第j列对应的输出电流,其中,j为正整数,并且,将n列分别对应的n个输出电流相加以得到第二电流信号,将第二电流信号作为第二分子值。
[0104]
例如,每个像素点在待处理对象中所在列的列编号被转换成不同个数的高电平脉冲输入到对应的位线端,例如,在连续n个周期内,待处理对象中的第一列所有像素点对应的忆阻器单元的位线输入一个周期的读取电压,待处理对象中的第二列所有像素点对应的忆阻器单元的位线端输入两个周期的读取电压,待处理对象中的第j列所有像素点对应的忆阻器单元的位线端输入j个周期的读取电压,以此类推。
[0105]
例如,在第1个周期内,向待处理对象中所有像素点对应的忆阻器单元对应的位线施加读取电压;在第2个周期内,向待处理对象中除第一列以外的(n-1)列中的所有像素点对应的忆阻器单元对应的位线施加读取电压,第一列中所有像素点对应的忆阻器单元的位线不施加读取电压;在第3个周期内,向待处理对象中除第一列、第二列以外的(n-2)列中的所有像素点对应的忆阻器单元的位线施加读取电压,第一列和第二列中所有像素点对应的忆阻器单元的位线不施加读取电压,以此类推。
[0106]
例如,在连续n个周期内,待处理对象对应的所有像素点对应的忆阻器单元的字线端均输入开启信号(例如,开启信号的幅值为5v左右),待处理对象中的第j列对应的所有像素点对应的忆阻器单元的位线端输入j个周期的读取电压,由此实现对第j列中所有像素点的值读取了j次。
[0107]
例如,在连续n个周期内,待处理对象对应的阵列区域中的所有源线得到的电流之和即为所有像素点的值乘以所在列的列编号之和,也即第二分子值。
[0108]
需要说明的是,本公开并不限制读取电流的产生顺序以及施加读取电压的顺序,只要保证在连续n个周期内使得第j列中所有像素点对应的忆阻器单元产生j次读取电流即可。
[0109]
在获得待处理对象对应的第一分子值和第二分子值后,依据公式(1)和公式(2),还需要获得分母值,也即所有像素点之和。
[0110]
在本公开的一些实施例中,步骤s503可以包括:将开启信号施加至m行像素点对应的m行忆阻器单元的字线,在1个周期内,在n列像素点对应的n列忆阻器单元的位线施加读取电压,获取多个像素点中的每个像素点分别对应的忆阻器单元产生的1次读取电流,以得到多个读取电流,对多个读取电流进行加和处理以得到基准电流,将基准电流作为基准值。
[0111]
需要说明的是,基准值为公式(1)和公式(2)中的分母值。
[0112]
当然,获取多个像素点中的每个像素点分别对应的忆阻器单元产生的1次读取电流也不限制为1个周期内生成,也即此时位线、字线的控制方式也不限于如上所述的方式,所有像素点分别对应的忆阻器单元产生的1次读取电流也可以在多个周期内得到,只要在多个周期内,每个像素点分别对应的忆阻器单元仅产生1次读取电流即可。
[0113]
需要说明的是,获得第一分子值、第二分子值和分母值的顺序可以根据需要任意设置,例如,也可以先根据上述方法得到分母值,之后得到第二分子值,最后得到第一分子值,本公开对分母值、第一分子值、第二分子值的计算顺序不作限制。
[0114]
例如,在获得第一分子值、第二分子值和基准值后,可以根据步骤s504得到待处理对象对应的第一坐标以及根据步骤s505得到待处理对象对应的第二坐标。
[0115]
例如,在本公开至少一实施例提供的数据处理方法中,步骤s504中的取整处理为向上取整处理,第一坐标的计算公式如公式(3)所示:
[0116][0117]
其中,a表示第一坐标,e1表示第一分子值,b表示基准值,表示向上取整函数。
[0118]
在本公开的一些实施例中,步骤s504可以包括:将第一分子值与基准值进行比较,响应于第一分子值大于基准值,以基准值为基础加数执行累加操作得到累加结果,重复累加操作直到累加结果首次大于第一分子值,将累加操作的重复次数加一作为第一坐标;响应于第一分子值小于或等于基准值,确定第一坐标为1。
[0119]
例如,根据步骤s501计算得到的第一分子值为20,根据步骤s503计算得到的基准值为8,此时第一分子值大于基准值,则执行累加操作,也即以基准值8作为基础加数执行一次累加运算,得到累加结果16,此时累加结果仍然小于第一分子值,继续执行一次累加操作,也即将基准值8与当前累加结果进行加法运算,得到累加结果24,此时累加结果首次大于第一分子值,累加操作的重复次数为2,将累加操作的重复次数加一作为第一坐标,也即第一坐标为3。
[0120]
例如,第一分子值为8,基准值为10,将第一分子值与基准值进行比较,由于第一分子值小于基准值,因此确定第一坐标为1。
[0121]
例如,将第一分子值与基准值进行比较,响应于第一分子值大于基准值,以基准值
为基础加数执行累加操作得到累加结果,重复累加操作直到累加结果首次大于第一分子值,将累加操作的重复次数加一作为所述第一坐标值,可以包括:将第一电流信号与基准电流进行比较,响应于第一电流信号大于基准电流,执行累加操作得到累加电流,响应于第一电流信号大于累加电流,继续执行累加操作以得到更新的累加电流,重复执行累加操作直到更新的累加电流首次大于第一电流信号,将累加操作的重复次数加一作为第一坐标。
[0122]
例如,上述累加操作可以包括:执行基准值获取操作,并将基准值获取操作得到的基准电流与累加电流的当前值相加,以得到更新的累加电流。
[0123]
例如,在一些实施例中,也可以对电流信号进行积分得到电压信号,之后将第一电流信号积分得到的第一电压信号与基准电流经过积分器得到的基准电压进行比较,响应于第一电压信号大于基准电压,执行累加操作得到累加电压,响应于第一电压信号大于累加电压,继续执行累加操作以得到更新的累加电压,重复执行累加操作直到更新的累加电压首次大于第一电压信号,将累加操作的重复次数加一作为第一坐标。
[0124]
例如,在第1个周期内,向待处理对象对应的阵列区域中的所有字线施加开启信号,所有位线施加1个周期的读取电压,将阵列区域中所有源线产生的读取电流进行加和处理,得到基准电流。之后,将基准电流与第一电流信号进行比较,若第一电流信号小于基准电流,则确定第一坐标为1;若第一电流信号大于基准电流,则执行累加操作,也即在第2个周期中,继续向待处理对象对应的阵列区域中的所有字线施加开启信号,所有位线施加1个周期的读取电压,将阵列区域中所有源线产生的读取电流进行加和处理并与基准电流进行累加,得到累加电流,此时累加电流为基准电流的2倍。之后,将累加电流与第一电流信号进行比较,若第一电流信号小于累加电流,则确定第一坐标为2(累加次数加1),若第一电流信号仍大于累加电流,继续执行累加操作,也即在第3个周期中,向待处理对象对应的阵列区域中的所有字线施加开启信号,所有位线施加1个周期的读取电压,将阵列区域中所有源线产生的读取电流进行加和处理并与累加电流进行累加,得到更新的累加电流,此时更新的累加电流为基准电流的3倍。之后,将更新的累加电流与第一电流信号进行比较,若第一电流信号仍大于更新的累加电流,继续执行上述累加操作。例如,在执行了g次上述累加操作后,所得到的更新的累加电流为基准电流的g 1倍,更新的累加电流首次大于第一电流信号,确定第一坐标为g 1,这里,g为正整数。
[0125]
在本公开的一些实施例中,步骤s505可以包括:将第二分子值与基准值进行比较,响应于第二分子值大于基准值,以基准值为基础加数执行累加操作得到累加结果,重复累加操作直到累加结果首次大于第二分子值,将累加操作的重复次数加一作为所述第二坐标;响应于第二分子值小于或等于基准值,确定第二坐标为1。
[0126]
例如,根据步骤s502计算得到的第二分子值为10,根据步骤s503计算得到的基准值为4,此时第二分子值大于基准值,则执行累加操作,也即以基准值4作为基础加数执行一次累加操作,得到累加结果8,此时累加结果仍然小于第二分子值,继续执行一次累加操作,也即将基准值4与当前累加结果进行加法运算,得到累加结果12,此时累加结果首次大于第二分子值,累加操作的重复次数为2,将累加操作的重复次数加一作为第二坐标,也即第二坐标为3。
[0127]
例如,第二分子值为10,基准值为10,将第二分子值与基准值进行比较,由于第二分子值等于基准值,因此确定第二坐标为2。
[0128]
例如,将第二分子值与基准值进行比较,响应于第二分子值大于基准值,以基准值为基础加数执行累加操作得到累加结果,重复累加操作直到累加结果首次大于第二分子值,将累加操作的重复次数加一作为第二坐标值,可以包括:将第二电流信号与基准电流进行比较,响应于第二电流信号大于基准电流,执行累加操作得到累加电流,响应于第二电流信号大于累加电流,继续执行累加操作以得到更新的累加电流,重复执行累加操作直到更新的累加电流首次大于第二电流信号,将累加操作的重复次数加一作为第二坐标。
[0129]
例如,在一些实施例中,也可以对电流信号进行积分得到电压信号,之后将第二电流信号积分得到的第二电压信号与基准电流积分得到的基准电压进行比较,响应于第二电压信号大于基准电压,执行累加操作得到累加电压,响应于第二电压信号大于累加电压,继续执行累加操作以得到更新的累加电压,重复执行累加操作直到更新的累加电压首次大于第二电压信号,将累加操作的重复次数加一作为第二坐标。
[0130]
例如,在第1个周期内,向待处理对象对应的阵列区域中的所有字线施加开启信号,所有位线施加1个周期的读取电压,将阵列区域中所有源线产生的读取电流进行加和处理,得到基准电流。之后,将基准电流与第二电流信号进行比较,若第二电流信号小于基准电流,则确定第二坐标为1;若第二电流信号大于基准电流,则执行累加操作,也即在第2个周期中,继续向待处理对象对应的阵列区域中的所有字线施加开启信号,所有位线施加1个周期的读取电压,将阵列区域中所有源线产生的读取电流进行加和处理并与基准电流进行累加,得到累加电流,此时累加电流为基准电流的2倍。之后,将累加电流与第二电流信号进行比较,若第二电流信号小于累加电流,则确定第二坐标为2(累加次数加1),若第二电流信号仍大于累加电流,继续执行累加操作,也即在第3个周期中,向待处理对象对应的阵列区域中的所有字线施加开启信号,所有位线施加1个周期的读取电压,将阵列区域中所有源线产生的读取电流进行加和处理并与累加电流进行累加,得到更新的累加电流,此时更新的累加电流为基准电流的3倍。之后,将更新的累加电流与第二电流信号进行比较,若第二电流信号仍大于更新的累加电流,继续执行上述累加操作。例如,在执行了h次上述累加操作后,所得到的更新的累加电流为基准电流的h 1倍,更新的累加电流首次大于第二电流信号,确定第二坐标为h 1,这里,h为正整数。
[0131]
例如,在第一分子值为10,基准值为8时,实际的第一坐标应为1.25,但是根据本公开所提供的数据处理方法,得到的第一坐标为2,这是由于在此实施例中,上述数据处理方法对第一分子值和基准值的比值进行了向上取整操作。
[0132]
为进一步提升计算精度,可以在执行基准值获取操作时,通过缩短开启信号的脉冲宽度来提升第一坐标和第二坐标的计算精度。
[0133]
例如,在执行基准值获取操作时,将开启信号的脉冲宽度设置为第一宽度,在计算第一分子值时,将开启信号的脉冲宽度设置为第二宽度,第二宽度是第一宽度的a倍,对第一分子值和基准值的比值进行取整处理,以得到第一坐标,包括:将第一分子值和基准值的比值进行向上取整处理,将向上取整处理的结果除以a作为第一坐标。
[0134]
例如,在相同的开启信号的脉冲宽度下,第一分子值为10,基准值为8。例如,在执行基准值获取操作时,将开启信号的脉冲宽度缩短10倍,也即a=10,则第二宽度是第一宽度的10倍,因此获得的第一分子值为10,基准值为0.8。对第一分子值和基准值的比值进行向上取整处理,得到向上取整处理的结果为13,再将向上取整处理的结果除以10得到1.3,
将1.3作为第一坐标。由于实际的第一坐标为1.25,因此通过缩短开启信号的脉冲宽度,可以进一步提升第一坐标的精度。例如,在执行基准值获取操作时,将开启信号的脉冲宽度设置为第一宽度,在计算第二分子值时,将开启信号的脉冲宽度设置为第二宽度,第二宽度是第一宽度的b倍,对第二分子值和基准值的比值进行取整处理,以得到第二坐标,包括:将第二分子值和基准值的比值进行向上取整处理,将向上取整处理的结果除以b作为第二坐标。
[0135]
类似地,通过缩短在执行基准值获取操作时开启信号的脉冲宽度,可以提升第二坐标的计算精度,具体的可以参考第一坐标的相关说明,在此不再赘述。
[0136]
需要说明的是,a可以等于b也可以不等于b。
[0137]
例如,可以预先设置固定的a和b,例如设置a=b=2
p
,p为正整数。在得到取整处理结果后将取整处理结果输入除法计算电路,例如,该除法计算电路为移位数字电路,例如移位寄存器,该移位寄存器可以将取整处理结果向右移位了p次以实现除以a或b的效果,所得到的移位结果即为第一坐标或第二坐标。该电路结构相对于采用cpu等计算单元来说结构简单,对系统能耗影响很小,在提升计算精度的前提下仍然可以达到降低能耗、节约处理时间的效果。
[0138]
本公开至少一实施例提供的数据处理方法,通过将待处理对象的像素值映射至忆阻器阵列中,控制忆阻器阵列的字线和源线上施加的驱动信号,并行、快速实现待处理对象的中心坐标的计算,避免额外的数据存取产生的能耗和延迟。
[0139]
例如,在一些实施例中,待处理对象为待处理图像中的一个连通域,此时,公式(1)中的row_0表示连通域中的第一行在待处理图像中所在行的行编号,公式(2)中的col_0表示连通域中的第一列在待处理图像中所在列的列编号。
[0140]
在计算连通域对应的第一坐标时,需要在连通域第一行对应的忆阻器单元的字线输入多个周期的开启信号,周期个数由连通域第一行在待处理图像中所在行的行编号决定。同样的,在计算连通域对应的第二坐标时,也需要在连通域第一列对应的忆阻器单元的位线输入多个周期的读取电压,这种方式会导致计算周期延长,浪费能耗。
[0141]
为了减小忆阻器阵列的字线端或位线端输入的脉冲个数,将公式(1)和(2)修改为下面的公式(4)和(5):
[0142][0143][0144]
上述公式中的参数定义与公式(1)和公式(2)相同,这里不再赘述。
[0145]
如公式(4)和公式(5)所示,在计算连通域对应的中心坐标时,还需要获得该连通域的第一行在待处理图像中所在行的行编号,以及该连通域的第一列在待处理图像中所在列的列编号。
[0146]
例如,本公开至少一实施例提供的数据处理方法还可以包括:将第一坐标与待处理对象的第一行在待处理图像中所在行的行编号相加再减一,以得到第一更新值,将第一坐标更新为第一更新值,将第二坐标与待处理对象的第一列在待处理图像中所在列的列编号相加再减一,以得到第二更新值,将第二坐标更新为第二更新值。
[0147]
例如,在待处理对象的第一行位于待处理图像中的第一行时,第一坐标与第一坐标更新值相同,在待处理对象的第一行不位于待处理图像中的第一行时,第一坐标与第一坐标更新值不同;在待处理对象的第一列位于待处理图像中的第一列时,第二坐标与第二坐标更新值相同,在待处理对象的第一列不位于待处理图像中的第一列时,第二坐标与第二坐标更新值不同。
[0148]
根据如上所述的中心坐标的计算方式,大大减少了忆阻器阵列的字线端或位线端输入的脉冲个数,减少计算周期,减少能耗。
[0149]
待处理对象的连通域划分可能存在连通域交叠问题,图6a示出了一种待处理图像的映射状态示意图。
[0150]
如图6a所示,每个圆形点表示一个忆阻器单元,不同灰度的圆形点表示忆阻器单元对应的不同的像素点的值。
[0151]
如果直接将待处理图像平铺映射的话,如图6a所示,1号连通域(该连通域的第一行在待处理图像中所在行的行编号为1,该连通域的第一列在待处理图像中所在列的列编号为1)和2号连通域(该连通域的第一行在待处理图像中所在行的行编号为3,该连通域的第一列在待处理图像中所在列的列编号为1)的行和列均存在交叠现象,也即由虚线框限定的4个像素点既属于1号连通域又属于2号连通域,此时如果直接执行中心坐标的计算时会存在以下问题:对1号连通域中的所有像素点对应的忆阻器单元的字线和位线同时输入相应的脉冲信号,那么2号连通域中不属于1号连通域的2个像素点也会被激活,它们会影响1号连通域的第二坐标的计算;相应地,对2号连通域中的所有像素点对应的忆阻器单元的字线和位线同时输入相应的脉冲信号,那么1号连通域的第三行及第四行中不属于2号连通域的部分像素点也会被激活,它们也会影响2号连通域的第一坐标的计算。
[0152]
因此,本公开的实施例需要在将图像中的像素点映射到忆阻器阵列的过程中,保证所有连通域占据的阵列区域在行方向和列方向上均不交叠。
[0153]
例如,步骤s402可以包括:将至少一个连通域中的每个像素点的值映射至忆阻器阵列中对应的忆阻器单元,且使得任意两个连通域对应的各个忆阻器单元在行方向和列方向上均不存在交叠。
[0154]
例如,图6b示出了另一种待处理图像的映射示意图。
[0155]
为了避免交叠情况,可以将图6a中的2号连通域向下平移两个像素点后映射到忆阻器阵列中。
[0156]
需要说明的是,虽然2号连通域在步骤s402映射过程中会向下平移2个像素点,但在计算2号连通域对应的第一坐标和第二坐标时,仍以2号连通域中第一行在待处理图像中所在行的行编号,以及2号连通域中第一列在待处理图像中所在列的列编号来计算2号连通域对应的中心坐标,例如,对于2号连通域来说,参考图6a,其第一行位于待处理图像中的第三行,则其第一行在待处理图像中所在行的行编号为3,其第一列位于待处理图像中的第一列,则其第一列在待处理图像中所在列的列编号为1,在计算2号连通域对应的第一坐标更新值和第二坐标更新值时,以row_0为3,col_0为1来计算。
[0157]
例如,在一些实施例中,可以预先获取每个连通域的第一行在待处理图像中所在行的行编号row_0和第一列在待处理图像中所在列的列编号col_0,通过忆阻器阵列计算得到第一坐标和第二坐标后,将第一坐标与row_0相加再减1,得到第一坐标更新值,将第一坐
标更新为第一坐标更新值,也即待处理对象对应的中心坐标中的横坐标为第一坐标更新值,类似地,将第二坐标与col_0相加再减1,得到第二坐标更新值,将第二坐标更新为第二坐标更新值,也即待处理对象对应的中心坐标中的纵坐标为第二坐标更新值。
[0158]
例如,在另一些实施例中,可以获取一个连通域的第一行在平移之后的图像中所在行的行编号和第一列在平移后的图像中所在列的列编号,将该行编号减去由于平移发生的行编号的变化值,将计算结果作为该连通域的第一行在待处理图像中所在行的行编号row_0,将该列编号减去由于平移发生的列编号的变化值,将计算结果作为该连通域的第一列在待处理图像中所在列的列编号col_0,并执行后续计算。例如,对于2号连通域来说,参考图6a,其第一行位于平移后的图像中的第五行,则其第一行在平移后的图像中所在行的行编号为5,其第一列在平移后的图像中所在列的列编号为1,由于2号连通域在映射时向下平移2行,因此2号连通域的第一行在待处理图像中所在行的行编号row_0为5-2=3,2号连通域的第一列在待处理图像中所在列的列编号col_0仍为1。
[0159]
本公开至少一实施例提供的数据处理方法以待处理对象内的第一行或者第一列为起始编号,在获得第一坐标和第二坐标后,根据待处理对象在待处理图像中的位置更新第一坐标和第二坐标,从而可以减少脉冲输入个数,减少计算周期,降低能耗。
[0160]
图7示出了本公开至少一实施例提供的基于忆阻器阵列实现数据处理方法的流程图。
[0161]
如图7所示,首先,获取待处理图像,该待处理图像包括n个连通域,并被编号为1,

n,每个连通域为一个待处理对象。
[0162]
接着,如图7所示,对于第i个连通域,计算第i个连通域的第一分子值a,具体的计算第一分子值的过程如步骤s501所述,这里不再赘述。
[0163]
接着,如图7所示,计算该第i个连通域的第一坐标或第二坐标的基准值(即,分母值),具体的计算基准值的过程如步骤s503所述,在此不再赘述。
[0164]
接着,如图7所示,计算该第i个连通域的第二分子值c,具体的计算第二分子值的过程如步骤s502所述,在此不再赘述。
[0165]
接着,如图7所示,对第一分子值a和基准值b的比值a/b进行取整处理,以得到第一坐标,具体的计算第一坐标的过程如步骤s504所述,在此不再赘述。对第二分子值c和基准值b的比值c/b进行取整处理,以得到第二坐标,具体的计算第二坐标的过程如步骤s505所述,在此不再赘述。
[0166]
接着,如图7所示,将第i个连通域的第一坐标加上第i个连通域的第一行在待处理图像中的行编号减一,得到第i个连通域对应的第一更新值,将第i个连通域对应的第一坐标更新为第一更新值,将第i个连通域的第二坐标加上第i个连通域的第一列在待处理图像中的列编号减一,得到第i个连通域对应的第二更新值,将第i个连通域对应的第二坐标更新为第二更新值。
[0167]
例如,如图6a所示的待处理图像包括4个连通域,在此实施例中,4个连通域中的每个连通域的第一行在待处理对象中的行编号和第一列在待处理对象中的列编号均为1。
[0168]
接着,重复上述步骤对待处理图像中的其它连通域的质心坐标进行计算,直到完成待处理图像中的所有连通域的质心坐标的计算。
[0169]
下面通过图8a、图8b和图8c对图7所描述的计算待处理图像对应的中心坐标的方
法进行更进一步的示例性说明。例如,图8a、图8b和图8c在图6b所示的忆阻器阵列的映射状态的基础上进行说明,对该待处理图像的说明可以参考上文,在此不再赘述。
[0170]
图8a示出了本公开至少一实施例提供的一种基于忆阻器阵列计算质心的第一分子值的示意图。
[0171]
例如,图8a所示的忆阻器阵列包括八行八列忆阻器单元,沿从上到下方向依次为第一行(如图8a标记的“第一行”)至第八行,沿从左到右方向依次为第一列(如图8a标记的“第一列”)至第八列。当然,需要说明的是,图8a仅为示意图,忆阻器阵列还可以包括更多行和更多列,以处理更多或尺寸更大的待处理对象。
[0172]
图8a中的1个横向箭头表示向忆阻器阵列中对应的字线(未示出)施加1个周期的开启信号,1个竖向箭头表示向忆阻器阵列中对应的位线(未示出)施加1个周期的读取电压。
[0173]
下面以图6a中的1号连通域为例,具体说明本公开至少一实施例提供的数据处理方法的流程。
[0174]
虚线框bs1表示1号连通域对应的所有忆阻器单元的位线端的输入信号变化,虚线框ws1表示1号连通域对应的所有忆阻器单元的字线端的输入信号变化。
[0175]
对于1号连通域,如图8a中的虚线框bs1所示,在连续的4个周期内,向1号连通域中所有像素点对应的忆阻器单元的位线输入持续的读取电压。如图8a中的虚线框ws1所示,在该连续的4个周期内,在第1个周期内,向忆阻器阵列中的第一行至第四行的忆阻器单元对应的字线施加1个周期的开启信号,在第2个周期内,向忆阻器阵列中的第二行、第三行、第四行的忆阻器单元对应的字线施加1个周期的开启信号,在第3个周期内,向忆阻器阵列中的第三行、第四行的忆阻器单元对应的字线施加1个周期的开启信号,在第4个周期内,向忆阻器阵列中的第四行的忆阻器单元对应的字线施加1个周期的开启信号。由此,在连续4个周期内使得1号连通域的第一行中所有像素点对应的所有忆阻器单元产生1次读取电流,1号连通域的第二行中所有像素点对应的所有忆阻器单元产生2次读取电流,1号连通域的第三行中所有像素点对应的所有忆阻器单元产生3次读取电流,1号连通域的第四行中所有像素点对应的所有忆阻器单元产生4次读取电流,从而将忆阻器阵列中第一行至第四行的源线产生的读取电流相加得到1号连通域的第一分子值。将第一行至第四行的源线产生的读取电流全部送入到积分器中,得到第一电压信号vref1。
[0176]
图8b示出了本公开至少一实施例提供的一种基于忆阻器阵列计算质心的第二分子值的示意图。
[0177]
例如,图8b中忆阻器阵列及映射方式与图8a相同,重复之处不再赘述。类似的,图8b中的1个横向箭头表示向忆阻器阵列中对应的字线(未示出)施加1个周期的开启信号,1个竖向箭头表示向忆阻器阵列中对应的位线(未示出)施加1个周期的读取电压。
[0178]
类似的,虚线框bs’1表示1号连通域对应的所有忆阻器单元的位线端的输入信号变化,虚线框wl’1表示1号连通域对应的所有忆阻器单元的字线端的输入信号变化。
[0179]
对于1号连通域,如图8b中的虚线框ws’1所示,在连续的8个周期内,向1号连通域中所有像素点对应的忆阻器单元的字线输入持续的开启信号。如图8b中的虚线框bs’1所示,在该连续的8个周期内,在第1个周期内,向忆阻器阵列中的第一列至第八列的忆阻器单元对应的位线施加1个周期的读取电压,在第2个周期内,向忆阻器阵列中的除了第一列之
外的其它七列中的忆阻器单元对应的位线施加1个周期的读取电压,在第3个周期内,向忆阻器阵列中的除了第一列、第二列之外的其它六列的忆阻器单元对应的位线施加1个周期的读取电压,以此类推。由此,在连续8个周期内使得1号连通域的第一列中所有像素点对应的所有忆阻器单元产生1次读取电流,1号连通域的第二列中所有像素点对应的所有忆阻器单元产生2次读取电流,
……
,1号连通域的第八列中所有像素点对应的所有忆阻器单元产生8次读取电流,将忆阻器阵列中第一行至第四行的源线产生的读取电流相加得到1号连通域的第二分子值。将第一行至第四行的源线产生的读取电流全部送入到积分器中,得到第二积分电压vref2。
[0180]
图8c示出了本公开至少一实施例提供的一种基于忆阻器阵列计算第一坐标或第二坐标的示意图。
[0181]
例如,图8c中忆阻器阵列及映射方式与图8a和图8b相同,重复之处不再赘述。类似的,图8c中的1个横向箭头表示向忆阻器阵列中对应的字线(未示出)施加1个周期的开启信号,1个竖向箭头表示向忆阻器阵列中对应的位线(未示出)施加1个周期的读取电压。
[0182]
类似的,虚线框bs”1表示1号连通域对应的所有忆阻器单元的位线端的输入信号变化,虚线框wl”1表示1号连通域对应的所有忆阻器单元的字线端的输入信号变化。
[0183]
对于1号连通域,如图8c中的虚线框ws”1所示,首先执行基准值获取操作,也即在一个周期内,向1号连通域中所有像素点对应的忆阻器单元的字线输入开启信号,如图8c中的虚线框bs”1所示,在该1个周期内,向忆阻器阵列中的第一列至第八列中所有像素点对应的忆阻器单元对应的位线施加读取电压,将1号连通域中第一行至第四行源线产生的读取电流进行加和处理,得到基准电流,然后将基准电流送入到积分器中,得到基准电压v1。将基准电压v1和第一电压信号vref1送入到比较器中进行比较,如果第一电压信号vref1小于基准电压v1,即比较器结果out为1,则确定第一坐标为1。否则,继续执行上文中的累加操作。例如,在执行了4次上述累加操作后,此时所得到的累加电压为基准电压v1的5倍,更新的累加电压首次大于第一电压信号vref1,则比较器结果out为0,此时停止向忆阻器单元的字线输入开启信号以及停止向忆阻器单元的位线施加读取电压,确定第一坐标为5。
[0184]
类似地,将积分电压v1和第二分子值对应的积分电压vref2(未示出)送入到比较器中进行比较,如果vref2小于v1,即比较器结果out为1,则确定第二坐标为1。否则,继续执行上文中的累加操作。例如,在执行了3次上述累加操作后,此时所得到的累加电压为基准电压v1的4倍,更新的累加电压首次大于第二电压信号vref2,则比较器结果out为0,此时停止向忆阻器单元的字线输入开启信号以及停止向忆阻器单元的位线施加读取电压,确定第二坐标为4。
[0185]
1号连通域的第一行在待处理图像中的行编号为1,因此1号连通域的第一坐标加上1减去1得到第一更新值,将第一坐标更新为该第一更新值。1号连通域的第一列在待处理图像中的列编号为1,因此1号连通域的第二坐标加上1减去1得到第二更新值,将第二坐标更新为该第二更新值。
[0186]
关于2号连通域、3号连通域和4号连通域的第一坐标、第二坐标的计算方式可以参考1号连通域,在此不再赘述。
[0187]
图9示出了本公开至少一实施例提供的一种电子装置900的示意框图。
[0188]
如图9所示,电子装置900包括一个忆阻器阵列901以及控制器902,忆阻器阵列901
被配置为可进行乘和运算,控制器902被配置为执行步骤s401~s403以及步骤s501~s505。例如,忆阻器阵列901和控制器902可以通过系统总线互相通信。
[0189]
例如,忆阻器阵列901可以如图1或图5b所示,该忆阻器阵列901包括阵列排布的多个忆阻器单元,且包括m行n列,也即每行有n个忆阻器单元,每列有m个忆阻器单元,每个忆阻器单元的结构可以为图3所示的2t2r结构。该忆阻器阵列还包括m条字线、m条源线和n条位线,m条字线以及m条源线分别与m行对应,n条位线分别与n列对应,m和n为正整数。
[0190]
需要说明的是,可以采用其它具有存算一体能力的硬件单元(例如,sram、dram、flash等)替换忆阻器单元。
[0191]
例如,控制器902可以包括处理器和存储器,该存储器用于非瞬时性地存储计算机可读指令,并且该存储器还可以存储处理所需的初始数据以及处理产生的数据(包括中间数据或最终数据),例如,控制器执行存储器上所存储的程序而实现图像的中心坐标计算的方法的实现方式与前述实现图像的中心坐标计算的方法实施例部分所提及的实现方式相同,这里不再赘述。
[0192]
上述处理器可以例如为中央处理器、图形处理器等,可以例如为cisc、risc架构等,可以根据存储在存储器中的程序而执行各种适当的动作和处理。上述存储器的具体例子可以包括但不限于:磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。本公开的实施例对于处理器和存储器的具体类型、结构等不做限制。
[0193]
例如,电子装置900还包括:处理模块903,该处理模块903包括累加单元和比较单元,比较单元配置为对第一分子值和基准值进行比较以及对第二分子值和基准值进行比较,累加单元配置为响应于第一分子值大于基准值,以基准值为基础加数执行累加操作得到累加结果,以及响应于第二分子值大于基准值,以基准值为基础加数执行累加操作得到累加结果,控制器902执行对第一分子值和基准值的比值进行取整处理,以得到第一坐标时,可以包括执行以下操作:重复累加操作直到累加结果首次大于第一分子值,将累加操作的重复次数加一作为第一坐标,控制器902执行对第二分子值和基准值的比值进行取整处理,以得到第二坐标时,可以包括执行以下操作:重复累加操作直到累加结果首次大于第二分子值,将累加操作的重复次数加一作为第二坐标。
[0194]
例如,累加单元可以为积分器,该积分器被配置为将忆阻器阵列901的源线的输出电流信号转换为对应的电压信号并进行累加,以得到输出电压信号。
[0195]
例如,比较单元可以为比较器,该比较器被配置为将输出电压信号和第一分子值对应的电压信号进行比较以及将输出电压信号和第二分子值对应的电压信号进行比较。
[0196]
例如,如图9所示,电子装置900还可以进一步包括源线驱动电路905、字线驱动电路906以及位线驱动电路907。例如,字线驱动电路906被配置为对忆阻器阵列的m条字线分别施加控制信号。例如,位线驱动电路907被配置为对忆阻器阵列的n条位线施加输入信号。例如,源线驱动电路905被配置为对忆阻器阵列的m条源线的输出信号进行控制,例如,源线驱动电路905包括控制开关,且控制开关接收对应行的字线的控制信号以开启或截止。
[0197]
此外,电子装置900还可包括输入接口和输出接口(未示出),忆阻器阵列901、控制器902、输入接口和输出接口之间也可以通过系统总线互相通信。例如,输入接口被配置为
从外部计算机设备、从用户等处接收指令以控制忆阻器阵列和控制器的运行等。例如,通过输入接口和输出接口与忆阻器阵列901、控制器902通信的外部设备可被包括在提供任何类型的用户可与之交互的用户界面的环境中。用户界面类型的示例包括图形用户界面、自然用户界面等。例如,图形用户界面可接受来自用户采用诸如键盘、鼠标、遥控器等之类的输入设备的输入,以及在诸如显示器之类的输出设备上提供输出。此外,自然用户界面可使得用户能够以无需受到诸如键盘、鼠标、遥控器等之类的输入设备强加的约束的方式来与并行加速装置交互。相对地,自然用户界面可依赖于语音识别、触摸和指示笔识别、屏幕上和屏幕附近的手势识别、空中手势、头部和眼睛跟踪、语音和语音、视觉、触摸、手势、以及机器智能等。
[0198]
例如,电子装置900的运行过程可以参考上述基于忆阻器阵列实现图像的中心坐标计算的方法实施例中的相关描述,重复之处在此不再赘述。
[0199]
对于本公开,还有以下几点需要说明:
[0200]
(1)本公开实施例附图只涉及到与本公开实施例涉及到的结构,其他结构可参考通常设计。
[0201]
(2)为了清晰起见,在用于描述本发明的实施例的附图中,层或结构的厚度和尺寸被放大。可以理解,当诸如层、膜、区域或基板之类的元件被称作位于另一元件“上”或“下”时,该元件可以“直接”位于另一元件“上”或“下”,或者可以存在中间元件。
[0202]
(3)在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合以得到新的实施例。
[0203]
以上所述仅为本公开的具体实施方式,但本公开的保护范围并不局限于此,本公开的保护范围应以所述权利要求的保护范围为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献