Skip to content
Snippets Groups Projects
Select Git revision
  • a073386c6f578c345dcb9b8121b2496c43b832ca
  • consistent_config default protected
2 results

tests

  • Clone with SSH
  • Clone with HTTPS
  • PLATO Compression/Decompression Tool

    If you find a bug or have a feature request please file an issue or send me an email.
    Compiled executables can be found here. The building instructions can be found here.

    Usage

    usage: cmp_tool [options] [<argument>]

    General Options

    Options Description
    -h, --help Print some help text and exit
    -o <prefix> Use the <prefix> for output files1
    -n, --model_cfg Print a default model configuration and exit2
    --diff_cfg Print a default 1d-differencing configuration and exit2
    -b, --binary Read and write files in binary format
    -a, --rdcu_par Add additional RDCU control parameters
    -V, --version Print program version and exit
    -v, -vv, --verbose Print various debugging information, -vv is extra verbose

    1) NOTE: If the -o option is not used the <prefix> will be set to "OUTPUT".
    2) NOTE: In the default configurations the samples and buffer_length parameter is set to 0!

    Compression Options

    Options Description
    -c <file> File containing the compressing configuration
    -d <file> File containing the data to be compressed
    -m <file> File containing the model of the data to be compressed
    --no_header Do not add a compression entity header in front of the compressed data
    --rdcu_pkt Generate RMAP packets for an RDCU compression3
    --last_info <.info file> Generate RMAP packets for an RDCU compression with parallel read of the last results

    3) NOTE: When using the --rdcu_pkt option the configuration of the RMAP parameters can be found in the .rdcu_pkt_mode_cfg file. The generated packets can be found in the TC_FILES directory.

    Decompression Options

    Options Description
    -d <file> File containing the compressed data
    -m <file> File containing the model of the compressed data
    -i <file> File containing the decompression information (required if --no_header was used)

    Guessing Options

    Options Description
    --guess <mode> Search for a good configuration for compression <mode>4
    -d <file> File containing the data to be compressed
    -m <file> File containing the model of the data to be compressed
    --guess_level <level> Set guess level to <level> (optional)5

    4) NOTE: <mode> can be either the compression mode number or the keyword: RDCU. The RDCU mode automatically selects the correct RDCU-compatible compression mode depending on if the Model (-m) option is set.
    5) Supported levels:

    guess level Description
    1 fast mode (not implemented yet)
    2 default mode
    3 brute force

    Example of Compression Parameter guessing:

    ./cmp_tool --guess RDCU -d test_data/test_data1.dat -o myguess

    This command creates the file myguess.cfg with the guessed compression parameters.

    Data Format

    The input data is formatted as hexadecimal numbers. For example: 12 AB 34 CD or 12AB34CD.

    User Manual

    You can find the user manual here.

    How to use the tool

    A simple example to show how the compression tool works. Instructions on how to perform compression without headers can be found here.

    1. Download the tool or build the tool yourself

    2. Create a configuration file

    • Create a cfg directory
      mkdir cfg
    • To create a default 1d-differencing mode configuration:
      ./cmp_tool --diff_cfg > cfg/default_config_1d.cfg
    • To create a default model mode configuration:
      ./cmp_tool --model_cfg > cfg/default_config_model.cfg
    1. Compress data with the default configurations:
    • Create a directory for the compressed data
      mkdir compressed
    • 1d-differencing mode compression
      ./cmp_tool -c cfg/default_config_1d.cfg -d test_data/test_data1.dat -o compressed/data1
      This creates a files in the compressed directory:
      data1.cmp -> compressed test_data1.dat file
    • Model mode compression
      ./cmp_tool -c cfg/default_config_model.cfg -d test_data/test_data2.dat -m test_data/test_data1.dat -o compressed/data2
      We use test_data1.dat as the first model for test_data2.dat.
      Creates these two files in the compressed directory:
      data2.cmp -> compressed test_data3.dat file
      data2_upmodel.dat -> updated model used to compress the next data in model mode
    1. Decompress the data
    • Create a directory for the decompressed data
      mkdir decompressed
    • Decompress data1.cmp
      ./cmp_tool -d compressed/data1.cmp -o decompressed/test_data1
      This creates a file in the decompressed directory:
      test_data1.dat -> decompressed data1.cmp file
    • Decompress data2.cmp
      ./cmp_tool -d compressed/data2.cmp -m decompressed/test_data1.dat -o decompressed/test_data2
      As for the compression we use test_data1.dat as our model for decompression.
      Creates these two files in the decompressed directory:
      test_data2.dat -> decompressed data2.cmp file
      data2_upmodel.dat -> updated model used to decompress the next data in model mode
    1. Bonus: Check if the decompressed data are equal to the original data
      The moment of truth!
      diff test_data/test_data1.dat decompressed/test_data1.dat
      diff test_data/test_data2.dat decompressed/test_data2.dat

      And also check if the updated model is the same
      diff compressed/data2_upmodel.dat decompressed/test_data2_upmodel.dat

    j