After copying all the pixels to int[], I iterate over the int array
and check if each element satisfies a condition. I tried optimizing
the code by removing as many floating point operations and divisions
as possible. This has helped me reduced the time further by approx 5
seconds.

On Apr 2, 4:02 am, tomgibara <[EMAIL PROTECTED]> wrote:
> Doing pixel-level processing in within the Dalvik VM will necessarily
> incur the overhead of copying the pixel data into the VM heap. As
> others have suggested, this needs be done to gain fast access to the
> pixel data.
>
> But I doubt that this is the bottleneck, it's certainly the
> interpreted nature of the Dalvik VM. There's a useful detailed post
> about the overhead here:
>
> http://groups.google.com/group/android-developers/browse_frm/thread/6...
>
> If my understanding is correct, this means that an operation like an
> integer add costs 1 CPU cycle, but the VM adds an overhead of
> approximately 20 cycles to every instruction, so code which has a
> performs a large number of fast operations (such as image processing)
> is going to be very badly penalized.
>
> To put this more clearly, lets hypothesize that a method call takes 20
> CPU cycles (I've plucked that figure out of mid-air) then the
> interpreter overhead means that an integer add is only twice as fast
> as a method call. This is going to skew performance characteristics
> dramatically away from the norms that developers expect.
>
> But I think there are reasons to be hopeful. In this post, Dan Morrill
> indicates that "a just-in-time compiler is definitely on the Dalvik
> roadmap":
>
> http://groups.google.com/group/android-developers/browse_frm/thread/c...
>
> I don't know where on the roadmap, that might be. Also the potential
> benefits of a JIT are probably very difficult to prejudge (due to
> issues that are beyond my experience, such as cache considerations).
> Nevertheless I did a very quick analysis using the data here:
>
> http://shootout.alioth.debian.org/
>
> I compared, Sun's interpreter against Sun's hotspot compiler and chose
> the median of the execution-time ratios. This (totally ridiculous)
> procedure gave me a figure of about 8x speed improvement (of course
> this figure will differ dramatically based on the application and many
> other factors). It was just a very quick way to get an estimate
> without actually needing to write an AOT or JIT compiler which would
> be the only reliable way.
>
> I've gone a bit off topic, but I just thought some background might
> help.
>
> Tom.
>
> On Mar 30, 12:19 pm, saurabh <[EMAIL PROTECTED]> wrote:
>
> > Hi,
>
> > I am working on an image processing application. The job is simple:
>
> > 1. read an image into aBitmapobject A,
> > 2. create a newBitmapobject B of the same dimensions,
> > 3. iterate overBitmapA examining each pixel and copying it to B if
> > it satisfies some conditions,
> > 4. displayBitmapB using ImageView.
>
> > The trouble is that though the application is working correctly, it is
> > tooslowto use. For a JPEG image of 547x450 resolution, the
> > application takes 66 seconds to produce the final output. The getPixel
> > function seems to be taking approx 1/100 of a second. Similarly,
> > checking whether each pixel satisfies the condition and then copying
> > it toBitmapB also takes approx 1/100 second. Therefore, performing
> > these 2 operations for 547*450 = 246150 pixels takes a lot of time. Is
> > there any way to do this faster? I hope to use this for processing
> > each frame of a video in real-time. So, processing each picture must
> > not take more than a 1/20 of a second.
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[EMAIL PROTECTED]
Announcing the new M5 SDK!
http://android-developers.blogspot.com/2008/02/android-sdk-m5-rc14-now-available.html
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to