SE0900522A1 - Bildkodare och metod för kodning av bilder - Google Patents

Bildkodare och metod för kodning av bilder

Info

Publication number
SE0900522A1
SE0900522A1 SE0900522A SE0900522A SE0900522A1 SE 0900522 A1 SE0900522 A1 SE 0900522A1 SE 0900522 A SE0900522 A SE 0900522A SE 0900522 A SE0900522 A SE 0900522A SE 0900522 A1 SE0900522 A1 SE 0900522A1
Authority
SE
Sweden
Prior art keywords
image
variable length
marker
digital representation
encoded
Prior art date
Application number
SE0900522A
Other languages
English (en)
Inventor
Sami Niemi
Johan Sten
Original Assignee
Scalado Ab
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Scalado Ab filed Critical Scalado Ab
Priority to SE0900522A priority Critical patent/SE0900522A1/sv
Priority to PCT/SE2010/050407 priority patent/WO2010120239A1/en
Priority to US13/138,799 priority patent/US9066111B2/en
Publication of SE0900522A1 publication Critical patent/SE0900522A1/sv

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/93Run-length coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • H04N19/467Embedding additional information in the video signal during the compression process characterised by the embedded information being invisible, e.g. watermarking
    • H04N7/26106
    • H04N7/26372
    • H04N7/3022

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

Foreliggande uppfinning hanfbr sig till en anordning och en metod for kodning av en digital framstallning av en bild till en enskild kodad bild. Anordningen innefattar: en bildgenerator (100) som ar anordnad for generering av efterfbljande bilddatasekvenser vilka representerar delar (11, 12, 13,18, 19) hos den digital framstallning av bilden (1), en kodare (104) som ar anordnad for kodning av varje bilddatasekvens som representerar en del (11, 12, 13, 18,19) hos den digital framstallning av bilden (1) till en bild (21, 22, 23, 28, 29) som ar kodad med koder av variabel langd, en infogare (106a) for infogning av en aterstartsmarkor som ar anordnad for infogning av en aterstartsmarkbr (42) som avslutande data hos en bild (21, 22, 23, 28) som ar kodad med koder av variabel langd, en infogare (106b) for infogning av en slut-pa-bilden-markor som ar anordnad for infogning av en slut-pa-bilden-markbr (40) som avslutande data hos en bild (29) som ar kodad med koder av variabel langd vilken bild representerar en sista del hos den enskilda kodade bilden (99), samt en hoplankningsenhet (112) som ar anordnad for hoplankning av namnda bilder (21, 22, 23, 28, 29), som ar kodade med koder av variabel langd, med varandra genom inrattning av dem som efterfbljande delar hos en datasekvens som representerar den enskilda kodade bilden (99).For publikation: figur 1

Description

