Metodi di codifica (Microsoft Media Foundation)
La maggior parte dei codec Audio e Video di Windows Media supporta più metodi di codifica. Sapere come e quando usare ogni metodo può aiutare a creare contenuto compresso di alta qualità.
I metodi di codifica si concentrano tutti sul buffer usato dal decodificatore per gestire i dati di input compressi. Questo buffer è definito dalla velocità in bit del flusso, in bit al secondo e dalla finestra del buffer, in millisecondi. Quando si esegue la codifica, il codec rispetta i vincoli del buffer. Per altre informazioni sul buffer, vedere Il modello di buffer dei bucket persi.
Codifica della velocità in bit costante
La velocità di bit per qualsiasi flusso codificato da uno dei codec audio e video di Windows Media non è costante. La codifica CBR (Constant Bit Rate) è quindi un termine in qualche modo fuorviante. La caratteristica distintiva di un flusso con codifica CBR è una piccola finestra del buffer, che limita la variazione delle dimensioni dei campioni. La codifica CBR viene usata principalmente per il contenuto trasmesso tramite una rete alla destinazione. In questo scenario è importante essere in grado di basarsi sull'utilizzo coerente della larghezza di banda.
Dal punto di vista della configurazione, la codifica CBR è diversa dalle altre modalità in quanto prima di iniziare a codificare, si imposta sia la velocità media di bit del contenuto di output che la finestra del buffer applicabile a tale velocità di bit. In altre modalità, uno o entrambi i valori sono sconosciuti quando si configura il codificatore e viene calcolato dal codec mentre viene codificato. CBR è la modalità di codifica standard usata dalle DMO del codificatore Windows Media.
codifica della frequenza di bit costante Two-Pass
CBR Standard usa solo un singolo passaggio di codifica. Il contenuto viene fornito come esempi di input e il codec comprime il contenuto e restituisce esempi di output. È anche possibile elaborare i campioni di input due volte. Al primo passaggio, il codec esegue calcoli per ottimizzare la codifica per il contenuto. Al secondo passaggio, il codec usa i dati raccolti durante il primo passaggio per codificare il contenuto.
La codifica CBR a due passaggi presenta molti vantaggi. Spesso produce miglioramenti significativi di qualità rispetto alla codifica CBR standard senza modificare i requisiti di buffering. In questo modo questa modalità di codifica è ideale per il contenuto trasmesso in rete. L'unica situazione in cui CBR a due passaggi non è fattibile è quando si codifica il contenuto da un'origine dinamica e non è possibile usare un secondo passaggio.
Il tipo di supporto di output di un flusso CBR a due passaggi è identico a quello di un flusso CBR standard; è comunque necessario specificare la frequenza di bit e la finestra del buffer da usare. Quando si configura DMO, è necessario impostarlo per eseguire due passaggi. È inoltre necessario notificare all'amministratore di dominio al termine dell'invio di campioni per il primo passaggio.
Codifica della velocità in bit variabile Quality-Based
Poiché la codifica CBR non mantiene effettivamente una frequenza di bit costante, la distinzione tra di essa e la codifica della velocità in bit variabile (VBR) può sembrare un po 'hazy. La differenza principale tra CBR e VBR è la dimensione della finestra del buffer usata. I flussi con codifica VBR in genere hanno finestre buffer di grandi dimensioni rispetto ai flussi con codifica CBR. La VBR basata sulla qualità non è un'eccezione, in quanto non si definiscono la frequenza di bit né la finestra del buffer. Si imposta invece un valore di qualità. Il codec tenta quindi di comprimere i dati in modo che la qualità del supporto codificato sia coerente per tutta la durata, indipendentemente dai requisiti del buffer del flusso risultante.
VBR basato sulla qualità usa un singolo passaggio di codifica e tende a creare flussi compressi di grandi dimensioni. Al termine della codifica, il codec imposta i requisiti del buffer in modo che il decodificatore possa decomprimere i dati. Il flusso VBR codificato non è adatto per lo streaming in rete, quindi la VBR basata sulla qualità deve essere usata solo per scenari di riproduzione locali (o scaricare e riprodurre).
Codifica della frequenza di bit delle variabili non vincolate
A differenza della VBR basata sulla qualità, VBR non vincolato non codifica in un livello di qualità specifico. Codifica invece il contenuto con la massima qualità possibile mantenendo una velocità di bit specificata. VBR non vincolato usa due passaggi di codifica ed è simile a CBR a due passaggi, ad eccezione del fatto che non si specifica un'impostazione della finestra del buffer per il flusso. Ciò significa che non esiste alcun limite alle dimensioni dei singoli campioni nel flusso, purché la velocità media dei bit sia minore o uguale al valore impostato.
VBR non vincolato è di uso limitato, perché esistono pochi scenari di riproduzione che presentano requisiti in base ai requisiti del buffer. Il codec può impostare la finestra del buffer su qualsiasi valore richiesto dopo la codifica, senza alcun controllo sulle dimensioni del buffer. Nella maggior parte dei casi, se non si è interessati alle dimensioni del buffer o alla coerenza dell'utilizzo della larghezza di banda, è consigliabile usare VBR basato sulla qualità.
Codifica della velocità in bit variabile Peak-Constrained
La modalità di codifica finale è VBR con vincoli di picco. Come VBR non vincolato, questa modalità usa due passaggi di codifica e codifica in una velocità di bit specificata. Tuttavia, con VBR con vincoli di picco è anche possibile configurare il valore di picco per la codifica. I valori di picco sono simili ai normali valori di configurazione del buffer: è presente una frequenza di bit massima e una finestra del buffer di picco. Il file viene codificato in modo che sia conforme a un buffer descritto dai valori di picco, con la condizione in cui la velocità in bit media complessiva del flusso sia uguale o inferiore al valore medio di velocità in bit specificata.
La VBR vincolata può essere difficile da concettualizzare. Ecco il modo più semplice per pensare al modello di buffering usato. Si supponga che il flusso sia un flusso CBR con la frequenza di picco e la finestra del buffer di picco usata per definire il buffer. In genere, la frequenza di bit di picco è piuttosto elevata. Il codificatore garantisce che il valore medio di velocità in bit previsto indicato venga mantenuto per tutta la durata del flusso. In qualsiasi punto specifico del flusso, la velocità media dei bit è garantita maggiore della dimensione totale del flusso in bit divisi per la durata del flusso in secondi.
Si consideri l'esempio seguente: si configura un flusso con una velocità media di bit di 16.000 bit al secondo, una frequenza di bit massima di 48.000 bit al secondo e una finestra del buffer di picco di 3.000 (3 secondi). Le dimensioni del buffer usato per il flusso sono 144.000 bit (48.000 bit al secondo x 3 secondi) in base ai valori di picco. Il codificatore comprime i dati in modo che siano conformi a tale buffer. Inoltre, la velocità media dei bit del flusso deve essere pari o inferiore a 16.000. Se il codificatore deve creare alcuni campioni di grandi dimensioni per gestire un segmento complesso di contenuto, può sfruttare le dimensioni del buffer di grandi dimensioni. Ma altre parti del flusso devono essere codificate a una velocità di bit inferiore per ridurre la media al livello specificato.
La codifica VBR con vincoli di picco è utile per i dispositivi di riproduzione con capacità del buffer finito e alcuni vincoli di velocità dei dati. Un esempio comune è la codifica usata per i DVD.
Argomenti correlati