aboutsummaryrefslogtreecommitdiff
path: root/java/.svn/text-base/README.svn-base
diff options
context:
space:
mode:
Diffstat (limited to 'java/.svn/text-base/README.svn-base')
-rw-r--r--java/.svn/text-base/README.svn-base55
1 files changed, 55 insertions, 0 deletions
diff --git a/java/.svn/text-base/README.svn-base b/java/.svn/text-base/README.svn-base
new file mode 100644
index 0000000..f586682
--- /dev/null
+++ b/java/.svn/text-base/README.svn-base
@@ -0,0 +1,55 @@
+TurboJPEG/OSS Java Wrapper
+==========================
+
+TurboJPEG/OSS can optionally be built with a Java Native Interface wrapper,
+which allows the TurboJPEG/OSS dynamic library to be loaded and used directly
+from Java applications. The Java front end for this is defined in several
+classes located under org/libjpegturbo/turbojpeg. The source code for these
+Java classes is licensed under a BSD-style license, so the files can be
+incorporated directly into both open source and proprietary projects without
+restriction. A Java archive (JAR) file containing these classes is also
+shipped with the "official" distribution packages of libjpeg-turbo.
+
+TJExample.java, which should also be located in the same directory as this
+README file, demonstrates how to use the TurboJPEG/OSS Java front end to
+compress and decompress JPEG images in memory.
+
+
+Performance Pitfalls
+--------------------
+
+The TurboJPEG Java front end defines several convenience methods which can
+allocate image buffers or instantiate classes to hold the result of compress,
+decompress, or transform operations. However, if you use these methods, then
+be mindful of the amount of new data you are creating on the heap. It may be
+necessary to manually invoke the garbage collector to prevent heap exhaustion
+or to prevent performance degradation. Background garbage collection can kill
+performance, particularly in a multi-threaded environment (Java pauses all
+threads when the GC runs.)
+
+The Java front end always gives you the option of pre-allocating your own
+source and destination buffers, which allows you to re-use these buffers for
+compressing/decompressing multiple images. If the image sequence you are
+compressing or decompressing consists of images of the same size, then
+pre-allocating the buffers is recommended.
+
+
+Note for OS X users
+-------------------
+
+/usr/lib, the directory under which libturbojpeg.dylib is installed on Mac
+systems, is not part of the normal Java library path. Thus, when running a
+Java application that uses TurboJPEG/OSS on Mac systems, you will need to pass
+an argument of -Djava.library.path=/usr/lib to java.
+
+
+Note for Solaris users
+----------------------
+
+/opt/libjpeg-turbo/lib, the directory under which libturbojpeg.so is installed
+on Solaris systems, is not part of the normal Java library path. Thus, when
+running a Java application that uses TurboJPEG/OSS on Solaris systems, you will
+need to pass an argument of -Djava.library.path=/opt/libjpeg-turbo/lib to java.
+If using a 64-bit data model, then instead pass an argument of
+-Djava.library.path=/opt/libjpeg-turbo/lib/amd64 to use the 64-bit version of
+libturbojpeg.so.