Distribuerad källkodning

Distribuerad källkodning ( DSC ) är ett viktigt problem inom informationsteori och kommunikation . DSC-problem gäller komprimering av flera korrelerade informationskällor som inte kommunicerar med varandra. Genom att modellera korrelationen mellan flera källor på avkodarsidan tillsammans med kanalkoder kan DSC skifta beräkningskomplexiteten från kodarsidan till avkodarsidan och tillhandahåller därför lämpliga ramverk för applikationer med komplexitetsbegränsad sändare, såsom sensornätverk och video/ multimediakomprimering (se distribuerad videokodning). En av huvudegenskaperna hos distribuerad källkodning är att beräkningsbördan i kodare flyttas till den gemensamma avkodaren.

Historia

1973 föreslog David Slepian och Jack Keil Wolf den informationsteoretiska förlustfri komprimering bunden till distribuerad komprimering av två korrelerade iid -källor X och Y. Därefter utvidgades denna gräns till fall med mer än två källor av Thomas M. Cover 1975, medan de teoretiska resultaten i fallet med förlustkompression presenteras av Aaron D. Wyner och Jacob Ziv 1976.

Även om satserna om DSC föreslogs på 1970-talet, var det efter cirka 30 år som försök startade för praktiska tekniker, baserat på idén att DSC är nära besläktad med kanalkodning som föreslogs 1974 av Aaron D. Wyner . Det asymmetriska DSC-problemet togs upp av SS Pradhan och K. Ramchandran 1999, som fokuserade på statistiskt beroende binära och Gaussiska källor och använde skalära och trellis- coset -konstruktioner för att lösa problemet. De utökade arbetet ytterligare till det symmetriska DSC-fallet.

Syndromavkodningsteknologi användes först i distribuerad källkodning av DISCUS -systemet av SS Pradhan och K Ramachandran (Distribuerad källkodning med syndrom). De komprimerar binära blockdata från en källa till syndrom och överför data från den andra källan okomprimerad som sidoinformation. Denna typ av DSC-schema uppnår asymmetriska komprimeringshastigheter per källa och resulterar i asymmetrisk DSC. Detta asymmetriska DSC-schema kan enkelt utvidgas till fallet med mer än två korrelerade informationskällor. Det finns också några DSC-scheman som använder paritetsbitar snarare än syndrombitar.

Korrelationen mellan två källor i DSC har modellerats som en virtuell kanal som vanligtvis kallas en binär symmetrisk kanal .

Från och med DISCUS har DSC lockat till sig betydande forskningsaktivitet och mer sofistikerade kanalkodningstekniker har antagits i DSC-ramverk, såsom Turbo Code , LDPC Code, och så vidare.

I likhet med det tidigare förlustfria kodningsramverket baserat på Slepian-Wolf-satsen, har försök gjorts på förlustfall baserade på Wyner-Ziv-satsen. Teoretiska resultat på kvantiseringsdesigner tillhandahölls av R. Zamir och S. Shamai, medan olika ramverk har föreslagits baserat på detta resultat, inklusive en kapslad gitterkvantiserare och en trelliskodad kvantiserare.

Dessutom har DSC använts vid videokomprimering för applikationer som kräver lågkomplex videokodning, såsom sensornätverk, multiview-videokameror och så vidare.

Med deterministiska och probabilistiska diskussioner om korrelationsmodellen för två korrelerade informationskällor har DSC-scheman med mer generella komprimerade hastigheter utvecklats. I dessa icke-asymmetriska scheman är båda de två korrelerade källorna komprimerade.

Under ett visst deterministiskt antagande om korrelation mellan informationskällor har ett DSC-ramverk i vilket valfritt antal informationskällor kan komprimeras på ett distribuerat sätt demonstrerats av X. Cao och M. Kuijper. Den här metoden utför icke-asymmetrisk komprimering med flexibla hastigheter för varje källa, vilket uppnår samma totala komprimeringshastighet som att upprepade gånger tillämpa asymmetrisk DSC för mer än två källor. Sedan, genom att undersöka den unika kopplingen mellan syndrom och komplementära kodord för linjära koder, har de översatt de viktigaste stegen i DSC gemensam avkodning till syndromavkodning följt av kanalkodning via en linjär blockkod och även via dess komplementkod, som teoretiskt illustrerat en metod av sammansättning av en DSC-fogavkodare från linjära kodkodare och avkodare.

Teoretiska gränser

Den informationsteoretiska förlustfria komprimeringen bunden på DSC ( Slepian–Wolf bound ) var först avsedd av David Slepian och Jack Keil Wolf i termer av entropier av korrelerade informationskällor 1973. De visade också att två isolerade källor kan komprimera data lika effektivt som om de kommunicerade med varandra. Denna gräns har utvidgats till fallet med mer än två korrelerade källor av Thomas M. Cover 1975.

Liknande resultat erhölls 1976 av Aaron D. Wyner och Jacob Ziv med avseende på förlustkodning av gemensamma Gaussiska källor.

Slepian–Wolf bunden

Distribuerad kodning är kodningen av två eller flera beroende källor med separata kodare och gemensam avkodare. Med tanke på två statistiskt beroende iid finita alfabetiska slumpmässiga sekvenser X och Y, inkluderar Slepian–Wolfs sats teoretiska gränser för den förlustfria kodningshastigheten för distribuerad kodning av de två källorna enligt nedan:

Om både kodaren och avkodaren för de två källorna är oberoende, är den lägsta hastigheten vi kan uppnå för förlustfri komprimering och för respektive , där och är entropierna för och . Men med gemensam avkodning, om sannolikhet för försvinnande fel för långa sekvenser accepteras, visar Slepian–Wolf-satsen att mycket bättre kompressionshastighet kan uppnås. Så länge som den totala hastigheten för och är större än deras gemensamma entropi och ingen av källorna är kodad med en hastighet som är större än dess entropi, distribuerad kodning kan uppnå godtyckligt liten felsannolikhet för långa sekvenser.

Ett specialfall av distribuerad kodning är komprimering med sidoinformation från dekodern, där källa är tillgänglig på avkodarsidan men inte tillgänglig på kodarsidan. Detta kan behandlas som villkoret att redan har använts för att koda , medan vi avser att använda för att koda . Hela systemet fungerar på ett asymmetriskt sätt (komprimeringshastigheten för de två källorna är asymmetrisk).

Wyner-Ziv bunden

Strax efter att Slepian–Wolfs teorem om förlustfri distribuerad komprimering publicerades, föreslogs utvidgningen till förlustkomprimering med sidoinformation från dekoder som Wyner–Ziv-satsen. På samma sätt som förlustfritt fall ges två statistiskt beroende iid-källor och är tillgänglig på avkodarsidan men inte tillgänglig på kodarsidan. Istället för förlustfri komprimering i Slepian-Wolf-satsen undersökte Wyner-Ziv-satsen det förlustfria kompressionsfallet.

Wyner–Ziv-satsen presenterar den uppnåbara nedre gränsen för bithastigheten för vid given distorsion . Det visade sig att för Gaussiska minneslösa källor och medelkvadratfelsdistorsion förblir den nedre gränsen för bithastigheten för densamma oavsett om sidoinformation är tillgänglig vid kodaren eller inte.

Virtuell kanal

Deterministisk modell

Probabilistisk modell

Asymmetrisk DSC vs. symmetrisk DSC

Asymmetrisk DSC betyder att olika bithastigheter används för att koda ingångskällorna, medan samma bithastighet används i symmetrisk DSC. Med en DSC-design med två källor till exempel, i det här exemplet och två diskreta, minneslösa, likformigt fördelade källor som genererar en uppsättning variabler och med längden 7 bitar och Hamming-avståndet mellan och är högst ett. Slepian-Wolf på väg till dem är:

Detta betyder att den teoretiska gränsen är och symmetrisk DSC betyder 5 bitar för varje källa. Andra par med är asymmetriska fall med olika bithastighetsfördelningar mellan och , där , och , representerar två extremfall som kallas avkodning med sidoinformation.

Praktisk distribuerad källkodning

Slepian–Wolf-kodning – förlustfri distribuerad kodning

Man förstod att Slepian–Wolf-kodning är nära besläktad med kanalkodning 1974, och efter cirka 30 år började praktisk DSC implementeras av olika kanalkoder. Motivationen bakom användningen av kanalkoder är från två källors fall, korrelationen mellan ingångskällor kan modelleras som en virtuell kanal som har ingång som källa och utgång som källa . DISCUS -systemet som föreslogs av SS Pradhan och K. Ramchandran 1999 implementerade DSC med syndromavkodning, som fungerade för asymmetriska fall och utökades ytterligare till symmetriska fall .

Det grundläggande ramverket för syndrombaserad DSC är att, för varje källa, dess ingångsutrymme är uppdelat i flera coset enligt den speciella kanalkodningsmetod som används. Varje ingång från varje källa får en utgång som indikerar vilken coset ingången tillhör, och den gemensamma avkodaren kan avkoda alla ingångar genom mottagna coset-index och beroende mellan källor. Utformningen av kanalkoder bör beakta korrelationen mellan ingångskällor.

En grupp koder kan användas för att generera coset-partitioner, såsom trelliskoder och gitterkoder. Pradhan och Ramchandran designade regler för konstruktion av underkoder för varje källa, och presenterade resultatet av trellis-baserade coset-konstruktioner i DSC, som är baserad på faltningskod och set- partitioneringsregler som i Trellis-modulering , såväl som gitterkodbaserad DSC . Efter detta föreslogs inbäddad spaljékod för asymmetrisk kodning som en förbättring jämfört med deras resultat.

