A fractal coding framework for audio data
A hybrid Java-CUDA fractal compression framework for audio coding.
This project includes the CUDA GPU computation to faster compress the audio samples to fractal code. This project introduces these features:
These instructions will get you a copy of the project up and running on your local machine for development and testing purposes. See deployment for notes on how to deploy the project on a live system.
Prerequisites
Install these software for building and launching.
The cuda toolkit maybe exclude if you don’t need to process using GPU.
Installing
Install all aboved prerequisites. Then install by following steps.
git clone https://github.com/ratthapon/java-fractal-audio-compression jfac
cd jfac
ctx-compile-script-2
Install the project using MAVEN.
mvn install
It will install the program if the tests are passed. You can add -DskipTests if you want to install without gpu support.
Check the build message, it should be passed.
Alternative installation using Eclipse
Clone and built as above, then exec these commands.
mvn eclipse:eclipse
jfac
th.ac.kmitl.it.prip.fractal.MainExecuter
${workspace_loc:jfac/target}
Then you can use Eclipse to execute this program.
Test the program is built properly by using MAVEN
mvn test
This project can be executed by variety of methods. You can use any one that you prefer.
Exec by using MAVEN at the cmd,
mvn ecec:exec
, after the maven built and running the process, give the parameters to cmd and double Enter to run it with given parameters.
Exec by MAVEN with a pre-descripted parameter file by following commands,
mvn ecec:exec -Dparam="path_to_param/params.txt"
Each parameter is delimited by newline.
The parameter name and value are delimited by a space as follows.
processname compress
testname actual_synth
infile test-classes//synth-file-list.txt
inpathprefix test-classes//expected//synth_wav//
outdir test-classes//
maxprocess 7
inext raw
outext mat
pthresh 0
reportrate 0
gpu true
coefflimit 1.2
skipifexist false
minr 4
maxr 4
See available parameters list [under development].
Fractal compression is a data compression algorithm. It compress the raw data into smaller “code”. There are many schemes to implement this algorithm but the fractal block coding is the most popular scheme. Fractal block coding store only a self-similarity parameters of each partitioned block. It is so called fractal code. The self-similarity parameters is used to compose the original data from itself.
All contribution are gracefully accept.
We use SemVer for versioning. For the versions available, see the tags on this repository.
See also the list of contributors who participated in this project.
This project is licensed under the MIT License - see the LICENSE.txt file for details.