一种基于流媒体技术的视频数据的处理方法及装置与流程

文档序号:14915092发布日期:2018-07-11 00:30阅读:134来源:国知局

本发明涉及流媒体数据处理领域,尤其涉及一种基于流媒体技术的视频数据的处理方法及装置。



背景技术:

虚拟现实技术是一种可以创建和体验虚拟世界的计算机仿真系统,它利用计算机生成一种模拟环境,是一种多源信息融合的交互式的三维动态视景和实体行为的系统仿真,可以使用户沉浸到该环境中。VR主要包括模拟环境、感知、自然技能和传感设备等方面。模拟环境是由计算机生成的、实时动态的三维立体逼真图像。感知是指理想的VR应该具有一切人所具有的感知。除计算机图形技术所生成的视觉感知外,还有听觉、触觉、力觉、运动等感知,甚至还包括嗅觉和味觉等,也称为多感知。自然技能是指人的头部转动,眼睛、手势、或其他人体行为动作,由计算机来处理与参与者的动作相适应的数据,并对用户的输入作出实时响应,并分别反馈到用户的五官。传感设备是指三维交互设备。当VR视频(或者360度视频,或者全方位视频(英文:Omnidirectional video))在头戴设备和手持设备上呈现时,只有对应于用户头部的方位部分的视频图像呈现和相关联的音频呈现。

随着虚拟现实(英文:virtual reality,VR)技术的日益发展完善,360度视角等VR视频的观看应用越来越多地呈现在用户面前。全方位VR视频的内容会覆盖用户的360度的全部视野,为了给观看者提供浸入式的体验,呈现给用户的视频内容需要是正向的,也就是给用户呈现的视频内容是和自然界物体的上下方向是一致的。

现有的VR视频采集设备的镜头数量都超过1个,多个镜头在同一时刻可以采集到多幅图像,比如2个鱼眼镜头可以采集到两幅图像(例如图1),多幅图像进行拼接后可以得到一个VR的图像。在实际的拍摄中,可能因某些原因将采集设备倾斜,这样最终采集到的视频呈现出来的效果就会有偏移,这种偏移会给观看者带来不适感。



技术实现要素:

本发明第一方面实施例提供了一种基于流媒体技术的视频数据的处理方法,所述方法包括:得到媒体呈现描述,所述媒体呈现描述包括视频数据的索引信息;根据所述视频数据的索引信息得到视频数据;得到所述视频数据的倾斜信息;根据所述视频数据的倾斜信息处理所述视频数据。

在一种可能的方式中,本发明实施例的根据所述视频数据的倾斜信息处理所述视频数据,包括根据所述视频数据的倾斜信息呈现所述视频数据或者根据所述视频数据的倾斜信息解码所述视频数据。

根据本发明实施例的视频数据的处理方法,通过传输倾斜信息,可以使得客户端根据倾斜信息调整视频数据的处理方式。

在一种可能的实现方式中,本发明实施例所述的流媒体技术,是指将一连串的媒体数据压缩后,经过网络分段发送数据,在网络上传输以供客户端播放的一种技术。流媒体传输有顺序流式传输(Progressive Streaming)和实时流式传输(Realtime Streaming)两种方式。流媒体传输协议主要包括超文本传送协议(HyperText Transfer Protocol,HTTP),实时传输协议(Real-time Transport Protocol,RTP)、实时传输控制协议(Real-time Transport Control Protocal,RTCP)、资源预定协议(Resource reserve Protocol)、实时流传输协议(Real Time Streaming Protocol,RTSP),路由选择表维护协议(Routing Table Maintenance Protocol,RMTP)等。

在一种可能的实现方式中,本发明实施例所述的视频数据,可以包括一帧或多帧图像数据,可以是采集设备采集到的原始数据,也可以是对采集的原始数据进行编码后的数据。在一种实现方式中,可以采用ITU H.264或ITU H.265等编码标准对原始采集数据进行编码。在一种实现方式中,视频数据包括一个或多个媒体分段(segment)。在一种示例中,服务器会为同一个视频内容准备多种版本的码流,每个版本的码流称为表示(representation)。表示是在传输格式中的一个或者多个码流的集合和封装,一个表达中包含一个或者多个分段(segment)。不同版本的码流的码率、分辨率等编码参数可以不同,每个码流分割成多个小的文件,每个小文件被称为分段。在客户端请求媒体分段数据的过程中可以在不同的媒体表示之间切换,在一个示例中,服务器为一部电影准备了3个表示,包括rep1,rep2,rep3。其中,rep1是码率为4mbps(每秒兆比特)的高清视频,rep2是码率为2mbps的标清视频,rep3是码率为1mbps的标清视频。每个表示的分段可以首尾相接的存在一个文件中,也可以独立存储为一个个的小文件。Segment可以按照标准ISO/IEC 14496-12中的格式封装(ISO BMFF(Base Media File Format)),也可以是按照ISO/IEC 13818-1中的格式封装(MPEG-2TS)。

在一种实现方式中,视频数据也可以根据私有协议封装。可以包括一段时间长度(例如5s)的媒体内容,也可以只包括某一个时间点(例如11点59分10秒)的媒体内容。

在一种可能的实现方式中,本发明实施例所述的媒体呈现描述,可以是一个包括了视频数据的索引信息的文件,该文件的格式既可以是使用的标准协议,如使用超文本标记语言(HyperText Markup Language,HTML)构建的xml文件;也可以是使用其它私有协议构建的文件。

在一种可能的实现方式中,媒体呈现描述可以是基于MPEG-DASH标准得到的文件。2011年11月,MPEG组织批准了DASH标准,DASH标准是基于HTTP协议传输媒体流的技术规范(以下称DASH技术规范);DASH技术规范主要由两大部分组成:媒体呈现描述(英文:Media Presentation Description,MPD)和媒体文件格式(英文:file format)。在DASH标准中,媒体呈现描述被称为MPD,MPD可以是一个xml的文件,文件中的信息是采用分级方式描述,如图2所示,上一级的信息被下一级完全继承。在该文件中描述了一些媒体元数据,这些元数据可以使得客户端了解服务器中的媒体内容信息,并且可以使用这些信息构造请求segment的http-URL。

在DASH标准中,媒体呈现(英文:media presentation),是呈现媒体内容的结构化数据的集合;媒体呈现描述(英文:media presentation description),一个规范化描述媒体呈现的文件,用于提供流媒体服务;时期(英文:period),一组连续的时期组成整个媒体呈现,时期具有连续和不重叠的特性;表示(英文:representation),封装有一个或多个具有描述性元数据的的媒体内容成分(编码的单独的媒体类型,例如音频、视频等)的结构化的数据集合即表示是传输格式中一个或者多个码流的集合和封装,一个表示中包含一个或者多个分段;自适应集(英文:AdaptationSet),表示同一媒体内容成分的多个可互替换的编码版本的集合,一个自适应集包含一个或者多个表示;子集(英文:subset),一组自适应集合的组合,当播放器播放其中所有自适应集合时,可以获得相应的媒体内容;分段信息,是媒体呈现描述中的HTTP统一资源定位符引用的媒体单元,分段信息描述媒体数据的分段,媒体数据的分段可以存储在一个文件中,也可以单独存储,在一种可能的方式中,MPD中会存储媒体数据的分段。

本发明有关MPEG-DASH技术的相关技术概念可以参考ISO/IEC 23009-1:2014 Information technology----Dynamic adaptive streaming over HTTP(DASH)--Part 1:Media presentation description and segment formats,中的有关规定,也可以参考历史标准版本中的相关规定,如ISO/IEC 23009-1:2013或ISO/IEC 23009-1:2012等。

在一种可能的实现方式中,本发明实施例所述的视频数据的索引信息,可以是一个具体的存储地址,例如一个超链接;也可以是一个具体的数值;还可以是一个存储地址的模板,例如一个URL模板,此时客户端可以根据URL模板生成视频数据的获取请求,向对应的地址请求视频数据。

在一种可能的实现方式中,本发明实施例所述的根据所述视频数据的索引信息得到视频数据,可以包括如下的几种实现方式:

媒体呈现描述中包括了视频数据,根据视频数据的索引信息从媒体呈现描述中得到相应的视频数据,此时不需要向服务器再发送额外的视频数据获取请求。

或者

视频数据的索引信息是视频数据对应的存储地址,客户端向该存储地址发送视频数据获取请求,然后接收到相应的视频数据;该请求可以是一个基于HTTP的获取请求。

或者

视频数据的索引信息是视频数据的存储地址模板,客户端根据该模板生成相应的视频数据获取请求,然后接收到相应的视频数据;客户端在根据存储地址模板生成视频数据获取请求时,可以根据媒体呈现描述中包括的信息构造视频数据获取请求,也可以根据客户端的信息构造视频数据获取请求,还可以根据传输网络的信息构造视频获取请求;视频数据获取请求可以是一个基于HTTP的获取请求。

在一种可能的实现方式中,本发明实施例所述的视频数据的倾斜信息,可以包括下列信息中的至少一种:偏航角信息,俯仰角信息,滚动角信息或倾斜处理方式信息。

视频数据的倾斜信息主要体现的是采集设备的正向角度与客户端设备呈现时的正向角度之间的差异,或者是预设的某个角度与客户端设备呈现时的正向角度之间的差异,或者是视频帧相对于参考视频帧的旋转角度或者像素或者块。偏航角,俯仰角,滚动角可以用来表示物体在惯性坐标系中的姿态,也可以称为欧拉角。

在一种可能的实现方式中,偏航角信息,俯仰角信息,滚动角信息等信息可以是以角度为单位的信息,也可以是以像素为单位的信息,或者是以某个大小的块为单位的数据。

比如图1所示,偏航角为ɑ,俯仰角为β,侧方滚动角(侧滚角)为θ。

在一种实现方式中,倾斜信息的表现形式如下:

在一种实现方式中,倾斜处理方式信息可以包括插值信息和采样信息,插值信息可以包括插值方式,采样信息可以包括采样率等。采集设备中的图像采集传感器和倾斜数据采集的传感器可能是不同的传感器,而且传感器之间的采样频率可能也是不同的。所以如果倾斜数据的采样率和视频数据的采样率不同的话,需要对倾斜数据进行插值计算,将对应某一时刻视频数据的倾斜信息计算出来;插值计算的方式可以是线性差值或者多项式插值等。

在一种示例中,倾斜处理方式信息的示例如下:

在一种可能的实现方式中,本发明实施例所述的得到所述视频数据的倾斜信息,可以包括如下的几种实现方式:

1、所述视频数据的倾斜信息和所述视频数据封装在同一个码流中,此

时可以通过视频数据的码流得到视频数据的倾斜信息。

在一种实现方式中,倾斜信息可以封装在码流的参数集中,例如封装在在视频参数集(video_parameter_set,VPS),序列参数集(sequence_parameter_set,SPS)或者图像参数集(picture_parameter_set,PPS)中或者是其他VR扩展相关的参数集中。

在一个示例中,在PPS中描述倾斜信息如下:

在一种可能的方式中,将倾斜信息封装在SEI(Supplemental enhancement information)中。

上述语法中的position表示一个具体取值,比如190,用以表示SEI的类型值为190的话,SEI NALU(Network Abstract Layer Unit,网络适配层单元)中的数据是倾斜信息。数字190只是个具体的示例,不代表对本发明实施例的具体限制。

position_payload(payloadSize)的描述方法:

在一种可能的方式中,所述码流中还包括倾斜信息标识,所述倾斜信息标识用于表示码流中是否存在倾斜信息。例如倾斜信息标识是一个flag,当flag值为1时表示码流中存在倾斜信息;当flag值为0时表示码流中不存在倾斜信息。

在一种可能的方式中,上述的flag也可以描述在视频参数集VPS,SPS或者PPS中,具体语法如下,如果position_extension_flag=1,表示在每一帧的码流数据中包含有当前帧的倾斜数据。

一种可能的方式中,该数据除了由传感器获得,或者通过传感器数据插值获得,还可以由编码器在做球面运动估计时获得,可以认为是球面帧和参考球面帧的全局旋转信息,该旋转信息可以是倾斜的绝对值(球面帧在采集时的倾斜信息),也可以是相对值(VR视频中当前球面帧相对于参考球面帧的旋转信息),还可以是相对值变化的值,具体不做限定;球面运动估计时可以采用球面图像,也可以采用球面映射后的2D图像,具体不做限定;解码器在获得该信息后,需要采用该值在参考帧中找到参考数据的位置,从而完成视频数据的正确解码。

2、所述视频数据的倾斜信息封装在独立于所述视频数据的轨迹(track)中。

在本发明的一种实现方式中,track是基于ISO标准的媒体文件中具有时间属性的一类样本序列。

此时客户端需要通过传输倾斜信息的track或者发送倾斜信息获取请求得到视频数据的倾斜信息。在一种实现方式中,媒体呈现描述包括了倾斜信息的索引信息,客户端可以采用与上述得到视频数据类似的方式得到视频数据的倾斜信息。在一种实现方式中,倾斜信息的索引信息也可以通过独立于媒体呈现描述的文件发送到客户端。

在一种示例中,倾斜信息的描述如下:

在一种可能的实现方式中,倾斜信息还包括:

客户端获取到倾斜数据的track中的描述信息,该描述信息中描述了本track中的倾斜数据的最大倾斜情况,客户端可以根据该最大倾斜情况预先申请出图像处理的最大计算空间;以防在图像处理过程中因为倾斜数据的变化导致内存空间重申请。

在一种可能的实现方式中,媒体呈现描述包括倾斜信息的元数据,客户端可以根据该元数据得到视频数据的倾斜信息。

在一种基于DASH标准的示例中,在MPD中增加的倾斜信息的元数据描述如下:

或者在MPD中描述倾斜信息

比如在period层或者adaptation set层增加倾斜信息,具体样例如下:

在adaptation set层增加倾斜信息,表示adaptation set下的视频流内容的倾斜情况。

在period层增加倾斜信息,表示period下的视频流内容的倾斜情况:

客户端可以通过解析MPD获得倾斜数据表达的元数据,构造倾斜数据获取的URL,获取倾斜数据。可以理解的是,上述示例只是为了帮助本发明技术方案的一种举例,倾斜信息的元数据也可以在表示中或MPD描述子中描述。

3、所述视频数据的倾斜信息封装在所述视频数据的轨迹(track)中。

此时可以通过传输视频数据的track得到视频数据的倾斜信息。

在一个示例中,倾斜信息可以封装在视频数据的元数据中。

在一种可能的实现方式中,所述倾斜信息可以封装在媒体呈现描述中。此时客户端可以通过视频数据的元数据得到倾斜信息。例如可以通过解析媒体呈现描述得到视频数据的倾斜信息。

在一个示例中,描述了将倾斜信息携带在视频track中的样例,在本实施例中,描述倾斜信息的box为Positioninfomationbox;

或者:

根据本发明实施例的视频数据的处理方法,将采集设备相关的倾斜数据作为元数据进行了封装,该元数据更加有利于客户端的VR视频呈现,客户端可以选择呈现正向的视频内容也可以选择呈现拍摄者的原始拍摄姿态下的内容,同时,还可以利用该数据客户端还可以计算出视频采集的镜头中心区域在图像中的位置,从而客户端可以根据视频内容距离中心位置不同,视频内容的形变和分辨率也不同的原理,来选择观看视频的空间区域。

本发明第二方面实施例提供了一种基于流媒体技术的视频数据的处理装置,所述装置包括:接收器,所述接收器用于得到媒体呈现描述,所述媒体呈现描述包括视频数据的索引信息;所述接收器还用于根据所述视频数据的索引信息得到视频数据;所述接收器还用于得到所述视频数据的倾斜信息;处理器,所述处理器用于根据所述视频数据的倾斜信息处理所述视频数据。

在一种可能的实现方式中,所述视频数据的倾斜信息包括下列信息中的至少之一:

偏航角信息,俯仰角信息,滚动角信息或倾斜处理方式信息。

在一种可能的实现方式中,所述视频数据的倾斜信息封装在所述视频数据的元数据中。

在一种可能的实现方式中,所述视频数据的倾斜信息和所述视频数据封装在同一个码流中。

在一种可能的实现方式中,所述码流中还包括倾斜信息标识,所述倾斜信息标识用于表示码流中是否存在倾斜信息。

在一种可能的实现方式中,所述视频数据的倾斜信息封装在独立于所述视频数据的轨迹(track)中。

在一种可能的实现方式中,所述视频数据的倾斜信息封装在所述视频数据的轨迹(track)中。

可以理解的是,本发明装置实施例的具体实现方式以及有关特征的示例,可以采用上述方法实施例对应的实现方式,在此不再赘述。

本发明第三方面实施例公开了一种基于流媒体技术的视频数据的处理方法,所述方法包括:

向客户端发送媒体呈现描述;

得到视频数据的倾斜信息,向所述客户端发送所述视频数据的倾斜信息。

在本发明实施例一种可能的实现方式中,所述方法还包括:得到视频数据,向所述客户端发送所述视频数据。

在本发明实施例一种可能的实现方式中,所述方法还包括:接收所述客户端发送的媒体呈现描述获取请求。

在本发明实施例一种可能的实现方式中,所述方法还包括:接收所述客户端发送的视频数据获取请求。

在本发明实施例一种可能的实现方式中,所述得到视频数据的倾斜信息,包括如下可能的实现方式:

接收视频数据的倾斜信息;

或者

由采集设备采集视频数据的倾斜信息。

在一种可能的实现方式中,本发明实施例所述的流媒体技术,是指将一连串的媒体数据压缩后,经过网络分段发送数据,在网络上传输以供客户端播放的一种技术。流媒体传输有顺序流式传输(Progressive Streaming)和实时流式传输(Realtime Streaming)两种方式。流媒体传输协议主要包括超文本传送协议(HyperText Transfer Protocol,HTTP),实时传输协议(Real-time Transport Protocol,RTP)、实时传输控制协议(Real-time Transport Control Protocal,RTCP)、资源预定协议(Resource reserve Protocol)、实时流传输协议(Real Time Streaming Protocol,RTSP),路由选择表维护协议(Routing Table Maintenance Protocol,RMTP)等。

在一种可能的实现方式中,本发明实施例所述的视频数据,可以包括一帧或多帧图像数据,可以是采集设备采集到的原始数据,也可以是对采集的原始数据进行编码后的数据。在一种实现方式中,可以采用ITU H.264或ITU H.265等编码标准对原始采集数据进行编码。在一种实现方式中,视频数据包括一个或多个媒体分段(segment)。在一种示例中,服务器会为同一个视频内容准备多种版本的码流,每个版本的码流称为表示(representation)。表示是在传输格式中的一个或者多个码流的集合和封装,一个表达中包含一个或者多个分段(segment)。不同版本的码流的码率、分辨率等编码参数可以不同,每个码流分割成多个小的文件,每个小文件被称为分段。在客户端请求媒体分段数据的过程中可以在不同的媒体表示之间切换,在一个示例中,服务器为一部电影准备了3个表示,包括rep1,rep2,rep3。其中,rep1是码率为4mbps(每秒兆比特)的高清视频,rep2是码率为2mbps的标清视频,rep3是码率为1mbps的标清视频。每个表示的分段可以首尾相接的存在一个文件中,也可以独立存储为一个个的小文件。Segment可以按照标准ISO/IEC 14496-12中的格式封装(ISO BMFF(Base Media File Format)),也可以是按照ISO/IEC13818-1中的格式封装(MPEG-2TS)。

在一种实现方式中,视频数据也可以根据私有协议封装。可以包括一段时间长度(例如5s)的媒体内容,也可以只包括某一个时间点(例如11点59分10秒)的媒体内容。

在一种可能的实现方式中,本发明实施例所述的媒体呈现描述,可以是一个包括了视频数据的索引信息的文件,该文件的格式既可以是使用的标准协议,如使用超文本标记语言(HyperText Markup Language,HTML)构建的xml文件;也可以是使用其它私有协议构建的文件。

在一种可能的实现方式中,媒体呈现描述可以是基于MPEG-DASH标准得到的文件。2011年11月,MPEG组织批准了DASH标准,DASH标准是基于HTTP协议传输媒体流的技术规范(以下称DASH技术规范);DASH技术规范主要由两大部分组成:媒体呈现描述(英文:Media Presentation Description,MPD)和媒体文件格式(英文:file format)。在DASH标准中,媒体呈现描述被称为MPD,MPD可以是一个xml的文件,文件中的信息是采用分级方式描述,如图2所示,上一级的信息被下一级完全继承。在该文件中描述了一些媒体元数据,这些元数据可以使得客户端了解服务器中的媒体内容信息,并且可以使用这些信息构造请求segment的http-URL。

在DASH标准中,媒体呈现(英文:media presentation),是呈现媒体内容的结构化数据的集合;媒体呈现描述(英文:media presentation description),一个规范化描述媒体呈现的文件,用于提供流媒体服务;时期(英文:period),一组连续的时期组成整个媒体呈现,时期具有连续和不重叠的特性;表示(英文:representation),封装有一个或多个具有描述性元数据的的媒体内容成分(编码的单独的媒体类型,例如音频、视频等)的结构化的数据集合即表示是传输格式中一个或者多个码流的集合和封装,一个表示中包含一个或者多个分段;自适应集(英文:AdaptationSet),表示同一媒体内容成分的多个可互替换的编码版本的集合,一个自适应集包含一个或者多个表示;子集(英文:subset),一组自适应集合的组合,当播放器播放其中所有自适应集合时,可以获得相应的媒体内容;分段信息,是媒体呈现描述中的HTTP统一资源定位符引用的媒体单元,分段信息描述媒体数据的分段,媒体数据的分段可以存储在一个文件中,也可以单独存储,在一种可能的方式中,MPD中会存储媒体数据的分段。

本发明有关MPEG-DASH技术的相关技术概念可以参考ISO/IEC 23009-1:2014 Information technology --Dynamic adaptive streaming over HTTP(DASH)--Part 1:Media presentation description and segment formats,中的有关规定,也可以参考历史标准版本中的相关规定,如ISO/IEC 23009-1:2013或ISO/IEC 23009-1:2012等。

在一种可能的实现方式中,本发明实施例所述的视频数据的倾斜信息,可以包括下列信息中的至少一种:偏航角信息,俯仰角信息,滚动角信息或倾斜处理方式信息。

视频数据的倾斜信息主要体现的是采集设备的正向角度与客户端设备呈现时的正向角度之间的差异。

在一种实现方式中,倾斜信息的表现形式如下:

在一种实现方式中,倾斜处理方式信息可以包括插值信息和采样信息,插值信息可以包括插值方式,采样信息可以包括采样率等。采集设备中的图像采集传感器和倾斜数据采集的传感器可能是不同的传感器,而且传感器之间的采样频率可能也是不同的。所以如果倾斜数据的采样率和视频数据的采样率不同的话,需要对倾斜数据进行插值计算,将对应某一时刻视频数据的倾斜信息计算出来;插值计算的方式可以是线性差值或者多项式插值等。

在一种示例中,倾斜处理方式信息的示例如下:

本发明实施例所述的向所述客户端发送所述视频数据的倾斜信息,可以包括如下几种实现方式:

所述视频数据的倾斜信息封装在所述视频数据的元数据中;

或者

所述视频数据的倾斜信息和所述视频数据封装在同一个码流中;

或者

所述视频数据的倾斜信息封装在独立于所述视频数据的轨迹(track)中;

或者

所述视频数据的倾斜信息封装在独立于所述视频数据的文件中;

或者

所述视频数据的倾斜信息封装在所述视频数据的轨迹(track)中。

上述实现方式的具体示例可以参考第一方面实施例中对应部分的实施例,在此不再赘述。

本发明第四方面的实施例公开了一种基于流媒体技术的视频数据的处理装置,所述装置包括:

发送模块,用于向客户端发送媒体呈现描述;

倾斜信息获得模块,用于得到视频数据的倾斜信息;

所述发送模块还用于向所述客户端发送所述视频数据的倾斜信息。

在本发明实施例一种可能的实现方式中,所述装置还包括:视频数据获得模块,用于得到视频数据;所述发送模块还用于向所述客户端发送所述视频数据。

在本发明实施例一种可能的实现方式中,所述装置还包括,接收模块,用于接收所述客户端发送的媒体呈现描述获取请求。

在本发明实施例一种可能的实现方式中,所述接收模块还用于接收所述客户端发送的视频数据获取请求。

在本发明实施例一种可能的实现方式中,所述得到视频数据的倾斜信息,包括如下可能的实现方式:

接收视频数据的倾斜信息;

或者

由采集设备采集视频数据的倾斜信息。

本发明实施例所述的向所述客户端发送所述视频数据的倾斜信息,可以包括如下几种实现方式:

所述视频数据的倾斜信息封装在所述视频数据的元数据中;

或者

所述视频数据的倾斜信息和所述视频数据封装在同一个码流中;

或者

所述视频数据的倾斜信息封装在独立于所述视频数据的轨迹(track)中;

或者

所述视频数据的倾斜信息封装在独立于所述视频数据的文件中;

或者

所述视频数据的倾斜信息封装在所述视频数据的轨迹(track)中。

上述实现方式的具体示例可以参考上述第三方面实施例和第一方面实施例中对应部分的实施例,在此不再赘述。

可以理解的是,本装置实施例中的可能实现方式或者特征示例可以参考上述第三方面实施例,在此不再赘述。

附图说明

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

图1是本发明实施例的一种偏航角,俯仰角,滚动角的示意图;

图2是本发明实施例的基于MPEG-DASH进行流媒体传输时的媒体展现描述的结构示意图。

图3是本发明实施例的一种基于流媒体技术的视频数据的处理方法的流程示意图。

图4是本发明实施例的一种基于流媒体技术的视频数据的处理方法的实现方式示意图。

图5为本发明实施例的基于流媒体技术的视频数据的处理装置的结构示意图。

具体实施方式

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

