媒体数据的编码、解码方法及电子设备与流程

文档序号:19415015发布日期:2019-12-14 00:50阅读:374来源:国知局
媒体数据的编码、解码方法及电子设备与流程

本发明涉及音视频会议技术领域,具体涉及媒体数据的编码、解码方法及电子设备。



背景技术:

在音视频会议过程中,包含了视频图像或音频数据(以下称之为媒体数据)从实时采集一直到播放端,需要经过采集、编码、网络传输以及解码播放等环节。

其中,由于在会议过程中所产生的媒体数据均是不可预测的,是实时变化的过程。可能会存在某一时刻终端所产生的媒体数据过大,导致网络数据的瞬间过冲。同时由于网络带宽有限,网络数据的瞬间过程将会导致数据丢失;且当大量设备同时出现大量数据时,将导致网络拥塞,甚至网络瘫痪。那么,此时就需要对媒体数据进行平滑处理,所谓的平滑处理的目的是使得编码后的媒体数据在传输网络中平滑发送。

对于平滑发送而言,现有技术中存在多种方式,例如,通过设置两级缓存的方式,或通过调整发送码率的方式等等。然而,发明人在对平滑发送进行研究的过程中发现,当媒体数据过大且发送带宽有限时,对于该媒体数据的平滑发送将会存在一定的视频延时。



技术实现要素:

有鉴于此,本发明实施例提供了一种媒体数据的编码、解码方法及电子设备,以解决平滑发送所导致的延时问题。

根据第一方面,本发明实施例提供了一种媒体数据的编码方法,包括:

获取待处理媒体数据;其中,所述待处理媒体数据包括多个待处理媒体数据帧;

对当前待处理媒体数据帧进行编码,以得到媒体码流帧;

当确定平滑发送所述媒体码流帧时,基于所述媒体码流帧的大小确定出待丢弃帧数;其中,所述媒体码流帧越大,所述待丢弃帧数越多;

按照所述待丢弃帧数丢弃所述待处理媒体数据帧,并提取下一个待处理媒体数据帧;其中,所述下一个待处理媒体数据帧为与所述当前待处理媒体数据帧相邻所述待丢弃帧数的待处理媒体数据帧;

在所述下一个待处理媒体数据帧中添加跳帧标记,并对所述下一个待处理媒体数据帧进行编码;其中,所述跳帧标记用于表示所述下一个待处理媒体数据帧为跳帧后的待处理媒体数据帧。

本发明实施例提供的媒体数据的编码方法,在确定媒体码流帧需要进行平滑发送时,基于媒体码流帧的大小计算出待丢弃帧数,通过丢弃待处理数据帧,减少需要编码的待处理数据帧;即通过丢弃待处理数据帧并利用跳帧标记的方式减少后续在播放媒体数据帧时由于平滑发送媒体码流帧带来的延时。

结合第一方面,在第一方面第一实施方式中,所述基于所述媒体码流帧的大小,计算待丢弃帧数,包括:

获取发送带宽;

利用所述媒体码流帧的大小以及所述发送带宽,确定所述媒体码流帧的网络发送时间;

利用所述网络发送时间以及编码帧率,计算所述待丢弃帧数。

本发明实施例提供的媒体数据的编码方法,通过获取发送带宽,并基于该发送带宽确定该媒体码流帧的网络发送时间,该时间就是网络平滑发送所产生的视频延时;利用该时间所确定出的待丢弃帧数,具有较高的准确性,能够极大地减少后续在播放媒体数据帧时的延时;同时,由于发送带宽是实时获取到的,能够使得计算出的网络发送时间与实时的发送带宽结合,以保证确定出的网络发送时间的准确性。

结合第一方面第一实施方式,在第一方面第二实施方式中,采用如下公式计算所述待丢弃帧数:

nm=ceil(tm×编码帧率);式中,tm=sm/发送带宽;

其中,m表示所述当前待处理媒体数据帧为所述待处理媒体数据的第m帧;nm表示对应于所述当前待处理媒体数据帧的待丢弃帧数;tm表示所述当前待处理媒体数据帧的网络发送时间;sm表示所述媒体码流帧的大小;ceil()表示向上取整函数。

结合第一方面,在第一方面第三实施方式中,所述当确定平滑发送所述媒体码流帧时,根据所述媒体码流帧的大小,计算待丢弃帧数的步骤之前,包括:

基于所述媒体码流帧的大小,确定所述媒体码流帧的网络发送时间;

判断所述网络发送时间是否大于预设值;

当所述网络发送时间大于所述预设值时,确定平滑发送所述媒体码流帧。

本发明实施例提供的媒体数据的编码方法,由于网络发送时间是与发送带宽相关联的,在媒体码流帧的大小不变的情况下,发送带宽变化所带来的网络发送时间的变化也可以被考虑到。因此,利用网络发送时间确定是否需要平滑发送该媒体码流帧,具有较高的准确性,从而可以进一步减少后续视频播放的延时。

结合第一方面,或第一方面第一实施方式至第三实施方式中任一项,在第一方面第四实施方式中,还包括发送所述媒体码流帧的步骤;其中,所述发送所述媒体码流帧,包括:

对所述媒体码流帧加上时间戳;所述时间戳用于表示相邻媒体数据帧的播放间隔;

对加上时间戳的媒体码流帧进行封装,以得到待发送数据包;

将所述待发送数据包发送到网络中。

本发明实施例提供的媒体数据的编码方法,通过在媒体码流帧上加上时间戳,用以表示相邻媒体数据帧的播放间隔,便于后续进行媒体数据帧的播放。

根据第二方面,本发明实施例还提供了一种媒体数据的解码方法,包括:

接收待处理数据包;其中,所述待处理数据包包括多个媒体码流帧;

对所述媒体码流帧进行解码,以得到媒体数据帧;

判断所述媒体数据帧是否携带有跳帧标记;其中,所述跳帧标记用于表示所述媒体数据帧为跳帧后的媒体数据帧;

当所述媒体数据帧携带有所述跳帧标记时,立即播放所述媒体数据帧。

本发明实施例提供的媒体数据的解码方法,通过对媒体数据帧中是否携带有跳帧标记,确定出该媒体数据帧是否为跳帧后的媒体数据帧。当该媒体数据帧为跳帧后的媒体数据帧时,表示该媒体数据帧的前一帧为平滑发送的,因此,通过立即播放该媒体数据帧能够减少由于平滑发送所带来的延时。

结合第二方面,在第二方面第一实施方式中,所述媒体码流帧还携带有时间戳,所述时间戳用于表示相邻媒体数据帧之间的播放间隔;所述方法还包括:

当所述媒体数据帧未携带有所述跳帧标记时,基于所述时间戳播放所述媒体数据帧。

结合第二方面第一实施方式,在第二方面第二实施方式中,所述判断所述媒体码流帧是否携带有跳帧标记的步骤之前,包括:

利用所述时间戳判断所述媒体数据帧是否为第一帧;

当所述媒体数据帧为第一帧时,立即播放所述媒体数据帧;

当所述媒体码数据不是第一帧时,执行判断所述媒体数据帧是否携带有跳帧标记的步骤。

根据第三方面,本发明实施例还提供了一种电子设备,包括:

存储器和处理器,所述存储器和所述处理器之间互相通信连接,所述存储器中存储有计算机指令,所述处理器通过执行所述计算机指令,从而执行本发明第一方面,或第一方面任一项实施方式中所述的媒体数据的编码方法,或执行本发明第二方面,或第二方面任一项实施方式中所述的媒体数据的解码方法。

根据第四方面,本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使所述计算机执行本发明第一方面,或第一方面任一项实施方式中所述的媒体数据的编码方法,或执行本发明第二方面,或第二方面任一项实施方式中所述的媒体数据的解码方法。

附图说明

为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是根据本发明实施例的应用场景的一个具体的示意图;

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

图3是根据本发明实施例的当前帧与下一个帧之间的位置关系示意图;

图4是根据本发明实施例的媒体数据的编码方法流程图;

图5是根据本发明实施例的媒体数据的编码方法流程图;

图6是根据本发明实施例的编码侧的结构示意图;

图7是根据本发明实施例的媒体数据的编码方法流程图;

图8是根据本发明实施例的媒体数据的解码方法流程图;

图9是根据本发明实施例的媒体数据的解码方法流程图;

图10是根据本发明实施例的解码侧的结构示意图;

图11是根据本发明实施例的媒体数据的解码方法流程图;

图12是根据本发明实施例的媒体数据的编码装置的结构框图;