15 20 25 30 2 Enligt en första aspekt av uppfinningen åstadkommes nämnda syfte speciellt medelst en metod för kodning av en digital framställning av en bild till en enskild kodad bild, innefattande: generering av åtminstone två efterföljande bilddatasekvenser som var och en representerar en del av den digital framställning av bilden, inmatning till en kodare (104) av var och en av nämnda efterföljande bilddatasekvenser som om varje bilddatasekvens är en individuell digital framställning av en bild, kodning av varje efterföljande bilddatasekvens till en bild som är kodad med koder av variabel längd, och därigenom generering av åtminstone två bilder som är kodade med koder av variabel längd varvid varje bild representerar en del hos den enskilda kodade bilden, infogning av en återstartsmarkör som avslutande data hos åtminstone en av nämnda bilder som är kodade med koder av variabel längd, infogning av en slut-på-bilden-markör som avslutande data hos en av nämnda bilder som är kodade med koder av variabel längd vilken bild representerar en sista del hos den enskilda kodade bilden, samt hoplänkning av nämnda bilder som är kodade med koder av variabel längd med varandra genom inrättning av dem som efterföljande delar hos en enskild kodad datasekvens som representerar den enskilda kodade bilden.
Vidare, enligt en andra aspekt av uppfinningen åstadkommes nämnda syfte medelst en anordning för kodning av en digital framställning av en bild till en enskild kodad bild, innefattande: en bildgenerator som är anordnad för generering av efterföljande bilddatasekvenser vilka representerar delar hos den digital framställning av bilden, en kodare som är anordnad för kodning av varje bilddatasekvens som representerar en del hos den digital framställning av bilden till en bild som är kodad med koder av variabel längd, en infogare för infogning av en återstartsmarkör som är anordnad för infogning av en återstartsmarkör som avslutande data hos en bild som är kodad med koder av variabel längd, en infogare för infogning av en slut-på~bilden-markör som är anordnad för infogning av en slut-på-bilden-markör som avslutande data hos en bild som är kodad med koder av variabel längd vilken bild ¿ representerar en sista del hos den enskilda kodade bilden, samt en hoplänkningsenhet som är anordnad för hoplänkning av nämnda bilder, som är kodade med koder av variabel längd, med varandra genom inrättning av 10 15 20 25 30 3 dem som efterföljande delar hos en datasekvens som representerar den enskilda kodade bilden.
En fördel med att behandla delar av en bild såsom beskrivs ovan eller att anordna en anordning för behandling av delar av bilden är att behandlingen kan utföras användandes mindre avancerad utrustning eller mindre avancerade kretsar. Vidare kan mängden minne, t.ex. buffertminne och andra temporära minnen, som behövs för behandlingen minskas.
Ytterligare vidare kan behandlingskapaciteten hos processorn eller kretsen också minskas. Dessutom tillåter särdraget att anordna delarna hos bilden som individuella representationen av en bild att en enkel kodare som är anordnad för kodning av hela bilder kan användas.
Enligt en utföringsform av uppfinningen innefattar steget kodning av varje efterföljande bilddatasekvens som representerar en del av den digitala framställningen av bilden till en bild som är kodad med koder av variabel längd vidare infogning av en slut-på-bilden-markör som avslutande data hos var och en av de kodade bilddatasekvenserna, varvid steget infogning av en återstartsmarkör som avslutande data hos de kodade bilddatasekvenserna utförs genom utbyte av nämnda slut-på-bilden-markör till nämnda återstartsmarkör. Fördelen med detta är att det är ett enkelt sätt att justera utdata från en kodare till ett lämpligt format och att det inte kräver mycket kapacitet från systemet.
Enligt en annan utföringsform innefattar metoden steget generering av ett enskilt filhuvud som representerar nämnda förenade bilder som är kodade med koder av variabel längd vilka bilder utgör den enskilda kodade bilden. På likande sätt kan anordningen innefatta en bildhuvudsgenerator för generering av ett enskilt filhuvud som representerar nämnda förenade bilder som är kodade med koder av variabel längd vilka bilder utgör den enskilda kodade bilden.
Enligt ytterligare en utföringsform innefattar handlingen generering av ett enskilt filhuvud bestämning av en position hos åtminstone en återstartsmarkör hos den enskilda kodade bilden, och infogning av en indikator för indikering av den bestämda positionen hos nämnda åtminstone en återstartsmarkör till en datastruktur hos filhuvudet. Följaktligen innefattar 10 15 20 25 30 4 det enskilda filhuvudet åtminstone en parameter som indikerar positionen för återstartsmarkörerna i den enskilda kodade bilden.
I en ytterligare utföringsform utförs steget infogning av en återstartsmarkör som avslutande data hos åtminstone en av nämnda bilder som är kodade med koder av variabel längd genom infogning av återstartsmarkören som sista data hos den kodade bilden som är kodad med koder av variabel längd.
Alternativt kan steget infogning av en återstartsmarkör som avslutande data hos åtminstone en av nämnda bilder som är kodade med koder av variabel längd utförs genom infogning av återstartsmarkören hos den kodade bilden som är kodad med koder av variabel längd som första data hos en efterföljande bild som är kodad med koder av variabel längd.
Enligt en annan utföringsform innefattar anordningen en skrivare som är anordnad för skrivning av bilderna, som är kodade mede koder av variabel längd, till ett minne och metoden innefattar steget samtidig skrivning av data hos en första bild som är kodad med koder variabel längd till ett minne och kodning av en bilddatasekvens som representerar en andra del av den digitala framställningen av bilden till en andra bild som är kodad med koder av variabel längd. En utföringsform innefattar samtidig generering av nämnda bilddatasekvens som representerar en andra del av den digitala framställningen av bilden och kodning av nämnda bilddatasekvens som representerar en första del av den digitala framställningen av bilden till en första bild som är kodad med koder av variabel längd.
Enligt en annan utföringsform har den digitala framställningen av bilden en specifik bildbredd Wi, varvid varje del av bilden har en specifik delbredd Wp som väsentligen motsvarar nämnda bildbredd Wi.
Enligt ännu en annan utföringsform har varje bild som är kodad med koder av variabel längd en specifik bredd Wvjc, varvid nämnda specifika bredd Wvjc motsvarar en bredd Wefhos den enskilda kodade bilden (99).
Enligt 'ännu en utföringsform är varje bild som är kodad med koder av variabel läng-d en bild av JPEG-format.
Enligt ännu en utföringsform innefattar handlingen infogning av en återstartsmarkör infogning av en 0xFFDn kodsekvens, varvid n anger de fyra 10 15 20 25 30 5 minst signifikanta bitarna hos kodsekvensen och representerar ett heltal mellan 0 och 7. Återstartsmarkören infogas medelst en infogare för infogning av en återstartsmarkör.
Enligt ännu en annan utföringsform innefattar handlingen infogning av en slut-på-bilden-markör infogning av en 0xFFD9 kodsekvens.
Enligt ännu en annan utföringsform utförs metoden i en mobiltelefon alternativt i en digital kamera.
Kort beskrivninq av ritninqarna Utföringsformer av föreliggande uppfinning kommer nu att beskrivas i exemplifierande syfte under hänvisning till de medföljande ritningarna, vilka visar utföringsformer av uppfinningen.
Figur 1 åskådliggör schematisk en utföringsform av en anordning för kodning av en digital bild.
Figur 2 åskådliggör en bild som kodas av anordningen som visas i figur1. g Figur 3 åskådliggör schematiskt en kodad bild.
Figur 4 är ett flödesschema över en metod enligt en första utföringsform av uppfinningen.
Figur 5 åskådliggör schematiskt en första utföringsform av en anordning för kodning av en digital bild.
Figur 6 åskådliggör en bild som kodas av en anordning som visas i figur5.
Figur 7 är ett flödesschema över en metod enligt en andra utföringsform av uppfinningen. i Figur 8 åskådliggör ett tidsdiagram som visar att skrivningen till ett minne av en första del av den kodade bilden kan utföras samtidigt som kodningen av en andra del av originalbilden.
Figur 9 åskådliggör ett tidsdiagram som visar tidsförhållandet mellan behandlingar av delar av en bild enligt en utföringsform. 10 15 20 25 30 6 Detalierad beskrivninq av föredraqna utförinqsformer I följande beskrivning kommer kodning av bilder att beskrivas med referens till JPEG-kodning men även andra kodningsmetoder som använder andra omvandlingsalgoritmer, så som JPEG XR eller HD photo, avses. Det bör noteras att skyddsomfånget för föreliggande uppfinning på inget sätt är begränsat till JPEG-kodning.
När en digital bild kodas genom JPEG-kodning så representeras med företrädesvis den digitala bilden av ett YUV-format, varvid varje bildpunkt hos bilden har tre komponenter: luminans, Y, och två kromatiska komponenter U och V. De två kromatiska komponenterna U och V representerar färgegenskaper. Det mänskliga ögat har svårigheter att uppfatta de finaste detaljerna i de kromatiska komponenterna och sålunda kan dessa komponenter representeras med en lägre upplösning än luminanskomponenten. Ett 16x16 bildpunktsblock hos en bild, vilket är ett exempel av ett bildblock så som det definieras här, kan representeras av fyra Y-block med 8x8 bildpunkter i varje, ett U-block med 8x8 bildpunkter och ett V-block med 8x8 bildpunkter. Detta motsvarar en 50% komprimering av datamängden jämfört med en RGB-representation av den digitala bilden. Fyra U-block och fyra V-block kan emellertid också användas, varvid ingen komprimering jämfört med RGB-representationen erhålles.
Alternativt kan den digital bilden representeras i ett annat sorts format, till exempel i RGB- eller CMYK-format. I händelse av detta konverteras den digitala bilden företrädesvis till YUV-format innan den hanteras av den uppfinningsenliga anordningen.
Fler komprimerade bildformat är kodade med koder av variabel längd, och ofta delar av bilden beroende på andra delar av bilden vilket gör det svårt att hantera och svårt att behandla bilderna. Problemen kan innefatta bitlinjeringsproblem, eftersom bilden är en bitström, och ett datorminne lagrar block av bytes istället för bitar. Beroendena kan till exempel göra det svårt att förändra eller förbinda bilder utan att behöva modifiera mer än den förändrade arean hos bilden, eller utan att behöva modifiera en eller den andra eller bägge av de förbundna bilderna. 10 15 20 25 30 7 Beroendet mellan delarna hos bilden gör det omöjligt att komma över överföringsfel av bilden eftersom ett fel tidigt i en bild kommer att fortplanta sig genom hela den återstående bilden. I JPEG-bilder beräknas varje 8x8 blocks medelvärde (DC) baserat på en skillnad till det föregående 8x8 blocket, sålunda kommer en felaktig DC-skillnad att återge resten av JPEG- bilden som förvrängd. l JPEG-standarden finns det en mekanism innefattande återstartsmarkörer som tillåter kodaren att ange ett återstartsintervall där beroendet av föregående DC-värde är återställt, vilket sålunda tillåter resten av bilden att avkodas på korrekt sätt när nästa återstartsmarkör är påträffad.
För att möjliggöra påträffandet av nästa återstartsmarkör finns en 0xFF byte reserverad för delgivande av ”markörer” i JPEG-standarden; med innebörden att varje 0xFF byte i JPEG-strömmen som inte följs av 0x00 är en markör av något slag. Att påträffa nästa återstartsmarkör innefattar sålunda bara att påträffa nästa 0xFF som inte är en OxFF00, och börja avkodning från det läget. Återstartsmarkörerna är också anordnade för återlinjering av bitströmmen innan 0xFF markören genom infogning av bitar till dess att den sista byten är fullt linjerad. Detta är nödvändigt eftersom sökningen efter 0xFF utförs i bytes istället för i bitar, vilket möjliggör att en utföringsform av föreliggande uppfinning kan utnyttja den egenskapen.
En annan användbar egenskap som utnyttjas i en utföringsform hos uppfinningen är att slutet-på-biIden-markören i JPEG-standarden uppför sig på exakt samma sätt som återstartsmarkörerna, även med avseende på linjering av den sista byten.
En första utföringsform av en anordning för kodning av en digital framställning av en bild till en kodad bild i enlighet med uppfinningen visas i figur 1. Anordningen innefattar en bildgenerator 100, en kodare 104, en infogare 106a, 106b för markörer, en bildhuvudsgenerator 107, en skrivare 108, en hoplänkningsenhet 112A_och ett minne 110. Anordningen kan också, så som visas i denna utföringsforminnefatta ett filter 102. Nämnda filter 102 är valfritt, se nedan. i i i 1 10 15 20 25 30 8 Bildgeneratorn 100 är anordnad för generering av den digitala framställningen av en bild. Den digitala framställningen av bilden kan genereras på ett flertal olika sätt. Till exempel kan den digitala framställningen av bilden vara genererad av en digital kamera t.ex. i en mobiltelefon.
Alternativt kan den digitala framställningen av bilden vara en genererad matematisk framställning av ett 2D- eller 3D-objekt. Den digitala framställningen av bilden kan till och med vara en förening av en bild som har genererats av en digital kamera och en genererad matematisk framställning av ett 2D- eller 3D-objekt. Enligt en utföringsform av föreliggande uppfinning kan den digitala framställningen av bilden innefatta data från flera bilder som har genererats av en digital kamera eller genererade matematiska framställningar av ett 2D- eller 3D-objekt. Ett exempel av en sådan framställning av en bild är panoramabild som innefattar flera bilder. En sådan panoramabild innefattar ett flertal bilder som är lämpligt behandlade för att passa ihop, och som är förenade ihop till en framställning.
Källan, t.ex. den digitala kameran, en dator eller en mobiltelefon, som genererar den digitala framställningen av bilden är anordnad för framställning av en bild som innefattar bildpunkter. Den digitala framställningen av bilden har en specifik bredd Wi och höjd Hi. Till exempel kan den digitala bilden innefatta 960x1280 (VVrxH;) bildpunkter. Varje linje av bildpunkter hos den digitala framställningen av bilden innefattar sålunda 960 bildpunkter och den digitala framställningen av bilden innefattar 1280 sådana linjer av bildpunkter.
Bildgeneratorn 100 är vidare anordnad för generering av den digitala framställningen av bilden del för del, varvid varje del är en del 11, 12, 13, 18, 19 av den digitala framställnigen av bilden och varvid varje del 11, 12, 13, 18, 19 representeras av en bilddatasekvens. Utdata från bildgeneratorn 100 är sålunda efterföljande bilddatasekvenser som representerar delar 11, 12, 13, 18, 19 av den digitala framställningen av bilden. Ett exempel på en digital framställning av en bild 1 som har genererats av bildgeneratorn 100 åskådliggörs i figur 2. Såsom visas 'kan delarna 11, 12, 13, 18, 19 som matas , ut från bildgeneratorn100 ha en bredd Wp som väsentligen motsvarar bredden W; hos bilden 1. Bildgeneratorn 100 kan vidare anordnas för utmatning av delar 11, 12, 13, 18, 19 av den digitala framställningen av 10 15 20 25 30 9 bilden 1 som alla har väsentligen samma höjd Hp. Varje del 11, 12, 13, 18, 19 av den digitala framställningen av bilden 1 har sålunda väsentligen samma antal linjer av bildpunkter. Ett undantag är den sista delen 19 av den digitala framställningen av bilden 1 som kan innefatta ett mindre antal linjer av bildpunkter än resten av delarna 11, 12, 13, 18 beroende på antalet linjer av bildpunkter hos den digitala framställningen av bilden 1. Till exempel om antalet linjer i bilden är 1200 så kan bilden genereras i nio delar av bilden 1 som var och en har 128 linjer av bildpunkter och en tionde och sista del 19 av bilden 1 som har enbart 48 linjer av bildpunkter. Enligt ett annat exempel kan den digitala framställnigen av bilden 1 som nämnts ovan vilken innefattar 960x1280 (WixH;) bildpunkter genereras i delar 11, 12, 13, 18, 19 som har en bredd Wp av 960 bildpunkter och en höjd Hp av 128 bildpunkter. Den digitala framställningen av bilden är sålunda i detta fall genererad i tio delar 11, 12, 13, 18, 19 som alla har samma antal linjer av bildpunkter.
Kodaren 104 är anordnad för mottagning av var och en av nämnda datasekvenser som representerar delar 11, 12, 13, 18, 19 av den digitala framställningen av bilden 1 som är genererade av bildgeneratorn 100 som individuella bilder. Var och en av nämnda datasekvenser som representerar delar 11, 12, 13, 18, 19 av den digitala framställningen av bilden matas sålunda in till kodaren 104 som om de är individuella bilder.
Kodaren 104 är vidare anordnad för kodning av varje bilddatasekvens som representerar en del 11, 12, 13, 18, 19 av den digitala framställningen av bilden 1 till en bild som är kodad med koder av variabel längd (VLC-bild), varvid varje VLC-bild representerar en del av den resulterande enskilda kodade bilden 99. Kodaren 104 kan vara en hårdvarukodare.
Kodaren 104 är sålunda anordnad för kodning av var och en av de från bildgeneratorn utmatade bilddatasekvenserna som representerar delar 11, 12, 13, 18, 19 av den digitala framställningen av bilden 1 till en självständig VLC-bild. l detta fall refererar självständig till en VLC-bild som innehåller all informationfsom behövs för att använda VLC-bilden som en individuell bild.
Ett exempel på en självständig bild är en komplett JPEG-bild med ett huvud och en fot. En annan sådan självständig bild kan vara en kombination av information eller kunskap som behövs för avkodning av data hos bilden, så 10 15 20 25 30 10 som kunskap om kvantiseringen och Huffmantabellerna för bilddata och JPEG-data som representerar bildpunkterna. Enligt en utföringsform av föreliggande uppfinning är VLC-bilden som representerar en del 21, 22, 23, 28, 29 av den resulterande bilden 99 en bild av JPEG-format och kodaren 104 är en JPEG-kodare. lnfogaren 106a, 106b för infogning av en markör är anordnad för infogning av en separationsmarkör som avslutande data av varje VLC-bild som kodas av kodaren 104. lnfogaren 106a, 106b för infogning av en markör kan vara en integrerad del av kodaren 104. Om så är fallet kan kodaren 104 innefatta hårdvara som är anordnad för infogning av separationsmarkören eller så kan kodaren 104 innefatta mjukvara som är anordnad för infogning av separationsmarkören. Mjukvaran kan t.ex. vara drivrutinen för kodaren 104.
Alternativt, så som åskådliggörs i utföringsformen av figur 1, så kan infogaren 106a, 106b för infogning av en markör vara en separat enhet. Det inses också att även om kodaren 104 innefattar en integrerad infogare för infogning av en markör så kan den uppfinningsenliga anordningen innefatta en separat infogaren 106a, 106b för infogning av en markör. Den separata infogaren 106a, 106b för infogning av en markör kan vara anordnad för styrning av kodarens 104 infogare för infogning av en markör.
Om VLC-bilden 21, 22, 23, 28, 29 representerar den sista delen 19 av den digitala framställningen av bilden 1, sålunda är den sista kodade bilddatasekvensen, så verkar infogaren 106a, 106b för infogning av en markör som en infogare 106b för infogning av en slut-på-bilden-markör (EOl- markör) 40. Alternativt, om VLC-bilden 21, 22, 23, 28, 29 inte representerar den sista delen 19 avden digitala framställningen av bilden 1, sålunda är inte den sista kodade bilddatasekvensen, så verkar infogaren 106a, 106b för I infogning av en markör som en infogare 106a för infogning av en återstartsmarkör 42.
Enligt en utföringsform av föreliggande uppfinning infogas återstartsmarkören 42 som sista data hos den kodade bilden 21, 22, 23, 24, 28, 29 som ärkodad med koder av variabel längd. Emellertid, alternativt kan återstartsmarkören 42 likaväl infogas som första data hos den efterföljande bilden 21, 22, 23, 24, 28, 29 som är kodad med koder av variabel längd. 10 15 20 25 30 11 Oavsett om återstartsmarkören 42 infogas som sista data hos den kodade bilden 21, 22, 23, 24, 28, 29 som är kodad med koder av variabel längd eller om återstartsmarkören 42 infogas som första data hos den efterföljande bilden 21, 22, 23, 24, 28, 29 som är kodad med koder av variabel längd så är resultatet detsamma; återstartsmarkören 42 är avslutande data för varje bild 21, 22, 23, 24, 28, 29 som är kodad med koder av variabel längd.
Om VLC-bilden 21, 22, 23, 28, 29 är en bild av JPEG-format så är infogaren 106a, 106b för infogning av en markör, när den är verksam som en infogaren 106a för infogning av en återstartsmarkör, anordnad för infogning av en återstartsmarkör 42 som representeras av en 0xFFDn-kodsekvens, där n är de fyra minst signifikanta bitarna hos kodsekvensen och pendlar från 0 till 7. En återstartsmarkör 42 som representeras av en OxFFDO-kodsekvens infogas sålunda som avslutande data hos den första VLC-bilden 21 som representeras den första delen 11 av den digitala framställningen av bilden 1.
Vidare, en återstartsmarkör 42 som representeras av en 0xFFD1-kodsekvens infogas som avslutande data hos den andra VLC-bilden 22 som representeras den andra delen 12 av den digitala framställningen av bilden 1.
Och processen försätter på detta sätt. När återstartsmarkören 42 som representeras av en 0xFFD7-kodsekvens har använts så kommer nästa återstartsmarkör 42 att representeras av 0xFFDO-kodsekvensen och efter det kommer de sista fyra minst signifikanta bitarna hos kodsekvensen att öka igen för nästa återstartsmarkör 42 i cykeln.
Om VLC-bilden 21, 22, 23, 28, 29 är en bild av JPEG-format så är infogaren 106a, 106b för infogning av en markör, när den är verksam som en infogaren 106b för infogning av en slut-på-bilden-markör, anordnad för infogning av en slut-på-bilden-markör 40 som representeras av en 0xFFD9- kodsekvens.
Enligt en utföringsform av föreliggande uppfinning infogas återstartsmarkören 42 direkt av infogaren '106a för infogning av en återstartsmarkör under kodning av kodaren 104. Alternativt, enligt en utföringsform av föreliggande uppfinning så är kodaren 104 anordnad för att avsluta varje VLC-bild 21, 22, 23, 28, 29 med en slut-på-bilden-markör 40 som avslutande data. Varje VLC-bild 21, 22, 23, 28, 29 kan sålunda innefatta 10 15 20 25 30 12 en slut-på-bilden-markör 40 som avslutande data när den matas ut från kodaren 104. Om så är fallet så är infogaren 106a för infogning av en återstartsmarkör anordnad för infogning av återstartsmarkören 42 genom utbyte av en alla redan infogad EOI-markör 40 till en återstartsmarkör 42.
Sålunda enligt denna alternativa utföringsform är en EOl-markör 40 först infogad och EOI-markören 40 byts därefter ut till en återstartsmarkör 42 medelst är infogaren 106a för infogning av en återstartsmarkör. lnfogaren 106a, 106b för infogning av en markör kan vara anordnad för infogning av separatlonsmarkören, d.v.s. återstartsmarkören 42 eller EOI- markören 40, till VLC-bilden 21, 22, 23, 28, 29 direkt efter kodningen har utförts av kodaren 104.
Skrivaren 108 är anordnad för skrivning av VLC-bilden 21, 22, 23, 28, 29 till ett minne 110. Minnet 110 kan vara vilket sort minne som är lämpligt för lagring av en kodad digital bild. Till exempel kan minnet 110 vara en hårddisk, ett flashminne, ett minneskort, en minnessticka, ett DRAM, ett SDRAM, en nätverksenhet så som en Bluetooth eller trådlös enhet, etc.
Skrivaren 108 kan vara anordnad för skrivning av VLC-bilden 21, 22, 23, 28, 29 till minnet 110 med eller utan separatlonsmarkören som avslutande data. lnfogaren 106a, 106b för infogning av en markör kan sålunda vara anordnad för infogning av separatlonsmarkören, d.v.s. återstartsmarkören 42 eller EOI-markören 40, antingen innan att varje VLC-bild 21, 22, 23, 28, 29 eller efter att varje VLC-bild 21, 22, 23, 28, 29 har skrivits till minnet 110.
Hoplänkningsenheten 112 är anordnad för hoplänkning av VLC- bilder 21, 22, 23, 28, 29 med varandra genom inrättning av dem som efterföljande delar hos en enskild kodad datasekvens som representerar den enskilda kodade bilden 99.
Hoplänkningsenheten 112 är anordnad för hoplänkning av VLC- bilder 21, 22, 23, 28, 29 med varandra genom användning av ett enskilt filhuvud 20 som representerar de förenade bilderna 21, 22, 23, 28, 29 som ör kodade med koder av variabel längd vilka bilder bildar den enskilda kodade bilden 99.
Det enskilda filhuvudet 20 har ett fält för separationsintervallet, d.v.s. ett nummer som indikerar hur ofta en separationsmarkör förekommer. Det 10 15 20 25 30 13 enskilda filhuvudet 20 kan dessutom ha ett fält för antalet VLC-bilder 21, 22, 23, 28, 29, d.v.s. ett nummer som indikerar hur många separata kodade bilddelar 21, 22, 23, 28, 29 som är förbundna med varandra för bildande av den enskilda kodade datasekvensen som representerar den enskilda kodade bilden 99. Det enskilda filhuvudet 20 kan också innefatta en start-på-bilden- markör som indikerar starten på bilden.
Det enskilda filhuvudet 20 kan genereras medelst bildhuvudsgeneratorn 107. Bildhuvudsgeneratorn 107 kan vara en integrerad del av kodaren 104. Om så är fallet kan kodaren 104 vara anordnad för generering av ett bildhuvud via dess hårdvara eller så kan kodaren 104 vara anordnad för generering av bildhuvudet medelst mjukvara. Mjukvaran kan t.ex. vara drivrutinen hos kodaren 104. Alternativt, så som åskådliggörs i utföringsformen av figur 1, så kan bildhuvudsgeneratorn 107 vara en separat enhet. Det inses också att även om kodaren 104 innefattar en bildhuvudsgenerator så kan den uppfinningsenliga anordningen också innefatta en separat bildhuvudsgenerator 107. Den separata bildhuvudsgeneratorn 107 kan vara anordnad för styrning av kodarens 104 bildhuvudsgenerator.
Enligt en utföringsform hos föreliggande uppfinning genereras det enskilda filhuvudet 20 av bildhuvudsgeneratorn 107. Alternativt, enligt en utföringsform hos föreliggande uppfinning är kodaren 104 anordnad för generering av ett bildhuvud under kodning av delen hos den digitala framställningen av bilden 1 till en VLC-bild 21, 22, 23, 28, 29. Varje VLC-bild kan sålunda innefatta ett bildfilshuvud när den matas ut från kodaren 104. Om så är fallet så kan det enskildaffilhuvudet 20 genereras medelst modifiering av ett redan existerande bildfilhuvud. Sålunda, för denna alternativa utföringsform så modifieras och används ett redan existerande bildfilshuvud för en av VLC-bilderna som det enskilda filhuvudet 20.
Det enskilda filhuvudet 20 kan genereras och/eller modifieras under processen att koda var och en av bilddatasekvenserna som representerar en del 11, 12, 13, 18, 19 av den digitala framställningen av bilden 1 till en VLC- bild 21, 22, 23, 28, 29. Alternativt kan det enskilda filhuvudet 20 genereras 10 15 20 25 30 14 som en efterdatabehandlingshandling, varvid det enskilda filhuvudet 20 genereras alldeles innan slutlig lagring av den kodade bilden 99.
Enligt en utföringsform av föreliggande uppfinning är hoplänkningsenheten 112 är anordnad för hoplänkning av VLC-bilderna 21, 22, 23, 28, 29 med varandra efter att de har skrivits till minnet 110.
Enligt en alternativ utföringsform av föreliggande uppfinning skrivs varje VLC-bild 21, 22, 23, 28, 29 till minnet innefattandes en EOl-markör 40 som avslutande data. Hoplänkningsenheten 112 är då anordnad för utbyte av EOI-markörerna 40 hos alla VLC-bilderna 21, 22, 23, 28 förutom den sista VLC-bilden 29 till en återstartsmarkör 42 och för hoplänkning av VLC- bilderna 21, 22, 23, 28, 29 med varandra.
Ett exempel på en kodad bild 99 som är kodad med en anordning i enlighet med den första utföringsformen av uppfinningen åskådliggörs i figur 3. Den kodade bilden 99 innefattar ett antal VLC-bilddelar 21, 22, 23, 28, 29. Istället för att vara avslutade med en EOl-markör 40 är alla VLC-bilderna utom den sista VLC-bilden avslutade med en återstartsmarkör 42. VLC- bilderna är hoplänkade med varandra för bildande av den enskilda kodade bilden 99. Den enskilda kodade bilden 99 innefattar sålundaett natal bilddatasekvenser 21, 22, 23, 28 som var och en avslutas med en återstartsmarkör 42 samt en sista bilddatasekvens 29 som avslutas av en EOl-markör 40.
Enligt en utföringsform av föreliggande uppfinning har varje VLC- bild 21, 22, 23, 28, 29 en specifik bredd Wvjc som väsentligen motsvarar en bredd We; hos den enskilda kodade bilden 99. Genom kodning av VLC- bilderna med samma bredd som bredden We; hos den enskilda kodade bilden 99 förenklas databehandling av varje VLC-bild som en enskild bild.
Vidare har varje VLC-bild väsentligen samma höjd Hm. Varje VLC-bild har sålunda väsentligen samma antal linjer av bildpunkter. Ett undantag är den sista VLC-bilden som kan innefatta färre linjer av bildpunkter än resten av VLC-bilderna. _ j Enligt en annan utföringsform kan kodaren vara anordnad för kodning av block av bilddata, varvid bredden hos varje block är mindre än bredden hos hela linjen hos den enskilda kodade bilden 99. Bredden hos varje sådant 10 15 20 25 30 15 block kan vara identisk och bredden hos den enskilda kodade bilden 99, d.v.s. den resulterande kodade bilden, har en bredd som är en multipel av bredden hos varje block av bilddata. Enligt denna utföringsform kan varje linje hos ett block avslutas av en återstartsmarkör och sålunda innefattar varje linje hos den enskilda kodade bilden, om den hoplänkas från dessa kodade block av data, ett flertal återstartsmarkörer. Data mellan två på varandra följande återstartsmarkörer representerar ett identiskt antal bildpunkter. Återstartsmarkörerna för varje linje kan infogats av kodaren, och varje block kan sluta med en EOI-markör. För att anordna blocken av bilder till en del som ska anordnas till en enskild bild så måste EOI-markören bytas ut till en återstartsmarkör under hoplänkningen till den enskilda bilden.
Enligt en utföringsform av föreliggande uppfinning så är den kodade bilden 99 en bild av JPEG-format.
För förståelse av linjeringen och infogningen av återstartsmarkörerna 42 och EOI-markören 40 enligt JPEG-standarden så åskådliggörs ett exempel nedan: Anta att återstartsmarkören 42/ EOI-markören 40 infogas efter följande bitsekvens som åskådliggör de sista bitarna hos en MCU, där tecknet indikerar en byte-gräns: ...11010011|01010011|10100 Eftersom bitarna inte är linjerade med bytes så måste de sista bitarna stoppas med ettor till dess att byte-gränsen har nåtts, därefter infogas markören, i detta fall FFD1: ...11010011101010011|10100111|11111111|11010001 Notera att kodaren när den kodar en bild kommer att infoga en EOl- markör 40 som sista bytes, under det att den stoppar de föregående bitarna med ettor för att uppnå linjering. Genom att byta ut EOI-markören 40 hos varje kodad bild med en lämplig återstartsmarkör 42 så kan bilderna 10 15 20 25 30 16 hoplänkas till en stor bild, och huvudet modifieras för att uppbära ett korrekt återstartningsintervall.
Filtret 102, som ovan enligt ovan är frivilligt, kan vara anordnat för filtrering eller maskning av bilddata. Till exempel kan filtret vara anordnat för konvertering av en färgbild till en gråskalebild. Alternativt kan ett uppsättning filter för skapande av komplexa framställningar så som panoramabilder, eller operationer på den utmatade bilden som är baserade på ett flertal källbilder, så som ”high dynamic range photography” användas. Filtret 102 kan vara en integrerad del av bildgeneratorn 100. Alternativt, så som åskådliggörs i utföringsformen av figur 1, kan filtret 107 vara en separat enhet. Det förstås också att även om bildgeneratorn 100 innefattar ett filter så kan även den uppfinningsenliga anordningen innefatta ett separat filter 102. Det separata filtret 102 kan vara anordnad att styra bildgeneratorns 100 filter.
Låt oss anta a en digital framställning av en bild 1 ska kodas till en kodad bild 99 medelst en anordning enligt den första utföringsformen av uppfinningen. Enligt en utföringsform av uppfinningen så utförs en metod för kodning av originalbilden 1 enligt processen som beskrivs nedan, se figur 4.
Den digitala framställningen av bilden 1 genereras, av bildgeneratorn 100, till efterföljande bilddatasekvenser som representerar delar 11, 12, 13, 18, 19 av bilden 1, steg 200. Enligt en utföringsform motsvarar bredderna Wp hos delarna 11, 12, 13, 18, 19 hos den digitala framställningen av bilden 1 väsentligen bredden W; hos den digitala framställningen av bilden 1. Vidare, enligt en utföringsform har alla delarna 11, 12, 13, 18, 19 hos den digitala framställningen av bilden 1 samma höjd. Varje del 11, 12, 13, 18, 19 hos den digitala framställningen av bilden 1 har sålunda samma antal linjer av bildpunkter. Till exempel kan en digital framställning av en bild som från början består av 960x1280 (WiXHE) bildpunkter genereras som tio delar 11, 12, 13, 18, 19 som var och en har en bredd Wp av 960 bildpunkter och en höjd Hp av 128 bildpunkter.
Varje bilddatasekvens som representerar en del 11, 12, 13, 18, 19 av den digitala framställningen av bilden 1 kodas medelst kodaren 104, steg 204. I kodaren 104 kodas varje bilddatasekvens som representerar en del 11, 12, 13, 18, 19 av bilden 1 till en VLC-bild 21, 22, 23, 28, 29 som representerar 10 15 20 25 30 17 en del av den resulterande bilden 99. Enligt en utföringsform är varje VLC- bild 21, 22, 23, 28, 29 en bild av JPEG-format.
Efter kodning av varje bilddatasekvens som representerar en del 11, 12, 13, 18, 19 hos den digitala framställningen av bilden 1 till VLC-bilden 21, 22, 23, 28, 29, utförs handlingen kontrollering av ifall VLC-bilden 21, 22, 23, 28, 29 representerar den sista delen 19 hos bilden 1, steg 206. Steget kontrollering av ifall VLC-bilden 21, 22, 23, 28, 29 representerar den sista delen 19 hos bilden 1 kan till exempel utföras medelst räkning av antalet kodade VLC-bilder 21, 22, 23, 28, 29. Under genereringen av den digitala framställningen av bilden 1 som bilddatasekvenser som representerar delar 11, 12, 13, 18, 19 av bilden, steg 200, bestäms antalet VLC-bilder 21, 22, 23, 28, 29 som ska kodas. l det ovan givna exemplet genereras den digitala framställningen av bilden 1 som tio delar 11, 12, 13, 18, 19. De första nio kodade VLC-bilderna 21, 22, 23, 28 ska sålunda avslutas med en återstartsmarkör 42 och den tionde VLC-bilden 29 ska avslutas med en EOl- markör 40. Information rörande antalet delar 11, 12, 13, 18, 19 kan lagras i filhuvudet 20. Information rörande läget(ena) eller intervallen för återstartsmarkören(erna) kan också lagras i filhuvudet 20.
Så länge som resultatet från kontrollen i steg 206 är att den senast kodade VLC-bilden 21, 22, 23, 28, 29 inte representerar den sista delen 19 hos den digitala framställningen av bilden 1 så infogas en återstartsmarkör 42 som avslutande data hos VLC-bilden 21, 22, 23, 28, steg 208. lnfogningen av återstartsmarkören 42 utförs medelst infogaren 106a för infogning av en återstartsmarkör. lfall VLC-bilden 21, 22, 23, 28 är en bild av JPEG-format representeras återstartsmarkören 42 av en 0xFFDn-kodsekvens, där n anger de fyra minst signifikanta bitarna hos kodsekvensen och pendlar från 0 till 7.
En återstartsmarkör 42 som representeras av en 0xFFDO-kodsekvens infogas sålunda som avslutande data hos den första VLC-bilden 21 som representeras den första delen 11 av den digitala framställningen av bilden 1.
Vidare, en återstartsmarkör 42 som representeras av en 0xFFD1-kodsekvens infogas som avslutande data hos den andra VLC-bilden 22 som representeras den andra delen 12 av den digitala framställningen av bilden 1.
Och processen försätter på detta sätt. När återstartsmarkören 42 som 10 15 20 25 30 18 representeras av en OxFFD7-kodsekvens har använts så kommer nästa återstartsmarkör 42 att representeras av OxFFDO-kodsekvensen och efter det kommer de sista fyra minst signifikanta bitarna hos kodsekvensen att öka igen för nästa återstartsmarkör 42 i cykeln.
Om istället VLC-bilden 21, 22, 23, 28, 29 representerar den sista delen 19 hos den digitala framställningen av bilden 1, sålunda det är den sista VLC-bilden 29, så infogas en slut-på-bilden-markör 42 som avslutande data hos den sista VLC-bilden 29, steg 210. lnfogningen av en EOl-markör 40 utförs av infogaren 106b för infogning av en slut-på-bilden-markör.
Varje VLC-bild 21, 22, 23, 28, 29 skrivs vidare till minnet 110, steg 212.
Handlingen att skriva varje VLC-bild 21, 22, 23, 28, 29 till minnet 110 utförs av skrivaren 108.
Enligt en utföringsform av föreliggande uppfinning kan varje VLC- bild 21, 22, 23, 28, 29 skrivas till minnet 110 efter infogning av separationsmarkören (återstartsmarkören 42 eller EOI-markören 40) som avslutande data hos varje VLC-bild 21, 22, 23, 28, 29. Alternativt kan separationsmarkören, d.v.s. återstartsmarkören 42 eller EOl-markören 40, infogas efter att data hos de kodade VLC-bilderna 21, 22, 23, 28, 29 har skrivits till minnet.
Varje VLC-bild 21, 22, 23, 28, 29 hoplänkas också med föregående kodad VLC-bild 21, 22, 23, 28, 29, steg 212. Steget 212 utförs uppenbarligen inte efter kodning av den första VLC-bilden 21. På detta sätt hoplänkas VLC- bilderna 21, 22, 23, 28, 29 med varandra för bildande av den kodade bilden 99. __ Mängden minne som behövs i processen för framställning av den kodade bilden 99 för kodning av delarna och skrivning av den kodade bilden 99 minskas eftersom systemet och metoden tillåter generering och databehandling av delar av bilden 1 jämfört med generering och databehandling av hela bilden 1 på en gång.
Som ett frivilligt steg kan bilddatasekvenserna som representerar varje del 11, 12, 13, 18,719 hos bilden 1 filtreras eller maskeras, steg 202. Till exempel kan en bilddatasekvens som representerar en färgbild filtreras till en bild i gråskala. Alternativt kan ett uppsättning filter för skapande av komplexa 10 15 20 25 30 19 framställningar så som panoramabilder, eller operationer på den utmatade bilden som är baserade på ett flertal källbilder, så som ”high dynamic range photography” användas.
Enligt en andra utföringsform av föreliggande uppfinning är kodaren 104 anordnad för pausning av sin kodningsprocess under kodning av digital framställning av en bild. Om så är fallet kan infogning av separationsmarkören, d.v.s. återstartsmarkören 42 eller EOl-markören 40, undvikas, och hoplänkningen mellan de kodade bilddelarna kan utföras omgående genom att lägg till en nyligen kodad VLC-bild till en tidigare kodad VLC-bild. l figur 5 åskådliggörs en anordning för kodning av en digital bild till en enskild kodad bild 99 i enlighet med denna andra utföringsform av föreliggande uppfinning. Anordningen innefattar en bildgenerator 100, en kodare 104, en skrivare 108, och ett minne 110. Anordningen kan, så som åskådliggörs i denna utföringsform, också innefatta ett filter 102. Filtret 102 är frivilligt, se ovan.
Bildgeneratorn 100 är anordnad för generering av den digitala framställningen av bilden. Bildgeneratorn 100 är anordnad på samma sätt som bildgeneratorn hos anordningen enligt den första utföringsformen hos föreliggande uppfinning. Sålunda, se ovan för en detaljerad förklaring till funktionen hos bildgeneratorn.
Kodaren 104 är anordnad för kodning av en bilddatasekvens till en bild 21, 22, 23, 28, 29 som är kodad med koder av variabel längd (VLC-bild).
Särskilt är kodaren 104 anordnad för kodning av var och en av de från bildgeneratorn 100 utmatade bilddatasekvenserna som representerar delar 11, 12, 13, 18, 19 hos framställningen av bilden 1 till en VLC-bild 21, 22, 23, 28, 29. Enligt en utföringsform är VLC-bilden 21, 22, 23, 28, 29 en bild av JPEG-format. Om så är fallet är kodaren en JPEG-kodare.
Kodaren 104 innefattar ett organ 112 för sättning av kodaren i ett återstartstillstånd som är anordnat för att sätta kodaren 104 i ett återstartstillstånd, ett reaktiveringsorgan 106 som är anordnat för reaktivering av kodaren 104 som är satt i ett återstartstillstånd och en infogare 106b för infogning av en slut-på-bilden-markör 40. 10 15 20 25 30 20 Nämnda organ 112 för sättning av kodaren i ett återstartstillstånd är anordnat för att sätta kodaren i ett återstartstillstånd som svar på avslutningen av kodningen av varje bild 21, 22, 23, 28, 29 som är kodad med koder av variabel längd. Kodaren 104 är till exempel satt i nämnda återstartstillstånd när den väntar på att en ny bilddatasekvens som representerar en del 11, 12, 13, 18, 19 av bilden 1 ska genereras av bildgeneratorn 100. Detta är till exempel användbart när steget generering av en bilddatasekvens som representerar en del 11, 12, 13, 18, 19 av den digitala bilden 1 är långsammare är steget kodning av en bilddatasekvens som representerar en del 11, 12, 13, 18, 19 av den digitala bilden 1 till en bild 21, 22, 23,28, 29 som är kodad med koder av variabel längd.
Minskningen av mängden använt minne härleder sig från det faktum att hela bilden inte behöver genereras innan kodningen och sålunda bara en del av bilden behöver uppehålla sig i minnet jämfört med det fall när hela bilden behöver uppehålla sig i minnet.
Nämnda reaktiveringsorgan 106 är anordnat för reaktivering av kodaren 104 från nämnda återstartstillstånd som har initierats av avslutningen av en tidigare utförd kodning av en bilddatasekvens som representerar en tidigare kodad del 11, 12, 13, 18, 19 av den digitala framställningen av bilden 1.
När nämnda reaktiveringsorgan 106 har reaktiverat kodaren 104 är kodaren 104 anordnad för kodning av den nyligen genererade bilddatasekvensen som representerar en efterföljande del 11, 12, 13, 18, 19 av den digitala framställningen bilden 1 till en efterföljande bild 21, 22, 23, 28, 29 som är kodad med koder av variabel längd hos den resulterande kodade bilden 99. i lnfogaren 106b för infogning av en slut-på-bilden-markör är anordnad för infogning av en slut-på-bilden-markör 40 som avslutande data hos den sista VLC-bilden 29. lnfogaren 106b för infogning av en slut-på-bilden-markör är sålunda anordnad för att avsluta den hela kodade bilden 99 med slut-på- bilden-markören 40 för indikering av slutet på bilden.
Skrivaren 110 är anordnad för skrivning av de från kodaren 104 utmatade VLC-bilderna 21, 22, 23, 28, 29 till minnet 110. 10 15 20 25 30 21 Minnet 110 kan vara vilket sort minne som är lämpligt för lagring av en kodad digital bild. Till exempel kan minnet 110 vara en hårddisk, ett flashminne, ett minneskort, en minnessticka, ett DRAM, ett SDRAM, en nätverksenhet så som en Bluetooth eller trådlös enhet, etc.
Ett exempel på en kodad bild 99 som är kodad med anordningen enligt denna andra utföringsform av uppfinningen åskådliggörs i figur 6. Den kodade bilden 99 innefattar ett antal VLC-bilder 21, 22, 23, 28, 29. Den sista datasekvensen avslutas av en EOI-markör 40. Den kodade bilden 99 är med fördel kodad i enlighet med JPEG-standarden.
Enligt en utföringsform av föreliggande uppfinning har varje VLC- bild 21, 22, 23, 28, 29 en specifik bredd Wv|c som väsentligen motsvarar bredden Wei hos den enskilda kodade bilden 99. Genom kodning av VLC- bilddelarna 21, 22, 23, 28, 29 med samma bredd som bredden hos den enskilda kodade bilden 99 så förenklas databehandlingen av varje VLC-bild som en enskild bild.
Varje VLC-bild 21, 22, 23, 28, 29 har vidare väsentligen samma höjd Hvjc. Alla VLC-bilder 21, 22, 23, 28, 29 har sålunda väsentligen samma antal linjer av bildpunkter. Ett undantag kan vara den sista VLC-bilden 29 som kan innefatta färre linjer av bildpunkter än resten av VLC-bilderna 21, 22, 23, 28, 29.
Enligt en utföringsform av föreliggande uppfinning är den kodade bilden 99 kodad i enlighet med JPEG-standarden.
Låt oss anta att en digital framställning av bilden 1 ska kodas till en kodad bild 99 medelst en anordning för kodning av en digital framställning av en bild 1 till en enskild kodad bild 99 i enlighet med den andra utföringsformen av uppfinningen. Enligt en utföringsform av uppfinningen så utförs en metod för kodning av bilden 1 då enligt det följande: Den digitala framställningen av bilden 1 genereras på ett efterföljande sätt, av bildgeneratorn 100, till bilddatasekvenser som representerar delar 11, 12,13, 18, 19 av bilden 1. Enligt en utföringsform motsvarar bredden Wp hos var och en av delarna 11, 12, 13, 18, 19 hos bilden 1 väsentligen bredden Wi hos bilden 1. Vidare, enligt en utföringsform har alla delarna 11, 12, 13, 18, 19 hos den digitala framställningen av bilden 1 samma höjd. Varje del 11, 12, 10 15 20 25 30 22 13, 18, 19 hos den digitala framställningen av bilden 1 har sålunda samma antal linjer av bildpunkter, med möjlig avvikelse hos den sista delen, se ovan.
Till exempel kan en bild som från början består av 960x1280 (WixHi) bildpunkter genereras som tio delar 11, 12, 13, 18, 19 som var och en har en bredd Wp av 960 bildpunkter och en höjd Hp av 128 bildpunkter.
Varje bilddatasekvens som representerar en del 11, 12, 13, 18, 19 av den digitala framställningen av bilden 1 kodas medelst kodaren 104. I kodaren 104 kodas varje bilddatasekvens som representerar en del 11, 12, 13, 18, 19 av den digitala framställningen av bilden 1 till en VLC-bild 21, 22, 23, 28, 29. Enligt en utföringsform är varje VLC-bild 21, 22, 23, 28, 29 en bild av JPEG-format.
När delen 11, 12, 13, 18, 19 av den digitala framställningen av bilden 1 har kodats till en VLC-bild 21, 22, 23, 28, 29 så ställs kodaren 104 i ett återstartstillstånd, steg 406, som svar på avslutningen av kodningen av VLC- bilden 21, 22, 23, 28, 29. På detta sätt kan kodningen av den inmatade bilden 1 utföras i delar med kodaren 104 som är i stånd att pausa mellan kodning av varje del 11, 12, 13, 18, 19 av den digitala framställningen av bilden 1 till en VLC-bilddel 21, 22, 23, 28, 29. Detta är särskilt användbart när steget generering av en del av den digitala framställningen av bilden 1 är långsammare än steget kodning av den nyligen genererade delen 11, 12, 13, 18, 19 av den digitala framställningen av bilden 1 till en VLC-bilddel 21, 22, 23, 28, 29. Det är speciellt intersant när mer än en del genereras samtidigt.
När ny bilddata som ska kodas och som tillhör samma bild som nyligen kodad bilddata tillhandahålles till kodaren 104 reaktiveras kodaren 104 från återstartstillståndet som har initierats av avslutandet av en nyligen utförd kodning av en bilddatasekvens som representerar en nyligen kodad del 11, 12, 13, 18, 19 av den digitala framställningen av bilden 1.
Varje kodad VLC-bilddel 21, 22, 23, 28, 29 skrivs på ett efterföljande sätt till minnet 110. Den kodade bilden 99 kodas sålunda på ett efterföljande sätt av kodaren 104.
I figur 7 åskådliggörs behandlingen av en bilddel. En bilddel av den _ digitala framställningen av en bild generas, steg 400. Bilddelen är redan databehandlad innan steg 400 eller kan filteras i steg 402, så som 10 15 20 25 30 23 diskuterades i samband med den första utföringsformen. När bilddelens bilddata sedan anländer till kodaren så reaktiveras kodaren från återstartstillståndet för fortsatt databehandling av bilddata som tillhör samma bild som den tidigare kodade bilddelen, steg 404. Reaktiveringssteget utförs följaktligen inte för den första bilddelen av bilden. Sedan kodas den av kodaren mottagna bilddelen, steg 406, och när kodningen av bilddelen är slutförd så sätts kodaren i återstartstillståndet, steg 408, väntandes på att nästa del ska anlända till kodaren. Bilddata har då kodats till en VLC-bild 21, 22, 23, 28, 29. Om VLC-bilden representerar den sista delen av bilden som ska kodas, steg 410, så infogas en slut-på-bilden-markör, EOI, till VLC-bilden, steg 412. Återstartstillståndet kan dessutom nollställas eller inte sättas alls när den sista VLC-bilden har detekterats. Oberoende av ifall VLC-bilden representerar den sista delen eller inte så skrivs VLC-bilden sedan till minnet, steg 414. Databehandlingen av de hoplänkade VLC-bilderna som utgör den kodade bilden 99 och som lagras i minnet liknar motsvarande databehandling som har beskrivits ovan i samband med den första utföringsformen.
Anordningen för kodning av en digital framställning av en bild 1 till en enskild kodad bild 99 enligt föreliggande uppfinning kan vara en mobiltelefon, en digital kamera, en dator, eller liknande. Anordningen för kodning av en digital framställning av en bild 1 till en enskild kodad bild 99 enligt föreliggande uppfinning kan vidare innefatta fler en ett databehandlingsorgan.
Enligt en utföringsform kan nämnda databehandlingsorgan vara en processor. Enligt ännu en utföringsform nämnda databehandlingsorgan vara en processor med flera kärnor, t.ex. två kärnor, fyra kärnor, etc.
Oberoende av vilken av ovan nämnda utföringsformer av anordningen eller processen för kodning av en digital framställning av en bild 1 till en enskild kodad bild 99 enligt föreliggande uppfinning som implementeras så kan stegen skrivning av en VLC-bild 21, 22, 23, 28, 29 till minnet 110, kodning av en bilddatasekvens som representerar en del 11, 12, 13, 18, 19 av den digitala framställningen av bilden 1 till en VLC-bild 21, 22, 23, 28, 29 och generering av en datasekvens som representerar en del 11, 12, 13, 18, 19 av den digitala framställningen av bilden 1 utföras samtidigt. Detta åskådliggörs i figur 8 till vilken nu refereras. I figur 8 visas schematiskt tiden 10 15 20 25 30 24 för generering av utdata från processen generering av en datasekvens som representerar en del 11, 12, 13, 18, 19 av den digitala framställningen av bilden 1, tiden för generering av utdata från processen kodning av en bilddatasekvens som representerar en del 11, 12, 13, 18, 19 av den digitala framställningen av bilden 1 till en VLC-bild 21, 22, 23, 28, 29 samt tiden för skrivning av varje VLC-bilddel 21, 22, 23, 28, 29 till minnet 110.
I den vänstra kolumnen av tidsdiagrammet i figur 8 visas schematiskt tiden för generering av varje utdatasekvens från bildgeneratorn 100 som genererar en datasekvens som representerar en del 11, 12, 13, 18, 19 av den digitala framställningen av bilden 1. I den mellersta kolumnen av tidsdiagrammet i figur 8 visas schematiskt tiden för generering av utdata från kodaren 104. Och i den högra kolumnen av tidsdiagrammet i figur 8 visas schematiskt tiden för skrivaren 108 att skriva kodad data.
Uppe till vänster av tidsdiagrammet i figur 8 åskådliggörs generering av den första bilddatasekvensen som representerar den första delen 11 av den digitala framställningen av bilden 1. Den första bilddatasekvens som representerar den första delen 11 av den digitala framställningen av bilden 1 representeras av en datasekvens. När den första bilddatasekvensen som representerar den första delen 11 av den digitala framställningen av bilden 1 har genererats kan kodaren 104 koda den första bilddatasekvensen som representerar den första delen 11 av den digitala framställningen av bilden 1 till den första VLC-bilden 21. Den första VLC-bilden 21 representeras av en datasekvens. Den schemtiska tiden för kodning medelst kodaren 104 visas i mittenkolumnen av figur 8. När den första delen 11 av den digitala framställningen av bilden 1 har kodats till den första VLC-bilden 21 så kan den första VLC-bilden 21 skrivas till minnet medelst skrivaren 108. Tiden för skrivning medelst skrivaren 108 visas i den högra kolumnen av figur 8.
I scenariot som åskådliggörs i figur 8 genereras den första delen 11 av den digitala framställningen av bilden 1, som sedan kodas till en VLC-bild 21 och som sedan skrivs till minnet, och en andra del 12 av den digitala framställningen av bilden 1 kan genereras, kodas till en andra VLC-bild 22 och skrivas till minnet på samma sätt. Samtidigt som den första delen 11 av den digitala framställningen av bilden 1 kodas till den första VLC-bilden 21 10 15 20 25 30 25 kan emellertid den andra delen 12 av den digitala framställningen av bilden 1 genereras. På samma sätt, samtidigt som den första kodade VLC-bilden 21 skrivs till minnet så kan den andra VLC-bilddelen 22 kodas. Skrivningen, kodningen samt genereringen kan utföras samtidigt eftersom bildgenerator, kodaren och skrivaren använder olika databehandlingsorgan och eftersom bilden är uppdelad idelar. En del 11, 12, 13, 18, 19 av den digitala framställningen av bilden 1 kan sålunda genereras samtidigt som kodning av en annan del 11, 12, 13, 18, 19 av bilden 1 till en VLC-bild 21, 22, 23, 28, 29.
En del 11, 12, 13, 18, 19 av den digitala framställningen av bilden 1 kan vidare kodas till en VLC-bild 21, 22, 23, 28, 29 samtidigt som en tidigare kodad VLC-bild 21, 22, 23, 28,29 skrivs till minnet. En del 11, 12, 13, 18, 19 av den digitala framställningen av bilden 1 kan således genereras samtidigt som en tidigare kodad VLC-bild 21, 22, 23, 28, 29 skrivs till minnet 110.
Enligt en annan utföringsform kan mer än en datasekvens av en del 11, 12, 13, 18, 19 av den digitala framställningen av bilden 1 genereras samtidigt. Detta är möjligt i ett utförande som innefattar flera databehandlingsorgan.
Enligt ännu en annan utföringsform av föreliggande uppfinning kan mer än en datasekvens av en del 11, 12, 13, 18, 19 av den digitala framställningen av bilden 1 kodas till en VLC-bild 21, 22, 23, 28, 29 samtidigt.
Också detta i ett utförande som innefattar flera databehandlingsorgan.
Enligt föreliggande uppfinning kan sålunda både använd tid och mängden minne som behövs minskas.
Genom kodning användandes koder av variabel längd är det inte möjligt att förutse den slutliga storleken av utdata innan kodning. Sålunda behövs stora utmatningsbuffertminnen. Emellertid, enligt föreliggande uppfinning minskas minnesbehovet eftersom ett buffertminne för mellanliggande VLC-bilder kan vara litet eftersom den kodade bilden 99 kodas i delar. Till exempel, om den kodade bilden kodas i tio delar så kan buffertminnet vara ca tio gånger mindre. Minskningen av minnesbehov är ännu mer tydligt med hänseende på att inte fullständig bilddata för hela bilden behöver genereras utan istället behövs bara relevant bilddata för varje del 11, 12, 13, 18, 19 av den digitala framställningen av bilden 1 genereras. 10 15 26 Tid sparas på grund av möjligheten för samtidig skrivning av en VLC- bilddel 21, 22, 23, 28, 29 till minnet, kodning av en bilddatasekvens som representerar en del 11, 12, 13, 18, 19 av den digitala framställningen av bilden 1 till en VLC-bilddel 21, 22, 23, 28, 29 och generering av en bilddatasekvens som representerar en del 11, 12, 13, 18, 19 av den digitala framställningen av bilden 1.
I figur 9 åskådliggörs ett tidsdiagram liknande det tidsdiagram som åskådliggjordes i figur 8. Skillnaden ligger i att processerna för bildgenerering, kodning och skrivning av data till minnet inte sker samtidigt. Processerna opererar emellertid på delar av den fullständiga bilden 1 och minnesbehovet kan sålunda minskas.
Bildformat såsom en JPEG av baslinjetyp innehåller block som beror på alla tidigare block. Genom utnyttjade av liknande egenskaper hos EOI- och återstarts-markörer (från början använda för återhämtning av fel i JPEG) har vi skapat en metod där delar av en stor bild kan genereras, kodas och skivas oberoende av varandra för bildande av en slutlig stor kodad bild.

