more color management tips from Andrea
[goodguy/cin-manual-latex.git] / parts / Attributes.tex
index 56a24d655ac74e2d558301a37514cfee0a132b91..9f466c3638eae5665d830df04eb675e2851154d7 100644 (file)
@@ -198,7 +198,7 @@ range.  16 bit integers were used in the past and were too lossy and
 slow for the amount of improvement.  RGB float does not destroy
 information when used with YUV source footage and also supports
 brightness above 100\,\%.  Be aware that some effects, like
-Histogram, still clip above 100\,\% when in floating point.
+Histogram, still clip above 100\,\% when in floating point. See also \ref{sec:color_space_range_playback} and \ref{sec:conform_the_project}.
 
 \item[Interlace mode:] \index{interlacing} this is mostly obsolete in the modern digital
 age, but may be needed for older media such as that from broadcast
@@ -209,6 +209,49 @@ lines of interlaced source footage. The alternating lines missing on
 each output frame are interpolated.
 \end{description}
 
+\section{Best practice in pre-editing}%
+\label{sec:best_practice_pre_editing}
+
+\CGG{} supports the simultaneous presence in the Timeline of sources with different frame sizes and frame rates. However, audio/video synchronization problems may occur due to their different timing.\protect\footnote{credit to sge and Andrew Randrianasulu}
+Plugins that rely on the timing of each frame, for example \textit{Motion} and \textit{Interpolate} plugins, may have problems when used at the same time with engines which increase frame rate. Frame rate per definition cannot be increased without either duplicating some frames or generating them in some intelligent way. But to work reliably, the \textit{Motion} plugin requires access to all actual frames. These kinds of plugins (and also the rare cases of audio/video desync) explicitly require the \textit{Play every frame} option.
+
+There is no problem as long as the source fps, project fps, and destination fps are identical. In most cases, high frame rates such as 120 or 144 or any fps, will be just fine for \textit{Motion} provided that source footage all has the same frame rate.
+
+But when \textit{project} and \textit{source} frame rates are different (or \textit{project} and
+\textit{rendered} fps), then the \CGG{} engine has to either duplicate (interpolate) some frames or throw some away. Because of this, the audio tracks and the timeline get out of sync with such accelerated (or slowed down) video. And to make \textit{Motion} plugins reliably calculate interframe changes, you have to ensure the consistent frame numbers and frame properties.
+
+Generally, best practice is to perform the following sequence of preparations for video editing.
+
+\begin{enumerate}
+       \item Motion stabilization, and maybe some other preparations, to improve the quality of the source video is best done under the properties identical to the properties of the original video; it may be different codec, but same frame size and same frame rate.
+       \item If you need to alter the frame rate, for example because different source clips have different frame rates, then recode all the necessary clips to the same future project frame rate. Here frame sizes can still have different sizes, but frame rates should be all the same.
+       \item Whole editing: if you need to change frame rate of some restricted part, particularly when smooth acceleration/deceleration is needed, it can be done here. But if frame rate has to be changed only due to different source fps, it is better to do it during the preparation stage.
+\end{enumerate}
+
+\CGG{} does not have color management \index{color management}, but we can still give some general advice on how to set color spaces:
+
+\begin{enumerate}
+       \item Profiling and setting the monitor: \\
+       source: \textit{sRGB} $\rightarrow$ monitor: \textit{sRGB}  (we get a correct color reproduction) \\
+       source: \textit{sRGB} $\rightarrow$ monitor: \textit{rec709} (we get slightly dark colors) \\
+       source: \textit{sRGB} $\rightarrow$ monitor: \textit{DCI-P3} (we get over-saturated colors) \\
+       
+       source: \textit{rec709} $\rightarrow$ monitor: \textit{rec709} (we get a correct color reproduction) \\
+       source: \textit{rec709} $\rightarrow$ monitor: \textit{sRGB} (we get slightly faded colors) \\
+       source: \textit{rec709} $\rightarrow$ monitor: \textit{DCI-P3} (we get over-saturated colors)
+       \item It would be better to set the project as RGB(A)-FLOAT, allowing system performance, because it collects all available data and does not make rounding errors. If we can't afford it, starting from YUV type media it is better to set the project as YUV(A)8, so as not to have a darker rendering in the timeline. On the contrary, if we start from RGB signals, it is better to use RGB(A)8. If we don't display correctly on the timeline, we'll make adjustments from the wrong base (metamerism) and get false results.
+       \item Among the rendering options always set the values \\      
+       \texttt{color\_trc=...} (gamma correction) \\
+       \texttt{color\_primaries=...} (gamut) \\
+       \texttt{colorspace=...} (color spaces conversion, more depth-color); \\
+       or \\
+       \texttt{colormatrix=...} (color spaces conversion, faster).
+       
+       These are only metadata that do not affect rendering but when the file is read by a player later they are used to reproduce the colors without errors.
+\end{enumerate}
+
+For more tips on how \CGG{} processes colors on the timeline see  \nameref{sec:color_space_range_playback} and \nameref{sec:conform_the_project}.
+
 %%% Local Variables:
 %%% mode: latex
 %%% TeX-master: "../CinelerraGG_Manual"