一种视频帧传输方法及装置与流程

文档序号:12499445阅读:196来源:国知局
一种视频帧传输方法及装置与流程

本发明涉及数据通信领域,具体而言,涉及一种视频帧传输方法及装置。



背景技术:

随着社会的发展,视频流在网络中的传输变得越来越平常。但是,由于视频流的数据量较大,当网络阻塞时,会出现视频帧丢失的情况,进而导致接收端在播放接收到的视频帧时出现卡顿现象。



技术实现要素:

有鉴于此,本发明实施例的目的在于提供一种视频帧传输方法及装置。

第一方面,本发明实施例提供一种视频帧传输方法,所述方法包括:获取当前网络情况;根据当前网络情况、及已缓存的编码视频流中各个增强层对应的差异值区间,确定待发送的帧,其中,所述编码视频流包括关键帧及至少一个视频帧,每个所述视频帧对应一个参考帧,属于同一增强层中的每个所述视频帧与该视频帧的参考帧的差异值均属于同一区间;发送所述待发送的帧。

第二方面,本发明实施例提供一种视频帧传输装置,所述装置包括:获取模块,用于获取当前网络情况;第一处理模块,用于根据当前网络情况、及已缓存的编码视频流中各个增强层对应的差异值区间,确定待发送的帧,其中,所述编码视频流包括关键帧及至少一个视频帧,每个所述视频帧对应一个参考帧,属于同一增强层中的每个所述视频帧与该视频帧的参考帧的差异值均属于同一区间;发送模块,用于发送所述待发送的帧。

与现有技术相比,本发明实施例提供的一种视频帧传输方法及装置,通过根据当前网络情况及从已缓存的编码视频流中各个增强层对应的差异值区间,实时的确定待发送的帧,并立即将待发送的帧发送,通过这种方式,能够实现实时的发送与当前网络情况相适应的帧,解决了在网络阻塞时,传输编码视频流时出现帧丢失的情况,并且待发送的帧根据已缓存的编码视频流中各个增强层对应的差异值区间来确定,丢弃了相对不重要的视频帧,能够保证重要的帧及时、完整的发送,进而使得视频接收端能够完整的播放视频,避免了视频播放时的卡顿现象。

为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1是本发明实施例提供的终端设备与服务器交互的示意图。

图2是本发明实施例提供的一种视频帧传输方法的流程图。

图3是本发明实施例提供的编码单元的示意图。

图4是本发明实施例提供的编码单元的分层结构示意图。

图5是本发明实施例提供的一种视频帧传输方法中的步骤S400的一种详细流程图。

图6是本发明实施例提供的丢弃一层增强层的原理示意图。

图7是本发明实施例提供的一种视频帧传输方法中的部分流程图。

图8是本发明实施例提供的丢弃两层增强层的原理示意图。

图9是本发明实施例提供的丢弃三层增强层的原理示意图。

图10是本发明实施例提供的一种视频帧传输方法中的步骤S400的另一种详细流程图。

图11是本发明实施例提供的一种视频帧传输装置的功能模块示意图。

具体实施方式

下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本发明的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性或时间先后。

图1示出了本发明实施例提供的一种终端设备与服务器交互的示意图。所述服务器100与所述终端设备200之间通过网络进行通信连接,以进行数据通信或交互。所述服务器100可以是视频监控服务器VM、网络硬盘录像机NVR、网络服务器、数据库服务器、个人电脑(personal computer,PC)等。所述终端设备200可以是网络摄像机、个人电脑(personal computer,PC)、平板电脑、智能手机等等。

图2示出了本发明实施例提供的一种视频帧传输方法的流程图,请参阅图2,本实施例描述的是终端设备的处理流程,所述方法包括:

步骤S300,获取当前网络情况。

当前网络情况可以包括当前网络带宽,当前网络丢包率,当前网络转发率等。获取当前网络情况的实施方式有多种,例如,可以通过第三方应用来获取当前网络情况。

步骤S400,根据当前网络情况、及已缓存的编码视频流中各个增强层对应的差异值区间,确定待发送的帧,其中,所述编码视频流包括关键帧及至少一个视频帧,每个所述视频帧对应一个参考帧,属于同一增强层中的每个所述视频帧与该视频帧的参考帧的差异值均属于同一区间。

编码视频流,是指用视频编码算法对画面进行压缩编码后,形成的编码视频流。其中,视频编码算法可以是H.264编码算法,H.265编码算法或者分层编码算法等。

关键帧,是指编码视频流中携带视频流关键信息的帧,可以为I帧或部分P帧。其中,所述编码视频流中可以包括一个或多个关键帧。

视频帧,是指编码视频流中除关键帧外的其它帧,视频帧中没有完整画面数据,只有与其对应参考帧的差别数据,其解码依赖于其它帧,例如,可以为P帧。每个所述视频帧对应的参考帧,可以是关键帧或者其它视频帧。若属于同一增强层中的每个所述视频帧与该视频帧的参考帧的差异值均相同,则所述增强层对应的差异值区间为该差异值。

待发送的帧,是指从所述编码视频流中包括的关键帧及至少一个视频帧中确定的一部分帧。

作为一种实施方式,所述编码视频流中包括多个所述关键帧。请参阅图3至图4,图3示出了一个编码视频流,该编码视频流中包括2个关键帧及9个视频帧,其中,关键帧为I帧和P5帧,视频帧为P1帧 ̄P4帧及P6帧 ̄P10帧,对于每个视频帧而言,有一个与其对应的参考帧,如图3所示,P1帧、P3帧与I帧相对应,P2帧与P1帧对应,P4帧与P3帧对应,P6帧、P8帧与P5帧相对应,P7帧与P6帧对应,P9帧与P8帧对应,P10帧与P9帧对应。分别求出每个视频帧与该视频帧对应的参考帧的差异值,作为一种实施方式,每个视频帧与该视频帧对应的参考帧的差异值为每个视频帧与该视频帧对应的参考帧的的亮度差的绝对值。如图3所示,求出P1帧与I帧的差异值P1’,P2帧与P1帧的差异值P2’,P3帧与I帧的差异值P3’,依次类推,求出如图3所示的差分值序列P1’ ̄P10’。

进一步的,如图4所示,将差异值属于同一区间的视频帧构成同一增强层,每个所述增强层与一个差异值区间相对应。若差异值P3’与P8’属于第一差异值区间,差异值P1’、P6’、P9’属于第二差异值区间,差异值P2’、P4’、P7’、P10’属于第三差异值区间,则编码单元包括一个基础层及3个增强层,基础层lay0中包括I帧和P5帧;增强层lay1包括P3帧和P8帧,增强层lay1与第一差异值区间对应;增强层lay2包括P1帧、P6帧及P9帧,增强层lay2与第二差异值区间对应;增强层lay3包括P2帧、P4帧、P7帧、及P10帧,增强层lay3与第三差异值区间对应。可以理解的是,属于不同增强层中的每个视频帧与该视频帧对应的参考帧的差异值均不同,并且对于不同增强层,其对应的差异区间不同。进一步的,对于差异值区间较小的增强层,该增强层内的视频帧优先级较低,对于差异值区间较大的增强层,该增强层内的视频帧优先级较高。

作为一种实施方式,可以开辟一个内存空间,用于存放包括编码视频流,将编码视频流缓存在该内存空间中,当获取到当前网络情况时,从已缓存的编码视频流中确定待发送的帧并发送。其中,开辟的内存空间的大小与编码码率对应,例如,若终端设备的编码码率为2Mbps,则若需要存储一个5秒的编码视频流,则需要开辟一个20Mb的内存空间。

作为一种实施方式,步骤S400可以包括:若当前网络阻塞,根据各个增强层对应的差异值区间的排序结果,丢弃所述编码视频流中的至少一个增强层中的所有视频帧,将所述编码视频流中剩余的帧作为待发送的帧。

若当前网络阻塞,可以对各个所述增强层对应的差异值区间进行排序,排序的方式可以为从大到小排序,也可以是从小到大排序。根据不同的排序方式,丢弃编码视频流中的至少一个增强层中的所有视频帧,将所述编码视频流中剩余的帧作为待发送的帧。可以理解的是,若当前网络正常时,将已缓存的编码视频流中的所有帧都发送出去,能够保证在接收端接收到帧时,正常观看到流畅且高质量的视频画面。

