Zpoždění I-snímku - I-Frame Delay
![]() | tento článek potřebuje další citace pro ověření.Leden 2008) (Zjistěte, jak a kdy odstranit tuto zprávu šablony) ( |
Zpoždění I-snímku (IFD) je technika plánování pro adaptivní streamování MPEG video. Myšlenka spočívá v tom, že plánovač streamování vypustí obrazové snímky, když je přenosová vyrovnávací paměť plná kvůli nedostatečné šířce pásma, aby se snížila přenášená přenosová rychlost. Vlastnosti algoritmu:[1]
- počet snímků aktuálně ve vyrovnávací paměti (ne počet bajtů) označuje plnost vyrovnávací paměti,
- méně důležité snímky (B-rám ) z vyrovnávací paměti jsou vynechány před důležitějšími snímky (I-snímek a Rám P. ),
- přenos I-snímků je zpožděn, když jsou špatné podmínky, i když jsou zastaralé w.r.t. doba zobrazení (stále je lze použít k dekódování následných předpovězených snímků).
Algoritmus zpoždění I-snímků
Mechanismus IFD je rozdělen na dvě části:[1]
- jak je proud analyzován a paketizován do síťových paketů, je také analyzován a pakety jsou označeny prioritním číslem odrážejícím typ rámce (I-snímek, P-snímek nebo B-snímek). Paketům bez videa je přiděleno číslo s nejvyšší prioritou, což způsobí, že zvuk nebude nikdy zrušen.
- během přenosu jsou pakety plánovačem IFD zahozeny, když je šířka pásma nedostatečná.
Velikost vyrovnávací paměti IFD by měla být dostatečně velká, aby pojala několik rámců, ale minimální potřeba jsou dva rámce, jeden pro uložení aktuálně odesílaného rámce (níže označeno jako ScheduledFrame) a jeden aktuálně čekající na odeslání (označený jako WaitingFrame) . Zvýšení velikosti vyrovnávací paměti IFD by mohlo potenciálně umožnit propracovanější stanovení priorit, mohlo by to však způsobit zvýšenou latenci a využití paměti.[1] Obrázek níže znázorňuje příklad plnění vyrovnávací paměti. Čísla představují prioritu paketu.
Zde jsou prioritní čísla videozáznamů 10 a vyšší. Pakety s prioritou číslo 12 patří do rámce naplánovaného pro odeslání a pakety s číslem 11 patří do rámce čekání. Na obrázku se do vyrovnávací paměti chystá vstoupit paket, který patří k dalšímu rámci.
Jak je vidět, je možné prokládat video pakety s non-video pakety (audio nebo systém s prioritními čísly 2, respektive 0). Když se má do bufferu IFD zapsat paket patřící k dalšímu rámci a vyrovnávací paměť je plná, plánovač IFD zruší rámec na základě dříve přiřazené priority. Když je šířka pásma sítě tak nízká, že je třeba zrušit i P-snímky, pak GOP (Skupina obrázků ) je nastaven na „narušen“ a zbytek GOP (který závisí na P-rámci) je také zrušen.
Pokud jsou vynechány pouze B-snímky, nemělo by dojít k žádnému zkreslení obrazu snímku, protože v závislosti na nich nejsou žádné další snímky.[1] Zrušení snímků pomocí IFD způsobí dočasné pozastavení efektu přehrávání videa, jehož doba trvání závisí na počtu zahozených snímků, po kterém se přehrávání obnoví od dalšího snímku, který prošel.[1] Pro implementaci IFD s vyrovnávací pamětí o velikosti dvou snímků je algoritmus zobrazen na obrázku níže.
postup Zařadit (NextFrame), pokud je DisturbedGOP == True, pak pokud je NextFrame typ I, pak # dojde k novému GOP DisturbedGOP = False # Resetovat narušený konec příznaku GOP, pokud je DisturbedGOP == True, pak Drop NextFrame # Zrušit zbytek narušeného návratového konce GOP, pokud WaitingFrame je prázdný, pak WaitingFrame = NextFrame jiný, pokud je NextFrame typ I, pak WaitingFrame = NextFrame jiný, pokud je NextFrame typ B, pak Drop NextFrame jiný, pokud WaitingFrame je typ I nebo P, pak Drop NextFrame, pokud je NextFrame typ P, pak # Vyřazený rám je P-rám DisturbedGOP = True # Nastavit narušený příznak GOP konec jiný WaitingFrame = NextFrame konec konec konec konec