- From: David Flanagan <dflanagan@mozilla.com>
- Date: Tue, 17 Dec 2013 21:36:17 -0800
- To: Rik Cabanier <cabanier@gmail.com>
- Cc: "whatwg@whatwg.org" <whatwg@whatwg.org>
On 12/17/13 8:36 PM, Rik Cabanier wrote: > Hi David, > > is there a reason why you are completely decoding the image when you > create the imageBitmap? [1] I assume that that is the intent of calling createImageBitmap() on a blob. Since JPEG decoding probably takes significantly longer than blocking on memory access, I assume that lazy decoding is not really allowed. But that misses my point. On the devices I'm concerned with I can never completely decode the image whether it is deferred or not. If I decode at full size, apps running in the background are likely to be killed because of low memory. I need the ability to do the downsampling during the decoding process, so that there is never the memory impact of holding the entire full-size image in memory. > If you detect a situation where this operation causes excessive memory > consumption, you could hold on to the compressed data URL and defer > decoding until the point where it is actually needed. > Since exhausting VM will create "undue latency", this workaround > follows the spirit of the spec. > > If you really want to have the downsampled bits in memory, you could > create a canvas and draw your image into it. I can't do that because I don't have (and cannot have) a full-size decoded image. I've got a blob that is a JPEG encoded 5 megapixel image. And I want to end up with a decoded 320x480 image. And I want to get from A to B without ever allocating 20mb and decoding the image at full size. <snip> > > 6) Finally, because image data can take up so much memory, I would > like to propose that ImageBitmap have a release() method to explicitly > free the memory that holds the decoded image when that decoded image > data is no longer needed. This gives web applications more precise > control over memory allocation without having to wait for garbage > collection. > > > There was an email thread on adding this to canvas [2], it seems > reasonable to add it to imageBitmap as well. > > 1: > http://www.whatwg.org/specs/web-apps/current-work/multipage/timers.html#dom-createimagebitmap > 2: > http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2013-July/040165.html Thanks for this link. It looks like the January message quoted in this July message is requesting exactly the same feature as I am for discarding or releasing ImageBitmaps. David
Received on Wednesday, 18 December 2013 05:36:42 UTC