Ajuda para filtrar esta captura de VHS
Olá pessoal,
eu queria pedir umas dicas sobre que filtro usar para melhorar esta captura de video. Este material é precioso para mim e foi gravado em 1988 em VHS na velocidade SLP(EP). Vocês podem ver que o sinal da TV é fraco e por isso acho que precisa de muita filtragem. Eu gostaria de fazer duas versões digitais desta captura. Uma em (K) VCD ou (K) SVCD (ainda não me decidi, ou ambas) e uma em DIVX. Então eu preciso de dicas de como filtrar. Aqui vão umas telas da captura ainda intrelaçada: http://www.digitalfaq.com/archives/error.gif http://www.digitalfaq.com/archives/error.gif http://www.digitalfaq.com/archives/error.gif Um abraço, André |
André,
Não quero te deixar triste mas vai ser dificil melhorar muito isso aí. O que vc pode fazer mais é remover o ruido aleatorio q se mantido com certeza irá gerar uma imagem comprimida ainda pior que o original. Tente o script abaixo (para avisynth 2.0 com os plugins grapesmoother, cnr2 e dust). É o que eu uso com capturas muito ruins como esta. Melhora bastante mas suaviza demais tb (não tem como evitar). É muito lento tb, mas como vc disse que o material é importante acho q isso não é o principal. Lembre-se que para KVCD vc precisa desentrelaçar com o plugin de sua preferencia. AVISource("capture.avi") #Filtering (heavy ) # ##################### cnr2() GrapeSmoother(80) #Dust# ###### SeparateFields() Weave() Setparity(false) UnFoldFieldsVertical(true) Golddust() FoldFieldsVertical(true) unfilter(25,0) #Functions # ############ # SetParity # # Sets the parity of a clip. # # PARAMETERS: # parity - true for TFF; # false for BFF # function SetParity(clip c, bool parity) { return parity ? c.AssumeTFF() : c.AssumeBFF() } # UnfoldFieldsVertical # # Separates the fields in a clip and stacks them vertically. # Regardless of field order, even fields are on top. # # PARAMETERS: # flip - pass true to flip the bottom field vertically; # useful when dealing with spatial filters # (default: false) # function UnfoldFieldsVertical(clip c, bool "flip") { flip = default(flip, false) oldParity = c.GetParity() c = c.AssumeTFF().SeparateFields().AssumeFrameBased() top = c.SelectEven() bottom = c.SelectOdd() c = StackVertical(top, flip ? bottom.FlipVertical() \ : bottom) return c.SetParity(oldParity) } # FoldFieldsVertical # # Folds fields from a clip that resulted from calling # UnfoldFieldsVertical. # # PARAMETERS: # flip - pass true if the bottom field was flipped vertically with # UnfoldFieldsVertical # (default: false) # function FoldFieldsVertical(clip c, bool "flip") { assert(c.Height() % 2 == 0, "FoldFieldsVertical: unexpected frame height") flip = default(flip, false) oldParity = c.GetParity() originalHeight = c.Height() / 2 evens = c.Crop(0, 0, c.Width(), originalHeight) odds = c.Crop(0, originalHeight, c.Width(), originalHeight) odds = flip ? odds.FlipVertical() : odds c = Interleave(evens, odds).AssumeFieldBased().AssumeTFF().Weave() return c.SetParity(oldParity) } |
Site design, images and content © 2002-2024 The Digital FAQ, www.digitalFAQ.com
Forum Software by vBulletin · Copyright © 2024 Jelsoft Enterprises Ltd.