Main > Programming > Libraries >

liboil 0.3.12

liboil 0.3.12

Sponsored Links

liboil 0.3.12 Ranking & Summary

RankingClick at the star to rank
Ranking Level
User Review: 0 (0 times)
File size: 0.69 MB
Platform: Any Platform
License: LGPL (GNU Lesser General Public License)
Price:
Downloads: 893
Date added: 2007-05-29
Publisher: David Schleef

liboil 0.3.12 description

Liboil is a library of simple functions that are optimized for various CPUs. These functions are generally loops implementing simple algorithms, such as converting an array of N integers to floating-point numbers or multiplying and summing an array of N numbers.
Such functions are candidates for significant optimization using various techniques, especially by using extended instructions provided by modern CPUs (Altivec, MMX, SSE, etc.).
Many multimedia applications and libraries already do similar things internally. The goal of this project is to consolidate some of the code used by various multimedia projects, and also make optimizations easier to use by a broader range of applications.
As of the liboil-0.3.0 release, Im actively encouraging other open-source projects to begin using liboil. Im happy to do much of work converting projects to use liboil, and especially, adding function classes and implementations to liboil that may be needed.
Liboil does not require GCC to build, but since it uses GCC-style inline assembly heavily, using GCC is strongly recommended. Versions of GCC prior to 3.2 are known to have problems compiling liboil correctly. GLib-2.0 is recommended to build a few of the examples, but is not required for anything that is installed.
Liboil may be modified and distributed in accordance with a very liberal license commonly referred to as "Two-Clause BSD". This license was chosen to make liboil useful to as many open-source projects as possible, and has the side effect of also allowing liboil to be used by proprietary applications.
Liboil has a number of function classes, which are primarily seen by a developer using the library as actual functions. One such function is:
void oil_tablelookup_u8 (uint8_t *dest, int dstr, uint8_t *src,
int sstr, uint8_t *table, int tablestride, int n);
This function performs a table lookup for each element in the src array, and puts the results in the dest array. In actuality, oil_tablelookup_u8 is a preprocessor macro that generates the correct code to call an indirect function.
Each function class has one or more function implementations, which are real functions that perform the exact same action as defined by the documentation for the function. Each class has one implementation that is the reference implementation. This reference implmentation is used to test the accuracy of other implementations.
Presumably, the non-reference implementations can perform the action faster than the reference implementation. Thus, the liboil initialization code (at runtime) checks each implementation in a class to determine the fastest implementation. Once this is done, the classs indirect function pointer points to the optimal implementation. After this, any calls to the function class (such as oil_tablelookup_u8() described above) will automatically be routed to the fastest implementation.
Implementations can be disabled either at compile time (e.g., assembly code for the wrong architecture) or at run time (e.g., implementation uses unsupported opcodes). This is done automatically. In addition, implementations may be disabled because they do not produce the same results as the reference implementation.
All of the function classes will be API and ABI stable through the lifetime of the 0.3 series. In addition, the 0.4 series will include a compatibility library that will provide the 0.3 ABI. This allows multiple liboil-using libraries to be linked into the same application without regard to using the same liboil ABI. New ABI versions (0.4, 0.5, etc.) are expected no less than 6 months apart. It is planned that all future versions of liboil will support at least two liboil ABI versions.
Enhancements:
- Support for the jpeg decoder was improved.
- C++ support was improved.
- Various speedups and smaller improvements were done.

liboil 0.3.12 Screenshot

Advertisements

liboil 0.3.12 Keywords

Bookmark liboil 0.3.12

Hyperlink code:
Link for forum:

liboil 0.3.12 Copyright

WareSeeker periodically updates pricing and software information of liboil 0.3.12 full version from the publisher, so some information may be slightly out-of-date. You should confirm all information before relying on it. Software piracy is theft, Using crack, password, serial numbers, registration codes, key generators is illegal and prevent future development of liboil 0.3.12 Edition. Download links are directly from our publisher sites, torrent files or links from rapidshare.com, yousendit.com or megaupload.com are not allowed

Allok Video Splitter 2.2.0 Review:

Name (Required)
Email(Required)
Captcha
Featured Software

Want to place your software product here?
Please contact us for consideration.

Contact WareSeeker.com
Related Software
Libunion is a library for manipulating unionfs unions. Free Download
libar is a generic array implementation. Free Download
Libface is a special library exclusively for face recognition and it is built over Intels OpenCV Library. Free Download
libConfig++ is a portable and flexible C++ library for reading configuration files which were written in C style syntax. Free Download
OSGEdit is an editor of 3D scenes for scientific applications and games, using the OpenSceneGraph (OSG) library. Free Download
Java-GNOME is a set of Java bindings for GNOME and GTK libraries, so GNOME applications can be written in Java. Free Download
libtsmux is a C library for muxing files into the MPEG Transport Stream container format. Free Download
Osalp is a project designed to implement a world class set of classes in C++ that will handle all of the audio functions. Free Download