全景视频的编解码方法和装置与流程

文档序号:11157561阅读:1071来源:国知局
全景视频的编解码方法和装置与制造工艺

本发明实施例涉及视频编码技术,尤其涉及一种全景视频的编解码方法和装置。



背景技术:

视频的编解码技术被广泛的应用于对电影视频、摄像机视频等多媒体数据的压缩。随着虚拟现实技术的普及,传统的视频形态已经不仅仅局限于单路的视频电影,单路摄像机拍摄的影像,而由多路摄像机同时拍摄并拼接合成的全景视频,已经成为一种新的视频形式。

现有技术中,对全景视频进行编码,都是采用H264\H265等主流的编码技术,将全景视频视为一路视频媒体,采用与单路摄像机拍摄的视频一样的编码方案进行编码。由于全景视频通常是由多路摄像机视频拼接而成,数据量巨大,在编码时直接将全景视频帧进行编码,以支持用户通过转动VR(Virtual Reality,虚拟现实)头盔,观看到水平360度、垂直360度的全方位视频内容,导致编码后的视频码率很大,远远大于单路视频的码率。大码率输出,给网络带宽带来了巨大的压力,导致高清全景视频的网络传输无法实时或无法完成,直接影响全景视频的直播应用。



技术实现要素:

有鉴于此,本发明实施例提供一种全景视频的编解码方法和装置,以减少网络带宽的压力,解决全景直播视频无法实时传输的问题。

第一方面,本发明实施例提供了一种全景视频的编码方法,所述方法包括:

编码端获取全景视频帧的各分块编码数据,其中,所述全景视频帧按照在播放端的播放位置进行分块,每个分块编码数据的码率根据该分块的播放位置与播放端当前视点位置的相对位置关系确定;

所述编码端将所述全景视频帧发送至播放端,以指示播放端进行解码播放。

第二方面,本发明实施例还提供了一种全景视频的编码装置,所述装置包括:

分块数据获取模块,配置于编码端中,用于获取全景视频帧的各分块编码数据,其中,所述全景视频帧按照在播放端的播放位置进行分块,每个分块编码数据的码率根据该分块的播放位置与播放端当前视点位置的相对位置关系确定;

视频帧发送模块,配置于所述编码端中,用于将所述全景视频帧发送至播放端,以指示播放端进行解码播放。

第三方面,本发明实施例还提供了一种全景视频的解码方法,所述方法包括:

播放端获取用户在全景视频显示屏中的当前视点位置,并发送给编码端,以指示编码端采用所述当前视点位置确定的分块码率对全景视频帧进行编码;

所述播放端接收编码端发送的编码后的全景视频帧;

所述播放端对所述全景视频帧进行解封装,得到分块编码数据及该分块编码数据在全景视频帧中的位置;

所述播放端对全景视频帧的各分块编码数据进行解码;

所述播放端播放解码后的全景视频帧。

第四方面,本发明实施例还提供了一种全景视频的解码装置,所述装置包括:

视点位置获取模块,配置于播放端中,用于获取用户在全景视频显示屏中的当前视点位置,并发送给编码端,以指示编码端采用所述当前视点位置确定的分块码率对全景视频帧进行编码;

视频帧接收模块,配置于所述播放端中,用于接收编码端发送的编码后的全景视频帧;

解封装模块,配置于所述播放端中,用于对所述全景视频帧进行解封装,得到分块编码数据及该分块编码数据在全景视频帧中的位置;

解码模块,配置于所述播放端中,用于对全景视频帧的各分块编码数据进行解码;

播放模块,配置于所述播放端中,用于播放解码后的全景视频帧。

本发明实施例的技术方案,通过全景视频帧案子在播放端的播放位置进行分块,每个分块编码数据的码率根据该分块的播放位置与播放端当前视点位置的相对位置关系确定,使得距离当前视点位置较近的分块的码率较高,距离当前视点位置较远的分块的码率较低,从而全景视频帧中的分块编码数据采用不同的码率,不再统一维持相同的高码率,大大降低了编码后的视频码率,减少了网络带宽的压力,而且由于根据当前视点位置确定各分块的码率,可以保证人眼始终能获得高清视频质量的观看效果,解决了全景直播视频无法实时传输的问题,使得全景直播视频可以实时传输。

