[vorbis-dev] Re: Ogg format and latency

Silvia.Pfeiffer at csiro.au Silvia.Pfeiffer at csiro.au
Sat May 17 00:23:45 PDT 2003



Hi Aaron,

thanks for your thoughts on improving the Ogg encapsulation format. As 
Monty was the person who developed the specification, I am forwarding 
your suggestions to him. Maybe some of these changes can be adopted into 
a future version of the Ogg encapsulation format.

Best Regards,

Silvia.

Aaron Williams wrote:
> Hi Silvia,
> 
> After reading the RFC on the ogg streaming format I see an improvement
> that can be made to reduce encoding latency on the sending end.  It also
> reduces the amount of memory required as well.
> 
> In your page format, you store the segment count and a segment table and a
> CRC in the front of each page.  Having experience with ATM networking and
> some hardware, it is actually better to place any checksums or CRCs at the
> end of a packet.
> 
> Another improvement can be made to the segments.
> 
> Instead of a segment count and a segment table in the beginning, just
> encode the length of each segment at the front of every segment.  Segments
> can be anywhere from 1 to 255 bytes not including the length field.  If
> the length field is zero then this is the end of the page and the CRC
> would immediately follow.
> 
> For a system generating a low-speed Ogg stream it reduces latency in that
> a page can be sent out on a per-segment basis without having to wait for
> the end of a page.  Another benefit is that it is no longer necessary to
> store the entire page in memory.
> 
> When networking, it is always a problem when fields like the length and
> checksum are stored at the beginning of a packet because the entire packet
> must be stored in memory before being sent.  ATM (Asynchronous Transmit
> Mode) AAL5 solved this problem by placing the length and CRC at the end of
> the packet.  In ATM, each packet is chopped up into 48 byte cells where a
> 5 byte header is prepended.  A bit in the 5 byte header indicates that the
> cell is the last cell of a PDU and the last 8 bytes contain a trailer, 2
> unused bytes, a 16-bit length, and a 32-bit CRC.
> 
> The advantage of this is that the latency is reduced for the sending side
> since it can transmit data as soon as it has at least one cells worth of
> data.  When the MTU size is reached it just sets a bit and fills in the
> trailer.  This also means that the sending hardware does not need to store
> potentially 64K of data since it only needs to keep track of the number of
> bytes sent and the running CRC.
> 
> With my proposed change, the page size stays the same, only the segment
> information is distributed throughout the page and the CRC is moved to the
> end.
> 
> If the transport medium is reliable the receiving end can begin decoding
> data before the end of the page is received, as is possible with the
> current Ogg format.
> 
> Sincerely Yours,
> 
> Aaron Williams
> 
> aaronw at doofus.org
> 

--- >8 ----
List archives:  http://www.xiph.org/archives/
Ogg project homepage: http://www.xiph.org/ogg/
To unsubscribe from this list, send a message to 'vorbis-dev-request at xiph.org'
containing only the word 'unsubscribe' in the body.  No subject is needed.
Unsubscribe messages sent to the list will be ignored/filtered.



More information about the Vorbis-dev mailing list