[MPlayer-dev-eng] Lots of stuff for NUT
Oded Shimon
ods15 at ods15.dyndns.org
Tue Jan 3 15:29:35 CET 2006
On Tue, Jan 03, 2006 at 03:44:53PM +0200, Oded Shimon wrote:
> On Tue, Jan 03, 2006 at 02:25:28PM +0200, Oded Shimon wrote:
> > On Tue, Jan 03, 2006 at 12:04:49PM +0100, Michael Niedermayer wrote:
> > > On Tue, Jan 03, 2006 at 11:05:47AM +0200, Oded Shimon wrote:
> > > > just pts in global timebase: Syncpoints: 27674 size: 315730
> > > > single back_ptr and pts: Syncpoints: 27678 size: 391804
> > > > single pts, per stream back_ptr: Syncpoints: 27675 size: 441061
> > > > The above spec: Syncpoints: 27676 size: 459898
> > >
> > > well my critique against this is that you have choosen the testcase so your
> > > method will have least overhead
> > > why not try low bitrate (phone modem speed) with a few subtitle streams
> > >
> > > i really think its unfair that you guys attack my suggestions with non
> > > existing weird stuff like non one-in one-out codecs on tape while your
> > > stuff is shown in the most ideal case :)
> >
> > Hmm, I agree. Well, unfortunately nutmerge is yet to surpport subtitles,
> > but here is my best attempt.
> >
> > This is a 621MB 4.5 hours avi (481768 video frames, average 670 bytes per
> > video frame, 480 bytes per audio frame).
> > (BTW, it was 2.3mb crappy video that I just repeated over and over :)
> > It has audio and video streams, and 2 additional fake streams which give 1
> > 5 byte keyframe every 100 video frames with the exact same pts as video at
> > that point, and have the same timebase as video. Is this is a good fake
> > subtitle stream? (4 streams total)
> >
> > The results:
> > just single pts: Syncpoints: 19315 size: 229235
> > single back_ptr and pts: Syncpoints: 19315 size: 276897
> > per stream back ptr and pts: Syncpoints: 19321 size: 452250
>
> P.S. for pathological 10 "subtitle" streams, 12 streams total, following
> same rules as before:
>
> Syncpoints: 19351 size: 948221
>
> i.e., the extra overhead is 750kb.
>
> I'm considering a possible alternative syncpoint coding method. I'll
> respond later.
ok, here's the spec:
syncpoint:
startcode u(64)
n=0
for (;;) {
back_ptr_div8[n] v
n++
if (!back_ptr_div8[n]) break
}
coded_pts v
stream = coded_pts % stream_count
coded_pts /= stream_count
back_ptr[stream] = back_ptr_div8[coded_pts%n]
pts[stream] = coded_pts/n
for (i=0; i<stream_count; i++) {
if (i == stream) continue
coded_pts v
back_ptr[i] = back_ptr_div8[coded_pts%n]
pts[i] = covert_ts(pts[stream], timebase[stream], timebase[i])
pts[i] -= coded_pts/n
}
For the low bitrate file, with 2 subtitle streams:
Syncpoints: 19320 size: 429893
(a small 20kb gain)
for 10 subtitle streams:
Syncpoints: 19338 size: 613488
(a big >300kb gain)
And for the original average 700mb file before:
Syncpoints: 27462 size: 489232
(a strange 30kb loss)
- ods15
More information about the MPlayer-dev-eng
mailing list