Video Compression

VideoNerd

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 […]

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 […]

AVC/H.264

AVC/H.264 Error Handling Dangling Fields in AVC/H.264 DPB Monitoring Algorithm Sections from e-book “Anatomy of H.264/AVC” I-frame Bit-Rate Peaks frame_num and stream thinning POC Difference and Smooth Playback A Pitfall of AVC/H.264 HRD Analysis Difference between NAL HRD and VCL HRD Negative POCs Hierarchical B-frames and B-Pyramid idr_pic_id and redundant pictures Why Some Paremeters in […]

HEVC Lossless Mode

HEVC (Ver. 1) adopts two lossless modes:          IPCM – actually ‘copy-paste’ mode (even not DPCM)          Lossless Entropy   Lossless Entropy Mode This mode is signaled by PPS parameter transquant_bypass_enabled_flag . Lossless entropy mode is applied on CU-level, i.e. some CUs can be coded as lossless while the rest is coded in regular lossy […]

x265 codec

Content Getting x265 codec Compilation x265 Running of x265  How Run x265 in Parallel Encode in Lossless Mode Encode in Constant QP Mode How Run x265 via ffmpeg Disadvantages of x265 Example Code of using libx265.lib Getting x265 codec to take open-source x265 you need Mercurial Tortoise hg installed, and to download x265 sources (for […]