Class TileCompressor

java.lang.Object
nom.tam.image.tile.operation.AbstractTileOperation
nom.tam.image.compression.tile.TileCompressor
All Implemented Interfaces:
Runnable, ITileOperation

public class TileCompressor extends AbstractTileOperation
(for internal use) A parallel operation for compressing a specific image or binary table tile. Each instance will be processed in a single thread, but operations on separate tiles can be (and will be) processed in parallel.
See Also:
  • Field Details

    • compressedData

      protected ByteBuffer compressedData
    • compressedOffset

      protected int compressedOffset
    • compressionType

      protected nom.tam.image.compression.tile.TileCompressionType compressionType
    • tileOptions

      protected ICompressOption tileOptions
  • Constructor Details

    • TileCompressor

      protected TileCompressor(TiledImageCompressionOperation array, int tileIndex, TileArea area)
      Creates a new tile compressor for a specific tile in the image.
      Parameters:
      array - the class that handles the compression of the entire image via parallel processing tiles.
      tileIndex - the sequential index of the specific tile
      area - the location and size of the time in the complete image
  • Method Details

    • run

      public void run()
    • createImageNullPixelMask

      protected NullPixelMaskPreserver createImageNullPixelMask(ImageNullPixelMask imageNullPixelMask)
    • forceNoLoss

      protected void forceNoLoss(boolean value)
      should the data of this tile be forced to case no data loss. This information is not relevant in all cases that it is ignored by default.
      Parameters:
      value - the value to set.
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • getCompressedData

      protected byte[] getCompressedData()
    • getCompressedWholeArea

      protected ByteBuffer getCompressedWholeArea()
    • getCompressionType

      protected nom.tam.image.compression.tile.TileCompressionType getCompressionType()
    • getCompressorControl

      protected ICompressorControl getCompressorControl()
    • getGzipCompressorControl

      protected ICompressorControl getGzipCompressorControl()
    • initTileOptions

      protected nom.tam.image.compression.tile.TileCompressionOperation initTileOptions()
    • setCompressed

      protected nom.tam.image.compression.tile.TileCompressionOperation setCompressed(Object data, nom.tam.image.compression.tile.TileCompressionType type)
    • setCompressedOffset

      protected nom.tam.image.compression.tile.TileCompressionOperation setCompressedOffset(int value)
    • setDimensions

      public nom.tam.image.compression.tile.TileCompressionOperation setDimensions(int dataOffset, int width, int height)
      Description copied from interface: ITileOperation
      Specifies the location of the tile in the serialized buffer.
      Specified by:
      setDimensions in interface ITileOperation
      Overrides:
      setDimensions in class AbstractTileOperation
      Parameters:
      dataOffset - the byte offset at which the tile data begins.
      width - the width of the tile in pixels.
      height - the tile height in pixels.
      Returns:
      itself.
    • setWholeImageCompressedBuffer

      protected void setWholeImageCompressedBuffer(ByteBuffer compressed)
      set the buffer that describes the whole compressed image and let the tile create a slice of it from the position where the tile starts in the whole image. Attention this method is not thread-safe because it changes the position of the buffer parameter. This buffer is just as big as the image buffer but will be reduced to the needed size as a last step of the Compression.
      Parameters:
      compressed - the buffer that describes the whole image.