Login | Register 
Products Applications Downloads Features Wiki forum Store
 

best way to stream in movie textures?

Still a little green? Ask your beginner's questions here

best way to stream in movie textures?

Postby mkobrien » Fri Jul 10, 2009 12:56 am

Hola~

I have a "Movie In" that I pointed to a series of textures using the file expression with $F in it. The textures were large (4k x 2k), so I expected a bit of a hit. Touch managed to muscle thru them, but it's really slow (goes from 48+ fps to 0.9fps).

I've heard Touch can stream HD resolution texture data from disk and still maintain framerate. Is there a document that talks about the best format and HW for streaming texture data in from disk? Does the equation change if I want to bring in multiple streams?

Thanks in advance.

MO
mkobrien
 
Posts: 96
Joined: Tue Feb 17, 2009 3:38 pm

Re: best way to stream in movie textures?

Postby jim ellis » Fri Jul 10, 2009 9:11 am

Well, I can give you a few tips to speed up performance,
but most of mine are reliant on purchasing top of the line hardware.

1) One of the area's you might want to check out is the manual for the "Touch Mixxa".
Greg had some good general tips in here for speeding up video streaming. Besides, you may fall in love with Mixxa, it's very cool.

2) Have your textures on an internal drive that (during performance) is not being used for anything else (not running Touch, or the operating system). Perhaps even spread the textures out over a few drives? Then you could go with a 10,000 RPM drives as well... although some of the Solid State hard drives are about the same speed now, and run much cooler and are more far more reliable. I go with solid state whenever possible, less data can be stored, and more $, but small, cool, and great for traveling. The military drop these out of airplanes.

3) This is one of the most important tips for hardware! Get a single board Nvidia graphics card with loads of "texture/video memory". I recommend the Nvidia Geforce GTX 285, the EVGA FTW edition is particularly nice
http://www.evga.com/products/moreInfo.a ... s%20Family

Stay away from cards with two PCB (Printable Circuit Boards) for Touch use (such as the standard edition of the Geforce GTX 295, and the nvidia 9800 gx2. With these cards, touch can only really recognize one of the two PCB's. Forget SLI (multiple graphics cards in one machine) with Touch, at least for now... unless something has changed that I don't know about.

Also there is a new EVGA Geforce GTX 295 co-op edition, which has two GPU's on a single PCB. I just found out that this card functions by implementing SLI technology, so I don't think Touch can leverage both GPU's. This one needs to be answered by the Derivative folk.

4) Other than that, a 64 bit operating system, lot's of Ram, fast processor and sweet motherboard.

CPU: intel i7 quad core with large cache.

Mother Board: Nvidia X58

Ram: 8 gig of DDR3. You may want to go with less than 8, because single layered ram is
faster than dual layered. I recommend OCZ ram.

operating system: 64 bit operating systems are the only ones that can read more than 4 GB of ram. There is Vista 64, which some people loath. There is also the hard to find XP 64, which is great, but is no longer supported by Microsoft. Fairly soon Windows 7 will come out, and this should be the best answer, or at least one hopes.

Hope that helps.

Jim
User avatar
jim ellis
 
Posts: 167
Joined: Thu Nov 15, 2007 5:33 pm

Re: best way to stream in movie textures?

Postby malcolm » Fri Jul 10, 2009 9:15 am

You'll get best results if you collapse your images into a movie file. You can use a lossless format like Animation codec. Then you can reference frames via the specify index feature.

Touch also supports loading sequences of images from a directory. If the files are named in sequential numeric order, you can put the directory (not the filename) in the Path parameter, and reference the frames using the specify index feature. This is faster than changing the path using $F, as that does a lot of reinitializing for each file opened.

If you are streaming many different files/movies, you may want to look at getting an SSD drive, as that will avoid the slowdowns caused by a HDD drive seeking all over the place.
Alternatively you can have multiple HDD drives and split the movies up over those, so there isn't too many accesses going to the same drive at the same time.

Multiple core CPUs really help you out here also.

The 'Async Upload To GPU' parameter is also a good feature to turn on, but you can only have this on in a limited number of Movie In TOPs.
User avatar
malcolm
Staff
 
Posts: 2217
Joined: Tue Nov 13, 2007 12:11 am

Re: best way to stream in movie textures?

Postby mkobrien » Fri Jul 17, 2009 2:21 am

Hola~

Thanks for all the help. If I switched the Movie In top to point to a dir and used specify index, I get about 1.8 fps. With the down res to an hd movie, it runs at around 25 fps.

MO
mkobrien
 
Posts: 96
Joined: Tue Feb 17, 2009 3:38 pm

Re: best way to stream in movie textures?

Postby malcolm » Fri Jul 17, 2009 3:51 pm

A good tool to debug this is the Info CHOP, point it at the Movie In TOP.

In particular you want to look at the 'last_hd_read_time' channel. If you are trying to play at 60 fps, this channel needs to stay below 16 (since 1 frame takes 16ms at 60fps) (it's in milliseconds). If it stays above 16 ms, then the Movie In TOP is unable to read frames from the HD frame enough to keep up with demand. This can be caused by slow HD read speed, or the cost of decompressing the data to RGBA.

Also keep an eye on num_pre_read_frames. This should stay above 1. If num_pre_pre_read_frames drops to 0 (which will happen if your hd read time isn't fast enough) then you will essentially fall off a cliff.
For example if you ask for frame 5 and it's not ready, the playback will stall waiting for a frame. The pre-read will also try to grab frames 6, 7 .etc. But since the playback has stalled odds are next time you cook you'll be a few frames in the future, and will ask for frame 8 or 9, causing another stall since the Movie In TOP won't have that frame ready. You can see the number of times this happens by looking at the "read_ahead_misses" channel.

You can avoid this stall by setting the Read Ahead Timeout to 0, but this will cause the image to not get updated if the frame isn''t ready (but will avoid the process slowing to a crawl).

So ya there are a lot of things to tweak to get optimal playback.
User avatar
malcolm
Staff
 
Posts: 2217
Joined: Tue Nov 13, 2007 12:11 am

Re: best way to stream in movie textures?

Postby malcolm » Fri Jul 17, 2009 3:52 pm

Oh also I just found an inefficiency in the image file reading code, so that'll be quite bit faster in the next build.
User avatar
malcolm
Staff
 
Posts: 2217
Joined: Tue Nov 13, 2007 12:11 am


Return to Beginners

Who is online

Users browsing this forum: No registered users and 1 guest