Claims (24)

10 15 20 25 30 26 CLAIMS
1. Method for encoding a digital representation of an image (1) into a single encoded image (99), comprising: generating at least two subsequent image data sequences each representing a portion (11, 12, 13, 18, 19) of the digital representation of the image (1), inputting to an encoder (104) each of said subsequent image data sequences as if each image data sequence is an individual digital representations of an image, encoding each subsequent image data sequence into a variable length coded image, thereby generating at least two variable length coded images (21, 22, 23, 28, 29) each representing a portion of the single encoded image (99), inserting a restart marker (42) as terminating data of at least one of the variable length coded images (21, 22, 23, 28), inserting an end of image marker (40) as terminating data of one of the variable length coded images (29) representing a final portion of the single encoded image (99), associating the variable length coded images (21, 22, 23, 28, 29) with each other by arranging them as subsequent parts of a single encoded data sequence representing the single encoded image (99), and simultaneously generating the image data sequence representing a second portion (12) of the digital representation of the image (1) and encoding the image data sequence representing a first portion (11) of the digital representation of the image (1) into a first variable length coded image (21).
2. Method according to claim 1, wherein the step of encoding each subsequent image data sequence representing a portion (11, 12, 13, 18, 19) of the digital representation of the image (1) into a variable length coded image further comprises inserting an end of image marker (40) as terminating data in each of the encoded image data sequences (21, 22, 23, 28, 29), and 10 15 20 25 27 wherein the step of inserting a restart marker (42) as terminating data of the encoded image data sequences (21, 22, 23, 28) is performed by replacing the end of image marker (40) with the restart marker (42).
3. Method according to claim 1 or 2, further comprising generating a single file header (20) representing the associated variable length coded images (21, 22, 23, 28, 29) forming the single encoded image (99).
4. Method according to claim 3, wherein the act of generating a single file header includes: determining a position of at least one restart marker (42) in the single encoded image (99), and inserting an indicator indicating the determined position of said at least one restart marker into a data structure of the file header.
5. Method according to any one of claims 1-4, wherein the step of inserting a restart marker (42) as terminating data of at least one of the variable length coded image (21, 22, 23, 28) is performed by inserting the restart marker (42) as last data of the encoded variable length coded image (21, 22, 23, 28).
6. Method according to any one of claims 1-4, wherein the step of inserting a restart marker (42) as terminating data of at least one variable length coded image (21, 22, 23, 28) is performed by inserting the restart marker (42) of the encoded variable length coded image (21, 22, 23, 28) as initial data of a subsequent variable length coded image (21, 22, 23, 28, 29) .
7. Method according to any one of claims 1-6, further comprising simultaneously writing data of a first variable length coded image (21) to a memory (110) and encoding an image data sequence representing a second portion (12) of the digital representation of the image (1) into a second variable length coded image (22).
8. Method according to any one of claims 1-7, wherein the digital representation of the image (1) has a specific image width (Wi), and wherein 10 15 20 25 28 each portion (11, 12, 13, 18, 19) of the image (1) has a specific portion width (Wp) corresponding substantially to the image width (Wi).
9. Method according to any of the claims 1-8, wherein each variable length coded image (21, 22, 23, 28, 29) has a specific width (Wvic), wherein the specific width (VVWC) corresponds to a width (Wei) of the single encoded image (99).
10. Method according to any one of claims 1-9, wherein each variable length coded image (21, 22, 23, 28, 29) is an image ofJPEG-format.
11. Method according to claim 10, wherein the act of inserting a restart marker (42) comprises inserting a 0xFFDn code sequence wherein n indicates the 4 least significant bits of the code sequence and represents an integer between 0 and 7.
12. Method according to any one of claims 10-11, wherein the act of inserting an end of image marker (40) comprises inserting a OxFFD9 code sequence.
13. Method according to any one of claims 1-12, wherein the method is performed in a mobile telephone.
14. Method according to any one of claims 1-12, wherein the method is performed in a digital camera.
15. Device for encoding a digital representation of an image (1) into a single encoded image (99), comprising: an image generator (100) arranged to generate subsequent image data sequences representing portions (11, 12, 13, 18, 19) of the digital representation of the image (1), an encoder (104) arranged to encode each image data sequence representing portions (11, 12, 13, 18, 19) of the digital representation of the image (1) into a variable length coded image (21, 22, 23, 28, 29), a restart marker inserter (106a) arranged to insert a restart marker (42) as terminating data of a variable length coded image (21, 22, 23, 28), 10 15 20 25 29 an end of image marker inserter (106b) arranged to insert an end of image marker (40) as terminating data of a variable length coded image (29) representing a final portion of the single encoded image (99), and an associating unit (112) arranged to associate the variable length coded images (21, 22, 23, 28, 29) with each other by arranging them as subsequent parts of a data sequence representing the single encoded image(99)characterized bythat said image generator (100) is arranged to generate an image data sequence representing a second portion (12) of the digital representation of the image (1) simultaneously as the encoder (104) is encoding an image data sequence representing a first portion (11) of the digital representation of the image (1) into a first variable length coded image (21).
16. Device according to claim 15, further comprising an image header generator (107) arranged to generate a single file header (20) for the single encoded image (99) formed by the associated variable length coded images (21, 22, 23, 28, 29).
17. Device according to claim 16, wherein the single file header (20) comprises at least one parameter indicating the position of restart markers (42) in the single encoded image (99).
18. Device according any one of claims 15-17, further comprising a writer (108) arranged to write the variable length coded images (21, 22, 23, 28, 29) to a memory (110).
19. Device according to any of the claims 15-18, wherein each subsequent image data sequences representing portions (11, 12, 13, 18, 19) of the digital representation of the image (1) has a specific portion width (Wp) corresponding substantially to a image width (Wi) of the digital representation of the image (1).
20. Device according to any of the claims 15-19, wherein the encoder is arranged to encode each subsequent image data sequences representing 10 15 30 portions (11, 12, 13, 18, 19) of the digital representation of the image (1) into a variable length coded image (21, 22, 23, 28, 29) of JPEG-format.
21. Device according to any one of the claims 19-20, wherein the end of image marker inserter (106b) is arranged to insert an end of image marker (40) represented by a 0xFFD9 code sequence.
22. Device according to claim 20, wherein the restart marker inserter (106a) is arranged to insert a restart marker (42) represented by a 0xFFDn code sequence, wherein n indicates the 4 least significant bits of the code sequence and represents an integer between O and 7.
23. Device according to any one of claims 15-22, wherein the device is a mobile phone.
24. Device according to any one of claims 15-22, wherein the device is a digital camera.
SE0900522A 2009-04-17 2009-04-17 Bildkodare och metod för kodning av bilder SE0900522A1 (sv)

