CN111861920B - 一种中值滤波方法以及系统 - Google Patents
一种中值滤波方法以及系统 Download PDFInfo
- Publication number
- CN111861920B CN111861920B CN202010686939.3A CN202010686939A CN111861920B CN 111861920 B CN111861920 B CN 111861920B CN 202010686939 A CN202010686939 A CN 202010686939A CN 111861920 B CN111861920 B CN 111861920B
- Authority
- CN
- China
- Prior art keywords
- value
- data
- register
- filtered
- target data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000001914 filtration Methods 0.000 title claims abstract description 86
- 238000000034 method Methods 0.000 title claims abstract description 40
- 238000012545 processing Methods 0.000 description 6
- 230000006978 adaptation Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T5/00—Image enhancement or restoration
- G06T5/70—Denoising; Smoothing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/3012—Organisation of register space, e.g. banked or distributed register file
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20024—Filtering details
- G06T2207/20032—Median filtering
-
- 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
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Image Processing (AREA)
Abstract
本申请公开了一种中值滤波方法,应用于RISC协处理器中,包括:基于SETUP指令从存储单元中读取待滤波的N2个数据;按照预设的取数据规则执行一次选取操作,从N2个数据中选取出对应于本次选取操作的目标数据并与剩余的N2‑1个数据比较,且当目标数据为待滤波的N2个数据的中值时,将目标数据写入至第一寄存器中,且将第二寄存器的值设置为第一数值;判断第二寄存器的值是否为第一数值;若是则读取第一寄存器的值作为中值以实现中值滤波,并在读取了第一寄存器的值之后,将第一和第二寄存器的值均置为第二数值;若否则返回执行选取操作。应用本申请的方案,加快了中值滤波的速度。本申请还提供了一种中值滤波系统,具有相应技术效果。
Description
技术领域
本发明涉及图像处理技术领域,特别是涉及一种中值滤波方法以及系统。
背景技术
中值滤波是基于排序统计理论的一种能有效抑制噪声的非线性信号处理技术,中值滤波的基本原理是把数字图像或数字序列中一点的值,用该点的一个邻域(N x N)中的各点值的中值代替,让该点的像素值接近周围真实值,从而消除孤立的噪声点。
传统方案中通过CPU进行中值滤波的效率,完全取决于CPU的性能和软件的算法优化,而随着CPU性能逼近极限,算法无法再继续优化的前提下,中值滤波的效率就会被极大限制。CPU难以进行指令扩展,使得利用CPU进行中值滤波,在越来越广泛的图像处理应用中,越来越难以满足实时滤波的要求。
综上所述,如何更有效地执行中值滤波,是目前本领域技术人员急需解决的技术问题。
发明内容
本发明的目的是提供一种中值滤波方法以及系统,以更有效地执行中值滤波。
为解决上述技术问题,本发明提供如下技术方案:
一种中值滤波方法,应用于RISC协处理器中,包括:
在启动中值滤波进程之后产生SETUP指令,并基于所述SETUP指令从存储单元中读取待滤波的N2个数据;N为正整数且为奇数;
按照预设的取数据规则执行一次选取操作,从待滤波的N2个数据中选取出对应于本次选取操作的目标数据;
将本次选取出的所述目标数据与剩余的N2-1个数据比较,并且当本次选取出的所述目标数据为待滤波的N2个数据的中值时,将本次选取出的所述目标数据写入至第一寄存器中,且将第二寄存器的值设置为第一数值;
判断所述第二寄存器的值是否为第一数值;
如果是,则读取所述第一寄存器的值作为待滤波的N2个数据的中值以实现中值滤波,并在读取了所述第一寄存器的值之后,将所述第一寄存器以及所述第二寄存器的值均设置为第二数值;
如果否,则返回执行所述按照预设的取数据规则执行一次选取操作。
优选的,预设的所述取数据规则包括:
在基于所述SETUP指令从存储单元中读取待滤波的N2个数据之后,当第i次触发针对读取出的待滤波的N2个数据的选取操作时,从待滤波的N2个数据中选取出第i个数据,其中,i为正整数,且1≤i≤N2。
优选的,所述将本次选取出的所述目标数据与剩余的N2-1个数据比较,并且当本次选取出的所述目标数据为待滤波的N2个数据的中值时,将本次选取出的所述目标数据写入至第一寄存器中,且将第二寄存器的值设置为第一数值,包括:
将本次选取出的所述目标数据依次与剩余的N2-1个数据比较,且在执行这N2-1次比较时,针对任意一次比较,当所述目标数据≥本次比较的比较对象的数值时,将计数器的值加1;
在完成了N2-1次比较之后,判断所述计数器的值是否等于
如果是,则本次选取出的所述目标数据为待滤波的N2个数据的中值,将本次选取出的所述目标数据写入至第一寄存器中,且将第二寄存器的值设置为第一数值,将所述计数器的值清零;
如果否,则本次选取出的所述目标数据不为待滤波的N2个数据的中值,并将所述计数器的值清零。
优选的,所述基于所述SETUP指令从存储单元中读取待滤波的N2个数据,包括:
基于所述SETUP指令中携带的滤波尺寸N以及待滤波的N2个数据在存储单元中的首地址,读取出待滤波的N2个数据。
优选的,所述将第二寄存器的值设置为第一数值,包括:
将第二寄存器的值设置为1;
相应的,将所述第一寄存器以及所述第二寄存器的值均设置为第二数值,包括:
将所述第一寄存器以及所述第二寄存器的值均设置为0。
优选的,还包括:
在基于所述SETUP指令从存储单元中读取待滤波的N2个数据之后,将第二寄存器的值设置第二数值。
一种中值滤波系统,应用于RISC协处理器中,包括:
SETUP指令执行模块,用于在启动中值滤波进程之后产生SETUP指令,并基于所述SETUP指令从存储单元中读取待滤波的N2个数据;N为正整数且为奇数;
MIDCMP指令执行模块,用于:
按照预设的取数据规则执行一次选取操作,从待滤波的N2个数据中选取出对应于本次选取操作的目标数据;
将本次选取出的所述目标数据与剩余的N2-1个数据比较,并且当本次选取出的所述目标数据为待滤波的N2个数据的中值时,将本次选取出的所述目标数据写入至第一寄存器中,且将第二寄存器的值设置为第一数值;
MIDFIAG指令执行模块,用于判断所述第二寄存器的值是否为第一数值,如果是,则触发MIDRD指令执行模块,否则触发所述MIDCMP指令执行模块;
所述MIDRD指令执行模块,用于读取所述第一寄存器的值作为待滤波的N2个数据的中值以实现中值滤波;
MIDCLR指令执行模块,用于在所述MIDRD指令执行模块读取了所述第一寄存器的值之后,将所述第一寄存器以及所述第二寄存器的值均设置为第二数值。
优选的,所述MIDCMP指令执行模块,具体用于:
按照预设的取数据规则执行一次选取操作,从待滤波的N2个数据中选取出对应于本次选取操作的目标数据;
将本次选取出的所述目标数据与剩余的N2-1个数据比较,并且当本次选取出的所述目标数据为待滤波的N2个数据的中值时,将本次选取出的所述目标数据写入至第一寄存器中,且将第二寄存器的值设置为第一数值,包括:
将本次选取出的所述目标数据依次与剩余的N2-1个数据比较,且在执行这N2-1次比较时,针对任意一次比较,当所述目标数据≥本次比较的比较对象的数值时,将计数器的值加1;
在完成了N2-1次比较之后,判断所述计数器的值是否等于
如果是,则本次选取出的所述目标数据为待滤波的N2个数据的中值,将本次选取出的所述目标数据写入至第一寄存器中,且将第二寄存器的值设置为第一数值,将所述计数器的值清零;
如果否,则本次选取出的所述目标数据不为待滤波的N2个数据的中值,并将所述计数器的值清零。
优选的,所述SETUP指令执行模块,具体用于:
在启动中值滤波进程之后产生SETUP指令,并基于所述SETUP指令中携带的滤波尺寸N以及待滤波的N2个数据在存储单元中的首地址,读取出待滤波的N2个数据。
优选的,所述MIDCMP指令执行模块将第二寄存器的值设置为第一数值,具体包括:
所述MIDCMP指令执行模块将第二寄存器的值设置为1;
相应的,所述MIDCLR指令执行模块将所述第一寄存器以及所述第二寄存器的值均设置为第二数值,具体包括:
所述MIDCLR指令执行模块将所述第一寄存器以及所述第二寄存器的值均设置为0。
应用本发明实施例所提供的技术方案,考虑到RISC具有容易扩展指令的特性,因此使用RISC协处理器来实现本申请的中值滤波方案,有利于加快中值滤波的处理速度,提高效率。具体的,本申请执行SETUP指令之后,可以一次性地就从存储单元中读取待滤波的N2个数据,然后每一次执行选取操作时,从待滤波的N2个数据中选取出对应于本次选取操作的目标数据,将本次选取出的目标数据与剩余的N2-1个数据比较,便可以确定本次选取出的目标数据是否为待滤波的N2个数据的中值。而传统的基于CPU进行中值滤波的方案中,是先从存储单元中的待滤波的N2个数据中读取一个作为目标数据,然后再依次读取剩余的N2-1个数据,每次读取N2-1个数据中的一个之后,便会与目标数据进行比较。可以看出,传统的基于CPU进行中值滤波的方案,需要多次从存储单元中进行数据读取,操作复杂,效率较低。本申请的方案中,当确定本次选取出的目标数据为待滤波的N2个数据的中值时,便可以将本次选取出的目标数据写入至第一寄存器中,使得后续再读取了第一寄存器的值作为待滤波的N2个数据的中值之后,便可以实现中值滤波。本申请的方案,可以通过在RISC协处理器中专门设计的指令来实现,方案的执行效率也非常高,极大地加快了中值滤波的速度。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明中一种中值滤波方法的实施流程图;
图2为本发明中一种中值滤波系统的结构示意图。
具体实施方式
本发明的核心是提供一种中值滤波方法,加快了中值滤波的速度。
为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参考图1,图1为本发明中一种中值滤波方法的实施流程图,该中值滤波方法可以应用于RISC协处理器中,包括以下步骤:
步骤S101:在启动中值滤波进程之后产生SETUP指令,并基于SETUP指令从存储单元中读取待滤波的N2个数据。N为正整数且为奇数。
具体的,在本申请的方案中,可以设计5条指令:SETUP、MIDCMP、MIDFLAG、MIDRD、MIDCLR,并且通过RISC协处理器,完成中值滤波在指令层面的硬件实现,从而极大地加快中值滤波的处理速度,满足实时滤波的要求。
以RISC-V为例,V表示第五代,RISC-V协处理器与RISC-V主处理器中的EXU(execute unit,执行单元),LSU(Load/Store unit,存储单元)以及WB(write back,写回单元)之间的接口可以均为Rocket Custom Coprocesser接口。RISC协处理器通过WB可以对第一寄存器以及第二寄存器进行操作。
在启动中值滤波进程之后,RISC协处理器可以产生SETUP指令,SETUP指令中可以携带有信息,根据该信息,RISC协处理器可以从RISC主处理器中的存储单元LSU中读取到待滤波的N2个数据。例如,在本发明的一种具体实施方式中,步骤S101中描述的基于SETUP指令从存储单元中读取待滤波的N2个数据,可以具体为:基于SETUP指令中携带的滤波尺寸N以及待滤波的N2个数据在存储单元中的首地址,读取出待滤波的N2个数据。该种实施方式中的SETUP指令也较为简单,便于实施。
SETUP指令的具体格式也可以根据实际需要进行设定,能够实现本申请的目的即可,例如表1为32位的RISC-V指令编码格式。
表一:
funct7 | rs2 | rs1 | xd | xs1 | xs2 | rd | opcode |
表一中,opcode[6:0],根据opcode编码表,可以决定是custom0-3中的哪一组指令类型,本申请表一和表二的实施方式,opcode指明使用Custom0指令组,其他实施方式中,也可以根据需要进行设定和调整。
xs1,xs2,rd均是1bit,分别表示该指令是否需要读取rs1和rs2及写回数据到寄存器中。其值为1,表示需要。其值为0,表示不需要。funct7[6:0],表示额外的编码空间,因此一个custom指令组(0-3)对应最多128条扩展指令。
表二是一种具体实施方式中,本申请所采用的SETUP、MIDCMP、MIDFLAG、MIDRD、MIDCLR的指令介绍。
表二:
在表二的实施方式中,启动中值滤波进程,产生了SETUP指令之后,RISC协处理器便可以基于SETUP指令中携带的滤波尺寸N以及待滤波的N2个数据在存储单元中的首地址,读取出待滤波的N2个数据。
进一步的,在本发明的一种具体实施方式中,在执行了步骤S101中描述的基于SETUP指令从存储单元中读取待滤波的N2个数据之后,将第二寄存器的值设置第二数值。
该种实施方式中,考虑到虽然后续在执行步骤S105时,会将第一寄存器以及第二寄存器的值均设置为第二数值,但是,为了避免意外情况导致在执行步骤S101之后,第二寄存器的值并不是等于第二数值,该种实施方式中,便会进行将第二寄存器的值设置第二数值的操作。第二寄存器的值为第二数值时,表示当前在第一寄存器中存储的数值并不是待滤波的N2个数据的中值,相应的,第二寄存器的值为第一数值时,表示当前在第一寄存器中存储的数值是待滤波的N2个数据的中值。
该种实施方式中,在步骤S101之后,将第二寄存器的值设置第二数值,有利于提高方案的稳定性,避免错误情况的发生概率。本申请上述的表二的实施方式中,便是通过SETUP来实现该操作,即通过SETUP指令从存储单元中读取待滤波的N2个数据,并且将第二寄存器的值设置为第二数值。
此外需要说明的是,本申请的第二数值以及第一数值的具体取值可以根据实际需要进行设定和调整,例如第一数值为1,第二数值为0。即本申请中将第二寄存器的值设置为第一数值,可以具体为:将第二寄存器的值设置为1。相应的,将第一寄存器以及第二寄存器的值均设置为第二数值,便是具体为:将第一寄存器以及第二寄存器的值均设置为0。当然,反过来的话,第一数值为0,第二数值为1,或者是其他的数值,也均不影响本发明的实施,只要能够进行第一数值以及第二数值的区分即可。本申请后文中,便以第一数值为1,第二数值为0进行描述。
步骤S102:按照预设的取数据规则执行一次选取操作,从待滤波的N2个数据中选取出对应于本次选取操作的目标数据;
步骤S103:将本次选取出的目标数据与剩余的N2-1个数据比较,并且当本次选取出的目标数据为待滤波的N2个数据的中值时,将本次选取出的目标数据写入至第一寄存器中,且将第二寄存器的值设置为第一数值。
本申请的步骤S102以及步骤S103,可以通过运行MIDCMP指令来实现。
具体的,运行一次MIDCMP指令,便可以执行一次选取操作,从待滤波的N2个数据中选取出对应于本次选取操作的目标数据,然后再执行步骤S103中的操作。
预设的取数据规则可以根据实际需要进行选取,例如,在本发明的一种具体实施方式中,在步骤S101之后,当第i次触发针对读取出的待滤波的N2个数据的选取操作时,从待滤波的N2个数据中选取出第i个数据,其中,i为正整数,且1≤i≤N2。
该种实施方式较为简单,便于实施。第一次取待滤波的N2个数据中的第一个数据作为目标数据,第二次则是取第二个数据作为目标数据,以此类推,直到在某一次执行步骤S104之后,不再返回步骤S102而是触发了步骤S105。
在执行步骤S103时,当本次选取出的目标数据为待滤波的N2个数据的中值时,说明本组中值滤波所需要的中值已经找到,就是本次选取出的目标数据,因此可以将该目标数据写入至第一寄存器中,使得后续读取了第一寄存器的值之后,便完成了本组的中值滤波。此处描述的本组的中值滤波,指的是针对步骤S101中读取的待滤波的N2个数据的中值滤波。也就是说,本申请步骤S101至步骤S105,描述的是一组数据的中值滤波过程,该组数据包括了N2个数据值,完成了一组数据的中值滤波之后,便可以重新执行步骤S101,继续进行下一组数据的中值滤波。
在执行步骤S103时,确定本次选取出的目标数据是否为待滤波的N2个数据的中值的具体方式,也可以根据实际需要进行设定和选取,例如在本发明的一种具体实施方式中,通过计数器以及比较单元来实现。
该种实施方式中,步骤S103可以包括以下步骤:
步骤一:将本次选取出的目标数据依次与剩余的N2-1个数据比较,且在执行这N2-1次比较时,针对任意一次比较,当目标数据≥本次比较的比较对象的数值时,将计数器的值加1;
步骤二:在完成了N2-1次比较之后,判断计数器的值是否等于
如果是,则执行步骤三:本次选取出的目标数据为待滤波的N2个数据的中值,将本次选取出的目标数据写入至第一寄存器中,且将第二寄存器的值设置为第一数值,将计数器的值清零;
如果否,则执行步骤四:本次选取出的目标数据不为待滤波的N2个数据的中值,并将计数器的值清零。
例如N为3,且待滤波的N2个数据例如具体为:9、2、3、7、8、1、4、5、6。且假设预设规则是上述实施例中描述的,当第i次触发针对读取出的待滤波的N2个数据的选取操作时,从待滤波的N2个数据中选取出第i个数据。
则首先选取9作为目标数据,将9依次与2、3、7、8、1、4、5、6进行比较,由于9最大,因此执行了步骤一之后,计数器的值会从0增加到8,然后执行步骤二,该例子中即步骤二判断出8不等于4,因此会将计数器的值清零,然后进入步骤S104。在执行了步骤S104之后,会判断出第二寄存器的值不为第一数值,会返回执行步骤S102。
返回执行步骤S102之后,该例子中,会将2作为目标数据,将2依次与9、3、7、8、1、4、5、6进行比较,由于2只比1大,因此执行了步骤一之后,计数器的值会从0增加到1,然后执行步骤二,判断出计数器的值1不等于4,因此会将计数器的值清零,然后进入步骤S104。
直到该例子中,当选取5作为目标数据时,将5依次与9、2、3、7、8、1、4、6进行比较,计数器的值会从0增加到4,说明本次选取出的目标数据5为待滤波的9个数据的中值,便会将本次选取出的目标数据5写入至第一寄存器中,且将第二寄存器的值设置为第一数值,将计数器的值清零。
可以理解的是,在执行步骤四时,即本次选取出的目标数据不为待滤波的N2个数据的中值时,可以不对寄存器进行任何操作,或者也可以是将第二数值写入到第一寄存器中。
步骤S104:判断第二寄存器的值是否为第一数值。如果是,则执行步骤S105,否则返回执行步骤S102。
可以通过运行MIDFLAG指令实现步骤S104。本申请按照第一数值为1,第二数值为0进行描述,即当判断出第二寄存器的值为第一数值1时,说明找到了中值,并存储到了第一寄存器中,相应的,第二寄存器的值为第一数值0,说明尚未找到,需要返回执行步骤S102。
步骤S105:读取第一寄存器的值作为待滤波的N2个数据的中值以实现中值滤波,并在读取了第一寄存器的值之后,将第一寄存器以及第二寄存器的值均设置为第二数值。
例如前述例子中,选取出的目标数据5为待滤波的9个数据的中值,将5写入到了第一寄存器中,则执行步骤S105便可以读取第一寄存器的值,并在读取之后,将第一寄存器以及第二寄存器的值均设置为第二数值。
本申请中,读取第一寄存器的值可以由MIDRD指令实现,将第一寄存器以及第二寄存器的值均设置为第二数值则可以由MIDCLR指令实现。
应用本发明实施例所提供的技术方案,考虑到RISC具有容易扩展指令的特性,因此使用RISC协处理器来实现本申请的中值滤波方案,有利于加快中值滤波的处理速度,提高效率。具体的,本申请执行SETUP指令之后,可以一次性地就从存储单元中读取待滤波的N2个数据,然后每一次执行选取操作时,从待滤波的N2个数据中选取出对应于本次选取操作的目标数据,将本次选取出的目标数据与剩余的N2-1个数据比较,便可以确定本次选取出的目标数据是否为待滤波的N2个数据的中值。而传统的基于CPU进行中值滤波的方案中,是先从存储单元中的待滤波的N2个数据中读取一个作为目标数据,然后再依次读取剩余的N2-1个数据,每次读取N2-1个数据中的一个之后,便会与目标数据进行比较。可以看出,传统的基于CPU进行中值滤波的方案,需要多次从存储单元中进行数据读取,操作复杂,效率较低。本申请的方案中,当确定本次选取出的目标数据为待滤波的N2个数据的中值时,便可以将本次选取出的目标数据写入至第一寄存器中,使得后续再读取了第一寄存器的值作为待滤波的N2个数据的中值之后,便可以实现中值滤波。本申请的方案,可以通过在RISC协处理器中专门设计的指令来实现,方案的执行效率也非常高,极大地加快了中值滤波的速度。
相应于上面的中值滤波方法实施例,本发明实施例还提供了一种中值滤波系统,可与上文相互对应参照。
可参阅图2,为本发明中一种中值滤波系统的结构示意图,应用于RISC协处理器中,包括:
SETUP指令执行模块201,用于在启动中值滤波进程之后产生SETUP指令,并基于SETUP指令从存储单元中读取待滤波的N2个数据;N为正整数且为奇数;
MIDCMP指令执行模块202,用于:
按照预设的取数据规则执行一次选取操作,从待滤波的N2个数据中选取出对应于本次选取操作的目标数据;
将本次选取出的目标数据与剩余的N2-1个数据比较,并且当本次选取出的目标数据为待滤波的N2个数据的中值时,将本次选取出的目标数据写入至第一寄存器中,且将第二寄存器的值设置为第一数值;
MIDFIAG指令执行模块203,用于判断第二寄存器的值是否为第一数值,如果是,则触发MIDRD指令执行模块204,否则触发MIDCMP指令执行模块202;
MIDRD指令执行模块204,用于读取第一寄存器的值作为待滤波的N2个数据的中值以实现中值滤波;
MIDCLR指令执行模块205,用于在MIDRD指令执行模块204读取了第一寄存器的值之后,将第一寄存器以及第二寄存器的值均设置为第二数值。
在本发明的一种具体实施方式中,预设的取数据规则包括:
在SETUP指令执行模块201基于SETUP指令从存储单元中读取待滤波的N2个数据之后,当第i次触发针对读取出的待滤波的N2个数据的选取操作时,从待滤波的N2个数据中选取出第i个数据,其中,i为正整数,且1≤i≤N2。
在本发明的一种具体实施方式中,MIDCMP指令执行模块202,具体用于:
按照预设的取数据规则执行一次选取操作,从待滤波的N2个数据中选取出对应于本次选取操作的目标数据;
将本次选取出的目标数据依次与剩余的N2-1个数据比较,且在执行这N2-1次比较时,针对任意一次比较,当目标数据≥本次比较的比较对象的数值时,将计数器的值加1;
在完成了N2-1次比较之后,判断计数器的值是否等于
如果是,则本次选取出的目标数据为待滤波的N2个数据的中值,将本次选取出的目标数据写入至第一寄存器中,且将第二寄存器的值设置为第一数值,将计数器的值清零;
如果否,则本次选取出的目标数据不为待滤波的N2个数据的中值,并将计数器的值清零。
在本发明的一种具体实施方式中,SETUP指令执行模块201,具体用于:
在启动中值滤波进程之后产生SETUP指令,并基于SETUP指令中携带的滤波尺寸N以及待滤波的N2个数据在存储单元中的首地址,读取出待滤波的N2个数据。
在本发明的一种具体实施方式中,MIDCMP指令执行模块202将第二寄存器的值设置为第一数值,具体包括:
MIDCMP指令执行模块202将第二寄存器的值设置为1;
相应的,MIDCLR指令执行模块205将第一寄存器以及第二寄存器的值均设置为第二数值,具体包括:
MIDCLR指令执行模块205将第一寄存器以及第二寄存器的值均设置为0
在本发明的一种具体实施方式中,SETUP指令执行模块201还用于:
在基于SETUP指令从存储单元中读取待滤波的N2个数据之后,将第二寄存器的值设置第二数值。
还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的技术方案及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
Claims (9)
1.一种中值滤波方法,其特征在于,应用于RISC协处理器中,包括:
在启动中值滤波进程之后产生SETUP指令,并基于所述SETUP指令从存储单元中读取待滤波的N2个数据;N为正整数且为奇数;
按照预设的取数据规则执行一次选取操作,从待滤波的N2个数据中选取出对应于本次选取操作的目标数据;
将本次选取出的所述目标数据与剩余的N2-1个数据比较,并且当本次选取出的所述目标数据为待滤波的N2个数据的中值时,将本次选取出的所述目标数据写入至第一寄存器中,且将第二寄存器的值设置为第一数值;
判断所述第二寄存器的值是否为第一数值;
如果是,则读取所述第一寄存器的值作为待滤波的N2个数据的中值以实现中值滤波,并在读取了所述第一寄存器的值之后,将所述第一寄存器以及所述第二寄存器的值均设置为第二数值;
如果否,则返回执行所述按照预设的取数据规则执行一次选取操作;
还包括:
在基于所述SETUP指令从存储单元中读取待滤波的N2个数据之后,将第二寄存器的值设置第二数值。
2.根据权利要求书1所述的中值滤波方法,其特征在于,预设的所述取数据规则包括:
在基于所述SETUP指令从存储单元中读取待滤波的N2个数据之后,当第i次触发针对读取出的待滤波的N2个数据的选取操作时,从待滤波的N2个数据中选取出第i个数据,其中,i为正整数,且1≤i≤N2。
3.根据权利要求书1所述的中值滤波方法,其特征在于,所述将本次选取出的所述目标数据与剩余的N2-1个数据比较,并且当本次选取出的所述目标数据为待滤波的N2个数据的中值时,将本次选取出的所述目标数据写入至第一寄存器中,且将第二寄存器的值设置为第一数值,包括:
将本次选取出的所述目标数据依次与剩余的N2-1个数据比较,且在执行这N2-1次比较时,针对任意一次比较,当所述目标数据≥本次比较的比较对象的数值时,将计数器的值加1;
在完成了N2-1次比较之后,判断所述计数器的值是否等于
如果是,则本次选取出的所述目标数据为待滤波的N2个数据的中值,将本次选取出的所述目标数据写入至第一寄存器中,且将第二寄存器的值设置为第一数值,将所述计数器的值清零;
如果否,则本次选取出的所述目标数据不为待滤波的N2个数据的中值,并将所述计数器的值清零。
4.根据权利要求书1所述的中值滤波方法,其特征在于,所述基于所述SETUP指令从存储单元中读取待滤波的N2个数据,包括:
基于所述SETUP指令中携带的滤波尺寸N以及待滤波的N2个数据在存储单元中的首地址,读取出待滤波的N2个数据。
5.根据权利要求书1所述的中值滤波方法,其特征在于,所述将第二寄存器的值设置为第一数值,包括:
将第二寄存器的值设置为1;
相应的,将所述第一寄存器以及所述第二寄存器的值均设置为第二数值,包括:
将所述第一寄存器以及所述第二寄存器的值均设置为0。
6.一种中值滤波系统,其特征在于,应用于RISC协处理器中,包括:
SETUP指令执行模块,用于在启动中值滤波进程之后产生SETUP指令,并基于所述SETUP指令从存储单元中读取待滤波的N2个数据;N为正整数且为奇数
MIDCMP指令执行模块,用于:
按照预设的取数据规则执行一次选取操作,从待滤波的N2个数据中选取出对应于本次选取操作的目标数据;
将本次选取出的所述目标数据与剩余的N2-1个数据比较,并且当本次选取出的所述目标数据为待滤波的N2个数据的中值时,将本次选取出的所述目标数据写入至第一寄存器中,且将第二寄存器的值设置为第一数值;
MIDFIAG指令执行模块,用于判断所述第二寄存器的值是否为第一数值,如果是,则触发MIDRD指令执行模块,否则触发所述MIDCMP指令执行模块;
所述MIDRD指令执行模块,用于读取所述第一寄存器的值作为待滤波的N2个数据的中值以实现中值滤波;
MIDCLR指令执行模块,用于在所述MIDRD指令执行模块读取了所述第一寄存器的值之后,将所述第一寄存器以及所述第二寄存器的值均设置为第二数值;
还包括:
在基于所述SETUP指令从存储单元中读取待滤波的N2个数据之后,将第二寄存器的值设置第二数值。
7.根据权利要求书6所述的中值滤波系统,其特征在于,所述MIDCMP指令执行模块,具体用于:
按照预设的取数据规则执行一次选取操作,从待滤波的N2个数据中选取出对应于本次选取操作的目标数据;
将本次选取出的所述目标数据依次与剩余的N2-1个数据比较,且在执行这N2-1次比较时,针对任意一次比较,当所述目标数据≥本次比较的比较对象的数值时,将计数器的值加1;
在完成了N2-1次比较之后,判断所述计数器的值是否等于
如果是,则本次选取出的所述目标数据为待滤波的N2个数据的中值,将本次选取出的所述目标数据写入至第一寄存器中,且将第二寄存器的值设置为第一数值,将所述计数器的值清零;
如果否,则本次选取出的所述目标数据不为待滤波的N2个数据的中值,并将所述计数器的值清零。
8.根据权利要求书6所述的中值滤波系统,其特征在于,所述SETUP指令执行模块,具体用于:
在启动中值滤波进程之后产生SETUP指令,并基于所述SETUP指令中携带的滤波尺寸N以及待滤波的N2个数据在存储单元中的首地址,读取出待滤波的N2个数据。
9.根据权利要求书6所述的中值滤波系统,其特征在于,所述MIDCMP指令执行模块将第二寄存器的值设置为第一数值,具体包括:
所述MIDCMP指令执行模块将第二寄存器的值设置为1;
相应的,所述MIDCLR指令执行模块将所述第一寄存器以及所述第二寄存器的值均设置为第二数值,具体包括:
所述MIDCLR指令执行模块将所述第一寄存器以及所述第二寄存器的值均设置为0。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010686939.3A CN111861920B (zh) | 2020-07-16 | 2020-07-16 | 一种中值滤波方法以及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010686939.3A CN111861920B (zh) | 2020-07-16 | 2020-07-16 | 一种中值滤波方法以及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111861920A CN111861920A (zh) | 2020-10-30 |
CN111861920B true CN111861920B (zh) | 2023-08-04 |
Family
ID=72984609
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010686939.3A Active CN111861920B (zh) | 2020-07-16 | 2020-07-16 | 一种中值滤波方法以及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111861920B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112308759A (zh) * | 2020-11-05 | 2021-02-02 | 山东云海国创云计算装备产业创新中心有限公司 | 一种均值滤波方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008015793A (ja) * | 2006-07-06 | 2008-01-24 | Seiko Epson Corp | 画像データ処理方法 |
CN101472055A (zh) * | 2007-12-24 | 2009-07-01 | 深圳迈瑞生物医疗电子股份有限公司 | 中值滤波装置和方法以及采用这种装置的超声成像系统 |
CN103312939A (zh) * | 2012-03-14 | 2013-09-18 | 富士通株式会社 | 中值滤波装置和方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104394411B (zh) * | 2014-11-28 | 2018-01-26 | 上海集成电路研发中心有限公司 | 中值滤波装置及方法 |
-
2020
- 2020-07-16 CN CN202010686939.3A patent/CN111861920B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008015793A (ja) * | 2006-07-06 | 2008-01-24 | Seiko Epson Corp | 画像データ処理方法 |
CN101472055A (zh) * | 2007-12-24 | 2009-07-01 | 深圳迈瑞生物医疗电子股份有限公司 | 中值滤波装置和方法以及采用这种装置的超声成像系统 |
CN103312939A (zh) * | 2012-03-14 | 2013-09-18 | 富士通株式会社 | 中值滤波装置和方法 |
JP2013191213A (ja) * | 2012-03-14 | 2013-09-26 | Fujitsu Ltd | メディアンフィルタ装置及びメディアンフィルタ方法 |
Non-Patent Citations (1)
Title |
---|
Robust detection of median filtering based on combined features of difference image.《Signal Processing: Image Communication》.2019,第72卷126-133. * |
Also Published As
Publication number | Publication date |
---|---|
CN111861920A (zh) | 2020-10-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10140251B2 (en) | Processor and method for executing matrix multiplication operation on processor | |
CN109597647B (zh) | 数据处理方法及设备 | |
US10884744B2 (en) | System and method of loop vectorization by compressing indices and data elements from iterations based on a control mask | |
EP1058185A1 (en) | A multiply and accumulate apparatus and a method thereof | |
WO2019205617A1 (zh) | 一种矩阵乘法的计算方法及装置 | |
US20200073665A1 (en) | Method for Accessing Memory of Multi-Core System, Related Apparatus, System, and Storage Medium | |
CN111861920B (zh) | 一种中值滤波方法以及系统 | |
US11823303B2 (en) | Data processing method and apparatus | |
CN111459546B (zh) | 一种实现操作数位宽可变的装置及方法 | |
US20120124343A1 (en) | Apparatus and method for modifying instruction operand | |
CN111158757A (zh) | 并行存取装置和方法以及芯片 | |
CN113344768B (zh) | 一种图像矩阵卷积的实现方法、计算设备及储存介质 | |
CN114691549A (zh) | 一种文件写入方法、装置及计算设备 | |
US20130262819A1 (en) | Single cycle compare and select operations | |
CN113591031A (zh) | 低功耗矩阵运算方法及装置 | |
US20210165654A1 (en) | Eliminating execution of instructions that produce a constant result | |
CN106502775A (zh) | 一种分时调度dsp算法的方法和系统 | |
JP2002032357A (ja) | Fftのためのインプレースメモリ管理 | |
CN112257843B (zh) | 一种基于MobileNetV1网络推理任务的扩展指令集的系统 | |
CN116127261B (zh) | 处理器中矩阵乘累加方法、装置及电子设备 | |
CN116185940B (zh) | 一种原子计数器的操作方法、装置、设备及存储介质 | |
CN116614636A (zh) | 视频解码方法和装置、电子设备和存储介质 | |
JP4388643B2 (ja) | マルチチャンネル信号処理装置 | |
KR20230095795A (ko) | Ndp 기능을 포함하는 호스트 장치 및 이를 포함하는 가속기 시스템 | |
US20030163499A1 (en) | Limiting the valve of a 64-bit number to a maximum value, a minimum value, or both in a 32-bit environment |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |