桌面共享方法、装置和电子设备与流程

文档序号:22343369发布日期:2020-09-25 18:15阅读:147来源:国知局
桌面共享方法、装置和电子设备与流程

本申请涉及通信技术领域,具体而言,涉及一种桌面共享方法、装置和电子设备。



背景技术:

桌面分享功能脱胎于远程桌面技术。主要涉及共享端的桌面获取、数据编码、数据发送、观看端的数据接收、数据解码和数据渲染。

因为桌面发生完全变化的概率很少,绝大部分都是局部变化,如:按钮获取焦点,某个控件数据获得更新等。为了减少流量,数据编码,现行的方案是分块编码。首先将整个桌面数据分块,然后每一个分块在编码前先与上一帧对应的分块进行比较。每次只传输发生变化的分块的数据,接收端总是在上次展示的帧数据上做修改。如此,除第一帧数据延迟的情况下,大大减少了其他帧数据的延迟。

随着机器性能的持续提升,在会议中为了能达到更好的视觉效果,ppt中使用了越来越多的复杂背景、植入的图表(视频)以及翻页的动画。之前的分块编码方案在桌面短时间发生剧烈改变时,产生了大量的爆发数据。而按上述方案,后续数据的显示又必须依赖前面数据的更新。由于爆发数据导致的数据积压,使得桌面分享实时性越来越差,即:共享端已经翻页到下一页并且开始讲下一页的内容,观看端还在显示翻页的动画。

如何解决桌面共享时画面延迟是当前值得研究的问题。



技术实现要素:

有鉴于此,本申请提供了一种桌面共享方法、装置和电子设备,以解决上述问题。

本申请的实施例可以这样实现:

第一方面,本申请实施例提供一种桌面共享方法,应用于与客户端通信的电子设备,所述方法包括:

获取待编码帧数据;

对所述待编码帧数据进行文字区域识别,得到所述待编码帧数据中的文字区域占比;

根据所述文字区域占比与第一预设阈值之间的关系,得到待发送数据;

将所述待发送数据发送至所述客户端,以使所述客户端对所述待发送数据解码后进行显示。

在可选的实施方式中,所述根据所述文字区域占比与第一预设阈值之间的关系,得到待发送数据的步骤包括:

将所述文字区域占比与第一预设阈值进行比较;

若所述文字区域占比小于所述第一预设阈值,则对所述待编码帧数据进行压缩处理后再进行编码,得到待发送数据;

若所述文字区域占比大于或等于所述第一预设阈值,则直接对所述待编码帧数据进行编码,得到待发送数据。

在可选的实施方式中,所述对所述待编码帧数据进行文字区域识别,得到所述待编码帧数据中的文字区域占比的步骤包括:

对所述待编码帧数据进行分块处理,得到多个待编码块数据;

对每个所述待编码块数据均进行文字区域识别,得到每个所述待编码块数据对应的文字区域子占比,所述待编码帧数据中的文字区域占比包括每个所述待编码块数据对应的文字区域子占比。

在可选的实施方式中,所述根据所述文字区域占比与第一预设阈值之间的关系,得到待发送数据的步骤包括:

从多个所述文字区域子占比中选取任意一个目标文字区域子占比;

将所述目标文字区域子占比与所述第一预设阈值进行比较;

若所述目标文字区域子占比小于所述第一预设阈值,则对所述目标文字区域子占比对应的待编码块数据进行压缩处理后再进行编码,得到待发送子数据;

若所述目标文字区域子占比大于或等于所述第一预设阈值,则对所述目标文字区域子占比对应的待编码块数据进行编码,得到所述待发送子数据;

重复执行从多个所述文字区域子占比中选取任意一个目标文字区域子占比的步骤,直至完成所有文字区域子占比与第一预设阈值的比较,得到至少一个所述待发送子数据,其中,所述待发送数据包括至少一个所述待发送子数据。

在可选的实施方式中,所述获取待编码帧数据的步骤包括:

按照时间先后顺序获取第一帧数据和第二帧数据,并记录获取所述第一帧数据的第一时间;

判断所述第一帧数据与所述第二帧数据是否一致;

当所述第一帧数据与所述第二帧数据不一致时,获取所述第一帧数据与所述第二帧数据之间的差异数据,并计算所述差异数据在所述第二帧数据中的比例;

判断所述比例是否大于第二预设阈值;

