An improved loss recovery method for coding streaming media classifies each data
unit in the media stream as an independent data unit (I unit), a remotely predicted
unit (R unit) or a predicted data unit (P unit). Each of these units is organized
into independent segments having an I unit, multiple P units and R units interspersed
among the P units. The beginning of each segment is the start of a random access
point, while each R unit provides a loss recovery point that can be placed independently
of the I unit. This approach separates the random access point from the loss recovery
points provided by the R units, and makes the stream more impervious to data losses
without substantially impacting coding efficiency. The most important data units
are transmitted with the most reliability to ensure that the majority of the data
received by the client is usable. The I units are the least sensitive to transmission
losses because they are coded using only their own data. While they provide the
best coding efficiency, the P units are the most sensitive to data loss because
the loss of one P unit renders useless all of the P units that depend on it. The
remotely predicted units are dependent on the I unit, or in an alternative implementation,
on another R unit.