From: DRC Date: Tue, 23 Nov 2010 17:11:06 +0000 (+0000) Subject: Allow arithmetic encoding/decoding to be disabled in CMake build X-Git-Tag: 1.0.90~16 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=245cfdf3d69ec5722277349e17f4fe121bc413f0;p=libjpeg-turbo Allow arithmetic encoding/decoding to be disabled in CMake build git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/trunk@301 632fc199-4ca6-4c93-a231-07263d6284db --- diff --git a/BUILDING.txt b/BUILDING.txt index aa1d1cf..9da5f20 100644 --- a/BUILDING.txt +++ b/BUILDING.txt @@ -105,6 +105,17 @@ libjpeg v8b. See README-turbo.txt for more information on libjpeg v7 and v8b emulation. +Arithmetic Coding Support +------------------------- + +Since the patent on arithmetic coding has expired, this functionality has been +included in this release of libjpeg-turbo. libjpeg-turbo's implementation is +based on the implementation in libjpeg v8b, but it works when emulating libjpeg +v7 or v6b as well. The default is to enable both arithmetic encoding and +decoding, but those who have philosophical objections to arithmetic coding can +add --without-arith-enc or --without-arith-dec to the configure command line to +disable encoding or decoding (respectively.) + ======================== Installing libjpeg-turbo @@ -416,6 +427,18 @@ libjpeg v8b. See README-turbo.txt for more information on libjpeg v7 and v8b emulation. +Arithmetic Coding Support +------------------------- + +Since the patent on arithmetic coding has expired, this functionality has been +included in this release of libjpeg-turbo. libjpeg-turbo's implementation is +based on the implementation in libjpeg v8b, but it works when emulating libjpeg +v7 or v6b as well. The default is to enable both arithmetic encoding and +decoding, but those who have philosophical objections to arithmetic coding can +add "-DWITH_ARITH_ENC=0" or "-DWITH_ARITH_DEC=0" to the cmake command line to +disable encoding or decoding (respectively.) + + ======================== Installing libjpeg-turbo ======================== diff --git a/CMakeLists.txt b/CMakeLists.txt index 560ca85..cf86b57 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -36,6 +36,28 @@ if(NOT DEFINED WITH_SIMD) set(WITH_SIMD 1) endif() +if(NOT DEFINED WITH_ARITH_ENC) + set(WITH_ARITH_ENC 1) +endif() + +if(NOT DEFINED WITH_ARITH_DEC) + set(WITH_ARITH_DEC 1) +endif() + +if(WITH_ARITH_ENC) + set(C_ARITH_CODING_SUPPORTED 1) + message(STATUS "Arithmetic encoding enabled") +else() + message(STATUS "Arithmetic encoding disabled") +endif() + +if(WITH_ARITH_DEC) + set(D_ARITH_CODING_SUPPORTED 1) + message(STATUS "Arithmetic decoding enabled") +else() + message(STATUS "Arithmetic decoding disabled") +endif() + set(JPEG_LIB_VERSION 62) set(DLL_VERSION ${JPEG_LIB_VERSION}) set(FULLVERSION ${DLL_VERSION}.0.0) @@ -90,14 +112,25 @@ include_directories(${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_SOURCE_DIR}) # Targets # -set(JPEG_SOURCES jaricom.c jcapimin.c jcapistd.c jcarith.c jccoefct.c jccolor.c - jcdctmgr.c jchuff.c jcinit.c jcmainct.c jcmarker.c jcmaster.c jcomapi.c - jcparam.c jcphuff.c jcprepct.c jcsample.c jctrans.c jdapimin.c jdapistd.c - jdarith.c jdatadst.c jdatasrc.c jdcoefct.c jdcolor.c jddctmgr.c jdhuff.c - jdinput.c jdmainct.c jdmarker.c jdmaster.c jdmerge.c jdphuff.c jdpostct.c - jdsample.c jdtrans.c jerror.c jfdctflt.c jfdctfst.c jfdctint.c jidctflt.c - jidctfst.c jidctint.c jidctred.c jquant1.c jquant2.c jutils.c jmemmgr.c - jmemnobs.c) +set(JPEG_SOURCES jcapimin.c jcapistd.c jccoefct.c jccolor.c jcdctmgr.c jchuff.c + jcinit.c jcmainct.c jcmarker.c jcmaster.c jcomapi.c jcparam.c jcphuff.c + jcprepct.c jcsample.c jctrans.c jdapimin.c jdapistd.c jdatadst.c jdatasrc.c + jdcoefct.c jdcolor.c jddctmgr.c jdhuff.c jdinput.c jdmainct.c jdmarker.c + jdmaster.c jdmerge.c jdphuff.c jdpostct.c jdsample.c jdtrans.c jerror.c + jfdctflt.c jfdctfst.c jfdctint.c jidctflt.c jidctfst.c jidctint.c jidctred.c + jquant1.c jquant2.c jutils.c jmemmgr.c jmemnobs.c) + +if(WITH_ARITH_ENC OR WITH_ARITH_DEC) + set(JPEG_SOURCES ${JPEG_SOURCES} jaricom.c) +endif() + +if(WITH_ARITH_ENC) + set(JPEG_SOURCES ${JPEG_SOURCES} jcarith.c) +endif() + +if(WITH_ARITH_DEC) + set(JPEG_SOURCES ${JPEG_SOURCES} jdarith.c) +endif() if(WITH_SIMD) add_definitions(-DWITH_SIMD) @@ -202,14 +235,18 @@ add_test(cjpeg-prog sharedlib/cjpeg -dct int -progressive -outfile testoutp.jpg add_test(cjpeg-prog-cmp ${CMAKE_COMMAND} -E compare_files ${CMAKE_SOURCE_DIR}/testimgp.jpg testoutp.jpg) add_test(jpegtran-prog sharedlib/jpegtran -outfile testoutt.jpg testoutp.jpg) add_test(jpegtran-prog-cmp ${CMAKE_COMMAND} -E compare_files ${CMAKE_SOURCE_DIR}/testimgint.jpg testoutt.jpg) +if(WITH_ARITH_ENC) add_test(cjpeg-ari sharedlib/cjpeg -dct int -arithmetic -outfile testoutari.jpg ${CMAKE_SOURCE_DIR}/testorig.ppm) add_test(cjpeg-ari-cmp ${CMAKE_COMMAND} -E compare_files ${CMAKE_SOURCE_DIR}/testimgari.jpg testoutari.jpg) +add_test(jpegtran-toari sharedlib/jpegtran -arithmetic -outfile testouta.jpg ${CMAKE_SOURCE_DIR}/testimgint.jpg) +add_test(jpegtran-toari-cmp ${CMAKE_COMMAND} -E compare_files ${CMAKE_SOURCE_DIR}/testimgari.jpg testouta.jpg) +endif() +if(WITH_ARITH_DEC) add_test(djpeg-ari sharedlib/djpeg -dct int -fast -ppm -outfile testoutari.ppm ${CMAKE_SOURCE_DIR}/testimgari.jpg) add_test(djpeg-ari-cmp ${CMAKE_COMMAND} -E compare_files ${CMAKE_SOURCE_DIR}/testimgari.ppm testoutari.ppm) -add_test(jpegtran-toari sharedlib/jpegtran -arithmetic -outfile testouta.jpg testoutint.jpg) -add_test(jpegtran-toari-cmp ${CMAKE_COMMAND} -E compare_files ${CMAKE_SOURCE_DIR}/testimgari.jpg testouta.jpg) -add_test(jpegtran-fromari sharedlib/jpegtran -outfile testouta.jpg testoutari.jpg) +add_test(jpegtran-fromari sharedlib/jpegtran -outfile testouta.jpg ${CMAKE_SOURCE_DIR}/testimgari.jpg) add_test(jpegtran-fromari-cmp ${CMAKE_COMMAND} -E compare_files ${CMAKE_SOURCE_DIR}/testimgint.jpg testouta.jpg) +endif() add_test(jpegtran-crop sharedlib/jpegtran -crop 120x90+20+50 -transpose -perfect -outfile testoutcrop.jpg ${CMAKE_SOURCE_DIR}/testorig.jpg) add_test(jpegtran-crop-cmp ${CMAKE_COMMAND} -E compare_files ${CMAKE_SOURCE_DIR}/testimgcrop.jpg testoutcrop.jpg) @@ -240,14 +277,18 @@ add_test(cjpeg-static-prog cjpeg-static -dct int -progressive -outfile testoutp. add_test(cjpeg-static-prog-cmp ${CMAKE_COMMAND} -E compare_files ${CMAKE_SOURCE_DIR}/testimgp.jpg testoutp.jpg) add_test(jpegtran-static-prog jpegtran-static -outfile testoutt.jpg testoutp.jpg) add_test(jpegtran-static-prog-cmp ${CMAKE_COMMAND} -E compare_files ${CMAKE_SOURCE_DIR}/testimgint.jpg testoutt.jpg) +if(WITH_ARITH_ENC) add_test(cjpeg-static-ari cjpeg-static -dct int -arithmetic -outfile testoutari.jpg ${CMAKE_SOURCE_DIR}/testorig.ppm) add_test(cjpeg-static-ari-cmp ${CMAKE_COMMAND} -E compare_files ${CMAKE_SOURCE_DIR}/testimgari.jpg testoutari.jpg) +add_test(jpegtran-static-toari jpegtran-static -arithmetic -outfile testouta.jpg ${CMAKE_SOURCE_DIR}/testimgint.jpg) +add_test(jpegtran-static-toari-cmp ${CMAKE_COMMAND} -E compare_files ${CMAKE_SOURCE_DIR}/testimgari.jpg testouta.jpg) +endif() +if(WITH_ARITH_DEC) add_test(djpeg-static-ari djpeg-static -dct int -fast -ppm -outfile testoutari.ppm ${CMAKE_SOURCE_DIR}/testimgari.jpg) add_test(djpeg-static-ari-cmp ${CMAKE_COMMAND} -E compare_files ${CMAKE_SOURCE_DIR}/testimgari.ppm testoutari.ppm) -add_test(jpegtran-static-toari jpegtran-static -arithmetic -outfile testouta.jpg testoutint.jpg) -add_test(jpegtran-static-toari-cmp ${CMAKE_COMMAND} -E compare_files ${CMAKE_SOURCE_DIR}/testimgari.jpg testouta.jpg) -add_test(jpegtran-static-fromari jpegtran-static -outfile testouta.jpg testoutari.jpg) +add_test(jpegtran-static-fromari jpegtran-static -outfile testouta.jpg ${CMAKE_SOURCE_DIR}/testimgari.jpg) add_test(jpegtran-static-fromari-cmp ${CMAKE_COMMAND} -E compare_files ${CMAKE_SOURCE_DIR}/testimgint.jpg testouta.jpg) +endif() add_test(jpegtran-static-crop jpegtran-static -crop 120x90+20+50 -transpose -perfect -outfile testoutcrop.jpg ${CMAKE_SOURCE_DIR}/testorig.jpg) add_test(jpegtran-static-crop-cmp ${CMAKE_COMMAND} -E compare_files ${CMAKE_SOURCE_DIR}/testimgcrop.jpg testoutcrop.jpg) diff --git a/ChangeLog.txt b/ChangeLog.txt index bb1aabf..f250c8a 100644 --- a/ChangeLog.txt +++ b/ChangeLog.txt @@ -19,7 +19,7 @@ packages. when the library is built with libjpeg v6b emulation. [7] Added arithmetic encoding and decoding support (can be disabled via -configure options) +configure or CMake options) Significant changes since 1.0.0 diff --git a/win/jconfig.h.in b/win/jconfig.h.in index e1fc20e..6413f08 100644 --- a/win/jconfig.h.in +++ b/win/jconfig.h.in @@ -2,6 +2,8 @@ /* see jconfig.txt for explanations */ #define JPEG_LIB_VERSION @JPEG_LIB_VERSION@ +#cmakedefine C_ARITH_CODING_SUPPORTED +#cmakedefine D_ARITH_CODING_SUPPORTED #define HAVE_PROTOTYPES #define HAVE_UNSIGNED_CHAR