若所述比例不大于所述第二预设阈值,则将所述第二帧数据作为所述待编码帧数据;

若所述比例大于所述第二预设阈值,则获取与所述第二帧数据连续的下一帧数据,并记录获取所述下一帧数据的第二时间;

将所述第二帧数据作为所述第一帧数据、所述下一帧数据作为所述第二帧数据,并重复执行判断所述第一帧数据与所述第二帧数据是否一致的步骤,直至所述比例不大于所述第二预设阈值或者所述第二时间与所述第一时间的差值大于预设时间,将所述第二帧数据作为待编码帧数据。

在可选的实施方式中,所述判断所述第一帧数据与所述第二帧数据是否一致的步骤之后,所述获取待编码帧数据的步骤还包括:

当所述第一帧数据与所述第二帧数据一致时,则删除所述第一帧数据,将所述第二帧数据作为待编码帧数据。

在可选的实施方式中,所述获取所述第一帧数据与所述第二帧数据之间的差异数据的步骤包括:

对所述第一帧数据进行分块处理,得到多个第一帧子数据;

对所述第二帧数据进行分块处理,得到多个第二帧子数据,其中,所述多个第二帧子数据与所述多个第一帧子数据一一对应;

根据所述多个第一帧子数据及所述多个第二帧子数据,获取所述第一帧数据与所述第二帧数据之间的差异数据。

在可选的实施方式中,所述根据所述多个第一帧子数据及所述多个第二帧子数据,获取所述第一帧数据与所述第二帧数据之间的差异数据的步骤包括:

获取所述多个第一帧子数据中的任意一个目标第一帧子数据、以及所述多个第二帧子数据中与所述目标第一帧子数据对应的目标第二帧子数据;

判断所述目标第一帧子数据与所述目标第二帧子数据是否一致;

若所述目标第二帧子数据与所述目标第一帧子数据不一致,则将所述目标第二帧块数据作为差异子数据;

重复执行所述判断所述目标第一帧子数据与所述目标第二帧子数据是否一致的步骤,直至完成每个所述第一帧子数据与对应的所述第二帧子数据的判断,得到至少一个差异子数据,其中,所述差异数据包括所有所述差异子数据。

第二方面,本申请实施例提供一种桌面共享装置,所述装置包括:

获取模块,用于获取待编码帧数据;

识别模块,用于对所述待编码帧数据进行文字区域识别,得到所述待编码帧数据中的文字区域占比;

比较模块,用于根据所述文字区域占比与第一预设阈值之间的关系,得到待发送数据;

发送模块,用于将所述待发送数据发送至所述客户端,以使所述客户端对所述待发送数据解码后进行显示。

第三方面,本申请实施例提供一种电子设备,所述电子设备包括处理器、存储器及总线,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器及所述存储器之间通过总线通信,所述处理器执行所述机器可读指令,以执行前述实施方式任意一项所述的桌面共享方法的步骤。

本申请实施例提供了一种桌面共享方法、装置和电子设备,该方法通过对待编码帧数据进行文字区域识别,根据文字区域占比与第一预设阈值之间的关系,得到待发送数据。进而将待发送数据发送至客户端,以使客户端对待发送数据解码后进行显示。由于人眼对图像不敏感,但对文字的质量较为敏感,因此,根据文字区域占比和第一预设阈值之间的关系确定待发送数据,可减小待发送数据量,从而缓解桌面共享时画面延迟的问题,提高了桌面共享时的实时性。

附图说明

为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1为本申请实施例提供的电子设备的结构框图。

图2为本申请实施例提供的桌面分享方法的流程图。

图3为本申请实施例提供的步骤s1的子步骤流程图。

图4为本申请实施例提供的桌面分享装置的功能框图。

图标:100-电子设备;110-存储器;120-处理器;130-桌面分享装置;131-获取模块;132-识别模块;133-比较模块;134-发送模块。

具体实施方式

为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。

因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。

在本申请的描述中,需要说明的是,若出现术语“上”、“下”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,或者是该发明产品使用时惯常摆放的方位或位置关系,仅是为了便于描述本申请和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本申请的限制。

此外,若出现术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。

需要说明的是,在不冲突的情况下,本申请的实施例中的特征可以相互结合。

如背景技术所介绍,桌面分享功能脱胎于远程桌面技术。主要涉及共享端的桌面获取、数据编码、数据发送、观看端的数据接收、数据解码和数据渲染。

