We recently had a discussion in a ticket on Baba (Allow user to choose image resolution and compression quality (#233) · Issues · Alexis Lecanu / Baba · GitLab) regarding whether Baba should offer taking images at reduced resolution.
Right now, Baba has options to select the aspect ratio and the capture rate, but will always shoot at the highest resolution reported by the camera for that aspect ratio. Some phones have issues keeping up, as they take several seconds to process and store a single image.
I suggested an option to choose a lower resolution. The maintainers are not really in favor of such an option but ultimately suggested initiating a discussion there to get the community opinion.
The maintainers’ points are essentially:
- They don’t want to overload the app with an excessive amount of features.
- Resources are limited and they already have difficulties keeping up with the amount of feature requests they’re getting.
- Photos submitted to Panoramax should be of the highest possible quality.
- If the device can’t keep up, or if storage size is an issue, the interval should be increased rather than reducing the resolution.
- If reduced resolution does get offered as an option, it should be highly discouraged.
My points in favor of offering lower resolutions are:
- While I agree that we don’t want a fat-and-dirty app, choosing resolution is a fairly basic functionality in any camera app (and much of Baba’s functionality is essentially that of a camera app).
- Some devices start misbehaving (e.g. images being over- or underexposed when the CPU is constantly at 100%), and the result is no usable imagery at all. In this case, lower resolution is the lesser evil if it’s the only alternative to not having usable imagery.
- Increasing the interval will also result in loss of detail, especially at higher speeds (e.g. motorway). At an interval of 2–3 seconds, photos would be some 50–100 m apart at motorway speeds. That may already be too much for some use cases (e.g. reading hectometer markers), and at this interval, Panoramax already starts chopping up sequences during rendering, so you’ll want to stay below that. Some devices can’t do intervals below 5–6 seconds at full resolution.
- Camera optics are not necessarily up to the task of shooting at higher resolution (but device manufacturers love to advertise lots of megapixels). This depends on the camera, but where this is the case, shooting at full resolution just takes up unnecessary storage space – shooting at reduced resolution and interpolating will give an equivalent result.
- Lower resolution images take up less space, which may be an important consideration as the Panoramax use case is quite storage-hungry, and the maintainers of the OSM-FR instance have already indicated that they are approaching their capacity limits.
- Storage space is also a consideration for users who cannot or do not want to upload images before the sequence is finished. When going on a road trip with such constraints, we need to fit an entire day’s worth of material (up to 10 hours and more) on the device before we can upload it or move it to the laptop at the end of the day.
Personally, I know the resolution/frequency dilemma quite well. I’ve done plenty of mapping that involved reading kilometric points from highway delineators in Poland. You’ll need a certain resolution, else the distance will not be legible. Same goes if you’re too far away from the delineator, so you want a capture interval that ensures you capture each delineator more than once (no more than 1–2 seconds at expressway speeds). Usable imagery usually falls into one of two categories: either someone captured a sequence using a dashcam with a high resolution and frame rate, or, for sequences taken with a smartphone, you have to be lucky that the picture of the delineator was taken just at the right moment.
So, what’s the take of the community on this issue? Should resolution be configurable in Baba?