Mainconcept standalone MPEG encoder test results

johnmeyer wrote on 3/8/2004, 9:25 AM
Lots of people have mentioned that they get better results (than the Vegas encoder) if they use the Mainconcept MPEG encoder that is sold as a standalone product at Mainconcept's web site (Mainconcept MPEG Encoder).

I have had great difficulty getting the quality that I would like when encoding a music video that consists of very fast moving basketball video. I've been using the MPEG encoder in Vegas, using VBR at 7500 bps. I decided to take 25 seconds from this project, encode it using the Vegas encoder, and then try the Mainconcept encoder. Here is what I found.

As others have reported, the Mainconcept encoder is MUCH faster. Since I couldn't figure out how to get the standalone encoder to just encode video without any audio, all my tests included encoding both the video and audio. My 25 second clip took 1:09 (one minute, nine seconds) to encode in Vegas, using the default NTSC template, but with the encode rate set to 7500 bps. The same clip took 25 seconds, or about 40% of the time, in the Mainconcept encoder, using its default settings, with the encode rate set to 7500 bps. I have a 2.8 GHz P4 system.

As others have pointed out, you have to have already rendered the AVI file in order to be able to use the external encoder. This makes the process of using the external encoder more cumbersome. I tried using the Degubmode frameserver, and it took 47 seconds (instead of 25 seconds) to encode the video from the Vegas timeline, through the frameserver, to the Mainconcept standalone encoder. I don't know why it took so much longer. However, this combination was still faster than the 1:09 of the Vegas encoder.

But what about quality?

Quality was the main reason for embarking on this exercise. Using the defaults for both encoders, I couldn't tell much difference. The standalone encoder results might be a little brighter and a little sharper. I then started tweaking, and I'm still in the process of tweaking all sorts of settings: Noise sensitivity, search method, search range, 2-pass encoding, and motion search pixel movement. These are the parameters that the Mainconcept manual advises I should try changing to get better quality. So far, the search method, search range, and 2-pass encoding don't seem to have made much difference (I didn't expect any help from the 2-pass encoding because there is very little difference between my 7500 bps, and the 8300 bps maximum). Interestingly, the Mainconcept encoder doesn't let you use a maximum bps above 8324 bps, whereas you can go to 9800 in the Vegas encoder.

If anyone has settings that they have found to give really good quality, please let me know.

Comments

TheDingo wrote on 3/8/2004, 2:07 PM
...Just out of curiosity, Have you tried using the TMPGEncPlus MPEG encoder ?

http://www.pegasys-inc.com/en/product/tp.html

I've had very good results with this encoder.


aussiemick wrote on 3/8/2004, 2:41 PM
I use the MC encoder only to do my Mpeg's, mainly because I get better results in regard to motion.
With noise sensitivity, DV settings need to be around 6 or 7; 11 or 12 with analoge material or use noise reduction.
With motion the half pel must be checked; motion search you can do it by setting the number in the box around 11 for high movement video or by doing the settings in the Motion Estimation dialogue at the right using the given settings for high motion. This is purely trial and error and is best done by gradually increasing the settings until desired or best result is achieved. I have got the results I have wanted on all every time, especially with moving text on a moving background (this is what I could not get with the Vegas plugin). Check the RGB 16-235.
If you encode Program Video only DVDA will not accept it, you must have Program Video + Audio. Another gripe with DVDA.
These settings along with 2Pass VBR will blow the times out,but well worth it in my humble opinion.
Mick
johnmeyer wrote on 3/8/2004, 2:49 PM
...Just out of curiosity, Have you tried using the TMPGEncPlus MPEG encoder ?

That is what I started with, some years ago. Good quality, and lots of tweaks, but slow. I've used it a few times in the past few months, and didn't think its quality was any better than the Mainconcept MPEG encoder built into Vegas 4.0. The only reason I still used it was that I sometimes need to do inverse telecine.

Since my original post earlier today, I've done more tests to see if I could improve quality. I have now been able to create video, from fast-moving basketball players, that I cannot distinguish from the original. For me, this has always been the holy grail. The downside is that it takes forever.

Mainconcept, if you are listening, it sure would be nice if you could provide more detail -- and some actual test results, using DV input -- on what you can expect, both in quality improvement, and in extra time required, for each of the various settings that you recommend changing in order to get better quality.

From Mainconcept's web site, here is what they recommend, along with my comments on each setting:

From the Mainconcept web site.

In order to improve the quality of an DVD:

1. change (increase) the settings under Motion Search Region

I increased this all the way up to 25. It didn't seem to increase encoding time by much, but it also didn't seem to affect the video quality that much.

2. reduce value of Noise sensitivity (3..12) if you have clean source or use LineFilter

I read in some other Mainconcept post that for DV video this should be set between 3 and 6. This seemed to make a significant difference, although I haven't had time to test just this one thing (I have real work to do). I set it at 5 for my latest encodes.

I should also add that this is one of the most bizzare and confusing interfaces I have ever seen. There is a button, next to the spin control, that lets you toggle between "Noise Sensitivity" and "Noise Reduction." First, I don't see why these should be mutually exclusive. They are two entirely different things. I assume that noise reduction is a temporal or spatial filter applied before encoding, whereas the sensitivity is a control to determine what pixels should be tracked from frame to frame for the motion estimation algorithms. Second, the numbers for each are very similar. This interface should definitely be changed.

3. change Search Method to bigger value (not bigger then 11)

I set this all the way up to the maximum they recommended (11) and didn't see much difference. It also didn't seem to change encode time by much.

4. Use User quantization matrices
I didn't edit these directly, but instead changed the "Motion Search Pixel Movement." I set this up to 6 for both Horizontal and Vertical. The encode times shot way up, but I also noticed better quality. I am now doing another encode with them set at 3 to see if that still improves the quality, without requiring so much encode time. This is where Mainconcept could really do their customers a service by providing some real-life hints, test results, etc. on how much improvement to expect, under what circumstances. It is just irresponsible to provide all these controls with so little guidance or information (grumble, grumble).

6. Reduce Intra DC precision to 8 bits
This one confused the heck out of me. Most every other encoder talks about getting better quality by INCREASING from the default 9 bits up to 10 bits. I decided to punt on this one and not change it at all.

6. Use LineFilter
I didn't want to soften my video, and most of the scenes were pretty clean, so I didn't use this.

7. Increase bitrate
I increased the bitrate to 7500, as indicated in my first post. I also used 2-pass encoding, which at this bitrate, with a maximum of 8000 bits, was probably a total waste of time. If my understanding of the technology is correct, the 2-pass approach will only yield benefits when the average bitrate is low, but the maximum is still high, and also only when there is a great deal of variation in movement from scene to scene.

As I look back on all of this, I think the two biggest improvements (other than bitrate, of course) were decreasing the noise sensitivity, and enabling Motion Search Pixel Movement and setting both horizontal and vertical between 3 and 6.

BTW, I also found out that to encode without audio, you just leave the audio input file name blank. This has the added benefit that you can then set the maximum video rate higher (of course you need to leave enough room for the AC-3 audio bitrate).
johnmeyer wrote on 3/8/2004, 3:07 PM
aussiemick,

Thanks for the input. This is exactly what I was looking for.

Are you sure about the RGB 16-235? If I check this, I am telling the encoder that Vegas has created an AVI file that has the RGB settings compressed so as not to go into these extremes. However, I thought I read somewhere that the Vegas DV encoder created 0-255 files.

I could very well be confused about this.
aussiemick wrote on 3/8/2004, 4:15 PM
All this does is that true blacks and whites remain as such. It is no big deal,but it does keep black as black and white as white.
johnmeyer wrote on 3/8/2004, 5:09 PM
Thanks!

I'll try it and see if I like the results.
rkelley wrote on 3/8/2004, 6:24 PM
Just to add my 0.02 here...

The MC encoder does very well for me and is much faster than the VV MPEG encoder. Although the settings can be confusing ( I read the MC "advanced" guide on getting the best results and was still confused), the MC encoder uses both of my CPUs (dual Xeon box) and I rarely have poor results. I experimented with the options last year and basically learned the default settings are pretty good for the type of videos I shoot (amateur home stuff).

