Initial nlmeans port, builds but crashes on encode
Continued progress on nlmeans.
More nlmeans progress. Unsure if it's getting better or worse.
First semi-working nlmeans build.

Output dimensions are correct but image is corrupted by short green lines running diagonal down and to the right. Bad math somewhere, probably copying too many bytes and snagging part of the temporary image border or unknown memory.
Working nlmeans build.

Fixed math causing image corruption; was using wrong image width for integral computation.
Clean up unused nlmeans code.
Fix nlmeans distortion at bottom of image.

Somewhere along the line, lost the line of code that copied the bottom border area, resulting in random memory contents in that area. Only noticeable with chance input and settings that cause nlmeans to actually match on the bad data.
Remove some logging.
More clean up and variable renaming.
More clean up and variable renaming.
Minor comments clean up.
Rename and reorder nlmeans parameters.
Add origin patch weight tuning parameter.
Rename some variables and relocate some parameter validation.
Make sure smallest weight in exponential table is > 0.

Solves a problem with occasional black pixels peppering the edges of the output.
Remove unnecessary (at this stage) frame buffer.
Plug a memory leak.
Revert smallest weight in exponential table change.

Did not solve the problem for which it was intended.
Implement temporal filtering for nlmeans.
Improve nlmeans temporal filtering and clean up for release.