XmX

Visualizzatore filmati in Basic, Con tanto di nuovo formato!

« Older   Newer »
  Share  
view post Posted on 12/4/2011, 20:47
Avatar

Non importa quanto è buio il cammino, guarda solo la Luce di fronte a te.

Group:
Member
Posts:
4,453

Status:


Si, anche perchè ho bisogno di un algoritmo assolutamente lossless, altrimenti non avrebbe senso progettare un formato video che garantisce, tra le altre cose, anche la totale conservazione dei dati.
 
Web Contacts  Top
view post Posted on 13/4/2011, 09:05
Avatar

Advanced Member

Group:
Member
Posts:
1,184
Location:
Sedna

Status:


Prova a leggere questo così ti fai un'idea.
 
Top
view post Posted on 13/4/2011, 12:52
Avatar

Non importa quanto è buio il cammino, guarda solo la Luce di fronte a te.

Group:
Member
Posts:
4,453

Status:


Veramente ho già letto molto riguardo agli algoritmi di compressione, ma mi manca una struttura sulla quale ragionare, un abbozzo di algoritmo da migliorare, qualcosa insomma che sia progettato su misura per il formato avm.
 
Web Contacts  Top
view post Posted on 15/5/2011, 13:34
Avatar

Non importa quanto è buio il cammino, guarda solo la Luce di fronte a te.

Group:
Member
Posts:
4,453

Status:


Stavo pensando una cosa, in un film o filmato di solito esistono moltissimi fotogrammi in cui una stessa immagine si ripete per svariate decine o addirittura centinaia di fotogrammi senza modificarsi oppure modificandosi di pochissimo nel colore di alcuni pixel. E se trovassi un modo per codificare quei fotogrammi ripetitivi in pochi byte che si limitino a specificare al programma di riproduzione che da quel momento in poi ci saranno tot fotogrammi tutti uguali?
E se a questo metodo affiancassi un altro algoritmo che si dedichi a codificare solo quei pixel che cambiano oltre una certa soglia il loro colore, lasciando così invariato il resto dell'immagine già codificata e quindi riprodotta in precedenza? Forse riuscirei a ridurre anche considerevolmente le dimensioni del file senza imbarcarmi in complicatissime formule matematiche con le quali, per ora, non ho alcuna confidenza.
Vi faccio uno schemino esplicativo di quello che intendo.

image

Come si può vedere nell'immagine, in un filmato avm classico ogni fotogramma, anche se identico al precedente, viene codificato comunque in tutte le sue parti. Nella sequenza sintetizzata invece vengono codificate solo quelle aree, e i pixel in quelle aree, che si sono modificati durante la registrazione/riproduzione, riducendo così notevolmente lo spazio occupato dal filmato.

Nel presente caso, ad esempio, in un file normale (non compresso) troveremo scritto (ovviamente in bytes):

Fotogramma 1: elemento 1, 2, 3, 4, 5, 6
Fotogramma 2: elemento 1, 2, 3, 4, 5, 6
Fotogramma 3: elemento 1, 2, 3, 4, 5, 6
Fotogramma 4: elemento 1, 2, 3, 4, 5, 6
Fotogramma 5: elemento 1, 2, 3, 4, 5, 6
Fotogramma 6: elemento 1, 2, 3, 4, 5, 6
Fotogramma 7: elemento 1, 2, 3, 4, 5, 6

In un file compresso, quindi a sequenza sintetizzata, troveremo invece scritto soltanto:

Fotogramma 1: elemento 1, 2, 3, 4, 5, 6.
Fotogramma 3: elemento 1, 3, 5.
Fotogramma 4: elemento 2, 6
Fotogramma 5: elemento 4
Fotogramma 7: elemento 3

Il che è molto meno ingombrante della prima versione e non si perde nulla in termini di fedeltà all'originale.
Certo, quella rappresentata nell'esempio è una situazione abbastanza fortunata, nel senso che in realtà è abbastanza più complessa la computazione in fase di masterizzazione, l'importante però è che durante la fase di riproduzione la velocità di decodifica dei fotogrammi sia la più elevata possibile, cosa che sicuramente questo metodo garantisce.

Edited by yareol - 17/5/2011, 14:15
 
Web Contacts  Top
view post Posted on 15/5/2011, 18:35
Avatar

Advanced Member

Group:
Member
Posts:
1,184
Location:
Sedna

Status:


Praticamente è questo:

CITAZIONE
* P-frame4

Codifica solo le zone dell'immagine che sono cambiate rispetto a quella precedente. In altre parole, esegue una compensazione nella variazione del movimento (motion-compensated frames) analizzando, appunto, la differenza di immagine tra due frame consecutivi: la parte uguale nei due frame non viene ritrasmessa.

http://it.wikipedia.org/wiki/MPEG-4#Funzionamento
 
Top
view post Posted on 16/5/2011, 14:38
Avatar

Non importa quanto è buio il cammino, guarda solo la Luce di fronte a te.

Group:
Member
Posts:
4,453

Status:


Esatto, proprio così caro Gigio! Vedo che sei attento. ;)
In questo caso però non è che i dettagli ripetuti non vengono trasmessi al lettore, ma non vengono proprio salvati nel file, quindi il file stesso risulta essere più piccolo.

Edited by yareol - 16/5/2011, 15:59
 
Web Contacts  Top
view post Posted on 17/5/2011, 13:03
Avatar

Non importa quanto è buio il cammino, guarda solo la Luce di fronte a te.

Group:
Member
Posts:
4,453

Status:


Ho già pronto il logo del formato avm! ^_^
Che ne dite? E' abbastanza "accattivante"? :lol:

image


 
Web Contacts  Top
view post Posted on 19/10/2014, 22:27
Avatar

Non importa quanto è buio il cammino, guarda solo la Luce di fronte a te.

Group:
Member
Posts:
4,453

Status:


Nessuna risposta...

Vabbè, pazienza. Intanto vi comunico che i vecchi progetti che si erano arenati per vari motivi, li sto adesso invece riprendendo. Il merito è del nuovo linguaggio di programmazione, il "Pure Basic", che sto imparando in questi giorni e che, considerata la notevole velocità di esecuzione, molto più alta del Power Basic, potrà garantire a questo progetto la creazione di un player per filmati molto più performante ed efficiente! ^_^
 
Web Contacts  Top
view post Posted on 3/11/2014, 00:12
Avatar

Non importa quanto è buio il cammino, guarda solo la Luce di fronte a te.

Group:
Member
Posts:
4,453

Status:


Per dimostrarvi quanto è valido il tipo di Basic che ho trovato voglio darvi la possibilità di verificarlo in pratica, di toccare con mano, per così dire, le incredibili prestazioni e potenzialità di questa nuova versione. Ho deciso così di creare un piccolo ma potente player per video in formato mp4 (ma forse funziona anche per il formato avi, non so non l'ho verificato. Potete scaricare il file da QUESTO indirizzo. Attenzione, sono circa 35 MB perchè contiene sia il player che un filmato per testarlo sul vostro pc.
Istruzioni: scompattate il file zippato in una cartella e fate doppio click sull'exe. Quando il programma vi chiederà di scegliere il file da riprodurre se non vedete il file mp4 andate su "all files" (*.*) e cliccate sul file "video.mp4".

Questo è il codice incredibilmente breve che è però sufficiente per una visualizzazione base :) :

CODICE
;
; ------------------------------------------------------------
;
;   PureBasic - Movie example file
;
;    (c) Fantaisie Software
;
; ------------------------------------------------------------
;

If InitMovie() = 0
 MessageRequester("Error", "Can't initialize movie playback !", 0)
 End
EndIf

MovieName$ = OpenFileRequester("Choose the movie to play", "", "Movie files|*.avi;*.mpg|All Files|*.*", 0)
If MovieName$
 If LoadMovie(0, MovieName$)
 
   OpenWindow(0, 100, 150, MovieWidth(0), MovieHeight(0), "PureBasic - Movie")
   PlayMovie(0, WindowID(0))
     
   Repeat
   Until WaitWindowEvent() = #PB_Event_CloseWindow
 Else
   MessageRequester("Error", "Can't load the movie...", 0)
 EndIf
EndIf
 
Web Contacts  Top
icon1  view post Posted on 12/11/2014, 23:37
Avatar

Advanced Member

Group:
Member
Posts:
1,184
Location:
Sedna

Status:


E' una figata, bellisssimo, l'ho provato con un .avi e funza anche su win 8.1 lo compro di sicuro.

<_< mi hai fatto tornare la voglia di programmare, ho sempre trovato bello il basic, ma questo li supera tutti.

bye
 
Top
view post Posted on 16/11/2014, 07:09
Avatar

Non importa quanto è buio il cammino, guarda solo la Luce di fronte a te.

Group:
Member
Posts:
4,453

Status:


Wellààààà Gigio!!! Bentornato nè! :D Ti sei fatto una vacanzina in giro per il mondo? :P

Caspita, 'sto linguaggio è davvero miracoloso se t'ha trascinato fin qui, eheheh! Allora due giorni di ricerca certosina hanno dato i suoi frutti!
Bene, bene. Comunque il trucco c'è ed è anche facile da capire. Il listato è breve perchè in realtà alcune funzioni richiamano delle librerie già pronte che permettono di decodificare i filmati, ma soprattutto perchè sfruttano i comandi ActiveX installati nel PC. Sarebbe troppo bello altrimenti, eheh!
Per certi versi somiglia un po' al VB, soprattutto il form per la costruzione visuale dell'interfaccia grafica.
Comunque essendo un linguaggio compilato (non interpretato, come invece il Power Basic) è immensamente più veloce.
Il problema è che ci sono più di 1400 (!!) tra comandi e funzioni da imparare, mentre il vantaggio è che ce n'è davvero per tutte le esigenze, comprese le librerie per facilitare la connessione Internet http ed ftp, così da poter costruire software lato client e server e persino un browser Internet minimale per la navigazione!
Sto pensando di programmare un forum tutto mio,chissà se ci riuscirò... ma si, con questo linguaggio è semplicissimo! ^_^
 
Web Contacts  Top
view post Posted on 16/11/2014, 21:41
Avatar

Advanced Member

Group:
Member
Posts:
1,184
Location:
Sedna

Status:


Vero, ma vb era graficamente molto piu versatile, e purtroppo incredibilmente costoso.
Sono certo che non avrai problemi a realizzare un qualsivoglia programma, io me ne occupero a tempo perso ora che la mia passione è l'mtb non ha questi livelli downhill


ho dato un'occhiata rapida al listato ed ho portato una piccolisima modifica, mettere il titolo del video nella barra della finestra
basta sostituire "Pure Basic" con MovieName$, pero non sono riuscito a visualizzare i pulsanti di minimizzare, e massimizzare la finestra.
Sarà per la prossima.
 
Top
view post Posted on 17/11/2014, 15:25
Avatar

Non importa quanto è buio il cammino, guarda solo la Luce di fronte a te.

Group:
Member
Posts:
4,453

Status:


I pulsanti di sistema (chiusura finestra, massimizzazione, riduzione a icona, ecc.) nel Pure Basic sono chiamati Gadget. Per sapere quali sono, cosa possono fare e come crearli e posizionarli cercali nell'Help in linea, parti dall'indice alfabetico oppure scrivi la parola Gadget nella finestra di ricerca.

Ho modificato il player per filmati che avevo postato precedentemente, in realtà quello era il codice di esempio inserito nell'help della funzione Movie(), mentre questo è quello che ho programmato io personalmente, integrato con tutte le funzioni principali in un player che si rispetti. E' in grado di riprodurre file video e audio, possiede i controlli di Play, Pause e Stop, la barra di avnzamento, gli indicatori del tempo di riproduzione trascorso e la durata totale e infine il controllo del volume. In futuro magari aggiungerò qualcos'altro, i Gadget sono come un gioco, troppo divertenti e facili da usare! ^_^
Appena l'avrò completato inserirò il codice completo, per adesso accontentatevi dello screenshot (schermata) temporaneo dell'interfaccia.

screenshot_purebasic_mediaplayer

Edited by yareol - 22/11/2014, 23:18
 
Web Contacts  Top
view post Posted on 17/11/2014, 21:04
Avatar

Advanced Member

Group:
Member
Posts:
1,184
Location:
Sedna

Status:


bello continua cosi
 
Top
view post Posted on 18/1/2015, 22:57
Avatar

Non importa quanto è buio il cammino, guarda solo la Luce di fronte a te.

Group:
Member
Posts:
4,453

Status:


Volevo solo informare che sto progettando una variante dell'algoritmo di codifica video, per adesso posso dirvi che sono riuscito a ideare un tipo di compressione che eliminerà il più grande difetto dei video avm, ovvero l'enorme quantità di spazio necessario per il formato non compresso. Secondo un primo calcolo approssimativo il metodo che ho ideato permette una deflazione dell'ingombro del file di, udite udite, oltre il 70% delle dimensioni iniziali. Ma la cosa che lo distingue dagli altri formati di compressione è che questo è di tipo assolutamente LOSSLESS, ovvero non perde nemmeno un bit di informazione, sia a livello video che audio! Nessun altro codec è in grado di ottenere un simile risultato! ^_^
Per adesso mi limiterò a completare lo schema funzionale, poi passerò alla programmazione vera e propria. Solo quando avrò terminato il programma e il nuovo formato sarà pronto lo testerò con un video ad alta definizione, alto frame rate e ovviamente a 24 bit-per-pixel, magari con un audio pcm a 44100 campioni al secondo, si insomma, la bestia nera di qualunque compressore video, una prova del fuoco insomma che, se superata, consacrerà il mio nuovo formato alla storia futura della multimedialità! :D
A presto!
 
Web Contacts  Top
48 replies since 2/8/2010, 14:07   581 views
  Share