https://wiki.panotools.org/api.php?action=feedcontributions&user=Dipak&feedformat=atomPanoTools.org Wiki - User contributions [en]2024-03-19T06:35:43ZUser contributionsMediaWiki 1.35.3https://wiki.panotools.org/index.php?title=Hugin_Speed_Test_Tab&diff=13408Hugin Speed Test Tab2011-04-19T03:59:31Z<p>Dipak: /* References */</p>
<hr />
<div>=Hugin Speed Test Tab=<br />
<br />
==Proposal==<br />
<br />
[For complete proposal please visit: http://www.google-melange.com and follow 'Hugin speed test tab']<br />
<br />
Generally performance is the key issue for any panorama stitcher and manipulation software like Hugin[1]. Also these days end user computational platforms are shifting towards tablet PCs, pads and smart phones etc. With advancement of these technologies, today, we have very diverse hardware and software specifications. In order to chose right hardware for Hugin one needs to know the performance per different hardware (with different operating systems installed). <br />
<br />
In order to know the performance of Hugin, one possible solution (as quoted on launchpad.net[2]) would be to create a system that will offer “Speed Test” tab on Hugin’s GUI. <br />
This system should automatically download the batch set of images and .pto[3] files from server and should do automated stitching tests. On successfully completion of these local tests it should upload the test results with determined hardware platform, Operating System, running process finger-printing [4], Hugin client identification (including MAC address, public IP, time-stamp etc). Then server should do analysis in detail of all the uploaded data by Hugin clients. Finally consolidated performance reports will be generated using Web-UI which will help entire community or users to choose right hardware.<br />
<br />
==Proof Of Concept (POC) system diagram== <br />
===A. Hugin Speed Test - Brief class diagram ===<br />
[[image:HuginSpeedTestClass.png|center|thumb|800px|]] <br />
<br />
====Description==== <br />
Per shown in class diagram[5], proposed system is divided into two parts namely client side Hugin speed tester and server side Hugin test results (Web). At client side, Hugin will execute tasks given by server. This task need not be same for all clients. Tasks fetched might be small, medium or large one. For example machine which has limited computation resource should not be asked to stitch batch of 20 high resolution images with size more than 20 MB per image etc. Client will be doing self screening test before fetching either small, medium or large task. Vice-versa will be applicable for clients with high computation resource. Upon completion of task(s) clients will send results to server in XML event response if there is any Internet connectivity. <br />
<br />
On server side, multi-threaded server will parse this response and will log into database per client identification. These row data will be processed by server side analytic engine to generate reports which will help community or users to choose best hardware. These reports might help for benchmarking Hugin on different platform. <br />
<br />
===B. Hugin Speed Test - Brief sequence diagram ===<br />
[[image:HuginSpeedTestSequence.png|center|thumb|800px|]] <br />
<br />
====Description====<br />
Sequence diagram[6] shows clear flow of activities across proposed system.<br />
<br />
==Plan Of Execution==<br />
{| class="wikitable"<br />
|-<br />
! Date<br />
! Plan (Life is good!)<br />
! Backup Plan (Life is bad!)<br />
|-<br />
| April 25 - May 23<br />
| <br />
* Set development environment (Already done!)<br />
* Read Wiki<br />
* Get to know community and mentors and keep tweaking proposed system specifications<br />
* Play with Hugin code-base mostly relevent to proposed task<br />
* Get ready with code snippets for later use <br />
|<br />
* Read wiki <br />
* Get to know primary mentor <br />
|-<br />
| May 23 - June 20<br />
| <br />
* Start building Hugin client core<br />
* Implement proposed client operations and try to get a initial test of proposed system<br />
* Build XML core engine at server side<br />
* Take mentors review <br />
|<br />
* At least complete Hugin client core for proposed system and only perform nominal proposed operations<br />
|-<br />
| June 20 - July 11 <br />
| <br />
* Extend batch tasks screening test cases,<br />
* Extend server side XML core to send valid XML responses upon upload of test results,<br />
* Take mentors review and prepare midterm milestone. <br />
|<br />
* On server side try to complete XML parsing. <br />
|-<br />
| July 11 - August 1 <br />
|<br />
* Focus on server side to see how does server perform when multiple Hugin clients uploads the test results, <br />
* Start working on reporting, <br />
|<br />
* Go for single threaded XML server <br />
|-<br />
| August 1 - August 15 <br />
|<br />
* Build Client and server side UI, <br />
* Update Hugin’s help file for new tab,<br />
* Write test cases and update wiki <br />
* Do server side reports tweaks if any.<br />
| <br />
* Complete client side UI. <br />
|-<br />
| August 15+ <br />
|<br />
* Start creating patches and submit to Google. <br />
* Start looking for a gift to send to mentor :P <br />
| <br />
* Try to complete most of proposed task though GSoC 11 is finished. <br />
<br />
|}<br />
<br />
==Programming languages and skills needed== <br />
C, C++, PHP, XML (library for XML parser), Bash or Shell scripting, HTML, Ajax (basic), Mysql (library api in C). <br />
<br />
==Some interesting test results ==<br />
===Test task===<br />
To stitch [[image:Chess-1.jpg|center|thumb|300px|]] and [[image:Chess-2.jpg|center|thumb|300px|]] using two different machines (Intel Core2 Duo Vs Atom ) and capture some performance points<br />
<br />
===Test result===<br />
Resultant: [[image:Chess-1-2.jpg|center|thumb|600px|]] <br />
===Overall performance[5]===<br />
====CPU usage====<br />
[[image:CPU-usage.jpg|center|thumb|800px|]]<br />
====Memory usage====<br />
[[image:Memory-usage.jpg|center|thumb|800px|]]<br />
====Disk-usage====<br />
[[image:Disk-read-usage.jpg|center|thumb|800px|]]<br />
[[image:Disk-write-usage.jpg|center|thumb|800px|]]<br />
<br />
===Test summary===<br />
These results shows that hardware configuration plays a very vital role on Hugin's performance. Fine grained performance measurement per function should help Hugin to identify the expensiveness of various operations. <br />
<br />
==References== <br />
* [1] Hugin - Panorama Photo stitcher Software, http://hugin.sourceforge.net/, 4th April 2011 <br />
* [2] Possible google summer code 2011 Hugin-task, https://blueprints.launchpad.net/hugin/+spec/speed-test-tab, 4th April 2011 <br />
* [3] Hugin file type, http://filext.com/file-extension/PTO, 4th April, 2011<br />
* [4] OS | Process finger prints detected by nmap, http://nmap.org/nmap-os-fingerprints, 4th April 2011<br />
* [5] All graphs are plotted using Gnuplot, http://www.gnuplot.info/, 16 April 2011 <br />
<br />
[[Category:Software:Platform:Linux]]<br />
[[Category:Software:Hugin]]<br />
[[Category:Community:Project]]</div>Dipakhttps://wiki.panotools.org/index.php?title=Hugin_Speed_Test_Tab&diff=13407Hugin Speed Test Tab2011-04-19T03:58:02Z<p>Dipak: /* Overall performance */</p>
<hr />
<div>=Hugin Speed Test Tab=<br />
<br />
==Proposal==<br />
<br />
[For complete proposal please visit: http://www.google-melange.com and follow 'Hugin speed test tab']<br />
<br />
Generally performance is the key issue for any panorama stitcher and manipulation software like Hugin[1]. Also these days end user computational platforms are shifting towards tablet PCs, pads and smart phones etc. With advancement of these technologies, today, we have very diverse hardware and software specifications. In order to chose right hardware for Hugin one needs to know the performance per different hardware (with different operating systems installed). <br />
<br />
In order to know the performance of Hugin, one possible solution (as quoted on launchpad.net[2]) would be to create a system that will offer “Speed Test” tab on Hugin’s GUI. <br />
This system should automatically download the batch set of images and .pto[3] files from server and should do automated stitching tests. On successfully completion of these local tests it should upload the test results with determined hardware platform, Operating System, running process finger-printing [4], Hugin client identification (including MAC address, public IP, time-stamp etc). Then server should do analysis in detail of all the uploaded data by Hugin clients. Finally consolidated performance reports will be generated using Web-UI which will help entire community or users to choose right hardware.<br />
<br />
==Proof Of Concept (POC) system diagram== <br />
===A. Hugin Speed Test - Brief class diagram ===<br />
[[image:HuginSpeedTestClass.png|center|thumb|800px|]] <br />
<br />
====Description==== <br />
Per shown in class diagram[5], proposed system is divided into two parts namely client side Hugin speed tester and server side Hugin test results (Web). At client side, Hugin will execute tasks given by server. This task need not be same for all clients. Tasks fetched might be small, medium or large one. For example machine which has limited computation resource should not be asked to stitch batch of 20 high resolution images with size more than 20 MB per image etc. Client will be doing self screening test before fetching either small, medium or large task. Vice-versa will be applicable for clients with high computation resource. Upon completion of task(s) clients will send results to server in XML event response if there is any Internet connectivity. <br />
<br />
On server side, multi-threaded server will parse this response and will log into database per client identification. These row data will be processed by server side analytic engine to generate reports which will help community or users to choose best hardware. These reports might help for benchmarking Hugin on different platform. <br />
<br />
===B. Hugin Speed Test - Brief sequence diagram ===<br />
[[image:HuginSpeedTestSequence.png|center|thumb|800px|]] <br />
<br />
====Description====<br />
Sequence diagram[6] shows clear flow of activities across proposed system.<br />
<br />
==Plan Of Execution==<br />
{| class="wikitable"<br />
|-<br />
! Date<br />
! Plan (Life is good!)<br />
! Backup Plan (Life is bad!)<br />
|-<br />
| April 25 - May 23<br />
| <br />
* Set development environment (Already done!)<br />
* Read Wiki<br />
* Get to know community and mentors and keep tweaking proposed system specifications<br />
* Play with Hugin code-base mostly relevent to proposed task<br />
* Get ready with code snippets for later use <br />
|<br />
* Read wiki <br />
* Get to know primary mentor <br />
|-<br />
| May 23 - June 20<br />
| <br />
* Start building Hugin client core<br />
* Implement proposed client operations and try to get a initial test of proposed system<br />
* Build XML core engine at server side<br />
* Take mentors review <br />
|<br />
* At least complete Hugin client core for proposed system and only perform nominal proposed operations<br />
|-<br />
| June 20 - July 11 <br />
| <br />
* Extend batch tasks screening test cases,<br />
* Extend server side XML core to send valid XML responses upon upload of test results,<br />
* Take mentors review and prepare midterm milestone. <br />
|<br />
* On server side try to complete XML parsing. <br />
|-<br />
| July 11 - August 1 <br />
|<br />
* Focus on server side to see how does server perform when multiple Hugin clients uploads the test results, <br />
* Start working on reporting, <br />
|<br />
* Go for single threaded XML server <br />
|-<br />
| August 1 - August 15 <br />
|<br />
* Build Client and server side UI, <br />
* Update Hugin’s help file for new tab,<br />
* Write test cases and update wiki <br />
* Do server side reports tweaks if any.<br />
| <br />
* Complete client side UI. <br />
|-<br />
| August 15+ <br />
|<br />
* Start creating patches and submit to Google. <br />
* Start looking for a gift to send to mentor :P <br />
| <br />
* Try to complete most of proposed task though GSoC 11 is finished. <br />
<br />
|}<br />
<br />
==Programming languages and skills needed== <br />
C, C++, PHP, XML (library for XML parser), Bash or Shell scripting, HTML, Ajax (basic), Mysql (library api in C). <br />
<br />
==Some interesting test results ==<br />
===Test task===<br />
To stitch [[image:Chess-1.jpg|center|thumb|300px|]] and [[image:Chess-2.jpg|center|thumb|300px|]] using two different machines (Intel Core2 Duo Vs Atom ) and capture some performance points<br />
<br />
===Test result===<br />
Resultant: [[image:Chess-1-2.jpg|center|thumb|600px|]] <br />
===Overall performance[5]===<br />
====CPU usage====<br />
[[image:CPU-usage.jpg|center|thumb|800px|]]<br />
====Memory usage====<br />
[[image:Memory-usage.jpg|center|thumb|800px|]]<br />
====Disk-usage====<br />
[[image:Disk-read-usage.jpg|center|thumb|800px|]]<br />
[[image:Disk-write-usage.jpg|center|thumb|800px|]]<br />
<br />
===Test summary===<br />
These results shows that hardware configuration plays a very vital role on Hugin's performance. Fine grained performance measurement per function should help Hugin to identify the expensiveness of various operations. <br />
<br />
==References== <br />
* [1] Hugin - Panorama Photo stitcher Software, http://hugin.sourceforge.net/, 4th April 2011 <br />
* [2] Possible google summer code 2011 Hugin-task, https://blueprints.launchpad.net/hugin/+spec/speed-test-tab, 4th April 2011 <br />
* [3] Hugin file type, http://filext.com/file-extension/PTO, 4th April, 2011<br />
* [4] OS | Process finger prints detected by nmap, http://nmap.org/nmap-os-fingerprints, 4th April 2011<br />
<br />
[[Category:Software:Platform:Linux]]<br />
[[Category:Software:Hugin]]<br />
[[Category:Community:Project]]</div>Dipakhttps://wiki.panotools.org/index.php?title=Hugin_Speed_Test_Tab&diff=13406Hugin Speed Test Tab2011-04-19T03:57:30Z<p>Dipak: /* Overall performance= */</p>
<hr />
<div>=Hugin Speed Test Tab=<br />
<br />
==Proposal==<br />
<br />
[For complete proposal please visit: http://www.google-melange.com and follow 'Hugin speed test tab']<br />
<br />
Generally performance is the key issue for any panorama stitcher and manipulation software like Hugin[1]. Also these days end user computational platforms are shifting towards tablet PCs, pads and smart phones etc. With advancement of these technologies, today, we have very diverse hardware and software specifications. In order to chose right hardware for Hugin one needs to know the performance per different hardware (with different operating systems installed). <br />
<br />
In order to know the performance of Hugin, one possible solution (as quoted on launchpad.net[2]) would be to create a system that will offer “Speed Test” tab on Hugin’s GUI. <br />
This system should automatically download the batch set of images and .pto[3] files from server and should do automated stitching tests. On successfully completion of these local tests it should upload the test results with determined hardware platform, Operating System, running process finger-printing [4], Hugin client identification (including MAC address, public IP, time-stamp etc). Then server should do analysis in detail of all the uploaded data by Hugin clients. Finally consolidated performance reports will be generated using Web-UI which will help entire community or users to choose right hardware.<br />
<br />
==Proof Of Concept (POC) system diagram== <br />
===A. Hugin Speed Test - Brief class diagram ===<br />
[[image:HuginSpeedTestClass.png|center|thumb|800px|]] <br />
<br />
====Description==== <br />
Per shown in class diagram[5], proposed system is divided into two parts namely client side Hugin speed tester and server side Hugin test results (Web). At client side, Hugin will execute tasks given by server. This task need not be same for all clients. Tasks fetched might be small, medium or large one. For example machine which has limited computation resource should not be asked to stitch batch of 20 high resolution images with size more than 20 MB per image etc. Client will be doing self screening test before fetching either small, medium or large task. Vice-versa will be applicable for clients with high computation resource. Upon completion of task(s) clients will send results to server in XML event response if there is any Internet connectivity. <br />
<br />
On server side, multi-threaded server will parse this response and will log into database per client identification. These row data will be processed by server side analytic engine to generate reports which will help community or users to choose best hardware. These reports might help for benchmarking Hugin on different platform. <br />
<br />
===B. Hugin Speed Test - Brief sequence diagram ===<br />
[[image:HuginSpeedTestSequence.png|center|thumb|800px|]] <br />
<br />
====Description====<br />
Sequence diagram[6] shows clear flow of activities across proposed system.<br />
<br />
==Plan Of Execution==<br />
{| class="wikitable"<br />
|-<br />
! Date<br />
! Plan (Life is good!)<br />
! Backup Plan (Life is bad!)<br />
|-<br />
| April 25 - May 23<br />
| <br />
* Set development environment (Already done!)<br />
* Read Wiki<br />
* Get to know community and mentors and keep tweaking proposed system specifications<br />
* Play with Hugin code-base mostly relevent to proposed task<br />
* Get ready with code snippets for later use <br />
|<br />
* Read wiki <br />
* Get to know primary mentor <br />
|-<br />
| May 23 - June 20<br />
| <br />
* Start building Hugin client core<br />
* Implement proposed client operations and try to get a initial test of proposed system<br />
* Build XML core engine at server side<br />
* Take mentors review <br />
|<br />
* At least complete Hugin client core for proposed system and only perform nominal proposed operations<br />
|-<br />
| June 20 - July 11 <br />
| <br />
* Extend batch tasks screening test cases,<br />
* Extend server side XML core to send valid XML responses upon upload of test results,<br />
* Take mentors review and prepare midterm milestone. <br />
|<br />
* On server side try to complete XML parsing. <br />
|-<br />
| July 11 - August 1 <br />
|<br />
* Focus on server side to see how does server perform when multiple Hugin clients uploads the test results, <br />
* Start working on reporting, <br />
|<br />
* Go for single threaded XML server <br />
|-<br />
| August 1 - August 15 <br />
|<br />
* Build Client and server side UI, <br />
* Update Hugin’s help file for new tab,<br />
* Write test cases and update wiki <br />
* Do server side reports tweaks if any.<br />
| <br />
* Complete client side UI. <br />
|-<br />
| August 15+ <br />
|<br />
* Start creating patches and submit to Google. <br />
* Start looking for a gift to send to mentor :P <br />
| <br />
* Try to complete most of proposed task though GSoC 11 is finished. <br />
<br />
|}<br />
<br />
==Programming languages and skills needed== <br />
C, C++, PHP, XML (library for XML parser), Bash or Shell scripting, HTML, Ajax (basic), Mysql (library api in C). <br />
<br />
==Some interesting test results ==<br />
===Test task===<br />
To stitch [[image:Chess-1.jpg|center|thumb|300px|]] and [[image:Chess-2.jpg|center|thumb|300px|]] using two different machines (Intel Core2 Duo Vs Atom ) and capture some performance points<br />
<br />
===Test result===<br />
Resultant: [[image:Chess-1-2.jpg|center|thumb|600px|]] <br />
===Overall performance===<br />
====CPU usage====<br />
[[image:CPU-usage.jpg|center|thumb|800px|]]<br />
====Memory usage====<br />
[[image:Memory-usage.jpg|center|thumb|800px|]]<br />
====Disk-usage====<br />
[[image:Disk-read-usage.jpg|center|thumb|800px|]]<br />
[[image:Disk-write-usage.jpg|center|thumb|800px|]]<br />
<br />
===Test summary===<br />
These results shows that hardware configuration plays a very vital role on Hugin's performance. Fine grained performance measurement per function should help Hugin to identify the expensiveness of various operations. <br />
<br />
==References== <br />
* [1] Hugin - Panorama Photo stitcher Software, http://hugin.sourceforge.net/, 4th April 2011 <br />
* [2] Possible google summer code 2011 Hugin-task, https://blueprints.launchpad.net/hugin/+spec/speed-test-tab, 4th April 2011 <br />
* [3] Hugin file type, http://filext.com/file-extension/PTO, 4th April, 2011<br />
* [4] OS | Process finger prints detected by nmap, http://nmap.org/nmap-os-fingerprints, 4th April 2011<br />
<br />
[[Category:Software:Platform:Linux]]<br />
[[Category:Software:Hugin]]<br />
[[Category:Community:Project]]</div>Dipakhttps://wiki.panotools.org/index.php?title=Hugin_Speed_Test_Tab&diff=13400Hugin Speed Test Tab2011-04-17T16:44:58Z<p>Dipak: /* Proposal */</p>
<hr />
<div>=Hugin Speed Test Tab=<br />
<br />
==Proposal==<br />
<br />
[For complete proposal please visit: http://www.google-melange.com and follow 'Hugin speed test tab']<br />
<br />
Generally performance is the key issue for any panorama stitcher and manipulation software like Hugin[1]. Also these days end user computational platforms are shifting towards tablet PCs, pads and smart phones etc. With advancement of these technologies, today, we have very diverse hardware and software specifications. In order to chose right hardware for Hugin one needs to know the performance per different hardware (with different operating systems installed). <br />
<br />
In order to know the performance of Hugin, one possible solution (as quoted on launchpad.net[2]) would be to create a system that will offer “Speed Test” tab on Hugin’s GUI. <br />
This system should automatically download the batch set of images and .pto[3] files from server and should do automated stitching tests. On successfully completion of these local tests it should upload the test results with determined hardware platform, Operating System, running process finger-printing [4], Hugin client identification (including MAC address, public IP, time-stamp etc). Then server should do analysis in detail of all the uploaded data by Hugin clients. Finally consolidated performance reports will be generated using Web-UI which will help entire community or users to choose right hardware.<br />
<br />
==Proof Of Concept (POC) system diagram== <br />
===A. Hugin Speed Test - Brief class diagram ===<br />
[[image:HuginSpeedTestClass.png|center|thumb|800px|]] <br />
<br />
====Description==== <br />
Per shown in class diagram[5], proposed system is divided into two parts namely client side Hugin speed tester and server side Hugin test results (Web). At client side, Hugin will execute tasks given by server. This task need not be same for all clients. Tasks fetched might be small, medium or large one. For example machine which has limited computation resource should not be asked to stitch batch of 20 high resolution images with size more than 20 MB per image etc. Client will be doing self screening test before fetching either small, medium or large task. Vice-versa will be applicable for clients with high computation resource. Upon completion of task(s) clients will send results to server in XML event response if there is any Internet connectivity. <br />
<br />
On server side, multi-threaded server will parse this response and will log into database per client identification. These row data will be processed by server side analytic engine to generate reports which will help community or users to choose best hardware. These reports might help for benchmarking Hugin on different platform. <br />
<br />
===B. Hugin Speed Test - Brief sequence diagram ===<br />
[[image:HuginSpeedTestSequence.png|center|thumb|800px|]] <br />
<br />
====Description====<br />
Sequence diagram[6] shows clear flow of activities across proposed system.<br />
<br />
==Plan Of Execution==<br />
{| class="wikitable"<br />
|-<br />
! Date<br />
! Plan (Life is good!)<br />
! Backup Plan (Life is bad!)<br />
|-<br />
| April 25 - May 23<br />
| <br />
* Set development environment (Already done!)<br />
* Read Wiki<br />
* Get to know community and mentors and keep tweaking proposed system specifications<br />
* Play with Hugin code-base mostly relevent to proposed task<br />
* Get ready with code snippets for later use <br />
|<br />
* Read wiki <br />
* Get to know primary mentor <br />
|-<br />
| May 23 - June 20<br />
| <br />
* Start building Hugin client core<br />
* Implement proposed client operations and try to get a initial test of proposed system<br />
* Build XML core engine at server side<br />
* Take mentors review <br />
|<br />
* At least complete Hugin client core for proposed system and only perform nominal proposed operations<br />
|-<br />
| June 20 - July 11 <br />
| <br />
* Extend batch tasks screening test cases,<br />
* Extend server side XML core to send valid XML responses upon upload of test results,<br />
* Take mentors review and prepare midterm milestone. <br />
|<br />
* On server side try to complete XML parsing. <br />
|-<br />
| July 11 - August 1 <br />
|<br />
* Focus on server side to see how does server perform when multiple Hugin clients uploads the test results, <br />
* Start working on reporting, <br />
|<br />
* Go for single threaded XML server <br />
|-<br />
| August 1 - August 15 <br />
|<br />
* Build Client and server side UI, <br />
* Update Hugin’s help file for new tab,<br />
* Write test cases and update wiki <br />
* Do server side reports tweaks if any.<br />
| <br />
* Complete client side UI. <br />
|-<br />
| August 15+ <br />
|<br />
* Start creating patches and submit to Google. <br />
* Start looking for a gift to send to mentor :P <br />
| <br />
* Try to complete most of proposed task though GSoC 11 is finished. <br />
<br />
|}<br />
<br />
==Programming languages and skills needed== <br />
C, C++, PHP, XML (library for XML parser), Bash or Shell scripting, HTML, Ajax (basic), Mysql (library api in C). <br />
<br />
==Some interesting test results ==<br />
===Test task===<br />
To stitch [[image:Chess-1.jpg|center|thumb|300px|]] and [[image:Chess-2.jpg|center|thumb|300px|]] using two different machines (Intel Core2 Duo Vs Atom ) and capture some performance points<br />
<br />
===Test result===<br />
Resultant: [[image:Chess-1-2.jpg|center|thumb|600px|]] <br />
===Overall performance====<br />
====CPU usage====<br />
[[image:CPU-usage.jpg|center|thumb|800px|]]<br />
====Memory usage====<br />
[[image:Memory-usage.jpg|center|thumb|800px|]]<br />
====Disk-usage====<br />
[[image:Disk-read-usage.jpg|center|thumb|800px|]]<br />
[[image:Disk-write-usage.jpg|center|thumb|800px|]]<br />
===Test summary===<br />
These results shows that hardware configuration plays a very vital role on Hugin's performance. Fine grained performance measurement per function should help Hugin to identify the expensiveness of various operations. <br />
<br />
==References== <br />
* [1] Hugin - Panorama Photo stitcher Software, http://hugin.sourceforge.net/, 4th April 2011 <br />
* [2] Possible google summer code 2011 Hugin-task, https://blueprints.launchpad.net/hugin/+spec/speed-test-tab, 4th April 2011 <br />
* [3] Hugin file type, http://filext.com/file-extension/PTO, 4th April, 2011<br />
* [4] OS | Process finger prints detected by nmap, http://nmap.org/nmap-os-fingerprints, 4th April 2011<br />
<br />
[[Category:Software:Platform:Linux]]<br />
[[Category:Software:Hugin]]<br />
[[Category:Community:Project]]</div>Dipakhttps://wiki.panotools.org/index.php?title=Hugin_Speed_Test_Tab&diff=13399Hugin Speed Test Tab2011-04-17T16:43:00Z<p>Dipak: /* Test task */</p>
<hr />
<div>=Hugin Speed Test Tab=<br />
<br />
==Proposal==<br />
Generally performance is the key issue for any panorama stitcher and manipulation software like Hugin[1]. Also these days end user computational platforms are shifting towards tablet PCs, pads and smart phones etc. With advancement of these technologies, today, we have very diverse hardware and software specifications. In order to chose right hardware for Hugin one needs to know the performance per different hardware (with different operating systems installed). <br />
<br />
In order to know the performance of Hugin, one possible solution (as quoted on launchpad.net[2]) would be to create a system that will offer “Speed Test” tab on Hugin’s GUI. <br />
This system should automatically download the batch set of images and .pto[3] files from server and should do automated stitching tests. On successfully completion of these local tests it should upload the test results with determined hardware platform, Operating System, running process finger-printing [4], Hugin client identification (including MAC address, public IP, time-stamp etc). Then server should do analysis in detail of all the uploaded data by Hugin clients. Finally consolidated performance reports will be generated using Web-UI which will help entire community or users to choose right hardware. <br />
<br />
==Proof Of Concept (POC) system diagram== <br />
===A. Hugin Speed Test - Brief class diagram ===<br />
[[image:HuginSpeedTestClass.png|center|thumb|800px|]] <br />
<br />
====Description==== <br />
Per shown in class diagram[5], proposed system is divided into two parts namely client side Hugin speed tester and server side Hugin test results (Web). At client side, Hugin will execute tasks given by server. This task need not be same for all clients. Tasks fetched might be small, medium or large one. For example machine which has limited computation resource should not be asked to stitch batch of 20 high resolution images with size more than 20 MB per image etc. Client will be doing self screening test before fetching either small, medium or large task. Vice-versa will be applicable for clients with high computation resource. Upon completion of task(s) clients will send results to server in XML event response if there is any Internet connectivity. <br />
<br />
On server side, multi-threaded server will parse this response and will log into database per client identification. These row data will be processed by server side analytic engine to generate reports which will help community or users to choose best hardware. These reports might help for benchmarking Hugin on different platform. <br />
<br />
===B. Hugin Speed Test - Brief sequence diagram ===<br />
[[image:HuginSpeedTestSequence.png|center|thumb|800px|]] <br />
<br />
====Description====<br />
Sequence diagram[6] shows clear flow of activities across proposed system.<br />
<br />
==Plan Of Execution==<br />
{| class="wikitable"<br />
|-<br />
! Date<br />
! Plan (Life is good!)<br />
! Backup Plan (Life is bad!)<br />
|-<br />
| April 25 - May 23<br />
| <br />
* Set development environment (Already done!)<br />
* Read Wiki<br />
* Get to know community and mentors and keep tweaking proposed system specifications<br />
* Play with Hugin code-base mostly relevent to proposed task<br />
* Get ready with code snippets for later use <br />
|<br />
* Read wiki <br />
* Get to know primary mentor <br />
|-<br />
| May 23 - June 20<br />
| <br />
* Start building Hugin client core<br />
* Implement proposed client operations and try to get a initial test of proposed system<br />
* Build XML core engine at server side<br />
* Take mentors review <br />
|<br />
* At least complete Hugin client core for proposed system and only perform nominal proposed operations<br />
|-<br />
| June 20 - July 11 <br />
| <br />
* Extend batch tasks screening test cases,<br />
* Extend server side XML core to send valid XML responses upon upload of test results,<br />
* Take mentors review and prepare midterm milestone. <br />
|<br />
* On server side try to complete XML parsing. <br />
|-<br />
| July 11 - August 1 <br />
|<br />
* Focus on server side to see how does server perform when multiple Hugin clients uploads the test results, <br />
* Start working on reporting, <br />
|<br />
* Go for single threaded XML server <br />
|-<br />
| August 1 - August 15 <br />
|<br />
* Build Client and server side UI, <br />
* Update Hugin’s help file for new tab,<br />
* Write test cases and update wiki <br />
* Do server side reports tweaks if any.<br />
| <br />
* Complete client side UI. <br />
|-<br />
| August 15+ <br />
|<br />
* Start creating patches and submit to Google. <br />
* Start looking for a gift to send to mentor :P <br />
| <br />
* Try to complete most of proposed task though GSoC 11 is finished. <br />
<br />
|}<br />
<br />
==Programming languages and skills needed== <br />
C, C++, PHP, XML (library for XML parser), Bash or Shell scripting, HTML, Ajax (basic), Mysql (library api in C). <br />
<br />
==Some interesting test results ==<br />
===Test task===<br />
To stitch [[image:Chess-1.jpg|center|thumb|300px|]] and [[image:Chess-2.jpg|center|thumb|300px|]] using two different machines (Intel Core2 Duo Vs Atom ) and capture some performance points<br />
<br />
===Test result===<br />
Resultant: [[image:Chess-1-2.jpg|center|thumb|600px|]] <br />
===Overall performance====<br />
====CPU usage====<br />
[[image:CPU-usage.jpg|center|thumb|800px|]]<br />
====Memory usage====<br />
[[image:Memory-usage.jpg|center|thumb|800px|]]<br />
====Disk-usage====<br />
[[image:Disk-read-usage.jpg|center|thumb|800px|]]<br />
[[image:Disk-write-usage.jpg|center|thumb|800px|]]<br />
===Test summary===<br />
These results shows that hardware configuration plays a very vital role on Hugin's performance. Fine grained performance measurement per function should help Hugin to identify the expensiveness of various operations. <br />
<br />
==References== <br />
* [1] Hugin - Panorama Photo stitcher Software, http://hugin.sourceforge.net/, 4th April 2011 <br />
* [2] Possible google summer code 2011 Hugin-task, https://blueprints.launchpad.net/hugin/+spec/speed-test-tab, 4th April 2011 <br />
* [3] Hugin file type, http://filext.com/file-extension/PTO, 4th April, 2011<br />
* [4] OS | Process finger prints detected by nmap, http://nmap.org/nmap-os-fingerprints, 4th April 2011<br />
<br />
[[Category:Software:Platform:Linux]]<br />
[[Category:Software:Hugin]]<br />
[[Category:Community:Project]]</div>Dipakhttps://wiki.panotools.org/index.php?title=Hugin_Speed_Test_Tab&diff=13398Hugin Speed Test Tab2011-04-17T16:41:37Z<p>Dipak: Uploaded result images.</p>
<hr />
<div>=Hugin Speed Test Tab=<br />
<br />
==Proposal==<br />
Generally performance is the key issue for any panorama stitcher and manipulation software like Hugin[1]. Also these days end user computational platforms are shifting towards tablet PCs, pads and smart phones etc. With advancement of these technologies, today, we have very diverse hardware and software specifications. In order to chose right hardware for Hugin one needs to know the performance per different hardware (with different operating systems installed). <br />
<br />
In order to know the performance of Hugin, one possible solution (as quoted on launchpad.net[2]) would be to create a system that will offer “Speed Test” tab on Hugin’s GUI. <br />
This system should automatically download the batch set of images and .pto[3] files from server and should do automated stitching tests. On successfully completion of these local tests it should upload the test results with determined hardware platform, Operating System, running process finger-printing [4], Hugin client identification (including MAC address, public IP, time-stamp etc). Then server should do analysis in detail of all the uploaded data by Hugin clients. Finally consolidated performance reports will be generated using Web-UI which will help entire community or users to choose right hardware. <br />
<br />
==Proof Of Concept (POC) system diagram== <br />
===A. Hugin Speed Test - Brief class diagram ===<br />
[[image:HuginSpeedTestClass.png|center|thumb|800px|]] <br />
<br />
====Description==== <br />
Per shown in class diagram[5], proposed system is divided into two parts namely client side Hugin speed tester and server side Hugin test results (Web). At client side, Hugin will execute tasks given by server. This task need not be same for all clients. Tasks fetched might be small, medium or large one. For example machine which has limited computation resource should not be asked to stitch batch of 20 high resolution images with size more than 20 MB per image etc. Client will be doing self screening test before fetching either small, medium or large task. Vice-versa will be applicable for clients with high computation resource. Upon completion of task(s) clients will send results to server in XML event response if there is any Internet connectivity. <br />
<br />
On server side, multi-threaded server will parse this response and will log into database per client identification. These row data will be processed by server side analytic engine to generate reports which will help community or users to choose best hardware. These reports might help for benchmarking Hugin on different platform. <br />
<br />
===B. Hugin Speed Test - Brief sequence diagram ===<br />
[[image:HuginSpeedTestSequence.png|center|thumb|800px|]] <br />
<br />
====Description====<br />
Sequence diagram[6] shows clear flow of activities across proposed system.<br />
<br />
==Plan Of Execution==<br />
{| class="wikitable"<br />
|-<br />
! Date<br />
! Plan (Life is good!)<br />
! Backup Plan (Life is bad!)<br />
|-<br />
| April 25 - May 23<br />
| <br />
* Set development environment (Already done!)<br />
* Read Wiki<br />
* Get to know community and mentors and keep tweaking proposed system specifications<br />
* Play with Hugin code-base mostly relevent to proposed task<br />
* Get ready with code snippets for later use <br />
|<br />
* Read wiki <br />
* Get to know primary mentor <br />
|-<br />
| May 23 - June 20<br />
| <br />
* Start building Hugin client core<br />
* Implement proposed client operations and try to get a initial test of proposed system<br />
* Build XML core engine at server side<br />
* Take mentors review <br />
|<br />
* At least complete Hugin client core for proposed system and only perform nominal proposed operations<br />
|-<br />
| June 20 - July 11 <br />
| <br />
* Extend batch tasks screening test cases,<br />
* Extend server side XML core to send valid XML responses upon upload of test results,<br />
* Take mentors review and prepare midterm milestone. <br />
|<br />
* On server side try to complete XML parsing. <br />
|-<br />
| July 11 - August 1 <br />
|<br />
* Focus on server side to see how does server perform when multiple Hugin clients uploads the test results, <br />
* Start working on reporting, <br />
|<br />
* Go for single threaded XML server <br />
|-<br />
| August 1 - August 15 <br />
|<br />
* Build Client and server side UI, <br />
* Update Hugin’s help file for new tab,<br />
* Write test cases and update wiki <br />
* Do server side reports tweaks if any.<br />
| <br />
* Complete client side UI. <br />
|-<br />
| August 15+ <br />
|<br />
* Start creating patches and submit to Google. <br />
* Start looking for a gift to send to mentor :P <br />
| <br />
* Try to complete most of proposed task though GSoC 11 is finished. <br />
<br />
|}<br />
<br />
==Programming languages and skills needed== <br />
C, C++, PHP, XML (library for XML parser), Bash or Shell scripting, HTML, Ajax (basic), Mysql (library api in C). <br />
<br />
==Some interesting test results ==<br />
===Test task===<br />
To stitch [[image:Chess-1.jpg|center|thumb|300px|]] and [[image:Chess-2.jpg|center|thumb|300px|]] using two different machines ([[file:machine-1.txt]] and [[file:machine-2.txt]]) and capture some performance points <br />
===Test result===<br />
Resultant: [[image:Chess-1-2.jpg|center|thumb|600px|]] <br />
===Overall performance====<br />
====CPU usage====<br />
[[image:CPU-usage.jpg|center|thumb|800px|]]<br />
====Memory usage====<br />
[[image:Memory-usage.jpg|center|thumb|800px|]]<br />
====Disk-usage====<br />
[[image:Disk-read-usage.jpg|center|thumb|800px|]]<br />
[[image:Disk-write-usage.jpg|center|thumb|800px|]]<br />
===Test summary===<br />
These results shows that hardware configuration plays a very vital role on Hugin's performance. Fine grained performance measurement per function should help Hugin to identify the expensiveness of various operations. <br />
<br />
==References== <br />
* [1] Hugin - Panorama Photo stitcher Software, http://hugin.sourceforge.net/, 4th April 2011 <br />
* [2] Possible google summer code 2011 Hugin-task, https://blueprints.launchpad.net/hugin/+spec/speed-test-tab, 4th April 2011 <br />
* [3] Hugin file type, http://filext.com/file-extension/PTO, 4th April, 2011<br />
* [4] OS | Process finger prints detected by nmap, http://nmap.org/nmap-os-fingerprints, 4th April 2011<br />
<br />
[[Category:Software:Platform:Linux]]<br />
[[Category:Software:Hugin]]<br />
[[Category:Community:Project]]</div>Dipakhttps://wiki.panotools.org/index.php?title=File:Disk-write-usage.jpg&diff=13397File:Disk-write-usage.jpg2011-04-17T16:37:29Z<p>Dipak: </p>
<hr />
<div></div>Dipakhttps://wiki.panotools.org/index.php?title=File:Disk-read-usage.jpg&diff=13396File:Disk-read-usage.jpg2011-04-17T16:37:11Z<p>Dipak: </p>
<hr />
<div></div>Dipakhttps://wiki.panotools.org/index.php?title=File:Memory-usage.jpg&diff=13395File:Memory-usage.jpg2011-04-17T16:36:53Z<p>Dipak: uploaded a new version of "File:Memory-usage.jpg"</p>
<hr />
<div></div>Dipakhttps://wiki.panotools.org/index.php?title=File:Mem-usage.jpg&diff=13394File:Mem-usage.jpg2011-04-17T16:36:09Z<p>Dipak: </p>
<hr />
<div></div>Dipakhttps://wiki.panotools.org/index.php?title=File:Memory-usage.jpg&diff=13393File:Memory-usage.jpg2011-04-17T16:19:37Z<p>Dipak: </p>
<hr />
<div></div>Dipakhttps://wiki.panotools.org/index.php?title=File:CPU-usage.jpg&diff=13392File:CPU-usage.jpg2011-04-17T16:17:51Z<p>Dipak: </p>
<hr />
<div></div>Dipakhttps://wiki.panotools.org/index.php?title=File:Chess-1-2.jpg&diff=13391File:Chess-1-2.jpg2011-04-17T16:17:41Z<p>Dipak: </p>
<hr />
<div></div>Dipakhttps://wiki.panotools.org/index.php?title=File:Chess-2.jpg&diff=13390File:Chess-2.jpg2011-04-17T16:17:08Z<p>Dipak: </p>
<hr />
<div></div>Dipakhttps://wiki.panotools.org/index.php?title=Hugin_Speed_Test_Tab&diff=13389Hugin Speed Test Tab2011-04-17T16:16:55Z<p>Dipak: Added jpg extensions</p>
<hr />
<div>=Hugin Speed Test Tab=<br />
<br />
==Proposal==<br />
Generally performance is the key issue for any panorama stitcher and manipulation software like Hugin[1]. Also these days end user computational platforms are shifting towards tablet PCs, pads and smart phones etc. With advancement of these technologies, today, we have very diverse hardware and software specifications. In order to chose right hardware for Hugin one needs to know the performance per different hardware (with different operating systems installed). <br />
<br />
In order to know the performance of Hugin, one possible solution (as quoted on launchpad.net[2]) would be to create a system that will offer “Speed Test” tab on Hugin’s GUI. <br />
This system should automatically download the batch set of images and .pto[3] files from server and should do automated stitching tests. On successfully completion of these local tests it should upload the test results with determined hardware platform, Operating System, running process finger-printing [4], Hugin client identification (including MAC address, public IP, time-stamp etc). Then server should do analysis in detail of all the uploaded data by Hugin clients. Finally consolidated performance reports will be generated using Web-UI which will help entire community or users to choose right hardware. <br />
<br />
==Proof Of Concept (POC) system diagram== <br />
===A. Hugin Speed Test - Brief class diagram ===<br />
[[image:HuginSpeedTestClass.png|center|thumb|800px|]] <br />
<br />
====Description==== <br />
Per shown in class diagram[5], proposed system is divided into two parts namely client side Hugin speed tester and server side Hugin test results (Web). At client side, Hugin will execute tasks given by server. This task need not be same for all clients. Tasks fetched might be small, medium or large one. For example machine which has limited computation resource should not be asked to stitch batch of 20 high resolution images with size more than 20 MB per image etc. Client will be doing self screening test before fetching either small, medium or large task. Vice-versa will be applicable for clients with high computation resource. Upon completion of task(s) clients will send results to server in XML event response if there is any Internet connectivity. <br />
<br />
On server side, multi-threaded server will parse this response and will log into database per client identification. These row data will be processed by server side analytic engine to generate reports which will help community or users to choose best hardware. These reports might help for benchmarking Hugin on different platform. <br />
<br />
===B. Hugin Speed Test - Brief sequence diagram ===<br />
[[image:HuginSpeedTestSequence.png|center|thumb|800px|]] <br />
<br />
====Description====<br />
Sequence diagram[6] shows clear flow of activities across proposed system.<br />
<br />
==Plan Of Execution==<br />
{| class="wikitable"<br />
|-<br />
! Date<br />
! Plan (Life is good!)<br />
! Backup Plan (Life is bad!)<br />
|-<br />
| April 25 - May 23<br />
| <br />
* Set development environment (Already done!)<br />
* Read Wiki<br />
* Get to know community and mentors and keep tweaking proposed system specifications<br />
* Play with Hugin code-base mostly relevent to proposed task<br />
* Get ready with code snippets for later use <br />
|<br />
* Read wiki <br />
* Get to know primary mentor <br />
|-<br />
| May 23 - June 20<br />
| <br />
* Start building Hugin client core<br />
* Implement proposed client operations and try to get a initial test of proposed system<br />
* Build XML core engine at server side<br />
* Take mentors review <br />
|<br />
* At least complete Hugin client core for proposed system and only perform nominal proposed operations<br />
|-<br />
| June 20 - July 11 <br />
| <br />
* Extend batch tasks screening test cases,<br />
* Extend server side XML core to send valid XML responses upon upload of test results,<br />
* Take mentors review and prepare midterm milestone. <br />
|<br />
* On server side try to complete XML parsing. <br />
|-<br />
| July 11 - August 1 <br />
|<br />
* Focus on server side to see how does server perform when multiple Hugin clients uploads the test results, <br />
* Start working on reporting, <br />
|<br />
* Go for single threaded XML server <br />
|-<br />
| August 1 - August 15 <br />
|<br />
* Build Client and server side UI, <br />
* Update Hugin’s help file for new tab,<br />
* Write test cases and update wiki <br />
* Do server side reports tweaks if any.<br />
| <br />
* Complete client side UI. <br />
|-<br />
| August 15+ <br />
|<br />
* Start creating patches and submit to Google. <br />
* Start looking for a gift to send to mentor :P <br />
| <br />
* Try to complete most of proposed task though GSoC 11 is finished. <br />
<br />
|}<br />
<br />
==Programming languages and skills needed== <br />
C, C++, PHP, XML (library for XML parser), Bash or Shell scripting, HTML, Ajax (basic), Mysql (library api in C). <br />
<br />
==Some interesting test results ==<br />
===Test task===<br />
To stitch [[image:Chess-1.jpg|center|thumb|300px|]] and [[image:Chess-2.jpg|center|thumb|300px|]] using two different machines ([[file:machine-1.txt]] and [[file:machine-2.txt]]) and capture some performance points <br />
===Test result===<br />
Resultant: [[image:Chess-1-2.jpg|center|thumb|600px|]] <br />
===Overall performance====<br />
====CPU usage====<br />
[[image:CPU-usage.jpg|center|thumb|800px|]]<br />
====Memory usage====<br />
[[image:Memory-usage.jpg|center|thumb|800px|]]<br />
====Disk-usage====<br />
[[image:Disk-read-usage.jpg|center|thumb|800px|]]<br />
[[image:Disk-write-usage.jpg|center|thumb|800px|]]<br />
<br />
==References== <br />
* [1] Hugin - Panorama Photo stitcher Software, http://hugin.sourceforge.net/, 4th April 2011 <br />
* [2] Possible google summer code 2011 Hugin-task, https://blueprints.launchpad.net/hugin/+spec/speed-test-tab, 4th April 2011 <br />
* [3] Hugin file type, http://filext.com/file-extension/PTO, 4th April, 2011<br />
* [4] OS | Process finger prints detected by nmap, http://nmap.org/nmap-os-fingerprints, 4th April 2011<br />
<br />
[[Category:Software:Platform:Linux]]<br />
[[Category:Software:Hugin]]<br />
[[Category:Community:Project]]</div>Dipakhttps://wiki.panotools.org/index.php?title=File:Chess-1.jpg&diff=13388File:Chess-1.jpg2011-04-17T16:14:04Z<p>Dipak: uploaded a new version of "File:Chess-1.jpg"</p>
<hr />
<div></div>Dipakhttps://wiki.panotools.org/index.php?title=File:Chess-1.jpg&diff=13387File:Chess-1.jpg2011-04-17T16:12:52Z<p>Dipak: </p>
<hr />
<div></div>Dipakhttps://wiki.panotools.org/index.php?title=Hugin_Speed_Test_Tab&diff=13386Hugin Speed Test Tab2011-04-17T16:12:03Z<p>Dipak: Added some performance test results</p>
<hr />
<div>=Hugin Speed Test Tab=<br />
<br />
==Proposal==<br />
Generally performance is the key issue for any panorama stitcher and manipulation software like Hugin[1]. Also these days end user computational platforms are shifting towards tablet PCs, pads and smart phones etc. With advancement of these technologies, today, we have very diverse hardware and software specifications. In order to chose right hardware for Hugin one needs to know the performance per different hardware (with different operating systems installed). <br />
<br />
In order to know the performance of Hugin, one possible solution (as quoted on launchpad.net[2]) would be to create a system that will offer “Speed Test” tab on Hugin’s GUI. <br />
This system should automatically download the batch set of images and .pto[3] files from server and should do automated stitching tests. On successfully completion of these local tests it should upload the test results with determined hardware platform, Operating System, running process finger-printing [4], Hugin client identification (including MAC address, public IP, time-stamp etc). Then server should do analysis in detail of all the uploaded data by Hugin clients. Finally consolidated performance reports will be generated using Web-UI which will help entire community or users to choose right hardware. <br />
<br />
==Proof Of Concept (POC) system diagram== <br />
===A. Hugin Speed Test - Brief class diagram ===<br />
[[image:HuginSpeedTestClass.png|center|thumb|800px|]] <br />
<br />
====Description==== <br />
Per shown in class diagram[5], proposed system is divided into two parts namely client side Hugin speed tester and server side Hugin test results (Web). At client side, Hugin will execute tasks given by server. This task need not be same for all clients. Tasks fetched might be small, medium or large one. For example machine which has limited computation resource should not be asked to stitch batch of 20 high resolution images with size more than 20 MB per image etc. Client will be doing self screening test before fetching either small, medium or large task. Vice-versa will be applicable for clients with high computation resource. Upon completion of task(s) clients will send results to server in XML event response if there is any Internet connectivity. <br />
<br />
On server side, multi-threaded server will parse this response and will log into database per client identification. These row data will be processed by server side analytic engine to generate reports which will help community or users to choose best hardware. These reports might help for benchmarking Hugin on different platform. <br />
<br />
===B. Hugin Speed Test - Brief sequence diagram ===<br />
[[image:HuginSpeedTestSequence.png|center|thumb|800px|]] <br />
<br />
====Description====<br />
Sequence diagram[6] shows clear flow of activities across proposed system.<br />
<br />
==Plan Of Execution==<br />
{| class="wikitable"<br />
|-<br />
! Date<br />
! Plan (Life is good!)<br />
! Backup Plan (Life is bad!)<br />
|-<br />
| April 25 - May 23<br />
| <br />
* Set development environment (Already done!)<br />
* Read Wiki<br />
* Get to know community and mentors and keep tweaking proposed system specifications<br />
* Play with Hugin code-base mostly relevent to proposed task<br />
* Get ready with code snippets for later use <br />
|<br />
* Read wiki <br />
* Get to know primary mentor <br />
|-<br />
| May 23 - June 20<br />
| <br />
* Start building Hugin client core<br />
* Implement proposed client operations and try to get a initial test of proposed system<br />
* Build XML core engine at server side<br />
* Take mentors review <br />
|<br />
* At least complete Hugin client core for proposed system and only perform nominal proposed operations<br />
|-<br />
| June 20 - July 11 <br />
| <br />
* Extend batch tasks screening test cases,<br />
* Extend server side XML core to send valid XML responses upon upload of test results,<br />
* Take mentors review and prepare midterm milestone. <br />
|<br />
* On server side try to complete XML parsing. <br />
|-<br />
| July 11 - August 1 <br />
|<br />
* Focus on server side to see how does server perform when multiple Hugin clients uploads the test results, <br />
* Start working on reporting, <br />
|<br />
* Go for single threaded XML server <br />
|-<br />
| August 1 - August 15 <br />
|<br />
* Build Client and server side UI, <br />
* Update Hugin’s help file for new tab,<br />
* Write test cases and update wiki <br />
* Do server side reports tweaks if any.<br />
| <br />
* Complete client side UI. <br />
|-<br />
| August 15+ <br />
|<br />
* Start creating patches and submit to Google. <br />
* Start looking for a gift to send to mentor :P <br />
| <br />
* Try to complete most of proposed task though GSoC 11 is finished. <br />
<br />
|}<br />
<br />
==Programming languages and skills needed== <br />
C, C++, PHP, XML (library for XML parser), Bash or Shell scripting, HTML, Ajax (basic), Mysql (library api in C). <br />
<br />
==Some interesting test results ==<br />
===Test task===<br />
To stitch [[image:Chess-1|center|thumb|100px|]] and [[image:Chess-2|center|thumb|100px|]] using two different machines ([[file:machine-1]] and [[file:machine-2]]) and capture some performance points <br />
===Test result===<br />
Resultant: [[image:Chess-1-2|center|thumb|200px|]] <br />
===Overall performance====<br />
====CPU usage====<br />
[[image:CPU-usage|center|thumb|800px|]]<br />
====Memory usage====<br />
[[image:Memory-usage|center|thumb|800px|]]<br />
====Disk-usage====<br />
[[image:Disk-read-usage|center|thumb|800px|]]<br />
[[image:Disk-write-usage|center|thumb|800px|]]<br />
<br />
==References== <br />
* [1] Hugin - Panorama Photo stitcher Software, http://hugin.sourceforge.net/, 4th April 2011 <br />
* [2] Possible google summer code 2011 Hugin-task, https://blueprints.launchpad.net/hugin/+spec/speed-test-tab, 4th April 2011 <br />
* [3] Hugin file type, http://filext.com/file-extension/PTO, 4th April, 2011<br />
* [4] OS | Process finger prints detected by nmap, http://nmap.org/nmap-os-fingerprints, 4th April 2011<br />
<br />
[[Category:Software:Platform:Linux]]<br />
[[Category:Software:Hugin]]<br />
[[Category:Community:Project]]</div>Dipakhttps://wiki.panotools.org/index.php?title=Hugin_Speed_Test_Tab&diff=13380Hugin Speed Test Tab2011-04-10T13:27:06Z<p>Dipak: Added execution plan for hugin speed test</p>
<hr />
<div>=Hugin Speed Test Tab=<br />
<br />
==Proposal==<br />
Generally performance is the key issue for any panorama stitcher and manipulation software like Hugin[1]. Also these days end user computational platforms are shifting towards tablet PCs, pads and smart phones etc. With advancement of these technologies, today, we have very diverse hardware and software specifications. In order to chose right hardware for Hugin one needs to know the performance per different hardware (with different operating systems installed). <br />
<br />
In order to know the performance of Hugin, one possible solution (as quoted on launchpad.net[2]) would be to create a system that will offer “Speed Test” tab on Hugin’s GUI. <br />
This system should automatically download the batch set of images and .pto[3] files from server and should do automated stitching tests. On successfully completion of these local tests it should upload the test results with determined hardware platform, Operating System, running process finger-printing [4], Hugin client identification (including MAC address, public IP, time-stamp etc). Then server should do analysis in detail of all the uploaded data by Hugin clients. Finally consolidated performance reports will be generated using Web-UI which will help entire community or users to choose right hardware. <br />
<br />
==Proof Of Concept (POC) system diagram== <br />
===A. Hugin Speed Test - Brief class diagram ===<br />
[[image:HuginSpeedTestClass.png|center|thumb|800px|]] <br />
<br />
====Description==== <br />
Per shown in class diagram[5], proposed system is divided into two parts namely client side Hugin speed tester and server side Hugin test results (Web). At client side, Hugin will execute tasks given by server. This task need not be same for all clients. Tasks fetched might be small, medium or large one. For example machine which has limited computation resource should not be asked to stitch batch of 20 high resolution images with size more than 20 MB per image etc. Client will be doing self screening test before fetching either small, medium or large task. Vice-versa will be applicable for clients with high computation resource. Upon completion of task(s) clients will send results to server in XML event response if there is any Internet connectivity. <br />
<br />
On server side, multi-threaded server will parse this response and will log into database per client identification. These row data will be processed by server side analytic engine to generate reports which will help community or users to choose best hardware. These reports might help for benchmarking Hugin on different platform. <br />
<br />
===B. Hugin Speed Test - Brief sequence diagram ===<br />
[[image:HuginSpeedTestSequence.png|center|thumb|800px|]] <br />
<br />
====Description====<br />
Sequence diagram[6] shows clear flow of activities across proposed system.<br />
<br />
==Plan Of Execution==<br />
{| class="wikitable"<br />
|-<br />
! Date<br />
! Plan (Life is good!)<br />
! Backup Plan (Life is bad!)<br />
|-<br />
| April 25 - May 23<br />
| <br />
* Set development environment (Already done!)<br />
* Read Wiki<br />
* Get to know community and mentors and keep tweaking proposed system specifications<br />
* Play with Hugin code-base mostly relevent to proposed task<br />
* Get ready with code snippets for later use <br />
|<br />
* Read wiki <br />
* Get to know primary mentor <br />
|-<br />
| May 23 - June 20<br />
| <br />
* Start building Hugin client core<br />
* Implement proposed client operations and try to get a initial test of proposed system<br />
* Build XML core engine at server side<br />
* Take mentors review <br />
|<br />
* At least complete Hugin client core for proposed system and only perform nominal proposed operations<br />
|-<br />
| June 20 - July 11 <br />
| <br />
* Extend batch tasks screening test cases,<br />
* Extend server side XML core to send valid XML responses upon upload of test results,<br />
* Take mentors review and prepare midterm milestone. <br />
|<br />
* On server side try to complete XML parsing. <br />
|-<br />
| July 11 - August 1 <br />
|<br />
* Focus on server side to see how does server perform when multiple Hugin clients uploads the test results, <br />
* Start working on reporting, <br />
|<br />
* Go for single threaded XML server <br />
|-<br />
| August 1 - August 15 <br />
|<br />
* Build Client and server side UI, <br />
* Update Hugin’s help file for new tab,<br />
* Write test cases and update wiki <br />
* Do server side reports tweaks if any.<br />
| <br />
* Complete client side UI. <br />
|-<br />
| August 15+ <br />
|<br />
* Start creating patches and submit to Google. <br />
* Start looking for a gift to send to mentor :P <br />
| <br />
* Try to complete most of proposed task though GSoC 11 is finished. <br />
<br />
|}<br />
<br />
==Programming languages and skills needed== <br />
C, C++, PHP, XML (library for XML parser), Bash or Shell scripting, HTML, Ajax (basic), Mysql (library api in C). <br />
<br />
==References== <br />
* [1] Hugin - Panorama Photo stitcher Software, http://hugin.sourceforge.net/, 4th April 2011 <br />
* [2] Possible google summer code 2011 Hugin-task, https://blueprints.launchpad.net/hugin/+spec/speed-test-tab, 4th April 2011 <br />
* [3] Hugin file type, http://filext.com/file-extension/PTO, 4th April, 2011<br />
* [4] OS | Process finger prints detected by nmap, http://nmap.org/nmap-os-fingerprints, 4th April 2011<br />
<br />
[[Category:Software:Platform:Linux]]<br />
[[Category:Software:Hugin]]<br />
[[Category:Community:Project]]</div>Dipakhttps://wiki.panotools.org/index.php?title=File:HuginSpeedTestSequence.png&diff=13379File:HuginSpeedTestSequence.png2011-04-10T13:07:16Z<p>Dipak: Sequence diagram for Hugin speed test for automated hardware evaluation</p>
<hr />
<div>Sequence diagram for Hugin speed test for automated hardware evaluation</div>Dipakhttps://wiki.panotools.org/index.php?title=File:HuginSpeedTestClass.png&diff=13378File:HuginSpeedTestClass.png2011-04-10T13:06:26Z<p>Dipak: Class diagram for Hugin speed test for automated hardware evaluation</p>
<hr />
<div>Class diagram for Hugin speed test for automated hardware evaluation</div>Dipakhttps://wiki.panotools.org/index.php?title=Hugin_Speed_Test_Tab&diff=13377Hugin Speed Test Tab2011-04-10T13:05:47Z<p>Dipak: Added class and sequence diagram for Hugin speed test</p>
<hr />
<div>=Hugin Speed Test Tab=<br />
<br />
==Proposal==<br />
Generally performance is the key issue for any panorama stitcher and manipulation software like Hugin[1]. Also these days end user computational platforms are shifting towards tablet PCs, pads and smart phones etc. With advancement of these technologies, today, we have very diverse hardware and software specifications. In order to chose right hardware for Hugin one needs to know the performance per different hardware (with different operating systems installed). <br />
<br />
In order to know the performance of Hugin, one possible solution (as quoted on launchpad.net[2]) would be to create a system that will offer “Speed Test” tab on Hugin’s GUI. <br />
This system should automatically download the batch set of images and .pto[3] files from server and should do automated stitching tests. On successfully completion of these local tests it should upload the test results with determined hardware platform, Operating System, running process finger-printing [4], Hugin client identification (including MAC address, public IP, time-stamp etc). Then server should do analysis in detail of all the uploaded data by Hugin clients. Finally consolidated performance reports will be generated using Web-UI which will help entire community or users to choose right hardware. <br />
<br />
==Proof Of Concept (POC) system diagram== <br />
===A. Hugin Speed Test - Brief class diagram [5]===<br />
[[image:HuginSpeedTestClass.png|center|thumb|50px|]] <br />
<br />
====Description==== <br />
Per shown in class diagram[5], proposed system is divided into two parts namely client side Hugin speed tester and server side Hugin test results (Web). At client side, Hugin will execute tasks given by server. This task need not be same for all clients. Tasks fetched might be small, medium or large one. For example machine which has limited computation resource should not be asked to stitch batch of 20 high resolution images with size more than 20 MB per image etc. Client will be doing self screening test before fetching either small, medium or large task. Vice-versa will be applicable for clients with high computation resource. Upon completion of task(s) clients will send results to server in XML event response if there is any Internet connectivity. <br />
<br />
On server side, multi-threaded server will parse this response and will log into database per client identification. These row data will be processed by server side analytic engine to generate reports which will help community or users to choose best hardware. These reports might help for benchmarking Hugin on different platform. <br />
<br />
===B. Hugin Speed Test - Brief sequence diagram [6]===<br />
[[image:HuginSpeedTestSequence.png|center|thumb|50px|]] <br />
<br />
====Description====<br />
Sequence diagram[6] shows clear flow of activities across proposed system.<br />
<br />
==Programming languages and skills needed== <br />
C, C++, PHP, XML (library for XML parser), Bash or Shell scripting, HTML, Ajax (basic), Mysql (library api in C). <br />
<br />
<br />
[[Category:Software:Platform:Linux]]<br />
[[Category:Software:Hugin]]<br />
[[Category:Community:Project]]</div>Dipakhttps://wiki.panotools.org/index.php?title=Hugin_Speed_Test_Tab&diff=13376Hugin Speed Test Tab2011-04-10T12:59:17Z<p>Dipak: Composed actual proposal to wiki</p>
<hr />
<div>=Hugin Speed Test Tab=<br />
<br />
==Proposal==<br />
Generally performance is the key issue for any panorama stitcher and manipulation software like Hugin[1]. Also these days end user computational platforms are shifting towards tablet PCs, pads and smart phones etc. With advancement of these technologies, today, we have very diverse hardware and software specifications. In order to chose right hardware for Hugin one needs to know the performance per different hardware (with different operating systems installed). <br />
<br />
In order to know the performance of Hugin, one possible solution (as quoted on launchpad.net[2]) would be to create a system that will offer “Speed Test” tab on Hugin’s GUI. <br />
This system should automatically download the batch set of images and .pto[3] files from server and should do automated stitching tests. On successfully completion of these local tests it should upload the test results with determined hardware platform, Operating System, running process finger-printing [4], Hugin client identification (including MAC address, public IP, time-stamp etc). Then server should do analysis in detail of all the uploaded data by Hugin clients. Finally consolidated performance reports will be generated using Web-UI which will help entire community or users to choose right hardware. <br />
<br />
==Proof Of Concept (POC) system diagram== <br />
===A. Hugin Speed Test - Brief class diagram [5]===<br />
<br />
====Description==== <br />
Per shown in class diagram[5], proposed system is divided into two parts namely client side Hugin speed tester and server side Hugin test results (Web). At client side, Hugin will execute tasks given by server. This task need not be same for all clients. Tasks fetched might be small, medium or large one. For example machine which has limited computation resource should not be asked to stitch batch of 20 high resolution images with size more than 20 MB per image etc. Client will be doing self screening test before fetching either small, medium or large task. Vice-versa will be applicable for clients with high computation resource. Upon completion of task(s) clients will send results to server in XML event response if there is any Internet connectivity. <br />
<br />
On server side, multi-threaded server will parse this response and will log into database per client identification. These row data will be processed by server side analytic engine to generate reports which will help community or users to choose best hardware. These reports might help for benchmarking Hugin on different platform. <br />
===B. Hugin Speed Test - Brief sequence diagram [6]===<br />
====Description====<br />
Sequence diagram[6] shows clear flow of activities across proposed system.<br />
<br />
==Programming languages and skills needed== C, C++, PHP, XML (library for XML parser), Bash or Shell scripting, HTML, Ajax (basic), Mysql (library api in C). <br />
<br />
<br />
[[Category:Software:Platform:Linux]]<br />
[[Category:Software:Hugin]]<br />
[[Category:Community:Project]]</div>Dipakhttps://wiki.panotools.org/index.php?title=Historical:Straight_Line_UI_proposal&diff=13375Historical:Straight Line UI proposal2011-04-10T12:49:28Z<p>Dipak: Removed speed test tab link</p>
<hr />
<div>=A New Tool For Straight Line Definition=<br />
<br />
==Preface==<br />
<br />
Currently the only one way to specify lines in a panorama is to manually create pairs of control points. This approach has multiple disadvantages. From user perspective it's not very intuitive and defining multiple lines can be a pretty tedious work. Also the lines are a part of output space and thus defining them in output space seems to be more appropriate.<br />
<br />
==Proposal==<br />
<br />
Move the straight line definition into the Fast Preview. The line can be drawn in a way similar to what is done in the most vector editors. Control points would be added as the user would click in the preview and the line between two points would be immediately shown (i.e. first click adds first point, second clicks adds point and draws line between the first and second and so on).<br />
<br />
There has to be an option allowing the user to specify the type of line – whether it's horizontal, vertical or some general line. It might be handy if there was an option to run optimizer as the lines are added so the user would have an immediate feedback how the lines change the panorama. Note that optimizer shouldn't be run by default, because optimization may take a lot of time rendering proposed tool unusable.<br />
<br />
There are several problems that has to be resolved first. If the tool is based upon the contemporary way of defining lines the decision where to place the control points has to be made. Also there is a problem as how the line should be specified when images overlap as noted by kfj in [1].<br />
<br />
The idea is based on the idea from RawTherapee forum [2].<br />
<br />
==Prerequisite==<br />
<br />
Before this works the fast preview needs some zooming function to set exactly the points. Also it is necessary to identify the image in which the line should be created in case the point is setting in an overlapping area or using the function for HDR panoramas. See other blueprint [3].<br />
<br />
==References==<br />
<br />
[1] http://groups.google.com/group/hugin-ptx/browse_thread/thread/dbb85dad10715586<br />
<br />
[2] http://rawtherapee.com/forum/viewtopic.php?p=17063#17063<br />
<br />
[3] https://blueprints.launchpad.net/hugin/+spec/extendedpreview<br />
<br />
[[Category:Software:Platform:Windows]]<br />
[[Category:Software:Platform:Mac OS X]]<br />
[[Category:Software:Platform:Linux]]<br />
[[Category:Software:Hugin]]<br />
[[Category:Community:Project]]</div>Dipakhttps://wiki.panotools.org/index.php?title=Hugin_Speed_Test_Tab&diff=13374Hugin Speed Test Tab2011-04-10T12:48:28Z<p>Dipak: Added categories</p>
<hr />
<div>==Hugin Speed Test Tab==<br />
[[Category:Software:Platform:Linux]]<br />
[[Category:Software:Hugin]]<br />
[[Category:Community:Project]]</div>Dipakhttps://wiki.panotools.org/index.php?title=Historical:Straight_Line_UI_proposal&diff=13373Historical:Straight Line UI proposal2011-04-10T12:47:11Z<p>Dipak: Just trying to create new page</p>
<hr />
<div>[[Hugin Speed Test Tab]]<br />
<br />
=A New Tool For Straight Line Definition=<br />
<br />
==Preface==<br />
<br />
Currently the only one way to specify lines in a panorama is to manually create pairs of control points. This approach has multiple disadvantages. From user perspective it's not very intuitive and defining multiple lines can be a pretty tedious work. Also the lines are a part of output space and thus defining them in output space seems to be more appropriate.<br />
<br />
==Proposal==<br />
<br />
Move the straight line definition into the Fast Preview. The line can be drawn in a way similar to what is done in the most vector editors. Control points would be added as the user would click in the preview and the line between two points would be immediately shown (i.e. first click adds first point, second clicks adds point and draws line between the first and second and so on).<br />
<br />
There has to be an option allowing the user to specify the type of line – whether it's horizontal, vertical or some general line. It might be handy if there was an option to run optimizer as the lines are added so the user would have an immediate feedback how the lines change the panorama. Note that optimizer shouldn't be run by default, because optimization may take a lot of time rendering proposed tool unusable.<br />
<br />
There are several problems that has to be resolved first. If the tool is based upon the contemporary way of defining lines the decision where to place the control points has to be made. Also there is a problem as how the line should be specified when images overlap as noted by kfj in [1].<br />
<br />
The idea is based on the idea from RawTherapee forum [2].<br />
<br />
==Prerequisite==<br />
<br />
Before this works the fast preview needs some zooming function to set exactly the points. Also it is necessary to identify the image in which the line should be created in case the point is setting in an overlapping area or using the function for HDR panoramas. See other blueprint [3].<br />
<br />
==References==<br />
<br />
[1] http://groups.google.com/group/hugin-ptx/browse_thread/thread/dbb85dad10715586<br />
<br />
[2] http://rawtherapee.com/forum/viewtopic.php?p=17063#17063<br />
<br />
[3] https://blueprints.launchpad.net/hugin/+spec/extendedpreview<br />
<br />
[[Category:Software:Platform:Windows]]<br />
[[Category:Software:Platform:Mac OS X]]<br />
[[Category:Software:Platform:Linux]]<br />
[[Category:Software:Hugin]]<br />
[[Category:Community:Project]]</div>Dipak