Avancerad bildbehandling med några mW

Den som lyckas trycka in den mest avancerade högupplösande videokameran i mobiltelefonen kan lägga på en tusenlapp på priset. Så det är bara att se till att fixa det som egentligen inte borde vara möjligt och dessutom att fixa det i realtid med en närmast obefintlig energibudget.

Bättre video
I de närmaste generationerna av smarta mobiltelefoner handlar väldigt mycket om bildhantering. Högupplösande 4K-video och bildstabilisering är snart en självklarhet. Parallella kameror för 3D-fotografering, utökat kontrastområde och utökat skärpedjup blir allt vanligare. Avancerad bildbehandling för t ex ansikts- och motivigenkänning görs i realtid.

Allt detta görs utifrån pyttesmå bildsensorer med dålig ljuskänslighet och allmänt ganska usla prestanda, tillsammans med objektiv som ingen fotograf med självaktning ens skulle fnysa åt.

Kompensera
De minimala sensorerna och de dåliga objektiven går det inte att göra särskilt mycket åt. Utrymmet i en mobiltelefon är extremt litet och det begränsar brännvidden och därmed sensorstorleken. Sensorer med hög upplösning får ytterst liten pixelstorlek och därmed dålig ljusstyrka. De små objektiven har också dålig ljusstyrka och dessutom i stort sett alla former av optisk distorsion som man kan tänka sig. Resultatet borde bli en katastrof.

Men det som blir fel optiskt kan kompenseras med elektronik. Den signal som kommer från sensorn kan analyseras och modifieras så att slutresultatet blir förvånansvärt bra. ”Allt” som behövs är en mycket snabb och mycket kraftfull dator, en kraftfull DSP eller en applikationsspecifik hårdvara.

Efterbehandling
Vägen från bildsensor till färdig bild är idag ganska lång och har i princip tre huvudsteg. Det första steget konverterar bilden till RGB och kompenserar dessutom för grundläggande fel i sensormatrisen och en del linsproblem.

Därefter kommer det första verkliga efterbehandlingssteget. 2D- och 3D-brus plockas bort, färgtemperaturen justeras, kontrast och ljus kompenseras och skakningar reduceras. Efter det här steget är bilden eller videon i princip ”klar”.

Men då är det dags för de verkliga finesserna. Ansiktsigenkänning, rörelseigenkänning, detektering av gester, objektdetektering och mycket annat används både i mobiltelefoner och i andra kameratillämpningar. Samma grundteknik används i fordonskameror, övervakningskameror och visionsbaserad automation.

Energi och flexibilitet
Det jobbiga med alla de här stegen är att de måste utföras i realtid. Högre upplösning och komplexitet innebär större prestandakrav, större datorer och mer energiförbrukning. I mera traditionella videobehandlingstillämpningar används många parallella processorer och effekt i kilowattklassen.
Det här är naturligtvis otänkbart i en mobiltelefon, så det gäller att hitta andra vägar. Den hittills mest energisnåla är helt enkelt att strunta i programmerbarheten och göra allt direkt i hårdvara. Det är också den i särklass minst flexibla lösningen.

I spannet mellan ren hårdvara och traditionell mikroprocessor finns signalprocessorer (DSP), grafikprocessorer (GPU) och andra specialprocessorer. Genom att optimera de olika lösningarna på olika sätt har man kunnat få ner energiförbrukningen, utan att offra alltför mycket av flexibiliteten och användningen av generella utvecklingshjälpmedel.

Optimerad DSP
För att hålla ner energiförbrukningen gäller det att hålla ner antalet instruktioner som exekveras. Mycket breda data- och instruktionsbussar, effektiv pipeline och effektiva vektorprocessorer är också sätt att parallellisera och hålla ner arbetsfrekvensen.

Det här är inget nytt för Cadenceföretaget Tensilica. De har i många år arbetat med verktyg för konfigurerbara processorarkitekturer. Med de mest generella verktygen är det möjligt för ett företag att generera en kombination av processor och utvecklingshjälpmedel som kan vara nästan hur egendomlig som helst.

Men att starta från ”scratch” kräver en hel del kompetens och därför har Tensilica tagit fram grundarkitekturer olika typer av signalbehandling. Företaget har till exempel haft stora framgångar med sina signalprocessorer för audio och video.

Med den senaste DSP-familjen, Vision P5, (som släpptes idag) säger man sig ha tagit ett jättesprång när det gäller energisnål videobearbetning. Processorkärnan är upp till 13 gånger snabbare än den tidigare generationen och har ändå bara en femtedel av energiförbrukningen. Enligt Tensilica har man lyckats effektivisera signalprocessorn ner till samma energinivå som en optimerad hårdvarulösning.

Det handlar förstås inte om någon vanlig processorkärna. På vanligt DSP-manér är data- och instruktionsminne separerat och de olika internbussarna är mycket breda. De tre instruktionsbussarna är 128 bit vardera och de fyra dataminnesbankarna är 512 bit vardera. Minnessystemet har specialfunktioner för att samla data från olika ställen i parallella ord så att så mycket som möjligt skall kunna göras i en enda instruktion.

Att programmera så här komplexa signalprocessorerer är inte trivialt, men C-baserade standarder som OpenVX och OpenCV gör arbetet enklare. Dessutom finns en mängd färdiga makron för de vanliga bild- och videofunktionerna. Vision P5 har också fullt stöd för flyttal, vilket förenklar programmeringen.

Också för serverdatorer
Fram tills för några år sedan gjordes den grundläggande arkitekturutvecklingen i första hand för stationära datorer och serverdatorer. Där fanns pengarna och där fanns prestandakraven.

Det här håller på att ändras dramatiskt. Mycket mer grundläggande utveckling görs idag för mobiltelefoner och liknande högvolymprodukter. De närmast vansinniga kraven på låg energiförbrukning och höga prestanda gör att man inte längre bara kan anpassa det som tidigare gjorts för stationära datorer. I stället börjar man från grunden.

Det som utvecklats för mobiltelefonindustrin kan sedan lyftas upp till stationära datorer och serverdatorer. Också där är det till slut energiförbrukningen som begränsar. Och i mångt och mycket är problemen desamma, med video och bild som största prestanda-”ätarna”.

Att integrera ett antal P5-kärnor i serverdatorer låter därför inte som någon dålig idé. Att konvertera program från GPU-baserade system till P5-baserade system skulle kunna ge upp till 10 gånger högre prestanda vid samma energiförbrukning, mindre utrymmeskrav och ett betydligt lägre pris. Och det är ju alltid intressant.

One Response to “Avancerad bildbehandling med några mW”

  1. Och vad säger Intel? Det låter ånyo som ett stort hot mot deras starka intäktssida med processorer till bärbara och stationära datorer.
    Kanske Altera-köpet var det de såg som lösning på ett kommande problem för deras del…