CN111836117B - 一种补帧数据的发送方法、装置及相关组件 - Google Patents
一种补帧数据的发送方法、装置及相关组件 Download PDFInfo
- Publication number
- CN111836117B CN111836117B CN201910300001.0A CN201910300001A CN111836117B CN 111836117 B CN111836117 B CN 111836117B CN 201910300001 A CN201910300001 A CN 201910300001A CN 111836117 B CN111836117 B CN 111836117B
- Authority
- CN
- China
- Prior art keywords
- frame
- data
- image
- supplementing
- current
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 80
- 230000001502 supplementing effect Effects 0.000 claims abstract description 162
- 230000006835 compression Effects 0.000 claims abstract description 68
- 238000007906 compression Methods 0.000 claims abstract description 68
- 230000008569 process Effects 0.000 claims abstract description 30
- 239000012634 fragment Substances 0.000 claims description 38
- 230000005540 biological transmission Effects 0.000 claims description 26
- 230000000875 corresponding effect Effects 0.000 claims description 26
- 230000000295 complement effect Effects 0.000 claims description 19
- 230000003993 interaction Effects 0.000 claims description 15
- 238000004590 computer program Methods 0.000 claims description 9
- 230000002596 correlated effect Effects 0.000 claims description 6
- 239000013589 supplement Substances 0.000 abstract description 48
- 230000009286 beneficial effect Effects 0.000 abstract description 2
- 230000000694 effects Effects 0.000 description 7
- 238000011156 evaluation Methods 0.000 description 6
- 230000003068 static effect Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 238000013467 fragmentation Methods 0.000 description 2
- 238000006062 fragmentation reaction Methods 0.000 description 2
- 238000009432 framing Methods 0.000 description 2
- 230000002452 interceptive effect Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000008439 repair process Effects 0.000 description 2
- 239000000243 solution Substances 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 206010044565 Tremor Diseases 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 238000002347 injection Methods 0.000 description 1
- 239000007924 injection Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002265 prevention Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/83—Generation or processing of protective or descriptive data associated with content; Content structuring
- H04N21/845—Structuring of content, e.g. decomposing content into time segments
- H04N21/8456—Structuring of content, e.g. decomposing content into time segments by decomposing the content in the time domain, e.g. in time segments
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/234—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
- H04N21/2343—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
- H04N21/234381—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements by altering the temporal resolution, e.g. decreasing the frame rate by frame skipping
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/25—Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
- H04N21/266—Channel or content management, e.g. generation and management of keys and entitlement messages in a conditional access system, merging a VOD unicast channel into a multicast channel
- H04N21/2662—Controlling the complexity of the video stream, e.g. by scaling the resolution or bitrate of the video stream based on the client capabilities
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Databases & Information Systems (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本申请公开了一种补帧数据的发送方法,所述发送方法包括当接收到补帧指令时,根据所述补帧指令生成当前补帧图像,并将所述当前补帧图像与补帧序列中的历史补帧图像执行匹配操作;对所述当前补帧图像中匹配命中的区域执行缓存编码操作得到编码数据,并对所述当前补帧图像中未匹配命中的区域执行图像压缩操作得到压缩数据;将所述编码数据和所述压缩数据作为补帧数据发送至客户端。本方法能够优化画面补偿流程,减少补帧数据的数据量,降低补帧数据导致网络拥塞的几率。本申请还公开了一种补帧数据的发送装置、一种计算机可读存储介质及一种电子设备,具有以上有益效果。
Description
技术领域
本发明涉及数据传输技术领域,特别涉及一种补帧数据的发送方法、装置、一种计算机可读存储介质及一种电子设备。
背景技术
画面补偿可以用来修复因有损压缩导致模糊的屏幕内容,补帧则是比较常用的画面补偿方法。补帧方法需要发送高质量的桌面内容所以往往数据量较大,因此导致补帧数据需要较长时间才能发送到客户端。如果能够降低补帧需要发送的数据量将能够大大减小补帧的等待时间,从而优化补帧的体验效果。
当前完成画面补偿的方式主要为采用全屏静态压缩历史画面作为补帧数据发送给客户端,比如使用JPEG压缩最后一帧画面并发送到客户端。但是,这种静态压缩由于没有利用已经发过的历史画面信息,导致码流非常大,且过多的补帧数据注入容易引起网络拥塞,操作延迟显著增高。
因此,如何优化画面补偿流程,减少补帧数据的数据量,降低补帧数据导致网络拥塞的几率对于是本领域技术人员目前需要解决的技术问题。
发明内容
本申请的目的是提供一种补帧数据的发送方法、装置、一种计算机可读存储介质及一种电子设备,能够优化画面补偿流程,减少补帧数据的数据量,降低补帧数据导致网络拥塞的几率。
为解决上述技术问题,本申请提供一种补帧数据的发送方法,该发送方法包括:
当接收到补帧指令时,根据补帧指令生成当前补帧图像,并将当前补帧图像与补帧序列中的历史补帧图像执行匹配操作;
对当前补帧图像中匹配命中的区域执行缓存编码操作得到编码数据,并对当前补帧图像中未匹配命中的区域执行图像压缩操作得到压缩数据;
将编码数据和压缩数据作为补帧数据发送至客户端。
可选的,根据补帧指令生成当前补帧图像包括:
根据补帧指令确定目标时刻,并确定目标时刻对应的当前显示内容;其中,当前显示内容为服务端向客户端发送的远程桌面画面;
将当前显示内容对应的原图像设置为当前补帧图像。
可选的,对当前补帧图像中未匹配命中的区域执行图像压缩操作得到压缩数据包括:
对当前补帧图像中未匹配命中的区域执行预设画质的有损压缩操作得到压缩数据。
可选的,在将全部补帧数据发送至客户端之前,还包括:
判断是否接收到补帧中断命令;其中,补帧中断命令包括绘图指令或客户端交互指令;
若是,则停止发送补帧数据的流程,并删除补帧数据。
可选的,将编码数据和压缩数据作为补帧数据发送至客户端包括:
根据编码数据和压缩数据生成补帧数据;
对补帧数据执行切片操作得到多个分片数据;
根据当前可用带宽确定当前发送速率,并将分片数据按照当前发送速率发送至客户端;其中,当前可用带宽与数据发送速率正相关。
可选的,在将所有分片数据按照当前发送速率发送至客户端之前,还包括:
判断是否接收到补帧中断命令;其中,补帧中断命令包括绘图指令或客户端交互指令;
若是,则停止发送分片数据的操作,并删除所有未发送的分片数据。
可选的,当接收到补帧中断命令时,还包括:
向客户端发送补帧取消指令,以便客户端根据补帧取消指令删除已接收到的所有分片数据。
本申请还提供了一种补帧数据的发送装置,该发送装置包括:
匹配模块,用于当接收到补帧指令时,根据补帧指令生成当前补帧图像,并将当前补帧图像与补帧序列中的历史补帧图像执行匹配操作;
图像压缩模块,对当前补帧图像中匹配命中的区域执行缓存编码操作得到编码数据,并对当前补帧图像中未匹配命中的区域执行图像压缩操作得到压缩数据;
数据发送模块,用于将编码数据和压缩数据作为补帧数据发送至客户端。
可选的,匹配模块包括:
当前显示内容确定单元,用于根据补帧指令确定目标时刻,并确定目标时刻对应的当前显示内容;其中,当前显示内容为服务端向客户端发送的远程桌面画面;
当前补帧图像确定单元,用于将当前显示内容对应的原图像设置为当前补帧图像;
缓存匹配单元,用于将当前补帧图像与补帧序列中的历史补帧图像执行匹配操作。
可选的,图像压缩模块包括:
缓存编码单元,用于对当前补帧图像中匹配命中的区域执行缓存编码操作得到编码数据;
有损压缩单元,用于对当前补帧图像中未匹配命中的区域执行预设画质的有损压缩操作得到压缩数据。
可选的,还包括:
第一判断模块,用于在将全部补帧数据发送至客户端之前,判断是否接收到补帧中断命令;其中,补帧中断命令包括绘图指令或客户端交互指令;若是,则停止发送补帧数据的流程,并删除补帧数据。
可选的,数据发送模块包括:
数据生成单元,用于根据编码数据和压缩数据生成补帧数据;
数据切片单元,用于对补帧数据执行切片操作得到多个分片数据;
帧控单元,用于根据当前可用带宽确定当前发送速率,并将分片数据按照当前发送速率发送至客户端;其中,当前可用带宽与数据发送速率正相关。
可选的,还包括:
第二判断模块,用于在将所有分片数据按照当前发送速率发送至客户端之前,判断是否接收到补帧中断命令;其中,补帧中断命令包括绘图指令或客户端交互指令;若是,则停止发送分片数据的操作,并删除所有未发送的分片数据。
可选的,还包括:
指令发送模块,用于当接收到补帧中断命令时向客户端发送补帧取消指令,以便客户端根据补帧取消指令删除已接收到的所有分片数据。
本申请还提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序执行时实现上述补帧数据的发送方法执行的步骤。
本申请还提供了一种电子设备,包括存储器和处理器,存储器中存储有计算机程序,处理器调用存储器中的计算机程序时实现上述补帧数据的发送方法执行的步骤。
本发明提供了一种补帧数据的发送方法,包括当接收到补帧指令时,根据补帧指令生成当前补帧图像,并将当前补帧图像与补帧序列中的历史补帧图像执行匹配操作;对当前补帧图像中匹配命中的区域执行缓存编码操作得到编码数据,并对当前补帧图像中未匹配命中的区域执行图像压缩操作得到压缩数据;将编码数据和压缩数据作为补帧数据发送至客户端。
本申请在根据补帧指令生成当前补帧图像之后,没有直接对当前补帧图像进行图像压缩并发送,而是先将当前补帧图像与补帧序列中的历史补帧图像进行匹配操作以便去除冗余帧,达到减小传输数据量的效果。历史补帧图像为已经向数据接收端发送过的当前补帧图像,通过将补帧图像与历史补帧图像进行匹配操作能够确定历史补帧图像中已经存在的数据,进而确定当前补帧图像中命中缓存的区域。通过对匹配命中的区域执行缓存编码操作并对未匹配命中的区域执行图像压缩操作,能够使最终得到的补帧数据的数据大小明显小于根据补帧指令生成补帧图像。因此本申请能够优化画面补偿流程,减少补帧数据的数据量,降低补帧数据导致网络拥塞的几率。本申请同时还提供了一种补帧数据的发送装置、一种计算机可读存储介质和一种电子设备,具有上述有益效果,在此不再赘述。
附图说明
为了更清楚地说明本申请实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例所提供的一种补帧数据的发送方法的流程图;
图2为本申请实施例所提供的一种补帧序列的匹配方法的流程图;
图3为本申请实施例所提供的另一种补帧数据的发送方法的流程图;
图4为分片数据发送的帧控示意图;
图5为本申请实施例所提供的一种补帧数据的发送装置的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
为了修复画面失真等画质问题发送更多的数据量来补偿当前画面与真实画面之间的差距的方法叫做图像补偿。画面补偿可以用来修复因有损压缩导致模糊的屏幕内容,补帧则是比较常用的画面补偿方法。现有技术中,补帧数据的处理方法主要有全屏静态压缩和局部压缩。其中,全屏静态压缩的具体过程为:使用JPEG压缩最后一帧画面并发送到终端设备(如客户端)。全屏静态压缩这种方法由于没有利用已经发过的历史画面信息,导致码流非常大,补帧的时间往往很长。局部压缩的具体过程为:只对画面的部分区域进行补偿,但是由于图像编码过程使用有损压缩,所以很难跟踪到屏幕哪一块区域是模糊而需要被补偿,因此局部压缩的方法依赖于对模糊区域的识别与实时跟踪,性能开销大。
针对上述现有技术中的种种不足,本申请通过以下几个实施例提供新的补帧数据的发送方法能够解决上述现有技术中的问题,达到优化画面补偿流程、减少补帧数据的数据量、降低补帧数据导致网络拥塞几率的效果。
下面请参见图1,图1为本申请实施例所提供的一种补帧数据的发送方法的流程图。
具体步骤可以包括:
S101:当接收到补帧指令时,根据补帧指令生成当前补帧图像,并将当前补帧图像与补帧序列中的历史补帧图像执行匹配操作;
其中,本实施例可以应用于存在画面补偿需求的应用场景中,如可以应用于虚拟桌面基础架构(Virtual Desktop Infrastructure,VDI),即存在服务端向客户端发送桌面画面数据的操作。本实施例的执行主体可以为数据发送端,实施情境为数据发送端型数据接收端发送桌面画面,当检测到数据发送端向数据接收端发送的画面存在失真等画质问题时,即可触发补帧操作的流程,需要说明的是当触发补帧流程时可以存在生成补帧指令的操作。
本实施例默认在本步骤之前存在接收补帧指令的操作,在接收到补帧指令之后可以根据补帧指令生成补帧序列。具体的,补帧操作为针对数据发送端向数据接收端传输的画面执行的操作,而补帧操作的作用是用于提高虚拟桌面画面质量的方案,主要的实现机制是在满足一定触发条件下由服务端主动补发一帧高质量的桌面内容以尽可能消除已存在的画面质量问题,因此可以根据补帧指令确定需要进行补帧操作的具体时间点的当前显示内容对应的原始画面,根据原始画面生成补帧序列。
相对于现有技术在得到补帧图像后直接将补帧图像进行压缩并发送的操作,本实施例首先对当前补帧图像与补帧序列中的历史补帧图像执行匹配操作。此处执行的匹配操作相当于进行缓存匹配,该操作的意义在于:在补帧序列上利用缓存可以匹配到当前画面中是否存在已经补过帧的数据,若存在已经补过帧的数据则可以削减冗余数据,达到减少当前补帧图像要发送的数据量的效果。进一步的,本步骤中的匹配操作可以是补帧序列中每一帧数据与当前补帧图像进行匹配的过程。
S102:对当前补帧图像中匹配命中的区域执行缓存编码操作得到编码数据,并对当前补帧图像中未匹配命中的区域执行图像压缩操作得到压缩数据;
其中,本步骤建立在S101对补帧序列与历史补帧画面对应的历史序列执行匹配操作的基础上,经过匹配操作之后可以将补帧图像划分为匹配命中的区域和未匹配命中的区域。
由于匹配命中区域的图像内容在历史补帧画面中已经存在,因此无需对匹配命中区域的图像内容进行传输,可以使数据接收端直接利用缓存中的图像即可。因此,在本步骤中对当前补帧图像中匹配命中的区域执行缓存编码操作得到编码数据,以便将编码数据传输至数据接收端之后,数据接收端可以直接利用编码数据从缓存中获取图像数据进行相关的图像融合操作和图像显示操作。具体的,本实施例中提到的匹配操作指缓存匹配,匹配的过称可以包括:将图像拆分成多个矩形,指出其中哪些矩形命中了缓存,对于命中缓存的区域直接拷贝缓存中对应位置的内容,而不用再经过压缩算法对图像内容处理,降低了数据码流。本步骤中提到的缓存编码操作指:将缓存匹配后的区域命中情况编码成码流的操作。举例说明上述关于缓存匹配和缓存编码的论述,例如:根据缓存匹配可以确定当前图像的[1,1,3,4]矩形区域(1,1指矩形的左上角位置,3,4是矩形的长宽)与之前的编号为X图像的[1,8,3,4]区域是相同的,因此可以将“缓存命中、[1,1,3,4]、X、[1,8,3,4]”这一段数据放到码流里面发送到客户端,这就叫缓存编码。客户端接收到了这条数据就知道这是条缓存匹配的命令,而且是从历史的X图像中拷出[1,8,3,4]区域的图片到当前图像的[1,1,3,4]区域。以上列举缓存匹配与缓存编码的实施例并不视为本申请发明保护范围的限制。上述“对应位置”同样可以用其他维度的位置标定方式表示。凡是在命中缓存后,直接确定缓存中对应位置内容的实现方式,均视为本发明主张的保护范围。
可以理解的是,当前补帧序列中未匹配命中区域的图像内容是当前补帧数据中除了匹配命中的区域之外的区域,当前补帧序列中未匹配命中的区域可以执行图像压缩操作以得到压缩数据。本实施例中当前补帧图像的压缩流程与正常序列的图像相类似,都由缓存、压缩编码构成,所不同的是当前补帧图像压缩只使用高质量有损压缩以保证高品质的画面质量。
作为一种优选的实施方式,可以对未匹配命中的区域执行预设画质的有损压缩操作得到压缩数据。此处提到的预设画质的有损压缩可以为高质量有损压缩,即画面质量符合一定预设条件的有损压缩。高质量有损压缩为具有较高画面质量的有损压缩方法。有损压缩通常有很多可配的参数来在画面质量与压缩率方面取得平衡。高质量有损压缩意味着在压缩时选择画面质量较小的参数,来减少画面失真。此处提到的预设画质指执行有损压缩操作之后的得到的压缩数据的画面质量。画面质量又称图像质量,指机器对一幅图像各项参数的客观评价,一般来说,图像质量客观评价会分成多个评测项目如:曝光、清晰度、颜色、质感、噪音、防手抖、闪光灯、对焦和伪像,每一个评测项目往往还会分成好几个评测小项目,如伪像就要测试锐化、畸变、暗角这些项目。通过测试这些项目进行计算,可以得到某一张图片在各个评测项目上的参数值。具体的,预设画质指上述各项测评项目的标准值。如果发生缓存命中,那么对缓存命中的信息进行编码;否则,使用高质量有损压缩压缩未命中区域。不使用无损压缩是为了避免部分图像被误判成文本图像而引起巨大的性能开销与码流增加,而使用高质量有损压缩可以在码流与性能方面达到平衡。
S103:将编码数据和压缩数据作为补帧数据发送至客户端。
其中,S102得到编码数据和压缩数据的基础上,本步骤将编码数据和压缩数据作为补帧数据发送至客户端,以便客户端对补帧数据执行解码进而完成画面补偿操作。具体的,在客户端收到服务端发来的补帧数据之后,可以分别对有损压缩以及缓存数据两部分进行解码,然后将解压得到的图像融合生成新的画面进行显示。客户端可以根据编码数据实现对于历史补帧图像的复用,将重复使用的历史补帧数据与压缩处理得到的缓存数据合成需要显示的桌面图像。
本实施例在根据补帧指令生成当前补帧图像之后,没有直接对当前补帧图像进行图像压缩并发送,而是先将当前补帧图像与补帧序列中的历史补帧图像进行匹配操作以便去除冗余帧,达到减小传输数据量的效果。历史补帧图像为已经向数据接收端发送过的当前补帧图像,通过将补帧图像与历史补帧图像进行匹配操作能够确定历史补帧图像中已经存在的数据,进而确定当前补帧图像中命中缓存的区域。通过对匹配命中的区域执行缓存编码操作并对未匹配命中的区域执行图像压缩操作,能够使最终得到的补帧数据的数据大小明显小于根据补帧指令生成补帧图像。因此本实施例能够优化画面补偿流程,减少补帧数据的数据量,降低补帧数据导致网络拥塞的几率。
下面请参见图2,图2为本申请实施例所提供的一种补帧序列的匹配方法的流程图,本实施例是对图1对应实施例中S101的进一步介绍,可以将本实施例与图1对应的实施例相结合得到更为优选实施方式,本实施例的具体步骤可以包括:
S201:根据补帧指令确定目标时刻,并确定目标时刻对应的当前显示内容;
其中,当前显示内容为服务端向客户端发送的远程桌面画面;
S202:将当前显示内容对应的原图像设置为当前补帧图像。
其中,在服务端向客户端发送远程桌面画面的具体过程可以为,服务端将原本较高画面质量的原图像数据进行有损图像压缩操作得到当前显示内容,并将当前显示内容传输至客户端。由此可见,当前显示内容和原图像为同一远程桌面内容不同画面质量的两种画面,且原图像的画面质量高于当前显示内容的画面质量,可以根据S201中得到的目标时刻确定当前显示内容对应的原图像。在进行画面补偿操作时,需要服务端主动发送画面质量较高的桌面内容,因此可以根据原图像确定画面补偿所需要的当前补帧图像。正常序列为远程桌面使用过程中服务端发送给客户端的图像,补帧策略会在特定的时刻触发补帧操作从而发送最后画面的高清图像到客户端,这些补发的图像构成了新的补帧序列。正常序列上面有缓存匹配(找当前图像与历史图像的相似地方),本实施例同样在补帧的序列上构建缓存匹配,用来削减补帧图像的数据量。其中,缓存匹配用于在补帧序列中查找历史已经发送过的图像区域。如果当前的补帧画面与历史补帧画面几乎一致的话将能够极大地减小需要发送的数据量。若补帧序列图像的数量远少于正常序列图像,因此当前补帧图像间的相关性也弱于正常序列图像,缓存的命中率将低于正常序列图像,这意味着相比正常序列,当前补帧图像将有大部分区域进入到后续的压缩编码环节。
S203:获取补帧序列中的历史补帧图像;
S204:按照时间顺序依次对补帧序列中的历史补帧图像与当前补帧图像执行匹配操作。
作为一种可选的实施方式,可以在图1对应实施例的S103中将全部补帧数据发送至客户端之前,执行以下操作:
步骤1:判断是否接收到补帧中断命令;若是,则进入步骤2;若否,则继续执行将补帧数据发送至客户端的操作;
其中,补帧中断命令包括绘图指令或客户端交互指令;
步骤2:停止发送补帧数据的流程,并删除补帧数据。
由于发送补帧数据至客户端存在需要一定的时间,若在发送过程中接收到绘图指令、客户端交互指令等任一种补帧中断指令,则可以停止动补帧数据的流程,并将图1实施例所得到的补帧数据删除。进一步的,还可以向客户端发送补帧取消通知信息,以便客户端根据补帧取消通知信息删除已经接受的部分补帧数据。
下面请参见图3,图3为本申请实施例所提供的另一种补帧数据的发送方法的流程图,本实施例是对图1对应的实施例中S103的更为具体的描述,可以将本实施例与图1对应的实施例相结合得到更为优选的实施方式,本实施例的具体步骤可以包括:
S301:根据编码数据和压缩数据生成补帧数据;
S302:对补帧数据执行切片操作得到多个分片数据;
其中,本实施例的目的是实现补帧数据的分片发送,可以根据当前网络状况灵活控制发送速率。首先将补帧数据进行切片,得到若干分片数据,然后将分片数据当作一帧画面投递到帧控单元进行发送。补帧数据的分片既可以使用固定大小进行切片,也可以在发送过程中动态调整分片的大小,此处不对分片数据的具体大小进行限定。在得到多个分片数据之后,可以将每个分片数据都送入帧控单元,由帧控单元判定是否可以被发送。
S303:根据当前可用带宽确定当前发送速率,并将分片数据按照当前发送速率发送至客户端;
其中,当前可用带宽与数据发送速率正相关。具体的,由于将补帧数据化整为零切分为多个分片数据,因此可以降低数据的发送粒度,根据当前可用带宽灵活设置发送速率。请参见图4,图4为分片数据发送的帧控示意图。当检测到网络拥塞时会自动停止发送分片数据。可以利用帧控单元不断探测当前的网络传输状况,具体的实现过程可以是监控协议栈中是否有残留的未发送数据。如果之前的数据都已被发送出去,那么当前分片将能够成功发送;否则当前分片将进入等待环节,直到网络状况恢复即前面的数据都已发送完毕才被准许发送。与服务端分片发送相对应,客户端可以将接收服务端传来的一张张分片数据存入缓冲区,在接收完全部分片数据后才会将数据拼装起来组成一张完整的图像进行显示。
上述补帧数据的发送过程通过将补帧数据进行切片发送,然后将每个分片送入帧控模块进行发送来避免网络的拥塞,能够达到优化画面补偿流程、减少补帧数据的数据量、降低补帧数据导致网络拥塞几率的效果。
作为一种可选的实施方式,可以在将所有分片数据按照当前发送速率发送至客户端之前,执行以下操作:
步骤1、判断是否接收到补帧中断命令;若是,则进入步骤2;若否,则继续执行将补帧数据发送至客户端的操作并结束流程;
其中,补帧中断命令包括绘图指令或客户端交互指令;
步骤2、停止发送分片数据的操作,并删除所有未发送的分片数据。
其中,补帧过程由于数据量大往往需要一定时间才能传输完所有分片,在这期间如果有新的绘图指令或者客户端发来了交互命令,那么需要及时地中断补帧。在新的绘图指令或交互命令到来时,服务端将丢弃所有待发送的分片数据,而客户端则可以丢弃已接收到的分片数据。上述补帧过程的中断机制使得远程桌面可以及时停止正在进行的补帧动作,而对最新的命令做出响应,提升了操作的实时性。
作为对于上述可选实施例的补充,在接收到补帧中断命令时,还可以向客户端发送补帧取消指令,以便客户端根据补帧取消指令删除已接收到的所有分片数据。由于设计了补帧中断机制,可以是补帧过程被服务端新的绘图指令或者客户端的交互命令所中断,提高了画面与交互的实时性。
请参见图5,图5为本申请实施例所提供的一种补帧数据的发送装置的结构示意图;
该装置可以包括:
匹配模块100,用于当接收到补帧指令时,根据补帧指令生成当前补帧图像,并将当前补帧图像与补帧序列中的历史补帧图像执行匹配操作;
图像压缩模块200,用于对当前补帧图像中匹配命中的区域执行缓存编码操作得到编码数据,并对当前补帧图像中未匹配命中的区域执行图像压缩操作得到压缩数据;
数据发送模块300,用于将编码数据和压缩数据作为补帧数据发送至客户端。
本实施例在根据补帧指令生成当前补帧图像之后,没有直接对当前补帧图像进行图像压缩并发送,而是先将当前补帧图像与补帧序列中的历史补帧图像进行匹配操作以便去除冗余帧,达到减小传输数据量的效果。历史补帧图像指已经向数据接收端发送过的当前补帧图像,通过将补帧图像与历史补帧图像进行匹配操作能够确定历史补帧图像中已经存在的数据,进而得到补帧序列中每一帧画面是否命中缓存。通过对匹配命中的区域执行缓存编码操作并对未匹配命中的区域执行图像压缩操作,能够使最终得到的补帧数据的数据大小明显小于根据补帧指令生成补帧图像。因此本实施例能够优化画面补偿流程,减少补帧数据的数据量,降低补帧数据导致网络拥塞的几率。
进一步的,匹配模块100包括:
当前显示内容确定单元,用于根据补帧指令确定目标时刻,并确定目标时刻对应的当前显示内容;其中,当前显示内容为服务端向客户端发送的远程桌面画面;
当前补帧图像确定单元,用于将当前显示内容对应的原图像设置为当前补帧图像;
缓存匹配单元,用于将当前补帧图像与补帧序列中的历史补帧图像执行匹配操作。
进一步的,图像压缩模块200包括:
缓存编码单元,用于对补帧图像中匹配命中的区域执行缓存编码操作得到编码数据;
有损压缩单元,用于对当前补帧图像中未匹配命中的区域执行预设画质的有损压缩操作得到压缩数据。
进一步的,该发送装置还包括:
第一判断模块,用于在将全部补帧数据发送至客户端之前,判断是否接收到补帧中断命令;其中,补帧中断命令包括绘图指令或客户端交互指令;若是,则停止发送补帧数据的流程,并删除补帧数据。
进一步的,数据发送模块300包括:
数据生成单元,用于根据编码数据和压缩数据生成补帧数据;
数据切片单元,用于对补帧数据执行切片操作得到多个分片数据;
帧控单元,用于根据当前可用带宽确定当前发送速率,并将分片数据按照当前发送速率发送至客户端;其中,当前可用带宽与数据发送速率正相关。
进一步的,该发送装置还包括:
第二判断模块,用于在将所有分片数据按照当前发送速率发送至客户端之前,判断是否接收到补帧中断命令;其中,补帧中断命令包括绘图指令或客户端交互指令;若是,则停止发送分片数据的操作,并删除所有未发送的分片数据。
进一步的,该发送装置还包括:
指令发送模块,用于当接收到补帧中断命令时向客户端发送补帧取消指令,以便客户端根据补帧取消指令删除已接收到的所有分片数据。
由于装置部分的实施例与方法部分的实施例相互对应,因此装置部分的实施例请参见方法部分的实施例的描述,这里暂不赘述。
本申请还提供了一种计算机可读存储介质,其上存有计算机程序,该计算机程序被执行时可以实现上述实施例所提供的步骤。该存储介质可以包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
本申请还提供了一种电子设备,可以包括存储器和处理器,所述存储器中存有计算机程序,所述处理器调用所述存储器中的计算机程序时,可以实现上述实施例所提供的步骤。当然所述电子设备还可以包括各种网络接口,电源等组件。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。
还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的状况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
Claims (16)
1.一种补帧数据的发送方法,其特征在于,包括:
当接收到补帧指令时,根据所述补帧指令生成当前补帧图像,并将所述当前补帧图像与补帧序列中的历史补帧图像执行匹配操作;
对所述当前补帧图像中匹配命中的区域执行缓存编码操作得到编码数据,并对所述当前补帧图像中未匹配命中的区域执行图像压缩操作得到压缩数据;其中,所述编码数据用于向客户端指示所述匹配命中的区域在缓存中的位置,以便于所述客户端直接拷贝缓存中对应位置的内容;所述图像压缩操作具体包括对所述未匹配命中的区域执行有损压缩;
将所述编码数据和所述压缩数据作为补帧数据发送至所述客户端。
2.根据权利要求1所述发送方法,其特征在于,所述根据所述补帧指令生成当前补帧图像包括:
根据所述补帧指令确定目标时刻,并确定目标时刻对应的当前显示内容;其中,所述当前显示内容为服务端向所述客户端发送的远程桌面画面;
将所述当前显示内容对应的原图像设置为所述当前补帧图像。
3.根据权利要求1所述发送方法,其特征在于,对所述当前补帧图像中未匹配命中的区域执行图像压缩操作得到压缩数据包括:
对所述当前补帧图像中未匹配命中的区域执行预设画质的有损压缩操作得到所述压缩数据。
4.根据权利要求1所述发送方法,其特征在于,在将全部所述补帧数据发送至客户端之前,还包括:
判断是否接收到补帧中断命令;其中,所述补帧中断命令包括绘图指令或客户端交互指令;
若是,则停止发送所述补帧数据的流程,并删除所述补帧数据。
5.根据权利要求1至3任一项所述发送方法,其特征在于,将所述编码数据和所述压缩数据作为补帧数据发送至客户端包括:
根据所述编码数据和所述压缩数据生成所述补帧数据;
对所述补帧数据执行切片操作得到多个分片数据;
根据当前可用带宽确定当前发送速率,并将所述分片数据按照所述当前发送速率发送至所述客户端;其中,所述当前可用带宽与所述数据发送速率正相关。
6.根据权利要求5所述发送方法,其特征在于,在将所有所述分片数据按照所述当前发送速率发送至所述客户端之前,还包括:
判断是否接收到补帧中断命令;其中,所述补帧中断命令包括绘图指令或客户端交互指令;
若是,则停止发送所述分片数据的操作,并删除所有未发送的分片数据。
7.根据权利要求6所述发送方法,其特征在于,当接收到所述补帧中断命令时,还包括:
向所述客户端发送补帧取消指令,以便所述客户端根据所述补帧取消指令删除已接收到的所有分片数据。
8.一种补帧数据的发送装置,其特征在于,包括:
匹配模块,用于当接收到补帧指令时,根据所述补帧指令生成当前补帧图像,并将所述当前补帧图像与补帧序列中的历史补帧图像执行匹配操作;
图像压缩模块,用于对所述当前补帧图像中匹配命中的区域执行缓存编码操作得到编码数据,并对所述当前补帧图像中未匹配命中的区域执行图像压缩操作得到压缩数据;其中,所述编码数据用于向客户端指示所述匹配命中的区域在缓存中的位置,以便于所述客户端直接拷贝缓存中对应位置的内容;所述图像压缩操作具体包括对所述未匹配命中的区域执行有损压缩;
数据发送模块,用于将所述编码数据和所述压缩数据作为补帧数据发送至所述客户端。
9.根据权利要求8所述发送装置,其特征在于,所述匹配模块包括:
当前显示内容确定单元,用于根据所述补帧指令确定目标时刻,并确定目标时刻对应的所述当前显示内容;其中,所述当前显示内容为服务端向所述客户端发送的远程桌面画面;
当前补帧图像确定单元,用于将所述当前显示内容对应的原图像设置为所述当前补帧图像;
缓存匹配单元,用于将所述当前补帧图像与补帧序列中的历史补帧图像执行匹配操作。
10.根据权利要求8所述发送装置,其特征在于,所述图像压缩模块包括:
缓存编码单元,用于对所述补帧图像中匹配命中的区域执行缓存编码操作得到编码数据;
有损压缩单元,用于对所述当前补帧图像中未匹配命中的区域执行预设画质的有损压缩操作得到所述压缩数据。
11.根据权利要求8所述发送装置,其特征在于,还包括:
第一判断模块,用于在将全部所述补帧数据发送至客户端之前,判断是否接收到补帧中断命令;其中,所述补帧中断命令包括绘图指令或客户端交互指令;若是,则停止发送所述补帧数据的流程,并删除所述补帧数据。
12.根据权利要求8至10任一项所述发送装置,其特征在于,所述数据发送模块包括:
数据生成单元,用于根据所述编码数据和所述压缩数据生成所述补帧数据;
数据切片单元,用于对所述补帧数据执行切片操作得到多个分片数据;
帧控单元,用于根据当前可用带宽确定当前发送速率,并将所述分片数据按照所述当前发送速率发送至所述客户端;其中,所述当前可用带宽与所述数据发送速率正相关。
13.根据权利要求12所述发送装置,其特征在于,还包括:
第二判断模块,用于在将所有所述分片数据按照所述当前发送速率发送至所述客户端之前,判断是否接收到补帧中断命令;其中,所述补帧中断命令包括绘图指令或客户端交互指令;若是,则停止发送所述分片数据的操作,并删除所有未发送的分片数据。
14.根据权利要求13所述发送装置,其特征在于,还包括:
指令发送模块,用于当接收到所述补帧中断命令时向所述客户端发送补帧取消指令,以便所述客户端根据所述补帧取消指令删除已接收到的所有分片数据。
15.一种电子设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至7任一项所述补帧数据的发送方法的步骤。
16.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述补帧数据的发送方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910300001.0A CN111836117B (zh) | 2019-04-15 | 2019-04-15 | 一种补帧数据的发送方法、装置及相关组件 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910300001.0A CN111836117B (zh) | 2019-04-15 | 2019-04-15 | 一种补帧数据的发送方法、装置及相关组件 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111836117A CN111836117A (zh) | 2020-10-27 |
CN111836117B true CN111836117B (zh) | 2022-08-09 |
Family
ID=72914717
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910300001.0A Active CN111836117B (zh) | 2019-04-15 | 2019-04-15 | 一种补帧数据的发送方法、装置及相关组件 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111836117B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101888552A (zh) * | 2010-06-28 | 2010-11-17 | 厦门大学 | 一种基于局部补偿的跳帧编解码方法和装置 |
EP2908547A4 (en) * | 2012-10-10 | 2015-08-19 | Fujitsu Ltd | INFORMATION PROCESSING DEVICE, INFORMATION PROCESSING SYSTEM, INFORMATION PROCESSING PROGRAM, AND METHOD OF TRANSMITTING / RECEIVING MOBILE IMAGE DATA |
CN106210767A (zh) * | 2016-08-11 | 2016-12-07 | 上海交通大学 | 一种智能提升运动流畅性的视频帧率上变换方法及*** |
CN106658170A (zh) * | 2016-12-20 | 2017-05-10 | 福州瑞芯微电子股份有限公司 | 一种降低虚拟现实延迟的方法和装置 |
CN109496333A (zh) * | 2017-06-26 | 2019-03-19 | 华为技术有限公司 | 一种丢帧补偿方法及设备 |
-
2019
- 2019-04-15 CN CN201910300001.0A patent/CN111836117B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101888552A (zh) * | 2010-06-28 | 2010-11-17 | 厦门大学 | 一种基于局部补偿的跳帧编解码方法和装置 |
EP2908547A4 (en) * | 2012-10-10 | 2015-08-19 | Fujitsu Ltd | INFORMATION PROCESSING DEVICE, INFORMATION PROCESSING SYSTEM, INFORMATION PROCESSING PROGRAM, AND METHOD OF TRANSMITTING / RECEIVING MOBILE IMAGE DATA |
CN106210767A (zh) * | 2016-08-11 | 2016-12-07 | 上海交通大学 | 一种智能提升运动流畅性的视频帧率上变换方法及*** |
CN106658170A (zh) * | 2016-12-20 | 2017-05-10 | 福州瑞芯微电子股份有限公司 | 一种降低虚拟现实延迟的方法和装置 |
CN109496333A (zh) * | 2017-06-26 | 2019-03-19 | 华为技术有限公司 | 一种丢帧补偿方法及设备 |
Also Published As
Publication number | Publication date |
---|---|
CN111836117A (zh) | 2020-10-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8320451B2 (en) | Replacement of frame data in a video stream signal | |
WO2017193821A1 (zh) | 云桌面图像处理方法、服务器、客户端及计算机存储介质 | |
CN106713913B (zh) | 视频图像帧发送方法及装置、视频图像帧接收方法及装置 | |
WO2018103568A1 (zh) | 云桌面内容编码与解码方法及装置、*** | |
RU2011142767A (ru) | Система и способ сжатия видео с использованием обратной связи, включающей в себя данные, связанные с успешным приемом видеосодержимого | |
CN106998485B (zh) | 视频直播方法及装置 | |
CN109040786B (zh) | 摄像头数据的传输方法、装置、***及存储介质 | |
US8594442B2 (en) | Method and device for performing image compression coding | |
US10506245B2 (en) | Video data processing using a ring buffer | |
CN105338323A (zh) | 一种视频监控方法及装置 | |
CN108696771B (zh) | 一种视频播放方法及装置 | |
CN112235616B (zh) | 一种视频传输方法、装置、设备及介质 | |
CN111726657A (zh) | 直播视频的播放处理方法、装置及服务器 | |
CN110519640B (zh) | 视频处理方法、编码器、cdn服务器、解码器、设备及介质 | |
US20120141039A1 (en) | Virtualization server for presentation virtualization and image data encoding method | |
CN111245879A (zh) | 一种虚拟桌面的桌面内容传输方法、***及相关组件 | |
CN114153411B (zh) | 面向远程终端管控的图像优化传输*** | |
CN111836117B (zh) | 一种补帧数据的发送方法、装置及相关组件 | |
CN111432213A (zh) | 用于视频和图像压缩的自适应贴片数据大小编码 | |
CN111866526A (zh) | 一种直播业务处理方法和装置 | |
CN111836092A (zh) | 一种虚拟桌面的数据处理方法、装置及相关组件 | |
CN113038178A (zh) | 一种视频帧的传输控制方法及装置 | |
WO2023179348A1 (zh) | 数据传输方法、云桌面虚拟机、云终端及可读存储介质 | |
US10791350B2 (en) | System and method for optimization of video bitrate | |
CN116668741A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |