Log in

View Full Version : Comparison x264 to Mainconcept H.264/AVC Pro


Mikel
15th December 2008, 17:13
Hello

I recently stumbled over the Homepage of Mainconcept and I was wondering how to justify a steep price tag for their H.264/AVC Pro Codec.
I have used x264 for all my encoding needs and I was always pleased with the results.
I know there is a comparision but when I searched the forum, I got the impression that with the introduction of AQ, this old comparision is not fair anymore.

So what's the deal with the Mainconcept codec?
Is is much faster, or better quality, what does the customer get for the money?

It's not that I would consider buying it, just wondering how it compares.

Best, Mikel

refulgentis
15th December 2008, 17:33
Hello

I recently stumbled over the Homepage of Mainconcept and I was wondering how to justify a steep price tag for their H.264/AVC Pro Codec.
I have used x264 for all my encoding needs and I was always pleased with the results.
I know there is a comparision but when I searched the forum, I got the impression that with the introduction of AQ, this old comparision is not fair anymore.

So what's the deal with the Mainconcept codec?
Is is much faster, or better quality, what does the customer get for the money?

It's not that I would consider buying it, just wondering how it compares.

Best, MikelThis comparison was done just a month ago: http://forum.doom9.org/showthread.php?t=142695&highlight=mainconcept, so I assume you're not referring to that as an old comparison

Mikel
15th December 2008, 20:48
Thanks for that link.
Very interesting thread indeed.

best Mikel

Dark Shikari
15th December 2008, 21:27
The quality of an encoder is pretty much unrelated to its price tag these days.

CruNcher
16th December 2008, 01:11
Dark Shikari my last test showed comparable Speeds by Elecards last Encoder with almost the same settings speed seems identical now to X264 (SATD vs Subme 3), but i didn't test @ full feature set more balanced for both.
It also seems that Mainconcepts DivX based Encoder Alpha 1 is far far far away from Elecards Speed the whole tuning of it seems much more unbalanced also tried with newer SDK 7.5 core and with DivX Console Encoder it's still utterly slow compared to Elecards Dshow Encoder.
Somehow that is surprising i thought after Mainconcept bought Elecard they would use most of their Codebase but somehow the Speed difference is much to off they still seem to be differently developed or DivX Alpha1 Console Encoder tuning incorporates RD in every level aqo 0,1,2, but even then the Speed difference still would be huge compared to Elecards Encoder @ the same RC and Partition settings.

Mainconcept 2008 Encoder = 7.5.0.35746
Elecard 2008 Encoder = 1.1.013409.080703

Though as soon as RD comes into play Elecards Encoder gets slower then X264, so i guess your graphic was a (ultra compression) RD compare only right ?
The most difference i saw Visually for the speed compare where of AQ vs non AQ nature in X264 that saved some of the background grain @ the same AVG bitrate Elecards result looked again like many times before artificial (those super clean non noise (lifeless) backgrounds, where film grain should have been visible and for X264 indeed it is visible even @ that low bitrate) AVG bitrate was 1 mbit with max 3 mbit @ 1280x528 23.976.

DivX current Alpha1 Tuning (7.3.0.4270 2007-12-12) seems much to slow (or even Mainconcepts whole Encoder) i get a much better Visual result @ 2x more speed with X264 even without using any RD @ all, for Elecards Encoder it looks different it's only slow @ RD but before that it seems comparable though the subjective quality is not as good (i still heavily suspect the missing complexity masking as Psy feature is the cause for this Visual difference and maybe some kind of other quantization way going on in Elecards Encoder).

Sagittaire
16th December 2008, 11:08
DivX current Alpha1 Tuning (7.3.0.4270 2007-12-12) seems much to slow (or even Mainconcepts whole Encoder) i get a much better Visual result @ 2x more speed with X264 even without using any RD @ all, for Elecards Encoder it looks different it's only slow @ RD but before that it seems comparable though the subjective quality is not as good (i still heavily suspect the missing complexity masking as Psy feature is the cause for this Visual difference and maybe some kind of other quantization way going on in Elecards Encoder).

No ... Produce exactly the same quality and speed with the same setting here (on c2d 4400).

CruNcher
16th December 2008, 14:28
@Sagittaire
maybe Adaptive B-frames and Scenecut slowdown DivX Encoder that massively (Mainconcept) as i tested X264 and Elecard without any Scenecut and Adaptive b-frames (Broadcast Scenario)
Parkrun though shows very clearly that the missing Psy is disastrous as their RC doesn't compensate it (DivX Encoder in anyway fails there,blurs out the moving background trees) same for Elecard it's lost there only Ateme and X264 master it though i know that at least Elecard can do better with complexity masking there. Ateme doesn't need any AQ @ all for that Scene their RC (lookahead) is handling it completely without any need from AQ.

Sagittaire
16th December 2008, 23:37
@Sagittaire
maybe Adaptive B-frames and Scenecut slowdown DivX Encoder that massively (Mainconcept) as i tested X264 and Elecard without any Scenecut and Adaptive b-frames (Broadcast Scenario)
Parkrun though shows very clearly that the missing Psy is disastrous as their RC doesn't compensate it (DivX Encoder in anyway fails there,blurs out the moving background trees) same for Elecard it's lost there only Ateme and X264 master it though i know that at least Elecard can do better with complexity masking there. Ateme doesn't need any AQ @ all for that Scene their RC (lookahead) is handling it completely without any need from AQ.


Well DivX encoder don't use FGO or AQ but it's just CLI limitation. These setting are here in the binary. I make proposition at DivX Labs for better quality witn Mainconcept/Elecard SDK:

I made test with your DivX H.264 Encoder Alpha 1. I have similar result for quality and speed with my previous test with Mainconcept/Elecard Encoder. Anyway your encoder is really not complete:

1) Quality profil are too restrictive:
5 or 6 profils for quality will be really better: fastest, fast, normal, good, best and insane for example or [0-5] for aqo.

2) Psy optimisation:
There are possible and very usefull psy optimisation with Mainconcept H264 SDK. Film grain optimisation [0-100], AQ with luma masking [-100;100], AQ with contrast masking [-100;100], AQ with complexity masking [-100;100].
Why not to implement this command: -psy <AQLuma>, <AQContrast>, <AQDetail>, <FGO>
My prefered setting for MC SDK is -psy 33,-33,-33,50

3) Buffer and Max rate
With this command line for example -vbv <maxbitrate>,<buffer>

CruNcher
17th December 2008, 07:08
Im really surprised that AQ and FGO are in the SDK but neither available in Mainconcepts Reference Encoder GUI (which is for Prosumer) nor since ECS 3.0 anymore in Elecards GUI, i really would like to know what reason was behind that decision on the first look it makes no real sense @ all to remove those PSY features as they worked fine. Especially compared to how Ateme handles certain situations with their lookahead RC alone neither MC nor Elecard have this capability so AQ becomes essential to compensate this problematic scenes same as for X264 and they remove it ?.
Yeah i hope as much as you that we gonna see a comeback of these PSY features with DivX final Encoder though im confident we will as DivX want's to provide something of quality to their Average User community and these Psy features are essential for most that automatically of course is gonna trigger a chain reaction @ Elecards and Mainconcepts Prosumer customers that gonna ask themselves why does DivX has those features but we not ;) and so finally it will come back in every Product.

shon3i
17th December 2008, 08:13
Im really surprised that AQ and FGO are in the SDK but neither available in Mainconcepts Reference Encoder GUI (which is for Prosumer) nor since ECS 3.0 anymore in Elecards GUI, i really would like to know what reason was behind that decision on the first look it makes no real sense @ all to remove those PSY features as they worked fine.Yes it's really strange, perhaps it did not sufficiently tested, or they can't find default values like x264 does AQ 1.0, Psyrdo 1.0,0

Dark Shikari
17th December 2008, 08:25
Yes it's really strange, perhaps it did not sufficiently tested, or they can't find default values like x264 does AQ 1.0, Psyrdo 1.0,0Or they're still optimizing exclusively for PSNR...

Sagittaire
17th December 2008, 09:34
Im really surprised that AQ and FGO are in the SDK but neither available in Mainconcepts Reference Encoder GUI (which is for Prosumer) nor since ECS 3.0 anymore in Elecards GUI, i really would like to know what reason was behind that decision on the first look it makes no real sense @ all to remove those PSY features as they worked fine. Especially compared to how Ateme handles certain situations with their lookahead RC alone neither MC nor Elecard have this capability so AQ becomes essential to compensate this problematic scenes same as for X264 and they remove it ?.
Yeah i hope as much as you that we gonna see a comeback of these PSY features with DivX final Encoder though im confident we will as DivX want's to provide something of quality to their Average User community and these Psy features are essential for most that automatically of course is gonna trigger a chain reaction @ Elecards and Mainconcepts Prosumer customers that gonna ask themselves why does DivX has those features but we not ;) and so finally it will come back in every Product.

Avalaible command for the SDK 7.5.0.35746

PrintProgress CalcQuality EncodingBuffering Buffering LiveMode NumThreads CpuOpt PicNumOffset FrameMBsMode Log2MaxFrameNum Log2MaxPOC WritePPS WriteSPS WriteSingleSEI WriteTS WriteEOS WriteAUD AnnexB StreamType NumUnitsInTick TimeScale PAR_Height PAR_Width SAR_Height SAR_Width SAR_IDC VUIFlags BlackLevel DenoiseStrengthC DenoiseStrengthY Lambda FGOStrength GrainOptimization QuantOptimization FastSBME FastMRME FastInterDecision FastIntraDecision HadamardTransform InsaneRDO EnableRDO OffsetsMatrixFile UseOffsetsMatrix ScalingMatrixFile UseScalingMatrix BetaOffset AlphaC0Offset DeblockMode EnableInter_PCM EnableInter_4x4 EnableInter_8x8 EnableInter_16x16 EnableIntra_PCM EnableIntra_4x4 EnableIntra_8x8 EnableIntra_16x16 ConstrainedME OutOfPicMVs SearchRange MaxRefIdxL1Minus1 MaxRefIdxL0Minus1 NumRefFrames WeightedBiPred WeightedPred SubBlockMode SubPelMode EnableME Pass StatFile MaskingStrength MaskingType CpbRemovalDelay CpbFullnessUnits CpbFullnessTarget CpbFullness CpbSize HssRate UseVclHRD UseNalHRD AvgBitrate CrOffset CbOffset QuantMax QuantMin QuantB QuantP QuantI RCMode IDRPeriod AdaptiveB EnableSCD PyramidCoding BFramesReference BFramesCount MinIntraPeriod MaxIntraPeriod SliceArgument SliceMode TopFieldFirst InterlaceMode LosslessCompression TransformType EntropyMode ChromaFormat Level Profile ColorSpace Height Width FramesCount StartFrame StatFileName ConfigFileName ReconstFileName TargetFileName SourceFileName


There are other really interessing new command too:
- BlackLevel DenoiseStrengthC DenoiseStrength (psy pre-process?)
- Lambda (for rdo?)

MuTeK
18th December 2008, 19:27
Somehow that is surprising i thought after Mainconcept bought Elecard they would use most of their Codebase but somehow the Speed difference ....
Please read this news: http://elecard.com/news/news_arch.php?nid=148 and this: http://elecard.com/news/news_arch.php?nid=161

All of the above G4 codecs are based on completely new engines.
And AQ will be add in CS 3.1 (with AVC encoder 1.2.xxx)

CruNcher
18th December 2008, 20:48
So does that actually means Elecard is the Core R&D part of Mainconcept and all enhancements will get @ later time into Mainconcepts Products (even SDK) (after stability is evaluated) ?

@Dark Shikari
is it possible to change a 10 step start Quantization difference between BR and CRF where is the Start QP difference defined in the RC ?

Sergey A. Sablin
18th December 2008, 22:03
So does that actually means Elecard is the Core R&D part of Mainconcept and all enhancements will get @ later time into Mainconcepts Products (even SDK) (after stability is evaluated) ?

This means that there is no relationship between these two companies for more than a year, i.e. each company has its own products - codecs, applications and everything else.

CruNcher
18th December 2008, 22:49
Ahh that explains a lot :) so no newer Research of Elecard will be used inside the Final DivX Encoder actually then ?

http://mirror05.x264.nl/CruNcher/force.php?file=./dshow-batchframework/x264-balanced.mp4
http://mirror05.x264.nl/CruNcher/force.php?file=./dshow-batchframework/divx-mc.mp4
http://mirror05.x264.nl/CruNcher/force.php?file=./dshow-batchframework/elecard.mp4


Encoding Time:

Encoding Time:
X264 = 0:21s
DivX = 1:03m
Elecard = 1:07m


can't wait to see the complexity masking results (again) :) though the speed isn't really that good i try to tweak on that a little more but without AQ it will fail here anyways

Atak_Snajpera
18th December 2008, 23:05
http://mirror05.x264.nl/CruNcher/for...rk/elecard.mp4
Quality drop at 4s is very bad. Let's wait for updated elcard encoder.

CruNcher
18th December 2008, 23:23
yep you can clearly see how the bitrate jumps down like in a roller coaster ;)

Dark Shikari
18th December 2008, 23:24
http://mirror05.x264.nl/CruNcher/force.php?file=./dshow-batchframework/elecard.mp4Oh dear, it seems they really need to work on their ratecontrol.

http://i44.tinypic.com/r7m1zr.png

CruNcher
18th December 2008, 23:29
i have to lough a little seeing that screenshot ;) *gigles* (for everyone else that's a insider) how ironic that is

Dark Shikari
18th December 2008, 23:34
i have to lough a little seeing that screenshot ;) *gigles* (for everyone else that's a insider) how ironic that isYes, yes, the irony detection is strong in this one ;)

CruNcher
19th December 2008, 00:14
for completion (Mainconcept 7.5 DivX Tuned -aqo 0)

http://mirror05.x264.nl/CruNcher/force.php?file=./dshow-batchframework/divx-mc.mp4

Encoding Time:
DivX = 1:03m

Sagittaire
21st December 2008, 12:20
On c2d at 2.66 Ghz with Parkrun
I find that HVS quality is better for Mainconcept here with higher speed.
I use similar setting for ME&RDO and similar setting for psy (AQ and FGO)


D:\Mes dossiers\Codec\x264>x264.exe --threads auto --thread-input --fps 60 --keyint 250 --min-keyint
1 --crf 25 --bframe 3 --b-pyramid --weightb --ref 3 --mixed-refs --direct auto --deblock -1:-1 --pa
rtitions "all" --8x8dct --me "umh" --subme 6 --trellis 1 --progress -o azerty.mp4 1280x720.yuv
x264 [info]: file name gives 1280x720
x264 [info]: using cpu capabilities: MMX2 SSE2Fast SSSE3 Cache64
x264 [info]: profile High, level 3.2
mp4 [info]: initial delay 2000 (scale 60000)
x264 [info]: slice I:4 Avg QP:25.82 size:120395 PSNR Mean Y:37.53 U:41.91 V:44.43 Avg:38.65 Gl
obal:35.74
x264 [info]: slice P:296 Avg QP:33.12 size: 32038 PSNR Mean Y:29.07 U:37.94 V:39.80 Avg:30.59 Gl
obal:30.23
x264 [info]: slice B:304 Avg QP:35.13 size: 2393 PSNR Mean Y:29.03 U:38.29 V:40.21 Avg:30.55 Gl
obal:29.69
x264 [info]: consecutive B-frames: 0.7% 95.3% 0.0% 4.0%
x264 [info]: mb I I16..4: 7.9% 76.6% 15.4%
x264 [info]: mb P I16..4: 0.0% 0.8% 0.2% P16..4: 39.1% 12.0% 17.3% 1.4% 1.9% skip:27.2%
x264 [info]: mb B I16..4: 0.0% 0.0% 0.0% B16..8: 4.1% 0.2% 0.2% direct: 6.8% skip:88.7% L
0:16.4% L1:33.4% BI:50.2%
x264 [info]: 8x8 transform intra:76.6% inter:50.6%
x264 [info]: direct mvs spatial:99.3% temporal:0.7%
x264 [info]: ref P L0 85.7% 7.8% 6.4%
x264 [info]: ref B L0 93.2% 6.8%
x264 [info]: ref B L1 99.6% 0.4%
x264 [info]: SSIM Mean Y:0.8978114
x264 [info]: PSNR Mean Y:29.106 U:38.144 V:40.033 Avg:30.626 Global:29.970 kb/s:8497.12

encoded 604 frames, 9.59 fps, 8497.90 kb/s


D:\Mes dossiers\Codec\Elecard2>mch264ve.exe config22.cfg SourceFileName = 1280x720.yuv TargetFileNam
e = "ElecardAVC_900.264" AvgBitrate = 8500000
Copyright (c) 2006 MainConcept AG

THIS SOFTWARE IS FOR EVALUATION PURPOSES ONLY!

[time: 0:00:46] [left: 0:00:00] [speed: 13.1 fps] [queue: 0.000 ms]

Summary information:
Number of coded frames 604
Total encoding time 46037 ms
Average time per frame 76.220 ms
Average speed achieved 13.1 fps
Average bitrate 8755.05 kbit/sec @ 59.94 Hz

Overall PSNR (Y) 27.472 dB
Overall PSNR (U) 37.949 dB
Overall PSNR (V) 39.674 dB
Overall PSNR (A) 29.073 dB


###############################################################################
###############################################################################
### ###
### Content definition ###
### ###
###############################################################################
###############################################################################

SourceFileName = "" # Source stream (YUV/AVI/AVS)
TargetFileName = "" # Target stream (H.264 Annex B)
StartFrame = 0 # Start frame number
FramesCount = 0 # Number of frames to encode (0 - whole sequence)
Width = 1280 # Frame width (only for YUV)
Height = 720 # Frame height (only for YUV)

###############################################################################
###############################################################################
### ###
### Encoder settings ###
### ###
###############################################################################
###############################################################################

##===========================================================================##
##===========================================================================##
##
## Common settings
##
##===========================================================================##
##===========================================================================##

Profile = 100 # Profile to be used:
# 66 - Baseline,
# 77 - Main,
# 100 - High,
# 144 - High444

Level = 100 # Level to be used:
# 30 - 3.0 or
# 100 - auto

ChromaFormat = 1 # Chroma subsampling format:
# 0 - 4:0:0,
# 1 - 4:2:0,

EntropyMode = 1 # Entropy coding mode:
# 0 - CAVLC,
# 1 - CABAC

TransformType = 1 # Transform size:
# 0 - 4x4 only,
# 1 - Adaptive,
# 2 - 8x8 only

LosslessCompression = 0 # Compression type:
# 0 - disable,
# 1 - enable (high444)

##===========================================================================##
##===========================================================================##
##
## Interlace settings
##
##===========================================================================##
##===========================================================================##

InterlaceMode = 0 # Picture coding mode:
# 0 - frame,
# 1 - field,
# 2 - mbaff

TopFieldFirst = 1 # Field order:
# 0 - bottom field first,
# 1 - top field first

##===========================================================================##
##===========================================================================##
##
## Slice settings
##
##===========================================================================##
##===========================================================================##

SliceMode = 0 # Slice mode:
# 0 - fixed number of mbs,
# 1 - fixed size in bytes,
# 2 - use callback

SliceArgument = 1 # Slice argument for modes 0, 1

##===========================================================================##
##===========================================================================##
##
## GOP structure
##
##===========================================================================##
##===========================================================================##

MaxIntraPeriod = 250 # Maximum GOP length in frame units [1, 300]
MinIntraPeriod = 1 # Minimum GOP length in frame units
BFramesCount = 3 # Maximum number of B-frames [0, 3]
BFramesReference = 1 # Enable reference B-frames
PyramidCoding = 1 # Use pyramid GOP structure
EnableSCD = 1 # Enable Scene Change Detection
AdaptiveB = 1 # Enable Adaptibe B-frames placement
IDRPeriod = 1 # IDR period in GOP units (0 - only first is IDR)

##===========================================================================##
##===========================================================================##
##
## Rate control settings
##
##===========================================================================##
##===========================================================================##

RCMode = 1 # Rate control mode:
# 0 - ConstQ,
# 1 - VBR,
# 2 - CBR
QuantI = 0 # Qp for I-slice (ConstQ mode)
QuantP = 0 # Qp for P-slice (ConstQ mode)
QuantB = 0 # Qp for B-slice (ConstQ mode)
CbOffset = 1 # Cb qp offset for FRext or Cb/Cr else [-51, 51]
CrOffset = 1 # Cr qp offset for FRext [-51, 51]
AvgBitrate = 0 # Average bitrate (VBR and CBR), bits/sec
MaintainHRD = 0 # Maintain Hypotetical Reference Decoder (HRD)
HssRate = 0 # HSS rate (VBR mode), bits/sec
CpbSize = 0 # Coded Picture Buffer (CPB) size (see CpbFullnessUnits)
CpbFullness = 0 # Initial CPB fullness (see CpbFullnessUnits)
CpbFullnessTarget = 0 # Target CPB fullness (see CpbFullnessUnits)
CpbFullnessUnits = 2 # CPB size and fullness units:
# 0 - size in bytes, fullness in %%,
# 1 - size and fullness in bits,
# 2 - size in bits, fullness in 90 kHz units
MaskingType = 3 # Per macroblock qp masking:
# 0 - do not use,
# 1 - extremes of luminance get finer quantization with a positive strength,
# 2 - high contrast gets finer quantization with a positive strength,
# 3 - high complexity area gets finer quantization with a positive strength

MaskingStrength = -66 # Per macroblock qp masking strength [-100, +100]
StatFile = "avc_stat.log" # Statistics file (for 2-pass VBR/CBR)
Pass = 2 # RC pass number:
# 0 - single pass encoding,
# 1 - first pass (gather and write statistics),
# 2 - second pass (use and update statistics)

##===========================================================================##
##===========================================================================##
##
## Motion estimation settings
##
##===========================================================================##
##===========================================================================##

EnableME = 1 # Enable Motion Estimation (ME)
SubPelMode = 2 # Sub-pel motion accuracy:
# 0 - full pels only,
# 1 - full and half pels,
# 2 - full, half and quarter pels,
SubBlockMode = 1 # Sub-block motion search:
# 0 - use 16x16 blocks only,
# 1 - use blocks downto 8x8,
# 2 - use blocks downto 4x4
WeightedPred = 1 # Enable P-frame weighted prediction
WeightedBiPred = 0 # 0 (disable), 1 (enable)
NumRefFrames = 3 # Number of reference frames [0, 16]
FastMRME = 1 # Enable fast multi-reference ME
FastSBME = 1 # Enable fast sub-block ME
SearchRange = 255 # Search range in full pel units
OutOfPicMVs = 1 # Enable out of picture MVs

##===========================================================================##
##===========================================================================##
##
## Intra prediction settings
##
##===========================================================================##
##===========================================================================##

EnableIntra_16x16 = 1 # Enable intra 16x16 mode in intra slices
EnableIntra_8x8 = 1 # Enable intra 8x8 mode in intra slices
EnableIntra_4x4 = 1 # Enable intra 4x4 mode in intra slices
EnableInter_16x16 = 1 # Enable intra 16x16 mode in inter slices
EnableInter_8x8 = 1 # Enable intra 8x8 mode in inter slices
EnableInter_4x4 = 1 # Enable intra 4x4 mode in inter slices

##===========================================================================##
##===========================================================================##
##
## Deblock settings
##
##===========================================================================##
##===========================================================================##

DeblockMode = 0 # Deblocking filter mode:
# 0 - enable,
# 1 - disable,
# 2 - disable on slice boundaries
AlphaC0Offset = -2 # alpha c0 offset [-6, 6]
BetaOffset = -2 # beta offset [-6, 6]

##===========================================================================##
##===========================================================================##
##
## RDO settings
##
##===========================================================================##
##===========================================================================##

EnableRDO = 1 # Enable RD optimization
InsaneRDO = 0 # Enable deeper RD analyse
HadamardTransform = 1 # Enable Hadamard SATD
FastIntraDecision = 1 # Enable fast intra modes decisions
FastInterDecision = 1 # Enable fast inter modes decisions
QuantOptimization = 2 # Quantization optimization mode:
# 0 - unoptimized,
# 1 - mode1,
# 2 - mode2
GrainOptimization = 1 # Granular noise optimization
# 0 - disable,
# 1 - enable

CruNcher
21st December 2008, 12:59
are you sure the fps are coherent ? i would rather go by the time then the fps :)
don't forget i tested with DivX Encoder CLI so i used there fastest Profile preset Settings whatever they are (-aqo 0) :)
also mine are 1 pass bitrate results not 2 pass, also no RD was used here though im not sure if -aqo 0 isn't RD driven

Sagittaire
21st December 2008, 14:57
I test only the second pass speed here (coding pass):
x264: 9.59 fps
mainconcept CLI: 13.1 fps
divx avc: 13.0 fps

- divx avc use certaily here exactly the same profil that my MC profil (aka fast rdo, fast ref, fast ME, fast inter, fast intra)

- AQ and FGO are really usefull here. Mainconcept CLI obtain by far better visual result than DivX avc.





This pre-release version will expire on Tue Oct 28 00:00:00 2008
Please check http://labs.divx.com for new versions.
DivX H.264/AVC encoder (cli/sdk 0.0.0.4/7.3.0)
Copyright (c) 2008 DivX

[time: 0:00:46] [left: 0:00:00] [speed: 13.0 fps] [frames: 603/603]

Summary information:
Number of coded frames 603
Total encoding time 46485 ms
Average time per frame 77.090 ms
Average speed achieved 13.0 fps
Average bitrate 8579.57 kbit/sec @ 59.940 Hz

CruNcher
21st December 2008, 21:17
and how is it visually if you step down a little with your x264 settings and adjust them to Mainconcepts 13 fps ?
no doubt that AQ is useful here when the encoder has a weak RC :)


So DivX Encoder (Interface) to Mainconcepts Encoder SDK and there Multithreaded (CoreAVC speed like) Decoder seem almost be finished now, let's hope they added AQ and FGO (and some more Advanced options of Mainconcept to adjust more stuff internally) @digital54k any infos about what Feature set will come in the first Final release ?

http://www.divx.com/divx7/

Sharktooth
22nd December 2008, 05:03
I find that HVS quality is better for Mainconcept here with higher speed.
for YOUR eyes maybe...
also the elecard encode bitrate is more than 250kbps higher and different deblocking params were used, plus you used 2 passes for elecard while for x264 just one...
so, even in this unfair situation, x264 was faster (1pass vs 2 - you posted ONLY the 2nd pass stats for elecard based encoders...) and produced a higher PSNR. cant tell about quality since you didnt post any links to the encodings.

Sagekilla
22nd December 2008, 06:04
Or they're still optimizing exclusively for PSNR...

Just to be fair, isn't x264 also optimizing for PSNR/SSIM too when speeding up operations or trying to get higher compression? Well, with the exception of PSY-RD and AQ, doesn't the same more or less hold true?

Dark Shikari
22nd December 2008, 07:30
Just to be fair, isn't x264 also optimizing for PSNR/SSIM too when speeding up operations or trying to get higher compression? Well, with the exception of PSY-RD and AQ, doesn't the same more or less hold true?x264 optimizes in three ways:

1. Motion search: optimal SAD (nothing to do with PSNR: only to do with absolute difference, i.e. minimal residual).
2. Subpixel refinement and initial (non-RD) mode decision: optimal SATD (nothing to do with PSNR again: just minimizing residual).
3. RD mode decision: use whatever RD metric is chosen. Psy-RD doesn't optimize for PSNR here, leaving no place in x264 where that occurs. (Technically, there is still an "SSD" value in the equation used here, so there is still an element of PSNR, albeit not as important).

So there's really no outright optimization of PSNR here as one would have without psy-RD. And AQ is basically optimizing for SSIM.

Basically, if you want to compare quality with psy optimizations, do not post PSNR numbers, ever. They are always misleading in such cases. If you want to compare, at an absolute level, how heavily RD-optimized and such two encoders are (ignoring psy opts, etc), turn all psy opts off and compare PSNR at the same bitrate.

Sagittaire
22nd December 2008, 16:12
for YOUR eyes maybe...


Yes ... it's HVS


also the elecard encode bitrate is more than 250kbps

Don't change anything ... I refine bitrate anyway.


higher and different deblocking params were used

Well -1 or -2 don't change really ... I remake encoding with same deblocking anyway.


plus you used 2 passes for elecard while for x264 just one...

Well crf mode is really better for quality than 2 pass with fast first pass. crf mode produce the same output than slow 3 pass encoding. I use 2 pass for x264 anyway.



you posted ONLY the 2nd pass stats for elecard based encoders... and produced a higher PSNR. cant tell about quality since you didnt post any links to the encodings.

Not big problem
http://dl.free.fr/qUdSqXuhv

x264 and Mainconcept produce similar output. Mainconcept seem produce less flick but x264 seem retain more complexe texture. I prefer the temporal stability.
Divx7 avc quality output without AQ and FGO is really far if you compare with my x264 and Mainconcept encoding. AQ and FGO are really usefull setting.
It's certainely possible to obtain really better result with masking combinaison (complexity, contrast & lumimask are usefull)



####### x264


D:\Mes dossiers\Codec\x264>x264.exe --threads auto --thread-input --keyint 250 --min-keyint 1 --bitr
ate 8700 --pass 1 --stats "stat.log" --bframe 3 --b-pyramid --weightb --ref 3 --mixed-refs --direct
auto --deblock -2:-2 --partitions "all" --8x8dct --me "umh" --subme 6 --trellis 1 --progress -o nul
Lossless.avs
avis [info]: 1280x720 @ 59.94 fps (604 frames)
x264 [info]: using cpu capabilities: MMX2 SSE2Fast SSSE3 Cache64
x264 [info]: profile High, level 3.2
x264 [info]: slice I:4 Avg QP:25.39 size:126893 PSNR Mean Y:37.71 U:42.33 V:44.82 Avg:38.86 Gl
obal:35.49
x264 [info]: slice P:296 Avg QP:33.64 size: 30022 PSNR Mean Y:28.70 U:38.22 V:40.08 Avg:30.24 Gl
obal:29.66
x264 [info]: slice B:304 Avg QP:35.63 size: 1816 PSNR Mean Y:28.79 U:38.87 V:40.86 Avg:30.34 Gl
obal:29.23
x264 [info]: consecutive B-frames: 0.7% 95.3% 0.0% 4.0%
x264 [info]: mb I I16..4: 5.7% 79.4% 14.9%
x264 [info]: mb P I16..4: 0.1% 0.8% 0.2% P16..4: 39.5% 11.4% 16.1% 1.1% 1.6% skip:29.2%
x264 [info]: mb B I16..4: 0.0% 0.0% 0.0% B16..8: 3.4% 0.2% 0.1% direct: 5.1% skip:91.2% L
0:16.2% L1:32.1% BI:51.7%
x264 [info]: final ratefactor: 24.23
x264 [info]: 8x8 transform intra:76.0% inter:51.2%
x264 [info]: direct mvs spatial:99.3% temporal:0.7%
x264 [info]: ref P L0 86.9% 7.2% 5.9%
x264 [info]: ref B L0 92.9% 7.1%
x264 [info]: ref B L1 99.7% 0.3%
x264 [info]: SSIM Mean Y:0.8884870
x264 [info]: PSNR Mean Y:28.804 U:38.577 V:40.508 Avg:30.352 Global:29.460 kb/s:7896.30

encoded 604 frames, 11.21 fps, 7897.00 kb/s

D:\Mes dossiers\Codec\x264>x264.exe --threads auto --thread-input --keyint 250 --min-keyint 1 --bitr
ate 8700 --pass 3 --stats "stat.log" --bframe 3 --b-pyramid --weightb --ref 3 --mixed-refs --direct
auto --deblock -2:-2 --partitions "all" --8x8dct --me "umh" --subme 6 --trellis 1 --progress -o azer
ty.mp4 Lossless.avs
avis [info]: 1280x720 @ 59.94 fps (604 frames)
x264 [info]: using cpu capabilities: MMX2 SSE2Fast SSSE3 Cache64
x264 [info]: profile High, level 3.2
mp4 [info]: initial delay 2002 (scale 60000)
x264 [info]: slice I:4 Avg QP:25.54 size:127288 PSNR Mean Y:38.15 U:41.71 V:44.89 Avg:39.21 Gl
obal:36.97
x264 [info]: slice P:296 Avg QP:33.06 size: 32095 PSNR Mean Y:29.21 U:38.18 V:40.08 Avg:30.74 Gl
obal:30.35
x264 [info]: slice B:304 Avg QP:35.27 size: 2279 PSNR Mean Y:29.17 U:38.82 V:40.82 Avg:30.72 Gl
obal:29.83
x264 [info]: consecutive B-frames: 0.7% 95.3% 0.0% 4.0%
x264 [info]: mb I I16..4: 21.5% 62.3% 16.2%
x264 [info]: mb P I16..4: 0.0% 0.5% 0.2% P16..4: 37.9% 12.5% 17.7% 1.4% 2.0% skip:27.8%
x264 [info]: mb B I16..4: 0.0% 0.0% 0.0% B16..8: 3.6% 0.2% 0.2% direct: 6.1% skip:89.9% L
0:15.6% L1:29.5% BI:54.9%
x264 [info]: 8x8 transform intra:63.4% inter:49.5%
x264 [info]: direct mvs spatial:99.3% temporal:0.7%
x264 [info]: ref P L0 85.7% 7.7% 6.5%
x264 [info]: ref B L0 93.3% 6.7%
x264 [info]: ref B L1 100.0% 0.0%
x264 [info]: SSIM Mean Y:0.9005252
x264 [info]: PSNR Mean Y:29.253 U:38.525 V:40.487 Avg:30.787 Global:30.099 kb/s:8496.33

encoded 604 frames, 11.15 fps, 8497.15 kb/s




####### Mainconcept


D:\Mes dossiers\Codec\Elecard2>set E_SRC=Lossless.avs

D:\Mes dossiers\Codec\Elecard2>set E_BR=8300000

D:\Mes dossiers\Codec\Elecard2>mch264ve.exe config11.cfg SourceFileName = Lossless.avs TargetFileNam
e = "ElecardAVC_900.264" AvgBitrate = 8300000
MainConcept H.264/AVC encoder
Copyright (c) 2006 MainConcept AG

THIS SOFTWARE IS FOR EVALUATION PURPOSES ONLY!

[time: 0:00:40] [left: 0:00:00] [speed: 15.0 fps] [queue: 0.000 ms]

Summary information:
Number of coded frames 604
Total encoding time 40384 ms
Average time per frame 66.861 ms
Average speed achieved 15.0 fps
Average bitrate 8982.27 kbit/sec @ 59.94 Hz

D:\Mes dossiers\Codec\Elecard2>mch264ve.exe config22.cfg SourceFileName = Lossless.avs TargetFileNam
e = "ElecardAVC_900.264" AvgBitrate = 8300000
MainConcept H.264/AVC encoder
Copyright (c) 2006 MainConcept AG

THIS SOFTWARE IS FOR EVALUATION PURPOSES ONLY!

[time: 0:00:45] [left: 0:00:00] [speed: 13.1 fps] [queue: 0.000 ms]

Summary information:
Number of coded frames 604
Total encoding time 45938 ms
Average time per frame 76.056 ms
Average speed achieved 13.1 fps
Average bitrate 8548.44 kbit/sec @ 59.94 Hz

Overall PSNR (Y) 27.505 dB
Overall PSNR (U) 38.286 dB
Overall PSNR (V) 40.003 dB
Overall PSNR (A) 29.117 dB

D:\Mes dossiers\Codec\Elecard2>mch264ve.exe config22.cfg SourceFileName = Lossless.avs TargetFileNam
e = "ElecardAVC_900.264" AvgBitrate = 8300000
MainConcept H.264/AVC encoder
Copyright (c) 2006 MainConcept AG

THIS SOFTWARE IS FOR EVALUATION PURPOSES ONLY!

[time: 0:00:46] [left: 0:00:00] [speed: 12.9 fps] [queue: 0.000 ms]

Summary information:
Number of coded frames 604
Total encoding time 46675 ms
Average time per frame 77.276 ms
Average speed achieved 12.9 fps
Average bitrate 8559.47 kbit/sec @ 59.94 Hz

Overall PSNR (Y) 27.460 dB
Overall PSNR (U) 38.267 dB
Overall PSNR (V) 40.016 dB
Overall PSNR (A) 29.073 dB




####### DivX 7 AVC


D:\Mes dossiers\Codec\DivX>DivX264 -br 8500 -npass 1 -sf stat.dat -bf 3 -pyramid -bref -aqo 0 -ref 3
-i "Lossless.avs" -o "Sample1.264"
This pre-release version will expire on Tue Oct 28 00:00:00 2008
Please check http://labs.divx.com for new versions.
DivX H.264/AVC encoder (cli/sdk 0.0.0.4/7.3.0)
Copyright (c) 2008 DivX

[time: 0:00:36] [left: 0:00:00] [speed: 16.4 fps] [frames: 604/604]

Summary information:
Number of coded frames 604
Total encoding time 36718 ms
Average time per frame 60.791 ms
Average speed achieved 16.4 fps
Average bitrate 7669.82 kbit/sec @ 59.940 Hz

D:\Mes dossiers\Codec\DivX>DivX264 -br 8500 -npass 2 -sf stat.dat -bf 3 -pyramid -bref -aqo 0 -ref 3
-i "Lossless.avs" -o "Sample2.264"
This pre-release version will expire on Tue Oct 28 00:00:00 2008
Please check http://labs.divx.com for new versions.
DivX H.264/AVC encoder (cli/sdk 0.0.0.4/7.3.0)
Copyright (c) 2008 DivX

[time: 0:00:42] [left: 0:00:00] [speed: 14.3 fps] [frames: 604/604]

Summary information:
Number of coded frames 604
Total encoding time 42094 ms
Average time per frame 69.692 ms
Average speed achieved 14.3 fps
Average bitrate 8579.47 kbit/sec @ 59.940 Hz

CruNcher
22nd December 2008, 17:46
x264 and Mainconcept produce similar output. Mainconcept seem produce less flick but x264 seem retain more complexe texture. I prefer the temporal stability.
Divx7 avc quality output without AQ and FGO is really far if you compare with my x264 and Mainconcept encoding. AQ and FGO are really usefull setting.
It's certainely possible to obtain really better result with masking combinaison (complexity, contrast & lumimask are usefull)

yep but actually AQ wouldn be needed in alot of these situations i guess in 1 pass if the RC would be a little smarter handling those :)

Sagittaire
22nd December 2008, 20:48
yep but actually AQ wouldn be needed in alot of these situations i guess in 1 pass if the RC would be a little smarter handling those :)

Ateme in recent version produce really good quality too.

Sagittaire
24th December 2008, 02:54
Here Ateme/Nero encoding (10 fps) and vc1 MS SDK encoding in insane quality (lowwwwwwwww speed).
http://dl.free.fr/plLYEnws5


- quality for ateme is impressive with psy mode
- quality for MS vc1 sdk is not so bad and by far better than Mainconcept vc1 sdk.

Dark Shikari
24th December 2008, 03:07
Here Ateme/Nero encoding (10 fps)You should use a newer version of Ateme's encoder... using the Nero encoder really is rather unfair, given it hasn't been updated in over 4 years. The newer Ateme encoder is quite good and reliably beats Mainconcept in every test I've done.

CruNcher
24th December 2008, 05:00
@Dark Shikari
Did you still worked on Smooth Quantization for the AQ or is there no solution yet to the Frenzy Edge problem ?

Dark Shikari
24th December 2008, 05:03
@Dark Shikari
Did you still worked on Smooth Quantization for the AQ or is there no solution yet to the Frenzy Edge problem ?The problem with quantizer field smoothing is that in practice, in my tests, it decreases quality almost uniformly.

It resolves a few corner cases, but at the cost of overall visual quality and SSIM.

The proper solution is to get the H.264 spec fixed so that there's a delta-quant per CBP ;)

CruNcher
24th December 2008, 06:29
H.265 so ;)

Sagittaire
26th December 2008, 09:08
You should use a newer version of Ateme's encoder... using the Nero encoder really is rather unfair, given it hasn't been updated in over 4 years. The newer Ateme encoder is quite good and reliably beats Mainconcept in every test I've done.

4 years for Nero ... hmmm ... there are AVCHD profil in nero. I doubt that codec enginer hasn't been updated in over 4 years.

Anyway for this source (parkrun) the most important part is AQ and old Ateme enginer have already psy option. My old CLI from Ateme (12/2005) produce good result with psy 3 option.