因为桌面发生完全变化的概率很少,绝大部分都是局部变化,如:按钮获取焦点,某个控件数据获得更新等。为了减少流量,数据编码,现行的方案是分块编码。首先将整个桌面数据分块,然后每一个分块在编码前先与上一帧对应的分块进行比较。每次只传输发生变化的分块的数据,接收端总是在上次展示的帧数据上做修改。如此,除第一帧数据延迟的情况下,大大减少了其他帧数据的延迟。

随着机器性能的持续提升,在会议中为了能达到更好的视觉效果,ppt中使用了越来越多的复杂背景、植入的图表(视频)以及翻页的动画。之前的分块编码方案在桌面短时间发生剧烈改变时,产生了大量的爆发数据。而按上述方案,后续数据的显示又必须依赖前面数据的更新。由于爆发数据导致的数据积压,使得桌面分享实时性越来越差,即:共享端已经翻页到下一页并且开始讲下一页的内容,观看端还在显示翻页的动画。

如何解决桌面共享时画面延迟是当前值得研究的问题。

本申请实施例提供了一种桌面共享方法、装置和电子设备,该方法通过对待编码帧数据进行文字区域识别,根据所述文字区域占比与第一预设阈值之间的关系,得到待发送数据。进而将所述待发送数据发送至所述客户端,以使所述客户端对所述待发送数据解码后进行显示。由于人眼对图像不敏感,但对文字的质量较为敏感,因此,根据文字区域占比和第一预设阈值之间的关系确定待发送数据,可减小待发送数据量,从而缓解桌面共享时画面延迟的问题,提高了桌面共享时的实时性。

请参阅图1,图1为本申请实施例提供的一种电子设备100的结构框图。所述设备可以包括处理器120、存储器110、桌面分享装置130及总线,所述存储器110存储有所述处理器120可执行的机器可读指令,当电子设备100运行时,所述处理器120及所述存储器110之间通过总线通信,所述处理器120执行所述机器可读指令,并执行桌面分享方法的步骤。

所述存储器110、处理器120以及其他各元件相互之间直接或间接地电性连接,以实现信号的传输或交互。

例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。桌面分享装置130包括至少一个可以软件或固件(firmware)的形式存储于所述存储器110中的软件功能模块。所述处理器120用于执行存储器110中存储的可执行模块,例如所述桌面分享装置130所包括的软件功能模块或计算机程序。

其中,存储器110可以是,但不限于,随机读取存储器(randomaccessmemory,ram),只读存储器(readonlymemory,rom),可编程只读存储器(programmableread-onlymemory,prom),可擦除只读存储器(erasableprogrammableread-onlymemory,eprom),电可擦除只读存储器(electricerasableprogrammableread-onlymemory,eeprom)等。

处理器120可以是一种集成电路芯片,具有信号处理能力。上述处理器120可以是通用处理器,包括中央处理器(centralprocessingunit,简称cpu)、网络处理器(networkprocessor,简称np)等。

还可以是数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

本申请实施例中,存储器110用于存储程序,处理器120用于在接收到执行指令后,执行所述程序。本申请实施例任一实施方式所揭示的流程定义的方法可以应用于处理器120中,或者由所述处理器120实现。

在本申请实施例中,电子设备100可以是但不限于智能手机、个人电脑、平板电脑等具有处理功能的设备。

可以理解,图1所示的结构仅为示意。电子设备100还可以具有比图1所示更多或者更少的组件,或者具有与图1所示不同的配置。图1所示的各组件可以采用硬件、软件或其组合实现。

作为一种可能的实施方式,本申请实施例提供了一种桌面分享方法,请结合参阅2,图2为本申请实施例提供的桌面分享方法的流程图。

应当理解,在其它实施例中,本实施例的桌面分享方法中的部分步骤的顺序可以根据实际需要相互交换,或者其中的部分步骤也可以省略或删除。下面结合图2所示的具体流程进行详细描述。

步骤s1,获取待编码帧数据。

步骤s2,对待编码帧数据进行文字区域识别,得到待编码帧数据中的文字区域占比。

步骤s3,根据文字区域占比与第一预设阈值之间的关系,得到待发送数据。

步骤s4,将待发送数据发送至客户端,以使客户端对待发送数据解码后进行显示。

其中,可使用文字识别技术(opticalcharacterrecognition,ocr)对待编码帧数据进行文字区域识别,得到待编码帧数据中的文字区域占比。

