Andrea's final forever Videoscope updates
[goodguy/cin-manual-latex.git] / parts / Plugins.tex
index a52a8ef715bd0c80a88432f07527fd0864f71688..3b140d9de4e3ae3937516d5a3167c4151e146f53 100644 (file)
@@ -31,10 +31,10 @@ Note that when you change the plugin icons, your session will automatically save
     \node (img1) [yshift=0cm, xshift=0cm, rotate=0] {\includegraphics[width=0.5\linewidth]{plugin-icons.png}};
     \node [yshift=-6mm, xshift=-1cm,anchor=east] at (img1.north west) (Preferences) {Preferences Window};
     \node [yshift=-14mm, xshift=-1cm,anchor=east] at (img1.north west) (Tab) {Tab section};
-    \node [yshift=-35mm, xshift=-1cm,anchor=east] at (img1.north west) (Icon) {Plugin icon choices};
+    \node [yshift=-34mm, xshift=-1cm,anchor=east] at (img1.north west) (Icon) {Plugin icon choices};
     \draw [->, line width=1mm] (Preferences) edge  ([yshift=-6mm] img1.north west);
     \draw [->, line width=1mm] (Tab) edge  ([yshift=-14mm] img1.north west);
-    \draw [->, line width=1mm] (Icon) edge    ([yshift=-35mm] img1.north west);
+    \draw [->, line width=1mm] (Icon) edge    ([yshift=-34mm] img1.north west);
     \end{tikzpicture}
     \caption{Screencast showing the screen to change your plugin icons set}
     \label{fig:plugin-icons}
@@ -135,11 +135,11 @@ A Presets button on the plugin bar to the left of the Controls and On/Off button
     \begin{tikzpicture}[scale=1, transform shape]
     \node (img1) [yshift=0cm, xshift=0cm, rotate=0] {\includegraphics[width=0.6\linewidth]{preset02.png}};
     \node [yshift=-20mm, xshift=-1cm,anchor=east] at (img1.north west) (Green) {A user preset Green};
-    \node [yshift=-68mm, xshift=-1cm,anchor=south east,text width=10em, inner ysep=-3mm] at (img1.north west) (Textbox) {Textbox to type in the title for the chosen preset or name for a new preset.};
-    \node [yshift=-80mm, xshift=-1cm,anchor=north east,text width=10em,inner ysep=-3mm] at (img1.north west) (Save) {Use the Delete, Save or Apply button for operation.};
+    \node [yshift=-67mm, xshift=-1cm,anchor=south east,text width=10em, inner ysep=-3mm] at (img1.north west) (Textbox) {Textbox to type in the title for the chosen preset or name for a new preset.};
+    \node [yshift=-79mm, xshift=-1cm,anchor=north east,text width=10em,inner ysep=-3mm] at (img1.north west) (Save) {Use the Delete, Save or Apply button for operation.};
     \draw [->, line width=1mm] (Green) edge  ([yshift=-20mm] img1.north west);
-    \draw [->, line width=1mm] (Textbox.south east) --  ([yshift=-68mm] img1.north west);
-    \draw [->, line width=1mm] (Save.north east) --    ([yshift=-80mm] img1.north west);
+    \draw [->, line width=1mm] (Textbox.south east) --  ([yshift=-67mm] img1.north west);
+    \draw [->, line width=1mm] (Save.north east) --    ([yshift=-79mm] img1.north west);
     \end{tikzpicture}
     \caption{Screencast shows 4 Factory presets as preceded by an *.}
     \label{fig:preset02}
