add URLs
· 1 year ago
f915f258f19d78082a9cfe7bb2bc0f0867f7e78a
Parent:
b203308c7
1 file changed +75 −77
- compression-algorithms.html +75 −77
Diff
--- a/compression-algorithms.html +++ b/compression-algorithms.html @@ -310,6 +310,7 @@ </style> </head> + <body> <header class="page-header"> <h1><i class="bi bi-file-earmark-zip-fill"></i> Data Compression Cheatsheet</h1> @@ -348,33 +349,33 @@ </tr> </thead> <tbody> - <tr><td><strong>RLE</strong></td><td>Lossless</td><td>Simple graphics, faxes</td><td>Low-Med</td><td>Fast/Fast</td><td>Simple, good for repeated data</td><td>(BMP, TIFF)</td></tr> - <tr><td><strong>Huffman</strong></td><td>Lossless</td><td>Text, component</td><td>Med</td><td>Med/Med</td><td>Optimal per-symbol</td><td>(JPEG, Deflate)</td></tr> - <tr><td><strong>LZ77/LZ78</strong></td><td>Lossless</td><td>General purpose, text</td><td>Med-High</td><td>Med/Med</td><td>Dictionary-based, adaptive</td><td>(ZIP, GZIP)</td></tr> - <tr><td><strong>LZW</strong></td><td>Lossless</td><td>GIF images, <code>compress</code></td><td>Med</td><td>Med/Med</td><td>Dictionary-based</td><td>.gif</td></tr> - <tr><td><strong>bzip2</strong></td><td>Lossless</td><td>General file compression</td><td>High</td><td>Slow/Slow</td><td>BWT, good ratio but slow</td><td>.bz2</td></tr> - <tr><td><strong>LZMA/LZMA2</strong></td><td>Lossless</td><td>Archives (7z, xz)</td><td>Very High</td><td>Slow/Med</td><td>Excellent ratio, high memory</td><td>.7z, .xz</td></tr> - <tr><td><strong>Deflate</strong></td><td>Lossless</td><td>General (ZIP, GZIP, PNG)</td><td>Med-High</td><td>Med/Fast</td><td>LZ77 + Huffman, good balance</td><td>.zip, .gz, .png</td></tr> - <tr><td><strong>Arithmetic</strong></td><td>Lossless</td><td>Component</td><td>Med-High</td><td>Slow/Med</td><td>Near-optimal, complex</td><td>(JPEG2000)</td></tr> - <tr><td><strong>Brotli</strong></td><td>Lossless</td><td>Web content (text, fonts)</td><td>High-V.High</td><td>Slow/Fast</td><td>Excellent for text</td><td>.br</td></tr> - <tr><td><strong>Zstandard (Zstd)</strong></td><td>Lossless</td><td>General, databases, real-time</td><td>High-V.High</td><td>V.Fast/V.Fast</td><td>Fast, flexible, modern</td><td>.zst</td></tr> - <tr><td><strong>FLAC</strong></td><td>Lossless</td><td>Audio archival</td><td>Med (audio)</td><td>Med/Fast</td><td>Lossless audio</td><td>.flac</td></tr> - <tr><td><strong>ALAC</strong></td><td>Lossless</td><td>Audio (Apple ecosystem)</td><td>Med (audio)</td><td>Med/Fast</td><td>Apple lossless audio</td><td>.m4a</td></tr> - <tr><td><strong>PPM</strong></td><td>Lossless</td><td>Text, high ratio</td><td>Very High</td><td>Slow/Slow</td><td>Context modeling, high ratio</td><td>-</td></tr> - <tr><td><strong>JPEG</strong></td><td>Lossy</td><td>Photographic images</td><td>High</td><td>Med/Fast</td><td>Widely supported for photos</td><td>.jpg, .jpeg</td></tr> - <tr><td><strong>HEIC</strong></td><td>Lossy (primarily)</td><td>Images (Apple default)</td><td>High</td><td>Med/Fast</td><td>Efficient, supports advanced features</td><td>.heic, .heif</td></tr> - <tr><td><strong>WebP</strong></td><td>Lossy/Lossless</td><td>Web images</td><td>High (lossy)</td><td>Med/Fast</td><td>Versatile, animation, transparency</td><td>.webp</td></tr> - <tr><td><strong>AVIF</strong></td><td>Lossy/Lossless</td><td>Web images (next-gen)</td><td>Very High</td><td>Slow/Med</td><td>Excellent ratio/quality, HDR</td><td>.avif</td></tr> - <tr><td><strong>JPEG 2000</strong></td><td>Lossy/Lossless</td><td>Medical/archival images</td><td>V.High</td><td>Slow/Med</td><td>Better quality than JPEG, scalable</td><td>.jp2, .j2k</td></tr> - <tr><td><strong>ProRes</strong></td><td>Lossy (visually)</td><td>Professional video editing</td><td>Low-Med</td><td>Fast/Fast (editing)</td><td>High quality, edit-friendly</td><td>.mov</td></tr> - <tr><td><strong>H.264/AVC</strong></td><td>Lossy</td><td>Video (Blu-ray, streaming)</td><td>V.High</td><td>Med/Fast</td><td>Excellent quality/ratio</td><td>.mp4, .mkv</td></tr> - <tr><td><strong>H.265/HEVC</strong></td><td>Lossy</td><td>Video (4K/UHD, streaming)</td><td>V.High</td><td>Slow/Fast</td><td>~2x efficiency of H.264</td><td>.mp4, .mkv</td></tr> - <tr><td><strong>VP9</strong></td><td>Lossy</td><td>Video (web streaming, YouTube)</td><td>V.High</td><td>Med/Fast</td><td>Royalty-free, H.265 competitor</td><td>.webm, .mp4</td></tr> - <tr><td><strong>AV1</strong></td><td>Lossy</td><td>Video (web streaming)</td><td>V.High</td><td>V.Slow/Med</td><td>Royalty-free, excellent compression</td><td>.mkv, .mp4</td></tr> - <tr><td><strong>MP3</strong></td><td>Lossy</td><td>Audio (music)</td><td>High</td><td>Fast/V.Fast</td><td>Ubiquitous for music</td><td>.mp3</td></tr> - <tr><td><strong>AAC</strong></td><td>Lossy</td><td>Audio (streaming, Apple)</td><td>V.High</td><td>Fast/Fast</td><td>Better than MP3 at same bitrate</td><td>.aac, .m4a</td></tr> - <tr><td><strong>Opus</strong></td><td>Lossy</td><td>Audio (VoIP, streaming, web)</td><td>V.High</td><td>Fast/Fast</td><td>Royalty-free, versatile, low latency</td><td>.opus</td></tr> - <tr><td><strong>Vorbis</strong></td><td>Lossy</td><td>Audio (open-source applications)</td><td>High</td><td>Fast/Fast</td><td>Royalty-free, good quality</td><td>.ogg, .oga</td></tr> + <tr><td><strong><a href="https://en.wikipedia.org/wiki/Run-length_encoding" target="_blank">RLE</a></strong></td><td>Lossless</td><td>Simple graphics, faxes</td><td>Low-Med</td><td>Fast/Fast</td><td>Simple, good for repeated data</td><td>(BMP, TIFF)</td></tr> + <tr><td><strong><a href="https://en.wikipedia.org/wiki/Huffman_coding" target="_blank">Huffman</a></strong></td><td>Lossless</td><td>Text, component</td><td>Med</td><td>Med/Med</td><td>Optimal per-symbol</td><td>(JPEG, Deflate)</td></tr> + <tr><td><strong><a href="https://en.wikipedia.org/wiki/LZ77_and_LZ78" target="_blank">LZ77/LZ78</a></strong></td><td>Lossless</td><td>General purpose, text</td><td>Med-High</td><td>Med/Med</td><td>Dictionary-based, adaptive</td><td>(ZIP, GZIP)</td></tr> + <tr><td><strong><a href="https://en.wikipedia.org/wiki/Lempel%E2%80%93Ziv%E2%80%93Welch" target="_blank">LZW</a></strong></td><td>Lossless</td><td>GIF images, <code>compress</code></td><td>Med</td><td>Med/Med</td><td>Dictionary-based</td><td>.gif</td></tr> + <tr><td><strong><a href="https://en.wikipedia.org/wiki/Bzip2" target="_blank">bzip2</a></strong></td><td>Lossless</td><td>General file compression</td><td>High</td><td>Slow/Slow</td><td>BWT, good ratio but slow</td><td>.bz2</td></tr> + <tr><td><strong><a href="https://en.wikipedia.org/wiki/Lempel%E2%80%93Ziv%E2%80%93Markov_chain_algorithm" target="_blank">LZMA/LZMA2</a></strong></td><td>Lossless</td><td>Archives (7z, xz)</td><td>Very High</td><td>Slow/Med</td><td>Excellent ratio, high memory</td><td>.7z, .xz</td></tr> + <tr><td><strong><a href="https://en.wikipedia.org/wiki/DEFLATE" target="_blank">Deflate</a></strong></td><td>Lossless</td><td>General (ZIP, GZIP, PNG)</td><td>Med-High</td><td>Med/Fast</td><td>LZ77 + Huffman, good balance</td><td>.zip, .gz, .png</td></tr> + <tr><td><strong><a href="https://en.wikipedia.org/wiki/Arithmetic_coding" target="_blank">Arithmetic</a></strong></td><td>Lossless</td><td>Component</td><td>Med-High</td><td>Slow/Med</td><td>Near-optimal, complex</td><td>(JPEG2000)</td></tr> + <tr><td><strong><a href="https://en.wikipedia.org/wiki/Brotli" target="_blank">Brotli</a></strong></td><td>Lossless</td><td>Web content (text, fonts)</td><td>High-V.High</td><td>Slow/Fast</td><td>Excellent for text</td><td>.br</td></tr> + <tr><td><strong><a href="https://en.wikipedia.org/wiki/Zstd" target="_blank">Zstandard (Zstd)</a></strong></td><td>Lossless</td><td>General, databases, real-time</td><td>High-V.High</td><td>V.Fast/V.Fast</td><td>Fast, flexible, modern</td><td>.zst</td></tr> + <tr><td><strong><a href="https://en.wikipedia.org/wiki/FLAC" target="_blank">FLAC</a></strong></td><td>Lossless</td><td>Audio archival</td><td>Med (audio)</td><td>Med/Fast</td><td>Lossless audio</td><td>.flac</td></tr> + <tr><td><strong><a href="https://en.wikipedia.org/wiki/Apple_Lossless_Audio_Codec" target="_blank">ALAC</a></strong></td><td>Lossless</td><td>Audio (Apple ecosystem)</td><td>Med (audio)</td><td>Med/Fast</td><td>Apple lossless audio</td><td>.m4a</td></tr> + <tr><td><strong><a href="https://en.wikipedia.org/wiki/Prediction_by_partial_matching" target="_blank">PPM</a></strong></td><td>Lossless</td><td>Text, high ratio</td><td>Very High</td><td>Slow/Slow</td><td>Context modeling, high ratio</td><td>-</td></tr> + <tr><td><strong><a href="https://en.wikipedia.org/wiki/JPEG" target="_blank">JPEG</a></strong></td><td>Lossy</td><td>Photographic images</td><td>High</td><td>Med/Fast</td><td>Widely supported for photos</td><td>.jpg, .jpeg</td></tr> + <tr><td><strong><a href="https://en.wikipedia.org/wiki/High_Efficiency_Image_File_Format#HEIC:_HEVC_in_HEIF" target="_blank">HEIC</a></strong></td><td>Lossy (primarily)</td><td>Images (Apple default)</td><td>High</td><td>Med/Fast</td><td>Efficient, supports advanced features</td><td>.heic, .heif</td></tr> + <tr><td><strong><a href="https://en.wikipedia.org/wiki/WebP" target="_blank">WebP</a></strong></td><td>Lossy/Lossless</td><td>Web images</td><td>High (lossy)</td><td>Med/Fast</td><td>Versatile, animation, transparency</td><td>.webp</td></tr> + <tr><td><strong><a href="https://en.wikipedia.org/wiki/AVIF" target="_blank">AVIF</a></strong></td><td>Lossy/Lossless</td><td>Web images (next-gen)</td><td>Very High</td><td>Slow/Med</td><td>Excellent ratio/quality, HDR</td><td>.avif</td></tr> + <tr><td><strong><a href="https://en.wikipedia.org/wiki/JPEG_2000" target="_blank">JPEG 2000</a></strong></td><td>Lossy/Lossless</td><td>Medical/archival images</td><td>V.High</td><td>Slow/Med</td><td>Better quality than JPEG, scalable</td><td>.jp2, .j2k</td></tr> + <tr><td><strong><a href="https://en.wikipedia.org/wiki/Apple_ProRes" target="_blank">ProRes</a></strong></td><td>Lossy (visually)</td><td>Professional video editing</td><td>Low-Med</td><td>Fast/Fast (editing)</td><td>High quality, edit-friendly</td><td>.mov</td></tr> + <tr><td><strong><a href="https://en.wikipedia.org/wiki/Advanced_Video_Coding" target="_blank">H.264/AVC</a></strong></td><td>Lossy</td><td>Video (Blu-ray, streaming)</td><td>V.High</td><td>Med/Fast</td><td>Excellent quality/ratio</td><td>.mp4, .mkv</td></tr> + <tr><td><strong><a href="https://en.wikipedia.org/wiki/High_Efficiency_Video_Coding" target="_blank">H.265/HEVC</a></strong></td><td>Lossy</td><td>Video (4K/UHD, streaming)</td><td>V.High</td><td>Slow/Fast</td><td>~2x efficiency of H.264</td><td>.mp4, .mkv</td></tr> + <tr><td><strong><a href="https://en.wikipedia.org/wiki/VP9" target="_blank">VP9</a></strong></td><td>Lossy</td><td>Video (web streaming, YouTube)</td><td>V.High</td><td>Med/Fast</td><td>Royalty-free, H.265 competitor</td><td>.webm, .mp4</td></tr> + <tr><td><strong><a href="https://en.wikipedia.org/wiki/AV1" target="_blank">AV1</a></strong></td><td>Lossy</td><td>Video (web streaming)</td><td>V.High</td><td>V.Slow/Med</td><td>Royalty-free, excellent compression</td><td>.mkv, .mp4</td></tr> + <tr><td><strong><a href="https://en.wikipedia.org/wiki/MP3" target="_blank">MP3</a></strong></td><td>Lossy</td><td>Audio (music)</td><td>High</td><td>Fast/V.Fast</td><td>Ubiquitous for music</td><td>.mp3</td></tr> + <tr><td><strong><a href="https://en.wikipedia.org/wiki/Advanced_Audio_Coding" target="_blank">AAC</a></strong></td><td>Lossy</td><td>Audio (streaming, Apple)</td><td>V.High</td><td>Fast/Fast</td><td>Better than MP3 at same bitrate</td><td>.aac, .m4a</td></tr> + <tr><td><strong><a href="https://en.wikipedia.org/wiki/Opus_(audio_format)" target="_blank">Opus</a></strong></td><td>Lossy</td><td>Audio (VoIP, streaming, web)</td><td>V.High</td><td>Fast/Fast</td><td>Royalty-free, versatile, low latency</td><td>.opus</td></tr> + <tr><td><strong><a href="https://en.wikipedia.org/wiki/Vorbis" target="_blank">Vorbis</a></strong></td><td>Lossy</td><td>Audio (open-source applications)</td><td>High</td><td>Fast/Fast</td><td>Royalty-free, good quality</td><td>.ogg, .oga</td></tr> </tbody> </table> </div> @@ -391,7 +392,7 @@ <div class="card-body"> <h5><i class="bi bi-bullseye"></i> Core Concepts</h5> <div class="card-content-wrapper"> - <p class="summary">Fundamental ideas like "What is compression?", its necessity, entropy, and types of redundancy.</p> + <p class="summary">Fundamental ideas like "What is compression?", its necessity, <a href="https://en.wikipedia.org/wiki/Entropy_(information_theory)" target="_blank">entropy</a>, and types of redundancy.</p> <button class="btn details-toggle" type="button" data-bs-toggle="collapse" data-bs-target="#collapseCoreConcepts" aria-expanded="false" aria-controls="collapseCoreConcepts"> Details <i class="bi bi-chevron-down"></i> </button> @@ -408,7 +409,7 @@ </ul> <h6>Information Theory Basics:</h6> <ul> - <li><strong>Entropy:</strong> A measure of the inherent randomness or uncertainty in data. Represents the theoretical lower bound for compression.</li> + <li><strong><a href="https://en.wikipedia.org/wiki/Entropy_(information_theory)" target="_blank">Entropy</a>:</strong> A measure of the inherent randomness or uncertainty in data. Represents the theoretical lower bound for compression.</li> <li><strong>Redundancy:</strong> Information that is repeated or predictable. Types include: <ul> <li><span class="term" data-bs-toggle="tooltip" title="Correlation between neighboring data points (e.g., pixels in an image).">Spatial Redundancy</span></li> @@ -428,7 +429,7 @@ <div class="card-body"> <h5><i class="bi bi-cone-striped"></i> Limits of Compression</h5> <div class="card-content-wrapper"> - <p class="summary">Understanding incompressibility and the theoretical boundaries set by Rate-Distortion Theory for lossy compression.</p> + <p class="summary">Understanding incompressibility and the theoretical boundaries set by <a href="https://en.wikipedia.org/wiki/Rate%E2%80%93distortion_theory" target="_blank">Rate-Distortion Theory</a> for lossy compression.</p> <button class="btn details-toggle" type="button" data-bs-toggle="collapse" data-bs-target="#collapseLimitsCompression" aria-expanded="false" aria-controls="collapseLimitsCompression"> Details <i class="bi bi-chevron-down"></i> </button> @@ -437,7 +438,7 @@ <div class="collapse collapse-content" id="collapseLimitsCompression"> <h6>Incompressibility</h6> <p>Truly random data (or data that appears random, like encrypted or already well-compressed data) cannot be significantly compressed further by lossless methods. Applying a lossless compressor might even slightly increase size due to overhead.</p> - <h6>Rate-Distortion Theory (Lossy)</h6> + <h6><a href="https://en.wikipedia.org/wiki/Rate%E2%80%93distortion_theory" target="_blank">Rate-Distortion Theory</a> (Lossy)</h6> <p>A mathematical framework defining the trade-off between compression <span class="term" data-bs-toggle="tooltip" title="Number of bits used to represent the data after compression.">rate</span> (bits used) and <span class="term" data-bs-toggle="tooltip" title="The amount of information lost or fidelity degradation in lossy compression.">distortion</span> (loss of fidelity). It sets the minimum achievable rate for a given distortion level, guiding lossy codec design.</p> </div> </div> @@ -504,7 +505,7 @@ <div class="card-body"> <h5><i class="bi bi-tools"></i> Basic Principles/Techniques</h5> <div class="card-content-wrapper"> - <p class="summary">Underlying methods used in many algorithms: Dictionary-based, Statistical, Transform, RLE, Predictive, Context Modeling, BWT, Delta Coding.</p> + <p class="summary">Underlying methods used in many algorithms: Dictionary-based, Statistical, Transform, <a href="https://en.wikipedia.org/wiki/Run-length_encoding" target="_blank">RLE</a>, Predictive, Context Modeling, BWT, Delta Coding.</p> <button class="btn details-toggle" type="button" data-bs-toggle="collapse" data-bs-target="#collapsePrinciples" aria-expanded="false" aria-controls="collapsePrinciples"> Details <i class="bi bi-chevron-down"></i> </button> @@ -515,7 +516,7 @@ <li><strong>Dictionary-Based:</strong> Replaces sequences with references (e.g., LZ77, LZW). <div class="placeholder-diagram">Diagram: Sliding Window & Dictionary</div></li> <li><strong>Statistical Modeling:</strong> Shorter codes for frequent symbols (e.g., Huffman, Arithmetic). <div class="placeholder-diagram">Diagram: Huffman Tree Example</div></li> <li><strong>Transform Coding:</strong> Converts data to a more compressible domain (e.g., DCT in JPEG). <div class="placeholder-diagram">Diagram: DCT Block Transformation</div></li> - <li><strong>Run-Length Encoding (RLE):</strong> Replaces sequences of identical symbols (e.g., <code>AAAAA</code> -> <code>5A</code>).</li> + <li><strong><a href="https://en.wikipedia.org/wiki/Run-length_encoding" target="_blank">Run-Length Encoding (RLE)</a>:</strong> Replaces sequences of identical symbols (e.g., <code>AAAAA</code> -> <code>5A</code>).</li> <li><strong>Predictive Coding:</strong> Encodes difference from predicted value.</li> <li><strong>Context Modeling:</strong> Estimates symbol probability based on preceding symbols.</li> <li><strong>Burrows-Wheeler Transform (BWT):</strong> Reversible transform grouping similar characters (used in bzip2).</li> @@ -536,7 +537,7 @@ <div class="col-lg-4 col-md-6 mb-4"> <div class="info-card" data-category="lossless"> <div class="card-body"> - <h5><i class="bi bi-front"></i> Run-Length Encoding (RLE) <span class="context-tag">Classic</span></h5> + <h5><i class="bi bi-front"></i> <a href="https://en.wikipedia.org/wiki/Run-length_encoding" target="_blank" style="color:white; text-decoration:underline;">Run-Length Encoding (RLE)</a> <span class="context-tag">Classic</span></h5> <div class="card-content-wrapper"> <p class="summary">Simple technique replacing consecutive identical data values with a count and the value.</p> <button class="btn details-toggle" type="button" data-bs-toggle="collapse" data-bs-target="#collapseRLE" aria-expanded="false" aria-controls="collapseRLE"> @@ -557,7 +558,7 @@ <div class="col-lg-4 col-md-6 mb-4"> <div class="info-card" data-category="lossless"> <div class="card-body"> - <h5><i class="bi bi-tree-fill"></i> Huffman Coding <span class="context-tag">Classic</span></h5> + <h5><i class="bi bi-tree-fill"></i> <a href="https://en.wikipedia.org/wiki/Huffman_coding" target="_blank" style="color:white; text-decoration:underline;">Huffman Coding</a> <span class="context-tag">Classic</span></h5> <div class="card-content-wrapper"> <p class="summary">Assigns variable-length codes based on symbol frequencies; more frequent symbols get shorter codes.</p> <button class="btn details-toggle" type="button" data-bs-toggle="collapse" data-bs-target="#collapseHuffman" aria-expanded="false" aria-controls="collapseHuffman"> @@ -578,7 +579,7 @@ <div class="col-lg-4 col-md-6 mb-4"> <div class="info-card" data-category="lossless"> <div class="card-body"> - <h5><i class="bi bi-book-fill"></i> LZ77 & LZ78 <span class="context-tag">Classic</span></h5> + <h5><i class="bi bi-book-fill"></i> <a href="https://en.wikipedia.org/wiki/LZ77_and_LZ78" target="_blank" style="color:white; text-decoration:underline;">LZ77 & LZ78</a> <span class="context-tag">Classic</span></h5> <div class="card-content-wrapper"> <p class="summary">Dictionary-based algorithms. LZ77 uses a sliding window; LZ78 builds an explicit dictionary.</p> <button class="btn details-toggle" type="button" data-bs-toggle="collapse" data-bs-target="#collapseLZ7778" aria-expanded="false" aria-controls="collapseLZ7778"> @@ -598,7 +599,7 @@ <div class="col-lg-4 col-md-6 mb-4"> <div class="info-card" data-category="lossless"> <div class="card-body"> - <h5><i class="bi bi-journals"></i> LZW (Lempel-Ziv-Welch) <span class="context-tag">Classic</span></h5> + <h5><i class="bi bi-journals"></i> <a href="https://en.wikipedia.org/wiki/Lempel%E2%80%93Ziv%E2%80%93Welch" target="_blank" style="color:white; text-decoration:underline;">LZW (Lempel-Ziv-Welch)</a> <span class="context-tag">Classic</span></h5> <div class="card-content-wrapper"> <p class="summary">Builds a dictionary from data; outputs dictionary codes. Used in GIF.</p> <button class="btn details-toggle" type="button" data-bs-toggle="collapse" data-bs-target="#collapseLZW" aria-expanded="false" aria-controls="collapseLZW"> @@ -619,7 +620,7 @@ <div class="col-lg-4 col-md-6 mb-4"> <div class="info-card" data-category="lossless"> <div class="card-body"> - <h5><i class="bi bi-arrow-repeat"></i> bzip2 <span class="context-tag">Archive</span></h5> + <h5><i class="bi bi-arrow-repeat"></i> <a href="https://en.wikipedia.org/wiki/Bzip2" target="_blank" style="color:white; text-decoration:underline;">bzip2</a> <span class="context-tag">Archive</span></h5> <div class="card-content-wrapper"> <p class="summary">Uses Burrows-Wheeler Transform (BWT) followed by MTF and Huffman coding. Good ratio, but slow.</p> <button class="btn details-toggle" type="button" data-bs-toggle="collapse" data-bs-target="#collapseBzip2" aria-expanded="false" aria-controls="collapseBzip2"> @@ -640,7 +641,7 @@ <div class="col-lg-4 col-md-6 mb-4"> <div class="info-card" data-category="lossless"> <div class="card-body"> - <h5><i class="bi bi-stack"></i> LZMA / LZMA2 <span class="context-tag">Archive</span></h5> + <h5><i class="bi bi-stack"></i> <a href="https://en.wikipedia.org/wiki/Lempel%E2%80%93Ziv%E2%80%93Markov_chain_algorithm" target="_blank" style="color:white; text-decoration:underline;">LZMA / LZMA2</a> <span class="context-tag">Archive</span></h5> <div class="card-content-wrapper"> <p class="summary">LZ77 variant with large dictionary and range encoding. Very high ratios, but can be slow and memory-intensive.</p> <button class="btn details-toggle" type="button" data-bs-toggle="collapse" data-bs-target="#collapseLZMA" aria-expanded="false" aria-controls="collapseLZMA"> @@ -661,7 +662,7 @@ <div class="col-lg-4 col-md-6 mb-4"> <div class="info-card" data-category="lossless"> <div class="card-body"> - <h5><i class="bi bi-file-zip-fill"></i> Deflate (LZ77 + Huffman) <span class="context-tag">General</span></h5> + <h5><i class="bi bi-file-zip-fill"></i> <a href="https://en.wikipedia.org/wiki/DEFLATE" target="_blank" style="color:white; text-decoration:underline;">Deflate</a> (LZ77 + Huffman) <span class="context-tag">General</span></h5> <div class="card-content-wrapper"> <p class="summary">Combines LZ77 and Huffman coding. Widely used in ZIP, GZIP, PNG.</p> <button class="btn details-toggle" type="button" data-bs-toggle="collapse" data-bs-target="#collapseDeflate" aria-expanded="false" aria-controls="collapseDeflate"> @@ -682,7 +683,7 @@ <div class="col-lg-4 col-md-6 mb-4"> <div class="info-card" data-category="lossless"> <div class="card-body"> - <h5><i class="bi bi-calculator-fill"></i> Arithmetic Coding <span class="context-tag">Advanced</span></h5> + <h5><i class="bi bi-calculator-fill"></i> <a href="https://en.wikipedia.org/wiki/Arithmetic_coding" target="_blank" style="color:white; text-decoration:underline;">Arithmetic Coding</a> <span class="context-tag">Advanced</span></h5> <div class="card-content-wrapper"> <p class="summary">Encodes entire message as a single fraction. Achieves near-optimal compression.</p> <button class="btn details-toggle" type="button" data-bs-toggle="collapse" data-bs-target="#collapseArithmetic" aria-expanded="false" aria-controls="collapseArithmetic"> @@ -702,7 +703,7 @@ <div class="col-lg-4 col-md-6 mb-4"> <div class="info-card" data-category="lossless"> <div class="card-body"> - <h5><i class="bi bi-wind"></i> Brotli <span class="context-tag">Modern</span> <span class="context-tag">Web</span></h5> + <h5><i class="bi bi-wind"></i> <a href="https://en.wikipedia.org/wiki/Brotli" target="_blank" style="color:white; text-decoration:underline;">Brotli</a> <span class="context-tag">Modern</span> <span class="context-tag">Web</span></h5> <div class="card-content-wrapper"> <p class="summary">Modern algorithm (LZ77 + Huffman + Context Modeling + Static Dictionary). Excellent for web text.</p> <button class="btn details-toggle" type="button" data-bs-toggle="collapse" data-bs-target="#collapseBrotli" aria-expanded="false" aria-controls="collapseBrotli"> @@ -723,7 +724,7 @@ <div class="col-lg-4 col-md-6 mb-4"> <div class="info-card" data-category="lossless"> <div class="card-body"> - <h5><i class="bi bi-speedometer2"></i> Zstandard (Zstd) <span class="context-tag">Modern</span> <span class="context-tag">Fast</span></h5> + <h5><i class="bi bi-speedometer2"></i> <a href="https://en.wikipedia.org/wiki/Zstd" target="_blank" style="color:white; text-decoration:underline;">Zstandard (Zstd)</a> <span class="context-tag">Modern</span> <span class="context-tag">Fast</span></h5> <div class="card-content-wrapper"> <p class="summary">Modern algorithm (LZ77 variant + ANS/FSE). Very fast with good ratios. Highly flexible.</p> <button class="btn details-toggle" type="button" data-bs-toggle="collapse" data-bs-target="#collapseZstd" aria-expanded="false" aria-controls="collapseZstd"> @@ -744,7 +745,7 @@ <div class="col-lg-4 col-md-6 mb-4"> <div class="info-card" data-category="lossless"> <div class="card-body"> - <h5><i class="bi bi-puzzle-fill"></i> Prediction by Partial Matching (PPM) <span class="context-tag">High Ratio</span></h5> + <h5><i class="bi bi-puzzle-fill"></i> <a href="https://en.wikipedia.org/wiki/Prediction_by_partial_matching" target="_blank" style="color:white; text-decoration:underline;">Prediction by Partial Matching (PPM)</a> <span class="context-tag">High Ratio</span></h5> <div class="card-content-wrapper"> <p class="summary">Adaptive statistical technique using context modeling and arithmetic coding. High ratios, but slow.</p> <button class="btn details-toggle" type="button" data-bs-toggle="collapse" data-bs-target="#collapsePPM" aria-expanded="false" aria-controls="collapsePPM"> @@ -764,7 +765,7 @@ <div class="col-lg-4 col-md-6 mb-4"> <div class="info-card" data-category="lossless"> <div class="card-body"> - <h5><i class="bi bi-music-note-beamed"></i> FLAC <span class="context-tag">Audio</span></h5> + <h5><i class="bi bi-music-note-beamed"></i> <a href="https://en.wikipedia.org/wiki/FLAC" target="_blank" style="color:white; text-decoration:underline;">FLAC</a> <span class="context-tag">Audio</span></h5> <div class="card-content-wrapper"> <p class="summary">Lossless audio compression using linear prediction and Golomb-Rice coding.</p> <button class="btn details-toggle" type="button" data-bs-toggle="collapse" data-bs-target="#collapseFLAC" aria-expanded="false" aria-controls="collapseFLAC"> @@ -785,7 +786,7 @@ <div class="col-lg-4 col-md-6 mb-4"> <div class="info-card" data-category="lossless"> <div class="card-body"> - <h5><i class="bi bi-apple"></i> ALAC (Apple Lossless) <span class="context-tag">Audio</span> <span class="context-tag apple">Apple</span></h5> + <h5><i class="bi bi-apple"></i> <a href="https://en.wikipedia.org/wiki/Apple_Lossless_Audio_Codec" target="_blank" style="color:white; text-decoration:underline;">ALAC (Apple Lossless)</a> <span class="context-tag">Audio</span> <span class="context-tag apple">Apple</span></h5> <div class="card-content-wrapper"> <p class="summary">Apple's lossless audio codec, also using linear prediction.</p> <button class="btn details-toggle" type="button" data-bs-toggle="collapse" data-bs-target="#collapseALAC" aria-expanded="false" aria-controls="collapseALAC"> @@ -813,7 +814,7 @@ <div class="col-lg-4 col-md-6 mb-4"> <div class="info-card" data-category="lossy"> <div class="card-body"> - <h5><i class="bi bi-image-fill"></i> JPEG <span class="context-tag">Image</span> <span class="context-tag">Classic</span></h5> + <h5><i class="bi bi-image-fill"></i> <a href="https://en.wikipedia.org/wiki/JPEG" target="_blank" style="color:white; text-decoration:underline;">JPEG</a> <span class="context-tag">Image</span> <span class="context-tag">Classic</span></h5> <div class="card-content-wrapper"> <p class="summary">Widely used for photographic images. Uses DCT, quantization, and Huffman/Arithmetic coding.</p> <button class="btn details-toggle" type="button" data-bs-toggle="collapse" data-bs-target="#collapseJPEG" aria-expanded="false" aria-controls="collapseJPEG"> @@ -836,7 +837,7 @@ <div class="col-lg-4 col-md-6 mb-4"> <div class="info-card" data-category="lossy"> <div class="card-body"> - <h5><i class="bi bi-phone-fill"></i> HEIC (High Efficiency Image Format) <span class="context-tag">Image</span> <span class="context-tag apple">Apple Default</span></h5> + <h5><i class="bi bi-phone-fill"></i> <a href="https://en.wikipedia.org/wiki/High_Efficiency_Image_File_Format#HEIC:_HEVC_in_HEIF" target="_blank" style="color:white; text-decoration:underline;">HEIC (High Efficiency Image Format)</a> <span class="context-tag">Image</span> <span class="context-tag apple">Apple Default</span></h5> <div class="card-content-wrapper"> <p class="summary">Apple's default image format. Uses HEVC/H.265 for image data, offers better compression than JPEG.</p> <button class="btn details-toggle" type="button" data-bs-toggle="collapse" data-bs-target="#collapseHEIC" aria-expanded="false" aria-controls="collapseHEIC"> @@ -858,7 +859,7 @@ <div class="col-lg-4 col-md-6 mb-4"> <div class="info-card" data-category="lossy"> <div class="card-body"> - <h5><i class="bi bi-film"></i> Apple ProRes <span class="context-tag">Video</span> <span class="context-tag apple">Pro Video</span></h5> + <h5><i class="bi bi-film"></i> <a href="https://en.wikipedia.org/wiki/Apple_ProRes" target="_blank" style="color:white; text-decoration:underline;">Apple ProRes</a> <span class="context-tag">Video</span> <span class="context-tag apple">Pro Video</span></h5> <div class="card-content-wrapper"> <p class="summary">Family of high-quality, lossy (visually lossless to near-lossless) video codecs for professional post-production.</p> <button class="btn details-toggle" type="button" data-bs-toggle="collapse" data-bs-target="#collapseProRes" aria-expanded="false" aria-controls="collapseProRes"> @@ -880,7 +881,7 @@ <div class="col-lg-4 col-md-6 mb-4"> <div class="info-card" data-category="lossy"> <div class="card-body"> - <h5><i class="bi bi-aspect-ratio-fill"></i> JPEG 2000 <span class="context-tag">Image</span> <span class="context-tag">Specialized</span></h5> + <h5><i class="bi bi-aspect-ratio-fill"></i> <a href="https://en.wikipedia.org/wiki/JPEG_2000" target="_blank" style="color:white; text-decoration:underline;">JPEG 2000</a> <span class="context-tag">Image</span> <span class="context-tag">Specialized</span></h5> <div class="card-content-wrapper"> <p class="summary">Uses wavelet transform. Better quality than JPEG at high compression, supports lossless.</p> <button class="btn details-toggle" type="button" data-bs-toggle="collapse" data-bs-target="#collapseJPEG2000" aria-expanded="false" aria-controls="collapseJPEG2000"> @@ -902,7 +903,7 @@ <div class="col-lg-4 col-md-6 mb-4"> <div class="info-card" data-category="lossy"> <div class="card-body"> - <h5><i class="bi bi-globe"></i> WebP <span class="context-tag">Image</span> <span class="context-tag">Web</span></h5> + <h5><i class="bi bi-globe"></i> <a href="https://en.wikipedia.org/wiki/WebP" target="_blank" style="color:white; text-decoration:underline;">WebP</a> <span class="context-tag">Image</span> <span class="context-tag">Web</span></h5> <div class="card-content-wrapper"> <p class="summary">Google's image format. Lossy mode uses VP8-based prediction; also supports lossless, animation, transparency.</p> <button class="btn details-toggle" type="button" data-bs-toggle="collapse" data-bs-target="#collapseWebP" aria-expanded="false" aria-controls="collapseWebP"> @@ -924,7 +925,7 @@ <div class="col-lg-4 col-md-6 mb-4"> <div class="info-card" data-category="lossy"> <div class="card-body"> - <h5><i class="bi bi-image-alt"></i> AVIF (AV1 Image Format) <span class="context-tag">Image</span> <span class="context-tag">Next-Gen Web</span></h5> + <h5><i class="bi bi-image-alt"></i> <a href="https://en.wikipedia.org/wiki/AVIF" target="_blank" style="color:white; text-decoration:underline;">AVIF (AV1 Image Format)</a> <span class="context-tag">Image</span> <span class="context-tag">Next-Gen Web</span></h5> <div class="card-content-wrapper"> <p class="summary">Image format using AV1 video intra-frame coding. Excellent efficiency, supports HDR.</p> <button class="btn details-toggle" type="button" data-bs-toggle="collapse" data-bs-target="#collapseAVIF" aria-expanded="false" aria-controls="collapseAVIF"> @@ -947,7 +948,7 @@ <div class="col-12 mb-4"> <!-- Full width for overview --> <div class="info-card" data-category="lossy"> <div class="card-body"> - <h5 class="text-center"><i class="bi bi-film"></i> MPEG Family (Video & Audio)</h5> + <h5 class="text-center"><i class="bi bi-film"></i> <a href="https://en.wikipedia.org/wiki/Moving_Picture_Experts_Group" target="_blank" style="color:white; text-decoration:underline;">MPEG</a> Family (Video & Audio)</h5> <div class="card-content-wrapper"> <p class="summary text-center">The Moving Picture Experts Group (MPEG) has developed a suite of widely adopted standards for audio and video compression. Key video codecs include H.264/AVC and H.265/HEVC. Key audio codecs include MP3 and AAC. Details for prominent members are in individual cards below.</p> </div> @@ -959,7 +960,7 @@ <div class="col-lg-4 col-md-6 mb-4"> <div class="info-card" data-category="lossy"> <div class="card-body"> - <h5><i class="bi bi-camera-reels-fill"></i> H.264/AVC (MPEG-4 Part 10) <span class="context-tag">Video</span></h5> + <h5><i class="bi bi-camera-reels-fill"></i> <a href="https://en.wikipedia.org/wiki/Advanced_Video_Coding" target="_blank" style="color:white; text-decoration:underline;">H.264/AVC (MPEG-4 Part 10)</a> <span class="context-tag">Video</span></h5> <div class="card-content-wrapper"> <p class="summary">Widely used video codec. Excellent balance of quality and compression. Used in Blu-ray, streaming.</p> <button class="btn details-toggle" type="button" data-bs-toggle="collapse" data-bs-target="#collapseH264" aria-expanded="false" aria-controls="collapseH264"> @@ -981,7 +982,7 @@ <div class="col-lg-4 col-md-6 mb-4"> <div class="info-card" data-category="lossy"> <div class="card-body"> - <h5><i class="bi bi-badge-4k-fill"></i> H.265/HEVC <span class="context-tag">Video</span> <span class="context-tag apple">Apple Used</span></h5> + <h5><i class="bi bi-badge-4k-fill"></i> <a href="https://en.wikipedia.org/wiki/High_Efficiency_Video_Coding" target="_blank" style="color:white; text-decoration:underline;">H.265/HEVC</a> <span class="context-tag">Video</span> <span class="context-tag apple">Apple Used</span></h5> <div class="card-content-wrapper"> <p class="summary">Successor to H.264, roughly 2x efficiency. Used for 4K/UHD content. Apple default video codec.</p> <button class="btn details-toggle" type="button" data-bs-toggle="collapse" data-bs-target="#collapseH265" aria-expanded="false" aria-controls="collapseH265"> @@ -1003,7 +1004,7 @@ <div class="col-lg-4 col-md-6 mb-4"> <div class="info-card" data-category="lossy"> <div class="card-body"> - <h5><i class="bi bi-youtube"></i> VP9 <span class="context-tag">Video</span> <span class="context-tag">Web</span></h5> + <h5><i class="bi bi-youtube"></i> <a href="https://en.wikipedia.org/wiki/VP9" target="_blank" style="color:white; text-decoration:underline;">VP9</a> <span class="context-tag">Video</span> <span class="context-tag">Web</span></h5> <div class="card-content-wrapper"> <p class="summary">Google's open and royalty-free video codec. Widely used by YouTube, competitor to H.265.</p> <button class="btn details-toggle" type="button" data-bs-toggle="collapse" data-bs-target="#collapseVP9" aria-expanded="false" aria-controls="collapseVP9"> @@ -1024,7 +1025,7 @@ <div class="col-lg-4 col-md-6 mb-4"> <div class="info-card" data-category="lossy"> <div class="card-body"> - <h5><i class="bi bi-broadcast-pin"></i> AV1 (AOMedia Video 1) <span class="context-tag">Video</span> <span class="context-tag apple">Apple Support</span></h5> + <h5><i class="bi bi-broadcast-pin"></i> <a href="https://en.wikipedia.org/wiki/AV1" target="_blank" style="color:white; text-decoration:underline;">AV1 (AOMedia Video 1)</a> <span class="context-tag">Video</span> <span class="context-tag apple">Apple Support</span></h5> <div class="card-content-wrapper"> <p class="summary">Royalty-free, open-source video codec. Aims for better efficiency than HEVC. Growing in web streaming. Apple adds hardware decode support.</p> <button class="btn details-toggle" type="button" data-bs-toggle="collapse" data-bs-target="#collapseAV1" aria-expanded="false" aria-controls="collapseAV1"> @@ -1046,7 +1047,7 @@ <div class="col-lg-4 col-md-6 mb-4"> <div class="info-card" data-category="lossy"> <div class="card-body"> - <h5><i class="bi bi-file-earmark-music-fill"></i> MP3 (MPEG-1 Audio Layer III) <span class="context-tag">Audio</span> <span class="context-tag">Classic</span></h5> + <h5><i class="bi bi-file-earmark-music-fill"></i> <a href="https://en.wikipedia.org/wiki/MP3" target="_blank" style="color:white; text-decoration:underline;">MP3 (MPEG-1 Audio Layer III)</a> <span class="context-tag">Audio</span> <span class="context-tag">Classic</span></h5> <div class="card-content-wrapper"> <p class="summary">Ubiquitous audio codec. Uses psychoacoustic model, MDCT, quantization, Huffman.</p> <button class="btn details-toggle" type="button" data-bs-toggle="collapse" data-bs-target="#collapseMP3" aria-expanded="false" aria-controls="collapseMP3"> @@ -1068,7 +1069,7 @@ <div class="col-lg-4 col-md-6 mb-4"> <div class="info-card" data-category="lossy"> <div class="card-body"> - <h5><i class="bi bi-music-player-fill"></i> AAC (Advanced Audio Coding) <span class="context-tag">Audio</span> <span class="context-tag apple">Apple Standard</span></h5> + <h5><i class="bi bi-music-player-fill"></i> <a href="https://en.wikipedia.org/wiki/Advanced_Audio_Coding" target="_blank" style="color:white; text-decoration:underline;">AAC (Advanced Audio Coding)</a> <span class="context-tag">Audio</span> <span class="context-tag apple">Apple Standard</span></h5> <div class="card-content-wrapper"> <p class="summary">Successor to MP3, better quality at same bitrate. Standard for Apple Music, iTunes.</p> <button class="btn details-toggle" type="button" data-bs-toggle="collapse" data-bs-target="#collapseAAC" aria-expanded="false" aria-controls="collapseAAC"> @@ -1090,7 +1091,7 @@ <div class="col-lg-4 col-md-6 mb-4"> <div class="info-card" data-category="lossy"> <div class="card-body"> - <h5><i class="bi bi-mic-fill"></i> Opus <span class="context-tag">Audio</span> <span class="context-tag apple">Apple Support</span></h5> + <h5><i class="bi bi-mic-fill"></i> <a href="https://en.wikipedia.org/wiki/Opus_(audio_format)" target="_blank" style="color:white; text-decoration:underline;">Opus</a> <span class="context-tag">Audio</span> <span class="context-tag apple">Apple Support</span></h5> <div class="card-content-wrapper"> <p class="summary">Royalty-free, versatile (speech & music), low latency. Excellent for VoIP, streaming. Supported by Apple.</p> <button class="btn details-toggle" type="button" data-bs-toggle="collapse" data-bs-target="#collapseOpus" aria-expanded="false" aria-controls="collapseOpus"> @@ -1112,7 +1113,7 @@ <div class="col-lg-4 col-md-6 mb-4"> <div class="info-card" data-category="lossy"> <div class="card-body"> - <h5><i class="bi bi-soundwave"></i> Vorbis (Ogg Vorbis) <span class="context-tag">Audio</span> <span class="context-tag">Open Source</span></h5> + <h5><i class="bi bi-soundwave"></i> <a href="https://en.wikipedia.org/wiki/Vorbis" target="_blank" style="color:white; text-decoration:underline;">Vorbis (Ogg Vorbis)</a> <span class="context-tag">Audio</span> <span class="context-tag">Open Source</span></h5> <div class="card-content-wrapper"> <p class="summary">Open-source, patent-free audio format. Good quality, popular in open-source applications.</p> <button class="btn details-toggle" type="button" data-bs-toggle="collapse" data-bs-target="#collapseVorbis" aria-expanded="false" aria-controls="collapseVorbis"> @@ -1208,7 +1209,7 @@ <div class="card-body"> <h5><i class="bi bi-gear-wide-connected"></i> Tools, Libraries & Software</h5> <div class="card-content-wrapper"> - <p class="summary">Common archivers (gzip, 7-Zip), libraries (zlib, FFmpeg), and software implementing these algorithms.</p> + <p class="summary">Common archivers (<a href="https://en.wikipedia.org/wiki/Gzip" target="_blank">gzip</a>, <a href="https://en.wikipedia.org/wiki/7-Zip" target="_blank">7-Zip</a>), libraries (<a href="https://zlib.net/" target="_blank">zlib</a>, <a href="https://ffmpeg.org/" target="_blank">FFmpeg</a>), and software implementing these algorithms.</p> <button class="btn details-toggle" type="button" data-bs-toggle="collapse" data-bs-target="#collapseToolsLibs" aria-expanded="false" aria-controls="collapseToolsLibs"> Details <i class="bi bi-chevron-down"></i> </button> @@ -1217,14 +1218,14 @@ <div class="collapse collapse-content" id="collapseToolsLibs"> <h6>Command-Line Archivers:</h6> <ul> - <li><code>gzip</code>, <code>zip</code>, <code>7-Zip (7z)</code>, <code>tar</code> (with compressors)</li> - <li><code>brotli</code>, <code>zstd</code>, <code>bzip2</code>, <code>xz</code></li> + <li><code><a href="https://en.wikipedia.org/wiki/Gzip" target="_blank">gzip</a></code>, <code>zip</code>, <code><a href="https://en.wikipedia.org/wiki/7-Zip" target="_blank">7-Zip (7z)</a></code>, <code>tar</code> (with compressors)</li> + <li><code><a href="https://en.wikipedia.org/wiki/Brotli" target="_blank">brotli</a></code>, <code><a href="https://en.wikipedia.org/wiki/Zstd" target="_blank">zstd</a></code>, <code><a href="https://en.wikipedia.org/wiki/Bzip2" target="_blank">bzip2</a></code>, <code>xz</code></li> </ul> <h6>Libraries for Developers:</h6> <ul> - <li><strong>zlib:</strong> (C library for Deflate)</li> + <li><strong><a href="https://zlib.net/" target="_blank">zlib</a>:</strong> (C library for Deflate)</li> <li><strong>libjpeg-turbo:</strong> (JPEG C library)</li> - <li><strong>FFmpeg:</strong> (Audio/video codecs library & tool)</li> + <li><strong><a href="https://ffmpeg.org/" target="_blank">FFmpeg</a>:</strong> (Audio/video codecs library & tool)</li> <!-- ... more libraries ... --> </ul> <h6>Applications:</h6> @@ -1314,7 +1315,7 @@ <div class="card-body"> <h5 class="text-center"><i class="bi bi-award-fill"></i> Key Organizations</h5> <div class="card-content-wrapper"> - <p class="summary text-center">Several organizations play crucial roles in developing and standardizing compression algorithms, ensuring interoperability and advancing the field. Key players include MPEG, ITU-T, IETF, AOMedia, ISO/IEC, and W3C.</p> + <p class="summary text-center">Several organizations play crucial roles in developing and standardizing compression algorithms, ensuring interoperability and advancing the field. Key players include <a href="https://en.wikipedia.org/wiki/Moving_Picture_Experts_Group" target="_blank">MPEG</a>, <a href="https://www.itu.int/ITU-T/" target="_blank">ITU-T</a>, <a href="https://www.ietf.org/" target="_blank">IETF</a>, <a href="https://aomedia.org/" target="_blank">AOMedia</a>, <a href="https://www.iso.org/" target="_blank">ISO</a>/<a href="https://www.iec.ch/" target="_blank">IEC</a>, and <a href="https://www.w3.org/" target="_blank">W3C</a>.</p> <button class="btn details-toggle mx-auto" type="button" data-bs-toggle="collapse" data-bs-target="#collapseStandardsBodies" aria-expanded="false" aria-controls="collapseStandardsBodies"> Explore Details <i class="bi bi-chevron-down"></i> </button> @@ -1322,12 +1323,12 @@ </div> <div class="collapse collapse-content" id="collapseStandardsBodies"> <ul> - <li><strong>MPEG (Moving Picture Experts Group):</strong> Develops standards for audio and video (e.g., JPEG, MPEG-2, H.264, H.265, VVC, MP3, AAC). Part of ISO/IEC.</li> - <li><strong>ITU-T (International Telecommunication Union - Telecommunication Standardization Sector):</strong> Develops video coding standards, often jointly with MPEG (e.g., H.26x series).</li> - <li><strong>IETF (Internet Engineering Task Force):</strong> Develops standards for internet protocols, including codecs for real-time communication (e.g., Opus, AV1 via AOMedia).</li> - <li><strong>AOMedia (Alliance for Open Media):</strong> Consortium developing royalty-free video codecs like AV1.</li> - <li><strong>ISO (International Organization for Standardization) & IEC (International Electrotechnical Commission):</strong> General standards bodies, often publishing MPEG work.</li> - <li><strong>W3C (World Wide Web Consortium):</strong> Standardizes web technologies, including formats like WebP, PNG, and font compression (WOFF/WOFF2).</li> + <li><strong><a href="https://en.wikipedia.org/wiki/Moving_Picture_Experts_Group" target="_blank">MPEG (Moving Picture Experts Group)</a>:</strong> Develops standards for audio and video (e.g., JPEG, MPEG-2, H.264, H.265, VVC, MP3, AAC). Part of ISO/IEC.</li> + <li><strong><a href="https://www.itu.int/ITU-T/" target="_blank">ITU-T (International Telecommunication Union - Telecommunication Standardization Sector)</a>:</strong> Develops video coding standards, often jointly with MPEG (e.g., H.26x series).</li> + <li><strong><a href="https://www.ietf.org/" target="_blank">IETF (Internet Engineering Task Force)</a>:</strong> Develops standards for internet protocols, including codecs for real-time communication (e.g., Opus, AV1 via AOMedia).</li> + <li><strong><a href="https://aomedia.org/" target="_blank">AOMedia (Alliance for Open Media)</a>:</strong> Consortium developing royalty-free video codecs like AV1.</li> + <li><strong><a href="https://www.iso.org/" target="_blank">ISO (International Organization for Standardization)</a> & <a href="https://www.iec.ch/" target="_blank">IEC (International Electrotechnical Commission)</a>:</strong> General standards bodies, often publishing MPEG work.</li> + <li><strong><a href="https://www.w3.org/" target="_blank">W3C (World Wide Web Consortium)</a>:</strong> Standardizes web technologies, including formats like WebP, PNG, and font compression (WOFF/WOFF2).</li> </ul> </div> </div> @@ -1367,10 +1368,7 @@ }); // Dynamic Year and Last Updated Date - document.getElementById("currentYear").textContent = new Date().getFullYear(); - const today = new Date(); - const options = { year: 'numeric', month: 'long', day: 'numeric' }; - document.getElementById("lastUpdatedDate").textContent = today.toLocaleDateString('en-US', options); + // Removed as per original HTML structure (no currentYear or lastUpdatedDate elements) // Collapse toggle icon change