SE511186C2 - Förfarande och anordning för att koda datasekvenser - Google Patents
Förfarande och anordning för att koda datasekvenserInfo
- Publication number
- SE511186C2 SE511186C2 SE9701351A SE9701351A SE511186C2 SE 511186 C2 SE511186 C2 SE 511186C2 SE 9701351 A SE9701351 A SE 9701351A SE 9701351 A SE9701351 A SE 9701351A SE 511186 C2 SE511186 C2 SE 511186C2
- Authority
- SE
- Sweden
- Prior art keywords
- symbol
- difference
- coding
- predicted
- coded
- Prior art date
Links
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion 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/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/3066—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction by means of a mask or a bit-map
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M3/00—Conversion of analogue values to or from differential modulation
- H03M3/04—Differential modulation with several bits, e.g. differential pulse code modulation [DPCM]
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion 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/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/3002—Conversion to or from differential modulation
- H03M7/3048—Conversion to or from one-bit differential modulation only, e.g. delta modulation [DM]
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion 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/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/3059—Digital compression and data reduction techniques where the original information is represented by a subset or similar information, e.g. lossy compression
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion 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/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/3068—Precoding preceding compression, e.g. Burrows-Wheeler transformation
- H03M7/3071—Prediction
- H03M7/3073—Time
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion 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/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/3068—Precoding preceding compression, e.g. Burrows-Wheeler transformation
- H03M7/3079—Context modeling
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/103—Selection of coding mode or of prediction mode
- H04N19/105—Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/164—Feedback from the receiver or from the transmission channel
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
-
- H04N7/36—
Description
511 186
representeras med långa koder vilket leder till en kortare
total längd av den digitala strömmen. Ett sådant schema kallas
förlustfritt eftersom ingen distorsion påförs data genom
komprimeringen och den ursprungliga datasekvensen sålunda
perfekt kan återskapas.
Den andra strategin som används för att åstadkomma ytter-
ligare komprimering tar bort lite av informationen och är känd
som förlustbehäftad datakomprimering. Målet med en sådan
procedur är att göra distorsionen som påförs av det förlust-
behäftade schemat så omärkligt som möjligt. Förlustbehäftad
datakomprimering används i de flesta effektiva ljud-, bild- och
videokomprimeringsalgoritmerna.
En vanlig teknik att koda data kallas bit-plankodning
(BPC). Givet en uppsättning digitala tal i det dynamiska
området R = [0, 2k -1] (t ex, R = [0, 255] svarande mot k = 8-
bitars digitala tal), betraktas talen som k uppsättningar/plan
av binära siffror (bitar) {0,1}. Varje bit-plan svarar mot en
bit i den binära representationen av alla talen. När denna
standard-bit-planuppdelning görs återstår en stark korrelation
mellan bit-plan. Denna korrelation kan utnyttjas i ett
prediktivt kodningsschema, t ex, genom att koda de minst
signifikanta bit-planen med avseende på mer signifikanta bit-
plan. Se t ex M. Rabbani, P. Melnychuck, “Conditioning Context
for the Arith. Coding of Bit-Planes“, IEEE trans. on Signal
Prcc., vol. 40 nr. 1, januari 1992 och US A 5 442 458,
Ett annat sätt är att avkorrelera bit-planer genom att
använda Gray-kodning på alla datavärden innan bit-planuppdel-
ningen görs. Därefter kan bit-planen kodas oberoende med
ungefär samma resultat som för prediktiv kodning men med lägre
komplexitet.
Motivet för en sådan uppdelning är att varje bit-plan kan
kodas effektivt genom att använda binära kompressionstekniker.
Att arbeta i den binära domänen minskar komplexiteten för inom-
plansprediktionsmodellen och högre ordningens prediktion kan
användas. Exempelvis kan i fallet med videokodning ett större
spatiellt område kring elementet tas med i beaktande för
prediktionen.
Vid beaktande av bit-planrepresentation av vanliga
naturliga bildsekvenser är vanligen fallet det att mindre
511 186
variation och mer korrelation finns mellan sampel i de mest
signifikanta bit-planen. Sålunda kan dessa kodas mer effektivt
än de mindre signifikanta bit-planen. Ur denna synvinkel kan en
märkbar ökning i kompressionsförhållandet uppnås genom att
använda förlustbehäftad kodning genom att inte beakta de minst
signifikanta bit-planen.
Komprimering av de mest signifikanta bit-planen tillsammans
med icke användning av de minst signifikanta planen har använts
inom området för kompression av visuella data t ex såsom
beskrivs i den samtidigt oavgjorda internationella patent-
ansökan PCT/SE96/00943 som beskriver en algoritm som är baserad
på en utökad BPC-teknik för videosekvenser.
om alla symboler är lika sannolika kan ingen (förlustfri)
kompression göras. Om man kan hitta en statistisk modell för
att prediktera data från tidigare värden kan emellertid, såsom
beskrivits ovan, en ny sekvens konstrueras av symboler som har
en sannolikhetsfördelning med mindre varians vilken sedan kan
komprimeras. Detta svarar mot en minskning av entropin om
symbolerna behandlas som oberoende.
Betrakta en symbolkälla, S = {s(1),s(2),s(3),...}, som
representeras som heltal i det dynamiska området R (där s(i) är
symbolen som alstras vid tidpunkten i). Varje tal har k-bitar
och det dynamiska området är R = [0, 2k -1]. Således om k=3,
R=[o,7}.
Om dessa symboler är en uppsättning av antingen spatiellt
eller temporärt successiva sampel i en ljud- eller videosekvens
är de korrelerande i den meningen att intilliggande värden ofta
ligger nära varandra.
En vanlig metod för att utnyttja denna korrelation är att
skapa en ny symbolkälla O = {o(1),o(2),o(3),...) ur den
ursprungliga vars sannolikhetsfördelning är mycket mer
koncentrerad kring ett fåtal värden och därför tillåter en
högre komprimering.
En i litteraturen känd lösning är att göra O skillnaden
mellan successiva värden:
°(l) S(1)
o(i) s(i) - S(i-1)
ur vilket ursprungssekvensen perfekt kan återskapas som
s(i) = 0(1) ,
Il
511 186
s(i) = o(i) + s(i-1).
Förfarandet är känt som differentiell pulskodmodulering
(DPCM).
Ett sätt att se på s(i-1) är som en prediktion av värdet på
s(i) och att se på o(i) som prediktionsfelet. Detta är ett
exempel på att utnyttja första ordningens korrelation mellan
data. För en stationär källa kan det allmänna sättet att skapa
O skrivas som:
O(i) = s(i) - s'(i)
där s'(i) betecknar prediktionen som i det allmänna fallet ges
som:
s'(i) = f(s(i-1), s(i-2)....)
där f är funktionen som genererar den nya representationen.
I det följande betecknar s'(i) prediktionen.
I det enkla fallet med en första ordningens korrelation kan
en tvådimensionell grafisk representation av funktionen f
skapas. Ett exempel med en 3-bitars dynamiskt område (0, 7] som
visar DPCM-värdena för varje kombination av s”(i) = s(i-1) och
s(i) visas i tabellen i fig 1.
Observera att varje (sub-)diagonal representerar ett visst
euklidiskt avstånd mellan värdena s(i) och prediktionen s'(i).
Histogrammet för o(i) för typiska källor, t ex ljud-
signaler, är koncentrerade kring noll p g a likheten mellan
successiva sampel och den lägre varianser möjliggör en effektiv
kodning av o(i). Detta medför att s'(i) = s(i-1) är en god
prediktion.
Subtraktionen som används i DPCM bevarar emellertid inte
det dynamiska omrâdet. Om exempelvis källsymbolerna känne-
tecknas av ett 8-bitars dynamiskt område [0,255] kommer ut-
signalen att ha ett dubblerat dynamiskt område [-255, 255]
svarande mot 9-bitars tal. Detta medför en minskning i
kompressionen när, exempelvis, en bit-plankodningsteknik
beaktas (ett bit-plan till måste kodas). För det andra fås en
ökning i komplexiteten ur arkitektursynpunkt. Ett exempel är
att arkitekturen för vanliga digitala system är baserade på
511 186
byte som minsta dataenhet (1 byte = 8 bit); och ökningen i
dynamiskt område kan då kräva en utökning till att använda 2
byte för varje sampel.
Vidare beskrivs i Ying Wang, “A set of Transformations for
Lossless Image Compression“, IEEE Transactions on image
processing, vol. 4, nr 5, maj 1995, sid 677-699, en trans-
formation som bevarar det dynamiska området hos DPCM för ett
stillbildkodningsschema. Denna artikel beaktar också möjlig-
heten att permutera hela symboler i tabell 2a i syfte att koda
symbolerna mer effektivt. Exempel på motsvarande tabeller visas
i fig 3a resp 4a. Det motsvarande antalet “ettor“ som krävs för
att koda varje skillnadssymbol visas i fig 2b, 3b respektive
4b. Antalet ettor betyder i detta fall antalet binära ettor som
används för att koda en specifik symbol i tabellposterna. Om
exempelvis symbolen som skall kodas är “4“ är den binära
representationen för denna symbol “l0O“ vilket innehåller en
binär etta. En minskning av antalet ettor kommer att åstadkomma
en mer effektiv bit-plankodning.
Således visar tabellen i fig 1 de olika kodade värdena för
olika kombinationer av föregående och aktuella symboler för en
datasekvens med ett 3-bit dynamiskt område och kodad enligt den
vanliga DPCM-algoritmen. Om värdet 8 läggs till alla negativa
poster i tabellen i fig 1 åstadkommas tabellen som visas i fig
2a. Tabellen i fig 2 är i många fall att föredra framför
tabellen i fig 1 eftersom den ger samma information utan att
orsaka någon ökning i det dynamiska området. Således betyder
detta i den grafiska representationen att endast tal i det
ursprungliga dynamiska området finns i tabellen 2a.
Vidare är tabellerna 3a och 4a modifieringar av fig 2a som
också visar inverterbara permutativa koder.
Inverterbar i detta fall betyder att tabellen är en grupp-
multiplikationstabell och att sekvensen kan avkodas åt motsatt
håll, dvs sekvensen är reverserbar. Permutativ betyder att
strukturen hos koderna är samma som strukturen som visas i fig
2a men att symbolposterna har permuterats.
Redogörelse för uppfinningen
Det är ett syfte med föreliggande uppfinning att förbättra
kompressionen som är möjlig att uppnå enligt teknikens stånd-
punkt och det är också ett syfte att använda sådana scheman för
511 186
kompression av video- och ljudsekvenser.
Dessa syften och andra uppnås medelst ett allmänt för-
farande som utnyttjar korrelationen som finns mellan digitala
värden samtidigt som det dynamiska området bibehålls. För-
farandet baseras på insikten att de kodningsscheman som be-
skrivs i teknikens ståndpunkt inte tar bort all redundans från
kodningen. Sålunda finns det fortfarande reversibla för-
hållanden mellan konsekutiva sampel.
Således kan en mycket mer flexibel kodningsalgoritm uppnås
genom att skapa differentiella kodningsalgoritmer som inte på
något sätt är reversibla. Flexibiliteten används för att ut-
forma kodningsalgoritmen på ett sådant sätt att utsignalen blir
möjlig att komprimera vid ett så högt kompressionsförhållande
som möjligt.
Enligt en annan aspekt av uppfinningen används den
differentiella kodningsalgoritmen i en förlustbehäftad miljö. I
vissa tillämpningar behöver ursprungssekvensen inte vara
perfekt rekonstruerad i syfte att uppnå ett acceptabelt
resultat.
Kortfattad beskrivning av ritningarna
Föreliggande uppfinning kommer nu att beskrivas mer i
detalj med hjälp av ett icke begränsande utföringsexempel och
med hänvisning till de bilagda ritningarna i vilka:
- Fig 1 visar en DPCM-tabell enligt teknikens ståndpunkt.
- Fig 2a och 2b visar DPCM-tabeller enligt teknikens stånd-
punkt som bevarar det dynamiska området och motsvarande antal
ettor som behövs.
- Fig 3a och 3b visar tabeller enligt teknikens ståndpunkt
liknande de som visas i fig 2a och 2b.
- Fig 4a och 4b visar tabeller enligt teknikens ståndpunkt
liknande de som visas i fig 2a och 2b.
- Fig 5 visar en tabell som används för differentiell kod-
ning.
- Fig 6a och 6b visar tabeller som används för differentiell
kodning och minimering av antalet ettor.
- Fig 7a och 7b visar exempel på tabeller med en icke
inverterbar kod.
- Fig 8a och 8b är tabeller som liknar tabellerna i fig 7a
och 7b i vilka klusterbildningen maximerats.
7 511 186
- Fig 9a och 9b är tabeller som liknar de som visats i fig 8a
och 8b men som är asymmetriska.
- Fig 10 är en tabell som liknar tabellen i fig 7.
- Fig ll är den inversa tabellen av fig 10.
- Fig 12 är en tabell som liknar den som visas i fig 10.
- Fig 13 är ett exempel på en tabell som har dynamiskt
ökande/minskande nollalstring.
Beskrivning av föredragna utföringsformer
Allmänt finns det många olika sätt att bilda inverterbara
permutativa förhållanden. För det fall då syftet är att åstad-
komma en utström som är komprimerad så mycket som möjligt bör
emellertid tabellen väljas på ett sådant sätt så att utströmmen
0 optimeras med avseende på procedurens mål. För att exempelvis
avkorrelera bit-planen hos 0 kan man Gray-koda posterna i
tabellen i fig 2a vilket ger tabellen i fig 5.
En sådan tabell åstadkommer en mycket bättre utström ur
kompressionssynpunkt och är därför att föredra framför
tabellerna som visas i fig 2a, 3a och 4a.
I fig 6a visas en ännu bättre utföringsform där tabellen är
en inverterbar icke permutativ kod. Tabellen i fig 6a är mycket
bättre i den bemärkelsen att små skillnader kodas med ett
minimum av antal ettor, se fig 6b, vilket sålunda ökar
kompressionsförhållandet. Egenskapen som utnyttjas i detta fall
är att den statistiska fördelningsfunktionen för paret [s(i),
s'(i)] är starkt koncentrerad kring huvuddiagonalen s(i) =
s'(i) med avtagande sannolikhet för subdiagonalerna. Detta
utnyttjande är möjligt tack vare koden som blir resultatet från
det icke permutativa sätt på vilket koden är utformad.
Således består inte de olika subdiagonalerna i tabellen 6a
av identiska symboler till skillnad från tabellerna i fig 2-5.
Denna egenskap, dvs att ha olika symboler längs respektive
subdiagonal, möjliggör en mer flexibel och optimal kodning av
skillnadssymbolerna.
Tabellerna i fig 2a-Ga svarar mot “gruppmultiplikations-
tabeller“ och är inverterbara eftersom varje tal endast före-
kommer en gång i varje rad och kolumn. Perfekt rekonstruktion
av S från O är därför garanterad. Tabellerna 2-5 är vidare
permutativa, dvs de har identiska symboler längs respektive
subdiagonaler medan tabellen 6a är icke permutativ, dvs några
511 186
av symbolerna längs en viss subdiagnonal skiljer sig från
varandra. Denna inverterbara egenskap kan vara fördelaktig i
några tillämpningar.
I datakompression är emellertid målet att komprimera en
sekvens av datasymboler till ett minimum. Beroende på kraven
hos en viss tillämpning kan kompressionen antingen vara
förlustfri eller behäftad med förluster. I båda dessa fall har
den differentiella kodningen enligt teknikens ståndpunkt,
exempelvis utformad enligt tabellerna i fig 1-4, inte visat sig
vara optimal.
Resultaten som åstadkommes av kodningen enligt teknikerna i
tabellerna 5 och 6a kan i detta avseende också ytterligare
förbättras.
Detta har visat sig bero på det faktum att dessa tabeller
ger mer information än som är nödvändigt, dvs förfarandena som
beskrivs i samband med fig 1-4 och också i samband med fig 5
och 6a tar inte bort all redundant information. Således har det
visat sig att givet o(i) kan man återskapa s(i) från s(i-1) men
man kan också återskapa s(i-1) från s(i). Således kan man
antingen utföra framåt- eller bakåtavkodning av symbolströmmen,
dvs en inverterbar tabell svarar mot reversibel avkodning.
Eftersom i normala kodningstillämpningar endast framåt-
rekonstruktion av s(i) från s(i-1) och o(i) används är grupp-
multiplikationsstrukturen hos tabellerna som visas i fig 2a-6a
onödigt begränsad och innehåller information som inte behövs.
Således, givet att s(i-1) redan har återskapats när
rekonstruktionen av s(i) börjar är det enda villkoret på o(i)-
tabellen att varje tal i området R endast skall finnas exakt en
gång i varje kolumn. Med andra ord bör varje kolumn vara en
permutation av R. Det finns ingen begränsning för fördelningen
av talen i varje rad som det finns för en vanlig grupp-
multiplikationstabell. Ett exempel på en tabell utformad enligt
detta förfarande visas i fig 7a.
Detta mest allmänna förhållande som garanterad perfekt
rekonstruktion av ursprungssignaler kan således skrivas som:
Û(i) = fs' (i)(s(í))
där f§(i) (x) representerar en permutation av R.
För enkelhetens skull användas endast ett prediktionsvärde
s'(i) i argumentet ovan. Förfarandet kan emellertid enkelt
511 186
generaliseras till mer komplexa fall genom att välja att
permutationen beror på två, tre etc prediktionsvärden.
Motsvarande grafiska representation skulle då vara tre-, fyr-
dimensionell etc.
Förfarandet är allmänt och kan användas under många olika
förhållanden. Begränsningen att varje kolumn är en permutation
ger stor frihet för att justera kodningen för en viss
tillämpning. Fallet med bit-plankodning är särskilt intressant.
Förfarandet kan t ex användas i fallet med kodning av bit-
plankodade videosekvenser. Den ursprungliga dataströmmen är då
en sekvens av matriser av digitala tal där varje matris svarar
mot en bild och där de digitala talen sträcker sig från 0-7. I
detta exempel beaktas den temporala korrelationen och de
konsekutiva digitala värdena s(l),s(2),... hos ett särskilt
pixel vid tidpunkterna 1, 2,... betraktas som källan S. För
vanliga videosekvenser (utan scenändringar) är konsekutiva
sampels mycket korrelerade och den absoluta skillnaden beloppet
av [s(i)-s(i-1)] är starkt koncentrerad kring noll. De flesta
dataströmmar som härrör från sampling av en kontinuerlig signal
visar liknande korrelation. Detta är t ex fallet för den
spatiala korrelationen inom en bild i bildsekvensen och för en
vanlig ljudström. Som ett alternativ kan man använda prediktion
i planet s”(i).
Om man vill koda sekvensen genom att använda en bit-plan-
kodningsteknik såsom i fallet med den citerade internationella
patentansökan PCT/SE96/00943 kan en tabell av den typen som
visas i fig 7a utformas i syfte att maximera kompressions-
förhållandet. Olika strategier kan då användas. En strategi är
att alstra en signal O så att det totala antalet ettor i bit-
planet blir så litet som möjligt samtidigt som korrelationen
mellan bit-planen görs liten.
Om s'(i) är en god prediktion är paret (s(i), s'(i)) starkt
koncentrerad kring huvuddiagonalen s(i) = s'(i) med avtagande
sannolikhet för subdiagonalerna. Detta är också fallet i detta
exempel där s'(i) = s(i-1). I syfte att minimera det totala
antalet ettor placeras kodtalen som har det minsta antalet
ettor i sin binära representation närmast diagonalen.
Ett exempel på en möjlig tabell visas i fig 7a. Motsvarande
antal ettor visas i tabellen i fig 7b.
511 186 1°
Detta garanterar en ganska lyckad kodning av bit-planen men
man måste i allmänhet justera den använda transformationen som
använts tillsammans med en faktiska bit-plankodningsalgoritmen.
Vidare visar fig 8a ett exempel på en icke inverterbar kod
som minimerar antalet ettor och maximerar storleken på kluster
med ettor i bit-planen såsom syns i fig 8b. Tabellen i fig 8a
är inte längre en gruppmultiplikationstabell eftersom posterna
upprepas inom de individuella raderna.
I fig 9a som liknar fig Sa är symmetrin av ettor längs
diagonalen borttagen, se fig 9b, vilket är fördelaktigt i vissa
tillämpningar.
Förfarandet som beskrivs häri kan också användas som ett
förfarande för att åstadkomma en effektiv förlustbehäftad
kompression av data.
Således användes förfarandet ovan som ett förlustfritt
schema. Detta betyder att en perfekt rekonstruktion av indata-
sekvensen är garanterad. För att åstadkomma ännu högre
kompression kan förfarandet generaliseras till det förlust-
behäftade fallet genom att ta bort villkoret att varje kolumn
måste vara en permutation i området R.
I det förlustbehäftade fallet tillåts varje kolumn att
bestå av vilken delmängd som helst av R. Ett intressant fall är
när subdiagonalen i tabellen i fig 7a som svarar mot beloppet
[s(i) - s'(i)] = 1 sätts till “0“. Den resulterande tabellen
visas i tabellen i fig 10.
Ett viktigt steg när man använder en förlustbehäftad tabell
såsom den som visas i fig 10 är att det rekonstruerade värde av
s'(i), betecknat gllil, skall användas i stället för s'(i) i
syfte att undvika drift hos det rekonstruerade värdet med
avseende på s(i).
I fallet med en förlustbehäftad transformationstabell är
inte den inversa tabellen otvetydigt definierad utan måste
specificeras explicivt. Man måste välja ett rekonstruerat värde
för varje grupp av degenererade värden i varje kolumn. I fallet
med tabellen i fig 10 kan man använda inversen hos den förlust-
fria tabellen i fig 7a vilket betyder att diagonalen återskapas
perfekt. Denna inversa tabell visas i tabellen i fig 11. Den
enda skillnaden i det förlustbehäftade fallet är att vissa
kombinationer av s'(i) och o(i) aldrig kommer att inträffa och
ll
511 186
är irrelevanta för det förlustbehäftade fallet.
För att illustrera det förlustbehäftade fallet kan man
betrakta sampelsekvensen
s(i): 2 4 5 7 2 3 5 3
som kommer att återskapas som, om tabellen i fig 6 används:
s(i): 24472253
Detta förfarande medger stor frihet i utformningen av
tabeller och kan leda till en stor ökning i kompressions-
förhållandet. I det specifika fallet som beskrivits ovan där
den absoluta skillnaden beloppet av [s(i) - s(i-1)] används som
är starkt koncentrerad kring noll leder användandet av tabellen
i fig 10 till en stor minskning i det totala antalet ettor.
Ur kvalitativ synpunkt kan kvalitetsminskningen som påförs
av detta särskilda förlustbehäftade schema effektivt styras.
Således återskapas de korrekta värdena när felet stiger över
ett tröskelvärde. Särskilt används i schemat som visas i
tabellen i fig 6a ett tröskelvärde på 1.
Exempelvis leder i fallet som beskrivits ovan i samband med
videokodningstillämpning där s'(i) och s(i) är pixelvärden i
samma position i successiva bilder förfarandet till en förlust
av information i vissa pixel vid vissa ögonblick så att en
distorsion ur visuell synpunkt införs.
Förluster införs emellertid endast längs subdiagonalerna.
Därför är kvalitetsförlusten begränsad och inte alltför stör-
ande ur visuell synpunkt.
Kompressionen kan ökas ytterligare med avseende på fallet i
fig 10 genom att modifiera tabellen på det sätt som visas i fig
12. I fig 12 svarar ingen symbol mot tre ettor. Detta åstad-
kommeš genom att byta ut symbolen som svarar mot tre ettor mot
en annan symbol vilket är möjligt i detta fall eftersom symbol-
området har minskats tack vare införandet av förlustbehäftad
kodning.
En annan fördel med det förlustbehäftade schemat är att det
tillåter införande av bit-hastighetsstyrning. Detta åstadkommes
genom att använda förfarandet som ett mer flexibelt schema där
inte hela subdiagonaler nollställs utan endast vissa element
däri. Antalet nollor i subdiagonalen ökas eller minskas
dynamiskt i enlighet med kravet på kvalitet/kompression. En
sådan teknik visas i fig 13 när nollor i de första sub-
511 186 12
diagonalerna delvis införts, jämför med fig 7a och 12.
På detta sätt kan en steglös försämring av kvaliteten
åstadkommas när lasten på den använda kanalen ökar/minskar.
Sålunda, kan förfarandet som beskrivs i samband med fig 13
åstadkomma en mycket effektiv kodning som kan anpassas till den
för närvarande tillgängliga bandbreddennär kanalen över vilken
data överförs för annan trafik.
En ytterligare tillämpning är att jämna ut signalen genom
att införa ett maximalt steg i tabellen som bevarar det
dynamiska området så att alla skillnader större än, t ex 5, ges
värdet 5.
Förfarandet som beskrivs häri kan utnyttja korrelationen i
en ström av digitala tal utan att öka talens dynamiska område.
De tjänar därför som ett effektivt första steg i kodning av
digitala data.
Vidare är förfarandet mycket allmänt och kan anpassas till
mycket olika strategier och tillämpningar. Särskilt har det
visat sig vara mycket effektivt i samband med entropi-
kodningsschemat såsom de som baseras på bit-plankodning där
möjligheten att utnyttja korrelationen mellan elementen utan
att öka det dynamiska området är viktigt.
Förfarandet är också möjligt att använda både i ett
förlustfritt fall samt i ett förlustbehäftat fall varvid för-
farandet ger stor möjlighet att utforma optimala tabeller för
en viss tillämpning.
Under förlustbehäftade förhållanden tillåter förfarandet en
mycket hög kompression. De förlustbehäftade tabellerna kan
också användas för att åstadkomma bit-hastighetsstyrning samt
för att utjämna signalen. Det kan vidare användas för on-line-
finjustering av kodningsschemat.
Ur beräkningsmässig synpunkt är förfarandet mycket billigt.
Det kan implementeras genom en enkel uppslagstabell.
Förfarandet kan användas'för att koda vilken ström av
digitala tal som helst som har ett fixt område. Det är särskilt
användbart för att koda ljud-, bild- och videoströmmar där en
kontinuerlig signal har digitaliserats och där stor korrelation
finns mellan näraliggande sampel eller i andra fall där en
effektiv prediktion kan åstadkommas. Det kan enkelt
generaliseras bortom första ordningens korrelationer genom att
13
511 186
införa flerdimensionella upps lagstabel ler .
Claims (16)
1. Förfarande för förlustfri eller förlustbehäftad kodning av en sekvens av datasymboler som skall överföras eller lagras, kännetecknat av att varje symbol kodas med en dynamisk områdesbevarande skillnadssymbol som representerar en skillnad mellan en aktuell symbol och en predikterad symbol så att den kodade symbolen eller estimat av den kodade symbolen kan bestämmas genom att ha kännedom av den predikterade symbolen och skillnadssymbolen och att nämnda skillnadssymbol kodas på ett icke reverserbart sätt så att en föregående symbol inte unikt kan bestämmas genom den kodade symbolen och skillnads- symbolen.
2. Förfarande enligt krav 1, kännetecknat av att skillnadssymboler som är associerade med små prediktionsfel representeras med ett litet antal binära ettor i förhållande till stora prediktionsfel.
3. Förfarande enligt krav 1 eller 2, för det fall då kodningen är förlustbehäftad, kännetecknat av att den predikterade symbolen används som korrekt aktuell symbol, om skillnaden mellan den predikterade symbolen och den aktuella symbolen är mindre än ett första förutbestämt värde.
4. Förfarande enligt något av kraven 1-3, i fallet då kodningen är förlustbehäftad, kännetecknat av att symbolen som är associerad med det andra förutbestämda värdet används som skillnadssymbol, om skillnaden mellan den predikterade symbolen och den aktuella symbolen är större än ett andra förutbestämt värde.
5. Förfarande enligt något av kraven 3-4, kännetecknat av att det första och/eller det andra förutbestämda värdet ändras i enlighet med den momentant tillgängliga bandbredden hos en kanal som används för överföring av skillnadssymbolerna.
6. Förfarande enligt något av kraven 1-5, kännetecknat av att den predikterade symbolen åstadkommes genom att använda den föregående avkodade symbolen.
7. Kodningsanordning för förlustfri eller förlustbehäftad kodning av en sekvens av datasymboler, som skall överföras eller lagras, kännetecknad av - organ för att koda varje symbol med en dynamisk områdes- bevarande skillnadssymbol som representerar en skillnad mellan 15 511 186 en aktuell symbol och en predikterad symbol så att den kodade symbolen eller ett estimat av den kodade symbolen kan bestämmas med kännedom om den predikterade symbolen och skillnadssymbolen och - organ för att koda nämnda skillnadssymbol på ett icke reversibelt sätt så att en föregående symbol inte unikt kan bestämmas av den kodade symbolen och skillnadssymbolen.
8. Anordning enligt krav 7, kännetecknad av - organ för att koda skillnadssymbolerna som är associerade med små prediktionsfelen med få binära ettor i förhållande till skillnadssymbolerna som är_associerade med stora prediktions- fel.
9. Anordning enligt krav 7 eller 8, i fallet då kodningen är förlustbehäftad, kännetecknad av - organ för att koda den aktuella symbolen som den predikterade symbolen om skillnaden mellan den predikterade symbolen och den aktuella symbolen är mindre än ett första förutbestämt värde.
10. Anordning enligt något av kraven 7-9, i fallet då kodningen är förlustbehäftad, kännetecknad av - organ för att koda den aktuella symbolen som skillnads- symbolen associerad med ett andra förutbestämt värde om skillnaden mellan den predikterade symbolen och den aktuella symbolen är större än ett andra förutbestämt värde.
11. Anordning enligt något av kraven 9-10, kännetecknad av - organ för att ändra det första och/eller det andra förut- bestämda värdet i enlighet med den momentant tillgängliga band- bredden på en kanal som används för att överföra skillnads- symbolerna.
12. Anordning enligt något av kraven 7-11, kännetecknad av - organ för att åstadkomma den predikterade symbolen genom att använda den föregående avkodade symbolen.
13. Förfarande för förlustfri eller förlustbehäftad kodning av en sekvens av datasymboler som skall överföras eller lagras, kännetecknat av att varje symbol kodas med en dynamiskt områdesbevarande skillnadssymbol som representerar en skillnad mellan en aktuell symbol och en predikterad symbol så att den kodade symbolen eller ett estimat av den kodade symbolen kan bestämmas med kännedom om den predikterade symbolen och av 511 186 16 skillnadssymbolen och att nämnda skillnadssymbol kodas med hjälp av en icke permutativ gruppmultiplikationstabell.
14. Förfarande enligt krav 13, kännetecknat av att den predikterade symbolen åstadkommes genom att använda den före- gående avkodade symbolen.
15. Anordning för förlustfri eller förlustbehäftad kodning av en sekvens av datasymboler som skall överföras eller lagras, kännetecknad av - organ för att koda varje symbol med en dynamiskt områdes- bevarande skillnadssymbol representerande en skillnad mellan en aktuell symbol och en predikterad symbol så att den kodade symbolen eller ett estimat av den kodade symbolen kan bestämmas med kännedom av den predikterade symbolen och av skillnads- symbolen och - organ för att koda nämnda skillnadssymbol med hjälp av en icke permutativ gruppmultiplikatíonstabell.
16. Anordning enligt krav 15, kännetecknad av - organ för att åstadkomma den predikterade symbolen genom att använda den föregående avkodade symbolen.
Priority Applications (8)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
SE9701351A SE511186C2 (sv) | 1997-04-11 | 1997-04-11 | Förfarande och anordning för att koda datasekvenser |
JP54380998A JP2001520822A (ja) | 1997-04-11 | 1998-04-08 | データ系列符号化の方法と装置 |
PCT/SE1998/000652 WO1998047234A1 (en) | 1997-04-11 | 1998-04-08 | A method and a device for coding data sequences |
CN98804099.9A CN1252187A (zh) | 1997-04-11 | 1998-04-08 | 用于编码数据序列的一种方法和一种设备 |
EP98917870A EP1016221A1 (en) | 1997-04-11 | 1998-04-08 | A method and a device for coding data sequences |
CA002286184A CA2286184A1 (en) | 1997-04-11 | 1998-04-08 | A method and a device for coding data sequences |
AU70919/98A AU740091B2 (en) | 1997-04-11 | 1998-04-08 | A method and a device for coding data sequences |
US09/413,213 US6317520B1 (en) | 1997-04-11 | 1999-10-05 | Non-reversible differential predictive compression using lossy or lossless tables |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
SE9701351A SE511186C2 (sv) | 1997-04-11 | 1997-04-11 | Förfarande och anordning för att koda datasekvenser |
Publications (3)
Publication Number | Publication Date |
---|---|
SE9701351D0 SE9701351D0 (sv) | 1997-04-11 |
SE9701351L SE9701351L (sv) | 1998-10-12 |
SE511186C2 true SE511186C2 (sv) | 1999-08-16 |
Family
ID=20406538
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
SE9701351A SE511186C2 (sv) | 1997-04-11 | 1997-04-11 | Förfarande och anordning för att koda datasekvenser |
Country Status (8)
Country | Link |
---|---|
US (1) | US6317520B1 (sv) |
EP (1) | EP1016221A1 (sv) |
JP (1) | JP2001520822A (sv) |
CN (1) | CN1252187A (sv) |
AU (1) | AU740091B2 (sv) |
CA (1) | CA2286184A1 (sv) |
SE (1) | SE511186C2 (sv) |
WO (1) | WO1998047234A1 (sv) |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20030039445A (ko) * | 2001-11-13 | 2003-05-22 | 삼성전자주식회사 | 영상 신호 송수신 장치 |
KR100422252B1 (ko) * | 2001-12-20 | 2004-03-11 | 삼성전자주식회사 | 씬 클라이언트 네트워크 시스템과 그 네트워크 시스템의데이터 전송 방법 |
US7336720B2 (en) | 2002-09-27 | 2008-02-26 | Vanguard Software Solutions, Inc. | Real-time video coding/decoding |
US7684629B2 (en) | 2004-01-26 | 2010-03-23 | Fujifilm Corporation | Data compression apparatus, and data compression program storage medium |
US7689051B2 (en) * | 2004-04-15 | 2010-03-30 | Microsoft Corporation | Predictive lossless coding of images and video |
US7183950B2 (en) | 2005-02-07 | 2007-02-27 | Fuji Photo Film Co., Ltd. | Data compression apparatus, and data compression program storage medium |
US7826670B2 (en) | 2005-06-15 | 2010-11-02 | Fujifilm Corporation | Data compression apparatus and data compression program storage medium |
JP4633576B2 (ja) | 2005-08-24 | 2011-02-16 | 富士フイルム株式会社 | データ圧縮装置およびデータ圧縮プログラム |
KR101237413B1 (ko) * | 2005-12-07 | 2013-02-26 | 삼성전자주식회사 | 오디오 신호의 부호화 및 복호화 방법, 오디오 신호의부호화 및 복호화 장치 |
US8023562B2 (en) | 2007-09-07 | 2011-09-20 | Vanguard Software Solutions, Inc. | Real-time video coding/decoding |
US8526488B2 (en) | 2010-02-09 | 2013-09-03 | Vanguard Software Solutions, Inc. | Video sequence encoding system and algorithms |
EP2550529B1 (en) | 2010-03-23 | 2021-11-17 | Iogenetics, LLC. | Bioinformatic processes for determination of peptide binding |
US8693551B2 (en) | 2011-11-16 | 2014-04-08 | Vanguard Software Solutions, Inc. | Optimal angular intra prediction for block-based video coding |
US9106922B2 (en) | 2012-12-19 | 2015-08-11 | Vanguard Software Solutions, Inc. | Motion estimation engine for video encoding |
US10277247B1 (en) * | 2018-04-11 | 2019-04-30 | Bae Systems Information And Electronic Systems Integration Inc. | Stateful compression scheme for efficient packing of kinematic data |
US11431350B1 (en) * | 2021-02-05 | 2022-08-30 | Cox Communications, Inc. | Lossy statistical data compression |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6327001A (ja) | 1986-07-18 | 1988-02-04 | 松下電器産業株式会社 | 薄膜サ−ミスタ |
JP2829954B2 (ja) * | 1987-08-22 | 1998-12-02 | ソニー株式会社 | 画像信号の高能率符号化装置及び方法 |
US4791483A (en) * | 1987-11-20 | 1988-12-13 | The Grass Valley Group, Inc. | Adaptive differential pulse code modulation video encoder |
IT1272417B (it) * | 1993-04-29 | 1997-06-23 | Alcatel Italia | Metodo per la codifica e decodifica differenziale e relativi circuiti |
JPH06327001A (ja) * | 1993-05-11 | 1994-11-25 | Olympus Optical Co Ltd | 画像処理装置 |
DE69535800D1 (de) * | 1994-06-08 | 2008-09-11 | Matsushita Electric Ind Co Ltd | Bildumsetzungsvorrichtung |
JPH0863198A (ja) * | 1994-08-22 | 1996-03-08 | Nec Corp | ベクトル量子化器 |
JPH08125868A (ja) * | 1994-10-19 | 1996-05-17 | Canon Inc | 画像処理装置及び方法 |
AU6376296A (en) * | 1995-07-11 | 1997-02-10 | Telefonaktiebolaget Lm Ericsson (Publ) | Video coding |
-
1997
- 1997-04-11 SE SE9701351A patent/SE511186C2/sv not_active IP Right Cessation
-
1998
- 1998-04-08 JP JP54380998A patent/JP2001520822A/ja active Pending
- 1998-04-08 EP EP98917870A patent/EP1016221A1/en not_active Withdrawn
- 1998-04-08 CA CA002286184A patent/CA2286184A1/en not_active Abandoned
- 1998-04-08 WO PCT/SE1998/000652 patent/WO1998047234A1/en not_active Application Discontinuation
- 1998-04-08 AU AU70919/98A patent/AU740091B2/en not_active Ceased
- 1998-04-08 CN CN98804099.9A patent/CN1252187A/zh active Pending
-
1999
- 1999-10-05 US US09/413,213 patent/US6317520B1/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
WO1998047234A1 (en) | 1998-10-22 |
SE9701351L (sv) | 1998-10-12 |
CA2286184A1 (en) | 1998-10-22 |
CN1252187A (zh) | 2000-05-03 |
AU740091B2 (en) | 2001-11-01 |
EP1016221A1 (en) | 2000-07-05 |
AU7091998A (en) | 1998-11-11 |
JP2001520822A (ja) | 2001-10-30 |
US6317520B1 (en) | 2001-11-13 |
SE9701351D0 (sv) | 1997-04-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Jayasankar et al. | A survey on data compression techniques: From the perspective of data quality, coding schemes, data type and applications | |
SE511186C2 (sv) | Förfarande och anordning för att koda datasekvenser | |
US5023611A (en) | Entropy encoder/decoder including a context extractor | |
US6128413A (en) | Method and apparatus for data compression | |
JP4343440B2 (ja) | Dwtベース技法によって圧縮された画像を符号化するための実時間アルゴリズムおよびアーキテクチャ | |
JP5052541B2 (ja) | Sarデータを圧縮する方法、およびsarデータを符号化するための装置 | |
RU2417518C2 (ru) | Эффективное кодирование и декодирование блоков преобразования | |
US4281344A (en) | Video interframe transform coding technique | |
JP3269858B2 (ja) | 伝送装置 | |
US6504877B1 (en) | Successively refinable Trellis-Based Scalar Vector quantizers | |
Kim | New finite state vector quantizers for images | |
JPH0529172B2 (sv) | ||
US20030016878A1 (en) | Dynamic image compression coding apparatus | |
CN1726644A (zh) | 用于多种描述编码的设备和方法 | |
KR100733949B1 (ko) | 유한 알파벳 데이터의 비손실 적응 인코딩 | |
Effros | Practical multi-resolution source coding: TSVQ revisited | |
US8320687B2 (en) | Universal lossy compression methods | |
KR100617407B1 (ko) | 품질 우선 순위 이미지 저장 및 통신 | |
KR100242635B1 (ko) | 가변장 부호화 및 가변장 복호화 시스템 | |
EP1333679A1 (en) | Data compression | |
EP0731611A2 (en) | Apparatus and methods for selectively reducing a huffman coding rate | |
CN111787326B (zh) | 一种熵编码及熵解码的方法和装置 | |
JP2024507299A (ja) | バイナリデータを送信する方法及びデバイス | |
EP0731610A2 (en) | Apparatus and methods for determining an initial huffman coding rate | |
KR100216600B1 (ko) | 영상 신호 벡터 양자화기를 위한 다중 부호어 전송 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
NUG | Patent has lapsed |