图13是根据本发明实施例的媒体数据的解码装置的结构框图;

图14是本发明实施例提供的电子设备的硬件结构示意图。

具体实施方式

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

需要说明的是,本发明实施例中的媒体数据可以为视频数据,也可以是音频数据,在此对其并不做任何限制。即,在需要对视频码流帧进行平滑发送时,可以采用丢弃视频数据帧的方法减少延时;在需要对音频码流帧进行平滑发送时,可以采用丢弃音频数据帧的方法减少延时。

图1示出了本发明实施例的一个具体示意的应用场景。如图1所示,本发明实施例中所涉及到的设备分为编码侧以及解码侧,其中编码侧用于对获取到的待处理媒体数据进行编码,且在编码时,基于编码所得到的媒体码流帧的大小确定对于该媒体码流帧是否需要平滑发送,在需要进行平滑发送时进行跳帧操作,即,丢弃部分媒体数据帧,并在媒体数据帧上添加跳帧标记,以减少后续播放媒体数据时由于平滑发送所带来的延时;解码侧用于对接收到的数据包进行解码后播放,当解码得到的媒体数据帧携带有跳帧标记时,立即播放该媒体数据帧,从而减少由于平滑发送所带来的延时。

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

在本实施例中提供了一种媒体数据的编码方法,可用于上述的电子设备,如视频会议的终端,图2是根据本发明实施例的媒体数据的编码方法的流程图,如图2所示,该流程包括如下步骤:

s11,获取待处理媒体数据。

其中,所述待处理媒体数据包括多个待处理媒体数据帧。

待处理媒体数据为音视频会议中会议终端所产生的媒体数据,后续电子设备需要对该待处理媒体数据进行编码后发送给解码侧。

s12,对当前待处理媒体数据帧进行编码,以得到媒体码流帧。

电子设备依次提取待处理媒体数据中的待处理媒体数据帧,并对提取出的待处理媒体数据帧进行编码,以得到对应于待处理媒体数据帧的媒体码流帧。

s13,判断媒体码流帧是否需要平滑发送。

电子设备可以将媒体码流帧的大小与预设码流帧的大小进行比较,当媒体码流帧的大小大于预设码流帧时,可以确定对于该媒体码流帧需要进行平滑发送;电子设备也可以利用媒体码流帧的大小,确定发送该媒体码流帧所需的时间,将确定出的时间与预设时间进行比较,当确定出的时间大于预设时间时,可以确定对于该媒体码流帧需要进行平滑发送。或者,电子设备也可以采用其他方式对媒体码流帧是否需要平滑发送进行判断。

当确定平滑发送媒体码流帧时,执行s14;否则,执行提取当前待处理媒体数据帧的下一帧,并返回执行s12。

当确定媒体码流帧不需要平滑发送时,对该媒体码流帧进行封装并发送至网络中;同时也可以提取当前待处理媒体数据帧的下一帧,将提取出的下一帧作为当前帧,继续进行编码。

s14,基于媒体码流帧的大小确定出待丢弃帧数。

其中,所述媒体码流帧越大,待丢弃帧数越多。电子设备在得到媒体码流帧的大小之后,将该媒体码流帧作为基准值,依次判断后续各个媒体码流帧的大小,当后续多个媒体码流帧的大小之和大于或等于该媒体码流帧时,则后续多个媒体码流帧的数量为待丢弃帧数。例如,s12中得到的媒体码流帧的大小为a1,后续第一媒体码流帧的大小为a2,第二个媒体码流帧的大小为a3,第三个媒体码流帧的大小为a4,其中a2+a3小于a1,且a2+a3+a4大于a1,则待丢弃帧数为3帧,即将第一个至第三个媒体码流帧丢弃,从而减少了网络发送的时间。

或者,电子设备利用媒体码流帧的大小计算发送该媒体码流帧的网络发送时间,并利用该网络发送时间与编码码率确定待丢弃帧数。在下文中将对该步骤进行详细描述。

s15,按照待丢弃帧数丢弃待处理媒体数据帧,并提取下一个待处理媒体数据帧。

其中,所述下一个待处理媒体数据帧为与当前待处理媒体数据帧相邻待丢弃帧数的待处理媒体数据帧。

当电子设备确定媒体码流帧需要进行平滑发送时,将与当前待处理媒体数据帧相隔待丢弃帧数的所有待处理媒体数据帧忽略,直接提取下一个待处理媒体数据帧进行编码后发送。

