一种视频数据的处理方法及装置与流程

文档序号:13559770阅读:343来源:国知局
一种视频数据的处理方法及装置与流程

本发明涉及通信技术领域,尤其涉及一种视频数据的处理方法及装置。



背景技术:

传统视频编码中,为了使编码后的视频支持随机访问功能,在编码视频中会插入一些随机访问点(英文:randomaccesspoint)。视频由随机访问点分割成多个具有随机访问功能的视频片段,简称为随机访问片段。在传统技术中,一个随机访问片段中的图像只能作为该随机访问片段中的其他图像的参考图像/参考帧(英文:referencepicture/referenceframe)),不允许跨随机访问点的帧间预测(英文:interprediction),较大地限制了视频编/解码的效率。

为了挖掘和利用多个随机访问片段之间的图像在编码时相互参考的信息,在编码(或解码)一幅图像时,编码器(或解码器)可以从数据库中选择与当前编码图像(或解码图像)纹理内容相近的图像作为参考图像,这种参考图像称为知识库图像,存储上述参考图像的集合的数据库称为知识库,这种视频中至少一幅图像参考至少一幅知识库图像进行编解码的方法称为基于知识库的视频编码(英文:library-basedvideocoding,lbvc)。采用lbvc对一个视频序列进行编码会产生一个包含知识库图像编码码流的知识层码流和一个包含视频序列各帧图像参考知识库图像编码得到的码流的序列层码流。这两种码流分别类似于可伸缩视频编码(英文:scalablevideocoding,svc)产生的基本层码流和增强层码流,即序列层码流依赖于知识层码流。然而,lbvc的双码流组织方式与svc的分级码流组织方式的层级码流之间的依赖关系不同,lbvc的双码流中知识层码流切分得到多个知识层片段,序列层码流切分得到多个序列层片段。序列层码流中的多个不连续的序列层片段可能会参考同一个知识层片段,客户端解码参考该知识层片段的多个序列层片段时需要加载该知识层片段,故此客户端解码多个序列层片段时只需加载一次该知识层片段,无线重复多次加载。

现有的基于通过超文本传输协议(英文:hypertexttransferprotocol,http)动态自适应流媒体(英文:dynamicadaptivestreamingoverhttp,dash)的系统层传输方案将知识层码流和序列层码流分别作为基本层码流和增强层码流来传输lbvc产生的视频数据,无法将被多个不连续的序列层片段依赖的知识层片段和被一个序列层片段依赖的知识层片段进行区分,进而无法告知客户端哪些知识层片段被多个序列层片段依赖,无法避免被多个序列层片段依赖的知识层片段被多次加载和传输,浪费了传输带宽,适用性低。



技术实现要素:

本申请提供了一种视频数据的处理方法及装置,可避免视频数据的重复传输,节省数据传输的带宽,提高了视频数据处理的适用性。

第一方面提供了一种视频数据的处理方法,其可包括:

服务器获取码流中的所有序列层片段中每个序列层片段的片段信息,所述片段信息用于描述所述码流中的序列层片段与知识层片段的依赖关系;

根据所述每个序列层片段的片段信息确定出n个序列层片段和第一目标知识层片段,所述n个序列层片段依赖于所述第一目标知识层片段,所述n个序列层片段中至少包含两个不连续的序列层片段,所述第一目标知识层片段为所述码流中包含的至少一个知识层片段中的一个;

获取所述第一目标知识层片段的片段信息;

根据所述第一目标知识层片段的片段信息和所述n个序列层片段的片段信息在所述码流的媒体表达描述mpd中添加所述第一目标知识层片段的扩展时段信息,所述n个序列层片段在所述扩展时段信息指示的时段内被编码;

将所述码流的mpd发送给客户端。

在本申请中,服务器可将被至少两个不连续的序列层片段依赖的知识层片段确定为目标知识层片段,并在码流的mpd中添加扩展时段信息来标记目标知识层片段的扩展时段等信息,以供客户端对目标知识层片段和非目标知识层片段区分,进而可避免目标知识层片段的重复加载和传输,节省数据传输带宽,增强了视频数据的处理的适用性。

结合第一方面,在第一种可能的实现方式中,所述根据所述每个序列层片段的片段信息确定出n个序列层片段和第一目标知识层片段包括:

根据所述每个序列层片段的片段信息中包含的知识层片段的标识确定出每个序列层片段所依赖的知识层片段;

确定出第一目标知识层片段,并确定出依赖所述第一目标知识层片段的n个序列层片段。

本申请可根据序列层片段的片段信息中携带的标识确定序列层片段依赖的知识层片段,进而可确定出第一目标知识层片段和依赖第一目标知识层片段的n个序列层片段,提高了知识层片段和序列层片段的依赖关系的确定的准确性,进而增强了视频数据的处理效率。

结合第一方面第一种可能的实现方式,在第二种可能的实现方式中,所述n个序列层片段包含至少两个分组的序列层片段,所述至少两个分组至少包括第一时段对应的第一序列层片段组和第二时段对应的第二序列层片段组;

所述第一序列层片段组包含n1个序列层片段,所述第二序列层片段组包含n2个序列层片段,所述n1个序列层片段和所述n2个序列层片段不连续,并且n1+n2<=n;

若所述n1>1,则所述n1个序列层片段为连续的序列层片段;若所述n2>1,则所述n2个序列层片段为连续的序列层片段;

所述码流的mpd包含至少两个描述层,所述至少两个描述层中第一描述层描述第一目标知识层片段,第二描述层描述序列层片段;

所述根据所述第一目标知识层片段的片段信息和所述n个序列层片段的片段信息在所述码流的mpd中添加所述第一目标知识层片段的扩展时段信息包括:

在所述第一描述层包含的所述第一时段对应的第一片段描述中添加第一扩展时段信息,并在所述第一描述层包含的所述第二时段对应的第二片段描述中添加第二扩展时段信息。

本申请可确定出依赖第一目标知识层片段的n个序列层片段中包含的时间上连续的序列层片段组和时间上不连续的序列层片段组,确定出不同时段的序列层片段组,进而可结合码流的mpd中包含的描述层描述知识层片段的时序描述特点在不同时段对应的片段描述中添加不同时段对应的扩展时段信息,提高了扩展时段信息的适用性,增加视频数据的处理的适用性。

结合第一方面第二种可能的实现方式,在第三种可能的实现方式中,所述第一扩展时段信息和所述第二扩展时段信息均为第一扩展标识;

所述在所述码流的mpd中添加所述第一目标知识层片段的扩展时段信息包括:

在所述第一片段描述中包含的所述第一目标知识层片段的片段信息中添加第一扩展标识,并在所述第二片段描述中包含的所述第一目标知识层片段的片段信息中添加第一扩展标识。

本申请可采用在知识层片段的片段信息中添加第一扩展标识的方式来标记目标知识层片段,提高了目标知识层片段的标记的准确性,提高知识层片段的识别效率。

结合第一方面第二种可能的实现方式,在第四种可能的实现方式中,所述第一扩展时段信息和所述第二扩展时段信息均为第二扩展标识;

所述在所述码流的mpd中添加所述第一目标知识层片段的扩展时段信息包括:

在所述第一描述层的描述层属性信息中添加所述第一时段对应的第二扩展标识和所述第二时段对应的第二扩展标识。

本申请在描述知识层片段的描述层的描述层属性信息中添加第二扩展标识的方法来标记目标知识层片段,提高了目标知识层片段片段的标记的便捷性,增强了目标知识层片段的标记添加的适用性。

结合第一方面第二种可能的实现方式,在第五种可能的实现方式中,所述方法还包括:

若所述第一序列层片段组还依赖第二目标知识层片段,则所述码流的mpd中还包括第三描述层,所述第三描述层描述所述第二目标知识层片段。

本申请可在n个序列层片段中包含依赖第二目标知识层片段的序列层片段时,通过第三描述层来描述第二目标知识层片段,增强了目标知识层片段的描述的准确性,提高视频数据的处理的适用性。

结合第一方面第五种可能的实现方式,在第六种可能的实现方式中,所述方法还包括:

在所述第三描述层包含的所述第一时段对应的第三片段描述中添加第三扩展时段信息,所述第三扩展时段信息为第一扩展标识;或者

在所述第三描述层的描述层属性信息中添加第三扩展时段信息,所述第三扩展时段信息为第二扩展标识。

本申请可在第三描述层中包含的片段描述中添加第二目标知识层片段的标记,或者在第三描述层的描述层属性信息中添加第二目标知识层片段的标记,提高了目标知识层片段片段的标记方式的多样性,增强了目标知识层片段的标记的便捷性,增强了目标知识层片段的标记添加的适用性。

结合第一方面第三种可能的实现方式,或者第一方面第四种可能的实现方式,或者第一方面第六种可能的实现方式中任一种,在第七种可能的实现方式中,所述第一扩展标识或者所述第二扩展标识为第一字符串;

所述第一字符串用于描述所述第一目标知识层片段或者所述第二目标知识层片段拥有的固定时间长度的扩展时段;

其中,所述扩展时段的时间长度为所述第一字符串对应的数值。

本申请可通过第一字符串来标记拥有固定时间长度的扩展时段的目标知识层片段,操作简单,提高了视频数据的处理效率。

结合第一方面第三种可能的实现方式,或者第一方面第四种可能的实现方式,或者第一方面第六种可能的实现方式中任一种,在第八种可能的实现方式中,所述第一扩展标识或者所述第二扩展标识为第二字符串;

所述第二字符串用于描述所述第一目标知识层片段或者所述第二目标知识层片段拥有的可变时间长度的扩展时段;

其中,所述扩展时段的时间长度由所述mpd中包含的所述目标知识层片段的片段信息确定。

本申请可通过第二字符串来标记拥有可变时间长度的扩展时段的目标知识层片段,扩展时段的时间长度的确定由mpd中包含的片段信息确定,提高了目标知识层片段的标记形式的多样性,增强了视频数据的处理的适用性。

第二方面提供了一种视频数据的处理方法,其可包括:

客户端解析服务器发送的码流的媒体表达描述mpd,确定所述mpd中携带的扩展时段信息,所述扩展时段信息用于确定所述码流中包含的目标知识层片段的被依赖时段,所述目标知识层片段为所述码流中包含的至少一个知识层片段中的一个,所述目标知识层片段被所述码流中的n个序列层片段依赖;

根据所述扩展时段信息确定出目标知识层片段,并确定出所述目标知识层片段的被依赖时段,所述n个序列层片段在所述目标知识层片段的被依赖时段内已被编码;

从所述码流的mpd获取所述目标知识层片段的网络存储地址,记录所述目标知识层片段的被依赖时段和网络存储地址;

当获取到视频点播请求时,判断所述视频点播请求中携带的点播时刻是否包含在所述目标知识层片段的被依赖时段中;

若所述目标知识层片段的被依赖时段包含所述点播时刻,则查看所述目标知识层片段在所述客户端的存储空间中的存储状态,并根据所述存储状态确定所述目标知识层片段的获取方式。

本申请客户端可通过解析服务器发送的码流的mpd,获取mpd中包含的扩展时段信息,并确定目标知识层片段的被依赖时段,并存储上述目标知识层片段的被依赖时段和目标知识层片段在客户端中的存储状态的存储状态标记。进一步的,客户端可在接收到用户点播视频的点播请求时,根据点播请求中携带的点播时刻查找包含该点播时刻的被依赖时段,进而确定该被依赖时段对应的目标知识层片段及其存储状态。客户端可根据目标知识层片段的存储状态确定是否向服务器请求目标知识层片段,可避免同一个知识层片段的多次加载和存储,节省数据传输带宽,提高码流数据的处理效率。

结合第二方面,在第一种可能的实现方式中,所述n个序列层片段包含至少两个分组的序列层片段,所述至少两个分组至少包括第一时段对应的第一序列层片段组和第二时段对应的第二序列层片段组;

所述扩展时段信息包括所述第一时段对应的第一扩展时段信息和所述第二时段对应的第二扩展时段信息;

所述第一扩展时段信息用于确定所述目标知识层片段的被依赖时段中的第一扩展时段,所述第二扩展时段信息用于确定所述目标知识层片段的被依赖时段中的第二扩展时段。

在本申请中,客户端可解析并获取码流的mpd包含的第一扩展时段信息和第二扩展时段信息,进而可确定第一扩展时段信息对应的第一扩展时段和第二扩展时段信息对应的第二扩展时段,可提高目标知识层片段的扩展时段的确定效率。

结合第二方面第一种可能的实现方式,在第二种可能的实现方式中,所述第一扩展时段信息和所述第二扩展时段信息为第一扩展标识;

所述客户端解析服务器发送的码流的媒体表达描述mpd,确定所述mpd中携带的扩展时段信息包括:

所述客户端解析所述mpd,获取所述mpd中包含描述层描述的片段信息包含的第一扩展标识;

所述根据所述扩展时段信息确定出目标知识层片段包括:

将携带所述第一扩展标识的片段信息对应的片段确定为目标知识层片段;

其中,所述片段信息包括第一时段对应的第一片段信息和第二时段对应的第二片段信息,所述第一片段信息中携带第一扩展时段信息,所述第二片段信息中携带第二扩展时段信息。

在本申请中,客户端可根据第一扩展标识确定目标知识层片段,可提高目标知识层片段的识别效率,进而提高视频数据的处理效率。

结合第二方面第一种可能的实现方式,在第三种可能的实现方式中,所述第一扩展时段信息和所述第二扩展时段信息为第二扩展标识;

所述客户端解析服务器发送的码流的媒体表达描述mpd,确定所述mpd中携带的扩展时段信息包括:

所述客户端解析所述mpd,获取所述mpd中包含的描述层的描述层属性信息中包含的第二扩展标识;

所述根据所述扩展时段信息确定出目标知识层片段包括:

将携带所述第二扩展标识的描述层描述的片段确定为目标知识层片段;

其中,所述描述层属性信息中包含第一扩展时段信息和第二扩展时段信息,所述第一片段信息和所述第二片段信息中分别携带一个第二扩展标识。

在本申请中,客户端可根据第二扩展标识确定目标知识层片段,可提高目标知识层片段的识别效率,进而提高视频数据的处理效率。

结合第二方面第二种可能的实现方式或者第二方面第三种可能的实现方式,在第四种可能的实现方式中,所述确定出所述目标知识层片段的被依赖时段包括:

根据所述第一扩展时段信息确定出所述目标知识层片段的第一扩展时段,并根据所述第二扩展时段信息确定出所述目标知识层片段的第二扩展时段;

将所述第一扩展时段和所述第二扩展时段的并集作为所述目标知识层片段的被依赖时段。

在本申请中,客户端可根据码流的mpd中携带的扩展时段信息确定扩展时段,根据确定出的扩展时段确定目标知识层片段的被依赖时段,通过被依赖时段来标记目标知识层片段,提高了目标知识层片段的识别度,提高目标知识层片段的管理的可操作性。

结合第二方面第四种可能的实现方式,在第五种可能的实现方式中,所述记录所述目标知识层片段的被依赖时段和网络存储地址包括:

根据所述目标知识层片段的网络存储地址创建知识层片段列表,并在所述知识层片段列表中记录所述目标知识层片段的被依赖时段;

所述方法还包括:

在所述知识层片段列表中添加所述目标知识层片段的存储状态标记,用于表示所述目标知识层片段是否已经存在所述客户端的存储空间中;

所述查看所述目标知识层片段在所述客户端的存储空间中的存储状态包括:

根据所述目标知识层片段的网络存储地址在所述知识层片段列表中查看所述目标知识层片段的存储状态标记;

若所述存储状态标记为真,则确定所述目标知识层片段在所述存储空间中的存储状态不为空,否则为空;

所述根据所述存储状态确定所述目标知识层片段的获取方式包括:

若所述存储状态不为空,则从所述存储空间中获取所述目标知识层片段,否则向所述服务器发送获取所述目标知识层片段的请求。

在本申请中,客户端可存储目标知识层片段的被依赖时段和目标知识层片段在客户端中的存储状态的存储状态标记,进而可在接收到点播请求时根据点播请求中携带的点播时刻查找包含该点播时刻的扩展时段对应的目标知识层片段,并根据目标知识层片段的存储状态确定是否向服务器请求目标知识层片段,或者从存储空间中获取目标知识层片段,可避免同一个知识层片段的多次加载和存储,节省数据传输带宽,提高码流数据的处理效率。

结合第二方面第五种可能的实现方式,在第六种可能的实现方式中,所述向所述服务器发送获取所述目标知识层片段的请求之后,所述方法还包括:

接收所述服务器发送的所述目标知识层片段;

若所述存储空间的剩余空间大小不小于所述目标知识层片段的数据大小,则将所述目标知识层片段存入所述存储空间,并将所述目标知识层片段的存储状态标记记为真;

若所述存储空间的剩余空间大小小于所述目标知识层片段的数据大小,则删除所述存储空间中存储的指定目标知识层片段,将所述目标知识层片段存入所述存储空间,并将所述目标知识层片段的存储状态标记记为真;

其中,所述指定目标知识层片段的被依赖时段与所述点播时刻的时间距离大于预设时间阈值。

在本申请中,客户端可在接收或者删除了目标知识层片段之后更新目标知识层片段在知识层片段列表中存储的存储状态标记,提高了目标知识层片段的存储状态的管理的准确性,进而提高了目标知识层片段的管理的准确性。

第三方面提供了一种视频数据的处理装置,其可包括:

获取单元,用于获取码流中的所有序列层片段中每个序列层片段的片段信息,所述片段信息用于描述所述码流中的序列层片段与知识层片段的依赖关系;

确定单元,用于根据所述获取单元获取的所述每个序列层片段的片段信息确定出n个序列层片段和第一目标知识层片段,所述n个序列层片段依赖于所述第一目标知识层片段,所述n个序列层片段中至少包含两个不连续的序列层片段,所述第一目标知识层片段为所述码流中包含的至少一个知识层片段中的一个;

所述获取单元,还用于获取所述确定单元确定的所述第一目标知识层片段的片段信息;

添加单元,用于根据所述获取单元获取的所述第一目标知识层片段的片段信息和所述n个序列层片段的片段信息在所述码流的媒体表达描述mpd中添加所述第一目标知识层片段的扩展时段信息,所述n个序列层片段在所述扩展时段信息指示的时段内被编码;

发送单元,用于将所述添加单元处理得到的所述码流的mpd发送给客户端。

结合第三方面,在第一种可能的实现方式中,所述确定单元具体用于:

根据所述获取单元获取的所述每个序列层片段的片段信息中包含的知识层片段的标识确定出每个序列层片段所依赖的知识层片段;

确定出第一目标知识层片段,并确定出依赖所述第一目标知识层片段的n个序列层片段。

结合第三方面第一种可能的实现方式,在第二种可能的实现方式中,所述n个序列层片段包含至少两个分组的序列层片段,所述至少两个分组至少包括第一时段对应的第一序列层片段组和第二时段对应的第二序列层片段组;

所述第一序列层片段组包含n1个序列层片段,所述第二序列层片段组包含n2个序列层片段,所述n1个序列层片段和所述n2个序列层片段不连续,并且n1+n2<=n;

若所述n1>1,则所述n1个序列层片段为连续的序列层片段;若所述n2>1,则所述n2个序列层片段为连续的序列层片段;

所述码流的mpd包含至少两个描述层,所述至少两个描述层中第一描述层描述第一目标知识层片段,第二描述层描述序列层片段;

所述添加单元具体用于:

在所述第一描述层包含的所述第一时段对应的第一片段描述中添加第一扩展时段信息,并在所述第一描述层包含的所述第二时段对应的第二片段描述中添加第二扩展时段信息。

结合第三方面第二种可能的实现方式,在第三种可能的实现方式中,所述第一扩展时段信息和所述第二扩展时段信息均为第一扩展标识;

所述添加单元具体用于:

在所述第一片段描述中包含的所述第一目标知识层片段的片段信息中添加第一扩展标识,并在所述第二片段描述中包含的所述第一目标知识层片段的片段信息中添加第一扩展标识。

结合第三方面第二种可能的实现方式,在第四种可能的实现方式中,所述第一扩展时段信息和所述第二扩展时段信息均为第二扩展标识;

所述添加单元具体用于:

在所述第一描述层的描述层属性信息中添加所述第一时段对应的第二扩展标识和所述第二时段对应的第二扩展标识。

结合第三方面第二种可能的实现方式,在第五种可能的实现方式中,若所述第一序列层片段组还依赖第二目标知识层片段,则所述码流的mpd中还包括第三描述层,所述第三描述层描述所述第二目标知识层片段。

结合第三方面第五种可能的实现方式,在第六种可能的实现方式中,所述添加单元还用于:

在所述第三描述层包含的所述第一时段对应的第三片段描述中添加第三扩展时段信息,所述第三扩展时段信息为第一扩展标识;或者

在所述第三描述层的描述层属性信息中添加第三扩展时段信息,所述第三扩展时段信息为第二扩展标识。

在本申请中,服务器可将被至少两个不连续的序列层片段依赖的知识层片段确定为目标知识层片段,并在码流的mpd中添加扩展时段信息来标记目标知识层片段的扩展时段等信息,以供客户端对目标知识层片段和非目标知识层片段区分,进而可避免目标知识层片段的重复加载和传输,节省数据传输带宽,增强了视频数据的处理的适用性。

第四方面提供了一种视频数据的处理装置,其可包括:

解析单元,用于解析服务器发送的码流的媒体表达描述mpd,确定所述mpd中携带的扩展时段信息,所述扩展时段信息用于确定所述码流中包含的目标知识层片段的被依赖时段,所述目标知识层片段为所述码流中包含的至少一个知识层片段中的一个,所述目标知识层片段被所述码流中的n个序列层片段依赖;

确定单元,用于根据所述解析单元获取的所述扩展时段信息确定出目标知识层片段,并确定出所述目标知识层片段的被依赖时段,所述n个序列层片段在所述目标知识层片段的被依赖时段内已被编码;

记录单元,用于从所述解析单元解析的所述码流的mpd获取所述目标知识层片段的网络存储地址,记录所述确定单元确定的所述目标知识层片段的被依赖时段和所述网络存储地址;

判断单元,用于在获取到视频点播请求时,判断所述视频点播请求中携带的点播时刻是否包含在所述记录单元记录的所述目标知识层片段的被依赖时段中;

获取单元,用于在所述判断单元的判断结果为是时,查看所述目标知识层片段在所述客户端的存储空间中的存储状态,并根据所述存储状态确定所述目标知识层片段的获取方式。

结合第四方面,在第一种可能的实现方式中,所述n个序列层片段包含至少两个分组的序列层片段,所述至少两个分组至少包括第一时段对应的第一序列层片段组和第二时段对应的第二序列层片段组;

所述扩展时段信息包括所述第一时段对应的第一扩展时段信息和所述第二时段对应的第二扩展时段信息;

所述第一扩展时段信息用于确定所述目标知识层片段的被依赖时段中的第一扩展时段,所述第二扩展时段信息用于确定所述目标知识层片段的被依赖时段中的第二扩展时段。

结合第四方面第一种可能的实现方式,在第二种可能的实现方式中,所述第一扩展时段信息和所述第二扩展时段信息为第一扩展标识;

所述解析单元具体用于:

解析所述mpd,获取所述mpd中包含描述层描述的片段信息包含的第一扩展标识;

所述确定单元具体用于:

将携带所述解析单元获取的所述第一扩展标识的片段信息对应的片段确定为目标知识层片段;

其中,所述片段信息包括第一时段对应的第一片段信息和第二时段对应的第二片段信息,所述第一片段信息中携带第一扩展时段信息,所述第二片段信息中携带第二扩展时段信息。

结合第四方面第一种可能的实现方式,在第三种可能的实现方式中,所述第一扩展时段信息和所述第二扩展时段信息为第二扩展标识;

所述解析单元具体用于:

解析所述mpd,获取所述mpd中包含的描述层的描述层属性信息中包含的第二扩展标识;

所述确定单元具体用于:

将携带所述解析单元获取的所述第二扩展标识的描述层描述的片段确定为目标知识层片段;

其中,所述描述层属性信息中包含第一扩展时段信息和第二扩展时段信息,所述第一片段信息和所述第二片段信息中分别携带一个第二扩展标识。

结合第四方面第二种可能的实现方式或者第四方面第三种可能的实现方式,在第四种可能的实现方式中,所述确定单元具体用于:

根据所述第一扩展时段信息确定出所述目标知识层片段的第一扩展时段,并根据所述第二扩展时段信息确定出所述目标知识层片段的第二扩展时段;

将所述第一扩展时段和所述第二扩展时段的并集作为所述目标知识层片段的被依赖时段。

结合第四方面第四种可能的实现方式,在第五种可能的实现方式中,所述记录单元具体用于:

根据所述目标知识层片段的网络存储地址创建知识层片段列表,并在所述知识层片段列表中记录所述目标知识层片段的被依赖时段;

所述记录单元还用于:

在所述知识层片段列表中添加所述目标知识层片段的存储状态标记,用于表示所述目标知识层片段是否已经存在所述客户端的存储空间中;

所述获取单元具体用于:

根据所述目标知识层片段的网络存储地址在所述知识层片段列表中查看所述目标知识层片段的存储状态标记;

若所述存储状态标记为真,则确定所述目标知识层片段在所述存储空间中的存储状态不为空,否则为空;

若所述存储状态不为空,则从所述存储空间中获取所述目标知识层片段,否则向所述服务器发送获取所述目标知识层片段的请求。

结合第四方面第五种可能的实现方式,在第六种可能的实现方式中,所述获取单元还用于:

接收所述服务器发送的所述目标知识层片段;

若所述存储空间的剩余空间大小不小于所述目标知识层片段的数据大小,则将所述目标知识层片段存入所述存储空间,并通过所述记录单元将所述目标知识层片段的存储状态标记记为真;

若所述存储空间的剩余空间大小小于所述目标知识层片段的数据大小,则删除所述存储空间中存储的指定目标知识层片段,将所述目标知识层片段存入所述存储空间,并通过所述记录单元将所述目标知识层片段的存储状态标记记为真;

其中,所述指定目标知识层片段的被依赖时段与所述点播时刻的时间距离大于预设时间阈值。

在本申请中,客户端可通过解析码流的mpd,获取mpd中包含的扩展时段信息,并确定目标知识层片段的被依赖时段,并存储上述目标知识层片段的被依赖时段和目标知识层片段在客户端中的存储状态的存储状态标记。进一步的,客户端可在接收到用户点播视频的点播请求时,根据点播请求中携带的点播时刻查找包含该点播时刻的扩展时段,进而确定该扩展时段对应的目标知识层片段及其存储状态标记。客户端可根据目标知识层片段的存储状态确定是否向服务器请求目标知识层片段,或者从本地存储空间中获取目标知识层片段,可避免同一个知识层片段的多次加载和存储,节省数据传输带宽,提高码流数据的处理效率。

第五方面提供了一种服务器,其可包括:存储器和处理器,所述存储和所述处理器相连;

所述存储器用于存储一组程序代码;

所述处理器用于调用所述存储器中存储的程序代码执行如上述第一方面提供的视频数据的处理方法。

第六方面提供了一种客户端,其可包括:存储器和处理器,所述存储和所述处理器相连;

所述存储器用于存储一组程序代码;

所述处理器用于调用所述存储器中存储的程序代码执行如上述第二方面提供的视频数据的处理方法。

附图说明

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

图1是系统传输方案dash标准的传输框架实例示意图;

图2是系统传输方案dash标准的mpd的结构示意图;

图3是相互独立的随机访问片段的示意图;

图4是基于知识库的视频编码中以一个知识库编码参考的示意图;

图5是svc的基本层码流和增强层码流的关系示意图;

图6是按照dash标准为svc码流生成的mpd的实例示意图;

图7是本发明实施例提供的视频数据的处理系统的示意图;

图8是本发明实施例提供的视频数据的处理方法的流程示意图;

图9是lbvc产生的视频内容的片段示意图;

图10是本发明实施例提供了mpd示意图;

图11是在dash标准的语法元素的基础上添加扩展标识的一示意图;

图12是在dash标准的语法元素的基础上添加扩展标识的另一示意图;

图13是在dash标准的语法元素的基础上添加扩展标识的另一示意图;

图14是采用lbvc方法从视频序列中提取知识库图像的示意图;

图15是知识库图像切分为知识层片段的一示意图;

图16是知识库图像切分为知识层片段的另一示意图;

图17是知识层片段列表的一示意图;

图18是知识层片段列表的另一示意图;

图19是知识层片段列表的另一示意图;

图20是本发明实施例提供的视频数据的处理装置的一结构示意图;

图21是本发明实施例提供的视频数据的处理装置的另一结构示意图;

图22是本发明实施例提供的服务器的结构示意图;

图23是本发明实施例提供的客户端的结构示意图。

具体实施方式

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

当前以客户端为主导的系统层视频流媒体传输方案可采用dash标准框架,如图1,图1是系统传输方案dash标准的传输框架实例示意图。系统层视频流媒体传输方案的数据传输过程包括两个过程:服务器(如http服务器)为视频内容生成媒体数据的过程,和客户端(如http流媒体客户端)向服务器请求并获取媒体数据的过程。其中,服务器上的媒体表达中包括多个描述层,每个描述层描述多个片段。客户端的http流媒体请求控制模块获取服务器发送的媒体表达描述(英文:mediapresentationdescription,mpd),并对mpd进行分析确定要请求的片段,通过http请求接收端向服务器请求相应的片段,并通过媒体播放器进行解码播放。

1)在上述服务器为视频内容生成媒体数据的过程中,服务器为视频内容生成的媒体数据包括同一视频内容的不同版本的视频码流和码流的mpd。例如,服务器为同一集电视剧的视频内容生成低分辨率低码率低帧率(如360p分辨率、300kbps码率、15fps帧率)的码流,中分辨率中码率高帧率(如720p分辨率、1200kbps码率、25fps帧率)的码流,高分辨率高码率高帧率(如1080p分辨率、3000kbps码率、25fps帧率)的码流等。

此外,服务器还可为该集电视剧的视频内容生成码流的mpd。其中,如图2,图2是系统传输方案dash标准的mpd的结构示意图。上述码率的mpd包含多个描述层(英文:representation),例如,图2的媒体表达(英文:mediapresentation)中的periodstart=100s部分可包含representation1、representation2、…等多个描述层。每个描述层描述上述码流的一个或者多个片段。其中,上述码流中的mpd包含的各个描述层之间可以相互独立、也可以相互依赖。其中,上述各个描述层之间相互独立表示各个描述层的编解码不参考其他描述层(例如描述知识层片段的描述层,该知识层片段的编解码不参考其他片段),各个描述层之间相互依赖表示各个描述层的编解码需要参考其他描述层(例如描述序列层片段的描述层,该序列层片段的编解码需要参考知识层片段)。每个描述层按照时序描述若干个片段(英文:segment)的信息,例如初始化片段(英文:initializationsegment)、mediasegment1、mediasegment1、…、mediasegment20等,所有片段在时间上首尾相接。每个片段包含一个时间段内的视频码流,片段在描述层中的描述包括播放起始时刻、播放持续时长、网络存储地址(例如以统一资源定位符(英文:universalresourcelocator,url)的形式表示的网络存储地址)等片段信息。

进一步的,片段还允许被细分为多个子片段(英文:subsegment),每个子片段包含片段的一部分,子片段的信息包括播放起始时刻、播放持续时长、该子片段在其所属片段的码流中的字节范围(英文:byterange)等。上述子片段的信息由片段索引(英文:segmentindex)描述,每个片段索引描述一个片段中所有的子片段的信息;片段索引可以和片段合并、存储在片段的起始位置,也可以独立存储在索引片段(英文:indexsegment)中。上述子片段的更多描述可参见系统传输方案dash标准中提供的信息,在此不做限制。

2)在客户端向服务器请求并获取媒体数据的过程中,用户选择播放视频时,客户端根据用户点播的操作请求向服务器获取视频码流的mpd,进而根据码流的mpd中描述的视频片段的信息生成片段列表。上述片段列表描述了每个片段的播放时段和该片段的网络存储地址。客户端根据用户点播的播放时刻等因素从片段列表中获取一个或多个片段的网络存储地址,向服务器发送下载网络存储地址对应的视频片段数据的请求,服务器根据接收到的请求向客户端发送视频片段内容。客户端获取得到服务器发送的视频片段内容之后,则可通过媒体播放器进行解码、播放等操作。

系统层视频流媒体传输方案采用dash标准,通过客户端分析mpd、按需向服务器请求视频数据并接收服务器发送的数据的方式实现视频数据的传输。系统层视频流媒体传输方案采用dash标准主要适用于传统视频编码(例如h.264、hevc(英文全称:highefficiencyvideocoding)等编码标准)产生的视频码流。如图3,图3是多个相互独立的随机访问片段的示意图。其中,圆点代表随机访问点,方块代表随机访问点后的随机访问片段,带有x号的虚线箭头表示箭头指向的随机访问片段在编码时不能参考虚线起始的随机访问片段的信息。即,在传统视频的编解码技术中,一个随机访问片段中的图像只能作为该随机访问片段中的其他图像的参考图像/参考帧,即不允许跨随机访问点的帧间预测,较大地限制了视频编/解码的效率。

lbvc将多个随机访问片段中的公共图像信息(包含了随机访问片段间的互信息(英文:mutualinformation),即随机访问片段间的图像在编解码时相互参考的信息)提取组织成知识库,这些公共图像信息仅编码一次,各随机访问片段中的图像允许参考这些公共图像信息进行编码(和解码),从而使得编码器(或解码器)利用随机访问片段之间的互信息,进一步去除视频序列的冗余信息,提升整个视频序列的编码效率,降低存储空间,节省传输带宽。如图4,图4是基于知识库的视频编码中以一个知识库为其他随机访问片段提供编码参考的示意图。其中,圆点代表随机访问点,方块代表随机访问点后的随机访问片段,箭头表示多个随机访问片段在编码时以知识库(英文:library)提供的信息作为参考。

采用基于知识库的视频编码方法对一个视频序列进行编码产生的序列层码流中的图像(称序列图像)有其对应的时刻,序列图像在该时刻被操作则称该时刻为该序列图像的被操作时刻。其中,上述被操作包括被编码、被解码、被播放或被使用。在具体实现中,序列图像多数情况下被用于播放,因此下文序列图像的被操作时刻将以播放时刻为例进行说明。相应的,一段序列层码流的播放时刻的集合称为该序列层码流的播放时段,序列层片段的被操作时段将以播放时段为例进行说明。然而,由于知识库图像可以被视频序列中任意播放时刻的图像作为编码(或者解码,下面将以编码为例进行说明)参考,知识库图像本身并没有像序列图像一样的播放时刻信息。在系统层传输中,为了能够通过时间信息获取序列层码流和知识层码流的依赖关系(即参考与被参考的关系),系统为每个知识库图像分配被依赖时段(英文:dependedduration,dd)。一个知识库图像的被依赖时段至少覆盖依赖上述知识库图像的所有序列图像的播放时刻,即一个知识库图像的被依赖时段中包含了以该知识库图像为编码参考的每个序列图像的播放时刻。因此,客户端在请求某一播放时段的序列层码流时,需要同时请求被依赖时段覆盖上述播放时段的知识层码流,以保证媒体播放器对视频数据的正确解码。

lbvc的双码流组织方式与svc的分级码流组织方式具有一定的相似性,但是由于两种方式中层级码流之间的依赖关系不同,即参考关系不同,因此需要针对lbvc的双码流组织方式的特点对现有的dash的系统层传输方案进行改进,以确定既能实现lbvc的码流组织方式对应的数据传输,又能发挥lbvc的优势的数据传输方式。

在svc编码中,svc编码产生可分级的视频码流,上述视频码流包含一个基本层码流和至少一个增强层码流。如图5,图5是svc的基本层码流和增强层码流的关系示意图。其中,每个方块代表一幅图像,层间的箭头表示增强层的一幅图像在使用层间预测(英文:inter-layerprediction)编码时只能参考基本层中的同一时刻的图像。在svc码流的系统层传输中,dash标准在mpd中使用不同的描述层描述基本层码流和增强层码流的信息,并且标明增强层码流的描述层依赖于基本层码流的描述层。如图6,图6是按照dash标准为svc码流生成的mpd的实例示意图。dash标准在mpd的描述层中通过dep_id等标识来描述两层码流具有依赖性的特征。其中,representation1的id为rep1,representation2为rep2。representation2描述的信息中包含dep_id=rep1,表示representation2依赖representation1。

具体的,在服务器端,增强层码流和基本层码流会被切分成增强层片段和基本层片段,每个片段包含码流中一个时段的数据。由于增强层码流只能参考依赖同一时刻的基本层码流,增强层片段和其依赖的基本层片段分别覆盖的时段是一致对齐的。即,增强层片段对应的增强层码流的时段,与其依赖的基础层片段对应的基础层码流的时段,两个时段的起始时刻和终止时刻均相同。客户端在请求视频数据时,请求某一时段的增强层片段,需要同时请求与增强层片段的时段对齐的一个或多个基本层片段,从而确保增强层片段和其依赖的基本层片段同时存在,并将两部分码流组合成符合svc解码要求的码流传送给客户端解码。

由于svc码流中基本层码流和增强层码流的依赖关系与lbvc码流中知识层码流和序列层码流的依赖关系有区别,不能简单按照dash标准描述svc码流的方法来描述lbvc码流,否则就不能发挥lbvc减少存储空间和节省传输带宽的优势。具体原因如下:

1)svc码流和lbvc码流的依赖关系的区别在于:

svc码流包含一个独立的基本层码流和至少一个增强层码流。假设只有一个增强层码流,增强层码流中一幅图像在使用层间预测编码时只能依赖基本层码流中同一时刻的图像。

lbvc码流包含至少一个知识层码流(其中至少一个知识层码流是独立的,一种可行的实施例为所有知识层码流都是独立的)和至少一个序列层码流。假设只有一个知识层码流和一个序列层码流,序列层码流中一幅图像在编码时可依赖知识层码流中至少一幅知识库图像,即序列层码流中的一幅图像在编码时若依赖知识库图像,则可至少以知识层码流中的一幅知识库图像为参考。同时,lbvc码流的知识层码流中一幅知识库图像被序列层码流中至少两幅图像依赖,且这至少两幅图像对应的序列层片段之间可能还存在其它序列层片段,即这些依赖于知识库图像的序列层片段可能是时间上不连续的。需要说明的是,在lbvc码流中,序列层码流也可以不依赖知识层码流,若序列层码流依赖知识层码流,则可按照如下实现方式执行。对于序列层码流不依赖知识层码流的场景,本发明实施例不做限制。

2)在系统层传输中,码流被切分封装为片段,上述svc码流和lbvc码流的依赖关系的区别导致svc码流切分封装的片段和lbvc码流切分封装的片段的依赖关系也存在区别:

在svc码流中,增强层码流被切分封装为增强层片段,基本层码流被切分封装为基本层片段。同时,增强层片段只能依赖与其时段相同的基本层片段,即由增强层码流切分得到的任一时段的增强层片段只能依赖由基础层码流切分得到的该时段的基础层片段。

在lbvc码流中,序列层码流被切分封装为序列层片段,知识层码流被切分封装为知识层片段。同时,至少一个序列层片段依赖至少一个知识层片段(即,在lbvc码流中包含依赖知识层片段的序列层片段,也包含不依赖知识层片段的序列层片段。若lbvc码流中存储依赖知识层片段的序列层片段,则可按照本发明实施例提供的实现方式执行,在此不做限制),且至少一个知识层片段被至少两个序列层片段依赖,这至少两个序列层片段之间可能还存在其它的序列层片段,即这至少两个序列层片段可能为不连续的两个序列层片段。

因此,在传输lbvc码流时,存在一个知识层片段被至少两个不连续的序列层片段依赖的情况。在理想情况下上述知识层片段在客户端被使用多次而只下载一次,从而节省码率。但是,如果按照svc-dash的系统层传输方案(即按照dash标准传输svc码流的方案)传输lbvc码流,由于现有的dash标准中,mpd只能按照时序逐个描述每个片段的信息,为了正确解码序列层码流,使得这个知识层片段分别与多个参考它的序列层片段按照被操作时段(以播放时段为例进行说明)对齐的规则形成依赖关系,mpd需要为上述不连续的序列层片段重复描述同一个知识层片段的信息。mpd为上述不连续的序列层片段重复描述同一个知识层片段的信息时,客户端在分别请求上述序列层片段的同时会重复请求同一个知识层片段,造成对应的知识层码流数据被多次下载,从而严重增加传输比特开销。

举例来说,假设某个知识层片段k被两个播放时段分别为t1和t2的序列层片段s1和s2所依赖,那么,dash标准在描述序列层码流和知识层码流的信息时,会为序列层片段s1和s2分别描述其依赖的知识层片段k,且该知识层片段分别拥有播放时段t1和t2。客户端在t1时段请求并获取了序列层片段s1和知识层片段k,并将其传送给播放器解码;客户端在t2时段请求并获取了序列层片段s2,同时再次请求并获取了知识层片段k,导致知识层片段k被重复下载两次,浪费了传输带宽。因此,尽管采用dash标准可以正常传输基于知识库的视频编码的码流,但是由于知识层片段会被重复下载,浪费了传输带宽,并没有充分利用基于知识库的视频编码的编码效率。

上述情况仅阐述了一个序列层片段只依赖一个知识层片段的问题,然而,lbvc码流允许一个序列层片段同时依赖多个知识层片段,而dash标准在一个描述层中描述片段时,要求片段的播放时段不能相互覆盖,这样采用svc-dash描述lbvc码流会带来新的问题。

举例来说,lbvc编码时序列层图像可以依赖多个知识库图像,即一个序列层片段可依赖多个知识层片段。假设序列层片段s1依赖知识库图像p1、p2、p5,序列层片段s2依赖知识库图像p1、p3,序列层片段s3依赖知识库图像p2、p4、p5。由于dash标准在将码流切分片段时,需要保证片段的时序,知识库图像对应的片段会具有相同的播放时间。具体地,如果上例中把编码知识库图像p1到p5这五幅图像生成的码流按照每一帧的数据为一个片段切分封装为k1到k5五个片段,由于k1、k2、k5被s1依赖,它们的播放时段一致。dash标准的mpd中不能在一个描述层中按照时序描述k1、k2、k5,而只能在三个描述层中分别描述k1、k2、k5。如果,mpd只采用一个描述层,那么dash标准只能将知识库图像p1、p2、p3、p4、p5编码的码流分别拼接封装为三个知识层片段k1(包含知识库图像p1、p2、p5的码流)、k2(包含知识库图像p1、p3的码流)和k3(包含知识库图像p2、p4、p5的码流)。但是,这样就导致同一个知识库图像的码流需要被重复保存在多个不同的知识层片段中,浪费了存储空间。

进一步的,在客户端对mpd的请求机制中,现有的符合dash标准的客户端(下面简称dash客户端)根据mpd生成片段列表,记录片段的网络存储地址和其相应的播放时段,然后根据用户点播的播放时刻选择播放时段覆盖该播放时刻的片段(即播放时段包含了该播放时段的片段),向服务端发送该片段的请求。对于svc-dash的系统层传输,客户端同时请求基本层片段和增强层片段,以确保svc码流可以正常解码。然而,现有的dash客户端只能简单地缓存一个播放时段的片段(包括基本层片段和增强层片段),并在该播放时段解码播放该片段,超出该播放时段后,该片段被清除或不再被使用。对于lbvc码流,由于知识层片段被多个不连续的播放时段的序列层片段所依赖,如果使用现有的dash客户端向服务器请求lbvc码流,dash客户端会在每个播放时段分别请求不同的序列层片段和其依赖的同一个知识层片段,导致一个知识层片段被多次重复下载,浪费了传输带宽。

举例来说,假设知识层片段k被多个不连续的播放时段的序列层片段s1、s3、s6所依赖,dash客户端在第一个播放时段请求序列层片段s1和知识层片段k。播放器在该播放时段正确解码序列层片段s1之后,dash客户端不再管理知识层片段k,或者直接清除缓存中的知识层片段k。在第三个播放时段,dash客户端请求序列层片段s3,并再次请求知识层片段k。同样的,播放器在该播放时段正确解码序列层片段s3之后,dash客户端不再管理知识层片段k,或者直接清除缓存中的知识层片段k。在第六个播放时段,dash客户端同样请求知识层片段k。理想情况下,知识层片段k应该被客户端使用三次,并仅下载一次,但是现有的dash客户端的请求机制导致同一个知识层片段k被重复请求并下载了三次,浪费了传输带宽。

综上可知,简单地采用现有的svc-dash的方法描述知识层码流和序列层码流之间的依赖关系并传输数据,并不能充分发挥lbvc的优势,会造成同一段知识层码流被多次传输和存储,进而浪费了存储空间,降低了数据传输效率。为了解决上述技术缺陷使得lbvc码流中的知识层片段和序列层片段的请求和下载等处理方式更接近于上述理想情况,本发明实施例提供了视频数据的处理方法及装置,以根据现有的系统层传输方案的dash标准中的视频数据的处理方法进行了改进。下面将结合图7至图23对本发明实施例提供的视频数据的处理方法及装置进行具体描述。

参见图7,是本发明实施例提供的视频数据的处理系统的示意图。本发明实施例提供的处理系统包括:服务器和客户端。其中,服务器准备视频数据的相关媒体内容,具体的,服务器可通过其包含的媒体内容生成单元生成媒体内容,再通过媒体内容描述单元生成媒体内容的mpd,进而可通过内容存储单元将媒体内容和mpd存储在指定存储空间。服务器还可通过http响应服务单元响应客户端的请求,将媒体内容和mpd传输给客户端。客户端可向服务器请求并获取视频数据的相关媒体内容,并对接收到的媒体内容进行处理。具体的,客户端可通过其包含的http请求客户单元向服务器请求媒体内容和mpd,并可通过媒体表达描述解析单元对服务器传送的mpd进行解析确定需要请求的序列层片段和知识层片段等数据。进一步的,客户端可通过媒体请求控制单元触发http请求客户单元向服务器请求序列层片段等相关数据,或者通过媒体请求控制单元触发知识库存储管理单元从知识库中获取知识层片段等数据,进而可将获取的序列层片段及其依赖的知识层片段传输至媒体播放单元进行解码、播放等操作。

上述服务器和客户端组成的处理系统可实现完整的媒体内容的生成、存储、传输和解码等操作。上述服务器和客户端可通过其内置的各个模块执行本发明实施例中描述的各种实现方式,并且上述服务器和客户端执行的操作中任一部分均可单独成为上述处理系统在不同的工作状态下的实施例。

参见图8,是本发明实施例提供的视频数据的处理方法的流程示意图。本发明实施例提供的方法,包括步骤:

s101,服务器获取码流中的所有序列层片段中每个序列层片段的片段信息。

具体实现中,上述片段信息用于描述码流中的序列层片段与知识层片段的依赖关系。服务器可采用lbvc方法编码视频内容,产生独立的或者相互依赖的视频内容对应的序列层码流和知识层码流,进而可将序列层码流切分为序列层片段,将知识层码流切分为知识层片段。具体的,服务器可从视频内容中分析提取得到知识库图像,如图14。图14为采用lbvc方法从视频序列中提取知识库图像的示意图。其中,至少一幅序列图像(sp)依赖一幅知识库图像(lb),例如,序列图像sp1依赖知识库图像lb1、lb2、lb3和lb5等。服务器可将序列图像和知识库图像分别编码得到序列层码流和知识层码流。进一步的,可将码流切分为片段,其中,至少一个序列层片段依赖至少一个知识层片段,一个知识层片段包含至少一个知识库图像。在一种可能的实现方式中,如图15,图15为知识库图像切分为知识层片段的一示意图。其中,每个知识库图像lb被划分为一个知识层片段k,每个序列层图像(sp)被划分为一个序列层片段(s)。序列层片段s依赖知识层片段k,例如,序列层片段s1依赖知识层片段k1、k3和k5。每个序列层片段拥有播放时段,每个知识层片段拥有被依赖时段。在另一种可能的实现方式中,如图16,图16为知识库图像切分为知识层片段的另一示意图。其中,被依赖时段相同的知识库图像可以合并在一个知识层片段中,例如,序列层片段s1依赖知识层片段k1和k2,其中,lb1和lb2的被依赖时段相同,进而切分为一个知识层片段k1,lb3和lb5的被依赖时段相同进而可切分为同一个知识层片段k2。其中,上述服务器将序列层码流和知识层码流进行切分的具体实现方式可参见svc-dash标准中更多描述,在此不再赘述。

在一些可行的实施方式中,码流中的序列层片段和知识层片段之间的依赖关系可通过dep_id等标识来体现。具体的,上述dep_id等标识可携带在每个序列层片段的片段信息中,以指示携带该标识的序列层片段依赖哪个知识层片段。例如,假设码流中包含知识层片段1(记为rep1)和知识层片段2(记为rep2),序列层片段1的片段信息中携带dep_id=rep1,则可确定序列层片段依赖于知识层片段1。

s102,根据所述每个序列层片段的片段信息确定出n个序列层片段和第一目标知识层片段。

在一些可行的实施方式中,服务器可根据每个序列层片段的片段信息中携带的知识层片段的标识(例如dep_id=rep1)确定出每个序列层片段依赖的知识层片段,进一步的,可确定出目标知识层片段。其中,上述目标知识层片段为被至少两个序列层片段依赖的知识层片段。需要说明的是,在lbvc码流中,被至少两个不连续的序列层片段依赖的知识层片段可为一个或者多个,本发明实施例将以其中一个作为目标知识层片段为例进行说明。具体的,服务器可将从上述被至少两个序列层片段依赖的一个或者多个序列层片段中选择一个知识层片段作为目标知识层片段,其他知识层片段对应的后续操作可参照该目标知识层片段对应的操作,下面不再赘述,服务器确定了目标知识层片段之后,则可将依赖该目标知识层片段的序列层片段确定为目标知识层片段的n个序列层片段。其中,n为大于或者等于2的整数。

在一些可行的实施方式中,若上述n个序列层片段只依赖一个知识层片段,则可将该知识层片段确定为第一目标知识层片段,若上述n各序列层片段中的一个或者多个片段还依赖另一个知识层片段,则可将上述另一个知识层片段标记为第二目标知识层片段。具体可根据时间应用场景确定,在此不做限制。

在lbvc码流中,由于某个知识层片段(如上述目标知识层片段)被至少两个不连续的序列层片段依赖时,现有dash标准无法告诉客户端在上述目标知识层片段的播放时段之外,上述目标知识层片段是否还会被使用,因此可能在该播放时段之外就不再管理上述目标知识层片段或者过早删除上述目标知识层片段,进而在该播放时段之外需要重复请求该目标知识层片段。

在一些可行的实施方式中,为了让客户端可以识别目标知识层片段并存储目标知识层片段以备下次使用,使得一个知识层片段被多次使用而不被错误地删除或者丢弃,本发明实施例引入了区别于知识层片段的播放时段的知识层片段的另一种时段信息——扩展时段(英文:extendedduration,ed),并可通过lbvc码流对应的mpd来描述知识层片段的扩展时段信息。上述扩展时段信息标识着目标知识层片段不仅在它对应的播放时段会被使用,而且在其它时段也可能会被使用(例如用于提供编解码参考、分析或者播放等),因此需要被额外存储保留一定的时间。当客户端从mpd中识别出一个片段拥有扩展时段信息时,客户端则可以得知该片段是一个目标知识层片段。或者,客户端从mpd中识别出一个描述层的描述层属性信息中携带着扩展时段信息时,则可将该描述层描述的片段确定为目标知识层片段。进一步的,客户端可将上述目标知识层片段存储下来,以备其他时段使用,从而避免了同一知识层片段的多次传输,避免传输带宽的浪费。

s103,获取所述第一目标知识层片段的片段信息。

s104,根据所述第一目标知识层片段的片段信息和所述n个序列层片段的片段信息在所述码流的mpd中添加所述第一目标知识层片段的扩展时段信息。

具体实现中,服务器生成lbvc码流的mpd时,可首先获取lbvc码流的知识层片段的片段信息和序列层片段的片段信息。其中,上述lbvc码流中可包括一个或者多个知识层片段,上述lbvc码流中可包括两个或者两个以上的序列层片段。其中,在lbvc码流中的序列层片段可参考至少一个知识层片段进行编码,即lbvc码流中的参考知识层片段进行编码的序列层片段依赖至少一个知识层片段。需要说明的是,在具体应用中,lbvc码流中的序列层片段也可为独立的片段,即,lbvc码流中的序列层片段也可不依赖知识层片段。本发明实施例将对lbvc码流中的序列层片段依赖知识层片段的场景中视频数据的处理方法进行描述,对应lbvc码流中的序列层片段不依赖知识层片段的场景不做限制。

如图9,图9是lbvc产生的视频内容的片段示意图。其中,lbvc产生的片段包含序列层片段s1~s8和知识层片段k1~k4。服务器可获取得到上述s1~s8的片段信息和k1~k4的片段信息。其中,s1~s8为时间上连续的8个序列才呢过片段,s1和s3为时间上不连续的序列层片段(间隔着s2),以此类推可确定各个序列层片段之间的连续和不连续关系。其中,s1依赖k1和k2,s2依赖k1和k3,s3依赖k1和k4,s4依赖k2和k4,s5依赖k3,s6依赖k1和k3,s7依赖k3,s8依赖k3。k1被s1、s2、s3和s6依赖,其中,s1、s2和s3为连续片段,s6与s1、s2、s3不连续。k2被s1和s4依赖,其中,s1和s4为不连续片段。k3被s2、s5、s6和s7依赖,其中,s5、s6和s7为连续片段,s2为s5、s6和s7的不连续片段。k4被s3和s4依赖。如图9可知,s1~s8中每个序列层片段依赖至少一个知识层片段,每个序列层片段拥有一个播放时段(英文:presentationduration,pd),s1~s8对应pd1~pd8。k1~k4中至少一个知识层片段被至少两个不连续的序列层片段依赖,例如,k1、k2或者k3,上述k1、k2和k3均可确定为目标知识层片段。其中,s1、s2、s3和s6为依赖k2的n个序列层片段,此时n为4。n个序列层片段包含两个分组的序列层片段,其中包括第一序列层片段组和第二序列层片段组。第一序列层片段组包含3个连续的序列层片段,分别为s1、s2和s3。第二序列层片段组包含1个序列层片段,即s6。第一序列层片段组对应第一时段,第一时段为s1、s2和s3的播放时段的交集,第二序列层片段组对应第二时段,第二时段为s6的播放时段。

如图9所示,每个知识层片段拥有一个被依赖时段(即dd),被至少两个不连续的序列层片段依赖的目标知识层片段的dd由至少两个ed组成,其中,每个ed覆盖一个或者多个序列层片段的pd。例如,k1被s1、s2、s3和s6依赖,k1的被依赖时段dd1由dd1-1和dd1-2组成,即dd1为dd1-1和dd1-2集合。其中,dd1-1覆盖s1、s1和sd3的pd(即dd1-1覆盖pd1、pd2和pd3),dd1-2覆盖s6的pd(即pd6)。其中,上述ed覆盖一个或者多个序列层片段的pd,表示一个或者多个序列层片段的pd都落在该ed上,即,上述ed包含了一个或者多个序列层片段的pd。例如,假设s1的pd为00:00至00:59,s2的pd为01:00至01:59,s3的pd为02:00至02:59,则dd1-1至少为00:00至02:59。具体可根据实际应用场景确定,在此不做限制。

在一些可行的实施方式中,服务器获取了lbvc码流的知识层片段和序列层片段之后,可获取每个知识层片段的片段信息和每个序列层片段的片段信息。其中,上述知识层的片段信息还可包括知识层片段的网络存储地址、播放时段和知识层片段的被依赖时段等信息,具体可根据实际应用需求确定,在此不做限制。上述序列层的片段信息包括序列层片段的网络存储地址、播放时段和上述序列层片段所依赖的知识层片段的标识等信息,具体可根据实际应用场景确定,在此不做限制。

进一步的,在一些可行的实施方式中,服务器获取了各个序列层片段的被操作时段,以及每个知识层片段的被依赖时段之后,则可确定每个知识层片段被序列层片段依赖的被依赖状态,进而可确定出目标知识层片段。其中,目标知识层片段的确定可参见上述描述,在此不再赘述。服务器确定了目标知识层片段及其对应的n个序列层片段之后,可在码流的mpd中添加目标知识层片段的扩展时段信息。其中,服务器可确定目标知识层片段的扩展时段的个数(即目标知识层片段被多少个序列层片段组依赖),以及每个扩展时段的长度(即每个序列层片段组包含的各个序列层片段的播放时段叠加得到的时间长度)等,进而可为目标知识层片段添加扩展时段信息。客户端解析码流的mpd之后,可根据目标知识层片段的扩展时段信息确定目标知识层片段的被依赖时段。具体实现中,目标知识层片段的被依赖时段包含至少一个扩展时段。需要说明的是,本发明实施例提供的码流数据的处理方法及装置适用于目标知识层片段的被依赖时段为一个扩展时段的场景,在此不做限制。下面将以目标知识层片段的被依赖时段包括至少两个扩展时段为例进行说明,具体描述中可以两个扩展时段为例进行描述。

在一些可行的实施方式中,码流的mpd中携带目标知识层片段的扩展时段信息。其中,上述目标知识层片段的扩展时段信息具体可第一扩展标识或者第二扩展标识。具体实现中,码流的mpd至少包含两个描述层。上述mpd包含的描述层中至少一个描述层的编解码不参考其他描述层(下面称为独立的描述层),上述独立的描述层用于描述知识层片段。上述mpd包含的描述层中至少一个描述层的编解码参考其他描述层,用于描述依赖知识层片段的序列层片段。具体实现中,若依赖目标知识层片段的n个序列层片段中每个序列层片段都只依赖该目标知识层片段(设为第一目标知识层片段,例如上述k1),则可通过一个独立的描述层(设为第一描述层)描述第一目标知识层片段。一个描述层(设定第二描述层)描述n个序列层片段,其中,第二描述层的编解码参考第一描述层。若依赖第一目标知识层片段的n个序列层片段中的n1个序列层片段(例如上述s1)还依赖另一个目标知识层片段(设为第二目标知识层片段,例如k2),则需要另外一个独立的描述层(设为第三描述层)来描述第二目标知识层片段。

参见图10,图10是本发明实施例提供了mpd示意图。服务器在两个独立的描述层中描述知识层片段的信息,在一个依赖上述两个描述层的描述层中描述序列层片段的信息。具体的,服务器可根据知识层片段的片段信息和序列层片段的片段信息生成包含3个描述层的mpd。其中,描述层1(如第二描述层)用于描述序列层片段信息,描述层2(如第一描述层)和描述层3(如第三描述层)为2个独立的描述层,用于描述知识层片段信息,即描述层2和描述层3中描述的片段可均为目标知识层片段(也可根据时间用于场景确定其中包含的目标知识层片段,在此不做限制)。在描述层1中描述序列层片段的片段信息时每个序列层片段对应一个pd。在描述层2和描述层3中描述知识层片段的片段信息时每个目标知识层片段的dd可通过每个目标知识层片段的一个或者多个ed描述。

另外,由于lbvc码流允许一个序列层片段同时依赖多个知识层片段(设为第一目标知识层片段和第二目标知识层片段),即第一目标知识层片段和第二目标知识层片段的被依赖时段可以相互覆盖。而现有的svc-dash标准在一个描述层中描述片段时,要求片段的时段不能相互覆盖,因此不能采用svc-dash标准中的描述方式仅仅使用一个描述层描述知识层片段。如图10,为了能够正确地描述被依赖时段相互覆盖的目标知识层片段的信息,本发明实施例采用多个独立的描述层来描述一个知识层码流对应的知识层片段的信息,将每个目标知识层片段的不连续的被依赖时段拆分为多个扩展时段,在多个描述层中根据扩展时段描述目标知识层片段,例如k1的dd可通过描述层2中的ed1和描述层3中的ed7描述。同时,确保每个描述层中的目标知识层片段的扩展时段相互不覆盖。例如,服务器可在一个描述层(如描述层2)中按照时序描述k1、k2和k3,还可在另一个描述层(如描述层3)中按照时序描述k2、k3、k4和k1,每个描述层描述的目标知识层片段的扩展时段之间相互不覆盖。这样,服务器可以在mpd中正确地描述目标知识层片段的被依赖时段,而不会在一个序列层片段同时依赖多个目标知识层片段时,重复存储同一个目标知识层片段,从而避免了存储空间的浪费。

在一些可行的实施方式中,上述扩展时段信息具体可为用于标记目标知识层片段的扩展标识(设为第一扩展标识)或者应用标记描述层的扩展标记(设为第二扩展标识)。上述第一扩展标识或者第二扩展标识可用于确定扩展时段的起始时刻和扩展时段的长度等详细信息。上述扩展时段用于指示客户端拥有扩展时段的目标知识层片段在当前处理的依赖该目标知识层片段的序列层片段的播放时段被使用之外,还在其他依赖该目标知识层片段的序列层片段的播放时段内被使用。

在一些可行的实施方式中,上述用于标记目标知识层片段的第一扩展标识可添加目标知识层片段的片段信息中,作为知识层片段的属性。具体的,可在mpd的第一描述层(和第三描述层)包含的第一片段描述中添加第一扩展标识,其中,上述第一片段描述为第一时段对应的目标知识层片段的片段信息的描述。还可在mpd的第一描述层(和第三描述层)包含的第二片段描述中添加第一扩展标识,其中,上述第二片段描述为第二时段对应的目标知识层片段的片段信息的描述。其中,携带第一扩展标识的目标知识层片段拥有一个或者多个扩展时段,上述第一时段和第二时段分别对应一个扩展时段,具体可参见上述描述,在此不再赘述。客户端解析上述目标知识层片段的片段信息时,若获取得到上述第一扩展标识则可确定该片段为目标知识层片段。

在一些可行的实现方式中,上述用于标记描述层的第二扩展标识可添加在描述层的描述层属性信息中,作为描述层的属性。具体的,可在第一描述层(和第三描述层)的描述层属性信息中添加第一时段对应的第二扩展标识,和第二时段对应的第二扩展标识。其中,携带上述第二扩展标识的描述层中描述的一个或者多个或者全部片段为目标知识层片段。其中,携带第二扩展标识的描述层描述的每个目标知识层片段拥有一个或者多个扩展时段,其中,上述第一时段和第二时段分别对应一个扩展时段,具体可参见上述描述,在此不再赘述。客户端解析码流的mpd时,可获取mpd中描述层的描述层属性信息,若描述层的描述层属性信息中包含上述第二扩展标识,则可确定该描述层描述的片段中包含目标知识层片段。客户端确定描述层描述的片段中包含目标知识层片段之后,则可根据具体的片段信息确定目标知识层片段,或者将描述层描述的片段均确定为目标知识层片段,具体可根据实际应用场景确定,在此不再赘述。

具体实现中,服务器可根据实际应用场景需求采用上述任一种实现方式添加知识层片段的扩展时段信息,在此不做限制。

在一些可行的实施方式中,服务器在mpd中使用扩展标识标记知识层片段的扩展时段信息的实现方式可包括以下任一种:

1)方式一:上述第一扩展标识和第二扩展标识均可为第一字符串(例如extduration),下面在该方式一中可将第一扩展标识和第二扩展标识统称为扩展标识。服务器可在现有的dash标准的语法元素的基础上,添加第一字符串作为扩展标识,用于描述目标知识层片段(包括携带扩展标识的目标知识层片段,或者携带扩展标识的描述层描述的目标知识层片段)的固定时间长度的扩展时段。具体实现中,若一个描述层中描述的所有知识层片段(包括携带扩展标识的知识层片段)的扩展时段连续并且时间长度均相同,即,描述层中描述的知识层片段的扩展时段的长度固定,则可使用语法元素extduration来描述知识层片段的扩展时段。如图11,图11为在dash标准的语法元素的基础上添加扩展标识的一示意图。其中,extduration描述固定时间长度的扩展时段,extsegmenttimeline描述可变时间长度的扩展时段,具体实现中,可根据实际应用场景选择使用其中一种语法元素。图11中,上面部分为可扩展标记语言(extensiblemark-uplanguage,xml)语法表,下面部分为应用实例。

服务器使用mpd的描述层描述lbvc码流时,使用语法元素extduration描述固定时间长度的扩展时段。具体可根据语法元素extduration和目标知识层片段的片段信息获取目标知识层片段的扩展时段,包括扩展时段的起始时刻和扩展时段的长度等信息。具体的,目标知识层片段的扩展时段的长度值与extduration对应的值相同,例如图11中的extduration=10s可表示目标知识层片段的扩展时段的长度为10s。此外,还可使用语法元素duration描述固定时间长度的播放时段,在此不做限制。服务器使用语法元素extduration描述固定时间长度的扩展时段时,该扩展时段的起始时刻可由上述目标知识层片段之前的所有知识层片段的时间长度累加计算得到,具体的上述目标知识层片段之前的知识层片段的数量可通过目标知识层片段的片段信息确定。

2)方式二:上述第一扩展标识和第二扩展标识均可为第二字符串(例如extsegmenttimeline),下面在该方式二中可将第一扩展标识和第二扩展标识统称为扩展标识。服务器可在现有的dash标准的语法元素的基础上,添加第二字符串作为扩展标识,用于描述目标知识层片段(包括携带扩展标识的目标知识层片段,或者携带扩展标识的描述层描述的目标知识层片段)的可变时间长度的扩展时段。具体实现中,若一个描述层中描述的所有知识层片段(包括携带扩展标识的知识层片段)的扩展时段不连续,或者不同目标知识层片段的扩展时段的时间长度不相同,则可使用语法元素extsegmenttimeline来描述目标知识层片段的扩展时段。如图11,服务器使用mpd的描述层描述lbvc码流时,使用语法元素extsegmenttimeline描述可变时间长度的扩展时段。具体可根据语法元素extduration获取目标知识层片段的扩展时段,包括扩展时段的起始时刻和扩展时段的长度等信息。具体的,语法元素extsegmenttimeline指示mpd中存储用于描述扩展时段的起始时刻和扩展时段的长度的信息。具体实现中,扩展时段的起始时刻和长度的信息存在mpd中的位置可由服务器采用的编解码标准确定,具体可根据实际应用场景确定,在此不做限制。此外,服务器还可使用语法元素segmenttimeline描述可变时间长度的播放时段,在此不做限制。

3)方式三:服务器可在现有的dash标准的语法元素的基础上,添加语法元素extended作为用于标记描述层的扩展标识(即第二扩展标识)。其中,上述扩展标识用于标识描述层中描述的片段中至少一个片段为目标知识层片段。如图12,图12为在dash标准的语法元素的基础上添加扩展标识的另一示意图。其中,上面部分为xml语法表,下面部分为应用实例。具体实现中,上述extended为真标记着携带扩展标识的描述层描述至少一个目标知识层片段的扩展时段;extended不为真标记着携带扩展标识的描述层不描述知识层片段的扩展时段。即,服务器可使用语法元素extended=true标识该描述层描述至少一个目标知识层片段的信息,使用语法元素extended=false或缺省该语法元素标识该描述层只描述序列层片段的信息而不描述知识层片段的信息。携带语法元素extended=true的描述层描述的目标知识层片段的扩展时段通过语法语法元素extended=true和目标知识层片段的片段信息获取。具体的,目标知识层片段的扩展时段与语法元素extended=true的描述层中的片段的播放时段相同。

4)方式四:服务器可在现有的dash标准的语法元素的基础上,添加语法元素extsegment作为用于标记描述层的扩展标识(即第二扩展标识)。其中,上述扩展标识用于标识描述层中描述的片段中至少一个片段为目标知识层片段。如图13,图13为在dash标准的语法元素的基础上添加扩展标识的另一示意图。其中,上图为xml语法表,下图为应用实例。具体实现中,上述extsegment为真标记着携带扩展标识的描述层中描述至少一个目标知识层片段的扩展时段;上述extsegment不为真标记着携带扩展标识的描述层不描述知识层片段的扩展时段。即,服务器使用语法元素extsegment=true标识描述层描述的一个片段(或一组片段)为目标知识层片段,使用语法元素extsegment=false或缺省该语法元素标识描述层描述的一个片段(或一组片段)为序列层片段。携带语法元素extsegment=true的描述层描述的目标知识层片段的扩展时段通过语法语法元素extsegment=true和目标知识层片段的片段信息获取。具体的,目标知识层片段的扩展时段与语法元素extsegment=true的片段的播放时段相同。

进一步的,在一些可行的实施方式中,服务器生成lbvc码流的mpd时,可采用上述四种实现方式中的任一种实现方式添加扩展标识,还可根据扩展时段的特点确定用于描述知识层片段的独立的描述层的数量。

具体实现中,目标知识层片段的被依赖时段由至少一个扩展时段组成,每个扩展时段是一个连续的时段,被依赖时段包含扩展时段的情况包括以下两种:

情况一:目标知识层片段的被依赖时段只包含一个扩展时段,该扩展时段对应于序列层中的至少两个播放时段,如上述图9中知识层片段k4。此时,可以在mpd中用一个扩展时段描述知识层片段k4的被依赖时段。

情况二:若目标知识层片段的被依赖时段包含至少两个扩展时段,如上述图9中知识层片段k1、k2和k3。此时,可以将目标知识层片段的被依赖时段拆分为多个扩展时段,在mpd中用多个扩展时段分别描述上述目标知识层片段的多个连续的时段,如上述图10中知识层片段k1的被依赖时段dd1(包含dd1-1和dd1-2)被上述图10中扩展时段ed1和扩展时段ed7所描述。

进一步的,在一些可行的实施方式中,若目标知识层片段的被依赖时段包含至少两个扩展时段,如上述图9中知识层片段k3,k3的被依赖时段dd3包含扩展时段ed3和扩展时段ed5。其中,ed5对应的序列层片段的播放时段为pd2,ed3对应的序列层片段的播放时段为pd5、pd6、pd7和pd8,即dd3=pd2+pd5+pd6+pd7+pd8。服务器可将k3的被依赖时段修改为dd3=pd2+pd3+pd4+pd5+pd6+pd7+pd8,进而可使得在mpd中描述k3时可描述为一个包含pd2到pd8的连续的片段,简化了mpd的描述,降低dash标准的扩展的实现难度。

在一些可行的实施方式中,若至少两个目标知识层片段的扩展时段之间相互覆盖(即一个序列层片段同时依赖多个目标知识层片段),如图9中知识层片段k1与k2、k3、k4的扩展时段,以及k2与k4的扩展时段,则在一个描述层中尽可能多地描述扩展时段相互不覆盖的知识层片段的信息,使得最终描述层的数目尽可能地少。

在一种可能的实现方式中,若任意目标知识层片段的扩展时段之间没有相互覆盖,即一个序列层片段只依赖一个目标知识层片段,如知识层片段只存在图9中知识层片段k3和k4时,则仅使用一个独立的描述层描述目标知识层片段的信息。

在另一种可能的实现方式中,可以使用m个描述层描述知识层片段的信息,m为每个序列层片段依赖的知识层片段数目的最大值。对序列层片段i,将其依赖的mi个知识层片段的扩展时段设置为该序列层片段的播放时段,并将mi个知识层片段分布在m个描述层中的任意mi个描述层,例如第1到第mi个描述层,或者第2到第mi+1个描述层(如果mi+1<=m),或者第1、第3到第mi+1个描述层(如果mi+1<=m),具体可根据实际应用场景确定,在此不做限制。

s105,将所述码流的mpd发送给客户端。

在一些可行的实施方式中,服务器生成了lbvc码流的mpd之后,则可按照指定的网络地址存储上述知识层片段(包括目标知识层片段)和序列层片段,以及上述mpd。进一步的,服务器可等待接收客户端发送的请求。当服务器接收到客户端发送的请求时,可将上述码流的mpd发送给客户端。服务器还可在接收到客户端发送的http请求时,根据请求的网络存储地址将相应的序列层片段或者知识层片段通过http发送给客户端。具体可参见dash标准中提供的实现方式,在此不再赘述。

s106,客户端解析服务器发送的码流的mpd,确定所述mpd中携带的扩展时段信息。

具体实现中,由于本发明实施例的服务器扩展了dash标准的语法元素,在码流的mpd中新增了扩展时段信息,现有的符合dash标准的客户端(下面简称客户端)无法解析并获取该扩展时段。因此,本发明实施例在客户端新增扩展时段的解析机制,用以识别上述扩展的语法元素,使得客户端可以解析并获取目标知识层片段的扩展时段,从而可以根据播放时段和扩展时段来区分序列层片段和目标知识层片段。

本发明实施例在客户端增加知识层片段请求分析机制,根据知识层片段的网络存储地址信息是否相同来判断mpd中描述的多个知识层片段是否是目标知识层片段,从而可以在存储空间(具体可为用于存储知识库的存储装置)中检查目标知识层片段的存储状态,以判断是否要向服务端请求并下载目标知识层片段,以避免重复下载同一个片段,节省传输带宽。进一步的,本发明实施例在客户端增加知识库存储管理机制,用以管理目标知识层片段的存储,确保目标知识层片段在其被依赖时段内存储在客户端。同时,构建知识层片段的存储列表,记录目标知识层片段的存储状态,以便于客户端检查目标知识层片段的存储状态。

在一些可行的实施方式中,由于lbvc码流的序列层片段的特性和svc-dash中的增强层片段的特性类似,因此客户端可按照现有dash标准的方式向服务器请求序列层片段,在此不再赘述。对于目标知识层片段,客户端可在获取到用户选择的播放媒体的种类时,首先向服务器请求lbvc码流的mpd,解析上述服务器发送的mpd。客户端可通过解析服务器发送的mpd获取mpd中包含的扩展时段信息,其中,上述扩展时段信息可包括用于标记目标知识层片段的第一扩展标识,或者用于标记描述层的第二扩展标识。上述携带第一扩展标识的目标知识层片段包含在一个或者多个描述层中,上述携带第二扩展标识的描述层描述一个或者多个目标知识层片段。

s107,根据所述扩展时段信息确定出目标知识层片段,并确定出所述目标知识层片段的被依赖时段。

在一些可行的实施方式中,客户端获取得到上述第一扩展标识或者第二扩展标识之后,则可将携带上述第一扩展标识的片段确定为目标知识层片段,或者将携带上述扩展标识的描述层描述的一个或者多个片段确定为目标知识层片段,并获取上述目标知识层片段的扩展时段的信息。其中,上述扩展时段的信息包括:扩展时段的起始时刻和扩展时段的长度等,具体可参见上述服务器描述的实现方式,在此不再赘述。

在一些可行的实施方式中,客户端根据上述服务器发送的mpd确定了目标知识层片段之后,可进一步确定目标知识层片段拥有的一个或者多个扩展时段。其中,上述目标知识层片段为上述mpd包含的携带第一扩展标识的片段或者携带第二扩展标识的一个或者多个描述层描述的一个或者多个片段。具体实现中,客户端根据服务器发送的mpd从中解析得到扩展标识(包括第一扩展标识或者第二扩展标识)标记的片段的信息,根据扩展标识获取片段的扩展时段的获取方式与上述服务器对扩展标识的描述方式相对应。其中,客户端获取目标知识层片段的扩展时段的信息的获取方式可包括以下四种方式中的任一种:

1)方式一:当服务器采用的扩展标识(包括第一扩展标识或者第二扩展标识)为第一字符串(例如extduration)时,客户端可解析上述服务器发送的mpd,从中识别extduration。进而可将extduration对应的数值确定为目标知识层片段的扩展时段的长度,并可根据上述目标知识层片段之前的所有知识层片段的时间长度的终点时刻确定目标知识层片段的扩展时段的起始时刻。上述根据第一字符串确定扩展时段的起始时刻和长度的具体实现方式可参见上述服务器描述的实现方式中,在此不再赘述。

2)方式二:当服务器采用的扩展标识(包括第一扩展标识或者第二扩展标识)为第二字符串(例如extsegmenttimeline)时,客户端可解析上述服务器发送的mpd,从中识别extsegmenttimeline。进而可根据采用的解码标准从码流中识别、获取目标知识层片段的扩展时段的起始时刻和扩展时段的长度等信息。其中,上述根据第二字符串确定扩展时段的起始时刻和长度的具体实现方式可可参见上述服务器描述的实现方式中,在此不再赘述。

3)方式三:当服务器采用的扩展标识为语法元素extended时,客户端可解析上述服务器发送的mpd,从中识别语法元素extended。当上述extended为真(即extended=true)时,则可计算携带上述扩展标识的片段的播放时段或者携带扩展标识的描述层描述的目标知识层片段的播放时段,将计算得到的播放时段确定为目标知识层片段的扩展时段。

4)方式四:当服务器采用的扩展标识为语法元素extsegment时,客户端可解析上述服务器发送的mpd,从中识别语法元素extsegment。当上述extsegment为真(即extsegment=true)时,则可计算携带上述扩展标识的片段的播放时段或者携带扩展标识的描述层描述的至少一个知识层片段的播放时段,将计算得到的播放时段确定为目标知识层片段的扩展时段。

具体实现中,客户端可根据上述扩展时段信息确定出目标知识层片段,以及目标知识层片段的被依赖时段。其中,上述目标知识层片段及其被依赖时段的确定可参见上述服务器对应的实现方式,在此不再赘述。

s108,从所述码流的mpd获取所述目标知识层片段的网络存储地址,记录所述目标知识层片段的被依赖时段和网络存储地址。

在一些可行的实施方式中,客户端还可根据上述mpd确定上述扩展时段对应的网络存储地址,根据每个扩展时段对应的网络存储地址确定各个扩展时段所属的目标知识层片段。进一步的,客户端可确定目标知识层片段在客户端的存储装置中的存储状态。具体实现中,上述客户端确定每个扩展时段的网络存储地址的实现方式可根据上述服务器在mpd中描述的存储地址确定,在此不再赘述。上述每个知识层片段的存储状态可根据客户端的存储装置中存储的数据确定,在此不再赘述。

在一些可行的实施方式中,客户端可根据每个扩展时段的网络存储地址,确定每个目标知识层片段的被依赖时段。其中,网络存储地址相同的扩展时段可确定为同一个目标知识层片段的扩展时段,进而可将同一个目标知识层片段的扩展时段的集合确定为该目标知识层片段的被依赖时段。

在一些可行的实施方式中,客户端确定了目标知识层片段的被依赖时段以及该被依赖时段包含的扩展时段之后,则可构建一个或多个知识层片段列表,并在上述知识层片段列表中记录每个目标知识层片段的网络存储地址、存储状态以及被依赖时段等信息。其中,上述目标知识层片段的存储状态可通过一个存储状态标记表示。具体的,若mpd使用了多个描述层描述目标知识层片段的信息,则上述所有描述层中的目标知识层片段的信息均要记录在知识层片段列表中。如图17,图17为知识层片段列表的一示意图。客户端可在两个知识层片段列表(包括知识层片段列表-1和知识层片段列表-2)中描述所有目标知识层片段的网络存储地址,扩展时段起始时刻和扩展时段长度(即扩展时段持续时长)。其中,图17中每个列表记录图10中的一个描述层描述的知识层片段的信息,相同的网络存储地址的知识层片段为同一知识层片段。进一步的,如图18,图18为知识层片段列表的另一示意图。客户端也可在一个知识层片段列表中描述所有知识层片段的网络存储地址,扩展时段起始时刻和扩展时段长度(即扩展时段持续时长)。其中,上述知识层片段列表记录着图10中的所有描述层描述的知识层片段的信息,相同的网络存储地址的知识层片段为同一知识层片段。其中,k1、k2和k3均可设定为本发明实施例提供的目标知识层片段,k4为被两个连续的序列层片段依赖的知识层片段。

进一步的,客户端可构建另一个知识层片段列表(可命名为知识层片段存储列表),通过上述知识层片段存储列表记录知识层片段的网络存储地址、存储状态和被依赖时段。其中,上述被依赖时段为具有相同网络存储地址的扩展时段的集合。如图19,图19为知识层片段列表的另一示意图。其中,知识层片段存储列表中每个知识层片段的信息由上述图17中记录的信息确定,并可设定每个知识层片段的初始存储状态均可标记为false。其中,每个知识层片段的存储状态可根据实际应用过程中获取的知识层片段的状态进行实时更改,以更好地确定在某一个时段是否需要再次下载某个知识层片段。

s109,当获取到视频点播请求时,判断所述视频点播请求中携带的点播时刻是否包含在所述目标知识层片段的被依赖时段中,若判断结果为是,执行步骤s110。

在一些可行的实施方式中,客户端可获取用户点播视频时触发的视频操作请求,还可获取视频操作请求中携带的点播时刻,进而可通过查表确定目标知识层片段的被依赖时段是否包含上述点播时刻。具体的,可通过查表确定所有知识层片段的被依赖时段中包括的扩展时段中是否存在覆盖上述点播时刻的扩展时段,若存在,则可将扩展时段覆盖上述点播时刻确定为被依赖时段覆盖上述操作时刻的知识层片段。即,客户端可根据上述点播时刻,从上述知识层片段存储列表中包含的所有知识层片段中查找被依赖时段覆盖上述点播时刻的知识层片段(设为第二知识层片段)。其中,上述被依赖时段覆盖上述播放时刻表示上述被依赖时段中包含的某一个扩展时段的起始时刻在上述播放时刻之前或者为上述点播时刻,并且上述扩展时段的结束时刻在上述点播时刻之后或者为上述点播时刻,具体可根据实际应用场景确定,在此不做限制。需要说明的是,存在点播时刻不依赖任一知识层片段的情况,即该点播时刻对应的序列层片段不依赖知识层片段,此时所有知识层片段的被依赖时段中包括的扩展时段中不存在覆盖上述操作时刻的扩展时段,不需要请求知识层片段。

s110,查看所述目标知识层片段在所述客户端的存储空间中的存储状态,并根据所述存储状态确定所述目标知识层片段的获取方式。

在一些可行的实施方式中,客户端通过查表确定了第二知识层片段之后,还可根据上述知识层片段存储列表中存储的各个知识层片段的存储标记确定各个知识层片段在客户端中的存储状态。进一步的,客户端可根据各个知识层片段的存储状态确定第二知识层片段的获取方式。具体的,若上述知识层片段存储列表中记录的第二知识层片段的存储状态为空(即第二目标知识层片段的存储状态标记为false),客户端则可向服务器发送获取所述第二知识层片段的请求。服务器接收到客户端发送的请求之后,则可将上述第二知识层片段的数据发送给客户端。客户端可接收服务器发送的第二知识层片段,并可将知识层片段存储列表中存储的第二知识层片段的存储标记更改为不为空(更改为true)。若上述知识层片段存储列表中记录的第二知识层片段的存储状态不为空(即第二目标知识层片段的存储状态标记为true),客户端则可直接从其存储空间中获取上述第二知识层片段,无需向服务器发送获取请求,进而避免了同一知识层片段的重复下载,节省传输带宽。

在一些可行的实施方式中,客户端从服务器请求并获取了第二知识层片段之后,可根据存储知识层片段的存储装置的存储空间大小调整存储空间中知识层片段的存储状态。具体的,若客户端中用于存储知识层片段的存储装置的剩余空间大小大于或者等于第二知识层片段的数据大小,则将获取的第二知识层片段的存储状态更改为不为空,并将第二知识层片段存入上述存储装置。若客户端中用于存储知识层片段的存储装置的剩余空间大小小于第二知识层片段的数据大小,则可删除存储装置中存储的一个或者多个其他的知识层片段(即指定目标知识层片段)使存储装置的剩余空间大小大于或者等于第二知识层片段的数据大小,将所述第二知识层片段存入上述存储装置。进一步的,客户端可在上述知识层片段存储列表中将被删除的知识层片段的存储状态对应的存储标记更改为空,将第二知识层片段的存储状态对应的存储标记更改为不为空,以便于客户端在后续操作中更好得确定各个知识层片段的获取方式。

具体实现中,上述指定目标知识层片段的被依赖时段与上述点播时刻的时间距离在大于预设时间阈值。具体的,客户端删除存储空间中的知识层片段时,可根据知识层片段的被依赖时段,选择被依赖时段在当前点播时刻之前的知识层片段,即该知识层片段不会再被使用,将其删除。进一步的,客户端也可根据知识层片段的被依赖时段,选择被依赖时段中下一个扩展时段距离当前点播时刻最远的知识层片段,即该知识层片段距离下次使用需要等待的时间最长,将其删除。

在本发明实施例中,服务器可在码流的mpd中添加扩展时段信息来标记目标知识层片段的扩展时段等信息。客户端可通过解析码流的mpd,获取mpd中包含的扩展时段信息,并确定目标知识层片段的被依赖时段,并存储上述目标知识层片段的被依赖时段和目标知识层片段在客户端中的存储状态的存储状态标记。进一步的,客户端可在接收到用户点播视频的点播请求时,根据点播请求中携带的点播时刻查找包含该点播时刻的扩展时段,进而确定该扩展时段对应的目标知识层片段及其存储状态标记。客户端可根据目标知识层片段的存储状态确定是否向服务器请求目标知识层片段,或者从本地存储空间中获取目标知识层片段,可避免同一个知识层片段的多次加载和存储,节省数据传输带宽,提高码流数据的处理效率。

参见图20,是本发明实施例提供的视频数据的处理装置的一结构示意图。本发明实施例提供的处理装置包括:

获取单元201,用于获取码流中的所有序列层片段中每个序列层片段的片段信息,所述片段信息用于描述所述码流中的序列层片段与知识层片段的依赖关系。

确定单元202,用于根据所述获取单元201获取的所述每个序列层片段的片段信息确定出n个序列层片段和第一目标知识层片段,所述n个序列层片段依赖于所述第一目标知识层片段,所述n个序列层片段中至少包含两个不连续的序列层片段,所述第一目标知识层片段为所述码流中包含的至少一个知识层片段中的一个。

所述获取单元201,还用于获取所述确定单元202确定的所述第一目标知识层片段的片段信息。

添加单元203,用于根据所述获取单元201获取的所述第一目标知识层片段的片段信息和所述n个序列层片段的片段信息在所述码流的媒体表达描述mpd中添加所述第一目标知识层片段的扩展时段信息,所述n个序列层片段在所述扩展时段信息指示的时段内被编码。

发送单元204,用于将所述添加单元203处理得到的所述码流的mpd发送给客户端。

在一些可行的实施方式中,所述确定单元202具体用于:

根据所述获取单元获取的所述每个序列层片段的片段信息中包含的知识层片段的标识确定出每个序列层片段所依赖的知识层片段;

确定出第一目标知识层片段,并确定出依赖所述第一目标知识层片段的n个序列层片段。

在一些可行的实施方式中,所述n个序列层片段包含至少两个分组的序列层片段,所述至少两个分组至少包括第一时段对应的第一序列层片段组和第二时段对应的第二序列层片段组;

所述第一序列层片段组包含n1个序列层片段,所述第二序列层片段组包含n2个序列层片段,所述n1个序列层片段和所述n2个序列层片段不连续,并且n1+n2<=n;

若所述n1>1,则所述n1个序列层片段为连续的序列层片段;若所述n2>1,则所述n2个序列层片段为连续的序列层片段;

所述码流的mpd包含至少两个描述层,所述至少两个描述层中第一描述层描述第一目标知识层片段,第二描述层描述序列层片段;

所述添加单元203具体用于:

在所述第一描述层包含的所述第一时段对应的第一片段描述中添加第一扩展时段信息,并在所述第一描述层包含的所述第二时段对应的第二片段描述中添加第二扩展时段信息。

在一些可行的实施方式中,所述第一扩展时段信息和所述第二扩展时段信息均为第一扩展标识;

所述添加单元203具体用于:

在所述第一片段描述中包含的所述第一目标知识层片段的片段信息中添加第一扩展标识,并在所述第二片段描述中包含的所述第一目标知识层片段的片段信息中添加第一扩展标识。

在一些可行的实施方式中,所述第一扩展时段信息和所述第二扩展时段信息均为第二扩展标识;

所述添加单元203具体用于:

在所述第一描述层的描述层属性信息中添加所述第一时段对应的第二扩展标识和所述第二时段对应的第二扩展标识。

在一些可行的实施方式中,若所述第一序列层片段组还依赖第二目标知识层片段,则所述码流的mpd中还包括第三描述层,所述第三描述层描述所述第二目标知识层片段。

在一些可行的实施方式中,所述添加单元203还用于:

在所述第三描述层包含的所述第一时段对应的第三片段描述中添加第三扩展时段信息,所述第三扩展时段信息为第一扩展标识;或者

在所述第三描述层的描述层属性信息中添加第三扩展时段信息,所述第三扩展时段信息为第二扩展标识。

具体实现中,上述处理装置可为本发明实施例提供的服务器或者服务器中的功能模块,处理装置可通过其内置的各个单元执行上述视频数据的处理方法的各个步骤中服务器对应的实现方式,在此不再赘述。

在本发明实施例中,服务器可将被至少两个不连续的序列层片段依赖的知识层片段确定为目标知识层片段,并在码流的mpd中添加扩展时段信息来标记目标知识层片段的扩展时段等信息,以供客户端对目标知识层片段和非目标知识层片段区分,进而可避免目标知识层片段的重复加载和传输,节省数据传输带宽,增强了视频数据的处理的适用性。

参见图21,是本发明实施例提供的视频数据的处理装置的另一结构示意图。本发明实施例提供的处理装置包括:

解析单元211,用于解析服务器发送的码流的媒体表达描述mpd,确定所述mpd中携带的扩展时段信息,所述扩展时段信息用于确定所述码流中包含的目标知识层片段的被依赖时段,所述目标知识层片段为所述码流中包含的至少一个知识层片段中的一个,所述目标知识层片段被所述码流中的n个序列层片段依赖。

确定单元212,用于根据所述解析单元211获取的所述扩展时段信息确定出目标知识层片段,并确定出所述目标知识层片段的被依赖时段,所述n个序列层片段在所述目标知识层片段的被依赖时段内已被编码。

记录单元213,用于从所述解析单元211解析的所述码流的mpd获取所述目标知识层片段的网络存储地址,记录所述确定单元212确定的所述目标知识层片段的被依赖时段和所述网络存储地址。

判断单元214,用于在获取到视频点播请求时,判断所述视频点播请求中携带的点播时刻是否包含在所述记录单元213记录的所述目标知识层片段的被依赖时段中。

获取单元215,用于在所述判断单元214的判断结果为是时,查看所述目标知识层片段在所述客户端的存储空间中的存储状态,并根据所述存储状态确定所述目标知识层片段的获取方式。

在一些可行的实施方式中,所述n个序列层片段包含至少两个分组的序列层片段,所述至少两个分组至少包括第一时段对应的第一序列层片段组和第二时段对应的第二序列层片段组;

所述扩展时段信息包括所述第一时段对应的第一扩展时段信息和所述第二时段对应的第二扩展时段信息;

所述第一扩展时段信息用于确定所述目标知识层片段的被依赖时段中的第一扩展时段,所述第二扩展时段信息用于确定所述目标知识层片段的被依赖时段中的第二扩展时段。

在一些可行的实施方式中,所述第一扩展时段信息和所述第二扩展时段信息为第一扩展标识;

所述解析单元具体用于:

解析所述mpd,获取所述mpd中包含描述层描述的片段信息包含的第一扩展标识;

所述确定单元具体用于:

将携带所述解析单元获取的所述第一扩展标识的片段信息对应的片段确定为目标知识层片段;

其中,所述片段信息包括第一时段对应的第一片段信息和第二时段对应的第二片段信息,所述第一片段信息中携带第一扩展时段信息,所述第二片段信息中携带第二扩展时段信息。

在一些可行的实施方式中,所述第一扩展时段信息和所述第二扩展时段信息为第二扩展标识;

所述解析单元具体用于:

解析所述mpd,获取所述mpd中包含的描述层的描述层属性信息中包含的第二扩展标识;

所述确定单元具体用于:

将携带所述解析单元获取的所述第二扩展标识的描述层描述的片段确定为目标知识层片段;

其中,所述描述层属性信息中包含第一扩展时段信息和第二扩展时段信息,所述第一片段信息和所述第二片段信息中分别携带一个第二扩展标识。

在一些可行的实施方式中,所述确定单元具体用于:

根据所述第一扩展时段信息确定出所述目标知识层片段的第一扩展时段,并根据所述第二扩展时段信息确定出所述目标知识层片段的第二扩展时段;

将所述第一扩展时段和所述第二扩展时段的并集作为所述目标知识层片段的被依赖时段。

在一些可行的实施方式中,所述记录单元具体用于:

根据所述目标知识层片段的网络存储地址创建知识层片段列表,并在所述知识层片段列表中记录所述目标知识层片段的被依赖时段;

所述记录单元还用于:

在所述知识层片段列表中添加所述目标知识层片段的存储状态标记,用于表示所述目标知识层片段是否已经存在所述客户端的存储空间中;

所述获取单元具体用于:

根据所述目标知识层片段的网络存储地址在所述知识层片段列表中查看所述目标知识层片段的存储状态标记;

若所述存储状态标记为真,则确定所述目标知识层片段在所述存储空间中的存储状态不为空,否则为空;

若所述存储状态不为空,则从所述存储空间中获取所述目标知识层片段,否则向所述服务器发送获取所述目标知识层片段的请求。

在一些可行的实施方式中,所述获取单元还用于:

接收所述服务器发送的所述目标知识层片段;

若所述存储空间的剩余空间大小不小于所述目标知识层片段的数据大小,则将所述目标知识层片段存入所述存储空间,并通过所述记录单元将所述目标知识层片段的存储状态标记记为真;

若所述存储空间的剩余空间大小小于所述目标知识层片段的数据大小,则删除所述存储空间中存储的指定目标知识层片段,将所述目标知识层片段存入所述存储空间,并通过所述记录单元将所述目标知识层片段的存储状态标记记为真;

其中,所述指定目标知识层片段的被依赖时段与所述点播时刻的时间距离大于预设时间阈值。

具体实现中,上述处理装置可为本发明实施例提供的客户端,也可为客户端中的功能模块,处理装置可通过其内置的各个单元执行上述视频数据的处理方法的各个步骤中客户端对应的实现方式,在此不再赘述。

在本发明实施例中,客户端可通过解析码流的mpd,获取mpd中包含的扩展时段信息,并确定目标知识层片段的被依赖时段,并存储上述目标知识层片段的被依赖时段和目标知识层片段在客户端中的存储状态的存储状态标记。进一步的,客户端可在接收到用户点播视频的点播请求时,根据点播请求中携带的点播时刻查找包含该点播时刻的扩展时段,进而确定该扩展时段对应的目标知识层片段及其存储状态标记。客户端可根据目标知识层片段的存储状态确定是否向服务器请求目标知识层片段,或者从本地存储空间中获取目标知识层片段,可避免同一个知识层片段的多次加载和存储,节省数据传输带宽,提高码流数据的处理效率。

参见图22,是本发明实施例提供的服务器的结构示意图。本发明实施例提供的服务器可包括:存储器221和处理器222,存储器221和处理器222相连;

存储器221用于存储一组程序代码。

处理器222用于调用存储器221中存储的程序代码执行如下操作:

获取码流中的所有序列层片段中每个序列层片段的片段信息,所述片段信息用于描述所述码流中的序列层片段与知识层片段的依赖关系;

根据所述每个序列层片段的片段信息确定出n个序列层片段和第一目标知识层片段,所述n个序列层片段依赖于所述第一目标知识层片段,所述n个序列层片段中至少包含两个不连续的序列层片段,所述第一目标知识层片段为所述码流中包含的至少一个知识层片段中的一个;

获取所述第一目标知识层片段的片段信息;

根据所述第一目标知识层片段的片段信息和所述n个序列层片段的片段信息在所述码流的媒体表达描述mpd中添加所述第一目标知识层片段的扩展时段信息,所述n个序列层片段在所述扩展时段信息指示的时段内被编码;

将所述码流的mpd发送给客户端。

在一些可行的实施方式中,上述处理器222具体用于:

根据所述每个序列层片段的片段信息中包含的知识层片段的标识确定出每个序列层片段所依赖的知识层片段;

确定出第一目标知识层片段,并确定出依赖所述第一目标知识层片段的n个序列层片段。

在一些可行的实施方式中,所述n个序列层片段包含至少两个分组的序列层片段,所述至少两个分组至少包括第一时段对应的第一序列层片段组和第二时段对应的第二序列层片段组;

所述第一序列层片段组包含n1个序列层片段,所述第二序列层片段组包含n2个序列层片段,所述n1个序列层片段和所述n2个序列层片段不连续,并且n1+n2<=n;

若所述n1>1,则所述n1个序列层片段为连续的序列层片段;若所述n2>1,则所述n2个序列层片段为连续的序列层片段;

所述码流的mpd包含至少两个描述层,所述至少两个描述层中第一描述层描述第一目标知识层片段,第二描述层描述序列层片段;

上述处理器222具体用于:

在所述第一描述层包含的所述第一时段对应的第一片段描述中添加第一扩展时段信息,并在所述第一描述层包含的所述第二时段对应的第二片段描述中添加第二扩展时段信息。

在一些可行的实施方式中,所述第一扩展时段信息和所述第二扩展时段信息均为第一扩展标识;

上述处理器222具体用于:

在所述第一片段描述中包含的所述第一目标知识层片段的片段信息中添加第一扩展标识,并在所述第二片段描述中包含的所述第一目标知识层片段的片段信息中添加第一扩展标识。

在一些可行的实施方式中,所述第一扩展时段信息和所述第二扩展时段信息均为第二扩展标识;

上述处理器222具体用于:

在所述第一描述层的描述层属性信息中添加所述第一时段对应的第二扩展标识和所述第二时段对应的第二扩展标识。

在一些可行的实施方式中,若所述第一序列层片段组还依赖第二目标知识层片段,则所述码流的mpd中还包括第三描述层,所述第三描述层描述所述第二目标知识层片段。

在一些可行的实施方式中,上述处理器222还用于:

在所述第三描述层包含的所述第一时段对应的第三片段描述中添加第三扩展时段信息,所述第三扩展时段信息为第一扩展标识;或者

在所述第三描述层的描述层属性信息中添加第三扩展时段信息,所述第三扩展时段信息为第二扩展标识。

具体实现中,上述服务器可执行上述视频数据的处理方法的各个步骤中服务器对应的实现方式,在此不再赘述。

在本发明实施例中,服务器可将被至少两个不连续的序列层片段依赖的知识层片段确定为目标知识层片段,并在码流的mpd中添加扩展时段信息来标记目标知识层片段的扩展时段等信息,以供客户端对目标知识层片段和非目标知识层片段区分,进而可避免目标知识层片段的重复加载和传输,节省数据传输带宽,增强了视频数据的处理的适用性。

参见图23,是本发明实施例提供的服务器的结构示意图。本发明实施例提供的服务器可包括:存储器231和处理器232,存储器231和处理器232相连;

存储器231用于存储一组程序代码。

处理器232用于调用存储器231中存储的程序代码执行如下操作:

解析服务器发送的码流的媒体表达描述mpd,确定所述mpd中携带的扩展时段信息,所述扩展时段信息用于确定所述码流中包含的目标知识层片段的被依赖时段,所述目标知识层片段为所述码流中包含的至少一个知识层片段中的一个,所述目标知识层片段被所述码流中的n个序列层片段依赖;

根据所述扩展时段信息确定出目标知识层片段,并确定出所述目标知识层片段的被依赖时段,所述n个序列层片段在所述目标知识层片段的被依赖时段内已被编码;

从所述码流的mpd获取所述目标知识层片段的网络存储地址,记录所述目标知识层片段的被依赖时段和网络存储地址;

当获取到视频点播请求时,判断所述视频点播请求中携带的点播时刻是否包含在所述目标知识层片段的被依赖时段中;

若所述目标知识层片段的被依赖时段包含所述点播时刻,则查看所述目标知识层片段在所述客户端的存储空间中的存储状态,并根据所述存储状态确定所述目标知识层片段的获取方式。

在一些可行的实施方式中,所述n个序列层片段包含至少两个分组的序列层片段,所述至少两个分组至少包括第一时段对应的第一序列层片段组和第二时段对应的第二序列层片段组;

所述扩展时段信息包括所述第一时段对应的第一扩展时段信息和所述第二时段对应的第二扩展时段信息;

所述第一扩展时段信息用于确定所述目标知识层片段的被依赖时段中的第一扩展时段,所述第二扩展时段信息用于确定所述目标知识层片段的被依赖时段中的第二扩展时段。

在一些可行的实施方式中,所述第一扩展时段信息和所述第二扩展时段信息为第一扩展标识;

上述处理器232具体用于:

解析所述mpd,获取所述mpd中包含描述层描述的片段信息包含的第一扩展标识;

将携带所述第一扩展标识的片段信息对应的片段确定为目标知识层片段;

其中,所述片段信息包括第一时段对应的第一片段信息和第二时段对应的第二片段信息,所述第一片段信息中携带第一扩展时段信息,所述第二片段信息中携带第二扩展时段信息。

在一些可行的实施方式中,所述第一扩展时段信息和所述第二扩展时段信息为第二扩展标识;

上述处理器232具体用于:

解析所述mpd,获取所述mpd中包含的描述层的描述层属性信息中包含的第二扩展标识;

将携带所述第二扩展标识的描述层描述的片段确定为目标知识层片段;

其中,所述描述层属性信息中包含第一扩展时段信息和第二扩展时段信息,所述第一片段信息和所述第二片段信息中分别携带一个第二扩展标识。

在一些可行的实施方式中,上述处理器232具体用于:

根据所述第一扩展时段信息确定出所述目标知识层片段的第一扩展时段,并根据所述第二扩展时段信息确定出所述目标知识层片段的第二扩展时段;

将所述第一扩展时段和所述第二扩展时段的并集作为所述目标知识层片段的被依赖时段。

在一些可行的实施方式中,上述处理器232具体用于:

根据所述目标知识层片段的网络存储地址创建知识层片段列表,并在所述知识层片段列表中记录所述目标知识层片段的被依赖时段;

在所述知识层片段列表中添加所述目标知识层片段的存储状态标记,用于表示所述目标知识层片段是否已经存在所述客户端的存储空间中;

根据所述目标知识层片段的网络存储地址在所述知识层片段列表中查看所述目标知识层片段的存储状态标记;

若所述存储状态标记为真,则确定所述目标知识层片段在所述存储空间中的存储状态不为空,否则为空;

若所述存储状态不为空,则从所述存储空间中获取所述目标知识层片段,否则向所述服务器发送获取所述目标知识层片段的请求。

在一些可行的实施方式中,所述处理器232还用于:

接收所述服务器发送的所述目标知识层片段;

若所述存储空间的剩余空间大小不小于所述目标知识层片段的数据大小,则将所述目标知识层片段存入所述存储空间,并将所述目标知识层片段的存储状态标记记为真;

若所述存储空间的剩余空间大小小于所述目标知识层片段的数据大小,则删除所述存储空间中存储的指定目标知识层片段,将所述目标知识层片段存入所述存储空间,并将所述目标知识层片段的存储状态标记记为真;

其中,所述指定目标知识层片段的被依赖时段与所述点播时刻的时间距离大于预设时间阈值。

具体实现中,上述客户端可执行上述视频数据的处理方法的各个步骤中客户端对应的实现方式,在此不再赘述。

在本发明实施例中,客户端可通过解析码流的mpd,获取mpd中包含的扩展时段信息,并确定目标知识层片段的被依赖时段,并存储上述目标知识层片段的被依赖时段和目标知识层片段在客户端中的存储状态的存储状态标记。进一步的,客户端可在接收到用户点播视频的点播请求时,根据点播请求中携带的点播时刻查找包含该点播时刻的扩展时段,进而确定该扩展时段对应的目标知识层片段及其存储状态标记。客户端可根据目标知识层片段的存储状态确定是否向服务器请求目标知识层片段,或者从本地存储空间中获取目标知识层片段,可避免同一个知识层片段的多次加载和存储,节省数据传输带宽,提高码流数据的处理效率。

本发明的说明书、权利要求书以及附图中的术语“第一”、“第二”、“第三”和“第四”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或者单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或者单元,或可选地还包括对于这些过程、方法、系统、产品或设备固有的其他步骤或单元。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(read-onlymemory,rom)或随机存储记忆体(randomaccessmemory,ram)等。

以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。

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