Using a CLUT with LTDC to reduce framebuffer size
Hello,
I'm in the process of choosing a STM32 and determining whether an external SRAM/SDRAM is really needed for my application or not.
The microcontroller will receive frames of pixels from a camera through SPI in L8 format (i.e 8bit grayscale images), and will have the main task of streaming these in RGB888 using the LTDC peripheral to another chip. A full RGB888 frame (= 24bpp) won't fit in the RAM of any STM32 because I'm working with 800x600 resolution. But there's a note at the very end of section 4.2.1 of AN4861 that had me think about the following idea: can I store the incoming 8bpp frame in the internal memory (800 x 600 x 1B = 480 kB so it fits if I have 512kB or even 1MB of RAM), and then have the CLUT generate the 24bpp frame without storing it at all, i.e with the LTDC directly outputting it as it is created?
The reference manual for STM32F6xxx/STM32F7xxx (for example) seems to say it is not possible, as the CLUT, which is part of the DMA2D, is applied during a memory-to-memory transfer (if I get it right), so I would need 2 framebuffers: 1 for the 8bpp frame and 1 for the 24bpp frame, and that won't fit in the internal RAM.
But then I don't understand the mentioned note of AN4861: how could using a CLUT decrease the required framebuffer size?
Thank you for your help
