PSNR
This section is in need of contributions. If you believe you can help, please see our Contribution Guide to get started as a contributor!
diff --git a/404.html b/404.html index 5e5f3792..c9cd54d9 100644 --- a/404.html +++ b/404.html @@ -15,7 +15,7 @@ - +
diff --git a/assets/js/0058b4c6.7b08b7a8.js b/assets/js/0058b4c6.73ba28a0.js similarity index 77% rename from assets/js/0058b4c6.7b08b7a8.js rename to assets/js/0058b4c6.73ba28a0.js index b05d30e4..4e19daf6 100644 --- a/assets/js/0058b4c6.7b08b7a8.js +++ b/assets/js/0058b4c6.73ba28a0.js @@ -1 +1 @@ -"use strict";(self.webpackChunkcodec_wiki=self.webpackChunkcodec_wiki||[]).push([[849],{6164:e=>{e.exports=JSON.parse('{"version":{"pluginId":"default","version":"current","label":"Next","banner":null,"badge":false,"noIndex":false,"className":"docs-version-current","isLast":true,"docsSidebars":{"tutorialSidebar":[{"type":"category","label":"\ud83d\udca1 Introduction","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Prologue","href":"/docs/introduction/prologue","docId":"introduction/prologue","unlisted":false},{"type":"link","label":"Terminology","href":"/docs/introduction/terminology","docId":"introduction/terminology","unlisted":false},{"type":"link","label":"Lossless Compression","href":"/docs/introduction/lossless","docId":"introduction/lossless","unlisted":false},{"type":"link","label":"Lossy Compression","href":"/docs/introduction/lossy","docId":"introduction/lossy","unlisted":false},{"type":"link","label":"Spotting Video Artifacts","href":"/docs/introduction/video-artifacts","docId":"introduction/video-artifacts","unlisted":false},{"type":"link","label":"Psychovisual","href":"/docs/introduction/psychovisual","docId":"introduction/psychovisual","unlisted":false},{"type":"link","label":"High Dynamic Range","href":"/docs/introduction/high-dynamic-range","docId":"introduction/high-dynamic-range","unlisted":false}]},{"type":"category","label":"\ud83d\udd0a Audio","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Intro","href":"/docs/audio/intro","docId":"audio/intro","unlisted":false},{"type":"link","label":"AAC","href":"/docs/audio/AAC","docId":"audio/AAC","unlisted":false},{"type":"link","label":"Opus","href":"/docs/audio/Opus","docId":"audio/Opus","unlisted":false},{"type":"link","label":"Dolby Digital","href":"/docs/audio/Dolby","docId":"audio/Dolby","unlisted":false},{"type":"link","label":"MP3","href":"/docs/audio/MP3","docId":"audio/MP3","unlisted":false},{"type":"link","label":"Vorbis","href":"/docs/audio/Vorbis","docId":"audio/Vorbis","unlisted":false},{"type":"link","label":"Speex","href":"/docs/audio/Speex","docId":"audio/Speex","unlisted":false},{"type":"link","label":"ALAC","href":"/docs/audio/ALAC","docId":"audio/ALAC","unlisted":false},{"type":"link","label":"FLAC","href":"/docs/audio/FLAC","docId":"audio/FLAC","unlisted":false},{"type":"link","label":"WavPack","href":"/docs/audio/WavPack","docId":"audio/WavPack","unlisted":false}]},{"type":"category","label":"\ud83d\udcf9\ufe0f Video","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"AVC / H.264","href":"/docs/video/AVC","docId":"video/AVC","unlisted":false},{"type":"link","label":"HEVC / H.265","href":"/docs/video/HEVC","docId":"video/HEVC","unlisted":false},{"type":"link","label":"VVC / H.266","href":"/docs/video/VVC","docId":"video/VVC","unlisted":false},{"type":"link","label":"VP8","href":"/docs/video/VP8","docId":"video/VP8","unlisted":false},{"type":"link","label":"VP9","href":"/docs/video/VP9","docId":"video/VP9","unlisted":false},{"type":"link","label":"AV1","href":"/docs/video/AV1","docId":"video/AV1","unlisted":false},{"type":"link","label":"AVS3","href":"/docs/video/AVS3","docId":"video/AVS3","unlisted":false},{"type":"link","label":"VC-1","href":"/docs/video/VC-1","docId":"video/VC-1","unlisted":false},{"type":"link","label":"Theora","href":"/docs/video/Theora","docId":"video/Theora","unlisted":false},{"type":"link","label":"FFV1","href":"/docs/video/FFV1","docId":"video/FFV1","unlisted":false},{"type":"link","label":"UT Video","href":"/docs/video/utvideo","docId":"video/utvideo","unlisted":false},{"type":"link","label":"ProRes","href":"/docs/video/prores","docId":"video/prores","unlisted":false},{"type":"link","label":"ECM","href":"/docs/video/ECM","docId":"video/ECM","unlisted":false}]},{"type":"category","label":"\ud83d\udcbd Data","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"ZIP","href":"/docs/data/zip","docId":"data/zip","unlisted":false},{"type":"link","label":"gzip","href":"/docs/data/gzip","docId":"data/gzip","unlisted":false},{"type":"link","label":"bzip2","href":"/docs/data/bzip2","docId":"data/bzip2","unlisted":false},{"type":"link","label":"7z","href":"/docs/data/7z","docId":"data/7z","unlisted":false},{"type":"link","label":"xz","href":"/docs/data/xz","docId":"data/xz","unlisted":false},{"type":"link","label":"brotli","href":"/docs/data/brotli","docId":"data/brotli","unlisted":false},{"type":"link","label":"zpaq","href":"/docs/data/zpaq","docId":"data/zpaq","unlisted":false},{"type":"link","label":"zstd","href":"/docs/data/zstd","docId":"data/zstd","unlisted":false},{"type":"link","label":"tar","href":"/docs/data/tar","docId":"data/tar","unlisted":false}]},{"type":"category","label":"\ud83c\udfde\ufe0f Images","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"JPEG","href":"/docs/images/JPEG","docId":"images/JPEG","unlisted":false},{"type":"link","label":"PNG","href":"/docs/images/PNG","docId":"images/PNG","unlisted":false},{"type":"link","label":"GIF","href":"/docs/images/GIF","docId":"images/GIF","unlisted":false},{"type":"link","label":"HEIC","href":"/docs/images/HEIC","docId":"images/HEIC","unlisted":false},{"type":"link","label":"WebP","href":"/docs/images/WebP","docId":"images/WebP","unlisted":false},{"type":"link","label":"JPEG 2000","href":"/docs/images/JPEG2000","docId":"images/JPEG2000","unlisted":false},{"type":"link","label":"AVIF","href":"/docs/images/AVIF","docId":"images/AVIF","unlisted":false},{"type":"link","label":"JPEG XL","href":"/docs/images/JXL","docId":"images/JXL","unlisted":false},{"type":"link","label":"QOI","href":"/docs/images/QOI","docId":"images/QOI","unlisted":false}]},{"type":"category","label":"\ud83d\udcbe Encoders","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"x264","href":"/docs/encoders/x264","docId":"encoders/x264","unlisted":false},{"type":"link","label":"x265","href":"/docs/encoders/x265","docId":"encoders/x265","unlisted":false},{"type":"link","label":"x266","href":"/docs/encoders/x266","docId":"encoders/x266","unlisted":false},{"type":"link","label":"aomenc","href":"/docs/encoders/aomenc","docId":"encoders/aomenc","unlisted":false},{"type":"link","label":"SVT-AV1-PSY","href":"/docs/encoders/SVT-AV1-PSY","docId":"encoders/SVT-AV1-PSY","unlisted":false},{"type":"link","label":"SVT-AV1","href":"/docs/encoders/SVT-AV1","docId":"encoders/SVT-AV1","unlisted":false},{"type":"link","label":"rav1e","href":"/docs/encoders/rav1e","docId":"encoders/rav1e","unlisted":false},{"type":"link","label":"Aurora1 AV1","href":"/docs/encoders/Aurora1","docId":"encoders/Aurora1","unlisted":false},{"type":"link","label":"vpxenc","href":"/docs/encoders/vpxenc","docId":"encoders/vpxenc","unlisted":false},{"type":"link","label":"SVT-VP9","href":"/docs/encoders/SVT-VP9","docId":"encoders/SVT-VP9","unlisted":false},{"type":"link","label":"SVT-HEVC","href":"/docs/encoders/SVT-HEVC","docId":"encoders/SVT-HEVC","unlisted":false},{"type":"link","label":"Kvazaar","href":"/docs/encoders/Kvazaar","docId":"encoders/Kvazaar","unlisted":false},{"type":"link","label":"VVenC","href":"/docs/encoders/VVenC","docId":"encoders/VVenC","unlisted":false},{"type":"link","label":"uvg266","href":"/docs/encoders/uvg266","docId":"encoders/uvg266","unlisted":false},{"type":"link","label":"VTM","href":"/docs/encoders/VTM","docId":"encoders/VTM","unlisted":false},{"type":"link","label":"AVM","href":"/docs/encoders/AVM","docId":"encoders/AVM","unlisted":false},{"type":"link","label":"HM","href":"/docs/encoders/HM","docId":"encoders/HM","unlisted":false},{"type":"link","label":"JM","href":"/docs/encoders/JM","docId":"encoders/JM","unlisted":false},{"type":"link","label":"aom-av1-lavish","href":"/docs/encoders/aom-av1-lavish","docId":"encoders/aom-av1-lavish","unlisted":false},{"type":"link","label":"aom-psy101","href":"/docs/encoders/aom-psy101","docId":"encoders/aom-psy101","unlisted":false},{"type":"link","label":"uavs3e","href":"/docs/encoders/uavs3e","docId":"encoders/uavs3e","unlisted":false}]},{"type":"category","label":"\ud83d\ude80 Hardware Encoders","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"NVENC","href":"/docs/encoders_hw/nvenc","docId":"encoders_hw/nvenc","unlisted":false},{"type":"link","label":"QSV","href":"/docs/encoders_hw/qsv","docId":"encoders_hw/qsv","unlisted":false},{"type":"link","label":"AMF","href":"/docs/encoders_hw/amf","docId":"encoders_hw/amf","unlisted":false},{"type":"link","label":"VideoToolbox","href":"/docs/encoders_hw/videotoolbox","docId":"encoders_hw/videotoolbox","unlisted":false},{"type":"link","label":"Mediacodec","href":"/docs/encoders_hw/mediacodec","docId":"encoders_hw/mediacodec","unlisted":false}]},{"type":"category","label":"\ud83d\udcac Subtitles","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"SRT","href":"/docs/subtitles/SRT","docId":"subtitles/SRT","unlisted":false},{"type":"link","label":"SubStation Alpha","href":"/docs/subtitles/SSA","docId":"subtitles/SSA","unlisted":false},{"type":"link","label":"WebVTT","href":"/docs/subtitles/webvtt","docId":"subtitles/webvtt","unlisted":false}]},{"type":"category","label":"\ud83c\udf9e\ufe0f Filtering","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Vapoursynth","href":"/docs/filtering/vapoursynth","docId":"filtering/vapoursynth","unlisted":false},{"type":"link","label":"Basics of Filtering","href":"/docs/filtering/basics","docId":"filtering/basics","unlisted":false},{"type":"link","label":"Inverse Telecine","href":"/docs/filtering/ivtc","docId":"filtering/ivtc","unlisted":false},{"type":"link","label":"Deinterlace","href":"/docs/filtering/deinterlace","docId":"filtering/deinterlace","unlisted":false},{"type":"link","label":"Decombing","href":"/docs/filtering/decombing","docId":"filtering/decombing","unlisted":false},{"type":"link","label":"Stabilizing","href":"/docs/filtering/stabilizing","docId":"filtering/stabilizing","unlisted":false},{"type":"link","label":"Denoise","href":"/docs/filtering/denoise","docId":"filtering/denoise","unlisted":false},{"type":"link","label":"Dehalo","href":"/docs/filtering/dehalo","docId":"filtering/dehalo","unlisted":false},{"type":"link","label":"Antialiasing","href":"/docs/filtering/antialiasing","docId":"filtering/antialiasing","unlisted":false},{"type":"link","label":"Deband","href":"/docs/filtering/deband","docId":"filtering/deband","unlisted":false},{"type":"link","label":"Graining","href":"/docs/filtering/graining","docId":"filtering/graining","unlisted":false}]},{"type":"category","label":"\ud83c\udfa8 Colorimetry","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Intro","href":"/docs/colorimetry/intro","docId":"colorimetry/intro","unlisted":false},{"type":"link","label":"Color Formats","href":"/docs/colorimetry/format","docId":"colorimetry/format","unlisted":false},{"type":"link","label":"Color Range","href":"/docs/colorimetry/range","docId":"colorimetry/range","unlisted":false},{"type":"link","label":"Color Primaries","href":"/docs/colorimetry/primaries","docId":"colorimetry/primaries","unlisted":false},{"type":"link","label":"Transfer Characteristics","href":"/docs/colorimetry/transfer","docId":"colorimetry/transfer","unlisted":false},{"type":"link","label":"Matrix Coefficients","href":"/docs/colorimetry/matrix","docId":"colorimetry/matrix","unlisted":false}]},{"type":"category","label":"\ud83d\udee0\ufe0f Utilities","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Aviator","href":"/docs/utilities/Aviator","docId":"utilities/Aviator","unlisted":false},{"type":"link","label":"Av1an","href":"/docs/utilities/av1an","docId":"utilities/av1an","unlisted":false},{"type":"link","label":"ffmpeg","href":"/docs/utilities/ffmpeg","docId":"utilities/ffmpeg","unlisted":false},{"type":"link","label":"MKVToolNix","href":"/docs/utilities/MKVToolNix","docId":"utilities/MKVToolNix","unlisted":false},{"type":"link","label":"rAV1ator","href":"/docs/utilities/rAV1ator","docId":"utilities/rAV1ator","unlisted":false},{"type":"link","label":"rav1ator-cli","href":"/docs/utilities/rav1ator-cli","docId":"utilities/rav1ator-cli","unlisted":false},{"type":"link","label":"NMKODER","href":"/docs/utilities/nmkoder","docId":"utilities/nmkoder","unlisted":false},{"type":"link","label":"FFMetrics","href":"/docs/utilities/FFMetrics","docId":"utilities/FFMetrics","unlisted":false},{"type":"link","label":"dovi_tool","href":"/docs/utilities/dovi_tool","docId":"utilities/dovi_tool","unlisted":false},{"type":"link","label":"eac3to","href":"/docs/utilities/eac3to","docId":"utilities/eac3to","unlisted":false},{"type":"link","label":"hdr10plus_tool","href":"/docs/utilities/hdr10plus_tool","docId":"utilities/hdr10plus_tool","unlisted":false},{"type":"link","label":"MP4Box","href":"/docs/utilities/mp4box","docId":"utilities/mp4box","unlisted":false},{"type":"link","label":"YUView","href":"/docs/utilities/YUView","docId":"utilities/YUView","unlisted":false},{"type":"link","label":"Discord","href":"/docs/utilities/Discord","docId":"utilities/Discord","unlisted":false},{"type":"link","label":"av1an-command-gen","href":"/docs/utilities/av1an-command-gen","docId":"utilities/av1an-command-gen","unlisted":false},{"type":"link","label":"autocompressor","href":"/docs/utilities/autocompressor","docId":"utilities/autocompressor","unlisted":false}]},{"type":"category","label":"\ud83d\udc41\ufe0f Metrics","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"PSNR","href":"/docs/metrics/PSNR","docId":"metrics/PSNR","unlisted":false},{"type":"link","label":"SSIM","href":"/docs/metrics/SSIM","docId":"metrics/SSIM","unlisted":false},{"type":"link","label":"SSIMULACRA2","href":"/docs/metrics/SSIMULACRA2","docId":"metrics/SSIMULACRA2","unlisted":false},{"type":"link","label":"VMAF","href":"/docs/metrics/VMAF","docId":"metrics/VMAF","unlisted":false},{"type":"link","label":"XPSNR","href":"/docs/metrics/XPSNR","docId":"metrics/XPSNR","unlisted":false},{"type":"link","label":"Butteraugli","href":"/docs/metrics/butteraugli","docId":"metrics/butteraugli","unlisted":false}]},{"type":"link","label":"\u25b6\ufe0f Video Players","href":"/docs/video-players","docId":"video-players","unlisted":false},{"type":"link","label":"\ud83d\uddc3\ufe0f Resources","href":"/docs/resources","docId":"resources","unlisted":false},{"type":"link","label":"\u2712\ufe0f Contribution Guide","href":"/docs/contribution-guide","docId":"contribution-guide","unlisted":false},{"type":"link","label":"\u2753 FAQ","href":"/docs/FAQ","docId":"FAQ","unlisted":false},{"type":"link","label":"\ud83d\udd0f Privacy Policy","href":"/docs/privacy-policy","docId":"privacy-policy","unlisted":false},{"type":"link","label":"\ud83e\udd1d Terms of Use","href":"/docs/terms-of-use","docId":"terms-of-use","unlisted":false}]},"docs":{"audio/AAC":{"id":"audio/AAC","title":"AAC","description":"Explore the AAC audio codec, including its various profiles, encoders, & use cases.","sidebar":"tutorialSidebar"},"audio/ALAC":{"id":"audio/ALAC","title":"ALAC","description":"This section is in need of contributions. If you believe you can help, please see our Contribution Guide to get started as a contributor!","sidebar":"tutorialSidebar"},"audio/Dolby":{"id":"audio/Dolby","title":"Dolby Digital","description":"The content in this entry is incomplete & is in the process of being completed.","sidebar":"tutorialSidebar"},"audio/FLAC":{"id":"audio/FLAC","title":"FLAC","description":"This section is in need of contributions. If you believe you can help, please see our Contribution Guide to get started as a contributor!","sidebar":"tutorialSidebar"},"audio/intro":{"id":"audio/intro","title":"Intro","description":"What is lossless audio? What is lossy audio? What is an audio codec? This entry serves as an intro to digital audio processing.","sidebar":"tutorialSidebar"},"audio/MP3":{"id":"audio/MP3","title":"MP3","description":"This section is in need of contributions. If you believe you can help, please see our Contribution Guide to get started as a contributor!","sidebar":"tutorialSidebar"},"audio/Opus":{"id":"audio/Opus","title":"Opus","description":"The content in this entry is incomplete & is in the process of being completed.","sidebar":"tutorialSidebar"},"audio/Speex":{"id":"audio/Speex","title":"Speex","description":"This section is in need of contributions. If you believe you can help, please see our Contribution Guide to get started as a contributor!","sidebar":"tutorialSidebar"},"audio/Vorbis":{"id":"audio/Vorbis","title":"Vorbis","description":"This section is in need of contributions. If you believe you can help, please see our Contribution Guide to get started as a contributor!","sidebar":"tutorialSidebar"},"audio/WavPack":{"id":"audio/WavPack","title":"WavPack","description":"This section is in need of contributions. If you believe you can help, please see our Contribution Guide to get started as a contributor!","sidebar":"tutorialSidebar"},"colorimetry/format":{"id":"colorimetry/format","title":"Color Formats","description":"To represent color values, a format is agreed upon. Color formats are","sidebar":"tutorialSidebar"},"colorimetry/intro":{"id":"colorimetry/intro","title":"Intro","description":"There are many aspects which determine how the color information","sidebar":"tutorialSidebar"},"colorimetry/matrix":{"id":"colorimetry/matrix","title":"Matrix Coefficients","description":"Matrix coefficients represent the multiplication matrix that is used when","sidebar":"tutorialSidebar"},"colorimetry/primaries":{"id":"colorimetry/primaries","title":"Color Primaries","description":"This section details the first of three settings that are important","sidebar":"tutorialSidebar"},"colorimetry/range":{"id":"colorimetry/range","title":"Color Range","description":"Range is a concept that describes the valid values for a pixel.","sidebar":"tutorialSidebar"},"colorimetry/transfer":{"id":"colorimetry/transfer","title":"Transfer Characteristics","description":"Transfer characteristics, also known as transfer functions, define the","sidebar":"tutorialSidebar"},"contribution-guide":{"id":"contribution-guide","title":"Contribution Guide","description":"Codec Wiki - community-maintained wiki for all things encoding.","sidebar":"tutorialSidebar"},"data/7z":{"id":"data/7z","title":"7z","description":"This section is in need of contributions. If you believe you can help, please see our Contribution Guide to get started as a contributor!","sidebar":"tutorialSidebar"},"data/brotli":{"id":"data/brotli","title":"brotli","description":"This section is in need of contributions. If you believe you can help, please see our Contribution Guide to get started as a contributor!","sidebar":"tutorialSidebar"},"data/bzip2":{"id":"data/bzip2","title":"bzip2","description":"This section is in need of contributions. If you believe you can help, please see our Contribution Guide to get started as a contributor!","sidebar":"tutorialSidebar"},"data/gzip":{"id":"data/gzip","title":"gzip","description":"Gzip is a DEFLATE implementation for use with individual files. It is popular on Unix-like systems such as Linux & macOS, and is often seen paired with tar to create .tar.gz archives. Formats like ZIP & PNG also use Deflate to different effects.","sidebar":"tutorialSidebar"},"data/tar":{"id":"data/tar","title":"tar","description":"This section is in need of contributions. If you believe you can help, please see our Contribution Guide to get started as a contributor!","sidebar":"tutorialSidebar"},"data/xz":{"id":"data/xz","title":"xz","description":"This section is in need of contributions. If you believe you can help, please see our Contribution Guide to get started as a contributor!","sidebar":"tutorialSidebar"},"data/zip":{"id":"data/zip","title":"ZIP","description":"The content in this entry may not be entirely accurate, & is pending further review to assess the quality of the information.","sidebar":"tutorialSidebar"},"data/zpaq":{"id":"data/zpaq","title":"zpaq","description":"This section is in need of contributions. If you believe you can help, please see our Contribution Guide to get started as a contributor!","sidebar":"tutorialSidebar"},"data/zstd":{"id":"data/zstd","title":"zstd","description":"This section is in need of contributions. If you believe you can help, please see our Contribution Guide to get started as a contributor!","sidebar":"tutorialSidebar"},"encoders_hw/amf":{"id":"encoders_hw/amf","title":"AMF","description":"The content in this entry may not be entirely accurate, & is pending further review to assess the quality of the information.","sidebar":"tutorialSidebar"},"encoders_hw/mediacodec":{"id":"encoders_hw/mediacodec","title":"Mediacodec","description":"The Android\'s MediaCodec framework is a part of Android\'s multimedia framework that provides access to low-level media encoder & decoder components. It is similar to VideoToolbox on Apple devices. Hardware acceleration with MediaCodec is used for processing audio, video, and compressed data.","sidebar":"tutorialSidebar"},"encoders_hw/nvenc":{"id":"encoders_hw/nvenc","title":"NVENC","description":"The content in this entry may not be entirely accurate, & is pending further review to assess the quality of the information.","sidebar":"tutorialSidebar"},"encoders_hw/qsv":{"id":"encoders_hw/qsv","title":"QSV","description":"The content in this entry may not be entirely accurate, & is pending further review to assess the quality of the information.","sidebar":"tutorialSidebar"},"encoders_hw/videotoolbox":{"id":"encoders_hw/videotoolbox","title":"VideoToolbox","description":"The content in this entry is incomplete & is in the process of being completed.","sidebar":"tutorialSidebar"},"encoders/aom-av1-lavish":{"id":"encoders/aom-av1-lavish","title":"aom-av1-lavish","description":"This entry is about a fork of aomenc called aom-psy101. If you\'d like to learn about the mainline aomenc encoder before reading, visit our aomenc wiki entry.","sidebar":"tutorialSidebar"},"encoders/aom-psy101":{"id":"encoders/aom-psy101","title":"aom-psy101","description":"The content in this entry is incomplete & is in the process of being completed.","sidebar":"tutorialSidebar"},"encoders/aomenc":{"id":"encoders/aomenc","title":"aomenc","description":"aomenc, AOM-AV1, or just libaom is a command line application for encoding AV1 written in C and Assembly developed by AOMedia, which is also the reference encoder for AV1.","sidebar":"tutorialSidebar"},"encoders/Aurora1":{"id":"encoders/Aurora1","title":"Aurora1 AV1","description":"Aurora1 AV1 is a proprietary and paid software AV1 encoder developed by Visionular. Although they do provide a contact form to get a free trial, not much is known about this encoder other than cherry-picked claims and proof provided by the company themselves that it is supposedly \\"better\\" than public, FOSS encoders.","sidebar":"tutorialSidebar"},"encoders/AVM":{"id":"encoders/AVM","title":"AVM","description":"AVM (AOM Video Model) is the reference software for next codec from Alliance for Open Media.","sidebar":"tutorialSidebar"},"encoders/HM":{"id":"encoders/HM","title":"HM","description":"The content in this entry may not be entirely accurate, & is pending further review to assess the quality of the information.","sidebar":"tutorialSidebar"},"encoders/JM":{"id":"encoders/JM","title":"JM","description":"This section is in need of contributions. If you believe you can help, please see our Contribution Guide to get started as a contributor!","sidebar":"tutorialSidebar"},"encoders/Kvazaar":{"id":"encoders/Kvazaar","title":"Kvazaar","description":"Kvazaar is an open-source H.265 / HEVC software encoder Written in C, developed by Ultra Video Group and licensed under BSD 3-clause.","sidebar":"tutorialSidebar"},"encoders/rav1e":{"id":"encoders/rav1e","title":"rav1e","description":"rav1e is an open source command line application for encoding AV1 written in Assembly & Rust, co-developed by Xiph.org and Mozilla and licensed under BSD-2 Clause.","sidebar":"tutorialSidebar"},"encoders/SVT-AV1":{"id":"encoders/SVT-AV1","title":"SVT-AV1","description":"The content in this entry is incomplete & is in the process of being completed.","sidebar":"tutorialSidebar"},"encoders/SVT-AV1-PSY":{"id":"encoders/SVT-AV1-PSY","title":"SVT-AV1-PSY","description":"This entry is about a fork of SVT-AV1 called SVT-AV1-PSY. If you\'d like to learn about the mainline SVT-AV1 encoder before reading, visit our SVT-AV1 wiki entry.","sidebar":"tutorialSidebar"},"encoders/SVT-HEVC":{"id":"encoders/SVT-HEVC","title":"SVT-HEVC","description":"SVT-HEVC (Scalable Video Technology for HEVC) is an open source H.265 / HEVC software encoder developed by Intel made specifically to only support x86. As the name suggests, it is part of the \\"Scalable Video Technology\\" project lineup by Intel.","sidebar":"tutorialSidebar"},"encoders/SVT-VP9":{"id":"encoders/SVT-VP9","title":"SVT-VP9","description":"The content in this entry is incomplete & is in the process of being completed.","sidebar":"tutorialSidebar"},"encoders/uavs3e":{"id":"encoders/uavs3e","title":"uavs3e","description":"uavs3e is an open-source encoder for the AVS3 codec, developed by Chinese research institutions including Peking University Shenzhen Graduate School, Peng Cheng Laboratory, and Guangdong Bohua UHD Innovation Corporation.","sidebar":"tutorialSidebar"},"encoders/uvg266":{"id":"encoders/uvg266","title":"uvg266","description":"uvg266 is an open-source software encoder for encoding to the H.266 / VVC codec. Developed by the Ultra Video Group, written in C and licensed under BSD 3-clause.","sidebar":"tutorialSidebar"},"encoders/vpxenc":{"id":"encoders/vpxenc","title":"vpxenc","description":"The content in this entry is incomplete & is in the process of being completed.","sidebar":"tutorialSidebar"},"encoders/VTM":{"id":"encoders/VTM","title":"VTM","description":"This section is in need of contributions. If you believe you can help, please see our Contribution Guide to get started as a contributor!","sidebar":"tutorialSidebar"},"encoders/VVenC":{"id":"encoders/VVenC","title":"VVenC","description":"This section is in need of contributions. If you believe you can help, please see our Contribution Guide to get started as a contributor!
PSNR (Peak Signal-to-Noise Ratio) is one of the most widely used objective full-reference image and video quality metrics. It measures the ratio between the maximum possible signal power and the power of corrupting noise, expressed in decibels (dB). The metric is calculated using the Mean Squared Error (MSE) between a reference image and a distorted image. The theory and math behind PSNR are well covered in Wikipedia's PSNR entry.
+PSNR is widely used in video encoding applications because it is fast to compute, making it practical for real-time encoding decisions, and because it provides a consistent mathematical basis for comparing different encoding approaches. It is also used within video encoders to help make compression decisions.
+Within video encoders, PSNR plays a crucial role in rate-distortion optimization (RDO), which is the process of finding the optimal balance between bitrate and quality. Encoders use PSNR as an in-loop metric when evaluating different encoding decisions, such as mode selection, motion estimation, and quantization parameter (QP) selection.
+For example, when deciding between different prediction modes or block sizes, the encoder will calculate the PSNR impact of each option along with its bit cost to determine the best choice.
+While PSNR is widely used due to its simplicity and computational efficiency, it has several notable limitations. The metric has notoriously poor correlation with the human eye's perception of quality, as PSNR is highly sensitive to all pixel-level errors when many do not have any perceptually relevant impact. When PSNR is used to inform RDO in video encoding, it can lead to suboptimal quality decisions; to combat this, encoders have to creatively take the human visual system into account. We cover some of this in the Psychovisual entry.
+PSNR's weaknesses as a full reference distortion metric have led to the development of more advanced metrics like SSIM, VMAF, and XPSNR, which attempt to better model human visual perception.
+PSNR is commonly used for evaluating image and video compression algorithms, assessing streaming quality, comparing codec performance, and more. Many video encoding tools and analysis suites report PSNR values for different luma/chroma components (Y, U, V) separately, as well as a weighted average. Despite its limitations, PSNR continues to be an important tool in the video compression field, particularly when used in conjunction with other quality metrics and subjective evaluation methods.
This section is in need of contributions. If you believe you can help, please see our Contribution Guide to get started as a contributor!
The Structural Similarity Index Measure (SSIM) is a full-reference image and video quality metric that quantifies image fidelity degradation caused by processing such as lossy compression. Published in 2004 as part of an issue of IEEE Transactions on Image Processing, SSIM attempts to address the limitations of traditional metrics like Peak Signal-to-Noise Ratio (PSNR) by evaluating visual quality based on the structural information that humans naturally use to assess visual quality.
+SSIM works by comparing three key elements between the original and processed images: luminance, contrast, and structure. The luminance comparison measures the similarity of the average pixel intensities between the two images. These three comparisons are combined to produce a single similarity score ranging from -1 to 1, where 1 indicates perfect structural similarity.
+One of SSIM's main advantages is its ability to better align with human visual perception compared to traditional metrics. SSIM recognizes that pixels have strong inter-dependencies, especially when they are spatially close, which makes SSIM particularly effective at detecting changes in structural information that human observers would notice, such as blurring, blocking artifacts, or noise.
+As an in-loop metric in video encoders to improve decisionmaking, SSIM is more computationally expensive than PSNR, and doesn't always yield drastic improvements in fidelity per bit. Psychovisual encoder options are still necessary in many cases to achieve the best perceptual efficiency.
+In multimedia compression, SSIM can be more valuable in optimization scenarios where the goal is to maintain optimal perceptual quality for a given size. However, SSIM doesn't perfectly correlate with the human visual system; newer metrics like XPSNR and SSIMULACRA2 have been developed to correlate more closely with human perception. Modern variations and extensions of SSIM have been developed to address specific needs. Multi-scale SSIM (MS-SSIM) evaluates images at different scales to better match human visual perception. Color SSIM variants have been proposed to better handle color information, and SSIMULACRA (succeeded by SSIMULACRA2) was developed to improve correlation with human perception. These adaptations have improved upon SSIM's perceptual goals in an ever-changing multimedia compression landscape.