IQ-9075-EVKIQ-8275-EVKGPU Accelerated
GPU
Processing Engine
NV12_Q08C
Input Format
MCTF
Noise Reduction
Platform Scope:
SW TNR / MCTF is enabled only for IQ-9075-EVK and IQ-8275-EVK.
SW TNR / MCTF is enabled only for IQ-9075-EVK and IQ-8275-EVK.
01 · What Is It?
Motion Compensated Temporal Filtering - a software-based video quality filter that reduces noise across frames — runs on the GPU where IPE hardware MCTF is unavailable. MCTF improves preview and video quality by reducing temporal noise and enhancing motion clarity. The SW implementation runs on the GPU, performing inter-frame blending in static regions and applying global motion compensation transforms.
02 · What It Controls
| Stage | What it does | Impact if skipped |
|---|---|---|
| Motion Estimation (ME) | Calculates transform matrix between current and previous frame | No motion compensation → ghosting artifacts |
| Warp | Warps previous output frame using ME matrix | Misaligned blend → smearing |
| Alpha Mask | Classifies background vs. local motion regions | Static noise not reduced, moving areas over-blended |
| Blend | Merges current + previous frames using alpha mask + noise estimate | Temporal noise visible in output video |
03 · Validation
Connect to the device console using SSH. See How To SSH? for instructions.
Run GStreamer pipeline with sw-tnr=true
Execute the pipeline using the
NV12_Q08C format and enable the software TNR flag.GStreamer (SW MCTF Enablement)
🛠️ Troubleshooting / Known Issues — SW TNR/MCTF
| Issue / Observation | Details / Notes |
|---|---|
| Ghosting artifacts on fast-moving objects | High-motion scenarios (robotics, automotive) can cause temporal ghosting — reduce MCTF blend strength to mitigate |
STREAM_ON status not seen in user log | CamX pipeline may not be live with MCTF enabled — verify log entry: SetPipelineStatus() ... status is now PipelineStatus::STREAM_ON |
libmctf library not initialized | If libmctf Version: 1.0.0 is absent from user log, the SW MCTF library failed to initialize on the GPU — check camxchimoduleswmctf.cpp:328 Initialize() |

