debian/0000755000000000000000000000000012171747611007175 5ustar debian/JxrDecApp.10000644000000000000000000000512712154111577011101 0ustar .\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.38.2. .TH JXRDECAPP "1" "June 2013" "JxrDecApp 1.1" "User Commands" .SH NAME JxrDecApp - JPEG XR Decoder Utility .SH DESCRIPTION JPEG XR Decoder Utility Copyright 2013 Microsoft Corporation \- All Rights Reserved .PP JxrDecApp [options]... .PP .TP \fB\-i\fR input.jxr/wdp Input JPEG XR/HD Photo file name .PP .TP \fB\-o\fR output.bmp/tif/jxr Output image file name bmp: <=8bpc, BGR tif: >=8bpc, RGB jxr: for compressed domain transcode .PP .TP \fB\-c\fR format Specifies the uncompressed output format 0: 24bppBGR 1: 1bppBlackWhite 2: 8bppGray 3: 16bppGray 4: 16bppGrayFixedPoint 5: 16bppGrayHalf 7: 32bppGrayFixedPoint 8: 32bppGrayFloat 9: 24bppRGB .IP 10: 48bppRGB 11: 48bppRGBFixedPoint 12: 48bppRGBHalf 14: 96bppRGBFixedPoint 15: 128bppRGBFloat 16: 32bppRGBE 17: 32bppCMYK 18: 64bppCMYK 22: 32bppBGRA 23: 64bppRGBA 24: 64bppRGBAFixedPoint 25: 64bppRGBAHalf 27: 128bppRGBAFixedPoint 28: 128bppRGBAFloat 29: 16bppBGR555 30: 16bppBGR565 31: 32bppBGR101010 32: 40bppCMYKA 33: 80bppCMYKA 34: 32bppBGR .PP .TP \fB\-r\fR top left height width Specifies the rectangle for region decode .PP .TP \fB\-T\fR m Reduced resolution (mipmap) decode 0: Full resolution (default) 1: 1/2 res (down\-sampled from full res) 2: 1/4 res (native decode) 3: 1/8 res (down\-sampled from 1/4 res) 4: 1/16 res (native decode) .IP >4: 1/(2^m) res (down\-sampled from 1/16 res) .PP .TP \fB\-O\fR orientation 0: No transformation (default) 1: Flip vertically 2: Flip horizontally 3: Flip vertically & horizontally 4: Rotate 90 degrees CW 5: Rotate 90 degrees CW & flip vertically 6: Rotate 90 degrees CW & flip horizontally 7: Rotate 90 degrees CW & flip vert & horiz .PP .TP \fB\-s\fR skip subbands Used for compressed domain transcoding 0: All subbands included (default) 1: Skip flexbits 2: Skip highpass 3: Skip highpass & lowpass (DC only) .PP .TP \fB\-a\fR alpha decode 0: Decode without alpha channel 1: Decode only alpha channel 2: Decode image & alpha (default) .PP .TP \fB\-p\fR strength Post processing filter strength 0: None (default) 1: Light 2: Medium 3: Strong 4: Very strong .PP .TP \fB\-C\fR Suppress overlapping boundary macro blocks (Used for compressed domain tile extraction) .PP .TP \fB\-t\fR Display timing information .PP .TP \fB\-v\fR Display verbose decoder information .PP Eg: JxrDecApp \fB\-i\fR input.jxr \fB\-o\fR output.bmp \fB\-c\fR 0 .SH AUTHOR This manual page was written by Mathieu Malaterre for the Debian GNU/Linux system (but may be used by others). debian/control0000644000000000000000000000614012154113101010557 0ustar Source: jxrlib Section: graphics Priority: optional Maintainer: Mathieu Malaterre Build-Depends: debhelper (>= 9), cmake (>= 2.8.0) Homepage: https://jxrlib.codeplex.com/ Vcs-Browser: http://anonscm.debian.org/viewvc/collab-maint/deb-maint/jxrlib/trunk/ Vcs-Svn: svn://svn.debian.org/collab-maint/deb-maint/jxrlib/trunk Standards-Version: 3.9.4 Package: libjxr0 Section: libs Architecture: any Depends: ${misc:Depends}, ${shlibs:Depends} Pre-Depends: ${misc:Pre-Depends} Description: JPEG-XR lib - libraries JPEG XR is an approved ISO/IEC International standard (its official designation is ISO/IEC 29199-2). . JPEG XR started its life in Microsoft Research. It publicly first appeared as the HD Photo format in Windows Vista. . For web developers, JPEG XR has a large number of interesting features, see the table below. Some of these are big advantages over other image formats like JPEG, PNG, OpenEXR, and TIFF. - Better Compression (40% smaller than JPEG) - Lossless Mode (better compression than PNG) - Alpha Channel (compress color lossy and alpha losslessly) - Extended Bitdepth (supports 8-, 16-, and 32-bit/channel) - Progressive Decode - Advanced Decoding Features (tile-based layout, for efficient region-of-interest access.) Package: libjxr-dev Architecture: any Section: libdevel Depends: libjxr0 (= ${binary:Version}), ${misc:Depends} Description: JPEG-XR lib - dev files JPEG XR is an approved ISO/IEC International standard (its official designation is ISO/IEC 29199-2). . JPEG XR started its life in Microsoft Research. It publicly first appeared as the HD Photo format in Windows Vista. . For web developers, JPEG XR has a large number of interesting features, see the table below. Some of these are big advantages over other image formats like JPEG, PNG, OpenEXR, and TIFF. - Better Compression (40% smaller than JPEG) - Lossless Mode (better compression than PNG) - Alpha Channel (compress color lossy and alpha losslessly) - Extended Bitdepth (supports 8-, 16-, and 32-bit/channel) - Progressive Decode - Advanced Decoding Features (tile-based layout, for efficient region-of-interest access.) . Provide the development files Package: libjxr-tools Architecture: any Section: utils Depends: ${misc:Depends}, ${shlibs:Depends} Description: JPEG-XR lib - command line apps JPEG XR is an approved ISO/IEC International standard (its official designation is ISO/IEC 29199-2). . JPEG XR started its life in Microsoft Research. It publicly first appeared as the HD Photo format in Windows Vista. . For web developers, JPEG XR has a large number of interesting features, see the table below. Some of these are big advantages over other image formats like JPEG, PNG, OpenEXR, and TIFF. - Better Compression (40% smaller than JPEG) - Lossless Mode (better compression than PNG) - Alpha Channel (compress color lossy and alpha losslessly) - Extended Bitdepth (supports 8-, 16-, and 32-bit/channel) - Progressive Decode - Advanced Decoding Features (tile-based layout, for efficient region-of-interest access.) . Provides command line tools for JPEG XR libs debian/compat0000644000000000000000000000000212132733314010363 0ustar 9 debian/JxrDecApp.1.in0000644000000000000000000000026712132745534011510 0ustar [NAME] JxrDecApp - JPEG XR Decoder Utility [AUTHOR] This manual page was written by Mathieu Malaterre for the Debian GNU/Linux system (but may be used by others). debian/changelog0000644000000000000000000000222112171746275011051 0ustar jxrlib (1.1-3) unstable; urgency=low * Fix d/symbols file for big endian arch -- Mathieu Malaterre Thu, 18 Jul 2013 13:08:00 +0200 jxrlib (1.1-2) unstable; urgency=low * Fix symbols file with new 1.1 symbols * Rebuild avoiding RelWithDebInfo/-DNDEBUG pollution -- Mathieu Malaterre Fri, 07 Jun 2013 11:45:53 +0200 jxrlib (1.1-1) unstable; urgency=low * New upstream: 1.1 * Remove Depends: libbsd-dev, since upstream commit 0a033a9efad9 * Add documentation files (converted from .doc file) -- Mathieu Malaterre Thu, 06 Jun 2013 15:49:11 +0200 jxrlib (1.0-3) unstable; urgency=low * Fix installation of headers (missing JXRTest.h) * Fix encoder param settings + d/p/fixparams.patch -- Mathieu Malaterre Thu, 02 May 2013 13:29:20 +0200 jxrlib (1.0-2) unstable; urgency=low * Fix man page typos * Remove broken d/watch file -- Mathieu Malaterre Thu, 25 Apr 2013 11:17:36 +0200 jxrlib (1.0-1) unstable; urgency=low * Initial release. (Closes: #705459) -- Mathieu Malaterre Wed, 17 Apr 2013 16:08:34 +0200 debian/patches/0000755000000000000000000000000012171747611010624 5ustar debian/patches/series0000644000000000000000000000001712154110246012024 0ustar usecmake.patch debian/patches/usecmake.patch0000644000000000000000000001121012154113101013413 0ustar Description: Prefer a cmake based build system Author: Mathieu Malaterre Forwarded: https://jxrlib.codeplex.com/discussions/440294 Index: jxrlib-1.1/CMakeLists.txt =================================================================== --- /dev/null 1970-01-01 00:00:00.000000000 +0000 +++ jxrlib-1.1/CMakeLists.txt 2013-06-06 15:58:15.154068121 +0200 @@ -0,0 +1,133 @@ +# Copyright Mathieu Malaterre +# BSD (Same as jxrlib) +cmake_minimum_required(VERSION 2.8) +project(jxrlib C) + +# Need shared libs for ABI +set(BUILD_SHARED_LIBS ON) + +# helper macro to preserve original Makefile convention +macro(JXR_MAKE_OBJ SET_NAME) + foreach(src ${SRC_${SET_NAME}}) + list(APPEND OBJ_${SET_NAME} ${DIR_${SET_NAME}}/${src}) + endforeach() +endmacro() + +include(TestBigEndian) +test_big_endian(ISBIGENDIAN) +if(ISBIGENDIAN) + set(DEF_ENDIAN _BIG__ENDIAN_) +endif() + +set(DIR_SYS image/sys) +set(DIR_DEC image/decode) +set(DIR_ENC image/encode) + +set(DIR_GLUE jxrgluelib) +set(DIR_TEST jxrtestlib) +set(DIR_EXEC jxrencoderdecoder) + +if(NOT JXRLIB_INSTALL_BIN_DIR) + set(JXRLIB_INSTALL_BIN_DIR "bin") +endif() + +if(NOT JXRLIB_INSTALL_LIB_DIR) + set(JXRLIB_INSTALL_LIB_DIR "lib") +endif() + +if(NOT JXRLIB_INSTALL_INCLUDE_DIR) + set(JXRLIB_INSTALL_INCLUDE_DIR "include/jxrlib") +endif() + +include_directories( + common/include + ${DIR_SYS} + ${DIR_GLUE} + ${DIR_TEST} +) + +# where is strlcpy ? +include(CheckSymbolExists) +check_symbol_exists(strlcpy "string.h" HAVE_STRLCPY) +#set(CMAKE_REQUIRED_LIBRARIES bsd) +#CHECK_SYMBOL_EXISTS(strlcpy "string.h" HAVE_STRLCPY4) +# on linux, strlcpy is in -lbsd: +#if(NOT HAVE_STRLCPY) +# include(CheckLibraryExists) +# find_library(BSD_LIBRARY bsd) +# check_library_exists(bsd "strlcpy" ${BSD_LIBRARY} HAVE_STRLCPY_BSD) +#endif() + +# JPEG-XR +set(SRC_SYS adapthuff.c image.c strcodec.c strPredQuant.c strTransform.c perfTimerANSI.c) +JXR_MAKE_OBJ(SYS) +set(SRC_DEC decode.c postprocess.c segdec.c strdec.c strInvTransform.c strPredQuantDec.c JXRTranscode.c) +JXR_MAKE_OBJ(DEC) +set(SRC_ENC encode.c segenc.c strenc.c strFwdTransform.c strPredQuantEnc.c) +JXR_MAKE_OBJ(ENC) + +add_library(jpegxr ${OBJ_ENC} ${OBJ_DEC} ${OBJ_SYS}) +set_property(TARGET jpegxr + PROPERTY COMPILE_DEFINITIONS __ANSI__ DISABLE_PERF_MEASUREMENT ${DEF_ENDIAN} +) +set_property(TARGET jpegxr PROPERTY LINK_INTERFACE_LIBRARIES "") +set_property(TARGET jpegxr PROPERTY COMPILE_FLAGS -w) +# VERSION/SOVERSION +set_property(TARGET jpegxr PROPERTY VERSION 1.1) +set_property(TARGET jpegxr PROPERTY SOVERSION 0) +install(TARGETS jpegxr + EXPORT JXRLibTargets + RUNTIME DESTINATION ${JXRLIB_INSTALL_BIN_DIR} COMPONENT Applications + LIBRARY DESTINATION ${JXRLIB_INSTALL_LIB_DIR} COMPONENT Libraries +) + +# JXR-GLUE +set(SRC_GLUE JXRGlue.c JXRMeta.c JXRGluePFC.c JXRGlueJxr.c) +JXR_MAKE_OBJ(GLUE) +set(SRC_TEST JXRTest.c JXRTestBmp.c JXRTestHdr.c JXRTestPnm.c JXRTestTif.c JXRTestYUV.c) +JXR_MAKE_OBJ(TEST) + +add_library(jxrglue ${OBJ_GLUE} ${OBJ_TEST}) +set_property(TARGET jxrglue + PROPERTY COMPILE_DEFINITIONS __ANSI__ DISABLE_PERF_MEASUREMENT ${DEF_ENDIAN} +) +set_property(TARGET jxrglue PROPERTY LINK_INTERFACE_LIBRARIES "") +set_property(TARGET jxrglue PROPERTY COMPILE_FLAGS -w) +# VERSION/SOVERSION +set_property(TARGET jxrglue PROPERTY VERSION 1.1) +set_property(TARGET jxrglue PROPERTY SOVERSION 0) +install(TARGETS jxrglue + EXPORT JXRLibTargets + RUNTIME DESTINATION ${JXRLIB_INSTALL_BIN_DIR} COMPONENT Applications + LIBRARY DESTINATION ${JXRLIB_INSTALL_LIB_DIR} COMPONENT Libraries +) +#if(HAVE_STRLCPY_BSD) +# target_link_libraries(jxrglue ${BSD_LIBRARY}) +#endif() +target_link_libraries(jxrglue jpegxr m) +# Enc app files +set(ENCAPP JxrEncApp) +add_executable(${ENCAPP} ${DIR_EXEC}/${ENCAPP}.c) +set_property(TARGET ${ENCAPP} + PROPERTY COMPILE_DEFINITIONS __ANSI__ DISABLE_PERF_MEASUREMENT ${DEF_ENDIAN} +) +set_property(TARGET ${ENCAPP} PROPERTY COMPILE_FLAGS -w) +target_link_libraries(${ENCAPP} jxrglue) # jpegxr) +install(TARGETS ${ENCAPP} RUNTIME DESTINATION ${JXRLIB_INSTALL_BIN_DIR}) +# Dec app files +set(DECAPP JxrDecApp) +add_executable(${DECAPP} ${DIR_EXEC}/${DECAPP}.c) +set_property(TARGET ${DECAPP} + PROPERTY COMPILE_DEFINITIONS __ANSI__ DISABLE_PERF_MEASUREMENT ${DEF_ENDIAN} +) +set_property(TARGET ${DECAPP} PROPERTY COMPILE_FLAGS -w) +target_link_libraries(${DECAPP} jxrglue) # jpegxr) +install(TARGETS ${DECAPP} RUNTIME DESTINATION ${JXRLIB_INSTALL_BIN_DIR}) + +# install rules +install(FILES jxrgluelib/JXRGlue.h jxrgluelib/JXRMeta.h jxrtestlib/JXRTest.h + DESTINATION ${JXRLIB_INSTALL_INCLUDE_DIR} COMPONENT Headers +) +install(DIRECTORY common/include/ DESTINATION ${JXRLIB_INSTALL_INCLUDE_DIR} + FILES_MATCHING PATTERN "*.h" +) debian/symbols0000644000000000000000000004475212171746275010631 0ustar libjpegxr.so.0 libjxr0 #MINVER# AdaptDiscriminant@Base 1.0 AdaptHighpassDec@Base 1.0 AdaptHighpassEnc@Base 1.0 AdaptLowpassDec@Base 1.0 AdaptLowpassEnc@Base 1.0 Allocate@Base 1.0 AllocateCodingContextDec@Base 1.0 AllocateCodingContextEnc@Base 1.0 Clean@Base 1.0 ClipDCL@Base 1.0 CloseWS_File@Base 1.0 CloseWS_List@Base 1.0 CloseWS_Memory@Base 1.0 CreateWS_File@Base 1.0 CreateWS_List@Base 1.0 CreateWS_Memory@Base 1.0 DCCompensate@Base 1.0 DecodeMacroblockDC@Base 1.0 DecodeMacroblockHighpass@Base 1.0 DecodeMacroblockLowpass@Base 1.0 DecodeSignificantRun@Base 1.0 EOSWS_File@Base 1.0 EOSWS_Memory@Base 1.0 EncodeMacroblockDC@Base 1.0 EncodeMacroblockHighpass@Base 1.0 EncodeMacroblockLowpass@Base 1.0 FOURBUTTERFLY_HARDCODED1@Base 1.0 FreeCodingContextDec@Base 1.0 FreeCodingContextEnc@Base 1.0 GetPosWS_File@Base 1.0 GetPosWS_List@Base 1.0 GetPosWS_Memory@Base 1.0 IDPEmpty@Base 1.0 ImageStrDecDecode@Base 1.0 ImageStrDecGetInfo@Base 1.0 ImageStrDecInit@Base 1.0 ImageStrDecTerm@Base 1.0 ImageStrEncEncode@Base 1.0 ImageStrEncInit@Base 1.0 ImageStrEncTerm@Base 1.0 InitZigzagScan@Base 1.0 MAX_MEMORY_SIZE_IN_WORDS@Base 1.0 MUL32HR@Base 1.0 QUANT@Base 1.0 QUANT_Mulless@Base 1.0 ReadImagePlaneHeader@Base 1.0 ReadWMIHeader@Base 1.0 ReadWS_File@Base 1.0 ReadWS_List@Base 1.0 ReadWS_Memory@Base 1.0 ResetCodingContext@Base 1.0 ResetCodingContextDec@Base 1.0 ResetCodingContextEnc@Base 1.0 SetPosWS_File@Base 1.0 SetPosWS_List@Base 1.0 SetPosWS_Memory@Base 1.0 StrDecInit@Base 1.0 StrDecTerm@Base 1.0 StrEncInit@Base 1.0 StrIODecInit@Base 1.0 StrIODecTerm@Base 1.0 StrIOEncInit@Base 1.0 StrIOEncTerm@Base 1.0 UpdateModelMB@Base 1.0 ValidateArgs@Base 1.0 WMPAlloc@Base 1.0 WMPFree@Base 1.0 WMPhotoTranscode@Base 1.0 WMPhotoValidate@Base 1.0 WriteImagePlaneHeader@Base 1.0 WriteWMIHeader@Base 1.0 WriteWS_File@Base 1.0 WriteWS_List@Base 1.0 WriteWS_Memory@Base 1.0 (arch=!mips !powerpc !s390 !s390x !sparc !powerpcspe !ppc64 !sparc64)_byteswap_ulong@Base 1.0 advanceMRPtr@Base 1.0 advanceOneMBRow@Base 1.0 allocateBitIOInfo@Base 1.0 allocatePredInfo@Base 1.0 allocateQuantizer@Base 1.0 allocateTileInfo@Base 1.0 attachISRead@Base 1.0 attachISWrite@Base 1.0 attach_SB@Base 1.0 blkOffset@Base 1.0 blkOffsetUV@Base 1.0 blkOffsetUV_422@Base 1.0 checkImageBuffer@Base 1.0 copyAC@Base 1.0 copyTo@Base 1.0 dctIndex@Base 1.0 decodeQPIndex@Base 1.0 decodeThumbnail@Base 1.0 decodeThumbnailAlpha@Base 1.0 dequantizeBlock2x2@Base 1.0 dequantizeBlock4x2@Base 1.0 dequantizeBlock4x4@Base 1.0 dequantizeMacroblock@Base 1.0 detachISRead@Base 1.0 detachISWrite@Base 1.0 detach_SB@Base 1.0 downsampleUV@Base 1.0 dquantBits@Base 1.0 encodeMB@Base 1.0 encodeQPIndex@Base 1.0 fillToByte@Base 1.0 flushBit16@Base 1.0 flushToByte@Base 1.0 flushToByte_SB@Base 1.0 formatQuantizer@Base 1.0 freePredInfo@Base 1.0 freeQuantizer@Base 1.0 freeTileInfo@Base 1.0 gGDISignature@Base 1.0 gSignificantRunBin@Base 1.0 gSignificantRunFixedLength@Base 1.0 getACPredMode@Base 1.0 getBit16@Base 1.0 getBit16_S@Base 1.0 getBit16s@Base 1.0 getBit32@Base 1.0 getBit32_SB@Base 1.0 getBool16@Base 1.0 getByteRead_SB@Base 1.0 getDCACPredMode@Base 1.0 getHuff@Base 1.0 getPosRead@Base 1.0 getROI@Base 1.0 getSizeRead@Base 1.0 getSizeWrite@Base 1.0 getTilePos@Base 1.0 grgiZigzagInv4x4H@Base 1.0 grgiZigzagInv4x4V@Base 1.0 grgiZigzagInv4x4_lowpass@Base 1.0 idxCC@Base 1.0 idxCC_420@Base 1.0 initLookupTables@Base 1.0 initMRPtr@Base 1.0 initPostProc@Base 1.0 inputMBRow@Base 1.0 inputMBRowAlpha@Base 1.0 interpolateUV@Base 1.0 invTransformMacroblock@Base 1.0 invTransformMacroblock_alteredOperators_hard@Base 1.0 isTileBoundary@Base 1.0 isTileExtraction@Base 1.0 load4BE@Base 1.0 outputMBRow@Base 1.0 outputMBRowAlpha@Base 1.0 outputNChannel@Base 1.0 outputNChannelThumbnail@Base 1.0 padHorizontally@Base 1.0 peekBit16@Base 1.0 postProcBlock@Base 1.0 postProcMB@Base 1.0 predACDec@Base 1.0 predCBPDec@Base 1.0 predCBPEnc@Base 1.0 predDCACDec@Base 1.0 predMacroblockEnc@Base 1.0 processMacroblock@Base 1.0 processMacroblockDec@Base 1.0 putBit16@Base 1.0 putBit16_S@Base 1.0 putBit16z@Base 1.0 putBit32@Base 1.0 quantizeMacroblock@Base 1.0 readIS@Base 1.0 readIndexTable@Base 1.0 readPacketHeader@Base 1.0 readPackets@Base 1.0 readQPIndex@Base 1.0 readQuantizer@Base 1.0 readQuantizerSB@Base 1.0 readTileHeaderDC@Base 1.0 readTileHeaderHP@Base 1.0 readTileHeaderLP@Base 1.0 remapQP@Base 1.0 setBitIOPointers@Base 1.0 setROI@Base 1.0 setUniformQuantizer@Base 1.0 setUniformTiling@Base 1.0 slideOneMBRow@Base 1.0 smooth@Base 1.0 smoothMB@Base 1.0 strDCT2x2dn@Base 1.0 strDCT2x2dnDec@Base 1.0 strDCT2x2dnEnc@Base 1.0 strDCT2x2up@Base 1.0 strDCT4x4SecondStage@Base 1.0 strDCT4x4Stage1@Base 1.0 strIDCT4x4Stage1@Base 1.0 strIDCT4x4Stage2@Base 1.0 strNormalizeDec@Base 1.0 strNormalizeEnc@Base 1.0 strPost2@Base 1.0 strPost2_alternate@Base 1.0 strPost2x2@Base 1.0 strPost2x2_alternate@Base 1.0 strPost4@Base 1.0 strPost4_alternate@Base 1.0 strPost4x4Stage1@Base 1.0 strPost4x4Stage1Split@Base 1.0 strPost4x4Stage1Split_alternate@Base 1.0 strPost4x4Stage1_alternate@Base 1.0 strPost4x4Stage2Split@Base 1.0 strPost4x4Stage2Split_alternate@Base 1.0 strPre2@Base 1.0 strPre2x2@Base 1.0 strPre4@Base 1.0 strPre4x4Stage1@Base 1.0 strPre4x4Stage1Split@Base 1.0 strPre4x4Stage2Split@Base 1.0 swapMRPtr@Base 1.0 termPostProc@Base 1.0 transcodeQuantizer@Base 1.0 transcodeQuantizers@Base 1.0 transcodeQuantizersAlpha@Base 1.0 transcodeTileHeader@Base 1.0 transformACBlocks420@Base 1.0 transformACBlocks422@Base 1.0 transformACBlocks@Base 1.0 transformDCBlock420@Base 1.0 transformDCBlock422@Base 1.0 transformDCBlock@Base 1.0 transformMacroblock@Base 1.0 updatePostProcInfo@Base 1.0 updatePredInfo@Base 1.0 useDCQuantizer@Base 1.0 useLPQuantizer@Base 1.0 validateTiling@Base 1.0 writeIS@Base 1.0 writeIndexTable@Base 1.0 writeIndexTableNull@Base 1.0 writePacketHeader@Base 1.0 writeQPIndex@Base 1.0 writeQuantizer@Base 1.0 writeTileHeaderDC@Base 1.0 writeTileHeaderHP@Base 1.0 writeTileHeaderLP@Base 1.0 libjxrglue.so.0 libjxr0 #MINVER# BGR24_BGR32@Base 1.0 BGR24_Gray8@Base 1.0 BGR24_RGB24@Base 1.0 BGR32_BGR24@Base 1.0 BGR32_RGB24@Base 1.0 BGRA32_RGBA32@Base 1.0 BlackWhite_Gray8@Base 1.1 BufferCalcIFDSize@Base 1.0 BufferCopyIFD@Base 1.0 CalcMetadataOffsetSize@Base 1.0 CalcMetadataSizeLPSTR@Base 1.0 CalcMetadataSizeLPWSTR@Base 1.0 CalcMetadataSizeUI2@Base 1.0 CalcMetadataSizeUI4@Base 1.0 CopyDescMetadata@Base 1.0 FreeDescMetadata@Base 1.0 GUID_PKPixelFormat112bpp6ChannelsAlpha@Base 1.0 GUID_PKPixelFormat112bpp7Channels@Base 1.0 GUID_PKPixelFormat128bpp7ChannelsAlpha@Base 1.0 GUID_PKPixelFormat128bpp8Channels@Base 1.0 GUID_PKPixelFormat128bppPRGBAFloat@Base 1.0 GUID_PKPixelFormat128bppRGBAFixedPoint@Base 1.0 GUID_PKPixelFormat128bppRGBAFloat@Base 1.0 GUID_PKPixelFormat128bppRGBFixedPoint@Base 1.0 GUID_PKPixelFormat128bppRGBFloat@Base 1.0 GUID_PKPixelFormat12bppYCC420@Base 1.0 GUID_PKPixelFormat144bpp8ChannelsAlpha@Base 1.0 GUID_PKPixelFormat16bpp48bppYCC444FixedPoint@Base 1.0 GUID_PKPixelFormat16bppGray@Base 1.0 GUID_PKPixelFormat16bppGrayFixedPoint@Base 1.0 GUID_PKPixelFormat16bppGrayHalf@Base 1.0 GUID_PKPixelFormat16bppRGB555@Base 1.0 GUID_PKPixelFormat16bppRGB565@Base 1.0 GUID_PKPixelFormat16bppYCC422@Base 1.0 GUID_PKPixelFormat20bppYCC420Alpha@Base 1.0 GUID_PKPixelFormat20bppYCC422@Base 1.0 GUID_PKPixelFormat24bpp3Channels@Base 1.0 GUID_PKPixelFormat24bppBGR@Base 1.0 GUID_PKPixelFormat24bppRGB@Base 1.0 GUID_PKPixelFormat24bppYCC422Alpha@Base 1.0 GUID_PKPixelFormat24bppYCC444@Base 1.0 GUID_PKPixelFormat30bppYCC422Alpha@Base 1.0 GUID_PKPixelFormat30bppYCC444@Base 1.0 GUID_PKPixelFormat32bpp3ChannelsAlpha@Base 1.0 GUID_PKPixelFormat32bpp4Channels@Base 1.0 GUID_PKPixelFormat32bppBGR@Base 1.0 GUID_PKPixelFormat32bppBGRA@Base 1.0 GUID_PKPixelFormat32bppCMYK@Base 1.0 GUID_PKPixelFormat32bppCMYKDIRECT@Base 1.0 GUID_PKPixelFormat32bppGrayFixedPoint@Base 1.0 GUID_PKPixelFormat32bppGrayFloat@Base 1.0 GUID_PKPixelFormat32bppPBGRA@Base 1.0 GUID_PKPixelFormat32bppPRGBA@Base 1.0 GUID_PKPixelFormat32bppRGB101010@Base 1.0 GUID_PKPixelFormat32bppRGB@Base 1.0 GUID_PKPixelFormat32bppRGBA@Base 1.0 GUID_PKPixelFormat32bppRGBE@Base 1.0 GUID_PKPixelFormat32bppYCC422@Base 1.0 GUID_PKPixelFormat32bppYCC444Alpha@Base 1.0 GUID_PKPixelFormat40bpp4ChannelsAlpha@Base 1.0 GUID_PKPixelFormat40bpp5Channels@Base 1.0 GUID_PKPixelFormat40bppCMYKAlpha@Base 1.0 GUID_PKPixelFormat40bppCMYKDIRECTAlpha@Base 1.0 GUID_PKPixelFormat40bppYCC444Alpha@Base 1.0 GUID_PKPixelFormat48bpp3Channels@Base 1.0 GUID_PKPixelFormat48bpp5ChannelsAlpha@Base 1.0 GUID_PKPixelFormat48bpp6Channels@Base 1.0 GUID_PKPixelFormat48bppRGB@Base 1.0 GUID_PKPixelFormat48bppRGBFixedPoint@Base 1.0 GUID_PKPixelFormat48bppRGBHalf@Base 1.0 GUID_PKPixelFormat48bppYCC422Alpha@Base 1.0 GUID_PKPixelFormat48bppYCC444@Base 1.0 GUID_PKPixelFormat56bpp6ChannelsAlpha@Base 1.0 GUID_PKPixelFormat56bpp7Channels@Base 1.0 GUID_PKPixelFormat64bpp3ChannelsAlpha@Base 1.0 GUID_PKPixelFormat64bpp4Channels@Base 1.0 GUID_PKPixelFormat64bpp7ChannelsAlpha@Base 1.0 GUID_PKPixelFormat64bpp8Channels@Base 1.0 GUID_PKPixelFormat64bppCMYK@Base 1.0 GUID_PKPixelFormat64bppCMYKDIRECT@Base 1.0 GUID_PKPixelFormat64bppPRGBA@Base 1.0 GUID_PKPixelFormat64bppRGBA@Base 1.0 GUID_PKPixelFormat64bppRGBAFixedPoint@Base 1.0 GUID_PKPixelFormat64bppRGBAHalf@Base 1.0 GUID_PKPixelFormat64bppRGBFixedPoint@Base 1.0 GUID_PKPixelFormat64bppRGBHalf@Base 1.0 GUID_PKPixelFormat64bppYCC444Alpha@Base 1.0 GUID_PKPixelFormat64bppYCC444AlphaFixedPoint@Base 1.0 GUID_PKPixelFormat72bpp8ChannelsAlpha@Base 1.0 GUID_PKPixelFormat80bpp4ChannelsAlpha@Base 1.0 GUID_PKPixelFormat80bpp5Channels@Base 1.0 GUID_PKPixelFormat80bppCMYKAlpha@Base 1.0 GUID_PKPixelFormat80bppCMYKDIRECTAlpha@Base 1.0 GUID_PKPixelFormat8bppGray@Base 1.0 GUID_PKPixelFormat96bpp5ChannelsAlpha@Base 1.0 GUID_PKPixelFormat96bpp6Channels@Base 1.0 GUID_PKPixelFormat96bppRGBFixedPoint@Base 1.0 GUID_PKPixelFormat96bppRGBFloat@Base 1.0 GUID_PKPixelFormatBlackWhite@Base 1.0 GUID_PKPixelFormatDontCare@Base 1.0 GetImageDecodeIID@Base 1.0 GetImageEncodeIID@Base 1.0 GetLineSkipPound@Base 1.0 GetPixelFormatFromHash@Base 1.0 GetScanLineOffset@Base 1.0 GetTestDecodeIID@Base 1.0 GetTestEncodeIID@Base 1.0 GetTifULong@Base 1.0 GetTifULongArray@Base 1.0 GetTifUShort@Base 1.0 GetULong@Base 1.0 GetUShort@Base 1.0 Gray16Fixed_Gray32Float@Base 1.0 Gray16Fixed_Gray8@Base 1.1 Gray16Half_Gray32Float@Base 1.0 Gray16Half_Gray8@Base 1.1 Gray16_Gray8@Base 1.1 Gray32Fixed_Gray32Float@Base 1.0 Gray32Fixed_Gray8@Base 1.1 Gray32Float_Gray16Fixed@Base 1.0 Gray32Float_Gray16Half@Base 1.0 Gray32Float_Gray32Fixed@Base 1.0 Gray32Float_Gray8@Base 1.1 Gray8_BGR24@Base 1.0 Gray8_RGB24@Base 1.0 IFDEntryTypeSizes@Base 1.0 IID_PKImageBmpDecode@Base 1.0 IID_PKImageBmpEncode@Base 1.0 IID_PKImageFrameEncode@Base 1.0 IID_PKImageHdrDecode@Base 1.0 IID_PKImageHdrEncode@Base 1.0 IID_PKImageIyuvDecode@Base 1.0 IID_PKImageIyuvEncode@Base 1.0 IID_PKImagePnmDecode@Base 1.0 IID_PKImagePnmEncode@Base 1.0 IID_PKImageScanEncode@Base 1.0 IID_PKImageTifDecode@Base 1.0 IID_PKImageTifEncode@Base 1.0 IID_PKImageUnsupported@Base 1.0 IID_PKImageWmpDecode@Base 1.0 IID_PKImageWmpEncode@Base 1.0 IID_PKImageYuv422Decode@Base 1.0 IID_PKImageYuv422Encode@Base 1.0 IID_PKImageYuv444Decode@Base 1.0 IID_PKImageYuv444Encode@Base 1.0 PKAlloc@Base 1.0 PKAllocAligned@Base 1.0 PKCodecFactory_CreateCodec@Base 1.0 PKCodecFactory_CreateDecoderFromFile@Base 1.0 PKCodecFactory_CreateFormatConverter@Base 1.0 PKCreateCodecFactory@Base 1.0 PKCreateCodecFactory_Release@Base 1.0 PKCreateFactory@Base 1.0 PKCreateFactory_CreateStream@Base 1.0 PKCreateFactory_Release@Base 1.0 PKCreateTestFactory@Base 1.0 PKFormatConverter_Convert@Base 1.0 PKFormatConverter_Copy@Base 1.0 PKFormatConverter_EnumConversions@Base 1.0 PKFormatConverter_GetPixelFormat@Base 1.0 PKFormatConverter_GetResolution@Base 1.0 PKFormatConverter_GetSize@Base 1.0 PKFormatConverter_GetSourcePixelFormat@Base 1.0 PKFormatConverter_Initialize@Base 1.0 PKFormatConverter_InitializeConvert@Base 1.0 PKFormatConverter_Release@Base 1.0 PKFree@Base 1.0 PKFreeAligned@Base 1.0 PKImageDecode_Copy@Base 1.0 PKImageDecode_Copy_BMP@Base 1.0 PKImageDecode_Copy_HDR@Base 1.0 PKImageDecode_Copy_IYUV@Base 1.0 PKImageDecode_Copy_PNM@Base 1.0 PKImageDecode_Copy_TIF@Base 1.0 PKImageDecode_Copy_WMP@Base 1.0 PKImageDecode_Copy_YUV422@Base 1.0 PKImageDecode_Copy_YUV444@Base 1.0 PKImageDecode_Create@Base 1.0 PKImageDecode_Create_BMP@Base 1.0 PKImageDecode_Create_HDR@Base 1.0 PKImageDecode_Create_IYUV@Base 1.0 PKImageDecode_Create_PNM@Base 1.0 PKImageDecode_Create_TIF@Base 1.0 PKImageDecode_Create_WMP@Base 1.0 PKImageDecode_Create_YUV422@Base 1.0 PKImageDecode_Create_YUV444@Base 1.0 PKImageDecode_GetColorContext@Base 1.0 PKImageDecode_GetColorContext_WMP@Base 1.0 PKImageDecode_GetDescriptiveMetadata@Base 1.0 PKImageDecode_GetDescriptiveMetadata_WMP@Base 1.0 PKImageDecode_GetFrameCount@Base 1.0 PKImageDecode_GetMetadata_WMP@Base 1.0 PKImageDecode_GetPixelFormat@Base 1.0 PKImageDecode_GetRawStream_WMP@Base 1.0 PKImageDecode_GetResolution@Base 1.0 PKImageDecode_GetSize@Base 1.0 PKImageDecode_GetSize_WMP@Base 1.0 PKImageDecode_Initialize@Base 1.0 PKImageDecode_Initialize_BMP@Base 1.0 PKImageDecode_Initialize_HDR@Base 1.0 PKImageDecode_Initialize_IYUV@Base 1.0 PKImageDecode_Initialize_PNM@Base 1.0 PKImageDecode_Initialize_TIF@Base 1.0 PKImageDecode_Initialize_WMP@Base 1.0 PKImageDecode_Initialize_YUV422@Base 1.0 PKImageDecode_Initialize_YUV444@Base 1.0 PKImageDecode_Release@Base 1.0 PKImageDecode_Release_TIF@Base 1.0 PKImageDecode_Release_WMP@Base 1.0 PKImageDecode_SelectFrame@Base 1.0 PKImageEncode_Create@Base 1.0 PKImageEncode_CreateNewFrame@Base 1.0 PKImageEncode_CreateNewFrame_WMP@Base 1.0 PKImageEncode_Create_BMP@Base 1.0 PKImageEncode_Create_HDR@Base 1.0 PKImageEncode_Create_IYUV@Base 1.0 PKImageEncode_Create_PNM@Base 1.0 PKImageEncode_Create_TIF@Base 1.0 PKImageEncode_Create_WMP@Base 1.0 PKImageEncode_Create_YUV422@Base 1.0 PKImageEncode_Create_YUV444@Base 1.0 PKImageEncode_EncodeAlpha@Base 1.0 PKImageEncode_EncodeAlpha_Encode@Base 1.0 PKImageEncode_EncodeAlpha_Init@Base 1.0 PKImageEncode_EncodeAlpha_Term@Base 1.0 PKImageEncode_EncodeContent@Base 1.0 PKImageEncode_EncodeContent_Encode@Base 1.0 PKImageEncode_EncodeContent_Init@Base 1.0 PKImageEncode_EncodeContent_Term@Base 1.0 PKImageEncode_Initialize@Base 1.0 PKImageEncode_Initialize_WMP@Base 1.0 PKImageEncode_Release@Base 1.0 PKImageEncode_Release_WMP@Base 1.0 PKImageEncode_SetColorContext@Base 1.0 PKImageEncode_SetColorContext_WMP@Base 1.0 PKImageEncode_SetDescriptiveMetadata@Base 1.0 PKImageEncode_SetDescriptiveMetadata_WMP@Base 1.0 PKImageEncode_SetEXIFMetadata_WMP@Base 1.0 PKImageEncode_SetGPSInfoMetadata_WMP@Base 1.0 PKImageEncode_SetIPTCNAAMetadata_WMP@Base 1.0 PKImageEncode_SetPhotoshopMetadata_WMP@Base 1.0 PKImageEncode_SetPixelFormat@Base 1.0 PKImageEncode_SetResolution@Base 1.0 PKImageEncode_SetSize@Base 1.0 PKImageEncode_SetXMPMetadata_WMP@Base 1.0 PKImageEncode_Terminate@Base 1.0 PKImageEncode_Terminate_WMP@Base 1.0 PKImageEncode_Transcode@Base 1.0 PKImageEncode_Transcode_WMP@Base 1.0 PKImageEncode_WritePixels@Base 1.0 PKImageEncode_WritePixelsBanded@Base 1.0 PKImageEncode_WritePixelsBandedBegin@Base 1.0 PKImageEncode_WritePixelsBandedBegin_WMP@Base 1.0 PKImageEncode_WritePixelsBandedEnd@Base 1.0 PKImageEncode_WritePixelsBandedEnd_WMP@Base 1.0 PKImageEncode_WritePixelsBanded_WMP@Base 1.0 PKImageEncode_WritePixels_BMP@Base 1.0 PKImageEncode_WritePixels_HDR@Base 1.0 PKImageEncode_WritePixels_IYUV@Base 1.0 PKImageEncode_WritePixels_PNM@Base 1.0 PKImageEncode_WritePixels_TIF@Base 1.0 PKImageEncode_WritePixels_WMP@Base 1.0 PKImageEncode_WritePixels_YUV422@Base 1.0 PKImageEncode_WritePixels_YUV444@Base 1.0 PKImageEncode_WriteSource@Base 1.0 PKStrnicmp@Base 1.0 PKTestDecode_Copy@Base 1.0 PKTestDecode_Create@Base 1.0 PKTestDecode_Initialize@Base 1.0 PKTestDecode_Release@Base 1.0 PKTestFactory_CreateCodec@Base 1.0 PKTestFactory_CreateDecoderFromFile@Base 1.0 ParseBMPHeader@Base 1.0 ParseHDRHeader@Base 1.0 ParseIYUVHeader@Base 1.0 ParsePFD@Base 1.0 ParsePFDEntry@Base 1.0 ParsePNMHeader@Base 1.0 ParseTifDEArray@Base 1.0 ParseTifDEValue@Base 1.0 ParseTifHeader@Base 1.0 ParseYUV422Header@Base 1.0 ParseYUV444Header@Base 1.0 PixelFormatLookup@Base 1.0 PutTifULong@Base 1.0 PutTifUShort@Base 1.0 PutULong@Base 1.0 PutUShort@Base 1.0 RGB101010_RGB24@Base 1.1 RGB101010_RGB48@Base 1.0 RGB128Fixed_RGB24@Base 1.1 RGB128Fixed_RGB96Float@Base 1.0 RGB128Float_RGB24@Base 1.1 RGB128Float_RGB96Float@Base 1.0 RGB24_BGR24@Base 1.0 RGB24_BGR32@Base 1.0 RGB24_Gray8@Base 1.0 RGB24_RGB555@Base 1.0 RGB24_RGB565@Base 1.0 RGB48Fixed_RGB24@Base 1.1 RGB48Fixed_RGB96Float@Base 1.0 RGB48Half_RGB24@Base 1.1 RGB48Half_RGB64Half@Base 1.0 RGB48Half_RGB96Float@Base 1.0 RGB48_RGB101010@Base 1.0 RGB48_RGB24@Base 1.1 RGB555_RGB24@Base 1.0 RGB565_RGB24@Base 1.0 RGB64Fixed_RGB24@Base 1.1 RGB64Fixed_RGB96Float@Base 1.0 RGB64Half_RGB24@Base 1.1 RGB64Half_RGB48Half@Base 1.0 RGB64Half_RGB96Float@Base 1.0 RGB96Fixed_RGB24@Base 1.1 RGB96Fixed_RGB96Float@Base 1.0 RGB96Float_RGB128Fixed@Base 1.0 RGB96Float_RGB128Float@Base 1.0 RGB96Float_RGB24@Base 1.1 RGB96Float_RGB48Fixed@Base 1.0 RGB96Float_RGB48Half@Base 1.0 RGB96Float_RGB64Fixed@Base 1.0 RGB96Float_RGB64Half@Base 1.0 RGB96Float_RGB96Fixed@Base 1.0 RGB96Float_RGBE@Base 1.0 RGBA128Fixed_RGBA128Float@Base 1.0 RGBA128Fixed_RGBA32@Base 1.1 RGBA128Float_RGBA128Fixed@Base 1.0 RGBA128Float_RGBA32@Base 1.1 RGBA128Float_RGBA64Fixed@Base 1.0 RGBA128Float_RGBA64Half@Base 1.0 RGBA32_BGRA32@Base 1.0 RGBA64Fixed_RGBA128Float@Base 1.0 RGBA64Fixed_RGBA32@Base 1.1 RGBA64Half_RGBA128Float@Base 1.0 RGBA64Half_RGBA32@Base 1.1 RGBA64_RGBA32@Base 1.1 RGBE_RGB24@Base 1.1 RGBE_RGB96Float@Base 1.0 ReadBinaryData@Base 1.0 ReadContainer@Base 1.0 ReadPropvar@Base 1.0 SizeofIFDEntry@Base 1.0 StreamCalcIFDSize@Base 1.0 StreamCopyIFD@Base 1.0 WriteBMPHeader@Base 1.0 WriteContainerPost@Base 1.0 WriteContainerPre@Base 1.0 WriteDescMetadata@Base 1.0 WriteHDRHeader@Base 1.0 WriteIYUVHeader@Base 1.0 WritePNMHeader@Base 1.0 WriteTifDE@Base 1.0 WriteTifHeader@Base 1.0 WriteWmpDE@Base 1.0 WriteYUV422Header@Base 1.0 WriteYUV444Header@Base 1.0 getbfcpy@Base 1.0 getbfdw@Base 1.0 getbfdwbig@Base 1.0 getbfdwe@Base 1.0 getbfw@Base 1.0 getbfwbig@Base 1.0 getbfwe@Base 1.0 setbfcpy@Base 1.0 setbfdw@Base 1.0 setbfdwbig@Base 1.0 setbfw@Base 1.0 setbfwbig@Base 1.0 debian/JxrEncApp.10000644000000000000000000000546012154111577011113 0ustar .\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.38.2. .TH JXRENCAPP "1" "June 2013" "JxrEncApp 1.1" "User Commands" .SH NAME JxrEncApp - JPEG XR Encoder Utility .SH DESCRIPTION JPEG XR Encoder Utility Copyright 2013 Microsoft Corporation \- All Rights Reserved .PP JxrEncApp [options]... .PP .TP \fB\-i\fR input.bmp/tif/hdr Input image file name bmp: <=8bpc, BGR tif: >=8bpc, RGB hdr: 24bppRGBE only .PP .TP \fB\-o\fR output.jxr Output JPEG XR file name .PP .TP \fB\-q\fR quality [0.0 \- 1.0) Default = 1.0, lossless .TP or quantization [1 \- 255] Default = 1, lossless .PP .TP \fB\-c\fR format Required to define uncompressed source pixel format 0: 24bppBGR 1: 1bppBlackWhite 2: 8bppGray 3: 16bppGray 4: 16bppGrayFixedPoint 5: 16bppGrayHalf 7: 32bppGrayFixedPoint 8: 32bppGrayFloat 9: 24bppRGB .IP 10: 48bppRGB 11: 48bppRGBFixedPoint 12: 48bppRGBHalf 14: 96bppRGBFixedPoint 15: 128bppRGBFloat 16: 32bppRGBE 17: 32bppCMYK 18: 64bppCMYK 22: 32bppBGRA 23: 64bppRGBA 24: 64bppRGBAFixedPoint 25: 64bppRGBAHalf 27: 128bppRGBAFixedPoint 28: 128bppRGBAFloat 29: 16bppBGR555 30: 16bppBGR565 31: 32bppBGR101010 32: 40bppCMYKA 33: 80bppCMYKA 34: 32bppBGR .PP .TP \fB\-d\fR chroma sub\-sampling 0: Y\-only 1: YCoCg 4:2:0 2: YCoCg 4:2:2 3: YCoCg 4:4:4 (default) .IP (if not set is 4:4:4 for quality >= 0.5 or 4:2:0 for quality < 0.5) .PP .TP \fB\-l\fR overlapping 0: No overlapping 1: One level overlapping (default) 2: Two level overlapping .IP (if not set is One for quality > 0.4 or Two for quality <= 0.4) .PP .TP \fB\-f\fR Turn off frequency order bit stream (to spatial) .PP .TP \fB\-p\fR Turn off progressive mode (to sequential) .PP .TP \fB\-t\fR Display timing information .PP .TP \fB\-v\fR Display verbose encoder information .PP .TP \fB\-V\fR tile_wd0 [tile_wd1 ... ] Macro block columns per tile .PP .TP \fB\-H\fR tile_ht0 [tile_ht1 ... ] Macro block rows per tile .PP .TP \fB\-U\fR num_v_tiles num_h_tiles Vertical & horizontal tile count for uniform tiling .PP .TP \fB\-b\fR Black/White Applies to 1bpp black/white images 0: 0 = black (default) 1: 0 = white .PP .TP \fB\-a\fR alpha channel format Required for any pixel format with an alpha channel 2: Planar alpha (default) 3: Interleaved alpha Other: Reserved, do not use .PP .TP \fB\-Q\fR quantization for alpha [1 \- 255] Default = 1, lossless .PP .TP \fB\-F\fR trimmed flexbits [0 \- 15] 0: no trimming (default) 15: trim all .PP .TP \fB\-s\fR skip subbands 0: All subbands included (default) 1: Skip flexbits 2: Skip highpass 3: Skip highpass & lowpass (DC only) .PP Eg: JxrEncApp \fB\-i\fR input.bmp \fB\-o\fR output.jxr \fB\-q\fR 10 .SH AUTHOR This manual page was written by Mathieu Malaterre for the Debian GNU/Linux system (but may be used by others). debian/rules0000755000000000000000000000261712154347751010265 0ustar #!/usr/bin/make -f #export DH_VERBOSE=1 DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture -qDEB_HOST_MULTIARCH) VER_FULL = $(shell dpkg-parsechangelog | grep '^Version' | cut -d' ' -f2 | cut -f1 -d-) %: dh $@ --buildsystem=cmake --parallel # Purposely not set CMAKE_BUILD_TYPE, see #701231 CMAKE_EXTRA_FLAGS += -DCMAKE_BUILD_TYPE:STRING="" \ -DJXRLIB_INSTALL_LIB_DIR="lib/$(DEB_HOST_MULTIARCH)" override_dh_auto_configure: dh_auto_configure -- $(CMAKE_EXTRA_FLAGS) pkg_bin=libjxr-tools pkg_lib=libjxr0 pkg_dev=libjxr-dev override_dh_install: # bin dh_install -p$(pkg_bin) usr/bin # lib dh_install -p$(pkg_lib) usr/lib/$(DEB_HOST_MULTIARCH)/*.so.* # dev dh_install -p$(pkg_dev) usr/lib/$(DEB_HOST_MULTIARCH)/*.so dh_install -p$(pkg_dev) usr/include debian/JxrDecApp.1: debian/JxrDecApp.1.in help2man --version-string=$(VER_FULL) --include=$< --output=$@ --no-info JxrDecApp debian/JxrEncApp.1: debian/JxrEncApp.1.in help2man --version-string=$(VER_FULL) --include=$< --output=$@ --no-info JxrEncApp debian/JPEGXR_DPK_Spec_1.0.txt: doc/JPEGXR_DPK_Spec_1.0.doc antiword $< > $@ override_dh_installman: dh_installman -p$(pkg_bin) debian/JxrDecApp.1 dh_installman -p$(pkg_bin) debian/JxrEncApp.1 override_dh_installdocs: dh_installdocs doc/readme.txt dh_installdocs debian/JPEGXR_DPK_Spec_1.0.txt dh_installdocs get-orig-source: #uscan --verbose --force-download --rename ./debian/get-orig-source debian/JxrEncApp.1.in0000644000000000000000000000026712132745534011522 0ustar [NAME] JxrEncApp - JPEG XR Encoder Utility [AUTHOR] This manual page was written by Mathieu Malaterre for the Debian GNU/Linux system (but may be used by others). debian/source/0000755000000000000000000000000012171747611010475 5ustar debian/source/format0000644000000000000000000000001412132733314011673 0ustar 3.0 (quilt) debian/JPEGXR_DPK_Spec_1.0.txt0000644000000000000000000016077012154111577012773 0ustar JPEG XR Photographic Still Image File Format This file format is an evolution of HD Photo, also known under the name Windows Media™ Photo Device Porting Kit Specification Copyright © 2013 Microsoft Corporation. All rights reserved. Any use, distribution or public discussion of, and any feedback related to these materials are subject to the terms of the attached license. Windows Media™ is a registered trademark of Microsoft Corporation. All rights reserved. |Version |1.0 | |Status |RTM | Microsoft Corporation Technical Documentation License Agreement for the specification “JPEG XR Device Porting Kit” Copyright © 2013 Microsoft Corp. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: • Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. • Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THEIMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSEARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BELIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, ORCONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OFSUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESSINTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER INCONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THEPOSSIBILITY OF SUCH DAMAGE.. Contents Contents ii Preface iii Chapter 1. OVERVIEW 1 1.1 Format Identification 1 1.2 Documentation 1 1.3 Device Porting Kit Contents 2 Chapter 2. Sample Applications 3 2.1 Introduction 3 2.2 JXREncApp Parameter Overview 4 2.3 Standard Uncompressed File Formats 5 2.4 Fixed Point Pixel Formats 7 2.5 Unsupported Pixel Formats 7 2.6 Compression Choices: -q, -d & -l Options 7 2.6.1 -q Image Quality (0.0 – 1.0) or Quantization (1-255) 7 2.6.2 -d Chroma Sub-sampling (0, 1, 2 or 3) 8 2.6.3 -l Overlap Processing (0, 1, 2) 9 2.7 Image Organization Choices: -f, -U, -V, -H & -a Options 9 2.7.1 -a Alpha Channel Structure 9 2.7.2 -Q Planar Alpha Quantization (1-255) 10 2.7.3 -f Frequency Order vs. Spatial Order 10 2.7.4 -p Progressive Mode 10 2.8 Image Tiling: -U, -V, -H 10 2.9 Encoder Status Reporting: -v, -t 11 2.9.1 -v Verbose mode 11 2.9.2 -t Timing information 11 2.10 JXRDecApp Command Line Decoder 12 Chapter 3. Additional Utilities 14 3.1 ImageComp 14 3.2 HDR2HDR 14 Chapter 4. Encoder and Decoder Internal Interfaces and Data Structures 15 4.1 ImageInfo Structure 15 4.2 cfColorFormat and bdDepth Combinations 16 4.3 Encoder cfColorFormat and Decoder cfColorFormat Combinations 17 4.4 CodecParam Structure 18 4.5 External cfColorFormat and Internal cfColorFormat Combinations 19 4.6 ImageBufInfo Structure 20 Preface About This Specification JPEG XR is a file format and associated codec specifically designed to for use with all types of continuous tone photographic content. This document describes the contents of the JPEG XR Device Porting Kit 1.0, including various technical details about the software components provided that enable the basic encoder and decoder reference source code to be access via a basic set of programmatic interfaces or by using the included sample command line applications. The information contained in this specification is subject to change. Every effort has been made to ensure accuracy at the time of publication. Formatting Conventions This specification uses the following formatting conventions: Terms are formatted like this. Important comments, typically highlighting unimplemented or preliminary features look like this. Code looks like this. Raw text and editorial notes look like this. Language Notes In this specification, the words that are used to define the significance of each particular requirement are capitalized. These words are used in accordance with their definitions in RFC 2119 and their meaning is reproduced here for convenience: • MUST. This word, or the adjective “REQUIRED,” means that the item is an absolute requirement of the specification. • SHOULD. This word, or the adjective “RECOMMENDED,” means that there may exist valid reasons in particular circumstances to ignore this item, but the full implications should be understood and the case carefully weighed before choosing a different course. • MAY. This word, or the adjective “OPTIONAL,” means that this item is truly optional. For example, one implementation may choose to include the item because a particular marketplace or scenario requires it or because it enhances the product. Another implementation may omit the same item. 1. 2. OVERVIEW 1 Format Identification This device porting kit (DPK) supports the JPEG XR still image format, based on technology originally developed by Mirosoft under the name HD Photo (formerly Windows Media™ Photo). The JPEG XR format is similar, but not identical, to the HD Photo/Windows Media™ Photo format. The JPEG XR format replaces the HD Photo/Windows Media™ Photo format in both Windows 8 and the Windows Image Component (WIC). WIC accompanies the Internet Explorer 10 redistributable packages for down-level versions of Windows. Some Windows Media™ Photo (WMP) naming conventions are still used internally with this release of the DPK. JPEG XR files use the .jxr extension. Applications that support the JPEG XR file format should recognize and decode HD Photo/Windows Media™ Photo .hdp/.wdp files, but only offer to create files with the .jxr extension. 2 Documentation This document provides supplemental information about the JPEG XR Device Porting Kit (DPK) not covered in the other specifications. This includes documentation on the command line encoder and decoder utilities that are provided here as sample reference source code and additional technical details about the application program interfaces (API’s) and data types and structures used to interface the core encoder and decoder modules with the command line utility application code. The “JPEG XR Image Coding Specification” document contains complete technical details on the encoder and decoder compression algorithms and the compressed data (elementary) bitstream format. “Annex A” of the document contains information about the JPEG XR file container format and metadata tags. The specification is an international standard and is available at: http://www.itu.int/rec/T-REC-T.832 The “JPEG XR System Architecture” document contains a technical overview the encoder and decoder compression algorithms and the compressed data (elementary) bitstream format, as well as guidelines for JPEG XR application developers. It is available at: http://www.itu.int/rec/T-REC-T.Sup2-201103-I 3 Device Porting Kit Contents The complete contents of this Device Porting Kit are as follows: |Directory |File |Description | |bin\ |hdr2hdr.exe |Unsupported utility | | | |programs | | |imagecomp.exe | | |common\inclu|guiddef.h |Shared header files | |de\ | | | | |wmsal.h | | | |wmspecstring.h | | | |wmspecstrings_adt.h | | | |wmspecstrings_strict| | | |.h | | |doc\ |readme.txt |JPEG XR Device | | | |Porting Kit | | | |documentation files | | | |(including this | | | |document.) | | |JPEGXR_Feature_Spec_| | | |1.0.doc | | | |JPEGXR_DPK_Spec_1.0.| | | |doc | | |image\decode|decode.c |ANSI C reference | |\ | |source code for the | | | |JPEG XR decoder | | |decode.h | | | |huffman.c | | | |postprocess.c | | | |segdec.c | | | |strdec.c | | | |strInvTransform.c | | | |strPredQuantDec.c | | | |JXRTranscode.c | | |image\encode|encode.c |ANSI C reference | |\ | |source code for the | | | |JPEG XR encoder | | |encode.h | | | |segenc.c | | | |strenc.c | | | |strFwdTransform.c | | | |strPredQuantEnc.c | | |image\sys\ |adapthuff.c |ANSI C reference | | | |source code and | | | |additional functions| | | |used for development| | | |and testing that are| | | |shared by both the | | | |encoder and the | | | |decoder | | |ansi.h | | | |common.h | | | |image.c | | | |perfTimer.h | | | |perfTimerANSI.c | | | |perfTimerWin32.c | | | |strcodec.c | | | |strcodec.h | | | |strPredQuant.c | | | |strTransform.c | | | |strTransform.h | | | |windowsmediaphoto.h | | |Directory |File |Description | |image\VC10Projects\ |CommonLib.vcxproj |Project files to | |image\VC11Projects\ | |build the various | | | |device porting kit | | | |components | | |DecodeLib.vcxproj | | | |EncodeLib.vcxproj | | |image\x86\ |strenc_x86.c |X86 specific support| | | |code, not directly | | | |related to the | | | |encoder or decoder | | |x86.h | | |JXREncoderDecoder\ |JXRDecApp.c |Source code and | | | |project files for | | | |the sample command | | | |line encoder and | | | |decoder apps | | |JXREncApp.c | | | |JXR.sln | | | |JXRDecApp.vcxproj | | | |JXREncApp.vcxproj | | |JXRGlueLib\ |JXRGlue.c |Source code and | | | |project files to | | | |provide JPEG XR | | | |ifile and metadata | | | |handling | | |JXRGlue.h | | | |JXRMeta.c | | | |JXRMeta.h | | | |JXRGluePFC.c | | | |JXRGlueJxr.c | | | |JXRGlueLib.vcxproj | | |JXRTestLib\ |JXRTest.c |Sample source code | | | |and project files | | | |to provide minimal | | | |image file format | | | |handling as | | | |required by the | | | |sample command line| | | |applications. | | |JXRTest.h | | | |JXRTestBmp.c | | | |JXRTestHdr.c | | | |JXRTestPnm.c | | | |JXRTestTif.c | | | |JXRTestYUV.c | | | |JXRTestLib.vcxproj | | |.\ |Makefile |Example make file | | | |to build the DPK | | | |components on a | | | |Unix/Linux system, | | | |including support | | | |for big-endian | | | |hardware | | | |architecture | 3. Sample Applications 4 Introduction This device porting kit includes the source code for command line utilities to convert files between JPEG XR format and other common, uncompressed file formats. These utilities are provided as example applications for calling the JPEG XR encoder and decoder. This section documents the usage of these utilities, including a complete explanation of the command line parameters. These are not full-featured file conversion applications. While they are useful development tools, they are provided only as sample applications for exercising the JPEG XR encoder and decoder. 5 JXREncApp Parameter Overview This command line utility converts certain uncompressed file formats into equivalent JPEG XR files. It provides a complete set of command line options to control all supported JPEG XR Encoder options. Here is a summary of the usage of JXREncApp and the various command line options. All of these options will be discussed in detail in later sections. jxrencapp [options]... -i input.bmp/tif/hdr Input image file name bmp: <=8bpc, BGR tif: >=8bpc, RGB hdr: 24bppRGBE only -o output.jxr Output JPEG XR file name -q quality [0.0 - 1.0) Default = 1.0, lossless or quantization [1 - 255] Default = 1, lossless -c format Required to define uncompressed source pixel format 0: 24bppBGR 1: BlackWhite 2: 8bppGray 3: 16bppGray 4: 16bppGrayFixedPoint 5: 16bppGrayHalf 7: 32bppGrayFixedPoint 8: 32bppGrayFloat 9: 24bppRGB 10: 48bppRGB 11: 48bppRGBFixedPoint 12: 48bppRGBHalf 14: 96bppRGBFixedPoint 15: 128bppRGBFloat 16: 32bppRGBE 17: 32bppCMYK 18: 64bppCMYK 22: 32bppBGRA 23: 64bppRGBA 24: 64bppRGBAFixedPoint 25: 64bppRGBAHalf 27: 128bppRGBAFixedPoint 28: 128bppRGBAFloat 29: 16bppBGR555 30: 16bppBGR565 31: 32bppBGR101010 32: 40bppCMYKA 33: 80bppCMYKA 34: 32bppBGR -d chroma sub-sampling 0: Y-only 1: YCoCg 4:2:0 2: YCoCg 4:2:2 3: YCoCg 4:4:4 (default) -l overlapping 0: No overlapping 1: One level overlapping (default) 2: Two level overlapping -f Turn off frequency order bit stream (to spatial) -p Turn off progressive mode (to sequential) -t Display timing information -v Display verbose encoder information -V tile_wd0 [tile_wd1 ...] Macro block columns per tile -H tile_ht0 [tile_ht1 ...] Macro block rows per tile -U num_v_tiles num_h_tiles Vertical & horizontal tile count for uniform tiling -b Black/White Applies to 1bpp black/white images 0: 0 = black (default) 1: 0 = white -a alpha channel format Required for any pixel format with an alpha channel 2: Planar alpha 3: Interleaved alpha Other: Reserved, do not use -Q quantization for alpha [1 - 255] Default = 1, lossless -F trimmed flexbits [0 – 15] 0: no trimming (default) 15: trim all -s skip subbands 0: All subbands included (default) 1: Skip flexbits 2: Skip highpass 3: Skip highpass & lowpass (DC only) So for example to create a JPEG XR file from a typical 24-bit .bmp using reasonably high quality lossy compression, the command line would be: jxrencapp -i input.bmp -o output.jxr -q 10 This scenario uses the default settings for most of the encoder options. Obviously, we’d like to take full control of these options to choose exactly how the JPEG XR file is created. The following sections describe these options in detail. 6 Standard Uncompressed File Formats The DPK Tools are certainly not general purpose file format conversion utilities. They provide the absolute minimum support for uncompressed source and destination file formats; the specific file formats supported are TIFF, BMP and HDR. Only certain variations of these formats are supported and they are, for the most part, tied to the pixel format being converted to or from. The DPK Tools do not perform any pixel format conversion. Therefore the source uncompressed image must be in the desired pixel format for the encoded JPEG XR file. Only minimal data validation is performed; if the source pixel format is incorrect, you will most likely create a bad JPEG XR file. Here are the uncompressed source file formats supported by the DPK Tools, and the specifics for each pixel format supported. Each of the file formats and specific image formats listed below correspond to a mode that can be created using Adobe PhotoShop CS2. TIFF The image should be flattened; it should not contain any layers. If it does contain layers, the “Discard Layers and Save a Copy” option should be selected under Layer Compression. Image Compression must be set to “None”; any compressed TIFF format will cause an error or convert to a bad JPEG XR file. TIFF images must always be stored in “Interleaved” pixel order; “Per Channel” pixel order is not supported. Byte order should be set to “IBM PC.” “Save Image Pyramid” should be unchecked. The specific pixel format created depends on the correct combination of Image Mode in PhotoShop, the specific TIFF save options specified, and the encoder pixel format option specified for JXREncApp.exe. The following table lists all the possible combinations |PhotoShop Mode|Bit Depth |Encodes |-c| | | |as | | |RGB/32 |Radiance (*.HDR) |24bppRGBE|16| 7 Fixed Point Pixel Formats The one significant omission from the pixel formats listed in the tables above is the set of fixed point formats. The fixed point pixel formats provide an excellent solution for retaining the full content of an image source while still providing efficient storage and processing. These fixed point formats are one of the innovations introduced with JPEG XR (and previously HD Photo/Windows Media™). No other file format supports fixed point encoding. Because JXREncApp.exe has no built-in capability for pixel format conversion, there is no way we can encode fixed point JPEG XR files from standard TIFF or BMP files. In reality, if we write a little software, we could convert floating point image data to fixed point and still store it in a TIFF file. While the resulting TIFF file containing fixed point image data would not display correctly, it could be converted to a fixed point JPEG XR file using JXREncApp.exe. That’s why there are –c option values defined for the various fixed point pixel formats. But for this to work, its your responsibility to first convert the uncompressed image data to fixed point. 8 Unsupported Pixel Formats There are several other pixel formats that can’t easily be encoded using JXREncApp.exe It is possible to encode images in any of the pre-multiplied alpha pixel formats, but the uncompressed image will have to first be pre-processed to multiply the RGB channels by the alpha channel value. This can be done using the appropriate blending operations in Photoshop. Like fixed point pixel formats, a TIFF file in a pre-multiplied pixel format will not display correctly, but can be converted to an equivalent JPEG XR file using JXREncApp.exe. While JXREncApp.exe includes a –c option value for 32bpcRGB101010 pixel format, there is no way to create this pixel format in an uncompressed file using PhotoShop. You can write your own code to create this pixel format within a TIFF file. While JXREncApp.exe will be able to convert this to an JPEG XR file, the TIFF file you create will not display correctly in any other application. JXREncApp.exe does not support encoding any of the n-Channel pixel formats. 9 Compression Choices: -q, -d & -l Options There are three parameters that control the tradeoffs between image quality and compressed file size. In addition to their individual effect, it’s also important to understand how these three parameters interact with each other. 1 -q Image Quality (0.0 – 1.0) or Quantization (1-255) One of the principal ways lossy compression is achieved is to “quantize” a set of continuous values into a smaller set of representative values. In this way, “loss” is achieved by mapping values that are close together to the same value. Only the remaining set of values needs to be coded and saved, reducing the amount of storage required. The greater the degree of quantization, the more the content can be compressed, but in doing so, more of the small differences among similar values are lost. The quantization level, specified by the –q option basically defines the amount of similarity that can be discarded. It is an arbitrary range from 1-255; the quantization value does not correspond directly to any specific difference amount. Quantization determines the desired image quality rather than the desired compression ratio. The actual compression ratio is a function of both the quantization and the image content; images with less complex content will have fewer differences among values and will achieve better compression without the need for greater quantization. Additionally, the quantization is also highly dependent on the specific pixel format, most importantly the bit depth. Higher values will be required to greater bit depths to achieve a comparable compression ratio, since larger bit depths provide a greater range of possible values and therefore will need more quantization. JPEG XR provides the unique capability of preserving all data values during quantization, effectively providing mathematically lossless compression. When the quantization is set to 1, no values are discarded and all encoded pixel values will be returned with absolutely no loss. This is the default setting if no value for the –q option is specified. To let JXREncApp.exe set the quantization level automatically, use the same –q flag to set the image quality from 0.0 (lowest) to 1.0 (lossless). JXREncApp.exe will map the single 0.0 – 1.0 quality parameter into several JPEG XR quantization levels. 2 -d Chroma Sub-sampling (0, 1, 2 or 3) We can choose to reduce the resolution of the chrominance of an image prior to the quantization process. Reducing the chrominance resolution, or chroma sub-sampling, has long been understood as an effective way to reduce image content with very little perceptible degradation. In fact, virtually all television or video you watch, whether analog or digital, takes advantage of chroma sub-sampling to reduce the required bandwidth. The JPEG compression format always uses chroma sub-sampling as well. In fact, the unique capability of JPEG XR is not that we provide chroma sub- sampling, but that we provide a mechanism for you to reduce or eliminate this technique to improve image quality. Of course, this only applies to RGB color images. An image is first reorganized from RGB into a channel for luminance and two channels to describe the color information (or chrominance.) If all chrominance is discarded, what’s left is a monochrome image. Typically, we don’t want to go that far! Many video systems, as well as the JPEG compression format (or at least the most common variant of it that we all use) discards 75% of the chrominance information. The resolution of the color information is reduced by a factor of two in both dimensions. So every four pixels in an image are represented by four luminance values but only two (one for each chroma channel) chrominance values. What started out as 12 values (four pixels with three channels each) has been cut in half; only 6 values (four luminance values and two chrominance values) have to be saved. In the world of digital imaging, this is referred to as 4:2:0 chroma sub- sampling, or more simply as 4:2:0. When all chrominance information is retained (no values are discarded), this is referred to as 4:4:4. Another popular approach, particularly for professional video applications, is to only discard 50% of the chroma values; two values for each chroma channel, or four values in total are retained. This is referred to as 4:2:2. Finally, if we discard all color information, retaining only the luminance, this is described as 4:0:0. JPEG XR supports all these modes. -c 3 (4:4:4) All color information is retained, assuring full resolution of the chrominance information. This is the default and is the recommended setting to achieve the best overall image quality. Whenever an image is stored as an intermediate format and further editing is anticipated, it is highly recommended to use 4:4:4. -c 2 (4:2:2) The color information is encoded at ½ the resolution of the luminance information. Four each set of four pixels, four luminance values are used and the eight chrominance values are reduced down to four (two for each chroma channel.) This provides perceptively lossless color encoding for the final delivery of an image. However, if further editing of the image is anticipated, it’s recommended than any chroma sub-sampling be avoided. -c 1 (4:2:0) The color information is encoded at ¼ the resolution of the luminance information. Four each set of four pixels, four luminance values are used and the eight chrominance values are reduced down to two (one for each chroma channel.) This is the same sub-sampling used by JPEG. When converting a JPEG file to JPEG XR, there is no need to specify a higher chroma sub-sampling mode than 4:2:0. -c 0 (4:0:0) All color information is discarded and only the luminance information is retained, effectively creating a monochrome image. For performance reasons, JPEG XR uses a non-traditional method to calculate luminance. Therefore, the resulting monochrome image will not appear identical to a monochrome version of the image created using other tools. Additionally, although all color information is discarded, the pixel format is not changed, so the image is still stored using an RGB pixel format. It is strongly recommended that if you want to create a monochrome image, the image should first be converted to monochrome using an appropriate image editing application to achieve the desired result, and then this monochrome image should be encoded using the appropriate Gray pixel format. 3 -l Overlap Processing (0, 1, 2) JPEG XR uses an advanced version of a macro-block based compression scheme. To achieve the best performance and minimize the amount of memory required to encode or decode an image, the overall image is subdivided into a set of 16x16 pixel macro blocks. Each macro block is are further divided into four 4x4 pixel blocks. All image encoding and decoding operations are peformed on these blocks and macro-blocks. As a result, for high quantization values (when we are discarding a higher amount of similar pixel values), the steps between blocks and macro blocks may become visible as artifacts in the compressed image. This is very common with JPEG (which also uses macro blocks) and significantly reduces the amount of compression that can be used without creating these visible artifacts. JPEG XR addresses this problem through a combination of better quantization and an additional step of overlap processing. This overlap processing takes into account the values of pixels in neighboring blocks and macro blocks when choosing the quantization values that represent similar adjacent pixels. By doing so, the visible differences among adjacent blocks and macro blocks are dramatically reduced. Two levels of optional overlap processing can be specified via the –l parameter. Single level overlap processing (-I 1) is performed at the 4x4 block level. For all pixels in the block, bordering pixels in adjacent blocks are also evaluated when choosing the quantization values for that block. Double level overlap processing (-l 2) also analyzes neighboring adjacent pixels when choosing quantization values at the 16x16 macro-block level. The default value for the –l parameter is 1 and single level overlap processing should be used for most typical encoding scenarios. For very high quantization levels, double-level overlap processing may be appropriate, but this will trade off the potential for macro block artifacts for a loss of image detail. Setting the –l parameter to 0 suppresses any overlap processing. This can speed performance, but is only recommended for very low quantization values. Specific quantization thresholds for choosing the appropriate level of overlap processing are highly dependent on the image content and cannot be predicted. Trial and error will be your best guide. But when in doubt, stick with the default. 10 Image Organization Choices: -f, -U, -V, -H & -a Options In addition to controlling the quality vs. the size of the image, JPEG XR provides a number of choices on exactly how the image information is structured or organized within the file. This includes the alpha channel structure, image tiling, and the overall data order of frequency vs. spatial. 1 -a Alpha Channel Structure Obviously, this option only applies to images with alpha channels. The –a option is required for any uncompressed source image that contains an alpha channel and it will be ignored if the image does not include an alpha channel. JPEG XR supports both interleaved and planar alpha channels. An interleaved alpha channel is stored in sequence with the channels that describe the image contents (RGB or CMYK). It simply adds an additional channel to each pixel. A planar alpha channel is stored as a completely separate image within the JPEG XR file container. The alpha channel is encoded separately from the image RGB or CMYK data. The decoder can decode both and re-interleave the channels to deliver a bitmap with alpha channel. Or if only one element (the image content or the alpha channel) is required, a decoder can return just that portion with no need for all the additional processing required for the other portion. Setting the –a parameter to 3 specifies that the image be encoded with an interleaved alpha channel. Conversely, setting this option to 2 will encode an image with a planar alpha channel. Any other value is illegal and will generate an error. The default value is 2, and the parameter is only meaningful when encoding an image with alpha. 2 -Q Planar Alpha Quantization (1-255) This option set the quantization level for the planar alpha image, and the values are interpreted the same as the Image Quantization (-q) parameter. If ommited, it is set to 1, lossless. This parameter is meaningful when encoding either planar or interleaved alpha channels. 3 -f Frequency Order vs. Spatial Order JPEG XR makes it possible to organize the compressed image data sequentially in either spatial or frequency order. Spatial order is the typical choice for encoding by a device. The sequential compressed data stream represents the image in macro block rows starting at the upper left corner, from left to right and from top to bottom. It allows the image to be encoded sequentially in rows of pixels, minimizing the total memory required. Frequency order groups the data in three different frequencies and places it sequentially in the file starting with the low frequency information, followed by the middle frequency, and finally by the high frequency details. Frequency order makes it much more efficient to decode a low resolution version of the image, minimizing the amount of compressed image data that must be parsed to find the required low frequency content. When encoding on a typical personal computer, the performance difference between encoding in frequency order vs. spatial order is insignificant. By default the image is encoded in frequency order. This is typically preferred because of the performance benefits when decoding the image to lower resolutions. Including the –f option will encode the image in spatial order. This makes progressive encoding impossible (see below). 4 -p Progressive Mode Progressive Mode is an enhancement to frequency order under image tiling (see below). It does not affect spatial order or non-tiled images. Progressive mode groups the data in three different frequencies over all tiles and places it sequentially in the file starting with the low frequency information, followed by the middle frequency, and finally by the high frequency details. Otherwise, the three different frequencies are stored sequentially on a per-tile basis. Progressive mode makes it much more efficient to decode a low resolution version of a tiled image, minimizing the amount of compressed image data that must be parsed to find the required low frequency content. By default the image is encoded in progressive mode. This is typically preferred because of the performance benefits when decoding a tiled image to lower resolutions. Including the –p option will encode the tiled image in sequential order. 11 Image Tiling: -U, -V, -H JPEG XR allows an image to be subdivided into individual rectangular tiles. Each tile is stored in the compressed bit stream as a fully self- describing sub-picture. This makes it possible to decode a tile without ever having to process the compressed data for any other tile. The main purpose for this feature is to optimize an image for region decoding. The request to decode an arbitrary region only needs to process the tiles that represent that region. Both uniform tiling and non-uniform tiling are supported. With uniform tiling, all tiles (with the potential exception of the right-most column and bottom-most row) share the same width and height. With non-uniform tiling, the desired with and height for each tile row and column can be specified. Tiles always have uniform height within each tile row, and uniform width within each tile column. The –U option, followed by the column and row count, specifies uniform tiling. The image is sliced into the requested number of columns and rows, spacing them as evenly as possible. Tiles are always a multiple of macro blocks (16x16 pixels.) If the image width or height is not evenly divisible in macro block increments by the requested column and row count, the right-most column and/or bottom-most row will be re-sized accordingly. The remaining columns and rows will always be of uniform width and height. Columns cannot be less than one macro block in width and rows cannot be less than one macro block in height. If the requested column or row count results in tiles smaller than this, the appropriate column or row count will be adjusted accordingly. Instead of using the –U option for uniform tiling, the –H and –V options can be used to specify a vector of non-uniform tile widths and heights. The vector of space-delimited values following each parameter expresses the tile dimension in macro blocks (multiples of 16 pixels.) If insufficient values are specified to describe the entire width or height of the image, the right-most column and/or bottom-most row will be sized to contain the remaining pixels. If the vector of macro block sizes exceeds the dimension of the image, the extra values in the vector will be ignored and the right- most column and/or bottom-most row will be resized to match the remaining pixels in that image dimension. In general, image tiling is not required. Its use, and the appropriate choice of tile size, is application dependent. It’s recommended that to minimize the performance penalties associated with tiling, tiles smaller than 256x256 pixels should be avoided. 12 Encoder Status Reporting: -v, -t The following are some additional encoding options that control the encoding process itself. 1 -v Verbose mode When present, option enables the output of extended status and results information via the STDOUT output. This information can be piped to a file or other destination using the standard command line conventions (> or >>) for STDOUT piping. Most of the reported information is self-explanitory. 2 -t Timing information When present, this option enables the output of encoder timing information via the STDOUT output. As above, it can also be redirected. This timing information was something we included for our own testing. It does not use a very accurate method to measure performance and while it may be informative, it should not be relied on as an precise performance indicator. Also, please remember that the DPK Tools do not include the platform optimization code that is implemented in the version for Microsoft Windows. 13 JXRDecApp Command Line Decoder This sample application can convert JPEG XR files to different uncompressed file formats. This utility is provided as sample code, and is not designed to be a full-fledged application. It only supports the specific uncompressed file formats necessary to receive data in the various JPEG XR pixel formats. It only processes the image data and does not attempt to transfer or convert metadata other than the tags specifically required to define the image geometry, structure and format. It has only minimal error checking or resiliency to bad source data or incorrect parameters. jxrdecapp [options]... -i input.jxr Input JPEG XR file name -o output.bmp/tif/jxr Output image file name bmp: <=8bpc, BGR tif: >=8bpc, RGB jxr: for compressed domain transcode -c format Specifies the uncompressed output format 0: 24bppBGR 1: BlackWhite 2: 8bppGray 3: 16bppGray 4: 16bppGrayFixedPoint 5: 16bppGrayHalf 7: 32bppGrayFixedPoint 8: 32bppGrayFloat 9: 24bppRGB 10: 48bppRGB 11: 48bppRGBFixedPoint 12: 48bppRGBHalf 14: 96bppRGBFixedPoint 15: 128bppRGBFloat 16: 32bppRGBE 17: 32bppCMYK 18: 64bppCMYK 22: 32bppBGRA 23: 64bppRGBA 24: 64bppRGBAFixedPoint 25: 64bppRGBAHalf 27: 128bppRGBAFixedPoint 28: 128bppRGBAFloat 29: 16bppBGR555 30: 16bppBGR565 31: 32bppBGR101010 32: 40bppCMYKA 33: 80bppCMYKA 34: 32bppBGR -r top left height width Specifies the rectangle for region decode -T m Reduced resolution (mipmap) decode 0: Full resolution (default) 1: 1/2 resolution (down-sampled) 2: 1/4 resolution (native decode) 3: 1/8 resolution (down-sampled) 4: 1/16 resolution (native decode) >4: 1/(2^m) resolution (down-sampled) -O orientation 0: No transformation (default) 1: Flip vertically 2: Flip horizontally 3: Flip vertically & horizontally 4: Rotate 90 degrees CW 5: Rotate 90 degrees CW & vert flip 6: Rotate 90 degrees CW & horz flip 7: Rotate 90 degrees CW & horz/vert flip -s skip subbands Used for compressed domain transcoding 0: All subbands included (default) 1: Skip flexbits 2: Skip highpass 3: Skip highpass & lowpass (DC only) -a alpha decode 0: Decode without alpha channel 1: Decode only alpha channel 2: Decode image & alpha (default) -p strength Post processing filter strength 0: None (default) 1: Light 2: Medium 3: Strong 4: Very strong -C Suppress overlapping macro blocks (Used for compressed domain tile extraction) -t Display timing information -v Display verbose decoder information Eg: jxrdecapp -i input.jxr -o output.bmp -c 0 4. Additional Utilities 14 ImageComp This is a basic command line utility that provides measurement data comparing two uncompressed image files. ImageComp provides a variety of image measurements, and can optionally provide a difference image for certain foramts. imagecomp ImageFileName1 ImageFileName2 [-i InputFormat] [-M 0/1] [-o diff.bmp / -O diff.raw] -k [scalefactor] -i InputFormat: 1 BMP (Default) 2 TIF 3 HDR -M Mode 0 Only SSE, MSE and PSNR (Default) 1 More outputs (MaxDiff, Error Image...) -o filename.bmp Produces difference image in .bmp format -O filename.raw Produces difference image in raw BGR888 format -k Scale factor for difference image (default = 1) Difference image = clip((input1 - input2) * k + 128) Difference image options (-o, -O) only work with BMP images 15 HDR2HDR • This is a simple command line utility to convert a compressed .hdr file to an uncompressed .hdr file. JXREncApp.exe can encode JPEG XR files in the Radiance (RGBE) format from uncompressed .hdr files. However, Adobe Photoshop CS2 can only create compressed .hdr files. • Usage: HDR2HDR compressed.hdr uncompressed.hdr • • 1. 2. 3. 4. Encoder and Decoder Internal Interfaces and Data Structures This section provides implementation details on tables and structures used in DPK encoder and decoder reference source code. Some information defined here is reserved for future use. 16 ImageInfo Structure |cWidth |image size; |B | |cHeight |must be between 1-2^18; | | | |cWidth must be even for YUV_422 and YUV_420; | | | |cHeight must be even for YUV_420; | | | |for BAYER, if sensor image size is w & h, then| | | |cWidth = w / 2, cHeight = h / 2. | | |cfColorFormat |color format; |O | | |Y_ONLY, YUV_420, YUV_422, YUV_444, CMYK, | | | |BAYER, N_CHANNEL, CF_RGB, CF_RGBE, | | | |CF_PALLETIZED; | | | |for planar alpha, use Y_ONLY; | | | |see table 3 for valid encoder/decoder | | | |cfColorformat combinations | | |bdBitDepth |color component bit depth; |B | | |BD_1, BD_8, BD_16, BD_16S, BD_16F, BD_32, | | | |BD_32S, BD_32F, BD_5, BD_10; | | | |refer to the table 2 for supported | | | |cfColorFormat and bdBitDepth combinations | | |cBitsPerUnit |bits per pixel unit; |U | | |a pixel unit is color components of a pixel | | | |with possible leading and/or tailing padding; | | | |if not BD_1, must be multiples of 8; | | | |for YUV_420, a ‘pixel’ means YYYYUV; | | | |for YUV_422, a pixel means UYVY; | | | |for BAYER, a unit is a censor unit and no | | | |padding is allowed. | | |cLeadingPadding |Number of leading padding of a pixel unit |U | |bRGB |RGB or BGR(valid only if BD_8 and CF_RGB); | | | |true for RGB order, false for BGR order | | |bpBayerPattern |bayer pattern( valid only if BAYER); |B | | |0(GR/BG), 1(RG/BG), 2(BG/GR), 3(GB,RG) | | |cChromaCentering |relative location of Chroma w.r.t Luma |B | |cChromaInterpretati|colorspace |B | |on | | | |bSkipFlexBits |decode (false) or not decode(true) flex bits |D | |cThumbnailWidth |size of a thumbnail; |D | |cThumbnailHeight |for s(= 2^t) : 1 thumbnail (s = 1 for full | | | |resolution), cThumbnailWidth = (cWidth + s – | | | |1) / s, cThumbnailHeight = (cHeight + s – 1) /| | | |s; | | | |codec will reset invalid thumbnail to full | | | |resolution | | |cROILeftX cROIWidth|region to be decoded in a thumbnail; codec |D | |cROITopY |will trim to fit in [0, cThumbnailWidth), [0, | | |cROIHeight |cThumbnailHeight) or reset it to full | | | |thumbnail if the region is null or completely | | | |detached from the thumbnail | | |oOrientation |decoded image orientation; |D | | |CRW FlipH FlipV | | | |O_NONE = 0, // 0 0 0 | | | |O_FLIPV, // 0 0 1 | | | |O_FLIPH, // 0 1 0 | | | |O_FLIPVH, // 0 1 1 | | | |O_RCW, // 1 0 0 | | | |O_RCW_FLIPV, // 1 0 1 | | | |O_RCW_FLIPH, // 1 1 0 | | | |O_RCW_FLIPVH, // 1 1 1 | | |cPostProcStrength|strength of post processing; |D | | |0(none) 1(light) 2(medium) 3(heavy) >3(very | | | |heavy) | | |fPaddedUserBuffer|boolean indicating whether the output buffer |D | | |may use optimized code path | | B: info carried in bitstream and not decoder over writable O: info carried in bitstream and decoder over writable D: decoder only U: user input, could be different for encoder and decoder 17 cfColorFormat and bdDepth Combinations | |Y_ONLY |YU| | | |V_| | | |42| | | |0 | |cfColorFormat |Internal color format; |B | | |Y_ONLY, YUV_420, YUV_422, YUV_444, CMYK,| | | |BAYER, N_CHANNEL; | | | |for planar alpha, use Y_ONLY; | | | |see table 5 for valid external / | | | |internal color format combinations | | |bdBitDepth |internal bit depth; |B | | |BD_SHORT, BD_LONG; | | | |Only support BD_LONG now. | | |olOverlap |type of overlap; |B | | |OL_NONE, OL_ONE, OL_TWO | | |bfBitstreamFormat |bitstream format; |B | | |SPATIAL, FREQUENCY | | |uAlphaMode |alpha channel info; |O | | |encoder:, | | | |0: RGB only | | | |1: A only | | | |2: Planar RGBA | | | |3: Interleaved RGBA | | | |this info is in the bitstream: 0(no | | | |alpha encoded), else(interleaved alpha | | | |encoded). | | | |decoder: | | | |0: don’t decode alpha or no alpha in the| | | |bitsream | | | |1: only decode alpha if presents: x + | | | |alpha => alpha transcoding | | | |2: decode alpha and other channels | | |cChannel |number of color channels including alpha|B | | |if presents; | | | |user needs to set it properly only if | | | |N_CHANNEL; | | | |must be 1 to 16 | | |cNumOfSliceMinus1V; |tiling info: number of |B | |uiTileX[256] |horizontal/vertical slices and | | |cNumOfSliceMinus1H; |width/height; | | |uiTileY[256] |no more than 256 slices each direction; | | | |slice width/height must be no bigger | | | |than 65536 | | |sbSubband |kept subbands |D | |uiTrimFlexBits |trimmed flexbits during encode |U | |nLenMantissaOrShift; |32f and 32s conversion parameters |B | |nExpBias; | | | |pWStream; |Bitsream pointer and number of bytes in |U | |cbStream; |the bitstream | | |bBlackWhite |the mode user would like to encode 1bpp |B | | |black/white images. | | | |0: 0 = black | | | |1: 0 = white | | |bProgressiveMode |turn on/off progressive mode |B | |fMeasurePerf |turn on/off perf measurement |U | |bVerbose |turn on/off verbose mode |U | 18 External cfColorFormat and Internal cfColorFormat Combinations |internal\external|Y_ONLY | |cLine |number pixel rows in buffer; | | |for YUV_420, a pixel row means 2 Y rows and 1 U/V | | |row; | | |for YUV_422, a pixel row means 2 sensor row; | | |on encoder side, one MB row at a time and cLine >=| | |16 (8 if YUV_420) except for the last MB row; | | |on decoder side, cLine >= cROIHeight (cROIWidth if| | |oOrientation >= O_RCW) | |cbStride |how many bytes each pixel row occupies in the | | |buffer; | | |must be enough to contain a pixel row | An example: possible ways to encode a RGBA image (BD_8, cBitsPerPixel = 24) | |cfColorFormat |cLeadingPadding |uAlphaMode | |Encode RGBA |YUV_xxx or Y_ONLY |0 |2 (Planar) or | | | | |3 (Interleaved)| |Encode RGB |YUV_xxx or Y_ONLY |0 |0 | |only * | | | | |Encode Alpha |Y_ONLY |3 |1 | |only * | | | | |Encode G |Y_ONLY |1 |1 | |channel only * | | | | * Not implemented. debian/copyright0000644000000000000000000000301612133526222011117 0ustar Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ Upstream-Source: https://jxrlib.codeplex.com/ Upstream-Name: jxrlib Files: * Copyright: © Microsoft Corp. License: Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: . • Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. • Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. . THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. Files: debian/* Copyright: 2013, Mathieu Malaterre License: Same as above debian/get-orig-source0000755000000000000000000000141312154111577012132 0ustar #!/bin/sh set -ex PACKAGE=jxrlib VERSION=${VERSION:-$2} TARFILE=${TARFILE:-$3} if [ -z ${VERSION}]; then VERSION=`dpkg-parsechangelog | sed -n -e 's/^Version: \(.*\)-[^-]*$/\1/p'` fi if [ -z ${TARFILE}]; then TARFILE=${PACKAGE}_${VERSION}.orig.tar.gz fi FOLDER=${PACKAGE}-${VERSION} # 1.0 # wget -O jxrlib.tgz "http://download-codeplex.sec.s-msft.com/Download/SourceControlFileDownload.ashx?ProjectName=jxrlib&changeSetId=e96b2a813d13aa50353fb0f17cb5e6762ef2e37d" # 1.1 wget -O jxrlib.tgz "http://download-codeplex.sec.s-msft.com/Download/Release?ProjectName=jxrlib&DownloadId=685250&FileTime=130142428056630000&Build=20552" tar xfz jxrlib.tgz rm jxrlib/bin/*.exe mv jxrlib ${FOLDER} GZIP="--best --no-name" tar czf ${TARFILE} ${FOLDER} rm -rf ${FOLDER} rm jxrlib.tgz debian/README.Debian0000644000000000000000000000151412140447125011230 0ustar Upstream ships a Makefile based build system Since upstream agree on having an ABI maintained: https://jxrlib.codeplex.com/discussions/440294 I switched to a CMake based build system since it is much easier to handle VERSION/SOVERSION. The build system has been proposed upstream for ease of maintenance. -- You can find a test suite at http://www.itu.int/rec/T-REC-T.834 The conformance suite contains a bunch of .jxr files that you can decode with the DPK’s JXRDecApp, WIC on Windows 7 or 8, and the JPEG XR reference software itself. The resulting images should be identical for all three, with a couple of caveats: the DPK doesn’t support the “advanced pixel formats” (YCC or CMYKDIRECT), nor does it support chroma centering (for YUV 420 and 422). -- Mathieu Malaterre Wed, 17 Apr 2013 16:08:34 +0200