I tried few more compression schemas from libtiff 4.0.10 tiff.h: #define TIFFTAG_COMPRESSION 259 /* data compression technique */ #define COMPRESSION_NONE 1 /* dump mode */ #define COMPRESSION_CCITTRLE 2 /* CCITT modified Huffman RLE */ #define COMPRESSION_CCITTFAX3 3 /* CCITT Group 3 fax encoding */ #define COMPRESSION_CCITT_T4 3 /* CCITT T.4 (TIFF 6 name) */ #define COMPRESSION_CCITTFAX4 4 /* CCITT Group 4 fax encoding */ #define COMPRESSION_CCITT_T6 4 /* CCITT T.6 (TIFF 6 name) */ #define COMPRESSION_LZW 5 /* Lempel-Ziv & Welch */ #define COMPRESSION_OJPEG 6 /* !6.0 JPEG */ #define COMPRESSION_JPEG 7 /* %JPEG DCT compression */ #define COMPRESSION_T85 9 /* !TIFF/FX T.85 JBIG compression */ #define COMPRESSION_T43 10 /* !TIFF/FX T.43 colour by layered JBIG compression */ #define COMPRESSION_NEXT 32766 /* NeXT 2-bit RLE */ #define COMPRESSION_CCITTRLEW 32771 /* #1 w/ word alignment */ #define COMPRESSION_PACKBITS 32773 /* Macintosh RLE */ #define COMPRESSION_THUNDERSCAN 32809 /* ThunderScan RLE */ /* codes 32895-32898 are reserved for ANSI IT8 TIFF/IT <dke...@apago.com) */ #define COMPRESSION_IT8CTPAD 32895 /* IT8 CT w/padding */ #define COMPRESSION_IT8LW 32896 /* IT8 Linework RLE */ #define COMPRESSION_IT8MP 32897 /* IT8 Monochrome picture */ #define COMPRESSION_IT8BL 32898 /* IT8 Binary line art */ /* compression codes 32908-32911 are reserved for Pixar */ #define COMPRESSION_PIXARFILM 32908 /* Pixar companded 10bit LZW */ #define COMPRESSION_PIXARLOG 32909 /* Pixar companded 11bit ZIP */ #define COMPRESSION_DEFLATE 32946 /* Deflate compression */ #define COMPRESSION_ADOBE_DEFLATE 8 /* Deflate compression, as recognized by Adobe */ /* compression code 32947 is reserved for Oceana Matrix <d...@oceana.com> */ #define COMPRESSION_DCS 32947 /* Kodak DCS encoding */ #define COMPRESSION_JBIG 34661 /* ISO JBIG */ #define COMPRESSION_SGILOG 34676 /* SGI Log Luminance RLE */ #define COMPRESSION_SGILOG24 34677 /* SGI Log 24-bit packed */ #define COMPRESSION_JP2000 34712 /* Leadtools JPEG2000 */ #define COMPRESSION_LERC 34887 /* ESRI Lerc codec: https://github.com/Esri/lerc */ /* compression codes 34887-34889 are reserved for ESRI */ #define COMPRESSION_LZMA 34925 /* LZMA2 */ #define COMPRESSION_ZSTD 50000 /* ZSTD: WARNING not registered in Adobe-maintained registry */ #define COMPRESSION_WEBP 50001 /* WEBP: WARNING not registered in Adobe-maintained registry */
Sadly, only deflate worked with 32-bit floating point session. Others complained like FileTIFF: Compression scheme 32908 scanline encoding is not implemented. Also, GIMP complained a bit, but allow me to open image anyway: tiff_io_warning: [TIFFReadDirectory] Sum of Photometric type-related color channels and ExtraSamples doesn't match SamplesPerPixel. Defining non-color channels as ExtraSamples. tiff_io_warning: [TIFFReadDirectory] Sum of Photometric type-related color channels and ExtraSamples doesn't match SamplesPerPixel. Defining non-color channels as ExtraSamples. tiff_io_warning: [TIFFReadDirectory] Sum of Photometric type-related color channels and ExtraSamples doesn't match SamplesPerPixel. Defining non-color channels as ExtraSamples. tiff_io_warning: [TIFFReadDirectory] Sum of Photometric type-related color channels and ExtraSamples doesn't match SamplesPerPixel. Defining non-color channels as ExtraSamples. bps: 32 load_contiguous bytes_per_pixel: 16, format: 16 Probably for other compression schemas differet, non-scanline method of calling libtiff must be used? Also, a bit of nipicking (?) but Cinelerra doesn' show single-frame rendering correctly in stats: ** rendered 0 frames in 14.170 secs, 0.000 fps Render::render_single: Session finished. ** rendered 355 frames in 249.619 secs, 1.422 fps Render::render_single: Session finished. ** rendered 0 frames in 3.640 secs, 0.000 fps Shouldn't it be 1 frame, at least?
diff --git a/cinelerra-5.1/cinelerra/filetiff.C b/cinelerra-5.1/cinelerra/filetiff.C index cde59a0..cecd3c7 100644 --- a/cinelerra-5.1/cinelerra/filetiff.C +++ b/cinelerra-5.1/cinelerra/filetiff.C @@ -109,6 +109,9 @@ const char* FileTIFF::compression_to_str(int value) case FileTIFF::PACK_BITS: return "Pack Bits"; break; case FileTIFF::DEFLATE: return "Deflate"; break; case FileTIFF::JPEG: return "JPEG"; break; + case FileTIFF::PIXARFILM: return "PIXARFILM"; break; + case FileTIFF::PIXARLOG: return "PIXARLOG"; break; + case FileTIFF::JP2000: return "JP2000"; break; default: return "None"; break; @@ -474,6 +477,15 @@ int FileTIFF::write_frame(VFrame *frame, VFrame *data, FrameWriterUnit *unit) case FileTIFF::JPEG: compression = COMPRESSION_JPEG; break; + case FileTIFF::PIXARFILM: + compression = COMPRESSION_PIXARFILM; + break; + case FileTIFF::PIXARLOG: + compression = COMPRESSION_PIXARLOG; + break; + case FileTIFF::JP2000: + compression = COMPRESSION_JP2000; + break; default: compression = COMPRESSION_NONE; break; @@ -658,7 +670,10 @@ void TIFFCompression::create_objects() add_item(new TIFFCompressionItem(gui, FileTIFF::NONE)); // add_item(new TIFFCompressionItem(gui, FileTIFF::LZW)); add_item(new TIFFCompressionItem(gui, FileTIFF::PACK_BITS)); -// add_item(new TIFFCompressionItem(gui, FileTIFF::DEFLATE)); + add_item(new TIFFCompressionItem(gui, FileTIFF::DEFLATE)); // works! +// add_item(new TIFFCompressionItem(gui, FileTIFF::PIXARFILM)); not supported for scanline encoding +// add_item(new TIFFCompressionItem(gui, FileTIFF::PIXARLOG)); only 8 bit ? +// add_item(new TIFFCompressionItem(gui, FileTIFF::JP2000)); doesn't support scanline encoding // add_item(new TIFFCompressionItem(gui, FileTIFF::JPEG)); } diff --git a/cinelerra-5.1/cinelerra/filetiff.h b/cinelerra-5.1/cinelerra/filetiff.h index 321ea9b..124097d 100644 --- a/cinelerra-5.1/cinelerra/filetiff.h +++ b/cinelerra-5.1/cinelerra/filetiff.h @@ -70,7 +70,10 @@ public: LZW, PACK_BITS, DEFLATE, - JPEG + JPEG, + PIXARFILM, + PIXARLOG, + JP2000 }; Mutex *unit_lock;
-- Cin mailing list Cin@lists.cinelerra-gg.org https://lists.cinelerra-gg.org/mailman/listinfo/cin