1. 05 Nov, 2016 1 commit
  2. 30 Jul, 2016 1 commit
    • Eugene Ingerman's avatar
      Add antialiasing to createThumbnailDevice · 2a1987a8
      Eugene Ingerman authored
      Summary:
      1. Added oversampling/antialising to createThumbnailDevice. Interpolation is done using KisTransformWorker with bilinear interpolation. Added parameter that controls oversampling ratio.
      2. Added benchmark for new thumbnail code. Results for 6Kx8K image turned into 640px thumbnail see below. About 2x hit in time for 2x oversampling. Quality with 2x oversampling is much better than no oversampling. 4x oversampling slightly better, but not dramatically. See below.
      3. Changed oversampling for overview widget to 2x.
      4. Fixed caching of oversampled thumbnails.
      5. Fixed up functions calls to createThumbnail.
      
      {F156583}
      No Oversampling
      
      {F156585}
      2x Oversampling
      
      {F156586}
      4x Oversampling
      
      PASS   : KisThumbnailBenchmark::benchmarkCreateThumbnail()
      RESULT : KisThumbnailBenchmark::benchmarkCreateThumbnail():
           161 msecs per iteration (total: 161, iterations: 1)
      PASS   : KisThumbnailBenchmark::benchmarkCreateThumbnailCached()
      RESULT : KisThumbnailBenchmark::benchmarkCreateThumbnailCached():
           0.000059 msecs per iteration (total: 62, iterations: 1048576)
      PASS   : KisThumbnailBenchmark::benchmarkCreateThumbnailHiQ()
      RESULT : KisThumbnailBenchmark::benchmarkCreateThumbnailHiQ():
           3,962 msecs per iteration (total: 3,962, iterations: 1)
      PASS   : KisThumbnailBenchmark::benchmarkCreateThumbnailHiQcreateThumbOversample2x()
      RESULT : KisThumbnailBenchmark::benchmarkCreateThumbnailHiQcreateThumbOversample2x():
           269 msecs per iteration (total: 269, iterations: 1)
      PASS   : KisThumbnailBenchmark::benchmarkCreateThumbnailHiQcreateThumbOversample3x()
      RESULT : KisThumbnailBenchmark::benchmarkCreateThumbnailHiQcreateThumbOversample3x():
           489 msecs per iteration (total: 489, iterations: 1)
      PASS   : KisThumbnailBenchmark::benchmarkCreateThumbnailHiQcreateThumbOversample4x()
      RESULT : KisThumbnailBenchmark::benchmarkCreateThumbnailHiQcreateThumbOversample4x():
           701 msecs per iteration (total: 701, iterations: 1)
      
      Test Plan: Run KisThumbnailBenchmark.
      
      Reviewers: rempt, dkazakov, woltherav
      
      Reviewed By: rempt, woltherav
      
      Subscribers: woltherav
      
      Differential Revision: https://phabricator.kde.org/D1979
      2a1987a8