CN105653206A - 数字图像处理电路及其数据读写方法 - Google Patents
数字图像处理电路及其数据读写方法 Download PDFInfo
- Publication number
- CN105653206A CN105653206A CN201511018148.9A CN201511018148A CN105653206A CN 105653206 A CN105653206 A CN 105653206A CN 201511018148 A CN201511018148 A CN 201511018148A CN 105653206 A CN105653206 A CN 105653206A
- Authority
- CN
- China
- Prior art keywords
- data
- read
- pending
- row
- control module
- 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.)
- Granted
Links
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/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- 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
-
- 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/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Image Input (AREA)
- Dram (AREA)
- Static Random-Access Memory (AREA)
Abstract
本发明公开了数字图像处理电路及其数据读写方法,该数据读写方法,应用于FPGA或ASIC芯片,所述数字图像处理电路包括片外动态随机存储器和片内静态随机存储器;所述方法包括:从所述片内静态随机存储器内读取第一数据;对读取到的所述第一数据进行处理,以得到处理结果;将所述处理结果写入所述片外动态随机存储器;其中,在读取所述第一数据的步骤之前,所述第一数据已由所述片外动态随机存储器缓存入所述片内静态随机存储器内,并且所述第一数据包括:所述电路当前数据处理周期内的待处理数据的至少部分。应用本发明的技术方案,既能够保证存储量又能够提升数据处理速度。
Description
技术领域
本发明涉及数据处理领域,特别是涉及数字图像处理电路及其数据读写方法。
背景技术
在数据处理领域,经常使用数字图像处理电路来处理图像数据。在设计该电路过程中,经常会使用到存储器来存储数据。存储器分为片内SRAM(StaticRandomAccessMemory:静态随机存储器)和片外DRAM(dynamicrandomaccessmemory:动态随机存储器)。片内SRAM的特点是存取数据的速度快,但其却受到片内存储空间十分有限的限制;片外DRAM的特点是存储空间相对于片内SRAM而言大了很多,但是在存取数据的速度慢。现有技术中,采用FPGA处理图像数据时,通常只使用一种存储器,因此在设计时,对存储空间的选取需要根据片内片外存储器不同的特点进行相应的取舍。此种方法,对于容量较小的图像数据而言,能够基本满足需求。
然而,随着图形图像技术的不断发展,现有的图像数据的容量是越来越大,采用FPGA处理现有的大容量的图像数据时,若采用片内SRAM,则存在不能存储下现有大容量的图像数据的缺陷,若采用片外DRAM,则存在着数据读取速度太慢的问题。因此,急需设计一种新的电路,满足其在大容量的图像数据处理过程中,能够快速,高效的读取大容量的图像数据。
发明内容
鉴于此,本发明提供了一种数字图像处理电路及其读写方法,既能够保证存储量,又能提升电路的数据处理速度。
本发明实施例提供的数据读写方法,应用于电路,所述数字图像处理电路电路包括片外动态随机存储器和片内静态随机存储器;所述方法包括:
从所述片内静态随机存储器内读取第一数据;
对读取到的所述第一数据进行处理,以得到处理结果;
将所述处理结果写入所述片外动态随机存储器;
其中,在读取所述第一数据的步骤之前,所述第一数据已由所述片外动态随机存储器缓存入所述片内静态随机存储器内,并且所述第一数据包括:所述电路当前数据处理周期内的待处理数据的至少部分。
其中,所述第一数据包括:所述电路当前数据处理周期内的的待处理数据的一部分;
所述方法还包括:从所述片外动态随机存储器内读取第二数据,所述第二数据为所述电路当前数据处理周期内的待处理数据的余下部分;
所述对读取到的所述第一数据进行处理,以得到处理结果的步骤具体包括:对读取到的所述第一数据和第二数据进行处理,以得到处理结果。
其中,所述第一数据包括:所述电路当前数据处理周期内的待处理数据的一部分;
当所述第一数据为一个中断周期内待处理总数据的中间行数据时,所述方法还包括:从所述片外动态随机存储器内读取第二数据,所述第二数据为所述电路当前数据处理周期内的待处理数据的余下部分;所述对读取到的所述第一数据进行处理,以得到处理结果的步骤具体包括:对读取到的所述第一数据和第二数据进行处理,以得到处理结果;
其中,所述一个中断周期包括一个或多个所述数据处理周期,所述待处理总数据包括一个或多个待处理数据,所述一个中断周期对应一帧图像,并在所述一个中断周期内待处理总数据的首行数据之前、尾行数据之后均填充有一行数据,在所述一个中断周期内待处理总数据的首列数据之前、尾列数据之后均填充有一列数据。
其中,所述对读取到的所述第一数据和第二数据进行处理的步骤具体包括:通过膨胀和/或腐蚀算法处理对读取到的所述第一数据和所述第二数据进行处理;或
所述对读取到的所述第一数据和所述填充数据进行处理的步骤具体包括:通过膨胀和/或腐蚀算法处理对读取到的所述第一数据和所述第二数据进行处理。
相应地,本发明实施例还提供了一种数字图像处理电路,包括:数据缓存控制模块、处理模块、片外动态随机存储器和片内静态随机存储器;
所述数据缓存控制模块,用于将第一数据由所述片外动态随机存储器缓存入所述片内静态随机存储器内,其中,所述第一数据包括:所述处理模块当前数据处理周期内的待处理数据的至少部分;
所述数据缓存控制模块,用于从所述片内静态随机存储器内读取所述第一数据;
所述处理模块,用于对所述数据缓存控制模块读取到的所述第一数据进行处理,以得到处理结果,并将所述处理结果写入所述片外动态随机存储器。
其中,若所述第一数据为所述处理模块当前数据处理周期内的待处理数据的一部分时,则所述数据缓存控制模块还用于从所述片外动态随机存储器内读取第二数据,所述第二数据为所述处理模块当前数据处理周期内的待处理数据的余下部分;
所述处理模块对所述第一数据进行处理时,具体用于对所述数据缓存控制模块读取到的所述第一数据和所述第二数据进行处理,以得到处理结果。
其中,所述第一数据为所述处理模块当前数据处理周期内的待处理数据的一部分;
若所述第一数据为一个中断周期内待处理总数据的中间行数据时,则所述数据缓存控制模块还用于从所述片外动态随机存储器内读取第二数据,所述第二数据为所述处理模块当前数据处理周期内的待处理数据的余下部分;所述处理模块对所述第一数据进行处理时,具体用于对所述数据缓存控制模块读取到的所述第一数据和所述第二数据进行处理,以得到处理结果;
其中,所述一个中断周期包括一个或多个所述数据处理周期,所述待处理总数据包括一个或多个待处理数据,所述一个中断周期对应一帧图像,并在所述一个中断周期内待处理总数据的首行数据之前、尾行数据之后均填充有一行数据,在所述一个中断周期内待处理总数据的首列数据之前、尾列数据之后均填充有一列数据。
其中,所述处理模块,具体用于通过膨胀腐蚀算法处理所述数据缓存控制模块传来的所述第一数据和所述第二数据;或
所述处理模块,具体用于通过腐蚀算法处理所述数据缓存控制模块传来的所述第一数据和所述填充数据。
本发明的有益效果是:
本发明实施例的电路将海量的数据,例如图像数据存储在片外DRAM中,在进行数据处理时,预先将片外DRAM中需要处理的第一数据通过总线搬移到至片内SRAM中,然后再进行数据处理。通过同时控制片内SRAM与片外DRAM的方式,不但利用了片内SRAM读写数据速度快的优点,同时实现了片外DRAM存储量大的优点,满足了现有图像处理领域中对海量数据的读写要求。
附图说明
图1是本发明实施例的电路的结构示意图;
图2是本发明实施例中双端口片内SRAM的结构示意图;
图3是本发明实施例的电路数据缓存示意图;
图4是本发明实施例数据读写方法实施例的流程示意图;
图5是本发明实施例数据读写方法的另一种实施例的流程示意图;
图6是图4中步骤S501的一种实施例的流程示意图。
具体实施方式
下面结合附图和实施方式对本发明进行详细说明。
需要说明的是,如果不冲突,本发明实施例以及实施例中的各个特征可以相互结合,均在本发明的保护范围之内。
在开始描述本发明具体的实施例之前,先对本发明实施例中涉及的一些用语进行阐述。
在本发明实施例中,在数字图像处理电路一个中断周期内需要处理的数据定义为:待处理总数据,一个中断周期对应一帧图像。因数据图像处理电路处理该所有待处理数据时可能需要一段时间,这段时间可以包括一个或多个数据处理周期。因此,本发明实施例将数字图像处理电路任意一个数据处理周期内处理的数据定义为:待处理数据。也即是说,待处理总数据与待处理数据之间的关系是:待处理总数据包括一个或多个待处理数据。
下面再描述一个数据处理周期内的待处理数据与第一数据及第二数据之间的关系。本发明实施例中,将第一数据定义为:已由片外DRAM缓存入片内SRAM的数据。该第一数据为当前数据处理周期内的待处理数据的全部,或者为当前数据处理周期内的待处理数据的部分。将第二数据定义为:当前数据处理周期内的待处理数据的余下部分,且该第二数据存储在片外DRAM中。
本发明实施例提供的数字图像处理电路,将海量的数据,例如图像数据存储在片外DRAM中,在进行数据处理时,预先将片外DRAM中需要处理的第一数据通过总线搬移到至片内SRAM中,然后再进行数据处理。这样通过同时控制片内SRAM与片外DRAM的方式,不但利用了片内SRAM读写数据速度快的优点同时又实现了片外DRAM存储量大的优点,满足了现有图像处理领域中对海量数据的读写要求。
下面,将结合图1至图4,以对当前数据处理周期内的待处理数据进行数据处理为例,对本发明实施例提供的数字图像处理电路进行详细描述。
如图1所示,本发明实施例所提供的数字图像处理电路,包括:片外DRAM11、片内SRAM12、总线13、及处理模块14,还包括数据缓存控制模块15。
其中,片外DRAM11通过总线13与处理模块14耦接,片内SRAM12也与处理模块14耦接。而数据缓存控制模块15,则分别与片外DRAM11、片内SRAM12、处理模块14以及帧扫描模块耦接。
该电路在运行时,数据缓存控制模块15通过控制总线13的读操作,将存储在片外DRAM11内的第一数据预先缓存入片内SRAM12中。其中,该第一数据是处理模块14或者说该电路一个数据处理周期内待处理的全部数据或部分数据。其中,该电路一个数据周期内的待处理数据的地址等相关信息可通过与数据缓存控制模块耦接的帧扫描模块来指引,即帧扫描模块存储数据缓存控制模块预先缓存入片内静态随机存储器的第一数据在片外DRAM11的地址、宽度、高度和步长等相关信息。当然帧扫描模块还可以存储需要写入片外DRAM11的处理结果的地址、宽度、高度和步长等相关信息。通过数据缓存控制模块15的控制作用,就可以将存储在片外DRAM11内的、电路即将要处理的第一数据预先存入片内SRAM12内。如此,电路接收到包括第一数据的数据处理请求时,如数据缓存控制模块15产生读操作有效的使能信号时,数据缓存控制模块15就无需再从片外DRAM11内读取该第一数据,而是直接从片内SRAM12内读取,并将读取的第一数据传输给处理模块14。处理模块14则可以对该第一数据进行处理,并将处理结果写入片外DRAM11内。
其中,由于预先缓存入片内SRAM12内的第一数据可以是处理模块14当前数据处理周期内的待处理数据的部分或全部,因此数据缓存控制模块15在产生读操作有效的使能信号时,将会有不同的处理方式:
当该第一数据是处理模块14当前数据处理周期内的待处理数据的全部时,此时数据缓存控制模块15则直接读取片内SRAM12内的第一数据并传输至处理模块14,而无需再从片外DRAM11内寻找;处理模块14,用于处理数据缓存控制模块15传来的第一数据,以及将处理结果写入DRAM11内;处理结果写入片外DRAM11内的地址信息可通过帧扫描模块提供。
当该第一数据是处理模块14当前数据处理周期内的待处理数据的部分时,此时由于该数据处理周期内的待处理数据的余下部分还存储在片外DRAM11内。因此,当数据缓存控制模块15产生读操作有效的使能信号时,则需要读取片内SRAM12内的第一数据和片外DRAM11的第二数据,其中第二数据为处理模块14在该数据处理周期内的待处理数据的余下部分,并将读取的第一数据和第二数据传输至处理模块14;处理模块14,用于处理数据缓存控制模块15传来的第一数据和第二数据,以及将处理结果写入所述片外动态随机存储器。同样地,此时的处理结果写入DRAM11内的地址信息可通过帧扫描模块提供。
本发明实施例的电路在进行数据处理时,由于预先将存储在片外DRAM内的待处理数据作为第一数据写入了片内SRAM12内。因此在真正进行数据处理时,无需再从片外DRAM11内读取该第一数据,而是直接从片内SRAM12内读取,如此则使得本实施例的电路兼具片内SRAM12读取速度快以及片外DRAM11存储量大的优点,因此在保证存储量的前提下还可以提升电路的数据处理速度。并且,由于在利用软件对图像操作处理的过程中,一次数据搬移的位数是1个像素,但是对于本电路而言,因利用硬件对数据进行操作处理,完成一次数据搬移的位数是1个像素、8个像素、32个像素或64个像素,这样无论对数据量还是对读写速度均有大幅度的提升。
请继续参考图1,在进一步优选的实施例中,该电路的片内SRAM12的数量设定为2片。如此,在将存储在片外DRAM11内的第一数据预先缓存入SRAM12内时,可采用乒乓操作的方式,即将从片外DRAM11内读取的数据交替地缓存入两个片内SRAM12内。
具体地,数据缓存控制模块15对片内SRAM12的操作可以是通过片选信号cs_n和读写使能信号wr_n来完成。其中片选信号cs_n仅低电平有效,而读写使能信号wr_n低写、高读操作。当wr_n为低且cs_n为低时,需将当前时刻的地址信号addr与数据输入信号din送入片内SRAM,完成写操作;当wr_n为高且cs_n为低时,将当前时刻的地址信号addr送入片内SRAM,下一个时刻的数据输出信号dout有效,完成读操作。
在选取片内SRAM12时,可选取双端口、数据位宽为64位的存储器。因单端口SRAM在读操作的时候,写操作是不允许的;在写操作的时候,读操作是不允许的,这样会限制了本电路高速读写的要求,因此可选取双端口的SRAM,因双端口的SRAM进行读写的时候,读操作与写操作是分离的,读写操作可以同时进行,这样可以大大提升读写速度,关于双端口的SRAM独立读写过程,将通过下文并结合图2进行详细描述。而选用数据位宽为64位的存储器是为了满足读写数据量大的需求,如果选择数据位宽略小的存储器,单位时间内读写的数据量就会降低,64位数据位宽的选取间接地提升了读写速度。当然本电路的片内SRAM也可以根据实际需求,选择数据位宽为1位、8位、16位或32位的存储器,在这种情况下,处理的带宽也将成反比下降为现有设计的1/64、1/8、1/4或1/2性能。
请参考图2,是本发明实施例中双端口的片内SRAM的结构示意图。在图2中,该双端口SRAM的数据位宽64位,地址位宽16位。分为a口与b口,a_clk和b_clk分别为a口与b口的时钟信号,a_cs_n和b_cs_n分别为a口与b口的片选使能信号,低电平有效;a_wr_n和b_wr_n分别为a口与b口的读写使能信号,低电平写操作有效,高电平读操作有效;a_addr和b_add分别为a口与b口的地址信号;a_din和b_din分别为a口与b口的数据输入信号;a_dout和b_dout分别为a口与b口的数据输出信号。
该双端口SRAM的控制时序为:当a_cs_n/b_cs_n为低电平且a_wr_n/b_wr_n为低电平时,将当前时刻的a_addr/b_addr与a_din/b_din有效,送入该SRAM中;当a_cs_n/b_cs_n为低电平且a_wr_n/b_wr_n为高电平时,将当前时刻的a_addr/b_addr有效,送入sram中,下一个时刻的a_dout/b_dout有效,作为输出信号输出数据。对于双端口的SRAM,端口a的读写操作不会影响端口b的读写操作。
另外,在对片外DRAM11的选取时,本发明实施例的电路可以采用数据位宽与地址位宽均是64位的存储器,从而满足了存储海量数据的需求。
本发明实施例中,数据缓存控制模块15利用总线13将大量数据从片外DRAM11交替缓存到两个片内SRAM12中,实现了在数据缓存的过程中,数据从容量大、读写速度慢的片外DRAM到容量小、读写速度快的片内SRAM的搬移,完成了在一个系统时钟内,处理64位数据的过程,为后续处理模块14在数据量与读写速度方面提供了保障。
请继续参考图1,在进一步优选的实施例中,该电路还包括:异步FIFO模块16,异步FIFO(FirstInputFirstOutput:先入先出)模块16分别与总线13和数据缓存控制模块连接15连接。异步FIFO模块16的一个作用是:用于传输数据缓存控制模块15对总线13的控制命令,即数据缓存控制模块15对片外DRAM内的待处理数据的控制命令,如数据信号、地址信号或其他信号等。当然为了充分利用数据带宽,数据进行一次传输的位数可以是64位。
数据缓存控制模块15通过异步FIFO模块16传输其对总线13的数据信号和地址信号,实现对片外DRAM11内待处理数据的读取。通过总线读取的待处理数据首先存储在异步FIFO模块16中,等待着被数据缓存控制模块15读出,再写入到片内SRAM12中去。对于异步FIFO模块16而言,读写的时钟是完全异步,读数据通道对应的是片外DRAM11,写数据通道对应的是片内SRAM12,这样异步FIFO模块16的读写速度就完全异步。
其中,数据缓存控制模块15的逻辑时钟与总线13的时钟完全异步,是为了可以正常传输数据,利用异步FIFO模块16来完成跨时钟域的数据传输。使用异步FIFO模块的另一个作用就是:当大量的待处理数据从总线13流向数据缓存控制模块15时,如果不使用异步FIFO模块16,数据会全部涌入数据缓存控制模块15的输入端口,这样可能会造成输入端口被堵死。若使用了异步FIFO模块16,数据则会平稳流向数据缓存控制模块16的输入端口,为后续提供稳定的数据。并且因为使用了异步FIFO模块16,即使外部总线13没能及时存取数据,数据缓存控制模块15的输出端口也能把数据输出到异步FIFO模块16中。
如此设计,数据缓存控制模块15在将片外DRAM11内存储的第一数据缓存入片内SRAM12内时,数据流向具体如下:
片外DRAM11内的待处理数据经总线13,进入异步FIFO模块16。若数据缓存控制模块15此时产生写操作有效的使能信号时,则从异步FIFO模块16中读出至少一部分待处理数据,并将读出的数据作为第一数据采用兵乓操作的方式写入片内SRAM12。
请继续参考图1,在进一步优化的实施例中,处理模块14在处理数据缓存控制模块15传来的第一数据时,具体用于通过膨胀腐蚀算法处理数据缓存控制模块15传来的第一数据或者通过膨胀腐蚀算法处理数据缓存控制模块15传来的第一数据和第二数据。其中,膨胀操作具体是对数据做或操作,而腐蚀操作具体是对数据做与操作。
根据膨胀腐蚀算法架构,需要处理情况有如下4种:
(1)膨胀次数为0,腐蚀次数为0;
(2)膨胀次数为0,腐蚀次数不为0;
(3)膨胀次数为不为0,腐蚀次数为0;
(4)膨胀次数为不为0,腐蚀次数也不为0;
本发明实施例在对片内SRAM12与片外DRAM11的控制同样分为上述所提到的4种情况。具体实现时可以按照膨胀腐蚀的次数来进行划分。下面将分别进行描述:
(1)当膨胀次数为0,腐蚀次数为0。这种情况不对数据进行任何操作,同样也不会产生中断。
(2)膨胀次数不为0,腐蚀次数也不为0。这种情况对数据先进行膨胀操作,之后再进行腐蚀操作,膨胀腐蚀操作完成后产生中断。
(3)膨胀次数为0,腐蚀次数也不为0。这种情况仅对数据进行腐蚀操作。
(4)膨胀次数不为0,腐蚀次数为0。这种情况仅对数据进行膨胀操作。
也就是说,进行膨胀还是腐蚀处理,依赖于膨胀次数和腐蚀次数,如果次数为零,则不需要进行相应的膨胀(或腐蚀)处理,如次数不为零,则需要进行相应的膨胀(或腐蚀)处理。
在处理模块14采用膨胀腐蚀算法进行数据处理的前提下,为满足后续处理模块14的处理数据,缓存控制模块15将总线13读取的待处理数据的至少部分作为第一数据缓存入片内SRAM12时,对缓存入片内SRAM12内的第一数据的数据格式有特定的要求,即需要满足3行3列的构成。因此,总线13读取的待处理数据的格式也有特定要求,例如:该待处理数据具体包括:三行连续的数据。因缓存控制模块15可以将待处理数据的全部或部分写入片内SRAM12,这就使得第一数据的构成不同,相应地将第一数据缓存入片内SRAM12时的操作也不同。下面以待处理数据包括三行连续的数据为例描述将第一数据写入片内SRAM12的过程。
具体地,当第一数据为处理模块14待处理数据的全部且数据缓存控制模块15产生了写操作有效的使能信号时,因数据处理的格式需要满足3行3列,数据缓存控制模块15将第一数据写入片内SRAM12时,需利用3行片内SRAM缓存从片外DRAM中读取的第一数据,即将三行连续的待处理数据全部写入3行片内SRAM12内。此时,若数据缓存控制模块15产生读操作有效的使能信号,则直接从片内SRAM读取3行SRAM的第一数据并直接送到处理模块14进行膨胀腐蚀算法处理。
请参考图3,当第一数据为处理模块14任意一个处理周期内的待处理数据的部分时,此时待处理数据由两部分构成,即第一数据和第二数据。此时,数据缓存模块15仅将待数据处理的部分,即第一数据缓存入片内SRAM12。例如,若第一数据为待处理数据的第一行数据和第二行数据且数据缓存控制模块15产生了写操作有效的使能信号时,数据缓存控制模块15将第一数据缓存入SRAM12内时,可将3行SRAM改成使用2行SRAM来缓存从片外DRAM11内读取的第一数据,即将待处理数据的第一行数据和第二行数据作为第一数据写入片内SRAM12。此时,第二数据作为包括待处理数据的余下部分,作为待处理数据的第三行数据仍存储在异步FIFO模块16中。此时,处理模块14处理的待处理数据中,前2行代表片内SRAM中存储的数据,第3行代表片外DRAM中存储的数据,因片内SRAM12为双端口的存储器,读与写是独立的,这样做的好处是使得读写空间效率可以提高1/3。
下面,将通过具体例子描述数据缓存控制模块15将待处理数据的第一行数据和第二行数据作为第一数据缓存入2行片内SRAM12的过程。
假设电路内的两片SRAM12分别为sram1和sram0。当sram0的写使能信号有效,在数据缓存控制模块15控制下,将异步FIFO模块16中当前缓存的首行数据(即待处理数据的第一行数据)写入片内sram0中;下一时刻,如果当sram1的写使能信号有效,在数据缓存控制模块15控制下,将异步FIFO模块16中当前缓存的首行数据(即待处理数据的第二行数据)写入片内sram1中,两块sram均完成了缓存数据的功能。若数据缓存控制模块15发出对sram0与sram1读操作使能有效,在下一个时刻,sram0和sram1存储的第一行数据和第二行数据被读回到数据缓存控制模块15,同时数据缓存控制模块15还读取异步FIFO模块16中当前缓存的首行数据(即待处理数据的第三行数据),因此两片SRAM与异步FIFO模块16存储的数据正好构成了3x3结构,即构成:第k-1行数据、第k行数据、第k+1行数据。数据缓存控制模块15将此三行数据拼位组成192bit数据送到处理模块14,以便其进行膨胀腐蚀处理。
需要说目的是,在进行膨胀和/或腐蚀算法进行数据处理的过程中,需要区分第一数据在待处理总数据中的位置。若第一数据位于一个中断周期内待处理总数据中的首行或尾行,即第一数据包括一个中断周期内待处理总数据的首行数据或尾行数据时,如第一数据包含一个中断周期内待处理总数据的首行数据或尾行数据时,需要在第一数据的首行之前或尾行之后写入一行填充数据,相应的需要在图像数据的首列前、尾列后分别填充一列数据。比如说,在对数据进行膨胀处理时,需要在图像数据的首行前、尾行后分别填充一行全为1的数据,在图像数据的首列前、尾列后分别填充一列全为1的数据;在对数据进行腐蚀处理时,需要在图像数据的首行前、尾行后分别填充一行全为0的数据,在图像数据的首列前、尾列后分别填充一列全为0的数据。
若第一数据位于待处理总数据中的中间行,即第一数据为一个中断周期内待处理总数据的中间行数据时,则按照上述方式(即将sram1和sram0内2行数据与从异步FIFO模块16中读取的一行数据拼接后送入数据处理模块14)进行膨胀腐蚀处理。
另外,需要说明的是,当处理到每一帧行尾的最后一组64bit长度数据时,为了方便处理模块14对其进行处理,在其之后添加一个192bit的全1或全0的数据,使得被处理的数据刚好位于3x3数据结构的中心,在上述数据处理过程完成后,完成膨胀腐蚀功能,产生中断,并将处理结果写入片外DRAM11中,同时准备下一帧的运算操作。
上文通过图1至图3,并结合具体的实施例详细描述了本发明实施例的电路的结构构成及其工作原理。下文,将通过图4至图6,详细描述图1至图4所述的电路在进行数据处理时的详细方法流程。关于方法流程所涉及的一些术语及其说明,若在前文中已有相应描述的,下文将不再赘述。
如图4-图6所示,分别是本发明实施例提供的应用于数字图像处理电路的数据读写方法的流程示意图,该电路包括片外DRAM和片内SRAM。
该数据读写方法包括如下步骤:
S501,预先将存储在片外DRAM内的第一数据缓存入片内SRAM;
可理解的是,该电路需要预先存储其待处理的第一数据的地址信息和该第一数据的其它相关信息,如宽度、高度和步长等信息。这些信息,可存储在电路的帧扫描模块中,当需要时,可从中读取。
其中,步骤S501的第一数据可以为电路任意数据处理周期内的待处理数据的全部或部分;当第一数据为电路待处理数据的全部时,执行步骤S502-S503,当第一数据为电路待处理数据的部分时,执行步骤S504-S505。执行步骤S502-S503或者S504-S505的前提是产生对第一数据的读取操作,需要对第一数据进行数据处理。
S502,从片内SRAM内读取第一数据;
S503,对读取的第一数据进行处理,以及将处理结果写入片外DRAM。
由于在产生数据处理请求之前时已经执行了步骤S501,因此在步骤S502-S503中,对已缓存入片内SRAM内的第一数据进行数据处理时,可直接从片内静态随机存储器内,而无需再从片外DRAM内读取。那么在进行数据处理时,仅需从片内SRAM内读取该第一数据,并进行处理即可。因此本发明实施例的数据读写方法在保证存储量的前提下还可以提升电路的数据处理速度,满足现有对海量图像数据的读写需求。
需要说明的一点是,在将处理结果写入片外动态随机存储器时,该处理结果写入片外DRAM内的地址信息可通过该芯片的帧扫描模块提供。
然而,当预先缓存入片内SRAM内的第一数据为本芯片待处理数据的部分时,即本芯片即将要处理数据的余下部分还存储在片外DRAM内,因此该数据读写方法还包括:
S504,从片内SRAM内读取第一数据和从片外DRAM内读取第二数据;
其中,第二数据为电路的待处理数据的余下部分。该第二数据仍被存储在片外DRAM内。
S505,对该第一数据和第二数据进行处理,并将处理结果写入片外DRAM内。
当第一数据为电路的待处理数据的一部分时,由于在产生数据处理请求之前时已经执行了步骤S501,因此在步骤S504-S505中,进行数据处理是,已缓存入片内SRAM内的第一数据,可直接从片内静态随机存储器读取,而无需再从片外DRAM内读取。而对第二数据,则仍然需要从片外DRAM读取。本发明实施例的数据读写方法,在进行数据处理时,因待处理的一部分数据已经提前缓存入片内SRAM内,因此在保证存储量的前提下还可以提升电路的数据处理速度,满足现有对海量图像数据的读写需求。
如图6所示,在具体执行步骤S501时,即执行预先将存储在片外动态随机存储器内的第一数据缓存入片内SRAM的步骤,具体包括:
S601,通过电路的总线读取片外DRAM内的待处理数据;
S602,当接收到写操作有效的使能信号时,将读取的待处理数据的至少部分作为第一数据写入片内SRAM。
在步骤S601中,电路具体是通过控制其总线的读写来完成对存储在片外DRAM内的待处理数据的读取的。具体实现中,为了充分利用数据带宽,数据进行一次传输的位数可以是64位。另外,通过总线读取的待处理数据可以首先存储在异步FIFO模块中,等待被数据缓存控制模块15读出,再写入到片内SRAM12中去。对于异步FIFO模块而言,读写的时钟是完全异步,读数据通道对应的是片外DRAM,写数据通道对应的是片内SRAM,这样异步FIFO模块的读写速度就完全异步。
在步骤S602的具体实现过程中,在电路的片内SRAM的数量为2的前提下,在将读取的待处理数据的至少部分并作为第一数据写入片内SRAM时,写入时可采用兵乓操作。并且,片内SRAM可为双端口的存储器,并通过图2所示的时序来控制第一数据的写入过程。
如此,电路在将片外DRAM内存储的数据缓存入片内SRAM内时,数据流向具体如下:
片外DRAM内的第一数据经总线进入异步FIFO模块。若数据缓存控制模块此时产生写操作有效的使能信号时,则将数据缓存控制模块内的第一数据采用兵乓操作的方式写入片内SRAM。也即是说,数据缓存控制模块可以将总线读取的待处理数据全部或部分写入片内SRAM。当数据缓存控制模块将总线读取的待处理数据全部写入片内SRAM,第一数据即为待处理数据的全部,当数据缓存控制模块将总线读取的处理数据部分片内SRAM,第一数据即为待处理数据的部分。
需要说明的一点是,执行步骤S503的过程中,可通过膨胀腐蚀算法处理第一数据;同样地,在执行步骤S505的过程中,也可以通过膨胀腐蚀算法处理第一数据和第二数据。关于膨胀腐蚀算法的架构以及对行首和行尾的特殊处理,因在前文已有描述,在此不再赘述。
需要说明的是,在使用膨胀腐蚀算法处理数据时,因对数据的格式有对缓存入片内SRAM内的第一数据的数据格式有特定的要求,即需要满足3行3列的构成。因此,总线读取的待处理数据的格式也有特定要求,例如:该待处理数据具体包括:三行连续的数据。因缓存控制模块15可以将待处理数据的全部或部分写入片内SRAM,这就使得第一数据的构成不同,相应地将第一数据缓存入片内SRAM时的操作也不同。下面以待处理数据包括三行连续的数据为例描述将第一数据写入片内SRAM的过程。
当第一数据为该电路待数据处理的全部且产生了写操作有效的使能信号时,因数据处理的格式需要满足3行3列,因此可利用3行片内SRAM存储总线读取的第一数据,即将三行连续的待处理数据全部写入3行片内SRAM12内。此时,若接收到数据处理请求时,则直接从片内SRAM读取3行SRAM的第一数据并进行膨胀腐蚀算法处理。
当第一数据为待处理数据的部分时,此时待处理数据由两部分构成,即第一数据和第二数据。此时,仅将待数据处理的部分,即将第一数据缓存入片内SRAM。例如,若第一数据为待处理数据的第一行数据和第二行数据且数据缓存控制模块产生了写操作有效的使能信号时,数据缓存控制模块将第一数据缓存入SRAM内时,可将3行SRAM改成使用2行SRAM来缓存从片外DRAM内读取的第一数据,即将待处理数据的第一行数据和第二行数据作为第一数据写入片内SRAM。此时,第二数据作为包括待处理数据的余下部分,作为待处理数据的第三行数据仍存储在异步FIFO模块中。此时,待处理数据中,前2行代表片内SRAM中存储的数据,第3行代表片外DRAM中存储的数据,因片内SRAM为双端口的存储器,读与写是独立的,这样做的好处是使得读写空间效率可以提高1/3。
以上所述仅为本发明的实施方式,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种数据读写方法,应用于数字图像处理电路,其特征在于,所述数字图像处理电路包括片外动态随机存储器和片内静态随机存储器;
所述方法包括:
从所述片内静态随机存储器内读取第一数据;
对读取到的所述第一数据进行处理,以得到处理结果;
将所述处理结果写入所述片外动态随机存储器;
其中,在读取所述第一数据的步骤之前,所述第一数据已由所述片外动态随机存储器缓存入所述片内静态随机存储器内,并且所述第一数据包括:所述电路当前数据处理周期内的待处理数据的至少部分。
2.根据权利要求1所述的数据读写方法,其特征在于,所述第一数据包括:所述电路当前数据处理周期内的待处理数据的一部分;
所述方法还包括:从所述片外动态随机存储器内读取第二数据,所述第二数据为所述电路当前数据处理周期内的待处理数据的余下部分;
所述对读取到的所述第一数据进行处理,以得到处理结果的步骤具体包括:对读取到的所述第一数据和第二数据进行处理,以得到处理结果。
3.根据权利要求1所述的数据读写方法,其特征在于,所述第一数据包括:所述电路当前数据处理周期内的待处理数据的一部分;
当所述第一数据为一个中断周期内待处理总数据的中间行数据时,所述方法还包括:从所述片外动态随机存储器内读取第二数据,所述第二数据为所述电路当前数据处理周期内的待处理数据的余下部分;所述对读取到的所述第一数据进行处理,以得到处理结果的步骤具体包括:对读取到的所述第一数据和第二数据进行处理,以得到处理结果;
其中,所述一个中断周期包括一个或多个所述数据处理周期,所述待处理总数据包括一个或多个待处理数据,所述一个中断周期对应一帧图像,并在所述一个中断周期内待处理总数据的首行数据之前、尾行数据之后均填充有一行数据,在所述一个中断周期内待处理总数据的首列数据之前、尾列数据之后均填充有一列数据。
4.根据权利要求3所述的数据读写方法,其特征在于,
所述对读取到的所述第一数据和第二数据进行处理的步骤具体包括:通过膨胀和/或腐蚀算法处理对读取到的所述第一数据和所述第二数据进行处理;
所述对读取到的所述第一数据和所述填充数据进行处理的步骤具体包括:通过膨胀和/或腐蚀算法处理对读取到的所述第一数据和所述第二数据进行处理。
5.根据权利要求2所述的数据读写方法,其特征在于,所述待处理数据包括三行连续的数据;所述第一数据为所述待处理数据的第一行数据和第二行数据;所述第二数据为所述待处理数据的第三行数据;将所述第一数据由所述片外动态随机存储器缓存入所述片内静态随机存储器时,包括:
从所述片外动态随机存储器读取所述第一行数据和第二行数据;
将所述第一行数据和第二行数据交替存储至两个所述片内静态随机存储器中。
6.一种数字图像处理电路,其特征在于,包括:数据缓存控制模块、处理模块、片外动态随机存储器和片内静态随机存储器;
所述数据缓存控制模块,用于将第一数据由所述片外动态随机存储器缓存入所述片内静态随机存储器内,其中,所述第一数据包括:所述处理模块当前数据处理周期内的待处理数据的至少部分;
所述数据缓存控制模块,用于从所述片内静态随机存储器内读取所述第一数据;
所述处理模块,用于对所述数据缓存控制模块读取到的所述第一数据进行处理,以得到处理结果,并将所述处理结果写入所述片外动态随机存储器。
7.根据权利要求6所述的数字图像处理电路,其特征在于,
若所述第一数据为所述处理模块当前数据处理周期内的待处理数据的一部分时,则所述数据缓存控制模块还用于从所述片外动态随机存储器内读取第二数据,所述第二数据为所述处理模块当前数据处理周期内的待处理数据的余下部分;
所述处理模块对所述第一数据进行处理时,具体用于对所述数据缓存控制模块读取到的所述第一数据和所述第二数据进行处理,以得到处理结果。
8.根据权利要求6所述的数字图像处理电路,其特征在于,所述第一数据为所述处理模块当前数据处理周期内的待处理数据的一部分;
若所述第一数据为一个中断周期内待处理总数据的中间行数据时,则所述数据缓存控制模块还用于从所述片外动态随机存储器内读取第二数据,所述第二数据为所述处理模块当前数据处理周期内的待处理数据的余下部分;所述处理模块对所述第一数据进行处理时,具体用于对所述数据缓存控制模块读取到的所述第一数据和所述第二数据进行处理,以得到处理结果;
其中,所述一个中断周期包括一个或多个所述数据处理周期,所述待处理总数据包括一个或多个待处理数据,所述一个中断周期对应一帧图像,并在所述一个中断周期内待处理总数据的首行数据之前、尾行数据之后均填充有一行数据,在所述一个中断周期内待处理总数据的首列数据之前、尾列数据之后均填充有一列数据。
9.根据权利要求8所述的数字图像处理电路,其特征在于,
所述处理模块,具体用于通过膨胀和/或腐蚀算法处理所述数据缓存控制模块传来的所述第一数据和所述第二数据;或
所述处理模块,具体用于通过膨胀和/或腐蚀算法处理所述数据缓存控制模块传来的所述第一数据和所述填充数据。
10.根据权利要求7所述的数字图像处理电路,其特征在于,
所述待处理数据包括三行连续的数据;所述第一数据为所述待处理数据的第一行数据和第二行数据;所述第二数据为所述待处理数据的第三行数据;所述缓存控制模块具体用于:
将所述第一行数据和第二行数据交替存储至两个所述片内静态随机存储器中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201511018148.9A CN105653206B (zh) | 2015-12-29 | 2015-12-29 | 数字图像处理电路及其数据读写方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201511018148.9A CN105653206B (zh) | 2015-12-29 | 2015-12-29 | 数字图像处理电路及其数据读写方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105653206A true CN105653206A (zh) | 2016-06-08 |
CN105653206B CN105653206B (zh) | 2018-09-28 |
Family
ID=56478400
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201511018148.9A Expired - Fee Related CN105653206B (zh) | 2015-12-29 | 2015-12-29 | 数字图像处理电路及其数据读写方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105653206B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108614667A (zh) * | 2016-12-12 | 2018-10-02 | 中国航空工业集团公司西安航空计算技术研究所 | 可配置广播els数据帧上电自动加载电路及方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101526924A (zh) * | 2009-04-22 | 2009-09-09 | 东南大学 | 一种优化数字信号处理芯片数据访问的方法 |
CN102185725A (zh) * | 2011-05-31 | 2011-09-14 | 北京星网锐捷网络技术有限公司 | 一种缓存的管理方法、装置和网络交换设备 |
CN104484214A (zh) * | 2014-12-30 | 2015-04-01 | 华中科技大学 | 一种sram型fpga的配置、刷新与程序上注一体化系统 |
CN104978282A (zh) * | 2014-04-04 | 2015-10-14 | 上海芯豪微电子有限公司 | 一种缓存系统和方法 |
-
2015
- 2015-12-29 CN CN201511018148.9A patent/CN105653206B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101526924A (zh) * | 2009-04-22 | 2009-09-09 | 东南大学 | 一种优化数字信号处理芯片数据访问的方法 |
CN102185725A (zh) * | 2011-05-31 | 2011-09-14 | 北京星网锐捷网络技术有限公司 | 一种缓存的管理方法、装置和网络交换设备 |
CN104978282A (zh) * | 2014-04-04 | 2015-10-14 | 上海芯豪微电子有限公司 | 一种缓存系统和方法 |
CN104484214A (zh) * | 2014-12-30 | 2015-04-01 | 华中科技大学 | 一种sram型fpga的配置、刷新与程序上注一体化系统 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108614667A (zh) * | 2016-12-12 | 2018-10-02 | 中国航空工业集团公司西安航空计算技术研究所 | 可配置广播els数据帧上电自动加载电路及方法 |
CN108614667B (zh) * | 2016-12-12 | 2021-03-26 | 中国航空工业集团公司西安航空计算技术研究所 | 可配置广播els数据帧上电自动加载电路及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN105653206B (zh) | 2018-09-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105741237B (zh) | 一种基于fpga图像翻转的硬件实现方法 | |
CN105654419A (zh) | 一种图像的运算处理系统及运算处理方法 | |
JP5261803B2 (ja) | 不揮発性メモリ用の高速ファンアウトシステムアーキテクチャおよび入出力回路 | |
US20030112685A1 (en) | FIFO memory devices having single data rate (SDR) and dual data rate (DDR) capability | |
CN104125424A (zh) | 一种基于fpga的高速、可变帧视频显存设计方法 | |
CN103077132A (zh) | 一种高速缓存处理方法及协议处理器高速缓存控制单元 | |
CN105577985B (zh) | 一种数字图像处理系统 | |
US6941434B2 (en) | Self-synchronous FIFO memory device having high access efficiency, and system provided with interface for data transfer using the same | |
CN108206034B (zh) | 用于提供多端口存储器的方法及系统 | |
CN105653206A (zh) | 数字图像处理电路及其数据读写方法 | |
CN101236741A (zh) | 一种数据读写方法和装置 | |
US8386687B2 (en) | Method and apparatus for data transfer | |
CN114442908A (zh) | 一种用于数据处理的硬件加速系统及芯片 | |
CN104461967B (zh) | 一种支持同步和异步传输模式的并行数据接口 | |
CN101277378B (zh) | 图像缩放装置及其线缓冲器 | |
KR102336666B1 (ko) | 메모리 장치 및 이를 포함하는 메모리 시스템 | |
US7117307B2 (en) | Memory controlling apparatus performing the writing of data using address line | |
TWI523027B (zh) | 用於分享信號節點以接收及提供非資料信號之記憶體及方法 | |
CN106708457A (zh) | 用于dmd动态选区的fpga处理模块及其方法 | |
CN102571535A (zh) | 一种数据延迟装置、方法及通信系统 | |
CN105577986A (zh) | 基于膨胀腐蚀的图像处理系统及图像处理方法 | |
CN106445842B (zh) | 一种数据缓存器和数据缓存方法 | |
JP5126010B2 (ja) | メモリアクセス制御回路及び画像処理装置 | |
CN115586974B (zh) | 内存控制器、系统、装置及电子设备 | |
CN110704363A (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 | ||
TR01 | Transfer of patent right |
Effective date of registration: 20211115 Address after: 100193 room 115, 1f, building B 18, yard 8, Dongbeiwang West Road, Haidian District, Beijing Patentee after: Beijing Huali Zhixin Technology Co.,Ltd. Address before: 201702 room 133, Zone C, floor 1, building 1, No. 1362, Huqingping highway, Qingpu District, Shanghai Patentee before: SHANGHAI HWACHIP SEMICONDUCTOR CO.,LTD. |
|
TR01 | Transfer of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20180928 Termination date: 20211229 |
|
CF01 | Termination of patent right due to non-payment of annual fee |