kempfand
19th November 2003, 00:23
Fred: My issue is kind of a 'long and winding road'. Difficult to explain (my native language is not English), but I'll give it a try.
It's PAL DV-avi (16:9 anamorph recorded source) from my vacation videos. I usually go South and have lot's of bushes, grasses, palmtrees in the picture. As there aleays is some mild wind, the palm-leaves are a bit moving, and, in addition, I mostly use no tripoid, so there is some slight movement also from me holding the cam (or slowly moving to change scene). What I want to say: complicated stuff to encode (i.e. more difficult than DVD-backups from Hollywood movies, which in addition are progressive).
The problem I have now, is as follows: In the picture, where there are moving leaves, the resulting MPG (when viewed on TV) is kindof flickering, pulsing, not moving smoothly. This only applies to areas with these leaves and tree or grass -structures (i.e. if there is a stone or sand in the very same picture and scene, the part of the image where the sand is is very good).
For testing, I use CCE, CBR 7000, DC 9, Standard Matrix, Alternate Scan, no filters within CCE. I'm feeding an AVS to CCE. The resulting fieldorder from the AVS is correct (i.e. I always check the AVS with assumetff() & bob() through feeding it into VirtualDub).
When I 1st faced the problem 2 months back, I started to test as follows:
- Deinterlace (various ones, best was TomsMoComp and KernelDeInt). This solved the problem, but the image was not 'fluid' anymore when the cam moves, so this is a no-go
- Tried various SpatioTemp filters (Convolution3D (1, 6, 10, 6, 8, 2.8, 0) and lately MipSmooth(preset = "MovieLQ"), plus some of the others around). And yes: I did not use SeparateFields() but used some of the more advanced scripts such as the ones from UnPlugged ( Bob(0,0.5) ... SeparateFields().SelectEvery(4,1,2).Weave() ) or StickyBoy (Fold/UnfoldFieldsVertical(true) ).
Long story result: SegmentedAVISource("V:\sclive\Z\Z-01.avi")
Bob(0,0.5)
SpaceDust()
SeparateFields().SelectEvery(4,1,2).Weave()
gives excellent results (i.e. the flickering/pumping within the image-area where I have the palm-trees are gone). With PixieDust(limit=5), results are even better, but it takes forever.
I also found that Blur improves the situation, either the LowPass filter in CCE, or Blur(1,0) (better than Blur(0,1) or Blur(1,1). But things get clearly 'unsharp', and it's not easy to view (the eye constantly tries to 'focus' and get things more sharp).
Another good approach came from mb1 (he knows all the 'old' tricks). He suggested using a BilinearResize (taking into account 2 blocks for TV-overscan). This, in combination with MipSmooth (latest version) also gets rid of the problem, and this is what I currently use:
LoadPlugin("C:\Program Files\AviSynth 2.5\plugins\MipSmooth.dll")
SegmentedAVISource("V:\sclive\Z\Z-02.avi")
ConvertToYV12(interlaced=true)
Bob(0,0.5)
MipSmooth(preset = "MovieLQ", weigh = false)
BilinearResize(688,544,0,3,720,570)
SeparateFields().SelectEvery(4,1,2).Weave()
AddBorders(16,16,16,16)
ConvertToYUY2(interlaced=true)
I also found out, that some (not all) of the flickering with the palm-leaves comes from the DVD-player itself, and how it is connected. For example, my old player was connected via RGB to the TV. When I switched to SVHS-cable, the flickering was less.
But more: I upgraded to a new player 5 days back. Guess what: The flickering is much less (even through RGB). I was also told that some players (i.e. Grundig) even have different firmwares (which can be flashed) which produce different sharpness and more/less flickering. My learning is that the player (and how it transmits to the TV) are an important element in the chain.
That's basically the story. If you or other readers have additional suggestions for concrete scripts/filter -combinations, I'm keen to test them (I already tried some of the more elaborated ones such as the ones for KVCD/KDVD or the one 'Quantified Motion Filter' by HomiE described somewhere in this forum.
Kind regards,
Andreas
It's PAL DV-avi (16:9 anamorph recorded source) from my vacation videos. I usually go South and have lot's of bushes, grasses, palmtrees in the picture. As there aleays is some mild wind, the palm-leaves are a bit moving, and, in addition, I mostly use no tripoid, so there is some slight movement also from me holding the cam (or slowly moving to change scene). What I want to say: complicated stuff to encode (i.e. more difficult than DVD-backups from Hollywood movies, which in addition are progressive).
The problem I have now, is as follows: In the picture, where there are moving leaves, the resulting MPG (when viewed on TV) is kindof flickering, pulsing, not moving smoothly. This only applies to areas with these leaves and tree or grass -structures (i.e. if there is a stone or sand in the very same picture and scene, the part of the image where the sand is is very good).
For testing, I use CCE, CBR 7000, DC 9, Standard Matrix, Alternate Scan, no filters within CCE. I'm feeding an AVS to CCE. The resulting fieldorder from the AVS is correct (i.e. I always check the AVS with assumetff() & bob() through feeding it into VirtualDub).
When I 1st faced the problem 2 months back, I started to test as follows:
- Deinterlace (various ones, best was TomsMoComp and KernelDeInt). This solved the problem, but the image was not 'fluid' anymore when the cam moves, so this is a no-go
- Tried various SpatioTemp filters (Convolution3D (1, 6, 10, 6, 8, 2.8, 0) and lately MipSmooth(preset = "MovieLQ"), plus some of the others around). And yes: I did not use SeparateFields() but used some of the more advanced scripts such as the ones from UnPlugged ( Bob(0,0.5) ... SeparateFields().SelectEvery(4,1,2).Weave() ) or StickyBoy (Fold/UnfoldFieldsVertical(true) ).
Long story result: SegmentedAVISource("V:\sclive\Z\Z-01.avi")
Bob(0,0.5)
SpaceDust()
SeparateFields().SelectEvery(4,1,2).Weave()
gives excellent results (i.e. the flickering/pumping within the image-area where I have the palm-trees are gone). With PixieDust(limit=5), results are even better, but it takes forever.
I also found that Blur improves the situation, either the LowPass filter in CCE, or Blur(1,0) (better than Blur(0,1) or Blur(1,1). But things get clearly 'unsharp', and it's not easy to view (the eye constantly tries to 'focus' and get things more sharp).
Another good approach came from mb1 (he knows all the 'old' tricks). He suggested using a BilinearResize (taking into account 2 blocks for TV-overscan). This, in combination with MipSmooth (latest version) also gets rid of the problem, and this is what I currently use:
LoadPlugin("C:\Program Files\AviSynth 2.5\plugins\MipSmooth.dll")
SegmentedAVISource("V:\sclive\Z\Z-02.avi")
ConvertToYV12(interlaced=true)
Bob(0,0.5)
MipSmooth(preset = "MovieLQ", weigh = false)
BilinearResize(688,544,0,3,720,570)
SeparateFields().SelectEvery(4,1,2).Weave()
AddBorders(16,16,16,16)
ConvertToYUY2(interlaced=true)
I also found out, that some (not all) of the flickering with the palm-leaves comes from the DVD-player itself, and how it is connected. For example, my old player was connected via RGB to the TV. When I switched to SVHS-cable, the flickering was less.
But more: I upgraded to a new player 5 days back. Guess what: The flickering is much less (even through RGB). I was also told that some players (i.e. Grundig) even have different firmwares (which can be flashed) which produce different sharpness and more/less flickering. My learning is that the player (and how it transmits to the TV) are an important element in the chain.
That's basically the story. If you or other readers have additional suggestions for concrete scripts/filter -combinations, I'm keen to test them (I already tried some of the more elaborated ones such as the ones for KVCD/KDVD or the one 'Quantified Motion Filter' by HomiE described somewhere in this forum.
Kind regards,
Andreas