RE: draft-ietf-rmt-bb-fec-raptor-object-02 WG Last Call
"Mark Watson" <[email protected]>
| Newsgroups | gmane.ietf.rmt |
|---|---|
| Message-ID | <[email protected]> |
Vincent & Christophe, Please see comments below, marked MW: Regards, Mark -----Original Message----- From: [email protected] [mailto:[email protected]] On Behalf Of Vincent Roca Sent: Wednesday, September 28, 2005 5:32 PM To: Lorenzo Vicisano; [email protected] Subject: Re: [Rmt] draft-ietf-rmt-bb-fec-raptor-object-02 WG Last Call Dear authors and al. Please find below a few comments for draft-ietf-rmt-bb-fec-raptor-object-02.txt Vincent and Christoph ------------------- This Raptor scheme requires that block size be less or equal to Kmax=8192 source symbols. This is relatively small, which is confirmed by RFC3453 that says, section 2.4: Like Tornado codes, the number of source symbols k may be very large for LT codes, i.e., on the order of tens to hundreds of thousands [...] Hence the question: *** comment 1: is this a fundamental limitation or only a practical one? For instance, I see that section 5.8 provides an exhaustive list of possible values for K between 4 and 8192, so I can understand that providing a larger table would quickly become tedious. Is that one of the reasons for this limitation? MW: Yes, this is one of the reasons - as well as storing the table in implementations. Another is that having this limitation means that we can also limit to 65536 symbols in total (source and repair) and this keeps the FEC Payload ID small (the FEC Payload ID being an overhead in every packet) and assists with optimised implementation. If Kmax were larger then the limit of 65536 symbols in total becomes problematic, since it places a lower bound on the rates supported. Tornado, LT and some other LDPC codes require very large numbers of symbols to achieve efficient performance. In practice, it is desirable to have the freedom to use larger symbols (for computational reasons), so the possibility to work efficiently with smaller number of symbols is a plus point, because it means symbols can be larger (up to the packet size). Finally, in practice this limitation means that a very large file may have to be split into a small number of separate source blocks. Since these blocks are themselves still very large, the effect of the "coupon collector problem" is actually very small (the variance in the number of lost symbols across a few blocks of >8192 symbols will be very small). ------------------- *** comment 2: is Raptor FEC Enc ID 1 generic or not? More precisely, is the present FEC scheme sufficiently generic to be used in many different target environments (e.g. over high speed Internet connections) or is it specialized for the 3GPP/DVB-H use cases? I think it has been said that the IETF and 3GPP specifications were aligned, but correct me if I'm wrong. The 8192 limitation for Kmax, which might be appropriate in 3GPP/DVB-H use cases (here also correct me if I'm wrong), is suboptimal for a general purpose FEC codec when dealing with large object, since it opens the door to this good old ``coupon collector problem'' that large block/expandable codes were supposed to solve. Can you clarify please? And the corrolary: if ever it is a carefully tailored FEC scheme for a specific use case, do you plan to submit another Raptor FEC scheme? MW: Yes, it is intended to be generic. See above for comments on the block size limitation. We believe this is the right balance between supported block size, the overhead of the FEC Payload ID and the need to provide some limitation for implementation practicality (including provision of the table of Systematic Indices). The code is aligned with 3GPP and DVB-H but it is not limited to 3GPP/DVB-H object sizes and supports objects from kilobytes to gigabytes. Note that it's the object size that is relevant, not the connection speed - you should not assume that people never want to send large objects over slow connections ;-) ------------------- *** comment 3: definitions/symbols/abbreviations Definitions, symbols and abbreviations only appear in section 5.2, after they have been heavily used and even re-defined earlier. A few pathological examples of bad re-definitions are: Section 4.1. - The transfer length of the object, F, in bytes Then in section 4.2., same page: - F the object size, in bytes Finally, section 5.2.2: F the object size, for object delivery, in bytes or: Section 4.1: - A symbol alignment parameter (Al) Then in section 4.2: - Al the symbol alignment factor, in bytes Finally, section 5.2.2: Al denotes a symbol alignment parameter. Symbol and sub-symbol sizes are restricted to be multiples of Al. I see no reason for delaying these definitions, which makes both understanding difficult and creates duplicated, non coherent, pre-definitions. I suggest to move section 5.2 before section 3. MW: Only the occurance in the "definitions" section is supposed to be a definition. I'd prefer not to re-arrange sections, but I can fix the discrepancies in nomenclature. ------------------- *** comment 4: What is the motivation for including 13 full pages of numbers in the main part of the document rather than having them defined in an Annex, in section 5.8? The same is true for section 5.7.1. MW: There is no special reason. They could be in an Annex if people prefer (but not an Appendix ;-) *** comment 5: By the way, for my personnal understanding, do the coder and decoder need to memorize the 8192 - 4 systematic indices values or not? A carreful reading of the document would certainly help answering this question, but since the explanations are sometimes really scarce (in particular in sections 5.5.4 where there are many ``magic formulas''), I cannot easily answer... MW: Yes, the encoder and decoder must both know these numbers. They ensure that the first K symbols of the code are linearly independent and thus can be systematic symbols. The specification is intended to rigourously specify the code and you are right that it does not provide a lot of explanation of why it is the way it is. I am not sure the formulae are "magic" - they are just the way they are because that is what makes the code work! ------------------- *** __Minor__ remark for figure p7 3 2 1 10987654321098765432109876543210 +--------------+-------+-------+ | Z | N | Al | +--------------+-------+-------+ This kind of graphic which shows bit alignment fields requires to have some space between the bits, so that the separation between the Al, N fields can be shown as taking place between bits 7 and 8, rather than exactly at bit 8 (before or after?). In the present case, common sense enables to easily answer, but adding "+" between each "-" is preferable anyway. MW: Ok. _______________________________________________ Rmt mailing list [email protected] https://www1.ietf.org/mailman/listinfo/rmt