Panoramica Su Divx 5.1 E Ekg


Scritta da CereS il 16-11-2003

Traduzione del documento rilasciato dal DARC sulle caratteristiche del nuovo codec DivxLabs 5.1.1


DivX Help Guide
DivX Versione 5.1
Revisione del Documento: 4 (2003-08-14)
Scritta da: The Members of DARC (DivX Advanced Research Centre).
Tradotta in Italiano dallo staff di DivXMania.


Finalità del Documento
Questo documento ha lo scopo di presentare le funzionalità del Codec DivX® 5.1 e DivX Pro™ 5.1 e del programma di compressione video Electrokompressiongraph™ (EKG).

Confronto delle caratteristiche dei codecs
Versione

DivX

DivX Pro

Versione corrente

5.1.1

5.1.1

Compressione

DivX

DivX Pro

I-VOP, P-VOP

B-VOP

 

Compressione basata sulla qualità

Compressione a passata singola a bitrate variabile

Compressione a passate multiple

Possibilità di inserire keyframes da parte dell'utente

Inserimento automatico dei keyframes

Rilevamento Automatizzato delle scene

Patent-pending rate control algorithm

Rapporto Qualità/Prestazioni Veloce e Standard

Rapporto Qualità/Prestazioni Lento e Lentissimo

 

Interfaccia di Feedback

 

Rate Distortion enabled Motion Estimation

 

Quarter pel

 

Global motion compensation

 

Smart psychovisual modeling

Controllo del bitrate nel buffer video (1-Pass, Nth Pass™)

Controllo del Bitrate in tempo reale

 

Inserimento forzato dei keyframes

 

Verifica dei DivX Certified Profiles

Pre-processing integrato

 

Inverse telecine integrato

 

De-interlacing integrato

 

Ridimensionamento integrato

 

Ritaglio integrato

 

Supporto a video interlacciati

 

Risoluzioni possibili

Numeri interi multipli di 4 fino a 1920x1088

Numeri interi multipli di 4 fino a 1920x1088

Bitrate

> 20 Kbps

> 20 Kbps

Decodifica

DivX

DivX Pro

I-VOP, P-VOP

B-VOP

Quarter pel (Quarter Pixel o Qpel)

Global motion compensation (GMC)

Psychovisual modeling

Post-processing

MPEG-4 short header (H.263 stream)

Video packet re-synch markers

Data partitioning

Compensazione del movimento dei blocchi

Reversibile VLD

Supporto per video interlacciati

DivX Decoder Logo

Playback di tutti i formati DivX

Risoluzione

Numeri interi multipli di 4 fino a 1920x1088

Numeri interi multipli di 4 fino a 1920x1088

I-VOP, P-VOP

Miscellaneous

DivX

DivX Pro

Quantizazioni di tipo MPEG-2/H.263

Regolazione keyframe, livelli di quantizazione, rate control, e algorithm levels

Prestazioni*

DivX

DivX Pro

Decodifica

500+ fps

500+ fps

Compressione

80+ fps

80+ fps

Input (Modalità di colore accettati in ingresso)

DivX

DivX Pro

YUV 4:2:0 (Y-V-U o Y-U-V)

24 e 32 bit RGB

YUY2

UYVY

YVYU

Output (Modalità di colore in riproduzione)

DivX

DivX Pro

16-bit (555 e565)

24 e 32-bit

YUY2

UYVY

Planar 4:2:0 (Y-V-U and Y-U-V)

Formato dei File supportati

DivX

DivX Pro

AVI file format support

Standards

DivX

DivX Pro

MPEG-4 simple profile

MPEG-4 advanced simple profile

Piattaforme (Sistemi operativi supportati)

DivX

DivX Pro

Windows (98/ME/NT/2000/XP)

Linux

N/A

Mac OS

PocketPC

In sviluppo

 



* Le prestazioni sono state rilevate a schermo intero, sui sistemi al momento più performanti. Il codec DivX e le sue caratteristiche sono indipendenti dalle applicazioni, e possono essere usati da tutte quelle applicazioni che si basano su un'interfaccia video comune come ad esempio Video for Windows. DivX Decoder
Ottimizzazione delle prestazioni

DivX 5.1 ora ha un decoder automatizzato per la gestione del post processing. Durante la riproduzione, questa versione del decoder adatta automaticamente in tempo reale il post processing al più alto livello possibile senza diminuire la velocità di decodifica e saltare frames. Le precedenti versioni del DivX Decoder richiedevano che l'impostazione del post-processing fosse decisa e impostata manualmente. Ora grazie alla gestione automatizzata (disattivabile) del post-processing è possibile ottenere una qualità video superiore, garantendo allo stesso tempo prestazioni ottimali.
Quelli che seguono sono alcuni consigli per preparare il sistema a riprodurre in modo ottimale i DivX.
Utilizzate il DivX® decoder filter con i players video. Molti player multimediali per Windows usano due metodi per decodificare i DivX: il "Video for Windows codec", oppure il "DivX decoder filter".
Usate l'ultima versione del DivX Player inclusa nel DivX Codec Bundle. Il DivX Player è il player ufficiale per i video DivX ed è ottimizzato per la gestione delle ultime funzioni del codec.
Per ottenere prestazioni fino a due volte superiori, assicuratevi che il vostro player abituale usi il "DivX decoder filter" per il playback. Il DivX decoder filter viene installato con il codec.
Per ottenere prestazioni ottimali
* Impostate l'accelerazione video al massimo nelle proprietà della scheda grafica.
* Assicuratevi di non aver nessuna sessione di cattura video in corso.
* Assicuratevi che il TV tuner non sia attivo.
* Provate a cambiare il numero di colori dello schermo. Il decoder filter non supporta la modalità a 8 bits.
* Assicuratevi di aver l'ultima versione dei drivers della vostra scheda grafica.

Post-Processing

user posted image

Il post-processing di DivX comprende i filtri di de-blocking e de-ringing orizzontali e verticali. Il post-processing è un processo molto pesante per la CPU, e richiede spesso più risorse della decodifica stessa. Nel caso preferiate non aver il post-processing attivato perché non volete avere un'immagine filtrata o perché il vostro computer non è molto potente, potrete disabilitare completamente il post-processing attivando l'opzione "Disabile Post-Processing".

Altrimenti con DivX 5.1 la gestione del post-processing viene gestita in maniera ottimale e in tempo reale in base alla potenza della CPU e della complessità della scena. Questa modalità viene attivata mettendo il check sulle opzioni "Partial" o "Full" dell' Automatic Post-Proc Adjust. "Partial" attiva solo il filtro automatico di De-blocking, mentre "Full" attiva anche il filtro di deringing. Alcune persone trovano che il filtro di deringing "slava" troppo le immagini, quindi il suo uso è opzionale.

Poiché l'occhio umano è meno sensibile alla crominanza che alla luminanza di un segnale video, ai livelli più bassi di post-processing il decoder farà uso dei filtri basandosi solo sulla luminanza e man mano che il post-processing viene aumentato per ogni filtro il decoder attiverà in sequenza gli algoritmi che gestiscono la crominanza.

Se il filtro di post processing automatico non è attivato, l'utente ha la possibilità di gestire manualmente il tipo e la potenza dei filtri di post-processing agendo sulle sliders di "De-blocking e Deringing".

Deblocking Slider

Livello diPost-processing

De-blockingorizzontale sullaluminanza

De-blockingverticale sullaluminanza

De-blockingorizzontale sullacrominanza

De-blockingverticale sullacrominanza

0 (MIN)
1

2

3

4 (MAX)



Deringing slider

Livello di Post- processing

Deringingorizzontale

Deringingverticale

0 (MIN)

 

 

1

 

2 (MAX)


Gli algoritmi di post-processing vengono attivati dal decoder col seguente ordine: de-blocking basato sulla luminanza, de-blocking basato sulla crominanza, deringing. Potete gestire il livello di post-processing agendo sulla barra di scorrimento (Quality Level) della dialog del DivX DirectShow filter. Potete accedere a tale dialog a patire da: Start -> Programmi ->DivX -> Decoder Config, oppure con alcuni players (tipo BSPlayer o PowerDivxNextGen) l'accesso alla dialog è possibile a partire anche dal menu proprietà/opzioni del player stesso.

De-blocking
Il filtro opera sui bordi dei blocchi 8x8 basandosi sui piani di colore di luminanza e crominanza, filtrando i macroblocchi causati dalla compressione DCT (Discrete Cosine Transform) del codec. I macroblocchi sono gli artefatti più evidenti, ed è per questo che il De-blocking è il primo filtro ad essere usato.

De-ringing
Il filtro de-ringing viene usato per eliminare il rumore causato dal processo di quantizazione, che si crea sui bordi degli oggetti o delle persone. Questo rumore è molto più evidente negli anime (cartoni animati) poiché tali immagini hanno coefficienti di frequenza più elevati. Il deringing basato sulla luminanza viene attivato al livello 6 di post-processing. A causa delle alte risorse richieste alla CPU e l'effetto relativamente basso del filtro, tale livello è attivabile sui sistemi basati su processori di classe Pentium III o superiori.

Film Effect
L'algoritmo di post-processing Film Effect dona al video un aspetto più caldo (molto simile a quello delle sale cinematografiche). Il filtro Film Effect rende i macroblocchi meno evidenti e richiede pochissima potenza di calcolo alla CPU.


Quality Settings

user posted image

Smooth Playback
Attivandolo, la riproduzione di video compressi facendo uso dei B-frame richiederà meno potenza di calcolo alla CPU. Tuttavia, l'attivazione di quest'opzione introdurrà un ritardo in decodifica di 1 frame (a causa del buffering), questo farà sì che l'ultimo frame del video non sarà visualizzato. L'attivazione di questa opzione è consigliata.

YUV Extended Mode
Quando selezionata il codec cercherà di riprodurre il video in modalità YV12. questo è il modo più veloce per decodificare un video Divx, il rovescio della medaglia è che non si potranno usare i controlli di luminosità/contrasto/saturazione. L'attivazione di questa opzione è consigliata.

Overlay Extended Mode
Selezionando quest'opzione di obbliga il decoder a riprodurre il video usando l'overlay hardware invece di quello software. L'overlay hardware è molto più veloce, ma non è supportato da alcune schede video. Quando si usa questa modalità il player basato su DirectShow non è in grado di aprire più di una finestra alla volta

Double Buffering
Attivandolo viene chiesto alla scheda video di allocare un secondo buffer di memoria per riprodurre il video. Questo aumenta la fluidità del playback video, ma non è supportato dalle schede video meno performanti con meno di 8 MB di RAM.

Film Effect
Come detto in precedenza questo è un filtro che da calore al video, viene aggiunto del rumore video simile a quello delle pellicole cinematografiche. Grazie a questo filtro si ha l'impressione che la qualità video migliori, è un' impressione abbastanza soggettiva quindi se volete usatela.

Force Color Mode (opzione nascosta)
E' un'opzione che si attiva manualmente direttamente nel registro del sistema operativo, dovrete settare la chiave di registro "HKEY_CURRENT_USER\Software\DivXNetworks\Force Color Mode" assegnando un numero da 1 a 7. Questo obbliga la scheda video ad usare una modalità di colore particolare secondo il valore inserito. Questo è necessario solo in rare circostanze per risolvere problemi della scheda video. Le modalità di colore supportate dal codec sono:
1: YV12
2: YUY2
3: YUYV
4: RGB32
5: RGB24
6: RGB555
7: RGB565
DivX Encoder
DivX Codec Menu Principale

user posted image

Introduzione
Il video e per sua natura, è una "bestia" molto difficile da gestire a causa delle sue caratteristiche in continuo mutamento. Il livello di movimento e texture, il numero e la disposizione dei cambi di scena, dissolvenze e altri effetti contribuiscono tutti ad aumentare la serie dinamica dell'entropia dello stream video.
Questa variabilità dell'entropia si manifesta come bitrate video che può variare enormemente nel tempo. Poiché i sistemi di comunicazione, Internet incluso, operano quasi a bitrate costante, dobbiamo fare in modo di conciliare la variabilità di bitrate di un flusso video alle limitazioni di bitrate costante del canale.
Perché un video DivX sia indirizzato correttamente in tempo reale verso il decoder, il controllo del bitrate del decoder deve verificare che il buffer non sia violato. Se questo viene fatto correttamente il buffer sarà sempre pieno e non ci saranno problemi di underflow, in questo caso si dice che il decoder è "conforme al VBV". Non c'è differenza se il video è stato creato in una o più passate, se è online o offline, è il controllo del bitrate dell'encoder che ne accerta la conformità.

Requisiti
I requisiti per avere un VBV conforme sono tre, e in ordine di importanza sono:
Conformità VBV: I parametri VBV sono specificati (dimensione, occupazione iniziale, caratteristiche del canale) il rate control dovrebbe evitare di produrre video che rischia di violare il buffer del decoder.

Target Bitrate: Cerchiamo di soddisfare le richieste degli utenti il più possibile. Questo è strettamente correlato alla grandezza del file.

Qualità video: Il Rate control dovrebbe creare la migliore qualità soggettiva in base ai vincoli impostati. La costanza è importante in questa fase, in quanto i cambiamenti di qualità si notano subito ed il video è spesso considerato di peggiore qualità basandosi su una breve sequenza.

L'algoritmo RC deve soddisfare i precedenti requisiti intervenendo sui quantizzatori (o su gli altri parametri che influiscono sulla dimensione dei frame compressi) nei frame o nei blocchi.


Versione 5.1 Rate Control Modes

user posted image

Sono disponibili due modalità del VBV RC. Entrambe soddisfano i tre requisiti precedenti. Le modalità differiscono per il numero di informazioni disponibili quando cercano di soddisfare i requisiti:
Causal (1-Pass): Un sistema causale è un sistema il cui output dipende unicamente dalle condizioni istantanee e precedenti. Non è in grado di prevedere il futuro. Il Rate control Causale RC viene usato nella modalità 1-pass RC, o per la compressione in tempo reale. La modalità passate multiple (Nth pass RC) si avvantaggia delle informazioni acquisite da una (o più) analisi fatte in precedenza della sequenza video. Se uno dei requisiti dell'algoritmo nella passata multipla è identico con algoritmo casuale - ma è anche possibile soddisfare questi requisiti utilizzando le informazioni raccolte nelle precendenti passate. Il profilo Divx è selezionato al massimo valore di bitrate e sarà anche selezionato per aiutare al massimo la riproduzione nei player certificati Divx.

Nth pass RC (2-Pass \ Multipass): Questa modalità si differenzia dalla precedente poiché ci sono informazioni riguardanti la sequenza video fornite da una o più analisi della sequenza video stessa. Queste informazioni possono essere usate in modo da soddisfare al meglio i tre requisiti VBV. Nth pass RC rimpiazza la modalità 2 - Pass RC e può essere usato nella stessa identica maniera. Per eseguire 2 passate, eseguite "multipass first - Pass" e poi "multipass Nth - Pass". In questa maniera si ha un accuratezza migliore di quella offerta nella modalità "1 - Pass". In questo modo l'encoder cerca di ottenere la qualità dello stream costante, e contemporaneamente assicura che la dimensione dello stream sia il più possibile uguale a quella specificata. Questa modalità implica che il video sia processato almeno 2 volte. La compressione a passate multiple è indipendente dal programma usato e può essere usata con tutti programmi. Se volete comprimere 2 ore di video ed esser sicuri che questo riempia un CD da 700Mb, questa è la modalità da utilizzare. Il nuovo RC permette inoltre di affinare il bitrate a seconda della complessità del video che state comprimendo. Regolando il parametro "complexity modulation" a seconda della complessità del video potete migliorare la qualità video.

1-Pass Quality Based Mode: L'encoder comprime tutto esattamente con la stessa qualità indipendentemente dal valore del movimento. Questa modalità è accessibile dopo aver disattivato la limitazione ad usare i profili certificati DivX. Quando viene usata questa modalità ogni frame riceve la stesso valore di compressione, senza badare alla sua complessità. Quindi questo non è sicuramente il miglior modo per archiviare i propri video, ma può essere utile quando si prepara un video per una futura compressione. Questa modalità garantisce la preservazione della qualità ad ogni frame. Quando si utilizza questa modalità di compressione, andando ad agire sulla barra di scorrimento, il codec regolerà i quantizer che si basano su una percentuale di qualità che verrà usata per comprimere ogni frame.

CBR 1-Pass & 2 Pass Mode: Settando il "Max Bitrate" uguale al bitrate impostato (o bitrate medio) riuscirete ad eseguire una compressione a bitrate costante.


Nuove modalità ad alta qualità della stima del movimento
Sono disponibili due nuove modalità di stima del movimento ad alta qualità selezionabili con la slider "Performance / Quality". Le modalità "Slow" e "Slowest" aumentano la qualità visuale utilizzando degli algoritmi di rate distortion.

user posted image


Performance \ Quality Settings

Ora ci sono 4 modalità di rapporto Velocità \ Qualità. Le Modalità Slow e Slowest, possono dare significativi aumenti della qualità quando vengono usati.
Fastest - Questa corrisponde alla modalità "Fastest Quality Mode" delle versioni precedenti. Non viene fatto nessun processo di stima del movimento. Questa modalità è intesa di essere usata abbinata alla modalità 1 Pass Quality mode (con Q=1 o Q=2), col scene change threshold impostato a 1 e senza funzionalità MPEG-4 attivate. Con questa modalità, il codec genera dei frames ad altissima qualità, molto utile per fare catture video di alta qualità prima di eseguire una compressione a bitrate più basso.

Standard - La modalità standard corrisponde alla modalità "Slowest" delle versioni precedenti del codec DivX. Questa modalità fa uso di un algoritmo di stima del movimento che permette un buon compromesso fra velocità di compressione e qualità video. Questa è stata leggermente ottimizzata e da risultati qualitativi migliori rispetto alle versioni precedenti.

Slow - Questa nuova modalità emula una parte delle nuove "rate-distortion based decisions" e permette di ottenere un significativo aumento qualitativo rispetto alla modalità standard.

Slowest - Questa nuova modalità attiva TUTTI i processi "rate-distortion based decisions" ed è raccomandata solo se avete PC potentissimi o volete ottenere la massima qualità possibile. (Tenete presente che col PC più potente ad oggi disponibile Pentium 4 a 3.2 GHz difficilmente si superano i 10 fps di velocità media in questa modalità)

Profile Wizard (Profili DivX ed uso dei MP4 Tools).

user posted image


Utilizzo di Qpel and GMC
Qpel, GMC e i B-frames possono ora essere gestiti tramite il wizard "Select Profile". Se viene selezionato un Profilo Certificato DivX l'unico MPEG4 Tool attivabile sarà il "Bi-directional Encoding". Per abilitare l'uso di Qpel e GMC o altre funzionalità non certificate, dovete disabilitare i profili predefiniti mettendo il check alla voce "disable profile". Se viene selezionato un profilo, il codec DivX si accerta che abbiate selezionato un bitrate e le opzioni ottimali per assicurare la compatibilità al profilo scelto. Questo include una selezione automatica del bitrate massimo, delle funzioni avanzate, e consigli per l'utilizzo delle risoluzioni appropriate.

MPEG-4 Tools

user posted image

B-frames/Bi-directional encoding
Ci sono tre tipi di Frames possibili in un flusso divx. Questi Frames sono chiamati "I-Frames" (Intra), "P-Frames" (Predetti) e "B-Frames" (bi-direzionali). Prima della versione 5.0 del codec esistevano solo i frames di tipo I e P. I frames di tipo I utilizzano solo le informazioni presenti nel frame stesso, non utilizzano dati di altri frames (compressione temporale). Teoricamente un I-Frame è simile ad un'immagine JPG. I P-Frames invece sono codificati in base alle differenze col frame che li precede, sia che sia un I-Frame o un P-Frame. In ogni flusso video possono esistere più fotogrammi simili o uguali. Se si osserva un telegiornale in cui è inquadrato a mezzobusto un giornalista si noterà che il fondale resterà identico col passare del tempo, ora siccome in una sequenza video ci sono 30 fotogrammi per secondo (25 in Europa), potete facilmente capire che se si codificano interamente tutti i frames avremo uno spreco di informazioni per codificare sempre le stesse informazioni. Per evitare questo, si fa ricorso ai "P-Frames", che invece di salvare decine di volte per secondo un fotogramma intero, salverà per ogni frame processato solo le differenze col frame precedente. La modalità di compressione con fotogrammi di tipo P si basa inoltre sull' analisi del movimento dei blocchi (8x8 Pixel) e macroblocchi (16x16 pixel) che compongono un frame, quindi se nella scena ci sono degli elementi che si muovono ma la loro forma non cambia, al codec basterà indicare che tale elemento si è spostato dalla posizione (x,y) alla posizione (x1,y1).

A partire dalla versione 5.0 di DivX Pro è stato introdotto l'uso dei frames di tipo B (bi-direzionali). I B-Frames permettono al codec di predire I frames dal futuro, scegliendo la miglior predizione basandosi su due frames invece che su uno solo. I B-frames non sono codificati partendo solo dalla predizione dei frames che precedono, ma anche da quelli che seguono, indipendentemente dal fatto che siano I o P-frames. L'uso dei B-Frames riduce la quantità di dati necessaria per codificare un frame e migliora la qualità specialmente nelle aree in cui oggetti in movimento scoprono zone nascoste.

Con DivX 5.1 gli algoritmi logici dei B frames sono stati migliorati. La stima del movimento fatta per questi frames è stata ottimizzata per ottenere una precisione migliore, anche la modulazione della quantizazione è stata modificata il modo da adattarsi meglio alle varie situazioni.

Global Motion Compensation
Questa modalità interviene quando avvengono degli zoom o allargamenti di scena. La compensazione globale di movimento basandosi su particolari algoritmi, permette di migliorare la qualità riconoscendo quegli oggetti che per effetto zoom o pan cambiano dimensione o fuoriescono progressivamente dalla scena.

Quarter Pel
Come anticipato nel paragrafo dedicato ai P-Frames, le informazioni vengono salvate basandosi sul movimento di gruppi di pixel. Prendiamo ora in considerazione una parte di immagine contenuta in un blocco di pixel che da un frame all'altro passa da una locazione della griglia di coordinate (1,1) ad un' altra locazione di coordinate (1,2). Come potete ben capire, l'accuratezza del movimento della parte d' immagine contenuta in tale blocco è limitata dalla possibilità di analisi basata su un pixel intero, (1,1). DivX ha migliorato l'accuratezza precedente di tipo H-Pel (Half pixel, cioè mezzo pixel) che permetteva di gestire movimenti (1,1) ? (1.5, 1.5), introducendo Q-Pel (Quarter pixel, cioè ¼ di pixel). Il Q-Pel tramite uno specifico di filtraggio di ogni blocco produce un blocco virtuale che rappresenta dove apparirebbe il blocco originale se avesse eseguito un movimento pari ad un quarto di unita: (1,1) ? (1.25,1.25).


Settings Menu

user posted image

