一种多维视频数据的编码、解码方法和装置与流程

文档序号:14253459阅读:219来源:国知局
一种多维视频数据的编码、解码方法和装置与流程

本申请涉及视频处理的技术领域,特别是涉及一种多维视频数据的编码方法、一种多维视频数据的解码方法、一种多维视频数据的编码装置和一种多维视频数据的解码装置。



背景技术:

随着互联网的普及,视频数据成为内容的主要的承载媒介。

目前,视频数据从二维视频数据向多维视频数据的方向发展,如三维(3d)视频数据等,视频数据的传输占据了网络传输大部分带宽,在给用户带来丰富体验的同时是存储和传输压力。

如果对视频数据使用高码率进行编码,保持视频数据的清晰度,会占用较多的带宽,但是,如果对视频数据使用低码率进行编码,减少带宽的占用,会导致对视频数据的清晰度下降。



技术实现要素:

鉴于上述问题,提出了本申请实施例以便提供一种克服上述问题或者至少部分地解决上述问题的一种多维视频数据的编码方法、一种多维视频数据的解码方法和相应的一种多维视频数据的编码装置、一种多维视频数据的解码装置。

为了解决上述问题,本申请实施例公开了一种多维视频数据的编码方法,包括:

在多维视频数据的传输过程中,检测当前的网络传输参数,所述多维视频数据在同一时间点具有m帧原始图像数据;

根据所述网络传输参数确定图像数量n;

按照所述图像数量n在所述m帧原始图像数据中提取n帧原始图像数据;

对所述n帧原始图像数据进行编码,获得n帧目标图像数据。

优选地,所述根据所述网络传输参数确定图像数量n的步骤包括:

采用所述网络传输参数计算有效带宽;

查询所述有效带宽所属的带宽范围;

查询所述带宽范围对应的图像数量n。

优选地,所述对所述n帧原始图像数据进行编码,获得n帧目标图像数据的步骤包括:

对前一帧的原始图像数据进行编码,获得前一帧的目标图像数据;

计算当前帧的原始图像数据与前一帧的目标图像数据之间的第一残差;

对所述第一残差进行编码,获得当前帧的目标图像数据。

优选地,一帧目标图像数据中包括x帧目标子图像数据;

所述对所述n帧原始图像数据进行编码,获得n帧目标图像数据的步骤包括:

根据所述网络传输参数确定对当前帧的原始图像数据的编码次数x;

对当前帧的原始图像数据采用第一码率进行编码,获得前一次编码的目标子图像数据;

计算当前帧的原始图像数据、与前一次编码的目标子图像数据之间的第二残差;

采用第二码率对所述第二残差进行编码,获得当前次编码的目标子图像数据,其中,所述第二码率高于所述第一码率。

优选地,所述对所述n帧原始图像数据进行编码,获得n帧目标图像数据的步骤包括:

对当前帧的原始图像数据采用第一码率进行编码,获得候选图像数据;

对所述候选图像数据映射成码表中的码字;

去除小于预设的量化系数的码字,获得目标图像数据。

优选地,在一个带宽范围内具有一个或多个子带宽范围;

所述根据所述网络传输参数确定对前一帧的原始图像数据的编码次数x的步骤包括:

采用所述网络传输参数计算有效带宽;

查询所述有效带宽在前一带宽范围中所属的子带宽范围;

查询所述子带宽范围对应的编码次数x。

优选地,还包括:

将所述n帧目标图像数据传输至客户端。

本申请实施例还公开了一种多维视频数据的解码方法,包括:

获取多维视频数据,所述多维视频数据在同一时间点具有m帧原始图像数据;

从所述多维视频数据中提取对n帧原始图像数据编码获得n帧目标图像数据;

对所述n帧目标图像数据进行解码,获得n帧原始图像数据。

优选地,还包括:

复制所述n帧原始图像数据的一帧或多帧原始图像数据,以补齐至m帧原始图像数据;

播放补齐之后的m帧原始图像数据。

优选地,所述对所述n帧目标图像数据进行解码,获得n帧原始图像数据的步骤包括:

对前一帧的目标图像数据进行解码,获得前一帧的原始图像数据;

对当前帧的目标图像数据进行解码,获得第一残差;

在前一帧的目标图像数据的基础上叠加所述第一残差,获得当前帧的原始图像数据。

优选地,一帧目标图像数据中包括x帧目标子图像数据;

所述对所述n帧目标图像数据进行解码,获得n帧原始图像数据的步骤包括:

对前一帧的目标子图像数据进行解码,获得前一次的原始图像数据;

