1 / 33

Multimedia Over IP Networks -- III

Multimedia Over IP Networks -- III. Hao Jiang Computer Science Department Boston College Nov. 13, 2007. Outline. We will discuss different issues related to robustness of multimedia data over IP network. Topics include: Error Correction Error Concealment Congestion Control.

coby
Download Presentation

Multimedia Over IP Networks -- III

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Multimedia Over IP Networks -- III Hao Jiang Computer Science Department Boston College Nov. 13, 2007 CS335 Principles of Multimedia Systems

  2. Outline • We will discuss different issues related to robustness of multimedia data over IP network. • Topics include: Error Correction Error Concealment Congestion Control CS335 Principles of Multimedia Systems

  3. Error Correction for Bit Errors • Schemes to make encoded media stream resistant to bit errors: • Adding error correction codes. • Insertion of re-synchronization bits. • Bi-directional entropy code. • Self-synchronization entropy code. • Error resilient entropy coding (EREC). CS335 Principles of Multimedia Systems

  4. Error Resilient Entropy Coding • Basic Idea: Convert variable length code to some kind of fixed length code. 1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 10 CS335 Principles of Multimedia Systems

  5. EREC Encoding Phase1 Phase2 1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 10 Phase3 Final 1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 10 CS335 Principles of Multimedia Systems

  6. EREC Encoding Scheme 1. The original code to be trans-coded is {Ci}, i = 0,…,M-1 2. Select slot width {Si} =0,…,M-1. Sum( Si ) = Sum ( length(Ci) ). Select search sequence {D(n)}, n =0,.., M-1. Set Phase = 0; 3. For i = 0 to M-1 If Si >= length(Ci) Put the code in slot Si; Update left space; else Searchslotmod( i+D(phase), M ); If there is space left, put the code in; 4. If all the codes fit into the slot Terminate; else phase++; Goto 3 CS335 Principles of Multimedia Systems

  7. EREC Decoding Scheme 1. Get the header information about slotlength and slotwidth and M. 2. Set Phase = 0; Set {codelen(i) = 0, i = 0, …, M-1}, Set {cflag(i) =0, I=0,1, …, M-1} 3. For i = 0 to M-1 If codeword in slot i is fully decodable. Store codelen(i) = code length; else searchslotmod( i+D(phase), M ); Get bits from the position of codelen(mod( i+D(phase), M )); If fully decodable, update codelen(i) and cflag(i). Else get all the bits left in the searching slot. 4. If no cflag(i) == 0 or some no change since last phase, stop else phase++; Goto 3 CS335 Principles of Multimedia Systems

  8. EREC for JPEG Coding Header Information 1011110110011010 10111011010 1101001001001010 10110011011111000111111001001010 101000001000011110011010 10101001010 1010110010011101011010 0110101011010 001010 01011010 011101010 01011010 011101010 01011010 01011010 01011010 01011010 001010 001010 1000011001001010 0010110100011111101101010 101110111101011010 1011101110001010 10111001010 10111001010 110111011101001110100110110010101110110011101110001010 1101000111010111111011010100100111000101110000101111011011101011010 10001001010011110001010 011001010 011011010 01001010 10100101001111101010011111110110010111011100100100001110000110011000111101010011010 10111101010 10111110000001110011010 110100010011110001010 100111101111001111111101010111010 11001111010011101011010 10101001010 101010101001010 011000001010 001010 42 475 101111011001101001010010110110101011000010 101110110100111011010011010010111001011000 110100100100101011100011000000101001000101 101100110111110001111110010010101100010010 101000001000011110011010111101111110100000 101010010101010110101011001011111010010010 101011001001110101101001111100111000101000 011010101101010000101101111101110110010001 001010011101101101010101111011101101010111 010110100100101010100110010001010100111101 011101010001100111100011000101001101100010 010110101011111100101010101010011110000001 011101010010111011101100010011010111111101 010110101010101011000010101111101101110110 010110101010111111010100010101110110001111 010110100111101001011101110111011100000111 010110101101001010100111111110110110000001 001010010010001110011010010111011101010010 001010001101110110101001110101001101001000 100001100100101000110110010000011111111010 001011010001111110110101011000110111000101 101110111101011010010100101000111011100110 101110111000101010111011110101011111111111 101110010100101100011011111001110110001111 101110010100100101010000100000111000111010 110111011101001110100110110010101110110011 110100011101011111101101010010011100010111 100010010100111100010100000101111011011101 011001010011010101110001010100100101101110 011011010011010110010101110111011100011110 010010101011010011010001111111111010101111 101001010011111010100111111101100101110111 101111010100010010000111000011001100011110 101111100000011100110101010011010011111111 110100010011110001010110011110001010010110 100111101111001111111101010111010101000101 110011110100111010110100100101100011010110 101010010100010100000011111111101111001111 101010101001010011011101101010100110111110 011000001010001111111110111100101101011100 001010110000011101100100011111111100111010 001010011010101011111101110100110101011101 EREC Code 1011110110011010 10111011010 1101001001001010 10110011011111000111111001001010 101000001000011110011010 10101001010 1010110010011101011010 0110101011010 001010 01011010 011101010 01011010 011101010 01011010 01011010 01011010 01011010 001010 001010 1000011001001010 0010110100011111101101010 101110111101011010 1011101110001010 10111001010 10111001010 110111011101001110100110110010101110110011101110001010 1101000111010111111011010100100111000101110000101111011011101011010 10001001010011110001010 011001010 011011010 01001010 10100101001111101010011111110110010111011100100100001110000110011000111101010011010 10111101010 10111110000001110011010 110100010011110001010 100111101111001111111101010111010 11001111010011101011010 10101001010 101010101001010 011000001010 001010 Original code Recovered code Decode CS335 Principles of Multimedia Systems

  9. JPEG Coding in Noisy Channels Original image JPEG coding of Lena. Q=50. CS335 Principles of Multimedia Systems

  10. JPEG Coding in Noisy Channels JPEG coding of Lena. Q=50. BER=0.01 JPEG coding of Lena. Q=50. BER=0.001 CS335 Principles of Multimedia Systems

  11. JPEG Coding in Noisy Channels JPEG coding of Lena. Q=50. BER=0.0001 JPEG coding of Lena. Q=50. BER=0.00001 CS335 Principles of Multimedia Systems

  12. EREC-JPEG in Noisy Channels EREC-JPEG coding of Lena. Q=50. BER=0.01 EREC-JPEG coding of Lena. Q=50. BER=0.001 CS335 Principles of Multimedia Systems

  13. EREC-JPEG in Noisy Channels EREC-JPEG coding of Lena Q=50. BER=0.001 EREC-JPEG coding of Lena Q=50. BER=0.0001 CS335 Principles of Multimedia Systems

  14. Another Example on Color Image Coding Original image JPEG coding picture, Q=50 CS335 Principles of Multimedia Systems

  15. JPEG Coding in Noisy Channel JPEG coding in with BER = 0.01 JPEG coding in with BER = 0.001 CS335 Principles of Multimedia Systems

  16. EREC Coding Results Error resilient image coding in BER = 0.01. Error resilient image coding in BER = 0.001. CS335 Principles of Multimedia Systems

  17. Comparison Results Performance comparison JPEG and EREC. Lena. Q = 50. BPP = 0.6478. Random error. CS335 Principles of Multimedia Systems

  18. Comparison Results Figure 5. Performance comparison JPEG and EREC. Gold Hill. Q = 50. BPP = 0.7567. Random Error. CS335 Principles of Multimedia Systems

  19. Error Correction for Packet Loss • An error correction method P1 P2 P3 C=P1 xor P2 xor P3 Reconstructed packet P1 P1 xor P3 xor C P3 C CS335 Principles of Multimedia Systems

  20. Another Error Correction Scheme D(n) R(n-1) D(n+1) R(n) D(n+2) R(n+1) D(n+3) R(n+2) R(n) is usually a “rougher” coding of D(n) Recovered packet n+1 P(n) P(n+2) P(n+3) CS335 Principles of Multimedia Systems

  21. Dealing with Burst Packet Loss • Transform burst loss into random loss -- interlacing. Original packets 1 2 3 4 5 Scrambled packets 3 5 1 4 2 Burst packet lost Received packets 2 3 5 Received packet loss pattern is random. CS335 Principles of Multimedia Systems

  22. Error Concealment • Error correction usually needs additional error correction bits. • In fact, it is possible to recover or at least cover the lost data using only the correctly received data – error concealment. • Error concealment can be used for images, videos and audios. CS335 Principles of Multimedia Systems

  23. Images with Partial Data Missing 25% blocks lost 50% blocks lost CS335 Principles of Multimedia Systems

  24. Reconstructed Images Reconstructed images for cases of 25% and 50% block loss respectively. CS335 Principles of Multimedia Systems

  25. Directional Adaptive Error Concealment Orientation continuous Color continuous Continuous in the desired orientation Missing image block CS335 Principles of Multimedia Systems

  26. Error Concealment for Videos • For MPEG video, we can simply recover the lost blocks in P frames by replacing the lost blocks with the corresponding blocks in the previous I or P frame. v P frame Previous I or P CS335 Principles of Multimedia Systems

  27. Congestion Control • The need for congestion control • Internet is a network that does not regulate the traffic of each source strictly. • Aggressive sources may obtain more bandwidth than other information sources. • When throughput in a network exceeds some threshold, congestion collapse will happen. Normal operation Packet delivering rate Congestion collapse Packet sending rate CS335 Principles of Multimedia Systems

  28. TCP Congestion Control • TCP uses a slow linear increase and exponential decrease scheme for congestion control. Packet Rate Slow start Time Fast decrease CS335 Principles of Multimedia Systems

  29. TCP Congestion Control (cont) Packet 1 ACK packet2 ACK Send-and-wait protocol. Maximum packet rate is 1/round_trip_time. CS335 Principles of Multimedia Systems

  30. Sliding Window Scheme Packet 1 Packet 2 Packet 3 Packet 4 Packet 5 Packet 6 ACK If there is no bandwidth limitation, we can send data as fast as we can. CS335 Principles of Multimedia Systems

  31. TCP Congestion Control • TCP protocol controls the bandwidth usage by adjusting the sliding window size (the number of packets sent out in a burst). • TCP detects congestion by timeout or the number of duplicate ACK. Packet 1 Packet 1 Packet 2 Packet 3 Packet 2 Packet 3 x Ack1 Ack1 Ack1 Ack1 Ack3 CS335 Principles of Multimedia Systems

  32. Multimedia and Congestion Control • Should multimedia traffic follow the same rules like TCP? • It depends. But some kind of scheme to avoid the congestion collapse of the whole network is worth to study. • Such congestion control schemes generally follow the same pattern like TCP congestion control schemes: • Slowly increase the bandwidth usage to fully use the network resources. • Reduce the usage of bandwidth if congestion is likely to happen. CS335 Principles of Multimedia Systems

  33. TCP Friendly Protocols • For applications such as video conferencing, the video source can adapt its bit rate by changing the quantization factor. • Video source detects congestion condition by the parameters such as round trip time, packet loss ratio etc. using RTCP. • The bit rate of the video source can increase linearly in each round trip time if no congestion happens. • If congestion occurs, the video source should decrease the rate (as much as possible like a TCP source). CS335 Principles of Multimedia Systems

More Related