Priority Applications (3)

Application Number Priority Date Filing Date Title
SE0900522A SE0900522A1 (sv) 2009-04-17 2009-04-17 Bildkodare och metod för kodning av bilder
PCT/SE2010/050407 WO2010120239A1 (en) 2009-04-17 2010-04-15 Image encoder and method for encoding images
US13/138,799 US9066111B2 (en) 2009-04-17 2010-04-15 Image encoder and method for encoding images

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
SE0900522A SE0900522A1 (sv) 2009-04-17 2009-04-17 Bildkodare och metod för kodning av bilder

Publications (1)

Publication Number Publication Date
SE0900522A1 true SE0900522A1 (sv) 2010-10-18

Family

ID=42982721

Family Applications (1)

Application Number Title Priority Date Filing Date
SE0900522A SE0900522A1 (sv) 2009-04-17 2009-04-17 Bildkodare och metod för kodning av bilder

Country Status (3)

Country Link
US (1) US9066111B2 (sv)
SE (1) SE0900522A1 (sv)
WO (1) WO2010120239A1 (sv)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102460906B1 (ko) * 2016-02-17 2022-11-01 삼성전자주식회사 이미지 처리 방법 및 이를 지원하는 전자 장치
US10148875B1 (en) * 2016-05-17 2018-12-04 Scott Zhihao Chen Method and system for interfacing multiple channels of panoramic videos with a high-definition port of a processor
US11044495B1 (en) 2018-02-13 2021-06-22 Cyborg Inc. Systems and methods for variable length codeword based data encoding and decoding using dynamic memory allocation
US10491240B1 (en) * 2019-01-17 2019-11-26 Cyborg Inc. Systems and methods for variable length codeword based, hybrid data encoding and decoding using dynamic memory allocation

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5379070A (en) * 1992-10-02 1995-01-03 Zoran Corporation Parallel encoding/decoding of DCT compression/decompression algorithms
JPH07193810A (ja) * 1993-12-27 1995-07-28 Hitachi Ltd 符号化データ復号方法および装置
US6775417B2 (en) * 1997-10-02 2004-08-10 S3 Graphics Co., Ltd. Fixed-rate block-based image compression with inferred pixel values
JP3614358B2 (ja) 2000-09-28 2005-01-26 シャープ株式会社 画像符号化装置
JP2003174650A (ja) * 2001-09-27 2003-06-20 Canon Inc 画像符号化装置、可変長符号化装置、制御装置およびそれらの方法
US7277586B2 (en) 2003-01-15 2007-10-02 Fujifilm Corporation Images combination processing system, images combination processing method, and images combination processing program
US7432835B2 (en) * 2005-07-05 2008-10-07 Matsushita Electric Industrial Co., Ltd. Variable length decoding method and device
JP2007267349A (ja) 2006-03-03 2007-10-11 Victor Co Of Japan Ltd 分割画像処理システム及びそれに用いる固体撮像装置と再生装置並びにプログラム

