Skip to main content
Log in

Peer-to-peer error recovery for wireless video broadcasting

  • Published:
Peer-to-Peer Networking and Applications Aims and scope Submit manuscript

Abstract

Wireless video broadcasting has experienced much growth in recent years. In video broadcasting, packet loss is inevitable due to dynamic channel condition. To address this, we study peer-to-peer (P2P) error recovery. In our system, a mobile station (MS) may generate some parity packets based on its received source packets and share them by broadcasting to its neighbors via a secondary channel (e.g., Wi-Fi or Bluetooth). With parity packets from its neighbors, an MS can effectively repair its lost packets locally. An important problem is to minimize the total number of parity packets generated while achieving a certain residual loss rate at the MSs. We first formulate the problem as a linear program which can be solved efficiently as the optimal performance of the system. We then propose a novel and fully distributed algorithm based on only local information at clients. Simulation results show that our distributed solution achieves high recovery efficiency and fast convergence. It generates very low recovery traffic and high video quality. Its performance is very close to the optimal solution based on centralized approach with complete network information.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7
Fig. 8
Fig. 9
Fig. 10
Fig. 11
Fig. 12
Fig. 13
Fig. 14

Similar content being viewed by others

Notes

  1. Though we consider random loss in our simulations, our algorithm and results are applicable to other loss model such as pseudo-stationary time-dependent losses.

References

  • Digital multimedia broadcasting. http://www.worlddab.org/

  • Digital video broadcasting. http://www.dvb.org/

  • Abdullah NF, Piechocki RJ, Doufexi A (2010) Raptor code for wireless ad hoc vehicular safety broadcast. In: GLOBECOM workshops (GC Wkshps), 2010 IEEE, pp 1087–1091. doi:10.1109/GLOCOMW.2010.5700102

  • Alnuweiri H, Rebai M, Beraldi R (2012) Network-coding based event diffusion for wireless networks using semi-broadcasting. Ad Hoc Netw 10(6):871–885

    Article  Google Scholar 

  • Amer AB, Gebali F (2008) Quality of service support and backoff strategies in wireless networks with error control protocol. In: PM2HW2N ’08: Proceedings of the 3nd ACM workshop on performance monitoring and measurement of heterogeneous wireless and wired networks, ACM, New York, pp 83–90. doi:10.1145/1454630.1454643

  • Bajic IV (2006) Non-causal error control for wireless video streaming with noncoherent signaling. IEEE Trans Multimed 8(6):1263–1273

    Article  Google Scholar 

  • Bajic IV (2007) Efficient error control for wireless video multicast. IEEE Trans Broadcast 53(1):276–285

    Article  Google Scholar 

  • Chachulski S, Jennings M, Katti S, Katabi D (2007) Trading structure for randomness in wireless opportunistic routing. In: Proceedings of the 2007 conference on applications, technologies, architectures, and protocols for computer communications SIGCOMM ’07, ACM, pp 169–180

  • He T, Chan S-H, Wong C-F (2008) HomeMesh: a low-cost indoor wireless mesh for home networking. IEEE Commun Mag 46:79–85

    Article  Google Scholar 

  • Wu X-X, Chan S-H, Mukherjee B, Bhargava B (2004) MADF: mobile-assisted data forwarding in wireless data networks. J Commun Netw 6(3):216–225

    Article  Google Scholar 

  • Chen B, Zhou Z, Zhao Y, Yu H (2012) Efficient error estimating coding: Feasibility and applications. IEEE/ACM Trans Netw 20(1):29–44. doi:10.1109/TNET.2011.2157357

    Article  Google Scholar 

  • Gomez-Barquero D, Aguilella AF, Cardona N (2008) Multicast delivery of file download services in 3G mobile networks with MBMS. In: IEEE international symposium on broadband multimedia systems and broadcasting, pp 1–6. doi:10.1109/ISBMSB.2008.4536640

  • Hartung F, Horn U, Huschke J, Kampmann M, Lohmar T, Lundevall M (2007) Delivery of broadcast services in 3G networks. IEEE Trans Broadcast 53(1):188–199

    Article  Google Scholar 

  • He J, Yang J, An C, Li X (2009) BPR: a bit-level packet recovery in wireless sensor networks. In: SAC ’09: Proceedings of the 2009 ACM symposium on applied computing, ACM, New York, pp 59–65. doi:10.1145/1529282.1529293

  • Hou F, Ho PH, Shen X (2006) A novel differentiated retransmission scheme for MPEG video streaming over wireless links. Int J Wirel Mob Comput 1(3):260–267

    Article  Google Scholar 

  • Jamieson K, Balakrishnan H (2007) PPR: Partial packet recovery for wireless networks. In: ACM SIGCOMM, Kyoto

  • Keller L, Le A, Cici B, Seferoglu H, Fragouli C, Markopoulou A. (2012) Microcast: cooperative video streaming on smartphones. In: Proceedings of the 10th international conference on Mobile systems, applications, and services, MobiSys ’12, ACM, New York, pp 57–70. doi:10.1145/2307636.2307643

  • Lee D, Song H (2011) A robust luby transform encoding pattern-aware symbol packetization algorithm for video streaming over wireless network. IEEE Trans Multimed 13(4):788–796. doi:10.1109/TMM.2011.2124448

    Article  Google Scholar 

  • Lee JW, Chen CL, Horng MF, Kuo YH (2011) An efficient adaptive FEC algorithm for short-term quality control in wireless networks. In: 13th international conference on advanced communication technology (ICACT), pp 1124–1129

  • Leu JS, Tsai CW, Yi CW (2009) Improving adaptive streaming service across wired&wireless networks. In: Proceedings of the 2009 10th international conference on mobile data management: systems, services and middleware, pp 614–618

  • Li S, Chan SHG (2007) BOPPER: Wireless video broadcasting with peer-to-peer error recovery. In: Proceedings of IEEE international Conference on Multimedia & Expo (ICME), Beijing

  • Li Y, Huang Q, Huang W (2011) A cooperative retransmission strategy for error-prone wireless networks. In: Eighth international conference on wireless and optical communications networks (WOCN), pp 1–5

  • Li Y, Wang Z, You X, Lie Liu Q, Daneshmand M (2010) Error recovery based on FEC in network-layer for intermittently connected mobile networks. In: 5th international ICST conference on communications and networking in China (CHINACOM), pp 1–6

  • Liu X, Cheung G, Chuah CN (2009) Structured network coding and cooperative wireless ad-hoc peer-to-peer repair for WWAN video broadcast. IEEE Trans Multimedia 11(4):730–741. doi:10.1109/TMM.2009.2017636

    Article  Google Scholar 

  • Liu X, Sridharan A, Machiraju S, Seshadri M, Zang H (2008) Experiences in a 3G network: interplay between the wireless channel and applications. In: MobiCom ’08: Proceedings of the 14th ACM international conference on mobile computing and networking, ACM, New York, pp 211–222. doi:10.1145/1409944.1409969

  • Nguyen H, Tran LN, Hong EK (2011) On transmission efficiency for wireless broadcast using network coding and fountain codes. IEEE Commun Lett 15(5):569–571

    Article  Google Scholar 

  • Rozner E, Iyer AP, Mehta Y, Qiu L, Jafry M (2007) ER: efficient retransmission scheme for wireless lans. In: Proceedings of the 2007 ACM CoNEXT conference, CoNEXT ’07, ACM, pp 8:1–8:12

  • Schier M, Welzl M (2012) Optimizing selective ARQ for H.264 live streaming: A novel method for predicting loss-impact in real time. Multimed IEEE Trans 14(2):415–430. doi:10.1109/TMM.2011.2178235

    Article  Google Scholar 

  • Sen S, Schmitt S, Donahue M, Banerjee S (2009) Exploiting “approximate communication” for mobile media applications. In: HotMobile ’09: Proceedings of the 10th workshop on mobile computing systems and applications, ACM, New York, pp 1–6. doi:10.1145/1514411.1514420

  • Sinkar K, Jagirdar A, Korakis T, Liu H, Mathur S, Panwar S (2008) Cooperative recovery in heterogeneous mobile networks. In: 5th annual IEEE communications society conference on sensor, mesh and Ad Hoc communications and networks, SECON ’08, pp 395–403. doi:10.1109/SAHCN.2008.55

  • Wu H, Zheng J (2011) CoRET: a network coding based multicast retransmission scheme for mobile communication networks. In: IEEE international conference on communications (ICC), pp 1–5. doi:10.1109/icc.2011.5962911

  • Yuan X, Sun R, Ping L (2010) Simple capacity-achieving ensembles of rateless erasure-correcting codes. IEEE Trans Commun 58(1):110–117. doi:10.1109/TCOMM.2010.01.050175

    Article  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Bo Zhang.

Additional information

Open Access

This work was supported, in part, by the HKUST Special Research Fund Initiative (SRFI11EG15) and Hong Kong Research Grant Council (RGC) General Research Fund (610713)

Appendices

Appendix A: Linear network coding and its decoding in BOPPER

Given a group of source packets, a parity packet is a linear combination of these source packets with certain coefficients. Suppose that K source packets in a coding window are M 1,…,M k . A peer may select a set of coding coefficients \([{c_{1}^{j}},\ldots \ldots ,{c_{k}^{j}}]\) for parity packet j. It then generates a parity packet as

