We're currently using an i.MX 8M Nano to capture 10 bit raw bayer from a CSI MIPI sensor. This is working as expected.
Besides the GPU/Soft-ISP - Does the i.MX 8M Nano have any hardware capability to convert from RAW10 to RAW8?
Solved! Go to Solution.
Thanks for the quick reply. I suspected this would be the answer.
Do you think it's feasible to use the SDMA to perform this type of operation?
The SDMA can only perform very basic arithmetic operations like add, sub and bit shift (but no multiply nor division). Is this enough for converting between the RAW formats?
The SDMA is not a DSP, so even if this operation is possible, it would probably make no sense. The SDMA is typically clocked with 66 or 133 MHz, which is much slower than the ARM CPU(s).
The SDMA is mainly useful for:
- reducing interrupts on the CPU(s)
- ensure continuous flow of data
In some cases the SDMA may pre-/post-process data while copying between RAM and peripheral. But this will not increase overall performance in most cases.
Thanks for your responses.
The 10bit RAW format is packed into 16bits leaving some unused bits. To convert from 10bits to 8bits we simply need to drop alternating bytes (to drop the 2 least significant bits). I suspect the SDMA can do this. The goal here really is to reduce load on the CPU.
It seems the the CSC allows for colour space conversion - whilst this doesn't do 10bit to 8bits, it does allow you to specify your own coefficients. Depending on assumptions I've made about how the CSC handles YUV, it may be possible to do this via a YUV422 to RGB565 conversion - though I'm sure there is probably something I've missed.
In any case we may have now found a way for our camera sensor to output 8bits avoiding the need for the above.