同步终端屏幕的画面至车机的方法、终端及系统与流程

文档序号:14910790发布日期:2018-07-10 23:21阅读:127来源:国知局

本发明涉及汽车相关技术领域,具体地,涉及一种同步终端屏幕的画面至车机的方法、终端及系统。



背景技术:

车机屏幕又称为车载屏幕,是设置在车内部的显示器。随着科技的发展,在车载屏幕上同步显示手机的屏幕的画面,方便车主查看手机画面信息已经被广泛应用在人们的生活之中。

但是在车机端和手机端的画面同步(如图1所示)的过程中,车机解码器的解码性能是一定的,当从手机同步传递至车机的画面的画面传输的帧率较大时,由于当前的手机不具备帧率控制的功能,使得车机屏幕无法实现和手机屏幕的画面同步。例如:当在车机和手机之间同步传输H264视频时,手机所发送的帧率达到每秒60帧以上,相应地需要车机解码器所能接收帧率的性能也应达到每秒60帧以上,但由于许多车机编码器不具备该性能,而使得手机和车机的画面同步功能无法正常使用。

需要说明的是,以上技术问题是本发明人在实践本发明的过程中所发现的。



技术实现要素:

本发明实施例的目的是提供一种同步终端屏幕的画面至车机的方法、终端及系统,用以至少解决现有技术中的手机不具备帧率控制的功能,使得车机和手机之间的传输帧率过大而导致车机和手机之间的画面不能同步的技术问题。

为了实现上述目的,本发明实施例一方面提供一种同步终端屏幕的画面至车机的方法,包括:

获取终端屏幕画面的画面帧;

控制以一定帧率映射该终端屏幕画面的画面帧,以生成符合期望帧率的虚拟屏幕画面帧;

在该虚拟屏幕画面帧生成的同时,控制编码所生成的虚拟屏幕画面帧以生成相应的编码屏幕画面,以及

推送该编码屏幕画面至车机。

可选地,该控制以一定帧率映射该终端屏幕画面的画面帧包括:调用overlay线程以执行控制以一定帧率映射该终端屏幕画面的画面帧。

可选地,该获取当前终端屏幕画面的画面帧包括:获取终端屏幕画面;创建对应于该终端屏幕画面的纹理对象;缓存该纹理对象,以及根据所缓存的纹理对象获取该终端屏幕画面的画面帧。

可选地,该根据所缓存的纹理对象获取该终端屏幕画面的画面帧包括:根据所缓存的纹理对象按照生产者/消费者线程模式获取该终端屏幕画面的画面帧。

可选地,控制编码所生成的虚拟屏幕画面帧以生成相应的编码屏幕画面包括:解析以确定该所生成的虚拟屏幕画面帧中的关键帧和非关键帧,以及对该所生成的虚拟屏幕画面帧中的关键帧执行编码;对该所生成的虚拟屏幕画面帧中的非关键帧连同该经编码后的关键帧执行封装以生成相应的编码屏幕画面。

可选地,在该虚拟屏幕画面帧生成的同时,控制编码所生成的虚拟屏幕画面帧以生成相应的编码屏幕画面包括:当该虚拟屏幕画面帧生成时,生成一编码触发指令;以及基于该编码触发指令,触发控制编码所生成的虚拟屏幕画面帧以生成相应的编码屏幕画面。

可选地,该纹理对象为基于openGL的纹理对象。

本发明实施例另一方面提供一种终端,包括:

屏幕画面帧获取单元,用于获取终端屏幕画面的画面帧;

控制映射单元,用于控制以一定帧率映射该终端屏幕画面的画面帧,以生成符合期望帧率的虚拟屏幕画面帧;

编码屏幕画面生成单元,用于在该虚拟屏幕画面帧生成的同时,控制编码所生成的虚拟屏幕画面帧以生成相应的编码屏幕画面,以及

画面推送单元,用于推送该编码屏幕画面至车机。

可选地,该控制映射单元用于调用overlay线程以执行控制以一定帧率映射该终端屏幕画面的画面帧,以生成符合期望帧率的虚拟屏幕画面帧。

可选地,该屏幕画面帧获取单元包括:屏幕画面获取模块,用于获取终端屏幕画面;纹理对象创建模块,用于创建对应于该终端屏幕画面的纹理对象;纹理对象缓存模块,用于缓存该纹理对象;以及屏幕画面帧获取模块,用于根据所缓存的纹理对象获取该终端屏幕画面的画面帧。

可选地,该屏幕画面帧获取模块用于根据所缓存的纹理对象按照生产者/消费者线程模式获取该终端屏幕画面的画面帧。

可选地,该编码屏幕画面生成单元包括:关键帧解析模块,用于解析以确定该所生成的虚拟屏幕画面帧中的关键帧和非关键帧,以及关键帧编码模块,用于对该所生成的虚拟屏幕画面帧中的关键帧执行编码;帧封装模块,用于对该所生成的虚拟屏幕画面帧中的非关键帧连同该经编码后的关键帧执行封装以生成相应的编码屏幕画面。

