View Full Version : WMV picture quality - how to improve?


Maciek
3rd July 2008, 14:17
I'm not sure if this is the right forum to ask this question so sorry if it isn't.

How can I improve the picture quality of my WMV files (when I play them?)? Do ffdshow's quality settings apply to WMV files?

I remember a few years ago I watched WMV files on someone else's computer with an nVidia card that seemed to have some special video improving feature. When I played the same files on my computer they looked much worse.
Now that I have a new computer with an nVidia card I wonder if I have this feature(?) turned off (and maybe that's the reason my WMV files play so bad - lots of artifacts, playback isn't smooth etc).

So once again: Is there any way of improving WMV playback quality? Is there a feature in nVidia cards (I think it was called PureVideo, or something) that improves the video quality? Do ffdshow's settings apply to WMV files?

JohnnyMalaria
3rd July 2008, 15:04
Have you tried different players? For WMV, WMP does a great job (IMHO!)

Sharktooth
3rd July 2008, 15:32
purevideo cant do miracles.
if your file looks like crap... it looks like crap.
if you made the file, next time use a better video encoder (h.264 for example), if you got the files from some web services, try avoiding those services using WMV and look for those which use better encoders.

benwaggoner
7th July 2008, 01:24
purevideo cant do miracles.
if your file looks like crap... it looks like crap.
if you made the file, next time use a better video encoder (h.264 for example), if you got the files from some web services, try avoiding those services using WMV and look for those which use better encoders.
Oh 'cmon. Really, how much video that actively looks bad would look good just with a codec switch? Most bad video that's really bad has either source/processings errors or bad settings applied.

Dark Shikari
7th July 2008, 01:47
Oh 'cmon. Really, how much video that actively looks bad would look good just with a codec switch? Most bad video that's really bad has either source/processings errors or bad settings applied.I have loads of gameplay videos that look awful at 2-3 megabit WMV but look great if you do the same encode with x264... even at half the bitrate. ;)

Its quite reasonable from my experience to say "use H.264, it will look better," especially given how utterly awful the old Windows Media Encoder is, which is still the main free option for WMV encoding.

benwaggoner
7th July 2008, 16:21
I have loads of gameplay videos that look awful at 2-3 megabit WMV but look great if you do the same encode with x264... even at half the bitrate. ;)
But what are you encoding with? You know more than anyone that implementations and settings matter more than codecs.

Would you like me to compare PEP to QuickTime's H.264 exporter :)?

Its quite reasonable from my experience to say "use H.264, it will look better," especially given how utterly awful the old Windows Media Encoder is, which is still the main free option for WMV encoding.
AVS2ASF? That's free and has the much better VC-1 Encoder SDK Pro. For stuff like game captures, chroma search is extremely useful, as are B-frames, neither of which would be on by default in WME unless you're using WMV9 PowerToy.

Also, WME is over five years old now, and has lousy preprocessing, so if you're doing any scaling or deinterlacing, quality issues may be more due to that than anything in the codec.

I'd be happy to help you craft some optimized VC-1 settings for game recordings. I've got some similar walkthroughs on my blog.

You can also try the 30-day trial of Expression Encoder 2 to see if you like it. Heck, you find it useful, I'm sure I can swing a free copy for you :).

Sharktooth
7th July 2008, 16:24
meh... just downloading the free trial.
let's try it... then we'll see.

Dark Shikari
7th July 2008, 16:29
AVS2ASF? That's free and has the much better VC-1 Encoder SDK Pro. For stuff like game captures, chroma search is extremely useful, as are B-frames, neither of which would be on by default in WME unless you're using WMV9 PowerToy.I've been using WMCMD.vbs with "Insane" for all my WMV needs, so at least I'm making the most of WME ;)

I'll try out the VC-1 SDK sometime; I hope it does a better job, though obviously it can't really make up for the weaknesses of WMV.

benwaggoner
7th July 2008, 16:47
I've been using WMCMD.vbs with "Insane" for all my WMV needs, so at least I'm making the most of WME ;)
That can certainly help, although it's a general tuning. For game footage, I'd definitely turn on adaptive deadzone and go to at least 2 B-Frames.

Still won't help with prerproc :).

I'll try out the VC-1 SDK sometime; I hope it does a better job, though obviously it can't really make up for the weaknesses of WMV.
It does. What are the weaknesses you're thinking about?

Dark Shikari
7th July 2008, 16:51
It does. What are the weaknesses you're thinking about?Don't make me go into this again ;). So-weak-as-to-be-useless deblocking filter, no CABAC, no multiref, no pyramidal B-frames, no spatial intra prediction, etc, etc, etc. Its sort of like an upgrade of MPEG-4 ASP rather than a competitor to H.264; I don't really see them in the same playing field nor as competitors.

benwaggoner
7th July 2008, 16:56
Don't make me go into this again ;). So-weak-as-to-be-useless deblocking filter, no CABAC, no multiref, no pyramidal B-frames, no spatial intra prediction, etc, etc, etc. Its sort of like an upgrade of MPEG-4 ASP rather than a competitor to H.264; I don't really see them in the same playing field nor as competitors.
It's a different feature set, with different strengths, certainly.

In practice, I'd say the in-loop deblocking filter is the main source of the different performance between H.264 and VC-1. CABAC and multiple reference frames and pyramid B sound great in theory, but it's rare I've seen them make that big of a practical difference in the kind of real-world content I do (clean animation source is probably the biggest area where they really help H.264, which I don't do a lot of). Judicoius use of BI frames in VC-1 fixes the "flash frame" triggering a new GOP problem MPEG-2 and ASP have with much lower encode/decode complexity.

VC-1 also has the assumption that an adaptive postprocessor is availble on decode.

Dark Shikari
7th July 2008, 17:00
CABAC and multiple reference frames and pyramid B sound great in theory , but it's rare I've seen them make that big of a practical difference in the kind of real-world content I do (clean animation source is probably the biggest area where they really help H.264, which I don't do a lot of)Oh really (http://akuvian.org/src/x264/entropy_mpegcif_avg.png)? I'd say those three features combined can give at least a 30-40% advantage on live content and a 100-150% advantage on animated/game footage if not more, from my experience. If you don't use an inter bias of some sort (e.g. Psy RDO or Mainconcept's FGO), spatial intra prediction gives an enormous benefit; if you do use an inter bias, multiref and B-pyramid gives a huge benefit, so something helps either way.

