SlideShare a Scribd company logo
1 of 37
Error Resiliency &  Concealment in H.264 Code from jm9.8/x264 http:// getonebyone .com/ H264.html
What is Error Resiliency? “ To enable the compressed bit-stream to better resist  channel errors” OR “ Error resilience techniques enable the compressed  bit-stream to resist channel errors so that the impact on the reconstructed image quality is minimal”
But… ,[object Object],[object Object],[object Object],[object Object]
Computation Consumption ,[object Object]
[object Object],[object Object],Tradeoff Error Resiliency  Compression 1
H.264 Eco System Heterogeneous Environments Transport
[object Object],[object Object],H.264/AVC has adopted a two-layer structure design VCL NAL Data Partitioning Coded MBs Coded  Slice/Partition Control Data H.264/AVC two-layered Structure Design
Entropy Coding Data Partition  NAL Packets (nal-units or slices) NAL Entropy Decoding Decode Prediction Info,  Quantized Transform Coeffs….  VLC or AC VLC CodedData Coded MBs Coded Slice/Partition Packets (nal-units or slices) Encode Abstract Level Flow Diagram internet
Resilience & Concealment in Heterogeneous Environment
Error Propagation ,[object Object],[object Object],[object Object],Spatial and Temporal Error Propagation Error Position Damaged area Forward Prediction
Error Resilience Employed w.r.t Profiles ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Error Resiliency Schemes ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Flexible Macroblock Ordering (FMO) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
FMO   cont.. ,[object Object],[object Object],[object Object],[object Object]
    FMO   cont.. ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
    FMO   cont.. FMOInit FmoGenerateMapUnitToSliceGroupMap FmoGenerateMBAmap FmoGenerateType0MapUnitMap FmoGenerateType1MapUnitMap FmoGenerateType2MapUnitMap FmoGenerateType3MapUnitMap FmoGenerateType4MapUnitMap FmoGenerateType5MapUnitMap FmoGenerateType6MapUnitMap Main Encode_one_frame() Frame_picture() Field_picture () FMOInit
Arbitrary Slice Ordering ,[object Object],[object Object],[object Object],[object Object],sender receiver Slice # 0 Slice # 1 Slice # 2 0 20 40
[object Object],[object Object],[object Object],Arbitrary Slice Ordering
[object Object],[object Object],[object Object],[object Object],Data Partition (DP)
Data Partition (DP) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Concealment in Data Partitioning Error concealment mechanism implemented by the decoder  *A = header info  *B = Intra CBPs and I-block trans-coeffs *C = Inter CBPs and P-block trans-coeffs
Error Concealment API ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],//! Slice typedef struct { DataPartition   *partArr;  … .. }  Slice
Data Partition (DP) Code_a_picturre Encode_one_Slice() Start_slice() Generates Slice (Partiton) Header Main Encode_one_frame() Frame_picture() Field_picture () SliceGroupId, Picture *, TotalCodedMBs Picture * Picture * Picture * Picture * #define MAXSLICEPERPICTURE 100 typedef struct  { int  no_slices; Slice *slices[MAXSLICEPERPICTURE]; …… } Picture;
Redundant Slices ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
SP- /SI- Synchronization/ Switching Frame ,[object Object],[object Object],[object Object],[object Object]
SP/SI-Switching ,[object Object],Same value Encoder Decoder Feedback channel
Reference Frame Selection ,[object Object],[object Object]
Reference Frame Selection ,[object Object],[object Object],[object Object],[object Object],[object Object]
Rate Distortion Optimization The error propagation and drift due to predictive coding can be eliminated by periodically inserting intra-coded MBs in the bitstream.   Adaptive Intra Refresh (AIR): H.264 uses intelligent intra-block refreshing by R-D (rate-distortion) control, such that an appropriate block coding option  o*  will be selected  that minimizes the Lagrangian cost function , unlike the periodic or random intra refresh in earlier standards (e.g., MPEG-4, H.263)
Intra Block Refreshing by R-D Control Here, o  =  block coding mode (inter/intra mode and block size) D(o) =  distortion introduced by encoding with mode  o  and is computed by the SAD (sum of absolute difference) in low complexity mode and by SSD (sum of squared difference) in high complexity mode R(o) =  corresponding coding rate, whereas for inter-block mode it represents the block residual and corresponding motion vector(s). λ  =  Lagrange parameter for appropriate weighting of rate and distortion.
double RDCost_for_8x8blocks  ( int*  cnt_nonz,  // --> number of nonzero coefficients int64*  cbp_blk,  // --> cbp blk double  lambda,  // <-- lagrange multiplier int  block,  // <-- 8x8 block number int  mode,  // <-- partitioning mode short  pdir,  // <-- prediction direction short  ref,  // <-- reference frame short  bwd_ref  // <-- abp type ) Error Concealment API Desc:  Calculates Cost function to find the appropriate block coding option.  Return:  Get Rate-Distortion Cost Intra Block Refreshing by R-D Control
Random Intra MB Refresh In order to enhance robustness to data loss, the H.264/AVC design contains a new ability to allow an encoder to send redundant representations of regions of pictures. void RandomIntraInit ( int xsize,  int ysize,  int refresh ) Desc:  Initializes Random Intra module. xsize, ysize  = size of picture in MBs refresh = refresh rate in MBs per picture void RandomIntraNewPicture ( ) Desc:   Selects new set of MBs for forced Intra based on the RefreshPattern initialized in  RandomIntraInit()
Random Intra MB Refresh Main Init_img() RandomIntraInit() int xsize, int ysize, int refresh Code_a_picturre Main Encode_one_frame() Frame_picture() Field_picture () Picture * Picture * Picture * Picture * RandomIntraNewPicture () ,[object Object],[object Object],Allocates forced INTRA MBs
Parameter Sets (SPS/PPS) ,[object Object],[object Object],[object Object],[object Object],[object Object]
Encoder Side Error Resilience Error Concealment   ( ) Encode ALL Frames( ) (main) Encode_One_Frame  ( ) Field/Frame Picture  ( ) (Picture *)
Error Concealment Decoder   Error Concealment Decode ALL Frames (main) Docode_One_Frame ( Flag, DecParams, DecOutputs ) Read_New_Slice ( DecParams, DecInputs, DecOutputs ) Flag is the state variable for error detector and concealor ( DecParams, DecInputs, DecOutputs )
The End http:// getonebyone .com/ H264.html

More Related Content

What's hot

Mid-Point Cirle Drawing Algorithm
Mid-Point Cirle Drawing AlgorithmMid-Point Cirle Drawing Algorithm
Mid-Point Cirle Drawing Algorithm
Neha Kaurav
 
nguyên lý cơ bản và căc thông số trong lọc máu liên tục crrt
nguyên lý cơ bản và căc thông số trong lọc máu liên tục crrtnguyên lý cơ bản và căc thông số trong lọc máu liên tục crrt
nguyên lý cơ bản và căc thông số trong lọc máu liên tục crrt
SoM
 

What's hot (20)

Finite state automaton
Finite state automatonFinite state automaton
Finite state automaton
 
Bezier curve computer graphics
Bezier curve computer graphics Bezier curve computer graphics
Bezier curve computer graphics
 
Điều chỉnh liều kháng sinh trong crrt
Điều chỉnh liều kháng sinh trong crrtĐiều chỉnh liều kháng sinh trong crrt
Điều chỉnh liều kháng sinh trong crrt
 
cài đặt thông số máy crrt - bảng theo dõi lọc máu liên tục
cài đặt thông số máy crrt - bảng theo dõi lọc máu liên tụccài đặt thông số máy crrt - bảng theo dõi lọc máu liên tục
cài đặt thông số máy crrt - bảng theo dõi lọc máu liên tục
 
Mid-Point Cirle Drawing Algorithm
Mid-Point Cirle Drawing AlgorithmMid-Point Cirle Drawing Algorithm
Mid-Point Cirle Drawing Algorithm
 
Compiler Design Unit 4
Compiler Design Unit 4Compiler Design Unit 4
Compiler Design Unit 4
 
simple video compression
simple video compression simple video compression
simple video compression
 
Đề Thi HK2 Toán 8 - THCS Bình Quới Tây
Đề Thi HK2 Toán 8 - THCS Bình Quới TâyĐề Thi HK2 Toán 8 - THCS Bình Quới Tây
Đề Thi HK2 Toán 8 - THCS Bình Quới Tây
 
Image Restoration And Reconstruction
Image Restoration And ReconstructionImage Restoration And Reconstruction
Image Restoration And Reconstruction
 
Đề Thi HK2 Toán 8 - THCS Trường Chinh
Đề Thi HK2 Toán 8 - THCS Trường ChinhĐề Thi HK2 Toán 8 - THCS Trường Chinh
Đề Thi HK2 Toán 8 - THCS Trường Chinh
 
Đề Thi HK2 Toán 8 - THCS Nguyễn Du
Đề Thi HK2 Toán 8 - THCS Nguyễn DuĐề Thi HK2 Toán 8 - THCS Nguyễn Du
Đề Thi HK2 Toán 8 - THCS Nguyễn Du
 
nguyên lý cơ bản và căc thông số trong lọc máu liên tục crrt
nguyên lý cơ bản và căc thông số trong lọc máu liên tục crrtnguyên lý cơ bản và căc thông số trong lọc máu liên tục crrt
nguyên lý cơ bản và căc thông số trong lọc máu liên tục crrt
 
Đề Thi HK2 Toán 8 - THCS Phạm Đình Hổ
Đề Thi HK2 Toán 8 - THCS Phạm Đình HổĐề Thi HK2 Toán 8 - THCS Phạm Đình Hổ
Đề Thi HK2 Toán 8 - THCS Phạm Đình Hổ
 
Digital audio
Digital audioDigital audio
Digital audio
 
Đề Thi HK2 Toán 8 - THCS Lê Văn Tám
Đề Thi HK2 Toán 8 - THCS Lê Văn TámĐề Thi HK2 Toán 8 - THCS Lê Văn Tám
Đề Thi HK2 Toán 8 - THCS Lê Văn Tám
 
Thuốc vận mạch.pdf
Thuốc vận mạch.pdfThuốc vận mạch.pdf
Thuốc vận mạch.pdf
 
Computer graphics
Computer graphicsComputer graphics
Computer graphics
 
Multimedia System & Design Ch 1, 2, 3 Multimedia
Multimedia System & Design Ch 1, 2, 3 MultimediaMultimedia System & Design Ch 1, 2, 3 Multimedia
Multimedia System & Design Ch 1, 2, 3 Multimedia
 
System Programming :: Assembler
System Programming :: AssemblerSystem Programming :: Assembler
System Programming :: Assembler
 
ĐỌC KẾT QUẢ HOLTER ĐIỆN TÂM ĐỒ 24 GIỜ
ĐỌC KẾT QUẢ HOLTER ĐIỆN TÂM ĐỒ 24 GIỜĐỌC KẾT QUẢ HOLTER ĐIỆN TÂM ĐỒ 24 GIỜ
ĐỌC KẾT QUẢ HOLTER ĐIỆN TÂM ĐỒ 24 GIỜ
 

Viewers also liked

AMD VIDEO CODING ENGINE: THE ROUTE TOWARDS LOW-LATENCY CLOUD GAMING SOLUTIONS
AMD VIDEO CODING ENGINE: THE ROUTE TOWARDS LOW-LATENCY CLOUD GAMING SOLUTIONSAMD VIDEO CODING ENGINE: THE ROUTE TOWARDS LOW-LATENCY CLOUD GAMING SOLUTIONS
AMD VIDEO CODING ENGINE: THE ROUTE TOWARDS LOW-LATENCY CLOUD GAMING SOLUTIONS
Khaled MAMOU
 
DIC_video_coding_standards_07
DIC_video_coding_standards_07DIC_video_coding_standards_07
DIC_video_coding_standards_07
Aniruddh Tyagi
 

Viewers also liked (9)

Error Resilient Video Communication
Error Resilient Video CommunicationError Resilient Video Communication
Error Resilient Video Communication
 
H.264 video standard
H.264 video standardH.264 video standard
H.264 video standard
 
H.264 vs HEVC
H.264 vs HEVCH.264 vs HEVC
H.264 vs HEVC
 
Error control techniques for video communications
Error control techniques for video communications Error control techniques for video communications
Error control techniques for video communications
 
AMD VIDEO CODING ENGINE: THE ROUTE TOWARDS LOW-LATENCY CLOUD GAMING SOLUTIONS
AMD VIDEO CODING ENGINE: THE ROUTE TOWARDS LOW-LATENCY CLOUD GAMING SOLUTIONSAMD VIDEO CODING ENGINE: THE ROUTE TOWARDS LOW-LATENCY CLOUD GAMING SOLUTIONS
AMD VIDEO CODING ENGINE: THE ROUTE TOWARDS LOW-LATENCY CLOUD GAMING SOLUTIONS
 
Resilience John Halbrook Iowa Red Cross
Resilience  John Halbrook Iowa Red Cross Resilience  John Halbrook Iowa Red Cross
Resilience John Halbrook Iowa Red Cross
 
DIC_video_coding_standards_07
DIC_video_coding_standards_07DIC_video_coding_standards_07
DIC_video_coding_standards_07
 
Getting the most out of H.264
Getting the most out of H.264Getting the most out of H.264
Getting the most out of H.264
 
Surveon 3 MP 30 FPS H.264 HDR Camera Series
Surveon 3 MP 30 FPS H.264 HDR Camera SeriesSurveon 3 MP 30 FPS H.264 HDR Camera Series
Surveon 3 MP 30 FPS H.264 HDR Camera Series
 

Similar to Error Resiliency and Concealment in H.264 MPEG-4 Part 10

Design and implementation of multi channel frame synchronization in fpga
Design and implementation of multi channel frame synchronization in fpgaDesign and implementation of multi channel frame synchronization in fpga
Design and implementation of multi channel frame synchronization in fpga
IAEME Publication
 
Introduction to Video Compression Techniques - Anurag Jain
Introduction to Video Compression Techniques - Anurag JainIntroduction to Video Compression Techniques - Anurag Jain
Introduction to Video Compression Techniques - Anurag Jain
Videoguy
 
damaro.ppt
damaro.pptdamaro.ppt
damaro.ppt
Videoguy
 
unit2-210710110327.pdf
unit2-210710110327.pdfunit2-210710110327.pdf
unit2-210710110327.pdf
ssuser3aa461
 

Similar to Error Resiliency and Concealment in H.264 MPEG-4 Part 10 (20)

Design and implementation of multi channel frame synchronization in fpga
Design and implementation of multi channel frame synchronization in fpgaDesign and implementation of multi channel frame synchronization in fpga
Design and implementation of multi channel frame synchronization in fpga
 
Unit 3 - Data Link Layer - Part A
Unit 3 - Data Link Layer - Part AUnit 3 - Data Link Layer - Part A
Unit 3 - Data Link Layer - Part A
 
Introduction to Video Compression Techniques - Anurag Jain
Introduction to Video Compression Techniques - Anurag JainIntroduction to Video Compression Techniques - Anurag Jain
Introduction to Video Compression Techniques - Anurag Jain
 
damaro.ppt
damaro.pptdamaro.ppt
damaro.ppt
 
Bsdconv
BsdconvBsdconv
Bsdconv
 
Efficient video compression using EZWT
Efficient video compression using EZWTEfficient video compression using EZWT
Efficient video compression using EZWT
 
Image Compression Using Intra Prediction of H.264/AVC and Implement of Hiding...
Image Compression Using Intra Prediction of H.264/AVC and Implement of Hiding...Image Compression Using Intra Prediction of H.264/AVC and Implement of Hiding...
Image Compression Using Intra Prediction of H.264/AVC and Implement of Hiding...
 
unit2-210710110327.pdf
unit2-210710110327.pdfunit2-210710110327.pdf
unit2-210710110327.pdf
 
Computer Networks Unit 2 UNIT II DATA-LINK LAYER & MEDIA ACCESS
Computer Networks Unit 2 UNIT II DATA-LINK LAYER & MEDIA ACCESSComputer Networks Unit 2 UNIT II DATA-LINK LAYER & MEDIA ACCESS
Computer Networks Unit 2 UNIT II DATA-LINK LAYER & MEDIA ACCESS
 
Ax31338342
Ax31338342Ax31338342
Ax31338342
 
ERROR RESILIENT FOR MULTIVIEW VIDEO TRANSMISSIONS WITH GOP ANALYSIS
ERROR RESILIENT FOR MULTIVIEW VIDEO TRANSMISSIONS WITH GOP ANALYSIS ERROR RESILIENT FOR MULTIVIEW VIDEO TRANSMISSIONS WITH GOP ANALYSIS
ERROR RESILIENT FOR MULTIVIEW VIDEO TRANSMISSIONS WITH GOP ANALYSIS
 
An overview Survey on Various Video compressions and its importance
An overview Survey on Various Video compressions and its importanceAn overview Survey on Various Video compressions and its importance
An overview Survey on Various Video compressions and its importance
 
Fa2c4eb1e3582a1a36255a82b258cb03a7dc
Fa2c4eb1e3582a1a36255a82b258cb03a7dcFa2c4eb1e3582a1a36255a82b258cb03a7dc
Fa2c4eb1e3582a1a36255a82b258cb03a7dc
 
Fa2c4eb1e3582a1a36255a82b258cb03a7dc
Fa2c4eb1e3582a1a36255a82b258cb03a7dcFa2c4eb1e3582a1a36255a82b258cb03a7dc
Fa2c4eb1e3582a1a36255a82b258cb03a7dc
 
Error resilient for multiview video transmissions with gop analysis
Error resilient for multiview video transmissions with gop analysisError resilient for multiview video transmissions with gop analysis
Error resilient for multiview video transmissions with gop analysis
 
IRJET-Simulation of Channel-Estimation for Digital Communication System based...
IRJET-Simulation of Channel-Estimation for Digital Communication System based...IRJET-Simulation of Channel-Estimation for Digital Communication System based...
IRJET-Simulation of Channel-Estimation for Digital Communication System based...
 
Ijctt v7 p110
Ijctt v7 p110Ijctt v7 p110
Ijctt v7 p110
 
S.A.kalaiselvan- robust video data hiding at forbidden zone
S.A.kalaiselvan- robust video data hiding at forbidden zoneS.A.kalaiselvan- robust video data hiding at forbidden zone
S.A.kalaiselvan- robust video data hiding at forbidden zone
 
Multi Process Message Formats
Multi Process Message FormatsMulti Process Message Formats
Multi Process Message Formats
 
Performance Evaluation of H.264 AVC Using CABAC Entropy Coding For Compound I...
Performance Evaluation of H.264 AVC Using CABAC Entropy Coding For Compound I...Performance Evaluation of H.264 AVC Using CABAC Entropy Coding For Compound I...
Performance Evaluation of H.264 AVC Using CABAC Entropy Coding For Compound I...
 

Recently uploaded

Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
 

Recently uploaded (20)

Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
 
Navigating Identity and Access Management in the Modern Enterprise
Navigating Identity and Access Management in the Modern EnterpriseNavigating Identity and Access Management in the Modern Enterprise
Navigating Identity and Access Management in the Modern Enterprise
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Quantum Leap in Next-Generation Computing
Quantum Leap in Next-Generation ComputingQuantum Leap in Next-Generation Computing
Quantum Leap in Next-Generation Computing
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
The Zero-ETL Approach: Enhancing Data Agility and Insight
The Zero-ETL Approach: Enhancing Data Agility and InsightThe Zero-ETL Approach: Enhancing Data Agility and Insight
The Zero-ETL Approach: Enhancing Data Agility and Insight
 
Introduction to use of FHIR Documents in ABDM
Introduction to use of FHIR Documents in ABDMIntroduction to use of FHIR Documents in ABDM
Introduction to use of FHIR Documents in ABDM
 
Stronger Together: Developing an Organizational Strategy for Accessible Desig...
Stronger Together: Developing an Organizational Strategy for Accessible Desig...Stronger Together: Developing an Organizational Strategy for Accessible Desig...
Stronger Together: Developing an Organizational Strategy for Accessible Desig...
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
ChatGPT and Beyond - Elevating DevOps Productivity
ChatGPT and Beyond - Elevating DevOps ProductivityChatGPT and Beyond - Elevating DevOps Productivity
ChatGPT and Beyond - Elevating DevOps Productivity
 

Error Resiliency and Concealment in H.264 MPEG-4 Part 10

  • 1. Error Resiliency & Concealment in H.264 Code from jm9.8/x264 http:// getonebyone .com/ H264.html
  • 2. What is Error Resiliency? “ To enable the compressed bit-stream to better resist channel errors” OR “ Error resilience techniques enable the compressed bit-stream to resist channel errors so that the impact on the reconstructed image quality is minimal”
  • 3.
  • 4.
  • 5.
  • 6. H.264 Eco System Heterogeneous Environments Transport
  • 7.
  • 8. Entropy Coding Data Partition NAL Packets (nal-units or slices) NAL Entropy Decoding Decode Prediction Info, Quantized Transform Coeffs…. VLC or AC VLC CodedData Coded MBs Coded Slice/Partition Packets (nal-units or slices) Encode Abstract Level Flow Diagram internet
  • 9. Resilience & Concealment in Heterogeneous Environment
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16. FMO cont.. FMOInit FmoGenerateMapUnitToSliceGroupMap FmoGenerateMBAmap FmoGenerateType0MapUnitMap FmoGenerateType1MapUnitMap FmoGenerateType2MapUnitMap FmoGenerateType3MapUnitMap FmoGenerateType4MapUnitMap FmoGenerateType5MapUnitMap FmoGenerateType6MapUnitMap Main Encode_one_frame() Frame_picture() Field_picture () FMOInit
  • 17.
  • 18.
  • 19.
  • 20.
  • 21. Concealment in Data Partitioning Error concealment mechanism implemented by the decoder *A = header info *B = Intra CBPs and I-block trans-coeffs *C = Inter CBPs and P-block trans-coeffs
  • 22.
  • 23. Data Partition (DP) Code_a_picturre Encode_one_Slice() Start_slice() Generates Slice (Partiton) Header Main Encode_one_frame() Frame_picture() Field_picture () SliceGroupId, Picture *, TotalCodedMBs Picture * Picture * Picture * Picture * #define MAXSLICEPERPICTURE 100 typedef struct { int no_slices; Slice *slices[MAXSLICEPERPICTURE]; …… } Picture;
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29. Rate Distortion Optimization The error propagation and drift due to predictive coding can be eliminated by periodically inserting intra-coded MBs in the bitstream. Adaptive Intra Refresh (AIR): H.264 uses intelligent intra-block refreshing by R-D (rate-distortion) control, such that an appropriate block coding option o* will be selected that minimizes the Lagrangian cost function , unlike the periodic or random intra refresh in earlier standards (e.g., MPEG-4, H.263)
  • 30. Intra Block Refreshing by R-D Control Here, o = block coding mode (inter/intra mode and block size) D(o) = distortion introduced by encoding with mode o and is computed by the SAD (sum of absolute difference) in low complexity mode and by SSD (sum of squared difference) in high complexity mode R(o) = corresponding coding rate, whereas for inter-block mode it represents the block residual and corresponding motion vector(s). λ = Lagrange parameter for appropriate weighting of rate and distortion.
  • 31. double RDCost_for_8x8blocks ( int* cnt_nonz, // --> number of nonzero coefficients int64* cbp_blk, // --> cbp blk double lambda, // <-- lagrange multiplier int block, // <-- 8x8 block number int mode, // <-- partitioning mode short pdir, // <-- prediction direction short ref, // <-- reference frame short bwd_ref // <-- abp type ) Error Concealment API Desc: Calculates Cost function to find the appropriate block coding option. Return: Get Rate-Distortion Cost Intra Block Refreshing by R-D Control
  • 32. Random Intra MB Refresh In order to enhance robustness to data loss, the H.264/AVC design contains a new ability to allow an encoder to send redundant representations of regions of pictures. void RandomIntraInit ( int xsize, int ysize, int refresh ) Desc: Initializes Random Intra module. xsize, ysize = size of picture in MBs refresh = refresh rate in MBs per picture void RandomIntraNewPicture ( ) Desc: Selects new set of MBs for forced Intra based on the RefreshPattern initialized in RandomIntraInit()
  • 33.
  • 34.
  • 35. Encoder Side Error Resilience Error Concealment ( ) Encode ALL Frames( ) (main) Encode_One_Frame ( ) Field/Frame Picture ( ) (Picture *)
  • 36. Error Concealment Decoder Error Concealment Decode ALL Frames (main) Docode_One_Frame ( Flag, DecParams, DecOutputs ) Read_New_Slice ( DecParams, DecInputs, DecOutputs ) Flag is the state variable for error detector and concealor ( DecParams, DecInputs, DecOutputs )
  • 37. The End http:// getonebyone .com/ H264.html