Log in

View Full Version : edge side bleed? need help


real.finder
29th June 2015, 21:38
hi all :)

I wonder if there is a solution for such a problem

http://i.imgur.com/XTkOH35.png

It occurs in white or black edges

real.finder
30th June 2015, 00:15
and here another frame (same source) to show it in black edge

http://i.imgur.com/bo4BDWL.png

See debris on the Moon

and you can use Histogram("luma") to see the one that outside the moon clearly

colours
30th June 2015, 10:51
I had a quick attempt at this. It's kind of slow and you could optimise it by replacing all the raveragew calls with just dither_resize16. (I mean, I'm assuming the latter is faster for doing a two-tap convolution. I didn't actually benchmark that.)

ImageReader("O:\XTkOH35.png")
showgreen("y8")
w1 = 0.6
w2 = 0.02
w4 = 0.02
w8 = 0.02
w16 = 0.02
w32 = 0.01
dither_convert_8_to_16()
shift32 = dither_resize16(width(),height()/2,src_left=-32)
raveragew(last,1+w32,shift32,-w32,lsb_in=true,lsb_out=true,mode=0)
shift16 = dither_resize16(width(),height()/2,src_left=-16)
raveragew(last,1+w16,shift16,-w16,lsb_in=true,lsb_out=true,mode=0)
shift8 = dither_resize16(width(),height()/2,src_left=-8)
raveragew(last,1+w8,shift8,-w8,lsb_in=true,lsb_out=true,mode=0)
shift4 = dither_resize16(width(),height()/2,src_left=-4)
raveragew(last,1+w4,shift4,-w4,lsb_in=true,lsb_out=true,mode=0)
shift2 = dither_resize16(width(),height()/2,src_left=-2)
raveragew(last,1+w2,shift2,-w2,lsb_in=true,lsb_out=true,mode=0)
shift1 = dither_resize16(width(),height()/2,src_left=-1)
raveragew(last,1+w1,shift1,-w1,lsb_in=true,lsb_out=true,mode=0)
ditherpost(mode=-1)
# insert dehaloing filter of choice here

I just randomly typed out some coefficients and it turned out semidecent, but I'm sure it's possible to tweak them for a much better result. Also might need further tweaking for the chroma channels.

real.finder
30th June 2015, 15:43
I had a quick attempt at this. It's kind of slow and you could optimise it by replacing all the raveragew calls with just dither_resize16. (I mean, I'm assuming the latter is faster for doing a two-tap convolution. I didn't actually benchmark that.)

ImageReader("O:\XTkOH35.png")
showgreen("y8")
w1 = 0.6
w2 = 0.02
w4 = 0.02
w8 = 0.02
w16 = 0.02
w32 = 0.01
dither_convert_8_to_16()
shift32 = dither_resize16(width(),height()/2,src_left=-32)
raveragew(last,1+w32,shift32,-w32,lsb_in=true,lsb_out=true,mode=0)
shift16 = dither_resize16(width(),height()/2,src_left=-16)
raveragew(last,1+w16,shift16,-w16,lsb_in=true,lsb_out=true,mode=0)
shift8 = dither_resize16(width(),height()/2,src_left=-8)
raveragew(last,1+w8,shift8,-w8,lsb_in=true,lsb_out=true,mode=0)
shift4 = dither_resize16(width(),height()/2,src_left=-4)
raveragew(last,1+w4,shift4,-w4,lsb_in=true,lsb_out=true,mode=0)
shift2 = dither_resize16(width(),height()/2,src_left=-2)
raveragew(last,1+w2,shift2,-w2,lsb_in=true,lsb_out=true,mode=0)
shift1 = dither_resize16(width(),height()/2,src_left=-1)
raveragew(last,1+w1,shift1,-w1,lsb_in=true,lsb_out=true,mode=0)
ditherpost(mode=-1)
# insert dehaloing filter of choice here

I just randomly typed out some coefficients and it turned out semidecent, but I'm sure it's possible to tweak them for a much better result. Also might need further tweaking for the chroma channels.

thank you, your idea will help :)

and using this http://forum.doom9.org/showthread.php?p=1177901#post1177901 after your code will make it better

yes there are similar problem in chroma in this source http://forum.doom9.org/showthread.php?p=1715113

real.finder
5th February 2017, 08:47
if anyone has this type of artifacts, I made function that based on colours idea (with a lot of edits and speed up), it's edgesidebleed(), it's also in the same script that has sanimebob()