图像处理方法、装置、电子设备及存储介质与流程

文档序号:32493628发布日期:2022-12-10 03:55阅读:33来源:国知局
图像处理方法、装置、电子设备及存储介质与流程

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.图1示出了本技术实施例图像处理方法的实现流程示意图一;
28.图2示出了本技术实施例图像处理方法的实现流程示意图二;
29.图3示出了本技术实施例视频编解码器和编码策略的对应示意图;
30.图4示出了本技术实施例视频编解码器的通道示意图;
31.图5示出了本技术实施例一应用场景示意图;
32.图6示出了本技术实施例终端的内部构成示意图;
33.图7示出了本技术实施例图像渲染器的处理示意图;
34.图8示出了本技术实施例图像处理装置的组成结构示意图;
35.图9示出了本技术实施例一种电子设备的组成结构示意图。
具体实施方式
36.为使本技术的目的、特征、优点能够更加的明显和易懂,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而非全部实施例。基于本技术中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
37.本技术实施例的图像处理方法的处理逻辑可部署于任何合理的电子设备中。该电子设备可以是终端或服务器。其中,终端包括但不限定于平板电脑、一体机、台式机、手机、智能音箱、智能手表等。服务器包括普通服务器、云服务器等。
38.本技术的图像处理方法,变化数据基于图像渲染器对第一数据流的处理而得来,可实现变化数据的快速获得,且仅对第一数据流中的变化数据进行编码并传输,基于此,可有效减少编码耗时,减少传输时延,实现高效传输。
39.本技术提供一种图像处理方法的第一实施例,如图1所示,所述方法包括:
40.s101:获得变化数据,所述变化数据为第一数据流经图像渲染器处理而得到的显示数据,所述变化数据用于表征与上一帧图像的不同;其中,所述第一数据流包括多帧图像的图形数据;每帧图像的图形数据经图像渲染器处理获得用于显示输出的一帧图像;
41.本技术实施例中,如果将向其他终端分享要显示内容的终端视为第一终端,其他终端视为第二终端,那么第一数据流可视为第一终端需要向第二终端分享的各帧画面或图像。
42.第一数据流为一种流数据,包括第一帧图像的图形数据、第二帧图像的图形数据

第n帧图像的图形数据。其中,n为大于等于2的正整数。
43.本技术中,第一终端内设置有图像渲染器,图像渲染器可实现对各帧图像的图形数据的处理,进而得到需要在第一终端和第二终端中分享的各帧图像。在具体实现上,图像渲染器可以是位于中央处理器(cpu)中的模块,可以是位于图形处理器gpu中的模块,还可以是位于其他合理处理器或芯片中的模块。
44.各帧图像的图形数据可以是构成每帧图像的各种图形的图案(如点、面、线等)、各图案的位置、大小、色彩等信息。关于图形数据的概念请参见相关说明,不赘述。
45.图像渲染器的处理可包括:图像渲染器可按照各帧图像的图形数据进行每帧图像的绘制,从而得到通过第一终端、第二终端的显示屏呈现给用户的各帧图像。或者,将各帧图像中的图形数据进行层的划分,每层包括同一帧图像的一个或多个图形数据,按照各层中图形数据的位置、大小等信息,将各层进行图像合成,从而得到各帧图像。
46.在实现上,可采用如下方式中的至少之一获得变化数据:
47.方式一:图像渲染器通过对相邻两帧图像之间的差异或不同之处的比较,得到第i+1帧(当前帧或下一帧)相对于第i帧图像(上一帧)的变化数据。其中,i为大于等于1且小于等于(n-1)的正整数。
48.方式二:在图像渲染器的外部,可获知相邻两帧图像的不同之处,如获知第i+1帧图像相对于第i帧图像的不同之处。图像渲染器可按照从外部获知的不同之处的图形数据进行图像的绘制或合成,从而得到变化数据。
49.方式三:在图像渲染器的外部,已将不同之处的图形数据进行绘制或合成。图像渲染器读取或截取变化数据。
50.方式四:图像渲染器按照第i+1帧图像的图形数据进行图像绘制或合成,得到第i+1帧图像。图像渲染器的外部给出第i+1帧图像相对于第i帧图像的不同之处在第i+1帧图像所处的位置。按照不同之处在第i+1帧图像所处的位置从图像渲染器得到的第i+1帧图像中进行数据的截取,截取的数据即为变化数据。
51.在方式二至四中,图像渲染器的外部可以是第一终端中独立于图像渲染器之外的、其他任何可获知相邻两帧图像的不同之处的器件或应用(app)。示例性地,图像渲染器的外部为app,第一数据流中的多帧图像是需要在app中显示的数据。app能够获知通过自身显示的相邻两帧图像的不同之处。app可以为会议类、社交类、投屏类等应用。
52.在方式一中,相邻两帧图像之间的不同之处由图像渲染器经比较给出。在方式二至四中,相当于,相邻两帧图像之间的不同之处由外部给出,图像渲染器可无需比较即可得到变化数据,从而使得变化数据的获得方式更加直接、简单易行。这种直接、简单易行的方式,与需比较得出变化数据的方式相比,直接进行变化数据的获得,可大大缩短从第一终端传输至第二终端的图像分享流程,从而减少待分享图像的传输时延,实现高效传输。
53.需要说明的是,方式一至方式四中,本技术中的第一数据流中的相邻帧之间的变化数据均是基于图像渲染器而得到的,由于图像渲染器本身具有处理速度快、准确率高的特性,所以基于图像渲染器得到的变化数据不仅速度快,有效简化变化数据的获得流程,还能够保证变化数据的获得准确性。
54.在方式一-方式四中,优选采用方式二至四中的其中之一获得变化数据。在方式二至四中,优选方式四作为获得变化数据的实现方式。
55.s102:基于目标编码策略,对所述变化数据进行处理,获得编码数据以形成第二数据流,所述第二数据流包括多帧的编码数据;
56.在s102中,可以通过电子设备的编码器进行对变化数据进行处理。例如,编码器可以为视频编解码器。
57.本技术实施例中,为变化数据的处理如编码提供两种或两种以上的编码策略,目标编码策略为预设编码策略中的其中之一策略。采用目标编码策略,基于预设的编解码算法对变化数据进行编码,得到编码数据。其中,预设的编解码算法为任何合理的图像编解码算法,如h.264、h.263、mpeg等。
58.针对第一数据流中的第1帧图像、第2帧图像