下面结合图3描述本发明实施例的一种基于流媒体技术的视频数据的处理方法,如图3所示,包括:

S301:得到媒体呈现描述,所述媒体呈现描述包括视频数据的索引信息。

S302:根据所述视频数据的索引信息得到视频数据。

S303:得到所述视频数据的倾斜信息。

S304:根据所述视频数据的倾斜信息处理所述视频数据。

根据本发明实施例的视频数据的处理方法,通过传输倾斜信息,可以使得客户端根据倾斜信息调整视频数据的呈现方式。

可以理解的是,上述步骤顺序只是为了帮助理解本发明实施例而做出的一种举例,而不是对本发明实施例的一种限制,例如步骤S302和S303的顺序可以调换。

下面结合图4描述本发明实施例的一种基于流媒体技术的视频数据的处理方法的实现方式。

如图4所示,采集设备400采集视频数据,本发明实施例中的采集设备400可以是多个摄像头阵列,也可以是分散布置的摄像头;摄像头采集到原始的数据之后,可以将原始的数据发送给服务器401,由服务器进行编码;也可以在采集设备端对视频数据进行编码,然后将编码后的数据发送给服务器401。可以采用现有的视频编码标准对采集到的数据进行编码,如ITU H.262,ITU H.264,ITU H.265等,也可以采用私有的编码协议对采集到的数据进行编码。采集设备400或服务器401可以将多个摄像头采集到的图像拼接成一个应用于VR呈现的图像,并对该图像进行编码和存储。

采集设备400上还包括了传感器(例如陀螺仪等),用于得到视频数据的倾斜信息,一般来说,视频数据的倾斜信息是指在某一时刻采集视频数据时,采集设备的倾斜情况,也就是采集设备的镜头的主光轴的偏航角,俯仰角和滚动角,也称为主光轴的欧拉角或姿态角。在得到了视频数据的倾斜信息之后,将视频数据的倾斜信息发送给服务器401;在一种示例中,服务器401也可以从其它服务器接收视频数据的倾斜信息。倾斜信息可以是对原始采集到的倾斜数据进行数据滤波或者数据下采样后的信息。

在一种实现方式中,也可以在服务器侧直接计算视频数据的倾斜信息,例如服务器401根据存储的采集设备的信息或者实时收到的采集设备的信息得到视频数据的倾斜信息。例如,服务器401存储了采集设备的各个时刻的倾斜信息等,也可以是服务器通过对采集设备的实时状态进行处理得到视频数据的倾斜信息,服务器401可以通过和采集设备400通信交互的方式得到采集设备401的状态信息,也可以通过其它设备进行处理(例如通过其它摄像头对采集设备进行拍照,通过建模的方式得到采集设备的倾斜信息)。本方面实施例主要涉及视频数据的倾斜信息的传输方式,对于服务器如何得到倾斜信息不做具体的限制。

在一种实现方式中,也可以在在编码器侧直接计算视频帧相对于参考视频帧的倾斜数据,该倾斜数据也可以称为旋转数据,相对旋转数据;编码器通过运动搜索可以获得当前VR帧相对于参考视频帧在x,y,z三个轴上的相对偏移信息,或者是由相对旋转数据计算到的差值;对于编码器的运动搜索方法不做具体的限制。

在一种可能的实现方式中,本发明实施例所述的视频数据的倾斜信息,可以包括下列信息中的至少一种:偏航角信息,俯仰角信息,滚动角信息或倾斜处理方式信息。

在一种可能的实现方式中,偏航角信息,俯仰角信息,滚动角信息等信息可以是以角度为单位的信息,也可以是以像素为单位的信息,或者是以某个大小的块为单位的数据。

视频数据的倾斜信息主要体现的是采集设备的正向角度与客户端设备呈现时的正向角度之间的差异,或者是预设的某个角度与客户端设备呈现时的正向角度之间的差异,或者是视频帧相对于参考视频帧的旋转角度或者像素或者块。

在一种实现方式中,倾斜信息的表现形式如下:

在一种实现方式中,倾斜处理方式信息可以包括插值信息和采样信息,插值信息可以包括插值方式,采样信息可以包括采样率等。采集设备400中的图像采集传感器和倾斜数据采集的传感器可能是不同的传感器,而且传感器之间的采样频率可能也是不同的。如果倾斜数据的采样率和视频数据的采样率不同的话,需要对倾斜数据进行插值计算,将对应某一时刻视频数据的倾斜信息计算出来;插值计算的方式可以是线性差值或者多项式插值等。

在一种示例中,倾斜处理方式信息的示例如下:

在一种实现方式中,服务器401根据视频数据生成媒体呈现描述。媒体呈现描述包括了视频数据的索引信息。在一种方式中,服务器401可以无需得到客户端402的请求,而将媒体呈现描述发送给客户端402,这种方式主要应用在直播的场景中;在另一种方式中,服务器401要先接收客户端402发送的媒体呈现描述获取请求,再将相应的媒体呈现描述发送给客户端402,这种方式主要应用在直播或点播的场景中。

在一种可能的实现方式中,本发明实施例所述的媒体呈现描述,可以是一个包括了视频数据的索引信息的文件,该文件的格式既可以是使用的标准协议,如使用超文本标记语言(HyperText Markup Language,HTML)构建的xml文件;也可以是使用其它私有协议构建的文件。

