# Parallel inferencing

Source: [https://docs.qualcomm.com/doc/80-70022-50/topic/gst-ai-parallel-inference.html](https://docs.qualcomm.com/doc/80-70022-50/topic/gst-ai-parallel-inference.html)

The **gst-ai-parallel-inference** application allows you to perform object
        detection, object classification, pose detection, and image segmentation on an input stream
        from different sources such as a camera, a file, or an RTSP network. The use cases implement
        the LiteRT models for object detection, image segmentation, classification, and pose
        detection.

The following figure shows the pipeline, which receives input streams
            from a camera, file, or an RTSP stream, performs the parallel inferencing for the four
            use cases, and displays the results side by side on the screen.

For information about the plugins used in the pipeline flow, see [Pipeline flow](https://docs.qualcomm.com/doc/80-70022-50/topic/gst-ai-parallel-inference.html#gst-ai-parallel-inference__section_gcg_r3s_lbc).

Figure : gst-ai-parallel-inference pipeline
            
            <?xml version="1.0" encoding="UTF-8"?>
<svg xmlns="http://www.w3.org/2000/svg" width="1302.5560302734375" height="407.485677719116211" viewbox="0 0 1302.5560302734375 407.485677719116211">
  <g id="Layer_2" data-name="Layer 2">
    <g>
      <rect x=".49981689453125" y=".500020980834961" width="1301.55615234375" height="406.48583984375" rx="7.499999999999998" ry="7.499999999999998" style="fill: #fafafa;"></rect>
      <path d="M1294.5560302734375,1c3.85980224609375,0,7,3.140167236328125,7,7v391.485677719116211c0,3.859832763671875-3.14019775390625,7-7,7H8c-3.859832763671875,0-7-3.140167236328125-7-7V8c0-3.859832763671875,3.140167236328125-7,7-7h1286.5560302734375M1294.5560302734375,0H8C3.5816650390625,0,0,3.58183479309082,0,8v391.485677719116211c0,4.4183349609375,3.5816650390625,8,8,8h1286.5560302734375c4.41827392578125,0,8-3.5816650390625,8-8V8c0-4.41816520690918-3.58172607421875-8-8-8h0Z" style="fill: #d2d7e1;"></path>
    </g>
    <g>
      <g>
        <text transform="translate(1105.48394775390625 383.577169418334961)" style="font-family: Roboto-Regular, Roboto; font-size: 14px;"><tspan x="0" y="0">Qualcomm </tspan></text>
        <rect x="1085.232955067245712" y="371.485677719116211" width="16" height="16" rx="2" ry="2" style="fill: #2a2aea;"></rect>
      </g>
      <g>
        <text transform="translate(1204.06573486328125 383.577169418334961)" style="font-family: Roboto-Regular, Roboto; font-size: 14px;"><tspan x="0" y="0">Open source</tspan></text>
        <rect x="1183.814736480098873" y="371.485677719116211" width="16" height="16" rx="2" ry="2" style="fill: #007884;"></rect>
      </g>
    </g>
  </g>
  <g id="Layer_3" data-name="Layer 3">
    <rect x="515.288651923177895" y="20.000034158514609" width="60.000000000001819" height="331.485615546111148" rx="4" ry="4" style="fill: #007884;"></rect>
    <rect x="1060.102557882606561" y="20.000034158514609" width="104.000000000003638" height="331.485615546111148" rx="8" ry="8" style="fill: #2a2aea;"></rect>
    <g>
      <line x1="1164.1025390625" y1="185.742849349975586" x2="1176.7457275390625" y2="185.742849349975586" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
      <polygon points="1175.57855224609375 189.731908798217773 1182.48675537109375 185.742849349975586 1175.57855224609375 181.753774642944336 1175.57855224609375 189.731908798217773"></polygon>
    </g>
    <line x1="1232.556034372464637" y1="158.165272719739733" x2="1232.556034372464637" y2="142.66898996263626" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
    <rect x="1182.556034372462818" y="158.355770917030895" width="100.000000000003638" height="54.774142029076756" rx="4" ry="4" style="fill: #007884;"></rect>
    <text transform="translate(535.58502197265625 195.946920394897461)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 14px;"><tspan x="0" y="0">tee</tspan></text>
    <text transform="translate(1069.3504638671875 189.834127426147461)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 14px;"><tspan x="0" y="0">qtivcomposer</tspan></text>
    <text transform="translate(1193.33843994140625 189.833944320678711)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 14px;"><tspan x="0" y="0">Waylandsink</tspan></text>
    <g>
      <g>
        <rect x="1211.556034372464637" y="102.009953094076081" width="42" height="29.400000000002365" rx="4" ry="4" style="fill: none; stroke: #000; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2px;"></rect>
        <line x1="1224.156034372459544" y1="139.809953094074444" x2="1240.956034372456998" y2="139.809953094074444" style="fill: none; stroke: #000; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2px;"></line>
      </g>
      <line x1="1232.556034372464637" y1="131.409953094078446" x2="1232.556034372464637" y2="139.809953094074444" style="fill: none; stroke: #000; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2px;"></line>
    </g>
    <g>
      <g>
        <line x1="575.288650512695312" y1="71.921689987182617" x2="587.931838989257812" y2="71.921689987182617" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
        <polygon points="586.7646484375 75.910749435424805 593.672836303710938 71.921689987182617 586.7646484375 67.932622909545898 586.7646484375 75.910749435424805"></polygon>
      </g>
      <g>
        <line x1="575.288650512695312" y1="38.086484909057617" x2="1054.29229736328125" y2="38.086484909057617" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
        <polygon points="1053.12506103515625 42.07554817199707 1060.03326416015625 38.086484909057617 1053.12506103515625 34.097421646118164 1053.12506103515625 42.07554817199707"></polygon>
      </g>
      <rect x="593.742128413034152" y="46.921688518450537" width="120.000000000007276" height="50" rx="4" ry="4" style="fill: #2a2aea;"></rect>
      <g>
        <line x1="713.74212646484375" y1="71.921689987182617" x2="726.38531494140625" y2="71.921689987182617" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
        <polygon points="725.2181396484375 75.910749435424805 732.126312255859375 71.921689987182617 725.2181396484375 67.932622909545898 725.2181396484375 75.910749435424805"></polygon>
      </g>
      <rect x="732.195604902894047" y="46.921688518450537" width="110.000000000003638" height="50" rx="4" ry="4" style="fill: #2a2aea;"></rect>
      <g>
        <line x1="842.19561767578125" y1="71.921689987182617" x2="854.83880615234375" y2="71.921689987182617" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
        <polygon points="853.671600341796875 75.910749435424805 860.57977294921875 71.921689987182617 853.671600341796875 67.932622909545898 853.671600341796875 75.910749435424805"></polygon>
      </g>
      <rect x="860.649081392750304" y="46.921688518450537" width="145.000000000003638" height="50" rx="4" ry="4" style="fill: #2a2aea;"></rect>
      <g>
        <line x1="1005.64910888671875" y1="71.921689987182617" x2="1054.29229736328125" y2="71.921689987182617" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
        <polygon points="1053.12506103515625 75.910749435424805 1060.03326416015625 71.921689987182617 1053.12506103515625 67.932622909545898 1053.12506103515625 75.910749435424805"></polygon>
      </g>
      <text transform="translate(605.20355224609375 76.012746810913086)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 14px;"><tspan x="0" y="0">qtimlvconverter</tspan></text>
      <text transform="translate(757.2880859375 76.013174057006836)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 14px;"><tspan x="0" y="0">qtimltflite</tspan></text>
      <text transform="translate(878.65655517578125 76.012746810913086)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 14px;"><tspan x="0" y="0">qtimlpostprocess</tspan></text>
      <text transform="translate(1010.4124755859375 67.344808578491211)" style="font-family: Roboto-Regular, Roboto; font-size: 14px;"><tspan x="0" y="0">sink_1</tspan></text>
      <text transform="translate(1010.41265869140625 31.395040512084961)" style="font-family: Roboto-Regular, Roboto; font-size: 14px;"><tspan x="0" y="0">sink_0</tspan></text>
    </g>
    <g>
      <g>
        <line x1="575.288650512695312" y1="156.776342391967773" x2="587.931838989257812" y2="156.776342391967773" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
        <polygon points="586.7646484375 160.765417098999023 593.672836303710938 156.776342391967773 586.7646484375 152.787282943725586 586.7646484375 160.765417098999023"></polygon>
      </g>
      <g>
        <line x1="575.288650512695312" y1="122.941137313842773" x2="1054.29229736328125" y2="122.941137313842773" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
        <polygon points="1053.12506103515625 126.930212020874023 1060.03326416015625 122.941137313842773 1053.12506103515625 118.952077865600586 1053.12506103515625 126.930212020874023"></polygon>
      </g>
      <rect x="593.742128413034152" y="131.776346299640863" width="120.000000000007276" height="50" rx="4" ry="4" style="fill: #2a2aea;"></rect>
      <g>
        <line x1="713.74212646484375" y1="156.776342391967773" x2="726.38531494140625" y2="156.776342391967773" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
        <polygon points="725.2181396484375 160.765417098999023 732.126312255859375 156.776342391967773 725.2181396484375 152.787282943725586 725.2181396484375 160.765417098999023"></polygon>
      </g>
      <rect x="732.195604902894047" y="131.776346299640863" width="110.000000000003638" height="50" rx="4" ry="4" style="fill: #2a2aea;"></rect>
      <g>
        <line x1="842.19561767578125" y1="156.776342391967773" x2="854.83880615234375" y2="156.776342391967773" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
        <polygon points="853.671600341796875 160.765417098999023 860.57977294921875 156.776342391967773 853.671600341796875 152.787282943725586 853.671600341796875 160.765417098999023"></polygon>
      </g>
      <rect x="860.649081392750304" y="131.776346299640863" width="145.000000000003638" height="50" rx="4" ry="4" style="fill: #2a2aea;"></rect>
      <g>
        <line x1="1005.64910888671875" y1="156.776342391967773" x2="1054.29229736328125" y2="156.776342391967773" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
        <polygon points="1053.12506103515625 160.765417098999023 1060.03326416015625 156.776342391967773 1053.12506103515625 152.787282943725586 1053.12506103515625 160.765417098999023"></polygon>
      </g>
      <text transform="translate(605.20355224609375 160.867422103881836)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 14px;"><tspan x="0" y="0">qtimlvconverter</tspan></text>
      <text transform="translate(757.2880859375 160.867849349975586)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 14px;"><tspan x="0" y="0">qtimltflite</tspan></text>
      <text transform="translate(878.65655517578125 160.867422103881836)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 14px;"><tspan x="0" y="0">qtimlpostprocess</tspan></text>
      <text transform="translate(1010.4124755859375 152.199483871459961)" style="font-family: Roboto-Regular, Roboto; font-size: 14px;"><tspan x="0" y="0">sink_3</tspan></text>
      <text transform="translate(1010.41265869140625 116.249715805053711)" style="font-family: Roboto-Regular, Roboto; font-size: 14px;"><tspan x="0" y="0">sink_2</tspan></text>
    </g>
    <g>
      <g>
        <line x1="575.288650512695312" y1="241.630727767944336" x2="587.931838989257812" y2="241.630727767944336" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
        <polygon points="586.7646484375 245.619771957397461 593.672836303710938 241.630727767944336 586.7646484375 237.641653060913086 586.7646484375 245.619771957397461"></polygon>
      </g>
      <g>
        <line x1="575.288650512695312" y1="207.795522689819336" x2="1054.29229736328125" y2="207.795522689819336" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
        <polygon points="1053.12506103515625 211.784582138061523 1060.03326416015625 207.795522689819336 1053.12506103515625 203.806447982788086 1053.12506103515625 211.784582138061523"></polygon>
      </g>
      <rect x="593.742128413034152" y="216.630721114013795" width="120.000000000007276" height="50" rx="4" ry="4" style="fill: #2a2aea;"></rect>
      <g>
        <line x1="713.74212646484375" y1="241.630727767944336" x2="726.38531494140625" y2="241.630727767944336" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
        <polygon points="725.2181396484375 245.619771957397461 732.126312255859375 241.630727767944336 725.2181396484375 237.641653060913086 725.2181396484375 245.619771957397461"></polygon>
      </g>
      <rect x="732.195604902894047" y="216.630721114013795" width="110.000000000003638" height="50" rx="4" ry="4" style="fill: #2a2aea;"></rect>
      <g>
        <line x1="842.19561767578125" y1="241.630727767944336" x2="854.83880615234375" y2="241.630727767944336" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
        <polygon points="853.671600341796875 245.619771957397461 860.57977294921875 241.630727767944336 853.671600341796875 237.641653060913086 853.671600341796875 245.619771957397461"></polygon>
      </g>
      <rect x="860.649081392750304" y="216.630721114013795" width="145.000000000003638" height="50" rx="4" ry="4" style="fill: #2a2aea;"></rect>
      <g>
        <line x1="1005.64910888671875" y1="241.630727767944336" x2="1054.29229736328125" y2="241.630727767944336" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
        <polygon points="1053.12506103515625 245.619771957397461 1060.03326416015625 241.630727767944336 1053.12506103515625 237.641653060913086 1053.12506103515625 245.619771957397461"></polygon>
      </g>
      <text transform="translate(605.20355224609375 245.721822738647461)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 14px;"><tspan x="0" y="0">qtimlvconverter</tspan></text>
      <text transform="translate(757.2880859375 245.722249984741211)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 14px;"><tspan x="0" y="0">qtimltflite</tspan></text>
      <text transform="translate(878.65655517578125 245.721822738647461)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 14px;"><tspan x="0" y="0">qtimlpostprocess</tspan></text>
      <text transform="translate(1010.4124755859375 237.053915023803711)" style="font-family: Roboto-Regular, Roboto; font-size: 14px;"><tspan x="0" y="0">sink_5</tspan></text>
      <text transform="translate(1010.41265869140625 201.104146957397461)" style="font-family: Roboto-Regular, Roboto; font-size: 14px;"><tspan x="0" y="0">sink_4</tspan></text>
    </g>
    <g>
      <g>
        <line x1="575.288650512695312" y1="326.485647201538086" x2="587.931838989257812" y2="326.485647201538086" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
        <polygon points="586.7646484375 330.474721908569336 593.672836303710938 326.485647201538086 586.7646484375 322.496572494506836 586.7646484375 330.474721908569336"></polygon>
      </g>
      <g>
        <line x1="575.288650512695312" y1="292.650442123413086" x2="1054.29229736328125" y2="292.650442123413086" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
        <polygon points="1053.12506103515625 296.639516830444336 1060.03326416015625 292.650442123413086 1053.12506103515625 288.661367416381836 1053.12506103515625 296.639516830444336"></polygon>
      </g>
      <rect x="593.742128413034152" y="301.485649704625757" width="120.000000000007276" height="50" rx="4" ry="4" style="fill: #2a2aea;"></rect>
      <g>
        <line x1="713.74212646484375" y1="326.485647201538086" x2="726.38531494140625" y2="326.485647201538086" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
        <polygon points="725.2181396484375 330.474721908569336 732.126312255859375 326.485647201538086 725.2181396484375 322.496572494506836 725.2181396484375 330.474721908569336"></polygon>
      </g>
      <rect x="732.195604902894047" y="301.485649704625757" width="110.000000000003638" height="50" rx="4" ry="4" style="fill: #2a2aea;"></rect>
      <g>
        <line x1="842.19561767578125" y1="326.485647201538086" x2="854.83880615234375" y2="326.485647201538086" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
        <polygon points="853.671600341796875 330.474721908569336 860.57977294921875 326.485647201538086 853.671600341796875 322.496572494506836 853.671600341796875 330.474721908569336"></polygon>
      </g>
      <rect x="860.649081392750304" y="301.485649704625757" width="145.000000000003638" height="50" rx="4" ry="4" style="fill: #2a2aea;"></rect>
      <g>
        <line x1="1005.64910888671875" y1="326.485647201538086" x2="1054.29229736328125" y2="326.485647201538086" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
        <polygon points="1053.12506103515625 330.474721908569336 1060.03326416015625 326.485647201538086 1053.12506103515625 322.496572494506836 1053.12506103515625 330.474721908569336"></polygon>
      </g>
      <text transform="translate(605.20355224609375 330.576742172241211)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 14px;"><tspan x="0" y="0">qtimlvconverter</tspan></text>
      <text transform="translate(757.2880859375 330.577169418334961)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 14px;"><tspan x="0" y="0">qtimltflite</tspan></text>
      <text transform="translate(878.65655517578125 330.576742172241211)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 14px;"><tspan x="0" y="0">qtimlpostprocess</tspan></text>
      <text transform="translate(1010.4124755859375 321.908834457397461)" style="font-family: Roboto-Regular, Roboto; font-size: 14px;"><tspan x="0" y="0">sink_7</tspan></text>
      <text transform="translate(1010.41265869140625 285.959066390991211)" style="font-family: Roboto-Regular, Roboto; font-size: 14px;"><tspan x="0" y="0">sink_6</tspan></text>
    </g>
    <g>
      <rect x="70.474745963756504" y="279.630897401841139" width="86" height="60" rx="4" ry="4" style="fill: #007884;"></rect>
      <g>
        <line x1="156.4747314453125" y1="309.630910873413086" x2="169.117950439453125" y2="309.630910873413086" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
        <polygon points="167.95074462890625 313.619955062866211 174.858917236328125 309.630910873413086 167.95074462890625 305.641836166381836 167.95074462890625 313.619955062866211"></polygon>
      </g>
      <line x1="57.805783264653655" y1="309.630897401841139" x2="70.474745963756504" y2="309.630897401841139" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
      <rect x="174.928222453611852" y="279.630897401841139" width="95" height="60" rx="4" ry="4" style="fill: #007884;"></rect>
      <g>
        <line x1="269.92822265625" y1="309.630910873413086" x2="282.5714111328125" y2="309.630910873413086" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
        <polygon points="281.404220581054688 313.619955062866211 288.312393188476562 309.630910873413086 281.404220581054688 305.641836166381836 281.404220581054688 313.619955062866211"></polygon>
      </g>
      <rect x="288.3816989434672" y="279.630897401841139" width="95" height="60" rx="4" ry="4" style="fill: #007884;"></rect>
      <g>
        <line x1="383.381698608398438" y1="309.630910873413086" x2="396.024892807006836" y2="309.630910873413086" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
        <polygon points="394.857700347900391 313.619955062866211 401.765876770019531 309.630910873413086 394.857700347900391 305.641836166381836 394.857700347900391 313.619955062866211"></polygon>
      </g>
      <rect x="401.835175433323457" y="279.630897401841139" width="95" height="60" rx="4" ry="4" style="fill: #007884;"></rect>
      <g>
        <line x1="496.835174560546875" y1="309.630910873413086" x2="509.478370666503906" y2="309.630910873413086" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
        <polygon points="508.311180114746094 313.619955062866211 515.219352722167969 309.630910873413086 508.311180114746094 305.641836166381836 508.311180114746094 313.619955062866211"></polygon>
      </g>
      <text transform="translate(89.907867431640625 313.153036117553711)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 14px;"><tspan x="0" y="0">rtspsrc </tspan></text>
      <text transform="translate(196.465118408203125 306.322591781616211)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 14px;"><tspan x="0" y="0">rtph264 </tspan><tspan x="5.52685546875" y="16.7998046875">depay </tspan></text>
      <text transform="translate(302.813011169433594 313.722494125366211)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 14px;"><tspan x="0" y="0">h264parse</tspan></text>
      <text transform="translate(408.353549957275391 313.722311019897461)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 14px;"><tspan x="0" y="0">V4l2h264dec</tspan></text>
      <g>
        <path d="M35.30941972909568,305.980897401837865c.001393890381223-.745582866666155.606937980652219-1.348867893218994,1.352521705628533-1.347474002834133.248203468321663.000463485717773.491475105285645.069345188137959.703078651427859.199073982235859l6.595199203491575,4.048200130462646c.635238075255984.390344238281614.833762741087412,1.221743202209836.443418502807617,1.85698127746582-.110953330993652.180562019348145-.262856483459473.332465171813965-.443418502807617.443418502807617l-6.595199203491575,4.05000000000291c-.63563804626574.389691925047373-1.466832733154661.190314102170305-1.856524658203853-.445323944091797-.130368232727051-.212645530700684-.199274826049077-.457250976563955-.199075698852539-.706676673891707v-8.098199272157217Z" style="fill: none; stroke: #000; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2px;"></path>
        <path d="M29.909419729096044,329.830897401841867h18" style="fill: none; stroke: #000; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2px;"></path>
        <rect x="20.909419729096044" y="297.430897401840411" width="36" height="25.199999999998909" rx="2" ry="2" style="fill: none; stroke: #000; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2px;"></rect>
      </g>
    </g>
    <g>
      <g>
        <path d="M45.659419729096044,51.581189998958507h-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="M43.409419729096044,51.581189998958507v9c0,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="M34.409419729096044,71.831189998958507l11.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>
      <rect x="70.474745963756504" y="44.0811899989585" width="86" height="60.000000000000007" rx="4" ry="4" style="fill: #007884;"></rect>
      <g>
        <line x1="156.4747314453125" y1="74.08119010925293" x2="169.117950439453125" y2="74.08119010925293" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
        <polygon points="167.95074462890625 78.070257186889648 174.858917236328125 74.08119010925293 167.95074462890625 70.092123031616211 167.95074462890625 78.070257186889648"></polygon>
      </g>
      <line x1="57.805783264653655" y1="74.081189998958507" x2="70.474745963756504" y2="74.081189998958507" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
      <rect x="174.928222453611852" y="44.0811899989585" width="95" height="60.000000000000007" rx="4" ry="4" style="fill: #007884;"></rect>
      <g>
        <line x1="269.92822265625" y1="74.08119010925293" x2="282.5714111328125" y2="74.08119010925293" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
        <polygon points="281.404220581054688 78.070257186889648 288.312393188476562 74.08119010925293 281.404220581054688 70.092123031616211 281.404220581054688 78.070257186889648"></polygon>
      </g>
      <rect x="288.3816989434672" y="44.0811899989585" width="95" height="60.000000000000007" rx="4" ry="4" style="fill: #007884;"></rect>
      <g>
        <line x1="383.381698608398438" y1="74.08119010925293" x2="396.024892807006836" y2="74.08119010925293" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
        <polygon points="394.857700347900391 78.070257186889648 401.765876770019531 74.08119010925293 394.857700347900391 70.092123031616211 394.857700347900391 78.070257186889648"></polygon>
      </g>
      <rect x="401.835175433323457" y="44.0811899989585" width="95" height="60.000000000000007" rx="4" ry="4" style="fill: #007884;"></rect>
      <g>
        <line x1="496.835174560546875" y1="74.08119010925293" x2="509.478370666503906" y2="74.08119010925293" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
        <polygon points="508.311180114746094 78.070257186889648 515.219352722167969 74.08119010925293 508.311180114746094 70.092123031616211 508.311180114746094 78.070257186889648"></polygon>
      </g>
      <text transform="translate(94.296539306640625 77.603353500366211)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 14px;"><tspan x="0" y="0">filesrc</tspan></text>
      <text transform="translate(195.043243408203125 78.172933578491211)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 14px;"><tspan x="0" y="0">qtdemux</tspan></text>
      <text transform="translate(302.813011169433594 78.172811508178711)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 14px;"><tspan x="0" y="0">h264parse</tspan></text>
      <text transform="translate(408.353549957275391 78.172628402709961)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 14px;"><tspan x="0" y="0">V4l2h264dec</tspan></text>
    </g>
    <text transform="translate(20.9091796875 31.394552230834961)" style="font-family: Roboto-Bold, Roboto; font-size: 14px; font-weight: 700;"><tspan x="0" y="0">File (default)</tspan></text>
    <g>
      <g>
        <g>
          <path d="M43.409419729096044,174.633704007910637h-9l-4.5,5.400000000001455h-5.400000000001455c-1.988224983215332,0-3.599999999998545,1.611775016783213-3.599999999998545,3.599999999998545v16.200000000000728c0,1.988226699828374,1.611775016783213,3.600000000002183,3.599999999998545,3.600000000002183h28.80000000000291c1.988226699828374,0,3.599999999998545-1.611773300173809,3.599999999998545-3.600000000002183v-16.200000000000728c0-1.988224983215332-1.611773300170171-3.599999999998545-3.599999999998545-3.599999999998545h-5.400000000001455l-4.5-5.400000000001455Z" style="fill: none; stroke: #000; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2px;"></path>
          <circle cx="38.909419729096044" cy="189.033704007912092" r="5.400000000001455" style="fill: none; stroke: #000; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2px;"></circle>
        </g>
        <rect x="70.474745963756504" y="161.033704007912092" width="86" height="60" rx="4" ry="4" style="fill: #2a2aea;"></rect>
        <g>
          <line x1="156.4747314453125" y1="191.033697128295898" x2="509.478042602539062" y2="191.033697128295898" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
          <polygon points="508.31085205078125 195.022771835327148 515.219032287597656 191.033697128295898 508.31085205078125 187.044637680053711 508.31085205078125 195.022771835327148"></polygon>
        </g>
        <line x1="57.805783264653655" y1="191.033704007912092" x2="70.474745963756504" y2="191.033704007912092" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
        <text transform="translate(77.189605712890625 194.555746078491211)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 14px;"><tspan x="0" y="0">qtiqmmfsrc</tspan></text>
      </g>
      <text transform="translate(17.71697998046875 147.985647201538086)" style="font-family: Roboto-Bold, Roboto; font-size: 14px; font-weight: 700;"><tspan x="0" y="0">Camera (optional)</tspan></text>
    </g>
    <text transform="translate(17.71710205078125 266.630331039428711)" style="font-family: Roboto-Bold, Roboto; font-size: 14px; font-weight: 700;"><tspan x="0" y="0">RTSP (optional)</tspan></text>
    <g>
      <line x1="17.716979980467841" y1="119.988866806030273" x2="21.716979980467841" y2="119.988866806030273" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
      <line x1="25.763031005859375" y1="119.988866806030273" x2="509.265625" y2="119.988866806030273" style="fill: none; stroke: #000; stroke-dasharray: 8.092093467712402 4.046046733856201; stroke-miterlimit: 10;"></line>
      <line x1="511.288650512695312" y1="119.988866806030273" x2="515.288650512695312" y2="119.988866806030273" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
    </g>
    <g>
      <line x1="17.716979980467841" y1="237.053914856274787" x2="21.716979980467841" y2="237.053914856274787" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
      <line x1="25.763031005859375" y1="237.053914856274787" x2="509.265625" y2="237.053914856274787" style="fill: none; stroke: #000; stroke-dasharray: 8.092093467712402 4.046046733856201; stroke-miterlimit: 10;"></line>
      <line x1="511.288650512695312" y1="237.053914856274787" x2="515.288650512695312" y2="237.053914856274787" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
    </g>
  </g>
</svg>

## Sample model and label files

Table : Sample model and label files for gst-ai-parallel-inference

| Application | Model files | Label files |
| --- | --- | --- |
| Object detection | <var class="keyword varname"> yolox_quantized.tflite</var> | <var class="keyword varname">yolox.json</var> |
| Pose estimation | <var class="keyword varname">hrnet_pose_quantized.tflite </var> | <ul class="ul" id="gst-ai-parallel-inference__ul_uvz_sy5_qgc"><br>                                    <li class="li"><var class="keyword varname">hrnet_pose.json</var></li><br><br>                                    <li class="li"><var class="keyword varname">hrnet_settings.json</var></li><br><br>                                </ul> |
| Segmentation | <var class="keyword varname">deeplabv3_plus_mobilenet_quantized.tflite<br>                                </var> | <var class="keyword varname">deeplabv3_resnet50.json </var> |
| Classification | <var class="keyword varname">inception_v3_quantized.tflite</var> | <var class="keyword varname">classification.json </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-parallel-inference.json file to read
                the input parameters.

To create your own config JSON file, use [config-parallel-inference.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-parallel-inference/config-parallel-inference.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/gst-ai-parallel-inference.html#gst-ai-parallel-inference__section_hwy_xqm_nfc).
    For QCS6490, if
                            `file-path` and `rtsp-ip-port` are
                            *not* present in the configuration file, then the camera input is
                        selected.
3. Use the following format of the
                        config-parallel-inference.json
                        file:

        {
          "camera": "<camera-id>",
          "file-path": "<input-video-path>",
          "rtsp-ip-port": "<RTSP-IP-Port-address>",
          "detection-model": "<path-to-detection model>",
          "detection-labels": "<path-to-detection-labels>",
          "pose-model": "<path-to-pose-model>",
          "pose-labels": "<path-to-pose-label>",
          "pose-settings-path": "<path-to-pose-settings-file>",
          "segmentation-model": "<path-to-segmentation-model>",
          "segmentation-labels": "<path-to-segmentation-labels>",
          "classification-model": "<path-to-classification-model>",
          "classification-labels": "<path-to-classification-labels>"
        }Copy to clipboard

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

        {
            "file-path": "/etc/media/video.mp4",
            "detection-model": "/etc/models/yolox_quantized.tflite",
            "detection-labels": "/etc/labels/yolox.json",
            "pose-model": "/etc/models/hrnet_pose_quantized.tflite",
            "pose-labels": "/etc/labels/hrnet_pose.json",
            "pose-settings-path": "/etc/labels/hrnet_settings.json",
            "segmentation-model": "/etc/models/deeplabv3_plus_mobilenet_quantized.tflite",
            "segmentation-labels": "/etc/labels/deeplabv3_resnet50.json",
            "classification-model": "/etc/models/inception_v3_quantized.tflite",
            "classification-labels": "/etc/labels/classification.json"
        }Copy to clipboard
4. Run the gst-ai-parallel-inference
                        application:

        gst-ai-parallel-inference --config-file=/etc/configs/config-parallel-inference.jsonCopy to clipboard

Note: If a drop in performance is observed, you can use
                        YOLOv8 LiteRT model. For YOLOv8 export instructions, see Step 6 in [Prerequisites](https://docs.qualcomm.com/doc/80-70022-50/topic/download-model-and-label-files.html).
5. To display the available help options, run the following command in the SSH
                    shell:

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

## Expected output

After performing the four parallel inferences, the results are displayed side by side
                on the screen.

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

## Pipeline flow

The following table lists the plugins used in the parallel inference
                    pipeline:| Plugin | Description |
| --- | --- |
| Camera source:[qtiqmmfsrc](https://docs.qualcomm.com/doc/80-70022-50/topic/qtiqmmfsrc.html) | <ul class="ul" id="gst-ai-parallel-inference__ul_zyl_gj1_mcc"><br>                                    <li class="li">Captures the live stream from camera.</li><br><br>                                    <li class="li">Uses tee to split the stream for inferencing.</li><br><br>                                </ul> |
| File source: filesrc | <ul class="ul" id="gst-ai-parallel-inference__ul_z1z_x4f_w1c"><br>                                    <li class="li">Captures the video stream using filesrc, followed by<br>                                        qtdemux, which demultiplexes the stream.</li><br><br>                                    <li class="li">Uses tee to split the stream for inferencing.</li><br><br>                                </ul> |
| RTSP source: rtspsrc | <ul class="ul" id="gst-ai-parallel-inference__ul_vsj_2r4_tbc"><br>                                    <li class="li">Captures the RTSP stream using rtspsrc, followed by<br>                                        rtph264depay for video extraction.</li><br><br>                                    <li class="li">Uses tee to split the stream for inferencing.</li><br><br>                                </ul> |
| h264parse | Parses the H.264 video. |
| [v4l2h264dec](https://docs.qualcomm.com/doc/80-70022-50/topic/v4l2h264dec.html) | Decodes the video. |
| [qtimlvconverter](https://docs.qualcomm.com/doc/80-70022-50/topic/qtimlvconverter.html) | <ol class="ol" id="gst-ai-parallel-inference__ol_kgt_hnq_nbc"><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="gst-ai-parallel-inference__ol_drd_jnq_nbc"><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>                                </ol><br><br>                                <br>The tensor stream is used for inferencing in the later stages of<br>                                    the pipeline. |
| [qtimltflite](https://docs.qualcomm.com/doc/80-70022-50/topic/qtimltflite.html) | <ol class="ol" id="gst-ai-parallel-inference__ol_l2x_zjq_nbc"><br>                                    <li class="li">After the inference runtime receives the tensor stream on<br>                                        its sink pad, it 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> |
| Postprocessing plugins | qtimlpostprocess handles the inference results from any object<br>                                detection, classification, pose detection, and segmentation<br>                                    model.<ul class="ul" id="gst-ai-parallel-inference__ul_pgb_wpq_nbc"><br>                                    <li class="li">qtimlpostprocess for detection use case:<ol class="ol" id="gst-ai-parallel-inference__ol_ol3_dky_kbc"><br>                                            <li class="li">Applies a threshold to the chosen number of<br>                                                results.</li><br><br>                                            <li class="li">Loads the YOLOv8 module. </li><br><br>                                            <li class="li">Produces video frames with only bounding boxes that<br>                                                can be overlaid on objects, sending them to the sink<br>                                                pad of the qtivcomposer.</li><br><br>                                        </ol><br></li><br><br>                                    <li class="li">qtimlpostprocess for classification use case:<ol class="ol" id="gst-ai-parallel-inference__ol_nt3_jqq_nbc"><br>                                            <li class="li">Applies the threshold to the chosen number of<br>                                                results. </li><br><br>                                            <li class="li">Loads the MobileNet-softmax module.</li><br><br>                                            <li class="li">Produces results as video frames with classification<br>                                                labels, sending them to the sink pad of the<br>                                                qtivcomposer.</li><br><br>                                        </ol><br></li><br><br>                                    <li class="li">qtimlpostprocess for pose estimation use case:<ol class="ol" id="gst-ai-parallel-inference__ol_znf_mqq_nbc"><br>                                            <li class="li">Applies the threshold to the chosen number of<br>                                                results.</li><br><br>                                            <li class="li">Loads the corresponding modules for various pose<br>                                                estimation models. For the use cases described in<br>                                                this section, qtimlpostprocess loads the HRNet<br>                                                module. </li><br><br>                                            <li class="li">Produces results as video frames with poses drawn,<br>                                                sending them to the sink pad of the<br>                                                qtivcomposer.</li><br><br>                                        </ol><br></li><br><br>                                    <li class="li">qtimlpostprocess for segmentation use case: Converts the<br>                                        inference tensors that it receives on its sink pad into<br>                                        video formats that the multimedia plugins for further<br>                                        processing.</li><br><br>                                </ul> |
| [qtivcomposer](https://docs.qualcomm.com/doc/80-70022-50/topic/qtivcomposer.html) | <ol class="ol" id="gst-ai-parallel-inference__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="gst-ai-parallel-inference__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-parallel-inference.json file

| Field | Values/description |
| :--- | :--- |
| **Input source** | Use one of the following input sources:<br><ul class="ul" id="gst-ai-parallel-inference__ul_eqk_kfr_32c"><br>                                    <li class="li"><code class="ph codeph">camera</code>: Primary (0) or secondary (1).</li><br><br>                                    <li class="li"><code class="ph codeph">file-path</code>: The directory path to the video<br>                                        file.</li><br><br>                                    <li class="li"><code class="ph codeph">rtsp-ip-port</code>: The address of the RTSP<br>                                        stream:<br>                                            <code class="ph codeph"><em class="ph i">rtsp://&lt;ip&gt;:&lt;port&gt;/&lt;stream&gt;</em></code></li><br><br>                                </ul> |
| **Models and labels** | <ul class="ul" id="gst-ai-parallel-inference__ul_c31_nfr_32c"><br>                                    <li class="li"><code class="ph codeph">detection-model</code>: The path to the detection<br>                                        model.</li><br><br>                                    <li class="li"><code class="ph codeph">detection-labels</code>: The path to the detection<br>                                        label.</li><br><br>                                    <li class="li"><code class="ph codeph">pose-model</code>: The path to the pose<br>                                        model.</li><br><br>                                    <li class="li"><code class="ph codeph">pose-labels</code>: The path to the pose<br>                                        labels.</li><br><br>                                    <li class="li"><code class="ph codeph">segmentation-model</code>: The path to the<br>                                        segmentation model.</li><br><br>                                    <li class="li"><code class="ph codeph">segmentation-labels</code>: The path to the<br>                                        segmentation labels.</li><br><br>                                    <li class="li"><code class="ph codeph">classification-model</code>: The path to the<br>                                        classification model.</li><br><br>                                    <li class="li"><code class="ph codeph">classification-labels</code>: The path to the<br>                                        classification labels.</li><br><br>                                </ul> |

## Known issues

- Identifies the pose of only one person even if many people are present in the
                    frame.
- Inception V3 model doesn't include people class. This model is trained on an
                    Imagenet dataset and is used in classification.
- Lag is observed in a long run scenario using camera source.

## Related information

- [Parallel inference using Python](https://docs.qualcomm.com/doc/80-70022-50/topic/parallel-inference-using-python.html)
- [Image classification](https://docs.qualcomm.com/doc/80-70022-50/topic/gst-ai-classification.html)
- [Object detection](https://docs.qualcomm.com/doc/80-70022-50/topic/gst-ai-object-detection.html)
- [Pose detection](https://docs.qualcomm.com/doc/80-70022-50/topic/gst-ai-pose-detection.html)
- [Image segmentation](https://docs.qualcomm.com/doc/80-70022-50/topic/gst-ai-segmentation.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
Image segmentation using Python with container](https://docs.qualcomm.com/bundle/publicresource/80-70022-50/topics/image-segmentation-using-python.md) [Next Topic
Multi input/output object detection](https://docs.qualcomm.com/bundle/publicresource/80-70022-50/topics/gst-ai-multi-input-output-object-detection.md)