GSoC 2012 Multithreading ajreddy: Difference between revisions
No edit summary |
No edit summary |
||
Line 12: | Line 12: | ||
==Problem Description :== | ==Problem Description :== | ||
As the loading of images and their conversion to low resolution consumes a lot of time, the image cache helps to massively speed up the loading of images that have been previously loaded under the same conditions. It will also speed up operations like undoing or redoing image effects.The image cache was designed to be accessible simultaneously by multiple instances of Scribus. So we can implement generating image previews with MultiThreading. | |||
A worker thread will be written which generates the preview for the images using QtConcurrent to make use of multicore Cpu's. | |||
A render thread will be written which uses a dummy or previous version of image until cache is ready. | |||
==Implementation Details :== | ==Implementation Details :== | ||
Line 27: | Line 30: | ||
3) image effects | 3) image effects | ||
Remaining things i will try to complete after gsoc one by one. | |||
==Timeline :== | ==Timeline :== | ||
Line 39: | Line 42: | ||
fixing bugs, and also on some of the specific projects i am interested in. | fixing bugs, and also on some of the specific projects i am interested in. | ||
Speeding up Scribus | '''Speeding up Scribus''' | ||
Using Multithreading. http://wiki.scribus.net/canvas/Multitherad_%28Project%29 | Using Multithreading. http://wiki.scribus.net/canvas/Multitherad_%28Project%29 | ||
I would like to use Qtconcurrent for the multithreading. | I would like to use Qtconcurrent for the multithreading. | ||
relayouting whole document after doc->invalidateAll | * relayouting whole document after doc->invalidateAll | ||
relayouting visible area in low zoom level (multiple pages visible) | * relayouting visible area in low zoom level (multiple pages visible) | ||
search&replace for whole document & updating markers | * search&replace for whole document & updating markers | ||
==Biography :== | ==Biography :== |
Revision as of 21:53, 7 April 2012
GSoC 2012 Project : Rendering and Multithreading
Email: annapareddyjanardhanreddy@gmail.com
Short description:
Scribus is a great DTP application which is used to print many magazines and books. And a lot of these books contain many images. But loading of books/document for the first time takes much time. Reloading time of documents takes reasonable time (It gets the images from the cache). Moreover toggle from display to other modes is also slow. The idea of this project is to prepare preview images using multithreading. The idea is to fill the cache by worker threads and let the render thread use a dummy or previous version of the image.
Success Stories: http://wiki.scribus.net/canvas/Category:Success_Stories
Problem Description :
As the loading of images and their conversion to low resolution consumes a lot of time, the image cache helps to massively speed up the loading of images that have been previously loaded under the same conditions. It will also speed up operations like undoing or redoing image effects.The image cache was designed to be accessible simultaneously by multiple instances of Scribus. So we can implement generating image previews with MultiThreading.
A worker thread will be written which generates the preview for the images using QtConcurrent to make use of multicore Cpu's. A render thread will be written which uses a dummy or previous version of image until cache is ready.
Implementation Details :
Contingency :
This project might be completed before gsoc. Then i will start implementing the following features using multithreading
1) DocumentChecker (specialy for checking for issues in text frames)
2) output/printing
3) image effects
Remaining things i will try to complete after gsoc one by one.
Timeline :
After GSOC :
I am highly motivated and interested in working for Scribus even after GSoC. I will continue working with the Scribus team, fixing bugs, and also on some of the specific projects i am interested in.
Speeding up Scribus Using Multithreading. http://wiki.scribus.net/canvas/Multitherad_%28Project%29 I would like to use Qtconcurrent for the multithreading. * relayouting whole document after doc->invalidateAll * relayouting visible area in low zoom level (multiple pages visible) * search&replace for whole document & updating markers
Biography :
I am Janardhan Reddy, second year Undergraduate Student in Computer Science from Vijayawada, India.
I study at Indian Institute of Technology Madras, one of the most prestigious institutions in the Engineering field in India.
I have a sound knowledge and experience in C++ ,kde and Qt. I have submitted 8-10 patches in dolphin in kde and got them committed.
I have already ported kipi plugins in kde to use threadweaver (kde counterpart of QtConcurrent) for parallel processing. I have also implemented a base class through which kipi plugins can take advantage of multi core cpu's. (All one needs to do is to subclass this class)
I have also contributed for Yakuake
Contact Information :
Student : Janardhan Reddy A
Email ID : annapareddyjanardhanreddy@gmail.com
Freenode irc nick : Janardhan
Location : Vijayawada, India ( UTC + 530 )