附图说明

图1是本发明实施例一提供的一种全景视频的编码方法的流程图;

图2是本发明实施例二提供的一种全景视频的编码方法的流程图;

图3是本发明实施例提供的全景视频的编码方法中的一个全景视频帧的分块示例图;

图4是本发明实施例提供的全景视频的编码方法中的当前视点位置落在其中一个分块中的示意图;

图5a-图5d是本发明实施例提供的全景视频的编码方法中的四种区域划分方式的示意图;

图6是本发明实施例三提供的一种全景视频的编码方法的流程图;

图7是本发明实施例四提供的一种全景视频的编码装置的结构示意图;

图8是本发明实施例五提供的一种全景视频的解码方法的流程图;

图9是本发明实施例六提供的一种全景视频的解码装置的结构示意图。

具体实施方式

下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部内容。

实施例一

图1是本发明实施例一提供的一种全景视频的编码方法的流程图,本实施例可适用于根据播放端中当前视点位置而对全景视频帧中的分块采用不同的码率进行编码的情况,该方法可以由全景视频的编码装置来执行,该全景视频的编码装置配置于编码端中,该方法具体包括如下步骤:

步骤110,编码端获取全景视频帧的各分块编码数据,其中,所述全景视频帧按照在播放端的播放位置进行分块,每个分块编码数据的码率根据该分块的播放位置与播放端当前视点位置的相对位置关系确定。

其中,全景视频与普通的单路视频不同,全景视频是由多路摄像机同时拍摄并拼接合成的能覆盖水平360度、垂直180度视角的大场景视频,视频播放时,需要通过投影算法,将360度×180度的全景视频,投影到以用户为中心的球的内壁上,用户可通过VR头盔等播放设备,进行观看,获得身临其境的沉浸感,然而,每个观看视点的范围始终还是人眼的有效视角范围,其它角度的解码视频信息属于闲置信息。

本实施例中,编码端可以是推流端,也可以是云平台端。当编码端是推流端时,推流端获取到全景视频帧后,对该全景视频帧进行分块,并根据每个分块的播放位置与播放端当前视点位置的相对位置关系,确定各分块的编码码率,并依据相应的码率对各分块进行编码,得到分块编码数据。当编码端是云平台端时,从推流端中获取不同码率编码后的分块编码数据形成的全景视频帧,并根据每个分块的播放位置与播放端当前视点位置的相对位置关系确定每个分块编码数据的码率,将根据不同码率编码得到的分块编码数据封装为全景视频帧。

其中,距离当前视点位置较近的分块采用的码率较高,距离当前视点位置较远的分块采用的码率较低,以保证在观看用户的视野范围内能够观看到清晰的影像。当前视点位置是播放端采用陀螺仪等获取到,并发送给编码端的。

在对每个分块进行编码时,可以采用视频编解码技术标准,如H264、H265、AVS等,在编码实施过程中,都是基于宏块对视频序列分块进行帧内和帧间编码的编码方式,去除信息冗余。首先将各分块的图像分成16×16或64×64的像素块,作为编码处理的基本单元,然后通过运动估计和变换编码,消除时间和空间冗余,达到压缩视频信息的目的。

步骤120,所述编码端将所述全景视频帧发送至播放端,以指示播放端进行解码播放。

编码端将由不同码率编码得到的分块编码数据组成的全景视频帧发送至播放端,使得播放端在接收到全景视频帧时进行解码播放。

本实施例的技术方案,通过全景视频帧案子在播放端的播放位置进行分块,每个分块编码数据的码率根据该分块的播放位置与播放端当前视点位置的相对位置关系确定,使得距离当前视点位置较近的分块的码率较高,距离当前视点位置较远的分块的码率较低,从而全景视频帧中的分块编码数据采用不同的码率,不再统一维持相同的高码率,大大降低了编码后的视频码率,减少了网络带宽的压力,而且由于根据当前视点位置确定各分块的码率,可以保证人眼始终能获得高清视频质量的观看效果,解决了全景直播视频无法实时传输的问题,使得全景直播视频可以实时传输。

实施例二

图2是本发明实施例二提供的一种全景视频的编码方法的流程图,本实施例在实施例一的基础上进行了优化,将编码端获取全景视频帧的各分块编码数据进一步优化为:推流端按照全景视频帧在播放端的播放位置进行分块,得到分块视频数据;所述推流端从至少两个码率中顺序选择一个码率,作为当前码率,并采用当前码率对所有分块视频数据进行编码;所述推流端按照码率,将所有编码后的分块视频数据进行分类并封装,发送给云平台端;所述云平台端作为所述编码端,获取根据播放端的当前视点位置以及各分块的播放位置确定的各分块的码率;所述云平台端根据各分块的码率,从各码率对应的封装包中查找对应的分块;所述云平台端按照分块的播放位置,将查找到的分块拼合成为编码后的全景视频帧。该方法具体包括如下步骤:

步骤210,推流端按照全景视频帧在播放端的播放位置进行分块,得到分块视频数据。

推流端获取全景视频帧,并对全景视频帧进行分块,便于后续的编码处理,可以按照全景视频帧在播放端的播放位置进行分块,如可以分为16×16或64×64的分块,当然,还可以按照全景视频帧在播放端的播放位置分为其他的分块。

其中,推流端按照全景视频帧在播放端的播放位置进行分块,得到分块视频数据优选包括:

所述推流端依据人眼生理特点,对所述全景视频帧进行分块。

根据人眼立体视觉透射原理及人眼生理特点,人两眼重合视域有124度,也就是说在人眼观看到的范围内,只有这124度视角内的物体才有立体感,但这个角度太大,通常人视觉在10度是敏感区,10~20度可以正确识别信息,20~30度对动态东西比较敏感,因此,可以依据该特点,对全景视频帧进行分块,且获得较好的立体感。

其中,所述推流端依据人眼生理特点,对所述全景视频帧进行分块优选包括:

所述推流端依据人眼生理特点,将所述全景视频帧分为水平方向为10块、垂直方向为9块的分块。

当图像的垂直方向视角为20度,水平方向的视角为36度时,就会有非常好的视觉临场感,而且也不会因为频繁转动眼球造成疲倦。基于人眼的这些特点,将全景视频按照空间视角进行分块,在水平方向,水平360度视角区域可分成10个块,每个分块水平方向覆盖视角为36度,在垂直方向,垂直180度视角分成9个块,每个块垂直方向覆盖的视角为20度,最后得到的各个分块覆盖36度×20度视角,共形成90个分块,如图3所示,图3是本发明实施例提供的全景视频的编码方法中的一个全景视频帧的分块示例图。

步骤220,所述推流端从至少两个码率中顺序选择一个码率,作为当前码率,并采用当前码率对所有分块视频数据进行编码。

其中,至少两个码率可以是预先设置的码率,也可以是接收的用户配置的码率,还可以是根据预先设置的一个码率或者用户配置的一个码率计算得到其他码率。在根据一个码率计算得到其他码率时,假设该码率为n,则以码率n为基础,对全帧图像即全景视频帧的编码可以采用多种档次的码率规格,这里以采用三种档次的码率规格为例,分别记为R1,R2,R3,其中R1=n,R2=R1/2,R3=R2/2,1<n<30,相应的,各分块的码率分别R1f=R1/N,R2f=R2/N,R3f=R3/N,其中,N是全景视频帧中分块的总数量。

所述至少两个码率以从高到低的顺序进行了排序,推流端首先选择码率最高的码率作为当前码率,并采用当前码率对全景视频帧中的所有分块视频数据进行编码;然后再依次采用低一级的码率作为当前码率,对所有分块视频数据进行编码。

步骤230,所述推流端按照码率,将所有编码后的分块视频数据进行分类并封装,发送给云平台端。

推流端将按照同一码率编码的分块视频数据分为一类,并将按照相同码率编码后的分块视频数据按照该分块在全景视频帧中的位置进行封装,并发送给云平台端。在进行封装时,将各个分块按照分块的播放位置从左到右、从上到下的顺序封装在一起。其中,在将封装包发送给云平台端时可以采用RTMP(Real Time Messaging Protocol,实时消息传输协议)进行推流。

步骤240,所述云平台端作为所述编码端,获取根据播放端的当前视点位置以及各分块的播放位置确定的各分块的码率。

所述云平台端可以由多个服务器组成,以能够处理大的数据量。所述云平台端作为所述编码端,获取播放端反馈的当前视点位置,并根据各分块的播放位置与当前视点位置的相对位置关系确定各分块的码率,使得播放位置距离当前视点位置较近的分块的码率较高,播放位置距离当前视点位置较远的分块的码率较低。

其中,所述编码端获取根据播放端的当前视点位置以及各分块的播放位置确定的各分块的码率可选包括:

所述编码端从播放端获取当前视点位置;

所述编码端根据所述当前视点位置,确定分块的类型为递进区域或闲置区域,其中,所述当前视点位置在所述递进区域中,所述闲置区域在所述递进区域的外围;

所述编码端根据分块的类型确定各分块的码率,其中,所述递进区域的分块对应的码率大于所述闲置区域的分块对应的码率。

所述云平台端作为所述编码端。所述编码端从播放端获取当前视点位置,根据当前视点位置,确定观看视频的递进区域和闲置区域,不同区域应用不同码率的编码数据,合成用户观看视频帧压缩码流,当用户观看视点发生变化时,实时地根据当前视点位置调整递进区域和闲置区域,重新构造视频帧。在确定递进区域和闲置区域后,根据每个分块在全景视频帧中的播放位置,确定每个分块的类型为递进区域或者闲置区域。并根据递进区域和闲置区域对应的码率,确定各分块的码率。由于当前视点位置在所述递进区域中,闲置区域在所述递进区域的外围,而且递进区域的分块对应的码率大于闲置区域的分块对应的码率,使得用户可以清楚地观看到眼前清晰的影像,后面看不到的影像可以相对模糊,从而大大降低了码率。

其中,所述递进区域可以包括核心区、辅助区和扩充区,所述当前视点位置在所述核心区中,所述辅助区在所述核心区的外围,所述扩充区在所述辅助区的外围,所述闲置区域在所述扩充区的外围。

在所述全景视频帧分为水平方向为10块、垂直方向为9块的分块中,递进区域可以为水平方向为5块、垂直方向为5块,从而构建水平方向180度视野、垂直方向100度视野,构建180×100度的视场,即该视场由核心区、辅助区和扩充区组成,不同区域采用不同的码率进行编码,当观看视点发生变化时,通过播放端实时反馈的当前视点位置,相应的对核心区、辅助区、扩充区和闲置区域进行同步更新,使得人眼始终能获得高清视频质量的观看效果。

图4是本发明实施例提供的全景视频的编码方法中的当前视点位置落在其中一个分块中的示意图,如图4所示,当前视点位置1落在某个分块中时,可以根据当前视点位置与该分块的关系,对应四种区域划分方式,即,当前视点位置在该分块的中心的左上方、左下方、右上方、右下方,分别对应图5a-图5d所示的四种区域划分方式,当前视点位置在该分块的中心的左上方时,对应图5a的区域划分方式;当前视点位置在该分块的中心的左下方时,对应图5b的区域划分方式;视点位置在该分块的中心的右上方时,对应图5c的区域划分方式;视点位置在该分块的中心的右下方时,对应图5d的区域划分方式,在图5a-图5d中,10是核心区,20是辅助区,30是扩充区,40是闲置区域。在上述三种档次的码率规格中,核心区的分块采用的码率为R1f=R1/N,辅助区的分块采用的码率为R2f=R2/N,扩充区的分块采用的码率为R3f=R3/N,闲置区域的分块采用的码率为0,这里,N为90。因为闲置区域在用户的视野范围之外,所以不显示影像也不影响用户的观看,而且在检测到用户的当前视点位置发生变化时,可以实时更新显示的区域。通过这样递减的码率,大大降低了传输的码率,减少了网络带宽的压力。

步骤250,所述云平台端根据各分块的码率,从各码率对应的封装包中查找对应的分块。

所述云平台端对各码率对应的封装包分别进行解封装,并根据确定的各分块的码率,从各码率对应的封装包中查找对应的分块。

步骤260,所述云平台端按照分块的播放位置,将查找到的分块拼合成为编码后的全景视频帧。

所述云平台端按照各分块在全景视频帧中的播放位置,将查找到的分块拼合成为编码后的全景视频帧并封装。

步骤270,所述编码端将所述全景视频帧发送至播放端,以指示播放端进行解码播放。

本实施例的技术方案,通过推流端对全景视频帧进行分块,并按照不同的码率分别对全景视频帧的各分块视频数据进行编码,将相同码率编码的分块视频数据封装在一起并发送给云平台端,由云平台端根据播放端的当前视点位置以及各分块的播放位置确定各分块的码率,并从各码率对应的封装包中提取对应的分块,并进行码流重构即拼合成为编码后的全景视频帧,从而全景视频帧中的分块编码数据采用不同的码率,不再统一维持相同的高码率,大大降低了编码后的视频码率,减少了网络带宽的压力,而且由于根据当前视点位置确定各分块的码率,可以保证人眼始终能获得高清视频质量的观看效果,避免了全景视频直播过程中由于网络带宽不足造成的视频缓冲,解决了全景直播视频无法实时传输的问题,使得全景直播视频可以实时传输,提升了高清全景视频直播的体验效果,而且通过推流端和云平台端来协同处理,可以大大提高处理的速率。

实施例三

图6是本发明实施例三提供的一种全景视频的编码方法的流程图,本实施例在实施例一的基础上进行了优化,将编码端获取全景视频帧的各分块编码数据进一步优化为:所述编码端按照全景视频帧在播放端的播放位置进行分块,得到分块视频数据;所述编码端获取根据播放端的当前视点位置以及各分块的播放位置确定的各分块的码率;所述编码端根据各分块的码率对分块视频数据进行编码,以形成编码后的全景视频帧。该方法具体包括如下步骤:

步骤310,所述编码端按照全景视频帧在播放端的播放位置进行分块,得到分块视频数据。

所述编码端按照全景视频帧在播放端的播放位置进行分块,得到分块视频数据,如可以分为16×16或64×64的分块,当然,还可以按照全景视频帧在播放端的播放位置分为其他的分块。

其中,编码端按照全景视频帧在播放端的播放位置进行分块,得到分块视频数据优选包括:

所述编码端依据人眼生理特点,对所述全景视频帧进行分块。

其中,所述编码端依据人眼生理特点,对所述全景视频帧进行分块优选包括:

所述编码端依据人眼生理特点,将所述全景视频帧分为水平方向为10块、垂直方向为9块的分块。

步骤320,所述编码端获取根据播放端的当前视点位置以及各分块的播放位置确定的各分块的码率。

编码端获取播放端反馈的当前视点位置,并根据各分块的播放位置与当前视点位置的相对位置关系确定各分块的码率,使得播放位置距离当前视点位置较近的分块的码率较高,播放位置距离当前视点位置较远的分块的码率较低。

其中,所述编码端获取根据播放端的当前视点位置以及各分块的播放位置确定的各分块的码率可选包括:

所述编码端从播放端获取当前视点位置;

所述编码端根据所述当前视点位置,确定分块的类型为递进区域或闲置区域,其中,所述当前视点位置在所述递进区域中,所述闲置区域在所述递进区域的外围;

所述编码端根据分块的类型确定各分块的码率,其中,所述递进区域的分块对应的码率大于所述闲置区域的分块对应的码率。

编码端确定各分块的码率的方式与实施例二中的方式相同,这里不再赘述。

步骤330,所述编码端根据各分块的码率对分块视频数据进行编码,以形成编码后的全景视频帧。

编码端根据确定的每个分块的码率分别对该分块对应的分块视频数据进行编码,并按照分块视频数据在全景视频帧中的播放位置进行封装,形成编码后的全景视频帧。

步骤340,所述编码端将所述全景视频帧发送至播放端,以指示播放端进行解码播放。

