Log in

View Full Version : xvid 1.1 bug: vhq for b-frames not stable in some situations!


Heini011
9th February 2006, 02:08
Hi folks,

i encoded many dvd-sources to xvid without any problem, but i can't encode my dvd 'sleepy hollow' with xvid for some reasons.

i tried to encode via avisynth 2.5.6.0 and virtualdubmod 1.5.10.2 (fast recompress) to xvid 1.1, but it crashed at 70% (always at the same frame with a scene switch in a high motion environment). i ripped the dvd again and tried DGMPGDec 1.2.1 / 1.4.6, virtualdubmod 1.5.10.1 and XviD 1.1 / 1.1b2, but i got always the same result. i can play the entire avisynth script within virtualdubmod, but when i try to encode to xvid i got crashes. i have encoded the entire movie lossless via lagarith 1.3.7 (great codec) now, but when i try to encode that file to xvid i get a crash just after a few thousands frames (see error message below).

i tested my machine (amd k7 xp-m @2300mhz, nforce2, 2x 512mb, win 2k) with prime95 torture test (blend profile) for several hours without any errors. i reduced the fsb/ram clock from 216 to 210 mhz, but that makes no difference.

My XviD Settings are as always:

full quality first pass / not discarding
-adapt. quant
-quarter pixel
-b-vops: 2/1.5/0.7
-motion search: 6
-vhq: 4
-vhq for b-frames
-chroma motion
-max i-frame i.: 250
-all quants: 2-31
-trellis
-matrix: eqm-v3hr-mod (http://forum.doom9.org/showthread.php?p=716384#post716384)


------------------------------------
Crash reason: Access Violation

Crash context:
An out-of-bounds memory access (access violation) occurred in module 'xvidcore'...

...while compressing frame 3237 from 020c0000 to 0b790020 (VideoSequenceCompressor.cpp:406)...

...while running thread "Processing" (thread.cpp:120).
------------------------------------


simplified avisynth-script:
----------------------------------------------
function mvdenoise2(clip) {
bw_v1=clip.MVAnalyse(isb=true, blksize=4, lambda=1000, delta=1, pel=2, idx=1)
fw_v1=clip.MVAnalyse(isb=false, blksize=4, lambda=1000, delta=1, pel=2, idx=1)
clip=clip.MVDenoise(bw_v1, fw_v1, thT=6, thSAD=52, thmv=50, thSCD1=64)
return clip
}

function RemoveTempGrain(clip input, int _mode)
{
rg = RemoveGrain(input, mode=_mode)
return TemporalRepair(rg, input)
}

function hq_filter(clip c)
{
c=c.mvdenoise2()
dn=c.RemoveTempGrain(2)
c=SeeSaw(c,dn,Sstr=0.40,Szp=12,SdampHi=20,bias=40)
return c
}

# video sources

MPEG2Source("v.d2v",cpu=4,iDCT=7)

crop(16,10,696,552,align=true)

hq_filter()
----------------------------------------------

foxyshadis
9th February 2006, 02:43
Is it possible to supply any of that clip? In particular, most helpful would probably be the chunk from the last written I-frame up to the crashing frame (plus a few for good measure). You'll probably have to open the incomplete avi with rebuild keyframe flags enabled. The actual xvid stream from the I-frame on would be useful too. Of course, check whether it causes a crash first.

Have you tried rebooting? (Don't laugh, it made xvid stop crashing on decoding one clip of mine, out of nowhere.)

sysKin
9th February 2006, 05:21
Is virtualdub making its crash report?

Heini011
9th February 2006, 12:10
it seems, that i found the problematic xvid option:

i finished my first pass without 'vhq for b-frames' now!

Heini011
10th February 2006, 00:10
Hi,

i have a 16mb lagarith lossless encoded test clip, so the problem can be reproduced. how can i seending it to the xvid-devs ?

Heini011
10th February 2006, 00:32
the nasty tempest weather in sleepy hollow and the seesaw sharpening seems to be too 'much' for the 'vhq for b-frame' xvid feature... :confused:

if i convert the lossless-test clip to xvid without 'vhq for b-frames' and 'convert' that xvid-file with xvid+'vhq for b-frame' again, then virtualdubmod did not crashing...

sysKin
10th February 2006, 03:32
Hi,

i have a 16mb lagarith lossless encoded test clip, so the problem can be reproduced. how can i seending it to the xvid-devs ?

Uh, I don't really have access to any space that would be 16mb... can anyone help?

if i convert the lossless-test clip to xvid without 'vhq for b-frames' and 'convert' that xvid-file with xvid+'vhq for b-frame' again, then virtualdubmod did not crashing...
Sure, you're compressing a different clip ;)

foxyshadis
10th February 2006, 03:52
Try http://www.rapidshare.de or http://www.mytempdir.com

sysKin
10th February 2006, 07:39
This indeed crashes when doing VHQ for interpolate or direct mode, motion vector seems to be out of range.

I need this clip now :-)

Heini011
10th February 2006, 09:24
ok, folks...

3 MB Testclip (http://rapidshare.de/files/12932803/xvid-testfile.avi.html), which let XviD crashing

you need Lagarith Lossless Codec (http://lags.leetcode.net/codec.html)

greetings.

Heini011
10th February 2006, 09:30
you need a high bitrate matrix @ q=2 to reproduce the problem. for example my eqm-v3hr-mod or the original eqm-v3hr from Sharktooth.

Heini011
17th April 2006, 01:11
Hi,

could the problem be reprocuced ? any bugs discovered ?

greetings.

Heini011
10th June 2006, 16:44
Hi,

a dark scene from bean with overall brightness fluctuations caused by a lamp moving in and out of the camera view...

XviD Settings:

-single pass, const quant = 2
-adapt. quant
-quarter pixel
-b-vops: 2/1.5/0.7
-motion search: 6
-vhq: 1 or 4 - same result
-vhq for b-frames
-chroma motion
-max i-frame i.: 250
-all quants: 2-31
-trellis
-matrix: eqm-v3hr

xvidcore.dll version 1.1.0

no problems without vhq for b-frame, but activated virtualdubmod crashed:

Crash reason: Access Violation

Crash context:
An out-of-bounds memory access (access violation) occurred in module 'xvidcore'...

...while compressing frame 37 from 01c90000 to 0b800020 (VideoSequenceCompressor.cpp:406)...

my system is prime95 stable! the error can be reproduced:

lagarith lossless testclip (http://rapidshare.de/files/22710055/test-xd-crash.avi.html)

greetings, Heini.