12.7. Robust Packet Scheduling in Video Streaming (Pianificazione robusta dei pacchetti nello streaming video)
12.7. Robust Packet Scheduling in Video Streaming (Pianificazione robusta dei pacchetti nello streaming video)
La pianificazione robusta dei pacchetti è stata implementata con MPEG-4 Parte 2 e simulata in un ambiente di streaming senza fili [21]. Non c'è ragione tecnica per cui risultati simili o migliori non possano essere raggiunti con H.264.
I client di streaming tipicamente hanno un buffer di ricezione capace di memorizzare una quantità relativamente grande di dati. Inizialmente, quando una sessione di streaming è stabilita, un client non inizia subito la riproduzione del flusso. Piuttosto, tipicamente mette in buffer i dati in arrivo per alcuni secondi. Questo buffering aiuta a mantenere la riproduzione continua, poiché, in caso di ritardi di trasmissione occasionalmente aumentati o cali di throughput di rete, il client può decodificare e riprodurre i dati bufferizzati. Altrimenti, senza buffering iniziale, il client deve congelare il display, fermare la decodifica e attendere i dati in arrivo. Il buffering è necessario anche per ritrasmissione automatica o selettiva a qualsiasi livello di protocollo. Se una parte di un'immagine è persa, un meccanismo di ritrasmissione può essere usato per reinviare i dati persi. Se i dati ritrasmetti sono ricevuti prima dell'ora di decodifica o riproduzione programmata, la perdita è recuperata perfettamente. Le immagini codificate possono essere classificate secondo la loro importanza nella qualità soggettiva della sequenza decodificata. Ad esempio, le immagini non di riferimento, come le immagini B convenzionali, sono soggettivamente le meno importanti, poiché la loro assenza non influisce sulla decodifica di altre immagini. Oltre alle immagini non di riferimento, lo standard ITU-T H.264 | ISO/IEC 14496-10 include un metodo di scalabilità temporale chiamato sotto-sequenze (sub-sequences) [22]. La classificazione soggettiva può essere fatta anche sulla base di partizione dei dati di slice codificato (coded slice data partition) o di gruppo di slice (slice group). Slice codificati e partizioni di dati di slice codificati soggettivamente più importanti possono essere inviati prima di quanto indica il loro ordine di decodifica, mentre slice e partizioni soggettivamente meno importanti possono essere inviati dopo rispetto al loro ordine di codifica naturale. Di conseguenza, le parti ritrasmesse degli slice e delle partizioni di dati di slice più importanti hanno maggiore probabilità di essere ricevute prima dell'ora di decodifica o riproduzione programmata rispetto agli slice e alle partizioni di slice meno importanti.