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