CN115802047A - 一种视频数据传输方法及相关装置 - Google Patents
一种视频数据传输方法及相关装置 Download PDFInfo
- Publication number
- CN115802047A CN115802047A CN202310070391.3A CN202310070391A CN115802047A CN 115802047 A CN115802047 A CN 115802047A CN 202310070391 A CN202310070391 A CN 202310070391A CN 115802047 A CN115802047 A CN 115802047A
- Authority
- CN
- China
- Prior art keywords
- frame image
- image
- current frame
- difference
- previous frame
- 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 69
- 230000005540 biological transmission Effects 0.000 title claims abstract description 45
- 230000011218 segmentation Effects 0.000 claims abstract description 81
- 238000004590 computer program Methods 0.000 claims description 11
- 238000005192 partition Methods 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 5
- 230000000694 effects Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 230000006835 compression Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000004806 packaging method and process Methods 0.000 description 2
- 230000002457 bidirectional effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
Images
Landscapes
- Image Analysis (AREA)
Abstract
本申请公开了一种视频数据传输方法及相关装置,涉及数据传输技术领域,包括:根据设定的分割方式分割当前帧图像,得到多个图像网格;比对所述当前帧图像的像素与上一帧图像的像素;根据比对结果,确定所述当前帧图像与所述上一帧图像存在差异的所述图像网格;将当前帧图像与上一帧图像存在差异的所述图像网格发送给客户端。该视频数据传输方法能够减少对CPU资源的占用,降低CPU的负担。
Description
技术领域
本申请涉及数据传输技术领域,特别涉及一种视频数据传输方法;还涉及一种视频数据传输装置、设备以及计算机可读存储介质。
背景技术
随着企业信息化建设的不断推进,数据中心作为网络平台控制的中心,其建设规模不断扩大,设备管理日益复杂,对数据中心设备进行现场管理维护的传统方式已明显落后。在众多的数据中心管理方案中,KVM(Keyboard Video Mouse,键盘、显示器、鼠标)是一种较好的选择。KVM的应用让企业的数据中心摆脱了线缆长度的束缚。KVM是指使用一组键盘、鼠标和显示器,实现对一台或多台设备的远程控制。KVM需要KVM服务端与KVM客户端的配合来实现。其中,KVM服务端安装在需要远程控制的设备上,KVM客户端安装在管理设备上。KVM服务端向KVM客户端发送视频数据,KVM客户端向KVM服务端发送键盘和鼠标数据。
目前,在KVM服务端向KVM客户端发送视频数据的方案中,使用I帧(帧内编码帧)、P帧(帧间预测编码帧)或B帧(双向预测编码帧)对视频进行压缩编码来减少传输视频的数据量,但复杂的压缩算法会增加CPU(Central Processing Unit,中央处理器)的负担。
因此,如何减少对CPU资源的占用,降低CPU的负担已成为本领域技术人员亟待解决的技术问题。
发明内容
本申请的目的是提供一种视频数据传输方法,能够减少对CPU资源的占用,降低CPU的负担。本申请的另一个目的是提供一种视频数据传输装置、设备以及计算机可读存储介质,均具有上述技术效果。
为解决上述技术问题,本申请提供了一种视频数据传输方法,包括:
根据设定的分割方式分割当前帧图像,得到多个图像网格;
比对所述当前帧图像的像素与上一帧图像的像素;
根据比对结果,确定所述当前帧图像与所述上一帧图像存在差异的所述图像网格;
将当前帧图像与上一帧图像存在差异的所述图像网格发送给客户端。
可选的,所述根据设定的分割方式分割当前帧图像包括:
根据设定的分割方式等分所述当前帧图像。
可选的,所述比对所述当前帧图像的像素与上一帧图像的像素包括:
逐一将所述当前帧图像的像素与上一帧图像中对应的像素进行比对,并通过图像差异记录表记录所述当前帧图像与上一帧图像存在差异的像素。
可选的,所述通过图像差异记录表记录所述当前帧图像与上一帧图像存在差异的像素包括:
将所述当前帧图像与上一帧图像存在差异的像素对应的二维数组的成员赋值为第一目标数值;所述二维数组的下标与所述像素的坐标一一对应。
可选的,所述根据比对结果,确定所述当前帧图像与所述上一帧图像存在差异的所述图像网格包括:
判断所述图像网格中是否包含当前帧图像与上一帧图像存在差异的像素;
若所述图像网格中包含当前帧图像与上一帧图像存在差异的像素,则确定所述图像网格为所述当前帧图像与所述上一帧图像存在差异的图像网格。
可选的,所述将当前帧图像与上一帧图像存在差异的所述图像网格发送给客户端包括:
将当前帧图像与上一帧图像存在差异的所述图像网格添加描述信息后,发送给所述客户端;所述描述信息包括所述图像网格的起始坐标与所述图像网格的宽度与高度。
可选的,所述将当前帧图像与上一帧图像存在差异的所述图像网格发送给客户端包括:
将相邻的当前帧图像与上一帧图像存在差异的所述图像网格进行合并,并将合并后的图像网格与未发生合并的当前帧图像与上一帧图像存在差异的图像网格发送给所述客户端。
可选的,所述将相邻的当前帧图像与上一帧图像存在差异的所述图像网格进行合并包括:
合并横向相邻的图像网格;
在横向相邻的所述图像网格合并后,合并纵向相邻且宽度相同的图像网格。
可选的,所述根据设定的分割方式分割当前帧图像前还包括:
判断所述当前帧图像与所述上一帧图像的大小是否相同以及所述当前帧图像是否为第一帧图像;
若所述当前帧图像与所述上一帧图像的大小相同且所述当前帧图像不是第一帧图像,则根据设定的分割方式分割所述当前帧图像;
若所述当前帧图像与所述上一帧图像的大小不同或所述当前帧图像是第一帧图像,则将所述当前帧图像整体发送给所述客户端。
可选的,所述将当前帧图像与上一帧图像存在差异的所述图像网格发送给客户端前还包括:
判断所述当前帧图像与所述上一帧图像存在差异的所述图像网格的比例是否达到预设阈值;
若未达到所述预设阈值,则将当前帧图像与上一帧图像存在差异的所述图像网格发送给客户端;
若达到所述预设阈值,则将所述当前帧图像整体发送给所述客户端。
可选的,还包括:
通过图像网格差异记录表记录所述当前帧图像与所述上一帧图像存在差异的图像网格。
可选的,所述通过图像网格差异记录表记录所述图像网格为所述当前帧图像与所述上一帧图像存在差异的图像网格包括:
通过的二维数组记录所述当前帧图像与所述上一帧图像存在差异的图像网格的左上顶点的坐标与右下顶点的坐标,以及将表征所述图像网格内的像素是否被改变的标记赋值为第二目标值。
可选的,还包括:
合并横向相邻的图像网格后,更新发生合并的最左侧的图像网格的右下顶点的x坐标值。
可选的,还包括:
合并纵向相邻且宽度相同的图像网格后,更新发生合并的左上角的图像网格的右下顶点的y坐标值。
可选的,还包括:
接收所述客户端设定的所述分割方式。
可选的,还包括:
生成分割方式列表,并将所述分割方式列表发送给所述客户端,以使所述客户端根据所述分割方式列表更新分割方式选择菜单;所述分割方式列表包括至少一种所述分割方式。
可选的,所述生成分割方式列表包括:
求取横向分辨率与纵向分辨率的所有因子;
组合所述横向分辨率的因子与所述纵向分辨率的因子,得到所述分割方式列表。
为解决上述技术问题,本申请还提供了一种视频数据传输装置,包括:
分割模块,用于根据设定的分割方式分割当前帧图像,得到多个图像网格;
比对模块,用于比对所述当前帧图像的像素与上一帧图像的像素;
确定模块,用于根据比对结果,确定所述当前帧图像与所述上一帧图像存在差异的所述图像网格;
发送模块,用于将当前帧图像与上一帧图像存在差异的所述图像网格发送给客户端。
为解决上述技术问题,本申请还提供了一种视频数据传输设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如上任一项所述的视频数据传输方法的步骤。
为解决上述技术问题,本申请还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上任一项所述的视频数据传输方法的步骤。
本申请所提供的视频数据传输方法,包括:根据设定的分割方式分割当前帧图像,得到多个图像网格;比对所述当前帧图像的像素与上一帧图像的像素;根据比对结果,确定所述当前帧图像与所述上一帧图像存在差异的所述图像网格;将当前帧图像与上一帧图像存在差异的所述图像网格发送给客户端。
可见,本申请所提供的视频数据传输方法,通过分割当前帧图像以及将所述当前帧图像的像素与上一帧图像的像素进行比对,确定出当前帧图像中与上一帧图像存在差异的图像网格,即确定出当前帧图像中相较于上一帧图像发生改变的部分,进而将发生改变的部分发送给客户端,而不是将当前帧图像整体发送给客户端,这样可以有效减少视频数据的传输量,能够减少对CPU资源的占用,降低CPU的负担。
本申请所提供的视频数据传输装置、设备以及计算机可读存储介质均具有上述技术效果。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对现有技术和实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例所提供的一种视频数据传输方法的流程示意图;
图2为本申请实施例所提供的一种差异像素示意图;
图3为本申请实施例所提供的一种生成图像网格差异记录表的示意图;
图4为本申请实施例所提供的一种服务端主线程流程;
图5为本申请实施例所提供的一种客户端执行流程;
图6为本申请实施例所提供的一种视频数据传输装置的示意图;
图7为本申请实施例所提供的一种视频数据传输设备的示意图。
具体实施方式
本申请的核心是提供一种视频数据传输方法,能够减少对CPU资源的占用,降低CPU的负担。本申请的另一个核心是提供一种视频数据传输装置、设备以及计算机可读存储介质,均具有上述技术效果。
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
请参考图1,图1为本申请实施例所提供的一种视频数据传输方法的流程示意图,参考图1所示,该方法主要包括:
S101:根据设定的分割方式分割当前帧图像,得到多个图像网格;
分割方式由客户端设定。服务端接收客户端设置的分割方式,并根据设定的分割方式分割当前帧图像,得到多个图像网格。当前帧图像是指当前的一帧图像。
其中,在一种具体的实施方式中,所述根据设定的分割方式分割当前帧图像包括:
根据设定的分割方式等分所述当前帧图像。
本实施例对当前帧图像进行均等分割。服务端接收客户端设置的分割方式,并根据该分割方式将当前帧图像等分为m×n个图像网格,m表示列,n表示行。m与n的大小由分割方式指定。
例如,分割方式为2×2,服务端将当前帧图像等分为2×2个图像网格。
S102:比对所述当前帧图像的像素与上一帧图像的像素;
比对所述当前帧图像的像素与上一帧图像的像素是为了识别出当前帧图像与上一帧图像中存在差异的像素,进而根据当前帧图像与上一帧图像中存在差异的像素确定当前帧图像与所述上一帧图像存在差异的图像网格。
在一种具体的实施方式中,所述比对所述当前帧图像的像素与上一帧图像的像素包括:
逐一将所述当前帧图像的像素与上一帧图像中对应的像素进行比对,并通过图像差异记录表记录所述当前帧图像与上一帧图像存在差异的像素。
其中,所述通过图像差异记录表记录所述当前帧图像与上一帧图像存在差异的像素包括:
将所述当前帧图像与上一帧图像存在差异的像素对应的二维数组的成员赋值为第一目标数值;所述二维数组的下标与所述像素的坐标一一对应。
本实施例通过图像差异记录表标记所述当前帧图像与上一帧图像存在差异的像素。图像差异记录表是一个二维数组,该二维数组的宽和高分别对应图像的分辨率。二维数组中的每个数组成员对应一个像素,二维数组的下标与像素的坐标一一对应。对于当前帧图像与上一帧图像存在差异的像素,将其对应的成员标记为第一目标数值,对于当前帧图像与上一帧图像不存在差异的像素,将其对应的成员标记为其他数值,以与当前帧图像与上一帧图像存在差异的像素作区分。
例如,将当前帧图像与上一帧图像存在差异的像素对应的成员标记为1,将当前帧图像与上一帧图像不存在差异的像素对应的成员标记为0。
在对所述当前帧图像的像素与上一帧图像的像素进行差异比对之前,将图像差异记录表全部清零,即将二维数组的各个成员全部清零。逐一进行像素比对。如果当前帧图像的像素与上一帧图像中对应的像素存在差异,则更新对应的成员为1。如果当前帧图像的像素与上一帧图像中对应的像素不存在差异,则保持对应的成员为0。
例如,参考图2所示的分辨率为16×16时,当前帧图像与上一帧图像存在差异的像素的坐标为:(12,0)、(10,2)、(14,1)与(13,3)。则坐标为(12,0)、(10,2)、(14,1)与(13,3)的像素对应的成员为1。图2中空白方框的值全部为0。
S103:根据比对结果,确定所述当前帧图像与所述上一帧图像存在差异的所述图像网格;
其中,所述根据比对结果,确定所述当前帧图像与所述上一帧图像存在差异的所述图像网格包括:
判断所述图像网格中是否包含当前帧图像与上一帧图像存在差异的像素;
若所述图像网格中包含当前帧图像与上一帧图像存在差异的像素,则确定所述图像网格为所述当前帧图像与所述上一帧图像存在差异的图像网格。
即如果图像网格包含至少一个当前帧图像与上一帧图像存在差异的像素,该图像网格为所述当前帧图像与所述上一帧图像存在差异的图像网格。图像网格包含的当前帧图像与上一帧图像存在差异的像素越多,该图像网格与上一帧图像的差异越大。
例如,当前帧图像与上一帧图像存在差异的像素的坐标为:(12,0)、(10,2)、(14,1)与(13,3),若分割得到的图像网格包含坐标为(12,0)的像素,则该图像网格为所述当前帧图像与所述上一帧图像存在差异的图像网格。
上述确定当前帧图像与上一帧图像存在差异的图像网格的方式简单易行,对CPU的占用较小。
在一些实施例中,还包括:
通过图像网格差异记录表记录所述当前帧图像与所述上一帧图像存在差异的图像网格。
其中,所述通过图像网格差异记录表记录所述图像网格为所述当前帧图像与所述上一帧图像存在差异的图像网格包括:
通过的二维数组记录所述当前帧图像与所述上一帧图像存在差异的图像网格的左上顶点的坐标与右下顶点的坐标,以及将表征所述图像网格内的像素是否被改变的标记赋值为第二目标值。
本实施例中图像网格差异记录表使用二维数组。每个图像网格所在的行与列作为二维数组的下标,每个图像网格有其对应的成员,数组的成员的结构如下:
typedef struct {
uint16_t start_x;
uint16_t start_y;
uint16_t end_x;
uint16_t end_y;
bool is_changed;
} RECT_INFO_t;
start_x和start_y为图像网格的左上顶点的坐标,end_x和end_y为图像网格的右下顶点的坐标,is_changed是表征所述图像网格内的数据是否被改变的标记。
分割方式确定后,每个图像网格的start_x、start_y、end_x、end_y便随之被确定下来。
第二目标值可以为1。生成图像网格差异记录表时,赋值图像网格差异记录表中所有成员的start_x、start_y、end_x、end_y,并且将所有成员的is_changed赋值为0。依次判断每个图像网格是否发生改变。如果发生改变,则设置对应的成员的is_changed为1。判断图像网格是否发生改变的方式为根据图像差异记录表判断对应图像网格中的像素对应的成员是否为1。如果为1,则图像网格发生改变。
例如,16×16分辨率的图像、分割方式为2×2,图像网格差异记录表的各个成员状态如图3所示。仅有右上角的图像网格发生了改变,其对应的成员的is_changed赋值为1。
S104:将当前帧图像与上一帧图像存在差异的所述图像网格发送给客户端。
确定出当前帧图像与上一帧图像存在差异的所述图像网格后,将存在差异的图像网格发送给客户端。由于图像网格只是一部分图像,此时发送的视频数据相较于图像整体,明显减少。客户端解析服务端发送的图像网格,并更新服务端发送来的图像网格。
在一些实施例中,所述将当前帧图像与上一帧图像存在差异的所述图像网格发送给客户端包括:
将当前帧图像与上一帧图像存在差异的所述图像网格添加描述信息后,发送给所述客户端;所述描述信息包括所述图像网格的起始坐标与所述图像网格的宽度与高度。
图像网格只是图像的一部分,客户端更新图像网格需要获知图像网格的坐标与大小,以便正确显示图像。因此,在将当前帧图像与上一帧图像存在差异的所述图像网格打包发送给客户端时,为每一个需要发送的图像网格添加相应的描述信息,然后发送给所述客户端。具体可以在需要发送的每个图像网格的最前方增加相应的描述信息。描述信息的结构体如下:
typedef struct {
uint16_t len;
uint16_t x;
uint16_t y;
uint16_t width;
uint16_t height;
} DES_INFO_t;
其中,len为描述信息的总字节数,x、y为图像网格的起始坐标,width、height为图像网格的宽度和高度。
在一些实施例中,所述将当前帧图像与上一帧图像存在差异的所述图像网格发送给客户端包括:
将相邻的当前帧图像与上一帧图像存在差异的所述图像网格进行合并,并将合并后的图像网格与未发生合并的当前帧图像与上一帧图像存在差异的图像网格发送给所述客户端。
为了减少描述信息,本实施例在向客户端发送图像网格之前,首先对相邻的图像网格进行合并。
其中,所述将相邻的当前帧图像与上一帧图像存在差异的所述图像网格进行合并可以包括:
合并横向相邻的图像网格;
在横向相邻的所述图像网格合并后,合并纵向相邻且宽度相同的图像网格。
对图像网格差异记录表进行两次遍历,第一次遍历,合并横向相邻的图像网格,并更新发生合并的最左边图像网格的end_x。第二次遍历,合并纵向相邻且宽度相同的图像网格,并更新发生合并的最上角图像网格的end_y。
上述实施例先进行横向合并,后进行纵向合并,除此合并方式外,还可以先进行纵向合并,后进行横向合并,在此不再赘述。
在上述实施例的基础上,作为一种具体的实施方式,所述根据设定的分割方式分割当前帧图像前还包括:
判断所述当前帧图像与所述上一帧图像的大小是否相同以及所述当前帧图像是否为第一帧图像;
若所述当前帧图像与所述上一帧图像的大小相同且所述当前帧图像不是第一帧图像,则根据设定的分割方式分割所述当前帧图像;
若所述当前帧图像与所述上一帧图像的大小不同或所述当前帧图像是第一帧图像,则将所述当前帧图像整体发送给所述客户端。
如果当前帧图像与上一帧图像的大小不同,即当前帧图像与上一帧图像的分辨率不同,此时将所述当前帧图像整体发送给所述客户端。如果当前帧图像是第一帧图像,此时同样将当前帧图像整体发送给客户端。如果当前帧图像与上一帧图像的大小相同且当前帧图像不是第一帧图像,此时执行步骤S101以及后续步骤。
在上述实施例的基础上,作为一种具体的实施方式,还包括:
生成分割方式列表,并将所述分割方式列表发送给所述客户端,以使所述客户端根据所述分割方式列表更新分割方式选择菜单;所述分割方式列表包括至少一种所述分割方式。
在客户端侧,用户可以根据实际情况更加灵活的选择合适的分割方式。
其中,所述生成分割方式列表包括:
求取横向分辨率与纵向分辨率的所有因子;
组合所述横向分辨率的因子与所述纵向分辨率的因子,得到所述分割方式列表。
具体而言,分别求出横向分辨率和纵向分辨率的所有因子,然后再对各个因子进行组合,得到分割方式列表。
以16×9分辨率的图像为例,16的所有因子为[1,2,4,8,16],共5个。9的所有因子为[1,3,9],共3个。因此分割方式为5×3,共15种,分别为:1×1、2×1、4×1、8×1、16×1、1×3、2×3、4×3、8×3、16×3、1×9、2×9、4×9、8×9、16×9。相应的分割列表为:[1×1,2×1,4×1,8×1,16×1,1×3,2×3,4×3,8×3,16×3,1×9,2×9,4×9,8×9,16×9]。
在上述实施例的基础上,作为一种具体的实施方式,所述将当前帧图像与上一帧图像存在差异的所述图像网格发送给客户端前还包括:
判断所述当前帧图像与所述上一帧图像存在差异的所述图像网格的比例是否达到预设阈值;
若未达到所述预设阈值,则将当前帧图像与上一帧图像存在差异的所述图像网格发送给客户端;
若达到所述预设阈值,则将所述当前帧图像整体发送给所述客户端。
例如,分割得到的图像网格共24个,其中的23个图像网格与上一帧图像存在差异。与上一帧图像存在差异的图像网格的比例为23/24,如果预设阈值为60%,则此时可以选择将当前帧图像整体发送给所述客户端。
以下结合服务端与客户端,阐述一种具体的实施方式:
结合图4所示,图4中的KVM服务端即为上文中的服务端,KVM客户端即为上文中的客户端。
服务端可以分为两个线程:主线程与子线程。主线程完成的主要工作包括计算分割方式列表、对比图像差异、计算图像网格脏序列、图像网格合并、以及向客户端打包并发送数据。图像网格脏序列是当前帧图像与上一帧图像存在差异的图像网格的集合。子线程负责等待接收客户端调整的分割方式,并且通知主线程调整分割方式。
参考图5所示,服务端获取到当前帧图像并进行解析。如果图像大小发生了改变或者当前帧图像为第一帧图像,则生成分割方式列表,并发送给客户端,以及将当前帧图像整体标记为变化矩形,即当前帧图像整体是与上一帧图像存在差异的图像网格。将当前帧图像整体标记为变化矩形是为了将当前帧图像整体发送到客户端,此时分割方式为1x1,依然可生成图像网格脏序列,该图像网格脏序列仅有1个成员(即当前帧图像整体),其描述信息成员取值:[x和y均为0,width和height分别为当前帧图像整体的宽和高。
如果图像大小没有发生改变且当前帧图像不是第一帧图像,则比对当前帧图像与上一帧图像的差异,生成图像差异记录表。根据分割方式与图像差异记录表,生成图像网格差异记录表。对图像脏网格(与上一帧图像存在差异的图像网格)进行合并,并将合并后的图像网格以及未发生合并的图像脏网格打包发送到客户端。服务端缓存当前帧图像,作为下一帧图像的上一帧图像。
服务端生成分割方式列表的方式为:服务端分别求出横向分辨率和纵向分辨率的所有因子,然后再对包含所有因子进行组合,得到分割方式列表。
服务端生成图像差异记录表的方式为:对当前帧图像和上一帧图像的像素数据进行比对,将差异结果保存在图像差异记录表。图像差异记录表是一个二维数组,二维数组的宽和高分别对应图像的分辨率。二维数组中每个成员对应一个指定的像素,为0表示对应像素未发生改变,为1代表对应像素发生改变。其中,像素的坐标和二维数组的下标一一对应。
在差异对比之前,需要将图像差异记录表全部清零,然后逐个像素进行差异对比,如果有差异,则更新图像差异记录表中对应成员为1,否则,不进行操作。
服务端生成图像网格差异记录表的方式为:将当前帧图像按照分割方式进行等分。图像网格差异记录表使用二维数组保存,每个图像网格使用所在的行和列作为二维数组的下标。二维数组的成员记录图像网格左上角的坐标、图像网格右下角的坐标,以及图像网格内的数据是否被改变。分割方式确认后,每个图像网格的左上角坐标与右下角坐标随之确定,直到图像的分辨率/分割方式发生改变。
生成图像网格差异记录表时,赋值图像网格差异记录表中所有成员的左上角坐标与右下角坐标,并且将表征图像网格内的数据是否被改变的标记赋值为0。依次判断每个图像网格内的数据是否发生改变,如果改变则设置对应成员的表征图像网格内的数据是否被改变的标记为1。
客户端可以分为三个部分:数据包处理、canvas画布、分割方式下拉选择菜单。数据包处理负责解析服务端发来的图像网格脏序列/分割方式列表,并且向服务端发送选中的分割方式。canvas画布更新服务端发来的图像网格。分割方式下拉菜单根据服务端发来的分割方式列表,生成下拉选择菜单,提供给用户进行选择。
参考图6所示,客户端解析服务端发送的数据包。如果数据包为图像网格脏序列,则解析图像网格脏序列,根据其中的描述信息在canvas上绘图。如果数据包是分割方式列表,则解析分割方式列表,在客户端上显示分割方式下拉选择菜单。
综上所述,本申请所提供的视频数据传输方法,包括:根据设定的分割方式分割当前帧图像,得到多个图像网格;比对所述当前帧图像的像素与上一帧图像的像素;根据比对结果,确定所述当前帧图像与所述上一帧图像存在差异的所述图像网格;将当前帧图像与上一帧图像存在差异的所述图像网格发送给客户端。可见,本申请所提供的视频数据传输方法,通过分割当前帧图像以及将所述当前帧图像的像素与上一帧图像的像素进行比对,确定出当前帧图像中与上一帧图像存在差异的图像网格,即确定出当前帧图像中相较于上一帧图像发生改变的部分,进而将发生改变的部分发送给客户端,而不是将当前帧图像整体发送给客户端,这样可以有效减少视频数据的传输量,能够减少对CPU资源的占用,降低CPU的负担。
本申请还提供了一种视频数据传输装置,下文描述的该装置可以与上文描述的方法相互对应参照。请参考图6,图6为本申请实施例所提供的一种视频数据传输装置的示意图,结合图6所示,该装置包括:
分割模块10,用于根据设定的分割方式分割当前帧图像,得到多个图像网格;
比对模块20,用于比对所述当前帧图像的像素与上一帧图像的像素;
确定模块30,用于根据比对结果,确定所述当前帧图像与所述上一帧图像存在差异的所述图像网格;
发送模块40,用于将当前帧图像与上一帧图像存在差异的所述图像网格发送给客户端。
在上述实施例的基础上,作为一种具体的实施方式,分割模块10具体用于:
根据设定的分割方式等分所述当前帧图像。
在上述实施例的基础上,作为一种具体的实施方式,比对模块20具体用于:
逐一将所述当前帧图像的像素与上一帧图像中对应的像素进行比对,并通过图像差异记录表记录所述当前帧图像与上一帧图像存在差异的像素。
在上述实施例的基础上,作为一种具体的实施方式,比对模块20具体用于:
将所述当前帧图像与上一帧图像存在差异的像素对应的二维数组的成员赋值为第一目标数值;所述二维数组的下标与所述像素的坐标一一对应。
在上述实施例的基础上,作为一种具体的实施方式,确定模块30包括:
判断单元,用于判断所述图像网格中是否包含当前帧图像与上一帧图像存在差异的像素;
确定单元,用于若所述图像网格中包含当前帧图像与上一帧图像存在差异的像素,则确定所述图像网格为所述当前帧图像与所述上一帧图像存在差异的图像网格。
在上述实施例的基础上,作为一种具体的实施方式,发送模块40具体用于:
将当前帧图像与上一帧图像存在差异的所述图像网格添加描述信息后,发送给所述客户端;所述描述信息包括所述图像网格的起始坐标与所述图像网格的宽度与高度。
在上述实施例的基础上,作为一种具体的实施方式,发送模块40具体用于:
将相邻的当前帧图像与上一帧图像存在差异的所述图像网格进行合并,并将合并后的图像网格与未发生合并的当前帧图像与上一帧图像存在差异的图像网格发送给所述客户端。
在上述实施例的基础上,作为一种具体的实施方式,发送模块40包括:
第一合并单元,用于合并横向相邻的图像网格;
第二合并单元,用于在横向相邻的所述图像网格合并后,合并纵向相邻且宽度相同的图像网格。
在上述实施例的基础上,作为一种具体的实施方式,还包括:
第一判断模块,用于判断所述当前帧图像与所述上一帧图像的大小是否相同以及所述当前帧图像是否为第一帧图像;
若所述当前帧图像与所述上一帧图像的大小相同且所述当前帧图像不是第一帧图像,则所述分割单元10根据设定的分割方式分割所述当前帧图像;
若所述当前帧图像与所述上一帧图像的大小不同或所述当前帧图像是第一帧图像,则所述发送模块40将所述当前帧图像整体发送给所述客户端。
在上述实施例的基础上,作为一种具体的实施方式,还包括:
第二判断模块,用于判断所述当前帧图像与所述上一帧图像存在差异的所述图像网格的比例是否达到预设阈值;
若未达到所述预设阈值,则所述发送模块40将当前帧图像与上一帧图像存在差异的所述图像网格发送给客户端;
若达到所述预设阈值,则所述发送模块40将所述当前帧图像整体发送给所述客户端。
在上述实施例的基础上,作为一种具体的实施方式,还包括:
记录模块,用于通过图像网格差异记录表记录所述当前帧图像与所述上一帧图像存在差异的图像网格。
在上述实施例的基础上,作为一种具体的实施方式,记录模块具体用于:
通过的二维数组记录所述当前帧图像与所述上一帧图像存在差异的图像网格的左上顶点的坐标与右下顶点的坐标,以及将表征所述图像网格内的像素是否被改变的标记赋值为第二目标值。
在上述实施例的基础上,作为一种具体的实施方式,还包括:
第一更新模块,用于合并横向相邻的图像网格后,更新发生合并的最左侧的图像网格的右下顶点的x坐标值。
在上述实施例的基础上,作为一种具体的实施方式,还包括:
第二更新模块,用于合并纵向相邻且宽度相同的图像网格后,更新发生合并的左上角的图像网格的右下顶点的y坐标值。
在上述实施例的基础上,作为一种具体的实施方式,还包括:
接收模块,用于接收所述客户端设定的所述分割方式。
在上述实施例的基础上,作为一种具体的实施方式,还包括:
生成模块,用于生成分割方式列表,并将所述分割方式列表发送给所述客户端,以使所述客户端根据所述分割方式列表更新分割方式选择菜单;所述分割方式列表包括至少一种所述分割方式。
在上述实施例的基础上,作为一种具体的实施方式,生成模块包括:
计算单元,用于求取横向分辨率与纵向分辨率的所有因子;
组合单元,用于组合所述横向分辨率的因子与所述纵向分辨率的因子,得到所述分割方式列表。
本申请所提供的视频数据传输装置,通过分割当前帧图像以及将所述当前帧图像的像素与上一帧图像的像素进行比对,确定出当前帧图像中与上一帧图像存在差异的图像网格,即确定出当前帧图像中相较于上一帧图像发生改变的部分,进而将发生改变的部分发送给客户端,而不是将当前帧图像整体发送给客户端,这样可以有效减少视频数据的传输量,能够减少对CPU资源的占用,降低CPU的负担。
本申请还提供了一种视频数据传输设备,参考图7所示,该设备包括存储器1和处理器2。
存储器1,用于存储计算机程序;
处理器2,用于执行计算机程序实现如下的步骤:
根据设定的分割方式分割当前帧图像,得到多个图像网格;比对所述当前帧图像的像素与上一帧图像的像素;根据比对结果,确定所述当前帧图像与所述上一帧图像存在差异的所述图像网格;将当前帧图像与上一帧图像存在差异的所述图像网格发送给客户端。
对于本申请所提供的设备的介绍请参照上述方法实施例,本申请在此不做赘述。
本申请还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时可实现如下的步骤:
根据设定的分割方式分割当前帧图像,得到多个图像网格;比对所述当前帧图像的像素与上一帧图像的像素;根据比对结果,确定所述当前帧图像与所述上一帧图像存在差异的所述图像网格;将当前帧图像与上一帧图像存在差异的所述图像网格发送给客户端。
该计算机可读存储介质可以包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory ,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
对于本申请所提供的计算机可读存储介质的介绍请参照上述方法实施例,本申请在此不做赘述。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置、设备以及计算机可读存储介质而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上对本申请所提供的视频数据传输方法、装置、设备以及计算机可读存储介质进行了详细介绍。本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围。
Claims (20)
1.一种视频数据传输方法,其特征在于,包括:
根据设定的分割方式分割当前帧图像,得到多个图像网格;
比对所述当前帧图像的像素与上一帧图像的像素;
根据比对结果,确定所述当前帧图像与所述上一帧图像存在差异的所述图像网格;
将当前帧图像与上一帧图像存在差异的所述图像网格发送给客户端。
2.根据权利要求1所述的视频数据传输方法,其特征在于,所述根据设定的分割方式分割当前帧图像包括:
根据设定的分割方式等分所述当前帧图像。
3.根据权利要求1所述的视频数据传输方法,其特征在于,所述比对所述当前帧图像的像素与上一帧图像的像素包括:
逐一将所述当前帧图像的像素与上一帧图像中对应的像素进行比对,并通过图像差异记录表记录所述当前帧图像与上一帧图像存在差异的像素。
4.根据权利要求3所述的视频数据传输方法,其特征在于,所述通过图像差异记录表记录所述当前帧图像与上一帧图像存在差异的像素包括:
将所述当前帧图像与上一帧图像存在差异的像素对应的二维数组的成员赋值为第一目标数值;所述二维数组的下标与所述像素的坐标一一对应。
5.根据权利要求1所述的视频数据传输方法,其特征在于,所述根据比对结果,确定所述当前帧图像与所述上一帧图像存在差异的所述图像网格包括:
判断所述图像网格中是否包含当前帧图像与上一帧图像存在差异的像素;
若所述图像网格中包含当前帧图像与上一帧图像存在差异的像素,则确定所述图像网格为所述当前帧图像与所述上一帧图像存在差异的图像网格。
6.根据权利要求1所述的视频数据传输方法,其特征在于,所述将当前帧图像与上一帧图像存在差异的所述图像网格发送给客户端包括:
将当前帧图像与上一帧图像存在差异的所述图像网格添加描述信息后,发送给所述客户端;所述描述信息包括所述图像网格的起始坐标与所述图像网格的宽度与高度。
7.根据权利要求1所述的视频数据传输方法,其特征在于,所述将当前帧图像与上一帧图像存在差异的所述图像网格发送给客户端包括:
将相邻的当前帧图像与上一帧图像存在差异的所述图像网格进行合并,并将合并后的图像网格与未发生合并的当前帧图像与上一帧图像存在差异的图像网格发送给所述客户端。
8.根据权利要求7所述的视频数据传输方法,其特征在于,所述将相邻的当前帧图像与上一帧图像存在差异的所述图像网格进行合并包括:
合并横向相邻的图像网格;
在横向相邻的所述图像网格合并后,合并纵向相邻且宽度相同的图像网格。
9.根据权利要求1所述的视频数据传输方法,其特征在于,所述根据设定的分割方式分割当前帧图像前还包括:
判断所述当前帧图像与所述上一帧图像的大小是否相同以及所述当前帧图像是否为第一帧图像;
若所述当前帧图像与所述上一帧图像的大小相同且所述当前帧图像不是第一帧图像,则根据设定的分割方式分割所述当前帧图像;
若所述当前帧图像与所述上一帧图像的大小不同或所述当前帧图像是第一帧图像,则将所述当前帧图像整体发送给所述客户端。
10.根据权利要求1所述的视频数据传输方法,其特征在于,所述将当前帧图像与上一帧图像存在差异的所述图像网格发送给客户端前还包括:
判断所述当前帧图像与所述上一帧图像存在差异的所述图像网格的比例是否达到预设阈值;
若未达到所述预设阈值,则将当前帧图像与上一帧图像存在差异的所述图像网格发送给客户端;
若达到所述预设阈值,则将所述当前帧图像整体发送给所述客户端。
11.根据权利要求1所述的视频数据传输方法,其特征在于,还包括:
通过图像网格差异记录表记录所述当前帧图像与所述上一帧图像存在差异的图像网格。
12.根据权利要求11所述的视频数据传输方法,其特征在于,所述通过图像网格差异记录表记录所述图像网格为所述当前帧图像与所述上一帧图像存在差异的图像网格包括:
通过的二维数组记录所述当前帧图像与所述上一帧图像存在差异的图像网格的左上顶点的坐标与右下顶点的坐标,以及将表征所述图像网格内的像素是否被改变的标记赋值为第二目标值。
13.根据权利要求8所述的视频数据传输方法,其特征在于,还包括:
合并横向相邻的图像网格后,更新发生合并的最左侧的图像网格的右下顶点的x坐标值。
14.根据权利要求8所述的视频数据传输方法,其特征在于,还包括:
合并纵向相邻且宽度相同的图像网格后,更新发生合并的左上角的图像网格的右下顶点的y坐标值。
15.根据权利要求1所述的视频数据传输方法,其特征在于,还包括:
接收所述客户端设定的所述分割方式。
16.根据权利要求1所述的视频数据传输方法,其特征在于,还包括:
生成分割方式列表,并将所述分割方式列表发送给所述客户端,以使所述客户端根据所述分割方式列表更新分割方式选择菜单;所述分割方式列表包括至少一种所述分割方式。
17.根据权利要求16所述的视频数据传输方法,其特征在于,所述生成分割方式列表包括:
求取横向分辨率与纵向分辨率的所有因子;
组合所述横向分辨率的因子与所述纵向分辨率的因子,得到所述分割方式列表。
18.一种视频数据传输装置,其特征在于,包括:
分割模块,用于根据设定的分割方式分割当前帧图像,得到多个图像网格;
比对模块,用于比对所述当前帧图像的像素与上一帧图像的像素;
确定模块,用于根据比对结果,确定所述当前帧图像与所述上一帧图像存在差异的所述图像网格;
发送模块,用于将当前帧图像与上一帧图像存在差异的所述图像网格发送给客户端。
19.一种视频数据传输设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至17任一项所述的视频数据传输方法的步骤。
20.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至17任一项所述的视频数据传输方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310070391.3A CN115802047A (zh) | 2023-01-19 | 2023-01-19 | 一种视频数据传输方法及相关装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310070391.3A CN115802047A (zh) | 2023-01-19 | 2023-01-19 | 一种视频数据传输方法及相关装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115802047A true CN115802047A (zh) | 2023-03-14 |
Family
ID=85430199
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310070391.3A Pending CN115802047A (zh) | 2023-01-19 | 2023-01-19 | 一种视频数据传输方法及相关装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115802047A (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102157181A (zh) * | 2009-11-24 | 2011-08-17 | 宏正自动科技股份有限公司 | 用以记录与播放视讯影像数据的方法及装置 |
CN102946530A (zh) * | 2012-11-27 | 2013-02-27 | 北京恒华伟业科技股份有限公司 | 视频的传输方法和装置以及视频的播放方法和装置 |
CN103440612A (zh) * | 2013-08-27 | 2013-12-11 | 华为技术有限公司 | 一种gpu虚拟化中图像处理方法和装置 |
CN105744281A (zh) * | 2016-03-28 | 2016-07-06 | 飞依诺科技(苏州)有限公司 | 一种连续图像的处理方法及装置 |
CN110740352A (zh) * | 2019-11-14 | 2020-01-31 | 北京京航计算通讯研究所 | 显卡透传环境下基于spice协议的差异图像显示方法 |
CN113079379A (zh) * | 2021-03-26 | 2021-07-06 | 山东英信计算机技术有限公司 | 一种视频压缩方法、装置、设备及计算机可读存储介质 |
CN115550668A (zh) * | 2022-09-19 | 2022-12-30 | 山东云海国创云计算装备产业创新中心有限公司 | 一种视频图像压缩方法、系统、存储介质及设备 |
-
2023
- 2023-01-19 CN CN202310070391.3A patent/CN115802047A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102157181A (zh) * | 2009-11-24 | 2011-08-17 | 宏正自动科技股份有限公司 | 用以记录与播放视讯影像数据的方法及装置 |
CN102946530A (zh) * | 2012-11-27 | 2013-02-27 | 北京恒华伟业科技股份有限公司 | 视频的传输方法和装置以及视频的播放方法和装置 |
CN103440612A (zh) * | 2013-08-27 | 2013-12-11 | 华为技术有限公司 | 一种gpu虚拟化中图像处理方法和装置 |
CN105744281A (zh) * | 2016-03-28 | 2016-07-06 | 飞依诺科技(苏州)有限公司 | 一种连续图像的处理方法及装置 |
CN110740352A (zh) * | 2019-11-14 | 2020-01-31 | 北京京航计算通讯研究所 | 显卡透传环境下基于spice协议的差异图像显示方法 |
CN113079379A (zh) * | 2021-03-26 | 2021-07-06 | 山东英信计算机技术有限公司 | 一种视频压缩方法、装置、设备及计算机可读存储介质 |
CN115550668A (zh) * | 2022-09-19 | 2022-12-30 | 山东云海国创云计算装备产业创新中心有限公司 | 一种视频图像压缩方法、系统、存储介质及设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102143355B1 (ko) | 그래픽 처리 방법 및 장치 | |
US5216754A (en) | Determining the complexity of a page prior to a print attempt | |
EP2464093B1 (en) | Image file generation device, image processing device, image file generation method, and image processing method | |
CN103339932A (zh) | 在灵活分块时利用图片边界填补的代码化和解码 | |
US20130039408A1 (en) | Method for enhancing compression and transmission process of a screen image | |
JP2006333495A (ja) | 画像処理方法、文書表示方法及びコンピュータ実行操作選択方法 | |
CN111836028B (zh) | 图像处理方法、可读存储介质和电子设备 | |
AU2008202364B2 (en) | Scan converting a set of vector edges to a set of pixel aligned edges | |
KR20160012064A (ko) | 전자빔 묘화 장치, 전자빔 묘화 방법 및 기록 매체 | |
CN111212246B (zh) | 视频生成方法、装置、计算机设备及存储介质 | |
JP6314973B2 (ja) | 画像符号化装置、画像符号化方法および画像符号化プログラム | |
US7873226B2 (en) | Image encoding apparatus | |
CN115802047A (zh) | 一种视频数据传输方法及相关装置 | |
JP5171421B2 (ja) | 画像処理装置、画像処理方法、コンピュータプログラム | |
CN109933735B (zh) | 调度方法、网页渲染方法、网页显示方法及其设备 | |
JP7289390B2 (ja) | ディスプレイウォールシステムに用いるイメージ処理デバイス、および、ディスプレイ制御方法 | |
CN112738629B (zh) | 视频展示方法、装置、电子设备和存储介质 | |
CN113312125B (zh) | 多窗口调整方法、系统、可读存储介质和电子设备 | |
CN111930326A (zh) | 图像处理方法、设备及系统 | |
CN110602500A (zh) | 数据更新方法及系统 | |
CN111666459B (zh) | 一种数据显示的预处理方法、装置及其存储介质 | |
JP7340487B2 (ja) | プログラム作成装置、対象物検知システム、アンカー設定方法及びアンカー設定プログラム | |
JP6926394B2 (ja) | 印刷装置及びプログラム | |
JP5527991B2 (ja) | 画像処理装置及び画像処理方法 | |
JP3658796B2 (ja) | 画像データ圧縮装置 |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20230314 |