Godtycklig skivbeställning

Godtycklig skivordning ( ASO ) i digital video är en algoritm för att förebygga förluster. Det används för att omstrukturera ordningen för representationen av de grundläggande regionerna ( makroblock ) i bilder. Denna typ av algoritm undviker behovet av att vänta på en hel uppsättning scener för att få alla källor. Vanligtvis betraktas som en robusthetsfunktion för fel/förlust.

Denna typ av algoritm ingår som verktyg i baslinjeprofilen H.264/MPEG-4 AVC- kodaren med I Slices , P Slices , Context Adaptative Variable Length Coding ( CAVLC ), gruppering av skivor (Slice Group), godtycklig skivordning (ASO) ) och Redundansskivor .

Ansökningar

Främst för billigare applikationer med begränsade datorresurser används den här profilen flitigt i videokonferenser , mobilapplikationer och säkerhetsapplikationer också.

Arbitrary Slice Ordering (ASO) lättar på begränsningen att alla makroblock måste sekvenseras i avkodningsordning, och förbättrar därmed flexibiliteten för prestanda med låg fördröjning som är viktig i telekonferensapplikationer och interaktiva internetapplikationer .

Problem

Om ASO över bilder stöds i AVC, uppstår allvarliga problem: skivor från olika bilder interfolieras. Ett möjligt sätt att lösa dessa problem är att begränsa ASO i en bild, dvs skivor från olika bilder interfolieras inte.

Men även om vi begränsar ASO i en bild, ökar avkodarens komplexitet avsevärt. Eftersom Flexible Macroblock Order FMO utökar konceptet med segment genom att tillåta icke-konsekutiva makroblock att tillhöra samma segment , tar det här avsnittet också upp avkodarkomplexiteten som introduceras av (FMO).

Typer av avkodning ASO

Sammanslutning av makroblock att skiva

  • Inverkan av ASO på AVC-avkodares komplexitet

Ett exempel på hur makroblock kan associeras till olika skivor visas i figur 1. När ASO stöds kan de fyra skivorna i detta exempel tas emot av avkodaren i en slumpmässig ordning. Figur 2 visar följande mottagningsordning: skiva #4, skiva #3, skiva #1 och skiva #2. Samma figur visar AVC-avkodarblocken som krävs för att stödja ASO-avkodning.

ASO 1.JPG

Figur 1: Ett exempel på makroblocktilldelning till fyra skivor . Varje skiva representeras av en annan textur.

Bloques descodificador AVC.JPG

Figur 2: AVC-avkodarblocken måste stödja ASO-avkodning.

För varje skiva extraheras skivlängden och makroblockadressen (dvs index med avseende på rasteravsökningsordningen) för det första makroblocket (MB) av skivan av skivparsern ( Figur 2 ) . Denna information, tillsammans med själva skivan , lagras i minnet (visas som DRAM). Dessutom bör en lista med pekare (Figur 2, en pekare för varje skiva och varje pekare till minnesplatsen där en skiva är lagrad) genereras. Listan med pekare, tillsammans med adressen till det första makroblocket i segmentet, kommer att användas för att navigera genom de ur funktion . Skivlängden kommer att användas för att överföra skivdata från DRAM till avkodarens interna minne .

Inför nödvändigheten att avkoda skivor som inte fungerar kan en avkodare:

  • 1) vänta tills alla delar av varje bild kommer innan du börjar avkoda och avblockera bilden.
  • 2) avkoda skivorna i den ordning som de kommer till avkodaren.

Den första metoden ökar latensen, men gör det möjligt att utföra avkodning och avblockering parallellt. Men att hantera ett stort antal pekare (i värsta fall en pekare för varje MB) och öka DRAM-åtkomstenhetens intelligens ökar avkodarens komplexitet.

Den andra metoden skadar dekoderns prestanda avsevärt. Dessutom, genom att utföra avblockeringen i en andra omgång, ökas DRAM till processorns minnesbandbredd.

Avkodning av skivor i den ordning de tas emot kan resultera i ytterligare minnesförbrukning eller ställa högre genomströmningskrav på avkodaren och det lokala minnet för att köras med högre klockhastighet. Överväg ett program där visningsoperationen läser bilderna som ska visas direkt från den del av minnet där avkodaren lagrade bilderna.

Associering av makroblock till skiva och skivor till grupp av skivor

  • Inverkan av ASO och FMO på AVC-avkodares komplexitet

Ett exempel på hur skivor kan associeras med olika skivgrupper visas i figur 3. När ASO och FMO stöds kan de fyra skivorna i detta exempel tas emot av avkodaren i slumpmässig ordning. Figur 2 visar följande ordning: skiva #4, skiva #2, skiva #1 och skiva #3. Samma figur visar AVC-avkodarblocken som krävs för att stödja ASO- och FMO-avkodning.

Slice Group.JPG

Figur 3: Ett exempel på makroblocktilldelning till fyra skivor och till två ''Slice''-grupper (SG i figuren). Varje skiva representeras av en annan struktur, och varje skivgrupp representeras av en annan färg.

Bloques descodificador AVC2.JPG

Figur 4: AVC-avkodarblocken måste stödja ASO- och FMO-avkodning.

Förutom skivlängden och makroblockadressen för det första makroblocket (MB) av skivan, måste skivtolkaren (Figur 4) extrahera skivgruppen ( SG) för varje skiva . Denna information, tillsammans med skivan , lagras i DRAM. Liksom i ASO-fallet bör listan med pekare (Figur 4) genereras.

Listan med pekare, tillsammans med adressen till den 1:a MB av skivan , SG:n och mb_allocation_map (lagrad i processorns lokala minne), kommer att användas för att navigera genom skivorna . Skivlängden kommer att användas för att överföra skivdata från DRAM till processorns lokala minne .

På samma sätt som i ASO-fallet, i det kombinerade ASO- och FMO-fallet kan avkodaren:

  • 1) vänta tills alla delar av varje bild kommer innan du börjar avkoda och avblockera bilden.
  • 2) avkoda skivorna i den ordning som de kommer till avkodaren.

Det första tillvägagångssättet är fortfarande det föredragna. På grund av FMO kan avkodning av makroblock i rasterskanningsordning kräva att växla mellan olika skivor och/eller skivgrupper . För att snabba upp DRAM-åtkomsten måste en buffert för varje segmentgrupp användas (Figur 4). Denna ytterligare intelligens hos DRAM-åtkomstenheten ökar avkodarens komplexitet ytterligare. Dessutom kräver växling mellan olika skivor och/eller skivgrupper byte av statusinformationen för Entropy Decoder (ED). I värsta fall sker byte efter avkodning av varje makroblock. Om hela Entropy Decoder-statusinformationen är för stor för att lagras i processorns lokala minne, måste varje ED-status laddas från och lagras i DRAM, vilket ytterligare ökar DRAM till processorns minnesbandbredd (Figur 4 ) .

Se även

  • Iole Moccagatta, LSI Logic (2002). «Godtycklig delordning och flexibel makroblockorder Inverkan av AVC-efterlevnad och implementeringskomplexitet»