CN111052750A - 用于点云流传输的方法和装置 - Google Patents

用于点云流传输的方法和装置 Download PDF

Info

Publication number
CN111052750A
CN111052750A CN201880056434.XA CN201880056434A CN111052750A CN 111052750 A CN111052750 A CN 111052750A CN 201880056434 A CN201880056434 A CN 201880056434A CN 111052750 A CN111052750 A CN 111052750A
Authority
CN
China
Prior art keywords
view
field
client device
bandwidth
objects
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201880056434.XA
Other languages
English (en)
Other versions
CN111052750B (zh
Inventor
柳成浩
X.侯
I.布瓦齐齐
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of CN111052750A publication Critical patent/CN111052750A/zh
Application granted granted Critical
Publication of CN111052750B publication Critical patent/CN111052750B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/238Interfacing the downstream path of the transmission network, e.g. adapting the transmission rate of a video stream to network bandwidth; Processing of multiplex streams
    • H04N21/2385Channel allocation; Bandwidth allocation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/266Channel or content management, e.g. generation and management of keys and entitlement messages in a conditional access system, merging a VOD unicast channel into a multicast channel
    • H04N21/2662Controlling the complexity of the video stream, e.g. by scaling the resolution or bitrate of the video stream based on the client capabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • G06T15/30Clipping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • G06T15/20Perspective computation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/21Server components or server architectures
    • H04N21/218Source of audio or video content, e.g. local disk arrays
    • H04N21/21805Source of audio or video content, e.g. local disk arrays enabling multiple viewpoints, e.g. using a plurality of cameras
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • H04N21/234345Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements the reformatting operation being performed only on part of the stream, e.g. a region of the image or a time segment
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • H04N21/234354Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements by altering signal-to-noise ratio parameters, e.g. requantization
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/24Monitoring of processes or resources, e.g. monitoring of server load, available bandwidth, upstream requests
    • H04N21/2402Monitoring of the downstream path of the transmission network, e.g. bandwidth available
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/65Transmission of management data between client and server
    • H04N21/658Transmission by the client directed to the server
    • H04N21/6587Control parameters, e.g. trick play commands, viewpoint selection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/81Monomedia components thereof
    • H04N21/816Monomedia components thereof involving special video data, e.g 3D video
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/16Indexing scheme for image data processing or generation, in general involving adaptation to the client's capabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10028Range image; Depth image; 3D point clouds
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/08Bandwidth reduction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/12Bounding box
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2215/00Indexing scheme for image rendering
    • G06T2215/16Using real world measurements to influence rendering

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Geometry (AREA)
  • Computer Graphics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computing Systems (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

公开了用于识别要流传输的三维(3D)内容的系统和方法。一种方法包括:接收指示客户端设备的视场的信息;以及识别可用于将3D内容流传输到客户端设备的带宽量。所述方法包括:通过针对所述对象中的每一个对象执行以下步骤来为所述对象中的一个或多个对象分配带宽:基于每个对象的位置确定每个对象是否在客户端设备的视场内;为至少部分地在视场中的对象分配更大的带宽量。所述方法包括根据分配的带宽将3D内容流传输到客户端设备。

Description

用于点云流传输的方法和装置
技术领域
本公开一般涉及视场感知点云流传输。更具体地,本公开涉及确定对象和/或节点是否在客户端设备的视场内,并且跨包括视场内的对象和视场外的对象的多个对象分配比特率(带宽)。
背景技术
虚拟现实体验正变得越来越重要。例如,由于功能强大的手持设备(诸如智能电话)已经可用,360°视频正在作为体验沉浸式视频的新方法而出现。随着VR相关技术的发展,用户可以通过使用各种设备来观看360°内容。与用户观看平面图像相比,用户观看360°内容(诸如视频和图像)感觉更加沉浸。360°视频通过捕捉360°的世界视野,为消费者提供沉浸式的“现实生活”、“身临其境”体验。
发明内容
技术问题
本公开提供了用于视场感知点云流传输的方法和装置。
技术方案
在第一实施例中,提供了一种用于识别要流传输的三维(3D)内容的服务器。所述服务器包括:存储器,被配置为存储用于3D内容中的多个对象的3D点云数据;通信接口,被配置为从客户端设备接收指示用于3D内容的客户端设备的视场的信息;以及处理器,用于识别可用于将3D内容流传输到客户端设备的带宽量,以及为对象中的一个或多个对象分配用于流传输3D点云数据的可用带宽,其中,为了分配可用带宽,处理器被配置为针对所述对象中的一个或多个对象中的每个对象:基于每个对象的位置,确定每个对象是否在客户端设备的视场内;为至少部分地在客户端设备的视场内的对象分配比不在客户端设备的视场内的对象更大的带宽量,其中,通信接口还被配置为根据分配的带宽将3D内容流传输到客户端设备。
在第二实施例中,提供了一种用于识别要流传输的三维(3D)内容的方法。所述方法包括:存储用于3D内容中的多个对象的3D点云数据;从客户端设备接收指示用于3D内容的客户端设备的视场的信息;识别可用于将3D内容流传输到客户端设备的带宽量;针对所述对象中的一个或多个对象,分配用于流传输3D点云数据的带宽,其中,针对所述对象中的一个或多个对象中的每个对象分配带宽包括:基于每个对象的位置,确定每个对象是否在客户端的视场内;为至少部分地在客户端设备的视场内的对象分配比不在客户端设备的视场内的对象更大的带宽;以及根据分配的带宽将3D内容流传输到客户端设备。
在第三实施例中,一种非暂时性计算机可读介质,其包括用于识别要流传输的三维(3D)内容的程序代码,所述程序代码在由处理器执行时使处理器为存储用于3D内容中的多个对象的3D点云数据,经由通信接口从客户端设备接收指示用于3D内容的客户端设备的视场的信息,识别可用于将3D内容流传输到客户端设备的带宽量,针对所述对象中的一个或多个对象,分配用于流传输3D点云数据的带宽,其中,针对所述对象中的一个或多个对象中的每个对象分配带宽包括:基于每个对象的位置确定每个对象是否在客户端设备的视场内;为至少部分地在客户端设备的视场内的对象分配比不在客户端设备的视场内的对象更大的带宽量;以及根据分配的带宽将3D内容流传输到客户端设备。
根据以下附图,描述和权利要求,其他技术特征对于本领域技术人员而言将是清楚的。
发明的有益效果
本公开提供了用于视场感知的点云流传输的方法和装置。
附图说明
为了更完整地理解本公开及其优点,现在结合附图参照以下描述,其中:
图1示出了根据本公开的各种实施例的示例计算系统。
图2和图3示出了根据本公开的各种实施例的计算系统中的示例设备。
图4示出了根据本公开的一个实施例的用于三维(3D)流传输服务的系统400的示例性概述。
图5示出了根据本公开的实施例的3D点云的层级结构的示例性多个级别。
图6示出了根据本公开的一个实施例的、可以由服务器执行的用于确定每个节点是否在视场区域内的方法的示例性流程图600。
图7A和图7B示出了根据本公开的实施例的用于展示确定可见点的方法的示例性示图。
图8示出了根据本公开的一个实施例的用于计算点的(x,y,z)window的方法的示例性流程图。
图9示出了根据本公开的一个实施例的用于展示如何确定多个对象的节点的层级级别是否在视场的范围内的示例性示图。
图10是根据本公开的一个实施例的用于多个对象的视场感知点云流传输的方法的示例性流程图。
图11示出了根据本公开的一个实施例的用于视场感知点云流传输的方法的另一示例性流程图。
图12A至图12C示出了根据本公开的一个实施例的用于展示如何确定单个对象的层级节点是否在视场的范围内的示例性示图。
图13示出了根据本公开的一个实施例的用于由多个节点组成的点云对象的示例性示图1300。
图14示出了根据本公开的一个实施例的用于视场感知点云流传输的方法的示例性流程图1400。
图15示出根据本公开的一个实施例的用于基于来自客户端设备的反馈的视场感知点云流传输的另一示例性流程图1500。
图16示出了根据本公开的一个实施例的用于基于比特率反馈为对象分配比特率(或带宽)的方法的示例性流程图。
具体实施方式
在进行下面的详细描述之前,阐明整个专利文件中使用的某些单词和短语的定义可能是有利的。术语“耦合”及其派生词意味着两个或更多个元素之间的任何直接或间接通信,无论这些元素是否彼此物理接触。术语“发送”、“接收”和“通信”及其派生词涵盖直接和间接通信两者。术语“包括”和“包含”及其派生词意味着包括但不限于。术语“或”是包含性的,意味着和/或。短语“与...关联”及其派生词意味着包括、包括在内、与之互连、包含、包含在内、连接到或与之连接、耦合到或与之耦合、可与之通信,与之协作、交织、并列、接近、绑定到或与之绑定、具有、具有某性质、与之具有关系等等。术语“控制器”意味着控制至少一个操作的任何设备、系统或其一部分。这样的控制器可以以硬件或硬件和软件和/或固件的组合来实现。与任何特定控制器关联的功能可以是集中式或分布式,无论在本地还是远程。短语“……中的至少一个”在与项目的列表一起使用时,意味着可以使用所列项目的一个或多个的不同组合,并且可能只需要列表中的一个项目。例如,“A、B和C中的至少一个”包括以下组合中的任何一个:A、B、C、A和B、A和C、B和C、以及A和B和C。
此外,以下描述的各种功能可以由一个或多个计算机程序实现或支持,所述计算机程序中的每个计算机程序由计算机可读程序代码形成并具体实现在计算机可读介质中。术语“应用”和“程序”是指被适配成以合适的计算机可读程序代码来实现的一个或多个计算机程序、软件组件、指令集、过程、功能、对象、类、实例、相关数据或其一部分。短语“计算机可读程序代码”包括任何类型的计算机代码,包括源代码、目标代码和可执行代码。短语“计算机可读介质”包括能够由计算机访问的任何类型的介质,诸如只读存储器(ROM)、随机存取存储器(RAM)、硬盘驱动器、光盘(CD)、数字视频盘(DVD)或任何其他类型的存储器。“非暂时性”计算机可读介质不包括传输暂时性电信号或其他信号的有线通信链路、无线通信链路、光学通信链路或其他通信链路。非暂时性计算机可读介质包括数据可在其中被永久存储的介质和数据可在其中被存储并稍后被覆盖的介质,例如可重写光盘或可擦除存储器设备。
贯穿本专利文件提供了其他某些单词和短语的定义。本领域普通技术人员应该理解,在许多(如果不是大多数)情况下,这样的定义适用于这样定义的词语和短语的先前以及将来的使用。
以下讨论的图1至图16以及本专利文件中的用于描述本公开的原理的各种实施例仅是示例性的,并且不应以任何方式解释为限制本公开的范围。本领域技术人员将理解,本公开的原理可以在任何适当布置的无线通信系统中实现。
1.系统概述。
图1示出了根据本公开的示例计算系统100。图1所示的计算系统100的实施例仅用于说明。在不脱离本公开的范围的情况下,可以使用计算系统100的其他实施例。
如图1所示,系统100包括网络102,其便利系统100中的各个组件之间的通信。例如,网络102可以在网络地址之间通信传送互联网协议(IP)分组、帧中继帧、异步传输模式(ATM)单元或其他信息。网络102可以包括一个或多个局域网(LAN)、城域网(MAN)、广域网(WAN)、诸如互联网的全球网络的全部或一部分、或者位于一个或多个位置的任何其他(多个)通信系统。
网络102便利(facilitate)至少一个服务器104与各种客户端设备106-115之间的通信。每个服务器104包括可以为一个或多个客户端设备提供计算服务的任何合适的计算设备或处理设备。每个服务器104可以例如包括一个或多个处理设备、存储指令和数据的一个或多个存储器、以及便利通过网络102的通信的一个或多个网络接口。
每个客户端设备106-115表示通过网络102与至少一个服务器或(多个)其他计算设备交互的任何合适的计算设备或处理设备。在这个示例中,客户端设备106-115包括桌上型计算机106、移动电话或智能电话108、个人数字助理(PDA)110、膝上型计算机112,平板计算机114和头戴式显示器(HMD)。然而,在计算系统100中可以使用任何其他客户端设备或附加的客户端设备。
在这个示例中,一些客户端设备108-115与网络102间接通信。例如,客户端设备108-110经由一个或多个基站116(诸如蜂窝基站或eNodeB)进行通信。而且,客户端设备112-115经由一个或多个无线接入点118(诸如IEEE802.11无线接入点)进行通信。注意,这些仅是为了说明,并且每个客户端设备可以与网络102直接通信,或者可以经由任何合适的(多个)中间设备或(多个)网络与网络102间接通信。
在这个说明性实施例中,计算系统100提供视场感知点云流传输服务。例如,服务器104可以表示视频处理器,所述视频处理器确定3D内容的对象/节点是否在客户端设备的视场内,并且基于所述确定来流传输3D内容。智能电话108可以表示在虚拟现实或增强现实模式下在例如平视显示器上播放3D内容的视频播放器。
尽管图1示出了计算系统100的一个示例,但是可以对图1进行各种改变。例如,系统100可以包括按照任何合适的布置的任意数量的每个组件。通常,计算系统和通信系统具有各种各样的配置,并且图1不将本公开的范围限制为任何特定的配置。尽管图1示出了可以使用在这个专利文件中公开的各种特征的一个操作环境,但是这些特征可以在任何其他合适的系统中使用。
图2和图3示出了根据本公开的一个实施例的用于视场感知的点云流传输服务的计算系统中的示例设备。特别地,图2示出了示例服务器200,并且图3示出了示例客户端设备300。服务器200可以表示图1中的服务器104,并且客户端设备300可以表示图1中的一个或多个客户端设备106-115。
如图2所示,服务器200包括总线系统205,其支持一个或多个处理器210、至少一个存储设备215、至少一个通信接口220以及至少一个输入/输出(I/O)单元225之间的通信。
(多个)处理器210执行可以加载到存储器230中的指令,诸如用于执行视场感知点云流传输的指令。(多个)处理器210可以包括按照任何合适的布置的任何合适的(多个)数量和(多个)类型的处理器或其他设备。(多个)处理器210的示例类型包括微处理器、微控制器、数字信号处理器、现场可编程门阵列、专用集成电路和分立电路。(多个)处理器210被配置为执行用于利用认证的可穿戴设备来解锁电子设备的操作。
存储器230和永久性存储装置235是存储设备215的示例,其表示能够临时地或永久地存储信息(诸如数据、程序代码和/或其他合适的信息)和便利信息的检索的任何(多个)结构。存储器230可以表示随机存取存储器或任何其他合适的(多个)易失性或非易失性存储设备。永久性存储装置235可以包含支持数据的长期存储的一个或多个组件或设备,诸如只读存储器、硬盘驱动器、闪存或光盘。
通信接口220支持与其他系统或设备的通信。例如,通信接口220可以包括便利通过网络102的通信的网络接口卡或无线收发器。通信接口220可以支持通过任何适当的(多个)物理或无线通信链路的通信。
I/O单元225允许数据的输入和输出。例如,I/O单元225可以提供用于通过键盘、鼠标、小键盘、触摸屏或其他合适的输入设备的用户输入的连接。I/O单元225还可以将输出传送到显示器、打印机或其他合适的输出设备。
在这个说明性实施例中,服务器200可以实现提供视场感知的点云流传输的设备,如将在下面更详细地讨论的。注意,尽管图2被描述为表示图1的服务器104,但是相同或相似的结构可以用在客户端设备106-115中的一个或多个中。例如,便携式计算机或桌上型计算机可以具有与图2所示的结构相同或相似的结构。
如图3所示,客户端设备300包括天线305、射频(RF)收发器310、发送(TX)处理电路315、麦克风320和接收(RX)处理电路325。客户端设备300还包括扬声器330、一个或多个处理器340、输入/输出(I/O)接口(IF)345、触摸屏350、显示器355和存储器360。存储器360包括基本操作系统(OS)程序361和一个或多个应用362。
RF收发器310从天线305接收由系统中的另一组件发送的传入RF信号。RF收发器310将传入RF信号下变频以生成中频(IF)或基带信号。IF或基带信号被传送到RX处理电路325,其通过对基带或IF信号进行滤波、解码和/或数字化来生成经处理的基带信号。RX处理电路325将经处理的基带信号发送到扬声器330(诸如用于语音数据)或发送到(多个)处理器340以进行进一步处理(诸如用于网页浏览数据)。
TX处理电路系统315从麦克风320接收模拟或数字语音数据,或者从(多个)处理器340接收其他传出基带数据(诸如网络数据、电子邮件或交互式视频游戏数据)。TX处理电路系统315对传出基带数据进行编码、复用和/或数字化以生成经处理的基带或IF信号。RF收发器310从TX处理电路315接收经处理的传出基带或IF信号,并将基带或IF信号上变频为经由天线305发送的RF信号。
(多个)处理器340可以包括一个或多个处理器或其他处理设备,并执行存储在存储器360中的基本OS程序361,以便控制客户端设备300的整体操作。例如,(多个)处理器340可以根据众所周知的原理,通过RF收发器310、RX处理电路325和TX处理电路315来控制前向信道信号的接收和后向信道信号的发送。在一些实施例中,(多个)处理器340包括至少一个微处理器或微控制器。
(多个)处理器340还能够执行驻留在存储器360中的其他进程和程序。(多个)处理器340可以根据执行进程的需要将数据移入或移出存储器360。在一些实施例中,(多个)处理器340被配置为基于OS程序361或响应于从外部设备或操作者接收到的信号来执行应用362。(多个)处理器340还耦合到I/O接口345,其为客户端设备300提供连接到诸如膝上型计算机和手持式计算机的其他设备的能力。I/O接口345是这些附件与(多个)处理器340之间的通信路径。
(多个)处理器340也耦合到触摸屏350和显示器355。客户端设备300的操作者可以使用触摸屏350将数据输入到客户端设备300中。显示器355可以是能够呈现(诸如来自网站的)文本和/或至少有限的图形的液晶显示器或其他显示器。
存储器360耦合到(多个)处理器340。存储器360的一部分可以包括随机存取存储器(RAM),并且存储器360的另一部分可以包括闪存或其他只读存储器(ROM)。
如将在下面更详细地讨论的,在这个说明性实施例中,客户端设备300接收指示几何框架的形状和平面框架中的感兴趣区域的信号。尽管图2和图3示出了计算系统中的设备的示例,但是可以对图2和图3进行各种改变。例如,图2和图3中的各种组件可以根据特定需要被组合、进一步细分或省略,并且可以添加附加组件。作为特定示例,(多个)处理器340可以被划分为多个处理器,诸如一个或多个中央处理单元(CPU)和一个或多个图形处理单元(GPU)。而且,尽管图3示出了被配置为移动电话或智能电话的客户端设备300,但是客户端设备可以被配置为作为其他类型的移动设备或固定设备来操作。另外,与计算网络和通信网络一样,客户端设备和服务器可以具有多种多样的配置,并且图2和图3不将本公开限制于任何特定的客户端设备或服务器。
点云是由数百个点组成的3D模型。最常见的情况是它们是作为通过各种扫描方法(例如激光扫描和摄影测量)扫描现实世界的结果而获得的。点云已被广泛用于针对一系列任务的应用,所述一系列任务包括生成3D地图(诸如Google Maps,Cesium等)的生成、捕获运动和姿势(诸如Kinect)以及为游戏以及电影生成3D资产等。
八叉树是一种用于表示3D点云数据的递归数据结构。通过一次将每个3D单元细分为八个,可以轻松地形成3D顶点的八叉树结构。在八叉树编码方法[1]中,一个比特被每个子单元用来指示这个子单元是否为空。非空单元将被递归地细分,直到达到最高分辨率为止,而空单元格将不再被细分。在分区过程之后,服务器可以具有多级别层级结构(诸如八叉树),并且每个级别具有不同的节点密度/分辨率。
根据单元细分结果,通过以下步骤进行编码过程:(1)利用相应的编解码器获得与每个子单元相关联的比特(诸如1指示非空子单元,并且0指示空子单元);(2)利用某种方法获取所有细分的输出比特流(诸如,针对每个单元细分,从左上的子单元开始按顺时针顺序输出所有子单元的比特)。以此方式,编码点云时可以在空间分解方面具有很强的优势。
在过去的几十年中,流传输技术一直在不断发展。我们看到各种多媒体服务(诸如传统TV、互联网协议TV(IPTV)、视频会议、实时和移动流传输服务)的快速融合。同时,互联网已经成为多媒体传输的标准介质。传输控制协议(TCP)之上的超文本传输协议(HTTP)已成为用于通过互联网的多媒体内容传输的主要协议。诸如视频的多媒体内容的流传输技术已经得到了极大的发展。但是,点云的流传输仍然是研究人员研究和探索的全新领域。
图4示出了根据本公开的一个实施例的用于三维(3D)流传输服务的系统400的示例性概述。图4所示的实施例仅用于说明。在不脱离本公开的范围的情况下,使用其他实施例。
系统410包括服务器,所述服务器存储3D点云数据,并为各种客户端设备(例如膝上型计算机、平板计算机、智能电话、头戴式显示器(HMD)、基于眼镜的显示器等)提供高效的点云流传输。
客户端设备420可以配备有一个或多个传感器,以检测用户的身体(诸如,头部或眼睛)的运动、位置或朝向。传感器可以包括例如惯性传感器、多轴陀螺仪传感器或加速度传感器。客户端设备跟踪用户的头部运动,以确定用户正在看的地方,所述地方对应于视场。视场可以指可以通过客户端设备在三维环境中看见的场。可以基于视口和视点确定视场。
在完成客户端设备420和服务器410之间的流传输会话初始化之后,客户端设备420发送反馈,所述反馈包括关于视口、视场和/或可用流传输会话比特率(或带宽)中的至少一个的信息。在一个实施例中,反馈还包括信道状态信息(CSI),并且服务器可以基于信道状态信息来确定可用的比特率或带宽。
然后,服务器410开始通过称为流控制的过程和依赖于视场的选择器412来传送点云数据。这个过程被设计为基于视场和带宽/CSI反馈来选择点云数据(八叉树中的节点)。它还提供了流的流控制以维持适当的带宽。接下来,客户端设备420接收依赖于视场的自适应内容,呈现所述内容并将其显示在客户端设备的屏幕上。最后,这个过程不断重复以便为用户提供良好的流传输服务。
2.视场感知点云流传输
这个部分将提供用于确定层级节点是否在视场的范围内的方法。所述方法可以根据虚拟相机视场信息和层级结构的点云中节点的边界框来完成。这使服务器能够流传输视场内的区域,并且将减少或丢弃视场外部的区域。在用于处理多个对象的方法中,可以根据相机的视场信息和多个对象中的节点的多个边界框来进行所述确定过程。
2.1MPEG媒体传输协议(MMT)信令
特定于6DoF应用的信令消息具有应用标识符,所述应用标识符具有值为“urn:mpeg:mmt:app:6dof:2017”或“urn:mpeg:mmt:app:6dof:2018”的urn。
下表示出了ViewfieldFeedback的语法。
表1.ViewfieldFeedback(视场反馈)和BandwidthFeedback(带宽反馈)
Figure BDA0002395106130000101
表1的字段在下面描述。
Application_type(应用_类型):这个字段将应用类型定义为唯一识别消费这个消息的内容的应用的urn。这个字段的长度为16比特。
message_type(消息_类型)–这个字段定义表1中提供的消息类型。这个字段的长度为8比特。
p11、p13、p22、p23、p33、p34:这个字段定义4x4投影矩阵中的六个元素,并且每个元素都在[-32768,32767]范围内。这个字段的长度为16比特,并按65536缩放。
ModelViewMatrix(模型视野矩阵):这个字段定义4x4 ModelView(模型视野)矩阵中的16个元素,并且每个元素都在[-32768,32767]范围内。这个字段的长度为16比特,并按65536缩放。
BitrateValue(比特率值):这个字段定义分配给客户端侧的当前流传输会话的比特率的值,并且在[-32768,32767]范围内。这个字段的长度为16比特,并按65536缩放。
投影矩阵:在透视投影中,将截头棱锥视锥中的3D点(眼睛坐标)映射到立方体(NDC);x坐标是范围是从[l,r]到[-1,1],y坐标的范围是从[b,t]到[-1,1],并且z坐标的范围是从[n,f]到[-1,1]。可以如下使用OpenGL变换函数获得投影矩阵。在本公开中,使用p11、p13、p22、p23、p33、p34表示6个非常数的元素。在一个实施例中,一个OpenGL投影矩阵可以如下面的方程式1:
方程式1
Figure BDA0002395106130000111
模型视野矩阵:可以如下使用OpenGL变换函数获得投影矩阵。使用模型视野矩阵表示投影矩阵中的全部16个元素。
下面的表2和表3描述了使用MMT WebSockets的6DoF应用特定信令方法。
表2-用于点云流传输的MMT WebSocket子协议命令
Figure BDA0002395106130000121
表3–特定于6DoF应用的JSON参数
Figure BDA0002395106130000122
Figure BDA0002395106130000131
在视场感知流传输方法中,可以在节点级别而不是在对象点级别实现对于是否在视场内的确定。
图5示出了根据本公开的实施例的3D点云的层级结构500的示例性多个级别。图5所示的层级结构的实施例仅用于说明。在不脱离本公开的范围的情况下,使用其他实施例。
如图5所示,分别示出了级别1 510、级别2 520和级别3 530中的节点及其边界框。针对每个级别,在点密度增加的同时,节点的大小会缩小。可以如下创建对象的节点的层级级别:将对象本身设置为根节点,并且针对每个层级级别,将每个级别节点从根节点划分为多个子级别节点。
在分区过程之后,服务器可以具有L级别层级结构,并且每个级别具有不同的节点密度/分辨率。在一个实施例中,原始数据集的每个点被精确地分配给一个八叉树节点,导致没有新的点或副本被创建。在另一个实施例中,原始数据集的点可以被分配给不同层级级别的多个八叉树节点。节点的较低层级级别中的点可以表示在节点的较高层级级别中。注意,对于是否在视场内的确定在节点级别和/或对象级别而不是点级别进行处理,这可以大大节省计算成本和时间消耗。
用于确定每个对象/节点是否在视场区域内的一种算法如下。所述算法的输入是作为视场反馈的包括MModelView和Mprojection的相机矩阵、以及给定对象/节点的边界框的八个顶点{p1,p2,….p8}的位置,其中pi=(xi,yi,zi),i=1,2,…8。算法的输出是NodeInView的值等于TRUE,表示整个或部分对象/节点在视场内;否则,NodeInView等于FALSE,表明对象/节点在视场之外。每个对象都由从根节点到最大级别的节点的多个层级级别的节点组成。在一个实施例中,根节点可以是对象本身。
实现这个算法的三个步骤如下:
在步骤1中,算法定义函数PointInView(x,y,z),其在点(x,y,z)在视场内时返回“1”,否则在点(x,y,z)在视场之外时返回“0”。在以下方程式2中,(xobj,yobj,zobj,wobj)表示对象坐标,(xe,ye,ze,we)表示眼睛坐标,(xclip,yclip,zclip,wclip)表示剪辑坐标,而(xndc,yndc,zndc)表示归一化的设备坐标(NDC)。
方程式2
Figure BDA0002395106130000141
从上面的方程式2,根据输入,算法可以获得剪辑(xclip,yclip,zclip)的值.基于所述值,可以如下面的方程式3来计算归一化的设备坐标(xndc,yndc,zndc)。
方程式3
Figure BDA0002395106130000142
然后,如下面的方程式4来获得PointInView(x,y,z)。
方程式4
Figure BDA0002395106130000151
在步骤2中,算法针对给定对象/节点中的全部八个顶点{p1,p2,….p8}计算PointInView(x,y,z)的值,其中pi=(xi,yi,zi),i=1,2,3…8;
在步骤3中,如果八个PointInView(xi,yi,zi)中的任何一个(其中i=1,2,3,…8)等于“1”(即,在视锥内存在至少一个顶点),则算法获得NodeInView,NodeInView等于TRUE,表示整个或部分对象/节点在视场内;否则,NodeInView等于FALSE,表明对象/节点在视场之外。可以用下面的方程式来计算NodeInView的值。
方程式5
Figure BDA0002395106130000152
图6示出了根据本公开的一个实施例的可以由服务器执行的用于确定每个节点是否在视场区域内的方法的示例性流程图600。图6所示的实施例仅用于说明。在不脱离本公开的范围的情况下,使用其他实施例。例如,尽管示出为一系列步骤,但是在某些实施例中,各个步骤可以重叠、并行发生、以不同顺序发生、发生多次或不执行。
所述方法可以从输入准备的步骤610开始。针对当前级别的每个节点,所述方法将其边界框的八个顶点位置表示为pi=(xi,yi,zi),i=1,2,…8。另外,包括MModelView和Mprojection的相机矩阵作为视场反馈从客户端设备被接收。
在步骤620中,针对每个节点,根据函数PointInView(x,y,z),计算针对给定节点中的全部八个顶点{p1,p2,….p8}的PointInView(x,y,z)的值,其中pi=(xi,yi,zi),i=1,2,3…8;然后,可以计算NodeInView的值。
在步骤630中,如果NodeInView等于TRUE,则所述方法确定给定的节点在视场内(包括两种情况:完全在视场内和部分地在视场内);否则,NodeInView等于FALSE,则所述方法确定给定节点在视场之外。
在步骤640中,针对层级结构(诸如八叉树)中的当前级别中的每个节点,重复步骤620和630,并且可以针对所述级别的所有节点确定节点是否在视场内。在一个实施例中,仅视场内的节点将从服务器被发送到客户端设备。请注意,这个方法可以处理存在部分地在视场内的对象的场景。在这样的场景中,部分地在视场内的对象包括完全在视场内的一些节点、部分地在视场内的一些节点、以及在视场之外的其他节点。由于部分地在视场内的节点将被确定为在视场内,因此服务器将流传输部分地在视场内的节点(即,将部分地在视场内的节点的NodeInView设置为TRUE)。
由于在确定节点是否在视场内时,所述方法使用以下确定标准:如果八个PointInView(xi,yi,zi)中的任意一个等于1,其中i=1,2,3,…8,则NodeInView将等于TRUE,表示给定节点在视场内;否则等于FALSE,表示给定节点在视场之外。
当节点部分地在视场内时,在视场内需要存在八个顶点中的一个或多个,因此可以得出结论,这个节点位于视场内。
在计算机图形呈现(rendering)中,当用户看向点云时,通常会发生遮挡。因此,可见点是面对用户虚拟相机的一侧上的点,并相应地将不可见点定义为另一侧上的点,这些点被用户视野中的可见点屏蔽。
图7A和图7B示出了根据本公开的实施例的用于展示确定可见点的方法的示例性示图。图7A和图7B所示的方法的实施例仅用于说明。在不脱离本公开的范围的情况下,使用其他实施例。
在图7A中,点(x,y,z)和(x’,y’,z’)位于经过虚拟相机位置点的同一条线710上,导致(x,y,z)为不可见的点,而(x’,y’,z’)为可见点。类似地,在图7B中,虚线720表示点云的可见部分,而虚线730表示点云的不可见部分。
确定点云的哪一部分被遮挡的一个实施例被如下描述。在此,坐标信息(记录在点云文件中)和相机矩阵是用于确定可见的点云中的点索引的输入。
首先,点云中的每个点具有唯一的点索引和坐标信息。针对每个点坐标信息和相机矩阵信息,所述方法计算其在用户的窗口空间中的坐标,称为(x,y,z)window
结果,通常使用针对所有点的(x,y,z)window建立以(x,y)window作为关键字的查找表。在构建它的过程中,如果(x,y)window对查找表来说是新的,则所述方法将其zwindow信息和点索引保存在查找表中。否则,如果(x,y)window已经出现过,则所述方法将比较对应的两个zwindow(一个来自当前点,而另一个被保存在查找表中),然后使用较小的zwindow(即更靠近相机)更新查找表及其点索引。
最后,所述方法可以在查找表中获得一系列zwindow信息和点索引。这些点索引记录所有可见点的索引,从而显示可见点确定结果。
然而,上述用于确定点是否可见的方法可能是耗时且低效的过程,因为其导致对照存储在查找表中的所存储深度来检查每个点。
在一种流传输方法的另一个实施例中,确定要流传输的点云的哪一部分的操作可以在服务器侧被处理。客户端连续地或在发生客户端视场变化变得高于某个阈值的事件时将相机矩阵反馈给服务器。
基于相机矩阵和(x,y,z)object(即对象空间中的坐标)来计算点的(x,y,z)window(即用户的窗口空间中的坐标)的实施例被如下描述。后者在点云中作为输入被记录。
图8示出了根据本公开的一个实施例的用于计算点的(x,y,z)window的方法的示例性流程图800。图8所示的实施例仅用于说明。图8所示的组件中的一个或多个组件可以在被配置为执行所指出的功能的专用电路中实现,或者所述组件中的一个或多个组件可以由执行指令以执行所指出的功能的一个或多个处理器来实现。在不脱离本公开的范围的情况下,使用其他实施例。
如图8所示,所述方法使用模型视野矩阵MModelView将对象空间805变换为眼睛空间810。然后,所述方法使用投影矩阵Mprojection将眼睛空间810转换为剪辑空间815。随后,使用透视划分MDivide将剪辑空间815转换为归一化设备坐标(NDC)空间820,并执行视场变换MViewport到窗口空间825。在数学上,针对点坐标(x,y,z),从对象空间805到窗口空间825的变换过程可以表示为以下方程式:
方程式6
(x,y,z)window=Mviewport·MDivide·MProjection·MModelView·(x,y,z)object
具体地,当用户改变虚拟相机方向时,仅相机矩阵中的被称为投影矩阵Mprojection的一个矩阵将改变。它是4x4矩阵,用于记录相机的位置以及相机的观看方向,并且可以从网络浏览器中的呈现机轻松获得这几个相机矩阵。这样,所述方法可以从(x,y,z)object中成功获得(x,y,z)window
2.2多个对象-确定多个对象的层级节点是否在视场的范围内
图9示出了根据本公开的一个实施例的示例性示图900,所述示图900用于说明如何确定多个对象的节点的层级(诸如八进制)级别是否在视场的范围内。图9所示的实施例仅用于说明。在不脱离本公开的范围的情况下,使用其他实施例。
如图9所示,对象‘a’910整体呈现在视场内,对象‘b’920部分呈现在视场内,而对象‘c’930整体呈现在视场外。每个点云对象都有用于其对象的边界框,所述边界框将节点的所有点包括在其空间中。每个边界框都有八个顶点。
当这八个顶点中的任何一个都不呈现在视场内时,则所述对象的所有点都将不呈现在视场的范围内。这是基于立方体拓扑的数学结论。每个点云对象包含大量的点。
在一个实施例中,服务器可以仅发送呈现在视场内或部分地呈现在视场内的区域,并且可以完全丢弃呈现在视场外的其他区域。这将带来较低的所需带宽(即,较少的要发送的内容)和较小的延迟(即,较少的发送时间、呈现时间和显示时间)。
图10是根据本公开的一个实施例的用于多个对象的视场感知点云流传输的方法的示例性流程图1000。图10所示的流程图1000仅用于说明。在不脱离本公开的范围的情况下,使用其他实施例。例如,尽管示出为一系列步骤,但是在某些实施例中,各个步骤可以重叠、并行发生、以不同顺序发生、发生多次或不执行。
所述方法开始于步骤1010。在步骤1010,所述方法设置要处理的第一对象,并将层级级别的最低级别(即,最大分辨率级别)设置为第一级别。
在步骤1020中,针对当前对象,针对给定级别的每个节点,其边界框的八个顶点位置被表示为pi=(xi,yi,zi),i=1,2,…8。同样,从客户端接收包括MModelView和Mprojection的相机矩阵作为视场反馈,如前所述。
在步骤1030中,针对当前对象,使用对应的层级结构的每个节点来计算NodeInView的值。在一个实施例中,初始节点可以是相应层级结构的根节点。如果与每个对象对应的NodeInView为FALSE,则将这个对象确定为在视场之外;否则,将其确定为在视场内。
在步骤1040中,针对确定为在视场内的每个对象,流程图针对层级结构(诸如八叉树)中所选级别中的每个节点计算NodeInView的值。
在步骤1050中,如果所述级别小于或等于最大级别并且如果存在未分配的带宽,则所述方法将级别增加1,然后返回以连续迭代步骤1020、1030和1040。在一个实施例中,只要可用带宽能够满足增加后的节点层级级别,所述迭代过程就可以继续。否则,所述方法前进到步骤1060。
在步骤1060中,所述方法选择要处理的下一个点云对象,如果存在未处理的对象,则返回步骤1020。否则,如果在确定层级节点是否在视场内这方面处理了所有对象,则所述方法前进到下一步骤1060。
在步骤1060中,所述方法处理在下面的第3部分中描述的基于比特率反馈的速率分配算法,标题为“基于比特率反馈的对象速率分配”。
在步骤1070中,针对场景中的所有对象,服务器遍历从第一级别到在第3部分中确定的所确定的更高级别来循环基于比特率反馈的对象速率分配算法,并且服务器传送针对所确定的级别的视场内的节点到客户端。这样,无论节点是否在视场内,都可以确定层级节点的级别的上限。
图11示出了根据本公开的一个实施例的用于视场感知点云流传输的方法的另一示例性流程图1100。图11所示的流程图1100仅用于说明。在不脱离本公开的范围的情况下,使用其他实施例。例如,尽管示出为一系列步骤,但是在某些实施例中,各个步骤可以重叠、并行发生、以不同顺序发生、发生多次或不执行。
在所述实施例中,除了为视场外的对象分配粗级别(较低的层级级别)之外,所述方法与流程图1000最相似。步骤1110、1120、1135、1140、1150、1160、1170、1180与图10所示的步骤1010、1020、1030、1040、1050、1060、1070和1080相同。不同之处在于流程图1100具有针对视场外的对象的附加步骤1185和1190。
在步骤1185中,针对被确定为在视场之外的对象中的每个对象,所述方法计算针对给定节点中的边界框中心{pc}的顶点的归一化设备坐标(xndc,yndc,zndc)的值,其中pc=(xi,yi,zi)。
在步骤1190中,如果归一化设备坐标的xndc,yndc,zndc中的任何一个在[-1-delta,1+delta]的范围内,则所述方法针对点云对象中的每一个,为视场外的对象中的每一个对象分配粗级别,或者为视场外的对象中的每一个对象分配比被分配给在视场内的对象/节点的带宽更小的带宽。delta(或阈值)是可以基于客户端设备上的缓冲量、用户运动的速度、可用带宽的大小等中的至少一个来确定的变量。否则,如果归一化设备坐标的xndc,yndc,zndc全都不在[-1-delta,1+delta]的范围内,则不针对所述对象传送任何点。或者,根据归一化设备坐标的xndc,yndc,zndc可以使用多个delta范围来分配不同的带宽级别。delta的值越大,在delta的时段内分配给对象的带宽越小。
2.3单个对象–确定单个对象的层级节点是否在视场的范围内
图12A至图12C示出了根据本公开的一个实施例的用于展示如何确定单个对象的层级节点是否在视场的范围内的示例性示图。图12A至图12C所示的实施例仅用于说明。在不脱离本公开的范围的情况下,使用其他实施例。
图12A示出了完全在视锥内的对象‘a’1210,图12B示出了部分地在视锥内的对象‘b’1220,并且图12C示出了完全在视锥之外的对象‘c’1230。
在一个实施例中,服务器可以发送视锥内部的区域,并且视锥外部的区域可以被完全丢弃。结果,它将带来较低的所需带宽(即,较少的要发送的内容)和较小的延迟(即,较少的发送时间、呈现时间和显示时间)。
在例如八叉树结构的层级结构中,每个节点包含许多点,并具有其独特的空间分布。每个节点都有边界框,其将节点的所有点都包括在其空间中。每个边界框都有八个顶点。当这八个顶点全都不在视锥内时,这些节点的任何点都将不在视锥内。这是基于立方体拓扑的数学结论。
图13示出了根据本公开的一个实施例的用于由多个节点组成的点云对象的示例性示图1300。图13所示的实施例仅用于说明。在不脱离本公开的范围的情况下,使用其他实施例。
如图13所示,对象1310部分地在视场内。对象1310包括多个节点,包括节点‘a’1320、节点‘b’1330和节点‘c’1340。在上图中,三个节点‘a’1320、‘b’1330,‘c’1340分别表示每个节点的边界框和视场区域之间的不同关系。图13示出了节点‘a’的边界框1320在视场区域内,而节点‘b’1330示出了该节点的边界框被部分地呈现在视场区域内。节点‘c’1340的整个边界框在视野区域之外。
图14示出了根据本公开的一个实施例的用于视场感知点云流传输的方法的示例性流程图1400。图14所示的流程图1400仅用于说明。在不脱离本公开的范围的情况下,使用其他实施例。例如,尽管示出为一系列步骤,但是在某些实施例中,各个步骤可以重叠、并行发生、以不同顺序发生、发生多次或不执行。
所述方法开始于步骤1410。在步骤1410中,服务器从客户端设备接收包括虚拟相机矩阵的视场反馈以及带宽反馈,所述虚拟相机矩阵包括MModelView和Mprojection。基于当前带宽条件,服务器基于可用带宽选择3D对象点云内容的级别,以确定对象或节点是否在视场内,如下面的部分所述。
在步骤1420中,针对所选择的3D对象点云的级别,服务器获得所选择的级别中的节点的所有边界框。
在步骤1430中,针对当前级别中的所有节点,服务器继续确定所述节点是否在视场区域内。
在步骤1440中,服务器将当前级别增加1,如果当前级别小于或等于层级层的最大级别,并且如果存在未分配的带宽,则连续地返回步骤1410、1420和1430。否则,如果当前级别大于最大级别,则处理下一个操作。
在步骤1450中,其处理在第3部分中描述的基于比特率反馈的速率分配算法。
在步骤1460中,针对场景中的当前对象,服务器遍历从第一级别到在第3部分中确定的所确定的更高级别来循环名为基于比特率反馈的对象速率分配方法,并且服务器传送针对经处理的(多个)级别的视场内的节点到客户端。
图15示出根据本公开的一个实施例的用于基于来自客户端设备的反馈的视场感知点云流传输的另一示例性流程图1500。图15所示的流程图1500仅用于说明。在不脱离本公开的范围的情况下,使用其他实施例。例如,尽管示出为一系列步骤,但是在某些实施例中,各个步骤可以重叠、并行发生、以不同顺序发生、发生多次或不执行。
在所述实施例中,步骤1510、1520、1530、1540、1550和1560与图14所示的流程图1400的相应步骤1410、1420、1430、1440、1450和1460相同。
不同之处在于,如果节点在视场之外,则在步骤1570中,服务器针对给定节点中的边界框中心{pc}的顶点计算归一化设备坐标(xndc,yndc,zndc)的值,其中pc=(xi,yi,zi)。
在步骤1580中,针对在视场之外的节点,如果所述节点的归一化设备坐标xndc,yndc,zndc中的任何一个在[-1-delta,1+delta]的范围内,则服务器为点云对象的节点分配粗级别。如上所述,delta是可以基于客户端设备上的缓冲量、用户运动的速度、或可用带宽的大小等中的至少一个来确定的变量。否则,如果节点的归一化设备坐标的xndc,yndc,zndc全都不在[-1-delta,1+delta]的范围内,则不传送所述节点。然后,连续处理步骤1540、1550和1560。
3.基于比特率反馈的对象速率分配
在下文中,将描述基于对象速率分配的比特率反馈方法,所述方法包括跨包括视场内的对象和视场外的对象的多个对象分配比特率(带宽)。
图16示出了根据本公开的一个实施例的用于基于比特率反馈将比特率(或带宽)分配给对象的方法的示例性流程图1600。图16所示的实施例仅用于说明。在不脱离本公开的范围的情况下,使用其他实施例。例如,尽管示出为一系列步骤,但是在某些实施例中,各个步骤可以重叠、并行发生、以不同顺序发生、发生多次或不执行。
所述方法开始于步骤1610。在步骤1610,为了初始化,服务器接收如先前所述从客户端发送的被表示为Br的比特率反馈,并且识别包括最大级别lmax和帧速率f的参数设置、视场内的对象以及视场外的对象。
在步骤1620中,服务器根据分配规则将流传输会话比特率分配给视场内的对象和视场外的对象。在一个实施例中,一种分配规则可以以一定比率(例如70:30)分配比特率。在这个示例中,服务器可以将会话比特率(或带宽)的70%分配给视场内的对象,并将会话比特率(或带宽)的30%分配给视场外的对象。在其他实施例中,分配比率可以改变,诸如65:35、75:25等等。
在步骤1630中,服务器遵循针对视场内的对象的分配规则,在视场内的对象之间分配被分配给视场内的对象的比特率。在一个实施例中,分配规则可以将所分配的比特率均匀地分配给视场内的每个点云对象。可替代地,分配规则可以根据当前对象的比特率和视场内所有对象的总比特率的比率将所分配的比特率分配给点云对象。然后,按如下方式为视场内的每个对象导出更高级别。通过将比特率除以帧速率可以得出分配给对象的一帧的比特。在导出一帧的比特时,通过累积每层的节点的比特直到比特累积达到所导出的一帧的比特,来确定级别的上限,其中,比特累积从第一层到更高层被处理。以这种方式,为视场内的每个对象导出了更高级别。
在步骤1640中,服务器根据用于视场外的对象的分配规则,在视场外的对象之间分配被分配给视场外的对象的比特率。在一个实施例中,规则可以将所分配的比特率均匀地分配给视场外的点云对象中的每个点云对象。可替代地,分配规则可以根据当前对象的比特率和视场之外的所有对象的总比特率的比率,将所分配的比特率分配给点云对象。然后,基于视场内的每个对象的被分配的比特率,为视场外的每个对象导出更高级别。在此,等于零的更高级别指示不针对在视场之外的所述对象传送任何节点。在上面的第2部分中描述了为视场之外的对象设置更高级别的过程。
以上实施例使得服务器能够仅发送在视场内呈现的区域或表示的层级节点,并且可以完全丢弃在视场外呈现的层级节点,或者仅传送视场内的节点并以粗略的方式发送视场外的节点(例如低级别的节点)作为备份,以应对用户的突然视场变化。而且,实施例允许系统显著节省网络带宽并提高点云展现质量。
对于是否在视场内的确定是在节点级别和/或点云对象级别而不是点级别进行处理的,这可以大大节省计算成本和时间消耗。相反,确定点是否可见的传统射线追踪方法是耗时且低效的过程,因为它导致对照存储在查找表中的所存储的深度来检查每个点。
本申请中的任何描述均不应理解为暗示任何特定的元素、步骤或功能是必须包含在权利要求范围内的必要元素。专利主题的范围仅由权利要求限定。
尽管已经利用示例性实施例描述了本公开,但是可以向本领域技术人员提出各种改变和修改。本公开旨在涵盖落入所附权利要求的范围内的改变和修改。

Claims (15)

1.一种用于识别要流传输的三维3D内容的服务器,所述服务器包括:
存储器,被配置为存储用于3D内容中的多个对象的3D点云数据;
通信接口,被配置为从客户端设备接收指示3D内容中的客户端设备的视场的信息;和
处理器,被配置为:
识别可用于将3D内容流传输到客户端设备的带宽量;和
为对象中的一个或多个对象分配用于流传输3D点云数据的带宽,其中,为了分配带宽,处理器被配置为,针对所述对象中的一个或多个对象中的每个对象:
基于每个对象的位置确定每个对象是否在客户端设备的视场内;
为至少部分地在客户端设备的视场内的对象分配比不在客户端设备的视场内的对象更大的带宽量;其中,通信接口还被配置为根据分配的带宽将3D内容流传输到客户端设备。
2.根据权利要求1所述的客户端设备,其中,所述处理器还被配置为:
当每个对象的顶点中的至少一个顶点但不是全部顶点在视场的范围内时,确定所述每个对象部分地在视场内;和
当每个对象的顶点全都不在视场的范围内时,确定所述每个对象在视场之外。
3.根据权利要求1所述的客户端设备,其中,指示视场的信息是投影矩阵或模型视野矩阵中的至少一个。
4.根据权利要求1所述的客户端设备,其中,3D点云数据包括多个对象,每个对象包含从根节点到最大级别的节点的一个或多个层级级别的节点,其中,对象的层级级别的节点是通过将对象设置为根节点、以及针对每个层级级别从根节点起将每个级别节点划分为多个子级别节点来创建的。
5.根据权利要求4所述的客户端设备,其中,所述处理器还被配置为:
为根节点到更高级别的节点分配用于流传输3D点云数据的带宽,其中,为了分配带宽,处理器被配置为针对从根节点的级别开始的给定级别的节点中的每个节点:
基于每个节点的位置,确定每个节点是否在客户端设备的视场内;
为在客户端设备的视场内的节点分配比不在客户端设备的视场内的节点更大的带宽量;和
针对在客户端设备的视场之外的每个节点:
确定每个节点是否与客户端设备的视场相距阈值距离以内;
为与客户端设备的视场相距阈值距离以内的节点分配比在客户端设备的视场内的节点更小的带宽量;和
当存在未分配的带宽时,将给定级别增加一个级别,直到最大级别。
6.根据权利要求5所述的客户端设备,其中:
当每个节点的顶点中的至少一个顶点在视场的范围内时,确定所述每个节点在视场内;和
当所述节点的顶点全都不在视场的范围内时,确定所述每个节点在视场之外。
7.根据权利要求5所述的客户端设备,其中,所述处理器还被配置为:
针对客户端设备的视场之外的对象中的每个对象:
确定每个对象是否与客户端设备的视场相距阈值距离以内;和
为与视场相距阈值距离以内的对象分配比视场内的对象更小的带宽量。
8.一种用于识别要流传输的三维3D内容的方法,所述方法包括:
存储用于3D内容中的多个对象的3D点云数据;
从客户端设备接收指示3D内容中的客户端设备的视场的信息;
识别可用于将3D内容流传输到客户端设备的带宽量;
为对象中的一个或多个对象分配用于流传输3D点云数据的带宽,其中,为对象中的一个或多个对象中的每个对象分配带宽包括:
基于每个对象的位置,确定每个对象是否在客户端设备的视场内;
为至少部分地在客户端设备的视场内的对象分配比不在客户端设备的视场内的对象更大的带宽量;和
根据分配的带宽将3D内容流传输到客户端设备。
9.根据权利要求8所述的方法,所述方法还包括:
当每个对象的顶点中的至少一个顶点但不是全部顶点在视场的范围内时,确定所述每个对象部分地在视场内;和
当每个对象的顶点全都不在视场的范围内时,将所述每个对象确定为在视场之外。
10.根据权利要求8所述的方法,其中,指示视场的信息是投影矩阵或模型视野矩阵中的至少一个。
11.根据权利要求8所述的方法,其中,3D点云数据包括多个对象,每个对象包含从根节点到最大级别的节点的一个或多个层级级别的节点,其中,对象的层级级别的节点是通过将对象本身设置为根节点、并针对每个层级级别从根节点起将每个级别节点划分为多个子级别节点来创建的。
12.根据权利要求11所述的方法,所述方法还包括:
为根节点到更高级别的节点分配用于流传输3D点云数据的带宽,其中,针对从根节点的级别开始的给定级别的节点中的每个节点,分配带宽包括:
基于每个节点的位置,确定每个节点是否在客户端设备的视场内;
为在客户端设备的视场内的节点分配比不在客户端设备的视场内的节点更大的带宽量;和
针对在客户端设备的视场之外的每个节点:
确定每个节点是否与客户端设备的视场相距阈值距离以内;
为与客户端设备的视场相距阈值距离以内的节点分配比在客户端设备的视场内的节点更小的带宽量;和
当存在未分配的带宽时,将给定级别增加一个级别,直到最大级别。
13.根据权利要求12所述的方法,所述方法还包括:
当每个节点的顶点中的至少一个顶点在视场的范围内时,确定所述每个节点在视场内;和
当节点的顶点全都不在视场的范围内时,确定所述每个节点在视场之外。
14.根据权利要求12所述的方法,所述方法还包括:
针对在客户端设备的视场之外的对象中的每个对象:
确定每个对象是否与客户端设备的视场相距阈值距离以内;和
为与视点相距阈值距离以内的对象分配比在视场内的对象更小的带宽量。
15.一种非暂时性计算机可读介质,包括用于识别要流传输的三维3D内容的程序代码,其中,所述程序代码在由处理器执行时,使处理器执行以下步骤:
存储用于3D内容中的多个对象的3D点云数据;
经由通信接口从客户端设备接收指示3D内容中的客户端设备的视场的信息;
识别可用于将3D内容流传输到客户端设备的带宽量;
为对象中的一个或多个对象分配用于流传输3D点云数据的带宽,其中用于分配带宽的程序代码包括在由处理器执行时使处理器针对对象中的一个或多个对象中的每个对象执行以下步骤的程序代码:
基于每个对象的位置确定每个对象是否在客户端设备的视场内;
为至少部分地在客户端设备的视场内的对象分配比不在客户端设备的视场内的对象更大的带宽量;和
根据分配的带宽将3D内容流传输到客户端设备。
CN201880056434.XA 2017-08-30 2018-08-30 用于点云流传输的方法和装置 Active CN111052750B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201762552094P 2017-08-30 2017-08-30
US62/552,094 2017-08-30
US16/113,855 US11290758B2 (en) 2017-08-30 2018-08-27 Method and apparatus of point-cloud streaming
US16/113,855 2018-08-27
PCT/KR2018/010037 WO2019045473A1 (en) 2017-08-30 2018-08-30 METHOD AND APPARATUS FOR CONTINUOUS DIFFUSION OF POINT CLOUD

Publications (2)

Publication Number Publication Date
CN111052750A true CN111052750A (zh) 2020-04-21
CN111052750B CN111052750B (zh) 2022-01-25

Family

ID=65438038

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201880056434.XA Active CN111052750B (zh) 2017-08-30 2018-08-30 用于点云流传输的方法和装置

Country Status (5)

Country Link
US (1) US11290758B2 (zh)
EP (1) EP3669547B1 (zh)
KR (1) KR102602380B1 (zh)
CN (1) CN111052750B (zh)
WO (1) WO2019045473A1 (zh)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110163863B (zh) * 2018-11-06 2022-11-04 腾讯科技(深圳)有限公司 三维物体分割方法、设备和介质
US10694239B1 (en) 2018-12-12 2020-06-23 Sling Media Pvt Ltd Systems, methods, and devices for optimizing streaming bitrate based on multiclient display profiles
WO2020189943A1 (ko) * 2019-03-15 2020-09-24 엘지전자 주식회사 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법
US20220130075A1 (en) * 2019-03-15 2022-04-28 Lg Electronics Inc. Device and method for processing point cloud data
WO2020189976A1 (ko) * 2019-03-16 2020-09-24 엘지전자 주식회사 포인트 클라우드 데이터 처리 장치 및 방법
JP7480773B2 (ja) * 2019-03-20 2024-05-10 ソニーグループ株式会社 情報処理装置、情報処理方法、再生処理装置及び再生処理方法
WO2020190075A1 (ko) * 2019-03-20 2020-09-24 엘지전자 주식회사 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법
WO2020246689A1 (ko) * 2019-06-05 2020-12-10 엘지전자 주식회사 포인트 클라우드 데이터 전송 장치, 포인트 클라우드 데이터 전송 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법
WO2021025546A1 (ko) * 2019-08-08 2021-02-11 엘지전자 주식회사 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법
WO2021026797A1 (en) * 2019-08-14 2021-02-18 Intel Corporation Automatic generation of 3d bounding boxes from multi-camera 2d image data
EP4026343A4 (en) * 2019-10-01 2022-11-09 Samsung Electronics Co., Ltd. METHOD, APPARATUS AND COMPUTER READABLE RECORDING MEDIA FOR TRANSMITTING OR RECEIVING VPCC DATA
GB2590422B (en) 2019-12-17 2024-03-06 Sony Interactive Entertainment Inc Content generation system and method
JP2021100222A (ja) * 2019-12-23 2021-07-01 ソニーグループ株式会社 端末装置、アプリケーションサーバ、受信方法及び送信方法
US11240570B1 (en) * 2020-10-08 2022-02-01 International Business Machines Corporation Object-based video loading
CN114598692B (zh) * 2020-12-01 2023-03-17 腾讯科技(深圳)有限公司 点云文件传输方法、应用方法、装置、设备及存储介质
US11800184B2 (en) * 2021-01-06 2023-10-24 Tencent America LLC Method and apparatus for media scene description
EP4277284A1 (en) * 2021-01-06 2023-11-15 LG Electronics Inc. Point cloud data transmission device, point cloud data transmission method, point cloud data reception device, and point cloud data reception method
JP2022137826A (ja) * 2021-03-09 2022-09-22 株式会社Mawari 3dオブジェクトのストリーミング方法、装置、及びプログラム
KR20240099307A (ko) * 2021-10-18 2024-06-28 엘지전자 주식회사 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6118456A (en) * 1998-04-02 2000-09-12 Adaptive Media Technologies Method and apparatus capable of prioritizing and streaming objects within a 3-D virtual environment
US20130278732A1 (en) * 2012-04-24 2013-10-24 Mobitv, Inc. Control of perspective in multi-dimensional media
US20130321396A1 (en) * 2012-05-31 2013-12-05 Microsoft Corporation Multi-input free viewpoint video processing pipeline
US20160203646A1 (en) * 2015-01-14 2016-07-14 Hashplay Inc. System and method for providing virtual reality content
CN105939482A (zh) * 2015-03-05 2016-09-14 诺基亚技术有限公司 视频流式传输方法
US20160298140A1 (en) * 2013-08-08 2016-10-13 Institute Of Advanced Industrial Science And Technology Yeast Having Enhanced Xylose Fermentation Ability, and Use Therefor
WO2016191702A1 (en) * 2015-05-27 2016-12-01 Google Inc. Method and apparatus to reduce spherical video bandwidth to user headset
CN106485772A (zh) * 2016-09-30 2017-03-08 北京百度网讯科技有限公司 全景切换方法及系统

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103180881B (zh) 2010-12-24 2016-08-03 中国科学院自动化研究所 互联网上复杂场景真实感快速绘制方法
US9396586B2 (en) 2014-03-14 2016-07-19 Matterport, Inc. Processing and/or transmitting 3D data
US20160198140A1 (en) 2015-01-06 2016-07-07 3DOO, Inc. System and method for preemptive and adaptive 360 degree immersive video streaming
US10484621B2 (en) 2016-02-29 2019-11-19 Gopro, Inc. Systems and methods for compressing video content
US10223810B2 (en) 2016-05-28 2019-03-05 Microsoft Technology Licensing, Llc Region-adaptive hierarchical transform and entropy coding for point cloud compression, and corresponding decompression
US11297346B2 (en) 2016-05-28 2022-04-05 Microsoft Technology Licensing, Llc Motion-compensated compression of dynamic voxelized point clouds
US10694210B2 (en) * 2016-05-28 2020-06-23 Microsoft Technology Licensing, Llc Scalable point cloud compression with transform, and corresponding decompression
EP3535644B1 (en) * 2016-11-04 2023-02-22 Koninklijke KPN N.V. Streaming virtual reality video
US10595069B2 (en) * 2016-12-05 2020-03-17 Adobe Inc. Prioritizing tile-based virtual reality video streaming using adaptive rate allocation
CN106874409B (zh) * 2017-01-19 2019-11-19 苏州中科图新网络科技有限公司 点云数据的存储方法及装置
US10231014B2 (en) * 2017-03-14 2019-03-12 Futurewei Technologies, Inc. Virtual reality (VR) video distribution using edge resources
US10198829B2 (en) * 2017-04-25 2019-02-05 Symbol Technologies, Llc Systems and methods for extrinsic calibration of a plurality of sensors

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6118456A (en) * 1998-04-02 2000-09-12 Adaptive Media Technologies Method and apparatus capable of prioritizing and streaming objects within a 3-D virtual environment
US20130278732A1 (en) * 2012-04-24 2013-10-24 Mobitv, Inc. Control of perspective in multi-dimensional media
US20130321396A1 (en) * 2012-05-31 2013-12-05 Microsoft Corporation Multi-input free viewpoint video processing pipeline
US20130321586A1 (en) * 2012-05-31 2013-12-05 Microsoft Corporation Cloud based free viewpoint video streaming
US20160298140A1 (en) * 2013-08-08 2016-10-13 Institute Of Advanced Industrial Science And Technology Yeast Having Enhanced Xylose Fermentation Ability, and Use Therefor
US20160203646A1 (en) * 2015-01-14 2016-07-14 Hashplay Inc. System and method for providing virtual reality content
CN105939482A (zh) * 2015-03-05 2016-09-14 诺基亚技术有限公司 视频流式传输方法
WO2016191702A1 (en) * 2015-05-27 2016-12-01 Google Inc. Method and apparatus to reduce spherical video bandwidth to user headset
CN106485772A (zh) * 2016-09-30 2017-03-08 北京百度网讯科技有限公司 全景切换方法及系统

Also Published As

Publication number Publication date
EP3669547A4 (en) 2020-10-21
CN111052750B (zh) 2022-01-25
WO2019045473A1 (en) 2019-03-07
US11290758B2 (en) 2022-03-29
US20190069000A1 (en) 2019-02-28
KR20200037442A (ko) 2020-04-08
EP3669547A1 (en) 2020-06-24
KR102602380B1 (ko) 2023-11-16
EP3669547B1 (en) 2022-09-28

Similar Documents

Publication Publication Date Title
CN111052750B (zh) 用于点云流传输的方法和装置
TWI803590B (zh) 藉由所關注區域之制定的異步時間及空間翹曲
AU2017232207B2 (en) Bandwidth efficient vr video streaming
US10560680B2 (en) Virtual reality with interactive streaming video and likelihood-based foveation
CN108702454B (zh) 用于视频显示的方法、系统和计算设备
CN108156484B (zh) 利用自适应速率分配优先处理基于图块的虚拟现实视频流
WO2018064331A1 (en) Streaming volumetric video for six degrees of freedom virtual reality
JP2018139102A (ja) 没入型コンテンツ内の関心地点を決定する方法及び装置
US11461871B2 (en) Virtual reality cinema-immersive movie watching for headmounted displays
CN110996097B (zh) Vr多媒体的体验质量确定方法及装置
US11032535B2 (en) Generating a three-dimensional preview of a three-dimensional video
US11159823B2 (en) Multi-viewport transcoding for volumetric video streaming
US20220172440A1 (en) Extended field of view generation for split-rendering for virtual reality streaming
EP3564905A1 (en) Conversion of a volumetric object in a 3d scene into a simpler representation model
CN113810755B (zh) 全景视频预览的方法、装置、电子设备及存储介质
US20230042078A1 (en) Encoding and decoding views on volumetric image data
CN108693953A (zh) 一种增强现实ar投影方法及云端服务器
Caruso et al. An adaptive closed-loop encoding vnf for virtual reality applications
JP7522605B2 (ja) 送信装置、受信装置、ネットワークノード、及びプログラム
JP6589526B2 (ja) ビットレート決定装置、サーバ装置、ビットレート決定方法、及びプログラム
CN118828098A (zh) 弹幕显示方法、装置、电子设备、存储介质和程序产品
CN116916028A (zh) 使用虚拟分辨率调整的视频流缩放

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant