Log in

View Full Version : [HD 1080p24 Challenge] MPEG2, VC-1 and H264 with real uncompressed source


Pages : [1] 2 3 4 5 6 7

Sagittaire
1st August 2007, 13:06
~ HD Benchmark Challenge ~

You think that your standard is the best : prove that ... !!?



A - Introduction

The purpose of this challenge is to determine which is the best codec format encoding for objective test.
HD-DVD & BD can use MPEG2, H264 and VC-1 for video codec.



B - Rules

Rule 1 : Source

Uncompressed source is available Here (http://orange.blender.org/blog/original-lossless-source-available/) for reproduce the test.
Open source Elephant Dream movie, video 1920*1080 PNG lossless, audio 5.1 Flac lossless, 15 691 frames


Rule 2 : Pre-process and encoding

You must use this avisynth script for make encoding:

Source=ImageSource("C:\LossLess\images\%05d.png", start=1, end=15691, fps=23.976)
Source=ConvertToYV12(source, matrix="Rec709")
return source



Other pre-process are not autorized. It's possible to propose example with high quality pre-process (like sharp ... ect) but just for demonstration and not for this challenge.

Video Stream must be like HD-DVD/BD compliant stream. You can use all the compliant audio codec and all the compliant bitrate for audio. This test is just video challenge and not audio challenge. All the video stream must be compliant with these setting:

MPEG2 Encoding
Profil & Level: MP@HL except specific restrictions
Max GOP lenght: 14 frames
Maximum bitrate: 20.0 Mbps, 24.0 Mbps and 28.0 Mbps
Buffer size: 9781 Kbits for principal HD video stream
Horizontal Vector Range: +/- 1024 pixels
Vertical Vector Range: +/- 128 pixels
Other Restrictions Setting: max adaptative GOP at 14, max adaptative bframe at 7

VC-1 Encoding
Profil & Level: AP@L3 except specific restrictions
Max GOP lenght: 14 frames
Maximum bitrate: 20.0 Mbps, 24.0 Mbps and 28.0 Mbps
Buffer size: 14745 Kbits for principal HD video stream
Horizontal Vector Range: unlimited
Vertical Vector Range: unlimited
Other Restrictions Setting: max adaptative GOP at 14, max adaptative bframe at 7

H264 Encoding
Profil & Level: HP@L4.1 except specific restrictions
Max GOP lenght: 14 frames
Maximum bitrate: 20.0 Mbps, 24.0 Mbps and 28.0 Mbps
Buffer size: 14745 Kbits for principal HD video stream
Horizontal Vector Range: +/- 1024 pixels
Vertical Vector Range: +/- 512 pixels
Other Restrictions Setting: max adaptative GOP at 14, max adaptative bframe at 7,
Max reference at 4, Max breference at 3, no film grain modeling


Rule 3 : Bitrate and Max Bitrate

You must use these bitrate/size for encoding:

HD-DVD with "super bitrate" video stream and simple HDDVD authoring:
18 Mbps (Max at 28.0 Mbps) for video stream with +/- 0.5 % for bitrate tolerance
HD-DVD with "medium bitrate" video stream and standard HDDVD authoring:
12 Mbps (Max at 24.0 Mbps) for video stream with +/- 0.5 % for bitrate tolerance
HD-DVD with "low bitrate" video stream and standard HDDVD authoring:
6 Mbps (Max at 20.0 Mbps) for video stream with +/- 0.5 % for bitrate tolerance

NB: we can use HD-DVD structure too on simple DVD DL 12 cm at 8.5 GB


Rule 4 : Visual Tests

Here you can find encoding elementary stream for subjective test ... try to find yourself the best visual quality:

HD-DVD & BD MPEG2 at 18 Mbps: not available
HD-DVD & BD MPEG2 at 12 Mbps: not available
HD-DVD & BD MPEG2 at 6 Mbps (http://jfl1974.free.fr/HDDVD/MPEG2/6Mbps/MPEG2_6Mbps.m2v)

HD-DVD & BD VC-1 at 18 Mbps: not available
HD-DVD & BD VC-1 at 12 Mbps: not available
HD-DVD & BD VC-1 at 6 Mbps (http://jfl1974.free.fr/HDDVD/VC1/6Mbps/VC1_6Mbps.vc1)

HD-DVD & BD H264 at 18 Mbps (http://jfl1974.free.fr/HDDVD/H264/18Mbps/)
HD-DVD & BD H264 at 12 Mbps (http://jfl1974.free.fr/HDDVD/H264/12Mbps/)
HD-DVD & BD H264 at 6 Mbps (http://jfl1974.free.fr/HDDVD/H264/6Mbps/)


Rule 5 : Metrics Tests

SSIM (YV12): IMO the best metric. it uses some HVS properties but not all ...
PDF description for VSSIM (http://www.cns.nyu.edu/~zwang/files/papers/vssim.pdf)

Overall PSNR (YV12): Very good metric test, particullary for Rate Control Quality test ...
MSE = Sum t = 1 -> NFrame Sum x = 1 -> width Sum y = 1 -> height (F'(x,y,t)-F(x,y,t))² / (NFrame*width*height)
Overall PSNR = 10 * Log ( 255² / MSE)

Average PSNR (YV12):The worse metric test but Frame PSNR graph is very good to compare RC strategy ...
MSE = Sum x = 1 -> width Sum y = 1 -> height (F'(x,y,t)-F(x,y,t))² / (width*height)
Average PSNR = Sum t = 1 -> NFrame 10 * Log ( 255² / MSE) / Nframe


SSIM vs PSNR

"For a given reference video and a given compressed video, it is meant to compute a quality metric, based on perceived visual distortion. Unlike the well-known PSNR measure, it's not purely mathematical, and should correlate much better with human vision."

"A higher MSE (and so lower PSNR) should mean that the compressed clip is a worse image but MSE and PSNR are flawed in this respect as numerous tests have shown. However with SSIM, according to tests carried out on the VQEG dataset, a higher Q (SSIM value) has a much better relation to the visual quality of the compressed clip. Despite this, bear in mind the SSIM metric still isn't perfect."

Here (http://multimediacom.free.fr/Download/SSIM.rar) last AviSynth plugin for VSSIM in YV12


Average PSNR vs Overall PSNR

It's easy to increase artificially Average PSNR with Rate Control tweak. In certain case CBR (0% for variability) will be better than real VBR (100% for variability or constant quant). It's generaly not possible with Overall PSNR. Overall PSNR is very good to test Rate Control quality. If difference between Average PSNR and Overall PSNR is very high, "local quality difference" (difference between Pframe or Bframe for exemple) or "scene quality difference" (difference between low motion and high motion for exemple) will be too high and Rate Control for this codec not very good.

Here (http://multimediacom.free.fr/Download/CompareYV12.zip) last AviSynth plugin for Overall PSNR in YV12


Open your avs metric script with VirtualDub. Select file > preview input for run the test. Select file > close video file for obtain final result in log metric files. You must use these AviSynth type script for metric test:


# --> Source Opening <--
Source=ImageSource("C:\LossLess\images\%05d.png", start=1, end=15691, fps=24)
Source=ConvertToYV12(source, matrix="Rec709")

# --> Video Opening <--
video=Mpeg2Source("D:\...\MPEG2_24Mbps.d2v",idct=2)

# --> PSNR analysis <--
compareYV12(video,source,"YUV","OPSNR_MPEG2_24Mbps.log")


# --> Source Opening <--
Source=ImageSource("C:\LossLess\images\%05d.png", start=1, end=15691, fps=24)
Source=ConvertToYV12(source, matrix="Rec709")

# --> Video Opening <--
video=Mpeg2Source("D:\...\MPEG2_24Mbps.d2v",idct=2)

# --> SSIM analysis <--
return SSIM(source,video,"results.csv","SSIM_MPEG2_24Mbps.txt",lumimask=2)




C - Results

At this time here the best result (http://jfl1974.free.fr/HDDVD/Test_Metric.rar) ... but make better if you can ... :devil:

|--------------|---------|---------|----------|---------|---------|
| Codec | PProc | Bitrate | Size | OPSNR | SSIM 2 |
|--------------|---------|---------|----------|---------|---------|
| MPEG2 | No | 5999 | 479233 | 43.08 | 82.55 |
| VC-1 | No | 5994 | 479405 | 44.15 | 85.85 |
| H264 | No | 6007 | 479766 | 46.35 | 89.54 |
|--------------|---------|---------|----------|---------|---------|
| MPEG2 | No | 12001 | 958666 | 46.38 | 91.27 |
| VC-1 | No | 11987 | 957575 | 47.30 | 92.25 |
| H264 | No | 12008 | 959329 | 49.11 | 94.18 |
|--------------|---------|---------|----------|---------|---------|
| MPEG2 | No | 18002 | 1438146 | 47.17 | 93.26 |
| VC-1 | No | 18005 | 1438379 | 49.00 | 94.60 |
| H264 | No | 18009 | 1438862 | 50.53 | 95.74 |
|--------------|---------|---------|----------|---------|---------|
SSIM 0: Lumimask Off
SSIM 1: Lumimask On (Original Lumimask)
SSIM 2: Lumimask On (One2Tech Patch)



H264 vs VC1 vs MPEG2 at 6Mbps
http://jfl1974.free.fr/HDDVD/6Mbps_small.PNG (http://jfl1974.free.fr/HDDVD/6Mbps.PNG)

H264 vs VC1 vs MPEG2 at 12Mbps
http://jfl1974.free.fr/HDDVD/12Mbps_small.PNG (http://jfl1974.free.fr/HDDVD/12Mbps.PNG)

H264 vs VC1 vs MPEG2 at 18Mbps
http://jfl1974.free.fr/HDDVD/18Mbps_small.PNG (http://jfl1974.free.fr/HDDVD/18Mbps.PNG)

H264 at 6Mbps vs MPEG2 at 12 Mbps
http://jfl1974.free.fr/HDDVD/H264_6M_MPEG2_12M_small.PNG (http://jfl1974.free.fr/HDDVD/H264_6M_MPEG2_12M.PNG)

H264 at 12Mbps vs VC1 at 18 Mbps
http://jfl1974.free.fr/HDDVD/H264_12M_VC1_18M_small.PNG (http://jfl1974.free.fr/HDDVD/H264_12M_VC1_18M.PNG)


VC1 encoding by "Anonyme"
Encoding with vc1_enc.exe from VC1 PEP software
See Annexe for complete profil
Video stream are compliant with HDDVD "NTSC" profil

H264 encoding by "Sagittaire"
Encoding with x264.exe
See Annexe for complete profil
Video stream are compliant with HDDVD "NTSC" profil

MPEG2 encoding by "Sagittaire"
Encoding with mencoder.exe from libavcodec MPEG2
See Annexe for complete profil
Video stream are compliant with HDDVD "NTSC" profil


D - Conclusion

At this time for this movie

1) I use certainely the best MPEG2 encoder available in the area for metric: Libavcodec. The result is simply impressive for the old MPEG2 codec. With PP4 the result is even better. Libavcodec produce by far much better metric result here than all the other implementations (HCEnc, TMPGEnc, Mainconcept, Procoder ...).

2) VC1 is a very good surprise for me. For "low/medium bitrate" (high quantisation level) VC1 in unable to fight with H264 but for "High bitrate" the SSIM for VC1 is close to H264. MS say "VC1 is particulary optimized for high bitrate with high resolution" and it's true. Anyway MS claim that VC1 is able to produce the same metric that H264 but it's clearly false here.

3) H264 is simply the best for metric in all situation and particulary for "low bitrate" situation. Anyway differences between VC1 and H264 are not so high for low quantisation encoding.

4) VC1 and H264 at 6/20 Mbps (average bitrate/max bitrate) are unable to produce better quality than MPEG2 at 12/24 Mbps. H264 at 12/24 Mbps produce better quality than MPEG2 at 18/28 Mbps but not VC1. H264 at 12/24 Mbps is unable to produce better quality than VC1 at 18/28 Mbps. MicroSoft annonce (http://www.microsoft.com/windows/windowsmedia/howto/articles/vc1techoverview.aspx#VC1ComparedtoOtherCodecs) ratio between 1:2 and 1:3 for MPEG2 vs VC1 but it's really not the case here. The x264 particularly optimized in its development to obtain very good PSNR is not able to obtain a ratio of 2:1 with MPEG2 in this challenge.

5) Use constrained vbv rate control produce very inconstant quality and use overall or average metric results in this case is very difficult because complex part (motion and/or texture) can produce very bad results for metric. For better results it will be better to use metric graph for part by part comparison. If a codec want produce good overall/average metric here then the codec must have particulary good vbv Rate Control optimization.

IF YOU DON'T AGREE WITH THAT, TRY WITH YOUR ENCODER ... !!!

Sagittaire
1st August 2007, 13:06
Annexe - Update

05.09.2007 - New VC1 encoding
11.08.2007 - All the H264 streams are availables
05.08.2007 - Max adaptative bframe at 7 for VC1, H264 and MPEG2
04.08.2007 - Unlimited range vector for VC1
03.08.2007 - Encoding with libavcodec at 18 Mbps
02.08.2007 - Max adaptative bframe at 7 for VC1
01.08.2007 - Complete Test with x264, pep and libavcodec

will coming ... if you want ... !!!
All the developpers are wellcome ... !!?



Annexe - VBV Compliancy

H264 at 6Mbps, 12Mbps and 18Mbps
http://jfl1974.free.fr/HDDVD/Buffer_H264_6M_small.PNG (http://jfl1974.free.fr/HDDVD/Buffer_H264_6M.PNG) http://jfl1974.free.fr/HDDVD/Buffer_H264_12M_small.PNG (http://jfl1974.free.fr/HDDVD/Buffer_H264_12M.PNG) http://jfl1974.free.fr/HDDVD/Buffer_H264_18M_small.PNG (http://jfl1974.free.fr/HDDVD/Buffer_H264_18M.PNG)

VC1 at 6Mbps, 12Mbps and 18Mbps
http://jfl1974.free.fr/HDDVD/Buffer_VC1_6M_small.PNG (http://jfl1974.free.fr/HDDVD/Buffer_VC1_6M.PNG) http://jfl1974.free.fr/HDDVD/Buffer_VC1_12M_small.PNG (http://jfl1974.free.fr/HDDVD/Buffer_VC1_12M.PNG) http://jfl1974.free.fr/HDDVD/Buffer_VC1_18M_small.PNG (http://jfl1974.free.fr/HDDVD/Buffer_VC1_18M.PNG)

MPEG2 at 6Mbps, 12Mbps and 18Mbps
http://jfl1974.free.fr/HDDVD/Buffer_MPEG2_6M_small.PNG (http://jfl1974.free.fr/HDDVD/Buffer_MPEG2_6M.PNG) http://jfl1974.free.fr/HDDVD/Buffer_MPEG2_12M_small.PNG (http://jfl1974.free.fr/HDDVD/Buffer_MPEG2_12M.PNG) http://jfl1974.free.fr/HDDVD/Buffer_MPEG2_18M_small.PNG (http://jfl1974.free.fr/HDDVD/Buffer_MPEG2_18M.PNG)


+ Mux with Sonic SCA without underflow problem
+ Scan vbv with esa.exe for VC1 stream



Annexe - Profil for encoding

H264 Encoding Profil

@REM >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
@REM >> HDDVD - 1080p - 23.976 fps - progressive - PSNR optimisation
@REM >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>


@REM 6Mbps - 1080p24 - 3 pass insame profil

x264.exe --threads 1 --thread-input --keyint 14 --min-keyint 2 --vbv-maxrate 20000 --vbv-init 1.0 --vbv-bufsize 14745 --mvrange 511 --level 4.1 --nal-hrd --bframe 2 --bime --weightb --ref 1 --mixed-refs --direct auto --deblock -1:-1 --qpmin 1 --bitrate 6000 --pass 1 --stats "x264_stat.log" --qcomp 0.75 --ipratio 1.10 --pbratio 1.25 --partitions "all" --8x8dct --me "hex" --subme 5 --aud --sar 1:1 --progress -o NUL HDDVD-ntsc.avs

x264.exe --threads 1 --thread-input --keyint 14 --min-keyint 2 --vbv-maxrate 20000 --vbv-init 1.0 --vbv-bufsize 14745 --mvrange 511 --level 4.1 --nal-hrd --bframe 2 --b-rdo --bime --weightb --ref 3 --mixed-refs --direct auto --deblock -1:-1 --qpmin 1 --bitrate 6000 --pass 3 --stats "x264_stat.log" --qcomp 0.75 --ipratio 1.10 --pbratio 1.25 --partitions "all" --8x8dct --me "hex" --subme 6 --no-fast-pskip --no-dct-decimate --trellis 1 --aud --sar 1:1 --progress -o NUL HDDVD-ntsc.avs

x264.exe --threads 1 --thread-input --keyint 14 --min-keyint 2 --vbv-maxrate 20000 --vbv-init 1.0 --vbv-bufsize 14745 --mvrange 511 --level 4.1 --nal-hrd --bframe 2 --b-rdo --bime --weightb --ref 3 --mixed-refs --direct auto --deblock -1:-1 --qpmin 1 --bitrate 6000 --pass 3 --stats "x264_stat.log" --qcomp 0.75 --ipratio 1.10 --pbratio 1.25 --partitions "all" --8x8dct --me "umh" --subme 7 --no-fast-pskip --no-dct-decimate --trellis 2 --aud --sar 1:1 --progress -o 6000_3.h264 HDDVD-ntsc.avs




@REM 12Mbps - 1080p24 - 3 pass insame profil

x264.exe --threads 1 --thread-input --keyint 14 --min-keyint 2 --vbv-maxrate 24000 --vbv-init 1.0 --vbv-bufsize 14745 --mvrange 511 --level 4.1 --nal-hrd --bframe 2 --bime --weightb --ref 1 --mixed-refs --direct auto --deblock -1:-1 --qpmin 1 --bitrate 12000 --pass 1 --stats "x264_stat.log" --qcomp 0.50 --ipratio 1.10 --pbratio 1.25 --partitions "all" --8x8dct --me "hex" --subme 5 --aud --sar 1:1 --progress -o NUL HDDVD-ntsc.avs

x264.exe --threads 1 --thread-input --keyint 14 --min-keyint 2 --vbv-maxrate 24000 --vbv-init 1.0 --vbv-bufsize 14745 --mvrange 511 --level 4.1 --nal-hrd --bframe 2 --b-rdo --bime --weightb --ref 3 --mixed-refs --direct auto --deblock -1:-1 --qpmin 1 --bitrate 12000 --pass 3 --stats "x264_stat.log" --qcomp 0.50 --ipratio 1.10 --pbratio 1.25 --partitions "all" --8x8dct --me "hex" --subme 6 --no-fast-pskip --no-dct-decimate --trellis 1 --aud --sar 1:1 --progress -o 12000.h264 HDDVD-ntsc.avs

x264.exe --threads 1 --thread-input --keyint 14 --min-keyint 2 --vbv-maxrate 24000 --vbv-init 1.0 --vbv-bufsize 14745 --mvrange 511 --level 4.1 --nal-hrd --bframe 2 --b-rdo --bime --weightb --ref 3 --mixed-refs --direct auto --deblock -1:-1 --qpmin 1 --bitrate 12000 --pass 3 --stats "x264_stat.log" --qcomp 0.50 --ipratio 1.10 --pbratio 1.25 --partitions "all" --8x8dct --me "umh" --subme 7 --no-fast-pskip --no-dct-decimate --trellis 2 --aud --sar 1:1 --progress -o 12000.h264 HDDVD-ntsc.avs



@REM 18Mbps - 1080p24 - 3 pass insame profil

x264.exe --threads 1 --thread-input --keyint 14 --min-keyint 2 --vbv-maxrate 28000 --vbv-init 1.0 --vbv-bufsize 14745 --mvrange 511 --level 4.1 --nal-hrd --bframe 2 --bime --weightb --ref 1 --mixed-refs --direct auto --deblock -1:-1 --qpmin 1 --bitrate 18000 --pass 1 --stats "x264_stat.log" --qcomp 0.15 --ipratio 1.10 --pbratio 1.25 --partitions "all" --8x8dct --me "hex" --subme 5 --aud --sar 1:1 --progress -o NUL HDDVD-ntsc.avs

x264.exe --threads 1 --thread-input --keyint 14 --min-keyint 2 --vbv-maxrate 28000 --vbv-init 1.0 --vbv-bufsize 14745 --mvrange 511 --level 4.1 --nal-hrd --bframe 2 --b-rdo --bime --weightb --ref 3 --mixed-refs --direct auto --deblock -1:-1 --qpmin 1 --bitrate 18000 --pass 3 --stats "x264_stat.log" --qcomp 0.15 --ipratio 1.10 --pbratio 1.25 --partitions "all" --8x8dct --me "hex" --subme 6 --no-fast-pskip --no-dct-decimate --trellis 1 --aud --sar 1:1 --progress -o 18000.h264 HDDVD-ntsc.avs

x264.exe --threads 1 --thread-input --keyint 14 --min-keyint 2 --vbv-maxrate 28000 --vbv-init 1.0 --vbv-bufsize 14745 --mvrange 511 --level 4.1 --nal-hrd --bframe 2 --b-rdo --bime --weightb --ref 3 --mixed-refs --direct auto --deblock -1:-1 --qpmin 1 --bitrate 18000 --pass 3 --stats "x264_stat.log" --qcomp 0.15 --ipratio 1.10 --pbratio 1.25 --partitions "all" --8x8dct --me "umh" --subme 7 --no-fast-pskip --no-dct-decimate --trellis 2 --aud --sar 1:1 --progress -o 18000.h264 HDDVD-ntsc.avs



VC1 Encoding Profil

@REM >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
@REM >> HDDVD - 1080p - 29.97 fps - pulldown 3:2i - PSNR optimisation
@REM >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>



@REM 6Mbps - 1080p24 - 2 pass insame profil

vc1_enc.exe -i C:\Master\1920x1080.yuv -o Temp\1080p_1.vc1 -w 1920 -h 1080 -framerate 29.97 -frametype progressive -telecine 1 -addeos -rate 6000 -maxrate 20000 -buffer 1843200 -gopperiod 14 -mvrange 1 -bframes 1 -bframeposopt 1 -bdeltaqp AdaptiveWeak -loopfilter 1 -complexity 2 -chromasearch 4 -motionmatch 2 -perceptual 2 -dquantstrength 0 -favorinterlevel 3 -singlethread 1 -log Temp\stat_1.txt

vc1_enc.exe -i C:\Master\1920x1080.yuv -o Temp\1080p_4.vc1 -w 1920 -h 1080 -framerate 29.97 -frametype progressive -telecine 1 -addeos -rate 6000 -maxrate 20000 -buffer 1843200 -gopperiod 14 -mvrange 1 -bframes 1 -bframeposopt 1 -bdeltaqp AdaptiveWeak -loopfilter 1 -complexity 4 -chromasearch 2 -motionmatch 1 -perceptual 2 -dquantstrength 0 -favorinterlevel 3 -singlethread 1 -2pass Temp\stat_1.txt



@REM 12Mbps - 1080p24 - 2 pass insame profil

vc1_enc.exe -i C:\Master\1920x1080.yuv -o Temp\1080p_5.vc1 -w 1920 -h 1080 -framerate 29.97 -frametype progressive -telecine 1 -addeos -rate 12000 -maxrate 24000 -buffer 1843200 -gopperiod 14 -mvrange 1 -bframes 1 -bframeposopt 1 -bdeltaqp AdaptiveWeak -loopfilter 1 -complexity 2 -chromasearch 4 -motionmatch 2 -perceptual 2 -dquantstrength 0 -favorinterlevel 3 -singlethread 1 -log Temp\stat_2.txt

vc1_enc.exe -i C:\Master\1920x1080.yuv -o Temp\1080p_6.vc1 -w 1920 -h 1080 -framerate 29.97 -frametype progressive -telecine 1 -addeos -rate 12000 -maxrate 24000 -buffer 1843200 -gopperiod 14 -mvrange 1 -bframes 1 -bframeposopt 1 -bdeltaqp AdaptiveWeak -loopfilter 1 -complexity 4 -chromasearch 2 -motionmatch 1 -perceptual 2 -dquantstrength 0 -favorinterlevel 3 -singlethread 1 -2pass Temp\stat_2.txt



@REM 18Mbps - 1080p24 - 2 pass insame profil

vc1_enc.exe -i C:\Master\1920x1080.yuv -o Temp\1080p_7.vc1 -w 1920 -h 1080 -framerate 29.97 -frametype progressive -telecine 1 -addeos -rate 18250 -maxrate 28000 -buffer 1843200 -gopperiod 14 -mvrange 1 -bframes 1 -bframeposopt 1 -bdeltaqp AdaptiveWeak -loopfilter 1 -complexity 2 -chromasearch 4 -motionmatch 2 -perceptual 2 -dquantstrength 0 -favorinterlevel 3 -singlethread 1 -log Temp\stat_3.txt

vc1_enc.exe -i C:\Master\1920x1080.yuv -o Temp\1080p_8.vc1 -w 1920 -h 1080 -framerate 29.97 -frametype progressive -telecine 1 -addeos -rate 18250 -maxrate 28000 -buffer 1843200 -gopperiod 14 -mvrange 1 -bframes 1 -bframeposopt 1 -bdeltaqp AdaptiveWeak -loopfilter 1 -complexity 4 -chromasearch 2 -motionmatch 1 -perceptual 2 -dquantstrength 0 -favorinterlevel 3 -singlethread 1 -2pass Temp\stat_3.txt

Sagittaire
1st August 2007, 14:55
MPEG2 Encoding Profil

@REM >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
@REM >> HDDVD - 1080p - 23.976 fps - progressive - PSNR optimisation
@REM >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>


@echo off

@REM -----------------------------------------------------------------------------------------------
@REM
@REM 6 Mbps MPEG2 Mencoder Profil
@REM
@REM -----------------------------------------------------------------------------------------------



@REM >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
@REM >> Output and Input files
@REM >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

@REM Input file name
set E_SRC=HDDVD-ntsc.avs

@REM Output file name
set E_VID=MPEG2_6Mbps.m2v



@REM >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
@REM >> Rate control settings
@REM >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

@REM Set of bitrates
set E_BR=6000

@REM Set of max bitrates (use 9800 max for DVD compliant stream)
set VBV_MBR=20000

@REM Set of max buffer size (use 1835 max for DVD compliant stream)
set VBV_MBS=9781

@REM Set of ratio initial buffer occupency (0.9 is good value)
set VBV_IBO=0.9

@REM Set of first pass quantizer (2 is good value for high bitrate)
set E_IQ=6

@REM Set of min quantizer (1 is good value for high bitrate)
set E_MinQ=2

@REM Set of max quantizer (9 is good value for high bitrate)
set E_MaxQ=31

@REM Set of quantizer variability [0.00;1.00] (0.75 is good value)
set E_VQ=0.75

@REM Set of inter quantizer masking [0.00;1.00] (0.00-0.50 is good interval)
set E_PMSK=0.10



@REM >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
@REM >> GOP structure
@REM >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

@REM Set of max interval KFrame (use 15 for DVD PAL and 18 for DVD NTSC)
set E_MIK=14

@REM Set of max BFrames [0;4] (use 2 max for DVD compliant stream)
set E_MBF=2

@REM Set of Adaptative BFrames [0;2] (desactived is 0, fast is 1 and slow is 2)
set E_ABF=2

@REM Set of Slow Adaptative BFrames Refine [0;10] (0 is full search, higher is faster)
set E_SBF=1



@REM >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
@REM >> Motion estimation settings
@REM >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

@REM Set of ME range [0;9999] (use 128 for DVD compliant stream)
set E_RME=128

@REM Set of Rate Distortion Optimisation [0;2] (2 is the best)
set E_RDO=2

@REM Set of diamond size [-99;6] (negatives values are adaptative diamond)
set E_DIA=-4

@REM Set of comparison function for ME [0;2000] (0 is SAD, 1 is SSE, 2 is SADT, +256 for chroma ME)
set E_CMP=2

@REM Set of previous ME [0;2]
set E_PME=2

@REM Set of BFrame refinements [0;4] (Bframe Quality, 4 is best quality)
set E_BFR=4



@REM >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
@REM >> VUI settings
@REM >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

@REM Display Aspect Ratio (4/3 or 16/9 for DVD compliant stream)
set E_DAR=16/9

@REM DC precision [8;10]
set E_DC=8

@REM Framerate (use 25 for PAL and 24000/1001 or 30000/1001 for NTSC)
set E_FPS=24000/1001

@REM Set intra matrix (use coef > 8 for DVD compliant stream with mencoder)
set E_INTRA=8,16,16,16,17,18,21,24,16,16,16,16,17,19,22,25,16,16,17,18,20,22,25,29,16,16,18,21,24,27,31,36,17,17,20,24,30,35,
41,47,18,19,22,27,35,44,54,65,21,22,25,31,41,54,70,88,24,25,29,36,47,65,88,115

@REM Set inter matrix (use coef > 8 for DVD compliant stream with mencoder)
set E_INTER=16,17,18,18,19,20,21,22,17,18,18,18,19,20,21,23,18,18,18,19,20,22,24,26,18,18,19,20,22,24,27,30,19,19,20,22,25,28,
32,37,20,20,22,24,28,34,40,46,21,21,24,27,32,40,48,58,22,23,26,30,37,46,58,74



@REM >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
@REM >> Mencoder CLI
@REM >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

ECHO.---------------------------------------------------------------
ECHO.First pass ...
ECHO.---------------------------------------------------------------
mencoder.exe -priority idle %E_SRC% -o NUL -ovc lavc -ofps %E_FPS% -passlogfile MPEG2_6Mbps.log -lavcopts vcodec=mpeg2video
:vpass=1:vqscale=%E_IQ%:keyint=%E_MIK%:vqcomp=%E_VQ%:vmax_b_frames=%E_MBF%:vb_strategy=%E_ABF%
:brd_scale=%E_SBF%:vb_qfactor=1.25:vb_qoffset=0.00:vi_qfactor=1.00:vi_qoffset=0.00:me_range=%E_RME%:preme=%E_PME%
:dia=1:predia=1:mbd=%E_RDO%:precmp=0:cmp=0:subcmp=0:mv0:last_pred=0:trell:cbp:dc=%E_DC%:psnr:aspect=%E_DAR%
:inter_matrix=%E_INTER%:intra_matrix=%E_INTRA%:scplx_mask=%E_PMSK%:vqmin=%E_MinQ%:lmin=%E_MinQ%:mblmin=%E_MinQ%
:vqmax=%E_MaxQ%:lmax=%E_MaxQ%:mblmax=%E_MaxQ%:vqblur=%E_VQ%:vrc_strategy=0 -of rawvideo -ffourcc MPG2


@REM @CLS

ECHO.---------------------------------------------------------------
ECHO.Second pass ...
ECHO.---------------------------------------------------------------
mencoder.exe -priority idle %E_SRC% -o NUL -ovc lavc -ofps %E_FPS% -passlogfile MPEG2_6Mbps.log -lavcopts vcodec=mpeg2video
:vpass=3:vbitrate=%E_BR%:keyint=%E_MIK%:vqcomp=%E_VQ%:vmax_b_frames=%E_MBF%:vb_qfactor=1.25:vb_qoffset=0.00
:vi_qfactor=1.00:vi_qoffset=0.00:me_range=%E_RME%:preme=%E_PME%:dia=1:predia=1:mbd=%E_RDO%:precmp=0:cmp=0:subcmp=0
:mv0:last_pred=0:trell:cbp:qprd:dc=%E_DC%:psnr:aspect=%E_DAR%:inter_matrix=%E_INTER%:intra_matrix=%E_INTRA%
:scplx_mask=%E_PMSK%:vqmin=%E_MinQ%:lmin=%E_MinQ%:mblmin=%E_MinQ%:vqmax=%E_MaxQ%:lmax=%E_MaxQ%:mblmax=%E_MaxQ%
:vqblur=%E_VQ%:vrc_strategy=0 -of rawvideo -ffourcc MPG2


@REM @CLS

ECHO.---------------------------------------------------------------
ECHO.Last pass ...
ECHO.---------------------------------------------------------------
mencoder.exe -priority idle %E_SRC% -o %E_VID% -ovc lavc -ofps %E_FPS% -passlogfile MPEG2_6Mbps.log -lavcopts vcodec=mpeg2video
:vpass=3:vbitrate=%E_BR%:keyint=%E_MIK%:vqcomp=%E_VQ%:vmax_b_frames=%E_MBF%:bidir_refine=%E_BFR%:vb_qfactor=1.25
:vb_qoffset=0.00:vi_qfactor=1.00:vi_qoffset=0.00:me_range=%E_RME%:preme=%E_PME%:dia=%E_DIA%:predia=%E_DIA%:mbd=%E_RDO%
:precmp=%E_CMP%:cmp=%E_CMP%:subcmp=%E_CMP%:mv0:last_pred=3:trell:cbp:qprd:dc=%E_DC%:psnr:aspect=%E_DAR%
:inter_matrix=%E_INTER%:intra_matrix=%E_INTRA%:scplx_mask=%E_PMSK%:vqmin=%E_MinQ%:lmin=%E_MinQ%:mblmin=%E_MinQ%
:vqmax=%E_MaxQ%:lmax=%E_MaxQ%:mblmax=%E_MaxQ%:vqblur=%E_VQ%:vrc_maxrate=%VBV_MBR%:vrc_buf_size=%VBV_MBS%
:vrc_strategy=0 -of rawvideo -ffourcc MPG2

Inventive Software
1st August 2007, 17:02
Frame rate in the AviSynth script should be 24 FPS, not 23.976. Otherwise it would be out of sync. ;)

arfster
1st August 2007, 17:24
Might it be worth expanding this to include Bluray? A 24mbit/peak40 or thereabouts.

Might let mpeg2 stretch its legs a bit - after all, bandwidith is the reason nobody ever did mpeg2 HDDVD discs. Similarly, does VC1 catch up to H264 at the very highest bitrates?

Dark Shikari
1st August 2007, 17:48
The reason VC-1 does well at high bitrates is because the higher the bitrate, the less useful modern encoding features are, because more and more often new blocks have to be encoded rather than old blocks referenced. So all the encoders, regardless of how good they are, slowly converge on each other. This is also why at low bitrates H.264 has such an extraordinary advantage, even more than shown in these tests (1.5-2.5 megabits for 1080p).

This is also why MPEG-2 is much closer to H.264/VC-1 at high bitrates than at low bitrates, of course.

In about 10 hours my download of Elephant's Dream will be done and I'll encode some new H.264 versions for you with my specially modified version of x264.

Sagittaire
1st August 2007, 19:52
The reason VC-1 does well at high bitrates is because the higher the bitrate, the less useful modern encoding features are, because more and more often new blocks have to be encoded rather than old blocks referenced. So all the encoders, regardless of how good they are, slowly converge on each other. This is also why at low bitrates H.264 has such an extraordinary advantage, even more than shown in these tests (1.5-2.5 megabits for 1080p).This is also why MPEG-2 is much closer to H.264/VC-1 at high bitrates than at low bitrates, of course.

Yes but for me the real surprise for this test is the MPEG2 result with Libavcodec.


In about 10 hours my download of Elephant's Dream will be done and I'll encode some new H.264 versions for you with my specially modified version of x264.

Don't forget the hrd patch because respect the vbv compliancy is really a problem for x264 in vbr mode. With hrd patch you can scan the vbv compliancy. If you don't want problem use my profil encoding and particulary the same qcomp for your test.
https://sourceforge.net/project/showfiles.php?group_id=138139

Dethis
1st August 2007, 20:26
Might it be worth expanding this to include Bluray? A 24mbit/peak40 or thereabouts.
.........

?

http://www.w6rz.net/

PuzZLeR
1st August 2007, 20:37
Great work Sagittaire... I can see no subjective analysis whatsoever, and hopefully it's conclusive: H.264 is the winner.

But just to add, and for the moment, let’s be fair. There are some VC-1 "advantages" after all that were and were not tested here. Maybe there is a benefit to VC-1. After all, it does have its “advantages” according to Microsoft et al:

-VC-1 is better at higher bitrates:
Ok, maybe. Even though this test was very close, let's assume as such for the moment for "some tests" at very high bitrates for "some clips". Ok, great. Then again, so can DivX if you give it enough juice. I'm not too familiar with HD rez, but I know that to most eyes, for SD resolutions, there is no difference between any ASP codec and H.264 over 6000kbps, so why should anybody care about this VC-1 feature, even for HD? (If it exists.)

There are some other "strengths" of VC-1 that were not tested (fully) here, which will be challenged and should be noted:

-VC-1 supports FGM:
VC-1 has the early advantage here but only in implementations. FGM is part of the H.264 standard too, and a bit slow out of the gate (maybe due to the deblocking canceling it out?) but I can see that that is being developed better as we speak. Maybe a future test real soon?

-VC-1 retains interlacing more efficiently:
So, in an age that has better storage capacities and better video compression technology, better streaming, wonderful de-interlacers in the encoding and decoding realm, to rid us finally of this horrid picture format that was developed with 1930s technology for the then slower signals, and other purposes that are no longer necessary and for television sets that will soon no longer be manufactured, Microsoft makes the bold move to make sure it’s actually something we need to keep instead of just letting it quietly lapse into obsolete Heaven.

That’s like Microsoft releasing a drug that helps you COPE with stomach-ache when there are other wonderful products on the market that CURE it. What good does that do?

In fact, the world would benefit today with a popular codec that would actually be HORRIBLE at retaining interlacing.

Being on the H.264 camp, I'm actually cheering for VC-1 to win that test.

-Faster processing:
This too is a joke and pure propaganda, and a half-witted effort for leverage to compete and adopt an early market. It may even be a bit of short-sightedness on the part of Microsoft. Let me repeat from a previous post and to strengthen what Dark Shikara and DeaththeSheep said there too. This is what Baseline is with H.264. As hardware gets better and better, and it will, this “advantage” will be reduced to a 0.000000001% time difference. For what? Lower quality video? They can get away with it today with dinky-toy cell phones from 2007, but the law of diminishing returns will definitely apply and render this advantage useless soon enough.

VC-1 can only go so far with a standard only as good as a suped-up ASP codec. Even H.264’s Baseline Profile, which as everyone will agree – will also be useless in the future as well.

Without CABAC, MRFs, 4:4:4 color space, chroma etc, VC-1 is just as good as H.264:
Take away Wayne Gretzky's goals/assists and he would've been just as good as average players. Take away sports cars' vital engine parts for speed and they'd be just as fast as economy cars. Take away a recipe's best ingredients and its cooking techniques and it would be just as good as an average meal...

Congratulations to H.264. The fat lady has sung.

akupenguin
1st August 2007, 21:27
set E_MinQ=2
Did you leave that for 18mbit too? no wonder it saturated.

Golgot13
1st August 2007, 21:46
-VC-1 supports FGM:
VC-1 has the early advantage here but only in implementations.

In HD DVD specification (read HD DVD White), there is a specific FGM option from Thomson.
It can optimize the film grain for H264: it is really first development of FGM for HD DVD use.
And there is a good developpment from CTC to optimize the film grain on CinemaCraft HD express.


-VC-1 retains interlacing more efficiently:

There is lot of option in H264 : PAFF, MBAFF and interlaced....


Without CABAC, MRFs, 4:4:4 color space, chroma etc, VC-1 is just as good as H.264:

Same VC1 HD DVD without preprocessing video, VC1 at 18Mbps on HD DVD is just
as good as MPEG2 at 30Mbps on first BD title.



H.264. The fat lady has sung.

VC1 will be a lady from some book (like Guinness)



Golgot13

Sagittaire
1st August 2007, 21:50
Did you leave that for 18mbit too? no wonder it saturated.

Well I try that with average at 18 Mbps and max at 28 Mbps:

- Min quantizer at 1
- Custom quant matrix with half coef
- encoding without bframe
- Min quantizer at 1 + CQM with half coef + encoding without bframe

Here "half matrix" with low coef:
set E_INTRA=8,8,8,8,9,10,11,12,8,8,8,8,9,11,11,13,8,8,9,9,10,12,14,15,8,8,9,10,12,14,16,18,9,9,10,12,15,17,20,23,10,11,12,14,17,22,
27,33,11,11,14,16,20,27,35,44,12,13,15,18,23,33,44,64
set E_INTER=8,9,10,10,11,11,12,12,9,10,10,10,11,11,12,12,10,10,10,11,11,12,12,13,10,10,11,11,12,12,13,15,11,11,11,12,13,14,15,17,
11,11,12,12,14,16,18,22,12,12,12,13,15,18,23,27,12,12,13,15,17,22,27,34

... ect ect ect

But I find finaly that problem is in fact vbv parameters (vrc_maxrate and vrc_buf_size). Mencoder with these parameters actived says always:"[mpeg2video @ 00C2F900][lavc rc] Using all of requested bitrate is not necessary for this video with these parameters" and make encoding at ~16 Mbps. I have in practice quantizer saturation for easy part and vbv saturation for complex part for mencoder Rate Control. It's strange because CQM at half coef should solve this problem because encoding at 12 Mbps (max at 24 Mbps) produce the good bitrate with the initial matrix. In fact it's perhaps not a quantizer saturation (libavcodec can potentially produce stream with the good bitrate I think) but certainely a RC limitation but I don't know how solve that.


0, 4.00, 31183, 1.#J, 1.#J, 1.#J, 1.#J I
1, 4.00, 834, 1.#J, 1.#J, 1.#J, 1.#J P
2, 4.00, 834, 1.#J, 1.#J, 1.#J, 1.#J P
3, 4.00, 834, 1.#J, 1.#J, 1.#J, 1.#J P
4, 4.00, 834, 1.#J, 1.#J, 1.#J, 1.#J P
5, 4.00, 834, 1.#J, 1.#J, 1.#J, 1.#J P
6, 4.00, 834, 1.#J, 1.#J, 1.#J, 1.#J P
7, 4.00, 834, 1.#J, 1.#J, 1.#J, 1.#J P
8, 3.00, 834, 1.#J, 1.#J, 1.#J, 1.#J P
9, 3.55, 33147, 59.08, 65.00, 60.88, 59.95 I
10, 1.78, 20116, 61.12, 61.95, 62.96, 61.51 B
11, 3.26, 36332, 57.17, 59.67, 58.63, 57.73 I
12, 2.89, 43777, 55.39, 57.30, 57.19, 55.93 I
13, 1.53, 27239, 56.30, 57.29, 57.58, 56.64 B <--- low quantizer saturation
14, 1.77, 39873, 55.39, 56.92, 56.63, 55.81 P
15, 1.69, 42519, 54.88, 56.48, 56.50, 55.36 P
16, 1.57, 44992, 54.48, 55.91, 56.44, 54.97 P
17, 1.55, 47008, 54.10, 55.55, 56.02, 54.59 P
18, 1.82, 65977, 53.40, 54.88, 55.73, 53.94 P
19, 1.51, 31782, 53.38, 54.53, 55.29, 53.83 B
20, 1.51, 52933, 53.22, 54.65, 55.58, 53.76 P
21, 1.61, 74862, 52.80, 54.30, 55.14, 53.34 P
22, 1.65, 31645, 52.62, 53.82, 54.90, 53.12 B
23, 1.54, 80922, 52.39, 53.87, 54.88, 52.95 P
24, 1.55, 32582, 52.17, 53.39, 54.62, 52.69 B
25, 2.32, 99427, 51.69, 53.56, 54.63, 52.35 I
26, 1.57, 29629, 51.85, 53.07, 54.38, 52.38 B
27, 1.44, 68088, 51.91, 53.42, 54.59, 52.50 P
28, 1.50, 68144, 51.72, 53.05, 54.31, 52.27 P
29, 1.49, 70494, 51.59, 52.83, 54.18, 52.13 P
30, 1.47, 72974, 51.50, 52.60, 54.04, 52.01 P
31, 1.55, 101527, 51.37, 52.56, 53.79, 51.88 P
32, 1.73, 30125, 51.01, 51.86, 53.62, 51.49 B
33, 1.45, 75997, 51.24, 52.25, 53.61, 51.72 P
34, 1.50, 108794, 51.14, 52.25, 53.38, 51.62 P
35, 1.69, 30209, 50.76, 51.52, 53.16, 51.21 B
36, 1.46, 81552, 50.99, 51.92, 53.28, 51.45 P
37, 1.51, 114968, 50.95, 51.92, 53.08, 51.40 P
38, 1.57, 31046, 50.62, 51.25, 52.95, 51.04 B
39, 2.02, 162715, 50.35, 51.86, 53.19, 50.95 I
40, 1.36, 27683, 50.46, 51.45, 52.95, 50.95 B
41, 1.44, 88836, 50.61, 51.74, 53.16, 51.13 P
42, 1.52, 121410, 50.55, 51.61, 52.84, 51.03 P
43, 1.62, 30797, 50.20, 50.92, 52.70, 50.65 B
44, 1.48, 127323, 50.48, 51.46, 52.65, 50.93 P
45, 1.64, 30361, 50.12, 50.78, 52.53, 50.55 B
46, 1.45, 132841, 50.37, 51.28, 52.43, 50.80 P
47, 1.54, 31324, 50.00, 50.68, 52.36, 50.43 B
48, 1.40, 98395, 50.29, 51.05, 52.34, 50.70 P
49, 1.13, 70705, 50.49, 51.18, 52.46, 50.88 P
50, 1.13, 80058, 50.50, 51.21, 52.49, 50.89 P
51, 1.17, 27760, 50.18, 50.98, 52.39, 50.61 B
52, 2.13, 186547, 49.67, 51.17, 52.44, 50.26 I
53, 2.12, 19938, 49.72, 51.15, 52.44, 50.30 B
54, 1.16, 83719, 50.35, 51.39, 52.63, 50.82 P
55, 2.10, 18655, 49.67, 51.18, 52.48, 50.27 B
56, 1.20, 73472, 50.35, 51.38, 52.64, 50.83 P
57, 2.14, 18273, 49.77, 51.18, 52.53, 50.35 B
58, 1.20, 72770, 50.36, 51.33, 52.62, 50.83 P
59, 2.05, 18331, 49.74, 51.12, 52.47, 50.31 B
60, 1.19, 71921, 50.33, 51.30, 52.57, 50.79 P
61, 2.10, 18270, 49.73, 51.07, 52.43, 50.29 B
62, 1.18, 71177, 50.32, 51.23, 52.51, 50.76 P
63, 1.16, 23734, 49.96, 50.99, 52.34, 50.44 B
64, 1.25, 71547, 50.27, 51.15, 52.43, 50.71 P
65, 1.34, 23732, 49.91, 50.93, 52.27, 50.39 B
66, 2.24, 177697, 49.47, 51.07, 52.41, 50.09 I
67, 2.15, 18635, 49.57, 51.05, 52.32, 50.16 B
68, 1.21, 78153, 50.08, 51.23, 52.55, 50.59 P
69, 2.10, 18965, 49.45, 51.07, 52.43, 50.08 B
70, 1.24, 71469, 50.07, 51.20, 52.54, 50.58 P
71, 2.15, 18392, 49.50, 51.03, 52.47, 50.12 B
72, 1.22, 72518, 50.08, 51.16, 52.52, 50.58 P
73, 2.10, 18839, 49.46, 50.95, 52.38, 50.07 B
74, 1.24, 58520, 50.02, 51.04, 52.45, 50.51 P
75, 1.25, 60292, 49.99, 50.94, 52.36, 50.46 P
76, 1.27, 61036, 49.97, 50.86, 52.26, 50.42 P
77, 1.26, 72544, 49.96, 50.87, 52.28, 50.42 P
78, 2.09, 19170, 49.31, 50.66, 52.10, 49.88 B
79, 2.29, 175574, 49.25, 50.89, 52.28, 49.89 I

..............................................................

652, 2.43, 119601, 51.25, 53.94, 52.12, 51.74 I
653, 1.61, 15561, 51.48, 54.00, 52.17, 51.92 P
654, 1.96, 22944, 51.42, 53.98, 52.15, 51.88 P
655, 1.81, 31820, 51.39, 53.99, 52.14, 51.85 P
656, 1.79, 36303, 51.35, 53.99, 52.12, 51.82 P
657, 2.17, 54913, 51.47, 54.16, 52.39, 51.97 P
658, 2.17, 62572, 51.37, 54.03, 52.15, 51.85 P
659, 2.00, 52374, 51.27, 53.96, 52.04, 51.75 P
660, 1.84, 43378, 51.25, 53.94, 51.99, 51.73 P
661, 2.01, 49989, 51.22, 53.95, 51.97, 51.70 P
662, 2.09, 55642, 51.27, 53.84, 51.99, 51.73 P
663, 1.97, 53431, 51.27, 53.82, 51.96, 51.72 P
664, 2.06, 59571, 51.21, 53.82, 51.88, 51.67 P
665, 2.07, 70679, 51.19, 53.93, 51.94, 51.67 P
666, 2.49, 125132, 51.18, 53.97, 52.10, 51.69 I
667, 1.99, 66429, 51.16, 53.80, 51.91, 51.63 P
668, 2.00, 58012, 51.17, 53.78, 51.86, 51.62 P
669, 1.91, 60529, 51.19, 53.82, 51.86, 51.65 P
670, 2.32, 77395, 51.66, 54.10, 52.49, 52.12 P
671, 2.32, 102572, 51.13, 53.76, 51.92, 51.61 P
672, 2.24, 83053, 51.14, 53.59, 51.84, 51.58 P
673, 2.09, 76772, 51.19, 53.67, 51.95, 51.64 P
674, 2.17, 83727, 51.23, 53.78, 51.98, 51.69 P
675, 2.20, 83794, 51.30, 53.80, 51.99, 51.75 P
676, 2.12, 68112, 51.38, 53.89, 52.07, 51.83 P
677, 2.10, 71782, 51.36, 53.87, 52.04, 51.80 P
678, 1.99, 66019, 51.30, 53.84, 52.01, 51.75 P
679, 2.02, 71964, 51.33, 53.83, 51.94, 51.76 P
680, 2.55, 128203, 51.29, 53.85, 52.05, 51.75 I
681, 2.12, 78042, 51.32, 53.91, 51.95, 51.76 P
682, 2.05, 69361, 51.32, 53.65, 52.04, 51.75 P
683, 2.15, 71104, 51.28, 53.66, 52.00, 51.72 P
684, 2.40, 90456, 51.90, 54.09, 52.73, 52.33 P
685, 2.33, 106514, 51.13, 53.53, 51.88, 51.57 P
686, 2.08, 86962, 51.14, 53.55, 51.78, 51.57 P
687, 2.16, 93855, 51.13, 53.61, 51.72, 51.56 P
688, 2.21, 94923, 51.22, 53.75, 51.89, 51.66 P
689, 2.25, 92942, 51.28, 53.77, 51.96, 51.72 P
690, 2.29, 95875, 51.29, 53.76, 51.99, 51.74 P
691, 2.47, 113000, 51.42, 53.85, 52.26, 51.88 P
692, 2.86, 351931, 45.51, 50.70, 48.41, 46.47 I
693, 2.06, 191762, 46.60, 51.35, 49.18, 47.49 P
694, 2.38, 184384, 46.07, 50.72, 48.52, 46.94 P
695, 1.60, 201224, 46.78, 50.84, 48.87, 47.56 P
696, 3.11, 83864, 45.02, 50.01, 47.74, 45.95 B <--- vbv Rate Control saturation
697, 4.51, 269827, 42.56, 49.18, 46.04, 43.65 I
698, 3.49, 74549, 44.57, 49.93, 47.39, 45.53 B
699, 1.47, 294604, 47.19, 50.89, 49.04, 47.91 P
700, 2.54, 121299, 46.57, 50.78, 48.67, 47.37 P
701, 2.19, 177560, 46.87, 50.92, 48.87, 47.64 P
702, 3.38, 93627, 44.70, 50.01, 47.48, 45.65 B
703, 2.54, 149302, 46.68, 51.08, 48.83, 47.50 P
704, 2.73, 179867, 46.29, 51.04, 48.83, 47.17 P
705, 2.86, 201532, 45.52, 50.45, 48.03, 46.42 P
706, 2.63, 178208, 45.56, 50.49, 48.10, 46.46 P
707, 2.90, 177841, 45.75, 50.70, 48.31, 46.65 P
708, 6.72, 178265, 41.10, 48.52, 45.20, 42.28 I
709, 4.19, 152399, 42.35, 48.84, 45.75, 43.42 P
710, 4.21, 139688, 42.47, 48.86, 45.77, 43.53 P
711, 5.17, 102597, 41.87, 48.56, 45.30, 42.96 P
712, 3.84, 146217, 43.92, 49.91, 47.03, 44.94 P
713, 4.20, 176606, 43.43, 49.33, 46.48, 44.44 P
714, 6.00, 118947, 41.88, 48.73, 45.50, 43.00 P
715, 6.04, 127393, 41.21, 48.12, 44.79, 42.32 P
716, 5.74, 129653, 41.08, 48.03, 44.72, 42.20 P
717, 5.87, 134357, 40.89, 47.90, 44.54, 42.01 P
718, 5.96, 137014, 40.81, 47.88, 44.44, 41.94 P
719, 6.13, 135191, 41.03, 48.03, 44.64, 42.15 P
720, 5.86, 134757, 40.92, 47.74, 44.49, 42.03 P
721, 2.48, 100787, 52.82, 56.39, 54.80, 53.55 I
722, 1.93, 80482, 53.70, 56.83, 55.41, 54.35 P

Sagittaire
1st August 2007, 22:11
Here my complete profil for 18 Mbps encoding:

@echo off

@REM -----------------------------------------------------------------------------------------------
@REM
@REM 18Mbps MPEG2 Mencoder Profil
@REM
@REM -----------------------------------------------------------------------------------------------



@REM >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
@REM >> Output and Input files
@REM >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

@REM Input file name
set E_SRC=HDDVD-ntsc.avs

@REM Output file name
set E_VID=MPEG2_18Mbps.m2v



@REM >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
@REM >> Rate control settings
@REM >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

@REM Set of bitrates
set E_BR=18000000

@REM Set of max bitrates (use 9800 max for DVD compliant stream)
set VBV_MBR=28000

@REM Set of max buffer size (use 1835 max for DVD compliant stream)
set VBV_MBS=9781

@REM Set of ratio initial buffer occupency (0.9 is good value)
set VBV_IBO=0.9

@REM Set of first pass quantizer (2 is good value for high bitrate)
set E_IQ=3

@REM Set of min quantizer (1 is good value for high bitrate)
set E_MinQ=1

@REM Set of max quantizer (9 is good value for high bitrate)
set E_MaxQ=31

@REM Set of quantizer variability [0.00;1.00] (0.75 is good value)
set E_VQ=0.25

@REM Set of inter quantizer masking [0.00;1.00] (0.00-0.50 is good interval)
set E_PMSK=0.10



@REM >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
@REM >> GOP structure
@REM >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

@REM Set of max interval KFrame (use 15 for DVD PAL and 18 for DVD NTSC)
set E_MIK=14

@REM Set of max BFrames [0;4] (use 2 max for DVD compliant stream)
set E_MBF=2

@REM Set of Adaptative BFrames [0;2] (desactived is 0, fast is 1 and slow is 2)
set E_ABF=2

@REM Set of Slow Adaptative BFrames Refine [0;10] (0 is full search, higher is faster)
set E_SBF=1



@REM >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
@REM >> Motion estimation settings
@REM >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

@REM Set of ME range [0;9999] (use 128 for DVD compliant stream)
set E_RME=128

@REM Set of Rate Distortion Optimisation [0;2] (2 is the best)
set E_RDO=2

@REM Set of diamond size [-99;6] (negatives values are adaptative diamond)
set E_DIA=-4

@REM Set of comparison function for ME [0;2000] (0 is SAD, 1 is SSE, 2 is SADT, +256 for chroma ME)
set E_CMP=2

@REM Set of previous ME [0;2]
set E_PME=2

@REM Set of BFrame refinements [0;4] (Bframe Quality, 4 is best quality)
set E_BFR=4



@REM >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
@REM >> VUI settings
@REM >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

@REM Display Aspect Ratio (4/3 or 16/9 for DVD compliant stream)
set E_DAR=16/9

@REM DC precision [8;10]
set E_DC=8

@REM Framerate (use 25 for PAL and 24000/1001 or 30000/1001 for NTSC)
set E_FPS=24000/1001

@REM Set intra matrix (use coef > 8 for DVD compliant stream with mencoder)
set E_INTRA=8,16,16,16,17,18,21,24,16,16,16,16,17,19,22,25,16,16,17,18,20,22,25,29,16,16,18,21,24,27,31,36,
17,17,20,24,30,35,41,47,18,19,22,27,35,44,54,65,21,22,25,31,41,54,70,88,24,25,29,36,47,65,88,115

@REM Set inter matrix (use coef > 8 for DVD compliant stream with mencoder)
set E_INTER=16,17,18,18,19,20,21,22,17,18,18,18,19,20,21,23,18,18,18,19,20,22,24,26,18,18,19,20,22,24,27,30,
19,19,20,22,25,28,32,37,20,20,22,24,28,34,40,46,21,21,24,27,32,40,48,58,22,23,26,30,37,46,58,76



@REM >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
@REM >> Mencoder CLI
@REM >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

ECHO.---------------------------------------------------------------
ECHO.First pass ...
ECHO.---------------------------------------------------------------
@REM mencoder.exe -priority idle %E_SRC% -o NUL -ovc lavc -ofps %E_FPS% -passlogfile MPEG2_18Mbps.log -lavcopts vcodec=mpeg2video
:vpass=1:vqscale=%E_IQ%:keyint=%E_MIK%:vqcomp=0.0:vmax_b_frames=%E_MBF%:vb_strategy=%E_ABF%:brd_scale=%E_SBF%
:vb_qfactor=1.25:vb_qoffset=0.00:vi_qfactor=1.00:vi_qoffset=0.00:me_range=%E_RME%:preme=%E_PME%:dia=1:predia=1:mbd=%E_RDO%
:precmp=0:cmp=0:subcmp=0:mv0:last_pred=0:dc=%E_DC%:psnr:aspect=%E_DAR%:inter_matrix=%E_INTER%:intra_matrix=%E_INTRA%
:scplx_mask=%E_PMSK%:vqmin=%E_MinQ%:lmin=%E_MinQ%:mblmin=%E_MinQ%:vqmax=%E_MaxQ%:lmax=%E_MaxQ%:mblmax=%E_MaxQ%
:vrc_strategy=0 -of rawvideo -ffourcc MPG2


@REM @CLS

ECHO.---------------------------------------------------------------
ECHO.Second pass ...
ECHO.---------------------------------------------------------------
@REM mencoder.exe -priority idle %E_SRC% -o NUL -ovc lavc -ofps %E_FPS% -passlogfile MPEG2_18Mbps.log -lavcopts vcodec=mpeg2video
:vpass=3:vbitrate=%E_BR%:keyint=%E_MIK%:vqcomp=%E_VQ%:vmax_b_frames=%E_MBF%:vb_qfactor=1.25:vb_qoffset=0.00
:vi_qfactor=1.00:vi_qoffset=0.00:me_range=%E_RME%:preme=%E_PME%:dia=1:predia=1:mbd=%E_RDO%:precmp=0
:cmp=0:subcmp=0:mv0:last_pred=0:trell:cbp:qprd:dc=%E_DC%:psnr:aspect=%E_DAR%:inter_matrix=%E_INTER%:intra_matrix=%E_INTRA%
:scplx_mask=%E_PMSK%:vqmin=%E_MinQ%:lmin=%E_MinQ%:mblmin=%E_MinQ%:vqmax=%E_MaxQ%:lmax=%E_MaxQ%:mblmax=%E_MaxQ%
:vrc_strategy=0 -of rawvideo -ffourcc MPG2


@REM @CLS

ECHO.---------------------------------------------------------------
ECHO.Last pass ...
ECHO.---------------------------------------------------------------
mencoder.exe -priority idle %E_SRC% -o %E_VID% -ovc lavc -ofps %E_FPS% -passlogfile MPEG2_18Mbps.log -lavcopts vcodec=mpeg2video
:vpass=2:vbitrate=%E_BR%:keyint=%E_MIK%:vqcomp=%E_VQ%:vmax_b_frames=%E_MBF%:bidir_refine=%E_BFR%
:vb_qfactor=1.25:vb_qoffset=0.00:vi_qfactor=1.00:vi_qoffset=0.00:me_range=%E_RME%:preme=%E_PME%:dia=%E_DIA%
:predia=%E_DIA%:mbd=%E_RDO%:precmp=%E_CMP%:cmp=%E_CMP%:subcmp=%E_CMP%:mv0
:last_pred=3:trell:cbp:qprd:dc=%E_DC%:psnr:aspect=%E_DAR%:inter_matrix=%E_INTER%:intra_matrix=%E_INTRA%
:scplx_mask=%E_PMSK%:naq:vqmin=%E_MinQ%:lmin=%E_MinQ%:mblmin=%E_MinQ%:vqmax=%E_MaxQ%
:lmax=%E_MaxQ%:mblmax=%E_MaxQ%:vrc_maxrate=%VBV_MBR%:vrc_buf_size=%VBV_MBS%:vrc_strategy=0 -of rawvideo -ffourcc MPG2



pause


@REM Set intra matrix (use coef > 8 for DVD compliant stream with mencoder)
set E_INTRA=8,8,8,8,9,10,11,12,8,8,8,8,9,11,11,13,8,8,9,9,10,12,14,15,8,8,9,10,12,14,16,18,9,9,10,12,15,17,20,23,
10,11,12,14,17,22,27,33,11,11,14,16,20,27,35,44,12,13,15,18,23,33,44,64

@REM Set inter matrix (use coef > 8 for DVD compliant stream with mencoder)
set E_INTER=10,10,10,10,11,11,12,12,10,10,10,10,11,11,12,12,10,10,10,11,11,12,12,13,10,10,11,11,12,12,13,15,
11,11,11,12,13,14,15,17,11,11,12,12,14,16,18,22,12,12,12,13,15,18,23,27,12,12,13,15,17,22,27,34

Sagittaire
2nd August 2007, 01:01
Another little test on my c2d at 2.7 Ghz with ED 18 Mbps 1080p24 stream without hardware decoding:

VC1 decoding with WMVideo decodeur DMO
46.18 fps with CPU between 80 and 90%

H264 decoding with CoreAVC decoder
68.72 fps with CPU between 90 and 100%

I use graphedit with Elecard Chegepuga benchmark. Perhaps a problem for my system ... I don't know?
Why AVC is faster and by far on my system ... ? It's curious ... !!?

akupenguin
2nd August 2007, 06:02
Try CBR rather than CQ3 for the 1st pass.
Try also lmin=0.5 mblmin=0.5

zambelli
2nd August 2007, 09:25
Hi Sagittaire,

Thanks for putting together this test. A few questions/comments:

1) What versions of PEP, x264 and libavcodec were used to produce the encodes?

2) Has the libavcodec MPEG-2 encode been checked for VBV compliance and HD-DVD compliance? I too am surprised with libavcodec's performance - it's usually HC encoder that gets touted as the best free MPEG-2 encoder. I'm wondering if it's perhaps because libavcodec isn't producing perfectly compliant bitstreams.

3) I won't ask you who the "anonymous" VC-1 donor was, but I'll ask you this: who determined the optimal VC-1 encoding settings? Similarly, did anyone advise you on x264 and MPEG-2 encoding settings?

4) Why not ask Microsoft for VC-1 encoding advice? We would've been happy to help. At the very least we could've provided advice on encoding settings.

CruNcher
2nd August 2007, 10:51
Hmm another thread with the same Source ?
Microsoft (codec representatives) said over dozen of times that VC-1 was initialy tweaked for low power grain preservation for HD so i think we really should use a better suited source something more REAL so as it seemes no one can get on the StEm source of the DCI initiative our only possible compare method would be Artificialy Grain Elephants Dream (with a good Grain algorithm one that comes near Hollywoods studio used one), to better compare the most important fact for Hollywood and many Film Lab guys that wan't to preserve as much as possible from the original old Movies look (excludes DRM) ;).
Im not sure wich artificial Grain Software most of the Studios use in their Post Production but i think it will be something that resambles Kodaks Filmstock might be even Software from Kodak, maybe someone knows better here :)


Another little test on my c2d at 2.7 Ghz with ED 18 Mbps 1080p24 stream without hardware decoding:

VC1 decoding with WMVideo decodeur DMO
46.18 fps with CPU between 80 and 90%

H264 decoding with CoreAVC decoder
68.72 fps with CPU between 90 and 100%

I use graphedit with Elecard Chegepuga benchmark. Perhaps a problem for my system ... I don't know?
Why AVC is faster and by far on my system ... ? It's curious ... !!?


Here you can perfectly see from your results that Microsofts VC-1 Decoder is not optimized (compared vs CoreAVC) could you compare with (Mainconcept/Elecards) one too and libvc1 ?
now you could speculate for 10% cpu usage how much more Speed would it result in ;) but 46 fps are enough if you ask me for this system (add audio,parser,renderer (FULL HD) overhead too this results (commercialy also Decryption overhead but done on special DSPs same as Video everywhere now) and you would reach 24 fps for sure fullscreen) so i would say indeed that Microsoft did better tweaked for Decoding Complexity but nothing that couldn't be done with H.264 (on the Decoding side) so it would be no problem to tweak into lower fps and lower cpu utilization there seemes room in CoreAVCs Decoder to achive that. But ofcourse the task is @ Microsoft here to max out the cpu utilization (to achive more frames) and they don't quiet get it @ the moment (on your system).

Sagittaire
2nd August 2007, 11:07
1) What versions of PEP, x264 and libavcodec were used to produce the encodes?

- Well pep.exe seem time limited but not vc1_enc.exe and vc1_enc.exe seem more simple to use with potentialy unlimited pass number with easy CLI change. vc1_enc.exe seem really good tool for make test. Version is VC-1 Sequential Encoder v 1.06 (7/12/2006 build).

- For x264 the most important is the vbv compliancy. I use an old but special build (rev 618) with thread, AQ and hrd patch. You can use If you want the last thrahald build too for make this test:
https://sourceforge.net/project/showfiles.php?group_id=138139

- I use simply the last mencoder build for libavcodec:
http://ffdshow.faireal.net/mirror/mplayer/


2) Has the libavcodec MPEG-2 encode been checked for VBV compliance and HD-DVD compliance? I too am surprised with libavcodec's performance - it's usually HC encoder that gets touted as the best free MPEG-2 encoder. I'm wondering if it's perhaps because libavcodec isn't producing perfectly compliant bitstreams.

Yes really incredible result for libavcodec, isn't it? For me it's the real surprise in this test. Well mencoder don't produce directly HDDVD compliant stream but only flags problem. I use all the MP@HL compliant setting (buffer a 9781 Kbit, max bitrate under 29.4 Mbps, 2 adaptatives bframes, max GOP at 14, max range vector at 128 pixels ... etc etc). I make the encoding with mencoder and I use these tools for patch the flags:
- ReStream for the ratio flags (must be 16/9)
- LevelPatcher for the level flags (always MP@ML by default for libavcodec but it's just a flag)
- dgpulldown for add pulldown flags
- add end of sequence with hexadecimal editor

After I scan the stream with streameyes for vbv compliancy: no problem. After I mux the stream with Sonic SCA in HDDVD project and always no problem (Sonic scan the stream with GOP, level, ratio and underflow compliance). After I play the stream on HDDVD soft player and always no problem. Final test is to play on Toshiba SAP and always no problem. You can download the 6Mbps stream from libavcodec here if you want make scan.
HD-DVD & BD MPEG2 at 6 Mbps (http://jfl1974.free.fr/HDDVD/MPEG2/6Mbps/MPEG2_6Mbps.m2v)

Libavcodec outperform HCEnc and all the other MPEG2 encoder (profesionnal or not) for metric. For example in this test HCEnc obtain only 41.75 dB for OPSNR and 77.97 for SSIM with 6 Mbps encoding. Anyway libavcodec is really a complex tool ... I use this tool just for maximal MPEG2 performance.


3) I won't ask you who the "anonymous" VC-1 donor was, but I'll ask you this: who determined the optimal VC-1 encoding settings? Similarly, did anyone advise you on x264 and MPEG-2 encoding settings?

Well it's a optimized metric profil with insame setting for third pass (complexity at maxi, chroma at maxi, motion at maxi), adaptative bframe with light adaptative ratio quantisation. Some HVS tweak for better SSIM performance (defaut dquant setting, adaptative deadzone, adaptative favorinterlevel). But it's perhaps not the best setting ... ?

Anyway the result is a really better SSIM than your WMV9 AP encoding. The OPSNR is worst but seem to be a RC problem like I say to ben (really bad frame in complex part) and we don't know if your WMV9 AP encoding is really compliant with the vbv setting (really important for OPSNR result).


4) Why not ask Microsoft for VC-1 encoding advice? We would've been happy to help. At the very least we could've provided advice on encoding settings.

Well perfect way for me would to have the encoder for make test and tweak particulary for Rate Control. But If you want make simply encoding the challenge is open ... :thanks:

foxyshadis
2nd August 2007, 11:20
Did you test with Quenc at all? Or have the rc changes dragongodz made been folded back into lavc?

Inventive Software
2nd August 2007, 11:21
@Sag: Any particular reason for using 23.976 as opposed to the 24 FPS that Elephants Dream was mastered in? 24 FPS is supported by HD-DVD too y'know. I know it's a small thing, but every little thing counts. ;)


As for film graining, if you really want to test how the codecs retain film grain (which they should do, it's part of the movie IMHO, makes it feel less clinical) adding an AviSynth filter, either before converting to YV12 or after depending on the filter used would do good IMO.

Sagittaire
2nd August 2007, 11:46
Did you test with Quenc at all? Or have the rc changes dragongodz made been folded back into lavc?

Well I don't use QEnc because I can tweak all the possible quality and RC setting for Libavcodec with Mencoder.

Anyway I think that QEnc use RC from XviD for better vbv compliancy. I can use XviD RC with Mencoder too but here I use the Libavcodec RC. I don't scan the code for Libavocodec but the RC seem really new and Mencoder make always vbv compliant stream now. In fact Mencoder is really slow in the complex part with constrained RC setting actived: look like multiple reencoding frame for respect vbv compliancy.



Software @Sag: Any particular reason for using 23.976 as opposed to the 24 FPS that Elephants Dream was mastered in? 24 FPS is supported by HD-DVD too y'know. I know it's a small thing, but every little thing counts.

Well it's typically an authoring problem and not really a encoding problem. 23.976 or 24 fps don't change anything for the final result (aka quality)

Dark Shikari
2nd August 2007, 11:53
I got the warning on my second pass:

x264 [warning]: DPB size (18800640) > level limit (12582912)

Is this a problem? Commandline is

./x264HRDOpt.exe --threads 1 --thread-input --keyint 14 --min-keyint 2 --vbv-maxrate 20000 --vbv-init 1.0 --vbv-bufsize 14745 --mvrange 511 --level 4.1 --nal-hrd --bframe 2 --b-rdo --bime --weightb --ref 3 --mixed-refs --direct auto --deblock -1:-1 --qpmin 1 --bitrate 6000 --b-pyramid --pass 3 --stats "x264_stat.log" --qcomp 0.75 --ipratio 1.10 --pbratio 1.25 --partitions "all" --8x8dct --me "hex" --subme 6 --no-fast-pskip --trellis 1 --aud --sar 1:1 --progress -o 6000_3.h264 elephantsDream.avs

akupenguin
2nd August 2007, 12:15
Pyramid increases the required DPB size. It's not so useful anyway with only 2 B-frames.

Sagittaire
2nd August 2007, 12:17
Try CBR rather than CQ3 for the 1st pass.
Try also lmin=0.5 mblmin=0.5

Like always ... you solve the problem. Encoding at 18 Mbps in progress. And I think that this little tweak can improve the 6 and 12 Mbps encoding too :eek:

:thanks:

Dark Shikari
2nd August 2007, 12:17
Pyramid increases the required DPB size. It's not so useful anyway with only 2 B-frames.
So do I need to turn off --b-pyramid to generate a compliant stream?

Sagittaire
2nd August 2007, 12:22
So do I need to turn off --b-pyramid to generate a compliant stream?

Compliant with the level 4.1 imply compliant with HDDVD/BD specifications. Moreover like say akupenguin pyramid bframe is completely useless with 2 bframes. Use my complete profil if you don't want problem and particulary my qcomp setting.

drmpeg
2nd August 2007, 13:06
@Sag: Any particular reason for using 23.976 as opposed to the 24 FPS that Elephants Dream was mastered in? 24 FPS is supported by HD-DVD too y'know.
24.0 fps is not supported in HD-DVD, only Blu-ray.

Ron

Golgot13
2nd August 2007, 13:35
24.0 fps is not supported in HD-DVD, only Blu-ray.

Ron

Yes and not, because HDDVD support now more framerate in advanced content version.
I have a new HD DVD authoring software which support 1080 60P !!!
Specification of HD DVD change (ex: no more version 3 = advanced content and standard content
on same disc). You can read the change on DVD Forum news paper.


Golgot13

vsv
2nd August 2007, 17:49
HDDVD authoring tool support also 25fps content but where is hardware players (firmware) ?
Same situation will be for 1080p60 :)

benwaggoner
2nd August 2007, 18:05
VC-1 Encoding
Profil & Level: AP@L3 except specific restrictions
Max GOP lenght: 14 frames
Maximum bitrate: 20.0 Mbps, 24.0 Mbps and 28.0 Mbps
Buffer size: 14745 Kbits for principal HD video stream
Horizontal Vector Range: +/- 1024 pixels
Vertical Vector Range: +/- 256 pixels
Other Restrictions Setting: max adaptative GOP at 14, max adaptative bframe at 2

What do you mean by "max adaptive bframe at 2"? Do you mean max of 2 B-frames? If so, why that requirement? It isn't required in HD DVD or VC-1. There's at least one shipping studio title I know of that goes up to 7 B-frames.

Sagittaire
2nd August 2007, 18:29
What do you mean by "max adaptive bframe at 2". Do you mean max of 2 B-frames? If so, why that requirement? It isn't required in HD DVD or VC-1. There's at least one shipping studio title I know of that goes up to 7 B-frames.

yes we make encoding with 7 bframes for VC1 but without quality improuvement. akupenguin explain very well why more than 2 or 3 bframe is completely useless in practice. For example VC1 will use 7 bframes for completely black scene: in this case you save size for the black scene itself but the size saved for the complete movie is really ridiculous. Anyway if you want make encoding with 7 bframes for this challenge you can try ... it's HDDVD compliant ... but don't expect major quality improuvement.