本实施例的技术方案,通过编码端按照全景视频帧在播放端的播放位置进行分块,获取根据播放端的当前视点位置以及各分块的播放位置确定的各分块的码率,根据各分块的码率对相应的分块视频数据进行编码,形成编码后的全景视频帧,以使得距离当前视点位置较近的分块的码率较高,距离当前视点位置较远的分块的码率较低,从而大大降低了码率,且不影响用户的观看质量,减少了网络带宽的压力,解决了全景直播视频无法实时传输的问题,使得全景直播视频可以实时传输。

实施例四

图7是本发明实施例四提供的一种全景视频的编码装置的结构示意图,如图7所示,本实施例所述的全景视频的编码装置包括:分块数据获取模块410和视频帧发送模块420。

其中,分块数据获取模块410,配置于编码端中,用于获取全景视频帧的各分块编码数据,其中,所述全景视频帧按照在播放端的播放位置进行分块,每个分块编码数据的码率根据该分块的播放位置与播放端当前视点位置的相对位置关系确定;

视频帧发送模块420,配置于所述编码端中,用于将所述全景视频帧发送至播放端,以指示播放端进行解码播放。

可选的,所述分块数据获取模块包括:

第一视频帧分块单元,配置于推流端中,用于按照全景视频帧在播放端的播放位置进行分块,得到分块视频数据;

视频帧编码单元,配置于所述推流端中,用于从至少两个码率中顺序选择一个码率,作为当前码率,并采用当前码率对所有分块视频数据进行编码;

视频帧发送单元,配置于所述推流端中,用于按照码率,将所有编码后的分块视频数据进行分类并封装,发送给云平台端;

第一分块码率获取单元,配置于所述云平台端中,所述云平台端作为所述编码端,用于获取根据播放端的当前视点位置以及各分块的播放位置确定的各分块的码率;

分块查找单元,配置于所述云平台端中,用于根据各分块的码率,从各码率对应的封装包中查找对应的分块;

码流重构单元,配置于所述云平台端中,用于按照分块的播放位置,将查找到的分块拼合成为编码后的全景视频帧。

可选的,所述分块数据获取模块包括:

第二视频帧分块单元,配置于所述编码端中,用于按照全景视频帧在播放端的播放位置进行分块,得到分块视频数据;

第二分块码率获取单元,配置于所述编码端中,用于获取根据播放端的当前视点位置以及各分块的播放位置确定的各分块的码率;

分块编码单元,用于所述编码端根据各分块的码率对分块视频数据进行编码,以形成编码后的全景视频帧。

可选的,所述第一分块码率获取单元或所述第二分块码率获取单元具体用于:

从播放端获取当前视点位置;

根据所述当前视点位置,确定分块的类型为递进区域或闲置区域,其中,所述当前视点位置在所述递进区域中,所述闲置区域在所述递进区域的外围;

根据分块的类型确定各分块的码率,其中,所述递进区域的分块对应的码率大于所述闲置区域的分块对应的码率。

可选的,第一视频帧分块单元或第二视频帧分块单元包括:

分块子单元,配置于推流端或编码端中,用于依据人眼生理特点,对所述全景视频帧进行分块。

可选的,所述分块子单元具体用于:

依据人眼生理特点,将所述全景视频帧分为水平方向为10块、垂直方向为9块的分块。

上述全景视频的编码装置可执行本发明任意实施例所提供的全景视频的编码方法,具备执行方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本发明任意实施例提供的全景视频的编码方法。

实施例五

图8是本发明实施例五提供的一种全景视频的解码方法的流程图,本实施例可适用于对根据当前视点位置而对全景视频帧中的分块采用的不同码率编码进行解码的情况,该方法可以由全景视频的解码装置来执行,该全景视频的解码装置配置于播放端(如VR头盔等)中,该方法具体包括如下步骤:

步骤510,播放端获取用户在全景视频显示屏中的当前视点位置,并发送给编码端,以指示编码端采用所述当前视点位置确定的分块码率对全景视频帧进行编码。

播放端通过陀螺仪实时获取位置信息,并根据位置信息,获得用户在全景视频显示屏中的当前视点位置,并发送给编码端,以指示编码端采用所述当前视点位置确定的分块码率对全景视频帧进行编码。当用户转头、走动等引起位置发生变化时,相应的当前视点位置将触发编码端实时更新各分块的码率并重构码流进行视频传输分发。其中,所述编码端为云平台端和/或推流端,即所述编码端可以为云平台端或推流端,也可以是云平台端和推流端共同作为编码端。