具体地,图3示出了当前待处理媒体数据帧,以下一个待处理媒体数据帧的位置关系。如图3所示,当前待处理数据帧与下一个待处理媒体数据帧之间相隔待丢弃帧数的待处理媒体数据帧,这部分待处理媒体数据帧是不需要进行编码发送的,可以直接忽略。

s16,在下一个待处理媒体数据帧中添加跳帧标记,并对下一个待处理媒体数据帧进行编码。

其中,所述跳帧标记用于表示下一个待处理媒体数据帧为跳帧后的待处理媒体数据帧。

电子设备在s15中提取出下一个待处理媒体数据帧之后,在提取出的下一个待处理媒体数据帧中携带跳帧标记,之后再对其进行编码。

本实施例提供的媒体数据的编码方法,在确定媒体码流帧需要进行平滑发送时,基于媒体码流帧的大小计算出待丢弃帧数,通过丢弃待处理数据帧,减少需要编码的待处理数据帧;即通过丢弃待处理数据帧并利用跳帧标记的方式减少后续在播放媒体数据帧时由于平滑发送媒体码流帧带来的延时。

在本实施例中提供了一种媒体数据的编码方法,可用于上述的电子设备,如视频会议的终端,图4是根据本发明实施例的媒体数据的编码方法的流程图,如图4所示,该流程包括如下步骤:

s21,获取待处理媒体数据。

其中,所述待处理媒体数据包括多个待处理媒体数据帧。

详细请参见图2所示实施例的s11,在此不再赘述。

s22,对当前待处理媒体数据帧进行编码,以得到媒体码流帧。

详细请参见图2所示实施例的s12,在此不再赘述。

s23,判断媒体码流帧是否需要平滑发送。

详细请参见图2所示实施例的s13,在此不再赘述。

当确定平滑发送媒体码流帧时,执行s24;否则,执行提取当前待处理媒体数据帧的下一帧,并返回执行s22。其中,关于当前待处理媒体数据帧的下一帧与当前待处理媒体数据帧之间的位置关系请参见图2。

s24,基于媒体码流帧的大小确定出待丢弃帧数。

其中,媒体码流帧越大,待丢弃帧数越多。电子设备通过实时获取发送带宽以确定对于媒体码流帧的网络发送时间,并利用该时间计算待丢弃帧数。具体地,该步骤包括:

s241,获取发送带宽。

电子设备实时获取当前网络的发送带宽。

s242,利用媒体码流帧的大小以及发送带宽,确定媒体码流帧的网络发送时间。

电子设备计算媒体码流帧的大小与发送带宽的比值,即可得到媒体码流帧的网络发送时间。也可以在比值的基础上,加上预设的误差值,从而进一步更新网络发送时间。

具体地,可以采用如下公式表示网络发送时间:

tm=sm/发送带宽;

其中,tm表示所述当前待处理媒体数据帧的网络发送时间;sm表示所述媒体码流帧的大小。

s243,利用网络发送时间以及编码帧率,计算待丢弃帧数。

电子设备通过计算网络发送时间与编码帧率的乘积,从而确定待丢弃帧数。其中,由于网络发送时间可能是非整数,那么当网络发送时间为非整数时,在网络发送时间与编码帧率的乘积的基础上加上1,以得到待丢弃帧数;也可以是直接取整,以得到待丢弃帧数。

具体地,采用如下公式计算所述待丢弃帧数:

nm=ceil(tm×编码帧率);式中,tm=sm/发送带宽;

其中,m表示所述当前待处理媒体数据帧为所述待处理媒体数据的第m帧;nm表示对应于所述当前待处理媒体数据帧的待丢弃帧数;tm表示所述当前待处理媒体数据帧的网络发送时间;sm表示所述媒体码流帧的大小;ceil()表示向上取整函数。

s25,按照待丢弃帧数丢弃待处理媒体数据帧,并提取下一个待处理媒体数据帧。

其中,所述下一个待处理媒体数据帧为与当前待处理媒体数据帧相邻待丢弃帧数的待处理媒体数据帧。

详细请参见图2所示实施例的s15,在此不再赘述。

s26,在下一个待处理媒体数据帧中添加跳帧标记,并对下一个待处理媒体数据帧进行编码。

