# Video super-resolution

Source: [https://docs.qualcomm.com/doc/80-70022-50/topic/video-super-resolution.html](https://docs.qualcomm.com/doc/80-70022-50/topic/video-super-resolution.html)

The **gst-ai-superresolution** application allows you to generate high resolution
        video frames from low-resolution input.

The following figures shows the pipeline, which receives a video stream from a file
            source as input, processes it through the super resolution module using LiteRT, and
            displays the output.

For information about the plugins used in the pipeline, see [Pipeline flow](https://docs.qualcomm.com/doc/80-70022-50/topic/video-super-resolution.html#video-super-resolution__section_kkk_xhz_lcc).

Figure : gst-ai-superresolution pipeline (Wayland display)
            
            <?xml version="1.0" encoding="UTF-8"?>
<svg xmlns="http://www.w3.org/2000/svg" width="1260.2996826171875" height="218.696014404296875" viewbox="0 0 1260.2996826171875 218.696014404296875">
  <g id="Layer_2" data-name="Layer 2">
    <g>
      <rect x=".49993896484375" y=".499847412109375" width="1259.29931640625" height="217.6962890625" rx="7.499999999999996" ry="7.499999999999996" style="fill: #fafafa;"></rect>
      <path d="M1252.2996826171875,1c3.85980224609375,0,7,3.140167236328125,7,7v202.696014404296875c0,3.85980224609375-3.14019775390625,7-7,7H8c-3.859832763671875,0-7-3.14019775390625-7-7V8c0-3.859832763671875,3.140167236328125-7,7-7h1244.2996826171875M1252.2996826171875,0H8C3.581848144530341,0,0,3.5816650390625,0,8v202.696014404296875c0,4.41815185546875,3.581848144530341,8,8,8h1244.2996826171875c4.41815185546875,0,8-3.58184814453125,8-8V8c0-4.4183349609375-3.58184814453125-8-8-8h0Z" style="fill: #d2d7e1;"></path>
    </g>
    <g>
      <g>
        <text transform="translate(1063.227783203125 198.879425048828125)" style="font-family: Roboto-Regular, Roboto; font-size: 14px;"><tspan x="0" y="0">Qualcomm </tspan></text>
        <rect x="1042.976766616076929" y="186.787933349609375" width="16" height="16" rx="2" ry="2" style="fill: #2a2aea;"></rect>
      </g>
      <g>
        <text transform="translate(1161.8095703125 198.879425048828125)" style="font-family: Roboto-Regular, Roboto; font-size: 14px;"><tspan x="0" y="0">Open source</tspan></text>
        <rect x="1141.55854802893009" y="186.787933349609375" width="16" height="16" rx="2" ry="2" style="fill: #007884;"></rect>
      </g>
    </g>
  </g>
  <g id="Layer_3" data-name="Layer 3">
    <g>
      <line x1="1190.299625505140284" y1="61.748875124867482" x2="1190.299625505140284" y2="82.588222043101268" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
      <g>
        <g>
          <rect x="1169.299625505140284" y="20.92410553497939" width="42" height="29.400000000005093" rx="4" ry="4" style="fill: none; stroke: #000; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2px;"></rect>
          <line x1="1181.899625505135191" y1="58.724105534978662" x2="1198.699625505132644" y2="58.724105534978662" style="fill: none; stroke: #000; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2px;"></line>
        </g>
        <line x1="1190.299625505140284" y1="50.324105534984483" x2="1190.299625505140284" y2="58.724105534978662" style="fill: none; stroke: #000; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2px;"></line>
      </g>
      <rect x="20.000057112048125" y="82.778254379065402" width="89" height="80" rx="4" ry="4" style="fill: #007884;"></rect>
      <g>
        <line x1="109.000061035155341" y1="122.778228759765625" x2="121.64324951171875" y2="122.778228759765625" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
        <polygon points="120.47607421875 126.767303466796875 127.384246826171875 122.778228759765625 120.47607421875 118.789215087890625 120.47607421875 126.767303466796875"></polygon>
      </g>
      <g>
        <line x1="1121.91546630859375" y1="122.778228759765625" x2="1134.55865478515625" y2="122.778228759765625" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
        <polygon points="1133.3914794921875 126.767303466796875 1140.29962158203125 122.778228759765625 1133.3914794921875 118.789215087890625 1133.3914794921875 126.767303466796875"></polygon>
      </g>
      <rect x="127.453533601903473" y="82.778254379065402" width="75" height="80" rx="4" ry="4" style="fill: #007884;"></rect>
      <g>
        <line x1="202.453536987304688" y1="122.778228759765625" x2="215.096725463867188" y2="122.778228759765625" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
        <polygon points="213.929534912109375 126.767303466796875 220.837707519530341 122.778228759765625 213.929534912109375 118.789215087890625 213.929534912109375 126.767303466796875"></polygon>
      </g>
      <rect x="220.907010091758821" y="82.778254379065402" width="85" height="80" rx="4" ry="4" style="fill: #007884;"></rect>
      <g>
        <line x1="305.907012939453125" y1="122.778228759765625" x2="318.550201416015625" y2="122.778228759765625" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
        <polygon points="317.383010864257812 126.767303466796875 324.291191101074219 122.778228759765625 317.383010864257812 118.789215087890625 317.383010864257812 126.767303466796875"></polygon>
      </g>
      <rect x="324.360486581615078" y="82.778254379065402" width="95" height="80" rx="3.999999999999998" ry="3.999999999999998" style="fill: #007884;"></rect>
      <g>
        <line x1="419.36048698425293" y1="122.778228759765625" x2="432.003681182861328" y2="122.778228759765625" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
        <polygon points="430.836488723754883 126.767303466796875 437.744663238525391 122.778228759765625 430.836488723754883 118.789215087890625 430.836488723754883 126.767303466796875"></polygon>
      </g>
      <g>
        <line x1="965.96649169921875" y1="133.777130126953125" x2="1015.60968017578125" y2="133.777130126953125" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
        <polygon points="1014.4425048828125 137.766143798828125 1021.35064697265625 133.777130126953125 1014.4425048828125 129.788055419921875 1014.4425048828125 137.766143798828125"></polygon>
      </g>
      <path d="M1029.915447644445521,82.778254379065402h84c4.415320195952063,0,8,3.584679804047994,8,8v64.9988520729421c0,3.818614043792564-3.100230115765271,6.918844159557921-6.918844159557921,6.918844159557921h-85.081155840442079c-4.415320195952063,0-8-3.584679804047994-8-8v-63.91769623250002c0-4.415320195952006,3.584679804047937-8,8-8Z" style="fill: #2a2aea;"></path>
      <rect x="1140.299625505140284" y="82.778254379065402" width="100" height="80" rx="4" ry="4" style="fill: #007884;"></rect>
      <text transform="translate(45.3216552734375 126.869781494140625)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 14px;"><tspan x="0" y="0">filesrc</tspan></text>
      <text transform="translate(137.56890869140625 126.869903564453125)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 14px;"><tspan x="0" y="0">qtdemux</tspan></text>
      <text transform="translate(230.338363647460938 126.869415283203125)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 14px;"><tspan x="0" y="0">h264parse</tspan></text>
      <text transform="translate(330.878856658935547 126.869781494140625)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 14px;"><tspan x="0" y="0">V4l2h264dec</tspan></text>
      <rect x="437.744664442308022" y="82.778254379065402" width="95" height="80" rx="4" ry="4" style="fill: #007884;"></rect>
      <g>
        <line x1="532.744659423828125" y1="122.778228759765625" x2="545.387863159179688" y2="122.778228759765625" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
        <polygon points="544.220672607421875 126.767303466796875 551.12884521484375 122.778228759765625 544.220672607421875 118.789215087890625 544.220672607421875 126.767303466796875"></polygon>
      </g>
      <text transform="translate(475.540870666503906 126.869781494140625)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 14px;"><tspan x="0" y="0">tee</tspan></text>
      <text transform="translate(1029.16387939453125 126.828399658203125)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 14px;"><tspan x="0" y="0">qtivcomposer</tspan></text>
      <text transform="translate(1150.9346923828125 126.869171142578125)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 14px;"><tspan x="0" y="0">Waylandsink</tspan></text>
      <text transform="translate(969.92889404296875 128.228424072265625)" style="font-family: Roboto-Regular, Roboto; font-size: 14px;"><tspan x="0" y="0">sink_1</tspan></text>
      <g>
        <line x1="532.744659423828125" y1="93.779388427734375" x2="1014.5804443359375" y2="93.779388427734375" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
        <polygon points="1013.4132080078125 97.768463134765625 1020.3214111328125 93.779388427734375 1013.4132080078125 89.790313720703125 1013.4132080078125 97.768463134765625"></polygon>
      </g>
      <text transform="translate(968.8997802734375 88.100067138671875)" style="font-family: Roboto-Regular, Roboto; font-size: 14px;"><tspan x="0" y="0">sink_0</tspan></text>
      <g>
        <rect x="551.128842303001875" y="102.695950611565422" width="120.000000000007276" height="60" rx="4" ry="4" style="fill: #2a2aea;"></rect>
        <g>
          <line x1="671.12884521484375" y1="132.695953369140625" x2="683.77203369140625" y2="132.695953369140625" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
          <polygon points="682.6048583984375 136.685028076171875 689.513031005859375 132.695953369140625 682.6048583984375 128.706878662109375 682.6048583984375 136.685028076171875"></polygon>
        </g>
        <rect x="689.58231879286177" y="102.695950611565422" width="90.000000000003638" height="60" rx="4" ry="4" style="fill: #2a2aea;"></rect>
        <g>
          <line x1="779.582305908203125" y1="132.695953369140625" x2="792.22552490234375" y2="132.695953369140625" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
          <polygon points="791.058319091796875 136.685028076171875 797.96649169921875 132.695953369140625 791.058319091796875 128.706878662109375 791.058319091796875 136.685028076171875"></polygon>
        </g>
        <rect x="797.966496653556533" y="102.695950611565422" width="168" height="60" rx="4" ry="4" style="fill: #2a2aea;"></rect>
        <text transform="translate(562.590286254882812 136.786895751953125)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 14px;"><tspan x="0" y="0">qtimlvconverter</tspan></text>
        <text transform="translate(704.67486572265625 136.787261962890625)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 14px;"><tspan x="0" y="0">qtimltflite</tspan></text>
        <text transform="translate(827.473846435546875 136.786895751953125)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 14px;"><tspan x="0" y="0">qtimlpostprocess</tspan></text>
      </g>
      <line x1="63.265946771663948" y1="61.748875124867482" x2="63.265946771663948" y2="82.588222043101268" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
      <g>
        <path d="M71.250057112048125,16.558842788903348h-20.25c-2.485281229017346,0-4.5,2.014718770980835-4.5,4.5v36c0,2.485283374786377,2.014718770982654,4.5,4.5,4.5h27c2.485283374786377,0,4.5-2.014716625213623,4.5-4.5v-29.25l-11.25-11.25Z" style="fill: none; stroke: #000; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2px;"></path>
        <path d="M69.000057112048125,16.558842788903348v9c0,2.485281229019165,2.014718770980835,4.5,4.5,4.5h9" style="fill: none; stroke: #000; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2px;"></path>
        <path d="M60.000057112048125,36.808842788903348l11.25,6.75-11.25,6.75v-13.5Z" style="fill: none; stroke: #000; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2px;"></path>
      </g>
    </g>
  </g>
</svg>

Figure : gst-ai-superresolution pipeline (file sink)
            
            <?xml version="1.0" encoding="UTF-8"?>
<svg xmlns="http://www.w3.org/2000/svg" width="1428.747283935548694" height="226.200714111328125" viewbox="0 0 1428.747283935548694 226.200714111328125">
  <g id="Layer_2" data-name="Layer 2">
    <g>
      <rect x=".499847412109375" y=".500030517578125" width="1427.74755859375" height="225.201171875" rx="7.499999999999944" ry="7.499999999999944" style="fill: #fafafa;"></rect>
      <path d="M1420.747283935546875,1c3.859802246091931,0,7.000000000001819,3.14019775390625,7.000000000001819,7.000030517578125v210.20068359375c0,3.85986328125-3.140197753909888,7-7.000000000001819,7H8c-3.859832763671875,0-7-3.14013671875-7-7V8.000030517578125c0-3.859832763671875,3.140167236328125-7.000030517578125,7-7.000030517578125h1412.747283935546875M1420.747283935546875,0H8C3.581817626953125,0,0,3.581634521484375,0,8.000030517578125v210.20068359375c0,4.41839599609375,3.581817626953125,8,8,8h1412.747283935546875c4.418334960942957,0,8.000000000001819-3.58160400390625,8.000000000001819-8V8.000030517578125c0-4.41839599609375-3.581665039058862-8.000030517578125-8.000000000001819-8.000030517578125h0Z" style="fill: #d2d7e1;"></path>
    </g>
    <g>
      <g>
        <text transform="translate(1231.67559814453125 206.43524169921875)" style="font-family: Roboto-Regular, Roboto; font-size: 14px;"><tspan x="0" y="0">Qualcomm </tspan></text>
        <rect x="1211.424601394239289" y="194.343761486405128" width="16" height="16" rx="2" ry="2" style="fill: #2a2aea;"></rect>
      </g>
      <g>
        <text transform="translate(1330.257408142089844 206.43524169921875)" style="font-family: Roboto-Regular, Roboto; font-size: 14px;"><tspan x="0" y="0">Open source</tspan></text>
        <rect x="1310.00638280709245" y="194.343761486405128" width="16" height="16" rx="2" ry="2" style="fill: #007884;"></rect>
      </g>
    </g>
  </g>
  <g id="Layer_3" data-name="Layer 3">
    <g>
      <rect x="20.000008163492566" y="88.600782088124106" width="90.779999999999745" height="81.600000000000364" rx="4" ry="4" style="fill: #007884;"></rect>
      <g>
        <line x1="110.779998779295966" y1="129.400787353515625" x2="123.7908935546875" y2="129.400787353515625" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
        <polygon points="122.623687744140625 133.389862060546875 129.5318603515625 129.400787353515625 122.623687744140625 125.411712646484375 122.623687744140625 133.389862060546875"></polygon>
      </g>
      <g>
        <line x1="1090.606719970703125" y1="129.400787353515625" x2="1103.617584228515625" y2="129.400787353515625" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
        <polygon points="1102.450408935546875 133.389862060546875 1109.358612060546875 129.400787353515625 1102.450408935546875 125.411712646484375 1102.450408935546875 133.389862060546875"></polygon>
      </g>
      <rect x="129.602554183145003" y="88.600782088124106" width="76.5" height="81.600000000000364" rx="4" ry="4" style="fill: #007884;"></rect>
      <g>
        <line x1="206.102554321289062" y1="129.400787353515625" x2="219.113433837890625" y2="129.400787353515625" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
        <polygon points="217.946243286132812 133.389862060546875 224.854415893554688 129.400787353515625 217.946243286132812 125.411712646484375 217.946243286132812 133.389862060546875"></polygon>
      </g>
      <rect x="224.925100202797694" y="88.600782088124106" width="86.699999999999818" height="81.600000000000364" rx="4" ry="4" style="fill: #007884;"></rect>
      <g>
        <line x1="311.625099182129816" y1="129.400787353515625" x2="324.635978698730469" y2="129.400787353515625" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
        <polygon points="323.468788146972656 133.389862060546875 330.376960754394531 129.400787353515625 323.468788146972656 125.411712646484375 323.468788146972656 133.389862060546875"></polygon>
      </g>
      <rect x="330.447646222450203" y="88.600782088124106" width="96.900000000000546" height="81.600000000000364" rx="4.000000000000001" ry="4.000000000000001" style="fill: #007884;"></rect>
      <g>
        <line x1="427.347646236419678" y1="129.400787353515625" x2="440.358523368835449" y2="129.400787353515625" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
        <polygon points="439.19133186340332 133.389862060546875 446.099508285522461 129.400787353515625 439.19133186340332 125.411712646484375 439.19133186340332 133.389862060546875"></polygon>
      </g>
      <g>
        <line x1="936.638763427734375" y1="140.619598388671875" x2="982.289642333984375" y2="140.619598388671875" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
        <polygon points="981.122467041015625 144.608673095703125 988.030670166015625 140.619598388671875 981.122467041015625 136.630523681640625 981.122467041015625 144.608673095703125"></polygon>
      </g>
      <path d="M996.60672239122141,88.600782088124106h86c4.415320195952063,0,8,3.584679804047994,8,8v66.597205997592027c0,3.818614043792593-3.100230115765271,6.918844159557921-6.918844159557921,6.918844159557921h-87.081155840442079c-4.415320195951949,0-8-3.584679804047994-8-8v-65.516050157149948c0-4.415320195952006,3.584679804048051-8,8-8Z" style="fill: #2a2aea;"></path>
      <rect x="1109.358583809127595" y="88.600782088124106" width="86.700000000000728" height="81.600000000000364" rx="4" ry="4" style="fill: #007884;"></rect>
      <text transform="translate(46.211631059646606 133.574052810668945)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 14px;"><tspan x="0" y="0">filesrc</tspan></text>
      <text transform="translate(140.467978715896606 133.574052810668945)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 14px;"><tspan x="0" y="0">qtdemux</tspan></text>
      <text transform="translate(235.206259965896606 133.574052810668945)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 14px;"><tspan x="0" y="0">h264parse</tspan></text>
      <text transform="translate(337.915732622146606 133.574052810668945)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 14px;"><tspan x="0" y="0">V4l2h264dec</tspan></text>
      <rect x="446.099507640357842" y="88.600782088124106" width="61.913015884681045" height="81.600000000000364" rx="4" ry="4" style="fill: #007884;"></rect>
      <g>
        <line x1="508.012519836425781" y1="129.400787353515625" x2="521.023399353027344" y2="129.400787353515625" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
        <polygon points="519.856208801269531 133.389862060546875 526.764381408691406 129.400787353515625 519.856208801269531 125.411712646484375 519.856208801269531 133.389862060546875"></polygon>
      </g>
      <text transform="translate(467.352256059646606 133.574052810668945)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 14px;"><tspan x="0" y="0">tee</tspan></text>
      <text transform="translate(996.855185747146606 133.532060623168945)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 14px;"><tspan x="0" y="0">qtivcomposer</tspan></text>
      <text transform="translate(1119.640341997146606 133.591630935668945)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 14px;"><tspan x="0" y="0">h264parse</tspan></text>
      <g>
        <line x1="1195.997344970703125" y1="129.400787353515625" x2="1209.008209228515625" y2="129.400787353515625" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
        <polygon points="1207.841033935546875 133.389862060546875 1214.749176025390625 129.400787353515625 1207.841033935546875 125.411712646484375 1207.841033935546875 133.389862060546875"></polygon>
      </g>
      <rect x="1214.749197260298388" y="88.600782088124106" width="86.700000000000728" height="81.600000000000364" rx="4" ry="4" style="fill: #007884;"></rect>
      <text transform="translate(1230.642295122146606 133.591630935668945)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 14px;"><tspan x="0" y="0">mp4mux</tspan></text>
      <g>
        <line x1="1301.449188232421875" y1="129.400787353515625" x2="1314.460052490234375" y2="129.400787353515625" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
        <polygon points="1313.292877197265625 133.389862060546875 1320.201080322265625 129.400787353515625 1313.292877197265625 125.411712646484375 1313.292877197265625 133.389862060546875"></polygon>
      </g>
      <rect x="1322.047306644944911" y="88.600782088124106" width="86.700000000000728" height="81.600000000000364" rx="4" ry="4" style="fill: #007884;"></rect>
      <text transform="translate(1343.142295122146606 133.591630935668945)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 14px;"><tspan x="0" y="0">filesink</tspan></text>
      <text transform="translate(941.503623247146606 130.879716873168945)" style="font-family: Roboto-Regular, Roboto; font-size: 14px;"><tspan x="0" y="0">sink_1</tspan></text>
      <g>
        <line x1="508.012519836425781" y1="99.821929931640625" x2="981.239837646484375" y2="99.821929931640625" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
        <polygon points="980.072601318359375 103.811004638671875 986.980804443359375 99.821929931640625 980.072601318359375 95.832916259765625 980.072601318359375 103.811004638671875"></polygon>
      </g>
      <text transform="translate(940.453818559646606 91.989091873168945)" style="font-family: Roboto-Regular, Roboto; font-size: 14px;"><tspan x="0" y="0">sink_0</tspan></text>
      <g>
        <rect x="526.7643849429478" y="108.916832245273326" width="122.400000000008731" height="61.200000000000728" rx="4" ry="4" style="fill: #2a2aea;"></rect>
        <g>
          <line x1="649.164382934570312" y1="139.516815185546875" x2="662.175262451171875" y2="139.516815185546875" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
          <polygon points="661.008071899414062 143.505889892578125 667.916244506835938 139.516815185546875 661.008071899414062 135.527740478515625 661.008071899414062 143.505889892578125"></polygon>
        </g>
        <rect x="667.986930962604674" y="108.916832245273326" width="91.80000000000291" height="61.200000000000728" rx="4" ry="4" style="fill: #2a2aea;"></rect>
        <g>
          <line x1="759.78692626953125" y1="139.516815185546875" x2="772.797821044921875" y2="139.516815185546875" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
          <polygon points="771.630615234375 143.505889892578125 778.538787841796875 139.516815185546875 771.630615234375 135.527740478515625 771.630615234375 143.505889892578125"></polygon>
        </g>
        <rect x="778.538792380513769" y="108.916832245273326" width="158.099999999998545" height="61.200000000000728" rx="4" ry="4" style="fill: #2a2aea;"></rect>
        <text transform="translate(539.425498247146606 143.689287185668945)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 14px;"><tspan x="0" y="0">qtimlvconverter</tspan></text>
        <text transform="translate(683.979209184646606 143.690263748168945)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 14px;"><tspan x="0" y="0">qtimltflite</tspan></text>
        <text transform="translate(803.095420122146606 143.689287185668945)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 14px;"><tspan x="0" y="0">qtimlpostprocess</tspan></text>
      </g>
      <line x1="64.131215616300324" y1="67.150815248842264" x2="64.131215616300324" y2="88.406949105441527" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
      <g>
        <path d="M72.275008163492203,21.056982266158229h-20.654999999999745c-2.534986853597729,0-4.590000000000146,2.055013146400597-4.590000000000146,4.590000000000146v36.720000000001164c0,2.534989042282177,2.055013146402416,4.590000000000146,4.590000000000146,4.590000000000146h27.539999999999964c2.534989042282177,0,4.590000000000146-2.055010957717968,4.590000000000146-4.590000000000146v-29.835000000000946l-11.475000000000364-11.475000000000364Z" style="fill: none; stroke: #000; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2px;"></path>
        <path d="M69.98000816349213,21.056982266158229v9.180000000000291c0,2.534986853599548,2.055013146400597,4.590000000000146,4.590000000000146,4.590000000000146h9.180000000000291" style="fill: none; stroke: #000; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2px;"></path>
        <path d="M60.800008163492748,41.711982266158884l11.474999999999454,6.885000000000218-11.474999999999454,6.885000000000218v-13.770000000000437Z" style="fill: none; stroke: #000; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2px;"></path>
      </g>
      <line x1="1364.138514097754523" y1="67.150815248842264" x2="1364.138514097754523" y2="88.406949105441527" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
      <g>
        <path d="M1372.282306644945493,21.056982266158229h-20.654999999998836c-2.534986853599548,0-4.590000000000146,2.055013146400597-4.590000000000146,4.590000000000146v36.720000000001164c0,2.534989042282177,2.055013146400597,4.590000000000146,4.590000000000146,4.590000000000146h27.540000000000873c2.534989042280358,0,4.589999999996508-2.055010957717968,4.589999999996508-4.590000000000146v-29.835000000000946l-11.474999999998545-11.475000000000364Z" style="fill: none; stroke: #000; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2px;"></path>
        <path d="M1369.987306644947239,21.056982266158229v9.180000000000291c0,2.534986853599548,2.055013146400597,4.590000000000146,4.590000000000146,4.590000000000146h9.179999999996653" style="fill: none; stroke: #000; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2px;"></path>
        <path d="M1360.807306644946948,41.711982266158884l11.474999999998545,6.885000000000218-11.474999999998545,6.885000000000218v-13.770000000000437Z" style="fill: none; stroke: #000; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2px;"></path>
      </g>
    </g>
  </g>
</svg>

## Sample model files

Table : Sample model for gst-ai-superresolution

| Runtime | Model files |
| :--- | :--- |
| LiteRT | <var class="keyword varname">quicksrnetsmall_quantized.tflite</var> |

## Run the application on the target device

Note: The commands in this section are targeted for the sample
                applications based on QLI GA 1.5 (PPA version 05900 in Ubuntu) or later releases.
                Run the `apt-cache policy gstreamer1.0-qcom-sample-apps` command to
                check your QIM version. If you are using sample applications from older versions,
                run the application with the `--help` option for more
                instructions.

The sample application uses the
                    /etc/configs/config-superresolution.json file to read the
                input parameters.

To create your own config JSON file, use [config-superresolution.json](https://git.codelinaro.org/clo/le/platform/vendor/qcom-opensource/gst-plugins-qti-oss/-/blob/imsdk.lnx.2.0.0.r2-rel/gst-sample-apps/gst-ai-superresolution/config-superresolution.json) as a
                reference.

1. Ensure that you complete the [Prerequisites](https://docs.qualcomm.com/doc/80-70022-50/topic/download-model-and-label-files.html).
2. Update the config JSON file based on the model, input stream, and other
                    properties. For more information, see [Config JSON field description](https://docs.qualcomm.com/doc/80-70022-50/topic/video-super-resolution.html#video-super-resolution__section_ett_nd4_nfc).
3. Use the following format of the config-superresolution.json
                        file:

        {
          "input-file-path": "<input-video-path>",
          "model": "<path-to-model-file>",
          "output-file-path": "<path-to-output-video>"
        }Copy to clipboard

For example, run the application using the custom video input file and model
                        paths:

        {
            "input-file-path": "/etc/media/video.mp4",
            "model": "/etc/models/quicksrnetsmall_quantized.tflite"
        }Copy to clipboard
4. Run the gst-ai-superresolution
                    application:

        gst-ai-superresolution --config-file=/etc/configs/config-superresolution.jsonCopy to clipboard
5. To display the available help options, run the following command in the SSH
                    shell:

        gst-ai-superresolution -hCopy to clipboard
6. To stop the use case, use CTRL +
                    C.

## Expected output

The output is displayed on an HDMI monitor.

Figure : Expected output for VSR
                
                ![](data:image/png;base64,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)

## Pipeline flow

The following table lists the plugins used in the video super resolution
                    pipeline:| Plugin | Description |
| --- | --- |
| filesrc | Captures the video stream and uses tee to split the stream for<br>                                inferencing. |
| [qtimlvconverter](https://docs.qualcomm.com/doc/80-70022-50/topic/qtimlvconverter.html) | Used by AI processing stream for preprocessing:<ol class="ol" id="video-super-resolution__ol_j34_ddg_q1c"><br>                                    <li class="li">Receives the video stream on its sink pad.</li><br><br>                                    <li class="li">Performs the following preprocessing on the stream data.<br>                                        This preprocessing is done when the model expects<br>                                        floating-point values as input.<ol class="ol" type="a" id="video-super-resolution__ol_m5z_cpr_lbc"><br>                                            <li class="li">Color conversion</li><br><br>                                            <li class="li">Scaling (up or down)</li><br><br>                                            <li class="li">Normalization</li><br><br>                                        </ol><br></li><br><br>                                    <li class="li">Converts the preprocessed video stream to a tensor stream on<br>                                        its source pad. </li><br><br>                                </ol><br><br>The tensor stream is used for inferencing in the later<br>                                    stages of the pipeline. |
| [qtimltflite](https://docs.qualcomm.com/doc/80-70022-50/topic/qtimltflite.html) | Runs on LiteRT and uses the<br>                                    quicksrnetsmall\_quantizedmodel.<ol class="ol" id="video-super-resolution__ol_lwl_521_mcc"><br>                                    <li class="li">The inference runtime receives the tensor stream on its sink<br>                                        pad.</li><br><br>                                    <li class="li">The runtime runs the inference.</li><br><br>                                    <li class="li">Produces a tensor stream with the inference results on its<br>                                        source pad.</li><br><br>                                </ol> |
| qtimlpostprocess | Handles inference results from any super resolution mode.<ol class="ol" id="video-super-resolution__ul_w2c_xf1_mcc"><br>                                    <li class="li">Loads SRNet module. </li><br><br>                                    <li class="li">Produces results as video frames. </li><br><br>                                    <li class="li">Sends them to the sink pad of qtivcomposer.</li><br><br>                                </ol> |
| [qtivcomposer](https://docs.qualcomm.com/doc/80-70022-50/topic/qtivcomposer.html) | <ol class="ol" id="video-super-resolution__ol_dmb_2vr_lbc"><br>                                    <li class="li">Composes frames with contents from its sink pads.</li><br><br>                                    <li class="li">Pushes the GStreamer buffers containing these composed<br>                                        frames to its source pad.</li><br><br>                                </ol> |
| [Waylandsink](https://docs.qualcomm.com/doc/80-70022-50/topic/waylandsink.html) | <ol class="ol" id="video-super-resolution__ol_kjr_fvr_lbc"><br>                                    <li class="li">Waylandsink submits the video stream received on its sink<br>                                        pad to Weston.</li><br><br>                                    <li class="li">Weston renders the video stream on a local display.</li><br><br>                                </ol> |

## Config JSON field description

The different parameters available to configure the JSON file and run the use case
                are as follows:

Table : Field description–config-superresolution.json file

| Field | Values/description |
| :--- | :--- |
| **Input source** | `input-file-path`: The directory path of the input<br>                                video. |
| **Models** | `model`: The path to the super resolution<br>                                model. |
| **Output source** | `output-file-path`: The directory path of the<br>                                    output video. If the output-file-path isn't provided, the<br>                                    display output is enabled. |

## Related information

[Video super resolution and display with LiteRT](https://docs.qualcomm.com/doc/80-70022-50/topic/video-super-resolution-and-display-with-litert.html)

**Parent Topic:** [Run AI/ML sample applications](https://docs.qualcomm.com/doc/80-70022-50/topic/ai-ml-sample-applications.html)

Last Published: Feb 20, 2026

[Previous Topic
Monodepth from video](https://docs.qualcomm.com/bundle/publicresource/80-70022-50/topics/mono-depth-from-video.md) [Next Topic
Multistream inference](https://docs.qualcomm.com/bundle/publicresource/80-70022-50/topics/multistream-inference.md)