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

一种优化图像播放卡顿的方法、服务器及图像播放系统与流程

2022-07-06 06:36:54 来源:中国专利 TAG:


1.本发明涉及图像播放技术领域,尤其涉及一种优化图像播放卡顿的方法、服务器及图像播放系统。


背景技术:

2.在图像播放技术中,服务器会接收到另一台服务器或者采集卡或者摄像机等图像源设备的图像数据,其中,图像数据可以为文件和流媒体形式的数据。但在图像数据传输过程中,图像数据常会由于网络类问题而导致丢帧现象发生,进而在播放过程中,出现一段播放时间对应的播放效果为正常,另一段播放时间对应的播放效果为卡顿(卡在最后输出的一帧图像)。网络类问题包括有输入卡顿问题和输出卡顿问题,其中,输入卡顿问题具体体现在输入不稳定(包含输入不足和输入过多);输出卡顿问题具体体现在输出不足;导致输入卡顿问题的因素主要有:1、带宽网络;2、硬盘读取数据:3、服务器的解码能力等;导致输出卡顿问题的因素主要是服务器中的显卡渲染速度不足。
3.上述卡顿问题会明显影响到led显示屏的显示效果,因此本领域技术人员亟需寻找一种新的技术方案来解决上述图像播放卡顿的问题。


技术实现要素:

4.针对现有技术中的技术问题,本发明提供一种优化图像播放卡顿的方法、服务器及图像播放系统。
5.本发明的一种优化图像播放卡顿的方法,包括:
6.接收图像帧数据并放入纹理池中;
7.根据预设的图像帧读取量确定策略以及预设的图像帧数据量阈值xt和当前纹理池中的图像帧数据总量x,计算下一时刻从纹理池中应读取出的图像帧数据读取量a;
8.根据预设的图像读取策略以及图像帧数据读取量a,从纹理池中读取出对应的图像帧数据,并向led显示屏发送;
9.其中,图像帧读取量确定策略包括:
10.计算图像帧数据总量x与图像帧数据量阈值xt的比值x/xt;
11.通过比值x/xt确定出图像帧数据读取量a。
12.进一步的,通过比值x/xt确定出图像帧数据读取量a,包括:
13.图像帧数据读取量a为:其中,k1 k2=1。
14.进一步的,根据预设的图像读取策略以及图像帧数据读取量a,从纹理池中读取出对应的图像帧数据,并向led显示屏发送,包括:
15.获取已从纹理池中读取图像帧数据所对应的图像帧数据已读取量;
16.计算图像帧数据已读取量与图像帧数据读取量a的和,作为新图像帧数据已读取量;
17.将新图像帧数据已读取量向下取整数,得到应读取图像帧数据的编号;
18.判断编号对应的图像帧数据是否已经向led显示屏发送;若是,则
19.不进行图像帧数据的读取;若否,则
20.读取与编号对应的图像帧数据,并向led显示屏发送。
21.进一步的,还包括:
22.根据预设的卡顿判断策略以及图像帧数据读取量a,判断当前图像帧数据传输的卡顿类型。
23.进一步的,卡顿判断策略包括:
24.判断图像帧数据读取量a与1的大小关系;若a=1,则当前图像帧数据传输的卡顿类型为“无卡顿”;若a<1,则当前图像帧数据传输的卡顿类型为“输入不足”;若a>1,则当前图像帧数据传输的卡顿类型为“输入过多和/或输出不足”。
25.进一步的,还包括:若卡顿类型为“输入过多和/或输出不足”,则按照预设的图像间隔读取策略对纹理池中的图像帧数据进行间隔读取。
26.进一步的,图像间隔读取策略为:每隔一个单位时间读取一次图像帧数据,且每次读取的图像帧数据为隔帧读取。
27.本发明还包括一种优化图像播放卡顿的服务器,服务器包括图像接收模块、纹理池模块、图像读取模块以及图像发送模块,
28.图像接收模块,与纹理池模块相连接,图像接收模块用于接收图像帧数据并放入纹理池模块中;
29.纹理池模块,与图像接收模块、图像读取模块相连接,纹理池模块用于存放图像帧数据;
30.图像读取模块,与纹理池模块、图像发送模块相连接,图像读取模块用于根据预设的图像帧读取量确定策略以及预设的图像帧数据量阈值xt和当前纹理池模块中的图像帧数据总量x,计算下一时刻从纹理池模块中应读取出的图像帧数据读取量a;以及根据预设的图像读取策略以及图像帧数据读取量a,从纹理池模块中读取出对应的图像帧数据;其中,图像帧读取量确定策略包括:计算图像帧数据总量x与图像帧数据量阈值xt的比值x/xt;以及通过比值x/xt确定出图像帧数据读取量a;
31.图像发送模块,与图像读取模块相连接,图像发送模块用于将图像读取模块读取的图像帧数据向led显示屏发送。
32.进一步的,图像读取模块通过比值x/xt确定出图像帧数据读取量a,包括:
33.图像帧数据读取量a为:其中,k1 k2=1。
34.本发明还包括一种图像播放系统,图像播放系统包括上述服务器,还包括发送设备、接收设备以及led显示屏,其中:
35.服务器,与发送设备相连接,通过发送设备和接收设备的连接实现与led显示屏通讯连接,服务器用于向led显示屏发送图像帧数据;
36.led显示屏,与接收设备相连接,通过接收设备与发送设备的连接实现与服务器通讯连接,led显示屏用于接收并显示图像帧数据。
37.本发明实施例的优化图像播放卡顿的方法、服务器及图像播放系统,通过纹理池
来缓存图像帧数据,并根据图像帧数据总量与图像帧数据量阈值的比值,计算下一时刻从纹理池中应读取出的图像帧数据量,再根据预设的图像读取策略以及图像帧数据量,从纹理池中读取出对应的图像帧数据,并向led显示屏发送,使得led显示屏显示图像帧数据的显示效果呈现线性变化,不再发生卡顿的情况,解决了现有技术中输入卡顿以及输出卡顿的问题,从而提升了led显示屏的画面显示效果,保证了人们的观看体验。
附图说明
38.为了更清楚的说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见的,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它附图。
39.图1为本发明实施例的优化图像播放卡顿的方法的步骤流程图;
40.图2为本发明另一实施例的优化图像播放卡顿的方法的步骤流程图;
41.图3为本发明又一实施例的优化图像播放卡顿的方法的步骤流程图;
42.图4为本发明实施例的服务器的结构组成图;
43.图5为本发明实施例的图像播放系统的结构组成图。
具体实施方式
44.下面将结合本发明中的附图,对本发明实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通的技术人员在没有做出创造性劳动的前提下所获得的所有其它实施例,都属于本发明的保护范围。
45.本发明实施例的一种优化图像播放卡顿的方法,如图1所示,包括以下步骤:
46.步骤s10:接收图像帧数据并放入纹理池中。
47.纹理池又称为texture pool,专门用于缓存图像画面,可理解为队列,队列中的元素相当于纹理池的纹理,纹理也即为输入的图像帧数据。纹理池是一种动态池,动态池中的图像帧数据是动态的(相当于队列中元素的长度),本发明实施例对图像帧数据进行处理,以解决背景技术提到的卡顿问题,例如输入卡顿问题中的输入不稳定(包含输入过多和输入不足),此时纹理池中的图像帧数据会偏多或偏少,也存在输出卡顿问题中的输出不足,此时纹理池中的图像帧数据会偏多。
48.步骤s20:根据预设的图像帧读取量确定策略以及预设的图像帧数据量阈值xt和当前纹理池中的图像帧数据总量x,计算下一时刻从纹理池中应读取出的图像帧数据读取量a。
49.其中,本实施例的步骤s20中的图像帧读取量确定策略包括:
50.计算当前纹理池中的图像帧数据总量x与图像帧数据量阈值xt的比值x/xt;
51.通过比值x/xt确定出图像帧数据读取量a。
52.本实施例中图像帧数据总量x的数值是时刻发生变化的,即在将接收的图像帧数据放入纹理池后以及将图像帧数据从纹理池中读出后,纹理池中的图像帧数据总量x均会发生变化。本发明实施例的图像帧数据读取量a的具体确定方法为:图像帧数据读取量a为:
其中,k1 k2=1。本发明实施例采用pi(比例-积分)控制的方式来控制图像帧数据读取量a的取值。k1和k2作为系数,本实施例不限定其取值,例如k1可以为0.7,k2可以为0.3。
53.在本实施例中,假设当前图像帧数据总量x=60,预设的图像帧数据量阈值xt为60(图像帧数据量阈值xt的取值由本领域技术人员根据纹理池大小等需求情况自行设定,此处不进行限定,例如还可设定为40、90、120、240等),时间t的取值设定为1s,则图像帧数据读取量a的值为1,若图像帧数据总量x=30,则图像帧数据读取量a的值为0.5,若图像帧数据总量x=90,则图像帧数据读取量a的值为1.5。
54.步骤s30:根据预设的图像读取策略以及图像帧数据读取量a,从纹理池中读取出对应的图像帧数据,并向led显示屏发送。
55.本步骤根据步骤s20计算出的图像帧数据读取量a来对应从纹理池中读取对应的图像帧数据,如图2所示,具体包括以下步骤:
56.步骤s301:获取已从纹理池中读取图像帧数据所对应的图像帧数据已读取量。
57.假设纹理池中向外读取的图像帧数据按照编号依次为1、2、3、4、5、6、7、8、9
……
,已从纹理池中读取了第1帧图像帧数据,即已从纹理池中读取图像帧数据所对应的图像帧数据已读取量等于1帧,在通常情况下不存在卡顿时,应继续按图像帧数据的编号顺序2、3、4、5
……
逐帧读取。
58.本实施例中图像帧数据已读取量根据实际情况确定其取值即可,本实施例仅以图像帧数据已读取量=1为例进行说明,而对于图像帧数据的编号也根据实际情况进行对应,此处仅作为示例进行说明。
59.步骤s302:计算图像帧数据已读取量与图像帧数据读取量a的和,作为新图像帧数据已读取量。
60.若图像帧数据读取量a等于1,则新图像帧数据已读取量=图像帧数据已读取量 1;若图像帧数据读取量a等于1.5,则新图像帧数据已读取量=图像帧数据已读取量 1.5;若图像帧数据读取量a等于0.5,则新图像帧数据已读取量=图像帧数据已读取量 0.5。
61.本发明每次从纹理池中读取出图像帧数据之后都重新计算图像帧数据总量x,同时也会计算出新的图像帧数据读取量a,由于输入以及输出纹理池的图像帧数据的帧数会存在相等和不相等的情况,所以图像帧数据读取量a的数值也会在不同的时刻下发生变化。为便于实施例举例,假设每次计算出的图像帧数据读取量a的值相等(即输入纹理池的图像帧数据帧数等于输出纹理池的图像帧数据帧数),那么,通过本实施例的步骤在后续三个相邻的读取时刻下所计算出的新图像帧数据已读取量为:
62.若图像帧数据读取量a等于1,则后续相邻的三个时刻所计算出的新图像帧数据已读取量为2、3、4;
63.若图像帧数据读取量a等于1.5,则后续相邻的三个时刻所计算出的新图像帧数据已读取量为2.5、4、5.5;
64.若图像帧数据读取量a等于0.5,则后续相邻的三个时刻所计算出的新图像帧数据已读取量为1.5、2、2.5。
65.步骤s303:将新图像帧数据已读取量向下取整数,得到应读取图像帧数据的编号。
66.结合上述举例,则
67.若图像帧数据读取量a等于1,则应读取图像帧数据的编号为2、3、4;
68.若图像帧数据读取量a等于1.5,则应读取图像帧数据的编号为2、4、5;
69.若图像帧数据读取量a等于0.5,则应读取图像帧数据的编号为1、2、2。
70.步骤s304:判断编号对应的图像帧数据是否已经向led显示屏发送;若是,则执行步骤s305;若否,则执行步骤s306。
71.步骤s305:不进行图像帧数据的读取。
72.步骤s306:读取与编号对应的图像帧数据,并向led显示屏发送。
73.结合以上举例可知,本实施例第一次从纹理池中读取出的图像帧数据的编号为1,即读取出第1帧图像帧数据;从第二时刻开始,若每次计算的图像帧数据读取量a等于1,则第二时刻读取第2帧图像帧数据,第三时刻则读取第3帧图像帧数据,以此类推;若每次计算的图像帧数据读取量a等于1.5,则第二时刻读取第2帧图像帧数据,第三时刻则读取第4帧图像帧数据,第四时刻读取第5帧图像帧数据,以此类推;若每次计算的图像帧数据读取量a等于0.5,则第二时刻读取第1帧图像帧数据(由于第1帧图像帧数据已经在第一次读取,所以第二时刻不进行图像帧数据的读取,led显示屏在第二时刻依旧显示第1帧图像帧数据),第三时刻则读取第2帧图像帧数据,第四时刻读取第2帧图像帧数据(同理于第二时刻,第2帧图像帧数据已经在第三时刻被读取,所以第四时刻不进行图像帧数据的读取,led显示屏在第四时刻依旧显示第2帧图像帧数据),以此类推。
74.通过以上步骤可知,当图像帧数据读取量a的取值在等于1、大于1以及小于1时,每个时刻从纹理池中读取的图像帧数据存在差别,例如当图像帧数据读取量a的值大于1时(也即输入过多或者输出不足的问题),每个时刻都会读取新一帧的图像帧数据,且存在跳帧读取的情况,从而加快输出;而当图像帧数据读取量a的值小于1时(也即输入不足),会存在两个时刻显示同一帧图像帧数据,从而减缓输出。
75.如图3所示,本发明另一种实施例为:在步骤s20计算出下一时刻从纹理池中应读取出的图像帧数据读取量a后,还包括:步骤s40:根据预设的卡顿判断策略以及图像帧数据读取量a,判断当前图像帧数据传输的卡顿类型。
76.具体的,本实施例的卡顿判断策略包括:
77.判断图像帧数据读取量a与1的大小关系;若a=1,则当前图像帧数据传输的卡顿类型为“无卡顿”;若a<1,则当前图像帧数据传输的卡顿类型为“输入不足”;若a>1,则当前图像帧数据传输的卡顿类型为“输入过多和/或输出不足”。
78.结合上述实施例,当图像帧数据读取量a=1时,当前图像帧数据传输的卡顿类型为“无卡顿”;当图像帧数据读取量a=1.5时,当前图像帧数据传输的卡顿类型为“输入过多和/或输出不足”,故每个时刻都会读取新一帧的图像帧数据,且存在跳帧读取的情况,从而加快输出;当图像帧数据读取量a=0.5时,当前图像帧数据传输的卡顿类型为“输入不足”,故会存在两个时刻显示同一帧图像帧数据,从而减缓输出。
79.具体的,本发明实施例中若卡顿类型为“输入过多和/或输出不足”,则执行步骤s50:按照预设的图像间隔读取策略对纹理池中的图像帧数据进行间隔读取。
80.本发明实施例的图像间隔读取策略可通过前述实施例的方法进行对应的间隔读取(间隔读取也即保证丢帧是一种均匀丢帧的状态),本领域技术人员也可设定其他间隔读
取的方式,例如隔帧读取的方式,第一时刻读取第1帧,第二时刻读取第3帧,第三时刻读取第5帧,以此类推;或者,第一时刻读取第1帧,第二时刻读取第2帧,第三时刻读取第4帧,第四时刻读取第5帧,以此类推。
81.优选的,本实施例步骤s50中的图像间隔读取策略为:每隔一个单位时间读取一次图像帧数据,且每次读取的图像帧数据为隔帧读取,即第一时刻读取第1帧,第二时刻不进行读取(继续显示第1帧),第三时刻读取第3帧,第四时刻不进行读取(继续显示第3帧),第五时刻读取第5帧,第六时刻不进行读取(继续显示第5帧),以此类推。本实施例的图像间隔读取策略中若采用重复帧显示,也可以适用于“输入不足”的情况。本实施例的图像间隔读取策略通过隔振读取虽然发生了掉帧,但led显示屏的画面并不会发生卡顿,不会给观看者造成明显的视觉差异,保证了基本的显示效果。
82.本发明还包括一种实施例为一种优化图像播放卡顿的服务器,如图3所示,服务器100包括图像接收模块101、纹理池模块102、图像读取模块103以及图像发送模块104,其中:
83.图像接收模块101,与纹理池模块102相连接,图像接收模块101用于接收图像帧数据并放入纹理池模块102中;
84.纹理池模块102,与图像接收模块101、图像读取模块103相连接,纹理池模块102用于存放图像帧数据;
85.图像读取模块103,与纹理池模块102、图像发送模块104相连接,图像读取模块103用于根据预设的图像帧读取量确定策略以及预设的图像帧数据量阈值xt和当前纹理池模块102中的图像帧数据总量x,计算下一时刻从纹理池模块102中应读取出的图像帧数据读取量a;以及根据预设的图像读取策略以及图像帧数据读取量a,从纹理池模块102中读取出对应的图像帧数据;其中,图像帧读取量确定策略包括:计算图像帧数据总量x与图像帧数据量阈值xt的比值x/xt;以及通过比值x/xt确定出图像帧数据读取量a;
86.图像发送模块104,与图像读取模块103相连接,图像发送模块104用于将图像读取模块103读取的图像帧数据向led显示屏发送。
87.具体的,本实施例中图像读取模块103通过比值x/xt确定出图像帧数据读取量a,包括:
88.图像帧数据读取量a为:其中,k1 k2=1。
89.具体的,本发明实施例的服务器100按照下方步骤实现相关功能:
90.步骤s10:接收图像帧数据并放入纹理池中。
91.步骤s20:根据预设的图像帧读取量确定策略以及预设的图像帧数据量阈值xt和当前纹理池中的图像帧数据总量x,计算下一时刻从纹理池中应读取出的图像帧数据读取量a。
92.步骤s30:根据预设的图像读取策略以及图像帧数据读取量a,从纹理池中读取出对应的图像帧数据,并向led显示屏发送。
93.具体的,步骤s30包括:
94.步骤s301:获取已从纹理池中读取图像帧数据所对应的图像帧数据已读取量。
95.步骤s302:计算图像帧数据已读取量与图像帧数据读取量a的和,作为新图像帧数据已读取量。
96.步骤s303:将新图像帧数据已读取量向下取整数,得到应读取图像帧数据的编号。
97.步骤s304:判断编号对应的图像帧数据是否已经向led显示屏发送;若是,则执行步骤s305;若否,则执行步骤s306。
98.步骤s305:不进行图像帧数据的读取。
99.步骤s306:读取与编号对应的图像帧数据,并向led显示屏发送。
100.本发明实施例的服务器100的功能还包括:根据预设的卡顿判断策略以及图像帧数据读取量a,判断当前图像帧数据传输的卡顿类型。。
101.具体的,本实施例的卡顿判断策略包括:
102.判断图像帧数据读取量a与1的大小关系;若a=1,则当前图像帧数据传输的卡顿类型为“无卡顿”;若a<1,则当前图像帧数据传输的卡顿类型为“输入不足”;若a>1,则当前图像帧数据传输的卡顿类型为“输入过多和/或输出不足”。若卡顿类型为“输入过多和/或输出不足”,则按照预设的图像间隔读取策略对纹理池中的图像帧数据进行间隔读取。
103.以上步骤的实现过程可参考前述实施例关于优化图像播放卡顿的方法的相关说明进行对应实现,此处不再赘述。
104.本发明实施例还包括一种图像播放系统,如图4所示,图像播放系统包括上述实施例的服务器100,还包括发送设备200、接收设备300以及led显示400屏,其中:
105.服务器100,与发送设备200相连接,通过发送设备200和接收设备300的连接实现与led显示屏400通讯连接,服务器100用于向led显示屏400发送图像帧数据;
106.led显示屏400,与接收设备300相连接,通过接收设备300与发送设备200的连接实现与服务器100通讯连接,led显示屏400用于接收并显示图像帧数据。
107.本实施例的服务器100和led显示屏400的通讯连接方式通过对应的发送设备200和接收设备300连接实现,发送设备200和接收设备300分别实现对图像帧数据的发送和接收,本领域技术人员可选用发送卡和接收卡来实现此功能,具体产品选型本实施例不进行限定。
108.本发明实施例的优化图像播放卡顿的方法、服务器及图像播放系统,通过纹理池来缓存图像帧数据,并根据图像帧数据总量与图像帧数据量阈值的比值,计算下一时刻从纹理池中应读取出的图像帧数据量,再根据预设的图像读取策略以及图像帧数据量,从纹理池中读取出对应的图像帧数据,并向led显示屏发送,使得led显示屏显示图像帧数据的显示效果呈现线性变化,不再发生卡顿的情况,解决了现有技术中输入卡顿以及输出卡顿的问题,从而提升了led显示屏的画面显示效果,保证了人们的观看体验。
109.以上借助具体实施例对本发明做了进一步描述,但是应该理解的是,这里具体的描述,不应理解为对本发明的实质和范围的限定,本领域内的普通技术人员在阅读本说明书后对上述实施例做出的各种修改,都属于本发明所保护的范围。
再多了解一些

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

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

相关文献