可选地,该编码屏幕画面生成单元包括:编码触发指令生成模块,用于当该虚拟屏幕画面帧生成时,生成一编码触发指令;以及编码执行模块,用于基于该编码触发指令,触发控制编码所生成的虚拟屏幕画面帧以生成相应的编码屏幕画面。

可选地,该纹理对象为基于openGL的纹理对象。

本发明实施例又一方面提供一种同步终端屏幕的画面至车机的系统,包括:上述的终端,以及车机,适于接收自该终端所推送的该编码屏幕画面,并解码所接收到的该编码屏幕画面。

可选地,该车机和该终端之间基于AOA协议(安卓开放配件协议)建立通信连接以传输该编码屏幕画面。

通过上述技术方案,将终端真实屏幕上的画面以一定的帧率映射到虚拟屏幕画面,使得该所生成的虚拟屏幕画面符合期望帧率,并实现了控制同步传输至车机的画面的帧率不会超出车机的解码能力,保障了车机能够实时同步地显示手机屏幕画面。

本发明实施例的其它特征和优点将在随后的具体实施方式部分予以详细说明。

附图说明

附图是用来提供对本发明实施例的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本发明实施例,但并不构成对本发明实施例的限制。在附图中:

图1示出的是同步终端屏幕的画面至车机的实施效果示意图;

图2示出的是应用本发明一实施例的系统架构示意图;

图3示出的是图2所示的系统架构中运行于手机端的原理示意图;

图4示出的是本发明一实施例的同步终端屏幕的画面至车机的流程示意图;

图5示出的是本发明一实施例的终端的结构示意图。

附图标记说明

10 手机 20 车机

101 显示界面 102 显示获取单元

103 overlay单元 104 帧编码单元

105 通信单元 30 终端

301 屏幕画面帧获取单元 302 控制映射单元

303 编码屏幕画面生成单元 304 画面推送单元

具体实施方式

以下结合附图对本发明实施例的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本发明实施例,并不用于限制本发明实施例。

为了使得本发明的核心思想更好地被公众所理解,在此结合图2和图3对本发明一实施例的具体技术方案进行公开。如图2所示,在应用本发明实施例的架构中包含有手机10和车机20,其中该手机10具备有显示界面101、显示获取单元102、overlay单元103、帧编码单元104和通信单元105,其中该显示界面101可以是触摸屏等,其适于显示手机画面,显示获取单元102可以是与显示界面101连接的用于获取显示界面101的手机画面;然后,利用overlay单元103可以实现对所获取的手机画面执行映射以形成映射图像,并利用帧编码单元104对该所映射后的图像执行编码以生成对应于手机真实屏幕画面的虚拟屏幕画面,最后经由通信单元105发送至车机20。关于该架构实施的原理实施的细节更具体地,以下将结合图3继续说明,基于显示获取单元102创建显示画面,并创建对应于该显示画面的openGL(Open Graphics Library)纹理对象,并继续配置输入缓存器缓存该openGL纹理对象,然后连同生产者/消费者线程配置输出该缓存器以队列的方式获取帧;在显示获取单元102获取到该帧之后,将所获取的帧传输至overlay单元103,overlay单元103判断所接收到的帧的等待时间是否满足一定的阈值即判断是否等待超时以控制真实屏幕画面至虚拟屏幕画面的映射帧的速率;当确认等待超时时,根据所获取的帧生成虚拟屏幕画面,以及触发生成相应的编码触发指令。基于该编码触发指令,启动帧编码单元104即H264编码器,判断该虚拟屏幕画面帧中的关键帧和非关键帧,以及仅对关键帧进行编码准备及编码以节约编码器资源,然后将编码完成之后的关键帧和非关键帧进行封装以生成虚拟编码屏幕画面;最后,经由通信单元105也就是启动H264发送线程,选择通道发送所生成的该虚拟编码屏幕画面至车机20。由此,通过本发明实施例可知,本发明实施例本利用openGL纹理,控制从手机显示到编码器输入的过程,也就是控制流入编码器的帧的速率以达到控制帧率的目的,从而解决了车机和手机互联过程中手机页面和车机页面的不同步的技术问题。

参见图4示出的是本发明一实施例额同步终端屏幕的画面至车机的流程示意图,该方法应用于终端,该方法具体包括:

步骤201:获取终端屏幕画面的画面帧;

步骤202:控制以一定帧率映射终端屏幕画面的画面帧,以生成符合期望帧率的虚拟屏幕画面帧;

步骤203:在虚拟屏幕画面帧生成的同时,控制编码所生成的虚拟屏幕画面帧以生成相应的编码屏幕画面,以及

步骤204:推送该编码屏幕画面至车机。

需要说明的是,该实施例方法中的一部分可以借鉴图2和图3中关于本发明实施例的描述,故在此不加以赘述。另外,在步骤202中的期望帧率可以是与车机的解码性能相匹配的,由此设定能够保障车机和手机之间传输画面时的帧率不会超过车机的解码性能极限。

