Newsgroup: it.media.video.produzione
Titolo: deinterlacciare

leggendo in giro mi sembra di aver capito che dalla viedeocamera in DV
si acquisce in interlacciato punto e basta (a meno di non acquisire a
288 invece di 576).
e tanti preferiscono non deinterlacciare perchè se lo vedono in tv (e
quindi l'interlacciamento è tutto vantaggio) o powerdvd che
sembrerebbe gestire l'interlacciamento a dovere.
ora io non sone in nessuna delle due condizioni, cioè, non lo vedo in
tv e non lo vedo con powerdvd, e se pure lo installassi non posso
chiedere di farlo installare a tutti quelli a cui gestisco i miei
video.
e ancora dico mi sembra, leggendo in giro, che non esiste un filtro
che elimina totalmente l'intellacciamento.
la mia domanda è: ma se powerdvd gestisce l'interlacciamento, perchè
non dovrebbero totalmente i filtri scritti adhoc?
io uso virtualdub, e il filtro di deinterlacciamento modo blend fa il
suo dovere ma qualcosa rimane sempre.
Consigli?
Matteo

 Consigli?
Devi usare un player che supporti la riproduzione dei 2 campi con 1/50 di
differenza temporale.
Tra quelli gratuti e disponibili su qualsiasi piattaforma (Linux, Mac,
Windows, ecc.) c'e' MPlayer, impostando il filtro video "tfields=0".
Se hai un PC x86, puoi anche scaricarti una delle tante distribuzioni live
che hanno incluso MPlayer; tra queste segnalo Movix/eMovix, dedicata alla
riproduzione video/audio (HTPC). Con eMovix (che occupa solo 8MB), puoi
creare un CD/DVD boostrappabile e all'avvio partono automaticamente in
riproduzione i filmati che sono inseriti nel CD/DVD.
Ciao,
  Luca


conosco. Mio fratello è costretto ad usarla per vedere i film perchè
se lo vede con windows gli rimane audio e video disallineato (non ho
capito se è la scarsa potenza di calcolo - pIII 733Mhz - o windows
installato male)
ok.
grazie dei consigli

 288. tu consigli di fondere i campi (blend?) o di eliminarne uno?
Sconsigliatissimo: i destinatari vedranno una cosa diversa. Al limite puoi
duplicare il frame-rate, penso che Windows Media Player sia in grado di
riprodurre filmati a 50fps. Tra i due, comunque, secondo me e' meglio
eliminarne 1.
Ciao,
  Luca

Grazie.
Avevo alcune domande su diverse cose che hai scritto e che non ho ben
capito, ma ora non ho tempo.
Appena ho un minuto mi vedo tutto quello che hai scritto.
Giusto oggi mio fratello mi ha chiesto se vlc andava bene per
risolvere i suoi problemi (di pesantezza), e io gli ho proposto
mplayer. Ma non ho avuto tempo di approfondire.
Ciao, Matteo


Chiedo venia per il quoting ;) Anche se il tema 50fps lo trovo 
interessante, rimango (operativamente) scettico al riguardo, ho anche 
provato a vendere soluzioni con schede aggiuntive tipo le Sigma e 
rimango (finanziariamente) scettico al riguardo, volevo chiedere, hai 
provato, e come, a produrre un mpeg-2 con un GOP cosi' allungato?
-- 
Are you experienced?
/* JOE CHIP */

128000)
ID_AUDIO_BITRATE=1024000
ID_AUDIO_RATE=32000
ID_AUDIO_NCH=2
Selected audio codec: [pcm] afm: pcm (Uncompressed PCM)
==========================================================================
AO: [dsound] 32000Hz 2ch s16le (2 bytes per sample)
ID_AUDIO_CODEC=pcm
Starting playback...
SwScaler: reducing / aligning filtersize 7 -> 8
SwScaler: reducing / aligning filtersize 1 -> 1
SwScaler: reducing / aligning filtersize 1 -> 1
[swscaler @ 00D7B720]SwScaler: Lanczos scaler, from yuyv422 to rgb24
using MMX2
[swscaler @ 00D7B720]SwScaler: Lanczos scaler, from yuyv422 to rgb24
using MMX2
[swscaler @ 00D7B720]SwScaler: using 8-tap MMX scaler for horizontal
luminance scaling
[swscaler @ 00D7B720]SwScaler: using 8-tap MMX scaler for horizontal
chrominance scaling
[swscaler @ 00D7B720]SwScaler: using n-tap MMX scaler for vertical
scaling (BGR)
[swscaler @ 00D7B720]SwScaler: 720x576 -> 786x576
MPlayer interrupted by signal 11 in module: filter_video
ID_SIGNAL=11
- MPlayer crashed by bad usage of CPU/FPU/RAM.
Recompile MPlayer with --enable-debug and make a 'gdb' backtrace and
disassembly. Details in DOCS/HTML/en/
bugreports_what.html#bugreports_crash.
- MPlayer crashed. This shouldn't happen.
It can be a bug in the MPlayer code _or_ in your drivers _or_ in your
gcc version. If you think it's MPlayer's fault, please read
DOCS/HTML/en/bugreports.html and follow the instructions there. We
can't and
won't help unless you provide this information when reporting a
possible bug.

 Poi se tento di vedere i file in formato DV. Ecco i log.
Crasha mplayer.... Io ho provato con Windows 98 (non ho Windows XP...) e
l'unico problema e' che si blocca se tento di ridimensionare le finestra,
ma almeno non va in crash.... Prova con il DivX/XviD, dovrebbe avere meno
problemi (il DV e' un formato pesante da decodificare). In alternativa
prova a cambiare il driver video, tipo "directxnoaccel".
Ricordati anche di abilitare il framedropping, in modo da non avere
problemi con PC un po' datati (lo puoi abilitare dalla GUI oppure sempre
nel file "mplayer\config").
Ciao,
  Luca

 hai provato, e come, a produrre un mpeg-2 con un GOP cosi' allungato?
Si', avevo fatto qualche prova a suo tempo (con mpeg2enc, opzione -G 300).
A parita' di qualita', guadagni circa un 10-15% in bitrate.
Non ho mai provato a farlo leggere da un lettore da tavolo, pero' penso
che quelli recenti non abbiano problemi a digerirlo, visto che leggono i
DivX che hanno GOP anche piu' lunghi; forse i lettori vecchi si
arrabbierebbero (15 frame e' il massimo consentito dallo standard DVD per
il PAL).
Ciao,
  Luca


ecco. questa è una cosa che non ho mai capito bene: molti programmi
danno l'opzione rispetto all'ordine dei campi, ad esempio AP dice : NO
FIELD / UPPER FIELD FIRST / LOWER FIELD FIRST.
Per capire quale opzione è migliore  sarebbe utile poter vedere il
filmato con un  avanzamento field by field invece che frame by frame
( e magari con un ingrandimendo notevole ) .  E' possibile questo con
Premiere ? e con qualche altro programma ?
grazie - spartaco

 Premiere ? e con qualche altro programma ?
Con Cinelerra puoi impostare il progetto a 50fps e mettere il filtro
"Frame to fields" (qui puoi impostare top[upper] o bottom[lower] first).
Cosi', avanzando fotogramma per fotogramma, puoi vedere se i movimenti
sono coerenti: se va un po' avanti e un po' indietro vuol dire che devi
inverti l'ordine; oppure se i fotogrammi si ripetono ogni 2 vuol dire che
il filmato e' progressivo (ordine "none").
Con Premiere non saprei: prova a vedere se riesci ad impostare il progetto
a 50fps e se c'e' un filtro analogo a "Frame to fields" di Cinelerra.
Ciao,
  Luca


Ma Cinelerra gira solo sotto linux, o sbaglio ?
purtroppo le due volte che ho provato a mettere su una partizione
linux è saltata la scheda VGA, per cui ho deciso che avrei rimandato
il tentativo a quando avessi potuto prendere un'altra macchina da
dedicare a Linux, cosa che al momento non mi posso permettere  :-(
inoltre mi sembra di aver capito che sia difficile far funzionare le
schede di acquisizione analogica sotto linux, io per esempio ho una
pinnacle... è vero ?

 A parita' di qualita', guadagni circa un 10-15% in bitrate.
Ammetto di non averci mai pensato ;-) Mo' provo anch'io. Spero che 
mpeg2enc riesca a mettere un I-frame al cambio di scena.


 pinnacle... è vero ?
Dipende molto dalla scheda: le ultime USB mi pare che siano abbastanza
supportate, quelle PCI forse un po' meno. Sono supportate abbastanza bene
tutte quelle vecchie con chipset PCI Zoran 360x7 (DC10, DC30, ecc.).
Ciao,
  Luca

 mpeg2enc riesca a mettere un I-frame al cambio di scena.
Si', con le ultime versioni (mi pare dalla 1.8 in su) se piu' del 60% del
fotogramma e' codificato come intra ed e' gia' stata superata la lunghezza
minima del GOP, il fotogramma viene ricodificato come I ed inizia un nuovo
GOP. 
Occhio che mpeg2enc bufferizza tutto il GOP, quindi con 300 fotogrammi
devi avere almeno 1.5GB di memoria (anche virtuale, io ne ho solo 384 di
fisica).
Ciao,
  Luca

 fisica).
Che bufferizzasse tutto il GOP lo sospettavo, mi preoccupa di piu' il 
decoder da questo punto di vista, che deve fare il tutto "on the fly". 
Purtroppo ho Linux solo sul portatile con 512 di RAM. Vediamo come va, 
senno' mi cerco una versione per win, perche' usare una live sulla 
workstation mi mangia tutto il vantaggio della memoria piu' grande.


 workstation mi mangia tutto il vantaggio della memoria piu' grande.
Per Windows, mpeg2enc e' incluso in "GUI for dvdauthor" (una versione un
po' vecchia, per la verita'...). Se vuoi ti passo quella che ho compilato
tempo fa (1.9.0rc1).
Ciao,
  Luca

 tempo fa (1.9.0rc1).
Ho rinunciato a provare su Linux e sto usando VLC su win, pero' non 
riesco a settare bene il GOP come lo vorrei. Sembra che VLC passi i 
comandi a ffmpeg seguendo una sintassi sua, quindi l'opzione -g <int> 
non ha effetto. Se provo questi setting
vlc c:\video\auschnitt0001.avi
:sout=#transcode{vcodec=mp2v,venc=ffmpeg{keyint=100}vb=4096,scale=1,acodec=mpga,ab=192,channels=2}
:duplicate{dst=std{access=file,mux=ps,dst="C:\video\0001B.mpg"}}
ottengo il GOP di lunghezza 100 *keyint=100* ma solo con P-frames (che 
sembra il default di VLC)
aggiungendo nella sezione "venc" ffmpeg{keyint=100;bframes=66} per 
forzare una serie IBBPBB... ottengo su 517 frames
I=8, P=24, B=485
Ora provo a intallare direttamente ffmpeg. Sono un po' deluso da VLC. 
Pensavo che da linea di comando fosse piu' flessibile, ad esempio non 
c'e' traccia di un opzione tipo gop=closed.


 c'e' traccia di un opzione tipo gop=closed.
VLC, secondo me, va bene solo come player (e neanche tanto con PC vecchi,
perche' non "droppa" i frame quando necessario). Anche io ci ho rinunciato
ad usarlo per codificare. Mencoder o direttamente ffmpeg sono molto meglio.
Ciao,
  Luca

 ad usarlo per codificare. Mencoder o direttamente ffmpeg sono molto meglio.
E' che sono rimasto affezzionato a VideoLAN perche' e' stato il primo 
prodotto veramente open source a permettere MPEG-2 e multicasting in 
rete locale. L'altro prodotto che avevo per le mani (InfoValue) era 
carissimo e neanche tanto stabile.
Ora mi ritrovo una debian su macchina virtualizzata in fine contratto e 
volevo sperimentare nei tre mesi che mi rimangono a fare streaming, 
senza usare le applicazioni solite. Pensavo di provare con VLC. Posso 
lasciare anche aperta la 80, perche' il webserver non mi serve.


 rete locale. 
Si', e' vero, pero' se devi fare una codifica "ad-hoc" non e' molto
adatto. Va molto bene secondo me per le cose in real-time.
Ciao,
  Luca

    http:,//
lukemabat.interfree.it/software/mjpeg-win32.zip
Merci bien! Qui si usa sdebitarsi con una cassetta di birra, spero di 
riuscire a zipparla ;-)


 tempo, faro' una GUI un pochino piu' articolata...
Scusa la domanda Luca, ma tutta quella decina di file eseguibili e 
l'altra roba va usata a riga di comando?
E in sostanza che offrono? Cosa ci puoi fare oltre che encodare?
Grazie, ciao.
-- 
Michele

 E in sostanza che offrono? Cosa ci puoi fare oltre che encodare?
C'e' di tutto e di piu': un filtro di denoise, un ottimo deinterlacer, uno
stabilizzatore, un filtro di sharpen, un filtro mediano, un filtro di
correzione del colore, uno scaler. Mi sono dimenticato di mettere
y4mscaler (lo compilo il prima possibile e lo metto nel pacchetto), uno
scaler ottimo che converte correttamente anche la crominanza; puoi
convertire un flusso DV 4:2:0 in non-compresso 4:4:4 e usarlo per fare un
chroma-key un po' migliore. Mancano pero' anche le librerie QuickTime per
incapsulare lo stream YUV (non penso che i programmi commerciali siano in
grado di leggere l'YUV4MPEG2, lo stream generato dagli mjpeg-tools), anche
se c'e' comunque qualche problema di compatibilita'; avevamo fatto qualche
prova io e Mimmo (Solid_Snake) ma eravamo riusciti solo in RGB, ed avevo
usato Cinelerra per convertirlo perche' gli mjpeg-tools convertono solo in
YUV. Avendo tempo, si puo' comunque prendere il codice di Cinelerra e fare
il programmino che salva anche in RGB, magari incapsulando in AVI
anziche'. In alternativa, gia' da subito, puoi salvere una sequenza di
immagini (in formato ppm: poi puoi convertirle in vari formati con i
programmi standard cygwin della netpbm). Se, ad esempio, vuoi prendere un
file AVI interlacciato e converti in sequenza di immagini progressive devi
fare:
  lav2yuv file.avi | y4mscaler -Ochromass=444 | yuvdeinterlace | \
  y4mtoppm | pnmsplit - "sequenza_%05d.ppm"
Se vuoi prendere un filmato interlacciato e farlo diventare a 50fps per
fare lo slow-motion, puoi fare:
 
  lav2yuv file.avi | yuvdeinterlace -d | y4mtoppm | \
  pnmsplit - "sequenza_%05d.ppm"
Puoi fare la stessa cosa con i file .m2t (occorre mpeg2dec, mi pare sia
nei pacchetti standard di CygWin):
  mpeg2dec -t 0x810 -o pgmpipe file.m2t | pgmtoy4m -i t -a 4:3 -r 25:1 | \
  y4mscaler -Iactive=1440x1080+0+0 | y4m709to601 | \
  yuvdeinterlace -d | y4mtoppm | pnmsplit - "sequenza_%05d.ppm"
Ciao,
  Luca