+-----------------------------------------------------------------+
|                                                                 |
|                   NRS v1.4 (20/08/2003) Readme                  |
|                   ----------------------------                  |
|                                                                 |
+-----------------------------------------------------------------+

This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY.

----------------------------------------------------------------------------

NRS is a suite of tools aimed to reduce noise into frames (to enhance quality
and for better compression).
There are other plugins that do the work, but I decided to develope
this one to test the correctness and efficiency, in terms of quality and speed,
of my ideas.

                          +---------+
                          | Options |
                          +---------+

Crop:
----

- Top, Left, Right, Bottom

These options crop the specified number of pixels from the
specified border of the frame. Note that the resulting image
will be centered within the original frame size and the resulting
border areas will be filled with black. If you prefer something
other than centering, please use the shift options (see below).

Shift:
-----

- X, Y

These options allow you to override the automatic centering of the
crop function. For example, suppose you have cropped 200 pixels from the
top of the frame and you want the result to be aligned with the top of the
frame vertically (but centered horizontally). You would set the Y shift
to -100.

Background color:
----------------

Cropped area is filled with color defined by its RGB value.

Noise Reduction:
---------------

- Luminance Thresholds

The filter operates as follows:

1. The old and new pixels are averaged (blended).
2. The luminance of the new pixel is calculated and
   determines a threshold.
3. If the absolute value of the difference between
   the blended pixel and the old pixel exceeds the
   threshold, then the unchanged new pixel is used;
   otherwise the blended pixel is used.

The important thing is how the thresholds are determined from the
luminance of the new pixel. Human eyes are more sensitive in dark areas,
so I use different thresholds according to the luminace of the pixels.
Also since the eyes are sensible to luminance changes in a logaritmic way
I split the luminance range into 8 pieces and distribute thresholds along
these pieces. To see how the thresholds are distributed, look at
the "Luminance=Threshold" labels.

E.g.: if you set Dark pixels to 4 and Bright pixels to 12, you will
see <2: 4, <4: 5, <8: 6, <16: 7, <32: 9, etc.

This means that if the luminance is less than 2, the threshold used will
be 4, if the luminance is less than 4, the threshold used will be 5, etc.

- Show blended pixels

Black pixels are averaged using pixels in old frame.

- Show edges

When "Show blended" is active shows edges found in old frame.

- Multipass

I added a new code that performs extra processing to reduce motion artifacts.
It disables the temporal smoother in corrispondence of edges in old frame.

- Edges threshold

Set this threshold to disable the temporal smoother in corrispondence
of edges in old frame.

- SCD threshold

If number of unchanged pixels (in terms of percentage) > SCD threshold
then current frame is recomputed with DNR filter disabled.

- Refresh button

Resets data stored for DNR at user request.
This button can be used if user for example jumps from a frame to another using
slider of preview window.

Smart blur:
----------

- Luminance Thresholds

See Luminance Thresholds for DNR

- Radius

if radius=1 then smooth is applyed using a box of 3x3,
if radius=2 then smooth is applyed using a box of 5x5, etc.

- Show edges

The darkness of pixels shows how strong is the effect
of the blur applyed to them.

Gamma correction:
----------------

- Gamma

Legal values goes from 1.0 to 3.0 (10-30) and
from -1.0(=1.0) to -3.0 for inverse gamma.

- Limits

The range specified by user is expanded to the range 0-255
(this for each channel) resulting in a contrast effect.

- Picker button:

Autosets limits to min (dark) and max (bright) luminance values
into the visualized frame.

Other options:
--------------

- Interlaced

If the source is interlaced and Blur or Multipass DNR are active this box MUST be checked

- MMX off

The plugin automatically uses MMX if available.
This option forces the usage of regular code.

- Bypass filter

...

                          +-----------+
                          | Questions |
                          +-----------+

Q: How should I set the dark & bright values in temporal smoother?
A: Leave dark threshold=2 and raise the value of threshold for bright pixels until
 motion artifacts appear, then try to raise the value of the other one until motion artifacts
 appear.
 Use also "Show blended pixels" to understand if values are too high (frames are almost black)
 or too low (frames are almost white).

Remarks:
1)
 I added to the sources some script file that can be used as a reference.
 To use them you have to download "warpsharp" and "wavelet noise reduction".
2)
 Version 1.4 can be interfaced with Avisynth (rename the plugin NRS.dll)
 and I've added to the sources a sample script.
 The filter works in RGB32 only and parameters must be set using Virtualdub (they are
 stored into the registry).

----------------------------------------------------------------------------

For suggestions, bugs report, contribution, etc., you can contact me at
kreel@tiscali.it
