summaryrefslogtreecommitdiffstats
path: root/chalk/doc/large_files
diff options
context:
space:
mode:
authortpearson <tpearson@283d02a7-25f6-0310-bc7c-ecb5cbfe19da>2011-06-26 00:41:16 +0000
committertpearson <tpearson@283d02a7-25f6-0310-bc7c-ecb5cbfe19da>2011-06-26 00:41:16 +0000
commit698569f8428ca088f764d704034a1330517b98c0 (patch)
treebf45be6946ebbbee9cce5a5bcf838f4c952d87e6 /chalk/doc/large_files
parent2785103a6bd4de55bd26d79e34d0fdd4b329a73a (diff)
downloadkoffice-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_files36
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.
+