kentwolf wrote on 3/8/2004, 9:49 PM
>>...BTW, I also found out that to encode without audio, you just leave the audio input file name blank.

I guess that would do it, but you can also (after opening your AVI file) set the Output Format from Program (Video + Audio) to Program (Video)
johnmeyer wrote on 3/8/2004, 10:26 PM
I have done more testing, and the plot is getting thicker (i.e, more confusing).

I tried experimenting with the the RGB 16-235 setting and found that it made no difference when I used an NTSC DV AVI file "rendered" from Vegas (I just put a large AVI file on the Vegas timeline, selected a region, and then rendered this region to a smaller AVI file).

However, when I used PluginPac to frameserve the same AVI file (i.e., I put the smaller AVI file back onto the timeline, and then used PluginPac to frameserve it), the RGB 16-235 switch made a big difference. More importantly, the quality of the video improved significantly.

How did I measure the improvement? I put the original AVI file on the timeline, and then put each test MPEG render on the timelines below it. I then turned on the external monitor (via Firewire) and while viewing a single frame, soloed each track. The MPEG created by the Vegas MPEG encoder matched exactly the intensity (highlights and shadow) of the original AVI file, and the artifacts were not too bad, although many of the flat areas (like the wall of the gym) showed some artifacts.

The MPEG created by the standalone encoder showed no difference in highlihgts or shadows, but the intensity of the saturated reds was diminished considerably. Also, the default MPEG render of the standalone encoder showed considerable noise in the flat areas (again, the flat wall) -- much worse than the default settings from the Vegas MPEG encoder. Thus, the 2.5x faster performance may indeed have some quality tradeoff.

The quality improved when I made the changes detailed in the previous post, but the reds still shifted, and the quality was still noticeably worse in the flat areas.

I then used the Frameserver (PluginPac) to serve the AVI file into the Mainconcept external encoder rather than just opening this AVI file directly in the encoder. I used all the extra settings described in the previous post, plus I enabled the RGB 16-235 setting. This time, there was virtually no shift in the reds, and the differences from the original AVI were almost undectable.

Thus, at this point, my approach to getting the best quality is as follows:

1. Frameserve the AVI from Vegas (i.e., just frameserve your project; do not bother to create an intermediate AVI file).

2. Open the frameserved signpost in the external Mainconcept encoder. (Delete the audio input line if you are going to encode the audio using the Vegas AC3 encoder -- no use wasting time encoding audio that you are just going to throw away).

3. Start with the MPEG Type: DVD (this resets everything to a known set of defaults).

4. In the Advanced Video Settings, set "Motion search pixel movement" to Horizontal 5, Vertical 4.

5. Click on "Input video is RGB16-235".

6. Set "Noise sensitivity" to 4.

7. Set the min, average, and max bitrate. (I used 1000, 7500, and 9000 for my tests).

8. Set "Search Method" to 11.

9. Set "Search Range" to 25.

10. If there is a big difference between average and max bitrates, enable 2-pass encoding.

Let me know if I am all wet on this. It sure produces some fine looking video, but because of the motion search pixel and noise sensitivity settings, the encoding takes an awfully long time.

johnmeyer wrote on 3/8/2004, 10:34 PM
you can also (after opening your AVI file) set the Output Format from Program (Video + Audio) to Program (Video) - kentwolf

According to aussiemick, in his post above:

"If you encode Program Video only DVDA will not accept it, you must have Program Video + Audio."

I haven't verified this, but it sounds like the way DVDA would work (it doesn't like anything that looks, smells, or tastes like an elementary stream).
kentwolf wrote on 3/8/2004, 10:56 PM
>>..."If you encode Program Video only DVDA will not accept it, you must have Program Video + Audio."

Oh.

I've been using Encore for awhile, so I didn't notice.

I really thought I did some DVDA projects like that (MPG Less Audio + AC3), but maybe not.

