VideoHelp Forum




+ Reply to Thread
Page 2 of 3
FirstFirst 1 2 3 LastLast
Results 31 to 60 of 61
  1. Originally Posted by poisondeathray View Post

    Order of Converting to YUY2 doesn't matter)
    but seems to me matter when I paragon images with images outputted from edius and totalcode, seems that if I don't put the converttoyuy2 at the top, color are a little in chromaghost

    hoewver virtualdub is set so that
    Click image for larger version

Name:	CDEP.jpg
Views:	240
Size:	76.8 KB
ID:	27885
    Quote Quote  
  2. Originally Posted by marcorocchini View Post
    Originally Posted by poisondeathray View Post

    Order of Converting to YUY2 doesn't matter)
    but seems to me matter when I paragon images with images outputted from edius and totalcode, seems that if I don't put the converttoyuy2 at the top, color are a little in chromaghost
    I said order doesn' t matter in that specific case of that avs script, where it's still progressive.

    Order does matter when you convert to RGB and use wrong chroma up sampling (interlaced vs. progressive) , or improper handling of chroma channels when scaling (e.g. using progressive method to scale when chroma is interlaced). This was already discussed too. Do you remember the ffmpeg thread, with the soccer player interl=1 ? Remember TMPGEnc doing it incorrectly ? = chroma ghost
    Last edited by poisondeathray; 4th Oct 2014 at 13:31.
    Quote Quote  
  3. Originally Posted by poisondeathray View Post

    No, because IResize() is filter for interlaced resizing (where source is interlaced).

    Click image for larger version

Name:	ohcat2.jpg
Views:	159
Size:	320.5 KB
ID:	27886 ahhhhn
    Quote Quote  
  4. I remember but I'm a cat . so to summarize, considering the progressive source what should a correct script?

    FFVideoSource("GOPR1262.MP4")
    ConvertToYUY2(interlaced=false)
    ColorMatrix(mode="Rec.709->Rec.601")
    Spline36Resize(720,576)
    Assumetff().SeparateFields().SelectEvery(4, 0, 3).Weave()

    should be correct?
    but to legalize leves what it can be used?
    Last edited by marcorocchini; 4th Oct 2014 at 13:39.
    Quote Quote  
  5. Originally Posted by marcorocchini View Post
    I remember but I'm a cat . so to summarize, considering the progressive source what should a correct script?

    FFVideoSource("GOPR1262.MP4")
    ConvertToYUY2(interlaced=false)
    ColorMatrix(mode="Rec.709->Rec.601")
    Spline36Resize(720,576)
    Assumetff().SeparateFields().SelectEvery(4, 0, 3).Weave()

    should be correct?


    You need to fix levels on go pro files if you use FFMS2 , remember full range flag ?

    Spline36 is probably too sharp, and/or you need to lowpass as well

    Colormatrix should have clamp=0 or clamp=false (depending on version), otherwise you CLIP data (it's mislabelled as "clamp"), especially if you didn't legalize levels beforehand
    Quote Quote  
  6. FFVideoSource("c:\gopro\GOPR1262.MP4")
    ConvertToYUY2(interlaced=false)
    ColorYUV(levels="TV->PC")
    Colormatrix(mode="rec.709->rec.601",clamp=false)
    nnedi3_rpow2(2, cshift="Lanczos4Resize", fwidth=720, fheight=576)
    Assumetff().SeparateFields().SelectEvery(4, 0, 3).Weave()
    Quote Quote  
  7. FFVideoSource("c:\gopro\GOPR1263.MP4")
    ConvertToYUY2(interlaced=false)
    ColorYUV(levels="PC->TV")
    Colormatrix(mode="rec.709->rec.601",clamp=false)
    nnedi3_rpow2(2, cshift="Lanczos4Resize", fwidth=720, fheight=576)
    Assumetff().SeparateFields().SelectEvery(4, 0, 3).Weave()
    Quote Quote  
  8. that fatigue to be a cat!


    mmm think is too sharp, too details aliasing

    I need to smooth but I don't know how to use the nnedi3
    Quote Quote  
  9. nnedi3_rpow2 is for upscaling ; it's not a low pass filter.

    Try softer resize algorithm. Here is a visualization of different resizing kernals
    http://svn.int64.org/viewvc/int64/resamplehq/doc/kernels.html

    Try vertical blur then sharpen. Have a look in your other threads, there were many suggestions
    Quote Quote  
  10. sincresize can be suitable?
    Quote Quote  
  11. FFVideoSource("c:\gopro\GOPR1263.MP4")
    ConvertToYUY2(interlaced=false)
    ColorYUV(levels="PC->TV")
    Colormatrix(mode="rec.709->rec.601",clamp=false)
    spline36resize(720,576)
    blur(0.0,1.0)
    sharpen(0.0,0.5)
    ASSUMEFPS(50)
    Assumetff().SeparateFields().SelectEvery(4, 0, 3).Weave()
    ASSUMEFPS(25)



    mmmm
    Quote Quote  
  12. poison my cat have a question, can it do a script that insert lowpass filter on moving parts and no lowpass on static parts?
    Quote Quote  
  13. Originally Posted by marcorocchini View Post
    poison my cat have a question, can it do a script that insert lowpass filter on moving parts and no lowpass on static parts?
    Difficult to do automatically and perfectly because of different types of scenes, clips, noise

    But one way to do it is with ConditionalFilter() using YDifferenceFromPrevious() .
    http://avisynth.nl/index.php/ConditionalFilter

    Basically, it uses one clip if the condition is met. e.g. If difference is detected (ie in motion, use video B, otherwise use other video A. Where "A" is unfiltered, "B" is filtered low passed video. In this case YDifferenceFromPrevious is just looking a the Y plane between adjacent frames). It's difficult to do generically for everything, because you have to adjust the threshold value for the detection (e.g. you might have more noise in some poorly lit scenes, but even on a no motion, static scene, the noise could be detected as "motion" or a difference in frames; but on clean footage or better camera, it might use a different threshiold). So you have to do some debugging for appropriate threshold values (use show=true) . Or you might be able to do it with mvtools2 instead of using Y difference

    If you get stuck, use search, I've posted several examples on how to use ConditionalFilter before
    Quote Quote  
  14. thanks but too complicated for a cat, is enought if you can suggest me an appropriate resizing filter for the gopro, I have put

    spline36resize(720,576)
    blur(0.0,1.0)
    sharpen(0.0,0.5)

    but don't know if spline36 is right, and if that blur or sharpen is right or no. Hoewver, for you what should be a proper resize alghorithm for the gopro?
    Quote Quote  
  15. Use what you think is best - there is no proper "right or wrong" for that. Unlike using the wrong matrix, wrong colors or illegal levels (which all are definitely "wrong"), the amount of lowpassing is quite subjective and might be different in different situations. eg. If your content has all organic curves, not fine lines, you might not even have to lowpass at all - or very little. Do a pan on a brick wall and you might have to lowpass a lot.

    Test and retest examine the results of different footage, different "worst case" situations (panning shots of fences, brick walls, roof top shingles etc...)
    Quote Quote  
  16. but for now the wrong matrix, wrong colors or illegal levels are solved, it's only question of kind of resize algorithm and blur/sharpen, but you tell me spline36resize is no exactly the optimum, so for you what can do a possible if not this? the lanczos seems to me not, maybe the gauss? In true I don't have well undestand what resize algorithm are lowpass
    Quote Quote  
  17. this is a test footage from gopro hero3+ black edition 1920x1080 50P (1080p)

    https://www.dropbox.com/s/bulsslffkm56z5u/GOPR1264.MP4?dl=0

    Can be suitable IcResize.avsi?

    where IcResize.avsi is:

    Code:
    function icResize(clip "source", int "newwidth", int "newheight", bool "discardhalf")
    {
    discardhalf = default(discardhalf, false)
    
    src1=source.separatefields()
    src2=discardhalf ? src1.selectevery(4, 0, 3) : src1
    Shift = (src2.GetParity() ? -0.25 : 0.25) * (src2.Height()/Float(newheight/2) - 1.0)
    
    E = src2.SelectEven() .Spline36Resize(NewWidth, NewHeight/2, 0, Shift)
    O = src2.SelectOdd() .Spline36Resize(NewWidth, NewHeight/2, 0, -Shift)
    Echr = src2.SelectEven() .Spline36Resize(NewWidth, NewHeight/2, 0, 2*Shift)
    Ochr = src2.SelectOdd() .Spline36Resize(NewWidth, NewHeight/2, 0, -2*shift)
    
    dst1=Interleave(E, O)
    dst2=dst1.IsYV12() ? MergeChroma(Interleave(Echr, Ochr)) : dst1
    dst2.Weave()
    }

    I have try this:

    Code:
    FFVideoSource("c:\gopro\GOPR1264.MP4")
    ConvertToYUY2(interlaced=false)
    Colormatrix(mode="rec.709->rec.601",clamp=false)
    ColorYUV(levels="PC->TV")
    IcResize(720,576)
    
    AssumeTFF().SeparateFields().SelectEvery(4,0,3).Weave()
    and seems nice image

    not too aliasing, maybe is a little little softer but adding any
    blur(0.0,1.0)
    sharpen(0.0,0.5)

    the situation worses, so I prefer don't adding this last 2 lines

    Please poison I wonder this: this source is progressive 50P, and if I would convert to 1920x1080 50i (interlaced), this script is suitable?

    Is there a way to correct gamma so that image result is a little more "dark" in black... this ColorYUV(levels="PC->TV") get a image slightly too "tv", maybe too "bright" in brighter zone.

    ColorYUV(levels="PC->TV") equalize levels to the edius's output as wel, but I would a gamma more "restricted", can be done in avisynth?
    Quote Quote  
  18. Originally Posted by marcorocchini View Post

    Is there a way to correct gamma so that image result is a little more "dark" in black... this ColorYUV(levels="PC->TV") get a image slightly too "tv", maybe too "bright" in brighter zone.

    ColorYUV(levels="PC->TV") equalize levels to the edius's output as wel, but I would a gamma more "restricted", can be done in avisynth?

    Of course there are ways - manually adjusting it per scene is the "best" way

    Remember, ColorYUV(levels="PC->TV") is a "dumb" clamp - black is "squished" by 16 and white is squished 20. Always. That means on some footage with different exposure characteristics it will look bad

    If you dont want to do this manual work, you need control exposure properly when you shoot (very difficult to control unless you have complete control over lighting, better manual settings on camera)

    There are some "auto" plugins like autoadjust, autogain, autolevels, you can try etc... you have to set the parameters properly . NLE's have "auto" plugins as well, but they aren't necessarily any better or worse than the avisynth ones. "Auto" anything will of course always yield worse results than doing it manually.
    Quote Quote  
  19. I had a doubt, but IcResize is for progressive source?

    results seems the same of IResize

    OR considering the gopro source, is there another best way to resize 1080p --> SD interlaced, is there a plugin for avisynth that work in high-accurate mode (but not too slow)?
    Quote Quote  
  20. my "final" script should be:

    Code:
    FFVideoSource("c:\gopro\gopr1263.mp4")
    ConvertToYUY2(interlaced=false)
    Colormatrix(mode="rec.709->rec.601",clamp=false)
    ColorYUV(levels="PC->TV")
    IcResize(720,576)
    AssumeTFF().SeparateFields().SelectEvery(4, 0, 3).Weave()
    but I cannot change gamma in the new range PC-->TV, please poison can you tell me how have I to do?

    for example I would "restrict" gamma in a classic range 0.70-1.2 but I don't know how to do

    and 2 thing:

    IcResize is ok for progressive source?
    IcResize is ok also for upscaling?

    Thank you
    Quote Quote  
  21. Originally Posted by marcorocchini View Post

    but I cannot change gamma in the new range PC-->TV, please poison can you tell me how have I to do?
    Use levels, curves, or some other filters


    for example I would "restrict" gamma in a classic range 0.70-1.2 but I don't know how to do
    I don't know how to do that automatically.


    IcResize is ok for progressive source?
    IcResize is ok also for upscaling?
    I don't know , never used that variant before. Try it out and examine it
    Quote Quote  
  22. This seems to me good

    Code:
    FFVideoSource("c:\gopro\gopr1264.mp4")
    ConvertToYUY2(interlaced=false)
    Colormatrix(mode="rec.709->rec.601",clamp=false)
    ColorYUV(levels="PC->TV")
    ColorYUV(gamma_y=-15, gamma_u=-15, gamma_v=-15)
    IcResize(720,576)
    AssumeTFF().SeparateFields().SelectEvery(4, 0, 3).Weave()
    
    function icResize(clip "source", int "newwidth", int "newheight", bool "discardhalf")
    {
    discardhalf = default(discardhalf, false)
    
    src1=source.separatefields()
    src2=discardhalf ? src1.selectevery(4, 0, 3) : src1
    Shift = (src2.GetParity() ? -0.25 : 0.25) * (src2.Height()/Float(newheight/2) - 1.0)
    
    E = src2.SelectEven() .LanczosResize(NewWidth, NewHeight/2, 0, Shift)
    O = src2.SelectOdd() .LanczosResize(NewWidth, NewHeight/2, 0, -Shift)
    Echr = src2.SelectEven() .LanczosResize(NewWidth, NewHeight/2, 0, 2*Shift)
    Ochr = src2.SelectOdd() .LanczosResize(NewWidth, NewHeight/2, 0, -2*shift)
    
    dst1=Interleave(E, O)
    dst2=dst1.IsYV12() ? MergeChroma(Interleave(Echr, Ochr)) : dst1
    dst2.Weave()
    }
    Quote Quote  
  23. ICResize() is terribly destructive. Why do you insist on using it. Use a vertical blur if you want to reduce interlace flicker.
    Quote Quote  
  24. I have try something like

    spline36resize(720,576)
    blur(0.0,0.5)
    sharpen(0.0,0.5)

    but very bad results. My target is 50i: so I use a broadcast SD monitor to compare results ... I see image "well": no aliasing, no ringing (consider the gopro Hero3+ in gopr1264.mp4 I have use it without the magnifying glass frontal protection so is natual to have natively outline almost too sharp to the limit of aliasing). If is there is an alternative is welcome
    Quote Quote  
  25. Sharpening after blurring is silly. Just use enough blur to reduce the aliasing and flicker. And using a sharpening resizer on video that's already over sharpened will only exacerbate the problems. Do you ever think about what you are doing?
    Last edited by jagabo; 6th Oct 2014 at 20:34.
    Quote Quote  
  26. Member Cornucopia's Avatar
    Join Date
    Oct 2001
    Location
    Deep in the Heart of Texas
    Search PM
    Jagabo, I stopped feeding the troll a while ago. Much less stressful and more humorous thread reviewing now. Of course, this will only abate when all follow/join the exit bandwagon.

    Scott
    Last edited by Cornucopia; 6th Oct 2014 at 21:41.
    Quote Quote  
  27. Code:
    FFVideoSource("c:\gopro\gopr1264.mp4")
    ConvertToYUY2(interlaced=false)
    Colormatrix(mode="rec.709->rec.601",clamp=false)
    ColorYUV(levels="PC->TV")
    ColorYUV(gamma_y=-15)
    LanczosResize(720,576)
    blur(0.8,0.8)
    AssumeTFF().SeparateFields().SelectEvery(4, 0, 3).Weave()
    or blur(0.5.0.5)

    I have try this but in my monitor I found is "better" the IcResize() one
    Quote Quote  
  28. of course as reference I use a broadcast SD CRT monitor, I know the IResize and IcResize are are misjudged but in my monitor I found they works well: clean details, no aliasing, no flickering, no loss of the general "definition" (...) of images.

    Seems to me IcResize is a lot better compared to other methods, but I don't know many many other methods.
    Out of the IcResize/IResize procedure I get easly aliasing and the picture becomes very difficult to treat.

    Maybe I'm wrong somewhere but at the moment I see that.
    Quote Quote  
  29. ps. IcResize have a "bug"?

    Code:
    function icResize(clip "source", int "newwidth", int "newheight", bool "discardhalf")
    {
    discardhalf = default(discardhalf, false)
    
    src1=source.separatefields()
    src2=discardhalf ? src1.selectevery(4, 0, 3) : src1
    Shift = (src2.GetParity() ? -0.25 : 0.25) * (src2.Height()/Float(newheight/2) - 1.0)
    
    E = src2.SelectEven() .LanczosResize(NewWidth, NewHeight/2, 0, Shift)
    O = src2.SelectOdd() .LanczosResize(NewWidth, NewHeight/2, 0, -Shift)
    Echr = src2.SelectEven() .LanczosResize(NewWidth, NewHeight/2, 0, 2*Shift)
    Ochr = src2.SelectOdd() .LanczosResize(NewWidth, NewHeight/2, 0, -2*shift)
    
    dst1=Interleave(E, O)
    dst2=dst1.IsYV12() ? MergeChroma(Interleave(Echr, Ochr)) : dst1
    dst2.Weave()
    }
    in my script don't do problems because source is YUY2, but when it he use YV12 I get:
    Click image for larger version

Name:	AVSERR1.jpg
Views:	146
Size:	22.1 KB
ID:	27910
    Quote Quote  
Visit our sponsor! Try DVDFab and backup Blu-rays!