redfordxx
24th April 2006, 13:24
Hi, I am working on new deblocking scrip (I will share later if successful). Inspired little by Deblock_QED, but different approach:
1) Similar to Deblock_QED, build block edges mask (called _block_ there). But here, I process horizontal and vertical edges separately, so it is two masks (_barsH_ and _barsV_).
2) Find blocking edges mask on these bars-masks (the higher block difference, the higher value on this mask)
3) Merge horizontal and vertical edges masks-->_BlockMask_
4) Blur the BlockMask into the 8x8 blocks inner areas (using convolution dimension 8)
Now we have blocking strength mask.
5) Create deblocked clips with different strength of deblocking (1-16777216, as preferred;-)
6) Maskmerge them according to the Blocking mask
I have a problem already in step 2):
I tried to find edges with mt_convolution("1 –1 1", "1"). It found nicely the blocking edges. Of course, there are real edges but I can filter them out (as lines with high values). But there are also diagonal edges caught by this kernel, and I can’t get rid of them. Pls help, I am not so familiar with edge detection. I see already kernels when I close my eyes.
What I need is kernel (or procedure) to detect strictly horizontal resp. vertical edges and not be confused by diagonals.
Thanks
R.
1) Similar to Deblock_QED, build block edges mask (called _block_ there). But here, I process horizontal and vertical edges separately, so it is two masks (_barsH_ and _barsV_).
2) Find blocking edges mask on these bars-masks (the higher block difference, the higher value on this mask)
3) Merge horizontal and vertical edges masks-->_BlockMask_
4) Blur the BlockMask into the 8x8 blocks inner areas (using convolution dimension 8)
Now we have blocking strength mask.
5) Create deblocked clips with different strength of deblocking (1-16777216, as preferred;-)
6) Maskmerge them according to the Blocking mask
I have a problem already in step 2):
I tried to find edges with mt_convolution("1 –1 1", "1"). It found nicely the blocking edges. Of course, there are real edges but I can filter them out (as lines with high values). But there are also diagonal edges caught by this kernel, and I can’t get rid of them. Pls help, I am not so familiar with edge detection. I see already kernels when I close my eyes.
What I need is kernel (or procedure) to detect strictly horizontal resp. vertical edges and not be confused by diagonals.
Thanks
R.