
I vote to accept GIL into Boost This is a short review as most comments/suggestions have already been made in the mailing list. My review is from the library user point of view. Design ====== It's GIL strength. Implementation ============= Average. The dynamic_image, io and numeric extensions are not part of the review but they should. They have not been added because the authors consider the numeric extensions are not fully optimized. Although there are claims of performance superiority no benchmarks are provided. The most common image operations, save jpeg and downsample jpeg are provided but it is not clear they are optimized for speed. Useful downsample jpeg performance optimizations are not provided. Check epeg. "It makes use of libjpeg features of being able to load an image by only decoding the DCT coefficients needed to reconstruct an image of the size desired. This gives a massive speedup. If you do not try to access the pixels in a format other than YUV (or GRAY8 if the source is grayscale) then it also avoids colorspace conversions as well." I don't find the library syntax very easy but I don't have clear suggestions either. Documentation ============= Good reference documentation in the design guide but awful documentation for the library end user. The tutorial could be improved by emulating Boost.asio clear step-by-step tutorial examples. The numeric extensions are not documented and there is not much use for the core library without the numeric extensions. I miss the traditional Boost-like docs, with Rationale, FAQ, ... Potential usefulness ================ Great potential, somewhat hampered by providing just the image container. Did you try to use the library? With what compiler? Did you have any problems? ================================================================ Yes g++ 4.0.2 x86_64 The library had not been tested on x86_64 so a few bugs were uncovered before the review started How much effort did you put into your evaluation? A glance? A quick reading? In-depth study? ============================================================================ 5-10 hours. Wrote a few programs and had multiple private e-mails with the developers. Are you knowledgeable about the problem domain? ========================================== Yes but not an expert Overall strengths ============== - Library design - Willingness of the developers to continue to improve the library - Opportunity for VIGRA or other specialized libraries to provide algorithms as separate Boost libraries Weaknesses ========== - No algorithms library provided (= no basic set of image processing algorithms provided) - Theoretical approach (core is container only) - Lacks what VIGRA does well (practical image processing, filters, segmentation, image analysis ..) - Not conforming to Boost standards (directory structure, docs, tests, ...) Thanks for providing GIL and I hope you continue to develop it. I will use it !

Hi Jose, Thank you very much for your review! Just one note: The dynamic_image and io libraries are part of the review. They are included in the Doxygen documentation and discussed in the design guide. Indeed our IO library could be better optimized for performance. The only extension that is not part of the review is the numeric extension, which requires a separate download and is not documented (other than comments in the code). You can think of the numeric extension as an extensive GIL code sample. I apologize if this was unclear. Lubomir

On Tue, Oct 24, 2006 at 11:10:18PM +0200, Jose wrote:
I vote to accept GIL into Boost
Seconded. I like it (by now)! :-) Really nothing substantial to add to what the other reviewers said. To recap my personal issues: - lack of algorithms (nicely complemented by Vigra) - could be easier to extend at the pixel access level (c.f. factoring out data access as a concept) My background is graphics programming and computer vision. I have been using Vigra for a few years. Cheers, -- Thorsten
participants (3)
-
Jose
-
Lubomir Bourdev
-
Thorsten Behrens