CN105787875A - 用于在计算机系统中控制空间分辨率的方法和装置 - Google Patents

用于在计算机系统中控制空间分辨率的方法和装置 Download PDF

Info

Publication number
CN105787875A
CN105787875A CN201510930963.6A CN201510930963A CN105787875A CN 105787875 A CN105787875 A CN 105787875A CN 201510930963 A CN201510930963 A CN 201510930963A CN 105787875 A CN105787875 A CN 105787875A
Authority
CN
China
Prior art keywords
pixel
resolution
information
pixels
grid
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
CN201510930963.6A
Other languages
English (en)
Other versions
CN105787875B (zh
Inventor
尤因·烁杉
艾伯特·沙鲁莫
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.)
Google LLC
Original Assignee
LUCIDLOGIX TECHNOLOGIES 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 LUCIDLOGIX TECHNOLOGIES Ltd filed Critical LUCIDLOGIX TECHNOLOGIES Ltd
Publication of CN105787875A publication Critical patent/CN105787875A/zh
Application granted granted Critical
Publication of CN105787875B publication Critical patent/CN105787875B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/90Dynamic range modification of images or parts thereof
    • G06T5/92Dynamic range modification of images or parts thereof based on global image properties
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/40Scaling of whole images or parts thereof, e.g. expanding or contracting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/40Scaling of whole images or parts thereof, e.g. expanding or contracting
    • G06T3/4053Scaling of whole images or parts thereof, e.g. expanding or contracting based on super-resolution, i.e. the output image resolution being higher than the sensor resolution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/40Scaling of whole images or parts thereof, e.g. expanding or contracting
    • G06T3/4092Image resolution transcoding, e.g. by using client-server architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20016Hierarchical, coarse-to-fine, multiscale or multiresolution image processing; Pyramid transform
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/36Level of detail

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Image Processing (AREA)
  • Image Generation (AREA)

Abstract

提供了一种图形系统中用于产生输出像素的计算机实现方法,所述方法包括:从图形系统中接收一个或多个输入像素;对一个或多个像素执行渲染操作,其中渲染包括:选择要增加分辨率的一个或多个信息像素(pixels of interest);定义一个样本网格或者样本方位;对具有首要分辨率(first resolution)及多重采样点的一个或多个信息像素进行多次采样;从每个样本点处收集信息;将每个样本点作为虚拟像素来存储其信息;定义一个或多个像素的分辨率,使其保持与从图形系统收到的分辨率一致,或者其分辨率将要被缩减;最后在可显示的帧或者屏幕外的缓冲区,通过将每一个虚拟像素渲染到物理像素中来实现渲染信息像素,以带来比首要分辨率更高的分辨率。

Description

用于在计算机系统中控制空间分辨率的方法和装置
技术领域
本发明涉及在成像应用程序中,提升与图像分辨率紧密相关的用户体验。
相关申请
本申请与公开号为US2013/0176322,题为“通过命令流拦截方式的应用透明分辨率控制(Application-TransparentResolutionControlbyWayofCommandStreamInterception)”的美国专利申请相关,其全部内容在此全部通过引证并入本文。
背景技术
公开号为US2013/0176322,题为“通过命令流拦截方式的应用透明分辨率控制(Application-TransparentResolutionControlbyWayofCommandStreamInterception)”(以下简称“分辨率控制”)的专利申请公开了一个独立的软件程序,该程序通过配置可以在基于CPU和GPU的图形化本地应用之间动态的、无缝的运行和切换,并且渲染图形化命令以达到在屏幕上或屏幕缓冲区创建一个图像的目的。上述分辨率控制申请中,在CPU和GPU之间的动态分辨率修正器如图4B所示。如果没有这样的软件程序,GPU将基于指令输入流和着色器流来渲染图像,就像由基于CPU的原生应用生成的图像一样。
通过设置CPU和GPU之间的动态分辨率修正器,它接收到一个由本地应用程序生成的指令和着色器流作为输入,而不是流向GPU的3D接口的本地数据流。然后对他们进行截取和分析并且基于不同的考虑,如用户体验,发热等级,帧速率,功耗或电池电量,来改变一些或所有这些命令和/或着色器,这些会以图形方式在图4B右侧展示。修改后的指令和/或着色器流可以由一个空间分辨率控制器所产生,然后它被发送到GPU用来渲染,这代替了原来的由CPU上的本地应用所产生的传统指令和着色器流的方式。在这种方式中,软件程序针对图像的每一帧、每个资源,动态地、实时地控制和修改分辨率。因此,它有能力在一种分辨率中采集某个资源样本,并将其写入不同的分辨率。
本领域技术人员普遍认为,源自/指向一个单一资源或者源自/指向多种资源中,读与写是很必需的。对于整个应用是3D或者2D的情况,减少资源的分辨率可以通过修改API命令,只渲染这个资源的一部分来实现。由于本地应用的状态、本地应用运行的硬件或者其他系统资源产生了变化,那么这一帧或者资源的分辨率就可能会再次扩大。经过动态分辨率修正器修改过的资源将不再带有之前由本地应用产生的原始分辨率。等比例放大修改过的资源需要适当的抽样和渲染技术,以保持用户体验处于预定义的阈值之上。这对2D平视显示器(HeadsUpDisplays,HUD)资源及其他资源来说至关重要。
同时,在现有技术中,反锯齿(AA)机制是公知的,例如超级采样(SSAA)和多重采样(MSAA)等。正如本领域技术人员所知的,这种机制从资源的像素中至少采集一个点的样本,然后基于覆盖范围和遮挡准则对要渲染的原始多边形来计算已渲染资源中这些像素的可见性。三角形或线段等原始多边形具有固有的不连续性。不管采样率如何选择,都将导致不可避免的锯齿。AA软件在要采样的资源的像素中创建的一个网格状采样点。这样一个网格在每个像素中可能包括1,2,3,4,5,6,7,8或更多的采样点。此外,这些采样点的空间分布可能是沿着一个像素的x和y轴或任何旋转角度。例如,一种已知的技术,如MSAAX4,可能会采用每个像素4个样品点,并相对于像素主轴旋转45度角的网格。统计数据显示,通过使用一个旋转网格在实现检测几何边缘时有更好的敏感性。在本实施例的实践中,每个像素有四个样本点。这四个点的数据集接下来用来渲染这个样本像素。在原资源中的任何像素,都要渲染到一个新资源的新像素中。然而,请注意,最终资源的分辨率并不改变。这是一个简单的像素到像素转换。这种机制的唯一目的是减少锯齿。减少锯齿的方法是平均每个像素的采样数据点。一旦平均了数据点,原始采样数据就会消失,并且再也不会使用这些数据。SSMA增加了渲染的系统处理成本,现在它已经很少使用。另一方面,MSAA需要更少的系统资源并被广泛用于抗锯齿的目的。这里有一篇详细讨论了MSAA的文章叫“MSA简介(AQuickOverviewofMSA)”,由MattPettineo所著,2012年10月24日出版。
发明内容
一方面,由计算机实现的用于图形系统产生输出像素的方法,包括以下步骤:从图形系统接收一个或多个输入像素;在一个或多个像素上执行渲染操作,其中渲染的步骤包括:选择一个或多个要增加分辨率的信息像素;定义一个采样网格或取样方向;对具有首要分辨率(afirstresolution)及多重采样点的一个或多个信息像素进行多次采样;从每个采样点收集信息;将每个采样点作为虚拟像素来储存信息;定义一个或多个像素的分辨率,使其保持与从图形系统收到的分辨率一致,或者与要减少的分辨率一致;以及,在可显示的帧或者画面外的缓冲区,通过将每一个虚拟像素渲染到物理像素中来实现渲染信息像素,以带来比首要分辨率更高的分辨率。
在另一方面,上述采用计算机实现的方法还包括:在第二分辨率(asecondresolution)中渲染一个或多个像素,其中所述的第二分辨率将所述一个或多个像素中的一个或多个渲染成分辨率增加的像素,将所述一个或多个像素中的其他像素渲染成分辨率降低或者不变的像素,其中所述的一个或多个像素的总分辨率等于其首要分辨率;评估第二分辨率中的一个或多个像素来形成一个或多个输出像素;以及,在可显示的帧或者画面外的缓冲区中,显示所述的一个或多个像素。
在另一方面,上述采用计算机实现的方法包括:从图形系统中接收一个或多个输入像素;对一个或多个像素执行渲染操作。所述的渲染包括以下步骤:选择信息像素;定义一个样本点的网格;执行抽样;从每个样本点处收集信息;将每个样本点的信息存储到虚拟像素中;以及在像素队列中,将虚拟像素作为单独的像素来渲染。
在进一步的方面中,所述采用计算机实现的方法,进一步包括以下步骤:在定义步骤之后,收集用户体验因素并为至少一个用户体验因素建立最小阈值,以及,在最少一个阈值的基础上,使用户体验保持在已建立的阈值之上。
在一个方面,在上述采用计算机实现的方法中,其中所述用户体验由以下一个或多个因素收集而来:帧速率,发热等级,响应速度,电量以及电源等级。
此外,在另一方面,在图形系统中用于产生输出像素的一种计算机实现方法,包括以下步骤:从图形系统中接收一个或多个输入像素;对一个或多个像素执行渲染操作。所述的渲染包括以下步骤:定义包含一个或多个像素的样本点的第一网格(afirstgrid);在样本点的第一网格中对所述一个或多个像素取样;定义包含一个或多个像素的样本点的第二网格(asecondgrid);在样本点的第二网格中对所述一个或多个像素取样;分析所述具有第一网格及第二网格的一个或多个像素,以便接收元数据(metadata)来进行渲染;以及,渲染所述一个或多个像素。
在另一方面,采用计算机实现的方法,进一步包括以下步骤:在对样本点的第一网格进行取样的步骤之前旋转样本点的第一网格。所述旋转步骤指的是将第一网格旋转小于90°,优选为大约45°。
在进一步的方面中,在图形系统中用于产生输出像素的计算机实现方法包括以下步骤:从图形系统中接收一个或多个输入像素;对所述一个或多个像素执行渲染操作。所述的渲染包括以下步骤:选择一个或多个要增加分辨率的信息像素;定义一个样本网格或者样本方位;对具有首要分辨率及多重采样点的一个或多个信息像素进行多次采样;从每个样本点处收集信息;将每个样本点作为虚拟像素来存储其信息;定义一个或多个非信息像素;从一个单独样本点中对一个或多个非信息像素单独取样;以及,在可显示的帧或者画面外的缓冲区,通过将每一个虚拟像素渲染到物理像素中来实现渲染一个或多个信息像素,以带来比首要分辨率更高的分辨率。
在另一方面,采用计算机实现的方法,还包括将一个或多个非信息像素扩展到多个具有更高分辨率的信息像素中,使得每个非信息像素都能够复制到与其原像素一样的物理像素中。此外,所述方法还包括将一个或多个非信息像素扩展到多个具有更高分辨率的信息像素中,使得至少一个非信息像素能够通过反锯齿算法转化为与其原像素不同的物理像素。反锯齿算法包括下述中一个或多个算法:最近邻居算法(nearestneighbor),双线性算法,Lanczos算法,B样条算法,Mitchel算法或者高斯方法,同时反锯齿算法能够将临近的信息像素考虑在内。
在另一方面,一个非闪存计算机可读介质,其上存储一段程序,使得图像处理单元(GPU)被调用从而执行图像处理,所述的处理包括在一个或多个像素上执行渲染操作。所述的渲染包括如下步骤:从图形系统中接收一个或多个输入像素;对一个或多个像素执行渲染操作,其中渲染包括以下步骤:选择一个或多个要增加分辨率的信息像素;定义样本网格或者样本方位;对具有首要分辨率及多重采样点的一个或多个信息像素进行多次采样;从每个样本点处收集信息;将每个样本点作为虚拟像素来存储其信息;定义一个或多个像素的分辨率,使其保持与从图形系统收到的分辨率一致,或者与要减少的分辨率一致;以及,在可显示的帧或者画面外的缓冲区,通过将每一个虚拟像素渲染到物理像素中来实现渲染信息像素,以带来比首要分辨率更高的分辨率。
在另一方面,用于处理图形内容的系统包括:提供一个或多个像素的图形处理单元(GPU);非闪存的存储器,其包含指示,当其从图形处理单元接收到一个或多个像素时,所述指示用于处理所述的一个或多个像素从而产生一个或多个输出像素;所述的指示用于在一个或多个像素上执行渲染操作。所述的渲染包括如下步骤:选择一个或多个要增加分辨率的信息像素;定义样本网格或者样本方位;对具有首要分辨率及多重采样点的一个或多个信息像素进行多次采样;从每个样本点处收集信息;将每个样本点作为虚拟像素来存储其信息;定义一个或多个像素的分辨率,使其保持与从图形系统收到的分辨率一致,或者与要减少的分辨率一致;以及,在可显示的帧或者画面外的缓冲区,通过将每一个虚拟像素渲染到物理像素中来实现渲染信息像素,以带来比首要分辨率更高的分辨率。
附图说明
图1展示了本发明在实施过程中的一系列步骤。
图2图形化的展示了本发明的采样方法。
图2A和2B展示了基于本发明的拉伸功能。
图3图形化的展示了本发明的样本网格分析过程。
图3A展示了一个2×2的样本点阵列进行旋转的实施例。
图4展示了本发明在实施过程中的更多步骤。
图5展示了图片的动态分辨率缩放过程。
图6展示了本发明中图片的空间分辨率。
图7A到8B图形化的展示了动态分辨率和本发明所述空间分辨率的比较结果。
具体实施方式
一个资源或帧的动态分辨率是即时的进行识别和渲染,正如上述的分辨率控制专利申请中披露的那样,其视为一个整体,例如资源分辨率或者帧分辨率,它不仅能够受到一些因素的影响,如整体用户体验、宜玩指数(playability)、节能、帧速率、响应性能、进行渲染的功耗、发热等级以及最主要的——视觉体验质量,而且它还能够影响上述这些因素。
相比之下,在本发明中,通过实施例可以看到,资源或帧的信息区域(areasofinterest)有很多边缘(这可以看作是颜色或亮度的相对快速变化),就会对视觉体验质量产生很大影响,因为边缘很明显的话,人们对边缘的感知就会超过图像渲染的内部,那么这些边缘就要以更高的分辨率进行即时的检测和分析以及动态的渲染。特别是几何边缘,因为要渲染的是一个多边形边缘,因此它是一个重要方面,在这些几何边缘部分最好能够提供相对较高的分辨率。在计算机或其他屏幕上观察几何图形的人可能会注意到边缘效应,这是由于沿着边缘显示的锯齿数量引起的。
本发明也包括,旨在提供一种改变分辨率的方法论,能够在单个像素的基础上来渲染相对锋利的边缘,同时还能像上面讨论的那样节约资源。因此,尽管所谓的本地应用程序以相同的分辨率等级来渲染整个图像,但是,本发明渲染边缘地区比渲染图像的剩余区域(如多边形的内部)使用更高的分辨率,因为,如前所述,在非边缘区域尖锐度的相对减少对观察者来说是不明显的,这将会在下文讨论,示范效果如图7A和8B所示。在本发明中,对于在边缘上的像素,将“投入”更多来渲染它,从而更高分辨率进行渲染。这种方式是通过对边缘像素进行多重采样,然后将每个采样点转换为一个单独的像素来实现的。另一个实施例是,在探测一个发光区域时,以较高的分辨率“投入”渲染较亮的区域,以较低的分辨率渲染较暗的区域。另一个实施例是,在一个虚拟现实(VR)装置中检测图像转动和观察方向变化,在玩家的移动方向上“投入”提高的分辨率,而在相反的方向上,以较低的分辨率进行渲染。
根据本发明的一个方面,信息像素(PixelsofInterest,POI)是进行多重采样,然后以一个更高的分辨率进行渲染。这样的高分辨率,至少有一部分是基于从至少一部分的采样点获取的信息。对于此申请的目的,作为一个非限制性的实施例,POI可能是亮区而不是暗区,反之亦然;边缘,不仅是几何形状,而且在多边形内部,如纹理边缘或复杂的片段着色器;POI可能是基于虚拟摄像机运动方向、角度、速度和/或加速度定义的,是渐变的和有角度的。例如,如果玩家是右转,POI就可能是屏幕右边区域的像素;多个对象移动的区域可以被识别和定义为POI域,更加静态的画面中心、或者屏幕或场景的中心域可以定义为POI;平视显示器(HUD)区域可以定义为POI,尽管边缘不是几何形状,也可以以高分辨率的形式展示;文本区域可以定义为POI;像素接近焦面或虚拟摄像机;场景中的关键元素,例如,举例来说,选择的角色、手、枪或选择的对象,例如在CAD、医疗、教育和其他应用程序中也可以被定义为POI。POI可以被选作距虚拟摄像机相对较近的物体;POI可以是由对象被渲染时所占屏幕百分比决定的;POI可以被选择作为用户的光标;参考POI掩码(areferencePOImask),既可以是一个单独的资源,也可以是内部的渲染资源。该掩码可以被包含在渲染资源中的某些组件(如α)或其他元数据中;在保持应用程序透明性的同时,它可以由空间分辨率控制器生成,或者打破应用的透明性,可以通过运行中的本地程序的API获得。POI也可能是上述的任意组合。
本发明使用从资源的像素中采集的样本信息,以便将该像素的分辨率扩展到渲染资源中。特别的是,本发明采取定向采样机制,如MSAA中,多样本采样针对的只是被认定为如上定义的POI部分的像素,通过把资源的一个像素中的每个采样点转换为渲染资源中的单独像素,以增加多采样像素的分辨率。
根据本发明的另一个方面,除几何边缘以外,不同类型的像素可以被定向用于多重采样,然后以较高的分辨率进行渲染。渲染帧的特点是沿着几何边缘具有高分辨率,非几何边缘的区域具有低分辨率,使得用户体验维持在预定义的阈值之上,这正是本发明的另一个方面。根据本发明的另一个方面,一个采样网格具有主轴线,其与采样像素的主轴线平行,可以利用这个特点来减少帧构件或计算负荷。
根据本发明的一个方面,如图1的流程图所示,被选择的资源像素的子集采用多重采样方式。这样的像素子集的选择可以基于本领域技术人员所熟知的算法完成,如MSAA:一个抖动子像素的子像素样本,使用子像素偏移值程序来控制子像素样本数,子像素样本密度或空间分布。本领域技术人员所熟知的另一个MSAA技术就是:根据当前渲染的多边形,为所有采样点创建虚拟像素,然后计算虚拟像素中的样本覆盖范围。如果在该多边形内发现了至少一个样本,多边形外也有至少一个样本,它就属于需要多采样的一类。还有一个著名的技术,它将一般(透明)的渲染和特别的α-测试渲染结合在一起,可以有效的解决问题,被称为“阿尔法覆盖”,它能够仿真几何细节,因此树形的图像也可以使用这个技术。
MSAA算法能够识别位于几何边缘的像素子集。还有一个可替代的特殊算法可以用于识别POI的其他子集。为了检查和决定该像素是否是一个信息像素,这些算法能够解析全部或部分与像素有关的命令或着色器流。此外,这些测试可以基于一个预定义的固定参数执行,例如,为了确定一个像素的覆盖范围或遮挡区域,可以在某个预定点上解析命令。可替换的是,这些测试还可以以一个更动态的方式执行,例如,在决定是否需要一个额外的测试时,会用到第一次测试的结果。根据本发明的另一方面,当分辨率水平高于预定分辨率阈值时,屏幕、打印机、屏幕外的缓冲区和HUD中的图像可以通过GPU渲染。当考虑这些参数如帧速率、发热等级、延迟、用户输入、功耗水平或电量时,为了保证用户体验高于预定义的阈值,分辨率阈值可能是一个动态的阈值。此外,就像该领域专业人士所熟知的那样,为了渲染新的资源,可能要使用多个资源。另一个熟知的是:一个单一的资源或单一资源的一部分,需要经过多于一次的渲染,才能变成多重资源。因此,根据本发明的这个方面,从整个框架或一组资源的角度来看,当一个算法用于信息像素子集时,可以选择一个或多个资源的所有像素进行多重采样。
现在参考图2,一旦一个像素已被选定为多重采样,所述算法定义采样网格,在这个实施例中,与2X2网格中展示的一样,网格是平行于物理像素的主X轴和Y轴的。采样点的数目可能是任意的,如4、6、8、9、12、16等。采样点的数目可能由系统预先设定,或根据测试像素所有特征的结果来确定。此外,由于从先前的采样点收集了信息,信息采样点的数目可以根据采集结果即时的被定义或改变。例如,算法可能在像素中预先设定一个单独的采样点。这一点可能位于像素的中心、像素的方形中心或像素内的任何其他位置。基于采样收集的信息,为了进行第二个采样进程,算法可能会增加采样点的数量和/或扩大采样点或网格的方向范围。对于某一点来说,这个过程可能是不断重复的,直到系统对像素内的采样点数量及其空间分布作出最终决定。值得一提的是,通过比较和分析像素内或临近的像素间的采样信息,就能够做出这样的决定。一旦系统定义了采样点的数量和采样类型,系统就对这些点进行全部或部分采样。根据本发明的一个方面,决定一个像素是否必须进行多采样时,应该分析需要进行检查的参数和标准,也许会发现他们与实现系统下一步目标所需的信息并不相同。在这种情况下,为了收集更多的信息,系统至少会对这些点或其他点的一部分进行重新取样。然而,根据本发明的另一个方面,在确定哪个像素必须采取多采样的过程中,该系统通过分析其中收集的信息,可能会发现它足以满足接下来的目标,因此就不需要对他们进行重采样。系统将会保存元数据,它是从GPU内存缓冲区中虚拟像素的每个采样点收集的。可以从图2所示的实施例中看出,一个2X2尺寸的直线采样网格生成4个采样点。对于每一个采样点,使用一个虚拟像素,以保存从采样点中收集的元数据。在这个实施例中,可以发现第四方形的采样点被多边形的边覆盖,而1,2和3中的采样点没有被原始线段边缘覆盖。如上所示,与被多边形几何边的覆盖相比,未被覆盖的采样点相关元数据可以包含额外的信息。
根据本发明的另一个方面,还是参考图2,基于它们的元数据,至少有一部分虚拟像素被渲染成一个单独的物理像素,它处于与原始多采样像素相关的一组像素中。以这种方式,由系统根据不同的标准在上一个步骤选择的信息像素是多采样的,然后以高分辨率的形式渲染。根据图2所示的非限制的实施例,一个2X2的采样网格生成了4个采样点,当每个虚拟像素渲染到渲染图像中的一个单独的像素时,4个采样点就会转换成4个虚拟像素。值得一提的是,根据本发明的其他方面,如果该系统决定采样和丢弃数据或者不将单独虚拟像素提供给采样点,则采样点的数目可能与虚拟像素的数目不同。也有可能虚拟像素数量与图像中渲染或解析的物理像素数量是不同的。下面进一步的讨论将会考虑到,该系统可能选择放弃一个采样点,或将2个或多个虚拟像素组合成一个单一的虚拟像素。下面讨论是另一种可能性,该系统决定不将一个物理像素提供给现有的虚拟像素。
现在参考图2A,一个空间分辨率控制器的重映射-拉伸命令,这是本发明的两个方面,体现在非限制性实施例中,就是把2X2的像素数组动态地转换成4X4的高分辨率数组,就像本地应用程序生成的那样。在本例中,原始像素A被定义为POI,采取多重采样得到2X2的网格,分别是A1,A2,A3和A4点。对点A1,A2,A3和A4进行分析,并把他们存储在一个2X2的虚拟像素网格中。映射函数会把真实图像中的每个虚拟像素变成物理像素,如图2A中的4X4高分辨率网格A1,A2,A3和A4点。为了避免图像失真和伪影,拉伸函数对原始资源的像素B,C和D进行延伸和调整。这些像素被定义为非信息像素(PixelsNotOfInterest,PNOI)。作为PNOI像素,B,C和D没有采取多重采样。这些像素是由位于像素中心的单个采样点进行采样的。每个像素被渲染成新的分辨率,这个实施例里面是两倍分辨率——例如:每个1X1数组转换成2X2的高分辨率数组。因此,拉伸函数必须把每个PONI像素B,C和D分别转换为图2A的4X4数组中指定的2X2像素:B`,B``,B,,B,,,C`,C``,C,,C,,,D`,D``,D,,D,,。根据本发明的一个方面,PONI使用以下方式进行拉伸:每个拉伸的像素等同于它的原始像素,例如:像素B`,B``,B,,B,,是等价于他们的原始像素B的。然而,根据本发明的另一方面,例如,拉伸函数在拉伸像素B时使用的是这样的方式:不是所有的像素B`,B``,B,,B,,都等价于他们的原始像素B,或者甚至他们都不等价于像素B。此外,拉伸函数在处理像素B`,B``,B,,B,,时可能应用不同的规则,因此他们的相似性可能会遍历相同或不同的全排列。拉伸函数可能是一个具有不同参数的函数,这些参数可能会影响其拉伸规则。根据本发明的这方面的一个实施例,一个拉伸函数,还可以作为反锯齿函数,应用于POI和PNOI之间的边界区域。在这个实施例中,当需要考虑邻近像素A2特征的规则的时候,拉伸函数可能会渲染像素B`。根据另外一个规则制度,当考虑像素的二级联系(aseconddegreeofcontact),如像素A3,甚至是三级联系(athirddegreeofcontact),如像素A1的时候,可能会渲染像素B`。具有不同级别联系的至少2个像素的串之间的关系能够通过分析,用于确定和保持图像的梯度或趋势,也可能基于空间语境被分解成拉伸函数,影响任何非信息的新像素的渲染特征。对于本发明的这一方面,本领域技术人员公知的非限定性的用于插值的方法包括近邻,双线性,Lanczos,B样条,Mitchel或高斯方法。
图2B表示的是另一个实施例,其具有3D资源,与图2A中的实施例类似,然而,在图2B这个实施例中,像素B被定义为POI,而像素A、C和D为PNOI。在这种情况下,3D资源的原始分辨率是2X2X2,选择的渲染分辨率是4X4X4。值得一提的是,本发明的任何方面都可以由不同的处理单元如GPU或CPU控制和实施。因此,为了改善或优化用户体验因素,这项发明可以应用于渲染后缓冲区;和/或为了分析资源特性或帧特性,可以通过对任何缓冲区的渲染,从而识别遮挡或其他因素。它可以对屏幕外缓冲区进行渲染,这个缓冲区有各种各样的用途,其中一个非限制的实施例是深度图,它从光线的角度来渲染场景,并且允许为最终图像添加阴影。另一个非限制性实施例是HDR效应,为了存储每个像素的大量信息,它用到了多个屏幕外缓冲区,通过后期处理生成最终场景图像。现在回到遮挡识别的实施例,通过了解哪些像素被遮挡,空间分辨率修改器可以更好地处理和优化系统资源,没有必要再对他们投入额外的计算。分析资源或帧特征的时候,可以将帧的资源渲染到任意缓冲区,例如,可以基于具有较低分辨率的本机应用程序分辨率来完成遮挡计算。在任何案例中,本发明在选择POI和PNOI的方面,为了提高由GPU、CPU或其他专用的图形处理单元完成的遮挡检测效果,可以采用能够获取更多像素信息的多重采样POI并且通过较高的分辨率进行渲染来实现。
如上所述,对每个采样点来说,为了收集和分析与采样点相关的元数据,该系统要解析或计算全部或部分像素(至少是在采样点的位置)的命令流和着色器流,而在其他情况下,只有部分命令流或着色器流(如果有的话)必须要解决。
为了增加用于生成图像的一个像素子组的分辨率,系统会选择性地投入计算和其他资源,因此发明的一个方面允许动态的和即时的管理资源,从而与其他用户体验影响因素结合在一起,以此保持整体用户体验高于预定义的阈值。
根据本发明的另一个方面,如图3所示,第一个采样网格用于分析资源的像素内的一个或多个区域,而第二个采样网格用于收集渲染所需的元数据。为了使多个采样点从一个单一像素渲染成一组像素,同时保持图像的完整性,在采样点及其相关渲染像素之间,必须有一个直接的几何和空间关系。根据这个实施例,第一个2X2采样网格相对于原始像素的主X轴和Y轴旋转了45°。因此,如果将这些旋转过的采样点直接渲染到2X2物理像素的直线阵列所在的最终图像中,将会造成图像的失真。然而,在某些情况下,为了分析像素,使用旋转的网格或其他网格,能够更好的测量像素的特性。然而,如上所述,当以较高的分辨率渲染像素的时候,这些信息可能是不够好的。因此,根据本发明的一个方面,系统用样本点的第一网格分析像素,然后使用样本点的第二网格收集信息,至少实现部分像素的渲染。图4中展示了这一过程的流程图。这只是著名的MSAA技术在本发明中应用和相结合的一个实施例。图3A就是上述结合的另一个实施例,其中块A`中显示了旋转的2X2的采样点阵列。根据本发明的这个实施例,使用这样的一个数组,首先为了采集一个像素样本,以达到使用公知的MSAA2X2方法来实现反锯齿的目的,第二,利用从采样点收集到的信息创建一个虚拟像素,然后通过空间分辨率系统来提高原始像素的分辨率,并将虚拟像素渲染成一个真正的像素。图3A中的块B`描述了另一个非限制性的实施例,它展示了另一种方式,采用公知的MSAA2X2直接采样阵列来应用新的空间分辨率系统。正如前面的实施例,第一个采样数据点被用于训练抗锯齿,然后使用相同的数据点创建一个虚拟像素,它可以被渲染成一个物理像素,以提高原始像素的分辨率。图3A中的块C`描述的是另一个非限制性的实施例:如何利用抗锯齿方法整合和实践目前的发明。在这个实施例中,有一个顶层的2X2采样点的直线阵列,而每个采样点由2X2采样点的另一子阵列的旋转子层采样阵列组成。根据这个实施例,正如该领域技术人员所熟悉的那样,所有采样点都能够用于抗锯齿,而每个采样点的旋转子级子阵列可以被平均,或者是被计算或被使用,以创建一个虚拟通用采样点作为顶层直线网格的一部分。如上所述,这样一个直线网格的通用采样点可以被用来创建一个虚拟像素,它能够渲染成一个物理像素以增强原始像素的分辨率。值得一提的是,可以将许多其他的阵列和子阵列组合起来,一、二、三或更多层的子阵列中每一个都可能有不同的采样点数量和空间分布。为了把采样点的子阵列转换成虚拟通用采样点,可以采用不同的方法。此外,与本发明的某些方面相关的空间分辨率系统可以应用一些公知的抗锯齿方法,比如超级采样法或其他的方法。
现在参照图5。作为本发明的主题,空间分辨率控制器可以在基于计算机的CPU和相关GPU的本地图形应用程序上运行,并能够在两者之间无缝的、动态的切换。本发明的一个方面是建立用户体验的最小阈值,并保持用户体验处于上述阈值之上。由于用户体验是上述多个参数所确定的因素,根据本发明的一个方面,系统可以在权衡各个参数时,动态地、根据实际情况改变其中至少一部分参数。在这个过程中,例如,该系统可以提高帧速率,同时降低分辨率。由于本机应用程序执行了应用程序的整个生态系统和/或应用程序运行的硬件环境可能会改变,为了在这样一个不断变化和苛刻的环境中优化用户体验,控制器可能会做出不同的决定。图5显示了原始帧中的一个资源将要在下一帧中进行渲染的实施例。这可能是该资源比其在以前的应用程序中使用了更高的分辨率,并且系统选择了减少分辨率。这个信息现在已丢失。这样的选择有可能是为了增加帧速率或消耗更少的电量。现在,系统需要重新调整这个资源以适应新的帧比例。正如本领域技术人员所知的以及在分辨率控制应用中所披露的,有多种方法可以将资源延展到更大的规模。这通常会降低资源的图像质量,可能会伤害整体用户体验。本发明在此方面采取了检测、多次采样、用更高分辨率渲染信息点这种方式,在动态的分辨率处理过程中延展资源。在这种方式中,系统可能会在边缘、明亮区域、向前方向等关键区域投入一些处理成本,以保持或改善整体用户体验处于用户体验集定义的阈值范围之内。
现在参照图6,在所述实施例中,前一帧中的资源可能在下一帧中进行渲染。与图5中的实施例不同,本例没有使用分辨率控制应用中所披露的动态分辨率算法。相反,在这个实施例中,原始资源的整体分辨率与其在新帧中渲染的整体分辨率是相等的。对于这个实施例,资源的整体分辨率是由对整个帧或者资源可用的全部像素中,资源所消耗的相关像素数量来定义的。在这个实施例中,由于屏幕上所有可用像素的数目是相等的,资源在前一帧和下一帧之间的物理尺寸没有变化。然而,根据本发明的这一方面,资源里的空间分辨率在不同区域之间可能是不同。基于本发明的这方面,系统可以将资源的整体分辨率保持不变(没有使用动态分辨率算法)。然而,该系统可能会以更高的分辨率来渲染某些信息区域(areasofinterest)。为了保持资源的整体分辨率一致,系统还需要用类似的比例将其他区域的分辨率降低。在资源上的像素预算计算和补偿之间的零和博弈可以通过资源基础,或一组资源基础,或整个框架的基础来进行。上述零和(sumzero)像素预算计算和补偿的边界可以由任何数量或组合的用户体验因素及其最小值,或由其最大值,或由需要的或允许的值或范围来定义。上述范围的值可能由空间分辨率控制器,或由用户,或程序员通过控制面板来定义,这将作为本发明的另一个方面在下文进一步描述。
现在转到图7A,7B,8A和8B,这些图展示了使用原生高分辨率,动态分辨率和空间分辨率进行图像操作的示范性比较结果,其中空间分辨率是本发明的主题。如图7A和7B,高分辨率的图像相对的显示了“尖锐”边102以及小的“阶梯”104。采用动态分辨率算法处理这一图片的结果如图7B所示,其中边缘106比较模糊,“阶梯”108的数目也比图7A中相对的阶梯104要少。
现在转到图8A和8B。与图7A相似,图8A是原生高分辨率的结果。另一方面,图8B显示了使用本发明的空间分辨率算法处理图像的结果。值得注意的是,边缘110如图8A中一样尖锐,“阶梯”112的数目也与图8A相同。生动直观地说明了使用本发明所述空间分辨率算法的益处。
本发明的另一方面是使用以下描述的、由GPU将资源或者帧渲染到任意帧缓冲区或者直接显示的一个元件或任何元件组合,采用能够处理图形的CPU、或任何通用处理器、或专用处理器来渲染任何帧缓冲区或显示,例如专用于处理光线追踪或路径跟踪的处理器,或被配置为可以进行这种处理的任何处理器。本发明的另一方面是由多个处理器,如CPU,GPU,或者不同的组合方式进行处理,无论它们是独立或集成处理器。
本发明所述的发明可以由计算机程序在通用计算机上实现,可以设想,该发明旨在由不同的软件、固件或硬件的组合来实现,例如,用户界面和/或控制面板,并将其设计为使用图形系统的最终用户或使用图形系统的开发人员,或两者兼备。根据一个非限制性的实施例,本发明在下文展示了一个使用并修改由DirectX进行渲染的API的实施例。在这个实施例中的本地应用程序可以使用DirectXAPI,DirectX运行时会与GPU厂商(如NVIDIA或AMD)提供的驱动模块交流。在多重采样抗锯齿(MSAA)算法的D3D11_TEXTURE2D_DESC命令发送到CreateTexture2D()函数时,会包括SampleDesc类型的变量。这种SampleDesc类型包括两个参数:计数–定义每个像素的样本数量,质量–控制由供应商定义的其他行为确定,如不同的采样模式。根据本发明在下文所述的另一个非限制的实施例,一个本地应用程序使用OpenGLAPI,通常是通过一个非常薄的层,只是简单的对GPU厂商提供的驱动程序调用进行了重定向。新的功能可以通过添加OpenGL/GLES扩展包而添加到GPU。开发人员可以通过专用接口请求和调用,最终用户也可以通过专用接口修改、定义或控制这种可支持的扩展。本发明所述的非限制方法和实施例可以在全部或部分范围内进行改变或组合。
实施例A:
在DXGI_SAMPLE_DESC类型的上层,CreateTexture2D函数也会接受到一个新参数,DXGI_SPATIAL_SAMPLE_DESC类型如下所述:
typedefstructDXGI_SPATIAL_SAMPLE_DESC{
UINTCount;//记录样本数目
UINTPoiType;//每个数字表示要使用哪一种POI(几何边,用户提供包含POI信息的矩阵,等)
}DXGI_SPATIAL_SAMPLE_DESC;
实施例B:
将DXGI_SAMPLE_DESC类型扩展为:
typedefstructDXGI_SAMPLE_DESC{
UINTCount;
UINTQuality;
//
UINTSpatial_Count;//0为默认值,1代表关闭空间分辨率
UINTPoiType;//忽略上述值设置
}DXGI_SAMPLE_DESC;
选项C:
添加一种特殊格式,能够使用特殊分辨率:
CreateTexture2D(…,format=0xFFDD,…)
0xFFDD指的是使用特殊分辨率
更多的非限制性实施例如下所示,这些实施例是将本发明应用在在支持所有桌面操作系统的OpenGL中或是支持移动设备操作系统(Android或iPhone等)的GLES中。众所周知,对本领域技术人员,下面的实施例是将公知的抗锯齿算法(如MSAA)应用在OpenGL环境:
glGenTextures(1,&tex);
glBindTexture(GL_TEXTURE_2D_MULTISAMPLE,tex);
glTexImage2DMultisample(GL_TEXTURE_2D_MULTISAMPLE,num_samples,GL_RGBA8,
width,height,false);
以下是在OpenGL/GLES环境中应用空间分辨率系统的两个非限制性实施例,这是本发明在某些方面的主题:
选项A:
添加另外一个参数到glTexImage2DMultisample:
例如,添加另外一个传递空间分辨率请求的样本数量参数。
glTexImage2DMultisample(GL_TEXTURE_2D_MULTISAMPLE,num_samples,
num_spatial_samples,poi_type,GL_RGBA8,width,height,false);
类似的,使用glTextImage2D函数,这是不使用MSAA的版本。glTextImage2D函数将会变为:
glTexImage2D(GL_TEXTURE_2D,0,num_spatial_samples,poi_type,GL_RGBA8,width,height,…);
选项B:
添加另外一个函数,用来定义当前区域纹理的空间分辨率。
glGenTextures(1,&tex);
glBindTexture(GL_TEXTURE_2D_MULTISAMPLE,tex);
glTexImage2D(GL_TEXTURE_2D,0,GL_RGBA8,width,height,…);
glSpatialResolution(sample_count,poi_method);
另外一个实施例,将这个理论方法与MSAA结合在一起:
glGenTextures(1,&tex);
glBindTexture(GL_TEXTURE_2D_MULTISAMPLE,tex);
glTexImage2DMultisample(GL_TEXTURE_2D_MULTISAMPLE,num_samples,GL_RGBA8,
width,height,false);
glSpatialResolution(sample_count,poi_method);
其他的开发者级别的控制方法可采用通用选项的API,例如:
EnableSpatialResolution(sample_count,poi_method);
DisablePatialResolution()
如上所述,本发明的另一方面也能生成控制面板或用户界面并且使之生效,控制面板或用户界面可以通过本地应用程序或通过GPU图形用户界面来控制激活、或注销、或任何与空间分辨率系统的功能或操作有关的参数。这样的控制面板或用户接口可以让图形应用程序的程序员、开发者、最终用户实现下列功能:启用或禁用一个空间分辨率系统,选择POI或POI的类型,选择的采样点的数量或范围,选择所选的采样点的空间分布,采样点所使用的数组或子数组的数目,以及任何上述数组或子数组的方向。除了空间分辨率参数,这样的控制面板或用户界面可以提供对其他参数的访问控制。例如,用户可以选择一个抗锯齿的首选方法来应用到空间分辨率系统中。此外,这样的控制面板可以做到让使用者选择与整体用户体验相关的任何偏好的参数,或一组参数,或允许的参数范围。根据本发明的另一个方面,空间分辨率系统可以从一个能够收集用户体验因素相关信息的数据采集器得到输入数据,用户体验因素可以由用户选择或由一个自动模块进行动态的调整。这些数据是基于用户体验因素来进行空间分辨率的系统参数优化。
根据本发明的另一实施方案所公开的内容,开发人员或用户界面或控制面板可以通过空间分辨率控制器来激活或注销GPU。上文所述的任何一个或一系列的空间分辨率控制器的参数,都可由开发人员或用户采用这样的接口并通过专用的API来定义。这样的控制和定制过程可以由用户或开发人员用来定义偏好,例如POI的类型,采样点的数量和分布,算法的选择和用此算法进行递归采样的操作范围,虚拟像素到渲染像素(或类似)的转换率。如果由用户完成该操作,最有可能是在一个场景或应用程序级别上完成。如果由开发人员完成,很可能在帧级甚至在一个或一组资源的级别,通过标记GPU来实现。上述两种方案也可以进行任何组合。
所述主题的各种实现可以通过数字电子电路,集成电路,专门设计的ASIC(专用集成电路),计算机硬件,软件,固件,和/或它们的组合来完成。这些不同的实现应当包括一个或多个计算机程序,程序可以在可编程系统上执行和/或解释。所述可编程系统包含至少一个可编程处理器(专用的或通用的),并包含一个用于从处理器接收、传输数据和指令的存储系统,至少一个输入设备,和至少一个输出装置。
这些计算机程序(也被称为程序,软件,软件应用程序或代码)包括机器指令,由可编程的处理器进行处理,并可以使用高级语言和/或面向对象的编程语言,和/或汇编/机器语言来实现。本文所使用的术语“计算机可读介质”,是指任意计算机程序产品,装置和/或设备(例如,磁盘,光盘,存储器,可编程逻辑器件(PLD)),用来向可编程的处理器提供机器指令和/或数据,包括一个通过机器可读信号接收机器指令的机器可读介质。术语“机器可读信号”是指用来向可编程处理器提供机器指令和/或数据的任何信号。
为了与用户交互,所述主题应当在计算机上进行具体实现,计算机应当具有显示装置(例如,CRT(阴极射线管)或LCD(液晶显示)显示器)来为用户显示信息,键盘和指点设备(例如,鼠标或轨迹球)使用户可以给计算机提供输入。其他类型的设备也可用来与用户交互,例如,给用户提供任何形式的感觉反馈(例如,视觉反馈,听觉反馈,或触觉反馈);以任何形式从用户接收输入,包括声学,语音或触觉输入。
所述主题可以在包括后端组件(例如,数据服务器)的计算系统中实现,或者包括中间件组件(例如,应用服务器),或包括前端组件(例如,包含图形用户界面或网络浏览器的客户端计算机,使得用户可以与所述主题的一种实现进行互动),或任何上述后端,中间件或前端组件的组合。系统的组件可以通过任何形式的数字数据通信(例如,通信网络)互连。通信网络包括本地局域网(“LAN”)、广域网(“WAN”)和因特网。
计算系统包括客户端和服务器。客户端和服务器之间一般都是远程的,通常是通过通信网络进行交互的。客户端和服务器之间的关系是凭借在各自计算机上运行的计算机程序而产生的,相互之间是客户端-服务器的关系。
虽然一些变化已经在上文详细描述,其他的修改也是可能的。例如,上述的实施例可被引导到各种组合和所公开特征的子组合和/或组合和上述公开的若干进一步特征的子组合。此外,在附图和本发明中所描述的逻辑流程不要求按照所示的特定顺序,或连续顺序才能达到期望的结果。其他实施例也在以下权利要求的范围之内。

Claims (15)

1.一种图形系统中用于产生输出像素的计算机实现方法,所述方法包括以下步骤:
从图形系统中接收一个或多个输入像素;
对所述一个或多个像素执行渲染操作,所述的渲染包括以下步骤:
选择要增加分辨率的一个或多个信息像素;
定义一个样本网格或者样本方位;
对具有首要分辨率及多重采样点的所述一个或多个信息像素进行多次采样;
从每个样本点处收集信息;
将每个样本点作为虚拟像素来存储其信息;
定义一个或多个像素的分辨率,使其保持与从图形系统收到的分辨率一致,或者其分辨率将要被缩减;以及,
在可显示的帧或者画面外的缓冲区,通过将每一个虚拟像素渲染到物理像素中来实现渲染信息像素,以带来比初始分辨率更高的分辨率。
2.根据权利要求1所述的计算机实现方法,进一步包括以下步骤:
在第二分辨率中渲染所述一个或多个像素,其中所述第二分辨率将所述一个或多个像素中的一个或多个渲染成分辨率增加的像素,将所述一个或多个像素中的其余部分渲染成分辨率降低或者不变的像素,使得这些像素的总分辨率等于其首要分辨率;
评估所述第二分辨率中的所述一个或多个像素来形成一个或多个输出像素;以及,
在可显示的帧或者画面外的缓冲区中,显示所述一个或多个输出像素。
3.一种图形系统中用于产生输出像素的计算机实现方法,所述方法包括以下步骤:
从图形系统中接收一个或多个输入像素;
对所述一个或多个像素执行渲染操作,所述的渲染包括以下步骤:
选择信息像素;
定义一个样本点的网格;
执行抽样;
从每个样本点处收集抽样信息;
将每个样本点的抽样信息存储到虚拟像素中;
在像素队列中,将虚拟像素作为单独的像素来渲染。
4.根据权利要求1所述的计算机实现方法,进一步包括以下步骤:
在所述定义步骤之后,收集用户体验因素并为至少一个用户体验因素建立最小阈值,以及,
在所述至少一个阈值的基础上,使用户体验保持在已建立的阈值之上。
5.根据权利要求4所述的计算机实现方法,其中所述用户体验由以下一个或多个因素收集而来:帧速率,发热等级,响应速度,可显示帧的等级,画面外缓冲区的等级,以及电源等级。
6.一种图形系统中用于产生输出像素的计算机实现方法,所述方法包括以下步骤:
从图形系统中接收一个或多个输入像素;
对所述一个或多个像素执行渲染操作,所述的渲染包括以下步骤:
定义一个或多个像素的样本点的第一网格;
在所述样本点的第一网格中对所述一个或多个像素取样;
定义一个或多个像素的样本点的第二网格;
在所述样本点的第二网格中对所述一个或多个像素取样;
分析所述样本点的第一网格及样本点的第二网格的一个或多个像素,以便接收元数据来进行渲染;以及,
根据权利要求4的步骤来渲染所述一个或多个像素。
7.根据权利要求6所述的计算机实现方法,进一步包括以下步骤:在对所述样本点的第一网格进行取样之前,旋转样本点的第一网格。
8.根据权利要求7所述的计算机实现方法,其中所述的旋转步骤是将第一网格旋转小于90°,优选为大约45°。
9.一种图形系统中用于产生输出像素的计算机实现方法,所述方法包括以下步骤:
从图形系统中接收一个或多个输入像素;
对所述一个或多个像素执行渲染操作,所述的渲染包括以下步骤:
选择要增加分辨率的一个或多个信息像素;
定义一个样本网格或者样本方位;
对具有首要分辨率及多重采样点的一个或多个信息像素进行多次采样;
从每个样本点处收集信息;
将每个样本点作为虚拟像素来存储其信息;
定义一个或多个非信息像素;
从一个单独样本点中对一个或多个非信息像素单独取样;以及,
在可显示的帧或者画面外的缓冲区,通过将每一个虚拟像素渲染到物理像素中来实现渲染一个或多个信息像素,以带来比首要分辨率更高的分辨率。
10.根据权利要求9所述的计算机实现方法,进一步包括将一个或多个非信息像素扩展到有更高分辨率的多个信息像素中,使得每个非信息像素都能够复制到与其原像素一样的物理像素中。
11.根据权利要求9所述的计算机实现方法,进一步包括将一个或多个非信息像素扩展到有更高分辨率的多个信息像素中,使得至少一个非信息像素能够通过反锯齿算法转化为与其原像素不同的物理像素。
12.根据权利要求11所述的计算机实现方法,其中所述的反锯齿算法包括下述中一个或多个算法:最近邻居算法(nearestneighbor),双线性算法,Lanczos算法,B样条算法,Mitchel算法或者高斯方法。
13.根据权利要求12所述的计算机实现方法,其中所述的反锯齿算法考虑了临近的信息像素。
14.一个非闪存计算机可读介质,其上存储程序,使得图像处理单元(GPU)执行图像处理,所述的处理包括在一个或多个像素上执行渲染操作,所述的渲染包括以下步骤:
从图形系统中接收一个或多个输入像素;
对所述一个或多个像素执行渲染操作,所述的渲染包括以下步骤:
选择要增加分辨率的一个或多个信息像素;
定义一个样本网格或者样本方位;
对具有首要分辨率及多重采样点的所述一个或多个信息像素进行多次采样;
从每个样本点处收集信息;
将每个样本点作为虚拟像素来存储其信息;
定义一个或多个像素的分辨率,使其保持与从图形系统收到的分辨率一致,或者其分辨率将要被缩减;以及,
在可显示的帧或者画面外的缓冲区,通过将每一个虚拟像素渲染到物理像素中来实现渲染信息像素,以带来比初始分辨率更高的分辨率。
15.一个用于处理图形内容的系统,所述系统包括:
可提供一个或多个像素的图形处理单元(GPU);
非闪存的存储器,当其从图形处理单元接收到一个或多个像素时,其包含处理所述一个或多个像素产生一个或多个输出像素的指令;
所述的指令在所述一个或多个像素上执行渲染操作,所述的渲染包括如下步骤:
选择要增加分辨率的一个或多个信息像素;
定义一个样本网格或者样本方位;
对具有首要分辨率及多重采样点的一个或多个信息像素进行多次采样;
从每个样本点处收集信息;
将每个样本点作为虚拟像素来存储其信息;
定义一个或多个像素的分辨率,使其保持与从图形系统收到的分辨率一致,或者其分辨率将要被缩减;以及,
在可显示的帧或者画面外的缓冲区,通过将每一个虚拟像素渲染到物理像素中来实现渲染信息像素,以带来比首要分辨率更高的分辨率。
CN201510930963.6A 2015-01-14 2015-12-15 用于在计算机系统中控制空间分辨率的方法和装置 Active CN105787875B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/596,309 US9508121B2 (en) 2015-01-14 2015-01-14 Method and apparatus for controlling spatial resolution in a computer system by rendering virtual pixel into physical pixel
US14/596,309 2015-01-14

Publications (2)

Publication Number Publication Date
CN105787875A true CN105787875A (zh) 2016-07-20
CN105787875B CN105787875B (zh) 2019-03-19

Family

ID=56367881

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510930963.6A Active CN105787875B (zh) 2015-01-14 2015-12-15 用于在计算机系统中控制空间分辨率的方法和装置

Country Status (2)

Country Link
US (2) US9508121B2 (zh)
CN (1) CN105787875B (zh)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110300990A (zh) * 2017-03-01 2019-10-01 索尼互动娱乐股份有限公司 在正绘制的图像中进行抗混叠
CN110390714A (zh) * 2018-04-16 2019-10-29 脸谱科技有限责任公司 用于渲染凹形效果的系统、方法和非暂时性存储介质
CN111133475A (zh) * 2017-09-29 2020-05-08 苹果公司 具有可配置变换参数的多空间渲染
CN111292236A (zh) * 2018-12-06 2020-06-16 托比股份公司 使用交叉分辨率调整而减少中央凹注视渲染中的混叠伪像
CN111429566A (zh) * 2020-03-20 2020-07-17 广东三维家信息科技有限公司 虚拟家装场景的重建方法、装置及电子设备
CN111507462A (zh) * 2020-04-15 2020-08-07 华中科技大学鄂州工业技术研究院 一种端对端的三维医学图像超分辨率重建方法及系统
CN112041896A (zh) * 2018-04-13 2020-12-04 高通股份有限公司 在图形内容的注视点渲染中保存样点数据
CN112258412A (zh) * 2020-10-22 2021-01-22 浙江大学 基于定义域和值域的卷积近似的着色器自动滤波方法、装置和系统
CN115908667A (zh) * 2021-09-30 2023-04-04 想象技术有限公司 渲染3d场景的图像
US12026855B2 (en) 2021-09-30 2024-07-02 Imagination Technologies Limited Rendering an image of a 3-D scene

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102444240B1 (ko) * 2015-07-29 2022-09-16 삼성전자주식회사 텍스쳐 처리 방법 및 장치
US10748244B2 (en) * 2017-06-09 2020-08-18 Samsung Electronics Co., Ltd. Systems and methods for stereo content detection
US10411798B2 (en) * 2017-07-13 2019-09-10 Qualcomm Incorporated Power optimized VLC signal processing with efficient handling of ISP/VFE
CN107545595B (zh) * 2017-08-16 2021-05-28 歌尔光学科技有限公司 一种vr场景处理方法及vr设备
WO2023108619A1 (en) * 2021-12-17 2023-06-22 Qualcomm Incorporated Physical subsampled rgb format subpixel tile render system and method
CN116777739A (zh) * 2022-03-10 2023-09-19 腾讯科技(深圳)有限公司 图像处理方法、游戏渲染方法、装置、设备及存储介质

Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020075379A1 (en) * 2000-12-15 2002-06-20 Xerox Corporation Macro uniformity correction for x-y separable non-uniformity
US6833835B1 (en) * 1999-05-20 2004-12-21 Siemens Ag Method and apparatus for antialiased imaging of graphical objects
US7054029B1 (en) * 1999-03-09 2006-05-30 Canon Kabushiki Kaisha Image processing apparatus and method, and storage medium
US20070229503A1 (en) * 2006-03-30 2007-10-04 Ati Technologies Method of and system for non-uniform image enhancement
US20090079747A1 (en) * 2006-05-12 2009-03-26 Nvidia Corporation Distributed Antialiasing In A Multiprocessor Graphics System
CN101558426A (zh) * 2006-12-15 2009-10-14 高通股份有限公司 后渲染图形缩放
CN101646032A (zh) * 2008-08-04 2010-02-10 株式会社东芝 图像处理设备及图像处理方法
CN102129666A (zh) * 2010-12-31 2011-07-20 华亚微电子(上海)有限公司 图像缩放方法及装置
US20120001913A1 (en) * 2010-07-01 2012-01-05 Samsung Electronics Co., Ltd Computer system and control method thereof
CN102405638A (zh) * 2009-04-20 2012-04-04 富士胶片株式会社 图像处理装置、图像处理方法以及计算机可读介质
CN102915521A (zh) * 2012-08-30 2013-02-06 中兴通讯股份有限公司 一种移动终端图像处理方法及装置
US20130176322A1 (en) * 2008-08-20 2013-07-11 Reuven Bakalash Application-transparent resolution control by way of command stream interception
CN103714537A (zh) * 2013-12-19 2014-04-09 武汉理工大学 一种图像显著性的检测方法

Patent Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7054029B1 (en) * 1999-03-09 2006-05-30 Canon Kabushiki Kaisha Image processing apparatus and method, and storage medium
US6833835B1 (en) * 1999-05-20 2004-12-21 Siemens Ag Method and apparatus for antialiased imaging of graphical objects
US20020075379A1 (en) * 2000-12-15 2002-06-20 Xerox Corporation Macro uniformity correction for x-y separable non-uniformity
US20070229503A1 (en) * 2006-03-30 2007-10-04 Ati Technologies Method of and system for non-uniform image enhancement
US20090079747A1 (en) * 2006-05-12 2009-03-26 Nvidia Corporation Distributed Antialiasing In A Multiprocessor Graphics System
CN101558426A (zh) * 2006-12-15 2009-10-14 高通股份有限公司 后渲染图形缩放
CN101646032A (zh) * 2008-08-04 2010-02-10 株式会社东芝 图像处理设备及图像处理方法
US20130176322A1 (en) * 2008-08-20 2013-07-11 Reuven Bakalash Application-transparent resolution control by way of command stream interception
CN102405638A (zh) * 2009-04-20 2012-04-04 富士胶片株式会社 图像处理装置、图像处理方法以及计算机可读介质
US20120001913A1 (en) * 2010-07-01 2012-01-05 Samsung Electronics Co., Ltd Computer system and control method thereof
CN102129666A (zh) * 2010-12-31 2011-07-20 华亚微电子(上海)有限公司 图像缩放方法及装置
CN102915521A (zh) * 2012-08-30 2013-02-06 中兴通讯股份有限公司 一种移动终端图像处理方法及装置
CN103714537A (zh) * 2013-12-19 2014-04-09 武汉理工大学 一种图像显著性的检测方法

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110300990A (zh) * 2017-03-01 2019-10-01 索尼互动娱乐股份有限公司 在正绘制的图像中进行抗混叠
CN111133475A (zh) * 2017-09-29 2020-05-08 苹果公司 具有可配置变换参数的多空间渲染
CN111133475B (zh) * 2017-09-29 2023-11-07 苹果公司 用于渲染图形对象的装置和方法
CN112041896A (zh) * 2018-04-13 2020-12-04 高通股份有限公司 在图形内容的注视点渲染中保存样点数据
CN110390714A (zh) * 2018-04-16 2019-10-29 脸谱科技有限责任公司 用于渲染凹形效果的系统、方法和非暂时性存储介质
CN111292236A (zh) * 2018-12-06 2020-06-16 托比股份公司 使用交叉分辨率调整而减少中央凹注视渲染中的混叠伪像
CN111292236B (zh) * 2018-12-06 2023-09-15 托比股份公司 一种减少中央凹注视渲染中的混叠伪像的方法和计算系统
CN111429566A (zh) * 2020-03-20 2020-07-17 广东三维家信息科技有限公司 虚拟家装场景的重建方法、装置及电子设备
CN111429566B (zh) * 2020-03-20 2024-01-30 广东三维家信息科技有限公司 虚拟家装场景的重建方法、装置及电子设备
CN111507462A (zh) * 2020-04-15 2020-08-07 华中科技大学鄂州工业技术研究院 一种端对端的三维医学图像超分辨率重建方法及系统
CN111507462B (zh) * 2020-04-15 2022-05-10 华中科技大学鄂州工业技术研究院 一种端对端的三维医学图像超分辨率重建方法及系统
CN112258412A (zh) * 2020-10-22 2021-01-22 浙江大学 基于定义域和值域的卷积近似的着色器自动滤波方法、装置和系统
CN115908667A (zh) * 2021-09-30 2023-04-04 想象技术有限公司 渲染3d场景的图像
US12026855B2 (en) 2021-09-30 2024-07-02 Imagination Technologies Limited Rendering an image of a 3-D scene

Also Published As

Publication number Publication date
CN105787875B (zh) 2019-03-19
US20160203583A1 (en) 2016-07-14
US20170046811A1 (en) 2017-02-16
US9508121B2 (en) 2016-11-29

Similar Documents

Publication Publication Date Title
CN105787875A (zh) 用于在计算机系统中控制空间分辨率的方法和装置
US20230334761A1 (en) Foveated Rendering
JP6910130B2 (ja) 3dレンダリング方法及び3dレンダリング装置
CN106204712B (zh) 分段线性不规则光栅化
KR101286318B1 (ko) 렌더링된 그래픽 엘리먼트들을 위한 성능 메트릭들의 시각적 표현의 디스플레이
US10262454B2 (en) Image processing apparatus and method
US8970580B2 (en) Method, apparatus and computer-readable medium rendering three-dimensional (3D) graphics
JP6749151B2 (ja) グラフィックスパイプラインを遂行する方法及びその装置
CN110383337A (zh) 可变速率着色
US9536282B2 (en) Method and apparatus for controlling spatial resolution in a computer system
KR20140023386A (ko) 그래픽 프로세싱 유닛들에서의 렌더링 모드 선택
US10388063B2 (en) Variable rate shading based on temporal reprojection
KR101993941B1 (ko) 안티앨리어싱 기법을 이용하여 텍스트를 렌더링하기 위한 커버리지 값의 캐싱 기법
US10776996B2 (en) Method and apparatus for processing image
Franke et al. Time‐Warped Foveated Rendering for Virtual Reality Headsets
CN111986304A (zh) 使用射线追踪和光栅化的结合来渲染场景
US10261306B2 (en) Method to be carried out when operating a microscope and microscope
Wahle et al. Multi-scale visualization of molecular architecture using real-time ambient occlusion in sculptor
KR20160103926A (ko) 그림자 렌더링 방법 및 그림자 렌더링 장치
US11804011B2 (en) Method and apparatus for interactive volumetric visualization
CN106815800B (zh) 用于在计算机系统中控制空间分辨率的方法和装置
US6927775B2 (en) Parallel box filtering through reuse of existing circular filter
Rosu et al. EasyPBR: A lightweight physically-based renderer
Mora et al. Visualization and computer graphics on isotropically emissive volumetric displays
Roth et al. Guided high-quality rendering

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20180808

Address after: American California

Applicant after: Google limited liability company

Address before: Israeli nanitania

Applicant before: LUCIDLOGIX TECHNOLOGIES LTD.

GR01 Patent grant
GR01 Patent grant