Simulscan Processing Thread

SimulScan takes a few seconds to process my YUV image into a .png saved to file and a barcode string.  Currently, I am not applying OCR at all, so I expect the time required will only increase once I get my OCR templates set up.


My use case goes directly from capturing an image to reviewing the returned data, so I originally decided that offloading the image processing to a separate thread was unnecessary.  However, my indeterminate progress bar freezes while the image is processing!


I've tried out a few ideas for processing the image in a separate thread using AsyncTasks or IntentServices, but my implementations seem to get too complicated for the task at hand.  I'm inexperienced in multi-threading, so I would like a bit of guidance in the best way to handle image processing (with eventual OCR as well) off of the main UI thread.


Additionally, my client wants to store his documents in .TIFF, which Android does not support.  I've been looking into pulling the gray-scale data out of the YUV NV21 byte stream and building my own .TIFF files from there.  If there is already a solution out there, I'd love to know!