首页 / 专利库 / 软件 / 进程间通信 / 视频均匀显示方法、终端设备、机器可读存储介质

视频均匀显示方法、终端设备、机器可读存储介质

阅读:1022发布:2020-05-19

专利汇可以提供视频均匀显示方法、终端设备、机器可读存储介质专利检索,专利查询,专利分析的服务。并且一种视频均匀显示方法、终端设备、机器可读存储介质。一种视频均匀显示方法,包括:获取待显示 视频 帧 ;在接收到第一控制 信号 时, 渲染 所述待显示视频帧;在接收到第二 控制信号 时,将渲染后的视频帧交换到显示器;所述第一控制信号和所述第二控制信号之间间隔设定时间。这样,各视频帧均以各自的第二控制信号为起始时间进行数据交换,即视频帧开始显示的时刻相同。并且,各视频帧均在各自第二控制信号和后一帧的第一控制信号之间显示,即显示时长均为设定时间。换言之,本 实施例 中,各视频帧的刷新时刻和显示时长相同,可以保证视频显示更均匀和更细腻。,下面是视频均匀显示方法、终端设备、机器可读存储介质专利的具体信息内容。

1.一种视频均匀显示方法,其特征在于,应用于终端设备,包括:
获取待显示视频
在接收到第一控制信号时,渲染所述待显示视频帧;
在接收到第二控制信号时,将渲染后的视频帧交换到所述终端设备的显示器;所述第一控制信号和所述第二控制信号之间间隔设定时间。
2.根据权利要求1所述的视频均匀显示方法,其特征在于,所述第一控制信号和所述第二控制信号为来自所述显示器的垂直同步信号
3.根据权利要求1所述的视频均匀显示方法,其特征在于,所述设定时间为所述显示器的刷新周期。
4.根据权利要求1所述的视频均匀显示方法,其特征在于,获取待显示视频帧之前,所述方法还包括:
调用预先设置的用于解析的解析线程对接收到视频码流进行解析,当存在多个视频码流能够构成完整的一帧视频帧时,将所述多个视频码流作为待解码的视频帧缓存至帧队列;
调用预先设置的用于解码的解码线程,将所述多个视频码流解码出视频帧,并缓存所述视频帧至解码队列。
5.根据权利要求4所述的视频均匀显示方法,其特征在于,缓存所述视频帧至解码队列之前,所述方法还包括:
获取所述解码队列中已缓存视频帧的数量;
若所述数量等于第一设定数量,则丢弃所述解码队列中缓存时间最早的视频帧。
6.根据权利要求5所述的视频均匀显示方法,其特征在于,丢弃所述解码队列中缓存时间最早的视频帧包括:
丢弃位于所述解码队列队头的视频帧且将新获取的视频帧放至所述解码队列的队尾。
7.根据权利要求4所述的视频均匀显示方法,其特征在于,缓存所述视频帧至解码队列之后,所述方法还包括:
获取所述解码队列中已缓存视频帧的数量;
若所述数量等于第二设定数量,则执行获取待显示视频帧的步骤。
8.根据权利要求1所述的视频均匀显示方法,其特征在于,在接收到第一控制信号时,渲染所述待显示视频帧包括:
在接收到第一控制信号时,调用预先设置的渲染线程;
利用所述渲染进程渲染所述待显示视频帧。
9.根据权利要求8所述的视频均匀显示方法,其特征在于,利用所述渲染进程渲染所述待显示视频帧包括:
利用所述渲染线程从解码队列中读取视频帧进行渲染;
利用所述渲染线程将渲染后的视频帧缓存至显示队列。
10.根据权利要求8所述的视频均匀显示方法,其特征在于,调用所述渲染线程,是指将所述渲染线程从后台状态切换至前台状态。
11.根据权利要求1所述的视频均匀显示方法,其特征在于,所述终端设备包括预告设置的显示队列,渲染后的待显示视频帧缓存至显示队列。
12.根据权利要求1所述的视频均匀显示方法,其特征在于,在接收到第二控制信号后,所述方法还包括:
检测所述显示队列中是否存在渲染后的待显示视频帧;
若存在,则执行将渲染后的视频帧交换到显示器的步骤;若不存在,则等待下一个第二控制信号。
13.根据权利要求12所述的视频均匀显示方法,其特征在于,所述待显示视频帧缓存在预先设置的后台缓存中。
14.根据权利要求13所述的视频均匀显示方法,其特征在于,在接收到第二控制信号时,将渲染后的视频帧交换到显示器包括:
在接收到第二控制信号时,调用用于显示的显示线程,利用所述显示线程从所述后台缓存中读取渲染后的视频帧,并将所述视频帧交换到显示器。
15.根据权利要求14所述的视频均匀显示方法,其特征在于,调用显示线程,是指将所述显示线程从后台状态切换至前台状态。
16.根据权利要求1所述的视频均匀显示方法,其特征在于,所述第一控制信号和所述第二控制信号为来自Sleep函数或者计时器的定时同步信号。
17.根据权利要求1所述的视频均匀显示方法,其特征在于,所述第一控制信号和所述第二控制信号为来自系统的屏幕刷新回调信号。
18.一种终端设备,其特征在于,包括通信总线、存储器和处理器;所述存储器存储若干条计算机指令、缓存来自所述通信总线的视频码流以及由所述视频码流转换成的视频帧;
所述处理器通过通信总线与存储器连接,用于从所述存储器中读取计算机指令以实现:
获取待显示视频帧;
在接收到第一控制信号时,渲染所述待显示视频帧;
在接收到第二控制信号时,将渲染后的视频帧交换到所述终端设备的显示器;所述第一控制信号和所述第二控制信号之间间隔设定时间。
19.根据权利要求18所述的终端设备,其特征在于,所述第一控制信号和所述第二控制信号为来自所述显示器的垂直同步信号。
20.根据权利要求18所述的终端设备,其特征在于,所述设定时间为所述显示器的刷新周期。
21.根据权利要求18所述的终端设备,其特征在于,所述处理器用于获取待显示视频帧之前,还用于:
调用预先设置的用于解析的解析线程对接收的视频码流进行解析,当存在多个视频码流能够构成完整的一帧视频帧时,将所述多个视频码流作为待解码的视频帧缓存至帧队列;
调用预先设置的用于解码的解码线程,将所述多个视频码流解码出视频帧,并缓存所述视频帧至解码队列。
22.根据权利要求21所述的终端设备,其特征在于,所述处理器用于缓存所述视频帧至解码队列之前,还用于:
获取所述解码队列中已缓存视频帧的数量;
若所述数量等于第一设定数量,则丢弃所述解码队列中缓存时间最早的视频帧。
23.根据权利要求22所述的终端设备,其特征在于,所述处理器用于丢弃所述解码队列中缓存时间最早的视频帧包括:
丢弃位于所述解码队列队头的视频帧且将新获取的视频帧放至所述解码队列的队尾。
24.根据权利要求21所述的终端设备,其特征在于,所述处理器用于缓存所述视频帧至解码队列之后,还用于:
获取所述解码队列中已缓存视频帧的数量;
若所述数量等于第二设定数量,则执行获取待显示视频帧的步骤。
25.根据权利要求18所述的终端设备,其特征在于,在接收到第一控制信号时,所述处理器用于渲染所述待显示视频帧包括:
在接收到第一控制信号时,调用预先设置的渲染线程;
利用所述渲染进程渲染所述待显示视频帧。
26.根据权利要求25所述的终端设备,其特征在于,所述处理器用于利用所述渲染进程渲染所述待显示视频帧包括:
利用所述渲染线程从解码队列中读取视频帧进行渲染;
利用所述渲染线程将渲染后的视频帧缓存至显示队列。
27.根据权利要求23所述的终端设备,其特征在于,调用所述渲染线程,是指将所述渲染线程从后台状态切换至前台状态。
28.根据权利要求18所述的终端设备,其特征在于,所述终端设备包括预告设置的显示队列,渲染后的待显示视频帧缓存至所述显示队列。
29.根据权利要求18所述的终端设备,其特征在于,所述处理器用于在接收到第二控制信号后,还用于:
检测所述显示队列中是否存在渲染后的待显示视频帧;
若存在,则执行在接收到第二控制信号时,将渲染后的视频帧交换到显示器的步骤;若不存在,则等待下一个第二控制信号。
30.根据权利要求29所述的终端设备,其特征在于,所述待显示视频帧缓存在预先设置的后台缓存中。
31.根据权利要求30所述的终端设备,其特征在于,所述处理器用于在接收到第二控制信号时,将渲染后的视频帧交换到显示器包括:
在接收到第二控制信号时,调用用于显示的显示线程,通过所述显示线程从所述后台缓存中读取渲染后的视频帧,并将所述视频帧交换到显示器。
32.根据权利要求31所述的终端设备,其特征在于,调用显示线程,是指将所述显示线程从后台状态切换至前台状态。
33.根据权利要求18所述的终端设备,其特征在于,所述第一控制信号和所述第二控制信号为来自Sleep函数或者计时器的定时同步信号。
34.根据权利要求18所述的终端设备,其特征在于,所述第一控制信号和所述第二控制信号为来自系统的屏幕刷新回调信号。
35.一种机器可读存储介质,其特征在于,所述机器可读存储介质上存储有若干计算机指令,所述计算机指令被执行时实现权利要求1~17任一项所述方法的步骤。

