View Full Version : Opzioni nel codec Divx 5.05
ciottano
30-08-2003, 20:40
Vorrei chiedervi se sia impirtante attivare le opzioni Quarter Pixel e GMC nel codec durante la codifica.
Io per ora spunto solo Bidirectional Encodig.
Sarei felice se mi deste una spiegazione di ogni opzione...Grazie, Giordano.
Alex_e_Basta
31-08-2003, 11:01
Ti riporto un estratto della traduzione che feci a suo tempo dell'help del Divx5 e che puoi trovare su Quellicheilpc.
B-FRAMES (Bidirectional Encoding).
Ci sono 3 tipi di frames possibili dentro uno stream video Divx. Questi frames sono chiamati I-frames (o Intra Frames), P-frames (o Predicted) e B-frames (o Bi-directional). Prima del Divx5 gli unici tipi di frames erano I e P. Gli I-frames sono codificati usando le sole informazioni appartenenti al frame stesso. Essi non usano alcuna informazione proveniente da altri frames (compressione temporale). Un I-frame è concettualmente come codificare un singolo frame in JPEG. I P-frames sono una previsione in avanti e possono fare riferimento ad un I-frame od ad un altro P-frame. Essi sono codificati a partire dal frame che li precede. In ogni sequenza video un gruppo di frames avrà immagini simili. Ad esempio, se guardate un lettore di telegiornale,vedrete che si muove appena e che il sottofondo rimane fisso per molti frames. (Ricordate che ci sono 25 frames per ogni secondo [per noi in Europa col sistema PAL]). Così, invece di codificare ognuno di questi 25 frames in modo indipendente come se fosse una sequenza di JPEG, si può sfruttare la ridondanza di ogni frame utilizzando i P-frames. Essenzialmente un P-frame è un frame "futuro" che determina dove un blocco del frame precedente si è mosso. Sicchè, invece di una codifica nello spazio (JPEG), il P-frame dice "Hey, il blocco del frame precedente si è mosso nella posizione (X,Y)" e questo richiede molto meno dati che non codificando spazialmente ogni frame. In definitiva trasmettiamo la differenza tra 2 frames e questo è più efficiente che non trasmettere l'I-frame originale.
Divx5 introduce la possibilità di usare anche B-frames. I B-frames consentono al Divx di predire frames "dal futuro" scegliendo la migliore predizione fra 2 frames invece che da una solo. I B-frames non sono solo codificati usando una predizione in avanti, ma anche usando una previsione all'indietro (da I o P frames). Usando B-frames si riduce la quantità di dati richiesti per codificare un frame e si migliora la qualità soprattutto nelle aree dove oggetti in movimento scoprono aree nascoste.
[Vi allego una spiegazione più chiara presa da Tom’s Hardware(nota di Alex)].
Prendiamo per esempio le previsioni del tempo. All’inizio un meteorologo copre la carta del tempo che sta in sottofondo. Ora egli si muove di qui e di la sullo schermo. Dietro di lui ora appare la carta che prima era nascosta. Con il metodo classico di previsione il codec ha ora un problema: con i P-frames si possono descrivere i blocchi che si sono mossi (il meteorologo), meno le parti dello sfondo (la carta) che appaiono all’improvviso. Il codec Divx5 è “intelligente” e guarda per prima cosa alle sequenze “future” del video. Usa quindi allo stesso tempo sia una previsione in avanti (come si è mosso un blocco) che all’indietro (come si muoverà un blocco). Questo può aumentare la compressione dei dati, per quanto solo nei video che contengono questo tipo di scene.
GLOBAL MOTION COMPENSATION.
GMC aiuta migliorare le scene complesse dove sono presenti zoom e panoramiche. La capacità di ridurre i dati richiesti da un frame all'altro si applica perché c'è una certa continuità all'interno di queste scene [in quanto gli oggetti rimangono statici e cambia solo la loro dimensione (nota di Alex)]. L’attivazione del GMC è raccomandata se si vogliono codificare films naturalistici o documentari panoramici.
QUARTER PEL.
Come spiegato nel capitolo sui B-frames, i dati sono ridotti quando si riesce a memorizzare la differenza fra 2 frames al posto dell’intera immagine. La differenza nella successiva composizione dei frames è generalmente calcolata macroblocco per macroblocco (16x16 pels) o blocco per blocco (8x8 pels). Per esempio, la parte di una immagine in posizione (1,1) all’interno di un blocco si può muovere nella locazione (1,2) nel frame successivo. Come potete immaginare una immagine in un blocco avrà bisogno di una precisione maggiore rispetto alla sola capacità di muoversi sulla base limitata del metodo blocco x blocco e con una precisione limitata ad un valore intero di pixel (1,1). Divx ha aumentato questa precisione consentendo l’uso di mezzo pixel (1.5, 1.5) e di un Quarto di pixel (1.25, 1.75). Quarter pel attua uno specifico filtraggio di ogni blocco per produrre un blocco virtuale che dovrebbe rappresentare come il blocco originale apparirebbe se si muovesse di un quarto di pixel.
Per sintetizzare la spiegazione tecnica direi questo:
BE : sempre, a meno che non si abbia spazio a volontà (master.DVD) e si voglia il massimo della Qualità (ricordo che i BE hanno Quantizer doppi rispetto ai frames normali, per cui Qualità inferiore).
GMC : non ho notato grandi cambiamenti ad usarlo; direi quasi ininfluente IMHO.
QPEL: migliora la definizione dell'immagine, ma a scapito della velocità di codifica e della dimensioni finali (diminuisce la compressibilità).
Tutto ciò ovviamente IMHO e legato al comportamento del Divx5 (per Xvid i concetti tecnici sono gli stessi, ma non ho un numero sufficente di esperienze personali per poter dare giudizi).
PS: se la spiegazione tecnica ti rompe, saltala pure, non mi offendo ;)
ciottano
31-08-2003, 12:07
Grazie della spiegazione....
Avevo fatto questa domanda poiche ho codificato un film avendo come obiettivo di occupare 1200 Mega, e mi sono accorto che nelle scene di guerra, molto movimentate, mi si vedevano dei bei pixelloni, mentre nelle scene tranquille tutto ok. quindi se nn ho capito male per risolvere tale problema devo attivare QPEL.
Tale film lo avevo fatto in singola passata, che dici se faccio 2 passate le cose migliorano? 2 passate sono vbr? grazie, ciao.
Alex_e_Basta
31-08-2003, 18:37
@Ciottano
mi sono accorto che nelle scene di guerra, molto movimentate, mi si vedevano dei bei pixelloni, mentre nelle scene tranquille tutto ok. quindi se nn ho capito male per risolvere tale problema devo attivare QPEL. Il problema dei pixelloni dipende da una scarsità di bitrate da impiegare nelle scene veloci e la tecnica 1-pass non ti ha aiutato di certo: se hai problemi di spazio usa la tecnica 2-passi che distribuisce meglio il bitrate (ma che in Divx 5.5 dura il doppio) e senza Qpel che ti fa guadagnare definizione nelle scene lente, ma richiede + Bitrate per cui peggioreresti la situazione in quelle veloci. 2 passate sono vbr? Il divx5.5 è SEMPRE VBR, ma nelle varie tecniche usa algoritmi di RateControl diversi per cui si ottengono risultati diversi quanto a distribuzione del Bitrate.
Alex_e_Basta
31-08-2003, 18:54
@Pais101-Considerando che codifico sempre in singola passata su 2 Cd con audio Mp3 (mi interessa di più la qualità video),il Be non credo debba attivarlo,giusto? Dipende, certi film hanno difficoltà a stare su 2CD (se poi fai acquisizioni da TV/VHS la cosa si amplifica enormemente) per cui in questi casi il BE è obbligatorio. E' vero che la qualità dei B cala, però non ne farei un dramma: non osservando il filmato col fermo immagine è difficile coglierne l'eccessiva quantizzazione tanto + che lavorando su 2CD puoi usare Bitrate abbastanza elevati.
Tenendo fisso questo parametro (2CD) puoi ottenere buoni risultati anche senza B frames (che ti fanno risparmiare in media un 20%): dipende molto dal tipo di Film che stai codificando.2-In pratica,da non attivare mai. Concordo3-Di quanto aumentano le dimensioni?Il miglioramento di qualità è tale da giustificare il maggior tempo di codifica? Non saprei quantificarti la cosa, non ho usato molto questa opzione (il mio K7-1000 non è sufficentemente performante).
ciottano
31-08-2003, 18:58
Ok allora i miei films li farò tutti in 2 passate, attivando solo il bidirectional encoding. Garzie dell'aiuto, ciao, Giordano.
Alex_e_Basta
31-08-2003, 20:46
Un film di 2 ore con audio MP3 128 vbr e relativo overhead sta in 2 CD con un bitrate video di circa 1490; se il film non è particolarmente dinamico lo saturi tranquillamente anche senza B frames ed ottieni il massimo. Se è un film di guerra (tipo PearlHarbor, BlackHawkDown o Soldato Rian per interderci) e quindi molto movimentato (il fumo delle esplosioni o la nebbia mandano in crisi TUTTI i codec Mpeg4) ti ci vuole un bitrate + alto (quindi almeno 3CD) oppure una migliore distribuzione del bitrate disponibile: in questi casi ti consiglio il 2-passi che, potendo contare su una pre analisi del filmato, garantisce risultati migliori; è vero che ci vuole il doppio del tempo (e la tua CPU come la mia non è un missile), ma potendolo far lavorare di notte i risultati non ti deluderanno.
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.