Wireless Video Streaming Mikko Ruotsalainen HUT Papers ”Performance of H.263 Video Transmission over Wireless Channels Using Hybrid ARQ,” H.Liu, and M. El Zarki, IEEE Journal on Selected Areas in Communications, Vol. 15, No. 9, Dec. 1997, pp. 1775-86 ”Feedback-Based Error Control for Mobile Video Transmission,” B. Girod, and N. Farber, Proceedings of the IEEE, Vol. 87, No. 10, Oct. 1999, pp. 1707-23 ”Wireless MPEG-4 Video Communication on DSP Chips,” M. Budagavi, W.R. Heinzelman, J. Webb, and R. Talluri, IEEE Signal Processing Magazine, Jan. 2000, pp. 36-53 Performance of H.263 Video Transmission over Wireless Channels Using Hybrid ARQ Concatenated Hybrid ARQ two conventional hybrid ARQ schemes – type-I parity bits for both error detection and error correction in every transmitted packet if error can not be corrected, packet is rejected and retransmission is requested – type-II erroneus packet is kept for future rather than discarded like in type-I scheme redundancy bits are transmitted only when needed (more and more redundancy is sent until errors can be corrected) CH-ARQ – based on Reed-Salomon and rate-compatible punctured convolutional (RCPC) codes – combines the advantages of both type-I and type-II schemes certain error correction capability with every packet the information can be recovered from each transmission or retransmission alone retransmitted packet contains redundancy bits, which combined with previous transmitted packet, result powerful RS/convolutional concanated code – employs three codes C0, C1 and C2 C0 is cyclic redundancy check (CRC) code used for error detection C1 is RCPC code for error correction C2, is half-rate invertible shortened Reed-Salomon code for both error detection and correction – code rate at the RCPC can be selected according to the channel conditions Coding using CH-ARQ 1. 2. 3. 4. Using RS code form parity block P(D). (D,P(D)) is code word in C2. k information (D) blocks are interleaved and CRC based on C0 is attached to interleaved blocks to form macroblock I. I is encoded with RCPC encoder and information packet is transmitted to the receiver If no ACK is received, states 2 and 3 are performed for parity blocks P(D) to form parity packet. Decoding using CH-ARQ 1. 2. 3. 4. 5. 6. Decode using RCPC CRC check If no error is detected send ACK, else deinterleave and store received information packet Do 1 and 2 for parity packet. If no error is detected, invert parity packet to get the information, else combine parity packet with information packet to form RS code Error correction is performed on the RS code Performance Analysis For the performance analysis Multistate Markov channel model (MSMC) is used to model the fading radio channel – Bit-error rate (BER) and SNR change over time – the channel quality at any instant depends on the previous channel condition – model is constructed by partitioning the range of SNR into multiple intervals – each state in MSMC correspond to one interval and is characterized by particular BER – probabilities for state transitions derived from the Rayleigh fading channel model – assumptions: fading is slow, transtions happen only after packet transmission and state can change only to it’s neighboring states Numerical results – CH-ARQ over MSMC modeled radio channel – RCPC rates 1, 4/5 and 4/8, Viterbi decoder – under a certain channel condition it is possible to find optimal code rate that yields low RPER and high throughput Simulation of H.263 CH-ARQ error control scheme is simulated in H.263 video transmission Rayleigh fading simulator is used to simulate the radio channel (instead of MSMC used in numerical analysis) average peak-signal-to-noise ratio (PSNR) and objective video qualitity assesment using grade point (GP) for each channel SNR there is RCPC rate that maximizes visual quality (adaptive algorithm) Feedback-Based Error Control for Mobile Video Transmission Motion-Compansated Hybrid Coding two modes: INTRA and INTER coding – INTRA: intraframe is coded with no reference – INTER: motion-compansated prediction is carried out by estimating the motion between successive frames and the residual is intraframe code H.263 coding standard – – – – – each picture is divided into macroblocks (MB) each MB is either INTRA or INTER coded in INTER mode one motion vector / MB a fixed number of MB´s form group of block (GOB) for low-bit rate acceptable image quality Decoding the Erroneus Video Bit Stream error detection and resynchronization – a single bit error may cause loss of synchronization, since variable length code (VLC) words are used – GOB headers are used as resynchronization points (previous GOB discarded entirely) – errors can be detected using forward error correction (FEC) – video decoder itself can detect errors (syntax violations) error concealment – the visual effect of errors is minimized using error concealment techniques – simplest and most common approach is corrupted pixels are replaced pixels from previous frame not very good approach when heavy motion – motion vectors can be used for motion-compansated concealment error propagation – errors remaining after the concealment propagate to successive frames and stay visual for long time – decay of propagation determined by two effects some blocks encoded in INTRA mode (stops propagation) spatial filtering in motion-compensated predictor Error Mitigation by Feedback error tracking – uses INTRA mode for some MB´s to stop error propagation – when decoder finds errors that can not be corrected it sends NACK – when receiving NACK encoder calculates the error distribution (using past motion vectors), and encodes next MB´s using INTRA mode error confinement – motion compensated prediction within region, no error propagation from region to another region – encoding efficiency suffers reference picture selection – instead of coding with INTRA mode, use correctly coded INTER –frames as reference – decoder uses either ACK or NACK, to inform how succesfull the decoding has been (can GOB´s be used) – if encoder (doesn’t) receives NACK (ACK), it does not use that GOB as reference to encode, but the last correctly decoded frame Video Transmission over a Wireless DECT Channel Wireless MPEG-4 Video Communication on DSP Chips DSP processors DSP processor features for wireless video communicators – low power consumption – Viterbi accelators – multiply-accumulate (MAC) – barrel shifters abd bit-manipulation support – various memory access modes for efficient data transfer – software reuse (time-to-market) Architecture – processors have to be size-, cost- and power-efficient – usually DSP instruction sets support application spesific instruction (MAC, Viterbi accelators) – memory-to-memory data transfer using direct memory access (DMA) – zero overhead loops and conditional execution to avoid flushing the pipeline – low-power DSP´s include IDLE or power-down modes MPEG-4 pictures are coded either in INTRA (I-frame) or INTER (P-frame) mode (similar to H.263) basic unit is macroblock 16x16 pixels no required pattern for I- and P-frames individual macroblocks within P-frame can be INTRA-coded image or the residual is split into 8x8 blocks and DCT is calculated for these for INTER coded macroblocks motion information is also transmitted error resilience tools included in MPEG-4 – resynchronization markers when ever error is detected, decoder jumps to next marker to synchronize – data partioning – header extension codes (HEC) – reversible variable length codes (RVLC) Implementation Issues in implementing video coding – memory allocation: on-chip memory is faster than off-chip memory, but very limited – data transfer: management of data transfer from off-chip to on-chip memory (DMA) – DSP –friendly algorithms: processor may support instructions that favor some algortihms – development tools: compilers (C instead of assembler), debugging tools Performance of the MPEG-4 implementation simple-profile SQCIF encoder and decoder on 40 MHz TMS320C541 (40 MIPS) – encoder 1 f/s and decoder 20 f/s of simple talking-head sequence – more powerfull DSP´s needed to implement both decoder and encoder – more powerfull DSP´s needed to support higher resolutions ex. low power C55x DSP platform offer 288 to 600 MIPS (144 to 200MHz)