Skip to content
Snippets Groups Projects
Select Git revision
  • 46cedfe530e56d08c54d85a7dd9c6c143c41dee9
  • master default protected
  • extended_loader_api_no_scifio
  • extended_loader_api
  • plugin_support
  • kd-tree
  • basic_app
7 results

IImageDecompressor.java

Blame
  • Vojtech Moravec's avatar
    Vojtech Moravec authored
    This method is used for stream compressor/decompressor.
    It will cache the codebook and huffman tree so that each compression/decompression pass don't have to create it.
    46cedfe5
    History
    IImageDecompressor.java 1.82 KiB
    package azgracompress.compression;
    
    import azgracompress.cache.ICacheFile;
    import azgracompress.compression.exception.ImageDecompressionException;
    import azgracompress.fileformat.QCMPFileHeader;
    
    import java.io.DataInputStream;
    import java.io.DataOutputStream;
    
    public interface IImageDecompressor extends IListenable {
        /**
         * Get correct size of data block.
         *
         * @param header QCMPFile header with information about compressed file.
         * @return Expected size of data.
         */
        long getExpectedDataSize(final QCMPFileHeader header);
    
        /**
         * Decompress the image planes to decompress stream.
         *
         * @param compressedStream Input stream of compressed data.
         * @param decompressStream Output stream for decompressed data.
         * @param header           QCMPFile information.
         * @throws ImageDecompressionException when decompression fails.
         */
        void decompress(DataInputStream compressedStream,
                        DataOutputStream decompressStream,
                        final QCMPFileHeader header) throws ImageDecompressionException;
    
        /**
         * Decompress the image planes to memory buffer.
         *
         * @param compressedStream Input stream of compressed data.
         * @param buffer           Buffer to store decompressed pixels.
         * @param header           QCMPFile information.
         * @throws ImageDecompressionException when decompression fails.
         */
        void decompressToBuffer(DataInputStream compressedStream,
                                short[][] buffer,
                                final QCMPFileHeader header) throws ImageDecompressionException;
    
        /**
         * Preload decompressor codebook and Huffman tree for stream decompressor from provided cache file.
         *
         * @param codebookCacheFile Codebook cache file.
         */
        void preloadGlobalCodebook(final ICacheFile codebookCacheFile);
    }