一种信号源实时动态预览方法及系统与流程

文档序号:15821464发布日期:2018-11-02 23:08阅读:296来源:国知局
一种信号源实时动态预览方法及系统与流程

本发明涉及电视机技术领域,尤其涉及一种信号源实时动态预览方法及系统。

背景技术

随着智能终端的不断发展,使用智能电视已经成为一种趋势。目前市场上已有的智能电视,虽然有些能做到当前画面信号源的预览显示,但其本质还是采用传统的静态贴图,并非实时动态的,而且无法做到所有信号源的实时动态预览功能。

传统的画中画功能可实现多画面的播放。比如在有线电视上加上画中画播放器,可使得用户在观看某一频道节目时,从电视屏幕某一位置的小窗口观看到其他频道的节目,有选择地收看自己喜爱的节目。传统的画中画播放器包括一个时分复用控制器和一个画中画处理器组成。主画面可以从某一频道或某一信源获得主画面输入,子画面从另一频道或另一信源获得子画面输入。在某一时刻,画中画子画面循环播放其余各频道或各信源的节目图像。时分复用控制器用来控制该多个频道或多个信源,将主画面和子画面输入到画中画处理器中进行处理,最后得到画中画输出。若使用传统的画中画功能实现多个信号源的实时动态预览功能,需增加画中画处理器这一系列的硬件成本。若需要同时得到更多画面的播放效果,则需要增加多个画中画处理器,其硬件成本更高。因为预览功能并不需要像传统画中画那样做到两个通道同时播放,只是需要实时预览多个信源的当前节目情况,即预览一段时间的视频即可供用户选择,用传统的画中画功能来实现的话可谓大材小用,于是亟需发明一种低成本实现多信号源的实时动态预览功能的方案。



技术实现要素:

本发明的目的在于提供一种信号源实时动态预览方法及系统,旨在解决智能电视无法实时动态预览各个信号源视频图像内容的问题。

为实现上述目的,本发明提供的一个技术方案是:提供一种信号源实时动态预览方法,包括:获取在对应第一信号源的主画面窗口中同时预览至少一个第二信号源的内容的预览指令,并发出该预览指令和第一信号源输出指令;接收第一信号源输出指令并发送相应的第一信号源的内容;接收该预览指令,并响应该指令获取至少一个第二信号源的内容;以及将第一信号源的内容和至少一个第二信号源的内容进行混合编辑,用以在显示第一信号源的内容的主画面窗口以用户界面小窗口的形式显示至少一个第二信号源的内容。

本发明还提供一个技术方案是:提供一种信号源实时动态预览系统,包括:处理器,用于获取在对应第一信号源的主画面窗口中同时预览至少一个第二信号源的内容的预览指令,并发出该预览指令和第一信号源输出指令;复用器,与处理器连接,用于在收到第一信号源输出指令时发送相应的第一信号源的内容;响应器,与处理器和复用器相连接,用于接收该预览指令,响应该指令从复用器中获取至少一个第二信号源的内容;以及编辑器,与复用器和响应器相连接,用于将第一信号源的内容和至少一个第二信号源的内容进行混合编辑,以在显示第一信号源内容的主画面窗口以用户界面小窗口的形式显示至少一个第二信号源的内容。

本发明有益效益:区别于现有技术,本发明通过获取在对应第一信号源的主画面窗口中同时预览至少一个第二信号源的内容的指令,进一步响应指令以获取至少一个第二信号源的内容,然后在主画面窗口以用户界面小窗口的形式显示至少一个第二信号源的内容。通过这种方式,本发明可以在不切换当前信号源的情况下,将各个信号源的内容以用户界面小窗口的形式进行显示,与用户界面相融合,得到稳定动态的连续画面,实现各个信号源的实时动态预览,提供一种新的节目预览及播放模式。

附图说明

图1是是本发明信号源实时动态预览系统实施例一的示意图;

图2是是本发明信号源实时动态预览系统实施例一的响应器13的示意图;

图3是是本发明信号源实时动态预览系统实施例一视频服务进程的示意图;

图4是本发明信号源实时动态预览方法实施例一的流程图;

图5是本发明信号源实时动态预览方法实施例一中步骤s43的具体流程图;

