CN107257989A - 群集的调色板压缩 - Google Patents

群集的调色板压缩 Download PDF

Info

Publication number
CN107257989A
CN107257989A CN201680012046.2A CN201680012046A CN107257989A CN 107257989 A CN107257989 A CN 107257989A CN 201680012046 A CN201680012046 A CN 201680012046A CN 107257989 A CN107257989 A CN 107257989A
Authority
CN
China
Prior art keywords
color
cluster
certain embodiments
processor
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.)
Pending
Application number
CN201680012046.2A
Other languages
English (en)
Inventor
T.G.阿克尼内-默勒
J.K.尼尔森
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 CN107257989A publication Critical patent/CN107257989A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • 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
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/23Clustering techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/90Determination of colour characteristics
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • G06V10/56Extraction of image or video features relating to colour
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/46Colour picture communication systems
    • H04N1/64Systems for the transmission or the storage of the colour picture signal; Details therefor, e.g. coding or decoding means therefor
    • 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/186Methods 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 a colour or a chrominance component
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/94Vector quantisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/12Bounding box

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Evolutionary Computation (AREA)
  • General Engineering & Computer Science (AREA)
  • Evolutionary Biology (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Artificial Intelligence (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Image Generation (AREA)
  • Image Processing (AREA)

Abstract

使用基于调色板的编码,颜色值可被压缩。颜色值的群集可被标识并且相对于具有预先定义特性的颜色值在群集内被编码颜色值。具有带有恒定颜色值的像素或样本的群集也可被编码。

Description

群集的调色板压缩
背景技术
在计算机系统中,往和来于存储器的业务是大功率消耗方。因而,开发减少存储器业务的技术是极重要的。
用于减少来自存储器业务的功率消耗的一种方法是使用高速缓存体系,以及另一种是采用正被传输的数据的不同类型的压缩。
附图说明
一些实施例相对于以下附图被描述:
图1是根据一个实施例的调色板压缩的描绘;
图2是根据一个实施例的带有群集化(clustering)的调色板压缩的描绘;
图3是对于一个实施例的流程图;
图4是根据一个实施例的群集化算法的描绘;
图5是一个假设示例中的红和绿通道的图;
图6是根据一个实施例的处理系统的框图;
图7是根据一个实施例的处理器的框图;
图8是根据一个实施例的图形处理器的框图;
图9是根据一个实施例的图形处理引擎的框图;
图10是图形处理器的另一实施例的框图;
图11是根据一个实施例的描绘线程执行逻辑;
图12是根据一些实施例的图形处理器指令格式的框图;
图13是图形处理器的另一实施例的框图;
图14A是根据一些实施例的图形处理器命令格式的框图;
图14B是框图,其示出根据一些实施例的图形处理器命令序列;
图15是根据一些实施例的示范性图形软件架构的描绘;
图16是框图,其示出根据一些实施例的IP核开发系统;以及
图17是框图,其示出根据一些实施例的示范性芯片上系统集成电路。
具体实施方式
对于渲染的图像的某些范围,压缩-解压缩(编解码器)的最佳选择是使用基于调色板的编解码器。基于调色板的压缩可基于群集化,其使实际调色板大大变小以存储,进而改善压缩成功率。
调色板本身是基于调色板的编解码器中的整个被压缩表示的一大部分。使用群集的手段和通过跳过对恒定的颜色通道进行编码两者,调色板可被压缩。
在手头的任务是要:(i)收集片(tile)中的所有各种颜色并在调色板中存储这些颜色,以及(ii)为每个样本/像素值指派索引到此调色板。在图1中所描绘的所收集的数据涉及转化所述颜色(在这种情况中,这些颜色是仅3种颜色)的每个、通过代码或索引(在此示例中是0、1或2)来标识每种颜色、以及创建调色板,其示出可用颜色(在这种情况中,有4种)的调色板的哪些颜色(有3种)实际上正被使用。
在这个过程的结尾,用于存储调色板连同调色板索引的所需要的比特的总数量被计数。随后检查确定比特的这个数量是否适配被压缩单元的比特预算。此检查可涉及确定所提议的压缩是否比原格式导致更少数量的高速缓存行(line)。如果是这样,则压缩被取得。
调色板本身比完整表示占用更少字节来存储,因此,在一些情况中这将使压缩成功率更高。在一些实施例中,这将进而减少存储器业务并将增加能源效率。
给定基于调色板的编解码器,由N种颜色组成的调色板被存储,并且随后每个像素/样本需要个索引比特来“指”进颜色调色板。调色板中的颜色被压缩,所以它们占据较少空间。
例如,对于8x4像素片,其中每个颜色占用32比特(RGBA),未被压缩的片使用32*4=128字节。假定压缩到64字节,即,512比特被要求。每个像素需要k字节以用于索引,即, 32*k比特总体上被需要。调色板中的每种颜色使用32比特(与片中的原始数据相同),并且存在N种调色板颜色。总体上,这共计32*k+32*N,其少于或等于512。
在此情况中,这意味着k+N小于或等于16,并且因此,使用k=4比特是合理的,其理论上使在调色板中使用至多或16种不同颜色成为可能。那么,对于颜色调色板存在剩余的512-4*32或384比特,并且这意味着在调色板中N是384/32或12种颜色。
然而,如果我们能够在调色板中存储16种颜色,则我们能压缩更多片,并且通过使用调色板中颜色的压缩,这个目的能被取得。备选地,我们能使用k=5比特,其在调色板中给出(512-32*5)/32或11种颜色。由于存在每索引5比特,我们能潜在使用带有多至32种颜色的调色板。然而,这只有在调色板被压缩时才能被做出。
作为第一简单技术,每颜色通道一比特被用于指示颜色通道的一个颜色通道中颜色是否是恒定的。作为示例,如果比特是1,则片中的所有像素对于那个通道具有相同值。例如,所有红色值可以是23。在这种情况中,恒定值、即23也被存储。
作为示例,使用RGBA颜色空间,阿尔法(A)分量经常在片上都是0,或在片上都是255。如果一个颜色通道被跳过,则8比特被存储以用于恒定通道,因为对于RGBA这些是32比特或每通道8比特乘4的值。跳过比特还被存储以用于四个通道的每个通道来指出该通道是否被跳过。所以,总体上,在具有一个恒定颜色的示例中额外12比特被存储,因此调色板中的每种颜色现在仅是24(3*8)比特。
在带有在k=5比特的情况中,相比于之前的11种颜色,调色板中N等于(512-12-32*5)/24=14.167种颜色,或向下取整,14种颜色。
此压缩技术能被称为跳过比特技术。多于一个通道可以是恒定的。如果两个通道是恒定的,则4个跳过比特和因而8+8比特被存储以用于恒定通道,等等。
另外,我们能存储调色板中的所有颜色的最小颜色值,并随后编码调色板中的颜色和这个最小颜色之间的不同。这些不同经常能用更少的比特而被编码完。
然而,在很多情况中,调色板编码方法胜过其它编码方法。这些情况经常包含其中存在调色板中的颜色的截然不同组的片。
例如,假定非常暗的灰背景(其中带有一点噪声),并且随后两个白像素突然出现。来自最小颜色(其将是最暗的灰)与白像素的不同是巨大的,并且所有不同将用与对于白和最暗的灰像素之间的不同所需要的比特一样多的比特来编码。作为结果,没有压缩能被获取。在这种情况中,仅存在过破坏了压缩的可能性的两个像素。然而,例如,这些情境经常发生在用户接口中,并且如果它们是非常可压缩的是有益处的。
使用群集化,调色板可被压缩。群集化涉及寻找两个或更多最小(最低颜色值)颜色,并随后压缩与这些最小颜色中的一个最小颜色有关的调色板中的每种颜色。在以上示例中,最小暗灰色可以是一个最小颜色,并且白色是一个最小颜色。所有暗灰色(称为群集1)相对最小暗灰色被编码,并且所述两个白色(称为群集2)与最小白色有关地被编码。
随后跳过比特能被用于每个群集。这实际上同样能更多地减少数据。
除了颜色(现在是群集)索引之外,还按样本/像素来使用余量(residual)比特的一个实施例的群集化的示例被示出在图2中。在图2中,仅存在两种赤(redish)色(交叉影线的和双交叉影线的)和一种蓝色(没有影线)(使用索引0(对于蓝色)和1(对于所述两种赤色))。余量比特编码所述两个赤色值的一个赤色值与最小颜色值的不同。这个示例中的调色板仅具有两种颜色,带有经由余量比特所指出的变体红色的一种。
存在用于寻找群集的若干方法。假定我们想要寻找仅两个群集。在这种情况中,能担当“均值”的两种颜色被寻找。对于均值这些猜测越好,所述方法将收敛越快。
在一个实施例中,通过寻找例如RGB或RGBA、或者RGA(如果B恒定并因此被跳过)的其余颜色通道的空间中颜色周围的最小限定框,均值能被寻找。接下来,假定最小限定框在每个颜色维度中在中间被拆分,这导致许多子框。接下来,与这个最小限定框的每个角落最接近的颜色被寻找。这些“角落颜色”的两个被挑出,其各自在它的子框中具有最大颜色。这些颜色就是用于初始化k-均值群集化算法的两个均值。
接下来,应用k-均值群集化的一个或更多步骤。第一步骤是简单地将每种颜色与其最接近于的均值关联(例如,在RGB空间中)。当这已被做出时,调色板中的每种颜色已被指派到一个均值(其是来自调色板的颜色)。第二步骤将每个均值更新为被指派到那个群集的所有颜色的平均值。随后如果需要,则我们可再多进行几次步骤一和二。
但另一变体是更迭代的。想法是从调色板取一种颜色,并且只要所添加的颜色充分接近就在那种颜色周围建立群集。如果与当前群集太远离的颜色被遇到,则新群集颜色被分配。对余下的颜色继续进行操作,并尝试将它们合并到当前两个群集的任一个。随后第三群集能被添加,等等。为能够实现这,每样本/像素一比特被用于用信号通知余量比特是否被存储。
因此,参考图4,序列40可被实现在软件、固件和/或硬件中。在软件和固件实施例中,它可由执行指令的计算机来实现,所述指令存储在诸如磁、光、或半导体存储器的一个或更多非暂态计算机可读介质中。
如框42中所指出的,该序列通过在片中的所有样本或像素上循环来开始。随后,如框44中所指出的,给定颜色和已经在调色板中的颜色之间的不同被检查。如果如菱形46中所确定的,所述不同是小的因为它比阈值更小,则如框48中所指出的,存储余量比特并标记该样本。余量比特在50处被指示。
在另一方面,如果该不同不是小的,则在菱形52的检查确定该颜色是否已经在调色板中。如果不在,则如框54中所指出的,该颜色被存储在调色板中。随后如在56处所指出的,调色板被更新,并且流程迭代回到框44.
如菱形52中所确定的,如果该颜色已经在调色板中,则如框48中所指示的,调色板条目标识符(ID)被记录。随后如在60处所指示的,该样本或像素在调色板条目列表中被提供。
在菱形62的检查确定是否存在剩余的任何样本或像素。如果是这样,流程迭代回到框44,并且否则流程结束。
针对现有颜色,存储新调色板条目或余量比特之间的选择是任意的(arbitrary)。在一般情况中,只要每条目余量比特加每样本一比特的数量低于调色板中的完整颜色,所存储比特的数量中的增益就能被取得。
例如,假定我们具有带有N个颜色的片(带有RGB)。不存在任何东西将此技术约束于任何具体颜色空间。
在图5中,仅显现(visualize)红和绿(R和G)通道的示例被给出。在左边,红(R)和绿(G)轴被贴上标签。在此存在8个像素颜色。绿像素或样本通过空心圆来指示,并且红像素或样本通过实心圆来指示。在中间,所述像素颜色周围的最小框被寻找。圆D在左下角落,因此这是这8个像素颜色的最小颜色。在中间,将该最小框拆分成四个2x2小区(cell)(以虚线来指示)。在右边,最小框B1和B2对于每个小区被计算,其创建了两个组。暗圆D1和D2示出对于这两个组的最小颜色。
在一个群集化算法中,用最小颜色(图4中的暗圆D1和D2)来简单编码每个非空小区,并随后添加那个框内部的余量的某个编码。这可用标准方法来做出。
这个示例是在二个维度中的,但是通常存在三个(RGB)或四个(RGBA)维度。由于组的最小颜色的编码是相当昂贵的(expensive),有时将两个组来合并成一个是合理的。我们可还选定将颜色变换到另一颜色空间中,使得YCoGg,以便于减少每个框的量,因而减少余量比特的数量。
在迭代方案中,最少增加结果合并组(框)的总量的一对组(框)被合并。在RGB-空间中,通过按维度来拆分一次,8个小区被获得。每个组在x、y或z中仅具有一个直接近邻。存在用于在此使用的若干试探法(heuristic),其包含以下示例:
1)将最小框合并于给出最小量的近邻。迭代地进行此操作,直到成本对于成功压缩降到低于比特阈值为止。
2)将最小框合并于给出最大量的近邻。迭代地进行此操作,直到成本对于成功压缩降到低于比特阈值为止。
合并仅需要继续,直到目标比特阈值被达到(或更少)为止。还存在按维度来拆分多于一次的可能性。这创建了最小框必须被合并的更多小区。在这个情况中,每个小区可得到更多直接近邻。
在两个或更多群集已被生成后,每个群集的最小颜色被存储。另外,如以上所提及的, 4个跳过比特可按群集来存储,并且如果通道在群集内恒定,则那个通道不需要编码余量。在这种情况中,3个大小比特每通道来存储以指示按通道多少余量比特被需要。例如,如果对于红通道的最大不同在群集内是13,则4比特被需要来存储此类不同,并因此在这种情况中3大小比特将随后被设置成4。
如图3中所示出的,对于使用群集化的压缩的序列34可被实现在软件、固件和/或硬件中。在软件和固件实施例中,它可由执行指令的计算机来实现,所述指令存储在诸如磁、光、或半导体存储器的一个或更多非暂态计算机可读介质中。在一些情况中,所述序列可例如由图形处理单元来实现。
序列34通过在片上循环(框12)开始。片简单是含有样本或像素的图像部分。如框14中所指示的,首先,任何恒定颜色通道被寻找。随后群集在框16中被寻找,在框18中被编码并被添加到调色板24。具有恒定颜色的任何群集可还被跳过但被同样编码。我们可还按群集来使用分离的跳过比特,其可能在一些情况中有帮助。在框20中,流程在片中的所有样本或像素上循环。在框22中,群集或调色板条目被选择。
如框26中所指示的,调色板条目标识和余量被编码。样本或像素余量值30被存储。该样本或像素被存储在调色板条目列表28中。
在菱形32的检查指示是否存在剩余的更多样本或像素要处理,并且如果是这样,流程迭代回到在片上循环。否则,流程结束。
随着所描述的不同在每个群集中编码,调色板的更好压缩可被获得,并且这将使对于压缩的成功率大体上更高,并且对于颜色缓冲器的压缩硬件将更经常成功,并且作为结果,在一些实施例中,功率使用将被减少。
图6是根据一实施例的处理系统100的框图。在各种实施例中,系统100包含一个或更多处理器102和一个或更多图形处理器108,并且可以是单个处理器桌上型系统、多处理器工作站系统、或具有大量处理器102或处理器核107的服务器系统。在一个实施例中,系统100是用于移动、手持、或嵌入式装置中的使用的芯片上系统(SoC)集成电路内所合并的处理平台。
系统100的一实施例能包含,或被合并在包含游戏和媒体控制台、移动游戏控制台、手持游戏控制台、或线上游戏控制台的游戏控制台和基于服务器的游戏平台内。在一些实施例中,系统100是移动电话、智能电话、平板计算装置或移动因特网装置。数据处理系统100能还包含、耦合于或被集成在可穿戴装置内,诸如智能手表可穿戴装置、智能眼部可穿戴装置,增强现实装置、或虚拟现实装置。在一些实施例中,数据处理系统100是具有一个或更多处理器102和由一个或更多图形处理器108所生成的图形接口的机顶盒装置或电视。
在一些实施例中,所述一个或更多处理器102各自包含用于处理当被执行时执行对于系统和用户软件的操作的指令的一个或更多处理器核107执行。在一些实施例中,所述一个或更多处理器核107中的每个处理器核107配置成处理特定指令集109。在一些实施例中,指令集109可促进复杂指令集计算(CISC)、精简指令集计算(RISC)、或经由超长指令字(VLIW)的计算。多个处理器核107可各自处理不同指令集109,其可包含用于促进其它指令集的仿真的指令。处理器核107可还包含其它处理装置,诸如数字信号处理器(DSP)。
在一些实施例中,处理器102包含高速缓存存储器104。取决于架构,处理器102能具有单个内部高速缓存或多个级别的内部高速缓存。在一些实施例中,高速缓存存储器在处理器102的各种组件之中被共享。在一些实施例中,处理器102还使用外部高速缓存(例如,级别-3(L3)高速缓存或最后级别高速缓存(LLC))(未示出),其可使用已知高速缓存一致技术在处理器核107之中被共享。寄存器堆106被另外包含在处理器102中,其可包含用于存储不同类型的数据的不同类型的寄存器(例如,整数寄存器、浮点寄存器、状态寄存器、以及指令指针寄存器)。一些寄存器可以是通用寄存器,而其它寄存器可特定于处理器102的设计。
在一些实施例中,处理器102被耦合到处理器总线110以传送系统100中处理器102和其它组件之间的通信信号,诸如地址、数据、或控制信号。在一个实施例中,系统100使用示范性“集线器”系统架构,包含存储器控制器集线器116和输入输出(I/O)控制器集线器130。存储器控制器集线器116促进系统100的存储器装置和其它组件之间的通信,而I/O控制器集线器(ICH)130提供经由本地I/O总线到I/O装置的连接。在一个实施例中,存储器控制器集线器116的逻辑被集成在处理器内。
存储器装置120能是动态随机访问存储器(DRAM)装置,静态随机访问存储器(SRAM)装置,闪速存储器装置,相变存储器装置,或具有适合性能以充当处理存储器的某一其它存储器装置。在一个实施例中,存储器装置120能作为系统100的系统存储器来操作,以存储用于当所述一个或更多处理器102执行应用或处理时的使用的指令121和数据122。存储器控制器集线器116还与可选外部图形处理器112耦合,其可与用于执行图形和媒体操作的处理器102中的所述一个或更多图形处理器108通信。
在一些实施例中,ICH 130使得外围设备能够经由高速I/O总线来连接到存储器装置120和处理器102。I/O外围设备包含但不限于,音频控制器146、固件接口128、无线收发器126(例如,Wi-Fi、蓝牙)、数据存储装置124(例如,硬盘驱动器、闪速存储器、等等)、和用于将遗留(例如,个人系统2(PS/2))装置耦合到所述系统的遗留I/O控制器140。一个或更多通用串行总线(USB)控制器142连接输入装置,诸如键盘和鼠标144组合。网络控制器134可还耦合到ICH 130。在一些实施例中,高性能网络控制器(未示出)耦合到处理器总线110。将被理解的是,所示出的系统110是示范性的而不是限制性的,因为被不同配置的其它类型的数据处理系统也可被使用。例如,I/O控制器集线器130可被集成在所述一个或更多处理器102内,或存储器控制器集线器116和I/O控制器集线器130可被集成到谨慎的(discreet)外部图形处理器中,诸如外部图形处理器112。
图7是具有一个或更多处理器核202A-202N、集成存储器控制器214、和集成图形处理器208的处理器200的一实施例的框图。具有与本文中任一其它图的元件相同的引用标号(或名称)的图7的那些元件能以与本文别处所描述的那种方式类似的任一方式来操作或起作用,但不限于此。处理器200能包含直到并包含由虚线框所表示的另外核202N的另外核。处理器核202A-202N的每个包含一个或更多内部高速缓存单元204A-204N。在一些实施例中,每个处理器核还具有到一个或更多共享高速缓存单元206的访问。
内部高速缓存单元204A-204N和共享高速缓存单元206表示处理器200内的高速缓存存储器层级。所述高速缓存存储器层级可包含每个处理器核内的至少一个级别的数据高速缓存和指令以及一个或更多级别的共享中间级别高速缓存,诸如级别2(L2)、级别3(L3)、级别4(L4)、或其它级别的高速缓存,其中外部存储器之前最高级别的高速缓存被分类为LLC。在一些实施例中,高速缓存一致逻辑维持各种高速缓存单元206和204A-204N之间的一致。
在一些实施例中,处理器200可还包含系统代理核210和一个或更多总线控制器单元216的集合。所述一个或更多总线控制器单元216管理外围设备总线的集合,诸如一个或更多外围设备组件互连总线(例如,PCI、PCI高速)。系统代理核210为各种处理器组件提供管理功能性。在一些实施例中,系统代理核210包含用于管理到各种外部存储器装置(未示出)的访问的一个或更多集成存储器控制器214。
在一些实施例中,处理器核202A-202N的一个或更多包含对于同时发生的多线程的支持。在此类实施例中,系统代理核210包含用于在多线程的处理期间协调并操作核202A-202N的组件。系统代理核210可另外包含功率控制单元(PCU),其包含用于调整图形处理器208和处理器核202A-202N的功率状态的组件和逻辑。
在一些实施例中,处理器200另外包含用于执行图形处理操作的图形处理器208。在一些实施例中,图形处理器208与包含所述一个或更多集成存储器控制器214的系统代理核210和共享高速缓存单元206的集合耦合。在一些实施例中,显示器控制器211与图形处理器208被耦合以驱动到一个或更多耦合的显示器的图形处理器输出。在一些实施例中,显示器控制器211可以是经由至少一个互连与所述图形处理器耦合的分离模块,或可被集成在图形处理器208或系统代理核210内。
在一些实施例中,基于环的互连单元212被用于耦合处理器200的内部组件。然而,备选互连单元可被使用,诸如点到点互连、交换式(switched)互连、或其它技术,包含本领域内公知的技术。在一些实施例中,图形处理器208经由I/O链接213与环互连212耦合。
示范性I/O链接213表示I/O互连的多个种类的至少一个种类,包含封装上I/O互连,其促进各种处理器组件和诸如eDRAM模块的高性能嵌入式存储器模块218之间的通信。在一些实施例中,处理器核202-202N的每个处理器核和图形处理器208使用嵌入式存储器模块218作为共享最后级别高速缓存。
在一些实施例中,处理器核202A-202N是执行相同指令集架构的同质核。在另一实施例中,处理器核202A-202N按照指令集架构(ISA)是异质的,其中处理器核202A-N的一个或更多处理器核执行第一指令集,而另一些核的至少一个核执行不同指令集或第一指令集的子集。在一个实施例中,处理器核202A-202N按照微架构是异质的,其中具有相对更高功率消耗的一个或更多核与具有更低功率消耗的一个或更多功率核耦合。另外,处理器200能被实现在一个或更多芯片上或被实现为除了其它组件之外还具有所示出组件的SoC集成电路。
图8是图形处理器300的框图,其可以是离散图形处理单元,或者可以是与多个处理核集成的图形处理器。在一些实施例中,图形处理器经由在图形处理器上将I/O接口映射到寄存器的存储器、并用放置到处理器存储器中的命令进行通信。在一些实施例中,图形处理器300包含用于访问存储器的存储器接口314。存储器接口314能是到本地存储器、一个或更多内部高速缓存、一个或更多共享外部高速缓存、和/或到系统存储器的接口。
在一些实施例中,图形处理器300还包含用于将显示器输出数据驱动到显示器装置320的显示器控制器302。显示器控制器302包含对于用于显示器和用户接口元素或视频的多个层的复合的一个或更多叠加平面的硬件。在一些实施例中,图形处理器300包含用于将媒体编码、解码、或转码到、自、或于一个或更多媒体编码格式之间的视频编解码器引擎306,所述一个或更多媒体编码格式包含但不限于诸如MPEG-2的运动图像专家组(MPEG)格式、诸如H.264/MPEG-4 AVC的高级视频编码(AVC)格式、以及诸如JPEG和运动JPEG(MJPEG)格式的联合图像专家组(JPEG)格式、和电影&电视工程师协会(SMPTE)421M/VC-1。
在一些实施例中,图形处理器300包含用于执行包含例如比特边界块转移的二维(2D)光栅化器(rasterizer)操作的块图像转移(BLIT)引擎304。然而,在一个实施例中,使用图形处理引擎(GPE)310的一个或更多组件,2D图形操作被执行。在一些实施例中,图形处理引擎310是用于执行包含三维(3D)图形操作和媒体操作的图形操作的计算引擎。
在一些实施例中,GPE 310包含用于执行3D操作的3D管线312,所述3D操作诸如使用在3D原始形状(例如,方形、三角形、等等)上行动的处理功能来渲染三维图像和景物。3D管线312包含可编程和固定功能元件,其执行所述元件内的各种任务和/或将执行线程产出(spawn)到3D/媒体子系统315。虽然3D管线312能被用于执行媒体操作,GPE310的一实施例还包含被特定用于执行诸如视频后处理和图像增强的媒体操作的媒体管线316。
在一些实施例中,媒体管线316包含用于执行一个或更多专门的媒体操作的可编程逻辑单元或固定功能,所述一个或更多专门的媒体操作诸如代替、或代表视频编解码器引擎306的视频解码加速、视频去除交织(de-interlacing)、和视频编码加速。在一些实施例中,媒体管线316另外包含用于产出用于3D/媒体子系统315上的执行的线程之线程产出单元。所产出的线程执行对于包含在3D/媒体子系统315中的一个或更多图形执行单元上的媒体操作的计算。
在一些实施例中,3D/媒体子系统315包含用于执行由3D管线312和媒体管线316所产出的线程的逻辑。在一个实施例中,所述管线将线程执行请求发送到3D/媒体子系统315,其包含用于将各种请求仲裁并分派到可用线程执行资源的线程分派逻辑。所述执行资源包含用于处理3D和媒体线程的图形执行单元的阵列。在一些实施例中,3D/媒体子系统315包含对于线程指令和数据的一个或更多内部高速缓存。在一些实施例中,所述子系统还包含用于在线程之间共享数据和用于存储输出数据的共享存储器,其包含寄存器和可寻址存储器。
图9是依照一些实施例的图形处理器的图形处理引擎410的框图。在一个实施例中,GPE 410是图8中所示出的GPE 310的版本。具有与本文中任一其它图的元件相同的引用标号(或名称)的图9的那些元件能以与本文别处所描述的那种方式类似的任一方式来操作或起作用,但不限于此。
在一些实施例中,GPE 410与命令流传送器(streamer)403耦合,其将命令流提供给GPE 3D和媒体管线412、416。在一些实施例中,命令流传送器403被耦合到存储器,其能是系统存储器、或共享和内部高速缓存存储器的一个或更多高速缓存存储器。在一些实施例中,命令流传送器403从所述存储器接收命令并将所述命令发送到3D管线412和/或媒体管线416。所述命令是从环缓冲器提取的指示,所述环缓冲器存储对于3D和媒体管线412、416的命令。在一个实施例中,所述环缓冲器能另外包含存储成批的多个命令的批命令缓冲器。3D和媒体管线412、416通过经由相应管线内的逻辑来执行操作或通过将一个或更多执行线程分派到执行单元阵列414来处理所述命令。在一些实施例中,执行单元阵列414是可缩放的,使得所述阵列包含基于GPE 410的目标功率和性能级别的可变数量的执行单元。
在一些实施例中,采样引擎430与存储器(例如,高速缓存存储器或系统存储器)和执行单元阵列414耦合。在一些实施例中,采样引擎430为执行单元阵列414提供存储器访问机制,其允许执行阵列414从存储器读图形和媒体数据。在一些实施例中,采样引擎430包含用于对于媒体执行专门的图像采样操作的逻辑。
在一些实施例中,采样引擎430中的专门的媒体采样逻辑包含去除噪声/去除交织模块432、运动估计模块434、以及图像缩放和过滤模块436。在一些实施例中,去除噪声/去除交织模块432包含用于执行所解码视频数据上的去除噪声或去除交织算法的一个或更多算法的逻辑。所述去除交织逻辑将交织的视频内容的交替字段组合到视频的单个帧中。所述去除噪声逻辑减少或移除来自视频和图像数据的数据噪声。在一些实施例中,所述去除噪声逻辑和去除交织逻辑是运动适应的并基于视频数据中所检测运动的数量来使用空间或时间过滤。在一些实施例中,去除噪声/去除交织模块432包含专用运动检测逻辑(例如,在运动估计引擎434内)。
在一些实施例中,运动估计引擎434通过执行诸如关于视频数据的运动向量估计和预测的视频加速功能来为视频操作提供硬件加速。所述运动估计引擎确定描述连续视频帧之间的图像数据的变换的运动向量。在一些实施例中,图形处理器媒体编解码器使用视频运动估计引擎434来执行在宏块级别处关于视频的操作,否则这可能在计算上太密集以至于不能用通用处理器来执行。在一些实施例中,运动估计引擎434一般对图形处理器组件是可用的,以用于辅助对视频数据内运动的方向或量值(magnitude)敏感或适应的视频解码和处理功能。
在一些实施例中,图像缩放和过滤模块436执行图像处理操作以增强所产生图像和视频的视觉质量。在一些实施例中,缩放和过滤模块436在将所述数据提供给执行单元阵列414之前所述采样操作期间处理图像和视频数据。
在一些实施例中,GPE 410包含数据端口444,其为图形子系统提供另外机制以访问存储器。在一些实施例中,数据端口444促进存储器访问以用于包含渲染目标写、恒定缓冲器读、暂时(scratch)存储器空间读/写、和媒体表面访问的操作。在一些实施例中,数据端口444包含用于到存储器的高速缓存访问的高速缓存存储器空间。高速缓存存储器能够是单个数据高速缓存或被分离成多个高速缓存以用于经由数据端口来访问存储器的所述多个子系统(例如,渲染缓冲器高速缓存、恒定缓冲器高速缓存,等等)。在一些实施例中,在执行单元阵列414中执行单元上执行的线程通过经由耦合GPE 410的子系统的每个的数据分布互连来交换信息而与数据端口通信。
图10是图形处理器500的另一实施例的框图。具有与本文中任一其它图的元件相同的引用标号(或名称)的图10的元件能以与本文别处所描述的那种方式类似的任一方式来操作或起作用,但不限于此。
在一些实施例中,图形处理器500包含环互连502、管线前端504、媒体引擎537、和图形核580A-580N。在一些实施例中,环互连502将图形处理器耦合到其它处理单元,其包含其它图形处理器或一个或更多通用处理器核。在一些实施例中,图形处理器是集成在多核处理系统内的许多处理器的一个。
在一些实施例中,图形处理器500经由环互连502来接收成多批命令。进入的命令由管线前端504中的命令流传送器503来解译。在一些实施例中,图形处理器500包含用于经由图形核580A-580N来执行3D几何处理和媒体处理的可缩放执行逻辑。对于3D几何处理命令,命令流传送器503将命令供应给几何管线536。对于至少一些媒体处理命令,命令流传送器503将所述命令供应给视频前端534,其与媒体引擎537耦合。在一些实施例中,媒体引擎537包含用于视频和图像后处理的视频质量引擎(VQE)530和用于提供硬件加速的媒体数据编码和解码的多格式编码/解码(MFX)533引擎。在一些实施例中,几何管线536和媒体引擎537各自对于由至少一个图形核580A所提供的线程执行资源来生成执行线程。
在一些实施例中,图形处理器500包含可缩放线程执行资源,其以各自具有多个子核550A-550N、560A-560N(有时被称为核子切片(sub-slice))的模块化的核580A-580N(有时被称为核切片)为特征。在一些实施例中,图形处理器500能具有任何数量的图形核580A到580N。在一些实施例中,图形处理器500包含具有至少第一子核550A和第二核子核560A的图形核580A。在其它实施例中,图形处理器是带有单个子核(例如,550A)的低功率处理器。在一些实施例中,图形处理器500包含多个图形核580A-580N,其每个包含第一子核550A-550N的集合和第二子核560A-560N的集合。第一子核550A-550N的集合中的每个子核至少包含媒体/纹理采样器554A-554N和执行单元552A-552N的第一集合。第二子核560A-560N的集合中的每个子核至少包含执行单元562A-562N和采样器564A-564N的第二集合。在一些实施例中,每个子核550A-550N、560A-560N共享被共享资源570A-570N的集合。在一些实施例中,所述被共享资源包含共享高速缓存存储器和像素操作逻辑。其它被共享资源可还被包含在图形处理器的各种实施例中。
图11示出包含GPE的一些实施例中所采用的处理元件之阵列的线程执行逻辑600。具有与本文中任一其它图的元件相同的引用标号(或名称)的图11的元件能以与本文别处所描述的那种方式类似的任一方式来操作或起作用,但不限于此。
在一些实施例中,线程执行逻辑600包含像素着色器(shader)602、线程分派器604、指令高速缓存606、包含多个执行单元608A-608N的可缩放执行单元阵列、采样器610、数据高速缓存612、和数据端口614。在一个实施例中,所包含的组件经由链接到所述组件的每个组件的互连构造来互连。在一些实施例中,线程执行逻辑600包含通过数据端口614、采样器610、执行单元阵列608A-608N、和指令高速缓存606的一个或更多到存储器(诸如系统存储器或高速缓存存储器)的一个或更多连接。在一些实施例中,每个执行单元(例如,608A)是能执行多个同时发生的线程并对于每个线程并行处理多个数据元素的单独向量处理器。在一些实施例中,执行单元阵列608A-608N包含任何数量单独处理单元。
在一些实施例中,执行单元阵列608A-608N首要被用于执行“着色器”程序。在一些实施例中,阵列608A-608N中的执行单元执行指令集,其包含对于许多标准3D图形着色器指令的原生支持,使得来自图形库(例如,Direct 3D和OpenGL)的着色器程序用最小转换来执行。执行单元支持顶点和几何处理(例如,顶点程序、几何程序、顶点着色器)、像素处理(例如,像素着色器、片段着色器)和通用处理(例如,计算和媒体着色器)。
执行单元阵列608A-608N中的每个执行单元在数据元素的阵列上操作。数据元素的数量是“执行大小”,或对于指令的通道的数量。执行通道是对于指令内流控制、数据元素访问、和掩蔽(masking)的执行的逻辑单元。通道的数量可独立于对于具体图形处理器的浮点单元(FPU)或物理算数逻辑单元(ALU)的数量。在一些实施例中,执行单元608A-608N支持整数和浮点数据类型。
执行单元指令集包含单指令多数据(SIMD)指令。所述各种数据元素能在寄存器中被存储为打包的(packed)数据类型,并且执行单元将基于所述元素的数据大小来处理所述各种元素。例如,当在256-比特宽向量上操作时,该向量的256比特被存储在寄存器中,并且执行单元在作为四个分离的64-比特打包的数据元素(四倍长字(QW)大小数据元素)、八个分离的32-比特打包的数据元素(双倍长字(DW)大小数据元素)、十六个分离的16-比特打包的数据元素(字(W)大小数据元素)、或三十二个分离的8-比特数据元素(字节(B)大小数据元素)的向量上操作。然而,不同向量宽度和寄存器大小是可能的。
一个或更多内部指令高速缓存(例如,606)被包含在线程执行逻辑600中以对于执行单元来高速缓存线程指令。在一些实施例中,一个或更多数据高速缓存(例如,612)被包含以在线程执行期间高速缓存线程数据。在一些实施例中,采样器610被包含以为3D操作提供纹理采样并为媒体操作提供媒体采样。在一些实施例中,采样器610包含用于在将所采样的数据提供给执行单元之前采样过程期间处理纹理或媒体数据的专门的纹理或媒体采样功能性。
在执行期间,图形和媒体管线经由线程产出和分派逻辑将线程启动请求发送到线程执行逻辑600。在一些实施例中,线程执行逻辑600包含本地线程分派器604,其仲裁来自图形和媒体管线的线程启动请求,并在一个或更多执行单元608A-608N上例示所请求的线程。例如,几何管线(例如,图10的536)将顶点处理、曲面细分(tessellation)、或几何处理线程分派到线程执行逻辑600(图11)。在一些实施例中,线程分派器604能还处理来自执行的着色器程序的运行时间线程产出请求。
一旦几何对象的组已被处理并光栅化为像素数据,像素着色器602被调用以进一步计算输出信息,并促使结果被写到输出表面(例如,颜色缓冲器、深度缓冲器、模板缓冲器、等等)。在一些实施例中,像素着色器602演算(calculate)要跨所光栅化的对象被内插(interpolated)的各种顶点属性的值。在一些实施例中,像素着色器602随后执行应用编程接口(API)供应的像素着色器程序。为执行所述像素着色器程序,像素着色器602经由线程分派器604将线程分派到执行单元(例如,608A)。在一些实施例中,像素着色器602使用采样器610中的纹理采样逻辑来访问存储器中所存储的纹理映射中的纹理数据。输入几何数据和所述纹理数据上的算术操作从进一步处理中丢弃一个或更多像素,或对于每个几何片段来计算像素颜色数据。
在一些实施例中,数据端口614为线程执行逻辑600提供存储器访问机制,线程执行逻辑600将处理的数据输出到存储器以用于在图形处理器输出管线上处理。在一些实施例中,数据端口614包含或耦合到一个或更多高速缓存存储器(例如,数据高速缓存612)以对于经由数据端口的存储器访问来缓存数据。
图12是框图,其示出根据一些实施例的图形处理器指令格式700。在一个或更多实施例中,图形处理器执行单元支持具有多种格式的指令的指令集。实线框示出一般被包含在执行单元指令中的组件,而虚线包含可选或仅被包含在所述指令的子集中的组件。在一些实施例中,所描述和所示出的指令格式700是宏指令,因为他们是被供应给执行单元的指令,如相对于一旦指令被处理则因指令解码而产生的微操作。
在一些实施例中,图形处理器执行单元原生支持128-比特格式710的指令。64-比特紧致指令格式730对于基于所选择的指令、指令选项、和操作数的数量的一些指令可用。原生128-比特格式710提供给所有指令选项的访问,而一些选项和操作被约束在64-比特格式730中。64-比特格式730中可用的原生指令依实施例而改变。在一些实施例中,使用索引字段713中索引值的集合,使指令部分紧致。执行单元硬件基于所述索引值来引用紧致表的集合,并使用紧致表输出来重构128-比特格式710中的原生指令。
对于每种格式,指令操作码712定义执行单元要执行的操作。执行单元跨每个操作数的多个数据元素来并行执行每个指令。例如,响应于添加指令,执行单元跨表示纹理元素或图片元素的每个颜色通道来执行同时发生的添加操作。默认地,执行单元跨所述操作数的所有数据通道来执行每个指令。在一些实施例中,指令控制字段714能够实现某些执行选项(诸如通道选择(例如,预测)和数据通道顺序(例如,打乱(swizzle)))上的控制。对于128-比特指令710,执行大小(exec-size)字段716限制将被并行执行的数据通道的数量。在一些实施例中,执行大小字段716对于64-比特紧致指令格式730中的使用不是可用的。
一些执行单元指令具有多至三个的操作数,其包含两个源操作数src0 722、src1722和一个目的地718。在一些实施例中,执行单元支持双目的地指令,其中所述目的地的一个被暗示。数据操纵指令能具有第三源操作数(例如,SRC2 724),其中指令操作码712确定源操作数的数量。指令的最后源操作数能是用该指令来传递的立即(immediate)(例如,硬编码的)值。
在一些实施例中,128-比特指令格式710包含访问/地址模式信息726,其指定例如是直接寄存器寻址模式还是间接寄存器寻址模式被使用。当直接寄存器寻址模式被使用时,一个或更多操作数的寄存器地址由指令710中的比特来直接提供。
在一些实施例中,128-比特指令格式710包含访问/地址模式字段726,其指定对于该指令的地址模式和/或访问模式。在一个实施例中,访问模式要定义对于指令的数据访问对齐。一些实施例支持包含16-字节对齐访问模式和1-字节对齐访问模式的访问模式,其中访问模式的字节对齐确定指令操作数的访问对齐。例如,当在第一模式中时,指令710可对于源和目的地操作数使用字节对齐寻址,并且当在第二模式中时,指令710可对于所有源和目的地操作数使用16-字节对齐寻址。
在一个实施例中,访问/地址模式字段726的地址模式部分确定指令要使用直接还是间接寻址。当直接寄存器寻址模式被使用时,指令710中的比特直接提供一个或更多操作数的寄存器地址。当间接寄存器寻址模式被使用时,一个或更多操作数的寄存器地址可基于指令中的地址立即字段和地址寄存器值而被计算。
在一些实施例中,指令基于操作码712比特-字段而被分组以简化操作码解码740。对于8-比特操作码,比特4、5、和6允许执行单元确定操作码的类型。所示出的精确操作码分组只是示例。在一些实施例中,移动和逻辑操作码组742包含数据移动和逻辑指令(例如,移动(mov)、比较(cmp))。在一些实施例中,移动和逻辑组742共享五个最高有效位(MSB),其中移动(mov)指令是0000xxxxb的形式,并且逻辑指令是0001xxxxb的形式。流控制指令组744(例如,呼叫、跳(jmp))包含0010xxxxb的形式(例如,0x20)的指令。混杂指令组746包含指令的混合,其包含0011xxxxb的形式(例如,0x30)的同步指令(例如,等待、发送)。并行数学指令组748包含0100xxxxb的形式(例如,0x40)的分量式(component-wise)算数指令(例如,加、乘(mul))。并行数学组748跨数据通道来并行执行算数操作。向量数学组750包含0101xxxxb的形式(例如,0x50)的算数指令(例如,dp4)。向量数学组执行诸如对向量操作数的点积演算的算数。
图13是图形处理器800的另一实施例的框图。具有与本文中任一其它图的元件相同的引用标号(或名称)的图13的元件能以与本文别处所描述的那种方式类似的任一方式来操作或起作用,但不限于此。
在一些实施例中,图形处理器800包含图形管线820、媒体管线830、显示器引擎840、线程执行逻辑850、和渲染输出管线870。在一些实施例中,图形处理器800是包含一个或更多通用处理核的多核处理系统内的图形处理器。图形处理器通过寄存器写到一个或更多控制寄存器(未示出)或经由发布(经由环互连802)给图形处理器800的命令来控制。在一些实施例中,环互连802将图形处理器800耦合到其它处理组件,诸如其它图形处理器或通用处理器。来自环互连802的命令由命令流传送器803来解译,其将指令供应给媒体管线830或图形管线820的各个组件。
在一些实施例中,命令流传送器803指引顶点提取器(fetcher)805的操作,顶点提取器805从存储器读顶点数据并执行由命令流传送器803所提供的顶点处理命令。在一些实施例中,顶点提取器805将顶点数据提供给顶点着色器807,其执行到每个顶点的点亮(lighting)操作和协调空间变换。在一些实施例中,顶点提取器805和顶点着色器807通过经由线程分派器831将执行线程分派到执行单元852A、852B来执行顶点处理指令。
在一些实施例中,执行单元852A、852B是具有用于执行图形和媒体操作的指令集的向量处理器的阵列。在一些实施例中,执行单元825A、825B具有特定于每个阵列或在阵列间共享的附连L1高速缓存851。所述高速缓存能配置为数据高速缓存、指令高速缓存、或被分区以含有不同分区中的指令和数据的单个高速缓存。
在一些实施例中,图形管线820包含用于执行3D对象的硬件加速曲面细分的曲面细分组件。在一些实施例中,可编程的外壳(hull)着色器811配置曲面细分操作。可编程域着色器817提供曲面细分输出的后端评估。曲面细分器813在外壳着色器811的方向操作,并含有用于基于被提供为到图形管线820的输入的粗略几何模型来生成详细几何对象的集合的专用逻辑。在一些实施例中,如果曲面细分未被使用,则曲面细分组件811、813、817能被绕过。
在一些实施例中,完全几何对象能经由被分派到执行单元852A、852B的一个或更多线程由几何着色器819来处理,或能直接继续进行到剪辑器(clipper)829。在一些实施例中,几何着色器在整个几何对象上操作,而不是如图形管线的先前阶段一样在顶点或顶点的补片(patch/)上。如果曲面细分被禁用,则几何着色器819从顶点着色器807接收输入。在一些实施例中,如果曲面细分单元被禁用,则几何着色器819是由几何着色器程序可编程的以执行几何曲面细分。
在光栅化之前,剪辑器829处理顶点数据。剪辑器829可以是固定功能剪辑器或具有剪辑和几何着色器功能的可编程剪辑器。在一些实施例中,渲染输出管线870中的光栅化器/深度873分派像素着色器以将几何对象转化成它们按像素的表示。在一些实施例中,像素着色器逻辑被包含在线程执行逻辑850中。在一些实施例中,应用能绕过光栅化器873并经由流传送出单元823来访问未光栅化的顶点数据。
图形处理器800具有互连总线、互连构造、或允许在处理器的主要组件之中传递的数据和消息的某一其它互连机制。在一些实施例中,执行单元852A、852B和关联高速缓存851、纹理和媒体采样器854、以及纹理/采样器高速缓存858经由数据端口856来互连以执行存储器访问并与处理器的渲染输出管线组件通信。在一些实施例中,采样器854、高速缓存851、858和执行单元852A、852B各自具有分离的存储器访问路径。
在一些实施例中,渲染输出管线870含有将基于顶点的对象转化成关联的、基于像素的表示的光栅化器和深度测试组件873。在一些实施例中,光栅化器逻辑包含用于执行固定功能三角和线光栅化的窗口器/掩蔽器单元。在一些实施例中,关联的渲染高速缓存878和深度高速缓存879也是可用的。像素操作组件877对所述数据执行基于像素的操作,尽管在一些实例中,与2D操作(例如,比特块图像随混合转移)关联的像素操作由2D引擎841来执行,或者由显示器控制器843使用叠加显示平面在显示时间替代。在一些实施例中,共享L3高速缓存875对所有图形组件可用,这允许数据的共享而没有主系统存储器的使用。
在一些实施例中,图形处理器媒体管线830包含媒体引擎837和视频前端834。在一些实施例中,视频前端834从命令流传送器803接收管线命令。在一些实施例中,媒体管线830包含分离的命令流传送器。在一些实施例中,视频前端834在将命令发送到媒体引擎837之前处理媒体命令。在一些实施例中,媒体引擎337包含用于经由线程分派器831来产出线程以用于到线程执行逻辑850的分派的线程产出功能性。
在一些实施例中,图形处理器800包含显示器引擎840。在一些实施例中,显示器引擎840对处理器800是外部的并经由环互连802、或某一其它互连总线或构造与图形处理器耦合。在一些实施例中,显示器引擎840包含2D引擎841和显示器控制器843。在一些实施例中,显示器引擎840含有能独立于3D管线来操作的专用逻辑。在一些实施例中,显示器控制器843耦合于显示器装置(未示出),其可以是系统集成的显示器装置,如在膝上型计算机中那样,或经由显示器装置连接器来附连的外部显示器装置。
在一些实施例中,图形管线820和媒体管线830可配置以基于多个图形和媒体编程接口来执行操作,并不特定于任何一种应用编程接口(API)。在一些实施例中,对于图形处理器的驱动器软件将特定于具体图形或媒体库的API呼叫转换成能由图形处理器来处理的命令。在一些实施例中,对于来自Khronos Group的开放式图形库(OpenGL)和开放式计算语言(OpenCL)、来自微软公司的Direct3D库,支持被提供;或者支持壳被提供给OpenGL和D3D两者。对于开源计算机视觉库(OpenCV),支持也可被提供。如果从未来API的管线到图形处理器的管线的映射能被制作,则带有兼容3D管线的未来API也将被支持。
图14A是框图,其示出根据一些实施例的图形处理器命令格式900。图14B是框图,其示出根据一实施例的图形处理器命令序列910。图14A中的实线框示出一般被包含在图形命令中的组件,而虚线框包含可选的组件或仅被包含在所述图形命令的子集中的组件。图14A的示范性图形处理器命令格式900包含用于标识命令的目标客户端902、命令操作代码(操作码)904、和对于命令的相应数据906的数据字段。子操作码905和命令大小908也被包含在一些命令中。
在一些实施例中,客户端902指定处理命令数据的图形装置的客户端单元。在一些实施例中,图形处理器命令解析器(parser)检验每个命令的客户端字段以调节命令的进一步处理,并将命令数据路由到适当客户端单元。在一些实施例中,图形处理器客户端单元包含存储器接口单元、渲染单元、2D单元、3D单元、和媒体单元。每个客户端单元具有处理命令的相应处理管线。一旦命令由客户端单元所接收,客户端单元就读操作码904,以及如果出现的话,则子操作码905确定要执行的操作。使用数据字段906中的信息,客户端单元执行命令。对于一些命令,显式命令大小908被期望以指定命令的大小。在一些实施例中,命令解析器基于命令操作码来自动确定命令的至少一些命令的大小。在一些实施例中,命令经由多个双倍长字来对齐。
图14B中的流程图示出示范性图形处理器命令序列910。在一些实施例中,以图形处理器的一实施例为特征的数据处理系统的软件或固件使用所示出的命令序列的版本来设立、执行、和终止图形操作的集合。样本命令序列仅为示例的用途而被示出和描述,因为实施例不限于这些特定命令或于这个命令序列。此外,命令可作为命令序列中命令的批被发布,使得图形处理器将至少部分并发地处理命令的序列。
在一些实施例中,图形处理器命令序列910可用管线冲刷(flush)命令912来开始以促使任何活动图形管线完成对于管线的当前未决命令。在一些实施例中,3D管线922和媒体管线924不并发操作。管线冲刷被执行以促使活动图形管线完成任何未决命令。响应于管线冲刷,对于图形处理器的命令解析器将暂停命令处理直到活动绘图引擎完成未决操作为止,并且相应读高速缓存被无效。可选地,渲染高速缓存中被标记为“脏”的任何数据能被冲刷到存储器。在一些实施例中,管线冲刷命令912能被用于管线同步或在将图形处理器放入低功率状态。
在一些实施例中,当命令序列要求图形处理器在管线之间显式交换时,管线选择命令913被使用。在一些实施例中,管线选择命令913在发布管线命令之前在执行上下文内仅被要求一次,除非上下文是要对于双方管线发布命令。在一些实施例中,管线冲刷命令912经由管线选择命令913在管线交换之前立刻被要求。
在一些实施例中,管线控制命令914对于操作配置图形管线,并被用于编程3D管线922和媒体管线924。在一些实施例中,管线控制命令914对于活动管线配置管线状态。在一个实施例中,管线控制命令914被用于管线同步和在处理一批命令之前从活动管线内的一个或更多高速缓存存储器清理数据。
在一些实施例中,返回缓冲器状态命令916被用于对于相应管线配置返回缓冲器的集合以写数据。一些管线操作要求一个或更多返回缓冲器的分配、选择或配置,在处理期间所述操作写中间数据到其中。在一些实施例中,图形处理器也使用一个或更多返回缓冲器来存储输出数据和来执行交叉线程通信。在一些实施例中,返回缓冲器状态916包含选择返回缓冲器的大小和数量以用于管线操作的集合。
命令序列中剩余的命令基于活动管线而对于操作不同。基于管线确定920,命令序列被特制(tailor)以用于用3D管线状态930开始的3D管线922或在媒体管线状态940开始的媒体管线924。
对于3D管线状态930的命令包含对于顶点缓冲器状态、顶点元件状态、恒定颜色状态、深度缓冲器状态、和在3D基元(primitive)命令被处理之前要被配置的其它状态变量的3D状态设置命令。这些命令的值至少部分基于在用的具体3D API而被确定。在一些实施例中,3D管线状态930命令还能够选择性禁用或绕开某些管线元件(如果那些元件将不被使用)。
在一些实施例中,3D基元932命令被用于提交要由3D管线来处理的3D基元。经由3D基元932命令被传递到图形处理器的命令和所关联参数被转发到图形管线中的顶点提取功能。顶点提取功能使用3D基元932命令数据来生成顶点数据结构。顶点数据结构被存储在一个或更多返回缓冲器中。在一些实施例中,3D基元932命令被用于经由顶点着色器来执行3D基元上的顶点操作。为处理顶点着色器,3D管线922将着色器执行线程分派到图形处理器执行单元。
在一些实施例中,3D管线922经由执行934命令或事件而被触发。在一些实施例中,寄存器写触发命令执行。在一些实施例中,执行经由命令序列中的‘go’或‘kick’命令而被触发。在一个实施例中,使用管线同步命令,命令执行被触发以通过图形管线来冲刷命令序列。3D管线将对于3D基元来执行几何处理。一旦操作被完成,结果几何对象就被光栅化,并且像素引擎就染色结果像素。用于控制像素着色和像素后端操作的另外的命令也可对于那些操作被包含。
在一些实施例中,当执行媒体操作时,图形处理器命令序列910跟随媒体管线924路径。通常,对于媒体管线924的编程的方式和特定使用取决于要被执行的媒体或计算操作。在媒体解码期间,特定媒体解码操作可被卸载(offload)到媒体管线。在一些实施例中,媒体管线能还被绕过,并且使用由一个或更多通用处理核所提供的资源,媒体解码能被整体或部分执行。在一个实施例中,媒体管线还包含对于通用图形处理器单元(GPGPU)操作的元件,其中使用未显式涉及图形基元的渲染的计算着色器程序,图形处理器被用于执行SIMD向量操作。
在一些实施例中,媒体管线924以与3D管线922类似的方式被配置。媒体管线状态命令940的集合被分派或放置到命令队列中媒体对象命令942之前。在一些实施例中,媒体管线状态命令940包含用于配置将被用于处理媒体对象的媒体管线元件的数据。这包含用于配置媒体管线内的视频解码和视频编码逻辑的数据,诸如编码或解码格式。在一些实施例中,媒体管线状态命令940还支持到含有一批状态设置的“间接”状态元素的一个或更多指针的使用。
在一些实施例中,媒体对象命令942将指针供应给媒体对象以用于由媒体管线来处理。媒体对象包含含有要被处理的视频数据的存储器缓冲器。在一些实施例中,所有媒体管线状态必须在发布媒体对象命令942之前是有效的。一旦管线状态被配置并且媒体对象命令942被排队,媒体管线924就经由执行命令944或等效执行事件(例如,寄存器写)而被触发。来自媒体管线924的输出可随后被由3D管线922或媒体管线924所提供的操作后处理。在一些实施例中,GPGPU操作以与媒体操作类似的方式来配置并执行。
图15示出根据一些实施例对数据处理系统1000的示范性图形软件架构。在一些实施例中,软件架构包含3D图形应用1010、操作系统1020、和至少一个处理器1030。在一些实施例中,处理器1030包含图形处理器1032和一个或更多通用处理器核1034。图形应用1010和操作系统1020各自在数据处理系统的系统存储器1050中执行。
在一些实施例中,3D图形应用1010含有包含着色器指令1012的一个或更多着色器程序。着色器语言指令可用高级别着色器语言,诸如高级别着色器语言(HLSL)或OpenGL着色器语言(GLSL)。所述应用还包含适合于由通用处理器核1034来执行的用机器语言的可执行指令1014。所述应用还包含由顶点数据所定义的图形对象1016。
在一些实施例中,操作系统1020是来自微软公司的Microsoft® Windows®操作系统、由所有权的类UNIX操作系统、或使用Linux内核的变体之开源的类UNIX操作系统。当Direct3D API在使用中时,操作系统1020使用前端着色器编译器1024以将HLSL中的任何着色器指令1012编译成低级别着色器语言。编译可以是能执行着色器预编译的应用或刚好及时(just-in-time)(JIT)编译。在一些实施例中,高级别着色器在3D图形应用1010的编译期间被编译成低级别着色器。
在一些实施例中,用户模式图形驱动器1026含有用于将着色器指令1012转化成硬件特定表示的后端着色器编译器1027。当OpenGL API在使用中时,用GLSL高级别语言的着色器指令1012被传递到用户模式图形驱动器1026以用于编译。在一些实施例中,用户模式图形驱动器1026使用操作系统内核模式功能1028以与内核模式图形驱动器1029通信。在一些实施例中,内核模式图形驱动器1029与图形处理器1032通信以分派命令和指令。
至少一个实施例的一个或更多方面可通过存储在机器可读介质上的表示性代码来实现,所述表示性代码表示和/或定义诸如处理器的集成电路内的逻辑。例如,所述机器可读介质可包含表示该处理器内各种逻辑的指令。当由机器来读时,所述指令可促使所述机器构建逻辑来执行本文中所描述的技术。已知为“IP核”的此类表示对于集成电路是逻辑的可再使用单元,其可作为描述所述集成电路的结构的硬件模型被存储在有形的、机器可读介质上。所述硬件模型可被供应给各种用户或制造设施,其在制造所述集成电路的构建机器上加载所述硬件模型。所述集成电路可被构建使得所述电路执行与本文中所描述的任何实施例关联描述的操作。
图16是框图,其示出根据一实施例的可被用于制造用于执行操作的集成电路的IP核开发系统1100。IP核开发系统1100可被用于生成能被合并到更大设计中或被用于构筑整个集成电路(例如,SOC集成电路)的模块化的、可再使用的设计。设计设施1130能生成用高级别编程语言(例如,C/C++)的IP核设计的软件仿真1110。软件仿真1110能被用于设计、测试、和验证该IP核的行为。寄存器转移等级(RTL)设计能随后从仿真模型1100被创建或被合成。RTL设计1115是集成电路的行为的抽象(abstraction),其对硬件寄存器之间的数字信号的流进行建模,包含使用建模的数字信号来执行的关联逻辑。除RTL设计1115之外,在逻辑级别或晶体管级别处的较低级别设计也可被创建、被设计、或合成。因此,初始设计和仿真的具体细节可变化。
RTL设计1115或等效物可由设计设施进一步合成到硬件模型1120中,其可用硬件描述语言(HDL)、或物理设计数据的某一其它表示。HDL可被进一步仿真或测试以验证IP核设计。使用非易失性存储器1140(例如,硬盘、闪速存储器、或任何非易失性存储介质),IP核设计能被存储以用于到第三方构建设施1165的运送。备选地,IP核设计可在有线连接1150或无线连接1160上被传送(例如,经由因特网)。构建设施1165可随后构造至少部分基于IP核设计的集成电路。所构造的集成电路能被配置以执行依照本文中所描述的至少一个实施例操作。
图17是框图,其示出根据一实施例使用一个或更多IP核可被构建的示范性芯片上系统集成电路1200。所述示范性集成电路包含一个或更多应用处理器1205(例如,CPU)、至少一个图形处理器1210、并可另外包含图像处理器1215和/或视频处理器1220,其的任何一个可以是来自相同或多个不同设计设施的模块化IP核。所述集成电路包含外围设备或总线逻辑,包含USB控制器1225、UART控制器1230、SPI/SDIO控制器1235、和控制器1240。另外,所述集成电路能包含显示器装置1245,其被耦合到移动行业处理器接口(MIPI)显示器接口1255和高清多媒体接口(HDMI)控制器1250的一个或更多。存储器可由包含闪速存储器和闪速存储器控制器的闪速存储器子系统1260来提供。存储器接口可经由用于到SDRAM或SRAM存储器装置的访问的存储器控制器1265来提供。一些集成电路另外包含嵌入式安全引擎1270。
另外,其它逻辑和电路可被包含在集成电路1200的处理器中,包含另外图形处理器/核、外围设备接口控制器、或通用处理器核。
以下条款(clause)和/或示例属于进一步实施例:
一个示例实施例可以是一种方法,包括:使用基于调色板的编码器来压缩颜色值、寻找颜色值的群集并相对于具有预定义特性的颜色值来编码群集内的颜色值、以及编码具有带有恒定颜色值的像素或样本的群集。所述方法可还包含其中所述预定义特性是带有群集内最小颜色值的样本或像素。所述方法可还包含编码颜色通道恒定的事实。所述方法可还包含最小化成本的相对带有群集的所述预定义特性的样本或像素来编码余量。所述方法可还包含避免对带有恒定颜色的群集来编码余量。所述方法可还包含对每个通道使用一比特来编码它是否是恒定颜色。所述方法可还包含按颜色通道来提供比特的组以指示每通道需要多少余量比特。所述方法可还包含其中寻找群集包含使用K-均值群集化算法。所述方法可还包含寻找颜色周围的最小限定框。所述方法可还包含从调色板取第一颜色;在所述第一颜色周围建设群集;并随后如果第二颜色依据阈值而与所述第一颜色不同,则形成包含所述第二颜色的第二群集;以及适配确保颜色到所述第一和第二群集中。
在另一示例中,实施例可以是一个或更多存储指令的非暂态计算机可读介质,所述指令由处理器所执行以执行包括以下操作的序列:使用基于调色板的编码器来压缩颜色值、寻找颜色值的群集并相对于具有预定义特性的颜色值来编码群集内的颜色值、以及编码具有带有恒定颜色值的像素或样本的群集。所述介质可进一步存储指令,其中所述预定义特性是带有群集内最小颜色值的样本或像素。所述介质可进一步存储指令以执行包含以下操作的序列:编码颜色通道是恒定的事实。所述介质可进一步存储指令以执行包含以下操作的序列:最小化成本的相对带有群集的所述预定义特性的样本或像素来编码余量。所述介质可进一步存储指令以执行包含以下操作的序列:避免对带有恒定颜色的群集来编码余量。所述介质可进一步存储指令以执行包含以下操作的序列:对每个通道使用一比特来编码它是否是恒定颜色。所述介质可进一步存储指令以执行包含以下操作的序列:按颜色通道来提供比特的组以指示每通道需要多少余量比特。所述介质可进一步存储指令,其中寻找群集包含使用K-均值群集化算法。所述介质可进一步存储指令以执行包含以下操作的序列:寻找颜色周围的最小限定框。所述介质可进一步存储指令以执行包含以下操作的序列:从调色板取第一颜色;在所述第一颜色周围建设群集;并随后如果第二颜色依据阈值而与所述第一颜色不同,则形成包含所述第二颜色的第二群集;以及适配确保颜色到所述第一和第二群集中。
另一示例实施例可以是一种设备,包括:处理器,用于使用基于调色板的编码器来压缩颜色值、寻找颜色值的群集并相对于具有预定义特性的颜色值来编码群集内的颜色值、以及编码具有带有恒定颜色值的像素或样本的群集;以及存储装置,其被耦合到所述处理器。所述设备可包含其中所述预定义特性是带有群集内最小颜色值的样本或像素。所述设备可包含所述处理器,用于编码颜色通道是恒定的事实。所述设备可包含所述处理器,用于最小化成本的相对带有群集的所述预定义特性的样本或像素来编码余量。所述设备可包含所述处理器,用于避免对带有恒定颜色的群集来编码余量。所述设备可包含所述处理器,用于对每个通道使用一比特来编码它是否是恒定颜色。所述设备可包含所述处理器,用于按颜色通道来提供比特的组以指示每通道需要多少余量比特。所述设备可包含所述处理器,用于使用K-均值群集化算法来寻找群集。所述设备可包含所述处理器,用于寻找颜色周围的最小限定框。所述设备还包含所述处理器,用于从调色板取第一颜色;在所述第一颜色周围建设群集;并随后如果第二颜色依据阈值而与所述第一颜色不同,则形成包含所述第二颜色的第二群集;以及适配确保颜色到所述第一和第二群集中。
本文中所描述的图形处理技术可被实现在各种硬件架构中。例如,图形功能性可被集成在芯片集内。备选地,离散图形处理器可被使用。还如另一实施例,图形功能可由包含多核处理器的通用处理器来实现。
贯穿本说明书参考“一个实施例”或“一实施例”意味着连同该实施例所描述的具体特征、结构、或特性被包含在涵盖在本公开内的至少一个实现中。因此,短语“一个实施例”或“在一实施例中”的出现不必要指的是相同实施例。此外,所述具体特征、结构、或特性可以不同于所示出的具体实施例的其它适合形式来制定(institute),并且所有此类形式可被涵盖在本应用的权利要求之内。
虽然有限数量的实施例已被描述,但本领域那些技术人员将理解来自其的众多修改和变型。随附的权利要求旨在覆盖如落入本公开的真正精神和范畴之内的所有此类修改和变型。

Claims (25)

1.一种方法,包括:
使用基于调色板的编码器来压缩颜色值;
寻找颜色值的群集并相对于具有预定义特性的颜色值来编码群集内的颜色值;以及
编码具有带有恒定颜色值的像素或样本的群集。
2.如权利要求1所述的方法,其中所述预定义特性是带有群集内最小颜色值的样本或像素。
3.如权利要求1所述的方法,包含编码颜色通道是恒定的事实。
4.如权利要求1所述的方法,包含最小化成本的相对带有群集的所述预定义特性的样本或像素来编码余量。
5.如权利要求4所述的方法,包含避免对带有恒定颜色的群集来编码余量。
6.如权利要求3所述的方法,包含对每个通道使用一比特来编码它是否是恒定颜色。
7.如权利要求4所述的方法,包含按颜色通道来提供比特的组以指示每通道需要多少余量比特。
8.如权利要求1所述的方法,其中寻找群集包含使用K-均值群集化算法。
9.如权利要求8所述的方法,包含寻找颜色周围的最小限定框。
10.如权利要求1所述的方法,包含:从调色板取第一颜色;在所述第一颜色周围建设群集;并且随后如果第二颜色依据阈值而与所述第一颜色不同,则形成包含所述第二颜色的第二群集;以及适配确保颜色到所述第一和第二群集中。
11.一个或更多存储指令的非暂态计算机可读介质,所述指令由处理器所执行以执行包括以下操作的序列:
使用基于调色板的编码器来压缩颜色值;
寻找颜色值的群集并相对于具有预定义特性的颜色值来编码群集内的颜色值;以及
编码具有带有恒定颜色值的像素或样本的群集。
12.如权利要求11所述的介质,其中所述预定义特性是带有群集内最小颜色值的样本或像素。
13.如权利要求11所述的介质,所述序列包含编码颜色通道是恒定的事实。
14.如权利要求11所述的介质,所述序列包含最小化成本的相对带有群集的所述预定义特性的样本或像素来编码余量。
15.如权利要求14所述的介质,所述序列包含避免对带有恒定颜色的群集来编码余量。
16.如权利要求13所述的介质,所述序列包含对每个通道使用一比特来编码它是否是恒定颜色。
17.如权利要求14所述的介质,所述序列包含按颜色通道来提供比特的组以指示每通道需要多少余量比特。
18.如权利要求11所述的介质,其中寻找群集包含使用K-均值群集化算法。
19.如权利要求18所述的介质,所述序列包含寻找颜色周围的最小限定框。
20.如权利要求11所述的介质,所述序列包含:从调色板取第一颜色;在所述第一颜色周围建设群集;并且随后如果第二颜色依据阈值而与所述第一颜色不同,则形成包含所述第二颜色的第二群集;以及适配确保颜色到所述第一和第二群集中。
21. 一种设备,包括:
处理器,用于使用基于调色板的编码器来压缩颜色值、寻找颜色值的群集并相对于具有预定义特性的颜色值来编码群集内的颜色值、以及编码具有带有恒定颜色值的像素或样本的群集;以及
存储装置,被耦合到所述处理器。
22.如权利要求21所述的设备,其中所述预定义特性是带有群集内最小颜色值的样本或像素。
23.如权利要求21所述的设备,所述处理器用于编码颜色通道是恒定的事实。
24.如权利要求21所述的设备,所述处理器用于最小化成本的相对带有群集的所述预定义特性的样本或像素来编码余量。
25.如权利要求24所述的设备,所述处理器用于避免对带有恒定颜色的群集来编码余量。
CN201680012046.2A 2015-03-24 2016-02-24 群集的调色板压缩 Pending CN107257989A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/666,452 US9460365B1 (en) 2015-03-24 2015-03-24 Clustered palette compression
US14/666452 2015-03-24
PCT/US2016/019219 WO2016153686A1 (en) 2015-03-24 2016-02-24 Clustered palette compression

Publications (1)

Publication Number Publication Date
CN107257989A true CN107257989A (zh) 2017-10-17

Family

ID=56976538

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201680012046.2A Pending CN107257989A (zh) 2015-03-24 2016-02-24 群集的调色板压缩

Country Status (5)

Country Link
US (2) US9460365B1 (zh)
EP (1) EP3275185A4 (zh)
CN (1) CN107257989A (zh)
TW (2) TWI633518B (zh)
WO (1) WO2016153686A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108776982A (zh) * 2018-05-31 2018-11-09 苏州蜗牛数字科技股份有限公司 一种基于调色板压缩图片的显示方法
CN111462257A (zh) * 2020-03-31 2020-07-28 上海兆芯集成电路有限公司 基于调色板的图像处理方法

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9460365B1 (en) * 2015-03-24 2016-10-04 Intel Corporation Clustered palette compression
US10062143B2 (en) * 2016-09-12 2018-08-28 Advanced Micro Devices, Inc. Method and apparatus for compressing randomly accessed data
WO2019075702A1 (en) * 2017-10-19 2019-04-25 Tencent Technology (Shenzhen) Company Limited METHODS AND SYSTEMS FOR PROCESSING GRAPHICS
CN108898180B (zh) * 2018-06-28 2020-09-01 中国人民解放军国防科技大学 一种面向单颗粒冷冻电镜图像的深度聚类方法
CN113408573B (zh) * 2021-05-11 2023-02-21 广东工业大学 基于机器学习的瓷砖色号自动分类归类的方法及装置

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6434076A (en) * 1987-07-29 1989-02-03 Sony Corp Recorder for digital signal
US4965845A (en) * 1985-09-05 1990-10-23 Harris Corporation Compression and reconstruction of color aeronautical chart images
US20020039441A1 (en) * 1998-12-21 2002-04-04 Xerox Corportion Method of selecting colors for pixels within blocks for block truncation encoding
WO2002069270A1 (en) * 2001-02-28 2002-09-06 Ccc Network Systems Group Limited Method and system for image compression with improved colour palette selection
CN1458628A (zh) * 2002-04-25 2003-11-26 微软公司 采用掩码便于文档图像压缩的系统和方法
GB0415067D0 (en) * 2003-11-11 2004-08-04 Fujitsu Ltd Colour image compressing method and device
CN101160972A (zh) * 2005-04-13 2008-04-09 汤姆逊许可公司 利用公共预测器的亮度和色度编码
CN101170487A (zh) * 2006-10-25 2008-04-30 华为技术有限公司 数据流复用中的压缩方法和压缩系统以及压缩设备
CN101663896A (zh) * 2007-04-23 2010-03-03 汤姆森许可贸易公司 用于对视频数据进行编码的方法和设备、用于对编码的视频数据和编码的视频信号进行解码的方法和设备
CN103491374A (zh) * 2012-06-12 2014-01-01 京瓷办公信息系统株式会社 基于单元的数字图像压缩的方法及计算设备
CN104244007A (zh) * 2013-06-13 2014-12-24 上海天荷电子信息有限公司 基于任意形状匹配的图像压缩方法和装置

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5883633A (en) * 1997-04-15 1999-03-16 Microsoft Corporation Method and system of variable run length image encoding using sub-palette
GB0128888D0 (en) * 2001-12-03 2002-01-23 Imagination Tech Ltd Method and apparatus for compressing data and decompressing compressed data
US7525552B2 (en) * 2004-04-21 2009-04-28 Slipstream Data Inc. Method, system and software product for color image encoding
KR100965205B1 (ko) * 2004-10-05 2010-06-24 깃세이 야쿠힌 고교 가부시키가이샤 하부요로 폐색 질환에 따른 축뇨장해의 예방 및/또는치료제
US20060204086A1 (en) * 2005-03-10 2006-09-14 Ullas Gargi Compression of palettized images
WO2009092455A2 (en) * 2008-01-21 2009-07-30 Telefonaktiebolaget Lm Ericsson (Publ) Prediction-based image processing
CN101919250B (zh) * 2008-01-21 2012-11-21 艾利森电话股份有限公司 压缩多个像素块的方法和压缩器、以及对压缩像素块进行解压的方法和解压器
EP2081155B1 (en) * 2008-01-21 2011-11-16 Telefonaktiebolaget LM Ericsson (publ) Prediction-based image processing
EP2107812A1 (en) * 2008-04-03 2009-10-07 STMicroelectronics (Grenoble) SAS Compression/decompression of digital images
EP2128822B1 (en) * 2008-05-27 2012-01-04 TELEFONAKTIEBOLAGET LM ERICSSON (publ) Index-based pixel block processing
TWI357757B (en) * 2008-08-14 2012-02-01 Univ Nat Pingtung Sci & Tech Method of color quantization
US9232226B2 (en) * 2008-08-19 2016-01-05 Marvell World Trade Ltd. Systems and methods for perceptually lossless video compression
US9313526B2 (en) * 2010-02-19 2016-04-12 Skype Data compression for video
JP2012085029A (ja) * 2010-10-08 2012-04-26 Fujitsu Semiconductor Ltd 画像処理装置
AU2010257408B2 (en) * 2010-12-23 2013-10-03 Canon Kabushiki Kaisha Colour encoding clustering
US8655086B1 (en) * 2011-11-01 2014-02-18 Zynga, Inc. Image compression with alpha channel data
US8615138B2 (en) * 2011-11-03 2013-12-24 Google Inc. Image compression using sub-resolution images
US9558567B2 (en) * 2013-07-12 2017-01-31 Qualcomm Incorporated Palette prediction in palette-based video coding
US10055189B2 (en) * 2014-01-02 2018-08-21 Vid Scale, Inc. Two-dimensional palette coding for screen content coding
US10045029B2 (en) 2014-05-06 2018-08-07 Intel Corporation Clustering and encoding for color compression
US9460365B1 (en) * 2015-03-24 2016-10-04 Intel Corporation Clustered palette compression

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4965845A (en) * 1985-09-05 1990-10-23 Harris Corporation Compression and reconstruction of color aeronautical chart images
JPS6434076A (en) * 1987-07-29 1989-02-03 Sony Corp Recorder for digital signal
US20020039441A1 (en) * 1998-12-21 2002-04-04 Xerox Corportion Method of selecting colors for pixels within blocks for block truncation encoding
WO2002069270A1 (en) * 2001-02-28 2002-09-06 Ccc Network Systems Group Limited Method and system for image compression with improved colour palette selection
CN1458628A (zh) * 2002-04-25 2003-11-26 微软公司 采用掩码便于文档图像压缩的系统和方法
GB0415067D0 (en) * 2003-11-11 2004-08-04 Fujitsu Ltd Colour image compressing method and device
CN101160972A (zh) * 2005-04-13 2008-04-09 汤姆逊许可公司 利用公共预测器的亮度和色度编码
CN101170487A (zh) * 2006-10-25 2008-04-30 华为技术有限公司 数据流复用中的压缩方法和压缩系统以及压缩设备
CN101663896A (zh) * 2007-04-23 2010-03-03 汤姆森许可贸易公司 用于对视频数据进行编码的方法和设备、用于对编码的视频数据和编码的视频信号进行解码的方法和设备
CN103491374A (zh) * 2012-06-12 2014-01-01 京瓷办公信息系统株式会社 基于单元的数字图像压缩的方法及计算设备
CN104244007A (zh) * 2013-06-13 2014-12-24 上海天荷电子信息有限公司 基于任意形状匹配的图像压缩方法和装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
贾颖等: ""多通道自适应码流(MC-AoB)彩色图像编码"", 《武汉大学学报(理学版)》 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108776982A (zh) * 2018-05-31 2018-11-09 苏州蜗牛数字科技股份有限公司 一种基于调色板压缩图片的显示方法
CN111462257A (zh) * 2020-03-31 2020-07-28 上海兆芯集成电路有限公司 基于调色板的图像处理方法
CN111462257B (zh) * 2020-03-31 2023-06-23 格兰菲智能科技有限公司 基于调色板的图像处理方法

