CN110784714A - 用于沉浸式视频的选择性补片打包 - Google Patents

用于沉浸式视频的选择性补片打包 Download PDF

Info

Publication number
CN110784714A
CN110784714A CN201910561436.0A CN201910561436A CN110784714A CN 110784714 A CN110784714 A CN 110784714A CN 201910561436 A CN201910561436 A CN 201910561436A CN 110784714 A CN110784714 A CN 110784714A
Authority
CN
China
Prior art keywords
patch
projection directions
encoded pictures
patches
graphics
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.)
Pending
Application number
CN201910561436.0A
Other languages
English (en)
Inventor
E·鲁姆
J·博伊斯
A·J·圣伯格
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.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of CN110784714A publication Critical patent/CN110784714A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/10Processing, recording or transmission of stereoscopic or multi-view image signals
    • H04N13/106Processing image signals
    • H04N13/161Encoding, multiplexing or demultiplexing different image signal components
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/20Image signal generators
    • H04N13/275Image signal generators from 3D object models, e.g. computer-generated stereoscopic image signals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/423Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/10Processing, recording or transmission of stereoscopic or multi-view image signals
    • H04N13/106Processing image signals
    • H04N13/167Synchronising or controlling image signals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Image Generation (AREA)

Abstract

实施例总体上涉及用于沉浸式视频的选择性补片打包。处理系统的实施例包括:一个或多个处理器核;以及存储器,用于存储沉浸式视频的数据,该数据包括针对多个投影方向的多个补片。系统用于选择用于打包的补片,对补片的选择至少部分地基于多个投影方向中的哪一个与补片中的每一个补片相关联。系统用于根据对补片的选择将补片编码到一个或多个经编码图片中。

Description

