Log in

View Full Version : Expression Encoder 2 - Slow as hell, recommendaton for settings for 1080p HD rips?


Furiousflea
4th January 2009, 21:49
Hello there, well I haven't dabbled in much VC1 encoding for about a year but I noticed that the Microsoft Expression Encoder 2 with SP1 has been released now and thought I'd give it a go. Surely it's going to be much faster and have lots of nice settings to tweak for my HD -> DVD DL 8GB Xbox 360 rips...

Oh....No, still slow as hell. Well it's actually even slower! However I've tried a few different settings and it seems it's all down to them. There must be some crazy high CPU utilizing settings being used that I most likely don't even need.

I'm encoding to 1080p and would really appreciate some good settings to use that will maximise image quality as cheaply as possible in order of best bang for buck in terms of encoding time.

Would anyone be so kind as to offer some base settings for me to try that will yield decent quality at around 8-10mbit. These encodes will be played back on the Xbox 360 so please don't suggest anything that it doesn't support.

Many thanks in advance for any pointers (ideally a full list of settings to use) I'm also having a bit of trouble with "cropping" in the program, for example if I set the crop to trim off 20px off the top and bottom the encoded output video still seems to be 1080p and the bars are still there. I've tried all manner of settings to get them to go and they aren't there in the prievew video but when I playback the video on my pc they are there again.

I'm encoding on a Q6600 at 3.6Ghz and aiming for encodes or around 8-11 hours tops for 2 hours of 1080p video. Ideally nearer 8hours if at all possible. My first encode took about 18hours!!! VS about 8 hours with good settings using x264. I realise that VC1 encoding is slow as heck though.

Thanks again for any help I receive.

Dark Eiri
5th January 2009, 08:58
I'm ripping my Blurays to play on the XBOX360 with Expression Encoder too, but I'm doing 720p rips (1280x544 most of the time).
Avisynth for processing, EE for encoding. I'm getting around ~6h encode time for ~120min movies, using a Q6600 @ 2.4 GHz.
I'm using the internal 720p profile, tweaked just a bit: 24000 kbps peak and 2 B-Frames, all the other settings left untouched, and I'm getting awesome video quality (for 4.36 GB I need to use ~4800 kbps and 440kbps 5.1 WMA 10 Pro Audio, you would use ~8000kbps for DVD9 1080p)

I think your speed is just about right, since it's 1080p. VC-1 encoding is a little slow compared to x264, but since it's the only way to get surround on the 360, I'm pretty much tied to it. If only Microsoft updated the license to DivX 7, MKV support would be almost certain (then we could use H264 with AC3 5.1 audio).

JayBird
5th January 2009, 17:49
I am in the middle of my first 48 HOUR ENCODING with EE. I think I'll dial it back next time!

For cropping (and this may intimate my ignorance), I used MeGui's avs script file creator to see it's opinion on cropping. I actually just used that avs script in EE.

The best thing for my encoding is Remote Desktop. I set up a computer in the basement with no monitor, keyboard or mouse. It just sits there and slaves away. Of course it's an older computer, which is probably the real reason for my 48 hr ordeal.

Furiousflea
5th January 2009, 19:12
Thanks for the replies...

Well, I changed the overall quality profile from good(3) to better(4) just for some comparison of what I can expect for the difference in time. This 1920x1040 encode is going to have taken 20 hours when it's finished - which is ridiculous considering not nearly all of the settings are anywhere near maxed out. an encode at good(3) took just over 10 hours and looked quite good but nowhere near transparent as h264 would easily have managed given the source.

Thanks both of you for taking the time to reply but hopefully there is someone around who has some insight into what I really need to turn on for good quality and a fast encode (vs turning on esoteric settings that aren't doing anything for IQ but and wasting cpu cycles).

Come on you friendly doom9 bunch just some nice basic settings to get me reasonable image quality with as little time as possible for average HD source (not much grain in source, very clean and no CGI)

(Some settings for CGI would be nice to though mind :))

...Where's that Ben Waggoner guy when you need him ;)

Thanks, Rob

benwaggoner
6th January 2009, 05:24
Where's that Ben Waggoner guy when you need him ;)
Coming, coming!

So, first off, are you doing any preprocessing? The default Super Sampling scaler is high quality but pretty slow at HD resolutions. You didn't describe your source, but assuming it's HD progressive, you should try:

Profile > Video > Frame Rate = Source
Video Profile > Size > Mode = Source
Pre-Processing > Video > Deinterlacing > Force Off

In general Complexity 3 is the sweet spot for quality@perf. I use Complexity 4 for stuff that a huge audience will see, but Complexity 3 is just fine for most high quality stuff. Thus, Complexity 2 is the next thing I'd try.

benwaggoner
6th January 2009, 05:24
Urg, hit the compelely wrong key. Windows-on-MacBook just isn't quite there, due to the keyboard.

Anyway, as for film quality, here's some changes you can make that'll help quality at your bitrate without impacting quality much:

Adaptive Deadzone: Conservative
Overlap: On
Closed GOP: Off


Encoding for CGI, I typically use 2 B-frames instead of 1, and thus increase my GOP duration by 50% (to keep the same number of reference frames per GOP). Some low-motion high detail CGI looks better with I-Frame Only DQuant on.

Furiousflea
6th January 2009, 12:15
Thanks Mr Waggoner, that should speed things up a little. Just going to finish this 28hour encode of a 3 hour film and will compare with some of those settings.

I'm not a genius so I'll have to try things out but thanks very much for your time and providing some base settings to get started with. :)

Furiousflea
6th January 2009, 12:22
Urg, hit the compelely wrong key. Windows-on-MacBook just isn't quite there, due to the keyboard.

Anyway, as for film quality, here's some changes you can make that'll help quality at your bitrate without impacting quality much:

Adaptive Deadzone: Conservative
Overlap: On
Closed GOP: Off


Encoding for CGI, I typically use 2 B-frames instead of 1, and thus increase my GOP duration by 50% (to keep the same number of reference frames per GOP). Some low-motion high detail CGI looks better with I-Frame Only DQuant on.

Have you got any suggestions for key frame interval? The default is 2 seconds but I didstinctly remember when frequenting the doom9 forums last year I think around 7 seconds was recommended. Also on the subject of close GOP I assume I can always turn that off and is never needed for watching encodes on the Xbox 360.

Finally (sorry) I'm curious about Dquant, would it be of any use to use that for very grainy HD video that is mostly quite dark and looks very old. I'm thinking "The Godfather" trilogy on Blu-Ray, I only have a PC drive at the moment and thought I'd give that a shot at 1080p with Dquant on (720p loses far too much of the sharpness and ends up looking like a DVD, 1080p on the other hand exhibits blocking in dark areas at times).

This is being encoded at 6mbps which I know is too low really but it's quite an old fashioned film with not too much camera movement in scenes and the like. Just curious if Dquant has a place in that sort of encode. I did a test 2 min clip and it *seemed* to make a difference on my computer screen but my eyes are terrible lol so.....

Cheers anyways for your reply.

Dark Eiri
6th January 2009, 13:14
I'm using 8 seconds for key frame interval, so far, so good.

Furiousflea
6th January 2009, 19:05
I'm using 8 seconds for key frame interval, so far, so good.

Cheers mate, will give that a go :)

benwaggoner
7th January 2009, 07:17
Thanks Mr Waggoner, that should speed things up a little. Just going to finish this 28hour encode of a 3 hour film and will compare with some of those settings.

I'm not a genius so I'll have to try things out but thanks very much for your time and providing some base settings to get started with. :)
Well, these are some pretty complicated features sometimes :). We assumed that more basic users would just use the speed/quality presets. But this is Doom9; no preset users here ;).

JayBird
10th January 2009, 21:44
As a person who's had plenty of trouble, I was exasperated by Expression Encoder's ability to handle my .avs file perfectly when I couldn't get it to work anywhere else. But while EE worked it did seem painfully slow. I noticed when it was running I got a million little filter icons in my tray. In fact I'm going to guesstimate between 10 and 15 little haali splitter icons and another flavor I forget. I'm largely ignorant on this subject, but does that indicate that EE found a route to success, but used a long filter chain to do so? Would that be a significant performance hit?

benwaggoner
11th January 2009, 01:56
As a person who's had plenty of trouble, I was exasperated by Expression Encoder's ability to handle my .avs file perfectly when I couldn't get it to work anywhere else. But while EE worked it did seem painfully slow. I noticed when it was running I got a million little filter icons in my tray. In fact I'm going to guesstimate between 10 and 15 little haali splitter icons and another flavor I forget. I'm largely ignorant on this subject, but does that indicate that EE found a route to success, but used a long filter chain to do so? Would that be a significant performance hit?
Yeah, that sounds pretty intense! See anything interesting in system monitor as to where your CPU usage is going?

