一种用于多屏互动的传屏视频处理方法

文档序号:10516342阅读:256来源:国知局
一种用于多屏互动的传屏视频处理方法
【专利摘要】本发明公开了一种用于多屏互动的传屏视频处理方法,该方法包括以下步骤:接收传屏视频数据,并获取传屏视频数据对应的数据包;将数据包存入等待解码队列中;从等待解码队列中提取数据包,并判断数据包的数量是否大于预设的阈值;若判断的结果为是,则提取数据包中的对应当前视频序列的下个数据包的参考数据,并返回提取数据包,并判断数据包的数量是否大于预设的阈值的步骤;若判断的结果为否,则对数据包进行解码。由此,本发明可以尽快的消耗等待解码队列中的数据,防止数据堆积造成的延时增大。
【专利说明】一种用于多屏互动的传屏视频处理方法
[0001]
技术领域
[0002]本发明涉及多媒体技术领域,尤其是涉及一种用于多屏互动的传屏视频处理方法。
[0003]
【背景技术】
[0004]随着信息技术的不断发展,可以实现不同资源在不同平台设备上进行同时共享展示,实现多屏互动,丰富了用户的多媒体生活。
[0005]现有技术的多屏互动中的客户端的对传屏视频的处理方法有以下两种方案: 第一种方案是:首先网络接收与解复用(demux)传屏视频数据,以得到传屏视频数据对应的数据包,然后解码和显示。
[0006]其中,解码的过程具体为对视频传屏数据对应的数据包进行解码,并进一步将解码后的数据从YUV格式转换为RGB格式,最后将转换后的帧数据存入等待显示队列。
[0007]显示的过程具体为从显示队列中取出帧数据,根据当前帧的时间戳与上一帧的时间戳计算当前帧的显示时间,若当前帧可以立刻显示则显示当前帧,否则休眠显示线程直到当前帧可以显示为止。
[0008]第二种方案是:首先接收源屏幕设备编码得到的包括视频帧和音频帧的数据帧,视频帧包括:1帧;若检测到当前所接收到数据帧中的视频帧未到达第二个I帧,则删除当前所接收到的数据帧;若检测到当前所接收到数据帧中的视频帧是第二个I帧,则解码当前以及第二个I帧之后所接收到的数据帧,并将解码后得到的映像显示到屏幕上。由此可以有效减少传屏映像时的延迟,让多屏互动时可以更有效的达到实时显示的效果。
[0009]但是第一种方案存在以下缺陷:
解码线程处理一帧数据的耗时要高于网络接收、解复用操作的耗时(特别是在传屏视频数据是高清视频时耗时更大),即等待解码队列的数据消耗速度小于其数据产生速度。在现有技术中,若在使用多屏互动的过程中无线网络出现波动或服务端编码器输出的帧率高于客户端解码线程的处理速度,则势必会造成客户端等待解码队列中的视频数据堆积,视频数据堆积越多则意味着最新的视频越得不到显示,即延时越大,体验越差。进一步的,客户端的显示线程从等待显示队列中取出解码好的帧数据后,还需要再计算当前帧的显示时间,并根据需要休眠显示线程,这样只会导致延时更大,体验更差。
[0010]第二种方案存在以下缺陷:
第二种方案的核心是在客户端传屏播放开始阶段丢弃一些视频帧,直到收到第二个I帧才开始按正常流程解码播放。由于其丢弃了第一个视频帧序列(视频帧序列时间长短不一,一般在0.5-4S之间),必然会导致客户端从开始播放传屏视频到显示出传屏画面的时间延长(延长了一个视频帧序列的长度),即开始播放前的黑屏时间变长,不利于用户体验。[0011 ]同时,第二种方案只涉及传屏视频的开始播放阶段,其无法解决上述第一种方案的播放过程中的问题,所以其同样具有第一种方案的缺陷。
[0012]

【发明内容】

[0013]本发明主要解决的技术问题是提供一种显示终端及用于多屏互动的传屏视频处理方法,既能确保客户端等待显示队列中解码好的传屏视频数据能尽快显示,又不会在等待解码队列中产生传屏视频数据的积压,视频延时小,提高用户的体验。
[0014]为解决上述技术问题,本发明采用的一个技术方案是:提供一种用于多屏互动的传屏视频处理方法,该方法包括以下步骤:接收传屏视频数据,并获取传屏视频数据对应的数据包;将数据包存入等待解码队列中;从等待解码队列中提取数据包,并判断数据包的数量是否大于预设的阈值;若判断的结果为是,则提取数据包中的对应当前视频序列的下个数据包的参考数据,并返回提取数据包,并判断数据包的数量是否大于预设的阈值的步骤;若判断的结果为否,则对数据包进行解码。
[0015]其中,方法还包括:将解码后的数据直接存入等待显示队列中。
[0016]其中,方法还包括:从显示队列中取出解码后的数据并直接进行显示。
[0017]其中,获取传屏视频数据对应的数据包的步骤包括:对传屏视频数据进行解复用,以获取传屏视频数据对应的数据包。
[0018]其中,将数据包存入等待解码队列中的步骤包括:将解复用后的数据包存入等待解码队列。
[0019]为解决上述技术问题,本发明采用的一个技术方案是:提供一种显示终端,该显示终端包括:接收模块,用于接收传屏视频数据;数据包获取模块,用于获取传屏视频数据对应的数据包;第一存储模块,用于将数据包存入等待解码队列中;数据包提取模块,用于从等待解码队列中提取数据包;判断模块,用于判断数据包的数量是否大于预设的阈值;处理模块,用于在判断模块判断的结果为是时,提取数据包中的对应当前视频序列的下个数据包的参考数据,并控制数据包提取模块继续提取数据包,以及判断模块继续判断数据包的数量是否大于预设的阈值;在判断模块判断的结果为否时,对数据包进行解码。
[0020]其中,显示终端进一步包括第二存储模块,用于将解码后的数据直接存入等待显示队列中。
[0021]其中,显示终端进一步包括显示模块,显示模块用于从显示队列中取出解码后的数据并直接进行显示。
[0022]其中,数据包获取模块为解复用模块,用于对传屏视频数据进行解复用,以获取传屏视频数据对应的数据包。
[0023]其中,第一存储模块进一步用于将解复用后的数据包存入等待解码队列。
[0024]本发明的有益效果是:区别于现有技术的情况,本发明的显示终端在判断到传屏视频数据对应的数据包的数量大于预设的阈值时,只提取数据包中的对应当前视频序列的下个数据包的参考数据,只有数据包的数量小于或等于预设的阈值时才进行解码,由此可以避免下一个数据包需要正常解码时因为没有参考数据导致花屏的情况下,又可以尽快的消耗等待解码队列中的数据,防止数据堆积造成的延时增大。
[0025]
【附图说明】
[0026]图1是本发明实施例提供的一种显示终端的结构示意图;
图2是本发明实施例提供的一种用于多屏互动的传屏视频处理方法的流程图。
[0027]
【具体实施方式】
[0028]请参阅图1,图1是本发明实施例提供的一种显示终端的结构示意图。如图1所示,本发明实施例提供的显示终端10具体为多屏互动中的客户端终端。其主要是接收服务端传输的传屏视频数据,并对该传屏视频数据进行解码等操作后显示给用户。
[0029 ]具体而言,显示终端1包括接收模块11、数据包获取模块12、数据包提取模块13、判断模块14、处理模块15以及第一存储模块16。
[0030]其中,接收模块11用于接收服务端的传屏视频数据。接收模块11具体可为蓝牙模块或者天线模块等。数据包获取模块12用于获取传屏视频数据对应的数据包。第一存储模块16用于将数据包存入等待解码队列中。数据包提取模块13用于从等待解码队列中提取数据包。判断模块14用于判断数据包的数量是否大于预设的阈值。处理模块15用于在判断模块14判断的结果为是时,提取数据包中的对应当前视频序列的下个数据包的参考数据,避免下一个数据包需要正常解码时因为没有参考数据导致花屏。处理模块15进一步控制数据包提取模块12继续提取数据包,以及判断模块14继续判断数据包的数量是否大于预设的阈值。在判断模块14判断的结果为否时,对数据包进行解码。
[0031]其中,数据包的参考数据具体为下一视频序列的参考图像和当前帧的预测值与预测误差。
[0032]值得注意的是,在判断模块14判断的结果为是时,处理模块15提取了当前的数据包中的对应当前视频序列的下个数据包的参考数据之后,即将当前的数据包舍弃,即当前的数据包不再进行解码。由此可以节省了解码的时间。
[0033]因此,在本实施例中,可以避免下一个数据包需要正常解码时因为没有参考数据导致花屏的情况下,又可以尽快的消耗等待解码队列中的数据,防止数据堆积造成的延时增大。
[0034]进一步的,显示终端10进一步包括第二存储模块18,用于将解码后的数据直接存入等待显示队列中。由此可知,本实施例省去了现有技术中的格式转换的步骤,因此更进一步节省了解码的时间。
[0035]进一步的,显示终端10进一步包括显示模块17,显示模块17用于从显示队列中取出解码后的数据并直接进行显示。由此,本实施例的显示终端10不需要等待显示,及时将视频显示给用户,提高了用户体验。
[0036]本实施例中,数据包获取模块12具体可为解复用模块,用于对传屏视频数据进行解复用处理,以获取传屏视频数据对应的数据包。其中,第一存储模块16进一步将解复用后的数据包存入等待解码队列中。
[0037]承前所述,本实施例既可尽快的消耗等待解码队列中的数据,防止数据堆积造成的延时增大。又可及时的将解码好的数据显示给用户,提高了用户的体验。
[0038]本申请还基于前文所述的显示终端提供一种用于多屏互动的传屏视频处理方法。具体请参阅图2。
[0039]如图2所示,本实施例的用于多屏互动的传屏视频处理方法包括以下步骤:
步骤Si:接收传屏视频数据,并获取传屏视频数据对应的数据包。
[0040]具体为:对传屏视频数据进行解复用,以获取传屏视频数据对应的数据包。
[0041 ]步骤S2:将数据包存入等待解码队列中;
具体为将步骤SI解复用后的数据包存入等待解码队列中。
[0042]步骤S3:从等待解码队列中提取数据包,并判断数据包的数量是否大于预设的阈值。
[0043]本步骤中,若判断的结果为是,则跳转到步骤S4,若判断的结果为否,则跳转到步骤S5。
[0044]步骤S4:提取数据包中的对应当前视频序列的下个数据包的参考数据,并返回步骤S2。
[0045]其中,数据包的参考数据具体为下一视频序列的参考图像和当前帧的预测值与预测误差。
[0046]本步骤可避免下一个数据包需要正常解码时因为没有参考数据导致花屏。
[0047]值得注意的是,在本步骤中,提取了当前的数据包中的对应当前视频序列的下个数据包的参考数据之后,即将当前的数据包舍弃,即当前的数据包不再进行解码。由此可以节省了解码的时间。
[0048]步骤S5:对数据包进行解码。
[0049]方法还包括:将解码后的数据直接存入等待显示队列中以及从显示队列中取出解码后的数据并进行显示。由此可以及时将视频显示给用户,提高了用户的体验。
[0050]综上所述,本发明通过在传屏视频数据对应的数据包的数量大于预设的阈值时,只提取数据包中的对应当前视频序列的下个数据包的参考数据,由此可以避免下一个数据包需要正常解码时因为没有参考数据导致花屏的情况下,又可以尽快的消耗等待解码队列中的数据,防止数据堆积造成的延时增大。
[0051]进一步的,本发明还将解码后的数据直接存入等待显示队列中以及从显示队列中取出解码后的数据并进行显示。由此可以及时将视频显示给用户,提高了用户的体验。
[0052]以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
【主权项】
1.一种用于多屏互动的传屏视频处理方法,其特征在于,所述方法包括以下步骤: 接收传屏视频数据,并获取所述传屏视频数据对应的数据包; 将所述数据包存入等待解码队列中; 从所述等待解码队列中提取所述数据包,并判断所述数据包的数量是否大于预设的阈值; 若判断的结果为是,则提取所述数据包中的对应当前视频序列的下个数据包的参考数据,并返回提取所述数据包,并判断所述数据包的数量是否大于预设的阈值的步骤; 若判断的结果为否,则对所述数据包进行解码; 所述获取所述传屏视频数据对应的数据包的步骤包括: 对所述传屏视频数据进行解复用,以获取所述传屏视频数据对应的数据包; 所述将所述数据包存入等待解码队列中的步骤包括: 将解复用后的数据包存入等待解码队列。2.根据权利要求1所述的方法,其特征在于,所述方法还包括: 将解码后的数据直接存入等待显示队列中。3.根据权利要求2所述的方法,其特征在于,所述方法还包括: 从所述显示队列中取出所述解码后的数据并直接进行显示。
【文档编号】H04N21/4402GK105872728SQ201610370769
【公开日】2016年8月17日
【申请日】2016年5月28日
【发明人】刘健文
【申请人】刘健文
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1