[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