Il menù per la gestione delle impostazioni permette di salvare i settaggi più usati in modo che possano essere riutilizzati facilmente. Ciò è utile in moltissimi casi come ad esempio per ottimizzare certi particolari filmati, per garantire il funzionamento di dispositivi di decodifica che supportano solo particolari funzionalità MP4, inoltre è anche possibile inviare i settaggi ad altri utenti in caso di problemi. Per utilizzare tale funzione premere il pulsante "add codec settings" e la propria configurazione verrà salvata con il nome da voi scelto. Per salvare la configurazione su file usare la funzione "Save settings to file" mentre per caricarla usare "load settings from file". (Un'altra cosa importante che si può ( e vi consiglio di fare) da questa schermata è quella di disabilitare la "Feedback window", spettacolare da vedere ma ingorda di risorse di sistema.[NdT]) Menu Video

user posted image

Psychovisual Enhancements (Miglioramenti Psicovisuali)
Analizzando ciò che si conosce sul Sistema Visivo Umano (HVS in inglese) abbiamo incrementato l'efficienza di distribuire i dati video per aumentare la qualità video. Per esempio se l'apparato visivo umano ha pochissima sensibilità ad uno specifico tipo di caratteristica in un immagine potremo diminuire l'ammontare di dati allocati in questa fase e riposizionarli in un punto in cui la sensibilità umana sia ai massimi livelli. Il miglioramento Psychovisual è applicato sia ai frames che a macroblocchi. Uno dei fattori più importanti nel valutare il miglioramento basato sul modello Psychovisual non è quello di analizzare un singolo frame ma un paragone basato sull'intera sequenza. Un'immagine può apparire migliore o peggiore se è preso in esame un singolo frame ma la chiave per ridurre i dati è fare in modo che la percezione umana non lo noti nel visionare una sequenza a pieno frame-rate (es. 30 Frame Sec). Il modello Psychovisual è un nuovo campo in cui le modifiche vengono applicate a interi filmati . Questo nuovo campo è pieno di possibilità che noi abbiamo appena iniziato ad esplorare. Gli algoritmi di modellazione Psicovisuale sono stati molto sviluppati ed hanno apportato miglioramenti sostanziali rispetto a quelli delle versioni precedenti del codec DivX. Le nuove modalità Psicovisuali ora si basano su studi più approfonditi sulle caratteristiche delle capacità visive umane ed includono ora il "Cortex Texture Masking". Gli Psychovisual Enhancements sono attivabili a partire dalla tab "video" mettendo il check alla voce "Psychovisual Enhancements " e selezionando la modalità "fast" o "slow".

La maggior parte degli artefatti della compressione video sono dovuti al rumore di quantizazione. Questo rumore è prodotto quando coefficienti decimali vengono arrotondati per eccesso o per difetto durante il processo di quantizazione. La modalità Psicovisuale controlla dove appare il rumore video in ogni frame. Il rumore viene ridotto (risparmiando cosi parte del bitrate), mentre al contrario, nelle aree dove è più difficile che venga notato può essere anche aumentato. Il nuovo PV (Psychovisual Enhancements) lavora manipolando i coefficienti della DCT mentre in passato cambiava il quantizer sui macroblocchi.

La modalità "slow" analizza ogni blocco e decide se nascondere parte del rumore risparmiando bit senza degradare la qualità percepita. È più lento perché è più conservativo è molto accurato in modo da evitare la formazione di blocchi e ringing.

La modalità "fast" è, almeno in teoria più sofisticata perché permette di rilevare dove appare il rumore all'interno di un blocco 8x8. Quindi ad esempio se il video è un anime, esso tenta di ridurre il rumore di quantizazione situato solo nei pixels che costituiscono i bordi della cella.

A livello visivo entrambe le modalità sono quasi simili, se si osserverà il viso di una persona, si osserverà una pelle più dettagliata e forse anche un po' di granulosità, osservando con attenzione i capelli invece (ma sarà molto probabilmente necessario ricorrere a qualche strumento matematico per farlo) si noterà un pò di ringing, un pò di blocchi o altri lievissimi artefatti. Quindi i bits vengono risparmiati in un area meno importante per permettere di migliorare la qualità la dove è più ovvio andarla a cercare.

Enable Crop (Abilitare il taglio)
Il taglio è comunemente usato per rimuovere bande nere che impegnerebbero per essere compresse una parte del bitrate. Le bande sono comunemente usate nei formati Widescreen o Letterboxed. Lo scopo del taglio quindi è la rimozione di materiale non desiderato

Enable Resize (Abilitare il ridimensionamento)
Il ridimensionamento permette ai contenuti di essere compressi ad una specifica dimensione. ci sono quindi svariati usi per l'utilizzo di questa funzione. Normalmente più piccola è la risoluzione minore è la dimensione del file. La risoluzione in uscita può essere regolata o per mantenere il corretto rapporto nel film originale (Aspect Ratio) o appunto per modificare la risoluzione per casi in cui sia necessario una dimensione ed un bit-rate inferiore, ad esempio per video conferenze o visualizzazione tramite browser. Ci sono 4 opzioni per il ridimensionamento:
Bilinear (Very Soft) Questo algoritmo di resize genera immagini dai contorni addolciti e anche i dettagli sono meno accentuati.
Bicubic (Soft) Gli algoritmi di ridimensionamento Bicubico a seconda della loro complessità, permettono di avere immagini più o meno nitide, in questo caso si ha un ridimensionamento che tende ad addolcire le immagini, in maniera meno evidente rispetto al metodo Bilineare.
Bicubic (Normal) In questo caso, il ridimensionamento Bicubico genererà immagini più naturali o simili al livello dell' originale.
Bicubic (Sharp) Vengono generate immagini più nitide e i dettagli fini sono più evidenti.
Da un punto di vista puramente matematico il metodo di ridimensionamento bicubico è l'ideale nel caso di contenuti che devono essere ingranditi mentre il ridimensionamento bilineare è l'ideale nel caso opposto. Nella realtà abbiamo notato che vero l'inverso, il bicubico fornisce una qualità migliore quando si riduce la dimensione. Il bi-lineare è l'ideale nel caso si disponga di CPU poco potenti, e consente inoltre al codec di essere più rapido e di fare uso di bitrates meno elevati per generare immagini senza artefatti visibili. La scelta dell'algoritmo da usare è in fin dei conti una soluzione personale e dipendente dai risultati che si vogliono ottenere.

Pre-Processing
Per rumore video si intende un effetto neve, righe, o disturbi che si verificano guardando un filmato (per intenderci, l'effetto neve è quel disturbo video percepibile quando la TV non è collegata all'antenna). Ogni processo di produzione e distribuzione apportata ad un filmato può creare rumore video. Alcuni esempi sono riscontrabili nelle vecchie registrazioni. Il rumore video può essere un grosso problema nel campo della compressione video, in quanto tale fenomeno tende ad impegnare gran parte del bitrate video.

Il filtro di pre-processing usa tecniche digitali per rimuovere il rumore dal filmato in entrata (sorgente) prima di codificarlo. Esistono 2 tipi di filtro per questo scopo: il filtro temporale e quello spaziale. Per apprendere nei dettagli come funzionano, prendiamo in esame un singolo pixel all'interno dell'immagine. Un filtro di tipo spaziale analizza un gruppo di pixel confinanti col pixel in esame ed opera uno smoothing fra i vari pixel rendendo l'area processata più uniforme. Un filtro di tipo temporale si basa sul fatto che il rumore tende a muoversi, aumentare o diminuire fra un frame e l'altro abbastanza rapidamente, quindi opera uno smoothing ai pixel che si trovano nella stessa posizione in più frames consecutivi attenuando cosi quei pixel che appaiono occasionalmente. Utilizzando queste tecniche è possibile, in alcuni casi aumentare la compressibilità e ottenere un video compresso di qualità migliore.
Ci sono 4 settaggi per il pre-processing
Light (Leggero)
Normal (Normale)
Strong (Forte)
Estreme (Estremo)
Come per tutte le impostazioni, ce ne sono certe che in alcuni casi possono essere più performanti di altre. Generalmente il rumore di fondo può causare in fase di compressione delle notevoli perdite di compressibilità a scapito delle dimensioni finali (e di conseguenza anche della qualità). Il settaggio normale (2. Normal) di pre-processing non causa grandi degradazioni al video ma è stato comunque introdotto una funzione più leggera (1.Normal). Le 2 impostazioni rimanenti: Forte (3. Strong) ed Estremo (4. Estreme) possono causare un filtraggio molto importante ed eliminare una grande quantità di informazioni video, vanno quindi usate solo se l'obbiettivo principale è quello di ridurre le dimensioni a discapito della qualità.

Keyframe
Il codec divx inserisce automaticamente un fotogramma chiave (keyframe) ogni volta che riscontra un cambio di scena, è comunque possibile che intercorra un lungo intervallo tra un cambio scena e l'altro, in questo caso l'encoder provvede automaticamente ad inserire un fotogramma chiave a frequenza prefissata. I fotogrammi chiave sono significativamente più grandi degli altri, un loro uso eccessivo può quindi aumentare drasticamente le dimensioni del file in uscita. Abbiamo scoperto che di solito l'intervallo massimo cui l'encoder evita di inserire un keyframe è 300 frames il che corrisponde approssimativamente ad un keyframe ogni 10 secondi in un flusso di 30 fps. Un uso frequente dei keyframe permette di migliorare la funzione di ricerca da un punto all'altro della sequenza video nel caso il player sia progettato per eseguire l'allineamento sui fotogrammi chiave. Aumentare la distanza fra i keyframes può indurre ritardi, disincronizzazione audio-video e la diminuzione della qualità nel film finale.

Supporto ai video Interlaciati
La codifica e decodifica di contenuti interlaciati ora è supportata. Se il contenuto che state processando è interlaciato, ora è possibile convertire i video interlaciati in modo che alla fine risultino essere di tipo progressivo. Eseguendo questa operazione la qualità del video migliora ma il costo è rappresentato da un aumento delle dimensioni finali del file. Il de-interlaciamento è supportato secondo lo standard Mpeg-4 e usa decisioni di codifica preferendo lo standard progressive o interlaciato a seconda di quanto richiesto, ciò significa che verrà eseguita una codifica interlaciata nel caso ci siano artefatti video dovuti all' interlaciamento, nel caso invece il movimento sia molto basso verrà eseguita una compressione di tipo progressivo.

A causa delle caratteristiche del video interlaciato in NTSC il numero minimo di linee è 480 mentre in PAL è 576 (il numero può essere inferiore ma il risultato non è garantito). Di solito i video interlaciati si hanno in caso di acquisizione da Tv o riversamento da telecamere.
De-interlaciamento
L'interlaciamento, inventato negli anni '40 è forse la più antica forma di compressione, anziché trasmettere un pacco di 60 frames al secondo gli ingegneri scoprirono che avrebbero ottenuto lo stesso risultato visualizzando alternativamente i flussi con le sole linee pari e poi quelli con le linee dispari, dimezzando così la banda necessaria. La Tv avrebbe in seguito riunito il tutto. L'interlaciamento è comunemente usato nelle trasmissioni televisive o nelle telecamere normalmente vendute.

L'interlaciamento non è un problema se è correttamente gestito da un dispositivo interlaciato (ad es. la televisione), una telecamera interlaciata a 30 fps cattura prima le linee pari di un frame in un sessantesimo di secondo, e le restanti linee del frame in un altro sessantesimo di secondo. Se visualizzati su un dispositivo progressivo (ad es. il PC) i 2 flussi vengono interlaciati per creare un fotogramma. Poiché un mezzo gruppo di linee del frame viene catturato con una frazione di secondo di ritardo dall'altro mezzo gruppo, gli oggetti della scena in rapido movimento possono apparire con delle striature. Per questo motivo di solito nei PC è preferito un sistema di tipo "progressivo" in cui tutte le linee di un frame vengono trasmesse simultaneamente e quindi il deinterlaciamento non è più necessario.

E' possibile applicare al filmato un filtro chiamato "de-interlacing" per limitare gli artefatti visualizzati sullo schermo, il codec DivX è in grado di deinterlaciare la sorgente video prima di codificarla, per aumentare l'efficienza di questa funzione è buona regola che le dimensioni del filmato non vengano modificate verticalmente da un' applicazione esterna prima di essere processate dal codec, se il ridimensionamento viene eseguito dal codec il problema non si pone.

La gestione dell'interlaciamento da parte del codec DivX può avvenire in tre modi:
"All frames are progressive" - (Tutti i frames sono progressivi), questo è il settaggio predefinito, il de-interlacing e IVTC non vengono mai usati. E' adatto per il materiale in formato progressivo.
"Encode as interlace" - Al codec viene comunicato che il video sorgente è interlaciato. Usate questo settaggio se volete codificare contenuti interlaciati e mantenere gli artefatti dovuti all'interlaciamento.
"Deinterlace all frames" - Il codec userà un algoritmo adattativo per deinterlaciare ogni frame prima di ridimensionarlo e codificarlo. Il video sorgente non deve essere ridimensionato e croppato prima di essere codificato. Usate questo settaggio se la sorgente è interlaciata e volete comprimerla come progressiva.



Feedback Mode

user posted image

Una delle cose più interessanti del DivX 5.1 Pro è il DivX Feedback Mode. Il DivX Feedback mode è stato ideato inizialmente per essere usato come strumento per i test di laboratorio, col quale è più facile vedere e capire gli effetti delle varie funzionalità (e dei loro settaggi) sulla qualità video.

Questo nuovo strumento permette agli utenti di analizzare l'impatto delle varie funzionalità usate quando processano uno specifico contenuto. Questo permette agli utenti di prendere decisioni migliori di quali funzioni usare (e come usarle) per ottenere il miglior risultato possibile. Il feedback mode mostra semplicemente come opera ogni singola funzionalità del codec. Ad esempio, sarà possibile vedere la stima del movimento in tempo reale oppure come lo Psychovisual Modelling prenda delle decisioni in ogni frame. La feedback windows oltre a mostrare quello che succede durante la compressione permette, premendo il tasto "Pause" di arrestare temporaneamente la compressione e di operare delle modifiche su alcune funzioni del codec.

Qualche informazione sui Profili Certificati DivX

user posted image

Con il nuovo programma di certificazione, DivxNetworks consente a terze parti la creazione di prodotti Certificati Divx che sono rigorosamente testati e totalmente compatibili con lo standard Divx. Esistono 4 tipi di certificazione Divx:
Handheld Video Devices, Portable Video Devices, Home Theater Devices e High Definition Video Devices
Queste descrizioni identificano velocemente il tipo di certificazione ottenuta da un dispositivo per assicurare una riproduzione a video ottimale.

Con le certificazioni Divx è stato introdotto un nuovo concetto: i profili Divx. A seconda del tipo di filmato da comprimere il codec assicura che esso rientri in determinati parametri assicurando una riproduzione video ottimale su molteplici dispositivi. Per renderlo semplice il numero di profili è ridotto e la loro diversificazione è basata su una semplice considerazione: la risoluzione del filmato (o meglio il numero di blocchi 16x16 al secondo) e caratteristiche avanzate (B-frames). A seconda dell'applicazione da voi desiderata o del dispositivo che intendete usare, il codec si occuperà di usare i migliori settaggi per offrire sempre la massima qualità e compatibilità con i prodotti certificati Divx.








Risoluzione Massima a 30 fps Risoluzione Massima a 25 fps Max numero blocchi 16x16 al secondo.
Handheld 176x144 192x144 1485
Portable 352x240 352x288 9900
Home Theater 720x480 720x576 40500
High Definition 1920x1080 1920x1080 108000



Se è selezionato un profilo divx, il codec userà automaticamente la nuova funzione chiamata algoritmo di controllo VBV spiegata sotto la voce "Rate Control" all'inizio di questo documento. L'uso del VBV assicura che il massimo bitrate stabilito non venga mai superato e che le specifiche Mpeg-4 vengano sempre rispettate. Questo aiuta nel caso in cui la decodifica venga effettuata su dispositivi le cui specifiche siano definite dallo standard ISO/IEC 14496-2:2001(E). Se il video Divx venisse rilasciato verso il decoder in Real Time tramite un canale ristretto, il Rate Control dell'encoder si assicura di non incorrere mai in una violazione del buffer. Se ciò viene fatto correttamente una situazione di saturazione o totale mancanza di dati nel buffer non dovrebbe mai verificarsi. In questo caso l'encoder verrà definito "VBV compatibile". Non fa differenza se il video è stato compresso in una o più passate né importerà se il filmato è riprodotto in tempo reale o off-line, in quanto sarà il rate control dell'encoder ad assicurare la compatibilità.

Il Qpel e il GMC non sono mai presi in considerazione se si sceglie un profilo DIVX. Dopo una completa analisi dello stato del Qpel in rapporto allo standard Mpeg-4 associato ad una valutazione dei fattori tecnici necessari al supporto di tali caratteristiche, abbiamo stabilito che il loro supporto non è necessario per la prima generazione di prodotti certificati Divx.

Il Qpel e il GMC possono essere attivati desselezionando la voce "Choose Profile". DivX® Advanced Research Centre (DARC) Team
Digital Video Engineering Team
Eugene "Sparky" Kuznetsov
Andrea "e7abe7a" Graziani
John "eagle" Funnel
Adam "c0redumb" Li
Mac® OS development by Adrian "AdrianB" Bourke
Cheng Huang
Management & QA
Jérôme "Gej" Rota
Darrius "Junto" Thompson


Copyright and Trademarks

The DivX Codec and DivX Pro Software are Copyright © 2000-2003 DivXNetworks, Inc. MMX iDCT and fDCT implementations are © Intel Corp., 1998-2000.
DivX® and DivX Pro™ are trademarks of DivXNetworks, Inc.
Appendix
MPEG-4 Tools, Profili e Livelli

Visual Tools Advanced Simple Profile Simple
Basic
I-VOP
P-VOP
AC/DC Prediction
4-MV, Unrestricted MV
Error Resilience
Slice Resynchronization
Data Partitioning
Reversible VLC
Short Header
B-VOP
Global Motion Compensation
Quarter-Pel Motion Compensation
Visual profile Level Typical visual session size Maximum bitrate (kbit/s)
Advanced Simple Profile L0 176x144 128
Advanced Simple Profile L1 176x144 128
Advanced Simple Profile L2 352x288 384
Advanced Simple Profile L3 352x288 768
Advanced Simple Profile L4 352x576 3000
Advanced Simple Profile L5 720x576 8000
Simple L3 CIF 384
Simple L2 CIF 128
Simple L1 QCIF 64




Electrokompressiongraph™ (EKG) Application

Cos'è EKG?

EKG è uno strumento video avanzato che permette di ri-allocare il bitrate per una particolare scena di un video clip. Anche se il rate control del Codec DivX è molto buono, esso non è perfetto tenendo conto anche del fatto che la qualità è molto soggettiva. EKG permette di cambiare o ri-allocaare il bitrate in specifiche porzioni di un video DivX che possono aver bisogno di più o meno bitrate.

Il Codec DivX genera un file di Log contenente tutte le informazioni riguardanti il video sorgente e le decisioni prese dall' algoritmo Rate Control. Con la modalità a 2 passate questi dati vengono ulteriormente analizzati in modo che i bits vengano distribuiti più accuratamente durante la seconda passata. Nella prima passata, il modulo di controllo del bitrate analizza ogni sequenza video, e registra la complessità di ogni frame. Nella seconda passata, il modulo di controllo del bitrate imposta I quantizer per ogni singolo frame a seconda della sua complessità e le medie complessive ottenute durante la prima passata. Per ogni frame vengono registrati i seguenti dati:
• Offset del frame (cioè che numero di frame è)
• Tipo di codifica operata sul frame (I,P o B)
• Complessità del movimento
• La complessità della Texture (cioè se si tratta di un immagine dettagliata o meno…)
• Dimensione dei frames
• Parametro di Modulazione
Quando si sta svolgendo la seconda passata (nth) il rate control cerca di raggiungere tre obbiettivi. Primo si accerta di non superare il massimo bitrate consentito. Farà qualunque cosa prevenire questo, e nei casi più estremi, eliminerà dei frames. Secondo, cercherà di rispettare il bitrate desiderato (e quindi la dimensione finale desiderata) il più possibile. E terzo, cercherà di distribuire il bitrate fra i frames in modo da ottenere una qualità costante, o rispettando le modulazioni impostate dall' utente.

Anche se il codec è efficiente, c'è sempre il modo di migliorare eseguendo una regolazione fine. L' Electrokompressiongraph permette all'utente di ri-allocare manualmente il bitrate nel video andando ad operare sui parametri di modulazione. Il parametro di modulazione per default è impostato a uno. Il parametro di modulazione è un valore che vien moltiplicato ad una quantizer di base in modo da ottenere un nuovo quantizer che aumenti o diminuisca la qualità di uno specifico frame. Ad esempio, se il codec decide che ogni frame deve essere codificato con quantizer pari a 4.0 e l'utente imposta la modulazione a 1.25 per alcuni frames saranno codificati con quantizer 5.0. (Nuovo Q = Modulazione * Q esistente). EKG cercherà comunque e sempre di avvicinarsi il più possibile al bitrate definito. Se aumentate il bitrate per un gruppo di frames, questo bitrate sarà sottratto ad altri frames e, analogamente, se diminuite il bitrate ad un gruppo di frames, questo bitrate sarà distribuito agli altri frames in modo da rispettare il più possibile il bitrate (e quindi la dimensione finale).

Un esempio di quel che può fare l'utente con EKG è quello di diminuire il bitrate nei titoli di coda e di ridistribuirlo su scene molto animate. L'utente può settare la modulazione = 2.0 per i titoli di coda e per il resto del film il codec userà i quantizer necessari per avvicinare il bitrate definito, ad esempio durante il film si ha un quantizer di 3.3 e, quando si raggiungeranno i titoli di coda verrà usato un quantizer 6.6 che permette di salvare bitrate. Il fatto che diminuendo la modulazione si faccia aumentare la qualità potrebbe far confondere le idee. (0.50=200% e 2=50%) Tenete presente però che la modulazione con EKG è indicata come percentuale. Il parametro di modulazione è un moltiplicatore del quantizer e il range di tale parametro è limitato in modo tale che la qualità possa essere dimezzata o raddoppiata, questo è stato ottenuto limitando il parametro di modulazione da 0.50 a 2.0
1. Range del parametro di Modulazione - 0.50 -> ' 2.0

Modulation

Q

2 12

0,5

1 6

0,6

1 7,2

0,7

1 8,4

0,8

2 9,6

0,9

2 11

1

2 12

1,1

2 13

1,2

2 14

1,3

3 16

1,4

3 17

1,5

3 18

1,6

3 19

1,7

3 20

1,8

4 22

1,9

4 23

2

4 24



Con la tabella riportata sopra, potete vedere che il quantizer può essere ridotto del 50% o incrementato del 200% (0.5 -> 2).
Come si usa EKG?
Scegliete dove il file di log deve essere scritto dal codec DivX Pro. Per farlo dovete recarvi nella Tab di controllo del bitrate e nella sezione files attiva con la modalità Multipass. Per evitare confusione coi file date al file di log un nome che corrisponda al video che volete processare. (ad es. TheMatrix.log).
Pagina stampata da Divxmania.it
Vietata la copia e la distribuzione (anche parziale) senza la previa autorizzazione.