CN115834930A - 视频帧传输方法、装置、电子设备及存储介质 - Google Patents
视频帧传输方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN115834930A CN115834930A CN202211433232.7A CN202211433232A CN115834930A CN 115834930 A CN115834930 A CN 115834930A CN 202211433232 A CN202211433232 A CN 202211433232A CN 115834930 A CN115834930 A CN 115834930A
- Authority
- CN
- China
- Prior art keywords
- video
- region
- transmitted
- video frame
- area
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 61
- 230000005540 biological transmission Effects 0.000 title claims abstract description 40
- 230000008859 change Effects 0.000 claims abstract description 16
- 238000004590 computer program Methods 0.000 claims description 11
- 239000003550 marker Substances 0.000 claims 2
- 238000010586 diagram Methods 0.000 description 9
- 238000004891 communication Methods 0.000 description 8
- 238000012545 processing Methods 0.000 description 8
- 238000012360 testing method Methods 0.000 description 6
- 238000004364 calculation method Methods 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 230000000694 effects Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000003993 interaction Effects 0.000 description 2
- 238000002372 labelling Methods 0.000 description 2
- 238000009877 rendering Methods 0.000 description 2
- 108700026244 Open Reading Frames Proteins 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000000739 chaotic effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 230000001815 facial effect Effects 0.000 description 1
- 230000008921 facial expression Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本公开提供了一种视频帧传输方法、装置、电子设备及存储介质,涉及计算机技术领域,尤其涉及云桌面技术领域。具体实现方案为:获取待传输视频帧;从区域选择器中选择目标区域坐标,区域选择器中存储有多个区域坐标,每个区域坐标是基于已完成传输的多个连续视频帧的动态区域确定的;对待传输视频中目标区域坐标对应的区域进行视频编码得到视频编码数据,对待传输视频的其余区域中与上一相邻视频帧相比发生变化的图像块进行图像编码得到图像编码数据;向客户端传输视频编码数据和图像编码数据。可以节省传输流量。
Description
技术领域
本公开涉及计算机技术领域,尤其涉及云桌面技术领域。
背景技术
云桌面又称桌面虚拟化、云电脑,是替代传统电脑的一种新模式,云服务器可以向终端传输视频流,客户端接收到视频流后,可以基于视频流渲染并展示云桌面。为了保证清晰度,目前云服务器通常采用较高的码率传输视频流。
发明内容
本公开提供了一种视频帧传输方法、装置、电子设备及存储介质。
根据本公开的第一方面,提供了一种视频帧传输方法,所述方法包括:
获取待传输视频帧;
从区域选择器中选择目标区域坐标,所述区域选择器中存储有多个区域坐标,每个区域坐标是基于已完成传输的多个连续视频帧的动态区域确定的;
对所述待传输视频中所述目标区域坐标对应的区域进行视频编码得到视频编码数据,对所述待传输视频的其余区域中与上一相邻视频帧相比发生变化的图像块进行图像编码得到图像编码数据;
向客户端传输所述视频编码数据和所述图像编码数据。
根据本公开的第二方面,提供了一种视频帧传输装置,所述装置包括:
获取模块,获取待传输视频帧;
选择模块,用于从区域选择器中选择目标区域坐标,所述区域选择器中存储有多个区域坐标,每个区域坐标是基于已完成传输的多个连续视频帧的动态区域确定的;
编码模块,用于对所述待传输视频中所述目标区域坐标对应的区域进行视频编码得到视频编码数据,对所述待传输视频的其余区域中与上一相邻视频帧相比发生变化的图像块进行图像编码得到图像编码数据;
传输模块,用于向客户端传输所述视频编码数据和所述图像编码数据。
根据本公开的第三方面,提供了一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行第一方面中所述的方法。
根据本公开的第四方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使所述计算机执行第一方面中所述的方法。
根据本公开的第五方面,提供了一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现第一方面中所述的方法。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本公开的限定。其中:
图1是本公开实施例提供的一种视频帧传输方法的流程图;
图2本公开实施例提供的一种区域选择器的示例性示意图;
图3是本公开实施例提供的一种将视频帧中的图像块的标记结果的示例性示意图;
图4是本公开实施例提供的确定候选动态区域的直方图的示例性示意图;
图5是本公开实施例提供的一种云桌面显示方法的示例性流程图;
图6是本公开实施例提供的一种云桌面界面的示例性示意图;
图7是本公开实施例提供的一种视频帧传输装置的结构示意图;
图8是用来实现本公开实施例的视频帧传输的方法的电子设备的框图。
具体实施方式
以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
本申请实施例提供了一种视频帧传输方法,应用在云桌面的场景中,具体应用于云服务器向客户端传输视频流的过程中,该方法由云服务器执行,如图1所示,该方法包括:
S101、获取待传输视频帧。
其中,待传输视频帧为云服务器需要向客户端传输的视频流中的一个视频帧,该视频流包括的每一视频帧中均可包括视频画面。例如,用户在使用云桌面时,利用网页内的小视频播放窗口观看视频,则视频流的每一视频帧均包括云桌面中显示的网页以及网页中视频播放窗口中播放的视频画面。
S102、从区域选择器中选择目标区域坐标。
其中,区域选择器中存储有多个区域坐标,每个区域坐标是基于已完成传输的多个连续视频帧的动态区域确定的。例如,可以每隔预设时长,基于预设时长内传输的多个连续视频帧的动态区域确定一个区域坐标;或者,每传输指定数量个视频帧,基于该指定数量个视频帧的动态区域确定一个区域坐标。确定区域坐标的方法将在后续实施例中进行详细介绍。
可以理解的是,若多个连续视频帧中的同一区域持续发生变化,则说明该区域可能为视频播放窗口,即动态区域。
S103、对待传输视频中目标区域坐标对应的区域进行视频编码得到视频编码数据,对待传输视频的其余区域中与上一相邻视频帧相比发生变化的图像块进行图像编码得到图像编码数据。
以在网页内的小视频播放窗口播放视频的场景为例,发生变化的图像块可以为网页内搜索框中的内容。
S104、向客户端传输视频编码数据和图像编码数据。
其中,客户端接收到视频编码数据后,可以基于视频编码数据对云桌面中的目标区域坐标中的视频进行渲染,基于接收到的各图像块的图像编码,对云桌面中与各图像块对应的区域进行渲染,其余未发生变化的图像块无需重新渲染。
采用该方法,在获取待传输视频帧之后,可以从区域选择器中选择目标区域坐标,对待传输视频中目标区域坐标对应的区域进行视频编码,对待传输视频帧中发生变化的图像块进行图像编码,无需对其他区域进行视频编码。相比于对完整的视频帧进行视频编码,本公开实施例减小了向客户端传输的数据量,如此就可以降低传输码率,实现用较小的码率传输较高清晰度的视频流,可以节省流量,在网络较差的情况下用户仍然可以流畅使用云桌面。并且,由于区域选择器中的每个区域坐标是基于已完成传输的多个连续视频帧的动态区域确定的,所以从区域选择器中选择出的目标区域坐标能够表示一段时间内视频流中的动态区域,可以避免因进行视频编码的区域频繁变化而影响显示效果,可见本公开实施例可以在不影响云桌面显示效果的情况下,节省传输流量。
在本公开的一些实施例中,作为一种可选实施方式,上述S102具体可以实现为:从区域选择器中选择最新存入的区域坐标作为目标区域坐标。
可以理解的是,最新存入的区域坐标是基于最近完成传输的多个连续视频帧的动态区域确定的。最近完成传输的视频帧中的动态区域,与当前的待传输视频帧中的动态区域相同的可能性较大,所以可以将最新存入的区域坐标作为待传输视频帧中需要被视频编码的区域,如此可以降低视频编码数据的数据量,节省传输流量。
作为另一种可选实施方式,区域选择器中还存储有每个区域坐标的类别标识,具有相同类别标识的区域坐标之间的差值均小于预设阈值。并且,区域选择器为长度固定的先入先出队列,即在区域选择器被存满后,若后续还需存入新的区域坐标,则将最早被存入区域选择器的区域坐标移除,从而将新的区域坐标存入。
在此基础上,上述S102还可以实现为:
确定区域选择器中占比最高的目标类别标识,从具有目标类别标识的区域坐标中选择最后被存入区域选择器的目标区域坐标。
作为示例,如图2所示,图2中示出的区域选择器中存储有8个区域坐标,即区域坐标1-8,对应的类别标识分别为1、1、1、1、1、1、1、0,则可确定类别标识1的占比最大,进而选择区域坐标7作为目标区域坐标。
需要说明的是,图2仅作为示例,实际实现中区域选择器中存储的区域坐标数量不限于此。本公开实施例中的每个区域坐标可以包括矩形区域的四个角的坐标,或者包括矩形区域的左上角坐标和右下角坐标,或者包扩矩形区域的左下角坐标和右上表坐标。
在对区域坐标之间计算差值时,分别将两个区域坐标中包括的每个角的坐标计算差值,例如,在区域坐标包括矩形区域左上角坐标和右下角坐标的情况下,分别计算两个区域坐标左上角坐标的差值,和右下角坐标的差值。若计算得到的每个差值均小于预设阈值,则确定这两个区域坐标之间的差值小于预设阈值。
采用该方法,由于区域选择器为长度固定的先入先出队列,所以区域选择器中当前存的区域坐标是基于最近一段时间传输的视频帧确定的,能够表示最近一段时间内视频流中的动态区域。另外,由于本公开实施例中的目标区域坐标来自于占比最高的目标类别标识对应的区域坐标,可以避免按照临时确定的一个不够准确的区域坐标进行视频编码,提高确定出的目标动态区域的准确性,避免频繁大幅度调整视频编码的区域。且在保证准确性的前提下,选择最新存入区域选择器的区域坐标,可提高云桌面显示的稳定性与流畅度。
在本公开的一些实施例中,云服务器在获取待传输视频后,可以按照预设划分尺寸,将待传输视频帧划分为多个大小相同的图像块,并将待传输视频帧与上一相邻视频帧中的每一图像块进行对比,将待传输视频帧中发生变化的图像块标记为第一标记值,将未发生变化的图像块标记为第二标记值。
需要说明的是,本公开实施例中对每一待传输视频帧划分图像块的方式相同,且采用的预设划分尺寸相同。
例如,对于1920×1080的视频帧,预设划分尺寸可以为20×20,即每个图像块的大小为20×20,如此可以将每个视频帧划分为96×54个图像块。
可选的,在将待传输视频帧与上一相邻视频帧中的每一图像块进行对比时,可采用memcmp进行对比,memcmp是一种按字节比较函数。作为示例,第一标记值可以为1,第二标记值可以为0。也就是将发生变化的图像块标记为1,将未发生变化的图像块标记为0。如图3所示,图3中示出了被标记后的两个视频帧,标记为1的图像块为发生变化的图像块,标记为0的图像块为未发生变化的图像块,图3中两个视频帧中阴影区域为视频帧内标记为1的图像块较多的区域。
相应地,对待传输视频的其余区域中与上一相邻视频帧相比发生变化的图像块进行图像编码,具体可以实现为:
对待传输视频其余区域中标记值为第一标记值的图像块进行图像编码。
采用该方法,可以比较出相邻视频帧中发生变化的图像块,进而可以对除视频编码区域之外的发生变化的图像块进行图像编码,图像编码的数据量小于视频编码的数据量,所以可以减少云服务器向客户端传输的数据量,且可准确将发生变化的图像块的编码数据传输给客户端,在不影响云桌面显示效果的前提下,节省了传输流量。
在本公开的一些实施例中,在对待传输视频帧中的每一图像块进行标记后,该方法还包括:
将待传输视频帧中每一行图像块的第一标记值进行累加,基于每一行的累加值生成行直方图,并将待传输视频帧中每一列图像块的第一标记值进行累加,基于每一列的累加值生成列直方图。
基于行直方图中的最大矩形和列直方图中的最大矩形,确定待传输视频帧中的候选动态区域。
可选的,可以将行的方向(例如向左的方向)作为行直方图的纵轴,将每个图像块的高度作为行直方图中每个矩形的宽度,将每一行的累加值作为行直方图中与该行对应矩形的高度。即行直方图中每个矩形的宽度均与单个图像块的高度相同
同理,可以将列的方向(例如向右的方向)作为列直方图的纵轴,将每个图像块的宽度作为行直方图中每个矩形的宽度,将每一列的累加值作为列直方图中与该列对应矩形的高度。即列直方图中每个矩形的宽度均与单个图像块的宽度相同。
示例性地,如图4所示,图4中示出了一个标记后的视频帧,该视频帧左侧的直方图为行直方图,下方的直方图为列直方图。
可以看出,行直方图中最上方的一个矩形的高度为3,在y轴方向上的变化量为3,即视频帧第一行中出现的3个1的累加值;第二个矩形的高度为1,在y轴方向上的变化量为1,即视频帧第二行中出现的1的累加值;同理,后续几个矩形的高度分别为4、4、3、2。
类似地,列直方图中最左侧的矩形的高度为1,在y轴方向上的变化量为1,即视频帧中第一列中出现的1的累加值,第二个矩形的高度为3,在y轴方向上的变化量为3,即视频帧中第二列中出现的1的累加值。同理,后续几个矩形的高度分别为6、3、3、1。
由于图像块为正方形,所以行直方图和列直方图中每个矩形的宽度都相同。
进而可确定出行直方图中的最大矩形,和列直方图中的最大矩形。
在一种实施方式中,云服务器可以基于行直方图中的最大矩形,确定候选动态区域的在待传输视频帧中的行数。基于列直方图中的最大矩形,确定候选动态区域的在待传输视频帧中的列数。然后将行数和列数在待传输视频帧中对应的区域作为候选动态区域。
具体的,可以将行直方图中最大矩形中与待传输视频帧的行平行的一条边在待传输视频中对应的行数,作为候选动态区域在待传输视频帧中的行数,并将列直方图中最大矩形中与待传输视频帧的列平行的一条边在待传输视频帧中对应的列数,作为候选动态区域在待传输视频帧中的列数。
仍以图4为例,图4左侧的行直方图中加粗的矩形为行直方图中的最大矩形,该矩形在x轴上的边对应于视频帧的第3行至第5行。
且图4下方的列直方图中加粗的矩形为列直方图中的最大矩形,该矩形在x轴上的边对应于视频帧的第2列至第5列。
进而可将第3行至第5行以及第2列至第5列中重叠的区域作为候选动态区域,即图4中的阴影区域为候选动态区域。
可以理解的是,视频流中的每一帧的变化是快速且无序的,即使在视频窗口区域中,也可能存在相邻两个视频帧中部分图像块不发生变化的情况,且视频窗口区域外的区域的图像块也可能发生变化。例如图3中阴影区域为实际的视频窗口区域,可以看出图3示出的两个视频帧中,视频窗口区域也存在一些标记为0的图像块,且视频窗口区域之外也存在一些标记为1的图像块。视频窗口区域外变化的图像块会对确定每一视频帧中的视频窗口区域造成干扰,导致很难准确地确定出每一视频帧中视频窗口对应的动态区域。采用本公开实施例的方法,相当于将复杂的确定候选动态区域的问题转化为了在直方图中寻找最大矩形的问题,通过寻找最大矩形的问题,可以准确定位到视频帧中的候选动态区域,且计算最大矩形的复杂度较低,计算耗时较小,经试验,计算耗时不到1毫秒。可见,采用该方法可以实现利用简单的计算准确地定位到候选动态区域。
在确定出待传输视频帧中的候选动态区域之后,还可以根据从连续多个视频帧中确定的多个候选动态区域,决策出一个动态区域,将决策出的动态区域的区域坐标加入区域选择器,并设置类别标识。
可选地,云服务器可以将多个候选动态区域中占比最大的一种候选动态区域作为决策出的动态区域。
例如,多个候选动态区域中,95%的候选动态区域为相同位置的90×90的区域,5%的候选动态区域为86×86的区域,则可将90×90的区域作为决策出的动态区域。如此可以避免因视频窗口中的个别画面变化较小,导致选出的动态区域不准确的情况,使得决策出的动态区域尽可能的与实际的视频窗口区域相符。
其中,云服务器在确定出待传输视频帧中的候选动态区域后,可判断当前确定出的未参与决策的动态区域是否满足决策条件。若满足决策条件,则从确定出的多个候选动态区域中决策出一个动态区域,若不满足决策条件,则先保存该动态候选区域,可在完成对该待传输视频帧的传输后,继续确定下一待传输视频帧的候选动态区域,直至满足决策条件时,进行决策。
该决策条件可以为每个预设时长进行一次决策,或者为每获取到预设数量个候选动态区域进行一次决策,相应地,根据从连续多个视频帧中确定的多个候选动态区域,决策出一个动态区域,具体可以实现为:
每隔预设时长,从基于预设时长内的每个视频帧中确定出的动态区域中,决策出一个动态区域;该预设时长可基于经验预先设置,例如可以为5秒。
或者,每获取到指定数量个候选动态区域,从指定数量个候选区域中决策出一个动态区域。该指定数量可基于经验预先设置,例如可以为100。
通过上述方法决策出的动态区域可以反映出预设时长内,或者最近的预设数量个视频帧中的实际的动态区域,将该动态区域加入到区域选择器中供后续进行视频编码使用,可以使得实际进行视频编码的区域较为稳定,避免频繁变化,可以使得云桌面播放更加流畅稳定。
在决策出一个动态区域后,可将动态区域的区域坐标加入区域选择器中,若区域选择器已被存满,则将最先进入区域选择器的区域坐标移除,从而将最新决策出的动态区域的区域坐标加入队尾。例如,在图2的基础上,可将坐标1移除,坐标2至坐标8左移一位,进而将最新决策出的区域坐标加入原本坐标8的位置。
另外,还可以将最新决策出的动态区域的区域坐标与区域选择器中已存储的每个区域坐标进行比较,若最新决策出的动态区域的区域坐标与其中一个类别标识对应的各区域坐标之间的差值均小于预设阈值,则可为最新决策出的动态区域的区域坐标设置相同的类别标识。
若最新决策出的动态区域的区域坐标与所有已存储的区域坐标之间的差值均大于预设阈值,则可为该动态区域设置新的类别标识。
仍以图2为例,在将坐标1移除后,若最新决策出的动态区域的区域坐标与坐标2至坐标7中的每一区域坐标之间的差值均小于预设阈值,则可将该最新决策出的动态区域的区域坐标设置为1。
采用该方法,可以在区域选择器中存储每次决策出的区域坐标,并为该区域坐标设置类别标识,使得云服务器可以选择类别标识占比最大的一个区域坐标作为目标动态区域,如此可以避免频繁地切换进行视频编码的区域,可以使得进行视频编码的区域更加稳定。
例如,在使用云桌面过程中,若利用网页的小视频窗口播放视频,例如电视剧、电影等,在小视频窗口中,在播放人物对话以及人物独白的画面时,可能会存在连续播放的画面中只有演员的面部表情发生变化,背景完全不变的情况,在这种情况下确定出的动态区域可能只有小视频窗口中演员的脸部区域,小视频窗口中其余区域会被确定为未发生变化的图像块,如果后续按照该动态区域进行编码,在小视频窗口中发生场景切换时,可能会出现不能及时为整个小视频窗口的区域进行视频编码的问题,使得云桌面播放出现卡顿的现象。本公开实施例中,可以避免将短暂出现的更小的动态区域作为视频编码区域,即使最新确定出的动态区域很小,也仍会按照类别标识最多的区域坐标进行视频编码,避免了上述播放卡顿的问题。
如图5所示,图5为基于本公开实施例的方法实现的一种云桌面显示方法的示例性流程图,该方法包括:
S501、捕获桌面画面像素。
其中,云服务器可以获取即将显示在客户端桌面的每一帧画面,即上述实施例中的待传输视频帧。
S502、对桌面画面像素分块,得到多个图像块。
对桌面画面像素分块也就是上述实施例中介绍的将待传输视频帧划分为多个大小相同的图像块。
S503、对比每一图像块和前一帧中相同位置的图像块相比是否发生变化。
具体对比方法以及对图像块的标记方法可参考上述实施例的相关描述,此处不再赘述。
S504、确定视频区域和图片区域。
其中,视频区域为待传输视频帧中目标动态区域,图片区域为除目标动态区域外,被标记为1的图像块的区域。
S505、对视频区域编码和图片区域编码。
可选的,云服务器可以对视频区域进行视频编码;对视频区域外的,发生变化的图像块进行图像编码;对视频区域外的,未发生变化的图像块,不进行编码。
S506、客户端分别渲染。
客户端分别基于视频编码和图像编码,渲染桌面画面,从而对云桌面显示的每一帧的变化部分进行更新。
采用上述方法,经过测试,在云桌面中利用网页的小窗播放视频过程中,对于162.3MB的视频流,在相关技术中,需要完整的传输162.3MB的数据,且对网速要求为0.54M/s,即每秒需要传输0.54M的数据。利用本公开实施例的方法传输相同的视频流,所需传输的数据量为82.56MB,下降了一半。且在码率相同的情况下,所需的网速为0.28M/s,即每秒需要传输0.28M的数据,对网速的要求也可下降一半。可以看出,利用该方法可以节省一半的传输数据量,且降低了对网络的要求。并且,原本1080P分辨率的视频需要4K的码率才能够维持所需的清晰度,在小窗视频的场景下,即对于720P以内的分辨率,只需2K码率即可达到所需的清晰度,在该场景下能够减少一半的码率且能够节省一半的流量。
如表1所示,表1为经测试得到的测试数据,测试过程中用网络封包分析软件(wireshark)抓取了5分钟云服务器向客户端传输的数据,帧率均为25。
表1中的“静态”是指切换到电脑桌面,使用云桌面的用户未进行任何操作。“小窗video”是指打开网页,在网页的小窗内播放一个视频。“全屏video”是指全屏打开网页里的视频。
表1中的第2行至第4行分别为对目前已有的三种云桌面的相关产品的测试数据,第5行的云桌面为与本公开实施例相关的优化前的云桌面产品。第6行的云桌面2.0是利用本公开实施例的方法实现的产品。表1中每一条测试数据包括传输的数据量以及传输速率。
表1
图6为本公开实施例提供的一种客户端显示的云桌面界面的示例性示意图,最外部的矩形框表示客户端的显示界面边框,在客户端的浏览器网页中播放视频时,云服务器在传输每一视频帧时可以只对视频区域进行视频编码。对于其余的变化区域,例如搜索框中推荐的搜索词可能会发生变化,相关推荐下推荐的电视剧也可能发生变化,云服务器可以对每一视频帧中这些变化的区域对应的图像块进行图像编码,对于其余无变化的部分则无需进行编码,进而客户端也无需对其余不发生变化的区域进行重新渲染。
本公开的技术方案中,所涉及的用户个人信息的收集、存储、使用、加工、传输、提供和公开等处理,均符合相关法律法规的规定,且不违背公序良俗。
对应于上述方法实施例,本公开实施例还提供一种视频帧传输装置,如图7所示,该装置包括:
获取模块701,获取待传输视频帧;
选择模块702,用于从区域选择器中选择目标区域坐标,区域选择器中存储有多个区域坐标,每个区域坐标是基于已完成传输的多个连续视频帧的动态区域确定的;
编码模块703,用于对待传输视频中目标区域坐标对应的区域进行视频编码得到视频编码数据,对待传输视频的其余区域中与上一相邻视频帧相比发生变化的图像块进行图像编码得到图像编码数据;
传输模块704,用于向客户端传输视频编码数据和图像编码数据。
在另一实施例中,区域选择器中还存储有每个区域坐标的类别标识,具有相同类别标识的区域坐标之间的差值小于预设阈值,且区域选择器为长度固定的先入先出队列;
选择模块702,具体用于:
确定区域选择器中占比最高的目标类别标识;
从具有目标类别标识的区域坐标中,选择最后被存入区域选择器的目标坐标区域。
在另一实施例中,该装置还包括:
划分模块,用于按照预设划分尺寸,将待传输视频帧划分为多个大小相同的图像块;
标记模块,用于将待传输视频帧与上一相邻视频帧中的每一图像块进行对比,将待传输视频帧中发生变化的图像块标记为第一标记值,将未发生变化的图像块标记为第二标记值;
编码模块703,具体用于对待传输视频其余区域中标记值为第一标记值的图像块进行图像编码。
在本公开另一实施例中,该装置还包括:
生成模块,用于将待传输视频帧中每一行图像块的第一标记值进行累加,基于每一行的累加值生成行直方图,并将待传输视频帧中每一列图像块的第一标记值进行累加,基于每一列的累加值生成列直方图;
确定模块,用于基于行直方图中的最大矩形和列直方图中的最大矩形,确定待传输视频帧中的候选动态区域;
决策模块,用于根据从连续多个视频帧中确定的多个候选动态区域,决策出一个动态区域,将决策出的动态区域的区域坐标加入区域选择器,并设置类别标识。
在本公开另一实施例中,决策模块,具体用于:
每隔预设时长,从基于预设时长内的每个视频帧中确定出的动态区域中,决策出一个动态区域;或者,
每获取到指定数量个候选动态区域,从指定数量个候选区域中决策出一个动态区域。
在本公开另一实施例中,决策模块,具体用于将多个候选动态区域中占比最大的一种候选动态区域作为决策出的动态区域。
在本公开另一实施例中,行直方图中每个矩形的宽度均与单个图像块的高度相同,列直方图中每个矩形的宽度均与单个图像块的宽度相同;确定模块,具体用于:
基于行直方图中的最大矩形,确定候选动态区域在待传输视频帧中的行数;
基于列直方图中的最大矩形,确定候选动态区域的在待传输视频中的列数;
将行数和列数在待传输视频帧中对应的区域作为候选动态区域。
根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
图8示出了可以用来实施本公开的实施例的示例电子设备800的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
如图8所示,设备800包括计算单元801,其可以根据存储在只读存储器(ROM)802中的计算机程序或者从存储单元808加载到随机访问存储器(RAM)803中的计算机程序,来执行各种适当的动作和处理。在RAM 803中,还可存储设备800操作所需的各种程序和数据。计算单元801、ROM 802以及RAM 803通过总线804彼此相连。输入/输出(I/O)接口805也连接至总线804。
设备800中的多个部件连接至I/O接口805,包括:输入单元806,例如键盘、鼠标等;输出单元807,例如各种类型的显示器、扬声器等;存储单元808,例如磁盘、光盘等;以及通信单元809,例如网卡、调制解调器、无线通信收发机等。通信单元809允许设备800通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
计算单元801可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元801的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元801执行上文所描述的各个方法和处理,例如视频帧传输方法。例如,在一些实施例中,视频帧传输方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元808。在一些实施例中,计算机程序的部分或者全部可以经由ROM 802和/或通信单元809而被载入和/或安装到设备800上。当计算机程序加载到RAM 803并由计算单元801执行时,可以执行上文描述的视频帧传输方法的一个或多个步骤。备选地,在其他实施例中,计算单元801可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行视频帧传输方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、复杂可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,也可以为分布式系统的服务器,或者是结合了区块链的服务器。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。
Claims (17)
1.一种视频帧传输方法,所述方法包括:
获取待传输视频帧;
从区域选择器中选择目标区域坐标,所述区域选择器中存储有多个区域坐标,每个区域坐标是基于已完成传输的多个连续视频帧的动态区域确定的;
对所述待传输视频中所述目标区域坐标对应的区域进行视频编码得到视频编码数据,对所述待传输视频的其余区域中与上一相邻视频帧相比发生变化的图像块进行图像编码得到图像编码数据;
向客户端传输所述视频编码数据和所述图像编码数据。
2.根据权利要求1所述的方法,其中,所述区域选择器中还存储有每个区域坐标的类别标识,具有相同类别标识的区域坐标之间的差值小于预设阈值,且所述区域选择器为长度固定的先入先出队列;所述从区域选择器中选择目标区域坐标,包括:
确定区域选择器中占比最高的目标类别标识;
从具有目标类别标识的区域坐标中,选择最后被存入所述区域选择器的目标坐标区域。
3.根据权利要求1或2所述的方法,在所述获取待传输视频帧之后,所述方法还包括:
按照预设划分尺寸,将所述待传输视频帧划分为多个大小相同的图像块;
将所述待传输视频帧与上一相邻视频帧中的每一图像块进行对比,将所述待传输视频帧中发生变化的图像块标记为第一标记值,将未发生变化的图像块标记为第二标记值;
所述对所述待传输视频的其余区域中与上一相邻视频帧相比发生变化的图像块进行图像编码,包括:
对所述待传输视频其余区域中标记值为所述第一标记值的图像块进行图像编码。
4.根据权利要求3所述的方法,在所述将所述待传输视频帧与上一相邻视频帧中的每一图像块进行对比,将所述待传输视频帧中发生变化的图像块标记为第一标记值,将未发生变化的图像块标记为第二标记值之后,所述方法还包括:
将所述待传输视频帧中每一行图像块的第一标记值进行累加,基于每一行的累加值生成行直方图,并将所述待传输视频帧中每一列图像块的第一标记值进行累加,基于每一列的累加值生成列直方图;
基于所述行直方图中的最大矩形和所述列直方图中的最大矩形,确定所述待传输视频帧中的候选动态区域;
根据从连续多个视频帧中确定的多个候选动态区域,决策出一个动态区域,将决策出的动态区域的区域坐标加入所述区域选择器,并设置类别标识。
5.根据权利要求4所述的方法,其中,所述根据从连续多个视频帧中确定的多个候选动态区域,决策出一个动态区域,包括:
每隔预设时长,从基于所述预设时长内的每个视频帧中确定出的动态区域中,决策出一个动态区域;或者,
每获取到指定数量个候选动态区域,从所述指定数量个候选区域中决策出一个动态区域。
6.根据权利要求4所述的方法,其中,所述根据从连续多个视频帧中确定的多个候选动态区域,决策出一个动态区域,包括:
将所述多个候选动态区域中占比最大的一种候选动态区域作为决策出的动态区域。
7.根据权利要求4所述的方法,其中,所述行直方图中每个矩形的宽度均与单个图像块的高度相同,所述列直方图中每个矩形的宽度均与单个图像块的宽度相同;所述基于所述行直方图中的最大矩形和所述列直方图中的最大矩形,确定所述待传输视频帧中的候选动态区域,包括:
基于所述行直方图中的最大矩形,确定所述候选动态区域在所述待传输视频帧中的行数;
基于所述列直方图中的最大矩形,确定所述候选动态区域的在所述待传输视频中的列数;
将所述行数和列数在所述待传输视频帧中对应的区域作为所述候选动态区域。
8.一种视频帧传输装置,所述装置包括:
获取模块,获取待传输视频帧;
选择模块,用于从区域选择器中选择目标区域坐标,所述区域选择器中存储有多个区域坐标,每个区域坐标是基于已完成传输的多个连续视频帧的动态区域确定的;
编码模块,用于对所述待传输视频中所述目标区域坐标对应的区域进行视频编码得到视频编码数据,对所述待传输视频的其余区域中与上一相邻视频帧相比发生变化的图像块进行图像编码得到图像编码数据;
传输模块,用于向客户端传输所述视频编码数据和所述图像编码数据。
9.根据权利要求8所述的装置,其中,所述区域选择器中还存储有每个区域坐标的类别标识,具有相同类别标识的区域坐标之间的差值小于预设阈值,且所述区域选择器为长度固定的先入先出队列;
所述选择模块,具体用于:
确定区域选择器中占比最高的目标类别标识;
从具有目标类别标识的区域坐标中,选择最后被存入所述区域选择器的目标坐标区域。
10.根据权利要求8或9所述的装置,所述装置还包括:
划分模块,用于按照预设划分尺寸,将所述待传输视频帧划分为多个大小相同的图像块;
标记模块,用于将所述待传输视频帧与上一相邻视频帧中的每一图像块进行对比,将所述待传输视频帧中发生变化的图像块标记为第一标记值,将未发生变化的图像块标记为第二标记值;
所述编码模块,具体用于对所述待传输视频其余区域中标记值为所述第一标记值的图像块进行图像编码。
11.根据权利要求10所述的装置,所述装置还包括:
生成模块,用于将所述待传输视频帧中每一行图像块的第一标记值进行累加,基于每一行的累加值生成行直方图,并将所述待传输视频帧中每一列图像块的第一标记值进行累加,基于每一列的累加值生成列直方图;
确定模块,用于基于所述行直方图中的最大矩形和所述列直方图中的最大矩形,确定所述待传输视频帧中的候选动态区域;
决策模块,用于根据从连续多个视频帧中确定的多个候选动态区域,决策出一个动态区域,将决策出的动态区域的区域坐标加入所述区域选择器,并设置类别标识。
12.根据权利要求11所述的装置,其中,所述决策模块,具体用于:
每隔预设时长,从基于所述预设时长内的每个视频帧中确定出的动态区域中,决策出一个动态区域;或者,
每获取到指定数量个候选动态区域,从所述指定数量个候选区域中决策出一个动态区域。
13.根据权利要求11所述的装置,其中,所述决策模块,具体用于将所述多个候选动态区域中占比最大的一种候选动态区域作为决策出的动态区域。
14.根据权利要求11所述的装置,其中,所述行直方图中每个矩形的宽度均与单个图像块的高度相同,所述列直方图中每个矩形的宽度均与单个图像块的宽度相同;所述确定模块,具体用于:
基于所述行直方图中的最大矩形,确定所述候选动态区域在所述待传输视频帧中的行数;
基于所述列直方图中的最大矩形,确定所述候选动态区域的在所述待传输视频中的列数;
将所述行数和列数在所述待传输视频帧中对应的区域作为所述候选动态区域。
15.一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-7中任一项所述的方法。
16.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行根据权利要求1-7中任一项所述的方法。
17.一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现根据权利要求1-7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211433232.7A CN115834930A (zh) | 2022-11-16 | 2022-11-16 | 视频帧传输方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211433232.7A CN115834930A (zh) | 2022-11-16 | 2022-11-16 | 视频帧传输方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115834930A true CN115834930A (zh) | 2023-03-21 |
Family
ID=85528390
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211433232.7A Pending CN115834930A (zh) | 2022-11-16 | 2022-11-16 | 视频帧传输方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115834930A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116896655A (zh) * | 2023-09-05 | 2023-10-17 | 银河麒麟软件(长沙)有限公司 | 一种用于云桌面的视频重定向方法、系统及介质 |
-
2022
- 2022-11-16 CN CN202211433232.7A patent/CN115834930A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116896655A (zh) * | 2023-09-05 | 2023-10-17 | 银河麒麟软件(长沙)有限公司 | 一种用于云桌面的视频重定向方法、系统及介质 |
CN116896655B (zh) * | 2023-09-05 | 2023-12-26 | 银河麒麟软件(长沙)有限公司 | 一种用于云桌面的视频重定向方法、系统及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2020220968A1 (zh) | 一种视频数据处理方法和相关装置 | |
CN111654746B (zh) | 视频的插帧方法、装置、电子设备和存储介质 | |
KR20220126264A (ko) | 비디오 흔들림 검출 방법, 장치, 전자 기기 및 저장 매체 | |
EP3410302A1 (en) | Graphic instruction data processing method, apparatus and system | |
CN111754407A (zh) | 图像展示的布局方法、装置、设备以及存储介质 | |
CN113014936B (zh) | 视频插帧方法、装置、设备以及存储介质 | |
CN115834930A (zh) | 视频帧传输方法、装置、电子设备及存储介质 | |
CN115022679B (zh) | 视频处理方法、装置、电子设备和介质 | |
CN112036373A (zh) | 训练视频文本分类模型的方法、视频文本分类方法和装置 | |
CN114168793A (zh) | 主播展示方法、装置、设备和存储介质 | |
CN116259064B (zh) | 表格结构识别方法、表格结构识别模型的训练方法及装置 | |
CN112528596A (zh) | 文字特效的渲染方法、装置、电子设备及存储介质 | |
CN113810755B (zh) | 全景视频预览的方法、装置、电子设备及存储介质 | |
CN106709965B (zh) | 一种基于共享表面的文本显示方法及装置 | |
CN113038184B (zh) | 数据处理方法、装置、设备及存储介质 | |
CN113784217A (zh) | 视频播放方法、装置、设备和存储介质 | |
CN113362438A (zh) | 全景渲染的方法、装置、电子设备、介质及程序 | |
CN113691866B (zh) | 视频处理方法、装置、电子设备和介质 | |
CN114786051B (zh) | 一种视频渲染方法、装置、电子设备及存储介质 | |
CN114546199B (zh) | 一种图像处理方法、装置、电子设备和存储介质 | |
CN114821717B (zh) | 目标对象融合方法、装置、电子设备及存储介质 | |
CN113642612B (zh) | 样本图像生成方法、装置、电子设备及存储介质 | |
CN114217889B (zh) | 显示方法、装置、设备和存储介质 | |
CN113691866A (zh) | 视频处理方法、装置、电子设备和介质 | |
CN113034536A (zh) | 视频处理方法、装置、电子设备和可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |