SVC视频自适应降帧率的方法及系统技术方案

技术编号:15960031 阅读:67 留言:0更新日期:2017-08-08 09:58
本发明专利技术提供了一种SVC视频自适应降帧率的方法及系统,包括如下步骤:SVC视频码流缓存步骤:将SVC视频码流的各个图像帧按所属的SVC时域层进行编号,并按编号将图像帧放入不同的队列;码流处理步骤:通过码流处理模块从队列中取出图像帧,以码流处理模块的实际处理速度,实现自适应降帧率;其中,所述码流处理模块包括:网络传输模块、图像解码模块中的任一种;本发明专利技术中的方法能够在网络传输带宽不足或解码性能不足时,能自动降低图像帧率。

【技术实现步骤摘要】
SVC视频自适应降帧率的方法及系统
本专利技术涉及网络多媒体通信和视频播放
,具体地,涉及SVC视频自适应降帧率的方法及系统。
技术介绍
SVC,即ScaledVideoCoding,可分层视频编解码,是一种能将视频流分割为多个分辨率、质量和帧速率层的技术。SVC编码的视频可以实现一次编码产生具有不同帧率、分辨率的视频压缩码流,以适应不同网络带宽、不同的显示屏幕和终端解码能力的应用需求。在视频会议、视频实时监控等领域要求视频图像流畅和低延迟。而不良的网络环境常常导致图像卡顿和延时加大。一旦发生网络丢帧,则一般会丢到下一个图像关键帧I帧,故图像卡顿现象严重。本专利技术提出了一种针对帧率的自适应降帧率的方法,以适应不同的网络带宽和终端解码能力。本专利技术使用随机丢弃某些图像帧的方法,主动降低码流,避免网络拥堵,能实现视频传输的低延迟。同时由于不同于丢到下个I帧的传统方法,允许随机丢帧某些P帧,故在视觉上图像的流畅性大大优于丢到下个I帧的方法。
技术实现思路
针对现有技术中的缺陷,本专利技术的目的是提供一种SVC视频自适应降帧率的方法及系统。根据本专利技术提供的SVC视频自适应降帧率的方法,包括如下步骤:SVC视频码流缓存步骤:将SVC视频码流的各个图像帧按所属的SVC时域层进行编号,并按编号将图像帧放入不同的队列;码流处理步骤:通过码流处理模块从队列中提取出图像帧,以码流处理模块的实际处理速度进行自适应降帧率。优选地,所述SVC视频码流缓存步骤包括:根据SVC视频码流的帧率类型分别对每一个图像帧进行编号,图像帧的编号的取值由该图像帧被包含的时域层数决定;若一图像帧被n个时域层包含,则该图像帧的编号t的计算公式如下:t=M-n;式中:t表示图像帧编号,M表示SVC视频码流的帧率类型总数,n表示图像帧被包含的时域层数。优选地,所述码流处理步骤包括:步骤A1:根据SVC视频码流的帧率类型数建立M个队列,分别记为:Q0、…、Qi、…、QM-1;Qi表示第i+1个队列,QM-1表示第M个队列;步骤A2:将视频帧编号t=i的图像帧放入第i+1个队列Qi,且Qi队列内部的各个图像帧按照SVC视频码流顺序组成链表;其中i=0,1,2…M-1;步骤A3:按优先级从队列中提取出图像帧。优选地,所述步骤A3包括:步骤A3.1:出队列任务方等待帧的入队列信号,若收到帧入队列信号,从队列Q0开始扫描每个队列,尝试出队列操作,将当前队列记为Qn,则初始时刻的n=0;步骤A3.2:从当前队列Qn中取出一图像帧并发送给图像帧处理模块,图像帧处理模块通过原始码流的链表指针向前遍历原始码流链表,删除当前取出的帧的之前的所有图像帧,并将这些帧从队列中去除;其中,在图像帧内部数据块在入队时已保存了一个原始码流的链表指针,通过该链表指针指针向前遍历原始码流链表;步骤A3.3:判断n的值;若n的值小于M,则判断当前队列Qn是否为空,若当前队列Qn为空,则令n自增1后返回执行步骤A3.2;若当前队列Qn非空,则返回执行步骤A3.1;若n的值大于等于M,则返回等待执行步骤A3.1。优选地,所述码流处理模块包括:网络传输模块、图像解码模块中的任一种。根据本专利技术提供的SVC视频自适应降帧率的系统,包括:SVC视频码流缓存模块和码流处理模块;所述SVC视频码流缓存模块,用于将SVC视频码流的各个图像帧按所属的SVC时域层进行编号,并按编号将图像帧放入不同的队列;所述码流处理模块,用于从队列中提取出图像帧,以码流处理模块的实际处理速度进行自适应降帧率。优选地,所述SVC视频码流缓存模块能够根据SVC视频码流的帧率类型分别对每一个图像帧进行编号,图像帧的编号的取值由该图像帧被包含的时域层数决定;若一图像帧被n个时域层包含,则该图像帧的编号t的计算公式如下:t=N-n;式中:t表示图像帧编号,N表示SVC视频码流的帧率类型总数,n表示图像帧被包含的时域层数。优选地,所述码流处理模块包括:队列建立模块:用于根据SVC视频码流的帧率类型数建立N个队列,分别记为:Q1、…、Qi、…、QN;Qi表示第i个队列,QN表示第N个队列;图像帧缓存模块:用于将视频帧编号t=i的图像帧放入第i个队列Qi,且Qi队列内部的各个图像帧按照SVC视频码流顺序组成链表;其中i=1,2,3…N;同时在图像帧内部数据块保存一个指针,指向原始码流的上一帧,形成原始码流的链表;图像帧提取模块:用于按优先级从队列中提取出图像帧。与现有技术相比,本专利技术具有如下的有益效果:1、本专利技术提供的SVC视频自适应降帧率的方法能够在网络传输带宽不足或解码性能不足时,能自动降低图像帧率。2、本专利技术提供的SVC视频自适应降帧率的方法的优选方案,能够在图像帧的处理模块的处理速度足够快时,队列中的图像帧不会有堆积现象发生,图像帧进入队列后立即会被取出。当图像帧的处理模块的处理速度小于图像帧的入队速度,则会在队列中积累多个图像帧,出队列的操作会优先取出t值低的队列,并通过原始码流链表指针丢弃图像帧,降低帧率。丢帧操作能保证从队列取出的图像帧依次形成正确的运动图像参考关系,能保证所有出队列的帧能被正确的解码。实现了不同于丢到下个I帧的传统方法,允许随机丢帧某些P帧,在视觉上图像的流畅性大大优于丢到下个I帧的方法。附图说明通过阅读参照以下附图对非限制性实施例所作的详细描述,本专利技术的其它特征、目的和优点将会变得更明显:图1为SVC视频帧编码示意图;图2为SVC视频帧队列提出示意图;图3为SVC视频帧队列出队列操作流程图。具体实施方式下面结合具体实施例对本专利技术进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本专利技术,但不以任何形式限制本专利技术。应当指出的是,对本领域的普通技术人员来说,在不脱离本专利技术构思的前提下,还可以做出若干变化和改进。这些都属于本专利技术的保护范围。根据本专利技术提供的SVC视频自适应降帧率的方法,包括如下步骤:SVC视频码流缓存步骤:将SVC视频码流的各个图像帧按所属的SVC时域层进行编号,并按编号将图像帧放入不同的队列;码流处理步骤:通过码流处理模块从队列中提取出图像帧,以码流处理模块的实际处理速度进行自适应降帧率。所述步骤1包括:根据SVC视频码流的帧率类型分别对每一个图像帧进行编号,图像帧的编号的取值由该图像帧被包含的时域层数决定;若一图像帧被n个时域层包含,则该图像帧的编号t的计算公式如下:t=N-n;式中:t表示图像帧编号,N表示SVC视频码流的帧率类型总数,n表示图像帧被包含的时域层数。所述步骤2中的码流处理模块包括:网络传输模块、图像解码模块中的任一种。所述步骤2包括:步骤2.1:根据SVC视频码流的帧率类型数建立N个队列,分别记为:Q1、…、Qi、…、QN;Qi表示第i个队列,QN表示第N个队列;步骤2.2:将视频帧编号t=i的图像帧放入第i个队列Qi,且Qi队列内部的各个图像帧按照SVC视频码流顺序组成链表;其中i=0,1,2…N;步骤2.3:按优先级从帧队列中取出图像帧。所述步骤2.3包括:步骤2.3.1:出队列任务方等待帧的入队列信号,若收到帧入队列信号,从队列开始扫描每个队列,尝试出队列操作,将当前队列记为Qn,则初始时刻的n=0;步骤2.3.2:从当前队列Qn中取出一图像帧并发送给图像帧处本文档来自技高网...

