How to display a large image with a small SRAM


I want to ask how to display a large image using a small SRAM in the MCU?

My MCU has only 100K of SRAM, but I want to display a 320x240 image (in RGB565 format). I need a full-screen buffer of 320x240x2/1024=150K, so I have to define a full screen buffer of 150K size(or other definitions, but the size should be 150K).
For example,
unsigned short get_pics[320*240];

Unfortunately, this is far beyond the SRAM of my MCU.

So in this case, how can I display a 150K image with 100K RAM?

The only way I can think of is to divide 150K into three equal parts, and transmit one-third of the data each time, for a total of three transmissions. That is, I only need to define an array of unsigned short get_pics[320*240/3]; and then combine the three times of data into a complete image.

But I haven’t seen any API function that can achieve this function.
Or is there any other better way to achieve this function?

What MCU/Processor/Board and compiler are you using?

AT32+Keil v5.38

What LVGL version are you using?

LVGL v8.3.10

What do you want to achieve?

I want to refresh a large image with a small SRAM

What have you tried so far?

I haven’t got any clue, so I haven’t tried anything so far

Code to reproduce

Not for the moment

Screenshot and/or video

Not for the moment