一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种应用于BMC的视频压缩方法、系统及相关装置与流程

2022-06-02 05:57:32 来源:中国专利 TAG:

一种应用于bmc的视频压缩方法、系统及相关装置
技术领域
1.本技术涉及服务器领域,特别涉及一种应用于bmc的视频压缩方法、系统及相关装置。


背景技术:

2.服务器集群一般通过bmc进行大规模无人值守操作,包括服务器的远程管理、监控、安装、重启等。服务器出现故障时,通过bmc对远程服务器进行远程管理时,需要查看远程服务器的界面,为了减少数据量的传输,往往将远程界面通过jpeg压缩后,通过网络发往本地进行显示。然而在压缩过程中,不可避免的需要剔除部分帧图像,以降低所需传输的数据量,导致本地显示的画面效果还原度较低,影响用户使用。


技术实现要素:

3.本技术的目的是提供一种应用于bmc的视频压缩方法、系统、计算机可读存储介质和服务器,能够对图像帧内的行或者列数据进行动态丢弃,便于真实呈现远程服务器的图像界面。
4.为解决上述技术问题,本技术提供一种应用于bmc的视频压缩方法,具体技术方案如下:
5.获取图像数据;
6.以帧为单位读取所述图像数据,判断所述图像数据中的目标像素是否为第一行数据和/或第一列数据;
7.若是,在压缩引擎处于空闲状态时将所述目标像素存于fifo模块,在压缩引擎处于忙碌状态时将所述目标像素丢弃至遗弃队列;
8.若所述目标像素不为第一行数据且不为第一列数据,判断所述目标像素所在的行或列是否存在被丢弃的像素数据;
9.若是,将所述目标像素丢弃;
10.若否,将所述目标像素存至所述fifo模块,并调用所述压缩引擎压缩所述fifo模块中的像素。
11.可选的,将所述目标像素存至所述fifo模块,并调用所述压缩引擎压缩所述fifo模块中的像素之后,还包括:
12.在当前帧图像数据的最后一个像素数据处理完毕后,从所述遗弃队列中选择待添加像素对所述当前帧图像数据进行帧尾添加。
13.可选的,所述从所述遗弃队列中选择待添加像素对所述当前帧图像数据进行帧尾添加包括:
14.根据被丢齐的像素数据所在的行列数和帧尾添加规则表确定所述待添加像素;
15.从所述遗弃队列中确定所述待添加像素对所述当前帧图像数据进行帧尾添加。
16.可选的,所述根据被丢齐的像素数据所在的行列数和帧尾添加规则表确定所述待
添加像素包括:
17.根据所述当前帧图像的行列数确定待添加像素的比特数;
18.若m表示所述当前帧图像的行数,n表示所述当前帧图像的列数,m表示第m行,n表示第n列;
19.则所述帧尾添加规则为在第m行添加(m-1)比特的数据,在第n列添加(m n-1)比特的数据。
20.可选的,所述以帧为单位读取所述图像数据包括:
21.从fifo中以帧为单位读取所述图像数据;其中,所述fifo深度至少为所述图像数据一行的数据深度。
22.可选的,所述以帧为单位读取所述图像数据时,还包括:
23.根据所述图像数据的当前帧所处行列位置对所述当前帧进行标记;所述标记信息包括行号和列号。
24.本技术还提供一种应用于bmc的视频压缩系统,包括:
25.获取模块,用于获取图像数据;
26.图像读取模块,用于以帧为单位读取所述图像数据,判断所述图像数据中的目标像素是否为第一行数据和/或第一列数据;
27.帧率控制模块,用于所述图像读取模块的判断结果为是时,在压缩引擎处于空闲状态时将所述目标像素存于fifo模块,在压缩引擎处于忙碌状态时将所述目标像素丢弃至遗弃队列;
28.判断模块,用于所述图像读取模块的判断结果均为否时,判断所述目标像素所在的行或列是否存在被丢弃的像素数据;若是,将所述目标像素丢弃;
29.压缩模块,用于所述判断模块的判断结果为否时,将所述目标像素存至所述fifo模块,并调用所述压缩引擎压缩所述fifo模块中的像素。
30.可选的,还包括:
31.帧尾添加模块,用于在当前帧图像数据的最后一个像素数据处理完毕后,从所述遗弃队列中选择待添加像素对所述当前帧图像数据进行帧尾添加。
32.本技术还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的方法的步骤。
33.本技术还提供一种服务器,包括存储器和处理器,所述存储器中存有计算机程序,所述处理器调用所述存储器中的计算机程序时实现如上所述的方法的步骤。
34.本技术提供一种应用于bmc的视频压缩方法,包括:获取图像数据;以帧为单位读取所述图像数据,判断所述图像数据中的目标像素是否为第一行数据和/或第一列数据;若是,在压缩引擎处于空闲状态时将所述目标像素存于fifo模块,在压缩引擎处于忙碌状态时将所述目标像素丢弃至遗弃队列;若所述目标像素不为第一行数据且不为第一列数据,判断所述目标像素所在的行或列是否存在被丢弃的像素数据;若是,将所述目标像素丢弃;若否,将所述目标像素存至所述fifo模块,并调用所述压缩引擎压缩所述fifo模块中的像素。
35.本技术在压缩图像数据时,不直接整帧丢弃图像数据,而针对每一帧图像数据进行帧内的像素动态丢弃,避免了常规视频压缩的整帧图像丢弃机制,而是根据压缩引擎的
压缩速率,对图像帧内的行或者列数据进行动态丢弃,不但能够提高视频压缩效率,而且还更大程度的真实呈现了远程服务器的图像界面。
36.本技术还提供一种应用于bmc的视频压缩系统、计算机可读存储介质和服务器,具有上述有益效果,此处不再赘述。
附图说明
37.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
38.图1为本技术实施例所提供的一种应用于bmc的视频压缩方法的流程图;
39.图2为本技术实施例所提供的一种应用于bmc的视频压缩系统结构示意图。
具体实施方式
40.为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
41.请参考图1,图1为本技术实施例所提供的一种应用于bmc的视频压缩方法的流程图,该方法包括:
42.s101:获取图像数据;
43.本步骤旨在获取图像数据,该图像数据通常为远程服务器的监控画面或者其他图像画面等。在此对于如何获取不做具体限定,可以由本领域技术人员根据实际需求设置图像数据的获取方式。容易理解的是,在获取得到图像数据之后,可以将图像数据存储至相应的存储介质,例如缓存或者fifo等,在此不作具体限定。
44.s102:以帧为单位读取所述图像数据,判断所述图像数据中的目标像素是否为第一行数据和/或第一列数据;若是,进入s103;若均为否,进入s104;
45.本步骤旨在读取图像数据。读取时以单帧图像数据为单位,针对每帧图像数据中的每个像素按顺序读取,当然对于图像数据以数据帧顺序读取,而对于单帧图像数据,按照行或列顺序依次读取。针对每个像素,逐个判断是否为第一行数据或者第一列数据。
46.作为一种优选的执行方式,在执行本步骤时,可以根据图像数据的当前帧所处行列位置对当前帧进行标记,标记信息可以包括行号和列号,还可以包含rgb信息等。标记可以快速确认每个像素在当前帧图像数据中的位置信息。
47.若采用fifo存储图像数据,在执行本步骤时,可以从fifo中以帧为单位读取图像数据。需要注意的是,该fifo深度至少为图像数据一行的数据深度,以确保能够存储足够的像素数据供后续处理。
48.s103:在压缩引擎处于空闲状态时将所述目标像素存于fifo模块,在压缩引擎处于忙碌状态时将所述目标像素丢弃至遗弃队列;
49.在目标像素为第一行数据或者第一列数据时,此时判断压缩引擎是否处于空闲状
态。压缩引擎用于对图像数据进行压缩,由于通常图像数据的读取速度大于压缩引擎的压缩速度,因此为了避免给压缩引擎造成较大的队列压力,需要对压缩引擎的当前处理状态进行判断,即仅在压缩引擎处于空闲状态时,将目标像素存于fifo模块。该fifo模块中的各像素数据用于被压缩引擎压缩,从而得到压缩后的图像数据。而在压缩引擎处于忙碌状态时,将目标像素丢弃至遗弃队列。容易理解的是,遗弃队列用于存储本步骤中不满足被压缩条件的像素,且遗弃队列也可以设于fifo模块中,只要其与被压缩的目标像素所在队列区分开即可。
50.s104:判断所述目标像素所在的行或列是否存在被丢弃的像素数据;若是,进入s105;若为否,进入s106;
51.s105:将所述目标像素丢弃;
52.s106:将所述目标像素存至所述fifo模块,并调用所述压缩引擎压缩所述fifo模块中的像素。
53.步骤s104至步骤s106中,需要判断目标像素所在的行或列是否曾经被丢弃,一旦被丢弃,那么该目标像素也需要被丢弃。如果目标像素所在的行或列均未曾被丢弃,将目标像素同样添加至fifo模块,以便压缩引擎对fifo模块包含的像素进行压缩。
54.本技术实施例在压缩图像数据时,不直接整帧丢弃图像数据,而针对每一帧图像数据进行帧内的像素动态丢弃,避免了常规视频压缩的整帧图像丢弃机制,而是根据压缩引擎的压缩速率,对图像帧内的行或者列数据进行动态丢弃,不但能够提高视频压缩效率,而且还更大程度的真实呈现了远程服务器的图像界面。
55.基于上述实施例,作为预选的实施例,将目标像素存至fifo模块,并调用压缩引擎压缩所述fifo模块中的像素之后,还可以执行帧尾补充,具体如下:
56.在当前帧图像数据的最后一个像素数据处理完毕后,从遗弃队列中选择待添加像素对当前帧图像数据进行帧尾添加。
57.在具体进行帧尾添加时,可以根据被丢齐的像素数据所在的行列数和帧尾添加规则表确定待添加像素,再从遗弃队列中确定待添加像素对当前帧图像数据进行帧尾添加。
58.可选的,根据被丢齐的像素数据所在的行列数和帧尾添加规则表确定待添加像素包括:
59.根据当前帧图像的行列数确定待添加像素的比特数;
60.若m表示当前帧图像的行数,n表示当前帧图像的列数,m表示第m行,n表示第n列;
61.则帧尾添加规则为在第m行添加(m-1)比特的数据,在第n列添加(m n-1)比特的数据。
62.具体可以参见下表1,表1为帧尾添加规则的示意表:
63.表1帧尾添加规则示意表
64.第n列第n-1列第

