Video Compression

VideoNerd

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

HEVC Detailed Tutorial

In few sentences what are the main differences between HEVC and H.264/AVC: 1) larger blocks 64×64 2) Sample adaptive offset filter (SAO, applied after the deblocking filter) 3) Tiles 4) Wavefront parallel processing (WPP) 5) Dependent slice segments 7) free high-level hevc analyzer  – hevc browser (prebuilt version)   HEVC Detailed Tutorial   Appendix: Heuristic […]

Does 60 Hz video require twice the bit rate of 30 Hz?

Is it correct to double the bandwidth when the frame rate of video stream is switched to 60Hz from 30Hz? Common sense says: if you double the number of frames then the bitrate should be also doubled. On the other hand, the temporal distance between frames in 60Hz is twice less than those of 30Hz. […]

Chicken and Egg Dilemma in Rate Control Implementations

The purpose of Rate Control is to determine a quantization parameter QP for a block (or for a frame) by using the MAD or SAD or other appropriate metric. On the other hand the MAD/SAD of the block (or the frame) can be computed only after determination of QP, because MAD (as well as SAD) […]

On Packet Duplication in Transport Stream

MPEG System standard (13818) allows packet to be duplicated, it says: “In transport streams, duplicate packets may be sent as two, and only two, consecutive transport stream packets of the same PID. The duplicate packets shall have the same continuity_counter value as the original packet and the adaptation_field_control field shall be equal to ’01’ or […]

Python Script to Check PCR Integrity

The python script PcrAnalysis.py  is tailored to check PCR integrity (or timing integrity) of MPEG TS stream. This script analyzes: whether PCR interval is smaller or equal to 100ms (as required by MPEG System standard). If not a violation is reported. whether PCR values are monotonic unless the discontinuity flag is set. If not a […]

How Extract Video Elementary Stream from MPEG DASH segment 

Shortly on MPEG-DASH DASH is a complex hierarchical schema:  MPD-file (the manifest file) is divided into periods, each period is divided into adaptation sets, adaptation set is divided in representations and each representation is divided into segments:         How Generate MPEG-DASH with shaka-packager A single DASH segment is commonly not decodable since […]