- 最后登录
- 2017-9-18
- 注册时间
- 2011-1-12
- 阅读权限
- 90
- 积分
- 12276
- 纳金币
- 5568
- 精华
- 0
|
1 Introduction
Memory bandwidth is a critical resource in modern graphics accelerators,
particularly those intended for use in mobile devices.
Texture fetches often make up a large fraction of total graphics accelerator
bandwidth, so there is great interest in methods of compressing
textures for real-time decode during rendering [Akenine-
M¨oller and Str¨om 2003]. These methods typically partition the image
into fixed-size blocks, and encode each block as a fixed number
of bits. The bits describing each block are further partitioned into
data items specifying per-block control information (e.g., mode selection),
per-block color information (e.g., color space definition),
and per-***l color information (e.g., color indices). In order to allow
efficient random access during decoding, each item is typically
encoded in an integer number of bits. This is inefficient if the number
of distinct values an item can take on is not a power of two,
which places severe constraints on how the data items are defined.
In this paper we describe a texture compression system in which
data items can be represented by fractional numbers of bits, using
a low-level coding scheme called Bounded Integer Sequence Encoding.
This allows bits to be allocated among different types of
information in a very flexible way without sacrificing coding efficiency.
The system uses this flexibility to offer an unusually wide
range of functionalities. It handles images with one to four components
per ***l at bit rates from 8bpp down to less than 1bpp,
with quality comparable to state-of-the-art formats in each case. It
supports both 8-bit per component and HDR ***l formats, and can
encode both 2D and 3D images.
2 Related Work
Our method is similar to [Str¨om and Pettersson 2007; Iourcha et al.
1999] and others in that it partitions the image ***ls into blocks,
and provides color indices that associate ***ls with points along
lines in color space. Like BPTC [OpenGL ARB 2010], our method
assigns ***ls within a block to partitions, and defines a different
color space for each partition. Our method differs from previous
work in that a great deal of information is specified on a per-block
or per-partition basis; this includes the number of color channels
per ***l and the ***l dynamic range (HDR vs normalized). Our
method is also unique in making systematic use of a technique for
representing color space and index data using a fractional number
of bits. This technique has many applications and is a key feature
of our work.
Wennersten and Str¨om [2009] describe a 2bpp format that makes
use of a fractional-bit encoding scheme to store indices in the range
[0::2] at a rate of 1.5 bits per index. Our method provides comparable
efficiency for this case, but is easier to generalize to other
non-power-of-two index sets, and does not limit the combinations
of indices that can occur. |
|