其中,所述跳帧标记用于表示下一个待处理媒体数据帧为跳帧后的待处理媒体数据帧。

详细请参见图2所示实施例的s16,在此不再赘述。

本实施例提供的媒体数据的编码方法,通过获取发送带宽,并基于该发送带宽确定该媒体码流帧的网络发送时间,该时间就是网络平滑发送所产生的视频延时;利用该时间所确定出的待丢弃帧数,具有较高的准确性,能够极大地减少后续在播放媒体数据帧时的延时;同时,由于发送带宽是实时获取到的,能够使得计算出的网络发送时间与实时的发送带宽结合,以保证确定出的网络发送时间的准确性。

在本实施例中提供了一种媒体数据的编码方法,可用于上述的电子设备,如视频会议的终端,图5是根据本发明实施例的媒体数据的编码方法的流程图,如图5所示,该流程包括如下步骤:

s31,获取待处理媒体数据。

其中,所述待处理媒体数据包括多个待处理媒体数据帧。

详细请参见图3所示实施例的s21,在此不再赘述。

s32,对当前待处理媒体数据帧进行编码,以得到媒体码流帧。

详细请参见图3所示实施例的s22,在此不再赘述。

s33,判断媒体码流帧是否需要平滑发送。

具体地,该步骤包括:

s331,基于媒体码流帧的大小,确定媒体码流帧的网络发送时间。

该网络发送时间与s242中的网络发送时间相同,具体实现过程请参见图3所示实施例的s242,在此不再赘述。

s332,判断网络发送时间是否大于预设值。

其中,预设值可以根据实际情况进行具体设置,在此并不做任何限制。

当网络发送时间大于预设值时,执行s333;否则,执行提取当前待处理媒体数据帧的下一帧,并返回执行s32。

s333,确定平滑发送媒体码流帧。

s34,基于媒体码流帧的大小确定出待丢弃帧数。

其中,所述媒体码流帧越大,待丢弃帧数越多。由于在s331中已经确定出网络发送时间,那么此时只需要直接利用s331中的网络发送时间以及编码帧率计算待丢弃帧数。详细请参见图3所示实施例额s243,在此不再赘述。

s35,按照待丢弃帧数丢弃所述待处理媒体数据帧,并提取下一个待处理媒体数据帧。

其中,所述下一个待处理媒体数据帧为与当前待处理媒体数据帧相邻待丢弃帧数的待处理媒体数据帧。

详细请参见图2所示实施例的s25,在此不再赘述。

s36,在下一个待处理媒体数据帧中添加跳帧标记,并对下一个待处理媒体数据帧进行编码。

其中,所述跳帧标记用于表示下一个待处理媒体数据帧为跳帧后的待处理媒体数据帧。

详细请参见图2所示实施例的s26,在此不再赘述。

s37,发送媒体码流帧。

电子设备在对待处理媒体数据帧进行编码后得到媒体码流帧之后,都需要将媒体码流帧发送到网络中,以便发送至解码侧。

s371,对媒体码流帧加上时间戳。

其中,所述时间戳用于表示相邻媒体数据帧的播放间隔。

电子设备在对待处理媒体数据帧编码后得到媒体码流帧,依次对得到的媒体码流帧加上时间戳,以使得解码侧能够基于该时间戳播放相应的媒体数据帧。

该时间戳可以是采用如下方式表示:

时间戳=初始随机值+(m-1)*(90000/采集帧率);其中,m表示该媒体码流帧为第m帧。

s372,对加上时间戳的媒体码流帧进行封装,以得到待发送数据包。

s373,将待发送数据包发送到网络中。

本发明实施例提供的媒体数据的编码方法,由于网络发送时间是与发送带宽相关联的,在媒体码流帧的大小不变的情况下,发送带宽变化所带来的网络发送时间的变化也可以被考虑到。因此,利用网络发送时间确定是否需要平滑发送该媒体码流帧,具有较高的准确性,从而可以进一步减少后续视频播放的延时。

作为本实施例的一个具体应用实例,如图6所示,从软件层面上将用于实现上述实施例中所述的媒体数据的编码方法的设备划分为:第一媒体控制模块(即,编码侧媒体控制模块)、编码器以及第一网络模块。

具体地,第一媒体控制模块可用于媒体码流的控制,以及编码器的控制和是否会产生平滑发送的计算;当媒体控制模块计算出媒体码流帧会产生平滑发送时,则会控下一帧进行跳帧编码,达到减少平滑发送延时的效果。跳帧编码时第一媒体控制模块会控制输入给编码器的待处理媒体数据帧,将连续的数据帧丢掉一部分。丢弃的数据帧数会根据平滑发送对应的网络发送时间t动态变化,保证以最小的帧损失作为代价来换取延时的减少,这种方式产生视频/音频卡顿感次数为1,其中,丢弃帧数的计算公式为:丢弃帧数=平滑发送延时t*编码帧率,如果为小数则取整数位加1。第一网络模块用于将编码后的媒体码流帧发送至网络中。

可选地,如图7所示,该媒体数据的编码方法可以采用如下方法实现:

(1)第一媒体控制模块获取yuv视频数据单元;

(2)第一媒体控制模块将每一帧标记上相对的时间戳t,该时间戳是在视频帧采集时刻生成的相对时间;为方便叙述后续称呼当前帧为第m帧,相对时间戳为tm;

(3)第一媒体控制模块将第m帧送入编码器;

(4)编码器进行编码,编码器将第m帧yuv数据进行编码后生成二进制码流文件;同时,媒体控制模块获取第m帧码流大小sm;

(5)第一媒体控制模块计算第m帧网络发送时间tm=sm/发送带宽;

(6)第一媒体控制模块对tm进行判断;若tm小于或等于预设值t,则判断该帧不进行平滑发送;

(7)第一媒体控制模块将送入编码器的下一帧为第m帧,m=m+采集帧率/编码帧率,编码帧率可根据编码器性能进行调整;若tm大于预设值t,则判断该帧会进行平滑发送,此时tm就是我们网络平滑发送所产生的视频延时。

通过第一媒体控制模块控制编码器进行跳帧编码的方式来消除该延时,媒体控制模块将送入编码器的下一帧为第m帧,m=m+tm/(1s/编码帧率)如果为小数则取整数位加1,此时媒体控制模块应该丢弃的帧数为:tm/(1s/编码帧率)如果为小数则取整数位加1;

(8)在sei中对该帧进行标记,该帧进行了跳帧编码;

(9)网络模块对编码好的视频码流帧进行切包封包,同时在第m帧数据的rtp协议中加上采集时间戳,该时间戳=初始随机值+(m-1)*(90000/采集帧率);

(10)最后网络模块将视频数据包发送到网络中,完成一次视频数据的编码和发送。

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

在本实施例中提供了一种媒体数据的解码方法,可用于上述的电子设备,如视频会议的终端,图8是根据本发明实施例的媒体数据的解码方法的流程图,如图8所示,该流程包括如下步骤:

s41,接收待处理数据包。

其中,所述待处理数据包包括多个媒体码流帧。该待处理数据包为编码侧发送的数据包。

s42,对媒体码流帧进行解码,以得到媒体数据帧。

电子设备依次对接收到的待处理数据包中的媒体码流帧进行解码,以得到对应于媒体码流帧的媒体数据帧。

s43,判断媒体数据帧是否携带有跳帧标记。

其中,所述跳帧标记用于表示媒体数据帧为跳帧后的媒体数据帧。

当媒体数据帧携带有跳帧标记时,执行s44;否则,按照预设时间间隔播放媒体数据帧。

s44,立即播放媒体数据帧。

当电子设备判断出某一个媒体数据帧携带有跳帧标记时,则立即播放该媒体数据帧,而不是依据预设时间间隔,或时间戳进行播放,以减少延时。

本实施例提供的媒体数据的解码方法,通过对媒体数据帧中是否携带有跳帧标记,确定出该媒体数据帧是否为跳帧后的媒体数据帧。当该媒体数据帧为跳帧后的媒体数据帧时,表示该媒体数据帧的前一帧为平滑发送的,因此,通过立即播放该媒体数据帧能够减少由于平滑发送所带来的延时。

在本实施例中提供了一种媒体数据的解码方法,可用于上述的电子设备,如视频会议的终端,图9是根据本发明实施例的媒体数据的解码方法的流程图,如图9所示,该流程包括如下步骤:

s51,接收待处理数据包。

其中,所述待处理数据包包括多个媒体码流帧。

详细请参见图8所示实施例的s41,在此不再赘述。

