Commit graph

134 commits

Author SHA1 Message Date
Pavel Krajcevski
a80944901e Refactor CompressionJob struct.
In order to better facilitate the change from block stream order to non-block stream order,
a lot of changes were introduced to the way that we feed texture data to the compressors. This
data is embodied in the CompressionJob struct. We have made it so that the compression job
points to both the in and out pointers for our compressed and uncompressed data. Furthermore,
we have made sure that the struct also contains the format that its compressing for, so that if
any threading programs would like to chop up a compression job into smaller chunks based on the
format, it doesn't need to know the format explicitly, it just needs to know certain properties
about the format.

Moreover, the user can now define the start and end pixels from which we would like to compress
to. We can compress subsets of data by changing the in and out pointers and the width and height
values. The compressors will read data linearly until they reach the out pixels based on the width
of the given pixel.
2013-11-08 16:31:19 -05:00
Pavel Krajcevski
f70b26a47f Change interface of compression/decompression jobs. 2013-11-06 18:55:53 -05:00
Pavel Krajcevski
692cfbcf77 Some compiler SNAFUs on windows. 2013-10-21 15:49:42 -04:00
Pavel Krajcevski
53403fd1a9 Merge branch 'CompressPVRTC' of git.cs.unc.edu:pavel/FasTC into CompressPVRTC 2013-10-21 14:27:01 -04:00
Pavel Krajcevski
5fb39cf5c5 Add LUTs for areas of constant intensity. 2013-10-21 14:26:21 -04:00
Pavel Krajcevski
3bb68cd8ad Debug refactoring. 2013-10-18 04:13:12 -04:00
Pavel Krajcevski
54f5030aeb Add some minor code changes. 2013-10-16 19:35:34 -04:00
Pavel Krajcevski
4f2db726b7 Get rid of unnecessary include 2013-10-16 10:40:56 -04:00
Pavel Krajcevski
838d1f7b6e Some small refactoring. 2013-10-15 13:56:40 -04:00
Pavel Krajcevski
bcf7c5c389 Some more compiler error and warning fixes. 2013-10-15 10:32:38 -04:00
Pavel Krajcevski
89110be602 Get rid of a bunch of MSVC compiler warnings. 2013-10-15 00:31:33 -04:00
Pavel Krajcevski
7ec457faa9 Remove some dead code 2013-10-14 21:16:32 -04:00
Pavel Krajcevski
48d0cae9f0 Some bug fixes and optimizations. 2013-10-14 20:59:46 -04:00
Pavel Krajcevski
d0260d3755 Don't memset if we don't need to. 2013-10-14 17:49:45 -04:00
Pavel Krajcevski
0b85431526 Get rid of unused variable 2013-10-14 17:48:00 -04:00
Pavel Krajcevski
4f44826056 Since all of our texture dimensions are powers of two, we can optimize out the modulo in favor of a mask. 2013-10-14 17:45:26 -04:00
Pavel Krajcevski
87f1e06cb5 Fix a couple of bugs with both block ordering and indexing 2013-10-14 17:45:17 -04:00
Pavel Krajcevski
0188006ce3 Assert that our width and height are powers of two. 2013-10-14 17:45:06 -04:00
Pavel Krajcevski
345292e36a Grab compressor from experimental branch 2013-10-14 17:43:29 -04:00
Pavel Krajcevski
3e35fb2c0d Merge SplitCoreLibrary 2013-10-10 11:04:40 -04:00
Pavel Krajcevski
9bbc707379 Fix average downscale method signature. 2013-10-10 10:49:49 -04:00
Pavel Krajcevski
9911d5edc5 Get rid of some redundant code =) 2013-10-08 20:30:31 -04:00
Pavel Krajcevski
4baf2ce311 Combine image functionality from PVRTCEncoder into Base library. 2013-10-04 18:35:18 -04:00
Pavel Krajcevski
ab598c9ef7 Move Pixel class from PVRTCEncoder to FasTCBase. 2013-10-03 17:25:15 -04:00
Pavel Krajcevski
30e0337496 Small refactoring changes. 2013-10-03 14:12:48 -04:00
Pavel Krajcevski
160fbb5e39 Add method for downscaling by averaging nearby pixel values. 2013-10-03 14:12:41 -04:00
Pavel Krajcevski
8e555b8424 Add hessian eigenvalue computation for an image. 2013-10-02 11:20:11 -04:00
Pavel Krajcevski
623f792904 Refactor 2013-10-02 11:19:36 -04:00
Pavel Krajcevski
0112f2cca7 Move the intensity calculation to the Pixel class... 2013-10-01 18:03:59 -04:00
Pavel Krajcevski
03f693f104 Add a hook into the PVRTexLib compressor if it's been found via cmake. 2013-09-30 12:38:09 -04:00
Pavel Krajcevski
a31de8f797 Wrong indices for modulation values 2013-09-30 11:20:08 -04:00
Pavel Krajcevski
dbc7798655 Add modulation image debug output. 2013-09-30 11:08:51 -04:00
Pavel Krajcevski
baab69dc99 Fix some MSVC compiler snafus 2013-09-28 22:21:31 -04:00
Pavel Krajcevski
157295efa3 Squelch some compiler warnings. 2013-09-27 17:38:36 -04:00
Pavel Krajcevski
dcf389d346 Merge PVRTC compressor into split library. 2013-09-27 17:30:16 -04:00
Pavel Krajcevski
8ea39890ac Update compressor to do a simple bounding box algorithm... results are still bad but better than what we've been getting. 2013-09-26 20:19:19 -04:00
Pavel Krajcevski
264e447e80 Deal with this bug once and for all. If we have an image in block stream order, then explicitly reorder it before doing any work. Then keep it that way. I probably could have fixed this in the amount of time I've wasted on it. -____- 2013-09-26 20:17:07 -04:00
Pavel Krajcevski
4de5f90edf Some small bug fixes to our still awful compressor. 2013-09-25 20:10:18 -04:00
Pavel Krajcevski
a57c40005c Small bug: don't allocate more memory than we have to. 2013-09-25 20:07:44 -04:00
Pavel Krajcevski
2c8254d6c3 Small optimization: reserve vector data before we populate blocks vector. 2013-09-25 16:38:10 -04:00
Pavel Krajcevski
33a1dab0a9 The modulation value is the index. 2013-09-25 16:37:34 -04:00
Pavel Krajcevski
088481afe4 Meant resize instead of reserve. 2013-09-25 16:37:17 -04:00
Pavel Krajcevski
a587899048 Fix some compiler errors with MSVC (and honestly, other compilers should catch them, too.) 2013-09-25 15:06:45 -04:00
Pavel Krajcevski
ed12d53cd4 Merge in a few changes from master 2013-09-25 15:05:56 -04:00
Pavel Krajcevski
f19b324d28 Make sure to use the proper directory when running RUN_TESTS from MSVC. Note, this doesn't work in Release. 2013-09-25 14:42:35 -04:00
Pavel Krajcevski
79d2ad79ac Fix some snafus on windows 2013-09-25 14:30:48 -04:00
Pavel Krajcevski
c6d7bdc670 Very preliminary compressor 2013-09-24 20:35:36 -04:00
Pavel Krajcevski
8f4dcca4d7 Add some utility functions for manipulating the block data, including packing colors back into the 64-bit word. 2013-09-24 20:33:48 -04:00
Pavel Krajcevski
3de9abc908 Make PVRTC block size a constant accessible from the global header 2013-09-24 19:30:31 -04:00
Pavel Krajcevski
340f4f3141 Add pixel packing routines 2013-09-24 19:29:03 -04:00