SE531398C2 - Generering av en dataström och identifiering av positioner inuti en dataström - Google Patents

Generering av en dataström och identifiering av positioner inuti en dataström

Info

Publication number
SE531398C2
SE531398C2 SE0701690A SE0701690A SE531398C2 SE 531398 C2 SE531398 C2 SE 531398C2 SE 0701690 A SE0701690 A SE 0701690A SE 0701690 A SE0701690 A SE 0701690A SE 531398 C2 SE531398 C2 SE 531398C2
Authority
SE
Sweden
Prior art keywords
data
stream
variable length
codeword
length codes
Prior art date
Application number
SE0701690A
Other languages
English (en)
Other versions
SE0701690L (sv
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
Priority claimed from SE0700446A external-priority patent/SE533185C2/sv
Application filed by Scalado Ab filed Critical Scalado Ab
Priority to SE0701690A priority Critical patent/SE531398C2/sv
Priority to JP2009549554A priority patent/JP5289333B2/ja
Priority to KR1020097019348A priority patent/KR101463279B1/ko
Priority to PCT/SE2008/000125 priority patent/WO2008100206A1/en
Priority to EP08712717.1A priority patent/EP2123053B1/en
Priority to US12/031,872 priority patent/US7652595B2/en
Priority to CN2008800050520A priority patent/CN101647288B/zh
Publication of SE0701690L publication Critical patent/SE0701690L/sv
Publication of SE531398C2 publication Critical patent/SE531398C2/sv
Priority to IL200413A priority patent/IL200413A0/en
Priority to US12/644,690 priority patent/US7847711B2/en

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • 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
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • H03M7/42Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code using table look-up for the coding or decoding process, e.g. using read-only memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/40Scaling of whole images or parts thereof, e.g. expanding or contracting
    • G06T3/4092Image resolution transcoding, e.g. by using client-server architectures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/65Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using error resilience
    • H04N19/68Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using error resilience involving the insertion of resynchronisation markers into the bitstream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • H04N7/5013

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Description

15 20 25 30 35 531 398 2 En vanlig åtgärd för undvikande av detta problem är antingen ökning av anordningens processorkapacitet eller undvikande av operationer där användaren förväntar sig en upplevelse av ett kontinuerligt flöde.
Sammanfattning Ett syfte med föreliggande uppfinning är att förbättra operationer som görs på strömmar med koder av variabel längd och/eller bilder samt förbättra användarens upplevelse av kontinuerliga operationer på sådana strömmar och /eller bilder, lika väl som att förbättra tiden det tar för avkodning till bildskärmen av en fångad bild.
Enligt en aspekt av uppfinningen åstadkommas ovannämnda syfte medelst en metod för generering av en dataström som kodats medelst ett förfarande vilket utnyttjar koder av variabla längder. Metoden innefattar kodning av kodord för en dataström som innefattar ett flertal kodord i enlighet med ett förfarande för kodning medelst koder av variabla längder och insättning av en separationsmarkering mellan kodade kodord i dataströmmen.
Genom introduktion av separationsmarkeringen underlättas partiell åtkomst till en dataström med koder av variabel längd. Exempelvis blir det möjligt att påskynda åtkomsten till bilddata som representerar ett godtyckligt område hos en bild som kodats medelst koder av variabel längd. Vidare möjliggör markeringen åtkomst av data som utgör del av data i en dataström innehållande koder av variabel längd utan att avkodning av varje enstaka kod anordnad före nämnda data som åtkomst önskas till är nödvändig. Därigenom kan både tid och processorkapacitet sparas. Samma fördelar gäller användning av markeringarna för indikering av separata dataströmmar som använder samma transport eller lagringsmedium, t ex multiplexade dataströmmar. l en utföringsform utförs nämnda insättning av en separationsmarkör genom insättning av åtminstone 16 på varandra följande binära ettor efter ett specifikt kodord. l en annan utföringsform utförs nämnda insättning av en separationsmarkör genom insättning av 16 på varandra följande binära nollor istället för 16 på varandra följande ettor. Genom användning av en markör som innefattar 16 på varandra följande binära ettor eller nollor kan en sökning efter markören utföras snabbt och effektivt. Anledningen till detta är att det blir möjligt att detektera markören på en byte nivå, dvs 8 bitar. Detekteringen på en byte-nivå är möjlig tack vare att en del av markören, innefattande 16 på varandra följande binära ettor eller nollor, i dataströmmen innefattande koder 10 15 20 25 30 35 531 398 3 av variabel längd alltid kommer att representeras av en byte som endast består av binära ettor eller binära nollor.
Enligt en annan utföringsform är det specifika kodordet det sista kodordet i ett datablock. Genom att låta markören identifiera slutet hos ett och början av ett annat datablock kan åtkomsten till individuella datablock underlättas och utföras väsentligen snabbare.
Enligt ytterligare en annan utföringsform utförs nämnda insättning av en separationsmarkör genom insättning av åtminstone 16 på varandra följande binära ettor mellan två eller flera specifika kodkord. l en utföringsform innefattar metoden för generering av en dataström, vilken dataström är kodad medelst ett förfarande för kodning med koder av variabel längd, kodning av datablock hos en dataström som innefattar ett flertal datablock i enlighet med ett förfarande för kodning med koder av variabel längd samt insättning av en separationsmarkör mellan kodade datablock i dataströmmen.
Såsom nämnts i samband med en av utföringsformerna ovan, underlättar introduktionen av en separationsmarkör partiell åtkomst till en dataström innefattande koder av variabel längd. Exempelvis blir det möjligt att snabba upp åtkomsten till bilddata representerande ett godtyckligt område hos en bild som är kodad medelst ett förfarande för kodning med koder av variabel längd. Dessutom möjliggör markören åtkomst till data som utgör del av nämnda data i en dataström vilken innefattar koder av variabel längd utan att det är nödvändigt att avkoda varje enskild kod anordnad före data som åtkomst önskas till. Därigenom kan både tid och processorkapacitet sparas.
Samma fördelar gäller användandet av markörer för indikering av separata dataströmma som delar samma transport- eller lagringsmedium, t ex multiplexade dataströmmar. Dessutom kan åtkomsten till individuella datablock förenklas och utföras betydligt snabbare genom att låta markören identifiera ett datablock.
Enligt en utföringsform innefattar åtgärden att sätta in separationsmarkörer dessutom insättning av separationsmarkören vid en tidpunkt efter det att ett tidigare block har blivit kodat och före det att ett därpå kodat datablock har lagts till efter det föregående datablocket. i en annan utföringsform utför hårdvara nämnda kodning och insättning av en separationsmarkör. Därigenom påskyndas insättningen av markören. l en utföringsform utförs nämnda insättning av en marköri dataströmmen i samband med kodningen av dataströmmen medelst 10 15 20 25 30 35 531 358 4 förfarandet med koder av variabel längd. Genom insättning av markören i samband med att dataströmmen kodas tili en kod med variabel längd kan kodningen utföras väsentligen snabbare än om markörerna skulle sättas in i dataströmmen genom avkodning av hela strömmen.
Enligt en annan utföringsform utförs kodningen av datablocken i enlighet med en JPEG-standard, varvid varje datablock motsvarar en dataenhet i enlighet med JPEG-standarden. Genom insättningen av markörerna i dataströmmen som innefattar JPEG-datablock åstadkommes snabbare och mindre processorkapacitetskrävande åtkomst till särskilda delar av en bild som representeras av nämnda kodade data. Följaktligen kan operationer på delar av en bild underlättas.
Enligt en annan utföringsform innefattar metoden insättning av åtta binära nollor före separationsmarkören om separationsmarkören innefattar binära ettor, eller insättning av åtta binära ettor före separationsmarkören om separations markören innefattar binära nollor. Nämnda insättning av dessa sekvenser eller vilka andra kända sekvenser som helst före separationsmarkören undertättar identifieringen av den exakta startpunkten i dataströmmen.
Sekvensen som är insatt före separationsmarkören kan alternativt vara en uppsättning av åtta bitar, varvid nämnda uppsättning av åtta bitar innefattar åtminstone en bit som har det binära värdet noll och varvid nämnda åtminstone en bit som har det binära värdet noll är anordnad i en förutbestämd position i nämnda uppsättning av åtta bitar. Dessutom kan den förutbestämda positionen för nämnda åtminstone en bit som har det binära värdet noll vara positionen som den minst signifikanta biten i uppsättningen av åtta bitar.
Enligt ytterligare en annan aspekt av uppfinningen uppnås ovannämnda syfte medelst en metod för hämtning av data som är relaterat till ett särskilt intressant kodord i strömmen med koder av variabel längd.
Metoden innefattar identifiering av positionen för en fördefinierad marköri strömmen med koder av variabel längd, beräkning av en för det särkilt intressanta kodordet startposition i strömmen med koder av variabel längd, samt hämtning av nämnda data som relaterar till nämnda kodord av särskilt intresse.
Genom användning av en fördefinierad markör i en dataström med koder av variabel längd för identifiering av en intressant position i dataströmmen kan åtkomsten av denna position kräva mindre tid och 10 15 20 25 30 35 531 393 5 processorkapacitet än om hela dataströmmen skulle avkodas för finnandet av positionen. Exempelvis blir det möjligt att snabba upp åtkomsten av bilddata som representerar ett godtyckligt område i en bild som kodats medelst kodning som använder koder av variabel längd.
Markören gör det även möjligt att komma åt data som är positionerat i dataströmmen med koder av variabel längd utan att varje enskild kod anordnad före nämnda data som skall kommas åt behöver avkodas.
Samma fördelar gäller användningen av markörer för indikering av separata dataströmmar som delar på samma transport- eller lagringsmedium, tex multiplexade dataströmmar.
Enligt en specifik utföringsform innefattar metoden dessutom identifiering av åtminstone en ytterligare fördefinierad markörs position i strömmen med koder av variabel längd, beräkning av startpositionen för nämnda åtminstone ett ytterligare kodord av särskilt intresse i strömmen med koder av variabel längd, samt hämtning av nämnda data som relaterar till åtminstone ett ytterligare kodord av särskilt intresse. Eftersom ett flertal markörer identifieras och används för avkodning av dataströmmen kan processen kräva ännu mindre tid och processorkapacitet.
I en annan utföringsform innefattar hämtningen av nämnda data som är relaterad till kodordet av särskilt intresse hämtning av den beräknade startpositionen i strömmen för kodordet av särskilt intresse och insättning av denna startposition i en lista av särdrag rörande strömmen med koder av variabel längd. Genom hämtning av det särskilt intressanta kodordets position och lagring av denna position är det möjligt att mappa dataströmmen och på så sätt möjliggöra utförandet av ännu snabbare framtida åtkomster till delar av dataströmmen.
Enligt ytterligare en utföringsforrn innefattar hämtningen av data som är relaterad till det särskilt intressanta kodordet även hämtning av värdet som det specifika kodordet representerar. Denna utföringsform snabbar upp åtkomsten till särskilda värden som sällan används. Exempelvis vid utförandet av operationer på bilder som inte är avsedda att sparas. l en utföringsform är strömmen med koder av variabel längd en komprimerad representation av en bild och kodordet av särskilt intresse är en DC- koefficient från en dataenhet i strömmen med koder av variabel längd.
Därigenom underlättas snabb generering av reducerade versioner av fångade bilder. 10 15 20 25 30 35 531 398 6 l vissa andra utföringsformer motsvarar markörer de markörer som nämnts i samband med den första aspekten av uppfinningen och anordnandet av koder som föregår markören såsom nämnts i samband med den första aspekten av uppfinningen innebär väsentligen identiska fördelar när de används i en metod enligt den andra aspekten av uppfinningen. l ytterligare en utföringsform innefattar identifieringen av den fördefinierade markörens position även identifiering av en förutbestämd symbol som är anordnad i strömmen med koder av variabel längd samt är anordnad sidan om markören, varvid övergången från en av de förutbestämda symbolen eller den förutbestämda markören till den förutbestämda markören eller den förutbestämda symbolen identifieras som markörens position. Genom att implementera denna utföringsform underlättas bestämningen av den fördefinierade markörens position.
Enligt en annan utföringsform är den förutbestämda symbolen en slut på blocket symbol, End Of Block (EOB).
I ytterligare en annan utföringsform baseras beräkningen av startpositionen i strömmen med koder av variabel längd för det specifika kodordet på positionen hos fördefinierade markören och den kända längden hos markören.
Enligt en annan metod innefattar strömmen med koder av variabel längd datablock som innefattar ett flertal kodord, varvid kodordet av särskilt intresse är det första kodordet hos ett datablock och varvid beräkningen av det särskilt intressanta kodordets startposition motsvarar beräkningen av datablockets startposition. Genom att förmå markören att identifiera slutet hos ett och början hos ett annat datablock kan åtkomsten till individuella datablock underlättas och utföras väsentligt mycket snabbare.
Detalierad beskrivning av uppfinningen Föreliggande uppfinning hänför sig till metoder, anordningar och datorprogramprodukter för underiättande av snabb indexering av en datablocksström som kodats medelst förfarande för kodning med koder av variabel längd (VLC) eller förfarande för kodning medelst entropi (entropy coding schemes). Enligt en utföringsform av uppfinningen àstadkommes nämnda snabba indexering genom insättning av en separeringsmarkör för datablock som sätts in mellan på varandra följande datablock anordnade i en dataström. l föreliggande applikation skall en dataström ses som data relaterade till varandra genom tillhörighet till samma fil, genom tillhörighet till 10 15 20 25 30 35 531 893 7 samma datameddelande som sänts via ett nätverk, sådana meddelanden kan vara uppdelade i olika paket eller kan sändas i en kontinuerlig ström beroende på nätverket, genom tillhörighet till samma informationsström, såsom strömmande ljud eller strömmande video eller en kombination av dessa.
Utförlngsformer av uppfinningen är applicerbara på vilken som helst dataströmstyp i vilken datablock kodas medelst ett VLC-förfarande eller ett förfarande med entropi kodning, t ex Huffman-kodning, aritmetisk kodning, etc. Dessa kodingsförfaranden är utformade för komprimering av information och en effekt som användning av dessa kodningsförfaranden är att inte alla symboler, även benämnda kodord, i en kodad dataström har samma kodlängd.
Förfarandet med koderna är emellertid sådant att för att veta var en symbol slutar och en annan börjar mäste alla tidigare symboler i strömmen behandlas. inom ramen för denna ansökan skall en symbol förstås som en enhet ur en uppsättning av enheter, varvid varje enhet har tilldelats en individuell bit-kod. l denna ansökan skall ett datablock förstås som någon data representerande en del av en större dataström, t ex en dei av bilddata, en del av en ljudström, ett rektanguiärt bildblock från en bildström etc. l en utföringsform kan det vara önskvärt att två eller flera kodströmmar med variabel längd blandas enligt mer specifika regler, exempelvis genom växlande anordna n symboler fràn en första signal, m symboler från en andra signal samt k symboler från en tredje signal.
Dessa besitter stora problem vad gäller separering av signalerna vid den mottagande änden eftersom alla symbolerna måste behandlas för att gränserna mellan de olika signalerna skall uppdagas. i en annan utföringsform kan det även vara önskvärt att snabbt finna en specifik symbol, eller exempelvis vart nrte symbol i en ström med koder av variabel längd. Även detta kräver normalt att alla symbolerna behandlas för uppdagning av de önskade symbolernas placering.
I ytterligare en utföringsform är det önskvärt möjliggöra sändning av tvà eller flera signaler genom en enstaka kommunikationskanal. Detta uppnås vanligtvis genom växlande anordna de två eller flera signalerna så att n bitar från den första signalen sänds först, sedan m bitar av den andra signalen, sedan b bitar av den första signalen och så vidare. 10 15 20 25 30 531 398 8 Föreliggande uppfinning riktar sig mot de ovannämnda problemen rörande användning av strömmar med koder av variabel längd genom införande av speciella markörer som kan sättas in i strömmen vilken genererats under processen att koda med variabla längder. Dessa markörer kan användas för att påskynda processen som rör uppdagandet av specifika symboler i en dataström. Därtill inför föreliggande uppfinning en metod för borttagning av nämnda markörer på ett effektivt sätt för skapande eller återskapande av originalströmmen eller -strömmarna.
Exempliflerad användning av nämnda markör: En ström med koder av variabel längd är uppbyggd av symboler som har olika bitlängder. Följande symboler kan exempelvis representeras av följande kodord: A=1O B=110 C=111 D=O0O0 E=00O1 Bitströmmen för följande symboler” CBCDBEDCABCBECB” skulle bli: 1111101110000110 000100001111011011111000 01111110 För att avkoda bitströmmen till orginalsymbolerna måste bitströmmen avkodas från vänster och bitarna läsas ända tills en giltig symbol produceras.
Genom avkodning av hela bitströmmen är det möjligt att förstå var gränserna mellan symbolerna är placerade: clslcl n lßl s l n lclAlBlClBl E lclß 111l11o|111looool11oloøo1loooolml1ol11ol111l11olooo1l111|11o Problemet med detta angreppssätt är att det blir relativt tidskrävande att genomföra i mjukvara, särskilt när många symboler måste behandlas.
Samma bitström skriven i hexadecimal notering svarar mot: FB 8610 F6 F8 7E 10 15 20 25 30 531 398 9 l enlighet med diverse utföringsformer av uppfinningen introduceras bitmarkörer eller symbolsepareringsmarkörer för möjliggörande av snabb uppdagning av en specifik markör.
Bitmarkörerna kan vara skapade som en serie binära ettor, vilken serie har en längd som är en multipel av åtta och minst en längd av16 bitar. Den mest intressanta markören är skapad som en serie av 16 binära ettor, dvs 1111111111111111.
Om vi önskar markera gränser efter symbolen ”A” i strömmen, skulle detta göras genom insättning av 16 binära ettor efter symbolen ”A” i strömmen: cla|cl D |B| E | o ICIAI bifmarker IB 111111Ûh11lÛÛÛO|110i0001\ÛÛOO\111\10| 1111111111111111 |110 c I BI E lc | B 111l11o|ooo1|111l11o Detta resulterar sålunda i bitströmmen: 111110111000011000O1000O1111011111111111111111101111100001111110 Samma bitström skriven med hexadecimal notation är: FB 8610 F7 FF FE F8 7E Nu när vi skrivit sexton binära ettor i strömmen kommer vår markör alltid att resultera i åtminstone en ”FF” byte som aldrig efterföljs av en "0O”, vilket betyder att alla naturligt förekommande "FF"-koder kan markeras med "FFOO" för att indikera att de inte är några markörer, varje annan "FF" förekomst är garanterat en markör enligt flera utföringsformer av uppfinningen.
Detta innebär att vi enkelt kan lokalisera nämnda ”FP-byte i bitströmmen som kan ses som på varandra följande byte och vi kan då genom användning av enkel aritmetisk logik ta bort markören och återställa ursprungsströmmen.
Nämnda flertal byte ända fram till nämnda byte precis före markören kan kopieras direkt, likaväl som nämnda flertal byte en byte efter markören. 10 15 20 25 30 531 398 10 Den återstående uppgiften är då att återställa nämnda byte som delades genom insättningen av de binära ettorna, markerade med en parentes.
FB 8610(F7 FF FE) F8 TE Serien F7 FF FE skriven med binär notation ser ut som följer: 51 l az l Bs 11110111 l 11111111 I 11111110 eller mer generellt: 51 az l es abcde111 11111111 l 11111fgh Operationen för bortagning av det insatta bitarna blir väldigt enkel eftersom den insatta binära ettorna kan ses som bit-masker när de sammanförs: Ursprunglig byte = B1 & B3 = abcdeiti & 11111fgh = abcdefgh Den resulterande strömmen blir: FB 8610(F7&FE)F8 7E = FB 8610 F6 F8 7E Om symbolen före eller efter de sexton ettoma var känd och den innehåller åtminstone en etta, blir uppgiften att finna bit positionen för gränsen mellan de markerade symbolerna, dvs markörens position, trivial. Markörens position är nästa symbols position, när markören tagits bort.
Detta kan åstadkommas genom finnandet av den första nollan vänster om ”FF” och genom kännedom av utseendet hos och/eller koden för symbolen som innehåller nollan och sedan beräkning av symbolens slut.
Ett annat sätt för uppnående av detta är genom användning av en uppslagstabell med 256 inskrivningar för nämnda byte före "F F" där alla möjliga inskrivningar med den kända symbolen skrivs in, med bit-positionen (p) som värde i tabellen.
Exemplet nedan illustrerar uppslagstekniken: 10 15 20 25 30 531 398 11 Antag att den kända symbolen före de sexton ettorna är 10, då finns endast följande möjligheter för Byte 1, där x:n betecknar alla permutationer av binära ettor och binära nollor och p indikerar den första biten hos de sexton ettorna.
Byte1 Byte2 xxxxxx10 p1111111, 64 permutations, pos = 8 xxxxx1 Op 11111111, 32 permutations, pos = 7 xxxx10p1 11111111, 16 permutations, pos = 6 xxx10p11 11111111, 8 permutations, pos = 5 xx10p111 11111111, 4 permutation, pos =4 x10p111111111111, 2 permutation, pos = 3 10p1111111111111,1permutation,pos=2 0p11111111111111,1permutation,pos=1 l exemplet ovan skulle uppslagning av F7(11110111) resultera i pos=6, (111101p11==111101111).
Om symbolen inte är känd, är det möjligt att, exempelvis, sätta in en känd kod (K) som företrädesvis har en total längd på 8 bitar, vilket enkelt tillåter borttagning av den när symbolen som behövs för lokalisering av gränsen mellan de markerade symbolerna är känd.
En väldigt bra kod att använda l detta syfte är "00000000". eftersom den kan användas som en bit-mask under borttagning av markören. dvs: K=0OO0 0000 En pà detta sätt modifierad ström skulle se ut enligt följande: olßlcl o lsl E l olclAl K 111|11ol111looool11o|ooo1loooo1111|1o|0o000o0o bnmarker Islclßl E Icls 1111111111111111111Û1111111Û10ÛÛ111111110 Arrangerade i flertal byte kommer strömmen ha följande utseende: 11111011100001100001000011110000000001111111111111111110 11111000 01111110 och skriven med hexadecimal notation blir detta: 10 15 20 25 30 35 531 398 12 FB 8610(F0 07 FF FE) F8 7E Ur det ovan beskrivna är det möjligt att finna nämnda FF och genom att titta pà nämnda byte före nämnda FF, vilken byte representerar den kända symbolen K, är det möjligt att förstå vare symbolen K slutar och sålunda baklänges beräkna var symbolen K slutar, vilket slut representerar gränsen mellan de markerade symbolerna.
Symbolen K har sin första binära nolla redan i den första positionen, varför symbolen före symbolen K slutar 7 positioner till vänster av den funna binära nollan.
FO 07 FF FE=11110000 00000111 11111111 11111110 Borttagningen kan sedan utföras genom finnande av den första förekomsten av en binär nolla till vänster om nämnda FF, vilken förekomst är markerad med x nedan: 111100000000x1111111111111111110 Efter finnandet av förekomsten tas det följande 24 bitarna, markerade med r, med början hos biten som återfinns 7 bitar till vänster om den funna binära nollan. 11110rrr rrrrrrrr rrrrrrrr rrrrr110 Det är nu möjligt att sammanfoga nämnda fyra byte till en, vilket resulterar i: 1111110=F6 Sålunda blir den fullständiga resulterande grupperingen den ursprungliga strömmen: FB 8610 F6 F8 7E.
Ovanstående borttagning av markören utförs enkelt genom enkel aritmetisk logik, sä som att nämnda K varande nollor kan agera som en mask: 531 393 13 B1 1 az 1 Bs 1 B4 abcdoooo1000001111111111111111161911 B = (B1|B2)&B4 = (FO|07)&FE = F7&FE = FB 5 Ett exempel på användning av nämnda markeringsmetod när två eller flera signaler sänds genom samma datakanal ges nedan.
Beakta de två bitströmmarna nedan och att de skall sändas genom endast en kanal.
|A1Blc|0ls1E|D1A1ClB1 D strömA 1101110111110000111010001100001101111111010000 10 B I E 1 c 1 B 1101000111111110 Skrivet i hexadeclmal notation blir detta: B7 OC 21 7C 18 7E 15 1A1B| E D1c1E1B1A1B1A1C Ströms 110|1101ooo1 00001111|0001111o1101110| 101111 D1A1B D 1A 000o|101110 0000110 Skrivet i hexadecimal notation blir detta: 20 BO 87 1D6B 85 82 Strömmarna alterneras i det aktuella exemplet så att det sänds fem kodord från ström A, sedan åtta kodord från ström B, sedan fem kodord från ström A och så vidare: 25 10 15 20 531 398 14 A B c I D B srrömA 10 110 111 I 0000 110 A B E I D c I E I B IA svömB 10 110 0001 I 0000 111 I0001 I 110 I 10 E D IAI c IB srrömA 0001 0o00I10I111I110 B AcIDIAIBIDIA slrömß 110 10111I00o0I10I110I0000I10 D B E I c I B srrömA 0000 110 0001I111I 110 Detta resulterar i en binär ström: 101101110000110101100001000011100011101000010000 101111101101011100001011000001000001100001111110 Skriven med hexadecimal notation: B7 OD 61 OE 3A 10 BE D7 OB 0418 7E Mottagaren skall nu behandla alla VLC-symboler för att återskapa de två ursprungsströmmarna.
De speciella markörerna introduceras i utföringsformer av uppfinningen för att möjliggöra separering av de två strömmarna på ett effektivare sätt, notera att förfaringssättet med att sätta in markörerna normalt inträffar mycket mer sällan än i det efterföljande exemplet, det behövs sålunda inte så mycket overhead: IAIBIGIDIBI IE srrömA I10I110I111I0000I110I 000000001111111111111111 I0001 DIAICIBI D 0000I10I111I110I 000000001111111111111111 0000 B E IcIB 10 15 20 25 30 531 398 15 11oI 0001 I111I110 B7 OC 01 FF FE 21 7C 01 FF FE 18 7E IAIBIEIDICIEIBIA suönle I10I110I0001I0000I111I0001I110I10 IBIAICID 000000001111111111111111 I 110 I 10 I111 I0000 A I B I D I A I 10| 110I 0000 |10I 000000001111111111111111 BO 87 1D00 7F FF EB 85 82 00 FF FF Nu kan strömmarna förändras vid FF-markörerna genom utmatning av den första strömmen ända till dess att FF påträffas, därefter fortsatt utmatning av den andra strömmen ända till dess att FF påträffas, därefter fortsatt utmatning av den första strömmen till dess att FF påträffas och så vidare, vilket resulterar i följande utsända ström: B7 OC 01 FF B0871D 00 7F FF FE 21 7C 01 FF EB 85 82 00 FF FF FE 18 7E Nu för att mottagaren skall kunna separera strömmarna separerar mottagaren dem vid FF, motsvarande en inverterlng av ovanstående process: Ström A: B7 OC 01 FF Ström B: FE 21 TC 01 FF B0871D 00 7F FF FE 18 7E EB 85 82 00 FF FF Varje ström kan nu behandlas för borttagning av markörerna genom enkel aritmetisk logik: B = (b1Ib2)&b4, Ström A: B7 OC 01 FF FE 217C 01 FF FE 18 7E Ström B: BO 87 1D 00 7F FF EB 85 82 00 FF FF 10 15 20 25 30 35 531 398 16 blir Ström A2 B7 (OC|O1)&FE 21 (7C|O1)&FE 18 7E = B7 OC 21 7C 18 7E Ström B: BO 87 1D (O0l7F)&EB 85 (82|00)&FF = BO 87 1D 6B 85 82 vilket är den ursprungliga strömmen. Delningsoperationen hos den mottagande sidan genomfördes helt och hållet utan några bit-operationer eller kodning medelst variabla längder.
Enligt ytterligare utföringsformer, kan symbolen K vara vilket 7-bits nummer som helst som har en fördefinierad nolla i en fördefinierad position.
Ovannämnda beskrivning kan sträckas ut till upphittande av markörens startposition genom kunskap om den fördefinierade nollans position. Enligt en av utföringsformerna är nollan den minst signifikanta biten och de mest signifikanta sju bitarna kan användas för annan data, exempelvis ett nummer som ökar från noll till 127. På så sätt skulle det bli enkelt att hoppa över upp till 128 markerade kodord enbart genom betraktande av byte strömmen.
Enligt en aspekt av uppfinningen kan den ovan beskrivna generella metoden implementeras för användning vid behandling av JPEG strömmar.
En metod för modifiering av en existerande JPEG kodare med minimala förändringar för skapande av en alternativ ström av data som inte år JPEG anpassad och som innefattar speciella markörer vilka indikerar slutet på en DU beskrivs nedan. Nämnda data som inte är JPEG anpassad kan då analyseras för mappning av början hos varje DU och de icke anpassade markörerna kan tas bort under tiden som nämnda data lagras i ett icke-flyktigt minne.
Vidare bör det noteras att ett kodord är avsett att förstås som en serie av bitar vilka kan avkodas för framställning av en tidigare kodad enhet. Alla kodord är inte av samma längd. Trots detta faktum är de inte avsedda att läsas som en strikt variabel längd representation av en enstaka symbol. Ett exempel på sådana mer komplexa kodord är de som används l en jpeg- ström. Ett JPEG-kodord, så som det definieras här, kodar en serie nollor följt av ett icke-noll nummer till en kombination av en symbol för noll längden (zero run length) tillsammans med storleken för nämnda icke-noll nummer, följt av de minst signifikanta bitarna hos numret baserat på storleken. 10 15 20 25 30 35 531 358 17 Hela serien av bitar som framställts för serien av nollor följt av nämnda icke-noll nummer eller någon av deras delmängder kan sålunda läsas som ett kodord i enlighet med vår definition.
Andra delmängder som skall läsas som ett kodord skulle kunna vara kombinationen av en symbol för noll längden (zero run length) tillsammans med storleken på nämnda icke-noll nummer eller bitarna som representerar de minst signifikanta bitarna.
En JPEG-ström innefattar ett flertal Data Enheter (DU, Data Unit) med 64 koefficienter. Koefficienterna representeras av Huffman kodade symboler av variabel längd, vanligtvis är de sista koefficienterna nollor och en Slut På Blocket (EOB, End Of Block) symbol används för att avsluta en Data Enhet (DU) som har nollori slutet.
För vissa applikationer är det väldigt användbart att veta DU:ns bitpositioner. 1) Direkt visning av en stor JPEG-bild på en liten skärim. Om nämnda DU- position är känd då går det väldigt fort att avkoda endast den första koefficienten/de första koefficientema hos ett block och på så sätt skapa en nerskalad version av ursprungsbilden. 2) Om DU positionerna är kända, är det möjligt att åstadkomma åtkomst på måfà till vilken DU som helst. Om även den absoluta DC-koefiicienten är känd, är det möjligt att avkoda ett område hos en JPEG utan att det är nödvändigt att avkoda de tidigare blocken.
Metoden medger modifiering av en komponent hos kodaren, vilken kan vara belägen i hårdvara, för alstring av markörer som indikerar blockslut (EOB), vilken en mottagande mjukvarukomponent kan använda för finnande av DU positionerna och därefter för enkel borttagning av markörerna. På så sätt medges snabbt upprättande av en DU-positionsdatabas och/eller en nerskalad version av den kodade bilden. Kodningen kan genomföras i hårdvara till följd av hastighetsöveiväganden. Detta är ett enkelt sätt på vilket standard JPEG hårdvara kan låtas modifieras utan behov av extra minne för lagring av startpositionerna hos JPEG-data strömmens data enheter. Detta extra minne skulle behöva vara 2*antalet_dataenheter (16bitar)=> Zlvlpixlar = 6000ODU:er => 120kb minne, vilket är väldigt dyrt, särskilt med tanke på att det företrädesvis rör sig om nollväntetilståndsminne (z:ero wait state memory), vilket upptar en stor klselyta. 10 15 20 25 531 398 18 Följande beskrivning täcker både kodning och avkodning av sådan JPEG-data.
Kodare: 1) Modifiera hårdvara så att EOB alltid skapas. Använd alternativt smarta Q tabeller för säkerställande av att hårdvaran alltid sätter en EOB i slutet. Om en nolla alltid sätts in iden kvantifierade koefficienten nummer 64 måste hårdvaran sätta in en EOB markering. 2) Säkerställ att det för varje FF förekomst i den ursprungliga Huffman- kodade strömmen sätts in en efterföljande "OO". Detta görs redan i en giltig JPEG-ström. 3) Addera en multipel av åtta, men minst 16, binära ettor efter varje DU (eller EOBy Detta kan också utföras genom modifiering av Huffman-tabellerna så att en EOB-symbol modifieras till att innehålla den vanliga 2-4 byte lànga symbolen med efterföljande 12 binära ettor och DC tabellerna är modifierade så att de innehåller fyra ettor före den verkliga DC-symbolen. Sedan tvingas kodaren till att alltid koda EOB:er i bitströmmen. Detta betyder att det alltid kommer att finnas en markör av 16 binära ettor mellan nämnda EOB och nämnda DU.
Som ett exempel på denna utföringsform kan nämnda normala EOB, med avseende pà den ovannämnda justeringarna av nämnda normala EOB, vara såsom visas nedan: Normal EOB: 1010 NyEOB: 1010111111111111 Dessutom kan nämnda normala DC-värden och nämnda nya DC-värden vara relaterade till varandra såsom beskrivs i nedanstående tabell: Normala DC-värden Nya DC-värden 000 1111000 001 1111001 010 1111010 011 1111011 100 1111100 110 1111110 1110 y11111110 10 15 20 25 30 531 398 19 11110 111111110 111110 1111111110 1111110 11111111110 11111110 111111111110 111111110 1111111111110 Detta förfarande resulterar i att, om vi ser till ovanstående exempel och att ett nytt DC-värde är det tredje DC-värdet i ovanstående tabell, EOB kombinerat med nämnda tredje DC-värde motsvarar “1010 1111111111111111 010”.
Följaktligen är resultatet detsamma som när 16 binära ettor adderas efter en EOB.
Ett exempel på addering av 16 binära ettor medelst en utföringsform av metoden ges nedan. Nedanstående exempel år generaliserad till en generell Huffman-kodad ström.
Exemplet använder följande Huffman-tabell: A = 10 (EOB) B = 110 C = 111 D = 0000 E = 0001 En Huffman-kodad sträng av symboler “CBCDBEDCABCBECB” som kodats I hårdvaran resulterar! nedanstående bitström:: 11111011 1000011000010000 11110110 11111000 01111110 FB 8610 F6 F8 7E Den understrukna delen indikerar EOB.
Sedan sätts de 16 binära ettorna in efter nämnda EOB: 111110111000011000010000111fl111111111111111111011111000 01111110 FB 8610 F? FF FE F8 TE 10 15 20 25 30 35 531 398 '20 Nu ges ett exempel på avkodning, avkodningen kan utföras i mjukvara.
Steg 1. Sök efter FF som inte har någon efterföljande "OO". l en JPEG-ström är endast "FFOO" tillåtna, varför de eftersökta inte kan finnas med sådana regler. Detta betyder att det är 100% säkert att nämnda eftersökta FF är vår markör. (Under förutsättning att inga omstartsmarkörer används l JPEG- strömmen) Sök nu ner mot nämnda EOB-symbol (10 i detta exempel), början av nästa DU àterfinnes strax efter nämnda EOB.
Ta bort sexton ettor och kom ihåg bitadressen till nästa DU. 1111101110000110 000100001111011011111000 01111110 FB 8610 F7 FF FE F8 7E FB 8610 F6 F8 7E Såsom kan ses behöver endast en byte modifieras och två byte tas bort, resterande byte är redan korrekt anordnade: FB 8610 F7 FF FE F8 7E FB 8610 F6 F87E Ytterligare bättre om det insatta antalet ettor var 32, då skulle resten vara långordsinrättat (long word alligned), vilket tillåter 32bitars memcpy. Detta behöver ej vara önskvärt alltid eftersom tillägg av ytterligare två byte ökar filstorleken och ökar sålunda bandbreddskravet när data flyttas över bussen eller nätverket.
FB 8610 F7 FF FF FF FE F8 7E FB 86 10 F6 F8 7E Processen i vilken dessa två byte sammanfogas till en är också väldigt trivial: FB 8610 F7 FF FE FB 7E FB 8610 F6 F87E 10 15 20 25 30 35 531 358 21 Operationen som sammanfogar nämnda F7 och nämnda FE är väldigt enkel, den är endast en lokisk och-operation (and-operation) av dem eftersom de insatta 16 ettorna agerar som en bitmask.
Byte1 = F7 Byte2 = FE Sammanfogad Byte = Byte1 & Byte2 Det är lättare att se ovanstående när nedanstående exempel beaktas: abcde1111111111111111fgh Byte1 = abcde111 Byte2 =11111fgh Sammanfogad Byte = abcde111 &11111fgh = abcdefgh De ovannämnda exemplen beskriver en process för snabbt finnande av bit- adresserna till alla DU:er i en ström och beskriver processen för snabb borttagning av markörerna för äterskapande av ursprungsströmmen.
Algoritmen kan modifieras för användning under sökande efter DC- koefficienterna hos varje DU. Sedan, genom att avkoda DC-koefficienterna kan data från varje DC användas för skapande av en 8 gånger mindre version av bilden. Samma sak kan utföras om en fyra gånger mindre representation behövs, där DC-koefficienten och ett antal därpå följande AC-koefficienter avkodas för göra utförandet av en 2x2 lDCT på koefficienterna möjlig. Genom att markörerna indikerar DC~koefñcienternas position blir det möjligt att hoppa över Huffman-avkodning de andra koefficienterna och sålunda tillåta mycket snabbare skalning av bilder till små skärmar i infàngningsögonblicket. Denna implementering kan användas i vilken applikation som helst för att snabba upp processen med att visa en bild av reducerad storlek.
Ett exempel på en sådan applikation är bildinfångningsapplikationer som utnyttjar bildskärmen som sökare. Ett generellt problem när det gäller dessa applikationer är fördröjningen av presentationen av en bild som representerar bildvyn. Med andra ord, när användaren ser den önskade vyn på bildskårmen då kan möjligheten att fånga bilden redan vara förbi. l en applikation som denna kan fördröjningen reduceras väsentligt genom tillhandahållande av en dataström som innefattar markörer indikerande DC-koeffioienternas position 10 15 20 25 30 35 531 398 22 och vilken applikation implementerar en visningsprocess som söker efter markörerna, hämtar informationen till DC-koefficienterna vid markörerna samt genererar en bild av reducerad storlek fràn denna informationen att presenteras på bildskärmen.
Vidare, enligt en aspekt av uppfinningen presenteras ett sätt att modlfiera en JPEG-kodare med minimala förändringar för skapande av en alternativ ström av icke JPEG kompatibel data innefattande speciella markörer som indikerar slutet på en DU. Nämnda icke JPEG kompatibla data kan sedan analyseras för mappning av starten för varje DU och de icke kompatibla markörerna kan tas bort medan lagring av data sker till ett icke-flyktigt minne pågår. l ovannämnda exempel år markören satt till åtminstone 16 binära ettor.
Markören kan likaväl vara satt till åtminstone 16 binära nollor, dvs 000000000OO0O000. Om markören är satt till 16 binära nollor kan den kända koden som satts in före markören vara "11111111". Sålunda inverteras koden 0000O0001111111111111111 till 111111110000000000000000.
Uppfinningen kan implementeras i en digital elektronisk krets eller i datorhårdvara, fastvara (firmware), mjukvara, eller i olika kombinationer av dessa. En anordning enligt uppfinningen kan vara implementerad i en datorprogramsprodukt påtagligt anordnad pà en lagringsenhet, som är läsbar av en maskin, för exekvering av en programmerbar processor. Metodsteg hos uppfinningen kan utföras av en programmerbar processor som exekverar ett program innefattande instruktioner för utförande av uppfinningsenliga funktioner genom utövande av operationer på inmatad data samt genererande av utmatning. Uppfinningen kan fördelaktigt implementeras i ett eller flera datorprogram som är exekverbara på ett programmerbart system innefattande åtminstone en programmerbar processor som är kopplad för mottagning av data och instruktioner från och för sändning av data och instruktioner till ett datalagringssystem, åtminstone en inmatningsanordning samt åtminstone en utmatningsanordning. Varje datorprogram kan vara implementerat i ett högnivå procedurorienterat eller objektorienterat programmeringsspråk, eller i assembler- eller maskinkodsspråk om så önskas. I vilket fall som helst kan språket vara ett kompilerbart eller tolkningsbart språk. Lämpliga processorer innefattar exempelvis både processorer för generella ändamål samt för speciella ändamål. Generellt tar en processor emot instruktioner och data från ett endast läsbart minne och/eller från ett minne som medger slumpmässig åtkomst (RAM). Generellt innefattar en dator en eller flera masslagringsenheter för lagring av datafiler. 10 15 20 25 30 35 531 398 23 Sådana enheter kan innefatta magnetiska skivor, såsom en intern hårddisk och borttagbara diskar, magneto-optiska diskar samt optiska diskar.
Lagringsanordningar som är lämpliga för att konkret förkroppsliga datorprograminstruktioner och data innefattar alla former av icke lättflyktiga minnen. Dessa innefattar exempelvis halvledarminnesanordningar såsom EPROM, EEPROM och flash-minnesanordningar, magnetiska diskar såsom interna hårddiskar och flyttbara diskar, magneto-optiska diskar samt CD-ROM diskar. Vilken som helst av de ovannämnda kan kompletteras med eller införlivas i ASlCzar (Application Specific Integrated Circuits).
För uppnäende av samverkan med en användare kan uppfinningen implementeras på ett datorsystem som har en visningsanordning såsom en bildskärm eller en LCD-skärm för visning av information för användaren.
Användaren kan åstadkomma inmatning till datorsystemet genom diverse inmatningsenheter, såsom ett tangentbord, och en pekanordning, såsom en mus, en styrkula, en mikrofon, en tryckkänslig skärm, en kortläsare, en pappersbandsläsare, en platta, ett skrivstift, en röst- eller handskriftsigenkännare, eller vilken som helst välkänd inmatningsanordning såsom självklart andra datorer. Datorsystemet kan programmeras för åstadkommande av ett grafiskt användargränssnitt genom vilket datorprogram interagerar med användare.
Slutligen kan processorn, om så önskas, kopplas till en dator eller ett telekommunikationsnätverk, exempelvis ett lnternetnätverk eller ett intranetnätverk, genom en nätverkskoppling genom vilken koppling processorn kan ta emot information från nätverket eller kan mata ut information till nätverket under tiden som ovannämnda metodsteg utförs.
Sådan information, vilken ofta representeras som en sekvens av instruktioner som skall exekveras med hjälp av processorn, kan tas emot från och matas ut till nätverket, exempelvis i form av en dator data signal som realiseras med hjälp av en bärvåg. De ovan beskrivna anordningarna och materialen är välbekanta för fackmån inom området för datorhàrdvara och datormjukvara.
Det skall noteras att föreliggande uppfinning använder diverse datorimplementerade operationer som involverar data lagrad i datorsystem.
Dessa operationer innefattar, men är inte begränsade till, sådana som kräver fysisk manipulation av fysiska storheter. Vanligtvis, även om det inte är nödvändigt, tar dessa storheter formen av elektriska eller magnetiska signaler som är möjliga att lagra, överföra, kombinera, jämföra och på andra sätt manipulera. Operationerna som beskrivs häri och som utgör del av 10 15 20 531 398 24 uppfinningen är användbara maskinoperationer. Utförda manipulationer hänvisas ofta till i termer av produktion, identifiering, körnings bestämning, jämföring, exekvering, nedladdning eller detektering. ibland är de lämpligt, av principiella skäl av allmän användning, att hänvisa till dessa elektriska eller magnetiska signaler som bitar, värden, element, variabler, tecken, data eller liknande. Man skall emellertid komma ihåg att alla dessa och liknande termer skall associeras med lämplig fysisk storhet och är bara lämpliga etiketter tillägnade dessa storheter.
Föreliggande uppfinning hänför sig även till en anordning, ett system eller apparat för àstadkommande av ovannämnda operationer. Systemet kan vara särskilt konstruerat för de önskade ändamålen eller så kan det vara en dator för generella ändamål som selektivt aktiveras eller konfigureras medelst ett datorprogram som är lagrat i datorn. Processen som presenterats ovan är inte i sig relaterad till någon särskild dator eller annan datorapparat. Särskilt kan diverse datorer för generella ändamål användas tillsammans med program som är skrivna enligt det som förmedlas häri eller alternativt så kan det vara lämpligare att konstruera ett mer specialiserat datorsystem for utförande av de önskade operationerna.
Ett antal realiseringar av uppfinningen har beskrivits. Det skall emellertid inses att diverse modifieringar kan utföras utan att man för den skull går utanför uppfinningens andemening och omfattning.

Claims (24)

10 15 20 25 30 531 398 25 KRAV
1. Metod för alstring av en dataström som är kodad medelst ett förfarande som använder koder av variabel längd, nämnda metod innefattar: kodning av kodord, för en dataström innefattande ett flertal kodord, i enlighet med ett förfarande som använder koder av variabel längd, och insättning av en separationsmarkör mellan kodade kodord i dataströmmen, k ä n n e t e c k n a d a v attnämndainsättningaven separationsmarkör utförs genom insättning efter ett specifikt kodord av åtminstone 16 efter varandra följande ettor.
2. Metod för alstring av en dataström som är kodad medelst ett förfarande som använder koder av variabel längd, nämnda metod innefattar: kodning av kodord, för en dataström innefattande ett flertal kodord, i enlighet med ett förfarande som använder koder av variabel längd, och insättning av en separationsmarkör mellan kodade kodord i dataströmmen, k ä n n e t e c k n a d av att nämnda insättning av en separationsmarkör utförs genom insättning efter ett specifikt kodord av åtminstone 16 efter varandra följande nollor.
3. Metod enligt något av kraven 1-2, varvid det specifika kodordet är det sista kodordet hos ett datablock.
4. Metod enligt krav 1, varvid nämnda insättning av en separationsmarkör utförs genom insättning mellan tvà eller flera specifika kodord av åtminstone 16 binära ettor.
5. Metod för alstring av en dataström som är kodad medelst ett förfarande som använder koder av variabel längd, nämnda metod innefattar: kodning av datablock från en dataström som innefattar ett flertal datablock i enlighet med ett förfarande som använder koder av variabel längd, och insättning av en separationsmarkör mellan kodade datablocki dataströmmen, k ä n n e t e c k n a d av att separationsmarkören är en binär sekvens av åtminstone 16 efter varandra följande binära ettor. 10 15 20 25 30 531 398 26
6. Metod för alstring av en dataström som är kodad medelst ett förfarande som använder koder av variabel längd, nämnda metod innefattar: kodning av databiock från en dataström som innefattar ett flertal databiock i enlighet med ett förfarande som använder koder av variabel längd,och insättning av en separationsmarkör mellan kodade databiock i dataströmmen, k ä n n e t e c k n a d av att separationsmarkören är en binär sekvens av åtminstone 16 efter varandra följande binära nollor
7. Metod enligt något av kraven 5 eller 6, varvid åtgärden rörande insättning av separationsmarkör vidare innefattar insättning av separationsmarkören vid en tidpunkt efter kodning av att ett block och innan addering av ett nästa databiock till det tidigare datablocket.
8. Metod enligt något av kraven 1-7, varvid nämnda kodning och insättningen av en separationsmarkör utförs av hårdvara.
9. Metod enligt något av kraven 1-8, varvid nämnda insättning av en markör i dataströmmen utförs i samband med kodningen av dataströmmen medelst ett förfarande som använder koder av variabel längd.
10. Metod enligt något av kraven 6-8, varvid kodningen av datablocken utförs i enlighet med en JPEG-standard, och varvid varje databiock motsvarar en dataenhet, DU, i enlighet med JPEG-standarden.
11. Metod enligt krav 5, vidare innefattande insättning av åtta binära nollor före separationsmarkören.
12. Metod enligt krav 5, vidare innefattande insättning av en uppsättning av åtta bitar före separationsmarkören, nämnda uppsättning av åtta bitar innefattar åtminstone en bit med värdet av en binär nolla och nämnda åtminstone en bit med värdet av en binär nolla är anordnad i en förutbestämd position i nämnda uppsättning av åtta bitar.
13. Metod enligt krav 12, varvid den förutbestämda positionen för åtminstone en bit med värdet av en binär nolla är positionen som den minst signifikanta biten i uppsättningen av åtta bitar. 10 15 20 25 30 531 3938 27
14. Metod enligt krav 6, vidare innefattande insättning av åtta binära ettor före separationsmarkören.
15. Metod för hämtning av data relaterad till ett kodord av särskilt intresse inuti en ström med koder av variabel längd, nämnda metod innefattar: identifiering av en fördefinierad markörs position inuti strömmen med koder av variabel längd, varvid markören är en binär sekvens av åtminstone 16 på varandra följande ettor, beräkning av en för kodordet av särskilt intresse startposition inuti strömmen med koder av variabel längd, hämtning av data relaterad till kodordet av särskilt intresse.
16. Metod enligt krav 15, vidare innefattande: identifiering av positionen för åtminstone ytterligare en fördefinierad markör, beräkning av en för nämnda ytterligare kodord av särskilt intresse startposition inuti strömmen med koder av variabel längd, och hämtning av data som är relaterad till åtminstone ytterligare ett kodord av särskilt intresse.
17. Metod enligt något av kraven 15-16, varvid nämnda hämtning av data relaterad till kodordet av särskilt intresse innefattar hämtning av den beräknade startpositionen i dataströmmen för kodordet av särskilt intresse och insättning av denna startposition i en lista med särdrag för strömmen med koder av variabel längd.
18. Metod enligt något av kraven 15-16, varvid nämnda hämtning av data relaterad till kodordet av särskilt intresse innefattar hämtning av värdet som det specifika kodordet representerar.
19. Metod enligt krav 18, varvid strömmen med koder av variabel längd är en komprlmerad representation av en bild och kodordet av intresse är en DC-koefficient för en data enhet, DU, i strömmen med koder av variabel längd.
20. Metod enligt något av kraven 15-19, vidare innefattande borttagning av nämnda fördefinierade rnarkör från strömmen med koder av variabel längd. 10 15 20 531 398 28
21. Metod enligt något av kraven 15-20, varvid identifieringen av den fördefinierade markörens position vidare innefattar identifiering av en förutbestämd symbol anordnad i strömmen med koder av variabel längd sidan om markören och varvid övergången fràn en av de förutbestämda symbolerna eller av de fördefinierade markörerna till den fördefinierade markören eller den förutbestämda symbolen identifieras som markörens position.
22. Metod enligt krav 21, varvid den förutbestämda symbolen är en blockslutssymbol, EOB.
23. Metod enligt något av kraven 21-22. varvid beräkningen av starlpositionen inuti strömmen med koder av variabel längd för det specifika kodordet baseras pà positionen för den fördefinierade markören och markörens kända längd.
24. Metod enligt något av kraven 15-23, varvid strömmen med koder av variabel längd innefattar datablock innefattande ett flertal kodord, varvid kodorden av särskilt intresse är de första kodorden i ett datablock, och därigenom motsvarar beräkningen av startpositionen för kodordet av särskilt intresse beräkningen av nämnda datablocks startposition.
SE0701690A 2007-02-16 2007-07-11 Generering av en dataström och identifiering av positioner inuti en dataström SE531398C2 (sv)

Priority Applications (9)

Application Number Priority Date Filing Date Title
SE0701690A SE531398C2 (sv) 2007-02-16 2007-07-11 Generering av en dataström och identifiering av positioner inuti en dataström
CN2008800050520A CN101647288B (zh) 2007-02-16 2008-02-15 生成数据流并识别在数据流内的位置
EP08712717.1A EP2123053B1 (en) 2007-02-16 2008-02-15 Generating a data stream and identifying positions within a data stream
KR1020097019348A KR101463279B1 (ko) 2007-02-16 2008-02-15 데이터 스트림의 생성 및 데이터 스트림 내부의 위치들의 식별
PCT/SE2008/000125 WO2008100206A1 (en) 2007-02-16 2008-02-15 Generating a data stream and identifying positions within a data stream
JP2009549554A JP5289333B2 (ja) 2007-02-16 2008-02-15 データストリームを生成し、データストリーム内の位置を識別する方法
US12/031,872 US7652595B2 (en) 2007-02-16 2008-02-15 Generating a data stream and identifying positions within a data stream
IL200413A IL200413A0 (en) 2007-02-16 2009-08-13 Generating a data stream and identifying positions within a data stream
US12/644,690 US7847711B2 (en) 2007-02-16 2009-12-22 Generating a data stream and identifying positions within a data stream

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
SE0700446A SE533185C2 (sv) 2007-02-16 2007-02-16 Metod för behandling av en digital bild samt bildrepresentationsformat
US89143907P 2007-02-23 2007-02-23
SE0701690A SE531398C2 (sv) 2007-02-16 2007-07-11 Generering av en dataström och identifiering av positioner inuti en dataström

Publications (2)

Publication Number Publication Date
SE0701690L SE0701690L (sv) 2008-08-17
SE531398C2 true SE531398C2 (sv) 2009-03-24

Family

ID=39690338

Family Applications (1)

Application Number Title Priority Date Filing Date
SE0701690A SE531398C2 (sv) 2007-02-16 2007-07-11 Generering av en dataström och identifiering av positioner inuti en dataström

Country Status (7)

Country Link
US (2) US7652595B2 (sv)
EP (1) EP2123053B1 (sv)
JP (1) JP5289333B2 (sv)
KR (1) KR101463279B1 (sv)
IL (1) IL200413A0 (sv)
SE (1) SE531398C2 (sv)
WO (1) WO2008100206A1 (sv)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9137443B2 (en) 2011-04-26 2015-09-15 Blackberry Limited Fast estimation of binary data length using memory corruption

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7082450B2 (en) 2001-08-30 2006-07-25 Nokia Corporation Implementation of a transform and of a subsequent quantization
SE533185C2 (sv) 2007-02-16 2010-07-13 Scalado Ab Metod för behandling av en digital bild samt bildrepresentationsformat
DE102007061724A1 (de) * 2007-12-20 2009-06-25 Robert Bosch Gmbh Verfahren zum Übertragen von Daten in einem zyklusbasierten Kommunikationssystem
US8639836B2 (en) * 2009-06-29 2014-01-28 International Business Machines Corporation Smart nagling in a TCP connection
US8520958B2 (en) * 2009-12-21 2013-08-27 Stmicroelectronics International N.V. Parallelization of variable length decoding
US8593309B2 (en) * 2011-11-30 2013-11-26 Intel Mobile Communications GmbH Method for efficient decoding of variable length codes
US8824569B2 (en) 2011-12-07 2014-09-02 International Business Machines Corporation High bandwidth decompression of variable length encoded data streams
US9691163B2 (en) 2013-01-07 2017-06-27 Wexenergy Innovations Llc System and method of measuring distances related to an object utilizing ancillary objects
US9845636B2 (en) 2013-01-07 2017-12-19 WexEnergy LLC Frameless supplemental window for fenestration
US10883303B2 (en) 2013-01-07 2021-01-05 WexEnergy LLC Frameless supplemental window for fenestration
US8923650B2 (en) 2013-01-07 2014-12-30 Wexenergy Innovations Llc System and method of measuring distances related to an object
US10196850B2 (en) 2013-01-07 2019-02-05 WexEnergy LLC Frameless supplemental window for fenestration
US9230339B2 (en) 2013-01-07 2016-01-05 Wexenergy Innovations Llc System and method of measuring distances related to an object
US9374106B2 (en) 2013-08-28 2016-06-21 International Business Machines Corporation Efficient context save/restore during hardware decompression of DEFLATE encoded data
US8933824B1 (en) 2013-08-28 2015-01-13 International Business Machines Corporation Hardware decompression of deflate encoded data with multiple blocks
US9800640B2 (en) 2013-10-02 2017-10-24 International Business Machines Corporation Differential encoder with look-ahead synchronization
EP3507720B1 (en) * 2016-08-31 2023-09-27 Pointerra Technologies Pty Ltd Method and system for storing and retrieving multi-dimensional data
BR112019007359A2 (pt) 2016-10-11 2019-07-16 Genomsys Sa método e sistema para acesso seletivo dos dados bioinformáticos armazenados ou transmitidos
SG11201903269QA (en) 2016-10-11 2019-05-30 Genomsys Sa Method and apparatus for the access to bioinformatics data structured in access units
AU2018278119B2 (en) 2017-05-30 2023-04-27 WexEnergy LLC Frameless supplemental window for fenestration

Family Cites Families (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4967196A (en) * 1988-03-31 1990-10-30 Intel Corporation Apparatus for decoding variable-length encoded data
JPH0214620A (ja) * 1988-07-01 1990-01-18 Nec Corp 可変長符号化回路
US5349348A (en) * 1991-08-15 1994-09-20 International Business Machines Corporation Multi-mode data stream generator
JP3197408B2 (ja) * 1993-09-09 2001-08-13 沖電気工業株式会社 マーカ識別用付加ビット処理装置
US5881176A (en) * 1994-09-21 1999-03-09 Ricoh Corporation Compression and decompression with wavelet style and binary style including quantization by device-dependent parser
JPH10341345A (ja) * 1997-06-05 1998-12-22 Kokusai Electric Co Ltd 画像データ処理システム
US6281874B1 (en) * 1998-08-27 2001-08-28 International Business Machines Corporation Method and system for downloading graphic images on the internet
KR100331332B1 (ko) * 1998-11-02 2002-06-20 윤종용 비디오 데이터 송신 장치와 수신장치 및 그 방법
US6381371B1 (en) * 1999-03-17 2002-04-30 Hewlett-Packard Company Method and apparatus for processing image files
US6308257B1 (en) * 1999-04-20 2001-10-23 Intel Corporation Method and apparatus for generating boundary markers for an instruction stream including variable-length instructions
JP2003527655A (ja) 1999-08-02 2003-09-16 アイビューイット・ホールディングズ・インコーポレーテッド 改良されたデジタル画像ファイルを提供するためのシステムおよび方法
AU4710501A (en) * 1999-12-03 2001-06-18 Broadcom Corporation Interspersed training for turbo coded modulation
JP5172062B2 (ja) * 2000-03-07 2013-03-27 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ ビデオを復号する再同期方法
US7146053B1 (en) * 2000-05-10 2006-12-05 International Business Machines Corporation Reordering of compressed data
JP3924420B2 (ja) * 2000-07-11 2007-06-06 Necエレクトロニクス株式会社 画像圧縮装置及びその方法
US6560745B1 (en) * 2000-07-21 2003-05-06 The United States Of America As Represented By The National Security Agency Method of identifying boundary of markerless codeword
US6931661B2 (en) 2000-10-19 2005-08-16 Motorola, Inc. Dynamic image provisioning
JP3661594B2 (ja) * 2001-02-07 2005-06-15 ソニー株式会社 データストリーム生成装置とその方法、可変長符号化データストリーム生成装置とその方法、および、カメラシステム
JP2003198378A (ja) * 2001-12-25 2003-07-11 Canon Inc 復号化装置および復号化方法ならびに記憶媒体、プログラム
US20040086041A1 (en) * 2002-10-30 2004-05-06 Koninklijke Philips Electronics N.V. System and method for advanced data partitioning for robust video transmission
US7277586B2 (en) * 2003-01-15 2007-10-02 Fujifilm Corporation Images combination processing system, images combination processing method, and images combination processing program
US7149370B2 (en) * 2003-03-07 2006-12-12 Nokia Corporation Method and device for image surfing
US7447369B2 (en) * 2003-03-07 2008-11-04 Ricoh Co., Ltd. Communication of compressed digital images
JP2005031482A (ja) * 2003-07-08 2005-02-03 Matsushita Electric Ind Co Ltd 画像伸長表示方法、画像伸長表示装置、および画像伸長表示用プログラム
FR2857811A1 (fr) * 2003-07-16 2005-01-21 St Microelectronics Sa Methode de chiffrage d'un flux audio ou video compresse a tolerance d'erreurs
WO2005032119A1 (de) 2003-09-26 2005-04-07 Thomson Licensing Verfahren zum speichern eines bildes mit vorschaubild
EP2713619A3 (en) * 2003-11-18 2015-01-07 Mobile Imaging in Sweden AB Method for processing a digital image and image representation format
US8237712B2 (en) * 2004-03-18 2012-08-07 Apple Inc. Manipulation of image content using various image representations
US7386777B2 (en) 2004-04-05 2008-06-10 Verigy (Singapore) Pte. Ltd. Systems and methods for processing automatically generated test patterns
US7463775B1 (en) * 2004-05-18 2008-12-09 Adobe Systems Incorporated Estimating compressed storage size of digital data
US7738710B2 (en) * 2004-08-02 2010-06-15 Electronics For Imaging, Inc. Methods and apparatus for communicating and displaying compressed image data
US8121428B2 (en) * 2005-05-31 2012-02-21 Microsoft Corporation Accelerated image rendering
GB2435334A (en) 2006-02-20 2007-08-22 Graeme Roy Smith Compression and decompression of data stream using a linear feedback shift register

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9137443B2 (en) 2011-04-26 2015-09-15 Blackberry Limited Fast estimation of binary data length using memory corruption

Also Published As

Publication number Publication date
US20100098107A1 (en) 2010-04-22
US7847711B2 (en) 2010-12-07
IL200413A0 (en) 2010-04-29
US20100265966A2 (en) 2010-10-21
EP2123053B1 (en) 2019-02-13
SE0701690L (sv) 2008-08-17
JP2010519806A (ja) 2010-06-03
US20080198047A1 (en) 2008-08-21
EP2123053A4 (en) 2013-06-26
KR101463279B1 (ko) 2014-11-19
EP2123053A1 (en) 2009-11-25
US7652595B2 (en) 2010-01-26
JP5289333B2 (ja) 2013-09-11
KR20090115208A (ko) 2009-11-04
WO2008100206A1 (en) 2008-08-21

Similar Documents

Publication Publication Date Title
SE531398C2 (sv) Generering av en dataström och identifiering av positioner inuti en dataström
CN101647288B (zh) 生成数据流并识别在数据流内的位置
CN107111623B (zh) 用于基于词典的压缩的并行历史搜索和编码
KR101900236B1 (ko) 데이터 처리장치 및 방법
JP5498783B2 (ja) データ圧縮の方法
US7882069B2 (en) Tag based backup and recovery
EP2678787A1 (en) Improved encoding and decoding of variable-length data with group formats
US8176157B2 (en) Exceptions grouping
TW200904145A (en) Method for encoding an input image and method and apparatus for displaying an encoded image
US20170185712A1 (en) A method of storing/reconstructing a multitude of sequences in/from a data storage structure
CN111596772B (zh) 一种kvm的分布式***、操控方法及介质
JP2012124679A (ja) 符号化データを復号する装置及び方法
CN103312338B (zh) 用于解码的设备和方法
WO2023173842A1 (zh) Dna编码方法、解码方法、装置、终端设备及介质
CN111986065A (zh) 一种数字水印嵌入方法及装置
TWI337718B (sv)
CN111240682A (zh) 一种指令数据的处理方法及装置、设备、存储介质
JP6362191B1 (ja) 画像処理システム、画像処理装置、画像処理方法およびプログラム
CN116366879A (zh) 一种视频导出方法、装置、设备和存储介质
JPS6028371A (ja) デ−タ格納方法
JP2010258927A (ja) 符号データ処理装置、方法及びプログラム
JP2011164908A (ja) ファイル名管理方法及びファイル名管理装置
JP2007041996A (ja) 文書管理システム、文書管理方法及び文書管理プログラム
CN105405457A (zh) 文件内容读取方法和装置
CN105338417A (zh) 文件导航播放方法和装置