arithmetic-coding
Installation
Install as module for API usage:
npm i arithmetic-coding
Or install as global CLI:
npm i -g arithmetic-coding
API
From file path:
const ariCoding = require('arithmetic-coding');
ariCoding.encode(path.resolve('/txt/long.txt'), path.resolve('/txt/long-encoded.txt'));
ariCoding.decode(path.resolve('/txt/long-encoded.txt'), path.resolve('/txt/long-decoded.txt'));
From Buffer
:
let data = Buffer.from('Example data', 'utf8');
let encoded = encode.encodeFromBuffer(data);
console.log(`encoded = ${encoded}`);
let decoded = decode.decodeFromBuffer(encoded);
console.log(`decoded = ${decoded}`);
Command-line interface
$ ari-coding -h
Usage: index [options] [command]
Options:
-v, --version output the version number
-h, --help output usage information
Commands:
encode|e [options] <file> encode a file
decode|d [options] <file> decode a file
$ ari-coding encode -h
Usage: encode|e [options] <file>
encode a file
Options:
-o, --output <file> output file path
-h, --help output usage information
Performance
You can see the latest travis test for running time used by each test.
Some benchmarks are shown below:
File size (Bytes) | total time | encode time | decode time |
---|
60640 | 110ms | small | 110ms |
2130640 | 2940ms | 426ms | 2514ms |
About the algorithm
- Wikipedia
- How to implement practical encoder/decoder
- Reference-arithmetic-coding on GitHub