图6是本发明信号源实时动态预览方法实施例一中步骤s51具体流程图;

图7是本发明信号源实时动态预览方法实施例一中步骤s54的具体流程图;

图8是本发明信号源实时动态预览方法实施例一中步骤s705的具体流程图;

图9是本发明信号源实时动态预览方法实施例一中步骤s802的具体流程图。

具体实施方式

为使本领域的技术人员更好地理解本发明的技术方案,下面结合附图和具体实施方式对本发明所提供的一种信号源实时动态预览方法及系统做进一步详细描述。

如图1所示,是本发明信号源实时动态预览系统实施例一的示意图,该系统用来输入多个信源,包括第一信号源和至少一个第二信号源,该系统包括处理器11,复用器12,响应器13,编辑器14以及与编辑器14连接的屏幕15,其中屏幕15可以设置在该系统内或者系统外,本实施例中将屏幕15设置在系统中以示说明,但是本领域的技术人员可知此处不能理解为限制本发明的专利保护范围。

处理器11,用来获取在对应第一信号源的主画面窗口中同时预览至少一个第二信号源的内容的预览指令,并发出该预览指令和第一信号源输出指令。

具体地,主画面窗口显示播放第一信号源的视频图像内容,主画面窗口通常是指用户当前观看的频道,在当前观看的频道上接收预览至少一个第二信号源的内容的指令,使得在不切换当前信号源的情况下,实现预览其他信号源内容的功能,其中第一信号源和/或第二信号源是:模拟电视(analogtelevisionlimited,atv)、数字电视(digitaltelevision,dtv)、高清晰度多媒体接口(highdefinitionmultimediainterface,

hdmi)、视频传输接口(videographicsarray,vga)、分量接口(ypbpr)、视频音频接口(audio/video,av)、复合视频广播(compositevideobroadcastsignal,cvbs)、多媒体中的一种或几种,这些信号源可以是广播信号源、网络信号源、多媒体等。

复用器12,与处理器11相连接,用于在收到处理器11发出的第一信号源输出指令时发送相应的第一信号源的内容。

响应器13,与处理器11和复用器12相连接,用于从处理器11处接收该预览指令,响应该指令从复用器12中获取至少一个第二信号源的内容。

在接收用户通过按键、触摸屏或手势检测系统输入的至少一个第二信号源的内容的预览指令后,响应该指令获取至少一个第二信号源的内容,第二信号源不同于第一信号源。不仅可以是广播信号源的内容,也可以是网络信号源或多媒体的内容。

编辑器14,与复用器12和响应器13相连接,用于将第一信号源的内容和至少一个第二信号源的内容进行混合编辑,用以在显示第一信号源内容的主画面窗口以用户界面小窗口的形式显示至少一个第二信号源的内容。将获取的内容在主画面窗口上以用户界面小窗口的形式显示出来,用户界面不同于传统电视的显示屏窗口,它是依托在智能电视操作系统的人机交互界面,可以在主画面窗口上生成多个用户界面小窗口,使得每一个第二信号源的内容对应显示在一个用户界面小窗口内,或者可选在主画面窗口上生成一个用户界面小窗口,多个第二信号源的内容按某一顺序排列在这个用户小窗口内,以安卓系统的智能电视为例,可选picture显示控件或自定义显示控件。

多个用户界面小窗口可选同时播放多个第二信号源的内容,或者随着光标焦点在各个用户界面小窗口之间移动,用户界面小窗口随之播放其对应第二信号源的视频图像内容。由于用户界面小窗口是可操作生成的,因此一般来说,有多少个信号源,就可以生成多少个用户界面小窗口,其对硬件条件的要求有限,将各个信号源的内容在用户界面小窗口中显示,从而实现几乎所有信号源的实时动态预览。

屏幕15,与编辑器14相连接,用以在主画面窗口上以用户界面小窗口的形式显示至少一个第二信号源的内容。

具体地,从复用器12中获取的第一信号源的内容,直接通过编辑器14在屏幕上的主画面窗口中进行播放,而至少一个第二信号源的内容是响应器13响应预览指令持续从复用器12中获取的,再传输至编辑器14,在屏幕15上以用户界面小窗口的形式显示出来,可以看出,第一信号源与第二信号源从获取内容后到在屏幕上显示出来,所走的路径不同。在本实施例中,将至少一个第二信号源的内容通过响应器13实时动态地传输至编辑器14内在屏幕上进行显示,不影响当前频道即第一信号源的播放内容,从而实现一种新的节目预览与播放模式。