akupenguin
2nd August 2007, 18:55
Then why list it as a restriction?

Sagittaire
2nd August 2007, 18:57
Then why list it as a restriction?

Well it's true ... why not.

Annexe - Update

02.08.2007 - Max adaptative bframe at 7 for VC1
01.08.2007 - Complete Test with x264, pep and libavcodec

will coming ... if you want ... !!!
All the developpers are wellcome ... !!?

benwaggoner
2nd August 2007, 19:09
Well it's true ... why not.

Annexe - Update

02.08.2007 - Max adaptative bframe at 7 for VC1

Thanks! I agree that it's unlikely to make a difference with this particular clip, but on general principal I'd like to use only the spec restraints.

zambelli
3rd August 2007, 00:12
- Well pep.exe seem time limited but not vc1_enc.exe and vc1_enc.exe seem more simple to use with potentialy unlimited pass number with easy CLI change. vc1_enc.exe seem really good tool for make test. Version is VC-1 Sequential Encoder v 1.06 (7/12/2006 build).
Thanks. Is that December 7th or July 12th?

The command-line encoder in the PEP package is really more of a test tool (I think it might even be deprecated at this point). The studios are all using the non-cmd-line encoder.

Well it's a optimized metric profil with insame setting for third pass (complexity at maxi, chroma at maxi, motion at maxi), adaptative bframe with light adaptative ratio quantisation. Some HVS tweak for better SSIM performance (defaut dquant setting, adaptative deadzone, adaptative favorinterlevel). But it's perhaps not the best setting ... ?
I'll see if I can come up with a better set of settings. The 3rd pass in vc1_enc.exe is not a true automated 3rd pass. It's just reusing the 2nd pass log but the further passes aren't really designed to take any significant advantage of the log. 3rd pass encoding is typically done manually by handpicking scenes that need additional tweaking.

