Atamido
28th September 2003, 19:17
Originally posted by sh0dan
An idea I've been curious about is "I-frames" referencing older I-frames. This could be efficient in many reallife situations, where scenes are shot with two or three different kameras. If a scenechange could reference a slightly older I-frame instead of being an I-frame itself, it might be possible to reduce the amount of I-frames.
This would of course require caching of I-frames and give slightly larger seek time. This exact situation is what prompted a change in the way that Matroska does frame referencing. Originally, there were two bit flags that were used to indicate the type of reference frame. The first one meant the frame was dependant on a previous frame, the second meant that the frame was dependant on the following frame. You could enable them both to indicate dependance on both the previous or following frame.
But, what if you want to do as you are suggesting and reference a frame that is far away? This was an obvious limitation of the design, so the bit-flags were removed, and an new Element was made to indicate the timecode of the frame that it is dependant on. With this design you could reference a frame that is 10 minutes away. You could also reference 5 frames at once. So, this would be very possible to do without any hacks like combining frames.
However, it should be noted that the level of complexity required to do compares for frames that far away is staggering, and not likely to happen any time soon.
An idea I've been curious about is "I-frames" referencing older I-frames. This could be efficient in many reallife situations, where scenes are shot with two or three different kameras. If a scenechange could reference a slightly older I-frame instead of being an I-frame itself, it might be possible to reduce the amount of I-frames.
This would of course require caching of I-frames and give slightly larger seek time. This exact situation is what prompted a change in the way that Matroska does frame referencing. Originally, there were two bit flags that were used to indicate the type of reference frame. The first one meant the frame was dependant on a previous frame, the second meant that the frame was dependant on the following frame. You could enable them both to indicate dependance on both the previous or following frame.
But, what if you want to do as you are suggesting and reference a frame that is far away? This was an obvious limitation of the design, so the bit-flags were removed, and an new Element was made to indicate the timecode of the frame that it is dependant on. With this design you could reference a frame that is 10 minutes away. You could also reference 5 frames at once. So, this would be very possible to do without any hacks like combining frames.
However, it should be noted that the level of complexity required to do compares for frames that far away is staggering, and not likely to happen any time soon.