• Products
    • Isadora
    • Get It
    • ADD-ONS
    • IzzyCast
    • Get It
  • Forum
  • Help
  • Werkstatt
  • Newsletter
  • Impressum
  • Dsgvo
  • Press
  • Isadora
  • Get It
  • ADD-ONS
  • IzzyCast
  • Get It
  • Press
  • Dsgvo
  • Impressum

Navigation

    • Register
    • Login
    • Search
    • Categories
    • Recent
    • Popular
    • Tags

    [ANSWERED] Deinterlacing

    How To... ?
    2
    3
    476
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • Fred
      Fred last edited by Woland

      Hi, I have some badly encoded videos and want an up to date way to deinterlace, is there anything availabe that is GPU accelarated for Isadora?

      http://www.fredrodrigues.net/
      https://github.com/fred-dev
      OSX 13.6.4 (22G513) MBP 2019 16" 2.3 GHz 8-Core i9, Radeon Pro 5500M 8 GB, 32g RAM
      Windows 10 7700K, GTX 1080ti, 32g RAM, 2tb raided SSD

      DusX 1 Reply Last reply Reply Quote 0
      • DusX
        DusX Tech Staff @Fred last edited by

        @fred

        I couldn't think of anything instantly, so I did a quick search, found an ISF shader, and converted it.

        // CREDIT: by zoidberg
        uniform sampler2D tex0;
        uniform vec2 resolution;
        const vec2        pointOffset = vec2(0.0, 1.0);
        void main() {
            vec4        outColor;
            //    "upper" (a.k.a. "the top row")
            if (fract((gl_FragCoord.y+0.5)/2.0) == 0.0)    {
                //gl_FragColor = vec4(1,0,0,1);
                outColor = (texture2D(tex0, (gl_FragCoord.xy)/resolution) + texture2D(tex0, (gl_FragCoord.xy - pointOffset)/resolution))/2.0;
                gl_FragColor = outColor;
            }
            //    "lower" (a.k.a. "the bottom row")
            else    {
                //gl_FragColor = vec4(0,1,0,1);
                outColor = (texture2D(tex0, (gl_FragCoord.xy)/resolution) + texture2D(tex0, (gl_FragCoord.xy + pointOffset)/resolution))/2.0;
                gl_FragColor = outColor;
            }
        }

        From a quick test it seems to work. Of course you may get better results deinterlacing in Shutter Encoder or another non real-time tool.

        Troikatronix Technical Support

        • New Support Ticket Link: https://support.troikatronix.com/support/tickets/new
        • My Add-ons: https://troikatronix.com/add-ons/?u=dusx
        • Profession Services: https://support.troikatronix.com/support/solutions/articles/13000109444-professional-services

        Running: Win 11 64bit, i7, M.2 PCIe SSD's, 32gb DDR4, nVidia GTX 4070 | located in Ontario Canada.

        Fred 1 Reply Last reply Reply Quote 0
        • Fred
          Fred @DusX last edited by

          @dusx said:

          // CREDIT: by zoidberg uniform sampler2D tex0; uniform vec2 resolution; const vec2 pointOffset = vec2(0.0, 1.0); void main() { vec4 outColor; // "upper" (a.k.a. "the top row") if (fract((gl_FragCoord.y+0.5)/2.0) == 0.0) { //gl_FragColor = vec4(1,0,0,1); outColor = (texture2D(tex0, (gl_FragCoord.xy)/resolution) + texture2D(tex0, (gl_FragCoord.xy - pointOffset)/resolution))/2.0; gl_FragColor = outColor; } // "lower" (a.k.a. "the bottom row") else { //gl_FragColor = vec4(0,1,0,1); outColor = (texture2D(tex0, (gl_FragCoord.xy)/resolution) + texture2D(tex0, (gl_FragCoord.xy + pointOffset)/resolution))/2.0; gl_FragColor = outColor; } }

           Hey thanks a lot! works ok for my puposes, I just needed a fast realt time solution, all the files will be re-encoded correctly some time.

          Cheers

          Fred

          http://www.fredrodrigues.net/
          https://github.com/fred-dev
          OSX 13.6.4 (22G513) MBP 2019 16" 2.3 GHz 8-Core i9, Radeon Pro 5500M 8 GB, 32g RAM
          Windows 10 7700K, GTX 1080ti, 32g RAM, 2tb raided SSD

          1 Reply Last reply Reply Quote 1
          • First post
            Last post