在一种可能的实现方式中,媒体呈现描述可以是基于MPEG-DASH标准得到的文件。2011年11月,MPEG组织批准了DASH标准,DASH标准是基于HTTP协议传输媒体流的技术规范(以下称DASH技术规范);DASH技术规范主要由两大部分组成:媒体呈现描述(英文:Media Presentation Description,MPD)和媒体文件格式(英文:file format)。在DASH标准中,媒体呈现描述被称为MPD,MPD可以是一个xml的文件,文件中的信息是采用分级方式描述,如图2所示,上一级的信息被下一级完全继承。在该文件中描述了一些媒体元数据,这些元数据可以使得客户端了解服务器中的媒体内容信息,并且可以使用这些信息构造请求segment的http-URL。

在DASH标准中,媒体呈现(英文:media presentation),是呈现媒体内容的结构化数据的集合;媒体呈现描述(英文:media presentation description),一个规范化描述媒体呈现的文件,用于提供流媒体服务;时期(英文:period),一组连续的时期组成整个媒体呈现,时期具有连续和不重叠的特性;表示(英文:representation),封装有一个或多个具有描述性元数据的的媒体内容成分(编码的单独的媒体类型,例如音频、视频等)的结构化的数据集合即表示是传输格式中一个或者多个码流的集合和封装,一个表示中包含一个或者多个分段;自适应集(英文:AdaptationSet),表示同一媒体内容成分的多个可互替换的编码版本的集合,一个自适应集包含一个或者多个表示;子集(英文:subset),一组自适应集合的组合,当播放器播放其中所有自适应集合时,可以获得相应的媒体内容;分段信息,是媒体呈现描述中的HTTP统一资源定位符引用的媒体单元,分段信息描述媒体数据的分段,媒体数据的分段可以存储在一个文件中,也可以单独存储,在一种可能的方式中,MPD中会存储媒体数据的分段。

本发明有关MPEG-DASH技术的相关技术概念可以参考ISO/IEC 23009-1:2014 Information technology--Dynamic adaptive streaming over HTTP(DASH)--Part 1:Media presentation description and segment formats,中的有关规定,也可以参考历史标准版本中的相关规定,如ISO/IEC 23009-1:2013或ISO/IEC 23009-1:2012等。

在一种可能的实现方式中,本发明实施例所述的视频数据的索引信息,可以是一个具体的存储地址,例如一个超链接;也可以是一个具体的数值;还可以是一个存储地址的模板,例如一个URL模板,此时客户端可以根据URL模板生成视频数据的获取请求,向对应的地址请求视频数据。

在一种可能的实现方式中,客户端402根据所述视频数据的索引信息得到视频数据,可以包括如下的几种实现方式:

媒体呈现描述中包括了视频数据,根据视频数据的索引信息从媒体呈现描述中得到相应的视频数据,此时不需要向服务器再发送额外的视频数据获取请求。

或者

视频数据的索引信息是视频数据对应的存储地址,客户端向该存储地址发送视频数据获取请求,然后接收到相应的视频数据;该请求可以是一个基于HTTP的获取请求。

或者

视频数据的索引信息是视频数据的存储地址模板,客户端根据该模板生成相应的视频数据获取请求,然后接收到相应的视频数据;客户端在根据存储地址模板生成视频数据获取请求时,可以根据媒体呈现描述中包括的信息构造视频数据获取请求,也可以根据客户端的信息构造视频数据获取请求,还可以根据传输网络的信息构造视频获取请求;视频数据获取请求可以是一个基于HTTP的获取请求。

客户端402可以向服务器401请求视频数据;也可以是服务器401或采集设备400将视频数据发送到其它服务器或存储设备上,客户端402向相应的服务器或存储设备请求视频数据。

在一种可能的实现方式中,本发明实施例所述的得到所述视频数据的倾斜信息,可以包括如下的几种实现方式:

1、所述视频数据的倾斜信息和所述视频数据封装在同一个码流中,此时可以通过视频数据的码流得到视频数据的倾斜信息。

在一种实现方式中,倾斜信息可以封装在码流的参数集中,例如封装在在视频参数集(video_parameter_set,VPS),序列参数集(sequence_parameter_set,SPS)或者图像参数集(picture_parameter_set,PPS)中或者新扩展出VR相关的参数集中。

在一个示例中,在PPS中描述倾斜信息如下:

在一种可能的方式中,将倾斜信息封装在SEI(Supplemental enhancement information)中。

上述语法中的position表示一个具体取值,比如190,用以表示SEI的类型值为190的话,SEI NALU(Network Abstract Layer Unit,网络适配层单元)中的数据是倾斜信息。数字190只是个具体的示例,不代表对本发明实施例的具体限制。

position_payload(payloadSize)的描述方法:

一种可能的方式中,该数据除了由传感器获得,或者通过传感器数据插值获得,还可以由编码器在做球面运动估计时获得,可以认为是球面帧和参考球面帧的全局旋转信息,该旋转信息可以是倾斜的绝对值(球面帧在采集时的倾斜信息),也可以是相对值(VR视频中当前球面帧相对于参考球面帧的旋转信息),还可以是相对值变化的值,具体不做限定;球面运动估计时可以采用球面图像,也可以采用球面映射后的2D图像,具体不做限定;解码器在获得该信息后,需要采用该值在参考帧中找到参考数据的位置,从未完成视频数据的正确解码。

