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

Issue 19335002: Production quality fast image up/downsampler (Closed)

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

Description

The image resampling code has been transplanted from Chrome; it's incredibly fast. We've tested this CL plumbed into Chrome and done benchmarking with excellent results. This CL can land independent of any Chrome changes; it's completely internal to skia. BUG= R=reed@google.com Committed: https://code.google.com/p/skia/source/detail?r=10206

Patch Set 1 #

Patch Set 2 : plumbing for platform-specific versions of the image scaler #

Patch Set 3 : first attempt to move the hq image convolver from chrome to skia #

Patch Set 4 : working plumb of chrome scaler, ready for benchmarking #

Patch Set 5 : reinstante private members for skbitmap #

Patch Set 6 : SSE plumb #

Patch Set 7 : Added mitchell filter, made that the default #

Patch Set 8 : linux warning #

Patch Set 9 : cleaning up the code for skia landing proposal #

Patch Set 10 : clean up use of filter quality flags #

Total comments: 12

Patch Set 11 : Changes from mike to remove dependencies on std C++ library #

Total comments: 10

Patch Set 12 : Nits from stephen white #

Patch Set 13 : avoid using any #defines related to SSE by incorporating padding into the function pointer structure #

Total comments: 10

Patch Set 14 : fixing warnings on 10.6 #

Patch Set 15 : Mike style nits #

Total comments: 1

Patch Set 16 : move forward declaration closer to its use #

Patch Set 17 : camel case and if-statement braces #

Unified diffs Side-by-side diffs Delta from patch set Stats (+1691 lines, -267 lines) Patch
M gm/downsamplebitmap.cpp View 1 chunk +1 line, -1 line 0 comments Download
M gyp/core.gypi View 1 2 3 4 5 6 7 8 9 10 11 12 13 2 chunks +4 lines, -0 lines 0 comments Download
M include/core/SkBitmap.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 chunk +1 line, -13 lines 0 comments Download
M src/core/SkBitmapFilter.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 2 chunks +38 lines, -18 lines 0 comments Download
M src/core/SkBitmapFilter.cpp View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 3 chunks +16 lines, -211 lines 0 comments Download
M src/core/SkBitmapProcState.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 5 chunks +10 lines, -4 lines 0 comments Download
M src/core/SkBitmapProcState.cpp View 1 2 3 4 5 6 7 8 9 10 11 12 13 3 chunks +40 lines, -17 lines 0 comments Download
A src/core/SkBitmapScaler.h View 1 2 3 4 5 6 7 8 1 chunk +106 lines, -0 lines 0 comments Download
A src/core/SkBitmapScaler.cpp View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 chunk +315 lines, -0 lines 0 comments Download
A src/core/SkConvolver.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 chunk +203 lines, -0 lines 0 comments Download
A src/core/SkConvolver.cpp View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 chunk +473 lines, -0 lines 0 comments Download
M src/opts/SkBitmapFilter_opts_SSE2.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 chunk +17 lines, -0 lines 0 comments Download
M src/opts/SkBitmapFilter_opts_SSE2.cpp View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 2 chunks +454 lines, -0 lines 0 comments Download
M src/opts/SkBitmapProcState_opts_none.cpp View 1 1 chunk +3 lines, -0 lines 0 comments Download
M src/opts/opts_check_SSE2.cpp View 1 2 3 4 5 6 7 8 9 10 11 12 2 chunks +10 lines, -3 lines 0 comments Download

Messages

Total messages: 18 (0 generated)
humper
7 years, 5 months ago (2013-07-16 05:26:02 UTC) #1
humper
On 2013/07/16 05:26:02, humper wrote: Don't pay too much attention to this CL, this is ...
7 years, 5 months ago (2013-07-17 05:11:16 UTC) #2
reed1
SkBitmap.cpp is already pretty big. Maybe we should split out a helper .cpp file to ...
7 years, 5 months ago (2013-07-17 19:25:31 UTC) #3
ernstm
I verified that it works in Chrome on Linux. Image quality and resampling performance are ...
7 years, 5 months ago (2013-07-18 00:33:47 UTC) #4
humper
On 2013/07/17 19:25:31, reed1 wrote: > SkBitmap.cpp is already pretty big. Maybe we should split ...
7 years, 5 months ago (2013-07-18 00:35:42 UTC) #5
reed1
Are there image differences w/ this change? (gm or layout-tests) https://codereview.chromium.org/19335002/diff/20002/include/core/SkBitmap.h File include/core/SkBitmap.h (right): https://codereview.chromium.org/19335002/diff/20002/include/core/SkBitmap.h#newcode708 ...
7 years, 5 months ago (2013-07-18 13:42:12 UTC) #6
humper
https://codereview.chromium.org/19335002/diff/20002/include/core/SkBitmap.h File include/core/SkBitmap.h (right): https://codereview.chromium.org/19335002/diff/20002/include/core/SkBitmap.h#newcode708 include/core/SkBitmap.h:708: static void scale( const SkBitmap *src, SkBitmap *dst ); ...
7 years, 5 months ago (2013-07-18 17:11:04 UTC) #7
Stephen White
https://codereview.chromium.org/19335002/diff/31001/include/core/SkBitmap.h File include/core/SkBitmap.h (right): https://codereview.chromium.org/19335002/diff/31001/include/core/SkBitmap.h#newcode26 include/core/SkBitmap.h:26: class SkConvolutionProcs; Are these necessary? They don't seem to ...
7 years, 5 months ago (2013-07-18 17:39:45 UTC) #8
humper
https://codereview.chromium.org/19335002/diff/31001/include/core/SkBitmap.h File include/core/SkBitmap.h (right): https://codereview.chromium.org/19335002/diff/31001/include/core/SkBitmap.h#newcode26 include/core/SkBitmap.h:26: class SkConvolutionProcs; On 2013/07/18 17:39:45, Stephen White wrote: > ...
7 years, 5 months ago (2013-07-18 18:15:45 UTC) #9
reed1
Lots of new (to skia) code. Is this easily disabled in case we find a ...
7 years, 5 months ago (2013-07-19 17:47:23 UTC) #10
humper
On 2013/07/19 17:47:23, reed1 wrote: > Lots of new (to skia) code. Is this easily ...
7 years, 5 months ago (2013-07-19 18:08:00 UTC) #11
humper
https://codereview.chromium.org/19335002/diff/40001/include/core/SkBitmap.h File include/core/SkBitmap.h (right): https://codereview.chromium.org/19335002/diff/40001/include/core/SkBitmap.h#newcode25 include/core/SkBitmap.h:25: class SkConvolutionProcs; On 2013/07/19 17:47:23, reed1 wrote: > Why ...
7 years, 5 months ago (2013-07-19 18:08:06 UTC) #12
reed1
On 2013/07/19 18:08:06, humper wrote: > https://codereview.chromium.org/19335002/diff/40001/include/core/SkBitmap.h > File include/core/SkBitmap.h (right): > > https://codereview.chromium.org/19335002/diff/40001/include/core/SkBitmap.h#newcode25 > ...
7 years, 5 months ago (2013-07-19 18:14:42 UTC) #13
humper
On 2013/07/19 18:14:42, reed1 wrote: > On 2013/07/19 18:08:06, humper wrote: > > https://codereview.chromium.org/19335002/diff/40001/include/core/SkBitmap.h > ...
7 years, 5 months ago (2013-07-19 18:30:28 UTC) #14
reed1
Assuming we have some idea of the GM-rebaseline impact, lgtm, with a request for a ...
7 years, 5 months ago (2013-07-19 18:39:05 UTC) #15
humper
On 2013/07/19 18:39:05, reed1 wrote: > Assuming we have some idea of the GM-rebaseline impact, ...
7 years, 5 months ago (2013-07-19 18:49:15 UTC) #16
reed1
On 2013/07/19 18:49:15, humper wrote: > On 2013/07/19 18:39:05, reed1 wrote: > > Assuming we ...
7 years, 5 months ago (2013-07-19 19:08:01 UTC) #17
humper
7 years, 5 months ago (2013-07-19 20:20:15 UTC) #18
Message was sent while issue was closed.
Committed patchset #17 manually as r10206.

Powered by Google App Engine
This is Rietveld 408576698