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
sigmafloat1099999.9set denoising strength
blockint16864set size of local patch
bstepint4164set sliding step for processing blocks
groupint11256set maximal number of similar blocks
rangeint91set block matching range
mstepint1164set step for block matching
thmsefloat00set threshold of mean square error for block matching
hdthrfloat2.70set hard threshold for 3D transfer domain
estimBm3dModebasicbasic, finalset filtering estimation mode
refboolfalsehave reference stream
planesint7015set 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.