image_to_j2k(1)

πŸ“¦ version 6.0.9, in nixos 26.05, nixpkgs unstable

πŸ’– NAME

okay so bestie, image_to_j2k is that girl πŸ’… β€” she reads in an image of a certain type and converts it to a jpeg2000 file. She's part of the OpenJPEG library, so like, she has connections ✨.

Valid input image extensions are .bmp, .pgm, .pgx, .png, .pnm, .ppm, .raw, .tga, .tif. For PNG resp. TIF it needs libpng resp. libtiff β€” no cap, she can't do it alone 🫢.

Valid output image extensions are .j2k, .jp2.


✨ SYNOPSIS

image_to_j2k -i infile.bmp -o outfile.j2k
image_to_j2k -ImgDir directory_name -OutFor jp2
image_to_j2k -h  Print a help message and exit.

πŸŽ€ OPTIONS

here's the whole menu, bestie β€” every single one, no skipping, we don't do that here πŸ’–

  • -b n,n β€” size of code block (e.g. -b 32,32). Default: 64 x 64.
  • -c n β€” size of precinct (e.g. -c 128,128). Default: 2^15 x 2^15.
  • -cinema2K fps β€” a Digital Cinema 2K profile compliant codestream. Valid fps values are 24 or 48 🎬.
  • -cinema4K β€” a Digital Cinema 4K profile compliant codestream. This one does not need an fps: default is 24 fps.
  • -d X,Y β€” offset of image origin (e.g. -d 150,300).
  • -h β€” print a help message and exit. your literal bestie when you're lost 🫢.
  • -i name β€” input file name.
  • -n n β€” number of resolutions. Default: 6.
  • -o name β€” output file name.
  • -p name β€” progression order. name can be one out of: LRCP, RLCP, RPCL, PCRL, CPRL. Default: LRCP.
  • -q n β€” different psnr for successive layers.
Note: (options -r and -q cannot be used together) 🚨
  • -r n β€” different compression ratio(s) for successive layers. The rate specified for each quality level is the desired compression factor.
Note: (options -r and -q cannot be used together) 🚨
  • -s X,Y β€” sub-sampling factor (e.g. -s 2,2). Default: no sub-sampling in x or y direction.
Remark: sub-sampling bigger than 2 can produce errors. like, she will simply malfunction πŸ’€
  • -t W,H β€” size of tile (e.g. -t 512,512).
  • -x name β€” create index file and fill it. Default: no index file.
  • -EPH β€” write EPH marker after each header packet. Default: no EPH.
  • -F rawWidth,rawHeight,rawComp,rawBitDepth,s_or_u β€” characteristics of the raw input image.
  • -I β€” use the irreversible DWT 9-7. Default: reversible DWT 5-3.
  • -ImgDir directory_name β€” directory containing input files.
  • -M n β€” mode switch with values: 1, 2, 4, 8, 16, 32. Default: no mode switch activated. Meaning:
    • BYPASS(1)
    • RESET(2)
    • RESTART(4)
    • VSC(8)
    • ERTERM(16)
    • SEGMARK(32)

Values can be added: RESTART(4) + RESET(2) + SEGMARK(32) = -M 38 β€” math slay πŸ”₯

  • -OutFor ext β€” extension for output files.
  • -POC TtileNr=resolutionStart, componentStart, layerEnd, resolutionEnd, componentEnd, progressionOrder β€” (see Examples) πŸ‘€
  • -ROI c=n,U=n β€” quantization indices upshifted for component c (0 or 1 or 2) with a value of U (>= 0 and <= 37), e.g. -ROI c=0,U=25.
  • -SOP β€” write SOP marker before each packet. Default: no SOP marker in the codestream.
  • -T X,Y β€” offset of the origin of the tiles (e.g. -T 100,75).
  • -W β€” (see JPWL OPTIONS) ⬇️

πŸ”₯ JPWL OPTIONS

Options usable only if the library has been compiled with -DUSE_JPWL β€” so if these do nothing for you, that's why, bestie 😭
  • -W h<tilepart><=type>, s<tilepart><=method>, a=<addr>, z=<size>, g=<range>, p<tilepart:pack><=type>
    • h selects the header error protection (EPB): type can be [0=none 1,absent=predefined 16=CRC-16 32=CRC-32 37-128=RS]
      • if tilepart is absent, it is for main and tile headers
      • if tilepart is present, it applies from that tile onwards, up to the next h<> spec, or to the last tilepart in the codestream (max. 16 specs)
    • p selects the packet error protection (EEP/UEP with EPBs) to be applied to raw data: type can be [0=none 1,absent=predefined 16=CRC-16 32=CRC-32 37-128=RS]
      • if tilepart:pack is absent, it is from tile 0, packet 0
      • if tilepart:pack is present, it applies from that tile and that packet onwards, up to the next packet spec or to the last packet in the last tilepart in the stream (max. 16 specs)
    • s enables sensitivity data insertion (ESD): method can be [-1=NO ESD 0=RELATIVE ERROR 1=MSE 2=MSE REDUCTION 3=PSNR 4=PSNR INCREMENT 5=MAXERR 6=TSE 7=RESERVED]
      • if tilepart is absent, it is for main header only
      • if tilepart is present, it applies from that tile onwards, up to the next s<> spec, or to the last tilepart in the codestream (max. 16 specs)
    • g determines the addressing mode: range can be [0=PACKET 1=BYTE RANGE 2=PACKET RANGE]
    • a determines the size of data addressing: addr can be 2/4 bytes (small/large codestreams). If not set, auto-mode.
    • z determines the size of sensitivity values: size can be 1/2 bytes, for the transformed pseudo-floating point value.

🌈 EXAMPLES

like, real-world scenarios, iykyk πŸ’…

image_to_j2k -i file.bmp -o file.j2k -r 20,10,1 (compress 20x, then 10x, then lossless).
image_to_j2k -i file.ppm -o file.j2k -q 30,40,50
image_to_j2k -i file.pgx -o file.j2k -POC T1=0,0,1,5,3,CPRL
image_to_j2k -i lena.raw -o lena.j2k -F 512,512,3,8,u

πŸ‘‘ AUTHORS

giving credit where credit is due, periodt 🫢

  • Copyright (c) 2002-2007, Communications and Remote Sensing Laboratory, Universite catholique de Louvain (UCL), Belgium
  • Copyright (c) 2002-2007, Professor Benoit Macq
  • Copyright (c) 2001-2003, David Janssens
  • Copyright (c) 2002-2003, Yannick Verschueren
  • Copyright (c) 2003-2007, Francois-Olivier Devaux and Antonin Descampe
  • Copyright (c) 2005, Herve Drolon, FreeImage Team
  • Copyright (c) 2006-2007, Parvatha Elangovan

πŸ¦‹ SEE ALSO

go check out her friends fr fr: j2k_to_image(1) j2k_dump(1)


🌸 ok that's the whole page bestie, you ate that. this was image_to_j2k, Version 1.4.0 β€” the OpenJPEG library edition. go compress something iconic, mwah πŸ’œπŸŽ€

πŸ“¦ where this page comes from