发明内容
有鉴于此,本申请提供一种电视快速开机方法及装置,以解决现有实现方式开机时间长,用户体验不佳的问题。
根据本申请实施例的第一方面,提供一种电视快速开机方法,所述方法应用于包括驱动管理模块的电视终端,所述驱动管理模块用于控制第一类驱动的唤醒函数、第二类驱动的唤醒函数以及第三类驱动的唤醒函数的执行,其中,所述第二类驱动的唤醒函数的执行依赖于所述第一类驱动的唤醒函数的执行,所述第三类驱动的唤醒函数的执行依赖于所述第二类驱动的唤醒函数的执行,且每类驱动至少包括一个驱动,每个驱动分别具有对应的唤醒函数,所述方法包括:
在接收到待机唤醒指令之后,通过所述驱动管理模块执行所述第一类驱动的唤醒函数;
通过所述驱动管理模块执行所述第二类驱动的唤醒函数之后,执行所述第三类驱动的唤醒函数;其中,不同第二类驱动的唤醒函数以并行方式执行;
在执行所述第二类驱动的唤醒函数期间,获取当前设置的电视输入接口参数,并根据所述电视输入接口参数获取电视信号;
在所述第三类驱动的唤醒函数执行完成之后,播放所述电视信号;
其中,所述第二类驱动的唤醒函数的执行时间比所述第一类驱动的唤醒函数和所述第三类驱动的唤醒函数的执行时间长。
根据本申请实施例的第二方面,提供一种电视快速开机装置,所述装置应用于包括驱动管理模块的电视终端,所述驱动管理模块用于控制第一类驱动的唤醒函数、第二类驱动的唤醒函数以及第三类驱动的唤醒函数的执行,其中,所述第二类驱动的唤醒函数的执行依赖于所述第一类驱动的唤醒函数的执行,所述第三类驱动的唤醒函数的执行依赖于所述第二类驱动的唤醒函数的执行,且每类驱动至少包括一个驱动,每个驱动分别具有对应的唤醒函数,所述装置包括:
第一执行模块,用于在接收到待机唤醒指令之后,通过所述驱动管理模块执行所述第一类驱动的唤醒函数;
第二执行模块,用于通过所述驱动管理模块执行所述第二类驱动的唤醒函数之后,执行所述第三类驱动的唤醒函数;其中,不同第二类驱动的唤醒函数以并行方式执行;
获取模块,用于在执行所述第二类驱动的唤醒函数期间,获取当前设置的电视输入接口参数,并根据所述电视输入接口参数获取电视信号;
播放模块,用于在所述第三类驱动的唤醒函数执行完成之后,播放所述电视信号;
其中,所述第二类驱动的唤醒函数的执行时间比所述第一类驱动的唤醒函数和所述第三类驱动的唤醒函数的执行时间长。
应用本申请实施例,电视终端在接收到待机唤醒指令之后,通过驱动管理模块先执行第一类驱动的唤醒函数,然后再执行第二类驱动的唤醒函数,且不同第二类驱动的唤醒函数以并行方式执行,最后执行第三类驱动的唤醒函数;并且在执行第二类驱动的唤醒函数期间,可以并行获取当前设置的电视输入接口参数,并根据电视输入接口参数获取电视信号,从而在第三类驱动的唤醒函数执行完成之后,可以播放电视信号,完成开机过程。电视终端通过驱动管理模块控制各个驱动的唤醒函数的执行,从而将驱动的控制权从操作系统中解耦出来,以简化开机流程,并且驱动管理模块将执行时间比较长的驱动的唤醒函数以并行方式执行,可以缩短开机时间,从而提高了开机速度,进而提升了用户体验。此外,对于当前设置的电视输入接口参数和电视信号的获取,与驱动并行处理,为视频的播放提前做好准备,从而进一步提高了开机速度。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
图1A为本申请根据一示例性实施例示出的一种电视快速开机方法的实施例流程图;图1B为本申请根据一示例性实施例示出的一种现有驱动唤醒过程图;图1C为本申请根据图1A所示实施例示出的一种驱动唤醒过程图,该实施例可以应用在包括驱动管理模块的电视终端上,在本申请实施例中,该驱动管理模块可以用于控制第一类驱动的唤醒函数、第二类驱动的唤醒函数以及第三类驱动的唤醒函数的执行,其中,第二类驱动的唤醒函数的执行依赖于所述第一类驱动的唤醒函数的,第三类驱动的唤醒函数的执行依赖于第二类驱动的唤醒函数的执行,且第二类驱动的唤醒函数的执行时间比第一类驱动的唤醒函数和第三类驱动的唤醒函数的执行时间长,且每类驱动至少包括一个驱动,每个驱动分别具有对应的唤醒函数,该唤醒函数用于唤醒对应的驱动,从而使对应的硬件从待机模式或者断电模式切换为唤醒工作模式,并能够通过该驱动与电视终端的操作系统进行I/O操作。如图1A所示,该电视快速开机方法包括如下步骤:
步骤101:在接收到待机唤醒指令之后,通过驱动管理模块执行第一类驱动的唤醒函数。
在一实施例中,待机唤醒指令可以由遥控器的红外发射器发出,即遥控器在检测到开机按键被触发后,生成待机唤醒指令,然后通过红外发射器发出。电视终端的红外接收器接收到待机唤醒指令之后,将该待机唤醒指令发送至处理器,从而触发开机过程。
在另一实施例中,由于第一类驱动的唤醒函数属于基础驱动的唤醒函数,例如,GPIO(General Purpose Input Output,通用输入/输出端口)驱动、HDMI(High DefinitionMultimedia Interface,高清晰度多媒体接口)接口驱动、IIC接口驱动等,它是其他驱动的唤醒函数依赖的基础,即第二类驱动的唤醒函数和第三类驱动的唤醒函数的执行均依赖于第一类驱动的唤醒函数的执行,因此可以先通过驱动管理模块执行第一类驱动的唤醒函数。本领域技术人员可以理解的是,具体如何设计驱动的唤醒函数可以通过相关技术实现,本申请在此不进行详述。
需要说明的是,第一类驱动的唤醒函数的执行时间比较短,甚至比创建一个线程的时间还短,为了减少电视终端创建线程的资源开销,驱动管理模块可以以串行方式执行第一类驱动的唤醒函数,从而,电视终端只需创一个主线程,便可实现第一类驱动的唤醒函数的顺利执行,可以减少电视终端的资源开销。本领域技术人员可以理解的是,具体如何创建一个线程可以通过相关技术实现,本申请在此不进行详述。
其中,在第一类驱动中,每个驱动的唤醒函数的执行互相没有依赖关系,因此对于串行执行的顺序,本申请不进行限制。
步骤102:通过驱动管理模块执行第二类驱动的唤醒函数之后,执行第三类驱动的唤醒函数,且不同第二类驱动的唤醒函数以并行方式执行。
在一实施例中,由于第二类驱动的唤醒函数的执行时间比第一类驱动的唤醒函数和第三类驱动的唤醒函数的执行时间都长,且比创建一个线程的时间长好几倍,例如,显示屏驱动受时序的要求,该驱动的唤醒函数的执行主要消耗在时序要求的等待上,并且,在第二类驱动中,每个驱动的唤醒函数的执行互相也没有依赖关系,因此,通过驱动管理模块执行第二类驱动的唤醒函数时,对不同第二类驱动的唤醒函数可以以并行方式执行,即为每个第二类驱动创建并行线程,以并行执行每个驱动的唤醒函数,并在执行完成后,关闭并行线程。
需要说明的是,第三类驱动的唤醒函数的执行时间也比较短,为了减少电视终端创建线程的资源开销,驱动管理模块可以以串行方式执行第三类驱动的唤醒函数,从而,电视终端只需利用主线程便可实现第三类驱动的唤醒函数的顺利执行,进而进一步减少了电视终端的资源开销。
步骤103:在执行第二类驱动的唤醒函数期间,获取当前设置的电视输入接口参数,并根据该电视输入接口参数获取电视信号。
在一实施例中,由于在执行第二类驱动的唤醒函数期间,第一类驱动已经被唤醒,其对应的各个硬件都可以与操作系统有数据交互,因此可以在此期间,并行获取当前设置的电视输入接口参数,并根据该电视输入接口参数获取电视信号。其中,当前设置的电视输入接口参数可以是HDMI接口,也可以是TV接口,本申请在此不进行限制。由于这些接口的驱动均属于第一类驱动,因此在执行第一类驱动的唤醒函数之后,已经能够通过这些接口获取到相应的数据。
步骤104:在第三类驱动的唤醒函数执行完成之后,播放电视信号。
在一实施例中,在第三类驱动的唤醒函数执行完成之后,完成所有驱动的唤醒,电视终端可以利用这些驱动的硬件对电视信号进行识别、处理,并进行播放,完成开机过程。
在一示例性的场景中,结合图1B和图1C所示,图1B是以串行方式唤醒的每个驱动,其需要消耗的总时间为每个驱动的唤醒函数的执行时间之和,图1C是将各个驱动进行分类处理,将基础类驱动作为第一类驱动,且第一类驱动的唤醒函数的执行时间均比较短,每个驱动的唤醒函数以串行方式执行;将依赖于第一类驱动的唤醒函数的执行的驱动作为第二类驱动,且第二类驱动的唤醒函数的执行时间均比较长,每个驱动的唤醒函数以并行方式执行;将依赖于第二类驱动的唤醒函数的执行的驱动作为第三类驱动,且第三类驱动的唤醒函数的执行时间也均比较短,每个驱动的唤醒函数以串行方式执行,假设第一类驱动有4个驱动,每个驱动的唤醒函数的执行时间均为50毫秒,第二类驱动有3个驱动,每个驱动的唤醒函数的执行时间分别为1440毫秒、651毫秒、2429毫秒,第三类驱动有2个,每个驱动的唤醒函数的执行时间均为50毫秒。如果使用图1B的唤醒过程,则需要消耗6228毫秒,而如果使用图1C的唤醒过程,则需要消耗2729毫秒。
本实施例中,电视终端在接收到待机唤醒指令之后,通过驱动管理模块先执行第一类驱动的唤醒函数,然后再执行第二类驱动的唤醒函数,且不同第二类驱动的唤醒函数以并行方式执行,最后执行第三类驱动的唤醒函数;并且在执行第二类驱动的唤醒函数期间,可以并行获取当前设置的电视输入接口参数,并根据电视输入接口参数获取电视信号,从而在第三类驱动的唤醒函数执行完成之后,可以播放电视信号,完成开机过程。电视终端通过驱动管理模块控制各个驱动的唤醒函数的执行,从而将驱动的控制权从操作系统中解耦出来,以简化开机流程,并且驱动管理模块将执行时间比较长的驱动的唤醒函数以并行方式执行,可以缩短开机时间,从而提高了开机速度,进而提升了用户体验。此外,对于当前设置的电视输入接口参数和电视信号的获取,与驱动并行处理,为视频的播放提前做好准备,从而进一步提高了开机速度。
图2A为本申请根据一示例性实施例示出的另一种电视快速开机方法的实施例流程图;图2B为本申请根据图2A实施例示出的一种开机流程图,本实施例利用本申请实施例提供的上述方法,以通过驱动管理模块执行第一类驱动的唤醒函数为例进行示例性说明。在本申请实施例中,该电视终端还可以包括电源管理模块,该电源管理模块用于实现操作系统所要求的电源管理机制,且电源管理模块的设计可以作为一个虚拟驱动设计,因此该电源管理模块可以预先向操作系统注册电源管理函数,此外,驱动管理模块的设计也可以作为一个虚拟驱动设计,因此可以具有对应的唤醒函数,并可以向电源管理模块注册该唤醒函数。如图2A所示,该电视快速开机方法包括如下步骤:
步骤201:在接收到待机唤醒指令之后,启动操作系统。
在一实施例中,待机唤醒指令的描述可以参见上述步骤101的描述,本申请在此不再详述。电视终端的处理器在接收到待机唤醒指令之后,触发操作系统的启动过程,进而开启开机过程。
步骤202:基于操作系统的启动,触发电源管理函数,并通过电源管理函数执行驱动管理模块的唤醒函数。
在一实施例中,由于操作系统中注册有电源管理函数,因此在操作系统启动之后,可以触发电源管理模块的电源管理函数,在电源管理函数中,遍历注册给电源管理模块的函数,由于驱动管理模块向电源管理模块注册了唤醒函数,因此可以遍历到驱动管理模块对应的唤醒函数,并执行该唤醒函数。
步骤203:通过驱动管理模块的唤醒函数执行第一类驱动的唤醒函数。
在一示例性的场景中,如图2B所示,电源管理模块预先向操作系统注册电源管理函数,驱动管理模块预先向电源管理模块注册唤醒函数,该唤醒函数可以控制各类驱动的唤醒函数的执行顺序,因此电视终端在接收到待机唤醒指令之后,启动操作系统,然后触发电源管理模块的电源管理函数的执行,并由电源管理函数执行驱动管理模块的唤醒函数,从而通过该唤醒函数可以先执行第一类驱动的唤醒函数,然后再执行第二类驱动的唤醒函数,最后执行第三类驱动的唤醒函数。
本实施例中,电源管理模块可以实现操作系统所要求的电源管理机制,即电源管理模块作为虚拟驱动,通过向操作系统注册电源管理函数,以屏蔽电源管理的处理细节,然后驱动管理模块也作为虚拟驱动,向电源管理模块注册驱动管理模块对应的唤醒函数,该唤醒函数可以控制各驱动的唤醒函数的执行顺序。
图3为本申请根据一示例性实施例示出的另一种电视快速开机方法的实施例流程图,本实施例利用本申请实施例提供的上述方法,在本申请实施例中,每个驱动还分别具有对应的待机函数,且驱动管理模块也具有对应的待机函数,电源管理模块还可以预先向操作系统注册有电源管理回调函数,该实施例包括如下步骤:
步骤301:在接收到待机指令之后,关闭操作系统,并触发电源管理回调函数,通过电源管理回调函数执行驱动管理模块的待机函数。
在一实施例中,如上述步骤101所述,待机指令也可以由有空气的红外发射器发出,即遥控器在检测到待机按键被触发后,生成待机指令,然后通过红外发射器发出。电视终端的红外接收器接收到待机指令后,将该待机指令发送至处理器,从而触发待机过程。
步骤301中触发电源管理回调函数,通过电源管理回调函数执行驱动管理模块的待机函数的描述可以参见上述步骤202的描述,只是将电源管理函数变为电源管理回调函数,驱动管理模块的唤醒函数变为驱动管理模块的待机函数,本申请在此不进行详述。
步骤302:通过待机函数执行第三类驱动的待机函数、第二类驱动的待机函数、第一类驱动的待机函数。
在一实施例中,驱动管理模块的待机函数用于控制各驱动的待机函数的执行顺序,由于开机过程中执行顺序是:先是第一类驱动的唤醒函数、再是第二类驱动的唤醒函数、最后是第三类驱动的唤醒函数。相应的,待机过程中执行顺序可以是:先第三类驱动的待机函数、再是第二类驱动的待机函数、最后是第一类驱动的待机函数。
步骤303:记录当前设置的电视输入接口参数。
在一实施例中,视频终端记录当前设置的电视输入接口参数,以在开机过程中获取。
本实施例中,电视终端在利用上述方法实施例实现开机之后,相应的,通过电源管理模块对应的电源管理回调函数和驱动管理模块对应的待机函数也可以完成待机过程,从而,能够确保电视终端有序进入待机状态。
与前述电视快速开机方法的实施例相对应,本申请还提供了电视快速开机装置的实施例。
本申请电视快速开机装置的实施例可以应用在电视终端上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图4所示,为本申请根据一示例性实施例示出的一种电视终端的硬件结构图,除了图4所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的设备通常根据该设备的实际功能,还可以包括其他硬件,对此不再赘述。
图5为本申请根据一示例性实施例示出的一种电视快速开机装置的实施例结构图,该实施例可以应用在包括驱动管理模块的电视终端上,在本申请实施例中,该驱动管理模块可以用于控制第一类驱动的唤醒函数、第二类驱动的唤醒函数以及第三类驱动的唤醒函数的执行,其中,第二类驱动的唤醒函数的执行依赖于所述第一类驱动的唤醒函数的,第三类驱动的唤醒函数的执行依赖于第二类驱动的唤醒函数的执行,且每类驱动至少包括一个驱动,每个驱动分别具有对应的唤醒函数。如图5所示,该电视快速开机装置包括:第一执行模块510、第二执行模块520、获取模块530、播放模块540。
其中,第一执行模块510,用于在接收到待机唤醒指令之后,通过所述驱动管理模块执行所述第一类驱动的唤醒函数;
第二执行模块520,用于通过所述驱动管理模块执行所述第二类驱动的唤醒函数之后,执行所述第三类驱动的唤醒函数;其中,不同第二类驱动的唤醒函数以并行方式执行;
获取模块530,用于在执行所述第二类驱动的唤醒函数期间,获取当前设置的电视输入接口参数,并根据所述电视输入接口参数获取电视信号;
播放模块540,用于在所述第三类驱动的唤醒函数执行完成之后,播放所述电视信号;
其中,所述第二类驱动的唤醒函数的执行时间比所述第一类驱动的唤醒函数和所述第三类驱动的唤醒函数的执行时间长。
在一实施例中,第一执行模块510,具体用于通过所述驱动管理模块,以串行方式执行所述第一类驱动的唤醒函数。
在一实施例中,第二执行模块520,具体用于在执行所述第三类驱动的唤醒函数的过程中,以串行方式执行所述第三类驱动的唤醒函数。
在一实施例中,所述电视终端还包括电源管理模块,所述电源管理模块预先向操作系统注册有电源管理函数,所述驱动管理模块具有对应的唤醒函数,所述装置还包括(图5中未示出):
启动模块,用于在接收到待机唤醒指令之后,启动所述操作系统;
触发模块,用于基于所述操作系统的启动,触发所述电源管理函数,并通过所述电源管理函数执行所述驱动管理模块的唤醒函数;
第一执行模块510,具体用于通过所述驱动管理模块的唤醒函数执行所述第一类驱动的唤醒函数。
在一实施例中,每个驱动分别具有对应的待机函数,所述驱动管理模块具有对应的待机函数,所述电源管理模块预先向所述操作系统注册有电源管理回调函数,所述装置还包括(图5中未示出):
关闭及触发模块,用于在接收到待机指令之后,关闭所述操作系统,并触发所述电源管理回调函数,通过所述电源管理回调函数执行所述驱动管理模块的待机函数;
第三执行模块,用于通过所述待机函数执行所述第三类驱动的待机函数、所述第二类驱动的待机函数、所述第一类驱动的待机函数;
记录模块,用于记录所述当前设置的电视输入接口参数。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。