Should apps offer taking photos at reduced resolution?

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?

1 Like

Your concluding “resolution be configurable” doesn’t seem the same question as the title “offer taking photos at reduced resolution”. I thought the latter means the app will suggest a lower res to use.
The former is always yes. It’s ultimately user’s choice and freedom. Having some is better than none. Only need to warn the users for lower res, and describe what’s visible at what distance for what each res is good for.

I think offering a lower resolution option makes sense, even if it is not the default setting.

For many contributors, the biggest challenge is not image quality but keeping a stable capture rate while moving. If a device struggles to process full-resolution photos every second, increasing the interval can create larger gaps between images and important details may be missed. In some mapping situations, having more frequent photos at a slightly lower resolution can be more useful than having fewer high-resolution photos.

I agree that full resolution should remain the recommended choice, especially for long-term archival value. However, different devices have different limitations, and giving users some flexibility could help collect usable imagery from phones that otherwise cannot keep up with the workload.

A simple advanced setting with a clear recommendation for maximum quality might be a reasonable compromise.

Jusking pondering. Does that mean perhaps the app should use jpeg xl / heic to get maximum benefit from the lower resolution?

Something I thought about is increasing compression. But if it increases system load, it worsens the topic.

I’ve also done some tests with generic camera apps, and when it comes to maximizing capture rate on a weak device, you need to dial in the compression factor. Too aggressive means more processor time, too weak means more data to write to persistent storage, both of which decrease performance. You need to find the sweet spot in between. And even then you may still be far from being able to capture one image per second, at least at full resolution. We’re also not talking about storage constraints yet.

JPEG XL and HEIC may suffer from the same dilemma on devices which are constrained in terms of both storage space and processing power.