Video Compression

VideoNerd

HEVC CRA and RASL Frames: Definitions and Relationship

Terminology: CRA (Clean Random Access) is a compromise between open gop coding efficiency (notice that closed gop cadence is worse due to temporal prediction discontinuities) and random access ability (sometimes ‘seekability’ is used instead of ‘random access ability’). Leading pictures – following in decoding order but preceding in presentation order. Leading pictures are divided into […]

On QP-Modulation (Adaptive Quantization)

QP-Modulation (or Adaptive Quantization) methods are based on the well known empirical fact that the human visual system (HVS) is less sensitive to distortions in high-complexity areas than those of homogeneous regions. Moreover, high complexity often corresponds to fast motion, so a decrease in quality will be less noticeable. By the way, this property has […]

On Frame/MB Complexity

The MB Complexity is estimated as  MBsize*QP (or more generally Mbsize * QP k, where k>=1 ).  This sort of complexity is widely used in Rate Control methods to derive quantization steps. There are two troubles with this estimation:   it’s better to use Qstep instead of QP, because the relationship between QP and Qstep […]

Discontinuities in Chroma Blocks

This section is a resume of a public discussion with Luc Trudeu in LinkedIn. In AV1 as well as in HEVC/H.265 chroma partition mimics luma one as long as the block sizes are permitted. For example, in case of 4:2:0, the 16×4 luma partition can’t produce a 8×2 in chroma (because the partition 8×2 is […]

Presentation on Motion Estimation

The presentation Motion Estimation for Video Coding covers the following topics: 1) General intro to motion prediction models – translational and affine 2) Taxonomy of Motion Estimation Methods 3) Use case: Block Matching Motion Estimation 4) Use cases of motion estimation for HEVC/H.265 and AV1   Notes: The simplest motion model of Motion Estimation is […]

Useful Python Scripts

Content: Removal Specific SEI Message from H264/AVC Elementary Stream  Get H264/AVC Video Statistics from Transport Stream  Get Picture Statistics From HEVC/H.264 Elementary Stream  Extract a Selected GOP starting at CRA in HEVC/H.265 Elementary Stream  Print High-Level Syntax Elements (SPS/PPS) in HEVC/H.265 Elementary Stream  Modify Aspect Ratio Parameters in HEVC/H.265 Elementary Stream  Detect Discontinuities in frame_num […]

Encoding with X264 (incl. ffmpeg)

Content Lossless Encoding with x264 and ffmpeg Constant QP Encoding Constant Quality Mode (CRF) Number Reference Frames How Add AUDs (Access Unit Delimiters)           Benchmark option of ffmpeg Free H264 High Level Stream Analyzer   Note: Binaries for all platforms of x264 are located at https://download.videolan.org/x264/binaries/ Lossless Encoding with x264 and ffmpeg To instruct x264  […]

Rate Control of x265

Content General Selected x265 parameters Presets x265 Parallelism Frame-Level Parallelism CTU-level Parallelism Rate Control: Coding Thread Rate Control Initialization (Stream Level) Rate Control Start (Frame Level) RC Reset FrameStartQP B-Frame Initial QP ABR Mode: I/P Frame Initial QP CRF Mode: I/P-Frame Overflow Correction Model Update CalcQp per CU Rate Control End (Frame-Level) Update Statistics Amortization […]

Why HEVC has so many Intra Prediction Modes comparing to AVC?

During development of HEVC and after finalization some practitioners criticized the standard for a ‘huge’ amount of diagonal prediction modes – 31 pure angular prediction modes (except vertical,horizontal, DC and plane) due to impact on complexity. My conjecture on Abundance of Intra Prediction Modes in HEVC: DCT is poor in approximation of diagonal edges (because […]

Interlace Support in HEVC

Unlike to H.264/AVC, interlace-dedicated coding in HEVC is not exist: No mixed frame-field interaction (like PAFF in H.264/AVC) No interlace scanning of transform coefficients No correction MVX[1] (or y-component of MV) if current and reference pictures are in different polarity (top-bottom or bottom-top). However, in HEVC the interlace video content can be indicated (signaled in […]