Skip to content

SIMD optimizations and benchmark of most common image processing procedures.

Notifications You must be signed in to change notification settings

MegatronJeremy/The-Final-Frontier

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

26 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

The Final Frontier

SIMD, cache, and multithreading optimizations of most common image processing procedures.

Usage

<program_name> [options] <input_file>

Options

-a, --add <value>: Perform addition operation with the specified value
-s, --sub <value>: Perform subtraction operation with the specified value
-z, --isub <value>: Perform inverse subtraction operation with the specified value
-m, --mul <value>: Perform multiplication operation with the specified value
-d, --div <value>: Perform division operation with the specified value
-c, --idiv <value>: Perform inverse division operation with the specified value
-p, --pow <value>: Perform power operation with the specified floating point value
-l, --log: Perform logarithm operation
-b, --abs: Perform absolute value operation
-n, --min <value>: Perform minimum operation with the specified value
-x, --max <value>: Perform maximum operation with the specified value
-i, --inv: Perform inversion operation
-g, --gray: Perform grayscale conversion
-e, --sobel: Perform Sobel filter operation
-f, --filter <input_file>: Perform filter operation with the specified matrix file
-k, --benchmark <value>: Perform benchmark normalized over N given iterations
-o, --output <output_file>: Specify the output image name
-h, --help: Print usage

Notes

  • The image input file needs to be in the folder InputImg
  • The output image files will be placed in the OutputImg folder, with two copies, one generated by the referential and one generated by the optimized functions
  • The input matrix file needs to be placed in the Kernel folder (using the same format as the examples)
  • Replace <program_name> with the actual name of the program you are using.
  • Replace <input_file> with the path to the input file you want to process.
  • Replace with the desired numerical value for the corresponding operation.
  • Replace <output_file> with the desired name for the output image.

Examples

Addition operation:

<program_name> -a 5 input_file.jpg

Grayscale conversion:

<program_name> -g input_file.jpg

Sobel filter and logarithm performed one after another:

<program_name> -e -l input_file.jpg

Perform benchmark normalized over 10 iterations:

<program_name> -k 10 input_file.jpg

Perform filter operation with a matrix file:

<program_name> -f matrix.txt input_file.jpg

Help:

<program_name> -h

About

SIMD optimizations and benchmark of most common image processing procedures.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published