Jump to navigation Jump to search
# Meeting 2014-06-24 Mumble: mf4.xiph.org:64738 # Agenda - reviews - code party - https://daala.etherpad.mozilla.org/coding-party-201408 - Bkoc deringing filter work - Continuous integration/short-time testing hardware requirements - ?? # Attending gmaxwell, xiphmont, jack, derf, td-linux, bkoc # Reviews going well # Code Party assigned invites to people. do that in the next few days # Deringing filter work slides: https://drive.google.com/folderview?id=0B8xmoLAJGxWcdTd0ZDNyM2tVcU0 - b: I'm using a patented ringing filter. Most of them that I saw are used in decoder phase. But since we are using in-loop, it effects dramatically if we use some complex filter. It consists of six steps. first we try to find the block size and threshold values. there's no information on those values in the doc. says based on application. the best results i obtained by using 25 pixels and threshold values 2 and 9. by using these there is no change in PSNR levels. - d: are you testing at single rate? - b: it's a video, but at a single rate. - d: I would expect the threshold to vary greatly depending on amount of quantization. - b: then the second step is to find standard deviation. they are using the final formula. the next step they use a signal detection function which is the deviation value scaled between 0 and 1. if the signal detection output is zero it is a noise area. if it's 1 it is a signal area. the next step they compute a ringing like pattern function. it finds the gradiation level different horizontal and vertical find minimum and maximum distances. they obtain another function that if it's 0 there is no ringing. if it's 1 the pixel shows a ringing pattern. the next step they use a ringing area detection function. to generate the output there is also a low pass filter. the same structure is used in other codecs with other coeff values. to generate output they combine low pass output plus the other functions. there is another optional part. without using the signal detection function. ??? - d: is this a binary decision? it looks like iterpolating between the two - b: yes, interpolating - d: i'm trying to understand the functions beta and g - b: instead of finding the deviation value of the block i am calculating pixel by pixel. - b: in theory theora and this are using the same logic. but theora doesn't give me good results because perhaps i'm not using the right threshold values. i couldn't get good results from the filter in theora after porting it to daala. the compressed file size got bigger. - d: in theory if you lower the threshold enough it should not affect file size at all right? - b: good point. - d: at some point you can make the threshold small enough that it doesn't affect the output. there's a point between where you were trying and where it doesn't do anything at all. is somewhere in there does it dip under, or does it hurt everywhere? - b: i'll go back and try it. all the stuff i found uses same logic, but in encoder phase not in-loop. this technique (in the slides) is using combination of everything which is why i think it is working better. - d: if you look at what hte stuff in theora was doing, it goes pixel by pixel and it creates a weighted avg where one weight is the original pixel and the other is a mix of its neighbors determined adaptively. apply the filter adaptively pixel by pixel is not a problem since we do that in theora. what i'm not sure about is the specific weight computation. - b: where to go next? - j: get pictures for current results, then try to find better threshold value for theora's stuff, and if that doesn't pan out then dig into the tecnique in the slides more and see where it differs from theora.