首页> 中国专利> 数据互斥滤波电路及数据互斥滤波方法

数据互斥滤波电路及数据互斥滤波方法

摘要

本发明提供一种数据互斥滤波电路和数据互斥滤波方法。本公开实施例提供的数据互斥滤波电路本公开实施例提供一种数据互斥滤波电路,包括预处理子电路和N级滤波子电路,N≥2;每级滤波子电路能够比较主输入端当前接收的输入数据与自身存储的历史数据是否相同,并将比较结果反馈给预处理子电路;预处理子电路根据各级滤波子电路所反馈的比较结果,向第1级滤波子电路输出对应的数据;若任一级滤波子电路反馈的比较结果为相同,则输出预设的占位符;若各级滤波子电路反馈的比较结果均为不同,则输出输入数据。

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2022-09-16

    实质审查的生效 IPC(主分类):H03H11/04 专利申请号:2021101901151 申请日:20210218

    实质审查的生效

说明书

技术领域

本发明属于数据处理技术领域,具体涉及一种数据互斥滤波电路及数据互斥滤波方法。

背景技术

在基于数字(集成)电路技术的数据传输、图像处理等领域中,当存在数据流中预设特定邻域内具有连续输出的相同数据的情况,常常会涉及相同数据合并的问题。例如在对图像进行灰度均衡化的预处理过程中,灰阶数据可以作为静态随机存取存储器(StaticRandom-Access Memory,SRAM)的地址,当存在两个或两个以上相同的灰阶数据连续输入时,对SRAM的操作(由于读写潜伏期的原因)即会出现读写冲突的问题。或者,在数据传输的过程中,有限邻域内传输相同的数据将造成带宽资源的浪费,降低了硬件资源、带宽资源的利用率。

发明内容

本发明旨在至少解决现有技术中存在的技术问题之一,提供一种数据互斥滤波电路,其能够在预设范围内,将数据流中的数据彼此互斥,即将相同数据合并,以避免输出混乱或读写地址冲突等问题,并且能够避免对传输带宽的浪费,提高运算效率。

第一方面,本公开实施例提供一种数据互斥滤波电路,包括预处理子电路和N级滤波子电路,N≥2;其中,

当N=2时,第1级滤波子电路的输入端连接所述预处理子电路,输出端连接第2级滤波子电路的输入端;第2级滤波子电路的输入端连接第1级滤波子电路的输出端,输出端连接所述主输出端;

当N>2时,第1级滤波子电路的输入端连接所述预处理子电路,输出端连接第2级滤波子电路的输入端;第N级滤波子电路的输入端连接第N-1级滤波子电路的输出端,输出端连接所述主输出端;第M级滤波子电路的输入端连接第M-1级滤波子电路的输出端,输出端连接第M+1级滤波子电路的输入端;其中,1<M<N;

每级所述滤波子电路能够比较所述主输入端当前接收的输入数据与自身存储的历史数据是否相同,并将比较结果反馈给所述预处理子电路;

所述预处理子电路根据各级所述滤波子电路所反馈的比较结果,向第1级滤波子电路输出对应的数据;若任一级所述滤波子电路反馈的比较结果为相同,则输出预设的占位符;若各级所述滤波子电路反馈的比较结果均为不同,则输出所述输入数据。

本公开实施例提供的数据互斥滤波电路,由于在输入数据与各级滤波子电路中的历史数据存在相同时,将输入数据过滤;在输入数据与各级滤波子电路中的历史数据均不同时,将输入数据存入第一级滤波子电路,因此能够在预设范围内,将数据流中的数据彼此互斥,即将相同数据合并,以避免输出混乱或读写地址冲突等问题,并且能够避免对传输带宽的浪费,提高运算效率。

在一些示例中,所述预处理子电路包括第一数据选择器和或门;每级所述滤波子电路包括数据寄存器和比较器;

第1级所述滤波子电路的所述数据寄存器的输入端连接所述第一数据选择器的输出端,输出端连接第2级所述滤波子电路的所述数据寄存器的输入端;

第N级所述滤波子电路的所述数据寄存器的输入端,连接第N-1级滤波子电路的所述数据寄存器的输入端,输出端连接所述主输出端;

第M级滤波子电路的数据寄存器的输入端连接第M-1级滤波子电路的数据寄存器的输出端,输出端连接第M+1级滤波子电路的数据寄存器的输入端;

每级所述滤波子电路中,所述比较器具有第一输入端、第二输入端和输出端,其第一输入端与所述数据寄存器的输出端连接,第二输入端与所述主输入端连接,输出端连接所述或门的多个输入端中的一个;其中,所述比较器的输出端输出所述比较结果;

所述第一数据选择器具有第一输入端、第二输入端、第一选择端和输出端,其第一输入端与所述主输入端连接,第二输入端连接占位符输出端,第一选择端与所述或门的输出端连接。

在一些示例中,每级所述滤波子电路的所述数据寄存器还包括时钟输入端,其连接时钟信号源;各个所述数据寄存器的时钟输入端连接同一时钟信号源。

在一些示例中,每级所述滤波子电路还包括:频次统计单元,其与该所述滤波子电路的所述比较器和所述数据寄存器连接,用于统计所述主输入端接收的各数据中,相同的数据的频次。

在一些示例中,所述数据互斥滤波电路还包括:主频次数据输出端;所述频次统计单元包括:频次寄存器和第二数据选择器;其中,

每级所述滤波子电路中,所述第二数据选择器具有第一输入端、第二输入端、第二选择端和输出端,第一输入端、第二输入端均连接所述频次寄存器的输出端,且第二输入端所输入的频次数据等于第一输入端所输入的频次数据与常数1之和;第二选择端连接所述比较器的输出端;其中,

第N级滤波子电路的第二数据选择器的输出端连接所述主频次数据输出端,其他各级滤波子电路的第二数据选择器的输出端连接下一级滤波子电路的所述频次寄存器的输入端;

第1级滤波子电路的所述频次寄存器的输入端连接所述或门的输出端。

在一些示例中,所述频次统计单元还包括:加法器,其输入端连接在所述频次寄存器的输出端;其输出端连接所述第二数据选择器的第二输入端。

在一些示例中,所述预处理子电路还包括:非门;所述非门的输入端连接所述或门的输出端;所述非门的输出端连接第1级滤波子电路的所述频次寄存器的输入端。

在一些示例中,还包括:数据筛选子电路,所述数据筛选子电路能够过滤无效数据,通过有效数据;输入所述主输入端的数据经过所述数据筛选子电路后,输出给所述预处理子电路和各级所述滤波子电路。

在一些示例中,所述数据筛选子电路包括与门,具有输入端、使能端和一个输出端,其输入端作为所述主输入端,其使能端连接所述使能信号端,其输出端连接所述预处理子电路和各级所述滤波子电路。

第二方面,本公开实施例还提供一种数据互斥滤波方法,应用于上述数据互斥滤波电路,该方法包括以下步骤:

每级滤波子电路比较主输入端当前接收的输入数据与自身存储的历史数据是否相同,并将比较结果反馈给预处理子电路;

预处理子电路根据各级滤波子电路所反馈的比较结果,向第1级滤波子电路输出对应的数据;

若任一级所述滤波子电路反馈的比较结果为相同,则输出预设的占位符;若各级所述滤波子电路反馈的比较结果均为不同,则输出所述输入数据。

附图说明

图1为本公开实施例提供的数据互斥滤波电路的一种实施例的架构示意图;

图2为本公开实施例提供的数据互斥滤波电路的预处理子电路的一种实施例的电路结构图;

图3为本公开实施例提供的数据互斥滤波电路的滤波子电路的一种实施例的电路结构图;

图4为本公开实施例提供的数据互斥滤波电路的一种实施例的电路结构图;

图5为本公开实施例提供的数据互斥滤波电路的另一种实施例的电路结构图(两级滤波子电路的实施例);

图6为本公开实施例提供的数据互斥滤波电路的预处理子电路的另一种实施例的电路结构图;

图7为本公开实施例提供的数据互斥滤波电路的滤波子电路的另一种实施例的电路结构图;

图8为本公开实施例提供的数据互斥滤波电路的另一种实施例的电路结构图;

图9为本公开实施例提供的数据互斥滤波电路的另一种实施例的电路结构图(两级滤波子电路的实施例)

图10为本公开实施例提供的数据互斥滤波电路的一种实施例的仿真波形示意图(两级滤波子电路的实施例);

图11为本公开实施例提供的数据互斥滤波电路的另一种实施例的仿真波形示意图(八级滤波子电路的实施例);

图12为本公开实施例提供的数据互斥滤波电路的另一种实施例的架构示意图;

图13为本公开实施例提供的数据互斥滤波电路的另一种实施例的电路结构图;

图14为本公开实施例提供的数据互斥滤波方法的一种实施例的流程图。

具体实施方式

为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅是本发明的部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。

附图中各部件的形状和大小不反映真实比例,目的只是为了便于对本发明实施例的内容的理解。

除非另外定义,本公开使用的技术术语或者科学术语应当为本公开所属领域内具有一般技能的人士所理解的通常意义。本公开中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。同样,“一个”、“一”或者“该”等类似词语也不表示数量限制,而是表示存在至少一个。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。

本公开实施例不限于附图中所示的实施例,而是包括基于制造工艺而形成的配置的修改。因此,附图中例示的区具有示意性属性,并且图中所示区的形状例示了元件的区的具体形状,但并不是旨在限制性的。

第一方面,本公开实施例提供一种数据互斥滤波电路,包括预处理子电路100和N级滤波子电路200,其中,N为整数,且N≥2。其中,N级滤波子电路200级联,分别称为第1级滤波子电路200-1,第2级滤波子电路200-2……第N级滤波子电路200-N。

具体地,若N=2,即数据互斥滤波电路仅包括2级滤波子电路200,则第1级滤波子电路200-1的输入端连接预处理子电路100,第1级滤波子电路200-1的输出端连接第2级滤波子电路的输入端;第2级滤波子电路的输入端连接第1级滤波子电路的输出端,第2级滤波子电路的输出端连接数据互斥滤波电路的主输出端IN。

当N>2时,则第1级滤波子电路200-1的输入端连接预处理子电路100,第1级滤波子电路200-1的输出端连接第2级滤波子电路的输入端;第N级(即最后一级)滤波子电路200-N的输入端连接第N-1级滤波子电路200-(N-1)的输出端,第N级滤波子电路200-N的输出端连接主输出端IN;第M级滤波子电路200-M的输入端连接第M-1级滤波子电路200-(M-1)的输出端,第M级滤波子电路200-M的输出端连接第M+1级滤波子电路200-(M+1)的输入端;其中,M为整数,且1<M<N。

也就是说,对于位于第1级滤波子电路和最后一级滤波子电路之间的滤波子电路,该滤波子电路的输入端总是连接上一级滤波子电路的输出端,该滤波子电路的输出端总是连接下一级滤波子电路的输入端,这样当一级滤波子电路存入一个输入数据,该滤波子电路原本存储的历史数据传输给下一级滤波子电路进行存储。每一次数据互斥滤波电路的主输入端IN当前接收的输入数据,总是由预处理子电路100决定是否存入第1级滤波子电路200-1,若第1级滤波子电路200-1存入输入数据,则第1级滤波子电路200-1自身存储的历史数据传输给第2级滤波子电路200-2,第2级滤波子电路200-2存储的历史数据传输给第3级滤波子电路200-3……第N级滤波子电路200-N存入第N-1级滤波子电路200-(N-1)传入的历史数据,再将自身存储的历史数据通过主输出端OUT作为数据互斥滤波电路的输出数据data_out输出至后续电路。也即数据总是从第1级滤波子电路200-1逐级向第N级传递,第N级输出的数据即为数据互斥滤波电路的输出数据data_out,即形成流水线式的数据互斥滤波电路,能够实现数据的连续输入和连续输出,能够与管线(Pipeline)架构相适配。

进一步地,每当数据互斥滤波子电路的主输入端IN接收输入数据,首先会传输给各级滤波子电路200中的每级滤波子电路200(但先不进行存储),每级滤波子电路200能够比较主输入端IN当前接收的输入数据data_in与自身存储的历史数据是否相同,并将比较结果反馈给预处理子电路100;预处理子电路100根据各级滤波子电路200所反馈的比较结果,向第1级滤波子电路200输出对应的数据(例如预设的占位符或当前接收的输入数据),具体地,若任一级滤波子电路200反馈的比较结果为相同,也就是说当前输入数据与各级滤波子电路200中的任一级滤波子电路200存储的历史数据相同,则预处理子电路100输出向第1级滤波子电路200输出预设的占位符;若各级滤波子电路200反馈的比较结果均为不同,也就是说当前输入数据与各级滤波子电路200存储的历史数据均不同,则预处理子电路100输出向第1级滤波子电路200-1输出输入数据data_in。预处理子电路100向第1级滤波子电路200-1输出预设的占位符或输入数据data_in,第1级滤波子电路200-1则存入相应的占位符或输入数据data_in,并将子身存储的历史数据存入第2级滤波子电路200-2,接着数据按照上述逐级更新。由于在输入数据data_in与各级滤波子电路200中的历史数据存在相同时,则将输入数据data_in过滤;仅在输入数据data_in与各级滤波子电路200中的历史数据均不同时,将输入数据data_in存入第1级滤波子电路200-1,因此能够在预设范围内,使多个连续输入的输入数据data_in形成的数据流中的数据彼此互斥,也就是说,若数据流的每一段预设范围内的各个数据存在相同数据,数据互斥电路也只输出第一个该数据,将其他与该数据相同的数据过滤掉,输出占位符,相当于将相同数据合并,以避免输出混乱或读写地址冲突等问题,并且能够避免对传输带宽的浪费,提高运算效率。可以理解的是,数据流中的每一数据经过数据互斥滤波电路,都仅与各级滤波子电路200中存入的历史数据进行比较,因此,滤波子电路200的个数与预处理子电路100的个数即限定出数据互斥滤波电路的滤波范围(即上述预设范围),预处理子电路100是必然存在的,且数量为1,因此通过调整滤波子电路200的个数,能够调整数据互斥滤波电路的滤波范围。可以理解的是,对于数据处理而言,上述滤波范围相当于邻域的大小,即数据流在预设范围内互斥,相当于数据流在预设的邻域内互斥。

需要说明的是,对于初始化状态的数据互斥滤波电路,每级滤波子电路200存储的数据均为0,则可视作初始化状态下每级滤波子电路200的历史数据均为0。

需要说明的是,占位符可以为任意常数,例如占位符为0,占位符仅用于占位,并不影响数据流的数据。以下皆以占位符为0为例进行说明。

在一些示例中,预处理子电路100可以具有多种电路结构,滤波子电路200也可以具有多种电路结构。例如,参见图2-图4,预处理子电路100可以包括第一数据选择器MUX1和或门(图中OR表示的器件),第一数据选择器MUX1具有第一输入端m1、第二输入端m2、第一选择端m4和输出端m3,或门具有多个输入端r1-rN,和一个输出端o1。每级滤波子电路200包括数据寄存器Reg_data和比较器C,数据寄存器Reg_data具有输入端d和输出端q,比较器C具有第一输入端p1、第二输入端p2和输出端p3。

需要说明的是,为了便于描述每级滤波子电路200的数据寄存器Reg_data和比较器C,将第1级滤波子电路-第N级滤波子电路的数据寄存器分别记作数据寄存器Reg_data-1、Reg_data-2……Reg_data-N;数据寄存器Reg_data的输入端d和输出端q分别记作d1、d2……dN和q1、q2……qN;比较器C分别记作C-1、C-2……C-N;比较器C的第一输入端p1、第二输入端p2和输出端p3分别记作p11、p21……pN1;p12、p22……pN2;p13、p23……pN3。

