280 likes | 424 Views
Overview of Fine Granularity Scalability in MPEG-4 Video Standard. Weiping Li Presented by : Brian Eriksson. Introduction - Problem. Tradition System Video encoded close to channel capacity Decoded using all of the bits Internet Video System Channel capacity changes
E N D
Overview of Fine Granularity Scalability in MPEG-4 Video Standard Weiping Li Presented by : Brian Eriksson
Introduction - Problem • Tradition System • Video encoded close to channel capacity • Decoded using all of the bits • Internet Video System • Channel capacity changes • Partially decodable within a bit range
Received Quality = Dialup Rate Good = Broadband Rate Bad = Layered Coding Low High = Desired Coding Channel Bitrate Introduction – Video Coding Performance = Distortion-Rate Curve
Received Quality Good Bad = Layered Coding Low High Channel Bitrate Previous Layered Coding Methods
MPEG-2 Overview • I-Frame – Intracoded Picture • Contains all frame information • P-Frame – Predictive-Coded Picture • Uses previous frame and motion information to reconstruct frame • B-Frame – Bidirectional-Coded Picture • Uses previous frame, next frame, and motion information to reconstruct the frame
Temporal Scalability • Video is encoded into two layers with equal resolution but using different prediction. • Base layer has lower frame rate Base Enh. Enh. Base Enh. Enh. Base Enh. Enh. With Enhancement Layer : Frame Rate = 30 fps Base X X Base X X Base X X Without Enhancement Layer : Frame Rate = 10 fps
MPEG-2 SNR Scalability Enhancement Layer Stream Video Output IDCT + + Base Layer Stream Motion Compensation • Motion prediction includes enhancement information • Efficiency dependent on two factors • Encoder uses enhancement layer (drift can occur) • Decoder receives enhancement layer
+ IDCT Enhancement Bitstream Enhancement Layer Video Upsampler Base Layer Video Base Bitstream (Motion Compensated) Spatial Scalability • Same frame rate, different resolutions • Base frame = 128x128, enhancement = 256x256 • Enhancement Layer not in prediction loop
Received Quality Good Bad Low High Channel Bitrate MPEG-4 Fine Granularity Scalability Technique = Distortion-Rate Curve = Desired Coding
Bitplane Coding Technique • Given vector X: • X = [-12, -53, 62, -7, 31,…,180,-43,…,5] • Convert to signed magnitude • Separate into sign bit and absolute values
Sign(X) = [0, 0, 1, 0, 1,…,1,0,…,1] • Abs(X) = [12, 53, 62, 7,31,…,180,43,…,5] • To find the number of bitplanes needed, find the maximum value of abs(X) • Max(abs(X)) = 180 = 10110100b • 8 bitplanes • Sign bit plane • 1 bitplane Bitplane Coding Technique
Sign(X) = [0, 0, 1, 0, 1,…,1,0,…,1] X = [-12, -53, 62, -7, 31,…,180,-43,…,5] c 0,0,1,0,1,…,1,0,…,1 0,0,0,0,0,…,1,0,…,0 0,0,0,0,0,…,0,0,…,0 0,1,1,0,0,…,1,1,…,0 0,1,1,0,1,…,1,0,…,0 1,0,1,0,1,…,0,1,…,0 1,1,1,1,1,…,1,0,…,1 0,0,1,1,1,…,0,1,…,0 0,1,0,1,1,…,0,1,…,1 Bitplane Coding Technique
Run Level Encoding • Symbol : (RUN, EOP) • RUN = Number of Consecutive Zeros before a 1 • EOP = 0 if there are more ones • EOP = 1 if the rest of the line are zeros. • Example: • {1,0,1,0,0,0,1,0,0,0,…} • = (0,0),(1,0),(3,1) • {0,0,0,1,0,0,0,…} • = (3,1)
MPEG-4 Bitplane FGS Technique • Base layer reaches lower bound of bit-range • Divide image into 8x8 DCT blocks • Divide blocks into Y,U,V color components • Use bitplane run-level coding to encode/decode
Original Signal DCT Bitplane Encoding + - Enhancement Layer Signal Base Layer Signal (Motion Compensated) Fine Granularity Scalability Encoder
Fine Granularity Scalability Decoder Bitplane Decoding Enhancement Layer Video IDCT + Base Layer Video (Motion Compensated)
c c c c Number of Truncated Layers = 2 Received X = [-12, -52, 60, -4,28,…,180,-40,…,-4] Original X = [-12, -53, 62, -7,31,…,180,-43,…,-5] Number of Truncated Layers = 3 Received X = [-8, -48, 56, -0,24,…,176,-40,…,-0] Original X = [-12, -53, 62, -7,31,…,180,-43,…,-5] Number of Truncated Layers = 0 Received X = [-12, -53, 62, -7,31,…,180,-43,…,-5] Original X = [-12, -53, 62, -7,31,…,180,-43,…,-5] Number of Truncated Layers = 1 Received X = [-12, -52, 62, -6,30,…,180,-42,…,-4] Original X = [-12, -53, 62, -7,31,…,180,-43,…,-5] 0,0,1,0,1,…,1,0,…,1 0,0,0,0,0,…,1,0,…,0 0,0,0,0,0,…,1,0,…,0 0,0,1,0,1,…,1,0,…,1 0,0,0,0,0,…,1,0,…,0 0,0,1,0,1,…,1,0,…,1 0,0,1,0,1,…,1,0,…,1 0,0,0,0,0,…,1,0,…,0 0,0,0,0,0,…,0,0,…,0 0,0,0,0,0,…,0,0,…,0 0,0,0,0,0,…,0,0,…,0 0,0,0,0,0,…,0,0,…,0 0,1,1,0,0,…,1,1,…,0 0,1,1,0,0,…,1,1,…,0 0,1,1,0,0,…,1,1,…,0 0,1,1,0,0,…,1,1,…,0 0,1,1,0,1,…,1,0,…,0 0,1,1,0,1,…,1,0,…,0 0,1,1,0,1,…,1,0,…,0 0,1,1,0,1,…,1,0,…,0 1,0,1,0,1,…,0,1,…,0 1,0,1,0,1,…,0,1,…,0 1,0,1,0,1,…,0,1,…,0 1,0,1,0,1,…,0,1,…,0 1,1,1,1,1,…,1,0,…,1 0,0,0,0,0,…,0,0,…,0 1,1,1,1,1,…,1,0,…,1 1,1,1,1,1,…,1,0,…,1 0,0,0,0,0,…,0,0,…,0 0,0,0,0,0,…,0,0,…,0 0,0,1,1,1,…,0,1,…,0 0,0,1,1,1,…,0,1,…,0 0,0,0,0,0,…,0,0,…,0 0,0,0,0,0,…,0,0,…,0 0,0,0,0,0,…,0,0,…,0 0,1,0,1,1,…,0,1,…,1 Truncated Bitplane
Frequency Weighted Bitplane Normal Bitplane DCT Index DCT Index Frequency Weighting in Bitplane
Selectively Enhanced Bitplane • Detect visually significant area • Shift upward in bitplane • More likely to be included in truncated bitstream
Other Methods • Error Resilience in Bitplane • Random burst errors in the bitstream • Resynchronization markers are used to resynch. • Temporal Scalability in Bitplane • Uses FGS to encode/decode the entire temporal enhancement frame
1 Layer Removed 2 Layers Removed 4 Layers Removed 5 Layers Removed 6 Layers Removed 3 Layers Removed Simulation – Enhanced Weighted Bitplane
Conclusions • FGS Bitplane method allows for quality parallel to distortion-rate curve • A wavelet-based approach may yield better results • Fairly simple implementation