Newsgroup: it.comp.software.divx
Titolo: Colori sbiaditi

Normalmente faccio di divx con AutoGK e sono abbastanza soddisfatto
dei risultati. Perň ho visto che a volte (se non sempre, non sono
sicuro), i colori e soprattutto i >neri< dei divx sono visibilmente
piů sbiaditi del relativo DVD (o anche VHS). Niente di terribile, ma
cmq fastidioso.
Allora ho provato GordianKnot, ma non ho trovato particolari funzioni
relative a questo problema. I divx sono venuti bene (anche se
DRFAnalizer non č MAI contento), ma un po' sbiaditi.
Cosa posso fare? Perchč accade questo?
-- 
Paradoxally,
Jan AxHell

Cosa posso fare? Perchè accade questo?
Aggiungo che quando cominciai a fare divx un anno e mezzo fa a mano
con Vdub e compagnia, feci degli OGM che riguardati adesso mi sembrano
splendidi, i colori sono vivi e i neri sono NERI, però non usai nessun
filtro particolare, ero agli inizi e mi limitavo a seguire un
tutorial. L'unica differenza è il resize: all'epaca usavo bicubic
1.00, mentre ora lanczos, ma dalla preview di GordianKnot non noto
differenze usando l'uno o l'altro...
-- 
Paradoxally,
Jan AxHell

 splendidi, i colori sono vivi e i neri sono NERI, però non usai nessun
I colori sono sempre stati un punto drebole del codec DivX (o XviD), però
mi sembra strano che prima erano buoni ed ora no. 
Hai usato lo stesso codec (numero di versione)? Per visualizzarli usi
ancora lo stesso codec?
Per rimediare in fase di codifica puoi usare i filtri luma, ma prima
sarebbe meglio capire perchè noti questa differenza tra il vecchio e il
nuovo.
bye, giubbe
-- 
HomePage e FAQ: 
http://giubbe.altervista.org
Inutile scrivere in privato, non ricevo le email

nuovo.
Già, ma questi dove li imposto? 
Ho visto un vecchia discussione in cui suggerivi l'edit del file .avs
e un sito (
http://members.lycos.co.uk/alexebasta/
) in cui sono
spiegati i comandi di Avisynth: in questo momento ho la pagina aperta
sul comando Levels, ma non ci capisco assolutamente niente :/
-- 
Paradoxally,
Jan AxHell

 nuovo.
giusto.
mi e' anche venuta un'idea... stasera faro' alcuni esperimenti su
algoritmi di scaling (perche' non ci ho pensato prima? :-)), se scopro
qualcosa di interessante vi faro' sapere.
tempo fa avevo la necessita' di scalare immagini; curiosai nei vari
pacchetti open source (i vecchi pbmnet, poi gimp, gdk-pixbuf ecc), ma
poi decisi quasi subito di provare a scriverne uno: pero' il mio
e' un approccio da profano (sono un informatico, non un fisico, e le
mie conoscenze di ottica sono elementari; e neppure di percezione
visiva ne so molto...) quindi mi aspettavo di ottenere una schifezza;
comunque avevo un'idea in testa, che e' la piu' semplice che un
informatico (o matematico) possa avere, cioe': fare un resampling
lineare dell'immagine di partenza; basta avere un po' di dimestichezza
con le combinazioni lineari e in pochi minuti si implementa il
programma; chi fosse curioso, ne puo' trovare una versione C dentro
questo file: 
http://fsinapsi.altervista.org/docs/mencoder.html
nella sezione "15.1 Un algoritmo per scalare immagini".
Ebbene, con mia grande sorpresa, quella funzione produceva immagini
scalate di qualita' molto alta! :-) (pero' e' molto lento, ci vorrebbe
qualcuno che abbia voglia di ottimizzarlo);
in seguito ho letto varie considerazioni su come dovrebbero funzionare
gli algoritmi di scaling, e ho constatato che il mio algoritmo viola
tutte le regole di buon senso :-)
comunque stasera faro' questa prova:
prendero' una manciata di algoritmi (bilineare, bicubic, gauss,
lanczos, ecc.) e li applichero' in modo iterativo sulla stessa immagine;
per essere piu' preciso: prendero' alcuni bei frame un po' a caso da
alcuni DVD; per ciascun frame, procedero' come segue:
1) tirero' a sorte una nuova risoluzione ( w x h ) (in un certo range)
2) applichero' tutti gli algoritmi al frame
3) ripetero' questo procedimento un certo numero di volte
so gia' per certo che alcuni algoritmi arriveranno molto presto a
risultati orribili (sicuramente "nearest neighbours") perche'
degradano troppo la qualita'... ma quello che mi interessa e' il
modo in cui risulteranno modificati i *colori* da un trattamento
del genere...
chiedo scusa per non essere stato molto chiaro...

 sul comando Levels, ma non ci capisco assolutamente niente :/
Anch'io, ma ho notato che quello che dice il sito è vero. Imposto il filtro
da VirtualDub e poi riporto i valori in levels (basta copiarli nell'esatto
ordine di VD). Se togli il segno di spunta su RGB devi aggiungere il filtro
ConvertToRGB prima di levels.
Bye


ConvertToRGB prima di levels.
Ehm, questo è l'avs del mio film...
Intendi dire che devo scrivere una roba tipo
NOMECOMANDOAVISYNTH X,X,X,X,X  ?
# Created with Gordian Knot
#
# 
http://gknot.doom9.org
#  PLUGINS
LoadPlugin("C:\Video\GORDIA~1\AviSynthPlugins\dgdecode.dll")
LoadPlugin("C:\Video\GORDIA~1\AviSynthPlugins\decomb.dll")
#LoadPlugin("C:\Video\GORDIA~1\AviSynthPlugins\KernelDeInt.dll")
LoadPlugin("C:\Video\GORDIA~1\AviSynthPlugins\UnDot.dll")
#LoadPlugin("C:\Video\GORDIA~1\AviSynthPlugins\dgbob.dll")
#LoadPlugin("C:\Video\GORDIA~1\AviSynthPlugins\Convolution3d.dll")
#LoadPlugin("C:\Video\GORDIA~1\AviSynthPlugins\FluxSmooth.dll")
#LoadPlugin("C:\Video\GORDIA~1\AviSynthPlugins\TomsMoComp.dll")
#LoadPlugin("C:\Video\GORDIA~1\AviSynthPlugins\VSFilter.dll")
#LoadPlugin("C:\Video\GORDIA~1\AviSynthPlugins\SimpleResize.dll")
#  SOURCE
mpeg2source("G:\TheGate\TheGate.d2v")
#  TRIM
#trim(startframe,endframe)
#  IVTC
#Telecide(order=1,guide=1).Decimate()
#  or use
#IVTC(44,11,95)
#GreedyHMA(1,0,4,0,0,0,0,0)
#  DEINTERLACING (1)
#FieldDeinterlace()
FieldDeinterlace(blend=false)
#TomsMoComp(1,5,1)
#  DEINTERLACING (2)
#KernelDeInt(order=1,sharp=true)
#  or maybe
#DGBob(order=1,mode=0)
#  DEINTERLACING (3) - special requests
#GreedyHMA(1,0,0,0,0,0,0,0)
#Telecide()
#SeparateFields()
#  CROPPING
crop(4,0,712,572)
#  SUBTITLES
#VobSub("FileName")
#  RESIZING
LanczosResize(512,288)
#  DENOISING: choose one combination (or none)
Undot()
#  1) little noise
#Temporalsoften(2,3,3,mode=2,scenechange=6)
#mergechroma(blur(1.3))
#FluxSmoothST(5,7)
#  2) medium noise
#Temporalsoften(3,5,5,mode=2,scenechange=10)
#Convolution3d("moviehq") 
#FluxSmoothST(7,7)
#  3) heavy noise
#Temporalsoften(4,8,8,mode=2,scenechange=10)
#Convolution3d("movielq") 
#FluxSmoothST(10,15)
#  BORDERS
#AddBorders(left,top,right,bottom)
#  COMPRESSIBILITY CHECK
#  !!!!Snip Size now has to be 0 for use in GKnot!
#SelectRangeEvery(0,0)
#  FOOL CCEnc
#empty = BlankClip()
#AudioDub(last,empty)
-- 
Paradoxally,
Jan AxHell

 lanczos, ecc.) e li applichero' in modo iterativo sulla stessa immagine;
ho messo insieme un pacchetto alla buona, scaricabile qui:
http://fsinapsi.altervista.org/code/test-scale.tar.gz
lo si puo' compilare (battendo "make") sia da linux che da windows
(per windows occorre il pacchetto mingw e occorre modificare
l'inizio del makefile).
l'uso viene illustrato nel file test-scale.c
- pixmap_scale_full e' l'algoritmo "full resampling" scritto da me
  (il codice e' nel file "immagini.c")
- tutti gli altri fanno parte della libreria "swscale" che ha
  scritto Niedermayer per MPlayer e che e' usato anche da ffdshow
il frame tuttle.jpg l'ho scelto dal DVD Brazil (Harry Tuttle :-))
questo dovrebbe essere tutto cio' che serve per fare i confronti;
per il momento ho messo solo due immagini: tuttle_scaled_full.jpg
e tuttle_scaled_lanczos.jpg che sono stati ottenuti dai due
rispettivi algoritmi...
piu' tardi cerchero' di fare un confronto completo degli 11
algoritmi, utilizzando il metodo iterativo che ho descritto nel
post precedente; altrimenti, rimandero' a domani...
se qualcuno avesse qualche idea per fare test interessanti, mi
faccia sapere!

 LanczosResize(512,288)
questi sono chiari
mi sapresti mandare un frame dal filmato originale (che contengano una
zona di un bel nero vivo) e lo stesso frame del filmato ottenuto, in modo
che possa vedere in che senso sono stati sbiaditi i colori?

che possa vedere in che senso sono stati sbiaditi i colori?
Ci provo, ma non sono sicuro di come beccare lo stesso frame sia dai
VOB che dall'AVI... Suggerimenti?
-- 
Paradoxally,
Jan AxHell

 VOB che dall'AVI... Suggerimenti?
anche se non e' proprio lo stesso frame, mi basterebbe farmi un'idea del
fenomeno; insomma, basta che ne becchi due che dovrebbero avere piu' o
meno gli stessi colori e che invece non li hanno
credo di essermi imbattuto nello stesso fenomeno molto tempo fa (mi pare
un anno e mezzo fa): ricordo di essermi meravigliato molto per avere
notato in un divx (erano i primi che facevo) delle zone nere che pero'
avevano sfumature bluastre (o verdastre) e allora mi accorsi che anche
tutti gli altri colori risultavano un po' diversi da quelli originali...
pero' non sapevo nemmeno che codec stessi usando... i risultati non
erano affatto brutti, se non fosse stato per quel difetto dei colori
ciao

 #  PLUGINS
Lo aggiungi come ultima riga al tuo file:
#ConvertToRGB()
levels(34,4.415,214,48,215)
(deve comunque stare dopo il resize).
Togli il # (che indica un commento) solo se togli il segno di spunta da RGB
in VD
Non usare il filtro fielddeinterlace, serve per deinterlacciare e non può
fare che danni su un filmato progressivo.
Per ridurre l'effetto blur devi o aumentare il bitrate o tornare al divx
5.02
Purtroppo non ho quel DVD e non posso vedere i tuoi stessi risultati, se
riesci a mandare un frame a Frank, mandalo anche a me, magari in due si
risolve prima.


 levels(34,4.415,214,48,215)
che effetto ha questa aggiunta?
comunque secondo me i codec veri e propri non c'entrano niente:
il danno viene fatto da qualche filtraggio che viene applicato prima:
in qualche modo vengono alterate le proporzioni originali delle
componenti dei colori (forse in qualche conversione tra spazi di
colori... o comunque qualche filtro combina casini...)
forse non c'entrano niente neanche gli algoritmi di scaling, ma credo
di avere fatto una cosa abbastanza interessante.
quando hai un minuto di tempo, scarica questo file:
http://fsinapsi.altervista.org/code/test-scale.tar.gz
(l'ho sostituito poco fa, verso le 21:00, e' grande circa 250kb)
dentro c'e' un programmino con cui ho testato 11 algoritmi di
scaling diversi...
purtroppo per scarsita' di tempo ho fatto una sola prova su un solo
frame di un dvd (brazil), ne vorrei fare almeno una decina; comunque
dentro all'archivio ci sono:
- il sorgente del programma di test
- il frame di partenza (tuttle.jpg)
- gli 11 frame che sono risultati applicando iterativamente gli
  algoritmi presi in esame
l'iterazione l'ho definita con questa funzione principale:
void go()
{
    step_scale( 720, 406 );
    step_scale( 720, 576 );
    step_scale( 720, 305 );
    step_scale( 512, 305 );
    step_scale( 720, 576 );
    step_scale( 640, 419 );
    step_scale( 512, 288 );
    save_all();
}
i parametri della funzione step_scale sono le risoluzioni a cui
ciascun algoritmo deve scalare la sua immagine attuale (partono
tutte dalla stessa immagine, tuttle.jpg);
alla fine del processo, salva tutti i risultati, e questi li
puoi guardare: sono i file "tuttle_scaled_*.jpg"
puoi notare come alcuni algoritmi abbiano l'effetto di modificare
i colori...
cmq ho in mente altri esperimenti sulla scia di questo :-)

 
http://fsinapsi.altervista.org/code/test-scale.tar.gz
Mi hai messo una curiosità, devo provare anch'io i filtri di resize di
avisynth, non mi ero mai accorto di un cambiamento così drastico sui
colori. Quante volte hai iterato? 
bye


 colori. Quante volte hai iterato? 
in quelli che hai gia' visto, ho iterato meno di dieci volte (mi pare 7),
in questo ho iterato una ventina di volte:
http://fsinapsi.altervista.org/code/umacmp.jpg
in questa immagine si vede chiaramente l'effetto sui colori degli
algoritmi di scaling; l'effetto e' chiaramente amplificato 20 volte

non metti alcun filtro i colori del DivX sono diversi dall'originale.
Scusa ma si puo' fare un divx che rispetti i colori originali?C'e' un
modo?
Ho provato a fare matrix rev con autogk 1600 mb pensavo che sarei
riuscito a fare un bel divx poi vado a confrontare il risultato con
l'originale e vedo che l'originale ha colori molto piu' belli e molto
piu' contrasto, il divx e' piu' cupo(divx 5.2.1 pro).
Alla luce di questi risultati mi domando se ha senso usare il divx per
la qualita' video o se lo si usi solo per le sue capacita' di
compressione?Non vorrei dire assurdita' ma da quello che vedo in
termini di qualita' mi sembra che l'mpeg2 sia migliore come qualita'
dell' mpeg4.Nel senso che se dovessi fare il backup di un film di 1:30
otterei risultati migliori comprimendolo dvd2one (mpeg2) che facendolo
in divx alla massima qualita' visto che cmq sembra alterare la gamma
dei colori.Che ne pensi?
 
Ho provato anche a fare come dici tu  "credo" ho dato piu' contrasto
al''originale usando il filtro level da vdub e ho copiato il valore
nell'avs usando il comando level.Forse ho reso il film piu' luminoso
ma ho peggiorato la qualita'.
Marco.
 

meno gli stessi colori e che invece non li hanno
Non sarň in grado di mandarteli priam del tardo pomeriggio, ho il PC
impegnato. Ho fatto un paio di capture, ma in quelli non noto
differenze, mentre guardando il film sě. Dopo ti mando tutto.
-- 
Paradoxally,
Jan AxHell

 la gamma dei colori.Che ne pensi?
che occorre indagare sul perche' tu abbia ottenuto un risultato
sensibilmente piu' "cupo" dell'originale; secondo me questo non
dovrebbe accadere, a meno di bug
effettivamente, le prove che ho fatto (iterazione di algoritmi di
scaling) mostrano che tutti quegli algoritmi hanno la tendenza a
"incupire" (come dici tu) l'immagine originale; pero', come ho
spiegato, mi sono servito dell'applicazione reiterata come una specie
di lente d'ingrandimento, in modo da amplificare "tendenze leggere"; in
altre parole, quegli algoritmi tendono a incupire solo in modo leggero
i filmati di partenza, e secondo me cio' non basta a spiegare le
differenze sensibili di cui lamentate; bisognerebbe analizzare nei
dettagli _tutto_ il procedimento, dalla decodifica dei frame dello
stream mpeg2 di partenza, fino allo stream compresso mpeg4
ora che e' stato sollevato il problema della fedelta' dei colori, credo
sia importante indagare su questo, e mi riprometto di esaminare in modo
molto dettagliato qualche processo di codifica da dvd a divx
prima pero' devo esaminare e tentare di risolvere un altro problema :-)

 sbaglio?
Da vecchie prove si vedeva che il DivX riduceva di poco la luminosità, cosa
non molto grave perchè recuperabile in visualizzazione.
Con alcune scene si notavano lievi cambiamento di colore (te ne accorgi
solo se confronti con l'originale), ma solo in alcune zone. In questi casi
si aveva un comportamento diverso a seconda se si usava DivX o XviD. In
genere XviD risultava il più fedele, ma queste prove le ho fatte con le
vecchie versioni, ora non so come si comportano.
Bye 


 ma ho peggiorato la qualita'.
I filtri avisynth possono creare danni consistenti, per questo ci vuole
pazienza per poter trovare la combinazione migliore. La qualità in che modo
ne ha risentito? Se hai voglia fai anche la prova che ti ho suggerito e poi
facci sapere.
Bye


ma secondo me ti conviene toglierlo del tutto
Boh, penso diventerebbe un maccheroncino, dato che quei comandi
vengono inseriti in automatico da GK...
-- 
Paradoxally,
Jan AxHell

risolve prima.
Ok, adesso te li mando, ma come ho detto anche a lui, non noto grandi
differenze nei capture, solo a schermo mentre scorre il video e cmq ho
scelto di parlare di questo problema con il film meno indicativo... :/
-- 
Paradoxally,
Jan AxHell

 Dai post successivi vedo che non dà grandi risultati.
Può essere e infatti ti ho indicato altri due filtri. Devi sperimentare un
po', non sono tutti uguali i filmati.
bye


 accorgi solo se confronti con l'originale), ma solo in alcune zone.
be', se mi parli di "lievi cambiamenti di colore", allora e' capitato
di notarli anche a me, ma per quanto mi riguarda li trovo accettabili;
il che non vuol dire che debbano essere accettabili per tutti, per
questo volevo vedere concretamente qualche frame :-)
quelli di cui parlavo io pero' non erano tanto lievi: c'erano delle
zone di alcune scene che nell'originale erano nere-nere, ma nel
risultato erano "nere con sfumature bluastre" (o verdastre, non
ricordo); quindi ho pensato che il thread si riferisse a questo
fenomeno (che tra l'altro non mi si e' piu' verificato)