具体地,参见图4、图5,第1级滤波子电路200-1的数据寄存器Reg_data-1的输入端d1连接预处理子电路100的第一数据选择器MUX1的输出端m3,第1级滤波子电路200-1的数据寄存器Reg_data-1的输出端q1连接第2级滤波子电路200-2的数据寄存器Reg_data-2的输入端d2;第N级滤波子电路200-N的数据寄存器Reg_data-N的输入端dN,连接第N-1级滤波子电路200-(N-1)的数据寄存器Reg_data-(N-1)的输入端d(N-1),第N级滤波子电路200-N的数据寄存器Reg_data-N的输出端qN连接数据互斥滤波子电路的主输出端OUT1。若N=2,则参见图5,数据互斥滤波电路中仅包含第1级滤波子电路200-1和第2级滤波子电路200-2,相应地,若N=2,则数据互斥滤波电路的邻域为N+1=3,数据流中的任意三个相邻的数据内,存在相同数据,则只输出第一个该数据,过滤其他与该数据相同的数据,以下同理。若N>2,第M级滤波子电路200-M的数据寄存器Reg_data-M的输入端dM连接第M-1级滤波子电路200-(M-1)的数据寄存器Reg_data(M-1)的输出端q(M-1),第M级滤波子电路200-M的数据寄存器Reg_data-M的输出端qM连接第M+1级滤波子电路200-(M+1)的数据寄存器Reg_data-(M+1)的输入端d(M+1)。若某一级滤波子电路200的数据寄存器Reg_data接收并存入一个数据,则将自身存储的历史数据传输至下一级滤波子电路200的数据寄存器Reg_data,依次逐渐位移数据,最后一级滤波子电路200的数据寄存器Reg_data则将自身存储的历史数据作为数据互斥滤波电路的输出数据data_out输出。

进一步地,每级滤波子电路200中,比较器C的第一输入端p1与该级滤波子电路200的数据寄存器Reg_data的输出端q连接,比较器C的第二输入端p2与数据互斥电路的主输入端IN连接,比较器C的输出端p3连接预处理电路100的或门的多个输入端r1-rN中的一个,或门的输出端o1则连接第一数据选择器MUX1的第一选择端m4。第一数据选择器MUX1的第一输入端m1与数据互斥滤波电路的主输入端IN连接,第一数据选择器MUX1的第二输入端m2连接占位符输出端h,占位符输出端h输出占位符,第一数据选择器MUX1的第一选择端m4与或门的输出端o1连接。

在一些示例中,每级滤波子电路200的数据寄存器Reg_data还包括时钟输入端,时钟输入端连接时钟信号源,时钟信号源输出时钟信号clk。时钟信号clk包括交替的高电平和低电平,每一交替的高电平和低电平为一时钟周期clk cycle,每一时钟周期clk cycle主信号端IN接收一输入数据,也就是说,数据互斥滤波电路的单个数据的处理周期为一时钟周期clk cycle接收一输入数据,能够与流水线(Pipeline)架构相适配。并且,由于预处理电路100为纯逻辑电路,可以视作没有延迟,因此,本数据互斥滤波电路的读写潜伏期(latency)可以为每级滤波子电路200的处理周期的时间,也即,latency为N个时钟周期clkcycle。对于预设邻域(也即预设范围),邻域的大小与延时(latency)的关系为K-1,K为邻域的大小,K为整数,且K=N-1。以图5所示的3邻域数据互斥滤波电路为例,该数据互斥滤波电路的单个数据的处理周期为1时钟周期clk cycle,latency为2个时钟周期clk cycles。

需要说明的是,由于本公开实施例提供的数据互斥滤波电路,由于单个数据处理周期为1个时钟周期clk cycle,因此,可以理解的是,本文中提到的一个输入数据data_in或输出数据data_out均为数据流在每一时钟周期clk cycle的数据。

在一些示例在,各级滤波子电路200的数据寄存器Reg_data的时钟输入端连接同一时钟信号源,接收同一时钟信号clk;当然,也可以连接不同的时钟信号源,但各个时钟信号源输出周期相同的时钟信号clk,在此不做限定。

本公开实施例提供的数据互斥滤波子电路的工作原理为:数据流通过数据互斥滤波电路的主输入端IN输入,再经过滤波(在预设邻域内合并相同数据)后由主输出端OUT1输出。具体地,响应于时钟信号clk,每个时钟周期clk cycle数据互斥滤波电路的主输入端IN接收一个输入数据data_in,输入数据data_in首先传输至预处理子电路100的第一数据选择器MUX1的第一输入端m1,和各级滤波子电路200的比较器C的第二输入端p2,而每个比较器C的第一输入端p1分别连接所属的滤波子电路200中的数据寄存器Reg_data的输出端q,以获取数据寄存器Reg_data当前存储的历史数据,比较器C将当前输入数据data_in与数据寄存器Reg_data存储的历史数据进行比较,确定二者是否相同,并将比较结果通过比较器C的输出端p3反馈给预处理子电路100的或门的多个输入端r1-rN中的一个。其中,若比较器C比较得出当前输入数据data_in与数据寄存器Reg_data存储的历史数据相同,则输出端p3输出的比较结果为1;若比较得出当前输入数据data_in与数据寄存器Reg_data存储的历史数据不同,则输出端p3输出的的比较结果为0。

