发明内容
本发明提供了一种进行图像采集和摄像的装置和方法,从而可以在不使用数字信号处理器的情况下,完成图像的采集和摄像的功能。
本发明的目的是通过以下技术方案实现的:
一种进行图像采集和摄像的装置,包括:
微控制单元MCU,用于根据接收到的同步时钟PCLK产生的外部中断信号,从外部的图像传感器中读入图像数据,并根据图像传感器产生的行同步信号HSYNC和帧同步信号VSYNC确定所述图像数据的开始时间和结束时间的时间信息;对所述图像数据进行压缩处 理,将处理后的图像数据以及相应的时间信息输出;
数据保存模块,用于接收MCU输出的图像数据以及相应的时间信息,将所述图像数据以及相应的时间信息进行保存;
所述MCU具体包括:
图像数据采集模块,用于根据同步时钟PCLK产生的外部中断信号,从外部的图像传感器中读入图像数据,根据图像传感器产生的行同步信号HSYNC和帧同步信号VSYNC确定所述图像数据的开始时间和结束时间的时间信息,并用指针P1标识采集到的数据字节位置,每采集一个字节数据,P1加1,在所述PCLK退出中断后,使用指针P2标识当前处理图像的数据字节位置,将所述读入的图像数据输出给接收缓存模块;
接收缓存模块,用于接收和缓存图像数据采集模块所输出的图像数据,将缓存的图像数据输出给摄像处理模块;
摄像处理模块,用于接收所述接收缓存模块所输出的图像数据,判断所述P1和P2之间的差值是否满足预先设定的数值,如果不满足,则对接收到的图像数据进行缓存,不进行压缩处理,并且继续接收图像数据,继续进行上述判断操作;直到P1和P2之间的差值满足了预先设定的数值,则对上述缓存的图像数据进行压缩处理,并且修改P2指针,将P2指针和P1指针进行同步。
一种进行图像采集和摄像的方法,包括:
根据接收到的同步时钟PCLK产生的外部中断信号,从外部的图像传感器中读入图像数据,根据图像传感器产生的行同步信号HSYNC和帧同步信号VSYNC确定所述图像数据的开始时间和结束时间的时间信息,并用指针P1标识采集到的数据字节位置,每采集一个字节数据,P1加1,在所述PCLK退出中断后,使用指针P2标识当前处理图像的数据字节位置;
判断所述指针P1和指针P2之间的差值是否满足预先设定的数值,如果不满足,则对接收到的数据进行缓存,不进行压缩处理,并且继续接收数据,继续进行所述判断操作;直到指针P1和指针P2之间的差值满足了预先设定的数值,则对所述缓存的数据进行压缩处理,并且修改P2指针,将P2指针和P1指针进行同步,将所述压缩处理后的图像数据以及相应的时间信息进行保存。
由上述本发明提供的技术方案可以看出,本发明提出了一种在嵌入式设备中进行图像采集和摄像的低成本解决方案,从而可以使嵌入式设备在没有数字信号处理器时,采用外部中断的方法进行图像的采集工作,MCU以CMOS图像传感器产生的图像数据同步时钟 PCLK作为外部中断源,能够完成图像的采集和摄像功能。
具体实施方式
本发明提供了一种进行图像采集和摄像的装置和方法,本发明在嵌入式设备中不使用数字信号处理器进行图像信号的采集和处理,而是使用外部中断进行图像采集。并且通过软件完成对采集到的图像进行摄像和回放功能。
本发明提供的进行图像采集和摄像的装置的结构示意图如图1所示,包括:CMOS图像传感器10、MCU20、FLASH(缓存)40和LCD(LiquidCrystal Display,液晶显示器)30。该装置主要应用于在嵌入式设备中。
各个模块的功能如下:
CMOS图像传感器10,用于产生和输出外部中断信号(同步时钟PCLK),以及行同步信号HSYNC和帧同步信号VSYNC,根据该外部中断信号,将图像数据输出给MCU。
多点控制单元MCU20,用于根据CMOS图像传感器输出的外部中断信号,从外部的CMOS图像传感器中读入图像数据,并根据CMOS图像传感器输出的HSYNC和VSYNC,确定所述图像数据的时间信息。对所述图像数据进行压缩处理,将处理后的图像数据以及相应的时间信息输出。
FLASH40:作为数据保存模块,用于接收MCU输出的图像数据以及相应的时间信息,将所述图像数据以及相应的时间信息进行保存。
LCD30:作为显示处理模块,用于通过MCU读取数据保存模块中所保存的图像数据以及相应的时间信息,按照所述时间信息将读取的图像数据进行解压缩和显示。
所述MCU具体包括:
数据采集模块24,用于根据接收到的外部中断信号,从外部的图像传感器中读入图像数据,确定所述图像数据的开始和结束的时间信息,将所述图 像数据以及相应的时间信息输出给接收缓存模块;
接收缓存模块21,用于接收和缓存图像数据采集模块所输出的图像数据,将缓存的图像数据输出给摄像处理模块;
摄像处理模块23,用于接收图像数据采集模块所输出的图像数据,对所述图像数据进行压缩处理,将所述处理后的图像数据以及相应的时间信息输出。
所述数据采集模块具体包括:
中断响应模块,用于接收图像传感器输出的中断信号,响应该中断信号,在每接收到一个中断信号时,控制图像数据采集模块从图像传感器中读入一个字节的图像数据;
图像时间信息确定模块,用于接收图像传感器输出的同步信号,根据该同步信号确定图像数据采集模块所接收的图像数据的开始时间和结束时间信息。
本发明提供的进行图像采集和摄像的方法的实施例的处理流程如图2所示,包括如下步骤:
步骤21、对CMOS图像传感器进行分频等各种设置。
在进行图像采集之前,需要对CMOS图像传感器进行各种设置。
MCU首先通过寄存器接口对CMOS图像传感器进行寄存器设置,再对CMOS图像传感器进行相关的图像质量设置和分频设置,通过分频设置可以减慢图像传输的速度,从而保证MCU有足够的时间对采集到的图像进行处理。
设CMOS图像的最大图像尺寸是640×480,当工作频率为30MHz时,最大帧速率为30f/s。当需要在本发明提供的装置中同时打开图像采集和摄像功能时,可以将CMOS图像传感器的工作频率进行8分频,即将工作频率降为 3.75MHz,此时图像传感器的最大帧速率将降为10f/s。并对图像1/4下采样,即CMOS图像传感器将采样获得的图像数据以128×176的尺寸输出。
步骤22、MCU以CMOS图像传感器产生的图像数据同步时钟PCLK作为外部中断源,进行图像的采集工作。
当打开图像采集功能时,MCU采用外部中断的方法进行图像的采集工作,以CMOS图像传感器产生的图像数据同步时钟PCLK作为外部中断源。
本发明在采集图像时采用采集和处理同时进行的方法。PCLK每产生一次中断信号,数据接收模块24中的中断响应模块便获取该中断信号,并响应该中断信号,控制数据接收模块24从CMOS图像传感器中读入一个字节的图像数据,并将读入的图像数据传输给MCU中的接收缓存21中。
同时,数据接收模块24中的图像时间信息确定模块可以根据图像传感器产生的行同步信号HSYNC和帧同步信号VSYNC确定所读入的一帧图像的开始时间和结束时间。并且用指针P1标识采集到的数据位置,每采集一个字节数据,P1加1。
为了减小所保存的视频文件的大小,MCU需要将采集到的图像数据的图像尺寸调整到64×88,即采集图像的1/4尺寸。
步骤23、MCU在采集图像的同时对图像进行压缩和设置时间信息等相应的处理。
当打开摄像功能时,接收缓存21将接收到的图像数据进行缓存,并且将该图像数据传输给显示缓存22和摄像处理模块23。显示缓存22将接收到的图像数据传输给LCD30进行显示,LCD30中显示的图像即为用户在摄像时所看到的图像。
摄像处理模块23确定接收到的图像数据的当前帧相对于第一帧的时间间隔信息,并在接收图像的同时对图像数据进行压缩处理,最后在每帧的帧间 隔时间内将带有时间信息的一帧图像数据传输给FLASH40中进行保存。
摄像处理模块23并不是每接收到一个字节的数据就进行压缩等处理操作,而是当接收到的图像的数据量达到了预先设定的数值时,才对接收到的数据进行处理。摄像处理模块23对图像数据进行处理的实现流程如图3所示,包括如下处理过程:
在PCLK每产生一次中断信号,MCU开始采集一帧的图像数据时,同时记录该帧图像的开始时间,并用指针P1标识采集到的数据字节位置,每采集一个字节数据,P1加1。
在每次PCLK退出中断后,使用指针P2标识当前处理图像的指针,即标识当前处理图像的数据字节位置。然后,摄像处理模块23判断P1和P2之间的差值是否满足预先设定的数值,如果不满足,则摄像处理模块23对接收到的数据进行缓存,不进行压缩等处理,并且继续接收数据,继续进行上述判断操作。直到P1和P2之间的差值满足了预先设定的数值,则摄像处理模块23便对上述缓存的数据进行压缩处理,并且修改P2指针,将P2指针和P1指针进行同步。
摄像处理模块23然后再判断当前一帧的图像是否结束,如果是,则在每一帧间隔的时间内,将处理后的数据以及该帧图像的开始时间、结束时间等时间信息传递给FLASH进行缓存;否则,继续对接收到的图像数据进行上述处理操作。
存放在FLASH中的每一帧数据的格式如图4所示。每帧图像由帧头、帧号、帧时间、帧长度、帧数据和帧尾组成。
帧头用2字节FF01表示,代表一帧数据的开始;帧号用4字节表示,在每个视频文件内,帧号从零开始每帧依次递增;帧时间是每一帧相对于视频开始时刻的相对时间,由4个字节组成,其单位为毫秒;帧数据长度由4字节组成,描述每一帧图像数据的长度。在帧数据长度之后是每一帧的图像数据, 其长度即帧数据长度所描述的长度值。在每一帧的最后是2字节的帧尾,由FF02表示,用于表示一帧图像的结束。
由于每一帧图像的数据大小都是相同的,每一帧图像的大小都是固定的。因此,在将图像数据存放至FLASH中时,按照帧号将帧数据存入相对于第一帧地址的偏移地址中,这样可避免在存储或读取某一帧数据发生错误时后面的数据都无法正确显示。
在需要进行图像数据回放时,MCU先读取FLASH中保存的一帧图像数据,对该帧图像数据进行解压缩。并根据该帧图像数据的长度信息判断相应的偏移地址存放的数据是否分别是帧头和帧尾,如果是,则可以认为当前读取的帧是完整帧,通过显示缓存将该帧传输到LCD进行回放,反之,则认为当前帧是坏帧,不予回放。
根据预先设定的定时时间,定时读取下一帧图像数据进行回放。由于在保存图像数据时进行了压缩,在回放时需要将图像还原成128×176尺寸。
综上所述,相对于现有的实现方案,本发明的有益效果为:
1、通过软件实现的方式,省去了在嵌入式***采集图像信号时使用的数字信号处理器,降低了嵌入式***的功耗和成本,缩小了产品的体积。
2、在进行图像采集时,采集和处理并行进行,相对于采集完成后再处理图像的方法大大节省了处理时间。
3、使用软件实现的方案使得***应用方法更为灵活,在不改***件设备和结构的情况下,改***件即可升级***。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。