ForzaElettromotrice / edix

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

EdiX

Editor di immagini scritto interamente in C++

C++ CUDA OpenMP PostgreSQL Redis

Questa repository contiene il codice di un progetto universitario per il corso di Ingegneria del software e Progettazione di sistemi Multicore

EdiX è un editor di immagini dove l'utente può creare dei progetti. All'interno di essi, potrà aggiungere immagini ed effettuare operazioni su di esse. Le operazioni sono denominate funX e sono le seguenti:

  • Blur
  • Scala di grigi
  • Upscaling/Downscaling
  • Sovrapposizione
  • Composizione
  • Color filter

Struttura del progetto

  • bin/ Contiene i file binari
  • obj/ Contiene i file oggetto
  • src/ Contiene il codice sorgente
    • src/dbutils Contiene il codice per la creazione e gestione del database PostgreSQL e Redis
    • src/env Contiene il codice per la gestione degli ambienti presenti nel progetto, ovvero: HOMEPAGE, PROJECT e SETTINGS
    • src/functions Contiene il codice delle funX
  • test/ Contiene il codice per testare le funX

Per maggiori informazioni, qui trovate la relazione del progetto

Prerequisiti

Prima di passare alla compilazione del progetto bisogna avere installati i seguenti programmi

  • CMake
  • CUDA
  • PostgreSQL
  • Redis

Come compilare ed eseguire

Una volta scaricato il progetto, entrare nella directory edix. Al suo interno si deve creare una nuova directory, denominata build

mkdir -p build

Creata build, entrare all'interno di essa ed eseguire

cmake ..

Eseguito il comando, all'interno di build, verrà generato il Makefile il quale permetterà di generare gli eseguibili. Quindi per compilare

make

A questo punto verranno generati due eseguibili

  • edix sarà l'eseguibile principale
  • testx se eseguito verrà fatto un test delle performance di ogni funX, con 1 fino al massimo numero di thread supportabili dalla macchina (NOTA per eseguire testx, bisogna entrare nella directory test ed eseguire testx dal suo interno)

Per eseguire uno dei due eseguibili, basterà quindi

./nome_eseguibile

About

License:MIT License


Languages

Language:Cuda 55.7%Language:C++ 42.8%Language:CMake 1.6%