Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

I am a researcher working on video compression. As part of my work I need to play back raw (i.e. not compressed) video at the correct frame rate for participants to view as part of a compression quality assessment.

These clips are typically 10 seconds long, at a variety of frame rates up to 60fps and at a variety of resolutions from CIF to 1080p. They usually stored in yuv files of 4:2:0 format.

The problem I have is that 1080p videos cannot play back at the correct frame rate (at least above 24 or 30fps). I assume that this is because the data cannot be loaded from the the HDD quickly enough.

I typically used vlc player, or an obscure windows exe I have called vidview. But this is flexible. I have tried adjusting the file caching and disc caching parameters in vlc player to 10000ms, but this does solve the problem.

I usually use a Windows 7 computer, but this is flexible. I may possibly (or possibly not) already have access to an external RAID box. The desktop machine I am using at the moment has an i7, 8GB memory, a SATA2 HDD.

My question is: would simply playing the videos from a faster drive such as a RAID array or SSD be sufficient to solve the problem?

share|improve this question

2 Answers 2

up vote 2 down vote accepted

My question is: would simply playing the videos from a faster drive such as a RAID array or SSD be sufficient to solve the problem?

Maybe - however, before this can be answered more specifically, you first have to determine where the bottleneck in the video playback is to begin with. Indeed, if one could cache the entire video into RAM (or keep a rolling buffer long enough), using a faster disk drive wouldn't make any difference at all (again, assuming you have a large enough buffer).

If your buffer is long enough, it's possible your CPU is bottlenecked during playback. You can determine if this is the case by looking at your CPU usage during video playback; if it reaches a very high value (or you are using a single-threaded decoder, it shows a load of 100/C %, where C is the # of cores), it's possible your CPU is simply too slow to display the video in real-time.


Once you've determined that the CPU is not the bottleneck, then you may want to consider adding a faster storage device to the machine (either SSD or RAM). To determine if your storage device is the bottleneck, you can use something like resmon.exe (included with Windows 7/8) to look at the disk activity of your media player during playback. If the disk transfer rate approaches the maximum speed the disk can handle, then it's likely this is where the bottleneck lies.

share|improve this answer
1  
+1 for 'measure first`. –  Hennes Jul 31 '13 at 17:33
    
With uncompressed video, it is highly unlikely that the processor (especially a core i7) is the bottleneck. It is more likely the I/O subsystem as the OP suspects and the other answer says. –  Bala Sivakumar Aug 1 '13 at 17:55
    
Yeah, I should have mentioned in my answer why I was willing to accept the OPs guess for the disk being the bottleneck. Uncompressed video is much lighter on the CPU than compression. The OP mentioned they were testing compression quality and hadn't mentioned difficultly playing the compressed video, so I assumed the CPU was up to the task . . . also, even if the buffer is long enough, they could be getting buffer underruns if the disk I/O isn't fast enough . . . –  ernie Aug 1 '13 at 22:07

Raw HD generally requires about 120 MB/s, which you're not likely to get off a single spinning disk.

SSDs can get you this speed pretty easily, even on a SATA 3 GB/s port. Tom's Hardware has some charts of read speeds. They've got charts for spinning disks as well.

Another alternative since the clip is short might be to use a RAM disk, and shove the whole video in there.

RAID could get you there, but is probably the most complicated solution, and if you use spinning disks, you'd still have to worry about fragmentation, head seek, and other overhead that could cause dropped frames or other lag.

share|improve this answer
1  
My vote goes for trying out a RAM disk first. –  Taegost Jul 31 '13 at 17:09
    
Although a RAM disk would be cool, they tend to be quite expensive. Just about any modern SSD will have more than enough speed for what you are trying to do. I would definitely recommend an SSD. –  tbenz9 Aug 2 '13 at 1:28
    
@tbenz9 by RAM disk, I was just thinking a software RAM disk (as linked in the original answer), not dedicated hardware. Cost for this can be free (e.g. Gavotte Ramdisk), if there's enough system RAM available. The OPs system has 8 gigs of memory, and a 10 second, uncompressed 1080p would fit in less than 1.5 GB. –  ernie Aug 2 '13 at 15:54

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.