Anyways, its time to put AVS2ASF through my torture test (http://mirror05.x264.nl/Dark/x264vsElecard/) ;)

benwaggoner
7th July 2008, 17:04
Oh really (http://akuvian.org/src/x264/entropy_mpegcif_avg.png)? I'd say those three features combined can give at least a 30-40% advantage on live content and a 100-150% advantage on animated/game footage if not more, from my experience. If you don't use an inter bias of some sort (e.g. Psy RDO or Mainconcept's FGO), spatial intra prediction gives an enormous benefit; if you do use an inter bias, multiref and B-pyramid gives a huge benefit, so something helps either way.

Anyways, its time to put AVS2ASF through my torture test (http://mirror05.x264.nl/Dark/x264vsElecard/) ;)
Wow, I'd really love to hear what you find there!

I'd be happy to help recommend some tunings when you get some test clips out of that.

If you'd like me to try with some more advanced VC-1 implementations, I'd love to take a look at your source.

But yes, that's the kind of content where H.264 should do particularly well I'd think.

Sharktooth
7th July 2008, 17:16
ok... im going to compress the hancock trailer with x264 and with expression encoder 2.0 at a rate of 1000kbps
i will resize to SD. suggested settings for expression encoder?

Dark Shikari
7th July 2008, 17:39
Wow, I'd really love to hear what you find there!Any chance on some settings recommendations? I don't want to finish this to find that I used crappy settings or the like ;)

Some things are obvious, but I'm not sure what the "sane range" for dquant is, for example, and this is a clip that benefits loads from AQ.

Edit: if I use the following it sits and does nothing, if I use AVS input it fails with error code "-30":

$ ./AVS2ASF.exe -i "th07e 2008-03-25 12-32-06-18.avi" -o test.asf -rate 1459 -c
omplexity 5 -bframes 3 -ratecontrol 4 -inloop 1 -overlap 1 -motionsearchlevel 3
-deltamvrange 3 -mesearchmethod 1 -mbcost 1 -mvcost 1 -mvrange 3 -dquantoption
3 -adaptivequant 2 -adaptiveGOP -keyPop 1 -profiletype 2 -peakrate 20000 -vbv
20000 -maxkeydist 600 -framerate 59.94

It won't accept framerate 60 (the correct framerate) either.

Sharktooth
7th July 2008, 18:22
try this one: http://kurtnoise.free.fr/misc/AVS2ASF-0.3_20080312.zip

Dark Shikari
7th July 2008, 18:25
try this one: http://kurtnoise.free.fr/misc/AVS2ASF-0.3_20080312.zipStill terminates with error "-30".

Sharktooth
7th July 2008, 18:31
try using an .avs as input file. the nic modified version has support for avisynth.

Dark Shikari
7th July 2008, 18:39
try using an .avs as input file. the nic modified version has support for avisynth.As I said, I already am.

Sharktooth
7th July 2008, 18:42
sorry. then dunno why it's not working.
im actually using expression encoder 2 to do the job. it should be based on the same encoder as avs2asf, however it's only 30 day trial.
the interface is nice though. id's say it's quite a good piece of software... but it only supports VC-1.
if it had additional support for mpeg4 or even mpeg2 and some more output containers i'd buy it.

@ben: is there a WMA10 cli encoder too?

Dark Shikari
7th July 2008, 19:40
I made an encode using Expression Encoder trial on "Best" mode, in 2pass of course.

Unfortunately, the result was--to say the least--atrocious. The quality is overall slightly better than Xvid (not saying much, Xvid is absolutely awful in this case, with P-frame quants in the 20s), but there's a serious artifacting issue in the interface on the right side, most likely due to a combination of bad P-skip decision and bad P-skip MV prediction (no real knowledge of the VC-1 spec here, but I'm guessing that unlike in H.264, VC-1 doesn't say that if a neighboring MV is zero, the skip vector for the current MB is also zero).

The result of this artifacting is a massive visual distraction that just looks awful. Add in the complete blockiness, I-frame "popping," and just general low quality, and well... you can see what I mean when I say that WMV just isn't up to the task :p The ratecontrol is pretty bad too--the first GOP looks pretty decent and then it goes completely downhill from there (despite using 2pass mode).

If there's other options to adjust in Expression Encoder, I couldn't find them.

Reference links:

x264 (http://mirror05.x264.nl/Dark/Flash/x264_touhou_psyrdo.mp4)
Xvid (http://mirror05.x264.nl/Dark/Flash/Xvid_touhou.avi)
WMV (http://mirror05.x264.nl/Dark/Flash/VC1_touhou.wmv)

Sharktooth
7th July 2008, 19:48
in case you didnt notce (since you didnt wrote about the settings) in the right bar, just scroll down (after you selected the basic options for video) and unroll advanced codec settings (just under the presets group - you choosen best - ont the bottom edge, there's a down arrow... click it).

Dark Shikari
7th July 2008, 20:41
There isn't any such button in my Expression Encoder...

Edit: Seems the Microsoft website referred me to the old version... downloading the [much larger] new version now.

Sagittaire
7th July 2008, 21:12
dquant higher than 1 is buggy ... try that for maximum quality:


@REM Source file name (suffit de mettre la source ici)
set E_SRC=hjhjhhjjh.avs

@REM Set of bitrates (ici le bitrate)
set E_BR=12000

@REM Set of max bitrates (ici le bitrate max)
set MAX_BR=40000

@REM Set of Buffer (ici le buffer)
set BUF_BR=3750000

@REM Profil (ici le nom des fichiers de sortie)
AVS2ASF.exe -i %E_SRC% -o azerty.vc1 -rate %E_BR% -peakrate %MAX_BR% -vbv %BUF_BR% -framerate 23.976 -ratecontrol 3 -profiletype 2 -maxkeydist 240 -bframes 1 -adaptiveGOP -keyPop 1 -inloop 1 -overlap 1 -complexity 5 -motionsearchlevel 2 -mesearchmethod 1 -mbcost 1 -mvcost 1 -mvrange 4 -adaptivequant 1 -dquantoption 1

pause

Sharktooth
7th July 2008, 21:15
DQuant = 1 is for I frames only... isnt it?

Dark Shikari
7th July 2008, 21:34
I tried to download the enormous 210MB Expression Encoder 2, but both times it was corrupt (in the exact same location) despite using a download manager one time and not the other.

It would be nice if Microsoft offered versions of their products that actually worked ;)

Sharktooth
7th July 2008, 21:44
it worked for me...

Dark Shikari
7th July 2008, 21:47
Seems despite the corruption I was able to force it to install with a bit of creativity. Tests will follow.

Sharktooth
7th July 2008, 21:50
it's damn slow at encoding... at least at higher complexity modes.
when i mean slow... i mean REALLY slow.

Sagittaire
8th July 2008, 00:09
DQuant = 1 is for I frames only... isnt it?

yes other setting don't work. Anyway Dquant is not recommended setting at low bitrate.

Dark Shikari
8th July 2008, 02:14
I encoded with EE2 on slowest settings--it took over three hours (!). Unfortunately, its hardly any better (http://mirror05.x264.nl/Dark/Flash/VC1_touhou_EE2.wmv).

Sharktooth
8th July 2008, 03:16
did you find the other encoder options?

Dark Shikari
8th July 2008, 04:14
did you find the other encoder options?Yes, I basically maxed all the encoder settings (True Chroma, Hadamard only for motion search, etc).

Sharktooth
8th July 2008, 04:15
Not the best quality settings at all but... should be enough for a fast comparison
http://mirror05.x264.nl/Sharktooth/MeGUI/hancock2.mp4

encoded with MeGUI's HQ slowest profile @ 1000kbps (using fast first pass)
avs script:
DirectShowSource("hancock-tlr2r_1080p.mp4",fps=23.976,audio=false)
LanczosResize(720,400) # Lanczos (Sharp)
Source Apple's Hancock HD trailer 2 (http://www.apple.com/trailers/sony_pictures/hancock/hd/) (remuxed into mp4 for convenience)
let's see if anyone can produce a better looking VC-1 encode with the same avs (no preprocessing!) using the same bitrate

benwaggoner
8th July 2008, 08:46
Yes, I basically maxed all the encoder settings (True Chroma, Hadamard only for motion search, etc).
Can you give the specifics of what you tried? It's rarely a matter of "maxing out" - most of the advanced settings are somewhat context specific (the stuff there was always a right answer to, we did that way).

Among other things, it looks like you used DQuant on every frame, and 7 B-frames in a row! That many B-frames means you're getting more bits in non-reference frames than reference frames. Also, your motion search range is too high for the content, slowing your encode a ton and probably letting a few erroneous vectors sneak in where there's matches in different parts of the screen.

We can probably reduce the encoding time a bunch while improving quality.

It's definitely a weird clip, so I don't have an immediate confidence in the optimum settings. Without having the source to tweak, I'd probably start with something like:

Video:
Frame Rate: Source
Key frame interval: 10 seconds?
Profile: VC-1 Advanced Profile
Mode: VBR Peak Constrained
Bitrate: 1500
Peak bitrate: 3000? (whatever you're testing)
Peak buffer size: same as key frame interval
Width: 640
Height: 480

Pre-Processing
Deinterlacing: Off (just in case the source codec was flagged wrong)

Advanced Codec Settings:
Video Complexity: 5 (4 is normally just as good, but this is an odd clip...)
Adaptive Deadzone: Conservative (maybe try with off as well. Aggressive is almost never helpful, but might be an interesting experiment with this odd source)
DQuant: Off or I-frame only
In-Loop: On
Overlap: On
B-Frame Number: 2? (might try 1 as well)
Scene Change Detection: On
Adaptive GOP: On
Closed GOP: Off
Chroma Search: Full True Chroma
Match Method: Adaptive (sometimes works better than full Hadamard, and faster)
Search Range: Adaptive (I don't see any motion that's more than 64/32 with IBBP, but just in case, Adaptive would find it).

Dark Shikari
8th July 2008, 14:21
Among other things, it looks like you used DQuant on every frameSounds like a damn good idea given the results from x264--unless Dquant isn't what it should be (spatial complexity mask).
and 7 B-frames in a row!Wait, are you telling me EE2 doesn't have adaptive B-frame decision? :confused:

benwaggoner
8th July 2008, 15:55
Sounds like a damn good idea given the results from x264--unless Dquant isn't what it should be (spatial complexity mask).
The DQuant implementation used in the VC-1 Encoder SDK version included in Expression Encoder can to aggressively shift bits to smooth areas of the image, starving more complex areas of the image of bits and driving up their QP. It's really tuned more for Blu-ray bitrates.

We have a much better low bitrate tuned vesrion of DQuant in the current PEP release, but that hasn't migrated itself back into EE yet.

Wait, are you telling me EE2 doesn't have adaptive B-frame decision? :confused:
It's adaptive for special cases, like switching to P-frames for fades in order to use intensity compensation and to use BI frames for flashes. But the parameter isn't there to set maximum B-frame distance, but to set the target B-frame distance for when nothing unusual is going on.

Dark Shikari
8th July 2008, 16:06
The DQuant implementation used in the VC-1 Encoder SDK version included in Expression Encoder can to aggressively shift bits to smooth areas of the image, starving more complex areas of the image of bits and driving up their QP.Sounds exactly like x264's adaptive quantization. Either way, I'll drop it only to I-frames if that's what you think is reasonable.
It's adaptive for special cases, like switching to P-frames for fades in order to use intensity compensation and to use BI frames for flashes. But the parameter isn't there to set maximum B-frame distance, but to set the target B-frame distance for when nothing unusual is going on.Ah, that makes sense.

benwaggoner
8th July 2008, 16:12
Sounds exactly like x264's adaptive quantization. Either way, I'll drop it only to I-frames if that's what you think is reasonable.
You might want to try it with I-frame DQuant on and off. With this clip, it's kind of a tossup if there's low enough motion in the textured and smooth areas that it's worth shifting some bits to the I-frames to make it look better. I've had good results with I-frame DQuant for CGI and screen captures, which are something like this.

Is the source uncompressed straight from a frame buffer, or is there a little analog noise in it? If there's any noise, I-frame DQuant woudl be less helpful, and you might be better off letting those bits go somewhere else.

Dark Shikari
8th July 2008, 16:16
Is the source uncompressed straight from a frame buffer, or is there a little analog noise in it? If there's any noise, I-frame DQuant woudl be less helpful, and you might be better off letting those bits go somewhere else.Its lossless, straight from the framebuffer.

An encode with the following changed is going now:

Motion range -> Adaptive
Bframes -> 1
Deadzone -> Conservative
Dquant -> I-frames only
Match Method -> Adaptive

benwaggoner
8th July 2008, 16:29
Its lossless, straight from the framebuffer.

An encode with the following changed is going now:

Motion range -> Adaptive
Bframes -> 1
Deadzone -> Conservative
Dquant -> I-frames only
Match Method -> Adaptive
Sound good. Let me know how it goes.

I'm intrigued by that source; if you have any way to share it, I'd be happy to run it through the combinations and tell you what works best.

Dark Shikari
8th July 2008, 16:35
Sound good. Let me know how it goes.

I'm intrigued by that source; if you have any way to share it, I'd be happy to run it through the combinations and tell you what works best.Here is an H.264 lossless (http://mirror05.x264.nl/Dark/force.php?file=./LosslessTouhou.mkv) version of a shorter clip (from the same boss fight in the same game, but a different runthrough). Unfortunately it doesn't have much of the difficult blue-background section at the beginning, so its not as tough a source.

This particular clip is also being used by one of the GSOC students as a torture test for reference frame decision.

*.mp4 guy
8th July 2008, 16:42
Not the best quality settings at all but... should be enough for a fast comparison
http://mirror05.x264.nl/Sharktooth/MeGUI/hancock2.mp4

encoded with MeGUI's HQ slowest profile @ 1000kbps (using fast first pass)
avs script:
DirectShowSource("hancock-tlr2r_1080p.mp4",fps=23.976,audio=false)
LanczosResize(720,400) # Lanczos (Sharp)
Source Apple's Hancock HD trailer 2 (http://www.apple.com/trailers/sony_pictures/hancock/hd/) (remuxed into mp4 for convenience)
let's see if anyone can produce a better looking VC-1 encode with the same avs (no preprocessing!) using the same bitrate

I must have missed something, where is the wmv encoded trailer?

Sharktooth
8th July 2008, 16:43
im looking for someone that can make it, since i received no advice on VC-1 settings to use for that clip.

benwaggoner
8th July 2008, 17:06
im looking for someone that can make it, since i received no advice on VC-1 settings to use for that clip.
You can use this as a starting point:

http://on10.net/blogs/benwagg/21587/

Sharktooth
8th July 2008, 18:38
starting point? i've provided the source and i'd like some more info than a starting point since EE2 takes quite some time to encode and i use my PC for other tasks too.
ok... never mind... ill see what i can do.
just dont make me do 10000 test encodes...

benwaggoner
8th July 2008, 19:26
starting point? i've provided the source and i'd like some more info than a starting point since EE2 takes quite some time to encode and i use my PC for other tasks too.
ok... never mind... ill see what i can do.
just dont make me do 10000 test encodes...
Oh, I imagine those settings are going to be quite close once you fix the bitrate and such.

Sharktooth
8th July 2008, 20:20
so am i correct in assuming that if i use the settings in the linked "guide", the result will be pretty close to the hypotetical maximum quality?

benwaggoner
8th July 2008, 20:22
so am i correct in assuming that if i use the settings in the linked "guide", the result will be pretty close to the hypotetical maximum quality?
I hope so. I haven't had a chance to look at the source carefully, though.

If there's obvious compression noise, using the "Denoise" filter may help a bit.

Sharktooth
8th July 2008, 20:28
i dont think the pre-processing is part of the VC-1 standard, and even if it is, it's just a nonsense. so to be sure to make a fair comparison, all preprocessing is done in the .avs just to be sure to use the same pre-processing filters for both codec.
in this case the only filter used is LanczosResize() to downscake from 1080p to SD.

EDIT: i started the encoding with your suggested settings except the fact i set VBR unconstrained coz i didnt put any VBV limits for x264
Just a side note... x264 took less than 20 mins (both passes) to encode on my old trusty Athlon XP 3000+ box, EE2 first pass took about 17 mins, the second pass is going to take about 2 hours... arghhh... thanks M$ for not optimizing softwares!

EDIT2: i give up. i cant wait 2 hours for a 3 minutes trailer...
wtf even x264 at insane settings doesnt takes so much...

Partial encoding (probably seeking doesnt work): http://mirror05.x264.nl/Sharktooth/MeGUI/partial_hancock.wmv

draw your conclusions. to me the winner is... x264. faster and better... and i didnt even use max quality settings...

*.mp4 guy
9th July 2008, 00:55
While I agree that X264 is clearly better in this case, and that preprocessing has no place in an encoder comparison, I don't think that complaints about speed are relevant, when quality of output is whats being debated, vc-1 was less then an order of magnitude slower then X264, so it is clearly still usable, if a bit slow. Also, why is the wmv encode so crazily blurry? I double checked my ffdshow config, and there wasn't anything funny going on.

Sharktooth
9th July 2008, 03:07
dunno i encoded the same avs using HQ-Slowest for x264 and the suggested options (except for VBV costrains since i removed them) for VC-1.
i didnt even use the best possible settings for x264...

benwaggoner
9th July 2008, 03:37
i dont think the pre-processing is part of the VC-1 standard, and even if it is, it's just a nonsense. so to be sure to make a fair comparison, all preprocessing is done in the .avs just to be sure to use the same pre-processing filters for both codec.
in this case the only filter used is LanczosResize() to downscake from 1080p to SD.

EDIT: i started the encoding with your suggested settings except the fact i set VBR unconstrained coz i didnt put any VBV limits for x264
Just a side note... x264 took less than 20 mins (both passes) to encode on my old trusty Athlon XP 3000+ box, EE2 first pass took about 17 mins, the second pass is going to take about 2 hours... arghhh... thanks M$ for not optimizing softwares!

EDIT2: i give up. i cant wait 2 hours for a 3 minutes trailer...
wtf even x264 at insane settings doesnt takes so much...

Partial encoding (probably seeking doesnt work): http://mirror05.x264.nl/Sharktooth/MeGUI/partial_hancock.wmv

draw your conclusions. to me the winner is... x264. faster and better... and i didnt even use max quality settings...
Yeah, using Complexity 5 is really overkill in most cases. Complexity 3 is a fine default, and I rarely use more than Complexity 4 unless it's something I don't have a deadline for.

It's like the "Mastering Mode" from ProCoder/Carbon. Just going down one notch should speed things up quite a bit.

Although I wonder if the .mkv source is decoding particularly slowly in EE or something. Might be interesting to dump it to an .AVI file and see if you got different performance.

It's true that the bulk of our optimization work the last few years has been focused on multithreading and SSE2+. I'm not surprised it's pretty slow on a single core processor without SSE2. I certainly haven't ever run EEv2 on anything less than a Core2Duo.

Sharktooth
9th July 2008, 03:41
in practice i recompressed the source to a huffyuv avi file and used that as source for compressing with both x264 and VC-1.
i always do that since i have no DXVA assisted decoding and a slow CPU for 1080p decoding...

benwaggoner
9th July 2008, 03:42
in practice i recompressed the source to a huffyuv avi file and used that for compressing with both x264 and VC-1.
I doubt it had any effect in this case, but I prefer Lagarith over Huffyuv as there's a native 4:2:0 mode as so you don't get any colorspace conversions.

Sharktooth
9th July 2008, 03:44
well, that's not a big issue since i used the huffyuv avi for both codecs.

Dark Shikari
9th July 2008, 03:45
Yeah, using Complexity 5 is really overkill in most cases. Complexity 3 is a fine default, and I rarely use more than Complexity 4 unless it's something I don't have a deadline for.

It's like the "Mastering Mode" from ProCoder/Carbon. Just going down one notch should speed things up quite a bit.Makes me think we should add such a thing in x264, --subme 8 or something like that. This would do the following:

1. Fully unthresholded RD on everything.
2. No fast b-skip.
3. No shortcuts at all--no mixedrefs early termination, no fast intra.
4. RD-optimized bime.
5. b8x8 RDO, sub-p8x8 RDO, qpel RD on B-frames, RD reference frame decision.

Combined with the appropriate absurd --ref and --me settings, this would yield a nice ridiculously slow but even better encode (and would make a great placebo in general). Ironic that having a really slow encode makes for good marketing.

Out of curiosity, if you're at liberty to speak about this, on the higher encoding modes (3-5), what does EEv2 spend most of its time doing? I highly doubt its a more intensive motion search, since you're only using one reference frame.

Sharktooth
9th July 2008, 03:46
LOL. why not removing the asm optimizations too? that's even more placebo... ;)

Dark Shikari
9th July 2008, 03:50
LOL. why not removing the asm optimizations too? that's even more placebo... ;)If you're doing that, you might as well do:<ChronoCross> I feel as though ----------------------tesa should be an option. it should be compareable to lossless with the side effect of it taking an eternity to encode.
<ChronoCross> I guarantee 90% of the people in this channel and doom9 would use it.
<pengvado> no, it has to be blatantly obvious.
<pengvado> --placebo
<pengvado> which makes your encode 10x slower and donates the difference to folding@home

Sharktooth
9th July 2008, 03:55
jokes apart, ill redo the VC-1 encode tomorrow using a lower complexity... or maybe ill try to run EE2 on linux using wine since if it works it should be faster on a q6600 (even using wine) than on an athlon xp

benwaggoner
9th July 2008, 04:12
jokes apart, ill redo the VC-1 encode tomorrow using a lower complexity... or maybe ill try to run EE2 on linux using wine since if it works it should be faster on a q6600 (even using wine) than on an athlon xp
I'd be stunned if it works on WINE. Lots of DirectShow dependencies.

benwaggoner
9th July 2008, 04:19
Out of curiosity, if you're at liberty to speak about this, on the higher encoding modes (3-5), what does EEv2 spend most of its time doing? I highly doubt its a more intensive motion search, since you're only using one reference frame.
B-frames use two reference frames, of course.

I believe the main difference is doing more precise motion search, with tighter thresholds on early exits and that kind of thing.

Our lead compression quality dev explained it to me once; you probably would have understood it better than I. I recall it involved 16 instead of 12 zones :).

Dark Shikari
9th July 2008, 04:31
B-frames use two reference frames, of course.

I believe the main difference is doing more precise motion search, with tighter thresholds on early exits and that kind of thing.This still seems doubtful to me--a one reference-frame 129x129 SATD exhaustive motion search (with other settings at very fast values) in x264 (with B-frames) runs at about 7 FPS on standard-definition video on a Core 2 Duo, with no fast pskip or other similar early terminations. That's checking 16641 candidate motion vectors for 16x16 only (it also does the full search on 8x8, 8x16, and 16x8 for a total of up to 150,000 candidate motion vectors for P-blocks and 300,000 for B-blocks), and still encoding quite a bit faster than EEv2. I doubt EEv2 is even that insane regarding its motion search...

(Corresponding settings to the above: --bframes 2 --me tesa --merange 64 --no-fast-pskip --subme 1 --crf 20)

benwaggoner
9th July 2008, 04:42
This still seems doubtful to me--a one reference-frame 129x129 SATD exhaustive motion search (with other settings at very fast values) in x264 (with B-frames) runs at about 7 FPS on standard-definition video on a Core 2 Duo, with no fast pskip or other similar early terminations. That's checking 16641 candidate motion vectors for 16x16 only (it also does the full search on 8x8, 8x16, and 16x8 for a total of up to 150,000 candidate motion vectors for P-blocks and 300,000 for B-blocks), and still encoding quite a bit faster than EEv2. I doubt EEv2 is even that insane regarding its motion search...
EEv2 uses the VC-1 Encoder SDK, which you're welcome to download and install and see what you can find.

One of the earlier encodes used 512x256 motion search range IIRC, which is a whole lot more area than 129x129.

Expression Encoder is also fully capable of live 640x480p30 encoding on a Core2Duo using the live encoder in adaptive complexity mode using an AVI source, so there's a whole lot of variability in overall performance.

Dark Shikari
9th July 2008, 12:02
EEv2 uses the VC-1 Encoder SDK, which you're welcome to download and install and see what you can find.Unless the source code is available, I highly doubt I can reverse-engineer much ;)One of the earlier encodes used 512x256 motion search range IIRC, which is a whole lot more area than 129x129.I doubt its using an exhaustive search though ;)

Inventive Software
9th July 2008, 12:07
@Dark: That's why it's called an SDK. ;) To be fair, MS are quite fair in what code they give out, and a quick look in the SDK MSI indicates there's some CPP samples.

Dark Shikari
9th July 2008, 12:18
@Dark: That's why it's called an SDK. ;) To be fair, MS are quite fair in what code they give out, and a quick look in the SDK MSI indicates there's some CPP samples.The last "SDK" I saw didn't even have debug symbols in its binary files. :rolleyes:

Looking at the VC-1 encoder SDK now, the docs appear basically useless, stating only the obvious and nothing remotely interesting.

... except that this one's binary isn't stripped!

/objdump time!

Inventive Software
9th July 2008, 12:24
Ah, point taken. ;) That's a shame.

If memory serves, libavcodec has had a VC-1 decoder for a while, it's not complete (interlacing is missing amongst other things, I think), but should be a good source base to look through.

Dark Shikari
9th July 2008, 12:41
Oh wow, using explicit palignr to load data once but compute 5 adjacent SADs from that.

... except that there should be no reason in any well-designed motion search to do such a thing :p

Your loops could probably use a lot more unrolling, especially the smaller SAD ones.

Using pextrw as a method to extract every value from a register is a probably a bad idea, considering that it has a latency of 5.

Also, tell your assembly programmers that LDDQU doesn't actually work on any CPU for which SSE instructions are fast enough to be useful with the exception of the Pentium 4D.

Inventive Software
9th July 2008, 13:02
Soooo, get a P4D if you wanna use EE2 effectively then? :p

Sharktooth
9th July 2008, 13:16
I'd be stunned if it works on WINE. Lots of DirectShow dependencies.
dont underestimate wine... i just installed the latest directx 9.0c redist... ;)

akupenguin
9th July 2008, 17:40
Soooo, get a P4D if you wanna use EE2 effectively then?
Better interpreted as: LDDQU doesn't work on any CPU (since we like to pretend P4 didn't exist).

Blue_MiSfit
9th July 2008, 19:56
I'm thoroughly impressed with Ben's efforts to help out the open source community, and for Microsoft maintaining a friendly presence on this board despite all the rhetoric that gets tossed around. I say - the more the merrier!

Thanks guys :D

It's interesting how there are two fundamental philosophies going on here - x264 seems to have settings that are "very good" in almost every case - just slow. On the other hand, EE2 has to be tweaked on a per-source basis. I wonder how VC-1 can do at ~10mbps for 1080p content... my company's set-top box can do VC-1, and I wonder if it could theoretically outperform x264 (or at least come close, the workflow tools would be a _godsend_)

~MiSfit

Sharktooth
10th July 2008, 04:10
The higher the bitrate the lesser is the quality difference between different encoders.
However im pretty sure h.264 is still significantly better than VC-1 at 10mbps. Ill test it as soon as i have some time.

benwaggoner
10th July 2008, 05:19
@ben: is there a WMA10 cli encoder too?
WMcmd.vbs will work fine for just WMA only encoding as well. just use the -audioonly flag.

benwaggoner
10th July 2008, 06:58
I'm thoroughly impressed with Ben's efforts to help out the open source community, and for Microsoft maintaining a friendly presence on this board despite all the rhetoric that gets tossed around. I say - the more the merrier!
Thanks. This community really pushes the envelope of what compression can do. It's a nice break from architecting yet another 1000+ VOD files a month workflow.

It's interesting how there are two fundamental philosophies going on here - x264 seems to have settings that are "very good" in almost every case - just slow. On the other hand, EE2 has to be tweaked on a per-source basis. I wonder how VC-1 can do at ~10mbps for 1080p content... my company's set-top box can do VC-1, and I wonder if it could theoretically outperform x264 (or at least come close, the workflow tools would be a _godsend_)

At 10 Mbps VBR, for download-style 1080p (so longer GOPs, cropping out letterboxing) VC-1 and H.264 should both be transparent. We were doing 10 Mbps CBR WMVHD years ago with much older codec implementations with what was vaunted quality for its day. And I think that was before we even turned B-frames on :).

As for tweaking, I don't know that VC-1 and x264 are all that different. Both can do pretty well with stock settings for normal content, and both can get value in that last 5-10% with some content-specific tweaking.

But those 1000+ VOD files a month never get any tweaking at all.

Sagittaire
10th July 2008, 08:39
The higher the bitrate the lesser is the quality difference between different encoders.
However im pretty sure h.264 is still significantly better than VC-1 at 10mbps. Ill do the test as soon as i have some time to do that.

Not for this source with encoding at 12 Mbps H264 is by far better than VC1. MPEG2 at 24 Mbps is by far better than VC1 at 12 Mbps. IMO here MPEG2 is on par with AVC.


Partial result: VC1 vs H264 vs MPEG2

http://jfl1974.free.fr/Darknight/Darknight_x264_12Mbps.264
http://jfl1974.free.fr/Darknight/Darknight_SDK_12Mbps.vc1
http://jfl1974.free.fr/Darknight/Darknight_HCEnc_24Mbps.m2v

- H264 with x264 special build
- VC1 with MS VC1 SDK encoder
- MPEG2 with TMPGEnc


The source

http://jfl1974.free.fr/Darknight/
Source with high quality dark noise filtering pre-process.


Update

- Dramatical grain retention improvement for MPEG2 encoding


next update:

- VC1 and H264 encoding at 8 Mbps
- Screenshoot comparison

Sharktooth
10th July 2008, 14:02
WMcmd.vbs will work fine for just WMA only encoding as well. just use the -audioonly flag.im looking for a CLI app that fully integrates the WMA10 encoder and do not require external components.

benwaggoner
10th July 2008, 18:16
im looking for a CLI app that fully integrates the WMA10 encoder and do not require external components.
You can run Expression Encoder in command-line mode. That the kind of thing you're looking for?

Sharktooth
10th July 2008, 18:28
ehm... no, something "smaller" like the VC-1 commandline encoder in the SDK.
however, just to not finish once again off topic... have you checked the hancock trailer? if you did will dquant 1 (intra only) help the image quality for that kind of sources?
or better phrased... when is useful to apply dquant?

benwaggoner
10th July 2008, 18:40
ehm... no, something "smaller" like the VC-1 commandline encoder in the SDK.
however, just to not finish once again off topic... have you checked the hancock trailer? if you did will dquant 1 (intra only) help the image quality for that kind of sources?
or better phrased... when is useful to apply dquant?
I haven't. I'm frantically typing on my old kitchen 1 GHz iMac, so no way would it play here :). About to leave on another trip, but I'll see if I can sneak off to view it in a bit.