对当前帧的目标子图像数据进行解码,获得第二残差;

在前一帧的目标子图像数据的基础上叠加所述第二残差,获得当前次的原始图像数据;

将当前次的原始图像数据替换前一次的原始图像数据。

本申请实施例还公开了一种多维视频数据的编码装置,包括:

网络检测模块,用于在多维视频数据的传输过程中,检测当前的网络传输参数,所述多维视频数据在同一时间点具有m帧原始图像数据;

图像数量确定模块,用于根据所述网络传输参数确定图像数量n;

原始图像数据提取模块,用于按照所述图像数量n在所述m帧原始图像数据中提取n帧原始图像数据;

原始图像数据编码模块,用于对所述n帧原始图像数据进行编码,获得n帧目标图像数据。

优选地,所述图像数量确定模块包括:

第一有效带宽计算子模块,用于采用所述网络传输参数计算有效带宽;

带宽范围查询子模块,用于查询所述有效带宽所属的带宽范围;

图像数量n查询子模块,用于查询所述带宽范围对应的图像数量n。

优选地,所述原始图像数据编码模块包括:

第一编码子模块,用于对前一帧的原始图像数据进行编码,获得前一帧的目标图像数据;

第一残差计算子模块,用于计算当前帧的原始图像数据与前一帧的目标图像数据之间的第一残差;

第一残差编码子模块,用于对所述第一残差进行编码,获得当前帧的目标图像数据。

优选地,一帧目标图像数据中包括x帧目标子图像数据;

所述原始图像数据编码模块包括:

编码次数确定子模块,用于根据所述网络传输参数确定对当前帧的原始图像数据的编码次数x;

第二编码子模块,用于对当前帧的原始图像数据采用第一码率进行编码,获得前一次编码的目标子图像数据;

第二残差编码子模块,用于计算当前帧的原始图像数据、与前一次编码的目标子图像数据之间的第二残差;

第二残差编码子模块,用于采用第二码率对所述第二残差进行编码,获得当前次编码的目标子图像数据,其中,所述第二码率高于所述第一码率。

优选地,所述原始图像数据编码模块包括:

第三编码子模块,用于对当前帧的原始图像数据采用第一码率进行编码,获得候选图像数据;

码字映射子模块,用于对所述候选图像数据映射成码表中的码字;

码字去除子模块,用于去除小于预设的量化系数的码字,获得目标图像数据。

优选地,在一个带宽范围内具有一个或多个子带宽范围;

所述编码次数确定子模块包括:

有效带宽计算单元,用于采用所述网络传输参数计算有效带宽;

子带宽范围查询单元,用于查询所述有效带宽在前一带宽范围中所属的子带宽范围;

编码次数查询单元,用于查询所述子带宽范围对应的编码次数x。

优选地,还包括:

目标图像数据传输模块,用于将所述n帧目标图像数据传输至客户端。

本申请实施例还公开了一种多维视频数据的解码装置,包括:

多维视频数据获取模块,用于获取多维视频数据,所述多维视频数据在同一时间点具有m帧原始图像数据;

目标图像数据提取模块,用于从所述多维视频数据中提取对n帧原始图像数据编码获得n帧目标图像数据;

目标图像数据解码模块,用于对所述n帧目标图像数据进行解码,获得n帧原始图像数据。

优选地,还包括:

原始图像数据复制模块,用于复制所述n帧原始图像数据的一帧或多帧原始图像数据,以补齐至m帧原始图像数据;

原始图像数据播放模块,用于播放补齐之后的m帧原始图像数据。

优选地,所述目标图像数据解码模块包括:

第一解码子模块,用于对前一帧的目标图像数据进行解码,获得前一帧的原始图像数据;

第二解码子模块,用于对当前帧的目标图像数据进行解码,获得第一残差;

第一残差叠加子模块,用于在前一帧的目标图像数据的基础上叠加所述第一残差,获得当前帧的原始图像数据。

优选地,一帧目标图像数据中包括x帧目标子图像数据;

所述目标图像数据解码模块包括:

第三解码子模块,用于对前一帧的目标子图像数据进行解码,获得前一次的原始图像数据;

第四解码子模块,用于对当前帧的目标子图像数据进行解码,获得第二残差;

第二残差叠加子模块,用于在前一帧的目标子图像数据的基础上叠加所述第二残差,获得当前次的原始图像数据;

原始图像数据替换子模块,用于将当前次的原始图像数据替换前一次的原始图像数据。

本申请实施例包括以下优点:

本申请实施例在多维视频数据的m帧原始图像数据中选取n帧原始图像数据进行编码,可以根据实际传输情况适度减少原始图像数据的帧数,减少了带宽的占用,此外,由于减少了带宽的占用,原始图像数据可以保持较高的码率进行编码,而无需因为带宽的限制而使用低码率进行编码,保证多维视频数据的清晰度。

附图说明

图1是本申请的一种多维视频数据的编码方法实施例的步骤流程图;

图2是本申请的一种多维视频数据的解码方法实施例的步骤流程图;

图3是本申请一个实施例的一种多维视频数据的编解码的示例图;

图4是本申请的一种多维视频数据的编码装置实施例的结构框图;

图5是本申请的一种多维视频数据的解码装置实施例的结构框图。

具体实施方式

为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请作进一步详细的说明。

参照图1,示出了本申请的一种多维视频数据的编码方法实施例的步骤流程图,具体可以包括如下步骤:

步骤101,在多维视频数据的传输过程中,检测当前的网络传输参数。

在本申请实施例中,多维视频数据可以指三维及三维以上的视频数据。

多维视频数据在同一时间点具有m帧原始图像数据,即该m帧原始图像数据可以同时播放,其中,m为大于或等于2的正整数。

例如,在三维视频数据中,在同一时间点中具有2帧原始图像数据,假设使用左右格式存储,则2帧原始图像数据分别为left(左)帧图像数据和right(右)帧图像数据,在播放时,光线透过终端的光学系统的凸状透镜使影像因折射产生类似远方效果,利用此效果将近处物体放大至远处观赏而达到所谓的全像视觉(hologram),左右眼屏幕分别显示left(左)帧图像数据和right(右)帧图像数据,由于左右眼屏幕显示有差异,人眼获取这种带有差异的信息后在脑海中产生立体感。

在终端中,可以向相连的服务器发送视频播放请求,请求播放某个多维视频数据。

在服务器中,存储有多维视频数据,如果接收到终端发送的视频播放请求,则可以依据该视频播放请求查找到相应的多维视频数据,将该多维视频数据的url(uniformresourcelocator,统一资源定位符)发送至该终端,该终端依据该url下载多维视频数据。

在多维视频数据的传输过程中,服务器可以检测当前的网络传输参数,如实际带宽(即实际的带宽量)、延时、丢包率等等,以便动态地调整编码、适应当前的网络。

步骤102,根据所述网络传输参数确定图像数量n。

应用本申请实施例,可以预先将有效带宽(即有效可用的带宽量)划分为多个范围,获得带宽范围,每个带宽范围可以设置适合在该网络情况传输的图像数据n,其中,n为小于或等于m的正整数。

在具体实现中,可以采用网络传输参数计算有效带宽,查询有效带宽所属的带宽范围,从而查询带宽范围对应的图像数量n。

一般情况下,有效带宽与图像数量n正相关,即如果有效带宽越多,图像数量n越大,使得可以传输更多的内容,保证多维视频数据的完整性,反之,如果有效带宽越少,图像数量n越小,通过减少传输的内容,提高传输的效率。

步骤103,按照所述图像数量n在所述m帧原始图像数据中提取n帧原始图像数据。

在本申请实施例中,可以在m帧原始图像数据中,按照顺序或者随机等方式提取n帧原始图像数据,以对该n帧原始图像数据进行编码。

此外,除该该取n帧原始图像数据之外的原始图像数据,在当前的网络情况下不进行编码,也不发送至客户端。

步骤104,对所述n帧原始图像数据进行编码,获得n帧目标图像数据。

在具体实现中,对于每一帧原始图像数据,可以进行一层编码,即在多维视频数据,进行多层编码。

在本申请的一个实施例中,步骤104可以包括如下子步骤:

子步骤s11,对前一帧的原始图像数据进行编码,获得前一帧的目标图像数据;

子步骤s12,计算当前帧的原始图像数据与前一帧的目标图像数据之间的第一残差;

子步骤s13,对所述第一残差进行编码,获得当前帧的目标图像数据。

如果n=1,则本申请实施例在编码时可以执行子步骤s11,而不执行子步骤s12和子步骤s13。

如果n>1,本申请实施例可以循环执行子步骤s11、子步骤s12和子步骤s13,直至对n层原始图像数据编码完毕,即当前层与上一层是相对而言的。

对于第一层的原始图像数据,可以直接采用mpeg-2、mpeg-4simpleprofile、h.264/avc、avs、vc-1等编码方式对第一帧的原始图像数据进行编码获得第一帧的目标图像数据。

对于第二层及以上的原始图像数据,可以对当前层的原始图像数据与上一层的目标图像数据之间的残差(residual,图像数据的预测值与实际值之间的差值),采用mpeg-2、mpeg-4simpleprofile、h.264/avc、avs、vc-1等编码方式进行编码。

进一步而言,若当前层的原始图像数据为第三层及以后的原始图像数据,子步骤s11中所指的编码,可以指对以上一层原始图像数据作为当前层时执行子步骤s12和子步骤s13中的编码。

假设n为3,在第一层编码中,直接对第一层的原始图像数据进行编码,获得第一层的目标图像数据。

在第二层编码中,计算第二层的原始图像数据与第一层的目标图像数据之间的残差,对该残差进行编码,获得第二层的目标图像数据。

在此层中,可以视为通过子步骤s11对第一层的原始图像数据进行编码,可以视为通过子步骤s12和子步骤s13对第二层的原始数据进行编码。

在第三层编码中,计算第三层的原始图像数据与第二层的目标图像数据之间的残差,对该残差进行编码,获得第三层的目标图像数据。

在此层中,可以视为通过子步骤s11(即第二层编码时执行的子步骤s12和子步骤s13)对第二层的原始图像数据进行编码,可以视为通过子步骤s12和子步骤s13对第三层的原始图像数据进行编码。

当然,除了层与层之间通过残差进行编码之外,在实施本申请实施例时,可以根据实际情况设置其他编码方式,例如,每一帧原始图像数据可以独立进行编码,获得目标图像数据,等等,本申请实施例对此不加以限制。

在本申请的另一个实施例中,一帧目标图像数据中包括x帧目标子图像数据,则步骤104可以包括如下子步骤:

子步骤s21,根据所述网络传输参数确定对当前帧的原始图像数据的编码次数x;

其中,x为大于1的正整数。

应用本申请实施例,可以预先将有效带宽划分为多个带宽范围,在一个带宽范围内具有一个或多个子带宽范围,每个字带宽范围可以设置适合在该网络情况中进行传输的编码次数x,每次编码会采用不同的码率。

在具体实现中,可以采用网络传输参数计算有效带宽,查询有效带宽在前一带宽范围中所属的子带宽范围,从而查询子带宽范围对应的编码次数x。

子步骤s22,对当前帧的原始图像数据采用第一码率进行编码,获得前一次编码的目标子图像数据;

子步骤s23,计算当前帧的原始图像数据、与前一次编码的目标子图像数据之间的第二残差;

子步骤s24,采用第二码率对所述第二残差进行编码,获得当前次编码的目标子图像数据。

其中,第二码率高于第一码率,即随着编码次数的增加,码率也相应增加,可以从低码率到高码率进行编码。

一般情况下,有效带宽与编码次数x正相关,即如果有效带宽越多,编码次数x,保证多维视频数据的清晰度,反之,如果有效带宽越少,编码次数x,进一步提高传输的效率。

在第一次编码时,直接采用mpeg-2、mpeg-4simpleprofile、h.264/avc、avs、vc-1等编码方式对原始图像数据进行编码,获得目标图像数据,或者,对当前次的原始图像数据与上一层的目标图像数据之间的残差(residual),采用mpeg-2、mpeg-4simpleprofile、h.264/avc、avs、vc-1等编码方式进行编码。

在第二次及以上次编码时,可以对当前层的原始图像数据与上一次编码的目标子图像数据之间的残差(residual),采用mpeg-2、mpeg-4simpleprofile、h.264/avc、avs、vc-1等编码方式进行编码。

需要说明的是,本申请实施例可以循环执行子步骤s22、子步骤s23和子步骤s24,直至对当前层的原始图像数据编码x次完毕。

进一步而言,若如果当前编码的次数为第三次及以后的编码,子步骤s22中所指的编码,可以指对上一次编码中子步骤s23和子步骤s24执行的编码。

在对第一层的原始图像数据进行编码时,假设x为3,在第一次编码中,直接对原始图像数据进行编码,获得第一帧的目标子图像数据。

在第二次编码中,计算原始图像数据与第一帧的目标子图像数据之间的残差,对该残差进行编码,获得第二帧的目标子图像数据。

在此次编码中,可以视为通过子步骤s22对原始图像数据进行第一次编码,可以视为通过子步骤s23和子步骤s24对原始图像数据进行第二次编码。

在第三次编码中,计算原始图像数据与第二帧的目标子图像数据之间的残差,对该残差进行编码,获得第三帧的目标子图像数据。

在此层中,可以视为通过子步骤s22(即上一次编码的子步骤s23和子步骤s24)对原始图像数据进行第二编码,可以视为通过子步骤s23和子步骤s24对原始图像数据进行第三次编码。

