Video Compression

VideoNerd

OpenJPEG – Encoding and Decoding of JPEG2000 Images

Content Lossless Encoding RGB Input YUV420 Input Lossy Encoding Tiling Lazy Coding Decoding Appendix: subjective quality analysis between JPEG and JPEG2000 Appendix: JPEG2000 encoding with ffmpeg   The open source (BSD 3-Clause license)  OpenJPEG  contains both ready binaries for Linux, MAC and Windows and code sources, OpenJPEG supports JPEG2000 and in this post i dwell […]

High Efficiency Image File Format (HEIF and HEIC)

High Efficiency Image File Format (HEIF and HEIC) is a container format for bitstreams coded by the High Efficiency Video Coding (HEVC) standard. Note that there is a subtle difference between HEIF and HEIC. HEIF is a file format for storing individual HEVC bitstreams of still images while the HEIC format is tailored to store […]

shaka packager

Preamble: Some Details on HLS In HTTP-based rate-adaptive streaming protocols, like HLS, videos are encoded into multiple representations at different bitrates and resolutions. Each representation is then partitioned into segments of lengths that are several seconds long. At any moment, Client can dynamically choose a segment from an appropriate representation (according to current channel capacity) […]

WebP Image Format with ffmpeg

WebP image format was introduced by Google in 2010 and it’s is based on lossy and lossless intra-frame coding of the VP8.  Google claims WebP images using lossless compressed are 26% smaller in file size compared to PNGs, and files with lossy compression are 25-34% smaller in size compared to JPEG images at equivalent perceived […]

WEBM Container

WEBM – This is an audiovisual media file format. It is primarily intended to offer a royalty-free alternative to use in the HTML5 video and the HTML5 audio elements. Currently WEBM supports only VP8 or VP9 or AV1 video formats and Opus or Vorbis audio.  WEBM can be considered as a subset of MKV (Matroska).  […]

BPG (Better Portable Graphics) Still Image Format

BPG (Better Portable Graphics) is based on a subset of HEVC/H.265 tools. Main supported features: chroma formats – grayscale, YCbCr (4:2:0, 4:2:2, 4:4:4)  Alpha channel Native support of 8 to 14 bits per channel for a higher dynamic range. Lossless compression is supported.   Ready windows binaries (64-bit) are located at https://bellard.org/bpg/bpg-0.9.8-win64.zip   .  The binaries […]

Video Codec and Pareto Optimization

This paper was inspired by the paper “Multi-Objective Optimization“ Video Codec is characterized by three parameters:  visual quality, bitrate and complexity (or encoding times). We can’t simultaneously improve, say, the visual quality and the bitrate without sacrificing the complexity.  Similarly, we can’t reduce complexity without sacrificing visual quality and/or bitrate. This resembles Pareto optimization: The […]

SVT-AV1

Content Getting SVT-AV1 Sources How Build SVT-AV1 in Windows Running SVT-AV1 Encoder Running SVT-AV1 Decoder Note on Performance of SVT-AV1 How Run Encoding of 10 bits per pixel Raw Sequence? SVT-AV1 with ffmpeg   Getting SVT-AV1 Sources the new version 1.4.0 has been published: git clone https://gitlab.com/AOMediaCodec/SVT-AV1 or alternatively you can download zip-sources    How […]

Features Comparison of Video Compression Standards: H264, HEVC and VP9

General H264 – HEVC – VP9 Features List Detailed Explanation of Features Start Codes Containers Reference Frame Scaling Non-Displayed Frames/Superframes HRD – Hypothetical Reference Decoder HDR – High Dynamic Range Slices Tiles Probability Models Adaptation Superblock Size Quadtree Partitioning Segmentation Below-Left Intra Predictors Intra Prediction Modes Filtering Neighboring Samples Asymmetric Inter Partition Weighted prediction Bi-Prediction […]

Ogg Theora Video Coding Standard and Compilation for Windows

Introduction Theora video coding standard released in 2008 by Xiph.Org Foundation, and its specifications are here   .  Theora’s code sources are here     . Notice that the ffmpeg tool by default supports Theora encoding ‘-c:v  libtheora‘  (provided that in the configuration of ffmpeg set –enable-libtheora), but the output stream is not played, ffplay reports […]