När vi filmar med mobilen förväntar vi oss att resultatet ska bli lika bra som en professionell video men oftast blir det bara halvdant. Uppsalabolaget Imints algoritmer kan agera virtuellt stativ så att skakningarna försvinner men också förbättra videon på andra sätt, som att hålla kvar det gungande barnet i mitten av bilden trots att vi själva inte riktigt hänger med. Bland kunderna finns jättar som Huawei och Samsung.
När vi började fundera på det här runt 2013 trodde vi lite naivt att problemet redan var löst, att det var en mogen marknad. Och till viss del var det så vad gäller stillbilder men många av de stora mobiltillverkarna trodde att video bara var en rad av stillbilder. Problemet är väsentligt mycket svårare än så, säger Andreas Lifvendahl som är vd för Imint, eller Iimint mage Intelligence som det fullständiga namnet lyder. På mobilmarknaden är företaget mer känt som Vidhance, vilket egentligen är produktnamnet.
I en reklamvideo går en person runt i olika Uppsalamiljöer med två mobiler som filmar samma sak. Den med företagets algoritmer är såklart mycket mindre skakig än den andra trots att det handlar om toppmodeller från Apple och Samsung.
– År 2014 hade vi fått lite trevare från företag som letade morgondagens teknik till mobilbranschen och när vi själva provtryckte fick vi så pass mycket napp att vi beslutade oss för att satsa. Vi kom in med rätt lösning i precis rätt tid.
Värt att komma ihåg är att Imint grundades redan 2007 som en avknoppning från Uppsala Universitet. Från början var kunderna militären och industrin.
Bland annat tog företaget fram algoritmer för att stabilisera videoströmmar från drönare. Hårdvaran utgjordes ofta av fältmässiga datorer som varken hade särskilt kraftfulla processorer eller någon avancerad grafikprocessor så algoritmerna måste vara effektiva. Mycket av kärntekniken bygger på optisk flödesanalys. Där finns också några av de tidiga patenten.
Att tidpunkten för att satsa på mobilområdet blev perfekt handlar inte bara om tillverkarna ville ha bättre videofunktioner, beräkningskraften i de dyrare smartmobilerna var helt enkelt tillräckligt hög för att kunna hantera Imints algoritmer utan att effektförbrukningen ökar mer än några procent.
– En del i vår lösning är att vi kan göra videostabilisering utan att det blir fördröjningar för användaren samtidigt som batteriet mår bra, säger Andreas Lifvendahl.
Bildströmmen delas upp i två flöden, ett till förhandsvisningen som användaren ser och ett som lagras i mobilen. Bägge stabiliseras, men den ström som går till encodern för att sedan lagras på minneskortet blir aningen bättre eftersom det inte gör något om den fördröjs några rutor. Därmed kan algoritmerna titta framåt och få bättre möjlighet att prediktera vad som kommer att ske.
Algoritmerna upptar normalt några megabyte och körs på smartmobilens olika processorer, i första hand applikationsprocessorns Arm-kärnor men också på grafikprocessorn. Tillgång till mer specialiserade bildprocessorer lyfter dock prestanda.
– Vad vi använder beror på hur djupt integrerat i plattformen våra algoritmer är.
Denna artikel har tidigare publicerats i magasinet Elektroniktidningen. För dig som jobbar i den svenska elektronikbranschen är Elektroniktidningen gratis att prenumerera på – våra annonsörer betalar kostnaden. Här ansöker du om prenumeration (länk). |
För att allt ska fungera på bästa sätt behöver mobilen också ha gyron. Även för dessa skiljer kvaliteten mellan en toppmodell och de lite enklare.
– Kompromissar man med sensorerna blir lösningen bra men inte topp.
En mobiltelefon som rör sig har sex frihetsgrader, tre translationer och tre rotationer. Det ger ett ekvationssystem med sex obekanta och särskilt om rörelsen är liten är det svårt att veta om det är en rotation eller translation. Genom att nyttja sensordata förenklas uppgiften och därmed även beräkningsbehovet och i slutända även energiförbrukningen.
– Hade vi bara kört med optisk analys, då skulle dessutom prestanda gått ned vid dålig belysning, säger Andreas Lifvendahl.
För utvecklingsarbetet används idag framförallt Googles smartmobil Nexus 6P som har en bra kamera men som också ger tillgång till drivrutiner och olika lager i mjukvaran.
Resultatet har blivit Vidhance, en mjukvaruplattform med bildförbättringsfunktioner som är anpassade för Androidmobiler av det lite vassare slaget.
– Får vi hit en ny telefon och det inte är något speciellt med den kan vi redan dagen därpå ha en första fungerande implementation.
Sen är det upp till kunden att bestämma hur mycket implementationen ska trimmas vad gäller effektförbrukning men också för kalibrering av optiken och sensorerna.
– Det finns ingen bortre gräns för hur mycket man kan göra men även mer komplexa fall tar inte många veckor innan vi städat igenom listan.
Videostabilisering är bara början för Imint som vuxit från 7–8 personer för tre år sedan till nästan 30 idag.
– Mycket av det vi jobbar på nu handlar om vad som blir nästa steg så att vi kan behålla ledningen, säger Andreas Lifvendahl.
Ett exempel är att försöka förstå vad användaren gör eller försöker göra, exempelvis att skilja på en skakning och en medveten rörelse som en panorering.
I dagarna lanserades två nya funktioner i Vidhance för den typen av uppgifter. Det handlar om en kombinerad autozoom med stabilisering, som exempelvis kan användas för att hålla det gungande barnet mitt i bilden trots att användaren inte riktigt hänger med, och zooma in på objektet på ett mjukt och automatiskt sätt, så att det intressanta framträder tydligare.
Här måste algoritmerna kunna följa ett eller flera objekt och hålla kvar dem på samma plats i bilden och anpassa inzoomingen efter bland annat objektets storlek. Funktionen kan vara automatisk eller kräva någon form av inställning av användaren, beslutet ligger hos mobiltelefontillverkaren.
En annan ny funktion är ”dynamic motion blur reduction” som reducerar en form av oskärpa som uppstår när man filmar i dåligt ljus med långa slutartider. Fenomenet med rörelseoskärpa maskeras normalt av skakigheten i själva videon. När Imints stabiliseringsfunktion är påslagen syns den bättre, och stör upplevelsen.
– Här har vi en fiffig lösning för att reducera det men jag kan inte berätta vad vi gör.