Commit Graph

541 Commits

Author SHA1 Message Date
Pavel Krajcevski
e9a9988a56 Fix small bug in downsampling that causes artifacts 2013-09-20 12:48:56 -04:00
Pavel Krajcevski
1093447055 Plug in the infrastructure to start passing images to be compressed. 2013-09-20 12:43:59 -04:00
Pavel Krajcevski
995c237e5e Add downscale test and fix a few bugs and formatting. 2013-09-19 17:47:36 -04:00
Pavel Krajcevski
1d58ea2385 Add RGBA pixel constructor 2013-09-19 15:11:27 -04:00
Pavel Krajcevski
9f4fa671d9 Add a first pass at content aware downscaling. 2013-09-18 18:03:44 -04:00
Pavel Krajcevski
e609075d04 Split apart the index calculation and pixel lookup functions 2013-09-18 18:03:08 -04:00
Pavel Krajcevski
16cc7f4a93 Use GetHeight/GetWidth() where appropriate instead of m_Width/m_Height 2013-09-18 18:02:35 -04:00
Pavel Krajcevski
4135e38f22 Set the default wrap behavior to wrap for image upscale, too 2013-09-18 18:00:59 -04:00
Pavel Krajcevski
9acd9db7b3 Merge branch 'master' into CompressPVRTC 2013-09-18 17:55:32 -04:00
Pavel Krajcevski
e0ec005ac8 Fix link problems 2013-09-18 14:00:53 -04:00
Pavel Krajcevski
1a70ddf57a Remove spurious comment 2013-09-17 18:52:02 -04:00
Pavel Krajcevski
d4ca50f8ed Fix the directories in the PVRTC compressor 2013-09-17 18:35:56 -04:00
Pavel Krajcevski
29bd1368e6 Fix a few compiler warnings and add the BPTCEncoder license. 2013-09-15 14:56:09 -04:00
Pavel Krajcevski
28cf254fe5 Initial decoupling of base library from core library. Includes a few formatting changes as well. 2013-09-13 19:36:37 -04:00
Pavel Krajcevski
2540032acc Some small formatting changes 2013-09-13 16:25:00 -04:00
Pavel Krajcevski
093576c9e7 Add initial code for our compressor. 2013-09-13 13:10:22 -04:00
Pavel Krajcevski
0afa1281a8 Change default wrap mode to wrap 2013-09-13 13:10:07 -04:00
Pavel Krajcevski
571bf1ebd0 Remove dead code 2013-09-12 15:01:30 -04:00
Pavel Krajcevski
f7404c44b9 Refactor debug output for modulation info. 2013-09-12 15:01:19 -04:00
Pavel Krajcevski
1b073eb4b7 Add 2BPP decompression 2013-09-12 14:45:56 -04:00
Pavel Krajcevski
b3de3f2c01 If our compile flag is set to output debug images with tests, then actually do it. 2013-09-12 14:45:42 -04:00
Pavel Krajcevski
b3f8fcd454 Decouple upscale directions so that we can non-uniformly scale images. 2013-09-12 14:44:54 -04:00
Pavel Krajcevski
7184d49ccd Add unpack RGBA for our pixels 2013-09-12 14:41:00 -04:00
Pavel Krajcevski
9f6e6e7233 Fix bug with debug images 2013-09-12 14:32:33 -04:00
Pavel Krajcevski
1115c2f9e4 Add 2BPP helper functions for our blocks.
Namely, there are two things that we need to do:
1. Figure out the sub-mode based on the mode bit and the structure of the modulation data. The comments in Block.h describe how we do this.
2. For a given texel index, return 2BPP texel modulation bits.
2013-09-12 14:30:08 -04:00
Pavel Krajcevski
08cad3ba86 Add 2BPP tests 2013-09-12 14:04:20 -04:00
Pavel Krajcevski
0172df4e60 Add final opaque to transparent gradient test. 2013-09-10 13:34:13 -04:00
Pavel Krajcevski
dd625fca71 When going from 344(3/4) pixels to 4555, the alpha channel only has a zero appended to it. Hence we must clear that bit for each pixel that was transparent during decoding. 2013-09-10 13:22:53 -04:00
Pavel Krajcevski
f5e0aa4f9f Make sure to clear the MSBs of channels that have zero depth that get converted to higher depth values 2013-09-10 13:21:48 -04:00
Pavel Krajcevski
77bb7488cc Fix typo 2013-09-10 11:58:53 -04:00
Pavel Krajcevski
eb312ccb0a Small refactor 2013-09-09 14:16:45 -04:00
Pavel Krajcevski
5020f81f00 Add a transparent pvr image test 2013-09-09 10:33:04 -05:00
Pavel Krajcevski
6c8eea5520 Add superfluous code from when I was trying to match the decoder to PVR library. 2013-09-09 10:31:53 -05:00
Pavel Krajcevski
09b5680245 Some small code style fixes 2013-09-06 13:37:50 -04:00
Pavel Krajcevski
5ac6872dc7 Add a test to make sure that after a bilerp the pixels that should remain unaffected do in fact remain unaffected. 2013-09-06 02:02:34 -04:00
Pavel Krajcevski
3806efe6fc Add some more hacky includes to be able to output debug images from our tests. 2013-09-06 02:02:02 -04:00
Pavel Krajcevski
91c79cd717 Fix Bilinear upscale
There were a couple of fixes.

