数据编解码的方法和系统与流程

文档序号:19688483发布日期:2020-01-14 18:32阅读:217来源:国知局
数据编解码的方法和系统与流程

本发明涉及图像技术应用领域,具体而言,涉及一种数据编解码的方法和系统。



背景技术:

在实时音视频通信中,普遍采用实时传输协议标准(realtimetransportprotocal,简称rtp)传输视频流,视频压缩格式为利用到硬件特性,尤其是针对移动互联网,一般采用视频编码标准h264/avc编码压缩:

其中,h264标准中的参考帧关系通过较为复杂的逻辑来保证编解码器的一致,涉及到解码图片缓存区(decodedpicturebuffer,dpbbuffer)中参考帧的标记操作,参考帧列表重排指令,不能简单的通过解析码流获得,尤其当输入给解码器的码流不完整,很难正确解码;

另外,实时通信为提高时效性,降低传输延时,一般采用用户数据报协议(userdatagramprotocol,简称udp),而wifi,4g等移动网络非常不稳定丢包时有发生,当丢包发生时,rtp包序号将发生大概率不连续的现象,如果判断为丢包发生,在接收端侧将认为码流不完整而不接码,进而降低了视频播放帧率;如果不判断,收到多少码流就直接送给解码器,错误的码流播放会出现马赛克等很差的视频体验,甚至导致一些解码器直接崩溃退出应用;

这种由于网络丢包导致的用户体验差针对多人实时视频通信场景更加严重,多人场景广泛应用选择性转发单元(selectiveforwardingunit,简称sfu)进行媒体包转发,当通信上行发生丢包时,sfu如果根据序列号判断为丢包不转发,那么通信中断,如果只做简单的转发,不判断当前流是否可以有效解码,则浪费了传输带宽,降低了传输效率。

其中,在webrtc开源中,当接收到视频帧时,强制要求都是连续的才认为是可正确解码帧,这种强制关系导致其中有一帧丢了,则丢失帧后面的所有帧直到下一个关键帧被判断为无效帧,而实际上丢失帧后面可能会有很多可以正确解码的帧,大大降低了终端视频显示帧率;即,如果第1、17、33…帧是关键帧(间隔16帧),那么,如果第2帧丢失了,则2-16帧都被判断为无效帧,直至遇到下一个关键帧17才会被认为是可以正确解码的帧,而实际上,第2帧之后的3-16帧其实都是可以正确解码的帧。

针对上述由于传输过程中丢包导致的解码过程中降低了终端视频显示帧率的问题,目前尚未提出有效的解决方案。



技术实现要素:

本发明实施例提供了一种数据编解码的方法和系统,以至少解决由于传输过程中丢包导致的解码过程中降低了终端视频显示帧率的技术问题。

根据本发明实施例的一个方面,提供了一种数据编码的方法,包括:依据参考帧对待编码帧进行编码,得到待传输码流,其中,待传输码流包括:第一图片标识,第一图片标识用于表示待编码帧;依据待传输码流中的第一图片标识码和参考帧的第二图片标识码生成码流信息;对待传输码流进行封装,并依据码流信息生成扩展头,得到待传输数据包。

可选的,依据参考帧对待编码帧进行编码,得到待传输码流包括:在以距离待编码帧最近的帧为参考帧的情况下,依据距离待编码帧最近的帧为参考帧对待编码帧进行编码,得到待传输码流。

进一步地,可选的,依据距离待编码帧最近的帧为参考帧对待编码帧进行编码包括:获取待编码帧的预设数位单调递增的图片标识码,其中,图片标识码,用于标记待编码帧;依据图片标识码得到参考帧的图片标识码;依据待编码帧的图片标识码和参考帧的图片标识码对待编码帧进行编码,得到待传输码流。

可选的,依据码流信息生成扩展头包括:获取码流信息中的第一图片标识码和第二图片标识码之间的参考帧图片标识关系;依据码流信息中的第一图片标识码和参考帧图片标识关系,生成扩展头。

进一步地,可选的,获取码流信息中的第一图片标识码和第二图片标识码之间的参考帧图片标识关系包括:获取第一图片标识码和第二图片标识码之间的图片标识残差;将图片标识残差确定为参考帧图片标识关系。

可选的,依据参考帧对待编码帧进行编码,得到待传输码流包括:在以距离待编码帧相隔预设位的帧为参考帧的情况下,依据距离待编码帧相隔预设位的帧为参考帧对待编码帧进行编码,得到待传输码流。

根据本发明实施例的另一方面,还提供了一种数据解码的方法,包括:接收待传输数据包;解析待传输数据包,得到扩展头;依据扩展头获取参考帧,并依据参考帧进行解码,得到待显示码流。

可选的,依据扩展头获取参考帧,并依据参考帧进行解码,得到待显示码流包括:获取扩展头中的参考帧;判断是否接收到所有的参考帧;在判断结果为是的情况下,依据参考帧进行解码,得到待显示码流。

根据本发明实施例的又一方面,还提供了一种数据编码的装置,包括:编码模块,用于依据参考帧对待编码帧进行编码,得到待传输码流,其中,待传输码流包括:第一图片标识,第一图片标识用于表示待编码帧;信息生成模块,用于依据待传输码流中的第一图片标识码和参考帧的第二图片标识码生成码流信息;打包模块,用于对待传输码流进行封装,并依据码流信息生成扩展头,得到待传输数据包。

根据本发明实施例的再一方面,还提供了一种数据解码的装置,包括:接收模块,用于接收待传输数据包;解析模块,用于解析待传输数据包,得到扩展头;解码模块,用于依据扩展头获取参考帧,并依据参考帧进行解码,得到待显示码流。

根据本发明另一实施例的一方面,还提供了一种数据编解码的系统,包括:数据编码设备、数据解码设备和转发设备,其中,数据编码设备,用于依据参考帧对待编码帧进行编码,得到待传输码流,其中,待传输码流包括:第一图片标识,第一图片标识用于表示待编码帧;依据待传输码流中的第一图片标识码和参考帧的第二图片标识码生成码流信息;对待传输码流进行封装,并依据码流信息生成扩展头,得到待传输数据包;数据解码设备,用于接收待传输数据包;解析待传输数据包,得到扩展头;依据扩展头获取参考帧,并依据参考帧进行解码,得到待显示码流;转发设备,分别与数据编码设备和数据解码设备连接,用于当接收到序列号不连续的待传输数据包时,解析待传输数据包中的扩展头,将待传输数据包中存在有效解码帧的码流确定为能正确解码的码流,并转发码流。

根据本发明另一实施例的另一方面,还提供了一种存储介质,存储介质包括存储的程序,其中,在程序运行时控制存储介质所在设备执行:依据参考帧对待编码帧进行编码,得到待传输码流,其中,待传输码流包括:第一图片标识,第一图片标识用于表示待编码帧;依据待传输码流中的第一图片标识码和参考帧的第二图片标识码生成码流信息;对待传输码流进行封装,并依据码流信息生成扩展头,得到待传输数据包。

根据本发明另一实施例的又一方面,还提供了一种处理器,处理器用于运行程序,其中,程序运行时执行:依据参考帧对待编码帧进行编码,得到待传输码流;依据待传输码流中的第一图片标识码和参考帧的第二图片标识码生成码流信息;对待传输码流进行封装,并依据码流信息生成扩展头,得到待传输数据包。

在本发明实施例中,采用提取参考帧关系的方式,通过依据参考帧对待编码帧进行编码,得到待传输码流,其中,待传输码流包括:第一图片标识,第一图片标识用于表示待编码帧;依据待传输码流中的第一图片标识码和参考帧的第二图片标识码生成码流信息;对待传输码流进行封装,并依据码流信息生成扩展头,得到待传输数据包,达到了提高了视频显示帧率的目的,从而实现了即使发生丢包在解码端仍旧能够正确解码的技术效果,进而解决了由于传输过程中丢包导致的解码过程中降低了终端视频显示帧率的技术问题。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1是本发明实施例的一种数据编码的方法的计算机终端的硬件结构框图;

图2是根据本发明实施例一的数据编码的方法的流程图;

图3是根据本发明实施例二的数据解码的方法的流程图;

图4是根据本发明实施例三的数据编码的装置的结构图;

图5是根据本发明实施例四的数据解码的装置的结构图;

图6是根据本发明实施例五的数据解码的系统的执行流程图。

具体实施方式

为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。

需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

本申请涉及的技术名词:

h264/avc:itu-t/mpeg联合提出的视频编码标准h264;

rtp:realtimetransportprotocal,实时传输协议,参见rfc3550;

rtpextensionheader:rfc3550中提出rtp头部支持用户自定义扩展;

参考帧:视频(由一幅幅连续的图像组成)压缩中,当前帧(图像)的解码依赖于之前已经解码的帧(图像),这个被依赖的帧(图像)被称为参考帧;

sfu:选择性转发单元,selectiveforwardingunit,sfu广泛应用在多人音视频实时传输场景中,其作用区别于mcu,只做简单的转发,不做复杂的媒体处理逻辑;

dpb:decodedpicturebuffer,解码图片缓存区;

参考帧关系显式传输:用单调递增pictureid来标志每一个编码的帧,参考帧之间的关系定义为pictureid之间的残差,将残差写在rtp扩展头rtpextensionheader中传输。

实施例1

根据本发明实施例,还提供了一种数据编码的方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

本申请实施例一所提供的方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。以运行在计算机终端上为例,图1是本发明实施例的一种数据编码的方法的计算机终端的硬件结构框图。如图1所示,计算机终端10可以包括一个或多个(图中仅示出一个)处理器102(处理器102可以包括但不限于微处理器mcu或可编程逻辑器件fpga等的处理装置)、用于存储数据的存储器104、以及用于通信功能的传输模块106。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,计算机终端10还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。

存储器104可用于存储应用软件的软件程序以及模块,如本发明实施例中的数据编码的方法对应的程序指令/模块,处理器102通过运行存储在存储器104内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的应用程序的数据编码的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机终端10的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适配器(networkinterfacecontroller,nic),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(radiofrequency,rf)模块,其用于通过无线方式与互联网进行通讯。

在上述运行环境下,本申请提供了如图2所示的数据编码的方法。在数据编码的装置侧,图2是根据本发明实施例一的数据编码的方法的流程图。

步骤s202,依据参考帧对待编码帧进行编码,得到待传输码流,其中,待传输码流包括:第一图片标识,第一图片标识用于表示待编码帧;

本申请上述步骤s202中,本申请提供的数据编码的方法中可以适用于实时视频通信应用场景,在数据编码的装置侧,通过定制开发h264/avc编码器提取视频帧间参考关系,即,依据相邻帧作为参考帧对待编码帧进行编码,得到待传输码流。

其中,将待编码帧输入h264/avc编码器,对编码器进行定制开发或者一定的参数设置,譬如限制参考帧数,限制使用距离最近的一帧为参考帧等,这里除了最近邻的帧才能作参考帧之外,还可以以固定间隔的相邻帧作为参考帧,其中,该固定间隔可以包括:间隔1-3帧。需要说明的是,本申请以距离待编码帧最近的一帧为参考帧作为优选示例进行说明,以实现本申请提供的数据编码的方法为准,具体不做限定。

具体的,本申请提供的数据编码的方法适用于实时传输协议(realtimetransportprotocal,简称rtp)传输场景,在对待编码帧进行编码的过程中,通过定制开发h264/avc编码器进行编码得到标准h264/avc码流,其中,在编码过程中,本申请提供的数据编码的方法不再以h264标准中的frameno.来标记帧,而是以16位单调递增pictureid参数来标志通信过程中的唯一帧,由于采用pictureid来标记,pictureid为单调递增的,所以不会发生重复的情况发生,防止了编码器重启,编码器参数重设,譬如关键帧等因素;

此外,在编码过程中,根据待编码帧的pictureid,结合h264标准中的参考帧管理手段,获取其一个或者参考帧的pictureids,其中,相关技术中参考帧是前向设置的,即,对于某一帧而言(例如第3帧),其参考帧是第2帧。在本申请提供的数据编码的方法中,如果对于第二帧成功解码,那么其后向的第三帧即可被解码。从而避免了上述的现有技术中的问题。

需要说明的是,本申请提到的相邻可以是距离待编码帧最近的帧,也可以是相隔若干帧的帧,在本申请中以距离待编码帧最近的帧为优选示例进行说明,以实现本申请提供的数据编码的方法为准,具体不做限定。

步骤s204,依据待传输码流中的第一图片标识码和参考帧的第二图片标识码生成码流信息;

本申请上述步骤s204中,基于步骤s202中得到的待传输码流,依据该待传输码流中的第一图片标识码,即上述待编码帧的pictureid,及其1个或者多个参考帧的pictureid作为码流外的信息传输,即,本申请生成的码流信息。

步骤s206,对待传输码流进行封装,并依据码流信息生成扩展头,得到待传输数据包。

本申请上述步骤s206中,基于步骤s202和步骤s204得到的待传输码流和码流信息,将待传输码流遵循rfc6884进行rtp打包,并将码流信息中的参考帧关系放在自定义扩展头中传输,即,步骤s202中得到的标准h264/avc码流遵循rfc6884进行rtp打包,步骤s204中待编码帧中的pictureid以及参考帧pictureid关系放在义扩展头中传输。

其中,为了提高工程实用性同时降低额外传输这些信息的负载,在实时通信场景下,为了降低帧间的依赖,将多帧参考限定为一帧,具体示例如下:

下表(1)为本申请提供的数据编码的方法中的一种实现方式:

16位待编码帧pictureid,16位传输其与参考帧间的pictureid残差

表(1)

其中,refpicture是待编码帧和其参考帧之间的pictureid之间的差值。

本申请以差值作为优选示例进行说明,以实现本申请提供的数据编码的方法为准,具体不做限定。

在本发明实施例中,采用提取参考帧关系的方式,通过依据参考帧对待编码帧进行编码,得到待传输码流;依据待传输码流中的第一图片标识码和参考帧的第二图片标识码生成码流信息;对待传输码流进行封装,并依据码流信息生成自定义扩展头,得到待传输数据包,达到了提高了视频显示帧率的目的,从而实现了即使发生丢包在解码端仍旧能够正确解码的技术效果,进而解决了由于传输过程中丢包导致的解码过程中降低了终端视频显示帧率的技术问题。

可选的,步骤s202中依据参考帧对待编码帧进行编码,得到待传输码流包括:

步骤s2021,在以距离待编码帧最近的帧为参考帧的情况下,依据距离待编码帧最近的帧为参考帧对待编码帧进行编码,得到待传输码流。

具体的,本申请上述步骤s2021中即步骤s202中提到的,在进行编码的过程中,依据距离待编码帧最近的帧为参考帧对待编码帧进行编码,得到待传输码流。

进一步地,可选的,步骤s2021中依据距离待编码帧最近的帧为参考帧对待编码帧进行编码包括:

步骤s20211,获取待编码帧的预设数位单调递增的图片标识码,其中,图片标识码,用于标记待编码帧;

具体的,本申请上述步骤s20211中获取待编码帧的预设数位单调递增的图片标识码的过程中,该预设数位可以包括:16位;这里以16位单调递增图片标识码pictureid参数来标志通信过程中的唯一帧,防止了编码器重启,编码器参数重设。

步骤s20212,依据图片标识码得到参考帧的图片标识码;

具体的,根据步骤s20211中获取的图片标识码结合h264标准中的参考帧管理手段,获取其一个或者参考帧的pictureids,即,本申请提供的参考帧的图片标识码,其中,相关技术中参考帧是前向设置的,即,对于某一帧而言(例如第3帧),其参考帧是第2帧。在本申请提供的数据编码的方法中,如果对于第二帧成功解码,那么其后向的第三帧即可被解码。从而避免了上述的现有技术中的问题。

步骤s20213,依据待编码帧的图片标识码和参考帧的图片标识码对待编码帧进行编码,得到待传输码流。

具体的,根据步骤s20211和步骤s20212中分别获取的待编码帧的图片标识码和参考帧的图片标识码,将已编码的待编码帧的pictureid及其1个或者多个参考帧的pictureid作为码流外的信息传输,即,作为码流信息进行传输。

可选的,步骤s206中依据码流信息生成扩展头包括:

步骤s2061,获取码流信息中的第一图片标识码和第二图片标识码之间的参考帧图片标识关系;

步骤s2062,依据码流信息中的第一图片标识码和参考帧图片标识关系,生成扩展头。

这里将步骤s204中码流信息中的pictureid以及参考帧pictureid关系放在扩展头中传输。

进一步地,可选的,步骤s2061中获取码流信息中的第一图片标识码和第二图片标识码之间的参考帧图片标识关系包括:

步骤s20611,获取第一图片标识码和第二图片标识码之间的图片标识残差;

步骤s20612,将图片标识残差确定为参考帧图片标识关系。

具体的,详见步骤s206中的表(1),为了提高工程实用性同时降低额外传输这些信息的负载,在实时通信场景下,为了降低帧间的依赖,将多帧参考限定为一帧,表(1)为本申请提供的数据编码的方法中的一种实现方式:16位待编码帧pictureid,16位传输其与参考帧间的pictureid残差。

这里最终得到的待传输数据包为rtp流,该rtp流为标准rtp流,自定义扩展头通过与接收端协商识别,不识别的不解析直接扔掉,不影响其rtp包正常解析。

可选的,步骤s202中依据参考帧对待编码帧进行编码,得到待传输码流包括:

在以距离待编码帧相隔预设位的帧为参考帧的情况下,依据距离待编码帧相隔预设位的帧为参考帧对待编码帧进行编码,得到待传输码流。

区别于距离待编码帧最近的帧为参考帧的方案,距离待编码帧最近的帧为参考帧所属的方案中,由于相邻帧具备极大的相似区域,所以依据相邻帧进行编码能够提升解码准确率,而对于连续相同帧的画面,可以选用间隔若干帧的方式进行编码,原因在于,即使相隔若干帧,由于图像未发生变化,因此采用相隔若干帧的方式进行编码可以极大的缩小编码后数据流的大小,在解码上能够达到更高的效率。

实施例2

本申请提供了如图3所示的数据解码的方法。在数据解码的装置侧,如图3所示,图3是根据本发明实施例二的数据解码的方法的流程图。

步骤s302,接收待传输数据包;

步骤s304,解析待传输数据包,得到扩展头;

具体的,结合步骤s302和步骤s304,在接收端侧,在该接收端包括数据解码的装置的情况下,在实时视频通信应用场景下,譬如4g,wifi,丢包和抖动时有发生,rtpsequencenumber较大概率不连续,根据rtp包序号来判断当前码流是否可以正确解码,太严格,误判率很高,视频码流仍然有一定冗余,本申请提供的数据解码的方法中接收端解码当前帧并不是一定要接收到之前所有包,只需要其所有依赖的参考帧都正确收到即可,譬如一秒15帧的视频,如果判断接收到的13帧是可以解码的,则完全可以送给解码器去解码,提高了视频显示帧率。

其中,在如何判断接收到的帧是可以解码的过程中,首先需要解析该待传输数据包,进而得到该待传输数据包的扩展头,进而根据该扩展头中的信息仅判断,具体见步骤s306。

步骤s306,依据扩展头获取参考帧,并依据参考帧进行解码,得到待显示码流。