Anyway the result is a really better SSIM than your WMV9 AP encoding. The OPSNR is worst but seem to be a RC problem like I say to ben (really bad frame in complex part) and we don't know if your WMV9 AP encoding is really compliant with the vbv setting (really important for OPSNR result).
The WMV9 encodings I did are definitely fully VC-1 compliant (VBV too) but I never checked them for true HD-DVD compliance.
It's no surprise that PEP did a better encoding job than WMV9 DMO. :)

Another question: how did you decode the VC-1 ES? Did you make sure deblocking/deringing was disabled in the decoder?

zambelli
3rd August 2007, 00:22
But ofcourse the task is @ Microsoft here to max out the cpu utilization (to achive more frames) and they don't quiet get it @ the moment (on your system).
Yeah, the Windows WMV decoder is definitely not as optimized as it could be. It uses only 2 threads and there's a lot of legacy junk in there (lots of backwards compatibility to worry about). A true VC-1 decoder written from scratch and optimized for playback on modern CPUs would definitely be able to decode a lot faster. I'm curious to see how optimized the FFmpeg/Libavcodec VC-1 decoder can get.

zambelli
3rd August 2007, 00:27
As for film graining, if you really want to test how the codecs retain film grain (which they should do, it's part of the movie IMHO, makes it feel less clinical) adding an AviSynth filter, either before converting to YV12 or after depending on the filter used would do good IMO.
I've played around with TrBarry's AddGrain filter and it does do a good job of making the ED source much more complex to encode.

Things to keep in mind:
1) AddGrain adds grain randomly so it'd be necessary to save the result to an intermediate AVI before feeding it to every encoder. If you encoded from .avs directly, you'd get different grain in every AVS instance. :)

