Compression design
Boudewijn Rempt
boud at valdyas.org
Mon Nov 27 17:29:33 CET 2006
For documentation purposes, here's what I'm trying to implement for the
compressed tile experiment:
* A thread, KisTileCompressor that takes tiles from a queue and compresses
them in the background
* The data for the compressed state of a tile is special allocated
* The data for the uncompressed state of a tile is taken from the pool
* KisTile will get three states: compressed, uncompressed and queued for
compression.
* As soon as the last reader is is removed, a tile is queued for compression
* If a reader is added to the tile before the tile is compressed, it is
dequeued and nothing happens.
* If a reader is added to a compressed tile, it is decompressed
* Only compressed tiles are written out to swap
(In this scheme, therefore, all tiles may get compressed, not just the tiles
in the undo swap -- I want to see what this does for interactive speed, so
I'm pursuing the most agressive option first.)
Note: it would have been handy if we had used a QByteArray instead of a plain
char * array.
--
Boudewijn Rempt
http://www.valdyas.org/fading/index.cgi
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
Url : http://mail.kde.org/pipermail/kimageshop/attachments/20061127/3efb1341/attachment.pgp
More information about the kimageshop
mailing list