1. Add another set of pixels to an image that represent the fractional bits that get populated as a result of doing a bilerp.
2. Do not consider individual axes when doing the bilerp. Instead, assign a weight to each of the different texels that we will use for the bilerp. Then, combine them and save the fractional bits.
2013-09-06 01:58:53 -04:00
Pavel Krajcevski
92827c23fc Add a debug function to our intermediate PVRTC images 2013-09-06 01:57:06 -04:00
Pavel Krajcevski
0d0c65f536 Actually index into our pixels properly... 2013-09-06 01:55:25 -04:00
Pavel Krajcevski
2263080faa Fix the interleaving by doing it when we're actually reading in the blocks 2013-09-06 01:55:06 -04:00
Pavel Krajcevski
db914018f1 Two enhancements:
1. Make sure to use the same lerping code for both modulation modes when decompressing.
2. Accept a flag during decompression that outputs the debug images that were computed during decompression.
2013-09-06 01:53:10 -04:00
Pavel Krajcevski
7403e77d4d Add some hacky includes and libraries to support writing out debug images 2013-09-06 01:50:46 -04:00
Pavel Krajcevski
0f659269e7 Add error message when we can't load a file. 2013-09-06 01:39:23 -04:00
Pavel Krajcevski
c367d11e9d Formatting 2013-09-06 01:39:11 -04:00
Pavel Krajcevski
9b7bb2cbc7 Add hooks to support outputing images whose pixels are not in block-stream order 2013-09-06 01:38:52 -04:00
Pavel Krajcevski
a6e6138084 Change the lerp function to be more explicit. 2013-09-05 14:49:56 -04:00
Pavel Krajcevski
b8e155e11c Switch red and blue channels in our decompressor test. 2013-09-05 14:49:08 -04:00
Pavel Krajcevski
7b72a84d87 Add a working directory for PVR lib tests
Unfortunately, the WORKING_DIRECTORY directive for ADD_TEST seems to be broken as of CMake 2.8.10, fortunately there was a mail thread about this issue in 2.6 so I was able to implement the workaround.
2013-09-04 20:43:49 -04:00
Pavel Krajcevski
6149c0af3a Add PVR tests
If cmake was able to find Imagination's PVR library, then it'd be nice to make sure that our decompressor matches theirs. We incur a bit of overhead by adding .pvr files into git, but hopefully this cost will be beneficial to actually figuring out how things are working...
2013-09-04 20:21:56 -04:00
Pavel Krajcevski
052157ea49 Rename our tests to start with the prefix 'Test' 2013-09-04 20:21:28 -04:00