Korszerű Információs Rendszerek

Beadandó feladat

Feladat megoldáshoz névkonvenciók:

Kód: neptunkod.c Kép: modded_mario.bmp

A programoknak egy szálon kell futniuk. A lényegi algoritmushoz (pixelek értékeinek számolása) AVX2-t kell használni.
A 192.168.110.3 gépen kell futniuk a programoknak, ott lesznek ellenőrizve. Fordításuk minden esetben a gcc "forras.c" -o "binaris" -mavx2 paranccsal fog történni.
Ezen a gépen megtalálható a feladatokhoz szükséges mario.bmp a gyökérben.


A következő feladatokat kell megoldani:

  1. Adott egy BMP file (ami egy tömörítetlen képformátum): mario.bmp. A mellékelt bitmapben a 0x96 byte-tól (122. hely) kezdve vannak tárolva a pixeladatok BGRA (3 4*8bit) egeszen a file végéig. A memóriában eredményként létrejött bitmap-et mentse el "final.bmp" néven. Ügyeljen arra, hogy a kimeneti BMP file header-jében a felbontást is helyesen kell beállítani!

    Bitmap formátum

    Készítsen egy programot (1 db .c file) amely a következő műveleteket hajtja végre:

    1. Töltse be a mario bitmapet!
    2. Kicsinyitse le a kepet horizontalisan (EGYMÁS MELLETTI pixelekre nézve) a felére (pl. 858x1080 kepbol 429x1080-es legyen) úgy, hogy csak minden 2. képpont értékét tartja meg!
    3. Atlagolja az egymás alatti paros es paratlan sorokat, igy kicsinyitve a kepet vertikalisan a felere (429x1080 -> 429x540).!
    4. Sötétítsen el minden pixelt az eredeti fényesség 75%-ra (minden RGB értéket szorozzon meg 0.75-el)
    5. Az átalakított (lekicsinyített es elsotetitett) mario kép színeit invertálja (minden szín változzon a saját inverzére)!
    6. Az eredményt mentse le modded_mario.bmp néven!

A betöltött képen nem szükséges minden műveletet pontosan ebben a sorrendben végrehajtani és a köztes állapotokat lementeni, csak a végső (modded_mario.bmp) állapotot kell a programnak létrehoznia.

A programok futási idejének mérését én végzem olyan módon, hogy a "time ./binaris" parancsot futtatom le. Ez automatikusan megmutatja a program indítása és vége közötti időtartamot, így azt nem szükséges a programkódon belül semmilyen módon mérni.

A kész feladatot (1 db c forráskód, melynek neve mindenkinek a saját neptun kódja) Soós Róbertnek kell elküldeni e-mailben (robert.soos@uni-miskolc.hu), legkésőbb november 7. (péntek) 23:59-ig. Szükség esetén e-mailben lehet segítséget kérni.