wp8 QRCodeMultiReader - Best Performance Reads

Apr 28, 2014 at 2:17 AM
First and always: Great work.

I'm trying the squeeze the fastest scans possible out of the lib as I have 1 augmented reality scenario that I want to simply overlay data on the QR code during recognition.

I'm using the QRCodeMultiReader function. But I'm still using the timer based approach to processing the PhotoCaptureDevice stream. I've seen some reference to a newer approach that doesn't use the timer model but haven't found it in the samples.

I'm probably just missing something.

Lastly any other tips to max performance?

Apr 28, 2014 at 9:40 PM
Please take a look at the current WP8 demo:
The important code is in the class CaptureViewModel.cs
It uses the preview buffer with the luminance values directly if a preview frame is available. It doesn't use a timer.
It tries to detect the best available preview resolution.
It's the fastest way I know at the moment (without using some other tricks with a more native implementation in C(++)).
Apr 29, 2014 at 2:48 AM

Thanks for the response.

So just some results of my un official test.
  • Using the timer approach with the QRCodeMutliReader has the fastest recognition as well as the highest recognition rate (Recognition rate is the number of tags resolved per second)
  • The WindowsPhone8Demo sample app has the slowest recognition rate when run "as is"
  • The WindowsPhone8Demo sample modified to use the QRCodeMultiReader performs better than the "as is" app but that would be expected as the code no longer requires recognition of other barcode types. However it is not as fast as the time based sampling model.
Have I missed something?
Is there some MAJOR issue with the time approach, besides being old school, that would make the new samples model preferred?
Are my results unexpected?

Thanks again!
May 5, 2014 at 7:30 PM
It's a little bit unexpected.
Only one thing is clear. It has to be faster to scan only for one type of barcode than for all supported ones.
But I can't check the timer based version against the current demo version because I have no physical device.
So you can go with your timer based solution if it works for you.