Also Published As

Publication number Publication date
US9066111B2 (en) 2015-06-23
US20120099655A1 (en) 2012-04-26
WO2010120239A1 (en) 2010-10-21

Similar Documents

Publication Publication Date Title
US8098941B2 (en) Method and apparatus for parallelization of image compression encoders
US7602974B2 (en) Universal fixed-pixel-size ISP scheme
CN102369554B (zh) 用以旋转图像的设备和方法
US7742644B2 (en) Processing of images in imaging systems
CN101990095B (zh) 压缩文件生成方法和设备、相关的相机模块和终端
US8538180B2 (en) Method and apparatus for generating JPEG files suitable for parallel decoding
JP4151684B2 (ja) 符号化装置、符号化方法および符号化プログラム、並びに撮像装置
CN103581678B (zh) 通过使用多个解码器信道来改良解码器性能的方法与系统
US7747097B2 (en) Method for simple hardware implementation of JPEG size limiter
SE0900522A1 (sv) Bildkodare och metod för kodning av bilder
CN110557637A (zh) 对图像编码的设备、对图像解码的设备及图像传感器
CN102025987B (zh) 图像处理设备和控制方法
US7650038B2 (en) Image processing method and image processing apparatus
WO2004112396A1 (ja) 画像データの圧縮とサムネール画像の作成を行う電子機器、画像処理装置、データ構造
US20120121176A1 (en) Image compression apparatus and image compression method
US8340446B2 (en) Apparatus and method for generating chain code
CN101459854B (zh) 图像压缩编码/解码装置及图像压缩编码/解码方法
US20050036046A1 (en) Method of or device for processing image data, a processed image data format, and a method of or device for displaying at least one image from the processed image data
US20100328514A1 (en) Image processing device, imaging apparatus, and thumbnail image displaying method
JP2006238291A (ja) カラー画像情報の符号化処理方法、復号化処理方法およびこれを用いた印刷装置
USRE45300E1 (en) Context-adaptive variable length coder with simultaneous storage of incoming data and generation of syntax elements
KR102012715B1 (ko) 촬상 장치 및 화상처리 방법
JP4739443B2 (ja) デジタルイメージを処理するための方法及び装置
EP1251702A3 (en) Video encoding and decoding
US20110317933A1 (en) Image Coding Method for Facilitating Run Length Coding and Image Encoding Device Thereof

Legal Events

Date Code Title Description
NAV Patent application has lapsed