配置传感器的寄存器输出图像的方法及装置
技术领域
本发明涉及图像通信技术领域,尤其涉及一种配置Sensor(传感器)的寄存器输出图像的方法及装置。
背景技术
在现有技术中,当接到用户层发出的开流命令后,进行ISO(isochronous,同步传输)通道的带宽申请。在分配带宽的函数中,若分配带宽成功,则调用视频初始化函数,进行所有的Chip和Sensor的寄存器的配置。并且在完成配置后,返回给底层的USB Camd(USB Camd是微软提供的USB视频设备的底层驱动),USB Camd启动USB Camera的ISO传输,并调用Process USBPacket的函数处理ISO通道传上来的USB数据包。在收到完整地一祯数据后,再调用Process Raw Video Frame函数,对该祯数据进行相应的处理后(如解码,格式转换等),然后上传给用户层。由于在ISO通道开始传输之前,需完成大量的Sensor的寄存器的配置,延误很长时间(6秒左右),导致寄存器输出图像很慢,例如在某些类型的Sensor和带自动调焦功能的Sensor时,需配置大量的Sensor的寄存器,如带自动调焦功能的Sensor,其基本配置需要配56个Sensor的寄存器,而要开起自动调焦功能时,需要配置261个Sensor的寄存器。
由于寄存器输出图像较慢,因此在HCT(Hardware Compatibility Test,硬件兼容性测试)中,会对USB摄像头的祯率进行测试,而开流时间过长,会导致该测试软件迟迟拿不到数据,统计出来的祯率就达不到所声明的祯率,从而使测试失败。
发明内容
为了解决上述问题,本发明的目的是提供一种配置传感器的寄存器输出图像的方法及装置,解决了现有技术中由于需要配置大量的寄存器,导致Sensor的寄存器输出图像较慢,不能通过HCT测试的问题。
为了达到上述目的,本发明提供一种配置传感器的寄存器输出图像的方法,所述方法包括:
接到视频开启命令,进行ISO通道分配带宽后,对输出图像所需寄存器中的参数进行配置;
开启所述ISO通道进行传输数据,并处理所述ISO通道上传输的数据;
若所述数据为第一帧数据时,则启动第一线程,所述第一线程用于完成其他功能寄存器的配置。
优选地,所述输出图像所需寄存器中的参数为时钟参数、图像尺寸参数、曝光参数或白平衡参数中的一个或多个。
优选地,所述开启所述ISO通道进行传输数据,并处理所述ISO通道上传输的数据的步骤包括:
配置完输出图像所需的寄存器中的参数后,开启所述ISO通道进行传输数据;
调用Process USB Packet的函数处理ISO通道传上来的USB数据包;
在收到完整的一祯数据后,再调用Process Raw Video Frame函数,对所述数据进行相应的处理后,上传给用户层。
优选地,所述对所述数据进行相应处理包括:对所述数据进行解码处理,或者对所述数据进行格式转换处理。
优选地,所述第一线程和处理图像的线程是并行的。
优选地,所述启动第一线程的步骤为:在第一次调用Process Raw VideoFrame函数时,启动第一线程,用来完成其他功能寄存器的配置。
本发明还提供一种配置传感器的寄存器输出图像的装置,所述装置包括:
第一配置模块,用于在接到视频开启命令,进行ISO通道分配带宽后,仅对输出图像所需寄存器中的参数进行配置;
开启模块,用于开启所述ISO通道进行传输数据,并处理所述ISO通道上传输的数据;
第二配置模块,若所述数据为第一帧数据时,用于通过第一线程完成其他功能寄存器的配置。
优选地,所述输出图像所需寄存器中的参数为时钟参数、图像尺寸参数、曝光参数或白平衡参数中的一个或多个。
优选地,所述第一线程和处理图像的线程是并行的。
上述技术方案中的至少一个技术方案取得如下有益效果:通过将Sensor配置分为两部分进行的方法,首先进行输出图像所需基本的出图配置,从而保证Sensor和Chip能输出正确尺寸的图像;在输出图像之后,再通过一个线程,完成其他所有的配置(如Auto Focus功能),这样可极大的提高Sensor的寄存器输出图像的速度。
附图说明
图1为本发明的实施例中配置Sensor的寄存器输出图像的方法流程图;
图2为本发明的实施例中配置Sensor的寄存器输出图像的装置框图。
具体实施方式
为了使本发明实施例的目的、技术方案和优点更加清楚明白,下面结合实施例和附图,对本发明实施例做进一步详细地说明。在此,本发明的示意性实施例及说明用于解释本发明,但并不作为对本发明的限定。
如图1所示,为本发明的实施例中配置Sensor的寄存器输出图像的方法流程图,包括如下具体步骤:
步骤101、ISO通道分配带宽;
接到开启视频流的应用程序(该应用程序可以是Amcap微软的视频音频捕获软件、MSN微软提供的网络在线服务)发出的开流命令后,进行ISO通道的带宽申请,然后进行ISO通道分配带宽。
步骤102、配置基本的Chip和Sensor的寄存器;
在分配带宽的函数中,若带宽分配成功,则调用视频初始化函数,不进行所有的Chip和Sensor的寄存器的配置,而只进行基本的配置(如时钟参数、图像尺寸参数、曝光参数、白平衡参数等输出图像所必须配置的Chip和Sensor寄存器),针对带有自动调焦功能的Sensor,则可以分为不包括自动调焦功能的配置和包括自动调焦功能配置的两部分。
步骤103、开启ISO传输;
步骤104、处理ISO数据包;
步骤105、处理视频数据帧,并上传给用户层;
配置完输出图像所需基本的寄存器后,返回给底层的USB Camd,USBCamd启动USB Camera的ISO传输,并调用Process USB Packet的函数处理ISO通道传上来的USB数据包。在收到完整的一祯数据后,再调用Process RawVideo Frame函数,对该数据进行相应的处理(如对数据进行解码处理,或者对数据进行格式转换处理等),然后将处理后的数据上传给用户层。
步骤106、判断用户层接收的数据是否为第一帧数据,若是执行步骤107,否则返回步骤104;
在第一次调用Process Raw Video Frame函数时,启动一个线程,用来完成其他功能寄存器的配置,在本实施例中可以是用于完成具有自动调焦功能的Sensor的寄存器的配置。
步骤107、启动第一线程,用于完成其他功能寄存器的配置,返回步骤104;
在步骤107中启动第一线程的目的是为了在Process Raw Video Frame函数里面进行配置,从而可节省配置寄存器的时间,使该函数能及时的成功返回,然后将图像数据传到用户层。
在本实施例中由于在ISO通道开始传输之前,配置的Sensor的寄存器大大减少(约为总量的1/6),从而极大的提高了输出图像的速度(从6秒左右提高到2秒以内),从而解决了现有技术中输出图像速度慢,不能过HCT测试的问题。
为了实现上述的方法实施例,本发明的其他实施例还提供了一种配置传感器的寄存器输出图像的装置。另需首先说明的是,由于下述的实施例是为实现前述的方法实施例,故该装置都是为了实现前述方法的各步骤而设,但本发明并不限于下述的实施例,任何可实现上述方法装置都应包含于本发明的保护范围。并且在下面的描述中,与前述方法相同的内容在此省略,以节约篇幅。
参见图2,为本发明的实施例中配置Sensor的寄存器输出图像的装置框图装置包括:
第一配置模块21,用于在接到视频开启命令,进行ISO通道分配带宽后,仅对输出图像所需寄存器中的参数进行配置;
在本实施例中,输出图像所需寄存器中的参数为时钟参数、图像尺寸参数、曝光参数或白平衡参数中的一个或多个。
开启模块22,用于开启所述ISO通道进行传输数据,并处理所述ISO通道上传输的数据;
第二配置模块23,若所述数据为第一帧数据时,用于通过第一线程完成其他功能寄存器的配置。
在本实施例中,启动第一线程的目的是为了在Process Raw Video Frame函数里面进行配置,从而可节省配置寄存器的时间,使该函数能及时的成功返回,然后将图像数据传到用户层。
由上述技术方案可知,通过将Sensor配置分为两部分进行的方法,首先进行输出图像所需基本的出图配置,从而保证Sensor和Chip能输出正确尺寸的图像;在输出图像之后,再通过一个线程,完成其他所有的配置(如AutoFocus功能),这样可极大的提高Sensor的寄存器输出图像的速度。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。