# Support software TNR/MCTF

Note

SW TNR/MCTF is enabled only for QCS9075 and QCS8275.

Motion Compensated Temporal Filter (MCTF) is a technique used to improve preview/video quality by reducing noise and enhancing the clarity of motion.

In QCS9075 and QCS8275, the IPE hardware doesn’t support MCTF. Thus, a software-based solution is implemented running on the GPU.

SWMCTF performs blending between frames in static areas to reduce noise. Additionally, the SWMCTF is the refinement of global motion compensation transform.

The following diagram shows the workflow of SWMCTF.

![../_images/swmctf.png](data:image/png;base64,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)

The first step in MCTF is to figure out the motion estimation matrix between the current frame and previous frame. The motion estimation matrix and the transform confidence measured are sent to warp and blend processing.

Next is warping. This is done on the previous output frame based on the ME matrix. An alpha mask (used for classifying background vs. local motion) is also calculated between the current and previous frame.
In the end, the current input frame and the previous output are blended to generate the current output frame using alpha mask values.
It also takes into consideration the noise calculated for each frame.

Use the following GST command to test software TNR:

gst-launch-1.0 -e qtiqmmfsrc name=camsrc video_0::type=preview sw-tnr=true ! \
    video/x-raw,format=NV12_Q08C,width=1280,height=720,framerate=30/1 ! \
    v4l2h264enc capture-io-mode=4 output-io-mode=5 \
    extra-controls="controls,video_bitrate=6000000,video_bitrate_mode=0;" ! \
    h264parse ! mp4mux ! filesink location=/opt/cam_prev.mp4
    Copy to clipboard

Log verification:

CamX: [CORE_CFG]1332 3839 [CORE   ] camxpipeline.h:4222 SetPipelineStatus() RealTimeFeatureZSLPreviewRawSWMCTF_0_cam_0 status is now PipelineStatus::STREAM_ON
    libmctf: mctf_init: 107:MCTF Version 3.14
    Copy to clipboard

Last Published: May 26, 2026

[Previous Topic
Support per port grouping](https://docs.qualcomm.com/bundle/publicresource/80-80022-17/topics/support-per-port-grouping.md) [Next Topic
Enable high dynamic range](https://docs.qualcomm.com/bundle/publicresource/80-80022-17/topics/enable-high-dynamic-range.md)