XviD in VirtualDub

Apri VirtualDub, Premi Control-O per caricare il file AVS che GKnot ha creato per te.

Ora setta la modalità video su Fast recompress selezionando il menu Video e cliccando su Fast Recompress.

Sempre dallo stesso menu seleziona Compression, o semplicemente premi Control-C.

Seleziona il CODEC XviD MPEG-4 dalla lista di tutti i codecs. Quindi premi il bottone configure per configurare la sessione di encoding.
Così facendo ottenete una finestra abbastanza spartana.

Come prima opzione abbiamo Profile @ Level. Quasti profili corrispondono allo standard MPEG-4 e selezionandone uno facciamo lavorare il codec producendo un output leggibile da altri apparati, per esempio anche lettori DVD stand-alone.

Ci sono 5 tipi di profili:

Simple E' il profilo base MPEG-4, il quale è limitato alla resoluzione stile VCD (352x) con bitrates fino a 384 kbit/s.ARTS è l'acronimo di Advanced Real Time Streaming ed è utile quindi nel caso di streaming video. Ovviamente streaming significa anche che non potete avere un bitrate troppo alto o usare funzionalità troppo complesse, perciò la risoluzione è anche stavolta limitata a 352x ma il bitrate può raggiungere i 4 mbit/s.

AS vuol dire Advanced Simple (NDT modalità base avanzata) e sarà quella che userete nella maggior parte dei casi. Il profilo AS supporta il codec a quantificazione multipla (NDT: multiple quantization types) e altre caratteristiche avanzate come i b-frames, QPel e GMC. Poi seguono i profili DXN che corrispondono ai profili hardware DivX. Possono essere usati quindi per creare contenuti che possano funzionare si lettori stand-alone certificati DivX. Ad ogni modo, ci sono alcune restrizioni rispetto al profilo AS, e con i nuovi lettori della Mediatek con funzionalità XViD è consigliabile l'uso del profilo Advanced Simple. Ultimo ma non meno importante è il profilo (unrestricted), il quale impone alcun tipo di restrizione di qualsiasi tipo.

Ora, ogni profilo è suddiviso in una multitudine di livelli. Più basso è il livello in questione, più ristretta sarà la risoluzione, il bitrate e le caratteristiche annesse. Io suggerisco AS @ L5 per il normale processo di encoding, e (unrestricted) per i lavori con alte risoluzioni stile HDTV (NDT: è uno standard televisivo americano.

Dopo aver selezionato un profilo ed un livello, premere il bottone ... sulla destra del profilo selezionato

In questa schermata si possono vedere le attuali possibilità offerte dai vari profili e livelli.

Settiamo il Quantization type a H.263 per copiare 1 CD e a MPEG per 2 CD. MPEG-Custom vi permette di selezionare una matrice di quantificazione a vostra scelta, ma la vedo veramente dura per i non esperti.

La quantificazione adattiva (adaptive quantization) è formalmente chiamata lumi-masking, e cerca di dare minor bitrate alle scene dove l'occhio umano non noterebbe la differenza.

Interlacing Può essere selezionato per aumentare le performance quando si sta encodando del materiale interlacciato.

Dopodichè abbiamo Quarterpel, il quale abilita la quarter pixel motion estimation - una più accurata stima dei movimenti. Quarterpel può essere molto utile specialmente nel caso di basse resoluzioni. c'è da notare che solo un lettore stand-alone può gestire la funzione Quarterpel.

Global Motion Compensation può servire per salvare bits nelle scene ripetitive. Attualmente però non esistono lettori che possano gestire la funzione GMC del formato XviD. Se decidete di usarlo assicuratevi che l'opzione VHQ sia usata (e potete andare più in alto rispetto al livello 4 con GMC).

Reduced resolution è applicabile unicamente per lo streaming e costringe XviD ad una minor risoluzione di quella del video di partenza.

I BVOPs sono i B-frames. Si può utilizzare l'opzione Maximum B-frames per settare il numero dei B-frames consecutivi. A differenza del DivX5 si può scegliere un livello maggiore di 1, ma penso sia raccomandato non superare il livello 3. La variabile B-frame quantizer ratio indica la compressione addizionale apportata dal B-frame comparata al P-frame. Quantizer offset è la quantità compensata aggiunta per singolo quantizer. Quindi se il P-Frame del surround hanno un quantizer di 2 con entrambi ratio e offset sono 1.0, il b-frame avrà un quantizer di 3.

Packet bitstream dovrebbe creare un bitstream che può essere "decoded" delay-free, ovvero senza ritardi. (così come introdotto con DivX5.01, in VDub non dovrebbero esserci più frames di mezzo dovuti al decoding B-frame)

Finalmente abbiamo il Closed GOV, il quale assicura che che un p-frame sia usato prima di ogni I-frame. questa opzione dovrebbe essere sempre selezionata (altrimenti potreste finire con una sequenza tipo PBIP dove il B frame si trova ad avere una "forward reference" ad un I-frame, e questo non ha praticamente senso).

Se volete vedere l'attuale limitazione alla risoluzione, bit-rate e dimensione del buffer, cliccate sul tab Level.

Come potete vedere, AS @ L5 può raggiungere la risoluzione DVD e usare un bitrate fino a 8 Mbit/s che dovrebbe più che sufficente per un semplice rippaggio DVD.



Premete OK per tornare indietro alla schermata principale. La prossima impostazione da settare è il tipo di "encoding".

Single pass encoda il film ad un costante e prefissato bitrate, che potete preconfigurare.

Twopass - 1st pass: "analyzation pass for 2 pass encoding". Il codec scriverà un file di testo contenente un bitrate consigliato per ogni frame, che chiameremo "curva del bitrate".

Twopass - 2nd pass: è il meccanismo interno di secondo passaggio. Il codec salerà la curva del bitrate stando attento ad un paio di settaggi che spiegerò più in là nel testo.


Ora premete il bottone Advanced options.

Qui posiamo configurare opzioni che hanno a che fare con la stima del movimento (ndt: motion estimation).

Motion search precision imposta la precisione del meccanismo della "motion estimation". Usate 6 - Ultra High, oppure 5 - Very High per rippaggio multiplo di più CD.

VHQ mode attiva una ricerca ancora più accurata. Settandolo ad un livello maggiore di 1, non dovrebbe aumentare la qualità dele immagini ad ogni caso.

Controllate Use chroma motion. Se l'opzione è attivata, XviD usa anche le informazioni cromatica per calcolare il movimento - è una sorta di "Motion search precision" settata al livello 7. Questi calcoli rallentano il processo di encoding del 5-10% ma sono molto efficenti contro i blocchi.

Lasciate Frame drop ratio settato a 0 (so che non vi azzardereste, vogliamo che tutti i nostri frame siano encodati).

Lasciate il Maximum I-frame interval a 300. Quasto assicura che potrete ottenere un I-frame (o Keyframe) almeno ogni 300 frames. Se un I-frame viene inserito tramite il rilevamento di un cambio scena prima di tale numero, il conteggio dei 300 frames viene resettato.

Infine, se state encodando cartoni animati o film d'animazione, potete abilitare Use cartoon mode.

Ed ora passiamo alla sezione Quantization:

In questa sezione potete configurare un minimo ed un massimo fattore di quantizzazione per i 3 tipi di frame. Ma dato che dovrebbe essere lavoro del codec scegliere il valore adeguato, suggerisco di lasciarli al loro valore di default. Settando il minimo a 1 non farete nulla di buono che gonfiare la grandezza ed il peso del video.

Trellis quantization ottimizza la stima del movimento seguendo una funzione di distorsione del rate. Riduce leggermente la velocità di encoding e la qualità (ma il guadagno il bitrate più basso è considerevole al confronto).



La sezione debugDebug è meno interessante ma consente di configurare il codice FourCC.

Se state usando un decoder diverso da XviD o da ffdshow, potete cambiare il FourCC usato al fine di far riconoscere il filmato da altri player.



Cliccate su OK per tornare indietro allo schermo principale.

E prima di iniziare con il primo passo, c'è un'altra funzione aggiuntiva da controllare, le zone:

Potete definire zone multiple dove applicare impostazioni specialiYou can define multiple zones where you apply special settings. Nell'esempio soprastante, abbiamo 2 zone, una che parte al primo frame (con impostazioni standard, e l'altra che inizia al punto dove iniziano i Credits. Premete Add per aggiungere un'altra zona e premete Edit per confugirarla:

La prima cosa da fare e settare il frame d'inizio alla posizione appropriata.

Poi abbiamo il Rate control, dove potete scegliere tra applicare un diverso Weight (peso) al bitrate, o specificare un Quantizer (fattore di compressione). Come potete vedere, ho scelto un weight di 0.15, che significa che i credits finali avranno un 15% del bitrate del filmato intero. Ad ogni modo, meglio usare per adesso un valore intorno ai 20 dato che pare valori inferiori possano generare bug ed errori.

Poi ci sono opzioni da selezionare ulteriormente per ogni zona:

Force keyframe assicura che la zona inizi con un I-frame.

Greyscale attiva una modalità che ottimizza i contenuti in bianco e nero. Scarta automaticamente tutte le informazioni dal piano U/V (dove le info sul colore suno memorizzate) finendo su un immagine in toni di grigio.

Chroma optimizer è un filtro che interpola i colori in aree uniformi. Può aiutare a ridurre l'effetto "red stairs" .

BVOP sensitivity riguarda i B-frames. Maggiore è il valore, più verranno usati i B-frames (usando valori negativi il numero verrà ridotto)

Cliccate su OK per tornare indietro allo schermo principale.



Dopo aver fatto tutto, siete ufficialmente pronti per il primo passo. Se volete settare il percorso del file delle statistiche , premete il bottone . . . alla destra della selezione Encoding type.

Qui potete modificare la posizione del file delle statistiche, ovvero dello Stats filename, a vostro piacimento. Ma se lo fate, annotatevi tale configurazione poichè dovrete settarla anche per il secondo passaggio.

Assicuratevi anche che il Discard first pass sia selezionato. Altrimenti il codec creerà un AVI pressochè inutile durante il primo passaggio (e scriverlo rallenterà ulteriormente il processo).



Ora premete 3 volte OK per tornare indietri alla finestra principale di VirtualDub, premete F7 per salvare il file del primo passaggio. Selezionate anche Add operation to job list e rinviate l'operazione a meno che non vogliate usare GKnot per lo scaling della curva (non consigliato) ne qual caso non potete selezionare l'opzione in quanto dovete prima fare la prima passata, processare manualmente il file delle statistiche in GKnot, e ritornare alla seconda passata.

Tornate alla configurazione del codec.

Per la seconda passata selezionate Twopass - 2nd pass come Encoding type:

Questo attiva il bottone Target size. Inserite un valore in Kilobytes e XviD dovrebbe creare un AVI con esattamente quella dimensione. Se cliccate sul bottone Target size, cambierà a Target bitrate, e potrete di nuovo inserire il bitrate manualmente o usare il righello per scegliere il bitrate desiderato.

Cliccate anche sul bottone .. alla sinistra di Encoding type.



Se avete modificato il nome dello Statsfile, inserite qui lo stesso valore.

I-frame boostpuò essere usate per dare ad un I-Frame più bits di quelli calcolati nella curva del bitrate.

Poi abbiamo l'opzione per ridurre il bitrate degli I-Frame. La prima fissa la soglia per quando la riduzione è applicata, e la seconda specifica il fattore di riduzione. Nel nostro esempio, gli I-frames dovranno essere più vicini di 1 frame (in pratica non ce ne saranno) e ridotti del 20%

Max overflow improvement e Max overflow degradation indicano quanto il codec può compensare durante le sezioni ingrandite e ridotte del video. Più alti saranno i valori, più veloce un afflusso / deflusso verrà corretto ( ma significa anche che nessun bitrate è preservato per la scena che ne necessita molto). Se state avendo alte fluttuazioni in quantizers (rilevabile da fluttuazioni nella qualità dell'immagine), provate riducendo questi valori a 20-30. Potrebbe inficiare la previsione sulla grandezza del file.

Curve compression controlla come la curva del bitrate viene riscalata. High bitrate scene % indica quanti bits sono tagliati nelle scene ad alto movimento e Low bitrate scenes % ie lo stesso per le scene a basso movimento.

Overflow control strength % indica la percentuale della distribuzione del flusso dei dati tra un frame e l'altro.



Premete 3 volte OK, e dopo F7 per salvare l'AVI, dategli un altro nome che quello per il file della prima passata e selezionate ancora Add operation to job list e postponete il processo. Poi premete F4 per prendere la joblist.

Tutto ciò che dovete fare ora è premere START ed entrambe le passate verranno effettuate senza richiedere alcun intervento manuale. Una volta finito l'encoding potete chiudere sia VirtualDub che GKnot.

>> BACK

Documento aggiornato il giorno 11 dicembre 2003
Tradotto il giorno 09 marzo 2004