Normally no DQuant would be what you'd use for film source, though. I-frame DQuant in VC-1 Encoder SDK is mainly useful for animation.

PEP/PSE has a later implementation a lot better at lower rates.

Sharktooth
18th July 2008, 17:41
sadly i have no time to do all tests right now coz im getting hospitalized again.
you know, i suffer of multiple scleroris.
i hope EE2 trial still works when im getting back home. however FYI i managed to make it work under wine, i just dont know if it will encode or not...

Dark Shikari
18th July 2008, 17:43
I did another test, using EEv2, here (http://mirror05.x264.nl/Dark/website/compare.html).

Sharktooth
18th July 2008, 18:06
that test clearly shows xvid is much better than MS VC-1

Dark Shikari
18th July 2008, 18:07
that test clearly shows xvid is much better than MS VC-1I wouldn't go that far; I'd say VC-1 looks like deblocked Xvid :D

Sharktooth
18th July 2008, 18:08
id like to see how it looks dirac (aka VC-2) in the same conditions/scenes

benwaggoner
18th July 2008, 19:06
I did another test, using EEv2, here (http://mirror05.x264.nl/Dark/website/compare.html).
Can you share the final settings you wound up using for the different encoders and clips?

Also, did you pick frames with more dramatic differences, or "typical" frames?

And wow, I'm struck by how much more detail both x264 and VC-1 are preserving than Main Concept and Nero on the 300 clip. I was wondering why so much commerical Flash video was soft these days.

Did you take the screen shots with VC-1/VP7/xvid/divx postprocessing on or off?

I think VC-1 is doing well on the top two clips, but we're definitely not where I'd like to be on the game clip. That's not a kind of content we've focused on much.

I imagine there's an optimum combination of DQuant and Adaptive Deadzone that would help preserve the background texture better.

benwaggoner
18th July 2008, 19:08
sadly i have no time to do all tests right now coz im getting hospitalized again.
you know, i suffer of multiple scleroris.
i hope EE2 trial still works when im getting back home. however FYI i managed to make it work under wine, i just dont know if it will encode or not...
Yikes, sorry. Good luck.

Send me a PM if your EE trial times out and you still want to play with it.

Dark Shikari
18th July 2008, 19:13
Can you share the final settings you wound up using for the different encoders and clips?Mainconcept was AQ strength -50 (pretty standard x264-like complexity mask), and FGO 50 for the "300" clip. Everything else was maxed settings. Deblock -1:-1 was used for all AVC encoders.

EE settings were basically what you recommended.

Also, did you pick frames with more dramatic differences, or "typical" frames?I picked frames that had significant detail so that the difference would show--this is particularly of note in the Big Buck Bunny sequence, which had a number of sections that didn't have the kind of fine hair detail (so I picked one with such detail). I didn't exhaustively look for the frame with the biggest difference though, just picked one which had significant detail.

And wow, I'm struck by how much more detail both x264 and VC-1 are preserving than Main Concept and Nero on the 300 clip. I was wondering why so much commerical Flash video was soft these days.And thus one sees the problem with crappy H.264 encoders these days ;) You notice that VC-1 detail preservation, however, is at the cost of heavy blocking; not as bad as Xvid but quite noticable. That frame was actually a pretty good one for VC-1 because it hides the blocking more effectively than is usual.

Did you take the screen shots with VC-1/VP7/xvid/divx postprocessing on or off?ASP postprocessing was off. VC-1/VP7 postprocessing was whatever the default decoder had.

benwaggoner
18th July 2008, 20:44
EE settings were basically what you recommended.
For all three? Different settings would be appropriate for the three clips (1 B-frame for 300, 2 for Bunny, and I need to get around to doign some experiements on the gameplay one).

ASP postprocessing was off. VC-1/VP7 postprocessing was whatever the default decoder had.
That's not a bad default, I suppose, since that's how most users will see it. You can turn it off or adjust it easily with Zambelli's "WMV 9 PowerToy" tool if you're curious to see what the difference looks like.

Dark Shikari
18th July 2008, 20:49
For all three? Different settings would be appropriate for the three clips (1 B-frame for 300, 2 for Bunny, and I need to get around to doign some experiements on the gameplay one).In H.264, 1 B-frame is consistently the best in the gameplay one; x264 chooses this correctly.

benwaggoner
18th July 2008, 20:54
In H.264, 1 B-frame is consistently the best in the gameplay one; x264 chooses this correctly.
Really? Huh.

Like I said earlier, that clip is particularly impenetrable to my intuition :). I'll try to find some time to do a test encode with that shorter clip you gave me.

Dark Shikari
18th July 2008, 21:06
Really? Huh.

Like I said earlier, that clip is particularly impenetrable to my intuition :). I'll try to find some time to do a test encode with that shorter clip you gave me.What's quite interesting is that PbPbP is actually better than PbBbP, by about 0.3db PSNR in my last test. I'm going to guess that the reason is that the cost of the extra distance between P-frames is higher than the gain from the extra biprediction.

Sharktooth
21st July 2008, 15:50
I set up a remote desktop to control my pc remotely, however EE2 says the trial is expired (uh?!?!????!??!?) and now working in express mode (?!?)
WTF? wasnt the trial period 30 days? i insalled it in july 7th, why it expired well before the 30 days limit?

benwaggoner
21st July 2008, 17:18
I set up a remote desktop to control my pc remotely, hoever EE2 says the trial is expired (uh?!?!????!??!?) and now working in express mode (?!?)
WTF? wasnt the trial period 30 days? i insalled it in july 7th, why it expired well before the 30 days limit?
Weird.

Maybe an issue with remoting in (which doesn't make any sense, I know). EE uses DirectShow a lot for its previews, and I don't think it works all that well via Remote Desktop.

Feel free to PM me with any details, and I'll see if I can work something out for you. I'd very much like your opinions on the product.

Sharktooth
21st July 2008, 17:34
well, there are not much more deails, maybe the problem was due to some dates incongruencies between the host and the RDP client (that doesnt make much sense too)... but the fact is EE2 is now working in express mode (expired) in less than 30 days and i dont even know what it means.
from this: http://www.brighthub.com/multimedia/video/articles/1678.aspx
i understand the quality profiles are affected... too... so it suddely became useless.
however as a general suggestion, in the next version > I < would at least include mpeg2 (that's not in competition with VC-1, at least for quality) and ac3 and device profiles/presets so to produce DVD and other devices compatible encodings.
also mpeg4 ASP or SP (maybe not a 3rd party implementation but a full MS implementation) would be interesting for good quality encodings for old cellphones or devices not supporting WMV/VC-1.
EE2 is a nice product but lacks versatility.
The strategy of promoting MS standards is ok (you have to do that!), but the program could do much more and enter a much bigger market just supporting more standards, without loosing the MS centric standards promotion (keeping VC-1 and WMA as DEFAULT encoders for the new projects - the user would have to search thru profiles to find other standards but still the proagram can do what the user wants).
also MS VC-1 is not that bad in comparison against major h.264 low cost for home use and semi-pro implementations (other than x264), so, i foresee a wide adoption of VC-1 in a pretty small time-frame. there's no hurry pushing it all the way out in products like EE2.
Tha Art of Balance, is the right status to reach... for other MS products too... but that's another story....

benwaggoner
21st July 2008, 20:59
well, there are not much more deails, maybe the problem was due to some dates incongruencies between the host and the RDP client (that doesnt make much sense too)... but the fact is EE2 is now working in express mode (expired) in less than 30 days and i dont even know what it means.
from this: http://www.brighthub.com/multimedia/video/articles/1678.aspx
i understand the quality profiles are affected... too... so it suddely became useless.
however as a general suggestion, in the next version > I < would at least include mpeg2 (that's not in competition with VC-1, at least for quality) and ac3 and device profiles/presets so to produce DVD and other devices compatible encodings.
also mpeg4 ASP or SP (maybe not a 3rd party implementation but a full MS implementation) would be interesting for good quality encodings for old cellphones or devices not supporting WMV/VC-1.
EE2 is a nice product but lacks versatility.
The strategy of promoting MS standards is ok (you have to do that!), but the program could do much more and enter a much bigger market just supporting more standards, without loosing the MS centric standards promotion (keeping VC-1 and WMA as DEFAULT encoders for the new projects - the user would have to search thru profiles to find other standards but still the proagram can do what the user wants).
also MS VC-1 is not that bad confronting it with other than x264, h.264 implementations, so, i foresee a wide adoption of VC-1 in a pretty small time-frame. there's no hurry pushing it all the way out in products like EE2.
Tha Art of Balance, is the rigth status to reach as for other MS products too... but that's anorher story....
I've forward the thread to the Expression Encoder team - we'll see if they've got an idea for you.

As far as other formats, bear in mind that the #1 goal for Expression Encoder is to support publishing for Silverlight, so the focus is on formats Silverlight supports. While we have a ton of great codec IP around VC-1, we don't have anything nearly so unique to offer with the legacy codecs like MPEG-2 and MPEG-4 pt2.

For customers who need multiformat support, we're happy to have them use products from our partners who license the VC-1 Encoder SDK.

Sharktooth
21st July 2008, 21:05
uhm. i edited my previous post so my controversial english (expecially in these days... i need e new brain, the multiple slcerosis is eating up my central nervous system) may result a bit clearer.
however, it's clear EE2 was made with silverlight in mind. BUT as i said EE2 (or the next versions) has (will have) A LOT of potential.
Naturally i dont have the sources but it's clear it could be extended to support 3rd party plugins and codecs so you can make your partners more than happy and have people buy a software that has very nice advanced features like live encoding, live preview, etc...
EE would be just excellent as a media encoding framework (for windows) even for some part of the pro market, extensibility and flexibility are the keys for the perfect balance and the success of the project.
imagine to interface a professional NLE module (something like Premiere, Avid Cinema or other big stuff developed directly by MS or a trusted partner) to EE. You will have the ultimate editing/encoding software based on the latest techs with still the possibility to add devices, hardware, etc, compatibility network rendering, professional filters, logo an text titling thru plugins, addons, extentions etc. still developed by you or 3rd parties.

edit: i know im well known as a MS (usually i even type M$) hater, but i still believe some people have the ability to do the right things (they just dont want... sometimes, there are multiple reasons....) AND i believe people still have feelings and enthusiasm for the right things to do or for breaching the barriers and go a step ahead. This is what i call innovation.

edit2: we need to start another thread or split this one, we're completely off-topic.
consider what i said a free consulence, but in the case it wont be taken into consideration, i will reserve to propose the same or even more elaborated stuff to others. this is just a basic idea, there is a lot of work to do to elaborate it...and i have TONS of ideas.

edit3: if you use MSN you can find my MSN contact in my profile details (contact info).

Blue_MiSfit
22nd July 2008, 02:49
One thing I immediately liked about Expressions is its ability to handle batches and large amounts of throughput. Try doing that with MeGUI :)

It seems the focus is on getting lots of content though in an easy to use way. I'm not a fan of having to tweak lot of parameters for each source - the encoder should be able to make those decisions - the user should just have to decide how much speed is needed.

It's a cool product, I wouldn't use it, and my company wouldn't use it (we use x264), but I can certainly see a large market of companies who would!

@Sharktooth:
Feel better mate! We're all thinking good thoughts!

~MiSfit

Sharktooth
22nd July 2008, 02:53
b_m: dont worry, ill eat the universe before it will eat me;)
however batching for megui is a hard work. it can be done, but the megui nature and flow were not meant for batching, but still it can be adapted. a new itool (something like the OneClickEncoder) could be made for bach encoding but we first have to fix some showstopper bugs that were introduced by updating dgindex with the new audio management and bug we didnt think they were in the new version code.
it's also not to exclude the fact we could add VC-1 encoding in future versions depending on how busy we (megui devs) are and how much will VC-1 be adopted.

benwaggoner
22nd July 2008, 23:03
It seems the focus is on getting lots of content though in an easy to use way. I'm not a fan of having to tweak lot of parameters for each source - the encoder should be able to make those decisions - the user should just have to decide how much speed is needed.
That was exactly one of our major goals. The marketing guys didn't use it, but I called it "not stupid by default" :). If we could find a good heuristic to use for what the user proably wanted, we'd apply it, but also give advanced users the option to override those. By example, we assume that users want to encode video as progressive at the source frame rate in the source aspect ratio in a square pixel resolution. So, we leave progressive sources alone and deinterlace interlaced ones (users have to pick inverse telecine manually; we didn't get a good interlaced v. IVTC heuristic done in time), and adjust the output frame size to match the source aspect ratio, scaling to make that square pixel.

While I'm not officially part of the product team, they've allowed me to deluge them with feature requests.

Sharktooth
23rd July 2008, 00:47
ben, did you took into consideration what i said? i was/am pretty serious.

benwaggoner
23rd July 2008, 05:37
ben, did you took into consideration what i said? i was/am pretty serious.
About supporting other formats?

Yes, absolutely. However, I just want to make it clear that the primary goal of Expression Encoder is to support publishing for Silverlight, so for the time being we're focused on even deeper support of Silverlight's media formats over broad supports for formats it doesn't support.

Lots of the cool features, like minimal-reencode trimming and I-frame insertion for chapter marks requires a lot of low-level codec manipulation; adding additional codecs supported at the same level would require a lot more engineering than simple encoding.

Sharktooth
23rd July 2008, 10:59
abuout extensibility in general?
other formats, as i said, could be developed by others. EE just need an external interface to extend it thru plugins.

benwaggoner
23rd July 2008, 17:44
abuout extensibility in general?
other formats, as i said, could be developed by others. EE just need an external interface to extend it thru plugins.
It's a good request. We're quite extensible on input formats (QuickTime + DirectShow), but haven't done much on output formats.

Sharktooth
23rd July 2008, 19:17
output formats can be managed as well with external plugins...

benwaggoner
23rd July 2008, 20:32
output formats can be managed as well with external plugins...
DirectShow? Somethng new?

Sharktooth
24th July 2008, 03:37
DS is ok, unless you want EE to be multiplatform... but i doubt it.
Adding the capability of connecting (even visually) DS muxers or filters in general at various stages (graphedit is a great example of what a visual DS based media app can do) will give a nice extensibility boost and will make some devs/companies interested in making 3rd party DS encoders, muxers, filters...

benwaggoner
24th July 2008, 20:04
DS is ok, unless you want EE to be multiplatform... but i doubt it.
Adding the capability of connecting (even visually) DS muxers or filters in general at various stages (graphedit is a great example of what a visual DS based media app can do) will give a nice extensibility boost and will make some devs/companies interested in making 3rd party DS encoders, muxers, filters...
Makes sense as a request. But it's an ugly test hit for all the permutations out there that people want to do.

I'll pass the thought on to the team.

Sharktooth
24th July 2008, 20:14
I meant a visual (and editable) workflow broken up in stages (something like: input, filters, transcoding|audio,video,other streams|, output) so the user can attach or chain DS filters for several purpouses. some basic splitters (or pipes) for manipulating the flow are needed too...

EDIT: hope you understand what im trying to say. english is not my native language.

benwaggoner
29th July 2008, 22:45
I meant a visual (and editable) workflow broken up in stages (something like: input, filters, transcoding|audio,video,other streams|, output) so the user can attach or chain DS filters for several purpouses. some basic splitters (or pipes) for manipulating the flow are needed too...

EDIT: hope you understand what im trying to say. english is not my native language.
Yeah, it makes sense. It's a HUGE feature to deliver in a way that's easy to use and robust, though.

One way we wanted to enable that kind of scenario in EE is with our AVISynth support, which offers almost infinite depth and complexity.

Sharktooth
30th July 2008, 02:30
yep, avisynth support is easy to implement and it's a "must" coz it could replace the input/filters stages.
however having a proper and integrated visual and editable workflow broken up in staged would be a GREAT feature, it would be the first app of this kind to implement something so much powerfull and easy to use. possibilities are infinite and it is a completely new concept. easy to learn and use but still more powerfull and flexible than conventional ways.
also a standard workflow could be automatically built when opening an input file.

Sharktooth
1st August 2008, 03:22
@ben: have you any feedback from the EE team?

benwaggoner
1st August 2008, 16:04
@ben: have you any feedback from the EE team?

"Oh my god, imagine the test matrix!"

:).

In the end, I'd say features are more often constrained by test requirements than developer requirements.

Still, improving the flexibility of preprocessing is definitely a long-term goal of the product. Re-implementing GraphEdit is probably not the ideal way to do it, though.

Sharktooth
2nd August 2008, 03:37
im not talking of reimplementing graphedit but something that lets you insert (DS) plugins (filters) at some stages in the workflow.

Sharktooth
15th August 2008, 16:04
im definatly back from the hospital, EE2 is expired well before the time limit and since the lack of comments i suppose this discussion is over.
as i said before in case my suggestions werent took into consideration, i will focus on other companies/softwares.

benwaggoner
15th August 2008, 22:18
im definatly back from the hospital, EE2 is expired well before the time limit and since the lack of comments i suppose this discussion is over.
as i said before in case my suggestions werent took into consideration, i will focus on other companies/softwares.
Glad to hear you're back.

I'm happy to take any feedback you'd like to share. The GraphEdit feature suggestion isn't something the team is ready to tackle in the short term due to its complexity, but they certainly understood your interest.

Send me a PM if you'd like me to get your install fixed.

Sharktooth
16th August 2008, 04:16
im back but sadly im not ok and permanent damages are preventing me to do my job or many other ones.
no more driving license, no more coding, left hand, leg and eye (causing distortions in visual perception) are gone, tremors are doing the rest.... but maybe i can slightly recover the eye within some months...
thanks for your offer but i can no longer distinguish the difference from cinepack and AVC... so HQ encoding and using softwares like EE have no much sense for me...
the only thing i can do is suggesting improvements in software usability and features from what i was used to do before the MS derangements.
however i still think "normal" users or professionists can gain a lot from using a software like EE if some of the radical changes i proposed could be implemented.
eventually offering two different versions (EE standard - like the actual one and EE Pro - with the improved workflow, plugins, etc...?) would fit all the needs from the beginners to the professionists and will estabilish a new standard or a new idea on how encoding applications should be and should work.