Can you post the contents of your .avs?

I don't know why EE would be doing anything different than any other app in opening an AVS.

JayBird
11th January 2009, 02:51
I'm pretty sure my troubles are personal, but maybe someone shares them. The machine with which I'm encoding is single core, an Athlon XP64 3000+. Because high bitrate divx encoded easily overnight with virtdub (though I never accurately timed it) I judged EE to be "slow", but now that I have WMNic's working I see it's doing no better. In fact it's worse. I calculate this movie to be encoded over SEVERAL DAYS. I'm probably killing myself with some settings. I even had it on single pass, but now I'll going back and try CBR and see what else I can toss overboard to pick up the pace.

In case you're interested, my clock cycles looked good.

http://www.3rdgendecals.com/doom9/processes.gif

Here's the usual suspects in the tray for the directshow
http://3rdgendecals.com/doom9/EE-tray-icons.gif
DirectShowSource("E:\Hitman Rip\HitmanBR\HITMAN\BDMV\STREAM\00002.m2ts", fps=23.976024, audio=false)

Then here's my other attempt where I had cropping and a resize.
http://www.3rdgendecals.com/doom9/ee-tray-icons2.gif
DirectShowSource("E:\Hitman Rip\HitmanBR\HITMAN\BDMV\STREAM\00002.m2ts", fps=23.976024, audio=false)
#deinterlace
crop( 2, 128, 0, -130)

LanczosResize(1920,816) # Lanczos (Sharp)
#denoise

I can't complain about Expression Encoder. It works where the regular WMenc chokes, for me. I just wanted to raise the possibility of a crazy number of filters degrading performance. Maybe I have filters "fighting" each other?

benwaggoner
11th January 2009, 03:21
I'm pretty sure my troubles are personal, but maybe someone shares them. The machine with which I'm encoding is single core, an Athlon XP64 3000+. Because high bitrate divx encoded easily overnight with virtdub (though I never accurately timed it) I judged EE to be "slow", but now that I have WMNic's working I see it's doing no better. In fact it's worse. I calculate this movie to be encoded over SEVERAL DAYS. I'm probably killing myself with some settings. I even had it on single pass, but now I'll going back and try CBR and see what else I can toss overboard to pick up the pace.
Yeah a single core machine is going to be slow no matter how you slice it. 3000 - does that even have SSE3?

That said, I think you've got something else going on there. The Haali and AVS threads are presumably included in EE's 99%.

Dark Shikari
11th January 2009, 03:38
Yeah a single core machine is going to be slow no matter how you slice it. 3000 - does that even have SSE3?If you've found a way to make SSE3 useful for video encoding on CPUs other than the Pentium 4, I'd like to hear it... :)

benwaggoner
11th January 2009, 03:56
If you've found a way to make SSE3 useful for video encoding on CPUs other than the Pentium 4, I'd like to hear it... :)
I know some SSE3 or SSSE3 stuff gets used in the VC-1 Encoder SDK, at least for interlaced modes. It's about a 10% perf improvement IIRC.

SIMD optimization is a topic that I know just enough about to be dangerous :). What issues do you have with SSE3 on more recent processors?

Dark Shikari
11th January 2009, 03:59
I know some SSE3 or SSSE3 stuff gets used in the VC-1 Encoder SDK, at least for interlaced modes. It's about a 10% perf improvement IIRC.

SIMD optimization is a topic that I know just enough about to be dangerous :). What issues do you have with SSE3 on more recent processors?The only SSE3 instruction we have found to be remotely "useful" is lddqu, which is supposed to avoid problems with cacheline-split loads. Problem: it doesn't actually work except on the Pentium 4D and Core1/Pentium-M. And the latter two have such slow SSE units that MMX is faster regardless (Athlons have no penalty for cacheline-split loads). Everywhere else it just aliases to movdqu.

All the other instructions are floating-point, and thus useless in video encoding.

JayBird
11th January 2009, 04:23
Sorry to interject. I wanted to share that uninstalling Haali Media Splitter brought my WMNicenc down to 800 Minutes. Also, I suspect the WMP11 sharing service wmpnetwk.exe (which streams to my xbox 360) is a resource hog. Having 5 computers in the house I often catch it bogging the system.

Dark Eiri
11th January 2009, 15:09
^ Yes, it seems that Haali somehow slows WMV encoding. The issue must be how the encoder gets the source frames.