Comments (13)
I don't believe EV has to be measured in particular increments. We simply specify it from -10 to +10, giving a finer grained measure than, for example, 3rds, or halves. You can assume (I think) that -10 would be, for example, max -ve on a actual camera (independent on whether the camera is set up for EV increments in 1/3rds or 1/2's), and +10 will be the max positive EV.
from userland.
The definition of Ev is that an increment of 1 corresponds to 1 stop.
For example, if you want to lower ISO from 400 to 100 (-2 stops) and have a correct exposure you would have to compensate with Ev +2, which ought to increase exposure time by 2 stops since aperture is fixed.
So the question is, does the camera use a conventional exposure calculation internally, and there is some evidence that it does.
from userland.
The camera code need to be suitable for multiple customer, who often require different EV increments. My DSLR allows you to specify the increment. This means that the range needs to be fine grained enough to cope with that. So our -10 to +10 corresponds, I think, to to -3 to +3 stops. I'll need to double check the code.
from userland.
The command-line/MMAL value for EV is counting in 1/6ths of a stop. Therefore ev=6 would be +1 stop. The range is up to +/- 24, or +/- 4 stops.
I would update the API, that would break any app that is expecting the current behaviour.
(I can switch MMAL to take either an int32 or a MMAL_RATIONAL_T, as the difference can be deduced by the different size of the parameter structure - I'll add it to the to-do list, but it won't change raspistill).
from userland.
Ah, sounds like this might be related to an issue I've run across in picamera before: waveform80/picamera#71 - when setting certain +ve EV values, if you subsequently query the EV value it comes back as the value specified minus one.
However, an eagle eyed user noticed (in the linked issue) that values where %3==0, always come back correct. Sounds like there's some sort of floor rounding going on (which would explain why the -ve values always work).
from userland.
Groan. That rounding bug was fixed on our main dev branch a year ago, but never got pulled to the Pi tree. Time for another cherry-pick.
from userland.
Thanks for the info.
If you don’t want to change the range mapping, please at least document the step size of 1/6 EV in the help and the usage string of raspi{vid,still}.
from userland.
Firmware change for fixing the EV rounding has been pushed internally. It will be released when Dom does his next release cycle.
I'll leave the help text update to JamesH.
from userland.
Firmware change for fixing the EV rounding has been released with commit raspberrypi/firmware@9c7c2cd
MMAL_PARAMETER_EXPOSURE_COMP will now take either a MMAL_PARAMETER_INT32_T or MMAL_PARAMETER_RATIONAL_T, and do the appropriate thing based on the size of the parameter.
I'll leave the help text update to JamesH.
from userland.
@towolf is this still an issue?
from userland.
PR #279 now merged which adds help text stating that EV is in steps of 1/6 stop.
Please close unless you think there is something further to do.
from userland.
@towolf is this still an issue? It looks like it has been solved.
from userland.
No
from userland.
Related Issues (20)
- host_applications/linux/apps/hello_pi/hello_fft/mailbox.h: remove declaration of get_version? HOT 2
- Chromium Crash While Printing(Print Preview) HOT 1
- The `usb-modeswitch-data` package needs to be updated to ( `usb-modeswitch-data` package (2019-11-28 )) HOT 1
- [Bullseye] Add libraspberrypi0 symlinks to package HOT 10
- vcos_dummy_thread_cleanup() SEGV when attempting to call function in unloaded lib HOT 2
- vcsm_lock_cache not implemented for /dev/vcsm-cma HOT 1
- glReadPixels from a pixel buffer object yields an empty buffer
- ./buildme doesn't work HOT 7
- Unattended upgrades doesn't work HOT 1
- 64 bit builds fail to produce raspistill, raspivid etc HOT 1
- vcgencmd display_power 0 does not turn off screen after updating Raspberry Pi OS HOT 6
- Changes regarding OMX_Broadcom in arm64 vs legacy rapsbian image HOT 2
- enable USB serial gadget mode by default
- chromium-browser mishandles video playback, hanging the system HOT 2
- Invalid command line option (-roi) HOT 2
- undefined reference to `bcm_host_init' HOT 10
- Alternative of userland in Bullseye HOT 1
- Raspivid Feature Request: BT.709 Levels HOT 2
- Slow chromium-browser start with error "ERROR:network_service_instance_impl.cc(601)] Network service crashed, restarting service."
- dtoverlay: no change to one fragment's target renders `cam0` option unusable HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from userland.