Skip to content
Snippets Groups Projects
Select Git revision
  • 87a92212cb3d42eb36f70f9edefa7f2e51eb1d4d
  • master default protected
  • cmp_tool-improvement
  • v0.15
  • v0.14
  • v0.13
  • v0.12
  • v0.11
  • v0.09
  • v0.08
  • v0.07
  • v0.06
  • v0.05
13 results

cmp_tool

  • Clone with SSH
  • Clone with HTTPS
  • Dominik Loidolt's avatar
    Dominik Loidolt authored
    change to new compression and decompression library
    87a92212
    History

    PLATO Compression/Decompression Tool

    If you find a bug or have a feature request please file an issue or send me an email.

    Usage

    usage: ./cmp_tool [options] [<argument>]

    General Options

    Options Description
    -h, --help Print this help text and exit
    -V, --version Print program version and exit
    -v, --verbose Print various debugging information
    -n, --model_cfg Print a default model configuration and exit1
    --diff_cfg Print a default 1d-differencing configuration and exit1
    -a, --rdcu_par Print additional RDCU control parameters
    -o <prefix> Use the <prefix> for output files2

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

    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
    --rdcu_pkt Generate RMAP packets for a RDCU compression3
    --last_info <.info file> Generate RMAP packets for a 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
    -i <file> File containing the decompression information
    -d <file> File containing the compressed data
    -m <file> File containing the model of the compressed data

    Data Formart

    The input data must be formatted as two hex numbers separated by a space.
    For example: 12 AB 34 CD.

    How to use the tool

    A simple example to show how the compression tool works.

    1. Run make to build the tool

    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
    • Change the the samples and buffer_length parameters from 0 to 50 in the default_config_1d.cfg and default_config_model.cfg files
    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 this two files in compressed directory:
      data1.cmp -> compressed test_data1.dat data
      data1.info -> decompression information for data1.cmp

    • 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.datas the first model for test_data2.dat

      Creates this three files in compressed directory:
      data2.cmp -> compressed test_data3.dat data
      data2.info -> decompression information for data2.cmp
      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 -i compressed/data1.info -d compressed/data1.cmp -o decompressed/test_data1

    • Decompress data2.cmp
      ./cmp_tool -i compressed/data2.info -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.

    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