2) Film grain preservation would need to be evaluated manually. I wouldn't trust SSIM to care enough about grain. We know how happy SSIM gets about deblocking filters. :)

Sagittaire
3rd August 2007, 02:28
Thanks. Is that December 7th or July 12th?

I'am french ... 7/12/2006 mean December 7th ... ;-)


The command-line encoder in the PEP package is really more of a test tool (I think it might even be deprecated at this point). The studios are all using the non-cmd-line encoder.

Seem produce the same result with the same setting. You can't set the deblocking level flags with pep.exe (no deblocking option ?).


I'll see if I can come up with a better set of settings. The 3rd pass in vc1_enc.exe is not a true automated 3rd pass. It's just reusing the 2nd pass log but the further passes aren't really designed to take any significant advantage of the log. 3rd pass encoding is typically done manually by handpicking scenes that need additional tweaking.

Better size prediction anyway.


Another question: how did you decode the VC-1 ES? Did you make sure deblocking/deringing was disabled in the decoder?

VC1 stream here use internal PP flags. Internal flags adjust automatically the PP decoding for the DMO decoder if you don't use Force Process Mode command line registry and I don't use this command registry.

Anyway you have all the command line, build encoder, source for encoding and test, and the VC1 encoding at 6Mbps for reproduce the result:
HD-DVD & BD VC-1 at 6 Mbps (http://jfl1974.free.fr/HDDVD/VC1/6Mbps/VC1_6Mbps.vc1)

It's a challenge: if you can produce better results then I would be happy to report them.

Sagittaire
3rd August 2007, 02:43
Annexe - Update

03.08.2007 - Encoding with libavcodec at 18 Mbps
02.08.2007 - Max adaptative bframe at 7 for VC1
01.08.2007 - Complete Test with x264, pep and libavcodec

will coming ... if you want ... !!!
All the developpers are wellcome ... !!?




|--------------|---------|---------|----------|---------|---------|
| Codec | PProc | Bitrate | Size | OPSNR | SSIM 2 |
|--------------|---------|---------|----------|---------|---------|
| MPEG2 | PP0 | 5999 | 479233 | 43.08 | 82.55 |
| VC-1 | N/A | 5994 | 478824 | 43.75 | 86.41 |
| H264 | N/A | 6007 | 479766 | 46.35 | 89.54 |
|--------------|---------|---------|----------|---------|---------|
| MPEG2 | PP0 | 12001 | 958666 | 46.38 | 91.27 |
| VC-1 | N/A | 11986 | 957521 | 46.71 | 92.44 |
| H264 | N/A | 12008 | 959329 | 49.11 | 94.18 |
|--------------|---------|---------|----------|---------|---------|
| MPEG2 | PP0 | 17988 | 1434719 | 47.17 | 93.26 |
| VC-1 | N/A | 17930 | 1432338 | 48.28 | 94.60 |
| H264 | N/A | 18009 | 1438862 | 50.53 | 95.74 |
|--------------|---------|---------|----------|---------|---------|
SSIM 0: Lumimask Off
SSIM 1: Lumimask On (Original Lumimask)
SSIM 2: Lumimask On (One2Tech Patch)

PuzZLeR
3rd August 2007, 18:10
Hmmm.... I do wonder about these tests sometimes.

The reason is that no matter how wonderful these new codecs are, they are certainly limited when encoding from an MPEG-2 source. Why is this used to test them?

Encoding from this source, the max quality of H.264 and VC-1 will be asymptotically closer to "perfect" by adding bitrate, only "perfect" with an infinite amount of bitrate, and "perfect" is really only as good as the MPEG-2 source.

Sure, encoding from an MPEG-2 source, and the test results here have some inference to the "real picture", but these codecs weren't only designed to encode from an MPEG-2 source.

For example, with x264, CRF<10 doesn't exist with MPEG-2, and would be futile to use it with MPEG-2 source. This would be used for the "real" source.

Raw uncompressed HD video is about 300GB-400GB per hour. I'd love to see what these codecs can REALLY do - this would be the "real picture" and this is how, I'm convinced, we can all view how much better H.264 is than VC-1.

Can anybody test this if they have the means? I certainly can look into it...

foxyshadis
3rd August 2007, 18:35
I've played around with TrBarry's AddGrain filter and it does do a good job of making the ED source much more complex to encode.

Things to keep in mind:
1) AddGrain adds grain randomly so it'd be necessary to save the result to an intermediate AVI before feeding it to every encoder. If you encoded from .avs directly, you'd get different grain in every AVS instance. :)