通过本实施例,提供了一种全新的控制终端传输显示画面的帧率的解决方案,并且应当指出的是:本发明实施例的实施不需要对终端已有软件系统或固有结构做修改,使得本发明实施例的实施和应用具有简单易行的优点。

关于步骤201的执行更具体地公开,可以是包括:获取终端屏幕画面;创建对应于终端屏幕画面的纹理对象;缓存纹理对象,以及根据所缓存的纹理对象获取终端屏幕画面的画面帧。更优选地,该终端屏幕画面的画面帧的获取可以是按照生产者/消费者线程模式所执行的。通过生产者/消费者线程模式模式的执行,能够保障以固定队列的方式向overlay线程供给一定数量的终端屏幕画面的画面帧,进一步地也能稳定overlay映射虚拟屏幕画面帧的帧率。

关于步骤202的执行更具体地公开,可以是通过调用overlay线程以执行控制以一定帧率映射终端屏幕画面的画面帧,以生成符合期望帧率的虚拟屏幕画面帧。由此,利用overlay机制实现了终端真实屏幕画面至虚拟屏幕画面的映射。

关于步骤203的执行更具体地公开,可以是包括:解析以确定该所生成的虚拟屏幕画面帧中的关键帧和非关键帧,以及对该所生成的虚拟屏幕画面帧中的关键帧执行编码;对该所生成的虚拟屏幕画面帧中的非关键帧连同该经编码后的关键帧执行封装以生成相应的编码屏幕画面。由此,使得编码器仅对所生成的虚拟屏幕画面帧中的关键帧执行编码,优化了编码器的占用资源。

关于步骤203的执行更具体地公开,可以是包括:当虚拟屏幕画面帧生成时,生成一编码触发指令;以及基于编码触发指令,触发控制编码所生成的虚拟屏幕画面帧以生成相应的编码屏幕画面。由此,使得该虚拟屏幕画面帧的生成与编码能够同步进行,使得基于对虚拟屏幕画面帧的帧率的控制也就能够实现对经编码的帧的帧率的控制。

作为进一步的公开,本实施例中的纹理对象可以是基于openGL的纹理对象。可以理解的是,在OpenGl中是通过指定纹理坐标来将纹理映射到多边形上去的.在纹理坐标系中,纹理的坐标通过指定横纵坐标参数所确定。纹理就是应用到多边形上的图像。这些图像可以从文件中加载,或是在内存中生成。一旦图像数据被加载到了内存中,则需要为其指定纹理以映射来使用它;该过程被称为纹理映射,纹理映射一般基于纹理对象而实现。而纹理对象是存储着纹理数据和选项等的内部数据类型,虽然该纹理对象不能直接访问,但是可以基于OpenGL所提供的有效的ID标识值来跟踪和执行。

参见图5示出的是本发明一实施例的一种终端的结构示意图,如图1所示,该终端30包括:

屏幕画面帧获取单元301,用于获取终端屏幕画面的画面帧;

控制映射单元302,用于控制以一定帧率映射终端屏幕画面的画面帧,以生成符合期望帧率的虚拟屏幕画面帧;

编码屏幕画面生成单元303,用于在虚拟屏幕画面帧生成的同时,控制编码所生成的虚拟屏幕画面帧以生成相应的编码屏幕画面,以及

画面推送单元304,用于推送该编码屏幕画面至车机。

关于本发明实施例终端的更具体的技术方案的细节及相应的技术效果可以参照上文方法实施例的描述,故于此不加以赘述。

本发明一实施例还提供一种同步终端屏幕的画面至车机的系统,该系统包含上文实施例所阐述的终端,以及车机,该车机适于接收自终端所推送的该编码屏幕画面,并解码所接收到的该编码屏幕画面。由此,使得车机所接收到的画面帧率能够控制在该车机编码器的解码性能范围之内,保障了车机和手机之间的画面同步。

更具体地,该车机和终端之间基于AOA协议(安卓开放配件协议)建立通信连接以传输该编码屏幕画面。由此,使得基于该AOA协议,实现了画面在车机和手机之间的实时传输,并且还能够实现在车机端对手机的控制和操作。

需要说明的是,本发明中的单元和模块可以利用相应的电子元器件所实现。

以上结合附图详细描述了本发明例的可选实施方式,但是,本发明实施例并不限于上述实施方式中的具体细节,在本发明实施例的技术构思范围内,可以对本发明实施例的技术方案进行多种简单变型,这些简单变型均属于本发明实施例的保护范围。

另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合。为了避免不必要的重复,本发明实施例对各种可能的组合方式不再另行说明。

本领域技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序存储在一个存储介质中,包括若干指令用以使得一个(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例上述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。

此外,本发明实施例的各种不同的实施方式之间也可以进行任意组合,只要其不违背本发明实施例的思想,其同样应当视为本发明实施例所公开的内容。

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