Some content of this application is unavailable at the moment.
If this situation persist, please contact us atFeedback&Contact
1. (WO2019024521) IMAGE PROCESSING METHOD, TERMINAL, AND SERVER
Document

说明书

发明名称 0001   0002   0003   0004   0005   0006   0007   0008   0009   0010   0011   0012   0013   0014   0015   0016   0017   0018   0019   0020   0021   0022   0023   0024   0025   0026   0027   0028   0029   0030   0031   0032   0033   0034   0035   0036   0037   0038   0039   0040   0041   0042   0043   0044   0045   0046   0047   0048   0049   0050   0051   0052   0053   0054   0055   0056   0057   0058   0059   0060   0061   0062   0063   0064   0065   0066   0067   0068   0069   0070   0071   0072   0073   0074   0075   0076   0077   0078   0079   0080   0081   0082   0083   0084   0085   0086   0087   0088   0089   0090   0091   0092   0093   0094   0095   0096   0097   0098   0099   0100   0101   0102   0103   0104   0105   0106   0107   0108   0109   0110   0111   0112   0113   0114   0115   0116   0117   0118   0119   0120   0121   0122   0123   0124   0125   0126   0127   0128   0129   0130   0131   0132   0133   0134   0135   0136   0137   0138   0139   0140   0141   0142   0143   0144   0145   0146   0147   0148   0149   0150   0151   0152   0153   0154   0155   0156   0157   0158   0159   0160   0161   0162   0163   0164   0165   0166   0167   0168   0169   0170   0171   0172   0173   0174   0175   0176   0177   0178   0179   0180   0181   0182   0183   0184   0185   0186   0187   0188   0189   0190   0191   0192   0193   0194   0195   0196   0197   0198   0199   0200   0201   0202   0203   0204   0205   0206   0207   0208   0209   0210   0211   0212   0213   0214   0215   0216   0217   0218   0219   0220   0221   0222   0223   0224   0225   0226   0227   0228   0229   0230   0231   0232   0233   0234   0235   0236   0237   0238   0239   0240   0241   0242   0243   0244   0245   0246   0247   0248   0249   0250   0251   0252   0253   0254   0255   0256   0257   0258   0259   0260   0261   0262   0263   0264   0265   0266   0267   0268   0269   0270   0271   0272   0273   0274   0275   0276   0277   0278   0279   0280   0281   0282   0283   0284   0285   0286   0287   0288   0289   0290   0291   0292   0293   0294   0295   0296   0297   0298   0299   0300   0301   0302   0303   0304   0305   0306   0307   0308   0309   0310   0311   0312   0313   0314   0315   0316   0317   0318   0319   0320   0321   0322   0323   0324   0325   0326   0327   0328   0329   0330   0331   0332   0333   0334   0335   0336   0337   0338   0339   0340   0341   0342   0343   0344   0345   0346   0347   0348   0349   0350   0351   0352   0353   0354   0355   0356   0357   0358   0359   0360   0361   0362   0363   0364   0365   0366   0367   0368   0369   0370   0371   0372  

权利要求书

1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23   24   25   26   27   28   29   30   31   32   33   34   35   36   37   38   39   40   41   42   43   44   45   46  

附图

1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17A   17   18   19   20   21   22   23   24   25  

说明书

发明名称 : 一种图像的处理方法、终端和服务器

[0001]
本申请要求于2017年07月31日提交中国专利局、申请号为201710645108.X、申请名称为“一种图像的处理方法、终端和服务器”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。

技术领域

[0002]
本申请涉及媒体标准和媒体应用技术领域,尤其涉及一种图像的处理方法、终端和服务器。

背景技术

[0003]
在视频应用中,虚拟现实(virtual reality,VR)/360度全景视频正在兴起,给人们带来了新的观看方式和视觉体验,同时也带来了新的技术挑战。360度全景视频由多个摄像机对物体进行多角度拍摄,支持多角度播放。其图像信号可以虚拟为一种球面信号,如图1所示,球面中不同位置的球面图像信号可以表示不同的视角内容。然而,虚拟的球面图像信号无法直观被人眼所见,因此需要将三维的球面图像信号表示为二维平面图像信号,例如通过经纬图、立方体等表述形式表示。这些表示形式实际上是将球面图像信号通过某种映射方式映射到二维的图像上,使其变为人眼所能直观看到的图像信号,最常用的直观图像格式为经纬图。该图像的采集方式是,水平方向上根据经度角对球面图像信号均匀采样,垂直方向上根据纬度角进行均匀采样,以地球的球面图像信号为例,其获得的二维映射图像如图2所示。
[0004]
在VR应用中,球面图像信号为360度全景图像,而人眼的视角范围通常约为120度,因此人眼视角下看到的有效球面信号约为全景信号的22%。VR终端设备(如VR眼镜)可支持的单视角大约在90度至110度之间,能获得较好的用户观看体验。然而,由于用户观看图像时单个视角内的图像内容信息占整幅全景图像的小部分,视角外的图像信息对用户来说并没做任何使用,若将所有全景图像进行传输,会造成不必要的带宽浪费。因此,在全景视频基于视角的视频编码(viewport dependent video coding,VDC)的编码传输技术中,将整个视频中的图像进行划分,并根据用户的当前视角选择需要进行传输的图像子区域,从而达到节省带宽的目的。
[0005]
上述全景视频VR编码传输技术可以包括2种:1)单独使用Tile-wise编码传输方式;2)全景图像编码与Tile-wise编码传输方式混合编码传输。其中,Tile-wise编码传输方式,是指将图像序列划分为一些图像子区域,分别将所有子区域进行独立编码,生成单个或多个码流。其中,在针对经纬图进行均匀划分方式中,包括将经纬图在宽高方向均匀划分为多个Tile,在客户端,当用户观看某一视角的图像时,客户端根据用户视角位置计算该视角在图像上所覆盖的范围,并根据该范围获得图像所需传输的Tile信息,包括Tile在图像中的位置和尺寸等,从服务端请求这些Tile对应的码流进行传输,从而在客户端对当前视角进行渲染和显示。但是,采用经纬图进行划分时,在赤道附近图像的采样率较高,在两极部分图像的采样率较低,即赤道附近的图 像像素冗余度较低,两极部分的图像像素冗余度较高,而且越往高纬度其冗余度越大,如果采用经纬图进行均匀划分,并未考虑到经纬图在不同纬度下的像素冗余度问题,对每个图像块以相同的条件在相同分辨率下进行编码传输,编码效率低,也会对传输带宽的浪费较大。
[0006]
发明内容
[0007]
本申请实施例提供一种图像的处理方法、终端和服务器,能够解决图像采样时,采用经纬图均匀划分图像造成编码传输时编码效率低以及带宽浪费的问题。
[0008]
第一方面,提供一种图像的处理方法,应用于服务器,包括:对待处理图像的经纬图或球面图进行横向划分和纵向划分,以得到经纬图或球面图的各个子区域,其中,横向划分的划分位置为预先设定的纬度,纵向划分的划分位置由纬度确定,相邻的横向划分的划分位置所构成的区域中至少存在两种纵向划分间隔,纵向划分间隔为相邻的纵向划分的划分位置间的距离;对得到的各个子区域的图像进行编码。这样,相对于现有技术对经纬图按照相同的划分间隔进行均匀划分的方式中,均匀划分时划分的细致的特性导致的编码效率低,编码后传输时占用的带宽大的问题,本申请这种不同纬度之间按照至少两种纵向划分间隔进行纵向划分的方式,避免如现有技术中均匀划分细致的特征,本申请可以按照多种纵向划分间隔纵向划分,能够使得图像的子区域有多种大小,划分间隔越大,子区域越大,编码时的编码效率得到提升,编码后服务器向终端传输码流时的占用的带宽减小。
[0009]
在一种可能的设计中,纵向划分的划分位置由纬度确定包括:纵向划分的划分位置所处的纬度越高,纵向划分间隔越大。这样由于子区域所在的纬度的不同,纬度高的子区域越大,划分越粗略,可以使得编码传输效率得到提升,传输带宽减小。
[0010]
在一种可能的设计中,在对得到的各个子区域的图像进行编码之前,该方法还包括:对子区域的图像按照第一采样间隔在横向进行采样;其中,子区域所对应的纬度越高,第一采样间隔越大;对得到的各个子区域的图像进行编码,包括:对采样后的各个子区域的图像进行编码。由于经纬图赤道附近的图像的像素冗余度低,两极部分的图像的像素冗余度高,如果每个子区域在相同分辨率下进行编码传输,对传输带宽浪费大,另外,解码端像素冗余高,会使得解码端对于解码能力要求高,解码速度低。而本申请在可以在编码前进行横向采样,且横向采样时,子区域对应的纬度越高,第一采样间隔越大,即对高纬度的子区域在横向进行下采样,也即压缩采样,能够使得高纬度的子区域在编码前传输的图像像素冗余度降低,达到减小带宽的目的,同时下采样使得需要编码传输的像素值减少,使得解码端对于解码能力的要求降低,解码复杂度下降,从而使得解码速度得到提升。
[0011]
在一种可能的设计中,在对得到的各个子区域的图像进行编码之前,该方法还包括:对子区域的图像按照第二采样间隔在纵向进行采样。其中,第二采样间隔可以是与采样前子区域的间隔相同,即在纵向保持原采样,也可以比采样前子区域的间隔小,即在纵向整体进行下采样,同理,也可以使得编码传输的带宽较小,解码端解码时的复杂度降低,解码速度得到提升。
[0012]
在一种可能的设计中,当子区域由对待处理图像的球面图进行横向划分和纵向划分得到时,在对子区域的图像按照第一采样间隔在横向进行采样之前,该方法还包括: 将子区域的图像按照预设尺寸映射为二维平面图像;对子区域的图像按照第一采样间隔在横向进行采样,包括:对子区域的图像映射的二维平面图像按照第一采样间隔在横向进行采样。也就是说,如果服务器从拍摄设备采集到的是球面图时,可以先将球面图的子区域图像映射到二维的经纬图,而后对经纬图进行下采样,这样假设服务器从拍摄设备直接采集到球面信号,就可以直接对球面图划分子区域,而后将球面图的子区域映射到经纬图,再对经纬图进行下采样。
[0013]
在一种可能的设计中,在对采样后的各个子区域的图像进行编码之前,该方法还包括:调整采样后的各个子区域的位置,使得调整后的各个子区域的图像拼接成的图像的横向边缘对齐,且纵向边缘对齐。这样,在拼接后的图像中可以按顺序对子区域进行编号,以根据各个子区域的编号方便对服务器和终端对各个子区域进行传输处理。
[0014]
在一种可能的设计中,对采样后的各个子区域的图像进行编码包括:对拼接成的图像分片(Tile)进行编码。这样可以生成单个码流进行保存,或者将该单个码流进行切割后获得多个子区域进行保存。
[0015]
在一种可能的设计中,在对得到的各个子区域的图像进行编码之后,该方法还包括:对通过编码获得的各个子区域的图像对应的码流进行独立封装,并且编码各个子区域的位置信息;其中,编码后的所有子区域的位置信息与所有子区域的码流存在于一个轨迹中;或者,编码后的每个子区域的位置信息与码流存在于各自的轨迹中;或者,编码后的所有子区域的位置信息存在于媒体呈现描述(MPD);或者,编码后的所有子区域的位置信息存在于私有文件中,且私有文件的地址存在于MPD中;或者,编码后的每个子区域的位置信息存在于每个子区域的码流的辅助增强信息(SEI)中。
[0016]
在一种可能的设计中,当子区域由对待处理图像的经纬图进行横向划分和纵向划分得到时,采样后的各个子区域形成采样后的经纬图,位置信息包括子区域在经纬图中的位置以及尺寸大小,以及子区域在采样后的经纬图中的位置以及尺寸大小;或者,位置信息包括子区域在经纬图中的位置以及尺寸大小,以及子区域在拼接成的图像中的位置以及尺寸大小;或者,当子区域由对待处理图像的球面图进行横向划分和纵向划分得到时,采样后的各个子区域形成采样后的球面图,位置信息包括子区域在球面图的图像中的位置以及经纬度范围,以及子区域在采样后的球面图的图像中的位置以及尺寸大小;或者,位置信息包括子区域在球面图图像中的位置以及经纬度范围,以及子区域在拼接成的图像中的位置以及尺寸大小。这样,终端可以根据子区域的位置以及尺寸大小在播放显示时进行图像渲染和呈现。
[0017]
在一种可能的设计中,私有文件还包括用于表征用户视点与用户视点的视角覆盖的子区域的编号的对应关系的信息。对于终端来说,当终端确定用户视点时,就可以直接根据该对应关系确定该视点的视角覆盖的子区域,以根据该子区域的码流进行解码显示,可以提升终端解码时的解码速度。
[0018]
在一种可能的设计中,私有文件还包括用于表征用户视角覆盖的子区域中需优先显示的子区域个数的信息、需优先显示的子区域编号的信息、次优先显示的子区域编号的信息以及不显示的子区域编号的信息。这样,当存在某些原因,例如网络不稳定导致所有的子区域码流无法完全获取或不需要完全获取时,终端可以优先获取离视点近的子区域的图像进行优先显示,而摒弃不作优先显示的子区域的图像数据。
[0019]
在一种可能的设计中,经纬图包括左眼对应的经纬图和右眼对应的经纬图;在对待处理图像的经纬图或球面图进行横向划分和纵向划分之前,该方法还包括:将左眼对应的经纬图与右眼对应的经纬图进行分割;对待处理图像的经纬图或球面图进行横向划分和纵向划分,包括:对左眼对应的经纬图进行横向划分和纵向划分,以及对右眼对应的经纬图进行横向划分和纵向划分。这样,对于3D视频图像来说,也可以按照本申请的子区域划分方式,减小带宽以及提升编码传输时的效率。
[0020]
在一种可能的设计中,该方法还包括:将通过编码获得的各个子区域的图像对应的码流发送给终端;或者,接收终端发送的视角信息,根据视角信息获取视角信息对应的子区域,将视角信息对应的子区域的码流发送给终端;或者,接收终端发送的子区域的编号,将子区域的编号对应的码流发送给终端。也即,终端可以从本地获取所需子区域的图像对应的码流,也可以从是服务器根据视角信息确定子区域后,将子区域对应的码流发送给终端,也可以是终端确定所需的子区域的编号后通知服务器,服务器将子区域对应的码流发送给终端,可以降低服务器的计算负载。
[0021]
在一种可能的设计中,经纬图为360度全景视频图像的经纬图,或360度全景视频图像的经纬图的一部分;或球面图为360度全景视频图像的球面图,或360度全景视频图像的球面图的一部分。也即,本申请对子区域的划分方式也可以适用于180度半全景视频图像的划分,进而降低180度半全景视频图像传输时的带宽和提升编码传输效率。
[0022]
第二方面,提供一种图像的处理方法,应用于终端,包括:确定全景图像各个子区域的位置信息;根据确定的各个子区域的位置信息,确定当前视角覆盖的子区域在全景图像中的位置信息,并确定子区域的第一采样间隔;根据确定的当前视角覆盖的子区域位置信息,获取当前视角覆盖的子区域对应的码流;对码流进行解码,以得到当前视角覆盖的子区域的图像;根据确定的当前视角覆盖的子区域的位置信息以及第一采样间隔对解码后的图像进行重采样,并对重采样后的图像进行播放。于是,采样间隔可以随子区域的位置变化,不会如现有技术中子区域是均匀划分,解码时按照既定的采样间隔解码呈现图像,本申请终端可以根据不同的采样间隔重采样图像进行显示,可以提升解码端图像的显示速度。
[0023]
在一种可能的设计中,确定全景图像各个子区域的位置信息包括:接收服务器发送的第一信息,第一信息包括全景图像的各个子区域的轨迹以及各个子区域的码流,轨迹包括全景图像的所有子区域的位置信息;根据轨迹,得到全景图像中的各个子区域的位置信息。
[0024]
在一种可能的设计中,确定全景图像中各个子区域的位置信息包括:接收服务器发送的媒体呈现描述(MPD),其中,MPD包括各个子区域的位置信息,或者,MPD中包括私有文件的地址,且私有文件包括各个子区域的位置信息;解析MPD,以获取各个子区域的位置信息。
[0025]
在一种可能的设计中,子区域的位置信息存在于子区域对应的码流的辅助增强信息(SEI)中。
[0026]
在一种可能的设计中,获取当前视角覆盖的子区域对应的码流,包括:从终端的存储器中获取当前视角覆盖的子区域对应的码流;或者,向服务器请求获取当前视角 覆盖的子区域对应的码流。
[0027]
在一种可能的设计中,向服务器请求获取当前视角覆盖的子区域对应的码流,包括:将指示当前视角的信息发送给服务器,接收服务器发送的当前视角覆盖的子区域对应的码流;或者,按照终端与服务器预设的协议,从服务器获取当前视角覆盖的子区域对应的码流,协议包括视角与该视角覆盖的子区域的对应关系,这样可以根据该对应关系提升终端从服务获取子区域对应的码流的速度。
[0028]
在一种可能的设计中,确定子区域的第一采样间隔,包括:确定预设的采样间隔为第一采样间隔;或者,从服务器接收第一采样间隔;或者,根据从服务器接收到的各个子区域的位置信息获取第一采样间隔,即各个子区域的位置信息不同时,对应的第一采样间隔也可以不同。
[0029]
第三方面,提供一种图像的处理方法,应用于服务器,包括:保存全景图像的经纬图或球面图的各个子区域的图像对应的码流,子区域根据对全景图像的经纬图或球面图进行横向划分和纵向划分得到,其中,横向划分的划分位置为预先设定的纬度,纵向划分的划分位置由纬度确定,相邻的横向划分的划分位置所构成的区域中至少存在两种纵向划分间隔,纵向划分间隔为相邻的纵向划分的划分位置间的距离;向终端发送终端请求的保存的各个子区域的图像对应的码流中当前视角覆盖的子区域的码流。这样,该服务器保存的各个子区域的图像对应的码流在传输给终端时,由于本申请不同纬度之间按照至少两种纵向划分间隔进行纵向划分子区域的方式,可以避免如现有技术中均匀划分细致的特征,本申请可以按照多种纵向划分间隔纵向划分,能够使得图像的子区域有多种大小,划分间隔越大,子区域越大,编码时的编码效率得到提升,编码后服务器向终端传输码流时的占用的带宽减小。
[0030]
在一种可能的设计中,保存于服务器的子区域对应的图像在被编码之前,被按照第一采样间隔在横向进行采样;其中,子区域所对应的纬度越高,第一采样间隔越大;或者,被按照第二采样间隔在纵向进行采样。这样
[0031]
第四方面,提供一种服务器,包括:划分单元,用于对待处理图像的经纬图或球面图进行横向划分和纵向划分,以得到经纬图或球面图的各个子区域,其中,横向划分的划分位置为预先设定的纬度,纵向划分的划分位置由纬度确定,相邻的横向划分的划分位置所构成的区域中至少存在两种纵向划分间隔,纵向划分间隔为相邻的纵向划分的划分位置间的距离;编码单元,用于对得到的各个子区域的图像进行编码。
[0032]
在一种可能的设计中,纵向划分的划分位置由纬度确定包括:纵向划分的划分位置所处的纬度越高,纵向划分间隔越大。
[0033]
在一种可能的设计中,还包括采样单元,用于:对子区域的图像按照第一采样间隔在横向进行采样;其中,子区域所所对应的纬度越高,第一采样间隔越大;编码单元用于:对采样后的各个子区域的图像进行编码。
[0034]
在一种可能的设计中,采样单元还用于:对子区域的图像按照第二采样间隔在纵向进行采样。
[0035]
在一种可能的设计中,采样单元还用于:将子区域的图像按照预设尺寸映射为二维平面图像;采样单元,用于:对子区域的图像映射的二维平面图像按照第一采样间隔在横向进行采样。
[0036]
在一种可能的设计中,还包括拼接单元,用于:调整采样后的各个子区域的位置,使得调整后的各个子区域的图像拼接成的图像的横向边缘对齐,且纵向边缘对齐。
[0037]
在一种可能的设计中,编码单元用于:对拼接成的图像分片(Tile)进行编码。
[0038]
在一种可能的设计中,还包括封装单元,用于:对通过编码获得的各个子区域的图像对应的码流进行独立封装,并且编码各个子区域的位置信息;其中,编码后的所有子区域的位置信息与所有子区域的码流存在于一个轨迹中;或者,编码后的每个子区域的位置信息与码流存在于各自的轨迹中;或者,编码后的所有子区域的位置信息存在于媒体呈现描述(MPD);或者,编码后的所有子区域的位置信息存在于私有文件中,且私有文件的地址存在于MPD中;或者,编码后的每个子区域的位置信息存在于每个子区域的码流的辅助增强信息(SEI)中。
[0039]
在一种可能的设计中,当子区域由对待处理图像的经纬图进行横向划分和纵向划分得到时,采样后的各个子区域形成采样后的经纬图,位置信息包括子区域在经纬图中的位置以及尺寸大小,以及子区域在采样后的经纬图中的位置以及尺寸大小;或者,位置信息包括子区域在经纬图中的位置以及尺寸大小,以及子区域在拼接成的图像中的位置以及尺寸大小;或者,当子区域由对待处理图像的球面图进行横向划分和纵向划分得到时,采样后的各个子区域形成采样后的球面图,位置信息包括子区域在球面图的图像中的位置以及经纬度范围,以及子区域在采样后的球面图的图像中的位置以及尺寸大小;或者,位置信息包括子区域在球面图图像中的位置以及经纬度范围,以及子区域在拼接成的图像中的位置以及尺寸大小。
[0040]
在一种可能的设计中,私有文件还包括用于表征用户视点与用户视点的视角覆盖的子区域的编号的对应关系的信息。
[0041]
在一种可能的设计中,私有文件还包括用于表征用户视角覆盖的子区域中需优先显示的子区域个数的信息、需优先显示的子区域编号的信息、次优先显示的子区域编号的信息以及不显示的子区域编号的信息。
[0042]
在一种可能的设计中,经纬图包括左眼对应的经纬图和右眼对应的经纬图;划分单元,用于:将左眼对应的经纬图与右眼对应的经纬图进行分割;划分单元用于:对左眼对应的经纬图进行横向划分和纵向划分,以及对右眼对应的经纬图进行横向划分和纵向划分。
[0043]
在一种可能的设计中,还包括传输单元,用于:将通过编码获得的各个子区域的图像对应的码流发送给终端;或者,接收终端发送的视角信息,根据视角信息获取视角信息对应的子区域,将视角信息对应的子区域的码流发送给终端;或者,接收终端发送的子区域的编号,将子区域的编号对应的码流发送给终端。
[0044]
在一种可能的设计中,经纬图为360度全景视频图像的经纬图,或360度全景视频图像的经纬图的一部分;或球面图为360度全景视频图像的球面图,或360度全景视频图像的球面图的一部分。
[0045]
第五方面,提供一种终端,包括:获取单元,用于确定全景图像各个子区域的位置信息;获取单元还用于,根据确定的各个子区域的位置信息,确定当前视角覆盖的子区域在全景图像中的位置信息,并确定子区域的第一采样间隔;获取单元,还用于根据确定的当前视角覆盖的子区域位置信息,获取当前视角覆盖的子区域对应的码流; 解码单元,用于对码流进行解码,以得到当前视角覆盖的子区域的图像;重采样单元,用于根据确定的当前视角覆盖的子区域的位置信息以及第一采样间隔对解码后的图像进行重采样;播放单元,用于重采样后的图像进行播放。
[0046]
在一种可能的设计中,获取用于:接收服务器发送的第一信息,第一信息包括全景图像的各个子区域的轨迹以及各个子区域的码流,轨迹包括全景图像的所有子区域的位置信息;获取单元,还用于根据轨迹,得到全景图像中的各个子区域的位置信息。
[0047]
在一种可能的设计中,获取用于:接收服务器发送的媒体呈现描述(MPD),其中,MPD包括各个子区域的位置信息,或者,MPD中包括私有文件的地址,且私有文件包括各个子区域的位置信息;解析MPD,以获取各个子区域的位置信息。
[0048]
在一种可能的设计中,子区域的位置信息存在于子区域对应的码流的辅助增强信息(SEI)中。
[0049]
在一种可能的设计中,获取单元用于:从终端的存储器中获取当前视角覆盖的子区域对应的码流;或者,向服务器请求获取当前视角覆盖的子区域对应的码流。
[0050]
在一种可能的设计中,获取单元用于:将指示当前视角的信息发送给服务器,接收服务器发送的当前视角覆盖的子区域对应的码流;或者,按照终端与服务器预设的协议,从服务器获取当前视角覆盖的子区域对应的码流,协议包括视角与该视角覆盖的子区域的对应关系。
[0051]
在一种可能的设计中,获取单元用于:确定预设的采样间隔为第一采样间隔;或者,从服务器接收第一采样间隔。
[0052]
第六方面,提供一种服务器,包括:存储单元,用于保存全景图像的经纬图或球面图的各个子区域的图像对应的码流,子区域根据对全景图像的经纬图或球面图进行横向划分和纵向划分得到,其中,横向划分的划分位置为预先设定的纬度,纵向划分的划分位置由纬度确定,相邻的横向划分的划分位置所构成的区域中至少存在两种纵向划分间隔,纵向划分间隔为相邻的纵向划分的划分位置间的距离;传输单元,用于向终端发送终端请求的保存的各个子区域的图像对应的码流中当前视角覆盖的子区域的码流。
[0053]
在一种可能的设计中,保存于服务器的子区域对应的图像在被编码之前,被按照第一采样间隔在横向进行采样;其中,子区域所对应的纬度越高,第一采样间隔越大;或者,被按照第二采样间隔在纵向进行采样。也就是说,对高纬度的子区域在横向进行下采样,也即压缩采样,能够使得高纬度的子区域在编码前传输的图像像素冗余度降低,达到减小带宽的目的,同时下采样使得需要编码传输的像素值减少,使得解码端对于解码能力的要求降低,解码复杂度下降,从而使得解码速度得到提升。
[0054]
又一方面,本申请实施例提供了一种计算机存储介质,用于储存为上述服务器所用的计算机软件指令,其包含用于执行上述方面所设计的程序。
[0055]
又一方面,本申请实施例提供了一种计算机存储介质,用于储存为上述终端所用的计算机软件指令,其包含用于执行上述方面所设计的程序。
[0056]
又一方面,本申请实施例提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述各方面的方法。
[0057]
本申请实施例提供一种图像的处理方法、终端和服务器,包括:对待处理图像的 经纬图或球面图进行横向划分和纵向划分,以得到经纬图或球面图的各个子区域,其中,横向划分的划分位置为预先设定的纬度,纵向划分的划分位置由纬度确定,相邻的横向划分的划分位置所构成的区域中至少存在两种纵向划分间隔,纵向划分间隔为相邻的纵向划分的划分位置间的距离;对得到的各个子区域的图像进行编码。这样,相对于现有技术对经纬图按照相同的划分间隔进行均匀划分的方式中,均匀划分时划分的细致的特性导致的编码效率低,编码后传输时占用的带宽大的问题,本申请这种不同纬度之间按照至少两种纵向划分间隔进行纵向划分的方式,避免如现有技术中均匀划分细致的特征,本申请可以按照多种纵向划分间隔纵向划分,能够使得图像的子区域有多种大小,划分间隔越大,子区域越大,编码时的编码效率得到提升,编码后服务器向终端传输码流时的占用的带宽减小。

附图说明

[0058]
图1为本申请实施例提供的一种360度全景图像信号的示意图;
[0059]
图2为本申请实施例提供的一种360度全景图像信号的示意图转化为经纬图的示意图;
[0060]
图3为本申请实施例提供的一种网络架构的示意图;
[0061]
图4为本申请实施例提供的一种图像的处理方法的流程示意图;
[0062]
图5为本申请实施例提供的一种经纬图划分为42个子区域时的示意图;
[0063]
图6为本申请实施例提供的一种经纬图划分为50个子区域时的示意图;
[0064]
图7为本申请实施例提供的一种图像的处理方法的流程示意图;
[0065]
图8为本申请实施例提供的一种经纬图中的视点区域的示意图;
[0066]
图9为本申请实施例提供的一种视角覆盖的子区域的示意图;
[0067]
图10为本申请实施例提供的一种图像的处理方法的流程示意图;
[0068]
图11为本申请实施例提供的一种终端解码显示过程的示意图;
[0069]
图12为本申请实施例提供的一种3D经纬图的子区域的划分示意图;
[0070]
图13为本申请实施例提供的一种180°半全景视频的经纬图横向划分的方式的示意图;
[0071]
图14为本申请实施例提供的一种3D180°半全景视频的经纬图的子区域划分方式的示意图;
[0072]
图15为本申请实施例提供的一种图像的处理方法的流程示意图;
[0073]
图16为本申请实施例提供的一种球面全景信号中进行划分并获得图像子区域的方法的示意图;
[0074]
图17A为本申请实施例提供的一种图像的处理方法的流程示意图;
[0075]
图17为本申请实施例提供的一种服务器的结构示意图;
[0076]
图18为本申请实施例提供的一种服务器的结构示意图;
[0077]
图19为本申请实施例提供的一种服务器的结构示意图;
[0078]
图20为本申请实施例提供的一种终端的结构示意图;
[0079]
图21为本申请实施例提供的一种终端的结构示意图;
[0080]
图22为本申请实施例提供的一种终端的结构示意图;
[0081]
图23为本申请实施例提供的一种服务器的结构示意图;
[0082]
图24为本申请实施例提供的一种服务器的结构示意图;
[0083]
图25为本申请实施例提供的一种服务器的结构示意图。

具体实施方式