在本申请的另一个实施例中,步骤104进一步可以包括如下子步骤:

子步骤s31,对当前帧的原始图像数据采用第一码率进行编码,获得候选图像数据;

子步骤s32,对所述候选图像数据映射成码表中的码字;

子步骤s33,去除小于预设的量化系数的码字,获得目标图像数据。

在本申请实施例中,为了进一步压缩图像数据,对原始图像数据进行量化(quantisation)处理,尤其是在低码率编码的时候,去除小于预设的量化系数的码字。

需要说明的是,子步骤s31、子步骤s32和子步骤s33可以对单独一层的原始图像数据进行编码时执行,也可以对单独一层的原始图像进行的x次编码中的某一次编码时执行,本申请实施例对此不加以限制。

当多维视频数据的n帧原始图像数据编码完毕之后,可以将n帧目标图像数据传输至客户端。

本申请实施例在多维视频数据的m帧原始图像数据中选取n帧原始图像数据进行编码,可以根据实际传输情况适度减少原始图像数据的帧数,减少了带宽的占用,此外,由于减少了带宽的占用,原始图像数据可以保持较高的码率进行编码,而无需因为带宽的限制而使用低码率进行编码,保证多维视频数据的清晰度。

参照图2,示出了本申请的一种多维视频数据的解码方法实施例的步骤流程图,具体可以包括如下步骤:

步骤201,获取多维视频数据。

在具体实现中,本申请实施例可以应用于手机、平板、vr(virtualreality,虚拟现实)头盔、vr眼镜等可以进行多维视频数据播放的终端中。

该终端的操作系统可以包括android(安卓)、ios、windowsphone、windows等等,支持视频应用的运行,如浏览器、视频播放器,等等。

在本申请实施例中,多维视频数据可以指三维及三维以上的视频数据。

多维视频数据在同一时间点具有m帧原始图像数据,即该m帧原始图像数据可以同时播放,其中,m为大于或等于2的正整数。

例如,在三维视频数据中,在同一时间点中具有2帧原始图像数据,假设使用左右格式存储,则2帧原始图像数据分别为left(左)帧图像数据和right(右)帧图像数据,在播放时,光线透过终端的光学系统的凸状透镜使影像因折射产生类似远方效果,利用此效果将近处物体放大至远处观赏而达到所谓的全像视觉(hologram),左右眼屏幕分别显示left(左)帧图像数据和right(右)帧图像数据,由于左右眼屏幕显示有差异,人眼获取这种带有差异的信息后在脑海中产生立体感。

在终端中,可以向相连的服务器发送视频播放请求,请求播放某个多维视频数据。

在服务器中,存储有多维视频数据,如果接收到客户端发送的视频播放请求,则可以依据该视频播放请求查找到相应的多维视频数据,将该多维视频数据的url发送至该终端,该终端依据该url下载多维视频数据。

当然,除了从服务器下载多维视频数据之外,还可以通过其他方式获取多维视频数据,如从本地提取等等,本申请实施例对此不加以限制。

步骤202,从所述多维视频数据中提取对n帧原始图像数据编码获得n帧目标图像数据。

应用本申请实施例,可以预先在m帧原始图像数据中提取n帧原始图像数据,对该n帧原始图像数据进行编码,获得n帧目标图像数据。

例如,若从服务器下载多维视频数据,该服务器可以在多维视频数据的传输过程中,检测当前的网络传输参数,根据网络传输参数确定图像数量n。

步骤203,对所述n帧目标图像数据进行解码,获得n帧原始图像数据。

在具体实现中,对于每一帧目标图像数据,可以进行一层解码,即在多维视频数据,进行多层解码。

在本申请的一个实施例中,步骤203可以包括如下子步骤:

子步骤s41,对前一帧的目标图像数据进行解码,获得前一帧的原始图像数据;

子步骤s42,对当前帧的目标图像数据进行解码,获得第一残差;

子步骤s43,在前一帧的目标图像数据的基础上叠加所述第一残差,获得当前帧的原始图像数据。

应用本申请实施例,在编码时,可以对前一帧的原始图像数据进行编码,获得前一帧的目标图像数据,计算当前帧的原始图像数据与前一帧的目标图像数据之间的第一残差,对第一残差进行编码,获得当前帧的目标图像数据。

如果n=1,则本申请实施例在解码时可以执行子步骤s41,而不执行子步骤s42和子步骤s43。

如果n>1,本申请实施例可以循环执行子步骤s41、子步骤s42和子步骤s43,直至对n层原始图像数据解码完毕,即当前层与上一层是相对而言的。

对于第一层的目标图像数据,直接采用mpeg-2、mpeg-4simpleprofile、h.264/avc、avs、vc-1等编码方式对第一层的目标图像数据进行解码获得第一层的原始图像数据。

对于第二层及以上的目标图像数据,可以对当前层的目标图像数据采用mpeg-2、mpeg-4simpleprofile、h.264/avc、avs、vc-1等编码方式进行解码,将解码之后的残差与上一层的目标图像数据叠加获得当前层的原始图像数据。

进一步而言,若当前层的原始图像数据为第三层及以后的原始图像数据,子步骤s41中所指的解码,可以指对上一层目标图像数据编码执行子步骤s42和子步骤s43中的解码。

假设n为3,在第一层解码中,直接对第一层的目标图像数据进行编码,获得第一层的原始图像数据。

在第二层解码中,对第二层的目标图像进行解码,获得残差,将该残差与第一层的目标图像数据进行叠加,获得第二层的原始图像数据。

在此层中,可以视为通过子步骤s41对第一层的目标图像数据进行解码,可以视为通过子步骤s42和子步骤s43对第二层的目标数据进行解码。

在第三层编码中,对第二层的目标图像进行解码,获得残差,将该残差与第二层的目标图像数据进行叠加,获得第三层的原始图像数据。

在此层中,可以视为通过子步骤s41(即第二层解码时执行的子步骤s42和子步骤s43)对第二层的目标图像数据进行解码,可以视为通过子步骤s42和子步骤s43对第三层的目标图像数据进行解码。

当然,除了层与层之间通过残差进行解码之外,在实施本申请实施例时,可以根据实际情况设置其他编码方式,例如,在先每一帧原始图像数据可以独立进行编码,获得目标图像数据,则可以对每一帧目标图像数据独立进行解码,获得原始图像数据,等等,本申请实施例对此不加以限制。

在本申请的另一个实施例中,一帧目标图像数据中包括x帧目标子图像数据,步骤203可以包括如下子步骤:

子步骤s51,对前一帧的目标子图像数据进行解码,获得前一次的原始图像数据;

子步骤s52,对当前帧的目标子图像数据进行解码,获得第二残差;

子步骤s53,在前一帧的目标子图像数据的基础上叠加所述第二残差,获得当前次的原始图像数据;

子步骤s54,将当前次的原始图像数据替换前一次的原始图像数据。

应用本申请实施例,在先可以对当前帧的原始图像数据采用第一码率进行编码,获得前一次编码的目标子图像数据;计算当前帧的原始图像数据、与前一次编码的目标子图像数据之间的第二残差;采用第二码率对所述第二残差进行编码,获得当前次编码的目标子图像数据,其中,第二码率高于第一码率。

例如,若从服务器下载多维视频数据,该服务器可以根据网络传输参数确定对当前帧的原始图像数据的编码次数x。

在第一帧的目标子图像数据解码时,直接采用mpeg-2、mpeg-4simpleprofile、h.264/avc、avs、vc-1等编码方式对目标子图像数据进行解码,获得原始图像数据,或者,可以对当前次的目标子图像数据采用mpeg-2、mpeg-4simpleprofile、h.264/avc、avs、vc-1等编码方式进行解码,将解码之后的残差与上一层的目标图像数据叠加获得当前次的原始图像数据。

即对于当前层第一帧的目标子图像数据的解码,可以采用子步骤s41-子步骤s43的方式进行解码,也可以独立对当前次的目标子图像数据进行解码,本申请实施例对此不加以限制。

在第二帧及以上的目标子图像数据解码时,可以采用mpeg-2、mpeg-4simpleprofile、h.264/avc、avs、vc-1等编码方式对当前帧的目标子图像数据进行解码,将解码之后的残差与上一帧的目标子图像数据叠加获得当前帧的原始图像数据,替换上一帧的原始图像数据,直至保留最终的原始图像数据,该原始图像数据为当前层中码率最高的原始图像数据。

需要说明的是,本申请实施例可以循环执行子步骤s51、子步骤s52、子步骤s53和子步骤s54,直至对当前层的目标图像数据解码x次完毕。

进一步而言,若如果当前解码的次数为第三次及以后的编码,子步骤s51中所指的解码,可以指对上一次解码中子步骤s52、子步骤s53和子步骤s54执行的解码。

在对第一层的目标图像数据进行解码时,假设x为3,在第一次解码中,直接对第一帧的目标子图像数据进行解码,获得第一帧的原始图像数据。

在第二解码中,对第二帧的目标子图像数据进行解码,将解码之后的残差叠加在第一帧目标子图像数据上,获得第二帧的原始图像数据,替换第一帧的原始图像数据。

在此次编码中,可以视为通过子步骤s51对第一帧的目标子图像数据进行第一次解码,可以视为通过子步骤s52、子步骤s53和子步骤s54对第二帧的目标子图像数据进行第二次解码。

在第三次解码中,对第三帧的目标子图像数据进行解码,将解码之后的残差叠加在第二帧目标子图像数据上,获得第三帧的原始图像数据,替换第二帧的原始图像数据,最终保留第三帧的原始图像数据。

在此层中,可以视为通过子步骤s51(即第二次解码时执行的子步骤s52、子步骤s53和子步骤s54)对第二帧目标子图像数据进行第二解码,可以视为通过子步骤s52、子步骤s53和子步骤s54对第三帧目标子图像数据进行第三次解码。

解码完毕之后,如果n=m,则直接播放该n(m)帧原始图像数据。

当n<m时,可以复制n帧原始图像数据的一帧或多帧原始图像数据,以补齐至m帧原始图像数据,播放补齐之后的m帧原始图像数据。

本申请实施例在多维视频数据的m帧原始图像数据中选取n帧原始图像数据进行编码,可以根据实际传输情况适度减少原始图像数据的帧数,减少了带宽的占用,此外,由于减少了带宽的占用,原始图像数据可以保持较高的码率进行编码,而无需因为带宽的限制而使用低码率进行编码,保证多维视频数据的清晰度。

为使本领域技术人员更好地理解本申请实施例,以下通过具体的示例来说明本申请实施例中多维视频数据的编解码方法。

如图3所示,用户佩戴vr眼镜301,在界面中点击了某个3d电影,相当于向服务器302请求一个3d视频数据303,该3d视频数据303为左(l)右(r)格式,即包括l和r的原始图像数据。

服务器302检测到当前的有效带宽为100k,确定图像数量为1,即允许将一层原始图像数据进行编码之后返回vr眼镜301。

服务器302在有效带宽为100k的环境中,对第一层的原始图像数据进行2次编码,提取l的原始图像数据,对l进行低码率编码,并进行量化,去掉l-b层的目标子图像数据,保留l-a层的目标子图像数据。

计算l的原始图像数据与l-a层的目标子图像数据之间的残差,并对该残差进行高码率编码,获得l-d层的目标子图像数据。

服务器302将l-a层的目标子图像数据和l-d层的目标子图像数据作为第一层的目标图像数据返回给vr眼镜301。

服务器302检测到当前网络环境改善,有效带宽为500k,确定图像数量为2,即允许将量层原始图像数据进行编码之后返回vr眼镜301。

服务器302继续提取r的原始图像数据,计算r的原始图像数据与l-d层的目标子图像数据之间的残差,并对该残差进行编码,获得r-d层的目标图像数据。

服务器302将l-a层的目标子图像数据和l-d层的目标子图像数据作为第一层的目标图像数据、以r-d层的目标图像数据作为第二层的目标图像数据返回给vr眼镜301。

vr眼镜301在接收到第一层的目标图像数据时,对l-a层的目标子图像数据进行解码,获得第一层中第一帧的原始图像数据。

vr眼镜301对l-d层的目标子图像数据进行解码,获得残差,将该残差叠加在l-a层的目标子图像数据中,获得第一层中第二帧的原始图像数据。

将第二帧的原始图像数据替换第一帧的原始图像数据,作为第一层l的原始图像数据。

vr眼镜301复制第一层l的原始图像数据,作为r的原始图像数据进行播放。

vr眼镜301在接收到第二层的目标图像数据时,对r-d层的目标图像数据进行解码,获得残差,将该残差叠加在l-d层的目标子图像数据中,获得第二层中的原始图像数据。

vr眼镜301播放第一层l的原始图像数据和第二层r的原始图像数据。

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

参照图4,示出了本申请的一种多维视频数据的编码装置实施例的结构框图,具体可以包括如下模块:

网络检测模块401,用于在多维视频数据的传输过程中,检测当前的网络传输参数,所述多维视频数据在同一时间点具有m帧原始图像数据;

图像数量确定模块402,用于根据所述网络传输参数确定图像数量n;

原始图像数据提取模块403,用于按照所述图像数量n在所述m帧原始图像数据中提取n帧原始图像数据;

原始图像数据编码模块404,用于对所述n帧原始图像数据进行编码,获得n帧目标图像数据。

在本申请的一个实施例中,所述图像数量确定模块402可以包括如下子模块:

第一有效带宽计算子模块,用于采用所述网络传输参数计算有效带宽;

带宽范围查询子模块,用于查询所述有效带宽所属的带宽范围;

图像数量n查询子模块,用于查询所述带宽范围对应的图像数量n。

在本申请的一个实施例中,所述原始图像数据编码模块404可以包括如下子模块:

第一编码子模块,用于对前一帧的原始图像数据进行编码,获得前一帧的目标图像数据;

第一残差计算子模块,用于计算当前帧的原始图像数据与前一帧的目标图像数据之间的第一残差;

第一残差编码子模块,用于对所述第一残差进行编码,获得当前帧的目标图像数据。

在本申请的另一个实施例中,一帧目标图像数据中包括x帧目标子图像数据;

所述原始图像数据编码模块404可以包括如下子模块:

编码次数确定子模块,用于根据所述网络传输参数确定对当前帧的原始图像数据的编码次数x;

第二编码子模块,用于对当前帧的原始图像数据采用第一码率进行编码,获得前一次编码的目标子图像数据;

第二残差编码子模块,用于计算当前帧的原始图像数据、与前一次编码的目标子图像数据之间的第二残差;

第二残差编码子模块,用于采用第二码率对所述第二残差进行编码,获得当前次编码的目标子图像数据,其中,所述第二码率高于所述第一码率。

在本申请的另一个实施例中,所述原始图像数据编码模块404可以包括如下子模块:

第三编码子模块,用于对当前帧的原始图像数据采用第一码率进行编码,获得候选图像数据;

码字映射子模块,用于对所述候选图像数据映射成码表中的码字;

码字去除子模块,用于去除小于预设的量化系数的码字,获得目标图像数据。

在本申请的一个实施例中,在一个带宽范围内具有一个或多个子带宽范围;

所述编码次数确定子模块可以包括如下单元:

有效带宽计算单元,用于采用所述网络传输参数计算有效带宽;

子带宽范围查询单元,用于查询所述有效带宽在前一带宽范围中所属的子带宽范围;

编码次数查询单元,用于查询所述子带宽范围对应的编码次数x。

在本申请的一个实施例中,该装置还可以包括如下模块:

目标图像数据传输模块,用于将所述n帧目标图像数据传输至客户端。

参照图5,示出了本申请的一种多维视频数据的解码装置实施例的结构框图,具体可以包括如下模块:

多维视频数据获取模块501,用于获取多维视频数据,所述多维视频数据在同一时间点具有m帧原始图像数据;

目标图像数据提取模块502,用于从所述多维视频数据中提取对n帧原始图像数据编码获得n帧目标图像数据;

目标图像数据解码模块503,用于对所述n帧目标图像数据进行解码,获得n帧原始图像数据。

在本申请的一个实施例中,该装置还可以包括如下模块:

原始图像数据复制模块,用于复制所述n帧原始图像数据的一帧或多帧原始图像数据,以补齐至m帧原始图像数据;

原始图像数据播放模块,用于播放补齐之后的m帧原始图像数据。

在本申请的一个实施例中,所述目标图像数据解码模块503可以包括如下子模块:

第一解码子模块,用于对前一帧的目标图像数据进行解码,获得前一帧的原始图像数据;

第二解码子模块,用于对当前帧的目标图像数据进行解码,获得第一残差;

第一残差叠加子模块,用于在前一帧的目标图像数据的基础上叠加所述第一残差,获得当前帧的原始图像数据。

在本申请的一个实施例中,一帧目标图像数据中包括x帧目标子图像数据;

所述目标图像数据解码模块503可以包括如下子模块:

第三解码子模块,用于对前一帧的目标子图像数据进行解码,获得前一次的原始图像数据;

第四解码子模块,用于对当前帧的目标子图像数据进行解码,获得第二残差;

第二残差叠加子模块,用于在前一帧的目标子图像数据的基础上叠加所述第二残差,获得当前次的原始图像数据;

原始图像数据替换子模块,用于将当前次的原始图像数据替换前一次的原始图像数据。

对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。

本领域内的技术人员应明白,本申请实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本申请实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

在一个典型的配置中,所述计算机设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flashram)。内存是计算机可读介质的示例。计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非持续性的电脑可读媒体(transitorymedia),如调制的数据信号和载波。

本申请实施例是参照根据本申请实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

尽管已描述了本申请实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请实施例范围的所有变更和修改。

最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。

以上对本申请所提供的一种多维视频数据的编码方法、一种多维视频数据的解码方法、一种多维视频数据的编码装置和一种多维视频数据的解码装置。,进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

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