How to make TMPGEnc hog the CPU?

Discussion in 'Computers' started by Patrick Sun, Dec 31, 2003.

  1. Patrick Sun

    Patrick Sun Moderator
    Moderator

    Joined:
    Jun 30, 1999
    Messages:
    38,749
    Likes Received:
    480
    Trophy Points:
    9,110
    On my new PC setup, I am running TMPGEnc to do some DVD encoding, and the highest CPU utilization rate I get is 50%. This is on a PC running XP (P4 2.6c, 1GB RAM, Abit IC7-MAX3, and plenty of disk space - 300GB+). I've also closed down extraneous programs, etc. It's running pretty lean, but that doesn't seem to matter since it's got CPU cycles to spare running at only 50%.

    On the TMPGEnc side (options -> Environmental setting), I have all the CPU boxes checked except for the Multi-processor option, and I've tried checking the box with no change in CPU utilization. For the Task Priority, I have the High priority selected for active/non-active window.

    On my older PC (Celeron II 1GHz, 512MB RAM, Asus CUSL-2 MB, 100GB of disk space free) running Windows2000, when I run TMPGEnc, it'll hog the CPU something fierce (though running at full speed, its encoding speed is at least 3 times slower than the new PC).
     
  2. Max Leung

    Max Leung Producer

    Joined:
    Sep 6, 2000
    Messages:
    4,611
    Likes Received:
    0
    Trophy Points:
    0
    Perhaps the bottleneck is disk I/O? Or maybe the compression rate you've chosen isn't aggressive enough? A (slight) possibility is that TMPGEnc is making use of your video card's encoding hardware, leaving you extra CPU to play with!

    Changing CPU priority won't have any effect unless you are running a parallel task (like, say, [email protected] or whatever).

    I suppose the only way to be sure is to look at hardware enthusiast sites that benchmark their CPUs with video encoding software, and see if they have similar results.
     
  3. Patrick Sun

    Patrick Sun Moderator
    Moderator

    Joined:
    Jun 30, 1999
    Messages:
    38,749
    Likes Received:
    480
    Trophy Points:
    9,110
    Well, I did check the "multi-processor" box and the 4 associated boxes below it, and it did hog the CPU cycles, but I couldn't discern any processing benefit in terms of time reduction for crunching through a 2 hour AVI, so I opted to uncheck the "multi-processor" box and just let it run as before.
     
  4. Ken Chan

    Ken Chan Producer

    Joined:
    Apr 11, 1999
    Messages:
    3,301
    Likes Received:
    0
    Trophy Points:
    0
    Maybe it has something to do with HyperThreading. Is it on?

    According to the faq (which seems a little old), "dual-CPU is supported for filtering and part of MPEG encoding." Are you doing any filtering? Maybe you only get the benefit if you are.

    //Ken
     
  5. Patrick Sun

    Patrick Sun Moderator
    Moderator

    Joined:
    Jun 30, 1999
    Messages:
    38,749
    Likes Received:
    480
    Trophy Points:
    9,110
    No filtering has been selected. I think this is as fast as TMPGEnc is going to run on my PC. And granted, it's still 3 times faster than my old PC, so I can take a little comfort in that. From what I can tell, every 10 minutes of video takes about an hour to encode on my new PC. This is with the 2-pass VBR setting, at the highest Video quality setting. If I use second highest Video quality setting, it takes around 75% of the same amount of time (like 8-9 hours to encode a 120 minute video file, vs. 12-13 hours at the highest Video quality setting).
     
  6. Tekara

    Tekara Supporting Actor

    Joined:
    Jan 8, 2003
    Messages:
    783
    Likes Received:
    0
    Trophy Points:
    0
    Well, you can try having windows set a higher priority. opwn up your tasl manager and select the processess tab, right click on the program in the list and select priority. I wouldn't reccomend real-time as everything else will quit responding.
     
  7. Patrick Sun

    Patrick Sun Moderator
    Moderator

    Joined:
    Jun 30, 1999
    Messages:
    38,749
    Likes Received:
    480
    Trophy Points:
    9,110
    Well, I've been experimenting, and now it's with the noise reduction filter, which was needed on one of the video files I was encoding. I've also got everything jacked up (Task priority = Realtime, all the CPU setting cranked up as well). The PC doesn't seem too unresponsive under these settings, and the CPU utilization is not varying between 50% and 90%+ now, and I did notice about a 20-30% speed-up in total encoding time. It's a good thing I have 2 PCs so I can let the fast one do all the crunching, and the other one can be used for surfing, etc.

    Having the noise reduction filter in place caused the encoding time to almost quadruple, though, from 5 hours to around 20 hours for a 125 minutes video file (Normal quality).
     
  8. Patrick Sun

    Patrick Sun Moderator
    Moderator

    Joined:
    Jun 30, 1999
    Messages:
    38,749
    Likes Received:
    480
    Trophy Points:
    9,110
    Okay, using v.2.59 (which allows for hyperthreading operation), I note that for any encoding done with no filters, it will hog both "threads" at 100% CPU utilization, the Task manager process graph shows both CPU Usage history running at 100%. It's pretty hard to do anything else with the PC.

    HT = Hyperthreading
    NR = Noise Reduction

    If I use the Noise Reduction filter (Level 1), then the load on either CPU thread varies, and the CPU usage varies as TMPGEnc does some crunching for the NR filter, and it takes around 5 times longer than without any filters. I can do some other PC tasks (surf the web, etc) while the NR filter is being used to encode.

    The fastest mode of encoding is CBR, Normal mode (just slightly more than the running time of the video file), with the hyperthreading mode enabled.

    If I disable HT, then it takes about 10%-30% longer to encode the video file depending on other factors. Only one of the CPU thread shows a lot of activity while the other thread shows minimal activity. Task Manager shows 50% CPU usage.

    Some quick-n-dirty stats:

    Time (in seconds) to encode a 85 second video segment (Motion Search Precision = Normal) and no filtering:

    HT enabled
    CBR: 90
    2-pass VBR: 179

    HT disabled
    CBR: 110
    2-pass VBR: 207

    ---------

    Time to encode same 85 second video segment (Motion Search Precision = Normal) and Noise Reduction filtering:

    HT enabled
    CBR: 430
    2-pass VBRT: 850

    HT disabled
    CBR: 440
    2-pass VBR: 940

    --------

    Conclusion (but hardly the last word): Hyperthreading helps if you encode without CPU intensive filtering, like Noise Reduction, but it's only around 15%-25% faster.

    With NR filtering, the benefits of HT are less, around 3%-11% faster.
     
  9. Max Leung

    Max Leung Producer

    Joined:
    Sep 6, 2000
    Messages:
    4,611
    Likes Received:
    0
    Trophy Points:
    0
    I guess you figured it out then. Geez, several hours to encode 10 minute of video? No wonder a whole boatload of movies aren't out on DVD yet. [​IMG]
     
  10. Patrick Sun

    Patrick Sun Moderator
    Moderator

    Joined:
    Jun 30, 1999
    Messages:
    38,749
    Likes Received:
    480
    Trophy Points:
    9,110
    It's definitely not for the impatient among us.
     
  11. Max Leung

    Max Leung Producer

    Joined:
    Sep 6, 2000
    Messages:
    4,611
    Likes Received:
    0
    Trophy Points:
    0
    Patrick, I think I may have found the reason why TMPGEnc would only use 50%. According to this guide at http://radified.com/Articles/stability_testing.htm :


    So I guess your P4 has hyperthreading, and the old TMPGEnc doesn't take advantage of it by default. Although I gather this is no longer an issue for you since you upgraded it. [​IMG]
     
  12. Patrick Sun

    Patrick Sun Moderator
    Moderator

    Joined:
    Jun 30, 1999
    Messages:
    38,749
    Likes Received:
    480
    Trophy Points:
    9,110
    Thanks for digging up the link.
     

Share This Page