1

Pretty new to Blender - I'm having difficulty wrapping my head around how Blender caches image sequences. I have a 355MB jpeg sequence which I am trying to Prefetch and do a camera track on. Somehow Blender is turning this 355MB sequence into over 20GB of cache when I attempt to prefetch the frames. There is nothing else in my outliner.

I've got 32 GB of RAM on my machine, I've set my Memory Cache Limit to 16GB in the system settings under Video Sequencer.

Why is Blender taking up so much RAM for such a small sequence? Is there a setting somewhere I'm missing?

Thanks for any advice you have!

CG7Son
  • 11
  • 1
  • i'm no expert but that sounds about right. jpeg is compressed to take little space on disk but needs to be uncompressed when loaded in ram. To check i just opened a 316Kb jpeg image in gimp and that takes 27Mb of ram – pevinkinel Sep 21 '20 at 23:45
  • Gotcha - thanks for the reply. Do you have any suggestions for the best way to process an image sequence so Blender can cache the whole thing? – CG7Son Sep 21 '20 at 23:54
  • i really don't know, but you could try: splitting in smaller sequences; batch lowering the images resolution (swapping back for high res later); see if a video file prefetches better; up the system limit and live with it; just let blender manage what to load by itself, you'll get choppy playback but tracking works the same – pevinkinel Sep 22 '20 at 00:21

1 Answers1

3

If you are tracking, you need the whole sequence and at full resolution (which conveniently you didn't mention... HD, 4k?).

Something to understand is that, even if your images are compressed as jpgs, blender will de-compress them to be able to use them, so multiply the number of horizontal pixels by the number of vertical pixels, then multiply that by 8(8 bit per pixel), and that number by 3 (Red, Green, Blue), and then by the number of frames, and that is the real memory usage.

Read: Why does Blender use so much memory for large textures?.

Also, not being able to cache the whole sequence is not a problem, as accessing jpegs is not very resource intensive. As long as you have enough resources to read the current frame you are fine.

What really matters is that you have enough RAM left to compute the solve information. So don't use all of your memory in the cache, and leave enough for whatever processing you need to do afterwards.

susu
  • 14,002
  • 3
  • 25
  • 48
  • What about using proxy instead of real data footage? I've noticed that it is included in video editing panel but never use that before. And it seems to be able to choose proxy resolution to 25%, 50% 75% and 100%. – HikariTW Sep 22 '20 at 02:37
  • 5
    @HikariTW No, you shouldn't use proxies for tracking, it will lower the accuracy. – no-can-do Sep 22 '20 at 03:27