Magic Lantern .422 konverteris į JPEG, PNG ar BMP

27 06 2012

Magic Lantern (toliau ML) tai Canon DSLR fotoaparatams skirtas programinės įrangos papildymas, kuris fotoaparatui suteikia daugybe papildomų funkcijų tokių kaip filmavimas (mano 50D atveju), nuotraukų serijų fotografavimas, HDR fotografavimas, Bulb ramping ir dar daugybe visko. Visas funkcijas ir ML aprašimą rasite čia http://www.magiclantern.fm/.

Vieną tokių man naudingų funkcijų yra Silence Picture. Tai galimybė nenaudojant fotoaparato užuolaidėlių (angl. Shutter) daryti nuotraukas. Įjungus šia funkciją fotoaparatas nukopijuoja Live View buferio infomaciją ir ją patalpina į failą kortelėje. Tokiu budu nenaudojant užuolaidėlių resurso galima daryti tūkstančius nuotraukų, o tai ypač naudinga timelapse projektų mylėtojams. Ši funkcija yra aprašyta ML vartotojo vadove: http://magiclantern.wikia.com/wiki/Unified/UserGuide#silent-pictures Žinoma yra ir minusų. Vienas jų yra tai, kad nuotraukų rezoliucija nebus didelė (50D atveju tai 1024×680, tačiau kituose modeliuose ji skiriasi), tad didelės raiškos nuotraukos tenka naudotis kelių nuotraukų sulipdimo galimybe (galima gaminti nuotraukas sujungiant 2×1, 2×2, 3×2, 3×3, 4×3, 4×4, 5×4 ar 5×5 1024×680 dydžio fotografijas). Sekantis minusas yra tas, kad Silence Picture nuotrauka padaroma kokybiškai esant 1/30 ir greitesnio išlaikymo atveju. Taigi esant labai prastam apšvietimui tenka atverti diafragmą, didinti ISO kad tilpti į 1/30. Na ir paskutinis minusas kurį šiame įraše bandysiu išspresti yra tai, kad nuotraukos saugomos nesuspaustame, vadinamajame RAW formate. Šias nuotraukas perkėlus įkompiuterį turime daugybe *.422 failų, kurių negalime atidaryti su jokia nuotraukų ar video redagavimo programa. Pirmiausia reikia šiuos failus konvertuoti. Tam ML kurėjai yra pagaminę įrangą 422 -jpg.exe kuri suprogramuota naudojantis Python (taigi turint 422 -jpg.py programą ją galima paleisti praktiškai visose platformose). Ši programa deja yra net labai lėta. Kaip vyksta konvertavimo procesas galite pamatyti šiame įraše.:

Vienas iš tokios spartos priežasčių žinoma yra tai, kad programa naudoja tik vieno procesoriau branduolio galią.

Taigi pasigilinęs į 422 kadro specifiką ir 422 -jpg.py programą su Visual Studio 2010 C# kalba parašiau programą kurioje konvertavimo metu pagrindinis dėmesys buvo skirtas procesoriaus branduolių išnaudojimui. Tai atlikau sukurdamas reikiamą kiekį gijų (angl. threads) priklausomai nuo branduolių skaičiaus procesoriuję. Tokios kompiliacijos programoje Windows paskirsto gijų darbus atskiriem branduoliams ir taip darbas paspartęja atitinkamai koks procesoriaus branduolių skaičius. Deja kelis kartus paleidus programą pastebėta, kad net naudojant 2 procesoriaus branduolius nuotraukų konvertavis truko net ilgiau nei naudojant Python programą. Tuomet teko perdaryti nuotraukų konstravimo mechanizmą pritaikant Fast Bitmap technologiją. Truputis informacijos apie
technologija rasite čia, o mano panaudota klasę rasite čia. Po šių pakeitimų programos veikimas pakito nepažįstamai. Štai kaip konvertuojami tie patys 100 nuotraukų:

Kad geriau pastebėtume procesoriaus panaudojimą padariau 999 nuotraukų konvertavimo testą:

Taigi startos atžvilgiu rezultatai gerai, o kad jie matytusi geriau atlikau kelis palyginamuosius testus su 3 sistemomis:

Intel Xeon E5606 2,13GHz 4xCore, 6GB RAM Celeron Dual-Core T3000 1.8GHz 2xCore, 2GB RAM AMD Athlon 64 X2 3800+ 2,00GHz 2xCore, 3GB RAM Intel Pentium Dual T2330 1.60GHz 2xCore, 2GB
442-jpg-v2.exe (seconds to convert 999 files) 644 945 989 1042
Perfomance (files per second) 1.6 1.1 1.0 1.0
422ToImage.exe (seconds to convert 999 files) 34 120 99 88
Perfomance (files per second) 29.4 8.3 10.1 11.4

Rezultatai parodo, kad konvertavimo procesas truko nuo 8 kartu iki 19 kartų greičiau nei naudojant Python programą. Reiktu žinoma atsižvelgti, kad sparta priklauso nuo branduolių skaičiaus bei žinoma procesoriaus greičio.

Programos galimybės

Kadangi programa vis atnaujinama pridedant naujų galimybių bei naujų nuotraukų formatų galimybių sąrašą reiktu sekti šiame puslapyje: https://bitbucket.org/mindogas/422toimage

Resursai

Programa parsisiuntimui: https://bitbucket.org/mindogas/422toimage/downloads

Programos kodas: https://bitbucket.org/mindogas/422toimage/src

100 YUV422 nuotraukų naudotų testavime: http://depositfiles.com/files/w5ssge9ep


Veiksmai

Information

Parašykite komentarą

Įveskite savo duomenis žemiau arba prisijunkite per socialinį tinklą:

WordPress.com Logo

Jūs komentuojate naudodamiesi savo WordPress.com paskyra. Atsijungti / Keisti )

Twitter picture

Jūs komentuojate naudodamiesi savo Twitter paskyra. Atsijungti / Keisti )

Facebook photo

Jūs komentuojate naudodamiesi savo Facebook paskyra. Atsijungti / Keisti )

Google+ photo

Jūs komentuojate naudodamiesi savo Google+ paskyra. Atsijungti / Keisti )

Connecting to %s




%d bloggers like this: