Files
videobeaux/docs/_site/programs/utilities/gamma_fix.html
2025-12-07 22:04:44 -05:00

181 lines
8.0 KiB
HTML
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html>
<html lang="en-US">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- Begin Jekyll SEO tag v2.8.0 -->
<title>gamma_fix</title>
<meta name="generator" content="Jekyll v3.10.0" />
<meta property="og:title" content="gamma_fix" />
<meta property="og:locale" content="en_US" />
<meta name="description" content="The friendly multilateral video toolkit built for artists by artists." />
<meta property="og:description" content="The friendly multilateral video toolkit built for artists by artists." />
<link rel="canonical" href="http://localhost:4000/videobeaux/programs/utilities/gamma_fix.html" />
<meta property="og:url" content="http://localhost:4000/videobeaux/programs/utilities/gamma_fix.html" />
<meta property="og:type" content="website" />
<meta name="twitter:card" content="summary" />
<meta property="twitter:title" content="gamma_fix" />
<script type="application/ld+json">
{"@context":"https://schema.org","@type":"WebPage","description":"The friendly multilateral video toolkit built for artists by artists.","headline":"gamma_fix","publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"http://localhost:4000/videobeaux/assets/img/videobeaux.png"}},"url":"http://localhost:4000/videobeaux/programs/utilities/gamma_fix.html"}</script>
<!-- End Jekyll SEO tag -->
<link rel="stylesheet" href="/videobeaux/assets/css/style.css?v=5e23701ed3967d38bab12937d79f95fae74b2a53">
<!--[if lt IE 9]>
<script src="https://cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.3/html5shiv.min.js"></script>
<![endif]-->
<!-- start custom head snippets, customize with your own _includes/head-custom.html file -->
<!-- Setup Google Analytics -->
<!-- You can set your favicon here -->
<!-- link rel="shortcut icon" type="image/x-icon" href="/videobeaux/favicon.ico" -->
<!-- end custom head snippets -->
</head>
<body>
<div class="wrapper">
<header>
<h1><a href="http://localhost:4000/videobeaux/">videobeaux</a></h1>
<img src="/videobeaux/assets/img/videobeaux.png" alt="Logo" />
<p>The friendly multilateral video toolkit built for artists by artists.</p>
<p class="view"><a href="https://github.com/schwwaaa/videobeaux">View the Project on GitHub <small>schwwaaa/videobeaux</small></a></p>
</header>
<section>
<h1 id="gamma_fix">gamma_fix</h1>
<p>:contentReference[oaicite:1]{index=1}</p>
<h2 id="description">Description</h2>
<p>Normalizes gamma, brightness, and exposure levels for broadcast-safe or web-safe consistency across diverse footage.</p>
<h2 id="purpose">Purpose</h2>
<p><code class="language-plaintext highlighter-rouge">gamma_fix</code> is designed to correct inconsistent exposure, contrast, and gamma shifts that often appear when mixing footage from multiple cameras, phones, archives, or lighting conditions.<br />
It provides predictable luminance normalization suitable for:</p>
<ul>
<li>web delivery,</li>
<li>broadcast pipelines,</li>
<li>archival stabilization,</li>
<li>color prep before LUTs or grading.</li>
</ul>
<h2 id="how-it-works">How It Works</h2>
<ol>
<li><strong>Luma Analysis</strong><br />
The program evaluates input brightness and computes adjustments toward <code class="language-plaintext highlighter-rouge">target_yavg</code>.</li>
<li><strong>Contrast Shaping</strong><br />
<code class="language-plaintext highlighter-rouge">min_contrast</code> and <code class="language-plaintext highlighter-rouge">max_contrast</code> constrain the allowed contrast stretch, preventing overcorrection.</li>
<li><strong>Gamma Adjustment</strong><br />
A user-specified gamma curve can brighten or darken midtones without clipping shadows or highlights.</li>
<li><strong>Saturation Shaping</strong><br />
<code class="language-plaintext highlighter-rouge">sat</code> provides global saturation control to compensate for washed-out or overly vivid sources.</li>
<li><strong>Legalization</strong><br />
When enabled, <code class="language-plaintext highlighter-rouge">legalize</code> ensures output luminance stays within broadcast-safe IRE ranges.</li>
<li><strong>Encoding</strong><br />
Output is encoded using the selected codec, preset, and CRF.</li>
</ol>
<h2 id="program-template">Program Template</h2>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>videobeaux -P gamma_fix \
-i input.mp4 \
-o output.mp4 \
--target_yavg VALUE \
--min_contrast VALUE \
--max_contrast VALUE \
--gamma VALUE \
--sat VALUE \
--legalize VALUE \
--vcodec VALUE \
--crf VALUE \
--preset VALUE \
--acodec VALUE \
--ab VALUE
</code></pre></div></div>
<h2 id="arguments">Arguments</h2>
<ul>
<li><strong>target_yavg</strong> — Target brightness (luma average) to normalize toward.</li>
<li><strong>min_contrast</strong> — Minimum allowed contrast level after adjustment.</li>
<li><strong>max_contrast</strong> — Maximum allowed contrast level after adjustment.</li>
<li><strong>gamma</strong> — Gamma correction multiplier for shaping midtones.</li>
<li><strong>sat</strong> — Saturation adjustment factor.</li>
<li><strong>legalize</strong> — Ensures output levels conform to broadcast-safe luminance ranges.</li>
<li><strong>vcodec</strong> — Video codec to use for output (e.g., <code class="language-plaintext highlighter-rouge">libx264</code>).</li>
<li><strong>crf</strong> — Constant Rate Factor controlling video quality.</li>
<li><strong>preset</strong> — Encoding speed/quality preset.</li>
<li><strong>acodec</strong> — Audio codec.</li>
<li><strong>ab</strong> — Audio bitrate.</li>
</ul>
<h2 id="real-world-example">Real World Example</h2>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>videobeaux -P gamma_fix \
-i myvideo.mp4 \
-o gamma_fix_styled.mp4 \
--target_yavg EXAMPLE \
--min_contrast EXAMPLE \
--max_contrast EXAMPLE \
--gamma EXAMPLE \
--sat EXAMPLE \
--legalize EXAMPLE \
--vcodec EXAMPLE \
--crf EXAMPLE \
--preset EXAMPLE \
--acodec EXAMPLE \
--ab EXAMPLE
</code></pre></div></div>
<h2 id="technical-notes">Technical Notes</h2>
<ul>
<li>Gamma correction subtly adjusts midtone brightness without flattening highlights.</li>
<li>Luma averaging helps normalize footage from mixed sources with inconsistent exposure.</li>
<li>Excessive contrast stretching may introduce noise—use moderate ranges for natural results.</li>
<li>Broadcast-safe legalization prevents clipped peaks in deliverables meant for TV or streaming platforms.</li>
<li>Saturation adjustments apply globally; fine-grained color correction should be done in grading tools.</li>
</ul>
<h2 id="recommended-usage">Recommended Usage</h2>
<ul>
<li>Normalizing multi-camera footage before editing.</li>
<li>Preparing consistent brightness for LUT workflows or grading.</li>
<li>Fixing underexposed or flat-looking archive material.</li>
<li>Making levels compliant for broadcast delivery requirements.</li>
</ul>
<h2 id="quality-tips">Quality Tips</h2>
<ul>
<li>Start with small gamma adjustments for natural tonal shifts.</li>
<li>Set <code class="language-plaintext highlighter-rouge">target_yavg</code> close to typical mid-gray values (around 4055% normalized luma).</li>
<li>Use moderate <code class="language-plaintext highlighter-rouge">sat</code> boosts (1.051.15) to avoid color clipping.</li>
<li>Lower CRF (1418) retains quality when making heavy tonal corrections.</li>
<li>Always inspect waveform before and after applying legalization.</li>
</ul>
</section>
<footer>
<p>This project is maintained by <a href="https://github.com/schwwaaa">schwwaaa</a></p>
<p><small>Hosted on GitHub Pages &mdash; Theme by <a href="https://github.com/orderedlist">orderedlist</a></small></p>
</footer>
</div>
<script src="/videobeaux/assets/js/scale.fix.js"></script>
</body>
</html>