【技术保护点】
一种SVC视频自适应降帧率的方法,其特征在于,包括如下步骤:SVC视频码流缓存步骤:将SVC视频码流的各个图像帧按所属的SVC时域层进行编号,并按编号将图像帧放入不同的队列;码流处理步骤:通过码流处理模块从队列中提取出图像帧,以码流处理模块的实际处理速度进行自适应降帧率。

【技术特征摘要】
1.一种SVC视频自适应降帧率的方法,其特征在于,包括如下步骤:SVC视频码流缓存步骤:将SVC视频码流的各个图像帧按所属的SVC时域层进行编号,并按编号将图像帧放入不同的队列;码流处理步骤:通过码流处理模块从队列中提取出图像帧,以码流处理模块的实际处理速度进行自适应降帧率。2.根据权利要求1所述的SVC视频自适应降帧率的方法,其特征在于,所述SVC视频码流缓存步骤包括:根据SVC视频码流的帧率类型分别对每一个图像帧进行编号,图像帧的编号的取值由该图像帧被包含的时域层数决定;若一图像帧被n个时域层包含,则该图像帧的编号t的计算公式如下:t=M-n;式中:t表示图像帧编号,M表示SVC视频码流的帧率类型总数,n表示图像帧被包含的时域层数。3.根据权利要求1所述的SVC视频自适应降帧率的方法,其特征在于,所述码流处理步骤包括:步骤A1:根据SVC视频码流的帧率类型数建立M个队列,分别记为:Q0、…、Qi、…、QM-1;Qi表示第i+1个队列,QM-1表示第M个队列;步骤A2:将视频帧编号t=i的图像帧放入第i+1个队列Qi,且Qi队列内部的各个图像帧按照SVC视频码流顺序组成链表;其中i=0,1,2…M-1;步骤A3:按优先级从队列中提取出图像帧。4.根据权利要求3所述的SVC视频自适应降帧率的方法,其特征在于,所述步骤A3包括:步骤A3.1:出队列任务方等待帧的入队列信号,若收到帧入队列信号,从队列Q0开始扫描每个队列,尝试出队列操作,将当前队列记为Qn,则初始时刻的n=0;步骤A3.2:从当前队列Qn中取出一图像帧并发送给图像帧处理模块,图像帧处理模块通过原始码流的链表指针向前遍历原始码流链表,删除当前取出的帧的之前的所有图像帧,并将这些帧从队列中去除;其中,在图像帧内部数据块在入队时已保存了一个原始码流的链表指针,通过该链表指针...

【专利技术属性】
技术研发人员:李志刚
申请(专利权)人:千目聚云数码科技上海有限公司
类型:发明
国别省市:上海,31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1