或门的多个输入端r1-rN分别接收各级滤波子电路200的比较器C的输出端p3反馈的比较结果,若各级滤波子电路200中的任一级滤波子电路200的数据寄存器Reg_data存储的历史数据与当前输入数据data_in相同,即若任一级滤波子电路200的比较器C的输出端p3反馈的比较结果为1,则或门的输出端01向第一数据选择器MUX1的第一选择端m4输出1,选通第二输入端m2,将占位符输出端h输出的占位符通过第一数据选择器MUX1的输出端m3写入第1级滤波子电路200-1的数据寄存器Reg_data-1的输入端d1;相应的,若各级滤波子电路200中的任一级滤波子电路200的数据寄存器Reg_data存储的历史数据与当前输入数据data_in均不同,即若各级滤波子电路200的比较器C的输出端p3反馈的比较结果均为0,则或门的输出端01向第一数据选择器MUX1的第一选择端m4输出0,选通第一输入端m1,将当前的输入数据data_in通过第一数据选择器MUX1的输出端m3写入第1级滤波子电路200-1的数据寄存器Reg_data-1的输入端d1;无论第1级滤波子电路200-1的数据寄存器Reg_data-1存入占位符还是输入数据data_in,均会在存入对应数据时将原本自身存储的历史数据传输给第2级滤波子电路200-2的数据寄存器Reg_data-2;第2级滤波子电路200-2的数据寄存器Reg_data-2存入第1级滤波子电路200-1的数据寄存器Reg_data-1传输的数据后,将原本存储的历史数据传输给第3级滤波子电路200-3的数据寄存器Reg_data-3……逐渐存入数据后,第N级滤波子电路200-N的数据寄存器Reg_data-N的输出端qN将自身存储的历史数据作为输出数据data_out经由主输出端OUT1输出。

需要说明的是,每一级滤波子电路200的数据寄存器Reg_data进行存入及输出数据经理1个时钟周期clk cycle,因此,从预处理子电路100接收一个输入数据data_in,到第N级滤波子电路200-N的数据寄存器Reg_data-N的输出端qN输出输出数据data_out共经历N个时钟周期clk cycles,即数据互斥滤波电路的latency为N个时钟周期clk cycles。

综上所述,在每一输入数据data_in输入电路,预处理子电路100判断是否将输入数据data_in压入第1级滤波子电路200-1;若在预设邻域的范围内(即各级滤波子电路200)没有与输入数据data_in相同的数据,则将输入数据data_in压入第1级滤波子电路200-1;若在预设邻域的范围内(即各级滤波子电路200)存在与输入数据data_in相同的数据,则将该输入数据data_in过滤,将占位符压入第1级滤波子电路200-1。且数据(占位符或输入数据data_in)存入第1级滤波子电路200-1后,响应于时钟信号clk逐级传递,因此,可以保证一个数据流经过数据互斥滤波电路的过滤后,在任一邻域范围内均没有相同的数据,且不改变数据流的排序。若根据后续电路的处理周期设置邻域的范围(即滤波子电路200的个数),能够避免后续电路在相邻周期内连续接收相同数据,造成输出混乱,误动作等;或在数据处理中,避免短时间内存在大量无效的相同数据,造成带宽浪费和读取冲突等问题。

在一些示例中,参见图6-图9,在本公开实施例提供的数据互斥滤波电路中,每级滤波子电路200还包括频次统计单元,频次统计单元与该级滤波子电路200的比较器C1连接,且和频次统计单元与该级滤波子电路200的数据寄存器Reg_data连接,频次统计单元用于统计主输入端接收的各数据中,相同的数据的频次。也即,数据互斥滤波电路能够对数据流中预设邻域的相同数据进行合并,且能够统计相同的数据出现的次数(即频次)。例如,若本公开实施例提供的数据互斥滤波电路应用在灰度直方图统计领域,将图像的灰阶值组成的数据流输入本电路,能够在预设邻域内将相同的灰阶值进行合并,并且能够统计相同灰阶值的个数(即频次),因此能够减少数据处理量,将滤波后的数据和频次统计结果输入SRAM,能够避免数据流输入静态随机存取存储器(Static Random-Access Memory,SRAM)后,SRAM读写同一地址(address)的latency冲突的问题,并且,能够利用滤波后的数据和频次统计结果对图像进行均衡化处理。

在一些示例中,参见图6-图9,数据互斥滤波电路还包括主频次数据输出端OUT2,用于输出频次统计结果。频次统计单元可以包括多种电路结构,例如可以包括频次寄存器Reg_label和第二数据选择器MUX2。其中,频次寄存器Reg_label具有输入端b和输出端e,第二数据选择器MUX2具体第一输入端u1、第二输入端u2、第二选择端u4和输出端u3。

需要说明的是,为了便于描述每级滤波子电路200的频次统计单元的频次寄存器Reg_label和第二数据选择器MUX2,将第1级滤波子电路-第N级滤波子电路的频次寄存器Reg_label分别记作Reg_label-1、Reg_label-2……Reg_label-N;频次寄存器Reg_label输入端b和输出端e分别记作b1、b2……bN和e1、e2……eN;第二数据选择器MUX2分别记作MUX2-1、MUX2-2……MUX2-N;第二数据选择器MUX2的第一输入端u1、第二输入端u2、第二选择端u4和输出端u3分别记作u11、u21……uN1;u12、u22……uN2;u13、u23……uN3;u14、u24……uN4。

具体地,参见图8、图9,每级滤波子电路200中,第二数据选择器MUX2的第一输入端u1、第二输入端u2均连接该第二数据选择器MUX2所属的滤波子电路200的频次寄存器Reg_label的输出端e,且第二数据选择器MUX2的第二输入端u2所输入的频次数据,等于第二数据选择器MUX2的第一输入端u1所输入的频次数据与常数1之和;第二数据选择器MUX2的第二选择端u4连接该第二数据选择器MUX2所属的滤波子电路200的比较器C的输出端p3,接收比较器C输出的比较结果。其中,第N级(最后一级)滤波子电路200-N的第二数据选择器MUX2-N的输出端uN3连接数据互斥滤波电路的主频次数据输出端OUT2,即第N级(最后一级)滤波子电路200-N的第二数据选择器MUX2-N的输出端uN3输出的频次数据,作为主频次数据输出端OUT2的频次数据label_out。其他各级滤波子电路200的第二数据选择器MUX2的输出端u3连接下一级滤波子电路200的频次寄存器Reg_label的输入端e。

进一步地,第1级滤波子电路200-1的频次寄存器Reg_label-1的输入端b1连接预处理子电路100,具体可以连接预处理子电路100的或门的输出端01,第1级滤波子电路200-1的频次寄存器Reg_label-1的输出端e1连接第1级滤波子电路200-1的第二数据选择器MUX2-1的第一输入端u11和第二输入端u22。之后各级滤波子电路200的频次寄存器Reg_label的输入端b均连接上一级滤波子电路300的频次寄存器Reg_label的输出端e,各级滤波子电路200的频次寄存器Reg_label的输出端均连接该频次寄存器Reg_label所属的滤波子电路200的第二数据选择器MUX2的第一输入端u1和第二输入端u2。

本公开实施例提供的数据互斥滤波子电路的工作原理为:任一级滤波子电路200的第二数据选择器MUX根据比较器C的比较结果,选择统计的数据的频次数据加1或者维持原频次数据,以进行统计,并将数据的频次数据随数据存入下一级滤波子电路。具体地,每级滤波子电路200的比较器C比较得出当前输入数据data_in与数据寄存器Reg_data存储的历史数据是否相同,若相同,则比较器C的输出端p3输出1;若不同,则比较器C的输出端p3输出0。而比较器C的输出端p3连接其所属的滤波子电路200的第二数据选择器MUX2的第二选择端u4。响应于第二选择端u4的信号,若第二数据选择器MUX2的第二选择端u4输出1,即代表当前输入数据data_in与数据寄存器Reg_data存储的历史数据相同,因此当前频次寄存器Reg_label存储的对应该历史数据的频次数据应当加1,则选通第二数据选择器MUX2的第二输入端u2,将加1后的频次数据由输出端u3写入下一级滤波子电路200的频次寄存器Reg_label的输入端b;相应的,若第二数据选择器MUX2的第二选择端u4输出0,即代表当前输入数据data_in与数据寄存器Reg_data存储的历史数据不同,因此当前频次寄存器Reg_label存储对应该历史数据的频次数据保持不变,则选通第二数据选择器MUX2的第一输入端u1,将原有的频次数据由输出端u3写入下一级滤波子电路200的频次寄存器Reg_label的输入端b。每当某级滤波子电路200的频次寄存器Reg_label接收到上一级频次寄存器Reg_label输入的频次数据,均会在存入频次数据时将原本自身存储的历史频次数据传输给下一级滤波子电路200的频次寄存器Reg_label,逐渐传递频次数据后,第N级滤波子电路200-N的频次寄存器Reg_label-N的输出端eN将自身存储的历史频次数据作为频次数据label_out经由主频次数据输出端OUT2输出。

并且,由于在每一时钟周期,滤波子电路200的数据寄存器Reg_data均会将自身存储的历史数据存入下一级滤波子电路200的数据寄存器Reg_data,因此,该数据寄存器Reg_data所存储的历史数据对应的频次数据,也应该随历史数据传递至下一级滤波子电路200,因此,每级滤波子电路200的第二数据选择器MUX2的输出端u3总是连接下一滤波子电路200的频次寄存器Reg_label的输入端d2,保证数据和数据的频次数据的位置是对应的,从而经过本实施例提供的数据互斥滤波电路后,数据流在预设邻域内的相同数据被合并,且能够统计数据流内各数据出现的频次。

在一些示例中,频次统计单元还可以包括加法器add,加法器add能够做自加1运算。具体地,加法器add的输入端连接在该加法器add所属的滤波子电路200的频次寄存器Reg_label的输出端e;加法器add的输出端连接第二数据选择器MUX2的第二输入端u2。第二数据选择器MUX2的第一输入端u1则不设置加法器,从而频次寄存器Reg_label的输出端e输出的频次数据连接第二数据选择器MUX2的第一输入端u1和第二输入端u2,从而第二输入端u2的频次数据=第一输入端u1的频次数据+1。

需要说明的是,为了便于描述每级滤波子电路200的频次统计单元的加法器add,将第1级滤波子电路-第N级滤波子电路的加法器add分别记作add-1、add-2……add-N。

在一些示例中,预处理子电路100还可以包括非门(图中NOT表示的器件)非门包括输入端t1和输出端t2,非门的输入端t1连接或门的输出端o1;非门的输出端t2连接第1级滤波子电路200的频次寄存器Reg_label的输入端b1。若将数据互斥滤波电路初始化,各级滤波子电路200的数据寄存器Reg_data中的数据全为0,因此,当第一个非0的输入数据data_in输入主输入端IN,各级滤波子电路200的比较器C的比较结果均为0(即不同),反馈给预处理子电路100的或门后,或门的输出端o1输出0,则输入数据data_in存入第1级滤波子电路200-1的数据寄存器Reg_data,这时对应的频次寄存器Reg_label应当存入1,但若第1级滤波子电路的频次寄存器Reg_label的输入端b1直接连接或门的输出端o1,则会存入0,因此,或门的输出端o1的输出结果经过非门取反后为1后,再输入滤波子电路的频次寄存器Reg_label的输入端b1,使频次寄存器Reg_label存入1,才能保证统计结果的准确。

