Difference between revisions of "2D-Packing Rectangles and Images"
(→2D-Packing Rectangles) |
(→Publications) |
||
(12 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
--[[User:Thiebaut|D. Thiebaut]] ([[User talk:Thiebaut|talk]]) 10:26, 8 July 2013 (EDT) | --[[User:Thiebaut|D. Thiebaut]] ([[User talk:Thiebaut|talk]]) 10:26, 8 July 2013 (EDT) | ||
---- | ---- | ||
− | <center> <font size="+2">Page under construction!</font> <br \>[[File:UnderConstruction.jpg|200px]] </center> | + | <!--center> <font size="+2">Page under construction!</font> <br \>[[File:UnderConstruction.jpg|200px]] </center--> |
<br /> | <br /> | ||
Line 12: | Line 12: | ||
<br /> | <br /> | ||
The 2D-Packing Algorithm and the videos were generated by | The 2D-Packing Algorithm and the videos were generated by | ||
− | Dominique Thiebaut, (dthiebaut at smith.edu) Dept. Computer Science, Smith College, Northampton, MA 01060, USA. | + | [http://cs.smith.edu/dftwiki/ Dominique Thiebaut], ([mailto:dthiebaut@smith.edu dthiebaut at smith.edu]), [http://cs.smith.edu/ Dept. Computer Science], [http://smith.edu Smith College], [http://www.northamptonma.gov/ Northampton, MA 01060, USA]. |
</bluebox> | </bluebox> | ||
<br /> | <br /> | ||
<br /> | <br /> | ||
+ | __TOC__ | ||
+ | <br /> | ||
+ | <br /> | ||
+ | |||
==One-thread 2D-Packing== | ==One-thread 2D-Packing== | ||
Line 65: | Line 69: | ||
|} | |} | ||
+ | =Packing a Million Rectangles= | ||
+ | {|cellpadding="5" | ||
+ | | | ||
+ | <videoflash>4_IHdi0quNc</videoflash> | ||
+ | | | ||
+ | This is a real-time screen capture of the packing of 1 million rectangles implemented in Processing. The heuristic used is described in "2D Packing Images on a Large Scale" authored by D. Thiebaut and to be presented at INFOCOMP 2013. <br /> | ||
+ | In the video the rectangles are randomly sized and packed in a greedy fashion, the rectangle with the largest height put in the largest and left-most space available. | ||
+ | The packing was captured on a 2.8 GHz Mac Pro. The application is serial, and not threaded. The Processing GUI thread works in parallel to the packing and displays (in a choppy way) the rectangles packed so far. The total time is less than 8 real-time seconds. | ||
+ | |} | ||
+ | |||
+ | <br /> | ||
+ | <br /> | ||
+ | =Packing Photographs= | ||
+ | The collage below contains about 200 photographs, some of them duplicated. They have all been resized by a random factor. The dimensions are not all the same as some photographs have been cropped to improve their artistic value. They represent sky shots taken in Northampton, MA, over the course of two years. All photos belong to this wiki owner. | ||
+ | <br /> | ||
+ | <center>[[Image:NohoSkiesCollage1.png | 700px]]</center> | ||
+ | <br /> | ||
+ | The collage below contains 2,200 photographs. The photographs have been resized by a random factor, and not all photographs have the same aspect ratio. All photographs owned this wiki owner. | ||
+ | <br /> | ||
+ | <center>[[Image:OneYear_2_2K.png| 700px]]</center> | ||
<br /> | <br /> | ||
− | = | + | |
− | + | =Publications= | |
+ | |||
+ | * [http://cs.smith.edu/dftwiki/images/PackingImagesOnALargeScale_Thiebaut_InfoComp2013.pdf 2D-Packing on a Large Scale], D. Thiebaut, in ''Proceedings of INFOCOMP 2013'', Lisbon, Portugal, Nov. 2013. (Awarded best paper at INFOCOMP 2013.) | ||
+ | :::'' '''Abstract''': We present a new heuristic for 2D-packing of rectangles inside a rectangular area where the aesthetics of the resulting packing is amenable to generating large collages of photographs or images. The heuristic works by maintaining a sorted collection of vertical segments covering the area to be packed. The segments define the leftmost boundaries of rectangular and possibly overlapping areas that are yet to be covered. The use of this data structure allows for easily defining ahead of time arbitrary rectangular areas that the packing must avoid. The 2D-packing heuristic presented does not allow the rectangles to be rotated during the packing, but could easily be modified to implement this feature. The execution time of the present heuristic on various benchmark problems is on par with recently published research in this area, including some that do allow rotation of items while packing. Several examples of image packing are presented.'' | ||
+ | |||
+ | * [http://cs.smith.edu/dftwiki/images/2DpackingBillionThiebautPaperIaria_7028.pdf 2D Packing on a Large Scale: Packing a Billion Rectangles under 10 Minutes], D. Thiebaut, [http://www.iariajournals.org/systems_and_measurements/sysmea_v7_n12_2014_paged.pdf Int'l Journal in Advances in Systems and Measurements], vol. 7, no. 1&2, pp. 80-90, July 2014. | ||
+ | :::'' '''Abstract''': We present a new heuristic for 2D-packing of rectangles inside a rectangular area where the aesthetics of the resulting packing is amenable to generating large collages of photographs or images. The heuristic works by maintaining a sorted collection of vertical segments covering the area to be packed. The segments define the leftmost boundaries of rectangular and possibly overlapping areas that are yet to be covered. The use of this data structure allows for easily defining ahead of time arbitrary rectangular areas that the packing must avoid. The 2D-packing heuristic presented does not allow the rectangles to be rotated during the packing, but could easily be modified to implement this feature. The execution time of the present heuristic on various benchmark problems is on par with recently published research in this area, including some that do allow rotation of items while packing. Several examples of image packing are presented. A multithreaded version of our core packing algorithm running on a 32-core 2.8 GHz processor packs a billion rectangles in under 10 minutes.'' | ||
<br /> | <br /> | ||
<br /> | <br /> |
Latest revision as of 09:15, 23 August 2014
--D. Thiebaut (talk) 10:26, 8 July 2013 (EDT)
2D-Packing Rectangles
This page is aliased to the easier to use URL: http://tinyurl.com/2DPacking.
It contains information about a 2D-rectangular packing heuristic developed by D. Thiebaut to create collages of large collection of images.
The 2D-Packing Algorithm and the videos were generated by
Dominique Thiebaut, (dthiebaut at smith.edu), Dept. Computer Science, Smith College, Northampton, MA 01060, USA.
Contents
One-thread 2D-Packing
|
A demo made of a 2D-Packing heuristic. The algorithm is given 10,000 randomly generated rectangles. |
Multithreaded 2D-Packing
|
A demo made of a 2D-Packing heuristic. The algorithm is given 10,000 randomly generated rectangles. |
Multithreaded 2D-Packing with pre-placed items
|
A demo made of a 2D-Packing heuristic. The algorithm is given 10,000 randomly generated rectangles, 5 of which have been modified to have fixed positions, and specific locations in the final rectangular surface. These are the pre-placed items.
|
Packing a Million Rectangles
|
This is a real-time screen capture of the packing of 1 million rectangles implemented in Processing. The heuristic used is described in "2D Packing Images on a Large Scale" authored by D. Thiebaut and to be presented at INFOCOMP 2013. |
Packing Photographs
The collage below contains about 200 photographs, some of them duplicated. They have all been resized by a random factor. The dimensions are not all the same as some photographs have been cropped to improve their artistic value. They represent sky shots taken in Northampton, MA, over the course of two years. All photos belong to this wiki owner.
The collage below contains 2,200 photographs. The photographs have been resized by a random factor, and not all photographs have the same aspect ratio. All photographs owned this wiki owner.
Publications
- 2D-Packing on a Large Scale, D. Thiebaut, in Proceedings of INFOCOMP 2013, Lisbon, Portugal, Nov. 2013. (Awarded best paper at INFOCOMP 2013.)
- Abstract: We present a new heuristic for 2D-packing of rectangles inside a rectangular area where the aesthetics of the resulting packing is amenable to generating large collages of photographs or images. The heuristic works by maintaining a sorted collection of vertical segments covering the area to be packed. The segments define the leftmost boundaries of rectangular and possibly overlapping areas that are yet to be covered. The use of this data structure allows for easily defining ahead of time arbitrary rectangular areas that the packing must avoid. The 2D-packing heuristic presented does not allow the rectangles to be rotated during the packing, but could easily be modified to implement this feature. The execution time of the present heuristic on various benchmark problems is on par with recently published research in this area, including some that do allow rotation of items while packing. Several examples of image packing are presented.
- 2D Packing on a Large Scale: Packing a Billion Rectangles under 10 Minutes, D. Thiebaut, Int'l Journal in Advances in Systems and Measurements, vol. 7, no. 1&2, pp. 80-90, July 2014.
- Abstract: We present a new heuristic for 2D-packing of rectangles inside a rectangular area where the aesthetics of the resulting packing is amenable to generating large collages of photographs or images. The heuristic works by maintaining a sorted collection of vertical segments covering the area to be packed. The segments define the leftmost boundaries of rectangular and possibly overlapping areas that are yet to be covered. The use of this data structure allows for easily defining ahead of time arbitrary rectangular areas that the packing must avoid. The 2D-packing heuristic presented does not allow the rectangles to be rotated during the packing, but could easily be modified to implement this feature. The execution time of the present heuristic on various benchmark problems is on par with recently published research in this area, including some that do allow rotation of items while packing. Several examples of image packing are presented. A multithreaded version of our core packing algorithm running on a 32-core 2.8 GHz processor packs a billion rectangles in under 10 minutes.