Note: Encore does elementary streams superbly. Great for (in a crisis) stripping the streams out of a finished DVD via DVDDecrypter, then redo your project with new menus, etc. Exact same quality as the original DVD; no loss.

Thanks for the tip... :)
mark2929 wrote on 3/9/2004, 6:08 AM
Im not very knowledgable in this area. I was wondering If I wanted to edit/Composite in 16 bit color space without using uncompressed avi. Has mainconcept got an encoder to do this So that Im using less space on my hard drive.

TIA

mark2929
johnmeyer wrote on 3/9/2004, 8:48 AM
You might want to post that as a separate topic so more people would see it. I don't know the answer.
cyanide149 wrote on 3/9/2004, 8:57 AM
It concerns me that the MainConcept standalone is so much faster. The question is: is it the VV codec or something in Vegas that affects this?
mark2929 wrote on 3/9/2004, 8:58 AM
John Thanks for reply will do as you say !
mark2929 wrote on 3/9/2004, 9:12 AM
Excellent Point Cyanide149 I was thinking just that myself !
johnmeyer wrote on 3/9/2004, 12:34 PM
It concerns me that the MainConcept standalone is so much faster. The question is: is it the VV codec or something in Vegas that affects this?

Sony answered this early last fall when they said that they include the latest release of the encoder whenever they update Vegas. The last Vegas update has now been quite a long time ago, and the external encoder has since been revised. Therefore, there is newer code in the standalone encoder. This code may be somewhat faster.

However, I don't think this actually accounts for much of the difference. In particular, MPEG encoding has been around for quite a long time and the industry is WAY down the learning curve. Technology like this follows fairly predictable patterns, and the net of all the theory is that you should not expect much difference in performance from one release to the next when we are this far down the learning curve.

I suspect that the real reason for seeing the performance difference has much more to do with the defaults selected. Sonic/Sony decided to go with quality defaults in Vegas; I think MainConcept opted to push the defaults more towards the performance end. In my tests, the quality of the defaults for the Vegas 4.0d encoder and the defaults of the MC 1.4 standalone encoder definitely showed the output from the Vegas defaults was better quality. The difference wasn’t gigantic, but it wasn’t subtle either.

It would take someone with far more knowledge than I (probably someone from MainConcept) to do a test that would create exactly equal quality between the Vegas and the MC 1.4 standalone encoders, so that we could really know the difference in performance. I suspect that the standalone would still be faster, but probably only 10-20% faster, not 150% faster which is what my test showed when I used the defaults.
kentwolf wrote on 3/9/2004, 1:34 PM
>>...It concerns me that the MainConcept standalone is so much
>>faster. The question is: is it the VV codec or something in Vegas
>>that affects this?

From what I have seen, even though Adobe Encore has the latest and greatest Main Concept MPG2 encoder, the Encore render times are very similar to Vegas.

From what I hear, even Premiere Pro render times are similar.

It just plain looks like the standalone encoder is faster than most, if not all, "built-in" encoder implementations.

Someone even proposed that MainConcept may throttle back on the speed on the built-in encoder implementations so that people will buy the standalone encoder. While I have seen no proof of this consipracy theory, you never know... :)
addavis wrote on 3/9/2004, 4:22 PM
From my obsevations, you only need select the RGB16-235 option when feeding uncompressed RGB. That is what you are doing when Frameserving or render as uncompressed avi. and load directly into the encoder, otherwise, Mainconcept or TMPGenc or Procoder will compress the high and low levels - you can see this effect very easily by viewing the Vegas waveform monitor or an external waveform monitor. This will give you muddy blacks and constricted whites.

I also found that selecting the RGB16-235 when feeding DV source (not RGB) results in little or no change in the luma values, but does tend to oversaturate the colors.
cyanide149 wrote on 3/10/2004, 4:41 AM
Now I'm really baffled. I downloaded the MC codec. Using Spot's render test, I rendered to a VV mpeg-2 DVD file. It took 2:41. I then frameserved to the MC app, and it also took 2:41. I then rendered an old mpeg-2 file that I had made the same way: VV- 2:27. MC- 2:28. John- these are nothing like your results...