列第二列第一列第m行第m-1行第

行第二行第一行bit(m n-1)bit(m n-2)bit(m

)bit(m 1)bit(m)bit(m-1)bit(m-2)bit(

)bit(1)bit(0)
65.进行帧尾添加,使得被压缩的图像数据便于解压缩,确保解压缩后的图像数据可以正常显示。
66.下面对本技术实施例提供的一种应用于bmc的视频压缩系统进行介绍,下文描述的视频压缩系统与上文描述的应用于bmc的视频压缩方法可相互对应参照。
67.参见图2,图2为本技术实施例所提供的一种应用于bmc的视频压缩系统结构示意图,本技术还提供一种应用于bmc的视频压缩系统,包括:
68.获取模块,用于获取图像数据;
69.图像读取模块,用于以帧为单位读取所述图像数据,判断所述图像数据中的目标像素是否为第一行数据和/或第一列数据;
70.帧率控制模块,用于所述图像读取模块的判断结果为是时,在压缩引擎处于空闲状态时将所述目标像素存于fifo模块,在压缩引擎处于忙碌状态时将所述目标像素丢弃至遗弃队列;
71.判断模块,用于所述图像读取模块的判断结果均为否时,判断所述目标像素所在的行或列是否存在被丢弃的像素数据;若是,将所述目标像素丢弃;
72.压缩模块,用于所述判断模块的判断结果为否时,将所述目标像素存至所述fifo模块,并调用所述压缩引擎压缩所述fifo模块中的像素。
73.基于上述实施例,作为优选的实施例,还包括:
74.帧尾添加模块,用于在当前帧图像数据的最后一个像素数据处理完毕后,从所述遗弃队列中选择待添加像素对所述当前帧图像数据进行帧尾添加。
75.本技术还提供了一种计算机可读存储介质,其上存有计算机程序,该计算机程序被执行时可以实现上述实施例所提供的步骤。该存储介质可以包括:u盘、移动硬盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
76.本技术还提供了一种服务器,可以包括存储器和处理器,所述存储器中存有计算机程序,所述处理器调用所述存储器中的计算机程序时,可以实现上述实施例所提供的步骤。当然所述服务器还可以包括各种网络接口,电源等组件。
77.说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例提供的系统而言,由于其与实施例提供的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
78.本文中应用了具体个例对本技术的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本技术的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本技术原理的前提下,还可以对本技术进行若干改进和修饰,这些改进和修饰也落入本技术权利要求的保护范围内。
79.还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献