本申请实施例通过对待编码帧数据进行文字区域识别,根据文字区域占比与第一预设阈值之间的关系,得到待发送数据。进而将待发送数据发送至客户端,以使客户端对待发送数据解码后进行显示。由于人眼对图像不敏感,但对文字的质量较为敏感,因此,根据文字区域占比和第一预设阈值之间的关系确定待发送数据,可减小待发送数据量,从而缓解桌面共享时画面延迟的问题,提高了桌面共享时的实时性。

进一步地,请结合参阅图3,上述步骤s1可通过以下方式实现:

步骤s11,按照时间先后顺序获取第一帧数据和第二帧数据,并记录获取第一帧数据的第一时间。

步骤s12,判断第一帧数据与第二帧数据是否一致。

当第一帧数据与第二帧数据一致时,执行步骤s13,当第一帧数据与第二帧数据不一致时,执行步骤s14。

步骤s13,删除第一帧数据,将第二帧数据作为待编码帧数据。

步骤s14,获取第一帧数据与第二帧数据之间的差异数据,并计算差异数据在第二帧数据中的比例。

步骤s15,判断比例是否大于第二预设阈值。

若比例不大于第二预设阈值,则执行步骤s16。若比例大于第二预设阈值,则执行步骤s17。

步骤s16,将第二帧数据作为待编码帧数据。

步骤s17,获取与第二帧数据连续的下一帧数据,并记录获取下一帧数据的第二时间。

步骤s18,将第二帧数据作为第一帧数据、下一帧数据作为第二帧数据。

重复执行判断第一帧数据与第二帧数据是否一致的步骤,直至比例不大于第二预设阈值或者第二时间与第一时间的差值大于预设时间,将第二帧数据作为待编码帧数据。

作为一种可能的实施方式,当共享端(即电子设备100)向接收端(即客户端)进行桌面共享时分享ppt,在共享端点击ppt换页时,可能会先后出现5帧数据。此时可比较第一帧数据和第二帧数据,并记录获取到第一帧数据的时间,例如10点30分12秒。

当第一帧数据与第二帧数据一致时,则删除第一帧数据,将第二帧数据作为待编码帧数据。

当第一帧数据与第二帧数据不一致,其差异较大的时候,则接着获取第三帧数据,记录获取第三帧数据的时间。接着比较第三帧数据与第二帧数据,如果第三帧数据与第二帧数据一致,则删除第二帧数据,将第三帧数据作为待编码帧。如果第三帧数据与第二帧数据不一致,且差异较大的时候,则接着获取第四帧数据,记录获取第四帧数据的时间。同样比较第四帧数据和第三帧数据,如此循环,直到两帧数据差异不大,或者时间的差值大于预设时间时停止。

其中,预设时间可以是500ms,可以理解的是,上述时间差值也可以是在获取第一帧数据时开始计时得到,并在结束后清零即可。

如此,利用上述步骤可以只对第四帧数据或者第五帧数据进行编码,而不用对每一帧数据都进行编码,从而动态地改变了编码的帧率,减小了编码数据量,可显著提升桌面共享时ppt翻页后新页面的加载速度。

本申请实施例,通过比较相邻两帧数据之间的差异大小,动态地改变编码的帧率,以控制瞬时流量的大小,减小了编码数据量,从而使得后续对用户而言更有实效的帧数据能提前到达对端。

作为一种可选的实施方式,获取第一帧数据与第二帧数据之间的差异数据可通过以下方式实现:

首先,对第一帧数据进行分块处理,得到多个第一帧子数据。

然后,对第二帧数据进行分块处理,得到多个第二帧子数据,其中,多个第二帧子数据与多个第一帧子数据一一对应。

最后,根据多个第一帧子数据及多个第二帧子数据,获取第一帧数据与第二帧数据之间的差异数据。

其中,根据多个第一帧子数据及多个第二帧子数据,获取第一帧数据与第二帧数据之间的差异数据可通过以下步骤实现:

首先,获取多个第一帧子数据中的任意一个目标第一帧子数据、以及多个第二帧子数据中与目标第一帧子数据对应的目标第二帧子数据。

然后,判断目标第一帧子数据与目标第二帧子数据是否一致。

接着,若目标第二帧子数据与目标第一帧子数据不一致,则将目标第二帧块数据作为差异子数据。

