Akademin för innovation, design och teknik. If the RAW capture is the cookie dough, the JPEG is the baked cookie Jeff Schewe

Relevanta dokument
Så skapas färgbilder i datorn

Filformat / bildformat

Torstens Digitalbildguide

Digital bildhantering

Bilder... Dagens föreläsning. Objektgrafik. Objektgrafik. TNMK30, 2010 Föreläsning

SeniorNet Huddinge

SLUTRAPPORT: TEXAS HOLDEM 4 FRIENDS

Bilduppladdning i Järnvägshistoriskt forum (gäller MS Windows för PC)

Optimala bildinställningar för leverans TEORIHÄFTE TILL KURSEN

Laboration 4: Digitala bilder

Bildredigering i EPiServer & Gimp

Bildoptimering för webben

Prioritet. Varför digitalisera? Apparater; i allmänhet. Datorn

Föreläsning i webbdesign. Bilder och färger. Rune Körnefors. Medieteknik Rune Körnefors rune.kornefors@lnu.se

Raw Hide. hantera camera raw-bilder

INT 3 F3. En texts läsbarhet. Teckensnitt. Medieteknik Del1. Färger, teckensnitt och bildformat

Digitalkamera. Fördelar. Nackdelar. Digital fotografering. Kamerateknik Inställningar. Långsam. Vattenkänslig Behöver batteri Lagring av bilder

Digitala bilder & Fotografering med Digitalkamera

Pixelgrafik. Utdrag ur Adobe Photoshops handbok. Om bitmappsbilder (pixelbilder) Om vektorgrafik (kallas ibland objektgrafik)

Kamerans sensor. I kameran sitter bildsensorn som består av en rektangulär platta med miljontals små ljuskänsliga halvledare av CCD eller CMOS typ.

Sharpdesk Sharpdesk Dokumenthanteringslösning

Så här använder du de enklaste funktionerna i programmet: Starta programmet. Programmet startas från ikonen på skrivbordet.

John S. Webb 2006 (text citat från Adobe)

Sensorer i digitalkameror

Mina listor. En Android-applikation. Rickard Karlsson Rickard Karlsson - rk222cu Linnéuniversitet rk222cu@student.lnu.

SeniorNet Huddinge

Digital bildteknik. Thor Stone Education. Digital bildteknik. Copyright Torsten Nilsson

ATT ARBETA MED VEKTORGRAFIK

Forma komprimerat trä

L A B R A P P O R T 1

Skarpt och rätt exponerat. Grundläggande inställningar för en digital systemkamera

Från foto till bildskärm och tryck med bästa kvalitet Ulrik Södergren

Ökat personligt engagemang En studie om coachande förhållningssätt

Hantering av hazards i pipelines

Bilder. Bilder och bildformat

En pixel är en digital bilds minsta del och den är väldigt liten

Digitalt säkrade fingeravtryck

En trevlig form av utskrift från Disgen är en grafisk antavla med foton.

Alla presentationstekniker har olika behov; bandbredd, lagring samt bildkvalitet

Grunderna i. Digital kamerateknik. SM3GDT Hans Sodenkamp SK3BG

Hej, vart beställde du din fotobok? Vilka av alla 50 mm objektiven är bäst?

Från raw till print. Grundläggande genomgång av arbetsflöde och bildoptimering i

9 Avancerad redigering

Grafiska pipelinens funktion

Visualisering med Rhino/Vray/Photoshop av modell som skapats i Revit. AADA15 Revit Workshop 2017 LTH Ludvig Hofsten

Grunder. Grafiktyper. Vektorgrafik

Ansiktsigenkänning med MATLAB

Release Notes för CET Designer 2.6

LITEN GRAFISK HJÄLPREDA

Tor Sterner-Johansson Thomas Johansson Daniel Henriksson

LAJKA-GUIDE. Jätteguide till molnets 9 bästa. näthårddiskar. 7 De bästa gratisalternativen 7 Så väljer du rätt 7 Smarta säkerhetstips

Grundredigering i Photoshop Elements. Innehåll. Lennart Elg Grundredigering i Elements Version 2, uppdaterad

Kvalitetsmått: Skärpa

ConferenceCam Connect. QuickStart Guide

Hur jag tänker innan jag trycker på knappen? Lasse Alexandersson

Kravspecifikationer för digitalisering Svenska litteratursällskapet i Finland Digitaliseringstjänster

Färger, RGB-er och riktiga bilder

Stackning av bilder JAN NILSSON

Beijer Electronics AB 2000, MA00336A,

Matematik och det nya medialandskapet

Inledning. Förpackningens innehåll. Svensk version. JB Sweex 4.2 Megapixel Digitalkamera

Användarhandbok. MHL to HDMI Adapter IM750

Att bevara historiska bilder. Digitalisera, beskriva, söka, visa, långtidslagra

Histogram över kanter i bilder

Digitalitet. Kontinuerlig. Direkt proportionerlig mot källan. Ex. sprittermometer. Elektrisk signal som representerar ljud.

404 CAMCORDER VIDEOKAMERA & KAMERAFUNKTIONER

Effektiv fotoproduktion Ulrik Södergren - ulrik@digitalfotografen.se

EIZOs guide till en djupare förståelse av digital fotografi

Fotografering med digital systemkamera

Digitalt foto Modern teknik för alla fotografer

Pensionär efter 41 år i Postens tjänst Vice ordf (kd) i kultur- och fritidsnämnden Tyresö Föreningsaktiv i Seniornet, Lions, Kd, EFS

LABORATION nr 1 Landskapsfoto & kamerastudie

Bruksanvisning för programmet Bildbanksgeneratorn 1.0.0

TEM Projekt Transformmetoder

Grafisk Teknik. Rastrering. Övningar med lösningar/svar. Sasan Gooran (HT 2013)

En investering... Och tillsammans skapar vi minnen för livet.

Tentamen, Programmeringsteknik för BME, F och N

Den Disruptiva Utmaningen. Christian Sandström, Tekn Dr. Chalmers och Ratio. Disruptive, Computer Sweden 16 oktober 2014

Manual Lead tracking. Version

TBSK 03 Teknik för Advancerade Datorspel

Välkommen till Flyerskola!

Not everything that counts can be counted, and not everything that can be counted counts. William Bruce Cameron

Insticksprogram för webbkamera till SalsaJ. Användarmanual

Ett enkelt OCR-system

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Felsökning. Datatyper. Referenstyper. Metoder / funktioner

Inledning. Vad är ett datorprogram, egentligen? Olika språk. Problemlösning och algoritmer. 1DV433 Strukturerad programmering med C Mats Loock

Lunds Tekniska Högskola Datorarkitektur med operativsystem EITF60. Superscalar vs VLIW. Cornelia Kloth IDA2. Inlämningsdatum:

Välkomna till. Westerqwarn. den 17 augusti 2018

Grundläggande fakta digitalkameror

Digital bild & sportfiske. Lektion 1:1/5 Kameran funktioner och hur man exponerar rätt

Bättre ljus i bilderna. Ytterligare inställningar för en digital systemkamera

Grafisk teknik IMCDP IMCDP IMCDP. IMCDP(filter) Sasan Gooran (HT 2006) Assumptions:

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

INSTALLATIONSGUIDE TILL ANDROID UTVECKLINGSMILJÖ

Smartare kamera. - iphone-app med det lilla extra LAJKA-GUIDE

[SLUTRAPPORT: DRAWPIXLZ (ANDROID-APP)] Slutrapport. Författare: Zlatko Ladan. Program: Utvecklare av Digitala Tjänster 180P

Primus Vägledning för massimport av bilder. Primus 5.6.4

DIGITAL BILDBEHANDLING GRUNDKURS. Sammanställd av

Föreläsning 2. Operativsystem och programmering

Transkript:

Akademin för innovation, design och teknik If the RAW capture is the cookie dough, the JPEG is the baked cookie Jeff Schewe PROCESSING RAW IMAGE DATA IN ANDROID UNITS BEARBETNING AV RAW BILDDATA I ANDROID ENHETER DVA331: Examensarbete för kandidatexamen i datavetenskap, grundläggande nivå, 15 högskolepoäng Datavetenskapliga programmet Mälardalens Högskola Mirhet Julardzija mja09001@student.mdh.se Handledare Mälardalens Högskola: Baran Cürüklü Examinator Mälardalens Högskola: Mikael Ekström

Abstract In imaging and digital image processing the RAW-format is associated with high image quality compared to e.g. JPEG. This is due to the fact that the RAW-format is the data recorded by the image sensor in the digital camera, thus it is not modified by any means. A research investigating current Android-applications that process RAW-files is done as a part of state of the art investigation. In this thesis the focus is on developing an Android application that are able to process RAW-data. During the work an Android application is developed to process RAW-files, i.e. converting them to readable image-formats such as TIFF. The purpose of this is to measure execution-time for different demosaicing-algorithms in the Android-device to determinate if the device is suitable for this type of heavy operations. The purpose of the demosaicing-algorithm is to reconstruct a full color image from a color filter array-format. This result shows that the tested Android device is suitable for heavy RAW image processing operations. This result implies also that mobile phones, which have limited computing possibilities compared to professional equipment, will in the near future deliver professional level image quality equivalent today s standards. Sammanfattning Inom fotografisk avbildning och digital bildbehandling är RAW-formatet förknippat med hög bildkvalité i jämförelse med exempelvis JPEG. Detta är på grund av faktumet att RAW-format är det obehandlade data som registrerats av bild-sensorn, ej modifierad på något sätt. I denna rapport utförs en omvärldsanalys av Android-applikationer som bearbetar RAW-data som en del av state of the art undersökningen. Rapporten dokumenterar utvecklingen av en Android applikation som bearbetar RAW-bilddata, det vill säga omvandla dem till läsbara bild-format som exempelvis TIFF. Demosaicing-algoritmernas syfte är att rekonstruera en full färg bild från ett färgfiltermatris-format. Resultatet visar att Android-enheten är lämplig för krävande RAW-bildbehandlingsoperationer. Resultatet visar också att mobiltelefoner, vilka har begränsade prestandamöjligheter jämfört med professionell utrustning, kommer inom en snar framtid leverera hög kvalité bildkvalité likvärdigt med dagens standard. Keywords RAW, Image processing, Android, DNG, Demosaicing algorithms, Bayer pattern, Digital Negative

Innehåll Abstract... 2 Sammanfattning... 2 1. Bakgrund... 4 2. Tidigare arbeten... 4 3. Bidrag... 5 3.1 Problemformulering... 5 3.2 Tester... 6 4. Digital bild... 6 4.1 RGB och TIFF... 7 4.2 Digital bild i Android... 7 4.3 RAW-format... 7 5. Demosaicing... 8 5.1 Demosaicing-algoritmer... 9 5.1.1 Bilinjär... 10 5.1.2 Variable number of gradients (VNG)... 11 5.1.3 Adaptive Homogeneity-Directed (AHD)... 11 6. Implementation... 11 6.1 Verktyg... 11 Android... 11 Enhet... 11 Eclipse... 12 Libraw... 12 Android NDK... 12 Jni... 12 6.2 Process... 12 6.2.1 Bit per kanal-problemet... 13 7. Resultat... 13 7.1 Applikationen... 13 7.2 Tester... 15 8. Diskussion... 17 9. Slutsats... 18 9. Framtida arbeten... 18 10. Referenser... 19 11.Bilagor... 21

1. Bakgrund Denna rapport dokumenterar en kandidatexamen i Datavetenskap på Mälardalens Högskola. Under arbetet implementeras en applikation för Android-enheter som behandlar RAW-data med avancerade modifikationsinställningar så som val av demosaicing-algoritm, vilket är en typ av interpolering inom digitalt foto. Idag finns det Android-applikationer som kan omvandla RAW-data till läsbara format men då utan möjligheten att välja demosaicing-algoritm. Anledningen till att utveckla en applikation med möjligheten att välja demosaicing-algoritm är främst för att undersöka om Android-enheten ett lämpligt verktyg för behandling av RAW-data med komplexa interpoleringsalgoritmer sett ur exekveringstidsperspektiv, då demosaicing-algoritmen är den mest krävande processen vid bearbetning av RAW-bilddata. I arbetet ingår också kvalitativ så väl som kvantitativ analys av applikationen i fråga, samt de möjligheter som den ger en potentiell användare. Inom fotografisk avbildning och digital bildbehandling är RAW-formatet förknippat med hög bildkvalité i jämförelse med exempelvis JPEG och andra format som förlorar information vid komprimering. Detta är på grund av faktumet att RAW-format är det obehandlade data som registrerats av bild-sensorn, ej modifierad på något sätt, därav namnet RAW (den svenska översättningen för det engelska ordet är rå ). Att arbeta med så kallat rådata vid bildbehandling, istället för komprimerade format som t.ex. JPEG, ger större möjligheter vid modifiering av bilden eftersom mer data finns att tillgå. Nackdelen är att filerna är mycket större. Idag används systemeller kompaktkameror för att spara fotograferade bilder i RAW-format, där formatet oftast skiljer sig bland de olika tillverkarna. Nyligen har det har det också blivit möjligt att fotografera i RAW-format med vissa Android-enheter. Det kommande operativsystemet Android 5.0 Lolipop har ett nytt kamera-api som ger utvecklare möjligheten att implementera stöd för fotografering i RAW-format. Detta skapar ett behov kring att kunna bearbeta denna RAW-data direkt i mobilen. En av anledningarna till att det inte finns applikationer som behandlar RAW-data på ett avancerat sätt i Android beror mycket på att Android tidigare inte haft stöd för att fotografera i detta format och följden av detta är att det då sällan förekommer RAW-filer i en Android-enhet. Förutom RAW-fotografering har Android 5.0 också stöd för avancerade kamerafunktioner så som exponeringstid och ISO känslighet [26]. I arbetet utförs en prestanda-analys av olika demosaicing-algoritmer med en Android-enhet. Demosaicing-algoritmernas syfte är att interpolera bilden, det vill säga rekonstruera en full färg bild från ett färgfiltermatris-format från den formen av data som digitalkamerans bild-sensor registrerat bilden till en form där varje pixel får sin korrekta färg. 2. Tidigare arbeten Varje RAW-format har ett unikt sätt att representera data på. För att hjälpa utvecklare med avkodning av denna data har Dave Coffin utvecklat Dcraw, ett C-baserat program som avkodar de flesta RAW-format som finns idag [13]. Dave Coffin beskriver projektet själv: So here is my mission: Write and maintain an ANSI C program that decodes any raw image from any digital camera on any computer running any operating system. Eftersom man får fria händer vid framkallningen kan den digitala framkallningen med Dcraw ge bättre resultat än kameratillverkarnas egna verktyg för avkodning av RAW-data. Det finns program, både med öppen källkod och kommersiella, med grafiskt gränssnitt som ger möjlighet att använda Dcraws bearbetningsfunktioner. En av dessa är UfRaw [24]. Exempelvis har användaren

möjligheten att välja vilken interpoleringsalgoritm som ska användas, vitbalans-metod och exponeringskompensation. I tidigare arbeten [2, 12, 2, 5] dokumenteras hur olika interpoleringsalgoritmer påverkar resultatet av den slutliga bilden och man fastställer att olika algoritmer passar för olika situationer. Den omvärldsanalys som gjorts i detta arbete har inte funnit någon applikation för Android som ger möjligheten att välja demosaicing-algoritm vid bearbetning av RAW-data men däremot finns Androidapplikationen Raw Decoder [21] som konverterar RAW-formatet till TIFF eller JPEG-format med begränsade möjligheter till att påverka hur bilden ska framkallas. Raw Decoder ger endast möjligheten att välja om man vill att bildens utdata-format (vid val av TIFF som utdata-format) ska vara i 8-bit per kanal eller 16-bit per kanal eller om bilden ska konverteras till JPEG. För Raw Decoder tar det ca 10 sekunder att konvertera ett 16 bit per kanal RAW-format (testerna har gjorts med DNG-formatet då detta är det formatet som kommer att användas i rapportens tester) till TIFF 16 bit per kanal. TIFF-formatet är ett bildformat för lagring av rastergrafik. Formatet använder sig av förlustfri komprimering, eller ingen komprimering överhuvudtaget [23]. JPEG däremot är en standard för komprimering av digitala bilder, främst destruktiv sådan [17]. Omvärldsanalysen har också funnit en applikation som erbjuder möjligheten att modifiera bilden efter att programmet bearbetats fram det till ett läsbart format. Applikationen heter Photo Mate R2 och finns tillgänglig på Google Play [20]. 3. Bidrag Arbetet bakom rapporten är att utveckla en applikation för Android som ger användaren möjlighet att framkalla RAW-data till rå RGB eller ett format som exempelvis TIFF med alternativet att välja vilken demosaicing-algoritm som ska användas för att sedan använda applikationen i mätningar av exekveringstid för demosaicing-algoritmerna. Demosaicing är den mest krävande processen vid bearbetning av RAW-data till läsbara format. Rapporten har en utredande karaktär i form av omvärldsanalys där fokus är att titta på tidigare Android-applikationer med liknande funktioner samt en konstruktiv karaktär i form av implementation. I arbetet ingår även en kvantitativ studie i form av att exekveringstiden mäts för algoritmerna. Det primära syftet med applikationen är att den ska fungera som ett grafiskt gränssnitt vid testning av exekveringstider för demosaicing-algoritmerna men applikationen uppfyller också andra syften så som att man kan exempelvis föra över en RAW-fil från sin kamera/dator och konvertera den till TIFF med den önskade interpoleringsalgoritmen om man inte vill använda Adobe Camera Raws eller något annat programs förinställda interpoleringsalgoritm. De RAW-format som stöds finns på Dcraws hemsida [13]. Arbetet innehåller också litteraturstudier som återges i rapporten i form av förklarande text kring digital bild och RAW-data. 3.1 Problemformulering Förutom att lösa problemet med att det inte finns någon Android-applikation som ger möjlighet att låta användaren bestämma demosaicing-algoritm besvaras även följande frågeställning. Notera att en viss typ av enhet, se nedan, har valts för att svara frågorna men vi anser att resultaten är representativa även för andra enheter: Är Android-enheten ett lämpligt verktyg för behandling av RAW-data med komplexa demosaicing-algoritmer sett ur exekveringstidsperspektiv? Tider kommer att mätas med olika demosaicing-algoritmer vid konvertering till läsbara bild-format.

3.2 Tester Testerna som genomförs är följande: Exekveringstid för att framkalla RAW-filen till TIFF/bitmap med 3 olika demosaicing-algoritmer. Dessa är den bilinjära, Adaptive Homogeneity-Directed interpolation (AHD) och Variable number of gradients (VNG). Analys av motiven i de tre olika formerna, dvs. med bilinjär, AHD, och VNG-demosaicing. Testerna av bearbetning av RAW-data kommer att utföras på fem olika motiv (DNG-format) och på samma telefon. Valet av filformatet DNG är baserat på att detta är formatet som Android 5.0 Lolipop använder för att spara RAW-data när det fotograferas med applikationen. Filerna är 15,6 MB och har måtten 3280x2464. DNG-formatet (Digital Negative) är ett filformat som tagits fram av Adobe Systems. Formatet har öppen källkod med full dokumentation till skillnad från andra RAW-format. DNG bygger på TIFF 6.0 [10]. Testerna ska ge underlag för utvecklare som är intresserade av att utveckla applikationer som bearbetar RAW-filer. Testerna kommer analysera hur väl enheten presterar vid behandling av RAW-data och ge svar på om bearbetningstiderna ligger inom en rimlig nivå för att det ska finnas intresse av att skapa och använda en kommersiell applikation som gör detta. 4. Digital bild En digital bild i RGB-format representeras med 3 olika värden per pixel. Ett intensitetsvärde för varje färg (röd, grön, blå). Det som specificerar hur många alternativ av färger en pixel har är hur många bits den är representerad med. Exempelvis en JPEG bild innehåller 8 bit per pixel, vilket innebär att varje pixel kan innehålla ett värde från en kombination av 256 olika färger ty 2^8 = 256. Digitalkameror sparar mer än 8 bit per pixel, vilket innebär mer kombinationer av färger. True Color (24 bit per pixel) ger 2^24 = 16777216 olika färger, vilket är ungefär så många som människan synsystem kan uppfatta,. Vårt synsystem uppfattar nämligen ca 10 miljoner färger. Notera att en 48 bit bild kan representera 281 trillioner färger [15]. Figur 1. Tabell på hur många färger som kan representeras för respektive bitar per pixel.

4.1 RGB och TIFF Rå RGB syftar till en matris som innehåller röda, gröna och blåa färgkomponenter där det finns 3 gånger så många matrisplatser som det finns pixlar i bilden (varje färg har en egen plats i matrisen och en pixel består då av en sammansättning av 3 matris platser) [22]. Till skillnad från TIFF som innehåller exempelvis en header, meta-information om bilden m.m. [23] är denna representation av RGB i rå form, det vill säga att det endast innehåller informationen om röda, gröna och blåa färgens intensitet [24] och inget annat. 4.2 Digital bild i Android Android-plattformen har inbyggt stöd för flera olika bildformat. JPEG ("Joint Photographic Experts Group")-formatet används primärt för destruktiv komprimering av digitala bilder, av digitala bilder. Formatet kan behålla bra kvalité vid komprimering av bilder men kan också vara dåligt på exempelvis ritningar och datorskapade bilder. Från och med version 9,1 så finns möjligheten att spara utan att det blir en destruktiv komprimering [17]. GIF ("Graphics Interchange Format")-formatet kan användas för icke förstörande komprimering. Eftersom en GIF-bild dessutom endast kan innehålla 256 färger är det inte lämpligt att användas för fotografier men används ofta för animationer [27]. PNG ( "Portable Network Graphics")-formatet användas oftast till bilder som inte är fotografiska, det vill säga grafik, ikoner m.m. PNG är ett förlustfritt bildformat som komprimerar filen. BMP (Bitmap ) används för rastergrafik som kan sparas med flera olika bit per kanal-lägen. BMP är ett enhetsobundet format vilket innebär att filen kan flyttas mellan olika enheter. Android har stöd för ARGB_8888 vilket är 8 bitar för vardera färgen per pixel samt 8 bitar för transparens-kanalen, totalt 32 bitar. Samt stöd för RGB_565 vilket är 5 bitar för röd, 6 bitar för grön och 5 bitar för blå. WebP är ett stillbildsformat utvecklat av Google. Formatet bygger på destruktiv förlustfri komprimering. Med samma kvalité som JPEG har WebP ca 39 % mindre filstorlek. För att visa bilder i andra format måste man använda sig av applikationer. 4.3 RAW-format En RAW-fil är inte en klar bild. Det är minimalt bearbetad data som digitalkamerans sensor fångat upp vid exponeringsmomentet. RAW-filer kallas ibland för digitala negativ då de har samma roll som negativ inom fotografi, alltså de är inte användbara bilder men de innehåller all information för att framkalla en bild. Precis som ett analogt negativ har RAW-filer ett större dynamiskt omfång [25]. Det finns hundratals olika RAW-format och de är uppbyggda på sitt eget sitt men de flesta har ungefär samma struktur. Många av dem är uppbyggda kring TIFF-formatet [16]. Nedan följer en abstrakt beskrivning av hur en generell RAWfil är uppbyggd: Header Sensorns metadata Bildens metadata Miniatyr av bilden Förminskad bild i JPEG-format för förhandsvisning Sensorns bild-data Bearbetning av en RAW-fil till läsbart format innefattar oftast följande steg [10]: Avkodning : RAW-filens data kan vara kodad i komprimeringssyfte. Borttagning av felaktiga pixlar: Ersätta data in kända dåliga områden med interpolering från närmaste grannar. Vitbalans: Uppskatta färgtemperaturen av ljuset som användes för att ta fotografiet.

Demosaicing: Interpolering av RAW-data från färgfiltermatrisen till en matris av färgade pixlar. Detta förklaras djupare nedan i rapporten. Brusreducering: Minskar bruset i bilden. Färgrymd: Konvertering från kamerans naturliga färgrymd till en output-färgrymd som exempelvis srgb. Tonreproduktion: Bland annat gamma komprimering. Komprimering: Exempelvis JPEG komprimering. Fördelar med RAW-formatet: 1. Bästa möjliga kvalité: När filen sparas i RAW-format innehåller den all information som sensorn registrerat. 2. Registrera större omfång av ljus: JPEG-formatet registrerar 256 nivåer av ljus gentemot RAW som registrerar upp till 16,384 nivåer. 3. Modifikationsinställningar: Bättre resultat vid modifikation av exempelvis exponering, kontrast och vitbalans gentemot JPEG. Nackdelar med RAW-formatet: 1. Måste bearbetas: Det kan vara en tidskrävande process att bearbeta RAW-filen. Det är onödigt att fotografera i RAW-format om man inte ska modifiera bilden i efterhand. 2. Filstorlek: En RAW-fil är betydligt större än exempelvis JPEG. 3. Saktar ner kameran: På grund av att filen är större än JPEG så fylls kamerans buffert upp snabbare och man måste ibland vänta tills informationen skrivits över till minnet innan man kan ta nya bilder. 5. Demosaicing RAW-data behandlas i olika steg innan den blir en läsbar bild, exempelvis RGB bitmap, TIFF eller JPEG. Det moment som kräver mest processorkraft är demosaicing-algoritmen. De flesta digitalkameror använder en singel bildsensor vilket innebär att de inte registrerar alla färger för varje pixel. Istället registreras färgerna i färgfiltermatris (CFA) för att sedan använda interpoleringsmetoder för att ge varje pixel den rätta färgen. Varje pixel reagerar på ljus genom att generera en elektrisk laddning. Värdet av laddningen blir en digital representation. Den vanligaste typen av färgfiltermatris inom digitalkameror är Bayerfiltret. Bayerfiltret har i varje 2x2-segment av matrisen två gröna, en blå och en grön (RGGB), d.v.s. 25 % röd, 25% blå och 50 % grön. Den blåa mottagaren stöter ifrån grönt och rött ljus och registrerar endast blått [11] (Figur 2) och så vidare. Anledningen till att det finns dubbelt så många gröna är för att ögat är känsligare för grönt ljus. Figur 3 visar ett exempel på hur en bild ser ut i Bayerformat. Demosaicing är processen som rekonstruerar en full färgbild från färgfiltermatrisen, dvs. genom interpolering [6]. En nackdel med att applicera demosaicing direkt i digitalkameran är att man inte får möjligheten att själv välja vilken interpoleringsalgoritm som ska användas. Eftersom de bästa interpoleringsalgoritmerna kräver mycket processorkraft tvingas digitalkamera-tillverkare att kompromissa med val av interpoleringsmetod för att det ska vara möjligt att kunna konvertera till ett läsbart format (TIFF, JPEG mm) på rimlig tid [14].

