CN111355862B - 自适应可缩放纹理压缩插值的电路、方法以及存储介质 - Google Patents
自适应可缩放纹理压缩插值的电路、方法以及存储介质 Download PDFInfo
- Publication number
- CN111355862B CN111355862B CN201911316233.1A CN201911316233A CN111355862B CN 111355862 B CN111355862 B CN 111355862B CN 201911316233 A CN201911316233 A CN 201911316233A CN 111355862 B CN111355862 B CN 111355862B
- Authority
- CN
- China
- Prior art keywords
- interpolation
- interpolation result
- result
- circuit
- logic circuit
- 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
- 238000000034 method Methods 0.000 title claims abstract description 60
- 230000006835 compression Effects 0.000 title claims abstract description 15
- 238000007906 compression Methods 0.000 title claims abstract description 15
- 230000003044 adaptive effect Effects 0.000 title claims abstract description 12
- 238000003860 storage Methods 0.000 title claims abstract description 10
- 238000012545 processing Methods 0.000 claims abstract description 54
- 238000004364 calculation method Methods 0.000 claims abstract description 14
- 230000001419 dependent effect Effects 0.000 claims description 2
- 238000005192 partition Methods 0.000 description 52
- 238000004519 manufacturing process Methods 0.000 description 50
- 238000006243 chemical reaction Methods 0.000 description 36
- 230000006872 improvement Effects 0.000 description 16
- 230000008569 process Effects 0.000 description 11
- 230000002159 abnormal effect Effects 0.000 description 9
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 5
- 239000003086 colorant Substances 0.000 description 5
- 229910052710 silicon Inorganic materials 0.000 description 5
- 239000010703 silicon Substances 0.000 description 5
- 230000005856 abnormality Effects 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000002194 synthesizing effect Effects 0.000 description 2
- 230000002547 anomalous effect Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000012993 chemical processing Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 235000013399 edible fruits Nutrition 0.000 description 1
- 238000005286 illumination Methods 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000000206 photolithography Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000005389 semiconductor device fabrication Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 235000012431 wafers Nutrition 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/001—Texturing; Colouring; Generation of texture or colour
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N5/00—Details of television systems
- H04N5/14—Picture signal circuitry for video frequency region
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/04—Texture mapping
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T3/00—Geometric image transformations in the plane of the image
- G06T3/40—Scaling of whole images or parts thereof, e.g. expanding or contracting
- G06T3/4007—Scaling of whole images or parts thereof, e.g. expanding or contracting based on interpolation, e.g. bilinear interpolation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/186—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/30—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/59—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial sub-sampling or interpolation, e.g. alteration of picture size or resolution
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N9/00—Details of colour television systems
- H04N9/64—Circuits for processing colour signals
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Signal Processing (AREA)
- Computer Graphics (AREA)
- Image Processing (AREA)
- Image Generation (AREA)
Abstract
本发明涉及自适应可缩放纹理压缩插值的电路、方法以及存储介质。一种二进制逻辑电路,所述二进制逻辑电路用于使用加权索引i在两个端点值E0和E1之间执行插值计算,以生成插值结果P,所述值E0和E1分别由自适应可缩放纹理压缩(ASTC)低动态范围(LDR)颜色端点值C0和C1形成,所述电路包括:插值单元,其被配置为使用所述加权索引i在所述颜色端点值C0和C1之间进行插值,以生成第一中间插值结果C2;以及组合逻辑电路,其被配置为接收所述插值结果C2,并且当所述插值结果与sRGB颜色空间不兼容时,根据等式当所述插值结果与sRGB颜色空间兼容时,根据等式 来执行一个或多个逻辑处理操作,以计算所述插值结果P。
Description
技术领域
本发明涉及对根据自适应可缩放纹理压缩(ASTC)格式指定的端点值的内插。
背景技术
纹理在图形处理领域大量使用。纹理可用于表示表面特性,照明(例如在正在被成像的场景的环境内)或用于将表面细节应用于正在渲染的对象。纹理可能需要相对大量的存储器存储,并且纹理访问会在图形设备的存储器带宽中占很大比例。因此,通常需要压缩纹理数据。
一种纹理压缩格式被称为自适应可缩放纹理压缩(ASTC)。
在ASTC中,将压缩的图像或纹理细分为多个数据块,其中每个数据块都代表形成纹理的纹素块的纹理数据。每个数据块都具有128位的固定存储器足迹(即,具有固定大小)。然而,数据块是能够表示为不同数目的纹素的纹理数据。由一个单一的数据块所表示的纹素的数量可以被称为块足迹。对于给定的纹理,块足迹可以是固定的。通常可以从许多预定义的大小中选择块足迹的高度和宽度(以纹素为单元)。足迹可以是矩形的,在某些情况下,块的足迹可以是正方形的。对于2D纹理,块足迹的示例包括4x 4纹素;6x 6纹素;8x 8纹素和12x 12纹素(压缩率分别为每像素8位(bpp);3.56bpp;2bpp和0.89bpp)。
块中每个纹素的颜色定义为一对颜色之间的线性渐变上的一个点。这对颜色称为“颜色端点”对。每个颜色端点定义一种颜色。每个颜色端点都包括一个或多个分量。颜色端点可以包括一个、两个、三个或四个分量(通常分别对应于R、RG、RGB和RGBA纹理)。
解码纹素时,将从数据块中解码颜色值,然后将这些值转换为颜色端点。颜色值转换为颜色端点的方式通过被称为颜色端点模式的参数来定义。有关纹素的颜色端点模式的信息被编码在数据块内。ASTC规范定义了16种可能的颜色端点模式,这些模式在从单个颜色值计算颜色端点到从四个颜色值计算颜色端点之间变化。
在常规实现方式中,通过在从颜色端点对生成的一对端点之间进行插值来计算每个纹素的颜色。用于内插的端点由16位端点分量形成,并且从由8位分量(对于使用低动态范围(LDR)编码的纹理)或12位分量(对于使用高动态范围(HDR)编码的纹理)形成的相应颜色端点生成。如果端点由多个分量形成,则一对端点之间的插值涉及在端点对的每个相应分量之间的插值。可以使用内插权重来指定两个端点的加权平均值,这与在颜色端点之间的线性渐变上指定位置相对应,从而为该纹素定义颜色。
插值的示意图在图1A中示出,该图示出了在表示为102的红蓝色(RB)颜色空间中的一对颜色端点A(表示为104)和B(表示为106)。在此示例中,每个纹素都可以具有以下五个权重之一:0/4(对应于颜色A);1/4;2/4;3/4;或4/4(对应于颜色B)。图1B中示出了4x 4块的每个纹素的纹素权重的示例。尽管以RB颜色空间的简单示例示出,但在诸如RGB或RGBA的不同颜色空间中工作时,仍采用相同的方法。
内插权重可以以权重网格的形式存储,权重网格是对应于数据块中表示的纹素的块的权重值的2-D网格。在某些编码中,可以为数据块中的每个纹素存储内插权重(即,权重网格的尺寸对应于块足迹的尺寸)。但是,对于表示较大数量的纹素(例如12x 12纹素)的纹理数据的数据块,在该块内可能没有足够的数据来存储每个纹素的内插权重。在这种情况下,可以存储稀疏权重网格,该稀疏权重网格包含的权重数量少于每个数据块内纹素的数量。然后可以从该稀疏权重网格的插值计算出数据块中每个纹素的权重。
为此,首先将块内纹素的坐标缩放到权重网格的尺寸。坐标由缩放因子缩放,该缩放因子将权重网格的尺寸缩放为块足迹的尺寸。然后,将纹素相对于权重网格的重新缩放位置用于选择权重网格的权重子集,并***这些权重以计算纹素的权重。例如,可以选择并***来自邻近纹素的相邻权重网格点的块中的四个权重,以计算纹素的权重。
在某些情况下,可以使用一对颜色端点来计算数据块中每个纹素的颜色。但是,在其他情况下,块可以表示具有不同颜色混合的纹素,这些纹素不能通过在一对颜色端点之间进行插值来合理地表示。为了解决这个问题,可以将数据块中的每个纹素分配给最多四个分区之一,其中每个分区都与自己的颜色端点对相关联。为了确定块内纹素的颜色,确定纹素所属的分区,并根据该纹素的内插权重和与该分区相关联的颜色端点对来计算颜色。可以独立于颜色端点对(即,独立于纹素所属的分区)在数据块内存储和编码内插权重。
这在图2A和2B中示意性地说明。图2A示出了由RB颜色空间206内的端点颜色A和B形成的第一颜色端点对202,以及由端点颜色C和D形成的第二颜色端点对204。第一端点对属于第一分区,第二端点对属于第二分区。因此,在此示例中,有两个分区。每个颜色端点对可以用五个权重进行插值。图2B示出了由纹理数据块表示的纹素208的块。所示的分区掩码覆盖在纹素块上,指示每个纹素属于哪个分区。分区掩码是值的网格,其中每个值都表示纹素所属的分区。每个值都可以同样称为分区索引。特别地,值1表示纹素属于第一分区(与颜色端点对202相关联);值2表示纹素属于第二分区(与颜色端点对204相关联)。还示出了每个纹素的权重。为了确定纹素的颜色,分区索引用于标识颜色端点对,权重用于***在该对端点之间。例如,纹素210具有分区索引1和权重3/4,因此具有由RB颜色空间中的位置212定义的颜色。例如,纹素214具有分区索引2和权重1/4,因此具有由RB颜色空间中的位置216定义的颜色。
尽管ASTC可以提供压缩纹理数据的有效方式,但是用于解码根据ASTC压缩的纹理数据的解码硬件在硬件资源和硅面积方面通常可能是昂贵的。
发明内容
根据本发明,提供了一种二进制逻辑电路,该二进制逻辑电路用于使用加权索引i在两个端点值E0和E1之间执行插值计算,以生成插值结果P,值E0和E1分别由自适应可缩放纹理压缩(ASTC)低动态范围(LDR)颜色端点值C0和C1形成,该电路包括:
插值单元,其被配置为使用加权索引i在颜色端点值C0和C1之间进行插值,以生成第一中间插值结果C2;以及
组合逻辑电路,其被配置为接收插值结果C2,并且当插值结果与sRGB颜色空间不兼容时,根据等式当插值结果与sRGB颜色空间兼容时,根据等式/> 来执行一个或多个逻辑处理操作,以计算插值结果P。
可以根据等式来指定使用加权索引i在两个端点值E0和E1之间的插值计算,其中p等于插值结果。
插值单元可以包括插值器,该插值器被配置为使用加权索引i在颜色端点值C0和C1之间执行插值,以对于i的非异常值,根据等式C2=C0.(64-i)+C1.i,生成插值结果C2。
插值单元可以进一步包括异常处理电路,该异常处理电路被配置为对于i的异常值,生成插值结果C2。
异常处理电路可以被配置为对于i的异常值,根据等式C2=C1.i来生成插值结果C2。
加权索引可以包括7位,并且插值器可以被配置为使用加权索引的6个最低有效位在颜色端点值C0和C1之间执行插值。
组合逻辑电路可以包括:
格式化电路,其被配置为根据插值结果是否与sRGB颜色空间兼容,从一组值C0、C1和C2生成第二中间插值结果;
第一逻辑单元,其被配置为将第二中间插值结果左移等于每个颜色端点值C0和C1的位数的位数,并向移位结果加上一个常数以生成第三中间插值结果;以及
第二逻辑单元,其被配置为如果插值结果与sRGB颜色空间不兼容,则将第二中间插值结果与第三插值结果相加。
组合逻辑电路可以进一步包括右移位器,该右移位器被配置为将第二逻辑单元的输出右移指定的位数以生成插值结果。
指定的位数可能等于6。
第一逻辑单元可以被配置为将第二中间插值结果左移8位并且与数值常数32相加以生成第三中间插值结果。
格式化电路可以被配置为生成第二中间插值结果,作为:(i)当插值结果与sRGB颜色空间不兼容时,第一中间插值结果C2;(ii)当插值结果与sRGB颜色空间兼容时,第一中间插值结果C2和数值常数的和。
格式化电路可以被配置为生成第二中间插值结果,作为:(i)当插值结果与sRGB颜色空间不兼容并且加权索引的值不等于异常值时,从插值器输出的插值结果C2;(ii)当插值结果与sRGB颜色空间兼容并且加权索引的值不等于异常值时,从插值器输出的插值结果C2与数值常数的和;(iii)当插值结果与sRGB颜色空间不兼容并且加权索引的值等于异常值时,从异常处理电路输出的插值结果C2;iv)当插值结果与sRGB颜色空间兼容并且加权索引的值等于异常值时,从异常处理电路输出的插值结果C2与数值常数的和。
格式化电路可以包括:
选择单元,其被配置为在(i)依赖于从异常处理电路输出的插值结果C2的第一输入;以及(ii)依赖于从插值器输出的插值结果C2的第二输入之间进行选择,这取决于加权索引的值是否等于异常值。
格式化电路可以包括逻辑单元,该逻辑单元被配置为仅在插值结果与sRBG颜色空间兼容时才将其接收的输入与非零数值常数相加。
向逻辑单元的输入可以是选择单元的输出。
向逻辑单元的输入可以是从异常处理电路输出的插值结果C2,以及从插值器输出的插值结果C2。
向选择单元的第一输入可以是从异常处理电路输出的插值结果C2,向选择单元的第二输入可以是从插值器输出的插值结果C2。
根据本公开的第二方面,提供了一种方法,该方法使用二进制逻辑电路通过加权索引i在两个端点值E0和E1之间进行插值,以生成插值结果P,值E0和E1分别由自适应可缩放纹理压缩(ASTC)低动态范围(LDR)颜色端点值C0和C1形成,该方法包括:
在二进制逻辑电路的插值单元处,使用加权索引i在颜色端点值C0和C1之间进行插值,以生成第一中间插值结果C2;
在二进制逻辑电路的组合逻辑电路处,接收插值结果C2,并且当插值结果与sRGB颜色空间不兼容时,根据等式 当插值结果与sRGB颜色空间兼容时,根据等式/> 来执行一个或多个逻辑处理操作,以计算插值结果P。
可以根据等式来指定使用加权索引i在两个端点值E0和E1之间的插值计算,其中p等于插值结果。
在插值单元处执行插值的步骤可以包括:使用加权索引i来使用插值器,以对于i的非异常值,根据等式C2=C0.(64-i)+C1.i来生成插值结果C2。
在插值单元处执行插值的步骤还可包括:在异常处理电路处,对于i的异常值,生成插值结果C2。
可以根据等式C2=C1.i来生成i的异常值的插值结果。
执行一个或多个逻辑处理操作的步骤可以包括:
在格式化单元处,根据插值结果是否与sRGB颜色空间兼容,从一组值C0、C1和C2生成第二中间插值结果;
将第二中间插值结果左移等于每个颜色端点值C0和C1的位数的位数,并向移位结果加上一个常数以生成第三中间插值结果;以及
如果插值结果与sRGB颜色空间不兼容,则将第二中间插值结果与第三插值结果相加。
执行一个或多个逻辑处理操作的步骤还可以包括:
将第二逻辑单元的输出右移指定的位数,以生成插值结果。
该方法可以包括将第二中间插值结果左移8位,并且与数值常数32相加以生成第三中间插值结果。
可以将第二中间插值结果生成为:(i)当插值结果与sRGB颜色空间不兼容时,第一中间插值结果C2;(ii)当插值结果与sRGB颜色空间兼容时,第一中间插值结果C2和数值常数的和。
可以将第二中间插值结果生成为:(i)当插值结果与sRGB颜色空间不兼容并且加权索引的值不等于异常值时,由插值器生成的插值结果C2;(ii)当插值结果与sRGB颜色空间兼容并且加权索引的值不等于异常值时,由插值器生成的第一插值结果C2与数值常数的和;(iii)当插值结果与sRGB颜色空间不兼容并且加权索引的值等于异常值时,由异常处理电路生成的插值结果C2;iv)当插值结果与sRGB颜色空间兼容并且加权索引的值等于异常值时,由异常处理电路生成的插值结果C2与数值常数的和。
二进制逻辑电路可以用集成电路上的硬件来体现。
可提供一种集成电路定义数据集,所述集成电路定义数据集在集成电路制造***中被处理时配置集成电路制造***以制造根据本文中的任一个示例的二进制逻辑电路。
可提供一种被配置为制造根据本文中的任一个示例的二进制逻辑电路的集成电路制造***。
可以提供一种在集成电路制造***处制造根据本文中的任一个示例的二进制逻辑电路的方法。
可提供一种使用集成电路制造***制造根据本文中的任一个示例的二进制逻辑电路的方法,所述方法包括:
使用布局处理***,处理图形处理***的计算机可读描述,以便生成体现二进制逻辑电路的集成电路的电路布局描述;以及
使用集成电路生成***,根据所述电路布局描述来制造二进制逻辑电路。
可提供用于执行根据本文中的任一个示例的方法的计算机程序代码。
可以提供一种非暂时性计算机可读存储介质,非暂时性计算机可读存储介质上存储有计算机可读指令,计算机可读指令在计算机***处执行时使计算机***执行根据本文中的任一个示例的方法。
可以提供一种非暂时性计算机可读存储介质,其上存储有根据本文中的任一个示例的二进制逻辑电路的计算机可读描述,当在集成电路制造***中被处理时,该计算机可读描述使集成电路制造***制造体现二进制逻辑电路的集成电路。
可提供一种在其上存储有根据本文中的任一个示例的二进制逻辑电路的计算机可读描述的计算机可读存储介质,所述计算机可读描述在集成电路制造***中被处理时使集成电路制造***进行以下操作:
使用布局处理***,来处理二进制逻辑电路的计算机可读描述,以便生成体现所述二进制逻辑电路的集成电路的电路布局描述;以及
使用集成电路生成***,根据所述电路布局描述来制造二进制逻辑电路。
可提供一种集成电路制造***,包括:
非暂时性计算机可读存储介质,其上存储有根据本文中的任一个示例的二进制逻辑电路的计算机可读描述;
布局处理***,其被配置为处理所述计算机可读描述以便生成体现所述二进制逻辑电路的集成电路的电路布局描述;以及
集成电路生成***,其被配置为根据所述电路布局描述来制造二进制逻辑电路。
附图说明
参考附图以示例的方式描述本发明。在附图中:
图1A示出了位于RB颜色空间内的颜色端点对。
图1B示出了一个4x 4的纹素块,以及一个权重网格,指示用于在颜色端点对之间进行插值的每个纹素的权重。
图2A示出了位于RB颜色空间内的两个颜色端点对。
图2B示出了4×4的纹素块,其中分区掩码指示每个纹素的分区索引,而权重网格指示每个纹素的权重。
图3示出了用于从根据ASTC规范压缩的数据块中解码多个纹素的多输出解码器。
图4出示了纹理数据块和要从该块解码的纹素的子块的块足迹。
图5示出了构成图3所示的解码器的一部分的参数解码单元的示例结构。
图6示出了构成图3所示的解码器的一部分的颜色解码单元的示例结构。
图7示出了构成图3所示的解码器的一部分的权重解码单元的示例结构。
图8示出了如何将块内纹素的坐标重新缩放到权重网格的尺寸。
图9示出了构成图3所示的解码器的一部分的支持LDR输入的插值单元的示例。
图10示出了构成图3所示的解码器的一部分的支持LDR输入的插值单元的替代示例。
图11示出了构成图3所示的解码器的一部分的支持LDR和HDR输入的插值单元的示例。
图12示出了构成图3所示的解码器的一部分的支持LDR和HDR输入的插值单元的替代示例。
图13示出了示例集成电路制造***。
具体实施方式
本公开针对用于在根据自适应可缩放纹理压缩(ASTC)格式指定的一对端点之间进行插值的插值单元。插值单元可以在一对端点之间进行插值,以计算根据ASTC格式编码的纹素的颜色值。描述了示例插值单元,其被优化为仅支持使用低动态范围(LDR)编码的纹素的端点的插值。还描述了示例插值单元,其被优化以支持使用低动态范围(LDR)或高动态范围(HDR)编码的纹素的端点的插值。
如上所述,每个端点对的端点都可以包括一个或多个(例如,多达四个)端点分量。传统上,根据ASTC格式的两个端点分量E0和E1之间的插值是根据以下等式计算的:
其中P是计算出的插值结果,i是加权索引。
端点分量E0和E1均为16位无符号归一化整数(即16位UNORM值)。每个端点分量E0和E1分别由颜色端点分量C0和C1形成。每个颜色端点分量ftj可以是8位UNORM值(对于LDR端点)或12位UNORM值(对于HDR端点)。因此,使用加权索引i在16位端点分量E0和E1之间进行插值的常规ASTC插值器单元通常需要能够在两个16位值之间插值的插值器。
然而,已经认识到,可以通过代替地使用加权索引i在低位颜色端点分量C0和C1之间进行插值以生成中间插值结果,然后对该中间结果执行逻辑处理操作以计算结果P,来计算插值结果P。本文所述的插值单元包括:插值器,用于在分量C0和C1之间进行插值,以生成中间结果;以及其他组合逻辑电路,用于将该中间结果转换为插值结果P。在低位颜色端点分量C0和C1之间,而不是在16位值E0和E1之间执行插值,可以缩小插值器的大小和缩短执行内插所需的时间。尽管执行附加的逻辑处理操作以将中间插值结果转换为插值结果P,但是已经发现可以通过相对便宜的逻辑部件(就大小和附加处理时间而言)执行这些操作,这意味着本文所述的插值单元与传统的插值单元相比,可以节省电路尺寸和处理时间,从而受益匪浅。这将在下文更详细地解释。
如本文所使用的,相同的附图标记表示相同的部件。
图3示出了用于从根据ASTC格式编码的纹理数据块中解码纹素的解码器单元300的示意图。
解码器包括参数解码单元302,颜色解码单元304,权重解码单元306和至少一个插值单元308。参数解码单元耦合到颜色解码单元和权重解码单元。特别地,参数解码单元的输出耦合到权重解码单元和颜色解码单元两者的输入。颜色解码单元和权重解码单元中的每个都耦合到至少一个插值单元。更具体地,权重和颜色解码单元的输出耦合到插值单元的输入。
解码器300被配置为接收如310所示的ASTC编码的纹理数据块作为输入。如上所述,该块的大小或存储器足迹为128位。纹理数据块310编码n×m纹素块的纹理颜色。n×m块的纹素可以形成压缩图像或纹理的一部分。纹理可以由多个这样的纹理块组成,其中那些块中的每一个都被编码在相应的128位数据块中。由纹理数据块表示的纹素的数量称为块足迹。块的尺寸(即n和m的值)可以从由ASTC标准指定的许多固定替代值中选择。
解码器操作以对来自纹理块310的纹素进行解码。解码器可以根据解码过程来操作以对纹素进行解码。该解码过程可以包括一系列解码步骤或操作。解码特定纹素所经历的一系列步骤可以被称为解码流水线。因此,解码器300可操作以对来自块310的纹素进行解码,其中根据解码流水线来对每个纹素进行解码。
在以下示例中,出于说明的目的,纹理数据块310代表12×12的纹素块(在图4中402处示出)。出于说明的目的,在404处示出要解码的纹素。
参数解码单元302接收数据块310。参数解码单元操作以解码块310的配置数据。配置数据可以是在块310内指定纹理数据及其编码的参数的数据。配置数据可以包括,例如:权重网格的大小和/或权重值的范围;分区计数(即,数据块310的分区数)和颜色端点模式(包括端点模式是LDR还是HDR的指示)。
在图5中更详细地示出了参数解码单元302的示例。如图所示,参数解码单元302包括块模式单元502;颜色端点单元504和分区索引单元506。
块模式单元502被配置为对配置数据的一部分进行解码,该配置数据包括权重网格的大小(其高度和宽度,即其尺寸)以及可以被权重网格的权重占据的权重值的范围。
分区索引单元506被配置为计算要从数据块310解码的纹素的分区索引。分区索引标识纹理元素属于哪个分区,并且是配置参数的示例。
根据种子、分区计数和纹素块402内的纹素的坐标,来计算每个纹素的分区索引。种子、分区计数和纹素坐标可以称为中间配置数据,因为它们是用于解码配置参数(分区索引)的数据的示例,但它们本身不是配置参数。分区计数由形成分区索引单元506的一部分的分区计数单元510从数据块310解码。种子由种子计算块508根据从数据块310解码的分区模式索引来计算。纹素的坐标由纹素坐标单元(TCU)512来计算。TCU 212可以包括用于计算正被解码的纹素404的坐标的硬件。分区索引单元包括索引计算器514,该索引计算器用于根据种子、分区计数和纹素坐标来计算分区索引。索引计算器计算正被解码的纹理元素404的分区索引。
颜色端点单元504被配置为对来自数据块310的颜色端点模式进行解码。在纹理数据具有大于一个的分区计数(即,存在多个分区)的情况下,颜色端点单元可以对每个分区的颜色端点模式进行解码。如上所述,颜色端点模式指定如何将从块310解码的颜色值转换为颜色端点。通常,ASTC规范指定了16种可能的颜色端点模式,其中这些模式要求使用不同数量的颜色值来形成颜色端点。特别地,四种模式由单个颜色值(例如,亮度)形成单个颜色端点,因此对于每个颜色端点对都需要两个颜色值;四种模式从两个颜色值形成单个颜色端点,因此对于每个颜色端点对都需要四个颜色值;四种模式需要三个颜色值来形成每个颜色端点,因此对于每个颜色端点对都需要6个颜色值;以及四种模式需要四个颜色值来形成单个颜色端点(例如RGBA),因此对于每个颜色端点对都需要8个颜色值。
颜色解码单元304使用从数据块310解码的配置数据,对正在从数据块310解码的纹素404的颜色端点数据进行解码。颜色端点数据包括正在被解码的纹素404的颜色端点对。如果数据块310的分区计数为1,则将要解码的每个纹素都与相同的颜色端点对相关联。颜色端点数据最多可以包括八个颜色端点,这些颜色端点构成四个颜色端点对(分区计数为四个,即每个分区一个颜色端点对)。颜色端点对中的一个或多个可以与要从数据块310解码的纹素组中的多个纹素相关联;即,一些要解码的纹素可以共享一个公共的颜色端点对。
颜色解码单元304的示例结构在图6中示出。颜色解码单元包括颜色数据选择器单元(CDSU)602,序列解码器单元608,颜色去量化单元604和颜色端点计算单元606。
CDSU 602被配置为确定数据块310内的颜色数据的大小,即,用于表示颜色端点的块310内的数据的大小。在ASTC中,颜色数据在数据块中被编码为可变长度的位串。颜色数据是根据有界整数序列编码(BISE)方案进行编码的。可以根据分区计数(由分区计数单元510解码的)和由块模式单元502解码的块模式数据来确定颜色数据的大小。CDSU 602还可解码颜色数据在数据块310内的位置。该信息也可以根据分区计数和块模式数据来确定。
序列解码器单元608被配置为执行对颜色数据的整数序列解码。如上所述,根据二进制整数序列编码(BISE)方案在数据块内编码颜色数据。BISE方案的使用使颜色值可以以小数位数进行编码。值的序列可以使用三进制数位(以3为基数表示)或五进制数位(以5为基数表示)来表示。也可以使用其他基数表示形式。
颜色去量化单元604被配置为从解码后的颜色数据中提取颜色值并对这些颜色值进行去量化。
端点计算单元606被配置为将由去量化单元604解码的去量化的颜色值转换为一组颜色端点。端点计算单元606可以使用分区索引和该纹素的相关联的颜色端点模式来计算每个给定纹素的一对颜色端点。
端点计算单元606可以输出正被从块310解码的纹素的一对颜色端点。为此,端点计算单元606可以使用正在被解码的纹素的分区索引,从颜色端点的集合中选择端点对。或者,它可以输出每个分区的颜色端点和纹素的分区索引。
权重解码单元306使用由参数解码单元302解码的配置数据,对正在被从块310解码的纹素的内插权重数据进行解码。因此,权重解码单元可以对正在被从块310解码的每个纹素的权重进行解码。这些权重值由插值单元308接收。给定纹素的权重值在本文中表示为i,并且也可以称为权重索引。ASTC中权重值的范围原则上可以有所不同,但通常限制为0到64。因此,权重索引可以由任何指定的位数形成,但是通常限制为七个位(表示值64所需的最小位数)。
图7示出了权重解码单元306的示例内部结构。这里,权重解码单元包括缩放单元702;权重数据选择器单元(WDSU)704;序列解码器单元718;权重去量化单元706和权重插值单元708。缩放单元702耦合到WDSU 704;WDSU耦合到去量化单元706,去量化单元耦合到权重插值单元708。
缩放单元702被配置为识别将在插值中使用的权重网格的权重,以生成正在被解码的纹素404的权重索引i。缩放单元702可以从正被解码的纹素的权重网格中识别一组权重。然后,可以由单元708***每组权重值,以生成纹素的最终权重索引i。
如上所述,取决于块足迹的大小,可能未为数据块310表示的每个纹素显式存储权重。对于较大的块足迹(例如12x 12纹素),权重网格的分辨率比块尺寸小。在这种情况下,为了得出每个纹素的权重,将纹素的坐标缩放到权重网格的尺寸,然后,对每个纹素执行权重插值,以计算这些纹素的最终权重。
缩放单元702包括缩放因子单元710和权重选择器单元712。缩放因子单元710对缩放因子进行解码,该缩放因子将权重网格的大小缩放为来自数据块310的块足迹的大小。权重选择器单元712使用缩放因子来将正被解码的纹素404的坐标缩放到权重网格,并选择要在插值中使用的权重网格的权重,以计算纹素的最终权重索引i。权重选择器单元712使用与缩放因子单元710计算出的缩放因子相同的缩放因子来缩放纹素404的坐标。
该过程在图8中示意性地说明。用“X字”标记(一般用802表示)示出6×6纹素的块足迹,用“点”标记表示5×5的权重网格,并通常用804表示。因此,权重网格的分辨率低于块足迹的尺寸。为了说明的目的,块足迹和权重网格彼此重叠示出。然后将缩放因子应用于纹素的坐标,以将块足迹重新缩放为权重网格的尺寸。在806处一般性地示出了应用该缩放因子的结果。在该示例中,出于说明的目的,缩放因子已被应用于块足迹中的所有纹素(而不只是被解码的所选纹素)。然后,使用重新缩放的纹素坐标来选择要***的权重网格的一组权重,以便计算每个纹素的最终权重索引。例如,某个纹素A(圈起来以便于识别)的坐标从位置808重新缩放到位置810。然后,选择权重集合812、814、816和818用于内插,以使用纹素A相对于权重网格的重新缩放位置来生成该纹素的最终权重索引。
权重数据选择器单元704确定块内的权重数据的大小以及用于正在被解码的纹素的权重插值中的权重网格的所选权重的数据的位置。
WDSU包括权重数据大小单元714和权重***单元716。数据大小单元714被配置为确定块310内的权重数据的大小。数据大小单元714基于权重值范围和由块模式单元502解码的权重网格的大小来确定这一点。
权重***单元716被配置为针对要解码的纹素404的权重插值中要使用的每组权重,在块310内定位权重数据。
像颜色数据一样,权重数据也可以是BISE编码的。序列解码器单元718被配置为执行对权重数据的二进制整数序列解码。
权重去量化单元706被配置为对纹素404的经解码的权重集合进行去量化(即,将每个权重从其编码范围返回到其原始范围)。
权重插值单元708被配置为***正在被解码的纹素404的权重集合,以为该纹素计算最终插值权重索引i(例如,纹素的每平面的最终插值权重)。
然后,从权重解码单元306输出正在被解码的纹素404的最终权重索引i。
插值单元308使用由单元306计算出的纹素的颜色端点数据和由单元304计算出的纹素的权重索引i,来计算正被解码的纹素404的色值。
现在将描述插值单元308的示例。这些示例大致分为两组:第一组仅支持LDR操作模式,第二组同时支持LDR和HDR操作模式。首先将描述仅支持LDR操作模式的示例插值单元。
仅LDR模式
图9示出了插值单元900的示例结构。插值单元900仅支持LDR操作模式,即其被配置为仅对LDR输入操作。
插值单元采用对二进制输入操作的二进制逻辑电路的形式。二进制逻辑电路包括插值单元920和组合逻辑电路904。插值单元920包括插值器902和异常处理电路918。组合逻辑电路904包括格式化电路906;移位器和加法器逻辑单元908;附加逻辑单元910和移位器912。二进制逻辑电路900被配置为使用从权重解码单元306输出的加权索引i来计算端点分量E0和E1之间的插值,以形成插值结果P。P的值如上式(1)所指定,此处重复以供参考:
分量E0和E1中的每一个都是形成端点对的相应端点的分量。在该示例的上下文中,该端点对是正在被解码的纹素404的端点对。权重索引i是纹素404的权重索引。插值结果可以是或更一般地可以指示纹素404的颜色分量值。
端点分量E0和E1分别由颜色解码单元304确定的纹素404的LDR颜色端点分量C0和C1形成。特别地,端点分量E0由颜色端点分量C0的扩展形成,并且端点分量E1由颜色端点分量C1的扩展形成。如上所述,端点分量E0、E1代表16位UNORM值,LDR颜色端点分量C0、C1代表8位UNORM值。因此,为清楚起见,注意,值E0、E1、C0、C1和i是无符号二进制整数。
插值单元920被配置为接收纹素404的颜色端点分量C0和C1,纹素的权重索引i以及可选地值imax-i,作为输入,其中imax是指定范围允许的权重索引的最大值。如上所述,该最大值通常为64。在替代布置中,插值器可以根据接收到的索引i和对值imax的知识来计算imax-i的值。
与传统的ASTC解码器相反,插值单元920不使用扩展的16位端点分量E0和E1执行插值,而是使用加权索引i在8位值C0和C1之间执行插值以形成中间插值结果。使用插值器902对加权索引i的非异常值执行该插值,并且对于i的异常值,由异常处理电路918执行该插值。组合逻辑电路904操作以从该中间结果生成最终插值结果P。现在将对此进行更详细的说明。
ASTC标准规定,对于LDR输入,插值结果(例如,纹素的颜色值)可能与sRGB颜色空间兼容,也可能与sRGB颜色空间不兼容。与sRGB颜色空间兼容可能意味着可以将插值结果转换为sRGB颜色空间,而与sRGB颜色空间不兼容可能意味着无法将插值结果正确地转换为sRGB颜色空间。插值结果与sRGB颜色空间的兼容性可以等效地表示为已启用到sRGB颜色空间的转换;而与sRGB颜色空间不兼容可以等效地表示为未启用转换为sRGB颜色空间(即,被禁用)。ASTC标准规定,当禁止将已解码的颜色值转换为sRGB颜色空间时,颜色端点分量C0和C1分别通过位复制来扩展到E0和E1,即:
在等式(2)和(3)中,<<表示左移,表示级联。换句话说,端点分量E0由C0与自身的级联形成,而端点分量E1由C1与自身的级联形成。
相反,当启用解码的颜色值到sRGB颜色空间的转换时,颜色端点分量C0和C1通过与表示值128的8位二进制字符串级联而分别扩展为E0和E1,即:
通过将等式(2)和(3)代入等式(1),可以看出,用于计算插值结果P的替代表达式(对于禁止转换为sRGB颜色空间的情况)由下式给出:
其中
C2=C0.(64-i)+C1.i (7)
类似地,通过将等式(3)和(4)代入等式(1),可以看出,用于计算插值结果P的替代表达式(对于启用到sRGB颜色空间的转换的情况)由下式给出:
其中:C2=C0.(64-i)+C1.i。
权重索引i的值的范围被限制为0-64,这使得其中i=64的情况被作为异常情况处理。
从等式(7)可以看出,当i<64(非异常情况)时:
而当i=64(异常情况)时:
插值器902操作以使用权重索引i在输入C0和C1之间进行插值,以通过实现等式(9)来计算中间插值结果因此,方便地,插值器902对8位分量C0和C1而不是如在常规插值器中一样,对16位端点分量E0和E1进行操作,并且意味着与常规插值器相比,可以减小插值器902的尺寸。
二进制逻辑电路可以被配置为使得插值器902仅接收权重索引i的六个最低有效位(这使插值器能够对范围0-63内的权重索引i的非异常值执行插值)。换句话说,如果i<64,则插值器902可以根据等式(9)使用权重索引i的六个最低有效位来执行插值以生成中间结果当i=64时,插值器902的结果将是任意的。
异常情况(i=64)由异常处理电路918处理。当i=64时,异常处理电路918被配置为根据等式(10)来生成中间结果异常处理电路918接收值C1作为输入,并从该输入生成中间结果/>电路918采用移位器的形式,该移位器被配置为将输入C1左移六位(相当于将输入C1乘以64),以在i=64时生成中间结果/>
中间插值结果和/>被输入到组合逻辑电路904中,该组合逻辑电路根据是否启用到sRGB颜色空间的转换,根据等式(6)或(8)来生成最终的插值结果P。换句话说,组合逻辑电路904通过实现等式(6)或(8)来生成最终插值结果P。更详细地,中间插值结果和/>由格式化电路906接收。格式化电路906根据是否启用颜色数据到sRGB的转换来生成进一步的中间结果/>和C2′。它以取决于加权索引i是否具有异常值64的方式获得结果C2”。
格式化电路906包括逻辑单元914和选择单元916。逻辑单元914被配置为接收中间结果和/>指示启用或禁用向sRGB颜色空间的转换的信号(该信号可以被称为sRGB信号)作为输入。该信号例如可以是二进制标志,其中该标记的第一值指示启用向sRGB的转换,而该标志的第二值指示未启用向sRGB的转换。逻辑单元914被配置为:如果sRGB信号指示未启用到sRGB的转换,则生成等于中间插值结果/>的输出结果/>如果sRGB信号指示启用到sRGB的转换,则生成等于/>的输出结果。如果sRGB信号指示未启用到sRGB的转换,则逻辑单元914进一步生成等于中间插值结果/>的输出结果C2′,如果sRGB信号指示启用到sRGB的转换,则生成等于/>的输出结果。
换句话说,逻辑单元914被配置为生成输出中间结果:
在等式(11)中,符号‘sRGB′’表示已启用到sRGB的转换,而符号表示未启用到sRGB的转换。
生的中间结果被输入到选择单元916。选择单元916操作以生成另一中间结果(表示为C2”),其中中间结果C2”取决于索引i是否等于异常值64或小于64。选择单元916接收:(i)由逻辑单元914生成的中间结果C2′和以及(ii)加权索引i,作为输入。选择单元916被配置为根据加权索引i来生成等于中间结果C2′和/>之一的输出C2”。换句话说,选择单元916这样处理异常情况:如果i<64输出/>当i=64时,输出异常结果C2′,如下所示:
因此,选择单元916可以是MUX。
使用恒定的左移位器918和逻辑单元914,仅从输入C1中获得等式(12)中的两个异常值。选择单元916将基于输入i,在非异常值和异常值C2′之间
适当地选择。
因此,格式化电路906的逻辑单元914,移位器单元918和选择单元916的组合操作以生成中间插值结果C2”为:(i)当颜色数据到sRGB颜色空间的转换未启用时,C2;(ii)当颜色数据到sRGB颜色空间的转换已启用时,结果C2和一个数值常数(在此实现中为32)的总和。
数学上:
从格式化电路906输出的中间插值结果C2”被输入到移位器和加法器逻辑单元908。
单元908被配置为将中间结果C2”左移等于每个颜色端点分量C0、C1的位数的位数(在本示例中为8位)以生成移位结果,并且在移位后的结果上加上一个数值常数(在本示例中为32),以生成另一个中间插值结果C2”’。
数学上,单元908通过执行以下操作来生成中间结果C2”’:
C2″′=(C2″<<8)+32 (15)
代入等式(14)给出的C2”的值,可以看出,根据是否启用了向sRGB的转换,单元908计算出的C2”’的值等于两个值之一:
注意,213=128.64,因此:
中间结果C2”’被输出到逻辑单元910。逻辑单元910被配置为输出另一中间结果C2 iv。逻辑单元910接收由格式化电路906输出的中间信号C2”作为输入。单元910还接收sRGB信号作为输入。逻辑单元910被配置为取决于是否启用到sRGB的转换,有条件地将中间结果C2”与中间结果C2”’相加。具体地,逻辑单元910被配置为:如果未启用sRGB转换,则将中间结果C2”与接收到的中间结果C2”’相加,以形成中间结果C2 iv,并且如果已启用sRGB转换,则输出等于C2”’的中间结果C2 iv。
在数学上表示,逻辑单元910被配置为输出计算为如下的中间结果C2 iv:
中间结果C2 iv被输入到移位器912。移位器912配置为将输入C2 iv右移以生成最终的插值结果P。在此示例中,移位器912被配置为将输入C2 iv右移6位,这等效于将输入除以数值64,并将商数舍入为小于或等于它的最大整数。因此,组合逻辑电路输出的P的值等于:
将等式(19)与等式(6)和(8)进行比较,可以看出,对于启用了到sRGB的转换的情况和未启用到sRGB的转换的情况,对于所有非负整数加权索引i≤64,二进制逻辑电路900正确计算了最终插值结果P。
图10示出了仅支持LDR操作模式的插值单元1000的替代结构。插值单元1000也是二进制逻辑电路的形式。
二进制逻辑电路包括插值单元920和组合逻辑电路1004。组合逻辑电路1004包括格式化电路1006;移位器和加法器逻辑单元908;附加逻辑单元910和移位器912。二进制逻辑电路900和1000之间的区别在于格式化电路,下面将对其进行详细说明。
插值单元920输出中间插值结果C2。特别地,如上所述,如果i<64,则插值器902根据等式(9)输出中间插值结果并且如上所述,当i=64时,异常处理电路918根据等式(10)生成中间结果/>
组合逻辑电路1004接收中间结果和/>并执行一组逻辑处理操作,以根据例如通过实现等式(6)和(8),生成最终的插值结果P。
格式化电路1004接收中间结果和/>并根据是否启用了颜色数据到sRGB的转换,从这些输入生成进一步的中间结果C2”。它以一种取决于加权索引i的值是否等于异常值的方式来获取结果C2”。
格式化电路1006包括选择单元1008和逻辑单元1010。选择单元1008操作以生成另一中间结果C2’,其中根据索引i等于异常值(i=64)或不等于异常值(即i<64),从插值器902或异常情况移位器918的输出中选择中间结果C2’。换句话说,选择单元1008通过取决于加权索引等于异常值或者加权索引不等于异常值,输出由不同硬件分支计算出的中间结果C2’来处理异常情况。具体地,选择单元接收:(i)由插值器902和电路918分别生成的中间结果和/>;(ii)加权索引i,作为输入。选择单元916被配置为根据加权索引i来生成等于中间结果C2′和/>之一的输出C2”。换句话说,选择单元916这样处理异常情况:如果i<64输出非异常值/>当i=64时,输出异常结果C2′,如下所示:/>
因此,选择单元916可以是MUX。
进一步的中间结果C2’被输入到逻辑单元1010。逻辑单元1010还接收sRGB信号作为输入。逻辑单元1010被配置为:如果sRGB信号指示未启用到sRGB的转换,则生成等于所接收的中间结果C2'的另一中间结果C2”,如果sRGB信号指示已启用到sRGB的转换,则生成输出结果C2”=C2'+32。换句话说,逻辑单元1010被配置为生成输出结果C2”,其中:
逻辑单元1010操作以生成中间插值结果C2”为:(i)当未启用从颜色数据到sRGB颜色空间的转换时,C2;(ii)当启用颜色数据到sRGB颜色空间的转换时,结果C2和一个数值常数(在此实现中为32)的总和。
格式化电路1006与格式化电路906的不同之处在于,与电路906相比,电路1006中的选择单元和逻辑单元的顺序是相反的。然而,对等式(21)和(14)的比较表明,两种类型的电路均接收相同的中间结果和/>并输出相同的进一步的中间结果C2”。
电路1000的其余部件908至912与电路900中的部件相同,因此这里将不再重复对这些部件的描述。
现在将描述同时支持LDR和HDR操作模式的示例插值单元。
LDR和HDR模式
图11示出了插值单元1100的示例结构。插值单元1100同时支持LDR操作模式和HDR操作模式;即它被配置为可以对LDR和HDR输入两者操作。
插值单元1100采用对二进制输入操作的二进制逻辑电路的形式。二进制逻辑电路包括插值单元1120和组合逻辑电路1104。插值单元1120包括插值器1102和异常处理电路918。组合逻辑电路***1104包括格式化电路***906;第一电路分支1106和第二电路分支1108。第一电路分支1106包括移位器和加法器逻辑单元908;附加逻辑单元910和移位器912。二进制逻辑电路900被配置为使用从权重解码单元306输出的加权重索引i在端点分量E0和E1之间执行插值计算,以形成插值结果P。端点E0和E1可以是LDR输入或HDR输入。P的值如上式(1)所指定,此处再次重复以供参考:
端点E0和E1也是UNORM 16位值。E0由颜色端点分量C0的扩展形成,E1由颜色端点分量C1的扩展形成。
当颜色端点分量C0和C1是8位LDR输入时,分别由上述等式(2)和(3)给出对Eo和E1的扩展。
当颜色端点分量C0、C1改为HDR输入时,它们是UNORM 12位值。ASTC标准规定,当C0和C1是HDR输入时,分别通过零填充扩展到16位值E0和E1,即:
/>
换句话说,通过将颜色端点分量C0左移四位来形成端点分量E0,通过将颜色端点分量C1左移四位来形成E1。注意,对于HDR操作模式,未启用到sRGB的转换,等式(18)和(19)表示按ASTC规范要求将12位HDR输入扩展为16位值的单一方法。
通过将等式(22)和(23)代入等式(1)中,可以看出,用于计算对于HDR的插值结果P的另一种表达由下式给出:
其中C2=C0.(64-i)+C1.i。
插值单元1120的插值器1102操作以使用权重索引i在输入C0和C1之间进行插值,以根据例如通过当i<64时,实现等式(9)。
插值单元1120的异常处理电路918处理异常情况(i=64)。当i=64时,异常处理电路918被配置为根据等式(10)来生成中间结果异常处理电路918接收值C1作为输入,并从该输入生成中间结果/>电路918采用移位器的形式,该移位器被配置为将输入C1左移六位(相当于将输入C1乘以64),以在i=64时生成中间结果/>
中间结果和/>由组合逻辑电路1104接收,该组合逻辑电路执行一个或多个逻辑处理操作以计算插值结果P。对于LDR输入,组合逻辑电路1104通过根据已启用还是禁用到sRGB的转换来实现上述等式(6)或(8),来计算插值结果P。对于HDR输入,组合逻辑电路1104根据等式(24)来计算插值结果P。
注意,对于LDR和HDR输入两者,在端点分量C0和C1之间执行等效的数学插值以计算中间插值结果其中在LDR时端点分量是8位值,在HDR时端点分量是12位值。因此,插值器1102可以被配置为使用权重索引i在输入C0和C1之间进行插值,以在i<64时计算LDR和HDR输入的中间插值结果/>为了使插值器1102能够对LDR和HDR输入两者进行操作,插值器1102被配置为对较大大小的12位HDR输入进行操作。注意,因此可以在将8位LDR颜色端点分量C0和C1输入到插值器1102之前对其进行格式化,以将四个零位添加到最高有效位之前。即,可以用四个零填充8位LDR端点C0和C1,以生成12位值以输入到插值器1102。这为插值器1102生成了12位输入,而不会改变8位端点分量的数值。该格式化可以由图11中未示出的格式化电路(例如,与恒定信号执行级联的电路)来执行。
通过优化插值器1102以使用权重索引i的六个最低有效位来执行内插并将i=64的情况作为异常结果(如以上参考图9所述),插值器1102可以实现为12x 6位插值器。因此,与大小可以是16×6位的传统的ASTC插值器相比,插值器1102可以支持LDR和HDR输入两者,并且仍然呈现硬件尺寸和处理时间的减小。
分别由插值器1102和电路918计算出的中间插值结果和/>被输入到格式化电路906中。格式化电路906以与以上参考图9所描述的相同的方式生成另一中间插值结果C2”。C2”的值由等式(14)给出。
然后,将中间结果C2”输入到第一电路分支1106。第一电路分支包括移位器908,逻辑单元910和右移位器912,它们以与以上参考图9描述的相同的方式操作。第一电路分支1106输出插值结果C2 v,该插值结果对于LDR颜色端点分量C0和C1,等于由等式(19)指定的P的值。即,对于LDR范围输入,第一电路分支1106生成由以下等式给出的插值结果C2 v:
在本示例中,中间结果C2”也被输入到第二电路分支1108中。第二电路分支包括逻辑单元1110和右移位器1112。由于此分支仅涉及对于HDR输入的格式化,只有在禁用sRGB转换后才能正常工作,因此不进行与sRGB逻辑的连接或配置。换句话说,第二电路分支1108不接收sRGB信号作为输入。逻辑单元1110操作以将固定的数值常数与所接收的输入C2”,以生成另一中间结果C2 vi。在此示例中,该数值常数为“2”。因此,逻辑单元1110可以是加法器单元。
因此,逻辑单元1110从由以下等式给出的中间结果C2”生成输出中间结果C2 vi:
然后,将中间结果C2 vi输入到移位器1112,该移位器操作以将输入右移两位,以生成插值结果C2 vii,由下式给出:
因此,对于HDR输入,从(21)可以看出,第二电路分支输出插值结果C2 vii,由下式给出:
将等式(28)与等式(24)和等式(25)与(19)进行比较,可以验证当颜色端点分量C0和C1为LDR时,第一电路分支1106输出正确的LDR插值结果,而当颜色端点分量C0和C1为HDR并且禁用sRGB转换时,第二电路分支1108输出正确的HDR插值结果。由于可能无法在HDR模式下执行sRGB转换,因此在ASTC规范中,在启用sRGB转换时分支1108的输出无关紧要。
从第一电路分支1106输出的LDR插值结果C2 v和从第二电路分支1108输出的HDR插值结果C2 vii被输入到选择单元1114。选择单元1114还接收指示输入到二进制逻辑电路1100的颜色端点分量C0和C1是LDR还是HDR输入的信号作为输入。该信号可以被称为动态范围(DR)指示信号。信号可以是二进制标志,其中该标志的一个值指示颜色端点分量是LDR输入,而标志的另一个值指示颜色端点分量是HDR输入。选择单元1114被配置为根据接收到的DR指示信号,输出接收到的LDR插值结果C2 v 1106和HDR插值结果C2 vii之一作为最终插值结果P。具体地,选择单元1114被配置为:如果DR信号指示颜色端点分量是HDR,则输出HDR插值结果C2 vii作为插值结果P,而如果DR信号指示端点分量为LDR,则输出LDR插值结果C2 v作为插值结果P。
图12示出了支持LDR和HDR操作模式两者的替代二进制逻辑电路1200。电路1200是图10所示的电路1000的修改版本,其包括第一和第二电路分支1106和1108,用于分别计算LDR插值结果C2 V和HDR插值结果C2 vii。
电路1200包括生成中间结果C2的插值单元1120。特别地,如上所述,如果i<64,则插值器1102根据等式(9)生成结果并且如上所述,当i=64时,异常处理电路918根据等式(10)生成中间结果/>
组合逻辑电路1204通过执行一个或多个逻辑处理操作来生成最终的插值结果P。组合逻辑电路***1204包括格式化电路***1006;第一电路分支1106和第二电路分支1108。格式化电路1006以上面参考图10所述的相同方式生成其他中间结果C2”。中间结果C2”被输入到电路分支1106和1108。电路分支1106和1108以与以上参考图11所述相同的方式分别生成LDR插值结果C2 v 和HDR插值结果C2 vii。然后,选择单元1114根据动态范围(DR)信号,输出插值结果之一,如上面参考图11所述。因此,这里将不再描述这些部件。
在图12所示的示例中,第二电路分支1108接收中间结果C2”作为其输入。在替代示例中,第二电路分支可以接收从选择单元1008输出的中间结果C2’作为其输入。这仍将使电路分支1108能够对于HDR输入计算正确的插值结果,因为在这种情况下,向sRGB的转换被禁用,因此C2'=C2”。通常,第二分支单元可以接收任何中间插值结果作为其输入,对于HDR输入,该中间插值结果的值等于C2。
上面参考图9至图12描述的插值单元通过使用8或12位颜色端点分量Co和C1执行插值来计算16位端点分量E0和E1之间的插值结果。与使用16位端点分量执行插值的常规插值单元相比,这使得插值器的大小和执行插值所需的处理时间缩小。发明人获得的综合结果已经发现,可以提供电路面积为460μm2且处理时间为0.44ns的结合有仅支持LDR模式的16x7位插值器的插值单元,以及可以提供电路面积为503μm2且处理时间为0.44ns的结合有支持LDR和HDR模式的16x 7位插值器的插值单元。然而,已经发现,根据本文描述的示例的仅支持LDR模式的二进制逻辑电路可以具有288μm2的电路面积和0.28ns的处理时间,代表37%的面积改善和36%的时间改善。根据本文描述的示例的同时支持LDR和HDR模式的二进制逻辑电路可以具有367μm2的电路面积和0.22ns的处理时间,代表27%的面积改善和49%的时间改善。
应当理解,可以对本文所述的二进制逻辑电路进行修改。例如,可以提供组合逻辑电路的各种示例,以如等式(19)和(24)指定的,根据由插值器计算出的中间结果C2来生成插值结果P。
尽管以上示例描述了一种优化方法,其中插值器仅对权重索引的六个最低有效位进行操作,但在其他示例中,插值器可以使用权重索引i的七个位执行插值。在这种情况下,值i=64不被视为异常结果,并且格式化电路906可以被修改以去除选择单元916,在这种情况下,逻辑单元914的输出被视为输入到逻辑单元908的中间结果C2”。换句话说,在这些示例中,格式化电路根据接收到的输入值C2生成中间结果C2”,具体取决于是否启用了向sRGB的转换,而不取决于权重索引的值。
图9至图12的插值单元被示为包括多个功能块。这仅是示意性的,并不希望限定此类实体的不同逻辑元件之间的严格划分。每个功能块可以任何合适的方式提供。应当理解,在本文中被描述为由单元形成的中间值不需要由单元在任何时间点物理地生成,并且可以仅仅表示方便地描述由单元在其输入装置与输出装置之间执行的处理的逻辑值。
本文中所描述的插值单元可以在集成电路上体现为硬件。本文中所描述的插值单元可被配置为执行本文所描述的任一种方法。通常,上文所描述的功能、方法、技术或组件中的任一个可以实施于软件、固件、硬件(例如固定逻辑电路***)或其任何组合中。本文中可以使用术语“模块”、“功能性”、“组件”、“元件”、“单元”、“块”和“逻辑”来概括地表示软件、固件、硬件或其任何组合。在软件实施方案的情况下,模块、功能性、组件、元件、单元、块或逻辑表示程序代码,所述程序代码在处理器上执行时执行指定任务。本文中所描述的算法和方法可以由执行代码的一个或多个处理器执行,所述代码使处理器执行所述算法/方法。计算机可读存储介质的实例包含随机存取存储器(RAM)、只读存储器(ROM)、光盘、闪存、硬盘存储器以及可以使用磁性、光学和其他技术来存储指令或其他数据并可以由机器存取的其他存储器装置。
如本文中所使用的术语计算机程序代码和计算机可读指令是指供处理器执行的任何种类的可执行代码,包含以机器语言、解释语言或脚本语言表达的代码。可执行代码包含二进制代码、机器代码、字节代码、定义集成电路的代码(例如硬件描述语言或网表),以及用例如C、Java或OpenCL等编程语言代码表达的代码。可执行代码可以是例如任何种类的软件、固件、脚本、模块或库,当在虚拟机或其他软件环境中被适当地执行、处理、解释、编译、运行时,这些软件、固件、脚本、模块或库使支持可执行代码的计算机***的处理器执行由所述代码指定的任务。
处理器、计算机或计算机***可以是任何种类的装置、机器或专用电路,或其集合或一部分,它具有处理能力使得可以执行指令。处理器可以是任何种类的通用或专用处理器,例如CPU、GPU、芯片上***、状态机、媒体处理器、专用集成电路(ASIC)、可编程逻辑阵列、现场可编程门阵列(FPGA)等。计算机或计算机***可以包括一个或多个处理器。
本发明还意图涵盖限定如本文中所描述的硬件配置的软件,例如硬件描述语言(HDL)软件,用于设计集成电路或用于配置可编程芯片以执行所需功能。也就是说,可提供一种计算机可读存储介质,在其上对呈集成电路定义数据集形式的计算机可读程序代码进行编码,所述计算机可读程序代码在集成电路制造***中处理时将***配置成制造配置成执行本文所描述的任一种方法的插值单元,或制造包括本文中所描述的任何设备的插值器。集成电路定义数据集可以是例如集成电路描述。
可提供一种在集成电路制造***处制造如本文中所描述的插值单元的方法。可提供一种集成电路定义数据集,所述集成电路定义数据集在集成电路制造***中处理时使制造插值单元的方法被执行。
集成电路定义数据集可呈计算机代码形式,例如作为网表、用于配置可编程芯片的代码,作为在任何层级定义集成电路的硬件描述语言,包含作为寄存器传送级(RTL)代码、作为例如Verilog或VHDL等高级电路表示,和作为例如OASIS(RTM)和GDSII等低级电路表示。在逻辑上定义集成电路的更高级表示(例如RTL)可以在配置为在软件环境的上下文中生成集成电路的制造定义的计算机***处处理,所述软件环境包括电路元件的定义和用于组合那些元件以便生成由所述表示如此定义的集成电路的制造定义的规则。如通常软件在计算机***处执行以便定义机器的情况一样,可能需要一个或多个中间用户步骤(例如,提供命令、变量等),以便将计算机***配置成生成集成电路的制造定义,以执行定义集成电路以便生成所述集成电路的制造定义的代码。
现将关于图13描述在集成电路制造***处处理集成电路定义数据集以便将***配置成制造插值单元的示例。
图13示出配置成制造如本文中的任一个示例中所描述的插值单元的集成电路(IC)制造***1302的示例。具体地说,IC制造***1302包括布局处理***1304和集成电路生成***1306。Ic制造***1302被配置为接收IC定义数据集(例如,定义如本文中的任一个示例中所描述的插值单元),处理IC定义数据集,并根据IC定义数据集生成IC(例如,其体现如本文中的任一个示例中所描述的插值单元)。IC定义数据集的处理将IC制造***1302配置成制造体现如本文中的任一个示例中所描述的插值单元的集成电路。
布局处理***1304被配置成接收和处理IC定义数据集以确定电路布局。根据IC定义数据集确定电路布局的方法在本领域中是已知的,并且例如可以涉及合成RTL代码以确定要生成的电路的门级表示,例如就逻辑组件(例如NAND、NOR、AND、OR、MUX和FLIP-FLOP组件)而言。通过确定逻辑组件的位置信息,可以根据电路的门级表示来确定电路布局。这可以自动完成或者在用户参与下完成,以便优化电路布局。当布局处理***1304已确定电路布局时,它可以将电路布局定义输出到IC生成***1306。电路布局定义可以是例如电路布局描述。
如本领域已知的,IC生成***1306根据电路布局定义来生成IC。例如,IC生成***1306可以实施生成IC的半导体装置制造工艺,其可以涉及光刻和化学处理步骤的多步骤序列,在此期间,在由半导体材料制成的晶片上逐渐形成电子电路。电路布局定义可呈掩码的形式,其可以在光刻工艺中用于根据电路定义来生成IC。替代地,提供给IC生成***1306的电路布局定义可以呈计算机可读代码的形式,IC生成***1306可以使用所述计算机可读代码来形成用于生成IC的合适掩码。
由IC制造***1302执行的不同过程可以全部在一个位置处实施,例如由一方实施。替代地,IC制造***1302可以是分布式***,使得一些过程可以在不同位置执行,并且可以由不同的方来执行。例如,以下阶段中的一些可以在不同位置中和/或由不同方来执行:(i)合成表示IC定义数据集的RTL代码,以形成要生成的电路的门级表示;(ii)基于门级表示来生成电路布局;(iii)根据电路布局来形成掩码;以及(iv)使用掩码来制造集成电路。
在其他实例中,集成电路定义数据集在集成电路制造***处的处理可将***配置成制造其中IC定义数据集不进行处理以便确定电路布局的插值单元。例如,集成电路定义数据集可以定义可重新配置的处理器(例如FPGA)的配置,并且对所述数据集进行的处理可以将IC制造***配置成生成具有所述所定义配置的可重新配置的处理器(例如通过将配置数据加载到FPGA)。
在一些实施方案中,当在集成电路制造***中被处理时,集成电路制造定义数据集可以使集成电路制造***生成如本文中所描述的装置。例如,通过集成电路制造定义数据集以上文参考图13描述的方式对集成电路制造***进行配置,可以制造出如本文描述的设备。
在一些实例中,集成电路定义数据集可以包含在数据集处定义的硬件上运行的软件,或者与在数据集处定义的硬件组合运行的软件。在图13所示的实例中,IC产生***可以由集成电路定义数据集进一步配置为在制造集成电路时根据在集成电路定义数据集处限定的程序代码将固件加载到所述集成电路上,或者以其他方式向集成电路提供与集成电路一起使用的程序代码。
本文所述的图形处理***和/或插值单元可以体现在集成电路上的硬件中。本文所述图形处理***可以被配置成执行本文所述任何方法。
与已知的实施方案相比,在本申请中阐述的概念在装置、设备、模块和/或***中(以及在本文中实施的方法中)的实施可以引起性能改进。性能改进可以包含计算性能提高、等待时间缩短、处理量增大和/或功耗降低中的一个或多个。在制造此类装置、设备、模块和***(例如在集成电路中)期间,可以在性能改进与物理实施方案之间进行权衡,从而改进制造方法。例如,可以在性能改进与布局面积之间进行权衡,从而匹配已知实施方案的性能,但使用更少的硅。例如,这可以通过以串行方式再使用功能块或在装置、设备、模块和/或***的元件之间共享功能块来完成。相反,在本申请中阐述的引起装置、设备、模块和***的物理实施方案的改进(例如硅面积减小)的概念可以针对性能提高进行权衡。例如,这可以通过在预定义面积预算内制造模块的多个例项来完成。
与已知的实施方案相比,在本申请中阐述的概念在装置、设备、模块和/或***中(以及在本文中实施的方法中)的实施可以引起性能改进。性能改进可以包含计算性能提高、等待时间缩短、处理量增大和/或功耗降低中的一个或多个。在制造此类装置、设备、模块和***(例如在集成电路中)期间,可以在性能改进与物理实施方案之间进行权衡,从而改进制造方法。例如,可以在性能改进与布局面积之间进行权衡,从而匹配已知实施方案的性能,但使用更少的硅。例如,这可以通过以串行方式再使用功能块或在装置、设备、模块和/或***的元件之间共享功能块来完成。相反,在本申请中阐述的引起装置、设备、模块和***的物理实施方案的改进(例如硅面积减小)的概念可以针对性能提高进行权衡。例如,这可以通过在预定义面积预算内制造模块的多个例项来完成。
申请人据此独立地公开了本文中所描述的每个单独的特征以及两个或更多个此类特征的任意组合,到达的程度使得此类特征或组合能够根据本领域的技术人员的普通常识基于本说明书整体来实行,而不管此类特征或特征的组合是否解决本文中所公开的任何问题,并且不限于权利要求的范围。申请人指出,本发明的方面可以由任何这样的单个特征或特征的组合组成。鉴于前文描述,本领域的技术人员将清楚,可以在本发明的范围内进行各种修改。
Claims (20)
1.一种二进制逻辑电路,所述二进制逻辑电路用于使用加权索引i在两个端点值E0和E1之间执行插值计算,以生成插值结果P,所述值E0和E1分别由自适应可缩放纹理压缩(ASTC)低动态范围(LDR)颜色端点值C0和C1形成,所述电路包括:
插值单元,其被配置为使用所述加权索引i在所述颜色端点值C0和C1之间进行插值,以生成第一中间插值结果C2;以及
组合逻辑电路,其被配置为接收所述第一中间插值结果C2,并且当所述插值结果P与sRGB颜色空间不兼容时,根据等式 当所述插值结果P与sRGB颜色空间兼容时,根据等式/> 来执行一个或多个逻辑处理操作,以计算所述插值结果P。
2.如权利要求1所述的二进制逻辑电路,其中根据等式 来指定使用所述加权索引i在所述两个端点值E0和E1之间的所述插值计算,其中p等于所述插值结果P。
3.如权利要求1或2所述的二进制逻辑电路,其中所述插值单元包括插值器,所述插值器被配置为使用所述加权索引i在所述颜色端点值C0和C1之间执行所述插值,以对于i的非异常值,根据等式C2=C0·(64-i)+C1·i生成所述第一中间插值结果C2。
4.如权利要求3所述的二进制逻辑电路,其中所述插值单元还包括异常处理电路,其被配置为生成对于i的异常值的所述第一中间插值结果C2。
5.如权利要求4所述的二进制逻辑电路,其中所述异常处理电路被配置为对于i的异常值,根据等式C2=C1·i来生成所述第一中间插值结果C2。
6.如权利要求3所述的二进制逻辑电路,其中所述加权索引包括7位,并且所述插值器被配置为使用所述加权索引的6个最低有效位在所述颜色端点值C0和C1之间执行插值。
7.如权利要求1或2所述的二进制逻辑电路,其中所述组合逻辑电路包括:
格式化电路,其被配置为根据所述插值结果P是否与sRGB颜色空间兼容,从所述一组值C0、C1和C2生成第二中间插值结果;
第一逻辑单元,其被配置为将所述第二中间插值结果左移等于每个所述颜色端点值C0和C1的位数的位数,并向所述移位结果加上一个常数以生成第三中间插值结果;以及
第二逻辑单元,其被配置为如果所述插值结果P与sRGB颜色空间不兼容,则将所述第二中间插值结果与所述第三中间插值结果相加。
8.如权利要求7所述的二进制逻辑电路,其中所述组合逻辑电路还包括右移位器,所述右移位器被配置为将所述第二逻辑单元的所述输出右移指定的位数,以生成所述插值结果P。
9.如权利要求8所述的二进制逻辑电路,其中所述指定位数等于6。
10.如权利要求7所述的二进制逻辑电路,其中所述第一逻辑单元被配置为将所述第二中间插值结果左移8位,并且加上数值常数32以生成所述第三中间插值结果。
11.如权利要求7所述的二进制逻辑电路,其中所述格式化电路被配置为生成所述第二中间插值结果,作为:(i)当所述插值结果P与sRGB颜色空间不兼容时,所述第一中间插值结果C2;以及(ii)当所述插值结果P与sRGB颜色空间兼容时,所述第一中间插值结果C2和数值常数的和。
12.如权利要求4所述的二进制逻辑电路,其中所述组合逻辑电路包括:
格式化电路,其被配置为根据所述插值结果P是否与sRGB颜色空间兼容,从所述一组值C0、C1和C2生成第二中间插值结果;
第一逻辑单元,其被配置为将所述第二中间插值结果左移等于每个所述颜色端点值C0和C1的位数的位数,并向所述移位结果加上一个常数以生成第三中间插值结果;以及
第二逻辑单元,其被配置为如果所述插值结果P与所述sRGB颜色空间不兼容,则将所述第二中间插值结果与所述第三中间插值结果相加;以及
其中所述格式化电路被配置为生成所述第二中间插值结果,作为:(i)当所述插值结果P与sRGB颜色空间不兼容并且所述加权索引的值不等于异常值时,从所述插值器输出的所述第一中间插值结果C2;(ii)当所述插值结果P与sRGB颜色空间兼容并且所述加权索引的值不等于异常值时,从所述插值器输出的所述第一中间插值结果C2与数值常数的和;(iii)当所述插值结果P与sRGB颜色空间不兼容并且所述加权索引的值等于异常值时,从所述异常处理电路输出的所述第一中间插值结果C2;iv)当所述插值结果P与sRGB颜色空间兼容并且所述加权索引的值等于异常值时,从所述异常处理电路输出的所述第一中间插值结果C2与数值常数的和。
13.如权利要求4所述的二进制逻辑电路,其中所述组合逻辑电路包括:
格式化电路,其被配置为根据所述插值结果P是否与sRGB颜色空间兼容,从所述一组值C0、C1和C2生成第二中间插值结果;
第一逻辑单元,其被配置为将所述第二中间插值结果左移等于每个所述颜色端点值C0和C1的位数的位数,并向所述移位结果加上一个常数以生成第三中间插值结果;以及
第二逻辑单元,其被配置为如果所述插值结果P与所述sRGB颜色空间不兼容,则将所述第二中间插值结果与所述第三中间插值结果相加;以及
其中所述格式化电路包括:
选择单元,其被配置为在(i)依赖于从所述异常处理电路输出的所述第一中间插值结果C2的第一输入;以及(ii)依赖于从所述插值器输出的所述第一中间插值结果C2的第二输入之间进行选择,这取决于所述加权索引的值是否等于异常值。
14.如权利要求13所述的二进制逻辑电路,其中所述格式化电路包括逻辑单元,所述逻辑单元被配置为仅在所述插值结果P与sRBG色空间兼容时才将其接收的输入与非零数值常数相加。
15.如权利要求14所述的二进制逻辑电路,其中所述逻辑单元的输入是所述选择单元的输出。
16.如权利要求14所述的二进制逻辑电路,其中所述逻辑单元的输入是从所述异常处理电路输出的所述第一中间插值结果C2和从所述插值器输出的所述第一中间插值结果C2。
17.如权利要求13所述的二进制逻辑电路,其中向所述选择单元的所述第一输入是从所述异常处理电路输出的所述第一中间插值结果C2,并且向所述选择单元的所述第二输入是从所述插值器输出的所述第一中间插值结果C2。
18.一种插值方法,所述方法使用二进制逻辑电路通过加权索引i在两个端点值E0和E1之间进行插值,以生成插值结果P,所述值E0和E1分别由自适应可缩放纹理压缩(ASTC)低动态范围(LDR)颜色端点值C0和C1形成,所述方法包括:
在所述二进制逻辑电路的插值单元处,使用所述加权索引i在所述颜色端点值C0和C1之间进行插值,以生成第一中间插值结果C2;
在所述二进制逻辑电路的组合逻辑电路处,接收所述第一中间插值结果C2,并且当所述插值结果P与sRGB颜色空间不兼容时,根据等式 当所述插值结果P与sRGB颜色空间兼容时,根据等式/>来执行一个或多个逻辑处理操作,以计算所述插值结果P。
19.如权利要求18述的插值方法,其中根据等式 来指定使用所述加权索引i在所述两个端点值E0和E1之间的所述插值计算,其中p等于所述插值结果P。
20.一种计算机可读存储介质,在其上存储了二进制逻辑电路的计算机可读描述,所述二进制逻辑电路用于使用加权索引i在两个端点值E0和E1之间执行插值计算,以生成插值结果P,所述值E0和E1分别由自适应可缩放纹理压缩(ASTC)低动态范围(LDR)颜色端点值C0和C1形成,所述电路包括:
插值单元,其被配置为使用所述加权索引i在所述颜色端点值C0和C1之间进行插值,以生成第一中间插值结果C2;以及
组合逻辑电路,其被配置为接收所述第一中间插值结果C2,并且当所述插值结果P与sRGB颜色空间不兼容时,根据等式 当所述插值结果P与sRGB颜色空间兼容时,根据等式/> 来执行一个或多个逻辑处理操作,以计算所述插值结果P。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB1820836.3 | 2018-12-20 | ||
GB1820836.3A GB2575134B (en) | 2018-12-20 | 2018-12-20 | ASTC interpolation |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111355862A CN111355862A (zh) | 2020-06-30 |
CN111355862B true CN111355862B (zh) | 2023-09-01 |
Family
ID=65364474
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911316233.1A Active CN111355862B (zh) | 2018-12-20 | 2019-12-19 | 自适应可缩放纹理压缩插值的电路、方法以及存储介质 |
Country Status (4)
Country | Link |
---|---|
US (3) | US11295485B2 (zh) |
EP (1) | EP3671644B1 (zh) |
CN (1) | CN111355862B (zh) |
GB (1) | GB2575134B (zh) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107113367A (zh) * | 2015-01-09 | 2017-08-29 | 皇家飞利浦有限公司 | 具有颜色恒定性的亮度改变图像处理 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6108007A (en) * | 1997-10-09 | 2000-08-22 | Silicon Graphics, Inc. | Method, system, and computer program product for increasing interpolation precision using multi-channel texture mapping |
GB2503691B (en) * | 2012-07-04 | 2019-08-14 | Advanced Risc Mach Ltd | Methods of and apparatus for encoding and decoding data |
RU2633128C2 (ru) | 2013-02-21 | 2017-10-11 | Конинклейке Филипс Н.В. | Улучшенные способы и устройства кодирования и декодирования hdr изображения |
PL3324629T3 (pl) | 2014-05-28 | 2019-11-29 | Koninklijke Philips Nv | Sposoby i urządzenia do kodowania obrazów hdr oraz sposoby i urządzenia do wykorzystania tak zakodowanych obrazów |
US9640149B2 (en) * | 2015-07-21 | 2017-05-02 | Think Silicon Sa | Methods for fixed rate block based compression of image data |
EP3220349A1 (en) | 2016-03-16 | 2017-09-20 | Thomson Licensing | Methods, apparatus, and systems for extended high dynamic range ("hdr") hdr to hdr tone mapping |
GB2552323B (en) | 2016-07-18 | 2020-04-29 | Imagination Tech Ltd | Mip map compression |
GB2584764B (en) * | 2017-04-28 | 2021-12-29 | Imagination Tech Ltd | Decoder unit for texture decompression |
GB2562041B (en) * | 2017-04-28 | 2020-11-25 | Imagination Tech Ltd | Multi-output decoder for texture decompression |
-
2018
- 2018-12-20 GB GB1820836.3A patent/GB2575134B/en active Active
-
2019
- 2019-12-16 EP EP19216421.8A patent/EP3671644B1/en active Active
- 2019-12-19 CN CN201911316233.1A patent/CN111355862B/zh active Active
- 2019-12-20 US US16/722,584 patent/US11295485B2/en active Active
-
2022
- 2022-03-02 US US17/685,344 patent/US11741641B2/en active Active
-
2023
- 2023-08-29 US US18/239,599 patent/US20230401762A1/en active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107113367A (zh) * | 2015-01-09 | 2017-08-29 | 皇家飞利浦有限公司 | 具有颜色恒定性的亮度改变图像处理 |
Also Published As
Publication number | Publication date |
---|---|
US20200202582A1 (en) | 2020-06-25 |
US20230401762A1 (en) | 2023-12-14 |
CN111355862A (zh) | 2020-06-30 |
US11295485B2 (en) | 2022-04-05 |
US11741641B2 (en) | 2023-08-29 |
GB201820836D0 (en) | 2019-02-06 |
EP3671644A1 (en) | 2020-06-24 |
GB2575134A (en) | 2020-01-01 |
EP3671644B1 (en) | 2021-08-18 |
GB2575134B (en) | 2021-03-31 |
US20220414951A1 (en) | 2022-12-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11836830B2 (en) | Multi-output decoder for texture decompression | |
JP2022058660A (ja) | 畳み込みニューラルネットワークハードウエア構成 | |
US20230394626A1 (en) | ASTC Interpolation | |
CN112422981B (zh) | 图像数据压缩 | |
US11544892B2 (en) | Decoder unit for texture decompression | |
CN111355862B (zh) | 自适应可缩放纹理压缩插值的电路、方法以及存储介质 |
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 |