CN117880521A - 用于纹理解压缩的多输出解码器 - Google Patents

用于纹理解压缩的多输出解码器 Download PDF

Info

Publication number
CN117880521A
CN117880521A CN202410178460.7A CN202410178460A CN117880521A CN 117880521 A CN117880521 A CN 117880521A CN 202410178460 A CN202410178460 A CN 202410178460A CN 117880521 A CN117880521 A CN 117880521A
Authority
CN
China
Prior art keywords
data
color
texels
block
decoding
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
CN202410178460.7A
Other languages
English (en)
Inventor
Y-C·富
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.)
Imagination Technologies Ltd
Original Assignee
Imagination 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 Imagination Technologies Ltd filed Critical Imagination Technologies Ltd
Publication of CN117880521A publication Critical patent/CN117880521A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/001Texturing; Colouring; Generation of texture or colour
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/04Texture mapping
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/192Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding the adaptation method, adaptation tool or adaptation type being iterative or recursive
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/20Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video object coding
    • H04N19/29Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video object coding involving scalability at the object level, e.g. video object layer [VOL]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/436Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation using parallelised computational arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Computer Graphics (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Image Generation (AREA)
  • Image Processing (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)

Abstract

用于纹理解压缩的多输出解码器。提供从接收到的根据ASTC格式编码的纹理数据块解码多个纹素的解码器,其包括:参数解码单元,对针对接收到的纹理数据块的配置数据解码;颜色解码单元,根据配置数据对针对块的多个纹素的颜色端点数据解码;权重解码单元,根据配置数据对针对块的多个纹素中的每个的插值权重数据解码;至少一个插值器单元,使用针对块的多个纹素中的每个的插值权重数据和来自颜色端点数据的一对颜色端点计算针对该纹素的颜色值,参数解码单元、颜色解码单元和权重解码单元中的至少一者从块解码中间数据,中间数据对于该块的至少纹素子集的解码来说是公用的并使用解码后的中间数据作为从纹理数据块解码多个纹素中的至少两个的一部分。

Description

用于纹理解压缩的多输出解码器
本申请是原案申请号为201810401763.5、申请日为2018年4月28日、发明名称为“用于纹理解压缩的多输出解码器”的发明专利申请的分案申请。
技术领域
本发明涉及一种用于对纹理数据进行解压缩的多输出解码器。具体地,本发明涉及用于对根据自适应可缩放纹理压缩(ASTC)格式压缩的纹理数据进行解码的多输出解码器。
背景技术
纹理在图形处理领域被大量使用。纹理可以用于表示表面特性、照明(例如,在正被成像的场景的环境内)或者将表面细节应用于正被渲染的对象。纹理可能需要相对大量的内存存储器,并且纹理访问可能占用图形设备的内存带宽的很大比例。如此,通常期望对纹理数据进行压缩。
一种纹理压缩格式被称为自适应可缩放纹理压缩(ASTC)。
在ASTC中,压缩后的图像或纹理被细分为多个数据块,其中,每个数据块表示针对形成纹理的纹素(texel)块的纹理数据。每个数据块具有128位的固定内存印迹(memoryfootprint)(即,具有固定大小)。但是,数据块能够表示针对不同数量纹素的纹理数据。由单个数据块表示的纹素的数量可以被称为块印迹。对于给定纹理,块印迹可能是固定的。块印迹的高度和宽度(以纹素为单位)通常可从多个预定义大小中选择。印迹可以是矩形的,并且在某些情况下,块的印迹可以是正方形的。对于2D纹理,块印迹的示例包括4×4纹素;6×6纹素;8×8纹素以及12×12纹素(分别给出每像素8位(bpp);3.56bpp;2bpp和0.89bpp的压缩率)。
块内的每个纹素的颜色被定义为一对颜色之间的线性梯度上的点。该对颜色被称为一对“颜色端点”。针对每个纹素的颜色可以通过在一对颜色端点之间进行插值来计算。插值权重可以用于指定两个颜色端点(即,在这些颜色端点之间的线性梯度上的位置)的加权平均值,从而定义针对该纹素的颜色。在图1A中示意性地示出该处理,图1A示出了在标记为102的红-绿(RB)颜色空间中的一对颜色端点A(表示为104)和B(表示为106)。在该示例中,每个纹素可以具有五个权重中的一个:0/4(对应于颜色A);1/4;2/4;3/4;或4/4(对应于颜色B)。在图1B中示出了针对4×4块的每个纹素的纹素权重的示例。尽管针对RB颜色空间的简单示例被示出,但当在诸如RGB或RGBA的不同颜色空间中工作时,也应用相同方法。
每个颜色端点可以由一个或多个颜色值组成。颜色端点可以由多达四个颜色值组成。在对纹素进行解码时,颜色值将从数据块被解码并且然后这些值被转换为颜色端点。颜色值转换为颜色端点的方式由已知参数定义为颜色端点模式。关于用于纹素的颜色端点模式的信息在数据块内被编码。ASTC规范定义了16个可能颜色端点模式,所述模式从根据单个颜色值计算颜色端点到根据四个颜色值计算颜色端点变化。
插值权重可以以权重网格的形式被存储,该权重网格是与数据块中表示的纹素块对应的权重值的2-D网格。在某些编码中,可以针对数据块中的每个纹素存储插值权重(即,权重网格的尺寸对应于块印迹的尺寸)。然而,对于表示针对更大数量纹素(例如,12×12纹素)的纹理数据的数据块,块内可能不存在足够数据以存储针对每个纹素的插值权重。在这种情况下,可以存储包含比每个数据块内的纹素数量更少的权重的稀疏权重网格。然后,可以从该稀疏权重网格的插值计算针对数据块中的每个纹素的权重。
为了做到这一点,块中的纹素的坐标首先被缩放到权重网格的尺寸。坐标被缩放一缩放因子,该缩放因子将权重网格的尺寸缩放到块印迹的尺寸。然后,纹素相对于权重网格的重新缩放位置被用于选择权重网格的权重子集并且对这些权重进行插值以计算针对纹素的权重。例如,来自权重网格的四个权重可以被选择并被插值以计算针对纹素的权重。
在某些情况下,单对颜色端点可以用于计算针对数据块内的每个纹素的颜色。然而,在其它情况下,块可以表示具有不同颜色的混合的纹素,所述混合不能通过在单对颜色端点之间进行插值来合理地表示。为了解决这个问题,可以将数据块中的每个纹素分配给多达四个分区中的一个,其中,每个分区都与其自己的颜色端点对相关联。为了确定块内的纹素的颜色,确定纹素所属的分区,并根据针对该纹素的插值权重和与该分区相关联的颜色端点对计算颜色。插值权重可以独立于颜色端点对(即,独立于纹素所属的分区)被存储和编码在数据块内。
这在图2A和图2B中示意性地例示。图2A示出了由端点颜色A和B形成的第一颜色端点对202、以及由RB颜色空间206内的端点颜色C和D形成的第二颜色端点对204。第一端点对属于第一分区,并且第二端点对属于第二分区。因此,在该示例中,存在两个分区。每个颜色端点对可以利用五个权重进行插值。图2B示出了由纹理数据块表示的纹素块208。分区掩码(partitioning mask)被示出为覆盖在纹素块上,指示每个纹素属于哪个分区。分区掩码是值的网格,其中,每个值指示纹素属于哪个分区。每个值可以像这样被称为分区索引。具体地,值1指示纹素属于第一分区(与颜色端点对202相关联);并且值2表示纹素属于第二分区(与颜色端点对204相关联);还示出了针对每个纹素的权重。为了确定针对纹素的颜色,分区索引被用于识别颜色端点对,并且权重被用于在该对之间进行插值。例如,纹素210具有为1的分区索引和为3/4的权重,并且因此具有由RB颜色空间中的位置212定义的颜色。纹素214具有为2的分区索引和为1/4的权重,并且因此具有由RB颜色空间中的位置216定义的颜色。
尽管ASTC可以提供压缩纹理数据的有效方式,但是根据ASTC压缩的纹理数据的解码可能具有某些缺点。
根据ASTC格式压缩的纹理数据可以由ASTC解码器解码或解压缩。通常,这些解码器操作以从数据块(其中,该数据块包含针对至少4×4纹素块的数据)解码单个纹素。这意味着如果需要同时从块解码多于一个纹素(例如,将在过滤操作中使用解码后的纹素),则需要多个解码器来并行地解码数据块。就硬件资源和硅面积而言,这可能是昂贵的。
发明内容
根据本发明,提供了一种被配置为从接收到的根据自适应可缩放纹理压缩(ASTC)格式编码的纹理数据块解码多个纹素的解码器,该解码器包括:参数解码单元,所述参数解码单元被配置为对针对接收到的纹理数据块的配置数据进行解码;颜色解码单元,所述颜色解码单元被配置为根据配置数据对针对接收到的块的多个纹素的颜色端点数据进行解码;权重解码单元,权重解码单元被配置为根据所述配置数据对针对接收到的块的多个纹素中的每个的插值权重数据进行解码;以及至少一个插值器单元,所述至少一个插值器单元被配置为使用针对接收到的块的多个纹素中的每个的插值权重数据和来自颜色端点数据的一对颜色端点来计算针对该纹素的颜色值;其中,参数解码单元、颜色解码单元和权重解码单元中的至少一者被配置为从接收到的块解码中间数据,所述中间数据对于从该块解码纹素来说是公用的,并且使用解码后的公用中间数据作为从接收到的纹理数据块解码多个纹素中的至少两个的一部分。
参数解码单元、颜色解码单元和权重解码单元中的至少一者可以被配置为使用相同数据作为解码多个纹素中的每个的一部分。
配置数据的第一部分对于从接收到的块解码多个纹素可以是公用的,并且权重解码单元可以被配置为使用该配置数据的第一部分用于解码针对多个纹素中的每个的插值权重数据。
配置数据的第一部分可以包括以下中的至少一者:指定权重网格的尺寸的权重网格大小;以及指定由网格的权重占据的值的范围的权重范围。
配置数据的第二部分对于从接收到的块解码多个纹素可以是公用的,并且颜色解码单元可以被配置为使用该配置数据的第二部分用于解码针对多个纹素中的每个的颜色端点数据。
配置数据的第二部分可以包括指定如何将一组颜色端点值转换成一对颜色端点的颜色端点模式数据。
参数解码单元可以被配置为:从块解码中间配置数据,作为对配置数据进行解码的一部分;并且使用该相同中间配置数据解码针对多个纹素中的每个的分区索引。
中间配置数据可以包括以下中的至少一者:分区模式索引;以及分区号。
颜色解码单元可以被配置为:从块解码中间颜色数据,作为对颜色端点数据进行解码的一部分,该中间颜色数据独立于从该块解码的纹素;并且使用该中间颜色数据解码针对多个纹素中的每个的颜色端点数据。
中间颜色数据可以包括块内用于表示颜色端点的数据的大小。
中间颜色数据还可以包括指定如何将一组颜色端点值转换成一对颜色端点的颜色端点模式数据。
颜色解码单元可以被配置为对一组颜色值进行解码并且将这些值转换成针对多个纹素中的每个的一对颜色端点,颜色解码单元还可以被配置为使用针对多个纹素中的两个或更多个纹素的颜色端点中的至少一者。
由块表示的纹素可以被划分为np个分区,并且颜色解码单元可以被配置为对一组nv个颜色值进行解码并且将这些值转换为针对多个纹素中的每个的一对颜色端点,每个颜色端点由ncv个颜色值形成,其中,nv<2npncv
在一些示例中,np=4,ncv=4并且nv=18。
权重解码单元可以被配置为:从块解码中间权重数据,作为对插值权重数据进行解码的一部分,该中间权重数据对于从接收到的块解码纹素来说是公用的;并且使用该数据对针对多个纹素中的每个的插值权重数据进行解码。
纹理数据块可以表示n×m纹素块,并且中间权重数据可以包括用于将权重网格缩放至由纹理数据块表示的n×m纹素块的缩放因子。
中间数据可以包括块内用于表示插值权重数据的数据的大小。
由块表示的纹素可以被划分为np个分区,并且解码器可以包括np个插值器,每个插值器被配置为使用针对该纹素的插值权重数据和来自颜色端点数据的相应一对颜色端点计算针对相应分区中的纹素子集的颜色值。
纹理数据块可以表示n×m纹素块,并且解码器可以被配置为对p×q纹素块进行解码,其中,p≤n并且q≤m。
解码器可以被配置为对2×2纹素块进行解码。
根据本公开的第二方面,提供了一种从接收到的根据自适应可缩放纹理压缩(ASTC)格式编码的纹理数据块解码多个纹素的方法,所述方法包括以下步骤:
对针对接收到的纹理数据块的配置数据进行解码;
根据配置数据对针对接收到的块的多个纹素的颜色端点数据进行解码;
根据配置数据对针对接收到的块的多个纹素中的每个的插值权重数据进行解码;以及
使用针对接收到的块的多个纹素中的每个的插值权重数据和来自颜色端点数据的一对颜色端点来计算针对该纹素的颜色值;
其中,配置数据的解码、颜色端点数据的解码和插值权重数据的解码中的至少一者包括从接收到的块解码对于从该块解码纹素来说是公用的中间数据,并且将解码后的相同中间数据用于从接收到的纹理数据块解码多个纹素中的至少两个。
其中,配置数据的解码、颜色端点数据的解码和插值权重数据的解码中的至少一者可以包括从块解码对于从该块解码纹素来说是公用的中间数据,并且将该相同数据用于解码多个纹素中的每个。
配置数据的第一部分对于从接收到的块解码多个纹素可以是公用的,并且对插值权重数据进行解码的步骤可以包括使用配置数据的该第一部分用于解码针对多个纹素中的每个的插值权重数据。
配置数据的第一部分可以包括以下中的至少一者:指定权重网格的尺寸的权重网格大小;以及指定由网格的权重占据的值的范围的权重范围。
配置数据的第二部分对于从接收到的块解码多个纹素可以是公用的,并且对颜色端点数据进行解码的步骤可以包括使用该配置数据的第二部分用于解码针对多个纹素中的每个的颜色端点数据。
配置数据的第二部分可以包括指定如何将一组颜色端点值转换成一对颜色端点的颜色端点模式数据。
对配置数据进行解码的步骤可以包括从块解码中间配置数据并且使用相同中间配置数据解码针对多个纹素中的每个的分区索引。
中间配置数据可以包括以下中的至少一者:分区模式索引;以及分区号。
对颜色端点数据进行解码的步骤可以包括:从块解码中间颜色数据,该中间颜色数据独立于从该块解码的纹素;以及使用该中间颜色数据解码针对多个纹素中的每个的颜色端点数据。
中间颜色数据可以包括块内用于表示颜色端点的数据的大小。
中间颜色数据还可以包括指定如何将一组颜色端点值转换成一对颜色端点的颜色端点模式数据。
对颜色端点数据进行解码的步骤可以包括对一组颜色值进行解码,并将这些值转换成针对多个纹素中的每个的一对颜色端点,其中,颜色端点中的至少一者可以用于多个纹素中的两个或更多个。
由块表示的纹素可以被划分为np个分区,并且对颜色端点数据进行解码的步骤可以包括对一组nv个颜色值进行解码并且将这些值转换为针对多个纹素中的每个的一对颜色端点,每个颜色端点由ncv个颜色值形成,其中,nv<2npncv
在一些示例中,np=4,ncv=4并且nv=18。
对插值权重数据进行解码的步骤可以包括:从块解码中间权重数据,该中间权重数据独立于从该块解码的纹素;并且使用该数据解码针对多个纹素中的每个的插值权重数据。
纹理数据块可以表示n×m纹素块,并且中间权重数据可以包括用于将权重网格缩放至由纹理数据块表示的n×m纹素块的缩放因子。
中间数据可以包括块内用于表示插值权重数据的数据的大小。
纹理数据块可以表示n×m纹素块,并且该方法可以包括对p×q纹素块进行解码,其中,p≤n并且q≤m。
该方法还可以包括对2×2纹素块进行解码。
可以提供一种被配置为执行本文描述的任何方法的解码器。
解码器可以被具体实现在集成电路上的硬件中。
可以提供一种如本文的任何示例中所描述的制造解码器的方法。
可以提供计算机可读代码,该计算机可读代码被配置为使得当代码运行时执行本文描述的任何方法。
可以提供一种在上面编码有上述计算机可读代码的计算机可读存储介质。
可以提供一种集成电路定义数据集,当在集成电路制造系统中被处理时,该集成电路定义数据集将集成电路制造系统配置为制造如本文的任何示例中所述的解码器。
可以提供一种非暂时性计算机可读存储介质,所述非暂时性计算机可读存储介质上面存储有集成电路的计算机可读描述,当计算机可读描述在集成电路制造系统中被处理时,使得集成电路制造系统制造如本文任何示例中所描述的解码器。
可以提供一种被配置为制造如本文的任何示例中所描述的解码器的集成电路制造系统。
可以提供一种集成电路制造系统,所述集成电路制造系统包括:
非暂时性计算机可读存储介质,所述非暂时性计算机可读存储介质上面存储有描述解码器的集成电路的计算机可读描述;
布局处理系统,所述布局处理系统被配置为处理所述集成电路描述,以生成具体实现所述解码器的集成电路的电路布局描述;以及
集成电路生成系统,所述集成电路生成系统被配置为根据电路布局描述来制造解码器,
其中,解码器包括:
参数解码单元,所述参数解码单元被配置为对用于纹理数据块的配置数据进行解码;
颜色解码单元,所述颜色解码单元被配置为根据配置数据对针对块的多个纹素的颜色端点数据进行解码;
权重解码单元,权重解码单元被配置为根据所述配置数据对针对多个纹素中的每个的插值权重数据进行解码;以及
至少一个插值器单元,所述至少一个插值器单元被配置为使用针对多个纹素中的每个的插值权重数据和来自颜色端点数据的一对颜色端点来计算针对该纹素的颜色值;
其中,参数解码单元、颜色解码单元和权重解码单元中的至少一者被配置为从块解码数据,所述数据独立于从该块解码的纹素,并且被配置为使用该相同数据作为解码多个纹素中的至少两个的一部分。
附图说明
下面将参照附图通过示例的方式描述本公开。在附图中:
图1A示出了位于RB颜色空间内的颜色端点对。
图1B示出了4×4纹素块和用于在颜色端点对之间进行插值的指示针对每个纹素的权重的权重网格。
图2A示出了位于RB颜色空间内的两个颜色端点对。
图2B示出了具有指示每个纹素的分区索引的分区掩码的4×4纹素块和指示针对每个纹素的权重的权重网格。
图3示出了用于从根据ASTC规范压缩的数据块解码多个纹素的多输出解码器。
图4示出了针对纹素数据块和将从该块解码的纹素子块的块印迹。
图5示出了形成图3所示的解码器的一部分的参数解码单元的示例结构。
图6示出了形成图3所示的解码器的一部分的颜色解码单元的示例结构。
图7示出了形成图3所示的解码器的一部分的权重解码单元的示例结构。
图8示出了块内的纹素的坐标如何被重新缩放到权重网格的尺寸的视图。
图9示出了用于从ASTC编码纹理数据块解码多个纹素的步骤的流程图。
图10示出了集成电路制造系统的示例。
具体实施方式
本公开涉及能够从根据自适应可缩放纹理压缩(ASTC)格式压缩的纹理数据块解码多个纹素的多输出解码器。纹理数据块可以表示或编码n×m纹素块。n×m纹素块的大小(如由n和m的值控制)可以被称为块的印迹,并且可从ASTC标准规定的多个预定义大小选择。纹理数据块的大小(被称为其内存印迹)被固定为128位。多输出解码器能够从接收到的单个数据块解码在2≤nt≤nm范围内的多个纹素nt。例如,多输出解码器可以从纹理数据块解码p×q纹素块,其中,p≤n且q≤m。
为了从纹理数据块解码纹素,从接收到的数据块解码在解码处理期间使用的中间数据,以便解码最终纹素颜色值。中间数据是从块解码的在解码处理的一部分期间使用的数据,但其本身可能不表示最终解码纹素颜色。该中间数据的一部分对于解码从接收到的数据块解码的多个纹素中的至少一个子集(即,一个或多个纹素)是公用的。该中间数据的一部分可以独立于从块解码的纹素-也就是说,无论来自给定数据块中的多少或哪些纹素正在被解码,针对该块的中间数据的一部分都是相同的。换句话说,中间数据的一部分对于从纹理数据块解码每个纹素来说是公用的。该数据是每块指定的数据。
该公用中间数据的示例将在下面更详细地解释,但是例如包括数据的分区的数量、纹理平面的数量和权重值的范围。已经认识到,对于多输出解码器,解码后的该公用中间数据中的一些或全部可以用于解码从数据块解码的多个纹素中的至少两个。在一些情况下,公用中间数据的部分或全部可以用于解码多个纹素中的每个。也就是说,不是针对从块解码的每个纹素解码该中间数据,而是在一些情况下,可以仅对中间数据解码一次,并且然后将该相同数据用作从纹理数据块解码多个纹素中的每个的一部分。因此,每块数据的相同实例可以被用作从纹理数据块解码多个纹素中的每个的一部分。这允许解码器中的同一硬件被用作解码多个纹素中的每个的一部分。这又意味着多输出解码器可以操作以从块并行地解码多个纹素,而与并行操作多个传统ASTC解码器相比,不需要解码硬件大小的相称增加,在传统ASTC解码器中,每个传统ASTC解码器仅从纹理数据块解码仅单个纹素。
图3示出了用于从根据ASTC格式编码的纹理数据块解码多个纹素的多输出解码器300的示意图。
该解码器包括参数解码单元302、颜色解码单元304、权重解码单元306和至少一个插值器单元308。参数解码单元联接到颜色解码单元和权重解码单元。具体地,参数解码单元的输出端联接到权重解码单元和颜色解码单元两者的输入端。颜色解码单元和权重解码单元中的每个都联接到至少一个插值器单元。更具体地说,权重解码单元和颜色解码单元的输出端联接到插值器单元的输入端。
解码器300被配置为接收ASTC编码纹理数据块作为输入,如在310处示出的。如上所述,该块具有128位的大小或内存印迹。纹理数据块310对针对n×m纹素块的纹理颜色进行编码。该n×m纹素块可以形成压缩后的图像或纹理的一部分。纹理可以由多个这样的纹理块组成,其中,这些块中的每个被编码在相应128位数据块中。由纹理数据块表示的纹素的数量被称为块印迹。块的尺寸(即,n和m的值)可从由ASTC标准规定的多个固定替代方案选择。
解码器能够从纹理块310解码多个纹素。能够从接收到的单个块110解码的最大纹素数量被表示为nt。解码器可以并行地解码多个纹素。解码器例如可以包括用于输出相应解码纹素的多个输出端。解码器可以操作以根据解码处理对多个纹素进行解码。该解码处理可以包括一系列解码步骤或操作。经历对特定纹素进行解码的一系列步骤可以被称为解码管线。因此,解码器300可以操作以从块310解码多个纹素,其中,根据解码管线对每个纹素进行解码。如将从下文中理解的那样,解码器300可以被配置为或者能够从块310解码任何数量的纹素。即,2≤nt≤nm。nt的值可能因实现而不同。解码器可以从数据块310解码连续p×q纹素块,其中,p≤n并且q≤m。
在下面的示例中,出于说明的目的,纹理数据块310表示12×12纹素块,并且解码器操作以从数据块310解码nt个纹素,其中,nt个纹素被布置为2×2纹素子块。虽然只是示例,但是由于在各种过滤操作中使用了2×2纹素块,所以从数据块310解码2×2纹素子块可能是特别有用的,所述过滤操作包括例如双线性过滤、三线性过滤和各向异性过滤。图4中示意性地例示了纹理块。这里,在402处例示了数据块310的块印迹,所述块印迹是由数据块110表示的n×m纹素块。在404处示出了将由解码器300解码的p×q纹素子块,并且该纹素子块由纹素406A、B、C、D形成。由数据块表示的纹理数据可以被划分成多个分区。
参数解码单元302接收数据块310。参数解码单元操作以对针对块310的配置数据进行解码。配置数据可以是指定块310内的纹理数据的参数及其编码的数据。配置数据例如可以包括:权重网格的大小和/或权重值的范围;纹理数据是单平面还是双平面的指示;分区计数(即,数据块310的分区数量)和颜色端点模式。
颜色解码单元304使用从数据块310解码的配置数据对针对从块310解码的nt个纹素中的每个的颜色端点数据进行解码。颜色端点数据包括针对正被解码的纹素中的每个的一对颜色端点。如果数据块具有为1的分区计数,则正被解码的纹素中的每个与同一颜色端点对相关联。颜色端点数据可以包括形成四个颜色端点对的多达八个颜色端点(对于为四的分区计数-即,每分区一个颜色端点对)。颜色端点中的一个或更多个可以与从数据块310解码的该组纹素中的多个纹素相关联;即,被解码的纹素中的一些可以共享公用颜色端点或公用颜色端点对。例如,如果从数据块310并行地解码多于四个纹素,那么这些纹素中的至少两个将共享公用颜色端点或颜色端点对,这是因为ASTC标准将分区的数量限制到最多四个(并且因此颜色端点对的数量被限制到最多四个)。
权重解码单元306使用由参数解码单元302解码的配置数据对针对从块302解码的nt个纹素中的每个的插值权重数据进行解码。针对给定纹素的插值权重数据可以是单个权重(例如,如果块中的纹理数据是单平面)或一对权重(例如,如果块中的纹理数据是双平面)。因此,权重解码单元可以对针对从块310解码的每个纹素的权重进行解码,或者对针对从块310解码的每个纹素的一对权重进行解码。这些权重值由插值器单元308接收。
插值器单元308使用针对每个纹素的颜色端点数据和针对每个纹素的权重值来计算针对正被解码的nt个纹素中的每个的颜色值。
解码器300然后可以输出针对nt个纹素中的每个的解码颜色值。也就是说,解码器可以输出nt个纹素颜色值。这些值可以被并行输出。
在图5中更详细地示出了参数解码单元302的示例。如所例示的,参数解码单元302包括块模式单元502、颜色端点单元504和分区索引单元506。
块模式单元502被配置为对包括权重网格大小(其高度和宽度,即,其尺寸)和可以由权重网格的权重占据的权重值的范围的配置数据的一部分进行解码。
分区索引单元506被配置为计算针对将从块110解码的每个纹素(在该示例中为纹素406A-D)的分区索引。分区索引识别每个纹素所属的分区,并且是配置参数的示例。
根据块502内的种子、分区计数和纹素的坐标计算针对每个纹素的分区索引。种子、分区计数和纹素坐标可以被称为中间配置数据,这是因为它们是用于解码配置参数(分区索引)的数据的示例,但它们本身不是配置参数。由形成分区索引单元506的一部分的分区计数单元510从数据块310解码分区计数。种子由种子计算框508根据从数据块310解码的分区模式索引来计算。纹素的坐标由纹素坐标单元(TCU)512来计算。TCU 212可以包括用于并行地计算纹素506A-D中的每个的坐标的硬件。分区索引单元包括用于从种子、分区计数和纹素坐标计算分区索引的索引计算器514。索引计算器计算针对正被解码的纹素406A-D中的每个的分区索引。
颜色端点单元504被配置为从数据块310解码颜色端点模式。在纹理数据具有大于1的分区计数的情况下(即,存在多个分区),颜色端点单元可以对针对每个分区的颜色端点模式进行解码。如上所述,颜色端点模式指定如何将从块310解码的颜色值转换成颜色端点。通常,ASTC规范指定了16种可能颜色端点模式,其中,模式需要不同数量的颜色值以形成颜色端点。具体地,模式中的四种从单个颜色值(例如,亮度)形成单个颜色端点,并且因此对于每个颜色端点对来说需要两个颜色值;模式中的四种从两个颜色值形成单个颜色端点,并且因此对于每个颜色端点对来说需要四个颜色值;模式中的四种需要三个颜色值来形成每个颜色端点,并且因此对于每个颜色端点对来说需要6个颜色值;以及模式中的四种需要四个颜色值来形成单个颜色端点(例如,RGBα),并且因此对于每个颜色端点对来说需要8个颜色值。
由参数解码单元302解码和/或计算的配置数据的一部分独立于从数据块310解码的纹素。也就是说,不管从该块解码的纹素如何,针对块310的配置数据的一部分都是相同的。因此,配置数据的该部分对于从纹理数据块解码的多个纹素中的每个的解码来说是公用的。该数据可以说是每数据块而不是每纹素被指定。在某些情况下,“每数据块”配置数据的该部分可以形成配置数据的实质部分。
便利地,由参数解码单元解码的该每块配置数据可以由颜色解码单元504和权重解码单元506用作针对纹素406A-D中的每个(即,对于正被解码的nt个像素中的每个)的解码处理的一部分。每块配置数据的第一子集或一部分可以由颜色解码单元使用,并且每块配置数据的第二子集或一部分可以由权重解码单元使用。也就是说,颜色解码单元可以使用每块配置数据的第一部分对针对所有纹素406A-D的端点数据进行解码;并且权重解码单元可以使用每块配置数据的第二部分对针对所有纹素406A-D的插值权重数据进行解码。这意味着当解码器300将从块并行地解码nt个纹素时,参数解码单元不需要对每块配置数据解码nt次。作为代替,当解码器302从块110并行地解码nt个纹素时,参数解码单元302仅对每块配置数据解码一次。这转而意味着参数解码单元302不需要硬件来对每块配置数据并行地解码nt次,得到潜在硬件节省。
在该特定示例中,权重网格大小和权重值的范围是独立于正从块310解码的纹素的配置数据的示例,并且因此这些相同配置参数被用于对纹素406A-D中的每个进行解码。因此,块模式单元502由大致相同的硬件形成,就好像解码器300仅是单输出解码器。换言之,块模式单元502可以跨针对将从块310解码的纹素中的每个的解码管线被共享或被用作针对将从块310解码的纹素中的每个的解码管线的一部分。
由颜色端点单元504解码的颜色端点模式数据也独立于从块310解码的纹素。因此,由该单元解码的相同颜色端点模式数据被用于纹素406A-D中的每个的解码。换句话说,该数据跨用于正被解码的纹素中的每个的解码管线被共享。
关于分区索引单元506,(根据从数据块310解码的分区模式索引生成的)分区计数和种子两者是独立于正被解码的纹素的每块参数。因此,可以在计算针对纹素406A-D中的每个的分区索引时使用相同种子和解码后的分区计数,并且因此种子计算单元508和分区计数单元510可以跨针对正被解码的这些纹素中的每个的解码管线被共享。
因此,与由并行操作的多个传统ASTC解码器形成的多解码器相比,参数解码单元302的硬件资源可以减少。
在图6中示出了颜色解码单元304的示例结构。颜色解码单元包括颜色数据选择器单元(CDSU)602、序列解码器单元608、颜色去量化单元604和颜色端点计算单元606。
CDSU 602被配置为确定数据块310内的颜色数据的大小(即,块内用于表示颜色端点的数据的大小)。在ASTC中,颜色数据在数据块内被编码为可变长度位串。颜色数据根据有界整数序列编码(BISE)方案被编码。颜色数据的大小可以根据(由分区计数单元510解码的)分区计数和由块模式单元502解码的块模式数据来确定。因此,CDSU 602仅使用配置数据的独立于从块310解码的纹素的一部分来确定颜色数据的大小。CDSU 602还可以对数据块内的颜色数据的位置进行解码。该信息可以再次从分区计数和块模式数据来确定。
如上所述,分区计数和块模式数据是每数据块指定的参数,并且独立于从块310解码的纹素。因此,颜色解码单元304可以将配置数据的该部分用作针对纹素406A-D中的每个的解码的一部分。具体地,CDSU 602可以执行块310内的颜色数据大小的单独确定,并且该确定然后可以用作针对纹素406A-D中的每个的解码管线的一部分。
序列解码器单元608被配置为执行颜色数据的整数序列解码。如上所提及的,根据二进制整数序列编码(BISE)方案将颜色数据编码在数据块内。BISE方案的使用使颜色值能够被编码在部分位数(a fractional number of bits)中。一系列值可以使用三进制数(基-3表示)或五进制数(quints)(基-5表示)来表示。还可以使用其它基本表示。
颜色去量化单元604被配置为从解码后的颜色数据提取颜色值并对这些颜色值进行去量化。去量化意味着将编码后的颜色值恢复到其原始范围(例如,[0,1,...255])。在某些情况下,由解码器300并行解码的纹素406A-D中的每个可以位于不同分区中,在这种情况下,可能需要八个颜色端点(每分区两个颜色端点)。如果这些分区中的每个还与每个颜色端点由四个颜色值形成的颜色端点模式相关联,则这需要将从数据块310中提取和去量化32个颜色值。然而,ASTC规范将可能在128位数据块内编码的颜色值数量限制到18。
为了使多解码器能够最好地适应上述情况,颜色去量化单元604可以被配置为(或使适当硬件能够)从数据块310并行地提取和去量化18个颜色值。应当注意,因为不可能从数据块310解码32个颜色值,所以针对分区数据(例如,具有3或4的分区计数的数据)的某些颜色端点模式是不可能的。
端点计算单元606被配置为将由去量化单元604解码的去量化颜色值转换成一组颜色端点。端点计算单元606可以使用针对将被解码的纹素406A-D中的每个的分区索引和关联颜色端点模式来计算该组颜色端点。如果将解码超过四个纹素(例如,如果将解码10个纹素),那么将在针对这些纹素的分区索引和相关颜色端点模式中存在冗余(因为数据块只能具有最多四个分区)。因此,为了减少计算量,端点计算单元可以使用将被解码的纹素跨越的一组分区索引(和关联颜色端点模式)将颜色值转换成一组颜色端点。去量化单元604可以从分区索引单元506和颜色端点单元504接收该信息。
端点计算单元可以输出针对正从块310解码的每个纹素的一对颜色端点。为此,端点计算单元606可以使用针对正被解码的每个纹素的分区索引从该组颜色端点选择端点对。另选地,它可以输出针对每个分区的颜色端点和针对每个纹素的分区索引。
像参数解码单元302一样,颜色解码单元304被配置为从块310解码独立于正被解码的纹素的数据。也就是说,颜色解码单元304被配置为对每块数据进行解码,作为对针对纹素406A-D的颜色端点数据进行解码的一部分。颜色解码单元304使用该相同数据解码针对正被解码的所有纹素406A-D的颜色端点数据。也就是说,由颜色解码单元304解码的相同每块数据被用于纹素406A-D中的每个的解码管线中。
例如,如由CDSU 602解码的数据块310内的颜色数据的大小和位置是在每块级别上指定的参数,并且独立于从数据块解码哪些纹素。该数据可以被称为中间颜色数据,因为它是从该块解码的数据,所述数据被用于解码从颜色解码单元输出的颜色端点数据。因为该中间数据独立于正被解码的纹素,所以当解码针对正从块310解码的纹素406A-D中的每个的端点数据时,该中间数据由颜色解码单元304的其余部分使用。也就是说,中间颜色数据对于从数据块310解码每个纹素来说是公用的。通过仅计算该中间颜色数据一次并将其重新用作针对正被解码的纹素中的每个的解码管线的一部分,CDSU 602的硬件需求可以大致上与单输出ASTC解码器的硬件需求相同。
由序列解码器单元608解码并且由颜色去量化单元604去量化的颜色值可以跨纹素406A-D的解码管线被部分共享。例如,ASTC限制可以存储在数据块310至18内的颜色值的数量。当从块510解码单个纹素时,需要多达八个颜色值(对于形成单个颜色端点对的两个颜色端点,多达每颜色端点四个颜色值)。因此,当解码单个纹素时,可以对八个颜色值进行BISE解码和去量化。当解码器并行解码多于(18/8)纹素(即,当解码器并行地解码三个或更多纹素时),所有18个颜色值可以被BISE解码和去量化。然而,因为正被BISE解码和去量化的颜色值的数量小于正被并行解码的纹素的数量乘以每纹素所需的颜色值的数量,所以BISE解码和去量化的颜色值跨纹素的解码管线被部分共享。换句话说,在一些情况下,BISE解码的颜色数据在从数据块并行解码的纹素的解码管线之间被至少部分地共享。类似地,去量化颜色值在一些情况下在正被解码的纹素的解码管线之间被至少部分地共享。换句话说,BISE解码和去量化的颜色数据对于从块310并行解码的至少一些纹素来说是公用的。BISE解码的颜色数据和去量化的颜色值因此也可以是公用中间数据的示例。
更一般地,当从数据块解码的颜色值的数量(表示为nv)小于分区数量np乘以颜色端点对中的颜色值的数量2ncv时(其中np=分区号并且ncv=形成单个颜色端点的颜色值的数量),则解码和去量化的颜色值的子集可以被转换为由正被解码的多个纹素共享的颜色端点(即使这些纹素属于不同分区)。
图7示出了用于权重解码单元306的示例内部结构。这里,权重解码单元包括缩放单元702、权重数据选择器单元(WDSU)704、序列解码器单元718、权重去量化单元706和权重插值单元708。缩放单元702联接到WDSU 704,WDSU联接到去量化单元706并且去量化单元联接到权重插值单元708。
缩放单元702被配置为识别将在插值中使用的权重网格的权重,以便生成针对纹素406A-D中的每个的权重。缩放单元702可以从针对正被解码的每个纹素的权重网格识别一组权重。然后可以对每组权重进行插值,以便针对每个纹素生成最终权重。
如上所述,根据块印迹的大小,可以不针对由数据块表示的每个纹素明确地存储权重。对于较大块印迹(例如12×12纹素),权重网格比块尺寸具有更稀疏分辨率。在这种情况下,为了导出针对每个纹素的权重,将纹素的坐标缩放到权重网格的尺寸,然后针对每个纹素执行权重插值,以计算用于这些纹素的权重。
缩放单元702包括缩放因子单元710和权重选择器单元712。缩放因子单元710解码将权重网格的大小缩放到来自数据块310的块印迹的大小的缩放因子。权重选择器单元812使用缩放因子将正被解码的纹素406A-D中的每个的坐标缩放到权重网格,并且选择将在针对纹素406A-D中的每个的插值中使用的权重网格的权重来计算针对这些纹素的权重。由缩放因子单元810计算的相同缩放因子由权重选择器单元712使用,以缩放子纹素406A-D中的每个的坐标。因此,可以使用缩放因子来计算针对纹素406A-D中的每个的权重。
该处理在图8中示意性地示出。6×6纹素块印迹通过“十字”标记(总体上由802表示)示出,并且5×5权重网格通过“点”标记示出并且通常以804表示。因此权重网格具有低于块印迹的尺寸的分辨率。出于说明的目的,块印迹和权重网格被示出为彼此重叠。然后将缩放因子应用到纹素的坐标,以将块印迹重新缩放到权重网格的尺寸。应用该缩放因子的结果通常在806处示出。在该示例中,出于说明的目的,缩放因子已经应用于块印迹中的所有纹素(而不仅仅是正被解码的选定纹素)。然后使用重新缩放的纹素坐标来选择要插值的权重网格的一组权重,以计算针对每个纹素的权重。例如,纹素A(圈出来以用于识别)的坐标从位置808重新缩放到位置810。然后选择该组权重812、814、816和818用于插值,以使用该纹素关于权重网格的重新缩放位置生成针对纹素A的最终权重。
权重数据选择器单元704确定块内的权重数据的大小以及针对权重网格中的将在插值中用于正被解码的纹素406A-D中的每个的选定权重的数据的位置。
WDSU包括权重数据大小单元714和权重定位器单元716。数据大小单元714被配置为确定块310内的权重数据的大小。数据大小单元714基于权重值范围和由块模式单元502解码的权重网格的大小对此进行确定。块310内的权重数据的大小被用作权重数据的一部分,针对正被解码的所有纹素406A-D进行解码。
权重定位器单元716被配置为针对将在权重插值中用于纹素406A-D中的每个的每组权重在块310内定位权重数据。也就是说,权重定位器单元716可以在块内单独定位将在权重插值中针对正被解码的每个纹素的权重数据。它可以并行地定位针对每个纹理的该权重数据。
像颜色数据一样,权重数据也可以被BISE编码。序列解码器单元718被配置为执行权重数据的二进制整数序列解码。
权重去量化单元706被配置为对针对纹素406A-D中的每个的解码后的一组权重进行去量化(即,使每个权重从它们的编码范围返回到它们的原始范围)。针对正被解码的每个纹素的该组权重彼此独立,并且因此去量化单元可以包括对针对正被并行解码的每个纹素的权重组进行去量化的硬件。然而,在一些情况下,权重可以在正被解码的纹素之间被共享。即,正被解码的纹素子集可以共享至少一个权重。例如,对于12×12印迹和2×2权重网格来说,针对正被解码的所有纹素共享权重。
权重插值单元708被配置为对针对正被解码的每个纹素的该组权重进行插值,以针对这些纹素中的每个计算最终插值权重数据(例如,针对正被解码的每个纹素的每平面最终插值权重)。权重插值单元可以针对从块310并行解码的每个纹素计算最终插值权重数据。
然后,从权重解码单元306输出针对正被解码的纹素406A-D中的每个的插值权重数据。
像参数解码单元302和颜色解码单元304一样,权重解码单元306从块310解码独立于正被解码的纹素的数据。因此,权重解码单元解码每块数据(即,基于每块指定的数据)作为对插值权重数据进行解码的一部分。由于该数据是从数据块310解码并用于解码由权重解码单元输出的最终插值权重数据的数据,所以该数据可以被称为中间权重数据。权重解码单元使用相同每块(中间)数据来解码针对所有纹素406A-D的插值权重数据。也就是说,由权重解码单元解码的每块数据被重新用于纹素406A-D中的每个的解码管线。这有利地使得解码该数据的组件在解码管线之间被共享以用于正从该块解码的每个纹素。
例如,将由缩放因子单元710解码的、将块印迹的尺寸缩放到权重网格的缩放因子是每数据块指定的参数,并且独立于正被解码的纹素。因此,相同缩放因子可以由权重选择器单元712使用以缩放纹素406A-D中的每个的坐标。因此,缩放因子单元可以具有基本上相同的硬件需求,如同解码器300是单输出解码器。
类似地,块310内的权重数据的大小也是独立于正被解码的纹素的参数。因此,由权重数据大小单元714解码的权重数据的大小由权重定位器单元716用来定位针对正被解码的所有纹素406A-D的权重数据。因此,数据大小单元714也可以具有相同硬件需求,如同解码器500是单输出解码器。如果所请求的纹素一直(或者通常)相邻(这意味着例如对于2×2块,将需要最多(p+1)(q+1)个权重而不是通常的4pq),则可以作出硬件的附加节省。
返回参考图3,至少一个插值器单元308被配置成计算针对纹素406A-D中的每个的颜色值,该颜色值使用针对该纹素的插值权重数据和来自颜色端点的一对颜色端点数据被解码。插值器单元可以根据从权重解码单元306输出的针对该纹素的插值权重数据和从颜色解码单元304输出的针对该纹素的颜色端点对,计算正被解码的每个纹素的最终颜色。最终颜色值可以相对于RGBα颜色空间被指定(即,每个解码颜色可以是RGBα格式)。
插值器单元308可以通过使用针对该纹素的插值权重在相关联颜色端点对之间进行插值来计算针对每个纹素的颜色。
插值器单元308可以被配置为计算针对被并行解码的每个纹素的最终纹素颜色。插值器单元308的数量可以等于正被解码的纹理数据的分区数量。另选地,插值器单元的数量可以等于从数据块310解码的纹素的数量。
图9示出了用于从根据ASTC格式编码的纹理数据块解码多个纹素的步骤的流程图。
在步骤902,对针对纹理数据块的配置数据进行解码。
在步骤904,根据配置数据对针对块的多个纹素的颜色数据进行解码。
在步骤906,根据配置数据对针对多个纹素中的每个的插值权重数据进行解码。
在步骤908,根据针对该纹素的插值权重数据和来自该颜色端点数据的一对颜色端点来计算针对多个纹素中的每个的颜色值;其中,配置数据的解码、颜色端点数据的解码和插值权重数据的解码中的至少一者包括从块解码独立于从该块解码的纹素的数据并且将该相同数据用于解码多个纹素中的至少两个。
上述解码器300是多输出解码器,所述多输出解码器可以从根据ASTC规范压缩的纹理数据块解码多个纹素。如在以上示例中那样,解码器可以操作以并行地解码多个纹素。然而,有利地,解码器300可以使用从纹理数据块解码的数据的某些部分作为针对从该块解码的所有纹素的解码处理的一部分。因此可以从块并行解码多个纹素,而不需要针对解码处理的每个阶段的并行处理。这意味着与并行操作多个传统ASTC单解码器相比,解码器300可以具有降低的硬件要求(例如,如果在集成电路上实现,则具有减小的面积)。具体地,发明人已经发现,通过以上述方式实现多输出解码器以对2×2纹素块进行解码,芯片面积可以减小到传统单输出ASTC解码器的芯片面积的大约1/2.4倍,大约等于四个单解码器的面积的三分之二。换言之,与并行操作的四个单输出解码器相比,本文所描述的多输出解码器可以节省大约三分之一的芯片面积。
从数据块解码的数据的多个分量在本文中已经被识别为对于从接收到的数据块并行解码的纹素集中的至少一些的解码来说是公用的。从数据块解码的一些数据独立于从接收到的数据块并行解码(并且独立于从数据块并行解码的纹素的数量)的纹素集合,并且因此适用于解码该集合中的所有纹素的解码。在上述示例中,解码器被布置为使得这些数据分量中的每个在解码处理中被用于从块解码所有纹素。同时该方法很可能使多解码器的硬件要求最小化,但应该理解,只要从块解码的数据的至少一部分或分量在解码处理中被用于纹素的这些子集,多解码器就将实现硬件效率的增益,其中,从块解码的数据对于从接收到的数据块并行解码正被解码的纹素集合的至少一个子集来说是公用的。这足以避免解码处理的每个阶段针对正被解码的每个纹素被并行执行多次。该分量可由参数解码单元、权重解码单元或颜色解码单元进行解码。
在上面的示例中,颜色模式数据由参数解码单元解码。然而,它也可以另选地由颜色解码单元解码。
在上面的示例中,解码器300操作以从数据块并行地解码2×2纹素块。将理解,这仅仅是出于说明的目的,并且解码器300可以被配置为从数据块解码任何多个纹素。例如,解码器可以从数据块解码p×q纹素子块,其中,每个方向上的子块的尺寸小于或等于块印迹的对应尺寸。另选地,解码器300可以从该数据块解码多个不同纹素;即,这些纹素中的至少两个不连续的多个纹素。解码器可以操作以从接收到的数据块解码任何nt个纹素;即,将从块中解码的nt个纹素可以没有约束地被选择。
解码器300可以被配置为从表示双平面纹理数据或单平面纹理数据的数据块解码多个纹素。解码器可以从已经使用高动态范围(HDR)或低动态范围(LDR)(分别对应于HDR配置文件和LDR配置文件)编码的块解码纹理数据。通常,LDR配置文件支持二维纹理,但也可以支持三维纹理。HDR配置文件还支持二维纹理,并且另外支持由压缩数据的多个二维切片组成的三维纹理。
颜色值可以由颜色通道(例如,亮度、R、G、B、α等)形成,但是通常可以表示许多不同类型的图形数据(例如,高度图、标准图、照明等)。
以上示例描述了解码器如何可操作以从单个块310解码最多nt个纹素。尽管本文描述的解码器能够从接收到的单个数据块并行地解码多个纹素,但是应当理解,在一些情况下,解码器可以仅从接收到的数据块解码单个纹素。解码器实际从块解码的纹素的数量可能取决于解码器接收到的纹素请求。如果解码器响应于接收到纹理块310和纹素请求而确定仅将从块310解码单个纹素,则该解码器可以关闭(例如,断电或关掉)其硬件的一部分以降低功耗。可以确定被关闭的部分的大小,使得硬件的其余部分(即,未被关闭的部分)可以对纹素进行解码而不会导致性能损失(例如,对所请求的纹素进行解码所花费的时间)。
图1A至图7的解码器300被示为包括多个功能块。这仅仅是示意性的,并不旨在限定这些实体的不同逻辑元件之间的严格划分。每个功能块可以以任何合适方式设置。应当理解,本文描述为由特定块或单元形成的中间值不需要由块/单元在任何点物理地生成,并且可以仅表示逻辑值,所述逻辑值方便地描述了由块/单元在其输入和输出之间执行的处理。
这里描述的解码器单元可以用集成电路上的硬件来具体实现。这里描述的解码器可以被配置为执行本文描述的任何方法。通常,上述任何功能、方法、技术或组件可以用软件、固件、硬件(例如,固定逻辑电路)或其任何组合来实现。这里可以使用术语“模块”、“功能”、“组件”、“元件”、“单元”、“块”和“逻辑”来总体表示软件、固件、硬件或其任何组合。在软件实现的情况下,模块、功能、组件、元件、单元、块或逻辑表示当在处理器上被执行时执行指定任务的程序代码。这里描述的算法和方法可以由执行使得处理器执行算法/方法的代码的一个或多个处理器执行。计算机可读存储介质的示例包括随机存取存储器(RAM)、只读存储器(ROM)、光盘、闪存、硬盘存储器以及可以使用磁、光学和其它技术来存储指令或其它数据并且可以由机器访问的其它存储设备。
这里使用的术语计算机程序代码和计算机可读指令是指用于处理器的任何种类的可执行代码,包括以机器语言、解释型语言或脚本语言表达的代码。可执行代码包括二进制代码、机器代码、字节代码、定义集成电路的代码(诸如硬件描述语言或网表)、以及以编程语言代码(例如C,Java或OpenCL)表示的代码。可执行代码可以是例如当在虚拟机或其它软件环境中适当地执行、处理、解释、编译、执行时使得支持可执行代码的计算机系统的处理器执行由代码指定的任务的任何类型的软件、固件、脚本、模块或库。
处理器、计算机或计算机系统可以是具有能够执行指令的处理能力的任何种类的设备、机器或专用电路或其集合或其部分。处理器可以是任何种类的通用或专用处理器,诸如CPU、GPU、芯片上系统、状态机、媒体处理器、专用集成电路(ASIC)、可编程逻辑阵列、现场可编程门阵列(FPGA)等。计算机或计算机系统可以包括一个或多个处理器。
还旨在包含定义如本文所述的硬件配置的软件,诸如用于设计集成电路或用于配置可编程芯片以执行期望功能的HDL(硬件描述语言)软件。也就是说,可以提供一种计算机可读存储介质,该计算机可读存储介质上编码有为集成电路定义数据集形式的计算机可读程序代码,所述集成电路定义数据集在集成电路制造系统中被处理(即,运行)时配置所述系统制造被配置成执行本文所述的任何方法的解码器,或制造包含本文所述的任何装置的解码器。集成电路定义数据集可以是例如集成电路描述。
因此,可以提供一种在集成电路制造系统中制造如本文所述的解码器的方法。此外,可以提供一种集成电路定义数据集,该集成电路定义数据集在集成电路制造系统中被处理时使得制造解码器的方法被执行。
集成电路定义数据集可以为如下形式:计算机代码(例如作为网表)、用于配置可编程芯片的代码(作为在任何级别定义集成电路的硬件描述语言),包括作为寄存器传输级(RTL)代码,作为诸如Verilog或VHDL的高级电路表示,以及作为诸如OASIS(RTM)和GDSII的低级电路表示。逻辑上定义集成电路(诸如RTL)的较高级表示可以在被配置用于在软件环境的上下文中产生集成电路的制造定义的计算机系统处被处理,该软件环境包括电路元件的定义和用于组合这些元件以生成由该表示定义的集成电路的制造定义的规则。通常如软件在计算机系统处执行以定义机器的情况那样,可能需要一个或多个中间用户步骤(例如,提供命令、变量等),以便被配置用于生成集成电路的制造定义的计算机系统执行定义集成电路的代码,以生成该集成电路的制造定义。
现在将参照图9描述在集成电路制造系统处处理集成电路定义数据集以便将系统配置为制造解码器的示例。
图10示出被配置成制造如本文的任一示例中所描述的解码器的集成电路(IC)制造系统1102的示例。具体而言,IC制造系统1002包括布局处理系统1004和集成电路生成系统1006。IC制造系统1002被配置为接收IC定义数据集(例如,定义如本文的任何示例中所述的解码器),处理IC定义数据集,并且根据IC定义数据集(例如其具体实现本文的任何示例中描述的解码器)来生成IC。IC定义数据集的处理将IC制造系统1002配置为制造具体实现如本文的任何示例中所述的解码器的集成电路。
布局处理系统1004被配置为接收并处理IC定义数据集以确定电路布局。从IC定义数据集确定电路布局的方法在本领域中是已知的,并且例如可以涉及合成RTL代码以确定将生成的电路的门级表示,例如,在逻辑组件方面(例如NAND、NOR、AND、OR、MUX和FLIP-FLOP组件)。通过确定用于逻辑组件的位置信息,可以从电路的门级表示来确定电路布局。这可以自动完成或者在用户参与下完成,以优化电路布局。当布局处理系统1004确定了电路布局时,其可以向IC生成系统1006输出电路布局定义。电路布局定义可以是例如电路布局描述。
如现有技术中已知的,IC生成系统1006根据电路布局定义生成IC。例如,IC生成系统1106可以实现半导体器件制造工艺以生成IC,其可能涉及光刻和化学处理步骤的多步骤序列,在该步骤中,电子电路逐渐形成在由半导体材料制成的晶片上。电路布局定义可以是掩码的形式,其可以在根据电路定义生成IC的光刻工艺中使用。另选地,提供给IC生成系统1006的电路布局定义可以是IC生成系统1006可用来形成用于生成IC的合适掩码的计算机可读代码的形式。
由IC制造系统1002执行的不同处理可以全部在一个位置(例如,由一方实现)。另选地,IC制造系统1002可以是分布式系统,使得一些处理可以在不同位置执行,并且可以由不同方执行。例如,一些阶段:(i)合成表示IC定义数据集的RTL代码以形成要生成的电路的门级表示、(ii)基于门级表示生成电路布局、(iii)根据电路布局形成掩码、以及(iv)使用掩码制造集成电路可以在不同位置和/或由不同方执行。
在其它示例中,在集成电路制造系统处的集成电路定义数据集的处理可以将系统配置为制造解码器而不处理IC定义数据集以便确定电路布局。例如,集成电路定义数据集可以定义诸如FPGA的可重新配置处理器的配置,并且该数据集的处理可以配置IC制造系统以生成具有该所定义配置的可重新配置处理器(例如,通过将配置数据加载到FPGA)。
在一些实施方式中,当在集成电路制造系统中处理时,集成电路制造定义数据集可以使集成电路制造系统生成如本文所述的设备。例如,由集成电路制造定义数据集按以上关于图10所描述的方式来配置集成电路制造系统可致使如本文所描述的装置被制造。
在一些示例中,集成电路定义数据集可以包括在数据集处定义的硬件上运行的软件或者与数据集处定义的硬件相结合的软件。在图10所示的示例中,IC生成系统还可以由集成电路定义数据集配置,以在制造集成电路时,根据在集成电路定义数据集处定义的程序代码将固件加载到集成电路或者另外给集成电路提供由集成电路使用的程序代码。
申请人在此单独地公开了在此描述的每个单独特征以及两个或更多个这种特征的任意组合,这些特征或组合能够根据本领域技术人员的公知常识,基于本说明书作为整体被实现,而不管这些特征或特征的组合是否解决了本文所公开的任何问题,并且不限制于权利要求的范围。申请人指出,本发明的各个方面可以由任何这样的单独特征或特征组合组成。鉴于前面的描述,对于本领域技术人员而言显而易见的是,可以在本发明的范围内进行各种修改。

Claims (20)

1.一种解码器,所述解码器被配置为从接收到的根据自适应可缩放纹理压缩ASTC格式编码的纹理数据块解码多个纹素,所述解码器包括:
参数解码单元,所述参数解码单元被配置为对针对接收到的所述纹理数据块的配置数据进行解码;
颜色解码单元,所述颜色解码单元被配置为根据所述配置数据对针对接收到的所述纹理数据块的所述多个纹素的颜色端点数据进行解码;
权重解码单元,所述权重解码单元被配置为根据所述配置数据对针对接收到的所述纹理数据块的所述多个纹素中的每个纹素的插值权重数据进行解码;以及
至少一个插值器单元,所述至少一个插值器单元被配置为使用针对该纹素的插值权重数据和来自所述颜色端点数据的一对颜色端点计算针对接收到的所述纹理数据块的所述多个纹素中的每个纹素的颜色值;
其中,所述参数解码单元和所述颜色解码单元中的至少一者被配置为仅从接收到的所述纹理数据块解码中间数据一次,所述中间数据对于所述多个纹素中的至少两个纹素的解码来说是公用的并且独立于从接收到的所述纹理数据块解码哪些纹素;并且其中,所述参数解码单元和所述颜色解码单元中的至少一者被配置成使用解码后的中间数据作为从接收到的所述纹理数据块对所述多个纹素中的至少两个纹素进行解码的一部分。
2.根据权利要求1所述的解码器,其中,所述参数解码单元和所述颜色解码单元中的至少一者被配置为使用解码后的中间数据作为解码从接收到的所述纹理数据块解码的所述多个纹素中的每个纹素的一部分。
3.根据权利要求1或2所述的解码器,其中,所述配置数据的部分对于从接收到的所述纹理数据块解码所述多个纹素中的至少两个纹素来说是公用的,并且所述颜色解码单元被配置为使用所述配置数据的所述部分来解码针对所述多个纹素中的至少两个纹素的所述颜色端点数据。
4.根据权利要求3所述的解码器,其中,所述配置数据的所述部分包括指定如何将一组颜色端点值转换成一对颜色端点的颜色端点模式数据。
5.根据权利要求1或2所述的解码器,其中,所述参数解码单元被配置为:
从接收到的所述纹理数据块解码中间配置数据,作为对所述配置数据进行解码的一部分;并且使用所述中间配置数据解码针对所述多个纹素中的至少两个纹素的分区索引。
6.根据权利要求5所述的解码器,其中,所述中间配置数据包括以下中的至少一者:分区模式索引;以及分区号。
7.根据权利要求1或2所述的解码器,其中,所述颜色解码单元被配置为:从接收到的所述纹理数据块解码中间颜色数据,作为对所述颜色端点数据进行解码的一部分,所述中间颜色数据独立于从接收到的所述纹理数据块解码的所述纹素;并且使用该中间颜色数据解码针对所述多个纹素中的至少两个纹素的所述颜色端点数据。
8.根据权利要求7所述的解码器,其中,所述中间颜色数据包括接收到的所述纹理数据块内用于表示颜色端点的数据的大小。
9.根据权利要求8所述的解码器,其中,所述中间颜色数据还包括指定如何将一组颜色端点值转换成一对颜色端点的颜色端点模式数据。
10.根据权利要求1或2所述的解码器,其中,所述颜色解码单元被配置为对一组颜色值进行解码并且将这些值转换成针对所述多个纹素中的至少两个纹素的一对颜色端点,所述颜色解码单元被配置为使用所述颜色端点中的至少一者作为对所述多个纹素中的至少两个纹素进行解码的一部分。
11.根据权利要求10所述的解码器,其中,由接收到的所述纹理数据块表示的纹素被划分为np个分区,并且所述颜色解码单元被配置为对一组nv个颜色值进行解码并且将这些值转换为针对所述多个纹素中的至少两个纹素的一对颜色端点,每个颜色端点由ncv个颜色值形成,其中,nv<2npncv
12.根据权利要求1或2所述的解码器,其中,由接收到的所述纹理数据块表示的所述纹素被划分为np个分区,并且所述解码器包括np个插值器,每个插值器被配置成使用针对该纹素的所述插值权重数据和来自所述颜色端点数据的相应一对颜色端点,计算相应分区中的所述多个纹素中的纹素子集中的每个纹素的颜色值。
13.根据权利要求12所述的解码器,其中,所述np个插值器单元被配置成并行操作。
14.根据权利要求1或2所述的解码器,其中,所述参数解码单元和所述颜色解码单元中的至少一者被配置成使用解码后的中间数据作为从接收到的所述纹理数据块对所述多个纹素中的至少两个纹素进行并行解码的一部分。
15.根据权利要求1或2所述的解码器,其中,所述参数解码单元被配置成使用解码后的中间数据作为从接收到的所述纹理数据块对所述多个纹素中的至少两个纹素进行并行解码的一部分。
16.根据权利要求1或2所述的解码器,其中,所述颜色解码单元被配置成使用解码后的中间数据作为从接收到的所述纹理数据块对所述多个纹素中的至少两个纹素进行并行解码的一部分。
17.根据权利要求1或2所述的解码器,其中,接收到的所述纹理数据块表示n×m纹素块,并且所述多个纹素是p×q纹素块,其中,p≤n并且q≤m。
18.根据权利要求17所述的解码器,其中,所述权重解码单元被配置成使用权重网格的(p+1)(q+1)个权重中的最大值来针对接收到的所述纹理数据块的所述多个纹素中的每个纹素对所述插值权重数据进行解码。
19.一种从接收到的根据自适应可缩放纹理压缩ASTC格式编码的纹理数据块解码多个纹素的方法,所述方法包括以下步骤:
对针对接收到的所述纹理数据块的配置数据进行解码;
根据所述配置数据对针对接收到的所述纹理数据块的多个纹素的颜色端点数据进行解码;
根据所述配置数据对针对接收到的所述纹理数据块的所述多个纹素中的每个纹素的插值权重数据进行解码;以及
使用针对该纹素的所述插值权重数据和来自所述颜色端点数据的一对颜色端点来计算针对接收到的所述纹理数据块的所述多个纹素中的每个纹素的颜色值;
其中,对配置数据进行解码和对颜色端点数据进行解码中的至少一者包括:仅从接收到的所述纹理数据块解码中间数据一次,所述中间数据对于解码所述多个纹素中的至少两个纹素来说是公用的并且独立于从接收到的所述纹理数据块解码哪些纹素;并且其中,对配置数据进行解码和对颜色端点数据进行解码中的至少一者包括使用解码后的中间数据作为从接收到的所述纹理数据块对所述多个纹素中的至少两个纹素进行并行解码的一部分。
20.一种计算机可读存储介质,所述计算机可读存储介质上存储有根据权利要求1或2所述的解码器的计算机可读描述,当在集成电路制造系统中被处理时,所述计算机可读描述使所述集成电路制造系统:
使用布局处理系统处理所述解码器的所述计算机可读描述,以便生成具体实现所述解码器的集成电路的电路布局描述;以及
使用集成电路生成系统,根据所述电路布局描述制造所述解码器。
CN202410178460.7A 2017-04-28 2018-04-28 用于纹理解压缩的多输出解码器 Pending CN117880521A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
GB1706852.9 2017-04-28
GB1706852.9A GB2562041B (en) 2017-04-28 2017-04-28 Multi-output decoder for texture decompression
CN201810401763.5A CN108810544B (zh) 2017-04-28 2018-04-28 用于纹理解压缩的多输出解码器

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN201810401763.5A Division CN108810544B (zh) 2017-04-28 2018-04-28 用于纹理解压缩的多输出解码器

Publications (1)

Publication Number Publication Date
CN117880521A true CN117880521A (zh) 2024-04-12

Family

ID=59010981

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201810401763.5A Active CN108810544B (zh) 2017-04-28 2018-04-28 用于纹理解压缩的多输出解码器
CN202410178460.7A Pending CN117880521A (zh) 2017-04-28 2018-04-28 用于纹理解压缩的多输出解码器

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN201810401763.5A Active CN108810544B (zh) 2017-04-28 2018-04-28 用于纹理解压缩的多输出解码器

Country Status (4)

Country Link
US (4) US10937198B2 (zh)
EP (1) EP3396628A1 (zh)
CN (2) CN108810544B (zh)
GB (1) GB2562041B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2562041B (en) * 2017-04-28 2020-11-25 Imagination Tech Ltd Multi-output decoder for texture decompression
GB2575134B (en) 2018-12-20 2021-03-31 Imagination Tech Ltd ASTC interpolation
GB2575135B (en) 2018-12-20 2021-03-24 Imagination Tech Ltd ASTC interpolation
CN110570493B (zh) * 2019-09-16 2023-07-18 网易(杭州)网络有限公司 字体贴图处理方法及装置、存储介质、电子设备
CN112489146A (zh) * 2020-12-10 2021-03-12 苏州速显微电子科技有限公司 一种基于图像分布的定长纹理压缩数据存储系统
CN113411611B (zh) * 2021-06-30 2023-06-20 脸萌有限公司 视频图像处理方法、设备及电子设备
CN117392251B (zh) * 2023-12-06 2024-02-09 海马云(天津)信息技术有限公司 Mesa 3D图形库中ASTC格式的纹理数据的解码性能优化方法

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6771264B1 (en) * 1998-08-20 2004-08-03 Apple Computer, Inc. Method and apparatus for performing tangent space lighting and bump mapping in a deferred shading graphics processor
US8457346B2 (en) * 2001-04-24 2013-06-04 Digimarc Corporation Digital watermarking image signals on-chip
GB0504570D0 (en) * 2005-03-04 2005-04-13 Falanx Microsystems As Method of and apparatus for encoding data
US8933946B2 (en) * 2007-12-31 2015-01-13 Intel Corporation Mechanism for effectively handling texture sampling
US8593476B2 (en) * 2008-02-13 2013-11-26 Gary Demos System for accurately and precisely representing image color information
KR101709822B1 (ko) * 2009-11-24 2017-02-23 텔레폰악티에볼라겟엘엠에릭슨(펍) 부호화된 텍셀 블록에서 동작할 수 있는 복호 시스템 및 방법
EP2556492A4 (en) * 2010-04-07 2016-08-31 Ericsson Telefon Ab L M COMPRESSION AND DECOMPRESSION OF TEXTURE
US9147264B2 (en) * 2011-02-23 2015-09-29 Nvidia Corporation Method and system for quantizing and squeezing base values of associated tiles in an image
US9582845B2 (en) * 2011-05-05 2017-02-28 Arm Limited Method of and apparatus for encoding and decoding data
GB2495301B (en) * 2011-09-30 2018-01-17 Advanced Risc Mach Ltd Method of and apparatus for encoding data
GB2503691B (en) * 2012-07-04 2019-08-14 Advanced Risc Mach Ltd Methods of and apparatus for encoding and decoding data
US9177415B2 (en) * 2013-01-30 2015-11-03 Arm Limited Methods of and apparatus for encoding and decoding data
US20160366449A1 (en) * 2014-02-21 2016-12-15 Koninklijke Philips N.V. High definition and high dynamic range capable video decoder
US9659341B2 (en) * 2014-06-25 2017-05-23 Qualcomm Incorporated Texture pipe as an image processing engine
US8982950B1 (en) * 2014-09-19 2015-03-17 A2Zlogix, Inc. System and method for restoration of dynamic range of images and video
KR102258100B1 (ko) * 2014-11-18 2021-05-28 삼성전자주식회사 텍스쳐 처리 방법 및 장치
GB2536734B (en) * 2015-04-17 2017-08-02 Imagination Tech Ltd Image synthesis
KR102453803B1 (ko) * 2015-09-10 2022-10-12 삼성전자주식회사 이미지 처리 방법 및 장치
US10332277B2 (en) * 2016-04-13 2019-06-25 Samsung Electronics Co., Ltd. Low complexity optimal decimation grid selection in encoding applications
US10424269B2 (en) * 2016-12-22 2019-09-24 Ati Technologies Ulc Flexible addressing for a three dimensional (3-D) look up table (LUT) used for gamut mapping
US10277895B2 (en) * 2016-12-28 2019-04-30 Arris Enterprises Llc Adaptive unequal weight planar prediction
US10242647B2 (en) * 2017-02-24 2019-03-26 Ati Technologies Ulc Three dimensional (3-D) look up table (LUT) used for gamut mapping in floating point format
US10453171B2 (en) * 2017-03-24 2019-10-22 Ati Technologies Ulc Multiple stage memory loading for a three-dimensional look up table used for gamut mapping
GB2562041B (en) * 2017-04-28 2020-11-25 Imagination Tech Ltd Multi-output decoder for texture decompression

Also Published As

Publication number Publication date
US10937198B2 (en) 2021-03-02
US11568580B2 (en) 2023-01-31
GB201706852D0 (en) 2017-06-14
US20240095975A1 (en) 2024-03-21
CN108810544B (zh) 2024-03-01
US20180315218A1 (en) 2018-11-01
EP3396628A1 (en) 2018-10-31
CN108810544A (zh) 2018-11-13
GB2562041B (en) 2020-11-25
US11836830B2 (en) 2023-12-05
US20210150777A1 (en) 2021-05-20
US20230169701A1 (en) 2023-06-01
GB2562041A (en) 2018-11-07

Similar Documents

Publication Publication Date Title
CN108810544B (zh) 用于纹理解压缩的多输出解码器
US20230394626A1 (en) ASTC Interpolation
US11544892B2 (en) Decoder unit for texture decompression
EP4351148A2 (en) Methods and decompression units for decompressing image data compressed using pattern-based compression
CN111355862B (zh) 自适应可缩放纹理压缩插值的电路、方法以及存储介质
GB2593706A (en) Pattern-based image data compression
GB2609544A (en) Methods and decompression units for decompressing image data compressed using pattern-based compression

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