A Model for Streaming D Meshes and Its Applications ABSTRACT Ong Yuh Shin and Ooi Wei Tsang Department of Computer Science, School of Computing, National University of Singapore In this paper, we present results on the effects of using forward error correction (FEC) with retransmission in the streaming of a progressive mesh. We showed analytically that it does not improve the number of received packets, but improves the number of decodable packets. We also propose a Dynamic FEC protocol, which maximizes the expected increase in number of decodable packets at any point in time. It adapts to loss rate and more importantly, to the packet dependency structure of the mesh. Simulation results show that the proposed scheme can double the number of decodable packets in the early stage of the streaming.. INTRODUCTION Progressively encoded objects are useful for streaming as they provide fine-grained refinements that are more quickly transmitted. However, due to dependencies introduced in the progressive encoding, network losses can cause subsequent refinements to be undecodable. Retransmission is a solution but this causes decoding delay due to the round trip time. Probability of losses can be reduced using forward error correction (FEC), which comes at the cost of increased bandwidth requirements. We have studied the following two issues. Firstly, given that retransmission is necessary, whether FEC is of any use when streaming a progressively encoded mesh. Secondly, if it is useful, what is the optimal FEC rate. We have found that FEC does not improve the number of received packets. However, it can improve the number of decodable packets initially. We propose an online adaptive protocol (Dynamic FEC) for finding the optimal FEC rate, which is designed to adapt to varying dependency structures and loss rates. Simulation results show that during the early stages of the streaming, Dynamic FEC can improve the expected number of decodable packets by 2 times that achieved by a pure retransmission scheme, as in Figure 4(a). An application of this scheme is for D streaming in a virtual environment. When users move, objects move out of view before finer refinements are decoded. FEC protects earlier refinements, but delays the sending of the finer ones. Even so, the viewer is more likely to see a reasonable representation of the object before it moves out of view since the earlier refinements are less likely to be due to FEC s protection. 2. RELATED WORK 2.. Forward Error Correction We use packet-level Reed-Solomon (RS) codes for forward error correction (FEC). The encoding process produces N packets from K input packets. The input packets are contained in the N output packets and are called data packets which containing vertex splits. The Student Supervisor
remaining N K packets are FEC packets. The FEC rate is denoted RS(N, K). If at least K packets are received, then all N packets are recoverable. Software implementation of RS codes can be computationally intensive. (Rizzo, 997) shows how such codes can be computed efficiently. The implementation encodes packets at rates of MB/s on a Pentium and decodes them between 6 to 9 MB/s. 2.2. Progressive Mesh Our model applies to the progressive mesh (Hoppe, 996). The encoding process is made up of a series of edge collapse operations, where two adjacent vertices of the mesh are combined into a single vertex. This is repeated until the mesh becomes small enough, resulting in a base mesh. To obtain the original mesh, the base mesh is decoded using vertex splits where a vertex is split into the original two vertices, forming the edge that was previously collapsed, and introducing faces that were removed. Figure (a) shows the results of the edge collapse and vertex split operations. As more vertex splits are decoded, the quality of the mesh improves. Figure (b) shows the Happy Buddha mesh as more and more vertex splits are decoded. vl vs vr edge collapse vl vs vt vertex split vr (a) Vertex split and edge collapse (b) Happy Buddha mesh - improving quality Figure. Progressive mesh and incremental refinements The progressive encoding introduces dependencies between vertex splits. A vertex split is decodable if it is received, and if all vertex splits it depends on have been received. 2.. Progressive Mesh Streaming Streaming of the compressed progressive mesh (Pajarola & Rossignac, 2) (CPM), a variant of the progressive mesh, has been considered in (Alregib, Altunbasak, & Rossignac, 25). The authors proposed using unequal error protection (UEP) which provides more redundancy to the earlier refinements. Simulation shows that UEP with FEC allows more levels of detail in the CPM to be decoded. However, there is no retransmission and refinements stop once packet losses occur. Also, (Cheng, Ooi, Mondet, Grigoras, & Morin, 27) has given an analytical model for streaming progressive meshes, using a retransmission based protocol. They have shown that dependencies have the greatest effect on the number of decodable packets in the initial stages. In the next section, we present a modified version of this protocol that uses FEC.. NETWORK, DEPENDENCIES AND STREAMING Before streaming the refinements of the progressive mesh, the sender packetizes the vertex splits using packetization algorithms (Cheng et al., 27). Each packet can be seen as a
set of vertex splits. This creates a packet dependency structure due to the vertex split dependencies. Formally, Definition. A packet dependency graph (Figure 2) is a directed acyclic graph (DAG). Each node represents a packet. A directed edge (u, v) exists if packet v contains vertex split(s) that depend directly on some vertex split(s) in packet u. A packet is decodable if all its ancestors in the packet dependency graph and itself are received. 2 4 5 6 7 8 9 Figure 2. Example of a packet dependency graph. We will assume that packet losses are independent and occur with probability p. Negative acknowledgements (NACK) from the receiver are never and the round trip time (RTT) is bounded. The RTT can be represented by T d, the number of unacknowledged packets... Streaming Protocols We compare two protocols - the FEC scheme and the NoFEC scheme. In both schemes, data packets are sent according to their topological order in the packet dependency graph.... FEC Scheme Under the FEC scheme, packets (data and FEC) are sent in batches of fixed size N, where N T d. Each batch is sent with FEC rate RS(N, K), where K N and need not be the same for each batch. We call such a batch of N packets a block. IDs are assigned to blocks, with the first block having ID. If a block is recoverable, all packets are recovered and considered received. Otherwise, the receiver sends a NACK containing the IDs of the data packets. We can also capture the RTT using T d, which denotes the number of unacknowledged blocks. On receiving the NACK, the sender retransmits the packets as soon as possible. Figure (a) shows an instance of the FEC scheme...2. NoFEC Scheme This scheme is the same as that described in (Cheng et al., 27). Packets are streamed continuously. When a packet loss is detected, the receiver replies with a NACK for the packet. On receiving the NACK, the sender retransmits the packet immediately. Figure (b) shows an instance of this scheme. For comparison, we also adopt the notion of a block. Suppose we run both schemes in parallel. For every block in the FEC scheme, the corresponding block in the NoFEC scheme will be the set of N packets sent in the NoFEC scheme during the time which the N packets were sent in the FEC scheme.
Block Block Sender 2 FEC 4 5 6 7 FEC Receiver NACK (,) Recover (5) Block Block Sender 2 4 5 6 7 8 Receiver NACK () NACK () NACK () (a) FEC Scheme (b) NoFEC Scheme Figure. FEC and NoFEC Schemes 4. EFFECTIVENESS OF FEC We first look at the effect of FEC on the number of received data packets. Theorem. The expected number of received data packets per block under the NoFEC scheme is at least as large as that under the FEC scheme. We also studied the effect of FEC under two extreme cases. The best-case packet dependency graph is an empty graph and all received packets are immediately decodable. A worst-case packet dependency graph is one in which packets are decodable if all packets sent before it are received. Intuitively, the graph has a chain that contains all packets. By Theorem we have that under the best case dependency, the use of FEC does not improve the expected number of decodable packets in any block. Also, using both analytical and simulation approaches, we have Theorem 2. Under the worst case dependencies, the use of FEC can improve the expected number of decodable packets before and after retransmission takes place in the initial stages. 5. ADAPTIVE FEC SCHEME - DYNAMIC FEC Theorem 2 tells us that FEC can improve the number of decodable packets in the intial stages. This leads to the question of what the optimal FEC rate is. Here, we define optimality to be the FEC rate that maximizes the expected increase in number of decodable packets in the next block to be sent. Intuitively, we are trying to increase the quality of the received mesh as quickly as possible. 5.. State of the Sender To capture the increase in number of decodable packets in the next block, we must know the current status of the packets sent and received. The sending time of a packet is the ID of the block in which the packet was last sent ( if not sent). The receiving time of a packet, is the ID of the block in which the packet was received ( if not received). In state j, the sender has sent block j but not block j. It is made up of () a mapping of each packet to its sending and receiving times as known by the sender, (2) the list of blocks sent up to block j with their FEC rates and () a retransmission queue. Given that the system is at state j, the optimal FEC rate for block j is that which maximizes the expected increase in number of decodable packets from block j to block j, measured at the end of each block.
5.2. Expected Increase in Number of Decodable Packets To compute this expected increase for each block, we first pick out packets that have a non-zero probability of contributing to this increase. This is the set of potentially decodable packets in block j, denoted S(j). A packet is in this set if it is sent in block j, or is a descendent of some packet(s) in block j, such that after the block is sent, all its ancestors and itself are either received, or are unacknowledged. Suppose some packet i S(j) has n i,j,k ancestors sent in block j T d +k for k T d (one of the T d unacknowledged blocks). Let r i,j,k be the probability that all n i,j,k ancestors are received (or recovered) in this block. Lemma. The probability that n i,j,k ancestors of packet i are received in block j T d +k is r i,j,k = ( p) n i,j,k N n i,j,k x=n K j,k + ( N ni,j,k x ) N K j,k p x ( p) N ni,j,k x + where RS(N, K j,k ) is the FEC rate used the block j T d + k. x= ( ) N p x ( p) N x x Let d i,j be the probability that some potentially decodable packet i S(j) is decodable by the time block j is sent. Theorem. The expected increase in no. of decodable packets from block j to block j, given that the system is in state j and is to send a set of packets P in block j, is E[D j] = T d i S(j) k= With this, we can compute the optimal FEC rate by performing a search on all possible values of K. 6. SIMULATION To compare Dynamic FEC to other possible schemes, we simulated Static FEC, No FEC, and Dynamic FEC. Static FEC finds the optimal FEC rate for block and uses it throughout. No FEC and Dynamic FEC are as described in the previous sections. The simulation was performed under two packet dependency graphs: the worst case, and a binary tree sent in breadth-first order, using N = 2, p =.5. From the second block onwards in the case of the binary tree, due to the breadth-first sending order, packet dependencies in each block resemble the best case in which No FEC is optimal (Theorem ). As for the worst case, by Theorem 2, we expect the FEC schemes to improve the number of decodable packets at least at the start. Figure 4 shows the average total number of decodable packets at the end of each block, measured over iterations, for N = 2, p =.5, T d = 6, T d =. Figure 4(a) represents the results for the worst case, while Figure 4(b) gives that for the binary tree. Our results show that Dynamic FEC is able to perform as well as the better of the two schemes under different situations and is capable of adapting FEC rate to dependency structure. r i,j,k
2 8 Static FEC Dynamic FEC No FEC 2 8 Static FEC Dynamic FEC No FEC 6 6 4 4 Avg No. dcdb pkts 2 8 Avg No. dcdb pkts 2 8 6 6 4 4 2 2 2 4 6 8 2 4 block 2 4 6 8 2 4 block (a) Worst case dependency (b) Binary tree dependency Figure 4. Average total number of decodable packets vs. block ID, N = 2, p =.5, T d = 6, T d = 7. CONCLUSION To sum up, FEC does not improve the number of received data packets and is thus not useful under the best-case dependencies. However, it improves the expected number of decodable packets when dependencies exist among packets. With this, we proposed Dynamic FEC which adapts FEC rate to dependencies. An open question that remains is under what network conditions and what dependency structures will FEC necessarily, or sufficiently be useful. Aside from this, Dynamic FEC can easily be extended to cover stronger assumptions. Here, we assumed that all packets contribute equally to the quality of the decoded mesh. However, the model can be extended to give weights to each packet. Last but not least, the proposed scheme need not be restricted to progressive meshes. It is applicable to any progressively encoded data where dependencies are represented by a packet dependency graph. 8. REFERENCES [] Alregib, G., Altunbasak, Y., & Rossignac, J. (25). Error-resilent transmission of d models. ACM Transactions on Graphics, 24(2), April, 25, 82 28. [2] Cheng, W., Ooi, W. T., Mondet, S., Grigoras, R., & Morin, G. (27). An analytical model for progressive mesh streaming. MULTIMEDIA 7: Proceedings of the 5th international conference on Multimedia (pp. 77 746), New York, NY, USA, Sep, 27: ACM. [] Hoppe, H. (996). Progressive meshes. Proceeding of SIGGRAPH 96 (pp. 99 8), New Orleans, USA, August, 996. [4] Pajarola, R., & Rossignac, J. (2). Compressed progressive meshes. Visualization and Computer Graphics, IEEE Transactions on, 6(), Jan-Mar, 2, 79 9. [5] Rizzo, L. (997). Effective erasure codes for reliable computer communication protocols. ACM Computer Communication Review, 27(2), April, 997, 24 6.