$$ \left\{x_{j} = \sum\limits_{i=1}^{K}{c_{i}^{j}}\cdot M_{i}\right\}, \text{ for} j\in [1,h]. $$
(14)

Note that a coefficient \({c_{i}^{j}}\) could be 0. In other words, if a source packet in the coding window is missing, we can simply set its coefficient to 0. This is a fundamental difference from FEC and fountain codes. Similarly, the peer can select another set of coefficients for another parity packet. If all peers share a common pseudo random number generator, only the random seed used to produce a corresponding coefficient series need to be embedded in the header of the parity packet. Therefore, a parity packet is of the same size as a single source packet, excluding a few bytes for the seed.

For decoding, suppose a peer has lost d source packets in a coding window. When it receives h parity packets, it needs to solve (14).

Here the unknowns are the lost source packets M i . Clearly, this is a linear system with h equations and d unknowns. We can use Gauss-Jordan elimination to solve the system. We need hd to have a chance of recovering all unknowns. Note that hd is not a sufficient condition, as some of the coefficient combinations might be linearly dependent.

We use a simple example to illustrate the progressive decoding. Suppose there are 3 source packets in a coding window, which are denoted as M 1, M 2 and M 3. For simplicity, we use a numerical value to represent the value of a source packet or a parity packet. Suppose error peer j only correctly received M 1 in the coding window. It knows that M 1=10, but not the values of M 2 and M 3. Suppose the first parity packet arriving at j has the value 1220, with a coefficient set (5, 18, 27). It indicates that

$$ 5M_{1} + 18M_{2} + 27M_{3} = 1220. $$
(15)

The equations can be written in the augmented matrix form as

$$\begin{array}{@{}rcl@{}} \left[\begin{array}{ccccc} 1 & 0 & 0 &\mid&10\\[-4pt] &&&\mid&\\[-4pt] 5 & 18 & 27&\mid&1220 \end{array}\right]. \end{array} $$
(16)

We use R 1 and R 2 to represent row 1 and row 2 in the matrix, respectively. We will use elementary row operations to transform this matrix into reduced echelon form. Let \(R_{2}\leftarrow (R_{2} + (-5)R_{1})/18\). We have

$$\begin{array}{@{}rcl@{}} \left[\begin{array}{ccccc} 1 & 0 & 0 &\mid&10\\[-4pt] &&&\mid&\\[-4pt] 0 & 1 & 1.5&\mid&65 \end{array}\right]. \end{array} $$
(17)

Later, the second parity packet arrives at j with a value 570 and a coefficient set (34, 4, 5). It indicates that

$$ 34M_{1} + 4M_{2} + 5M_{3} = 570. $$
(18)

Hence, the matrix can now be written as

$$\begin{array}{@{}rcl@{}} \left[\begin{array}{ccccc} 1 & 0 & 0 &\mid&10\\[-4pt] & & &\mid&\\[-4pt] 0&1&1.5&\mid&65\\[-4pt] & & &\mid&\\[-4pt] 34 & 4 & 5&\mid&570 \end{array}\right]. \end{array} $$
(19)

Let \(R_{3}\leftarrow R_{3} + (-34)R_{1} + (-4)R_{2}\). We have

$$\begin{array}{@{}rcl@{}} \left[\begin{array}{ccccc} 1 & 0 & 0 &\mid&10\\[-4pt] & & &\mid&\\[-4pt] 0&1&1.5&\mid&65\\[-4pt] && &\mid&\\[-4pt] 0 & 0 & -1&\mid&-30 \end{array}\right]. \end{array} $$
(20)

Let \(R_{2}\leftarrow R_{2} + 1.5R_{3}\), and \(R_{3}\leftarrow (-1)R_{3}\). We have

$$\begin{array}{@{}rcl@{}} \left[\begin{array}{ccccc} 1 & 0 & 0 &\mid&10\\[-4pt] && &\mid&\\[-4pt] 0&1&0&\mid&20\\[-4pt] && &\mid&\\[-4pt] 0 & 0 & 1&\mid&30 \end{array}\right]. \end{array} $$
(21)

This reduced echelon form matrix indicates that

$$ M_{1} = 10,\ M_{2} = 20\ \text{and}\ M_{3} = 30. $$
(22)

Therefore, with two linearly independent parity packets, error peer j could recover its lost source packets M 2 and M 3.

Appendix B: An illustrative example of error recovery in BOPPER

In this section, we illustrate with numerical examples to show how BOPPER achieves error recovery. Suppose each coding window consists of 5 source packets, i.e., K = 5. In a window, the server transmits five source packets {M 1,M 2,M 3,M 4,M 5}.

We first consider the full recovery case. Suppose MS P 1 has received packets {M 3,M 4,M 5} while its neighbors P 2 and P 3 received packets {M 2,M 3,M 4,M 5} and {M 1,M 3,M 4,M 5}, respectively. So now we have