@@ -1030,6 +1030,36 @@ This is a Gaussian type blur. Other blur plugins -- \textit{Linear}, \textit{Mot
     \item[Blur alpha, red, green, blue] specifies which color channels is to be blurred.
 \end{description}
 
+\subsection{BoxBlur}%
+\label{sub:boxblur}
+Based on ffmpeg’s boxblur, this is a very fast algorithm which can be used to blur horizontal,
+vertical, and at a power level.  Simplest usage is to just blur the entire image but with
+the following parameters, you can create a specific rectangular section to blur instead.  
+
+\begin{description}
+    \item[X/Y:] point coordinates of a rectangular box to be blurred. X and Y of 0 are in the
+upper left hand corner.  Default to be blurred is the entire image.
+    \item[Drag:] is used when you want to create just a rectangular area to be blurred rather
+than the enire image. If you used keyframes to cover a moving area and had left the Drag box
+enabled, you can remove the drag box with \textit{Allow keyframe spanning} whose use is
+described in \nameref{sec:allow_keyframes_spanning}.
+    \item[W/H] the values in these 2 boxes specify the width and height of the drag area box
+measured in pixels as shown in the compositor window. You can set these manually and if you
+can not see the location of your box, set them to zero because $0$ sets it to the same as the
+width/height of the project.
+    \item[Horiz:] slider goes from $0\, to\, 100$. Increasing this \textit{horizontal} number,
+increases the blurriness in the horizontal direction. The default value is 2. You can also use
+the mouse wheel to scroll the slider.  There is a clear button on the right to set the value to 0.
+    \item[Vert:] slider goes from $0\, to\, 100$. Increasing this \textit{vertical} number,
+increases the blurriness in the vertical direction.  The default value is 2. You can also use
+the mouse wheel to scroll the slider. There is a clear button on the right to set the value to 0.
+    \item[Power:] the way \textit{Power} works is like stacking up the blur multiple times.
+For example, a power of 3 would be like blurring once, then blurring that again, and finally
+blurring that a third time. The slider varies from 1 to 10 with 2 being the default value. There
+is a clear button on the right to set the value to 1.
+    \item[Reset:] button to revert to the default values and turn off Drag if it is on.
+\end{description}
+
 \subsection{Brightness/Contrast}%
 \label{sub:brightness_contrast}
 
@@ -1271,7 +1301,7 @@ To start, if not already checked, turn on drag. In the composer window select an
     \item[X, Y:] points coordinate.
     \item[Buttons:] \textit{New} to create a new point, \textit{Up/Dn} to move highlighted point up or down \textit{Del} to delete the highlighted point.
     \item[Threshold:] slider goes from $0\, to\, 1$. Increasing the threshold, increases the area to be filled or masked. You can also use the mouse wheel to scroll the slider.
-    \item[Drag:] for ease of use.
+    \item[Drag:] for ease of use. If you need to clear the Drag enabled, you can easily do this with \textit{Allow keyframe spanning} whose use is described in \nameref{sec:allow_keyframes_spanning}.
     \item[Reset:] button to revert to only the default middle point with all others being deleted.
     \item[ListBox:] "E" for Enabled with $*$ marking that; "X" is the point’s $x$ coordinate; "Y" is the point’s $y$ coordinate; "T" is the threshold value of $X,Y$ point; \textit{Tag} represents the \# of the selected
     point.
@@ -2386,7 +2416,7 @@ There is no \textit{undo} recorded between gui updates. It is recommended that y
 
 \begin{center}
        \small
-       \begin{longtable}{{m{15em}m{13em}m{12em}}}
+       \begin{longtable}{{m{12em}m{13em}m{12em}}}
                \caption{Sketcher controls}
                \label{tabular:sketcher_controls} \\ % note that double backslash is mandatory here
                \toprule
@@ -2442,7 +2472,7 @@ There is no \textit{undo} recorded between gui updates. It is recommended that y
 \begin{description}
        \item[Anti-Aliasing] You can set Off; On or Double. Default is On.
     \item[Color] refers to the current curve pen color. Click on the \textit{Color rectangle} to bring up the Color window to change any of the color values, including alpha.
-    \item[Drag] check to create curves and to be able to see any Off type curves. Uncheck for render/viewing.
+    \item[Drag] check to create curves and to be able to see any Off type curves. Uncheck for render/viewing.  If you need to clear the Drag enabled, you can easily do this with \textit{Allow keyframe spanning} whose use is described in \nameref{sec:allow_keyframes_spanning}.
     \item[Reset] -- in the \textit{Curve section}, all of the curve lines will be deleted except for an empty default curve;
     -- in the \textit{Point section}, all points for the highlighted curve in the Curve section will be deleted.
     \item[Width] integer width of line; width of $1$ is the default; width of $0$ is the smallest size of $1$ pixel.
@@ -2585,7 +2615,7 @@ If the video is displayed on a consumer TV, the outer border is going to be crop
 \begin{description}
     \item[Drag] initial default checkbox is \textit{off} so that the Title plugin will work as it always has.
     \begin{description}
-        \item[Anchors] When you turn on the Drag feature, nine different anchors/handles will appear on compositor window. The \textit{middle anchor} allows you to drag your title wherever you want in the compositor window ($X, Y$ coordinates). The other 8 handles, drawn as arrows in each corner and in the middle of each side, let you change the size of the drag area box so that your title is within that area if it fits and as it is directed.
+        \item[Anchors] When you turn on the Drag feature, nine different anchors/handles will appear on compositor window. The \textit{middle anchor} allows you to drag your title wherever you want in the compositor window ($X, Y$ coordinates). The other 8 handles, drawn as arrows in each corner and in the middle of each side, let you change the size of the drag area box so that your title is within that area if it fits and as it is directed.  If you need to clear the Drag enabled, you can easily do this with \textit{Allow keyframe spanning} whose use is described in \nameref{sec:allow_keyframes_spanning}.
         \item[W/H] the values in these 2 boxes specify the size of the drag area box measured in pixels as shown in the compositor window. You can set these manually and if you can't see the location of your box or find your handles, set them to zero because $0$ sets it to the same as the width/height of the media.
         The Drag effect ignores all boundaries, including the \textit{Title Safe Region} of the Compositor so that if you drag your titles off the screen, it will look like they disappeared completely. Reset X and Y to reasonable values to have it reappear. The Title \textit{text}, \textit{background}, and \textit{pngs} are applied on a single layer so that they will drag together as an entity. All of the Title capabilities work in conjunction with dragging so if you want to justify the title, you can still use the \textit{Left/Center/Right/Top/Mid/Bottom} within the drag area. Be sure to turn off Drag when rendering or the box will show in the video; keep in mind that drag bars do not appear until there is some text in the text box and you can not actually drag until the Title window controls are available.
     \end{description}
@@ -2785,7 +2815,7 @@ Tracer creates an outline around an object after a few points are designated, so
        \item[Invert] to change the mask to outside.
        \item[Feather] to sort of blur the edges (inward and outward). Feather influences the softness of the edge. The higher the number Feather is set to, the softer the edges become.
        \item[Radius] for varying the size a little. Radius extends the area further in or out to cover more or less area.
-       \item[Drag] to enable or disable moving.
+       \item[Drag] to enable or disable moving.  If you need to clear the Drag enabled, you can easily do this with \textit{Allow keyframe spanning} whose use is described in \nameref{sec:allow_keyframes_spanning}.
        \item[Draw] to draw the outline for visual.
        \item[Fill] to black out the object (no alpha); figure~\ref{fig:tracer-02}.
        \item[Mouse wheel] rotate the outline, centered on cursor. Note that this rotates the outline around the nearest point. The slower you scroll, the more precise the the result. If you scroll faster, an accelerator kicks in that allows you to make complete rotations more quickly.
@@ -2827,35 +2857,101 @@ This effect applies a traditional \textit{darkroom} technique, the so called \te
 \subsection{Videoscope}%
 \label{sub:videoscope}
 
-Videoscope summarizes intensity and color on a calibrated display. The Videoscope can be used in conjunction with other \CGG{} plugins such as \textit{Color 3 Way}, \textit{YUV}, \textit{Brightness}, \textit{Color Balance} or \textit{Histogram} to accurately correct video for contrast, clarity, conformance (to normalize various videos shot under different light settings), or for cinematic purposes. The human eye is not specialized to match precise level of light and color, but Videoscope is. Videoscope contains three displays: the waveform scope and the vectorscope, plus the histograms (figure~\ref{fig:videoscope01}).
+Videoscope summarizes intensity and color on a calibrated display. The Videoscope can be used in conjunction with other \CGG{} plugins such as \textit{Color 3 Way}, \textit{YUV}, \textit{Brightness}, \textit{Color Balance} or \textit{Histogram} to accurately correct video for contrast, clarity, conformance (to normalize various videos shot under different light settings), or for cinematic purposes. The human eye is not specialized to match precise level of light and color, but Videoscope is. Videoscope contains three displays: the waveform scope and the vectorscope, plus the histograms (figure~\ref{fig:videoscope01}). Instead of applying the plugin to the tracks/edits we want to examine, we can use the Videoscope buttons in the Composer and Viewer windows. \includegraphics[height=\baselineskip]{scope.png} In this way the monitors act on the frame indicated by the insertion point, without taking into account the stack of tracks or on which edits to apply the plugin.
+
+The Videoscope menu window has many options.
+
+\paragraph*{Scopes:} we can choose between two histograms:
+
+\begin{itemize}[noitemsep]
+       \item \textit{Histogram}
+       \item \textit{Histogram RGB}
+\end{itemize}
+three waveforms: 
+\begin{itemize}[noitemsep]
+       \item \textit{Waveform}
+       \item \textit{Waveform RGB} (aka RGB Parade)
+       \item \textit{Waveform Ply} (which superimposes the three Waveform RGB graphs in a single view.)
+\end{itemize}
+and two vectorscopes: 
+\begin{itemize}[noitemsep]
+       \item \textit{Vectorscope}
+       \item \textit{VectorWheel}
+\end{itemize}
 
 \begin{figure}[hbtp]
-    \centering
-    \includegraphics[width=0.8\linewidth]{videoscope01.png}
-    \caption{GUI of the Videoscope. You see Histogram, RGB Parade and Vectorscope}
-    \label{fig:videoscope01}
+       \centering
+       \includegraphics[width=1.0\linewidth]{videoscope01.png}
+       \caption{GUI of the Videoscope. You see Histogram, RGB Parade and Vectorscope}
+       \label{fig:videoscope01}
 \end{figure}
 
-\subsubsection*{Waveform/RGB Parade}%
-\label{ssub:waveform_rgb_parade}
+\paragraph*{Settings:} It is divided into two sections. The upper section contains two items:
 
-The \textit{Waveform Scope} displays image intensity (luminance) versus image $X$ position. The \textit{RGB Parade Scope} displays image RGB intensity versus image $X$ position (one graph per channel). The Waveform Scope appears on the left side or in the middle of the Videoscope window. The display is calibrated vertically from $0\%$ intensity (black) at the bottom up to $100\%$ intensity (white) at the top. Each column of pixels in the image corresponds to one column of pixels in the Waveform Scope (figure~\ref{fig:videoscope02}). Note that the height of the values of a waveform/RGB Parade corresponds exactly to the values on the $x\, axis$ in the \textit{histogram}. A vertical/horizontal correspondence is therefore obtained.
+\begin{description}
+       \item[Smooth:] serves to make the graph more homogeneous, improving its visualization.
+       \item[Refresh on Stop ON:] scopes are updated when you stop playback at a given location. Instead, they are locked at the start position while you playback (by dragging the cursor or using the Transport buttuns). This saves system resources and makes playback smoother.
+       \item[Refresh on Stop OFF:] the display of the scopes is synchronized with the playback. Every variation of the graphs is in realtime. There may be some decrease in fps during playback.
+       \item[Refresh on Release:] This works for the Viewer and Compositor windows. Scopes are not updated
+during playback. The update occurs only when you stop playback, that is at the final position (either by
+dragging the cursor or using the Transport buttons). When in the timeline, if you drag on the TimeBar or
+reposition in the TimeBar in either Drag and Drop or Cut and Paste mode, the release of the button also will
+update the Scopes.  This saves system resources and makes playback smoother.  Because there is no update when
+playing in the main window, you can still easily get a videoscope update simply by moving the mouse to the
+Compositor and a single click there will update the scopes without changing the frame (as long as Click to
+Play is not enabled).
+\end{description}
+
+ The lower section, called \textit{VectorWheel Grids}, it is only active when VectorWheel is set up in Scopes pull-down and contains four entries (figure~\ref{fig:videoscope06}):
+ \begin{description}
+       \item[None:] It only shows the colour wheel, without any superimposed graticula.
+       \item[All:] Shows the most complete grid that allows precise and useful measurements. It also shows the skintones area.
+       \item[Hue:] Show a more minimal grid.  It also shows the I-Line.
+       \item[IQ:] Show shows only I-Line and Q-Line.
+ \end{description}
+
+\begin{figure}[hbtp]
+       \centering
+       \includegraphics[width=1.0\linewidth]{videoscope06.png}
+       \caption{Pull-down Settings}
+       \label{fig:videoscope06}
+\end{figure}
+
+You can create custom grids. These are raster .png images of adequate resolution and must be put in:
+
+\begin{lstlisting}[style=sh]
+[your cinelerra path]/bin/plugins/scopes/custom_grid.png
+\end{lstlisting}
+
+More information in the later section on Vectorscope.
+
+\paragraph*{Sliders:} allow for varying the \textit{solidity} of the dots shown in Waveforms and Vectorscope. You can get to the subpixel level for precision. They are accompanied by Reset buttons that restore them to default values.
+
+
+
+\subsubsection*{Waveform/RGB Parade/Waveform Ply}%
+\label{ssub:waveform_rgb_parade_ply}
+
+The \textit{Waveform Scope} displays image intensity (luminance) versus image $X$ position. The \textit{Waveform RGB} displays image RGB intensity versus image $X$ position (one graph per channel). The \textit{Waveform Ply} shows the three channels in a single graph. The Waveform Scope appears on the left side or in the middle of the Videoscope window. The display is calibrated vertically from $0\%$ intensity (black) at the bottom up to $100\%$ intensity (white) at the top. Each column of pixels in the image corresponds to one column of pixels in the Waveform Scope (figure~\ref{fig:videoscope02}). Note that the height of the values of a waveform/waveform RGB corresponds exactly to the values on the $x\, axis$ in the \textit{histogram}. A vertical/horizontal correspondence is therefore obtained.
 
 \begin{figure}[hbtp]
     \centering
-    \includegraphics[width=0.9\linewidth]{videoscope02.png}
-    \caption{Colortest 75\% with RGB Parade (left) and Waveform (right)}
+    \includegraphics[width=1.0\linewidth]{videoscope02.png}
+    \caption{Colortest 75\% with Waveform RGB (left) and Waveform (right)}
     \label{fig:videoscope02}
 \end{figure}
 
-On the left is shown RGB Parade: instead of the color shadows as in figure~\ref{fig:videoscope01}, we have lines representing the color bar test at $75\%$. They are pure colors, so all pixels have the same value. In fact, they are all at the level of $75\%$ except for the $100\%$ white band and the $0\%$ black band. In the waveform on the right, we have the same behavior with regard to luminance: the white band is $100\%$; the black band is $0\%$ and all the others $75\%$.
+On the left is shown waveform RGB: instead of the color shadows as in figure~\ref{fig:videoscope01}, we have lines representing the color bar test at $75\%$. They are pure colors, so all pixels have the same value. In fact, they are all at the level of $75\%$ except for the $100\%$ white band and the $0\%$ black band. In the waveform on the right, we have the same behavior with regard to luminance: the white band is $100\%$; the black band is $0\%$ and all the others $75\%$.
+
+If we left-click on the graph with the mouse, we will see a crosshair that we can place exactly where we want to measure. We can read the precise values of X and Luminance (Value) in the pop-up box that appears at the bottom right (figure~\ref{fig:videoscope03}).
 
-The Waveform scope helps correct image light levels for contrast range or for conforming light levels on various scenes originally shot on different light settings (figure~\ref{fig:videoscope03}).
+The Waveform scope helps correct image light levels for contrast range or for conforming light levels on various scenes originally shot on different light settings. The same can be done with Waveform RGB or the convenient overlapping representation (Waveform Ply).
 
 \begin{figure}[hbtp]
     \centering
-    \includegraphics[width=0.7\linewidth]{videoscope03.png}
-    \caption{Example of waveform}
+    \includegraphics[width=1.0\linewidth]{videoscope03.png}
+    \caption{Examples of waveform (with crosshair and the coordinates' box), waveform RGB and waveform Ply}
     \label{fig:videoscope03}
 \end{figure}
 
@@ -2864,13 +2960,13 @@ The Waveform scope helps correct image light levels for contrast range or for co
 
 \begin{enumerate}
     \item Add the \textit{Brightness/Contrast}, \textit{Histogram}, \textit{Color 3 Way} or another video adjustment effect on your track/edit.
-    \item Add the Videoscope effect on the track below. Make sure that it is placed below so it can see the adjustment effect's results. If it is not, right-click and move it down.
+    \item Add the Videoscope effect on the track. Make sure that it is placed below in the stack of effects, so it can see the adjustment effect's results. If it is not, right-click and move it down. Or do not use the plugin but activate the Videoscope button in the Compositor window.
     \item Show both the effect and Videoscope.
     \item Adjust the contrast while observing the waveform to match the desired light level.
-    \item Precise adjustments can be made by measuring the values on the waveform with the crosshair (by click with LMB, and reading numeric values on top left of the window) and reporting these numbers in the effects window (\textit{Histogram Bézier}, for example).
+    \item Precise adjustments can be made by measuring the values on the waveform with the crosshair (by clicking LMB, and reading numeric values on the pop-up box) and reporting these numbers in the effects window (\textit{Histogram Bézier}, for example).
 \end{enumerate}
 
-For instance, if you are looking for maximum contrast range, adjust the \textit{Brightness/Contrast} levels to align the darkest point on the scope with the $0\%$ level and the brightest portion with $100\%$. Anything above $100\%$ is over saturated. Limits which may be highlighted with checkbox controls.
+For example, if you are looking for maximum contrast range, adjust the \textit{Brightness/Contrast} levels to align the darkest point on the scope with the $0\%$ level and the brightest portion with $100\%$. Anything above $100\%$ is over saturated. Limits may be highlighted with checkbox controls.
 
 \subsubsection*{HDTV or sRGB (ITU-R BT.709)}%
 \label{ssub:hdtv_srgb_bt709}
@@ -2890,14 +2986,33 @@ If you are producing a video for NTSC television broadcast, keep the intensity b
 \subsubsection*{Vectorscope}%
 \label{ssub:Vectorscope}
 
-The Vectorscope displays \textit{hue} (angle on the color wheel) and \textit{saturation} (radius). Each pixel in the source image is drawn as a point on the color wheel. The distance from the center is the color saturation. Gray values are close to the center, and high saturation values are near the perimeter ($100\%$). In the center there is pure white ($0\%$). By clicking with the mouse on the color wheel appear radius and circle whose values of hue and saturation are shown at the top left of the window, similar to the values of $X$ and luminance of the Waveform and RGB Parade (figure~\ref{fig:videoscope04}).
+The Vectorscope displays \textit{hue} (angle on the color wheel) and \textit{saturation} (radius). Each pixel in the source image is drawn as a point on the color wheel. The distance from the center is the color saturation. Gray values are close to the center, and high saturation values are near the perimeter ($100\%$). In the center there is pure white ($0\%$). By clicking with the mouse on the color wheel a radius and circle will appear whose values of hue and saturation are shown in the  pop-up box at the bottom right of the window, similar to the values of $X$ and luminance of the Waveform and RGB Parade (figure~\ref{fig:videoscope05}).
+
+\begin{figure}[hbtp]
+       \centering
+       \includegraphics[width=0.8\linewidth]{videoscope05.png}
+       \caption{Vectorscope (with H/S pop-up box) and VectorWheel (with 3 default grids)}
+       \label{fig:videoscope05}
+\end{figure}
+
+Note that when you choose \textit{VectorWheel} from \textit{Scopes} pulldown, you can choose between different grids in the \textit{Settings} pulldown. In addition, any number of user-supplied grid patterns can be added in the form of a square image of type png.  The user can design and maintain individual grid overlays for various purposes.  The user would keep their overlays in a safe spot on their disk and make a copy of them in the \texttt{\{cinelerra\_pathname\}/bin/plugins/scopes} every time a new version of \CGG{} is installed.
 
-Vectorscope is used as monitor with other plugins to correct color, adjust image tint, and apply other effects for cinematic effects, image correction, or to conform images to look the same. For example, skin tones are found along an axis (\textit{+ I-line}) between yellow and red, and between $0$ and $50\%$ saturation values. The blue of the sky is more or less along the opposite axis to that of the skin (\textit{- I-line}), with a much wider saturation range.
+Generally the Vectorscope has the following uses:
+
+\begin{enumerate}
+       \item Compare saturation levels (radius) between Edits.
+       \item Compare the hues (angle) between Edits.
+       \item Compare skin tones, sky and vegetation.
+       \item Display the color balance or color cast.
+       \item Check the legal limits of the video signal.
+\end{enumerate}
+
+ For example, skin tones are found along an axis (\textit{+ I-line}) between yellow and red, and between $0$ and $50\%$ saturation values. The blue of the sky is more or less along the opposite axis to that of the skin (\textit{- I-line}), with a much wider saturation range.
 
 \begin{figure}[hbtp]
     \centering
     \includegraphics[width=0.9\linewidth]{videoscope04.png}
-    \caption{Balancing a yellow dominace tint}
+    \caption{Balancing a yellow color cast}
     \label{fig:videoscope04}
 \end{figure}
 
@@ -2975,6 +3090,14 @@ Only for Nvidia GPU and Cuda SDK
 \label{sub:mandelbrot}
 
 Produce fractal figures (figure~\ref{fig:mandelbrot}). Use case:
+
+\begin{figure}[hbtp]
+       \centering
+       \includegraphics[width=0.8\linewidth]{mandelbrot.png}
+       \caption{Mandelbrot Cuda plugin}
+       \label{fig:mandelbrot}
+\end{figure}
+
 \begin{enumerate}
        \item add the Mandelbrot Cuda video effect to the timeline
        \item you must enable Drag in the plugin popup menu
@@ -2983,13 +3106,6 @@ Produce fractal figures (figure~\ref{fig:mandelbrot}). Use case:
        \item so now when you play the video from the beginning because you have keyframes, the fractal will be animated between keyframes.
 \end{enumerate}
 
-\begin{figure}[hbtp]
-       \centering
-       \includegraphics[width=0.9\linewidth]{mandelbrot.png}
-       \caption{Mandelbrot Cuda plugin}
-       \label{fig:mandelbrot}
-\end{figure}
-
 \subsection{N\_Body}%
 \label{sub:n_body}
 
@@ -3032,8 +3148,8 @@ time is significant. For these reasons, \textit{findobject} and the other 5 plug
 included in System build packages.  We recommend using the static library build which has the OpenCV
 plugins included for consistency and to avoid problems.
 
-\subsection{Using OpenCV Plugins from the Automatic Builds}%
-\label{sub:using_opencv_automatic_builds}
+\subsection{Adding OpenCV Plugins to the System Package Builds}%
+\label{sub:adding_opencv_to_system_builds}
 
 The OpenCV plugins are built only in the 64-bit tarball builds, both static and dynamic, but due
 to size these plugins are not included with pkgs, i.e. the System builds. However it is relatively
@@ -3051,7 +3167,7 @@ cin/plugins/opencv/stylizeobj.plugin
 
 \begin{enumerate}
     \item do your package install of the current build for your distro as usual
-    \item look in {\small \url{https://cinelerra-gg.org/download/tars}} to see your distro name's static tar;
+    \item look in {\small \url{https://cinelerra-gg.org/download/tars}} to see your distro name's static tar
     \item download the corresponding distro static tarball;
     for example for arch:
 \end{enumerate}
@@ -3059,25 +3175,24 @@ cin/plugins/opencv/stylizeobj.plugin
     {\small \url{https://cinelerra-gg.org/download/tars/cinelerra-5.1-arch-{date}-x86_64-static.txz}}
 
 \begin{enumerate}[resume]
-    \item create a temporary directory on your computer;
-    \item \texttt{cd} that-directory;
-    \item \texttt{tar -xf} location-of-the-tarball-you-downloaded;
-    \item \texttt{cp plugins/*obj.plugin <see below for your location>/.} (note the period on the end!)
-    \item Start \CGG{} and look for the six plugins in Video Effects;
+    \item create a temporary directory on your computer
+    \item \texttt{cd} that-directory
+    \item \texttt{tar -xf} location-of-the-tarball-you-downloaded
+    \item \texttt{cp plugins/*obj.plugin <see below for your location>/.} (note the period on the end)
+    \item Start \CGG{} and look for the six plugins in Video Effects
     \item To reverse this, simply delete the six plugin files (for example:
 
     \texttt{rm /usr/lib*/cin*/*obj.plugin}).
 \end{enumerate}
 
-location for most User installs, this is:
-
-\texttt{<cinlib\_path>/plugins/}
+The location for most User installs is:
 
-Location for some System installs, this is:
+\hspace{4em}\texttt{<cinlib\_path>/plugins/}
 
-\texttt{/usr/lib/cin/plugins/} (most ubuntu distros)
+Location for some System installs is:
 
-\texttt{/usr/lib64/cin/plugins/} (Leap distro)
+\hspace{4em}\texttt{/usr/lib/cin/plugins/} (most ubuntu distros)\\
+\hspace{4em}\texttt{/usr/lib64/cin/plugins/} (Leap distro)
 
 \subsection{How to Build OpenCV Plugins}%
 \label{sub:how_build_opencv_plugins}
@@ -3088,6 +3203,32 @@ and build OpenCV into the thirdparty library build area if needed (it does not r
 previously).  Network access is required to obtain the OpenCV source, at least once. You will
 need a minimum of $4\, GB$ in the thirdparty build directory and more time to compile.
 
+\subsubsection*{Build using stable tarballs}%
+\label{ssub:stable_tars}
+
+Instead of using the latest git version, there is a custom archive source tarball on the
+website already created to build and test OpenCV versions.  The reason for this is that OpenCV
+is quite volatile, and may or may not work on any given day so this is an already tested version
+that is considered to be more stable.  A build using the tarball requires that your
+system have \textit{wget} already installed to initially download the prepared source tar. 
+There are currently 2 tarballs of stable versions on the website used for user builds.
+The 20180401 version:\newline
+{\small \url{ https://cinelerra-gg.org/download/opencv/opencv-20180401.tgz}}\newline
+works with older version of cmake, and 20200308 is the current 4.2 release:\newline
+{\small \url{https://cinelerra-gg.org/download/opencv/opencv-20200306.tgz}}
+
+To build using the tarballs on the website, use this bld.sh procedure (you may want to run "make
+clean" first):
+\begin{lstlisting}[style=sh]
+#!/bin/bash
+( ./autogen.sh
+  ./configure --with-single-user --with-booby \
+    --with-opencv=sta,tar=http://cinelerra-gg.org/download/opencv/opencv-20200306.tgz
+  make && make install ) 2>&1 | tee log
+mv Makefile Makefile.cfg
+cp Makefile.devel Makefile
+\end{lstlisting}
+
 \subsubsection*{Build using current git version}%
 \label{ssub:current_git}
 
@@ -3161,32 +3302,6 @@ running locally on the build system.  for example:\newline
      \item systemctl start httpd
 \end{enumerate}
 
-\subsubsection*{Build using stable tarballs}%
-\label{ssub:stable_tars}
-
-Instead of using the latest git version, there is a custom archive source tarball on the
-website already created to build and test OpenCV versions.  The reason for this is that OpenCV
-is quite volatile, and may or may not work on any given day so this is an already tested version
-that is considered to be more stable.  A build using the tarball requires that your
-system have \textit{wget} already installed to initially download the prepared source tar. 
-There are currently 2 tarballs of stable versions on the website used for user builds.
-The 20180401 version:\newline
-{\small \url{ https://cinelerra-gg.org/download/opencv/opencv-20180401.tgz}}\newline
-works with older version of cmake, and 20200308 is the current 4.2 release:\newline
-{\small \url{https://cinelerra-gg.org/download/opencv/opencv-20200306.tgz}}
-
-To build using the tarballs on the website, use this bld.sh procedure (you may want to run "make
-clean" first):
-\begin{lstlisting}[style=sh]
-#!/bin/bash
-( ./autogen.sh
-  ./configure --with-single-user --with-booby \
-    --with-opencv=sta,tar=http://cinelerra-gg.org/download/opencv/opencv-20200306.tgz
-  make && make install ) 2>&1 | tee log
-mv Makefile Makefile.cfg
-cp Makefile.devel Makefile
-\end{lstlisting}
-
 \subsection{Description of Find Object Plugin}%
 \label{sub:description_findobj_plugin}