I modified AddGrain (called AddGrainC) to include a seed parameter to make it deterministic. I'm also still working on and off on a pseudo-fgm method, that works with ffdshow and any video format, but I sort of lost interest since I don't watch many movies now.

jethro
3rd August 2007, 19:42
Hmmm.... I do wonder about these tests sometimes.

The reason is that no matter how wonderful these new codecs are, they are certainly limited when encoding from an MPEG-2 source. Why is this used to test them?



Erm, maybe I misunderstood something but did you look at the title of this thread? This test IS made from raw uncompressed source.

Raw movie frames (21GB lol) can be downloaded from
http://media.xiph.org/ED/

More about the movie
http://orange.blender.org/

benwaggoner
3rd August 2007, 19:43
I modified AddGrain (called AddGrainC) to include a seed parameter to make it deterministic. I'm also still working on and off on a pseudo-fgm method, that works with ffdshow and any video format, but I sort of lost interest since I don't watch many movies now.
Very interesting!

Can you recommend some settings that you think would be appropriate for our testing here?

benwaggoner
3rd August 2007, 20:19
VC-1 Encoding[/COLOR]
Horizontal Vector Range: +/- 1024 pixels
Vertical Vector Range: +/- 256 pixels

Another minor tweak - there's no HD DVD spec requirement about Horizontal/Vertical search range. Again, I doubt it'd matter in this test, but there's no reason to specifically constrain the range.

Sagittaire
3rd August 2007, 21:00
Another minor tweak - there's no HD DVD spec requirement about Horizontal/Vertical search range. Again, I doubt it'd matter in this test, but there's no reason to specifically constrain the range.

Well I don't remenber where I read that. There are no limitation for range vector at level 3 for VC1?

benwaggoner
3rd August 2007, 21:26
Well I don't remenber where I read that. There are no limitation for range vector at level 3 for VC1?
Nor for HD DVD.

PuzZLeR
4th August 2007, 00:26
This test IS made from raw uncompressed source.You're absolutely right. My bad. I got confused with another thread and the fact that "Elephant's Dream" is a commercially available DvD. Thought they were converting from that.

Then by all means - valid test!

Golgot13
4th August 2007, 18:36
Well I don't remenber where I read that. There are no limitation for range vector at level 3 for VC1?

There is on the web only in "public version" (warez web site) a doc White Book from Sonic.
And I know it have inside more restricted than HD DVD specification (but the stream restrictions
on the book are compliant with HD DVD).


May be Ben can give the video restriction for HD DVD (VC1 sure, may be H264 too).
It was not the first ask about the video restriction for HD DVD, may be you or Zambelli
will answer (I'm sure not, but I hope...).




Regards,



Golgot13

Sagittaire
4th August 2007, 23:23
There is on the web only in "public version" (warez web site) a doc White Book from Sonic.
And I know it have inside more restricted than HD DVD specification (but the stream restrictions
on the book are compliant with HD DVD).


In fact it's simply the setting for command registry from WMV9 AP
http://www.microsoft.com/windows/windowsmedia/howto/articles/codecadvancedsettings.aspx#MotionSearchRange



May be Ben can give the video restriction for HD DVD (VC1 sure, may be H264 too).
It was not the first ask about the video restriction for HD DVD, may be you or Zambelli
will answer (I'm sure not, but I hope...).

In fact the most important for quality are:
- GOP lenght at 14 (it's sure for HDDVD?)
- Vecteur range values are good for MPEG2 and H264. It's not really important for quality anyway.
- 7 adaptatives bframes for H264 and MPEG2? It's not really important for quality anyway.
- The big problem is buffer: 9781 for MPEG2, 14745 for VC1 and perhaps 30000 for H264?


Annexe - Update

04.08.2007 - Unlimited range vector for VC1
03.08.2007 - Encoding with libavcodec at 18 Mbps
02.08.2007 - Max adaptative bframe at 7 for VC1
01.08.2007 - Complete Test with x264, pep and libavcodec

will coming ... if you want ... !!!
All the developpers are wellcome ... !!?

drmpeg
5th August 2007, 01:21
Another minor tweak - there's no HD DVD spec requirement about Horizontal/Vertical search range. Again, I doubt it'd matter in this test, but there's no reason to specifically constrain the range.
I see that Sagittaire has made the motion vector range for VC-1 unlimited. Actually, he was correct to begin with. The motion vector range is limited in the VC-1 specification for AP@L3 to -1024/+1023.75 horizontal and -256/+255.75 vertical.

Ron