本申请上述步骤s306中,依据扩展头获取参考帧,并依据参考帧进行解码包括:在rtp传输协议传输数据包的情景下,该待传输数据包可以为rtp包通过获取该rtp包的pictureid以及其解码所需依赖的参考帧们的pictureids,只需判断其参考帧是否都到达,无需所有的rtp包或者帧都完整到达,在判断结果为是的情况下,得到待显示码流,进而通过h264/avc解码器对该待显示码流进行解码,最终通过播放设备进行显示。

在本发明实施例中,采用提取参考帧关系的方式,通过接收待传输数据包;解析待传输数据包,得到扩展头;依据扩展头获取参考帧,并依据参考帧进行解码,得到待显示码流,达到了提高了视频显示帧率的目的,从而实现了即使发生丢包在解码端仍旧能够正确解码的技术效果,进而解决了由于传输过程中丢包导致的解码过程中降低了终端视频显示帧率的技术问题。

可选的,步骤s306中依据扩展头获取参考帧,并依据参考帧进行解码,得到待显示码流包括:

步骤s3061,获取扩展头中的参考帧;

步骤s3062,判断是否接收到所有的参考帧;

步骤s3063,在判断结果为是的情况下,依据参考帧进行解码,得到待显示码流。

需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的数据解码的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。

实施例3

根据本发明实施例,还提供了一种用于实施上述数据编码的装置,如图4所示,在数据编码的装置侧,图4是根据本发明实施例三的数据编码的装置的流程图,该装置包括:编码模块42、信息生成模块44和打包模块46。

其中,编码模块42,用于依据参考帧对待编码帧进行编码,得到待传输码流,其中,待传输码流包括:第一图片标识,第一图片标识用于表示待编码帧;信息生成模块44,用于依据待传输码流中的第一图片标识码和参考帧的第二图片标识码生成码流信息;打包模块46,用于对待传输码流进行封装,并依据码流信息生成扩展头,得到待传输数据包。

在本发明实施例中,采用提取参考帧关系的方式,通过依据相邻帧作为参考帧对待编码帧进行编码,得到待传输码流;依据待传输码流中的第一图片标识码和参考帧的第二图片标识码生成码流信息;对待传输码流进行封装,并依据码流信息生成扩展头,得到待传输数据包,达到了提高了视频显示帧率的目的,从而实现了即使发生丢包在解码端仍旧能够正确解码的技术效果,进而解决了由于传输过程中丢包导致的解码过程中降低了终端视频显示帧率的技术问题。

此处需要说明的是,上述编码模块42、信息生成模块44和打包模块46对应于实施例一中的步骤s202至步骤s206,三个模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例一所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在实施例一提供的网络设备中,可以通过软件实现,也可以通过硬件实现。

实施例4

根据本发明实施例的再一方面,还提供了一种数据解码的装置,如图5所示,在数据解码的装置侧,图5是根据本发明实施例四的数据解码的装置的流程图,包括:接收模块52、解析模块54和解码模块56。

其中,接收模块52,用于接收待传输数据包;解析模块54,用于解析待传输数据包,得到扩展头;解码模块56,用于依据扩展头获取参考帧,并依据参考帧进行解码,得到待显示码流。

在本发明实施例中,采用提取参考帧关系的方式,通过接收待传输数据包;解析待传输数据包,得到扩展头;依据扩展头获取参考帧,并依据参考帧进行解码,得到待显示码流,达到了提高了视频显示帧率的目的,从而实现了即使发生丢包在解码端仍旧能够正确解码的技术效果,进而解决了由于传输过程中丢包导致的解码过程中降低了终端视频显示帧率的技术问题。

此处需要说明的是,上述接收模块52、解析模块54和解码模块56对应于实施例一中的步骤s302至步骤s306,三个模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例二所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在实施例二提供的网络设备中,可以通过软件实现,也可以通过硬件实现。

实施例5

根据本发明另一实施例的一方面,还提供了一种数据编解码的系统,图6是根据本发明实施例五的数据解码的系统的执行流程图,如图6所示,包括:数据编码设备62、数据解码设备64和转发设备66。

其中,数据编码设备62,用于依据参考帧对待编码帧进行编码,得到待传输码流,其中,待传输码流包括:第一图片标识,第一图片标识用于表示待编码帧;依据待传输码流中的第一图片标识码和参考帧的第二图片标识码生成码流信息;对待传输码流进行封装,并依据码流信息生成扩展头,得到待传输数据包;数据解码设备64,用于接收待传输数据包;解析待传输数据包,得到扩展头;依据扩展头获取参考帧,并依据参考帧进行解码,得到待显示码流;转发设备66,分别与数据编码设备和数据解码设备连接,用于当接收到序列号不连续的待传输数据包时,解析待传输数据包中的扩展头,将待传输数据包中存在有效解码帧的码流确定为能正确解码的码流,并转发码流。

其中,在本申请提供的数据编解码的系统中,作为接收方,该接收方可以包括数据解码设备64或转发设备66,其中,该转发设备66可以包括sfu、mcu等中继器;

在接收rtp流(即,本申请提供的待传输数据包)后,解析该rtp流的扩展头,获取视频帧间参考关系,用很低的负载或者较小的计算代价,就可以判断出当前接收h264码流是否为可以正确解码帧,进而提高整体视频通信效率。

实施例6

根据本发明另一实施例的另一方面,还提供了一种存储介质,存储介质包括存储的程序,其中,在程序运行时控制存储介质所在设备执行:依据参考帧对待编码帧进行编码,得到待传输码流;依据待传输码流中的第一图片标识码和参考帧的第二图片标识码生成码流信息;对待传输码流进行封装,并依据码流信息生成扩展头,得到待传输数据包。

实施例7

根据本发明另一实施例的又一方面,还提供了一种处理器,处理器用于运行程序,其中,程序运行时执行:依据参考帧对待编码帧进行编码,得到待传输码流;依据待传输码流中的第一图片标识码和参考帧的第二图片标识码生成码流信息;对待传输码流进行封装,并依据码流信息生成扩展头,得到待传输数据包。

实施例8

本发明的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以用于保存上述实施例一所提供的数据编码的方法所执行的程序代码。

可选地,在本实施例中,上述存储介质可以位于计算机网络中计算机终端群中的任意一个计算机终端中,或者位于移动终端群中的任意一个移动终端中。

可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:依据参考帧对待编码帧进行编码,得到待传输码流,其中,待传输码流包括:第一图片标识,第一图片标识用于表示待编码帧;依据待传输码流中的第一图片标识码和参考帧的第二图片标识码生成码流信息;对待传输码流进行封装,并依据码流信息生成扩展头,得到待传输数据包。

可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:依据参考帧对待编码帧进行编码,得到待传输码流包括:在以距离待编码帧最近的帧为参考帧的情况下,依据距离待编码帧最近的帧为参考帧对待编码帧进行编码,得到待传输码流。

进一步地,可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:依据距离待编码帧最近的帧为参考帧对待编码帧进行编码包括:获取待编码帧的预设数位单调递增的图片标识码,其中,图片标识码,用于标记待编码帧;依据图片标识码得到参考帧的图片标识码;依据待编码帧的图片标识码和参考帧的图片标识码对待编码帧进行编码,得到待传输码流。

可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:依据码流信息生成扩展头包括:获取码流信息中的第一图片标识码和第二图片标识码之间的参考帧图片标识关系;依据码流信息中的第一图片标识码和参考帧图片标识关系,生成扩展头。

进一步地,可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:获取码流信息中的第一图片标识码和第二图片标识码之间的参考帧图片标识关系包括:获取第一图片标识码和第二图片标识码之间的图片标识残差;将图片标识残差确定为参考帧图片标识关系。

可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:依据参考帧对待编码帧进行编码,得到待传输码流包括:在以距离待编码帧相隔预设位的帧为参考帧的情况下,依据距离待编码帧相隔预设位的帧为参考帧对待编码帧进行编码,得到待传输码流。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

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