Figur 2: Illustrerar hur kamerans färgfiltermatris registrerar ljuset. Ljuset delas upp i tre färger: rött, grönt och blått. Figur 3. (A) Bilden så som människan ser den. (B) Samma bild i Bayerformatet (som kameran registrerat bilden). 5.1 Demosaicing-algoritmer Vissa demosaicing-algoritmer ger bättre resultat för naturbilder och andra ger exempelvis bättre resultat för utskrivet material. Det är också en övervägning mellan prestanda och kvalité. Applikationen ger möjlighet att välja mellan 11 olika interpoleringsalgoritmer då dessa finns tillgängliga i LibRaw- biblioteket. Rapporten kommer att ge en kort beskrivning av tre utvalda algoritmer och dessa tre kommer att användas i testerna. De 11 algoritmerna som finns tillgängliga i LibRaw-biblioteket (de tre förstnämnda kommer att beskrivas och testas i rapporten): Bilinjär interpolering, Variable Number of Gradients interpolation (VNG), Adaptive Homogeneity-Directed interpolation (AHD), Patterned Pixel Groping interpolation, DCB interpolation, Modified AHD interpolation

by Paul Lee, AFD interpolation (5-pass), VCD interpolation, Mixed VCD/Modified AHD interpolation, LMMSE interpolation, AMaZE interpolation. 5.1.1 Bilinjär Det blåa värdet för en icke-blå pixel bestäms av genomsnittsvärdet av två eller fyra angränsande blåa pixlar. Samma gäller för grön och röd. Bi linjära algoritmen kan tillämpas på två olika sätt, det ena är att klassa det gröna som en färg och det andra sättet är att klassa det som två olika färger. Denna algoritm är snabb men genererar artefakt vid kanter och vid områden med hög frekvens [7]. För att beräkna det röda värdet på en grön pixel: R = (R1+R2)/2 (Figur 4). För att beräkna det blåa värdet på en grön pixel: B = (B1+B2)/2 (Figur 5). För att beräkna det röda värdet på en blå pixel: R = (R1+R2+R3+R4)/4 (Figur 6). För att få fram det röda värdet där det finns en blå pixel används medelvärdet av de diagonala grannarna (Figur 6). Samma principer tillämpas för att få fram det blåa värdet på en röd pixel (Figur 7). För att beräkna grönt värde på röd eller blå pixel används medelvärdet av horisontella och vertikala grannar med hänsyn till sambandet i den röda kanalen. Se ekvationerna nedan för detta: Ekvation för beräkning av grönt värde där det finns en röd pixel: ( G1 G4)/ 2, if ( G2 G3) / 2, if R1 R4 R2 R3 ( G1 G2 G3 G4) / 4, if R1 R4 R2 R3 R1 R4 R2 R3 Ekvation för beräkning av grönt värde där det finns en blå pixel: ( G1 G4)/ 2, if ( G2 G3) / 2, if B1 B4 B2 B3 ( G1 G2 G3 G4) / 4, if B1 B4 B2 B3 B1 B4 B2 B3 Fig 4: Beräkning av rött värde på grön pixel Fig 5: Beräkning av blått värde på grön pixel

Fig 6: Beräkning av rött värde på blå pixel Fig 7: Beräkning av blått värde på röd pixel 5.1.2 Variable number of gradients (VNG) En grupp gradienter bestäms för närliggande området med 5x5 pixlar där pixeln som bearbetas är i mitten. Varje gradient motsvarar olika riktningar i form t.ex. nord, sydost osv. För varje grupp av gradienter bestäms ett tröskelvärde som används för att välja en undergrupp av gradienter [1]. En undergrupp av gradienter används för att hitta pixelområden som liknar den aktuella pixeln mest. Medelvärdet av pixlarna i denna region används sedan för att bestämma skillnaden mellan färgen på den aktuella pixeln i mitten och den saknade färgen. 5.1.3 Adaptive Homogeneity-Directed (AHD) Algoritmen, skriven av Keigo Hirakawa, beskrivs i dennes rapport [3]. Algoritmen skapades för att lösa problem som finns bland andra demosaicing-algoritmer med färgartefakter p.g.a. felplacering, interpolerings färgartefakt och så kallad aliasing. Vid jämförelse med andra algoritmer har denna metod visat sig ge bäst resultat på bilderna som testats i publikationerna Beginning Digital Image Processing, skriven av Sebastian Montabone samt Perceptual Evaluation of Demosaicing Techniques, skriven av Tomaz Sergej [8, 9]. 6. Implementation 6.1 Verktyg Android Android är ett öppet mobilt operativsystem som främst används i smarttelefoner och pekplattor. 2005 köptes Android av Google som gjorde att operativsystemet baseras på Linux. Androids operativsystemet är mer öppet för utvecklare än många av konkurrenternas. Enhet Telefonen som används i rapporten är Googles Nexus 5. Den har en fyrkärnig Qualcomm Snapdragon 800 processor på 2,26 GHz samt 2 GB i RAM-minne. Anledningen till att Nexus 5 valts är för att denna telefon är en av få som stödjer Android 5.0 i dagsläget, vilket krävs för att kunna fotografera i RAW-format. Denna enhet benämns som mobilen framöver. Java Java är ett objektorienterat programspråk. En av Javas främsta fördelar är att det har bibliotek med många färdiga datastrukturer och ramverk för att visa grafik på ett smidigt sätt. I detta arbete har Java används som programspråk för implementation av applikationen.

Eclipse Eclipse är en integrerad utvecklingsmiljö som är lämpad för utveckling i Java. Eftersom det stödjer Android har detta program valts för att utveckla applikationen i. Opencv OpenCv är ett programvarubibliotek för bildanalys och datorseende. Biblioteket används i detta fall för att konvertera en RGB bytematris till ett Android bitmap objekt [19]. Libraw LibRaw är ett C/C++ bibliotek baserat på RAW-avkodningsprogrammet Dcraw. Anledningen till att det används är att det erbjuder ett API till skillnad från dcraw. Detta bibliotek används för att bearbeta RAWformat. Biblioteket stödjer alla RAW-format som Dcraw stödjer [18]. Android NDK Android NDK (Native Development Kit) är ett verktyg som ger möjligheten att kompilera C/C++-kod för Java-program. Detta verkyg används för att kompilera biblioteket Libraw i applikationen. Jni Java Native Interface är ett ramverk som tillåter Java-kod som körs i Java Virtual Machine att kalla eller bli kallad av bibliotek skrivna i C/C++ och assembler. I denna applikation används det för att kalla på C/C++ funktioner från Libraw. 6.2 Process Till en början implementerades en applikation som kan fotografera i RAW-formatet DNG. Detta gjordes med hjälp av att använda Android kamera API klassen, DngCreator. Klassen har funktioner för att ta in RAW-data som registrerats av kameran och konvertera det till det mer allmänna formatet DNG. I första försöket att integrera ett bibliotek med stöd för RAW till applikationen så testades open source biblioteket FreeImage som har LibRaw inbyggt. Biblioteket har stöd för många ovanliga bildformat, bland annat RAW, JPEG-2000, BMP, SGI, ICO, PSD, TIFF, TGA, GIF, mm. Idén var att använda FreeImage för att bearbeta RAW-filen till ett läsbart format och visa bilden på skärmen som TIFF. Eftersom FreeImage stödjer RAW-avkodning och visning av TIFF-format ansågs detta vara ett lämpligt bibliotek. Problemet som uppstod var att man inte lyckades att integrera det med Android-enheten. För att inte fastna i arbetet söktes andra lösningar. Sedan testades LeadTools SDK for Android vilket är ett bibliotek som innehåller bland annat olika funktioner för bildbehandling. Enligt dokumentationen stödjer det RAW-formatet DNG. När vi testade biblioteket framkom det att DNG-filen visas på skärmen men ingen demosaicing-algoritm har använts vilket betyder att bilden visas i Bayerformatet. Lösningen på dessa problem blev att använda LibRaw, vilket både gick att kompilera med Android NDK till skillnad från FreeImage, samt att LibRaw använder sig av demosaicing-algoritmer, till skillnad från LeadTools. Eftersom Libraw är skrivet i C/C++ har ramverket Java Native Interface (JNI) använts för att kalla på funktionerna som finns tillängliga i Libraw. Man skickar in en byte array från Java-koden. Byte arrayen tas emot som inparameter i C/C++ funktioner där de kan bearbetas med hjälp av Libraw. Libraw-koden bearbetar sedan filen i form av demosaicing-algoritmen m.m och sedan skickas byte arrayen tillbaka till Java-miljön. När byte arrayen är tillbaka i Java-miljön så skickas den i en OpenCv-funktion som omvandlar den till ett Android Bitmap-objekt.

Applikationen bearbetar RAW-filen och visar den i läsbart format på skärmen, alternativt sparar den på SD-kortet som TIFF. Efter att ha fått LibRaw att fungera var det en relativt straight-forward process för att implementera detta då det mest handlade om att använda sig av funktioner i LibRaws API. Applikationens gränssnitt ska ge användaren möjlighet att välja följande inställningar: Välja bildfil från SD-kortet Utdata-format (RGB byte Array eller TIFF) Bit per kanal (8 bit eller 16 bit) Interpoleringsalgoritm Automatisk vitbalans eller kamerans vitbalans-inställning Val av färgrymd 6.2.1 Bit per kanal-problemet Androids bitmap-objekt har endast möjlighet att visa 32-bits bilder, det vill säga, 8 bitar för röd, 8 bitar för grön, 8 bitar för blå och 8 bitar för alfa-kanalen (transparens), totalt 32 bit (8+8+8+8). Detta innebär att om man vill använda byte Array med 16 bit per kanal (totalt 48 bit) som utdata-format kommer det att vara för stort för Androids bitmap-objekt. Detta är en nackdel för en applikation som innehåller funktioner för att redigera bitmap-bilden då man blir tvungen att arbeta i 8-bit per kanal. En lösning som ger några bits per kanal mer är att fördela bitarna från alfa-kanalen till RGB, dvs. 2 till röd, 3 till grön och 2 till blå, vilket skulle ge ett format som har 10 bitar på röd, 11 bitar på grön och 10 bitar på blå. I denna applikation används inte denna approach. Det är däremot möjligt att konvertera till TIFF i 16 bit per kanal. Det är även möjligt att konvertera till 16 bit per kanal till RGB bytematris men det går då inte att visa bilden i en bitmap. 7. Resultat Första steget var att implementera en separat applikation för att kunna fotografera i RAW-format med mobilen vilket är relativt problemfritt då Androids nya kamera-api har inbyggt stöd för detta. Den slutgiltiga avkodningsapplikationen innehåller alla de funktioner som fanns i problemformuleringens specifikationskrav. Det primära syftet med att skapa applikationen var att använda dess grafiska gränssnitt vid testning av körningstid för interpoleringsalgoritmerna och format-konvertering. 7.1 Applikationen

(a) (b) (c) (d) (e) (f) Figur 8. Här visas det grafiska gränssnittet av applikationen. Via option-knappen väljer användaren Browse för att navigera sig fram till en önskad RAW-fil som ska bearbetas (se Fig 8.f.). Det går att läsa in både RAW-filer som fotograferats via applikationen (DNG) men också många andra RAW-format. Efter detta väljer användaren interpoleringsalgoritm samt färgrymd och vitbalans-inställningar.