用于沉浸式视频的选择性补片打包
相关申请
本申请涉及由Jill Boyce于2018年7月31日提交的名称为“REDUCED RENDERINGOF SIX-DEGREE OF FREEDOM VIDEO(减少六自由度视频的渲染)”的共同转让的美国专利申请序列号16/050,153,所述美国专利申请的全部内容通过引用结合于此。
技术领域
本文所描述的实施例总体上涉及电子装置领域,并且更具体地涉及用于沉浸式视频的选择性补片打包。
背景技术
六自由度(6DoF)视频是新兴的沉浸式视频用例,其为观看者提供沉浸式媒体体验,在其中,所述观看者控制场景的视点。更简单的三自由度(3DoF)视频(例如360度或全景视频)允许观看者从固定位置改变围绕X、Y和Z轴的取向(描述为偏航、俯仰和滚动)。6DoF视频使得观看者能够通过沿X、Y和Z轴的平移移动来改变位置。
可以使用点云来表示6DoF视频。然而,点云数据的渲染在计算上是昂贵的,使得以高帧速率渲染包含大量点的点云视频变得困难。此外,点云数据速率很大,需要较大的容量用于存储或传输。
当对从多个相机捕获的6DoF视频进行编码时,补片是由单个相机或在特定相机/虚拟相机最可见的内容的虚拟相机位置处的投影形成的。来自给定相机或虚拟相机的内容可以被称为投影方向。
来自多个投影方向的纹理和深度补片被打包到单一图片中并且用如HEVC(高效视频编码)或AVC(高级视频编码)等正常视频编解码器进行编码。MPEG点云编码(PCC)使用来自与长方体的面相对应的六个投影方向的投影。然而,客户端然后需要解码整个经编码图片,所述经编码图片是高分辨率图像,因为它包含来自多个投影方向的补片。解码整个经编码图片将给解码器带来很大的负担,并且将需要高网络带宽以供传输。
附图说明
以示例而非限制性方式在附图中展示本文所描述的实施例,在附图中,相同的参考号指代类似元件。
图1是根据一些实施例的处理系统的框图;
图2是处理器的实施例的框图,所述处理器具有一个或多个处理器核、集成存储器控制器以及集成图形处理器;
图3是根据一些实施例的图形处理器的框图;
图4是根据一些实施例的图形处理器的图形处理引擎的框图;
图5是根据一些实施例的图形处理器核的硬件逻辑的框图;
图6A至图6B展示了根据一些实施例的线程执行逻辑,所述线程执行逻辑包括在图形处理器核中采用的处理元件阵列;
图7展示了根据一些实施例的图形处理器指令格式的框图;
图8是图形处理器的另一个实施例的框图;
图9A是框图,展示了根据一些实施例的图形处理器命令格式;
图9B是框图,展示了根据实施例的图形处理器命令序列;
图10展示了根据一些实施例的数据处理系统的示例性图形软件架构;
图11A是框图,展示了根据实施例的可以用于制造用于执行操作的集成电路的IP核开发系统;
图11B展示了根据一些实施例的集成电路封装体组件的截面侧视图;
图12是框图,展示了根据实施例的可以使用一个或多个IP核来制造的示例性芯片上系统集成电路;
图13A展示了根据实施例的可以使用一个或多个IP核来制造的芯片上系统集成电路的示例性图形处理器;
图13B展示了根据实施例的可以使用一个或多个IP核制造的芯片上系统集成电路的附加示例性图形处理器;
图14A展示了根据一些实施例的可以包括在图形处理器内的图形核;
图14B展示了根据一些实施例的适合于部署在多芯片模块上的高度并行的通用图形处理单元;
图15A展示了多种形式的沉浸式视频;
图15B展示了用于沉浸式视频的图像投影和纹理平面;
图16展示了用于生成和消费沉浸式视频的客户端-服务器系统;
图17A至图17B展示了用于对3DoF+(3DoF Plus)内容进行编码和解码的系统;
图18A至图18B展示了用于对6DoF纹理几何数据进行编码和解码的系统;
图19A至图19B展示了用于对6DoF点云数据进行编码和解码的系统;
图20A是根据一些实施例的用于提供选择性补片打包的处理系统的图示;
图20B是根据一些实施例的用于对包含所选补片的一个或多个经编码图片进行解码的客户端系统的图示;
图21是根据一些实施例的利用选择性补片打包的沉浸式视频的图像的图示;
图22是为示例性图像组生成的补片的简化图示;
图23是根据一些实施例的包括选择性补片打包的系统的示例性视点组的图示;
图24是根据一些实施例的用于为每个视点提供经编码图片的选择性补片打包的图示;
图25A至图25D展示了根据一些实施例的用于选择性补片打包的多组视点;图26是根据一些实施例的用于为每组视点提供经编码图片的选择性补片打包的图示;
图27A是根据一些实施例的根据投影方向将补片选择性地打包到图块中的图示;
图27B是根据一些实施例的根据多组投影方向将补片选择性地打包到图块中的图示;
图28A是展示了根据一些实施例的用于选择性补片打包的过程的流程图;并且
图28B是展示了根据一些实施例的用于对选择性打包的补片进行解码和解包的过程的流程图。
具体实施方式
本文所描述的实施例总体上涉及用于沉浸式视频的选择性补片打包。
当对从多个相机捕获的6DoF(六自由度)视频进行编码时,补片由单个相机或在特定相机/虚拟相机最可见的内容的虚拟相机位置处的投影形成的。来自给定相机或虚拟相机的内容可以被称为投影方向。
来自多个投影方向的纹理和深度补片被打包到单一图片中并且用如HEVC(高效视频编码)或AVC(高级视频编码)等正常视频编解码器进行编码。MPEG点云编码(PCC)使用来自与长方体的面相对应的六个投影方向的投影。然而,客户端然后需要解码整个经编码图片,所述经编码图片是高分辨率图像,因为它包含来自多个投影方向的补片。解码整个经编码图片将给解码器带来很大的负担,并且将需要高网络带宽以供传输。
在一些实施例中,设备、系统或过程提供用于沉浸式视频的选择性补片打包。在一些实施例中,根据多个投影方向中的哪一个与补片中的各补片相关联来选择补片。
系统概述
图1是根据实施例的处理系统100的框图。在各实施例中,系统100包括一个或多个处理器102以及一个或多个图形处理器108,并且可以是单处理器台式系统、多处理器工作站系统或具有大量处理器102或处理器核107的服务器系统。在一个实施例中,系统100是被并入用于在移动设备、手持式设备或嵌入式设备内使用的芯片上系统(SoC)集成电路内的处理平台。
在一个实施例中,系统100可以包括基于服务器的游戏平台、游戏控制台,或被并入基于服务器的游戏平台、游戏控制台内,该游戏控制台包括游戏与媒体控制台、移动游戏控制台、手持式游戏控制台、或在线游戏控制台。在一些实施例中,系统100是移动电话、智能电话、平板计算设备或移动互联网设备。处理系统100还可以包括可穿戴设备、与可穿戴设备耦合、或者集成在可穿戴设备中,该可穿戴设备诸如智能手表可穿戴设备、智能眼镜设备、增强现实设备、或虚拟现实设备。在一些实施例中,处理系统100是电视或机顶盒设备,该电视或机顶盒设备具有一个或多个处理器102以及由一个或多个图形处理器108生成的图形界面。
在一些实施例中,一个或多个处理器102各自包括用于处理指令的一个或多个处理器核107,这些指令在被执行时执行系统和用户软件的操作。在一些实施例中,一个或多个处理器核107中的每个处理器核被配置成用于处理特定的指令集109。在一些实施例中,指令集109可促进复杂指令集计算(CISC)、精简指令集计算(RISC)、或经由超长指令字(VLIW)的计算。多个处理器核107可各自处理不同的指令集109,该指令集109可包括用于促进对其他指令集进行仿真的指令。处理器核107还可包括其他处理设备,诸如,数字信号处理器(DSP)。
在一些实施例中,处理器102包括高速缓存存储器104。取决于架构,处理器102可以具有单个内部高速缓存或多个层级的内部高速缓存。在一些实施例中,在处理器102的各部件之间共享高速缓存存储器。在一些实施例中,处理器102还使用外部高速缓存(例如,第3级(L3)高速缓存或末级高速缓存(LLC))(未示出),可使用已知的高速缓存一致性技术在处理器核107之间共享外部高速缓存。另外,寄存器堆106被包括在处理器102中,该处理器102可包括用于存储不同类型的数据的不同类型的寄存器(例如,整数寄存器、浮点寄存器、状态寄存器、以及指令指针寄存器)。一些寄存器可以是通用寄存器,而其他寄存器可特定于处理器102的设计。
在一些实施例中,一个或多个处理器102与一个或多个接口总线110耦合,以在处理器102与系统100中的其他部件之间传输诸如地址、数据、或控制信号之类的通信信号。在一个实施例中,接口总线110可以是处理器总线,诸如,直接媒体接口(DMI)总线的版本。然而,处理器总线不限于DMI总线,并且可包括一个或多个外围部件互连总线(例如,PCI、PCI快速)、存储器总线或其他类型的接口总线。在一个实施例中,(多个)处理器102包括集成存储器控制器160和平台控制器中枢130。存储器控制器116促进存储器设备与系统100的其他部件之间的通信,而平台控制器中枢(PCH)130提供经由本地I/O总线至I/O设备的连接。
存储器设备120可以是动态随机存取存储器(DRAM)设备、静态随机存取存储器(SRAM)设备、闪存设备、相变存储器设备、或具有合适的性能以充当进程存储器的某种其他存储器设备。在一个实施例中,存储器设备120可以作为系统100的系统存储器来进行操作,以存储数据122和指令121,以供在一个或多个处理器102执行应用或进程时使用。存储器控制器116还与任选的外部图形处理器112耦合,该任选的外部图形处理器112可与处理器102中的一个或多个图形处理器108通信以执行图形和媒体操作。在一些实施例中,显示设备111可以连接至(多个)处理器102。显示设备111可以是以下各项中的一项或多项:内部显示设备,如在移动电子设备或膝上型设备中;或经由显示接口(例如,显示端口(DisplayPort)等)附接的外部显示设备。在一个实施例中,显示设备111可以是头戴式显示器(HMD),诸如用于在虚拟现实(VR)应用或增强现实(AR)应用中使用的立体显示设备。
在一些实施例中,平台控制器中枢130启用外围设备以经由高速I/O总线连接到存储器设备120和处理器102。I/O外围设备包括但不限于音频控制器146、网络控制器134、固件接口128、无线收发机126、触摸传感器125、数据存储设备124(例如,硬盘驱动器、闪存等)。数据存储设备124可以经由存储接口(例如,SATA)或经由诸如外围部件互连总线(例如,PCI、PCI快速)之类的外围总线来进行连接。触摸传感器125可以包括触摸屏传感器、压力传感器、或指纹传感器。无线收发机126可以是Wi-Fi收发机、蓝牙收发机、或者诸如3G、4G或长期演进(LTE)收发机之类的移动网络收发机。固件接口128实现与系统固件的通信,并且可以是例如统一可扩展固件接口(UEFI)。网络控制器134可以实现到有线网络的网络连接。在一些实施例中,高性能网络控制器(未示出)与接口总线110耦合。在一个实施例中,音频控制器146是多通道高清音频控制器。在一个实施例中,系统100包括任选的用于将传统(legacy)(例如,个人系统2(PS/2))设备耦合至系统的传统I/O控制器140。平台控制器中枢130还可以连接至一个或多个通用串行总线(USB)控制器142连接输入设备,这些输入设备诸如键盘和鼠标143的组合、相机144或其他USB输入设备。
将会领会,所示的系统100是示例性的而非限制性的,因为也可使用以不同方式配置的其他类型的数据处理系统。例如,存储器控制器116和平台控制器中枢130的实例可被集成到诸如外部图形处理器112之类的分立的外部图形处理器中。在一个实施例中,平台控制器中枢130和/或存储器控制器116可在一个或多个处理器102外部。例如,系统100可以包括外部存储器控制器116和平台控制器中枢130,该外部存储器控制器116和平台控制器中枢130可被配置为在与(多个)处理器102通信的系统芯片组内的存储器控制器中枢和外围控制器中枢。
图2是处理器200的实施例的框图,该处理器200具有一个或多个处理器核202A-202N、集成存储器控制器214、以及集成图形处理器208。图2的具有与本文中任何其他附图的元件相同的附图标记(或名称)的那些元件能以与在本文中其他地方描述的方式类似的任何方式进行操作或起作用,但不限于此。处理器200可包括附加核,这些附加核多达且包括由虚线框表示的附加核202N。处理器核202A-202N中的每一个都包括一个或多个内部高速缓存单元204A-204N。在一些实施例中,每个处理器核还可访问一个或多个共享高速缓存单元206。
内部高速缓存单元204A-204N和共享高速缓存单元206表示处理器200内的高速缓存存储器层级结构。高速缓存存储器层级结构可包括每个处理器核内的至少一个层级的指令和数据高速缓存、以及一个或多个层级的共享中级高速缓存,诸如,第2级(L2)、第3级(L3)、第4级(L4)、或其他层级的高速缓存,其中,在外部存储器之前的最高层级的高速缓存被分类为LLC。在一些实施例中,高速缓存一致性逻辑维持各高速缓存单元206与204A-204N之间的一致性。
在一些实施例中,处理器200还可包括一组一个或多个总线控制器单元216和系统代理核210。一个或多个总线控制器单元216管理一组外围总线,诸如,一个或多个PCI或PCI快速总线。系统代理核210提供对各处理器部件的管理功能。在一些实施例中,系统代理核210包括一个或多个集成存储器控制器214,以管理对各外部存储器设备(未示出)的访问。
在一些实施例中,处理器核202A-202N中的一个或多个包括对同时多线程的支持。在此类实施例中,系统代理核210包括用于在多线程处理期间对核202A-202N进行协调和操作的部件。系统代理核210可附加地包括功率控制单元(PCU),该功率控制单元包括用于调节处理器核202A-202N以及图形处理器208的功率状态的逻辑和部件。
在一些实施例中,处理器200附加地包括用于执行图形处理操作的图形处理器208。在一些实施例中,图形处理器208与共享高速缓存单元的集合206以及系统代理核210耦合,该系统代理核210包括一个或多个集成存储器控制器214。在一些实施例中,系统代理核210还包括显示控制器211,以将图形处理器输出驱动到一个或多个耦合的显示器。在一些实施例中,显示控制器211还可以是经由至少一个互连与图形处理器耦合的分开的模块,或者可被集成在图形处理器208内。
在一些实施例中,基于环的互连单元212用于耦合处理器200的内部部件。然而,可使用替代的互连单元,诸如,点对点互连、切换式互连、或其他技术,包括本领域公知的技术。在一些实施例中,图形处理器208经由I/O链路213与环形互连212耦合。
示例性I/O链路213表示各种各样的I/O互连中的至少一者,包括促进各处理器部件与高性能嵌入式存储器模块218(诸如,eDRAM模块)之间的通信的封装上I/O互连。在一些实施例中,处理器核202A-202N中的每个处理器核以及图形处理器208将嵌入式存储器模块218用作共享末级高速缓存。
在一些实施例中,处理器核202A-202N是执行同一指令集架构的同构核。在另一实施例中,处理器核202A-202N就指令集架构(ISA)而言是异构的,其中,处理器核202A-202N中的一者或多者执行第一指令集,而其他核中的至少一者执行第一指令集的子集或不同的指令集。在一个实施例中,处理器核202A-202N就微架构而言是同质的,其中,具有相对较高功耗的一个或多个核与具有较低功耗的一个或多个功率核耦合。另外,处理器200可被实现在一个或多个芯片上或者被实现为除其他部件之外还具有所图示的部件的SoC集成电路。
图3是图形处理器300的框图,该图形处理器300可以是分立的图形处理单元、或者可以是与多个处理核集成的图形处理器。在一些实施例中,图形处理器经由至图形处理器上的寄存器的存储器映射的I/O接口并且利用被置入处理器存储器中的命令进行通信。在一些实施例中,图形处理器300包括用于访问存储器的存储器接口314。存储器接口314可以是到本地存储器、一个或多个内部高速缓存、一个或多个共享外部高速缓存、和/或到系统存储器的接口。
在一些实施例中,图形处理器300还包括用于将显示输出数据驱动到显示设备320的显示控制器302。显示控制器302包括用于显示器的一个或多个重叠平面以及视频或用户接口元件的多个层的组合的硬件。显示设备320可以是内部或外部显示设备。在一个实施例中,显示设备320是头戴式显示设备,诸如,虚拟现实(VR)显示设备或增强现实(AR)显示设备。在一些实施例中,图形处理器300包括视频编解码器引擎306,以将媒体编码、解码或转码为一种或多种媒体编码格式,从一种或多种媒体编码格式编码、解码或转码媒体,或在一种或多种媒体编码格式之间进行对媒体进行编码、解码或转码,这些媒体编码格式包括但不限于:运动图像专家组(MPEG)格式(诸如,MPEG-2)、高级视频译码(AVC)格式(诸如,H.264/MPEG-4AVC)、以及电影&电视工程师协会(SMPTE)421M/VC-1、和联合图像专家组(JPEG)格式(诸如,JPEG、以及运动JPEG(MJPEG)格式)。
在一些实施例中,图形处理器300包括用于执行包括例如位边界块传递的二维(2D)光栅化器操作的块图像传递(BLIT)引擎304。然而,在一个实施例中,使用图形处理引擎(GPE)310的一个或多个部件执行2D图形操作。在一些实施例中,GPE 310是用于执行图形操作的计算引擎,这些图形操作包括三维(3D)图形操作和媒体操作。
在一些实施例中,GPE 310包括用于执行3D操作的3D流水线312,3D操作诸如,使用作用于3D图元形状(例如,矩形、三角形等)的处理功能来渲染三维图像和场景。3D流水线312包括可编程的固定功能元件,这些可编程的固定功能元件执行元件内的各种任务和/或将执行线程生成(spawn)至3D/媒体子系统315。虽然3D流水线312可以用于执行媒体操作,但是GPE 310的实施例还包括专门用于执行诸如视频后处理和图像增强之类的媒体操作的媒体流水线316。
在一些实施例中,媒体流水线316包括固定功能或可编程逻辑单元以便代替、或代表视频编解码器引擎306来执行一种或多种专业的媒体操作,诸如,视频解码加速、视频解交织、以及视频编码加速。在一些实施例中,媒体流水线316附加地包括用于生成供在3D/媒体子系统315上执行的线程的线程生成单元。所生成的线程对3D/媒体子系统315中所包括的一个或多个图形执行单元执行对媒体操作的计算。
在一些实施例中,3D/媒体子系统315包括用于执行由3D流水线312和媒体流水线316生成的线程的逻辑。在一个实施例中,流水线向3D/媒体子系统315发送线程执行请求,该3D/媒体子系统包括用于仲裁并将各请求分派到可用的线程执行资源的线程分派逻辑。执行资源包括用于处理3D和媒体线程的图形执行单元阵列。在一些实施例中,3D/媒体子系统315包括用于线程指令和数据的一个或多个内部高速缓存。在一些实施例中,子系统还包括用于在线程之间共享数据并用于存储输出数据的共享存储器,包括寄存器和可寻址存储器。
图形处理引擎
图4是根据一些实施例的图形处理器的图形处理引擎410的框图。在一个实施例中,图形处理引擎(GPE)410是图3中所示的GPE 310的一个版本。图4的具有与本文中任何其他附图的元件相同的附图标记(或名称)的那些元件能以与在本文中其他地方描述的方式类似的任何方式进行操作或起作用,但不限于此。例如,图示了图3的3D流水线312和媒体流水线316。媒体流水线316在GPE 410的一些实施例中是任选的,并且可以不显式地包括在GPE 410内。例如以及在至少一个实施例中,单独的媒体和/或图像处理器耦合至GPE 410。
在一些实施例中,GPE 410与命令流转化器403耦合或包括命令流转化器403,该命令流转化器403向3D流水线312和/或媒体流水线316提供命令流。在一些实施例中,命令流转化器403与存储器耦合,该存储器可以是系统存储器、或者是内部高速缓存存储器和共享高速缓存存储器中的一者或多者。在一些实施例中,命令流转化器403从存储器接收命令并将这些命令发送至3D流水线312和/或媒体流水线316。这些命令是从存储用于3D流水线312和媒体流水线316的环形缓冲器取出的指示。在一个实施例中,环形缓冲器可以附加地包括存储多批多个命令的批命令缓冲器。用于3D流水线312的命令还可以包括对在存储器中存储的数据的引用,诸如但不限于用于3D流水线312的顶点数据和几何数据和/或用于媒体流水线316的图像数据和存储器对象。3D流水线312和媒体流水线316通过以下方式来处理命令和数据:经由相应流水线内的逻辑来执行操作;或将一个或多个执行线程分派给图形核阵列414。在一个实施例中,图形核阵列414包括一个或多个图形核块(例如,(多个)图形核415A、(多个)图形核415B),每个块包括一个或多个图形核。每个图形核包括一组图形执行资源,这些图形执行资源包括:用于执行图形操作和计算操作的通用执行逻辑和图形专用执行逻辑;以及固定功能纹理处理逻辑和/或机器学习和人工智能加速逻辑。
在各实施例中,3D流水线312包括:固定功能逻辑和可编程逻辑,用于通过处理指令并将执行线程分派给图形核阵列414来处理一个或多个着色器程序,该着色器程序诸如,顶点着色器、几何着色器、像素着色器、片段着色器、计算着色器或其他着色器程序。图形核阵列414提供了供在处理这些着色器程序时使用的统一的执行资源块。图形核阵列414的(多个)图形核415A-414B内的多用途执行逻辑(例如,执行单元)包括对各种3D API着色器语言的支持,并且可以执行与多个着色器相关联的多个同时的执行线程。
在一些实施例中,图形核阵列414还包括用于执行诸如视频和/或图像处理之类的媒体功能的执行逻辑。在一个实施例中,执行单元附加地包括通用逻辑,除了图形处理操作之外,该通用逻辑还可编程以执行并行通用计算操作。通用逻辑可以与图1的(多个)处理器核107或如图2中的核202A-202N内的通用逻辑并行地或结合地执行处理操作。
由在图形核阵列414上执行的线程生成的输出数据可以将数据输出到统一返回缓冲器(URB)418中的存储器。URB 418可以存储多个线程的数据。在一些实施例中,URB 418可用于在图形核阵列414上执行的不同线程之间发送数据。在一些实施例中,URB 418可另外用于图形核阵列上的线程与共享功能逻辑420内的固定功能逻辑之间的同步。
在一些实施例中,图形核阵列414是可缩放的,以使得该阵列包括可变数量的图形核,这些图形核各自具有基于GPE 410的目标功率和性能水平的可变数量的执行单元。在一个实施例中,执行资源是动态可缩放的,以使得该执行资源可根据需要而被启用或禁用。
图形核阵列414与共享功能逻辑420耦合,该共享功能逻辑420包括在图形核阵列中的图形核之间共享的多个资源。共享功能逻辑420内的共享功能是向图形核阵列414提供专业的补充功能的硬件逻辑单元。在各实施例中,共享功能逻辑420包括但不限于采样器421、数学422和线程间通信(ITC)423逻辑。另外,一些实施例实现共享功能逻辑420内的一个或多个高速缓存425。
在给定的专业功能的需求不足以包含在图形核阵列414中的情况下实施共享功能。相反,该专业功能的单个实例化被实现为共享功能逻辑420中的独立实体并且在图形核阵列414内的执行资源之间共享。在图形核阵列414之间共享并包括在图形核阵列414内的精确的功能的集合在跨实施例而变化。在一些实施例中,共享功能逻辑420内由图形核阵列414广泛使用的特定共享功能可被包括在图形核阵列414内的共享功能逻辑416内。在各实施例中,图形核阵列414内的共享功能逻辑416可以包括共享功能逻辑420内的一些或所有逻辑。在一个实施例中,共享功能逻辑420内的所有逻辑元件可在图形核阵列414的共享功能逻辑416内重复。在一个实施例中,共享功能逻辑420被排除以有利于图形核阵列414内的共享功能逻辑416。
图5是根据本文中所描述的一些实施例的图形处理器核500的硬件逻辑的框图。图5的具有与本文中任何其他附图的元件相同的附图标记(或名称)的元件能以与在本文中其他地方描述的方式类似的任何方式进行操作或起作用,但不限于此。在一些实施例中,所图示的图形处理器核500被包括在图4的图形核阵列414内。图形处理器核500——有时称为核切片——可以是模块化图形处理器内的一个或多个图形核。图形处理器核500是示例性的一个图形核切片,并且如本文中所描述的图形处理器可包括基于目标功率和性能包络的多个图形核切片。每个图形核500可以包括与多个子核501A-501F(也被称为子切片)耦合的固定功能块530,这些子核包括模块化通用和固定功能逻辑块。
在一些实施例中,固定功能块530包括几何/固定功能流水线536,例如,在低性能和/或低功率图形处理器实施方式中,该几何/固定功能流水线536可以由图形核500中的所有子核共享。在各实施例中,几何/固定功能流水线536包括3D固定功能流水线(例如,如图3和图4中的3D流水线312)、视频前端单元、线程生成器和线程分派器、以及统一返回缓冲器管理器,该统一返回缓冲器管理器管理诸如图4的统一返回缓冲器418之类的统一返回缓冲器。
在一个实施例中,固定功能块530还包括图形SoC接口537、图形微控制器538和媒体流水线539。图形SoC接口537提供了图形核500与芯片上系统集成电路内的其他处理器核之间的接口。图形微控制器538是可配置成用于管理图形处理器500的包括线程分派、调度和先占(pre-emption)在内的各种功能的可编程子处理器。媒体流水线539(例如,图3和图4的媒体流水线316)包括用于促进对包括图像数据和视频数据在内的多媒体数据进行解码、编码、预处理和/或后处理的逻辑。媒体流水线539经由对子核501-501F内的计算或采样逻辑的请求来实现媒体操作。
在一个实施例中,SoC接口537使得图形核500能够与通用应用处理器核(例如,CPU)和/或SoC内的其他部件进行通信,这些其他部件包括诸如共享末级高速缓存存储器之类的存储器层级结构元件、系统RAM、和/或嵌入式芯片上或封装上DRAM。SoC接口537还可以使得能够与SoC内诸如相机成像流水线之类的固定功能设备进行通信,并且使得能够使用和/或实现可在图形核500与SoC内的CPU之间共享的全局存储器原子。SoC接口537还可以实现针对图形核500的功率管理控制,并且实现图形核500的时钟域与SoC内的其他时钟域之间的接口。在一个实施例中,SoC接口537实现命令缓冲器的从被配置成向图形处理器内的一个或多个图形核中的每个图形核提供命令和指令的命令流转化器和全局线程分派器的接收。当媒体操作将要被执行时,这些命令和指令可以被分派给媒体流水线539,或者当图形处理操作将要被执行时,这些命令和指令可以被分派给几何和固定功能流水线(例如,几何和固定功能流水线536、几何和固定功能流水线514)。
图形微控制器538可以被配置成用于执行针对图形核500的各种调度任务和管理任务。在一个实施例中,图形微控制器538可以对子核501A-501F内的执行单元(EU)阵列502A-502F、504A-504F内的各图形并行引擎执行图形和/或计算工作负荷调度。在这种调度模型中,在包括图形核500的SoC的CPU核上执行的主机软件可以经由多个图形处理器门铃(doorbell)中的一个来提交工作负荷,这调用了对适当图形引擎的调度操作。调度操作包括:确定接下来要运行哪个工作负荷、向命令流转化器提交工作负荷、对在引擎上运行的现有工作负荷进行先占、监测工作负荷的进展、以及通知主机软件何时完成工作负荷。在一个实施例中,图形微控制器538还可以促进图形核500的低功率或空闲状态,从而为图形核500提供独立于操作系统和/或系统上的图形驱动器软件跨低功率状态转换来对图形核500内的寄存器进行保存和恢复的能力。
图形核500可具有多于或少于所图示的子核501A-501F的、多达N个的模块化子核。对于每个N个子核的集合,图形500还可以包括共享功能逻辑510、共享和/或高速缓存存储器512、几何/固定功能流水线514、以及用于加速各种图形和计算处理操作的附加固定功能逻辑516。共享功能逻辑510可以包括与图4的共享功能逻辑420相关联的逻辑单元(例如,采样器逻辑、数学逻辑、和/或线程间通信逻辑),这些逻辑单元可由图形核500内的每N个子核共享。共享和/或高速缓存存储器512可以是用于图形核500内的N个子核501A-501F的集合的末级高速缓存,并且还可以充当可由多个子核访问的共享存储器。几何/固定功能流水线514可以代替几何/固定功能流水线536被包括在固定功能块530内,并且可以包括相同的或类似的逻辑单元。
在一个实施例中,图形核500包括附加固定功能逻辑516,该附加固定功能逻辑516可以包括用于由图形核500使用的各种固定功能加速逻辑。在一个实施例中,附加固定功能逻辑516包括用于在仅位置着色中使用的附加几何流水线。在仅位置着色中,存在两个几何流水线:几何/固定功能流水线516、536内的完全几何流水线;以及拣选流水线,该拣选流水线是可被包括在附加固定功能逻辑516内的附加几何流水线。在一个实施例中,拣选流水线是完全几何流水线的精简版本。完全流水线和拣选流水线可以执行同一应用的不同实例,每个实例具有单独的上下文。仅位置着色可以隐藏被丢弃的三角形的长拣选运行,从而使得在一些实例中能够更早完成着色。例如并且在一个实施例中,附件固定功能逻辑516内的拣选流水线逻辑可以与主应用并行地执行位置着色器,并且一般比完全流水线更快地生成关键结果,因为完全流水线仅对顶点的位置属性进行取出和着色,而不向帧缓冲器执行对像素的光栅化和渲染。拣选流水线可以使用所生成的关键结果来计算所有三角形的可见性信息,而无需考虑那些三角形是否被拣选。完全流水线(其在本实例中可被称为重放(replay)流水线)可以消耗可见性信息以便跳过被拣选的三角形从而仅对最终被传递到光栅化阶段的可见三角形进行着色。
在一个实施例中,附加固定功能逻辑516还可以包括用于包括对机器学习训练或推理的优化在内的实现方式的机器学习加速逻辑,诸如固定功能矩阵乘法逻辑。
在每个图形子核501A-501F内包括可用于响应于由图形流水线、媒体流水线、或着色器程序的请求而执行图形操作、媒体操作和计算操作的一组执行资源。图形子核501A-501F包括:多个EU阵列502A-502F、504A-504F;线程分派和线程间通信(TD/IC)逻辑503A-503F;3D(例如,纹理)采样器505A-505F;媒体采样器506A-506F;着色器处理器507A-507F;以及共享本地存储器(SLM)508A-508F。EU阵列502A-502F、504A-504F各自包括多个执行单元,这些执行单元是能够执行浮点逻辑运算和整数/定点逻辑运算以便为图形操作、媒体操作或计算操作(包括图形程序、媒体程序或计算着色器程序)服务的通用图形处理单元,。TD/IC逻辑503A-503F执行针对子核内的执行单元的本地线程分派和线程控制操作,并且促进在该子核的执行单元上执行的线程之间的通信。3D采样器505A-505F可以将纹理或其他3D图形相关的数据读取到存储器中。3D采样器可以基于所配置的样本状态以及与给定纹理相关联的纹理格式来以不同方式读取纹理数据。媒体采样器506A-506F可以基于与媒体数据相关联的类型和格式来执行类似的读取操作。在一个实施例中,每个图形子核501A-501F可以替代地包括统一3D和媒体采样器。在子核501A-501F中的每个子核内的执行单元上执行的线程可以利用每个子核内的共享本地存储器508A-508F,以便使得在线程组内执行的线程能够使用公共的芯片上存储器池来执行。
执行单元
图6A-图6B图示出根据本文中所描述的实施例的线程执行逻辑600,该线程执行逻辑600包括在图形处理器核中所采用的处理元件的阵列。图6A-图6B的具有与本文中任何其他附图的元件相同的附图标记(或名称)的元件能以与在本文中其他地方描述的方式类似的任何方式进行操作或起作用,但不限于此。图6A图示出线程执行逻辑600的概览,该线程执行逻辑600可以包括被图示为具有图5的每个子核501A-501F的硬件逻辑的变体。图6B图示出执行单元的示例性内部细节。
如图6A中所图示,在一些实施例中,线程执行逻辑600包括着色器处理器602、线程分派器604、指令高速缓存606、包括多个执行单元608A-608N的可缩放执行单元阵列、采样器610、数据高速缓存612、以及数据端口614。在一个实施例中,可缩放执行单元阵列可以通过基于工作负荷的计算要求来启用或禁用一个或多个执行单元(例如,执行单元608A、608B、608C、608D至608N-1和608N中的任一个)来动态地缩放。在一个实施例中,所包括的部件经由互连结构而互连,该互连结构链接到这些部件中的每个部件。在一些实施例中,线程执行逻辑600包括通过指令高速缓存606、数据端口614、采样器610、以及执行单元阵列608A-608N中的一者或多者到存储器(诸如系统存储器或高速缓存存储器)的一个或多个连接。在一些实施例中,每个执行单元(例如,608A)是能够并行地为每个线程在处理多个数据元素的同时执行多个同时硬件线程的独立可编程通用计算单元。在各实施例中,执行单元608A-608N的阵列是可缩放的,以包括任何数量的单独的执行单元。
在一些实施例中,执行单元608A-608N主要用于执行着色器程序。着色器处理器602可以处理各种着色器程序并且经由线程分派器604分派与着色器程序相关联的执行线程。在一个实施例中,线程分派器包括用于对来自图形和媒体流水线的线程发起请求进行仲裁并且在执行单元608A-608N中的一个或多个执行单元上实例化所请求的线程的逻辑。例如,几何流水线可以将顶点、曲面细分或几何着色器分派至线程执行逻辑以进行处理。在一些实施例中,线程分派器604还可以处理来自执行着色器程序的运行时线程生成请求。
在一些实施例中,执行单元608A-608N支持包括对许多标准3D图形着色器指令的原生支持的指令集,从而使得以最小的转换来执行来自图形库(例如,Direct 3D和OpenGL)的着色器程序。这些执行单元支持顶点和几何处理(例如,顶点程序、几何程序、顶点着色器)、像素处理(例如,像素着色器、片段着色器)以及通用处理(例如,计算和媒体着色器)。执行单元608A-608N中的每个执行单元都能够执行多发布的单指令多数据(SIMD),并且多线程操作能够在面对较高等待时间的存储器访问时实现高效的执行环境。每个执行单元内的每个硬件线程都具有专用的高带宽寄存器堆和相关的独立线程状态。对于能够进行整数、单精度浮点运算和双精度浮点运算、SIMD分支功能、逻辑运算、超越运算和其他混杂运算的流水线,执行是每个时钟多发布的。在等待来自存储器或共享功能之一的数据时,执行单元608A-608N内的依赖性逻辑使等待线程休眠,直到所请求的数据已被返回。当等待线程正在休眠时,硬件资源可专门用于处理其他线程。例如,在与顶点着色器操作相关联的延迟期间,执行单元可以执行针对像素着色器、片段着色器或包括不同顶点着色器的另一种类型的着色器程序的操作。
执行单元608A-608N中的每个执行单元对数据元素的阵列进行操作。数据元素的数量是“执行大小”、或指令的通道数量。执行通道是执行数据元素访问、掩码、和指令内的流控制的逻辑单元。通道的数量可与针对特定图形处理器的物理算术逻辑单元(ALU)或浮点单元(FPU)的数量无关。在一些实施例中,执行单元608A-608N支持整数和浮点数据类型。
执行单元指令集包括SIMD指令。各种数据元素可以作为紧缩数据类型被存储在寄存器中,并且执行单元将基于元素的数据大小来处理各种元素。例如,当对256位宽的向量进行操作时,该256位的向量被存储在寄存器中,并且执行单元作为四个单独的64位紧缩数据元素(四字(QW)大小的数据元素)、八个单独的32位紧缩数据元素(双字(DW)大小的数据元素)、十六个单独的16位紧缩数据元素(字(W)大小的数据元素)、或三十二个单独的8位数据元素(字节(B)大小的数据元素)对向量上操作。然而,不同的向量宽度和寄存器大小是可能的。
在一个实施例中,可以将一个或多个执行单元组合到融合执行单元609A-609N中,这些融合执行单元具有对于融合EU而言共同的线程控制逻辑(607A-607N)。可以将多个EU融合到EU组中。融合EU组中的每个EU可以被配置成用于执行单独的SIMD硬件线程。融合EU组中的EU数量可以根据实施例而变化。另外,可以每个EU地执行不同的SIMD宽度,包括但不限于SIMD8、SIMD16和SIMD32。每个所融合的图形执行单元609A-609N包括至少两个执行单元。例如,所融合的执行单元609A包括第一EU 608A、第二EU 608B、以及对于第一EU 608A和第二EU 608B而言共同的线程控制逻辑607A。线程控制逻辑607A控制在所融合的图形执行单元609A上执行的线程,从而允许所融合的执行单元609A-609N内的每个EU使用共同的指令指针寄存器来执行。
一个或多个内部指令高速缓存(例如,606)被包括在线程执行逻辑600中,以便对执行单元的线程指令进行高速缓存。在一些实施例中,一个或多个数据高速缓存(例如,612)被包括,以对在线程执行期间的线程数据进行高速缓存。在一些实施例中,采样器610被包括,从而为3D操作提供纹理采样并且为媒体操作提供媒体采样。在一些实施例中,采样器610包括专业的纹理或媒体采样功能,以便在向执行单元提供所采样的数据之前在采样过程中处理纹理或媒体数据。
在执行期间,图形和媒体流水线经由线程生成和分派逻辑向线程执行逻辑600发送线程发起请求。一旦一组几何对象已经被处理并被光栅化成像素数据,则着色器处理器602内的像素处理器逻辑(例如,像素着色器逻辑、片段着色器逻辑等)被调用以便进一步计算输出信息并且使得结果被写入到输出表面(例如,颜色缓冲器、深度缓冲器、模板印刷(stencil)缓冲器等)。在一些实施例中,像素着色器或片段着色器计算各顶点属性的值,这些顶点属性跨光栅化对象被内插。在一些实施例中,着色器处理器602内的像素处理器逻辑随后执行应用编程接口(API)供应的像素或片段着色器程序。为了执行着色器程序,着色器处理器602经由线程分派器604将线程分派给执行单元(例如,608A)。在一些实施例中,着色器处理器602使用采样器610中的纹理采样逻辑来访问存储器中所存储的纹理图中的纹理数据。对纹理数据和输入几何数据的算术运算计算每个几何片段的像素颜色数据,或丢弃一个或多个像素而不进行进一步处理。
在一些实施例中,数据端口614提供存储器访问机制,以供线程执行逻辑600将经处理的数据输出至存储器以便在图形处理器输出流水线上进行进一步处理。在一些实施例中,数据端口614包括或耦合至一个或多个高速缓存存储器(例如,数据高速缓存612)从而对经由数据端口进行的存储器访问的数据进行高速缓存。
如图6B中所图示,图形执行单元608可以包括指令取出单元637、通用寄存器堆阵列(GRF)624、架构寄存器堆阵列(ARF)626、线程仲裁器622、发送单元630、分支单元642、SIMD浮点单元(FPU)634的集合、以及在一个实施例中的专用整数SIMD ALU 635的集合。GRF624和ARF 626包括与在图形执行单元608中可能活跃的每个同时的硬件线程相关联的通用寄存器堆和架构寄存器堆的集合。在一个实施例中,每线程架构状态被维持在ARF 626中,而在线程执行期间所使用的数据被存储在GRF 624中。包括针对每个线程的指令指针的每个线程的执行状态可以保持在ARF 626中的线程专用寄存器中。
在一个实施例中,图形执行单元608具有作为同时多线程化(SMT)与细粒度交织多线程化(IMT)的组合的架构。该架构具有模块化配置,该模块化配置可以基于每执行单元的目标同时线程数量和目标寄存器数量而在设计时得到微调,在该模块化配置中,跨用于执行多个同时线程的逻辑来划分执行单元资源。
在一个实施例中,图形执行单元608可以共同发布多条指令,这些指令可以各自是不同的指令。图形执行单元线程608的线程仲裁器622可以将指令分派给以下各项中的一项以供执行:发送单元630、分支单元632或(多个)SIMD FPU 634。每个执行线程可以访问GRF624内的128个通用寄存器,其中,每个寄存器可以存储作为具有32位数据元素的SIMD 8元素向量可访问的32个字节。在一个实施例中,每个执行单元线程访问GRF 624内的4个千字节,但是实施例并不限于此,并且在其他实施例中可以提供更多或更少的寄存器资源。在一个实施例中,多达七个线程可以同时执行,但是每执行单元的线程数量还可以根据实施例而变化。在其中七个线程可访问4个千字节的实施例中,GRF 624可以存储总共28千字节。灵活寻址模式可以准许对多个寄存器进行一起寻址,从而高效地建立更宽的寄存器或者表示跨步矩形块数据结构。
在一个实施例中,通过由消息传递发送单元630所执行的“发送”指令来分派存储器操作、采样器操作以及其他较长等待时间系统通信。在一个实施例中,分支指令被分派给专用分支单元632以便促进SIMD发散和最终收敛。
在一个实施例中,图形执行单元608包括用于执行浮点运算的一个或多个SIMD浮点单元(FPU)634。在一个实施例中,(多个)FPU 634还支持整数计算。在一个实施例中,(多个)FPU 634可以SIMD执行多达数量M个32位浮点(或整数)运算,或者SIMD执行多达2M个16位整数或16位浮点运算。在一个实施例中,(多个)FPU中的至少一个提供支持高吞吐量超越数学功能和双精度64位浮点的扩展数学能力。在一些实施例中,8位整数SIMD ALU 635的集合还表示并且还可以具体地优化成执行与机器学习计算相关联的运算。
在一个实施例中,可以在图形子核分组(例如,子切片)时对图形执行单元608的多个实例的阵列进行实例化。为了可缩放性,产品架构可以选择每子核分组的确切执行单元数量。在一个实施例中,执行单元608可以跨多个执行通道来执行指令。在进一步的实施例中,在图形执行单元608上所执行的每个线程是在不同通道上执行的。
图7是图示出根据一些实施例的图形处理器指令格式700的框图。在一个或多个实施例中,图形处理器执行单元支持具有以多种格式的指令的指令集。实线框图示出一般被包括在执行单元指令中的组成部分,而虚线包括任选的或仅被包括在指令子集中的组成部分。在一些实施例中,所描述和图示的指令格式700是宏指令,因为它们是供应至执行单元的指令,这与从一旦指令被处理就进行的指令解码产生的微操作相对照。
在一些实施例中,图形处理器执行单元原生地支持采用128位指令格式710的指令。64位紧凑指令格式730可用于基于所选择的指令、多个指令选项和操作数数量的一些指令。原生的128位指令格式710提供对所有指令选项的访问,而一些选项和操作在64位格式730中受限。64位格式730中可用的原生指令根据实施例而不同。在一些实施例中,使用索引字段713中的一组索引值将指令部分地压缩。执行单元硬件基于索引值来引用一组压缩表,并使用压缩表输出来重构采用128位指令格式710的原生指令。
针对每种格式,指令操作码712限定执行单元要执行的操作。执行单元跨每个操作数的多个数据元素并行地执行每条指令。例如,响应于添加指令,执行单元跨标识纹理元素或图片元素的每个颜色通道执行同步添加操作。默认地,执行单元跨操作数的所有数据通道执行每条指令。在一些实施例中,指令控制字段714实现对某些执行选项的控制,这些执行选项诸如通道选择(例如,断言)以及数据通道排序(例如,混合)。针对采用128位指令格式710的指令,执行大小字段716限制了将并行地执行的数据通道的数量。在一些实施例中,执行大小字段716不可用于64位紧凑指令格式730。
一些执行单元指令具有多达三个操作数,包括两个源操作数src0 720、src1 722和一个目的地718。在一些实施例中,执行单元支持双目的地指令,其中这些目的地中的一个是隐式的。数据操纵指令可以具有第三源操作数(例如,SRC2 724),其中,指令操作码712确定源操作数的数量。指令的最后的源操作数可以是利用该指令传递的立即数(例如,硬编码的)值。
在一些实施例中,128位指令格式710包括访问/地址模式字段726,该访问/地址模式字段726指定例如是使用直接寄存器寻址模式还是间接寄存器寻址模式。当使用直接寄存器寻址模式时,由指令中的位直接提供一个或多个操作数的寄存器地址。
在一些实施例中,128位指令格式710包括访问/地址模式字段726,该访问/地址模式字段726指定针对指令的地址模式和/或访问模式。在一个实施例中,访问模式用于限定针对指令的数据访问对齐。一些实施例支持包括16字节对齐访问模式和1字节对齐访问模式的访问模式,其中,访问模式的字节对齐确定指令操作数的访问对齐。例如,当处于第一模式时,指令可将字节对齐的寻址用于源操作数和目的地操作数,并且当处于第二模式时,指令可将16字节对齐的寻址用于所有的源操作数和目的地操作数。
在一个实施例中,访问/地址模式字段726的地址模式部分确定指令要使用直接寻址还是间接寻址。当使用直接寄存器寻址模式时,指令中的位直接提供一个或多个操作数的寄存器地址。当使用间接寄存器寻址模式时,可基于指令中的地址寄存器值和地址立即数字段来计算一个或多个操作数的寄存器地址。
在一些实施例中,基于操作码712的位字段对指令进行分组从而简化操作码解码740。针对8位的操作码,位4、5、和6允许执行单元确定操作码的类型。所示出的确切的操作码分组仅为示例。在一些实施例中,移动和逻辑操作码组742包括数据移动和逻辑指令(例如,移动(mov)、比较(cmp))。在一些实施例中,移动和逻辑组742共享五个最高有效位(MSB),其中移动(mov)指令采用0000xxxxb的形式,并且逻辑指令采用0001xxxxb的形式。流控制指令组744(例如,调用(call)、跳转(jmp))包括采用0010xxxxb形式(例如,0x20)的指令。混杂指令组746包括指令的混合,包括采用0011xxxxb形式(例如,0x30)的同步指令(例如,等待(wait)、发送(send))。并行数学指令组748包括采用0100xxxxb形式(例如,0x40)的按分量的算术指令(例如,加(add)、乘(mul))。并行数学组748跨数据通道并行地执行算术运算。向量数学组750包括采用0101xxxxb形式(例如,0x50)的算术指令(例如,dp4)。向量数学组对向量操作数执行算术运算,诸如,点积计算。
图形流水线
图8是图形处理器800的另一实施例的框图。图8的具有与本文中任何其他附图中的元件相同的附图标记(或名称)的元件能以与在本文中其他地方描述的方式类似的任何方式进行操作或起作用,但不限于此。
在一些实施例中,图形处理器800包括几何流水线820、媒体流水线830、显示引擎840、线程执行逻辑850、以及渲染输出流水线870。在一些实施例中,图形处理器800是包括一个或多个通用处理核的多核处理系统内的图形处理器。图形处理器通过至一个或多个控制寄存器(未示出)的寄存器写入或者经由通过环形互连802发布至图形处理器800的命令而受控。在一些实施例中,环形互连802将图形处理器800耦合至其他处理部件,其他处理部件诸如其他图形处理器或通用处理器。来自环形互连802的命令由命令流转化器803解译,该命令流转化器803将指令供应至几何流水线820或媒体流水线830的单独部件。
在一些实施例中,命令流转化器803引导顶点获取器805的操作,该顶点获取器805从存储器读取顶点数据并执行由命令流转化器803提供的顶点处理命令。在一些实施例中,顶点获取器805将顶点数据提供给顶点着色器807,该顶点着色器807对每个顶点执行坐标空间变换和照明操作。在一些实施例中,顶点获取器805和顶点着色器807通过经由线程分派器831向执行单元852A-852B分派执行线程来执行顶点处理指令。
在一些实施例中,执行单元852A-852B是具有用于执行图形和媒体操作的指令集的向量处理器阵列。在一些实施例中,执行单元852A-852B具有专用于每个阵列或在多个阵列之间被共享的附加的L1高速缓存851。高速缓存可以被配置为数据高速缓存、指令高速缓存、或被分区以不同分区中包含数据和指令的单个高速缓存。
在一些实施例中,几何流水线820包括用于执行3D对象的硬件加速的曲面细分的曲面细分部件。在一些实施例中,可编程的外壳着色器811配置曲面细分操作。可编程域着色器817提供对曲面细分输出的后端评估。曲面细分器813在外壳着色器811的指示下进行操作,并且包含专用逻辑,该专用逻辑用于基于作为输入被提供至几何流水线820的粗糙的几何模型来生成详细的几何对象的集合。在一些实施例中,如果未使用曲面细分,则可以绕过曲面细分部件(例如,外壳着色器811、曲面细分器813、域着色器817)。
在一些实施例中,完整的几何对象可以由几何着色器819经由被分派至所述执行单元852A-852B的一个或多个线程来处理、或者可以直接行进至剪辑器829。在一些实施例中,几何着色器对整个几何对象进行操作,而不是如在图形流水线的先前级中那样对顶点或顶点补片(patch))进行操作。如果禁用曲面细分,则几何着色器819从顶点着色器807接收输入。在一些实施例中,几何着色器819是可由几何着色器程序编程的,以便在曲面细分单元被禁用时执行几何曲面细分。
在光栅化之前,剪辑器829处理顶点数据。剪辑器829可以是固定功能剪辑器或者具有剪辑和几何着色器功能的可编程剪辑器。在一些实施例中,渲染输出流水线870中的光栅化器和深度测试部件873分派像素着色器,以将几何对象转换为每像素表示。在一些实施例中,像素着色器逻辑被包括在线程执行逻辑850中。在一些实施例中,应用可绕过光栅化器和深度测试部件873,并且经由流出单元823访问未光栅化的顶点数据。
图形处理器800具有允许数据和消息在处理器的主要部件之间传递的互连总线、互连结构或某个其他互连机制。在一些实施例中,执行单元852A-852B和相关联的逻辑单元(例如,L1高速缓存851、采样器854、纹理高速缓存858等)经由数据端口856进行互连,以执行存储器访问并且与处理器的渲染输出流水线部件进行通信。在一些实施例中,采样器854、高速缓存851、858以及执行单元852A-852B各自都具有单独的存储器访问路径。在一个实施例中,纹理高速缓存858还可以被配置为采样器高速缓存。
在一些实施例中,渲染输出流水线870包含光栅化器和深度测试部件873,该光栅化器和深度测试部件873将基于顶点的对象转换为相关联的基于像素的表示。在一些实施例中,光栅化器逻辑包括用于执行固定功能三角形和线光栅化的窗口器/掩蔽器单元。相关联的渲染高速缓存878和深度高速缓存879在一些实施例中也是可用的。像素操作部件877对数据执行基于像素的操作,然而在一些实例中,与2D操作(例如,利用混合的位块图像传递)相关联的像素操作由2D引擎841执行,或者在显示时间由显示控制器843使用重叠显示平面来代替。在一些实施例中,共享L3高速缓存875可用于所有的图形部件,从而允许在无需使用主系统存储器的情况下共享数据。
在一些实施例中,图形处理器媒体流水线830包括媒体引擎837和视频前端834。在一些实施例中,视频前端834从命令流转化器803接收流水线命令。在一些实施例中,媒体流水线830包括单独的命令流转化器。在一些实施例中,视频前端834在将命令发送至媒体引擎837之前处理媒体命令。在一些实施例中,媒体引擎837包括用于生成线程以用于经由线程分派器831分派至线程执行逻辑850的线程生成功能。
在一些实施例中,图形处理器800包括显示引擎840。在一些实施例中,显示引擎840在处理器800外部,并且经由环形互连802、或某个其他互连总线或结构与图形处理器耦合。在一些实施例中,显示引擎840包括2D引擎841和显示控制器843。在一些实施例中,显示引擎840包含能够独立于3D流水线而操作的专用逻辑。在一些实施例中,显示控制器843与显示设备(未示出)耦合,该显示设备可以是系统集成的显示设备(如在膝上型计算机中)、或者经由显示设备连接器附接的外部显示设备。
在一些实施例中,几何流水线820和媒体流水线830可被配置成用于基于多个图形和媒体编程接口执行操作,并且并非专用于任何一种应用编程接口(API)。在一些实施例中,图形处理器的驱动器软件将专用于特定图形或媒体库的API调用转换为可由图形处理器处理的命令。在一些实施例中,为开放图形库(OpenGL)、开放计算语言(OpenCL)和/或Vulkan图形和计算API(这些全部来自科纳斯组织(Khronos Group))提供支持。在一些实施例中,还可以为来自微软公司的Direct3D库提供支持。在一些实施例中,可支持这些库的组合。还可为开源计算机视觉库(OpenCV)提供支持。如果可做出从未来API的流水线到图形处理器的流水线的映射,则具有兼容的3D流水线的未来API也将受到支持。
图形流水线编程
图9A是图示出根据一些实施例的图形处理器命令格式900的框图。图9B是图示出根据实施例的图形处理器命令序列910的框图。图9A中的实线框图示出一般被包括在图形命令中的组成成分,而虚线包括任选的或者仅被包括在图形命令的子集中的组成部分。图9A的示例性图形处理器命令格式900包括用于标识客户端902、命令操作代码(操作码)904、以及用于命令的数据906的数据字段。一些命令中还包括子操作码905和命令大小908。
在一些实施例中,客户端902指定处理命令数据的图形设备的客户端单元。在一些实施例中,图形处理器命令解析器检查每个命令的客户端字段,以调整对命令的进一步处理,并将命令数据路由至合适的客户端单元。在一些实施例中,图形处理器客户端单元包括存储器接口单元、渲染单元、2D单元、3D单元、和媒体单元。每个客户端单元具有对命令进行处理的相应的处理流水线。一旦命令被客户端单元接收到,客户端单元就读取操作码904以及子操作码905(如果存在),从而确定要执行的操作。客户端单元使用数据字段906中的信息来执行命令。针对一些命令,期望显式的命令大小908来指定命令的大小。在一些实施例中,命令解析器基于命令操作码自动地确定命令中的至少一些命令的大小。在一些实施例中,经由双字的倍数使命令对齐。
图9B中的流程图图示出示例性图形处理器命令序列910。在一些实施例中,以图形处理器的实施例为特征的数据处理系统的软件或固件使用所示出的命令序列的版本来启动、执行并终止图形操作集合。仅出于示例性目的示出并描述了样本命令序列,因为实施例并不限于这些特定命令,也不限于此命令序列。而且,所述命令可以作为批量命令以命令序列被发布,以使得图形处理器将以至少部分同时的方式处理命令序列。
在一些实施例中,图形处理器命令序列910可开始于:流水线转储清除命令912,以使得任一活跃的图形流水线完成该流水线的当前未决的命令。在一些实施例中,3D流水线922和媒体流水线924不同时进行操作。执行流水线转储清除,以使得活跃的图形流水线完成任何未决的命令。响应于流水线转储清除,用于图形处理器的命令解析器将暂停命令处理,直到活跃的绘图引擎完成未决的操作并且相关的读高速缓存被无效。任选地,渲染高速缓存中被标记为‘脏’的任何数据可以被转储清除到存储器。在一些实施例中,流水线转储清除命令912可以用于流水线同步或者用在将图形处理器置于低功率状态之前。
在一些实施例中,当命令序列需要图形处理器在流水线之间显式地切换时,使用流水线选择命令913。在一些实施例中,除非上下文是发布用于这两条流水线的命令,否则在发布流水线命令之前,在执行上下文中仅需要一次流水线选择命令913。在一些实施例中,在经由流水线选择命令913的流水线切换之前正好需要流水线转储清除命令912。
在一些实施例中,流水线控制命令914配置用于操作的图形流水线,并且用于对3D流水线922和媒体流水线924进行编程。在一些实施例中,流水线控制命令914配置用于活跃流水线的流水线状态。在一个实施例中,流水线控制命令914用于流水线同步,并且用于在处理批量命令之前清除来自活跃的流水线内的一个或多个高速缓存存储器的数据。
在一些实施例中,返回缓冲器状态命令916用于配置返回缓冲器的集合以供相应的流水线写入数据。一些流水线操作需要分配、选择、或配置一个或多个返回缓冲器,在处理期间,这些操作将中间数据写入到该一个或多个返回缓冲器中。在一些实施例中,图形处理器还使用一个或多个返回缓冲器以存储输出数据并且执行跨线程通信。在一些实施例中,返回缓冲器状态916包括选择用于流水线操作集合的返回缓冲器的大小和数量。
命令序列中的剩余命令基于用于操作的活跃的流水线而不同。基于流水线判定920,命令序列被定制用于以3D流水线状态930开始的3D流水线922、或者开始于媒体流水线状态940的媒体流水线924。
用于配置3D流水线状态930的命令包括用于顶点缓冲器状态、顶点元素状态、常量颜色状态、深度缓冲器状态、以及有待在处理3D图元命令之前配置的其他状态变量的3D状态设置命令。这些命令的值至少部分地基于使用中的特定3D API来确定。在一些实施例中,如果将不使用某些流水线元件,则3D流水线状态930命令还能够选择性地禁用或绕过这些特定的流水线元件。
在一些实施例中,3D图元932命令用于提交待由3D流水线处理的3D图元。经由3D图元932命令传递给图形处理器的命令和相关联参数将被转发到图形流水线中的顶点获取功能。顶点获取功能使用3D图元932命令数据来生成顶点数据结构。顶点数据结构被存储在一个或多个返回缓冲器中。在一些实施例中,3D图元932命令用于经由顶点着色器对3D图元执行顶点操作。为了处理顶点着色器,3D流水线922将着色器执行线程分派至图形处理器执行单元。
在一些实施例中,经由执行934命令或事件来触发3D流水线922。在一些实施例中,寄存器写入触发命令执行。在一些实施例中,经由命令序列中的‘前进’(‘go’)或‘踢除’(‘kick’)命令来触发执行。在一个实施例中,使用流水线同步命令来触发命令执行,以对通过图形流水线的命令序列进行转储清除。3D流水线将针对3D图元来执行几何处理。一旦完成操作,则对所得到的几何对象进行光栅化,并且像素引擎对所得到的像素进行着色。对于那些操作,还可以包括用于控制像素着色和像素后端操作的附加命令。
在一些实施例中,当执行媒体操作时,图形处理器命令序列910跟随媒体流水线924路径。一般地,针对媒体流水线924进行编程的具体用途和方式取决于待执行的媒体或计算操作。在媒体解码期间,特定的媒体解码操作可被卸载到媒体流水线。在一些实施例中,还可绕过媒体流水线,并且可使用由一个或多个通用处理核提供的资源来整体地或部分地执行媒体解码。在一个实施例中,媒体流水线还包括用于通用图形处理器单元(GPGPU)操作的元件,其中,图形处理器用于使用计算着色器程序来执行SIMD向量运算,该计算着色器程序与渲染图形图元不是显式地相关的。
在一些实施例中,以与3D流水线922相似的方式对媒体流水线924进行配置。将一组用于配置媒体流水线状态940的命令分派或放置到命令队列中,在媒体对象命令942之前。在一些实施例中,用于媒体流水线状态的命令940包括用于配置媒体流水线元件的数据,这些媒体流水线元件将用于处理媒体对象。这包括用于在媒体流水线内配置视频解码和视频编码逻辑的数据,诸如,编码或解码格式。在一些实施例中,用于媒体流水线状态940的命令还支持将一个或多个指针用于包含批量的状态设置的“间接”状态元件。
在一些实施例中,媒体对象命令942将指针供应至媒体对象以用于由媒体流水线进行处理。媒体对象包括存储器缓冲器,该存储器缓冲器包含待处理的视频数据。在一些实施例中,在发布媒体对象命令942之前,所有的媒体流水线状态必须是有效的。一旦流水线状态被配置并且媒体对象命令942被排队,则经由执行944命令或等效的执行事件(例如,寄存器写入)来触发媒体流水线924。随后可通过由3D流水线922或媒体流水线924提供的操作对来自媒体流水线924的输出进行后处理。在一些实施例中,以与媒体操作类似的方式来配置和执行GPGPU操作。
图形软件架构
图10图示出根据一些实施例的用于数据处理系统1000的示例性图形软件架构。在一些实施例中,软件架构包括3D图形应用1010、操作系统1020、以及至少一个处理器1030。在一些实施例中,处理器1030包括图形处理器1032以及一个或多个通用处理器核1034。图形应用1010和操作系统1020各自在数据处理系统的系统存储器1050中执行。
在一些实施例中,3D图形应用1010包含一个或多个着色器程序,该一个或多个着色器程序包括着色器指令1012。着色器语言指令可以采用高级着色器语言,诸如,高级着色器语言(HLSL)或OpenGL着色器语言(GLSL)。应用还包括可执行指令1014,该可执行指令1014采用适合用于由通用处理器核1034执行的机器语言。应用还包括由顶点数据限定的图形对象1016。
在一些实施例中,操作系统1020是来自微软公司的
Figure BDA0002108383030000301
Figure BDA0002108383030000302
操作系统、专用类UNIX操作系统、或使用Linux内核的变体的开源类UNIX操作系统。操作系统1020可以支持图形API 1022,诸如,Direct3D API、OpenGL API或Vulkan API。当Direct3DAPI正在使用时,操作系统1020使用前端着色器编译器1024以将采用HLSL的任何着色器指令1012编译成较低级的着色器语言。编译可以是即时(JIT)编译,或者应用可以执行着色器预编译。在一些实施例中,在对3D图形应用1010进行编译期间,将高级着色器编译成低级着色器。在一些实施例中,以中间形式(诸如,由Vulkan API使用的标准可移植中间表示(SPIR)的版本)提供着色器指令1012。
在一些实施例中,用户模式图形驱动器1026包含后端着色器编译器1027,该后端着色器编译器1027用于将着色器指令1012转换为硬件专用的表示。当OpenGL API正在使用时,将采用GLSL高级语言的着色器指令1012传递至用户模式图形驱动器1026以用于编译。在一些实施例中,用户模式图形驱动器1026使用操作系统内核模式功能1028来与内核模式图形驱动器1029进行通信。在一些实施例中,内核模式图形驱动器1029与图形处理器1032进行通信以分派命令和指令。
IP核实现
至少一个实施例的一个或多个方面可以由存储在机器可读介质上的表示性代码实现,该机器可读介质表示和/或限定集成电路(诸如,处理器)内的逻辑。例如,机器可读介质可包括表示处理器内的各个逻辑的指令。当由机器读取时,指令可使机器制造用于执行本文中所描述的技术的逻辑。此类表示(称为“IP核”)是集成电路的逻辑的可重复使用单元,这些可重复使用单元可以作为对集成电路的结构进行描述的硬件模型而被存储在有形的机器可读介质上。可将该硬件模型供应给各消费者或制造设施,这些消费者或制造设施将该硬件模型加载在制造集成电路的制造机器上。可制造集成电路,以使得电路执行与本文中所描述的实施例中的任一实施例相关联地描述的操作。
图11A是图示出根据实施例的可以用于制造集成电路以执行操作的IP核开发系统1100的框图。IP核开发系统1100可用于生成可以并入到更大的设计中或用于构建整个集成电路(例如,SOC集成电路)的模块化、可重复使用的设计。设计设施1130可以采用高级编程语言(例如,C/C++)来生成对IP核设计的软件仿真1110。软件仿真1110可以用于使用仿真模型1112来设计、测试并验证IP核的行为。仿真模型1112可以包括功能、行为和/或时序仿真。然后可以从仿真模型1112创建或合成寄存器传输级(RTL)设计1115。RTL设计1115是对硬件寄存器之间的数字信号的流动进行建模的集成电路(包括使用建模的数字信号执行的相关联的逻辑)的行为的抽象。除了RTL设计1115之外,还可以创建、设计或合成处于逻辑级或晶体管级的较低层级的设计。由此,初始设计和仿真的具体细节可有所不同。
可由设计设施将RTL设计1115或等效方案进一步合成为硬件模型1120,该硬件模型1120可采用硬件描述语言(HDL)或物理设计数据的某种其他表示。可以进一步仿真或测试HDL以验证IP核设计。可使用非易失性存储器1140(例如,硬盘、闪存、或任何非易失性存储介质)来存储IP核设计以用于递送至第3方制造设施1165。替代地,可以通过有线连接1150或无线连接1160来传输(例如,经由互联网)IP核设计。制造设施1165随后可制造至少部分地基于IP核设计的集成电路。所制造的集成电路可以被配置成用于执行根据本文中所描述的至少一个实施例的操作。
图11B图示出根据本文中所描述的一些实施例的集成电路封装组件1170的截面侧视图。集成电路封装组件1170图示出如本文中所描述的一个或多个处理器或加速器设备的实现方式。封装组件1170包括连接至衬底1180的多个硬件逻辑单元1172、1174。逻辑1172、1174可以至少部分地在可配置逻辑或固定功能逻辑硬件中实现,并且可以包括(多个)处理器核、(多个)图形处理器或本文中所描述的其他加速器设备中的任何一者的一个或多个部分。每个逻辑单元1172、1174可以在半导体管芯内实现并且经由互连结构1173与衬底1180耦合。互连结构1173可以被配置成在逻辑1172、1174与衬底1180之间路由电信号,并且可以包括互连,诸如但不限于凸块或支柱。在一些实施例中,互连结构1173可被配置成用于路由电信号,这些电信号诸如例如,与逻辑1172、1174的操作相关联的输入/输出(I/O)信号和/或功率或接地信号。在一些实施例中,衬底1180是基于环氧树脂的层压衬底。在其他实施例中,封装组件1170可以包括其他合适类型的衬底。封装体组件1170可以经由封装互连1183连接至其他电气设备。封装互连1183可耦合至衬底1180的表面以便将电信号路由到其他电气设备,诸如母板、其他芯片组或多芯片模块。
在一些实施例中,逻辑单元1172、1174与桥接器1182电耦合,该桥接器1182被配置成用于在逻辑1172、1174之间路由电信号。桥接器1182可以是为电信号提供路由的密集互连结构。桥接器1182可包括由玻璃或合适的半导体材料构成的桥接器衬底。电路由特征可以在桥接器衬底上形成以便提供逻辑1172、1174之间的芯片到芯片连接。
尽管图示了两个逻辑单元1172、1174和桥接器1182,但是本文中所描述的实施例可包括一个或多个管芯上的更多或更少的逻辑单元。一个或多个管芯可由零个或多个桥接器连接,因为逻辑被包括在单个管芯上时,可以排除桥接器1182。替代地,多个管芯或逻辑单元可以由一个或多个桥接器连接。另外,多个逻辑单元、管芯和桥接器能以包括三维配置的其他可能的配置连接在一起。
示例性芯片上系统集成电路
图12-图14图示出根据本文中所描述的各实施例的可使用一个或多个IP核来制造的示例性集成电路和相关联的图形处理器。除了所图示的之外,还可包括其他逻辑和电路,包括附加的图形处理器/核、外围接口控制器或通用处理器核。
图12是图示出根据实施例的可使用一个或多个IP核来制造的示例性芯片上系统集成电路1200的框图。示例性集成电路1200包括一个或多个应用处理器1205(例如,CPU)、至少一个图形处理器1210,并且可附加地包括图像处理器1215和/或视频处理器1220,其中的任一项都可以是来自相同的或多个不同的设计设施的模块化IP核。集成电路1200包括外围或总线逻辑,该外围或总线逻辑包括USB控制器1225、UART控制器1230、SPI/SDIO控制器1235和I2S/I2C控制器1240。另外,集成电路可以包括显示设备1245,该显示设备1245耦合至高清晰度多媒体接口(HDMI)控制器1250和移动产业处理器接口(MIPI)显示接口1255中的一个或多个。可由闪存子系统1260(包括闪存和闪存控制器)来提供存储。可经由存储器控制器1265来提供存储器接口以访问SDRAM或SRAM存储器设备。另外,一些集成电路附加地包括嵌入式安全引擎1270。
图13A-图13B是图示出根据本文中所描述的实施例的用于在SoC内使用的示例性图形处理器的框图。图13A图示出根据实施例的可使用一个或多个IP核来制造的芯片上系统集成电路的示例性图形处理器1310。图13B图示出根据实施例的可使用一个或多个IP核来制造的芯片上系统集成电路的附加示例性图形处理器1340。图13A的图形处理器1310是低功率图形处理器核的示例。图13B的图形处理器1340是较高性能图形处理器核的示例。图形处理器1310、1340中的每个图形处理器可以是图12的图形处理器1210的变体。
如图13A中所示,图形处理器1310包括顶点处理器1305以及一个或多个片段处理器1315A-1315N(例如,1315A、1315B、1315C、1315D至1315N-1和1315N)。图形处理器1310可以经由分开的逻辑执行不同的着色器程序,以使得顶点处理器1305被优化成执行用于顶点着色器程序的操作,而一个或多个片段处理器1315A-1315N执行用于片段或像素着色器程序的片段(例如,像素)着色操作。顶点处理器1305执行3D图形流水线的顶点处理级,并生成图元和顶点数据。(多个)片段处理器1315A-1315N使用由顶点处理器1305生成的图元和顶点数据来产生显示在显示设备上的帧缓冲器。在一个实施例中,(多个)片段处理器1315A-1315N被优化成执行如提供用于OpenGL API中的片段着色器程序,片段处理器1315A-1315N可用于执行与如提供用于Direct 3D API中的像素着色器程序类似的操作。
图形处理器1310附加地包括一个或多个存储器管理单元(MMU)1320A-1320B、(多个)高速缓存1325A-1325B和(多个)电路互连1330A-1330B。一个或多个MMU 1320A-1320B提供用于图形处理器1310的虚拟到物理地址映射,包括用于顶点处理器1305和/或(多个)片段处理器1315A-1315N的虚拟到物理地址映射,除了存储在一个或多个高速缓存1325A-1325B中的顶点或图像/纹理数据之外,顶点处理器1305和/或(多个)片段处理器1315A-1315N还可引用存储在存储器中的顶点或图像/纹理数据。在一个实施例中,一个或多个MMU1320A-1320B可与系统内的其他MMU同步,以使得每个处理器1205-1220可以参与共享或统一虚拟存储器系统,其他MMU包括与图12的一个或多个应用处理器1205、图像处理器1215和/或视频处理器1220相关联的一个或多个MMU。根据实施例,一个或多个电路互连1330A-1330B使得图形处理器1310能够经由SoC的内部总线或经由直接连接与SoC内的其他IP核接口连接。
如图13B中所示,图形处理器1340包括图13A的图形处理器1310的一个或多个MMU1320A-1320B、高速缓存1325A-1325B和电路互连1330A-1330B。图形处理器1340包括一个或多个着色器核1355A-1355N,该一个或多个着色器核1355A-1355N(例如,1355A、1355B、1355C、1355D、1355E、1355F至1355N-1和1355N)提供统一着色器核架构,在该统一着色器核架构中,单个核或单类型的核可以执行所有类型的可编程着色器代码,包括用于实现顶点着色器、片段着色器和/或计算着色器的着色器程序代码。存在的着色器核的确切数量在各实施例和各实现方式之间可以有所不同。另外,图形处理器1340包括核间任务管理器1345和分块单元(tiling unit)1358,该核间任务管理器1345充当线程分派器以将执行线程分派给一个或多个着色器核1355A-1355N,该分块单元1358用于加速用于基于图块的渲染的分块操作,在用于基于图块的渲染的分块操作中,对场景的渲染操作被细分在图像空间中,从而例如利用场景内的局部空间一致性,或优化内部高速缓存的使用。
图14A-图14B图示出根据本文中所描述的实施例的附加示例性图形处理器逻辑。图14A图示出图形核1400,该图形核1400可包括在图12的图形处理器1210内并且可以是如图13B中的统一着色器核1355A-1355N。图14B图示出适合于部署在多芯片模块上的高度并行的通用图形处理单元1430。
如图14A中所示,图形核1400包括对于图形核1400内的执行资源而言共同的共享指令高速缓存1402、纹理单元1418和高速缓存存储器/共享存储器1420。图形核1400可以包括多个切片1401A-1401N或针对每个核的分区,并且图形处理器可以包括图形核1400的多个实例。切片1401A-1401N可以包括支持逻辑,该支持逻辑包括本地指令高速缓存1404A-1404N、线程调度器1406A-1406N、线程分派器1408A-1408N、以及一组寄存器1410A。为了执行逻辑运算,切片1401A-1401N可以包括一组附加功能单元(AFU 1412A-1412N)、浮点单元(FPU 1414A-1414N)、整数算术逻辑单元(ALU 1416A-1416N)、寻址计算单元(ACU 1413A-1413N)、双精度浮点单元(DPFPU 1415A-1415N)、以及矩阵处理单元(MPU 1417A-1417N)。
这些计算单元中的一些以特定精度进行操作。例如,FPU 1414A-1414N可以执行单精度(32位)和半精度(16位)浮点运算,而DPFPU 1415A-1415N执行双精度(64位)浮点运算。ALU 1416A-1416N可以以8位精度、16位精度和32位精度执行可变精度整数运算,并且可以被配置用于混合精度运算。MPU 1417A 1417N也可以被配置用于混合精度矩阵运算,包括半精度浮点运算和8位整数运算。MPU 1417A-1417N可以执行各种各样的矩阵运算以便加速机器学习应用框架,包括实现对于加速的通用矩阵-矩阵乘法(GEMM)的支持。AFU 1412A-1412N可以执行不受浮点单元或整数单元支持的附加逻辑运算,包括三角函数运算(例如,正弦、余弦等)。
如图14B中所示,通用处理单元(GPGPU)1430可以被配置成使得能够由图形处理单元阵列执行高度并行的计算操作。另外,GPGPU 1430可以直接链接到GPGPU的其他实例以便创建多GPU集群,从而提高尤其是深度神经网络的训练速度。GPGPU 1430包括用于实现与主机处理器的连接的主机接口1432。在一个实施例中,主机接口1432是PCI快速接口。然而,主机接口还可以是供应方特定的通信接口或通信结构。GPGPU 1430从主机处理器接收命令并且使用全局调度器1434将与那些命令相关联的执行线程分发给一组计算集群1436A-1436H。计算集群1436A-1436H共享高速缓存存储器1438。高速缓存存储器1438可以充当计算集群1436A-1436H内的高速缓存存储器的较高层级的高速缓存。
GPGPU 1430包括经由一组存储器控制器1442A-1442B与计算集群1436A-1436H耦合的存储器1434A至1434B。在各实施例中,存储器1434A至1434B可以包括各种类型的存储器设备,包括动态随机存取存储器(DRAM)或图形随机存取存储器,诸如同步图形随机存取存储器(SGRAM),包括图形双倍数据速率(GDDR)存储器。
在一个实施例中,计算集群1436A-1436H各自包括一组图形核(如图14A的图形核1400),这些图形核可以包括多种类型的整数逻辑单元和浮点逻辑单元,这些逻辑单元可以在一定精度范围内执行包括适合于机器学习计算的计算操作。例如并且在一个实施例中,计算集群1436A-1436H中的每个计算集群中的浮点单元的至少一个子集可以被配置成用于执行16位或32位浮点运算,而浮点单元的不同子集可以被配置成用于执行64位浮点运算。
GPGPU 1430的多个实例可以被配置成作为计算集群进行操作。由计算集群用来进行同步和数据交换的通信机制跨实施例而变化。在一个实施例中,GPGPU 1430的多个实例通过主机接口1432进行通信。在一个实施例中,GPGPU 1430包括I/O中枢1439,该I/O中枢1439将GPGPU 1430与实现到GPGPU的其他实例的直接连接的GPU链路1440耦合。在一个实施例中,GPU链路1440耦合至实现GPGPU 1430的多个实例之间的通信和同步的专用GPU到GPU桥接器。在一个实施例中,GPU链路1440与高速互连耦合,以便向其他GPGPU或并行处理器传输和接收数据。在一个实施例中,GPGPU 1430的多个实例位于单独的数据处理系统中并且经由可经由主机接口1432访问的网络设备进行通信。在一个实施例中,除了主机接口1432或作为对主机接口1432的替代方案,GPU链路1440还可以被配置成用于实现到主机处理器的连接。
尽管GPGPU 1430的所图示的配置可以被配置成训练神经网络,但是一个实施例提供了GPGPU 1430的替代配置,该替代配置可以被配置成部署在高性能或低功率推断平台内。在推断配置中,GPGPU 1430包括计算集群1436A-1436H中与训练配置有关的更少计算集群。另外,与存储器1434A-1434B相关联的存储器技术可在推断配置与训练配置之间不同,其中,更高带宽存储器技术专用于训练配置。在一个实施例中,GPGPU 1430的推断配置可以支持推断特定指令。例如,推断配置可以提供对一个或多个8位整数点积指令的支持,这些指令通常在所部署的神经网络的推断操作期间使用。
沉浸式视频概述
图15A展示了多种形式的沉浸式视频。沉浸式视频可以以多种形式呈现,这取决于观看者可用的自由度。自由度指的是对象在三维(3D)空间中可以移动的不同方向的数量。可以经由包括对位置和取向进行跟踪的头戴式显示器来观看沉浸式视频。沉浸式视频的示例形式包括3DoF 1502、3DoF+ 1504和完整的6DoF 1506。除了完整的6DoF 1506中的沉浸式视频外,6D0F沉浸式视频还包括全向6DoF 1507以及有窗口的6DoF 1508。
对于3DoF 1502中的视频(例如,360度视频),观看者可以改变取向(例如,偏航、俯仰、滚动)但不改变位置。对于3DoF+ 1504中的视频,观看者可以改变取向并对位置变化进行微小改变。对于6DoF 1506中的视频,观看者可以改变取向并改变位置。更有限的6DoF视频形式也是可用的。全向6DoF 1507中的视频使得观看者能够在虚拟场景中进行多个步骤。有窗口的6DoF 1508中的视频允许观看者改变取向和位置,但观看者被约束到有限的观看区域。增加沉浸式视频中的可用自由度通常包括增加视频生成、编码、解码和回放中涉及的数据的量和复杂性。
图15B展示了用于沉浸式视频的图像投影和纹理平面。可以使用来自多个相机的数据生成视频内容的3D视图1510。多个投影平面1512可以用于生成视频内容的几何数据。可以针对用于生成几何数据的投影平面1512导出多个纹理平面1514。可以将纹理平面1514应用于基于从视频数据导出的点云而预先生成或生成的3D模型。所述多个投影平面1512可以用于生成多个二维(2D)投影,每个二维投影与投影平面相关联。
图16展示了客户端-服务器系统,通过所述系统,可以由服务器1620基础设施生成沉浸式视频内容并对其进行编码,以便传输到一个或多个客户端1630设备。然后,客户端1630设备可以解压缩并渲染沉浸式视频内容。在一个实施例中,一个或多个服务器1620设备可以包括来自具有深度传感器1602的一个或多个光学相机1601的输入。并行计算1604资源可以将视频和深度数据分解为点云1605和/或纹理三角形1606。还可以由场景的预先生成的3D模型1603来提供用于生成纹理三角形1606的数据。点云1605和/或纹理三角形1606可以被压缩以用于传输到可以在本地渲染内容的一个或多个客户端设备。在一个实施例中,各种压缩单元1607、1608使用各种压缩算法可以压缩所生成的内容以用于通过递送介质从服务器1620传输到一个或多个客户端1630设备。客户端1630设备上的解压缩单元1609、1610可以将传入的比特流解压缩并解码为视频/纹理以及几何数据。例如,解压缩单元1609可以对经压缩的点云数据进行解码并将经解压缩的点云数据提供给视点插值单元1611。插值视点数据可以用于生成位图数据1613。可以将经解压缩的点云数据提供给几何重建单元1612以重建场景的几何数据。可以通过经解码的纹理数据(纹理三角形1614)来纹理化所重建的几何数据,以生成3D渲染1616以供客户端1630观看。
图17A至图17B展示了用于对3DoF+内容进行编码和解码的系统1700、1710。系统1700可以由例如图16中的服务器1620基础设施的硬件和软件来实施。系统1710可以由如图16中的客户端1630的硬件和软件来实施。
如图17A所示出的,系统1700可以用于对基础视图1701的视频数据1702和附加视图1704的视频数据1705A至1705C进行编码。多个相机可以提供包括视频数据和深度数据的输入数据,其中视频数据的每个帧可以被转换为纹理。一组重投影1706和遮挡检测1707单元可以对所接收的视频数据进行操作并将处理后的数据输出到补片形成1708单元。可以将由补片形成1708单元形成的补片提供给补片打包1709单元。可以例如经由高效视频编码(HEVC)编码器1703A对基础视图1701的视频数据1702进行编码。HEVC编码器1703A的变体也可以用于对从补片打包1709单元输出的补片视频数据进行编码。可以由元数据编码1703B单元来对用于重建来自经编码补片的视频的元数据进行编码。然后可以将多个经编码视频和元数据流传输到客户端设备以供观看。
如图17B所示出的,可以由系统1710接收、解码多个视频数据流并将其重建为沉浸式视频。所述多个视频流包括基础视频的流,以及包含附加视图的打包数据的流。还接收经编码的元数据。在一个实施例中,可以经由HEVC 1713A解码器对所述多个视频流进行解码。可以经由元数据1713B解码器对元数据进行解码。经解码的元数据然后用于经由补片解包1719逻辑对经解码的附加视图进行解包。基础视图1701和附加视图1704的经解码的纹理和深度数据(视频0 1712、视频1至3 1714A至1715C)由客户端(例如,如图16中的客户端1630)上的视图生成逻辑1718来重建。经解码的视频1712、1715A至1715C可以作为纹理和深度数据被提供给中间视图渲染器1714,所述中间视图渲染器可以用于渲染头戴式显示器1711的中间视图。头戴式显示器位置信息1716作为反馈被提供给中间视图渲染器1714,所述中间视图渲染器可以渲染经由头戴式显示器1711呈现的所显示视口的更新视图。
图18A至图18B展示了用于对6DoF纹理几何数据进行编码和解码的系统。图18A示出了6DoF纹理几何编码系统1800。图18B示出了6DoF纹理几何解码系统1820。6DoF纹理几何编码和解码可以用于启用6DoF沉浸式视频的其中视频数据作为纹理被应用于几何数据的变体,从而允许基于头戴式显示器的位置和取向来渲染新的中间视图。由多个视频相机记录的数据可以与(具体地,静态对象的)3D模型组合。
如图18A所示出的,6DoF纹理几何编码系统1800可以接收基础视图的视频数据1802和附加视图的视频数据1805A至1805C。视频数据1802、1805A-1805C包括可以由重投影和遮挡检测单元1806处理的纹理和深度数据。可以将来自重投影和遮挡检测单元1806的输出提供给补片分解单元1807和几何图像生成器1808。来自补片分解单元1807的输出被提供给补片打包单元1809和辅助补片信息压缩器1813。所述辅助补片信息(补片信息)提供用于重建视频纹理和深度数据的补片的信息。补片打包单元1809将打包的补片数据输出到几何图像生成器1808、纹理图像生成器1810、属性图像生成器1811以及占用图压缩器1812。
几何图像生成器1808、纹理图像生成器1810和属性图像生成器1811将数据输出到视频压缩器1814。几何图像生成器1808可以从重投影和遮挡检测单元1806、补片分解单元1807和补片打包单元1809接收输入,并生成几何图像数据。纹理图像生成器1810可以从补片打包单元1809接收打包的补片数据,并且从重投影和遮挡检测单元1806接收视频纹理和深度数据。属性图像生成器1811根据从重投影和遮挡检测单元1806接收的视频纹理和深度数据以及从补片打包单元1809接收的打包的补片数据生成属性图像。
占用图可以由占用图压缩器1812基于从补片打包单元1809输出的打包的补片数据生成。辅助补片信息可以由辅助补片信息压缩器1813生成。经压缩的占用图和辅助补片信息数据可以由多路复用器1815来与从视频压缩器1814输出的经压缩的和/或经编码的视频数据一起多路复用到经解压缩的比特流1816中。从视频压缩器1814输出的经压缩的视频数据包括经压缩的几何图像数据、纹理图像数据和属性图像数据。经压缩的比特流1816可以存储或提供给客户端设备用于进行解压缩和观看。
如图18B所示出的,6DoF纹理几何解码系统1820可以用于对使用图18A的编码系统1800生成的6DoF内容进行解码。经压缩的比特流1816由解复用器1835接收并解复用为多个视频解码流、占用图以及辅助补片信息。由视频解码器1834A至1834B对所述多个视频流进行解码/解压缩。由占用图解码器1832对占用图数据进行解码/解压缩。经解码的视频数据和占用图数据由视频解码器1834A至1834B和占用图解码器1832输出到解包单元1829。解包单元对由图18A的补片打包单元1809打包的视频补片数据进行解包。来自辅助补片信息解码器1833的辅助补片信息被提供给遮挡填充单元1826,所述遮挡填充单元可以用于根据可能从视频数据的具体视图中缺失的对象被遮挡部分来填充补片。具有纹理和深度数据的各个视频流1822、1825A至1825C从遮挡填充单元1826输出并提供给中间视图渲染器1823,所述中间视图渲染器可以基于由头戴式显示器1824提供的位置和取向信息来渲染用于在头戴式显示器1824上显示的视图。
图19A至图19B展示了用于对6DoF点云数据进行编码和解码的系统。图19A展示了6DoF点云编码系统1900。图19B展示了6DoF点云解码系统1920。6DoF视频可以使用点云来表示,其中对于点云视频序列,在定期的时间间隔(例如,60Hz)处存在新的点云帧。点云数据帧中的每个点由六个参数表示:(X、Y、Z)几何位置和(R、G、B或Y、U、V)纹理数据。在图19A的编码系统1900中,点云帧被投影到若干二维(2D)平面上,每个2D平面对应于某个投影角度。所述投影平面可以类似于图15B的投影平面1512。在一些实施方式中,在PCC标准测试模型中使用六个投影角度,其中所述投影角度对应于指向限定由点云数据表示的对象的矩形实体的六个面的中心的角度。虽然描述了六个投影角度,但是在不同的实施方式中可以使用其他数量的角度。
在每个投影角度处形成纹理和深度2D图像补片表示。可以通过仅对投影角度具有最接近法线的那些点进行投影来创建投影角度的2D补片图像表示。换言之,针对使点法线和平面法线的点积最大化的点采用2D补片图像表示。将来自单独投影的纹理补片组合到单个纹理图像中,其被称为几何图像。在占用图和辅助补片信息中描述了用于表示补片以及它们如何被打包到帧中的元数据。占用图元数据包括关于哪些图像样本位置是空(例如,不包含相应的点云信息)的指示。辅助补片信息指示补片所属的投影平面,并且可以用于确定与给定样本位置相关联的投影平面。使用诸如高效视频编码(HEVC)编码器等2D常规视频编码器来对纹理图像和深度图像进行编码。可以使用元数据编码逻辑来单独压缩元数据。在测试模型解码器中,使用HEVC视频解码器来对纹理图像和深度图像进行解码。使用经解码的纹理和深度图像以及占用图和辅助补片信息元数据来重建点云。
如图19A所示出的,可以将点云数据的输入帧分解为补片数据。可以以与图18A中的视频纹理和深度数据类似的方式来对点云数据和经分解的补片数据进行编码。包括点云帧1906的输入数据可以被提供给补片分解单元1907。输入点云数据及其经分解的补片可以由打包单元1909、几何图像生成器1908、纹理图像生成器1910、属性图像生成器1911、占用图压缩器1912以及辅助补片信息压缩器1913使用与对由图18A的重投影和遮挡检测单元1806以及补片分解单元1807输出的纹理深度和视频数据的处理类似的技术来处理。视频压缩器1914可以对几何图像、纹理图像和属性图像数据进行编码和/或压缩。来自视频压缩器1914的经压缩的和/或经编码的视频数据可以由多路复用器1915来与占用映图和辅助补片信息数据一起多路复用到经压缩的比特流1916中,所述经压缩比特流可以被存储或传输以用于显示。
由图19A的系统1900输出的经压缩的比特流可以由图19B中示出的点云解码系统1920进行解码。如图19B所示出的,经压缩的比特流1916可以被解复用成多个经编码/经压缩视频流、占用图数据和辅助补片信息。视频流可以由多流视频解码器1934来进行解码/解压缩,所述多流视频解码器可以输出纹理和几何数据。占用图和辅助补片信息可以由占用图解码器1932和辅助补片信息解码器1933来进行解压缩/解码。
然后可以执行几何重建、平滑、和纹理重建以重建提供给图19A的6DoF点云编码系统1900的点云数据。几何重建单元1936可以基于从多流视频解码器1934的视频流解码的几何数据、以及占用图解码器1932和辅助补片信息解码器1933的输出来重建几何信息。所重建的几何数据可以由平滑单元1937来平滑。从由多流视频解码器1934输出的视频流解码的经平滑的几何和纹理图像数据被提供给纹理重建单元1938。纹理重建单元1938可以输出所重建的点云1939,所述重建的点云是提供给图19A的6DoF点云编码系统1900的输入点云帧1926的变体。
用于沉浸式视频的选择性补片打包
在一些实施例中,设备、系统或过程提供用于沉浸式视频的选择性补片打包。在一些实施例中,根据多个投影方向(投影方向是来自给定相机或虚拟相机的内容)中的哪一个与补片中的各补片相关联来选择补片。
在用于沉浸式视频的常规补片打包中,所有补片被打包和编码到经编码图片中以传输给用户,然后用户需要对包含补片的整个图片进行解码以便获得并混合任何所需的具有主视图的一个或多个补片以渲染特定视口。
然而,当基于特定视图位置(例如,HMD(头戴式显示器)位置/朝向)渲染视口以供查看时,仅投影方向的子集用于渲染视口,其中,投影方向通常是靠近视口位置的方向。
在一些实施例中,应用来自各个投影方向的补片的选择性补片打包安排,使得客户端能够在渲染特定视口时解码较少的补片数据,同时仍然能够正确渲染任意视图位置所需的视口。
在一些实施例中,用于沉浸式视频的选择性补片填充的设备、系统或过程包括以下各项中的一项或多项:
(1)选择性补片打包提供生成多个经编码图片,其中,每个经编码图片包括针对一个或多个投影方向的所选补片,其可以包括:
(a)来自每个投影方向的补片各自被打包到对应的经编码图片中,因此选择性补片填充为每个投影方向提供分开的经编码图片。
(b)建立投影方向组(sets/groups),并且生成单独的经编码图片用于打包与每组投影方向相关联的补片。
(2)选择性补片打包利用图块来包含针对一个或多个投影方向的所选补片,其可以包括:
(a)图块应用于针对每个投影方向的选择性补片打包,其中,整个经编码图片包含与每个投影方向相对应且包含针对所述投影方向的对应补片的图块。
(b)图块应用于针对每组投影方向的选择性补片打包,其中,整个经编码图片包含与每组投影方向相对应且包含针对所述投影方向组的对应补片的图块。
图20A是根据一些实施例的用于提供选择性补片打包的处理系统的图示。在一些实施例中,处理系统2000(如图1中所展示的处理系统100)包括一个或多个处理器核。在一些实施例中,处理系统2000包括一个或多个处理器2005(其可以包括一个或多个CPU(中央处理单元)),如图1中所展示的处理器102,其具有一个或多个处理器核,并且所述处理系统进一步包括一个或多个GPU 2010,如图1中所展示的图形处理器108,其具有一个或多个图形处理器核,其中,GPU 2010可以包括在所述一个或多个处理器2005内或与其分开。然而,实施例并不限于此特定的处理结构。一个或多个处理器2205可以包括如针对图2中的处理器200所展示的元件,并且所述一个或多个GPU 2010可以包括如针对图3中的图形处理器300所展示的元件。处理系统进一步包括用于存储用于编码沉浸式视频的数据的存储器2015。
在一些实施例中,处理器核(如一个或多个GPU 2010的处理器核)提供补片打包和编码,如被展示为图17A中的补片打包1709以及HEVC编码1703A和元数据编码1703B所示。在一些实施例中,补片打包包括至少部分地基于投影方向的选择性补片打包,以生成包含所选补片2025的一个或多个经编码图片。在一些实施例中,选择性补片打包可以包括图24、图26、图27A或图27B中的任何一个中提供的经编码图片中所展示的打包。
图20B是根据一些实施例的用于对包含所选补片的一个或多个经编码图片进行解码的客户端系统的图示。在一些实施例中,客户端系统2050(如图1中所展示的处理系统100)包括一个或多个处理器核。在一些实施例中,客户端系统2050包括一个或多个处理器2055(其可以包括一个或多个CPU(中央处理单元)),如图1中所展示的处理器102,其具有一个或多个处理器核,并且所述客户端系统进一步包括一个或多个GPU 2060,如图1中所展示的图形处理器108,其具有一个或多个图形处理器核,其中,GPU 2060可以包括在所述一个或多个处理器2055内或与其分开。然而,实施例并不限于此特定的处理结构。一个或多个处理器2055可以包括如针对图2中的处理器200所展示的元件,并且所述一个或多个GPU 2060可以包括如针对图3中的图形处理器300所展示的元件。客户端系统2050进一步包括用于存储用于提供沉浸式视频的数据的存储器2065,如用于头戴式显示器(HMD)的数据。
在一些实施例中,客户端系统2050接收具有针对某些投影方向2070的所选补片的一个或多个经编码图片,如图20A中所展示的经编码图片2025。处理器核(如一个或多个GPU2060的处理器核)为具有所选补片的一个或多个经编码图片提供有限的解码和补片解包2075,如被展示位图17A中的HEVC解码1713A和元数据解码1713B以及补片解包1719。在一些实施例中,如提供给视口渲染器2085的视口2080所需的补片所展示的,解码和补片解包包括限于与待由客户端系统渲染的特定视口相关联的补片的解码和解包,以便最小化提供沉浸式视频所需的解码量。在一些实施例中,补片2075的有限解码和解包可以包括如在图24、图26、图27A或图27B中的任何一个中所展示的经编码图片中所需的解码和解包。
图21是根据一些实施例的利用选择性补片打包的沉浸式视频的图像的图示。在图像2100中,可以存在多个前景元件,如足球比赛或其他运动赛事中的多个运动员。足球比赛可以由任何数量的相机记录,其中,每个相机可以定义特定视图。在特定示例中,每帧可以有36个图像,其中,每个帧的分辨率为5K x 3K(5120x 2880)。
基于从特定相机视图可见的对象生成补片。图22是为示例性图像组(如包括图21中所展示的图像)生成的补片的简化图示。补片的数量取决于相机视图和图像的性质,但是可以包括被打包到经编码图片中的非常大量的高清晰度数据。在相同帧时间处从多个图像但是从不同的位置/视点复制被称为图集的图像。在常规系统中,需要客户端解码图集中的所有补片,因此导致巨大的处理成本。在一些实施例中,系统基于投影方向提供选择性补片打包以减少客户端生成特定视点所需的解码量。在一些实施例中,仅从其他投影方向遮挡的区域包括在针对特定相机投影方向的补片中。在一些实施例中,选择性补片打包可以包括图24、图26、图27A或图27B中的任何一个中提供的经编码图片中所展示的打包。
图23是根据一些实施例的包括选择性补片打包的系统的示例性视点组的图示。虽然系统的实施例可以包括任何数量的相机,但是图23展示了包括建立24个不同视点的24个相机(相机C01至C24)的示例。实际系统可以包括更多数量的相机,并且这些相机可以根据对沉浸式视频的特定主体的需要以任何安排分布。
在一些实施例中,基于系统中的各种视点执行对沉浸式视频的选择性补片打包,其中,选择与每个视点相关联的补片。图24是根据一些实施例的用于为每个视点提供经编码图片的选择性补片打包的图示。在一些实施例中,系统根据每个可用视点选择补片,并且打包与每个视点相关联的补片并将这些补片编码到单独的经编码图片中。
在存在n个视点的特定示例中,如图23中所展示的n=24个视点,系统生成n个经编码图片。如图24所示,选择性补片打包的结果是如补片-1 1410、补片-2以及继续到补片-n等n个经编码图片(并且因此是图像的n个图集)。在一些实施例中,客户端可以在生成沉浸式视频时根据需要解码多个经编码图片1410至2430中的一个或多个。
在一些实施例中,基于系统中的各种视点执行针对沉浸式视频的选择性补片打包,其中,选择与多组视点中的每一组相关联的补片。图25A至图25D展示了根据一些实施例的用于选择性补片打包的多组视点。图25A至图25D展示了基于图23中所示的视点建立某些组的视点的特定示例。
在此示例中,图25A提供了相机C01至C06的第一组视点;图25B提供了相机C07至C12的第二组视点;图25C提供了相机C13至C18的第三组视点;并且图25D提供了相机C19至C24的第四组视点。尽管在此示例中为了便于说明,相机均匀地间隔开并且在4组视点中的每一组中存在6个视点,但是实施例不限于视点的任何特定数量或位置,并且可以包括不同大小和位置的所述多组视点。
图26是根据一些实施例的用于为每组视点提供经编码图片的选择性补片打包的图示。在一些实施例中,系统根据每组视点选择补片,并且打包与每组视点相关联的补片并且将这些补片编码到单独的经编码图片(表示图像子集的图集)中。
图26展示了多个经编码图片,其中,在一个可能的示例中,每个经编码图片对图25A至图25D中所展示的所述多组视点中的一组的补片进行编码。如图26中所示,第一经编码图片(经编码图片-1 2610)包含图25A中所展示的第一组视点的所选补片;第二经编码图片(经编码图片-2 2620)包含图25B中所展示的第二组视点的所选补片;第三经编码图片(经编码图片-3 2630)包含图25C中所展示的第三组视点的所选补片;并且第四经编码图片(经编码图片-4 2640)包含图25D中所展示的第四组视点的所选补片。
在一些实施例中,基于系统中的各种视点执行针对沉浸式视频的选择性补片打包,其中,针对经编码图片中的图块选择与每个视点相关联的补片。图27A是根据一些实施例的根据投影方向将补片选择性地打包到图块中的图示。在一些实施例中,图块应用于针对每个投影方向的选择性补片打包。例如,可以应用HEVC(高效视频编码)运动约束图块组(MCTS)特征,使得所选补片包括在特定运动约束图块内。以此方式,解码器可以单独解码图块,而不需要解码整个经编码图片。例如,来自每个投影方向的补片可以各自被打包并编码到其自己的图块中,其中,整个经编码图片包含与包含相关联补片的每个投影方向相对应的图块。
在图27A所示的特定示例中,设备、系统或过程基于投影方向执行选择性补片打包(如来自图22中所展示的补片)以对包括针对每个投影方向的图块的图块化经编码图片2700进行编码。在一些实施例中,经编码图片2700的每个图块包含与投影方向相关联的补片。例如,图块-1包含针对第一投影方向的补片,在一个示例中,如图23中所展示的相机C01的投影方向。
在一些实施例中,基于系统中的各种视点执行针对沉浸式视频的选择性补片打包,其中,针对经编码图片中的图块选择与多个视点中的每一个相关联的补片。图27B是根据一些实施例的根据多组投影方向将补片选择性地打包到图块中的图示。在一些实施例中,图块应用于针对多组投影方向中的每一组的选择性补片打包。例如,可以应用HEVCMCTS特征,使得针对一组投影方向的所选补片包括在特定的运动约束图块内。以此方式,解码器可以单独解码图块,而不需要解码整个经编码图片。例如,来自每组投影方向的补片可以各自被打包并编码到其自己的图块中,其中,整个经编码图片包含与包含相关联补片的每组投影方向相对应的图块。多组投影方向可以是例如如图25A至图25D所展示的。
在图27B所示的特定示例中,设备、系统或过程基于多组投影方向执行选择性补片打包(如来自图22中所展示的补片)以对包括针对每组投影方向的图块的图块化经编码图片2750进行编码。在一些实施例中,经编码图片2750的每个图块包含与特定组投影方向相关联的补片。例如,图块-1包含针对第一组投影方向的补片,在一个示例中如图25A中所展示的所述一组投影方向。类似地,图块-2可以包含针对图25B中所展示的所述一组投影方向的补片,图块-3可以包含针对图25C中所展示的所述一组投影方向的补片,图块-4可以包含针对图25D中所展示的所述一组投影方向的补片。然而,实施例不限于此特定安排,并且可以包括表示不同组投影方向的不同数量和大小的图块。
图28A是展示了根据一些实施例的用于选择性补片打包的过程的流程图。在一些实施例中,用于沉浸式视频的过程包括生成针对多个视点2810的补片。所述过程可以包括检测遮挡以及生成检测到的遮挡的补片,如被展示为图17A中的遮挡检测1707和补片形成1708。在一些实施例中,所述过程包括基于投影方向2815选择补片。在一些实施例中,可以基于每个投影方向或多组投影方向(如图25A至图25D中所展示的多组投影方向)中的每一组来选择补片。在一些实施例中,仅从其他投影方向遮挡的区域包括在针对特定相机投影方向的补片中。
在一些实施例中,所选补片被打包并编码到一个或多个经编码图片2820中,其中,所选补片以使得客户端能够解码针对视点的补片的相关部分而不是被要求解码所有补片的方式打包。在一些实施例中,打包所选补片可以包括:
2822:将针对每个投影方向的补片打包到单独的经编码图片中;
2824:将针对每组投影方向的补片打包到单独的经编码图片中;
2826:将补片打包到包括多个图块的经编码图片中,其中,每个图块包括针对投影方向中的一个投影方向的补片;要么:
2828:将补片打包到包括多个图块的经编码图片中,其中,每个图块包括针对一组投影方向的补片。
在一些实施例中,基于所选补片的一个或多个经编码图片被提供给客户端以供解码和解包2830。
图28B是展示了根据一些实施例的用于对选择性打包的补片进行解码和解包的过程的流程图。呈现沉浸式视频的过程包括接收包含选择性打包的补片2850的一个或多个经编码图片。在一些实施例中,可以基于每个投影方向或多组投影方向(如图25A至图25D中所展示的多组投影方向)中的每一组来选择补片。在一些实施例中,打包所选补片可以包括:
2852:将针对每个投影方向的补片打包到单独的经编码图片中;
2854:将针对每组投影方向的补片打包到单独的经编码图片中;
2856:经编码图片中的补片包括多个图块,其中,每个图块包括针对多个投影方向中的一个的补片;要么:
2858:经编码图片中的补片包括多个图块,其中,每个图块包括针对一组投影方向的补片。
在一些实施例中,基于与经编码图片或图块相关联的投影方向以及当前或预期的视点2860来识别一个或多个经编码图片或经编码图片的图块。在一些实施例中,对所识别的一个或多个经编码图片或经编码图片的图块进行解码和解包2865。以此方式,与常规系统相比通过将解码限制为与靠近视点的方向相关联的补片减少了客户端系统所需的解码量。
在一些实施例中,一种处理系统包括:一个或多个处理器核;以及存储器,用于存储沉浸式视频的数据,所述数据包括针对多个投影方向的多个补片。所述系统用于选择用于打包的补片,对补片的选择至少部分地基于所述多个投影方向中的哪一个投影方向与补片中的每一个补片相关联;并且所述系统用于根据对补片的所述选择将补片编码到一个或多个经编码图片中。
在一些实施例中,所述一个或多个经编码图片包括多个经编码图片,其中,所述多个经编码图片中的每一个包括针对一个或多个投影方向的补片。
在一些实施例中,所述多个经编码图片中的每一个经编码图片包括针对所述多个投影方向中的一个投影方向的补片。
在一些实施例中,所述多个投影方向被分成多组投影方向,每组投影方向包括一个或多个投影方向,并且其中,所述多个经编码图片中的每一个经编码图片包括针对所述多组投影方向中的一组投影方向的补片。
在一些实施例中,所述一个或多个经编码图片包括包含多个图块的经编码图片,其中,所述多个图块中的每一个图块包括针对一个或多个投影方向的补片。
在一些实施例中,所述多个图块中的每一个图块包括针对所述多个投影方向中的一个投影方向的补片。
在一些实施例中,所述多个投影方向被分成多组投影方向,每组投影方向包括一个或多个投影方向,并且其中,所述多个图块中的每一个图块包括针对所述多组投影方向中的一组投影方向的补片。
在一些实施例中,所述多个图块中的每一个图块是HEVC(高效视频编码)运动约束图块组(MCTS)中的运动约束图块。
在一些实施例中,仅从所述多个投影方向中的其他投影方向遮挡的区域被包括在针对特定投影方向的所述补片中。
在一些实施例中,所述系统用于向客户端系统提供所述一个或多个经编码图片以供解码。
在一些实施例中,所述沉浸式视频是6DoF(6自由度)视频。
在一些实施例中,所述一个或多个处理器核包括图形处理单元(GPU)的一个或多个图形处理器核。
在一些实施例中,一种客户端系统包括:一个或多个处理器核;以及存储器,用于存储沉浸式视频的数据。所述客户端系统用于接收一个或多个经编码图片,所述一个或多个经编码图片包括针对多个投影方向的多个补片,根据至少部分地基于所述多个投影方向中的哪一个投影方向与补片中的每一个补片相关联对补片的选择来对所述一个或多个经编码图片进行编码;并且所述客户端系统用于对所述多个补片的子集进行解码以渲染视口,所述客户端系统用于至少部分地基于要由所述客户端系统渲染的视口从所述一个或多个经编码图片中选择补片的所述子集。
在一些实施例中,所述一个或多个经编码图片包括多个经编码图片,其中,所述多个经编码图片中的每一个经编码图片包括针对一个或多个投影方向的补片。
在一些实施例中,所述多个经编码图片中的每一个经编码图片包括针对所述多个投影方向中的一个投影方向的补片。
在一些实施例中,所述多个投影方向被分成多组投影方向,每组投影方向包括一个或多个投影方向,并且其中,所述多个经编码图片中的每一个经编码图片包括针对所述多组投影方向中的一组投影方向的补片。
在一些实施例中,所述一个或多个经编码图片包括包含多个图块的经编码图片,其中,所述多个图块中的每一个图块包括针对一个或多个投影方向的补片。
在一些实施例中,所述多个图块中的每一个图块包括针对所述多个投影方向中的一个投影方向的补片。
在一些实施例中,所述多个投影方向被分成多组投影方向,每组投影方向包括一个或多个投影方向,并且其中,所述多个图块中的每一个图块包括针对所述多组投影方向中的一组投影方向的补片。
在一些实施例中,所述多个图块中的每一个图块是HEVC(高效视频编码)运动约束图块组(MCTS)中的运动约束图块。
在一些实施例中,一种非暂态计算机可读存储介质,其上存储有表示指令序列的数据,所述指令序列当由一个或多个处理器执行时使所述一个或多个处理器执行包括以下各项的操作:从沉浸式视频的多个投影方向检测一个或多个对象;为检测到的对象生成多个补片;至少部分地基于所述多个投影方向中的哪一个投影方向与补片中的每一个补片相关联来选择用于打包的所述多个补片;以及根据对补片的所述选择将补片编码到一个或多个经编码图片中。
在一些实施例中,所述一个或多个经编码图片包括多个经编码图片,其中,所述多个经编码图片中的每一个经编码图片包括针对一个或多个投影方向的补片。
在一些实施例中,所述一个或多个经编码图片包括包含多个图块的经编码图片,其中,所述多个图块中的每一个图块包括针对一个或多个投影方向的补片。
在一些实施例中,仅从所述多个投影方向中的其他投影方向遮挡的区域被包括在针对特定投影方向的补片中。
在一些实施例中,一种设备包括用于从沉浸式视频的多个投影方向检测一个或多个对象的装置;用于为检测到的对象生成多个补片的装置;至少部分地基于所述多个投影方向中的哪一个投影方向与补片中的每一个补片相关联来选择用于打包的所述多个补片;以及用于根据对补片的所述选择将补片编码到一个或多个经编码图片中的装置。
在一些实施例中,所述一个或多个经编码图片包括多个经编码图片,其中,所述多个经编码图片中的每一个经编码图片包括针对一个或多个投影方向的补片。
在一些实施例中,所述一个或多个经编码图片包括包含多个图块的经编码图片,其中,所述多个图块中的每一个图块包括针对一个或多个投影方向的补片。
在一些实施例中,仅从所述多个投影方向中的其他投影方向遮挡的区域被包括在针对特定投影方向的补片中。
在一些实施例中,一种方法包括:从沉浸式视频的多个投影方向检测一个或多个对象;为检测到的对象生成多个补片;至少部分地基于所述多个投影方向中的哪一个投影方向与补片中的每一个补片相关联来选择用于打包的所述多个补片;以及根据对补片的所述选择将补片编码到一个或多个经编码图片中。
在一些实施例中,所述一个或多个经编码图片包括多个经编码图片,其中,所述多个经编码图片中的每一个经编码图片包括针对一个或多个投影方向的补片。
在一些实施例中,所述一个或多个经编码图片包括包含多个图块的经编码图片,其中,所述多个图块中的每一个图块包括针对一个或多个投影方向的补片。
在一些实施例中,仅从所述多个投影方向中的其他投影方向遮挡的区域被包括在针对特定投影方向的补片中。
在一些实施例中,一种非暂态计算机可读存储介质,其上存储有表示指令序列的数据,所述指令序列当由一个或多个处理器执行时使所述一个或多个处理器执行包括以下各项的操作:接收一个或多个经编码图片,所述一个或多个经编码图片包括针对多个投影方向的多个补片,根据至少部分地基于所述多个投影方向中的哪一个投影方向与补片中的每一个补片相关联对补片的选择来对所述一个或多个经编码图片进行编码;以及至少部分地基于要针对沉浸式视频渲染的视口从所述一个或多个经编码图片中选择所述多个补片的子集;以及对用于渲染所述视口的补片的所述子集进行解码。
在一些实施例中,所述一个或多个经编码图片包括多个经编码图片,其中,所述多个经编码图片中的每一个经编码图片包括针对一个或多个投影方向的补片。
在一些实施例中,所述一个或多个经编码图片包括包含多个图块的经编码图片,其中,所述多个图块中的每一个图块包括针对一个或多个投影方向的补片。
在一些实施例中,一种设备包括:用于接收一个或多个经编码图片的装置,所述一个或多个经编码图片包括针对多个投影方向的多个补片,根据至少部分地基于所述多个投影方向中的哪一个投影方向与补片中的每一个补片相关联对补片的选择来对所述一个或多个经编码图片进行编码;以及用于至少部分地基于要针对沉浸式视频渲染的视口从所述一个或多个经编码图片中选择所述多个补片的子集的装置;以及对用于渲染所述视口的补片的所述子集进行解码。
在一些实施例中,所述一个或多个经编码图片包括多个经编码图片,其中,所述多个经编码图片中的每一个经编码图片包括针对一个或多个投影方向的补片。
在一些实施例中,所述一个或多个经编码图片包括包含多个图块的经编码图片,其中,所述多个图块中的每一个图块包括针对一个或多个投影方向的补片。
在一些实施例中,一种方法包括:接收一个或多个经编码图片,所述一个或多个经编码图片包括针对多个投影方向的多个补片,根据至少部分地基于所述多个投影方向中的哪一个投影方向与补片中的每一个补片相关联对补片的选择来对所述一个或多个经编码图片进行编码;以及至少部分地基于要针对沉浸式视频渲染的视口从所述一个或多个经编码图片中选择所述多个补片的子集;以及对用于渲染所述视口的补片的所述子集进行解码。
在一些实施例中,所述一个或多个经编码图片包括多个经编码图片,其中,所述多个经编码图片中的每一个经编码图片包括针对一个或多个投影方向的补片。
在一些实施例中,所述一个或多个经编码图片包括包含多个图块的经编码图片,其中,所述多个图块中的每一个图块包括针对一个或多个投影方向的补片。
在以上描述中,为了解释的目的,阐述了许多具体的细节以便提供对所描述的实施例的透彻理解。然而,对于本领域的技术人员将显而易见的是,可以在没有这些具体细节中的一些的情况下实践实施例。在其他实例中,以框图形式示出了公知的结构和装置。所展示部件之间可能存在中间结构。本文描述或展示的部件可以具有未展示或描述的附加输入或输出。
各个实施例可以包括各种过程。这些过程可以由硬件部件执行或者可以在计算机程序或机器可执行指令中具体化,所述计算机程序或机器可执行指令可以用于使得通用处理器或专用处理器或者利用所述指令编程的逻辑电路执行所述过程。替代性地,可以通过硬件和软件的组合来执行所述过程。
可以将各个实施例的部分提供为计算机程序产品,所述计算机程序产品可以包括具有存储在其上的计算机程序指令的计算机可读介质,所述计算机程序指令可以用于对计算机(或其他电子装置)进行编程以供一个或多个处理器执行从而执行根据某些实施例的过程。计算机可读介质可以包括但不限于磁盘、光盘、只读存储器(ROM)、随机存取存储器(RAM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、磁卡或光卡、闪存或适用于存储电子指令的其他类型的计算机可读介质。此外,实施例还可以作为计算机程序产品被下载,其中,可以将程序从远程计算机传送至进行请求的计算机。在一些实施例中,非暂态计算机可读存储介质上存储有表示指令序列的数据,所述指令序列在由处理器执行时使处理器执行某些操作。
所述方法中的许多方法是以其最基本的形式进行描述的,但是在不脱离本发明实施例的基本范围的情况下可以向任何方法中添加过程或从中删除过程,并且可以向任何所描述的消息添加信息或从中减少信息。对本领域的技术人员而言将显而易见的是,可以进行许多另外的修改和改编。特定实施例并非被提供用于限制概念,而是为了说明所述概念。实施例的范围不是通过上面提供的具体实施例来确定的,而是仅由以下权利要求来确定的。
如果说元件“A”耦合至元件“B”或者与元件“B”耦合,则元件A可以直接耦合至元件B或通过例如元件C间接耦合。当说明书或权利要求书声明部件、特征、结构、过程或特性A“导致”部件、特征、结构、过程或特征B时,其意味着“A”至少是“B”的部分原因,但是也可能至少有一个有助于导致“B”的其他部件、特征、结构、过程或特征。如果说明书表明部件、特征、结构、过程或特性“可以(may)”、“可能(might)”、或“可(could)”被包括,则那个特定部件、特征、结构、过程或特性不要求被包括。如果说明书或权利要求提及“一个(a)”或“一个(an)”元件,则这并非意味着仅存在所描述元件之一。
实施例是实施方式或示例。说明书中对“实施例(an embodiment)”、“一个实施例(one embodiment)”、“一些实施例(some embodiments)”、或“其他实施例(otherembodiments)”的引用意味着结合实施例描述的特定特征、结构或特性包括在至少一些实施例中,但不必是全部实施例。“实施例(an embodiment)”、“一个实施例(oneembodiment)”或“一些实施例(some embodiments)”的多处出现不必全部指代相同的实施例。应认识到,在示例性实施例的前述说明中,出于精简本公开以及帮助理解一个或多个不同的新颖性方面的目的,不同特征有时在单个实施例、附图或其说明中被归为一类。然而,本公开的方法并不被解释为反映以下意图:所要求保护的实施例需要比每项权利要求中明确陈述的更多特征。相反,如以下权利要求所反映的,新颖性方面在于少于单个前述的所公开实施例的全部特征。因此,权利要求由此明确地结合到本说明书中,其中每一项权利要求独立地代表单独的实施例。

Claims (25)

1.一种处理系统,包括:
一个或多个处理器核;以及
存储器,用于存储沉浸式视频的数据,所述数据包括针对多个投影方向的多个补片;
其中,所述系统用于选择用于打包的补片,对补片的选择至少部分地基于所述多个投影方向中的哪一个方向与补片中的每个补片相关联;并且
其中,所述系统用于根据对补片的所述选择将补片编码到一个或多个经编码图片中。
2.如权利要求1所述的系统,其中,所述一个或多个经编码图片包括多个经编码图片,其中,所述多个经编码图片中的每一个经编码图片包括针对一个或多个投影方向的补片。
3.如权利要求2所述的系统,其中,要么:
所述多个经编码图片中的每一个经编码图片包括针对所述多个投影方向中的一个投影方向的补片;要么:
所述多个投影方向被分成多组投影方向,每组投影方向包括一个或多个投影方向,并且其中,所述多个经编码图片中的每一个经编码图片包括针对所述多组投影方向中的一组投影方向的补片。
4.如权利要求1所述的系统,其中,所述一个或多个经编码图片包括包含多个图块的经编码图片,其中,所述多个图块中的每一个图块包括针对一个或多个投影方向的补片。
5.如权利要求4所述的系统,其中,所述多个图块中的每一个图块包括针对所述多个投影方向中的一个投影方向的补片。
6.如权利要求4所述的系统,其中,所述多个投影方向被分成多组投影方向,每组投影方向包括一个或多个投影方向,并且其中,所述多个图块中的每一个图块包括针对所述多组投影方向中的一组投影方向的补片。
7.如权利要求4所述的系统,其中,所述多个图块中的每一个图块是HEVC(高效视频编码)运动约束图块组(MCTS)中的运动约束图块。
8.如权利要求1所述的系统,其中,仅从所述多个投影方向中的其他投影方向遮挡的区域被包括在针对特定投影方向的补片中。
9.如权利要求1所述的系统,其中,所述系统用于向客户端系统提供所述一个或多个经编码图片以供解码。
10.如权利要求1所述的系统,其中,所述沉浸式视频是6DoF(6自由度)视频。
11.如权利要求1所述的系统,其中,所述一个或多个处理器核包括图形处理单元(GPU)的一个或多个图形处理器核。
12.一种客户端系统,包括:
一个或多个处理器核;以及
存储器,用于存储沉浸式视频的数据;
其中,所述客户端系统用于接收一个或多个经编码图片,所述一个或多个经编码图片包括针对多个投影方向的多个补片,根据至少部分地基于所述多个投影方向中的哪一个投影方向与补片中的每一个补片相关联对补片的选择来对所述一个或多个经编码图片进行编码;并且
其中,所述客户端系统用于对所述多个补片的子集进行解码以渲染视口,所述客户端系统用于至少部分地基于要由所述客户端系统渲染的视口从所述一个或多个经编码图片中选择补片的所述子集。
13.如权利要求12所述的客户端系统,其中,所述一个或多个经编码图片包括多个经编码图片,其中,所述多个经编码图片中的每一个经编码图片包括针对一个或多个投影方向的补片。
14.如权利要求13所述的客户端系统,其中,所述多个经编码图片中的每一个经编码图片包括针对所述多个投影方向中的一个投影方向的补片。
15.如权利要求13所述的客户端系统,其中,所述多个投影方向被分成多组投影方向,每组投影方向包括一个或多个投影方向,并且其中,所述多个经编码图片中的每一个经编码图片包括针对所述多组投影方向中的一组投影方向的补片。
16.如权利要求12所述的客户端系统,其中,所述一个或多个经编码图片包括包含多个图块的经编码图片,其中,所述多个图块中的每一个图块包括针对一个或多个投影方向的补片。
17.如权利要求16所述的客户端系统,其中,要么:
所述多个图块中的每一个图块包括针对所述多个投影方向中的一个投影方向的补片;要么:
所述多个投影方向被分成多组投影方向,每组投影方向包括一个或多个投影方向,并且其中,所述多个图块中的每一个图块包括针对所述多组投影方向中的一组投影方向的补片。
18.如权利要求16所述的客户端系统,其中,所述多个图块中的每一个图块是HEVC(高效视频编码)运动约束图块组(MCTS)中的运动约束图块。
19.一种设备,包括:
用于从沉浸式视频的多个投影方向检测一个或多个对象的装置;
用于为检测到的对象生成多个补片的装置;
用于至少部分地基于所述多个投影方向中的哪一个投影方向与补片中的每一个补片相关联来选择用于打包的所述多个补片的装置;以及
用于根据对补片的所述选择将补片编码到一个或多个经编码图片中的装置。
20.如权利要求19所述的设备,其中,所述一个或多个经编码图片包括多个经编码图片,其中,所述多个经编码图片中的每一个经编码图片包括针对一个或多个投影方向的补片。
21.如权利要求19所述的设备,其中,所述一个或多个经编码图片包括包含多个图块的经编码图片,其中,所述多个图块中的每一个图块包括针对一个或多个投影方向的补片。
22.如权利要求19所述的设备,其中,仅从所述多个投影方向中的其他投影方向遮挡的区域被包括在针对特定投影方向的补片中。
23.一种设备,包括:
用于接收一个或多个经编码图片的装置,所述一个或多个经编码图片包括针对多个投影方向的多个补片,根据至少部分地基于所述多个投影方向中的哪一个投影方向与补片中的每一个补片相关联对补片的选择来对所述一个或多个经编码图片进行编码;
用于至少部分地基于要针对沉浸式视频渲染的视口从所述一个或多个经编码图片中选择所述多个补片的子集的装置;以及
用于对用于渲染所述视口的补片的所述子集进行解码的装置。
24.如权利要求23所述的设备,其中,所述一个或多个经编码图片包括多个经编码图片,其中,所述多个经编码图片中的每一个经编码图片包括针对一个或多个投影方向的补片。
25.如权利要求23所述的设备,其中,所述一个或多个经编码图片包括包含多个图块的经编码图片,其中,所述多个图块中的每一个图块包括针对一个或多个投影方向的补片。
CN201910561436.0A 2018-07-31 2019-06-26 用于沉浸式视频的选择性补片打包 Pending CN110784714A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/050,277 2018-07-31
US16/050,277 US10887574B2 (en) 2018-07-31 2018-07-31 Selective packing of patches for immersive video

Publications (1)

Publication Number Publication Date
CN110784714A true CN110784714A (zh) 2020-02-11

Family

ID=69186408

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910561436.0A Pending CN110784714A (zh) 2018-07-31 2019-06-26 用于沉浸式视频的选择性补片打包

Country Status (3)

Country Link
US (3) US10887574B2 (zh)
CN (1) CN110784714A (zh)
DE (1) DE102019117585A1 (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10887574B2 (en) 2018-07-31 2021-01-05 Intel Corporation Selective packing of patches for immersive video
US11151424B2 (en) 2018-07-31 2021-10-19 Intel Corporation System and method for 3D blob classification and transmission
US11178373B2 (en) 2018-07-31 2021-11-16 Intel Corporation Adaptive resolution of point cloud and viewpoint prediction for video streaming in computing environments
US11212506B2 (en) 2018-07-31 2021-12-28 Intel Corporation Reduced rendering of six-degree of freedom video
US11284118B2 (en) 2018-07-31 2022-03-22 Intel Corporation Surface normal vector processing mechanism
US11800121B2 (en) 2018-10-10 2023-10-24 Intel Corporation Point cloud coding standard conformance definition in computing environments

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110663068B (zh) * 2017-05-23 2024-02-02 皇家Kpn公司 用于渲染全景场景的坐标映射
KR20200140256A (ko) 2018-04-11 2020-12-15 소니 주식회사 화상 처리 장치 및 방법
US11138694B2 (en) * 2018-12-05 2021-10-05 Tencent America LLC Method and apparatus for geometric smoothing
KR20210109538A (ko) * 2019-01-07 2021-09-06 소니그룹주식회사 화상 처리 장치 및 방법
WO2020146571A1 (en) * 2019-01-09 2020-07-16 Tencent America LLC Method and apparatus for dynamic point cloud partition packing
KR102292195B1 (ko) * 2019-07-04 2021-08-24 엘지전자 주식회사 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법
US11196977B2 (en) * 2019-09-24 2021-12-07 Sony Group Corporation Unified coding of 3D objects and scenes
WO2021102953A1 (en) * 2019-11-29 2021-06-03 Zte Corporation Multi-view video processing method and apparatus
US20210245047A1 (en) 2020-02-10 2021-08-12 Intel Corporation Continuum architecture for cloud gaming
JP2023521287A (ja) * 2020-04-13 2023-05-24 インテル・コーポレーション テクスチャベースの没入型ビデオコーディング
WO2021257120A1 (en) * 2020-06-17 2021-12-23 Intel Corporation Methods, apparatus, and articles of manufacture to generate packed video frames for a volumetric video bitstream and an immersive video bitstream
US20230388542A1 (en) * 2020-10-08 2023-11-30 Interdigital Ce Patent Holdings, Sas A method and apparatus for adapting a volumetric video to client devices
CN118119974A (zh) * 2021-09-30 2024-05-31 浙江大学 编解码方法、编码器、解码器以及存储介质

Family Cites Families (139)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5619256A (en) 1995-05-26 1997-04-08 Lucent Technologies Inc. Digital 3D/stereoscopic video compression technique utilizing disparity and motion compensated predictions
US5768122A (en) 1995-11-14 1998-06-16 Coard Technology Virtual motion programming and control
US5781194A (en) 1996-08-29 1998-07-14 Animatek International, Inc. Real-time projection of voxel-based object
US7486811B2 (en) 1996-09-16 2009-02-03 The Research Foundation Of State University Of New York System and method for performing a three-dimensional virtual examination of objects, such as internal organs
US5966672A (en) 1997-07-28 1999-10-12 Knupp; Daniel F. Visualization technology method
US6476803B1 (en) 2000-01-06 2002-11-05 Microsoft Corporation Object modeling system and process employing noise elimination and robust surface extraction techniques
EP1264281A4 (en) 2000-02-25 2007-07-11 Univ New York State Res Found ARRANGEMENT AND METHOD FOR PROCESSING AND PLAYING A VOLUME
DE10021286B4 (de) 2000-05-02 2005-03-10 Kara Can Verfahren und Vorrichtung zur Kompression und/oder Dekompression von Daten
US6785640B1 (en) 2000-08-07 2004-08-31 Daimlerchrysler Corporation Surface evaluation in a stamping manufacturing process utilizing true reflection line methodology and computer graphics technology
KR100446635B1 (ko) 2001-11-27 2004-09-04 삼성전자주식회사 깊이 이미지 기반 3차원 객체 표현 장치 및 방법
US7003136B1 (en) 2002-04-26 2006-02-21 Hewlett-Packard Development Company, L.P. Plan-view projections of depth image data for object tracking
US7831087B2 (en) 2003-10-31 2010-11-09 Hewlett-Packard Development Company, L.P. Method for visual-based recognition of an object
US9986258B2 (en) 2006-03-31 2018-05-29 Koninklijke Philips N.V. Efficient encoding of multiple views
CN103778635B (zh) 2006-05-11 2016-09-28 苹果公司 用于处理数据的方法和装置
US8351646B2 (en) 2006-12-21 2013-01-08 Honda Motor Co., Ltd. Human pose estimation and tracking using label assignment
RU2487488C2 (ru) 2007-06-26 2013-07-10 Конинклейке Филипс Электроникс Н.В. Способ и система для кодирования сигнала трехмерного видео, инкапсулированный сигнал трехмерного видео, способ и система для декодера сигнала трехмерного видео
US9251585B2 (en) 2007-07-12 2016-02-02 Siemens Aktiengesellschaft Coregistration and analysis of multi-modal images obtained in different geometries
US8217940B2 (en) 2007-07-23 2012-07-10 Disney Enterprises, Inc. Directable lighting method and apparatus
US8613673B2 (en) 2008-12-15 2013-12-24 Sony Computer Entertainment America Llc Intelligent game loading
US8270767B2 (en) 2008-04-16 2012-09-18 Johnson Controls Technology Company Systems and methods for providing immersive displays of video camera information from a plurality of cameras
US9041915B2 (en) 2008-05-09 2015-05-26 Ball Aerospace & Technologies Corp. Systems and methods of scene and action capture using imaging system incorporating 3D LIDAR
US8566335B1 (en) 2008-05-23 2013-10-22 Bank Of America Corporation Enterprise space management and restacking
US8106924B2 (en) 2008-07-31 2012-01-31 Stmicroelectronics S.R.L. Method and system for video rendering, computer program product therefor
IT1394538B1 (it) 2009-05-19 2012-07-05 St Microelectronics Srl Metodo di renderizzazione di un edge di una primitiva grafica
US20110157322A1 (en) 2009-12-31 2011-06-30 Broadcom Corporation Controlling a pixel array to support an adaptable light manipulator
US8458188B2 (en) 2010-02-17 2013-06-04 Lockheed Martin Corporation Voxel approach to terrain repositories for modeling and simulation
US10096161B2 (en) 2010-06-15 2018-10-09 Live Nation Entertainment, Inc. Generating augmented reality images using sensor and location data
US9665916B2 (en) 2010-08-10 2017-05-30 X Systems, Llc System and method for analyzing data
US9307134B2 (en) 2011-03-25 2016-04-05 Sony Corporation Automatic setting of zoom, aperture and shutter speed based on scene depth map
US9517410B2 (en) 2011-04-28 2016-12-13 Numecent Holdings, Inc. Adaptive application streaming in cloud gaming
US8428363B2 (en) 2011-04-29 2013-04-23 Mitsubishi Electric Research Laboratories, Inc. Method for segmenting images using superpixels and entropy rate clustering
JP2012247891A (ja) 2011-05-26 2012-12-13 Sony Corp 画像処理装置、画像処理方法、およびプログラム
US9819879B2 (en) 2011-07-12 2017-11-14 Samsung Electronics Co., Ltd. Image filtering apparatus and method based on noise prediction using infrared ray (IR) intensity
KR101740259B1 (ko) 2011-10-07 2017-05-29 한국전자통신연구원 3차원 포인트 클라우드의 공간 분할 방법
US9171018B2 (en) 2012-01-17 2015-10-27 Google Inc. System and method for associating images with semantic entities
CN104255036A (zh) 2012-03-23 2014-12-31 数码士控股有限公司 Mmt打包svc视频内容的混合传送方法及接收方法
GB201208088D0 (en) 2012-05-09 2012-06-20 Ncam Sollutions Ltd Ncam
CN104662589B (zh) 2012-08-21 2017-08-04 派力肯影像公司 用于使用阵列照相机捕捉的图像中的视差检测和校正的系统和方法
WO2014075236A1 (en) 2012-11-14 2014-05-22 Mediatek Singapore Pte. Ltd. Methods for residual prediction with pseudo residues in 3d video coding
EP2956891B1 (en) 2013-02-18 2019-12-18 Tata Consultancy Services Limited Segmenting objects in multimedia data
US9519972B2 (en) 2013-03-13 2016-12-13 Kip Peli P1 Lp Systems and methods for synthesizing images from image data captured by an array camera using restricted depth of field depth maps in which depth estimation precision varies
WO2014146668A2 (en) 2013-03-18 2014-09-25 Aalborg Universitet Method and device for modelling room acoustic based on measured geometrical data
US9699375B2 (en) 2013-04-05 2017-07-04 Nokia Technology Oy Method and apparatus for determining camera location information and/or camera pose information according to a global coordinate system
WO2014169238A1 (en) 2013-04-11 2014-10-16 Digimarc Corporation Methods for object recognition and related arrangements
JP2014241579A (ja) 2013-05-13 2014-12-25 株式会社東芝 映像圧縮装置
US10074213B2 (en) 2013-09-12 2018-09-11 Intel Corporation Adaptive multi-frequency shading
US20150126282A1 (en) 2013-11-01 2015-05-07 Numecent Holdings Inc. Adaptive application streaming in cloud gaming
CA2931529C (en) 2013-11-27 2022-08-23 Children's National Medical Center 3d corrected imaging
US9412040B2 (en) 2013-12-04 2016-08-09 Mitsubishi Electric Research Laboratories, Inc. Method for extracting planes from 3D point cloud sensor data
US9164874B1 (en) 2013-12-20 2015-10-20 Amazon Technologies, Inc. Testing conversion and rendering of digital content
US20150264404A1 (en) 2014-03-17 2015-09-17 Nokia Technologies Oy Method and apparatus for video coding and decoding
KR102238693B1 (ko) 2014-06-20 2021-04-09 삼성전자주식회사 포인트 클라우드에서 특징 영역을 추출하는 방법 및 장치
US9483868B1 (en) 2014-06-30 2016-11-01 Kabam, Inc. Three-dimensional visual representations for mobile devices
WO2016004902A1 (en) 2014-07-11 2016-01-14 Shanghai United Imaging Healthcare Co., Ltd. System and method for image processing
EP3007130A1 (en) 2014-10-08 2016-04-13 Thomson Licensing Method and apparatus for generating superpixel clusters
US9607425B2 (en) 2014-10-17 2017-03-28 Qualcomm Incorporated Ray-box intersection testing using dot product-based fixed function logic
GB2532948B (en) 2014-12-02 2021-04-14 Vivo Mobile Communication Co Ltd Object Recognition in a 3D scene
WO2016097940A1 (en) 2014-12-16 2016-06-23 3Ditize Sl 3d rotational presentation generated from 2d static images
MY190198A (en) 2015-03-10 2022-04-04 Huawei Tech Co Ltd Picture prediction method and related apparatus
US9715016B2 (en) 2015-03-11 2017-07-25 The Boeing Company Real time multi dimensional image fusing
US10818084B2 (en) 2015-04-07 2020-10-27 Geopogo, Inc. Dynamically customized three dimensional geospatial visualization
US10469873B2 (en) * 2015-04-15 2019-11-05 Google Llc Encoding and decoding virtual reality video
US10853997B2 (en) 2015-04-21 2020-12-01 Hewlett-Packard Development Company, L.P. Octree serialization
CN105184852B (zh) 2015-08-04 2018-01-30 百度在线网络技术(北京)有限公司 一种基于激光点云的城市道路识别方法及装置
EP3156942A1 (en) 2015-10-16 2017-04-19 Thomson Licensing Scene labeling of rgb-d data with interactive option
US10574988B2 (en) 2015-11-19 2020-02-25 Qualcomm Incorporated System and methods for reducing slice boundary visual artifacts in display stream compression (DSC)
US9740944B2 (en) 2015-12-18 2017-08-22 Ford Global Technologies, Llc Virtual sensor data generation for wheel stop detection
US20170184721A1 (en) 2015-12-24 2017-06-29 Laurel At Sunset, Inc. Indirect distance measurement methods and apparatus
GB201602877D0 (en) 2016-02-18 2016-04-06 Landa Corp Ltd System and method for generating videos
US11025882B2 (en) 2016-04-25 2021-06-01 HypeVR Live action volumetric video compression/decompression and playback
US20170331666A1 (en) 2016-05-11 2017-11-16 Qualcomm Incorporated Real-time control interface for broadcast object streaming
US10681326B2 (en) * 2016-05-19 2020-06-09 AVAGO TECHNOLOGlES INTERNATIONAL SALES PTE. LIMITED 360 degree video system with coordinate compression
US10979691B2 (en) 2016-05-20 2021-04-13 Qualcomm Incorporated Circular fisheye video in virtual reality
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
US10462466B2 (en) * 2016-06-20 2019-10-29 Gopro, Inc. Systems and methods for spatially selective video coding
US20180007307A1 (en) 2016-07-02 2018-01-04 Qualcomm Incorporated Distributed Implementation Architecture for Broadcast Receiver
US10909761B1 (en) 2016-07-07 2021-02-02 Google Llc 2D video with option for projected viewing in modeled 3D space
TWI775760B (zh) 2016-07-08 2022-09-01 美商Vid衡器股份有限公司 使用幾何投影360度視訊編碼
ES2864684T3 (es) 2016-07-28 2021-10-14 Carestream Dental Tech Topco Ltd Procedimiento y sistema para retirar los aparatos ortodónticos de la malla digital de la dentición
US10366310B2 (en) 2016-09-12 2019-07-30 Aptiv Technologies Limited Enhanced camera object detection for automated vehicles
KR102560029B1 (ko) 2016-09-12 2023-07-26 삼성전자주식회사 가상 현실 콘텐트를 송수신하는 방법 및 장치
EP3516509A1 (en) 2016-09-27 2019-07-31 Google LLC Selective simulation of virtualized hardware inputs
EP3301931A1 (en) * 2016-09-30 2018-04-04 Thomson Licensing Method and apparatus for omnidirectional video coding with adaptive intra prediction
KR102567727B1 (ko) 2016-10-19 2023-08-18 아이피엘에이 홀딩스 인크. 장치
US10733766B2 (en) 2016-10-19 2020-08-04 Google, Llc Methods and apparatus to encode and/or decode normals of geometric representations of surfaces
US10165300B2 (en) 2016-10-28 2018-12-25 Blackberry Limited 3D transform and inter prediction for video coding
US10109055B2 (en) 2016-11-21 2018-10-23 Seiko Epson Corporation Multiple hypotheses segmentation-guided 3D object detection and pose estimation
US10186075B2 (en) 2016-11-30 2019-01-22 Adcor Magnet Systems, Llc System, method, and non-transitory computer-readable storage media for generating 3-dimensional video images
KR20180074369A (ko) 2016-12-23 2018-07-03 삼성전자주식회사 3차원 컨텐츠의 썸네일 관리 방법 및 그 장치
US20180189647A1 (en) 2016-12-29 2018-07-05 Google, Inc. Machine-learned virtual sensor model for multiple sensors
US10560680B2 (en) 2017-01-28 2020-02-11 Microsoft Technology Licensing, Llc Virtual reality with interactive streaming video and likelihood-based foveation
US10078790B2 (en) 2017-02-16 2018-09-18 Honda Motor Co., Ltd. Systems for generating parking maps and methods thereof
US11514613B2 (en) 2017-03-16 2022-11-29 Samsung Electronics Co., Ltd. Point cloud and mesh compression using image/video codecs
US20180300937A1 (en) 2017-04-13 2018-10-18 National Taiwan University System and a method of restoring an occluded background region
WO2018199792A1 (en) 2017-04-26 2018-11-01 Huawei Technologies Co., Ltd Apparatuses and methods for encoding and decoding a panoramic video signal
US10645360B2 (en) 2017-05-31 2020-05-05 Verizon Patent And Licensing Inc. Methods and systems for transmitting data in a virtual reality system
CA3066502A1 (en) 2017-06-21 2018-12-27 Vancouver Computer Vision Ltd. Determining positions and orientations of objects
US10514757B2 (en) 2017-06-23 2019-12-24 Dell Products, L.P. Wireless communication configuration using motion vectors in virtual, augmented, and mixed reality (xR) applications
US10484682B2 (en) 2017-07-03 2019-11-19 Qualcomm Incorporated Reference picture derivation and motion compensation for 360-degree video coding
US10818087B2 (en) 2017-10-02 2020-10-27 At&T Intellectual Property I, L.P. Selective streaming of immersive video based on field-of-view prediction
EP4336800A3 (en) 2017-10-10 2024-05-29 Google LLC Distributed sample-based game profiling with game metadata and metrics and gaming api platform supporting third-party content
US11769275B2 (en) 2017-10-19 2023-09-26 Interdigital Vc Holdings, Inc. Method and device for predictive encoding/decoding of a point cloud
US10699444B2 (en) 2017-11-22 2020-06-30 Apple Inc Point cloud occupancy map compression
US10783668B2 (en) 2017-12-22 2020-09-22 Samsung Electronics Co., Ltd. Handling duplicate points in point cloud compression
EP3729766A1 (en) 2017-12-24 2020-10-28 Arilou Information Security Technologies Ltd. System and method for tunnel-based malware detection
US10346987B1 (en) 2017-12-29 2019-07-09 Datalogic Usa, Inc. Locating objects on surfaces
WO2019138414A1 (en) 2018-01-12 2019-07-18 Telefonaktiebolaget Lm Ericsson (Publ) Data center failure management in an sdn deployment using switching node control
US10963995B2 (en) 2018-02-12 2021-03-30 Samsung Electronics Co., Ltd. Image processing apparatus and image processing method thereof
WO2019182752A1 (en) 2018-03-22 2019-09-26 Google Llc Methods and systems for rendering and encoding content for online interactive gaming sessions
US10773168B2 (en) 2018-04-02 2020-09-15 Google Llc Temporary game control by user simulation following loss of active control
US10848894B2 (en) 2018-04-09 2020-11-24 Nokia Technologies Oy Controlling audio in multi-viewpoint omnidirectional content
KR20230173223A (ko) 2018-04-10 2023-12-26 구글 엘엘씨 게이밍 렌더링에서의 메모리 관리
US10796458B2 (en) 2018-04-23 2020-10-06 Qualcomm Incorporated Compression of point clouds via a novel hybrid coder
US10827225B2 (en) 2018-06-01 2020-11-03 AT&T Intellectual Propety I, L.P. Navigation for 360-degree video streaming
CN112673638B (zh) 2018-07-06 2024-04-19 诺基亚技术有限公司 处理媒体数据的方法和装置
US11012713B2 (en) 2018-07-12 2021-05-18 Apple Inc. Bit stream structure for compressed point cloud data
US10887574B2 (en) 2018-07-31 2021-01-05 Intel Corporation Selective packing of patches for immersive video
US11212506B2 (en) 2018-07-31 2021-12-28 Intel Corporation Reduced rendering of six-degree of freedom video
US20200045344A1 (en) 2018-07-31 2020-02-06 Intel Corporation Video processing mechanism
US10685476B2 (en) 2018-07-31 2020-06-16 Intel Corporation Voxels sparse representation
US10839589B2 (en) 2018-07-31 2020-11-17 Intel Corporation Enhanced immersive media pipeline for correction of artifacts and clarity of objects in computing environments
US10893299B2 (en) 2018-07-31 2021-01-12 Intel Corporation Surface normal vector processing mechanism
US10922832B2 (en) 2018-07-31 2021-02-16 Intel Corporation Removal of projection noise and point-based rendering
US10911799B2 (en) 2018-07-31 2021-02-02 Intel Corporation Video refinement mechanism
US10819968B2 (en) 2018-07-31 2020-10-27 Intel Corporation Neural network based patch blending for immersive video
US10783698B2 (en) 2018-07-31 2020-09-22 Intel Corporation Point cloud operations
US11178373B2 (en) 2018-07-31 2021-11-16 Intel Corporation Adaptive resolution of point cloud and viewpoint prediction for video streaming in computing environments
US20200045288A1 (en) 2018-07-31 2020-02-06 Intel Corporation Six degree of freedom video transcoding mechanism
US10846814B2 (en) 2018-07-31 2020-11-24 Intel Corporation Patch processing mechanism
US10762592B2 (en) 2018-07-31 2020-09-01 Intel Corporation Point-based rendering and removal of projection noise
US10762394B2 (en) 2018-07-31 2020-09-01 Intel Corporation System and method for 3D blob classification and transmission
US11049266B2 (en) 2018-07-31 2021-06-29 Intel Corporation Point cloud viewpoint and scalable compression/decompression
US11057631B2 (en) 2018-10-10 2021-07-06 Intel Corporation Point cloud coding standard conformance definition in computing environments
GB2585198B (en) 2019-07-01 2022-03-02 Sony Interactive Entertainment Inc Method and device for generating video frames
US11446571B2 (en) 2020-04-30 2022-09-20 Intel Corporation Cloud gaming adaptive synchronization mechanism
US20220040573A1 (en) 2020-08-10 2022-02-10 Nvidia Corporation Transferring from a cloud-hosted instance of an application to a local instance
US20220255988A1 (en) 2021-02-05 2022-08-11 Veea Inc. Systems and Methods for Collaborative Edge Computing
US20220224776A1 (en) 2022-04-01 2022-07-14 Kshitij Arun Doshi Dynamic latency-responsive cache management

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10887574B2 (en) 2018-07-31 2021-01-05 Intel Corporation Selective packing of patches for immersive video
US11151424B2 (en) 2018-07-31 2021-10-19 Intel Corporation System and method for 3D blob classification and transmission
US11178373B2 (en) 2018-07-31 2021-11-16 Intel Corporation Adaptive resolution of point cloud and viewpoint prediction for video streaming in computing environments
US11212506B2 (en) 2018-07-31 2021-12-28 Intel Corporation Reduced rendering of six-degree of freedom video
US11284118B2 (en) 2018-07-31 2022-03-22 Intel Corporation Surface normal vector processing mechanism
US11568182B2 (en) 2018-07-31 2023-01-31 Intel Corporation System and method for 3D blob classification and transmission
US11750787B2 (en) 2018-07-31 2023-09-05 Intel Corporation Adaptive resolution of point cloud and viewpoint prediction for video streaming in computing environments
US11758106B2 (en) 2018-07-31 2023-09-12 Intel Corporation Reduced rendering of six-degree of freedom video
US11863731B2 (en) 2018-07-31 2024-01-02 Intel Corporation Selective packing of patches for immersive video
US11800121B2 (en) 2018-10-10 2023-10-24 Intel Corporation Point cloud coding standard conformance definition in computing environments

Also Published As

Publication number Publication date
US20210266515A1 (en) 2021-08-26
US10887574B2 (en) 2021-01-05
US20200045290A1 (en) 2020-02-06
US20240155094A1 (en) 2024-05-09
US11863731B2 (en) 2024-01-02
DE102019117585A1 (de) 2020-02-13

Similar Documents

Publication Publication Date Title
US11863731B2 (en) Selective packing of patches for immersive video
US11790490B2 (en) Super-resolution apparatus and method for virtual and mixed reality
US10819968B2 (en) Neural network based patch blending for immersive video
US20200045344A1 (en) Video processing mechanism
US11800121B2 (en) Point cloud coding standard conformance definition in computing environments
US20200045288A1 (en) Six degree of freedom video transcoding mechanism
US10911799B2 (en) Video refinement mechanism
US11284118B2 (en) Surface normal vector processing mechanism
US11758106B2 (en) Reduced rendering of six-degree of freedom video
CN110855971A (zh) 视频处理机制
US10937126B2 (en) Tile-based multiple resolution rendering of images
US10733690B2 (en) GPU mixed primitive topology type processing
US20240080464A1 (en) Point cloud coding standard conformance definition in computing environments
US10839597B2 (en) Apparatus and method for multi-frequency vertex shading
US10621689B1 (en) Multi-phase architecture for multiple rate pixel shading
EP3618007A1 (en) Apparatus and method for runtime training of a denoising machine learning engine
US20210263776A1 (en) Apparatus and method for graphics virtualization with late synchronization
US20190265973A1 (en) Fusion of SIMD Processing Units

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