Newsgroup: it.comp.software.divx
Titolo: interleave preload in Avinaptic e Gspot

Mi sono accorto ora che avinaptic riporta Preload e Max A/V diff, che
dovrebbe essere l'interleave.
Prima se non sbaglio solo gspot era in grado.
Ho fatto delle prove muxando un video con virtualdub, e cambiando i
valori di preload e I/L..
Però non ottengo gli stessi valori con avinaptic e gspot.
video: 336x176 xvid 25fps (83,36s)
audio: mp3 128k CBR 48000
le prove che ho fatto sono:
1) 0 preload 1 frame interleave
2) 40 preload 1 frame interleave
3) 0 preload 2 frame interleave
4) 80 preload 2 frame interleave
5) 0 preload 3 frame interleave
6) 120 preload 3 frame interleave
li ho analizzati con avinaptic 18-11-2007 e gspot 2.70a:
1)
avinaptic preload: 0ms  i/l: 16ms  aligned:NO
gspot preload: 0ms  i/l: 40ms  aligned:NO
2)
avinaptic preload: 24ms  i/l: 40ms  aligned:NO
gspot preload: 48ms  i/l: 40ms  aligned:NO
3)
avinaptic preload: 0ms  i/l: 40ms  aligned:NO
gspot preload: 0ms  i/l: 80ms  aligned:NO
4)
avinaptic preload: 72ms  i/l: 120ms  aligned:NO
gspot preload: 96ms  i/l: 80ms  aligned:NO
5)
avinaptic preload: 0ms  i/l: 80ms  aligned:YES
gspot preload: 0ms  i/l: 120ms  aligned:YES
6)
avinaptic preload: 120ms  i/l: 200ms  aligned:YES
gspot preload: 120ms  i/l: 120ms  aligned:YES

 Però non ottengo gli stessi valori con avinaptic e gspot.
non so come calcoli gspot il "preload" (l'autore non rende disponibili
i dettagli ne' il codice sorgente) quindi l'unica cosa che posso
spiegarti e' come lo calcola avinaptic:
la definizione che ho seguito e' questa:
"il preload di una traccia audio e' la quantita' di audio memorizzata
nell'AVI prima della memorizzazione del primo frame video".
La mia implementazione di questa definizione (che puoi vedere nel
file "parse-avi.tin" nei sorgenti che scarichi dal sito) e' semplice:
quando il parser AVI incontra il primo frame video, scandisce tutte gli
stream audio e, per ciascuno di essi, memorizza il suo attuale
timestamp: quello e' il preload e verra' mostrato nel rapporto nelle
info relative ad ogni traccia audio.
Per quanto riguarda il cosiddetto "interleave", si tratta del numero
di frame video memorizzati consecutivamente, o, da un altro punto di
vista, e' la densita' dell'audio nel video.
Ad esempio, se l'audio viene inframmezzato su ogni frame video, la
situazione e' la seguente:
AVAVAVAVAVAV...
Se viene inframmezzato ogni due frame video, la situazione e' la
seguente:
AVVAVVAVVAVVAVV...
(in questo secondo caso, i chunk audio sono meno numerosi e piu'
grossi, cioe' hanno una durata doppia rispetto al precedente)
e cosi' via...
Il concetto di "interleave" non ha alcun senso in caso di audio
VBR, ma solo nel tipico muxing di tipo CBR (puoi provare a
muxare piu' volte con VirtualDubMod un audio MP3 VBR
impostando valori diversi di interleave e otterrai sempre lo
stesso risultato perche' quell'impostazione non ha effetto
in quanto priva di senso per il VBR)
In avinaptic ho preferito non mostrare il valore di "interleave"
perche' non e' utile quanto il "max A/V diff" (e' questo che
permette di rilevare effettivamente problemi derivanti da muxing
sballati!)
Comunque lo puoi ricavare semplicemente osservando questi dati:
- l'audio deve essere CBR;
- il numero di frame video;
- il numero dei chunks audio
se il numero di cuhnks audio vale grosso modo il numero di frame
video o e' ancora piu' grande, allora l'interleave e' di un frame
(o, equivalentemente, se il framerate e' di 25 fps, si puo' dire
che e' di 40 ms);
se il numero di chunks audio e' circa la meta' del numero di
frame video, allora e' di 2 frame video, e cosi' via...
-- 
Home page di Frank: 
http://fsinapsi.altervista.org
Home page di Giubbe e FAQ: 
http://giubbe.altervista.org