进一步的,作为一种具体的实施方式,请参阅图5,步骤S400可以包括:

步骤S411,按照从小到大的顺序,对各个所述增强层对应的差异值区间进行排序。

步骤S412,将差异值区间最小的增强层中的所有视频帧丢弃,将所述编码视频流中剩余的帧作为待发送的帧。

请参阅图6,若排序结果为:增强层lay3对应的差异值区间小于增强层lay2对应的差异值区间,增强层lay2对应的差异值区间小于增强层lay1对应的差异值区间,则增强层lay3对应的差异值区间最小,此时将增强层lay3中的所有视频帧丢弃,如图4所示,增强层lay3包括P2帧、P4帧、P7帧、及P10帧,则将P2帧、P4帧、P7帧、及P10帧丢弃后,剩余的视频帧为I帧、P1帧、P3帧、P5帧、P6帧、P8帧、及P9帧,将所述编码视频流中剩余的I帧、P1帧、P3帧、P5帧、P6帧、P8帧、及P9帧作为待发送的帧。

进一步的,请参阅图7,所述方法还包括:

步骤S413,再次获取当前网络情况。

步骤S414,若当前网络仍阻塞,根据排序结果,继续丢弃所述编码视频流中的至少一个增强层中的所有视频帧,当所述编码视频流中仅剩下关键帧,仅将所述关键帧作为待发送的帧。

请参阅图8,若排序结果为:增强层lay3对应的差异值区间小于增强层lay2对应的差异值区间,增强层lay2对应的差异值区间小于增强层lay1对应的差异值区间。此时已经丢弃了增强层lay3内的所有视频帧,由于当前网络仍阻塞,则继续进行丢弃,根据排序结果,此时丢弃增强层lay2内的所有视频帧,如图4所示,增强层lay2包括P1帧、P6帧及P9帧,则将P1帧、P6帧及P9帧丢弃后,所述编码视频流中剩余的帧为I帧、P3帧、P5帧、及P8帧,将剩余的I帧、P3帧、P5帧、及P8帧作为待发送的帧。

此时,可以再次获取当前网络情况,如当前网络仍为阻塞,则根据排序结果,继续丢弃,此时丢弃增强层lay1内的所有视频帧。如图4所示,增强层lay2包括P3帧及P8帧,请参阅图9,此时将P3帧及P8帧丢弃,如图9所示,此时所述编码视频流中仅剩下关键帧I帧及P5帧,将所述关键帧I帧及P5帧作为待发送的帧。可以理解的是,当所述编码视频流中仅剩下关键帧时,不再进行丢弃,能够保证接收端接收到编码视频流后,仍然能够正常观看,不会出现卡顿的现象。

作为另一种具体的实施方式,请参阅图10,步骤S400可以包括:

步骤S421,若当前网络的带宽属于第一区间,将差异值区间最小的增强层中的所有视频帧丢弃后,将所述编码视频流中剩余的帧作为待发送的帧。

可以预先设定第一区间,第二区间,第三区间的值,其中,所述第一区间的最小值大于所述第二区间的最大值,所述第二区间的最小值大于所述第三区间的最大值。

假设第一区间的为[10M,20M],第二区间的为[5M,9M),第三区间的为[2M,5M)。若当前网络带宽为15M时,此时,如图6所示,将差异值区间最小的增强层lay3中的所有视频帧丢弃后,将所述编码视频流中剩余的帧作为待发送的帧。

步骤S422,若当前网络的带宽属于第二区间,将所述编码视频流中的多个增强层中的所有视频帧丢弃后,将所述编码视频流中剩余的帧作为待发送的帧。

若当前网络带宽为7M时,此时可以选择丢弃多个增强层中的所有视频帧,例如,可以选择丢弃增强层lay3中的所有视频帧,也可以选择丢弃增强层lay3及增强层lay2中的所有视频帧,还可以选择丢弃增强层lay3、增强层lay2、及增强层lay1中的所有视频帧,选择的策略可以进一步进行设定,例如,可以进一步将所述第二区间进行划分,划分成多个子区间,根据当前网络的带宽属于哪一个子区间来确定选择丢弃几层增强层。

步骤S423,若当前网络的带宽属于第三区间,仅将所述编码视频流中的所述关键帧作为待发送的帧。

若当前网络带宽为3M时,此时仅保留基础层lay0中的关键帧作为待发送的帧。

可以理解的是,这种方式中,当获取到网络带宽后,立刻就能确定适应当前带宽的帧,不必一次次去试探到底丢弃几层,加快了处理的速度,并且能够保证基础层内关键帧的传输,以维持解码后的基本画面,,保证了解码后画面的流畅性。

步骤S500,发送所述待发送的帧。

本发明实施例提供的一种视频帧传输方法,通过根据当前网络情况及从已缓存的编码视频流中各个增强层对应的差异值区间,实时的确定待发送的帧,并立即将待发送的帧发送,通过这种方式,能够实现实时的发送与当前网络情况相适应的帧,解决了在网络阻塞时,传输编码视频流时出现帧丢失的情况,并且待发送的帧根据已缓存的编码视频流中各个增强层对应的差异值区间来确定,丢弃了相对不重要的视频帧,能够保证重要的帧及时、完整的发送,进而使得视频接收端能够完整的播放视频,避免了视频播放时的卡顿现象。

请参阅图11,是本发明实施例提供的一种视频帧传输装置600的功能模块示意图。所述视频帧传输装置600运行于终端设备200中。所述视频帧传输装置600包括获取模块610、第一处理模块620、以及发送模块630。

获取模块610,用于获取当前网络情况。

第一处理模块620,用于根据当前网络情况、及已缓存的编码视频流中各个增强层对应的差异值区间,确定待发送的帧,其中,所述编码视频流包括关键帧及至少一个视频帧,每个所述视频帧对应一个参考帧,属于同一增强层中的每个所述视频帧与该视频帧的参考帧的差异值均属于同一区间。

作为一种实施方式,所述每个视频帧与该视频帧的参考帧的的差异值为每个视频帧与该视频帧的参考帧的亮度差的绝对值。

作为一种实施方式,第一处理模块620,具体用于若当前网络阻塞,根据各个增强层对应的差异值区间的排序结果,丢弃所述编码视频流中的至少一个增强层中的所有视频帧,将所述编码视频流中剩余的帧作为待发送的帧。

作为一种具体的实施方式,第一处理模块620,具体用于按照从小到大的顺序,对各个所述增强层对应的差异值区间进行排序;将差异值区间最小的增强层中的所有视频帧丢弃。

作为又一种实施方式,所述装置还包括第二处理模块640,用于再次获取当前网络情况;若当前网络仍阻塞,根据排序结果,继续丢弃所述编码视频流中的至少一个增强层中的所有视频帧,当所述编码视频流中仅剩下关键帧,仅将所述关键帧作为待发送的帧。

作为另一种实施方式,第一处理模块620,具体用于若当前网络的带宽属于第一区间,将差异值区间最小的增强层中的所有视频帧丢弃后,将所述编码视频流中剩余的帧作为待发送的帧;若当前网络的带宽属于第二区间,将所述编码视频流中的多个增强层中的所有视频帧丢弃后,将所述编码视频流中剩余的帧作为待发送的帧;若当前网络的带宽属于第三区间,仅将所述编码视频流中的所述关键帧作为待发送的帧,其中,所述第一区间的最小值大于所述第二区间的最大值,所述第二区间的最小值大于所述第三区间的最大值。

发送模块630,用于发送所述待发送的帧。

以上各模块可以是由软件代码实现,也同样可以由硬件例如集成电路芯片实现。

需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。

本发明实施例所提供的视频帧传输装置,其实现原理及产生的技术效果和前述方法实施例相同,为简要描述,装置实施例部分未提及之处,可参考前述方法实施例中相应内容。

在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本发明的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

另外,在本发明各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。

所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1