用于传输立体视频内容的方法和装置与流程

文档序号:19160799发布日期:2019-11-16 01:20阅读:198来源:国知局
本公开涉及一种用于封装立体全向视频的数据的方法和装置。
背景技术
::互联网已经从以人为中心的连接网络演变为物联网(internetofthings,iot)网络,在以人为中心的连接网络中,人类可以创建和消费信息,在物联网网络中,诸如对象的分布式组件可以交换和处理信息。例如,在万物互联网(internetofeverything,ioe)技术中,大数据处理技术通过与云服务器等的连接与iot相结合。由于实施iot需要诸如传感技术、有线/无线通信和网络基础设施、服务接口技术、安全技术等技术元素,因此已经研究了用于传感器网络、机器对机器(machine-to-machine,m2m)通信和机器类型通信(machine-typecommunication,mtc)的技术,以用于建立对象之间的连接。在iot环境中,可以提供收集和分析从连接的对象生成的数据的智能互联网技术(internettechnology,it)服务来为人类生活创造新的价值。通过现有it技术与各种行业的融合和整合,iot可以适用于智能家居、智能建筑、智能城市、智能汽车或联网汽车、智能电网、医疗保健、智能家电、先进医疗保健服务等领域。同时,用于实施iot的内容也正在演变。也就是说,随着黑白内容不断演变为彩色内容高清(highdefinition,hd)、超高清电视(ultrahighdefinitiontelevision,uhd)和近期的高动态范围(highdynamicrange,hdr)内容的标准化和分布,对于可以在诸如oculus和samsunggearvr(virtualreality,虚拟现实)等vr设备上播放的虚拟现实(vr)内容的研究正在进行中。vr系统可以基本上监视用户,并允许用户使用预定控制器向内容显示设备或处理单元提供反馈输入,并且该设备或单元可以处理输入并相应地调节内容以使能够交互。vr生态系统中的基本布置包括,例如,头戴式显示器(headmounteddisplay,hmd)、无线、移动vr、电视(television,tv)、洞穴自动虚拟环境(caveautomaticvirtualenvironments,cave)、外围设备和触觉(为vr提供输入的其他控制器)、内容捕获(相机、视频拼接)、内容工作室(游戏、直播、电影、新闻和纪录片)、工业应用(教育、医疗保健、房地产、建筑、旅游)、生产工具和服务(3d引擎、处理能力)、应用商店(用于vr媒体内容)等。在不实施下一代后高效视频编码(post-highefficiencyvideocoding,hevc)编解码器(其可专门设计用于3d和360度内容、用于360度视频内容的捕获、编码和传输,其被执行以构建vr内容)的情况下,vr内容面临许多挑战。因此,需要一种更有效地配置和消费vr内容的方案。技术实现要素:技术问题根据本公开的方面,提供了一种用于封装立体全向视频的数据的方法和装置。此外,根据本公开的方面,提供了一种基于梯形的区域式(region-wise)封装方法。此外,根据本公开的方面,提供了一种用于封装全向鱼眼(fisheye)视频的方法。技术解决方案根据本公开的一个方面,一种用于封装立体视频内容的方法包括:基于包括具有视差的多个全向视频的立体视频的数据,投影包括与多个全向视频相对应的多个第一视图的第一帧;发信号通知区域式封装信息;基于区域式封装信息,从被包括在多个第一视图中的多个第一区域中采样被包括在多个第二视图中的多个第二区域;以及基于区域式封装信息,封装包括多个第二视图的第二帧,其中,多个第一视图中的每一个包括360度视频或360度视频的一部分。根据本公开的另一方面,一种用于传输立体视频内容的方法包括:基于包括具有视差的多个全向视频的立体视频的数据,生成包括从多个全向视频投影的多个第一视图的第一帧;通过基于区域式封装信息来封装被包括在多个第一视图中的多个第一区域,生成包括多个第二视图的第二帧;以及传输关于所生成的第二帧数据,其中,多个第二视图包括与多个第一区域相对应的多个第二区域,并且该区域式封装信息包括关于多个第二区域中的每一个的形状、定向或转换的信息。根据本公开的另一方面,一种用于传输立体视频内容的装置包括:存储器;收发器;以及被配置为连接到存储器和收发器的至少一个处理器,其中,至少一个处理器被配置为基于包括具有视差的多个全向视频的立体视频的数据,生成包括从多个全向视频投影的多个第一视图的第一帧,通过基于区域式封装信息来封装被包括在多个第一视图中的多个第一区域,生成包括多个第二视图的第二帧,以及传输关于所生成的第二帧的数据;多个第二视图包括与多个第一区域相对应的多个第二区域,并且该区域式封装信息包括关于多个第二区域中的每一个的形状、定向或转换的信息。附图说明图1是示出实施根据本公开的用于封装立体全向视频的方法的计算机系统的配置的示例性图;图2示出了根据本公开的左/右立体360格式,以及图3示出了顶/底立体360格式;图4示出了单个采集时间实例的图像拼接、投影和区域式封装;图5是示出根据本公开的非区域式封装的示例性图;图6是示出根据本公开的分离且独立封装的示例性图;图7是示出根据本公开的分离且镜像封装的示例性图;图8是示出根据本公开的混合且独立封装的示例性图;图9是示出根据本公开的混合且成对式(pair-wise)封装的示例性图;图10是示出根据本公开的正多边形投影图像的封装方法的示例性图;图11是示出根据本公开的使用三角形图块(patch)的区域式封装方法的示例性图;图12是示出根据本公开的非区域式封装方法中使用的左区域和右区域的布局的示例性图;图13是示出根据本公开的非区域式封装方法中使用的上方区域和下方区域的布局的示例性图;图14示出了根据本公开的patch_shape的图块的形状;图15是示出根据本公开的用于根据等矩形投影(equirectangularprojection,erp)中的纬度来调整区域大小和重新定位区域的区域式封装方法的示例性图;图16是示出根据本公开的用于视口相关流(viewportdependentstreaming)的立方体投影的区域式封装的示例性图;图17是示出根据本公开的用于封装erp图像的方法的实施例的示例性图;图18是示出根据本公开的用于封装erp图像的方法的示例性图;图19是示出根据本公开的用于将等矩形投影转换成立方体状布局的方法的示例性图;图20是示出根据本公开的用于将等矩形投影转换成立方体状布局的另一实施例的示例性图;图21是示出根据本公开的用于将erp图像转换成立方体状erp的方法的示例性图;图22是示出根据本公开的截顶正四棱锥(truncatedsquarepyramid,tsp)封装方法的示例图;图23是示出根据本公开的tsp封装方法的实施例的示例性图;图24是示出根据本公开的tsp封装方法的另一实施例的示例性图;图25是示出根据本公开的包括两个圆形图像的典型鱼眼视频的示例性图;图26a是示出根据本公开的顶/底立体格式的立体鱼眼视频的示例性图;图26b是示出根据本公开的左和右立体格式的立体鱼眼视频的示例性图;图27是示出根据本公开的用于多视图的具有成对式格式的立体鱼眼视频的示例性图;图28是示出根据本公开的用于多视图的具有分组式格式的立体鱼眼视频的示例性图;图29是示出根据本公开的鱼眼相机的示例性图;图30示出了根据本公开的鱼眼相机中两个鱼眼图像的显示的视场(fieldofview,fov);图31示出了根据本公开的鱼眼相机中多个鱼眼图像的显示的fov和重叠的fov;图32是示出根据本公开的鱼眼相机的中心的示例性图;图33是示出根据本公开的本地fov的参数的示例性图;和图34是示出根据本公开的部分实施例的本地fov的示例性图。具体实施方式在下文中,将参考附图详细描述本公开的示例性实施例的操作原理。即使组件在不同的附图中示出,在可能的情况下,相同的附图标记在附图中表示相同的组件。在本公开的以下描述中,将省略相关已知功能或配置的详细描述,以免模糊本公开的主题。下面描述的术语是考虑到实施例中的功能来定义的,并且术语的含义可以根据用户或操作者的意图、惯例等而变化。因此,术语的定义应该基于贯穿说明书的内容。本公开可以具有各种修改和各种实施例,其中,现在将参考附图更全面地描述特定实施例。然而,应该理解的是,无意将本公开限制于所公开的具体形式,而是相反,本公开覆盖落入本公开的精神和范围内的所有修改、等同物和替代物。此外,应当理解,单数表达诸如“一个”和“该”也包括复数表达,除非上下文另有明确指示。因此,作为示例,“组件表面”包括一个或多个组件表面。尽管包括诸如第一、第二等的序数的术语可以用于描述各种元素,但是构成元素不受术语的限制。术语仅用于区分一个元素和其他元素。例如,在不脱离本公开的范围的情况下,第一元素可以被称为第二元素,并且类似地,第二元素也可以被称为第一元素。如本文所用,术语“和/或”包括一个或多个相关联项的任意和所有组合。本文使用的术语仅用于描述具体实施例,并不旨在限制本公开。如本文所用,单数形式也意图包括复数形式,除非上下文另有明确指示。在本公开中,诸如“包括”和/或“具有”的术语可以被解释为表示某个特征、数量、步骤、操作、构成元素、组件或其组合,但是不能被解释为排除一个或多个其他特征、数量、步骤、操作、构成元素、组件或其组合的存在或附加的可能性。除非另有定义,否则本文使用的所有术语,包括技术和科学术语,具有与本公开所属领域的普通技术人员共同理解的那些含义相同的含义。在通常使用的词典中定义的这些术语将被释义为具有与相关领域中的上下文含义相同的含义,并且除非在本公开的各种实施例中明确定义,否则不应被释义为具有理想的或过分正式的含义。根据本公开的各种实施例,电子设备可以包括通信功能。例如,终端可以是智能电话、平板个人计算机(personalcomputer,pc)、移动电话、视频电话、电子书阅读器、台式pc、膝上型pc、上网本pc、个人数字助理(personaldigitalassistant,pda)、便携式多媒体播放器(portablemultimediaplayer,pmp)、mp3播放器、移动医疗设备、相机或可穿戴设备(例如,头戴式设备(hmd)、电子服装、电子手镯、电子项链、电子附件、电子纹身或智能手表)。根据本公开的各种实施例,电子设备可以是具有通信功能的智能家电。智能家电可以是例如电视机、数字视盘(digitalvideodisk,dvd)播放器、音频播放器、冰箱、空调、真空吸尘器、烤箱、微波炉、洗衣机、烘干机、空气净化器、机顶盒、tv盒(例如,samsunghomesynctm、appletvtm或googletvtm)、游戏控制台、电子词典、便携式摄像机或电子相框。根据本公开的各种实施例,终端可以是医疗器械(例如,磁共振血管造影术(magneticresonanceangiography,mra)设备、磁共振成像(magneticresonanceimaging,mri)设备、计算机断层摄影(computedtomography,ct)设备和超声波设备)、导航设备、全球定位系统(globalpositioningsystem,gps)接收器、事件数据记录器(eventdatarecorder,edr)、飞行数据记录器(flightdatarecorder,fdr)、汽车信息娱乐设备、海洋电子设备(例如,船舶导航设备和陀螺罗盘)、航空电子设备、安全装备或工业或家用机器人。根据本公开的各种实施例,电子设备可以是家具或建筑物/结构、电子板、电子签名接收设备、投影仪和各种测量仪器(例如水表、电表、煤气表和电磁波表)的一部分,其中每个都具有通信功能。根据本公开的各种实施例,电子设备可以是上述设备的组合。此外,对于本领域技术人员来说,显然根据本公开的各种实施例的终端不限于上述设备。根据本公开的各种实施例,用于传输和接收vr内容的设备可以是例如电子设备。在下文中,本公开的实施例中使用的术语定义如下。图像可以是视频、静止图像等,并且图像内容可以包括视频、静止图像以及包括相关音频、字幕等的各种多媒体内容。vr内容包括提供图像作为360度视频、3d图像等的图像内容。媒体文件格式可以是符合各种媒体相关标准(诸如,基于国际标准化组织(internationalorganizationforstandardization,iso)的媒体文件格式(iso-basedmediafileformat,isobmff))的媒体文件格式。投影是指根据该处理的结果将360度视频的球形图像等投影到平面表面或图像帧上的处理。映射是指根据该处理的结果将根据投影的在平面表面上的图像数据映射到2d平面表面或图像帧的处理。全向媒体可以包括,例如,当用户使用头戴式显示器(hmd)时,可以根据用户的头部移动方向或视口方向呈现的图像或视频、和/或相关音频。视点可以被称为视场(fov),并且可以指用户在特定时间点要观看的图像区域(该图像区域可以是球形图像的区域等)。在下文中,将参照附图详细描述本公开的优选实施例。图1是示出实施根据本公开的用于封装立体全向视频的方法的计算机系统的配置的示例性图。同时,根据本公开实施例的用于封装立体全向视频的方法可以在计算机系统中被实施或者在记录介质中被记录。如图1所示,计算机系统可以包括至少一个处理器110和存储器120。处理器110可以是处理存储在存储器120中的指令的中央处理单元(centralprocessingunit,cpu)或半导体器件。处理器110可以是控制计算机系统100的所有操作的控制器。控制器可以通过读取和运行存储在存储器120中的程序代码来运行由计算机系统100执行的操作。计算机系统100可以包括用户输入设备150、数据通信总线130、用户输出设备160和存储装置140。上述组件中的每一个可以经由数据通信总线130执行数据通信。计算机系统还可以包括连接到网络180的网络接口170。存储器120和存储装置140可以包括各种类型的易失性或非易失性存储介质。例如,存储器120可以包括rom123和ram126。存储装置140可以包括非易失性存储器,诸如磁带、硬盘驱动器(harddiskdrive,hdd)、固态驱动器(solidstatedrive,ssd)、光学数据设备和闪存。因此,根据本公开实施例的用于封装立体全向视频的方法可以用计算机可运行方法来实施。当根据本公开实施例的用于封装立体全向视频的方法在计算机设备中执行时,计算机可读指令可以执行根据本公开的操作方法。同时,根据上述公开的用于封装立体全向视频的方法可以作为计算机可读记录介质上的计算机可读代码来实施。计算机可读记录介质包括存储计算机系统可读的数据的所有类型的记录介质。记录介质的示例是只读存储器(rom)、随机存取存储器(ram)、磁带、磁盘、闪存、光学数据存储设备等。并且,计算机可读记录介质可以分布在通过计算机通信网络连接的计算机系统中,并且作为可以以分布的方式读取的代码来存储和运行。在本公开中,提出了一种立体360度视频的区域式封装方法。另外,提出了一种使用多个图块(patch)的广义区域式封装方法。许多研究者和实践者正在研究每个投影的各种布局。已经发现,编码效率可以取决于布局的类型而显著提高。由特定图块指示的每个区域可以被重新采样,并从投影帧重新定位到封装帧。因此,该图块指定了要被封装的视频数据区域。提出了与三维几何形状(例如,六面体、八面体、二十面体等)的各个方面相对应的三个参数,以便允许可以由各种多面体指定的区域。这三个参数是patch_shape、patch_orientation和patch_transform。patch_shape表示图块的形状,即矩形、等腰三角形、直角三角形等。这里,图块可以是指被包括在封装帧的每个视图中的每个区域,或者可以是指被包括在投影帧的每个视图中的每个区域。patch_orientation表示指示各种形状的定向的、图块形状的旋转和翻转(左右镜像对称)。patch_transform表示由图块指定的图像数据的旋转和翻转。另外,提出了一种基于梯形的区域式封装方法。在关于全向媒体应用格式(omnidirectionalmediaapplicationformat,omaf)的国际会议上,协商了单像(monoscopic)/立体表示。许多vr播放器和服务平台可以播放和传输立体360度视频。取决于立体格式,可以支持左/右立体360度视频和顶/底立体360度视频。图2示出了根据本公开的左/右立体360格式,以及图3示出了顶/底立体360格式。图4示出了单个采集时间实例的图像拼接、投影和区域式封装。提出了一种根据本公开的区域式封装方法。该区域式封装方法可以灵活地将投影帧细分成多个区域。每个区域可以调整大小并重新定位到封装帧中。在下文中,将描述单像360度视频和立体360度视频两者的区域式封装方法。在单像360度视频的情况下,单个时间实例的输入图像被拼接以生成表示一个视图的投影帧。在立体360度视频的情况下,单个时间实例的输入图像被拼接以生成表示两个视图(每只眼睛一个)的投影帧。两个视图被映射到相同的封装帧,并由传统的二维(2d)视频编码器来编码。可选地,投影帧的每个视图可以被映射到封装帧。当使用多视图视频编码器时,左视图或右视图的封装帧序列可以从另一个视图独立编码和预测。虽然立体360度视频格式及其区域式封装方法已经达成一致,但是定义立体360度视频格式的布局的某些参数尚未被提出或采用。在本公开中,提出了封装帧中的立体360度视频的一些类型的布局定义。这里,每种类型都有自己的优势。例如,左视图和右视图的混合且独立封装(mixedandindependentpacking)方法可以在编码效率方面提供优异的性能,但是在视口相关流的基于瓦片(tile-based)的传输中,将左视图和右视图成对封装是合适的。区域式封装的语法和语义描述如下。参考图4,并发实例的图像bi被拼接、投影和映射到封装帧d。图4是示出图像拼接、投影和区域式封装处理的示意图。输入图像bi被拼接和投影到诸如球体或立方体的3d投影结构上。投影结构上的图像数据进一步被布置在2d投影帧c上。2d投影帧的格式由在编码独立媒体描述码点(codingindependentmediadescriptioncodepoint,cicp)或全向媒体应用格式(omaf)中定义的投影格式指示符来指示。应用可选的区域式封装以将2d投影帧c映射到一个或多个封装帧d。如果未应用区域式封装,则封装帧将与投影帧相同。以其他方式,通过指示一个或多个封装帧d的每个区域的位置、形状和大小,投影帧的区域被映射到一个或多个封装帧d。实际上,输入图像通过一个过程被转换成封装帧,而无需任何中间过程。在下文中,将描述立体360度视频封装的各种布局。在立体360度视频封装中,左视图和右视图两者都可以封装在同一个封装帧中。然后,当左视图和右视图的立体格式相同时,本地布局(nativelayout)的每个视图可以位于左区域或右区域。如果将区域式封装应用于每个视图或两个视图,则在每个实施例中各种布局都是可能的。为了定义每种类型的立体布局,采用两个参数。这两个参数是stereo_format和stereo_packing_type。stereo_format参数是指定立体格式(诸如并排(sidebyside)或顶底(topandbottom))的指示符。stereo_packing_type定义了立体区域式封装的布局类型。该布局类型涉及属于左视图或右视图的各个区域的位置是分离的、混合的、独立的还是彼此对应的。每种stereo_packing_type在编码效率和功能方面都有优势。在以下附图中,假设左/右立体360格式相同。图5是示出根据本公开的非区域式封装(non-region-wisepacking)方法的示例性图。无区域式封装(noregion-wisepacking)使用本地布局(nativelayout)的非区域式封装(non-region-wisepacking)而不是区域式封装是可能的。如果stereo_packing_type对应于非区域式封装,则使用本地布局的每个投影帧位于左区域和右区域,而无需混洗(shuffling)。使用本地布局的封装方法是最简单的布局,并且是快速提取和呈现每个视图的有效方法。由于投影帧和封装帧相同,所以图像数据的数据结构不变。图6是示出根据本公开的分离且独立封装(separateandindependentpacking)方法的示例性图。分离且独立封装如果stereo_packing_type对应于分离且独立封装,则具有投影的基本布局的每个投影帧可以位于左/右区域。然后,对应于每个视图的每个半帧通过区域式封装来被内部识别。每个视图是分离的,但是被包括在每个视图中的局部区域被重新采样并位于与同一视图相对应的半封装帧中。分离且独立封装布局对于快速提取和编码效率的提高是有效的。然而,每个视图在解码后必须被识别以用于呈现(rendering)。图7是示出根据本公开的分离且镜像封装(separateandmirroringpacking)方法的示例性图。分离且镜像封装如果stereo_packing_type对应于分离且镜像封装,则具有投影基本布局的每个投影帧可以位于左/右区域。然后,对应于每个视图的每个半帧通过区域式封装在内部识别。因此,每个视图是分离的,但是被包括在每个视图中的局部区域被重新采样,并且位于与同一视图相对应的半封装帧中。与分离且独立封装不同的是,一个视图的区域式封装方法与另一个视图的区域式封装方法相同。与分离且独立封装相比,可以节省比特。由于一个视图的区域式封装参数与另一个视图的区域式封装参数一致,所以不需要发信号通知一个视图的区域式封装参数。图8是示出根据本公开的混合且独立封装(mixedandindependentpacking)方法的示例性图。混合且独立封装如果stereo_packing_type对应于混合且独立封装,则一个视图的投影帧的每个区域被重新采样并布置在封装帧中的特定位置。对识别投影在同一封装帧上的左帧和右帧没有限制。混合且独立封装的优点是编码效率。根据混合且独立封装,可以找到在压缩方面具有完全灵活性的最佳布局。然而,从封装帧中提取视图是复杂的,并且该视图必须被识别以用于呈现。图9是示出根据本公开的混合且成对式封装(mixedandpair-wisepacking)的示例性图。混合且成对式封装如果stereo_packing_type对应于混合且成对式封装,则左视图的投影帧的每个区域被重新采样并布置在封装帧中的特定位置。然后,右视图的投影帧的对应区域(相同位置、相同大小)以与左视图中相同的方式被采样,并且位于左视图的投影区域的右方(当使用顶/底立体时,右视图区域可以位于左视图的封装区域的底部)。混合且成对式封装的主要优点是左区域和右区域两者都以成对式的方式位于投影帧中。因此,它适用于基于瓦片的传输和呈现。以成对式的方式来封装的区域可以是瓦片。当传输取决于当前视口的特定瓦片时,因为每个瓦片包括左视图和右视图,所以立体视图可以总是显示。表示右视图的区域式封装参数的比特也可以被保存。图10a至图10c是示出根据本公开的正多边形投影图像的封装方法的示例性图。对识别投影在同一封装帧上的左帧和右帧没有限制。混合且独立封装的优点是编码效率。根据混合且独立封装,可以找到在压缩方面具有完全灵活性的最佳布局。然而,从封装帧中提取视图是复杂的,并且该视图必须被识别以用于呈现。在本公开中,将提出每个投影的多个布局,以便在编码效率和存储器使用方面找到最优异的布局。通过观察封装后的投影被执行得更好,可以将用以消除不必要投影冗余的几种封装方法与本地展开或铺开(nativeunfoldingorunrolling)方法进行比较。对于基于二十面体的投影(icosahedron-basedprojection,isp),据报道,本地布局和要封装的紧凑投影布局之间的压缩效率差异为9.5%(全帧内(allintra,ai))、4.9%(随机存取(randomaccess,ra))、3.0%(低延迟b图片(lowdelaybpicture,ld-b))、或3.3%(低延迟p图片(lowdelayppicture,ld-p))。基于立方体投影(cube-basedprojection,cmp)的实验结果示出了在编码效率方面,4x3的本地布局平均比3x2紧凑布局高1.4%(ai)、1.3%(ra)、1.7%(低延迟b图片,ld-b)或1.7%(低延迟p图片,ld-p)。没有发现显著的rd增益。基于这些结果,isp的基于三角形的封装预计比cmp的基于矩形的封装更有效。图11a和图11b是示出根据本公开的使用三角形图块的区域式封装方法的示例性图。一般区域式封装为了确定需要哪种封装方法,本公开应该预先确定采用omaf的哪种投影方法。然而,本公开提出了一种广义的区域式封装方法,该方法使用多个图块来使能在封装验证实验(packverificationexperiments,pack-ve)范围内的基于三角形的封装方法。在一些投影方法中,假设矩形正多面体(立方体)和三角形正多面体(八面体、正六面体等)可以通过统一资源指示符(uniformresourceindicator,uri)或其他扩展机制,以可能的本地投影方法或可选的投影方法在omaf中使用。这里,优选使用广义封装,其中该广义封装可以利用基于立方体的投影(cmp)、基于八面体的投影(octahedronbasedprojection,ohp)、基于二十面体的投影(isp)、分段球体投影(segmentedsphereprojection,ssp)和截顶正四棱锥(tsp)来提高编码效率。在本公开提出的区域式封装方法中,由特定图块指示的每个区域可以被重新采样,并且从投影帧重新定位到封装帧。因此,图块被定形为指定要被封装的图像数据。提出了三个参数(patch_shape、patch_orientation和patch_transform),使得与各种3d几何形状(例如,立方体、八面体、规则六面体等)的各方面相对应的区域可以由各种正多面体指定。patch_shape表示图块的形状(矩形、等边三角形、直角三角形等),patch_orientation表示指示各种形状的定向的、图块形状的旋转和翻转,以及patch_transform表示由图块指定的图像数据的旋转和翻转。图11a是示出投影帧的三角形图块的参数的示例性图,并且示出了被包括在投影帧中的区域的左上角坐标(proj_region_top_left_x,proj_region_top_left_y)、宽度(proj_region_width)、高度(proj_region_height)、图块类型(patch_type,patch_shape)和图块定向(patch_orientation)。如果图块类型为2,则意味着图块形状是等边三角形。如果图块定向为2,则意味着投影帧的区域是通过将输入图像的区域逆时针方向旋转90度而生成的。图11b是示出封装帧的三角形图块的参数的示例性图,并且示出了被包括在封装帧中的区域的左上角坐标(pack_region_top_left_x,pack_region_top_left_y)、宽度(pack_region_width)、高度(pack_region_height)和图块转换(patch_transform)。如果图块类型为2,则意味着图块的形状是等边三角形。如果图块转换为6,则意味着封装帧的区域是通过将投影帧的区域逆时针方向旋转270度而生成的。5.语法表1是示出用于执行根据本公开的立体区域式封装方法的数据结构的语法。【表1】6.语义表2示出了指定立体360度视频格式的stereo_format的设置值。【表2】值stereo_format0x00保留0x01左/右立体360格式0x02顶/底立体360格式0x03-0xff保留表3示出了指定立体360度视频的区域式封装类型的stereo_packing_type的设置值。【表3】值stereo_packing_type0x00保留0x01无区域式封装(本地)0x02分离且独立封装0x03分离且镜像封装0x04混合且独立封装0x05混合且镜像封装0x06-0xff保留如果stereo_packing_type为1,则它指定具有位于左区域和右区域(或上区域和下区域)投影的本地布局且无需混洗的投影帧。如果stereo_packing_type为2,则具有本地布局的每个投影帧位于左区域或右区域。然后,对应于每个视图的每个半帧通过区域式封装来内部识别。每个视图是分离的,但是被包括在每个视图中的局部区域被重新采样并位于对应于同一视图的半封装帧中。分离-独立封装布局对于快速提取和编码效率的提高是有效的。然而,每个视图必须被解码,然后被识别以用于呈现。如果stereo_packing_type为3,则具有投影的本地布局的每个投影帧可以位于左/右区域。然后,对应于每个视图的每个半帧通过区域式封装来被内部识别。因此,每个视图是分离的,但是被包括在每个视图中的局部区域被重新采样,并且位于对应于同一视图的半封装帧中。与分离且独立封装不同的是,一个视图的区域式封装方法与另一个视图的区域式封装方法一致。如果stereo_packing_type为4,则一个视图的投影帧的每个区域将被重新采样并布置在封装帧中的特定位置。对识别投影在同一封装帧上的左帧和右帧没有限制。如果stereo_packing_type为5,则左视图的投影帧的每个区域被重新采样并布置在封装帧中的特定位置。然后,右视图的投影帧的对应区域(相同位置、相同大小)以与左视图中相同的方式被采样,并且位于左视图的投影区域的右侧(当使用顶/底立体时,右视图区域可以位于左视图的封装区域的底部)。图12a至图12f是示出了根据本公开的非区域式封装方法中使用的左和右区域的布局的示例性图,并且示出了当stereo_packing_type是无区域式封装(本地(native))、分离且独立封装、分离且镜像封装、混合且独立封装或者混合且镜像封装时的投影帧、以及封装帧的左区域和右区域的布局。图13a至图13f是示出了根据本公开的非区域式封装方法中使用的上部区域和下部区域的布局的示例性图,并且示出了当stereo_packing_type是无区域式封装(本地)(0x01)、分离且独立封装(0x02)、分离且镜像封装(0x03)、混合且独立封装(0x04)或者混合且镜像封装(0x05)时的投影帧、以及封装帧的上部区域和下部区域的布局。width_proj_frame表示投影帧的宽度。height_proj_frame表示投影帧的高度。num_of_regions表示由图块指定的封装区域的数量。如果uniform_region_size为1,则指示投影帧被划分成具有由uniform_region_width和uniform_region_height指定的相同大小的区域。如果uniform_region_size为0,则指示投影帧的第i区域(i是从0到num_of_regons-1的整数)由proj_region_width[i]和proj_region_height[i]指定的大小来指定。uniform_region_width和uniform_region_height指定投影帧的每个区域具有相同的大小宽度和高度。proj_region_width[i]和proj_region_height[i]指定投影帧的第i个区域。patch_shape[i]指定要重新定位到封装帧的第i个区域的形状。表4示出了根据patch_shape的投影帧的每个区域的形状。【表4】值patch_shape0x00保留0x01矩形0x02等边三角形0x03直角三角形0x04-0xff保留图14a至图14c示出了根据本公开的patch_shape的图块的形状。图14a示出patch_shape是0x01(矩形),图14b示出patch_shape是0x02(等边三角形),以及图14c示出patch_shape是0x03(直角三角形)。patch_orientation[i]指定由patch_shape[i]指示的原始图块形状(投影帧的第i个区域)旋转和翻转后的图块的形状。表5示出了根据patch_orientation[i]的旋转或翻转的语义。【表5】值语义0x00保留0x01无旋转或翻转0x0290度旋转(逆时针)0x03水平翻转后90度旋转(逆时针)0x04180度旋转(逆时针)0x05水平翻转后180度旋转(逆时针)0x06270度旋转(逆时针)0x07水平翻转后270度旋转(逆时针)0x08-0xff保留patch_transform[i]指定要被重新定位到封装帧的由patch_orientation[i]和patch_shape[i]指定的图像数据的旋转和翻转。表6示出了根据patch_transform[i]的旋转或翻转语义。【表6】值语义0x00保留0x01无旋转或翻转0x0290度旋转(逆时针)0x03水平翻转后90度旋转(逆时针)0x04180度旋转(逆时针)0x05水平翻转后180度旋转(逆时针)0x06270度旋转(逆时针)0x07水平翻转后270度旋转(逆时针)0x08-0xff保留packed_region_width[i]和packed_region_width[i]指定与投影帧的第i个区域相对应的封装帧的封装区域的宽度和高度。packed_region_top_left_x[i]和packed_region_top_left_y[i]指定与投影帧的第i个区域相对应的封装帧的封装区域的左上角的水平和垂直坐标。图15a至图15c是示出根据本公开的用于根据等矩形投影(erp)中的纬度来调整区域大小并重新定位区域的区域式封装方法的示例性图。在omaf中,包括了一种通过消除冗余区域,用于提高编码效率的区域式封装方法。例如,erp拼接球体的每条平行线,并将球面转换为平坦的矩形区域。在两极方向(polardirection)上拼接的范围极大地增加。参考图15a至图15c,通过减小极区(poleregion)的面积,可以提高投影帧的编码效率。例如,在epr中,对应于高纬度区域(大于60度或小于-60度)的第一区域和第五区域以1:3的比率进行采样,对应于中纬度区域(大于30度且小于等于60度,或小于-30度且大于等于-60度)的第二区域和第四区域以2:3的比率进行采样,以及对应于低纬度区域(小于等于30度且大于等于-30度)的第三区域以1:1的比率进行采样。采样区域可以如图15c所示被重新定位,从而获得封装帧。图16a和图16b是示出根据本公开的用于视口相关流的立方体投影的区域式封装的示例性图。在视口相关流中,为了降低投影帧的比特率,只有当前视口区域以高质量编码,并且其他区域以低质量编码。图16a和图16b是示出投影帧的立方体映射的区域式封装的示例性图,该投影帧由前表面和下采样的、1/5的五个表面(左表面、右表面、后表面、顶表面和底表面)构成。这些情况通常可以通过将矩形映射到矩形来转换。然而,因为采样率变化很大,基于矩形的映射可能会引起边界处的子区域之间的不连续性。这种不连续性降低了编码效率,并且具有视觉缺陷。为此,为了提高投影帧的编码效率,需要更灵活的区域式封装。基于梯形的区域式封装为了提高区域式封装的灵活性,提出了一种矩形到梯形的映射。矩形到梯形的映射使能各种高效的区域式封装方法。如果梯形的短边是1个像素,则梯形变成三角形。图17是示出根据本公开的用于封装erp图像的方法的实施例的示例性图。矩形erp如上所述,erp生成了一个极大地增加的极区。结果,该极区中的冗余像素可能不必要地降低视频的编码效率。图17示出了降低等矩形全景的极区采样率的区域式封装方法。投影帧首先被划分成八个矩形子区域,并且使用逐行下采样,每个区域被转换成三角形状,并且重新定位以形成矩形格式。参考图17的中间图,在根据本公开的封装erp图像的方法的一个实施例中,极区中的像素数量极大地减少,而相对赤道区中的像素数量保持不变。此外,封装帧由在子区域之间没有不连续性的矩形布局表示,并且空白像素不包含新信息。图18是示出根据本公开的用于封装erp图像的方法的示例性图。根据图17所示的方法,当封装erp图像时,在各个区域的边界处保持连续性,使得在解封装时可以减轻边界处的失真。在根据图18的方法封装时,具有可以保持每个区域的边界处的图像的连续性的优点。图19是示出根据本公开的用于将等矩形投影转换成立方体状布局的方法的示例性图。立方体状erp通过使用将矩形映射到三角形的方法,等矩形投影帧可以被转换成立方体状布局。参考图19,顶部区域和底部区域(即,极区)被划分成四个子区域,并且每个子区域被转换成三角形区域并被重新定位到立方体状布局。图20是示出根据本公开的用于将等矩形投影转换成立方体状布局的另一实施例的示例性图。图19是4x3立方体映射布局的示例,并且图20是3x2立方体映射布局的示例。图21是示出根据本公开的用于将erp图像转换成立方体状erp的方法的示例性图。图21示出了erp图像、根据图20的4x3立方体映射布局和根据图20的3x2立方体映射布局。2.3.截顶正四棱锥(tsp)封装方法图22是示出根据本公开的tsp封装方法的示例性图。通过tsp封装方法,立方体映射帧可以转换为tsp。参考图22,例如,前(front)可以是以1:1的比率采样的正方形,后(back)可以是以1∶9的比率采样的正方形,并且右(right)、左(left)、顶(top)和底(bottom)中的每一个可以是以2:9的比率采样的等腰梯形。根据图22的tsp封装方法,存在减少边界处失真的效果。将描述本公开提出的参数。图23是示出根据本公开的tsp封装方法的实施例的示例性图。为了支持提出的矩形到梯形转换映射,提出了相应的映射以包括四个参数。封装帧的矩形区域由四个参数定义。这四个参数是左上顶点的水平和垂直坐标(pack_reg_left,pack_reg_top)、宽度和高度(pack_reg_width、pack_reg_height)。然后,在矩形区域内,矩形的边被设置为由指示起点(startpoint)2310的位置的偏移信息(pack_sb_offset)2320和长度(pack_sb_length)2330表示的梯形的短边,以定义梯形区域。图24是示出根据本公开的tsp封装方法的另一实施例的示例性图。参考图24,为了指示哪一边是较短边,定义了另一个参数(pack_sb_indicator)。例如,如果pack_sb_indicator为1,则顶边可以较短,如果pack_sb_indicator为2,则底边可以较短。如果pack_sb_indicator为3,则左边可以较短,如果pack_sb_indicator为4,则右边可以较短。语法表7示出了实行tsp封装方法的语法。【表7】语义proj_frame_width指定投影帧的宽度。proj_frame_height指定投影帧的高度。number_of_regions指定投影帧的子区域的数量。proj_reg_top[n]和proj_reg_left[n]指定投影帧的第n个矩形子区域的左上顶点的x和y坐标,并且proj_reg_width[n]和proj_reg_height[n]指定投影帧的第n个矩形子区域的宽度和高度。pack_reg_top[n]和pack_reg_left[n]指定封装帧第n个矩形子区域的左上顶点的x和y坐标,并且pack_reg_width[n]和pack_reg_height[n]指定封装帧的第n个矩形子区域的宽度和高度。pack_sb_offset[n]指定从投影帧的第n个矩形子区域的左上顶点到较短边的起点的距离。pack_sb_length[n]指定投影帧的第n个矩形子区域的较短边的长度。pack_sb_indicators[n]指定与投影帧的第n个矩形子区域相对应的封装帧的第n个梯形子区域的较短边的位置。如果pack_sb_indicators[n]大于0,则投影帧的第n个矩形子区域是梯形,并且如果pack_sb_indicators[n]为零,则投影帧的第n个矩形子区域是矩形。表8示出了根据pack_sb_indicators[n]的较短边的位置。【表8】值pack_sb_indicators[n]0无较短的底部(矩形区域)1顶边2底边3左边4右边proj_reg_rotation[n]指定了与投影帧的第n个子区域相对应的图像数据的顺时针旋转。表9示出了根据proj_reg_rotation[n]的旋转角度。【表9】值pack_sb_indicators[n]0无旋转190度旋转2180度旋转3270度旋转在使用多个鱼眼相机的vr360系统中,由鱼眼相机拍摄的圆形图像被直接编码和传输。在接收端,根据用户的预期视口直接呈现解码后的图像/视频。这种方法对于低延迟实时流传输或高质量360度视频传输非常有用,因为在没有中间投影方法(诸如erp或立方体映射投影)的情况下拍摄的图像被直接呈现。在先前会议上,就单像/立体、区域式封装和鱼眼相机的构思和指示符以及透镜参数达成了一致。尽管在360度视频的预拼接封装中已经考虑了单像/立体封装布置,但是多个立体鱼眼图像的封装尚未被解决。不同于其中矩形或三角形区域可以灵活封装的360度视频的预拼接封装,主要提出了一种典型的鱼眼相机,以圆形的形式呈现视频数据。鱼眼的立体封装的各种布局图25是示出根据本公开的包括两个圆形图像的典型鱼眼视频的示例性图。图26a是示出根据本公开的顶/底立体格式的立体鱼眼视频的示例性图,以及图26b是示出根据本公开的左和右立体格式的立体鱼眼视频的示例性图。图27是示出根据本公开的用于多视图的具有成对式格式的立体鱼眼视频的示例性图。图28是示出根据本公开的用于多视图的具有分组式格式的立体鱼眼视频的示例性图。全向鱼眼视频在没有投影和区域式封装处理器的情况下,鱼眼相机拍摄的多个圆形图像可以直接投影到图像帧上。图像帧可以包括全向鱼眼视频。在接收端,解码后的全向鱼眼视频根据用户的预期视口使用发信号通知的鱼眼视频参数被拼接和呈现。该鱼眼视频参数包括具有视场(fov)的透镜失真校正(lensdistortioncorrection,ldc)参数、具有红-绿-蓝(rgb)增益的透镜阴影补偿参数、显示的视场信息和相机外部参数中的至少一个。语法表10示出了用于多视图的立体鱼眼视频的语法。【表10】图29是示出根据本公开的鱼眼相机的示例性图。每个术语的语义如下。语义num_circular_images指定每个样本的编码图片中的圆形图像的数量。num_circular_images可以是2,或者可以是除0以外的整数。image_center_x是指示在亮度样本中应用该语法的每个样本的编码图像中的圆形图像中心的水平坐标的固定点16,16的值。image_center_y是指示在亮度样本中应用该语法的每个样本的编码图像中的圆形图像中心的垂直坐标的固定点16,16的值。full_radius是指示在亮度样本中从圆形图像中心到全圆图像边缘的半径的固定点16,16的值。frame_radius是指示在亮度样本中从圆形图像中心到最近图像边界的边缘的半径的固定点16,16的值。圆形鱼眼图像可以被相机帧截断,并且frame_radius是指示不可用像素的圆形的半径。scene_radius是指示在亮度样本中从圆形图像的中心到最近图像区域的边缘的半径的固定点16,16的值。该图像区域是保证没有来自相机机身的障碍物并且在拼接时没有过大的透镜失真的区域。图30示出了根据本公开的鱼眼相机中的两个鱼眼图像的显示fov。image_rotation是以角度单位指示圆形图像的旋转量的固定点16.16的值。其他视频相机制造商对每个拍摄的单独鱼眼图像使用不同的坐标系或不同的布局。图像范围从-90度到+90度,或者从-180度到+180度。image_flip指示图像是否翻转或者图像翻转了多少。因此,需要应用反向翻转操作。如果image_flip为0,则图像不翻转。如果image_flip为1,则图像垂直翻转。如果image_flip为2,则图像水平翻转。如果image_flip为3,则图像水平翻转,并且垂直翻转。image_scale_axis_angle,image_scale_x和image_scale_y是指示图像沿哪个轴缩放或图像缩放了多少的固定点16.16的值。通过以角度单位指示image_scale_axis_angle的值,轴由单个角度定义。0度角(image_scale_axis_angle)意味着水平矢量是完全水平的,并且垂直矢量是完全垂直的。image_scale_x和image_scale_y的值分别指示平行于轴和垂直于轴的方向的缩放比率。field_of_view是以角度单位指示鱼眼透镜的fov的固定点16.16的值。半球鱼眼透镜的典型值(field_of_view)是180度。num_angle_for_displaying_fov指示角度的数量。如果num_angle_for_displaying_fov为12,则该鱼眼图像被划分成12个扇形。每个扇形的角度是30度。显示的fov和重叠的fov的值是顺时针定义的。displayed_fov指示呈现的和显示的fov以及每个鱼眼相机图像的相应图像区域。overlapped_fov指示多个圆形图像之间在fov方面的重叠区域。参数表示鱼眼图像之间的关系。另一方面,scene_radius表示鱼眼透镜和相机机身之间的关系。如果num_circular_images的值为2,则displayed_fov的基本值为180度。然而,上述值可能会取决于透镜和内容的特性而变化。参考图31,例如,在具有displayed_fov值的拼接质量中,如果左相机是170度且右相机是190度,这比基本值(180度)具有更好的质量,则可以获得更新的displayed_fov值。图31示出了根据本公开的鱼眼相机中多个鱼眼图像的显示的fov和重叠的fov。然而,在多个鱼眼图像的情况下,单个displayed_fov值不能描述每个鱼眼图像的准确区域。参考图31,displayed_fov(黑色部分)根据方向而变化。为了根据方向描述displayed_fov,引入了num_angle_for_displaying_fov,并以顺时针方向定义了displayed_fov和overlapped_fov。图32是示出根据本公开的鱼眼相机的中心的示例性图。num_polynomial_coefficients是指定多项式中存在的系数的数量的整数。多项式系数列表polynomial_coefficient_k是指示描述鱼眼空间到非失真平面图像的转化的多项式系数的固定点16.16的值。多项式的描述可以在scaramuzza等人撰写的“全向相机校准”中找到。num_local_fov_region指示具有另一fov的局部拟合区域的数量。start_radius、end_radius、start_angle和end_angle指示改变要局部显示的实际fov的局部拟合/扭曲的区域。radius_delta指示表示对于每个半径的另一fov的delta值。angle_delta指示表示对于每个角度的另一fov的delta值。local_fov_weight指示由start_radius、end_radius、start_angle、end_angle、角度索引i和半径索引j指定的位置的fov的权重值。图33是示出根据本公开的局部fov的参数的示例性图。图34是示出根据本公开的部分实施例的局部fov的示例性图。num_polynomial_coefficeients_lsc可以是透镜阴影曲线的多项式逼近阶。polynomial_coefficient_k_lsc_r可以是与固定点16.16格式中的红色分量的透镜阴影曲线近似的多项式系数。polynomial_coefficient_k_lsc_g可以是与固定点16.16格式中的绿色分量的透镜阴影曲线近似的多项式系数。polynomial_coefficient_k_lsc_b可以是与固定点16.16格式中的蓝色分量的透镜阴影曲线近似的多项式系数。num_deadzones是指示该语法应用的每个样本的编码图片中的死区(deadzone)的数量的整数。deadzone_left_horizontal_offset、deadzone_top_vertical_offset、deadzone_width和deadzone_height是指示死区矩形区域的位置和大小的整数值。像素不能用于死区。deadzone_left_horizontal_offset和deadzone_top_vertical_offset分别指示亮度样本中编码图像中的死区的左上角的水平坐标和垂直坐标。deadzone_width和deadzone_height分别指示亮度样本中死区的宽度和高度。为了保存用于表示视频的比特,死区中的所有像素被设置为相同的像素值(例如,全黑)。一种用于传输立体视频内容的方法可以包括:基于包括具有视差的多个全向视频的立体视频的数据,生成包括从多个全向视频投影的多个第一视图的第一帧;通过基于区域式封装信息封装被包括在多个第一视图中的多个第一区域来生成包括多个第二视图的第二帧;以及传输关于所生成的第二帧的数据,其中,多个第二视图包括对应于多个第一区域的多个第二区域,并且区域式封装信息包括关于多个第二区域中的每一个的形状、定向或转换的信息。区域式封装信息可以进一步包括指示立体视频是具有左/右立体360格式还是顶/底立体360格式的信息。此外,区域式封装信息可以进一步包括立体封装类型,其指示非区域式封装、分离且独立封装、分离且镜像封装、混合且独立封装以及混合且成对式封装中的一种。关于多个第二区域中的每一个的形状的信息可以指示多个形状中的一个作为多个第二区域中的每一个的形状,并且多个形状可以包括梯形。此外,根据本公开的用于传输立体视频内容的方法还可以包括基于由多个鱼眼透镜获得的图像在多个全向视频当中生成一个全向视频,其中关于该一个全向视频的信息可以包括指示通过根据相对于中心的特定角度划分由多个鱼眼透镜中的每一个获得的图像而获得的划分区域的数量的信息;指示划分区域中的每一个中对应于视场(fov)的区域的信息;以及指示在划分区域中的每一个中与由另一鱼眼透镜获得的图像重叠的区域的信息。此外,多个第一视图中的每一个可以是球形投影图像、等矩形投影图像(erp图像)或正多面体投影图像,并且正多面体投影图像可以是四面体投影图像、立方体投影图像、正八面体投影图像、正十二面体投影图像或正二十面体投影图像。区域式封装信息还可以包括多个第一区域的位置信息和大小信息以及多个第二区域的位置信息和大小信息。此外,当立体封装类型指示非区域式封装时,多个第一区域中的每一个的位置信息和大小信息可以与多个第二区域中相应的第二区域的位置信息和大小信息一致。此外,当立体封装类型指示分离且独立封装时,多个第二视图可以分离和独立地封装。此外,当立体封装类型指示分离且镜像封装时,多个第二视图可以分离和以一致的方式封装。此外,当立体封装类型指示混合且独立封装时,多个第二视图可以彼此混合并独立封装。当立体封装类型指示混合且成对式封装时,多个第二视图可以彼此混合、成对和封装。此外,多个第一视图可以是包括前面、后面、左面、右面、顶面和底面的立方体投影图像,多个第二区域可以分别对应于前面、后面、左面、右面、顶面和底面,多个第二区域当中的对应于左面、右面、顶面和底面的区域中的每一个可以具有梯形形状,并且多个第二区域当中的对应于前面的区域的大小可以大于对应于后面的区域的大小。尽管已经参考附图详细描述了本公开,但是应当理解,本公开不限于上述实施例。本领域技术人员将理解,各种修改和改变当然是可能的。因此,本公开的保护范围不应局限于上述实施例,而是应由所附权利要求的描述来确定。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1