-
Notifications
You must be signed in to change notification settings - Fork 36
Description
Section 2 of draft-ietf-moq-transport-10 includes the following paragraph:
To give an example of how an application might use this data model, consider an application sending high and low resolution video using a codec with temporal scalability. Each resolution is sent as a separate track to allow the subscriber to pick the appropriate resolution given the display environment and available bandwidth. Each "group of pictures" in a video is sent as a group because the first frame is needed to decode later frames. This allows the client to join at the logical points where they can get the information to start decoding the stream. The temporal layers are sent as separate sub groups to allow the priority mechanism to favour the base layer when there is not enough bandwidth to send both the base and enhancement layers. Each frame of video on a given layer is sent as a single object.
I can see the following issues:
- The term "group of pictures" is not a loose term that can have different interpretations. The intent of the term herein appears to mean "independently coded sequence of pictures".
- Both "picture" and "frame" are used. It'd be better to consistently use only one of them. Using "picture" would be better, as in video coding standards a picture can be either a progressive frame or a (top or bottom) field picture.
- The reasoning "because the first frame is needed to decode later frames" can use some improvement, as the real reason herein is that the first picture in an "independently coded sequence of pictures" can be used as a random access point.
- The phrase "send both the base and enhancement layers" can also use some improvement, as the current wording gives an impression that there are only two scenarios: send only the base layer or send both the base and enhancement layers, while actually there can be as many scenarios as the number of layers.
- Both "subgroup" and "sub group" are used. Better to consistently use "subgroup".
For resolving all the issues above (and some other minor issues not mentioned), it is suggested to update the paragraph to be as follows:
To give an example of how an application might use this data model, consider an application sending high and low resolution video using a codec with temporal scalability. Each resolution is sent as a separate track to allow the subscriber to pick the appropriate resolution given the display environment and available bandwidth. Each independently coded sequence of pictures in a resolution is sent as a group because the first picture can be used as a random access point. This allows the client to join at the logical points where decoding of the stream can start without needing information before the join points. The temporal layers are sent as separate subgroups to allow the priority mechanism to favour lower temporal layers when there is not enough bandwidth to send all temporal layers. Each picture is sent as a single object.