Outline of Multiplexor
Basic Assumptions Video fps is constant Video stream carries PCRs PES = frame Audio frame contains 1024 samples (e.g. AAC) DTS of k-th video frame is specified as VDTS(k) = VDTS(0) + k / fps (1) where VDTS(0) is initial DTS of the very first video frame (usually DTS(0)=PTS(0)), ‘fps‘ is the frame […]
Outline of Exponential Frame-Level Adaptive Rate Control
i shortly outline an exponential frame-level Rate Control model, where QP (quantization parameter) is constant (or near-constant) within a single frame. Notice that MB-level rate control can achieve more accurate coded bitrate than frame-level because the quantization parameter (QP) may be changed with different MBs. Exponential Adaptive Rate Control is based on exponential R-Q model: […]
DCT Transfrom De-correlation and Coding of DCT coefficients
One of main properties of DCT transform is de-correlation (i.e. minimizing or even removing the inter-dependencies between coefficients). Actually coefficients within a DCT block get statistically independent. Hence, there is no sense to code a couple (or generally n-tuple) of DCT coefficients as one entity. It’s more efficient and simpler to code each DCT coefficient […]
Frame Level Parallelism
Introduction Generally speaking there three level of parallelism that can be exploited to speedup the video encoding/decoding processes: 1) GOP-level: each core takes its own GOP and processes it. 2) Frame Level: there are three variants: a) B-frame parallelism, if GOP structure contains two consecutive B-frames (IPbbPbbPbb…, small letter denotes – not used for reference) […]
Human Vision System – Facts
Content Sensitivity to low-frequency components Visual Cortex, Lateral Geniculate Nucleus etc. HVS is capable of perceiving the light approximately at contrast ratio of 10^5:1 There are two types of photoreceptors – rods and cones Why practical profiles of most video compression standards require YUV (or YCbCr) 4:2:0? Visibility of coding artifacts AROUND a scene cut […]
On Decision Heuristics in Encoders
Most of heuristic rules applied for mode decisions within Video Encoder are mathematically intractable and therefore they can’t be mathematically confirmed. Moreover modern encoding methods are so sophisticated that the amount of options is incredibly large for brute-force decision, we need sub-optimal heuristics to make encoders to meet real-time. We have to believe that these […]
Notes on 3D Video Coding
There four main approaches in encoding stereo video in the format AVC/H.264 or HEVC/H.265: 1) [Multi-view Coding (MVC)] AVC/H.264 as well as H.265/HEVC supports a sort of scalable coding SVC (which officially is called – MVC) to encode multi-view video by full exploitation of inter-view and intra-view redundancies. That method is reported to provide the best […]
Transport Stream Container Links
MPEG Transport Stream Multiplexing How Generate PTS/DTS from elementary video stream Note on Start Code Emulation Within Transport Stream How Count AVC/H.264 Video Frames in MPEG-2 Systems (Transport Stream) file? Discontinuity Indicators Python Script to Check PCR Integrity On Duplicated Packets in Transport Stream Python Scripts to Analyze and Process Transport Stream Start Code Emulation […]
Video Optimization
Video Optimization – What it means? Video Optimization is a recompression of video stream (in real-time or in off-line) with lower bit-rate and without compromising visual perception (i.e. input video and output video are “perceptual identical” but output video takes fewer bits). Why Video Optimization is commercially valuable? A Significant part of video in Internet traffic […]
MP4 Container
Content General Pros of MP4 Container Cons of MP4 Container How get N-th video frame (AVC/H.264 or HEVC/H.265)? Note on Bitrate Box (‘btrt’) Fragmented MP4 Details on Fragmented MP4 Fragment Structure Special Boxes in Fragmented mp4-file Python Scripts to Process mp4-files Parse stsd-box of video track in mp4-file Traverse Fragmented MP4 file and […]