{"slug": "disabling-facetime-hd-camera-post-processing-on-macos", "title": "Disabling FaceTime HD camera post-processing on macOS", "summary": "A developer documented a method for disabling FaceTime HD camera post-processing on macOS by writing preference keys to the com.apple.coremedia domain for the _cmiodalassistants user and restarting the appleh13camerad daemon. Disassembly of the daemon revealed keys controlling the AppleISPEmulator stage, including MLVNR, a temporal neural denoiser running on the Neural Engine, plus a GPU enhancement and a multi-frame temporal filter. After disabling them, a 15-second stream showed no MLVNR, emulator or Neural Engine activity, and a luma-plane detail metric stayed between 4 and 5.5 instead of dropping from about 2.0 to 1.1.", "body_md": "Tested on a MacBook Pro 14\" (M1 Pro), macOS 27.0.1.\n\n```\nfor k in EnableAppleISPEmulator EnableVEIRL EnableMCTF; do\n  sudo -u _cmiodalassistants defaults write com.apple.coremedia $k -bool NO\ndone\nsudo killall appleh13camerad\n```\n\nTo undo, run the same loop with `defaults delete com.apple.coremedia $k` instead of `write`,\nthen restart the daemon the same way.\n\nThe setting is system-wide, so every app using the built-in camera is affected. Expect more visible noise in low light.\n\nAbout 3 seconds after the camera opens, the image becomes noticeably smoother and loses detail. A detail metric on the luma plane drops from about 2.0 to 1.1 within one frame. The drop happens at every resolution, and the frame metadata does not show it.\n\n`appleh13camerad` is the daemon that owns the camera ISP. After the ISP, it passes frames\nthrough a software stage called AppleISPEmulator. That stage runs MLVNR, a temporal neural\ndenoiser on the Neural Engine. Its rate limiter keeps it off while the model warms up, then\nturns it on. You can see this in the daemon's log:\n\n```\n/usr/bin/log stream --level info --predicate 'process == \"appleh13camerad\"'\n\nProcessFrames_MLVNR_IIR_1:  Suppressing algorithm to achieve target frame-rate\nProcessFrames_MLVNR_IIR_1:  Algorithm rate-limit released.\n```\n\nThe image changes at the second message.\n\nThe daemon reads its settings with `CFPreferencesCopyValue` from the `com.apple.coremedia`\ndomain of its own user, `_cmiodalassistants`. Disassembling `/usr/sbin/appleh13camerad`\nshows which keys it reads:\n\n- `EnableAppleISPEmulator` controls the whole emulator stage, including MLVNR. When it is\noff, the stream starts without that stage.\n- `EnableVEIRL` controls a GPU enhancement in the same stage.\n- `EnableMCTF` controls the multi-frame temporal filter.\n- `RadialGainEnable` controls lens-shading correction. It is left on.\n\nThe daemon reads these keys when it starts, so it needs a restart after the change. Killing it is safe because launchd relaunches it when an app next uses the camera.\n\nAfter the change, a 15-second stream shows no MLVNR, emulator or Neural Engine activity in the daemon log. The detail metric stays at 4 to 5.5 throughout. It is higher than the original 2.0 because the temporal filter is also off.", "url": "https://wpnews.pro/news/disabling-facetime-hd-camera-post-processing-on-macos", "canonical_source": "https://gist.github.com/breitburg/9e88c6bd500902dfda6662b1dc658a59", "published_at": "2026-10-19 23:18:05+00:00", "updated_at": "2026-10-20 09:47:30.018512+00:00", "lang": "en", "topics": ["machine-learning", "neural-networks", "computer-vision"], "entities": ["Apple", "macOS", "MacBook Pro", "M1 Pro", "appleh13camerad", "AppleISPEmulator", "MLVNR", "Neural Engine"], "also_reported_by": [], "alternates": {"html": "https://wpnews.pro/news/disabling-facetime-hd-camera-post-processing-on-macos", "markdown": "https://wpnews.pro/news/disabling-facetime-hd-camera-post-processing-on-macos.md", "text": "https://wpnews.pro/news/disabling-facetime-hd-camera-post-processing-on-macos.txt", "jsonld": "https://wpnews.pro/news/disabling-facetime-hd-camera-post-processing-on-macos.jsonld"}}