Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(664)

Issue 17381008: More general version of image filtering; reworked to be robust and easier to SSE (Closed)

Created:
7 years, 6 months ago by humper
Modified:
7 years, 5 months ago
CC:
skia-review_googlegroups.com
Visibility:
Public.

Description

More general image filter interface; tested implementation of standalone image scaler (not yet plumbed). High quality downsampler. Fast SSE resampler. BUG= R=reed@google.com Committed: https://code.google.com/p/skia/source/detail?r=9936

Patch Set 1 #

Total comments: 26

Patch Set 2 : Cleanup from Mike, and first working sse version #

Patch Set 3 : Reworked the SSE code to be faster than the straight line CPU code now." #

Patch Set 4 : Working scale-only refilterer; currently suitable only for upsampling. Uses the flexible filtering… #

Patch Set 5 : Separate implementation of downsampling for high quality results #

Total comments: 10

Patch Set 6 : Addressed comments from mike #

Patch Set 7 : make temp. scale function private; disable GM and bench for that function #

Total comments: 6
Unified diffs Side-by-side diffs Delta from patch set Stats (+1056 lines, -219 lines) Patch
M bench/BitmapBench.cpp View 1 2 3 4 3 chunks +4 lines, -4 lines 0 comments Download
A bench/BitmapScaleBench.cpp View 1 2 3 1 chunk +135 lines, -0 lines 0 comments Download
M gm/filterbitmap.cpp View 1 2 3 6 chunks +15 lines, -15 lines 0 comments Download
A gm/scalebitmap.cpp View 1 2 3 4 1 chunk +114 lines, -0 lines 0 comments Download
M gyp/bench.gypi View 1 2 3 4 5 6 1 chunk +0 lines, -1 line 0 comments Download
M gyp/core.gypi View 1 2 3 4 1 chunk +2 lines, -1 line 0 comments Download
M gyp/gmslides.gypi View 1 2 3 4 5 6 1 chunk +1 line, -0 lines 0 comments Download
M gyp/opts.gyp View 1 chunk +4 lines, -0 lines 0 comments Download
M include/core/SkBitmap.h View 1 2 3 4 5 6 2 chunks +11 lines, -1 line 3 comments Download
M include/core/SkPaint.h View 1 2 3 4 2 chunks +3 lines, -1 line 2 comments Download
A src/core/SkBitmapFilter.h View 1 2 3 1 chunk +150 lines, -0 lines 0 comments Download
A src/core/SkBitmapFilter.cpp View 1 2 3 4 5 1 chunk +378 lines, -0 lines 0 comments Download
D src/core/SkBitmapProcBicubic.cpp View 1 chunk +0 lines, -187 lines 0 comments Download
M src/core/SkBitmapProcState.h View 1 2 3 4 5 4 chunks +13 lines, -5 lines 1 comment Download
M src/core/SkBitmapProcState.cpp View 1 chunk +4 lines, -4 lines 0 comments Download
A src/opts/SkBitmapFilter_opts_SSE2.h View 1 2 3 4 5 1 chunk +20 lines, -0 lines 0 comments Download
A src/opts/SkBitmapFilter_opts_SSE2.cpp View 1 2 3 4 5 1 chunk +189 lines, -0 lines 0 comments Download
M src/opts/opts_check_SSE2.cpp View 1 2 3 4 4 chunks +13 lines, -0 lines 0 comments Download

Messages

Total messages: 20 (0 generated)
humper
7 years, 6 months ago (2013-06-18 20:11:46 UTC) #1
reed1
https://codereview.chromium.org/17381008/diff/1/include/core/SkPaint.h File include/core/SkPaint.h (right): https://codereview.chromium.org/17381008/diff/1/include/core/SkPaint.h#newcode111 include/core/SkPaint.h:111: kHighQualityFilterBitmap_Flag = 0x4000, // temporary flag Lets skip this ...
7 years, 6 months ago (2013-06-18 20:21:21 UTC) #2
Stephen White
https://codereview.chromium.org/17381008/diff/1/src/core/SkBitmapFilter.cpp File src/core/SkBitmapFilter.cpp (right): https://codereview.chromium.org/17381008/diff/1/src/core/SkBitmapFilter.cpp#newcode18 src/core/SkBitmapFilter.cpp:18: dst[0] = fFilterTable[ SkTMin(int((1+t) * fBitmapFilter->invWidth() * SKBITMAP_FILTER_TABLE_SIZE), SKBITMAP_FILTER_TABLE_SIZE-1) ...
7 years, 6 months ago (2013-06-18 20:47:50 UTC) #3
humper
https://codereview.chromium.org/17381008/diff/1/include/core/SkPaint.h File include/core/SkPaint.h (right): https://codereview.chromium.org/17381008/diff/1/include/core/SkPaint.h#newcode111 include/core/SkPaint.h:111: kHighQualityFilterBitmap_Flag = 0x4000, // temporary flag On 2013/06/18 20:21:21, ...
7 years, 6 months ago (2013-06-19 20:49:26 UTC) #4
humper
I haven't specialized the SSE version for scale-only yet (or benchmarked it), but it works.
7 years, 6 months ago (2013-06-19 20:51:19 UTC) #5
reed1
looking forward to seeing what the speedup might be. https://codereview.chromium.org/17381008/diff/1/src/core/SkBitmapProcState.h File src/core/SkBitmapProcState.h (right): https://codereview.chromium.org/17381008/diff/1/src/core/SkBitmapProcState.h#newcode35 src/core/SkBitmapProcState.h:35: ...
7 years, 6 months ago (2013-06-19 21:14:08 UTC) #6
humper
7 years, 6 months ago (2013-06-24 21:09:36 UTC) #7
reed1
works for me. deferring to others for any specifics around impl.
7 years, 6 months ago (2013-06-24 23:58:15 UTC) #8
reed1
7 years, 6 months ago (2013-06-25 00:16:13 UTC) #9
ernstm
For the SSE2 implementation: have you considered doing the math with 16-bit integer operations? That ...
7 years, 5 months ago (2013-07-02 01:39:24 UTC) #10
humper
7 years, 5 months ago (2013-07-02 19:31:18 UTC) #11
humper
7 years, 5 months ago (2013-07-08 22:37:52 UTC) #12
reed1
https://codereview.chromium.org/17381008/diff/30001/include/core/SkBitmap.h File include/core/SkBitmap.h (right): https://codereview.chromium.org/17381008/diff/30001/include/core/SkBitmap.h#newcode545 include/core/SkBitmap.h:545: void scale(SkBitmap *dst) const; 1. Need to document what ...
7 years, 5 months ago (2013-07-09 14:25:47 UTC) #13
humper
https://codereview.chromium.org/17381008/diff/30001/include/core/SkBitmap.h File include/core/SkBitmap.h (right): https://codereview.chromium.org/17381008/diff/30001/include/core/SkBitmap.h#newcode545 include/core/SkBitmap.h:545: void scale(SkBitmap *dst) const; 1) Yep, will do. 2) ...
7 years, 5 months ago (2013-07-09 14:47:26 UTC) #14
reed1
https://codereview.chromium.org/17381008/diff/30001/include/core/SkBitmap.h File include/core/SkBitmap.h (right): https://codereview.chromium.org/17381008/diff/30001/include/core/SkBitmap.h#newcode545 include/core/SkBitmap.h:545: void scale(SkBitmap *dst) const; On 2013/07/09 14:47:26, humper wrote: ...
7 years, 5 months ago (2013-07-09 15:01:01 UTC) #15
humper
https://codereview.chromium.org/17381008/diff/30001/src/core/SkBitmapFilter.cpp File src/core/SkBitmapFilter.cpp (right): https://codereview.chromium.org/17381008/diff/30001/src/core/SkBitmapFilter.cpp#newcode17 src/core/SkBitmapFilter.cpp:17: void highQualityFilter(const SkBitmapProcState& s, int x, int y, ah, ...
7 years, 5 months ago (2013-07-09 15:26:29 UTC) #16
humper
https://codereview.chromium.org/17381008/diff/41001/include/core/SkBitmap.h File include/core/SkBitmap.h (right): https://codereview.chromium.org/17381008/diff/41001/include/core/SkBitmap.h#newcode714 include/core/SkBitmap.h:714: void scale(SkBitmap *dst) const; Made private; disabled the GM ...
7 years, 5 months ago (2013-07-09 17:21:18 UTC) #17
reed1
just nits lgtm https://codereview.chromium.org/17381008/diff/41001/include/core/SkBitmap.h File include/core/SkBitmap.h (right): https://codereview.chromium.org/17381008/diff/41001/include/core/SkBitmap.h#newcode711 include/core/SkBitmap.h:711: * move once it has been ...
7 years, 5 months ago (2013-07-09 17:26:29 UTC) #18
humper
https://codereview.chromium.org/17381008/diff/41001/include/core/SkBitmap.h File include/core/SkBitmap.h (right): https://codereview.chromium.org/17381008/diff/41001/include/core/SkBitmap.h#newcode711 include/core/SkBitmap.h:711: * move once it has been properly plumbed into ...
7 years, 5 months ago (2013-07-09 17:46:13 UTC) #19
humper
7 years, 5 months ago (2013-07-09 17:48:23 UTC) #20
Message was sent while issue was closed.
Committed patchset #7 manually as r9936 (presubmit successful).

Powered by Google App Engine
This is Rietveld 408576698