高动态范围纹理压缩的制作方法

文档序号:7735900阅读:261来源:国知局
专利名称:高动态范围纹理压缩的制作方法
高动态范围纹理压缩
背景技术
高动态范围(HDR)图像技术引入了用数字成像来记录以及再现真实世界的新纪 元。传统的低动态范围(LDR)图像只在非常有限的色域中包含涉及设备的像素,而HDR图 像提供自然场景的真实发光度值。HDR纹理便于改进图像的照明和后处理,从而在呈现数字 图像时得到空前的真实性。由此,支持HDR纹理已经变成设计图形硬件和应用程序编程接 口(API)中的趋势。然而,LDR纹理对于有效地支持成像技术的现有特征来说继续是不可 缺少的,诸如通常不需要宽阔的HDR分辨率的贴花地图等。在成像中使用纹理的挑战之一是纹理的尺寸一般较大。具有通常的每像素M比 特(每像素的比特数(bbp))的原始红绿蓝(RGB)格式的LDR纹理通常消耗太多的存储和 带宽。在当前呈现系统中通常为半浮动或浮点格式的HDR纹理可比原始LDR纹理多花费2 至4倍的空间。较大的纹理尺寸约束了可用于呈现场景的HDR纹理的数量。较大的纹理尺 寸还限制了给定存储器带宽的帧速率,尤其是在使用复杂的过滤方法时。对可用纹理和帧 速率的限制约束了在呈现场景时数字成像的质量。纹理压缩(TC)技术可有效地降低实时呈现中的存储器存储和存储器带宽的要 求。对于LDR纹理,已经设计了许多压缩方案,包括事实(de facto)标准,还可被称为S3TC 的DirectX 纹理压缩(DXTC)。DXTC由商用图形硬件广泛地支持。概述一般而言,本文描述的各种技术的一个或多个实现针对用于压缩高动态范围 (HDR)纹理的方法。在红绿蓝(RGB)通道中表示为值的HDR纹理可变换到亮度和色度空间 上。该变换可以是从色度空间上移除主导RGB通道的自适应过程。经变换的值可以从浮 点格式被量化为整数格式。可修改亮度和色度空间中的HDR纹理以便符合用于低动态范 围(LDR)纹理的联合颜色通道压缩方案的标准输入格式,所述联合颜色通道压缩方案诸如 DirectX 纹理压缩(DXTC)。纹理可随后使用联合颜色通道压缩来压缩。在压缩HDR纹理的一实现中,可自适应地选择RGB通道中的两个通道来转换成色 度通道。具有三个RGB通道中的最低值的这两个RGB通道可用于将RGB通道转换成色度通 道。亮度和色度通道中的值可被转换成8比特整数格式。可修改8比特整数值来恢复本地 线性度属性,该本地线性度属性可通过将RGB通道转换成亮度和色度通道来移除。经修改 的值可使用DirectX 纹理压缩来压缩。对纹理的修改可被存储在可用于便于解压的新数据结构中。在一实现中,该压缩 方法可产生可用于使用现有LDR硬件来实时地呈现HDR图像的数据结构。根据上述方法, 该数据结构可包括DirectX纹理格式的某些块,所述某些块容纳按照上述方法压缩的HDR 纹理数据。该数据结构可将纹理压缩率从每像素8比特(ΙΛρ)增加到每像素10比特。本文描述的各种实现还可针对用于解压已经如上所述地压缩的HDR纹理的方法。 在一实现中,压缩数据可以用新设备来解压,该新设备使用扩展块与DirectX纹理格式的 块来基于原始HDR纹理产生RGB通道的值。本文描述的各种实现还可针对用于使用为实时地呈现低动态范围(LDR)图像所设计的现有硬件来实时地呈现HDR图像的方法。提供该以上引用的概述章节以便以简化形式介绍将在以下详细描述章节中进一 步描述的一些概念。概述并不旨在标识所要求保护的主题的关键特征或必要特征,也不旨 在用于限制所要求保护的主题的范围。此外,所要求保护的主题不限于解决在本发明的任 一部分中提及的任何或所有缺点的实现。附图简述

图1示出了根据本文描述的各实现的计算系统的概略图。图2示出了根据本文描述的各实现的方法的流程图。图3A-3D描述了根据本文描述的各实现的纹理像素的图形。图4示出了根据本文描述的各实现的修改表格。图5示出了根据本文描述的各实现的数据结构。图6示出了根据本文描述的实现的解码逻辑。图7示出了根据本文描述的实现的方法。图8示出了根据本文描述的实现的直接描绘表面(DDS)纹理帧。详细描述此处所描述的各种技术的实现可以用众多通用或专用计算系统环境或配置来操 作。适用于此处所描述的各种技术的公知的计算系统、环境和/或配置的示例包括,但不 限于,个人计算机、服务器计算机、手持式或膝上型设备、多处理器系统、基于微处理器的系 统、机顶盒、可编程消费电子产品、网络PC、小型机、大型计算机、包括上述系统或设备中的 任一个的分布式计算环境等。此处所描述的各种技术可以在诸如程序模块等由计算机执行的计算机可执行指 令的一般上下文中实现。一般而言,程序模块包括执行特定任务或实现特定抽象数据类型 的例程、程序、对象、组件、数据结构等。此处所描述的各种技术还可在其中任务由通过例如 硬连线链路、无线链路或其组合等通信网络链接的远程处理设备执行的分布式计算环境中 实现。在分布式计算环境中,程序模块可以位于包括存储器存储设备在内的本地和远程计 算机存储介质中。图1示出了根据本文描述的各实现的计算系统100的概略图。计算机系统100包 括经由系统总线117进行通信的中央处理单元(CPU) 104、以及系统(主)存储器106。从 被耦合到系统总线117的一个或多个用户输入设备118(例如,键盘、鼠标)接收用户输入。计算系统100可被配置成易于纹理像素数据(即,图形数据)的高性能处理。例 如,计算系统100除了系统总线117以外可包括单独的图形总线147。图形总线147可被配 置成易于关于纹理像素数据的处理的通信。更具体地,图形总线147可处理CPU 104、图形 处理单元(GPU) 154、系统存储器106、纹理存储器156、以及输出设备119之间的通信。系统总线117和图形总线147可以是几种类型的总线结构中的任何一种,包括存 储器总线或存储控制器、外围总线、以及使用各种总线体系结构中的任一种的局部总线。作 为示例,而非限制,这样的体系结构包括工业标准体系结构(ISA)总线、微通道体系结构 (MCA)总线、增强型ISA(EISA)总线、视频电子技术标准协会(VESA)局部总线、也称为夹层 (Mezzanine)总线的外围部件互连(PCI)总线、以及快速外围部件互连(PCI-E)、集成设备 电路(IDE)、串行新技术附件(SATA)、以及加速图形端口(AGP)。
系统存储器106可存储各种程序或应用程序,诸如用于以原始纹理120的形式来 生成纹理像素数据以供显示在输出设备119上的操作系统112。操作系统112的示例包括 Microsoft Windows 操作系统的图形设备接口(⑶I)组件。在一实现中,原始纹理120可 以是被表示为RGB通道中的16比特浮点值的HDR纹理。系统存储器106还可存储压缩器程序114。为了便于纹理像素数据的高性能处理, 压缩器程序114可将原始纹理120压缩成压缩纹理116。由于压缩纹理116在图形总线147 上占用较少带宽,因此在高性能图形处理中,通过图形总线147传送压缩纹理116比传送原 始纹理120更好。在一实现中,GPU 154可被配置成支持使用诸如DXTC等联合颜色通道压缩方法来 压缩的纹理像素数据。因此,压缩器程序114可包括标准DXTC编码器(未示出)。由此,压 缩纹理116可表示以便于DXTC配置的GPU巧4处理的形式的原始纹理120。在图5的描述 中将更详细地描述压缩纹理116。应当注意到,DXTC仅作为联合颜色通道压缩方法的示例 来使用,并且不旨在限制本文描述的各实现。在各种实现中可使用其他联合颜色通道压缩 方法。系统存储器106可进一步存储驱动程序115来启用与GPU 154的通信。驱动程序 115可实现诸如公开图形库(OpenGL)和Microsoft DirectX 等一个或多个标准应用程序 接口(API)来与GPU IM通信。通过调用适当的API函数调用,操作系统112能够指令驱 动程序115将压缩纹理116经由图形总线147传送到GPU 154,并且调用GPU巧4的各种呈 现函数。数据传送操作可使用常规的DMA(直接存储器访问)或其他操作来执行。可在输出设备(例如,基于传统CRT、TV或IXD的监视器)上提供在视觉输出,所 述输出设备119在GPU巧4的控制下操作。在一实现中,GPU巧4可被配置成通过处理压 缩纹理162来提供视觉输出。GPU巧4可包括用于接收和处理经由图形总线147所接收的图形系统命令的各种 组件。GPU巧4可包括显示流水线158和存储器管理单元162。显示流水线158 —般可用于图像处理。显示流水线158可包含被配置成将压缩纹 理116转换成适用于显示在输出设备119的纹理像素数据的各种处理模块。在一实现中, 显示流水线158可包括纹理像素着色器160。纹理像素着色器160可将压缩纹理116解压成解压纹理164。在一实现中,纹理 像素着色器160可使用标准DXTC解码器(未示出)来解压压缩纹理116。由此,解压纹理 164可将纹理像素数据表示为RGB通道中的8比特整数值。在图7的描述中将更详细地描 述解压纹理164。另外,纹理像素着色器160可执行实时图像呈现,由此可为GPU 154的处理配置解 压纹理164。在一实现中,纹理像素着色器160执行实时HDR呈现。将参考图6_7的描述更 详细地描述纹理像素着色器160。存储器管理单元162可从系统存储器106读取压缩纹理116以便于纹理像素着色 器160的解压。另外,存储器管理单元162可从纹理存储器156读取解压纹理164以便于 实时呈现。纹理存储器156可以是为快速1/0设计的专用RAM(TRAM),从而便于GPU巧4在 呈现包括3-D图像的来自压缩纹理164的图像时的高性能处理。计算设备100可进一步包括可连接到总线117的存储108。存储108的示例包括用于对硬盘进行读写的硬盘驱动器、用于对可移动磁盘进行读写的磁盘驱动器、以及用于 对诸如CD-ROM或其它光介质等可移动光盘进行读写的光盘驱动器。存储108及其关联的 计算机可读介质可以向计算系统100提供对计算机可读指令、数据结构、程序模块和其它 数据的非易失性存储。本领域技术人员应当理解,计算系统100还可包括可由计算机访问的其他类型的 存储108及其相关联的计算机可读介质。例如,这种计算机可读介质可包括计算机存储介 质和通信介质。计算机存储介质可包括以用于存储诸如计算机可读指令、数据结构、程序模 块或其它数据等信息的任何方法或技术实现的易失性和非易失性、以及可移动和不可移动 介质。计算机存储介质还可包括,RAM、R0M、可擦除可编程只读存储器(EPROM)、电可擦可编 程只读存储器(EEPROM)、闪存或其它固态存储器技术、CD-ROM、数字多功能盘(DVD)或其它 光盘存储、磁带盒、磁带、磁盘存储或其它磁性存储设备、或能用于存储所需信息且可以由 计算系统100访问的任何其它介质。通信介质能以诸如载波或其它传输机制等已调制数 据信号来体现计算机可读指令、数据结构、程序模块或其它数据,并且包括任何信息传递介 质。术语“已调制数据信号”可指的是以在信号中编码信息的方式设定或更改其一个或多 个特征的信号。作为示例而非限制,通信介质包括有线介质,诸如有线网络或直接线连接, 以及无线介质,诸如声学、射频、红外线和其他无线介质。上述的任意组合也可以包含在计 算机可读介质的范围内。应该理解,此处描述的各种技术可以结合硬件、软件或两者的组合来实现。因此, 各种技术或其某些方面或部分,可以采用包含在诸如软盘、CD-ROM、硬盘驱动器或任何其它 机器可读存储介质等有形介质中的程序代码(即,指令)的形式,其中,当程序代码被加载 至诸如计算机等机器并由其运行时,该机器成为用于实现该各种技术的装置。在程序代码 在可编程计算机上执行的情况下,计算设备可包括处理器、该处理器可读的存储介质(包 括易失性和非易失性的存储器和/或存储元件)、至少一个输入设备、以及至少一个输出设 备。可以实现或利用此处所描述的各种技术的一个或多个程序可以使用应用程序编程接口 (API)、可重用控件等。这样的程序可以用高级过程语言或面向对象编程语言来实现,以与 计算机系统通信。然而,如果需要,程序可以用汇编语言或机器语言来实现。在任何情形中, 语言可以是编译语言或解释语言,且与硬件实现相结合。图2示出了根据本文描述的各实现的方法200的流程图。在一实现中,压缩器程 序114可执行方法200。由于原始纹理120可以是HDR纹理,因此在可将联合颜色通道压缩 技术用于将原始纹理120压缩成压缩纹理116之前,可能需要某一预处理。在一实现中,方 法200可预处理HDR纹理,并且随后使用DXTC来压缩HDR纹理。在操作中,最初HDR纹理205可被输入到自适应颜色变换过程210。最初HDR纹理 205可以是被划分成16个纹理像素的4x4块的原始纹理120。自适应颜色变换过程210可 通过将初始HDR纹理205从RGB空间转换成产生亮度色度空间中的纹理像素块来变换纹理 215。在此,亮度色度空间还可被称为Y-UV空间。在一实现中,自适应颜色变换过程210是 基于可包括将RGB值转换成Y-UV值的HDR颜色变换。通常,HDR颜色变换如下确定Y= HWtCt
le{r,gM
8
权利要求
1.一种用于压缩高动态范围(HDR)纹理的方法,包括将红绿蓝(RGB)空间中的所述HDR纹理的纹理像素的纹理像素的第一块(20 转换成 亮度色度空间中的纹理像素的第二块015),所述第一块具有红色值、绿色值和蓝色值,而 所述第二块具有亮度值和色度值,所述色度值是基于所述红色值的和、绿色值的和以及蓝 色值的和;将所述亮度值和色度值转换(220)成8比特整数格式;修改(MO)所述亮度值以便将本地线性度属性还原到所述第二块;以及压缩(230)所述第二块。
2.如权利要求1所述的方法,其特征在于,变换所述纹理像素的第一块包括从RGB空间中选择与红色值的和、绿色值的和以及蓝色值的和中两个最低的和相对应 的通道;以及基于所选择的通道的RGB值来确定色度值。
3.如权利要求1所述的方法,其特征在于,转换亮度值和色度值包括 确定亮度值的范围;基于所述亮度值的范围来确定相对亮度值; 将所述相对亮度值量化成8比特整数格式;以及 将所述色度值量化成8比特整数格式。
4.如权利要求20所述的方法,其特征在于,确定亮度值的范围包括确定所述亮度值的 上限和下限。
5.如权利要求20所述的方法,其特征在于,还包括将所述上限和下限量化成5比特整 数格式。
6.如权利要求1所述的方法,其特征在于,修改所述亮度值以便将本地线性度属性还 原成所述第二块包括移动亮度色度空间中的第二块的纹理像素,使得每一纹理像素被定位 在接近所述亮度色度空间中的单个线段。
7.如权利要求20所述的方法,其特征在于,还包括修改所述色度值来还原所述本地线 性度属性。
8.如权利要求20所述的方法,其特征在于,压缩所述第二块包括使用联合颜色通道压 缩方法。
9.如权利要求20所述的方法,其特征在于,所述联合颜色通道压缩方法是DirectX 纹理压缩。
10.如权利要求20所述的方法,其特征在于,压缩所述第二块包括使用联合颜色通道 压缩方法。
11.如权利要求20所述的方法,其特征在于,所述联合颜色通道压缩方法是DirectX: 纹理压缩。
12.如权利要求1所述的方法,其特征在于,修改所述亮度值以便将本地线性度属性还 原到所述第二块包括将每一纹理像素定位在接近所述亮度色度空间中的单个线段。
13.一种其上存储计算机可执行指令的计算机可读介质,所述指令在由计算机执行时 使得所述计算机将红绿蓝(RGB)空间中的HDR纹理的纹理像素的第一块(20 转换成亮度色度空间中的纹理像素的第二块015),所述第一块具有红色值、绿色值和蓝色值,而所述第二块具有 亮度值和色度值,所述色度值是基于红色值的和、绿色值的和以及蓝色值的和; 将所述亮度值和所述色度值转换(220)成8比特整数格式; 修改(MO)所述亮度值以便将本地线性度属性还原到所述第二块;以及 使用联合颜色通道压缩方法来压缩(230)所述第二块。
14.如权利要求20所述的计算机可读介质,其特征在于,所述联合颜色通道压缩方法 是DirectX 纹理压缩。
15.如权利要求20所述的计算机可读介质,其特征在于,还包括在由所述计算机执行 时使得所述计算机执行以下步骤的计算机可执行指令从RGB空间中选择与红色值的和、绿色值的和以及蓝色值的和中两个最低的和相对应 的通道;以及基于所选择的通道的RGB值来确定色度值。
16.如权利要求20所述的计算机可读介质,其特征在于,还包括在由所述计算机执行 时使得所述计算机执行以下步骤的计算机可执行指令确定亮度值的范围;基于所述亮度值的范围来确定相对亮度值; 将所述相对亮度值量化成8比特整数格式;以及 将所述色度值量化成8比特整数格式。
17.如权利要求20所述的计算机可读介质,其特征在于,还包括在由所述计算机执行 时使得所述计算机执行以下步骤的计算机可执行指令确定所述亮度值的上限和下限;以及 将所述上限和下限量化成5比特整数格式。
18.如权利要求20所述的计算机可读介质,其特征在于,还包括在由所述计算机执行 时使得所述计算机执行以下步骤的计算机可执行指令移动所述亮度色度空间中的第二块的纹理像素,使得每一纹理像素被定位在接近所述 亮度色度空间中的单个线段。
19.一种计算机系统,包括 处理器;以及包括由所述处理器可执行的程序指令的存储器,所述存储器用于 将红绿蓝(RGB)空间中的HDR纹理的纹理像素的第一块(20 转换成亮度色度空间中 的纹理像素的第二块015),所述第一块具有红色值、绿色值和蓝色值,而所述第二块具有 亮度值和色度值,所述色度值是基于所述红色值的和、绿色值的和以及蓝色值的和; 确定(220)所述亮度值的范围; 基于所述亮度值的范围来确定(220)相对亮度值; 将所述相对亮度值量化(220)成8比特整数格式; 将所述色度值量化(220)成8比特整数格式;移动(220)所述亮度色度空间中的第二块的纹理像素,使得每一纹理像素被定位在接 近所述亮度色度空间中的单个线段(375);以及使用DirectX 纹理压缩来压缩(230)所述第二块。
20.如权利要求20所述的计算机系统,其特征在于,所述存储器包括可由处理器执行 以便将RGB空间中的HDR纹理的纹理像素的第一块转换成亮度色度空间中的纹理像素的第 二块的程序指令还包括可由所述处理器执行以执行以下步骤的计算机可执行指令从RGB空间中选择与红色值的和、绿色值的和以及蓝色值的和中两个最低的和相对应 的通道;以及基于所选择的通道的RGB值来确定色度值。
全文摘要
一种用于压缩高动态范围(HDR)纹理的方法。可将红绿蓝(RGB)空间中的HDR纹理的纹理像素的第一块变换成亮度色度空间中的纹理像素的第二块。第一块可具有红色值、绿色值和蓝色值。第二块可具有亮度值和色度值。色度值可基于红色值的和、绿色值的和以及蓝色值的和。亮度值和色度值可被转换成8比特整数格式。可修改该亮度值以便将本地线性度属性还原到第二块。可压缩第二块。
文档编号H04N1/60GK102113305SQ200980131120
公开日2011年6月29日 申请日期2009年5月31日 优先权日2008年6月5日
发明者F·吴, S·李, W·孙, Y·陆 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1