Färgbild pipeline

En bildpipeline eller videopipeline är den uppsättning komponenter som vanligtvis används mellan en bildkälla (som en kamera, en skanner eller renderingsmotorn i ett datorspel) och en bildrenderare (som en tv-apparat, en datorskärm , en datorskrivare eller bioduk), eller för att utföra någon mellanliggande digital bildbehandling bestående av två eller flera separata bearbetningsblock. En bild-/videopipeline kan implementeras som datorprogramvara , i en digital signalprocessor , på en FPGA eller som ASIC med fast funktion . Dessutom analoga kretsar användas för att utföra många av samma funktioner.

Typiska komponenter inkluderar bildsensorkorrigeringar (inklusive debayering eller applicering av ett Bayer-filter ), brusreducering , bildskalning , gammakorrigering , bildförbättring, färgrymdskonvertering (mellan format som RGB , YUV eller YCbCr ), chroma subsampling , framerate -konvertering, bildkomprimering / videokomprimering (som JPEG ) och datordatalagring / dataöverföring .

Typiska mål för en bildbehandlingspipeline kan vara perceptuellt tilltalande slutresultat, kolorimetrisk precision, en hög grad av flexibilitet, låg kostnad/lågt CPU-utnyttjande/lång batteritid eller minskning av bandbredd / filstorlek .

Vissa funktioner kan vara algoritmiskt linjära. Matematiskt kan dessa element kopplas ihop i valfri ordning utan att ändra slutresultatet. Eftersom digitala datorer använder en ändlig approximation till numerisk beräkning är detta i praktiken inte sant. Andra element kan vara icke-linjära eller tidsvarierande. För båda fallen finns det ofta en eller några sekvenser av komponenter som är vettiga för optimal precision och minimal hårdvarukostnad/CPU-belastning.

Denna figur visar en förenklad, typisk användning av två avbildningsrörledningar. Den övre halvan visar komponenter som kan finnas i en digitalkamera. Den nedre halvan visar komponenter som kan användas i ett bildvisningsprogram på en dator för att visa bilderna som produceras av kameran. (Observera att operationer som efterliknar fysiskt, linjärt beteende, såsom bildskalning, helst utförs på vänster sida och arbetar på linjära RGB-signaler. Operationer som ska verka "perceptuellt enhetliga", såsom bildkomprimering med förlust, på andra sidan, bör utföras på höger sida, arbeta på "gamma-korrigerade" r'g'b eller Y'CbCr-signaler.)

Se även