在一些示例中,每级滤波子电路200的频次寄存器Reg_label还包括时钟输入端,频次寄存器Reg_label的时钟输入端连接时钟信号源,时钟信号源输出时钟信号clk。每一时钟周期clk cycle频次寄存器Reg_label存入一个频次数据并输出一个历史频次数据。

在一些示例在,各级滤波子电路200的数据寄存器Reg_data和频次寄存器Reg_label的时钟输入端连接同一时钟信号源,接收同一时钟信号clk;当然,也可以连接不同的时钟信号源,但各个时钟信号源输出周期相同的时钟信号clk,在此不做限定。

参见图9、图10,图10为以图9的数据互斥滤波电路为模型进行仿真的波形图,数据互斥滤波电路包括2级滤波子电路200,即N=2,则latency=N个clk cycles=2个时钟周期clk cycles,预设的邻域为N+1=3,即数据流在3个时钟周期clk cycles内的相同输入数据被合并,且能够统计各数据的频次。经过仿真验证,可以看到当输入数据data_in输出第一个8时,在2个时钟周期clk cycles后输出数据data_out输出8,可见latency为2个时钟周期clk cycles。并且,在3个时钟周期clk cycles内输入数据data_in具有两个8,因此两个8合并为1个8进行输出,另一时钟周期clk cycles输出占位符0,频次数据为2;再继续看到输入数据data_in在5个时钟周期clk cycles内均为96,由于电路的邻域范围为3clk cycles,因此5个周期的96被分为3个96和2两个96进行合并,输出数据data_out对应为1个clk cycle的96+3个clk cycles的占位符0+1个clk cycle的96,频次数据也分别表示为3个96和2个96。由此可验证,本数据互斥滤波电路能够实现上述数据互斥滤波功能和频次统计功能。

需要说明的是,上述均以各级滤波子电路200的数据寄存器Reg_data和频次寄存器Reg_label为8位寄存器为例进行说明,当然,也可以选取其他位的寄存器,在此不做限定。

进一步地,也可以通过调整预设的邻域范围(即增/减滤波子电路200的个数),进行更大范围的数据互斥滤波。例如,参见图11,图11为数据互斥滤波电路包括8级滤波子电路200,即N=8,则latency=8个clk cycles=8个时钟周期clk cycles,预设的邻域为N+1=9,即数据流在9个时钟周期clk cycles内的相同输入数据被合并,且能够统计各数据的频次。经过仿真验证,可以看到当输入数据data_in输出第一个8时,在9个时钟周期clkcycles后输出数据data_out输出8,可见latency为9个时钟周期clk cycles。并且,在9个时钟周期clk cycles内输入数据data_in内的相同数据均被合并,且得出正确的频次数据。因此,可以根据需要调整所需的邻域范围。

在一些示例中,参见图12-图13,本公开实施例提供的数据互斥滤波电路还可与包括数据筛选子电路300,数据筛选子电路300能够过滤数据流中的无效数据,而使数据流中的有效数据通过,数据流经过数据筛选子电路300筛选出有效数据作为输入数据data_in输入预处理子电路100和各滤波子电路200。

在一些示例中,数据筛选子电路300可以包括多种类型的电路结构,例如,数据筛选子电路300可以包括与门(图中AND表示的器件),与门具有输入端a1、使能端en和一个输出端a2,与门的输入端a1作为数据互斥滤波电路的主输入端IN接收输入数据data_in;与门的使能端en连接使能信号端,使能信号端提供使能信号;与门的输出端a2连接预处理子电路100和各级滤波子电路200。通过调制使能信号的有效电平,只有当使能信号输出有效电平时,输入数据data_in为有效数据进入后续预处理子电路100和滤波子电路200;若使能信号为无效电平,则输入数据data_in作为无效数据被过滤。

综上所述,当本公开实施例提供的数据互斥滤波电路可以应用在多种领域,包括图像压缩编解码、数据统计、数据信道(压缩)编解码等,通过将数据流中的相同数据合并,能够有效提高运算效率。本数据互斥滤波电路适配Pipeline架构使其具备运算速度快、支持带宽高等技术优势,并且,该方案可适用于定制集成电路(Application SpecificIntegrated Circuit,ASIC)等,有利于集成化。

第二方面,参见图14,本公开实施例还提供一种数据互斥滤波方法,应用于上述数据互斥滤波电路,该方法包括以下步骤:

S1、每级滤波子电路200比较主输入端IN当前接收的输入数据data_in与自身存储的历史数据是否相同,并将比较结果反馈给预处理子电路100。