如图2所示,是本发明信号源实时动态预览系统实施例一的响应器13的示意图。响应器13包括一抓图引擎21、一与之连接的硬件图形引擎22和缓存23。

响应器13从处理器11处接收到该预览指令后,连接视频服务进程、摄像头服务进程以及用户界面进程,抓图引擎21从复用器12中截取第二信号源的视频图像内容,然后将截取的第二信号源的视频图像内容发送至硬件图形引擎22,通过视频服务进程控制硬件图形引擎22将视频图像内容转换成用户界面小窗口需要大小和格式的动态数据。

具体的,抓图引擎21将第二信号源的视频图像内容的某一帧抓取下来,并缩放到指定的大小,接着将数据送入到硬件图形引擎22,硬件图形引擎22将数据按照需要进行转换,并将转换后的动态数据存储到缓存23中。

接着,响应器13执行的视频服务进程首先接收来自摄像头服务进程获取动态数据的请求,然后发送动态数据至摄像头服务进程,经由摄像头服务进程向用户界面进程提供缓存23中的转换后的动态数据,以最终在屏幕15上生成的用户界面小窗口中显示出来稳定连续的实时动态预览数据。这个过程实现将各个信号源视频图像内容转换为稳定连续的实时动态预览数据,并达到比较高的帧率,得到连续动态画面的实时预览。

在其他实施例中,摄像头服务进程可通过其他硬件资源如摄像头硬件资源获取视频图像动态数据,再进行后续操作。

实际应用在如安卓(android)系统的智能电视时,在系统启动的时候,通常就要将视频服务进程以及摄像头服务进程启动,这样如果上层需要实时动态数据服务,就可以随时向摄像头服务进程发出请求。在本实例中,视频服务进程在开机时加入了android的defaultservicemanger中,而摄像头服务进程在mediaservice中启动。

如图3所示,图3是本发明信号源实时动态预览系统实施例一视频服务进程的示意图。为了使视频服务进程更好的融入到android系统架构中,本实施例将视频服务进程模拟成一个虚拟摄像头设备,这样视频服务进程不仅可以与android系统实现无缝衔接,借用摄像头服务进程本身的接口又能提供更加灵活强大的功能,例如动态截屏、视频录制等。用户界面进程也可以灵活的连接其它硬件视频源,例如系统默认的id为0的真实摄像头设备,本领域技术人员可知,本发明也可不连接其他硬件视频,仅利用视频服务进程即成为摄像头服务进程的id为1的虚拟摄像头设备就可实现动态预览的功能,此处与真实摄像头设备相连接仅为另一实施例的示意,不能看作限制本发明的专利保护范围。

如图4所示,是本发明信号源实时动态预览方法实施例一的流程图,该方法包括:

步骤s41:获取在对应第一信号源的主画面窗口中同时预览至少一个第二信号源的内容的预览指令,并发出该预览指令和第一信号源输出指令;

步骤s42:接收第一信号源输出指令并发送相应的第一信号源的内容;

步骤s43:接收该预览指令,并响应该指令获取至少一个第二信号源的内容;以及

步骤s44:将第一信号源的内容和至少一个第二信号源的内容进行混合编辑,用以在显示第一信号源的内容的主画面窗口以用户界面小窗口的形式显示至少一个第二信号源的内容。

如图5所示,是本发明信号源实时动态预览方法实施例一中步骤s43的具体流程图,具体包括:

步骤s51:在接收到该预览指令后,连接视频服务进程、摄像头服务进程以及用户界面进程,并截取第二信号源的视频图像内容;

步骤s52:经由视频服务进程将视频图像内容转换成用户界面小窗口需要大小和格式的动态数据;

步骤s53:缓存转换后的动态数据;

步骤s54:经由视频服务进程接收来自摄像头服务进程获取动态数据的请求,然后发送动态数据至摄像头服务进程;

步骤s55:经由摄像头服务进程向用户界面进程提供缓存中的转换后的动态数据;以及

步骤s56:经由用户界面进程生成动态数据对应的图像。