第n帧图像。在实际应用中,每相邻两帧图像可能存在不同,也可能存在相同的情形,基于此,如果从第2帧图像开始存在至少部分相邻两帧图像为不同,所述第二数据流包括第1帧图像的编码数据和从第2帧图像开始存在不同的相邻两帧图像的不同之处的编码数据。
59.示例性地,第1帧和第2帧相同,第3帧与第2帧存在不同,第4帧和第3帧存在不同,则第一数据流包括第1帧图像的编码数据、第3帧相对于第2帧的变化之处的编码数据、及第4帧相对于第3帧的变化之处的编码数据。各帧的编码数据构成了第二数据流。
60.s103:传输所述第二数据流,所述第二数据流至少用于接收所述第二数据流的终端设备解码并且显示。
61.本步骤中,第一终端传输第二数据流至第二终端,第二终端作为接收第二数据流的终端设备,采用预设编解码算法,对接收到的第二数据流进行解码并显示解码后的各帧图像。
62.在具体实现上,可以第一数据流中的全部帧均进行编码后再从第一终端传输至第二终端,第二终端将全部帧图像进行解码并进行解码后的各帧的逐一显示。还可以,第一数据流中的第1帧图像编码后由第一终端传输至第二终端,第二终端将第1帧进行解码并显示,从第2帧图像开始如果相邻两图像存在不同之处,将不同之处的编码数据传输至第二终端,第二终端解码,将解码后的不同之处和相对于上一帧未发生变化的数据一并进行图像显示。
63.s101~s103中,第一终端基于图像渲染器得到第一数据流中相邻两帧的变化数据,可简化变化数据的获得流程,快速得到变化数据,为加快传输流程提供了一定保障。且采用目标编码策略对变化数据进行编码,传输包括有变化数据的编码数据的第二数据流到第二终端。与相关技术相比,无需传输各帧图像的编码数据,传输变化数据的编码数据即可,有效减少编码耗时,大大加快传输流程,减少传输时延,实现高效传输。
64.在一些实施例中,预设编码策略为两个或多个。对每相邻两帧之间存在的变化数据采用预设的两个或多个预设编码数据中的何种编码策略进行编码可根据如下方案来实现,参见图2所示。在s101之后、s102之前,所述方法还包括:
65.s104:基于所述变化数据的参数信息,从预设编码策略中确定出目标编码策略;其中,所述参数信息表征所述变化数据的数据量大小和/或所述变化数据所占位置的大小。
66.进一步的,参数信息可以是第i+1帧图像相对于第i帧图像的变化数据的数据量占(第i+1帧或第i帧的)显示图像的总数据量的大小,如,变化数据的数据量占总数据量的5%或10%。参数信息还可以是第i+1帧图像相对于第i帧图像的变化数据在用于显示各帧图像的显示屏上的所处区域占整个显示屏(或显示屏上第i+1帧图像所处区域、或显示屏上第i帧图像所处区域)的大小,如,变化数据在显示屏上所处区域占整个显示屏的面积的10%或15%。
67.以上是从变化数据的数据量大小、和/或变化数据所占位置大小这两个角度对变化数据的参数信息进行的说明。任何合理的其他可用于评价变化数据的大小情形的参数均可作为本技术的参数信息。
68.可以理解,变化数据的参数信息能够体现相邻两帧图像的实际变化情况,根据实际变化情况来确定使用预设编码策略中的何种编码策略作为目标编码策略。
69.在实际应用中,相邻两帧图像的实际变化情况包括变化大和变化小的两种情形。在变化小的情况下,可仅对变化数据进行编码。在变化大的情况下,将整个图像作为变化数据,对整个图像进行编码,以此实现根据实际变化情况的适应性编码。
70.如果将变化小时仅需对变化数据进行编码视为预设编码策略中的第一编码策略,则可将变化大时对整个图像进行编码视为预设编码策略中的第二编码策略。反之亦可。
71.在具体实现上,预设的第一编码策略具体可以是:在变化数据的数据量占总数据量的比例未达到第一阈值(或变化数据的数据量未达到第三阈值)的情况下,和/或在变化数据在显示屏上所处区域占整个显示屏的面积比未达到第二阈值(或变化数据在显示屏上所处区域的面积未达到第四阈值)的情况下对变化数据进行编码。第二编码策略具体可以是:在变化数据的数据量占总数据量的比例达到第一阈值(或变化数据的数据量达到第三阈值)的情况下,和/或在变化数据在显示屏上所处区域占整个显示屏的面积比达到第二阈值(或变化数据在显示屏上所处区域的面积达到第四阈值)的情况下对整个图像进行编码。
其中,第一阈值至第四阈值根据实际情况而灵活设定。
72.在应用时,计算变化数据的参数信息,判断变化数据的参数信息满足第一条件还是满足第二条件,如果参数信息满足第一条件,确定所述预设编码策略中的第一编码策略为目标编码策略;如果参数信息满足第二条件,确定所述预设编码策略中的第二编码策略为目标编码策略。
73.其中,第一条件可以是需采用第一编码策略对变化数据进行编码时变化数据的参数信息需满足的条件。如第一条件为:变化数据的数据量占总数据量的比例未达到第一阈值,变化数据的数据量未达到第三阈值,在变化数据在显示屏上所处区域占整个显示屏的面积比未达到第二阈值,变化数据在显示屏上所处区域的面积未达到第四阈值。第二条件可以是需采用第二编码策略对变化数据进行编码时变化数据的参数信息需满足的条件。如第二条件为:变化数据的数据量占总数据量的比例达到第一阈值,变化数据的数据量达到第三阈值,在变化数据在显示屏上所处区域占整个显示屏的面积比达到第二阈值,变化数据在显示屏上所处区域的面积达到第四阈值。第一条件和第二条件还可以是任何合理的其他情形。
74.示例性地,如果第i+1帧图像相对于第i帧图像的变化数据占总数据量的比例未达到第一阈值,则仅对该变化数据进行编码,并传输该变化数据的编码数据至第二终端,以使第二终端在解码后连同第i+1帧图像相对于第i帧图像未发生变化的数据一并进行图像显示。如果第i+1帧图像相对于第i帧图像的变化数据在显示屏上所处区域占整个显示屏的面积比达到第二阈值,则将第i+1帧图像作为变化数据,对第i+1帧图像进行编码,并将编码后的第i+1帧图像传输至第二终端,第二终端对编码图像进行解码后显示第i+1帧图像。
75.这种基于变化数据的参数信息,确定出对变化数据要采用的目标编码策略,可根据变化数据的实际变化情况实现灵活的编码。与相关技术中对整个图像进行编码的方案相比,根据变化数据的实际变化情况灵活选择编码策略,可简化编码流程,缩短编码时间,进而可实现编码后的数据从第一终端到第二终端的高效传输。
76.本技术实施例中可采用视频编解码器实现对图像的编解码。考虑到预设编码策略为两个或多个,为根据变化数据的实际变化情况实现针对性的编码。以预设编码策略为两个为例,本技术实施例中可设置m个视频编解码器,其中,m的数量与预设编码策略的数量保持一致,如图3所示。m为大于或等于2的正整数。m个视频编解码器中的每个视频编解码器使用m个预设编码策略中的对应编码策略对变化数据进行编码。
77.示例性地,如果预设编码策略包括前述的第一编码策略和第二编码策略,那么可设置视频编解码器的数量为两个:编解码器1和编解码器2。其中,在基于变化数据的参数信息,确定出第一编码策略为目标编码策略的情况下,可使用两个视频编解码器中的其中之一进行变化数据的编码。在基于变化数据的参数信息,确定出第二编码策略为目标编码策略的情况下,可使用两个视频编解码器中的另外之一进行整个图像的编码。
78.除了设置与预设编码策略数量一致的m个视频编解码器之外进行图像的编码,还可以利用同一视频编解码器进行变化数据或整个图像的编码。考虑到如果变化数据为变化小的情况,那么还需要对变化数据在显示屏上所处的位置从第一终端传输到第二终端,以令第一终端和第二终端获知变化位置。其中,变化数据需经编码进行传输,变化数据在显示屏上所处的位置(变化位置)可经编码后再传输、或不经编码直接进行传输。
79.以变化数据在显示屏上所处的位置需经编码后再传输为例,为实现对变化数据以及变化位置的编码。如图4所示,可设置该同一视频编解码器包括两个通道:第一通道和第二通道。其中,可设置两个通道中的其中一个通道为用于供变化数据进行编码的通道,另一个通道为用于供变化位置(位置信息)进行编码的通道。在变化数据小的情况下,即采用第一编码策略进行编码时,可经视频编解码器的第一通道对变化数据进行编码以及经与第一通道不同的第二通道对变化数据所处位置进行编码。在变化数据大的情况下,即采用第一编码策略进行编码时,可经视频编解码器的第一通道将作为变化数据的整个图像进行编码。
80.前述的采用同一视频编解码器进行变化情况小和变化情况大的方案的编码过程可经预设编码策略来体现。如,所述预设编码策略中的第一编码策略为经视频编解码器的第一通道对所述变化数据进行编码以及经与所述第一通道不同的第二通道对变化数据所处位置进行编码;所述预设编码策略中的第二编码策略为经视频编解码器的第一通道对所述变化数据进行编码。
81.可以理解,本技术实施例中的预设编码策略中的第一编码策略和第二编码策略不仅可指示待编码数据为部分数据(图像的一部分)还是全部数据(如整个图像),还可指示采用何种通道进行编码。按照编码策略中指示的待编码数据以及通道进行相应编码,可大大简化编码流程,减少编码耗时,从而实现已编码数据从第一终端到第二终端的高效传输。
82.同一视频编解码器的通道之间的独立性,可保证变化数据和位置信息各自被编码的准确性,从而实现编码数据的准确传输。
83.在采用同一视频编解码器进行变化数据的编码时,需要采用不同的通道实现对变化数据的编码以及变化位置的编码,进而实现了不同数据(变化数据和变化位置)针对性的编码。针对性的编码,可缩短编码流程,有效减少编码耗时。
84.在一些实施例中,第一终端的操作系统(os)、具体是引擎层在第一数据流的相邻帧存在不同(数据)的情况下,针对第i+1帧相对于第i帧的不同之处产生刷新操作以实现相邻帧图像的逐一展示。从用户层面上来看,该刷新操作可认为是采用第i+1帧相对于第i帧的不同数据将第i帧中在与前述的不同之处位置相同的位置处显示的数据替换掉。
85.基于此,本技术图像处理方法的实施例还包括:在对多帧图像中的相邻帧存在刷新操作的情况下,所述刷新操作为针对所述相邻帧中的不同数据的操作,采用前述的方式一至四中的任一方式获得所述变化数据。这种情况下,相当于刷新操作为变化数据的获得提供了时机,在刷新操作的触发下去获得变化数据,由此可使得变化数据的获得更加易行。
86.此外,由于刷新操作是针对相邻帧中的不同数据的操作,所以,还可以直接将刷新操作所针对的不同数据作为变化数据。即,基于刷新操作直接获得变化数据,在变化数据的获得上更为直接,使得变化数据的获得流程更加简化。
87.可以理解,所述第二数据流包括第1帧图像的编码数据和从第2帧图像开始存在不同的相邻两帧图像中变化数据的编码数据。其中,所述第一数据流中的第一帧图像作为首个被第一终端和/或第二终端显示或展示的图像,其需采用预设编码策略中的第二编码策略进行编码,即对第一帧图像进行整个图像的编码,得到第一帧图像的编码数据。其中所述第一帧图像是第一帧图像的图形数据经图像渲染器处理而得到的,具体参见前述相关说明。
88.在实际应用中,如果从第2帧图像开始相邻两帧图像的变化数据的参数信息可能满足第一条件,也可能满足第二条件。如果满足第一条件,需采用第一编码策略对变化数据进行编码。如果满足第二条件,需采用第二编码策略对变化数据进行编码。
89.示例性地,如果第3帧相对于第2帧的变化数据的参数信息满足第一条件,则采用第一编码策略对该变化数据进行编码。如果第4帧相对于第3帧的变化数据的参数信息满足第二条件,则采用第二编码策略对该变化数据进行编码。基于此,第二数据流作为一种流数据,所述第二数据流包括多帧的编码数据中至少有两帧的编码策略不同。这种第一数据流的第1帧~第n帧中对相邻两帧数据采用何种编码策略需要根据变化数据的参数信息而定。根据变化数据的参数信息确定第2~第n帧中相邻两帧变化数据的编码策略,可使得多帧的编码数据中至少有两帧的编码策略不同,实用意义强,根据变化数据的参数信息确定目标编码策略在工程上易于被推广,可信性高。
90.下面结合图5-图7所示对本技术实施例的技术方案做进一步说明。
91.在图5所示的应用场景中,以两个终端进行视频共享为例。视频共享可以通过投屏类应用、会议类应用或聊天类应用而实现。在视频共享过程中,两个终端的画面保持为一致。两个终端中的第一终端作为共享视频的发送端,第二终端作为共享视频的接收端。
92.从终端内部来看,如图6所示,第一终端包括应用层、引擎层和底层。其中,应用层用于提供可进行视频共享的投屏类应用、会议类应用或聊天类应用。引擎层用于实现本技术实施例的图像处理方法。底层为硬件层,为本技术实施例的图像处理方法提供硬件支撑。
93.以第一终端启动投屏类应用,通过投屏类应用进行视频共享为例,对于第一终端的上层如应用层来说,针对共享视频的第1帧图像,可采用第二编码策略,采用预设的编解码算法经视频编解码器的第一通道对整个图像进行编码,得到第1帧图像的编码数据。第1帧图像的编码数据由第一终端发送至第二终端。第二终端接收第1帧图像的编码数据,采用预设编解码算法对该编码数据进行解码,并显示在自身的显示屏上,如图5所示的显示画面,两个终端实现了同一画面的显示。
94.从共享视频的第2帧图像开始,应用层如被启动的投屏类应用会获知共享视频中的相邻两帧是相同画面(图像)还是不同画面。如果应用层获知第i+1帧相对于第i帧存在不同之处,则产生刷新请求,并将该刷新请求发送至引擎层。引擎层接收到刷新请求的情况下,响应于该刷新请求,执行刷新操作。引擎层的执行刷新操作,相当于执行了对两个终端中的共享画面或图像的更新,如将第i帧画面更新为第i+1帧画面。具体的,引擎层的这种更新(刷新操作)是用第i+1帧画面相对于第i帧画面的不同之处替换掉第i帧画面中在对应于前述不同之处在第i+1帧画面中所处位置的数据。也就是说,刷新操作是针对相邻两帧图像的不同数据的操作。通俗来讲,刷新操作刷的是第i+1帧画面相对于第i帧画面的变化部分,如变化内容。
95.如果视第i+1帧画面相对于第i帧画面的不同之处视为被引擎层刷新的数据,引擎层可直接将刷新数据作为第i+1帧画面相对于第i帧的变化数据。这种获得变化数据的方案简单易行,可加快对变化数据的获得。
96.或者,还可以,引擎层基于计算出的第i+1帧画面相对于第i帧画面的不同之处在第i帧图像中的位置(如为位置1)去由图像渲染器处理而得的第i帧图像中截取出位置1处的数据,并将截取出的数据作为变化数据。具体的,本应用场景中,包括被刷新数据的整个
图像如第i+1帧图像在底层中被存储。引擎层基于刷新内容和从底层获知的整个图像内容,可获知刷新内容所处的区域-刷新区域。基于刷新区域和整个图像区域,计算第i+1帧画面相对于第i帧画面的不同之处在整个第i+1帧图像中所处的坐标,从而得到第i+1帧图像相对于第i帧的不同之处在第i+1帧图像中的变化位置。引擎层从由图像渲染器处理而得的第i帧图像中截取处于该坐标的数据,作为变化数据。
97.前述方案中,引擎层的刷新操作相当于为变化数据的获得提供了时机,在刷新操作的触发下去获得变化数据,由此可使得变化数据的获得更加简单易行。
98.本应用场景中,由图像渲染器对第i+1帧图像的图形数据进行处理而得到第i+1帧图像。可以理解,在第一终端内部,某个时刻终端呈现的显示画面是由终端的桌面画面、应用呈现内容的画面和鼠标画面等几个图像层的合成而得到的。图像渲染器将某个分享时刻(如第i+1时刻)的桌面画面、该分享时刻呈现内容的画面以及该分享时刻的鼠标画面作为各个图像层。如图7所示,图像层1(layer 1)为桌面画面层、图像层2(layer 2)为应用呈现内容的画面层、图像层3(layer 3)为鼠标画面层。图像渲染器按照每个图像层中画面的图形数据将所有图像层进行图像的合成,从而得到最终用户在第一终端的显示屏上看到的画面(第i帧图像或画面)。
99.图像渲染器可按照前述的图像层合成方法得到第i+1帧图像。按照第i+1帧图像相对于第i帧图像的不同之处在整个第i+1帧图像中所处的坐标,去由图像渲染器得到的第i+1帧图像中截取处于该坐标位置的数据,并将截取数据作为第i+1帧图像相对于第i帧图像的变化数据。
100.图像渲染器对第i+1帧图像的图形数据进行处理得到第i+1帧图像的过程、与应用层发起刷新和引擎层的刷新等过程无严格的先后顺序,还可以同时进行。只要基于计算出的坐标,从由图像渲染器合成的第i+1帧图像中能够成功截取出变化数据即可。
101.这种利用图像渲染器获得变化数据的方式为一种变化数据的全新获得方式,为变化数据的获得提供了一种新的技术支持。此外,由于图像渲染器具有处理速度快的优势,所以利用图像渲染器获得变化数据可加快对变化数据的获得流程,进而为实现图像的高效传输提供了保障。
102.可以理解,截取出的数据为截取图像,引擎层计算截取图像中的数据量占第i+1帧图像总数据量的大小。和/或,计算截取图像占显示屏面积的大小。
103.如果截取图像中的数据量占第i+1帧图像总数据量的比例未达到第一阈值,和/或截取图像占显示屏面积比未达到第二阈值,则认为变化数据的参数信息满足第一条件,即第i+1帧图像相对于第i帧图像的实际变化小,采用预设编码策略中的第一编码策略作为目标编码策略。采用预设编解码算法经视频编解码器的第一通道对截取图像进行编码,经第二通道对截取图像在第i+1帧图像中所处的位置信息进行编码,由第一终端传输编码后的图像和编码位置至第二终端。第二终端采用预设编解码算法对编码后的图像进行解码、对编码位置进行解码,从而得出第i+1帧图像相对于第i帧图像的变化数据和变化位置。考虑到第二终端和第一终端之间的显示屏大小可能一致、也可能不一致,可预先基于两个终端的显示屏坐标系进行参照坐标系的建立。已知预先建立的参照坐标系以及在第一终端中截取图像的位置信息,就可得到变化数据在第二终端的显示屏上的显示位置(如位置2)。第二终端采用解码出的变化数据替换掉第i帧图像中处于位置2的数据并显示,即可实现第i+1
帧图像在第二终端中的显示,由此实现第i+1帧图像在两个终端中的共享。
104.这种在第i+1帧图像相对于第i帧图像的实际变化小时对变化数据和变化数据所处位置进行编码并传输的方案,可有效避免对整个图像进行编码而导致的编码时间长的问题,可缩短编码延长,从而实现共享数据的高效传输。
105.如果截取图像中的数据量占第i+1帧图像总数据量的比例达到第一阈值,和/或截取图像占显示屏面积比达到第二阈值,则认为变化数据的参数信息满足第二条件,即第i+1帧图像相对于第i帧图像的实际变化大,采用预设编码策略中的第二编码策略作为目标编码策略。采用预设编解码算法经视频编解码器的第一通道对整个图像(第i+1帧图像)进行编码,由第一终端传输编码后的整个图像至第二终端。第二终端采用预设编解码算法对编码后的整个图像进行解码并显示在第二终端的显示屏上,由此实现第i+1帧图像在两个终端中的共享。
106.这种在第i+1帧图像相对于第i帧图像的实际变化大时对整个图像进行编码并传输的方案,一方面可实现数据传输的准确性,避免由于变化太大而对变化部分的漏编码、错编码,另一方面,与实际情况相一致,实用性更强。在引擎层提供的刷新时机下,通过对图像渲染器得到的帧图像进行截图而获得变化数据,可缩短变化数据的获得时间,加快流程,进而为实现高效传输提供了保障。
107.在实际应用中,由图像渲染器处理而得到的图像是最终用户可看到的图像,该图像中是包括有输入装置的位置信息的,如鼠标在显示屏上所处的位置。如果在各帧图像的相邻两帧图像中需要分享的内容未发生变化,仅在后图像的鼠标位置相对于在前图像的鼠标位置发生了变化,则第一终端需计算在在后图像中发生变化后的鼠标位置,将该鼠标位置发送至第二终端,第二终端按照在后图像中鼠标所处位置进行自身的在后图像中鼠标位置的呈现,以使得在两个终端显示的同一画面中两个终端的鼠标位置保持为一致。当然,第一终端还可以获取鼠标的移动轨迹,并将移动轨迹发送至第二终端,以使得第二终端按照相同的移动轨迹从鼠标的原位置移动到变化后的位置。
108.此外,还可以,在后图像中发生变化后的鼠标位置和/或移动轨迹均可采用预设编解码算法经视频编解码器的第二通道进行编码后,由第一终端传输至第二终端,第二终端采用预设编解码算法进行解码后使用。
109.通俗来讲,前述第一终端对变化数据的编码可视为对图像的压缩,第二终端对编码后图像的解码可视为对编码后图像的解压缩。如此,本方案可通俗地理解为根据相邻两帧的变化部分采用不同的编码策略对变化部分进行编码并传输的方案。具体的,可以是:
110.当检测到相邻两帧的共享图像本身未发生变化,只有用户输入事件(例如投屏时用户移动了鼠标位置)的情况下,发送端(第一终端)可不对鼠标位置进行图像压缩,只传输输入事件至接收端(第二终端)。
111.当检测到相邻两帧的共享图像的变化区域面积小于特定阈值的情况下,将变化区域的坐标和变化区域的数据(变化数据)进行编码,从发送端发送至接收端。其中,变化区域的坐标还可不编码直接进行传输。其中,前述的特定阈值可根据实际经验而得。
112.当检测到相邻两帧的共享图像的变化区域面积大于或等于特定阈值的情况下,将对相邻两帧的在后帧图像进行整幅图像的编码,并发送编码后的整幅图像。
113.通俗来讲,本方案可视为充分利用对图像内容的检测,基于检测到的变化数据的
参数信息,采用不同的编码策略进行编码(采用不同的编码方案进行编码),来达到缩短视频编码耗时的技术目的,由此可减小(实时)图像的网络传输的端到端(从发送端到接收端的)延时。
114.其中,利用引擎层的刷新时机,实现对相邻帧之间的不同之处和变化位置的获知,基于变化位置从由图像渲染器处理而得的第i+1帧图像中截取出第i+1帧图像相对于第i帧图像中的变化数据(更新数据)。实现了对变化数据的快速获得,简化了流程,为高效传输提供了一定的保证。
115.本技术实施例还提供一种图像处理装置,如图8所示,所述装置包括:
116.第一获得单元10,用于获得变化数据,所述变化数据为第一数据流经图像渲染器处理而得到的显示数据,所述变化数据用于表征与上一帧图像的不同;其中,所述第一数据流包括多帧图像的图形数据;每帧图像的图形数据经图像渲染器处理获得用于显示输出的一帧图像;
117.第二获得单元11,用于基于目标编码策略,对所述变化数据进行处理,获得编码数据以形成第二数据流,所述第二数据流包括多帧的编码数据;
118.在具体实现上,第二获得单元11为编码器,例如,编码器可以为视频编解码器。可以是软件功能模块,也可以是硬件功能模块。
119.传输单元12,用于传输所述第二数据流,所述第二数据流至少用于接收所述第二数据流的终端设备解码并且显示。
120.在一些实施例中,所述装置还包括确定单元,用于:
121.基于所述变化数据的参数信息,从预设编码策略中确定出目标编码策略;
122.其中,所述参数信息表征所述变化数据的数据量大小和/或所述变化数据所占位置的大小。
123.在一些实施例中,所述确定单元用于:
124.如果参数信息满足第一条件,确定所述预设编码策略中的第一编码策略为目标编码策略;
125.如果参数信息满足第二条件,确定所述预设编码策略中的第二编码策略为目标编码策略。
126.在一些实施例中,所述预设编码策略中的第一编码策略为经视频编解码器的第一通道对所述变化数据进行编码以及经与所述第一通道不同的第二通道对变化数据所处位置进行编码;
127.所述预设编码策略中的第二编码策略为经视频编解码器的第一通道对所述变化数据进行编码。
128.在一些实施例中,所述第一获得单元10,用于
129.在对多帧图像中的相邻帧存在刷新操作的情况下,获得所述变化数据;其中所述刷新操作为针对所述相邻帧中的不同数据的操作。
130.在一些实施例中,所述第二数据流包括多帧的编码数据中至少有两帧的编码策略不同。
131.在一些实施例中,所述第一数据流中的第一帧图像采用预设编码策略中的第二编码策略进行编码,其中所述第一帧图像是第一帧图像的图形数据经图像渲染器处理而得到
的。
132.根据本技术的实施例,本技术还提供了一种电子设备和一种可读存储介质。
133.其中,所述电子设备,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器至少能够执行:
134.获得变化数据,所述变化数据为第一数据流经图像渲染器处理而得到的显示数据,所述变化数据用于表征与上一帧图像的不同;其中,所述第一数据流包括多帧图像的图形数据;每帧图像的图形数据经图像渲染器处理获得用于显示输出的一帧图像;
135.基于目标编码策略,对所述变化数据进行处理,获得编码数据以形成第二数据流,所述第二数据流包括多帧的编码数据;
136.传输所述第二数据流,所述第二数据流至少用于接收所述第二数据流的终端设备解码并且显示。
137.此外,在电子设备中,所述指令被所述至少一个处理器执行,以使所述至少一个处理器至少能够执行前述的图像处理方法的其他内容。
138.所述存储介质存储有计算机指令,所述计算机指令用于使所述计算机至少执行:
139.获得变化数据,所述变化数据为第一数据流经图像渲染器处理而得到的显示数据,所述变化数据用于表征与上一帧图像的不同;其中,所述第一数据流包括多帧图像的图形数据;每帧图像的图形数据经图像渲染器处理获得用于显示输出的一帧图像;
140.基于目标编码策略,对所述变化数据进行处理,获得编码数据以形成第二数据流,所述第二数据流包括多帧的编码数据;
141.传输所述第二数据流,所述第二数据流至少用于接收所述第二数据流的终端设备解码并且显示。
142.此外,在存储介质中,所述计算机指令被所述至少一个处理器执行,以使所述至少一个处理器至少能够执行前述的图像处理方法的其他内容。
143.图9示出了可以用来实施本技术的实施例的示例电子设备800的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本技术的实现。
144.如图9所示,设备800包括计算单元801,其可以根据存储在只读存储器(rom)802中的计算机程序或者从存储单元808加载到随机访问存储器(ram)803中的计算机程序,来执行各种适当的动作和处理。在ram 803中,还可存储设备800操作所需的各种程序和数据。计算单元801、rom 802以及ram 803通过总线804彼此相连。输入/输出(i/o)接口805也连接至总线804。
145.设备800中的多个部件连接至i/o接口805,包括:输入单元806,例如键盘、鼠标等;输出单元807,例如各种类型的显示器、扬声器等;存储单元808,例如磁盘、光盘等;以及通信单元809,例如网卡、调制解调器、无线通信收发机等。通信单元809允许设备800通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
146.计算单元801可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元801的一些示例包括但不限于中央处理单元(cpu)、图形处理单元(gpu)、各种专用的人工智能(ai)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(dsp)、以及任何适当的处理器、控制器、微控制器等。计算单元801执行上文所描述的各个方法和处理,例如图像处理方法。例如,在一些实施例中,图像处理方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元808。在一些实施例中,计算机程序的部分或者全部可以经由rom 802和/或通信单元809而被载入和/或安装到设备800上。当计算机程序加载到ram 803并由计算单元801执行时,可以执行上文描述的图像处理方法的一个或多个步骤。备选地,在其他实施例中,计算单元801可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行图像处理方法。
147.本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(fpga)、专用集成电路(asic)、专用标准产品(assp)、芯片上系统的系统(soc)、负载可编程逻辑设备(cpld)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
148.用于实施本技术的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
149.在本技术的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或快闪存储器)、光纤、便捷式紧凑盘只读存储器(cd-rom)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
150.为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,crt(阴极射线管)或者lcd(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
151.可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算
系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(lan)、广域网(wan)和互联网。
152.计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,也可以为分布式系统的服务器,或者是结合了区块链的服务器。
153.应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本技术公开的技术方案所期望的结果,本文在此不进行限制。
154.此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或隐含地包括至少一个该特征。在本技术的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
155.以上所述,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以所述权利要求的保护范围为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1