Q:

Efficient way to implement animation from spritesheet?

I'm actually trying to port a GBA game to SDL for educationnal purpose. 
The game has many sprites and tiles. Since the GBA screen size is 240x160px, I decided to scale it 2x. At first, it went okay creating spritesheet for animations, because typical animations had something around 2-8 frames. 
However, I faced yesterday a problem that I had not seen coming. I got a 89-frame animation. Including the scale, each frame is around 480x320px. With 89 frames, it creates a huge image. 
When I load it into a SDL_Texture with IMG_LoadTexture, the size of the test program goes from ~9MB to 56MB. I find this huge considering the image weights at most 4MB (without compression, PNG-32 bits I believe). No matter what compression I do, it still takes ~50MB. 
Here's the code that loads the image:
m_frameDestRect = { 0, 0, 480, 320 }; 
m_frameSrcRect = { 0, 0, 480, 320 };
m_pTexSprite = IMG_LoadTexture(pRenderer, "image.png");

I keep the SDL_Texture in a SDL_Texture* property of my class. It also never change. 
Here's the code that "draws" the texture:
SDL_RenderCopy(m_pRenderer, m_pTexSprite, &m_frameSrcRect, &m_frameDestRect);

Here's the code that "update" the frame:
uint32_t frameX = (m_frame + 1) % 5;
uint32_t col = (m_frame + 1) / 5;

m_frameSrcRect = { frameX * 480, col * 320, 480, 320 };

I could live with that, but then I saw that I got an animation that has 489 frames...  
Since I am no expert in video games programming, nor in imaging, I came here to ask this very question. 
1. Is the RAM consumption of SDL_Texture (and whatever loaded behind) normal ?
2. Animation wise, are there other ways to implement them?
I find it totally impressive all these sprites (got tons of them, in gif formats) actually loaded quite smoothly on the GBA, considering the number of frames. 
Any advice / solutions / answers is more than welcomed. 
Thanks 

A:

Just remember that unless you are using gpu compression (Which PNGs don't support), all of your images will be uncompressed in ram.
Also, your animation seems pretty standard. Remember that as long as everything fits into ram, you're only drawing what you see so performance shouldn't be an issue

