Skip to content

Bm3d

Video Single output Transform

Block-Matching 3D denoiser.

FFmpeg filter: bm3d — the official reference.

Add it to a graph. The explicit form works for every filter — bind it to its inputs and read the result from outputs():

$node = $video->addFilter(new Bm3d(…), [$other]);
$result = $node->outputs()[0];

Shorthand. Single-output filters can skip the node — apply() returns the result stream directly:

$result = $video->apply(new Bm3d(…), $other);

TODO — when this filter shines: what it’s the right tool for, what to reach for instead when it isn’t, and how it composes with neighbouring filters.

TODO — prose: how the filter actually works and what its key parameters mean (the explanation FFmpeg’s terse option help omits).

TODO — runnable PHP, with the equivalent ffmpeg CLI alongside.

TODO

TODO

ParameterTypeDefaultRange / valuesDescription
sigmafloat10–99999.9set denoising strength
blockint168–64set size of local patch
bstepint41–64set sliding step for processing blocks
groupint11–256set maximal number of similar blocks
rangeint9≥ 1set block matching range
mstepint11–64set step for block matching
thmsefloat0≥ 0set threshold of mean square error for block matching
hdthrfloat2.7≥ 0set hard threshold for 3D transfer domain
estimBm3dModebasicbasic, finalset filtering estimation mode
refboolfalse—have reference stream
planesint70–15set planes to filter

Maps to FFmpeg’s bm3d filter. Verified against ffmpeg n7.1.1.

An Artisan Build project.

Built on FFmpeg — an independent binding, not affiliated with or endorsed by the FFmpeg project. Support FFmpeg.