s52,对媒体码流帧进行解码,以得到媒体数据帧。

其中,在媒体码流帧上携带有时间戳,该时间戳用于表示相邻媒体数据帧之间的播放间隔。

详细请参见图8所示实施例的s42,在此不再赘述。

s53,利用时间戳判断媒体数据帧是否为第一帧。

请参见上述关于时间戳的定义,即时间戳=初始随机值+(m-1)*(90000/采集帧率);若该时间戳即为初始随机值,那么媒体数据帧为第一帧。

当媒体数据帧为第一帧时,执行s54;否则,执行s55。

s54,立即播放媒体数据帧。

s55,判断媒体数据帧是否携带有跳帧标记。

其中,所述跳帧标记用于表示媒体数据帧为跳帧后的媒体数据帧。

详细请参见图8所示实施例的s43,在此不再赘述。

当媒体数据帧携带有跳帧标记时,执行s54;否则,执行s56。

s56,基于时间戳播放媒体数据帧。

例如,第1帧媒体码流帧对应的时间戳为t1,第2帧媒体码流帧对应的时间戳为t2,第3帧媒体码流帧对应的时间戳为t3,第4帧媒体码流帧对应的时间戳为t4,…,第10帧媒体码流帧对应的时间戳为t10;

那么,t2与t1之间的时间间隔为△t1=t2-t1,以及t3与t2之间的时间间隔为△t2=t3-t2,…。若第1帧至第9帧为正常媒体数据帧,则在进行播放时按照时间戳计算得到的时间间隔进行播放;若第10帧为媒体码流帧为跳帧,那么在第9帧媒体数据帧播放之后,立即播放该第10帧,而不需要等待时间间隔到以后再进行播放,从而可以减少播放延时。

作为本实施例的一个具体应用实例,如图10所示,从软件层面上将用于实现上述实施例中所述的媒体数据的解码方法的设备划分为:第二网络模块(即,解码侧网络模块)、第二媒体控制模块(即,解码侧媒体控制模块)、解码器以及播放模块。

其中,解码侧网络模块,负责接收数据包且进行解包组帧;

解码侧媒体控制模块,控制播放器进行播放,根据时间戳间隔计算该帧是否存在跳帧编码,若存在跳帧编码则控制播放器立马播放该帧;

解码器,对媒体码流进行解码生成yuv数据;

播放模块,按照一定的播放帧率对视频图像进行播放。

可选地,如图11所示,媒体数据的解码方法可以包括如下步骤:

(1)网络模块从网络中接收到视频码流数据包单元;

(2)网络模块进行解包组帧并且标记为第n帧;

(3)记录第n帧的rtp时间戳为tn;

(4)媒体控制模块控制解码器对第n帧码流进行解码;

(5)媒体控制模块判断n是否等于1;若n=1,则表示这是视频会议中的第一帧;播放器立即对该帧进行播放;若n≠1,则进入计算模块;

(6)判断sei标记信息;若无sei标记信息,说明该帧未进行跳帧编码,则按照会议帧率进行播放;若有sei标记信息,说明该帧是编码侧跳帧编码后的帧;则播放器立即对该帧进行播放;

(7)最后就完成了对跳帧编码帧或正常帧的解码播放工作。

在本发明实施例中还提供了一种媒体数据的编码装置以及媒体数据的解码装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。

本实施例提供一种媒体数据的编码装置,如图12所示,包括:

获取模块1201,用于获取待处理媒体数据;其中,所述待处理媒体数据包括多个待处理媒体数据帧。

编码模块1202,用于对当前待处理媒体数据帧进行编码,以得到媒体码流帧。

计算模块1203,用于当确定平滑发送所述媒体码流帧时,基于所述媒体码流帧的大小确定出待丢弃帧数。

提取模块1204,用于按照待丢弃帧数丢弃待处理媒体数据帧,并提取下一个待处理媒体数据帧;其中,所述下一个待处理媒体数据帧为与所述当前待处理媒体数据帧相邻所述待丢弃帧数的待处理媒体数据帧。

跳帧标记携带模块1205,用于在所述下一个待处理媒体数据帧中添加跳帧标记,并对所述下一个待处理媒体数据帧进行编码;其中,所述跳帧标记用于表示所述下一个待处理媒体数据帧为跳帧后的待处理媒体数据帧。

本实施例还提供了一种媒体数据的解码装置,如图13所示,包括:

接收模块1301,用于接收待处理数据包;其中,所述待处理数据包包括多个媒体码流帧。

解码模块1302,用于对所述媒体码流帧进行解码,以得到媒体数据帧;

判断模块1303,用于判断所述媒体数据帧是否携带有跳帧标记;其中,所述跳帧标记用于表示所述媒体数据帧为跳帧后的媒体数据帧;

播放模块1304,用于当所述媒体数据帧携带有所述跳帧标记时,立即播放所述媒体数据帧。

本实施例中的媒体数据的编码装置以及媒体数据的解码装置是以功能单元的形式来呈现,这里的单元是指asic电路,执行一个或多个软件或固定程序的处理器和存储器,和/或其他可以提供上述功能的器件。

上述各个模块的更进一步的功能描述与上述对应实施例相同,在此不再赘述。

本发明实施例还提供一种电子设备,具有上述图12所示的媒体数据的编码装置,或图13所示的媒体数据的解码装置。

请参阅图14,图14是本发明可选实施例提供的一种电子设备的结构示意图,如图14所示,该电子设备可以包括:至少一个处理器1401,例如cpu(centralprocessingunit,中央处理器),至少一个通信接口1403,存储器1404,至少一个通信总线1402。其中,通信总线1402用于实现这些组件之间的连接通信。其中,通信接口1403可以包括显示屏(display)、键盘(keyboard),可选通信接口1403还可以包括标准的有线接口、无线接口。存储器1404可以是高速ram存储器(randomaccessmemory,易挥发性随机存取存储器),也可以是非不稳定的存储器(non-volatilememory),例如至少一个磁盘存储器。存储器1404可选的还可以是至少一个位于远离前述处理器1401的存储装置。其中处理器1401可以结合图12或图13所描述的装置,存储器1404中存储应用程序,且处理器1401调用存储器1404中存储的程序代码,以用于执行上述任一方法步骤。

其中,通信总线1402可以是外设部件互连标准(peripheralcomponentinterconnect,简称pci)总线或扩展工业标准结构(extendedindustrystandardarchitecture,简称eisa)总线等。通信总线1402可以分为地址总线、数据总线、控制总线等。为便于表示,图14中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

其中,存储器1404可以包括易失性存储器(英文:volatilememory),例如随机存取存储器(英文:random-accessmemory,缩写:ram);存储器也可以包括非易失性存储器(英文:non-volatilememory),例如快闪存储器(英文:flashmemory),硬盘(英文:harddiskdrive,缩写:hdd)或固态硬盘(英文:solid-statedrive,缩写:ssd);存储器1404还可以包括上述种类的存储器的组合。

其中,处理器1401可以是中央处理器(英文:centralprocessingunit,缩写:cpu),网络处理器(英文:networkprocessor,缩写:np)或者cpu和np的组合。

其中,处理器1401还可以进一步包括硬件芯片。上述硬件芯片可以是专用集成电路(英文:application-specificintegratedcircuit,缩写:asic),可编程逻辑器件(英文:programmablelogicdevice,缩写:pld)或其组合。上述pld可以是复杂可编程逻辑器件(英文:complexprogrammablelogicdevice,缩写:cpld),现场可编程逻辑门阵列(英文:field-programmablegatearray,缩写:fpga),通用阵列逻辑(英文:genericarraylogic,缩写:gal)或其任意组合。

可选地,存储器1404还用于存储程序指令。处理器1401可以调用程序指令,实现如本申请图2、4、5以及7实施例中所示的媒体数据的编码方法,或如本申请图8、9以及11实施例中所示的媒体数据的解码方法。

本发明实施例还提供了一种非暂态计算机存储介质,所述计算机存储介质存储有计算机可执行指令,该计算机可执行指令可执行上述任意方法实施例中的媒体数据的编码方法,或媒体数据的解码方法。其中,所述存储介质可为磁碟、光盘、只读存储记忆体(read-onlymemory,rom)、随机存储记忆体(randomaccessmemory,ram)、快闪存储器(flashmemory)、硬盘(harddiskdrive,缩写:hdd)或固态硬盘(solid-statedrive,ssd)等;所述存储介质还可以包括上述种类的存储器的组合。

虽然结合附图描述了本发明的实施例,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下做出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。

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