显示设备和数据共享方法与流程

文档序号:29561200发布日期:2022-04-09 00:51阅读:184来源:国知局
显示设备和数据共享方法与流程

1.本技术涉及显示设备技术领域,尤其涉及一种显示设备和数据共享方法。


背景技术:

2.随着显示设备的快速发展,显示设备的功能将越来越丰富,性能也越来越强大,可实现双向人机交互功能,集影音、娱乐、数据等多种功能于一体,用于满足用户多样化和个性化需求。显示设备可以内置或外接摄像头设备,以实现诸如视频聊天、拍照、录像等特定的功能。
3.显示设备中可以安装有需要利用摄像头的摄像头应用,例如“视频通话”、“照镜子”。显示设备在启动摄像头相关的摄像头应用后,可以利用摄像头获取多帧图像数据,并根据图像数据生成具体的画面,将画面在显示器中进行显示,从而实现摄像头应用的相关功能。
4.摄像头应用需要通过摄像头的设备节点获取到摄像头的图像数据。然而,摄像头的设备节点在同一时间内只能向一个摄像头应用发送数据,导致摄像头的图像数据在同一时间内仅能被一个摄像头应用使用,例如,在同时使用视频通话和照镜子应用时,摄像头的图像数据仅能用于视频通话,或仅能用于照镜子。即多个摄像头应用不能同时获取到摄像头的图像数据,用户无法同时使用多个摄像头相关的摄像头应用,给用户的体验性较差。


技术实现要素:

5.本发明提供了一种显示设备和数据共享方法。以解决现有的显示设备中多个摄像头应用不能同时获取到摄像头的图像数据的问题。
6.第一方面,本技术提供一种显示设备,显示设备包括显示器和控制器。其中,控制器被配置为执行以下步骤:
7.当接收到第一摄像头应用发送的用于调用摄像头的调用请求时,构建虚拟设备节点;将摄像头采集的图像数据存储至物理内存中;利用摄像头的设备节点将所述图像数据从所述物理内存中映射到第一虚拟内存中,所述第一虚拟内存用于向所述第一摄像头应用提供所述图像数据;以及,利用所述虚拟设备节点将所述图像数据从所述物理内存中映射到第二虚拟内存中,所述第二虚拟内存用于向第二摄像头应用提供所述图像数据。
8.在一些实现方式中,所述控制器还被配置为:在执行将摄像头采集的图像数据存储至物理内存中的步骤前,
9.通过框架层调用摄像头服务;控制所述摄像头服务调用硬件抽象层;使用所述硬件抽象层的摄像头提供者进程,与所述摄像头建立通信连接;向所述摄像头发送开启指令;接收所述摄像头发送的图像数据。
10.在一些实现方式中,所述控制器还被配置为:在执行利用摄像头的设备节点将所述图像数据从所述物理内存中映射到第一虚拟内存中的步骤后,
11.将所述第一虚拟内存中的图像数据发送至解码器,并控制解码器对图像数据进行
解码;将解码后的图像数据发送至第一摄像头应用。
12.在一些实现方式中,所述控制器还被配置为:在执行利用所述虚拟设备节点将所述图像数据从物理内存中映射到第二虚拟内存中的步骤后,
13.当接收到第二摄像头应用发送的用于调用摄像头的第二调用请求时,将所述第二虚拟内存中的图像数据发送至解码器,并控制解码器对图像数据进行解码;将解码后的图像数据发送至第二摄像头应用。
14.在一些实现方式中,所述控制器还被配置为:
15.当接收到第一摄像头应用发送的用于调用摄像头的调用请求时,构建第二虚拟设备节点;利用摄像头的设备节点将所述图像数据从所述物理内存中映射到第三虚拟内存中;当接收到第三摄像头应用发送的用于调用摄像头的第三调用请求时,将所述第三虚拟内存中的图像数据发送至解码器,并控制解码器对图像数据进行解码;将解码后的图像数据发送至第三摄像头应用。
16.在一些实现方式中,所述控制器还被配置为:
17.响应于用户输入的指示查询虚拟设备节点数量的查询指令,控制器显示器中显示当前构建的虚拟设备节点的数量,以使用户对虚拟设备节点的数量进行设置。
18.在一些实现方式中,所述控制器进一步被配置为:在执行将图像数据存储至物理内存中的步骤中,
19.将图像数据填充至物理内存的第一空间中;判断所述第一空间是否填充完整;当所述第一空间填充完整后,允许所述摄像头的设备节点访问所述第一空间,并将图像数据继续填充至物理内存的第二空间中;利用摄像头的设备节点将所述第一空间中的图像数据从所述物理内存中映射到第一虚拟内存中。
20.在一些实现方式中,所述控制器还被配置为:
21.检测所述第一空间是否被所有的设备节点访问完毕;当所述第一空间被所有的设备节点访问完毕时,对所述第一空间进行内存释放处理。
22.在一些实现方式中,所述控制器还被配置为:
23.检测所述第二空间是否被所有的设备节点访问完毕;当所述第二空间被所有的设备节点访问完毕时,检测第一空间是否进行了内存释放处理;若是,则对所述第二空间进行内存释放处理。
24.第二方面,本技术提供一种数据共享方法,应用于显示设备,所述方法包括:
25.当接收到第一摄像头应用发送的用于调用摄像头的调用请求时,构建虚拟设备节点;将摄像头采集的图像数据存储至物理内存中;利用摄像头的设备节点将所述图像数据从所述物理内存中映射到第一虚拟内存中,所述第一虚拟内存用于向所述第一摄像头应用提供所述图像数据;以及,利用所述虚拟设备节点将所述图像数据从所述物理内存中映射到第二虚拟内存中,所述第二虚拟内存用于向第二摄像头应用提供所述图像数据。
26.由以上技术方案可以看出,本技术提供了一种显示设备和数据共享方法,当接收到第一摄像头应用发送的用于调用摄像头的调用请求时,构建虚拟设备节点;将摄像头采集的图像数据存储至物理内存中;利用摄像头的设备节点将图像数据从物理内存中映射到第一虚拟内存中,以及,利用虚拟设备节点将图像数据从物理内存映射到第二虚拟内存中。其中,第一虚拟内存和第二虚拟内存可用于向多个摄像头应用提供图像数据。摄像头采集
的图像数据可以同时发送给多个摄像头应用,实现了多个摄像头应用之间的数据共享。从而使得用户可以同时使用多个摄像头应用,提高了用户的体验性。
附图说明
27.为了更清楚地说明本技术的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
28.图1示出了根据一些实施例的显示设备的使用场景;
29.图2示出了根据一些实施例的控制装置100的硬件配置框图;
30.图3示出了根据一些实施例的显示设备200的硬件配置框图;
31.图4示出了根据一些实施例的显示设备200中软件配置图;
32.图5示出了一些实施例中显示设备各部件的交互流程图;
33.图6示出了一可行性实施例中显示器中的用户界面;
34.图7示出了一可行性实施例中显示器中的应用列表界面;
35.图8示出了一些实施例中控制器发送开启指令的流程图;
36.图9示出了一可行性实施例中显示器中显示摄像头共享模式确认信息的示意图;
37.图10示出了一可行性实施例中显示器显示虚拟设备节点数量的示意图;
38.图11a示出了一可行性实施例中设备节点访问空间的示意图;
39.图11b示出了一可行性实施例中设备节点访问空间的示意图;
40.图12示出了数据共享方法的一个实施例的流程示意图。
具体实施方式
41.为使本技术的目的和实施方式更加清楚,下面将结合本技术示例性实施例中的附图,对本技术示例性实施方式进行清楚、完整地描述,显然,描述的示例性实施例仅是本技术一部分实施例,而不是全部的实施例。
42.需要说明的是,本技术中对于术语的简要说明,仅是为了方便理解接下来描述的实施方式,而不是意图限定本技术的实施方式。除非另有说明,这些术语应当按照其普通和通常的含义理解。
43.本技术中说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”等是用于区别类似或同类的对象或实体,而不必然意味着限定特定的顺序或先后次序,除非另外注明。应该理解这样使用的用语在适当情况下可以互换。
44.术语“包括”和“具有”以及他们的任何变形,意图在于覆盖但不排他的包含,例如,包含了一系列组件的产品或设备不必限于清楚地列出的所有组件,而是可包括没有清楚地列出的或对于这些产品或设备固有的其它组件。
45.术语“模块”是指任何已知或后来开发的硬件、软件、固件、人工智能、模糊逻辑或硬件或/和软件代码的组合,能够执行与该元件相关的功能。
46.图1为根据实施例中显示设备的使用场景的示意图。如图1所示,显示设备200还与服务器400进行数据通信,用户可通过智能设备300或控制装置100操作显示设备200。
47.在一些实施例中,控制装置100可以是遥控器,遥控器和显示设备的通信包括红外
协议通信或蓝牙协议通信,及其他短距离通信方式中的至少一种,通过无线或有线方式来控制显示设备200。用户可以通过遥控器上按键、语音输入、控制面板输入等至少一种输入用户指令,来控制显示设备200。
48.在一些实施例中,智能设备300可以包括移动终端、平板电脑、计算机、笔记本电脑,ar/vr设备等中的任意一种。
49.在一些实施例中,也可以使用智能设备300以控制显示设备200。例如,使用在智能设备上运行的摄像头应用控制显示设备200。
50.在一些实施例中,也可以使用智能设备300和显示设备进行数据的通信。
51.在一些实施例中,显示设备200还可以采用除了控制装置100和智能设备300之外的方式进行控制,例如,可以通过显示设备200设备内部配置的获取语音指令的模块直接接收用户的语音指令控制,也可以通过显示设备200设备外部设置的语音控制装置来接收用户的语音指令控制。
52.在一些实施例中,显示设备200还与服务器400进行数据通信。可允许显示设备200通过局域网(lan)、无线局域网(wlan)和其他网络进行通信连接。服务器400可以向显示设备200提供各种内容和互动。服务器400可以是一个集群,也可以是多个集群,可以包括一类或多类服务器。
53.在一些实施例中,一个步骤执行主体执行的软件步骤可以随需求迁移到与之进行数据通信的另一步骤执行主体上进行执行。示例性的,服务器执行的软件步骤可以随需求迁移到与之数据通信的显示设备上执行,反之亦然。
54.图2示例性示出了根据示例性实施例中控制装置100的配置框图。如图2所示,控制装置100包括控制器110、通信接口130、用户输入/输出接口140、存储器、供电电源。控制装置100可接收用户的输入操作指令,且将操作指令转换为显示设备200可识别和响应的指令,起用用户与显示设备200之间交互中介作用。
55.在一些实施例中,通信接口130用于和外部通信,包含wifi芯片,蓝牙模块,nfc或可替代模块中的至少一种。
56.在一些实施例中,用户输入/输出接口140包含麦克风,触摸板,传感器,按键或可替代模块中的至少一种。
57.图3示出了根据示例性实施例中显示设备200的硬件配置框图。
58.在一些实施例中,显示设备200包括调谐解调器210、通信器220、检测器230、外部装置接口240、控制器250、显示器260、音频输出接口270、存储器、供电电源、用户接口中的至少一种。
59.在一些实施例中控制器包括中央处理器,视频处理器,音频处理器,图形处理器,ram,rom,用于输入/输出的第一接口至第n接口。
60.在一些实施例中,显示器260包括用于呈现画面的显示屏组件,以及驱动图像显示的驱动组件,用于接收源自控制器输出的图像信号,进行显示视频内容、图像内容以及菜单操控界面的组件以及用户操控ui界面等。
61.在一些实施例中,显示器260可为液晶显示器、oled显示器、以及投影显示器中的至少一种,还可以为一种投影装置和投影屏幕。
62.在一些实施例中,调谐解调器210通过有线或无线接收方式接收广播电视信号,以
及从多个无线或有线广播电视信号中解调出音视频信号,如以及epg数据信号。
63.在一些实施例中,通信器220是用于根据各种通信协议类型与外部设备或服务器进行通信的组件。例如:通信器可以包括wifi模块,蓝牙模块,有线以太网模块等其他网络通信协议芯片或近场通信协议芯片,以及红外接收器中的至少一种。显示设备200可以通过通信器220与控制装置100或服务器400建立控制信号和数据信号的发送和接收。
64.在一些实施例中,检测器230用于采集外部环境或与外部交互的信号。例如,检测器230包括光接收器,用于采集环境光线强度的传感器;或者,检测器230包括图像采集器,如摄像头,可以用于采集外部环境场景、用户的属性或用户交互手势,再或者,检测器230包括声音采集器,如麦克风等,用于接收外部声音。
65.在一些实施例中,外部装置接口240可以包括但不限于如下:高清多媒体接口接口(hdmi)、模拟或数据高清分量输入接口(分量)、复合视频输入接口(cvbs)、usb输入接口(usb)、rgb端口等任一个或多个接口。也可以是上述多个接口形成的复合性的输入/输出接口。
66.在一些实施例中,控制器250和调谐解调器210可以位于不同的分体设备中,即调谐解调器210也可在控制器250所在的主体设备的外置设备中,如外置机顶盒等。
67.在一些实施例中,控制器250,通过存储在存储器上中各种软件控制程序,来控制显示设备的工作和响应用户的操作。控制器250控制显示设备200的整体操作。例如:响应于接收到用于选择在显示器260上显示ui对象的用户命令,控制器250便可以执行与由用户命令选择的对象有关的操作。
68.在一些实施例中,所述对象可以是可选对象中的任何一个,例如超链接、图标或其他可操作的控件。与所选择的对象有关操作有:显示连接到超链接页面、文档、图像等操作,或者执行与所述图标相对应程序的操作。
69.在一些实施例中控制器包括中央处理器(central processing unit,cpu),视频处理器,音频处理器,图形处理器(graphics processing unit,gpu),ram random access memory,ram),rom(read-only memory,rom),用于输入/输出的第一接口至第n接口,通信总线(bus)等中的至少一种。
70.cpu处理器。用于执行存储在存储器中操作系统和摄像头应用指令,以及根据接收外部输入的各种交互指令,来执行各种摄像头应用、数据和内容,以便最终显示和播放各种音视频内容。cpu处理器,可以包括多个处理器。如,包括一个主处理器以及一个或多个子处理器。
71.在一些实施例中,图形处理器,用于产生各种图形对象,如:图标、操作菜单、以及用户输入指令显示图形等中的至少一种。图形处理器包括运算器,通过接收用户输入各种交互指令进行运算,根据显示属性显示各种对象;还包括渲染器,对基于运算器得到的各种对象,进行渲染,上述渲染后的对象用于显示在显示器上。
72.在一些实施例中,视频处理器,用于将接收外部视频信号,根据输入信号的标准编解码协议,进行解压缩、解码、缩放、降噪、帧率转换、分辨率转换、图像合成等视频处理中的至少一种,可得到直接可显示设备200上显示或播放的信号。
73.在一些实施例中,视频处理器,包括解复用模块、视频解码模块、图像合成模块、帧率转换模块、显示格式化模块等中的至少一种。其中,解复用模块,用于对输入音视频数据
manager)用与和系统中正在运行的所有活动进行交互;位置管理器(location manager)用于给系统服务或应用提供了系统位置服务的访问;文件包管理器(package manager)用于检索当前安装在设备上的摄像头应用包相关的各种信息;通知管理器(notification manager)用于控制通知消息的显示和清除;窗口管理器(window manager)用于管理用户界面上的括图标、窗口、工具栏、壁纸和桌面部件。
83.在一些实施例中,活动管理器用于管理各个摄像头应用的生命周期以及通常的导航回退功能,比如控制摄像头应用的退出、打开、后退等。窗口管理器用于管理所有的窗口程序,比如获取显示屏大小,判断是否有状态栏,锁定屏幕,截取屏幕,控制显示窗口变化(例如将显示窗口缩小显示、抖动显示、扭曲变形显示等)等。
84.在一些实施例中,系统运行库层为上层即框架层提供支撑,当框架层被使用时,安卓操作系统会运行系统运行库层中包含的c/c++库以实现框架层要实现的功能。
85.在一些实施例中,内核层是硬件和软件之间的层。如图4所示,内核层至少包含以下驱动中的至少一种:音频驱动、显示驱动、蓝牙驱动、摄像头驱动、wifi驱动、usb驱动、hdmi驱动、传感器驱动(如指纹传感器,温度传感器,压力传感器等)、以及电源驱动等。
86.摄像头应用需要通过摄像头的设备节点获取到摄像头的图像数据。然而,摄像头的设备节点在同一时间内只能向一个摄像头应用发送数据,导致摄像头的图像数据在同一时间内仅能被一个摄像头应用使用,例如,在同时使用视频通话和照镜子应用时,摄像头的图像数据仅能用于视频通话,或仅能用于照镜子。即多个摄像头应用不能同时获取到摄像头的图像数据,用户无法同时使用多个摄像头相关的摄像头应用,给用户的体验性较差。
87.本技术提供一种显示设备,包括显示器和控制器。
88.在一些实施例中,显示设备还包括摄像头,摄像头用于采集图像数据。
89.摄像头可以作为一种检测器内置于显示设备中,也可以作为一种外部装置外接在显示设备上。对于外接在显示设备的摄像头,可以将摄像头连接至显示设备的外部装置接口,接入显示设备。用户可以利用摄像头在显示设备上完成拍照或拍摄功能,从而将摄像头采集到的数据展示到显示器中,以供用户观看。
90.摄像头可以进一步包括镜头组件,镜头组件中设有感光元件和透镜。透镜可以通过多个镜片对光线的折射作用,使景物的图像的光能够照射在感光元件上。感光元件可以根据摄像头的规格选用基于ccd(charge-coupled device,电荷耦合器件)或cmos(complementary metal oxide semiconductor,互补金属氧化物半导体)的检测原理,通过光感材料将光信号转化为电信号,并将转化后的电信号输出成图像数据。摄像头还可以按照设定的采样频率逐帧获取图像数据,以根据图像数据形成视频流数据。
91.在一些实施例中,显示设备中可以安装有摄像头应用,这些摄像头应用可以调用摄像头,以实现各自的相关功能。摄像头应用,是指需要访问摄像头的摄像头应用,可以对摄像头采集的图像数据进行处理,从而实现相关功能,例如视频聊天。
92.图5示出了一些实施例中显示设备各部件的交互流程图。
93.在一些实施例中,用户可以查看显示设备中已安装的所有应用。用户可以向显示设备发送查询所有的应用的查询指令,控制器响应于该查询指令,可以控制显示器中显示应用列表。图6示出了一可行性实施例中显示器中的用户界面。用户可以点击用户界面中的“我的应用”,从而查看显示设备中已安装的所有应用。
94.用户可以在应用列表中选取想要运行的应用,同时可以向显示设备发送启动摄像头应用的控制指令,以启动相应的摄像头应用。根据显示设备与用户的交互方式不同,用户可以通过不同的交互动作以输入用于启动摄像头应用的控制指令。
95.用户可以通过控制装置(例如遥控器)上的按键交互进入应用列表界面,并在应用列表界面中通过“上、下、左、右”键调整焦点光标位置,并在焦点光标位于应用图标上以后,按下“确定/ok”键输入控制指令,以启动运行相应的摄像头应用。图7示出了一可行性实施例中显示器中的应用列表界面。
96.用户还可以按照其他方式输入用于启动摄像头应用的控制指令。例如,对于支持触控操作的显示设备,用户可以直接在应用列表界面中的应用图标位置上点击触控,以启动运行对应的摄像头应用。对于内置智能语音系统的显示设备,用户可以通过输入诸如“打开摄像头应用a”的语音指令,控制显示设备启动运行相应的摄像头应用。
97.在接收到用户发送的的启动摄像头应用的控制指令后,显示设备根据指令可以运行相应的摄像头应用,从而显示摄像头应用对应的界面。根据摄像头应用所具有的功能不同,所呈现的应用界面也不同。例如,当用户输入用于启动摄像头应用a的控制指令时,显示设备可以运行摄像头应用a,并在显示器上展示摄像头应用a的首页情况。
98.在一些实施例中,显示设备启动摄像头应用后,摄像头应用可以发送用于调用摄像头的调用请求。控制器响应于该调用请求,可以通过系统框架层中的摄像头控制服务(camera service)启动摄像头,比如,向摄像头控制服务发送启动指令,摄像头控制服务接收到的启动指令后,控制摄像头开启。
99.图8示出了一些实施例中控制器发送开启指令的流程图。
100.在一些实施例中,控制器在控制摄像头开启时,可以先通过框架层(framework)调用摄像头服务(camera service),进行打开摄像头(open camera)操作。摄像头服务(camera service)可以通过hidl调用方案商的hal(hardware abstraction layer,硬件抽象层)。
101.其中,hidl(hal interface description language)是指用于定义hal与其用户之间接口的描述语言,其可用于在独立编译的代码库之间进行通信的系统,即用于进程间通信。
102.控制器可以使用硬件抽象层中的摄像头提供者进程(camera.provider),与摄像头建立通信连接。
103.在一些实施例中,摄像头提供者进程可以使用uvc协议和摄像头建立通信连接。uvc协议(usb video class,usb视频类)为一种usb视频捕获设备定义的协议标准。
104.在与摄像头建立通信连接后,控制器可以发送开启指令至摄像头,从而开启摄像头。同时摄像头开始工作,可以采集图像数据。
105.需要说明的是,摄像头会具有一个设备节点/dev/video0,可用于标识摄像头与显示设备的连接。控制器可以通过该设备节点向摄像头发送开启指令。
106.在一些实施例中,显示设备可以在启动摄像头应用的同时,向摄像头发送开启指令,以控制摄像头启动运行。
107.摄像头可以将采集到的图像数据发送至显示设备,同时控制器可以进一步将图像数据发送至相应的摄像头应用,从而实现摄像头应用的相关功能,以供用户使用。
108.在一些实施例中,显示设备可以设置有摄像头共享模式。在摄像头共享模式下,显示设备可以将摄像头采集到的图像数据同时发送给多个摄像头应用,以实现图像数据的共享。每个摄像头应用都可以对图像数据进行处理,以使用户可以同时使用多个摄像头应用,提高了用户的体验性。
109.在一些实施例中,用户可以通过操作遥控器的指定按键,向显示设备发送摄像头共享模式指令。在实际应用的过程中预先绑定摄像头共享模式指令与遥控器按键之间的对应关系。例如,在遥控器上设置一个摄像头共享模式按键,当用户触控该按键时,遥控器发送摄像头共享模式指令至控制器,此时控制器控制显示设备进入摄像头共享模式。当用户再次触控该按键时,控制器可以控制显示设备退出摄像头共享模式。
110.在一些实施例中,也可以预先绑定摄像头共享模式指令与多个遥控器按键之间的对应关系,当用户触控与摄像头共享模式指令绑定的多个按键时,遥控器发出摄像头共享模式指令。在一可行性实施例中,摄像头共享模式指令绑定的按键依次为方向键(左、下、左、下),即当用户在预设时间内连续触控按键(左、下、左、下)的情况下,遥控器才发送摄像头共享模式指令至控制器。采用上述绑定方法,可以避免摄像头共享模式指令由于用户的误操作而发出。本技术实施例仅是示例性的提供几种摄像头共享模式指令与按键之间的绑定关系,在实际应用的过程中可以根据用户的习惯设定摄像头共享模式指令与按键之间的绑定关系,在此不做过多的限定。
111.在一些实施例中,当用户使用智能设备控制显示设备时,例如使用手机时,也可以向显示设备发送摄像头共享模式指令。在实际应用的过程中可以在手机中设置一个控件,可以通过该控件选择是否进入摄像头共享模式,从而发送摄像头共享模式指令至控制器,此时控制器可以控制显示设备进入摄像头共享模式。
112.在一些实施例中,当用户使用手机控制显示设备时,可以对手机发出连续点击指令。连续点击指令指的是:在预设的周期内,用户对手机触摸屏的同一区域进行点击的次数超过预设阈值。例如:当用户在1s内对手机触摸屏的某个区域连续点击3次,则视为一次连续点击指令。手机接收到连续点击指令后,可以向显示设备发送摄像头共享模式指令,以使控制器控制显示设备进入摄像头共享模式。
113.在一些实施例中,当用户使用手机控制显示设备时,也可以设置为:当检测到用户对手机触摸屏的某一区域的触控压力值超过预设的压力阈值时,手机可以向显示设备发送摄像头共享模式指令。
114.还可以在显示设备的ui界面中设置摄像头共享模式选项,当用户点击该选项时,可以控制显示设备进入或退出摄像头共享模式。
115.在一些实施例中,为防止误触发摄像头共享模式,当控制器接收到摄像头共享模式指令时,可以控制显示器显示摄像头共享模式确认信息,从而使得用户进行二次确认。图9示出了一可行性实施例中显示器中显示摄像头共享模式确认信息的示意图。
116.在一些实施例中,当显示设备处于摄像头共享模式时,显示设备可以把摄像头采集到的图像数据发送给多个摄像头应用。
117.当用户开启一个摄像头应用时,该摄像头应用会发送调用请求至控制器,该调用请求用于指示调用摄像头。响应于摄像头应用发送的调用请求,控制器可以通过摄像头的设备节点向摄像头发送开启指令,以使摄像头采集图像数据。
118.摄像头采集到图像数据后,会将图像数据发送给显示设备。控制器可以将接收到的图像数据存储在内核(kernel)中的物理内存中。该摄像头应用可以通过摄像头的设备节点从物理内存中获取到图像数据。
119.在一些实施例中,控制器在接收到摄像头应用发送的调用请求的同时,可以构建虚拟设备节点,虚拟设备节点可以用于使其他的摄像头应用获取到图像数据。
120.例如,显示设备中安装有摄像头应用a和摄像头应用b。当用户运行摄像头应用a时,摄像头应用a会发送用于调用摄像头的调用请求,控制器可以构建一个虚拟设备节点。此时显示设备中共存在两个设备节点:摄像头的设备节点/dev/video0和虚拟设备节点/dev/videox。其中,摄像头的设备节点/dev/video0和发送调用请求的摄像头应用a相匹配,用于使摄像头应用a获取到图像数据。虚拟设备节点/dev/videox和摄像头应用b相匹配,用于使摄像头应用b获取到图像数据。
121.摄像头应用a发送调用请求后,控制器可以通过摄像头的设备节点/dev/video0向摄像头发送开启指令。摄像头将采集到的图像数据发送至显示设备,控制器再将图像数据存储至物理内存中。
122.在一些实施例中,控制器将图像数据存储至物理内存后,可以将设备节点/dev/video0和虚拟设备节点/dev/videox分别访问物理内存对应的物理地址。
123.设备节点/dev/video0访问物理内存对应的物理地址后,控制器可以利用设备节点/dev/video0将图像数据从物理内存中映射到摄像头应用a对应的第一虚拟内存中。具体的,可以通过设备节点/dev/video0将物理内存映射到user(用户)空间中,从而得到第一虚拟内存的第一虚拟地址,第一虚拟地址指向所述目标物理内存。摄像头应用a可以通过第一虚拟内存获取到图像数据。
124.虚拟设备节点/dev/videox访问物理内存对应的物理地址后,控制器可以利用虚拟设备节点/dev/videox将图像数据从物理内存中映射到摄像头应用b对应的第二虚拟内存中。具体的,可以通过虚拟设备节点/dev/videox将物理内存映射到user(用户)空间中,从而得到第二虚拟内存的第二虚拟地址,第二虚拟地址指向所述目标物理内存。摄像头应用b可以通过第二虚拟内存获取到图像数据。
125.在一些实施例中,显示设备还包括解码器。控制器可以将图像数据发送给解码器,以使解码器对图像数据进行解码。控制器可以将每个虚拟内存中的图像数据分别发送至解码器。
126.具体的,控制器可以将第一虚拟地址发送给解码器,解码器通过第一虚拟地址可以得到映射出第一虚拟地址的物理内存,从而得到物理内存中的图像数据。解码器可以对第一虚拟内存中对应的图像数据进行解码,并将解码后的图像数据发送至摄像头应用a。此时,摄像头应用a可以得到摄像头采集到的图像数据,并可以根据图像数据实现摄像头应用a的相关功能。
127.在一些实施例中,当用户运行摄像头应用b时,摄像头应用b会发送一个用于调用摄像头的调用请求。
128.响应于该调用请求,控制器可以将第二虚拟地址发送给解码器,解码器通过第二虚拟地址可以得到映射出第二虚拟地址的物理内存,从而得到物理内存中的图像数据。解码器再对第二虚拟内存中对应的图像数据进行解码,并将解码后的图像数据发送至摄像头
应用b。此时,摄像头应用b可以得到摄像头采集到的图像数据,并可以根据图像数据实现摄像头应用b的相关功能。
129.在一些实施例中,控制器还可以构建多个虚拟设备节点。
130.例如,控制器可以构建5个虚拟设备节点。此时摄像头的设备节点/dev/video0可以将图像数据提供给一个摄像头应用,同时5个虚拟设备节点分别可以将图像数据提供给一个摄像头应用。即此时可以有6个摄像头应用获取到摄像头采集的图像数据。
131.在一些实施例中,可以根据显示设备中安装的摄像头应用的数量确定虚拟设备节点的数量。当显示设备中安装有n个摄像头应用时,控制器可以构建n-1个虚拟设备节点,从而使得n个摄像头应用均可以获取到摄像头采集的图像数据。
132.在一些实施例中,可以预先设定允许共享数据的摄像头应用的最大数量。例如,可以设定显示设备在同一时间内最多可以有11个摄像头应用同时获取到图像数据,即控制器最多可以构建10个虚拟设备节点。
133.在一些实施例中,显示设备可以将当前构建的虚拟设备节点的数量展示给用户。图10示出了一可行性实施例中显示器显示虚拟设备节点数量的示意图。
134.用户可以通过操作遥控器的指定按键,向显示设备发送查询指令。在实际应用的过程中预先绑定查询指令与遥控器按键之间的对应关系。例如,在遥控器上设置一个查询按键,当用户触控该按键时,遥控器发送查询指令至控制器,此时控制器控制显示器显示虚拟设备节点的数量。也可以是用户调取设置键ui菜单,控制器控制osd层菜单显示虚拟设备节点数量。
135.用户还可以自行设置显示设备中虚拟设备节点的数量,此时控制器根据用户设定的参数,构建出相同数量的虚拟节点。例如,显示设备最多允许存在10个虚拟设备节点,用户可以设定虚拟设备节点的数量为5。此时控制器会构建共5个虚拟设备节点,使得同一时间内可以有6个摄像头应用同时获取到摄像头采集的图像数据。
136.在一些实施例中,显示设备还可以将允许数据共享的摄像头应用的数量展示给用户。用户可以自行设定显示设备中允许同时获取到图像数据的摄像头应用的最大数量。例如,用户可以设定显示设备中允许同时获取到图像数据的摄像头应用的最大数量为5,此时控制器会构建4个虚拟设备节点。
137.本技术实施例通过构建出虚拟设备节点,使得摄像头采集的图像数据可以同时发送给多个摄像头应用,实现了多个摄像头应用之间的数据共享。从而使得用户可以同时使用多个摄像头应用,提高了用户的体验性。
138.在一些实施例中,为保证摄像头传输的图像数据的完整性,可以将物理内存划分为多个空间,同时可以对所有的空间进行排序。在将图像数据存储至物理内存中时,可以按照设定的空间顺序,将摄像头的图像数据先填充到第一空间中。当第一空间被填充完整时,可以将图像数据填充到第二空间中。
139.在一些实施例中,控制器将图像数据填充到一个空间中时,可以对该空间进行锁定,处于锁定的空间不允许设备节点进行访问。当该空间被填充完整时,解开锁定,同时将图像数据填充到下一个空间中。图11a示出了一可行性实施例中设备节点访问空间的示意图。其中,在将摄像头采集的图像数据填充到物理内存的第一空间时,当图像数据正在填充,即第一空间没有填充完整时,第一空间处于锁定状态,此时摄像头的设备节点/dev/
video0无法访问该空间。图11b示出了一可行性实施例中设备节点访问空间的示意图。当第一空间填充完整时,解开锁定,设备节点/dev/video0可以访问该空间。
140.在解开锁定后,允许设备节点对该空间进行访问,并可以利用设备节点将该空间中的图像数据从物理内存中映射到虚拟内存中,以使摄像头应用获取到该空间中存储的图像数据。
141.在一些实施例中,可以设定为一个空间的大小和一帧图像数据的大小相同,即一个空间中会存储一帧图像数据,并且一个空间中只能存储一帧图像数据。因此每个空间都会存储一帧图像数据,从而保证摄像头应用可以完整获取到每一帧图像数据。
142.在一些实施例中,当物理内存中某个空间的图像数据被摄像头应用获取完毕时,可以释放内存,从而保证该空间可以存储后续的图像数据。
143.具体的,控制器在对一个空间进行内存释放处理前,为了避免有摄像头应用没有获取到该空间的图像数据,从而造成遗漏。可以检测该空间是否被所有的设备节点访问完毕。当该空间被所有的设备节点访问完毕时,对该空间进行内存释放处理。从而保证空间中的图像数据可以被每个摄像头数据均获取到,提高数据共享的准确性。
144.在一些实施例中,当检测到某个空间已经被所有的设备节点访问完毕后,还可以检测上一个空间是否进行了内存释放处理。只有上一个空间进行了内存释放处理后,才允许该空间进行内存释放处理。即在释放内存时,需要按照设定的空间顺序依次对每个空间进行内存释放处理,以保证后续的图像数据可以按照设定的空间顺序进行存储。
145.本技术实施例还提供一种数据共享方法,应用于显示设备,如图12所示,包括:
146.s1201、当接收到第一摄像头应用发送的用于调用摄像头的调用请求时,构建虚拟设备节点;
147.s1202、将摄像头采集的图像数据存储至物理内存中;
148.s1203、利用摄像头的设备节点将所述图像数据从所述物理内存中映射到第一虚拟内存中,所述第一虚拟内存用于向所述第一摄像头应用提供所述图像数据;以及,利用所述虚拟设备节点将所述图像数据从物理内存中映射到第二虚拟内存中,所述第二虚拟内存用于向第二摄像头应用提供所述图像数据。
149.本说明书中各个实施例之间相同相似的部分互相参照即可,在此不再赘述。
150.本领域的技术人员可以清楚地了解到本发明实施例中的技术可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明实施例中的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分的方法。
151.最后应说明的是:以上各实施例仅用以说明本技术的技术方案,而非对其限制;尽管参照前述各实施例对本技术进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本技术各实施例技术方案的范围。
152.为了方便解释,已经结合具体的实施方式进行了上述说明。但是,上述示例性的讨
论不是意图穷尽或者将实施方式限定到上述公开的具体形式。根据上述的教导,可以得到多种修改和变形。上述实施方式的选择和描述是为了更好的解释原理以及实际的应用,从而使得本领域技术人员更好的使用实施方式以及适于具体使用考虑的各种不同的变形的实施方式。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1