View Single Post
Old 23rd August 2008, 04:50   #9  |  Link
DigitAl56K
Registered User
 
Join Date: Nov 2002
Location: San Diego, CA
Posts: 936
Just to add to the IDR interval discussion it is worth considering the value of a given maximum IDR to the trick-play experience. If you have a max. IDR of 4 seconds and during trick play you display each IDR for 0.5 seconds you have time scaling of 8:1. If you display each IDR for 0.25 seconds you have timeline compression for 16:1. But if your max IDR is every 1 second then even if you're displaying each trick frame for only 0.25 seconds that's only timeline compression of 4:1.

You would get max 30:1 compression with max IDR = 1 second due to the frame rate if you did not skip IDR's, and max 120:1 compression with max IDR = 4, but I'm not exactly sure how easy that would be to navigate!

Just posing an alternative way to look at it. Nothing in the draft profile prevents shorter IDR interval btw.

If anyone is interested, it's possible to simulate the experience using AVISynth's SelectEvery() filter as an IDR skip and using AssumeFPS() to set the rate that the display is updated.

Code:
IDRInterval = 4 # IDR max period
UpdateRate = 4  # IDR's shown per second during trickplay
MySource=AVISource("SomeFile.avi")
Return SelectEvery(MySource, int(MySource.FrameRate() * IDRInterval), 0).AssumeFPS(UpdateRate, 1)

Last edited by DigitAl56K; 23rd August 2008 at 05:02.
DigitAl56K is offline   Reply With Quote