在一种可能的方式中,所述码流中还包括倾斜信息标识,所述倾斜信息标识用于表示码流中是否存在倾斜信息。例如倾斜信息标识是一个flag,当flag值为1时表示码流中存在倾斜信息;当flag值为0时表示码流中不存在倾斜信息。

在一种可能的方式中,上述的flag也可以描述在视频参数集VPS,SPS或者PPS中,具体语法如下,如果position_extension_flag=1,表示在每一帧的码流数据中包含有当前帧的倾斜数据。

2、所述视频数据的倾斜信息封装在独立于所述视频数据的轨迹(track)中;

此时客户端需要通过传输倾斜信息的track或者发送倾斜信息获取请求得到视频数据的倾斜信息。在一种实现方式中,媒体呈现描述包括了倾斜信息的索引信息,客户端可以采用与上述得到视频数据类似的方式得到视频数据的倾斜信息。在一种实现方式中,倾斜信息的索引信息也可以通过独立于媒体呈现描述的文件发送到客户端。

在一种示例中,倾斜信息的描述如下:

在一种可能的实现方式中,倾斜信息还包括:

客户端获取到倾斜数据的track中的描述信息,该描述信息中描述了本track中的倾斜数据的最大倾斜情况,客户端可以根据该最大倾斜情况预先申请出图像处理的最大计算空间;以防在图像处理过程中因为倾斜数据的变化导致内存空间重申请。

在一种可能的实现方式中,媒体呈现描述包括倾斜信息的元数据,客户端可以根据该元数据得到视频数据的倾斜信息。

在一种基于DASH标准的示例中,在MPD中增加的倾斜信息的元数据描述如下:

或者在MPD中描述倾斜信息

比如在period层或者adaptation set层增加倾斜信息,具体样例如下:

在adaptation set层增加倾斜信息,表示adaptation set下的视频流内容的倾斜情况。

在period层增加倾斜信息,表示period下的视频流内容的倾斜情况:

客户端可以通过解析MPD获得倾斜数据表达的元数据,构造倾斜数据获取的URL,获取倾斜数据。可以理解的是,上述示例只是为了帮助本发明技术方案的一种举例,倾斜信息的元数据也可以在表示中或MPD描述子中描述。

3、所述视频数据的倾斜信息封装在所述视频数据的轨迹(track)中。

此时可以通过传输视频数据的track得到视频数据的倾斜信息。

在一个示例中,倾斜信息可以封装在视频数据的元数据中。

在一种可能的实现方式中,所述倾斜信息可以封装在媒体呈现描述中。此时客户端可以通过视频数据的元数据得到倾斜信息。例如可以通过解析媒体呈现描述得到视频数据的倾斜信息。

在一个示例中,描述了将倾斜信息携带在视频track中的样例,在本实施例中,描述倾斜信息的box为Positioninfomationbox;

或者:

在一个实现方式中,倾斜信息描述在视频track的元数据中。客户端行为如下:

1、客户端获得视频track后,先解析该track的元数据,在元数据解析过程中会解析到psib box(即上述示例中的Positioninfomationbox);

2、客户端可以从psib box中获得一个视频图像对应的倾斜信息;

3、客户端根据倾斜信息,对解码后的视频图像进行角度调整或显示调整。

根据本发明实施例的视频数据的处理方法,将采集设备相关的倾斜数据作为元数据进行了封装,该元数据更加有利于客户端的VR视频呈现,客户端可以选择呈现正向的视频内容也可以选择呈现拍摄者的原始拍摄姿态下的内容,同时,还可以利用该数据客户端还可以计算出视频采集的镜头中心区域在图像中的位置,从而客户端可以根据视频内容距离中心位置不同,视频内容的形变和分辨率也不同的原理,来选择观看视频的空间区域。

下面结合附图5描述本发明实施例的一种基于流媒体技术的视频数据的处理装置500,所述装置500包括:接收器501,接收器501用于得到媒体呈现描述,所述媒体呈现描述包括视频数据的索引信息;接收器501还用于根据所述视频数据的索引信息得到视频数据;接收器501还用于得到所述视频数据的倾斜信息;处理器502,所述处理器用于根据所述视频数据的倾斜信息呈现所述视频数据。

在一种可能的实现方式中,所述视频数据的倾斜信息包括下列信息中的至少之一:

偏航角信息,俯仰角信息,滚动角信息或倾斜处理方式信息。

在一种可能的实现方式中,所述视频数据的倾斜信息封装在所述视频数据的元数据中。

在一种可能的实现方式中,所述视频数据的倾斜信息和所述视频数据封装在同一个码流中。

在一种可能的实现方式中,所述码流中还包括倾斜信息标识,所述倾斜信息标识用于表示码流中是否存在倾斜信息。

在一种可能的实现方式中,所述视频数据的倾斜信息封装在独立于所述视频数据的轨迹(track)中;

或者

所述视频数据的倾斜信息封装在独立于所述视频数据的文件中。

在一种可能的实现方式中,所述视频数据的倾斜信息封装在所述视频数据的轨迹(track)中。

可以理解的是,本发明装置实施例的具体实现方式以及有关特征的示例,可以采用上述方法实施例对应的实现方式,在此不再赘述。

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

上述装置和系统内的各模块之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。

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

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