.dsy:it.
Show 150 posts per page

.dsy:it. (http://www.dsy.it/forum/)
- Tech (http://www.dsy.it/forum/forumdisplay.php?forumid=189)
-- [MPEG-4] Info struttura del file... (http://www.dsy.it/forum/showthread.php?threadid=19763)


Posted by DarkGod on 27-05-2005 14:39:

[MPEG-4] Info struttura del file...

Ciauz!
Per il mio progetto di tesi, ho bisogno di sapere come sono strutturati i file video formato MPEG-4.
Per 'struttura' intendo proprio com'è fatto fisicamente il file a livello di byte: come riconoscere i vari frame del filmato, come distinguere gli I-frame dai B-frame, quali sono le intestazioni, ecc.
Avete idea di dove (e SE (!)) possa trovare tali informazioni?

PS: eventalmente mi potrebbero servire anche le stesse informazioni ma per i formati MPEG-2 e DivX...

__________________
Chiamatemi Darky ^_^

_____ -+- ANTINOMY -+- __________ -+- Inside Human Cruelty -+- _____


Posted by lughes on 27-05-2005 15:21:

Prova a mandare una mail a leonardo chiariglione è un genio e ha lavorato alla creazione dell'MPEG 2 e mi sembra anche del 4....
http://www.chiariglione.org

__________________
...più beviamo più vinciamo e tanti gol possiamo far, e la Pratese stravincerà, noi che siamo gli invincibili e per questo siamo qui, per poter dire RITIRATEVI!!!


Posted by mythily on 27-05-2005 15:24:

prova a vedere nel webcen dell'anno scorso, nel corso di editoria multimediale dovrebbero esserci le slide sull'mpeg4

__________________
Mythily


...prometto che alzo i piedini...


Posted by foolish on 27-05-2005 15:35:

ma l'mp4 ed il divx non utilizzano la stessa struttura?

__________________
The only way to discover the limits of the possible is to go beyond them into the impossible.
Arthur C. Clarke.


Posted by DarkGod on 27-05-2005 15:57:

Originally posted by lughes
Prova a mandare una mail a leonardo chiariglione è un genio e ha lavorato alla creazione dell'MPEG 2 e mi sembra anche del 4....
http://www.chiariglione.org


Grazie mille del contatto, mi sarà sicuramente utile!! :)

__________________
Chiamatemi Darky ^_^

_____ -+- ANTINOMY -+- __________ -+- Inside Human Cruelty -+- _____


Posted by DarkGod on 27-05-2005 16:01:

Originally posted by foolish
ma l'mp4 ed il divx non utilizzano la stessa struttura?


Più o meno..........
Nel senso che, da quello che ho capito fino ad ora, MPEG4 è un formato Microsoft, mentre DivX è stato creato "rubacchiando e attingendo" dalle specifiche di MPEG4... ;)
(Credo che le specifiche DivX siano pubbliche...)

__________________
Chiamatemi Darky ^_^

_____ -+- ANTINOMY -+- __________ -+- Inside Human Cruelty -+- _____


Posted by CrackDown on 27-05-2005 17:18:

hai provato su mpeg4.net ???
pare ci siano le reference degli standards e molte informazioni nella sezione "resources"... ovviamente in inglese.


Posted by ripe on 27-05-2005 17:35:

Originally posted by DarkGod
Più o meno..........
Nel senso che, da quello che ho capito fino ad ora, MPEG4 è un formato Microsoft, mentre DivX è stato creato "rubacchiando e attingendo" dalle specifiche di MPEG4... ;)
(Credo che le specifiche DivX siano pubbliche...)


Microsoft ed Apple... anche se poi la casa di Bill Gates ha scelto di puntare sul WMV! :)
Forse sui rispettivi siti puoi trovare qualche informazione utile...

__________________
«And if you ever smell christian blood up in the mountains, then get your axe and chop them down!»


Posted by fabpicca on 27-05-2005 17:54:

http://www.chiariglione.org/mpeg/st...eg-4/mpeg-4.htm

__________________
my website?|ubuntu linux|get Firefox|grazie Polonia |bagdad sour

"Come va che non ha le corna e le zampe di Caprone?" gli opposi. "Oh, Giuvà", mi disse il prete "adesso non si usa più.Satana è furbo". (I.Silone, Fontamara)
"Al giorno d'oggi non bisogna essere intelligenti, perchè la gente si offende" (un ubriacone)
"close your eyes / pay the price / for your paradise" (DM) "whatever you want to change/you'd better start changing it in your mind" (Transatlantic)


Posted by Barone on 27-05-2005 18:47:

Allora Divx dovrebbe essere il cuginetto bastardo di Mpeg 4....però io mi sto occupando di h264, che è simile a Mpeg4..percui se hai qualche richiesta specifica posso darti qualche dritta...purtroppo molti doc ufficiali sono a pagamento, ma magari recupero qualcosa di free in st dove sto facendo stage e tesi su h264...


Posted by fabpicca on 27-05-2005 19:44:

http://www.vcodex.com/h264.html

__________________
my website?|ubuntu linux|get Firefox|grazie Polonia |bagdad sour

"Come va che non ha le corna e le zampe di Caprone?" gli opposi. "Oh, Giuvà", mi disse il prete "adesso non si usa più.Satana è furbo". (I.Silone, Fontamara)
"Al giorno d'oggi non bisogna essere intelligenti, perchè la gente si offende" (un ubriacone)
"close your eyes / pay the price / for your paradise" (DM) "whatever you want to change/you'd better start changing it in your mind" (Transatlantic)


Posted by Barone on 27-05-2005 19:52:

Originally posted by fabpicca
http://www.vcodex.com/h264.html


ti consiglio anche il suo libro..fatto molto bene


Posted by Fredx84 on 28-05-2005 14:31:

Io tempo fa ho fatto una piccola ricerca sul formato MP3 per l'esame di maturità... Visto che appartiene alla stessa famiglia di MPEG-4, magari riesco a darti qualche dritta utile...
Quando mi sono cimentato in questa "pazza" ricerca, dopo un po' di letture ho "scoperto" che lo standard ufficiale viene pubblicato dall'ISO ( www.iso.ch ), l'organizzazione internazionale degli standard, e non dal gruppo di lavoro MPEG (infatti nel sito ufficiale di MPEG non ci ho trovato granché...). Così sono andato a cercare nel sito dell'ISO il documento 11172-3 (le specifiche del MPEG 1 - Layer 3), ma ho visto che erano a pagamento (come qualcuno prima sottolineava). Tuttavia, conoscendo il codice del documento, non mi è stato difficile reperire lo stesso attraverso qualche ricerca con Google. Ci sono voluti pochi tentativi. Infatti mi è bastato digitare "11172-3.doc", "11172-3.pdf", "11172-3.zip", "11172-3.tar.gz", ecc... Alla fine ho trovato su un sito (www.mp3-tech.org o qualcosa di simile) la documentazione ufficiale dell'ISO gratis. Tu potresti fare lo stesso: fai un po' di ricerche finché non scopri qual'è l'ente che rilascia le specifiche ufficiali (credo sia sempre l'ISO) e il nome del documento... dopodiché te lo vai a cercare con Google. Io ho fatto così. Spero di esserti stato utile (e nel frattempo vi ho dato anche un po' di dritte sull'MP3, magari a qualcuno interessano...). Facilmente la documentazione sarà in inglese.

Dimenticavo... c'è poi un sito carino (sempre in inglese) dove spiegano un po' la struttura di molti file di uso comune con diversi esempi di codice per i programmatori. Il sito è questo:

www.sourceforge.net

Ciao.

__________________
"Un grande potere comporta una grande responsabilità..."


Posted by ste.virus on 29-05-2005 22:01:

Originally posted by foolish
ma l'mp4 ed il divx non utilizzano la stessa struttura?


all'inizio si! un tizio creò il DivX 3.11 alpha decompilando e rimaneggiando il mpeg4 di casa microsoft... ed era una cosa non molto legale...
poi, avendo avuto un grande successo, dalla versione 4 in poi di DivX il codice è stato riscritto da zero per evitare guai legali... ed è nata la DivX Inc.

__________________
StE


Posted by DarkGod on 03-06-2005 16:16:

Ho fatto svariate ricerche (e sto continuando a farne) e ho raccolto diversa documentazione, tra cui le specifiche dell'MPEG-4 dell' ISMA (Internet Streaming Media Alliance)...
...ma nonostante questo sono ancora in alto mare.

Io dovrei gestire l'invio di un filmato in streaming, decidendo in tempo reale se inviare o no i vari frame, a seconda della banda disponibile.
Dato che in MPEG-4 i frame sono divisi in diverse catagorie, praticamente dovrei evitare di inviare i frame "secondari" se la banda disponibile è scarsa.

Il problema è: come riconoscere i vari frame all'interno del file del filmato??

__________________
Chiamatemi Darky ^_^

_____ -+- ANTINOMY -+- __________ -+- Inside Human Cruelty -+- _____


Posted by ste.virus on 03-06-2005 19:26:

io so che se usi DrDivx, il software ufficiale per comprimere in divx, durante la compressione compare un grafico che ti visualizza i frame con colori diversi a seconda se sono i fotogrammi "chiave" oppure secondari... te lo dice al momento della compressione, ma per visualizzarli successivamente se ad esempio usi VirtualDub ci sono due bottoni con il simbolo di una chiave che servono apposta a muoversi tra fotogrammi "chiave" saltando queli secondari... ma come faccia a riconoscerli questo non lo so ti conviene provare a guardare su divx.com se c'è qualcosa... tieni presente che i fotogrammi chiave non hanno sempre la stessa frequenza perchè dipende dall'intervallo impostato in fase di settaggio del codec, e comunque è sempre un intervallo approssimativo perchè non appena cambia una scena viene creato automaticamente un nuovo fotogramma chiave, e se la scena cambia 2 o 3 volte rapidamente vengono creati nuovi fotogrammi chiave a breve intervallo tra uno e l'altro...

un ultima cosa: in genere io vedo che i vari siti che si occupano di streaming mettono 2 link diversi, uno che trasmette ad un bitrate per i modem a 56k e l'altro per le ADSL...

__________________
StE


Posted by Barone on 03-06-2005 21:03:

Allora su questo penso di essere abbastanza informato visto che ci sto lavorando x stage e tesi:
I fotogrammi "chiave" si chiamano Intra Frame e sono quelli grazie ai quali viene fatta la più importante predizione temporale x le successive immagini.Questi fotogrammi vengono codificati solo sfruttando la correlazione spaziale dei Macroblocchi dello stasso Frame...

Tornando alla tua domanda non ho capito se stai chiedendo come riconoscere un frame secondario o no a livello di qualche applicativo particolare o a livello di codice di riferimento.

Se l'opzione è la seconda allora ti dico che:
Ogni immagine ha una variabile con un valore che sta ad indicare quale tipo di immagine rappresenta...Se poi chiarisci meglio qual è il problema cerco di aiutarti un po' di più ;)


Posted by DarkGod on 04-06-2005 10:44:

Originally posted by Barone
Allora su questo penso di essere abbastanza informato visto che ci sto lavorando x stage e tesi:
I fotogrammi "chiave" si chiamano Intra Frame e sono quelli grazie ai quali viene fatta la più importante predizione temporale x le successive immagini.Questi fotogrammi vengono codificati solo sfruttando la correlazione spaziale dei Macroblocchi dello stasso Frame...

Tornando alla tua domanda non ho capito se stai chiedendo come riconoscere un frame secondario o no a livello di qualche applicativo particolare o a livello di codice di riferimento.

Se l'opzione è la seconda allora ti dico che:
Ogni immagine ha una variabile con un valore che sta ad indicare quale tipo di immagine rappresenta...Se poi chiarisci meglio qual è il problema cerco di aiutarti un po' di più ;)


Dunque, dunque....
Sì, so come funzionano gli Intra Frame e che gli altri frame vengono calcolati praticamente per "differenza".
La mia situazione è questa: ho già un apllicativo (in C) che prende un filmato, lo divide in pacchetti e lo invia in wireless ad un'altra applicazione che lo ricompone, lo buferizza e lo dà in pasto ad un video player.
Ovviamente, essendo tutto in real-time, se ci sono interferenze nel canale di trasmissione, appena finisce il buffer del ricevente il filmato si "inchioda".
Io dovrei essere in grado di accorgermi di questa situazione (per esempio testando la velocità con cui si svuota il buffer in relazione con la velocità di arrivo dei pacchetti), e diminuire "al volo" la mole di dati che sto inviando. Dato che il filmato è già codificato, ho pensato di diminuire l'invio dei frame secondari via via fino a quando il canale non abbia banda sufficiente a gestire la trasmissione.
Devo però sapere come riconoscere i vari frame secondari all'interno del file, perchè non posso "droppare" pacchetti a caso! :P
Ho trovato moltissima documentazione, ufficiale e non, su come avviene la codifica di MPEG-4, come vengono gestiti i fari frame, ecc.... ma niente di così basso livello da permettermi di "scrutare" realmente nel file del filmato e discriminarne le varie parti.

Qualsiasi aiuto è estremamente ben accetto :)
Grazie in anticipo....


PS: non è detto che ciò che intendo fare sia fattibile....

__________________
Chiamatemi Darky ^_^

_____ -+- ANTINOMY -+- __________ -+- Inside Human Cruelty -+- _____


Posted by foolish on 04-06-2005 11:05:

te quindi intendi diminuire la qualità del video?
perchè se togli una parte del filmato sei sicuro poi che il filmato sia "guardabile"?

__________________
The only way to discover the limits of the possible is to go beyond them into the impossible.
Arthur C. Clarke.


Posted by DarkGod on 04-06-2005 11:21:

Originally posted by foolish
te quindi intendi diminuire la qualità del video?
perchè se togli una parte del filmato sei sicuro poi che il filmato sia "guardabile"?


Esatto! Ridurre la qualità, anche di molto, fino a renderlo scattosissimo, non importa; l'importante è che venga mantenuta la sincronizzazione real time.
(Per esempio potrebbe esserci un'interferenza momentanea sul canale: in questo caso, il filmato andrebbe a scatti per qualche secondo, per poi riprendere normalmente.)
Però se elimino dei frame (o pezzi di file) fodamentali, il filmato si blocca totalmente e perde la sincronizzazione...

__________________
Chiamatemi Darky ^_^

_____ -+- ANTINOMY -+- __________ -+- Inside Human Cruelty -+- _____


Posted by Barone on 04-06-2005 15:16:

Quello che vuoi fare te è molto complesso e non del tutto ancora impelmentato in tutti gli encoder che ho visto...Se ho capito bene cerchi una routine che permetta di variare il bitstream in base alle condizioni di traferimento...Dove sono io in stage c'è una persona molto competente che sta facendo qualcosa di simile...ti dico subito che è un lavoro di mesi!!Il fatto è che devi gestire tutti i tool di compressione (DCT, QUANTIZZ, scelta del tipo di immagini) in semi real time al fine di ottimizzare banda e traferimento...

A livello molto supèerficiale direi che potresti quantizzare piu grossolanamente o utilizzare un formato immagine minore (tipo QCIF).però gli algortimi di scelta di tali opzioni credo siano troppo complessi x un semplice studente con poca esperienza nel campo....Io e il mio tutor stavamno parlando di qualcosa di simile a questo e mi diceva che è un lavoro complesso, sicuramente nn da tesi triennale ;)

hai altre domande o vuoi chiarimenti su altri punti?


Posted by DarkGod on 05-06-2005 09:34:

Originally posted by Barone
Quello che vuoi fare te è molto complesso e non del tutto ancora impelmentato in tutti gli encoder che ho visto...Se ho capito bene cerchi una routine che permetta di variare il bitstream in base alle condizioni di traferimento...Dove sono io in stage c'è una persona molto competente che sta facendo qualcosa di simile...ti dico subito che è un lavoro di mesi!!Il fatto è che devi gestire tutti i tool di compressione (DCT, QUANTIZZ, scelta del tipo di immagini) in semi real time al fine di ottimizzare banda e traferimento...

A livello molto supèerficiale direi che potresti quantizzare piu grossolanamente o utilizzare un formato immagine minore (tipo QCIF).però gli algortimi di scelta di tali opzioni credo siano troppo complessi x un semplice studente con poca esperienza nel campo....Io e il mio tutor stavamno parlando di qualcosa di simile a questo e mi diceva che è un lavoro complesso, sicuramente nn da tesi triennale ;)

hai altre domande o vuoi chiarimenti su altri punti?


mmmhh...
Sì, ho capito perfettamente quello che vuoi dire, e purtroppo è ciò che immaginavo anche io, dato che è da un po' che cerco di trovare qualcosa che mi possa aiutare, ma senza risultato.
Se è così non mi resta che parlarne con la prof..... :sad:

Quindi credi che non si trovino dei programmini (per Linux) che facciamo qualcosa di simile?
Perchè io ho notato che cancellando a caso pezzi del file di origine (prima di inviarlo), molte volte il filmato si vede lo stesso, anche se con evidenti perdite di qualità, mentre altre volte si blocca del tutto, perchè evidentemente ho cancellato pezzi fondamentali del filmato (magari un header o un I-Frame) . In un certo senso mi basterebbe poter discriminare (ma non ho idea di come poterlo fare!) le parti fondamentali del file da quelle che posso cancellare "senza problemi", in modo da inviare soltanto le prime... il tutto senza entrare nei dettagli della compressione o della struttura del file...
Credi sia fattibile?

__________________
Chiamatemi Darky ^_^

_____ -+- ANTINOMY -+- __________ -+- Inside Human Cruelty -+- _____


Posted by DarkGod on 09-06-2005 11:01:

Sposto un attimo il problema.

Sapete se ci sono in giro programmini (per Win o Linux) che comprimono i filmati in formato MPEG-4?
Se ne conoscete qualcuno mi evitate le mille ricerche con google... ;);)

EDIT: altra domandina: MPEG-4 è formato da più layer, utilizzabili per ottenere diverse qualità dello stesso filmato.
Sapete come poter visualizzare solo il layer di qualità più bassa?

Grazie x la pazienza :P


__________________
Chiamatemi Darky ^_^

_____ -+- ANTINOMY -+- __________ -+- Inside Human Cruelty -+- _____


Posted by DarkGod on 10-06-2005 14:40:

Originally posted by Barone
Quello che vuoi fare te è molto complesso e non del tutto ancora impelmentato in tutti gli encoder che ho visto...Se ho capito bene cerchi una routine che permetta di variare il bitstream in base alle condizioni di traferimento...Dove sono io in stage c'è una persona molto competente che sta facendo qualcosa di simile...ti dico subito che è un lavoro di mesi!!Il fatto è che devi gestire tutti i tool di compressione (DCT, QUANTIZZ, scelta del tipo di immagini) in semi real time al fine di ottimizzare banda e traferimento...
A livello molto supèerficiale direi che potresti quantizzare piu grossolanamente o utilizzare un formato immagine minore (tipo QCIF).però gli algortimi di scelta di tali opzioni credo siano troppo complessi x un semplice studente con poca esperienza nel campo....Io e il mio tutor stavamno parlando di qualcosa di simile a questo e mi diceva che è un lavoro complesso, sicuramente nn da tesi triennale ;)
hai altre domande o vuoi chiarimenti su altri punti?




Ho parlato con la prof: quello che avrei dovuto fare io è stato già realizzato, quindi il problema si sposta in un'altra direzione (codifica video "scalabile").

Per non andate OT, ho aperto un nuovo 3d... eccolo qui:
http://www.dsy.it/forum/showthread.php?threadid=20052

Ciao e grazie ancora :)

__________________
Chiamatemi Darky ^_^

_____ -+- ANTINOMY -+- __________ -+- Inside Human Cruelty -+- _____


All times are GMT. The time now is 06:15.
Show all 24 posts from this thread on one page

Powered by: vBulletin Version 2.3.1
Copyright © Jelsoft Enterprises Limited 2000 - 2002.