Using image processing to test some interest expriment.
- Way 1 (Base on
Makefile + execute.sh
)make
: get the original data structure (RGBTRIPLE) to operate.- avaliable target:
gau_all
: run all types of gaussian blur functions on image.mirror_all
: run all types of mirror functions on image.hsv
: run all types of hsv functions on image.
- Run/check performance:
make run
: run the program and get and show the image.make perf_time
: run the program with all function execution, and output the execution times.
- Way 2 (Base on
image_process.sh
)- Using shell script to choose compile arguments
bash image_process.sh [-o ... ] [--option ... ]
short option: -o
- -a : compile with all gaussian function (=
gau_all
, =-g 2047
) - -e : use when compile with ARM environment (TODO)
- -v : use when want to compile with valgrind (Can't use with perf)
- -t : use when you only want to compile and run the test module part.
- -m : compile with all mirror function
- -h : compile with all hsv function
- -s : use when you want to compile with strictly option (
-Wall -pedantic
) - -g N : choose specific gaussian function to run, using
N
to distinguish ; if N = combination of any type of N below, the program will generate all elements in combination.- 1 :
SSE + pthread
onoriginal
structure - 2 :
SSE
onsplit
structure - 4 :
SSE
onoriginal
structure - 8 :
SSE + prefetch
onoriginal
structure - 16 :
naive + unroll
onsplit
structure - 32 :
naive + unroll
onoriginal
structure - 64 :
pthread + unroll
onsplit
structure - 128 :
naive 1-dim + unroll
onsplit
structure - 256 :
naive + expand
onsplit
structure - 512 :
naive
onsplit
structure - 1024 :
naive
onoriginal
structure - 2047 : all function will be use one
- 1 :
- -a : compile with all gaussian function (=
long option: --option
- --perf N: compile and apply
N
times perf on program. - --clean : same function as
make clean
- --help : list usage
- --perf N: compile and apply
execute.sh
: let user edit the argument(with "enter = default") , call by make run , depend on with type of executed file that user compile.scripts/plot_time.gp
: gnuplot script.