[Mp4-tech][video][H.263] Relative output order of B-pictures
and B-parts of PB-pictures?
Gary Sullivan
garysull windows.microsoft.com
Tue May 20 11:37:15 EDT 2008
Jay Miles et al,
I've never seen that particular question come up before. The MPEG-4 technology reflector is really not the right place to ask the question, though, because those modes of H.263 are not found in MPEG-4 video. The right place to ask is vceg-experts yahoogroups.com<mailto:vceg-experts yahoogroups.com>, so I'm cross-posting to that list.
That is really a rather obscure question, as I doubt anyone would actually use those two features together. (Even finding implementations that use those features individually is probably difficult.) But the standard does say that it's possible, so (in principle) there ought to be an answer to the question. In hindsight, it might have been a better idea to just disallow that combination.
Hypothetically, I think there could be other conceivable orders as well as the two that you listed, such as having B2 fall temporally between B3 and B4 for output.
I think the encoder's intent would be clearly expressed by the TR syntax element of the B frame and the TRB syntax element of the PB (or Improved PB) frame.
However, I think only output order 1 (where the B part of the PB2 frame temporally precedes the true-B pictures for output) would actually be reasonable from an implementation requirement perspective. Output order 2 would require an extra frame store in a decoder, as the decoder would need to store the decoded B part of the PB2 frame until after decoding and output of the B3 and P4 pictures, whereas the other order would not have that requirement.
Test bitstreams for H.263 are hard to find in general (e.g., there are no official test bitstreams). An obscure one like that is probably impossible to find.
Probably today both of those optional features of H.263 operation are mostly only of academic interest as historical reference designs. That would especially seem to be true of the PB frames (and Improved PB frames) feature.
Hypothetically, we could create an "implementer's guide" for H.263 to work toward clarification of that aspect. I'm not aware of any other open questions regarding errata issues in H.263.
Best Regards,
Gary Sullivan
________________________________
From: mp4-tech-bounces lists.mpegif.org [mailto:mp4-tech-bounces lists.mpegif.org] On Behalf Of J. Miles
Sent: Tuesday, May 20, 2024 2:00 AM
To: mp4-tech lists.mpegif.org
Subject: [Mp4-tech][video][H.263] Relative output order of B-pictures and B-parts of PB-pictures?
Hi everyone.
I am working with H.263 decoding, and I hope someone can help me clarifying the relative output order of B-pictures and B-parts of PB-pictures (or Improved PB-pictures) in H.263. I do not find the standard clear on these subjects. From the standard it is clear that the B-part of a PB-picture is always output before the P-part, which is also intuitive to the usual definition of B-pictures from e.g. MPEG-2 (=H.262) for enabling bi-predicition. The same seems to go for B-pictures when just having these in the stream (i.e. no PB-pictures). For example, a simple stream with just two PB-pictures between each P-picture will be output as follows:
Coded input order: I0 | P1 | PB2 | PB3 | P4 | PB5 | . . .
Decoded output order: I0 | P1 | B2* | P2 | B3* | P3 | P4 | B5* | P5 |. . .
How would the relative output order look for a stream containing both 'true' B-pictures and B-parts of PB-pictures? Would the B-parts come out first (similar to a stream without B-pictures as in the example above), or are the B-pictures output first? In the example below there are two B-pictures between each PB-picture, and the first output ordering in [1] outputs the B-parts first (marked with *), whereas in [2] the B-pictures are output first.
Coded input order: I0 | P1 | PB2 | B3 | B4 | PB5 | B6 | B7 | . . .
Decoded output order [1]: I0 | P0 | B2* | B3 | B4 | P2| B5* | B6 | B7 | P5 | . . .
Decoded output order [2]: I0 | P0 | B3 | B4 | B2* | P2| B6 | B7 | B5* | P5 | . . .
What is the correct handling of output ordering?
I am also wondering if anyone know of any test streams that contain both B-pictures and PB-pictures that I can use for testing/checking?
Any help and comments would be appreciated. Thanks.
Jay
-------------- next part --------------
An HTML attachment was scrubbed...
URL: /pipermail/mp4-tech/attachments/20080520/bc177865/attachment.html
More information about the Mp4-tech
mailing list