diff options
author | wiz <wiz@pkgsrc.org> | 2003-12-21 21:29:08 +0000 |
---|---|---|
committer | wiz <wiz@pkgsrc.org> | 2003-12-21 21:29:08 +0000 |
commit | 3eca58ed5946bab08f51004f40ce11af87cc3b2b (patch) | |
tree | 5875c58dc5879c9d3f1237453975ec376f6766c9 | |
parent | 93b1bd0e72c7194dbf54019e284829695643b706 (diff) | |
download | pkgsrc-3eca58ed5946bab08f51004f40ce11af87cc3b2b.tar.gz |
Initial import of jpeg_ls-2.2:
This software package contains an implementation of JPEG-LS, the
emerging lossless/near-lossless compression standard for continuous-tone
images being developed by ISO/IEC JTC1/SC29/WG1 (draft document
FCD14495 as of November 1997). The names of the executables in the
software package derive from the acronym LOCO, as the core of the
new standard is based on the LOCO-I algorithm (LOw COmplexity
LOssless COmpression for Images) developed at Hewlett-Packard
Laboratories (reference: M. Weinberger, G. Seroussi, G. Sapiro,
"LOCO-I: A Low Complexity, Context-Based, Lossless Image Compression
Algorithm," Proc. IEEE Data Compression Conference, Snowbird, Utah,
March-April 1996).
The term "near-lossless compression" refers to a lossy algorithm
for which each decompressed image sample differs from the corresponding
original image sample by not more than a pre-specified value, the
(usually small) "loss." Lossless compression corresponds to loss=0.
Even though the term "continuous-tone image" refers in principle
to any image whose components have more than one bit per sample,
palletized images may require a reordering of the color palette
for best compression results using LOCO-I on the array of color
indices. This functionality is not implemented in the present
software, although it is supported by the new standard, and is easy
enough to implement with the tools given. Notice, however, that
LOCO-I and JPEG-LS were not designed, and might not give optimal
performance, for images that have been palletized through dithering.
-rw-r--r-- | graphics/jpeg_ls/DESCR | 25 | ||||
-rw-r--r-- | graphics/jpeg_ls/Makefile | 28 | ||||
-rw-r--r-- | graphics/jpeg_ls/PLIST | 11 | ||||
-rw-r--r-- | graphics/jpeg_ls/distinfo | 11 | ||||
-rw-r--r-- | graphics/jpeg_ls/patches/patch-aa | 31 | ||||
-rw-r--r-- | graphics/jpeg_ls/patches/patch-ab | 31 | ||||
-rw-r--r-- | graphics/jpeg_ls/patches/patch-ac | 25 | ||||
-rw-r--r-- | graphics/jpeg_ls/patches/patch-ad | 31 | ||||
-rw-r--r-- | graphics/jpeg_ls/patches/patch-ae | 31 | ||||
-rw-r--r-- | graphics/jpeg_ls/patches/patch-af | 22 | ||||
-rw-r--r-- | graphics/jpeg_ls/patches/patch-ag | 25 |
11 files changed, 271 insertions, 0 deletions
diff --git a/graphics/jpeg_ls/DESCR b/graphics/jpeg_ls/DESCR new file mode 100644 index 00000000000..f7d883f126e --- /dev/null +++ b/graphics/jpeg_ls/DESCR @@ -0,0 +1,25 @@ +This software package contains an implementation of JPEG-LS, the +emerging lossless/near-lossless compression standard for continuous-tone +images being developed by ISO/IEC JTC1/SC29/WG1 (draft document +FCD14495 as of November 1997). The names of the executables in the +software package derive from the acronym LOCO, as the core of the +new standard is based on the LOCO-I algorithm (LOw COmplexity +LOssless COmpression for Images) developed at Hewlett-Packard +Laboratories (reference: M. Weinberger, G. Seroussi, G. Sapiro, +"LOCO-I: A Low Complexity, Context-Based, Lossless Image Compression +Algorithm," Proc. IEEE Data Compression Conference, Snowbird, Utah, +March-April 1996). + +The term "near-lossless compression" refers to a lossy algorithm +for which each decompressed image sample differs from the corresponding +original image sample by not more than a pre-specified value, the +(usually small) "loss." Lossless compression corresponds to loss=0. +Even though the term "continuous-tone image" refers in principle +to any image whose components have more than one bit per sample, +palletized images may require a reordering of the color palette +for best compression results using LOCO-I on the array of color +indices. This functionality is not implemented in the present +software, although it is supported by the new standard, and is easy +enough to implement with the tools given. Notice, however, that +LOCO-I and JPEG-LS were not designed, and might not give optimal +performance, for images that have been palletized through dithering. diff --git a/graphics/jpeg_ls/Makefile b/graphics/jpeg_ls/Makefile new file mode 100644 index 00000000000..e7e75f01d89 --- /dev/null +++ b/graphics/jpeg_ls/Makefile @@ -0,0 +1,28 @@ +# $NetBSD: Makefile,v 1.1.1.1 2003/12/21 21:29:08 wiz Exp $ +# + +DISTNAME= jpeg_ls_v2.2 +PKGNAME= jpeg_ls-2.2 +CATEGORIES= graphics +MASTER_SITES= http://www.ece.ubc.ca/spmg/research/jpeg/jpeg_ls/ver-2.2/ + +MAINTAINER= wiz@NetBSD.org +HOMEPAGE= http://www.ece.ubc.ca/spmg/research/jpeg/jpeg_ls/jpegls.html +COMMENT= JPEG-LS codec (lossless/near-lossless codec) + +USE_BUILDLINK2= yes +BUILD_DIRS= ${WRKSRC}/Decoder ${WRKSRC}/Encoder +MAKEFILE= makefile + +LICENSE= no-commercial-use + +do-install: + ${INSTALL_PROGRAM} ${WRKSRC}/Decoder/locod ${PREFIX}/bin + ${INSTALL_PROGRAM} ${WRKSRC}/Encoder/locoe ${PREFIX}/bin + ${INSTALL_DATA_DIR} ${PREFIX}/share/doc/jpeg_ls + ${INSTALL_DATA} ${WRKSRC}/README* ${PREFIX}/share/doc/jpeg_ls + ${INSTALL_DATA_DIR} ${PREFIX}/share/examples/jpeg_ls + ${INSTALL_DATA} ${WRKSRC}/*.jls ${PREFIX}/share/examples/jpeg_ls + ${INSTALL_DATA} ${WRKSRC}/table* ${PREFIX}/share/examples/jpeg_ls + +.include "../../mk/bsd.pkg.mk" diff --git a/graphics/jpeg_ls/PLIST b/graphics/jpeg_ls/PLIST new file mode 100644 index 00000000000..1e4244f8b56 --- /dev/null +++ b/graphics/jpeg_ls/PLIST @@ -0,0 +1,11 @@ +@comment $NetBSD: PLIST,v 1.1.1.1 2003/12/21 21:29:08 wiz Exp $ +bin/locod +bin/locoe +share/doc/jpeg_ls/README +share/doc/jpeg_ls/README.DIST +share/examples/jpeg_ls/lena24b.jls +share/examples/jpeg_ls/lena8b.jls +share/examples/jpeg_ls/table24_no_red +share/examples/jpeg_ls/table_r +@dirrm share/examples/jpeg_ls +@dirrm share/doc/jpeg_ls diff --git a/graphics/jpeg_ls/distinfo b/graphics/jpeg_ls/distinfo new file mode 100644 index 00000000000..6301a1f4821 --- /dev/null +++ b/graphics/jpeg_ls/distinfo @@ -0,0 +1,11 @@ +$NetBSD: distinfo,v 1.1.1.1 2003/12/21 21:29:08 wiz Exp $ + +SHA1 (jpeg_ls_v2.2.tar.gz) = d4fde989359eebdc98cf57feeac3076fdfd06c64 +Size (jpeg_ls_v2.2.tar.gz) = 854276 bytes +SHA1 (patch-aa) = 0b6996179e458c785043aa728600bdc56d96baaf +SHA1 (patch-ab) = e87c51ca50be30ae6c07094fd935fedee8a1a2f5 +SHA1 (patch-ac) = cdb1d11427c50062df26d4d4c73eca041d08c972 +SHA1 (patch-ad) = fdfa574119fe0bf0b4cdfd110e7b20367f12493d +SHA1 (patch-ae) = 5ca83b5d3ec9a14d017144c8e6cfb1b0bb5c7e9d +SHA1 (patch-af) = a0558fef1b2b79343bd6af4cc205e42b65621944 +SHA1 (patch-ag) = 0fcd2ebda598b5d7db62437fda16242a28689295 diff --git a/graphics/jpeg_ls/patches/patch-aa b/graphics/jpeg_ls/patches/patch-aa new file mode 100644 index 00000000000..f3b09cd0136 --- /dev/null +++ b/graphics/jpeg_ls/patches/patch-aa @@ -0,0 +1,31 @@ +$NetBSD: patch-aa,v 1.1.1.1 2003/12/21 21:29:08 wiz Exp $ + +--- Decoder/global.h.orig Tue Jun 22 21:04:33 1999 ++++ Decoder/global.h +@@ -95,8 +95,6 @@ extern char *plane_int_string, + *pixel_int_string; + + +-#define BIG_ENDIAN 1 +- + typedef struct jpeg_ls { + + int columns, /* The number of columns */ +@@ -318,7 +316,7 @@ extern int alpha; + extern int vLUT[3][2 * LUTMAX16]; + extern int lutmax; + extern int classmap[CONTEXTS1]; +-extern int *qdiv0, *qdiv, /* quantization table (division via look-up) */ ++extern int *qdiv0, *qdiv1, /* quantization table (division via look-up) */ + *qmul0, *qmul; /* dequantization table */ + + /* statistics tables */ +@@ -359,7 +357,7 @@ void prepareLUTs(); + void prepare_qtables(int, int); + void init_stats(int); + +-#ifdef BIG_ENDIAN ++#ifdef NEVER_ASSUME_BIG_ENDIAN + # define ENDIAN8(x) (x) + # define ENDIAN16(x) (x) + #else diff --git a/graphics/jpeg_ls/patches/patch-ab b/graphics/jpeg_ls/patches/patch-ab new file mode 100644 index 00000000000..2eb233de15b --- /dev/null +++ b/graphics/jpeg_ls/patches/patch-ab @@ -0,0 +1,31 @@ +$NetBSD: patch-ab,v 1.1.1.1 2003/12/21 21:29:08 wiz Exp $ + +--- Decoder/initialize.c.orig Tue Jun 22 21:05:54 1999 ++++ Decoder/initialize.c +@@ -63,7 +63,7 @@ int vLUT[3][2 * LUTMAX16]; + + int classmap[CONTEXTS1]; + +-int *qdiv0, *qdiv, /* quantization table (division via look-up) */ ++int *qdiv0, *qdiv1, /* quantization table (division via look-up) */ + *qmul0, *qmul; /* dequantization table */ + + int N[TOT_CONTEXTS], +@@ -206,7 +206,7 @@ void prepare_qtables(int absize, int NEA + perror("qdiv table"); + exit(10); + } +- qdiv = qdiv0+absize-1; ++ qdiv1 = qdiv0+absize-1; + + if ( (qmul0 = (int *)calloc(2*beta-1,sizeof(int)))==NULL ) { + perror("qmul table"); +@@ -219,7 +219,7 @@ void prepare_qtables(int absize, int NEA + qdiff = - ( (NEAR-diff)/quant ); + else + qdiff = ( NEAR + diff )/quant; +- qdiv[diff] = qdiff; ++ qdiv1[diff] = qdiff; + } + for ( qdiff = -(beta-1); qdiff<beta; qdiff++ ) { + diff = quant*qdiff; diff --git a/graphics/jpeg_ls/patches/patch-ac b/graphics/jpeg_ls/patches/patch-ac new file mode 100644 index 00000000000..1fc92381f36 --- /dev/null +++ b/graphics/jpeg_ls/patches/patch-ac @@ -0,0 +1,25 @@ +$NetBSD: patch-ac,v 1.1.1.1 2003/12/21 21:29:08 wiz Exp $ + +--- Decoder/makefile.orig Tue Jun 22 20:42:53 1999 ++++ Decoder/makefile +@@ -1,8 +1,8 @@ +-CC=cc ++#CC=cc + PKGNAME=loco +-OPTFLAGS= -Aa $(CFL) -DBIG_ENDIAN ++#OPTFLAGS= -Aa $(CFL) -DBIG_ENDIAN + +-CFLAGS = $(OPTFLAGS) $(VFL) $(DFL) -DPGMPREFIX=\"$(PREFIX)\" -DMELCODE -DEXTERNDISTRIB -Dinline="" -DNDEBUG ++CFLAGS += $(OPTFLAGS) $(VFL) $(DFL) -DPGMPREFIX=\"$(PREFIX)\" -DMELCODE -DEXTERNDISTRIB -Dinline="" -DNDEBUG + + LNKFLAGS = -lm + +@@ -10,6 +10,8 @@ SRCS = global.c jpegmark.c initialize.c + INCL = global.h jpegmark.h bitio.h + + EOBJS = global.o jpegmark.o initialize.o decoder.o lossless_d.o lossy_d.o bitio.o melcode.o ++ ++all: loco + + loco: + $(MAKE) -$(MAKEFLAGS) VFL="" PREFIX="loco" codec diff --git a/graphics/jpeg_ls/patches/patch-ad b/graphics/jpeg_ls/patches/patch-ad new file mode 100644 index 00000000000..b8e7ec2cfcd --- /dev/null +++ b/graphics/jpeg_ls/patches/patch-ad @@ -0,0 +1,31 @@ +$NetBSD: patch-ad,v 1.1.1.1 2003/12/21 21:29:08 wiz Exp $ + +--- Encoder/global.h.orig Tue Jun 22 20:14:15 1999 ++++ Encoder/global.h +@@ -97,8 +97,6 @@ extern char *plane_int_string, + *pixel_int_string; + + +-#define BIG_ENDIAN 1 +- + typedef struct jpeg_ls { + + int columns, /* The number of columns */ +@@ -318,7 +316,7 @@ extern int alpha; + extern int vLUT[3][2 * LUTMAX16]; + extern int lutmax; + extern int classmap[CONTEXTS1]; +-extern int *qdiv0, *qdiv, /* quantization table (division via look-up) */ ++extern int *qdiv0, *qdiv1, /* quantization table (division via look-up) */ + *qmul0, *qmul; /* dequantization table */ + + /* statistics tables */ +@@ -365,7 +363,7 @@ void init_stats(int); + + + +-#ifdef BIG_ENDIAN ++#ifdef NEVER_ASSUME_BIG_ENDIAN + # define ENDIAN8(x) (x) + # define ENDIAN16(x) (x) + #else diff --git a/graphics/jpeg_ls/patches/patch-ae b/graphics/jpeg_ls/patches/patch-ae new file mode 100644 index 00000000000..1ea1959181b --- /dev/null +++ b/graphics/jpeg_ls/patches/patch-ae @@ -0,0 +1,31 @@ +$NetBSD: patch-ae,v 1.1.1.1 2003/12/21 21:29:09 wiz Exp $ + +--- Encoder/initialize.c.orig Tue Jun 22 20:15:24 1999 ++++ Encoder/initialize.c +@@ -64,7 +64,7 @@ int vLUT[3][2 * LUTMAX16]; + + int classmap[CONTEXTS1]; + +-int *qdiv0, *qdiv, /* quantization table (division via look-up) */ ++int *qdiv0, *qdiv1, /* quantization table (division via look-up) */ + *qmul0, *qmul; /* dequantization table */ + + int N[TOT_CONTEXTS], +@@ -229,7 +229,7 @@ void prepare_qtables(int absize, int NEA + perror("qdiv table"); + exit(10); + } +- qdiv = qdiv0+absize-1; ++ qdiv1 = qdiv0+absize-1; + + if ( (qmul0 = (int *)calloc(2*beta-1,sizeof(int)))==NULL ) { + perror("qmul table"); +@@ -242,7 +242,7 @@ void prepare_qtables(int absize, int NEA + qdiff = - ( (NEAR-dif)/quant ); + else + qdiff = ( NEAR + dif )/quant; +- qdiv[dif] = qdiff; ++ qdiv1[dif] = qdiff; + } + for ( qdiff = -(beta-1); qdiff<beta; qdiff++ ) { + dif = quant*qdiff; diff --git a/graphics/jpeg_ls/patches/patch-af b/graphics/jpeg_ls/patches/patch-af new file mode 100644 index 00000000000..1809f375abe --- /dev/null +++ b/graphics/jpeg_ls/patches/patch-af @@ -0,0 +1,22 @@ +$NetBSD: patch-af,v 1.1.1.1 2003/12/21 21:29:09 wiz Exp $ + +--- Encoder/lossy_e.c.orig Tue Jun 22 20:17:12 1999 ++++ Encoder/lossy_e.c +@@ -91,7 +91,7 @@ inline void lossy_regular_mode(int Q, in + Px = Px + (SIGN) * C[Q]; + clip(Px,alpha); + Errval = SIGN * (Ix - Px); +- qErrval = qdiv[Errval]; ++ qErrval = qdiv1[Errval]; + iqErrval = qmul[qErrval]; + Rx = Px + SIGN * iqErrval; + +@@ -209,7 +209,7 @@ pixel lossy_end_of_run(pixel Ra, pixel R + Errval = -Errval; + } + +- qErrval = qdiv[Errval]; ++ qErrval = qdiv1[Errval]; + iqErrval = qmul[qErrval]; + + if ( RItype || (Rb >= Ra) ) diff --git a/graphics/jpeg_ls/patches/patch-ag b/graphics/jpeg_ls/patches/patch-ag new file mode 100644 index 00000000000..7d5457296e1 --- /dev/null +++ b/graphics/jpeg_ls/patches/patch-ag @@ -0,0 +1,25 @@ +$NetBSD: patch-ag,v 1.1.1.1 2003/12/21 21:29:09 wiz Exp $ + +--- Encoder/makefile.orig Tue Jun 22 20:48:07 1999 ++++ Encoder/makefile +@@ -1,8 +1,8 @@ +-CC=cc ++#CC=cc + PKGNAME=loco +-OPTFLAGS= -Aa $(CFL) -DBIG_ENDIAN ++#OPTFLAGS= -Aa $(CFL) -DBIG_ENDIAN + +-CFLAGS = $(OPTFLAGS) $(VFL) $(DFL) -DPGMPREFIX=\"$(PREFIX)\" -DMELCODE -DEXTERNDISTRIB -Dinline="" -DNDEBUG ++CFLAGS += $(OPTFLAGS) $(VFL) $(DFL) -DPGMPREFIX=\"$(PREFIX)\" -DMELCODE -DEXTERNDISTRIB -Dinline="" -DNDEBUG + + LNKFLAGS = -lm + +@@ -10,6 +10,8 @@ SRCS = global.c jpegmark.c initialize.c + INCL = global.h jpegmark.h bitio.h + + EOBJS = global.o jpegmark.o initialize.o encoder.o lossless_e.o lossy_e.o bitio.o melcode.o ++ ++all: loco + + loco: + $(MAKE) -$(MAKEFLAGS) VFL="" PREFIX="loco" codec |