一种视频压缩动态补帧的方法、系统、设备和存储介质与流程

文档序号:32696073发布日期:2022-12-27 21:04阅读:54来源:国知局
一种视频压缩动态补帧的方法、系统、设备和存储介质与流程

1.本发明涉及图像处理领域,更具体地,特别是指一种视频压缩动态补帧的方法、系统、设备和存储介质。


背景技术:

2.bmc(baseboard manager controller,基板管理控制器)是一款服务器ac上电起始即运行的软件,运行在服务器上一款单独的arm芯片上,这个arm芯片就是bmc软件的cpu,同时会芯片外围会配置自己的ram、flash等器件,只要服务器插上电源线,bmc软件便快速运行起来,此时有可能我们通常意义上的x86服务器侧的os都还没有安装呢。bmc是整个服务器的大管家,主要用于服务器各个部件(cpu、内存、硬盘、风扇、机框等)的温度、电压等健康状态进行检测,同时根据各个温度采集点情况实时调整风扇转速保证服务器不产生过温、而且控制总体功耗又不能过高,如果单板部件出现任何异常则通过snmp协议、smtp协议、redfish协议等多种业界通用规范讲信息及时上报给上层网管,以便运维人员及时处理,保证业务无损。
3.服务器集群一般通过bmc进行大规模无人值守操作,包括服务器的远程管理、监控、安装、重启等。服务器出现故障时,通过bmc对远程服务器进行远程管理时,需要查看远程服务器的界面,为了减少数据量的传输,往往将远程界面通过jpeg压缩后,通过网络发往本地进行显示。由于压缩后的图像数据需要写入主内存中去,ddr控制器是共享的,因此会出现jpeg压缩引擎将图像数据压缩完成后,ddr控制器被其他模块占用的情况,市面上通常的做法是将此帧图像进行丢弃,但是这样会降低图像恢复的精度。


技术实现要素:

4.有鉴于此,本发明实施例的目的在于提出一种视频压缩动态补帧的方法、系统、计算机设备及计算机可读存储介质,本发明能够利用插值算法动态的对图像进行画面修复,不但能够提高视频压缩效率,而且还更大程度的真实呈现了远程服务器的图像界面。
5.基于上述目的,本发明实施例的一方面提供了一种视频压缩动态补帧的方法,包括如下步骤:响应于接收到图像,根据每一帧的帧头和帧尾提取出对应的图像数据;将所述图像数据存储到存储阵列,将所述图像数据发往压缩引擎并依次判断所述存储阵列中是否存在当前行的图像数据;响应于所述存储阵列中存在当前行的图像数据,将所述存储阵列中当前行的图像数据发送到所述压缩引擎;以及响应于所述存储阵列中不存在当前行的图像数据,向所述压缩引擎发送预设数据或对当前行图像数据进行插值处理后的数据。
6.在一些实施方式中,所述向所述压缩引擎发送预设数据或对当前行图像数据进行插值处理后的数据包括:响应于当前行属于第一行或最后一行,向所述压缩引擎发送预设数据;以及响应于当前行不属于第一行或最后一行,读取当前行附近行的图像数据并根据插值算法对当前行图像数据进行插值处理,并向所述压缩引擎发送插值处理后的数据。
7.在一些实施方式中,所述存储阵列包括ram存储阵列和备份ram存储阵列,所述将
所述图像数据存储到存储阵列包括:将图像数据以行为单位循环发送到ram存储阵列对应的ram模块中,并将所述ram存储阵列中正在被覆盖的图像数据备份到备份ram存储阵列对应的备份ram模块中。
8.在一些实施方式中,所述依次判断所述存储阵列中是否存在当前行的图像数据包括:判断所述ram存储阵列中是否存在当前行对应的图像数据;以及响应于所述ram存储阵列中不存在当前行对应的图像数据,判断所述备份ram存储阵列中是否存在当前行对应的图像数据。
9.在一些实施方式中,方法还包括:确定操作ram存储阵列的第一指针和操作备份ram存储阵列的第二指针,并根据所述第一指针和所述第二指针确定ram存储阵列和备份ram存储阵列的当前位置。
10.在一些实施方式中,方法还包括:响应于整帧图像写入双倍速率同步动态随机存储器中,向处理器发送中断信号。
11.在一些实施方式中,方法还包括:响应于处理器接收到所述中断信号,将压缩后的图像数据从所述双倍速率同步动态随机存储器中读出,并将所述压缩后的图像数据发送到对端。
12.本发明实施例的另一方面,提供了一种视频压缩动态补帧的系统,包括:提取模块,配置用于响应于接收到图像,根据每一帧的帧头和帧尾提取出对应的图像数据;存储模块,配置用于将所述图像数据存储到存储阵列,将所述图像数据发往压缩引擎并依次判断所述存储阵列中是否存在当前行的图像数据;发送模块,配置用于响应于所述存储阵列中存在当前行的图像数据,将所述存储阵列中当前行的图像数据发送到所述压缩引擎;以及执行模块,配置用于响应于所述存储阵列中不存在当前行的图像数据,向所述压缩引擎发送预设数据或对当前行图像数据进行插值处理后的数据。
13.本发明实施例的又一方面,还提供了一种计算机设备,包括:至少一个处理器;以及存储器,所述存储器存储有可在所述处理器上运行的计算机指令,所述指令由所述处理器执行时实现如上方法的步骤。
14.本发明实施例的再一方面,还提供了一种计算机可读存储介质,计算机可读存储介质存储有被处理器执行时实现如上方法步骤的计算机程序。
15.本发明具有以下有益技术效果:能够利用插值算法动态的对图像进行画面修复,不但能够提高视频压缩效率,而且还更大程度的真实呈现了远程服务器的图像界面。
附图说明
16.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的实施例。
17.图1为本发明提供的视频压缩动态补帧的方法的实施例的示意图;
18.图2为本发明提供的视频压缩动态补帧的装置的实施例的示意图;
19.图3为本发明提供的视频压缩动态补帧的系统的实施例的示意图;
20.图4为本发明提供的视频压缩动态补帧的计算机设备的实施例的硬件结构示意
图;
21.图5为本发明提供的视频压缩动态补帧的计算机存储介质的实施例的示意图。
具体实施方式
22.为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明实施例进一步详细说明。
23.需要说明的是,本发明实施例中所有使用“第一”和“第二”的表述均是为了区分两个相同名称非相同的实体或者非相同的参量,可见“第一”“第二”仅为了表述的方便,不应理解为对本发明实施例的限定,后续实施例对此不再一一说明。
24.本发明实施例的第一个方面,提出了一种视频压缩动态补帧的方法的实施例。图1示出的是本发明提供的视频压缩动态补帧的方法的实施例的示意图。如图1所示,本发明实施例包括如下步骤:
25.s1、响应于接收到图像,根据每一帧的帧头和帧尾提取出对应的图像数据;
26.s2、将所述图像数据存储到存储阵列,将所述图像数据发往压缩引擎并依次判断所述存储阵列中是否存在当前行的图像数据;
27.s3、响应于所述存储阵列中存在当前行的图像数据,将所述存储阵列中当前行的图像数据发送到所述压缩引擎;以及
28.s4、响应于所述存储阵列中不存在当前行的图像数据,向所述压缩引擎发送预设数据或对当前行图像数据进行插值处理后的数据。
29.图2为本发明提供的视频压缩动态补帧的装置的实施例的示意图,结合图2对本发明实施例进行说明。如图2所示,本发明实施例装置包括图像获取模块、补帧控制模块、插值算法模块、jpeg压缩引擎、输出控制模块、存储阵列控制模块、ram存储阵列、备份ram存储阵列、ram模块a、cma匹配模块a、ram模块b、cma匹配模块b、ddr控制器、ddr、处理器、网络模块a、网络模块b和jpeg解压缩引擎。
30.图像获取模块:接收到图像数据后,根据每一帧的帧头跟帧尾,提取出图像数据,并发往jpeg压缩引擎。
31.ram存储阵列:包含了ram模块1、ram模块2
……
ram模块n-1、ram模块n,每个ram模块存储一行的数据(ram的深度根据图像分辨率,由用户指定),总共可以存储n行数据。
32.备份ram存储阵列:包含了备份ram模块1、备份ram模块2
……
备份ram模块m-1、备份ram模块m,每个备份ram模块存储一行的数据(ram的深度根据图像分辨率,由用户指定),总共可以存储m行数据。备份ram模块备份正在被替换的行数据(如果ram存储阵列中的ram模块p正在被覆盖,则覆盖前将ram模块p的数据读出来备份到备份ram模块中去,然后再进行覆盖),其中m由插值算法决定。
33.整个备份ram存储阵列存储最近被覆盖掉的m行数据,通过ram指针q记录当前操作的ram位置。举例说明如下:
34.如果ram存储阵列包含4个ram,备份ram存储阵列包含2个ram,ram存储阵列真正被覆盖的是ram模块3,备份ram存储阵列的ram位置是2,即n=4,m=2,p=3,q=2。则备份ram模块2备份ram模块3覆盖前的数据,备份ram模块1备份ram模块2覆盖前的数据。
35.值得注意的是:当n越大,且n=m时,通过插值恢复图像的效果越好,但是往往受限
于芯片的面积,n和m不可能无限大,在实际应用中,用户根据情况自行评估指定。
36.补帧控制模块:补帧控制模块包含以下几个功能,从图像获取模块接收到图像数据后,对数据进行以下处理,下面以n=4,m=2,插值算法利用上下两个数据进行插值(即需要n-g-1和n-g+1两行数据来完成n-g行的数据插值)为例进行说明。主要功能如下所示:
37.(1)补帧控制模块需记录发往jpeg压缩引擎的行数;
38.(2)若补帧控制模块正在向jpeg压缩引擎发送第一行数据,如果补帧控制模块已经完整接收第一行数据,则向输出控制模块请求获取ddr控制器的控制权。
39.(2.1)若输出控制模块返回成功获取ddr控制器的控制权,则向存储阵列控制模块请求第一行数据。
40.若存储阵列控制模块有第一行数据,则从ram存储阵列中读出第一行数据发往插值算法模块;
41.若存储阵列控制模块没有第一行数据(因为存储阵列中会循环存储行数据,此时第一行数据可能会被覆盖掉),则直接向插值算法模块发送数据全f;
42.(2.2)若输出控制模块返回未获取ddr控制器的控制权,则继续等待输出控制模块请求获取ddr控制器的控制权的状态,则状态返回步骤(2.1)继续等待状态。
43.(3)若补帧控制模块正在向jpeg压缩引擎发送第k行(除去第一行跟最后一行)数据,如果补帧控制模块已经完整接收第k行数据,则向输出控制模块请求获取ddr控制器的控制权。
44.(3.1)若输出控制模块返回成功获取ddr控制器的控制权,则向存储阵列控制模块请求第k行数据。
45.若存储阵列控制模块有第k行数据,则从ram存储阵列中读出第k行数据发往插值算法模块;
46.若存储阵列控制模块没有第k行数据(因为存储阵列中会循环存储行数据,此时第k行数据可能会被覆盖掉)则将没有对应k行的图像数据告知插值算法模块。
47.(3.2)若输出控制模块返回未获取ddr控制器的控制权,则继续等待输出控制模块请求获取ddr控制器的控制权的状态,则状态返回步骤(3.1)继续等待状态。
48.(4)若补帧控制模块正在向jpeg压缩引擎发送最后一行数据,如果补帧控制模块已经完整接收最后一行数据,则向输出控制模块请求获取ddr控制器的控制权。
49.(4.1)若输出控制模块返回成功获取ddr控制器的控制权,则向存储阵列控制模块请求最后一行数据。
50.若存储阵列控制模块有最后一行数据,则从ram存储阵列中读出最后一行数据发往插值算法模块;
51.若存储阵列控制模块没有最后一行数据(因为存储阵列中会循环存储行数据,此时最后一行数据可能会被覆盖掉),则直接向插值算法模块发送数据全f;
52.(4.2)若返回未获取ddr控制器的控制权,则继续等待输出控制模块请求获取ddr控制器的控制权的状态,则状态返回步骤(4.1)继续等待状态。
53.存储阵列控制模块:从补帧控制模块接收到图像数据后,对数据进行以下处理,下面以n=4,m=2为例进行说明。主要功能如下所示:
54.(1)从补帧控制模块接收到图像数据后,将第一行数据存往ram模块1,第二行存往
ram模块2,第三行存往ram模块3,第四行数据存往ram模块1,第五行存往ram模块2,第六行存往ram模块3,以此循环类推。并记录当前ram存储阵列的位置,即操作ram的指针。
55.(2)将ram存储阵列中被覆盖掉的图像数据,发往备份ram存储阵列中进行备份,并记录当前备份ram存储阵列的位置,即操作备份ram的指针。
56.(3)若存储阵列中有ram中的数据正在被覆盖,则覆盖前将ram模块的数据读出来备份到备份ram存储阵列中去,然后再进行覆盖。
57.(4)若接收到补帧控制模块的读取数据请求,则首先向cam匹配模块a查询是否有对应行的图像数据:
58.若cam匹配模块a有对应行的数据,则向ram存储阵列读取对应行的数据,并发给补帧控制模块。
59.如cam匹配模块a没有对应行的数据。则向cam匹配模块b查询是否有对应行的图像数据,若cam匹配模块b有对应行的数据,并发给补帧控制模块,若cam匹配模块b没有对应行的数据,并告知补帧控制模块。
60.cam匹配模块a负责控制记录一帧图像存储行数的信息,并将信息存到ram模块a中。cam匹配模块b负责控制记录一帧图像备份存储行数的信息,并将信息存到ram模块b中。ram模块a:存储一帧图像存储行数的信息;ram模块b:存储一帧图像存储行数的信息。
61.插值算法模块:负责完成数据的插值处理,并将插值后的图像数据发往jpeg压缩引擎。本发明实施例对插值算法不限定。主要功能如下所示:
62.(1)从补帧控制模块接收图像,并将图像数据发往jpeg压缩引擎。
63.(2)从补帧控制模块接收到没有对应k行图像数据的请求后,根据插值算法,读取k行附近行的图像数据,并对k行数据进行插值处理。
64.jpeg压缩引擎:负责图像数据的压缩,并向补帧控制模块提供压缩后的图像数据。本发明实施例对jpeg压缩引擎功能不做限定。
65.输出控制模块:负责获取ddr控制器的控制权,并将ddr控制器的控制权情况反馈给补帧控制模块。如果整帧图像已经成功写入ddr中,则向处理器发送中断信号。
66.ddr控制器:负责对ddr进行读写控制,本发明实施例对ddr控制器不做限定。
67.ddr:双倍速率同步动态随机存储器,本发明实施例对ddr不做限定。
68.处理器:计算机系统的运算和控制核心,是信息处理、程序运行的最终执行单元。本发明实施例对处理器不做限定。如果收到输出控制模块发送来的中断信号,则将压缩后的图像数据从ddr中读出,同网络模块a发往对端,然后清除中断。
69.网络模块a:网络传输,负责将数据发往对端的网络模块b。
70.网络模块b:网络传输,负责接收对端网络模块a发送来的数据。
71.jpeg解压缩引擎:负责图像数据的解压缩,本发明实施例对jpeg解压缩引擎不做限定。
72.需要特别指出的是,上述视频压缩动态补帧的方法的各个实施例中的各个步骤均可以相互交叉、替换、增加、删减,因此,这些合理的排列组合变换之于视频压缩动态补帧的方法也应当属于本发明的保护范围,并且不应将本发明的保护范围局限在实施例之上。
73.基于上述目的,本发明实施例的第二个方面,提出了一种视频压缩动态补帧的系统。如图3所示,系统200包括如下模块:提取模块,配置用于响应于接收到图像,根据每一帧
的帧头和帧尾提取出对应的图像数据;存储模块,配置用于将所述图像数据存储到存储阵列,将所述图像数据发往压缩引擎并依次判断所述存储阵列中是否存在当前行的图像数据;发送模块,配置用于响应于所述存储阵列中存在当前行的图像数据,将所述存储阵列中当前行的图像数据发送到所述压缩引擎;以及执行模块,配置用于响应于所述存储阵列中不存在当前行的图像数据,向所述压缩引擎发送预设数据或对当前行图像数据进行插值处理后的数据。
74.在一些实施方式中,所述执行模块配置用于:响应于当前行属于第一行或最后一行,向所述压缩引擎发送预设数据;以及响应于当前行不属于第一行或最后一行,读取当前行附近行的图像数据并根据插值算法对当前行图像数据进行插值处理,并向所述压缩引擎发送插值处理后的数据。
75.在一些实施方式中,所述存储阵列包括ram存储阵列和备份ram存储阵列,所述存储模块配置用于:将图像数据以行为单位循环发送到ram存储阵列对应的ram模块中,并将所述ram存储阵列中正在被覆盖的图像数据备份到备份ram存储阵列对应的备份ram模块中。
76.在一些实施方式中,所述存储模块配置用于:判断所述ram存储阵列中是否存在当前行对应的图像数据;以及响应于所述ram存储阵列中不存在当前行对应的图像数据,判断所述备份ram存储阵列中是否存在当前行对应的图像数据。
77.在一些实施方式中,系统还包括指针模块,配置用于:确定操作ram存储阵列的第一指针和操作备份ram存储阵列的第二指针,并根据所述第一指针和所述第二指针确定ram存储阵列和备份ram存储阵列的当前位置。
78.在一些实施方式中,系统还包括中断模块,配置用于:响应于整帧图像写入双倍速率同步动态随机存储器中,向处理器发送中断信号。
79.在一些实施方式中,系统还包括传输模块,配置用于:响应于处理器接收到所述中断信号,将压缩后的图像数据从所述双倍速率同步动态随机存储器中读出,并将所述压缩后的图像数据发送到对端。
80.基于上述目的,本发明实施例的第三个方面,提出了一种计算机设备,包括:至少一个处理器;以及存储器,存储器存储有可在处理器上运行的计算机指令,指令由处理器执行以实现如下步骤:s1、响应于接收到图像,根据每一帧的帧头和帧尾提取出对应的图像数据;s2、将所述图像数据存储到存储阵列,将所述图像数据发往压缩引擎并依次判断所述存储阵列中是否存在当前行的图像数据;s3、响应于所述存储阵列中存在当前行的图像数据,将所述存储阵列中当前行的图像数据发送到所述压缩引擎;以及s4、响应于所述存储阵列中不存在当前行的图像数据,向所述压缩引擎发送预设数据或对当前行图像数据进行插值处理后的数据。
81.在一些实施方式中,所述向所述压缩引擎发送预设数据或对当前行图像数据进行插值处理后的数据包括:响应于当前行属于第一行或最后一行,向所述压缩引擎发送预设数据;以及响应于当前行不属于第一行或最后一行,读取当前行附近行的图像数据并根据插值算法对当前行图像数据进行插值处理,并向所述压缩引擎发送插值处理后的数据。
82.在一些实施方式中,所述存储阵列包括ram存储阵列和备份ram存储阵列,所述将所述图像数据存储到存储阵列包括:将图像数据以行为单位循环发送到ram存储阵列对应
的ram模块中,并将所述ram存储阵列中正在被覆盖的图像数据备份到备份ram存储阵列对应的备份ram模块中。
83.在一些实施方式中,所述依次判断所述存储阵列中是否存在当前行的图像数据包括:判断所述ram存储阵列中是否存在当前行对应的图像数据;以及响应于所述ram存储阵列中不存在当前行对应的图像数据,判断所述备份ram存储阵列中是否存在当前行对应的图像数据。
84.在一些实施方式中,步骤还包括:确定操作ram存储阵列的第一指针和操作备份ram存储阵列的第二指针,并根据所述第一指针和所述第二指针确定ram存储阵列和备份ram存储阵列的当前位置。
85.在一些实施方式中,步骤还包括:响应于整帧图像写入双倍速率同步动态随机存储器中,向处理器发送中断信号。
86.在一些实施方式中,步骤还包括:响应于处理器接收到所述中断信号,将压缩后的图像数据从所述双倍速率同步动态随机存储器中读出,并将所述压缩后的图像数据发送到对端。
87.如图4所示,为本发明提供的上述视频压缩动态补帧的计算机设备的一个实施例的硬件结构示意图。
88.以如图4所示的装置为例,在该装置中包括一个处理器301以及一个存储器302。
89.处理器301和存储器302可以通过总线或者其他方式连接,图4中以通过总线连接为例。
90.存储器302作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块,如本技术实施例中的视频压缩动态补帧的方法对应的程序指令/模块。处理器301通过运行存储在存储器302中的非易失性软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现视频压缩动态补帧的方法。
91.存储器302可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据视频压缩动态补帧的方法的使用所创建的数据等。此外,存储器302可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器302可选包括相对于处理器301远程设置的存储器,这些远程存储器可以通过网络连接至本地模块。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
92.一个或者多个视频压缩动态补帧的方法对应的计算机指令303存储在存储器302中,当被处理器301执行时,执行上述任意方法实施例中的视频压缩动态补帧的方法。
93.执行上述视频压缩动态补帧的方法的计算机设备的任何一个实施例,可以达到与之对应的前述任意方法实施例相同或者相类似的效果。
94.本发明还提供了一种计算机可读存储介质,计算机可读存储介质存储有被处理器执行时执行视频压缩动态补帧的方法的计算机程序。
95.如图5所示,为本发明提供的上述视频压缩动态补帧的计算机存储介质的一个实施例的示意图。以如图5所示的计算机存储介质为例,计算机可读存储介质401存储有被处
理器执行时执行如上方法的计算机程序402。
96.最后需要说明的是,本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关硬件来完成,视频压缩动态补帧的方法的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,程序的存储介质可为磁碟、光盘、只读存储记忆体(rom)或随机存储记忆体(ram)等。上述计算机程序的实施例,可以达到与之对应的前述任意方法实施例相同或者相类似的效果。
97.以上是本发明公开的示例性实施例,但是应当注意,在不背离权利要求限定的本发明实施例公开的范围的前提下,可以进行多种改变和修改。根据这里描述的公开实施例的方法权利要求的功能、步骤和/或动作不需以任何特定顺序执行。此外,尽管本发明实施例公开的元素可以以个体形式描述或要求,但除非明确限制为单数,也可以理解为多个。
98.应当理解的是,在本文中使用的,除非上下文清楚地支持例外情况,单数形式“一个”旨在也包括复数形式。还应当理解的是,在本文中使用的“和/或”是指包括一个或者一个以上相关联地列出的项目的任意和所有可能组合。
99.上述本发明实施例公开实施例序号仅仅为了描述,不代表实施例的优劣。
100.本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
101.所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本发明实施例公开的范围(包括权利要求)被限于这些例子;在本发明实施例的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,并存在如上的本发明实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。因此,凡在本发明实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本发明实施例的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1