CN106886974B - 图像加速器设备及相关方法 - Google Patents
图像加速器设备及相关方法 Download PDFInfo
- Publication number
- CN106886974B CN106886974B CN201610905042.9A CN201610905042A CN106886974B CN 106886974 B CN106886974 B CN 106886974B CN 201610905042 A CN201610905042 A CN 201610905042A CN 106886974 B CN106886974 B CN 106886974B
- Authority
- CN
- China
- Prior art keywords
- image
- memory
- module
- pixels
- pixel
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/005—General purpose rendering architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2200/00—Indexing scheme for image data processing or generation, in general
- G06T2200/28—Indexing scheme for image data processing or generation, in general involving image processing hardware
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Graphics (AREA)
- Image Generation (AREA)
- Image Processing (AREA)
- Controls And Circuits For Display Device (AREA)
Abstract
本发明提供一种图像加速器设备及相关方法。该图像加速设备包含:光栅化模块,光栅化第一组图元成为第一组像素并产生第一组像素的信息;进程内模块,根据从光栅化模块接收的信息从存储器获取像素值,对像素值执行数学计算,并产生一个或多个处理的图像层;以及进程间模块,合成从进程内模块接收的该一个或多个处理的图像层与从存储器接收的其他图像层,并输出合成图像给显示。本发明所提出的图像加速器设备及相关方法使得图像渲染的流程能更顺畅,而且能大幅减少甚至完全避免丢帧情况。
Description
技术领域
本发明有关于一种图像处理系统;更具体地,是关于一个硬件加速器,其用于加速图像的渲染及合成。
背景技术
在计算机图像领域,渲染是指将图像对象或模型的描述在显示设备上生成图像的过程。图像处理单元(graphics processing unit,GPU)渲染2D及3D图像对象成为图像元素(像素),2D及3D图像对象通常由一些例如是点、线、多面体以及更高阶多面体的图元(primitive)的合成表示。
GPU一般包含用于渲染操作的渲染流水线。渲染流水线包含下列主要阶段:(1)顶点处理(vertex processing),处理及转变顶点(用于描述图元)为投射空间(projectionspace),(2)光栅化(rasterization),这将每个图元转化为一组像素,并与显示器的像素格(pixel grid)对齐,其包含位置,颜色,普通(norma)及纹理(texture)等属性,(3)片断处理(fragment processing),处理每一组像素,以及(4)输出处理,将所有图元的像素合成进2d显示空间。
现在的移动设备一般都有先进的图像能力。流行的移动操作系统包含AndroidTM,iOSTM,等等。这些操作系统支持各种2D及3D图像的图像应用程序接口(Application Programming Interfaces,APIs)。在一个移动设备中,图像产生器处理(例如GPU),用来处理2D及3D图像API发出的图像命令来产生图像。显示的图像(即一帧)可以是多个图像产生器的结果,每个图像产生器产生一层或多层图像,例如桌面图像,状态栏,系统用户接口(UI)。每个图像产生器将产生的图像层(也被称作表面)给图像缓存。合成功能,例如AndroidTM中的SurfaceFlinger用来将从图像缓存来的多个图像层合成为一帧来显示。
在传统的图像系统中,GPU不仅产生图像而且还支持图像合成的操作。在一些情况下,合成操作会占用大量GPU资源,而无法进行图像产生任务。举例来说,当启动一个视频游戏时,旋转屏幕、跳到上一帧、或其他时间急迫而计算复杂的图像处理发生时,GPU可被调用来执行图像合成。因为显示屏幕具有一个固定刷新频率(例如60Hz),其由周期性的VSYNC信号决定,一个高负载的GPU可能无法保持刷新速度而造成丢帧。因此,需要消化GPU的负荷并提升图像渲染性能。
因此,在这样的低成本设备上提供一个经济的运行环境成为硬件与软件开发者的挑战。
发明内容
因此,本发明为了减少移动设备上的GPU的负荷并提升图像渲染性能特提供以下实施例。
本发明的一方面提供一种图像加速器设备,包含:光栅化模块,光栅化第一组图元成为第一组像素并产生该第一组像素的信息;进程内模块,根据从该光栅化模块接收的该信息从存储器获取像素值,对该像素值执行数学计算,并产生一个或多个处理的图像层;以及进程间模块,合成从该进程内模块接收的该一个或多个处理的图像层与从该存储器接收的其他图像层,并输出合成图像给显示。
本发明另一方面提供一种图像加速方法,该方法包含:光栅化第一组图元成为第一组像素并产生该第一组像素的信息;根据接收的该信息从存储器获取像素值;对该像素值执行数学计算来产生一个或多个处理的图像层;合成接收的该一个或多个处理的图像层与从该存储器接收的其他图像层,并输出合成图像给显示。
本发明所提出的图像加速器设备及相关方法使得图像渲染的流程能更顺畅,而且能大幅减少甚至完全避免丢帧情况。
本发明的这些及其他的目的对于本领域的技术人员来说,在阅读了下述优选实施例的详细说明以后是很容易理解和明白的,所述优选实施例通过多幅图予以揭示。
附图说明
图1显示根据本发明一实施例的系统100的示意图。
图2是根据本发明一实施例的显示加速器180与其他系统组件交互的示意图。
图3显示根据本发明一实施例的加速器180的示意图。
图4显示根据本发明另一实施例的加速器180的示意图。
图5显示根据本发明的另一实施例的加速器180的示意图。
图6显示根据本发明一实施例的加速器180所执行方法600的流程图。
具体实施方式
本说明书及权利要求书使用了某些词语代指特定的组件。本领域的技术人员可理解的是,制造商可能使用不同的名称代指同一组件。本文件不通过名字的差别,而通过功能的差别来区分组件。在以下的说明书和权利要求书中,词语“包括”是开放式的,因此其应理解为“包括,但不限于...”。
本发明的实施例提供一个加速图像渲染操作的系统、设备及方法。该系统包含CPU,GPU以及硬件图像加速器(也被称作“图像加速器设备”或“加速器”),以及其他组件。加速器具有比GPU小的尺寸并消耗比GPU小的电源。加速器能工作于多个操作模式,包含但不限于:合成模式、渲染模式以及虚拟现实模式。在合成模式内,加速器合成多个图像产生器产生的图像层。合成图像发到显示设备来显示。如前所述,使用GPU来执行图像合成不仅引起大量的余量(overhead)而且也占用了GPU大量资源,使这些资源不能执行渲染任务。相反,本发明的加速器包含专用硬件来执行图像合成,且能够高效地执行图像合成。如此,加速器加快了图像处理,使得系统能满足显示帧的时间要求。而且,渲染模式中的加速器能帮助GPU进行图像渲染,并且在虚拟现实模式中,使用GPU渲染的内容来产生时间扭曲图像(time-warped images)。因此,GPU的负荷可被减少。
在一个实施例中,当系统根据AndroidTM架构运行时,加速器包含固定的硬件流水线来执行AndroidTM中的SurfaceFlinger与HWComposer操作。虽然AndroidTM架构只是在下文中用作一个例子,需要理解的是加速器的实施例也支持各种不同操作环境中的图像操作及各种硬件显示。
另外,加速器包含硬件来执行一些特别功能,例如合成模式中的图像旋转以及虚拟现实模式中的时间扭曲线程操作。举例来说,图像旋转可在移动设备的使用者旋转他/她的设备屏幕时发生。该旋转即刻发生而且可以是任何角度。加速器可以在任何给定的角度旋转图像层。加速器操作可用最小存储器存取执行,举例来说,加速器可将其输出直接送到显示器,而不需要存取例如DRAM的系统存储器。存储器存取的最小化增强了加速器的整体性能。
在虚拟模式下,加速器包含硬件来执行时间扭曲线程操作。时间扭曲是一种虚拟现实的技术,在发送图像到显示器之前将图像进行扭曲来纠正内容渲染(contentrendering)以后发生的头或眼的移动。在一个实施例中,时间扭曲线程操作可包含色差校正(chromatic aberration correction)以及镜头畸变校正(lens distortioncorrection)以分别校正色度偏差与空间畸变。色度偏差与空间畸变都是由光穿过头戴设备的两个广角镜头产生的光学偏差,其中镜头用来给用户观看显示。空间畸变导致矩形图像有枕形畸变(pin-cushion distortion)。色度偏差导致不同色彩通道有错位(misaligned)。在一个实施例下,加速器可在后处理(post-process)由GPU渲染的图像来校正这些光学偏差。在后处理可包含根据已知数学公式的数学计算以及/或查表。
在渲染模式下,加速器支持GPU的渲染能力的一个子集。举例来说,加速器可根据从图像应用程序接口(API)处的输入来执行操作,这些API是例如用于嵌入式系统(Embedded Systems,GLES)的AndroidTM HWUI以及OpenGL,但是并不支持复杂且高强度计算的运算,例如深度计算(depth calculations)。由HWUI实施的UI物体一般是速度快、有反应且光滑的。GLES是OpenGL图像API的一个子集,用来渲染2D及3D电脑图像。HWUI与GLES一般都是硬件加速的。HWUI与GLES这里的使用并不具限制性。应该理解加速器可根据其他不涉及深度计算的APIs的输入来执行渲染操作。
图1显示根据本发明一实施例的系统100的示意图,其包含CPU 110,GPU 120,以及加速器180。虽然只显示了一个CPU,一个GPU以及一个加速器,需要理解的是,系统100可包含任何数量的CPU,GPU以及加速器,也可以包含任何数量的一般处理器及专用处理器。需要理解的是,为简单起见,其他系统组件在此省略。
在一个实施例中,系统100可用芯片上系统(system-on-a-chip,SoC)实施。在一个实施例中,系统100可以是移动计算及/或通信设备(例如智能手机、平板电脑、以及笔记本等等)的部分。在另一个实施例中,多处理器系统100可为服务器电脑。每个CPU 110可包含多个CPU核心且每个GPU可包含多个GPU核心。在一个实施例中,CPU 110,GPU 120以及加速器180与存储器170(例如DRAM或其他易失性或非易失性随机存取存储器)通信。存储器170包含多个缓存队列,用于给图像产生者及图像消费者传送图像资料给彼此。在一个实施例中,图像产生者包含系统100中的CPU 110,GPU 120,加速器180以及其他图像产生组件,以及图像消费者包含至少该加速器180。
在一个实施例中,CPU 110,GPU 120以及加速器180的每个可产生给显示160的一个或多个图像层。产生的图像层可在由加速器180合成给显示160之前暂时存储在存储器170中。更具体地,CPU110执行一般计算任务,也可执行简单(例如2D)绘画指令来画图像。对于复杂的图像操作,CPU 110可通过一个或多个图像API发出图像命令来让GPU 120运行。GPU 120利用图形命令的指示渲染图像物体到与该显示160像素格对齐的像素。图像物体可包含2D及3D图像物体,而且可由如点、线、多面体以及更高阶表面的图元组合所表示。在一个实施例中,GPU120(更具体地,每个GPU核心)包含着色器硬件(shader hardware),用来执行着色操作,例如顶点着色(vertex shading),片断着色(fragment shading)以及混合(blending)。着色器硬件的一个实施例是一个统一着色器(unified shader),其可被程序化来执行各种着色操作。着色器硬件包含一个算术逻辑单元(arithmetic logic units,ALUs)的阵列,其运行着色器程序中的指令。这些着色器程序可用高级语言所写,例如OpenGL着色语言(OpenGLShading Language,GLSL),Direct3D里的高级着色语言(High-Level Shading Language,HLSL),或者Graphics(Cg)中的C等等。
一个实施例中,在渲染模式下,GPU 120可卸掉一些渲染操作给加速器180。举例来说,对HWUI与GLES的输入执行的除了深度计算的渲染操作。加速器180在合成模式下可对图像层的像素执行数学计算来产生旋转图像,且可将多个图像层合成为一帧来显示。加速器180在虚拟模式下可执行时间扭曲线程操作。在这些操作模式的每个中,加速器180可用最小存储器存取(minimal memory access)和运行具有较高计算效率。在一个实施例中,显示160以一个由周期同步信号(例如VSYNC)标定的固定刷新频率(例如60Hz)显示加速器180来的合成图像。使用加速器180,由VSYNC所定的时间要求能被系统100所满足且最小化丢帧的情况。
如此,加速器180可以是图像产生者也可以是图像消费者。举例来说,加速器180可产生系统UI图像层,也可旋转一个已经产生的图像层。加速器180所产生及/或处理的图像层可由加速器180与其他图像产生者产生的其他图像层一起合成。加速器180根据要求来执行图像产生及/或图像消费操作。举例来说,执行的操作取决于加速器的操作模式,这反过来又取决于系统100及UI输入上所运行的应用。
在一个实施例中,CPU 110运行一个驱动器115,其确定加速器180的操作落模式。举例来说,当加速器180有能力的时候,驱动器115可确定加速器180来辅助GPU 120执行渲染。另一方面,如果180被图像合成、图像旋转或图像扭曲线程操作等任务所占用,驱动器115可确定不用加速器180来执行渲染任务。
在一个实施例中,加速器180并不包含可程序的着色器,也并不包含用来处理3D图像渲染中的深度(即z-buffer)。相反地,为了最大化计算效率,加速器180具有一个固定的硬件流水线来处理例如系统UI、图像合成及图像层处理的图像。于是,加速器180比GPU 120的尺寸小且消耗更少电源。通过卸掉这些较简单的任务给加速器180,GPU120能聚焦在更复杂的3D图像渲染上。因此,图像渲染的流程能更顺畅,而且能大幅减少如果不能完全避免丢帧情况。
图2是根据本发明一实施例的显示加速器180与其他系统组件交互的示意图。在本实施例中,应用App_1,App_2与App_3是三个运行在系统100(图1所示)上的应用,来产生显示160上的图像。App_1是基于超文本标记语言(HyperText Markup Language,HTML)的网页,其使用第一图像API(例如Canvas 230)来绘画2D图像物体。App_1还使用第二图像API(例如GLES 250)来绘画2D及3D图像物体。App_2也可以是另一个网页,其使用第三图像API(例如HWUI 240)来绘画系统UI物体(例如状态栏,菜单项等等)。App_3可以是一个图像应用,其使用GLES 250来产生动画3D图像或视频。一个API可调用另一个API:举例来说,Canvas 230可调用HWUI 240来产生系统UI物体。依靠调用的API的特性,API输入可以由CPU110、GPU 120或加速器180来执行。如上所述并参考图1,加速器180可通过渲染HWUI 240与GLES 250的输入来辅助渲染操作。加速器180也可通过对自己或CPU 110、CPU 120及图像捕捉设备产生的图像进行操作执行后处理,其中图像捕获设备是例如影片解压单元210及照相处理单元220等设备。虽然图2没有显示,但可以理解的是图像数据在CPU 110、CPU120、影片解压单元210、照相处理单元220、加速器180以及图像API 230、240、250之间通过图1中的存储器170中的缓存队列互相传输。
图3显示根据本发明一实施例的加速器180的示意图。在本实施例中,所示加速器180包含在合成模式中操作的硬件。图3中所示的硬件以功能块表示,其中一些可包含重叠的硬件组件。一些功能块可因省略而不显示在图中。需要注意的是,在不同的实施例中,加速器180可包含更少、更多、及/或不同于图3中的功能块。
在本实施例中,合成模式中的加速器180执行图像旋转与图像合成。加速器180使用光栅化模块330来从存储器170获取图元数据。图元数据描述了一个或多个图像层的图元。光栅化模块330将图元光栅化成为像素,并产生输出给进程内模块340。更具体地,光栅化模块330的输出包含像素的信息,其中,除其他事项外,该进程内模块(intra-processmodule)340要处理指定像素的存储器位置。该输出被直接发送到进程内模块340,而不需要经过存储器170。进程内模块340从上述存储器位置获取在同一图像层的像素值,并对这些像素值执行数学运算(例如内插、平均、求和、减法等等)。在一个实施例中,进程内模块340的输出是一个旋转的图像层,其被发送到一个进程间模块(inter-process module)350来进行后续处理。如前所述,加速器180可以用给定角度旋转任何数量的图像层。所说的给定角度可以是从一组角度中在运行时间中被决定或选择出来的角度,这一组角度可包含锐角、钝角与其他包含90°、180°和270°度的多个角度。进程内模块340所执行的数学运算可取决于旋转角度。在另一实施例中,进程内模块340的输出是一个缩放的图像层,其会被发送到进程间模块350来进行后续操作。
在一个实施例中,由进程内模块340获取的像素值可属于CPU 110、GPU 120、加速器180(处于渲染模式)及/或例如影片解压单元210与照相处理单元220的图像捕捉设备所产生的图像层。如果这些图像层可以用图像合成的原样(as is)显示而不需要旋转、缩放或其他特殊的层间处理(即在同一图像层内的处理),然后可以不经过(bypassed)进程内模块340。如果这些图像层在显示前除了图像合成还需要其他操作,进程内模块340用来对这些图像层执行层内操作。在一个实施例中,光栅化模块330通知进程内模块340哪些存储器位置储存的像素值要被用来产生旋转的或缩放的图像层中的像素。接着进程内模块340根据给定的旋转角度或给定的缩放因子的既定数学公式来内插或合成像素值。
举例来说,在收到要旋转显示屏幕的命令时,光栅化模块330可获取要被旋转的每个图像层的图元数据,将这些图元光栅化成为与旋转的显示屏幕对齐的像素,并产生这些像素的信息。当有多个图像层要被旋转,进程内模块340根据光栅化模块330的像素信息,一次对一个图像层执行数学运算,并输出旋转的图像层给进程间模块350。旋转的图像层可一次输出一层,或一次输出一层的一部分。进程间模块350从进程内模块340获取输出,并对旋转的图像层执行图像合成。在一个实施例中,进程间模块350可合成旋转的图像层,在每个层进入的时候合成一层,或者在每个层的一部分进入的时候合成一部分。在一个实施例中,合成的旋转的图像层被发送到显示160。
在一个实施例中,进程间模块350也可根据从光栅化模块330接收的像素位置(即显示屏幕的像素坐标)来从存储器170获取由一个或多个图像层组成一组的像素值。这组图像层可由CPU 110、GPU 120、加速器180(在渲染模式中)及/或例如影片解压单元210与照相处理单元220的图像捕捉设备所产生。在一个实施例中,进程间模块350也可用该组图像层来合成从进程内模块340来的输出图像层,并直接发送合成的图像给显示160而不需要经过存储器170。另外,当进程内模块340没有执行层内操作时,进程间模块350可自己合成该组图像层并发送合成的图像给显示160。
图4显示根据本发明另一实施例的加速器180的功能示意图。在本实施例中,所示加速器180包含在渲染模式下操作的硬件。为了辅助GPU 120来进行图像渲染,在本实施例中,加速器180使用数据准备模块320来从存储器170载入图像API输入。API的例子包含但不限于,HWUI 240及/或GLES 250的输入。在一个实施例中,数据准备模块320包含为快速数据获取而优化的接口,而且能与GPU 120所用的着色器语言互用,例如OpenGL ES着色器语言。
数据准备模块320预处理图像API输入,并输出处理的图元数据给光栅化模块330。由数据准备模块320执行的预处理可包含将图像物体(例如顶点)的图像API描述转换为图元。光栅化模块330将图元数据光栅化为一组与显示160的像素格对齐的像素。光栅化模块330并不执行深度(例如z-buffer)计算。
在一个实施例中,光栅化模块330的输出包含像素的存储器位置,该输出发送给进程内模块340与进程间模块350来进行后续操作。该输出被直接发送到进程内模块340与进程间模块350而不需要经过存储器170。进程内模块340对在同一层中的像素执行数学运算。进程间模块350对不同图像层的像素执行数学运算。进程内模块340与进程间模块350都根据存储器位置从存储器170获取像素值,并对获取的像素值执行数学运算。在一个实施例中,进程内模块340与进程间模块350可执行α混合(alpha-blending),纹理及颜色处理,以及其他渲染操作。进程间模块350可对从进程内模块340输出的像素操作,也可以对从存储器170获取的像素值进行操作。进程间模块350的输出可存储于存储器170以待后续在后处理。举例来说,如图3描述的加速器180执行的图像旋转及/或图像合成。
图5显示加速器180的另一实施例,其中加速器180执行例如时间扭曲线程操作的虚拟现实操作。在本实施例中,所示加速器180包含用来在虚拟现实模式中操作的硬件。在一个实施例中,虚拟现实操作可包含至少两个主要线程:GPU120执行的内容渲染线程(content rendering thread)以及加速器180执行的时间扭曲线程(time-wrappingthread)。时间扭曲线程操作可包含但不限于,位置翻译、图像扭曲、像素内插、镜头畸变校正、色差校正以及任何上述组合。在本实施例中,GPU120首先执行内容渲染操作,其将一组描述一个场景的图元渲染为像素。内容渲染的结果可暂时存储于存储器170中。数据准备模块320获取要被时间扭曲的图像物体的描述(例如图像物体的顶点)以及时间扭曲信息(例如眼睛转动坐标、头戴设备转动坐标等等),并输出代表图像物体的图元以及时间扭曲信息给光栅化模块330。光栅化模块330根据时间扭曲和镜头畸变校正以及色差校正等信息将图元光栅化成为像素。在一个实施例中,光栅化模块330将图元以每个色彩通道(例如红、绿、蓝)分别光栅化,并产生每个色彩通道内的像素的信息,其包含了每个色彩通道的缩放因子与镜头畸变因子(镜头畸变因子)。每个色彩通道的缩放因子可预定来补偿不同色彩通道的不同折射率(refractive indices)。镜头畸变因子也可预定来补偿头戴设备的镜头畸变。像素信息直接发送到进程内模块340,而不需要经过存储器170。
在一个实施例中,像素信息通知进程内模块340要获取的像素值的存储器位置。进程内模块340从这些存储器位置获取每个色彩通道的像素值,并根据至少每个色彩通道的缩放因子与镜头畸变因子来对像素值执行数学计算。像素值可以是GPU120内容渲染的结果。进程内模块340的输出是合并(combined)色彩通道的时间扭曲像素。进程内模块340直接发送时间扭曲像素给显示160而不经过存储器170,显示160是例如头戴设备的显示器。
需要注意的是,在前述的实施例中,加速器180的输出直接送进显示160而不需要经过存储器170。“直接”的意思是数据在不同硬件模块之间传输而不经过系统存储器,这个系统存储器可以是片外DRAM。在一些实施例中,数据可以直接在功能模块间传输,而且可以暂时缓存于一个片上缓存内,例如是一个静态随机存储存储器(SRAM)缓存或者其他形式的低延迟片上存储器。举例来说,光栅化模块330的输出直接进入进程内模块340(图3、图4与图5)以及进程间模块350(图3与图4),而不需要经过存储器170。类似的,数据准备模块320的输出直接进入光栅化模块330(图4与图5),而进程内模块340的输出直接进入进程间模块350(图3与图4)。而且,进程间模块350的输出直接进入显示160(图3)而进程内模块340的输出直接进入显示160(图5)。减少的系统存储器的存取加强了系统性能。
虽然图3、图4与图5显示与加速器180中不同的功能模块,需要理解的是加速器180可包含所有图3、图4与图5中显示的功能模块。图3、图4与图5中的每个仅显示用来特定操作模式下的功能模块,其他不用于该特定操作模式的功能模块就省略不显示。
图6显示根据本发明一实施例的加速器180所执行方法600的流程图。请参考图3,在一个实施例中,方法600在当光栅化模块330光栅化第一组图元成为第一组像素来产生第一组像素的信息时开始(步骤610)。进程内模块340根据从光栅化模块获取的信息来从存储器获取像素值(步骤620),并对像素值执行数学计算来产生一个或多个处理的图像层(步骤630)。进程间模块350将从进程内模块340接收的一个或多个处理的图像层以及从存储器接收的其他图像层合成来输出合成图像给显示(步骤640)。
图6中的方法可以用硬件来执行(例如电路,专用逻辑电路,可编程逻辑电路,微代码(microcode)等等),也可以用软件执行(例如处理装置上运行的指令),或者两者的结合。在一个实施例中,方法600是由图1-5的加速器180执行。在一个实施例中,加速器180可以是移动计算及/或通信设备(例如智能手机,平板电脑,笔记本电脑等等)的一部分。在一个实施例中,加速器180可以是服务器系统或云计算系统的一部分。
图6的流程图中的操作的叙述是参考了图1-图5的实施例。可是,应该了解到,图6的流程图中的操作可以由图1-图5中讨论的实施例以外的其他实施例来实施。而且图1-图5中的实施例也可实施除了图6的流程图以外的操作。虽然图6的流程图显示了一个本发明实施例操作的特定顺序,但应该理解这样的顺序仅仅是为了展示本发明(例如其他的实施例可用不同顺序执行这些操作,或者将几个操作合并或是取消某些操作等等)。
本领域的技术人员将注意到,在获得本发明的指导之后,可对所述装置和方法进行大量的修改和变换。相应地,上述公开内容应该理解为,仅通过所附加的权利要求的界限来限定。
Claims (20)
1.一种图像加速器设备,该图像加速器设备通过存储器耦合到图形处理单元,并且用于减轻该图形处理单元的负荷,该图像加速器设备包含:
光栅化模块,响应于显示的旋转,光栅化第一组图元成为与旋转的显示的像素格对齐的第一组像素,将该第一组像素存储在存储器位置,并产生该第一组像素的信息;
进程内模块,根据从该光栅化模块接收的该信息从该存储器位置获取像素值,对该像素值执行数学计算以一次旋转一个图像层,以根据该显示的旋转生成旋转的图像层;以及
进程间模块,根据从该光栅化模块接收到的该显示的像素坐标,合成从该进程内模块接收的该旋转的图像层与从该存储器接收的其他图像层,并输出合成图像给该显示。
2.如权利要求1所述的图像加速器设备,其特征在于,其中该旋转的图像层是根据在运行时间内从包含锐角、钝角及多个其他角度的一组角度中选择出的一个角度来旋转。
3.如权利要求1所述的图像加速器设备,其特征在于,由该光栅化模块产生的该信息指定该像素值的存储器位置,且该进程内模块用于从该存储器位置获取该像素值来形成该旋转的图像层。
4.如权利要求1所述的图像加速器设备,其特征在于,该进程间模块更用于从该光栅化模块接收像素位置,并根据该像素位置从该存储器获取该其他图像层。
5.如权利要求1所述的图像加速器设备,其特征在于,该进程间模块更用于直接将该像素的该信息输出到该显示而不经过该存储器。
6.如权利要求1所述的图像加速器设备,其特征在于,该其他图像层是由一个或多个硬件设备所产生,该一个或多个硬件设备包含中央处理单元,图像处理单元,照相处理单元以及影片解压单元。
7.如权利要求1所述的图像加速器设备,其特征在于,更包含:
数据准备模块,从该存储器载入图像应用程序接口输入,根据该图像应用程序接口输入产生描述第二组图元的数据,并发送该数据给该光栅化模块。
8.如权利要求7所述的图像加速器设备,其特征在于,该光栅化模块更用于光栅化该第二组图元成为第二组像素,且该进程内模块与该进程间模块用来对该第二组像素执行数学运算而不执行深度计算。
9.如权利要求1所述的图像加速器设备,其特征在于,更包含:
数据准备模块,从该存储器载入时间扭曲信息,并发送描述第三组图元的数据给该光栅化模块;
该光栅化模块,将该第三组图元光栅化成为第三组像素并输出像素数据;以及
该进程内模块,根据该像素数据从该存储器接收图像处理单元渲染的像素值,对该图像处理单元渲染的像素值执行一组时间扭曲线程操作的数学计算,并产生时间扭曲图像给该显示。
10.如权利要求9所述的图像加速器设备,其特征在于,该时间扭曲线程操作包含位置翻译、图像扭曲、像素内插、镜头畸变校正、色差校正操作中的一个或多个。
11.一种图像加速方法,该方法由图像加速器设备执行,该图像加速器设备通过存储器耦合到图形处理单元,并且用于减轻该图形处理单元的负荷,该方法包含:
响应于显示的旋转,光栅化第一组图元成为与旋转的显示的像素格对齐的第一组像素,将该第一组像素存储在存储器位置,并产生该第一组像素的信息;
根据接收的该信息从该存储器位置获取像素值;
对该像素值执行数学计算以一次旋转一个图像层,以根据该显示的旋转生成旋转的图像层;
根据从该光栅化模块接收到的该显示的像素坐标,合成接收的该旋转的图像层与从该存储器接收的其他图像层,并输出合成图像给该显示。
12.如权利要求11所述的图像加速方法,其特征在于,对该像素值执行数学计算的步骤更包含:
其中该旋转的图像层是根据在运行时间内从包含锐角、钝角及多个其他角度的一组角度中选择出的一个角度来旋转。
13.如权利要求11所述的图像加速方法,其特征在于,根据接收的该信息从存储器获取像素值的步骤更包含:
从存储器位置获取该像素值来形成该旋转的图像层。
14.如权利要求11所述的图像加速方法,其特征在于,更包含:
接收像素位置;以及
根据该像素位置从该存储器获取该其他图像层。
15.如权利要求11所述的图像加速方法,其特征在于,光栅化的步骤更包含:
直接将该像素的该信息输出到该显示而不经过该存储器。
16.如权利要求11所述的图像加速方法,其特征在于,该其他图像层是由一个或多个硬件设备所产生,该一个或多个硬件设备包含中央处理单元、图像处理单元、照相处理单元以及影片解压单元。
17.如权利要求11所述的图像加速方法,其特征在于,更包含:
从该存储器载入图像应用程序接口输入,
根据该图像应用程序接口输入产生描述第二组图元的数据。
18.如权利要求17所述的图像加速方法,其特征在于,更包含:
光栅化该第二组图元成为第二组像素;以及
对该第二组像素执行数学运算而不执行深度计算。
19.如权利要求11所述的图像加速方法,其特征在于,更包含:
从该存储器载入时间扭曲信息;
发送描述第三组图元的数据;
将该第三组图元光栅化成为第三组像素并输出像素数据;
根据该像素数据从该存储器接收图像处理单元渲染的像素值;以及
对该图像处理单元渲染的像素值执行一组时间扭曲线程操作的数学计算,并产生时间扭曲图像给该显示。
20.如权利要求19所述的图像加速方法,其特征在于,该时间扭曲线程操作包含位置翻译、图像扭曲、像素内插、镜头畸变校正、色差校正操作中的一个或多个。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201562244261P | 2015-10-21 | 2015-10-21 | |
US62/244,261 | 2015-10-21 | ||
US15/134,279 US10282806B2 (en) | 2016-04-20 | 2016-04-20 | Graphics Accelerator |
US15/134,279 | 2016-04-20 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106886974A CN106886974A (zh) | 2017-06-23 |
CN106886974B true CN106886974B (zh) | 2020-10-02 |
Family
ID=56119359
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610905042.9A Active CN106886974B (zh) | 2015-10-21 | 2016-10-18 | 图像加速器设备及相关方法 |
Country Status (2)
Country | Link |
---|---|
EP (1) | EP3214599B1 (zh) |
CN (1) | CN106886974B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107621951B (zh) * | 2017-08-29 | 2020-12-29 | 口碑(上海)信息技术有限公司 | 一种视图层级优化的方法及装置 |
CN107729094B (zh) * | 2017-08-29 | 2020-12-29 | 口碑(上海)信息技术有限公司 | 一种用户界面渲染的方法及装置 |
CN107945138B (zh) * | 2017-12-08 | 2020-04-03 | 京东方科技集团股份有限公司 | 一种图片处理方法和装置 |
CN109324903B (zh) * | 2018-09-21 | 2021-03-02 | 深圳前海达闼云端智能科技有限公司 | 用于嵌入式系统的显示资源调度方法及装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101520900A (zh) * | 2009-03-30 | 2009-09-02 | 中国人民解放军第三军医大学第一附属医院 | 一种利用gpu加速cr/dr/ct图像显示及图像处理的方法及专用设备 |
CN104183005A (zh) * | 2013-05-24 | 2014-12-03 | 三星电子株式会社 | 图形处理单元和基于图块的渲染方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6795080B2 (en) * | 2002-01-30 | 2004-09-21 | Sun Microsystems, Inc. | Batch processing of primitives for use with a texture accumulation buffer |
US20130127849A1 (en) * | 2011-05-26 | 2013-05-23 | Sebastian Marketsmueller | Common Rendering Framework and Common Event Model for Video, 2D, and 3D Content |
US9224227B2 (en) * | 2012-12-21 | 2015-12-29 | Nvidia Corporation | Tile shader for screen space, a method of rendering and a graphics processing unit employing the tile shader |
-
2016
- 2016-06-08 EP EP16173563.4A patent/EP3214599B1/en active Active
- 2016-10-18 CN CN201610905042.9A patent/CN106886974B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101520900A (zh) * | 2009-03-30 | 2009-09-02 | 中国人民解放军第三军医大学第一附属医院 | 一种利用gpu加速cr/dr/ct图像显示及图像处理的方法及专用设备 |
CN104183005A (zh) * | 2013-05-24 | 2014-12-03 | 三星电子株式会社 | 图形处理单元和基于图块的渲染方法 |
Also Published As
Publication number | Publication date |
---|---|
EP3214599A2 (en) | 2017-09-06 |
EP3214599B1 (en) | 2018-12-19 |
EP3214599A3 (en) | 2017-11-22 |
CN106886974A (zh) | 2017-06-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10282806B2 (en) | Graphics Accelerator | |
US11010858B2 (en) | Mechanism to accelerate graphics workloads in a multi-core computing architecture | |
US8421794B2 (en) | Processor with adaptive multi-shader | |
CN110784705A (zh) | 六自由度视频转码机制 | |
US10636112B2 (en) | Graphics processor register data re-use mechanism | |
US9916634B2 (en) | Facilitating efficient graphics command generation and execution for improved graphics performance at computing devices | |
US10565670B2 (en) | Graphics processor register renaming mechanism | |
TWI596569B (zh) | 促進針對在計算裝置上之部分被遮蔽圖形影像之動態且有效的預啓用裁剪之技術 | |
US20170140570A1 (en) | Facilitating efficeint centralized rendering of viewpoint-agnostic graphics workloads at computing devices | |
CN106886974B (zh) | 图像加速器设备及相关方法 | |
US20160379400A1 (en) | Three-Dimensional Renderer | |
US10552211B2 (en) | Mechanism to increase thread parallelism in a graphics processor | |
US9959590B2 (en) | System and method of caching for pixel synchronization-based graphics techniques | |
WO2017200672A1 (en) | Triangle rendering mechanism | |
CN108352051B (zh) | 促进对计算装置处的捆绑状态的高效图形命令处理 | |
US10943336B2 (en) | Tone-mapping high dynamic range images | |
US10769751B2 (en) | Single input multiple data processing mechanism | |
US20220224877A1 (en) | Barreling and compositing of images |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |