diff options
author | tpearson <tpearson@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2011-06-26 00:41:16 +0000 |
---|---|---|
committer | tpearson <tpearson@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2011-06-26 00:41:16 +0000 |
commit | 698569f8428ca088f764d704034a1330517b98c0 (patch) | |
tree | bf45be6946ebbbee9cce5a5bcf838f4c952d87e6 /chalk/doc/large_files | |
parent | 2785103a6bd4de55bd26d79e34d0fdd4b329a73a (diff) | |
download | koffice-698569f8428ca088f764d704034a1330517b98c0.tar.gz koffice-698569f8428ca088f764d704034a1330517b98c0.zip |
Finish rebranding of Krita as Chalk
git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/applications/koffice@1238363 283d02a7-25f6-0310-bc7c-ecb5cbfe19da
Diffstat (limited to 'chalk/doc/large_files')
-rw-r--r-- | chalk/doc/large_files | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/chalk/doc/large_files b/chalk/doc/large_files new file mode 100644 index 00000000..9270bca0 --- /dev/null +++ b/chalk/doc/large_files @@ -0,0 +1,36 @@ +One think Chalk can not handle are really big files. A 125MB tif file is +loading into memory in one go, making Chalk take about 289MB of memory +-- with no image loaded, Chalk takes a more reasonable 41MB. And during +loading, Chalk needs 800MB, and that's a bit much. + +Since my employer has paid to upgrade my laptop to 1GB of memory, that's +not a problem for me :-). But it's the principle of the thing. Besides, +loading the file does take a few minutes to convert. And you don't want +to do a quick sharpen on a file of this size. + +Now it has never been a design goal to handle really enormous images, vips +does that a lot better than any general purpose paint app can ever aspire +to, but we should give some thought to our way of handling big images. + +The problem is layered: it's not enough to have lazy loading of chalk +files (although we should store, when an image gets above a certain +size, an .png file of the rendered image that we can quickly load and +display, and then we should only load the tiles we actually need for +editing/rerendering from the file), but we should also be able to do the +same with tiled tiffs and exr images that support random access loading. + +This must be done somewhere in the datamanager code. If an image reader +(whether it's a filter or Chalk's own file format reader) indicates that +it supports random access, then a file handle and a the reader object +is passed to the tile manager. + +The tile manager either does nothing until it gets a request for a +certain chunk of data (through one of the read functions or the creation +of an read/write iterator), and only then it starts reading and decoding +image data. Or, the tile manager starts a background thread and begins +converting the alien image data to Chalk tiles, carefully caching them +in a temp file. + +Maybe we could even devise an algorithm to delete unused tiles from +memory and cache them on disk; same with undo information. + |