具体地,响应于时钟信号clk,每个时钟周期clk cycle数据互斥滤波电路的主输入端IN接收一个输入数据data_in,输入数据data_in首先传输至预处理子电路100的第一数据选择器MUX1的第一输入端m1,和各级滤波子电路200的比较器C的第二输入端p2,而每个比较器C的第一输入端p1分别连接所属的滤波子电路200中的数据寄存器Reg_data的输出端q,以获取数据寄存器Reg_data当前存储的历史数据,比较器C将当前输入数据data_in与数据寄存器Reg_data存储的历史数据进行比较,确定二者是否相同,并将比较结果通过比较器C的输出端p3反馈给预处理子电路100的或门的多个输入端r1-rN中的一个。其中,若比较器C比较得出当前输入数据data_in与数据寄存器Reg_data存储的历史数据相同,则输出端p3输出的比较结果为1;若比较得出当前输入数据data_in与数据寄存器Reg_data存储的历史数据不同,则输出端p3输出的的比较结果为0。

S2、预处理子电路100根据各级滤波子电路200所反馈的比较结果,向第1级滤波子电路200输出对应的数据。

具体地,或门的多个输入端r1-rN分别接收各级滤波子电路200的比较器C的输出端p3反馈的比较结果。

S31、若任一级滤波子电路200反馈的比较结果为相同,则预处理子电路100向第1级滤波子电路200输出预设的占位符。

具体地,若各级滤波子电路200中的任一级滤波子电路200的数据寄存器Reg_data存储的历史数据与当前输入数据data_in相同,即若任一级滤波子电路200的比较器C的输出端p3反馈的比较结果为1,则或门的输出端01向第一数据选择器MUX1的第一选择端m4输出1,选通第二输入端m2,将占位符输出端h输出的占位符通过第一数据选择器MUX1的输出端m3写入第1级滤波子电路200-1的数据寄存器Reg_data-1的输入端d1。

S31'、若各级滤波子电路200反馈的比较结果均为不同,则预处理子电路100向第1级滤波子电路200输出输入数据。

具体地,若各级滤波子电路200中的任一级滤波子电路200的数据寄存器Reg_data存储的历史数据与当前输入数据data_in均不同,即若各级滤波子电路200的比较器C的输出端p3反馈的比较结果均为0,则或门的输出端01向第一数据选择器MUX1的第一选择端m4输出0,选通第一输入端m1,将当前的输入数据data_in通过第一数据选择器MUX1的输出端m3写入第1级滤波子电路200-1的数据寄存器Reg_data-1的输入端d1。

可选地,本公开实施例提供的数据互斥滤波方法还包括:没当一级滤波子电路200存入输入数据data_in,则将自身存储的历史数据输入下一滤波子电路200。

具体地,输入数据data_in总是逐渐传输的,无论第1级滤波子电路200-1的数据寄存器Reg_data-1存入占位符还是输入数据data_in,均会在存入对应数据时将原本自身存储的历史数据传输给第2级滤波子电路200-2的数据寄存器Reg_data-2;第2级滤波子电路200-2的数据寄存器Reg_data-2存入第1级滤波子电路200-1的数据寄存器Reg_data-1传输的数据后,将原本存储的历史数据传输给第3级滤波子电路200-3的数据寄存器Reg_data-3……逐渐存入数据后,第N级滤波子电路200-N的数据寄存器Reg_data-N的输出端qN将自身存储的历史数据作为输出数据data_out经由主输出端OUT1输出。

可选地,本公开实施例提供的数据互斥滤波方法还包括:对每个输入数据的频次进行统计,并随该输入数据传输至下一滤波子电路。

具体地,任一级滤波子电路200的第二数据选择器MUX根据比较器C的比较结果,选择统计的数据的频次数据加1或者维持原频次数据,以进行统计,并将数据的频次数据随数据存入下一级滤波子电路。具体地,每级滤波子电路200的比较器C比较得出当前输入数据data_in与数据寄存器Reg_data存储的历史数据是否相同,若相同,则比较器C的输出端p3输出1;若不同,则比较器C的输出端p3输出0。而比较器C的输出端p3连接其所属的滤波子电路200的第二数据选择器MUX2的第二选择端u4。响应于第二选择端u4的信号,若第二数据选择器MUX2的第二选择端u4输出1,即代表当前输入数据data_in与数据寄存器Reg_data存储的历史数据相同,因此当前频次寄存器Reg_label存储的对应该历史数据的频次数据应当加1,则选通第二数据选择器MUX2的第二输入端u2,将加1后的频次数据由输出端u3写入下一级滤波子电路200的频次寄存器Reg_label的输入端b;相应的,若第二数据选择器MUX2的第二选择端u4输出0,即代表当前输入数据data_in与数据寄存器Reg_data存储的历史数据不同,因此当前频次寄存器Reg_label存储对应该历史数据的频次数据保持不变,则选通第二数据选择器MUX2的第一输入端u1,将原有的频次数据由输出端u3写入下一级滤波子电路200的频次寄存器Reg_label的输入端b。每当某级滤波子电路200的频次寄存器Reg_label接收到上一级频次寄存器Reg_label输入的频次数据,均会在存入频次数据时将原本自身存储的历史频次数据传输给下一级滤波子电路200的频次寄存器Reg_label,逐渐传递频次数据后,第N级滤波子电路200-N的频次寄存器Reg_label-N的输出端eN将自身存储的历史频次数据作为频次数据label_out经由主频次数据输出端OUT2输出。

可以理解的是,以上实施方式仅仅是为了说明本发明的原理而采用的示例性实施方式,然而本发明并不局限于此。对于本领域内的普通技术人员而言,在不脱离本发明的精神和实质的情况下,可以做出各种变型和改进,这些变型和改进也视为本发明的保护范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号