然后,重复执行判断目标第一帧子数据与目标第二帧子数据是否一致的步骤,直至完成每个第一帧子数据与对应的第二帧子数据的判断,得到至少一个差异子数据,其中,差异数据包括所有差异子数据。

如此,通过将完整的帧数据分割成多个块数据,并一一比较子数据之间的差异,使得比较过程可同步进行,从而提高了比较效率,可进一步提高桌面共享的实时性。

作为一种可选的实施方式,步骤s2可通过以下方式实现:

首先,对待编码帧数据进行分块处理,得到多个待编码块数据。

然后,对每个待编码块数据均进行文字区域识别,得到每个待编码块数据对应的文字区域子占比,待编码帧数据中的文字区域占比包括每个待编码块数据对应的文字区域子占比。

同样地,通过将完整的待编码帧数据分割成多个待编码块数据,使得电子设备可同时对每个待编码块数据进行文字区域识别,从而提高了识别效率,进一步提高桌面共享的实时性。

进一步地,基于上述实施方式,步骤s3可通过以下方式实现:

首先,从多个文字区域子占比中选取任意一个目标文字区域子占比。

然后,将目标文字区域子占比与第一预设阈值进行比较。

接着,若目标文字区域子占比小于第一预设阈值,则对目标文字区域子占比对应的待编码块数据进行压缩处理后再进行编码,得到待发送子数据。

然后,若目标文字区域子占比大于或等于第一预设阈值,则对目标文字区域子占比对应的待编码块数据进行编码,得到待发送子数据。

接着,重复执行从多个文字区域子占比中选取任意一个目标文字区域子占比的步骤,直至完成所有文字区域子占比与第一预设阈值的比较,得到至少一个待发送子数据,其中,待发送数据包括至少一个待发送子数据。

其中,压缩处理的方式可以是,针对待编码块数据进行有损的格式转换,例如,jpeg格式。

作为另一种可选的实施方式,步骤s3还可任意通过以下方式实现:

首先,将文字区域占比与第一预设阈值进行比较。

接着,若文字区域占比小于第一预设阈值,则对待编码帧数据进行压缩处理后再进行编码,得到待发送数据。

然后,若文字区域占比大于或等于第一预设阈值,则直接对待编码帧数据进行编码,得到待发送数据。

其中,压缩处理的方式同样可以是,针对待编码块数据进行有损的格式转换,例如,jpeg格式。

由于人眼对图像不敏感,但对文字的质量较为敏感,因此,在待编码帧数据包括的文字区域较少时,对待编码帧数据进行压缩处理后再编码,减小了编码后数据的大小,从而缓解桌面共享时画面延迟的问题,提高了桌面共享时的实时性。

基于上述方法,在进行改进时,仅需要更新客户端的编码策略,改动小,对于新旧版本兼容性好。同时,对于短期爆发的数据削峰比较明显,有效减少了服务器端因为数据堆积导致的清包动作,减缓了该动作使得观看端因收到的数据不连续而请求关键帧,从而进一步加深共享端数据上传的压力的问题。

基于同一发明构思,请结合参阅图4,本申请实施例中还提供了与上述桌面分享方法对应的桌面分享装置130,装置包括:

获取模块131,用于获取待编码帧数据。

识别模块132,用于对待编码帧数据进行文字区域识别,得到待编码帧数据中的文字区域占比。

比较模块133,用于根据文字区域占比与第一预设阈值之间的关系,得到待发送数据。

发送模块134,用于将待发送数据发送至客户端,以使客户端对待发送数据解码后进行显示。

由于本申请实施例中的装置解决问题的原理与本申请实施例上述桌面分享方法相似,因此装置的实施原理可以参见方法的实施原理,重复之处不再赘述。

本申请实施例也提供了一种可读存储介质,可读存储介质中存储有计算机程序,计算机程序被执行时实现上述的桌面分享方法。

综上所述,本申请实施例提供了一种桌面共享方法、装置和电子设备,该方法通过对待编码帧数据进行文字区域识别,根据文字区域占比与第一预设阈值之间的关系,得到待发送数据。进而将待发送数据发送至客户端,以使客户端对待发送数据解码后进行显示,由于人眼对图像不敏感,但对文字的质量较为敏感,因此,在待编码帧数据包括的文字区域较少时,对待编码帧数据进行压缩处理后再编码,减小了编码后数据的大小,从而缓解桌面共享时画面延迟的问题,提高了桌面共享时的实时性。

以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

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