Andrea reorganization of manual
[goodguy/cin-manual-latex.git] / parts / Plugins.tex
index dca6b07b6f4c123eb26d5ef5b7c3105fd11c1ccf..995b773681e19d9ff25767243a3c813c70f3d553 100644 (file)
@@ -104,6 +104,15 @@ Two other effect types available in the Attach Effect dialog are \textit{Shared
     \item The insertion point or selected region must start inside the other effects.
 \end{itemize}
 
+Before going into further detail about how to use \textit{Shared effects}, an easier
+alternative method of application which is especially useful for Audio tracks is
+available.  In this method, all you have to do is use the \textit{Audio} pulldown and
+choose \textit{Attach effect}, highlight the effect you would like and make sure the
+default of \textit{Attach single standalone and share others} is checked on.  It will
+automatically be a "Shared Effect" on all audio tracks (be sure to disarm any audio
+tracks that you do not want to have the effect shared on).  This method also works for
+Video tracks using the \textit{Video} pulldown choice of \textit{Attach effect}.
+
 In the case of a shared track, there must be another track on the timeline of the same type as the track you are applying an effect to. If you right clicked on a video track to attach an effect, there will not be anything in the shared tracks column if no other video track exists. The same applies equally to audio tracks in that another audio track must exist. Shared tracks are often used as layers for titles, curves and keyframes.
 
 If shared effects or shared tracks are available, they appear in the shared effects and shared tracks columns when you used the \textit{Attach effect} option (RMB on a track). When the green colored checkmark is clicked OK, anything highlighted in the column is attached under the current track.
@@ -777,6 +786,13 @@ Note the UI button in the upper right hand corner above the Reset button (figure
 
 When the glitzy ui is up, the simple text window remains up also since it is the \CGG{} side and keeps track of the value changes so they remain in effect for further usage of the plugin. Changes to one or the other will occur in both with the exception of certain features in the glitzy window which are not communicated correctly back to \CGG{}; for example a reset button -- the simple interface Reset button must be used instead. To change values in the glitzy window you use the mouse and move up or down unlike a knob that turns! (Figure~\ref{fig:calf02})
 
+\begin{figure}[htpb]
+       \centering
+       \includegraphics[width=0.8\linewidth]{calf02.png}
+       \caption{Screencast with a Calf plugin glitzy window that appears when clicking the simple interface UI button.}
+       \label{fig:calf02}
+\end{figure}
+
 In order to test a particular plugin without bringing up \CGG{}, especially for ones that do not operate, it is possible to manually display an lv2ui gui with: \\
 \texttt{/cin-path/lv2ui <lv2-uri>} \\
 For example:
@@ -785,12 +801,6 @@ For example:
 /tmp/cinelerra-5.1/bin/lv2ui http://calf.sourceforge.net/plugins/Flanger
 \end{lstlisting}
 
-\begin{figure}[htpb]
-    \centering
-    \includegraphics[width=0.8\linewidth]{calf02.png}
-    \caption{Screencast with a Calf plugin glitzy window that appears when clicking the simple interface UI button.}
-    \label{fig:calf02}
-\end{figure}
 
 \section[Video Effects --- Native]{Video Effects -- Native}%
 \label{sec:video_effects_native}
@@ -1064,18 +1074,18 @@ is a clear button on the right to set the value to 1.
 \subsection{Brightness/Contrast}%
 \label{sub:brightness_contrast}
 
+\begin{figure}[htpb]
+       \centering
+       \includegraphics[width=0.6\linewidth]{brightness.png}
+       \caption{How it works Brightness and Contrast}
+       \label{fig:brightness}
+\end{figure}
+
 To brighten a dark shot, or add light, use this plugin. Do not overuse the effect or you risk degrading your video quality.
 The \textit{Brightness} slider moves up or down the values of the entire channel and corresponds to the \textit{Master Offset} of the various grading programs.
 The \textit{Contrast} slider expands or narrows the brightness values of the entire channel; corresponds to the use of the \textit{cursors} (small triangles) in the \textit{Histogram} plugin. Clear icons are present to reset its slider to default without affecting others.
 Use the effect along with keyframing to brighten a long shot that is dark at the beginning but bright at the end. Generally you will want to change the brightness and contrast about the same amount (for example -- brightness $28$, contrast $26$) so that your original colors are kept intact. This effect is also keyframable (figure~\ref{fig:brightness}).
 
-\begin{figure}[htpb]
-    \centering
-    \includegraphics[width=0.6\linewidth]{brightness.png}
-    \caption{How it works Brightness and Contrast}
-    \label{fig:brightness}
-\end{figure}
-
 \subsection{BurningTV}%
 \label{sub:burningtv}
 
@@ -1782,7 +1792,7 @@ Uses a Bayer filter algorithm to interpolate (estimate) missing color informatio
 \subsubsection*{Theory}
 \label{ssub:theory}
 
-Each video has its own framerate. If we want to change it (for \textit{timelapse} or \textit{slowmotion}) the best thing is to shoot the scene with suitable framerate. But even in post production we can do something. The simplest method is to remove some frames to speed up the movie or add some to slow it down (from now on, for simplicity we will consider only the timelapse). Needless to say, the result is not smooth and the viewer will notice it immediately. A better method is to use the interpolation, mediating the pairs of frames that alternate. For example, if we have a sequence of frames $1, 2, 3, 4, 5, 6, 7, 8\dots$ we can make a timelapse mixing frames $1$ and $2$, $3$ and $4$, $5$ and $6$, $7$ and $8$ and so on. So we will have a new sequence of $4$ frames instead of the initial $8$: $\underline{12, 34, 56, 78}\dots$ We will get $50\%$ acceleration but it will always be of bad quality because of the too rough blending between the pairs of frames. Blending can be improved by weighing it differently by $50\% frame 1 + 50\% frame 2$, but the result is still unsatisfactory. Further improvements can be achieved by using $logarithmic$ or $exponential$ interpolation instead of $linear$ interpolation. But the most sophisticated methods that lead to better results are based on \textit{optical flow analysis}. These analyses the movement of circumscribed areas over a given period of time. With this method the intermediate frames do not derive from an approximate blending, but from the calculation of the \textit{vector} of the motion between two frames that determines the displacement (\textit{warping}) of the moving figure in the new intermediate frame. \textit{Interpolate Video} works this way.
+Each video has its own framerate. If we want to change it (for \textit{timelapse} or \textit{slow motion}) the best thing is to shoot the scene with suitable framerate. But even in post production we can do something. The simplest method is to remove some frames to speed up the movie or add some to slow it down (from now on, for simplicity we will consider only the timelapse). Needless to say, the result is not smooth and the viewer will notice it immediately. A better method is to use the interpolation, mediating the pairs of frames that alternate. For example, if we have a sequence of frames $1, 2, 3, 4, 5, 6, 7, 8\dots$ we can make a timelapse mixing frames $1$ and $2$, $3$ and $4$, $5$ and $6$, $7$ and $8$ and so on. So we will have a new sequence of $4$ frames instead of the initial $8$: $\underline{12, 34, 56, 78}\dots$ We will get $50\%$ acceleration but it will always be of bad quality because of the too rough blending between the pairs of frames. Blending can be improved by weighing it differently by $50\% frame 1 + 50\% frame 2$, but the result is still unsatisfactory. Further improvements can be achieved by using $logarithmic$ or $exponential$ interpolation instead of $linear$ interpolation. But the most sophisticated methods that lead to better results are based on \textit{optical flow analysis}. These analyses the movement of circumscribed areas over a given period of time. With this method the intermediate frames do not derive from an approximate blending, but from the calculation of the \textit{vector} of the motion between two frames that determines the displacement (\textit{warping}) of the moving figure in the new intermediate frame. \textit{Interpolate Video} works this way.
 
 \subsubsection*{Practice}
 \label{ssub:practice}
@@ -1936,7 +1946,7 @@ Motion tracking parameters:
     \item[Translation search steps] Ideally the search operation would compare the translation block with every other pixel in the translation search radius. To speed this operation up, a subset of the total positions is searched. Then the search area is narrowed and re-scanned by the same number of search steps until the motion is known to $\frac{1}{4}$ pixel accuracy.
     \item[Block X, Y] These coordinates determine the center of the translation block based on percentages of the width and height of the image. The center of the block should be part of the image which is visible at all times.
     \item[Maximum absolute offset] The amount of motion detected by the motion tracker is unlimited if this is $100$. If it is under $100$ the amount of motion is limited by that percentage of the image size.
-    \item[Settling speed] The motion detected between every frame can be accumulated to form an absolute motion vector. If the settling speed is $100$ the absolute vector is added to the next frame. If the settling speed is less than $100$ the absolute vector is downscaled by the settling amount before being added to the next frame.
+    \item[Settling speed] The motion detected between every frame can be accumulated to form an absolute motion vector. Settling speed determines how fast the accumulated translation fades away, and the image resettles to its actual appearance. If the settling speed is 0\% the total absolute vector is added to the next frame. So every frame that is processed accumulates the whole motion of the past. If the settling speed is 100\% the absolute vector is cancelled completely, adding no past translation to the next frame. If the settling speed is intermediate between 0\% and 100\% the absolute vector is downscaled by (100 - settling amount) before being added to the next frame.
     \item[Track rotation] Enables rotation operations. The motion tracker tracks rotation in the master layer and adjusts rotation in the target layer.
     \item[Rotation block size] For rotation operations a single block is compared to equally sized blocks, each rotated by a different amount. This is the size of the rotation block.
     \item[Rotation search radius] This is the maximum angle of rotation from the starting frame the rotation scanner can detect. The rotation scan is from this angle counterclockwise to this angle clockwise. Thus the rotation search radius is half the total range scanned.
@@ -2085,7 +2095,7 @@ Uses X/Y camera automation vectors to apply a linear blur trailing camera direct
 \subsection{MotionCV}%
 \label{sub:motioncv}
 
-Motion tracking/stabilization from the community version of \CGG{}. For theory and explanations refer to the \hyperref[sub:motion]{Motion} plugin.
+Extended motion tracking/stabilization from the community version of \CGG{}. For theory and explanations refer to the \hyperref[sub:motion]{Motion} plugin.
 
 \subsection{MotionHV}%
 \label{sub:motionhv}
@@ -2146,7 +2156,9 @@ Key Presses for using the Perspective plugin:
 
 Note that the red color lines in the box show the composer boundary.
 
-In order to see endpoints that go off the screen, you can use the zoom slider which changes only the zoom view and does nothing else. The slider uses a logarithmic scale ranging from $\frac{1}{100} to 100$.
+In order to see endpoints that go off the screen, you can use the zoom slider which changes only the zoom view and does nothing else. The slider uses a logarithmic scale ranging from $\frac{1}{100} to 100$.  Although not shown in the 
+image here, each endpoint is labeled in yellow with 1-4 and the Current X
+endpoint is shown in the menu to make it easier to tell which point is in play.
 
 Figure~\ref{fig:perspective01} show the results of the 4 different smoothing options.
 
@@ -2157,6 +2169,15 @@ Figure~\ref{fig:perspective01} show the results of the 4 different smoothing opt
     \label{fig:perspective01}
 \end{figure}
 
+Just a side note about the possibility of ending up with a divide by 0 case when manipulating
+the endpoints.  Sometimes this results in a single frame anomaly but you can workaround this
+by setting the X value for the middle keyframe of a series to just a little more than 0,
+such as .01 so that dividing by 0 is avoided. The actual cause of the problem is that the
+interpolated X1..X4 auto coordinates used by perspective eventually have x1==x2, x3==x4, so
+that all points x are scaled by zero. Another solution is to tweak the frame count to an even
+number, so that the center is not over the point where x1==x2, x3==x4, or perturb the midpoint
+position a little so that the answers are not exactly zero.
+
 \subsection{Polar}%
 \label{sub:polar}
 
@@ -2186,6 +2207,13 @@ Most cameras take the light coming into the lens, and convert that into $3$ sets
 
 Radial blur is a \textit{Bokeh} effect that creates a whirlpool which simulates a swirling camera. You can vary the location, type, and quality of the blur.
 
+\begin{figure}[hbtp]
+       \centering
+       \includegraphics[width=0.8\linewidth]{radial.png}
+       \caption{For clarity of presentation only 2 fields are shown}
+       \label{fig:radial}
+\end{figure}
+
 \begin{description}
     \item[X,Y] center of the circle of movement.
     \item[Angle] angle of motion in one direction.
@@ -2195,12 +2223,6 @@ Radial blur is a \textit{Bokeh} effect that creates a whirlpool which simulates
 
 Figure~\ref{fig:radial} has the parameters: $Angle=-35$ and $Steps=2$.
 
-\begin{figure}[hbtp]
-    \centering
-    \includegraphics[width=0.8\linewidth]{radial.png}
-    \caption{For clarity of presentation only 2 fields are shown}
-    \label{fig:radial}
-\end{figure}
 
 \subsection{ReframeRT}%
 \label{sub:reframert}
@@ -2224,11 +2246,11 @@ to interpolation.
 
 Stretch mode multiplies the current frame number of its output by the \textit{scale factor} to arrive at the frame to read from its input. The scaling factor is not entered directly but using a number of \textit{input} frames to be divided by the number of \textit{output} frames.
 
-\vspace{1ex} \texttt{Scale factor = Input frames / Output frames}
+\vspace{1ex} \texttt{Scale factor (SF) = Input frames / Output frames}
 
-\[\frac{1}{8} \Rightarrow scale\, factor = 0.125 \qquad (slowmotion)\]
+\[\frac{1}{8} \Rightarrow scale\, factor = 0.125 \qquad (slow\, motion)\]
 
-That is, one input frame of the original movie corresponds to $8$ new output frames originated by interpolation. It is the opposite with regard to \textit{fast play}.
+For slow motion we leave 1 for the frames of the input and we increase the number of frames of the output (for example putting 8 for the output we have slow motion $8\times$, with $SF=\frac{1}{8}=0.125$). For fast motion we leave 1 for the output and we increase the number for the input (for example 8 to have $8\times$, with $SF=\frac{8}{1}=8$). Another possibility is to put the frame rate of the media (e.g 120 fps) in the input and the project frame rate in the output (e.g 30 fps) or the opposite.
 
 The stretch mode has the effect of changing the length of output video by the inverse of the scale factor. If the scale factor is greater than $1$, the output will end before the end of the sequence on the timeline. If it is less than $1$, the output will end after the end of the sequence on the timeline. The ReframeRT effect must be lengthened to the necessary length to accommodate the scale factor. Change the length of the effect by clicking on the endpoint of the effect and dragging.
 
@@ -2241,6 +2263,8 @@ in stretch mode with a value less than $1$.
 
 \textit{Example:} you have a clip that you want to put in slow motion. The clip starts at $33.792\, seconds$ and ends at $39.765$. The clip is $5.973\, seconds$ long. You want to play it at $\frac{4}{10}^{ths}$ normal speed. You divide the clip length by the playback speed ($5.973\div0.4$) to get a final clip length of $14.9325\,seconds$. You create an in point at the start of your clip: $33.792\,seconds$. You put an out point $14.9325\,seconds$ later, at $48.7245\,seconds$ ($33.792 + 14.9325$). You attach a \texttt{ReframeRT} effect, set it to $0.4$ and stretch. You change the out point at $48.7245$ to an in point. You start your next clip after the slow motion effect at the $48.7245$ out point. You can do this without making any calculations by first applying the effect and then lengthening or shortening the bar to where the stretched movie ends.
 
+Now in the timeline we have the affected part of the plugin where we see the slow/fast effect, and the continuation of the timeline from where the plugin ends. We then have to select the interval on which the plugin acts and render it or transform it into a nested clip or nested asset. In this way we can replace or overlap it with the part of the timeline that originally included all of the part we wanted to slow down/speed up.
+
 \subsubsection*{Downsample}%
 \label{ssub:downsample}
 
@@ -2252,10 +2276,11 @@ Downsample mode changes the frame rate of the input as well as the number of the
 \label{ssub:other_important_points}
 
 \begin{itemize}
-    \item ReframeRT uses the fps indicated in \texttt{Settings$\rightarrow$ Format$\rightarrow$ fps} project and not the \texttt{fps} of the assets.
+    \item ReframeRT uses the fps indicated in \texttt{Settings $\rightarrow$ Format $\rightarrow$ fps} project and not the \texttt{fps} of the assets.
     \item It can be associated with Nested Clips.
-    \item As an alternative to ReframeRT you can use the \textit{speed curve}, or change the framerate in \texttt{Resources$\rightarrow$ info} and in the \texttt{Project}.
+    \item As an alternative to ReframeRT you can use the \textit{speed curve}, or change the framerate in \texttt{Resources $\rightarrow$ info} and in the \texttt{Project}.
     \item It is keyframmable.
+    \item ResampleRT with the same settings is used to act on audio tracks.
 \end{itemize}
 
 \subsection{Reroute}%
@@ -3560,6 +3585,7 @@ The following is a list of the integrated audio plug-ins.
   the data.
 \item [F\_astats]~\\Shows time domain statistics about audio
   frames.
+\item [F\_asubboost]~\\Boost subwoofer frequencies.
 \item [F\_atempo]~\\Adjusts audio tempo.
 \item [F\_atrim]~\\Pick one continuous section from the input,
   drop the rest.
@@ -3644,6 +3670,7 @@ The following is a list of the integrated audio plug-ins.
 
 The following is a list of the integrated video plug-ins.
 \begin{description}
+\item [F\_addroi]~\\Mark a region of interest in a video frame.
 \item [F\_amplify]~\\Amplify changes between successive video
   frames.
 \item [F\_atadenoise]~\\Apply an Adaptive Temporal Averaging
@@ -3651,6 +3678,7 @@ The following is a list of the integrated video plug-ins.
 \item [F\_avgblur]~\\Apply average blur filter.
 \item [F\_bbox]~\\Compute bounding box for each frame.
 \item [F\_bench]~\\Benchmarks part of a filtergraph.
+\item [F\_bilateral]~\\Apply bilateral filter, spatial smoothing while preserving edges.
 \item [F\_bitplaneoise]~\\Measure bit plane noise.
 \item [F\_blackdetect]~\\Detect video intervals that are
   (almost) black.
@@ -3659,6 +3687,7 @@ The following is a list of the integrated video plug-ins.
   settings you are able to change the power and the radius of the
   boxblur applied to luma, chroma and alpha.
 \item [F\_bwdif]~\\Deinterlaces the input image.
+\item [F\_cas]~\\Apply Contrast Adaptive Sharpen filter to video.
 \item [F\_chromakey]~\\Turns a certain color into
   transparency. Operates on YUV colors.
 \item [F\_ciescope]~\\Video CIE scope.
@@ -3677,6 +3706,7 @@ The following is a list of the integrated video plug-ins.
 \item [F\_cropdetect]~\\Auto-detect crop size.
 \item [F\_curves]~\\Adjust components curves.
 \item [F\_datascope]~\\Video data analysis.
+\item [F\_dblur]~\\Apply Directional blur filter.
 \item [F\_dctdnoiz]~\\Denoise frames using $2D DCT$.
 \item [F\_deband]~\\Debands video.
 \item [F\_deblock]~\\Deblocks video.
@@ -3741,6 +3771,7 @@ The following is a list of the integrated video plug-ins.
 \item [F\_fspp]~\\Applies Fast Simple Post-processing filter.
 \item [F\_gblur]~\\Apply Gaussian Blur filter.
 \item [F\_gradfun]~\\Debands video quickly using gradients.
+\item [F\_gradients]~\\Draws a transparent gradient.
 \item [F\_graphmonitor]~\\Show various filtergraph stats.
 \item [F\_greyedge]~\\Estimates scene illumination by grey
   edge assumption.
@@ -3782,6 +3813,7 @@ The following is a list of the integrated video plug-ins.
 \item [F\_mandelbrot]~\\Render a Mandelbrot fractal.
 \item [F\_mcdeint]~\\Applies motion compensating
   deinterlacing.
+\item [F\_median]~\\Pick median pixel from rectangle defined by radius.
 \item [F\_mestimate]~\\Generate motion vectors.
 \item [F\_mpdecimate]~\\Remove near-duplicate frames.
 \item [F\_mptestsrc]~\\Generate various test pattern.
@@ -3802,6 +3834,7 @@ The following is a list of the integrated video plug-ins.
 \item [F\_perms]~\\Set permissions for the output video frame.
 \item [F\_perspective]~\\Corrects the perspective of video.
 \item [F\_phase]~\\Phases shift fields.
+\item [F\_photosensitivity]~\\Filter out photosensitive epilepsy seizure-inducing flashes.
 \item [F\_pixscope]~\\Pixel data analysis for checking color
   and levels. It will display sample values of color channels.
 \item [F\_pp]~\\Filters video using libpostproc.
@@ -3825,6 +3858,8 @@ The following is a list of the integrated video plug-ins.
 \item [F\_sab]~\\Applies shape adaptive blur.
 \item [F\_scale]~\\Scale the input video size and/or convert
   the image format.
+\item [F\_scdet]~\\Detect video scene change.
+\item [F\_scroll]~\\Scroll input video horizontally and/or vertically by constant speed.
 \item [F\_separatefields]~\\Split input video frames into
   fields.
 \item [F\_setparams]~\\Force field, or color property for the
@@ -3834,6 +3869,7 @@ The following is a list of the integrated video plug-ins.
 \item [F\_showpalette]~\\Display frame palette.
 \item [F\_shuffleframes]~\\Shuffles video frames.
 \item [F\_shuffleplanes]~\\Shuffles video planes.
+\item [F\_sierpinski]~\\Generate a Sierpinski carpet/triangle fractal, and randomly pan around.
 \item [F\_signalstats]~\\Separates statistics from video
   analysis.
 \item [F\_smartblur]~\\Blurs the input video without impacting
@@ -3851,15 +3887,19 @@ The following is a list of the integrated video plug-ins.
 \item [F\_tblend]~\\Blend successive frames.
 \item [F\_testsrc]~\\Generate test pattern.
 \item [F\_testsrc2]~\\Generate another test pattern.
+\item [F\_thistogram]~\\Compute and draw a color distribution histogram for the input video across time.
 \item [F\_tile]~\\Tile several successive frames together.
 \item [F\_tinterlace]~\\Performs temporal field interlacing.
 \item [F\_tlut2]~\\Compute and apply a lookup table from 2
   successive frames.
+\item [F\_tmedian]~\\Pick median pixels from successive frames.
 \item [F\_tmix]~\\Mix successive video frames.
 \item [F\_transpose]~\\Transposes input video.
 \item [F\_unsharp]~\\Sharpen or blur the input videlo.
+\item [F\_untile]~\\Untile a frame into a sequence of frames.
 \item [F\_uspp]~\\Applies Ultra Simple/Slow Post-processing
   filter.
+\item [F\_v360]~\\Convert 360 videos between various formats.
 \item [F\_vaguedenoiser]~\\Applies a Wavelet based Denoiser.
 \item [F\_vectorscope]~\\Video vectorscope.
 \item [F\_vflip]~\\Flips the input video vertically.
@@ -3875,6 +3915,7 @@ The following is a list of the integrated video plug-ins.
 \item [F\_weave]~\\Weaves input video fields into frames.
 \item [F\_xbr]~\\Scales the input using $xBR$ algorithm.
 \item [F\_yadif]~\\Deinterlaces the input image.
+\item [F\_yaepblur]~\\Yet another edge preserving blur filter.
 \item [F\_yuvtestsrc]~\\Generate YUV test pattern.
 \item [F\_zoompan]~\\Applies Zoom \& Pan effect.
 \end{description}