Menu

SNES De-blur

Home Forums OSSC OSSC – Feature Requests SNES De-blur

This topic contains 4 replies, has 3 voices, and was last updated by  paulb_nl 5 months, 3 weeks ago.

Viewing 5 posts - 1 through 5 (of 5 total)
  • Author
    Posts
  • #8206

    paulb_nl
    Participant

    I have made a page where you can see the de-blur in action. You can use the sliders to change the lpf value to see how it looks.
    http://pbnl.byethost7.com/snes/snes-reverse-lpf.html

    It works by using the current pixel and previous pixel to calculate the original pixel using a generic low pass filter function.

    On the 256×240 optimized mode capture it works very well. It also works on generic linetriple but the capture had noise that also gets sharpened.

    It would be a nice feature for the non 1-CHIP consoles. 🙂

    snes de-blur

    #8238

    BuckoA51
    Keymaster

    I think this would be possible but would require a lot of work.

    #8244

    paulb_nl
    Participant

    I think the tricky part will be the reverse lpf formula because I have read that division is difficult to do on a FPGA. This is the formula I am using:

    originalData = PrevData - ((PrevData - Data) / lpfValue)

    I could change it to multiplication with a lookup table for the different lpf values if thats needed.

    #8260

    marqs
    Participant

    Floating point division on Cyclone IV would be slow but probably sufficient for 5.37MHz pixel clock when using 256×240 optimized mode with SNES/NES. That could be tested after getting more important/generic features out the way.

    #8270

    paulb_nl
    Participant

    Ok thanks. I have updated the page with a faster multiplication version just in case if division would be too slow for normal linedouble or generic linetriple mode.

    a = (PrevData - Data) * lpf_values[lpfv];
    b = PrevData * 100;
    originalData = ((b - a) * 656) >> 16; // (b - a) / 100
Viewing 5 posts - 1 through 5 (of 5 total)

You must be logged in to reply to this topic.