Efter att DISCUS-systemet föreslagits har mer sofistikerade kanalkoder anpassats till DSC-systemet, såsom Turbo Code , LDPC Code och Iterative Channel Code. Kodarna för dessa koder är vanligtvis enkla och lätta att implementera, medan avkodarna har mycket högre beräkningskomplexitet och kan få bra prestanda genom att använda källstatistik. Med sofistikerade kanalkoder som har prestanda som närmar sig kapaciteten hos korrelationskanalen, kan motsvarande DSC-system närma sig Slepian-Wolf bound.

Även om den mesta forskningen fokuserade på DSC med två beroende källor, har Slepian–Wolf-kodning utvidgats till fler än två ingångskällor, och metoder för generering av underkoder från en kanalkod föreslogs av V. Stankovic, AD Liveris, etc. korrelationsmodeller.

Allmän teorem om Slepian–Wolf-kodning med syndrom för två källor

Sats : Vilket par som helst av korrelerade likformigt fördelade källor, med kan komprimeras separat med ett hastighetspar så att , där och är heltal, och . Detta kan uppnås med en binär linjär kod.

Bevis : Hamming-gränsen för en binär linjär kod är och vi har Hamming-kod som uppnår denna gräns, därför har vi en sådan binär linjär kod med generatormatris . Därefter kommer vi att visa hur man konstruerar syndromkodning baserat på denna linjära kod.

Låt och bildas genom att först ta rader från , medan bildas med de återstående rader av . och är underkoderna till Hamming-koden som genereras av respektive , med och som deras paritetskontrollmatriser.

För ett par indata , ges kodaren av och . Det betyder att vi kan representera och som , , där är representanterna för cosets av med avseende på respektive. Eftersom vi har med . Vi kan få där , .

Anta att det finns två olika ingångspar med samma syndrom, det betyder att det finns två olika strängar , så att och . Vi kommer alltså att ha . Eftersom minsta Hamming-vikt för koden är , avståndet mellan och är . Å andra sidan, enligt tillsammans med och vi kommer att ha och motsäger . Därför kan vi inte ha mer än ett ingångspar med samma syndrom.

Därför kan vi framgångsrikt komprimera de två beroende källorna med konstruerade underkoder från en binär linjär kod, med hastighetspar så att där och är heltal, och . Logg anger Logg 2 .

Slepian–Wolf-kodningsexempel

Ta samma exempel som i den föregående delen Asymmetrisk DSC vs. Symmetrisk DSC , den här delen presenterar motsvarande DSC-scheman med coset-koder och syndrom inklusive asymmetriskt fall och symmetriskt fall. Slepian–Wolf bunden för DSC-design visas i föregående del.

Asymmetriskt hölje

I fallet där och längden på en indatavariabel från källan är 7 bitar, därför kan den skickas förlustfritt med 7 bitar oberoende av alla andra bitar. Baserat på kunskapen om att och har Hamming-avstånd högst ett, för ingång från källan , eftersom mottagaren redan har , är de enda möjliga de med högst 1 avstånd från . Om vi ​​modellerar korrelationen mellan två källor som en virtuell kanal, som har ingång och utgång , så länge vi får , allt vi behöver för att framgångsrikt "avkoda" är "paritetsbitar" med speciell felkorrigeringsförmåga, med skillnaden mellan och som kanalfel. Vi kan också modellera problemet med cosets-partition. Det vill säga, vi vill hitta en kanalkod, som kan dela upp utrymmet för ingången i flera cosets, där varje coset har ett unikt syndrom associerat med sig. Med en given coset och finns det bara en som är möjlig att vara indata givet korrelationen mellan två källor.

I det här exemplet kan vi använda den binära Hamming-koden , med paritetskontrollmatrisen . För en ingång från källa , endast syndromet som ges av sänds, vilket är 3 bitar. Med mottagna och , anta att det finns två ingångar och med samma syndrom . Det betyder är . Eftersom den minsta Hamming-vikten på Hamming Code är 3, . Därför kan ingången återställas eftersom .

På liknande sätt kan bitfördelningen med , uppnås genom att vända om rollerna för och .

Symmetriskt fall

I symmetriska fall är det vi vill ha samma bithastighet för de två källorna: 5 bitar vardera med separat kodare och gemensam avkodare. Vi använder fortfarande linjära koder för detta system, som vi använde för asymmetriska fall. Grundidén är liknande, men i det här fallet måste vi göra coset-partition för båda källorna, medan för ett par mottagna syndrom (motsvarar en coset) är endast ett par indatavariabler möjliga givet korrelationen mellan två källor.

Anta att vi har ett par linjär kod och och ett kodare-avkodarpar baserat på linjära koder som kan uppnå symmetrisk kodning. Kodarutgången ges av: och . Om det finns två par giltiga ingångar och genererar samma syndrom, dvs och , vi kan få följande( representerar Hamming vikt):

där

där

Alltså:

där och . Det betyder att så länge vi har ett minsta avstånd mellan de två koderna större än , kan vi uppnå felfri avkodning.

De två koderna och kan konstrueras som underkoder till Hamming-kod och har därför ett minsta avstånd på . Givet generatormatrisen för den ursprungliga Hamming-koden, generatormatrisen för konstrueras genom att ta två valfria rader från , och konstrueras av de återstående två raderna av . Motsvarande paritetskontrollmatris för varje underkod kan genereras enligt generatormatrisen och användas för att generera syndrombitar.

Wyner-Ziv-kodning – distribuerad kodning med förlust

I allmänhet erhålls ett Wyner-Ziv-kodningsschema genom att lägga till en kvantiserare och en avkvantiserare till Slepian-Wolf-kodningsschemat. Därför kan en Wyner-Ziv-kodardesign fokusera på kvantiseraren och motsvarande rekonstruktionsmetoddesign. Flera kvantiseringsdesigner har föreslagits, såsom en kapslad gitterkvantiserare, trelliskodkvantiserare och Lloyd-kvantiseringsmetod.

Storskalig distribuerad kvantisering

Tyvärr skalas inte ovanstående tillvägagångssätt (i krav på design eller driftskomplexitet) till sensornätverk av stora storlekar, ett scenario där distribuerad komprimering är till stor hjälp. Om det finns N källor som sänder med R bitar vardera (med något distribuerat kodningsschema), skalar antalet möjliga rekonstruktioner . Även för måttliga värden på N och R (säg N=10, R = 2) blir tidigare designscheman opraktiska. Nyligen har ett tillvägagångssätt, med hjälp av idéer lånade från Fusion Coding of Correlated Sources, föreslagits där design och operationell komplexitet växlas mot avkodarprestanda. Detta har möjliggjort distribuerad kvantiseringsdesign för nätverksstorlekar som når 60 källor, med betydande vinster jämfört med traditionella metoder.

Den centrala idén är närvaron av en bitdelmängdsväljare som upprätthåller en viss delmängd av de mottagna (NR-bitarna, i exemplet ovan) för varje källa. Låt vara mängden av alla delmängder av NR-bitarna, dvs.

Sedan definierar vi bit-delmängdsväljarmappningen att vara

Notera att varje val av bitdelmängdsväljaren ställer ett lagringskrav (C) som är exponentiellt i kardinaliteten hos uppsättningen av valda bitar.

Detta möjliggör ett klokt urval av bitar som minimerar distorsionen, med tanke på begränsningarna för dekoderlagring. Ytterligare begränsningar av uppsättningen tillåtna delmängder behövs fortfarande. Den effektiva kostnadsfunktionen som måste minimeras är en viktad summa av distorsion och dekoderlagring

Systemdesignen utförs genom att iterativt (och inkrementellt) optimera kodarna, avkodaren och bitdelmängdsväljaren tills konvergens.

Icke-asymmetrisk DSC

Icke-asymmetrisk DSC för mer än två källor

Syndrommetoden kan fortfarande användas för mer än två källor. Betrakta binär källa med längd- . Låt motsvarande kodningsmatriser av storlekarna . Sedan komprimeras de binära ingångskällorna till av totalt bitar. Tydligen kan två källtuplar inte återvinnas samtidigt om de delar samma syndrom. Med andra ord, om alla källtupler av intresse har olika syndrom, kan man återhämta dem förlustfritt.

Allmänt teoretiskt resultat verkar inte finnas. Men för en begränsad typ av källa så kallad Hamming-källa som bara har högst en källa som skiljer sig från resten och högst en bitplats inte alla är identiska, praktisk förlustfri DSC visas i vissa fall. För fallet när det finns fler än två källor, är antalet källtuplar i en Hamming-källa . Därför måste en packningsgräns som uppenbarligen uppfylla. När packningsbunden är tillfredsställd med likhet, kan vi kalla en sådan kod för att vara perfekt (en analog till perfekt kod i felkorrigerande kod).

En enklaste uppsättning av för att tillfredsställa packningen bunden med likhet är . Det visar sig dock att sådan syndromkod inte existerar. Den enklaste (perfekta) syndromkoden med fler än två källor har och . Låta

och att är vilken partition som helst av .

kan komprimera en Hamming-källa (dvs källor som inte har mer än en bit olika kommer alla att ha olika syndrom). Till exempel, för en möjlig uppsättning kodningsmatriser

Se även