I'm obviously very happy that I'll spend this
summer winter working on a new feature to Okular. I already did a small contribution to the project about a month ago (in fact it was my first contribution to KDE and I felt so awesome after seeing my name on the commit list).
So, what's the deal?
Okular currently renders the entire page of a document at once and stores the full rasterized image into memory. This can lead to a lot of memory consumption at higher zoom levels therefore you can only zoom up to 400%.
What I'll do is a tile-based approach to page rendering so only the region of interest will be rendered and saved into memory. Also I have to make sure old tiles will be evicted from memory and new tiles will be rendered when the viewport moves (or the zoom factor changes).
If you're curious about detailed information of my project, feel free to read my proposal or ask any questions in the comments section below. Certainly this will change during the coding period so new ideas are always welcome.