Commit graph

  • 4f44826056 Since all of our texture dimensions are powers of two, we can optimize out the modulo in favor of a mask. Pavel Krajcevski 2013-10-14 17:36:40 -0400
  • 87f1e06cb5 Fix a couple of bugs with both block ordering and indexing Pavel Krajcevski 2013-10-14 17:35:45 -0400
  • 0188006ce3 Assert that our width and height are powers of two. Pavel Krajcevski 2013-10-14 17:34:19 -0400
  • 345292e36a Grab compressor from experimental branch Pavel Krajcevski 2013-10-13 19:28:41 -0400
  • f1b564fdb2 Only report MSSIM Pavel Krajcevski 2013-10-12 16:37:48 -0400
  • 996c81ef01 Specialize the FilterValid routine to not consider the pixels as pixels but rather as values. This seems somewhat inelegant but it's fine in terms of a quick fix. Pavel Krajcevski 2013-10-12 16:32:09 -0400
  • 5af29c87d0 Fix bug with kernel generation. Pavel Krajcevski 2013-10-11 21:38:49 -0400
  • 68f2f4a8b3 If the intensity is greater than one, then we're treating it as a float value, so when packing it into a pixel, just pack the value instead of scaling it to 255... Pavel Krajcevski 2013-10-11 21:38:28 -0400
  • d3fd98c8fa Fix Intensity calculation for pixel. Pavel Krajcevski 2013-10-11 21:37:06 -0400
  • e21ffecfa3 Small tool to compare two images with all of the metrics that we have encoded. Pavel Krajcevski 2013-10-11 20:53:44 -0400
  • e2be925265 Fix bug where we were writing ARGB instead of RGBA, again a victim of stupid block stream ordering. Pavel Krajcevski 2013-10-11 20:53:22 -0400
  • a2bf21e515 Require pthreads lib on some platforms. Pavel Krajcevski 2013-10-11 19:42:00 -0400
  • 86bb0f6d0e Add SSIM report to command line tools... Pavel Krajcevski 2013-10-11 13:09:33 -0400
  • 855683983c SSIM measurement is usually the smallest SSIm index, so report that instead of MSSIM, but if the user wants SSIM we can do that, too. Pavel Krajcevski 2013-10-11 13:06:29 -0400
  • 2d8c291107 Fix some small bugs with SSIM. Pavel Krajcevski 2013-10-11 13:05:59 -0400
  • 8d37d6eee5 Add MSSIM metric for images based on matlab implementation. Pavel Krajcevski 2013-10-11 12:12:32 -0400
  • 42c6f85642 Add some convenience Image functions. Pavel Krajcevski 2013-10-11 12:12:08 -0400
  • dd1c3351ea Fix small bug in Gaussian kernel generation. Pavel Krajcevski 2013-10-11 12:11:32 -0400
  • bf5429cd0c Add Gaussian kernel generating function. Pavel Krajcevski 2013-10-10 20:06:12 -0400
  • 654ee23446 Force PSNR comparison between images to use the same pixeltype Pavel Krajcevski 2013-10-10 20:06:02 -0400
  • 72697f650c Add filtering operation. Pavel Krajcevski 2013-10-10 19:36:19 -0400
  • 076ca07bcf Fix color into rgba packing. Pavel Krajcevski 2013-10-10 19:36:10 -0400
  • b07fe9b670 Make IPixels single vectors in order to allow us to use their operators and other convenience functions. Pavel Krajcevski 2013-10-10 14:36:45 -0400
  • 127fd7b365 Add Image template instantiation for IPixel Pavel Krajcevski 2013-10-10 11:35:28 -0400
  • ad5f012a4c Add the ability to treat intensity pixels as floats. Pavel Krajcevski 2013-10-10 11:35:01 -0400
  • 51cec12938 Add intensity pixels Pavel Krajcevski 2013-10-10 11:27:54 -0400
  • 3e35fb2c0d Merge SplitCoreLibrary Pavel Krajcevski 2013-10-10 11:04:40 -0400
  • 9bbc707379 Fix average downscale method signature. Pavel Krajcevski 2013-10-10 10:49:49 -0400
  • 9911d5edc5 Get rid of some redundant code =) Pavel Krajcevski 2013-10-08 20:30:31 -0400
  • f502e2bd0e Change the order of directory traversal so that our tests work nicer Pavel Krajcevski 2013-10-08 20:30:16 -0400
  • 47074c1224 Abstract away a bit more logic in order to allow us to easily override the core vector operations if need be. Pavel Krajcevski 2013-10-08 20:29:56 -0400
  • 01a38dc76b Add more generic structures for performing scalar multiplication with vectors (i.e. ones that actually compile) Pavel Krajcevski 2013-10-08 18:39:32 -0400
  • 0add6a5ee9 Allow FasTC::Image<Color> Pavel Krajcevski 2013-10-08 18:38:11 -0400
  • a4a289c177 Change the pixel channel size to 16 bits so that our arithmetic operations don't overflow. Pavel Krajcevski 2013-10-08 18:37:38 -0400
  • dd12cc92cd Revert "Pixels are actually 4vecs of ints" Pavel Krajcevski 2013-10-08 17:32:40 -0400
  • 2159a6688a Add colors. Pavel Krajcevski 2013-10-08 15:07:43 -0400
  • 85c3f9fc90 Pixels are actually 4vecs of ints Pavel Krajcevski 2013-10-08 15:07:11 -0400
  • 473a1c1869 Move the operators out of the class definition so that we can derive from Vectors. Pavel Krajcevski 2013-10-08 15:06:20 -0400
  • 3a4a841309 Merge branch 'CompressPVRTC' of git.cs.unc.edu:pavel/FasTC into CompressPVRTC Pavel Krajcevski 2013-10-07 11:52:24 -0400
  • 4baf2ce311 Combine image functionality from PVRTCEncoder into Base library. Pavel Krajcevski 2013-10-04 18:35:18 -0400
  • ab598c9ef7 Move Pixel class from PVRTCEncoder to FasTCBase. Pavel Krajcevski 2013-10-03 17:25:15 -0400
  • cb348c3598 Reappropriate vexlib math headers into FasTC. Pavel Krajcevski 2013-10-03 17:19:28 -0400
  • 30e0337496 Small refactoring changes. Pavel Krajcevski 2013-10-03 14:12:48 -0400
  • 160fbb5e39 Add method for downscaling by averaging nearby pixel values. Pavel Krajcevski 2013-10-03 14:12:41 -0400
  • 5b0ede3239 Fix win32 cltool. Pavel Krajcevski 2013-10-02 11:56:36 -0400
  • 8e555b8424 Add hessian eigenvalue computation for an image. Pavel Krajcevski 2013-10-02 11:20:11 -0400
  • 623f792904 Refactor Pavel Krajcevski 2013-10-02 11:19:36 -0400
  • 0112f2cca7 Move the intensity calculation to the Pixel class... Pavel Krajcevski 2013-10-01 18:03:59 -0400
  • ce7bb8e891 Add command line flags to choose between whether or not to use PVRTexLib or FasTC Pavel Krajcevski 2013-09-30 12:46:23 -0400
  • 219777687f Small refactoring. Pavel Krajcevski 2013-09-30 12:39:26 -0400
  • 03f693f104 Add a hook into the PVRTexLib compressor if it's been found via cmake. Pavel Krajcevski 2013-09-30 12:04:00 -0400
  • a31de8f797 Wrong indices for modulation values Pavel Krajcevski 2013-09-30 11:20:08 -0400
  • 795e8dd32d Change basename in cl tools to avoid directory information. Pavel Krajcevski 2013-09-30 11:17:17 -0400
  • dbc7798655 Add modulation image debug output. Pavel Krajcevski 2013-09-30 11:08:51 -0400
  • f3c37defcc Make sure that we specify the -l flag before trying to write to a log file. Pavel Krajcevski 2013-09-30 11:08:33 -0400
  • 63a235958d When creating a compressed image from data make sure to set the block stream order based upon the format that you're compressing to. Yet more of this bug.... Pavel Krajcevski 2013-09-29 14:32:59 -0400
  • a2390189f8 Make sure to not set an output stream if the user hasn't requested it. Pavel Krajcevski 2013-09-29 14:32:21 -0400
  • 89fbaf8170 Keep track of the image size with the base image rather than the compressed image. It's not always the case that the image data is RGBA8 data. Pavel Krajcevski 2013-09-28 22:40:48 -0400
  • e11e2d1c12 Actually use a log file instead of std::cout and remove a warning that's no longer applicable Pavel Krajcevski 2013-09-28 22:40:14 -0400
  • 289bcc9d44 Make the block index for the stat function the pointer reinterpreted as an integer. This way we know exactly what block it is because we simply need to sort the stats in the output log. Pavel Krajcevski 2013-09-28 22:39:27 -0400
  • baab69dc99 Fix some MSVC compiler snafus Pavel Krajcevski 2013-09-28 22:21:31 -0400
  • c3cb8403b5 Fix our threadsafe streambuf to accept a sink that receives all of the proper output... Pavel Krajcevski 2013-09-28 21:44:50 -0400
  • f1924bd221 Try to send a single string that encompasses a stat to the stream so that when we do synchronization it will crunch the entire string at once. Pavel Krajcevski 2013-09-28 21:43:25 -0400
  • 43bd44b6ca Add a threadID function Pavel Krajcevski 2013-09-28 21:42:50 -0400
  • 13af957ab9 Remove BlockStatManager in favor of ostreams Pavel Krajcevski 2013-09-28 21:42:24 -0400
  • 7bd54105e4 Add simple implementation of our thread-safe stream buffer. Pavel Krajcevski 2013-09-28 18:11:41 -0400
  • 8bc81edf14 Add skeleton for thread safe stream buffer. Pavel Krajcevski 2013-09-28 17:30:15 -0400
  • 157295efa3 Squelch some compiler warnings. Pavel Krajcevski 2013-09-27 17:38:36 -0400
  • dcf389d346 Merge PVRTC compressor into split library. Pavel Krajcevski 2013-09-27 17:30:16 -0400
  • 8ea39890ac Update compressor to do a simple bounding box algorithm... results are still bad but better than what we've been getting. Pavel Krajcevski 2013-09-26 20:19:19 -0400
  • 36ce478821 Refactor PSNR calculations. Pavel Krajcevski 2013-09-26 20:18:26 -0400
  • 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. -____- Pavel Krajcevski 2013-09-26 20:17:07 -0400
  • 4de5f90edf Some small bug fixes to our still awful compressor. Pavel Krajcevski 2013-09-25 20:10:18 -0400
  • a57c40005c Small bug: don't allocate more memory than we have to. Pavel Krajcevski 2013-09-25 20:07:44 -0400
  • ba36ca34fd Make sure to set the block stream order flag for sane debugging. This bug really needs to get fixed. Pavel Krajcevski 2013-09-25 20:07:10 -0400
  • 2c8254d6c3 Small optimization: reserve vector data before we populate blocks vector. Pavel Krajcevski 2013-09-25 16:38:10 -0400
  • 33a1dab0a9 The modulation value is the index. Pavel Krajcevski 2013-09-25 16:37:34 -0400
  • 088481afe4 Meant resize instead of reserve. Pavel Krajcevski 2013-09-25 16:37:17 -0400
  • 986616daf6 Touch up windows command line tool to support PVRTC compression Pavel Krajcevski 2013-09-25 16:36:34 -0400
  • a587899048 Fix some compiler errors with MSVC (and honestly, other compilers should catch them, too.) Pavel Krajcevski 2013-09-25 15:06:45 -0400
  • ed12d53cd4 Merge in a few changes from master Pavel Krajcevski 2013-09-25 15:05:56 -0400
  • f19b324d28 Make sure to use the proper directory when running RUN_TESTS from MSVC. Note, this doesn't work in Release. Pavel Krajcevski 2013-09-25 14:42:35 -0400
  • 79d2ad79ac Fix some snafus on windows Pavel Krajcevski 2013-09-25 14:30:48 -0400
  • c6d7bdc670 Very preliminary compressor Pavel Krajcevski 2013-09-24 20:35:36 -0400
  • 8f4dcca4d7 Add some utility functions for manipulating the block data, including packing colors back into the 64-bit word. Pavel Krajcevski 2013-09-24 20:33:48 -0400
  • 3de9abc908 Make PVRTC block size a constant accessible from the global header Pavel Krajcevski 2013-09-24 19:30:31 -0400
  • 340f4f3141 Add pixel packing routines Pavel Krajcevski 2013-09-24 19:29:03 -0400
  • 75e570ed16 Fix some compiler snafus Pavel Krajcevski 2013-09-24 17:46:09 -0400
  • 1636232717 Make sure that when changing from higher to lower bit depth (i.e. perform a division) that we round to the nearest value Pavel Krajcevski 2013-09-24 17:45:19 -0400
  • 0cfca89da2 Add default for PVRTexLib on linux Pavel Krajcevski 2013-09-24 17:44:11 -0400
  • ea68f3a138 PVRTC image quality of life improvements. Pavel Krajcevski 2013-09-24 14:00:14 -0400
  • e9a9988a56 Fix small bug in downsampling that causes artifacts Pavel Krajcevski 2013-09-20 12:48:56 -0400
  • 1093447055 Plug in the infrastructure to start passing images to be compressed. Pavel Krajcevski 2013-09-20 12:43:59 -0400
  • 995c237e5e Add downscale test and fix a few bugs and formatting. Pavel Krajcevski 2013-09-19 17:47:36 -0400
  • 1d58ea2385 Add RGBA pixel constructor Pavel Krajcevski 2013-09-19 15:11:27 -0400
  • 9f4fa671d9 Add a first pass at content aware downscaling. Pavel Krajcevski 2013-09-18 18:03:44 -0400
  • e609075d04 Split apart the index calculation and pixel lookup functions Pavel Krajcevski 2013-09-18 18:03:08 -0400
  • 16cc7f4a93 Use GetHeight/GetWidth() where appropriate instead of m_Width/m_Height Pavel Krajcevski 2013-09-18 18:02:35 -0400
  • 4135e38f22 Set the default wrap behavior to wrap for image upscale, too Pavel Krajcevski 2013-09-18 18:00:59 -0400
  • 9acd9db7b3 Merge branch 'master' into CompressPVRTC Pavel Krajcevski 2013-09-18 17:55:32 -0400