Sedan väljer användaren mellan dessa alternativ vad som ska göras med applikationen: Konvertera till 8 bit per kanal bitmap för visning på skärmen (sparas ej på SD-kortet). Detta format är till för visning av bilden på skärmen och om applikationen i framtiden skulle erbjuda efterbehandlingsalternativ på bilden så görs det lämpligast på detta format eftersom det är i ren RGB data. Konvertera till TIFF 8 bit per kanal eller 16 bit per kanal. I applikationen finns inte stöd för visning av TIFF-filer på skrämen i dagsläget, vilket innebär att detta alternativ endast kommer spara TIFF-filen till SD-kortet utan att visa något på skärmen. När konverteringen är slutförd visas information om bildens mått samt hur lång tid det tog att bearbeta bilden och vid konvertering till bitmap visas även bilden (Fig 8d). Storleken på TIFF-filen vid konvertering till 16 bit per kanal blev 46,25 MB och 23,12 MB vid konvertering till 8 bit per kanal från den ursprungliga DNG-filen som är på 15,4 MB. Detta är alltså förlustfri konvertering till skillnad från konvertering till JPEGformat. Applikationens storlek är 5,66 MB. Noterbart är att applikationen för tillfället innehåller en bugg vilket leder till att programmet kraschar och man måste starta om när man ska avkoda en bild för andra gången. Detta misstänks bero på ett minnesläckage, det vill säga data från första bilden ligger kvar i minnet och när en annan bild ska laddas in blir minnet fullt. För att publicera applikationen på Google Play bör detta problem åtgärdas. 7.2 Tester Nedan följer en tabell som sammanfattar testerna. Testerna är utförda 10 gånger för vardera demosaicing-algoritm med 10 olika motiv. Tabellerna visar medelvärdet för resultaten i sekunder: Exekveringstid i sekunder för TIFF som utdata-format. Exekveringstiderna skiljer sig inte från 8 bit och 16 bit: AHD VNG Bilinear Motiv 1 12,757 sek 34,641 sek 7,991 sek Motiv 2 11,878 sek 36,293 sek 7,947 sek Motiv 3 12,418 sek 35,345 sek 8,231 sek Motiv 4 12,113 sek 35,960 sek 7,746 sek Motiv 5 11,764 sek 34,278 sek 8,241 sek Det tar ungefär lika lång tid att konvertera till RGB bytematris som till TIFF. Detta beror på att majoriteten av tiden för avkodningen sker i demosaicing-algoritmen och de andra operationerna är då egentligen oväsentliga sett ur tidsperspektiv (exempelvis konvertering från rå RGB till TIFF). Som tidigare nämnts i rapporten kan resultatet av hur interpoleringsalgoritmen påverkar bilden variera beroende på motivet. På alla motiv som använts i detta test har det varit svårt för mitt otränade öga att märka någon skillnad på samma motiv med olika demosaicing-algoritmer (se motiven i bilagor), däremot är skillnaden på hur pixlarna interpolerats tydlig när man zoomar in bilderna då man ser att färgen på varje enskild pixel skiljer sig beroende på vilken demosaicing-algoritm som använts (se fig 9). Hur detta påverkar resultatet av hela bilden har nämnts tidigare i rapporten, där slutsatsen är baserad på andra forskningsdokument.

(a) BILINJÄR (b) AHD

(c) VNG Figur 9: Bilden visar ett utvalt område av samma DNG-fil (in zoomat från Motiv 1 som finnes i bilagor) som konverterats till TIFF-format med tre olika demosaicing-algoritmer. Det är svårt för det otränade ögat att se skillnad på bilderna utan att zooma, men vid zoomning (i detta fall 3200% zoom) är skillnaden tydlig för ögat mellan dessa tre olika demosaicing-algoritmer. 8. Diskussion Kort sammanfattat var syftet med arbetet att utveckla en Android-applikation som kan konvertera RAWbildformat till läsbara bildformat för att mäta exekveringstiden för denna process med olika demosaicingalgoritmer. Detta problem har lösts och applikationen uppfyller de kraven som satts upp, även fast applikationen som helhet har sina brister i form av en bugg som ger minnesläckage vid konvertering av en bild för andra gången samt ett svårförståeligt användargränssnitt. Om man jämför vår applikation med den populäraste applikationen för Android som konverterar RAW-format, dvs. Raw Decoder, så finner man att den stora fördelen i vår applikation är utbudet av demosaicing-algoritm och andra inställningsmöjligheter, medan Raw Decoder är mer användarvänligt och robust. Vår applikation har tillfört funktionaliteter som saknas hos andra applikationer med samma syfte och är idag ensam på Google Play med att erbjuda exempelvis val av demosaicing-algoritm vid dessa operationer. För Raw Decoder tar bearbetningen ca 10 sekunder för bearbetningen av våra motiv, ungefär lika lång tid som med AHD-algoritmen i vår applikation. Vi vet inte vilken demosaicing-algoritm som Raw Decoder använder sig av vilket gör det svårt att jämföra applikationerna ur prestandaperspektiv. För den gemene användaren anser vi att AHD-algoritmen levererar rimliga resultat sett ur exekveringstidsperspektiv och bearbetar fram kvalitativa bilder. Med testresultaten i åtanke anser vi att Android-enheten klarar av 2 av demosaicing-algoritmerna inom rimlig tid, dvs bilinear och AHD, medan VNG-algoritmen tar betydligt längre tid, 3 till 4 gånger längre tid än de två andra.

9. Slutsats Man kan konstatera att vår applikation ger testtider som är överkomliga i sammanhanget för Bilinear och AHD. Vad gäller VNG är det en mycket längre process vilket skulle bli väldigt långdraget vid konvertering av många bilder. Som tidigare nämnts i andra rapporter rekommenderas AHD algoritmen av dessa tre, och resultatet bekräftar detta då den även visar sig vara mycket snabbare än VNG. För att sammanfatta undersökningen. Det har framkommit att Android-enheten fungerar bra vid bearbetning av RAW-filer sett ur perspektivet exekveringstid även fast det skiljer sig mot tiden det tar på en vanlig PC, vilket är 1-2 sekunder gentemot ca 8 sekunder i mobilen med snabbast demosaicingalgoritmen. Det framkommer också att det finns lämpliga bibliotek för bearbetning av RAW-data som fungerar på Android. Man ser även att den förlustfria TIFF filen är ungefär 3 gånger så stor som DNG filen, vilket innebär att man med fördel kan ha filerna lagrade i DNG istället för TIFF för att spara på diskutrymme. Bedömningen är att en applikation för krävande bearbetning samt fotografering i RAWformat skulle fungera bra på Android. Detta öppnar upp nya tjänster eftersom det har visat sig att allt fler tar bilder med sin mobiltelefon istället för att investera i en kompaktkamera. Man ser också att marknaden för systemkameror fortfarande är stark vilket sannolikt innebär att kompaktkameramarknaden kommer att krympa även i fortsättningen. Resultatet i våra tester visar att de tekniska problemen med att kunna editera en RAW-fil kommer att minska inom några år. Det har varit ett väldigt intressant och lärorikt arbete, då RAW-formatet var något helt nytt för mig. Personligen har jag fått en bredare förståelse för processen från att digitalkameran registrerar ljuset till visning av bilden på en skräm. 9. Framtida arbeten Vidare kan man testa de resterande interpoleringsalgoritmerna som Dcraw erbjuder samt utföra samma tester på andra filformat som.raw,.crw etc för att testa exekveringstiden. Ett annat perspektiv att testa ifrån är att använda sig av Peak signal-to-noise ratio för att jämföra interpoleringsalgoritmerna. Dessutom skulle det vara intressant att se hur enheten presterar vid realtidsmodifikation av bilden. Framtida arbeten med själva applikationen skulle kunna vara att implementera flera av Dcraws bearbetningsfunktioner till applikationen. Exempelvis manuell gamma-kurva, exponeringskompensation, konvertering till JPEG, m.m., samt implementera realtidsredigering efter att data satts i ett bitmap objekt. Med sådana funktioner tillsammans med annat tror jag att det skulle kunna bli en konkurrenskraftig applikation på marknaden. Generellt för RAW-filer och Android kommer en spännande framtid till mötes i och med Android nya kamera API som ger utvecklaren full kontroll över kamerans funktioner. Detta innebär att man i princip kan använda sin mobilkamera som en systemkamera. Detta faktum tillsammans med att Android nu erbjuder stöd för 64-bits system för bättre prestanda gör Android till en attraktiv plattform för fotografi.vid intresse av källkod eller APK-fil kontakta Mirhet Julardzija via e-mail: mirhet_@hotmail.com. Applikationen heter RawBuddy och finns tillänglig för gratis nedladdning på Google Play.

10. Referenser [1] Edward Chang, Shiufun Cheung, Davis Y. Pan, (March 22, 1999), Color filter array recovery using a threshold-based variable number of gradients, Proc. SPIE 3650, Sensors, Cameras, and Applications for Digital Photography, 36 [2] Georgi Zapryanov, Iva Nikolova, (2008), Comparative Study of Demosaicing Algorithms for Bayer and Pseudo-Random Bayer Color Filter Arrays, Technical University of Sofia, Computer Systems Department, Sofia, Bulgaria [3] Keigo Hirakawa, (2005), Adaptive homogeneity-directed demosaicing algorithm, Cornell Univ., Ithaca, NY, USA [4] Olivier Losson, Ludovic Macaire, Yanqin Yang, (2010), Comparison of color demosaicing methods. Advances in Imaging and Electron Physics, Elsevier, 162, pp.173-265. [5] R. Ramanath, Wesley E. Snyder, Griff L. Bilbro, (2002), Demosaicing methods for Bayer Color Arrays, Journal of Electronic Imaging 11 (3), 306-315, U.S Army Research Office, Durham [6] Rami Cohen, (2010), Demosaicing Algorithms, Technion Israel Institute of Technology [7] Robert A. Maschal Jr, S.Susan Young, Joe Reynolds, Keith Krapels, Jonathan Fanning, Ted Corbin, (2010), Review of Bayer Pattern Color Filter Array (CFA) Demosaicing with New Quality Assessment Algorithms. U.S. Army Research Laboratory [8] Sebastian Montabone, (2010), Beginning Digital Image Processing: Using Free Tools for Photographers, Apress, ISBN13: 978-1-4302-2841-7 [9] Tomaz Sergej, (2013), Perceptual Evaluation of Demosaicing Techniques, West Pomeranian University of Technology in Szczecin, Poland [10.1] W.E. Snyder, Rajeev Ramanath, Youngjun Yoo, Mark S. Drew, (2005), Color image processing pipeline, IEEE SIGNAL PROCESSING MAGAZINE number 34 [10] Adobe Digital Negative, http://helpx.adobe.com/se/photoshop/digital-negative.html, Visited: 2014-10-29 [11] Bayer filter, http://www.siliconimaging.com/rgb%20bayer.htm, Visited: 2014-10-29 [12] Comparsion of Demosaicing Algorithms http://www.pages.drexel.edu/~par24/rawhistogram/40d_demosaicing/40d_demosaicingartifacts.html, Visited: 2014-10-29 [13] Dcraw, http://www.cybercom.net/~dcoffin/dcraw/, Visited: 2014-10-29 [14] Demosaicing, http://en.wikipedia.org/wiki/demosaicing, Visited: 2014-10-29 [15] Digital Imaging, https://www.library.cornell.edu/preservation/tutorial/intro/intro-04.html, Visited: 2014-10-29 [16] ExifTool, http://www.sno.phy.queensu.ca/~phil/exiftool/#supported, Visited: 2014-10-29

[17] JPEG-format, http://www.infai.org/jpeg, Visited: 2014-10-29 [18] LibRaw, http://www.libraw.org/, Visited: 2014-10-29 [19] OpenCv, www.opencv.org, Visited: 2014-10-29 [20] Photo Mate R2 Android application, http://www.photo-mate.com/, Visited: 2014-10-29 [21] Raw Decoder Android application, https://play.google.com/store/apps/details?id=com.tssystems.rawdecoder, Visited: 2014-10-29 [22] RGB color model, http://en.wikipedia.org/wiki/rgb_color_model, Visited: 2014-10-29 [23] TIFF, revision 6.0 http://www.digitalpreservation.gov/formats/fdd/fdd000022.shtml, Visited: 2014-10-29 [24] Ufraw application, http://ufraw.sourceforge.net/, Visited: 2014-10-29 [25] Understanding Digital Raw Capture, Adobe, http://www.adobe.com/digitalimag/pdfs/understanding_digitalrawcapture.pdf, Visited: 2014-10-29 [26] Android Lollipop features, http://developer.android.com/about/versions/lollipop.html, Visited: 2014-11-04 [27] GIF-format, http://sv.wikipedia.org/wiki/gif, Visited: 2014-11-05

11.Bilagor Nedan följer de fem motiven som använts I testerna där varje motiv visas i ordningen bilinjär, AHD, VNG. Motiv 1: Bilinear Motiv 1: AHD

Motiv 1: VNG

Motiv 2: Bilinear

Motiv 2: AHD

Motiv 2: VNG

Motiv 3: Bilinear Motiv 3: AHD

Motiv 3: VNG

Motiv 4: Bilinear

Motiv 4: AHD

Motiv 4: VNG

Motiv 5: Bilinear

Motiv 5: AHD

Motiv 5: VNG