说明书全文

视频均匀显示方法、终端设备、机器可读存储介质

技术领域

[0001] 本发明涉及视频处理技术领域,尤其涉及视频均匀显示方法、终端设备、机器可读存储介质。

背景技术

[0002] 目前,对于实时视频流,例如监控等场景,发送端需要将采集的视频发送给接收端,使视频流尽快地在接收端显示。由于发送端在采集、编码、传输等过程中存在数据抖动,则接收端接收的视频码流会存在或多或少的延迟。若接收端在接收到视频码流后立即显示,则会使每一图像的显示时间不均匀,从而造成视频中移动物体的动作不连贯,即视频卡顿的问题,影响到用户的观看。

发明内容

[0003] 本发明提供一种视频均匀显示方法、终端设备、机器可读存储介质。
[0004] 根据本发明的第一方面,提供一种视频均匀显示方法,包括:
[0005] 获取待显示视频帧
[0006] 在接收到第一控制信号时,渲染所述待显示视频帧;
[0007] 在接收到第二控制信号时,将渲染后的视频帧交换到所述终端设备的显示器;所述第一控制信号和所述第二控制信号之间间隔设定时间。
[0008] 根据本发明的第二方面,提供一种终端设备,包括通信总线、存储器和处理器;所述存储器存储若干条计算机指令、缓存来自所述通信总线的视频码流以及由所述视频码流转换成的视频帧;所述处理器通过通信总线与存储器连接,用于从所述存储器中读取计算机指令以实现:
[0009] 获取待显示视频帧;
[0010] 在接收到第一控制信号时,渲染所述待显示视频帧;
[0011] 在接收到第二控制信号时,将渲染后的视频帧交换到所述终端设备的显示器;所述第一控制信号和所述第二控制信号之间间隔设定时间。
[0012] 根据本发明的第三方面,提供一种机器可读存储介质,所述机器可读存储介质上存储有若干计算机指令,所述计算机指令被执行时实现第一方面所述方法的步骤。
[0013] 由上述的技术方案可见,本实施例中通过将显示视频帧分为渲染和显示两个过程,然后根据第一控制信号和第二控制信号分别控制执行渲染操作和视频帧交换操作。这样,各视频帧均以各自的第二控制信号为起始时间进行数据交换,即视频帧开始显示的时刻相同。并且,各视频帧均在各自第二控制信号(当前帧的第二控制信号)和后一帧的第一控制信号之间显示,即显示时长均为设定时间。换言之,本实施例中,各视频帧的刷新时刻和显示时长相同,可以保证视频显示更均匀和更细腻。附图说明
[0014] 为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0015] 图1是本发明一实施例提供的应用场景示意图;
[0016] 图2是本发明一实施例提供的一种视频均匀显示方法的流程示意图;
[0017] 图3是本发明一实施例提供的解码视频帧的流程示意图;
[0018] 图4是本发明一实施例提供的丢弃视频帧的流程示意图;
[0019] 图5是本发明一实施例提供的渲染和显示在不同刷新周期的处理的示意图;
[0020] 图6是本发明一实施例提供的渲染视频帧的流程示意图;
[0021] 图7是本发明另一实施例提供的渲染视频帧的流程示意图;
[0022] 图8是本发明一实施例提供的缓冲视频帧的流程示意图;
[0023] 图9是本发明一实施例提供的显示视频帧的流程示意图;
[0024] 图10是本发明一实施例提供的一种视频均匀显示方法的流程示意图;
[0025] 图11是本发明另一实施例提供的一种视频均匀显示方法的流程示意图;
[0026] 图12是本发明另一实施例提供的一种终端设备的框图

具体实施方式

[0027] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0028] 目前,对于实时视频流,例如监控等场景,发送端(例如摄像头、相机等)需要将采集的视频发送给接收端(例如终端设备),使视频流尽快地在接收端显示。
[0029] 以安装有安卓系统的设备(后称之为安卓设备)或者安装有IOS系统的设备(后称之为ISO设备)的屏幕刷新周期为60Hz,每个刷新周期约为16.67ms。发送端采集视频的频率为30Hz,那么每一帧图像在安卓设备或者IOS设备的屏幕上显示2个周期,约33.3ms。由于在接收到图像帧后,针对不同图像帧的渲染和显示过程,安卓设备或者IOS设备可以在0-16.67ms内完成,也可以在16.67~33.33ms内完成,导致部分图像帧在所占2个刷新周期中的第一个周期(0-16.67ms)内显示(显示时长为第二个周期的时长+第一个周期的部分时长,超过16.67ms),部分图像帧在所占2个刷新周期中的第二个周期(16.67-33.33ms)内显示(显示时长为第二个周期的部分时长,小于16.67ms),从而这两部分图像帧的显示时长不同,造成视频中移动物体的动作不连贯,影响到用户的观看。
[0030] 为此,本发明实施例提供了一种视频均匀显示方法,图1是本发明一实施例提供的视频均匀显示方法的应用场景示意图。参见图1,发送端10通过通信连接20与显示端30保持通信状态。该通信连接20可以为有线方式,也可以为无线方式。本实施例中,发送端10(如摄像头、相机或者手持拍摄设备等)采集视频,然后以视频码流的方式通过网络20(局域网LAN或者广域网WAN)发送给显示端30(如智能手机、手持拍摄设备等终端设备)。显示端30可以处理视频码流得到视频帧,在获取到各视频帧的基础上,显示端30开始执行视频均匀显示方法的步骤。针对各视频帧重复上述方案,可以达到均匀显示视频的效果。
[0031] 为方便说明,后续中显示端30以终端设备为例进行描述。图2是本发明一实施例提供的视频均匀显示方法的流程示意图,参见图2,一种视频均匀显示方法,包括步骤201~步骤203,其中:
[0032] 201,获取待显示视频帧。
[0033] 本实施例中,终端设备在接收到视频码流后,按照预先设置的解码方法可以解码视频码流得到视频帧,然后将视频帧缓存在指定位置。其中,指定位置可以为缓存器或者存储器。当然,指定位置还可以为预先设置的队列等形式。
[0034] 本实施例中,终端设备中可以预先设置用于解析视频码流的解析线程,以及用于解码的解码线程,因此从视频码流到视频帧可以采用以下方案:
[0035] 参见图3,在接收到来自发送端的视频码流时,视频码流可以为视频帧的一部分(例如1/3帧,1/2帧)。终端设备的处理器可以调用用于解析的解析线程,对接收到的视频码流进行解析,当存在多个视频码流能够构成完整的一帧视频帧时,将所述多个视频码流作为待解码的视频帧进行缓存(对应步骤301),即确定出每一视频帧与多个视频码流的对应关系。本实施例中,可以预先设置一个帧队列,该帧队列可以缓存多帧视频帧。这样,解析线程或者处理器可以将解析出的待解码的视频帧缓存至帧队列中。
[0036] 继续参见图3,处理器可以调用预先设置的用于解码的解码线程,然后从帧队列中获取待解码的视频帧,依次输入到解码器中,由解码器解码出视频帧。之后,解码线程或者处理器可以将解码出的视频帧缓存至预先设置的解码队列(对应步骤302)。
[0037] 本实施例中,终端设备的处理器可以从解码队列中读取视频帧作为待显示视频帧,即处理器可以获取到待显示视频帧。当然,处理器还可以调整解码速率,调整输出解码后的视频帧的时间,从而直接将解码输出的视频帧作为待显示视频帧。
[0038] 在一实施例中,参见图4,在解码出视频帧后,处理器还获取所述解码队列中已缓存视频帧的数量(对应步骤401)。然后处理器获取预先设置的第一设定数量,并对比已缓存视频帧的数量和该第一设定数量(对应步骤402),若相等,则丢弃解码队列中缓存时间最早的视频帧(对应步骤403),例如丢弃位于所述解码队列队头的视频帧。之后,处理器将新获取的视频帧放至解码队列的队尾(对应步骤404)。若不等,处理器直接将新获取的视频帧放至解码队列的队尾(对应步骤404)。这样,本实施例中可以克服解码队列中缓存视频帧过多而造成显示延时的问题。缓存过多视频帧而造成显示延时是因为:渲染线程渲染各视频帧所用时间不同,而解码线程解码视频帧所有时间相对固定,即解码队列中接收的视频帧和释放的视频帧的速度不同,使解码队列中视频帧的数量较多进而引起显示延时。
[0039] 202,在接收到第一控制信号时,渲染所述待显示视频帧。
[0040] 终端设备还包括显示器,由该显示器显示视频内容。以安卓设备为例,显示器中可以包含驱动芯片,例如栅极驱动芯片,驱动芯片通过设定方式(逐行、逐列、隔行等)开启像素,以使像素数据写入各像素,完成视频帧的显示。
[0041] 在每次显示完成后,驱动芯片可以生成一个触发信号,该触发信号表明当前视频帧已经显示完成,可以开始显示下一帧视频帧。本实施例中将该触发信号称之为垂直同步信号(VSync)。
[0042] 由于垂直同步信号在两帧视频帧之间产生且每帧视频帧的显示时长相同,因此一个垂直同步信号对应一个刷新周期,从而可以将其作为控制信号。本实施例中可以预先将处理器与驱动芯片连接,从而使处理器接收到垂直同步信号,并且将垂直同步信号可以作为第一控制信号或后续的第二控制信号。
[0043] 需要说明的是,第一控制信号以及第二控制信号可以都为垂直同步信号,两者的区别仅在于产生的时刻不同,或者说处理器接收的时刻不同。参见图5,第一控制信号是指在获取待显示视频帧后,处理器接收到的第一个垂直同步信号(VSync);第二控制信号是指在获取待显示视频帧后,处理器接收到的第二个垂直同步信号(VSync)。可见,本实施例中第一控制信号和第二控制信号之间间隔设定时间,此场景下,设定时间为一个刷新周期,约为16.67ms。
[0044] 在另一实施例中,第一控制信号和第二控制信号还可以来自终端设备中的Sleep函数或者预先设置的计时器的定时同步信号,在第一控制信号和第二控制信号满足上述要求的情况下,同样可以实现本申请的方案。
[0045] 在又一实施例中,以IOS设备为例,IOS设备的系统会提供屏幕刷新回调信号,该屏幕刷新回调信号与安卓设备中的垂直同步信号类似,技术人员可以参考相关文献中对屏幕刷新回调信号的说明,在此不再赘述。本实施例中,处理器可以根据屏幕刷新回调信号将渲染线程或者显示线程从后台状态切换到前台状态,达到调用渲染线程或者显示线程的效果。
[0046] 本实施例中,处理器在接收到第一控制信号时,可以对获取的待显示视频帧进行渲染。渲染方式可以包括:
[0047] 方式一,参见图6,在终端设备中预先设置一个用于渲染视频帧的渲染进程。通常情况下,渲染进程可以处于后台状态,在接收到第一控制信号时,处理器调用渲染进程(对应步骤601),将该渲染进程从后台状态切换至前台状态,利用渲染进程渲染待显示视频帧(对应步骤602)。渲染方法可以参考相关文献,在此不再赘述。
[0048] 方式二,采用相关技术中渲染视频帧的方案对待显示视频帧进行渲染,例如相关技术中可以具有渲染和显示功能的线程,由该线程完成对视频帧的渲染,渲染方案请参考相关文献,在此不再赘述。
[0049] 在一实施例中,由于渲染进程的渲染时间是不固定的,而后续出现的显示进程的调用时间是固定的,因此可以预先设置一个显示队列。参见图7,渲染线程从解码队列中读取视频帧进行渲染(对应步骤701),并由渲染进程或者处理器将渲染后的视频帧缓存至显示队列(对应步骤702),这样显示线程可以直接从显示队列中读取渲染后的视频帧,以保证视频帧交换在接收到第二控制信号时开始进行。
[0050] 在另一实施例中,渲染进程或者处理器还可以将渲染后的待显示视频帧缓存到显示器中预先设置的后台缓存中,该后台缓存的工作原理与显示队列的工作原理类似,在此不再赘述。
[0051] 203,在接收到第二控制信号时,将渲染后的视频帧交换到显示器。
[0052] 本实施例中,处理器在接收到第二控制信号时,处理器可以将渲染后的视频帧交换到显示器。交换方式可以包括:
[0053] 方式一,在终端设备中预先设置一个用于显示视频帧的显示进程。通常情况下,显示进程可以处于后台状态,在接收到第二控制信号时,处理器调用显示进程,将该显示进程从后台状态切换至前台状态,利用显示进程将渲染后的待显示视频帧交换到显示器,显示进程和显示器的交换操作可以参考相关文献,在此不再赘述。
[0054] 方式二,采用相关技术中显示视频帧的方案显示渲染后的待显示视频帧。例如相关技术中可以具有渲染和显示功能的线程,由该线程完成对渲染后的待显示视频帧的显示,该线程和显示器之间交换操作可以参考相关文献,在此不再赘述。区别在于,该线程输出渲染后待显示视频帧的时刻受到第二控制信号的控制,从而保证视频帧交换到显示器的时刻,进而保证显示器显示视频帧的时长。
[0055] 在一实施例中,参见图8,在接收到第二控制信号时,处理器还检测显示队列中是否存在待显示视频帧(对应步骤801),若不存在,则处理器在接收到第二控制信号后不做处理,等待下一个第二控制信号(对应步骤803)。若存在,则从显示队列中读取渲染后的视频帧并交换到显示器(对应步骤802)。可见,本实施例中可以避免显示器显示异常。
[0056] 针对各待显示图像帧,处理器重复步骤201~步骤203,从而可以完成各视频帧的显示。
[0057] 本实施例中,解析线程、解码线程、渲染进程和显示进程为不同的进程,各自完成相应的功能,从而保证视频码流处理为视频帧以及显示视频帧之间延时较低。
[0058] 至此,本实施例中均以各视频帧对应的第二控制信号为起始时间进行数据交换,从而达到各视频帧开始显示的时刻相同。并且,各视频帧均在各自第二控制信号和后一帧的第一控制信号之间显示,即显示时长均为设定时间。换言之,本实施例中,各视频帧的刷新时刻和显示时长相同,可以保证视频显示更均匀和更细腻。
[0059] 图9是本发明一实施例提供的视频均匀显示方法的流程示意图,参见图9,一种视频均匀显示方法,包括步骤901~步骤905,其中:
[0060] 901,获取待显示视频帧。
[0061] 步骤901和步骤201的具体方法和原理一致,详细描述请参考图2及步骤201的相关内容,此处不再赘述。
[0062] 902,在接收到第一控制信号时,渲染所述待显示视频帧。
[0063] 步骤902和步骤202的具体方法和原理一致,详细描述请参考图2及步骤202的相关内容,此处不再赘述。
[0064] 903,获取显示队列中已缓存视频帧的数量。
[0065] 由于视频码流受到传输条件的影响会传输速率波动,导致显示线程读取不到渲染后的视频帧情况,从而无法正常显示。因此,本实施例中,处理器可以获取显示队列中已缓存渲染后的视频帧的数量。获取方式可以包括:
[0066] 方式一,处理器读取显示队列的数量标识,由数量标识确定视频帧的数量。
[0067] 方式二,处理器统计显示队列中已经缓存视频帧的数量。
[0068] 904,若所述数量等于第二设定数量,则转到步骤905。
[0069] 本实施例中,终端设备中预先存储显示队列中已缓存视频帧的第二设定数量,例如第二设定数量可以取值2帧。该第二设定数量可以根据视频码流的传输速度以及显示队列的大小进行调整,在此不作限定。
[0070] 然后,处理器判断显示队列中已缓存的视频帧的数量是否等于第二设定数量。若小于第二设定数量,则转到步骤901,继续获取待显示视频帧,以向显示队列中继续缓存渲染后的视频帧。若等于第二设定数量,则转到步骤905。
[0071] 本实施例中,通过在显示队列中缓存部分视频帧,可以克服视频码流波动的问题,从而提升显示质量
[0072] 905,在接收到第二控制信号时,将渲染后的视频帧交换到显示器;所述第一控制信号和所述第二控制信号之间间隔设定时间。
[0073] 步骤905和步骤203的具体方法和原理一致,详细描述请参考图2及步骤203的相关内容,此处不再赘述。
[0074] 至此,本实施例中在显示视频帧之前,通过缓存数帧视频帧,可以克服视频码流的波动。并且,本实施例中均以各视频帧对应的第二控制信号为起始时间进行数据交换,从而达到各视频帧开始显示的时刻相同。各视频帧均在各自第二控制信号和后一帧的第一控制信号之间显示,即显示时长均为设定时间,可以保证视频显示更均匀和更细腻。
[0075] 下面以安卓设备为例,结合附图10描述视频均匀显示方法的内容,图10是本发明实施例提供的一种视频均匀显示方法的流程示意图。参见图10,安卓设备从与其有通信关系的发送端接收到视频码流,安卓设备的处理器可以调用解析线程解析视频码流,从视频码流中解析出能够构成完整的一帧视频帧的多个视频码流,并将待解码的视频帧缓存至预先设置的帧队列。然后,处理器可以调用解码线程从帧队列中读取待解码的视频帧进行解码,解码过程可以由预先设置的解码器完成。
[0076] 处理器可以获取解码队列中已缓存视频帧的数量,对比数量与第一设定数量的大小,若数量小于第一设定数量,则将解码出的待显示视频帧缓存至解码队列。若数量等于第一设定数量,则丢弃解码队列中缓存时间最早的视频帧,并将解码出的待显示视频帧缓存至解码队列。
[0077] 处理器检测是否接收到第一控制信号,若未接收到,则处理器继续检测。若接收到第一控制信号,处理器调用预先设置的渲染进程,从解码队列中读取待显示视频帧进行渲染,并将渲染后的待显示视频帧缓存至显示队列。
[0078] 处理器检测是否接收到第二控制信号,若未接收到,则处理器继续检测。若接收到第二控制信号,处理器检测显示队列中是否存在渲染后的待显示视频帧,若不存在,则返回检测是否接收到第二控制信号,若检测到显示队列中存在视频帧,则获取显示队列中已缓存视频帧的数量,若数量小于第二设定数量,则返回检测是否接收到第二控制信号。若数量等于第二设定数量,处理器读取渲染后的视频帧,并交换到显示器。
[0079] 下面以IOS设备为例,结合附图11描述视频均匀显示方法的内容,图11是本发明实施例提供的一种视频均匀显示方法的流程示意图。参见图11,IOS设备根据视频码流处理为解码后的视频帧的步骤与安卓设备的获取解码后的视频帧的步骤相同,在此不再赘述。
[0080] 处理器检测是否接收到屏幕刷新回调信号,若未检测到,则继续检测,若检测到则确定显示标志是否为真,若显示标志为真,则将后台缓冲内的视频帧交换到显示器,若显示标志不为真,则检测解码队列是否为空。若解码队列为空,则返回继续检测是否接收到屏幕刷新回调信号,若解码队列不为空,则检测解码队列中已缓存视频帧是否超过最大缓冲数。若超过最大缓冲数,则丢弃解码队列中队头的一帧视频帧,然后获取解码队列中队头的一帧视频帧。若未超过最大缓冲数,则获取解码队列中队头的一帧视频帧。最后,处理器渲染待显示视频帧并缓存至后台缓冲,设置显示标志为真。
[0081] IOS设备中还设置有前台缓冲,在处理器将后台缓冲的视频帧交换到显示器的过程中,处理器还可以对后一帧视频帧进行渲染并缓存至前台缓冲。处理器在接收到屏幕刷新回调信号后,可以切换后台缓冲和前台缓冲的状态,即后台缓冲变为前台缓冲且前台缓冲变为后台缓冲。
[0082] 图12是本发明一实施例提供的终端设备的框图,参见图12,一种终端设备,包括处理器1201、存储器1202和通信总线1203。存储器1202存储若干条计算机指令、缓存来自通信总线1203的视频码流以及由视频码流转换成的视频帧;所述处理器1201通过通信总线1203与存储器1202连接,用于从所述存储器1202中读取计算机指令以实现:
[0083] 获取待显示视频帧;
[0084] 在接收到第一控制信号时,渲染所述待显示视频帧;
[0085] 在接收到第二控制信号时,将渲染后的视频帧交换到所述终端设备的显示器;所述第一控制信号和所述第二控制信号之间间隔设定时间。
[0086] 在一实施例中,所述第一控制信号和所述第二控制信号为来自所述显示器的垂直同步信号。
[0087] 在一实施例中,所述设定时间为所述显示器的刷新周期。
[0088] 在一实施例中,所述处理器1201用于获取待显示视频帧之前,还用于:
[0089] 调用预先设置的用于解析的解析线程对接收的视频码流进行解析,当存在多个视频码流能够构成完整的一帧视频帧时,将所述多个视频码流作为待解码的视频帧缓存至帧队列;
[0090] 调用预先设置的用于解码的解码线程,将所述多个视频码流解码出视频帧,并缓存所述视频帧至解码队列。
[0091] 在一实施例中,所述处理器1201用于缓存所述视频帧至解码队列之前,还用于:
[0092] 获取所述解码队列中已缓存视频帧的数量;
[0093] 若所述数量等于第一设定数量,则丢弃所述解码队列中缓存时间最早的视频帧。
[0094] 在一实施例中,所述处理器1201用于丢弃所述解码队列中缓存时间最早的视频帧包括:
[0095] 丢弃位于所述解码队列队头的视频帧且将新获取的视频帧放至所述解码队列的队尾。
[0096] 在一实施例中,所述处理器1201用于缓存所述视频帧至解码队列之后,还用于:
[0097] 获取所述解码队列中已缓存视频帧的数量;
[0098] 若所述数量等于第二设定数量,则执行获取待显示视频帧的步骤。
[0099] 在一实施例中,在接收到第一控制信号时,所述处理器1201用于渲染所述待显示视频帧包括:
[0100] 在接收到第一控制信号时,调用预先设置的渲染线程;
[0101] 利用所述渲染进程渲染所述待显示视频帧。
[0102] 在一实施例中,所述处理器1201用于利用所述渲染进程渲染所述待显示视频帧包括:
[0103] 利用所述渲染线程从解码队列中读取视频帧进行渲染;
[0104] 利用所述渲染线程将渲染后的视频帧缓存至显示队列。
[0105] 在一实施例中,调用所述渲染线程,是指将所述渲染线程从后台状态切换至前台状态。
[0106] 在一实施例中,所述终端设备1200包括预告设置的显示队列,渲染后的待显示视频帧缓存至所述显示队列。
[0107] 在一实施例中,所述处理器1201用于在接收到第二控制信号后,还用于:
[0108] 检测所述显示队列中是否存在渲染后的待显示视频帧;
[0109] 若存在,则执行在接收到第二控制信号时,将渲染后的视频帧交换到显示器的步骤;若不存在,则等待下一个第二控制信号。
[0110] 在一实施例中,所述待显示视频帧缓存在预先设置的后台缓存中。
[0111] 在一实施例中,所述处理器1201用于在接收到第二控制信号时,将渲染后的视频帧交换到显示器包括:
[0112] 在接收到第二控制信号时,调用用于显示的显示线程,通过所述显示线程从所述后台缓存中读取渲染后的视频帧,并将所述视频帧交换到显示器。
[0113] 在一实施例中,调用显示线程,是指将所述显示线程从后台状态切换至前台状态。
[0114] 在一实施例中,所述第一控制信号和所述第二控制信号为来自Sleep函数或者计时器的定时同步信号。
[0115] 在一实施例中,所述第一控制信号和所述第二控制信号为来自系统的屏幕刷新回调信号。
[0116] 本发明实施例还提供了一种机器可读存储介质,可以配置在终端设备;所述机器可读存储介质上存储有若干计算机指令、视频码流以及由视频码流转换成的视频帧;所述计算机指令被执行时进行如下处理:
[0117] 获取待显示视频帧;
[0118] 在接收到第一控制信号时,渲染所述待显示视频帧;
[0119] 在接收到第二控制信号时,将渲染后的视频帧交换到所述终端设备的显示器;所述第一控制信号和所述第二控制信号之间间隔设定时间。
[0120] 需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0121] 以上对本发明实施例所提供的检测装置和方法进行了详细介绍,本发明中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