[0084]
为了便于理解,示例地给出了部分与本申请相关概念的说明以供参考。如下所示:
[0085]
全景视频:指VR全景视频,也可以称为360度全景视频或360视频,是一种用多个摄像机进行全方位360度进行拍摄的视频,用户在观看视频的时候,可以随意调节视频上下左右进行观看。
[0086]
3D全景视频:指3D格式的VR全景视频,该视频包括两路360度全景视频,一路用于左眼显示,一路用于右眼显示,两路视频在同一帧中为左眼和右眼显示的内容有些许差异,使用户在观看时出现3D效果。
[0087]
经纬图:即等距柱状投影图(Equirectangular Projection,ERP)。全景图像格式的一种,将球面信号按照等经度间隔和等纬度间隔均匀采样映射获得的能够用于保存和传输的二维全景图像。该图像的横纵坐标可以用经纬度来表示,宽度方向上可用经度表示,跨度为360°;高度方向上可用纬度表示,跨度为180°。
[0088]
视频解码(video decoding):将视频码流按照特定的语法规则和处理方法恢复成重建图像的处理过程。
[0089]
视频编码(video encoding):将图像序列压缩成码流的处理过程。
[0090]
视频编码(video coding):video encoding和video decoding的统称,中文译名和video encoding相同。
[0091]
Tile:指视频编码标准,即高效视频编码(High Efficiency Video Coding,HEVC)中针对待编码图像进行划分所得到的方块形编码区域,一帧图像可划分为多个Tile,多个Tile共同组成该帧图像。每个Tile可以独立编码。本申请中的Tile可以是应用了运动受限的Tile集合(motion-constrained tile sets,MCTS)技术的Tile。
[0092]
MCTS:运动受限的Tile集合,是针对Tile的一种编码技术,该技术在编码时对Tile内部的运动矢量加以限制,使得图像序列中相同位置的Tile在时域上不会参考该Tile区域位置以外的图像像素,因此时域上各个Tile可以独立解码。
[0093]
子图像(sub-picture):对整幅图像进行划分,获得原图像的一部分称为该图像的子图像。本申请中的子图像可以是形状为方形的子图像。
[0094]
图像子区域:本申请中的图像子区域可以作为Tile或者子图像的统称,可以简称为子区域。
[0095]
VDC:基于视角的视频编码,是针对全景视频编码的一种编码传输技术,即基于用户在终端所观看到的视角进行编码传输的方法。
[0096]
Tile-wise编码:视频编码的一种方式,将图像序列划分为多个图像子区域,分别将所有子区域进行独立编码,生成单个或多个码流的过程。本申请中的Tile-wise编码可以是VDC中的Tile-wise编码。
[0097]
track:可以译为“轨迹”,是指一系列有时间属性的按照国际标准化组织(International Standardization Organization,ISO)基本媒体文件格式(ISO base media file format,ISOBMFF)的封装方式的样本,比如视频track,即视频样本,是视频编码器编码每一帧后产生的码流,按照ISOBMFF的规范对所有的视频样本进行封装产 生样本。
[0098]
box:可以译为“盒子”,在标准中是指面向对象的构建块,由唯一的类型标识符和长度定义。在某些规范中可以称为“原子”,包括MP4的第一个定义。box是构成ISOBMFF文件的基本单元,box可以包含其他的box。
[0099]
辅助增强信息(supplementary enhancement information,SEI),是视频编解码标准(h.264,h.265)中定义的一种网络接入单元(Network Abstract Layer Unit,NALU)的类型。
[0100]
MPD:标准ISO/IEC 23009-1中规定的一种文档,在该文档中包含了客户端构造超文本传输协议(HTTP,HyperText Transfer Protocol,HTTP)-统一资源定位符(Uniform Resource Locator,URL)的元数据。在MPD中包含一个或者多个周期(period)元素,每个period元素包含有一个或者多个自适应集(adaptationset),每个adaptationset中包含一个或者多个表示(representation),每个representation中包含一个或者多个分段,客户端根据MPD中的信息选择表达,并构建分段的HTTP-URL。
[0101]
ISO基本媒体文件格式:是由一系列的box组成,在box中可以包含其他的box。在这些box中包含元数据box和媒体数据box,元数据box(moov box)中包含的是元数据,媒体数据box(mdat box)中包含的是媒体数据。元数据的box和媒体数据的box可以是在同一个文件中,也可以是在分开的文件中。
[0102]
本申请实施例可以用于在全景视频或部分全景视频编码前的处理,以及编码后的码流进行封装的过程,在服务器和终端中都有涉及相应的操作和处理。
[0103]
如图3所示,本申请的网络架构可以包括服务器31和终端32。与服务器31通信的还包括拍摄设备33,该拍摄设备可以用于拍摄360度全景视频,将视频传输给服务器31。服务器可以对全景视频进行编码前处理,而后进行编码或转码操作,再将编码后的码流封装为可传输的文件,将文件传输到终端或内容分发网络。服务器还可以根据终端反馈的信息(例如用户视角等),选择需要传输的内容进行信号传输。终端32可以为VR眼镜、手机、平板电脑、电视以及电脑等可以连接网络的电子设备。终端32可以接收服务器31发送的数据,并进行码流解封装以及解码显示等。
[0104]
本申请为了解决图像处理时,采用经纬图均匀划分图像造成编码传输的带宽浪费和解码端解码能力以及速度受限的问题,可以提供一种图像的处理方法,该方法可以为基于多个图像子区域的经纬图Tile-wise划分与处理方法以及相对应的编码传输和解码呈现方式。在本申请实施例中,约定经纬图横向经度范围为0至360°,纵向纬度范围为-90°至90°。负数度数表示南纬,正数度数表示北纬。如图4所示,该方法可以包括:
[0105]
编码前处理:
[0106]
401、服务器待处理图像的经纬图进行横向划分,横向划分的划分位置为预先设定的纬度。
[0107]
该图像可以是视频的多个序列图像。
[0108]
以服务器根据拍摄设备采集到的视频得到该视频的经纬图如图5中的(a)所示为例,服务器在经纬图纵向上的纬度-60°、-30°、0°、30°以及60°处划纬度线,横向切分该经纬图,图5中的(a)中以X表示纬度值,经纬图赤道处为纬度0°,在北纬90° 与南纬-90°之间,北纬30°以及60°横向划分经纬图,南纬-60°以及-30°横向划分经纬图,横向划分间隔为30°。划分间隔也可以理解为划分步长。
[0109]
402、服务器对待处理图像经纬图进行纵向划分,纵向划分的划分位置由纬度确定,相邻的横向划分的划分位置所构成的区域中至少存在两种纵向划分间隔,纵向划分间隔为相邻的纵向划分的划分位置间的距离,得到经纬图的各个子区域。
[0110]
一种可实现的方式中,纵向划分时,经纬图南纬部分,不同纬度之间的纵向划分间隔可以不同,南纬部分和北纬部分相应纬度之间的纵向划分间隔可以相同。纵向划分的划分位置所处的纬度越高,纵向划分间隔可以越大,也可以存在不同纬度之间纵向划分间隔相同的情况。
[0111]
例如,对于横向划分的划分位置,南纬部分的纬度范围-90°至-60°以及北纬部分的纬度范围60°至90°之间的子图像,可以以经度120°为纵向划分间隔,纵向划分该子图像获得3个子区域;对于纬度范围-60°至-30°以及30°至60°之间的子图像,以经度60°为纵向划分间隔,纵向划分子图像获得6个子区域;对于纬度范围-30°至0°以及0°至30°之间的子图像,以经度30°为纵向划分间隔,纵向划分该子图像获得12个子区域。这样,对整个经纬图的子区域划分完成,共获得了42个子区域,如图5中的(a)所示。纵向划分间隔包括经度120°、经度60°以及经度30°。
[0112]
另一种可实现的方式中,与上述方式中对子图像的划分方式不同,将经纬图可以划分为50个子区域。示例性地,对于纬度范围-90°至-60°之间以及60°至90°之间的子图像,不进行纵向划分,保持单个子区域;对于纬度范围-60°至-30°之间以及30°至60°之间的子图像,以经度30°为纵向划分间隔,纵向划分该子图像获得12个子区域;对于纬度范围-30°至0°之间以及0°至30°之间的子图像,以经度30°为纵向划分间隔,纵向划分子图像获得12个子区域。这样,对整个经纬图的子区域划分完成,获得50个子区域,如图6中的(a)图所示。划分步长包括经度30°以及经度0°。划分步长为经度0°即表示对子图像不进行纵向划分。
[0113]
403、服务器对得到的各个子区域的图像进行编码。
[0114]
这样,本申请这种不同纬度之间按照至少两种纵向划分间隔进行纵向划分的方式,相对于均匀划分时划分的细致的特性,导致的编码效率低,编码后传输时占用的带宽大的问题,本申请可避免如现有技术中划分细致的特征,可以按照多种纵向划分间隔纵向划分经纬图,能够使得子区域划分有多种大小,纵向划分间隔越大,子区域越大,例如可以是纵向划分的划分位置所处的纬度越高时,纵向划分间隔越大,子区域越大,编码时的编码效率得到提升,编码后服务器向终端传输码流时的占用的带宽减小。
[0115]
进一步的,现有的对经纬图进行均匀划分的方式,对于解码端,即对于终端来说,终端得到的冗余像素较多,使得终端对最大解码能力的要求也会增加,解码速度也会有很大挑战,针对该问题,本申请还可以通过对进行非均匀划分后的子区域的像素进行去冗余度处理,即下采样,这样需要编码传输的像素点减少,解码端要求的最大解码能力降低,可以使得解码复杂度下降,提高解码器的解码速度。因此,如图7所示,本申请的实施方法在上述步骤403之前,还可以包括:
[0116]
404、服务器对子区域的图像在纵向进行原采样,或对子区域的图像按照第二采样间隔在纵向进行采样。
[0117]
例如对图5中的(a)或图6中的(a)所示的经纬图划分后的各个子区域来说,原采样可以理解为对各个子区域的图像纵向保持不变,不进行缩放处理,或者不进行处理。按照第二采样间隔进行采样,例如在纵向对各个子区域整体进行下采样,也可以理解为在纵向按照既定给的子区域高度进行采样。
[0118]
405、服务器对子区域的图像按照第一采样间隔在横向进行采样,子区域所对应的纬度越高,第一采样间隔越大。
[0119]
第一采样间隔和第二采样间隔可以是在服务器侧预设的,第一采样间隔和第二采样间隔可以相同,也可以不同。第一采样间隔可以理解为缩放系数的倒数,即每多个像素点采样一个像素点,以得到缩放后的图像。
[0120]
例如对于图5中的(a)所示的经纬图来说,对于纬度范围-90°至-60°以及纬度范围60°至90°之间的子图像,横向进行下采样,第一采样间隔为4,即每4个像素点采样一个像素点,缩放系数为1/4;对于纬度范围-60°至-30°以及纬度范围30°至60°之间的子图像,同样进行横向下采样,缩放系数为1/2;对于纬度范围-30°至0°以及0°至30°之间的子图像,不进行横向缩放。最终得到的采样后的图像如图5中的(b)所示。需要说明的是,图5中的(b)即为将图5中的(a)纵向保持不变时,只将横向进行下采样时采样后的图像。该举例中,在横向采样时第一采样间隔与纬度成正比,也就是说,对于北纬图像部分,子区域对应的纬度越高,第一采样间隔越大,同样,对于南纬图像部分,纬度越高,第一采样间隔越大。南纬图像部分和北纬图像部分,相同的纬度对应的采样间隔相同。
[0121]
再例如,对于图6中的(a)所示的经纬图来说,相比图5中的(b)中纵向进行下采样后的示意图,经纬图进行划分和缩放后的子区域大小在不同的纬度之间也可以为非均匀大小,这样可以突破图5中的(b)中缩放后的子区域大小为相同大小的限制,使得服务器在编码传输时的编码传输效率得到提升。具体来说,对于图6中的(a)所示的经纬图,对于纬度范围-90°至-60°以及纬度范围60°至90°之间的子图像,纵向不变,横向按照采样间隔进行下采样,缩放系数为1/4;对于纬度范围-60°至-30°以及30°至60°之间的子图像,同样保持纵向不变,进行横向下采样,缩放系数7/12;对于纬度范围-30°至0°以及0°至30°之间的子图像,不进行缩放,即纵向和横向都不进行缩放处理,最终得到的缩放图像如图6中的(b)所示。
[0122]
可选的,由于缩放后的经纬图为不规则图像,如图5中的(b)和图6中的(b)所示,本申请还可以将缩放后的子区域进行重新摆放组合,形成预设图像,因此,该方法还可以包括:
[0123]
406、服务器调整采样后的各个子区域的位置,使得调整后各个子区域的图像拼接成的图像的横向边缘对齐,且纵向边缘对齐。
[0124]
例如对于图5中的(b)所示的经纬图来说,调整位置后的图像可以如图5中的(c)所示。
[0125]
步骤403可以替换为:
[0126]
407、服务器对采样后的各个子区域的图像进行编码。
[0127]
例如对于上述进行子区域划分和缩放后得到的图5中的(b)中的42个子区域,或者对于重新组合后的图5中的(c)中的42个子区域来说,对于可以对每个子区域 进行编码。这里可以包括两种编码方式:(1)子图像编码方式,即对每个子图像序列进行独立编码,生成42个子码流,即每个子图像对应一个码流。该子图像可以为上述子区域,即对该42个子区域分别进行独立编码,得到每个子区域对应的码流;(2)将整幅图像进行分片(Tile)模式编码,编码时可以使用MCTS技术,生成该整幅图像的单个码流进行保存,或者将单个码流进行切割后获得42个子码流进行保存。这里的整幅图像可以是将源经纬图进行采样缩放后的图像,如图5中的(b),也可以是将采样缩放后的图像进行重新组合后的规则图像,如图5中的(c)。
[0128]
在对图像进行编码之后,服务器还需要对编码后得到的每个子区域的码流进行封装,因此,该方式还可以包括:
[0129]
408、服务器对编码获得的各个子区域的图像对应的码流进行独立封装,并且编码各个子区域的位置信息。
[0130]
服务器可以将所有子区域的码流独立封装在一个轨迹,即track中,例如封装在tile track中,也可以封装在各自对应的track中。子区域的位置信息可以理解为子区域划分方式的描述信息,编码后的所有子区域的位置信息与所有子区域的码流可以存在于一个track中;或者,编码后的每个子区域的位置信息与码流存在于各自的track中;或者,编码后的所有子区域的位置信息存在于媒体呈现描述(MPD);或者,编码后的所有子区域的位置信息可以存在于私有文件中,且私有文件的地址存在于MPD中;或者,编码后的每个子区域的位置信息存在于每个子区域的码流的辅助增强信息(SEI)中。本申请对于子区域位置信息的保存方式不做限定。
[0131]
当子区域由对待处理图像的经纬图进行横向划分和纵向划分得到时,采样后的各个子区域形成采样后的经纬图,位置信息包括子区域在经纬图中的位置以及尺寸大小,以及子区域在采样后的经纬图中的位置以及尺寸大小;或者,位置信息包括子区域在经纬图中的位置以及尺寸大小,以及子区域在拼接成的图像中的位置以及尺寸。其中,尺寸大小可以包括宽和高。
[0132]
下面对上述子区域的位置信息的各种保存方式分别进行说明。
[0133]
方式一、对于所有子区域的位置信息保存在一个track中,可以是在拼接后的图像的track中添加所有子区域划分方式的描述信息,例如在拼接后的图像的track中的moov box中增加下述语法:
[0134]
aligned(8)class RectRegionPacking(i){
[0135]
unsigned int(16)proj_reg_width[i];
[0136]
unsigned int(16)proj_reg_height[i];
[0137]
unsigned int(16)proj_reg_top[i];
[0138]
unsigned int(16)proj_reg_left[i];
[0139]
unsigned int(3)transform_type[i];
[0140]
bit(5)reserved=0;
[0141]
unsigned int(16)packed_reg_width[i];
[0142]
unsigned int(16)packed_reg_height[i];
[0143]
unsigned int(16)packed_reg_top[i];
[0144]
unsigned int(16)packed_reg_left[i];
[0145]
}
[0146]
RectRegionPacking(i):表示描述的是第i个子区域的划分信息。
[0147]
proj_reg_width[i],proj_reg_height[i]:描述了采样后的图像中第i个子区域在源图像,即未采样前的经纬图(例如5中的(a))中的对应的宽高,例如描述的是图5中的(b)中的子区域在图5中的(a)中对应的宽高,比如对于宽x高,即3840x1920的经纬图,图5中的(b)中左上角第一个子区域在源图像中的宽和高是(1280,320)。
[0148]
proj_reg_top[i],proj_reg_left[i]:描述了采样后的图像第i个子区域的左上角像素在源图像中的对应位置,例如描述的是图5中的(b)中的子区域左上点在图5中的(a)中对应的位置,比如图5中的(b)中左上角第一个子区域在源图像中的位置是(0,0)。该位置是以源图像的左上角为(0,0)坐标获取的。
[0149]
transform_type[i]:描述了采样后的图像中第i个子区域从对应源图像位置经过的变换,比如第i个子区域是源图像中对应区域经过不变换/90度旋转/180度旋转/270度旋转/水平镜像/水平镜像后90度旋转/水平镜像后180度旋转/水平镜像后270度旋转获得的。
[0150]
packed_reg_width[i],packed_reg_height[i]:描述了采样后的图像中第i个子区域在组合之后的规则图像中的宽和高,也就是图5中的(c)中的子区域的宽高。比如图5中的(b)中左上角第1个子区域在组合之后的规则图像中的宽和高为(320,320)。需要说明的是,当上述步骤406不执行时,子区域组合之后的图像为图5中的(b),则该宽高指的是在图像5中的(b)中的宽高。
[0151]
packed_reg_top[i],packed_reg_left[i]:描述了采样后的图像中第i个子区域的左上角像素在子区域组合后的规则图像中的相对位置,也就是图5中的(c)中的各子区域的左上点位置。需要说明的是,当上述步骤406不执行时,子区域组合之后的图像为图5中的(b),则该位置指的是在图像5中的(b)中的位置。
[0152]
方式二:在各个子区域的位置信息保存在各自对应的track中时,可以在tile track中描述相应的子区域的划分方式,具体可以在tile track中的moov box中增加下述语法:
[0153]
aligned(8)class SubPictureCompositionBox extends TrackGroupTypeBox('spco'){
[0154]
unsigned int(16)track_x;
[0155]
unsigned int(16)track_y;
[0156]
unsigned int(16)track_width;
[0157]
unsigned int(16)track_height;
[0158]
unsigned int(16)composition_width;
[0159]
unsigned int(16)composition_height;
[0160]
unsigned int(16)proj_tile_x;
[0161]
unsigned int(16)proj_tile_y;
[0162]
unsigned int(16)proj_tile_width;
[0163]
unsigned int(16)proj_tile_height;
[0164]
unsigned int(16)proj_width;
[0165]
unsigned int(16)proj_height;
[0166]
}
[0167]
track_x,track_y:描述了当前track的子区域的左上角像素在子区域组合后的规则图像中的位置,也就是图5中的(c)中当前子区域的左上点位置。
[0168]
track_width,track_height:描述了当前track的子区域在子区域组合后的规则图像中的宽和高,也就是图5中的(c)中当前子区域的宽和高;
[0169]
composition_width,composition_height:描述了子区域组合后的规则图像的宽和高,也就是图5中的(c)中图像宽和高。
[0170]
proj_tile_x,proj_tile_y:描述了当前track的子区域的左上角像素在源图像中的位置,也就是图5中的(a)中当前子区域的左上点位置。
[0171]
proj_tile_width,proj_tile_height:描述了当前track的子区域在源图像中的宽高,也就是图5中的(a)中当前子区域的宽和高;
[0172]
proj_width,proj_height:描述了源图像宽和高,也就是图5中的(a)中图像宽和高。
[0173]
方式三、所有子区域的位置信息保存在MPD中,即在MPD中描述子区域的划分方式。
[0174]
MPD中的语法可以为:
[0175]
[0176]
[0177]
在该方式三的语法中,<value="0,1280,0,1280,320,3840,1920"/>的语义如下:第一个0表示源标识,有相同源标识的表示同源,即表示同一个源图像;“1280,0”表示当前表示中的子区域的左上位置在源图像中的坐标;“1280,320”表示当前表示中的子区域的宽和高;“3840,1920”表示源图像宽和高。
[0178]
在上述MPD中是采用2D图像的方式描述子区域表示所对应的码流中的图像在源视频图像中的位置。可选的,子区域在源图像中的位置还可以采用球面坐标表示,比如将上述value中的信息转化为球面信息比如value=“0,0,30,0,120,30”,具体语义如下:第一个0表示源标识,源标识值相同的表示同源;“0,30,0”表示子区域对应的区域的中心点在球面上的坐标(偏航角,俯仰角,旋转角);“120,30”表示子区域的宽高角度。
[0179]
方式四:所有子区域的位置信息保存在私有文件中,且私有文件的地址保存在MPD中。即通过MPD中指定文件链接的方式,将保存子区域划分的描述信息的私有文件的地址写入MPD中。
[0180]
语法可以如下:
[0181]
[0182]
在方式四中,将子区域的划分信息以私有文件tile_info.dat保存。该文件中保存的子区域划分信息的数据可由用户指定,这里不做限定,比如说保存的内容可以按如下的一种方式:
[0183]
(文件<tile_info.dat>内容)
[0184]
unsigned int(16)tile_num;
[0185]
unsigned int(32)pic_width;
[0186]
unsigned int(32)pic_height;
[0187]
unsigned int(32)comp_width;
[0188]
unsigned int(32)comp_height;
[0189]
unsigned int(32)tile_pic_width[];
[0190]
unsigned int(32)tile_pic_height[];
[0191]
unsigned int(32)tile_comp_width[];
[0192]
unsigned int(32)tile_comp_height[];
[0193]
其中各数据表示的含义如下:
[0194]
tile_num:表示划分的子区域个数。
[0195]
pic_width:表示源图像宽度,即图5中的(a)中图像的宽度。
[0196]
pic_height:表示源图像高度,即图5中的(a)中图像的高度。
[0197]
comp_width:表示子区域组合后的规则图像的宽度,即图5中的(c)中图像的宽度。
[0198]
comp_height:表示子区域组合后的规则图像的高度,即图5中的(c)中图像的高度。
[0199]
tile_pic_width[]:数组,表示的是各个子区域在源图像中的宽度,元素个数应为tile_num值。
[0200]
tile_pic_height[]:数组,表示的是各个子区域在源图像中的高度,元素个数应为tile_num值。
[0201]
tile_comp_width[]:数组,表示的是各个子区域在子区域组合后的规则图像中的宽度,元素个数应为tile_num值。
[0202]
tile_comp_height[]:数组,表示的是各个子区域在子区域组合后的规则图像中的高度,元素个数应为tile_num值。
[0203]
方式四中通过指定新的EssentialProperty属性Tile@value,将私有文件的统一资源定位符(Uniform Resource Locator,URL)写入MPD中。Tile@value属性描述可以如表1。当终端进行视频内容请求时,通过解析该元素获取私有文件,从而获得子区域划分方式和位置等信息。
[0204]
表1 在"urn:mpeg:dash:tile:2014"中Tile@value属性描述
[0205]
[表0001]
Tile@value Description
information specifies information of tiles

[0206]
方式五:各个子区域的位置信息保存在各个子区域的码流的辅助增强信息SEI中。也就是,通过将子区域的位置信息写入码流的SEI来传输子区域的划分方式。基于子区域在图像中的划分信息SEI语法元素中的一种设置可以如表2所示。
[0207]
表2 基于子区域划分信息的SEI语法元素
[0208]
总SEI语法
[0209]
[0210]
子区域划分信息SEI语法
[0211]
[0212]
表2中,针对SEI类型加入新类型155,表示当前码流为子区域码流,并加入信息tile_wise_mapping_info(payloadSize),包含的语法元素含义如下:
[0213]
src_pic_width表示源图像宽,即图5(a)中图像宽度。
[0214]
src_pic_height表示源图像高,即图5(a)中图像高度。
[0215]
src_tile_x表示当前子区域的左上角在源图像上的横向坐标,即当前子区域在图5 中的(a)中的横坐标。
[0216]
src_tile_y表示当前子区域的左上角在源图像上的纵向坐标,即当前子区域在图5中的(a)中的纵坐标。
[0217]
src_tile_width表示当前子区域在源图像上的宽度。
[0218]
src_tile_height表示当前子区域在源图像上的高度。
[0219]
packed_pic_width表示子区域组合后的规则图像的宽,即图5(c)中图像宽度。
[0220]
packed_pic_height表示子区域组合后的规则图像的高,即图5(c)中图像高度。
[0221]
packed_tile_x表示当前子区域的左上角在组合后的规则图像上的横向坐标,即当前子区域在图5(c)中的横坐标。
[0222]
packed_tile_y表示当前子区域的左上角在组合后的规则图像上的纵向坐标,即当前子区域在图5(c)中的纵坐标。
[0223]
packed_tile_width表示当前子区域在组合后的规则图像上的宽度。
[0224]
packed_tile_height表示当前子区域在组合后的规则图像上的高度。
[0225]
此外,本申请还可以对上述方式四进行扩展,在MPD中也可以通过新的元素指定保存子区域的位置信息的私有文件的URL。
[0226]
扩展方式四:通过MPD中指定文件链接的方式,将保存子区域划分信息的私有文件地址写入MPD中。语法可以为:
[0227]
[0228]
在扩展方式四中,将子区域的位置信息以私有文件tile_info.dat保存,添加语法元素<UserdataList>(见表3),包含UserdataURL元素,将该私有文件写入MPD中。当终端进行视频内容请求时,通过解析<UserdataList>获取该私有文件,来获得子区域的划分方式和位置等信息。
[0229]
表3语法元素ExtentdataList描述
[0230]
[0231]
对于上述方式四中进行子区域划分方式的描述信息还可以进行扩展,该扩展针对传输的私有文件tile_info.dat中的内容,添加关于用户视角与所需子区域的关系表,使终端能够更快地请求对应的子区域码流。即私有文件还可以包括用于表征用户视点与用户视点的视角覆盖的子区域的编号的对应关系的信息。
[0232]
在本例中,针对私有文件tile_info.dat,关于子区域划分的信息内容不变,添加关于用户视角与所需子区域的关系表,及用户视点与用户视点的视角覆盖的子区域的编号的对应关系。比如,保存的内容可以按如下的一种方式:
[0233]
(文件<tile_info.dat>内容)
[0234]
unsigned int(16)tile_num;
[0235]
unsigned int(32)pic_width;
[0236]
unsigned int(32)pic_height;
[0237]
unsigned int(32)comp_width;
[0238]
unsigned int(32)comp_height;
[0239]
unsigned int(32)tile_pic_width[];
[0240]
unsigned int(32)tile_pic_height[];
[0241]
unsigned int(32)tile_comp_width[];
[0242]
unsigned int(32)tile_comp_height[];
[0243]
unsigned int(16)deg_step_latitude;
[0244]
unsigned int(16)deg_step_longitude;
[0245]
unsigned int(32)view_tile_num;
[0246]
unsigned int(16)viewport_table[][];
[0247]
其中,相对于方式四中新增的数据为deg_step_latitude,deg_step_longitude,view_tile_num,viewport_table[][],数据表示的含义如下:
[0248]
deg_step_latitude:纬度方向上划分的视点区域步长,该步长将纬度范围-90°至90°划分为多个视点区域。视点区域指的是某个视点在经纬图上所属的区域范围,在相同视点区域内,终端获得的覆盖该视点区域的图像子区域码流是相同的。如图8所示,整个经纬图被划分为9个视点区域,视点1和视点2均属于第5个视点区域,且图8中标出了视点区域5中心的视点。在视点区域5范围内的所有视点,对应的视角覆盖范围都将计算为中心视点对应视角所覆盖的范围。
[0249]
deg_step_longitude:经度方向上划分的视点区域步长,该步长将经度范围0°至360° 划分为多个视点区域。deg_step_latitude与deg_step_longitude共同决定了视点区域个数。
[0250]
view_tile_num:单个视角在变化时,所能覆盖的最大子区域个数。
[0251]
viewport_table[][]:数组,用于保存某个视点区域与所覆盖该视点区域的图像子区域编号之间的关系表,表中数据总个数应为视点区域个数乘以view_tile_num。
[0252]
关于数据表viewport_table[][],一种示例保存方式如下所示:
[0253]
viewport_table[100][18]={
[0254]
1,2,3,4,5,6,7,8,9,10,13,16,19,0,0,0,0,0,
[0255]
1,2,3,4,5,6,7,8,9,12,15,18,21,0,0,0,0,0,
[0256]
[0257]
5,6,7,13,14,15,16,25,26,27,28,35,36,37,0,0,0,0,
[0258]
[0259]
}
[0260]
该表视点区域个数为100,view_tile_num=18。数据表中每一行的18个数代表某个视点的视角对应覆盖的子区域编号,编号为0表示该视角只需要少于18个子区域就能覆盖,空余值被填0,比如图9所示视点位于纬度0°经度150°的视角,对应覆盖的子区域为编号5,6,7,13,14,15,16,25,26,27,28,35,36,37的子区域,在数据表中的值则表示为5,6,7,13,14,15,16,25,26,27,28,35,36,37,0,0,0,0。这样,终端获得这些值之后,只需要根据当前视点找到对应表中的子区域编号,不需要进行计算即可直接根据对应关系请求这些编号对应的子区域码流进行解码呈现,加快了终端的处理速度。
[0261]
基于上述私有文件包括用户视点与用户视点的视角覆盖的子区域的编号的对应关系,本申请实施例还可以在上述私有文件tile_info.dat中加入针对视角的优化呈现的标记数据;相对应的,数据表viewport_table[][]中数据的排列可以以优化的形式出现,即越靠近当前视点的子区域,其子区域的编号出现在当前视点对应行靠前位置。
[0262]
在本例中,私有文件还包括用于表征用户视角覆盖的子区域中需优先显示的子区域个数的信息、需优先显示的子区域编号的信息、次优先显示的子区域编号的信息以及不显示的子区域编号的信息。针对私有文件tile_info.dat,保存的内容可以按如下的一种方式:
[0263]
(文件<tile_info.dat>内容)
[0264]
unsigned int(16)tile_num;
[0265]
unsigned int(32)pic_width;
[0266]
unsigned int(32)pic_height;
[0267]
unsigned int(32)comp_width;
[0268]
unsigned int(32)comp_height;
[0269]
unsigned int(32)tile_pic_width[];
[0270]
unsigned int(32)tile_pic_height[];
[0271]
unsigned int(32)tile_comp_width[];
[0272]
unsigned int(32)tile_comp_height[];
[0273]
unsigned int(16)deg_step_latitude;
[0274]
unsigned int(16)deg_step_longitude;
[0275]
unsigned int(32)view_tile_num;
[0276]
unsigned int(16)priority_view_tile_num;
[0277]
unsigned int(16)viewport_table[][];
[0278]
其中,相对于新增的数据为priority_view_tile_num,数据表示的含义为:当前视点下需优先显示的子区域个数。对应的,viewport_table[][]表中数据排列进行修改,将靠近当前视点的子区域放置在当前视点对应行的前面,如下所示:
[0279]
viewport_table[100][18]={
[0280]
1,2,3,4,5,6,7,8,9,10,13,16,19,0,0,0,0,0,
[0281]
1,2,3,4,5,6,7,8,9,12,15,18,21,0,0,0,0,0,
[0282]
[0283]
14,15,26,27,13,6,16,28,36,25,5,7,35,37,0,0,0,0,
[0284]
[0285]
}
[0286]
如该表所示,对应于图9所示视点位于纬度0°经度150°的视角,将其在表中的数据更改为14,15,26,27,13,6,16,28,36,25,5,7,35,37,0,0,0,0,离视点较近的子区域编号14,15,26,27放在前面,较远的子区域编号13,6,16,28,36,25放在中间,最远的子区域编号5,7,35,37放置最后。离视点近的子区域优先显示,离视点较远的子区域不作优先显示,可以次优先显示。这样做的好处在于,当存在某些原因(比如网络不稳定)导致所有的子区域码流无法完全获取或不需要完全获取时,可优先获取离视点近的子区域进行优先显示,而摒弃不作优先显示的图像子区域数据。
[0287]
在上述服务器经过编码前处理、编码以及封装的过程之后,终端可以获取封装后的码流进行解码显示。因此,如图10所示,本申请实施例方法还可以包括:
[0288]
101、终端确定全景图像各个子区域的位置信息。
[0289]
一种可能的实现方式中,终端可以接收服务器发送的第一信息,该第一信息包括全景图像的各个子区域的track以及各个子区域的码流,track包括全景图像的所有子区域的位置信息;终端根据track解析得到全景图像中各个子区域的位置信息。该track可以是上述方式一中的拼接后的图像的track,终端可以通过解析拼接后的图像的track中的RectRegionPacking(i)中定义的语法解析出所有子区域的位置信息。
[0290]
或者,对于子区域的位置信息来说,终端可以按照上述对于保存子区域的位置信息的方式二,各个子区域的位置信息保存在各自子区域对应的轨迹,即tile track中,终端可以通过解析每个tile track中的SubPictureCompositionBox中定义的区域解析出当前子区域的位置信息。
[0291]
或者,终端可以通过接收服务器发送的MPD,MPD包括各个子区域的位置信息,或MPD中包括私有文件的地址,且私有文件包括各个子区域的位置信息,终端解析MPD,以获取各个子区域的位置信息。
[0292]
或者,终端可以在先获取到各个子区域对应的码流的情况下,子区域的位置信息存在与子区域对应的SEI中。也就是说,终端在请求所需的子区域的码流时,就可以根据该码 流中的SEI获取子区域的位置信息。
[0293]
102、终端根据确定的各个子区域的位置信息,确定当前视角覆盖的子区域在全景图像中的位置信息。
[0294]
例如,终端就可以根据视角和视角覆盖的子区域的位置信息的匹配关系,获取当前视角覆盖的子区域在全景图像中的位置信息。
[0295]
103、终端确定子区域的第一采样间隔。
[0296]
终端可以确定预设的采样间隔为第一采样间隔,或者,终端从服务器接收第一采样间隔,或者,终端可以根据从服务器接收到的各个子区域的位置信息获取第一采样间隔,即,各个子区域的位置信息与第一采样间隔可以存在预设的计算规则,以获取每个子区域对应的第一采样间隔。该计算规则可以是源图像中该子区域的位置信息中的尺寸大小与拼接后的图像中的子区域的位置信息中的尺寸大小的比例,即为第一采样间隔。
[0297]
104、终端根据确定的当前视角覆盖的子区域位置信息,获取当前视角覆盖的子区域对应的码流。
[0298]
如果所有子区域的码流保存在终端本地,终端可以从终端的存储器中直接获取当前视角覆盖的子区域的码流。
[0299]
或者,终端向服务器请求获取当前视角覆盖的子区域对应的码流。示例性的,终端可以将指示当前视角的信息发送给服务器,服务器可以根据当前视角和当前视角能够覆盖的子区域的位置信息获取当前视角覆盖的子区域,而后将终端所需的当前视角覆盖的子区域对应的码流发送给终端,例如服务器可以将要传输的子区域码流拼接后的码流发送给终端。或者,终端可以根据当前视角和当前视角覆盖的子区域的位置信息获取当前视角覆盖的子区域后,可以将当前视角覆盖的子区域的编号发送给服务器,服务器可以根据编号将终端所需的子区域的码流发送给终端。或者,终端可以按照终端与服务器预设的协议,从服务器获取当前视角覆盖的子区域对应的码流,协议包括视角与该视角覆盖的子区域的对应关系。本申请对于终端获取所需码流的方式不做限定。
[0300]
105、终端对码流进行解码,以得到当前视角覆盖的子区域的图像。
[0301]
由于服务器对经纬图进行了横向和纵向划分以及纵向进行下采样处理,即对子区域中的像素进行了去冗余度处理,使得要传输的子区域的像素冗余度降低,像素值减少,那么对于解码端终端来说,在获取到当前视角覆盖的子区域的码流时,可以使得对该解码能力要求降低,解码的复杂度下降,从而使得解码速度得到提升。
[0302]
106、终端根据确定的当前视角覆盖的子区域的位置信息以及第一采样间隔对解码后的图像进行重采样。
[0303]
107、终端对重采样后的图像进行播放。
[0304]
如图11所示,假设用户请求需显示的视角对应的子区域为图11中的(d)所示,根据计算获得的所需子区域如图11中的(b)所示,终端可以根据子区域的编号与码流的对应关系获取所需子区域对应的码流,包括编号为1、3、4、5、6、15、19、20、21、22、23、24、34、35、36以及37的子码流,如图11中的(c)所示,进而,终端对这些子码流解码后,可以根据位置信息以及第一采样间隔对解码后的图像进行重 采样,而后对重采样后的图像进行播放,如图11中的(d)。
[0305]
上述编码前的处理、编码以及终端部分均是以2D经纬图为例进行说明的,本申请实施例还可以用于3D经纬图进行编码传输的过程,3D经纬图序列的两路信号可以分别进行处理。可以理解的是,要呈现3D视觉效果的情况下,与服务器进行通信的拍摄设备可以包括两组,一组拍摄设备用于获取左眼的全景视频,另一组拍摄设备用于获取右眼的全景视频。这样,3D经纬图的子区域的划分可以如图12所示。左眼的经纬图为图12上半部分,右眼的经纬图为图12下半部分。左眼对应的经纬图可以和右眼对应的经纬图拼接在一起,为一张经纬图,也可以是分开的,为两张经纬图。服务器可以将左眼对应的经纬图与右眼对应的经纬图进行分割,以便对左眼对应的经纬图进行横向划分和纵向划分,以及对右眼对应的经纬图进行横向划分和纵向划分。
[0306]
其中,3D经纬图左眼经纬图的横向划分可以参考步骤401的实现方式,右眼经纬图的横向划分也可以参考步骤401的实现方式,在此不赘述。
[0307]
3D经纬图左眼经纬图的横向纵向划分可以参考步骤402的实现方式,右眼经纬图的纵向划分也可以参考步骤402的实现方式,在此不赘述。
[0308]
3D经纬图左眼经纬图的各个子区域的采样可以参考步骤404至405的实现方式,右眼经纬图的各个子区域的采样也可以参考步骤404至405的实现方式,在此不赘述。
[0309]
于是,最终获得的左眼经纬图中42个子区域,以及右眼经纬图中42个子区域,共84个子区域。
[0310]
对于3D经纬图划分和采样后的图像中每个子区域的编码方式可以由多种,这里列举三种可能的方式。第一种,将每个子区域作为一个子图像,从原图像中划分开,并对每个子图像序列进行独立编码,生成84个子码流。第二种:将整幅图像进行分子区域模式编码(HEVC标准支持),生成单个码流进行保存,或者将该单个码流进行切割后获得84个子码流进行保存。第三种:将左眼经纬图和右眼经纬图在相同位置对应部分的子区域作为一组子区域,对二者进行图像拼接后进行独立编码,生成42个子码流。
[0311]
封装过程可以参考上述方式一至方式五,此处不再赘述。
[0312]
针对3D经纬图视频,终端对视频内容的解码过程与上述对于2D经纬图不同的是:这里的当前视角覆盖的子区域的位置信息包括左眼图像子区域和右眼图像子区域位置信息。
[0313]
当前视角覆盖的子区域的码流包括左眼经纬图中子区域的码流和右眼经纬图中子区域的码流。当前视角的值可以取左眼的视角点值,也可以取右眼的视角点值,在此不做限制。重采样时是针对当前视角左眼覆盖的子区域的图像进行重采样,以及当前视角右眼覆盖的子区域的图像进行重采样,并对所需左眼子区域和右眼子区域进行渲染和显示。
[0314]
上述方法过程还可以应用于360度全景视频的经纬图,此外,该经纬图还可以为360度全景视频图像的经纬图的一部分,例如该经纬图的划分方式还可以应用于180°半全景视频的图像的经纬图的划分。180°半全景视频是指经度范围180°包含全景视频一半内容的全景视频。
[0315]
如图13中的(a)所示,对于180°半全景视频的经纬图横向划分的方式可以参考 上述步骤401,对于纵向划分,与上述步骤402的可实现的方式不同的可以是,对于纬度范围-90°至-60°以及60°至90°之间的子图像,可以不进行纵向划分,保持单个子区域;对于纬度范围-60°至-30°以及30°至60°之间的子图像,以经度60°为纵向划分间隔,纵向划分该子图像获得3个子区域;对于纬度范围-30°至0°以及0°至30°之间的子图像,以经度30°为纵向划分间隔,纵向划分该子图像获得6个子区域。这样,对整个180°半全景视频的经纬图的子区域划分完成,共获得了20个子区域。
[0316]
对于180°半全景视频的经纬图的子区域也可以进行下采样后再进行编码,与上述步骤404的实现方式可以相同,与上述步骤405的实现方式不同的可以是,以图13中的(a)为例,对于纬度范围-90°至-60°以及60°至90°之间的子图像,纵向不变,横向进行下采样,缩放系数为1/6;对于纬度范围-60°至-30°以及30°至60°之间的子图像,同样地,纵向不变,横向进行下采样,缩放系数为1/2;对于纬度范围-30°至0°以及0°至30°之间的子图像,不进行缩放。最终得到的缩放图像可以如图13中的(b)图所示。
[0317]
上述对于180°半全景视频的经纬图的子区域划分方式,也可以应用于3D180°半全景视频的经纬图的子区域划分,与360°全景视频同理,3D180°半全景视频的经纬图也包括左眼的180°半全景视频的经纬图和右眼的180°半全景视频的经纬图。左眼的经纬图和右眼的经纬图可以拼接在一起,如图14所示,左眼的经纬图为图14的左半部分,右眼的经纬图为图14的右半部分,服务器可以先将左眼的经纬图和右眼的经纬图进行分割,如图14中的虚线所示。而后,将左眼的经纬图按照与180°半全景视频的经纬图的划分方式进行划分,并将右眼的经纬图同样按照与180°半全景视频的经纬图的划分方式进行划分,最终获得左眼的经纬图对应的20个子区域,右眼的经纬图对应的20个子区域,共40个子区域。
[0318]
上述过程中,服务器可以根据拍摄设备拍摄的视频信号获取的是全景视频或半全景视频对应的经纬图,本申请实施例中的服务器还可以提供一种直接在球面全景信号中进行划分并获得图像子区域的方法。由于源图像是球面信号图,或者称为球面图,在码流封装方式,子区域划分方式也有所改变。在本实施例中,球面区域以经纬度的方式指定信号位置,约定经度范围为0至360°,纬度范围为-90°至90°(负数度数表示南纬,正数度数表示北纬)。
[0319]
因此,本申请实施例提供一种图像的处理方法,如图15所示,包括:
[0320]
1501、服务器对待处理图像的球面图进行横向划分,横向划分的划分位置为预先设定的纬度。
[0321]
示例性的,服务器可以分别在球面上纬度为-60°,-30°,0°,30°以及60°处划纬度线,横向切分球面图。如图16中的(a)所示。
[0322]
1502、服务器对待处理图像球面图进行纵向划分,纵向划分的划分位置由纬度确定,相邻的横向划分的划分位置所构成的区域中至少存在两种纵向划分间隔,纵向划分间隔为相邻的纵向划分的划分位置间的距离,得到经纬图的各个子区域。
[0323]
例如,可以在球面图上对于纬度范围-90°至-60°以及60°至90°之间的球面区域,以经度120°为纵向划分间隔,以经度线纵向划分球面图获得3个球面子区域;对于纬度范围-60°至-30°以及30°至60°之间的球面区域,以经度60°为纵向划分间隔,以经度 线纵向划分球面获得6个球面子区域;对于纬度范围-30°至0°以及0°至30°之间的球面区域,以经度30°为纵向划分间隔,纵向划分球面图获得12个球面子区域。这样,对整个球面图的子区域划分完成,共获得了42个子区域,如图16中的(a)图所示。
[0324]
1503、服务器对各个子区域的图像进行采样。
[0325]
服务器可以先将子区域的图像按照预设尺寸映射到二维平面图像,这样就可以按照上述对经纬图的各个子区域按照第一采样间隔和第二采样间隔进行采样。
[0326]
从三维的球面图映射到二维的经纬图的实现方式可以为:对球面图划分后的子区域的图像,在纵向按照预设尺寸高度进行均匀采样,在横向按照预设尺寸宽度进行均匀采样。而后,就可以对均匀采样后各个子区域的图像按照第一采样间隔在横向进行采样,纵向保持按照第二采样间隔进行采样。
[0327]
示例性的,在将球面上所有子区域对应16图中的(a)的子区域进行图像信号映射,使得球面图上的每个子区域对应映射图像即二维的经纬图中的一个子区域,并对经纬图进行下采样。从球面信号到子区域图像的映射方法很多,这里不做限制,其中一种方式可以为:纬度方向上,对于各个球面子区域,球面信号按照图16中的(b)子区域图像预设尺寸高度进行均匀映射,均匀映射可以理解为均匀采样。经度方向上,对于纬度范围-90°至-60°以及60°至90°之间的子球面区域,球面信号按照以纬度方向采样率的1/4进行下采样映射,即缩放系数为1/4;对于纬度范围-60°至-30°以及30°至60°之间的子球面区域,球面信号按照以纬度方向采样率的1/2进行下采样映射,即缩放系数为1/2;对于纬度范围-30°至0°以及0°至30°之间的子球面区域,球面信号按照以纬度方向的相同采样率进行映射,即缩放系数为1。最终得到的采样后的经纬图的图像如图16中的(b)图所示。
[0328]
1504、服务器调整采样后的各个子区域的位置,使得调整后的各个子区域的图像拼接成的图像的横向边缘对齐,且纵向边缘对齐。例如如图16中的(c)所示。步骤1504也可以选择不执行。
[0329]
1505、服务器对拼接成的图像分Tile进行编码。
[0330]
步骤1505的实现方式可以参见上述步骤407,这里不再赘述。
[0331]
对于球面图的图像处理方法中,对各个子区域码流的封装方式可以与上述步骤408的方式相同,对子区域的位置信息的各种保存方式也可以相同,不同的是,当子区域由对待处理图像的球面图进行横向划分和纵向划分得到时,采样后的各个子区域形成采样后的球面图,位置信息包括子区域在球面图的图像中的位置以及经纬度范围,以及子区域在采样后的球面图的图像中的位置以及尺寸大小;或者,位置信息包括子区域在球面图图像中的位置以及经纬度范围,以及子区域在拼接成的图像中的位置以及尺寸大小。针对上述子区域划分方式描述进行变量语义修改如下:
[0332]
方式一中修改如下语义:
[0333]
proj_reg_width[i],proj_reg_height[i]:描述了第i个子区域在源图像,即球面图中的对应经纬度范围,也就是图16中的(b)中的子区域在图16中的(a)中对应的经纬度范围,比如图16中的(b)左上角第一个子区域在源图像中的经纬度范围是(120°,30°)。
[0334]
proj_reg_top[i],proj_reg_left[i]:描述了第i个子区域的左上角像素在球面图中的 对应位置,以经纬度表示,也就是图16中的(b)中的子区域左上点在图16中的(a)中对应的位置,比如上述第一个子区域在球面图中的位置是(0°,90°)。
[0335]
方式二中修改如下语义:
[0336]
proj_tile_width,proj_tile_height:描述了当前track的子区域在球面图中的经纬度范围,也就是图16中的(a)中当前子区域的经纬度范围;
[0337]
proj_width,proj_height:描述了球面图经纬度范围,比如360°全景球面经纬度范围为(360°,180°)。
[0338]
方式四中对于私有文件tile_info.dat内容,修改如下语义:
[0339]
pic_width:表示球面图经度范围。
[0340]
pic_height:表示球面图纬度范围。
[0341]
tile_pic_width[]:数组,表示的是各个子区域在球面图中的经度范围,元素个数应为tile_num值。
[0342]
tile_pic_height[]:数组,表示的是各个子区域在球面图中的纬度范围,元素个数应为tile_num值。
[0343]
方式五中修改如下语义:
[0344]
src_pic_width表示球面图经度范围,即图16中的(a)中球面图经度范围。
[0345]
src_pic_height表示球面图纬度范围,即图16中的(a)中球面图像纬度范围。
[0346]
src_tile_width表示当前子区域在球面图上的经度范围。
[0347]
src_tile_height表示当前子区域在球面图上的纬度范围。
[0348]
这样,本申请相对于对经纬图均匀划分的方式,这种非均匀的划分方式以及对图像进行缩放的方式,图像冗余度降低,可以使得tile-wise编码传输效率有较大提升。同时,也降低了终端解码器所需的最大解码能力,可以使得更高分辨率的源图像在现有解码能力下进行编码传输呈现成为可能。以均匀划分6×3为例,需要传输的像素占比最高达到55.6%,如果源图像的分辨率为4K(4096×2048),则解码器能力需达到约4K×1K。而使用本申请所述方法,传输的像素占比最高可以为25%,如果源图像的分辨率为4K(4096x2048),则解码器解码能力需2Kx1K。并且,该性能提高了解码与播放的速度,本申请方案相对于均匀划分方案解码播放处理效率更高。
[0349]
本申请实施例还提供一种图像的处理方法,应用于服务器,如图17A,包括:
[0350]
17A1、服务器保存全景图像的经纬图或球面图的各个子区域的图像对应的码流,子区域根据对全景图像的经纬图或球面图进行横向划分和纵向划分得到,其中,横向划分的划分位置为预先设定的纬度,纵向划分的划分位置由纬度确定,相邻的横向划分的划分位置所构成的区域中至少存在两种纵向划分间隔,纵向划分间隔为相邻的纵向划分的划分位置间的距离。
[0351]
17A2、服务器向终端发送终端请求的保存的各个子区域的图像对应的码流中当前视角覆盖的子区域的码流。
[0352]
其中,保存于服务器的子区域对应的图像在被编码之前,被按照第一采样间隔在横向进行采样;其中,子区域所对应的纬度越高,第一采样间隔越大;或者,被按照第二采样间隔在纵向进行采样。采样的具体实现方式可以参照上述实施例中的说明。
[0353]
也就是说,本实施例中的服务器可以保存以上实施例中服务器对图像处理后的各 个子区域的图像对应的码流,由于上述实施例中服务器对图像的处理采用的子区域划分方式以及采样过程,可以使得传输码流时的占用的带宽减小,解码端对于解码能力的要求降低,解码复杂度下降,解码速度得到提升,本实施例中的服务器在传输码流时占用的带宽相对现有技术会减小,终端的解码速度得到提升。
[0354]
上述主要从各个网元之间交互的角度对本申请实施例提供的方案进行了介绍。可以理解的是,各个网元,例如服务器、终端等为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
[0355]
本申请实施例可以根据上述方法示例对服务器和终端等进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
[0356]
在采用对应各个功能划分各个功能模块的情况下,图17示出了上述实施例中所涉及的服务器的一种可能的结构示意图,服务器17包括:划分单元1701,编码单元1702,采样单元1703、拼接单元1704、封装单元1705以及传输单元1706。划分单元1701可以用于支持服务器执行图4中的过程401、402,编码单元1702可以用于支持服务器执行图4中的过程403,图7中的过程407。采样单元1703可以用于支持服务器执行图7中的过程404、405,拼接单元1704用于支持服务器执行图7中的过程406,封装单元1705可以用于支持服务器执行图7中的过程408。其中,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。
[0357]
在采用集成的单元的情况下,图18示出了上述实施例中所涉及的服务器的一种可能的结构示意图。服务器18包括:处理模块1802和通信模块1803。处理模块1802用于对服务器的动作进行控制管理,例如,处理模块1802用于支持服务器执行图4中的过程401、402,403、404、405、406、407以及408,和/或用于本文所描述的技术的其它过程。通信模块1803用于支持服务器与其他网络实体的通信,例如与终端之间的通信。服务器还可以包括存储模块1801,用于存储服务器的程序代码和数据。
[0358]
其中,处理模块1802可以是处理器或控制器,例如可以是中央处理器(Central Processing Unit,CPU),通用处理器,数字信号处理器(Digital Signal Processor,DSP),专用集成电路(Application-Specific Integrated Circuit,ASIC),现场可编程门阵列(Field Programmable Gate Array,FPGA)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。所述处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等等。通信模块13803可以是收发器、收发电路或通信接口等。存储模块1801可以是存储器。
[0359]
当处理模块1802为处理器,通信模块1803为收发器,存储模块1801为存储器时, 本申请实施例所涉及的服务器可以为图19所示的服务器。
[0360]
参阅图19所示,该服务器19包括:处理器1912、收发器1913、存储器1911以及总线1914。其中,收发器1913、处理器1912以及存储器1911通过总线1914相互连接;总线1914可以是外设部件互连标准(Peripheral Component Interconnect,PCI)总线或扩展工业标准结构(Extended Industry Standard Architecture,EISA)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图19中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
[0361]
在采用对应各个功能划分各个功能模块的情况下,图20示出了上述实施例中所涉及的终端的一种可能的结构示意图,终端20包括:获取单元2001,解码单元2002,重采样单元2003以及播放单元2004。获取单元2001用于支持终端执行图10中的过程101、102、103、104,解码单元2002用于支持终端执行图10中的过程105,重采样单元2003用于支持终端执行图10中的过程106,播放单元2004用于支持终端执行图10中的过程107。其中,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。
[0362]
在采用集成的单元的情况下,图21示出了上述实施例中所涉及的终端的一种可能的结构示意图。终端21包括:处理模块2102和通信模块2103。处理模块2102用于对终端的动作进行控制管理,例如,处理模块2102用于支持终端执行图10中的过程101-106,和/或用于本文所描述的技术的其它过程。通信模块2103用于支持终端与其他网络实体的通信,例如与服务器之间的通信。终端还可以包括存储模块2101,用于存储终端的程序代码和数据,还包括显示模块2104,用于支持终端执行图10中的过程107。
[0363]
其中,处理模块2102可以是处理器或控制器,例如可以是CPU,通用处理器,DSP,ASIC,FPGA或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。所述处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等等。通信模块2103可以是收发器、收发电路或通信接口等。存储模块2101可以是存储器。显示模块2104可以是显示器等。
[0364]
当处理模块2102为处理器,通信模块2103为收发器,存储模块2101为存储器,显示模块2104为显示器时,本申请实施例所涉及的终端可以为图22所示的终端。
[0365]
参阅图22所示,该终端22包括:处理器2212、收发器2213、存储器2211、显示器2215以及总线2214。其中,收发器2213、处理器2212、显示器2215以及存储器2211通过总线2214相互连接;总线2214可以是PCI总线或EISA总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图22中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
[0366]
在采用对应各个功能划分各个功能模块的情况下,图23示出了上述实施例中所涉及的服务器的一种可能的结构示意图,服务器23包括:存储单元2301,传输单元2302,存储单元2301用于支持服务器执行图17A中的过程17A1,传输单元2302用于支持服务器执行图17A中的过程17A2。其中,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。
[0367]
在采用集成的单元的情况下,图24示出了上述实施例中所涉及的服务器的一种可能的结构示意图。服务器24包括:存储模块2402和通信模块2403。存储模块2402,用于存储服务器的程序代码和数据,例如该程序用于执行图17A中的过程17A1,通信模块2403用于执行图17A中的过程17A2。
[0368]
当通信模块2403为收发器,存储模块2401为存储器时,本申请实施例所涉及的服务器可以为图25所示的终端。
[0369]
参阅图25所示,该服务器25包括:收发器2511、存储器2512以及总线2513。其中,收发器2511、存储器2512通过总线2513相互连接;总线2513可以是PCI总线或EISA总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图25中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
[0370]
结合本申请公开内容所描述的方法或者算法的步骤可以硬件的方式来实现,也可以是由处理器执行软件指令的方式来实现。软件指令可以由相应的软件模块组成,软件模块可以被存放于随机存取存储器(Random Access Memory,RAM)、闪存、只读存储器(Read Only Memory,ROM)、可擦除可编程只读存储器(Erasable Programmable ROM,EPROM)、电可擦可编程只读存储器(Electrically EPROM,EEPROM)、寄存器、硬盘、移动硬盘、只读光盘(CD-ROM)或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于ASIC中。另外,该ASIC可以位于核心网接口设备中。当然,处理器和存储介质也可以作为分立组件存在于核心网接口设备中。
[0371]
本领域技术人员应该可以意识到,在上述一个或多个示例中,本申请所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。
[0372]
以上所述的具体实施方式,对本申请的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本申请的具体实施方式而已,并不用于限定本申请的保护范围,凡在本申请的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本申请的保护范围之内。

权利要求书

[权利要求 1]
一种图像的处理方法,应用于服务器,其特征在于,包括: 对待处理图像的经纬图或球面图进行横向划分和纵向划分,以得到所述经纬图或所述球面图的各个子区域,其中,所述横向划分的划分位置为预先设定的纬度,所述纵向划分的划分位置由纬度确定,相邻的所述横向划分的划分位置所构成的区域中至少存在两种纵向划分间隔,所述纵向划分间隔为相邻的所述纵向划分的划分位置间的距离; 对所述得到的各个子区域的图像进行编码。
[权利要求 2]
根据权利要求1所述的方法,其特征在于,所述纵向划分的划分位置由纬度确定包括:所述纵向划分的划分位置所处的纬度越高,所述纵向划分间隔越大。
[权利要求 3]
根据权利要求1或2所述的方法,其特征在于,在所述对所述得到的各个子区域的图像进行编码之前,所述方法还包括: 对所述子区域的图像按照第一采样间隔在横向进行采样;其中,所述子区域所对应的纬度越高,所述第一采样间隔越大; 所述对所述得到的各个子区域的图像进行编码,包括: 对所述采样后的各个子区域的图像进行编码。
[权利要求 4]
根据权利要求3所述的方法,其特征在于,在对所述得到的各个子区域的图像进行编码之前,所述方法还包括: 对所述子区域的图像按照第二采样间隔在纵向进行采样。
[权利要求 5]
根据权利要求3或4所述的方法,其特征在于,当所述子区域由对所述待处理图像的球面图进行横向划分和纵向划分得到时,在所述对所述子区域的图像按照第一采样间隔在横向进行采样之前,所述方法还包括: 将所述子区域的图像按照预设尺寸映射为二维平面图像; 所述对所述子区域的图像按照第一采样间隔在横向进行采样,包括: 对所述子区域的图像映射的二维平面图像按照所述第一采样间隔在横向进行采样。
[权利要求 6]
根据权利要求3至5任一项所述的方法,其特征在于,在所述对所述采样后的各个子区域的图像进行编码之前,所述方法还包括: 调整所述采样后的各个子区域的位置,使得所述调整后的各个子区域的图像拼接成的图像的横向边缘对齐,且纵向边缘对齐。
[权利要求 7]
根据权利要求6所述的方法,其特征在于,所述对所述采样后的各个子区域的图像进行编码包括: 对所述拼接成的图像分片(Tile)进行编码。
[权利要求 8]
根据权利要求1-7任一项所述的方法,其特征在于,在所述对所述得到的各个子区域的图像进行编码之后,所述方法还包括: 对通过所述编码获得的各个子区域的图像对应的码流进行独立封装,并且编码所述各个子区域的位置信息;其中,所述编码后的所有所述子区域的位置信息与所有所述子区域的码流存在于一个轨迹中;或者,所述编码后的每个所述子区域的位置信息与码流存在于各自的轨迹中;或者,所述编码后的所有所述子区域的位置信息存在于媒体呈现描述(MPD);或者,所述编码后的所有所述子区域的位置信息存在于私有 文件中,且所述私有文件的地址存在于MPD中;或者,所述编码后的每个所述子区域的位置信息存在于所述每个子区域的码流的辅助增强信息(SEI)中。
[权利要求 9]
根据权利要求8所述的方法,其特征在于,当所述子区域由对所述待处理图像的经纬图进行横向划分和纵向划分得到时,所述采样后的各个子区域形成采样后的经纬图,所述位置信息包括所述子区域在所述经纬图中的位置以及尺寸大小,以及所述子区域在所述采样后的经纬图中的位置以及尺寸大小;或者,所述位置信息包括所述子区域在所述经纬图中的位置以及尺寸大小,以及所述子区域在所述拼接成的图像中的位置以及尺寸大小;或者,当所述子区域由对所述待处理图像的球面图进行横向划分和纵向划分得到时,所述采样后的各个子区域形成采样后的球面图,所述位置信息包括所述子区域在所述球面图的图像中的位置以及经纬度范围,以及所述子区域在所述采样后的球面图的图像中的位置以及尺寸大小;或者,所述位置信息包括所述子区域在所述球面图图像中的位置以及经纬度范围,以及所述子区域在所述拼接成的图像中的位置以及尺寸大小。
[权利要求 10]
根据权利要求8或9所述的方法,其特征在于,所述私有文件还包括用于表征用户视点与所述用户视点的视角覆盖的子区域的编号的对应关系的信息。
[权利要求 11]
根据权利要求8至10任一项所述的方法,其特征在于,所述私有文件还包括用于表征所述用户视角覆盖的子区域中需优先显示的子区域个数的信息、所述需优先显示的子区域编号的信息、次优先显示的子区域编号的信息以及不显示的子区域编号的信息。
[权利要求 12]
根据权利要求1至11任一项所述的方法,其特征在于,所述经纬图包括左眼对应的经纬图和右眼对应的经纬图; 在所述对待处理图像的经纬图或球面图进行横向划分和纵向划分之前,所述方法还包括: 将所述左眼对应的经纬图与所述右眼对应的经纬图进行分割; 所述对待处理图像的经纬图或球面图进行横向划分和纵向划分,包括: 对所述左眼对应的经纬图进行所述横向划分和所述纵向划分,以及对所述右眼对应的经纬图进行所述横向划分和所述纵向划分。
[权利要求 13]
根据权利要求9至12任一项所述的方法,其特征在于,所述方法还包括: 将所述通过所述编码获得的各个子区域的图像对应的码流发送给终端; 或者,接收终端发送的视角信息,根据所述视角信息获取所述视角信息对应的子区域,将所述视角信息对应的子区域的码流发送给所述终端; 或者,接收终端发送的子区域的编号,将所述子区域的编号对应的码流发送给所述终端。
[权利要求 14]
根据权利要求1-13任一项所述的方法,其特征在于, 所述经纬图为360度全景视频图像的经纬图,或所述360度全景视频图像的经纬图的一部分;或 所述球面图为360度全景视频图像的球面图,或所述360度全景视频图像的球面图的一部分。
[权利要求 15]
一种图像的处理方法,应用于终端,其特征在于,包括: 确定全景图像各个子区域的位置信息; 根据所述确定的各个子区域的位置信息,确定当前视角覆盖的子区域在所述全景图像中的位置信息; 确定子区域的第一采样间隔; 根据所述确定的当前视角覆盖的子区域位置信息,获取所述当前视角覆盖的子区域对应的码流; 对所述码流进行解码,以得到所述当前视角覆盖的子区域的图像; 根据所述确定的当前视角覆盖的子区域的位置信息以及所述第一采样间隔对所述解码后的图像进行重采样,并对所述重采样后的图像进行播放。
[权利要求 16]
根据权利要求15所述的方法,其特征在于,所述确定全景图像各个子区域的位置信息,包括: 接收服务器发送的第一信息,所述第一信息包括所述全景图像的各个子区域的轨迹以及所述各个子区域的码流,所述轨迹包括所述全景图像的所有子区域的位置信息; 根据所述轨迹,得到所述全景图像中的各个子区域的位置信息。
[权利要求 17]
根据权利要求15所述的方法,其特征在于,所述确定全景图像中各个子区域的位置信息,包括: 接收服务器发送的媒体呈现描述(MPD),其中,所述MPD包括所述各个子区域的位置信息,或者,所述MPD中包括私有文件的地址,且所述私有文件包括所述各个子区域的位置信息; 解析所述MPD,以获取所述各个子区域的位置信息。
[权利要求 18]
根据权利要求15所述的方法,其特征在于,所述子区域的位置信息存在于所述子区域对应的码流的辅助增强信息(SEI)中。
[权利要求 19]
根据权利要求15-18任一项所述的方法,其特征在于,所述获取所述当前视角覆盖的子区域对应的码流,包括: 从所述终端的存储器中获取所述当前视角覆盖的子区域对应的码流; 或者,向服务器请求获取所述当前视角覆盖的子区域对应的码流。
[权利要求 20]
根据权利要求19所述的方法,其特征在于,所述向服务器请求获取所述当前视角覆盖的子区域对应的码流,包括: 将指示所述当前视角的信息发送给所述服务器,接收所述服务器发送的所述当前视角覆盖的子区域对应的码流; 或者,按照所述终端与所述服务器预设的协议,从所述服务器获取所述当前视角覆盖的子区域对应的码流,所述协议包括视角与该视角覆盖的子区域的对应关系。
[权利要求 21]
根据权利要求16至20任一项所述的方法,其特征在于,所述确定子区域的第一采样间隔,包括: 确定预设的采样间隔为所述第一采样间隔; 或者,从所述服务器接收所述第一采样间隔; 或者,根据从所述服务器接收到的所述各个子区域的位置信息获取所述第一采样间隔。
[权利要求 22]
一种图像的处理方法,应用于服务器,其特征在于,包括: 保存全景图像的经纬图或球面图的各个子区域的图像对应的码流,所述子区域根据对所述全景图像的经纬图或球面图进行横向划分和纵向划分得到,其中,所述横向划分的划分位置为预先设定的纬度,所述纵向划分的划分位置由纬度确定,相邻的所述横向划分的划分位置所构成的区域中至少存在两种纵向划分间隔,所述纵向划分间隔为相邻的所述纵向划分的划分位置间的距离; 向终端发送所述终端请求的所述保存的各个子区域的图像对应的码流中当前视角覆盖的子区域的码流。
[权利要求 23]
根据权利要求22所述的方法,其特征在于,所述保存于所述服务器的子区域对应的图像在被编码之前,被按照第一采样间隔在横向进行采样;其中,所述子区域所对应的纬度越高,所述第一采样间隔越大; 或者, 被按照第二采样间隔在纵向进行采样。
[权利要求 24]
一种服务器,其特征在于,包括: 划分单元,用于对待处理图像的经纬图或球面图进行横向划分和纵向划分,以得到所述经纬图或所述球面图的各个子区域,其中,所述横向划分的划分位置为预先设定的纬度,所述纵向划分的划分位置由纬度确定,相邻的所述横向划分的划分位置所构成的区域中至少存在两种纵向划分间隔,所述纵向划分间隔为相邻的所述纵向划分的划分位置间的距离; 编码单元,用于对所述得到的各个子区域的图像进行编码。
[权利要求 25]
根据权利要求24所述的服务器,其特征在于,所述纵向划分的划分位置由纬度确定包括:所述纵向划分的划分位置所处的纬度越高,所述纵向划分间隔越大。
[权利要求 26]
根据权利要求24或25所述的服务器,其特征在于,还包括采样单元,用于: 对所述子区域的图像按照第一采样间隔在横向进行采样;其中,所述子区域所所对应的纬度越高,所述第一采样间隔越大; 所述编码单元用于: 对所述采样后的各个子区域的图像进行编码。
[权利要求 27]
根据权利要求26所述的服务器,其特征在于,所述采样单元还用于: 对所述子区域的图像按照第二采样间隔在纵向进行采样。
[权利要求 28]
根据权利要求26或27所述的服务器,其特征在于,所述采样单元还用于: 将所述子区域的图像按照预设尺寸映射为二维平面图像; 对所述子区域的图像映射的二维平面图像按照所述第一采样间隔在横向进行采样。
[权利要求 29]
根据权利要求26至28任一项所述的服务器,其特征在于,还包括拼接单元,用于: 调整所述采样后的各个子区域的位置,使得所述调整后的各个子区域的图像拼接成的图像的横向边缘对齐,且纵向边缘对齐。
[权利要求 30]
根据权利要求29所述的服务器,其特征在于,所述编码单元用于: 对所述拼接成的图像分片(Tile)进行编码。
[权利要求 31]
根据权利要求24-30任一项所述的服务器,其特征在于,还包括封装单元,用于: 对通过所述编码获得的各个子区域的图像对应的码流进行独立封装,并且编码所述各个子区域的位置信息;其中,所述编码后的所有所述子区域的位置信息与所有所述子区域的码流存在于一个轨迹中;或者,所述编码后的每个所述子区域的位置信息与码流存在于各自的轨迹中;或者,所述编码后的所有所述子区域的位置信息存在于媒体呈现描述(MPD);或者,所述编码后的所有所述子区域的位置信息存在于私有文件中,且所述私有文件的地址存在于MPD中;或者,所述编码后的每个所述子区域的位置信息存在于所述每个子区域的码流的辅助增强信息(SEI)中。
[权利要求 32]
根据权利要求31所述的服务器,其特征在于,当所述子区域由对所述待处理图像的经纬图进行横向划分和纵向划分得到时,所述采样后的各个子区域形成采样后的经纬图,所述位置信息包括所述子区域在所述经纬图中的位置以及尺寸大小,以及所述子区域在所述采样后的经纬图中的位置以及尺寸大小;或者,所述位置信息包括所述子区域在所述经纬图中的位置以及尺寸大小,以及所述子区域在所述拼接成的图像中的位置以及尺寸大小;或者,当所述子区域由对所述待处理图像的球面图进行横向划分和纵向划分得到时,所述采样后的各个子区域形成采样后的球面图,所述位置信息包括所述子区域在所述球面图的图像中的位置以及经纬度范围,以及所述子区域在所述采样后的球面图的图像中的位置以及尺寸大小;或者,所述位置信息包括所述子区域在所述球面图图像中的位置以及经纬度范围,以及所述子区域在所述拼接成的图像中的位置以及尺寸大小。
[权利要求 33]
根据权利要求31或32所述的服务器,其特征在于,所述私有文件还包括用于表征用户视点与所述用户视点的视角覆盖的子区域的编号的对应关系的信息。
[权利要求 34]
根据权利要求32至33任一项所述的服务器,其特征在于,所述私有文件还包括用于表征所述用户视角覆盖的子区域中需优先显示的子区域个数的信息、所述需优先显示的子区域编号的信息、次优先显示的子区域编号的信息以及不显示的子区域编号的信息。
[权利要求 35]
根据权利要求24至34任一项所述的服务器,其特征在于,所述经纬图包括左眼对应的经纬图和右眼对应的经纬图; 所述划分单元用于: 将所述左眼对应的经纬图与所述右眼对应的经纬图进行分割; 对所述左眼对应的经纬图进行所述横向划分和所述纵向划分,以及对所述右眼对应的经纬图进行所述横向划分和所述纵向划分。
[权利要求 36]
根据权利要求32至35任一项所述的服务器,其特征在于,还包括传输单元,用于: 将所述通过所述编码获得的各个子区域的图像对应的码流发送给终端; 或者,接收终端发送的视角信息,根据所述视角信息获取所述视角信息对应的子区域,将所述视角信息对应的子区域的码流发送给所述终端; 或者,接收终端发送的子区域的编号,将所述子区域的编号对应的码流发送给所述终端。
[权利要求 37]
根据权利要求24-36任一项所述的服务器,其特征在于, 所述经纬图为360度全景视频图像的经纬图,或所述360度全景视频图像的经纬 图的一部分;或 所述球面图为360度全景视频图像的球面图,或所述360度全景视频图像的球面图的一部分。
[权利要求 38]
一种终端,其特征在于,包括: 获取单元,用于确定全景图像各个子区域的位置信息; 所述获取单元还用于,根据所述确定的各个子区域的位置信息,确定当前视角覆盖的子区域在所述全景图像中的位置信息,并确定子区域的第一采样间隔; 所述获取单元,还用于根据所述确定的当前视角覆盖的子区域位置信息,获取所述当前视角覆盖的子区域对应的码流; 解码单元,用于对所述码流进行解码,以得到所述当前视角覆盖的子区域的图像; 重采样单元,用于根据所述确定的当前视角覆盖的子区域的位置信息以及所述第一采样间隔对所述解码后的图像进行重采样; 播放单元,用于所述重采样后的图像进行播放。
[权利要求 39]
根据权利要求38所述的终端,其特征在于,所述获取单元用于: 接收服务器发送的第一信息,所述第一信息包括所述全景图像的各个子区域的轨迹以及所述各个子区域的码流,所述轨迹包括所述全景图像的所有子区域的位置信息; 根据所述轨迹,得到所述全景图像中的各个子区域的位置信息。
[权利要求 40]
根据权利要求38所述的终端,其特征在于,所述获取单元用于: 接收服务器发送的媒体呈现描述(MPD),其中,所述MPD包括所述各个子区域的位置信息,或者,所述MPD中包括私有文件的地址,且所述私有文件包括所述各个子区域的位置信息; 所述获取单元还用于:解析所述MPD,以获取所述各个子区域的位置信息。
[权利要求 41]
根据权利要求38所述的终端,其特征在于,所述子区域的位置信息存在于所述子区域对应的码流的辅助增强信息(SEI)中。
[权利要求 42]
根据权利要求38-41任一项所述的终端,其特征在于,所述获取单元用于: 从所述终端的存储器中获取所述当前视角覆盖的子区域对应的码流; 或者,向服务器请求获取所述当前视角覆盖的子区域对应的码流。
[权利要求 43]
根据权利要求42所述的终端,其特征在于,所述获取单元用于: 将指示所述当前视角的信息发送给所述服务器,接收所述服务器发送的所述当前视角覆盖的子区域对应的码流; 或者,按照所述终端与所述服务器预设的协议,从所述服务器获取所述当前视角覆盖的子区域对应的码流,所述协议包括视角与该视角覆盖的子区域的对应关系。
[权利要求 44]
根据权利要求39至43任一项所述的终端,其特征在于,所述获取单元用于: 确定预设的采样间隔为所述第一采样间隔; 或者,从所述服务器接收所述第一采样间隔; 或者,根据从所述服务器接收到的所述各个子区域的位置信息获取所述第一采样间隔。
[权利要求 45]
一种服务器,其特征在于,包括: 存储单元,用于保存全景图像的经纬图或球面图的各个子区域的图像对应的码流, 所述子区域根据对所述全景图像的经纬图或球面图进行横向划分和纵向划分得到,其中,所述横向划分的划分位置为预先设定的纬度,所述纵向划分的划分位置由纬度确定,相邻的所述横向划分的划分位置所构成的区域中至少存在两种纵向划分间隔,所述纵向划分间隔为相邻的所述纵向划分的划分位置间的距离; 传输单元,用于向终端发送所述终端请求的所述保存的各个子区域的图像对应的码流中当前视角覆盖的子区域的码流。
[权利要求 46]
根据权利要求45所述的服务器,其特征在于,所述保存于所述服务器的子区域对应的图像在被编码之前,被按照第一采样间隔在横向进行采样;其中,所述子区域所对应的纬度越高,所述第一采样间隔越大; 或者,被按照第二采样间隔在纵向进行采样。

附图

[ 图 1]  
[ 图 2]  
[ 图 3]  
[ 图 4]  
[ 图 5]  
[ 图 6]  
[ 图 7]  
[ 图 8]  
[ 图 9]  
[ 图 10]  
[ 图 11]  
[ 图 12]  
[ 图 13]  
[ 图 14]  
[ 图 15]  
[ 图 16]  
[ 图 17A]  
[ 图 17]  
[ 图 18]  
[ 图 19]  
[ 图 20]  
[ 图 21]  
[ 图 22]  
[ 图 23]  
[ 图 24]  
[ 图 25]