$$ \left\{ \begin{array}{l} \mathcal{C}_{1} = \{M_{3}, M_{4}, M_{5}\},\\ \mathcal{C}_{2} = \{M_{2}, M_{3}, M_{4}, M_{5}\},\\ \mathcal{C}_{3} = \{M_{1}, M_{3}, M_{4}, M_{5}\}; \end{array} \right. $$
(23)

and

$$ \left\{ \begin{array}{l} {\mathcal{L}}_{1} = \{M_{1}, M_{2}\},\\ {\mathcal{L}}_{2} = \{M_{1}\},\\ {\mathcal{L}}_{3} = \{M_{2}\}. \end{array} \right. $$
(24)

Assume that this is the very first coding window. We have \(\hat \theta _{i} = 0, \bar \theta _{i} = 0, f_{i} = 0, \forall i\).

Suppose MS P 1 broadcasts its NAK with L 1 and f 1 to the neighbors P 2 and P 3. When P 2 receives the NAK from P 1, it finds that its own lost packets is only a subset of the lost packets at P 1, i.e., \({\mathcal {L}}_{2}\subseteq {\mathcal {L}}_{1}\). Hence, P 2 suppresses its own NAK broadcasting. Similarly, P 3 also suppresses its NAK broadcasting.

Meanwhile, P 2 finds that \(\mathcal {C}_{2} \cap {\mathcal {L}}_{1} \neq \emptyset \). It means that P 2 holds some source packets which are required by P 1. P 2 hence selects \(n_{\max }\) sets of random coefficients to generate parity packets from its C 2 (since f 1=0) and broadcasts them. Similarly, P 3 also generates \(n_{\max }\) number of parity packets and broadcasts them for P 1 (hopefully P 2 could overhear them). After P 1 receives both of P 2’s and P 3’s parity packets, P 1 can use Gauss-Jordan elimination to solve the linear system to recover M 1 and M 2. Meanwhile P 2 and P 3 can also recover lost packets from each other’s parity packet.

After parity recovery, each peer i then updates f i . Take P 1 for example. For M 1 it receives \(n_{\max }\) number of parities from P 2; for M 2 it receives the same number of parities from P 3. We also have \(|{\mathcal {L}}_{1}| = 2\). Suppose we set \(n_{\max } = 2\), α=0.5 and 𝜃 1=1.1. We have

$$ \hat \theta_{1} = \min \left(\left(\frac{2}{2}+0\right), \left(0+\frac{2}{2}\right)\right) = 1, $$
(25)
$$ \bar \theta_{1} = 0.5 \times 0 + (1 - 0.5) \times 1 = 0.5, $$
(26)

and hence

$$ f_{1} = \frac{\bar \theta_{1}}{\theta_{1}} = \frac{0.5}{1.1}. $$
(27)

In the next round, if P 1 needs to send a NAK, the above f 1 value will be sent together.

We next consider the partial recovery case. Suppose now we have

$$ \left\{ \begin{array}{l} \mathcal{C}_{1} = \{M_{3}, M_{4}, M_{5}\},\\ \mathcal{C}_{2} = \{M_{2}, M_{3}, M_{4}, M_{5}\},\\ \mathcal{C}_{3} = \{M_{4}, M_{5}\}; \end{array} \right. $$
(28)

and correspondingly,

$$ \left\{ \begin{array}{l} {\mathcal{L}}_{1} = \{M_{1}, M_{2}\},\\ {\mathcal{L}}_{2} = \{M_{1}\},\\ {\mathcal{L}}_{3} = \{M_{1}, M_{2}, M_{3}\}. \end{array} \right. $$
(29)

P 3 broadcasts its NAK with \({\mathcal {L}}_{3}\) to P 1 and P 2, both of which suppress their NAKs after received P 3’s NAK. P 1 and P 2 then generate independent parity packets for P 3. M 2 and M 3 can then be recovered from P 1’s and P 2’s parities. However none of the three MSs is able to recover M 1. Hence the residual loss after parity recovery is

$$ \left\{ \begin{array}{l} {\mathcal{L}}_{1} = \{M_{1}\},\\ {\mathcal{L}}_{2} = \{M_{1}\},\\ {\mathcal{L}}_{3} = \{M_{1}\}, \end{array} \right. $$
(30)

which is clearly better than the loss before cooperative recovery.

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Zhang, B., Chan, SH.G. & Cheung, G. Peer-to-peer error recovery for wireless video broadcasting. Peer-to-Peer Netw. Appl. 8, 822–834 (2015). https://doi.org/10.1007/s12083-014-0297-8

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s12083-014-0297-8

Keywords

Navigation