Also Published As

Publication number Publication date
TW201702984A (zh) 2017-01-16
TW201812694A (zh) 2018-04-01
TWI633518B (zh) 2018-08-21
US9460365B1 (en) 2016-10-04
US10121264B2 (en) 2018-11-06
WO2016153686A1 (en) 2016-09-29
EP3275185A4 (en) 2018-09-12
EP3275185A1 (en) 2018-01-31
TWI609350B (zh) 2017-12-21
US20170011532A1 (en) 2017-01-12
US20160283825A1 (en) 2016-09-29

Similar Documents

Publication Publication Date Title
US10262456B2 (en) Method and apparatus for extracting and using path shading coherence in a ray tracing architecture
CN107257989A (zh) 群集的调色板压缩
CN107250996A (zh) 用于存储器分级体系的压实
US20190087680A1 (en) Edge-Based Coverage Mask Compression
CN106575431A (zh) 用于高度高效的图形处理单元(gpu)执行模型的方法和装置
CN108701347A (zh) 用于多格式无损压缩的方法和装置
US10229468B2 (en) Automated conversion of GPGPU workloads to 3D pipeline workloads
CN108475441A (zh) 光线追踪期间的详细级别选择
US10909753B2 (en) Method and apparatus for sampling pattern generation for a ray tracing architecture
TWI601096B (zh) 用於細分表面的直接和互動式射線追蹤之方法及設備
US9632979B2 (en) Apparatus and method for efficient prefix sum operation
CN106662999A (zh) 用于simd结构化分支的方法和装置
CN107077833A (zh) 用于最后排序架构的高效的帧到帧相干性利用的装置和方法
CN106575440A (zh) 恒定缓冲器大小多采样抗混叠深度压缩
WO2017007557A1 (en) Dynamic thread splitting
CN107004293A (zh) 仅位置流水线中的宽松拣分
CN107004294A (zh) 用于高吞吐量栅格器的方法和装置
CN113052746A (zh) 用于多适配器编码的装置和方法
WO2017112155A1 (en) Multiple-patch simd dispatch mode for domain shaders

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