Newsgroup: it.comp.software.divx
Titolo: Re: xvid e formula per il calcolo del bitrate necessario

 audio? è indipendente dai formati delle tracce audio? ecc..)
e' piu' complicato di quanto potrebbe sembrare, a meno che non ti
accontenti di una stima piuttosto approssimativa...
Il bitrate medio di uno stream e' il rapporto tra il numero di bit
dello stream e la sua durata in secondi.
Esempio: se uno stream e' lungo 100 MiB e dura esattamente un'ora,
qual e' il bitrate?
Risposta: 100 MiB = 838,860,800, 1 ora=3600 secondi, quindi il
bitrate e' 233 kbps. La lettera 'k', quando si esprime un bitrate,
vale 1000 e non 1024.
Questo vale per qualsiasi tipo di stream, sia video che audio.
Veniamo all'overhead.
Questo dipende dal formato contenitore, e temo ti tocchi studiare le
specifiche di ognuno di essi se sei interessato alla precisione
(tieni presente che ci sono molte complicazioni, perche' i contenitori
piu' complessi hanno parti opzionali).
Nel caso abbastanza semplice dell'AVI, la maggior parte dell'overhead
e' dovuta all'indice.
L'indice di un AVI (il formato originale, non l'indice ODML) e' un
vettore di puntatori a chunks di tipo sia video che audio.
Quindi la lunghezza (in bytes) dell'indice e' un multiplo fisso
del numero delle entries dell'indice. Dato che esiste una entry per
ogni chunk, e' un multiplo del numero totale dei chunk.
Quanti sono i chunk?
I chunk video sono esattamente tanti quanti il numero di frame video
(osserva che due filmati possono avere lo stesso numero di frame
video ma durata diversa, perche' il framerate puo' essere diverso;
in questo caso, quindi, non va considerata la durata ma il numero
di frame).
Il numero di chunk audio e' piu' complicato.
Se si tratta di audio MP3 VBR, allora il numero di chunk audio e'
il numero di frame MPEG dello stream.
Se si tratta di audio CBR (sia MP3 che AC3), allora il numero di
chunk audio dipende da come viene muxato l'AVI.
Ad esempio, lo stream CBR potrebbe venire muxato come se fosse VBR
(non e' un errore, si puo' fare) e allora si ricade nel caso
precedente, cioe' il numero dei chunk e' il numero di frame MPEG.
In genere, pero', gli stream CBR vengono muxati in "modo CBR" e
in tal caso il numero di chunk dipende dal cosiddetto "interleave".
Ad esempio, se il muxer usa un interleave che corrisponde a 1 video
frame (cioe', di 40 millisecondi, nel tipico caso in cui il framerate
e' 25 fps), allora il muxer genera un chunk audio ogni frame video
(e, conseguentemente, una entry nell'indice) quindi in questo caso
il numero dei chunk audio sara' grosso modo il numero dei frame
video. Se hai un interleave che corrisponde a due video frame, il
numero di chunk audio sara' grosso modo la meta' dei frame video;
e cosi' via...
(Questa caratteristica puo' essere sfruttata per diminuire di
qualche mega la dimensione di un AVI con audio CBR: basta rimuxare
usando interleave piu' ampi; in questo modo l'indice AVI diventa
piu' piccolo e, su film lunghi, si puo' arrivare a risparmiare
alcuni MB senza alcuna perdita di informazione. Pero' gli
interleave non possono essere aumentati a dismisura, per non avere
problemi bisognerebbe garantire un nuovo chunk audio almeno ogni
mezzo secondo di filmato).
Ci sono vari altri aspetti da considerare, ma questo dovrebbe
darti una prima idea...
-- 
Home page di Frank: 
http://fsinapsi.altervista.org
Home page di Giubbe e FAQ: 
http://giubbe.altervista.org

 iniziare la ricerca? Grazie mille!)
per l'AVI ti consiglio di consultare il documento scritto da
Alexander Noe, e che puoi scaricare da questa pagina:
http://www.alexander-noe.com/docu/
Ci trovi anche una buona descrizione di Matroska, forse anche migliore
di quella che trovi nelle pagine del progetto.
L'AVI e' un formato in teoria obsoleto ma ancora molto supportato, forse
perche' ritenuto di pubblico dominio, anche se ufficialmente le specifiche
sono della Microsoft (se cerchi, le trovi sul sito microsoft). Mentre
microsoft rivendica esplicitamente diritti su ASF/WMV, mi sa che sull'AVI
non rivendichi molto, perche' e' identico a formati che gia' circolavano
ancora prima (tipo AIFF inventato nell'ambito degli utenti Amiga).
Piu' di dieci anni fa un consorzio di produttori di schede hardware ha
esteso l'AVI, quindi se cerchi dovresti trovare anche un PDF intitolato
AVI OpenDML o qualcosa del genere (se ti interessa lo cerco, dovrei
averlo).
MP3 e' descritto ufficialmente nei documenti ISO dello standard MPEG-1;
ho anche quello.
Pero' e' talmente semplice che ti conviene cercare la descrizione con
google. Ad esempio:
http://www.mp3-tech.org/
http://www.mp3-converter.com/mp3codec/mp3_anatomy.htm
http://www.multiweb.cz/twoinches/MP3inside.htm
quello che e' scritto in queste pagine sopra, dovrebbe bastarti per i
tuoi scopi.
Credo ti basti sapere che uno stream MP3 e' una sequenza di frame, e
come fare a individuare l'inizio dei frame, e qual e' il bitrate
(un MP3 CBR e' un MP3 in cui i frame sono codificati allo stesso
bitrate).
Per quanto riguarda AC3, la situazione e' del tutto analoga.
Le specifiche ufficiali di AC3 sono queste:
http://www.atsc.org/standards/a_52b.pdf
Ma a te basta sapere come individuare i frame e come ricavare le
informazioni dai loro headers.
Ciao e buone feste.
Buone feste a tutti :-)


 sai direi di sì.. :-)
Proprio lui! ;)
-- 
Saluti, Kap - 
www.lordkap.it
 - AVINaptic: 
http://fsinapsi.altervista.org
FAQ del newsgroup: 
http://giubbe.altervista.org
Beh, chiunque può sopportare un dolore tranne chi ce l'ha.
William Shakespeare

 Buone feste a tutti :-)
Buone feste a te! ;)
-- 
Saluti, Kap - 
www.lordkap.it
 - AVINaptic: 
http://fsinapsi.altervista.org
FAQ del newsgroup: 
http://giubbe.altervista.org
Un essere umano: un ingegnoso assemblaggio a mo' d'impianto idraulico
portatile. - Christopher Darlington Morley

Buone feste a tutti :-)
%42%75%6F%6E%20%4E%61%74%61%6C%65%20%61%6E%63%68%65%20%61%20%74%65%20%46%72%61%6E%6B%21%20%3A%2D%29
(per fare prima incolla qui, hehe)
http://www.mikezilla.com/exp0012.html
-- 
Paradoxally,
Jan AxHell