一种坏点遮盖方法和系统
技术领域
本发明涉及数字图像处理领域,特别涉及一种坏点遮盖方法和系统。
技术背景
现有技术中的坏点遮盖是首先通过特殊程序检测出图像传感器的坏点,将坏点的坐标保存在一坏点表中;然后芯片再根据该坏点表对图像传感器实时传输的显示数据进行处理,以遮盖算法对落入坏点坐标的显示数据进行遮盖。其中,坏点表存储在芯片内部的单口SRAM(静态存储器)中。现有的SRAM一般只能储存1024个坏点坐标,每个坏点坐标的位宽为12-bit。
然而随着图像传感器分辨率的不断提高,图像传感器的坏点数量以及坏点坐标的位宽也不断增加。以4K分辨率的图像传感器为例,坏点坐标的位宽至少要扩展到13-bit,这样现有SRAM的大小则至少需要增加4%。此外,4K分辨率的像素点数量高达4096*2160个,即使只有其中1%的像素点为坏点,芯片内SRAM的尺寸也必须成百倍增加。而增加SRAM的尺寸不仅有悖于当今社会对芯片“微型化”的要求,还会增加芯片的制造成本。
发明内容
有鉴于此,本发明实施例提供一种新的坏点遮盖方法和系统,解决了现有技术中由于芯片内SRAM的大小有限,而使得坏点表存储受限,以及芯片制造成本增加的问题。
本发明实施例提供了一种坏点遮盖方法,包括:
将坏点表存储在芯片外部存储器;
从所述芯片外部存储器中读取所述坏点表中的坏点坐标存入芯片内部存储器;
根据所述芯片内部存储器中存储的坏点坐标,对落入所述坏点坐标的显示数据进行遮盖处理;
清除所述芯片内部存储器中已完成遮盖处理的坏点坐标;
从所述芯片外部存储器中读取坏点坐标存入所述芯片内部存储器已清除的存储空间。
本发明实施例提供的一种坏点遮盖方法系统,包括:
控制模块,配置为从芯片外部存储器中读取坏点表中的坏点坐标存入芯片内部存储器,其中,所述芯片外部存储器预先存储有所述坏点表;
遮盖模块,配置为根据所述芯片内部存储器中存储的坏点坐标,对落入所述坏点坐标的显示数据进行遮盖处理;
清除模块,配置为清除所述芯片内部存储器中已完成遮盖处理的坏点坐标。
利用本发明实施例所提供的坏点遮盖方法和系统,将坏点表存储在芯片外部存储器,坏点坐标的存储以及坏点坐标的位宽不再受芯片内部存储器的限制,扩展了坏点表的容量。此外,芯片内部存储器不用同时存储坏点表中的所有坏点坐标,减小了芯片内部存储器的大小,这不仅有利于减小芯片制造尺寸,还降低了芯片的制造成本。
附图说明
图1所示为本发明一实施例所提供的坏点遮盖方法的流程示意图。
图2所示为本发明一实施例所提供的坏点遮盖方法的流程示意图。
图3所示为本发明一实施例所提供的坏点遮盖系统的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清除、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1所示为本发明一实施例所提供的坏点遮盖方法的流程示意图。如图1所示,该坏点遮盖方法包括:
步骤101:将坏点表存储在芯片外部存储器。其中,坏点表中包括通过特殊程序检测出的图像传感器的所有坏点的坏点坐标。这样后续的遮盖步骤中,只需针对该坏点表中的坏点坐标对显示数据进行遮盖处理即可。
本领域技术人员可以理解,坏点表的生成方法可采用现有技术中的任何检测方法,本发明对此不做限定。
步骤102:从所述芯片外部存储器中读取所述坏点表中的坏点坐标存入芯片内部存储器。
由于芯片内部存储器的尺寸大小受限,而坏点表的数据量可能较大。因此在实际的实现过程中,仅将坏点表中的一部分坏点坐标存入芯片内部存储器。在完成对落入芯片内部存储器中坏点坐标的显示数据的遮盖处理的同时,再继续从芯片外部存储器读取坏点坐标继续进行遮盖处理,具体步骤描述请见步骤104~105。
步骤103:根据所述芯片内部存储器中存储的坏点坐标,对落入所述坏点坐标的显示数据进行遮盖处理。具体过程为,如果判断图像传感器传输的显示数据落入了某一坏点坐标,则对该显示数据进行遮盖处理,并执行步骤104。在本发明一实施例中,以显示数据的传输序列顺序判断显示数据是否落入坏点坐标。
步骤104:清除所述芯片内部存储器中已完成遮盖处理的坏点坐标。在本发明一实施例中,清除的具体过程可以为:每完成一坏点坐标上显示数据的遮盖处理,即从所述芯片内部存储器中清除该坏点坐标。
步骤105:从所述芯片外部存储器中读取坏点坐标存入所述芯片内部存储器已清除的存储空间。在本发明一实施例中,步骤105和步骤103是并行进行的,即在从芯片外部存储器中读取坏点坐标存入所述芯片内部存储器已清除的存储空间的同时,遮盖处理的过程也在继续进行。
在本发明一实施例中,为了提高坏点遮盖的效率,可以是在芯片内部存储器中已清除坏点坐标的数量达到一预设阀值时,再读取坏点表中剩余的坏点坐标存入芯片内部存储器以继续进行遮盖处理。下面通过图2所示的实施例进行详细说明。
图2所示为本发明一实施例所提供的坏点遮盖方法的流程示意图。在图2所示的实施例中,预设阀值设定为:已清除坏点坐标的数量达到所述芯片内部存储器所能存储坏点坐标总量的四分之一。此外,芯片外部存储器采用DDR存储器,其中的坏点表中坏点坐标的总数量为N。芯片内部存储器采用SRAM存储器,其所能存储坏点坐标的总量为M(M<N)。如图2所示,该坏点遮盖方法包括:
步骤201:从DDR中读取了M个坏点坐标,并将“SRAM中坏点坐标的数量”(后文以dp_sram_cnt表示)设为M,将“已遮盖处理的坏点坐标的数量”(后文以dp_cnt表示)设为0,将“坏点表中坏点坐标的总数量”(后文以dp_total表示)设为N。
步骤202:将该M个坏点坐标写入SRAM。
步骤203:开始按显示数据的传输序列进行坏点判断。当判断当前处理的显示数据未落入坏点坐标时,则继续对下一个显示数据进行判断;当判断当前处理的显示数据落入坏点坐标时,则对该显示数据进行遮盖,并执行步骤204。
步骤204:将dp_sram_cnt减1,并将dp_cnt加1。
步骤205:判断dp_cnt是否达到了dp_total。若已达到,则说明坏点表中所有坏点坐标上的显示数据都被遮盖完毕,流程结束;若未达到,则执行步骤206。
步骤206:判断dp_sram_cnt是否大于3/4*M。若判断结果为是,则证明还未达到预设阀值,此时返回步骤203开始对下一个显示数据进行判断;若判断结果为否,则证明已有1/4*M个坏点坐标上的显示数据已被遮盖完毕,此时执行步骤207。
步骤207:从DDR读取1/4*M个坏点坐标存入SRAM已清除的存储空间,然后返回步骤203继续对序列中的显示数据进行遮盖处理。
如此循环反复直至坏点表中所有的坏点坐标上的显示数据都被遮盖完毕,流程结束。
在本发明一实施例中,芯片外部存储器可以是DDR存储器。芯片内部存储器可以是32b*128,即大小为0.5kb的双口SRAM存储器。在本发明一实施例中,可以通过寄存器,配置待检测表大小,总坏点数,坏点坐标的位宽。可以通过修改待检测表中内容的数据结构来灵活配置坏点坐标的位宽。
图3所示为本发明一实施例所提供的坏点遮盖系统的结构示意图。如图3所示,该坏点遮盖系统包括:
控制模块,配置为从芯片外部存储器中读取坏点表中的坏点坐标存入芯片内部存储器,其中,芯片外部存储器预先存储有坏点表。
遮盖模块,配置为根据芯片内部存储器中存储的坏点坐标,对落入坏点坐标的显示数据进行遮盖处理。
清除模块,配置为清除芯片内部存储器中已完成遮盖处理的坏点坐标。
在本发明一实施例中,还可以进一步包括:第一判断模块,配置为判断显示数据是否落入坏点坐标。
在本发明另一实施例中,还可以进一步包括:第二判断模块,配置为判断芯片内部存储器中已遮盖处理的坏点坐标的数量是否达到一预设阀值。则此时控制模块还可以进一步根据第二判断模块返回的确定结果从芯片外部存储器中读取坏点坐标存入芯片内部存储器已清除的存储空间。
在本发明另一实施例中,清除模块和控制模块集成为一个芯片内部的模块。
以上仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换等,均应包含在本发明的保护范围之内。