-
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