INDEX  F.A.Q.  SEARCH  LATEST POSTS     Rules  Register  Profile  Private messages  Login


Search all forums or this forum: Advanced search
Playing 24p MKV files with MPC, haali and ffdshow.

Forum Index -> Video -> Media Center PC / HTPC Printer-friendly version
Reply to topic
Author Message
Phorze
Member


Joined: 14 Sep 2006
Location: Netherlands

Post Posted: Aug 12, 2007 06:16 Posts Comp View users profile Send private message Reply with quote

ATM i have managed to set my TV screen to 24 or 48 hz, to avoid judder. However, i still have judder and i think i tried everything, but i just can't get it right.

- my system specs exceed requirements for playing hd content, my cpu cores reach 60% max.
- statistics on MPC give a framerate between 23.40 and 24.20 approx, meaning it fluctuates around the target framerate of 23.976. Is this normal? Doesn't this create judder?
- no dropped frames
- using coreAVC or the Cyberlink AVC decoder yields the same results. Lower CPU usage with DXVA enabled ofcourse.

Thanks in advance for any help.


jagabo
Member


Joined: 09 Dec 2005
Location: none

Post Posted: Aug 12, 2007 09:23 Posts Comp View users profile Send private message Reply with quote

In my experience, once you go over ~50 percent CPU usage you will not get smooth playback. And 24 fps is not enough to give smooth motion. You can see this watching any film at the theater.

Phorze
Member


Joined: 14 Sep 2006
Location: Netherlands

Post Posted: Aug 12, 2007 09:58 Posts Comp View users profile Send private message Reply with quote

jagabo wrote:
In my experience, once you go over ~50 percent CPU usage you will not get smooth playback. And 24 fps is not enough to give smooth motion. You can see this watching any film at the theater.


I agree with you there, but thats an inherent flaw , caused by stupid mistakes of the film industry. If only they just made it 25fps or 30fps there would be a lot less playback issues.

And i don't quite get you there on the 50%+ issue. If my cpu does not reach 100% it should be able to put through the data needed for playback right? Or could my ram memory be an issue? Is there any way to check that? Shouldn't it be dropping frames in that case?

Sidenote,
my specs are : X2 3800 @ 2600Mhz
2 GB Kingston ddr1 ram running @ 217mhz approx
My system is Prime, superPI and memtest proof.


jagabo
Member


Joined: 09 Dec 2005
Location: none

Post Posted: Aug 12, 2007 12:32 Posts Comp View users profile Send private message Reply with quote

Phorze wrote:
i don't quite get you there on the 50%+ issue. If my cpu does not reach 100% it should be able to put through the data needed for playback right?

Not at all. Video playback is a realtime process. Frames of video must be ready when the graphics card needs them, not a nanosecond later.

Consider a process that takes 200 "units" of CPU time every second. You have a CPU that can perfrom 1000 units a second. Overall your CPU will only be using 1/5 of its power. It looks like you'll have no problems.

But now consider what happens if you add some realtime requirements. Overall the process still needs 200 units every second but those 200 units must be completed within 1/10 of a second. That is, once a second there is some event that triggers the start of processing and then 1/10 of a second later the processing must be completed. The process needs to work hard for 1/10 of a second then will have nothing to do for the next 9/10 of a second. Your 1000 unit/second CPU can only perform 100 units of work in 1/10 of a second. It won't be able to meet the demands of the process. You might still try to run it and you will see only 20 percent CPU usage. But the realtime process will be messed up because the CPU wasn't finish with the processing when the data was needed.

In addition to this you have a dual core processor. A single threaded process can only use one core at a time (the O/S may switch it back and forth between cores to even out heat buildup but the process will only run on one core at any point in time). That process may max out that one core but the other will have nothing to do. Overall you'll only see 50 percent CPU usage when running a single threaded process. I believe CoreAVC is multithreaded so that's probably not an issue here but it's something to consider with other programs.

Media player software usually does a lot to mediate the realtime issues (read ahead buffering, multiple buffers for decomrpessed frames, multithreading). But in my experience, once CPU usage gets much over 50 percent playback starts getting jerky.

Try using VLC. It sometimes gives smoother playback than other players.


Phorze
Member


Joined: 14 Sep 2006
Location: Netherlands

Post Posted: Aug 13, 2007 16:22 Posts Comp View users profile Send private message Reply with quote

Jagabo, thanks for the incredible useful and clearly explained information! laugh.gif

Because, when i play a HDDVD from harddisk, i get some additional temporary judder at times when the screen changes from a near black screen (low bitrate) To a fully detailed nature scene (very high bitrate)

My videocard requesting an enourmous amount of data all of a sudden can be a very good explanation!

In MPC, there's an option for lock back buffer, but seemingly this is the opposite of what i need? (lock ahead)

I'm pretty sure both cores are used, because i have a cpu utilisation monitor in my vista sidebar, that visualizes each core load, so seemingly it uses both.

Few questions remain:
- is setting the MPC priority to realtime any use?
- are there any other ways to increase the read buffer, to make sure everything is processed before my card needs it?

Thanks for the help mate!


jagabo
Member


Joined: 09 Dec 2005
Location: none

Post Posted: Aug 13, 2007 17:41 Posts Comp View users profile Send private message Reply with quote

Phorze wrote:
is setting the MPC priority to realtime any use?

Not unless you have some other CPU intensive programs running at the same time. Process priority determines which process gets priority when more than one process wants the CPU at the same time. If only one process is runing there's nothing to prioritize (except for a little background system houskeeping but that's typically less than 1 percent).

Phorze wrote:
are there any other ways to increase the read buffer, to make sure everything is processed before my card needs it?

In MPC, go to View -> Options -> Playback -> Output. In the Directshow Video section try the different settings (you may have to exit MPC and restart it). Also try the different VMR7/9 settings. Some may be more efficient than others. Make sure your graphics card is set up to use Video Overlay. This usually offloads the conversion of YV12 to RGB to the graphics card. This can be significant with large frame sizes.


Reply to topic All times are GMT - 6 Hours
Forum Index -> Video -> Media Center PC / HTPC Page 1 of 1





You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum



Jump to:  
Display:   
About   Advertise   Forum Archive   RSS Feeds   Statistics