OSDN Git Service

Performance increase in thumbnail handling
authorPosselwhite <christopher.posselwhite@sonyericsson.com>
Tue, 21 Jun 2011 10:41:01 +0000 (12:41 +0200)
committerJohan Redestig <johan.redestig@sonymobile.com>
Tue, 4 Dec 2012 08:48:02 +0000 (09:48 +0100)
Allow for 160*120 thumbnails which is what cameras commonly
generates. The constants for the micro thumbnail were set to other
values, resulting in recalculations of the thumbnais, which
takes time.

This change only affects the maximum size of the temporary image,
when choosing whether to use the EXIF thumbnail or decoding and
downsampling the full image. Without this change, it will choose
an x16 downsampling of the full image over an x2 downsampling of
the EXIF thumbnail, after the change it will prefer the EXIF
thumbnail.

Cf the DCF specifications at http://www.exif.org/dcf.PDF,
"3.3.6. DCF basic thumbnail data structure, (C) Pixel count"

Tested by running DDMS and measuring the time required to create
a thumbnail. This was 220-280 ms prior to change, < 20 ms after.

Change-Id: I59c753493f947e920bad3fde5eeed5d49d509863

media/java/android/media/ThumbnailUtils.java

index 8eb9332..756638c 100644 (file)
@@ -48,7 +48,7 @@ public class ThumbnailUtils {
 
     /* Maximum pixels size for created bitmap. */
     private static final int MAX_NUM_PIXELS_THUMBNAIL = 512 * 384;
-    private static final int MAX_NUM_PIXELS_MICRO_THUMBNAIL = 128 * 128;
+    private static final int MAX_NUM_PIXELS_MICRO_THUMBNAIL = 160 * 120;
     private static final int UNCONSTRAINED = -1;
 
     /* Options used internally. */