本实施例中按照上述方法,固定帧率的动态数据会从视频服务进程不断的送往摄像头服务进程,再从摄像头服务进程送入用户界面进程,用户界面进程生成一帧帧视频图像数据,在主画面窗口上以用户界面小窗口的形式进行显示。

具体的,是将第二信号源的视频图像内容的某一帧抓取下来,并缩放到指定的大小,接着将数据按照需要进行转换,并将转换后的动态数据存储到缓存中,这个过程实现将各个信号源视频图像内容转换为稳定连续的实时动态预览数据,并达到比较高的帧率,得到连续动态画面的实时预览。

步骤s51:在接收到该预览指令后,连接视频服务进程、摄像头服务进程以及用户界面进程,并截取第二信号源的视频图像内容具体流程如图6所示,图6是本发明信号源实时动态预览方法实施例一中步骤s51的具体流程图。首先执行步骤s601:将用户界面进程与摄像头服务进程进行连接,比如:可以通过摄像头客户端服务(cameraclient)进行连接,然后执行步骤s602:将摄像头服务进程与视频服务进程进行连接,接著执行步骤s603:判断摄像头服务进程与视频服务进程是否连接成功,若不成功,则执行步骤s604:异常退出;若是,则执行步骤s605:进一步判断视频服务进程是否支持用户界面进程需要的参数,比如图像的大小、帧率等,如果不支持就执行步骤s606:将摄像头服务进程和视频服务进程断开连接,接着执行步骤s604:异常退出;如果支持,那就执行步骤s607:设置回调函数,该回调函数是用于数据发送的回调函数,包括摄像头服务进程的回调函数和用户界面进程的回调函数,并且执行步骤s608:通知视频服务进程,通过视频服务进程控制抓图引擎开启抓图功能,截取第二信号源的视频图像内容,再进行后续操作。只有当用户界面进程主动调用摄像头服务进程的停止(stop)接口时才会停止动态数据的传送。停止接口中的操作是图6所示步骤的一个相反操作过程。首先会去设置回调函数为空,然后停止视频服务进程的抓图动作,断开跟视频服务进程的连接。

在一实施例中,步骤s54:视频服务进程首先接收来自摄像头服务进程获取动态数据的请求,然后发送动态数据至摄像头服务进程的具体流程如图7所示,图7是本发明信号源实时动态预览方法实施例一中步骤s54的具体流程图,包括:

步骤s701:准备动态数据,等待发送;

视频服务进程接收来自摄像头服务进程获取动态数据的请求,调用抓图引擎接口(api)等待下一帧动态数据,等待发送。如果下一帧动态数据还没准备好,进程就会因为调用此api而睡眠,等数据好了以后,就会被唤醒。

步骤s702:判断视频服务进程的空闲序列中是否有可用的缓存,如果空闲序列中有可用的缓存,则执行步骤s703:将转换后的动态数据复制到可用的缓存,否则,执行步骤s701,重新获取新的动态数据等待发送;

实际应用中,视频服务进程、摄像头服务进程都可以提供线程池(threadpool),这样可以支持数据的并发访问,提高性能。视频服务进程、摄像头服务进程可以并发的访问其内的2个缓存序列即空闲序列(freelist)和发送序列(sendlist)。对于视频服务进程,它本身控制的抓图引擎和硬件图形引擎可以并发访问其内的2个缓存序列。而视频服务进程、摄像头服务进程的2个缓存序列通常需要用线程锁来保护,以保证在同一个进程内多线程(thread)的互斥访问。

进程被唤醒后,首先查看空闲序列中是否有缓存可以用,如果有,拿出此缓存,根据用户界面小窗口需要的参数设置,通过硬件图形引擎进行大小和格式转换,将转换后的动态数据输出到该空闲序列的缓存中。如果没有可用的缓存,就忽略此帧,返回步骤s701重新准备下一帧动态数据等待发送。

步骤s704:将包括动态数据的可用的缓存移至视频服务进程的发送序列的末尾,进一步发送至摄像头服务进程。

步骤s55:经由摄像头服务进程向用户界面进程提供缓存中的转换后的动态数据具体流程可参考图8所示,图8是本发明的是本发明信号源实时动态预览方法实施例一中步骤s55的具体流程图,该发送流程包括:

步骤s801:将动态数据复制到用户界面进程的缓存;

本实施例中,摄像头服务进程收到动态数据后,并不去做判断其是否有缓存,直接将该动态数据复制到用户界面进程的缓存中。

但是在其他实施例中,可选摄像头服务进程采用2个缓存序列即空闲序列和发送序列,在收到动态数据后首先判断其空闲序列中是否有缓存,如果有就将动态数据复制到可用的缓存中,然后将复制好动态数据的缓存移进发送序列的末端,调用回调函数将数据发送至用户界面进程的缓存中;如果没有缓存,则说明用户界面进程由于某些原因,例如系统非常繁忙,之前送去的缓存还没有处理完,此时直接忽略这帧数据,等待下一帧。

步骤s802:通知视频服务进程释放复制的动态数据对应的缓存。在将动态数据复制到用户界面进程的缓存后,需要通知视频服务进程释放相应的缓存,为后续不断发送的动态数据提供足够的缓存空间;如果采用2个缓存序列,在将动态数据复制到可用的缓存中后,通知视频服务进程释放相应的缓存,具体释放过程如图9所示,图9是本发明信号源实时动态预览方法实施例一中步骤s802的具体流程图,包括:

步骤s901:从视频服务进程的发送序列中拿出第一个缓存,判断是否是用户界面进程请求要释放的缓存;若是,则执行步骤s902:将发送序列的第一个缓存移入空闲序列的末尾,否则,则执行步骤s903:报错中断;步骤s904:释放缓存。

理论上,凡是摄像头服务进程中正在使用的动态数据,以及使用完后还没来得及释放的缓存均在视频服务进程的发送序列内。缓存在发送序列中的顺序是跟数据之前发送的顺序一样,所以,每次释放的缓存都应该是发送序列中的第一个缓存。对于用户界面进程调用释放缓存接口时,首先要去视频服务进程的发送序列中拿第一个缓存,查看是否跟用户界面进程要释放的缓存相同,若相同,就将其从发送序列移动进空闲序列,进行释放。否则,报错中断,可选发出一个断言(assert),说明系统程序出现故障。

步骤用户界面进程利用摄像头预览功能,设置摄像头预览的缓存区,摄像头服务进程发送的动态数据通过回调函数不断投递到这个缓存区内,因为用户界面进程的数据是比较大的,所以数据不会被携带传至上层如编辑器等,而是直接在两个缓存区之间复制,一个是底层采集数据的缓存区,一个是用于显示的界面缓存区。

前面提到,用户界面进程通过摄像头客户端服务与摄像头服务进程建立连接,在连接成功时摄像头客户端服务就会设置回调函数,对底层采集数据进行处理,利用底层采集数据生成一帧视频图像数据,复制到界面缓存区,在屏幕上直接以用户界面小窗口的形式进行显示。

本实施例依托安卓系统平台进行应用,但并不表示本发明信号源实时动态预览方法限定在安卓系统平台上,在其他实施例中,也可应用于其他操作系统如ios系统中,本实施例中涉及步骤顺序也并不限定,以实际需求为准。

本发明的信号源实时动态预览方法及系统实现节目预览,实验表明,每一信号源的视频图像内容从获取至传输到上层所需的时间最快可为18ms,因此各个信号源的视频图像内容可几乎同步显示在用户界面小窗口上,可在不切换当前信号源的情况下,实现各个信号源的实时动态节目预览,画面流畅。

本发明通过上述实施例详细描述了一种信号源实时动态预览方法及系统,通过获取在对应第一信号源的主画面窗口中同时预览至少一个第二信号源的内容的指令,进一步响应指令以获取至少一个第二信号源的内容,然后在主画面窗口以用户界面小窗口的形式显示至少一个第二信号源的内容。通过这种方式,本发明可以在不切换当前信号源的情况下,将各个信号源的内容以用户界面小窗口的形式进行显示,与用户界面相融合,得到稳定动态的连续画面,实现各个信号源的实时动态预览,提供一种新的节目预览及播放模式。

在本发明所提供的几个实施方式中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施方式仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施方式方案的目的。

另外,在本发明各个实施方式中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施方式所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述仅为本发明的实施方式,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1