Commit graph

362 commits

Author SHA1 Message Date
Pavel Krajcevski 36ce478821 Refactor PSNR calculations. 2013-09-26 20:18:26 -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 ba36ca34fd Make sure to set the block stream order flag for sane debugging. This bug really needs to get fixed. 2013-09-25 20:07:10 -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 986616daf6 Touch up windows command line tool to support PVRTC compression 2013-09-25 16:36:34 -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
Pavel Krajcevski 75e570ed16 Fix some compiler snafus 2013-09-24 17:46:09 -04:00
Pavel Krajcevski 1636232717 Make sure that when changing from higher to lower bit depth (i.e. perform a division) that we round to the nearest value 2013-09-24 17:45:19 -04:00
Pavel Krajcevski 0cfca89da2 Add default for PVRTexLib on linux 2013-09-24 17:44:11 -04:00
Pavel Krajcevski ea68f3a138 PVRTC image quality of life improvements. 2013-09-24 14:00:14 -04:00
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