其中,播放端获取用户在全景视频显示屏中的当前视点位置,并发送给编码端可选包括:

所述播放端根据所述当前视点位置,确定分块的类型为递进区域或闲置区域,其中,所述当前视点位置在所述递进区域中,所述闲置区域在所述递进区域的外围;

所述播放端将所述分块的类型和/或各类型对应的分块码率,发送给所述编码端。

播放端也可以根据当前视点位置确定全景显示屏中的递进区域和闲置区域,从而确定各分块的类型为递进区域或闲置区域,从而将分块的类型发送给编码端,或者将各类型对应的分块码率发送给编码端,或者同时将分块的类型和各类型对应的分块码率发送给编码端。

步骤520,所述播放端接收编码端发送的编码后的全景视频帧。

播放端按YV21的格式在视频流中取出全景视频帧。

步骤530,所述播放端对所述全景视频帧进行解封装,得到分块编码数据及该分块编码数据在全景视频帧中的位置。

播放端提取各分块的信息,解封装所述全景视频帧,得到各分块的压缩信息,即分块编码数据及该分块编码数据在全景视频帧中的位置。

步骤540,所述播放端对全景视频帧的各分块编码数据进行解码。

根据各分块编码采用的标准,对各分块进行视频解码,比如h264\h265等的解码。

在解码之后,还可以包括:对解码的分块编码数据进行分块融合。

在分块边缘处,以边界为中心,各分块两边选取2~20个像素点为处理区域(如选取10个像素点为处理区域),采用8邻域中值滤波的方式,融合分块边缘数据,使得显示的视频在分块边缘处较为平滑。

步骤550,所述播放端播放解码后的全景视频帧。

播放端将解码后的全景视频帧采用常规方法,投影到球面上进行双屏输出,用户通过VR头盔等可以观看到该全景视频。

本实施例的技术方案,通过播放端获取用户在全景视频显示屏中的当前视点位置,并发送给编码端,以指示编码端采用所述当前视点位置确定的分块码率对全景视频帧进行编码,接收编码端发送来的编码后的全景视频帧,对该全景视频帧进行解码播放,由于编码端传输来的全景视频帧是根据当前视点位置确定的不同的分块码率对各分块进行的编码,使得距离当前视点位置较近的分块的码率较高,距离当前视点位置较远的分块的码率较低,从而大大降低了码率,且不影响用户的观看质量,减少了网络带宽的压力,解决了全景直播视频无法实时传输的问题,使得全景直播视频可以实时传输。

实施例六

图9是本发明实施例六提供的一种全景视频的解码装置的结构示意图,如图9所示,本实施例所述的全景视频的解码装置包括:视点位置获取模块610、视频帧接收模块620、解封装模块630、解码模块640和播放模块650。

其中,视点位置获取模块610,配置于播放端中,用于获取用户在全景视频显示屏中的当前视点位置,并发送给编码端,以指示编码端采用所述当前视点位置确定的分块码率对全景视频帧进行编码;

视频帧接收模块620,配置于所述播放端中,用于接收编码端发送的编码后的全景视频帧;

解封装模块630,配置于所述播放端中,用于对所述全景视频帧进行解封装,得到分块编码数据及该分块编码数据在全景视频帧中的位置;

解码模块640,配置于所述播放端中,用于对全景视频帧的各分块编码数据进行解码;

播放模块650,配置于所述播放端中,用于播放解码后的全景视频帧。

可选的,所述视点位置获取模块包括:

分块类型确定单元,配置于所述播放端中,用于根据所述当前视点位置,确定分块的类型为递进区域或闲置区域,其中,所述当前视点位置在所述递进区域中,所述闲置区域在所述递进区域的外围;

分块码率发送单元,配置于所述播放端中,用于将所述分块的类型和/或各类型对应的分块码率,发送给所述编码端。

其中,所述编码端可选为云平台端和/或推流端。

上述全景视频的解码装置可执行本发明任意实施例所提供的全景视频的解码方法,具备执行方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本发明任意实施例提供的全景视频的解码方法。

注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

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